开发工具:
文件大小: 634kb
下载次数: 0
上传时间: 2019-04-06
详细说明:NULL
博文链接:https://itway.iteye.com/blog/1545218WwW.nasu.com
oSGi原理与最佳实践学习笔记
OSGi
Service
Lifecycle
Apps
Module
国
Java runtime Environment
Operating System
Gi层次结构
模块层
Bundle是OsGi中的基本组件,其表现形式仍然为Java概念中传统的Jar包,同时通过
META-NF日永下的 MANIFESTME文件对其予以进一步的定义。通常一个 MANIFESTME文
件的内容如下所示
Manifest∨ ersion:1.0
Bundle-ManifestVersion: 2
Bundle-Name: Util
Bundle-SymbolicName: com. ibm director. la util
Bundle-Version: 1.0.0.qualifier
Bundle-Activator com ibm director a, utilActivator
Bundle-Vendor: IBM
Bundle- Required Execution Environment: JavaSE-16
Import-Package: org. osgi framework; version=1.3.0
Bundle-Activation Policy lazy
Export-Package: com. ibm director. la util; uses: =" org. osgi framework
Bundle-ClassPath: libs/jfreechart-1.0. 13-swt jar
libs/jfreechart -1.0.13.jar,
libs/ifreechart-1.0. 13-experimental jar
MANIFEST. MF文件示例
乜就是说, MANIFESⅧ文件存储的实际上是 Bundle的元数据,元数据的内容能够精确的
定义 Bundle的各种特征,同时能够更好的对 Bundle进行标识同时帮组用户的对 Bundle
3交流社区:htp/ bbs, naxsucom交流群:125035597
Www.nasu.com
oSGi原理与最佳实践学习笔记
进行理解。例如,通过配置 Import- Package可以指明当前 Bundle需要哪些其他的包,而
通过配置 Export- Package则可以表示当前 Bundle的哪些 package对外部可见。不难理解,
通过这种方式可以有效的对 Bundle内部和外部进行隔离。其他更多軋置请参考相关瓷料。
Bundle可以被动态地安装、启动、停止和卸载
Bundle是服务( Service和组件( Component的载体。
在OSG中,每个 Bundle都有自己独立于其他 Bundle的 Classloader,正因为这样,各个 Bundle
内部的类是隔离的。
Bundle之间的交互方式
1通过 Package的 Export(对外暴露自己的一个或多个 package和 mport(导入别人的一个或多
个 package来进行
2通过 Service的方式进行。一个 Bundle作为 Service提供方,对外提供 Servcie.使用者可以
查找到提供的 Service.并使用这个 ServIce.而提供/使用 Service又存在两种方式:一种是绎
典的做法,通过 Bundlccontext( Bundle的上下文)米提供和获取.一种是使用 Declarative
Service来实现.
生命周期层
Bundle的生命周期被osG框架所管理,具有如下几个状态:| NSTALLED、 RESOLVED、
UNINSTALLED、 STARTING、 ACTIVE、 STOPPING状态之间的转换关系如下图
Insta
update
INSTALLED
refresh
x STARTING
start
RESOLVED
ACTIVE
stop
STOPPING
UNINSTALLED
Bund|e状态转换关系图
4交流社区:htp/ /bbs. naxsucom交流群:125035597
WwW.nasu.com
oSGi原理与最佳实践学习笔记
服务层
一个 OSGi service就是注册到oSGi框架中的一个Java对象。这注册的时候可以
设置这个 Service的属性。而在获取 Service的进候可以根据属性进行过虑( Filter),
Bundle可以通过 Bundle的上下文去注册 Service或去查询 Service
OSGi Framework
ookup service
Register Service
Invoke service
Bundle b
Bundle a
(Service Consumer)
(Service Provider)
服务模型示例图
Service-Oriented Component Model(SoCM)
首先米看 Component的慨念 Component和 Service从定义上看差不多,任何-个普通的Java
对象都可以通过配置文件中的定义而变为一个 Component Component对外提供」服务并且
可以使用其他 Component提供的服务, Component的生命周期被osGi框架所管理我们可
以看到, Component是提供和使用服务的另外一和方式,并且具有生命周期.
SoCM在字面上的意思就是面向服务的组件模型在这个模型中 Component是服务的载体,
提供对外使用的服务并可能使用外部的服务,而 Component存在于 Bundle之中,系统由多
个 Bundle组成
Bundle
B
uncle
Component
Component
a
Javi
ject
component
component
Java
Javs
Obiect
object
Component
Component
SoCM示意图
5交流社区;htp/obs.nasu.com交流群:125035597
Www.nasu.com
oSGi原理与最佳实践学习笔记
Declarative Service(Ds)
Declarative service(DS)是 OSGi Core framework的一个标准服务,D5让我们在 Bundle中定义
Component,通过配置的方式发布服务、获取服务,以帮助我们实现前面提到的SOCM。有
了DS,我们就可以按照 Component+ Service的方式进委系统的设计与开发。
6交流社区:htp/ bbs, naxsucom交流群:125035597
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.