OSGi

来自开放百科 - 灰狐
(版本间的差异)
跳转到: 导航, 搜索
(链接)
(图集)
 
(未显示1个用户的43个中间版本)
第13行: 第13行:
  
 
软件组件架构致力于一个软件开发中越来越大的问题:大量的基础配置需要开发和维护。标准化的OSGI组件架构显然可以简化这个配置过程。
 
软件组件架构致力于一个软件开发中越来越大的问题:大量的基础配置需要开发和维护。标准化的OSGI组件架构显然可以简化这个配置过程。
 +
 +
==版本==
 +
[https://docs.osgi.org/specification/ OSGi Specification]
 +
*R8
 +
*R7 2018年4月
 +
*R6 2015年6月
 +
*R5 2013年12月
 +
*R4 2005年10月
 +
*R3 2003年3月
 +
*R2 2001年10月
 +
*R1 2000年5月
  
 
==目标==
 
==目标==
第45行: 第56行:
  
 
==项目==
 
==项目==
 +
[https://github.com/rebaze/awesome-osgi Awesome OSGi] [[文件:awesome.png]]
 +
*[https://github.com/osgi/design OSGi design repository on GitHub]
 +
*[[ONOS]]
 +
*[[Eclipse Equinox]]
 +
*[[Apache Felix]]
 +
*[[Apache Karaf]]
 +
*[[Apache CXF]]
 +
*[https://openliberty.io/ Open Liberty]
 +
*[https://www.eclipse.org/gemini/ Gemini] - Enterprise Modules Project
 +
*[https://www.eclipse.org/concierge/ Eclipse Concierge] OSGi for mobile and embedded devices
 +
*[https://www.eclipse.org/ecf/ Eclipse Communication Framework (ECF)]
 +
*[[GlassFish]]
 +
*[https://bnd.bndtools.org/ BND]
 +
*[https://bndtools.org/ Bndtools]
 +
*[[iDempiere]]
 +
*[[Kettle]]
 
*[http://projects.eclipse.org/technology-type/osgi Eclipse OSGi projects]
 
*[http://projects.eclipse.org/technology-type/osgi Eclipse OSGi projects]
 +
*[https://www.eclipse.org/libra/ Eclipse Libra]
 
*[https://github.com/hstaudacher/osgi-jax-rs-connector OSGi - JAX-RS Connector]
 
*[https://github.com/hstaudacher/osgi-jax-rs-connector OSGi - JAX-RS Connector]
 
*[https://github.com/w11k/scalamodules ScalaModules]
 
*[https://github.com/w11k/scalamodules ScalaModules]
第54行: 第82行:
 
*[https://github.com/bndtools Bndtools]
 
*[https://github.com/bndtools Bndtools]
 
*[[Spring Dynamic Modules]]
 
*[[Spring Dynamic Modules]]
*[[Eclipse Equinox]] - http://www.eclipse.org/equinox/
+
*[https://wiki.eclipse.org/RT EclipseRT]
*[[Apache Felix]] - http://incubator.apache.org/felix/
+
*[https://www.eclipse.org/gemini/ Enterprise Modules Project (Gemini)]
 +
*[[Apache Camel]]
 
*[[Apache Aries]]
 
*[[Apache Aries]]
*[[Knopflerfish]] - http://www.knopflerfish.org/
+
*[[Apache Ignite]]
*[[ServiceTango]] - http://servicetango.sourceforge.net/
+
*[[Apache ServiceMix]]
*[[Oscar]] - http://oscar.objectweb.org/
+
*[[Apache Sling]]
*[http://projects.eclipse.org/projects/rt.concierge Eclipse Concierge] - an OSGi R5 framework for IoT applications
+
*[http://celix.apache.org/ Apache Celix]
 +
*[http://clerezza.apache.org Apache Clerezza]
 +
*[https://taverna.incubator.apache.org Apache Taverna]
 +
*[[Knopflerfish]]
 +
*[[ServiceTango]]
 +
*[[Oscar]]
 +
*[[Akka]]
 
*[https://github.com/sercxtyf/onboard Onboard] 敏捷软件开发协同工具
 
*[https://github.com/sercxtyf/onboard Onboard] 敏捷软件开发协同工具
 
*[https://github.com/wmzsoft/JXADF OSGi插件化快速开发平台JXADF]
 
*[https://github.com/wmzsoft/JXADF OSGi插件化快速开发平台JXADF]
 +
 +
==Spring==
 +
[[OSGi]]和[[Spring]]的融合
  
 
==Cloud==
 
==Cloud==
第68行: 第106行:
  
 
==应用==
 
==应用==
 +
[https://www.osgi.org/business/success-stories/ OSGi成功案例]
 
*[http://www.infoq.com/cn/news/2008/02/osgi_jee IBM、BEA和JBoss应用服务器采用OSGi]  
 
*[http://www.infoq.com/cn/news/2008/02/osgi_jee IBM、BEA和JBoss应用服务器采用OSGi]  
*BMW汽车的应用控制系统采用OSGI作为其底层架构, 这套系统主要用来控制汽车上的音箱、灯光等等设备,总共由1000多个Bundle构成,但BMW汽车的应用控制系统启动时间却只需要3.5秒
+
*BMW汽车的应用控制系统采用OSGI作为其底层架构, 这套系统主要用来控制汽车上的音箱、灯光等等设备,总共由1000多个Bundle构成,但BMW汽车的应用控制系统启动时间却只需要3.5秒。[http://docs.huihoo.com/osgi/OSGi-Technology-in-the-Vehicle.pdf OSGi Technology in the Vehicle]
 +
*[[Liferay]]
 +
 
 +
==行业==
 +
*[https://www.osgi.org/business/markets-and-solutions/telematics/ 车联网]
 +
*[https://www.osgi.org/business/markets-and-solutions/markets-and-solutions%e2%80%8einternet-of-things/ 物联网]
 +
*[https://www.osgi.org/business/markets-and-solutions/smart-home/ 智能家庭]
 +
*[https://www.osgi.org/business/markets-and-solutions/e-health/ 数字医疗]
 +
*[https://www.osgi.org/business/markets-and-solutions/enterprise/ 企业]
 +
*[https://www.osgi.org/business/markets-and-solutions/mobile/ 移动]
  
 
==文档==
 
==文档==
第81行: 第129行:
 
*[http://docs.huihoo.com/apache/apachecon/us2014/Apache-Sling-a-REST-based-Web-Application-Framework.pdf Apache Sling – A REST-based Web Application Framework]
 
*[http://docs.huihoo.com/apache/apachecon/us2014/Apache-Sling-a-REST-based-Web-Application-Framework.pdf Apache Sling – A REST-based Web Application Framework]
 
*[http://docs.huihoo.com/apache/apachecon/us2011/11-Friday/A-Modular-Java/A-1530-Using-OSGi-to-Build-Better-Software.ppt Using OSGi to Build Better Software]
 
*[http://docs.huihoo.com/apache/apachecon/us2011/11-Friday/A-Modular-Java/A-1530-Using-OSGi-to-Build-Better-Software.ppt Using OSGi to Build Better Software]
 +
 +
==Training==
 +
*[https://github.com/Waleon/CTK-examples OSGI for C++ - 通往架构师之路]
  
 
==图集==
 
==图集==
 
<gallery widths=100px heights=100px perrow=6>
 
<gallery widths=100px heights=100px perrow=6>
 +
image:layering-osgi.png|OSGi
 +
image:OSGi-architecture.png|OSGi架构
 +
image:OSGi-Service-Layer.png|OSGi服务
 
image:osgi-container-security-architecture.gif|OSGi容器安全
 
image:osgi-container-security-architecture.gif|OSGi容器安全
 
image:osgi-enroute-authentication-api.png|Enroute身份验证API
 
image:osgi-enroute-authentication-api.png|Enroute身份验证API
 +
image:Modularity-Maturity-Model.png|Modularity Maturity Model
 +
image:Next-Level-of-Modularity.png|Modularity
 +
image:OSGi-Service-Component-Runtime.png|OSGi SCR
 +
image:OSGi-CDI-Integration.png|OSGi CDI integration
 +
image:Spring-vs-OSGi.png|Spring vs OSGi
 +
image:Jakarta-EE-on-OSGi.png|Jakarta EE on OSGi
 
</gallery>
 
</gallery>
  
 
==链接==
 
==链接==
 
*[http://www.osgi.org OSGi官网]
 
*[http://www.osgi.org OSGi官网]
 +
*[http://enroute.osgi.org/ OSGi enRoute]
 
*[http://www.osgi.com.cn/ OSGi中文社区]
 
*[http://www.osgi.com.cn/ OSGi中文社区]
 
*[http://docs.huihoo.com/osgi/ OSGi文档]
 
*[http://docs.huihoo.com/osgi/ OSGi文档]
第96行: 第157行:
 
一个实体要“敏捷”,它的结构就需要有高度的模块化。因此,关于敏捷的问题应该从“如何构建敏捷的业务系统?”变成“如何构建高度模块化的业务系统?”
 
一个实体要“敏捷”,它的结构就需要有高度的模块化。因此,关于敏捷的问题应该从“如何构建敏捷的业务系统?”变成“如何构建高度模块化的业务系统?”
 
*[http://blog.vogella.com/2016/06/21/getting-started-with-osgi-declarative-services/ Getting Started with OSGi Declarative Services]
 
*[http://blog.vogella.com/2016/06/21/getting-started-with-osgi-declarative-services/ Getting Started with OSGi Declarative Services]
 
+
*[https://jaxenter.com/modularity-microservices-and-containers-124086.html Modularity, Microservices and Containers]
{{comment}}
+
  
 
[[category:OSGi]]
 
[[category:OSGi]]
 
[[category:java]]
 
[[category:java]]

2020年10月13日 (二) 01:44的最后版本

Wikipedia-35x35.png 您可以在Wikipedia上了解到此条目的英文信息 OSGi Thanks, Wikipedia.
OSGi.png

OSGi - The Dynamic Module System for Java

OSGi还是模块化领域中的一个工具,可用于模块化并在模块之间强制施加边界。随着项目规模的不断扩大,强有力的模块化系统所带来的价值已经超越了实现模块化的代价。

目录

[编辑] 新闻

自http://www.osgi.org/blog/atom.xml加载RSS失败或RSS源被墙

[编辑] 简介

OSGi规范为网络服务定义了一个标准的、面向组件的计算环境。将OSGI服务平台添加到一个网络设备中,可以为其增加在网络的任何地方管理组件的生命周期的能力。软件组件可以从运行中被安装、升级或者移除而不需要中断设备的操作。软件组件可以动态的发现和使用其他库或者应用程序。通过这个平台,软件组件可以作为商品在柜台中出售以及在家里开发。OSGi联盟已经开发出很多标准组件接口,从普通的功能如:HTTP server、configuration、 logging、security、user administration、XML等等很多。一致的插件机制可以使这些组件满足不同买主的不同需求。

软件组件架构致力于一个软件开发中越来越大的问题:大量的基础配置需要开发和维护。标准化的OSGI组件架构显然可以简化这个配置过程。

[编辑] 版本

OSGi Specification

  • R8
  • R7 2018年4月
  • R6 2015年6月
  • R5 2013年12月
  • R4 2005年10月
  • R3 2003年3月
  • R2 2001年10月
  • R1 2000年5月

[编辑] 目标

OSGi的用途和目标:

  • 降低复杂性:OSGi 由捆绑包组成。捆绑包(Bundles) 是完全模块化的,只通过服务接口相互通信。
  • 重用:由于 OSGi 捆绑包是完全模块化的,因此它们支持更好的重用。有些开源项目将它们的 Java 类打包到与 OSGi 捆绑包兼容的 JARs 中。
  • 易于部署:OSGi 框架提供一个标准化的 API,以支持 OSGi 实现使用一些工具来安装、启动和停止 OSGi 捆绑包。
  • 动态更新:由于 OSGi 捆绑包是模块化的且易于部署,因此无需重新启动应用程序即可进行更新。
  • 版本控制:捆绑包的动态更新和沙箱化特性支持轻松部署和使用捆绑包的不同版本,而不会在 JARs 之间遇到冲突。类加载被沙箱化到每个捆绑包,因此日志记录框架这样的依赖项在捆绑包之间即使不同也不会导致问题。

[编辑] Maven

[编辑] 框架

Osgi framework.jpg

OSGi规范的核心组件是OSGi框架。该框架为应用程序(被成为bundles)提供一个标准化的环境。这个框架被分为以下几个层次:

  • L0: 执行环境
  • L1: 组件模块
  • L2: 组件生命周期管理
  • L3: 服务注册

另外,还有一个安全机制深深的缠绕在所有的层中。

The OSGi R4 Core Framework services include the following:

  • Package Admin Service Specification
  • URL Handlers Service Specification
  • Start Level Service Specification
  • Conditional Permission Admin Specification
  • Permission Admin Service Specification

Oscar Bundle Repository is an incubator and repository for OSGi bundles.

[编辑] 项目

Awesome OSGi Awesome.png

[编辑] Spring

OSGiSpring的融合

[编辑] Cloud

[编辑] 应用

OSGi成功案例

[编辑] 行业

[编辑] 文档

[编辑] Training

[编辑] 图集

[编辑] 链接

一个实体要“敏捷”,它的结构就需要有高度的模块化。因此,关于敏捷的问题应该从“如何构建敏捷的业务系统?”变成“如何构建高度模块化的业务系统?”

分享您的观点
个人工具
名字空间

变换
操作
导航
工具箱