
OSGi
文章平均质量分 71
yue2008
这个作者很懒,什么都没留下…
展开
-
OSGi概述
开放服务网关协议 (Open Services Gateway initiative),简称OSGi,为网络服务定义了一个标准的、面向服务的计算环境,为用户提供了开放的、面向服务组件的、易于部署的编程模型,这个编程模型允许用户将定义好的接口规范绑定到OSGi运行环境中的特定Service,在构建SOA 面向服务为中心的企业应用的过程中,OSGi 技术正发挥越来越重要的作用。 OSGi 是由...原创 2010-10-16 17:28:34 · 314 阅读 · 0 评论 -
从外部启动OSGi,并和OSGi进行交互
本范例主要演示如下技术点: 1、从OSGi外部启动OSGi容器 2、在OSGi容器内访问外部的资源文件 3、在OSGi容器内访问外部的类方法(通过反射机制) 关键点: 开发一个单独的Bundle,提供一个供外部访问的OSGi服务,外部程序在启动OSGi容器时通过反射的方式将外部的ClassLoader设置到该Bundle中,供其他Bu...2010-11-24 19:56:41 · 442 阅读 · 0 评论 -
Spring DM入门
Spring Dynamic Modules (即Spring动态模型,简称Spring DM)允许开发者构建Spring应用程序,这种应用程序能够在OSGi容器中进行部署,并可有效利用OSGi框架所提供的服务。这种应用程序具有以下几方面的优点: 1、更好的分离应用逻辑与模块。 2、同时部署同一个模块的不同版本的能力。 3、动态发现和使用系统内其他模块提供的服务的...原创 2010-11-21 20:15:25 · 1804 阅读 · 0 评论 -
将web容器置于OSGi框架下进行web应用的开发
将web容器置于OSGi框架下,其实就是将web容器做成OSGi支持的Bundle,再安装到OSGi框架中,这里使用的是Jetty容器。下面作详细的介绍。 1、创建一个Eclipse插件项目,在此插件下创建一个WebRoot文件夹,里面创建两个文件夹一个是images,一个是pages,里面分别放置一个图片文件,一个简单的html页面和一个简单的jsp文件。大致目录结构如下图所示: ...原创 2010-11-17 20:10:21 · 182 阅读 · 0 评论 -
在Eclipse中开发OSGi Bundle
Eclipse为开发OSGI Bundle提供了良好的支持,它不仅提供向导来创建OSGi Bundle,而且还提供了内嵌的OSGi框架实现(即Equinox容器),可以使用该容器执行和调试Bundle。从本质上说,每一个Eclipse插件都是一个OSGi Bundle,只不过这个OSGi Bundle增加了一些Eclipse专用的代码而已。下面通过具体的例子来介绍如何用Eclipse来开发OSGi...原创 2010-11-11 21:33:20 · 674 阅读 · 0 评论 -
服务工厂(ServiceFactory)
一般情况下,服务对象在注册后,任何其它的Bundle在请求该服务时,OSGi容器都是返回同一个对象。如果我们需要为每一个Bundle消费者返回不同的服务对象,或者,在真正需要该服务对象时才创建。对于这些情况,我们可以创建一个实现ServiceFactory接口的类,把该类的对象注册为服务(不是注册实际的服务对象),这样,当Bundle请求该服务时,ServiceFactory实现类将接管该请求,为...原创 2010-11-10 23:35:28 · 3197 阅读 · 0 评论 -
服务跟踪(ServiceTracker)
当多个Bundle使用同一接口名注册服务时,服务的获取策略如下:OSGi容器会返回排行最高的服务,即,返回注册时SERVICE_RANKING属性值最大的服务。如果有多个服务的排行值相等,那么OSGi容器将返回PID值最小的那个服务。 如果服务消费者需要对服务进行跟踪,比如服务何时被注册,何时取消注册等,可以使用ServiceTracker类。以下是该类的使用范例源码: 1、接口及...原创 2010-11-10 23:00:10 · 1021 阅读 · 0 评论 -
用FileInstall管理Bundle的动态安装、启动、卸载
1、文件目录如下: F:\study_osgi run.bat org.eclipse.osgi_3.3.0.v20070530.jar configuration config.ini plugins org.apache.feli...原创 2010-10-27 21:53:39 · 204 阅读 · 0 评论 -
在启动OSGi框架时自动安装启动Bundle
Equinox提供了在启动框架时自动安装Bundle以及启动Bundle的功能,这是通过定义config.ini文件来实现的,应用程序的目录结构如下: F:\study_osgi run.bat org.eclipse.osgi_3.3.0.v20070530.jar configuration ...原创 2010-10-20 21:12:56 · 506 阅读 · 0 评论 -
Equinox概述
Equinox是Eclipse开源组织提供的、参照OSGi规范第4版实现的OSGi框架,它构成了EclipseIDE的核心 —— 模块化的Java运行时,它实现了OSGi规范4中规定的必须强制实现的功能,同时,它也实现了OSGi规范中大部分的可选功能。 Equinox项目包括OSGi R4版本规范核心框架的实现,一系列OSGi标准服务Bundle及运行基于OSGi的...原创 2010-10-19 22:50:35 · 605 阅读 · 0 评论 -
Declarative Services规范简介及应用
Declarative Services 是一个面向服务的组件模型,它制订的目的是更方便地在OSGi服务平台上发布、查找、绑定服务,对服务进行动态管理,如监控服务状态以及解决服务之间的复杂的依赖关系等问题。Declarative Services采用服务组件的延迟加载以及组件生命周期管理的方式来控制对于内存的占用以及启动的速度,很好的解决了传统的OSGi服务模型在开发和部署比较复杂...原创 2010-10-17 22:22:07 · 209 阅读 · 0 评论 -
消费一个Bundle服务
1、消费接口及其实现类public interface UserValidatorListener { public boolean checkUser(String username, String password)throws Exception;} public class UserValidatorListenerImpl implements UserValidat...原创 2010-10-17 15:43:34 · 275 阅读 · 0 评论 -
将一个Bundle注册为服务
1、创建业务接口类及其实现类public interface Validator { public boolean validate(String username, String password)throws Exception;} public class UserValidatorImpl implements Validator { public boolean ...原创 2010-10-17 15:15:57 · 185 阅读 · 0 评论 -
Equinox的入门范例
1、从Eclipse安装程序中找到org.eclipse.osgi_3.3.0.v20070530.jar文件(版本字符串取决于你的Eclipse)并将它复制到一个空目录。为了保持命令的简短, 我们重命名该文件为equinox.jar。 2、在DOS命令窗口中定位到equinox.jar文件所在目录下,并执行以下命令: java -jar equinox.jar -consol...原创 2010-10-16 17:37:11 · 369 阅读 · 0 评论 -
Spring-DM在web中的应用
在web中使用Spring-DM时,需要用到spring-osgi-web-extender-x.x.x.jar Bundle,该Bundle的启动级别要比其它的大。 一、开发步骤如下: 1、创建插件工程,最终的目录结构如下: 2、添加WEB-INF目录,并在该目录下加入web.xml文件。 3、引入相关的Bundle和包,最终MANIFE...原创 2010-11-24 22:22:45 · 234 阅读 · 0 评论