JBoss
JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于J2EE的web操作系统(operatingsystemforweb),它体现了J2EE规范中最新的技术,并且它还在theJavaWorldEditors'Choice2002评选中获得“最佳Java应用服务器”大奖。无论是学习还是应用,JBoss均提供了一个非常优秀的平台。
1、简介
在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
另外,JBoss应用服务器还具有许多优秀的特质。
其一,它将具有革命性的JMX微内核服务作为其总线结构;
其二,它本身就是面向服务的架构(Service-OrientedArchitecture,SOA);
其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈说明,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展JBoss的企业级市场,JBoss公司还签订了许多渠道合作伙伴。比如,JBoss公司同HP、Novell、ComputerAssociates、Unisys等都是合作伙伴。
2、优点
1、JBoss是免费的,开放源代码J2EE的实现,通过LGPL许可证进行发布。但同时也有闭源的,开源和闭源流入流出的不是同一途径。
2、JBoss需要的内存和硬盘空间比较小。
3、安装便捷:解压后,只需配置一些环境变量即可。
4、JBoss支持"热部署",部署BEAN时,只拷贝BEAN的JAR文件到部署路径下即可自动加载它;如果有改动,也会自动更新。
5、JBoss与Web服务器在同一个Java虚拟机中运行,Servlet调用EJB不经过网络,从而大大提高运行效率,提升安全性能。
6、用户可以直接实施J2EE-EAR,而不是以前分别实施EJB-JAR和Web-WAR,非常方便。
7、Jboss支持集群。
3、发展
概述
在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
另外,JBoss应用服务器还具有许多优秀的特质。
其一,它将具有革命性的JMX微内核服务作为其总线结构;
其二,它本身就是面向服务的架构(Service-OrientedArchitecture,SOA);
其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能。
为满足企业级市场日益增长的需求,JBoss公司从2003年开始就推出了24*7、专业级产品支持服务。同时,为拓展JBoss的企业级市场,JBoss公司还签订了许多渠道合作伙伴。比如,JBoss公司同HP、Novell、ComputerAssociates、Unisys等都是合作伙伴。
主流
在2004年6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。这是JBoss应用服务器发展史上至今为止最重要的里程碑。与此同时,JBoss一直在紧跟最新的J2EE规范,而且在某些技术领域引领J2EE规范的开发。因此,无论在商业领域,还是在开源社区,JBoss成为了第一个通过J2EE1.4认证的主流应用服务器。JBoss应用服务器已经真正发展成具有企业强度(即,支持关键级任务的应用)的应用服务器。
JBoss4.0作为J2EE认证的重要成果之一,已经于2004年9月顺利发布了。同时,JBoss4.0还提供了JBossAOP(Aspect-OrientedProgramming,面向切面编程)组件。AOP吸引了大量开发者的关注。它提供的新的编程模式使得用户能够将方面(比如,事务)从底层业务逻辑中分离出来,从而能够缩短软件开发周期。用户能够单独使用JBossAOP,即能够在JBoss应用服务器外部使用它。或者,用户也可以在应用服务器环境中使用它。JBossAOP1.0已经在2004年10月发布了。
展望下一代JBoss应用服务器,其重点关注的是EJB3.0。当前,J2EE1.4规范使用了EJB2.1。其中,EJB3.0的主要目标是简化EJB模型,即用户能够更容易开发EJB组件,并且能够在EJB容器外部测试EJB组件。EJB3.0规范草案已经于2004年6月推出。JBoss公司一直在积极参与EJB3.0规范的制定,并且在为EJB规范的发展贡献自己的力量。其中,GavinKing(Hibernate的创立者)和BillBurke(JBoss公司的首席架构师)已经为EJB3.0规范草案贡献了很多内容。
JBoss公司于2004年10月初发布了基于JBoss应用服务器实现的EJB3.0预览版。尽管EJB3.0规范草案还处于初期发展和评审阶段,但这为J2EE社区测试EJB3.0、并提供反馈信息提供了很好的机会。这也证实了JBoss是一家创新型公司。JBoss一直在引领技术规范的发展。
Hibernate已经成为了事实上的持久化引擎。JBoss公司致力于将自身发展成为开源项目的社区,比如招募GavinKing和许多Hibernate开发者。其中,最新版的JBoss应用服务器已经将Hibernate集成为JMXMBean服务。这使得用户能够在应用服务器环境中直接使用Hibernate,而不管它是否处于J2EE上下文中。
从2003年开始,JBoss启动了JBossCache项目。JBossCache是基于内存的、可复制的、事务性的缓存系统,并且具有持久化状态存储管理能力。它受到极大的关注。用户能够在JBoss应用服务器或其他应用服务器中,或单独使用JBossCache。同时,它提供的基于JBossAOP的AOP模块能够在可复制环境中实现细粒度、域级别复制,而且能够透明地管理复杂对象。在最新版的JBoss应用服务器中,用户能够直接通过JMXMBean服务访问到JBossCache提供的服务。
JBoss应用服务器5.0于2008年12月6日正式发布,新版应用服务器的模块化更强,可配置性更高。JBoss应用服务器5.0最终版完全兼容JavaEE5.0规范,具有一个微型内核和容器,支持OSGi和REST。
4、版本简介
JBoss4
JBoss4包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持。早期的JBoss使用了ApacheTomcatWeb服务器,但在JBoss4.0中已经把ApacheTomcat内嵌到JBoss中了。后续又集成Java数据对象(JDO),对于JMS多点传送机制支持的修补,对J2EE1.4的完全实现和分布式事务机制。
JBoss的应用服务器控制和配置-JMX机制,运行一次可以部署所有的组件和服务。资源属性和可配置参数可以通过MBeans(可控制beans)映射和更改,这些控制可以在JBoss的控制台进行设置。一旦我们的servlet-based的应用程序被部署,JBoss就自动安装一个部署MBeans,这个MBeans会被添加到JMX控制台的导航菜单中。通过这个MBean就可以部署或卸载WAR应用程序,或查看应用程序相关的属性。
Jboss4基于Jboss3.2,在J2EE标准特性方面,主要的改进包括:
JBoss4.0是业界第一家取得正式J2EE1.4认证的应用服务器,完全符合规范的J2EE标准
完全支持J2EEwebservices(JAX-RPC方式和WS4EE架构方式)和SOA
支持AOP模型,JBossAop极大的提高了生产力
与Hibernate紧密集成
通过一个内建的Caching构架提升集群功能和分布式Caching(TreeCache)
JBoss4完全遵循J2EE1.4标准,所以允许开发者在不同的应用服务器上重用J2EE组件(如EJB等),比如可以轻易的将部署在Weblogic或Websphere上的EJB迁移到JBoss上来,JBoss4比JBoss3.2实现了下面几个新的J2EE标准:
JBoss4支持J2EEWebServices,包括JAX-RPC和J2EE架构的WebServices,使用EJB提供安全的WebService环境,它是基于J2EE的SOA实现。JBoss3.2中旧的JBoss.NETWebServicesAPI不再支持,新的WebService实现是WSBasicProfile-1.0compliant
JBoss4实现JMS1.1替代了JBoss3.2中的JMS1.0
JBoss4实现了JCA(JavaConnectorArchitecture)1.5替代了JBoss3.2中的JCA1.0
JBoss4实现了新的JavaAuthorizationContractforContainers(JACC),JACC是JAVA2一个基本的权限机制,为访问EJB方法和web资源赋予授权描述,即J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,新的实现在语法上基于JBoss3.2,使用认证过的Subject声明Roles,认证与JAAS的authentication保持一致。并且security配置,JBoss4和JBoss3.2兼容
JBoss4实现了EJB2.1规范.替代了JBoss3.2中的EJB2.0规范
JBoss4特性:
1.JBoss4.2必须需要安装jdk5
2.JBossEjb3默认被安装
3.JBoss的web容器使用JBossWebv2.x(集成tomcat6)
4.deploy/jboss-web.deployer目录替换了原先的deploy/jbossweb-tomcat55.sar
5.JBossTransactionsv4.2为默认的事务管理器
6.JBossWS提供webservice功能
7.JGroups/JBossCache支持channelmultiplexing
8.JBossRemoting更新到stable2.2.x,JBossMQ(JBoss4.0使用)为默认JMS实现,但是可以使用JBossMessaging替换。
9.EJB调用方式由rmi-invoker替换为JBossRemoting的unified-invoker
10.log4j和commons-logging升级到新版本
JBoss5
第二代基于服务的架构:核心的JBossMicrocontainer可以在多种编程和组件模型上提供改进后的级别加载、性能、生命周期管理和灵活性,其中包括JavaEE、多种POJO、OSGi、SpringFramework和传统的现场和云操作环境。这种Microcontainer还提供将企业服务从核心运行时间引擎中分离出来的能力,使其更便于配置。
改进后的管理和配置:JBoss运营网络管理控制台的嵌入式版本可以提供一个全面的接口,用于管理和配置应用、控制应用服务器的运行,以及提供深入查看现场内外应用性能指标的能力。
JavaEEF支持:JBoss企业应用平台支持全套的JavaEE5标准,并可为多种即将推出的JavaEE6标准提供支持,其中也包括JavaEEWebProfile概念。
主要组件更新:更新的内容包括企业版的JBossApplicationServer、Hibernate、Seam、JBossCache和JBossWebServices,可为各类部署环境中的扩展性、高可用性和智能负载均衡提供性能增强特性。这一新版本还可支持分布式事务和全面的Web服务栈支持。
最新版的JBoss运营网络-JBossON2.3可支持运行管理。该版本提供全面的管理支持,包括在传统和基于云的部署中配置应用集群,并在多种运行环境中提供可用性和性能管理。
JBossDeveloperStudio还可为开发人员提供开发工具。这种基于Eclipse的集成式开发环境能够提供全面的工具集,使开发人员能够使用Seam、JavaEE、Spring、Hibernate、AJAX、RichFaces等技术,迅速建立丰富且交互性水平较高的应用和服务。
JBossAS5中,大部分显著的新特性添加都源自于要将所有主要的JBoss子系统带到下一个阶段去。
JBossMessaging1.4现在取代了JBossMQ,成为缺省的JMS提供者。除了透明的故障恢复和智能的消息重分发外,JBM还支持即开即用的集群队列和主题。可以跨节点把消息复制到内存中,从而避免磁盘I/O,或者能使用支持大消息的分页技术将消息持久化到任何流行的关系数据库中。JBM证明,利用已完全出现的新的只扩展日志存储,原本就很卓越的性能和东西会变得更加优秀。
JBossWebServices3.0,完全支持JAX-WS/JAX-RPC、XOP和SwA的附件、还有一系列WS-*标准。JBWS转向了一个可插拔的架构,该架构允许更换底层的WebServices栈,所以你可以将JBossWS-native换成SunMetro或ApacheCXF。这样的话,你就可以因地制宜,使用最合适WebServices栈。
为了改进可伸缩性和集群Web会话的钝化,AS5中的集群支持SFSB的Buddy复制,以控制内存的使用。EJB3Entity和Hibernate缓存有了很大的改进,因为可以针对实体和查询使用不同的缓存,它们分别是失效缓存和复制缓存。在底层的JGroups协议栈中,还有一些其它的性能优化。
JBossTransactions是JBoss5默认的事务管理器。JBossTS已经与JBoss5的Servlet容器——JBossWeb——一起在AS4.2系列中进行了测试,JBossWeb是基于ApacheTomcat的一个实现,支持原有的APR-based连接器,它在可伸缩性和性能上不但要达到,而且要超越ApacheHttp服务器的水平。
就API来说,AS5是JavaEE5的实现,所有相关的API都会包含在内。对大部分JavaEE5“新的”API来说,比如EJB3、JAX-WS、JPA等,在JBossAS4.2系列中已经实现了,但由于JBossAS5增加了TCK测试的覆盖范围,所以肯定会更为严格遵循规范。
JBoss5应用服务器提供了大量的新功能:除了支持最新的EJB3.0规范外,新版的JBossAOP也正式发布。WebServices方面,JBoss现在支持全部的J2EEWebServices,同时兼容Microsoft.NET;Messaging项目采用了完整的JMS1.1实现,同时充分的改进了分布式目的单元格等功能的高可用性;JBossSeam中包括了一系列统一的革命性的组建设计模型和框架。同时JBoss5中也集成了Hibernate3.2
JBossAS4.2和企业应用平台的第一个版本(EAP4.2)确实对AS5造成了很大的影响。从零开始创建一个全新的内核、从MBeans转换到POJO、在最底层集成AOP、统一跨子系统的元数据处理、更改类加载系统、使部署器Aspect化,换句话说,就是改变内部架构、替换应用服务器的核心,同时还要保持与大部分已有服务的向后兼容性,为各种内部子系统引入合适的SPI。长远看来这是好事,因为它允许最大的可插拔性,以及在不同的运行时环境中(比如独立的EJB3或嵌入到不同的应用服务器中)按需要选取使用各种JBoss项目。
JBossAS5不只是一个JavaEE5应用服务器。对下一代JBoss项目来说,它还寄托了成为最先进的服务器运行时环境的愿景。
JBoss6
JBOSSAS6最大亮点是对JavaEE6WebProfile规范的支持,一份关于最流行的JavaEE标准的报告中,排名前5(JPA、JSP、EJB3、JSF及CDI)的都是JavaEEWebProfile的必备组件。除了JavaEE6WebProfile所需的这些组件外,AS6还提供了可选的经过认证的组件:RESTEasy2.1.0——JAX-RS1.1规范的实现;HornetQ2.1.2——JMS1.1规范的实现以及JBossWebServicesCXF栈——JAX-WS2.2规范的实现。
主要特性就是对JBossInjection框架的完整实现。这对于满足JavaEE6平台规范所要求的Resources、Naming以及Injection是至关重要的。Infinispanv4.2.0是个开源的数据网格平台,从CR1里程碑发布时就加入了,现在它也集成到了JBossAS6中,并且是默认的分布式缓存提供者。Infinispan公开了一个兼容于JSR-107的Cache接口,你可以将对象存储其中。JBossAS6服务器可以动态探测并注册到前端的apachehttpd服务器。
对于性能来说,JBossAS5与6之间有明显的变化。JBossAS6对启动性能的提升很明显,现在的平均启动时间是15秒。用户能够感觉到这种改进,一定程度上是因为延迟了随AS一同发布的管理控制台应用的部署,转而以“按需”方式提供,同时还实现了TimerService的延迟部署。Microcontainer(v2.2)的增强(包括新的注解扫描库的实现)极大降低了应用部署的时间。
JBoss7
2011年07月13日,JBossAS发布了7.0正式版。这是一个全新的版本,带来多项的改进和新特性,特别是:
1.极快(小于3秒的启动时间)
2.轻量级
3.模块化的核心
4.热部署、增量部署
5.优雅的管理
6.集群域的管理
7.FirstClasscomponents
WildFly
JBossAS目前作为Redhat公司的商业产品JBossEnterpriseApplicationPlatform的上游基础,为了使这两个产品有差异化,避免用户混淆,因此该公司在去年10月份就寻求为JBossAS找一个新名字。
RedHat公司称,新名称WildFly反映了服务器“非常灵活、轻量、不羁、*”的特性。
改名后的首个版本为WildFly8,将接棒JBossAS7。RedHat公司表示,新版本不仅是名称上的变化,还带来了如下改进:
1.启动超快
2.模块化设计
3.非常轻量,内存占用非常少
4.更优雅的配置、管理方式
5.严格遵守JavaEE7和OSGi规范
推荐阅读