19

请设计一个核心功能稳定适合二开扩展的软件系统

 4 years ago
source link: http://www.cnblogs.com/snidget/p/12789587.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

YNvM7ri.png!web

如何设计出核心功能稳定,业务功能不断扩展的软件系统,我想到了微内核架构。

定义

微内核架构又叫做插件架构,是面向功能进行拆分的可扩展架构。

比如:Eclipse插件,Linux ;

架构图

jqEJ3aM.png!web

Zzqi22u.jpg!web

插件管理

插件注册表机制:名字,位置,加载时机;

插件连接

指的是插件如何连接到核心系统。

fQbYj22.jpg!web

插件间通信

插件之间是解耦的,插件之间通信必须通过核心系统,核心系统提供插件的通信机制;

OSGI

Open Services Gateway initiative  主动开放服务网关;

OSGi 具备动态化、热插拔、高可复用性、高效性、扩展方便等优点;

最具代表性的是Eclipse的插件,采用的是OSGI规范设计规范。

OSGI框架

aiuENfi.jpg!web

OSGI架构图

BnARRfy.png!web

MJjQFn6.jpg!web

规则引擎

属于微内核架构的一种实现,执行引擎对应core system核心系统(微内核),执行引擎执行配置好的业务流程,规则,通过这种方式来支持业务的灵活多变。

工作场景:

bQnI7fM.png!web 工作流程:

MbURfqq.jpg!web

对应微内核架构的插件核心:

maaqEn7.jpg!web

代表产品 jboss drools, 基于 rete算法实现规则引擎,他的规则语言接近编程语言,一般包装成可视化界面来间接生成。

小结

本篇首先定义了微内核架构,即 面向功能拆分的可扩展架构。

以及他的组成部分,即内核和插件。

以及它需要解决的核心问题,插件管理,插件连接,插件间通信;

最后介绍了两种微内核架构,OSGI 和规则引擎 ;

原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。

我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!

UfyIR3V.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK