业务组件松耦合设计-OSGI
业务组件以 Web 服务的方式提供接口,通过企业服务总线连接,业务组件内部为了实现高可复用性和高效性,采用基于 OSGi 标准进行构建模块,实现内部模块之间的松耦合,即在业务组件内部基于 OSGi 标准进行模块化设计,将业务组件进一步分解为松耦合的模块(Bundle),使得业务组件本身更加灵活。
基于 OSGi 标准,业务组件内部的模块通过一个具有动态加载类功能的微内核连接,统一管理各个模块,为了便于管理,将不同模块之间的类接口采用服务注册的方式进行管理,具有类动态加载功能的微内核和类接口管理组成类总线(JCB)的基本功能,为了更好的实现重用,有些模块是共用的,比如数据访问模块、日志管理模块等。
在一个应用中,不同业务组件公用的功能,作为应用内部的公共组件,一个应用中部署一个公共组件即可,各个业务组件共用。在一个业务组件中,不同模块公用的功能,作为公共模块,相当于工具类,公共模块需要在每个业务组件中部署。公共服务平台作为企业级的公共服务对外提供企业级的 Web 服务,比如主数据管理等。业务组件构成如下图所示:
图 2. 业务组件模型(公共类-公共组件-公共服务平台)
![图 2. 业务组件模型(公共类-公共组件-公共服务平台)](https://i-blog.csdnimg.cn/blog_migrate/b96d1fd0157555b1f88b705af8f2275c.png)
注:
业务组件中的公共组件和公共服务平台的差异是公共组件是应用内部的,提供应用级别的服务;公共服务平台则是面向企业整个系统的,是提供系统级的服务,两者有时候可以互相替换,主要是看其处于那个级别。