`
snoopy7713
  • 浏览: 1151618 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

基于CORBA的OSGi分布式扩展

    博客分类:
  • OSGi
阅读更多

一、 引言

随着网络技术和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 协议来实现远程互操作。

图2  扩展机制支持OSGi框架之间的服务发现与使用

四、小结

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.

分享到:
评论

相关推荐

    基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响.pdf

    《基于CORBA的分布式应用软件网络性能初探——单次调用传输的数据量大小对有效吞吐量的影响》 本文探讨了在分布式应用软件中,尤其是针对导航系统,基于CORBA(Common Object Request Broker Architecture)的...

    基于CORBA的分布式数据库系统开发技术

    ### 基于CORBA的分布式数据库系统开发技术解析 #### 概述 在现代信息技术领域,分布式数据库系统因其能够有效处理大规模数据和高并发访问而成为企业和组织中不可或缺的一部分。随着互联网技术和企业内部网络...

    基于CORBA的分布式程序设计(入门与提高)

    ### 基于CORBA的分布式程序设计(入门与提高) #### CORBA概述 CORBA(Common Object Request Broker Architecture)即公共对象请求代理体系结构,是面向对象领域中的一种通用框架,旨在支持分布式环境中不同软件...

    一种基于CORBA的分布式应用模型.pdf

    面向对象的中间件技术,如CORBA,能够帮助开发者构建可扩展、可移植的分布式系统。通过中间件,开发者可以轻松创建和集成分布式对象,使得网络中的对象可以透明地相互调用。 ### 对象引用与接口 在CORBA中,对象...

    一个基于CORBA的分布式网管系统模型.pdf

    虽然文章中提供的内容存在 OCR 扫描错误,并且没有直接给出详细的技术实现细节,但可以总结出的是,基于 CORBA 的分布式网管系统模型提供了一种高效、可靠且易于扩展的网管解决方案,能够有效克服传统网管系统存在的...

    基于CORBA的分布式仿真系统的开发与实现.

    ### 基于CORBA的分布式仿真系统的开发与实现 #### CORBA简介 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)是一种由OMG(对象管理组织,Object Management Group)制定的标准,...

    基于CORBA的分布式对象技术及其在电网调度自动化系统的应用.pdf

    基于CORBA(Common Object Request Broker Architecture)的分布式对象技术是一种在电网调度自动化系统中广泛应用的技术,它允许不同系统间的对象通过中间件进行交互,实现跨平台、跨语言的互操作性。在电力系统中,...

    基于CORBA的分布式系统实时语音播放程序设计.pdf

    其开放性和对异构平台的兼容性使得基于CORBA中间件的分布式系统构建变得更加容易,同时具有良好的可扩展性和可维护性。 最后,基于CORBA的分布式系统实时语音播放程序的设计,不仅展示了CORBA技术在实时通信方面的...

    基于CORBA的分布式系统的设计.pdf

    分布式系统是一种软件系统...这对于从事计算机网络、分布式开发等领域的专业人士提供了宝贵的知识资源,尤其对于在设计大型、可扩展的软件应用时,如何利用CORBA技术优势提高系统的模块化和灵活性具有较高的参考价值。

    基于CORBA的分布式多神经元群测量方法.pdf

    本文主要探讨了基于公共对象请求代理体系结构(Common Object Request Broker Architecture, CORBA)的分布式多神经元群测量方法。分布式计算在现代科学技术研究中,特别是在神经科学研究领域中,扮演着重要的角色。...

    通信与网络中的基于CORBA的分布式网络管理

    CORBA是对象管理组织提出的面向对象的体系结构,它为分布式异构环境下各类应用系统的集成提供了良好的技术规范和标准,CORBA是一种采用通用对象请求代理ORB间互联协议/基于Internet的ORB间互联协议(GIOP/IIOP)...

    基于CORBA的分布式数据通讯技术研究.pdf

    基于CORBA的分布式数据通讯技术,主要研究如何利用CORBA技术来实现服务端和客户端之间的数据交换。 首先,要了解的是对象请求代理(Object Request Broker,ORB)。ORB是CORBA体系结构的核心,它负责在客户端和...

    基于CORBA的分布式通用数据库查询对象模型的研究.rar

    标题中的“基于CORBA的分布式通用数据库查询对象模型的研究”是指一种利用Common Object Request Broker Architecture (CORBA) 技术来构建的分布式数据库查询模型。这个模型旨在解决跨网络、跨平台的数据访问问题,...

    基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现.nh

    基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现.nh 毕业设计

    基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现(毕业论文)

    《基于CORBA的分布式多数据源层次化网络计费系统(NBS)的研究与实现》这篇毕业论文详尽探讨了在信息技术领域中一个重要的课题——如何构建一个高效、可靠的网络计费系统。该系统的设计和实现基于CORBA(Common Object...

    基于CORBA技术的分布式智能网

    4. **性能与优势**:分析基于CORBA的分布式智能网相对于传统集中式智能网的性能提升,如高可用性、可扩展性和故障恢复能力等。 5. **案例分析**:可能包含实际的分布式智能网应用场景,演示如何使用CORBA技术解决...

    基于CORBA的分布式通信管理系统关键技术的探讨.pdf

    在这个项目中,CORBA和ACE被用作中间件技术,以便解决分布式软件开发中的难题,例如异构平台间的可移植性和可交互性、代码的可扩展性和可复用性、模块化以及高可靠性。该研究不仅关注技术实现,还着重于软件架构的...

    基于Python和CORBA的分布式程序设计.pdf

    根据提供的文件信息,文章标题为“基于Python和CORBA的分布式程序设计”,描述中指明了文章内容是关于使用Python和CORBA技术开发分布式软件系统的具体方法。这些内容涉及了降低编写分布式应用程序的复杂度、不同平台...

    基于Python和CORBA的分布式程序设计.zip

    总之,通过学习这个主题,开发者将能够利用Python和CORBA构建高效、可扩展的分布式应用程序,跨越各种硬件和软件平台,实现系统的无缝通信。对于那些希望在大型企业级应用或云计算环境中工作的人来说,这是一项不可...

Global site tag (gtag.js) - Google Analytics