[发明专利]基于程序切片技术的Web服务平台无效
申请号: | 201010204709.5 | 申请日: | 2010-06-21 |
公开(公告)号: | CN101873323A | 公开(公告)日: | 2010-10-27 |
发明(设计)人: | 张迎周;符炜;张卫丰;周国强;杨庚;陈蕾;许碧欢;陆柳敏 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 叶连生 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 基于程序切片技术的Web服务平台的设计方法提出了通过服务间的依赖关系进行Web服务平台开发的模型。本发明包括服务识别、服务生成、服务发布、服务发现、服务度量以及服务调用这几个功能模块。以用户上传的遗留系统为输入,对遗留系统进行分析,生成构件依赖图,对遗留系统进行构件抽取,进行服务识别。之后为每个服务代码生成WSDL文档,实现服务生成。分析WSDL文档以及WSBD文档,为服务生成带有依赖关系的tModel文档和UDDI文档,完成服务发布。分析所有tModel文档,生成服务依赖图,并对其切片,进行服务发现和服务度量。最终,Web服务平台为每个服务建立一个代理服务,帮助用户方便快捷的调用Web服务。 | ||
搜索关键词: | 基于 程序 切片 技术 web 服务 平台 | ||
【主权项】:
一种基于程序切片技术的Web服务平台的设计方法,其特征在于该方法以图论知识为理论基础,以程序切片为技术手段,提出了通过服务间的依赖关系进行Web服务平台开发的模型;该方法包括服务识别、服务生成、服务发布、服务发现、服务度量以及服务调用这几个功能模块;该方法以企业或者公司的上传给服务平台的遗留系统作为输入,对遗留系统中的构件进行分析,结合程序切片技术完成Web服务平台的各种功能,始终结合程序切片技术,解决服务之间的依赖关系问题,所包含的步骤为:步骤1:用户向Web服务平台上传遗留系统和服务发布描述文件WSBD,步骤2:对遗留系统进行语法分析,生成这个遗留系统的抽象语法树AST,抽象语法树是一个多叉树,树的根节点是这个遗留系统的名称,根节点的下面是N个记录构件依赖关系的多叉子树,子树中的儿子节点是父节点所依赖的构件,步骤3:根据步骤2的抽象语法树生成构件依赖图,抽象语法树记录了一个遗留系统中所有构件之间的依赖关系,包含可能存在的隐式依赖,只要分析这个抽象语法树,除去构件的参数,返回类型,在遗留系统代码中的位置等信息,只将某个构件依赖哪些其他构件这个信息从抽象语法树中抽取出来,然后用图显示所有的依赖关系,步骤4:根据切片标准,将步骤1中服务发布描述文件WSBD中记录的要被发布成服务的构件作为切片节点即切片的起始点,对函数依赖图进行切片操作;以某个构件为切片的起始点,对构件依赖图进行切片,得到这个构件所依赖的其他所有构件,切片的结果包括直接,间接,隐式依赖关系,根据这些依赖关系生成构件依赖子图,构件依赖子图中记录就是要从遗留系统代码中抽取出来的构件,步骤5:将步骤2生成的抽象语法树和步骤4生成的函数依赖子图进行比较,删除抽象语法树中没有被记录在函数依赖子图中的函数,生成一个抽象语法子树,步骤6:将抽象语法子树和遗留系统源码进行比较,将抽象语法子树中记录的构件的定义从遗留系统中抽取出来,生成切片代码,步骤7:对步骤6中生成的服务的切片代码进行解析,获取服务的参数、返回类型等信息,然后对这些信息进行处理,最终生成服务描述文档WSDL,完成Web服务的生成,步骤8:对步骤6中生成的服务的切片代码进行分析,得到此服务所依赖其他的服务,将这些服务记录到这个服务的服务接口文档tModel中的依赖元素元素中,并为此服务生成服务描述以及接口标识值tModelKey,将他们写入服务接口文档tModel中,完成服务接口文档tModel的生成,步骤9:对步骤1中的服务发布描述文件WSBD、步骤7中的服务描述文档WSDL以及步骤8中的服务接口文档tModel进行分析,获得服务的作者、服务的遗留系统名称、服务的公司或者企业名称、接口标识值tModelKey,并为每个服务生成一个服务标识值serviceKey,将这些信息进行处理,按照统一描述、发布和集成文档UDDI的生成规则,为一个用户上传的所有服务生成一个UDDI文档,步骤10:Web服务平台为步骤8中的服务接口文档tModel和步骤9中的UDDI文档分配网络中的地址,使得用户可以通过网络访问到服务接口文档tModel和UDDI文档,即将服务接口文档tModel和UDDI文档的接口暴露到网络中,实现Web服务的发布,步骤11:对服务注册表进行更新,将步骤10中的发布的服务加入到服务注册表中,并将每个服务的作者、发布者、服务描述、接口标识值tModelKey、服务标识值serviceKey这些信息详细记录到注册表中,方便Web服务平台进行查看和管理,步骤12:对所有已经发布的服务的接口文档tModel进行解析,得到服务平台中所有服务之间的服务依赖关系,生成服务依赖图SDG,步骤13:对步骤12中的SDG图进行切片,为每个服务生成一个以该服务为切片节点的服务依赖子图,然后基于图论知识,利用图的性质,使用程序切片技术,以图中节点的个数,边的个数以及图的层次为参数计算单个服务的内聚度以及它与其他服务之间的耦合度,在进行服务度量时,使用了如下的定义:定义1:图的体积用V表示假设图中节点的总个数为n个,图的层次为m层,那么这个图的体积V=n*m,定义2:内聚度用COH表示假设图中边的条数为e条,图的体积为V,那么这个图所代表的模块的内聚度COH=e/V,内聚度是用来度量图单位体积里所包含的边的条数的,单位体积里包含的边的条数越多,那么内聚度就越强,反之,如果单位体积里包含的边的条数越少,那么内聚度就越弱,定义3:依赖率用η表示用一个依赖图的两个子图A,B分别代表两个模块,假设图A中有n1个节点与B中的节点存在边,图B中有n2个节点与A中的节点存在边,则A对B的依赖率ηA=n2/n1,B对A的依赖率ηB=n1/n2,依赖率反映的是一个图对另一个图的依赖程度,依赖率越大,表示依赖程度越大,反之亦然,定义4:耦合度用COU表示假设子图A中的节点与子图B中的节点存在的边的条数为e1条,A对B的依赖率为ηA,那么A对B的耦合度为COUA=e1*ηA;假设子图B中的节点与子图A中的节点存在的边的条数为e2,B对A的依赖率为ηB,那么B对A的耦合度为COUB=e2*ηB,步骤14:将所有的服务操作的类型都转化为XML格式的,Web服务在数据传输与显示的时候都是基于XML的,将类型转化成XML格式有助于高效传输和正确显示,步骤15:Web服务平台会为每一个服务生成代理服务,用户输入某个服务运行时的参数,然后Web服务平台的客户端将此参数封装进SOAP请求消息中,将SOAP请求消息打包成HTTP的包,使用HTTP协议传输到服务端,服务端进行解析取出参数,传递给服务运行,将运行的结果封装到SOAP反馈消息中,同样是用HTTP协议传输给客户端,客户端解析得到服务的运行结果,步骤16:用户向服务平台输入需要发现某类服务的特征,可以是服务的名字、服务的接口标识值tModelKey、服务的描述等,然后Web服务平台就会在服务注册表中进行搜索,找到最合适的一个服务,之后就将这个服务作为切片节点,对步骤12中的服务依赖图SDG进行切片,生成切片后的该服务的依赖子图,依赖子图中记录的服务就是服务发现的结果,步骤17:调用步骤16中发现的服务,输入中服务的参数,Web服务平台就会调用步骤15中的代理服务,最终返回服务调用的结果,完成服务发现后对服务的调用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201010204709.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种节水龙头
- 下一篇:带过滤装置的风机启动阀