java

位置:IT落伍者 >> java >> 浏览文章

JBoss 5迎来中间件彻底的可配置时代


发布日期:2022年06月01日
 
JBoss 5迎来中间件彻底的可配置时代

面向对象奠基人之一Grady Booch说The great thing about objects is they can be replaced对象最伟大的之处是其可被替代(这也是使用OO的主要原因之一)

每个对象都是可替代意味着高度的灵活性我们曾经梦想的按需装配时代已经来临由 Ioc模式/依赖注射组成微容器可以帮助我们实现对象的可替代性

Spring/HiveMind 包括Jdon Framework都是Ioc组成的一种微容器在Java企业系统架构选择考量一文中我已经在灵活性方面对几个组件架构进行了比较

其中一个重要的疑问EJB是POJO吗?这里面有两个概念EJB是否支持POJO?EJB本身是否是POJO?前者答案是肯定的但是后者则曾经是否定的

在回答之前我们必须对POJO有一个详细了解最初POJO是相对EJB提出的Martin Fowler 对POJO定义是我发现人们已经忘记了原来正常的Java Object因为这些对象还没有一个很特殊的名字这样我给它们取名为POJO(Plain Old Java Object) 一个POJO domain model容易放在一起快速build在EJB容器以外运行和测试并且不依赖EJBhttp://mindprodcom/jgloss/pojohtml

但是随着EJB支持POJOPOJO的概念从原来相对EJB的定义已经引申开来代指一种相当灵活的对象也就是可被随时替换的对象不因为依附任何框架而不能被替换

那么EJB本身是否是POJO?实际意义是EJB container是否是POJO也就是说EJB本身组件是否可被替换?

正如我在Java企业系统架构选择考量一文中所写当我们只需要EJB的集群而事务等基础功能都不需要时EJB服务器是否支持我们这种任意配置和切割?或者我想替代其中一个基础功能是否可任意供我们切换也就是Grady Booch那句话对象是否可替换?

当然在这场EJB是否是POJO讨论中有人引用一些老外名言EJB本身是否是POJO没有讨论意义可惜说这话的老外自己的概念没有达到最新理念上

那么作为一种组件结构是否可以既支持应用系统的任何一个组件对象可替换而且也支持框架本身的组件也是可替换这个境界是否可以达到呢?

完全没有问题目前开源软件HiveMind和Jdon框架都是支持彻底的可替换所谓彻底的可替换就是框架本身一些功能也是可配置可嵌入的而不只是应用程序是可替换的

这就实现了组件架构的完全的彻底的可配置性是一种Embeddable或Plugin架构这样的架构可允许开发者介入任何一个层次进行拓展和维护从而形成强大的可定制性和可拓展性可以使用建筑的一个比喻这种Embeddable架构类似钢筋结构建筑它只有固定几个框架和板筋你喜欢划分什么样的房间完全由你来决定唯一的限制是你的想像了

现在作为EJB container设计领先的开源软件JBoss即将推出JBoss 版本在其JBoss 版本中其微核心本身将是可配置的最终将实现EJB的彻底的可配置性

我们看看JBoss Blog( http://wwwjbossorg/jbossBlog/blog/ )上这段文字

JBoss微容器将是彻底的反转控制依赖注射的轻量容器它允许你通过XML配置POJO这些POJO有自己的生命周期能够作为服务Service它并不需要JBoss的应用服务器大多数JBoss提供的功能将都会转为POJO并且可配置这些都将在年的JBoss 版本中完全实现

在这篇现场录像( http://wwwjavalobbyorg/av/javazone//aardaljboss )中 Thomas RokaAardal 介绍了JBoss – lightweight middleware with EJB他介绍了企业Java将被简化和增强通过结合新的JBoss微内核显示什么是真正的轻量应用服务器它又是怎样影响未来企业开发市场的中间件将会到处被看到

对于现在大部分初学者来说首先需要从Jsp中嵌入Java代码的坏习惯中改变过来将你的Java代码使用组件JavaBeans来实现然后逐步走上面向组件(面向构件)的开发方式进而上升到可彻底配置的组件化编程层次

在JBoss 推出之前JEE曾经被指责为InHouse也就是说很多功能被绑定在JEE服务器上诞生很多基于JBoss基于Weblogic的基于Oracle的甚至基于JMX的JEE应用系统当这样的JEE应用系统需要移植时那些依附特性因为和容器/服务器粘性太牢而无法跟着应用系统跑

因此多年来应用者业界一直呼吁OutofBoxSpring/HiveMind/Jdon等框架应呼而生并且Rod Johnson在 JavaOne大会上演讲上预言JEE/Java EE将走向一个以框架为中心的新的开发时代这样应用系统依赖的很多功能在框架中实现而框架是可以和应用系统到处移植的

显然这种OutofBox的倡导对JBoss路线提出了挑战JBoss奋起反应你们既然指责我的容器是一个Box那么我们就一不做二不休息打破这个BoxJBoss 即将诞生因为JBoss 本身是可肢解可配置的因此使用JBoss 编制的Java EE应用系统需要移植时可以将应用系统依赖的那些功能从JBoss 容器中分离出来带着跑这样你的应用系统又符合Java EE标准在特殊之处也可以将容器作为一种框架带了跑

当然因为目前的JEE标准包括EJB离实际开发还有一段路它没有提出一种编程模型因此作为符合标准的应用服务器JBoss在实际应用中还是需要开发框架辅助的Spring提供强大全面的API库;HiveMind提供灵活的配置功能;而Jdon框架在彻底可配置基础上瞄准应用开发中的增删改查这些功能进行缺省实现提高开发效率避免大规模开发中这些纯劳动量的低层次工作

围绕Outofbox 和break the box未来组件(构件)架构领域将有一番争夺有人说你怎么忘记谈Weblogic和Websphere了?有一点我忘记说了这场完全可配置运动是由开源领域挑起的也就是说在组件架构设计上开源运动已经走在了工业界前面工业界巨头们都跑去搞他们赚钱的强项集成和SOA了

上一篇:用jbuilder7+jboss3+vss开发EJB

下一篇:利用 Ant 和 JUnit 进行增量开发