一种服务调试命令发射器及其处理方法

文档序号:7968525阅读:124来源:国知局
专利名称:一种服务调试命令发射器及其处理方法
技术领域
本发明涉及面向服务体系结构的服务调试、监控和测试处理技术领域,尤其涉及一种服务调试命令发射器及其处理方法。
背景技术
万维网服务(Web Services)通过标准的接口和协议为分布在网络上的业务处理过程提供了开发和执行的基础。同时,基于这些良构的接口和特殊约定开发的网格服务(Grid Services)得到了广泛的关注,特别是那些与服务实例管理相关的行为。总体上,万维网服务是一种无状态服务,如W3C定义;而网格服务则是一种有状态的服务。万维网和网格服务的高层次抽象为服务开发者和编程人员屏蔽了大量的底层技术细节。一些研究机构和业界已经提供了不同的技术实现,如Web Services-Axis,GlobusToolkit,Vega GOS等等。随着面向服务计算的普及,服务开发者和编程人员也提出了对服务调试技术和工具的需求。
虽然现有编程语言调试技术及其扩展(如Sun Microsystems的JDI,IBM的基于JDI技术的脚本调试技术,Microsoft的XML Web ServiceDebugging)得到了很好的应用,但是由于它们没有很好地支持对服务调用过程的调试,所以编程人员仍在继续使用这些技术和工具在开发机器或演示机器上调试服务应用。作为需求工程研究中重要问题之一,在运行时验证一个软件系统是否满足设计要求已经得到广泛的共识。其主要原因是即使一个演示的软件系统在部署前能够满足要求,在运行时这些需求也可能被破坏。面向服务计算面临同样的问题,特别是在万维网规模下,一个可动态部署服务的执行环境中,当很难或甚至无法启动传统的调试模式时。在这种情况下现有调试方法是无法正常工作的,因为执行环境不具备或者没有启动相关调试所需要的调试环境。
面向服务体系结构是一个组件模型,本质上是一个相互通信的服务集,这种通信可能是简单的数据传送或者两个以上的服务组合活动。服务是由资源(如数据,程序或设备),服务逻辑和消息处理构成的,当消息到达一个服务时激活使用资源的服务逻辑。服务调用基于分布式环境下消息交换的标准协议。虽然面向服务系统没有提供像类,对象,方法,远程调用的抽象,但是有基于消息处理过程的概念。消息处理机制提供一种支持服务行为的框架,这些行为包括节点的角色,单一计算单元的语法和语义,交换模式,可靠性,安全性,相关关联,路由,服务提供者等等。因此,更有效的服务调试方法可以基于这种行为框架。侦测和定位错误或故障的方法需要开发者或编程人员观察和分析出现问题的服务行为,然后检查被观察的行为是否与所希望的行为相一致。开发者或编程人员关注这些服务行为并采用不同的调试策略与这些行为进行交互,同时理解所希望的服务行为。
传统的源代码调试模式是以一对一的方式通过专用规范和通信协议来完成程序的调试工作;这意味着必须强制地启动和运行被调试程序。对于服务计算来说,这种强制的采用专用规范和通信协议的调试方式无法支持万维网和网格服务计算环境下按需的在线服务调试,即无法在线进入这种调试。因此,服务调试前端需要提供遵守服务计算协议调用的服务调试命令发射器和符合服务计算规范的服务调试命令请求处理方法。

发明内容
(一)要解决的技术问题有鉴于此,本发明的一个目的在于提供一种服务调试命令发射器,为服务计算和网格计算的在线调试提供一种简单、通用和有效的服务调试命令请求处理机制。
本发明的另一个目的在于提供一种对服务调试命令进行处理的方法,为服务计算和网格计算的在线调试提供一种简单、通用和有效的服务调试命令处理机制。
(二)技术方案为达到上述一个目的,本发明提供了一种服务调试命令发射器,该发射器包括调试命令输入/输出处理单元,用于将外部设备输入的调试命令行输出给调试命令验证和分析处理单元,并将调试命令验证和分析处理单元返回的调试处理结果输出给外部显示设备进行显示;调试命令验证和分析处理单元,用于判断调试命令输入/输出处理单元输入的调试命令行的类型,将帮助命令输出给帮助命令处理单元,将查询和修改命令输出给查询和修改命令处理单元,将控制命令输出给控制命令处理单元;帮助命令处理单元,用于根据调试命令验证和分析处理单元输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给显示设备进行显示;查询和修改命令处理单元,用于判断调试命令验证和分析处理单元输入的命令类型,对于异步查询命令创建一个子线程,创建的该子线程调用调试命令消息处理单元,将查询命令输出给调试命令消息处理单元;对于同步修改命令,直接调用调试命令消息处理单元,将修改命令输出给调试命令消息处理单元;控制命令处理单元,用于将调试命令验证和分析处理单元输入的控制命令输出给调试命令消息处理单元,接收到调试命令消息处理单元返回的响应消息后,判断调试命令验证和分析处理单元输入的控制命令是否为单步命令,如果是,则将服务端地址和调试命令消息处理单元返回的行为描述发送给源代码调试启动单元;否则,将调试命令消息处理单元返回的响应消息返回给调试命令验证和分析处理单元;源代码调试启动单元,用于根据接收自控制命令处理单元的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试;调试命令消息处理单元,用于将接收自查询和修改命令处理单元的查询和修改命令、接收自控制命令处理单元的控制命令和接收自源代码调试启动单元的上下文交换命令请求消息发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元、控制命令处理单元和源代码调试启动单元。
所述查询和修改命令、控制命令和调试命令为服务调试命令,所述调试命令消息处理单元向服务端发送服务调试命令包括两种工作模式同步和异步工作模式;所述同步工作模式的发射过程,调试命令消息处理单元在接收到服务端返回的响应消息之前,不处理其它服务调试命令请求;所述异步工作模式的发射过程,调试命令消息处理单元不需等待服务端返回的响应消息,即可处理下一服务调试命令请求。
所述服务调试命令的结构包括系统调试服务地址sda、调用操作名称opn、被调试服务调用标识dsid和表达式定义expr,可表示为CF=(sda,opn,dsid,expr)四个部分;其中,系统调试服务地址sda,用于表示标准的服务调用地址,是一个服务调试环境属性,服务调试命令发射过程可通过指定的选项获得系统调试服务地址;调用操作名称opn,与服务调试命令名保持一致;被调试服务调用标识dsid,用于表示被控制的服务端服务请求,是全局唯一的,服务调试命令发射过程可通过选项获得被调试服务调用标识;表达式定义expr,用于设置、调用、查询或修改服务调试环境和远端服务上下文中的相应元素。
所述表达式在输入命令行的后部出现,空表达式表示该服务调试命令不需要输入表达式;表达式内部的元素分割符用于区分多级的服务上下文元素,出现在二元表达式的左端;等号用于表达一个等式,等式左端指定服务上下文的元素,等式右端为待修改的元素值。
所述源代码调试启动单元进一步用于在需要对迁入的服务行为进行源代码调试的情况下,根据接收自控制命令处理单元的服务端地址和相关行为描述,读取外部的源代码调试配置文件;并根据相应的配置启动本地源代码调试环境,通过服务上下文请求获得当前的服务端服务上下文消息,并在本地重新构造服务上下文和装载被迁入的服务行为;在该调试环境下执行被迁入的服务行为;使用相应的源代码调试器对该服务行为进行源代码调试;在被迁入的服务行为执行结束时,发送该服务上下文消息到服务端,并返回服务调试过程。
为达到上述另一个目的,本发明提供了一种对服务调试命令进行处理的方法,该方法包括步骤S1服务调试命令发射器读取外部设备输入的服务调试命令行,验证服务调试命令行是否为服务调试命令请求,如果是,则执行步骤S2;否则,跳转至步骤S1;步骤S2服务调试命令发射器验证服务调试命令行是否为帮助命令请求,如果是,则执行步骤S3;否则,执行步骤S4;步骤S3服务调试命令发射器调用并执行帮助处理单元后,跳转至步骤S11;步骤S4服务调试命令发射器判断服务调试命令行是否为异步服务调试命令请求,如果是,则执行步骤S5;否则,执行步骤S6;步骤S5服务调试命令发射器创建异步请求线程,并将主线程返回至步骤S1;步骤S6服务调试命令发射器调试命令消息处理单元调用控制/查询和调试命令处理过程,进行调试命令行分析,设置系统调试服务地址及其调用操作名,被调试服务调用的标识及其表达式;步骤S7服务调试命令发射器根据系统调试服务地址,确定所调用的服务调试命令请求消息处理过程,发送命令请求消息到服务器端;步骤S8服务调试命令发射器接收服务端返回的调试命令响应消息;步骤S9服务调试命令发射器判断是否需要启动源代码调试,如果需要,则执行步骤S10;否则,执行步骤S11;步骤S10服务调试命令发射器读取外部配置文件并启动可配置的源代码调试环境,从服务端获得当前服务上下文,装载并执行迁入行为,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境;步骤S11处理并显示返回结果。
步骤S1中所述外部设备输入的服务调试命令行为从调试控制台,或集成开发环境下的控制窗口输入的服务调试命令行。
该方法具体包括A、调试命令输入/输出处理单元将外部设备输入的调试命令行输出给调试命令验证和分析处理单元;B、调试命令验证和分析处理单元判断输入的调试命令行的类型;1)如果调试命令行为帮助命令,则执行步骤C;2)如果调试命令行为查询和修改命令,则执行步骤D;3)如果调试命令行为控制命令,则执行步骤E;4)否则,返回步骤A;C、调试命令验证和分析处理单元将帮助命令输出给帮助命令处理单元,帮助命令处理单元根据输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给显示设备进行显示,并返回步骤A;D、调试命令验证和分析处理单元将查询和修改命令输出给查询和修改命令处理单元,查询和修改命令处理单元判断输入的命令类型;1)如果是异步查询命令,则查询和修改命令处理单元创建一个子线程,创建的该子线程调用调试命令消息处理单元,将查询命令输出给调试命令消息处理单元,执行步骤J;2)如果是同步修改命令,则查询和修改命令处理单元调用调试命令消息处理单元,将修改命令输出给调试命令消息处理单元,执行步骤J;E、调试命令验证和分析处理单元将控制命令输出给控制命令处理单元,控制命令处理单元将输入的控制命令输出给调试命令消息处理单元;F、接收到调试命令消息处理单元返回的响应消息后,调试命令验证和分析处理单元判断调试命令验证和分析处理单元输入的控制命令是否为本地单步调试命令,如果是,则执行步骤G;否则,执行步骤I;G、控制命令处理单元将服务端地址和相关行为描述发送给源代码调试启动单元,源代码调试启动单元根据接收的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境;H、调试命令消息处理单元将接收的服务调试命令发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元、控制命令处理单元和源代码调试启动单元;如果是控制命令请求,则返回步骤F;否则执行步骤I;I、查询和修改命令处理单元和控制命令处理单元将接收的响应消息通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给外部显示设备进行显示,并返回步骤A。
(三)有益的效果从上述技术方案可以看出,本发明具有以下有益效果1、本发明提供采用标准面向服务协议的服务调试命令发射器,处理服务调试命令请求和响应消息;与传统的调试技术相比,本发明消除了在强制性调试环境中专用调试规范和协议对服务调试的限制。
2、本发明提供按照服务调试命令功能,工作模式,以及本地和远程调用的服务调试命令处理方法,该方法为服务计算和网格计算的服务调试工具的开发提供一种简单、通用和有效的服务调试命令处理模型和机制。
3、本发明提供用于控制服务端被调试服务调用行为,查询和修改被调试服务调用上下文,设置本地调试环境属性的服务调试命令集。
4、本发明提供可配置的服务行为源代码调试单元,该单元在需要对迁入服务行为进行单步源代码调试时被启动,为服务调试提供了一种在线的从消息层到源代码调试的层次化解决方案。
5、本发明提供万维网和网格服务的调试命令请求和响应消息处理过程,支持以万维网服务和网格服务接口的系统调试服务调用,解决了在服务计算和网格计算中非入侵在线调试前端设计和实现的服务调试命令消息处理问题。


图1为本发明提供的服务调试命令发射器的结构框图;图2为本发明提供的对服务调试命令进行处理的实现流程图;图3为本发明提供的对服务调试命令进行处理的具体实现流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
如图1所示,图1为本发明提供的服务调试命令发射器的结构框图,该服务调试命令发射器包括调试命令输入/输出处理单元10、调试命令验证和分析处理单元11、帮助命令处理单元12、查询和修改命令处理单元13、控制命令处理单元14、源代码调试启动单元15和调试命令消息处理单元16。
其中,调试命令输入/输出处理单元10用于将外部设备输入的调试命令行输出给调试命令验证和分析处理单元11,并将调试命令验证和分析处理单元11返回的调试处理结果输出给外部显示设备进行显示。
调试命令验证和分析处理单元11用于判断调试命令输入/输出处理单元10输入的调试命令行的类型,将帮助命令输出给帮助命令处理单元12,将查询和修改命令输出给查询和修改命令处理单元13,将控制命令输出给控制命令处理单元14。
帮助命令处理单元12用于根据调试命令验证和分析处理单元11输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元11和调试命令输入/输出处理单元10输出给显示设备进行显示。
查询和修改命令处理单元13用于判断调试命令验证和分析处理单元11输入的命令类型,对于异步查询命令创建一个子线程,创建的该子线程调用调试命令消息处理单元16,将查询命令输出给调试命令消息处理单元16;对于同步修改命令,直接调用调试命令消息处理单元16,将修改命令输出给调试命令消息处理单元16。
控制命令处理单元14用于将调试命令验证和分析处理单元11输入的控制命令输出给调试命令消息处理单元16,接收到调试命令消息处理单元16返回的响应消息后,判断调试命令验证和分析处理单元11输入的控制命令是否为单步命令,如果是,则将服务端地址和调试命令消息处理单元返回的行为描述发送给源代码调试启动单元15;否则,将调试命令消息处理单元16返回的响应消息返回给调试命令验证和分析处理单元11;源代码调试启动单元15用于根据接收自控制命令处理单元14的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元16与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试;调试命令消息处理单元16用于将接收自查询和修改命令处理单元13的查询和修改命令、接收自控制命令处理单元14的控制命令和接收自源代码调试启动单元15的上下文交换命令请求消息发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元13、控制命令处理单元14和源代码调试启动单元15。
本发明的工作原理及其特征将从以下描述变得明显,或可通过如下所述的对本发明的实践而了解。
对于远程调用请求,服务调试命令发射过程分为两种工作模式同步和异步请求;其区别在于同步工作模式中发射过程在服务调试命令请求的响应消息返回之前,不处理其它服务调试命令请求,而异步请求中发射过程不需等待返回响应消息即可处理下一服务调试命令请求。
服务调试命令结构主要包括以下四个部分1)系统调试服务地址(sda),2)调用操作名称(opn),3)被调试服务调用标识(dsid),和4)表达式定义(expr);可表示为CF=(sda,opn,dsid,expr)。系统调试服务地址(sda)作为一个服务调试环境属性,它表示为一个标准的服务调用地址(如http://localhost:8080/axis/services/VegaDebugService),服务调试命令发射过程可通过指定的选项获得系统调试服务地址。调用操作名称(opn)与服务调试命令名保持一致。被调试服务调用标识(dsid)是全局唯一的,它代表被控制的服务端服务请求,服务调试命令发射过程可通过选项获得被调试服务调用标识。表达式定义(expr)设置、调用、查询或修改服务调试环境和远端服务上下文中的相应元素。表达式在输入命令行的后部出现,空表达式表示该服务调试命令不需要输入表达式。表达式内部的元素分割符(.)区分多级的服务上下文元素,分割符只能出现在二元表达式的左端。等号(=)表达一个等式,等式左端指定服务上下文的元素,等式右端为待修改的元素值。
一个服务调试命令行(CmdLine)可以是一个控制命令行(CtlLine),或者是一个查询和修改命令行(QULine),或者是一个帮助命令行(HlpLine)。其语法表示为CmdLine→CtlLine|QULine|HlpLine控制命令行由一个控制命令(CtlCmd)及其控制参数(CtlArgs)组成,其语法表示为CtlLine→CtlCmd CtlArgs控制命令(CtlCmd)为调用系统调试服务的操作名。其控制参数(CtlArgs)包括系统调试服务地址选项(-r xxx),被调试服务调用标识选项(-m yyy),以及可选的常量表达式(ConstString),其语法表示为CtlArgs→RmtMark[Dot|ConstString|McidArgs]RmtMark→Minus RCharMinus→-RChar→r|RDot→.
McidArgs→McidMark ConstString[ConstString]McidMark→Minus MCharMChar→m|M查询和修改命令行(QULine)由一个查询和修改命令(QUCmd)及其查询和修改参数(QUArgs)组成,其语法表示为QULine→QUCmd QUArgs一个查询和修改命令(QUCmd)为系统调试服务调用的操作名。查询和修改参数(QUArgs)包括系统调试服务地址选项(-r xxx),被调试服务调用标识选项(-m yyy),以及查询和修改表达式(QUExpr),其语法表示为QUArgs→CtlArgs QUExprQUExpr→Empty|Variable|QUExpr Dot Variable|QUEquEmpty→nullQUEqu→QUMark QUExpr Equal ConstStringEqual→=QUMark→[Minus QUType|ClearMark]QUType→boolean|byte|integer|char|long|float|double|string|listClearMark→Minus ClearStringClearString→clearVariable→Identifier帮助命令行由一个帮助命令(HlpCmd)以及一个可选的常量表达式(ConstString)组成,其语法表示为HlpLine→HlpCmd[ConstString]下面的表1示出了完整的服务命令集及其表达式定义的语法结构。其中非终止符ConstString代表一个不含变量的字符串,以Ctl开始的非终止符代表控制含义,以QU开始的非终止符代表查询和修改含义,以Hlp开始的非终止符代表帮助含义。


表1服务调试的基本步骤分为(1)观察服务行为出现问题的症状;(2)定位出现错误的行为源;(3)确定错误的原因;(4)实施修改错误的方案;(5)重新测试被调用的行为。
服务调试命令应提供以上步骤所需要的观察、修改和控制服务行为的功能,同时考虑到服务调试的性能问题服务调试命令可按照工作模式和本地和远程请求进行处理。如上所述,控制命令属于同步的远程请求;查询和修改命令分为远程异步查询和远程同步修改请求;帮助命令属于同步本地请求。
服务调试命令消息处理过程中调试请求处理负责把调试命令请求消息发送到服务端。例如万维网服务请求处理发送调试无状态的万维网服务行为的命令,其消息处理过程遵守相关的万维网服务规范;同样网格服务请求处理发送调试有状态的网格服务行为的命令,其消息处理过程遵守相关的网格服务规范。二者的最大区别在于相关操作输入参数的处理,万维网系统调试服务调用支持零个或多个输入参数,而网格系统调试服务需要将所有的输入参数重构成一个输入参数。
以下分别给出服务调试命令的万维网和网格服务调用的伪代码。
1、万维网服务调用消息处理过程的伪代码

2、网格服务调用消息处理过程的伪代码


服务调试命令发射过程中可配置的源代码调试处理单元是在需要对迁入的服务行为进行源代码调试的情况下被启动的。该单元首先读取外部的源代码调试配置文件;然后根据相应的配置启动本地源代码调试环境,通过上下文请求获得当前的远端服务上下文消息,并在本地重新构造服务上下文和装载被迁入的服务行为;最后在该调试环境下执行被迁入的服务行为。使用相应的源代码调试器可以对该服务行为进行源代码调试。在被迁入的服务行为执行结束时,发送该服务上下文消息,并返回服务调试过程。
本发明给出了支持同步和异步工作模式的服务调试命令发射方法,该方法支持万维网和网格服务规范的调试命令请求和响应。服务调试命令按其功能、工作模式和本地或远程请求分为以下三类控制命令,查询和修改命令,以及帮助命令。控制命令属于同步的远程请求;查询和修改命令分为远程异步查询和远程同步修改请求;帮助命令属于同步本地请求。
基于图1所述的服务调试命令发射器的结构框图,以及上述对本发明原理及具体实践的描述,以下对本发明提供的对服务调试命令进行处理的方法进行详细说明。
如图2所示,图2为本发明提供的对服务调试命令进行处理的实现流程图,该方法包括
步骤S1服务调试命令发射器读取外部设备输入的服务调试命令行,验证服务调试命令行是否为服务调试命令请求,如果是,则执行步骤S2;否则,跳转至步骤S1;在本步骤中,所述外部设备输入的服务调试命令行为从调试控制台,或集成开发环境下的控制窗口输入的服务调试命令行。
步骤S2服务调试命令发射器验证服务调试命令行是否为帮助命令请求,如果是,则执行步骤S3;否则,执行步骤S4。
步骤S3服务调试命令发射器调用并执行帮助处理单元后,跳转至步骤S11。
步骤S4服务调试命令发射器判断服务调试命令行是否为异步服务调试命令请求,如果是,则执行步骤S5;否则,执行步骤S6。
步骤S5服务调试命令发射器创建异步请求线程,并将主线程返回至步骤S1。
步骤S6服务调试命令发射器调试命令消息处理单元调用控制/查询和调试命令处理过程,进行调试命令行分析,设置系统调试服务地址及其调用操作名,被调试服务调用的标识及其表达式。
步骤S7服务调试命令发射器根据系统调试服务地址,确定所调用的服务调试命令请求消息处理过程,发送命令请求消息到服务器端。
步骤S8服务调试命令发射器接收服务端返回的调试命令响应消息。
步骤S9服务调试命令发射器判断是否需要启动源代码调试,如果需要,则执行步骤S10;否则,执行步骤S11。
步骤S10服务调试命令发射器读取外部配置文件并启动可配置的源代码调试环境,从服务端获得当前服务上下文,装载并执行迁入行为,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境。
步骤S11处理并显示返回结果,并返回至步骤S1。
为了更加详细地说明本发明提供的对服务调试命令进行处理的方法,以下对此进一步详细说明。
如图3所示,图3为本发明提供的对服务调试命令进行处理的具体实现流程图,该方法具体包括步骤301调试命令输入/输出处理单元将外部设备输入的调试命令行输出给调试命令验证和分析处理单元。
步骤302调试命令验证和分析处理单元判断输入的调试命令行的类型;1)如果调试命令行为帮助命令,则执行步骤303;2)如果调试命令行为查询和修改命令,则执行步骤304;3)如果调试命令行为控制命令,则执行步骤305;4)否则,返回步骤301。
步骤303调试命令验证和分析处理单元将帮助命令输出给帮助命令处理单元,帮助命令处理单元根据输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给显示设备进行显示,并返回步骤301。
步骤304调试命令验证和分析处理单元将查询和修改命令输出给查询和修改命令处理单元,查询和修改命令处理单元判断输入的命令类型;1)如果是异步查询命令,则查询和修改命令处理单元创建一个子线程,创建的该子线程调用调试命令消息处理单元,将查询命令输出给调试命令消息处理单元,执行步骤308;2)如果是同步修改命令,则查询和修改命令处理单元调用调试命令消息处理单元,将修改命令输出给调试命令消息处理单元,执行步骤308。
步骤305调试命令验证和分析处理单元将控制命令输出给控制命令处理单元,控制命令处理单元将输入的控制命令输出给调试命令消息处理单元,执行步骤308。
步骤306接收到调试命令消息处理单元返回的响应消息后,调试命令验证和分析处理单元判断调试命令验证和分析处理单元输入的控制命令是否为本地单步调试命令,如果是,则执行步骤307;否则,执行步骤309。
步骤307控制命令处理单元将服务端地址和相关行为描述发送给源代码调试启动单元,源代码调试启动单元根据接收的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境。
步骤308调试命令消息处理单元将接收的服务调试命令发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元、控制命令处理单元和源代码调试启动单元;如果是控制命令请求,则返回步骤306;否则,执行步骤309。
步骤309查询和修改命令处理单元和控制命令处理单元将接收的响应消息通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给外部显示设备进行显示,并返回步骤301。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种服务调试命令发射器,其特征在于,该发射器包括调试命令输入/输出处理单元,用于将外部设备输入的调试命令行输出给调试命令验证和分析处理单元,并将调试命令验证和分析处理单元返回的调试处理结果输出给外部显示设备进行显示;调试命令验证和分析处理单元,用于判断调试命令输入/输出处理单元输入的调试命令行的类型,将帮助命令输出给帮助命令处理单元,将查询和修改命令输出给查询和修改命令处理单元,将控制命令输出给控制命令处理单元;帮助命令处理单元,用于根据调试命令验证和分析处理单元输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给显示设备进行显示;查询和修改命令处理单元,用于判断调试命令验证和分析处理单元输入的命令类型,对于异步查询命令创建一个子线程,创建的该子线程调用调试命令消息处理单元,将查询命令输出给调试命令消息处理单元;对于同步修改命令,直接调用调试命令消息处理单元,将修改命令输出给调试命令消息处理单元;控制命令处理单元,用于将调试命令验证和分析处理单元输入的控制命令输出给调试命令消息处理单元,接收到调试命令消息处理单元返回的响应消息后,判断调试命令验证和分析处理单元输入的控制命令是否为单步命令,如果是,则将服务端地址和调试命令消息处理单元返回的行为描述发送给源代码调试启动单元;否则,将调试命令消息处理单元返回的响应消息返回给调试命令验证和分析处理单元;源代码调试启动单元,用于根据接收自控制命令处理单元的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试;调试命令消息处理单元,用于将接收自查询和修改命令处理单元的查询和修改命令、接收自控制命令处理单元的控制命令和接收自源代码调试启动单元的上下文交换命令请求消息发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元、控制命令处理单元和源代码调试启动单元。
2.根据权利要求1所述的服务调试命令发射器,其特征在于,所述查询和修改命令、控制命令和调试命令为服务调试命令,所述调试命令消息处理单元向服务端发送服务调试命令包括两种工作模式同步和异步工作模式;所述同步工作模式的发射过程,调试命令消息处理单元在接收到服务端返回的响应消息之前,不处理其它服务调试命令请求;所述异步工作模式的发射过程,调试命令消息处理单元不需等待服务端返回的响应消息,即可处理下一服务调试命令请求。
3.根据权利要求2所述的服务调试命令发射器,其特征在于,所述服务调试命令的结构包括系统调试服务地址sda、调用操作名称opn、被调试服务调用标识dsid和表达式定义expr,可表示为CF=(sda,opn,dsid,expr)四个部分;其中,系统调试服务地址sda,用于表示标准的服务调用地址,是一个服务调试环境属性,服务调试命令发射过程可通过指定的选项获得系统调试服务地址;调用操作名称opn,与服务调试命令名保持一致;被调试服务调用标识dsid,用于表示被控制的服务端服务请求,是全局唯一的,服务调试命令发射过程可通过选项获得被调试服务调用标识;表达式定义expr,用于设置、调用、查询或修改服务调试环境和远端服务上下文中的相应元素。
4.根据权利要求3所述的服务调试命令发射器,其特征在于,所述表达式在输入命令行的后部出现,空表达式表示该服务调试命令不需要输入表达式;表达式内部的元素分割符用于区分多级的服务上下文元素,出现在二元表达式的左端;等号用于表达一个等式,等式左端指定服务上下文的元素,等式右端为待修改的元素值。
5.根据权利要求1所述的服务调试命令发射器,其特征在于,所述源代码调试启动单元进一步用于在需要对迁入的服务行为进行源代码调试的情况下,根据接收自控制命令处理单元的服务端地址和相关行为描述,读取外部的源代码调试配置文件;并根据相应的配置启动本地源代码调试环境,通过服务上下文请求获得当前的服务端服务上下文消息,并在本地重新构造服务上下文和装载被迁入的服务行为;在该调试环境下执行被迁入的服务行为;使用相应的源代码调试器对该服务行为进行源代码调试;在被迁入的服务行为执行结束时,发送该服务上下文消息到服务端,并返回服务调试过程。
6.一种对服务调试命令进行处理的方法,其特征在于,该方法包括步骤S1服务调试命令发射器读取外部设备输入的服务调试命令行,验证服务调试命令行是否为服务调试命令请求,如果是,则执行步骤S2;否则,跳转至步骤S1;步骤S2服务调试命令发射器验证服务调试命令行是否为帮助命令请求,如果是,则执行步骤S3;否则,执行步骤S4;步骤S3服务调试命令发射器调用并执行帮助处理单元后,跳转至步骤S11;步骤S4服务调试命令发射器判断服务调试命令行是否为异步服务调试命令请求,如果是,则执行步骤S5;否则,执行步骤S6;步骤S5服务调试命令发射器创建异步请求线程,并将主线程返回至步骤S1;步骤S6服务调试命令发射器调试命令消息处理单元调用控制/查询和调试命令处理过程,进行调试命令行分析,设置系统调试服务地址及其调用操作名,被调试服务调用的标识及其表达式;步骤S7服务调试命令发射器根据系统调试服务地址,确定所调用的服务调试命令请求消息处理过程,发送命令请求消息到服务器端;步骤S8服务调试命令发射器接收服务端返回的调试命令响应消息;步骤S9服务调试命令发射器判断是否需要启动源代码调试,如果需要,则执行步骤S10;否则,执行步骤S11;步骤S10服务调试命令发射器读取外部配置文件并启动可配置的源代码调试环境,从服务端获得当前服务上下文,装载并执行迁入行为,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境;步骤S11处理并显示返回结果。
7.根据权利要求6所述的对服务调试命令进行处理的方法,其特征在于,步骤S1中所述外部设备输入的服务调试命令行为从调试控制台,或集成开发环境下的控制窗口输入的服务调试命令行。
8.根据权利要求6所述的对服务调试命令进行处理的方法,其特征在于,该方法具体包括A、调试命令输入/输出处理单元将外部设备输入的调试命令行输出给调试命令验证和分析处理单元;B、调试命令验证和分析处理单元判断输入的调试命令行的类型;1)如果调试命令行为帮助命令,则执行步骤C;2)如果调试命令行为查询和修改命令,则执行步骤D;3)如果调试命令行为控制命令,则执行步骤E;4)否则,返回步骤A;C、调试命令验证和分析处理单元将帮助命令输出给帮助命令处理单元,帮助命令处理单元根据输入的帮助命令生成调试帮助信息、设置调试环境属性,并将生成的调试帮助信息和设置的调试环境属性通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给显示设备进行显示,并返回步骤A;D、调试命令验证和分析处理单元将查询和修改命令输出给查询和修改命令处理单元,查询和修改命令处理单元判断输入的命令类型;1)如果是异步查询命令,则查询和修改命令处理单元创建一个子线程,创建的该子线程调用调试命令消息处理单元,将查询命令输出给调试命令消息处理单元,执行步骤J;2)如果是同步修改命令,则查询和修改命令处理单元调用调试命令消息处理单元,将修改命令输出给调试命令消息处理单元,执行步骤J;E、调试命令验证和分析处理单元将控制命令输出给控制命令处理单元,控制命令处理单元将输入的控制命令输出给调试命令消息处理单元;F、接收到调试命令消息处理单元返回的响应消息后,调试命令验证和分析处理单元判断调试命令验证和分析处理单元输入的控制命令是否为本地单步调试命令,如果是,则执行步骤G;否则,执行步骤I;G、控制命令处理单元将服务端地址和相关行为描述发送给源代码调试启动单元,源代码调试启动单元根据接收的服务端地址和相关行为描述,启动源代码调试,并通过调试命令消息处理单元与服务端进行上下文交换,动态装载和执行源代码调试命令,对该服务行为的源代码进行调试,在源代码调试结束时,发送服务上下文消息至服务端,并退出源代码调试环境;H、调试命令消息处理单元将接收的服务调试命令发送给服务端,并将接收自服务端的响应消息分别返回给查询和修改命令处理单元、控制命令处理单元和源代码调试启动单元;如果是控制命令请求,则返回步骤F;否则执行步骤I;I、查询和修改命令处理单元和控制命令处理单元将接收的响应消息通过调试命令验证和分析处理单元和调试命令输入/输出处理单元输出给外部显示设备进行显示,并返回步骤A。
全文摘要
本发明公开了一种服务调试命令发射器,包括调试命令输入/输出处理单元、调试命令验证和分析处理单元、帮助命令处理单元、查询和修改命令处理单元、控制命令处理单元、源代码调试启动单元和调试命令消息处理单元。本发明同时公开了一种对服务调试命令进行处理的方法。利用本发明,为服务计算和网格计算的在线调试提供一种简单、通用和有效的服务调试命令处理机制。
文档编号H04L12/24GK1916873SQ20061012786
公开日2007年2月21日 申请日期2006年9月22日 优先权日2006年9月22日
发明者岳强, 徐志伟, 李伟 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1