5 执行细节
我们选择OGSI Technology Preview[22]作为GSFL原型发展的基础。这是目前网格服务规范[29]利用Apache Tomcat [23]和Apache Axis [24]基于java的应用。Tomcat是servlet容器,用于办公相关应用中的Java Servlet [26] and JavaServer Pages [25]技术。Axis是W3C中简单对象访问协议(SOAP)[1]的一个应用。在下面小节中,我们给出一些GSFL应用的重要部分。
5.1 GSFL剖析
我们用Castor[4]分析GSFL schema,并产生java绑定。Castor是一个java的开放资源数据绑定架构,产生java类源并以XML schema展现。它也提供方法配置XML文档与相应的java对象相一致,反之亦然。使用Castor能为我们的XML schema自动产生java绑定,以避免编写代码。这大大减少了开发代码的时间。
尽管Castor能将GSFL schema映射成java类,但它还无法理解与组件相关的语义,如Castor不知道GSFL schema中的Import类型有足够的信息(namespace和location)将另一个GSFL文档导入。它只能使用适当的获得和安装方法将如Import的类型映射为具有namespace和location字段的java类。因此,我们不得不为Castor产生的类增加封装以解决此问题。但是这要比自己写代码好得多。
5.2 自动产生WSDL
除了使用Castor,我们还可以用WSDLAJ[8]处理个人服务的WSDL文档。WSDLAJ是一种可以创建、展现和操作WSDL文档的工具包。
正如我们在第4节中介绍的,GSFL文档包含有关输出活动的足够信息。既然WSDL能参与工作流,那就很容易找出输入输出信息的Types及Messages自身。WSDL的其他信息如Operations、Ports等能轻易地从GSFL自身获得。为工作流自动产生WSDL的关键是提供GSFL schema的足够信息。
5.3 GSFL 协调者(Coordinator)
GSFL Workflow的核心是GSFL Coordinator服务。这个服务创建虚拟端口和服务器,它们将内部进程映射到工作流。这些端口是虚拟的,因为它们在GSFL Coordinator中并不物理存在。尽管如此,客户能通过这些端口调用方法,因为它们映射到GSFL Coordinator一个别的调用的集合上。
图5展示了常用控制流。一个希望执行GSFL工作流的客户,先以GSFL实例开始(通过标准OGSA厂商方法)。然后协调者(Coordinator)实例被送到表示工作流的GSFL。在GSFL文档收据之上,协调者实例动态产生WSDL文档,包括所有新输出的操作。然后WSDL能就能被想执行工作流和动态输出操作的客户们使用了。当一个客户调用一个GSFL Coordinator输出的操作时,请求通过servlet容器发送到OGSA webapp(网络应用程序)。OGSA webapp利用服务器上的映射config.wsdd发送GSFLProvider/Intercepter调用,这已作为标准OGSA RPCURIProvider类的一个扩展在应用。OGSA RPCURIProvider类负责根据请求的URL,将引入的请求分配到正确的服务实例。既然操作并不物理存在于GSFL Coordinator上,如果这个标准提供者已被使用,调用将会失败。但是,自定义提供者可以中断这个调用,并发送到协调者中的一个通用的配置功能。基于GSFL文档提供的信息,协调者处理请求,将操作映射到一个调用集。这些调用实际由参与工作流的服务执行。
提供者能区分调用是在动态的还是在静态端口执行。感兴趣的静态操作之一是generateWSDL。包括动态端口,它自动为协调者产生WSDL(5.2节)
6 GSFL的例子
考虑以下下面的情形,为了达到一个共同目标,网格服务间需要相互通信。概念方面的描述在第4节定义过了,这在可读性上强于XML。图6描述了个人服务间的交互。
6.1 服务提供者
服务提供者由一个工作队列服务、一个资源管理服务和一个执行服务集组成。工作队列服务负责为用户要执行的工作排队;资源管理服务负责为网格上的各种资源预存信息及为执行工作的目标资源制定只能决策;执行服务集运行在每个各人机器上并负责工作的执行及向资源管理服务报告资源信息。
6.2活动模型
活动模型由工作队列服务的排队(Queue)操作、出队列(Dequeue)操作、获取资源(GetResource)操作和执行工作(ExecuteJob)操作组成。队列操作负责为工作请求排队,工作需求信息要以合适的格式提供;出队列操作从队列中获得一个工作,取决于队列规则;资源管理服务中的获取资源操作使用出队列工作信息获得执行特定工作的最好资源;执行服务中的执行工作操作负责工作的执行
6.3 组合模型
组合模型内的输出模型由一个输出的操作Execute组成。它由控制和数据模型一致的模型组成。同属这两个模型的操作有Dequeue、GetResource和Execute-Job。因此当客户调用工作流实例上的Execute操作时,工作流引擎从工作队列服务中获得下一个工作然后将工作信息通过GetResource调用传递给资源管理服务。GetResource调用返回目标资源以使工作继续运行。使用这个调用上的信息及ExecuteJob操作,工作得以在原定的资源上执行。
此外,每一个执行服务(Execution Services)通过使用异步周期通告向资源管理服务发送soft-state资源信息。这就是资源管理服务如何拥有每一个资源信息的方法。它跟据这些信息为工作决定最好的目标资源。Notification Links的集合组成了通告模型(Notification Model),它们将执行服务连接到资源管理服务。
6.4生命周期模型
在这个例子中,我们要求所有的服务都同时是活动的,所以我们不需要利用生命周期模型提供的所有特性。
因此,为了创建更复杂并且需要比每个个人服务更多值的组合服务,我们发现可以使用GSFL使个人服务(Job Queue Service、Resource Manager Service和Execution Services)协同工作。
7未来的工作
网格服务流语言在应用和增强方面还可能有广阔的空间。这还是一个发展工作,这种语言将继续根据网格方面的需求来改进。未来的特性中将包含处理加工异常的特性,和XLANG中的相似;,增强的工作流中任务排序功能,其中可能会用到循环和选择结构;自动集成图形化工作流编辑器。
8结论
我们在本文中描述了网格服务流语言(GSFL),一种基于网格服务的工作流架构。我们概览了现有的处理网络服务工作流的技术并研究了他们在网格服务中的应用。现有的网络服务技术提供了一些很好的可以利用的特性,尽管还无法解决某些需求,如对等服务交互和在服务中应用生命周期管理。我们设计了GSFL来处理这些问题,而且还集成了现有的网络服务技术的特性。
参考文献:
[1] Condor : High Throughput Computing. http://www.cs.wisc.edu/condor/, 2002.
[2] DAGMan (Directed Acyclic Graph Manager). http://www.cs.wisc.edu/condor/dagman/, 2002.
[3] Assaf Arkin. Business Process Modelling Language. http://www.bpmi.org/bmpi-downloads/BPML-SPEC-
1.0.zip, June 2002.
[4] Assaf Arkin, Sid Askary, Scott Fordin, Wolfgang Jekeli, Kohsuke Kawaguchi, David Orchard, Stefano Pogliani,
Karsten Riemer, Susan Struble, Pal Takacsi-Nagy, Ivana Trickovic, and Sinisa Zimek. Web Services Choreography
Interface. http://wwws.sun.com/software/xml/developers/wsci/index.html, June 2002. Version 1.0.
[5] R. Armstrong, D. Gannon, A. Geist, K. Keahey, S. Kohn, L. McInnes, S. Parker, and B. Smolinski. Toward a
Common Component Architecture for High-Performance Parallel Computing. In Proceedings of High Performance
Distributed Computing, pages 115–124, Redondo Beach, California, 1999. CCA Forum, .
[6] T. Berners-Lee, R. Fielding, and L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax.
http://www.ietf.org/rfc/rfc2396.txt, August 1998.
[7] Don Box, David Ehnebuske, Gopal Kakivaya, Andrew Layman, Noah Mendelsohn, Henrik Frystyk Nielsen,
Satish Thatte, and Dave Winer. Simple Object Access Protocol (SOAP) 1.1. http://www.w3.org/TR/SOAP, May
2000.
[8] Roberto Chinnici, Martin Gudgin, Jean-Jacques Moreau, and Sanjiva Weerawarana. Web Services Description
Language Version 1.2. http://www.w3.org/TR/2002/WD-wsdl12-20020709/, July 2002. W3C Working Draft 9.
[9] Erik Christensen, Francisco Curbera, Greg Meredith, and Sanjiva Weerawarana. Web Services Description Language.
http://www.w3.org/TR/wsdl, March 2001. Revision 1.1 - March 15, 2002.
[10] Francisco Curbera, Yaron Goland, Yohannes Klein, Frank Leymann, Dieter Roller, and Sanjiva Weerawarana.
Business Process Execution Language for Web Services. http://www.ibm.com/developerworks/library/ws-bpel/.
Version 1.0 - July 31, 2002.
[11] Distributed Systems Department Pervasive Collaborative Computing Environment Project (PCCE), LBL. PCCE
Quarterly Reports. http://www-itg.lbl.gov/Collaboratories/quarterly-reports.html, April 2002.
[12] David C. Fallside. XML Schema Part 0: Primer. http://www.w3.org/TR/xmlschema-0/, May 2001.
[13] I. Foster and C. Kesselman, editors. The Grid: Blueprint for a Future Computing Infrastructure. Morgan
Kaufmann Publishers, July 1998.
[14] Ian Foster, Carl Kesselman, Jeffrey Nick, and Steven Tuecke. The Physiology of the Grid: An Open Grid Services
Architecture for Distributed Systems Integration. http://www.globus.org/research/papers/ogsa.pdf, January 2002.
[15] Ian Foster, Carl Kesselman, and Steve Tuecke. The Anatomy of the Grid: Enabling Scalable Virtual Organizations.
International Journal of Supercomputing Applications, 15(3), 2002.
[16] Dennis Gannon, Rachana Ananthakrishnan, Sriram Krishnan, Madhusudhan Govindaraju, Lavanya
Ramakrishnan, and Aleksander Slominski. Grid Web Services and Application Factories.
http://www.extreme.indiana.edu/xcat/AppFactory.pdf, June 2002.
[17] The Globus Project. http://www.globus.org/, June 2002.
[18] Steve Graham, Simeon Simeonov, Toufic Boubez, Doug Davis, Glen Daniels, Yuichi Nakamura, and Ryo
Neyama. Building Web Services With Java. SAMS, 2002.
[19] IBM. The Web Services Description Language for Java Toolkit (WSDL4J). http://www-
124.ibm.com/developerworks/projects/wsdl4j, July 2002.
[20] Frank Leymann.Web Services Flow Language. http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf,
May 2001.
[21] OGSI Technology Preview Release. http://www.globus.org/ogsa/releases/TechPreview/, June 2002.
[22] Apache Jakarta Project. Apache Tomcat. http://jakarta.apache.org/tomcat/, June 2002.
[23] Apache XML Project. Apache Axis. http://xml.apache.org/axis/, June 2002.
[24] Sun Microsystems Inc. Java Server Pages. http://java.sun.com/products/jsp, 2002.
[25] Sun Microsystems Inc. Java Servlet Technology. http://java.sun.com/products/servlet/index.html, 2002.
[26] Satish Thatte. XLANG: Web services for Business Process Design.
http://www.gotdotnet.com/team/xml wsspecs/xlang-c/default.htm, 2001.
[27] The Hewlett-Packard Company. Web Services Conversation Language (WSCL) 1.0.
http://www.w3.org/TR/wscl10/, March 2002.
[28] Steven Tuecke, Karl Czajkowski, Ian Foster, Jeffrey Frey, Steve Graham, and Carl Kesselman. Grid Service
Specification (Draft 2). http://www.gridforum.org/ogsi-wg/drafts/GS Spec draft02 2002-06-13.pdf, June 2002.
[29] UDDI Technical White Paper. http://www-3.ibm.com/services/uddi/pubs/Iru UDDI Technical White Paper.pdf,
September 2000. Universal Description, Discovery and Integration is for discovering web services.
[30] Keith Visco and Assaf Arkin. Castor. http://castor.exolab.org/, 2002.
[31] World Wide Web Consortium. http://www.w3.org/, June 2002.
本文地址:http://com.8s8s.com/it/it36924.htm