技术分享 | 2022-11-17
合迅智灵一体化智能开发平台之插件框架

模块化


就是将程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来从而构成一个整体,可以完成指定的功能以满足用户的需求。

模块之间的独立性十分重要,主要体现在以下2个方面:

1、有效的模块化(即具有独立的模块)的软件比较容易被开发出来;

2、独立的模块较易测试和维护。

模块的独立程度有个定性标准度量,这两个标准分别为内聚和耦合。划分模块的一个准则就是高内聚和低耦合。

(1)耦合

即指对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。模块耦合分为数据耦合、控制耦合、特征耦合、公共环境耦合和内容耦合。

(2)内聚

内聚标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。内聚和耦合是密切相关的,模块内的高内聚往往意味着模块间的松耦合。




插件框架


插件框架为模块化的有效实现,通过插件化的方式使模块达到低耦合、高内聚的目的。插件框架需要开发人员对业务十分熟悉,能够将业务拆分为各个独立的模块,其中包括:界面部分和业务处理这2个部分。同时,插件框架除了提供插件的加载、启动等常规功能外,还需要提供插件间的通信,毕竟模块间会涉及到数据交互。而数据通信的最好方式就是数据耦合,可以通过接口协议、发布订阅等机制实现。




合迅智灵的插件框架


合迅智灵的插件框架是插件框架的良好实现,实现了插件框架必要的插件加载和启动功能,也实现了插件的停止、卸载等功能,即:提供插件的热插拔能力。此外,除支持动态库插件外,还支持进程插件。开发者使用统一方式进行开发,由框架内核对不同类型的插件进行管理,开发者只需要继承相关的抽象类,实现部分抽象接口便可使用。合迅智灵插件框架还提供了服务调用和发布订阅两种数据交互方式,以适应使用者的不同场景。


图1:合迅智灵插件框架的基础架构





合迅智灵插件框架的功能特


● 支持动态库插件:支持与主进程、同进程的插件;

 支持进程插件:除常规动态库插件外,还支持进程插件的开发,并提供了和进程插件一致的功能接口;

● 支持集成插件:支持集成第三方的可执行程序;

● 懒加载:对于不需要启动时加载的插件,支持在运行过程中调用时进行加载;

● 依赖关系管理:加载有依赖插件的插件时,先加载其依赖的插件;依赖插件故障时,及时通知依赖该插件的插件;

● 扩展点机制:提供扩展点创建和实现机制,插件可以创建扩展点,其他插件实现扩展点后,由框架内核管理扩展点关系,扩展点创建插件(容器插件)可以定义扩展点的实际形态,最终通过框架内核激活扩展点实现该功能点;

● 热插拔:软件在运行过程中,支持卸载和加载插件;

● 服务管理:框架内核支持插件注册由其他插件调用的服务;

● 消息总线:框架内核提供发布订阅机制的

同时,为了更好的使用合迅智灵的插件框架,在合迅智灵的集成开发环境中还提供了相关的辅助工具:

● 开发向导:根据用户的输入生成模板代码,模板代码符合框架的开发规则,使用者只需要关注业务开发即可;

● 动态布局工具:可以将容器插件和功能插件进行界面动态布局,生成新的主界面。





合迅智灵插件化软件开发框架可以做到


1、持续降低开发成本

随着业务的不断积累,通过降低业务模块之间的耦合度,提高业务系统代码的复用率;

2、提高团队的协作能力

使用框架可以使代码结构规范化,可降低团队的沟通成本,利于多人协作;

3、持续维护及灵活扩展

通过对业务领域的细分和重用,能有效降低软件的后续维护及扩展成本;

4、大幅度提高大型软件的开发效率

在大型项目的软件开发过程中,不断抽离出很多基于不同业务领域的通用模型,可在大量的业务中进行多次复用。

5、全方位实现动态场景切换

在业务应用中,每套软件对权限都有一定的限制,合迅智灵框架可以实现动态切换场景,使用户在使用过程中通过权限切换当前可用的插件。

推荐新闻
返回列表
试用申请
立即申请
试用申请