JP2014142959A - サービスの同時実行を実施するシステム及び方法 - Google Patents
サービスの同時実行を実施するシステム及び方法 Download PDFInfo
- Publication number
- JP2014142959A JP2014142959A JP2014075907A JP2014075907A JP2014142959A JP 2014142959 A JP2014142959 A JP 2014142959A JP 2014075907 A JP2014075907 A JP 2014075907A JP 2014075907 A JP2014075907 A JP 2014075907A JP 2014142959 A JP2014142959 A JP 2014142959A
- Authority
- JP
- Japan
- Prior art keywords
- contract
- message
- service
- services
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- 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/31—Programming languages or programming paradigms
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】この態様の中心には、自アルゴリズム(論理的)スレッドを実行することができる、「サービス」という概念がある。サービスは明示的な同期プリミティブを使用してメモリを共有または同期しない。むしろ、データ共有と同期は、両方とも、メッセージ受け渡しを介して実行される、例えば、一組の明示的に洗練されたメッセージがサービス間で送信される。メッセージは、共有されるデータおよび必要な同期を実現するメッセージ交換のパターンを含むことができる。
【選択図】 図1
Description
再び図1を参照するが、クライアント102とサービス108との間に共有状態がある同時実行には、たとえ熟練プログラマであっても問題があることが実証されていることに留意されたい。様々な力がソフトウェアをクライアント102とサービス108との間の同時実行および非同期相互作用に向けて押し引きするが、正しいものを実現することの難しさが障害となっている。本発明は、正しい同時実行プログラムを書く際の一部の複雑さを緩和するために同時実行モデルを使用するシステムおよび/または方法を対象とする。
図3を参照すると、本質的に、コントラクト104は、より豊富な意味を持つ非同期メッセージ受け渡しのインターフェース宣言として定義することができる。つまり、メッセージコンポーネント302を使用して一組のメッセージ(またはメソッド)および許容可能なメッセージ交換のシーケンスを記述するオプションのプロトコルまたはパターンコンポーネント304を指定するということである。さらに、コントラクトコンポーネント104は、既存のコントラクトコンポーネントを拡張するコントラクト拡張コンポーネント306を使用することができる。
410で、状態遷移が複数のターゲットを持つ場合、その遷移を並列でのすべてのターゲットへの分割遷移と呼ぶ。例えば、分割遷移は、その分割遷移からの一部の経路がSに収束する場合に部分的に状態Sでマージし、全部の経路が収束する場合に完全にマージする。状態Tが分割遷移の直接または間接ターゲットの場合、分割遷移がTのところでまたはTの前で完全にマージしていない限り、分割遷移を通らないTへの経路はありえない。分割遷移が状態Sでマージする場合、Sからの遷移は、その分割遷移からのすべての経路がSに到着するまで発生しえない。簡単に言うと、分割/マージは適切にネストし、分割/マージの真ん中への遷移はありえない。
本発明のシステムおよび方法によれば、412で、コントラクト拡張メカニズム(例えば、図3の306)を採用し、エラボレーテッドコントラクトを使用して分類されたコネクタとエラボレーティングコントラクトを使用して分類されたコネクタとの間の対話が可能であるようにコントラクトに追加することができる。対話の一方の側のみが、使用するコントラクトに関する選択権を有する。決定は、拡張の型によって行われる。
・ Aのすべてのメッセージは、Bのメッセージである。
・ Aのすべての状態は、Bの状態である。
・ Aによってホストされるすべてのコントラクトは、Bによってホストされる。
・ Bは、Aから継承した状態から遷移を除去することはできない。
・ Bは、メッセージ、状態、およびホストされているコントラクトを追加することができる。
・ Bは、Aから継承した状態に遷移を追加することができる。追加された遷移はすべて、同じ方向に進行するメッセージ用とすることができる。例えば、追加された遷移がInメッセージ用であれば、クライアントは、AまたはBのいずれかを使用してBを実装するサービスに接続することができる。追加された遷移がOutメッセージ用であれば、クライアントは、AまたはBのいずれかを使用してAを実装するサービスに接続することができる。
図2を再び参照すると、本発明のシステムおよび方法により、動作204と206との間のメッセージ交換は、接続を介して実行される。接続の両端のコードは、コネクタファクトリを介して作成されるコネクタを通じてメッセージの送受信を行う。コントラクト型CTでは、クライアントサイドコネクタは、型CTを有するが、サーバサイドコネクタは型ImplementsCTを有する。
さらに、Split演算は、複数の実行行を生成し、そのどの行も出力するまで実行され、出力されたときに、他の実行行を実行できる。様々な言語演算において、実行行に結果を出力させることができる。そのようなものには、Receive(例えば、メッセージの到着を待つ)、およびWait(例えば、特定の時間間隔の間待つ)がある。
図2を再び参照すると、次に、コントラクトは210で実装される。本発明によれば、サービス(例えば、図1のサービス108)は、コントラクトの実装を備える。サービスは、サービスのコントラクトの開始メッセージを受けとると、自動的にインスタンス化される。サービスがそのコントラクトを実装するために使用するコネクタは、自動的に初期化され、メッセージの送受信に暗黙のうちに使用することができ、したがって、「Primary」と明示的に呼ぶことができる。説明されている態様によれば、サービスは、パラメータを持たず、したがって結果を返さない「Run」という名前のインスタンスメソッドを持つことができ、このサービスをアクティブ化すると、Runを呼び出す。
再び一般的にコントラクトについて言及すると、コントラクトはプロトコルおよびそのメッセージを指定するためにOO言語(例えば、VB)で使用することができる。この説明では、以下に示すようなコントラクトインポートステートメント、メッセージ宣言ステートメント、および単一パターン定義ステートメントの3つの部分を重点的に取り上げる。
図4を再び参照すると、上記の例では、コントラクトを宣言する方法を示している。特に、404で、メッセージを宣言する動作が例示されている。当業者であれば、これらは、本質的に、以下の制約条件を持つ、Sub宣言として類似の一般的規則を共有することを理解するであろう。
次に406のパターン宣言を参照すると、パターン宣言の最も基本的な構成要素は、メッセージ参照である。上述の例では、パターン内で参照するときのみメッセージの名前に言及するだけでよいことは理解されるであろう。これは、その方向がよく知られているからである。さらに、いったん宣言されてしまうと、オーバーロードは許されず、方向およびパラメータの型を超えてメッセージに追加制約条件を課すことはできない。例えば、上記の例の文字列引数は、それが望ましい制約であれば、非ヌルでなければならないと指定する方法はないことに留意されたい。
さらに、本発明のいくつかの態様は、図4に例示されているように412で、コントラクト拡張を採用している。図5は、コントラクトの拡張を容易に行えるようにする方法を例示している。この方法によりコントラクトを拡張することで、旧バージョンと非対称的に互換性のある新しいバージョンを作成することができる。特に、コントラクトを拡張する場合に、502で、新しいメッセージを追加できる。その上、504で、新しい状態を既存のパターンに追加することができる。さらに、以下のようにいくつかの制約条件に応じて、506で新しいトリガを既存の状態に追加することができる。
コントラクトを使用することにより、それらを参照するものを宣言することができる。例示されている態様によれば、他のコードとの通信のためにVBオーケストレーションベースのコードで使用するオブジェクトは、「Connector」と呼ばれる。
本発明のオーケストレーションに関する新規性のある一態様では、スレッド、プロセス、またはスケーラブルなマルチスレッドアプリケーションに関する典型的な課題である他の態様に関する問題を軽減することができる。適切な取り扱いと予見とにより、スレッドおよびプロセスの分離は、アプリケーションの開発問題ではなく、アプリケーションの分散および管理問題となりうる。
そこで図6を参照すると、オーケストレーションコンポーネントの一般的なブロック図が示されている。図に示されているように、オーケストレーションコンポーネントは、実装またはスケジュールコンポーネント602およびコンパイラコンポーネント604を含むように例示することができる。本発明によれば、スケジュールコンポーネント602は、ソースコードのマニフェストを持たないが、それでも、以下のセクションを理解するうえで欠かせない実行時概念である。簡単にいうと、スケジュールコンポーネント602は、メッセージ指向コードが複数のメッセージを並列方式で待機できるようにするために使用される実行時オブジェクトである。
さらに、本発明によれば、サービスは、クラスSystem.Orchestration.RuntimeServiceから(例えば、他のサービスから)直接的にまたは間接的に派生することができるオーケストレーションクラスを参照する。そのうえ、サービスはランタイムにより自動インスタンス化される。
前の説明に鑑みて、次に、クライアントサイドまたはサーバサイドのいずれかにプロトコルを実装するコード本体として定義することができるスケジュールの概念に注目することにする。スケジュールの見方については、1)スケジュールを、メッセージを送信し、メッセージをポーリングする手順として見ること、または2)手順のとは根本的に異なる、実行モデルを詳細に見ることの2通りがある。
プロトコルコード内のほとんどの基本的なオペレーションは、クライアントサイドであろうとサーバサイドであろうと、接続の一方の側でメッセージを送信し、他方の側でそれを受信することである。
「select Receive」は単一状態遷移をトリガする代替および順序付けなしのメッセージグループをサポートするのに十分であったが、コントラクト内での分割をサポートする場合には不便である。この実施例では、コントラクトパターンは以下のようであることを仮定する。
再び通常スケジュールとオーケストレーションクラス内に現れるスケジュールとの区別に戻ると、このクラスが存在する場合以下のようになる。
スケジュール内の他の基本オペレーションは設定された期間の間待機することである。その時間の大部分を遅延に費やす長時間実行サービスのクラス全体がある(一般に「ぐずぐず先へ延ばす人(procrastinator)」パターンと呼ばれる)。これらは、通常、コマンド(例えば、シャットダウン、モニタ追加など)の到着を監視し、それと同時に、ハートビート信号またはハートビートポーリング要求を他のサービスに送信することができる監視サービスであることが多い。そこでこれらの概念を参照して、他の理由もなく、共通の用語を定めることにする。
したがって、このモデルでは遅延の必要性を考慮することが重要である。これは、「Wait」ステートメントで実行される。
Splitステートメントによりコードの本体の定義を可能にできるが、n行分のコードを並列に実行するために使用する可能性はない。そのような動的挙動のケースは強く、以下の2つの方法でサポートされる。
2.Split−Select−Receiveステートメント
前者は、他のすべての反復と並列にループの各反復を実行することを除き、For−Eachステートメントと同じ基本的な意味を持つ。つまり、繰り返されるコレクション内にあるアイテムの数だけ並列実行行があるということである。この数が決定された後、さらに行を並列ステートメントに追加することはできない。Split−For−Eachは、Splitと同じ「結合(join)」規則を持つ、つまり、すべての反復が終了すると、Split−For−Eachステートメントも終了する。
「Exit」の新しいバージョンのいくつかは、すでに上で説明されているが、わかりやすくするために、以下にその内容と動作を繰り返し示す。
メッセージフィルタは、前の方で「Receive」ステートメントについて説明したときには取り上げられていなかった。句を例外ハンドラに入れてそのハンドラの一致がただ単なる例外の型に基づくのではないようにすることと同様に、句をReceiveステートメントに追加し、コンテンツまたは大域的状態などの特別ないくつかの要因に基づいてメッセージを受け入れるか、または拒絶することができる。
上述のように、サービスが最初に起動されると、明示的に指定することなくメッセージの送受信に使用することができるコネクタを割り当てられる。このコネクタは、サービスの「一次」コネクタと呼ばれる。一次コネクタは、第1のメッセージがサービスに送信された際のクライアントコネクタにバインドされる。これは、常に、そのコントラクトに関する実装パースペクティブを持つことができる。
1.「Implements」キーワードを変数宣言の中で型修正子(typemodifier)として使用することができる。これは、宣言された変数に実装パースペクティブを与える。
2.実際のコネクタオブジェクトは、サービス参照なしで所望のコントラクトを呼び出すことによって作成できる。これは、たぶん型名のかなり奇妙な使い方であるが、二次コネクタを作成する唯一の方法である。
利用可能なサービスがないことを検出する方法は2つある。第1に、TCPアドレスが有効でないことがある。つまり、ポートが開かれておらず、サービスが実際にはそこにない。この問題は、第1のメッセージをサービスに送信しようとする際に検出され、即座に例外を発生させることができる。
一方が一方のスケジュールから他方に非同期メッセージを送信する場合、応答は届く保証はない。このようなことが生じる可能性のある理由としては、限定はしないが、低水準の通信障害、またはクライアントとサーバとの間での予想される内容についての不一致を含む様々な理由がある。コントラクトは、2つのメッセージの間の最大遅延を指定できないため、コントラクトが2週間の間必要とする要求に応答しないサービスは、技術的に、そのコントラクトを分けていない。最初にメッセージを送信することなくスケジュールが終了した場合のみ、コントラクトの違反となる。
非同期プログラミングにSendおよびReceiveステートメントを使用することが正しい解決手段とならない状況がある。状況によっては、スケジュールの単一スレッドのブロッキングの性質がエレガントな解決手段を邪魔することになるか、またはおそらく、本質的に、単にスケジュール駆動でない何らかのUIコードを用意する必要がある。
Win32ベースのグラフィカルユーザインターフェースには、表示する新しいデータをコントロールに与えるなど、特定の操作を行うために使用されるスレッドに関して特別な要求条件がある。すべてのコントロールがこの要求条件を持つわけではないが、一部のコントロールはそうであり、それに適応しなければならない。スケジュールと個別のコネクタは両方とも、UIスレッドにアタッチし、スケジュールで受信した、またはコネクタで受信したすべてのメッセージは、特定のUIスレッドのコンテキストで受信される。
次に、図7を参照すると、開示されているアーキテクチャを実行する動作が可能なコンピュータのブロック図が示されている。本発明の様々な態様の他の状況を示すために、図7および以下の説明は、本発明の様々な態様を実装できる好適なコンピューティング環境700の簡潔な一般的説明を行うことを意図している。本発明は、1つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的な状況において上で説明されているが、当業者であれば、本発明は、他のプログラムモジュールと組み合わせて、および/またはハードウェアとソフトウェアとの組合せとしても実装できることを理解するであろう。
付録Aでは、本発明の様々な態様について説明しており、本出願の明細書の一部とみなすべきである。
スタックフリー適合
Cedric Fournet、TonyHoare、Sriram K.Rajamani、JakobRehof
Microsoft Research
{fournet,thoare,sriram,rehof}@microsoft.com
概要。代替可能性特性を満たす、つまり、IがSに準拠し、Pが、P|Sがスタックフリーとなるような環境であるならば、P|Iはスタックフリーであるということが成り立つ、CCSプロセスの新規性のある詳細化関係(refinementrelation)(スタックフリー適合)を提示する。スタックフリーダムは、デッドロックのCSP概念に関係しているが、これは、非同期システムの孤立メッセージを考慮することにより区別しやすい。適合は、CCSプロセス上の前合同関係であり、それによって、モジュール方式の精密化をサポートすることを証明する。適合を関係する先行順(preorders)、CSPにおける安定失敗詳細化(stablefailures refinement)、およびCCSにおける拒絶先行順(refusalpreorder)から区別する。新しいソフトウェアモデル検査器ZINGで適合検査を実行し、それを使って分散プログラムにおけるエラーを見つけた方法について報告する。
われわれは、メッセージ受け渡しプログラムがスタックフリーであることを検査することに関心を持っている[11]。スタックフリーダムは、通信システムが、決して送信されないメッセージまたは決して受信されない送信メッセージを待ってデッドロックに陥ることがあり得ないという特性を形式化するものである。この論文では、適合の理論を一般化し、モデル検査分散プログラムのアプリケーションに関して報告することにより[11]を拡張する。このアプリケーション例では、プログラマが、プログラムの外部から見えるメッセージ受け渡しの挙動を指定するインターフェースであるコントラクトを書く。コントラクトは、CCSプロセスと同じくらい豊かであると考えられる。スタックフリーダムは、モデル検査器を使用して実装がそのコントラクトに適合していることを検査することにより確認される。
1 例えば、[11]の適合定義のいくつかの場合は、P#QまたはP+Qの形式のプロセスにのみ適用される。この性質の他の類似の統語的依存関係も[11]に存在する。
この論文の残りは、以下のように編成される。セクション2で、スタックフリー適合に最も密接に関係するCSPおよびCCSの伝統における詳細化関係について説明する。セクション3で、われわれの適合の理論を提示する。論文を制限の範囲内に留めるために、われわれの適合理論のプレゼンテーションにおけるすべての証明を省略した。完全に詳細な証明は、われわれの技術レポート[?]にある。セクション4では、ZING適合検査器を適用することにより分散プログラム内のエラーを見つけることについて説明し、セクション5で締めくくる。
われわれの適合の概念は、CSP[3,5,12]で安定失敗詳細化に関してモデル化され、詳細化検査器FDR[12]の成功が刺激となっている。われわれのプロセスモデルでは、CCSの動作意味論をCSP概念に類似してはいるが異なる拒絶の概念と組み合わせる。適合の定義は、シミュレーションに依存し、目に見えるアクションおよび安定性が観察可能なラベル付けされた推移システムに直接適用される。セクション3.3で説明されているように、スタックフリーダムに関する代替可能性の条件は、安定失敗詳細化がCCSに直接組み込まれる場合には、満たされない。理由は、スタックフリーダムはデッドロックのCSP概念と異なり、またそれと比べて特徴的な概念であるからである。この違いに対応するため、われわれの適合関係は、即時拒絶(readyrefusals)の考えに基づいており、プロセスは特定のアクションを(同時に)他を拒絶しながらすぐに受け付ける必要がある。
このセクションでは、CCS[7,8]に関する必要な背景を述べ、スタックフリーダムおよび適合の概念を定義し、適合が前合同(定理1)であり、代替可能性特性を満たす(定理2)ことを証明する。
名前の可算集合N={a,b,c,...}を仮定する。集合
G::=α.P
ここで、Aはプロセス名を範囲にとり、式
2つのプロセスPおよびQが
R1○R2={(P,Q)|∃R.(P,R)∈R1∧(R,Q)∈R2}
により定義する。
1.関係∪i∈IRiは適合関係である。
C[Q]と書いて、C内の穴をQで置き換えて生じるプロセス式を表す。
適合の定義の中の条件[C2]は、CSP[5,12]における安定失敗詳細化の理論から手直ししたもので、トレースと拒絶の概念に基づいている。安定失敗モデルでは、プロセスPは、その失敗の集合により表される。Pの失敗は、ペア
プロセスがラベル集合
われわれの適合の概念は、Iain Phillipsの拒絶検証の理論[10]で定義されているような拒絶先行順に類似している。拒絶先行順では、拒絶集合を観察結果にすることにより拒絶(またはデッドロック)の後に生起することを観察することができる。[2]に従い、X⊆Lに対し、推移規則
Q=(a+b.a)#(c+b.c)
−−−−−−−−−−
3 最大拒絶集合に関して失敗を表し、シーケンスに対し<...>を使用する。
定義から(または[?]の詳細を参照)、P≦Qであるが、
セクション3に提示されている理論に基づき、共通プログラミング言語で書かれている非同期プログラムを分析するために使用できる適合検査器を実装した。このような言語(例えば、C、Java(登録商標)、C#)は、CCSで直接モデル化するのが面倒ないくつかの機能(プロシージャ呼び出し、ポインタ、共有メモリ、例外、およびオブジェクト)を持つ。われわれの適合検査器は、複雑な符号化を必要とせず直接そのような機能をサポートする言語ZINGに対応している。ZINGの動作に関する意味は、ラベル付け推移システムとして与えられる。SendおよびReceiveステートメント以外のすべてのステートメントは、γアクションのラベル付きの遷移としてモデル化される。SendおよびReceiveステートメントからの遷移は、対応するチャネル名でラベル付けされる(送信または受信されるデータ値を無視する)。適合の定義8では、CCSの構文を参照しておらず、ラベル付けされた遷移システムの意味論に純粋に基づいていることに注意されたい。したがって、定義8を直接使用して2つのZINGプロセスの間の適合を定義することができる。
4 メッセージ型自体は、コントラクト指定の一部としても宣言されるが、ここでは簡単のため省略した。
5 これは、例えば、サービスが自明なコントラクトを持ち、それでも、使用するサービスでスタックする可能性があるため必要である。このような場合も、適合検査器によって捕捉され、フラグが立てられる。
−−−−−−−−−−
6 コードは、完全には検証されていない。しかし、エラーのいくつかは、通常、検証によっても見つからないことに注意されたい。
−−−−−−−−−−
われわれは、CCSの新規性のある詳細化関係を提示し、それが通信プロセスのスタックフリーダムの構成検査を行うのに好適であることを示した。適合は、目に見えるアクションおよび安定性が観察可能なラベル付けされた推移システムに直接適用可能であるという利点を有する。スタックネスは、非同期プロセスを検査するのに役立つ、孤立メッセージを考慮することによりCSPデッドロックよりも区別しやすい。われわれは、適合が代替可能性を満たすCCSプロセスに対する前合同であることを証明し、関連するプロセス先行順から区別した。表現力の高いモデル化言語であるZING用の適合検査器を構築し、分散システムに適用した。
102 クライアント
104 コントラクトコンポーネント
106 オーケストレーションコンポーネント
1081 サービス1
1082 サービス2
1083 サービス3
108N サービスN
104 コントラクトコンポーネント
302 メッセージコンポーネント
304 プロトコルコンポーネント
306 コントラクト拡張コンポーネント
106 オーケストレーションコンポーネント
602 スケジュールコンポーネント
604 コンパイラコンポーネント
802 クライアント(群)
808 クライアントデータストア(群)
806 通信フレームワーク
804 サーバ(群)
810 サーバデータストア(群)
Claims (20)
- オブジェクト指向言語を使用して構成されたサービスの同時実行を実施するシステムであって、
メモリと、
該メモリに対して操作可能に結合されたプロセッサであって、前記プロセッサを、
前記オブジェクト指向言語を使用して構成された複数のサービスと、
前記複数のサービスの間で非同期のメッセージ受け渡しのためのインターフェース宣言として定義されたコントラクトコンポーネントであって、前記複数のサービスの各々においてソースコード内で送信動作および受信動作として表現され、
通信プロトコル用の形式的プロトコル定義を確立するために使用されるパターンについての文字として使用することができるメッセージのセットを宣言するメッセージコンポーネント、および
通信プロトコル用の形式的プロトコル定義にしたがって許可可能なメッセージ交換のシーケンスを記述するプロトコルコンポーネント
を含む、コントラクトコンポーネントと、
前記コントラクトコンポーネントを解釈し、前記複数のサービスにおける複数のメッセージおよび複数のメッセージターゲットの処理を進めるために構成されたオーケストレーションコンポーネントであって、
前記サービスのソースコードを断片に分解して、前記複数のサービスのスレッドコンテキストをブロックせずに並行した待機を発生させるコンパイルアルゴリズムを実施するために構成されたコンパイラコンポーネントであって、スレッドをブロックすることができるソースコードを分解して、前記ソースコードにおいて並行に待機する複数の位置、または異なる計算によって継続するスレッドコンテキスト、のうちの1つを可能にする、コンパイラコンポーネントを含み、
前記オーケストレーションコンポーネントは前記コンパイラコンポーネントに、前記コントラクトコンポーネントに従って少なくとも前記複数のサービスのサブセット用のスケジュールを生成することを指示し、前記スケジュールは、前記サブセットにおけるサービスを前記サブセットにおける他のサービスと並行に待機させることにより前記サービスのサブセットの並列処理を進める、オーケストレーションコンポーネント
として機能させるコンピュータ実行可能命令を実行するプロセッサと
を含むことを特徴とするシステム。 - 前記プロトコルコンポーネントは、
非同期メッセージコンポーネントの有効なシーケンスを指定する順序を特定するパターンコンポーネントを含むことを特徴とする請求項1に記載のシステム。 - 前記コントラクトコンポーネントは、少なくとも1つのメソッド呼び出しコンポーネントと、前記少なくとも1つの呼び出しコンポーネントの有効なシーケンスを指定する順序を特定するパターンコンポーネントとを含むことを特徴とする請求項1に記載のシステム。
- 前記有効なシーケンスは、少なくとも1つのメソッド呼び出しコンポーネントにおけるメソッド呼び出しの少なくとも1つの実行におけるイールドの位置を特定し、イールドされたメソッド呼び出しを通過して進めるために、メソッド呼び出しの少なくとも1つのうちの他のものを実行させることを特徴とする請求項3に記載のシステム。
- 前記コントラクトコンポーネントを機能拡張して、少なくとも1つの追加メッセージを前記コントラクトコンポーネントに追加するコントラクト拡張コンポーネントを更に備えたことを特徴とする請求項1に記載のシステム。
- 前記コントラクト拡張コンポーネントは、前記コントラクトコンポーネントを機能拡張して、少なくとも1つの追加の状態を前記コントラクトコンポーネントに追加することを特徴とする請求項5に記載のシステム。
- 前記コントラクト拡張コンポーネントは、前記コントラクトコンポーネントを機能拡張して、少なくとも1つの追加のトリガを前記コントラクトコンポーネントに追加することを特徴とする請求項5に記載のシステム。
- 前記サービスのサブセットからのサービスは、他のサービスの実行のブロックを防ぐように、前記他のサービスとは独立に、並行して待機することを特徴とする請求項1に記載のシステム。
- プロセッサとシステムメモリとを含むコンピュータシステムにより実行される、オブジェクト指向のコードで表現された複数のサービスの同時実行を実施する方法であって、
前記複数のサービスの外部のコントラクトを宣言するステップであって、前記コントラクトは前記コンピュータシステムに対し、前記複数のサービス内の複数の対象サービスの間で送信される情報を同期して、前記複数の対象サービスの同時実行を実施させ、前記コントラクトは、
ターゲットサービスの間で情報を同期させる複数のメッセージ、および
前記ターゲットサービスのサブセットの間でのメッセージの順序付け
を宣言する、ステップと、
前記複数の対象サービスのサブセットの中で前記外部のコントラクトに従って前記メッセージの順序付けを実行するステップであって、前記メッセージの順序付けの実行は、前記タ複数の対象サービスのサブセットの間で非同期情報を組み合わせて前記複数の対象サービスの同時実行を進め、
前記複数の対象サービスのサブセットにおける第1のサービスが、前記複数の対象サービスのサブセットにおける第2のサービスにメッセージを送信し、前記メッセージは、前記複数のサービスを並列に編成して前記外部のコントラクトについてデータの共有および同期を達成するための実施スケジュールを特定するペイロードを含み、前記スケジュールは複数の非同期メッセージを並列に待機させ、それにより、前記第1のサービスおよび第2のサービスが他のサービスをブロックせずに待機するべきときに、前記ペイロードが指示するサービスのスレッドコンテキストのブロックを防ぎ、
前記第2のサービスが前記第1のサービスからのメッセージを受信し、かつ
前記第2のサービスが前記ペイロードを利用して前記コントラクトについて前記スケジュールを実施するために前記メッセージを逆コンパイルすること
を含む、ステップと
を含むことを特徴とする方法。 - コントラクトを宣言するステップは、少なくとも1つの非同期メッセージを宣言するステップを含むことを特徴とする請求項9に記載の方法。
- コントラクトを宣言するステップは、少なくとも1つの非同期メッセージの実行のためのパターンを指定するステップを含むことを特徴とする請求項10に記載の方法。
- 前記コントラクトを実行するステップは、前記少なくとも1つの非同期メッセージの実行のためのトリガを指定するステップを含むことを特徴とする請求項10に記載の方法。
- 前記コントラクトを実行するステップは、
スケジュールの生成を進めるために前記コントラクトを分析するステップと、
前記分析されたコントラクトを分割して前記スケジュールを生成するステップと、
前記スケジュールをランタイムアルゴリズムに伝達するステップと
を含むことを特徴とする請求項10に記載の方法。 - 前記コントラクトを実行するステップは、メソッド呼び出しを宣言するステップと、前記メソッド呼び出しの起動のためのパターンを指定するステップとを含むことを特徴とする請求項9に記載の方法。
- 前記コントラクトを実行するステップは、既存のコントラクトを拡張するコントラクトの拡張を特定するステップを含むことを特徴とする請求項9に記載の方法。
- 前記コントラクトの拡張を特定するステップは、少なくとも1つの追加のメッセージを前記コントラクトに追加するステップを含むことを特徴とする請求項15に記載の方法。
- 前記コントラクトの拡張を特定するステップは、少なくとも1つの追加の状態を前記コントラクトに追加するステップを含むことを特徴とする請求項15に記載の方法。
- 前記コントラクトの実行を特定するステップは、少なくとも1つの追加のトリガを前記コントラクトに追加するステップを含むことを特徴とする請求項15に記載の方法。
- プロセッサとシステムメモリとを含むコンピュータシステムにより実行される、複数のサービスの間での通信を管理する方法であって、
前記複数のサービスの外部のコントラクトを宣言するステップであって、前記外部のコントラクトを宣言するステップは、複数のメッセージを定義し、前記外部のコントラクトのプロトコルを定義して、前記複数のサービスの同時実行を実施することを含み、前記複数のメッセージはデータを有する複数の非同期のメッセージを含む、ステップと、
複数のサービスの間での通信のための前記外部のコントラクトを実施するステップであって、前記サービスの各々はスレッドコンテキストを含む、ステップと、
前記外部のコントラクトをコンパイルし、前記複数のサービスの同時実行を実施するために非同期のメッセージングおよび前記コントラクトのプロトコルに応じてスケジュールを生成するステップと、
前記生成されたスケジュールを使用して、前記複数のサービスを並列に編成し、前記データの共有および同期を達成するステップであって、前記スケジュールは複数の非同期メッセージを並列に待機させ、それにより複数のサービスのスレッドコンテキストのブロックを防ぎ、
メッセージを前記複数のサービスにおけるサービスに送信するステップであって、前記メッセージは前記スケジュールを特定するペイロードを含み、前記ペイロードは前記サービスが他のサービスをブロックせずに待機するときを指示する、ステップと、
前記ペイロードを使用し、前記スケジュールを実施して他のサービスをブロックせずに待機するために、前記サービスが前記メッセージを逆コンパイルするステップと
を含む、ステップと
を含むことを特徴とする方法。 - 前記スケジュールをランタイムアルゴリズムに伝達するステップをさらに含むことを特徴とする請求項19に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/887,739 | 2004-07-09 | ||
US10/887,739 US7676791B2 (en) | 2004-07-09 | 2004-07-09 | Implementation of concurrent programs in object-oriented languages |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012041903A Division JP5590572B2 (ja) | 2004-07-09 | 2012-02-28 | サービスの同時実行を実施するシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014142959A true JP2014142959A (ja) | 2014-08-07 |
JP5815067B2 JP5815067B2 (ja) | 2015-11-17 |
Family
ID=35207422
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005201542A Pending JP2006024223A (ja) | 2004-07-09 | 2005-07-11 | オブジェクト指向言語による同時実行プログラムの実装 |
JP2011224078A Pending JP2012009081A (ja) | 2004-07-09 | 2011-10-11 | オブジェクト指向言語による同時実行プログラムの実装 |
JP2012041903A Expired - Fee Related JP5590572B2 (ja) | 2004-07-09 | 2012-02-28 | サービスの同時実行を実施するシステム |
JP2014075907A Expired - Fee Related JP5815067B2 (ja) | 2004-07-09 | 2014-04-02 | サービスの同時実行を実施するシステム及び方法 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005201542A Pending JP2006024223A (ja) | 2004-07-09 | 2005-07-11 | オブジェクト指向言語による同時実行プログラムの実装 |
JP2011224078A Pending JP2012009081A (ja) | 2004-07-09 | 2011-10-11 | オブジェクト指向言語による同時実行プログラムの実装 |
JP2012041903A Expired - Fee Related JP5590572B2 (ja) | 2004-07-09 | 2012-02-28 | サービスの同時実行を実施するシステム |
Country Status (10)
Country | Link |
---|---|
US (1) | US7676791B2 (ja) |
EP (1) | EP1615129A3 (ja) |
JP (4) | JP2006024223A (ja) |
KR (1) | KR101076910B1 (ja) |
CN (1) | CN1719410B (ja) |
AU (2) | AU2005202252B2 (ja) |
BR (1) | BRPI0502261A (ja) |
CA (1) | CA2509483A1 (ja) |
MX (1) | MXPA05006176A (ja) |
RU (1) | RU2386999C2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457671B2 (en) * | 2004-09-30 | 2008-11-25 | Rockwell Automation Technologies, Inc. | Systems and methods that facilitate management of add-on instruction generation, selection, and/or monitoring during execution |
US20060204466A1 (en) * | 2005-03-08 | 2006-09-14 | Ecolab Inc. | Hydroalcoholic antimicrobial composition with skin health benefits |
US20060294290A1 (en) * | 2005-06-15 | 2006-12-28 | Xerox Corporation | Concurrent in-application programming of programmable devices |
US8024405B2 (en) * | 2006-03-30 | 2011-09-20 | Microsoft Corporation | Declarative model for concurrency-control across lightweight threads |
US8380483B2 (en) * | 2006-10-05 | 2013-02-19 | Nec Laboratories America, Inc. | Inter-procedural dataflow analysis of parameterized concurrent software |
WO2008040080A1 (en) * | 2006-10-05 | 2008-04-10 | Waratek Pty Limited | Silent memory reclamation |
CN101438234B (zh) * | 2007-01-09 | 2013-08-21 | 美国日本电气实验室公司 | 参数化并发软件的过程间数据流分析 |
US8001336B2 (en) * | 2007-03-02 | 2011-08-16 | International Business Machines Corporation | Deterministic memory management in a computing environment |
US8949457B1 (en) * | 2007-03-08 | 2015-02-03 | Aurea Software, Inc. | Local transparent extensibility and routing slip extensibility for business process execution language |
EP2071452A1 (en) * | 2007-12-07 | 2009-06-17 | Alcatel Lucent | Device and method for automatically building applications from specifications and from off-the-shelf components selected by semantic analysis |
US20090157848A1 (en) * | 2007-12-18 | 2009-06-18 | Western Digital Technologies, Inc. | Application server processing tcp/ip requests from a client by invoking an asynchronous function |
JP5272833B2 (ja) * | 2008-03-28 | 2013-08-28 | 富士通株式会社 | 無線通信装置、無線通信方法及び無線通信プログラム |
CN101276371B (zh) * | 2008-04-18 | 2012-12-05 | 浙江大学 | 基于操作流的异步交互式数据挖掘系统及方法 |
US8032633B2 (en) * | 2008-06-10 | 2011-10-04 | International Business Machines Corporation | Computer-implemented method for implementing a requester-side autonomic governor using feedback loop information to dynamically adjust a resource threshold of a resource pool scheme |
US8250212B2 (en) * | 2008-06-10 | 2012-08-21 | International Business Machines Corporation | Requester-side autonomic governor |
US8224378B2 (en) * | 2008-10-15 | 2012-07-17 | Texas Instruments Incorporated | Protecting uplink transmissions in coexisting wireless networks |
US8477703B2 (en) * | 2009-06-24 | 2013-07-02 | Texas Instruments Incorporated | Channel utilization improvement in coexisting wireless networks |
US8429605B2 (en) * | 2009-12-30 | 2013-04-23 | The United States Of America As Represented By The Secretary Of The Navy | Finite state machine architecture for software development |
US8789010B2 (en) * | 2010-05-10 | 2014-07-22 | Tibco Software Inc. | Managing static data structures of legacy software in dynamic class loader environments |
US9600255B2 (en) | 2010-10-08 | 2017-03-21 | Microsoft Technology Licensing, Llc | Dynamic data and compute resource elasticity |
US9658890B2 (en) | 2010-10-08 | 2017-05-23 | Microsoft Technology Licensing, Llc | Runtime agnostic representation of user code for execution with selected execution runtime |
US9600250B2 (en) | 2010-10-08 | 2017-03-21 | Microsoft Technology Licensing, Llc | Declarative programming model with a native programming language |
CN102456026A (zh) * | 2010-10-21 | 2012-05-16 | 中国移动通信集团浙江有限公司 | 一种数据采集装置和方法 |
US9760348B2 (en) | 2010-11-29 | 2017-09-12 | Microsoft Technology Licensing, Llc | Verification of a dataflow representation of a program through static type-checking |
US9641403B2 (en) * | 2011-04-26 | 2017-05-02 | Openet Telecom Ltd. | Systems, devices and methods of decomposing service requests into domain-specific service requests |
WO2012164439A1 (en) * | 2011-06-02 | 2012-12-06 | International Business Machines Corporation | Handling cross-thread method calls |
US9176769B2 (en) | 2012-06-29 | 2015-11-03 | Microsoft Technology Licensing, Llc | Partitioned array objects in a distributed runtime |
US8924944B2 (en) | 2012-06-29 | 2014-12-30 | Microsoft Corporation | Implementation of distributed methods that support generic functions |
US8893155B2 (en) | 2013-03-14 | 2014-11-18 | Microsoft Corporation | Providing distributed array containers for programming objects |
RU2656580C9 (ru) * | 2014-01-30 | 2020-01-22 | Общество с ограниченной ответственностью "Аби Девелопмент" | Определение порядка инициализации статических объектов |
US9417876B2 (en) * | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US9678787B2 (en) | 2014-05-23 | 2017-06-13 | Microsoft Technology Licensing, Llc | Framework for authoring data loaders and data savers |
US9773070B2 (en) * | 2014-06-30 | 2017-09-26 | Microsoft Technology Licensing, Llc | Compound transformation chain application across multiple devices |
KR101805462B1 (ko) | 2017-06-29 | 2018-01-10 | 주식회사 티맥스소프트 | 스레드에서 처리되는 서비스 처리량을 증가시키기 위한 방법 및 컴퓨팅 장치 |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US204641A (en) * | 1878-06-04 | Improvement in qar-axue boxes | ||
US64528A (en) * | 1867-05-07 | Self and-george jaques | ||
US64529A (en) * | 1867-05-07 | hellen | ||
US204570A (en) * | 1878-06-04 | Improvement in stove-pipe shelves | ||
US5794005A (en) * | 1992-01-21 | 1998-08-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects |
EP0591593A1 (en) | 1992-10-09 | 1994-04-13 | International Business Machines Corporation | Device and method of managing asynchronous events in a finite state machine |
US5991538A (en) * | 1992-12-18 | 1999-11-23 | Inprise Corporation | System for generating and using programs in an object-oriented environment with a message dispatch architecture |
CA2115464C (en) | 1994-02-11 | 1998-12-15 | William G. O'farrell | Concurrent processing in object oriented parallel and near parallel systems |
JPH08286962A (ja) * | 1994-12-16 | 1996-11-01 | Internatl Business Mach Corp <Ibm> | 処理システム及びオブジェクト活動化をスケジュールする方法 |
US6182108B1 (en) | 1995-01-31 | 2001-01-30 | Microsoft Corporation | Method and system for multi-threaded processing |
US5708838A (en) * | 1995-09-08 | 1998-01-13 | Iq Systems, Inc. | Distributed processing systems having a host processor and at least one object oriented processor |
US6587889B1 (en) | 1995-10-17 | 2003-07-01 | International Business Machines Corporation | Junction manager program object interconnection and method |
US5768505A (en) * | 1995-12-19 | 1998-06-16 | International Business Machines Corporation | Object oriented mail server framework mechanism |
WO1998021651A1 (en) * | 1996-11-14 | 1998-05-22 | Alcatel Usa Sourcing, L.P. | Generic software state machine and method of constructing dynamic objects for an application program |
US6167423A (en) | 1997-04-03 | 2000-12-26 | Microsoft Corporation | Concurrency control of state machines in a computer system using cliques |
JPH11249918A (ja) * | 1998-03-04 | 1999-09-17 | Sony Corp | データ処理方法、記録媒体及びデータ処理装置 |
US6922834B1 (en) * | 1999-03-04 | 2005-07-26 | Sony Corporation | Data processing apparatus, data processing method, and program providing medium |
JP2000259417A (ja) * | 1999-03-12 | 2000-09-22 | Sony Corp | データ処理装置、データ処理方法及びプログラム提供媒体 |
US6804818B1 (en) * | 1999-04-29 | 2004-10-12 | International Business Machines Corporation | Integration mechanism for object-oriented software and message-oriented software |
JP2001167060A (ja) * | 1999-12-07 | 2001-06-22 | Hitachi Ltd | タスク並列化方法 |
AU2001249424A1 (en) * | 2000-03-29 | 2001-10-08 | Nextset Software Inc. | System and method of providing a messaging engine for an enterprise javabeans enabled server to achieve container managed asynchronous functionality |
JP3803707B2 (ja) * | 2000-12-28 | 2006-08-02 | フューチャーシステムコンサルティング株式会社 | フレームワークシステム |
US6996833B1 (en) * | 2001-03-27 | 2006-02-07 | Microsoft Corporation | Protocol agnostic request response pattern |
US7095747B2 (en) * | 2001-03-28 | 2006-08-22 | Siemens Communications, Inc. | Method and apparatus for a messaging protocol within a distributed telecommunications architecture |
US7055143B2 (en) * | 2001-07-10 | 2006-05-30 | Microsoft Corporation | System and methods for providing a declarative syntax for specifying SOAP-based web services |
AUPR753401A0 (en) * | 2001-09-06 | 2001-09-27 | Canon Kabushiki Kaisha | A method of handling asynchronous events |
US7310803B2 (en) * | 2001-10-19 | 2007-12-18 | 419638 Canada Inc. | Method and system for executing multiple tasks in a task set |
WO2003086108A1 (en) * | 2002-04-10 | 2003-10-23 | Archer-Daniels-Midland Company | Hydrothermically processed compositions containing phytosterols |
US7203924B2 (en) | 2002-04-30 | 2007-04-10 | Microsoft Corporation | Behavioral analysis for message-passing application programs |
US7703077B2 (en) | 2002-04-30 | 2010-04-20 | Microsoft Corporation | Programming model to detect deadlocks in concurrent programs |
JP2003337767A (ja) * | 2002-05-17 | 2003-11-28 | Katsuhiko Kondo | 情報システムを構築するための基盤システム |
US7159211B2 (en) * | 2002-08-29 | 2007-01-02 | Indian Institute Of Information Technology | Method for executing a sequential program in parallel with automatic fault tolerance |
US20040064528A1 (en) | 2002-09-30 | 2004-04-01 | Microsoft Corporation | Safe interoperability among web services |
CN100552625C (zh) * | 2002-10-28 | 2009-10-21 | 开放创新网络有限责任公司 | 透明ejb支持和水平数据分割 |
US7191450B2 (en) * | 2003-02-06 | 2007-03-13 | International Business Machines Corporation | Data-driven application integration adapters |
US7895589B2 (en) * | 2003-02-26 | 2011-02-22 | International Business Machines Corporation | Dynamic data-driven application integration adapters |
US7240054B2 (en) * | 2004-02-27 | 2007-07-03 | International Business Machines Corporation | Techniques to preserve data constraints and referential integrity in asynchronous transactional replication of relational tables |
-
2004
- 2004-07-09 US US10/887,739 patent/US7676791B2/en not_active Expired - Fee Related
-
2005
- 2005-05-24 AU AU2005202252A patent/AU2005202252B2/en not_active Ceased
- 2005-05-31 BR BRPI0502261-4A patent/BRPI0502261A/pt not_active IP Right Cessation
- 2005-06-08 RU RU2005117775/09A patent/RU2386999C2/ru not_active IP Right Cessation
- 2005-06-08 CA CA002509483A patent/CA2509483A1/en not_active Abandoned
- 2005-06-09 CN CN2005100765926A patent/CN1719410B/zh not_active Expired - Fee Related
- 2005-06-09 MX MXPA05006176A patent/MXPA05006176A/es unknown
- 2005-07-04 KR KR1020050059689A patent/KR101076910B1/ko not_active IP Right Cessation
- 2005-07-11 JP JP2005201542A patent/JP2006024223A/ja active Pending
- 2005-07-11 EP EP05106321A patent/EP1615129A3/en not_active Ceased
-
2011
- 2011-01-28 AU AU2011200375A patent/AU2011200375B2/en not_active Ceased
- 2011-10-11 JP JP2011224078A patent/JP2012009081A/ja active Pending
-
2012
- 2012-02-28 JP JP2012041903A patent/JP5590572B2/ja not_active Expired - Fee Related
-
2014
- 2014-04-02 JP JP2014075907A patent/JP5815067B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
JPN6014028312; 河野健二: 'アプリケーション層プロトコルの実現を容易にするフレームワーク' 情報処理学会論文誌 第44巻, No.SIG2(PRO16), 20030215, pp.25-35, 社団法人情報処理学会 * |
JPN6014028313; 鵜林尚靖 外2名: 'オブジェクト間の協調動作を表現する並列計算モデルと言語' 電子情報通信学会論文誌 D-I 第J79-D-I巻,第10号, 199610, pp.625-634, 社団法人電子情報通信学会 * |
JPN6015026447; 三吉郁夫 外3名: 'メッセージ交換型並列計算機のための並列化コンパイラ' 情報処理学会研究報告 第94巻,第65号, 19940722, pp.33-40, 社団法人情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
BRPI0502261A (pt) | 2006-02-21 |
CN1719410A (zh) | 2006-01-11 |
EP1615129A3 (en) | 2008-02-13 |
AU2005202252A1 (en) | 2006-02-02 |
US20060020446A1 (en) | 2006-01-26 |
JP5815067B2 (ja) | 2015-11-17 |
RU2386999C2 (ru) | 2010-04-20 |
EP1615129A2 (en) | 2006-01-11 |
RU2005117775A (ru) | 2006-12-20 |
KR101076910B1 (ko) | 2011-10-25 |
AU2011200375B2 (en) | 2012-01-19 |
JP2012133806A (ja) | 2012-07-12 |
KR20060049813A (ko) | 2006-05-19 |
CA2509483A1 (en) | 2006-01-09 |
US7676791B2 (en) | 2010-03-09 |
AU2011200375A1 (en) | 2011-02-17 |
AU2005202252B2 (en) | 2010-11-11 |
MXPA05006176A (es) | 2006-01-12 |
JP2006024223A (ja) | 2006-01-26 |
CN1719410B (zh) | 2010-12-08 |
JP5590572B2 (ja) | 2014-09-17 |
JP2012009081A (ja) | 2012-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5815067B2 (ja) | サービスの同時実行を実施するシステム及び方法 | |
US8108834B2 (en) | Defining and executing processes using declarative programming language constructs | |
Meyer et al. | Automating data exchange in process choreographies | |
Posse et al. | An executable formal semantics for UML-RT | |
JP2011129150A (ja) | ビジネスプロセスの自動化 | |
Tolosana‐Calasanz et al. | Adaptive exception handling for scientific workflows | |
US7117487B2 (en) | Structural equivalence of expressions containing processes and queries | |
Philips et al. | NOW: Orchestrating services in a nomadic network using a dedicated workflow language | |
Zaplata et al. | Flexible execution of distributed business processes based on process instance migration | |
Moschoyiannis et al. | True concurrency in long-running transactions for digital ecosystems | |
Yu et al. | Dynamic software architecture oriented service composition and evolution | |
Balandin et al. | Anonymous agents coordination in smart spaces | |
Gohil et al. | IBM CICS Asynchronous API: Concurrent Processing Made Simple | |
Tremblay et al. | Towards specifying contracts and protocols for Web services | |
Lenhard | A pattern-based analysis of WS-BPEL and windows workflow | |
Balouki et al. | Using BPEL for Behavioural Concepts in ODP Enterprise Language | |
Ismail et al. | Towards a Runtime Evolutionary Model of User Interface Adaptation in a Ubiquitous Environment | |
Gomez et al. | A Conversation-oriented language for B2B integration based on Semantic Web Services | |
Čukić | A continuation‐based task programming model for C++: design of the Causeway library | |
Hafid et al. | Using BPEL for Behavioral Concepts in ODP Computational Language | |
Viroli et al. | Process-algebraic approaches for multi-agent systems: an overview | |
Alotaibi et al. | Context-aware and secure workflow systems. | |
Ramollari | Automated Runtime Testing of Web Services | |
Kumar | Efficient execution of fine-grained actors on multicore processors | |
Wirtz | Distributed Systems Group |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140501 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150422 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20150508 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150701 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150807 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150918 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5815067 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5815067 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |