一种轻量级服务化软件运行框架制造技术

技术编号:37681867 阅读:17 留言:0更新日期:2023-05-28 09:35
本发明专利技术公开了一种轻量级服务化软件运行框架,包括:服务调用管理模块、服务对象管理模块、序列化模块、数据传输模块,服务对象管理模块根据调用软件提出的服务发现请求的服务名称,从本地数据库中匹配相同的服务实例数据;服务调用管理模块将服务调用信息打包并通过序列化模块进行序列化继而由数据传输模块建立的TCP长链接发送至提供服务方;服务方,由序列化模块反序列化后推入调用请求队列;服务调用管理模块读取请求队列,启动服务处理线程,如服务处理存在服务回复数据,则服务调用管理模块调用序列化模块进行序列化后由原TCP长链接发送至调用软件方;在调用软件方,由序列化模块反序列化解析为调用软件可识别的数据结构。构。构。

【技术实现步骤摘要】
一种轻量级服务化软件运行框架


[0001]本专利技术涉及计算机软件架构领域设计技术,特别涉及一种在分布式网络式系统中应用的轻量级服务化(SOA)软件运行框架。

技术介绍

[0002]分布式网络系统的广泛应用对传统单体软件带来诸多挑战。单体软件之间剧增通信交互量和不同的通信方式,软件系统内部面临更为复杂的交互协议和接口一致性等问题。服务化软件面对这些问题应运而生。
[0003]面向服务的软件设计方法已经在大型互联网企业的ERP系统和服务器架构中得到广泛应用,主要解决复杂度高的软件系统能够更快速的完成开发和集成,便于功能特性不断高效迭代。
[0004]SOA技术思想在实践过程中,诞生了很多优秀的服务化软件框架实例,例如ESB、Spring Cloud。然而主流技术长期服务于资源丰富的商用分布式系统,服务化架构依赖不断扩充的硬件资源和网络带宽,系统组成复杂,且必要的基础设施繁多,架构应用的组网场景愈加单一。
[0005]针对在航空、航天、工业控制行业中广泛应用的中小规模分布式网络系统,需要一种轻量级、易部署、资源开销小的服务化架构,实现服务化软件系统的快速构建。

技术实现思路

[0006]本专利技术的专利技术目的在于一种轻量级服务化软件运行框架,具有结构简单、轻量级、易部署、资源开销小等优点。
[0007]本专利技术的专利技术目的通过以下技术方案实现:
[0008]一种轻量级服务化软件运行框架,包括:服务调用管理模块、服务对象管理模块、序列化模块、数据传输模块,该四个模块同时服务于服务软件和调用软件,远程调用过程为:
[0009]首先在调用软件方,服务对象管理模块根据调用软件提出的服务发现请求的服务名称,从本地数据库中匹配相同的服务实例数据,并返回服务的网络位置信息,如匹配失败,则本次调用提前终止,并返回失败;数据传输模块根据网络位置信息与提供服务方所在节点上的数据传输模块建立TCP长链接数据通道;服务调用管理模块将服务调用信息打包并通过序列化模块进行序列化得到调用数据字节流,继而由TCP长链接发送至提供服务方;
[0010]然后在服务软件方,数据传输模块接收到调用数据字节流后,由序列化模块将调用数据字节流反序列化为相应结构的服务调用信息,并推入调用请求队列;服务调用管理模块读取请求队列,启动服务处理线程池;服务处理线程负责回调服务处理函数,如服务处理存在服务回复数据,则服务调用管理模块调用序列化模块,序列化模块对服务回复数据进行序列化得到回复数据字节流,继而由原TCP长链接发送至调用软件方;
[0011]最后在调用软件方,数据传输模块接收到回复数据字节流数据后,由序列化模块
反序列化解析为调用软件可识别的数据结构,形成远程调用的返回值。
[0012]较佳地,序列化模块采用复用Apache

Thrift技术,包括配套的IDL规范和IDL编译器。
[0013]较佳地,服务软件启动后,服务调用管理模块在服务于服务软件时,完成本地服务实例构建工作,并向服务对象管理模块注册服务基础信息;服务对象管理模块在服务于服务软件时负责监控服务实例的运行状态,将多组服务运行信息组成服务运行信息报文并周期上报给网络中其它节点上的服务调用管理模块;数据传输模块在服务于服务软件时提供UDP组播方式将服务运行信息报文向各个节点发布。
[0014]较佳地,数据传输模块在服务于调用软件时从网络上接收服务运行信息报文;服务调用管理模块在服务于调用软件时,负责收集调用软件所需的服务对象名称,并注册给服务对象管理模块;服务对象管理模块在服务于调用软件时负责从服务运行信息报文中接收并标记已注册的服务对象运行信息存入本地数据库中。
[0015]较佳地,服务对象管理模块在接收到服务运行信息报文后处理过程如下:
[0016]第一步,解析服务运行信息报文中服务名称信息,并匹配初始化阶段注册的本地所需服务列表,如未匹配,则代表该服务运行信息没有价值,服务运行信息报文可丢弃;
[0017]第二步,解析服务运行信息报文中服务的网络位置信息,并匹配本地的服务实例数据库,是否已存在相同服务实例,如未匹配则新建服务实例数据表,否则更新已有的数据表;
[0018]第三步,重置服务实例数据表中的心跳计数,收到新的服务运行信息,代表服务状态正常;
[0019]第四步,周期定时器触发检查每一个服务实例数据表中的心跳计数是否存在超时情形,如存在,则将服务状态标记为离线。被标记为离线的服务实例将无法在服务发现流程中被使用。
[0020]较佳地,服务调用管理模块、服务对象管理模块、序列化模块、数据传输模块以开发包的方式支撑服务化软件的开发工作。
[0021]本专利技术的有益效果在于:
[0022]本专利技术提出了一种去中心化的服务化软件运行框架,完善了在中小规模分布式网络系统中实施轻量级服务化框架的技术方案,简化了服务化软件系统的组成,提升了服务化软件的部署效率,拓展了服务化技术的应用场景。
附图说明
[0023]图1是本专利技术轻量级服务化软件运行框架的框图;
[0024]图2轻量级服务化软件运行框架的运行时序图;
[0025]图3服务调用管理模块设计框图;
[0026]图4分布式数据同步流程图。
具体实施方式
[0027]下面结合附图和实施例对本专利技术作进一步的详细说明。
[0028]图1是本专利技术轻量级服务化软件运行框架的框图。本专利技术轻量级服务化软件运行
框架提出了一种适合中小规模分布式网络系统的服务化软件架构,采用去中心化策略简化服务化软件系统部署结构。该框架包含每个节点四个主要组成部分,包括:服务调用管理模块101、服务对象管理模块102、序列化模块103、数据传输模块104。该四个模块同时服务于服务软件和调用软件,共同组成服务化软件运行框架,并以SDK(Software Development Kit,开发包)的方式支撑服务化软件的开发工作。
[0029]调用软件和服务软件,都是从服务接口的角度来区分,调用软件是使用服务接口方,服务软件是提供服务接口的一方。服务软件开发者通过SDK提供的API(Application Programming Interface应用程序编程接口)接口可实现服务的构建,调用软件开发者通过SDK提供的API接口可实现服务接口的调用过程。
[0030]服务调用的通信过程采用RPC(Remote Procedure Call,远程过程调用)技术,其中:
[0031]序列化模块采用复用Apache

Thrift技术,包括其配套的IDL规范和IDL编译器;在调用软方时对调用请求按统一格式进行序列化,对回复数据按本地数据结构进行反序列化;在服务软件方时对调用请求按本地数据结构反序列化,对回复数据按统一格式序列化。
[0032]数据传输模块向序列化模块提供归一化接口,提供服务对象数据同步会话机制。数据传输模块主要采用TC本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种轻量级服务化软件运行框架,包括:服务调用管理模块、服务对象管理模块、序列化模块、数据传输模块,该四个模块同时服务于服务软件和调用软件,其特征在于远程调用过程为:首先在调用软件方,服务对象管理模块根据调用软件提出的服务发现请求的服务名称,从本地数据库中匹配相同的服务实例数据,并返回服务的网络位置信息,如匹配失败,则本次调用提前终止,并返回失败;数据传输模块根据网络位置信息与提供服务方所在节点上的数据传输模块建立TCP长链接数据通道;服务调用管理模块将服务调用信息打包并通过序列化模块进行序列化得到调用数据字节流,继而由TCP长链接发送至提供服务方;然后在服务软件方,数据传输模块接收到调用数据字节流后,由序列化模块将调用数据字节流反序列化为相应结构的服务调用信息,并推入调用请求队列;服务调用管理模块读取请求队列,启动服务处理线程池;服务处理线程负责回调服务处理函数,如服务处理存在服务回复数据,则服务调用管理模块调用序列化模块,序列化模块对服务回复数据进行序列化得到回复数据字节流,继而由原TCP长链接发送至调用软件方;最后在调用软件方,数据传输模块接收到回复数据字节流数据后,由序列化模块反序列化解析为调用软件可识别的数据结构,形成远程调用的返回值。2.根据权利要求1所述的一种轻量级服务化软件运行框架,其特征在于序列化模块采用复用Apache

Thrift技术,包括配套的IDL规范和IDL编译器。3.根据权利要求1所述的一种轻量级服务化软件运行框架,其特征在于服务软件启动后,服务调用管理模块在服务于服务软件时,完成本地服务实例构建工作,并向服务对象管理模块注册服务基础信...

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

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

1