admin 管理员组

文章数量: 1184232


2024年3月12日发(作者:linux vi命令怎么编辑文件和保存)

维普资讯

第28卷

Vnt.28 

第3期 

№3 

计算机工程 

2002年3月 

March 2oo2 Computer Engineering 

软件技术与数据库・ 文章编号io0o—j428(2002 j—Ⅲ9—0j 文献标识码:A 中围分类号 TPMI 52 

基于EJB的组件开发技术 

健,王卫红,夏添 

(浙江工业大学信息学院,机州310032) 

要:En!erprisc Java Bea【Isf EJ日 的组件结构足为可重复使用的服务器端组件设计的.它使企业能够建立可升级、安全可靠、可运行于多重 

半台且 商哥为重点的应用程序 该文描述, B组件模型的含义和结构.并通过 个实例来进一步鲥速EIB技术的应用a 

关键词:f f ;分布式系统:EJB的体系结构 

Development Technology Based On EJB Components 

ZHANG Jian,WANG Weihong,XIA Tj£n 

fCollege ofInformation Engin eering.Zh ejiang University 0fTechnology.Hangzhou 310032) 

l bstract】EDterprise Java Bean s(EJB)eomponents archilecture deslg ̄ed for reusable ap cation over server-side,and it can create 

applieatiotl program which is Secure and running on multi—platform This artiele describes EJB model and its properties.and n applixation 

e inpie of EBJ teehnology is also presented- 

【Kc、wordsl E.JB;Distributed sys ̄etni E.1B arcbitccture 

随着刚络技术的迅猛发胜,服务器软件的需求越来越 

大,I998 ̄b3]]在旧金山召 r的JavaOuc98歼发者大会上. 

Sun公司正式发布了EIB1 0版规范,}=『前已公(ifgJB2 0版。 

EJB是用于盱发和部署多层结构的、分布式蛇、面向剐象的 

)avaJf ̄件体系结构。采用EJB可以使得开发商业应用系统变 

泌, ̄[IRMI,IIOP(CORBA)等。 

2 l EJB的体系结构 

EJB的体系结构如图1,它包括EJB服务器、EJB容器、 

EJB远程接口以及EJBHome。 

}簪容易,应用系统可以在一个支持EJB的环境q1开发,随着 

需求的改变,应用系统可以不加修改地迁移到其他功能更 

强 更复杂的服务器上。 

(])EJB服务器实际是各种支持EJB安装的服务的集合这 

些服务包括分布式事务管理、分布式对象管理和对这些对象 

的分布式调甩以及低层谈的系统服务。筒而言之,EJB服务 

器管理那些支持EJB组件所需要的资源 

释器提供了一个可升级、安全和事务性的环境.在该 

任分布式应用系统中,采用多培体系结构的方法有许多 

优点,如增加了应用系统的伸缩性、可靠 、与应用无关. 

它克服了传统的客户,月匪务器结构的缺点,如:业务逻辑集 

中在客户端,导致客户端过于庞大.增加了维护成本;业务 

逻辑不能被多个应用共享。 

环境q ̄ean可以操作。它处理对象生命周期(包括创建和销 

毁‘个对象).并负责Bean的状态管理。容器对客户是透明 

时,容器 没有客户AP[。当一个Bean被安装在容器中时.浚 

容器提供两种实现:Bean的EJBHome ̄口的实现和Bean的远 

程按u曲实现。容器也负责保证在JavaJNDI中能够获得 

Bean的EjBH啪礴羹口 

I EJB技术的设计目标 

EJB结构是JavaTM平台上的服务器端组件模型。设计 

EJB结构的目的是:(1)通过使企业开发人员将注意力只集中 

于缩写商务逻辑.不再需要编写那些处理事务行为、安全、 

连接共享或线程的代码.从而大大地提岛r编程效率。(2) 

利用EjB技术通过将一般需要手工编码的特性转化为企、 

t3ca ̄s简单声明属性来实现,这些声明属性使开发效率大大提 

高 因为某些行为.如安全和事务不是以代码形式.而是通过 

Bean自身的”标记 来设定的,这种设计特性也是BfB技术使开 

发人员将注意力集中于编写商务逻辑的另一条途径。 

EJB规范创建了一种底层绿构 它关系到系统级编程、如 

事务、安全、线程、命名、对象生命周期、资源共享、远程 

访问和persislence等等;它同时也简化r游闷现存应用程序 

的过程并为工具的创建和使用提供了统一的应用程序开垃 

模型。 

田l EJB的体摹结糟 

2.2应甩程序中的EJB组件 

2 EJB的体系结构及EJB组件的构造 

EJB规范支持任何类型的客户.因为谶就范 ;强制要求 

ft何远程对象的 网线“协议.一个EfB服务器可支持多种协 

在E,tB的规范上缩写应用程序时,业务逻辑与底层系统 

逻辑分开t利用FJB容器来支持底层服务,如状态管理、事 

务管理、线程管理、远程数据访问和安全等。 

要构造一个Bean.必须首先实现商务方法。倜如.如果 

在端写邮件接收Bean,要实现一个”Receive,Mail“方{击用来作 

为接口的一部分;还必须实现两种类型的EJB接口之・ 

作者简介:张健【I966~).女.讲师.主要帆事程序设计技术、 

d a与组件接术的研究i王卫红,讲师;夏禳 本科生 

啦翦日期:200l一05—28 

89— 

维普资讯

s l1)I]l{【an歧EnfiD Bean;这些接【i乜把r [作设饺管删 

村1差的方法,并且 暴露给客广 

、 把一千l 龃n安装在服务器k[I,J远 接『1则被门曲4 

成 远稃接l l的实现被称为E1H0叫cc【它只特程序员指定的 

远程接|】暴露lIJ米。尽管证 kB髓n娄包含了蜘样的方恺 化 

它并1:实现远程界面。EJBObject的作用就像是一个代理人 

它截取远程对象请用并谓 ̄kBean实倒[f1适当的方法。 

个Em衽器可实现安装在泼容器中的每个企业Bean的 

I JBH }nld接口它允许Bean的创建和清除、片且可查询有关 

B n的信息或 ’元数据”。该容器使客户通过JNDI便可获得 

EJBHome接口。 对Entity Beans来说,EJB[Iome接口也包含了 

个或多个 finder”方法使客户用 个主键即可查询有关 

Bean的信息。 

3 EJB的特性 

随着计算机网络技术的发展,应Hj程序开发人员所面临 

的最复杂的问题之一是编写分布式事务应用程序。 

【l吩市式事务的支持 

H支持讣布式事务;EJB技术可编写沛问跨越多个EJBH 务器 

构多重廿布式数据库的应甩程序。EJB规范允许在部署阶段就 声 

朗的形式指出事务行为.而管理事务行为的负担被转移结服务器特 

别是转移缔容器和 B服务器提供者n如粜Bean的开发人员岢更高 

的事务需求,则可使Bear 通过程序来管理事务界限 

( )安全性能 

安全是所有企业产品劬需求。EJB纽件樘咂充丹发挥,核心 

lava平台安全模型蚋作用 两种设置安生的疔洁 第、可班在Bean 

的EI1:I.JAR文件中设置安全描述符 第二可耻使用iava scX'll rilv包 

实现对安全的程序化管理 

(3)【 JB是独立于对象的通信协议 

首先 它可 使编写客户端应用程序的 序员免于选择通信协 

议其次、它允许EJB服务器的建立者实现对 用户最为重要的协 

议 倒如ORB提供者可能仅仅实现CORBA协议,而Unix提供者则 

可能实现RMI和CORBA协议。但无论如何,所用协议对8ean ̄W]。发 

具是透明的 仅但针对Java平台来编写程序 

(4)继彝陛 

Java平台为EJB服务器提供 许多继晤性的优点。一H撼于 

Bean的应用程序编戚后 它便可 在任何l】J运行 业Bean服务器的 

地方运 ,片优点是易升级性。如果EJB应用程序在性能上2}{了 

题可以将应用程序的主要部分移植到另 个更高性能的平台的 B 

服务器E. 

(5 J专1 容器 

专用容器可犬太简化对现存企业应用程序的访问这样的容器 

可使现存非1ava语言应用程序作为Bean出现它使Java开发人员可在 

了解现存系统和应用程序特点的情况F讨^口J那些碰啊程序。 

4实例分析 

我们以SWI:收发系统为例,甩EJB技术来实现该系统 

泼系统主要完成以下功能: 

 lJ实现客户分组功能。即按客户fjg种类进4 ̄Email群体发送: 

・21实现邮件分类功能。日 对收到的邮件廿类,便于日后检索 

t3)实现邮件白面发送功能 即可以定时发送邮件. 适应特殊 

场台的需要 

考虑到系统需要实现的功能,建立如F所示的数据库: 

一I)toptcs表 用来存储邮件的种类,实现邮件分类功能 

12)Mails袁 用来存储接收到的邮制=信息; 

J( r。_J']s表n用来存储客户的种类信息,便于客户群体分娄; 

~4 (1ien:曩 啊米存储客户蚋信息, ̄llemail地址等, 

9eL—— 

I IUsc 袅,用米设置该戟件的用户信息.包括p【’ 股sm【p雅 

箝器地址 

数据库中各张表之间的关系如图2所示。 

孵__一 一 

一 

'‘ l 

_l 

 

一 

_Jl 

图2教据库中各张袁之间的若秉 

政系统最大的特点是它使用EJB技术来实现其核心功 

能,大体t共编写了以下几个Beans: 

(IIEntity Bean 

1)qopicsBean。对应数据库中的Topics表. 

2)MailsBe ̄n 对应数据库中的Mai ̄s表 

3XqroupsBean 对应数据库中的Groups表。 

4WlientBean。对应数据库中的Client表。 

5)U serBean。对应数据库中的Users表。 

l2)Session Bean 

!型壁堡 

囟囱 

图3各个Beans之间的调用关系 

EmailBean主要的任务是完成邮件发送功能。笔者将它 

设计成‘个Stateless Session Bean,因为它没有属性需要保 

仔 该组件提供给客户一个SendMail方嵇和Rece[veMail疗 

值 Sen&Mail方法要求用户提供发送Emai[的必要信息,如 

smtp ̄lE务器地址、邮件内容、邮件主题、发件人以及收件组 

的组名,然后该组件调用GroupsBean和ClientBean两个Emit', 

Bean到数据库中查找相应的收件人,最后分别将信件发送给 

每一位客户,同时返回一个存放Email地址的数组,表示没 

有将邮件成功地发送到对应的客户服务器上,需要重发或另 

行处理。ReceiveMai[方法实现接收邮件的功能,首先用户输 

入接收邮件的pop3地址,以及一些必要的信息.然后接收信 

什,从中提取出信件类型、主题以及信件内容,再将信件存 

储到数据库中,以便于日后查询。其他还有一些辅助方法, 

例如查找已收到的某一类信件、检索所有的信件类型等辅助 

J 能 

各个Beans之间的调用关系如图3所示 

I3)多层结构- ̄ces模式的比较 

传统C/S方法是两层结构的ClienffServer,应该说C/S方 

法存一个专用、独立、封闭的系统中,是一个很好的系统建 

一 

方法但是随着计算机网络技术的发展,各种不同平台之 

维普资讯

时的珏联,软件设计应采用肝放性原则,所以我们采川J 越 

_卜多层结构的EJB技术来设计该系统,c s结构与多 结构 

后舶维护更新工作 

5结论 

L惦技术代表的是一种前沿技术,它使得复杂的多层结 

构应用系统开发变得容易 EJB技术建立在已取得规范之 

相比其局限性是显而易见的,传统的c s结拘系统集成时存 

在较多的6 露,如: 

I健 在 旧应用平台【os.Network)上的应用系统很难巢戚 

21由,:同开发者开发的建立在相l司应俐平台(OS.Network仕的 

应闭集成时也银l强难。 

采用EIB技术能有效地进行软件复甩,提高开发人员的 

3I建立任相同应用平台上的应用集成时.每个客户机上必须集 

成晰有应刑的 户程序。 

4I传统的C"S方法,用户应用功能f 算J主要在cIient方.往砬 

用集成时.使客 机韭的很大(称作肥客 机 ,与客户机相比.服 

哥方功能相应简单 称为瘦服务器 

,)任何被染成的应用功能的修改与扩克,除了有关服务器需要 

修改与扩充外,所有客户机都必须修改和扩充 

效率,降低软件的开发和维护成本,提高软件质量的复杂 

性 FAB技术将使得Java在企业计算中的地位得到加强,为 

基J Java的应用系统提供了一个框架,和目前系统和模型丰目 

比,EJB具有许多优越性,EJB有可能成为多层结构分布式 

应用系统的服务器端构件模型的首要选择。 

参考文献 

Iohn W Mastermg Enterprise JavaBeans and the Java 2 Platform 

Enterprise Edition,Sons lne Wi LeyComputer Publishing.1999 

而多层结构正好克服了 上这些由c,s结构遗成的缺 

陷,就拿该系统来说,邮件的发送,接收及邮件内容的整理 

2仲革豪

hⅡ口。 

中间件构筑复杂分布式应用的关键技术 

vw apusic corrdtecl ̄artic『 

功雒等都是在EmailBean中实现的,而在客户端只是这些功 

能的接口而已,因此日后要更新系统的功能时,只需修改丰仃 

鹰的B吼n即叫,而不需要改动客户端的代码,从而简化了口 

3 1‘少锋,王克宏

L【、sI ib htm 

Java EJB技术研究http://tearnsun conr cn— 

4 EJB 2 0 http://www umIchina condCBD,'Newindex【h em 

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 

I上接第82页) 

Atta ̄hedB( ̄, objp WORD x ."WORD y=0):objI口bj 

为源和目标对象,就形成了对象的双向组装。双向组装口丁 

以由两个相互独立的、但互为源和目标的单向挂接构成。需 

i1ext(0),AttA(x y){ J; 伪造函数 

要两次独立的挂接操作来建立。也可通过定义双向挂接和挂 

接操作 建立起来。这需要双方对象建立起关系维护与激发 

机制。建立和撤消挂接时需要在双方对象中执行相应的操 

作,以维持挂接的正确和完整。双向组装需要考虑和避免发 

生递归的连锁反应,例如:由干A与B的挂接,A.x的更新会 

『起B Y的变化;相反的挂接关系,可能NBY的变化再次引 

起A x的更新i如此循环不断,而产生无限的重复行为。 

4.ttachedB getNexq){return next;}:,,供对象表Olist甩 

void setNext(AtlachedB pohj){next=pObj;}; 对象表0list用 

AItaehedBO(delete next;}; 

Position AttA; 

/佣户附加的属性 可选 

char kttM0{return m}; 

B Obj:

f佣户附加的方法 可逸 

坩日旬目标对象 

prn ate:AttachedB next;伸#对象表0IIs啁 ): 

目标对象表类 ̄lassO[PosT rlgObs,ObjList<eI ̄ss>是其基础模楹类 

class classOIPosTrigObs;peblic ObjList<Atta chedB>f 

pubIIc:-。 … 

8结束语 

本沱文提出的思想,除双向组装外,已经通过程序转换 

器的方法得到了实现,并获得了实验性的应用。进一步的工 

件包括研究并实现双向组装、通过参数对被挂接对象的操作 

方浊加以控制、通过设计模式的策略对被挂接对象加以控 

boo[LinkObjBy(B obi,WORD x,WORD )f 

,'lilt立对象挂接的景作方j岳 

'tttachedB aB:n w AtltachedB(ohj,1.11: 

if(ObjList<AttachedB>::1 inkObjBv(aB)return true; 

else{delete aB;retnrn false:}; }; }: 

制,或者将策略用于依赖操怍埔用的条件检查上,以提高对 

象 接的行为的动态可控能力。 

参考文献 

1 Saiedian H An Evalua ̄on or"Ex ̄nded Entity-r ̄latmnshib Model 

Intbrmation and Software Technology

1997.39(7):449-462 

7几点说明和处理 

组装的继承性:由于类的继承性,挂接关系定义的梭挂 

接类、以及由该类导出的类的对象,都可以被挂接、并维持 

挂接的行为依赖关系。同理,使坩虚方法作为行为关联语义 

的实现,如上倒中的lrri us0方法,可方便地改变导出类的 

语义丑;现 另外 由于挂接的源类中挂接接口的公共(public) 

2 K rislensen B B Complex Associations:Abstractions in Obiect-oriented 

Modeling OOPSLA。94 ACM 9th Annual Conference on ONect— 

o rienled Systems

Languages&Applications

Association foJ 

特性,使振类的导出类对象依然具有该挂按接【j的髓力。 

附加属性和附加方法:被挂接的类B是作为扩展娄 

AttachedB的成员出现的.附加属性和附加方法也是它的成 

员,所以,通过类AttachedB的对象可以方便地实现附加 

性和附加方法的访问。附加方法可以包含对附加属性和B娄 

对象的访问和处理。 

C'empulhg,tMachinel3,,P0 ̄land,OregonUSA

】994 272-286 

3 Rumhaugh J.Models Design:Generating Code for Association 

Iotlrna[ofOl ̄iect-otien(ed Progmmming Model&Design[996

1 8 

I2) I 3—17 

4 I itman D,Patebschneider P F

Mishra A Modelin2 D vJImic 

(ulIectiuns ol、InterMeoendent Ob ects Using Path—based Rules 

OOPSLA。97:ACM 12th Annual Conference on Obiect-oriemcd 

S3 slems Languages&Applications Assoctation Ibr Comguting 

Machine r3.New York USA I 997:77—92 

对象们双向蛆装:以上对象挂接所建立的行为依赖荧系 

是单向的,称为对象的单向蛆装。如果垃 :挂接的对象叮 


本文标签: 对象 系统 实现 挂接 应用