<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">
<meta content="OpenOffice.org 2.0 (Linux)" name="GENERATOR">
<meta content="Ery Lee" name="AUTHOR">
<meta content="20061228;23093300" name="CREATED">
<meta content="Ery Lee" name="CHANGEDBY">
<meta content="20061229;11381300" name="CHANGED"> <style type="text/css">
</style>
<p style='margin-bottom: 0cm;'>尽管我在一年前曾预测<font>OSGi</font>最终将部署在<font>60%</font>的<font>Java</font>虚拟机上,但<font>OSGi</font>的发展速度还是超出了我们的想象。一直认为<font>OSGi</font>规范是<font>Java</font>领域被埋没的一颗明珠,它优美的组件体系结构正是<font>Java</font>平台不可或缺的部分,应该直接纳入到<font>JDK</font>中。<br/>
</p>
<p style='margin-bottom: 0cm;'>众所周知,<font>Java</font>平台有庞大的开源框架、类库支持,但我们却一直停留在类与<font>API</font>层次的复用,一个较大的<font>Java</font>项目往往有大量的<font>Jar</font>包混乱的堆积在<font>classpath</font>下。所以<font>Java</font>领域迫切需要一个实现<strong>组件级复用</strong>的解决方案,将所有这些混乱不堪的类库与<font>API</font>以组件的形式发布,在统一的容器内组装协作,<font>OSGi</font>规范无疑是目前最为出色的候选者。</p>
<p style='margin-bottom: 0cm;'><font>OSGi</font>的规范已经提出<font>5</font>、<font>6</font>年的时间,到现在被业界广泛认可,其发展过程很有趣。<font>OSGi</font>规范最初定位于嵌入式系统,如家电、汽车、手机、家庭网关,满足单一<font>Java</font>虚拟机上启动多个<font>Java</font>应用程序和动态从网络安装卸载应用程序的需求。但那时嵌入式<font>Java</font>虚拟机还不成熟,更不用提<font>OSGi</font>的应用,尽管有宝马等知名公司的应用,但一直没有在<font>Java</font>嵌入式领域获得广泛的应用。<br/>
</p>
<p style='margin-bottom: 0cm;'>随后的发展一定超出了<font>OSGi</font>委员会<font>(<a href='http://www.osgi.org/'>www.osgi.org</a>)</font>的想象,<font>OSGi</font>居然被<font>Eclipse</font>应用到了客户端。 <font>Eclipse</font>原本插件体系结构是一个基于<font>XML</font>的静态扩展结构,即扩展<font>(Extension)</font>与<font>(Extension Point)</font>,不知道当初基于什么样的考虑,<font>Eclipse</font>组织在<font>3.0</font>版本选择<font>OSGi</font>作为插件体系的内核,这样由<font>OSGi</font>负责插件体系架构中<font>ClassLoading</font>机制,由扩展与扩展点负责业务层面的扩展架构,这是一个很完美的结合。但我认为这实际上并不是<font>OSGi</font>的最佳实践,<font>Eclipse</font>原本的静态扩展架构限制了<font>OSGi</font>的动态性,也没有应用<font>OSGi</font>的服务层模型,而是大量基于单例<font>(Singleton) Plugin</font>调用协作,开发<font>RCP</font>客户端时,你会发现很少需要注册<font>OSGi</font>的服务,往往一个<font>Plugin</font>的入口类提供很多静态方法。当然,这也可能与<font>Eclipse</font>的延迟加载<font>(Lazy load)</font>机制有关。<br/>
</p>
<p style='margin-bottom: 0cm;'>尽管<font>Eclipse</font>不是<font>OSGi</font>的一个最佳实践,但随着<font>Eclipse</font>的成功,<font>OSGi</font>迅速普及与成熟,最终将<font>OSGi</font>推向它最擅长但一直被忽略的领域:<strong>企业级应用软件的服务端,纯插件体系架构的服务端!</strong><span style=''>目前,大量的服务端开源架构与商业产品向</span><font><span style=''>OSGi</span></font><span style=''>迁移,</span><font><span style=''>2007</span></font><span style=''>年将是</span><font><span style=''>OSGi</span></font><span style=''>服务端应用的开始。</span><br/>
</p>
<p style='margin-bottom: 0cm;'>随着<font>OSGi</font>在胖客户端<font>(RCP)</font>、服务端<font>(Server Side)</font>与嵌入式<font>Java</font>虚拟机上的广泛应用,相信未来几年内,<font>60%</font>的<font>Java</font>虚拟机上部署<font>OSGi</font>的目标并不是遥不可及。</p>
分享到:
相关推荐
### OSGi in Action: 创建模块化的Java应用 #### 一、OSGi揭示:模块化的重要性与挑战 在《OSGi in Action》这本书的第一章“OSGi Revealed”中,作者深入探讨了Java平台虽然取得了巨大的成功,但在构建模块化系统...
OSGi(Open Services Gateway Initiative)是一个基于Java语言的服务平台,提供了一种动态化、模块化的应用程序架构。在OSGi架构中,整个生命周期管理是十分重要的组成部分,它保证了应用能够动态地进行安装、启动、...
在Java领域,OSGi(Open Service Gateway Initiative)作为一套成熟的技术标准,为实现模块化部署提供了强有力的支持。而Spring框架作为Java开发中不可或缺的一部分,它在简化企业级应用开发方面扮演着重要角色。当...
《深入理解Java虚拟机》是一本关于Java虚拟机(JVM)原理和实践的书籍,而OSGi最佳实践则是在此基础之上,着重讨论了如何将OSGi技术与Java虚拟机结合,以实现复杂软件系统的动态化和模块化管理。书中将包含如何构建...
OSGi联盟在设计模块层时,旨在解决Java现有的模块化技术无法提供的功能,弥补Java模块化方面的不足,从而允许开发者构建更为复杂和可维护的Java应用程序。通过使用OSGi,开发者能够更好地管理不同模块之间的依赖关系...
- **周志明**:远光软件平台开发部部门经理,平台架构师,专注于Java虚拟机和OSGi等领域,著有《深入理解Java虚拟机:JVM高级特性与最佳实践》。 - **吴璞渊**:就职于西门子,主要负责程序设计和工作流设计。 - **...
OSGi(Open Service Gateway Initiative)是一个Java社区定义的模块化服务平台,它允许在同一个运行环境中部署多个版本的同一个组件,而不会相互冲突,从而提供了一个动态的、模块化的运行时环境。OSGi规范定义了...
OSGI(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个Java虚拟机(JVM)上动态地发现、加载、卸载和管理软件组件。Eclipse是一个开源的集成开发环境(IDE),它广泛支持各种语言...
### OSGi技术详解及其在Eclipse公司的应用前景 ...Eclipse公司对OSGi技术的关注表明了这一趋势,并且随着Swordfish等项目的不断发展,我们可以期待在未来几年中看到更多基于OSGi的成功案例和技术突破。
未来10年:OSGi、Spring-DM OSGi(Open Service Gateway Initiative)是一种基于Java的动态模块化框架,旨在解决Java EE开发及部署模型的局限性。该框架可以提供模块化、动态性和灵活性,解决研发、部署和维护等...
标题中的“tomcat嵌入OSGI容器”是指在Apache Tomcat服务器中集成OSGI(Open Service Gateway Initiative)框架,使得Tomcat能够支持模块化的应用程序部署和管理。OSGI是一种Java平台上的服务导向架构,它允许动态地...
本文将详细介绍如何使用桥接技术(如Apache Felix的WebConsole或Pax Web)在Tomcat中部署OSGi程序。 首先,理解OSGi的核心概念是关键。OSGi基于服务导向架构,其中每个模块(称为bundle)都有自己的类加载器,并...
本文通过对OSGi和Equinox的介绍和分析,旨在使读者能够理解这些技术如何帮助开发高度模块化的Java系统,并了解它们在未来Java应用开发中的潜在价值。 OSGi和Equinox的技术细节及应用实例,以及它们如何在各种应用...
OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建可模块化的Java应用程序。它提供了一种灵活的框架,使得开发者可以构建、部署和管理模块化组件,这些组件被称为服务或bundle。OSGI的核心理念是将...