一种分布式嵌入系统服务化软件框架技术方案

技术编号:37821801 阅读:13 留言:0更新日期:2023-06-09 09:57
本发明专利技术公开了一种分布式嵌入系统服务化软件框架,包含三个主要组成部分:服务通信中间件、服务管理软件、服务监控软件。其中,服务通信中间件是实现服务软件之间通信的关键组件,以开发包的形式被集成于嵌入式服务软件内部,使嵌入式服务软件开发避免了重复劳动。服务管理软件和服务监控软件可独立部署,为服务化软件框架提供各项服务治理功能。该三个组成部分实现了分布式嵌入式系统中资源占用少、热插拔、灵活编排的服务软件特性。灵活编排的服务软件特性。灵活编排的服务软件特性。

【技术实现步骤摘要】
一种分布式嵌入系统服务化软件框架


[0001]本专利技术涉及计算机软件架构领域,特别涉及一种分布式嵌入系统服务化(SOA)软件框架。

技术介绍

[0002]SOA是一种在计算环境中设计、开发、部署和管理离散逻辑单元(服务)模型的方法。在SOA模型中,所有的功能都定义成了独立的服务软件。服务软件之间通过服务通信中间件完成业务的整体逻辑。这种松散耦合的架构使得各服务软件在交互过程中无需考虑双方的内部实现细节,以及部署在什么平台上。
[0003]在SOA架构中,继承了来自对象和构件设计的各种原则,例如,封装和高度自治等。那些保证服务软件的灵活性、松散耦合和复用能力的设计原则,对SOA架构来说同样是非常重要的。SOA设计原则包含:
[0004](1)明确定义的接口。服务请求者依赖于服务规约来调用服务,因此,服务定义必须长时间稳定,一旦公布,不能随意更改;服务的定义应尽可能明确,减少请求者的不适当使用;不要让请求者看到服务内部的私有数据。服务之间的接口交互频度应较低。
[0005](2)高度自治。服务封装了那些在业务上稳定、重复出现的活动和构件,实现服务的功能实体是完全独立自主的,独立进行部署、版本控制、自我管理和恢复。
[0006](3)松耦合。服务请求者可见的是服务的接口,其位置、技术栈、状态和私有数据等,对服务请求者而言是不可见的。
[0007]SOA架构设计思想已在大型互联网企业的ERP系统和服务器架构中得到广泛应用,关键技术成熟配套。但是其在嵌入式场景中应用较少,缺少一种面向分布式嵌入系统的SOA解决方案。

技术实现思路

[0008]本专利技术的专利技术目的在于提供一种分布式嵌入系统服务化(SOA)软件框架,具有资源占用少、热插拔、灵活编排等优点。
[0009]本专利技术的专利技术目的通过以下技术方案实现:
[0010]一种分布式嵌入系统服务化软件框架,包含服务通信中间件,服务通信中间件以开发包的形式被集成于嵌入式服务软件内部,包含服务端框架模块、序列化/反序列化模块、传输栈模块;
[0011]服务端框架模块包含本地服务管理模块、任务管理模块、任务队列和任务池,本地服务管理模块支持在当前网络节点中部署多个服务实例;服务端框架将服务实例提出的服务调用请求通过服务链表的映射,被分发至对应的任务队列;任务管理模块在任务队列新增任务后,事件触发任务池中空闲的待执行任务;服务调用请求进入运行任务后,经过序列化/反序列化模块反序列化映射为相应的服务函数调用;服务函数执行完毕后,其返回值被序列化/反序列化模块序列化为二进制字节流,并在当前任务中调用传输栈模块发送接口
进行调用数据回复。
[0012]较佳地,任务管理模块根据任务队列的长度实时动态调整任务池的规模,任务池中的任务空闲时处于被阻塞状态,等待任务队列的接收事件触发运行。
[0013]较佳地,序列化/反序列化模块所采用ProtoBuff

C技术,支持对不同数据进行长度压缩,序列化/反序列化模块提供服务数据打包和解析功能,配套IDL接口定义能力,使得服务化软件具备跨语言能力。
[0014]较佳地,传输栈模块所采用的订阅发布数据服务基于UDP网络协议栈实现。
[0015]进一步,分布式嵌入系统服务化软件框架还包含服务管理软件,服务管理软件包括:服务注册中心、服务路由器、服务状态管理模块;
[0016]服务注册中心用于处理嵌入式服务软件发送的服务注册请求;
[0017]服务状态管理模块用于收集各嵌入式服务软件上报的各服务实例当前运行信息,包括运行状态和请求负载;服务状态管理模块识别并统计服务实例当前运行信息,如果任一嵌入式服务软件在设定时间范围内未上报服务实例当前运行信息,将被识别为服务实例离线,离线后的服务实例被标识为不可用;
[0018]服务路由器用于处理嵌入式服务软件发送的服务发现请求,服务路由器依据服务发现请求中的服务名称,检索服务列表,并依据服务运行状态,择优匹配并返回服务唯一标识。
[0019]较佳地,服务路由器的择优算法包含如下步骤:
[0020]步骤一、遍历所有服务名称相同的服务实例;
[0021]步骤二、判断当前服务实例是否运行中,如果是记录服务实例信息;
[0022]步骤三、匹配部署服务的节点,判断是否存在多节点,如果是进入步骤四,否则跳到步骤五;
[0023]步骤四,统计各节点的负载,选择负载最小的节点;
[0024]步骤五、判断节点中是否在存多个相同服务实例,如果是进入步骤六,否则跳到步骤七;
[0025]步骤六、统计各服务实例的负载,选择负载最小的服务实例;
[0026]步骤七;返回服务实例的UUID。
[0027]进一步,分布式嵌入系统服务化软件框架还包含服务监控软件,服务监控软件包括:服务拓扑模块、服务编排模块、服务生命周期管理模块;
[0028]服务拓扑模块通过在线订阅服务调用数据,监听了所有服务实例发送的调用信息报文,并根据调用信息报文分析并给出服务实例之间的调用关系,以图形的方式给出网络拓扑结构;
[0029]服务编排模块中预制了多种服务软件组合关系,运行时,用户通过服务编排模块切换不同服务软件组合方案;
[0030]服务生命周期管理模块用于直接控制服务实例的运行状态,根据服务编排模块中切换的服务软件组合关系向变更的嵌入式服务软件发送启停指令,嵌入式服务软件中的本地服务管理模块根据启停指令开启或关闭嵌入式服务软件。
[0031]本专利技术的有益效果在于:
[0032]本专利技术服务通信中间件、服务管理软件、服务监控软件填补了在嵌入式环境中实
施服务化软件框架的空白;大大提高了嵌入式设备软件集成效率;改进了服务软件的开发模式,提升了软件开发效率;提供了服务化软件系统中运维和管理的技术方案,为嵌入式系统丰富了集中化、可视化的有效管理手段,具备如下优势:
[0033]1.热插拔,架构中的服务软件可在系统运行时动态启动或退出,支持对关键服务进行热备份,快速提升服务的可靠性;
[0034]2.灵活编排,架构中的服务软件可在线重组,通过控制不同的服务软件生命周期,支撑软件系统切换工作模式或快速跟随硬件平台扩容;
[0035]3.故障隔离,服务软件拥有独立的运行资源空间,并管理各自的业务资源,可避免单点故障传播;
[0036]4.破除“显示依赖”,服务软件在系统内隐匿各自的网络位置,服务调用仅需面向功能接口,减少了功能软件之间的耦合;
[0037]5.并行开发,面向系统需求可精细化分解为多个服务软件,各服务软件版本独立迭代、验证、测试,实现多人/团队并行开发;
[0038]6.快速集成,服务接口规范简化了服务软件之间接口联试工作,提升了三方服务软件集成效率,避免了单点变更引入的“蝴蝶效应”。
附图说明
[0039]图1是本专利技术嵌入式服务化软件运行框架的框图;
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式嵌入系统服务化软件框架,其特征在于包含服务通信中间件,服务通信中间件以开发包的形式被集成于嵌入式服务软件内部,包含服务端框架模块、序列化/反序列化模块、传输栈模块;服务端框架模块包含本地服务管理模块、任务管理模块、任务队列和任务池,本地服务管理模块支持在当前网络节点中部署多个服务实例;服务端框架将服务实例提出的服务调用请求通过服务链表的映射,被分发至对应的任务队列;任务管理模块在任务队列新增任务后,事件触发任务池中空闲的待执行任务;服务调用请求进入运行任务后,经过序列化/反序列化模块反序列化映射为相应的服务函数调用;服务函数执行完毕后,其返回值被序列化/反序列化模块序列化为二进制字节流,并在当前任务中调用传输栈模块发送接口进行调用数据回复。2.根据权利要求1所述的一种分布式嵌入系统服务化软件框架,其特征在于任务管理模块根据任务队列的长度实时动态调整任务池的规模,任务池中的任务空闲时处于被阻塞状态,等待任务队列的接收事件触发运行。3.根据权利要求1所述的一种分布式嵌入系统服务化软件框架,其特征在于序列化/反序列化模块所采用ProtoBuff

C技术,支持对不同数据进行长度压缩,序列化/反序列化模块提供服务数据打包和解析功能,配套IDL接口定义能力,使得服务化软件具备跨语言能力。4.根据权利要求1所述的一种分布式嵌入系统服务化软件框架,其特征在于传输栈模块所采用的订阅发布数据服务基于UDP网络协议栈实现。5.根据权利要求1所述的一种分布式嵌入系统服务化软件框架,其特征在于还包含服务管理软件,服务管理软件包括:服务注册中心、服务路由器、服务状态管理模块;服务注册中心用于处理嵌入式服务软件发送的服务注册请求;服务状态管理模块用于收集各嵌入式服务软件上...

【专利技术属性】
技术研发人员:周亮王冠陈龙震肖荣辉王子晔
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1