JP5894724B2 - グラフ型計算の分散サービス - Google Patents

グラフ型計算の分散サービス Download PDF

Info

Publication number
JP5894724B2
JP5894724B2 JP2009523997A JP2009523997A JP5894724B2 JP 5894724 B2 JP5894724 B2 JP 5894724B2 JP 2009523997 A JP2009523997 A JP 2009523997A JP 2009523997 A JP2009523997 A JP 2009523997A JP 5894724 B2 JP5894724 B2 JP 5894724B2
Authority
JP
Japan
Prior art keywords
subgraph
graph
records
output
instance
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
Application number
JP2009523997A
Other languages
English (en)
Other versions
JP2010500669A (ja
Inventor
イゴール シャーブ
イゴール シャーブ
サード ジョセフ スケフィントン ホーリー
サード ジョセフ スケフィントン ホーリー
ラリー ダブリュ アレン
ラリー ダブリュ アレン
Original Assignee
アビニシオ テクノロジー エルエルシー
アビニシオ テクノロジー エルエルシー
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アビニシオ テクノロジー エルエルシー, アビニシオ テクノロジー エルエルシー filed Critical アビニシオ テクノロジー エルエルシー
Publication of JP2010500669A publication Critical patent/JP2010500669A/ja
Application granted granted Critical
Publication of JP5894724B2 publication Critical patent/JP5894724B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/505Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, 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)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Development Economics (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)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)
  • Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)

Description

発明の詳細な説明
優先権主張
本願は、2006年8月10日出願の特許仮出願第60/836,745号の優先権を主張し、その全文を引用して本明細書に組み込む。
技術分野
本発明はグラフ型計算の分散サービスに関する。
発明の背景
複雑なビジネスシステムでは多くの段階でデータ処理するのが典型的であり、ある段階で得られた結果は次の段階に送られる。このようなシステムを通る情報の全体の流れは、有向データフローグラフとして記述することができ、そのグラフの頂点はコンポーネント(データファイルまたはプロセッサのいずれか)を表わし、グラフのリンクつまり、「辺」はコンポーネント間のデータフローを示す。
グラフを用いて、計算を直接呼び出すこともできる。マサチュセッツ州LexingtonのAb Initio Software Corporationが提供するグラフ開発環境(GDE)による「CO>OPERATING SYSTEM(登録商標)」は、このようなシステムを具現化している。このシステムにより作成されるグラフは、グラフコンポーネントにより表される個々のプロセスの入出力情報を取得して、プロセス間で情報を移動させ、そしてプロセスの実行順序を定義するための方法を提供する。このシステムは、プロセス間の通信法を選択するアルゴリズム、およびプロセス実行をスケジュール化するアルゴリズムを含み、グラフ実行の監視も提供する。
分散型サービスのアーキテクチャにより、コンピュータープログラムは、例えば、ワールドワイドウェブ等のネットワークインターフェースを通じて他のプログラムの機能にアクセスすることができ、他のプログラムの機能を自身のオペレーティングコードに組み込む必要がなくなる。
発明の概要
全体として、一態様では、サービスリクエストは、サービスクライアントからの計算グラフの入力を受信するステップ、その入力をデータフローのレコードとして計算グラフに提供するステップ、計算グラフから出力を受け取るステップ、およびサービスクライアントにその出力を提供するステップにより、そのサービスと関連する計算グラフに基づき処理される。
実装には以下の特徴の内の一つ以上が含まれる。
入力を受信するステップは、サービスクライアントからのサービスリクエスト内の入力を識別するステップを含み、計算グラフにその入力を提供するステップは、リクエスト識別子をサービスリクエストと関連付けるステップ、計算グラフへの入力を含むワーク要素を提供するステップ、リクエスト識別子をワーク要素と関連付けるステップ、およびリクエスト識別子とワーク要素との関連付けを出力ノードに通信するステップを含む。入力を識別するステップは、カプセル化されたリクエストから入力を抽出するステップを含む。カプセル化されたリクエストはSOAPリクエストを含む。出力を受け取るステップは、計算グラフからの出力を含むワーク要素を受け取るステップ、およびワーク要素と関連付けられるリクエスト識別子を識別するステップを含み、サービスクライアントへ出力を提供するステップは、リクエスト識別子が識別するサービスリクエストと対応するサービス応答を生成するステップを含み、サービス応答はワーク要素に含まれる出力を含む。サービス応答を生成するステップは、カプセル化された応答内に出力を組み込むステップを含む。カプセル化された応答はSOAP応答を含む。
第2のサービスリクエストは、第2のサービスクライアントから計算グラフの第2入力を受信するステップ、第2入力を第2データフローのレコードとして計算グラフに提供するステップ、計算グラフから第2出力を受け取るステップ、および第2のサービスクライアントに第2出力を提供するステップにより計算グラフに基づいて処理され;計算グラフでは、第1入力および第2入力を並列処理する。第1入力および第2入力を並列処理するステップは、第1入力に適用可能な第1サブグラフを識別するステップ、第1入力を第1サブグラフで処理するステップ、第2入力に適用可能な第2サブグラフを識別するステップ、第2入力を第2サブグラフで処理するステップ、第1サブグラフから第1出力を受け取るステップ、および第2サブグラフから第2出力を受け取るステップを含み、第1サブグラフおよび第2サブグラフを同時に実行する。第1入力および第2入力を並列処理するステップは、サブグラフの第1インスタンスを利用可能であると識別するステップ、サブグラフの第1インスタンスで第1入力を処理するステップ、サブグラフの第2インスタンスを利用可能であると識別するステップ、サブグラフの第2インスタンスで第2入力を処理するステップ、第1インスタンスから第1出力を受け取るステップ、および第2インスタンスから第2出力を受け取るステップを含み、サブグラフの第1インスタンスおよびサブグラフの第2インスタンスを同時に実行する。
一般に、一態様では、データフローは、データフローの第1レコードに適用可能な第1グラフを識別するステップ、第1レコードの第1ワーク要素に適用可能な第1サブグラフを識別するステップ、第1サブグラフ内で第1ワーク要素を処理するステップ、第1レコードの第2ワーク要素に適用可能な第2サブグラフを識別するステップ、第2サブグラフ内で第2ワーク要素を処理するステップ、第1サブグラフから第1出力ワーク要素を受け取るステップ、第2サブグラフから第2出力ワーク要素を受け取るステップ、第1出力ワーク要素を第1レコードと関連付けるステップ、および第2出力ワーク要素を第1レコードと関連付けるステップにより、グラフ型計算で処理され、第1サブグラフおよび第2サブグラフを少なくとも部分的に同時に実行する。
一般に、一態様では、データフローは、データフローの第1レコードに適用可能な第1グラフを識別するステップ、サブグラフの第1インスタンスを利用可能であると識別するステップ、サブグラフの第1インスタンス内で、第1レコードの第1ワーク要素を処理するステップ、サブグラフの第2インスタンスを利用可能であると識別するステップ、サブグラフの第2インスタンス内で、第1レコードの第2ワーク要素を処理するステップ、第1インスタンスから第1出力ワーク要素を受け取るステップ、第2インスタンスから第2出力ワーク要素を受け取るステップ、第1出力ワーク要素を第1レコードと関連付けるステップ、および第2出力ワーク要素を第1レコードと関連付けるステップにより、グラフ型計算で処理され、サブグラフの第1インスタンスおよびサブグラフの第2インスタンスを少なくとも部分的に同時に実行する。
本発明の他の特徴および利点は、本説明およびクレームから明らかとなろう。
分散型サービスシステムの略図を示す。 サービスを呼び出すためのプロセスのフロー図を示す。 分散型サービスシステムの略図を示す。 分散型サービスを提供するためのグラフを示す。 分散型サービスを提供するためのグラフを示す。 分散型サービスを提供するためのグラフを示す。 分散型サービスを提供するためのグラフを示す。 分散型サービスを提供するためのグラフを示す。
発明の説明
実施例によっては、グラフ型計算を分散型サービスと相互作用させる二つの方法がある。実施例によっては、グラフがサービスを「呼び出し」、そのサービスがあたかもグラフ内のノードであるかのように、そのサービスと関連付けられる。他の実施例では、アプリケーションがグラフと関連付けられて、そのグラフがサービスを「提供する」。これら二つの事例は同時に実行することができる。例えば、あるアプリケーションにサービスを提供しているグラフが、別のサービスをそれ自体で呼び出して、その計算の一部を実行することができる。あるグラフが呼び出すサービスを別のグラフが提供できるので、第1グラフが、例えば、サブグラフとして第2グラフを含むのではなく、第2グラフを呼び出すことができるようになる。
実施例によっては、図1Aに示すように、グラフ型計算100のサービスノード102は、分散型サービス指向のアーキテクチャでサービスを呼び出すことにより動作する。すなわち、サービスノード102を実行する場合、グラフ100の外部にあるサービス108をサービスのクライアントとして呼び出す。例えば、サービスノード102は、SORP、HTTP、XML、WSDL等の内の一つ以上の組み合せを用いてウェブサービスにアクセスし、アプリケーションサーバ106上でホストされるウェブサービスプラグイン104と通信し、外部サービス108に到達することができる。外部サービス108は、以下に説明するように、それ自体をグラフ型計算とすることができる。このサービスは、多様な分散型計算タスクの方法のどれかを用いた分散様式で実装することができる。
サービスノード102は、他のグラフノード、例えば、ノード112から、Ab InitioのDMLのようなデータ記述言語で記述されたレコード等の、グラフ型計算100の本来のフォーマットで入力110を受け取る。次いで、ノード102は、その入力110を、SOAPまたは他の形式のカプセル型リクエスト等の、そのノードが使用するウェブサービスの形式に適合するフォーマットに変換し、サービスリクエスト114をアプリケーションサーバ106に送信する。リクエスト114内のURLは、そのリクエストを送信するアプリケーションサーバ106、プラグイン104、およびサービス108がどれであるかを指示する。リクエスト114は、HTTPおよびRPC(リモート手続き呼出し)を含む様々な方法で送信することができる。サーバ106上のプラグイン104は、入ってくるリクエスト114を適切に再フォーマットし、外部サービス108に、適切な呼出し116を送信する。
サービス108は呼び出された操作が何であれそれを実行してから、プラグイン104に出力118を戻す。プラグイン104は、サービス108の出力118を適切なサービス応答120に再フォーマットして、サービスノード102に戻す。サービスノード102は応答120を適切な出力フォーマットに再フォーマットして、下流のグラフノード、例えばノード122、に出力121を渡す。他のグラフノード112、122、124、126の観点からは、分散サービスノード102は他のノードと同様、グラフ計算100に参加することができる。プラグイン104の、性質およびサービス108への通信方法(または、例えば、プラグイン104がそもそも使用されるのかどうか)等の、サーバ106の構造および編成は、予測している形式の応答120をサービスノード102が受信する限り、グラフノードにとって重要ではない。サーバ106、プラグイン104、およびサービス108は、後述するように、それら自体をそれぞれグラフ型計算のサーバ、プラグイン、およびグラフとすることができる。
実施例によっては、グラフ100はパイプライン化されるが、その意味は、パイプラインの各シーケンス段において、規模の大きな入力レコードフローの内の別々のレコード、または別々のレコードセットに、各ノードが作用するということである。所与の段階で、後続のノードはそれぞれ、前のノードから受け取ったレコードまたはレコードのセットに作用し、一方、前のノードは、入力フロー内の次のレコードまたはレコードのセットに作用する。サービスノード102は、追加されるレコードを受け取り、追加レコードそれぞれが要求するワークをサービス108に発送することによりこれを修正した後に、前回受信しているサービスリクエストに対する応答を行う。これは、例えば、サービス108が複数の並列リクエストを処理する能力がある場合に可能である。レコードは、レコードについて説明したように、各パイプライン段で取り扱うことができる別々のワーク要素または別々にできるワーク要素で構成することができる。
様々なリクエスト114の処理時間量が異なる場合、サービスノード102はその入力を受け取った順序と異なる順序でその応答を受信してもよい。これにより、異なる処理時間を有する多数のサービスに、単一のノード102がアクセスすることができるようになる。102のようなサービスノードは、その入力110を受け取った順序と異なる順序で、その出力121を提供するようオプションで構成できる。サービスノード102にマルチスレッドプロセスを使用せずに、しかもリクエスト114それぞれにグラフ100の全体の状態を記述するデータ(リクエストが返されたときに記述データを使用できるように)を含めずに、このような並列処理を可能にするために、サービスノード102は、どのリクエスト114が未処理であるかの追跡を続け、入ってくる応答120と未処理リクエストを一致させる。実施例によっては、一つのノードがそれぞれのレコードまたはワーク要素を一度に取り扱い、別のノードが別のレコードまたはワーク要素を取り扱うように、グラフをパイプライン化するが、多数のレコードまたはワーク要素を、任意の所定の時間に単一のサービスノード102に配置することができる。
パイプライン化したグラフでは、サービスノード102は、それぞれのレコード、例えば、データフローのそれぞれのレコードを個々のトランザクションとして扱う。対応するリクエストはその単一の入力レコード内のフィールドに基づいて生成される。幾つかのフィールドはURL等のリクエスト属性を定義することができ、その他のフィールドは組み込みデータとして渡される。
実施例によっては、図1Bのプロセス150で示すように、リクエスト114と応答120との関連は、サービスノード102がアクセスできるメモリ内で追跡される。このメモリは、ベクトル、テーブル、ファイル等のそのようなデータ構造とすることができる。入力レコード110が受領されると152、レコード110のコピーがメモリ151に格納される154。次いで、サービスノード102はリクエスト114を生成し156、そのリクエストをそのサービスに送り158、リクエストのIDをメモリに書き込み160、それをレコード110の格納されたコピーと関連付ける。応答120が受信されると162、それには、未処理リクエストの内の一つと対応するIDが含まれている。サービスノード102は、そのIDをメモリ内のIDと一致させ164、対応する入力レコード110のコピーを読み出す166。そのレコードを応答120により更新し168、出力121を生成する。利用可能な順序で出力を生成するようサービスノード102を構成する場合(入力を受け取った順序と同じとは限らない)、出力121は次のノード122に提供される170。サービスノード102がその入力と同じ順序で結果を生成するように構成されている場合は、前回のレコードと対応する全ての出力が書き込まれるまで121、出力をメモリ内に保持することができ171、その時点で書き込むことができる121。
実施例によっては、グラフ型計算がネットワークサービスとして提供される。本発明者らは、プロバイダーグラフとしてネットワークサービスを提供するグラフに言及する。図2に示すように、グラフ計算であってもよいが任意の他の種類のアプリケーションでもよいクライアントシステム202上で実行されるプロセス200は、プロバイダーグラフ206の使用を要求する計算リクエスト204をアプリケーションサーバ208に送信する。リクエスト204は、SOAP、HTTP、またはRPCリクエストのようなウェブサービスまたは他のネットワークサービスに適したフォーマットで送信される。リクエスト204は、アプリケーションサーバ208のサービスインターフェース内で、アプリケーションサーバ208上で実行されているウェブサービスプラグイン210の命令(SOAPまたはHTTPリクエストの)に従って、受信される。
ウェブサービスプラグイン210は、ウェブサービスクライアントとそのサービスを提供するグラフとの間のリクエストおよび応答を処理するアプリケーションである。プラグイン210はアプリケーションサーバ208にインストールされ実行される。ウェブサービスプラグインは、一セットの幾つかのウェブサービスプロバイダーグラフと通信できる。グラフはそれぞれ、プラグインからアクセスされるサービスリストに含まれる。プラグインはURLを、例えば、クライアントのHTTPリクエストメッセージ内で用いて、リクエストを特定グラフに誘導する。
プラグイン210は、グラフを処理するために、サービスリクエスト204をRPCリクエスト等の適切なリクエスト212にフォーマットし、このリクエスト212をグラフ206をホストしているグラフサーバ214に送る。実施例によっては、RPC呼出しは、クライアント200からプロバイダーグラフ206へ直接行われる。グラフサーバ214で、リクエスト212に含まれる入力216がグラフ206に提供され、出力218を生成するために実行される。グラフサーバ214は、RPC応答等の、グラフ出力220に適した形式で、出力218をアプリケーションサーバ208およびそのウェブサービスプラグイン210へ送信する。プラグイン210は、グラフ出力220を元のリクエスト204に対して相補的なフォーマットでウェブサービス応答222へ再フォーマットする。その出力は、適切なネットワークサービスの通常の方法で、そのサービスを呼び出したクライアントまたは他のエンティティに戻される。次いで、クライアントシステム202上のプロセスは、それが、どれか他のウェブ型サービスまたはネットワークサービスの応答であるかのように、その応答を扱う。
グラフは、パイプライン並列処理、コンポーネント並列処理、およびデータ並列処理の何れかまたは全てを使用して入力を処理することができる。すなわち、多数の入力セットを受信して、ことによるとパーティションした後に、これら入力セットをパイプライン段でインターリーブしたり、または異なるコンポーネントグループにより並列処理したりすることができる。
実施例によっては、プロバイダーグラフへの公衆インターフェースまたは外部インターフェースが、WSDL(ウェブサービス記述言語)ファイルにより定義される。WSDLファイルは、プロバイダーグラフと相互作用するのに必要な全てのメッセージおよび操作のXMLベース記述を含む。WSDLファイルは、組織、業界、または何らかの他の団体が、その集団と関連するウェブサービスにアクセスするために定義してもよい。WSDLファイルは特定の実装ではカスタム化してもよい。実施例によっては、WSDファイルはプロバイダーグラフと関連するサブグラフ内のレコードフォーマットおよびコンポーネントの形式定義から生成される。実施例によっては、単一のプロバイダーグラフは、別々のサービスを実行する多数のサブグラフを含む。そのようなサブグラフから創成されたWSDLファイルにより、クライアントは、プロバイダーグラフのサブグラフが提供するサービスそれぞれにアクセスできるようになる。
プロバイダーグラフ内で、入ってくるサービスリクエスト入力は、サービスを提供するサブグラフの内部言語に変換される。例えば、図3に示すように、SOAPリクエスト等の、入ってくるメッセージ306は、メッセージ内で規定されたアクションによる処理が必要なデータペイロード308を含む。ペイロード308は、例えば、アクションプロセッサ300a、300b内でグラフが処理すべきDML記述レコードでもよい。インターフェースレイヤ301は、入ってくるメッセージがどのフォーマットで入ってくるかを構文解析し、グラフノードが要求しているフォーマットで、適切なメッセージをグラフノードに提供する。出力側では、インターフェースレイヤ301は逆に作用する。
メッセージ306が翻訳されると、アクション型ノード302によるパーティションは、メッセージ306内で規定されるアクションを解釈し、データペイロード内のレコード308を、適切なアクションプロセッサ300aまたは300bに送る。実施例によっては、前回のレコード308の作業結果がアクションプロセッサ300aまたは300bから出力されたということを、収集ノード304がパーティションノード302に報せるまで、パーティションノード302は次に入ってくるメッセージ307を受け取らない。
実施例によっては、メッセージ、例えばサービスリクエスト、を取り扱う際の並列性を達成するために、そのサービスリクエストと対応するアクションレコードをパーティション化するようパーティションノード302を構成する。これにより、同一のアクションプロセッサが要求されない場合、多数のリクエストを同時に取り扱うことができる。例えば、第1レコード308がアクションプロセッサ300aを要求し、第2レコード310がアクションプロセッサ300bを要求する場合、第1レコード308の処理完了を収集ノード304が報せるのを待たずに、パーティションノード302は第2レコード310をアクションプロセッサ300bに送る。
収集ノード304は、処理されたレコード308および310をアクションプロセッサ300aまたは300bから受け取り、処理されたレコード308’または310’をデータペイロードとして含む応答メッセージ312および313にそれらを編成する。多数のレコードを一度に処理できるように、パーティションノード302がトランザクションをパーティション化する場合、対応するリクエストメッセージ306および307の受信順序と異なる順序で、処理されたレコード308’または310’を収集ノード304により受信することが可能である。パーティションノード302と収集ノード304との間のインターフェース315により、収集ノードは、出力レコード308’、310’を、対応する入力308、310と関連させることができるので、回答メッセージ312および313を正しいクライアントに送り返すことができる。
アクションプロセッサ300a、300bは、任意の形式とすることができる。上記注釈のように、レコード308、310は任意のフォーマット、例えば、DML記述されたフォーマットとすることができる。その場合には、インターフェースレイヤ301は、SOAP等の、入ってくる言語をアクションプロセッサが使用するDMLフォーマットに翻訳する。実施例によっては、中間言語を用いて、インターフェースレイヤ301と、パーティションノードおよび収集ノード302、304との間の両入力を表すことができる。
実施例によっては、到着順でレコード308’および310’を受け取るよう収集ノード304を構成する場合、図3bのアクションプロセッサ300bで示すように、アクションプロセッサ内でアクションのプロセスをさらにパーティション化することができる。アクション型ノード302によるパーティションは、リクエストメッセージ306および307を受け取り、これらのレコード308および310を適切なアクションプロセッサ300aまたは300bに経路決定する。アクションプロセッサ300b内で、プールを横切ってレコードをパーティション化する別のパーティションノード352が、レコードを受け取る。プールは、アクションプロセッサ300bのプロセスを実行するサブグラフ350の、多数のインスタンス350a、350b、350cを参照する。各インスタンスは、異なるレコードを他のインスタンスと並列に処理することができる。異なるレコード308、320を、異なるインスタンスにパーティション化することにより、アクションプロセッサ300bは多数のレコードを並列に取り扱うことができるので、パーティションノード302は、前のレコード308の結果が出てくる前に、次のレコード320をアクションプロセッサに送ることができる。収集ノード354は、ノードがインスタンス350a、350b、350cのどれが使用中であるかを追跡し、可能なら動作していないインスタンスを使用して、並列性および性能が向上するように、パーティションノード352と対になって組み合される。収集ノード304は、アクションプロセッサ300a、300bの出力308’、310’をさらに受け取り、インターフェースレイヤ301を通じて適切な出力メッセージ312、313をクライアントに供給して戻す。
出力レコード308’、310’および出力メッセージ312、313は、入力リクエスト306、307を受け取った順序と異なる順序で戻すことができる。例えば、入力レコード310にレコード308より少ないワーク要素(後述する)しか含まれていなかった場合、出力応答313は、それが、後から受け取ったリクエスト307と対応するにもかかわらず、最初に戻すことができる。処理の複雑さ、または他の要因に応じてレコードを違う順序で処理したり、異なるレートで処理したりする方法で、アクションプロセッサ300a、300bが作業する場合、入力データの複雑さに基づいて出力の順序を変化させることができる。
実施例によっては、図4に示すように、単一のサービスリクエストのレコード406は、データフローとして、すなわち、順にグラフを通過して移動する多数のワーク要素408a〜408eとして、プロバイダーグラフが処理するデータを含む。アクションプロセッサ300a(レコードがそれ以上パーティション化されていない場合)またはサブグラフ350(レコードがさらにパーティション化されている場合)は、個々のワーク要素408a〜408eに入力レコード406を分解するアンラップ(unwrap)ノード402を含み、ワーク要素をサービス提供サブグラフ400に適宜送り出す。対応するラッピング(wrapping)ノード404は、出力ワーク要素408a’〜408e’のフローを単一応答412へ再結合して、リクエスト406を送信したクライアントに返す。
実施例によっては、アクションがパーティション化され、ワーク要素にアンラップされると、ワーク要素も、図5aに示すように並列に処理される。図3aのレコードと同様に、パーティションノード502は、ワーク要素408a〜408eの種類、すなわち、ワーク要素プロセッサ500aまたは500bのどちらがそれぞれを処理するのに必要か、によってこれらをパーティション化する。ワーク要素が処理される順序が問題になる場合、パーティションノード502は、ワーク要素408を一つずつプロセッサ500aおよび500bに送り(場合により両方のプロセッサを使用するために各ワーク要素をパーティション化する)、それぞれの出力ワーク要素408’を受け取ったときに、収集ノード504がそれを報せるのを待つ。実施例によっては、プロセスの順序は重要ではなく、そのワーク要素が異なるプロセッサを必要としていると想定される場合は、パーティションノードは、一つのワーク要素を各プロセッサ500aおよび500bに送る。
ワーク要素408a‘〜408e’が、プロセッサ500a、500bを出ると、収集ノード504がそれを蓄積する。一つのレコード406からのワーク要素を全て収集すると、結合して出力レコード412に戻される。パーティションノード502と収集ノード504の間の通信515は、どのワーク要素プロセッサが追加のワーク要素を利用できるかをパーティションノード502に追跡させる。
多数の並列データフローを扱う技法は、2003年6月24日発行の米国特許第6,584,581号、2003年11月25日発行の米国特許第6,654,907号にも記載され、その全内容を引用して本明細書に組み込む。
図5bは、ワーク要素プロセッサ500bが動作する様子、および図5aのサブグラフが、プロバイダーグラフ501を形成する図3a、図3b、および図4の高位ノードの幾つかと関連する様子の詳細を示す。実施例によっては、図5bに示すように、ワーク要素プロセッサ500bは、サブグラフ550の多数のインスタンス550a、550b、550cにより、ワーク要素が動作するようにパーティション化する。インスタンス550aは、サブグラフ550内のグラフノードと関係するプロセスの利用可能インスタンスのプールから選択される。最初に、ワーク要素408iがパーティションノード552により受け取られる。ノード552は、サブグラフ550の幾つかのインスタンス550a、550b、550cにアクセス権を有する。各インスタンスの出力は収集ノード554により受け取られる。次いで、サブグラフ550は、サービスまたは他のサブグラフ等の、外側プロセスのノードによるワークの取扱いを遅くする外側プロセスを順に呼び出すことができる。
前のシステムでは、ノード552と類似のパーティションコンポーネントが、単一のワーク要素514を別々のコンポーネントにパーティション化し、インスタンス550i(ここでiはa、b、またはc)それぞれに一つのコンポーネントを送っていた。収集ノード554は、各インスタンスが出力を返すまで待ってから、出力をそのワーク要素の単一の出力に組み合せていたので、並列処理の可能性を失っていた。パイプラインを維持するために、パーティションノードは、ワーク要素の後に各インスタンスを通じて区切り文字を送っておくことができ、そうしておけば、収集コンポーネントは、区切り文字を各インスタンスから受け取ったときに、そのワーク要素が完了したことが分かる筈である。実施例によっては、パイプラインの所定の段階で所定のノードが取り扱う多数のワーク要素のセットの後に、区切り文字を送る。
対照的に、プールノード552によるパーティションは、処理のためにワーク要素408aの全体を単一インスタンス550aに送る。収集ノード554は、その一つのインスタンス550aからの、そのワーク要素の出力408a’を待つように構成される。待っていた出力408a’を受け取ると(実施例によっては、区切り文字が続く)、収集ノード544は、次のノード504へ出力を提供する。収集ノード554は、他のインスタンス550bおよび550cからのワーク要素コンポーネントまたは区切り文字を待たない。これにより、ワーク要素プロセッサ500bは、所定のワーク要素に実際に必要とされるインスタンス550iだけを使用することができる。図3bのプールによるトランザクションレコードのパーティションと同様に、プールによるワーク要素のパーティション化により、多数のワーク要素を並列処理できるようになる。第1のワーク要素408aが処理を終了し、そのインスタンス550aから出てくるのを待つのではなく、パーティションノード552は、上流ノード502から別のワーク要素入力408cを受け取り、それを次の利用可能なインスタンス550bに送る。こうして、パーティションノード552をマルチスレッドにしなくても、多数のワーク要素408a、408bを同時に処理する。実施例によっては、ワーク要素がそれぞれのインスタンス内にあることについて、パーティションノード552が通信リンク560を通じて収集ノード554に報せるので、それによって収集ノード554は待っているものについて認識し、出力要素408a´、408c´を入力ワーク要素408a、408cと関連付けることができる。
プール間のワーク要素をパーティション化することにより、出力要素408a´、408b´、408c´は、入力408a、408b、408cに対してずれた順序で結果を返すことができる。例えば、インスタンス550bがワーク要素408cを処理するのにかけるプロセスより、ワーク要素408a内のデータが、そのワーク要素を処理するのにインスタンス550aに長いプロセスをかけさせる場合、収集ノード554は、出力408c’を受け取ってから、出力408a’を受け取る。二つのワーク要素408aおよび408cは互いに独立しているので、収集ノード554は、出力408a’を待たずに、出力408c’を次のノード504に送ることができる。これは、他の段(例えば、パーティション/収集の対502/504およびアンラップ/ラップの対402、404)が、ワーク要素プロセッサ500b内のワーク要素の順序の変化に適合するよう構成されていると仮定している。実施例によっては、順序を維持することが必要であったり、望ましいこともあるので、出力408a’を受け取るまで収集ノード554は出力408c’を保持し、次のノード504に所定の順序で放出する。インスタンス550a、550b、550cが幾つかのワーク要素を同時に処理できるので、このような計算法の利点はさらに増す。これは例えば、サブグラフ550の処理時間が他のノードまたはサブグラフより長い場合に有用である。
アクション型およびプールによるトランザクションのパーティション化、ならびに種類およびプールによるワーク要素のパーティション化の全てにより、グラフは、内部並列処理、すなわち、異なる処理要素による関連または無関連のワーク要素の並列処理により動作できるようになる。
リクエストおよびそのワーク要素を並列処理するプールによるパーティション化、種類によるパーティション化、および他の方法は、グラフが提供するサービスが、それ自身で並列入力を取り扱うことができるように、プロバイダーグラフ内に実装することができる。例えば、図5bのグラフ501は、最初のノード570が加入ノードであり、最後のノード572が加入ノード570と対をなす発行ノードである場合、プロバイダーグラフとして動作する。加入ノード570は入力406を含むリクエスト574を受信し、その入力406をパーティションノード402に送る。加入ノード570は、発行ノード572と協調して、出力412を入力406と一致させ、それを適切な応答576にパッケージ化する(すなわち、呼び出したクライアントに、各応答が確実に行くようにする)。グラフ501は、並列レコードおよび並列ワーク要素を取り扱うので、加入ノード570は、発行ノード572が出力412を受け取るのを待たずに、入力リクエスト574を連続して受け取ることができる。アクションの種類に従ってリクエストをパーティション化するサブグラフを使用すると、単一のプロバイダーグラフ501が多数のサービスを提供できるようになる。
実施例によっては、加入ノードおよび発行ノード570および572は、個々のリクエスト574が独立で、応答576が返される順序が重要でないと仮定しているので、グラフ501内のパーティションノードおよび収集ノード402、404は、順序付けをしないよう構成されている。順序が重要である場合は、加入ノード570および発行ノード572のどちらかまたは両方が、対応する入力574を受け取ったのと同じ順序で応答576を確実に返すことができる。
他の実装は、本出願人が権利を有する以下のクレームおよび他のクレームの範囲内にある。

Claims (36)

  1. コンピュータが、サービスリクエストを、そのサービスと関連付けられていて渡されるレコードのデータフローを表すリンクによって接続されるノードを含む計算グラフに従って処理するステップを含む方法であって、この処理するステップは、
    サービスクライアントから前記計算グラフのための複数のレコードを受信するステップと、
    前記複数のレコードの各々を前記計算グラフのパーティションノードに提供するステップと、
    前記パーティションノードで、各レコードに対して規定されるアクションの種類に基づいて、前記複数のレコードを複数のセットにパーティション化するステップと、
    前記複数のセットの各々に対して、前記計算グラフに含まれるサブグラフの1つを割り当てるステップであって、前記サブグラフの各々は、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含む、ステップと、
    前記複数のレコードの各レコードに対して、利用可能であると識別されたインスタンスのプールから、前記レコードを含む前記セットに割り当てられた前記サブグラフの前記ノードに関連付けられたプロセスのインスタンスを割り当てるステップと、
    前記計算グラフの前記サブグラフから出力を受け取るステップと、
    前記サービスクライアントに前記出力を提供するステップと、を含む方法。
  2. 前記複数のレコードを受信するステップは、
    前記サービスクライアントからのカプセル化されたリクエストから前記複数のレコードを抽出するステップを含み、および
    前記計算グラフに前記複数のレコードの各々を提供するステップは、
    リクエスト識別子を前記サービスリクエストと関連付けるステップと、
    前記複数のレコードの各々に含まれるワーク要素を前記計算グラフへ提供するステップと、
    前記リクエスト識別子を前記ワーク要素と関連付けるステップと、
    前記リクエスト識別子と前記ワーク要素との関連付けを出力ノードに通信するステップとを含む、請求項1の方法。
  3. 前記出力を受け取るステップは、
    前記計算グラフからの出力を含むワーク要素を受け取るステップと、
    前記ワーク要素と関連付けられるリクエスト識別子を識別するステップと、を含み、
    前記サービスクライアントへ出力を提供するステップは、
    前記リクエスト識別子が識別する前記サービスリクエストと対応するカプセル化された応答内に前記出力を組み込むステップを含み、前記カプセル化された応答は前記ワーク要素に含まれる前記出力を含む、請求項1の方法。
  4. 前記サービスクライアントに前記出力を提供するステップは、カプセル化されたSOAP応答内に前記出力を組み込むステップを含む、請求項1の方法。
  5. 前記複数のレコードの各々は、1つ以上のワーク要素を含む、請求項1の方法。
  6. 前記複数のレコードの各々は、カプセル化されたSOAPレコードに含まれる、請求項1の方法。
  7. 各レコードを、それぞれ割り当てられた前記サブグラフのインスタンスを用いて、他のレコードに対して任意の順序で処理するステップを更に含む、請求項1の方法。
  8. 前記複数のレコードの1つに対して、前記複数のレコードの別の1つが前記サブグラフからの出力として受信される前に、前記サブグラフの前記インスタンスの1つが割り当てられる、請求項1の方法。
  9. 前記計算グラフ内の異なるサブグラフの少なくとも1つは、外部サービスとして呼び出される、請求項1の方法。
  10. 前記計算グラフは、前記サービスクライアントで動作しているクライアント計算グラフにノードとして参加する、請求項1の方法。
  11. 前記計算グラフは有向データフローグラフであり、前記計算グラフの頂点は、データ又はプロセスに対応するノードを表し、前記計算グラフのリンクは、ノード間のデータの流れを示し、前記計算グラフの各サブグラフは、前記計算グラフの前記ノード及び前記リンクの全てより少ないサブセットを含む、請求項1の方法。
  12. 前記複数のレコードは、前記サービスクライアントからのリクエストを処理するウェブサービスプラグインによって受信される、請求項1の方法。
  13. 第2のサービスクライアントから前記計算グラフのための前記複数のレコードを受信するステップと、
    前記第2のサービスクライアントからの前記複数のレコードを前記計算グラフに提供するステップと、
    前記計算グラフの前記サブグラフから第2のサービスリクエストに対する第2出力を受け取るステップと、
    前記第2のサービスクライアントに前記第2出力を提供するステップと、により、前記計算グラフに基づいて前記第2のサービスリクエストを処理するステップと、
    前記計算グラフにおいて、前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップと、を更に含む請求項1の方法。
  14. 前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップは、
    前記サービスクライアントからの前記複数のレコードを前記計算グラフの第1サブグラフで処理するステップと、
    前記第2のサービスクライアントからの前記複数のレコードを前記計算グラフの第2サブグラフで処理するステップと、
    前記第1サブグラフから第1出力を受け取るステップと、
    前記第2サブグラフから第2出力を受け取るステップと、を含み、
    前記第1サブグラフおよび前記第2サブグラフは、同時に実行される、請求項13の方法。
  15. 前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップは、
    サブグラフの第1インスタンスを利用可能であると識別するステップと、
    前記サブグラフの前記第1インスタンスで前記サービスクライアントからの前記複数のレコードを処理するステップと、
    前記サブグラフの第2インスタンスを利用可能であると識別するステップと、
    前記サブグラフの前記第2インスタンスで前記第2のサービスクライアントからの前記複数のレコードを処理するステップと、
    前記第1インスタンスから第1出力を受け取るステップと、
    前記第2インスタンスから第2出力を受け取るステップと、を含み、
    前記サブグラフの前記第1インスタンスおよび前記サブグラフの前記第2インスタンスは、同時に実行される、請求項13の方法。
  16. サービスと関連付けられる計算グラフに従ってサービスリクエストを処理するためのシステムであって、前記計算グラフが、ノード間で渡されるレコードのデータフローを表すリンクによって接続されるノードを含み、
    サービスクライアントから前記計算グラフのための複数のレコードを受信するための手段と、
    前記複数のレコードの各々を前記計算グラフのパーティションノードに提供するよう構成されるプロセッサと、
    前記パーティションノードで、各レコードに対して規定されるアクションの種類に基づいて、前記複数のレコードを複数のセットにパーティション化する手段と、
    前記複数のセットの各々に対して、前記計算グラフに含まれるサブグラフの1つを割り当てる手段であって、前記サブグラフの各々は、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含む、手段と、
    前記複数のレコードの各レコードに対して、利用可能であると識別されたインスタンスのプールから、前記レコードを含む前記セットに割り当てられた前記サブグラフの前記ノードに関連付けられたプロセスのインスタンスを割り当てる手段と、
    前記計算グラフの前記サブグラフから出力を受け取るための手段と、
    前記サービスクライアントに前記出力を提供するための手段と、を含むシステム。
  17. サービスと関連付けられる計算グラフに従ってサービスリクエストを処理するためのコンピュータ読み取り可能媒体に格納されたコンピュータープログラムであって、前記計算グラフが、ノード間で渡されるレコードのデータフローを表すリンクによって接続されるノードを含み、
    前記コンピュータープログラムは、
    サービスクライアントから前記計算グラフのための複数のレコードを受信するステップと、
    前記複数のレコードの各々を前記計算グラフのパーティションノードに提供するステップと、
    前記パーティションノードで、各レコードに対して規定されるアクションの種類に基づいて、前記複数のレコードを複数のセットにパーティション化するステップと、
    前記複数のセットの各々に対して、前記計算グラフに含まれるサブグラフの1つを割り当てるステップであって、前記サブグラフの各々は、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含む、ステップと、
    前記複数のレコードの各レコードに対して、利用可能であると識別されたインスタンスのプールから、前記レコードを含む前記セットに割り当てられた前記サブグラフの前記ノードに関連付けられたプロセスのインスタンスを割り当てるステップと、
    前記計算グラフの前記サブグラフから出力を受け取るステップと、
    前記サービスクライアントに前記出力を提供するステップと、をコンピュータに実行させる命令を含む、コンピュータープログラム。
  18. 前記複数のレコードを受信するステップは、
    前記サービスクライアントからのカプセル化されたリクエストから前記複数のレコードを抽出するステップを含み、および
    前記計算グラフに前記複数のレコードの各々を提供するステップは、
    リクエスト識別子を前記サービスリクエストと関連付けるステップと、
    前記複数のレコードの各々に含まれるワーク要素を前記計算グラフへ提供するステップと、
    前記リクエスト識別子を前記ワーク要素と関連付けるステップと、
    前記リクエスト識別子と前記ワーク要素との関連付けを出力ノードに通信するステップとを含む、請求項17のコンピュータープログラム。
  19. 前記出力を受け取るステップは、
    前記計算グラフからの出力を含むワーク要素を受け取るステップと、
    前記ワーク要素と関連付けられるリクエスト識別子を識別するステップと、を含み、
    前記サービスクライアントへ出力を提供するステップは、
    前記リクエスト識別子が識別する前記サービスリクエストと対応するカプセル化された応答内に前記出力を組み込むステップを含み、前記カプセル化された応答は前記ワーク要素に含まれる前記出力を含む、請求項17のコンピュータープログラム。
  20. 前記サービスクライアントに前記出力を提供するステップは、カプセル化されたSOAP応答内に前記出力を組み込むステップを含む、請求項17のコンピュータープログラム。
  21. 前記複数のレコードの各々は、1つ以上のワーク要素を含む、請求項17のコンピュータープログラム。
  22. 前記複数のレコードの各々は、カプセル化されたSOAPレコードに含まれる、請求項17のコンピュータープログラム。
  23. 各レコードを、それぞれ割り当てられた前記サブグラフのインスタンスを用いて、他のレコードに対して任意の順序で処理するステップを前記コンピュータに実行させる命令を更に含む、請求項17のコンピュータープログラム。
  24. 前記複数のレコードの1つに対して、前記複数のレコードの別の1つが前記サブグラフからの出力として受信される前に、前記サブグラフの前記インスタンスの1つが割り当てられる、請求項17のコンピュータープログラム。
  25. 前記計算グラフ内の異なるサブグラフの少なくとも1つは、外部サービスとして呼び出される、請求項17のコンピュータープログラム。
  26. 前記計算グラフは、前記サービスクライアントで動作しているクライアント計算グラフにノードとして参加する、請求項17のコンピュータープログラム。
  27. 前記計算グラフは有向データフローグラフであり、前記計算グラフの頂点は、データ又はプロセスに対応するノードを表し、前記計算グラフのリンクは、ノード間のデータの流れを示し、前記計算グラフの各サブグラフは、前記計算グラフの前記ノード及び前記リンクの全てより少ないサブセットを含む、請求項17のコンピュータープログラム。
  28. 前記複数のレコードは、前記サービスクライアントからのリクエストを処理するウェブサービスプラグインによって受信される、請求項17のコンピュータープログラム。
  29. 第2のサービスクライアントから前記計算グラフのための前記複数のレコードを受信するステップと、
    前記第2のサービスクライアントからの前記複数のレコードを前記計算グラフに提供するステップと、
    前記計算グラフの前記サブグラフから第2のサービスリクエストに対する第2出力を受け取るステップと、
    前記第2のサービスクライアントに前記第2出力を提供するステップと、により、前記計算グラフに基づいて前記第2のサービスリクエストを処理するステップと、
    前記計算グラフにおいて、前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップと、を前記コンピュータに実行させるための命令を更に含む請求項17のコンピュータープログラム。
  30. 前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップは、
    前記サービスクライアントからの前記複数のレコードを前記計算グラフの第1サブグラフで処理するステップと、
    前記第2のサービスクライアントからの前記複数のレコードを前記計算グラフの第2サブグラフで処理するステップと、
    前記第1サブグラフから第1出力を受け取るステップと、
    前記第2サブグラフから第2出力を受け取るステップと、を含み、
    前記第1サブグラフおよび前記第2サブグラフは、同時に実行される、請求項29のコンピュータープログラム。
  31. 前記サービスクライアントからの前記複数のレコードと、前記第2のサービスクライアントからの前記複数のレコードとを並列に処理するステップは、
    サブグラフの第1インスタンスを利用可能であると識別するステップと、
    前記サブグラフの前記第1インスタンスで前記サービスクライアントからの前記複数のレコードを処理するステップと、
    前記サブグラフの第2インスタンスを利用可能であると識別するステップと、
    前記サブグラフの前記第2インスタンスで前記第2のサービスクライアントからの前記複数のレコードを処理するステップと、
    前記第1インスタンスから第1出力を受け取るステップと、
    前記第2インスタンスから第2出力を受け取るステップと、を含み、
    前記サブグラフの前記第1インスタンスおよび前記サブグラフの前記第2インスタンスは、同時に実行される、請求項29のコンピュータープログラム。
  32. コンピュータが、データフローを表すリンクによって接続されるノードを含む計算グラフに従って、複数のワーク要素を含むレコードを処理する方法であって、
    前記計算グラフのパーティションノードで、各ワーク要素で実行される処理の種類に基づいて、前記複数のワーク要素を複数のセットにパーティション化するステップと、
    前記複数のセットのうちの第1セットの第1ワーク要素に対して、利用可能であると識別されたインスタンスのプールから、前記計算グラフのサブグラフのノードに関連付けられたプロセスの第1インスタンスを割り当てるステップであって、前記サブグラフは、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含み、前記インスタンスは、前記サブグラフの前記ノード及び前記リンクを含む、ステップと、
    前記サブグラフの前記第1インスタンスによって、前記レコードの前記第1ワーク要素を処理するステップと、
    前記複数のセットのうちの前記第1セットの第2ワーク要素に対して、利用可能であると識別された前記サブグラフの前記インスタンスの前記プールから、第2インスタンスを割り当てるステップと、
    前記サブグラフの前記第2インスタンスによって、前記レコードの前記第2ワーク要素を処理するステップと、
    前記第1インスタンスから第1出力ワーク要素を受け取るステップと、
    前記第2インスタンスから第2出力ワーク要素を受け取るステップと、
    前記第1出力ワーク要素を前記レコードと関連付けるステップと、
    前記第2出力ワーク要素を前記レコードと関連付けるステップと、を含み、
    前記サブグラフの前記第1インスタンスおよび前記サブグラフの前記第2インスタンスを少なくとも部分的に同時に実行する方法。
  33. 前記計算グラフは有向データフローグラフであり、前記計算グラフの頂点は、データ又はプロセスに対応するノードを表し、前記計算グラフのリンクは、ノード間のデータの流れを示し、前記サブグラフは、前記計算グラフの前記ノード及び前記リンクの全てより少ないサブセットを含む、
    請求項32の方法。
  34. データフローを表すリンクによって接続されるノードを含む計算グラフに従って、複数のワーク要素を含むレコードを処理するためのシステムであって、
    前記計算グラフのパーティションノードで、各ワーク要素で実行される処理の種類に基づいて、前記複数のワーク要素を複数のセットにパーティション化するための手段と、
    前記複数のセットのうちの第1セットの第1ワーク要素に対して、利用可能であると識別されたインスタンスのプールから、前記計算グラフのサブグラフのノードに関連付けられたプロセスの第1インスタンスを割り当てるための手段であって、前記サブグラフは、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含み、前記インスタンスは、前記サブグラフの前記ノード及び前記リンクを含む、手段と、
    前記複数のセットのうちの前記第1セットの第2ワーク要素に対して、利用可能であると識別された前記サブグラフの前記インスタンスの前記プールから、第2インスタンスを割り当てるための手段と、
    前記サブグラフの前記第1インスタンスによって、前記レコードの前記第1ワーク要素を処理し、前記サブグラフの前記第2インスタンスによって、前記レコードの前記第2ワーク要素を処理するよう構成された第1プロセッサと、
    前記第1インスタンスから第1出力ワーク要素を受け取るための手段と、
    前記第2インスタンスから第2出力ワーク要素を受け取るための手段と、
    前記第1出力ワーク要素を前記レコードと関連付け、前記第2出力ワーク要素を前記レコードと関連付けるよう構成された第2プロセッサと、を含み、
    前記第1プロセッサは、前記サブグラフの前記第1インスタンスおよび前記サブグラフの前記第2インスタンスを少なくとも部分的に同時に実行するよう構成されている、システム。
  35. データフローを表すリンクによって接続されるノードを含む計算グラフに従って、複数のワーク要素を含むレコードを処理するためのコンピュータ読み取り可能媒体に格納されたコンピュータープログラムであって、
    前記コンピュータープログラムは、
    前記計算グラフのパーティションノードで、各ワーク要素で実行される処理の種類に基づいて、前記複数のワーク要素を複数のセットにパーティション化するステップと、
    前記複数のセットのうちの第1セットの第1ワーク要素に対して、利用可能であると識別されたインスタンスのプールから、前記計算グラフのサブグラフのノードに関連付けられたプロセスの第1インスタンスを割り当てるステップであって、前記サブグラフは、前記計算グラフの前記ノード及び前記リンクの少なくとも一部を含み、前記インスタンスは、前記サブグラフの前記ノード及び前記リンクを含む、ステップと、
    前記サブグラフの前記第1インスタンスによって、前記レコードの前記第1ワーク要素を処理するステップと、
    前記複数のセットのうちの前記第1セットの第2ワーク要素に対して、利用可能であると識別された前記サブグラフの前記インスタンスの前記プールから、第2インスタンスを割り当てるステップと、
    前記サブグラフの前記第2インスタンスによって、前記第2ワーク要素を処理するステップと、
    前記第1インスタンスから第1出力ワーク要素を受け取るステップと、
    前記第2インスタンスから第2出力ワーク要素を受け取るステップと、
    前記第1出力ワーク要素を前記レコードと関連付けるステップと、
    前記第2出力ワーク要素を前記レコードと関連付けるステップと、をコンピュータに実行させる命令を含み、
    前記命令が、前記サブグラフの前記第1インスタンスおよび前記サブグラフの前記第2インスタンスを、コンピュータに少なくとも部分的に同時に実行させるコンピュータープログラム。
  36. 前記計算グラフは有向データフローグラフであり、前記計算グラフの頂点は、データ又はプロセスに対応するノードを表し、前記計算グラフのリンクは、ノード間のデータの流れを示し、前記サブグラフは、前記計算グラフの前記ノード及び前記リンクの全てより少ないサブセットを含む、
    請求項35のコンピュータープログラム。
JP2009523997A 2006-08-10 2007-08-09 グラフ型計算の分散サービス Active JP5894724B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US83674506P 2006-08-10 2006-08-10
US60/836,745 2006-08-10
PCT/US2007/075576 WO2008021953A2 (en) 2006-08-10 2007-08-09 Distributing services in graph-based computations

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014203775A Division JP2015008016A (ja) 2006-08-10 2014-10-02 グラフ型計算の分散サービス

Publications (2)

Publication Number Publication Date
JP2010500669A JP2010500669A (ja) 2010-01-07
JP5894724B2 true JP5894724B2 (ja) 2016-03-30

Family

ID=39082958

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009523997A Active JP5894724B2 (ja) 2006-08-10 2007-08-09 グラフ型計算の分散サービス
JP2014203775A Pending JP2015008016A (ja) 2006-08-10 2014-10-02 グラフ型計算の分散サービス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014203775A Pending JP2015008016A (ja) 2006-08-10 2014-10-02 グラフ型計算の分散サービス

Country Status (8)

Country Link
US (1) US8572236B2 (ja)
EP (2) EP2527983A3 (ja)
JP (2) JP5894724B2 (ja)
KR (1) KR101495575B1 (ja)
CN (2) CN103729330B (ja)
AU (1) AU2007286155B2 (ja)
CA (1) CA2657233C (ja)
WO (1) WO2008021953A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7221473B1 (ja) 2022-08-22 2023-02-13 三菱電機株式会社 ガス絶縁開閉装置

Families Citing this family (79)

* Cited by examiner, † Cited by third party
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
KR101635945B1 (ko) * 2007-07-26 2016-07-04 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
JP5453273B2 (ja) * 2007-09-20 2014-03-26 アビニシオ テクノロジー エルエルシー グラフベース計算におけるデータフロー管理
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
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
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
KR101661532B1 (ko) 2008-12-02 2016-09-30 아브 이니티오 테크놀로지 엘엘시 데이터 관리 시스템 내의 데이터 집합의 맵핑 인스턴스
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
CN105843684B (zh) 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
KR101693229B1 (ko) * 2009-02-13 2017-01-05 아브 이니티오 테크놀로지 엘엘시 데이터 저장 시스템과의 통신
US8205113B2 (en) 2009-07-14 2012-06-19 Ab Initio Technology Llc Fault tolerant batch processing
KR101660348B1 (ko) 2009-09-16 2016-09-27 아브 이니티오 테크놀로지 엘엘시 데이터세트 요소의 매핑
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
EP2513782A1 (en) 2009-12-14 2012-10-24 Ab Initio Technology LLC Specifying user interface elements
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
CN107066241B (zh) 2010-06-15 2021-03-09 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
US9460189B2 (en) * 2010-09-23 2016-10-04 Microsoft Technology Licensing, Llc Data model dualization
CN103180826B (zh) 2010-10-25 2017-04-05 起元技术有限责任公司 在代表计算机程序的数据流图中管理数据集对象
EP2663937B1 (en) 2011-01-14 2018-08-29 Ab Initio Technology LLC Managing changes to collections of data
US20120188249A1 (en) * 2011-01-26 2012-07-26 Raytheon Company Distributed graph system and method
US9116759B2 (en) 2011-02-18 2015-08-25 Ab Initio Technology Llc Restarting data processing systems
US9021299B2 (en) 2011-02-18 2015-04-28 Ab Initio Technology Llc Restarting processes
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
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
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
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US11061539B2 (en) * 2013-03-15 2021-07-13 The Mathworks, Inc. Reference nodes in a computational graph
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
CN105765528B (zh) 2013-11-13 2019-09-24 微软技术许可有限责任公司 具有可配置原点定义的应用执行路径跟踪的方法、系统和介质
US10346292B2 (en) 2013-11-13 2019-07-09 Microsoft Technology Licensing, Llc Software component recommendation based on multiple trace runs
US10180821B2 (en) 2013-12-05 2019-01-15 Ab Initio Technology Llc Managing interfaces for sub-graphs
CA2929716C (en) 2013-12-06 2021-08-31 Ab Initio Technology Llc Source code translation
US9400767B2 (en) * 2013-12-17 2016-07-26 International Business Machines Corporation Subgraph-based distributed graph processing
CN106716352B (zh) 2014-07-18 2020-04-28 起元科技有限公司 管理参数集
CA2958929A1 (en) * 2014-08-22 2016-02-25 Grass Valley USA, LLC Systems and methods for using graph modeling to manage, monitor, and control broadcast and multimedia systems
CA2959389A1 (en) 2014-09-02 2016-03-10 Ab Initio Technology Llc Compilation of graph-based program specifications with automated clustering of graph components based on the identification of particular data port connections
CA3003822C (en) 2014-09-02 2023-08-08 Ab Initio Technology Llc Specifying components in graph-based programs
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
US9710876B2 (en) 2015-01-16 2017-07-18 Intel Corporation Graph-based application programming interface architectures with equivalency classes for enhanced image processing parallelism
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
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
KR102438214B1 (ko) * 2015-07-09 2022-08-30 텔레콤 이탈리아 소시에떼 퍼 아찌오니 Ict 서비스 제공 방법 및 시스템
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
US10671669B2 (en) 2015-12-21 2020-06-02 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
US10978176B2 (en) 2018-06-29 2021-04-13 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

Family Cites Families (158)

* Cited by examiner, † Cited by third party
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
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
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
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
US5966072A (en) * 1996-07-02 1999-10-12 Ab Initio Software Corporation Executing computations expressed as graphs
US6016516A (en) 1996-08-07 2000-01-18 Fuji Xerox Co. Ltd. Remote procedure processing device used by at least two linked computer systems
US6038558A (en) 1996-10-18 2000-03-14 Sagent Technology, Inc. Extensible database retrieval and viewing architecture
US5930794A (en) 1996-10-18 1999-07-27 Sagent Technologies, Inc. Database repository with deferred transactions
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
US6470386B1 (en) 1997-09-26 2002-10-22 Worldcom, Inc. Integrated proxy interface for web based telecommunications management tools
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
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
US6480876B2 (en) 1998-05-28 2002-11-12 Compaq Information Technologies Group, L.P. System for integrating task and data parallelism 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
EP1145218B1 (en) 1998-11-09 2004-05-19 Broadcom Corporation Display system for blending graphics and video data
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
AU2215201A (en) 1999-12-20 2001-07-03 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
DE60106467T2 (de) * 2001-12-14 2006-02-23 Hewlett-Packard Development Co., L.P., Houston Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
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
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
US7417645B2 (en) 2003-03-27 2008-08-26 Microsoft Corporation Markup language and object model for vector graphics
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
US7743382B2 (en) * 2003-11-03 2010-06-22 Ramal Acquisition Corp. System for deadlock condition detection and correction by allowing a queue limit of a number of data tokens on the queue to increase
US7296072B2 (en) * 2003-12-12 2007-11-13 International Business Machines Corporation Enhanced port type agnostic proxy support for web services intermediaries
US7404189B2 (en) * 2003-12-30 2008-07-22 International Business Machines Corporation Scheduler supporting web service invocation
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 透 降矢 結合演算の処理機能の向上を考慮した合成関係演算を利用したマルチオペレーション・プロセッシングを用いたデータベースのクエリー処理システム
KR101635945B1 (ko) * 2007-07-26 2016-07-04 아브 이니티오 테크놀로지 엘엘시 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템
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
CN104679807B (zh) * 2008-06-30 2018-06-05 起元技术有限责任公司 基于图的计算中的数据日志记录
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
CN105843684B (zh) 2009-02-13 2020-03-03 起元技术有限责任公司 管理任务执行
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
EP2609507B1 (en) * 2010-08-25 2019-05-15 Ab Initio Technology LLC Evaluating dataflow graph characteristics

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7221473B1 (ja) 2022-08-22 2023-02-13 三菱電機株式会社 ガス絶縁開閉装置

Also Published As

Publication number Publication date
US20080049022A1 (en) 2008-02-28
EP2050013A2 (en) 2009-04-22
JP2010500669A (ja) 2010-01-07
CN103729330B (zh) 2017-04-19
JP2015008016A (ja) 2015-01-15
WO2008021953A2 (en) 2008-02-21
EP2527983A3 (en) 2013-06-12
KR20090048585A (ko) 2009-05-14
AU2007286155A1 (en) 2008-02-21
CN101501678B (zh) 2013-10-16
CA2657233A1 (en) 2008-02-21
CN103729330A (zh) 2014-04-16
WO2008021953A3 (en) 2008-11-13
EP2527983A2 (en) 2012-11-28
CN101501678A (zh) 2009-08-05
AU2007286155B2 (en) 2013-12-12
US8572236B2 (en) 2013-10-29
WO2008021953A4 (en) 2009-01-08
EP2050013A4 (en) 2010-01-06
KR101495575B1 (ko) 2015-02-25
CA2657233C (en) 2016-06-21

Similar Documents

Publication Publication Date Title
JP5894724B2 (ja) グラフ型計算の分散サービス
US7949999B1 (en) Providing support for multiple interface access to software services
US20200177572A1 (en) Sending cross-chain authenticatable messages
US8352423B2 (en) Apparatus and method for providing streaming data
KR101784784B1 (ko) 클라이언트-서버 브리지를 사용하는 객체 관리
US20100275210A1 (en) Execution engine for business processes
US20050251527A1 (en) System and method for integrating disparate data and application sources using a web services orchestration platform with business process execution language (BPEL)
JP2005196767A (ja) ウェブ・サービス呼び出しをサポートするスケジューラ
US20050251501A1 (en) System and method for integrating disparate data sources
CN109254854A (zh) 异步调用方法、计算机装置及存储介质
EP1850244A1 (en) Systems and methods for providing an interaction between a status management service and an audit trail service
US8135785B2 (en) System and method for processing messages using pluggable protocol processors in a service-oriented pipeline architecture
JP2011086291A (ja) システムランドスケープ対応アプリケーション間通信インフラストラクチャ
JP4852906B2 (ja) 連携処理システム及び装置
CN113469814A (zh) 交易时长数据的确定方法及装置
JP2009530707A (ja) コマンドラインのパイプライン化
CN113986955B (zh) 业务链的确定方法、装置、电子设备及介质
JP2014106965A (ja) データセット転送プロトコルを用いた多重要請処理方法
Vo Applying microservice architecture with modern gRPC API to scale up large and complex application
JP5732926B2 (ja) リモートプロシージャコール処理方法
JP4266507B2 (ja) オブジェクト連携モニタシステム
US20160294780A1 (en) System and method for providing an application programming interface for deploying a service bus artifact from a local development environment to a cloud environment
Albassam et al. Variable recovery and adaptation connectors for dynamic software product lines
Graham Web Services
Rohm Diploma Thesis Nr. 3173

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100804

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120323

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130123

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130322

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131126

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140214

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140314

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160229

R150 Certificate of patent or registration of utility model

Ref document number: 5894724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250