JP2006024223A - オブジェクト指向言語による同時実行プログラムの実装 - Google Patents
オブジェクト指向言語による同時実行プログラムの実装 Download PDFInfo
- Publication number
- JP2006024223A JP2006024223A JP2005201542A JP2005201542A JP2006024223A JP 2006024223 A JP2006024223 A JP 2006024223A JP 2005201542 A JP2005201542 A JP 2005201542A JP 2005201542 A JP2005201542 A JP 2005201542A JP 2006024223 A JP2006024223 A JP 2006024223A
- Authority
- JP
- Japan
- Prior art keywords
- contract
- component
- message
- service
- statement
- 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.)
- Pending
Links
- 238000004806 packaging method and process Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 167
- 230000006854 communication Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 39
- 238000012545 processing Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 66
- 238000011161 development Methods 0.000 abstract description 4
- 230000001360 synchronised effect Effects 0.000 abstract description 4
- 230000007704 transition Effects 0.000 description 67
- 230000009471 action Effects 0.000 description 35
- 230000014509 gene expression Effects 0.000 description 28
- 230000003993 interaction Effects 0.000 description 22
- NWONKYPBYAMBJT-UHFFFAOYSA-L zinc sulfate Chemical compound [Zn+2].[O-]S([O-])(=O)=O NWONKYPBYAMBJT-UHFFFAOYSA-L 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006978 adaptation Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 7
- 238000013461 design Methods 0.000 description 7
- 238000013459 approach Methods 0.000 description 6
- 230000000875 corresponding effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000007958 sleep Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000003607 modifier Substances 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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
- 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
- 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を有するが、サーバサイドコネクタは型Implements CTを有する。
さらに、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」キーワードを変数宣言の中で型修正子(type modifier)として使用することができる。これは、宣言された変数に実装パースペクティブを与える。
2.実際のコネクタオブジェクトは、サービス参照なしで所望のコントラクトを呼び出すことによって作成できる。これは、たぶん型名のかなり奇妙な使い方であるが、二次コネクタを作成する唯一の方法である。
利用可能なサービスがないことを検出する方法は2つある。第1に、TCPアドレスが有効でないことがある。つまり、ポートが開かれておらず、サービスが実際にはそこにない。この問題は、第1のメッセージをサービスに送信しようとする際に検出され、即座に例外を発生させることができる。
一方が一方のスケジュールから他方に非同期メッセージを送信する場合、応答は届く保証はない。このようなことが生じる可能性のある理由としては、限定はしないが、低水準の通信障害、またはクライアントとサーバとの間での予想される内容についての不一致を含む様々な理由がある。コントラクトは、2つのメッセージの間の最大遅延を指定できないため、コントラクトが2週間の間必要とする要求に応答しないサービスは、技術的に、そのコントラクトを分けていない。最初にメッセージを送信することなくスケジュールが終了した場合のみ、コントラクトの違反となる。
非同期プログラミングにSendおよびReceiveステートメントを使用することが正しい解決手段とならない状況がある。状況によっては、スケジュールの単一スレッドのブロッキングの性質がエレガントな解決手段を邪魔することになるか、またはおそらく、本質的に、単にスケジュール駆動でない何らかのUIコードを用意する必要がある。
Win32ベースのグラフィカルユーザインターフェースには、表示する新しいデータをコントロールに与えるなど、特定の操作を行うために使用されるスレッドに関して特別な要求条件がある。すべてのコントロールがこの要求条件を持つわけではないが、一部のコントロールはそうであり、それに適応しなければならない。スケジュールと個別のコネクタは両方とも、UIスレッドにアタッチし、スケジュールで受信した、またはコネクタで受信したすべてのメッセージは、特定のUIスレッドのコンテキストで受信される。
次に、図7を参照すると、開示されているアーキテクチャを実行する動作が可能なコンピュータのブロック図が示されている。本発明の様々な態様の他の状況を示すために、図7および以下の説明は、本発明の様々な態様を実装できる好適なコンピューティング環境700の簡潔な一般的説明を行うことを意図している。本発明は、1つまたは複数のコンピュータ上で実行できるコンピュータ実行可能命令の一般的な状況において上で説明されているが、当業者であれば、本発明は、他のプログラムモジュールと組み合わせて、および/またはハードウェアとソフトウェアとの組合せとしても実装できることを理解するであろう。
付録Aでは、本発明の様々な態様について説明しており、本出願の明細書の一部とみなすべきである。
スタックフリー適合
Cedric Fournet、Tony Hoare、Sriram K.Rajamani、Jakob Rehof
Microsoft Research
{fournet,thoare,sriram,rehof}@microsoft.com
概要。代替可能性特性を満たす、つまり、IがSに準拠し、Pが、P|Sがスタックフリーとなるような環境であるならば、P|Iはスタックフリーであるということが成り立つ、CCSプロセスの新規性のある詳細化関係(refinement relation)(スタックフリー適合)を提示する。スタックフリーダムは、デッドロックのCSP概念に関係しているが、これは、非同期システムの孤立メッセージを考慮することにより区別しやすい。適合は、CCSプロセス上の前合同関係であり、それによって、モジュール方式の精密化をサポートすることを証明する。適合を関係する先行順(preorders)、CSPにおける安定失敗詳細化(stable failures refinement)、およびCCSにおける拒絶先行順(refusal preorder)から区別する。新しいソフトウェアモデル検査器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概念と異なり、またそれと比べて特徴的な概念であるからである。この違いに対応するため、われわれの適合関係は、即時拒絶(ready refusals)の考えに基づいており、プロセスは特定のアクションを(同時に)他を拒絶しながらすぐに受け付ける必要がある。
このセクションでは、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 (30)
- オブジェクト指向およびメッセージ指向言語を統合するシステムであって、
オブジェクト指向環境における少なくとも1つのサービスへの通信を円滑にするコントラクトコンポーネントと、
前記コントラクトコンポーネントを解釈するコンパイラコンポーネントとを備えることを特徴とするシステム。 - 前記コンパイラコンポーネントが前記コントラクトコンポーネントに従ってスケジュールを生成することを円滑にするオーケストレーションコンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
- 前記コントラクトコンポーネントは、少なくとも1つの非同期メッセージコンポーネントおよび1つのプロトコルコンポーネントを含むことを特徴とする請求項1に記載のシステム。
- 前記プロトコルコンポーネントは、
前記少なくとも1つの非同期メッセージの有効なシーケンスを指定する順序を識別するパターンコンポーネントを含むことを特徴とする請求項3に記載のシステム。 - 前記コントラクトコンポーネントは、少なくとも1つのメソッドコンポーネント、および前記少なくとも1つのメソッドコンポーネントの有効なシーケンスを指定する順序を識別するパターンコンポーネントを含むことを特徴とする請求項1に記載のシステム。
- 少なくとも1つの追加メッセージを前記コントラクトコンポーネントに追加するように前記コントラクトコンポーネントを拡張するコントラクト拡張コンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
- 前記コントラクト拡張コンポーネントは、少なくとも1つの追加状態を前記コントラクトコンポーネントに追加するように前記コントラクトコンポーネントを拡張することを特徴とする請求項6に記載のシステム。
- 前記コントラクト拡張コンポーネントは、少なくとも1つの追加トリガを前記コントラクトコンポーネントに追加するように前記コントラクトコンポーネントを拡張することを特徴とする請求項6に記載のシステム。
- 請求項1に記載の前記システムを実行するためのコンピュータ実行可能命令を格納していることを特徴とするコンピュータ可読媒体。
- 請求項1に記載のシステムを採用することを特徴とするコンピュータ。
- 請求項1に記載のシステムを採用することを特徴とするWebベースの環境。
- 請求項1に記載のコンポーネントを格納していることを特徴とするコンピュータ可読媒体。
- 請求項12に記載のコンポーネントを格納しているコンピュータ可読媒体を含むことを特徴とするコンピュータシステム。
- オブジェクト指向環境においてメッセージ受け渡しを介して同時実行をサポートする方法であって、
コントラクトコンポーネントを宣言すること、および
前記コントラクトコンポーネントを実装することを備えることを特徴とする方法。 - コントラクトを宣言する動作は、少なくとも1つの非同期メッセージコンポーネントおよび1つのプロトコルコンポーネントを宣言することをさらに含むことを特徴とする請求項14に記載の方法。
- 前記コントラクトを宣言する前記動作は、少なくとも1つの非同期メッセージコンポーネントの実行のパターンを指定することをさらに含むことを特徴とする請求項15に記載の方法。
- 前記コントラクトを宣言する前記動作は、前記少なくとも1つの非同期メッセージコンポーネントの実行のトリガを指定することをさらに含むことを特徴とする請求項15に記載の方法。
- コントラクトを宣言する動作は、メソッドコンポーネントを宣言し、前記メソッドコンポーネントの呼び出しのパターンを指定することをさらに含むことを特徴とする請求項14に記載の方法。
- 前記コントラクトを宣言する前記動作は、既存のコントラクトを拡張するコントラクト拡張コンポーネントを識別することをさらに含むことを特徴とする請求項14に記載の方法。
- 前記コントラクト拡張コンポーネントを識別する動作は、少なくとも1つの追加メッセージを前記コントラクトに追加することをさらに含むことを特徴とする請求項19に記載の方法。
- 前記コントラクト拡張コンポーネントを識別する動作は、少なくとも1つの追加状態を前記コントラクトに追加することをさらに含むことを特徴とする請求項19に記載の方法。
- 前記コントラクト拡張コンポーネントを識別する動作は、少なくとも1つの追加トリガを前記コントラクトに追加することをさらに含むことを特徴とする請求項19に記載の方法。
- スケジュールを生成するように前記コントラクトコンポーネントをコンパイルすることをさらに備えることを特徴とする請求項15に記載の方法。
- 前記のコントラクトコンポーネントをコンパイルする動作は、
前記少なくとも1つの非同期メッセージコンポーネントを切り分けて、スケジュールの生成を円滑にすること、
前記切り分けた非同期メッセージコンポーネントをパーティション分割して前記スケジュールを生成すること、および
前記スケジュールをランタイムアルゴリズムに伝達することをさらに含むことを特徴とする請求項23に記載の方法。 - 複数のサービス間の通信を管理するためオーケストレーションコンポーネントを使用する方法であって、
少なくとも1つのコントラクトを宣言すること、
それぞれの通信が状態を定める前記少なくとも1つのコントラクトに従ってWebサービスベースの環境で少なくとも1つのサービスとの通信を開始すること、および
前記定義された状態を集約することを備えることを特徴とする方法。 - スケジュールを生成するように前記オーケストレーションコンポーネントを切り分けることをさらに備えることを特徴とする請求項25に記載の方法。
- 前記スケジュールをランタイムアルゴリズムに伝達することをさらに備えることを特徴とする請求項26に記載の方法。
- 少なくとも1つの前記コントラクトコンポーネントを切り分けて、スレッドコンテキストをブロックすることなく並列ウエイトが発生することを許可することをさらに備えることを特徴とする請求項26に記載の方法。
- オブジェクト指向環境における並列処理を円滑にするシステムであって、
コントラクトを宣言する手段と、
前記コントラクトを実装する手段とを備えることを特徴とするシステム。 - 複数のサービスへの伝達をオーケストレートする手段をさらに備えることを特徴とする請求項29に記載のシステム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/887,739 US7676791B2 (en) | 2004-07-09 | 2004-07-09 | Implementation of concurrent programs in object-oriented languages |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011224078A Division JP2012009081A (ja) | 2004-07-09 | 2011-10-11 | オブジェクト指向言語による同時実行プログラムの実装 |
JP2012041903A Division JP5590572B2 (ja) | 2004-07-09 | 2012-02-28 | サービスの同時実行を実施するシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006024223A true JP2006024223A (ja) | 2006-01-26 |
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 After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
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 | サービスの同時実行を実施するシステム及び方法 |
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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217786A (ja) * | 2007-03-02 | 2008-09-18 | Internatl Business Mach Corp <Ibm> | コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム |
Families Citing this family (33)
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 | 美国日本电气实验室公司 | 参数化并发软件的过程间数据流分析 |
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 | 주식회사 티맥스소프트 | 스레드에서 처리되는 서비스 처리량을 증가시키기 위한 방법 및 컴퓨팅 장치 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337767A (ja) * | 2002-05-17 | 2003-11-28 | Katsuhiko Kondo | 情報システムを構築するための基盤システム |
WO2004040399A2 (en) * | 2002-10-28 | 2004-05-13 | Jgr Acquisition, Inc. | Transparent ejb support and horizontal data partitioning |
Family Cites Families (35)
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 |
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 |
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
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337767A (ja) * | 2002-05-17 | 2003-11-28 | Katsuhiko Kondo | 情報システムを構築するための基盤システム |
WO2004040399A2 (en) * | 2002-10-28 | 2004-05-13 | Jgr Acquisition, Inc. | Transparent ejb support and horizontal data partitioning |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008217786A (ja) * | 2007-03-02 | 2008-09-18 | Internatl Business Mach Corp <Ibm> | コンピューティング環境内のメモリ管理方法、メモリ管理システム及びコンピュータ・プログラム |
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 |
JP2014142959A (ja) | 2014-08-07 |
US7676791B2 (en) | 2010-03-09 |
AU2011200375A1 (en) | 2011-02-17 |
AU2005202252B2 (en) | 2010-11-11 |
MXPA05006176A (es) | 2006-01-12 |
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 | |
Schmidt et al. | Pattern-oriented software architecture, patterns for concurrent and networked objects | |
Schmerl et al. | Exploiting architectural design knowledge to support self-repairing systems | |
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 | |
Riccobene et al. | A formal framework for service modeling and prototyping | |
Ritter et al. | Exception handling in message-based integration systems and modeling using BPMN | |
Kumar et al. | Building Data Streaming Applications with Apache Kafka | |
Philips et al. | NOW: Orchestrating services in a nomadic network using a dedicated workflow language | |
US20120191650A1 (en) | Synchronizing database projects with partner projects | |
Yu et al. | Dynamic software architecture oriented service composition and evolution | |
Pandey | Kafka Streams-Real-Time Stream Processing | |
Baxter | Mastering Akka | |
Lenhard | A pattern-based analysis of WS-BPEL and windows workflow | |
Čukić | A continuation‐based task programming model for C++: design of the Causeway library | |
de Faria | A dynamic event processing framework for high performance streams | |
Sykes | Autonomous architectural assembly and adaptation | |
Gomez et al. | A Conversation-oriented language for B2B integration based on Semantic Web Services | |
Hafid et al. | Using BPEL for Behavioral Concepts in ODP Computational Language | |
Ramollari | Automated Runtime Testing of Web Services | |
Musiol | A Process Engine Independent Architecture Enabling Robust Execution of Mobile Tasks in Business Processes | |
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: 20080613 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110708 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111011 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111028 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120228 |