WebShpere应用服务器V7的功能包针对OSGi应用和Java持久化API2.0提供了标准实现,该实现遵循OSGi Blueprint Container和Java EE 6 JPA 2.0规范。该版本还提供了一个可选功能,可以把Java应用作为版本化的OSGi Bundle的一个集合来装配、部署和管理。IBM WebSphere团队最近宣布正式发布的功能包是基于Apache的项目 Aries和 OpenJPA。WebSphere应用服务器的功能包是可选的安装产品,用于应用服务的扩展,提供了一系列新的相关标准和特征。
OSGi和JPA的新特性包括,既能独立安装,也可以一起安装,提供基于POJO的组件模型和持久化框架,同时还为Web应用的开发和单元测试提供模块化的部署系统。OSGi的应用特征支持以模块化的风格来开发和部署企业应用,并且为WebSphere应用的部署流程引入了OSGi Bundle的配置仓库。这使得一些通用的Bundle从独立的企业应用档案中分离出来,以Bundle仓库的形式集中管理。Bundle的多版本都可以安装在Bundle仓库中,根据应用中的元数据描述,不同的版本可以为其相关的企业应用提供服务。OSGi的应用特征包括OSGi V4.2的Blueprint容器,与WAS的运行时环境集成后可以简化POJO组件的开发和配置,同时可以让容器中的Bean以声明式机制来发布和消费OSGi服务。这里提到的容器不仅仅是Bean的组件,容器中的Java包依赖于OSGi框架和服务器运行时环境,这样可以在服务器环境以外对Bean的组件进行单元测试。新版本的Rational Application Developer (RAD) V8 Beta提供了OSGi应用的开发工具。
RAD为OSGi Bundle项目和OSGi应用项目引入了新的项目类型,可以自动生成Manifest信息,并提供了格式化的编辑器。OSGi的模块化语义已经被加入到了项目的构建路径,提供开发环境支持模块化设计。RAD的基于Facet的配置方式使得OSGi项目可以像OSGi Web项目或OSGi JPA项目那样进行配置,同时提供了针对web.xml、persistence.xml和blueprint.xml的集成工具。OSGi应用项目可以从企业Bundle档案中导入和导出,既可以运行在RAD选装的WebSphere Application Sever V7的RAD工作空间,也可以运行在远程的安装了OSGi应用功能的WSA V7上。
JPA2.0的新标准包括持久化领域建模的改进,新的元模型和标准API,实体Bean校验,JPQL和更多的O/R Mapping元数据的更新。JPA2.0提供了轻量级的2级缓存集成,当WebSphere extremeScale可用时,OpenJPA2.0将采用它作为二级缓存来改进数据存取的性能。
InfoQ找到了IBM的WebSphere架构组的杰出工程师Ian Robinson,请他谈一下新功能包的发布。他表示OSGi已经是IBM策略的一部分,但它主要用于内部项目(例如WebSphere和Eclipse)。随着OSGi企业版本4.2的发布以及OSGi在企业应用部署方面扮演的角色,OSGi成为了相关领域的主题,OSGi可以通过Bundle的模式部署应用模块来简化部署流程,同时支持开发人员和IT操作人员。Ian最近写了一篇博客,介绍了OSGi和SCA集成,以及通过工具支持使用这些新功能。当安装了SCA的1.0.1.5或更新版本的WAS V7功能包发布时,OSGi的功能就可以与WebSphere应用服务器的服务组件架构(SCA)联合使用了。SCA提供了装配模型,可以把异构的模块进行粗粒度的组合,这样的组合可以为那些不同的可配置的绑定定义外部服务和引用。通过组装成SCA组件,OSGi应用可以远程暴露它的任何Blueprint──把OSGi服务配置为SCA服务,远程配置绑定这些服务。
InfoQ:你能介绍一下OSGi Blueprint Container是怎么工作的吗?与其他的OSGi框架比较呢?例如SpringDM项目。
Blueprint容器是OSGi企业级V4.2规范的一部分。它为OSGi应用提供细粒度的装配模型,同时支持以简单声明方式来发布OSGi服务,该服务是由POJO Bean组件提供的。POJO Bean组件的生命周期和依赖注入由Blueprint容器来管理,Blueprint通过Bundle级别的XML Bean定义文件来进行配置,这种配置方式是根据SpringDM Bean的xml文件标准进化而来。目前存在一系列兼容的Blueprint容器的实现──例如在开发的Apache Aries项目(该项目在安装OSGi应用特征时已经被集成到WAS中),以及SpringDM项目,该项目被 VMWare贡献给了 Eclipse Gemini项目。通过许多企业级扩展可以不断增强Apache Aries Blueprint容器的功能,这还包括,把容器集成到类似WAS的企业环境时,对其事务和持久化的支持。
InfoQ:IBM把OpenJPA 2.0集成到WebSphere应用服务器,到底对哪些方面有增强和改进,你能详细描述一下吗?
当安装了JPA功能后,JPA 2.0的功能是由OpenJPA 2.0提供的,OpenJPA 2.0已经作为WebSphere应用服务器运行时的一部分。除了与WAS的管理、调试、监控和安全集成外,JPA 2.0运行时还可以通过集成Data Studio pureQuery Runtime(现在叫 Optim pureQuery Runtime)进行扩展。PureQuery Runtime是一个高性能Java数据访问平台,可以帮助应用系统实现数据访问。PureQuery能对现有的Java类进行挖掘分析,收集绑定到静态包的SQL语句,而不需要执行应用程序,还能够显式的改变DB2静态SQL执行的好处。它可以帮助DBA对系统进行修改和锁定SQL而不需要修改应用程序,能够提供足够的信息快速跟踪SQL、找到根源。
InfoQ:在新功能和增强方面,WebSphere v7 OSGi和JPA功能包有哪些规划?
你可以看到在未来我们会进一步增强这些功能,例如作为新版本的OSGi企业特性进行发布。既然我们已经开始基于更为广泛的开源社区开发底层技术,那么未来你就可以通过关注Apache OpenJPA和Aries这样的项目看到WAS的集成方式和发展前景。
查看英文原文:WebSphere 7 Feature Pack Supports OSGi-based Application Deployment and SCA Integration