`
jarfield
  • 浏览: 202652 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转载]JBoss5的完全可定制性

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

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

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

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

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

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

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

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

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

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

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

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

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

  我们看看JBoss Blog(http://www.jboss.org/jbossBlog/blog/)上这段文字:

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

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


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

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

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

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

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

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

分享到:
评论

相关推荐

    jboss5服务器2

    - **EJB3支持**:JBoss5完全支持Java EE 5规范中的Enterprise JavaBeans 3.0,简化了EJB的开发和部署,引入了无状态会话bean、有状态会话bean、消息驱动bean等组件。 - **JPA集成**:集成了Java Persistence API,...

    JBoss5.pdf

    JBoss EAP 5 Hibernate EntityManager Reference Guide是一份指南文档,用于指导开发者如何在JBoss EAP 5的环境中使用Hibernate EntityManager。它详细描述了JBoss EAP 5中Hibernate EntityManager的配置和使用方法...

    jboss 5 原理 2 classloader

    JBoss 5是一款知名的Java应用服务器,其在类加载(Class Loading)方面有着独特的处理方式...通过理解和掌握JBoss 5的类加载原理,开发者可以更有效地管理和优化应用程序的运行时环境,提高软件的可扩展性和可维护性。

    JBoss AS 5 Development

    - **可扩展性**:提供了丰富的插件和模块化设计,方便扩展和定制。 #### 二、JBoss AS 5 开发环境搭建 - **安装与配置**:首先需要下载JBoss AS 5的安装包,并按照官方文档进行安装配置。安装过程中可能需要设置...

    Jboss5源代码-官方-第二部分

    【JBoss5源代码分析-官方-第二部分】 JBoss5是JBoss企业应用平台(JBoss Enterprise Application Platform)的一个重要版本,它基于Java EE 5规范...同时,这也为定制和优化JBoss5提供了可能,以满足特定项目的需求。

    jboss安全性 jboss设置安全性

    ### JBoss安全性设置详解 #### 一、JMX控制台安全性配置 在部署与管理Java应用服务器时,确保系统的安全性是至关重要的一步。对于JBoss AS(Application Server),特别是其管理控制台——JMX Console的安全性配置...

    JBoss5部署原理

    ### JBoss5部署原理详解 #### 一、JBoss5微容器架构与启动流程 JBoss5采用了全新的微容器架构,这种设计使得整个系统更为灵活且易于扩展。启动时,JBoss5首先会加载一个名为`ProfileServiceBootstrap`的类,该类...

    Apache2.2+JBOSS 5 集群配置

    Apache2.2+JBOSS 5 集群配置主要涉及在Linux环境下构建高可用性和负载均衡的服务器集群,以提升应用服务的稳定性和处理能力。以下是详细的知识点: 1. **JBoss集群架构**: JBoss 集群可以采用两种架构:客户端...

    jboss as 5 developments

    jboss 5的详细说明。对在jboss5上进行开发来说是很好的参考资料。

    Jboss5源代码-官方-第一部分

    本部分将深入探讨JBoss 5的源代码,了解其内部工作原理以及如何利用这些知识来优化和扩展应用程序。 JBoss 5源代码的分析可以从以下几个关键模块入手: 1. **核心服务**:JBoss的核心服务包括事务管理、安全管理、...

    JBoss4 Guide 中文

    预告的JBoss5.x版本将带来架构上的重大变革,采用POJO(Plain Old Java Object)微内核设计,这将极大简化应用服务器的核心功能,提高系统灵活性和性能。同时,对JavaEE5的兼容性意味着它将支持更多现代Web应用所需...

    jdk6 jboss5 webservice bug

    标题 "jdk6 jboss5 webservice bug" 暗示了这是一个关于Java开发环境中,具体是JDK 6和JBoss Application Server 5版本中Web服务(Webservice)出现的问题。这个问题可能是由于某些兼容性、配置错误或者已知的bug...

    JBoss5配置相机

    【JBoss5配置详解】 JBoss Application Server 5(简称JBoss AS 5)是一款开源的Java EE应用服务器,由Red Hat公司维护。它提供了一个用于部署和管理企业级Java应用程序的平台。JBoss AS 5是基于EJB 3.0规范的,...

    JBOSS 架构分析

    通过上述分析,我们可以了解到 JBoss 架构的强大之处在于其灵活性和可定制性。这种设计使得开发者可以根据具体需求选择合适的组件和服务,同时保证了系统的稳定性和性能。对 JBoss 架构的理解有助于开发人员优化应用...

    jboss5服务器1

    jboss服务器,javaee容器,分布式

    Jboss AS 5 Development

    The latest JBoss AS 5 Development Guide book, very practical to any developer who is or is going to use JBoss AS

    关于JBoss5加载项目的完整过程以及相关错误解决

    【JBoss5加载项目完整过程】 JBoss5.1.0.GA是一个成熟的Java应用服务器,用于部署和管理Web应用程序。在这个过程中,最常见的部署格式是WAR(Web Application Archive),它是一个包含所有必要资源和配置的压缩文件...

    EJB3+JBOSS5+JPA整合

    EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可复用...开发者需要深入理解EJB3的编程模型、JPA的持久化机制以及JBOSS5的配置和管理,才能有效地利用这些技术来构建高质量、高可维护性的应用程序。

    jboss5 as development源码

    jboss5 as developemnt是一本很好的书,基本上包括了从entitybean,sessionbean,messagedrivenbean,managedbean的开发。 从ejb工程,到jsf2.0工程,很好的示例,手把手交的。底层连接数据库,开发工具是eclipse ...

Global site tag (gtag.js) - Google Analytics