1 / 12
文档名称:

OSGi开发手册.doc

格式:doc   大小:694KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

OSGi开发手册.doc

上传人:xunlai783 2018/5/3 文件大小:694 KB

下载得到文件列表

OSGi开发手册.doc

相关文档

文档介绍

文档介绍:OSGi开发指南
面向服务的组件开发。
OSGi本身最重要的设计思想就是面向服务的组件模型,因此基于OSGi而构建的系统自然就应该是面向服务式的。 ponent之间的通讯应均以OSGi Service的方式来进行通讯。

在开发系统的时候,。例如在开发登陆验证的DEMO中,首先创建一个Bundle,这个Bundle中只有一个接口,Validator(String name,String password) ,对外export这个借口所在的包。
当要提供提供验证的Bundle的时候,只需要实现这个Validator接口。
图 1(来源OSGi实践电子书)
如图1所示。为了验证登陆,根据需求可以提供不同类型的验证方式。这样不需要修改任何代码,将不需要的验证服务的bundle停止,将相应的bundle启动就可以,具体细节是有OSGi平台来处理。

组件的定义
Component和Service从定义上来看是差不多的,ponent,ponent到底有什么作用呢:
􀁺对外提供Service;
􀁺 ponent提供的Service;
􀁺交由OSGI框架管理生命周期。
组件和Bundle 的关系。组件在bundle中,对外提供服务的。
组件和Bundle的关系
Services Bundle:在OSGi中,服务是通过Java的接口来定义的,我们可以把定义服务的Java接口集中一个Services Bundle中,并由这个Bundle向其它Bundle提供接口。
服务提供者Bundle:实现Services Bundle提供的接口并向OSGi框架注册服务。在本例中,我们要实现对各类设备的监视,对于每一个需要监视的设备,均可以实现一个单独的服务提供者Bundle来提供相应的监视功能。
服务使用者Bundle:引用Services Bundle提供的接口向OSGi框架请求相应的服务,本例中主要实现一个服务使用者Bundle,它是一个控制台程序,用于执行相应的系统管理服务,并在控制台中向用户显示相应的系统管理信息。
整个程序是由OSGi框架以及运行于OSGi框架内的一批Bundles组成,Bundle之间的协作关系见下图:
图2 (来自IBM网站)
黄色的线代表向框架组测相应的服务,关于服务注册这个部分,我们使用DS。简单点说就是通过XML配置文件来描述服务,然后框架通过描述服务的XML来注册服务,这样做有几个好处。一是避免了启动的时候的依赖,减少编码量,减少内存的占用。
简介(Declarative Services)
Declarative Services 是一个面向服务的组件模型,它制订的目的是更方便地在 OSGi 服务平台上发布、查找、绑定服务,对服务进行动态管理,如监控服务状态以及解决服务之间的复杂的依赖关系等问题。Declarative Services 采用服务组件的延迟加载以及组件生命周期管理的方式来控制对于内存的占用以及启动的快速,很好的解决了传统的 OSGi 服务模型在开发和部署比较复杂应用时内存占用大、启动慢等问题,并且对服务组件的描述采用XML来实现,十分便于用户理解和使用。在 Declarative Services ponent 可以是 Service 的提供者和引用者,ponent 可以提供 0 至多个 Service,也可以引用 0 至多个 Service,ponent 方式封装 Service,方便了对 Service 的复用,从开发者的角度来看,该服务组件模型简化了在 OSGi 服务平台中的编程模型。
. 这个bundle.

打开Eclipse ,点击run -> run configuration 如下图所示。

找到OSGi Framework 然后右建–> 新建。在目标平台Target Platform中旋转以下bundle,如图所示。
然后点击 Apply。
点击Run运行,如果控制台有如下信息
代表已经启动了。通过SS 命令查看个bundle的状态。
如果所有的bundle的状态都为”ACTIVE”,就可以了。然后打开浏览器输入
http://localhost:80 (默认端口为80)如果显示如下信息,恭喜你,环境已经搭配完成了。

在OSGi环境开发Servlet和普通的WEB有很多不同的地方。