- 浏览: 1148890 次
- 性别:
- 来自: 火星郊区
博客专栏
-
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倍效率”开发者
转载地址:http://www.ibm.com/developerworks/cn/websphere/techjournal/1005_inreach/1005_inreach.html
简介: 在过去一年里,有很多关于 OSGi™ 企业级应用程序是否就绪的激烈辩论。OSGi 是一种已证实的且经过测试的技术,所以从这个意义上来说,它已经就绪有一段时间了。缺少的是 Java™ EE 程序员正确利用 OSGi 企业功能所需的工具和框架的规范与实现。最近发布的 OSGi Service Platform Enterprise Specification (4.2) 和 IBM® WebSphere® Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 改变了这一情况。下面将概述此新功能包以及其发展背后的原因。 本文来自于 IBM WebSphere Developer Technical Journal 中文版 。
每一期创新触手可及 从开发人员和从业人员的角度提供了有关新兴技术主题的新信息和讨论,并探秘了前沿 IBM® WebSphere® 产品的幕后知识。
OSGi 是 Java 语言的动态模块系统。IBM 是 OSGi 联盟的初始成员之一,该联盟旨在促进 OSGi 服务平台的广泛采用,确保通过网络交付和管理的应用程序和服务的互操作性。多年来,IBM 一直在 IBM Lotus® 和 WebSphere 产品中使用 OSGi 技术。事实上,从 IBM WebSphere Application Server 6.1 版本就开始使用 OSGi 了。用户看不到它,因为使用 OSGi 是为了实现底层应用程序服务器架构的模块化,从而使其易于开发和支持。WebSphere Foundation 一直在使用 OSGi 改进 IBM 产品, 现在 WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 (以下简称为 OSGi 功能包)支持您使用 OSGi 改进自己的应用程序和服务。
引进企业级 OSGi 应用程序编程模型的关键因素之一是确保它是整个行业认可的标准。这是 OSGi 联盟的企业专家组 (EEG) 的焦点。该企业专家组的专家由来自 Oracle、SAP、VMWare、Redhat、Progress 和 IBM 等的代表组成。许多供应商都向该组提供专业经验,以确保任何标准都能够得到广泛支持。
在介绍 OSGi 功能包的重要内容之前,值得花些时间概述一下它有助于解决的问题。
值得一提的是,组织使用 WebSphere Application Server 的功能部署和管理大量应用程序。这些应用程序通常包含公共库。在这种情况下,应用程序开发人员在其应用程序中包含相同的库就很正常。尽管这是每个应用程序获得预期库的一种安全方法,但是此策略可能会占用过量内存并使应用程序更新变得比较困难。软件供应商提供了解决此问题的解决方案,但他们是针对供应商的,并且会导致管理时间成本增加。
有时会在应用程序中使用供应商库,通常开发人员无法控制这些库的依赖关系。所以当一个应用程序使用的两个库具有不同且不兼容的内部依赖关系时,就会出现问题。例如,一个库可能需要 ASM 3.0,而同一应用程序使用的另一个库可能需要 ASM 2.0。要解决这种问题,通常需要更改代码。
总的说来,这两个问题在 Java EE 中通常都可以解决,那么为什么要忍受 OSGi 可以解决的问题呢?
OSGi 联盟的 EEG(企业专家组)成立于 2007 年,并且制定了 OSGi 功能包实现规范 。EEG 的目的是查看最常用的 Java EE 技术(例如,JPA、JTA、JNDI 和 JMX 等),并构建使用部署到 OSGi 框架的应用程序绑定技术的标准方法。
去年启动了提供 OSGi 企业规范实现的两个开源项目。Apache Aries 孵化器项目在 2009 年 9 月启动,并具有由 Apache Geronimo 社区开发的 Blueprint 实现。2009 年启动的企业模块项目(Enterprise Modules Project)由 Eclipse Foundation 主办,该项目与 Aries 项目的目标大致相同。
在很短的时间内,就建立了许多与 Apache Aries 相关的活跃团体。参与者包括来自 IBM、Progress、RedHat、Ericsson、SAP、Prosyst 和 LinkedIn 等的个人。由于 Blueprint 的最初贡献,JTA、 JPA、JNDI 和 JMX 的组件都已添加。演示如何使用这些技术(包括 Blog Sample 和 Aries Trader 应用程序)的示例是项目的重要部分。
Aries 积极开发的另一个领域是 “应用程序” 概念,这是将 bundle 分组为单个应用程序或 Enterprise Bundle Archive (EBA) 的一种方式。
OSGi 功能包提供了一个整合应用程序框架,有助于 Java EE 应用程序开发人员利用 OSGi 企业架构。该功能包整合了 Apache Aries 开发的组件和 WebSphere Application Server 运行时与管理。(JPA 2.0 支持也是功能包的一部分,但在本文中不会详细介绍它。)
具体来说,功能包交付 OSGi Blueprint Container 规范的开放社区和基于标准的实现,并且具有将应用程序组装、部署和管理为 OSGi bundle 版本集合的能力。常见 Web 应用程序的模块设计、简单的基于 POJO 的组件和高效数据访问需求,都可以使用 OSGi 应用程序和功能包的 JPA 2.0 组件解决。
功能包的一些主要功能如下所述。下面将详细介绍这些功能以及其他一些功能。
-
Enterprise Bundle Archives
组成 OSGi 应用程序的 bundle 经过合理组装,可形成可部署的 Enterprise Bundle Archive 或 EBA。开发 Java EE 应用程序时,通常会将所有模块库(应用程序内容)放在 EAR 文件中。相反,尽管 EBA 中的应用程序元数据描述应用程序内容,但是无需在 EBA 中包含二进制内容。EBA 可以仅指从 bundle 库的相应阶段获得的 bundle。最常见的情形可能包括在 EBA 中放置其他 bundle 并包含其他内容。例如,Web 模块是应用程序的主要部分,所以它们自然位于 EBA 文件中;而非应用程序特定内容(比如共享库)从 bundle 库获得可能会更好。后续文章将探讨 bundle 库,以及如何且何时提供 bundle。
-
Web 应用程序
正如 OSGi Web Container 规范定义的那样,OSGi 应用程序的 Web 内容仅是具有其他 OSGi 元数据的 Web 模块。该规范定义了 Web 应用程序 bundle 所需的元数据。部署时,WebSphere Application Server 将 EBA 中的 WAR 文件转换为 OSGi bundle。将 Web 模块作为 bundle 部署的优势是,可以将其依靠的库从 WAR 移动到集中式、托管的、版本化的 bundle 库中,在 WebSphere Application Server 部署流程中使用该库。
-
Blueprint
OSGi 服务平台企业规范 介绍了 Java EE 中一种称为 Blueprint 的主要技术,这是 Spring Dependency Injection 模型的标准化。尽管企业级 OSGi 应用程序不需要使用 Blueprint,但是 WebSphere Application Server 实现提供了许多功能,这些功能使 Blueprint 成为开发人员乐于使用的一种技术。
OSGI 功能包的 Blueprint 实现提供了用户期望 Dependency Injection (DI) 容器拥有的功能;例如,使用 POJO 进行构建的能力,以及使容器控制那些 POJO 生命周期的能力。通过 DI 容器(比如 Spring Framework)进行 Blueprint 实现的一个好处是 OSGi 整合。这意味着发布服务的 bundle 稍后可以被注入其他组件甚至是其他 bundle 中。此依赖性注入模型还支持在 Java EE 或 OSGi 运行时以外的时间进行单元测试。
在 OSGi 功能包中实现的 Blueprint 容器是中间件的一部分,而不再是应用程序的一部分,这就为应用程序员消除了一个令人头疼的问题。
-
JPA 持久化
OpenJPA 是 WebSphere Application Server 默认的持久化提供者。OSGi 功能包包括 JPA 2.0 支持,所以开发人员可以使用 WebSphere Application Server V7 中现有的 JPA 1.0 支持或 OSGi 应用程序中的新 JPA 2.0 支持。
除了 OSGi 服务平台企业规范中介绍的 JPA 模型,功能包还包括扩展的 JPA 支持,向 Blueprint 组件提供由容器完全托管的 JPA,从而向目前正在使用 Java EE 的 JPA 的应用程序开发人员提供一种熟悉的开发体验。
此功能包还包括对 Blueprint 的扩展,所以容器可以将持久化单元和上下文注入到 Blueprint bean 中。EJB 中应用程序开发人员熟悉的事务性行为同样存在于 OSGi 功能包中。
寻找可靠和已验证的模块化技术的企业 Web 应用程序开发人员,已经有很多都转向了使用 OSGi。IBM WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0 提供了一种环境,该环境支持 Java EE 开发人员使用 OSGi 功能构建应用程序。
用户对 OSGi 功能包的反馈、对 Apache Aries 的兴趣,以及对现有 WebSphere Application Server 的兴趣表明,Java EE 开发人员乐于使用 OSGi 技术,并期待它提供的许多好处。
<!-- CMA ID: 512082 --><!-- Site ID: 10 --><!-- XSLT stylesheet used to transform this file: dw-document-html-6.0.xsl -->
学习
- WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API (JPA) 2.0
- OSGi Alliance Specifications
- Apache Aries
- Apache Geronimo
- IBM developerWorks 中国 WebSphere 专区 :为使用 WebSphere 产品的开发人员准备的技术信息和资料。这里提供产品下载、how-to 信息、支持资源以及免费技术库,包含 2000 多份技术文章、教程、最佳实践、IBM Redbook 和在线产品手册。
发表评论
-
关于Felix Log Service
2012-12-07 16:44 1567OSGi服务纲要规范中定义了服务于OSGi平台的通用日志服 ... -
Maven 3 Felix 4 Eclipse 的搭建与部署(部分转载自别人文章)
2012-10-18 10:24 20324.1.开发环境搭建 4.2开发工具 Maven 3 F ... -
【绝对路径】OSGi环境中获取Plugin/Bundle中文件资源的绝对路径
2012-10-08 10:53 2491摘要:在进行Eclipse RCP开发的过程中,需要使用一 ... -
OpenCore:基于OSGi开发纯插件体系结构的WEB应用程序
2012-09-21 17:46 1423随着OSGi/Equinox逐渐成为Java EE服务端的基础 ... -
OSGi技术在Java Web开发中的应用
2012-09-20 11:26 1410随着 Java SE 对模块化功能原生支持的一再推迟(据最 ... -
OSGI典型的应用案例
2012-09-20 11:26 1634OSGI典型的应用案例主要有两个:分别是Eclipse和BMW ... -
OSGi特点
2012-09-20 11:26 12481、JRE版本无关性。虽然Java一直被人们认为是“Write ... -
OSGI与JMX 的关系
2012-09-19 17:09 1058不过重点是: JMX 本来设计的用途就只为了管理,我们不 ... -
在equinox环境开发web应用的"利器" -- registerResources()方法 详解
2012-09-19 17:07 1227registerResources()方法详解 1、简介 ... -
在equinox环境开发web应用的"利器" -- 序
2012-09-19 17:05 1362在equinox环境中开发web应用必须要借助一些工具包提供的 ... -
equinox环境下web应用资源的部署
2012-09-19 17:04 1306osgi的equinox实现环境下,web服务器和web应用都 ... -
OSGi产生的背景--在繁荣的混乱之中走出困惑
2012-09-19 16:58 1165软件的复杂性正在以惊 ... -
将web容器置于OSGi框架下进行web应用的开发
2012-09-16 14:26 3539将web容器置于OSGi框架下,其实就是将web容器做成OSG ... -
在Eclipse中开发OSGi Bundle
2012-09-16 14:26 1329Eclipse为开发OSGI Bundle提供了良好的支持,它 ... -
【第一代服务注册形式】 - 将一个Bundle注册为服务
2012-09-14 10:09 11551、创建业务接口类及其实现类 Java代码 ... -
Declarative Services规范简介及应用
2012-09-14 10:08 1421Declarative Services 是一 ... -
用FileInstall管理Bundle的动态安装、启动、卸载
2012-09-14 10:07 13321、文件目录如下: F:\study_osgi ... -
服务工厂 - Bundle消费者返回不同的服务对象
2012-09-14 10:03 1207一般情况下,服务对象在注册后,任何其它的Bundle在请求 ... -
服务跟踪(ServiceTracker)
2012-09-14 09:58 1159当多个Bundle使用同一 ... -
OSGi容器中Bundle之间Synchronous Communication
2012-09-11 17:07 1559OSGi Core定义了一个服务层,提供了一个Bundl ...
相关推荐
Java应用架构设计中,模块化模式与OSGi是两个关键概念,它们对于构建大型、可扩展且易于维护的系统至关重要。模块化模式使得代码组织更加有序,而OSGi(Open Services Gateway Initiative)则是一种实现模块化的动态...
- 应用场景:探讨OSGi在企业级应用、嵌入式系统、物联网等领域的应用案例。 - 框架集成:讲解如何将OSGi与Spring、Hibernate等流行框架结合,构建复杂应用。 - 性能优化:提供关于提高OSGi应用性能的策略和技巧,...
标题中的“基于SOA和ESB企业总线的OSGi企业级应用”是一个关于构建企业级软件系统的主题,其中涉及到三个关键概念:Service-Oriented Architecture(SOA)、Enterprise Service Bus(ESB)以及OSGi(Open Service ...
### 基于OSGi和Spring开发企业级Web应用 #### OSGi与Spring结合的重要性 随着企业级应用复杂度的不断提升,对于软件架构的要求也越来越高。为了更好地满足这一需求,许多开发团队开始关注并采用OSGi(Open Service...
5. **EnqiNX和OSGI的关系**:EnqiNX是一个基于OSGI的开源企业应用框架,它扩展了OSGI规范,提供了更高级的企业级功能,如安全管理、配置管理、事件管理和事务管理等。 6. **插件模块开发**:如何设计和实现OSGI插件...
在这个"SWT应用的开发实例:没有使用到OSGi"中,我们将会探讨如何在不依赖OSGi(OSGi - Open Service Gateway Initiative)框架的情况下,利用SWT创建一个功能完备的应用程序。OSGi是一种模块化系统,常用于Java应用...
OSGI(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为一系列可独立部署、更新和交互的服务。林昊所著的《OSGI实战》与《OSGI进阶》是深入理解OSGI技术的重要参考资料,适合...
- **做好准备**:介绍了开始OSGI项目之前所需了解的基本概念和技术准备。 - **工具箱**:列出了进行OSGI开发所需的工具和环境配置方法。 - **开发Bundle**:详细介绍了如何创建、打包和管理OSGI的最小单元——...
2. **企业级应用**:大型企业应用可以利用OSGi实现模块化,便于管理和维护复杂的系统。 3. **开发工具**:Eclipse IDE就是基于OSGi构建的,其插件系统也是OSGi的一种应用实例。 4. **云平台**:OSGi的动态性使其适合...
1. **实战指南**:通过实际案例,展示如何将OSGi应用于不同的场景,如企业级应用、嵌入式系统或云计算环境。 2. **高级特性**:深入讲解OSGi的高级功能,如动态性、安全性、远程服务和网络服务。 3. **工具与框架*...
整本书为读者提供了一个全面的视角,展示了OSGi如何在企业级应用中发挥作用,并提供了大量实际案例和最佳实践,帮助读者掌握企业OSGi的使用方法。 综上所述,《企业OSGi实战》是OSGi在企业级应用领域的一本重要著作...
将 OSGi 和 Spring 结合能充分发挥二者各自的特长,更好地满足企业级应用开发的需求。 在基于 OSGi 和 Spring 的 Web 应用开发中,我们可以使用 Spring-DM 来实现模块化部署和管理。Spring-DM 是 Spring 开发组织在...
国内第一本OSGi图书OSGi国内推广者林昊多年经验的结晶涵盖OSGi从入门到深入的知识体系引领OSGi国内研究和普及本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入的知识体系,从OSGi的简介开题,介绍OSGi...
综上所述,Spring OSGi结合了Spring的便利性和OSGi的模块化优势,为Java企业级应用提供了一种高效、灵活的开发和部署方式。通过学习和掌握Spring DM Server的使用以及Spring OSGi的相关库,开发者可以更好地在OSGi...
*引导Java EE规范的发展:OSGi 4.2版本提供了新的企业级特性,引导了Java EE规范的发展。 打破僵局的Spring DM: Spring DM是基于OSGi的 Dynamic Module(动态模块),提供了动态模块化和灵活性的解决方案。Spring...
综上所述,OSGi企业技术规范为企业级应用提供了一个强大而灵活的框架。通过其独特的模块化设计和服务组件模型,开发者可以构建出高度可维护、可扩展的应用程序。OSGi Enterprise Release 5 的发布进一步加强了这一...
Java应用架构设计:模块化模式与OSGi 英文版 中文版介绍: 全球资深Java技术专家的力作,系统、全面地讲解如何将模块化设计思想引入开发中,涵盖18个有助于实现模块化软件架构的模式 中文目录: 第一部分 模块化...
它为Java开发人员提供了一个框架,使他们能够构建可热插拔的组件,从而实现更灵活、可扩展和可维护的软件系统。在本入门资料中,我们将探讨OSGI的关键概念、优势以及如何通过实战和最佳实践来掌握它。 1. OSGI原理...