当前位置: 首页 > 专利查询>浙江大学专利>正文

文法制导的Web服务自动组合技术制造技术

技术编号:3479790 阅读:188 留言:0更新日期:2012-04-11 18:40
本发明专利技术主要涉及Web服务领域,尤其是指一种文法制导的Web服务自动组合技术。一种基于文法分析算法的Web服务组合技术,包括如下步骤:1)建立文法规则库,在规则库中将Web服务中的端口形式化为文法规则;2)将用户的输出放入栈中,同时将用户的输入放入列表中;3)根据文法规则和输入队列以及文法推导算法进行推导,同时记录推导的过程;4)推导结束时,如果栈为空则组合成功,将推导过程到处即为要获取的服务组合;如果栈中还有输入则服务组合失败。本发明专利技术提供了更为强大的服务功能,加快系统开发的速度,快速满足用户需求,而且简化了用户开发的成本。同时,基于成熟的文法规则和文法推导技术之上,具有良好的可用性和可靠性。

【技术实现步骤摘要】

本专利技术主要涉及Web服务领域,尤其是指一种文法制导的Web服务自动 组合技术。
技术介绍
随着Web服务技术的日益成熟,越来越多的稳定易用Web服务共享在网 络上。但单个的Web服务能够提供的功能有限,为了更加充分地利用共享的 Web服务,有必要将共享的Web服务组合起来,提供更为强大的服务功能, 加快系统开发的速度,快速满足用户需求。因此,如何有效的组合分布在网络 中的各种功能不同的服务,实现服务之间的集成,形成功能强大的企业级流程 服务以完成企业的商业目标,已经成为Web服务发展过程中的一个重要步骤。 Web服务组合的研究正是在这种背景下被提出来。当前的Web服务组合方法主要分为两大类业务流程驱动的服务组合方法 和即时任务求解的服务组合方法。前者主要以流程管理技术如工作流技术为基 础;后者主要以人工智能理论,如逻辑推理、任务规划、定理证明等为基础。 但这两类方法均存在局限性l)对于业务流程驱动的服务组合方法而言,目前 大多数的工作均基于固定的业务流程模型进行服务组合,尽管通过引入服务动 态绑定、服务模板、服务社区等概念提高服务组合的动态性,但是这些方法均 无法处理柔性多变的业务流程,这种流程在建模阶段往往无法确定流程的具体 内容,如流程中存在局部子流程是根据流程实例信息重新组织和建立。此时, 当前基于固定流程的服务组合方法难以满足这种业务流程的需要;2)对于即时 任务求解的服务组合方法而言,由于这些方法大多基于人工智能中的理论和形 式化方法,这就要求对服务和任务进行预处理和形式化转换,方法的复杂度较 高, 一旦服务组合所涉及的服务集合变得非常庞大时,服务组合的搜索过程和 推理过程将变得极其困难,速度很缓慢,无法取得用户满意的响应时间。此外, 由于这类方法自动化程度较高,因此服务组合形成的组合服务在正确性和可用性方面需要进一步检验。在编译技术中,文法分析的主要目的是识别输入序列是否符合特定的文法 规则。目前主要的文法分析算法有自顶向下和自底向上两类。这些文法分析算 法一般都使用一个显示的栈来完成分析。在文法分析算法实施过程中首先在栈 的底部放一个$符号来标注桟底,然后将一个文法中的非终结符放入栈顶。在文法分析的过程中,通过将栈顶部的非终结符替换成文法规则中(BNF中)该 非终结符的一个选择来作出分析。其方法是在分析栈的顶部生成当前输入记号, 在顶部它已匹配了输入记号并将它从栈和输入中舍弃掉。这两个动作1) 利用文法选择A—a将栈顶部的非终结符A替换成串a (串a到序压入 栈中)。2) 将栈顶部的记号与下一个输入记号匹配。是自顶向下的分析程序中的两个基本动作。第l个动作称为生成(gene rate):通过写出在替换中使用的B N F选择(它的左边在当前必须是栈顶部 的非终结符)来指出这个动作。第2个动作将栈顶部的一个记号与输入中的下 一个记号匹配(并通过取出栈和将输入向前推进而将二者全部舍弃掉)。
技术实现思路
为了解决现有的基于流程的Web服务组合技术自动化程度低,缺乏应变能 力;而基于人工智能理论实现的即时任务求解的Web服务组合方法复杂度高的 的缺陷,本专利技术提出了一种可以处理多变的业务流程,简单、快速的文法制导 的Web服务自动组合技术。一种基于文法分析算法的Web服务组合技术,包括如下步骤1) 建立文法规则库,在规则库中将Web服务中的端口形式化为文法规2) 将用户的输出放入栈中,同时将用户的输入放入列表中;3) 根据文法规则和输入队列以及文法推导算法进行推导,同时记录推 导的过程;4)推导结束时,如果栈为空则组合成功,将推导过程到处即为要获取 的服务组合;如果栈中还有输入则服务组合失败。 进一步的,所述文法规则库主要是以文法规则的形式保存Web服务。 更进一步的,所述文法规则包括两个属性推导规则G和产生该规则的服 务及端口 WS。进一步的,所述文法推导算法包括生成和匹配两个动作。 下面对本专利技术做进一步的描述本专利技术主要是根据文法分析来进行Web服务的自动组合的。该项技术中将 Web服务形式化为文法规则;用户要求的最终输出对应文法分析中的非终结符, 放入栈中;将用户提供的输入对应文法分析中的终结符,放入输入串中。那么 Web服务组合问题就转化为获取一个由非终结符推导出终结符的推导过程的问 题。但是这与文法分析稍有区别在文法分析中桟顶元素只能与输入串的第一 个元素匹配,选择文法规则也只和输入串的第一个符号有关。在服务组合过程 中只要栈顶元素出现在输入串中,就可以匹配,同时将该元素出栈。最后如果 栈可以为空,则服务组合成功,否则表明输入不能经过特定的服务组合产生需 要的结果。本专利技术利用文法规则和文法推导,更加充分地利用共享的Web服务,将 共享的Web服务组合起来,提供更为强大的服务功能,加快系统开发的速度, 快速满足用户需求。较之传统的服务组合技术,该技术具有自动对服务进行组 合的优点,用户只需要关注服务库的构建,提出需求(输出),系统即可得到正 确的服务组合。这大大简化了用户开发的成本。同时,本专利技术基于成熟的文法 规则和文法推导技术之上,具有良好的可用性和可靠性。 附图说明图1为文法规则库中添加Web服务的流程图图2为根据文法推导组合服务的流程图图3推导过程中生成动作各数据结构变动4推导过程中匹配动作各数据结构变动图 具体实施例方式本专利技术中提出了一种基于文法分析算法的Web服务组合技术。具体包括两 个部分文法规则库和文法推导组件。文法规则库主要是以文法规则的形式保存Web服务。在规则库中将Web服 务中的端口形式化为文法规则,文法规则主要包括两个属性推导规则G和产 生该规则的服务及端口 WS。例如对于一个服务W的端口 P输入为a ,输出为p ,则对应的文法规则A: A. G = P 二〉 a , A. WS=W. P。如果文法规则库中已经存在着文法规则B: a 二> Y , 则在添加规则A的同时添加规则C: P=〉Y, C,WS = A.WS田.WS (凍示连接)。 同时用户可以添加自定义的语意规则来绑定特定的输入端口和输出端口。文法规则库建好以后就可以根据文法规则库中的规则和用户提供的输入输 出进行服务自动组合。该过程在文法分析算法的基础上改进来的,主要包括个 步骤1、 将用户的输出放入栈中,同时将用户的输入放入列表中。2、 根据文法规则和输入队列以及文法推导算法进行推导,同时记录推导的 过程。3、 推导结束时,如果栈为空则组合成功,将推导过程到处即为要获取的服 务组合。如果栈中还有输入则服务组合失败。在文法推导过程中主要有两个动作1、 生成利用规则库中对应的文法规则A.G: e=〉a将栈顶部的非终结符 e替换成串a (串a到序压入栈中),同时记录A.WS。2、 匹配如果栈顶为终结符a,则搜索输入列表,如果该列表中存在a, 则a出栈。本专利技术通过构建服务的文法规则库作为实现该技术的基础。维护文法规则 库的主要工作是将Web服务转化为文法规则并将文法规则添加到规则库中。为Web服务创建文法规则并添加到规则库的算法流程如图1所示。 首先用户提交要添加到文法规则库的Web服务的WSDL文档,程序读入该文 档,同时解析文档中的内容。根据解析的结果,为Web服务中的每个端口创建 相本文档来自技高网
...

【技术保护点】
一种基于文法分析算法的Web服务组合技术,包括如下步骤:    1)建立文法规则库,在规则库中将Web服务中的端口形式化为文法规则;    2)将用户的输出放入栈中,同时将用户的输入放入列表中;    3)根据文法规则和输入队列以及文法推导算法进行推导,同时记录推导的过程;    4)推导结束时,如果栈为空则组合成功,将推导过程到处即为要获取的服务组合;如果栈中还有输入则服务组合失败。

【技术特征摘要】

【专利技术属性】
技术研发人员:李莹王家忙邓水光尹建伟吴健吴朝晖
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1