- 浏览: 1151618 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
一、 引言
随着网络技术和Internet 的快速发展,软件运行从封闭、静态的主机 / 桌面逐步走向开放、多变的分布环境 [1] 。由于 OSGi 技术最初定位于嵌入式领域,进程间通信需要较为丰富的计算资源,因此 OSGi 规范只为单个 Java 虚拟机内的 Java 应用提供了一个高度动态和设计良好的构件运行环境。 OSGi 的动态性、模块化和面向服务的特性使得其在企业计算领域得到了广泛的应用,但企业计算领域所具有的大规模、异构性的特点对标准 OSGi 规范提出了支持分布式处理的需求,即能够支持网络中多个 Java 虚拟机内的 OSGi 应用之间的远程服务发现与远程服务方法调用,并支持 OSGi 应用与网络中非 OSGi 应用的互操作,从而支持企业应用拓扑,提高可用率、可靠性及可伸缩性。因此,提供 OSGi 分布式扩展机制以支持多进程、多 Java 虚拟机、多个节点、多种语言的企业计算是亟需解决的问题。
OSGi分布式处理能力是企业计算领域对 OSGi 提出的核心需求之一。 OSGi 联盟针对企业计算领域对 OSGi 的需求于 2007 年成立了企业专家组,制定相关的规范以提供通用的解决方案,其中支持 OSGi 分布式处理始终是企业专家组会议议程里级别最高的需求之一。 RFC 119[2] 规范是 OSGi 企业专家组制定的针对 OSGi 分布式扩展的规范,提倡使用已有的成熟的分布式技术来实现 OSGi 分布式扩展,如 CORBA 、 WebService 等。
二、相关研究
近年来,学术界在OSGi 分布式扩展技术相关领域展开了很多研究。 Newton[3] 项目是通过改变 OSGi 构件模型的方式来实现 OSGi 分布式处理的典型项目,其目的是建立一个分布式构件模型, OSGi 是 Newton 整个构件模型的中心,而 Jini 则是其远程基础设施的基石, Newton 使用 SCA ( Service Component Architecture )来描述构件装配模型。 R-OSGi[4] ( Remoting-OSGi )是 EclipseCon2007 大会上提出的实现 OSGi 分布式处理的项目。 R-OSGi 遵循 OSGi 规范,使用对接口字节码分析的方式来动态产生服务代理 bundle ,以实现远程服务的透明访问,并使用 SLP[5,6] ( Service Location Protocol )协议实现远程服务发现。 Apache CXF[7] 项目成立了一个名称为 DOSGi ( Distributed OSGi )的子项目作为 RFC 119 规范的参考实现, DOSGi 使用 Web Service 来实现远程服务调用,使用基于 HTTP 的 SOAP 协议来实现远程服务的方法调用,并通过 WSDL 来发布服务。 ECF[8] 项目和 Rinia[9] 项目也旨在实现 RFC 119 规范。
三、关键问题
OSGi分布式扩展需要能够支持网络中多个 Java 虚拟机内的 OSGi 应用之间的远程服务发现和远程服务方法调用,并支持 OSGi 应用与网络中非 OSGi 应用的互操作,从而满足企业应用拓扑,提高可用率、可靠性及可伸缩性。然而在 OSGi 分布式扩展机制研究中,存在着如下几个突出的问题,具有一般性,值得深入展开研究: (1 )在编程模型上,对 OSGi 编程模型存在一定的侵入性。 当前,绝大多数OSGi 分布式扩展机制的研究仅仅是为了实现分布式处理能力,在分布式扩展的同时没有考虑利用 OSGi 本身的特性以保持 OSGi 原有的编程模型,这就使得分布式 OSGi 开发人员需要根据 OSGi 分布式扩展机制所采用的分布式技术来学习相应的分布式编程模式才能开发分布式 OSGi 应用,具有较陡的学习曲线,不利于将集中式的 OSGi 应用透明地转化为分布式应用。( 2 )在互操作能力上,不支持 OSGi 应用和企业计算领域中 CORBA[21] 遗留系统的互操作。企业计算领域存在大量的 CORBA 遗留系统,提供一种友好易用的方式来支持 OSGi 应用与 CORBA 遗留系统的互操作是企业计算领域对 OSGi 分布式扩展的主要需求之一。( 3 )在技术实现上,没有满足 OSGi 的最小执行环境要求,限制了分布式 OSGi 应用的适用领域。轻量级、平台独立性和可移植性是 OSGi 的本质属性,分布式 OSGi 应用也应该保持该特性,以促进 OSGi 技术在各个领域更为广泛的应用,但是,部分 OSGi 分布式扩展研究项目的远程调用实现技术依赖特定的、能力较强的 Java 虚拟机环境,不适用于资源受限的环境,限制了分布式 OSGi 应用的适用领域。
(一)OSGi的分布式扩展模型
针对目前现有OSGi 分布式扩展研究中存在的问题,我们以 OSGi 分布式扩展规范 RFC 119 为基础,以非侵入性、通用性和良好互操作性为目标提出了基于 CORBA 的 OSGi 分布式扩展模型及扩展机制,如图 1 所示,其特点是采用 CORBA 的 DII/DSI ( Dynamic Invocation Interface/Dynamic Server Interface )技术和 Java 反射技术实现远程服务方法调用,能够透明地将集中式的 OSGi 应用转变为分布式应用,既保持了 OSGi 原有面向服务的编程模型和轻量级特点,又支持 OSGi 应用与 CORBA 应用的互操作。
图 1 基于CORBA的OSGi分布式扩展模型
基于CORBA 的 OSGi 分布式扩展模型的核心是 CORBA远程调用支持模块 CORBA-DSW( CORBA-Distribution-Software )和远 程服务发现模块 CORBA-NDS( CORBA-Naming-Discovery-Service )。 CORBA-DSW 远程调用支持模块负责监控本地服务中心的服务注册、查询和注销情况,根据监控情况动态生成远程服务 的 服务端代理或客户端代理,服务端代理和客户端代理提供了基于CORBA 的远程服务调用能力。服务端代理的作用是当接收到 来自对象请求代理 ORB (Object Request Broker ) 的CORBA 调用请求后,负责将该请求转化为 Java 调用请求,然后根据 Java 调用请求调用服务,将服务的处理结果由 Java 形式再转变为 CORBA 形式后返回给 ORB 。客户端代理的作用是实现位于其他节点上的远程服务的接口,将该接口中的方法的 Java 调用请求转换成对远程服务的服务端代理的 CORBA 调用请求。客户端代理与服务端代理 的 生成、运行 和 终结是动态 、透明 的,其生存周期与其所关联的服务的生存周期 相关 。远程服务发现模块 CORBA-NDS 用于辅助CORBA 远程调用支持模块为本地 OSGi 框架 提供远程服务 发现能力,用于支持远程服务的注册、查询、改变和注销 。
基于CORBA 的 OSGi 分布式扩展机制 支持分布在网络中的OSGi 应用与 OSGi 应用之间的远程服务发现与调用能力 , 如图 2 所示, 该机制 以符合OSGi 标准的 b undle集的形式部署并运行在节点 1 和节点 2 的 OSGi 框架之上,在 OSGi 框架 1 上为服务消费者提供服务 A 的客户端代理,在 OSGi 框架 2 上为服务提供者提供服务 A 的服务端代理,服务 A 的客户端代理和服务端代理通过 IIOP 协议来实现远程互操作。
四、小结
OSGi分布式扩展是 OSGi 在企业计算领域面临的重要问题。本文提出了一种基于 CORBA 的 OSGi 分布式扩展模型及扩展机制并将其集成到“核高基”课题“国产中间件参考实现及平台”中。与现有的 R-OSGi 以及 D-OSGi 等相比,其特点在于既保持 OSGi 面向服务的编程模型和轻量级特点,又可以将集中式的 OSGi 应用透明地转变为分布式应用,并支持 OSGi 应用与 CORBA 应用的互操作。下一步我们将进行进一步的完善和改进,进一步扩大 OSGi 分布式扩展中服务发现的通用性。
参考文献
[1] 杨芙清, 梅宏 , 吕建 , 金芝 . 浅论软件技术发展 . 电子学报 ,2002,12(30):1901~1906 .
[2] OSGi Alliance. RFC 119 Specification. http://www.osgi.org/Specifications/HomePage, 2009.
[3] Paremus. The Newton Project. http://newton.codecauldron.org, 2006.
[4] Rellermeyer J.S., Alonso, G., Roscoe, T. R-OSGi: Distributed Applications Through Software Modularization. Proceedings of the ACM/IFIP/USENIX 8th International Middleware Conference, 2007.
[5] Veizades J., Guttman E., Perkins C. RFC 2165: Service Location Protocol. IETF, 1997.
[6] Rellermeyer J.S. jSLP project. http://jslp.sourceforge.net, 2005.
[7] Apache Alliance. Apache CXF Project. http://cxf.apache.org/distributed-osgi.html, 2009.
[8] The Eclipse Foundation. Eclipse Communication Framework Project. http://www.eclipse.org/ecf, 2009.
[9] The Eclipse Foundation. Riena Platform Project. http://www.eclipse.org/riena/, 2009.
发表评论
-
关于Felix Log Service
2012-12-07 16:44 1571OSGi服务纲要规范中定义了服务于OSGi平台的通用日志服 ... -
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
2012-10-18 10:24 20374.1.开发环境搭建 4.2开发工具 Maven 3 F ... -
【绝对路径】OSGi环境中获取Plugin/Bundle中文件资源的绝对路径
2012-10-08 10:53 2507摘要:在进行Eclipse RCP开发的过程中,需要使用一 ... -
OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序
2012-09-21 17:46 1426随着OSGi/Equinox逐渐成为Java EE服务端的基础 ... -
OSGi技术在Java Web开发中的应用
2012-09-20 11:26 1416随着 Java SE 对模块化功能原生支持的一再推迟(据最 ... -
OSGI典型的应用案例
2012-09-20 11:26 1638OSGI典型的应用案例主要有两个:分别是Eclipse和BMW ... -
OSGi特点
2012-09-20 11:26 12541、JRE版本无关性。虽然Java一直被人们认为是“Write ... -
OSGI与JMX 的关系
2012-09-19 17:09 1061不过重点是: JMX 本来设计的用途就只为了管理,我们不 ... -
在equinox环境开发web应用的"利器" -- registerResources()方法 详解
2012-09-19 17:07 1235registerResources()方法详解 1、简介 ... -
在equinox环境开发web应用的"利器" -- 序
2012-09-19 17:05 1367在equinox环境中开发web应用必须要借助一些工具包提供的 ... -
equinox环境下web应用资源的部署
2012-09-19 17:04 1310osgi的equinox实现环境下,web服务器和web应用都 ... -
OSGi产生的背景--在繁荣的混乱之中走出困惑
2012-09-19 16:58 1169软件的复杂性正在以惊 ... -
将web容器置于OSGi框架下进行web应用的开发
2012-09-16 14:26 3543将web容器置于OSGi框架下,其实就是将web容器做成OSG ... -
在Eclipse中开发OSGi Bundle
2012-09-16 14:26 1335Eclipse为开发OSGI Bundle提供了良好的支持,它 ... -
【第一代服务注册形式】 - 将一个Bundle注册为服务
2012-09-14 10:09 11581、创建业务接口类及其实现类 Java代码 ... -
Declarative Services规范简介及应用
2012-09-14 10:08 1424Declarative Services 是一 ... -
用FileInstall管理Bundle的动态安装、启动、卸载
2012-09-14 10:07 13351、文件目录如下: F:\study_osgi ... -
服务工厂 - Bundle消费者返回不同的服务对象
2012-09-14 10:03 1210一般情况下,服务对象在注册后,任何其它的Bundle在请求 ... -
服务跟踪(ServiceTracker)
2012-09-14 09:58 1162当多个Bundle使用同一 ... -
OSGi容器中Bundle之间Synchronous Communication
2012-09-11 17:07 1565OSGi Core定义了一个服务层,提供了一个Bundl ...
相关推荐
《基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响》 本文探讨了在分布式应用软件中,尤其是针对导航系统,基于CORBA(Common Object Request Broker Architecture)的...
### 基于CORBA的分布式数据库系统开发技术解析 #### 概述 在现代信息技术领域,分布式数据库系统因其能够有效处理大规模数据和高并发访问而成为企业和组织中不可或缺的一部分。随着互联网技术和企业内部网络...
### 基于CORBA的分布式程序设计(入门与提高) #### CORBA概述 CORBA(Common Object Request Broker Architecture)即公共对象请求代理体系结构,是面向对象领域中的一种通用框架,旨在支持分布式环境中不同软件...
面向对象的中间件技术,如CORBA,能够帮助开发者构建可扩展、可移植的分布式系统。通过中间件,开发者可以轻松创建和集成分布式对象,使得网络中的对象可以透明地相互调用。 ### 对象引用与接口 在CORBA中,对象...
虽然文章中提供的内容存在 OCR 扫描错误,并且没有直接给出详细的技术实现细节,但可以总结出的是,基于 CORBA 的分布式网管系统模型提供了一种高效、可靠且易于扩展的网管解决方案,能够有效克服传统网管系统存在的...
### 基于CORBA的分布式仿真系统的开发与实现 #### CORBA简介 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种由OMG(对象管理组织,Object Management Group)制定的标准,...
基于CORBA(Common Object Request Broker Architecture)的分布式对象技术是一种在电网调度自动化系统中广泛应用的技术,它允许不同系统间的对象通过中间件进行交互,实现跨平台、跨语言的互操作性。在电力系统中,...
其开放性和对异构平台的兼容性使得基于CORBA中间件的分布式系统构建变得更加容易,同时具有良好的可扩展性和可维护性。 最后,基于CORBA的分布式系统实时语音播放程序的设计,不仅展示了CORBA技术在实时通信方面的...
分布式系统是一种软件系统...这对于从事计算机网络、分布式开发等领域的专业人士提供了宝贵的知识资源,尤其对于在设计大型、可扩展的软件应用时,如何利用CORBA技术优势提高系统的模块化和灵活性具有较高的参考价值。
本文主要探讨了基于公共对象请求代理体系结构(Common Object Request Broker Architecture, CORBA)的分布式多神经元群测量方法。分布式计算在现代科学技术研究中,特别是在神经科学研究领域中,扮演着重要的角色。...
CORBA是对象管理组织提出的面向对象的体系结构,它为分布式异构环境下各类应用系统的集成提供了良好的技术规范和标准,CORBA是一种采用通用对象请求代理ORB间互联协议/基于Internet的ORB间互联协议(GIOP/IIOP)...
基于CORBA的分布式数据通讯技术,主要研究如何利用CORBA技术来实现服务端和客户端之间的数据交换。 首先,要了解的是对象请求代理(Object Request Broker,ORB)。ORB是CORBA体系结构的核心,它负责在客户端和...
标题中的“基于CORBA的分布式通用数据库查询对象模型的研究”是指一种利用Common Object Request Broker Architecture (CORBA) 技术来构建的分布式数据库查询模型。这个模型旨在解决跨网络、跨平台的数据访问问题,...
基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现.nh 毕业设计
《基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现》这篇毕业论文详尽探讨了在信息技术领域中一个重要的课题——如何构建一个高效、可靠的网络计费系统。该系统的设计和实现基于CORBA(Common Object...
4. **性能与优势**:分析基于CORBA的分布式智能网相对于传统集中式智能网的性能提升,如高可用性、可扩展性和故障恢复能力等。 5. **案例分析**:可能包含实际的分布式智能网应用场景,演示如何使用CORBA技术解决...
在这个项目中,CORBA和ACE被用作中间件技术,以便解决分布式软件开发中的难题,例如异构平台间的可移植性和可交互性、代码的可扩展性和可复用性、模块化以及高可靠性。该研究不仅关注技术实现,还着重于软件架构的...
根据提供的文件信息,文章标题为“基于Python和CORBA的分布式程序设计”,描述中指明了文章内容是关于使用Python和CORBA技术开发分布式软件系统的具体方法。这些内容涉及了降低编写分布式应用程序的复杂度、不同平台...
总之,通过学习这个主题,开发者将能够利用Python和CORBA构建高效、可扩展的分布式应用程序,跨越各种硬件和软件平台,实现系统的无缝通信。对于那些希望在大型企业级应用或云计算环境中工作的人来说,这是一项不可...