基于Eclipse开发OSGI的简单实例

基于Eclipse开发OSGI的简单实例


一.        概述

OSGI SERVICE PLATFORM是一个基于JAVA的,开放并且提供统一接口标准的体系框架,

OSGI中所有模块的部署都必须以Bundle 的方式来进行部署。基于这个体系框架,服务提供商,程序开发人员,软件提供商,服务网管运营商,设备提供商能够 协调地联合起来开发,部署以及管理向用户提供的各种服务。

(a)     OSGI的优势:

1.  插件可热插拔    可以实现软件的动态升级

2. 代码维护               不同Bundle间依赖仅存在于接口的层面上, 有利于代码的维护。

3. 稳定、高效的系统

基于OSGI的系统采用的是微核机制,微核机制保证了系统的稳定性,微核机制的系统只要微核是稳定运行的,那么系统就不会崩溃,也就是说基于OSGI的系统不会受到运行在其中的Bundle的影响,不会因为Bundle的崩溃而导致整个系统的崩溃。

4. 规范的、可积累的模块

大部分软件公司都形成不了规范的模块开发方式,因为没有统一的规范的基础架构体系的定义,往往每个项目、每个产品都会因为架构师的偏好、技术的发展而导致模块的开发方式完全不同,这就使得软件公司在人员技能要求、培养上很难形成统一,而OSGI为这个问题提供了解决方案,基于OSGI的系统采用规范的模块开发、部署方式构建系统。

 

(b)Bundle划分规则

 

采用OSGi技术实现应用系统时,最终展现在我们面前的将是一个个的Bundle组件,那么一个应用系统应被划分为几个bundle合适呢?这就涉及到了bundle划分的实现粒度问题。我比较倾向于按层次划分的方式,下面的实例开发都将采用该种结构划分。

根据层次进行划分:

<1>Services Bundle:在OSGi中,服务是通过Java的接口来定义的,可以把定义服务的Java接口组成一个Services Bundle,并由这个Bundle向其它Bundle提供接口。

<2>服务提供者Bundle:实现Services Bundle提供的接口,并向OSGi框架注册服务。

<3>服务使用者Bundle:引用Services Bundle提供的接口,并向OSGi框架请求相应的服务。

 

二.   使用SpringDM的开发实例

a)         环境搭建

                         i.              添加Spring环境

 

下载spring dynamic module,当前版本是1.0-rc2。将以下jar放到eclipse/plugins目录下。

spring-osgi-core-1.0-rc2.jar

spring-osgi-io-1.0-rc2.jar

spring-osgi-extender-1.0-rc2.jar

 

                       ii.              添加Spring-OSGI环境(SpringDM

 

下载spring,当前版本2.5.1,将以下jar放到eclipse/plugins目录下。

spring-beans-2.5.1.jar

spring-aop-2.5.1.jar(依赖aopalliance.osgi-1.0-SNAPSHOT.jar

spring-core-2.5.1.jar

spring-context-2.5.1.jar

重启eclipse,并在运行选项中钩选新添加的这些bundle

 

b)        创建插件项目

                         i.              步骤:

1.         创建一个插件工程

 

2.         选择an OSGI framework,并选择standard方式,我建议使用standard方式方式,因为这样我们可以不局限于equinox,可以把它部署到其他标准的OSGI容器中了。

3.我们在这里不生成Activator,因为采用了SpringDM方式,这个工作都交给Spring来完成。

c)         以上三个步骤在建立每个Bundle时基本是相同的,我们在来逐个分析这三个Bundle的建立过程。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值