JOnAS 中文文档文档格式.docx
《JOnAS 中文文档文档格式.docx》由会员分享,可在线阅读,更多相关《JOnAS 中文文档文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
J2EE提供的容器有两种:
Web容器负责Servlet和JSP组件,而EJB容器则负责EnterpriseJavaBean组件。
ObjectWeb
JOnAS是一个开放源代码的J2EE实现,在ObjectWeb协会中开发。
ObjectWeb是一个开放源代码组织,它类似Apache或Linux,但锁定在中间件软件(middleware)的领域。
ObjectWeb的目的是开发和推广开放源代码的中间件软件。
ObjectWeb是一个国际协会,总部设置在INRIA,由Bull、法国电信、以及INRIA于2002年2月正式创立。
所有的软件在LGPL版权之下都可自由使用。
这个协会技术上的目标是开发一个基于分布式组件的中间件软件架构,使符合CORBA、Java以及W3C标准。
这个想法是把已经在J2EE/CORBA的应用程序层所使用的组件模型应用到中间件软件里面。
ObjectWeb项目的功能范围定位在命名、贸易、通讯(事件、消息)、有效性和安全机制(交易处理、持久性、复制、容错)、负载均衡和安全性。
另外一些跨项目的主题,像是可靠性、最佳化、程序代码品质、也包括性能测试、测试、评估、展示以及开发工具。
因此,全部ObjectWeb架构模式从执行在中间件软件平台的应用程序由上到下,从执行在中间件软件平台(如JOnAS、OpenCCM或ProActive)的应用程序(如性能测试像JMOB项目的Rubis)。
这平台是基于技术组件将消息导向中间件软件(实现JMS的JORAM)、通讯框架(CAROL)、持久性框架(JORM)、交易处理监视器(JOTM)、对象请求代理者(JOnathan)。
技术组件像C-JDBC允许任何平台从数据库集群中受益。
JOnAS使用了所有的ObjectWeb组件(JORAM、CAROL、JOnathan、JORM、C-JDBC和即将推出的JOTM),但也从其它的社群"
借用”了开放源代码组件,如Tomcat或Jetty,使用来当容器;
或AXIS,使用来提供"
WebServices"
环境。
ObjectWeb已经有相当数目的公司会员、大学会员以及个人会员(个人会员是免费的)。
ObjectWeb会员为ObjectWeb的技术取向提供参考,参与所有ObjectWeb工作群组、会议、工作室和研讨会。
围绕着ObjectWeb组件和平台的开发者和使用者社群正在持续成长中。
JOnAS特性
JOnAS是一个纯粹用Java撰写的开放源代码应用程序服务器,它符合J2EE规范。
甚至它的高度模块化允许使用它:
-成为一个J2EE服务器,用来部署和执行EAR应用程序(例如,包括Web组件和EJB组件的应用程序)
-成为一个EJB容器,用来部署和执行EJB组件(例如,给没有使用Web接口或使用没有整合在JOnASJ2EE容器的JSP/Servlet引擎的应用程序),
-成为一个Web容器,用来部署和执行JSP及Servlet(例如,没有使用EJB组件的应用程序)。
系统需求
JOnAS可用于JDK1.3或1.4。
它已经被使用在许多操作系统上(Linux、AIX、Windows、Solaris、HP-UX等等...),以及不同的数据库(Oracle、PostgreSQL、MySQL、SQLserver、Access、DB2、Versant、Informix、Interbase等等...)。
符合的Java标准
JOnAS是一个J2EE1.3规范的实现。
它目前符合EJB2.0规范。
并整合了Tomcat或Jetty成为它的Web容器,以确保符合Servlet2.3和JSP1.2规范。
JOnAS服务器依赖或实现以下的JavaAPI:
JCATM1.0、JDBCTM2.0、JTATM1.0.1、JMSTM1.1、JMXTM1.0、JNDITM1.2.1、JAASTM1.0、JavaMailTM1.3。
关键特性
除了所有的J2EE相关标准的实现之外,JOnAS提供了以下高级且必要的特性:
-管理:
JOnAS服务器管理使用了JMX并提供一个基于Servlet的管理控制台。
-服务:
基于服务的JOnAS架构提供了高度的模块化和可配置性。
它允许应用组件模型应用到中间件软件里面,并且让整合新的模块变得更容易(如,适用于开放源代码贡献者)。
它也允许只启动特定的应用程序所需要的服务,因而可以节省系统资源。
JOnAS服务是通过JMX管理的。
-扩展性:
JOnAS整合几个最佳化机制来增加服务器的扩展性。
这包含了StatelessSessionBean资源池、Message-DrivenBean资源池、线程资源池、EntityEean缓冲、EntityBean活化∕钝化、连接资源池(用于JDBC和JMS)、储存媒介存取最佳化(分享标志、isModified)。
-集群:
JOnAS集群解决方案,在Web和EJB层级提供负载均衡,高可用性以及失败接管支持。
-分布式:
JOnAS可以运行在几个分布式处理环境,这是由于整合了ObjectWeb项目CAROL(RMIObjectWeb阶层共通架构,CommonArchitectureforRMIObjectWebLayer),它支持同时使用几个通讯协议:
o使用Sun所用有的协议JRMP的RMI,
oIIOP上的RMI,
oCMI,JOnAS的"
集群认知"
分布式协定,
o或Jeremie,来自于ObjectWeb的对象请求代理者的RMI性格,名为JOnathan,和Jeremie一同使用,JOnAS从透明化的本端RMI调用最佳化得到利益。
-"
支持:
透过整合AXIS,JOnAS允许J2EE组件存取"
(如,成为"
客户端),以及允许J2EE组件被部署成"
端点”。
三个J2EE的关键方面早已经实现在JOnAS服务器中:
-JCA:
企业信息系统(EIS)可以从JOnAS应用程序容易的存取。
透过支持Java连接器架构(JavaConnectorArchitecture),JOnAS允许部署任何的JCA相容的资源适配器(连接器),这将让相应的EIS可用于J2EE应用程序组件中。
举例来说,BullGCOS主机可以从JOnAS使用它相映射的Hooxconnectors来存取。
-JMS:
JMS实现可以容易的置入JOnAS。
它们像JOnAS服务般执行在相同的JVM(Java虚拟机器)或是在不同的JVM并且JOnAS提供管理工具来隐藏JMS专用的管理API。
现在有两个JMS实现可以使用:
JORAM是来自于ObjectWeb开放源代码的JMS和SwiftMQ。
-JTA:
JOnAS平台支持分布式交易处理来将多个组件和交易处理的资源关连在一起。
JTA交易处理支持由一个交易处理监视器(TransactionMonitor)所提供,它是在CORBA交易处理服务(OTS)实现的上层开发实现的。
JOnAS套件
可以透过以下三种包装下载JOnAS:
-简单的包装只包含了JOnAS应用程序服务器,不包括相关的Web容器实现。
为了使用J2EEWeb应用程序,你需要安装Tomcat或Jetty(适当的版本)并且还要设定它跟JOnAS,这样它们才可以一起工作。
-JOnAS-Tomcat套件包容了JOnAS和Tomcat,已预先设定好并附有编译好的范例。
这个是已经可以执行的J2EE应用程序服务器。
这个套件也包含了AXIS,因此提供了预先设定好的"
支持。
-JOnAS-Jetty套件包含了JOnAS和Jetty,已预先设定好并附有编译好的范例。
JOnAS结构
JonAS是架构于服务基础之上的。
一个服务通常用来给容器提供系统资源。
大部份JOnAS应用程序服务器的组件都是被事先定义好的JOnAS服务。
甚至还可以容易地让高级的JOnAS使用者去定义他自己的服务并整合到JOnAS里。
J2EE应用程序当然不一定需要全部的服务,只需要在JOnAS服务器配置中定义要启动的服务即可。
JOnAS架构如下图所示,展示了WEB和EJB容器依赖于JOnAS服务(所有的服务都展示在这张图上)。
两个端点客户端也被展示在这张图中。
其中一个是JOnAS管理控制台(称之为Jadmin)。
通讯和名称服务
这个服务(也称为"
Registry"
)是被使用来执行RMI注册,比如CosNaming,CMI注册和∕或Jeremie注册,依照JOnAS的不同设定而定(CAROL设定指定要使用的通讯协议)。
有几种不同的注册执行模式,例如在相同或不同的JVM,是否自动执行注册程序等。
这个服务提供JNDIAPI给应用程序组件和其它的服务,以绑定及寻找远程对象(如,EJBHome)和资源参考(JDBC数据源,邮件和JMS联机产生器等等...)。
EJB容器服务
这个服务负责加载EJB组件和它们的容器。
EJB容器是由一套实现EJB规范的Java类集合及接合EJB组件的中间件类别集合所构成,随着服务由JOnAS应用程序服务器所提供。
中间件类是针对每个EJB组件并且由一套部署工具(叫做GenIC)所产生。
JOnAS设定允许指定这个服务在ejb-jar文件集合被加载时执行。
也可以使用JOnAS管理工具在服务器执行期间部署ejb-jar文件。
企业JavaBeans(EJB)是实现一个应用程序的商业逻辑的软件组件(而Servlet和JSP则是实现展示)。
企业JavaBean有三种:
-Sessionbean是关联于唯一一个客户端的对象,生命周期短(只有一个Method调用或一个客户端的Session),它代表客户端Session的当前状态,它们可以是transaction-aware、stateful或stateless。
-Entitybean是负责数据库数据的对象。
它可以被几个客户端共享或通过主键来区别。
EJB容器是负责管理这些对象的持久性。
这些对象的持久性管理是完全透明于将使用它的客户端;
也可能会透明于开发它的bean提供者,这和下列因素有关:
o容器管理持久性(CMP,Container-ManagedPersistence)的企业bean。
在这样的情况下,bean提供者不会开发任何的数据存取程序,持久性管理是交由容器负责。
在bean和持久性储存之间的映射是由应用程序伺服务指定的部署描述档方式所提供。
oBean管理持久性(BMP,Bean-ManagedPersistence)的企业bean。
在这样的情况下,bean提供者撰写数据库存取操作在企业bean的method里面,来指定数据的建立、加载、储存、恢复以及删除的操作。
-Message-drivenBean可以作为消息监听器。
在接收到JMS(JavaMessageService)消息时执行特定的动作。
MDB是受交易控制并且无状态的,实现了几种异步的EJB的方法调用。
为了实现EJB2.0的容器管理持久性(CMP2),JOnAS利用ObjectWeb的JORM(Java对象容器映射,JavaObjectRepositoryMapping)架构。
JORM支持复杂的EJB映射到数据库表格,以及几种持久性支持(关系型数据库、对象式数据库、LDAP容器等等)。
WEB容器服务
这个服务是用来在JOnAS服务器的JVM中执行一个Servlet∕JSP引擎,以及加载web应用程序("
war"
文件)到这个引擎中。
现在这个服务可以设定来使用Tomcat或Jetty。
Servlet∕JSP引擎是整合到JOnAS里当"
Web容器"
,例如,这样的容器提供web组件在J2EE兼容的方式下存取系统资源(应用程序服务器的系统资源)及EJB组件。
JOnAS设定充许指定这个服务在war文件集合被加载时执行。
也可以透过JOnAS管理工作在服务器执行期间部署war文件。
Tomcat和JOnAS使用者管理已经被统一。
类别加载委托策略(Webapp类别加载器或父节点类别加载器的优先级)可以被设定。
Servlet和JSPTM是用来开发动态网页的技术。
Servlet允许Java类(HTTPServlet)的开发透过HTTP请求调用并产生HTML页面。
通常,Servlet透过JavaAPI存取信息系统(像JDBC或EJB组件API)来创建HTML网页的内容,它们将在响应HTTP请求中产生。
JSP技术是Servlet技术的补强。
JSP是一个HTML包含了利用特定类似XML标签夹带Java程序代码的页面;
这个Java程序代码是用来HTML页面的动态肉容处理。
Servlet和JSP是被视为在J2EE应用程序组件中负责应用程序的展示逻辑。
这样的应用程序组件可能存取J2EE伺服提供的资源(如JDBC数据源、JMS联机产生器、EJB、邮件产生器、...)。
至于EJB组件,这些资源的实际分配是在组件部署期间执行,以及由每个组件的部署描述文件指定,这类的组件程序代码使用逻辑的资源名称。
Ear服务
这个服务被使用来部署完成的J2EE应用程序,如包装在EAR文件里的应用程序,这里头包含了ejb-jar文件和∕或war文件。
这个服务将管理EAR文件和war文件的部署指派到WEB容器服务,ejb-jar文件的部署则指派到EJB容器服务。
它将负责建立合适于J2EE规范中所公布的类加载器,以便J2EE应用程序正确的执行。
为了部署J2EE应用程序,JOnAS必须设定执行EAR服务,并指定要被加载的EAR文件集合。
也可以使用JOnAS管理工具在服务器执行期间部署EAR文件。
交易处理服务
被称为Java交易处理监视器(JOnASJTM)。
这是一个不可缺的服务,负责分布式交易处理。
它提供定义于部署描述文件的EJB组件的交易处理管理。
它负责两个阶段的交付协议以针对任何资源管理员的数量(XA资源)。
就J2EE而言,交易处理资源可以是一个JDBC联机、JMSSession或是JCA资源转接器联机。
交易处理本文是隐含于分布式请求的传送。
JTM可以分散存取一个或多个JOnAS服务器;
因此一个交易处理可以伴随几个配置于不同JOnAS服务器的组件。
这个服务实现了JTA1.0规范,因此允许明确的由应用程序组件或应用程序客户端开始或中断交易处理。
从应用程序组件开始交易处理是只允许从Web组件或从sessionbean或是message-drivenbean(只有这两类的bean,称之为"
Bean管理的交易处理管理(Bean-managedtransactiondemarcation)"
)。
EJB支持交易处理的主要优点之一是它的传达状况,它指出在服务器应用程序中的交易处理控制是不再有hardcode程序代码,而是在部署期间设定。
这叫做"
容器管理的交易处理管理(Container-managedtransactiondemarcation)"
。
在"
容器管理的交易处理管理"
中,企业bean的交易处理行为是被定义在设定时期,是bean的部署描述文件中的一部份。
EJB容器负责提供交易处理管理给企业bean,依照交易处理属性的值所关联到的EJBmethod有以下几种:
-NotSupported:
若这个method被调用在交易处理中,在method执行期间这个交易处理会被暂停。
-Required:
若这个method被调用在交易处理中,这个method会在这个交易处理的范围内被执行,不然为了method的执行会有一个新的交易处理被启动,并会在method把执行结果送给调用者前被交付。
-RequiresNew:
这个method将在一个新的交易处理范围中永远被执行。
这个新的交易处理是为了method的执行而被启动,并在method把执行结果送给调用者前被交付。
若这个method在交易处理中被调用,这个交易处理会在一个新的交易处理启动前被暂停,而在新的交易处理完成时才再继续。
-Mandatory:
这个method在一个交易处理的范围内应该永远被调用,否则容器将丢出TransactionRequired例外。
-Supports:
这个method被调用在调用者的交易处理范围内,若调用者没有映射的交易处理,这个method会被调用在交易处理范围外。
-Never:
随着这个属性,客户端被需要去调用在交易处理本文之外,否则容器会丢出java.rmi.RemoteException例外。
ObjectWeb的JOTM(Java开放交易处理管理员,JavaOpenTransactionManager)项目基于JOnAS交易处理服务的。
它已经被强化了以提供高级的交易处理特性,如巢状交易处理、"
WebService"
交易处理(一个DBTP实现是可用的)。
s
数据库服务
这个服务负责管理数据源对象。
数据源是一个标准JDBC管理对象,用来管理数据库的联机。
在JOnAS服务器上的数据库服务建立及加载这样的数据源。
数据源的建立和部署在JOnAS设定期间指定,或是在服务器运行期间透过JOnAS管理工具来建立及部署。
数据库服务也负责联机的管理,如它管理了应用程序组件所使用的数据库联机的集合,因而避免了许多实体联机建立所浪费的时间。
安全性服务
这个服务实现了如EJB规范中所指定的存取EJB组件的授权机制。
EJB安全性是基于角色的观念。
透过所给与的角色集合可以来存取method。
为了存取method,使用者必须至少有一个在这个角色集合中。
角色和method之间的映射(权限)使用了security-role和method-permission在部署描述档中被完成,为了在bean程序中实施或增补安全性检查,程序的安全性管理也可能使用EJBContext界面的两个method:
getCallerPrincipal()和isCallerInRole(StringroleName)。
在EJB程序中使用的角色名称(在isCallerInRolemethod)事实上参考了实际的安全性角色,它让EJB程序独立于部署描述文件中的安全性设定描述。
程序设计师透过部署描述档中session或entity所包含的security-role-ref的方式让这些角色参考可用于bean开发者或应用程序组合者。
在JOnAS中,角色和使用者确认之间的映射被完成在使用者确认容器中。
当使用Tomcat来做使用者认证时,这个使用者确认容器可能被存在文件中或是JNDI容器中(像LDAP),或是关系型数据库中。
这个是透过TomcatRealm的JOnAS实现所完成,如UserDatabaseRealm、MemoryRealm、JDBCRealm、JNDIRealm。
这些Realm负责在EJB调用期间传送安全性本文到EJB容器。
JAAS登录模块被提供用来给Java客户端认证。
消息服务
异步EJBmethod调用可以基于Message-drivenBean组件,像在EJB2.0规范所指定的那样。
Message-drivenBean是一个EJB组件,它被视为是JMS(Java消息服务)的消息监听器,如用来处理JMS消息异步,它联合了JMS目标,它的onMessagemethod将在接受由客户端应用程序传送到这个目标的消息时被激活。
它也可让任何的EJB组件使用JMSAPI,并受应用程序服务器的交易处理的管理。
为了在应用组件中支持Message-drivenBean,和JMS操作代码,JOnAS应用程序服务器需要依赖JMS实现。
JOnAS使用了第三方的JMS规范的实现:
现在是Joram这套开放源代码软件被整合进并JOnAS分发,也可以SwiftMQ产品,其它的JMS提供者的实现也可以容易的被整合进去。
JORAM中有几个有趣的地方,特别是可靠性(持久性模式)、分布性(它可以执行在几个服务器,对JMS客户端是透明化的,如此允许负载均衡)、可选择TCP或是SOAP通讯协议来传送消息。
JMS服务负责启动(或建立联机)已经整合进来的JMS服务器,它执行在相同或不同JVM下的JOnAS。
它也提供联机资源池及线程资源池(给Message-drivenBean)。
透过这个服务,JOnAS提供工具在服务器启动期间来建立JMS管理对象像联机产生器和目标,或是在执行期间使用JOnAS管理工具。
J2EECA资源服务
J2EE连接器架构(J2EECA)允许不同的企业信息系统(EIS)对J2EE应用程序服务器的联机。
它是基于资源转接器(ResourceAdopter,RA),一个架构组件符合软件驱动程序,连接EIS、应用程序服务器、以及企业应用程序(J2EE组件)。
RA一般都由EIS厂商提供,并且也提供了Java接口(共通客户端接口或CCI)给J2EE组件来存取EIS(也可以是特定的Java接口)。
RA也提供标准接口来给应用程序服务器插接,因此它们可以和应用程序组件合作保持所有系统层面的机制(交易处理、安全性、以及联机管理)的透明性。
应用程序使用RA客户端API(CCI)在EIS数据上执行"
商业逻辑"
的操作,EIS上的联机(包括资源池)和安全性由应用程序服务器透过RA(系统契约)来管理。
JOnAS资源服务是掌控部署J2EECA兼容的资源转接器(连接器),在JOnAS服务器上包装成RAR文件。
RAR文件也包括了EAR文件,在这个案例中连接器将被应用程序类加载器加载。
一当资源转接器被部署,联机产生器实体即可用在JNDI名称空间来被应用程序组件查找。
管理服务
管理服务可以用来从JOnASJadmin管理控制台管理JOnAS服务器。
每一个服务器执行这个服务是可见于管理控制台的。
这个服务是基于JMX。
标准MBean是被定义在JOnAS应用程序服务器内,它们陈列装载于JOnAS的对象的管理method如服务