基于内部工作流的网格服务构造方法

文档序号:6639381阅读:130来源:国知局
专利名称:基于内部工作流的网格服务构造方法
技术领域
本发明是一种网格环境下面向应用的网格服务使用方法的解决方案,主要用于解决复杂网格服务的使用问题,属于网格计算技术领域。
背景技术
网格计算是一个分布式和并行计算的支持平台,是一种无缝、集成计算和协同环境。它可以作为虚拟的整体使用在地理上分散的计算资源,如高速互连的异构计算机、数据库、科学仪器、文件和超级计算系统等。基于Internet的网格计算系统不但能使人们聚集分散的计算能力、形成超级计算的能力,解决诸如高能物理、大气、天文、生物信息和石油地质等许多重大应用领域中的问题(诸如虚拟核爆炸、新药研制、气象预报和环境监测等),而且还能使人们共享和充分利用网络中的各种资源。简言之,网格把整个Internet整合成一台巨大的超级计算机,实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享和协同。
网格计算技术的核心是解决网格研究所面临的应用集成、资源共享、系统互操作和标准化等问题,目前,一些研究工作也从不同的角度尝试借助Web服务来部分地解决网格系统的互操作性。2001年,Foster提出了开放的网格服务体系架构(简称OGSA),将Web服务的互操作模型引入到网格研究中,确立了Web服务作为网格资源的新的抽象形式和使用基础。尽管OGSA提出了Web服务在网格基础架构中的中心地位,但是并没有明确指出Web服务如何直接应用于网格系统使用和网格平台建设,现有的网格服务方法难以将不同的网格应用集成起来,使应用彼此像一个天衣无缝的整体协调工作,因此,开发新的能面向应用集成的网格服务方法显得越来越重要。

发明内容
技术问题本发明的目的是提供一种基于内部工作流的网格服务构造方法,使得工作流技术服务于网格服务之中,从而充分发挥出二者的优点,为协同应用及应用集成提供可行方案,通过使用本发明提出的方法可以达到网格服务协同应用的目标。
技术方案本发明的方法是一种策略性的方法,通过引入内工作流功能而提出,其目标是通过服务组合、工作流管理等来动态的解决网格环境下的系统应用问题。
内工作流的内涵1.工作流是一类能够完全或者部分自动执行的经营过程,文档、信息或任务遵循一定的规则在不同的执行者之间进行传递与执行。
2.外部工作流可以控制一组构成应用程序的网格服务流,也就是说工作流调用的是外部网格服务,这些服务可以是在建模时确定的,也可能是客户端应用。
3.内工作流是指作为网格服务来提供的工作流,该工作流作为网格服务可以被提交计算请求的网格应用客户调用,而且请求创建后,工作流应用程序可以自动根据当前的资源情况以及客户请求的情况来制定计算执行的过程或者步骤,工作流引擎负责工作调度。
一、体系结构基于内工作流的网格服务使用方法体系结构可以分为两部分客户端应用和服务器端应用。服务器端应用包括执行引擎、执行监视、模型库和GSH。客户端应用包括服务搜索器、服务建模工具。
下面我们给出几个具体部分的说明执行引擎执行引擎是整个原型的核心并被实现为网格服务。对于基于内工作流的网格服务来说,执行引擎就是服务的容器,执行引擎负责管理服务流程的生命周期,创建构件服务实例,激活服务的操作(事实上,服务的操作其实是流程模型,以下简称为服务流),处理对服务数据的访问以及服务生成的主题消息的订阅、发布等。执行引擎主要协调器,语言解析器,服务调用代理和管理状态数据的数据管理器等几个重要构件组成。
执行监视一个特殊的网格服务,它是执行引擎状态消息的订阅者。其职责是监听执行引擎发布的状态消息,并记录收到的一切消息。
模型库模型库构件是建模工具的服务器端,其职责是解析文档,生成服务流的部署描述信息,把这些信息写到WSDD文件,完成服务流的部署,最后再把文档保存到文档数据库中。
GSHGSH(Grid Service Handle,网格服务句柄)的职责是截获相关GSR(GridService Reference,网格服务参考,一种地址)的消息,最终于提供网格服务的节点形成网格环境下唯一标识符。如果消息请求的是执行服务流或者获取服务流的状态信息,则把消息转发给执行引擎进行处理,执行引擎处理完毕后,再返回处理结果;如果消息请求的是服务流的GSR,则从文档数据库中读取相应的服务流规范并自动映射成对应的WSDL(Web Service Description Language,万维网服务描述语言)文档,返回给请求者。因此,从用户的角度来看,基于内工作流的网格服务与简单网格服务没有什么区别。
二、方法流程在Web服务研究领域,已经开发了一些方法或技术,用于描述Web服务之间的协同以及Web服务的组合,如WSFL、BPEL4WS等。这些语言以过程模型为基础,描述活动和活动之间的关系,如分支关系、合流关系等,而服务则是活动的执行者,在执行时,活动被绑定到具体的服务实现。为了定义活动和服务之间的绑定关系,它们对WSDL进行了扩充。这些面向Web服务的流程语言,基本能够解决OGSA框架下的网格服务协同和组合问题。基于内工作流的网格服务使用方法,基于BPEL4WS,用Java语言开发了面向服务的工作流支持功能。基于内工作流的网格服务使用方法流程如下1.建模工程师利用服务搜索器搜索网格服务。服务搜索器有自己独立的执行线程,负责从GT3核心获取已经部署的可用的网格服务信息,从中抽取对组合服务建模工程师有用的信息,如网格服务的GSH、操作描述、消息定义等。
2.建模工程师利用建模工具编辑文档,定义网格服务流规划。
3.建模工程师完成服务流建模后,利用编辑器提供的组合服务部署功能,在模型库的帮助下,部署服务流。
4.最终用户发出网格服务请求消息。
5.GSH截获相关GSR(Grid Service Reference,网格服务参考)的消息,对其进行分析。如果消息请求的是执行服务流或者获取服务流的状态信息,则把消息转发给执行引擎进行处理,执行引擎处理完毕后,再返回处理结果;如果消息请求的是服务流的GSR,则从文档数据库中读取相应的服务规范并自动映射成对应的WSDL文档,返回给请求者。
6.执行引擎收到GSH发来的消息,实现网格服务创建构件服务实例,激活服务的操作,管理服务的生命周期。
下面对执行引擎重要构件的功能进行说明(1)协调器职责就是解释流程模型,协调流程模型中定义的所有网格服务的运行。协调器并不真正激活网格服务,而是把激活网格服务的任务委托给服务调用代理。
(2)服务调用代理首先通过解析服务部署文件获取服务的元信息,如该服务是否是服务流。如果是服务流,则返回流程模型信息,由协调器调用语言解析器解析流程模型,然后生成新的执行线索。如果是简单服务,则激活相应的反序列化处理子,把XML编码的参数转换为对应的Java对象方法所需要的参数类型,调用Java对象方法,最后再利用序列化处理子把结果对象转换为XML文档。
(3)顾名思义,解析器的功能就是解析文档并生成执行计划。服务流的客户可以通过GT3核心提供的标准操作订阅服务流的主题消息。如果客户订阅的某一主题消息的生产者并不是服务流,而是服务流包含的服务构件。
(4)数据管理器就把相关的处理委托给相应的服务构件,否则就直接处理。对于服务数据的处理也与此类似,如果数据的所有者是服务流,则数据管理器构件就直接处理,否则委托给该服务数据的所有者。
有益效果本发明方法提出了基于内工作流的网格服务方案,主要用于基于网格服务的工作流系统应用集成,通过使用本发明提出的方法可以避免过去应用集成的复杂性、可以提高灵活性,可以有效的达到协同应用的目的。下面我们给出具体的说明。
1.简单性在该方法中应用以服务形式提供给工作流系统,则工作流系统只需获得网格服务接口,便可直接调用之,而不需对其内部实现有丝毫了解。举例来说,另一方面,工作流可以作为网格服务工作流,网格服务可以被提交计算请求的网格应用客户调用。创建请求后,工作流应用程序可以自动根据当前的资源情况以及客户请求的情况来制定计算执行的过程或者步骤,工作流引擎负责工作调度和任务处理分配,从而大大简化了工作流系统应用集成应用。
2.易于扩展性在本方法中,已有的工作流系统如工作流建模、监控、工作流引擎等等无需做结构上的改动,工作流的工作过程也没有发生改变,仍旧是引擎执行工作流定义,控制流程路由,只是执行具体的应用变化成了调用网格服务,也就是说已有的工作流系统非常容易扩展到集成更多的应用。
3.跨平台性对于工作流系统来说,无论是被调应用还是用户端应用,应用以网格服务形式提供,以服务聚合为中心的高层服务接口对节点的应用进行组合并实例化,节点应用以网格服务形式执行,网格服务的发现、注册等等也由信息服务来完成,可见,只需要获得GSH就可调用网格服务,至于网格服务的实现是用。NET还是J2EE,Linux,工作流系统根本无需了解。
4.高级的命名访问为了对不同的应用调用,工作流系统规定了被调应用、用户端应用、和工作流系统互连接口。利用网格服务统一了这些接口,或者说只需按名(利用GSH)调用,实现了接口的名字服务,使得工作流系统参考模型可以采用更高级形式访问应用。
5增强了互连性系统分布式工作流系统往往比较困难,因为工作流系统要确定互操作模型和级别,并定义一组操作集来实现。把工作流程注册为网格服务,互操作基于OGSI来进行使得问题容易解决。


图1是基于内工作流的网格服务使用方法体系结构示意图。图中包括执行引擎、执行监视、模型库和GSH、服务搜索器、服务建模工具。
图2是基于内工作流的网格服务的系统应用集成实例。
图3是基于内部工作流的网格服务使用方法。
图4是执行引擎执行流程。
具体实施例方式
为了方便描述,我们假定有如下基于内工作流的网格服务的系统应用集成应用实例一个工作流系统(用A表示)要调用另一个工作流系统中的活动(工作流用B表示、活动用d表示),显然、这要求两个工作流系统能够进行共享、互操作、集成。利用基于内工作流的网格服务方案实施方式如下工作流系统A的建立及执行(基于内工作流的网格服务流程)步骤1建模工程师利用服务搜索器搜索网格服务。服务搜索器有自己独立的执行线程,负责从GT3核心获取已经部署的可用的网格服务信息,从中抽取对组合服务建模工程师有用的信息,如网格服务的GSH、操作描述、消息定义等。
步骤2建模工程师利用建模工具编辑文档,定义网格服务流规划。
步骤3建模工程师完成服务流建模后,利用编辑器提供的组合服务部署功能,在模型库的帮助下,部署服务流。
步骤4最终用户发出网格服务请求消息。
步骤5GSH截获相关GSR(Grid Service Reference,网格服务参考)的消息,对其进行分析。如果消息请求的是执行服务流或者获取服务流的状态信息,则把消息转发给执行引擎进行处理,执行引擎处理完毕后,再返回处理结果;如果消息请求的是服务流的GSR,则从文档数据库中读取相应的服务规范并自动映射成对应的WSDL文档,返回给请求者。
步骤6执行引擎收到GSH发来的消息,实现网格服务创建构件服务实例,激活服务的操作,管理服务的生命周期。
执行引擎的执行流程步骤1协调器解释流程模型,协调流程模型中定义的所有网格服务的运行。协调器并不真正激活网格服务,而是把激活网格服务的任务委托给服务调用代理。
步骤2服务调用代理通过解析服务部署文件获取服务的元信息,如该服务是否是服务流。如果是服务流,则返回流程模型信息,由协调器调用语言解析器解析流程模型,然后生成新的执行线索。如果是简单服务,则激活相应的反序列化处理子,把XML编码的参数转换为对应的Java对象方法所需要的参数类型,调用Java对象方法,最后再利用序列化处理子把结果对象转换为XML文档。
步骤3解析器解析文档并生成执行计划。服务流的客户可以通过GT3核心提供的标准操作订阅服务流的主题消息。如果客户订阅的某一主题消息的生产者并不是服务流,而是服务流包含的服务构件。
工作流B的建立和执行如同工作流A工作流A调用工作流B步骤1工作流系统B封装为一个基于内工作流的网格服务,向外界提供URI,其中d为一个接口。
步骤2工作流系统B封装的基于内工作流的网格服务在服务中心注册。
步骤3工作流系统A的利用网格服务搜索器在注册中心搜索服务。
步骤4注册中心将匹配服务的服务描述提供给工作流系统A,其中包括工作流系统B封装成的一个基于内工作流的网格服务。
步骤5工作流系统A向工作流系统B发送SOAP消息,实施服务调用,工作流系统A对该服务的使用进行权限控制。
步骤6权限验证通过,具体的服务执行由活动d完成,对于活动d的使用,工作流系统A利用服务命令进行管理;步骤7工作流B执行。
权利要求
1.一种基于内部工作流的网格服务构造方法,其特征在于该方法所包含的步骤为步骤1利用服务搜索器搜索网格服务,服务搜索器有自己独立的执行线程,负责从网格中间件核心获取已经部署的可用的网格服务信息,从中抽取对组合服务有用的信息,即网格服务的引用标识、操作描述、消息定义;步骤2利用建模工具编辑文档,定义网格服务流规划;步骤3完成服务流建模后,利用编辑器提供的组合服务部署功能,在模型库的帮助下,部署服务流;步骤4最终用户发出网格服务请求消息;步骤5网格截获相关网格服务参考地址的消息,对其进行分析;如果消息请求的是执行服务流或者获取服务流的状态信息,则把消息转发给执行引擎,执行引擎处理完毕后,再返回处理结果;如果消息请求的是服务流的网格服务参考地址,则从文档数据库中读取相应的服务规范并自动映射成对应的万维网服务说明文档,返回给请求者;步骤6执行引擎收到网格发来的消息,实现网格服务创建构件服务实例,激活服务的操作,管理服务的生命周期。
2.根据权利要求1所述的基于内部工作流的网格服务使用方法,特征在于执行引擎执行流程的步骤为步骤21协调器解释流程模型,协调流程模型中定义的所有网格服务的运行,协调器并不真正激活网格服务,而是把激活网格服务的任务委托给服务调用代理;步骤22服务调用代理通过解析服务部署文件获取服务的元信息,如该服务是否是服务流;如果是服务流,则返回流程模型信息,由协调器调用语言解析器解析流程模型,然后生成新的执行线索;如果是简单服务,则激活相应的反序列化处理子,把可扩展编码的参数转换为对应的Java对象方法所需要的参数类型,调用Java对象方法,最后再利用序列化处理子把结果对象转换为可扩展语言文档;步骤23解析器解析文档并生成执行计划;服务流的客户可以通过网格中间件核心提供的标准操作订阅服务流的主题消息;步骤24如果客户订阅的某一主题消息的生产者并不是服务流,而是服务流包含的服务构件;数据管理器就把相关的处理委托给相应的服务构件,否则就直接处理;对于服务数据的处理也与此类似,如果数据的所有者是服务流,则数据管理器构件就直接处理,否则委托给该服务数据的所有者。
全文摘要
基于内工作流的网格服务构造方法是一种网格环境下面向应用的网格服务使用方法的解决方案。该方法所包含的步骤为步骤1利用服务搜索器搜索网格服务,步骤2利用建模工具编辑文档,定义网格 服务流规划;步骤3完成服务流建模后,利用编辑器提供的组合服务部署功能,在模型库的帮助下,部署服务流;步骤4最终用户发出网格服务请求消息;步骤5网格截获相关网格服务参考地址的消息,对其进行分析;步骤6执行引擎收到网格发来的消息,实现网格服务创建构件服务实例,激活服务的操作。主要用于解决复杂网格服务的使用问题,使得工作流技术服务于网格服务之中,从而充分发挥出二者的优点,为协同应用及应用集成提供可行方案。
文档编号G06Q10/06GK1731432SQ200510094039
公开日2006年2月8日 申请日期2005年8月26日 优先权日2005年8月26日
发明者王汝传, 任勋益 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1