JBoss的技术架构的介绍
JBoss的技术架构的介绍
JBoss是一个另类的开放源码软件。它打破了开源软件不能挣钱的旧观念,通过提供商业化服务,来赢得开发回报。这是开源软件开发的一个创新。JBoss是一个另类的开放源码软件,它打破了人们的一个理解:开源软件不能挣钱。但是,JBoss组织首席构架师Bill Burke却说:“JBoss与其它开源软件不同,它为开源软件提供了商业化的服务。而其它的开源软件并不提供这样的服务。”也就是说,你可以免费获得 JBoss的源代码或安装包,但如果你有技术上的问题,就要向JBoss组织咨询或想得到培训,那就得付费。
关于JBoss
JBoss是一个用纯Java编写、开放源代码、遵循J2EE规范的应用服务器软件,它遵循LGPL开放源码协议。
JBoss起初只是一个EJB容器,后来逐步发展成为一个具有复杂功能的应用服务器。现在,最高的版本是4.0。它从创建到现在,经历了4年的发展历程。
JBoss构架图
JBoss是一个非常重要的项目。它体现在JBoss的开放源码、与平台无关性、完全遵循J2EE规范和安装简便。
它包含内置的Web服务器(支持Jsp、Servlet和Html)、EJB2.0容器、内置的用Java编写的关系型数据库Hypersonic、Java消息服务(JMS)、JavaMail、Java事务接口/Java事务服务(JTA/JTS)支持。
另外,JBoss4.0以前的版本,只提供Tomcat充当内置的Web服务器。但是,从JBoss4.0开始,提供了另一个可选的JBoss Web服务器——Jetty。
JBoss构架的特征
微内核结构
JBoss的核心遵循Sun公司的JMX规范。JMX相当于一个软总线,它的主要工作是支持热插拔服务组件、对服务组件的生存期进行管理。
热插拔的服务组件
JBoss包含一系列的基于微内核的服务组件。这些服务组件,可以是事务组件、消息队列组件、邮件服务组件、安全服务组件或连接服务组件等。它借鉴了即插件技术(Plug-in)的精华,使得这些服务组件,可以用打包的形式进行热部署。
界面层
界面层采用AOP框架实现。它允许系统能够方便地将服务组件,与任何对象的任何方法进行关联。值得一提的是,JBoss中的EJB容器就是用这种方式来实现的。
应用层
应用层就是部署应用程序的地方。JBoss支持热部署功能,不必重启服务器,就可以动态地添加或删除诸如EJB服务,使得开发新的应用更加容易。
JBoss流行的原因
使用JBoss可以得到多种好处:
可以得到免费软件,哪怕是用于商业用途;100%纯Java,安装简便,占用系统资源较小,启动时间比标准的J2EE服务器快10倍;部署新的应用非常方便,具有高扩展性;可以得到广泛的支持,目前已被Sun公司纳入J2EE的标准服务。
不仅如此,如果用下载量来衡量一套软件的流行程度的话,可以说, JBoss是非常流行的。据统计,在2002年JBoss大约被下载200万次。到目前为止,它的下载量呈不断上升趋势。它是目前全球最流行的J2EE应用服务器软件之一,具有25%的市场份额。
JBoss的功能强大,它的安装也非常简单:将下载的文件解压后,修改几个环境变量(不是必须的)就可以运行了。
由于JBoss是基于JMX微内核的,因此它可以对那些已部署的组件进行动态管理。通过JBoss提供的管理控制台,可以任意地修改组件的态。举例来说,如果部署了一个EJB,那么JBoss会自动生成一个部署Mbean,并且会在管理控制台上显示出来。通过这个Mbean,来动态地删除或部署这个EJB,并可以查看或修改它的状态。
由于JBoss是开放源码,只要需要就可以扩展它的管理控制台,并加入一些界面元素。
也许在有些人眼里,开放源码意味着没有质量保证。但是,事实并非如此。开源软件正以更好的质量来面向用户。由于JBoss组织的经营方式是收取服务费用,它有财力进行软件的维护与新版本的开发。因此,JBoss比其它的商用应用服务器软件性价比更高。
另外,值得一提的是,JBoss的技术支持,都是由开发者直接与客户交流。因此,服务质量会更好,甚至能够为客户量身定做JBoss。
最新版本JBoss 4.0
在JBoss4.0版本中,JBoss向.net吸收了一些好的设计理念。比如,在源代码中meta标签的支持。可以认为,JBoss组织与Borland公司有些相似之处。它并不是只吸收好的技术经验,而不管对方是Mircrosoft或是Sun。
在JBoss4.0中,JBoss组织主席Fleury决定,将这个版本逐渐脱离J2EE规范,并加入一些新的特性。Fleury指出:“我们与J2EE标准有些背道而驰,但是我们仍将支持它,我们会让开发者有一个更简单、更深层次的开发环境—AOP(样式导向的编程)”
AOP对于JBoss组织来说,是一个非常重要的创新。因为它不仅是JBoss的一个特色,而是对程序设计方法产生影响。如果运用得当, AOP允许从不同类中,找到它们的共同特色,这一点和多重继承有些相似。因此,AOP能带来许多好处,比如可以为某个类添加一个行为,而不必改变它的源代码,这就给项目的后期维护带来了方便。
AOP框架定义了一些独具特色的概念,诸如Interceptor、Pointcut等。Interceptor的中文意思是拦截机,它能拦截对象的某个方法,从而为它添加诸如安全、事务、权限检查方面的控制,就好像Windows中的钩子函数一样。JBoss允许定义自己的 Interceptor,关系到一个对象到底要通过哪些Interceptor和Pointcut来确定。所谓Pointcut,就是一个XML配置文件。它用来对Interceptor进行配置,且非常灵活,可以为任意类的任意方法指定任意的Interceptor。
目前,JBoss4.0还只推出了开发版本,它的生产版本即将完成。即将发行的生产版本,将直接支持JDO(Java数据对像,EJB的一种替代方法),此外,增强的JMS允许集群功能,并支持分布式的事务。更重要的是,它完全遵循J2EE1.4规范。
关于JBoss组织
JBoss组织是一家位于美国亚特兰大的商业服务组织。他们为JBoss应用服务器,提供技术支持和顾问咨询。JBoss组织首席构架师 Bill Burke说,他们为客户提供的服务是以小时计费,而不同于传统的固定收费模式。但是,JBoss自身的开发与维护是免费的。“在我们的CVS服务器中,更新的Bug和补丁都是免费的,任何新特征的添加也是免费的,但是如果我们要定制一个特色,那就要收费了。” Burke 如是说。
JBoss组织对于那些有贡献的参与者,会给予奖金或分红奖励。JBoss组织的主席Marc Fleury说:“我们对于那些为JBoss做出贡献的参与者,会给予物质上的鼓励。”
JBoss与J2EE规范
1999年,Marc Fleury建立了JBoss开源项目,现在它有100名活跃的开发者,30名核心开发者,每月高达35万次的下载量。自从JBoss3.0开始就加入了集群技术,几乎能对任何J2EE规范进行集群管理,如JNDI、JSP中的Session、EJB等。
JBoss是一个建立在J2EE规范上的应用服务器。
J2EE(Java2 SDK Enterprise Edition)规范是由Sun公司制订的。它定义了基于组件的方式设计、开发、组装和部署企业应用系统的各个组成部分。
同时,J2EE规范定义了分布式多层应用系统模型、组件重用策略、一体化的安全模型以及灵活的事务控制策略等,使得独立软件提供商(ISV)能够比以前更快的速度,向市场推出用户适应的解决方案。
J2EE是一套针对于企业级分布式应用的计算环境。它定义了动态Web页面功能(Servlet和Jsp)、商业组件(EJB)、异步消息传输机制(JMS)、名称和目录定位服务(JNDI)、数据库访问(JDBC)、与子系统的连接器(JCA)、安全服务等。
另外,平台独立、基于组件技术的J2EE解决方案,不受软件产品类型和不同应用环境的制约。
但是,J2EE并没有定义企业级应用所必须的规范,例如集群。所以,集群的实现只能由各厂商自行来设计实现。要实现基于J2EE规范的集群,通常要做如下考虑:集群的管理、负载平衡、失效转发、服务端状态的复制,还要考虑同步和异步的问题。