CN1637710A - 用于调度数据处理基础结构中工作单元执行的方法和系统 - Google Patents
用于调度数据处理基础结构中工作单元执行的方法和系统 Download PDFInfo
- Publication number
- CN1637710A CN1637710A CNA2004100849166A CN200410084916A CN1637710A CN 1637710 A CN1637710 A CN 1637710A CN A2004100849166 A CNA2004100849166 A CN A2004100849166A CN 200410084916 A CN200410084916 A CN 200410084916A CN 1637710 A CN1637710 A CN 1637710A
- Authority
- CN
- China
- Prior art keywords
- external service
- message
- descriptor
- request message
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了用于从一个中心控制点调度对Web服务的调用的方法和相应系统。为此,调度器(205)访问工作负载数据库(220),工作负载数据库(220)把一个执行代理(210)和一个描述符(240)与每个将提交的作业相关联。在此方案中,描述符识别所希望的Web服务(225)和相应的WSDL文档(245)的地址,其指定由Web服务所支持的消息的结构。描述符还包括将传送给Web服务的请求消息的实际内容。每当提交作业用以执行时,调度器把其描述符发送给相关代理。作为响应,代理下载相应Web服务的WSDL文档,然后建立针对Web服务的请求消息(250),把所希望的内容嵌入在WSDL文档中所指定结构中。代理把请求消息发送到实现Web服务的一个端点,以导致对Web服务的调用。
Description
技术领域
本发明涉及数据处理领域,更具体地讲,涉及一种方法以及一种相应的系统。
技术背景
调度方法通常用于一个数据处理系统,以控制不同的工作单元(例如批处理中的作业)的提交。为此,最近若干年中,已提出了多种类型的调度器,以自动化大量作业的提交。调度器的一个例子是,IBM公司的“Tivoli WorkloadScheduler”。
一个调度器,根据预先制定的计划提交作业,这一计划建立了一个所希望的作业的执行流程。凡当必须提交一个作业时,调度器把一个执行请求发送于一个相应的代理,代理直接控制作业的执行,并把反馈信息返回到调度器。在这一方式下,为所有作业提供了一个单一的中心控制点。
而且,大多数可用的调度器都提供了额外的服务。通常,在处理时态和前驱约束(例如,由其它作业的完成或系统资源的可用性所定义的)方面,调度器功能是十分完善的。还可以为调度器配备图形用户接口(GUI),GUI允许创建、修改以及删除作业或计划的定义,这允许控制和监视调度器所执行的操作。而且,某些调度器还集成了性能监视、负载平衡与/或报告功能。
在这一技术领域中,人们所熟知的调度器的一个缺点是,它们是专门针对某一个公司内的一个封闭的环境中的工作而设计的。事实上,调度器通常提交仅在在单个台计算机上执行的工作单元(其中,调度器本身正在运行),或至多支持对通过公司专用网络连接在一起的一系列计算机的管理。
总之,在这一技术领域中,尚无已知的调度器可用于在一个开放环境中控制外部服务(通常由第三方所提供)的调用。实际上,能够以多种方式访问外部服务,通常这些方式与调度器的要求不兼容。
Internet,特别是Web服务的广泛流行,加剧了这一问题。一个Web服务(也称为应用服务)由一系列功能组成,其它应用可通过一个以标准化方式定义的(不管所提供的功能的实际的实现)接口利用这些功能。可经由普通存在的协议和数据格式(例如HTTP、SOAP以及XML)对Web服务加以访问。在这一方式下,Web服务已成为应用集成的标准平台,并已成为转向Internet上分布式计算的基本构筑模块。
因此,可用的调度器的局限性,严重妨碍了对Internet的利用。特别是,这一局限性妨碍了传统的应用与第三方所提供的Web服务(例如,在电子商务应用中实现在线事务处理时)的互操作性。
发明内容
本发明的一个目的是,使调度器能够管理外部服务。
具体地讲,本发明的一个目的是允许调度器调用外部服务。
本发明的另一个目的是,提供一种能够在异构环境中使用的调度方法。
本发明的又一个目的是,支持调度器与外部服务的集成。
具体地讲,本发明的一个目的是,把调度器中已经可用的额外的功能用于管理外部服务。
通过一种在一个具有分布式体系结构的数据处理基础结构中调度工作单元的执行的方法,实现这些以及其它相关的目的,在一个中心调度应用的控制下,该方法包括下列步骤:把至少一个工作单元与一个描述符相关联,其中描述符包括一个对可根据一个预先定义的接口文档来访问的一个外部服务进行指示的指示信息;根据一个预先定义的计划,提交用于执行的工作单元;检索与所提交的工作单元相关的每一外部服务的接口文档;根据相应的接口文档,为每一与所提交的工作单元相关的外部服务建立一条请求消息;以及把每一条请求消息发送到相应的外部服务,以导致对外部服务的调用。
本发明还提供了一种用于执行该方法的计算机程序,以及一种体现该程序的产品。而且,还包括一种用于调度工作单元的执行的相应系统以及一种包含该系统的数据处理基础结构。
在所附权利要求中阐述了被视为本发明的特性的新型特性。然而,通过参照以下的详细描述,并结合附图加以阅读,将可对本发明本身以及本发明的这些以及其它相关的目的和优点最好地加以理解。
附图说明
图1a是一个示意性方框图,描述了其中可以使用本发明的方法的一个数据处理基础结构;
图1b描述了该基础结构的一个通用计算机的功能块;
图2描述了可以用于实践该方法的软件部件;
图3a~3c描述了与该方法的图示性实现相关的图表。
具体实施方式
具体参照图1a,图1a图示了具有分布式体系结构的数据处理基础结构100的一个示意性方框图。数据处理基础结构100包括一个中心调度服务器105,用于提交非交互作业。调度服务器105与控制作业的实际执行的多个服务器110进行通信。一或多个执行服务器110访问一个全局网络115,全局网络115通常由Internet构成。因此,这些执行服务器110能够与提供相应服务(例如实现存储器或客户关系管理)的多个Web服务器120进行交互。把Internet 115中可用的Web服务以列表形式登记在一个分布式注册表中,通过一组相应的服务器125实现这一功能。
更详细地讲,分布式注册表由一个符合UDDI(通用描述、发现以及集成)规范的基于XML的文档组成。在一个WSDL(Web服务描述语言)文档中指定由每一商业组织所提供的Web服务。WSDL文档由一组基于XML的定义组成,把这些定义划分成抽象定义和具体定义(以允许针对不同的技术重新使用抽象定义)。具体地讲,抽象定义包括类型(指定与Web服务相关的数据类型)、消息(指定加以交换的数据的类型)、操作(根据所涉及的消息,指定所支持的动作)、以及端口类型(对相关的操作进行分组)。另一方面,具体的定义包括绑定(针对端口类型,把具体的协议说明与操作和消息相关联)、端口(指定实现端口类型的Web服务器的网络地址)、以及服务(对相关的端口进行分组)。另外,WSDL规范还支持可扩展性元素,可用于提供专门针对具体技术的信息(以抽象定义或具体定义的形式)。
把WEDL文档的定义包含在以下的元素中:
<definitions name=myName targetNamespace=myNamespace>
....
<\definitions>
可以作为选项把属性“name”和“targeNamespace”用于以简化的形式识别WSDL文档。具体地讲,属性“name”提供了赋予WSDL文档的名字(“myName”),而属性“targetNamespace”指定了一个相应的名字空间(“myNamespace”)。名字空间由用于限定名字的唯一标识符组成。通常,作为名字空间给出一个所希望的Web内容点(例如一个Web网点地址)的URI(统一资源标识符)。
以下语句定义了类型:
<types>
<schema target Namespace=my Schema>
....
</schema>
</types>
标记“schema”可用于指定一个所希望的模式(“mySchema”)的URI。模式提供了根据XSD(XML模式定义)规范的数据类型的一个抽象表示。作为选择,也可以经由可扩展性元素(为类型定义提供了一个XML包容文件)添加特定的数据类型。优选的做法是,使用下列形式定义基本数据类型:
<element name=myElement type=myType/>
其中,属性“name”提供在WSDL文档中的数据类型的唯一名字(“myElement”),而属性“type”涉及所希望的数据类型。相反,复杂的数据类型通过组合多种数据类型和下面的形式来定义:
<element name=myElement>
<complex Type>
<all>
....
</all>
</complex Type>
</element>
每一条消息由一或多个部分组成,这些部分代表了其逻辑成份:
<message name=myMessage>
<part name=myPart element=myElement type=myType/>
....
</message>
消息的属性“name”提供了WSDL文档中一个唯一的名字(“myMessage”)。对于每一条消息部分,属性“name”定义了消息中的一个唯一的名字(“myPart”)。消息部分包括一或多个参数,每一个参数包括一个属性“element”,指定参数的名字(“myElement”);以及一个属性“type”,涉及其类型(“myType”)。
每一个端口类型的定义(具有相应的操作)拥有以下语法:
<port Type name=myPortType>
<operation name=myOperation>
<....name=myMessage message=myDefinition/>
</operation>
....
</portType>
端口类型的属性“name”提供了WSDL文档中的一个唯一的名字(“myPortType”)。针对每一个操作,属性“name”定义了端口类型中的一个唯一的名字(“myOperation”)。操作包括一或多条消息(由一个相应的元素限定,如以下所描述的),每一条消息由一个指定消息的名字(“myMessage”)的属性“name”以及一个涉及其抽象定义(“myDefinition”)的属性“message”加以定义。另外,可以使用另一个属性“parameterOrder”,指定(经由其参数的一个有序的列表)操作的一个实际签名(signature)。
WSDL文档支持4种操作类型:单向(其中,仅接收一条消息)、请求-回答(其中,发送一条消息,并接收一条相关的消息)、征求-回答(其中,接收一条消息,并发送一条相关的消息)、以及通告(其中,仅发送一条消息)。
单向操作:
<operation name=myOperation>
<input name=myInput message=myInputDefinition/>
</operation>
包括针对请求的一个元素“input”。
请求回答操作:
<operation name=myOperation>
<input name=myInput message=myInputDefinition/>
<output name=myOutput message=myOutputDefinition>
<fault name=myFault message=myFaultDefinition/>
</operation>
包括一个针对请求的元素“input”、一个针对回答的元素“Output”、以及一个针对任何错误的可以作为一个操作结果返回的元素“fault”。
把类似的消息包含于征求-回答操作中:
<operation name=myOperation>
<output name=myOutput message=myOutputDefinition/>
<input name=myInput message=myInputDefinition/>
<fault name=myFault message=myFaultDefinition/>
以及通告操作中:
<operation name=myOperation>
<output name=myOutput message=myOutputDefinition/>
</operation>
为了避免必须为操作中的每一条消息命名,WSDL文档提供了某些默认值。具体地讲,如果没有为单向或通告操作的单个消息指定属性“name”,则把该消息的名字默认为该操作的名字。同样,如果没有为请求-回答或征求-回答操作的输入/输出消息指定元素“name”,则把这些消息的名字分别默认为具有所附“request”/“solicit”或“response”的操作的名字。
由下列元素提供对每一端口类型的绑定:
<binding name=myBinding type=myPortType>
....
<operation name=myOperation>
....
<input name=myInput>
....
</input>
</output name=myOutput>
....
</output>
<fault name=myFault>
....
</fault>
</operation>
</binding>
属性“name”为WSDL文档中的绑定提供了一个唯一的名字(“myBinging”),属性“type”涉及被绑定的端口类型(“myPortType”)。把可扩展性元素用于添加关于绑定的进一步的信息,并用于为每一操作以及任何相应的输入、输出以及故障消息指定具体的文法:
每一服务(具有相应的端口)的定义具有下列的语法:
<service name=myService>
<port name=myPort binding=myBinding>
....
</port>
</service>
服务的属性“name”提供了WSDL文档中的一个唯一的名字。(“myService”)。针对每一个端口,属性“name”提供了WSDL文档中的一个唯一的名字(“myPort”),属性“binding”指的是相应的绑定(“myBinging”)。可扩展性元素用于指定一或多个Web服务器的具体网络地址(也叫做端点),这实际上实现了相应的端口类型的操作。如果服务具有共享一个端口类型的多个端口,则这些端口提供了一个语义上等价的行为(但采用了不同的绑定或端点)。
优选做法是,把各Web服务的定义分离成独立的文档,其中使用相应的元素(“import”)把它们包括进来,而且,可以把一个元素“documentation”用于任何定义,以提供人可读的信息。
使用针对大多数标准协议,例如针对SOAP(简单对象存取协议)的特定绑定元素,扩展WSDL。SOAP是一种专门设计的、旨在允许运行在任何一种操作系统上的程序进行通信的程序。特别是,SOAP的设计目标之一是,封装远程程序调用(即RPC)。
SOAP涉及结点之间的消息交换,具体地讲,SOAP消息从一个最初的发送方结点传送到一个最终接收方结点,可能沿相应的路径经过一系列中间结点。每一条SOAP消息由具有下列结构的一个基于XML的文档组成:
<env:Envelope
xmls:env=myNamespace env:encodingStyle=myEncodingStyle>
<env:Header>
....
</env:Header>
<env:Body>
....
</env:Body>
</env:Envelope>
把SOAP消息封入一个封装中,这一封装由元素“env:Envelope”加以定义。属性“xmls:env”允许指定一个相应的名字空间(“myNamespace”)。而且,属性“env:EnvelopeStyle”还用于提供限定SOAP消息(根据用于顺序化其内容的相应的规则)的内容的URI(“myEncodingStyle”)。
封装包括一个首标(由元素“env:Header”来定义)以及一个主体(由元素“env:Body”)加以定义。通常把它们由子元素(叫做“块”)构成。SOAP规范仅规定了如何处理这些元素,而没有规定如何处理它们的内容(内容是独立于具体应用的)。
具体地讲,首标是一个可选的元素,可用于提供附加的服务,其中的许多服务涉及中间结点的加入。把首标的块指向沿消息路径可能遇到的各个结点。根据这些结点的作用来标识它们,可以由一个属性“env:role”指定这些结点的作用。SOAP规范中定义了某些标准化的作用,例如“none”(意味着没有结点应处理该首标块)、“next”(与消息路径中所遇到的下一个结点相关)、或者“ultmateReceiver”(针对接收方结点)。如果属性“env:role”丢失,则把首标块指向接收方结点。为每一个结点假设一个特定作用的方法不是SOAP规范的一部分(而是在应用级上确定的)。
接收SOAP消息的每一个中间结点处理与其作用相关的首标块(如果可能的话),然后,沿所希望的路径传递SOAP消息。作为默认,把指向中间结点的首标块从输出的SOAP消息中删除(然而,作为处理的结果,可能会重新插入它们,不改变或改变它们的内容)。当必须把一个首标块指向任何有能力的中间结点时,添加一个具有值“true”的属性“env:relay”。在这一情况下,当不能对指向中间结点的首标块进行处理时,把每一个这样的首标块向前发送。可以插入一个具有值“true”的可选的属性“env:mustUnderstand”,以指示该中间结点绝对必须以与它们的规范相一致的方式处理针对其作用的首标块。否则,将不传递SOAP消息,并产生一个故障异常(如以下所描述的)。这一特性可以确保:将不忽视那些对于应用的总体目的来说至关重要的首标块。
另一方面,主体是一个必须由接收方结点加以处理的强制性元素。通常,在一个RPC应用中,主体用于调用接收方结点上的一个过程。为此,主体提供了将传送给过程的任何输入参数的标识和值。作为对此响应,接收方结点随返回一个SOAP消息,该SOAP消息具有提供了任何输出参数的标识和值的主体。针对RPC,SOAP提供了一种把过程的一个返回代码与其它输出参数相区别的方法。返回代码由一个元素“rpc:result”加以标识,这一元素直接包含返回代码或包含一个子元素“m:status”(它反过来包含实际的返回代码)。
对于在SOAP消息处理过程中出现故障的情况,SOAP规范提供了一种处理这些情况模式。为此,使用一条SOAP消息的主体中的单个元素“env:Fault”报告所有的故障,元素“env:Fault”包括两个强制性子元素“env:Code”和“env:Reason”。元素“env:Code”包括一个强制性子元素“env:Value”(它提供故障的一个标准化的标识符)以及一个可选的子元素“env:Subcode”(进一步限定故障)。元素“env:Reason”提供了一种对故障的人可读的解释。元素“env:Fault”还可以包括一个子元素“env:Node”,用于识别产生故障的结点(这一子元素的缺少,意味着故障由接收结点生成)。另一个可选的子元素“env:Role”指定了产生故障的结点所发挥的作用。
必须把SOAP消息绑定于一个下层的具体传输协议。对于沿消息路径的每一个结点,传输协议提供了可以传递到下一个结点(每一个结点可以支持一个不同的传输协议)的SOAP消息的一个顺序化的表示。另外,传输协议还实现了应用所需的不同的特征。一个特定的特征定义了一种由传输协议加以支持的消息的交换模式。例如,一个请求-回答模式提供了把作为一个请求的SOAP消息与作为回答的SOAP消息关联起来的能力(从而可在两个相邻的结点之间交换SOAP消息)。反过来,一个回答模式由一个非SOAP请求及跟随其的一个相应的SOAP回答组成。传输协议还提供了一个通用特征,这一特征允许对在接收方结点上所调用实际方法的选择应用全面控制。
SOAP规范支持大多数通用传输协议,例如HTTP。HTTP提供了一种通信模式,其中客户机使用一个URI识别一个服务器、使用下层TCP/IP协议连接到该服务器、发布一个HTTP请求,并且在同一连接上接收一个HTTP回答。HTTP绑定支持请求-回答模式(使用POST Web方法)或回答模式(使用GETWeb方法)。在这一情况下,以自然的方式提供请求-回答功能(因此,在应用或SOAP一级不需要进一步的支持)。
回过头来参考WSDL文档,由以下的相应元素中的语句表示针对SOAP协议的绑定:
<soap:binding transport=myTransport style=myDefaultStyle>
属性“transport”指示相应的传输协议(“myTransport”,例如HTTP)。如以下所描述的,属性“style”为每一所包含的操作指定了默认类型(“myDefaultStyle”)。
于是,绑定元素包括由相应的端口类型所支持的每一操作的具体定义。作为一个整体,由下列语句提供用于操作的信息:
<operation soapAction=myAction style=myStyle>
属性“soapAction”指定针对这一操作将加以执行的实际动作(“myAction”)。例如,在HTTP绑定中,该动作定义了相应HTTP请求的首标。属性“style”指示操作是面向RPC的(即包含输入/输出参数)还是面向文档的(即包含一或多个文本文档)。如果没有指定属性“style”,则其默认为元素“soap:Binding”中所指示的值。如果这一元素没有指定任何类型,则假设其为“document”。属性“style”的值影响到如何把信息组装于SOAP消息的主体中。具体地讲,在面向文档的操作中,把文档直接嵌入到主体中,而在面向RPC的操作中,每一个参数出现在一个包装中,给予包装与该参数相同的名字。
由下列语句定义每一条消息:
<soap:body parts=myParts use=myUse
encodingStyle=myEncodingStyle namespace=myNamespace/>
可选属性“parts”指示出现在主体中的消息部分,(“myParts”),如果省略了这一属性,则假设将把所有的消息部分包括在主体中。强制性属性“use”指示消息的定义的类型(“myUse”)。当该消息定义了消息的一个具体模式时,属性“use”具有值“literal”,或当该消息定义了一个使用某些编码规则顺序化了的抽象说明时,属性“use”具有值“encoded”。属性“encodingStyle”指定从限制性最强的编码规则到限制最弱的编码规则识别编码规则的URI的列表(“myEncodingStyle”)。属性“namespace”提供了为进行编码必须输入的名字空间(“myNamespace”)。
绑定还包括可以被插入到封装中的首标的定义:
<soap:header=myMessage part=myPart use=myUse
encodingStyle=myEncodingStyle namespace=myNamespace/>
属性“message”和“part”一起涉及出现在首标中的消息部分。以与元素“主体”相同的方式使用属性“use”、“encodingStyle”以及“namespace”。一个可选的元素“headerfault”(拥有与元素“header”相同的语法)允许指定用于传输相应错误信息的首标。
绑定随着对于相关端点地址的指定而结束:
<soap:Adress Location=myLocation/>
属性“location”提供了实现端点的Web服务器的URI(“myLocation”)。
在文档“Web Services Description Language(WSDL)1.1”中可以发现关于WSDL规范的更详细的描述,而在文档“SOAP Version 1.2 Part 0:Primer”中可以发现关于SOAP规范的更详细的描述。这两个文档均可以从“http://www.w3.org/”获得。
如图1b中所示,以上所描述的基础结构(调度服务器、执行服务器、Web服务器以及登记服务器)的一个通用计算机由几个与系统总线145并行连接的单元形成。更详细地讲,一或多个微处理器(μP)150控制计算机的操作,微处理器150把一个RAM 155(通常由交织模块组成)直接用作一个共享的工作存储器,一个ROM 160存储计算机的引导程序的基本代码。把外设单元群集在一条局部总线165的周围(通过相应的接口)。具体地讲,一个海量存储器由一或多个硬盘170和用于读取CD-ROM 180的驱动器175组成。而且,计算机还包括输入设备185(例如键盘和鼠标器),以及输出设备190(例如监视器和打印机)。一个网络接口卡(NIC)195用于把计算机连接于Internet。一个桥单元196把系统总线145与局部总线165相接。每一个微处理器150和桥单元196可以作为主代理加以操作,主代理请求对系统总线145的访问,以传输信息。一个仲裁器197管理对系统总线145的互斥访问的授权。
如果数据处理基础结构拥有另一种体系结构,或者如果每一台计算机拥有等价的结构(例如拥有不同的单元),则给予类似的考虑。而且,也可以把Web服务绑定于其它的协议(例如HTTP GET&POST或MIME),或者可以按不同的方式传送SOAP消息(例如在电子邮件中)。更一般地讲,当Web服务实现不同的功能或可根据等价的接口(甚至是使用不同的语言加以定义)对它们进行访问时,本发明的概念同样适用。
转到图2,图2描述了可用于实践本发明的方法的主要的软件部件。通常,把信息(程序和数据)存储器在不同的硬盘中,并且在运行程序时,随操作系统和其它应用程序(未在图中加以显示)一起(至少部分地)被加载到相应的工作存储器中。最初,把程序从CD-ROM安装到硬盘中。
具体地讲,一个中心调度应用控制不同作业的执行(通常在晚间)。例如,作业由工资计算程序、成本分析应用等组成。中心调度应用包括一个作业调度器205和一或多个代理210,它们均安装在相应的服务器上。
调度器205包括一个用于管理作业的提交的控制器215。控制器215访问一个工作负载数据库220,工作负载数据库220中存储着关于不同作业的信息。工作负载数据库220中包括针对每一个作业的一个描述符、计划的执行时间、估计的持续时间、以及对其它作业或系统资源的依赖性。
描述符标识被分派控制作业的执行的代理210。在标准的情况下,每一代理210直接执行一或多个(局部的)作业。在这种情况下,每一局部作业的描述符指定相应的步骤(使用一种合适的控制语言,例如JCL)。另外,或作为选择,所建议的方案还支持(远程)作业的提交,这些作业涉及对Web服务的调用。在这一情况下,每一远程作业的描述符标识与相应Web服务相关的WSDL文档。描述符还指定所涉及的服务的名字(如WSDL文档中所定义的)。另外,描述符还标识端口(在服务中)以及操作(在端口中)。于是,描述符包括定义将传送给Web服务的消息内容的有效载荷信息。通常,有效载荷信息由一个输入参数列表组成,某些输入参数可以为将在调用Web服务之前于运行时间对其进行解算的符号变量。作为选择,有效载荷信息也可以由简单文档组成。另外,描述符还可以包括认证信息(例如用户ID和口令),Web服务需要认证信息来批准其调用。
例如,通用远程作业的描述符拥有下列格式:
agent=myAgent
WSDLDocument=myWSDL
userid=myUserid
passwork=myPassword
serviceNameSpace=myNameSpace
serviceName=myService
PortName=myPort
operationName=myOperation
messageContent=
<myParameter>myVAlue</myParameter>
....
字段“agent”提供了相关代理的一个网络地址(“myAgent”),字段“WSDLDocument”指定了指向WSDL文档的URI(“myWSDL”)。字段“userid”和“password”通过其口令“myPassword”标识用户ID(“myUserid”)。字段“serviceNameSpace”和“serviceName”分别提供了所涉及服务的名字空间(“myNameSpace”)和名字(“myService”)。字段“portName”和“operationName”指定了端口(“myPort”)和操作(“myOperation”)。字段“messageContent”提供了有效载荷信息。把每一输入参数装入一个拥有相同名字(“myparameter”)的包装中。输入参数由一个值或一个符号变量(例如由冠以符号“$”的一个名字加以标识的)组成。
控制器215把关于每一个将要执行的作业的信息(存储在工作负载数据库220中)传输到一个创建器225。创建器225按所希望的顺序(例如在24小时期间)创建一或多个用于控制各批作业的执行流程的计划。根据几个因素建立每一计划,通常,影响执行流程的计划包括时态值(例如,日期、时间、星期)以及依赖性(例如前驱作业的完成或系统资源的可用性)。把计划存储在一个相应的信息中心库230中。通过控制器215把从信息中心库230所选择的一个计划提供给一个执行器235。执行器235提交该计划的作业,为此,执行器235检索(从工作负载数据库220)每一所提交作业(由240来表示)的描述符,并把其传输到所分派的代理210。
每一个代理210控制相应作业的执行。具体地讲,代理210直接执行每一局部作业的步骤。相反,对于每一远程作业,代理210从描述符240中所指定的URI检索相应Web服务(由245来表示)的WSDL文档。如以下所解释的,代理210建立一个SOAP请求250,并将SOAP请求250传输到将调用的Web服务(由255来表示)。Web服务255把一个SOAP请求260返回到代理210(如果需要的话)。一旦一个通用局部或远程作业的执行终止(由于已完成了所有的操作或出现了一个错误),则相应的代理210把反馈信息传送到控制器215(经由执行器235)。反馈信息包括作业的实际的开始时间和实际的结束时间、一个指定操作结果的返回代码、以及作业所产生的任何输出数据。因此,控制器215可以使用这一信息更新工作负载数据库220。
如果按另一种方式构造程序和相应的数据,如果支持不同的模块或功能,或者如果把程序提供在等价的计算机可读媒体(例如DVD)上,则可以给予类似的考虑。作为替代,可以按一种不同的方式(例如,使用查找表),把作业与相应的描述符相关联,工作负载数据库存储等价的信息,或者调度器仅把一个指向每一所提交的作业的指针传送给相应的代理。而且,指针还可以拥有一个不同的结构(例如,由一或多个独立的文件组成),或可以以其它格式(例如,使用一个类型/值对的列表,其中每一个类型/值对针对一个相应的输入参数),提供载荷信息。总之,本发明还适用于调度不同作业、交互任务的提交,更一般地将,本发明还适用于调度任何其它工作单元的提交。
现在参照图3a~3c,一种在以上所描述的基础结构中所执行的方法300,开始于调度器通路中的黑色开始圆圈302。继续前进到框304,在工作负载数据库中定义所希望的(局部的和远程的)作业(装入相应的描述符、所计划的执行时间、以及任何对其它作业或资源的依赖关系)。过程前进到框306,其中,创建一个新的计划(或者更新一个现存的计划),指定所希望的作业的执行流程。此时,可以提交这一计划,以由框308处的控制器加以执行。
接下来,活动的流程包括同时执行的两个分支。第一个分支由框310~318组成,第二个分支由框320~326组成,这两个分支在同中心的白/黑停止圆圈328处汇合。
特别考虑分支310~318。在框310处,执行器识别可用于运行的(根据它们所计划的执行时间和它们的依赖性)作业。在框312处,针对每一可用于运行的作业,从工作负载数据库中检索相关的描述符。前进到框314,从描述符中提取被派遣执行作业的代理。然后,该方法前进到框316,在框316中执行器把执行作业的一个请求发送到相关的代理(其中,执行的请求包括相应的描述符)。接下来,在框318处,执行器验证是否已经提交了该计划的所有作业。如果尚未提交的该计划的所有作业,则活动的流程返回到框310处,针对该计划的还准备加以提交的作业,重复以上所描述的操作。否则,在停止圆圈328处,该分支的执行结束。
与此同时,在另一个分支320~326中,在框320处,执行器处于等待状态。只要一个通用作业终止了其执行,则在框322处从相应的代理接收相应的反馈信息。继续前进到框323,执行器把反馈信息传送到控制器,然后将其登录到工作负载数据库中,而且,在框324处,控制器相应地更新工作负载数据库中所估计的作业持续时间。例如,作为针对已完成作业的举例所测值的一个运行平均值,计算所估计的持续时间(优选做法是过滤掉的区别极大的异常值)。接下来,在框326处进行测试,以判断是否已终止了该计划的所有作业。如果尚未终止该计划的所有作业,则活动的流程返回到框320,等待行其它作业的完成。否则,在停止圆圈328处,该分支的执行结束。
现在,转到通用代理的通路。响应对作业的执行的请求,进入决策框330。然后,根据作业的类型,活动的流程转向相应的分支。具体地讲,如果作业为局部的,则执行框332~334,而如果作业是远程的,则执行框336~375。在这两种情况中,接下来,该方法都在框376处汇合。
现在,考虑框332(局部作业),在代理的直接控制下,执行描述符中所指定的作业的步骤。只要作业完成,则在框334处,由代理收集作业的返回代码和结果输出数据。然后,活动的流程进入框376。
另一方面,当作业为远程作业时,在框336处,从描述符中所指定的URI下载相关Web服务的WSDL文档。前进到框338,把描述符的有效载荷信息中的任何符号变量解算成一个实际的值。然后,在框340处,确认这样获得的有效载荷信息。换句话说,代理验证有效载荷信息是否与WSDL文档中所提供的相应的定义相一致。假设形式上有效载荷信息是正确的,则在框341处建立一个相应的SOAP请求(根据WSDL文档中所指定的绑定)。然后在,框342处,处把SOAP请求嵌入一条HTTP消息中。
在框344处,识别实现所希望的操作的端点的地址(如WSDL文档中所定义的)。继续前进到框346处,代理打开一个到该端点的连接。作为对这一打开的响应,如果端点要求一个认证过程(决策框350),则把一个相应的请求返回至代理。在这种情况下,在框352处,代理把描述符中所提供的用户ID和口令传输到该端点。返回到端点的通路,在框354处进行测试,以确定是否批准从该代理那里所接收的信息所标识的用户访问该端点,如果批准,则在框356处授权这一访问。否则,则在框358处拒绝这一存取。在这两种情况下,在框359处把认证过程的结果返回到该代理。作为对这一返回的响应,进入代理的通路中的判定框360。如果已拒绝对该端点的访问,则在框362处,代理把作业的返回代码设置成一个错误值,然后过程直接进入框376。否则,如果已授权对该端点的访问,则活动的流程继续前进到框364,当端点不要求任何认证过程时,也从判断框350到达同样的点。
考虑框364。把SOAP请求传输到端点,作为对这一传输的响应,在框368处端点解释这一SOAP请求,并且调用所希望的Web服务。回过头来参照代理的通路,该方法根据操作的类型,在框370处转向相应的分支。如果WSDL文档指定:操作不返回任何回答,则在框371处把作业的返回代码设置成一个指示其完成的值。否则,在框372处,代理进入等待状态。只要端点返回了SOAP回答(框374),则在框375处,代理根据所接收的消息在WSDL文档中的定义,解释所接收的消息。具体地讲,如果Web服务提供了所期望的输出消息,则把作业的返回代码设置成完成值。相反,如果Web服务器提供了一条故障消息,则把作业的返回代码设置成错误值。在两种情况中,把从所接收的消息中提取的信息转储到作业的一个标准输出中。然后,活动的流程在框376汇合。
现在参照框376。把与作业的执行(即局部作业的步骤或对Web服务的调用)相关的反馈信息返回到调度器(参见相应通路中的框322)。
例如,让我们考虑以下的WSDL文档(存储在URI“rateWSDL”中):
<definitions name=rateName targetNamespace=rateNamespace
<types>
<schema targetNamespace=rateSchema
<element name=“rateInput”>
<complexType>
<all>
<element name=“currency”>
type=“string”/>
</all>
</complexType>
</element>
<element name=“rateOutput”>
<complexType>
<all>
<element name=“rate”
type=“float”/>
<all>
</complexType>
</element></schema></types><message name=“getRateInput”><part name=“body”element=“rateInput”/></message><message name=“getRateOutput”><part name=“body”element=“rateOutput”/></message><portType name=“ratePortType”><operation name=“getRate”>
<input message=“getRateInput”/>
<output message=“getRateOutput”/><operation></portType><binding name=“rateBinding”type=“ratePortType”>
<soap:binding style=“document”
transport=“http://schemas.xmlsoap.org.soap/http”/>
<operation name=“getRate”>
<soap:operation soapAction=myAction/>
<input>
<soap:Body use=“literal”/>
</input>
<output>
<soap:Body use=“literal”/>
</output>
</operation>
</binding>
<service name=“rateService“>
<documentation.
返回一个所希望的操作流的交换率
</documentation>
<port name=“ratePort”binding=“rateBinding”>
<soap:address location=“rateLocation”/>
</port>
</service>
</definitions>
WSDL文档(“rateNamespace”处的“rateName”)定义了一个十分简单的服务(“rateService”),由地址“rateLocation”处的端点使用HTTP上的SOAP提供这一服务。服务“rateService”包括具有绑定“rateBinding”的端口“ratePort”,端口“ratePort”支持操作“getRate”。操作“getRate”接收包括一个串类型的输入参数“rateInput”的SOAP请求(“getRateInput”),代表一个所选择的货币,并返回一个浮点类型的输出参数“rateOutput”,代表其汇率(两个参数均符合模式“rate Schema”)。
假设必须调度以上所描述的Web服务用于执行(例如每一天都执行),则在工作负载数据库中定义一个相应的作业,例如,该作业的描述符包括下列信息:
agent=rateAgent
WSDDocument=rate WSDL
userid=rateUserid
password=ratePassword
serviceNameSpace=rateNamespace
serviceName=rateService
PortName=ratePort
operationName=getRate
messageContent=<rateInput>$VAR<rateInput>
在所给出的这一例子中,由一个符号变量(“$VAR”)定义输入参数(“rateInput”),每次调用Web服务时,把该变量设置成所希望的货币的一个标识符。
每次针对一个不同的货币时,调度作业,以反复执行。凡当提交远程作业时,调度器向相关的代理“rateAgent”发送描述符。该代理把符号变量“$VAR”解算成一个实际的值(例如“USD”)。然后,创建相应的SOAP请求,并将其嵌入到以下的HTTP消息中:
POST
Host:rateLocation
content-Type:text/xml;charset=”utf-8”
content-Length:....
SoapAction:myAction
<CRLF>
<env:Envelope
xmls:env=“
http://schemas.xmlsoap.Org/soar/envelope/”>
<env:Body>
<m:getRateInput xmlns:m=rateNamespace>
<m:currency>USD</m:currency>
</m:getRateInput>
</env:Body>
</env:Envelope>
<CRLF>
然后,代理打开和端点“rateLocation”的HTTP连接。响应来自该端点的一个相应的请求,该代理提供用户ID“rateUserid”和相应的口令“ratePassword”。然后,传输以上所描述的HTTP消息。WSDL文档指定:Web服务必须返回一个回答。因此,该代理等待拥有下列格式的HTTP消息:
content-Type:text/xml;charset=”utf-8”
content=Length:....
<CRLF>
<env:Envelope
xmls:env=“
http://schemas.xmlsoap.org/soap/envelop/”>
<env:Body>
<m:getRateOutput xmlns:m=rateNamespace>
<m:rate>1.1875</m:rate>
</m:getRateOutput>
</env:Body>
</env:Envelope>
<CRLF>
HTTP消息中的SOAP回答指示:没有出现错误,并在输出参数“rate”中返回一个针对所希望的操作流的汇率值(1.1875)。
如果执行了一个等价的方法,或者如果由不同的模块执行了某些功能,则可以给予类似的考虑。然而,当Web服务实现其它类型的操作时、当使用一个不同的过程对代理进行确认(例如,涉及对数字证书的使用)时等,本发明的概念也是适用的。
更一般地讲,本发明提出了一种在一个拥有分布式体系结构的数据处理基础结构中调度工作单元的执行的方法。该方法包括一系列步骤,并且在一个中心调度应用的控制下执行这些步骤。该方法通过一个描述符启动相关的一或多个工作单元。描述符包括对一个可根据一个预先定义的接口文档来访问的外部服务进行指示的指示信息。然后,提交这些工作单元,以根据一个预先定义的计划加以执行。该方法包括连续检索与所提交的工作单元相关的每一个外部服务的接口文档。接下来,根据相应的接口文档,针对与所提交的工作单元相关的每一个外部服务建立一条请求消息。该方法结束向相应外部服务发送每一条请求消息,以导致对外部服务的调用。
所建议的方案可以使调度器管理外部服务。
具体地讲,这一方案允许调度器以十分简单的方式调用外部服务。
因此,本发明的方法非常适合于在异构环境中使用。
所设计的技术支持调度器与外部服务的集成。
这样,可以很容易地把已经可用于调度器的额外的功能用于管理外部服务。例如,可以处理时态和前驱约束、通过其GUI控制和监视调度器所执行的操作、或利用性能监视、负载平衡和报告功能(甚至不排除使用调度器提供其它功能)。
以上所描述的本发明的优选实施例还拥有更多的优点。
具体地讲,Web服务器向代理返回一条回答消息(根据回答消息在相应的WSDL文档中的定义,对回答消息加以解释)。
这样,把一个完整的通信回路闭合在调度器和Web服务器之间。有利的是,把请求消息的内容包含于描述符中,然后将其嵌入到相关WSDL文档中所指定的相应的结构中。
所建议的技术是非常简单的,但同时也是十分有效的。
作为一个进一步的改进,请求消息的内容包括一或多个符号变量,在运行时间把符号变量解算成实际的值。
这一特征,增加了该方法的灵活性(例如,允许使用不同的输入参数反复调用相同的Web服务)。
然而,根据本发明的方案,也可以使其甚至能够使用不返回任何回答消息的Web服务得以实现。作为替代,可以按不同的方式建立请求消息,例如,在本发明另一个实施例中,描述符直接存储实际的请求消息(代理对请求消息简单地加以检索,并将其发送给相应的Web服务)。而且,调度器还可以解算符号变量,或存储在描述符中的请求消息的内容可以仅由静态输入参数组成。
在本发明的一个优选实践中,调度器控制作业的提交,一或多个代理控制它们的实际执行。
所建议的体系结构能够利用预先存在的调度器(在工作负载数据库中简单地定义特定的作业,以调用Web服务)。作为替代把控制与Web服务进行交互的任务委托给代理,可以简单地把它们插入一个标准的基础结构中。
对把每一远程作业与相应Web服务器的WSDL文档相关联的一个所建议的选择是:包括把远程作业的地址存储在一个相应的描述符中。
这一定特征可以确保代理总能访问所希望的WSDL文档的最新版本。
进一步改进这一方案的一种方法是,把认证信息包括在描述符中,然后Web服务器将认证信息用于批准代理对其的调用。
这样,可以完全自动化对Web服务的调度,而无需任何安全上的顾虑。
尽管本发明的方法是专门为调用Web服务而设计的,但无损于其一般的可应用性。
实际上,所设计的这一方案是转向Internet上的分布式计算的一个重要步骤。特别是,本发明的方法有助于全面地利用Internet(例如,允许传统应用与第三方所提供的Web服务之间的互操作性)。
然而,根据本发明的这一方案也适合于使用拥有不同体系结构的调度应用(例如,其中把整个处理逻辑嵌入调度器中)加以实现。作为替代,也可以局部地存储器WSDL文档的一个拷贝(以及在描述符中指定相应的地址),或者直接把WSDL文档嵌入描述符中。例如,当某些Web服务的WSDL文档没有在Internet上发表时,这一方法是有用的。无论如何,所建议的方法可应用于不同的标准化的服务(例如,那些符合EDI规范的服务),或者更一般地讲,适用于调度任何外部服务。
有利的是,根据本发明的方案可通过一台计算机程序实现,即把这一方案作为嵌入一种合适的媒体中的一个相应的产品加以提供。
作为替代,把该程序预加载到硬盘中,通过Internet将其发送给各计算机,以广播形式,或更一般地讲,以任何其它直接可加载到计算机的工作存储器中的形式提供。然而,根据本发明的方法,使其可以使用硬件结构(例如集成在半导体材料的芯片中),或者使用软件和硬件的一个组合,加以实现。
自然,为了满足局部和特定的要求,本技术领域中的技术人员可以对以上所描述的方案进行多方面的修改和变更,但所有这些修改和变更均包含在由权利要求所定义的本发明的保护范围内。
Claims (12)
1.一种在一个具有分布式体系结构的数据处理基础结构中调度工作单元的执行的方法(300),在一个中心调度应用的控制下,该方法包括下列步骤:
把至少一个工作单元与一个描述符相关联(304),其中描述符包括一个对可根据一个预先定义的接口文档进行访问的一个外部服务进行指示的指示信息,
根据一个预先定义的计划,提交(308)用于执行的工作单元,
检索(336)与所提交的工作单元相关的每一外部服务的接口文档,
根据相应的接口文档,为每一与所提交的工作单元相关的外部服务建立(338~342)一条请求消息,以及
把每一条请求消息发送(364)到相应的外部服务,以导致对外部服务的调用。
2.根据权利要求1所述的方法(300),还包括下列步骤:
从每一被调用的外部服务接收(370)一条回答消息,以及
根据相应的接口文档,解释(375)每一回答消息。
3.如权利要求1或2所述的方法(300),其中,接口文档指定了每条消息的结构,而且其中,描述符还包括一个对请求消息的内容进行指示的指示信息,建立(338~342)请求消息的步骤包括:
把请求消息的内容嵌入(341~342)相应的结构。
4.如权利要求3所述的方法(300),其中,对请求消息的内容进行指示的指示信息包括一组将传送给外部服务的输入参数,该组的至少一个输入参数为一个符号变量,建立(338~342)请求消息的步骤还包括:
把每一符号变量解算(338)成一个实际的值。
5.如权利要求1至4中任何一个权利要求所述的方法(300),其中,中心调度应用包括一个调度器和至少一个代理,调度器执行关联(304)和提交(308)的步骤,而且其中,每一个描述符还包括一个对与相应工作单元相关的代理进行指示的指示信息,该方法还包括下列步骤:
调度器把一个执行每一所提交的工作单元的请求发送(316)到相关的代理,执行的请求包括对相应的描述符进行指示的指示信息,以及
代理检索(336)相应外部服务的接口文档,建立(338~342)针对外部服务的请求消息,以及响应对执行的请求,把请求消息发送(364)到外部服务。
6.如权利要求1至5中任何一个权利要求所述的方法(300),其中,对接口文档进行指示的指示信息由存储接口文档的基础结构中的一个外部位置的一个地址组成,检索接口文档的步骤包括:
从相应的外部位置下载(336)接口文档。
7.如权利要求1至6中任何一个权利要求所述的方法(300),其中,描述符包括针对外部服务的认证信息,该方法还包括下列步骤:
把认证信息发送(352)到外部服务,根据认证信息批准对外部服务的调用。
8.如权利要求1至7中任何一个权利要求所述的方法(300),其中,外部服务由一个Web服务组成。
9.一台计算机程序(205,210),可直接加载到数据处理系统(105,110)的一个工作存储器中,当在系统中执行该程序时用于执行根据权利要1~8中任何一个权利要求所述的方法。
10.一台计算机程序(180),包括体现如权利要求9所述的程序(205,210)的计算机可读媒体。
11.一种用于在一个具有分布式体系结构的数据处理基础结构(100)中调度工作单元的执行的系统(105,110),该系统包括一个中心调度应用(205,210),拥有用于把至少一个工作单元与一个描述符相关联的机制(220),其中描述符包括一个对可根据一个预先定义的接口文档进行访问的一个外部服务进行指示的指示信息;用于根据一个预先定义的计划,提交用于执行的工作单元的机制(205);用于检索与所提交的工作单元相关的每一外部服务的接口文档的机制(210);用于根据相应的接口文档,为每一与所提交的工作单元相关的外部服务建立一条请求消息的机制(210);以及用于把每一条请求消息发送到相应的外部服务,以导致对外部服务的调用的机制(210)。
12.一种具有分布式体系结构的数据处理基础结构(100),包括如权利要求11所述的系统(105,110)以及至少一个用于实现每一外部服务的外部服务器(120)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03368129 | 2003-12-30 | ||
EP03368129.7 | 2003-12-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1637710A true CN1637710A (zh) | 2005-07-13 |
CN100356329C CN100356329C (zh) | 2007-12-19 |
Family
ID=34707291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100849166A Active CN100356329C (zh) | 2003-12-30 | 2004-10-10 | 用于调度数据处理基础结构中工作单元执行的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7404189B2 (zh) |
JP (1) | JP3965185B2 (zh) |
CN (1) | CN100356329C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100383731C (zh) * | 2005-08-25 | 2008-04-23 | 复旦大学 | 一个Web Services的实时、动态合成方法 |
CN100571167C (zh) * | 2006-02-24 | 2009-12-16 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
CN101853156A (zh) * | 2010-05-12 | 2010-10-06 | 上海普元信息技术股份有限公司 | 构件化软件系统中实现Web Service调用的方法 |
CN103729330A (zh) * | 2006-08-10 | 2014-04-16 | 起元科技有限公司 | 在基于图的计算中分配服务 |
CN101542438B (zh) * | 2006-11-30 | 2014-05-28 | 国际商业机器公司 | 用于修改表示网络服务端点的端点引用的方法和装置 |
CN109522139A (zh) * | 2018-11-23 | 2019-03-26 | 杭州数梦工场科技有限公司 | 一种数据表服务生成调用方法、装置、设备及存储介质 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100153183A1 (en) * | 1996-09-20 | 2010-06-17 | Strategyn, Inc. | Product design |
US7099037B2 (en) * | 2003-04-22 | 2006-08-29 | Lightning Source Inc. | N-up printing |
CN1620060B (zh) * | 2003-11-17 | 2010-04-28 | 国际商业机器公司 | 把浏览器不兼容的信息整合在网络内容中以及显示该信息的方法和设备 |
US8171474B2 (en) * | 2004-10-01 | 2012-05-01 | Serguei Mankovski | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface |
US9760647B2 (en) * | 2004-12-08 | 2017-09-12 | Oracle International Corporation | Techniques for automatically exposing, as web services, procedures and functions stored in a database |
US7983209B2 (en) * | 2005-04-18 | 2011-07-19 | Research In Motion Limited | System and method for producing notification based web services |
US8464317B2 (en) * | 2005-05-06 | 2013-06-11 | International Business Machines Corporation | Method and system for creating a protected object namespace from a WSDL resource description |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
US8156500B2 (en) * | 2005-07-01 | 2012-04-10 | Microsoft Corporation | Real-time self tuning of planned actions in a distributed environment |
US7590935B2 (en) * | 2005-07-08 | 2009-09-15 | Microsoft Corporation | Dynamic generation of WSDL documents based on database metadata |
US7603474B2 (en) | 2005-10-05 | 2009-10-13 | Microsoft Corporation | Efficient endpoint matching using a header-to-bit conversion table |
JP5025116B2 (ja) * | 2005-10-25 | 2012-09-12 | キヤノン株式会社 | 情報処理装置及びその制御方法ならびにプログラム |
US7739698B2 (en) * | 2006-05-25 | 2010-06-15 | International Business Machines Corporation | Multiplatform API usage tool |
KR100880536B1 (ko) * | 2007-01-05 | 2009-01-28 | 아주대학교산학협력단 | 이기종 컴퓨팅 및 서비스 통합을 위한 오픈 프레임워크시스템 |
US7958188B2 (en) * | 2007-05-04 | 2011-06-07 | International Business Machines Corporation | Transaction-initiated batch processing |
US7797340B2 (en) * | 2007-06-15 | 2010-09-14 | Samsung Electronics Co., Ltd. | Method and system for searchable web services |
KR101758670B1 (ko) * | 2007-07-26 | 2017-07-18 | 아브 이니티오 테크놀로지 엘엘시 | 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템 |
US8214244B2 (en) | 2008-05-30 | 2012-07-03 | Strategyn, Inc. | Commercial investment analysis |
JP5142773B2 (ja) * | 2008-03-13 | 2013-02-13 | キヤノン株式会社 | メッセージ生成処理方法及びメッセージ生成処理装置 |
WO2009126591A1 (en) | 2008-04-07 | 2009-10-15 | Express Mobile, Inc. | Systems and methods for programming mobile devices |
US8949713B1 (en) * | 2008-06-30 | 2015-02-03 | Amazon Technologies, Inc. | Version-specific request processing |
US8266477B2 (en) | 2009-01-09 | 2012-09-11 | Ca, Inc. | System and method for modifying execution of scripts for a job scheduler using deontic logic |
US8832173B2 (en) * | 2009-01-20 | 2014-09-09 | Sap Ag | System and method of multithreaded processing across multiple servers |
KR20150038758A (ko) * | 2009-02-13 | 2015-04-08 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
US8666977B2 (en) | 2009-05-18 | 2014-03-04 | Strategyn Holdings, Llc | Needs-based mapping and processing engine |
US8296774B2 (en) * | 2009-06-26 | 2012-10-23 | Microsoft Corporation | Service-based endpoint discovery for client-side load balancing |
US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
EP2583168B1 (en) | 2010-06-15 | 2017-11-08 | Ab Initio Technology LLC | Dynamically loading graph-based computations |
US20130103767A1 (en) * | 2011-10-21 | 2013-04-25 | Microsoft Corporation | Return notifications of tasks performed with entities |
US8949429B1 (en) * | 2011-12-23 | 2015-02-03 | Amazon Technologies, Inc. | Client-managed hierarchical resource allocation |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
US20150074678A1 (en) * | 2013-09-09 | 2015-03-12 | Avraham Vachnis | Device and method for automating a process of defining a cloud computing resource |
WO2015085152A1 (en) | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
TW201539218A (zh) | 2014-02-17 | 2015-10-16 | Microsoft Technology Licensing Llc | 與外部內容項目之間的編碼的關聯性 |
US9948698B2 (en) | 2015-06-04 | 2018-04-17 | International Business Machines Corporation | Web services documentation |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
AU2016377516B2 (en) | 2015-12-21 | 2020-01-30 | Ab Initio Technology Llc | Sub-graph interface generation |
US11971860B2 (en) | 2015-12-28 | 2024-04-30 | Dropbox, Inc. | Embedded folder views |
US11741300B2 (en) | 2017-11-03 | 2023-08-29 | Dropbox, Inc. | Embedded spreadsheet data implementation and synchronization |
US10514949B1 (en) * | 2018-12-11 | 2019-12-24 | Signals Analytics Ltd. | Efficient data processing in a serverless environment |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2692058B1 (fr) * | 1992-06-09 | 1994-07-29 | Bull Sa | Systeme de traitement transactionnel entre un serveur informatique et une pluralite de stations de travail. |
GB2302966A (en) * | 1995-06-30 | 1997-02-05 | Ibm | Transaction processing with a reduced-kernel operating system |
US6014686A (en) * | 1996-06-21 | 2000-01-11 | Telcordia Technologies, Inc. | Apparatus and methods for highly available directory services in the distributed computing environment |
US5790789A (en) * | 1996-08-02 | 1998-08-04 | Suarez; Larry | Method and architecture for the creation, control and deployment of services within a distributed computer environment |
US6247056B1 (en) | 1997-02-03 | 2001-06-12 | Oracle Corporation | Method and apparatus for handling client request with a distributed web application server |
US6263358B1 (en) * | 1997-07-25 | 2001-07-17 | British Telecommunications Public Limited Company | Scheduler for a software system having means for allocating tasks |
US6256771B1 (en) * | 1997-10-16 | 2001-07-03 | At&T Corp. | Method and apparatus for providing a dynamic service composition software architecture |
WO1999044123A1 (en) * | 1998-02-26 | 1999-09-02 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6237005B1 (en) * | 1998-06-29 | 2001-05-22 | Compaq Computer Corporation | Web server mechanism for processing multiple transactions in an interpreted language execution environment |
US6282697B1 (en) * | 1998-09-18 | 2001-08-28 | Wylci Fables | Computer processing and programming method using autonomous data handlers |
US7386586B1 (en) * | 1998-12-22 | 2008-06-10 | Computer Associates Think, Inc. | System for scheduling and monitoring computer processes |
GB2346990B (en) * | 1999-02-20 | 2003-07-09 | Ibm | Client/server transaction data processing system with automatic distributed coordinator set up into a linear chain for use of linear commit optimization |
US6363065B1 (en) * | 1999-11-10 | 2002-03-26 | Quintum Technologies, Inc. | okApparatus for a voice over IP (voIP) telephony gateway and methods for use therein |
US6573910B1 (en) * | 1999-11-23 | 2003-06-03 | Xerox Corporation | Interactive distributed communication method and system for bidding on, scheduling, routing and executing a document processing job |
US20020161814A1 (en) * | 2000-10-04 | 2002-10-31 | Wical Kelly J. | Batch processing system running in parallel on automated and distributed replication systems |
US8812666B2 (en) * | 2001-01-29 | 2014-08-19 | Da Capital Fund Limited Liability Company | Remote proxy server agent |
US7099938B2 (en) * | 2001-03-23 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Method, computer system, and computer program product for monitoring services of an information technology environment |
US20050155042A1 (en) * | 2001-07-02 | 2005-07-14 | Michael Kolb | Component-based system for distributed applications |
US7124415B1 (en) * | 2001-07-11 | 2006-10-17 | Redback Networks Inc. | Use of transaction agents to perform distributed transactions |
EP1283466A1 (en) * | 2001-08-06 | 2003-02-12 | Hewlett-Packard Company (a Delaware corporation) | Management system for a cluster |
US20030204547A1 (en) * | 2002-04-29 | 2003-10-30 | Kevin Davis | Technique for scheduling computer processes |
US8219608B2 (en) * | 2002-06-20 | 2012-07-10 | Koninklijke Philips Electronics N.V. | Scalable architecture for web services |
US7549153B2 (en) * | 2002-07-22 | 2009-06-16 | Amberpoint, Inc. | Apparatus and method for content and context processing of web service traffic |
JP3874706B2 (ja) | 2002-07-29 | 2007-01-31 | 株式会社東芝 | アプリケーションプログラムプラン生成装置、アプリケーションプログラムプラン生成方法、プログラム及び記録媒体 |
US7440940B2 (en) * | 2002-12-02 | 2008-10-21 | Sap Ag | Web service agent |
US7383550B2 (en) * | 2002-12-23 | 2008-06-03 | International Business Machines Corporation | Topology aware grid services scheduler architecture |
GB0305959D0 (en) * | 2003-03-15 | 2003-04-23 | Ibm | Client web service access |
US7086063B1 (en) * | 2003-03-25 | 2006-08-01 | Electric Cloud, Inc. | System and method for file caching in a distributed program build environment |
JP3947136B2 (ja) | 2003-05-30 | 2007-07-18 | 株式会社東芝 | ウェブサービスシステム、フロー展開支援装置およびフロー展開支援プログラム |
-
2004
- 2004-06-30 US US10/880,860 patent/US7404189B2/en active Active
- 2004-10-10 CN CNB2004100849166A patent/CN100356329C/zh active Active
- 2004-12-21 JP JP2004369823A patent/JP3965185B2/ja active Active
-
2008
- 2008-05-12 US US12/118,933 patent/US7707587B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100383731C (zh) * | 2005-08-25 | 2008-04-23 | 复旦大学 | 一个Web Services的实时、动态合成方法 |
CN100571167C (zh) * | 2006-02-24 | 2009-12-16 | 国际商业机器公司 | Web服务业务流程的单元测试的方法和设备 |
CN103729330A (zh) * | 2006-08-10 | 2014-04-16 | 起元科技有限公司 | 在基于图的计算中分配服务 |
CN103729330B (zh) * | 2006-08-10 | 2017-04-19 | 起元科技有限公司 | 在基于图的计算中分配服务 |
CN101542438B (zh) * | 2006-11-30 | 2014-05-28 | 国际商业机器公司 | 用于修改表示网络服务端点的端点引用的方法和装置 |
CN101853156A (zh) * | 2010-05-12 | 2010-10-06 | 上海普元信息技术股份有限公司 | 构件化软件系统中实现Web Service调用的方法 |
CN101853156B (zh) * | 2010-05-12 | 2013-07-17 | 上海普元信息技术股份有限公司 | 构件化软件系统中实现Web Service调用的方法 |
CN109522139A (zh) * | 2018-11-23 | 2019-03-26 | 杭州数梦工场科技有限公司 | 一种数据表服务生成调用方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100356329C (zh) | 2007-12-19 |
JP2005196767A (ja) | 2005-07-21 |
JP3965185B2 (ja) | 2007-08-29 |
US20050149935A1 (en) | 2005-07-07 |
US20080307420A1 (en) | 2008-12-11 |
US7404189B2 (en) | 2008-07-22 |
US7707587B2 (en) | 2010-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1637710A (zh) | 用于调度数据处理基础结构中工作单元执行的方法和系统 | |
CN1172505C (zh) | 在互联网的服务器与具芯片卡的终端间传送数据的方法 | |
CN1154298C (zh) | 分布式网络计算系统及该系统用的信息交换装置和方法 | |
CN100336018C (zh) | 用于对应用启动进行管理的便携式终端和方法 | |
CN1306406C (zh) | 在多个输入/输出子系统映像上共享通信适配器的方法和系统 | |
CN101044498A (zh) | 工作流服务体系结构 | |
CN101069169A (zh) | 在网络元件处缓存内容和状态数据 | |
CN1495601A (zh) | 移动计算装置用户打印文档的系统和方法 | |
CN1901490A (zh) | 用于提供Web服务的方法、装置以及程序产品 | |
CN1677277A (zh) | 服务提供方法、服务提供商设备、信息处理方法和设备 | |
CN1575466A (zh) | 存在管理的实现 | |
CN1677365A (zh) | 通过属性控制的测试实例继承 | |
CN1573759A (zh) | 公共查询运行期系统以及应用编程接口 | |
CN1437812A (zh) | 对设置参数层进行组织及组合以生成与通讯网络相关的实体的整体文件 | |
CN1771496A (zh) | 涉及信息访问的系统和方法 | |
CN1200514A (zh) | 信息处理方法和装置及存储服务器控制程序的存储器媒体 | |
CN1658184A (zh) | 网络系统、分布式处理方法和信息处理装置 | |
CN101056208A (zh) | 业务跟踪方法、网络设备、o&m控制器、业务请求装置 | |
CN1773545A (zh) | 域名购买的基于消息的网络配置 | |
CN1313917C (zh) | 数据处理装置以及数据处理方法 | |
CN1765105A (zh) | 具有修改设施的协议栈 | |
CN1787495A (zh) | 可靠地传输排队的应用程序消息 | |
CN1748201A (zh) | 数据驱动的应用程序集成适配器 | |
CN101056262A (zh) | 应用系统业务数据和网络数据的连接与交换方法 | |
CN1276123A (zh) | 面向对象的点到点通信的方法及实施该方法的通信设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |