收藏 分销(赏)

基于松耦合服务架构的软件集成构建方法.pdf

上传人:自信****多点 文档编号:642838 上传时间:2024-01-22 格式:PDF 页数:4 大小:1.77MB
下载 相关 举报
基于松耦合服务架构的软件集成构建方法.pdf_第1页
第1页 / 共4页
基于松耦合服务架构的软件集成构建方法.pdf_第2页
第2页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023 年第 7 期82计算机应用信息技术与信息化基于松耦合服务架构的软件集成构建方法韦星辰1 占伟伟1 何建清1 冯 俊1WEI Xingchen ZHAN Weiwei HE Jianqing FENG Jun 摘要 基于松耦合服务架构的软件集成构建方法建立在动态插件模型基础上,其核心思想是实现一个基础的框架应用程序,用以加载插件并且为插件的运行提供必要的执行环境,框架可以在运行过程中动态地按需加载插件。该软件架构方法除了具有复用性高、扩展性高、插件动态加载等特点,还具有跨平台、效率高和跨进程能力。关键词 微内核;插件;松耦合;集成框架;OSGi doi:10.3969/j.issn.1

2、672-9528.2023.07.0211.中国电子科技集团公司第二十八研究所 江苏南京 2100070 引言指控系统目前使用的插件框架在过去的一段时期内解决了模块化的部分问题,降低了开发难度和各个模块之间的耦合度,使得功能应用的开发效率得到有效提高。然而,随着指控系统的不断发展,其自身结构和集成的功能正在变得日益庞大和复杂,与此同时,各种新技术、新平台的应用需求使得当前插件框架的能力受到极大的挑战。因此需要重新构建基础插件框架,进一步提高指控系统对模块化的支撑力度,使得指控系统有能力应对当前和未来不断变化的开发需求,保证系统的扩展性、灵活性和可维护性1。为此,本文基于OSGi松耦合服务架构,

3、提出了基于插件的软件集成构建方法,给出了该方法的实现原理、关键技术和典型应用。1 实现原理OSGi 规范为网络服务定义了一个标准的、面向组件的计算环境。这些组件是一些能够动态发现和使用其他组件的类库或者应用程序,可以是通过购买的商业组件,也可以是自行开发的。OSGi 作为一种中间件,提供了一个 API 标准,下层是通讯协议,上层是应用软件,其可以应用在各种网络存取协议上(高速或低速、有线或无线)。OSGi 框架为Java 提供了软件集成环境,使用 OSGi 架构的系统可以基于组件来开发,同时OSGI技术也提供了一个面向服务的架构,可以使组件在运行时才相互发现并相互合作,降低了组件之间的耦合度,

4、也使得耦合变得可管理,OSGi 架构方便用户从不同的软件供应商获得各种插件兼容式组件,集成为一个完整的系统2。基于 OSGi 理念,我们可以提出一种基于 C+的全新的软件集成构建方法,它具有两个显著的优点:一是尽量小的框架内核,二是极强的扩展性。该方法的体系结构如图 1 所示,核心部分是基于 C、C+标准库的可移植运行时环境3,外层是通用插件平台的服务框架,包括模块管理、生命周期管理、服务管理以及框架和核心服务插件,基于该框架,用户可以开发应用相关的插件,解决大型应用系统客户端进程臃肿、集成模式单一、系统耦合度高、BS/CS 交互复杂等问题。图 1 插件框架架构图基本实现原理如下:1)跨平台可

5、执行环境的搭建,为了使软件框架不仅适用于 windows 平台,也同时适用于 linux 平台,可执行环境层采用C/C+标准库和名为POCO的跨平台C+开源核心库,屏蔽上层对操作系统 API 的依赖,基于此实现的功能在不同平台具有通用性。2)规范插件的命名及内容,业务功能的实现完全由插件完成,为了避免插件重名,确保不同开发者的插件命名的 2023 年第 7 期83计算机应用信息技术与信息化唯一性,需制定相应的命名规范。3)插件的组织及模块管理,为了实现物理上的隔离,更加方便地部署插件,以压缩包的形式对插件进行打包,每个插件独立组织。4)插件的生命周期,它涉及插件的安装、启动、停止、更新和卸载等

6、过程。5)服务层的实现,它提供插件之间交互的桥梁,服务层与插件的生命周期层紧密结合,形成一个动态协作模型,包括服务的注册、查找、更新和通知等4。6)主题事件服务功能,它基于 QT 的信号槽机制和服务层,实现事件的异步发送。7)跨进程统一消息交互,这里设计了一种基于主题事件服务的跨进程消息交互功能的实现。2 关键技术2.1 全生命周期管理的插件动态服务框架技术针对传统插件集成模式插件之间耦合较深的情况,基于OSGi 微内核架构,采用服务发布-发现-绑定模型,实现了具备高度动态性的插件交互模式,服务在运行过程中可以实现动态卸载和更新,有效降低插件之间的耦合度,该模型包含两个主要角色:服务发布者和服

7、务使用者,如图 2 所示。图 2 动态服务模型服务发布者将服务对象和相关属性注册到服务注册中心,框架通过事件通知服务使用者服务上线的消息,服务使用者根据自身的需求决定是否绑定和调用服务。除此之外,服务使用者也可以根据服务属性对服务进行过滤,从而查找到需要的服务进行绑定和调用。服务在运行过程中可以随时启动或者卸载,框架会通过事件通知服务使用者,以便服务使用者进行资源初始化或者资源清理操作。对于服务使用者而言,它所需要提前知道的仅仅是一个全部由纯虚函数构成的服务接口文件,并不用直接依赖服务发布者的链接库。相对于传统插件集成模式下,依赖链接库发生变化时,调用者必须同步编译修改的工作模式,基于松散耦合

8、的插件动态服务框架只要确保注册的服务名称不发生变化,依赖链接库名称、位置等发生变化均不会引起服务调用者的重编修改,这有效解决了传统集成模式下插件耦合较深的问题,提升了灵活性5。2.2 多模式应用集成技术针对传统客户端程序基于 CS 模式,采用单一进程集成方式导致的进程臃肿、系统稳定性差等问题,提出了支持进程内集成、跨进程集成、CS 集成、BS 集成的多模式应用集成技术,实现了不同业务模块之间的解耦,提升了系统鲁棒性。进程内集成模式实现了进程内 bundle 插件的模块化和生命周期管理6。模块化指在系统中插件既是逻辑模块也是物理模块,插件作为逻辑的边界时,以一种面向对象编程中访问修饰符的方式影响

9、着代码的可见性,即插件封装相对独立的逻辑功能;插件作为物理的边界时,通过文件的封装和相对独立部署实现模块化。模块化使得插件之间实现隔离,降低了插件与插件的耦合度。生命周期管理定义了插件在系统中如何动态安装和管理,一方面,在系统的外部,生命周期精确定义了插件的生命周期操作,包括INSTALLED(安装)、RESOLVED(解析)、STARTING(启动)、ACTIVE(激活)、STOPPING(停止)和 UNINSTALLED(卸载)六种状态,如图 3 所示;另一方面,在应用程序内部,生命周期层定义了插件访问其执行上下文的方式,为插件提供了一种与框架交互的途径以及一些执行的便利条件。图 3 生命

10、周期管理跨进程集成模式基于统一的进程集成规范和进程容器,为专业应用提供进程开发、启动、关闭、监控、保活、管理等功能7。系统各专业应用在独立的应用进程中开发功能,最终通过跨进程集成框架进行集成,某一个应用进程崩溃报错,不会导致整个系统的崩溃,有效提升了系统的稳定性。CS 集成是客户端主要的集成模式,支持以进程或者插2023 年第 7 期84计算机应用信息技术与信息化件的形式进行客户端集成。在传统 CS 集成模式基础上,新增了 BS 集成模式,各应用专业通过框架提供的网页容器模块,实现网页在客户端系统框架内的集成。网页容器模块基于 QtWebEngine 技术实现,底层依托于 chromium 内

11、核,提供了网页应用加载、页面管理、显示控制等功能8。不同于使用浏览器加载网页,网页容器模块提供了定制化、个性化设置能力,使得基于 BS 模式开发的界面或者功能可以无缝的融合至客户端系统中,用户从样式上无法区分功能的底层实现模式,CS 模式和 BS 模式在同一系统的客户端程序中天然融合。2.3 跨进程轻量化消息交互技术针对多模式集成框架下,进程、插件、网页之间的消息互联互通问题,提出了以动态服务模型的主题事件服务为基础,综合运用多种跨进程通信方式的跨进程轻量消息交互技术9,实现了进程内插件之间消息互通、跨进程插件之间消息互通、网页与插件的消息互通功能。基于动态服务模型的主题事件服务是实现跨进程轻

12、量化消息交互技术的基础,基于 Poco 的同步异步事件机制及 Qt信号槽机制实现,包含了主题事件的发布与订阅、主题事件的发送与接收,如图 4 所示。图 4 主题事件的发布与订阅在订阅与发布阶段,插件A(B)发布了主题A(B)事件,同时发布了主题 A 事件消息发送服务(用于发送这类主题的消息)。各接收插件可根据需要进行订阅,例如插件 1 订阅主题事件 A,插件 2 订阅主题事件 A 和 B,插件 3 订阅主题事件 B。在发送与接收阶段,任意应用插件可使用主题 A 事件消息发送服务进行这类主题事件的消息发送,完成发送之后,订阅了该主题的插件 1 和插件 2 即可接收这个消息,如图 5所示。图 5

13、主题事件的接发送与接收基于上述主题消息服务,综合运用共享内存、WebSocket等作为进程通信手段,即可实现跨进程统一消息交互能力10,如图 6 所示。图 6 跨进程轻量消息交互3 典型应用基于松耦合服务架构的软件集成方法的框架本质在于模块的拆分,这些经过拆分的模块在实施时按照业务的需求进行组装,满足应用软件的业务需求,最大限度地应对软件变更需要。微内核架构的拆分主要包含两个部分:核心系统和插件模块。内核是一个平台的最小核心,它是平台核心框架、公共类库的最小集合,没有任何业务逻辑,有一个负责插件组装的管理引擎,能够加载、卸载和运行应用所需的插件。内核必须是健壮并稳定的,用以保证平台本身的可扩展

14、性、稳定性及灵活性。插件又分为技术插件和业务插件。每个业务插件均是可独立完成某个或一系列功能的模块,是一个完整的业务描述,封装了一个业务目标所需的各种技术,业务逻辑。插件之间存在依赖关系,但只能通过指定的接口进行交互,从而实现插件间的松耦合性11。通常插件由内核的管理引擎进行加载,它不能独立运行,需要在平台内核的支撑下才可以运行,如图7所示。图 7 软件集成构建方法典型应用基于软件集成构建方法的应用流程如图 8 所示。2023 年第 7 期85计算机应用信息技术与信息化4 结束语本文提出了一种基于松耦合服务架构的软件集成构建方法,给出了该方法的实现原理、关键技术以及典型应用。该方法解耦了进程内

15、各插件之间的直接依赖关系,提升应用开发效率和代码稳定性。同时,为解决传统客户端单一进程集成模式带来的主进程臃肿、系统稳定性差等问题,实现了按专业划分应用进程的松耦合集成模式,且支持 CS 集成和 BS集成,丰富了客户端集成形态。该软件集成构建方法不仅实现了统一的消息交互机制,支撑各专业应用在多模式应用集成框架下的统一收发能力,而且基于插件的开发已成为软件开发的一种趋势,一方面可降低系统内部的耦合度,易于扩展,另一方面,提高了软件的复用度,降低开发和部署的成本,颇具应用前景。参考文献:1 杜智远,武心安.面向显控领域的软件框架设计及应用 J.指挥控制与仿真,2015,37(06):100-104

16、.2 尹维春,李青峰.OSGi动态组件管理平台的研究与实现J.科技资讯,2013,No.341(20):30.3 郝继锋,刘鸽.一种微内核分区操作系统 C 库的适配验证方法 J.航空计算技术,2017,47(03):74-79.4 刘雨坤,王中华,李亚辉,等.Linux 下基于 OSGi 的分布式系统设计与实现 J.信息技术与信息化,2022(04):77-80.5 杨正,向智敏,马世文.一种基于可变规则的松耦合实现建模方法 J.系统仿真学报,2022,34(07):1506-1511.6 戴仔强,金晓雪,余俊.基于插件的表现集成技术 J.指挥信息系统与技术,2013,4(01):38-42.

17、7 施君可.进程管理中的可视化应用研究 J.科学技术创新,2018(29):93-94.8 张 浩 然,赵 冠 华,申 艳 红 等.基 于 QtWebEngine 和Web 技术的监控系统报表组件开发方案 J.电气技术,2020,21(09):45-48.9 钱振江,卢亮,黄皓.微内核架构多线程机制的形式化设计研究 J.计算机科学,2013,40(04):136-141+163.10 蔡坤琪,赵安学,邢洁清.基于 Client/Server 模式的进程通信实现研究 J.无线互联科技,2021,18(24):5-6.11 康云强,基于插件技术的 GIS 应用框架的研究和实现 D.西安:西安电子科技大学:2011.【作者简介】韦星辰(1991),男,安徽芜湖人,本科,工程师,软件开发,研究方向为软件集成技术。占伟伟(1987),男,湖北黄冈人,博士研究生,高级工程师,研究室副主任,研究方向为三维地球与渲染引擎。何建清(1990),男,湖北宜昌人,硕士研究生,工程师,研究室副主任,研究方向为地理信息系统。冯 俊(1989),男,湖北钟祥人,硕士研究生,工程师,研究室副主任,研究方向为地理信息系统。(收稿日期:2022-12-08 修回日期:2023-01-19)图 8 软件集成构建方法应用流程

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服