期刊鉴别 论文检测 免费论文 特惠期刊 学术答疑 发表流程

ABC:基于体系结构、面向构件的软件开发方法(下)(2)

时间:2016-03-23 11:40 文章来源:http://www.lunwenbuluo.com 作者:梅宏,陈锋,冯耀东, 点击次数:


  (2)使用EJB实现的查询模块的Home接口publicinterfaceQueryAgentHomeextendsEJBHome{
  publicQueryAgentcreate(ObjectuserId)throwsCreateException,RemoteException;publicvo
idremove(Objecthandle)throwsRemoteException;
  }
  (3)使用EJB实现的查询模块的部分代码
  publicclassQueryAgentBeanimplementsQueryRequest,SessionBean{
  Stringm_userId;
  publicvoidejbCreate(ObjectuserId){m_userId=(String)userId;
  }
  publicTimeTablegetTrainTimeTable(ObjecttrainId){
  TicketInfot_ticketInfo=TicketInfo.getTicketInfo(trained);returnt_ticketInfo.getTimetable();
  }
  (4)最后,使用ABCTool将得到的构件实现打包,并填写相应的构件信息,放入工具的构件池中,从而将该构件组装到系统中
  2.3系统检验
  用户利用工具,将SA模型中的每个设计构件都与构件池中的一个实现构件关联起来,随后就可以开始系统组装的准备工作.在此之前,需要先用工具对系统进行校验,保证系统的有效性和完备性.系统验证是SA研究的一个重点,由于SA描述的是软件系统的高层结构,便于人们把握和检验系统的总体特性。这方面的成果有很多,主要的方法是在ADL中加入形式化的语义模型,然后使用形式化方法对得到的SA模型进行验证。
  在ABC方法中,对系统的验证包括3个层次:一是在语法层次上的校验,主要是对SA模型从接口的匹配和构件与连接子的拓扑关系上进行校验;二是在实现层次上,即根据具体实现的语言和底层平台的规范,进行类型匹配等实现级的检查;三是在语义层次上,利用形式化方法描述构件行为和交互协议,对系统的整体特性,比如有效性和完备性(例如是否有死锁,是否有构件之间的失配问题等),进行检查.这些校验都由ABCTool自动完成。
  在ABC方法中,使用体系结构风格作为语法和语义校验的基本框架,用户可以自定义风格并为该风格制作相应的校验插件,以扩展工具的校验能力.这样,一方面可以有效地利用现有SA研究的成果,另一方面也有利于用户形成适合自己领域的描述框架。
  2.4系统生成
  系统校验通过以后,就可以根据具体的运行平台来生成应用系统.下面以目前工具支持的J2EE平台为例来说明如何组装系统。
  J2EE(Java2platformenterpriseedition)[22]是SUN提出的基于Java的服务器端运行构件平台,是目前较为成熟也较有潜力的一个构件平台规范.J2EE通过定义容器(container)、运行时刻构件模型(enterpriseJavabean,简称EJB)以及它们之间交互的规范,并利用JAVA的标准服务,如JNDI等,使得EJB构件具有很好的可移植性和动态交互性。
  J2EE定义的运行环境是通过容器来体现的.EJB构件在容器中运行并通过容器与其他构件进行交互,容器使用运行时部署描述文件(runtimedeploymentdescriptor)来确定构件间的调用关系以及构件的运行环境;描述文件使用XML进行定义.工具在进行构件组装时,主要工作是根据用户定义的SA模型,结合已有构件和Aspect的信息,自动实现构件接入点的类,并为系统生成相应的描述文件;然后把各个构件和描述文件包装成符合J2EE标准的应用程序包,部署到运行环境中去。
  以订、售票系统为例,其应用程序包中包含Interfaces.war,QueryAgent.jar等实现构件包,它们分别对应于图4中的各个构件,而模型中的Aspect则映射到构件平台的公共服务(事务、安全)上.按照图5的SA模型以及EJB规范,工具自动生成各个构件的接入点类的实现体,并编译打包.QueryAgent构件包中接入点类Ticketlnfo的部分实现代码如下:
  publicclassTicketlnfo{
  TicketInformationm_remote;//票务信息构件的remote接口引用staticTicketlnfogetTicketInfo
(ObjecttrainId){
  Contextctx=newInitialContext();
  Objectobj=ctx.lookup(“java:comp/env/ejb/TicketinfoHome”);//查找票务信息构件TicketInformatio
nHomehome=(TicketInformationHome)javax.rmi.PortableRemoteObject.narrow(obj,TicketInform
ationHome.class);

  •   论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
  •   论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
  •  
  •   论文投稿客服QQ: 论文投稿2863358778 论文投稿2316118108
  •  
  •   论文投稿电话:15380085870
  •  
  •   论文投稿邮箱:lunwenbuluo@126.com

联系方式

  • 论文投稿客服QQ: 论文投稿2863358778
  • 论文投稿客服QQ: 论文投稿2316118108
  • 论文投稿电话:15380085870
  • 论文投稿邮箱:lunwenbuluo@126.com

热门排行

 
QQ在线咨询
咨询热线:
15380085870
微信号咨询:
lunwenbuluoli