CN103729330B - 在基于图的计算中分配服务 - Google Patents
在基于图的计算中分配服务 Download PDFInfo
- Publication number
- CN103729330B CN103729330B CN201310403428.6A CN201310403428A CN103729330B CN 103729330 B CN103729330 B CN 103729330B CN 201310403428 A CN201310403428 A CN 201310403428A CN 103729330 B CN103729330 B CN 103729330B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- input
- calculating
- output
- record
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 40
- 230000009471 action Effects 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 29
- 239000000470 constituent Substances 0.000 claims description 16
- 239000000344 soap Substances 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 2
- 238000000638 solvent extraction Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1423—Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Abstract
通过以下步骤,根据与服务相关联的计算图来处理服务请求,所述步骤包括:接收来自服务客户方的用于所述计算图的输入,将所述输入作为数据流的记录提供给所述计算图,接收来自所述计算图的输出,以及将所述输出提供给所述服务客户方。以如下方式在基于图的计算中并行处理数据流:即,其具有这样的潜在能力(potentially),可并行执行不同类型的请求,可并行执行类似的请求类型,和/或可并行执行在请求内的工作元素。
Description
本申请是申请号为200780029791.9、申请日为2007年8月9日、发明名称为“在基于图的计算中分配服务”的发明专利申请的分案申请。
优先权
本申请要求申请号为60/836,745,申请日为2006年8月10日的美国临时专利申请的优先权,通过参考将其全部内容引入本申请中。
技术领域
本发明涉及在基于图的计算中分配服务(distributing services)。
背景技术
通常,复杂的商业系统以多级方式处理数据,将某一级所产生的数据馈送至下一级中。可通过有向(directed)数据流图来描述流经上述系统的全部信息流,所述图中的顶点表示组元(components)(所述组元可以是数据文件或是处理),并且所述图中的链路或“边”表示组元之间的数据流。
图还可用于直接调用(invoke)计算。来自公司Ab Initio SoftwareCorporation,Lexington,MA的带有图形开发环境(GDE)的“CO>OPERATING”具体展示(embody)了这种系统。根据这种系统所制作的图提供了用于获得进出各个处理(所述各个处理由图的组元表示)的信息的方法,提供了用于在所述处理之间移动信息的方法,还提供了用于为所述处理限定运行顺序(running order)的方法。这种系统包括用于选择处理之间(interprocess)的通信方法的算法和用于调度(schedule)处理执行的算法,并且还提供对所述图的执行的监视。
经分配后的服务机制(architecture)允许计算机程序通过诸如万维网等的网络接口来访问而获得其它程序的功能,而不必将这些其它程序的功能特性(functionality)引入它们自己的运行码(operating code)中。
发明内容
总体而言,一方面,通过执行下述步骤,根据与服务相关联的计算图来处理服务请求,其中所述步骤包括:接收来自服务客户方的用于所述计算图的输入,将所述输入作为数据流的记录提供给所述计算图,接收来自所述计算图的输出,以及将所述输出提供给所述服务客户方。
所述执行可包括一个或多个下述特征。
接收所述输入的步骤包括:识别来自所述服务客户方且在服务请求中的所述输入,以及将所述输入提供给所述计算图的步骤包括:使请求识别符与所述服务请求相关联,将包括所述输入的工作元素提供给所述计算图,使所述请求识别符与所述工作元素相关联,以及将所述请求识别符与所述工作元素的关联(association)传送至输出节点。识别所述输入的步骤包括从被封装的(encapsulated)请求提取所述输入。所述被封装的请求包括SOAP请求。接收所述输出的步骤包括:接收包括来自所述计算图的输出的工作元素,以及识别与所述工作元素相关联的请求识别符,以及将所述输出提供给所述服务客户方的步骤包括:产生对应由所述请求识别符所识别的所述服务请求的服务响应,所述服务响应包括包含在所述工作元素中的所述输出。产生所述服务响应的步骤包括:将所述输出嵌入被封装的响应中。所述被封装的响应包括SOAP响应。
通过下述步骤,根据所述计算图来处理第二服务请求,其中所述步骤包括:接收来自第二服务客户方的用于所述计算图的第二输入,将所述第二输入作为第二数据流的记录提供给所述计算图,接收来自所述计算图的第二输出,以及将所述第二输出提供给所述第二服务客户方;以及在所述计算图中,并行处理所述第一输入和所述第二输入。并行处理所述第一输入和所述第二输入的步骤包括:识别适用于所述第一输入的第一子图,在所述第一子图中处理所述第一输入,识别适用于所述第二输入的第二子图,在所述第二子图中处理所述第二输入,接收来自所述第一子图的第一输出,以及接收来自所述第二子图的第二输出,其中同时执行所述第一子图和所述第二子图。并行处理所述第一输入和所述第二输入的步骤包括:将子图的第一实例识别为可用,在所述子图的第一实例中处理所述第一输入,将所述子图的第二实例识别为可用,在所述子图的第二实例中处理所述第二输入,接收来自所述第一实例的第一输出,以及接收来自所述第二实例的第二输出,其中同时执行所述子图的第一实例和所述子图的第二实例。
总体而言,一方面,通过执行下述步骤,在基于图的计算中处理数据流,其中所述步骤包括:识别适用于所述数据流中的第一记录的第一图,识别适用于所述第一记录中的第一工作元素的第一子图,在所述第一子图中处理所述第一工作元素,识别适用于所述第一记录中的第二工作元素的第二子图,在所述第二子图中处理所述第二工作元素,接收来自所述第一子图的第一输出工作元素,接收来自所述第二子图的第二输出工作元素,使所述第一输出工作元素与所述第一记录相关联,以及使所述第二输出工作元素与所述第一记录相关联,其中至少部分地同时执行所述第一子图和所述第二子图。
总体而言,一方面,通过执行下述步骤,在基于图的计算中处理数据流,其中所述步骤包括:识别适用于所述数据流中的第一记录的第一图,将子图的第一实例识别为可用,在所述子图的第一实例中处理所述第一记录中的第一工作元素,将所述子图的第二实例识别为可用,在所述子图的第二实例中处理所述第一记录中的第二工作元素,接收来自所述第一实例的第一输出工作元素,接收来自所述第二实例的第二输出工作元素,使所述第一输出工作元素与所述第一记录相关联,以及使所述第二输出工作元素与所述第一记录相关联,其中至少部分地同时执行所述子图的所述第一实例和所述子图的所述第二实例。
由说明书及权利要求而使得本发明的其它特征和优点变得明显。
附图说明
图1A和图2示出了用于分配服务的系统的示意图。
图1B示出了用于调用服务的处理的流程图。
图3-5b示出了用于提供分配服务的图。
具体实施方式
在一些实例中,有两种方式来使基于图的计算与分配服务进行互动。在一些实例中,图用以调用服务且与所述服务相关联(relates to),使得所述服务似乎被当作图中的节点。在其它实例中,将应用(application)与图相关联,使得所述图提供服务。这两种情况可同时实现。例如,正给某个应用提供服务的图其自身可调用其它服务以执行其部分计算。例如,由某个图所调用的服务可由其它图来提供,使得第一图调用第二图,而不是将其包含作为子图。
在一些实例中,如图1A中所示,基于图的计算100的服务节点102通过调用在分配服务导向机制(distributed service-oriented architecture)中的服务来运行。也就是说,当执行服务节点102时,调用图100外部的服务108,作为所述服务的客户方。例如,服务节点102可使用SOAP、HTTP、XML以及WSDL等中的一种或多种的组合,与宿驻(hosted)在应用服务器106上的web服务插件104进行通信,以到达外部服务108,从而可使服务节点102访问web服务。如下所述,外部服务108自身可以是基于图的计算。可以某种分配方式来执行所述服务,其中所述分配方式使用各种用于分配计算任务的方法中的任意一种。
服务节点102以基于图的计算100的本地格式(native format)来接收来自其它图的节点(例如,节点112)的输入110,例如是以与Ab Initio的DML类似的数据描述语言来描述的记录。然后,节点102将其输入110格式化成适用于其使用的web服务类型的格式(例如SOAP或其它类型的基于被封装的请求),并将服务请求114传送给应用服务器106。请求114中的URL指示出将所述请求发送给应用服务器106、插件104以及服务108中的哪一个。请求114能以各种方式发送,包括通过HTTP和RPC(远程过程调用)来发送。在服务器106上的插件104把输进来的请求114重新格式化成合适的格式,且将合适的调用116传送给外部服务108。
当服务108执行了其所调用的任意运行之后,所述服务108将输出118返回给插件104。插件104将服务108的输出118重新格式化成合适的服务响应120,以返回至服务节点102。服务节点102将服务响应120再重新格式化成合适的输出格式,并将输出121传递至下游的图的节点(例如,节点122)。从其它的图的节点112、122、124及126来看,经分配后的服务节点102可以和其它任何节点一样参与(participate in)图的计算100。只要服务节点102接收的是其预期的响应120类型,则服务器106的机制和安排(诸如插件104的性质以及其如何与服务108通信(或者,例如,是否使用插件104)之类)就与图节点无关。如下所述,服务器106、插件104以及服务108自身可以分别是基于图的计算服务器、插件以及图。
在一些实例中,图100被管路化(pipelined),这意味着,每个节点是以管路化的顺序阶段(sequential phases)方式对大流量输入记录的单个记录或记录的集合进行处理。在给定阶段中,各后继(subsequent)节点在其所接收的来自在前(previous)节点的记录或记录的集合上工作,而各在前节点对输入流中的下一记录或记录的集合进行处理工作。服务节点102可通过以下方式来调整上述运行:即,在对应于在前服务请求的响应被接收到之前,服务节点102接收附加记录,并且将各所述附加记录所请求的工作分配给服务108。例如,如果服务108能够处理多重并行请求(multiple concurrent request),那么上述方式就能够在此实现。记录可由分散的(separate)或可分散的(separable)工作元素组成,可以用如针对记录所述的这种管路化阶段(pipelined stages)方式来处理所述工作元素。
如果对不同的请求114花费不同的时间量来处理,那么,与接收其输入110的次序相比较,服务节点102可以依照不同的次序(order)来接收响应。这就允许由单个节点102访问具有不同处理时间的多重服务。可以选择性地配置诸如服务节点102之类的服务节点,使服务节点依照与接收其输入110的次序不同的次序提供其输出121。为了允许这种并行处理而不使用用于服务节点102的多线程处理(multiple threaded process),并且在各请求114中均不包括描述图100的整个状态的数据(这样就能基于其返回而使用各请求114),服务节点102跟踪(keeps track of)待完成的(outstanding)请求114并且将其与输进来的响应120进行匹配。在一些实例中,图被管路化,以便一次一个节点地处理各个记录或工作元素,并且分散的节点处理分散的记录或工作元素,但是可在任意给定时间点将多个(multiple)记录或工作元素分派给单个服务节点102。
在被管路化的图中,服务节点102将每个记录(例如,数据流的每个记录)作为单个事务(transaction)来对待。基于单个输入记录中的域(fields)来产生对应的请求。一些域可定义请求的属性(例如,URL),而其它域被作为嵌入数据来传递。
在一些实例中,如图1B中的处理150中所示,在可由服务节点102访问的存储器中跟踪请求114与响应120之间的关系。所述存储器可以是向量、表、文件或其它此类数据结构。当输入记录110被接收时,如步骤152,该记录110的副本存储至存储器151,如步骤154。然后,服务节点102产生请求114,如步骤156,将所述请求发送至服务,如步骤158,以及将所请求的ID写入存储器,如步骤160,并使其与所存储的记录110的副本相关联。响应120被接收时,如步骤162,其包括与其中一个待完成的请求相对应的ID。服务节点102将该ID与存储器中的ID进行匹配,如步骤164,并且检索(retrieve)对应的输出记录110的副本,如步骤166。所述记录根据响应120进行更新,如步骤168,并产生输出121。如果将服务节点102配置为依照输出变为可用的次序来产生所述输出(不必与输入的接收具有同样的次序),则将输出121提供给下一节点122,如步骤170。如果将服务节点102配置为依照与其输入次序相同的次序来产生结果,则在存储器中保留输出直到所有对应于在前记录的输出已写为输出121,此时才可将所述输出121写入,如步骤172。
在一些实例中,将基于图的计算作为网络服务来提供。我们将提供网络服务的图称为供应方图(provider graph)。如图2中所示,运行在客户方系统202上的处理200将请求204(用于请求使用供应方图206的计算)发送给应用服务器208,其中所述处理200可以是图的计算,但也可以是任意类型的应用。所述请求204以适用于基于web的或其它网络服务的格式(例如SOAP、HTTP或RPC请求)来发送。根据运行在应用服务器208上的web服务插件210的指令(对于SOAP或HTTP请求),在应用服务器208的服务接口(interface)中接收请求204。
所述web服务插件210是这样一种应用,其能够处理在web服务客户方和提供服务的图之间的请求和响应。所述插件210在应用服务器208上安装并执行。web服务插件可与多个web服务供应方图的集合进行通信。每个图都被包含在由插件访问的服务列表中。例如,插件使用客户方HTTP请求消息中的URL,以将请求指向具体的图。
插件210将服务请求格式化成适用于图的处理的请求212(例如,RPC请求),并且将此请求212转发至宿驻有图206的图服务器214。在一些实例中,使RPC调用能够从客户方200直达供应方图206。在图服务器214处,将包含在请求212中的输入216提供给图206,并对图206进行处理以产生输出218。图服务器214将输出218按照图的输出220(例如RPC响应)的适宜格式发送至应用服务器208及其web服务插件210。插件210将图的输出220重新格式化成具有与原始请求204互补的(complementary)格式的web服务响应222。所述输出被返回给客户方或返回给调用了该服务的其它实体,其中所述实体以适用于网络服务的常规方式调用该服务。然后,客户方系统202上的处理将所述响应当作任意其它基于web的响应或网络服务响应来处理。
所述图可以使用管路的并行性、组元的并行性以及数据的并行性中的任一或全部来处理输入。也即是说,可以接收多组输入,可以在被管路化的阶段中交织(interleave)多组输入,或者,也许在进行划分(partitioning)之后,可以由不同组元的集合来并行处理多组输入。
在一些实例中,通过WSDL(web服务描述语言)文件来定义连接到供应方图的公共或外部接口。WSDL文件包含对需要与供应方图交互动作的所有消息和运行所进行的基于XML的描述。WSDL文件可由组织、产业或任意其它实体来定义,以用于访问与所述实体相关的web服务。还可将WSDL文件客制化(customized)以用于执行特定操作(implementation)。在一些实例中,WSDL文件根据与供应方图相关的子图中的组元的记录格式和类型定义来产生。在一些实例中,单个供应方图包括执行各自服务的多个子图。从此类子图产生的WSDL文件允许客户方访问由供应方图的子图所提供的每一个服务。
在供应方图中,将输进来的服务请求输入转换成提供服务的子图的内部语言。例如,如图3中所示,输进来的请求306(例如,SOAP请求)包括数据有效载荷308(payload),其中所述有效载荷308通过由消息指定的动作(actions)来请求处理。例如,有效载荷308可以是在动作处理器300a和300b中将要由图处理的记录(该记录以DML描述)。无论输进来的消息为何种格式,接口层301都将它们进行解析(parse),并且将合适的消息以任何由它们所请求的格式提供给图的节点。在输出端,接口层301以相反方式工作。
一旦所述消息306得以转换,动作划分(partition)类型节点302解释在消息306中指定的动作,并且将数据有效载荷中的记录308发送至合适的动作处理器300a或300b。在一些实例中,直到汇集(gather)节点304通知划分节点302在前记录308的工作已经从动作处理器300a或300b输出之后,划分节点302才接收随后输进来的消息307。
在一些实例中,为了实现对诸如服务请求等消息的并行处理,划分节点302被配置为将对应于服务请求的动作记录进行划分。如果多个请求不是请求相同的动作处理器,则上述方式就能够同时处理多个请求。例如,如果第一记录308请求动作处理器300a,并且第二记录310请求动作处理器300b,则划分节点302将第二记录310发送至动作处理器300b,而不需要等待汇集节点304报告所述第一记录308已经完成其处理。
汇集节点304从动作处理器300a和300b接收经处理的记录308和记录310,并且将它们打包到响应消息312和响应消息313中,其中所述响应消息312和响应消息313包含经处理的记录308’和记录310’以作为数据有效载荷。如果划分节点302正在划分的是事务(transactions),这样就可一次处理多个记录,那么汇集节点304在接收经处理的记录308’和记录310’时,就能够依照与接收请求消息306和请求消息307不同的次序来进行。划分节点302和汇集节点304之间的接口315允许汇集节点将输出记录308’和310’与对应的输入308和输入310相关联,从而将回复消息312和313发回至正确的客户方。
动作处理器300a和300b可采用任意形式。如上所述,记录308和记录310可具有任意格式,例如以DML描述的格式。在这种情况中,接口层301将输进来的语言(例如SOAP)转换成动作处理器所使用的DML格式。在一些实例中,可使用中间语言来表达在接口层301与划分节点302和汇集节点304之间的输入。
在一些实例中,当汇集节点304被配置为依照记录308’和记录310’的到达次序来接收它们时,可以在动作处理器内进一步划分动作的处理,如图3b中针对动作处理器300b所示。动作类型划分节点302接收请求消息306和307,并且将它们的记录308和记录310发送(route)给合适的动作处理器300a或300b。在动作处理器300b中,通过另一划分节点352接收记录,该划分节点352在共享(pool)中对所述记录进行划分。多个共享归属于子图350的多个实例350a、350b和350c,其中子图350实现动作处理器300b的处理。每个实例可以与其它实例一起并行处理不同的记录。通过将不同的记录308和320划分给不同的实例,动作处理器300b可并行处理多个记录,允许划分节点302在在前记录308处理完成之前将下一记录320发送至动作处理器。汇集节点354与划分节点352配对,使得节点能够跟踪实例350a、350b和350c中有哪些是正在使用中的,并且在可能时使用空闲实例,以便提高并行性(concurrency)和性能。汇集节点304也会接收动作处理器300a和300b的输出308’和310’,并且通过接口层301将合适的输出消息312和313返回给客户方。
输出记录308’和310’以及输出消息312和313可以依照与输入请求306和307被接收的次序不同的次序来返回。例如,如果输入记录310包含的工作元素(如下所述)少于记录308,那么即使输出响应313对应于随后接收的请求307,也可以首先返回输出响应313。如果动作处理器300a和300b按照下述方式运作,即根据记录的复杂度或其它因素,可以不依照次序或以不同的速率来对记录进行处理,那么,输出次序还可以基于输入数据的复杂度而改变。
在一些实例中,如图4中所示,单个服务请求的记录406包括作为数据流而由供应方图进行处理的数据,即所述数据作为多个工作元素408a-408e,其中所述工作元素408a-408e挨个经过图。动作处理器300a(如果记录不须进一步划分)或子图350(如果记录须进一步划分)包括拆解(unwrap)节点402,其中所述拆解节点402将输入记录406分解(decompose)成其各个工作元素408a-408e,并将各工作元素适当地发送至提供服务的子图400之中。对应的打包(wrap)节点404将输出工作元素408a’-408e’的流重新组合成单个响应412,以返回给发送请求406的客户方。
在一些实例中,如图5a中所示,一旦各动作被划分且被拆解成工作元素时,各工作元素也被并行处理。像针对图3a中的记录那样,划分节点502根据工作元素的类型来划分工作元素408a-408e,其中所述工作元素的类型即,对每一个工作元素进行处理时,其请求的是工作元素处理器500a或500b中的哪一个。如果处理工作元素的次序很重要,那么,待汇集节点504通知其接收到了每个输出工作元素408’之后,划分节点502一次只将一个工作元素408发送至处理器500a和500b(很可能每个工作元素被划分为使用两个处理器)。在一些实例中,如果处理的次序并不重要,假设各工作元素需要不同的处理器时,划分节点则将一个工作元素发送至每个处理器500a和500b。
当工作元素408a’-408e’离开处理器500a和500b时,通过汇集节点504将它们进行积聚(accumulated)。只要来自一个记录406的所有工作元素已被收集,就将它们合并回(combined back into)输出记录412。在划分节点502与汇集节点504之间的通信515允许划分节点502跟踪可将哪些工作元素处理器用于附加的工作元素。
用于处理多重并行数据流的技术也在2003年6月24日公开的美国专利6,584,581和2003年11月25日公开的美国专利6,654,907中得到描述,在此通过参考将其内容引入本申请中。
图5b详细示出了工作元素处理器500b如何运行,以及图5a的子图如何与图3a、图3b和图4的某些更高级别的节点相联系,以形成供应方图501。在一些实例中,如图5b中所示,工作元素处理器500b以子图550的多个实例550a、550b和550c来对将要运行的工作元素进一步划分。实例550a从处理的可用实例的共享中选出,其中所述处理与子图550内各图的节点相关联。最初,由划分节点552接收工作元素408i。所述节点552已访问了子图550的多个实例550a、550b和550c。通过汇集节点554接收各实例的输出。对于会放缓由这些节点进行的工作处置的外部处理(例如服务或其它子图),子图550可以轮流调用这些外部处理。
在前述系统中,与节点552类似的划分组元可能已经将单个工作元素514划分成分散的组元,并将一个组元发送至实例550i(其中i为a、b或c)中的每一个。为消除可能的并行情形,在将多个输出合并成针对所述工作元素的单个输出之前,汇集节点554会一直等待,直到每个实例都返回了一个输出为止。为了维持管路化,划分节点可能已经在工作元素后面经由每个实例而发送分隔符(delimiter),使得当从每个实例接收到所述分隔符时,汇集组元就可以知道工作元素已被完成。在一些实例中,在管路化的给定阶段中,在由给定节点处理多个工作元素的集合之后会发送分隔符。
作为对照,共享划分节点552将整个工作元素408a发送至单个实例550a以进行处理。汇集节点554被配置为等待(expect)与仅来自一个实例550a的工作元素相关的输出408a’。当接收到所等待的输出408a’(在一些实例中,其后伴随有一个分隔符)时,汇集节点554将输出提供至下一节点504。汇集节点554不用等待来自其它实例550b和550c的工作元素组元或分隔符。这就允许工作元素处理器500b仅使用给定工作元素真正需要的实例550i。与图3b中对事务记录(transactional records)的共享划分一样,对工作元素的共享划分也允许并行处理多个工作元素。与等待第一工作元素408a完成处理并从其实例550a显现出来的方式不同,划分节点552接收来自上游(upstream)节点502的另一个工作元素输入408c,且将其发送至下一个可用实例500b。以此方式,可同时处理多个工作元素408a和408b,而不必对划分节点552进行多线程化(multithreaded)。在一些实例中,划分节点552经由通信链路560通知汇集节点554在每个实例中有哪些工作元素,使得汇集节点554知道等待的是什么,并能使输出元素408a’、408c’与输入工作元素408a、408c相关联。
在共享之间划分工作元素也允许输出408a’、408b’和408c’能够不依照与输入408a、408b和408c相关的顺序(out of order)返回。例如,如果工作元素408a中的数据造成实例550a处理所述工作元素的时间长于实例550b处理工作元素408c的时间,那么汇集节点554将在其接收输出408a’之前接收输出408c’。由于两个工作元素408a和408c彼此相互独立,因此汇集节点554能够将输出408c’发送至下一节点504而不必等待输出408a’。这里假定将其它阶段(例如,划分/汇集对502/504和打包/拆解对402/404)配置为在工作元素处理器500b内调节(accommodate)工作元素顺序的改变。在一些实例中,可能会需要或想要保持所述顺序,那么汇集节点554将保留输出408c’直到接收到输出408a’,并且将它们按顺序释放给下一节点504。在这种计算中,还有一个优势就是实例550a、550b和550c能够同时处理多个工作元素。例如,如果子图550的处理时间长于其它节点或子图的处理时间,那么这种计算将很有用。
对事务处理的动作类型划分和共享划分以及对工作元素的类型划分和共享划分都允许所述图按照内在的并行性运行,即由不同的处理元素同时处理相关的或不相关的工作元素。
共享划分、类型划分、和对请求及其工作元素进行并行处理的其它方法都可以在供应方图中实现,使得由图提供的服务其自身能够处理并行输入。例如,在附图5b中的图501就是作为供应方图来运行的,此时第一节点570为预订节点(subscribe node),且最终节点572为与预订节点570配对的发布节点(publish node)。预订节点570接收包括输入406的请求,并将所述输入406发送至划分节点402。预订节点570与发布节点572配合,以使输出412与输入406匹配,并将它们封包(package)成合适的响应(即,确保每个响应到达发出调用的客户方)。因为图501处理的是并行记录和并行工作元素,所以预订节点570可以连续接收输入请求,而无需等待发布节点572接收到输出412。使用对请求进行动作类型划分的子图,就允许单个供应方图501提供多个服务。
在一些实例中,预订节点570和发布节点572假设单个请求是独立的,且请求的返回顺序是无关紧要的,因此将图501中的划分节点402和汇集节点404配置为不按顺序执行。如果顺序很重要,那么预订节点570和发布节点572的任何一个或两者都可以确保响应的返回顺序与对应的输出的接收顺序相同。
其它实施方式也落在所附权利要求和授权给申请人的其它权利要求的范围内。
Claims (21)
1.一种在基于图的计算中分配服务的系统,通过以下装置,根据与服务相关联的计算图来处理服务请求,所述计算图包括由以下链路连接的节点,所述链路表示在所述节点之间经过的记录的数据流,其中所述系统包括:
用于接收来自服务客户方的用于所述计算图的第一输入的装置,
用于将安排成为数据流的记录的所述第一输入提供给所述计算图的装置,其中所述数据流的记录包括多个工作元素,
用于基于对给定组中工作元素执行的动作类型将所述多个工作元素划分成多个组的装置,
用于将每个组提供给所述计算图的不同子图的装置,每个子图包括所述计算图的至少一些组元和所述链路,
用于将所述多个组中的一个或多个的每一个划分成所述多个工作元素的多个子组的装置,
用于将给定组的每个子组分配给为所述给定组分配的所述子图的不同实例的装置,每个实例包括所述子图的所述组元和所述链路,
用于接收来自所述计算图的所述子图的输出的装置,以及
用于提供包括来自所述子图的所述输出的服务响应的装置,
其中,所述接收所述第一输入的装置包括识别来自所述服务客户方的在服务请求中的所述第一输入的装置,以及
将所述第一输入提供给所述计算图的装置包括:
使请求识别符与所述服务请求相关联的装置,
将包括所述第一输入的工作元素提供给所述计算图的装置,
使所述请求识别符与所述工作元素相关联的装置,以及
将所述请求识别符与所述工作元素的关联传送至输出节点的装置。
2.如权利要求1所述的系统,其中所述识别所述第一输入的装置包括从被封装的请求提取所述第一输入的装置。
3.如权利要求2所述的系统,其中所述被封装的请求包括SOAP请求。
4.如权利要求1所述的系统,其中
所述接收所述输出的装置包括:
接收来自所述计算图的包括输出的工作元素的装置,以及
识别与所述工作元素相关联的请求识别符的装置,以及
所述用于提供包括来自所述子图的所述输出的所述服务响应的装置包括:
产生对应于由所述请求识别符所识别的所述服务请求的服务响应的装置,其中所述服务响应包括包含在所述工作元素中的所述输出。
5.如权利要求4所述的系统,其中产生所述服务响应包括:将所述输出嵌入被封装的响应中。
6.如权利要求5所述的系统,其中所述被封装的响应包括SOAP响应。
7.如权利要求1所述的系统,还包括:
接收来自第二服务客户方的用于所述计算图的第二输入的装置,
将所述第二输入作为第二数据流的记录提供给所述计算图的装置,其中所述第二数据流的记录包括多个工作元素,
接收来自所述计算图的所述子图的第二输出的装置,以及
将所述第二输出提供给所述第二服务客户方的装置;以及
在所述计算图中并行处理所述第一输入和所述第二输入的装置。
8.如权利要求7所述的系统,其中所述并行处理所述第一输入和所述第二输入的装置包括:
识别适用于所述第一输入的第一子图的装置,
在所述第一子图中处理所述第一输入的装置,
识别适用于所述第二输入的第二子图的装置,
在所述第二子图中处理所述第二输入的装置,
接收来自所述第一子图的第一输出的装置,以及
接收来自所述第二子图的第二输出的装置,
其中同时执行所述第一子图和所述第二子图。
9.如权利要求7所述的系统,其中所述并行处理所述第一输入和所述第二输入的装置包括:
将子图的第一实例识别为可用的装置,
在所述子图的第一实例中处理所述第一输入的装置,
将所述子图的第二实例识别为可用的装置,
在所述子图的第二实例中处理所述第二输入的装置,
接收来自所述第一实例的第一输出的装置,以及
接收来自所述第二实例的第二输出的装置,
其中同时执行所述子图的第一实例和所述子图的第二实例。
10.一种用于根据与服务相关联的计算图来处理服务请求的系统,所述计算图包括由表示在节点之间经过的记录的数据流的链路所连接的节点,所述系统包括:
计算机系统,被配置为通过下述步骤根据与所述服务相关联的计算图来处理服务请求,所述计算图包括由表示在节点之间经过的记录的数据流的链路所连接的节点:
接收来自服务客户方的用于所述计算图的第一输入,
将安排成为数据流的记录的所述第一输入提供给所述计算图,其中所述数据流的记录包括多个工作元素,
基于对给定组中工作元素执行的动作类型,将所述多个工作元素划分成多个组,
将每个组提供给所述计算图的不同子图,每个子图包括所述计算图的至少一些组元和所述链路,
将所述多个组中的一个或多个的每一个划分成所述多个工作元素的多个子组,
将给定组的每个子组分配给为所述给定组分配的所述子图的不同实例,每个实例包括所述子图的所述组元和所述链路,
接收来自所述计算图的所述子图的输出,以及
提供包括来自所述子图的所述输出的服务响应。
11.如权利要求10所述的系统,其中
所述计算机系统被配置为接收所述第一输入,包括所述计算机系统被配置为识别来自所述服务客户方的在服务请求中的所述第一输入,以及
所述计算机系统被配置为将所述第一输入提供给所述计算图,包括所述计算机系统被配置为:
使请求识别符与所述服务请求相关联,
将包括所述第一输入的工作元素提供给所述计算图,
使所述请求识别符与所述工作元素相关联,以及
将所述请求识别符与所述工作元素的关联传送至输出节点。
12.如权利要求11所述的系统,其中所述计算机系统被配置为识别所述第一输入,包括所述计算机系统被配置为从被封装的请求提取所述第一输入。
13.如权利要求12所述的系统,其中所述被封装的请求包括SOAP请求。
14.如权利要求10所述的系统,其中
所述计算机系统被配置为接收所述输出,包括所述计算机系统被配置为:
接收来自所述计算图的包括输出的工作元素,以及
识别与所述工作元素相关联的请求识别符,以及
所述计算机系统被配置为提供包括来自所述子图的所述输出的服务响应,包括所述计算机系统被配置为:
产生对应于由所述请求识别符所识别的所述服务请求的服务响应,所述服务响应包括包含在所述工作元素中的所述输出。
15.如权利要求14所述的系统,其中所述计算机系统被配置为产生所述服务响应,包括所述计算机系统被配置为将所述输出嵌入被封装的响应中。
16.如权利要求15所述的系统,其中所述被封装的响应包括SOAP响应。
17.如权利要求10所述的系统,还包括所述计算机系统被配置为:
根据所述计算图来处理第二服务请求,其中所述步骤包括:
接收来自第二服务客户方的用于所述计算图的第二输入,
将所述第二输入作为第二数据流的记录提供给所述计算图,其中所述第二数据流的记录包括多个工作元素,
接收来自所述计算图的所述子图的第二输出,以及
将所述第二输出提供给所述第二服务客户方;以及
在所述计算图中,并行处理所述第一输入和所述第二输入。
18.如权利要求17所述的系统,其中,所述计算机系统被配置为并行处理所述第一输入和所述第二输入,包括所述计算机系统被配置为:
识别适用于所述第一输入的第一子图,
在所述第一子图中处理所述第一输入,
识别适用于所述第二输入的第二子图,
在所述第二子图中处理所述第二输入,
接收来自所述第一子图的第一输出,以及
接收来自所述第二子图的第二输出,
其中同时执行所述第一子图和所述第二子图。
19.如权利要求17所述的系统,其中,所述计算机系统被配置为并行处理所述第一输入和所述第二输入,包括所述计算机系统被配置为:
将子图的第一实例识别为可用,
在所述子图的第一实例中处理所述第一输入,
将所述子图的第二实例识别为可用,
在所述子图的第二实例中处理所述第二输入,
接收来自所述第一实例的第一输出,以及
接收来自所述第二实例的第二输出,
其中同时执行所述子图的第一实例和所述子图的第二实例。
20.如权利要求10所述的系统,其中,所述计算图包括第一图、所述第一图的第一子图和所述第一图的第二子图,并且所述计算机系统被配置为将所述第一输入作为数据流的多个工作元素提供给所述计算图的步骤,包括所述计算机被配置为:
识别适用于所述数据流中的第一记录的第一图,
识别适用于所述第一记录中的第一工作元素的第一子图,
在所述第一子图中处理所述第一工作元素,
识别适用于所述第一记录中的第二工作元素的第二子图,
在所述第二子图中处理所述第二工作元素,
接收来自所述第一子图的第一输出工作元素,
接收来自所述第二子图的第二输出工作元素,
使所述第一输出工作元素与所述第一记录相关联,以及
使所述第二输出工作元素与所述第一记录相关联,
其中至少部分地同时执行所述第一子图和所述第二子图。
21.如权利要求10所述的系统,其中,所述计算图包括第一图、所述第一图的一个子图的第一实例和所述第一图的所述子图的第二实例,并且所述计算机系统被配置为将所述第一输入作为数据流的多个工作元素提供给所述计算图的步骤,包括所述计算机系统被配置为:
识别适用于所述数据流中的第一记录的第一图,
将子图的第一实例识别为可用,
在所述子图的第一实例中处理所述第一记录中的第一工作元素,
将所述子图的第二实例识别为可用,
在所述子图的第二实例中处理所述第一记录中的第二工作元素,
接收来自所述第一实例的第一输出工作元素,
接收来自所述第二实例的第二输出工作元素,
使所述第一输出工作元素与所述第一记录相关联,以及
使所述第二输出工作元素与所述第一记录相关联,
其中至少部分地同时执行所述子图的所述第一实例和所述子图的所述第二实例。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US83674506P | 2006-08-10 | 2006-08-10 | |
US60/836,745 | 2006-08-10 | ||
CN2007800297919A CN101501678B (zh) | 2006-08-10 | 2007-08-09 | 在基于图的计算中分配服务 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800297919A Division CN101501678B (zh) | 2006-08-10 | 2007-08-09 | 在基于图的计算中分配服务 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103729330A CN103729330A (zh) | 2014-04-16 |
CN103729330B true CN103729330B (zh) | 2017-04-19 |
Family
ID=39082958
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800297919A Active CN101501678B (zh) | 2006-08-10 | 2007-08-09 | 在基于图的计算中分配服务 |
CN201310403428.6A Active CN103729330B (zh) | 2006-08-10 | 2007-08-09 | 在基于图的计算中分配服务 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800297919A Active CN101501678B (zh) | 2006-08-10 | 2007-08-09 | 在基于图的计算中分配服务 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8572236B2 (zh) |
EP (2) | EP2050013A4 (zh) |
JP (2) | JP5894724B2 (zh) |
KR (1) | KR101495575B1 (zh) |
CN (2) | CN101501678B (zh) |
AU (1) | AU2007286155B2 (zh) |
CA (1) | CA2657233C (zh) |
WO (1) | WO2008021953A2 (zh) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7418702B2 (en) * | 2002-08-06 | 2008-08-26 | Sheng (Ted) Tai Tsao | Concurrent web based multi-task support for control management system |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
WO2009015342A1 (en) * | 2007-07-26 | 2009-01-29 | Ab Initio Technology Llc | Transactional graph-based computation with error handling |
EP2191362B1 (en) * | 2007-09-20 | 2015-08-19 | Ab Initio Technology LLC | Managing data flows in graph-based computations |
US8806506B2 (en) * | 2008-09-30 | 2014-08-12 | Ebay Inc. | System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture |
US8135785B2 (en) * | 2008-09-30 | 2012-03-13 | Ebay Inc. | System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture |
US8763008B2 (en) * | 2008-09-30 | 2014-06-24 | Ebay Inc. | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
WO2010065511A1 (en) * | 2008-12-02 | 2010-06-10 | Ab Initio Software Llc | Mapping instances of a dataset within a data management system |
US8341280B2 (en) | 2008-12-30 | 2012-12-25 | Ebay Inc. | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
KR20150038757A (ko) * | 2009-02-13 | 2015-04-08 | 아브 이니티오 테크놀로지 엘엘시 | 데이터 저장 시스템과의 통신 |
CA2750279C (en) | 2009-02-13 | 2019-03-26 | Ab Initio Technology Llc | Managing task execution |
US8205113B2 (en) * | 2009-07-14 | 2012-06-19 | Ab Initio Technology Llc | Fault tolerant batch processing |
KR101656813B1 (ko) | 2009-09-16 | 2016-09-12 | 아브 이니티오 테크놀로지 엘엘시 | 데이터세트 요소의 매핑 |
US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
CN102754072B (zh) | 2009-12-14 | 2016-10-19 | 起元技术有限责任公司 | 规定用户界面元素 |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
AU2011268459B2 (en) * | 2010-06-15 | 2014-09-18 | Ab Initio Technology Llc | Dynamically loading graph-based computations |
US9460189B2 (en) | 2010-09-23 | 2016-10-04 | Microsoft Technology Licensing, Llc | Data model dualization |
CA2814835C (en) | 2010-10-25 | 2019-01-08 | Ab Initio Technology Llc | Managing data set objects in a dataflow graph that represents a computer program |
JP5940560B2 (ja) | 2011-01-14 | 2016-06-29 | アビニシオ テクノロジー エルエルシー | データの集合体に対する変更の管理 |
US20120188249A1 (en) * | 2011-01-26 | 2012-07-26 | Raytheon Company | Distributed graph system and method |
US9021299B2 (en) | 2011-02-18 | 2015-04-28 | Ab Initio Technology Llc | Restarting processes |
US9116759B2 (en) | 2011-02-18 | 2015-08-25 | Ab Initio Technology Llc | Restarting data processing systems |
US8898269B2 (en) * | 2011-03-14 | 2014-11-25 | International Business Machines Corporation | Reconciling network management data |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
US9032362B2 (en) * | 2012-09-10 | 2015-05-12 | Sap Se | System and method for generating high performance calculators for calculation graphs |
US10489360B2 (en) | 2012-10-17 | 2019-11-26 | Ab Initio Technology Llc | Specifying and applying rules to data |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
US8954546B2 (en) | 2013-01-25 | 2015-02-10 | Concurix Corporation | Tracing with a workload distributor |
US9256969B2 (en) * | 2013-02-01 | 2016-02-09 | Microsoft Technology Licensing, Llc | Transformation function insertion for dynamically displayed tracer data |
US9811233B2 (en) | 2013-02-12 | 2017-11-07 | Ab Initio Technology Llc | Building applications for configuring processes |
US8924941B2 (en) | 2013-02-12 | 2014-12-30 | Concurix Corporation | Optimization analysis using similar frequencies |
US20130283281A1 (en) | 2013-02-12 | 2013-10-24 | Concurix Corporation | Deploying Trace Objectives using Cost Analyses |
US8997063B2 (en) | 2013-02-12 | 2015-03-31 | Concurix Corporation | Periodicity optimization in an automated tracing system |
US11061539B2 (en) * | 2013-03-15 | 2021-07-13 | The Mathworks, Inc. | Reference nodes in a computational graph |
US20130227529A1 (en) | 2013-03-15 | 2013-08-29 | Concurix Corporation | Runtime Memory Settings Derived from Trace Data |
US9575874B2 (en) | 2013-04-20 | 2017-02-21 | Microsoft Technology Licensing, Llc | Error list and bug report analysis for configuring an application tracer |
US8990777B2 (en) | 2013-05-21 | 2015-03-24 | Concurix Corporation | Interactive graph for navigating and monitoring execution of application code |
US9734040B2 (en) | 2013-05-21 | 2017-08-15 | Microsoft Technology Licensing, Llc | Animated highlights in a graph representing an application |
US9280841B2 (en) | 2013-07-24 | 2016-03-08 | Microsoft Technology Licensing, Llc | Event chain visualization of performance data |
US9292415B2 (en) | 2013-09-04 | 2016-03-22 | Microsoft Technology Licensing, Llc | Module specific tracing in a shared module environment |
EP3069241B1 (en) | 2013-11-13 | 2018-08-15 | Microsoft Technology Licensing, LLC | Application execution path tracing with configurable origin definition |
US10346292B2 (en) | 2013-11-13 | 2019-07-09 | Microsoft Technology Licensing, Llc | Software component recommendation based on multiple trace runs |
CA2932763C (en) | 2013-12-05 | 2022-07-12 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
CA3092699C (en) | 2013-12-06 | 2023-07-25 | Ab Initio Technology Llc | Source code translation |
US9400767B2 (en) * | 2013-12-17 | 2016-07-26 | International Business Machines Corporation | Subgraph-based distributed graph processing |
SG11201700381XA (en) | 2014-07-18 | 2017-02-27 | Ab Initio Technology Llc | Managing lineage information |
JP2017531972A (ja) * | 2014-08-22 | 2017-10-26 | グラス バレー ユーエスエー リミテッド ライアビリティ カンパニー | グラフモデリングを用いて放送システムおよびマルチメディアシステムを管理し、モニタし、制御するためのシステムおよび方法 |
JP6467497B2 (ja) | 2014-09-02 | 2019-02-13 | アビニシオ テクノロジー エルエルシー | 特定のデータポートの接続の特定に基づいてグラフの構成要素の自動化されたクラスタリングによるグラフに基づくプログラムの仕様のコンパイル |
AU2015312010B2 (en) | 2014-09-02 | 2019-10-03 | Ab Initio Technology Llc. | Visually specifying subsets of components in graph-based programs through user interactions |
US9626393B2 (en) | 2014-09-10 | 2017-04-18 | Ab Initio Technology Llc | Conditional validation rules |
US10055333B2 (en) | 2014-11-05 | 2018-08-21 | Ab Initio Technology Llc | Debugging a graph |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US20160205172A1 (en) * | 2015-01-08 | 2016-07-14 | Futurewei Technologies, Inc. | Offloading graph based computations to a backend device |
US9818166B2 (en) | 2015-01-16 | 2017-11-14 | Intel Corporation | Graph-based application programming interface architectures with producer/consumer nodes for enhanced image processing parallelism |
US9710876B2 (en) * | 2015-01-16 | 2017-07-18 | Intel Corporation | Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US11144283B2 (en) * | 2015-05-20 | 2021-10-12 | Ab Initio Technology Llc | Visual program specification and compilation of graph-based computation |
US11403144B2 (en) * | 2015-07-09 | 2022-08-02 | Telecom Italia S.P.A. | Method and system of information and communication technology services provisioning using a distributed operating system |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
TWI545453B (zh) * | 2015-08-25 | 2016-08-11 | 國立清華大學 | 分散式系統及其資料庫管理方法及管理系統 |
US20170116117A1 (en) * | 2015-10-26 | 2017-04-27 | Sandisk Technologies Inc. | Identifying storage descriptors based on a metric |
US11151446B2 (en) * | 2015-10-28 | 2021-10-19 | Google Llc | Stream-based accelerator processing of computational graphs |
SG11201803929YA (en) | 2015-12-21 | 2018-06-28 | Ab Initio Technology Llc | Sub-graph interface generation |
US10235685B2 (en) * | 2016-07-29 | 2019-03-19 | Clari Inc. | Method and system for two-dimensional charting using live queries |
US11367049B2 (en) | 2017-05-02 | 2022-06-21 | Clari Inc. | Method and system for identifying emails and calendar events associated with projects of an enterprise entity |
US20190057339A1 (en) | 2017-08-16 | 2019-02-21 | Clari Inc. | Method and system for determining states of tasks based on activities associated with the tasks over a predetermined period of time |
US11416799B2 (en) | 2017-08-28 | 2022-08-16 | Clari Inc. | Method and system for summarizing user activities of tasks into a single activity score using machine learning to predict probabilities of completeness of the tasks |
US11423083B2 (en) | 2017-10-27 | 2022-08-23 | Ab Initio Technology Llc | Transforming a specification into a persistent computer program |
WO2020006571A1 (en) | 2018-06-29 | 2020-01-02 | pulseData Inc. | Machine learning systems and methods for predicting risk of renal function decline |
US11714992B1 (en) * | 2018-12-13 | 2023-08-01 | Amazon Technologies, Inc. | Neural network processing based on subgraph recognition |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
US11900156B2 (en) | 2019-09-24 | 2024-02-13 | Speedata Ltd. | Inter-thread communication in multi-threaded reconfigurable coarse-grain arrays |
US11281476B2 (en) * | 2020-01-30 | 2022-03-22 | Hewlett Packard Enterprise Development Lp | Plugin framework to support zero touch management of heterogeneous infrastructure elements across distributed data centers |
US11354157B2 (en) | 2020-04-28 | 2022-06-07 | Speedata Ltd. | Handling multiple graphs, contexts and programs in a coarse-grain reconfigurable array processor |
JP2024505238A (ja) | 2021-01-31 | 2024-02-05 | アビニシオ テクノロジー エルエルシー | 論理データセットグループの操作を伴うデータ処理システム |
US11782706B1 (en) | 2021-06-29 | 2023-10-10 | Amazon Technologies, Inc. | Reconfigurable neural network processing based on subgraph recognition |
WO2024042581A1 (ja) | 2022-08-22 | 2024-02-29 | 三菱電機株式会社 | ガス絶縁開閉装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127104A (en) * | 1986-12-29 | 1992-06-30 | Dataflow Computer Corporation | Method and product involving translation and execution of programs by automatic partitioning and data structure allocation |
CN1637710A (zh) * | 2003-12-30 | 2005-07-13 | 国际商业机器公司 | 用于调度数据处理基础结构中工作单元执行的方法和系统 |
Family Cites Families (156)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3662343A (en) | 1970-07-29 | 1972-05-09 | Docutel Corp | Credit card automatic currency dispenser |
US3662401A (en) | 1970-09-23 | 1972-05-09 | Collins Radio Co | Method of program execution |
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4972314A (en) | 1985-05-20 | 1990-11-20 | Hughes Aircraft Company | Data flow signal processor method and apparatus |
US4720780A (en) | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
US4914568A (en) | 1986-10-24 | 1990-04-03 | National Instruments, Inc. | Graphical system for modelling a process and associated method |
US5357632A (en) | 1990-01-09 | 1994-10-18 | Hughes Aircraft Company | Dynamic task allocation in a multi-processor system employing distributed control processors and distributed arithmetic processors |
US5280619A (en) | 1990-05-17 | 1994-01-18 | Texas Instruments Incorporated | System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions |
US5323452A (en) | 1990-12-18 | 1994-06-21 | Bell Communications Research, Inc. | Visual programming of telephone network call processing logic |
EP0529303A3 (en) | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
US6400996B1 (en) | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US5333319A (en) | 1992-03-02 | 1994-07-26 | International Business Machines Corporation | Virtual storage data processor with enhanced dispatching priority allocation of CPU resources |
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US6044211A (en) * | 1994-03-14 | 2000-03-28 | C.A.E. Plus, Inc. | Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description |
US5694546A (en) | 1994-05-31 | 1997-12-02 | Reisman; Richard R. | System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list |
US5692168A (en) | 1994-10-18 | 1997-11-25 | Cyrix Corporation | Prefetch buffer using flow control bit to identify changes of flow within the code stream |
US5701400A (en) | 1995-03-08 | 1997-12-23 | Amado; Carlos Armando | Method and apparatus for applying if-then-else rules to data sets in a relational data base and generating from the results of application of said rules a database of diagnostics linked to said data sets to aid executive analysis of financial data |
US5805462A (en) | 1995-08-18 | 1998-09-08 | Vlsi Technology, Inc. | Automatic synthesis of integrated circuits employing boolean decomposition |
JP3154942B2 (ja) | 1995-09-11 | 2001-04-09 | 株式会社東芝 | 分散チェックポイント生成方法および同方法が適用される計算機システム |
US5630047A (en) | 1995-09-12 | 1997-05-13 | Lucent Technologies Inc. | Method for software error recovery using consistent global checkpoints |
US5712971A (en) | 1995-12-11 | 1998-01-27 | Ab Initio Software Corporation | Methods and systems for reconstructing the state of a computation |
JP3258228B2 (ja) | 1996-03-15 | 2002-02-18 | 株式会社東芝 | チェックポイント生成方法 |
US7415466B2 (en) | 1996-03-19 | 2008-08-19 | Oracle International Corporation | Parallel transaction recovery |
US6006242A (en) | 1996-04-05 | 1999-12-21 | Bankers Systems, Inc. | Apparatus and method for dynamically creating a document |
US5966072A (en) * | 1996-07-02 | 1999-10-12 | Ab Initio Software Corporation | Executing computations expressed as graphs |
JP3672208B2 (ja) | 1996-07-02 | 2005-07-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 階層化トランザクション処理方法 |
US5857204A (en) | 1996-07-02 | 1999-01-05 | Ab Initio Software Corporation | Restoring the state of a set of files |
US6016516A (en) | 1996-08-07 | 2000-01-18 | Fuji Xerox Co. Ltd. | Remote procedure processing device used by at least two linked computer systems |
US5930794A (en) | 1996-10-18 | 1999-07-27 | Sagent Technologies, Inc. | Database repository with deferred transactions |
US6038558A (en) | 1996-10-18 | 2000-03-14 | Sagent Technology, Inc. | Extensible database retrieval and viewing architecture |
US6151531A (en) | 1996-12-12 | 2000-11-21 | Charles Frankel Et Al | System and method for managing the alteration of garments |
US5924095A (en) | 1997-02-05 | 1999-07-13 | Oracle Corporation | Processing distributed transactions in heterogeneous computing environments using two-phase commit |
US6330008B1 (en) | 1997-02-24 | 2001-12-11 | Torrent Systems, Inc. | Apparatuses and methods for monitoring performance of parallel computing |
US5933640A (en) | 1997-02-26 | 1999-08-03 | Digital Equipment Corporation | Method for analyzing and presenting test execution flows of programs |
US5999729A (en) | 1997-03-06 | 1999-12-07 | Continuum Software, Inc. | System and method for developing computer programs for execution on parallel processing systems |
US6088716A (en) | 1997-04-28 | 2000-07-11 | Ab Initio Software Corporation | Method for preventing buffer deadlock in dataflow computations |
US6032158A (en) | 1997-05-02 | 2000-02-29 | Informatica Corporation | Apparatus and method for capturing and propagating changes from an operational database to data marts |
US6044394A (en) | 1997-07-21 | 2000-03-28 | International Business Machines Corporation | Managing independently executing computer tasks that are interrelated by dataflow |
US6145017A (en) | 1997-08-05 | 2000-11-07 | Adaptec, Inc. | Data alignment system for a hardware accelerated command interpreter engine |
US6173276B1 (en) | 1997-08-21 | 2001-01-09 | Scicomp, Inc. | System and method for financial instrument modeling and valuation |
US6490620B1 (en) | 1997-09-26 | 2002-12-03 | Worldcom, Inc. | Integrated proxy interface for web based broadband telecommunications management |
US5958004A (en) | 1997-10-28 | 1999-09-28 | Microsoft Corporation | Disabling and enabling transaction committal in transactional application components |
US6014670A (en) | 1997-11-07 | 2000-01-11 | Informatica Corporation | Apparatus and method for performing data transformations in data warehousing |
US6339775B1 (en) | 1997-11-07 | 2002-01-15 | Informatica Corporation | Apparatus and method for performing data transformations in data warehousing |
US6044374A (en) | 1997-11-14 | 2000-03-28 | Informatica Corporation | Method and apparatus for sharing metadata between multiple data marts through object references |
JPH11184766A (ja) * | 1997-12-18 | 1999-07-09 | Nippon Telegr & Teleph Corp <Ntt> | ビジネスイベントサーバ |
US6272650B1 (en) | 1998-02-03 | 2001-08-07 | Amazing Media, Inc. | System and method for disambiguating scene graph loads |
US6437796B2 (en) | 1998-02-17 | 2002-08-20 | Sun Microsystems, Inc. | Multiple processor visibility search system and method |
US6208345B1 (en) | 1998-04-15 | 2001-03-27 | Adc Telecommunications, Inc. | Visual data integration system and method |
US6256637B1 (en) | 1998-05-05 | 2001-07-03 | Gemstone Systems, Inc. | Transactional virtual machine architecture |
US6480876B2 (en) | 1998-05-28 | 2002-11-12 | Compaq Information Technologies Group, L.P. | System for integrating task and data parallelism in dynamic applications |
US6675189B2 (en) | 1998-05-28 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | System for learning and applying integrated task and data parallel strategies in dynamic applications |
US6314114B1 (en) | 1998-06-23 | 2001-11-06 | Oracle Corporation | Distributed resource management |
US6259988B1 (en) | 1998-07-20 | 2001-07-10 | Lockheed Martin Corporation | Real-time mission adaptable route planner |
US6401216B1 (en) | 1998-10-29 | 2002-06-04 | International Business Machines Corporation | System of performing checkpoint/restart of a parallel program |
US6608628B1 (en) | 1998-11-06 | 2003-08-19 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration (Nasa) | Method and apparatus for virtual interactive medical imaging by multiple remotely-located users |
US7911483B1 (en) | 1998-11-09 | 2011-03-22 | Broadcom Corporation | Graphics display system with window soft horizontal scrolling mechanism |
US6449711B1 (en) | 1999-02-04 | 2002-09-10 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for developing and executing data flow programs |
US6538651B1 (en) | 1999-03-19 | 2003-03-25 | John Hayman | Parametric geometric element definition and generation system and method |
US6728879B1 (en) | 1999-06-02 | 2004-04-27 | Microsoft Corporation | Transactional log with multi-sector log block validation |
US6816825B1 (en) | 1999-06-18 | 2004-11-09 | Nec Corporation | Simulation vector generation from HDL descriptions for observability-enhanced statement coverage |
US6647408B1 (en) * | 1999-07-16 | 2003-11-11 | Novell, Inc. | Task distribution |
US6715145B1 (en) | 1999-08-31 | 2004-03-30 | Accenture Llp | Processing pipeline in a base services pattern environment |
US20020129340A1 (en) | 1999-10-28 | 2002-09-12 | Tuttle Douglas D. | Reconfigurable isomorphic software representations |
US7137116B2 (en) * | 1999-11-09 | 2006-11-14 | Microsoft Corporation | Method and system for performing a task on a computer |
US6879946B2 (en) | 1999-11-30 | 2005-04-12 | Pattern Discovery Software Systems Ltd. | Intelligent modeling, transformation and manipulation system |
US6584581B1 (en) | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
WO2001046798A2 (en) | 1999-12-20 | 2001-06-28 | Headway Research Limited | System and method for computer-aided graph-based dependency analysis |
US6848100B1 (en) | 2000-03-31 | 2005-01-25 | Intel Corporation | Hierarchical software path profiling |
US7062483B2 (en) | 2000-05-18 | 2006-06-13 | Endeca Technologies, Inc. | Hierarchical data-driven search and navigation system and method for information retrieval |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US6813761B1 (en) | 2000-06-30 | 2004-11-02 | Microsoft Corporation | Methods for enhancing flow analysis |
US7164422B1 (en) | 2000-07-28 | 2007-01-16 | Ab Initio Software Corporation | Parameterized graphs with conditional components |
US6832369B1 (en) | 2000-08-01 | 2004-12-14 | International Business Machines Corporation | Object oriented method and apparatus for class variable initialization |
US6496961B2 (en) | 2000-10-27 | 2002-12-17 | Nec Usa, Inc. | Dynamic detection and removal of inactive clauses in SAT with application in image computation |
US20020152244A1 (en) | 2000-12-22 | 2002-10-17 | International Business Machines Corporation | Method and apparatus to dynamically create a customized user interface based on a document type definition |
US6804800B2 (en) | 2000-12-29 | 2004-10-12 | Intel Corporation | Method and apparatus for detecting and recovering from errors in a source synchronous bus |
US20020111876A1 (en) | 2001-02-09 | 2002-08-15 | Rudraraju Panduranga R. | Transaction aggregation system and method |
US7082386B2 (en) | 2001-02-21 | 2006-07-25 | International Business Machines Corporation | Generalized software modeling tool |
US7188091B2 (en) | 2001-03-21 | 2007-03-06 | Resolutionebs, Inc. | Rule processing system |
US6651234B2 (en) | 2001-04-06 | 2003-11-18 | Nec Corporation | Partition-based decision heuristics for SAT and image computation using SAT and BDDs |
US20020147745A1 (en) | 2001-04-09 | 2002-10-10 | Robert Houben | Method and apparatus for document markup language driven server |
US7082604B2 (en) * | 2001-04-20 | 2006-07-25 | Mobile Agent Technologies, Incorporated | Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents |
US20040093559A1 (en) | 2001-05-25 | 2004-05-13 | Ruth Amaru | Web client for viewing and interrogating enterprise data semantically |
GB2376094A (en) | 2001-05-30 | 2002-12-04 | Ibm | Flexible navigation of a workflow graph in a data processing system |
US7069536B2 (en) | 2001-06-28 | 2006-06-27 | International Business Machines Corporation | Method, system, and program for executing a workflow |
US20030033432A1 (en) | 2001-08-08 | 2003-02-13 | Simpson Shell S. | Web based imaging service that converts web pages into content on behalf of another web site |
US20040006745A1 (en) | 2001-08-31 | 2004-01-08 | Van Helden Wico | Methods, apparatuses, system, and articles for associating metadata with datastream |
US7165030B2 (en) | 2001-09-17 | 2007-01-16 | Massachusetts Institute Of Technology | Concatenative speech synthesis using a finite-state transducer |
US7085426B2 (en) | 2001-10-15 | 2006-08-01 | Jonas August | Volterra filters for enhancement of contours in images |
US7130484B2 (en) | 2001-10-15 | 2006-10-31 | Jonas August | Biased curve indicator random field filters for enhancement of contours in images |
DE10152213B4 (de) | 2001-10-23 | 2006-04-27 | Onespin Solutions Gmbh | Verfahren zur Verifikation digitaler arithmetischer Schaltungen mittels eines Äquivalenzvergleiches |
US7092401B2 (en) | 2001-11-15 | 2006-08-15 | International Business Machines Corporation | Apparatus and method for managing work and completion queues using head and tail pointers with end-to-end context error cache for reliable datagram |
EP1320217B1 (en) * | 2001-12-14 | 2004-10-13 | Hewlett-Packard Company, A Delaware Corporation | Method of installing monitoring agents, system and computer program for monitoring objects in an IT network |
GB0130864D0 (en) * | 2001-12-22 | 2002-02-06 | Ibm | Method and apparatus for controlling a multi-node process |
US7240247B2 (en) | 2002-04-29 | 2007-07-03 | Intel Corporation | Providing a chain of tokenized error and state information for a call stack |
US20040041838A1 (en) | 2002-09-04 | 2004-03-04 | Adusumilli Venkata J.R.B. | Method and system for graphing data |
US7103597B2 (en) | 2002-10-03 | 2006-09-05 | Mcgoveran David O | Adaptive transaction manager for complex transactions and business process |
US7167850B2 (en) | 2002-10-10 | 2007-01-23 | Ab Initio Software Corporation | Startup and control of graph-based computation |
US7694272B2 (en) | 2002-10-21 | 2010-04-06 | Sungard (Israel) Ltd | Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language |
US7711772B2 (en) | 2002-11-15 | 2010-05-04 | Schlumberger Technology Corporation | Web-based system and method for electronic data delivery |
US7430747B2 (en) | 2002-12-04 | 2008-09-30 | Microsoft Corporation | Peer-to peer graphing interfaces and methods |
US7441008B2 (en) | 2002-12-18 | 2008-10-21 | International Business Machines Corporation | Method for correlating transactions and messages |
US20050193056A1 (en) | 2002-12-26 | 2005-09-01 | Schaefer Diane E. | Message transfer using multiplexed connections in an open system interconnection transaction processing environment |
US20040148373A1 (en) | 2003-01-23 | 2004-07-29 | International Business Machines Corporation | Service level agreement compliance measurement |
US7707564B2 (en) * | 2003-02-26 | 2010-04-27 | Bea Systems, Inc. | Systems and methods for creating network-based software services using source code annotations |
US7417645B2 (en) | 2003-03-27 | 2008-08-26 | Microsoft Corporation | Markup language and object model for vector graphics |
US7088374B2 (en) | 2003-03-27 | 2006-08-08 | Microsoft Corporation | System and method for managing visual structure, timing, and animation in a graphics processing system |
US7669129B2 (en) | 2003-04-04 | 2010-02-23 | Avid Technology, Inc. | Graphical user interface for providing editing of transform hierarchies within an effects tree |
US7665025B2 (en) | 2003-04-16 | 2010-02-16 | The Mathworks, Inc. | Signal navigation and label propagation in block diagrams |
US20040225657A1 (en) * | 2003-05-07 | 2004-11-11 | Panacea Corporation | Web services method and system |
US8265979B2 (en) | 2003-06-17 | 2012-09-11 | International Business Machines Corporation | Automatic generation of process models |
US20050059046A1 (en) | 2003-06-18 | 2005-03-17 | Applera Corporation | Methods and systems for the analysis of biological sequence data |
EP1639510A1 (en) | 2003-06-24 | 2006-03-29 | BAE Systems PLC | A method, tool and system for increasing the efficiency of a design process |
US8059125B2 (en) | 2003-06-25 | 2011-11-15 | Ab Initio Technology Llc | Computer-aided parallelizing of computation graphs |
EP1652072A4 (en) * | 2003-07-11 | 2008-12-31 | Computer Ass Think Inc | METHOD AND APPARATUS FOR PROCESSING PARALLEL ACTIONS |
US7444595B2 (en) | 2003-08-13 | 2008-10-28 | National Instruments Corporation | Graphical programming system and method for creating and managing a scene graph |
WO2005022417A2 (en) | 2003-08-27 | 2005-03-10 | Ascential Software Corporation | Methods and systems for real time integration services |
US7174479B2 (en) | 2003-09-10 | 2007-02-06 | Microsoft Corporation | Method and system for rollback-free failure recovery of multi-step procedures |
US20050102670A1 (en) | 2003-10-21 | 2005-05-12 | Bretl Robert F. | Shared object memory with object management for multiple virtual machines |
US20080052687A1 (en) | 2003-11-03 | 2008-02-28 | Agustin Gonzales-Tuchmann | Development environment for data transformation applications |
US7296072B2 (en) * | 2003-12-12 | 2007-11-13 | International Business Machines Corporation | Enhanced port type agnostic proxy support for web services intermediaries |
US7467383B2 (en) | 2004-03-08 | 2008-12-16 | Ab Initio Software Llc | System for controlling task execution using a graphical representation of task dependency |
US20050256818A1 (en) | 2004-04-30 | 2005-11-17 | Xerox Corporation | Workflow auto generation from user constraints and hierarchical dependence graphs for workflows |
JP2007536634A (ja) | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
US7614037B2 (en) | 2004-05-21 | 2009-11-03 | Microsoft Corporation | Method and system for graph analysis and synchronization |
US7316001B2 (en) | 2004-06-05 | 2008-01-01 | Graphlogic Inc. | Object process graph system |
US7761863B2 (en) | 2004-06-08 | 2010-07-20 | Covia Labs, Inc. | Method system and data structure for content renditioning adaptation and interoperability segmentation model |
US7398514B2 (en) | 2004-09-29 | 2008-07-08 | Microsoft Corporation | Test automation stack layering |
US7343482B2 (en) * | 2004-10-20 | 2008-03-11 | Arm Limited | Program subgraph identification |
US7598953B2 (en) | 2004-11-05 | 2009-10-06 | Microsoft Corporation | Interpreter for simplified programming of graphics processor units in general purpose programming languages |
CN1776604A (zh) * | 2004-11-18 | 2006-05-24 | 微软公司 | 图形数据流的复用和去复用 |
US7620947B2 (en) | 2005-03-11 | 2009-11-17 | Autodesk, Inc. | Enhanced directed graph representation for dependency systems |
US7505975B2 (en) | 2005-04-14 | 2009-03-17 | Bea Systems, Inc. | Use of transaction context to select single database instance for global transaction |
US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
US20070118839A1 (en) | 2005-10-24 | 2007-05-24 | Viktors Berstis | Method and apparatus for grid project modeling language |
US8266609B2 (en) | 2005-12-07 | 2012-09-11 | Microsoft Corporation | Efficient placement of software transactional memory operations around procedure calls |
US8073671B2 (en) | 2006-03-31 | 2011-12-06 | Microsoft Corporation | Dynamic software performance models |
US7870556B2 (en) * | 2006-05-16 | 2011-01-11 | Ab Initio Technology Llc | Managing computing resources in graph-based computations |
US7844946B2 (en) | 2006-09-26 | 2010-11-30 | Intel Corporation | Methods and apparatus to form a transactional objective instruction construct from lock-based critical sections |
JP4073033B1 (ja) | 2007-04-27 | 2008-04-09 | 透 降矢 | 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム |
WO2009015342A1 (en) | 2007-07-26 | 2009-01-29 | Ab Initio Technology Llc | Transactional graph-based computation with error handling |
US8775441B2 (en) | 2008-01-16 | 2014-07-08 | Ab Initio Technology Llc | Managing an archive for approximate string matching |
US20090193417A1 (en) | 2008-01-24 | 2009-07-30 | Nec Laboratories America, Inc. | Tractable dataflow analysis for concurrent programs via bounded languages |
US8797178B2 (en) | 2008-03-10 | 2014-08-05 | Microsoft Corporation | Efficient stream sharing for multi-user sensor data collection |
JP5331203B2 (ja) | 2008-06-30 | 2013-10-30 | アビニシオ テクノロジー エルエルシー | グラフベース計算におけるデータ記録 |
US20100070955A1 (en) | 2008-07-08 | 2010-03-18 | Nec Laboratories America | Alias analysis for concurrent software programs |
US20100169137A1 (en) | 2008-12-31 | 2010-07-01 | Ebay Inc. | Methods and systems to analyze data using a graph |
US7979479B2 (en) | 2009-01-08 | 2011-07-12 | International Business Machines Corporation | Transaction-controlled graph processing and management |
US8635694B2 (en) | 2009-01-10 | 2014-01-21 | Kaspersky Lab Zao | Systems and methods for malware classification |
CA2750279C (en) | 2009-02-13 | 2019-03-26 | Ab Initio Technology Llc | Managing task execution |
US7992040B2 (en) | 2009-02-20 | 2011-08-02 | International Business Machines Corporation | Root cause analysis by correlating symptoms with asynchronous changes |
US8327377B2 (en) | 2009-04-30 | 2012-12-04 | Ca, Inc. | Detecting, logging and tracking component dependencies in web service transactions |
US8667329B2 (en) | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
CN103069394B (zh) | 2010-08-25 | 2016-06-22 | 起元技术有限责任公司 | 评估数据流图的特征 |
-
2007
- 2007-08-09 CN CN2007800297919A patent/CN101501678B/zh active Active
- 2007-08-09 EP EP07813940A patent/EP2050013A4/en not_active Ceased
- 2007-08-09 KR KR1020097002672A patent/KR101495575B1/ko active IP Right Grant
- 2007-08-09 CN CN201310403428.6A patent/CN103729330B/zh active Active
- 2007-08-09 EP EP12165575.7A patent/EP2527983A3/en not_active Ceased
- 2007-08-09 CA CA2657233A patent/CA2657233C/en active Active
- 2007-08-09 AU AU2007286155A patent/AU2007286155B2/en active Active
- 2007-08-09 US US11/836,349 patent/US8572236B2/en active Active
- 2007-08-09 JP JP2009523997A patent/JP5894724B2/ja active Active
- 2007-08-09 WO PCT/US2007/075576 patent/WO2008021953A2/en active Application Filing
-
2014
- 2014-10-02 JP JP2014203775A patent/JP2015008016A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127104A (en) * | 1986-12-29 | 1992-06-30 | Dataflow Computer Corporation | Method and product involving translation and execution of programs by automatic partitioning and data structure allocation |
CN1637710A (zh) * | 2003-12-30 | 2005-07-13 | 国际商业机器公司 | 用于调度数据处理基础结构中工作单元执行的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2010500669A (ja) | 2010-01-07 |
JP2015008016A (ja) | 2015-01-15 |
CN101501678A (zh) | 2009-08-05 |
WO2008021953A3 (en) | 2008-11-13 |
CN101501678B (zh) | 2013-10-16 |
CN103729330A (zh) | 2014-04-16 |
CA2657233C (en) | 2016-06-21 |
CA2657233A1 (en) | 2008-02-21 |
WO2008021953A2 (en) | 2008-02-21 |
KR101495575B1 (ko) | 2015-02-25 |
JP5894724B2 (ja) | 2016-03-30 |
EP2050013A4 (en) | 2010-01-06 |
EP2050013A2 (en) | 2009-04-22 |
EP2527983A3 (en) | 2013-06-12 |
US20080049022A1 (en) | 2008-02-28 |
US8572236B2 (en) | 2013-10-29 |
AU2007286155A1 (en) | 2008-02-21 |
KR20090048585A (ko) | 2009-05-14 |
WO2008021953A4 (en) | 2009-01-08 |
AU2007286155B2 (en) | 2013-12-12 |
EP2527983A2 (en) | 2012-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729330B (zh) | 在基于图的计算中分配服务 | |
US7376663B1 (en) | XML-based representation of mobile process calculi | |
US7503033B2 (en) | Model for business workflow processes | |
US8073857B2 (en) | Semantics-based data transformation over a wire in mashups | |
US8656342B2 (en) | Composing integrated systems using GUI-based applications and web services | |
JP2006516166A (ja) | ネットワーク・ベースのポートフォリオ管理およびリスク分析のための方法および装置 | |
US8099736B2 (en) | Systems and methods providing intelligent routing of data between software systems | |
US20080209446A1 (en) | Design tool for converting legacy applications to web services | |
EP2442265A2 (en) | Method and server cluster for MapReducing FLOW services and large documents | |
US8826248B2 (en) | Enabling computational process as a dynamic data source for bi reporting systems | |
US20080109524A1 (en) | Method and system for dynamically specifying a format for data provided by a web service invocation | |
Walkowiak | Language processing modelling notation–orchestration of NLP microservices | |
US20080209356A1 (en) | GUI-based application to web services conversion system | |
Louridas | Orchestrating web services with bpel | |
US8051110B2 (en) | Identifying screen flows to support multiple entities and their diverse rules with a single application instance | |
JP2003345697A (ja) | 統合インタフェース提供方法、装置及び記憶媒体 | |
US10083407B2 (en) | Ad hoc task creation and process modification | |
Du et al. | Enterprise application integration: An overview | |
Li et al. | Decentralized execution of event-driven scientific workflows | |
Li et al. | NI NOS: A Distributed Service Oriented Architecture for Business Process Execution | |
JP2001160006A (ja) | メッセージ中継システム | |
Erl et al. | SOA with Java: Realizing Service-orientation with Java Technologies | |
CN115357247A (zh) | 支付报文页面生成方法及装置 | |
JP2012084161A (ja) | 画面情報生成方法、画面情報生成システムおよび画面情報生成プログラム | |
JP2014026392A (ja) | データベースドライバおよびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1194175 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1194175 Country of ref document: HK |