- 浏览: 1167102 次
- 性别:
- 来自: 火星郊区
-
博客专栏
-
-
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 1605OSGi服务纲要规范中定义了服务于OSGi平台的通用日志服 ... -
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
2012-10-18 10:24 20694.1.开发环境搭建 4.2开发工具 Maven 3 F ... -
【绝对路径】OSGi环境中获取Plugin/Bundle中文件资源的绝对路径
2012-10-08 10:53 2538摘要:在进行Eclipse RCP开发的过程中,需要使用一 ... -
OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序
2012-09-21 17:46 1443随着OSGi/Equinox逐渐成为Java EE服务端的基础 ... -
OSGi技术在Java Web开发中的应用
2012-09-20 11:26 1436随着 Java SE 对模块化功能原生支持的一再推迟(据最 ... -
OSGI典型的应用案例
2012-09-20 11:26 1656OSGI典型的应用案例主要有两个:分别是Eclipse和BMW ... -
OSGi特点
2012-09-20 11:26 12701、JRE版本无关性。虽然Java一直被人们认为是“Write ... -
OSGI与JMX 的关系
2012-09-19 17:09 1085不过重点是: JMX 本来设计的用途就只为了管理,我们不 ... -
在equinox环境开发web应用的"利器" -- registerResources()方法 详解
2012-09-19 17:07 1259registerResources()方法详解 1、简介 ... -
在equinox环境开发web应用的"利器" -- 序
2012-09-19 17:05 1384在equinox环境中开发web应用必须要借助一些工具包提供的 ... -
equinox环境下web应用资源的部署
2012-09-19 17:04 1328osgi的equinox实现环境下,web服务器和web应用都 ... -
OSGi产生的背景--在繁荣的混乱之中走出困惑
2012-09-19 16:58 1198软件的复杂性正在以惊 ... -
将web容器置于OSGi框架下进行web应用的开发
2012-09-16 14:26 3566将web容器置于OSGi框架下,其实就是将web容器做成OSG ... -
在Eclipse中开发OSGi Bundle
2012-09-16 14:26 1354Eclipse为开发OSGI Bundle提供了良好的支持,它 ... -
【第一代服务注册形式】 - 将一个Bundle注册为服务
2012-09-14 10:09 11711、创建业务接口类及其实现类 Java代码 ... -
Declarative Services规范简介及应用
2012-09-14 10:08 1449Declarative Services 是一 ... -
用FileInstall管理Bundle的动态安装、启动、卸载
2012-09-14 10:07 13501、文件目录如下: F:\study_osgi ... -
服务工厂 - Bundle消费者返回不同的服务对象
2012-09-14 10:03 1227一般情况下,服务对象在注册后,任何其它的Bundle在请求 ... -
服务跟踪(ServiceTracker)
2012-09-14 09:58 1186当多个Bundle使用同一 ... -
OSGi容器中Bundle之间Synchronous Communication
2012-09-11 17:07 1594OSGi Core定义了一个服务层,提供了一个Bundl ...
相关推荐
JBoss,全称为Red Hat JBoss Middleware,是Red Hat公司推出的一款开源的应用服务器,它基于Java EE(Enterprise Edition)标准,为开发和部署企业级应用程序提供了一个全面的平台。本部分将深入探讨JBoss的相关知识...
- **RMI/CORBA**:分布式应用开发技术。 - **Java语法基础**: - **类、抽象类、接口、最终类、静态类、匿名类、内部类、异常类**:面向对象编程的基本概念。 - **编码规范**:提高代码质量和可维护性的指南。 ...
最后,作为JavaEE系统架构师,需要关注面向云架构(COA)、面向资源架构(ROA)和面向Web服务架构(SOA),熟悉相关的概念和技术,如SaaS、网格计算、分布式计算、SOA、SCA、ESB、OSGI和EAI,以及各种应用服务器的...
轴类零件加工工艺设计.zip
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
seaborn基本绘图人力资源数据集
移动机器人(sw三维)
自制html网页源代码查看器
3吨叉车的液压系统设计().zip
1_实验三 扰码、卷积编码及交织.ppt
北京交通大学软件学院自命题科目考试大纲.pdf
雅鲁藏布江流域 shp矢量数据 (范围+DEM).zip
基于RUST的数据结构代码示例,栈、队列、图等
NIFD:2024Q1房地产金融报告
详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/146916652
【工业机器视觉定位软件Vision-Detect】基于C#的WPF与Halcon开发的工业机器视觉定位软件(整套源码),开箱即用 有用户登录,图片加载,模板创建,通讯工具,抓边抓圆,良率统计,LOG日志,异常管理,九点标定和流程加载保存等模块,功能不是很完善,适合初学者参考学习。 资源介绍请查阅:https://blog.csdn.net/m0_37302966/article/details/146912206 更多视觉框架资源:https://blog.csdn.net/m0_37302966/article/details/146583453
内容概要:本文档详细介绍了Java虚拟机(JVM)的相关知识点,涵盖Java内存模型、垃圾回收机制及算法、垃圾收集器、内存分配策略、虚拟机类加载机制和JVM调优等内容。首先阐述了Java代码的编译和运行过程,以及JVM的基本组成部分及其运行流程。接着深入探讨了JVM的各个运行时数据区,如程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区等的作用和特点。随后,文档详细解析了垃圾回收机制,包括GC的概念、工作原理、优点和缺点,并介绍了几种常见的垃圾回收算法。此外,文档还讲解了JVM的分代收集策略,新生代和老年代的区别,以及不同垃圾收集器的工作方式。最后,文档介绍了类加载机制、JVM调优的方法和工具,以及常用的JVM调优参数。 适合人群:具备一定Java编程基础的研发人员,尤其是希望深入了解JVM内部机制、优化程序性能的技术人员。 使用场景及目标:①帮助开发人员理解Java代码的编译和执行过程;②掌握JVM内存管理机制,包括内存分配、垃圾回收等;③熟悉类加载机制,了解类加载器的工作原理;④学会使用JVM调优工具,掌握常用调优参数,提升应用程序性能。 其他说明:本文档内容详尽,适合用作面试准备材料和技术学习资料,有助于提高开发人员对JVM的理解和应用能力。
Android项目原生java语言课程设计,包含LW+ppt
戴德梁行&中国房地产协会:2021亚洲房地产投资信托基金研究报告
Android项目原生java语言课程设计,包含LW+ppt