一切福田,不離方寸,從心而覓,感無不通。

Jboss

JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用。2006年,Jboss公司被Redhat公司收购。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3.0的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

优点

1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。
2、JBoss需要的内存和硬盘空间比较小。
3、安装便捷:解压后,只需配置一些环境变量即可。
4、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载它;如果有改动,也会自动更新。
5、JBoss与Web服务器在同一个Java虚拟机中运行

JBoss运行后后台管理界面  JBoss运行后后台管理界面

,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。

6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
7、Jboss支持集群。
发展

概述

在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
另外,JBoss应用服务器还具有许多优秀的特质。
其一,它将具有革命性的JMX微内核服务作为其总线结构;
其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);
其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展JBoss的企业级市场,JBoss公司还签订了许多渠道合作伙伴。比如,JBoss公司同HP、Novell、Computer Associates、Unisys等都是合作伙伴。

主流

在2004年 6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。这是JBoss应用服务器发展史上至今为止最重要的里程碑。与此同时, JBoss一直在紧跟最新的J2EE规范,而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社区,JBoss成为了第一个通过J2EE 1.4认证的主流应用服务器。JBoss应用服务器已经真正发展成具有企业强度(即,支持关键级任务的应用)的应用服务器。
JBoss 4.0作为J2EE认证的重要成果之一,

基于JBOSS的J2EE开发  基于JBOSS的J2EE开发

已经于2004年9月顺利发布了。同时,JBoss 4.0还提供了JBossAOP(Aspect-Oriented Programming,面向方面编程)组件。AOP吸引了大量开发者的关注。它提供的新的编程模式使得用户能够将方面(比如,事务)从底层业务逻辑中分离出来,从而能够缩短软件开发周期。用户能够单独使用JBoss AOP,即能够在JBoss应用服务器外部使用它。或者,用户也可以在应用服务器环境中使用它。JBoss AOP 1.0已经在2004年10月发布了。

展望下一代JBoss应用服务器,其重点关注的是EJB 3.0。当前,J2EE 1.4规范使用了EJB 2.1。其中,EJB 3.0的主要目标是简化EJB模型,即用户能够更容易开发EJB组件,并且能够在EJB容器外部测试EJB组件。EJB 3.0规范草案已经于2004年6月推出。JBoss公司一直在积极参与EJB 3.0规范的制定,并且在为EJB规范的发展贡献自己的力量。其中,Gavin King(Hibernate[1]的创立者)和Bill Burke(JBoss公司的首席架构师)已经为EJB 3.0规范草案贡献了很多内容。
JBoss公司于2004年10月初发布了基于JBoss应用服务器实现的EJB 3.0预览版。尽管EJB 3.0规范草案还处于初期发展和评审阶段,但这为J2EE社区测试EJB 3.0、并提供反馈信息提供了很好的机会。这也证实了JBoss是一家创新型公司。JBoss一直在引领技术规范的发展。
Hibernate已经成为了事实上的持久化引擎。JBoss公司致力于将自身发展成为开源项目的社区,比如招募Gavin King和许多Hibernate开发者。其中,最新版的JBoss应用服务器已经将Hibernate集成为JMX MBean服务。这使得用户能够在应用服务器环境中直接使用Hibernate,而不管它是否处于J2EE上下文中。
从2003年开始,JBoss启动了JBossCache项目。JBossCache是基于内存的、可复制的、事务性的缓存系统,并且具有持久化状态存储管理能力。它受到极大的关注。用户能够在JBoss应用服务器或其他应用服务器中,或单独使用JBossCache。同时,它提供的基于JBossAOP的AOP模块能够在可复制环境中实现细粒度、域级别复制,而且能够透明地管理复杂对象。在最新版的JBoss应用服务器中,用户能够直接通过JMX MBean服务访问到JBossCache提供的服务。
JBoss应用服务器5.0于2008年12月6日正式发布,新版应用服务器的模块化更强,可配置性更高。JBoss应用服务器5.0最终版完全兼容Java EE 5.0规范,具有一个微型内核和容器,支持OSGi和REST。
版本

JBoss4

JBoss4包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持。早期的JBoss使用了ApacheTomcatWeb服务器,但在JBoss4.0中已经把Apache Tomcat内嵌到JBoss中了。后续又集成Java数据对象(JDO),对于JMS多点传送机制支持的修补,对J2EE1.4的完全实现和分布式事务机制。
JBoss的应用服务器控制和配置-JMX机制,运行一次可以部署所有的组件和服务。资源属性和可配置参数可以通过MBeans(可控制beans)映射和更改,这些控制可以在 JBoss的控制台进行设置。一旦我们的servlet-based的应用程序被部署,JBoss就自动安装一个部署MBeans,这个MBeans会被添加到JMX控制台的导航菜单中。通过这个MBean就可以部署或卸载WAR应用程序,或查看应用程序相关的属性。
Jboss4基于Jboss3.2,在J2EE标准特性方面,主要的改进包括:
· JBoss 4.0是业界第一家取得正式J2EE1.4认证的应用服务器,完全符合规范的J2EE标准
· 完全支持J2EE web services(JAX-RPC方式和WS4EE架构方式)和SOA
· 支持AOP模型,JBoss Aop极大的提高了生产力
· 与Hibernate紧密集成
· 通过一个内建的Caching构架提升集群功能和分布式Caching(TreeCache)
JBoss4完全遵循J2EE1.4标准,所以允许开发者在不同的应用服务器上重用J2EE组件(如EJB等),比如可以轻易的将部署在Weblogic或Websphere上的EJB迁移到JBoss上来,JBoss4比JBoss3.2实现了下面几个新的J2EE标准:
· JBoss4支持J2EE Web Services,包括JAX-RPC和J2EE架构的Web Services,使用EJB提供安全的Web Service环境,它是基于J2EE的SOA实现。JBoss3.2中旧的JBoss .NET Web Services API不再支持,新的Web Service实现是WS BasicProfile-1.0 compliant
· JBoss4实现JMS1.1替代了JBoss3.2中的JMS1.0
· JBoss4实现了JCA (Java Connector Architecture) 1.5替代了JBoss3.2中的JCA1.0
· JBoss4实现了新的Java Authorization Contract for Containers (JACC),JACC是JAVA2一个基本的权限机制,为访问EJB方法和web资源赋予授权描述,即J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,新的实现在语法上基于JBoss3.2,使用认证过的Subject声明Roles,认证与JAAS的authentication保持一致。并且security配置,JBoss4和JBoss3.2兼容
· JBoss4实现了EJB2.1规范.替代了JBoss3.2中的EJB2.0规范
JBoss 4特性:
1. JBoss4.2必须需要安装jdk5
2. JBoss Ejb3默认被安装
3. JBoss的web容器使用JBoss Web v2.x (集成tomcat6)
4. deploy/jboss-web.deployer 目录替换了原先的deploy/jbossweb-tomcat55.sar
5. JBoss Transactions v4.2为默认的事务管理器
6. JBoss WS提供web service功能
7. JGroups/JBossCache支持 channel multiplexing
8. JBoss Remoting更新到stable 2.2.x,JBossMQ(JBoss4.0使用)为默认JMS实现,但是可以使用JBoss Messaging替换。
9. EJB调用方式 由 rmi-invoker替换为JBoss Remoting 的 unified-invoker
10. log4j 和 commons-logging 升级到新版本

JBoss5

第二代基于服务的架构:核心的JBoss Microcontainer可以在多种编程和组件模型上提供改进后的级别加载、性能、生命周期管理和灵活性,其中包括Java EE、多种POJO、OSGi、Spring Framework和传统的现场和云操作环境。这种Microcontainer还提供将企业服务从核心运行时间引擎中分离出来的能力,使其更便于配置。
改进后的管理和配置:JBoss运营网络管理控制台的嵌入式版本可以提供一个全面的接口,用于管理和配置应用、控制应用服务器的运行,以及提供深入查看现场内外应用性能指标的能力。
Java EEF支持:JBoss企业应用平台支持全套的Java EE 5标准,并可为多种即将推出的Java EE 6标准提供支持,其中也包括Java EE Web Profile概念。
主要组件更新:更新的内容包括企业版的JBoss Application Server、Hibernate、Seam、JBoss Cache和JBoss Web Services,可为各类部署环境中的扩展性、高可用性和智能负载均衡提供性能增强特性。这一新版本还可支持分布式事务和全面的Web服务栈支持。
最新版的JBoss运营网络 – JBoss ON 2.3可支持运行管理。该版本提供全面的管理支持,包括在传统和基于云的部署中配置应用集群,并在多种运行环境中提供可用性和性能管理。
JBoss Developer Studio还可为开发人员提供开发工具。这种基于Eclipse的集成式开发环境能够提供全面的工具集,使开发人员能够使用Seam、Java EE、Spring、Hibernate、AJAX、RichFaces等技术,迅速建立丰富且交互性水平较高的应用和服务。
JBoss AS5中,大部分显著的新特性添加都源自于要将所有主要的JBoss子系统带到下一个阶段去。
JBoss Messaging 1.4现在取代了JBossMQ,成为缺省的JMS提供者。除了透明的故障恢复和智能的消息重分发外,JBM还支持即开即用的集群队列和主题。可以跨节点把消息复制到内存中,从而避免磁盘I/O,或者能使用支持大消息的分页技术将消息持久化到任何流行的关系数据库中。JBM证明,利用已完全出现的新的只扩展日志存储,原本就很卓越的性能和东西会变得更加优秀。
JBoss WebServices 3.0,完全支持JAX-WS/JAX-RPC、XOP和SwA的附件、还有一系列WS-*标准。JBWS转向了一个可插拔的架构,该架构允许更换底层的WebServices栈,所以你可以将JBossWS-native换成Sun Metro或Apache CXF。这样的话,你就可以因地制宜,使用最合适WebServices栈。
为了改进可伸缩性和集群Web会话的钝化,AS5中的集群支持SFSB的Buddy复制,以控制内存的使用。EJB3 Entity和Hibernate缓存有了很大的改进,因为可以针对实体和查询使用不同的缓存,它们分别是失效缓存和复制缓存。在底层的JGroups协议栈中,还有一些其它的性能优化。
JBoss Transactions是JBoss 5默认的事务管理器。JBoss TS已经与JBoss 5的Servlet容器——JBoss Web——一起在AS 4.2系列中进行了测试,JBoss Web是基于Apache Tomcat的一个实现,支持原有的APR-based连接器,它在可伸缩性和性能上不但要达到,而且要超越Apache Http服务器的水平。
就API来说,AS5是Java EE 5的实现,所有相关的API都会包含在内。对大部分Java EE 5“新的”API来说,比如EJB3、JAX-WS、JPA等,在JBoss AS 4.2系列中已经实现了,但由于JBoss AS5增加了TCK测试的覆盖范围,所以肯定会更为严格遵循规范。
JBoss5应用服务器提供了大量的新功能:除了支持最新的EJB 3.0规范外,新版的JBoss AOP也正式发布。Web Services 方面,JBoss 现在支持全部的J2EE Web Services,同时兼容Microsoft .NET;Messaging 项目采用了完整的JMS 1.1 实现,同时充分的改进了分布式目的单元格等功能的高可用性;JBoss Seam 中包括了一系列统一的革命性的组建设计模型和框架。同时JBoss 5中也集成了Hibernate 3.2
JBoss AS 4.2和企业应用平台的第一个版本(EAP 4.2)确实对AS 5造成了很大的影响。从零开始创建一个全新的内核、从MBeans转换到POJO、在最底层集成AOP、统一跨子系统的元数据处理、更改类加载系统、使部署器Aspect化,换句话说,就是改变内部架构、替换应用服务器的核心,同时还要保持与大部分已有服务的向后兼容性,为各种内部子系统引入合适的SPI。长远看来这是好事,因为它允许最大的可插拔性,以及在不同的运行时环境中(比如独立的EJB3或嵌入到不同的应用服务器中)按需要选取使用各种JBoss项目。
JBoss AS5不只是一个Java EE 5应用服务器。对下一代JBoss项目来说,它还寄托了成为最先进的服务器运行时环境的愿景。

JBoss6

JBOSS AS6 最大亮点是对Java EE 6 Web Profile规范的支持,一份关于最流行的Java EE标准的报告中,排名前5(JPA、JSP、EJB3、JSF及CDI)的都是Java EE Web Profile的必备组件。除了Java EE 6 Web Profile所需的这些组件外,AS 6还提供了可选的经过认证的组件:RESTEasy 2.1.0——JAX-RS1.1规范的实现;HornetQ2.1.2——JMS 1.1规范的实现以及JBoss Web Services CXF栈——JAX-WS 2.2规范的实现。
主要特性就是对JBoss Injection框架的完整实现。这对于满足Java EE 6平台规范所要求的Resources、Naming以及Injection是至关重要的。Infinispan v4.2.0是个开源的数据网格平台,从CR1里程碑发布时就加入了,现在它也集成到了JBoss AS 6中,并且是默认的分布式缓存提供者。Infinispan公开了一个兼容于JSR-107的Cache接口,你可以将对象存储其中。JBoss AS 6服务器可以动态探测并注册到前端的apache httpd服务器。
对于性能来说,JBoss AS 5与6之间有明显的变化。JBoss AS 6对启动性能的提升很明显,现在的平均启动时间是15秒。用户能够感觉到这种改进,一定程度上是因为延迟了随AS一同发布的管理控制台应用的部署,转而以“按需”方式提供,同时还实现了Timer Service的延迟部署。Microcontainer(v2.2)的增强(包括新的注解扫描库的实现)极大降低了应用部署的时间。

JBoss7

2011年07月13日,JBoss AS 发布了 7.0 正式版。这是一个全新的版本,带来多项的改进和新特性,特别是:
1. 极快(小于3秒的启动时间)
2. 轻量级
3. 模块化的核心
4.热部署、增量部署
5. 优雅的管理
6. 集群域的管理
7. First Class components
更多关于 JBoss AS 7 的新特性请看:下文扩展阅读。