>>>OSGi适合什么场景:
(1).有多个不同版本的库包,都需要被加载到同一JVM中,==>根据类全路径和版本号(组合关键字)创建类==>
(2).不适合用于bundle整个应用,适合用于接入很多包时,做到自动、纠错处理;==>在接入很多包时,有自动、纠错处理的优点
>>>使用OSGi的优势:热部署、动态配置,也就是Karaf所具备的特征中的前两个;
>>>Comparing Java EE with OSGi is like comparing apples and oranges with the additional bonus of not knowing what is what. ==>不能单纯的比较J2EE和OSGi
==>类似苹果和橘子的比较,要知道在什么时候用什么东西。谁更适合用于哪种场景
==>J2EE聚焦于异构环境和企业级范围的信息系统集成的可扩展、多层业务应用
==>OSGi只是一个小范围,通过集成多个独立的代码库到同一个JVM中;
==>OSGi是一个容器技术,类似于J2EE技术中的Servlet、JDBC、EJBs、JMS等,不对J2EE有什么影响;
==>OSGi目前还不会变为J2EE的规范,至少在JDK8之前。
>>>OSGi框架:Eclipse Equinox, Apache Felix, Knoplerfish.
>>>Eclipse就是用OSGi框架写的,还有其他的中间件产品和开源产品,包括应用服务器、企业服务总线、IDE也是用OSGi框架的。
>>>Apache Aries ==> 实现了部分OSGi规范的元部件或者组件
>>>Apache Aries ==>提供了企业级OSGi元部件,Aries是对OSGi一些企业级规范的实现,目前包含如下实现:
(1)Blueprint规范 ==>Blueprint Specification
(2)JTA事务服务规范 ==>JTA Transaction Service Specification
(3)JMX管理模型规范==>JMX Management Model Specification
(4)JNDI服务规范==>JNDI Service Specification
(5)JPA服务规范==>JPA Service Specification
(6)服务加载器仲裁规范==>Service Loader Mediator Specification
(7)子系统服务规范==>Subsystem Service Specification
>>>Blueprint服务是从Spring框架组件模型映射来的,Blueprint Container 规范为OSGi定义了一个依赖性注入(dependency injection)框架
,目的是处理OSGi的动态特性,即服务可以在任何时间变得可用和不可用,但blueprint container需要OSGi框架来运行。
>>>OSGi R5或者R4有三大部分规范:Core、Compendium<纲要>、Enterprise
>>>Manifest Headers==>重要属性项如下==>属性值间是逗号隔开,每个属性值中的区分间隔是分号
/////////////////begin////////////
Bundle-Activator: org.apache.felix.cm.impl.ConfigurationManager
Bundle-ManifestVersion: 2
Bundle-Name: Apache Felix Configuration Admin Service
Bundle-SymbolicName: org.apache.felix.configadmin
Bundle-Version: 1.6.0
DynamicImport-Package: org.osgi.service.log; version="1.3"
Embed-Dependency:
Export-Package:
Export-Service:
Import-Package:
Import-Service: org.osgi.service.log.LogService; availability:=optional; multiple:=false
/////////////////end//////////////
>>>一个bundle是一个规则的jar文件,附加的元数据放在MANIFEST文件中。bundle就是jar文件,但必须有MANIFEST文件。
>>>基于OSGi开发,你需要做什么?
(0)选择OSGi框架
(1)编写OSGi bundle ==>最关键的是Manifest文件
==>开发环境可以通过Eclipse结合Ant或者Maven
==>需要继承OSGi框架中的类或者实现其接口
(2)准备OSGi运行时环境==>karaf
(3)部署这些OSGi bundle
***、What is OSGi ==>OSGi是什么?
>>The dynamic modular system for Java ==>Java领域的动态模块系统
>>Defines a way to create true modules and a way for those==>定义了创建真正模块的方式,定义了通过在运行时进行的模块交互来构建模块化系统的方式
modules to interact at runtime to create a modular system
>>A module: a bundle ==>模块就是bundle,jar+manifest(bundle元数据)
A jar + manifest (bundle metadata)
>>Can be installed, updated, and uninstalled without restarting the JVM==>在不重启JVM的前提下可以安装、升级、卸载模块(bundle)
***、How does OSGi help?==>OSGi是如何起作用?
OSGi helps to break down a complex systems into a collection of
interacting modules ==>OSGi有助于将一个复杂系统切割成一组交互的模块。
>>Modularity ==>模块性
>>>A bundle can share/hide information at package level ==>一个bundle可以在包级别共享或者隐藏信息;
>>Lifecycle Management ==>生命周期管理
>>>Separate class loader for each bundle ==>每个bundle的类加载是隔离的;
>>>A bundle-lifecycle can be managed dynamically==>一个bundle的生命周期可以被动态管理
>>Services ==>服务
>>>Each bundle provides it's functionality as OSGi services to other bundles==>每个bundle可以作为OSGi服务,将其功能提供给其他bundle。
>>>Services are simply Java objects that implement a given interface==>服务是实现了指定接口的简单Java对象。
>>>Implementation is loosely coupled==>实现是松耦合的。
>>>Bundles reuse a single Java object registered==>Bundle可以重用被注册的单个Java对象
>>>In VM collaborative SOA model==>在同一个JVM中,可协作的SOA模型
***、A Middleware platform provides;==>中间件平台提供以下能力
>>Integration ==>集成
>>Governance ==>监管
>>Data Services ==>数据服务
>>Business Processes ==>业务流程
>>Connectivity Services ==>连接性服务
>>Identity and Security ==>身份和安全
>>Application Management ==>应用管理
>>API Management ==>API管理
***、OSGi in Middleware==>OSGi在中间件(用处)
>>Each SOA component can be represented by an OSGi bundle==>每一个SOA组件可以通过一个OSGi bundle来表示。
>>>Application Management ==>应用管理
>>>Mediation ==>仲裁
>>>Service Hosting etc. ==>服务属主等等
>>Separation of concern ==> 关注点分离
>>>Each OSGi bundle to provide a set of well-defined services==>每一个OSGi bundle提供了一组定义好的服务
>>>Loosely coupled components==>松耦合组件
>>Dynamic loading of modules ==>动态模块加载
>>>Can extend the system dynamically by installing new bundles==>通过安装新的bundle,能够做到动态扩展系统
>>>Is supported by an underlying provisioning platform==>通过下层的预配置平台来支撑
***、Carbon: An open-source fully componentized enterprise
middleware platform based on OSGi ==>Carbon是一个基于OSGi的开源的、完全组件化的企业级中间件平台。
***、模块化和版本化是中间件项目的两个核心问题
分享到:
相关推荐
这个标题“一个关于osgi的例子”暗示我们将探讨如何使用OSGi进行模块化开发。 在描述中提到,压缩包包含两个文件夹:OsgiSrc和OsgiDemo。OsgiSrc很可能是包含源代码的文件夹,开发者可以查看和学习OSGi服务的实现...
### 关于OSGI的详细资料 #### OSGI概述与SpringDM关系 OSGi(Open Service Gateway Initiative)是一个模块化平台标准,它提供了一种将应用程序和服务分解为小的、可重用组件的方法。这些组件被称为bundles,它们...
### IBM关于OSGI的资料集合知识点详述 #### 一、概述 IBM关于OSGI的资料集合主要聚焦于**开放服务网关计划**(Open Service Gateway Initiative, OSGi)的相关内容,尤其是针对Eclipse环境的管理和优化。这些资料...
以下是一些关于如何在OSGI环境中配置和使用数据库连接的知识点: 1. **服务注册与发现**:在OSGI框架中,数据库连接通常通过服务注册来实现。你可以创建一个提供数据库连接的模块(bundle),并在该模块中注册一个...
在“OSGI开发文档中文的”这个资源中,你可以找到关于OSGI技术的详细指导。这份文档可能涵盖了以下几个关键知识点: 1. **OSGI基本概念**:包括bundle、服务、生命周期(启动、停止、暂停、更新和卸载)以及类加载...
这个压缩包包含了关于OSGI的重要文档,分别是“OSGi R4核心规范文档”、“OSGi服务文档”以及“OSGi-最佳原理与实践”(王昊编著)。下面将详细介绍这些文档所涵盖的关键知识点。 首先,"OSGi R4核心规范文档"是...
本资源包含两本书籍:“OSGi原理与最佳实践(完整版)”和“OSGi in Action”,这两本书都是关于OSGi技术的深入探讨。 《OSGi原理与最佳实践》可能涵盖了以下内容: 1. **OSGi基础**:介绍OSGi的核心概念,如模块...
虽然不是直接关于OSGi,但Spring框架与OSGi的集成是常见的应用场景,这本书可能涉及: - Spring与OSGi的整合:介绍如何在OSGi环境中使用Spring,如使用Declarative Services或Blueprint API。 - 微服务架构:讨论...
此外,"OSGI实务.pdf"可能是关于OSGI实际应用的指南,而"OSGi.in.action.ppt"可能是某个关于OSGI实战的PPT演示文稿,它们都提供了深入理解和实践OSGI技术的宝贵资源。 总的来说,理解并掌握OSGI技术对于开发大型、...
**OSGi Service Platform Service Compendium** 是由 **OSGi Alliance** 发布的一份关于 OSGi 技术和服务平台的详细文档。该文档为第 4 版本,版本号 4.0.1,发布于 2006 年 7 月。OSGi 是一个模块化系统和动态部署...
7. **OSGI实战.pdf**:这本书可能是关于OSGI实际应用的指南,可能涵盖了从基础概念到高级特性的讲解,包括如何创建bundle、配置服务、处理依赖关系等。 8. **dist.rar和code.rar**:这两个文件可能包含示例代码或者...
描述中的重复信息"OSGi-lib.rar"可能是由于复制错误,但我们可以推测这个压缩包包含了关于OSGi的一些库文件或者示例代码。 标签"OSGi-lib.rar"进一步强调了这个文件与OSGi库的关联。标签通常是用于分类和搜索的...
描述中的“博文链接”指向了一个关于OSGi的博客,虽然具体内容没有提供,但我们可以推测这可能包含了一些作者对于OSGi的理解和实践经验。 标签“源码”和“工具”提示我们,OSGi不仅是一个框架,还涉及到源代码管理...
《OSGi in Practice》是Neil Bartlett于2008年9月出版的一本关于OSGi技术的实用指南。本书通过一系列章节详细介绍了OSGi框架的核心理念和技术细节,并提供了多个实际案例来帮助读者更好地理解和应用这些技术。 **...
《OSGI实战》这本书是关于OSGI(Open Service Gateway Initiative)技术的一份详细指南,它在Java开发领域中扮演着重要角色,特别是在模块化系统构建方面。OSGI是一种基于Java的动态模块系统,允许开发者创建可热插...
标题 "OSGISpring OSGISpring" 暗示了我们即将探讨的是关于OSGI(Open Service Gateway Initiative)框架与Spring框架的集成。OSGI是一种模块化系统和Java应用程序执行环境,它允许开发者将应用程序分解为独立的服务...
"whiteboard.pdf"可能是一个关于OSGI或者相关主题的研讨会或会议记录,包含了讨论的关键点、问题解答或者是设计草图,有助于理解技术的实践应用和思考过程。 通过学习这些文档,开发者不仅可以掌握OSGI、Maven和...
在标题“osgi-ds对应的demo”中,我们可以推测这是一个关于OSGi Declarative Services的示例项目。这个项目可能包含了两个部分:“1..1”和“1..n”,这可能代表了两种不同的服务关系或服务配置模式。"1..1"可能表示...