发明内容
(一)要解决的技术问题
有鉴于此,本发明的一个目的在于提供一种面向服务体系结构的服务调试装置,为面向服务计算和网格计算的在线服务调试提供一种简单、通用和有效的处理机制。
本发明的另一个目的在于提供一种面向服务体系结构的服务调试方法,为面向服务计算和网格计算的在线服务调试提供一种简单、通用和有效的处理模型。
(二)技术方案
为达到上述一个目的,本发明提供了一种面向服务体系结构的服务调试装置,该装置包括:
调试角色识别处理单元,用于验证被调试服务调用的调试角色,读取并保存调试角色重点服务调用标识信息;
调试命令信息处理接口单元,用于根据接收自服务调试前端的调试信息,调用调试信息管理器和表达式计算器;
服务行为生成器,用于构造服务行为抽象描述信息及服务行为抽象描述信息与服务调用标识之间的映射,并将构造的信息及映射保存到服务调试数据存储单元;
调试信息管理器,用于根据接收自调试命令信息处理接口单元的调用信息,查询或更新服务调试数据存储单元中保存的调试信息;
表达式计算器,用于计算或更新调试信息的表达式值,并根据计算出的表达式值向客户端发送服务调试命令响应信息;
服务调试数据存储单元,用于保存被调试服务执行过程中服务行为抽象描述信息、调试信息以及服务上下文信息分别与服务调用标识之间的映射关系。
所述服务行为抽象描述信息由服务行为生成器根据当前服务上下文信息动态构造,包括行为索引值idx,作用范围scp,行为调用类cln和行为输入选项值opt四个部分。
所述服务上下文信息的结构包括:SC=(DSO,RRM,RPE,AR,M0),其中,
DSO用于给出被调用服务和操作的描述;
RRM用于给出当前的请求和响应消息;一个消息包括以下部分:主消息部分、附加数据和消息对象的方法,表示为RRM=(R,A,M1),其中,R为主请求消息或主响应消息;A为零个或多个服务行为的附加数据;M1为一组与处理R和A有关的成员,包括提供基本的消息处理的信息和接口,其全体表示为:∑Mi;
RPE用于指向服务调用处理过程中本地引擎的参照;该引擎提供通用的服务调用处理功能;
AR用于给出一组服务角色;与服务行为执行相关服务角色在服务调用处理过程中保持恒定,对于调试角色而言,其中包括相关的服务调用标识信息;
M0为一组与处理一个服务调用实例中DSO,RRM,RPE和AR相关的成员;服务上下文的某些属性和成员能够以自省的方式响应查询或更改调试命令请求,查询或更改的方法通过带有正确表达式的调试命令请求来实现。
所述服务行为生成器将构造的信息及映射保存到服务调试数据存储单元,其映射关系以被调试服务调用标识为主键。
所述调试信息管理器进一步用于更新被调试服务的执行状态,设置或删除服务行为断点,并将相应的调用状态和断点信息及其映射保存到到服务调试数据存储单元,其映射关系以被调试服务调用标识为主键。
所述表达式计算器进一步用于依据当前服务上下文,以自省的方式响应查询或更改调试命令请求。
为达到上述另一个目的,本发明提供了一种面向服务体系结构的服务调试方法,应用于包括调试角色识别处理单元、调试命令信息处理接口单元、服务行为生成器、调试信息管理器、表达式计算器和服务调试数据存储单元的服务调试装置,该方法包括:
A、服务调试装置接收服务调用请求消息,验证被调试服务调用的调试角色,如果调试角色得到验证,则执行步骤B;
B、服务调试装置读取并保存调试角色重点服务调用标识信息,构造服务行为抽象描述信息及服务行为抽象描述信息与服务调用标识之间的映射;
C、接收来自服务调试器前端的服务调试命令请求消息,服务调试装置验证该服务调试命令请求消息是否为调试信息管理命令请求,如果是,则执行步骤D;否则,执行步骤E;
D、服务调试装置根据相应服务调用标识调用调试信息管理器,查询或更新服务调试数据存储单元中保存的调试信息,并执行步骤H;
E、服务调试装置验证该服务调试命令请求消息是否为查询和更改命令请求,如果是,则执行步骤F;否则,执行步骤G;
F、服务调试装置根据相应服务调用标识调用表达式计算器,计算或更新调试信息的表达式值,并执行步骤H;
G、向客户端发送错误响应消息,并执行步骤I;
H、服务调试装置发送服务调试命令响应消息到客户端;
I、服务调试装置判断被调试服务是否继续执行,如果是,则执行步骤J;否则,重新执行步骤C。
J、服务调试装置清理相关映射表中与该服务调用标识有关的映射信息。
所述步骤A进一步包括:如果调试角色无法得到验证,则调用正常服务请求消息处理过程。
步骤D中所述服务调试装置根据相应服务调用标识调用调试信息管理器,查询或更新服务调试数据存储单元中保存的调试信息包括:
D1、对于服务状态设置请求,更新状态映射表中服务调用状态;
D2、对于断点使能请求,设置并修改断点使能映射表;
D3、对于行为断点设置请求,修改行为断点映射表。
步骤F中所述服务调试装置根据相应服务调用标识调用表达式计算器,计算或更新调试信息的表达式值包括:
F1、对于服务行为描述查询请求,查询服务行为映射表;
F2、对于断点查询请求,查询断点映射表;
F3、对于服务上下文元素查询请求,查询服务上下文映射表,并根据查询到的服务请求上下文和查询表达式计算相应的元素值;
F4、对于服务上下文元素更改请求,根据查询到的服务请求上下文和表达式计算值修改相应的元素。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、与传统的调试技术相比,本发明提供的面向服务体系结构的服务调试装置及方法,以非入侵及共存的方式执行,更有利于减少调试开销对系统性能的影响,为面向服务计算和网格计算的在线服务调试提供一种简单、通用和有效的处理模型和机制。
2、本发明提供的面向服务体系结构的服务调试装置及方法,为服务调试提供了一个更高层的抽象,并简化了万维网和网格规模下服务调用过程的描述。
3、本发明提供的面向服务体系结构的服务调试装置,采用了通用服务调试命令接口,通用服务调试命令接口使得该装置的调用与普通服务调用相一致,并以非入侵和共存的工作方式进行服务调用的调试。
4、利用本发明,能够动态生成和跟踪服务调用行为,对基于服务调用标识和行为描述的服务状态和行为断点进行管理,计算基于服务上下文的表达式。服务端的调试信息管理消除了在线服务调试中可能造成的对其它正常服务调用的不利影响,表达式计算器提供了准确的查询和修改当前服务上下文中相关元素的计算方法。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,图1为本发明提供的面向服务体系结构的服务调试装置的结构框图,该服务调试装置包括调试角色识别处理单元10、调试命令信息处理接口单元11、服务行为生成器12、调试信息管理器13、表达式计算器14和服务调试数据存储单元15。
其中,调试角色识别处理单元10用于验证被调试服务调用的调试角色,读取并保存调试角色重点服务调用标识信息。
调试命令信息处理接口单元11用于根据接收自服务调试前端的调试信息,调用调试信息管理器13和表达式计算器14。
服务行为生成器12用于构造服务行为抽象描述信息及服务行为抽象描述信息与服务调用标识之间的映射,并将构造的信息及映射保存到服务调试数据存储单元15。
调试信息管理器13用于根据接收自调试命令信息处理接口单元11的调用信息,查询或更新服务调试数据存储单元15中保存的调试信息。
表达式计算器14用于计算或更新调试信息的表达式值,并根据计算出的表达式值向客户端发送服务调试命令响应信息。
服务调试数据存储单元15用于保存被调试服务执行过程中服务行为抽象描述信息、调试信息以及服务上下文信息分别与服务调用标识之间的映射关系。
本发明的工作原理及其特征将从以下描述变得明显,或可通过如下所述的对本发明的实践而了解。
在面向服务体系结构中,服务调用由一组有序的抽象的服务行为来描述。在不同的执行环境中,由于服务配置、行为选项和调用方式的不同,使得这种服务调用描述在不同程度上也存在差异。因此对于每一次服务调用往往需要一种装置根据服务上下文动态地生成相关服务行为的描述,特别是需要在对该服务调用进行跟踪、控制、观察或定位出现的错误情况下。
服务调试信息是建立在服务上下文基础上的。服务上下文信息的结构定义为:SC=(DSO,RRM,RPE,AR,M0),其中,
-DSO:给出被调用服务和操作的描述;
-RRM:给出当前的请求和响应消息。一个消息包括以下部分:主消息部分、附加数据和消息对象的方法,表示为RRM=(R,A,M1),其中,R为主请求消息或主响应消息(如SOAP消息);A为零个或多个服务行为的附加数据;M1为一组与处理R和A有关的成员,包括提供基本的消息处理的信息和接口,如属性,域,方法等,其全体表示为:∑Mi。
-RPE:指向服务调用处理过程中本地引擎的参照。该引擎提供通用的服务调用处理功能,如服务注册,行为描述映射,装载器等等。
-AR:给出一组服务角色。与服务行为执行相关服务角色在服务调用处理过程中保持恒定,如,系统角色,有状态调试角色等等。对于调试角色来说,其中包括相关的服务调用标识信息。
-M0:一组与处理一个服务调用实例中DSO,RRM,RPE和AR相关的成员。服务上下文的某些属性和成员能够以自省的方式响应查询或更改调试命令请求,查询或更改的方法通过带有正确表达式的调试命令请求来实现。
调试角色识别处理单元在服务端实现对服务上下文中调试角色的处理。对于调试请求服务调用来说,读取并保存调试角色中的服务调用标识信息。
服务行为生成器根据当前服务上下文动态创建被调试服务调用的本地行为描述信息。每个行为描述信息由四部分组成:行为索引值(idx),作用范围(scp),行为调用类(cln)和行为输入选项值(opt),可表示为bd=(idx,scp,cln,opt)。服务行为的作用范围按照全局配置,服务配置和操作配置分为:全局请求(GlobalRequest),全局响应(GlobalResponse),服务请求(ServiceRequest),服务响应(ServiceResponse),传输相关行为(Transport)和操作相关行为(Operation)。服务行为生成器首先通过服务上下文中的本地服务引擎的参照(RPE),然后根据该引擎中的被调用服务(DSO)的配置按顺序生成服务行为跟踪的描述信息,最后以被调试服务调用标识(dsid)为主键将该描述信息映射到相关的全局映射表中;即服务行为生成器将构造的信息及映射保存到服务调试数据存储单元,其映射关系以被调试服务调用标识为主键。
以下为服务行为生成器创建服务行为跟踪的伪代码:
调试信息管理器负责更新被调试服务的执行状态,设置或删除服务行为断点,并以唯一服务调用标识(dsid)为主键映射相应的调用状态和断点信息。即调试信息管理器进一步用于更新被调试服务的执行状态,设置或删除服务行为断点,并将相应的调用状态和断点信息及其映射保存到到服务调试数据存储单元,其映射关系以被调试服务调用标识为主键。对于被调试的服务调用来说,在每个服务行为的执行边界检查其服务调用状态和断点设置,并依此决定下一步的执行策略,如继续执行,单步,挂起,重试等等。服务行为的索引值可作为行为断点设置的标识。
以下为服务调试信息管理器中行为断点设置伪代码:
如表1所示,表1为调试信息管理器中定义的服务控制状态。
表1
表达式计算器依据当前服务上下文,以自省的方式响应查询或更改调试命令请求。当前服务上下文的方法(∈M0∪∑Mi)可以被带有正确参数的调试命令请求所调用。在服务调试装置中,查询和更改服务上下文元素的表达式语法表示为:
QUExpr→Empty|Variable|QUExpr Dot Variable|QUEqu
Dot→.
Empty→null
QUEqu→QUMark QUExpr Equal ConstString
Equal→=
QUMark→[Minus QUType|ClearMark]
QUType→boolean|byte|integer|char|long|float|double|string|list
ClearMark→Minus ClearString
ClearString→clear
Variable→Identifier
以下为表达式计算器处理过程的伪代码:
表达式计算器首先获得服务上下文的声明的全部元素(∈M0)并设置可访问属性为真;然后分析处理表达式(expr),如果表达式左部(left ofexpr)为该上下文中元素的元素(以Dot区分),则逐级计算出相应对象声明的全部元素,并设置可访问属性为真;具体命令请求处理如下:
(1)对于服务上下文查询命令,通过元素名比较获得该元素的当前值,并经相应的输出处理后,响应该查询命令。
(2)对于服务上下文更改命令,表达式计算器首先确定元素的类型,然后根据该元素的类型对表达式右部(right of expr)字符串进行类型转换,最后将转换后的结果赋值给该元素。
(3)对于服务上下文中的方法调用,具体操作过程如下:
过程1:如果所调用的方法,调用参数不为空,则处理对应的调用参数设置,并以服务调用标识(dsid)为主键映射该参数到指定的全局映射表中,对应的参数存储顺序与方法调用参数顺序相同;
过程2:处理对应服务上下文中方法调用请求,并返回处理响应结果。
过程3:处理过程结束后,清理参数映射表中相关的调用参数。
在服务调试装置中,表达式计算器能够准确计算和处理当前服务上下文中元素,进而支持对这些元素的跟踪、观察和更改处理。
对于被调试的服务调用,服务调试装置作为一个非入侵的系统服务调用在被调试服务配置中出现,并提供通用的调试命令接口。调试命令接口为每一个控制、查询或修改调试命令请求提供对应的操作,该操作与调试命令具有相同的名称,并且在调试命令消息到达时调用服务调试装置的功能。这种系统调试命令接口与普通的服务以一种共存的方式在同一服务执行环境中存在。其控制操作包括:
(1)服务状态操作:设置或修改服务状态,如单步执行,下一步,继续,停止,运行等等。
(2)断点操作:设置或删除行为断点,使能或禁止断点操作。
(3)变更操作:变更服务行为的执行顺序,如跳过,补偿,重试。
查询或修改操作包括:
(1)相关元素操作:获得或设置相关服务上下文的元素信息,设置或清除参数,方法调用。
(2)跟踪操作:获得或保存行为跟踪信息。
只有当一个包含调试请求的服务调用消息到达时才能打开这种服务调试装置,并构造相关的服务调试映射。这些映射以唯一的服务调用标识(dsid)来区分,其控制和影响范围仅限于对应的被调试服务调用。
作为服务调试器后端的关键技术之一,服务调试装置动态生成和跟踪服务调用行为的抽象描述;在服务端管理对应服务调用标识的服务调试信息;根据服务上下文计算相应的服务调试请求表达式;并且提供与普通服务调用相一致的服务调试命令接口。
基于图1所述的面向服务体系结构的服务调试装置的结构框图,以及上述对本发明原理及具体实践的描述,以下对本发明提供的面向服务体系结构的服务调试方法进行详细说明。
如图2所示,图2为本发明提供的面向服务体系结构的服务调试方法的实现流程图,应用于包括调试角色识别处理单元、调试命令信息处理接口单元、服务行为生成器、调试信息管理器、表达式计算器和服务调试数据存储单元的服务调试装置,其特征在于,该方法包括:
步骤201:在服务端,服务调试装置接收到包含调试请求的服务调用请求消息,验证被调试服务调用的调试角色,如果调试角色得到验证,则执行步骤202;否则,调用正常服务请求消息处理过程,并结束。
步骤202:服务调试装置读取并保存调试角色重点服务调用标识信息,构造服务行为抽象描述信息及服务行为抽象描述信息与服务调用标识之间的映射。
步骤203:服务调试装置接收来自服务调试器前端的服务调试命令请求消息,验证该服务调试命令请求消息是否为调试信息管理命令请求,如果是,则执行步骤204;否则,执行步骤205。
步骤204:服务调试装置根据相应服务调用标识调用调试信息管理器,查询或更新服务调试数据存储单元中保存的调试信息,并执行步骤208;
在本步骤中,所述服务调试装置根据相应服务调用标识调用调试信息管理器,查询或更新服务调试数据存储单元中保存的调试信息包括:
S1、对于服务状态设置请求,更新状态映射表中服务调用状态;
S2、对于断点使能请求,设置并修改断点使能映射表;
S3、对于行为断点设置请求,修改行为断点映射表。
步骤205:服务调试装置验证该服务调试命令请求消息是否为查询和更改命令请求,如果是,则执行步骤206;否则,执行步骤207。
步骤206:服务调试装置根据相应服务调用标识调用表达式计算器,计算或更新调试信息的表达式值,并执行步骤208;
在本步骤中,所述服务调试装置根据相应服务调用标识调用表达式计算器,计算或更新调试信息的表达式值包括:
S1′、对于服务行为描述查询请求,查询服务行为映射表;
S2′、对于断点查询请求,查询断点映射表;
S3′、对于服务上下文元素查询请求,查询服务上下文映射表,并根据查询到的服务请求上下文和查询表达式计算相应的元素值;
S4′、对于服务上下文元素更改请求,根据查询到的服务请求上下文和表达式计算值修改相应的元素。
步骤207:向客户端发送错误响应消息,并执行步骤209。
步骤208:服务调试装置发送服务调试命令响应消息到客户端。
步骤209:服务调试装置判断被调试服务是否继续执行,如果是,则重新执行步骤203;否则,执行步骤210。
步骤210:服务调试装置清理相关映射表中与该服务调用标识有关的映射信息。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。