基于行为一致条件下进行服务发现和替换方法

文档序号:6571831阅读:178来源:国知局
专利名称:基于行为一致条件下进行服务发现和替换方法
技术领域
本发明涉及面向服务的应用中服务的发现和替换技术,尤其是对服务的行为进行描述及在行为一致下进行服务发现和替换的方法。
二、背景领域 面向服务的软件开发近年来发展迅速并受到软件产业界和学术界越来越多的关注。面向服务的架构SOA中包含三个不同的角色,服务提供者(ServicesProvider),服务使用者(Services Requester)和服务注册者(ServicesRegistries).服务提供者发布服务描述(Services description)到服务注册者中,服务使用者根据特定的服务描述从服务注册者中查询服务提供者,服务注册者返回给服务请求者一个符合服务描述的服务提供者的引用供其选择和绑定。在这个过程中,传统的服务描述主要关注服务的接口和静态属性信息,服务查找和替换时,通过精确的字段值或是语义的相似性匹配查找服务实现,这样可以保证服务发现时的接口一致性。但是由于缺乏对服务行为的有效描述,可能会导致服务运行时的功能性属性的不匹配,如使用服务时使用者对服务的调用序列与该服务的行为即其外部可见的操作序列不一致,则有可能引起运行时刻的错误。
为了解决该问题,要求在对服务进行描述的时候考虑服务的行为描述,并在服务发现、替换等各个阶段进行服务一致性的综合判断,以更好地实现面向服务应用的强壮性,有效性,和准确性。

发明内容
本发明的目的是针对现有的服务注册、查找、替换机制的不足,提供基于行为一致条件下服务的发现和替换方法,对服务增加行为描述,在服务发现和替换时,在行为一致的准则下进行,以提高面向服务应用中服务的使用安全。
为实现所述目的,本发明通过以下步骤来实现 步骤一服务提供者将服务注册到服务注册器中,并在注册时提供服务的行为描述; 步骤二基于服务发现时的行为一致性规则,将满足服务使用者行为需求的服务提供给使用者; 步骤三基于服务替换时的行为一致性规则,用新服务替换掉原有的服务。
步骤一中,服务行为的描述,是通过服务行为模型给出的。行为模型定义了一个服务的合法的操作序列,该序列也是这个服务合法行为的一种约束,每个服务的调用者都必须在调用服务时遵守该服务的行为约束。采用了一种Petrinet的变体WF-net作为行为模型的形式化方法.其形式化定义如下 行为模型服务S的行为模型BMs=(P,T,F,i,o,TM)是一个基于WF-net定义的Petri net的变体,BMs是一个WF-net当且仅当如下条件成立. ●P为BMs库所集合. ●T为BMs变迁集合,且P∩T=φ. ●F为BMs的弧线集合,且F∈(P×T)∪(T×P). ●i是BMs的源库所,满足不存在任何t∈T,使得(t,i)∈F. ●o是BMs的汇结库所,满足不存在任何t∈T,使得(o,t)∈F. ●TMT→Ms∪{ε},是一个标号映射函数。即将BMs中每一个变迁映射为服务S所具有的一个接口方法m,如果没有对应的接口方法可供映射,则设置为ε,如果接口方法m被连接到了T中多个变迁,将会给每个变迁所对应的同一个接口方法m添加一个唯一的下标,记为mi。
如果在BMs中加入一个新的变迁t*,那么所得到的扩展后的Petri网是强联通的。
基于行为模型对服务的行为进行描述,并以XML文档的格式予以保存,在服务注册时,将该文档与服务实现本身一起注册到服务注册器中;在服务发现和替换时,行为一致性的检查也是基于该xml文档进行。文档形式如下 步骤二和步骤三中,使用到行为一致性规则,为服务发现时的行为调用一致性规则和服务替换时的行为观察一致性规则。其中 服务发现行为调用一致性规则考虑在服务发现时服务行为匹配的情况,则服务实现SS能够满足服务请求者提出的服务规范SR,当且仅当行为模型BMSS与行为模型BMSR调用一致.一个行为模型BMs′与另一个行为模型BMs调用一致的条件是当LMSBMsLMSBMs′成立.LMBMs是一个服务S所具有的所有合法接口方法序列. 服务替换时行为观察一致性规则考虑在服务替换时服务行为匹配的情况,则新的服务实现SSnew能够与老的服务实现SSold在替换时满足行为一致,当且仅当行为模型BMSSold与行为模型BMSSnew观察一致.一个行为模型BMs′与另一个行为模型BMs观察一致的条件是当(LMSBMs′↑Ms)LMSBMs成立.LMSBMs′↑Ms的含义是将每个合法方法序列lmSBMs′∈LMSBMs′在顺序一致的情况下只选取包含Ms的成员后所组成的新的方法序列的集合。Ms是老的服务中所有方法的集合。
步骤一中,支持行为的注册的具体过程为,服务提供者通过开发环境开发所提供的服务,对服务予以代码实现,并通过图形化的工具对每个服务的行为进行描述,服务的行为图中包含了服务的每一个功能及各个功能之间的执行次序。该图形化工具是基于行为模型的,并可以自动将用户绘制的行为图保存为xml文件格式。行为描述完成后,就可以将服务注册到服务注册器中。如图4和图5中的步骤1所示。服务注册器接收到服务注册信息时,对服务的行为描述进行保存,并保存指向该服务的引用。
步骤二中,行为一致下服务发现的具体过程为,服务使用者使用开发环境中的图形工具绘制所需服务的行为图,提供对所需服务的行为需求,然后在服务平台中进行查找,如图4中的步骤2所示;服务平台接受到服务查找请求后,在服务注册器中进行查找,图4中步骤3所示;然后服务注册器将已注册服务的行为与使用者所需服务的行为进行一致性检验,图4中步骤4所示;最后将检验结果一致的服务的引用提供给使用者,建立使用者和服务之间的绑定,如图4中步骤5所示。以上查找步骤完成之后,使用者即可以使用所获得的服务。
步骤三中,行为一致下服务替换的具体过程为,开发者开发新的服务,对其行为进行描述,并向服务平台提出服务替换请求,如图5中步骤2所示;服务平台接受到服务替换请求,对新服务的行为与原有服务的行为进行一致性检查,图5中步骤3所示;如二者一致则进行服务替换,用新服务代替原有服务,图5中步骤4所示。替换过程完成后,原有服务的使用者可以不受任何影响的使用替换后的新服务。
从服务的开发并注册到服务注册器、以及进行服务查找和替换的整个场景在图6中予以展现。支持行为一致的服务发现和替换的服务平台包括两部分,即开发环境和运行时环境。其中开发环境提供了一个图形化的开发工具,服务提供者或服务使用者可以通过该工具,用图形化的方式对服务的行为进行描述,并以该行为描述将服务注册到服务注册器中,或使用该行为描述来查找需要的服务。运行时环境由OSGi框架层、扩展中间件层和应用层三部分组成。其中OSGi框架层提供了服务注册器,支持基本的服务注册、查找和替换功能,并负责对服务的管理,以及对运行时刻服务进行监控;扩展中间件层是对OSGi层增添行为属性,通过该层来实现支持行为的服务注册、查找和替换;应用层则展现了服务实体的呈现形式,在此采用了OSGi中的bundle作为服务的载体,一个bundle可以提供零到多个的服务,也可以使用别的bundle所提供的服务。


图1总体步骤图, 图2图1中服务发现步骤的流程图, 图3图1中服务替换步骤的流程图, 图4增加了行为描述后的面向服务应用服务发现示意图, 图5增加了行为描述后的面向服务应用中服务替换示意图, 图6支持行为一致的服务发现和替换的服务平台示意图, 图7具体实施例中服务发现所涉及到的服务行为图, 图8具体实施例中服务替换所涉及到的服务行为图。
五、具体实施例 以下通过具体的实施例来对本发明的技术方案进行详细的说明。
为了提供在线数据加密功能,服务提供者开发了一个服务S1,用DES算法对数据进行加密。其加密步骤为数据初始化,用DES算法加密,加密完成后做结束工作。服务开发好后,服务提供者对服务的行为进行描述,获得的行为图如图7中S1所示,并将其注册到服务注册器中。
同时另外一个服务提供者也开发了一个数据加密服务S2,同样使用DES算法加密。其加密过程是数据初始化,用DES算法加密,加密的同时记录日志,当加密与日志记录都完成后做结束工作。其行为图如图7中S2所示。
当有用户要使用一个加密服务服务,需要在服务注册器中进行服务查找,获得所需要的服务,然后使用。由于该用户只是需要简单的数据加密,因此其指定所需加密服务的行为应是,数据初始化,然后用DES加密算法对数据加密,最后做结束工作,如图7中Require所示。基于该用户的需求,服务平台在服务发现的过程中,将已注册服务S1和S2的行为与用户指定的行为需求进行一致性检查。以下为简单起见,用init表示数据初始化,desEncrypt表示DES加密,log表示日志记录,aesEncrypt表示AES加密,doFinal表示结束工作。
首先根据服务行为图得到各个服务的方法执行序列 LMSRequire{<init>,<init,desEncrypt>,<init,desEncrypt,doFinal>} LMSS1{<init>,<init,desEncrypt>,<init,desEncrypt,doFinal>} LMSS2{<init>,<init,desEncrypt>,<init,log>,<init,desEncrypt,log>,<init,log, desEncrypt>,<init,desEncypt,log,doFinal>,<init,log,desEncrypt,doFinal>} 根据行为调用一致性规则,LMSRequireLMSS1而LMSRequire¢LMSS2,因此S1与Require行为一致,服务S1满足用户对服务的行为需求,可以返回给用户使用,而S2虽然也提供了同样的加密功能,但其行为与用户需求不一致,不能返回给用户使用。
上述是服务发现时,本专利的实施情况,以下给出服务替换时本专利的实施情况。服务S1的提供者开发了一个新的加密服务S3,该服务增加了AES算法加密功能,并想用其替换掉原有的S1服务,S3的行为描述如图8中S3所示。
服务平台接收到该服务替换请求后,对新服务的行为和原有服务的行为进行行为一致性检查,首先获得新服务S3和原有服务S1的方法执行序列 LMSS1{<init>,<init,desEncrypt>,<init,desEncrypt,doFinal>} LMSS3{<init>,<init,desEncrypt>,<init,aesEncrypt>, <init,desEncrypt,doFinal>,<init,aesEncrypt,doFinal>} 然后基于服务替换一致性规则进行检查 MS1{init,desEncrypt,doFinal} LMSS3↑MS1={<init>,<init,desEncrypt>, <init,desEncrypt,doFinal>,<init,doFinal>} 可见LMSS3↑MS1¢LMSS1,因此新服务S3不能替换原有服务 而另外一个新的加密服务S4,其功能与S1类似,采用了DES加密算法,只是在加密的过程中增加了同时记录日志的功能,其行为如图8中S4所示。当服务提供者提供了该服务来替换S1时,根据行为替换一致性规则 LMSS4{<init>,<init,desEncrypt>,<init,log>,<init,desEncrypt,log>,<init,log, desEncrypt>,<init,desEncypt,log,doFinal>,<init,log,desEncrypt,doFinal>} LMSS4↑MS1={<init>,<init,desEncrypt>,<init,desEncrypt,doFinal>} 可见,LMSS4↑MS1LMSS1,因此可以用服务S4替换掉原有服务S1。
权利要求
1.一种基于行为一致条件下进行服务发现和替换的方法,其特征在于包括如下步骤
步骤一服务提供者将服务注册到服务注册器中,并在注册时提供服务的行为描述;
步骤二基于服务发现时的行为一致性规则,将满足服务使用者行为需求的服务提供给使用者;
步骤三基于服务替换时的行为一致性规则,用新服务替换掉原有的服务。
2.根据权利要求1所述的基于行为一致条件下进行服务发现和替换的方法,其特征在于,步骤一中服务行为的描述,根据服务的行为模型进行,行为模型定义了一个服务的合法的操作序列,该序列采用了一种Petri net的变体WF-net作为行为模型的形式化方法,
行为模型 服务S的行为模型BMs=(P,T,F,i,o,TM)是一个基于WF-net定义的Petri net的变体,BMs是一个WF-net当且仅当如下条件成立.
●P为BMs库所集合
●T为BMs变迁集合,且P⌒T=φ
●F为BMs的弧线集合,且F∈(P×T)(T×P)
●i是BMs的源库所,满足不存在任何t∈T,使得(t,i)∈F
●o是BMs的汇结库所,满足不存在任何t∈T,使得(o,t)∈F
●TMT→Ms{ε},是一个标号映射函数,即将BMs中每一个变迁映射为服务S所具有的一个接口方法m,如果没有对应的接口方法可供映射,则设置为ε,如果接口方法m被连接到了T中多个变迁,将会给每个变迁所对应的同一个接口方法m添加一个唯一的下标,记为mi;
如果在BMs中加入一个新的变迁t*,那么所得到的扩展后的Petri网是强联通的。
3.根据权利要求1或2所述的基于行为一致条件下进行服务发现和替换的方法,其特征在于,所述步骤二中服务发现时的行为调用一致性规则是考虑在服务发现时服务行为匹配的情况,则服务实现SS能够满足服务请求者提出的服务规范SR,当且仅当行为模型BMss与行为模型BMSR调用一致.一个行为模型BMs′与另一个行为模型BMs调用一致的条件是当成立.LMSBMs是一个服务S所具有的所有合法接口方法序列.
4.根据权利要求1或2所述的基于行为一致条件下进行服务发现和替换的方法,其特征在于,所述步骤二中,行为一致下服务发现的过程为服务使用者提供对所需服务的行为需求,服务平台接受到服务查找请求后,将已注册服务的行为与使用者所需服务的行为进行一致性检验,然后将检验结果一致的服务返回给使用者。
5.根据权利要求1或2所述的基于行为一致条件下进行服务发现和替换的方法,其特征在于步骤三中服务替换时行为观察一致性规则是考虑在服务替换时服务行为匹配的情况,则新的服务实现SSnew能够与老的服务实现SSold在替换时满足行为一致,当且仅当行为模型BMssold与行为模型BMSSnew观察一致;一个行为模型BMs′与另一个行为模型BMs观察一致的条件是当成立;LMSBMs′↑Ms的含义是将每个合法方法序列在顺序一致的情况下只选取包含Ms的成员后所组成的新的方法序列的集合。
6.根据权利要求1或2所述的基于行为一致条件下进行服务发现和替换的方法,其特征在于,所述步骤三中,行为一致下服务替换的过程为服务平台接受到服务替换请求,对新服务与原有服务行为进行行为一致性检查,如二者一致则进行服务替换,用新服务代替原有服务,否则放弃。
全文摘要
本发明公开了一种在面向服务的应用中,基于行为一致条件下进行服务发现和替换的方法。首先,服务提供者将服务注册到服务注册器,并在注册时提供服务的行为描述,即该服务的合法操作序列;服务使用者在查找服务时,给出所需服务的行为,即对服务的操作的调用序列,然后将已注册服务与所需服务进行行为一致性检验,将满足使用者行为需求的服务返回给使用者;当有新的服务到达并替换掉原有的服务时,将新服务的行为与原有服务的行为进行匹配,如二者一致则进行替换。本发明在服务查找和替换过程中,增加行为的约束,避免使用者使用服务时的操作序列与服务本身所允许的合法操作序列不同而导致错误的情况,进而提高了面向服务应用的安全性和可靠性。
文档编号G06F17/30GK101132402SQ20071002561
公开日2008年2月27日 申请日期2007年8月8日 优先权日2007年8月8日
发明者建 吕, 昊 胡, 李兴宇 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1