基于Barracuda架构的SOA开发模型研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:JessicaGu45
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文在对EOS开发中存在的一些问题进行分析和对Barracuda架构深入研究的基础上,提出了一个基于Barracuda架构的SOA开发模型,以解决传统EOS开发中的效率问题,并对如何实现基于Barracuda架构的SOA开发模型进行了较详细的分析。
  关键词:Barracuda;EOS;XMLC;SOA开发模型
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)33-1413-02
  Analysis of SOA Developing-model Based on Barracuda
  ZHOU Jiang
  (Information of Judicature Department, SJPOPC, Deyang 618000, China)
  Abstract: After the analysis of the problems appearing in the development of projects based on EOS and introduction of Barracuda framework, this paper proposes a SOA Developing-model based on Barracuda to solve these problems. And how to realize this EOS is recommended. The effects of this SOA Developing-model is analyzed, too.
  Key words: Barracuda; EOS; XMLC; SOA Developing-model
  1 引言
  EOS(Enterprise Operating System)是面向构件的SOA中间件,它基于J2EE平台之实现完整的系统架构,是面向构件的完整的互联网应用体系[1]。构件是EOS中最基本和最核心的元素,所有的工作都是围绕构件进行的。构件之间采用XML总线技术来进行通信,使得构件之间具备松散的耦合性,从而使系统具有良好的扩展性以及随需应变的灵活性。
  Barracuda是一个HTML DOM Component Event/Listener结构的WEB应用程序框架,是一种Model 2体系结构,但是它进一步采用了创建用户界面的XMLC方法,而且提供了模型的事件-通知机制[2]。
  2 EOS开发过程中存在的不足之处
  通过采用构件化的模式和利用系统提供的各种基础构件包,EOS确实能够加快项目开发的进度,提高系统稳定性和组件复用度,尤其是展现逻辑和业务逻辑的开发采用图形化可视和托拽的方式,减少了开发人员的工作量,使开发人员可专注于对用户需求和逻辑的理解,而不必花费大量时间进行逻辑代码的编写,这种图形化的方式也极大地提高了程序的可读性。
  但是,页面构件开发对于大多数人来说就不那么轻松了,尤其是对于一些比较复杂的页面。EOS主要采用JSP页面作为页面构件[3],由于JSP固有的一些缺点[4],使得EOS页面构件的开发存在下面一些的问题:
  1) 开发人员不仅要设计HTML代码,还要编写Java代码,不仅要实现业务逻辑,同时还要考虑表示层的风格、样式方面的问题,把表示层和逻辑层的工作集中到同一个开发人员身上,这必然增加开发人员的工作量。而且EOS系统还定义了大量自己的标签,对于不是经常使用EOS开发系统的人来说,要想熟练使用好这些标签,也不是件容易的事。
  2) 在EOS的开发调试环境中,只能对输入输出JSP页面的数据进行查看,而对JSP页面执行过程中的内部变化情况,则不能进行跟踪调试。如果页面本身不大,逻辑也不复杂,查找页面上的BUG比较容易。但是在页面变大了、逻辑也复杂的情况下,要在页面中去找寻一个小的BUG,将是很令人头疼的一件事。
  3) html代码与java代码强耦合,一旦逻辑有所变化,可能牵涉大量页面需要修改。
  4) 如果需要对系统进行本地化的操作,就要为每个地区的每种语言建立一个页面文件,然后由系统自动判断采用哪个文件。
  5) html代码与Java代码在程序中交错出现,再加上可能还有JavaScript代码,使得代码的可读性降低。例如,在一个页面中,需要根据用户角色来决定是否显现某些元素,这就要进行判断,如果判断地方较多,用户角色也较多时,将在页面中出现大量判断语句(也可以采用EOS提供的逻辑判断TAG),对于一个不熟悉业务逻辑的人来说,是不易看懂的。当然也可以为每个角色创建一个页面,由展现逻辑决定显示哪个页面,但如果有很大一部分代码都重复的话,必将造成资源的浪费。
  6) 从美学的角度来说,页面构件由用户界面HTML代码和业务逻辑相关的java代码组合在一起,页面看起来杂乱无章。
  
  
  图1 Barracuda架构
  3 Barracuda框架架构简介
  Barracuda架构[3]将WEB应用程序划分为若干层,每层实现不同功能,层与层之间相互独立,具体见图1。
  1) 接收客户端信息
  接收客户端发送的请求,并对请求信息进行初步处理,从中提取关于客户端的信息(如客户端浏览器类型、客户端的本地化信息、对客户机的响应输出格式等),这些信息在整个请求-响应周期里面都可用。
  2) 事件模型
  事件模型主要用于处理客户机和服务器通信。它负责将HTTP请求转换为Java事件类,然后将产生的事件发布给监听器,并将监听器的处理结果返回给客户机。
  3) 表单映射和数据检验
  将表单传来的参数映射为Java类;为一些数据提供缺省值;对数据进行有效性检验等。
  4) XMLC
  XMLC是一个将HTML和XML 模板转换为DOM对象的工具,传统的表示层技术(如JSP)都是在标记语言内部进行编程,XMLC则是对整个模板进行编程。
  5) 本地化
  Barracuda利用XMLC提供了一种独有的方法来实现程序本地化。一般说来,在一个模板驱动的程序中,有两种方法实现本地化,一种就是为不同的语言提供不同的模板,这种方法运行效率更高,但是维护比较麻烦;另一种方法就是在一个页面中动态地确定怎样本地化,这种方法运行效率更低,但是便于维护。而Barracuda提供的一种机制可以同时达到这两个目标:效率高且便于维护。
  6) 组件模型
  开发人员在利用页面模板生成DOM对象以后,需要向Dom结构中填入数据,但是对Dom的操作是比较底层而难于控制的,为解决这个难题,Barracuda提供了组件模型。组件模型具有两个基本的特性:一个组件可以包含其他的组件,从而可以由简单组件合成复杂组件, 这不仅提高了模块的复用性,而且提高了整个系统的可扩展性;另一特性就是组件(包括其子组件)的渲染工作是由自己完成的。
  4 基于Barracuda的EOS运行原理
  经研究,现设计基于Barracuda的SOA开发模型,其运行原理如图2。
  1) 从浏览器发起HTTP请求,提交到展现引擎。
  2) 展现引擎将请求转换为XML,并根据HTTP请求(构件包.构件.构件逻辑.do)确定应该调用哪个展现逻辑,然后转到处理展现构件描述的展现逻辑。
  3) 根据展现逻辑流程中定义的业务逻辑,传入业务逻辑,并且送入相关的XML数据(从XML总线中)。
  4) 业务引擎根据调用的业务逻辑中的流程调用相关的运算逻辑。
  5) 对于需要访问数据库的操作通过数据引擎根据数据映射调用相关的数据库,在调用过程中根据流程定义的事务进行相关的事务处理。
  
  6) 业务引擎处理完逻辑流程后返回相关数据给展现层
  7) 展现逻辑根据展现逻辑定义的页面构件,将HTTP请求转发到指定的页面构件,并且传入处理完的XML数据。这里的页面构件和EOS中的页面构件是不同的, EOS采用的页面构件一般是JSP,而基于Barracuda的EOS中的页面构件是一个根据由原始HTML文件生成的DOM对象、文档模板和传入的数据动态生成返回给用户页面的逻辑。
  8) 页面构件根据相关信息生成HTML返回给客户浏览器。
  
  5 如何实现基于Barracuda的EOS
  通过对EOS作一些改进,即可将实现基于Barracuda的SOA开发模型:
  1) 将XMLC的转换工具作为插件安装在EOS开发环境中,通过它可以方便的实现从html文件到DOM对象的转换工作,这个工作是很容易实现的。
  2) 对页面构件进行改变,不采用JSP,改为采用Servlet[5]来实现,利用Servlet来完成对文档模板的操作,动态生成用户需要的页面。
  3) 将Barracuda的组件库引入EOS中,以充分利用组件的可组合性和自渲染性。
  6 基于Barracuda的SOA开发模型解决了EOS的中存在的问题
  下面分析一下采用基于Barracuda的EOS是如何解决2中所提到各种问题的。
  1) 采用XMLC技术将表示层和逻辑层的工作完全分离开来,可分别交与html设计人员和程序员来完成,html设计人员只进行表示层的设计,程序员则专注于业务逻辑的实现。html设计人员定义表示层的模板,通过XMLC工具将其转换为DOM对象,程序员只需通过代码来填写模板内容,而不用关注表示层的样式风格是如何的。利用组件模型,程序员可以向表示层中添加新元素,只需填入数据,剩下的渲染工作可由组件自己完成。
  2) 由于对数据的操作全部放在了页面构件中,而页面构件通常是一个Java的Serlet类,很容易通过现有平台的调试器来监视程序的运行过程,对程序进行调试,从而很容易确定程序中的BUG所在。
  3) 由于html代码与java代码已经完全分离开来,因而如果逻辑有所变化,只需要对逻辑层进行修改即可,而不用变动表示层的代码。
  4) 采用XMLC技术很容易实现系统本地化。此时,只需要一个页面模板文件,然后为每种语言配置一个.properties文件,由页面构件根据获取的浏览器端本地信息自动从对应的.prperties文件中读取数据来填写相关的元素内容(通过采用多例模式很容易实现)。如果增加了一个地区语言,只需简单增加一个.porperties文件,同时在页面构件中进行一点小改动就行了,这比增加一个新页面文件省事多了。
  5) 由于HTML代码与Java代码完全分开,使页面文件和逻辑层代码的可读性增强了[6],而且由于两者分开以后,不存在代码交叉出现的情况,文件内容的美观性也得到了保证。
  
  7 下一步的工作
  这次讨论的基于Barracuda的EOS并未实现Barracuda中的事件模型,下一步的工作将研究如何将Barracuda的事件模型应用于EOS中。
  
  8 结论
  基于Barracuda的EOS可以解决EOS中页面构件难以编写和可读性较低的问题,而且可以在对EOS改动不大的情况下得到实现,利用XMLC实现以servlet操纵页面元素[7],克服由于JSP固有缺点带来的页面编程效率低下的问题,在EOS己有的面向构件的开发模型基础上,大大提高web编程生产率,是一种优秀的SOA开发模型。
  
  参考文献:
  [1] 上海普元信息技术有限责任公司.EOS白皮书[S].2007.
  [2] http://www.barracudamvc.org/Barracuda/[EB/OL].
  [3] 上海普元信息技术有限责任公司.EOS 5.3程序员教程[S].2006.
  [4] 高敬.WEB应用程序-CGI到Web三层系统[M].北京:科学出版社,2004.
  [5] Deitel H M.Javaweb服务高级教程[M].北京:机械工业出版社,2003.
  [6] 吴其庆.JSP编程思想与实现[M].北京:冶金工业出版社,2003.
  [7] 孙鑫.Java Servlet编程[M].2版.北京:中国电力出版社,2002.
其他文献
书名:小学语文阅读教学研究  作者:程超  出版社:中国农业科学技术出版社  出版时间:2017年  ISBN:9787511631619  定价:28元  阅读有助于培养儿童的理解和表达能力,小学语文阅读教学须为学生的阅读能力和语文素养打下坚实的基础。鉴于此,教师要积极探索阅读教学的原则和策略,力求提升阅读教学实效。由程超主编、中国农业科学技术出版社于2017年出版的《小学语文阅读教学研究》一书
“莫道桑榆晚,为霞尚满天”,这是广泛流传的唐代诗人刘禹锡的著名诗句,王藏江先生躬身践行实证了其非常正确。十余年来,从中高级军官变身为著名画家,其间虽经历了辛酸苦辣,但他却已取得了令人瞩目的成就与成功,实在是可喜可贺。经年累月,笔耕不止。一杆玉笔随秉性,满纸华章见真情。王藏江先生在书画艺术的道路上不断开拓奋进,登上一山,又攀一峰。  一位曾经在青藏高原纵横弛骋三十多年的军人,在定居天府之国的蓉城后,
摘要:P4P是为解决目前P2P网络所引发的低效率和网络资源利用问题,而诞生的一种简单、轻量级的网络体系结构。该文主要从P4P的来源、与P2P网络的区别、P4P的架构以及P4P的未来发展趋势几个方面对P4P进行了介绍。  关键词:P4P;P2P;轻量级  中图分类号:TP393文献标识码:A文章编号:1009-3044(2009)22-pppp-0c    近年来,基于P2P[1]的网络应用越来越多
摘要:该文在分析和研究了WCF原理特性的基础上结合作者多年的ERP系统架构与实现经验,提出了一种基于WCF的分布式的信息系统的结构模型(B/S/S与C/S/S模型结构),并基于此模型结构设计了一种多层的分布式软件体系架构,该结构模型与体系架构有着更好的灵活性、安全性、可扩展性,并且该架构模型和体系架构支持多种网络终端设备。  关键词:WCF;结构模型;体系架构;信息系统;B/US/S;C/S/S 
摘要:Ada语言源代码经编译器编译后生成一个后缀名为Ali的文本文件。该Ali文件中包含了丰富的有关Ada源代码的信息。该文剖析了由M1750 Ada编译器编译生成的Ali文件内包含的具体信息内容,并介绍了基于Ali文件的分析并结合Lex词法分析工具来实现ADA语言静态分析器的过程。  关键词:Ali文件;Ada语言;Lex;静态分析器  中图分类号:TP311 文献标识码:A文章编号:1009-
摘要:自人类文明诞生之日起,人文精神就成了伴随人类文明演进的一个永恒话题。外国文学著作中涵盖的人文主义精神值得我们借鉴与思考。本文以美国文学巨匠海明威的小说《老人与海》为例,简要分析其中所折射出的纯朴人文精神以及在面对生存、发展中的阻碍表现出来的不放弃的进取精神。同时主人公对人生目标执着追求的奋斗精神、不畏艰险敢于拼搏的牺牲精神和作者对构筑理想社会的深刻观点也值得我们探讨与借鉴。  关键词:外国文
摘要:在我国大多数高校中,非计算机专业的学生普遍认为计算机教学中的程序语言设计课程非常难学。该文从教学内容、教学手段、教学方法等方面介绍了一些关于课程的改革建议,以利于培养学生学习兴趣和问题分析及解决的能力。   关键词:非计算机;VB;教学手段;教学方法;教学改革  中图分类号:G424 文献标识码:A 文章编号:1009-3044(2009)22-00000-00    目前的社会发展已经进入
摘要:分析非泛型的Java系统存在的数据类型转换安全问题,提出基于Java泛型的解决方案。通过对泛型的原理分析,探讨Java泛型的实际应用。并在此基础上,总结Java泛型的的特点。  关键词:泛型;对象包装;数据类型转换;集合  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)22-690-03  Research on Java Generics   WU De-pe
王卫新、隋晓荻等著的《英国文学批评史》一书,揭示了英国各个时期文学批评的理念及演变过程。全书共有六章,分别介绍了英国文艺复兴时期的文学批评、18世纪英国的文学批评、英国浪漫主义时期的文學批评、维多利亚时期的文学批评、20世纪上半叶的文学批评、20世纪下半叶的文学批评。从某种程度上说,撰写英国文学批评史的过程就是重新体味英国文化的过程,经历英国社会发展变迁的过程。历史无法复原,任何一部文学批评史都不
摘要:传统GIS数据模型难以适应配电GIS拓扑分析,利用 Geodatabase数据模型中的几何网络来描述配电网拓扑结构,提出了一种全局数据处理方法,对配电网数据进行设备分层、拓扑处理,以此建立配电几何网络,这为配电网络拓扑分析奠定了基础。最后,基于所建配电几何网络,结合东莞大朗镇配电GIS项目,实现配电网络拓扑分析中的供电电源分析,并给出了具体的算法实现。  关键词:地理信息系统;GeoData