`
erylee
  • 浏览: 109699 次
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多
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. 进程内一个服务可以作为对另一服务的扩展

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


分享到:
评论

相关推荐

    eclipse插件开发实战

    - **定义扩展点**:根据插件的功能需求,在 `plugin.xml` 文件中定义相应的扩展点。 - **编写插件代码**:实现插件的主要功能,包括 UI 组件、后台处理逻辑等。 - **打包发布**:将插件打包成 JAR 文件,并确保...

    OSGI 实例eclipse插件开发

    9. `org.springframework.osgi.core`:这是Spring OSGI的核心模块,包含了一些基础的OSGI服务和工具,用于在OSGI环境中操作和管理bundle。 在实际开发中,开发者会根据需求选择和配置这些模块,创建自己的OSGI ...

    71-详解 ML2 Core Plugin(I)1

    在Neutron的设计中,Core Plugin扮演着核心角色,它处理网络资源(如networks, subnets, ports)的生命周期管理,并与agent协同工作以实现实际的网络功能。ML2 Core Plugin是Neutron的一种模块化设计,旨在解决传统...

    egg服务器架构文档.docx

    ### Egg.js 服务器架构知识点详解 #### 一、Egg.js 框架简介与特点 ...通过上述知识点的学习,可以较为全面地了解 Egg.js 框架的基本用法及核心概念。Egg.js 提供了强大的功能集,适合用于开发复杂的后端服务。

    osmf_dev_guide

    - **Plugin Interface**: 定义了插件与核心框架之间的交互接口。 - **Plugin Manager**: 负责管理插件的加载和卸载。 - **Plugin Examples**: 提供了一些示例插件来帮助开发者快速上手。 **3. 事件驱动** - **...

    OpenDayLight代码学习研究.pdf

    在核心API中,sal-core-api提供了基础的网络设备管理能力。而服务抽象层(SAL)则负责抽象和封装网络服务,为上层应用提供统一的数据和事件模型。ODL的SAL支持包括OpenFlow、BGP、LDP等多种南向协议。 OpenDaylight...

    70-Neutron 如何支持多种 network provider1

    Linux Bridge Core Plugin 运行在 Neutron Server 上,它实现了 Neutron 的核心 API,并与数据库交互以存储和检索网络资源的信息。同时,它会向 Linux Bridge Agent 发送指令,指示如何在计算节点和网络节点上配置 ...

    Eclipse_中文教程_完美版

    - 插件程序片段(plugin fragments)是一种特殊插件形式,它们可以添加到现有插件中,扩展其功能。 - Eclipse的插件体系使得开发者能够轻松地为Eclipse添加新功能,这正是Eclipse高度可扩展性的体现。 这份中文...

    jsTree1.0开发技术指南

    本文将深入探讨 jsTree 1.0 的核心概念、配置、操作以及插件的使用。 ### 一、jsTree 1.0 的基本使用 #### 1. 引入依赖库 在开始使用 jsTree 1.0 时,必须先引入 jQuery 库(最低要求是 1.4.2 版本)。在 HTML ...

    快速生成基于ES6的热更新环境用于快速验证一些代码

    Webpack的核心概念是“模块”,它能将各种类型的资源(如JavaScript、CSS、图片等)视为模块进行处理。配合`webpack-dev-server`,我们可以实现热更新,即在代码修改后无需手动刷新浏览器就能看到更新效果。 安装...

    aspvnextwebpack:将 webpack 与 asp.net vnext 应用程序一起使用的示例

    Webpack 的核心概念包括模块、加载器(loaders)和插件(plugins)。模块允许你将应用程序分解为小块,加载器则负责转换这些模块,如将 ES6 转换为 ES5 或 CSS 提取到单独的文件。插件可以执行更复杂的任务,如注入...

    黑苹果显卡驱动

    5. 安装与配置:在黑苹果系统中安装这些驱动时,通常需要在Clover或OpenCore引导加载器中进行配置,以便系统在启动时加载正确的驱动。此外,可能还需要调整EFI固件设置,以及根据硬件配置更新驱动文件。 6. 风险与...

    webpack4.x_react_proj

    Webpack 4.x 与 React 项目配置详解 ...通过理解这些核心概念和配置,你可以构建出一个高效的前端开发和生产环境,实现 React 应用的快速开发和部署。记得在实际操作中,根据项目需求进行适当的调整和扩展。

    Struts2+Spring+JPA的Jar包

    在Jar包中,你会找到如`struts2-core`、`struts2-convention-plugin`等核心组件和插件。 Spring框架则是一个全面的后端解决方案,涵盖了依赖注入(DI)、面向切面编程(AOP)、数据访问、事务管理等多个方面。...

    新版Android开发教程.rar

    开放手机联盟, Open Handset Alliance :是美国 Google 公司与 2007 年 11 月 5 日宣布组建的一个全球性的联 盟组织。这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 ...

    从零开始搭建webpack+react开发环境的详细步骤

    Webpack是一个模块打包工具,它将JavaScript、CSS、图片等资源视为模块,通过配置和使用各种loader(加载器)与plugin(插件),将它们打包成可运行的代码。React则是一个用于构建用户界面的JavaScript库,特别是...

    demo-ps-cross-platform-with-ionic:有关如何使用ionic创建跨平台应用程序的演示

    在IT行业中,跨平台应用程序开发是一项重要的任务,它允许开发者编写一次代码,...在`demo-ps-cross-platform-with-ionic-master`这个项目中,你可以找到一个实际的示例,进一步了解这些概念如何在实际应用中得以体现。

Global site tag (gtag.js) - Google Analytics