本文为java EJB的详细概述。一般有三种途径来建立一个基于对象的,多层的,分布式的系统:无状态服务的途径,基于会话的途径和持续对象的途径

Java EJB具体概述

关于EJB具体概述(下)(ejb类型)  java EJB 详细概述 第1张

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服务器和容器供给者假定运用程序的规划,并以一种卓有成效的方法来支撑他们。

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标准所界说的。但确保通道的安全也是很重要的。特别是当客户经过internet拜访长途的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程序。等等。

【修改引荐】

  1. JavaOne 2009第三天:微软与Sun/Oracle携手并进
  2. 开发高可移植性J2ME的软件
  3. Java虚拟机(JVM)中的内存设置详解
  4. EJB3.1新特性一览 Time服务更强壮
  5. 关于EJB的一些常见问题
转载请说明出处
知优网 » 关于EJB具体概述(下)(ejb类型)

发表评论

您需要后才能发表评论