论坛首页 Java企业应用论坛

OpenCore中的核心概念:服务(Service)与插件(Plugin)的定义

浏览 5394 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-01-05  
OpenCore纯插件体系结构中的核心概念包括:微内核、插件与服务。

微内核
(MicroKernel)提供基础的插件与服务架构;负责插件的生命周期管理,包括插件的安装(Install)、启用(Activate)、停止(Deactivate)与卸载(Uninstall);负责服务的生命周期管理,包括服务的注册(Register)、发现(Lookup)、启动(Start)、停止(Stop),服务间的依赖绑定。

OpenCore微内核分两层:
  1. 应用系统的核心层:以OSGi为基础
  2. 增强层:IoC实现、扩展点机制与RMI插件

插件(Plugin)OpenCore是一个纯插件结构的系统,包括内核在内的所有特性都由插件构成。插件是对系统中静态结构方面的抽象,满足某种约束并提供自描述的物理软件模块。OSGi中插件叫Bundle,物理上是一个提供自描述文件(MANIFEST.MF)的Jar文件。插件可以被动态的安装、激活、去激活与卸载。插件包含多个服务(Service)对象。

插件间的依赖关系包括两种:
  1. 物理依赖,即插件间的Class依赖,例如A插件Import B插件的Class
  2. 逻辑依赖,插件A中的服务依赖插件B中的服务。
插件的概念描述图如下:



服务(Service)系统中动态结构方面的抽象,是运行时的概念,是具有良好接口与自我描述的业务功能提供者。Java平台上是一个具有良好接口对象实例。服务可以被注册、发现、启动与停止。运行时,服务间在同一JVM内通过传引用(By-Reference)依赖协作,在不同JVM内通过RMIJMSREST等传值方式(By-Value)通信协作。

服务的概念描述图如下:



服务间依赖关系(Dependency and Relations)有三种:

  1. 进程间通过连接器(Connector)以传值(By-Value)方式通信和协作
  2. 进程内通过Java接口调用以传引用(By-Reference)方式通信协作
  3. 进程内一个服务可以作为对另一服务的扩展

服务间关系的概念描述图:


论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics