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
对象们双向蛆装:以上对象挂接所建立的行为依赖荧系
是单向的,称为对象的单向蛆装。如果垃 :挂接的对象叮
版权声明:本文标题:基于EJB的组件开发技术 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710241498a563947.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论