admin 管理员组

文章数量: 1086019


2024年3月12日发(作者:scrapy安装包)

维普资讯

第26卷第1期 

辽宁工学院学报 

Vo1.26。No.1 

2 0 0 6年2月 

Journal of Liaoning Institute of Technology 

Feb.20o6 

基于EJB的构件组装编译技术研究与实现 

田 宇,陈松乔 

(中南大学信息科学与工程学院,湖南长沙410083) 

摘要:在对构件组装编译的研究过程中,提出一种 于F_JB的构件组装编译技术解决方案。利用WEBLOGIC 

平台部署EJB构件,采用XML技术对构件组装规约进行形式化描述,对XML描述文档进行组装编译的解析,利 

用程序模板自动生成程序代码,最后采用标准代码编译器进行编译,完成FAB构件组装。实例证明了该技术的可 

行性。 

关键词:构件组装;FAB:XML:编译 

中图分类号:TP3l1.5 文献标识码;B 文章编号:loo5.1090(2o06)01—0028.04 

Research and Implementation of Component Assembly 

Compilomplling lng Technology

TIAN Yu,CHEN Song—qiao 

(Information Science&Engineering College,Centml South University,Changsha410083.China) 

Key words:component assembly;EJB:XML;compile 

Abstract:During researching on component assembly compiling,a solution to EJB—based 

component assembly compiling technology was proposed.EJB on WEBLOGIC platform was deployed, 

which formally described the XML-based component assembly specification,and analysed XML 

documents.The application of program template was made to generate program code automatically and 

then standard coding compiler was used to do compiling,which completed EJB component assembly. 

基于构件的软件开发方法已经成为软件重用的 

上的构件,自动或半自动组装成为一个新的粒度更 

主流技术…。构件技术在服务器端的应用有着广大 

火的构件或者一个新的软件,加快系统的开发周期, 

前景,而JAVA技术是在这一领域中虽有竞争力的 降低开发成本,提高系统的灵活性、可靠性、可扩 

员,其J2EE平台及EJB标准的推出更是在此方 展性和易维护性。已有的构件组装机制以及构件组 

向上的重要一步。如何充分利_Hj分布在网络上的构 

装] 具,从模块互联语言(M )到构件描述语言 

件服务资源是软件重J{j研究领域的前沿课题。国内 

(CDL)蒋到构架描述语言(ADL),均只能描述构 

外在构件组装技术方面已经取得了一定的研究成 

件和连接子及其接口的语法语义、组装结构中系统 

果:北京人学软件_l:程研究所的青鸟工程[2】、中科 

的整体架构等等:不能直接与具体实现相关,仍需 

院软件研究所的信息化基础软件核心平台【3】、上海 

要使用适当的转换技术,存在一定的局限性,不能 

普元的面向构件的互联网虑HJ基础平台(EOS)[4】、 

对组装编译过程提供很好的支持。根据上述的问题, 

互联网实验室的《面向构件的互联网应用基础平台 

本文提出一种基于EJB的构件组装编译技术解决方 

研究报告》【5】、Richard N.Taylor等研制开发的川于 

案。方案利用wEBLOGIC平台部署FAB构什,采 

GUI软什开发的基于消息总线的C2架构风格【6】等 

川XML技术对构件组装规约进行形式化描述,然 

等。基丁构件的开发方法的目标是将分布在Intemet 

后对XML描述文档进行组装编译的解析,利J刳程 

收稿日期:2005-12-23 

基金项目:周家教育部博:卜点 食资助(20030533O1 i) 

作者简介:l_=Il宇(1978一),男,辽宁锦州人,颁 I 生。 

维普资讯

第1期 田宇等:基于EJB的构件组装编译技术研究与实现 29 

序模板自动生成程序代码,最后采用标准代码编译 

器进行编译,完成EJB构件组装。 

1构件组装流程描述 

构件组装流程如图1所示: 

日 

组装 

构件匹配 

组装结构不合理 

软件结构描述 

形成组装结构描述 

组装程F 

有错误 

霸 

程序校验工具 

组装程序正确 

满挪簿姻 

交付用户 

校骏 

最终用户: 

. 

图1构件组装流程示意图 

(1)用户按照输入格式要求,根据用户的需求 

描述【7】,利用需求分析 [具,在系统提供的输入规 

则引导下,逐步输入需求,形成构件组装结构描述。 

(2)利用构件组装工具,根据组装结构描述, 

从构件库中搜索、评估并选取组装结构所需要的构 

件 】,并指导用户完成构件问连接子的设计,形成 

完整的构件组装结构。 

(3)利用编译部署工具,首先采用WEBLOGIC 

部署E旧构件,然后对构件组装结构描述文档进行 

解析,利用程序模板自动生成程序代码,再利用标 

准代码编译器进行编译形成应用软件的实体。 

(4)利用程序校验工具,根据校验规则,对自动 

生成的软件实体进行测试。如果有错误或不能完全 

满足用户需求,那么回到步骤二,对软件的组装结 

构、构件选取、连接子设计进行逐步调整,并继续 

步骤三、四,直到得到用户最终满意的软件系统实 

体。 

2 EJB 2.0技术特点 

Enterprise JavaBean(EIB)是一种服务器端构 

件体系结构,一个EJB可以包含一个或多个JAVA 

对象。一个EJB必须对外界提供一些接口,这些接 

口必须遵守EJB规范里的有关规定。客户端经过一 

定的调川约定可以通过这些接口调用EJB提供的方 

法 EJB客户端有很多种,可能是Servlet、Applet、 

也可能是其他的EJB或是应用程序【9】。 

EJB的三大优点: 

它是被业界认可的。凡是使用EJB的用户都 

会受益于它的』“泛应用。 

移植性容易实现。F_JB规范是公开发布的, 

并且每个用户都能得到它。因为EJB是一种 

标准,所以您不必依赖于某一个单一的、独 

立的供应商的体系结构。 

快速应用系统开发。因为用户从应用服务器 

中可以获得中间件,所以应用系统的构建会 

快很多,同时也有更少的麻烦需要处理 

EJB 2.0定义了三种不同的企业级Bean: 

会话Bean(Session Bean)会话Bean模拟 

商务过程对象 它们执行动作,包括进行加 

法运算、访问数据库、凋片j一个legacy系统 

或者调用其他企业级Bean。 

实体Bean(Entity Bean)实体模拟商务数 

据。它们代表数据对象,即代表数据库信息 

的数据对象。会话Bean通过利用实体Bean 

来达到业务目标。 

消息Bean(Message Driven Bean)消息驱 

动Bean与会话Bean类似,它们也代表动作。 

两者不同之处在于用户只能通过给那些 

Bean发送消息来调用它们。 

在构件组装编译过程中,采用EJB技术,利用 

WEBLOGIC部署EIB构件,可以使构件和连接子都 

遵循相同的统一规范。使软件系统的组装结构和实 

现软件系统的软件构件完全独立。能够更好地隐蔽 

构件实现细节,对系统的描述层次更高,从而突出 

系统各部分之间的逻辑联系,大大提高软件构件复 

用性和组装机制灵活性,对组装编译过程提供很好 

的支持。 

3梅件组装描述规范 

形式化的软件结构描述用一套定义良好、便于扩 

充的符号描述软件系统【J 0】。形式化的软件结构描述 

方法规定了软件箨个部分以及组装结构的语法和语 

义描述方式。一般来说,语法规定了各部分之间的 

属性、接口、操作、参数列表等的描述格式,语义 

部分则是对构件功能和非功能属性的自然语言描 

述,没有固定的格式。 

本文利用BNF范式分别给山构件、连接子、端 

口、消息、构件行为、组装方案、构架七种组装规 

约的形式化描述定义。 

(1)构件: 

维普资讯

辽宁工学院学报 

<EnterpriseBeans>::--<EnterpriseBeanslnfo> ̄:ServicePorts><R 

equirePorts><Events> 

第26卷 

可以形成复合行为。在组装方案CompositionMethod 

<ServicePorts>::=<ServicePort>{;<ServicePort>} 

<RequirePorts>::=<RequirePort>{;<RequirePort>} 

中,行为集合Behaviors对每个参与组装的构件行为 

进行了具体描述,包括构件行为的标识I【)、构件定 

位EnterpriseBeansLoc以及驱动该行为的消息定义 

Message。 <Events>::--<Event>{;<Event>} 

(2)连接子: 

<Connector>::=<Connectorlnfo><ConnectorServicePort><Con 

nectorRequirePorts> 

=<ServicePort><CompositionMethod 

然后,本文利用XML标记语言的文档格式化 

标准(Schema),对构件和组装方案等七种组装规约 

描述建立统一的XML Schema文档(*.XSD)。在组 

装实例研究中,以实例建立相应的XML文档 

) 

<ConnectorRequirePorts>::=<ConnectorRequirePort>{;<Conne 

ctorRequirePort>} 

<ConnectorRequirePort>::=<RequirePort> 

(3)端口: 

<ServicePort>::=<PortName><MsglD> 

<RequirePort>::=<PortName><MsglD> 

(4)消息: 

<Message>::=<MsglD><Parameters> 

<Parameters>::=<Parameter>{;<Parameter>} 

<Parameter>::=[inlout]<ParamType><ParamName> 

(5)构件行为: 

<Behavior>::-<lDxEnterpriseBeansLoc><Message> 

<EnterpriseBeansLoc>::=<EnterpriseBeanslD><HostName> 

(6)组装方案: 

<CompositionMethod>::=<CompositionExpress><Behaviors> 

<Behaviors>::-<Behavior>{;<Behavior>l 

(7)构架: 

<Architceture>::=<EnterpriseBeans><Connectors> 

<Connectors>::=<Connector>{;<Connector>} 

在组装规约的形式化描述中,构架由构件集合 

EnterpriseBeans以及连接子集合Connectors构成, 

连接子Connector的服务端口ConnectorServicePort 

中定义了连接子下挂的协作构件之间的组装方案 

CompositionMethod。组装方案COmpositionMethod 

主要由组装表达式CompositionExpress与构件行为 

集合Behaviors构成。 

其中 

唧 脚 - E 

OP(Beha iorLkt) 

nr,EI●,v.’Jl} 

Jll 

表达式中的BehaviorList中表示一个、两个或多 

个服务构什的行为标识构成的列表,各个行为标识 

之间Hj“,”号隔开。OP∈{I,V,,.c,II),分别代表 

顺序组装(SEQ)、分支组装(CHO)、循环组装 

(ROL)、并行组装(PAR)这四种组装操作,即 

BehaviorList中的多种行为通过某种OP组裟操作, 

、 

(半.XML)。 

下面,本文以构件的规约描述为例,建立相应 

的XML Schema文档(EnterpriseBeans.xsd)。 

<?xml version=”1.0”encoding=”UTF-8”?> 

<xsd:schema xmlns:xsd=” 

http://www.w3.org/2001/XMLSchema’’> 

<xsd:element name-- ’EnterpriseBeans’。> 

<xsd:complexType> 

<xsd:sequence> 

<xsd:element name=”EnterpriseBeanslnfo” 

type=”xsd:string”/> 

<xsd:element name=”ServicePort”type='。xsd:string”,> 

<xsd:element name ̄-”RequirePort”type=”xsd:string”,> 

<xsd:element name=”Event”type=”xsd:string”,> 

</xsd:sequence> 

</xsd:complexType> 

</xsd:element> 

</xsd:schema> 

4构件组装编译及实例研究 

在构件组装编译过程中,首先利用WEBLOGIC 

部署EJB构件,再根据上述得到完整的构件组装描 

述的XML文档(,.c.xML),对XML文档进行解组 

——

就是把XML文档解析,然后利用程序模板, 

把解析后的XML文档自动转化成Java代码。最后 

利用标准代码编译器(JDK)把Java代码编译形成 

应用软件的实体,完成EJB构件的组装。 

通过分析一个实例来说明该构件组装编译技术 

的实际应用,这个例子结合了WEBLOGIC、EJB、 

JSP、Servlet、DB、XML等技术。在这个应用中, 

实现一个学生成绩管理系统。该学生成绩管理系统 

包含8个EJB构件,分别完成成绩录入、成绩查询、 

成绩修改、成绩删除、成绩数据分析数据表合并、 

成绩数据分析数据表求平均、成绩数据分析数据表 

排序、成绩打印功能。 

根据构件规约描述建立的XML Schema文档 

维普资讯

l期 田字等:基于EJB的构件组 现 3l 

(EnterpriseBeans.xsd),本文以成绩数据分析合并数 

据表构件为例,建立相应实例的XML文档 

5结束语 

(EnterpriseBeans.xm1)。 

基于构件的软件开发方法(Component Based 

<?xml version=”1.0”encoding=”GB23 1 2”?> 

Software Development)有利于在软件开发中减轻重 

<EnterpriseBeans><!-数据运算构件_> 

复劳动,提高软件的开发效率、质量和可维护性 

<EnterpriseBeanslnfo>Integrate</EnterpriseBean 

本文提出的基于EJB的构件组装编译技术的解 

sInf0><!一台并数据表—_> 决方案,利用EJB技术的特点,对构件组装编译过 

<ServicePort>Table</ServicePort> 

程提供更好的支持,提高了软件的开发效率,增强 

<RequirePort>Table</RequirePort> 

了系统的灵活性、可扩展性和易维护性。改善 1开 

<Event>Union</Event> 

发新的构件组装编译技术具有重要的理论和应用意 

</EnterpriseBeans> 

义。 

把解析后的XML文档自动转化成Java代码要 

利用三个程序模板,分别为:T_Globe.tlat、 

参考文献: 

_

Node.tlat、T

_

Detail.tlat。 

【l】t斌,王建新,张尧学,等.~种幕多Agent的lntemet 

模板T~Globe.lfat:  ’

JavaBean构件挖掘方i杰【J】.小型微型计算机系统. 

import java.if.丰; 

2003.24(12):43-52. 

import java.util. : 

【2】杨荚清。梅宏,李克勤.软件复用与软件构件技术【J】.电 

public class

_

DesObject_ClassName 

子学报.1 999.27(2):68.75. 

f DesObject_ReturnType 

【3J中科院软件研究所.中科院软件研究所网站[DB/OLI. 

DesObject_MethodName(一DesObject_Params) 

2003.http://wwwdos.ac.cn. 

{ Stirng LastCmd=”start”; 

【4】 普元公司.普元公司网站[DB/OLI.2005. 

intUnreached=0; 

http://www.primeton.tom. 

ariables 

【5】互联网实验室.互联网实验室网站[DB/OL].2004. 

while(true) 

http:#www.chinalabs.com. 

{ if(LastCmd.equalslgnoreCase(”start”)) 

I6】Medvidovic N,Oreizy只Taylor R N.Reuse of Off-the-shelf 

{ if(true) 

Components in C2一style ArchitectureslC].In:Proc 1997 

{ _FirstAction 

Int Conf On Software Eng(ICSE’97),Boston,MA, 

LastCmd= 

1 997.5:692 7o0. 

7】窦郁宏,陈松乔.程序挖掘中需求描述的研究【J].计算机 

FirstActionName”; l } 

_

NodeList 

工程与应用.2002,(10):53—56. 

else if 

【8】Sheng Jin-fang。Chen Song—qiao,Wang Bin.COTS 

(LastCmd.equalslgnoreCase(”end”)) 

Evaluation and Selection Based on Requirement 

{ break; } ) 

Decomposition[J]. Chinese Journal of Electronics. 

_

DesObject_Return ) ) 

2005.14(1):62----67. 

模/ ̄T_Node.lfat: 

【9】Ed Roman.精通EJB第2版【M】.北京:电子工业{“版社, 

elseif 

2004. 

 .

(LastCmd.equalslgnoreCase(“NodeName”)) 

【lO】任洪敏,钱乐秋.构件纽装及其形式化推导研究【JJ.软 

{ if(false) 

件学报,2003.14(6):1 066—1 074. 

Unreached=0; 

责任编校:付春玲 

jFl_ELSE_I ) 

模板T—Detail.tlat: 

else if(一Condition) 

f _NextNodeName_WithDetail 

LastCmd= 

” 

_Next NodeName 

一 

”; }


本文标签: 构件 组装 编译 描述 软件