OSGi要火 IBM和Eclipse将大力发展Java模块化

开发 后端
为Java提供模块化的OSGi,正在受到IBM和Eclipse基金会的大力支持。IBM将在它的应用服务器新版本中采用OSGi,而Eclipse也会在一个新框架中通过OSGi访问其他企业技术。

之前51cto曾发出过2010年将是Java模块化的一年的声音,我们也曾独家采访淘宝网平台架构部架构师关于其对Java模块化的理念,目前为Java提供模块化的OSGi,正在受到IBM和Eclipse基金会的大力支持。IBM将在它的应用服务器新版本中采用OSGi,而Eclipse也会在一个新框架中通过OSGi访问其他企业技术。

前不久IBM发布了一个基于OSGi和JPA技术的WAS Beta版本。这个版本暂时使用了一个很笨重的名字:IBM Websphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API(JPA) 2.0 Open Beta。

按照IBM Websphere Application Server的产品经理Erik Kristiansen所说,“OSGi在WAS内部提供了卓越的模块性和版本功能。OSGi为那些期望把自己的应用建立在WAS之上的企业客户带来了OSGi的模块性和组件化。”

[[9191]]

值得注意的是,IBM之前已经发布过alpha形式的OSGi feature pack,但并未声明公开版本发布的具体日期。IBM的feature pack是基于Apache Aries项目,来为企业应用开发者提供OSGi服务。

OSGi致力于提供更加容易的代码库管理的同时,允许创建更多动态的可以在运行时运行插件和扩展的软件。RedMonk的分析师Michale Cote认为,“因为某些原因,Java代码越发往整体复杂的趋势发展,但也一直存在技术和文化上的努力在与巨大的复杂性进行斗争。从设计的角度看,OSGi和Java中的其他组件会是一种比较好的方式,来组织工程中的代码,让开发者的日子更好过。”

在Eclipse方面,新建立的Gemini项目是与Eclipse运行时相关联的孵化项目,它基于OSGi。根据EclipseCon 2010技术大会中有关Gemini话题的网页,以及前Eclipse董事会成员之一Mik Kersten所说的,“Gemini的目标是在一个模块化框架中提供对标准企业技术的访问。Gemini将会采用OSGi,并让企业服务器端模块集成在一起更加简单。Gemini将会为在OSGi中使用企业技术提供“随时可用的实现”。另外一个新项目Eclipse Virgo则提供来一个基于OSGi的应用服务器,Virgo起源于Spring Source dm Server产品。”

关于OSGi

OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi容器已有多家开源实现,比如Knoflerfish、Equinox和Apache的Felix。您可以通过这些容器,把您的应用程序劈分为多个模块单元,这样,您就可以更容易地管理这些模块单元之间的交叉依赖关系。

OSGi规范和Servlet规范及EJB规范类似,该规范定义了两种对象,一是容器对外提供的服务对象,另一个是容器和您的应用程序之间必须遵守的契约,其中,服务对象是容器要实现的。您如果想要在OSGi平台上进行开发,首先,您必须要使用OSGi API来创建您的应用,然后将之部署到OSGi容器中。

关于Java模块化

模块化是个一般概念,这一概念也适用于软件开发,可以让软件按模块单独开发,各模块通常都用一个标准化的接口来进行通信。实际上,除了规模大小有区别外,面向对象语言中对象之间的关注点分离与模块化的概念基本一致。通常,把系统划分外多个模块有助于将耦合减至***,让代码维护更加简单。

Java语言并不是按照模块化思想设计的(除了package,按照Java语言规范introduction一 节的介绍,package类似于Modula-3模块),但是在Java社区依然有很多实际存在的模块。任何一个Java类库实际上都是一个模块,无论其 是Log4J、Hibernate还是Tomcat。通常,开源和非开源的应用都会依赖于一个或多个外部类库,而这种依赖关系又有可能传递到其他类库上。

【编辑推荐】

  1. 独家专访林昊:一步一步了解Java模块化
  2. 2010年将是Java模块化的一年
  3. Java模块化概念解惑与现状总结

 

责任编辑:王晓东 来源: infoq
相关推荐

2010-03-24 08:34:44

OSGiJava模块化

2015-10-08 10:17:26

数据中心北欧冰岛

2015-06-23 16:25:29

数字校园甘肃高校华为

2011-08-24 09:48:22

2020-06-11 10:04:54

物联网房地产IOT

2010-10-27 16:24:07

数据中心统一网络思科

2009-05-07 13:22:01

OSGi面向对象模块化

2023-03-08 15:18:36

数字经济云计算数据中心

2010-01-28 10:27:33

Java模块化OSGi

2014-04-28 17:27:21

浪潮企业云

2015-10-10 11:29:45

Java模块化系统初探

2011-05-24 09:16:47

OSGiEclipse

2019-08-28 16:18:39

JavaScriptJS前端

2012-06-25 11:47:14

ibmdw

2018-03-21 21:31:28

Java9编程Java

2010-03-22 16:28:04

泰信科技华为

2021-04-04 22:56:39

T-Mobile5G家庭宽带

2016-09-23 11:08:35

前端Javascript模块化

2010-08-02 08:54:53

Flex模块化

2010-01-27 09:53:41

模块化可视性可用性
点赞
收藏

51CTO技术栈公众号