application roles:(应用角色)
enterprise beans provider:beans提供者在应用领域方面是专家。例如:beans提供者可能是金融或电信方面的专家。beans提供者提供了业务tasks,enterprise beans的业务方法,定义了beans的romote和home接口,还定义了beans的配置描述器。因为容器管理着系统级的任务,所以,beans提供者便不需要关心分布处理,事务处理,安全性能等从应用方面看来没什么关系的方面。
application assembler程序组装器:
这是一个将定制的enterprise beans和其它的组件,例如,gui client,applet,servelet等组装成一个完整的应用程序的行家。在enterprise的配置器下,组装器在组装成一个应用程序的时候,只关心beans的接口,包括romote接口和home接口。而不关心这些接口是怎么实现的。组装的结果就是一个一个的应用程序,或者由多个enterprise beans组合成的一个比较复杂的enterprise beans.
deployment and operate roles配置和操作角色
配置器为特定的enterprise beans配置特殊的操作环境。配置器为了适应应用程序,将多个enerprise beans 组合起来,通过修改enterprise beans 的属性来达到配置相应的操作环境。例如,配置器通过设置配置描述符的相应的属性来设置事务和安全方针。配置器的另一个任务是将应用程序与现有的enterprise管理软件结合起来。
system administrator系统管理者;
是与配置应用有关的。管理者配置个管理enterprise计算和网络服务的低层,包括ejb服务和容器。管理员监视着应用服务器的运行状况,当应用服务器不正常运行是就采取相应的措施。典型的说,管理员使用enterprise管理工具来与应用程序打交道,通过由容器提供的hooks来配置。
传统的应用程序开发者现在是enterprise beans的提供者。也可能是应用程序的装配者。这样能使他们将主要精力放在应用问题或者应用逻辑上面。当安装enterprise beans时,配置器定义了一系列的配置方针。机制的复杂性和执行配置的方针就交给了专门的代理。虽然分布式的应用程序还是比较复杂,可是,应用程序设计者的工作却变的简单了,因为所有复杂的工作都交给了ejb服务器和容器提供者了。
通过大量的设计之前的定义和命名约定,ejb达到了前面提到的目的。这样的编程体系结构限制了一定的自由,但是,允许ejb服务器和容器提供者假定 贸绦虻纳杓疲⒁砸恢中兄行у姆绞嚼粗с炙恰?/p>
ejb的设计模式和命名约定:
有三种途径来建立一个基于对象的,多层的,分布式的系统:无状态服务的途径,基于会话的途径和持续对象的途径。
无状态的服务是通过对象的操作提供一种功能的函数,但是,不保持会话的状态。当一个客户使用无状态的对象时,客户不能够提供上一次操作的信息。
基于会话的设计产生了一个中间层的对象,称为一个会话(session)。这个会话可以看成是这个客户的代理。典型的,会话的生命是由客户和所在的服务程序决定的。客户如果完成了会话就可以将对象移走。如果服务终止了,会话对象就会超时。会话对象就会变的无效了。
持续对象设计模式绑定了存在数据库中的一块数据。提供了操作这块数据的一些个操作。持续对象是由多个客户共享的。起生命期是由存储数据的库所决定的。
ejb规范中将这些分别称做:stateless session, stateful session, entiry beans.session beans模式就是基于会话的设计模式。entiry beans模式就是持续对象设计模式。每种模式都定义了一些接口和命名约定。
enterprise javabeans infrastruct (ejb的基础结构)
容器和服务提供者实现了ejb的基础构造。这些基础构造处理了ejb的分布式方面,事务管理,安全性方面。ejb规范定义了基础构造和j ava api的为了适应各种情况的要求。而没有去指定用什么技术,平台,协议来实现他们。
enterprise beans, container, server说明了ejb基础结构的要求,ejb基础结构必须提供客户和enterprise beans通信的通道。虽然这不是ejb规范所定义的。但保证通道的安全也是很重要的。特别是当客户通过inte.net访问远程的enterprise beans时。ejb基础结构也必须能够加强enterprise beans 的访问控制。
enterprise beans所有的数据的持续性必须被保证。ejb的低层结构必须提供在企业级的计算环境中与现存系统的结合能力。beans的所有通信都是分布式事务的一部分,需要由ejb低层结构来管理对于一个成功的配置,ejb低层必须提供分布式应用管理工具的钩子(hooks)
container
容器可能是ejb里面最重要的概念。因为它向程序开发人员提供了最大程度的方便。基于对象的中间层软件平台如corba或者远过程调用rmi是程序开发者从网络传输中解放出来,通过提供对象定位机制,数据重组机制等等。容器的概念则走的更远一点。通过简化分布式应用程序的那些复杂的方面,如:安全性,事务协调性,数据持久性。
一旦enterprise beans准备好了可以配置了。就被打包成一个标准的java文件,ejb-jar文件。一个ejb-jar文件可以包括一个或多个的enterprise beans。对每一个enterprise beans,都由它的接口,类,和配置描述器。
enterprise beans provider提供如下东西给ejb-jar 文件:
enterprise beans 的remote 接口,接口说明了client端能调用的函数。
enterprise beans 的home 接口,home接口使客户生成和定位一个enterprise beans的实例。
enterprise 类本身,实现了enterprise beans 的语义。
deploy descripot配置描述器,deployer通过利用配置描述器来提供没有在代码中申明的信息。例如方针和属性。ejb的1.0规范把配置描述器定义为javax.ejb.deployment. sessiondescriptor类或者javax.ejb.deployment.entitydescriptor的一个实例,但是在1.1版本中不赞成这样做。而是用xml来定义配置描述器。
配置一个enterprise beans 意味着将一个enterprise bean安装到容器中去。安装过程包括了如下几个方面:
保证不同的enterprise beans能够工作在一起。
用名字服务来注册一个enterprise bean
通过ejb服务的通信系统提供访问ejb的入口。
执行事务管理和安全方针。
在一个ejb容器中可以又任意多个enterprise beans.除了安装和执行以外,容器也提供了配置enterprise beans的工具。
为什么用inprise的ejb 容器?
inprise ejb容器提供的完全的服务
完全支持ejb1。1规范。
一个有效的运行和管理ejbs的容器。
提供命名服务,事务服务,植入java rdbms的内部。编程,配置简单。
充分的例子来演示怎样使用ejbs和ejb容器。
对于enterprise beans的开发者来说,ejb 容器是一个高级enterprise类产品。因为它有如下优点:
完整的,灵活的运行时环境:
ejb容器完全实现了ejb1。1的规范,包括了它的所有功能。
每一个由工具产生的enterprise bean都同时是enterprise bean 对象和corba对象。
ejb容器能够进行单独配置,100%的纯java服务,或者作为完全的分布式的配置。这样的灵活性意味着你能够根据你的要求调整你的应用程序。
与其它的ejb服务不一样,inprise 的ejb容器服务并没有限制一定要分开。而是任意个数的enterprise beans可以放在任意个数的容器中,这些容器也可以放在任意个数机器上。并且支持分布式的事务协议,允许enterprise beans的分别裁定。允许部分的配置你的应用,而将你的性能配置成最优化。
inprise 的ejb是建立在vbroker和rmi—iiop之上的。
ejb容器是建立在inprise的vbbroker之上的。visbroker是已经被证明的在各种条件下都是orb的领导角色。无论在各大公司的联合测试下,或者在实际的应用环境中。visibroker提供了一个很好的的运行时的任务的完成。
为了更好的性能,vbroker使用了大量的运行时优化,高级的多路链接,链接池和管理,线程池和管理。
客户和enterprise beans,enterprise benas之间,enterprise beans 和其它的corba对象之间的通信都是通过用visibroker的iiop方式进行的。visibroker完全适应corba2。3规范,rmi—iiop通过值传递的方式来实现。这意味着,复杂的java数据类型能够用新的idl值类型写到iiop里面去。就象在corba2。3规范中一样。数据和服务之间相互协调怎样传送复杂的数据类型是很重要的。否则,协同能力就会受到危及。ejb容器能够与其他的所有支持rmi-over-iiop的进行协同工作。
安全特性是可由visibroker所有的。保证信用是从客户传象服务。
事务上下文也是由visibroker所有的。保证当corba客户开始一个事务时,并且访问ejb容器的服务时。事务上下文被传向服务,当服务需要调用环境中的各项资源时,就要使用事务上下文。
事务的两段提交是由inprise的its管理的。如果jdbc支持两阶段提交协议,ejb就支持两阶段提交协议。当时,如果jdbc不支持两阶段提交,两阶段提交就不能被完成。
enterprise的ejb容器是一个corba对象:
inprise 的java2iiop编译器和ejb容器一样,都是与corba兼容的。ejb容器能够理解rmi调用,但是,它用idl来存放接口定义。虽然java2iiop编译器从java接口产生了stub 和skeleton.也能够从java接口中产生idl。然后在其他语言里面用。对于一个corba客户端,ejb容器是一个corba服务,ejb容器工具就是与控制ejb的功能相同的corba工具。
ejb容器是建立在jndi和cosnaming,jts/ots基础山的。他们都是完全支持corba的。
容器对不同的enterprise beans 的支持:
ejb容器的主要的特征就是它提供对各种各样的enterprise beans的管理和支持。包括:
有状态或无状态的session enterprise beans.
entiry beans包括container-manager和beans-manager的持续性。
ejb容器可以包括一个或多个的jar文件。每一个jar文件又能够包括多个的enterprise beans。每个enterprise bean都包括一个配置描述器。一个ejbhome接口,一个ejbremote接口,还有enterprise bean的实现代码。
使inprise 的ejb容器不同的是:它支持许多当前的客户,包括如下两个方面:
visibroler提供了连接管理,允许一个服务同时支持比tcp连接数多的客户连接。用最近最少使用算法来关闭连接。
对于客户来说,容器本身是无状态的。意味着容器并没有为每一个新的enterprise bean会话分配内存。这样,容器就能够支持任意多的无状态的session enterprise beans.
配置的支持:
inprise 容器提供了产生代码的编译器。也提供了一个验证的工具来在配置之前检查你的enterprise beans.支持ejb1。1的jndi命名基于xml的配置描述器。
事务管理者:
事务管理者提供了事务管理的手段。包括分布式的两段提交的支持。遵从最新的sun公司jts规范。也支持最新的omg的ots规范。在开发时尽量少用jts而在配置时使用健壮的its。
jdbc链接池和事务综合:
所有jdbc访问数据库都是通过datasource对象的实现来完成的。datasource对象与数据库的池链接还有jts管理的全局的事务处理和用jdbc管理的数据库事务处理。
命名服务:
命名服务提供了分布式的命名管理。服务遵从java的命名和目录规范(jnds)。也遵从omg的cosnaming规范。与事务服务类似,在配置的时候,你可以用jns,也可以用更健壮的ins。jndi提供的容器能够运行在其他的jndi实现之上。这样就能够使用其他的命名服务,例如:ldap。
安全性的支持:
在corba之上的inprise 的安全服务是附加的。
java数据库:
java数据库提供了一个全关系型的高性能的数据库来存储enterprise beans的状态。
java数据库既可以运行在同一个进程的容器中,或者,为了提高性能,也可以运行在一个单独的进程中。实际上,java 数据库是即插即用的。意味着终端用户能够用一个另外的实现就取代了所有的java版本。例如,能够实现一个用别的数据库来存储会话状态和entiry data的后台存储。
容器管理的entity beans的持久性:
inprise 提供了一个cmp(container-managed persistence)引擎来提供透明的对象关系映射和在纯jdbc上的持续框架。更进一步,第三方的工具可以通过开放的api插进来。
与其他组件的结合:
在配置环境的真实世界里,ejb的四个模式能够与以下的组件工作在一起:
client链接到enterprise beans对象。clients可以由java enterprise bean接口的ejb对象,或者idl接口的corba对象。在inprise 的ejb容器服务中,每一个enterprise bean都同时是ejb对象也是corba对象。corba客户能够用所有支持corba的语言来实现,包括c++,java,delphi.
从enterprise bean的数据库访问。典型的,enterprise beans对象是entity beans对象,或者是beans-managed,或者是container-managed.
后端服务:corba服务,用c++,java ,delphi实现,运行在任何兼容corba的orb中。ejb服务,包括所有其他的inprise的服务,或者其他支持iiop的代理商的服务。其它原来的服务,包括erp系统,main-frame程序。等等。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器