SOA组合服务拓扑调用图获取方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SOA组合服务拓扑调用图获取方法

SOA组合服务拓扑调用图获取方法   摘 要:获取组合服务执行的拓扑结构有很多重要的意义,比如说可以让程序员更清楚的知道组合服务的调用关系,可以通过每个原子构建的参数来通过拓扑结构构建组合服务的相应参数,可以更直观的分析具体实例的执行。为了上述目的,我们要采取一定的工作来获取SOA组合服务的拓扑结构。   关键词:SOA组合服务 获取   中图分类号:P208 文献标识码:A 文章编号:1672-3791(2012)10(a)-0015-02   SOA就是面向服务的体系结构,SOA中一个重要的概念就是服务组合,完成组合服务的各个原子服务分布在网络上各个不同网络位置。为此我们出于分析组合服务参数等目的,要获取组合服务的拓扑结构。和一般的程序或者软件一样,我们在设计阶段很容易的知道一个组合服务或者说一个软件的整体拓扑结构,这个整体拓扑结构是整个软件或者说程序的体系结构,是在程序或者软件设计时期就已经根据程序需求或者软件需求就已经知道的。然而在程序或者软件的执行过程中,并不是所有在整体拓扑结构中出现的构建都会被执行,也可以说并不是这个整体拓扑图都会被执行,在实际执行过程中,往往只执行了整体拓扑结构中的一部分,这执行的一小部分显而易见的是整体拓扑结构的一个子图,这篇论文的目的就是要获取这样一个多个原子服务组合而成的实际执行了的组合服务的执行拓扑结构。那么如何来获取这样一个拓扑结构还有一定的工作要做。   1 获取SOA组合服务拓扑结构的抽象方法   我们采用的方法是采用一串字符来表示组合服务调用的拓扑结构。在每个原子服务执行的开始和结尾做上标记(在本篇文章中,我们做标记的方法是在服务A执行的开始输出标记AO和结尾输出标记A1),此标记要求与服务一一对应,这样,组合服务执行完毕后会得到一串标记。而此时得到的标记与组合服务的执行拓扑结构是一一对应的。   举个例子来说,一个简单的A,B两个原子服务,如果发生A调用B的组合服务,则会得到AOBOB1A1的这样一串标记。较为复杂的组合服务也一样,会得到一个与执行拓扑结构相一致的一串标记。   如图1的组合服务。   则会得到这样一串???记:SOAOCOC1 A1BODOFOF1GOG1D1EOE1B1S1。这样一串标记可以还原为拓扑树。因此,我们可以获得表示拓扑结构的字符串,可以通过获得这样的字符串来间接还原为拓扑结构。这样在开发程序或者软件模块的时候,可以在程序或者软件组件执行的开始和结尾中加入标记,当然对于不用或者没必要监控的模块,我们不必这样做,这样可以屏蔽一些不需要关注的细节模块,可以通过这样简化拓扑结构的复杂度,关注我们关注的重点。以上是获取拓扑结构的抽象方法,另外还涉及到具体实施的问题。   2 获取拓扑结构方法的具体实现   在具体实施的过程中,我们还遇到了一类具体问题。在上述方法中,我们要求输出标志,这需要在程序或者软件组件的开始和结尾中编写输出标志的代码,这就要求软件或者程序要求在开发阶段就在代码中植入,是对程序开发有设计要求的,但是由于SOA服务的特殊性,SOA服务是一个广泛的范围,它在网络上分布于不同的节点,也由不同的开发者开发,对这样一个开放的环境中所有的开发者做出设计要求是不现实的,因为不可能所有的开发者都会事先知道我们对于拓扑结构的需求,从而不会按我们所预计的那样事先编入所要的输出拓扑结果标志的代码。这显然成为了一个需要解决的问题:如何在服务程序或者软件中插入输出标志代码?   对此我们采用的方式是在知道服务程序源代码的情况下使用面向方面(或者说面向切面,Aspect Oriented Programming简称AOP)的方法来执行代码的植入功能。面向方面的方法有很多应用的地方,在这篇论文中,我们所应用到的仅仅是达到我们目的的面向方面方法中的一小部分,也就是进行输出标志代码的植入,这也使得AOP对于这个应用也容易实现,程序员不需要太多的培训就可以达到这个目的。我们举个简单的例子来说明AOP如何在已有程序或者组件中植入输出标志。我们采用AOP的方法,可使用AspectJ软件来对原程序进行编写含有插入代码方面(或者说切面),并在适当的时机把输出标志代码植入原程序,从而成为带有拓扑字符输出的不影响原程序功能的程序。   下面是主程序的代码,在下面的程序中主程序调用了一个子方法sayHello();我们通过把下列程序通过面向方面的方法来改造成能够输出拓扑字符的程序来说明改造的简单方法,在下面的程序中,我们将会通过改造来捕获sayHello()方法的使用,程序一旦调用了sayHello()方法,或者说sayHello()这个模块,那么改造后的程序就会给出相应的字符说明,通过这个字符我们能说明在何时何处调用了这个方法。   public cla

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档