JP5008829B2 - メッセージ交換パターンシミュレーションコードの自動生成 - Google Patents

メッセージ交換パターンシミュレーションコードの自動生成 Download PDF

Info

Publication number
JP5008829B2
JP5008829B2 JP2005014569A JP2005014569A JP5008829B2 JP 5008829 B2 JP5008829 B2 JP 5008829B2 JP 2005014569 A JP2005014569 A JP 2005014569A JP 2005014569 A JP2005014569 A JP 2005014569A JP 5008829 B2 JP5008829 B2 JP 5008829B2
Authority
JP
Japan
Prior art keywords
message
valid
state
computing system
code
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.)
Expired - Fee Related
Application number
JP2005014569A
Other languages
English (en)
Other versions
JP2005209209A (ja
Inventor
ピー.コープランド ジョージ
アレン ジェーソン
フェリペ カブレラ ルイス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005209209A publication Critical patent/JP2005209209A/ja
Application granted granted Critical
Publication of JP5008829B2 publication Critical patent/JP5008829B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Monitoring And Testing Of Exchanges (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

本発明は、ネットワーキング技術に関し、より詳細には、メッセージ交換パターンをシミュレートするコードの自動生成に関する。
コンピューティング技術は、我々が働き、遊ぶ方法を変えてきた。コンピューティングシステムは現在、デスクトップコンピュータ、ラップトップコンピュータ、タブレットPC、携帯情報端末(PDA)など、幅広い種類の形態を取っている。家庭用のデバイス(冷蔵庫、オーブン、ミシン、セキュリティシステムなど)でさえ、様々なレベルの処理機能を有し、したがってコンピューティングシステムと見なすことができる。
コンピューティングシステムによって提供される機能性の多くは、他のコンピューティングシステムとネットワーク化される(および、メッセージを通信することができる)、コンピューティングシステムに依拠する。2つの通信するコンピューティングシステムが特定のタスクを実施するために、メッセージ交換のパターンを含むメッセージトランザクションが必要とされる場合がある。メッセージトランザクションに関係する各コンピューティングシステムはアプリケーション(以下で「メッセージ交換パターンアプリケーション」とも称する)を有し、このアプリケーションは、受信されたメッセージを、メッセージ交換パターンに従うトランザクションの一部として処理し、および、メッセージ交換パターンに適合する他のメッセージを送信する場合に支援を行う。
メッセージ交換パターンアプリケーションをテストするために、メッセージ交換パターンアプリケーションを異なるコンピューティングシステムにインストールし、次いでテストする場合がある。しかし、2つのメッセージ交換パターンアプリケーションがメッセージ交換パターンを使用して互いに対話できるとしても、多くの場合、あるコンピューティングシステム上のメッセージ交換パターンアプリケーションは、別のコンピューティングシステム上のメッセージ交換パターンアプリケーションとは著しく異なる場合がある。テスターは、これらのメッセージ交換パターンアプリケーションのうち一方へのアクセスしか有していない可能性がある。さらに、他方のメッセージ交換パターンアプリケーションの所有者は、これら2つのメッセージ交換パターンアプリケーションの対話を協調的にテストすることを進んで行わない場合があり、あるいはそれができない場合がある。したがって、メッセージ交換パターンアプリケーションを、それが実施および配置される実際のネットワーク環境内でテストすることは、常に実現可能であるとは限らない。
有利となるであろうものは、メッセージ交換パターンアプリケーションを、それが最終的に使用される実際のネットワーク環境内でテストする必要なしに、テストするためのメカニズムである。さらに、メッセージ交換パターンアプリケーションがテストされるべきであるたびに、追加のテストソフトウェアのオーサリングを必要とすることなく、このテストを実施することができる場合、有利となるであろう。
従来技術の前述の問題は、本発明の原理によって克服され、本発明は、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンをシミュレートするコードを、自動的に生成するためのメカニズムを対象とする。
コード生成コンピューティングシステムは、メッセージ交換パターン定義を使用して、シミュレーションコードを生成する。メッセージ交換パターン定義は、メッセージ交換パターン内の各遷移状態について、1)その状態が与えられると、どのコンピューティングシステムが各有効メッセージを送信(および/または受信)することができるかの指示、および、2)有効メッセージを送信または受信した結果得られる状態遷移記述を含む。
メッセージ交換パターン定義が、有効メッセージが送信されることを可能とする各状態について、少なくとも有効送信メッセージの送信をシミュレートするコードがその状態について生成される。メッセージ交換パターン定義が、有効メッセージが受信されることを可能とする各状態について、少なくとも有効受信メッセージの受信をシミュレートするコードがその状態について生成される。メッセージの送信または受信が状態遷移を発生させる場合、適切な状態遷移をメッセージ交換パターン内に引き起こすコードが生成される。コード生成コンピューティングシステムはまた、特定の状態もが与えられると、無効メッセージの送信または受信をシミュレートするコードをも生成することができる。確率を、あるメッセージ(有効であろうと無効であろうと)が送信または受信されることに割り当てることができる。メッセージ交換パターンを何度もシミュレートして、メッセージ交換パターン中の多数またはすべての可能な状態遷移パスをシミュレートすることができる。これにより、シミュレーションで、実際の配置において直面するであろう可能な場合のすべてを潜在的にも包含することができる。
したがって、シミュレーションコードは、メッセージ交換パターン定義を使用して自動的に生成され、それにより、シミュレーションコードを生成することがより容易となる。さらに、シミュレーションを単一のコンピューティングシステムの内部にすることができ、これは、メッセージ送信および受信を、別のコンピューティングシステムと通信することなくシミュレートすることができるからである。したがって、ネットワークリソースを使用する必要はない。代替として、シミュレーションが単一のコンピューティングシステムの内部でない場合でも、シミュレーションは、単一の組織のネットワーク内の通信を可能にする。したがって、メッセージ交換パターンアプリケーションをテストするために、別の組織の協調に依拠する必要はない。
本発明の追加の特徴および利点は、以下に続く説明において示され、部分的にはこの説明から明らかとなり、あるいは本発明の実施によって知ることができる。本発明の特徴および利点は、付属の特許請求の範囲内で特に指摘された手段および組み合わせを用いて、実現および得ることができる。本発明のこれらおよび他の特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかになり、あるいは、以下に示す本発明の実施によって知ることができる。
本発明の上記および他の利点および特徴を得ることができる方法を説明するために、簡単に上述した本発明のより詳細な説明を、その特定の実施形態を参照することによって提供し、その特定の実施形態を添付の図面において例示する。これらの図面は本発明の典型的な実施形態のみを示し、したがってその範囲を限定するものと見なされるべきでないことを理解して、本発明を追加の特定性および詳細により、添付の図面の使用を通じて説明する。
本発明の原理は、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンをシミュレートするコードを、自動的に生成するためのメカニズムに関する。コード生成コンピューティングシステムは、メッセージ交換パターン定義を、シミュレーションコードを自動的に生成するための基礎として使用する。メッセージ交換パターン定義が、有効メッセージが送信されることを可能とする各状態について、少なくとも有効送信メッセージの送信をシミュレートするコードがその状態について生成される。メッセージ交換パターン定義が、有効メッセージを受信されることを可能とする各状態について、有効受信メッセージの受信をシミュレートするコードがその状態について生成される。メッセージの送信または受信が状態遷移を発生させる場合、適切な状態遷移をメッセージ交換パターン内に引き起こすコードが生成される。
図面を見ると、類似の参照番号は類似の要素を指し、本発明は適切なコンピューティング環境内で実施されるものとして例示される。以下の説明は、本発明の例示された実施形態に基づき、明示的に本明細書で説明されない代替実施形態に関して本発明を限定するものとして解釈されるべきではない。
以下の説明では、特に明記しない限り、本発明を、1つまたは複数のコンピュータによって実行される、ステップ(act、処理)、およびオペレーションの記号表現を参照して説明する。したがって、このようなステップおよびオペレーションは時として、コンピュータにより実行されるものとして呼ばれ、このようなステップおよびオペレーションには、コンピュータの処理装置による、データを構造化形式で表現する電気信号の操作が含まれることを理解されたい。この操作はデータを変換するか、あるいはデータをコンピュータのメモリシステム内のロケーションで維持し、これはコンピュータのオペレーションを、当業者によく理解される方法で再構成し、あるいはそうでない場合は変更する。データが維持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理的ロケーションである。しかし、本発明を前述に関連して説明するが、これは限定とする意味ではなく、これは、以下で説明するいくつかのステップおよびオペレーションをハードウェアにおいても実施することができることが当業者には理解されるであろうからである。図1は、これらのデバイスについて使用可能な一例のコンピュータアーキテクチャの概略図を示す。
説明のため、表現されたアーキテクチャは適切な環境の一例でしかなく、本発明の使用または機能性の範囲についてのいかなる限定をも示唆するように意図されない。また、コンピューティングシステムは、図1に例示されたコンポーネントのいずれか1つまたは組み合わせに関係するいかなる依存性または要件も有するものとして解釈されるべきではない。
本発明は、多数の他の汎用または専用のコンピューティングまたは通信の環境または構成と共に動作する。本発明と共に使用するために適切な周知のコンピューティングシステム、環境および構成の例には、それだけに限定されないが、携帯電話、ポケットコンピュータ、パーソナルコンピュータ、サーバー、マルチプロセッサシステム、マイクロプロセッサベースシステム、ミニコンピュータ、メインフレームコンピュータ、および、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれる。
その最も基本的な構成では、コンピューティングシステム100は通常、少なくとも1つの処理装置102およびメモリ104を含む。メモリ104を揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)またはこの2つのある組み合わせにすることができる。この最も基本的な構成を図1で破線106によって例示する。
ストレージメディアデバイスは追加の特徴および機能性を有することができる。例えば、ストレージメディアデバイスには追加のストレージ(リムーバブルおよび非リムーバブル)が含まれる場合があり、これには、それだけに限定されないが、PCMCIAカード、磁気および光ディスク、ならびに磁気テープが含まれる。このような追加のストレージを図1で、リムーバブルストレージ108および非リムーバブルストレージ110によって例示する。コンピュータストレージメディアには、揮発性および不揮発性、リムーバブルおよび非リムーバブルメディアが含まれ、これは、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のためのいずれかの方法または技術において実装される。メモリ104、リムーバブルストレージ108および非リムーバブルストレージ110はすべてコンピュータストレージメディアの例である。コンピュータストレージメディアには、それだけに限定されないが、RAM、ROM、EEPROM、フラッシュメモリ、他のメモリ技術、CD−ROM、DVD、他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、他の磁気ストレージデバイス、および、所望の情報を格納するために使用することができ、またコンピューティングシステムによってアクセスすることができる他のいかなるメディアもが含まれる。
本明細書で使用される場合、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行するソフトウェアオブジェクトまたはルーチンを指すことができる。本明細書で説明する、異なるコンポーネント、モジュール、エンジンおよびサービスを、コンピューティングシステム上で(例えば、別々のスレッドとして)実行するオブジェクトまたはプロセスとして実装することができる。本明細書で説明するシステムおよび方法は好ましくはソフトウェアにおいて実装されるが、ソフトウェアおよびハードウェア、またはハードウェアにおける実装もまた可能であり、企図される。
コンピューティングシステム100はまた通信チャネル112も含み、通信チャネル112は、ホストがネットワーク120を介して他のシステムおよびデバイスと通信することができるようにする。通信チャネル112は通信メディアの例である。通信メディアは通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調データ信号において実施し、いかなる情報配信メディアをも含む。例として、限定ではなく、通信メディアには、有線ネットワークおよび直接有線接続などの有線メディア、ならびに、音響、無線、赤外線および他の無線メディアなどの無線メディアが含まれる。本明細書で使用される場合、コンピュータ可読メディアという用語は、ストレージメディアおよび通信メディアを含む。
コンピューティングシステム100はまた、キーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなど、入力コンポーネント114も有する場合がある。出力コンポーネント116には、画面ディスプレイ、スピーカー、プリンターなど、および、これらを駆動するためのレンダリングモジュール(しばしば「アダプタ」と呼ばれる)が含まれる。コンピューティングシステム100は電源118を有する。これらのすべてのコンポーネントは当技術分野で周知であり、ここで詳細に論じる必要はない。
図2は、ネットワーク環境200を例示し、これにおいて2つのコンピューティングシステム(図2では「実装コンピューティングシステム」と称する)は特定のタスクを実施するために通信する。詳細には、実装コンピューティングシステム201は実装コンピューティングシステム202と通信する。特定のタスクを実施するために、コンピューティングシステム201および202はメッセージを特定の交換のパターン230において交換する。特定のメッセージ交換のパターンは、どのコンピューティングシステムがどのメッセージをメッセージ交換におけるいずれかの所与の時点で送信するべきであるかを定義する。メッセージ交換パターンは、実施されるべきタスク、および、メッセージを交換するために使用されたプロトコルに依存する。本発明の原理は、メッセージ交換パターンについてのいかなる所与の構造にも限定されない。
各実装コンピューティングシステムは、メッセージ交換パターンに従事するメッセージ交換パターンアプリケーションを有する。例えば、実装コンピューティングシステム201はメッセージ交換パターンアプリケーション210を実行するが、実装コンピューティングシステム202はメッセージ交換パターンアプリケーション220を実行する。実装コンピューティングシステム201および202を、コンピューティングシステムのために上述のように構造化することができるが、これは必要ではない。本明細書および特許請求の範囲では、「コンピューティングシステム」は電子メッセージを処理するための能力を有するいずれかのデバイスまたはシステムとして定義される。
メッセージ交換パターン内のメッセージは、すべてがコンピューティングシステム内の同じコンポーネントによって生成および消費される必要はない。例えば、あるメッセージを、2つのコンピューティングシステムの間のプロトコルレベルで適切な調整を可能にするためのプロトコルレベルメッセージにすることができる。他のメッセージを、所望のタスクを実施するために必要とされたデータの交換を可能にするための、アプリケーションレベルメッセージにすることができる。一実施形態では、メッセージ交換パターン内のプロトコルレベルメッセージは、ウェブサービス調整(WS調整)およびWSトランザクション仕様によって管理され、これらは当業者に知られている。
図2は、メッセージ交換パターンアプリケーションが最終的に動作する環境を例示する。しかし、メッセージ交換パターンアプリケーションをテストして、アプリケーションの出荷に先立って適切なオペレーションを保証することが望ましい。アプリケーションをテストするにはしばしばかなりの時間を要するが、これは、しばしば新しいコードを、シミュレーションを実行するために作成する必要があるからである。さらに、メッセージ交換パターンアプリケーションをテストすることは特に困難であり、これは、オペレーションが本質的に分散されており、しばしばトラストの境界を越えて分散されるからである。例えば、メッセージ交換パターンアプリケーション210を作成するものは、他のコンピューティングシステム上で実行するべきであるメッセージ交換パターンアプリケーション220へのアクセスを有していない場合がある。さらに、メッセージ交換パターンアプリケーション220の所有者の協調を、テストのために獲得することが困難である場合がある。
したがって、本発明の原理はあるメカニズムを提供し、それにより、広範囲に渡る人がコードを作成することを必要とせずに、また、別の組織の協調と共に、または場合によってはまったくいかなるネットワーク環境内でもテストを発生させることを必要とせずに、テストコンピューティングシステムがメッセージ交換パターンの処理をシミュレートすることができるようにする、コードが自動的に生成される。図3は、このような自動コード生成が発生することができる環境を例示する。
図3を参照すると、コード生成コンピューティングシステム301はメッセージ交換パターン定義302にアクセスする。シミュレーションコード生成モジュール303はメッセージ交換パターン定義302を使用して、シミュレーションコード304を生成する。図4を参照すると、このシミュレーションコード304を次いで、テストコンピューティングシステム401によって、シミュレータ402によって使用して、メッセージ交換パターン定義をテストすることができる。このオペレーションに関するより多くのものを、以下で、最初にメッセージ交換パターン定義302をさらに詳細に説明した後、さらに説明する。
メッセージ交換パターンには、いくつかの状態がある。メッセージ交換パターン定義はこれらの状態を定義する。各状態について、送信される可能性のあるゼロまたはそれ以上の有効メッセージタイプ、および、受信される可能性のあるゼロまたはそれ以上の有効メッセージタイプが存在するようになる。有効メッセージタイプの受信または送信により、メッセージ交換パターンは異なる状態に遷移する可能性がある。メッセージ交換パターンは、各状態について有効メッセージタイプを指示し、ある有効メッセージタイプが与えられると何の状態遷移が発生するべきであるかを指示する。メッセージ交換パターン定義はいかなるフォーマットであってもよい。しかし、コードを自動的に生成するためにメッセージ交換パターンを解釈するために、メッセージ交換パターン定義は、より容易に解析することができるフォーマットである場合、有利である。このようなフォーマットの一例は、ウェブサービス記述言語(WSDL)規格によって定義される。
メッセージ交換パターン定義はまた、例えば、ある状態が与えられるとある有効メッセージが受信または送信されるチャンスの確率をも含むことができる。メッセージ交換パターン定義はまた、ある状態が与えられると適用されるべきタイミングポリシーをも課すことができる。例えば、タイミングポリシーは、応答がある期間内に受信されない場合、以前の要求がキャンセルされるべきであることを指示することができる。
メッセージ交換パターン定義を状態遷移木に縮小することによって、メッセージ交換パターン定義をよりよく理解することができる。状態遷移木は、メモリ内でコード生成プロセス中に構築することができるが、これは必要ではない。メッセージ交換パターン状態遷移木には、メッセージ交換パターン内の各状態のためのノードが含まれる。各ノードについて、有効メッセージタイプ、および、どのコンピューティングシステムがどのメッセージのタイプを送信することができるかのリストが提供される。各有効メッセージタイプについて、特定のメッセージを受信する(または、場合によっては送信する)場合にどの状態に遷移するべきであるかの識別もある。
木の構造は、まったくメッセージ交換パターンによって決まり、メッセージ交換パターンは、実行されるタスクによって決まる。すべての可能な状態遷移木を例示することは、数限りないメッセージ交換パターンのために、不可能となる。多数をリストすることは、本発明の原理を曖昧にするであろう。しかし、1つのメッセージ交換パターンを、例示のためにのみ本明細書で説明する。本発明の原理はいかなるメッセージ交換パターンにも適用されることは、当業者には(本明細書を読んだ後に)理解されよう。
そのため、図5は一例のメッセージ交換パターン状態遷移木500を例示する。状態遷移木500は、いくつかの状態501ないし507を含む。コンピューティングシステムの1つからのメッセージの送信は、実線の矢印によって表された状態遷移の結果となる。他方では、コンピューティングシステムの他方からのメッセージの送信は、破線の矢印によって表された状態遷移の結果となる。今の時点では、矢印541および542ならびに確率のマークは無視し、これらの項目については以下で図6に関してさらに説明する。図5を参照すると、あるコンピューティングシステムがメッセージを送信し、これは状態遷移511ないし514の結果となり、他方のコンピューティングシステムがメッセージを送信し、これは状態遷移521ないし527の結果となる。各矢印は、その送信について有効である特定のメッセージタイプまたはメッセージタイプのグループに関連付けられる。
WS協調が使用されている場合、実装コンピューティングシステム201は最初に協調コンテキストメッセージを実装コンピューティングシステム202に送信することができる。実装コンピューティングシステム202は次いで、登録メッセージを実装コンピューティングシステム201に送信することができる。実装コンピューティングシステム201は次いで、登録受け入れメッセージを実装コンピューティングシステム202に送信する。この段階で、実装コンピューティングシステム201は「コーディネーター」の役割を担い、実装コンピューティングシステム202は「参加者」の役割を担い、メッセージ交換はアクティブ状態501にある。図5の実線は、コーディネーター(すなわち、実装コンピューティングシステム201)がメッセージを送信することによって引き起こされる状態遷移を表し、図5の破線は、参加者(すなわち、実装コンピューティングシステム202)がメッセージを送信することによって引き起こされる状態遷移を表す。
アクティブ状態501から、実装コンピューティングシステム201はキャンセルメッセージを実装コンピューティングシステム202に送信することができる。これは、実装コンピューティングシステム201が、以前に要求されたオペレーションをキャンセルすることを選択したことを表し、結果として、アクティブ状態501からキャンセル状態502への遷移となり、これは実線の矢印511で表される。より一般的には、送信側コンピューティングシステムは、遷移に関連付けられたメッセージが送信されるとすぐに、状態遷移を認識する。受信側コンピューティングシステムは、遷移に関連付けられたメッセージが受信されるとすぐに、状態遷移を認識する。したがって、実装コンピューティングシステム201によって認識される状態遷移図の追跡された進行、および、実装コンピューティングシステム202によって認識される状態遷移図の追跡された進行において、ある一時的な違いがある場合がある。この特定の遷移511で、実装コンピューティングシステム201は、キャンセルメッセージを送信するとすぐに、この遷移511を認識する。実装コンピューティングシステム202は、キャンセルメッセージを受信するとすぐに、遷移511を認識する。
代替として、アクティブ状態501にある間、実装コンピューティングシステム201は、エグジットメッセージを実装コンピューティングシステム202から受信する場合がある。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202がもはやメッセージ交換パターン内で参加しないことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201へのエグジットメッセージの送信は、アクティブ状態501から終了状態505への遷移522の結果となる。
代替として、アクティブ状態501にある間、実装コンピューティングシステム201は、完了メッセージを実装コンピューティングシステム202から受信する場合がある。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202が以前の要求に関係する処理を完了したことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201への完了メッセージの送信は、アクティブ状態501から完了状態503への遷移523の結果となる。
代替として、アクティブ状態501にある間、実装コンピューティングシステム201は、障害メッセージを実装コンピューティングシステム202から受信する場合がある。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202がアクティブ状態501から障害を起こしたことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201への障害メッセージの送信は、アクティブ状態501から障害状態507への遷移526の結果となる。
キャンセル状態502にある間、実装コンピューティングシステム201は、キャンセル済メッセージを実装コンピューティングシステム202から受信することができる。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202が、以前に要求されたオペレーションが実装コンピューティングシステム201の要求でキャンセルされたことを確認することを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201へのキャンセル済メッセージの送信は、キャンセル状態502から終了状態505への遷移521の結果となる。
完了状態503にある間、実装コンピューティングシステム201は、クローズメッセージを実装コンピューティングシステム202に送信することができる。このメッセージは実装コンピューティングシステム202に、以前の要求が成功したことを通知する。したがって、実装コンピューティングシステム201から実装コンピューティングシステム202へのクローズメッセージの送信は、完了状態503からクローズ状態504への遷移512の結果となる。
クローズ状態504にある間、実装コンピューティングシステム201は、クローズ済メッセージを実装コンピューティングシステム202から受信することができる。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202がオペレーションを成功して終了させたことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201へのクローズ済メッセージの送信は、クローズ状態504から終了状態505への遷移524の結果となる。
また、完了状態503にある間、実装コンピューティングシステム201は、補正メッセージを実装コンピューティングシステム202に送信することができる。これにより実行中の作業が妥当な範囲まで解除されるべきであることを実装コンピューティングシステム202に通知する。したがって、実装コンピューティングシステム201から実装コンピューティングシステム202への補正メッセージの送信は、完了状態503から補正状態506への遷移513の結果となる。
補正状態506にある間、実装コンピューティングシステム201は、補正済メッセージを実装コンピューティングシステム202から受信することができる。このメッセージは実装コンピューティングシステム201に、補正処置が成功したことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201への補正済メッセージの送信は、補正状態506から終了状態505への遷移525の結果となる。
代替として、補正状態506にある間、実装コンピューティングシステム201は、障害メッセージを実装コンピューティングシステム202から受信する場合がある。このメッセージは実装コンピューティングシステム201に、実装コンピューティングシステム202が補正状態506から障害を起こしたことを通知する。したがって、実装コンピューティングシステム202から実装コンピューティングシステム201への障害メッセージの送信は、補正状態506から障害状態507への遷移527の結果となる。
障害状態507にある間、実装コンピューティングシステム201は、フォゲットメッセージを実装コンピューティングシステム202に送信することができる。このメッセージは実装コンピューティングシステム202に、実装コンピューティングシステム201が障害に気付いていることを通知する。したがって、実装コンピューティングシステム201から実装コンピューティングシステム202へのフォゲットメッセージの送信は、障害状態507から終了状態505への遷移514の結果となる。
図6は、コード生成コンピューティングシステム301が、テストコンピューティングシステム401の機能をテストして、メッセージ交換パターンアプリケーションを使用して、メッセージ交換パターンに従うメッセージトランザクションに従事する、コードを自動的に生成する方法600の流れ図を例示する。このコードは、テストコンピューティングシステム401が他の組織とのメッセージトランザクションに従事することを必要とすることなく、または、場合によっては他のコンピューティングシステムとの通信を必要とすることもなく、シミュレーションを可能にする。方法600を、図5の特定の例のメッセージ交換パターン定義をしばしば参照して説明する。
コード生成コンピューティングシステムは、上述のメッセージ交換パターン定義など、メッセージ交換パターン定義にアクセスする(ステップ601)。次いで、コード生成コンピューティングシステムは、メッセージ交換パターン定義を使用してメッセージ交換パターンシミュレーションコードを自動的に生成するための、機能的な結果志向のステップを実行する(ステップ610)。ステップ610には、この結果を実施するいかなる対応する特定のステップもが含まれる場合がある。しかし、例示の実施形態では、ステップ610には、対応するステップ611および612が含まれる。
具体的には、メッセージ交換パターン定義が、有効送信メッセージがテストコンピューティングシステムによって送信されることを可能とする各状態について、コード生成コンピューティングシステムは、少なくとも有効送信メッセージの送信をシミュレートするコードを自動的に生成する(ステップ611)。例えば、図5のアクティブ状態501を考察する。アクティブ状態501は1つの有効メッセージが送信されることを許可し、これはキャンセルメッセージである。キャンセルメッセージが送信される3%のチャンスがあるように示される。この割合を、メッセージ交換パターン定義によって規定することができ、および/または、ユーザーもしくはコード生成コンピューティングシステムによって規定することができる。この送信に関連付けられた割合は、テストプロセス中に経時的に、動的に変化する場合がある。キャンセルメッセージの条件付き送信をシミュレートするために、コード生成コンピューティングシステムは、以下の擬似コード文書に従うコードを生成することができ、この擬似コード文書には後の説明を容易にするために行番号が付加される。
1. main
2. {
3. Do State501()
4. {
5. Flip a Coin
6. if Coin is in 3% range
7. Send(Cancel)
8. Go to DoState502
9. end if
10. }
11. .
12. .
13. .
14. }
この擬似コードでは、行1でメインプログラムがそのタイトルと共に作成され、その左大括弧は行2にあり、その右大括弧は行14にある。次いで、DoState501と呼ばれるサブルーチンが生成される。行3はこのサブルーチンを識別し、このサブルーチンは行4の左大括弧および行10の右大括弧を使用してくくられる。次いで、擬似乱数値を生成するためのコードが生成される(行5を参照)。次いで、条件付きコードが生成され、適切な場合はその乱数値が与えられると(行6を参照)、キャンセルメッセージの送信が少なくともシミュレートされる(行7を参照)ようになり、実行を次の段階に進めてそれにより次の適切な段階に遷移するためのコードが生成される(行8を参照)。
図6に戻ると、メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、コード生成コンピューティングシステムは、有効受信メッセージの受信をシミュレートし、また遷移するべき状態を表す他のコードへ遷移する、コードを生成する。例えば、アクティブ状態501は3つの有効メッセージの受信を許可し、これらは、10%の発生のチャンスを有するエグジットメッセージ、75%の発生のチャンスを有する完了メッセージ、および2%の発生のチャンスを有する障害メッセージである。これは例の擬似コード内で、以下のように追加の条件ステートメントを同じDoState501サブルーチン内に追加することによって、シミュレートされる。
1. main
2. {
3. Do State501()
4. {
5. Flip a Coin
6. if Coin is in the appropriate 3% range
7. Send(Cancel)
8. Go to DoState502
9. end if
10. if Coin is in the appropriate 10% range
11. Receive(Exited)
12. Go to DoState505
13. end if
14. if Coin is in the appropriate 75% range
15. Receive(Completed)
16. Go to DoState503
17. end if
18. if Coin is in the appropriate 2% range
19. Receive(Faulted)
20. Go to DoState507
21. end if
22. }
23. .
24. .
25. .
26. }
状態505への適切な状態遷移を有するエグジットメッセージの受信をシミュレートするため(行10〜13を参照)、状態503への適切な状態遷移を有する完了メッセージの受信をシミュレートするため(行14〜17を参照)、および、状態507への適切な状態遷移を有する障害メッセージの受信をシミュレートするため(行18〜21を参照)の、条件付きで実行される擬似コードの追加に留意されたい。
加えて、無効メッセージの送信または受信を、発生の正の確率をある無効メッセージの送信または受信に割り当てることによって、シミュレートすることができる。これらの無効メッセージをメッセージ交換パターン定義によって規定することはできず、これは、これらの無効メッセージがメッセージ交換パターンに従わないからである。その代わりに、これらの無効メッセージを、ユーザーによって、あるいはコード生成コンピューティングシステムによって入力することができる。例えば、アクティブ状態501にある間、無効メッセージが送信される場合があり、これを矢印541によって示す(7%の発生のチャンスを有する)。また、無効メッセージが受信される場合もあり、これを矢印542によって示す(3%の発生のチャンスを有する)。無効メッセージの受信および送信をシミュレートすることにより、このシミュレーションで、メッセージ交換パターンへの不適合に対処しなければならない大変実際的な確率をテストすることができる。類似のコードを、これらの無効メッセージについても自動的に生成することができる。例えば、以下の擬似コードは、前の例を拡張して、無効メッセージの送信(行25〜27を参照)および受信(行22〜24を参照)を条件付きでシミュレートするコードを生成する。
1. main
2. {
3. Do State501()
4. {
5. Flip a Coin
6. if Coin is in the appropriate 3% range
7. Send(Cancel)
8. Go to DoState502
9. end if
10. if Coin is in the appropriate 10% range
11. Receive(Exited)
12. Go to DoState505
13. end if
14. if Coin is in the appropriate 75% range
15. Receive(Completed)
16. Go to DoState503
17. end if
18. if Coin is in the appropriate 2% range
19. Receive(Faulted)
20. Go to DoState507
21. end if
22. if Coin is in the appropriate 3% range
23. Receive(Invalid Message)
24. end if
25. if Coin is in the appropriate 7% range
26. Send(Invalid Message)
27. end if
28. }
29. .
30. .
31. .
32. }
この生成プロセスをまた、他の状態(例えば、状態502ないし507)についてのサブルーチンも生成するように実行することもでき、これらもまたそれら自体の分岐確率を有することができる。このコード生成プロセスは、基本プログラム(例えば、プログラム「メイン」)を生成すること、各状態についてのサブルーチンを生成すること、多数のイベントが発生する場合のある各状態について乱数を生成すること、および、次いでイベントを乱数に基づいて条件付きで実行することを含む。これは非常に手続き的なプロセスであり、判断コールについてはほとんど関係しないので、このコード生成プロセスを高度に自動化することができる。いかなるユーザーの介入も、ある場合は些細なものとなる。例えば、ユーザーは、各有効メッセージタイプについて発生の確率を推定し、無効メッセージ受信または送信が発生する可能性があるかどうかを(関連の確率と共に)指示する必要がある場合がある。しかし、ユーザーが実際にコード自体を作成する必要はなくなる。したがって、コードはより容易に生成される。
さらに、「送信」および「受信」機能を、単に、メッセージの送信および受信が実際の配置中に発生するであろう場合にシミュレートするように、作成することができる。したがって、メッセージ交換パターンアプリケーションをテストするために、最終的にメッセージ交換パターンに関連するであろう他の組織の協調に依拠する必要はない。一実施形態では、送信および受信自体をシミュレートして、シミュレーションの結果として実際のネットワークトラフィックが生じないようにし、それによりネットワークリソースを保つようにすることができる。
本発明を、その精神または本質的な特性から逸脱することなく、他の特定の形態において実施することができる。説明した実施形態は、あらゆる点で限定的ではなく例示的としてのみ見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の同意義の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
主張し、米国特許証による保護が望まれるものは、以下の通りである。
本発明の機能を実施することができる、適切なコンピューティングシステムを例示する図である。 2つのコンピューティングシステムが、それぞれメッセージ交換パターンアプリケーションを使用してメッセージ交換パターンを実施する、ネットワーク環境を例示する図である。 メッセージ交換パターンをテストコンピューティングシステム上で内部でシミュレートするコードを自動的に生成する、コード生成コンピューティングシステムを例示する図である。 コード生成コンピューティングシステムによって生成されたシミュレーションコードを使用して、メッセージ交換パターンを内部でシミュレートする、テストコンピューティングシステムを例示する図である。 任意のメッセージ交換パターン内の進行を追跡するために使用することができる、状態遷移木を例示する図である。 コード生成コンピューティングシステムが、メッセージ交換パターンを内部でシミュレートするシミュレーションコードを自動的に生成するための方法の流れ図を例示する図である。
符号の説明
102 処理装置
108 リムーバブルストレージ
110 非リムーバブルストレージ
112 通信チャネル
114 入力コンポーネント
116 出力コンポーネント
118 電源
120 ネットワーク

Claims (18)

  1. コンピュータ実行可能命令をシステムメモリ内で実行することができる1つまたは複数のプロセッサを含む、コード生成コンピューティングシステムにおいて、前記コード生成コンピューティングシステムが、メッセージ交換パターンに従う異なるコンピューティングシステム間のメッセージトランザクションをシミュレートするメッセージ交換パターンアプリケーションを使用する、テストコンピューティングシステムの機能をテストするコードを、自動的に生成するための方法であって、
    複数の状態を定義するメッセージ交換パターン定義にアクセスするステップであって、前記メッセージ交換パターン定義はさらに、前記複数の状態の各々について、その状態のための前記メッセージ交換パターンに適合する1つまたは複数の有効メッセージの指示、前記状態が与えられるとどのコンピューティングシステムが各有効メッセージを送信することができるかの指示、および、前記有効メッセージが発生する場合に遷移するべき前記複数の状態の1つを識別する前記有効メッセージの少なくともいくつかのための状態遷移指示を有し、特定の状態において、複数の有効送信メッセージのいずれか1つを送信することができることを指示し、前記特定の状態のための前記複数の有効送信メッセージの各々について、前記特定の状態が与えられると前記複数の有効送信メッセージの各々が送信されるチャンスのパーセンテージを指示し、特定の状態において、複数の有効受信メッセージのいずれか1つを受信することができることを指示し、前記特定の状態のための前記複数の有効受信メッセージの各々について、前記特定の状態が与えられると前記複数の有効受信メッセージの各々が受信されるチャンスのパーセンテージを指示するステップと、
    疑似乱数値を生成すると共に、前記複数の有効送信メッセージの1つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップと、
    前記メッセージ交換パターン定義が、有効送信メッセージが前記テストコンピューティングシステムによって送信されることを可能とする各状態について、少なくとも前記有効送信メッセージの送信をシミュレートし、また、前記有効送信メッセージが送信される場合に遷移するべき前記状態を表す他のコードへ遷移する、コードを生成するステップと、
    疑似乱数値を生成すると共に、前記複数の有効受信メッセージの1つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップと、
    前記メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、前記有効受信メッセージの前記受信をシミュレートし、また、前記有効受信メッセージが受信される場合に遷移するべき前記状態を表す他のコードへ遷移する、コードを生成するステップと
    を備え、メッセージ送信および受信を別のコンピューティングシステムと通信することなくシミュレートすることによって、前記シミュレーションは、単一の前記テストコンピューティングシステムの内部で行われることを特徴とする方法。
  2. 少なくとも1つの状態について、少なくとも無効送信メッセージの送信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項1に記載の方法。
  3. 特定の状態が与えられると前記無効送信メッセージが送信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成すると共に、前記無効送信メッセージの1つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項に記載の方法。
  4. 少なくとも1つの状態について、無効受信メッセージの受信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項1に記載の方法。
  5. 特定の状態が与えられると前記無効受信メッセージが受信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効受信メッセージの1つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて選択する、コードを生成するステップをさらに備えることを特徴とする請求項に記載の方法。
  6. 前記メッセージ交換パターン定義は、ウェブサービス記述言語(WSDL)規格を使用して定義されることを特徴とする請求項1に記載の方法。
  7. 前記メッセージ交換パターン定義はさらに、特定の状態において課せられるべきタイミングポリシーを定義することを特徴とする請求項1に記載の方法。
  8. コンピュータ実行可能命令をシステムメモリ内で実行することができる1つまたは複数のプロセッサを含む、コード生成コンピューティングシステムに、メッセージ交換パターンに従う異なるコンピューティングシステム間のメッセージトランザクションをシミュレートするメッセージ交換パターンアプリケーションを使用する、テストコンピューティングシステムの機能をテスするコードを、自動的に生成するための方法を実行させるためのプログラムを記録したコンピュータ可読記録媒体であって、前記方法は、
    複数の状態を定義するメッセージ交換パターン定義にアクセスするステップであって、前記メッセージ交換パターン定義はさらに、前記複数の状態の各々について、その状態のための前記メッセージ交換パターンに適合する1つまたは複数の有効メッセージの指示、前記状態が与えられるとどのコンピューティングシステムが各有効メッセージを送信することができるかの指示、および、前記有効メッセージが発生する場合に遷移するべき前記複数の状態の1つを識別する前記有効メッセージの少なくともいくつかのための状態遷移指示を有し、特定の状態において、複数の有効送信メッセージのいずれか1つを送信することができることを指示し、前記特定の状態のための前記複数の有効送信メッセージの各々について、前記特定の状態が与えられると前記複数の有効送信メッセージの各々が送信されるチャンスのパーセンテージを指示し、特定の状態において、複数の有効受信メッセージのいずれか1つを受信することができることを指示し、前記特定の状態のための前記複数の有効受信メッセージの各々について、前記特定の状態が与えられると前記複数の有効受信メッセージの各々が受信されるチャンスのパーセンテージを指示するステップと、
    疑似乱数値を生成すると共に、前記複数の有効送信メッセージの1つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップと、
    前記メッセージ交換パターン定義が、有効送信メッセージが前記テストコンピューティングシステムによって送信されることを可能とする各状態について、少なくとも前記有効送信メッセージの送信をシミュレートすると共に、前記有効送信メッセージが送信される場合に遷移するべき前記状態を表す他のコードへと遷移するコードを生成するステップと、
    疑似乱数値を生成すると共に、前記複数の有効受信メッセージの1つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップと、
    前記メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、前記有効受信メッセージの前記受信をシミュレートすると共に、前記有効受信メッセージが受信される場合に遷移するべき前記状態を表す他のコードへと遷移する、コードを生成するステップと
    を備え、メッセージ送信および受信を別のコンピューティングシステムと通信することなくシミュレートすることによって、前記シミュレーションは、単一の前記テストコンピューティングシステムの内部で行われることを特徴とするコンピュータ可読記録媒体。
  9. 少なくとも1つの状態について、少なくとも無効送信メッセージの送信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項に記載のコンピュータ可読記録媒体。
  10. 特定の状態が与えられると前記無効送信メッセージが送信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効送信メッセージの1つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項に記載のコンピュータ可読記録媒体。
  11. 少なくとも1つの状態について、
    無効受信メッセージの受信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項に記載のコンピュータ可読記録媒体。
  12. 特定の状態が与えられると前記無効受信メッセージが受信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効受信メッセージの1つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて選択する、コードを生成するステップをさらに備えることを特徴とする請求項11に記載のコンピュータ可読記録媒体。
  13. 前記メッセージ交換パターン定義は、ウェブサービス記述言語(WSDL)規格を使用して定義されることを特徴とする請求項に記載のコンピュータ可読記録媒体。
  14. 前記メッセージ交換パターン定義はさらに、特定の状態において課せられるべきタイミングポリシーを定義することを特徴とする請求項に記載のコンピュータ可読記録媒体。
  15. 前記コンピュータ可読記録媒体は物理メディアであることを特徴とする請求項に記載のコンピュータ可読記録媒体。
  16. 前記コンピュータ可読記録媒体はシステムメモリを含むことを特徴とする請求項15に記載のコンピュータ可読記録媒体。
  17. 前記コンピュータ可読記録媒体は持続メモリを含むことを特徴とする請求項15に記載のコンピュータ可読記録媒体。
  18. 前記持続メモリは磁気ディスクであることを特徴とする請求項17に記載のコンピュータ可読記録媒体。
JP2005014569A 2004-01-23 2005-01-21 メッセージ交換パターンシミュレーションコードの自動生成 Expired - Fee Related JP5008829B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/763,311 2004-01-23
US10/763,311 US7370317B2 (en) 2004-01-23 2004-01-23 Automated generation of message exchange pattern simulation code

Publications (2)

Publication Number Publication Date
JP2005209209A JP2005209209A (ja) 2005-08-04
JP5008829B2 true JP5008829B2 (ja) 2012-08-22

Family

ID=34750408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005014569A Expired - Fee Related JP5008829B2 (ja) 2004-01-23 2005-01-21 メッセージ交換パターンシミュレーションコードの自動生成

Country Status (17)

Country Link
US (1) US7370317B2 (ja)
EP (1) EP1577777A3 (ja)
JP (1) JP5008829B2 (ja)
KR (1) KR101031960B1 (ja)
CN (1) CN1645824B (ja)
AU (1) AU2004240189B8 (ja)
BR (1) BRPI0405719A (ja)
CA (1) CA2490593A1 (ja)
IL (1) IL165890A (ja)
MX (1) MXPA05000417A (ja)
MY (1) MY145248A (ja)
NO (1) NO20050334L (ja)
NZ (1) NZ537524A (ja)
RU (1) RU2373565C2 (ja)
SG (1) SG113532A1 (ja)
TW (1) TWI362002B (ja)
ZA (1) ZA200410330B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2838217B1 (fr) * 2002-04-05 2004-06-25 De Chelle Yvonne Auberlet Procede et dispositif de generation de logiciels executables sur mesure et evolutifs sans programmation informatique
US20060184914A1 (en) * 2005-02-17 2006-08-17 Microsoft Corporation Random code generation
US7930683B2 (en) 2006-03-31 2011-04-19 Sap Ag Test automation method for software programs
WO2008023587A1 (fr) * 2006-08-23 2008-02-28 Tsudakoma Kogyo Kabushikikaisha Tête d'usinage pour machine-outil
US8056090B2 (en) * 2007-06-29 2011-11-08 International Business Machines Corporation Reducing layering overhead in collective communication operations
US8984120B2 (en) * 2010-12-16 2015-03-17 International Business Machines Corporation Determining an unexpected disconnect event constraint within a text exchange session
TWI564711B (zh) * 2016-02-05 2017-01-01 立端科技股份有限公司 節省網路能源之方法
DE102020107141B4 (de) 2020-03-16 2022-03-17 Dspace Gmbh Simulieren einer Steuergerätekommunikation zwischen einem zu testenden Steuergerät und mindestens einem weiteren Steuergerät
US11366705B1 (en) * 2021-07-29 2022-06-21 Apex.AI, Inc. Deterministic replay of events between software entities

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
JPH03295339A (ja) * 1990-04-13 1991-12-26 Oki Electric Ind Co Ltd プロトコル検証用試験方式
JPH06149618A (ja) * 1992-11-10 1994-05-31 Matsushita Electric Ind Co Ltd 自動実行装置および自動実行方法
JP3075664B2 (ja) * 1994-03-07 2000-08-14 ケイディディ株式会社 通信プロトコル適合性試験装置
JPH0847014A (ja) * 1994-07-27 1996-02-16 Toshiba Corp 交換機ソフトウェアの開発支援/保守方式
JPH08235098A (ja) * 1995-02-22 1996-09-13 Mitsubishi Electric Corp 分散アプリケーション通信方式
JP4253056B2 (ja) * 1998-08-03 2009-04-08 株式会社東芝 テスト装置、テストケース評価装置、およびテスト結果解析装置
JP2000322288A (ja) * 1999-05-06 2000-11-24 Fujitsu Ltd 分散オブジェクト開発システム、および、分散オブジェクト開発をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
US7366759B2 (en) * 2001-02-22 2008-04-29 Parity Communications, Inc. Method and system for characterizing relationships in social networks
US7020850B2 (en) 2001-05-02 2006-03-28 The Mathworks, Inc. Event-based temporal logic
EP1337080A3 (en) * 2002-02-15 2005-06-08 Hitachi, Ltd. Method of controlling the network devices
CN1452352A (zh) * 2002-04-19 2003-10-29 上海广电信息产业股份有限公司 通过互联网实现智能家用电器设备远程控制的系统和方法
US7689430B2 (en) * 2002-12-16 2010-03-30 International Business Machines Corporation Access to web services
JP4403794B2 (ja) 2003-02-28 2010-01-27 株式会社デンソー 制御プログラムの検査方法及び検査装置及び検査プログラム
US20050080608A1 (en) 2003-06-30 2005-04-14 Joe Burns Simulator for request/response systems
US6920410B2 (en) * 2003-07-08 2005-07-19 Hewlett-Packard Development Company, L.P. Systems and methods for testing a network service
US7451211B2 (en) 2004-01-23 2008-11-11 Microsoft Corporation Message exchange pattern tracking to avoid invalid message exchange

Also Published As

Publication number Publication date
AU2004240189A1 (en) 2005-08-11
US7370317B2 (en) 2008-05-06
NO20050334D0 (no) 2005-01-21
TWI362002B (en) 2012-04-11
BRPI0405719A (pt) 2005-09-20
KR101031960B1 (ko) 2011-04-29
KR20050076808A (ko) 2005-07-28
AU2004240189B2 (en) 2010-04-01
SG113532A1 (en) 2005-08-29
MXPA05000417A (es) 2005-08-16
IL165890A0 (en) 2006-01-15
ZA200410330B (en) 2006-09-27
CA2490593A1 (en) 2005-07-23
CN1645824A (zh) 2005-07-27
RU2373565C2 (ru) 2009-11-20
JP2005209209A (ja) 2005-08-04
AU2004240189B8 (en) 2010-04-29
IL165890A (en) 2010-04-15
EP1577777A2 (en) 2005-09-21
EP1577777A3 (en) 2008-08-27
NO20050334L (no) 2005-07-25
RU2004137211A (ru) 2006-05-27
NZ537524A (en) 2006-06-30
TW200527291A (en) 2005-08-16
CN1645824B (zh) 2010-05-26
MY145248A (en) 2012-01-13
US20050166186A1 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
JP5008829B2 (ja) メッセージ交換パターンシミュレーションコードの自動生成
CN108876380B (zh) 一种基于中心化结算与区块链存证的交易方法及系统
CN109377216B (zh) 一种基于中心化结算与区块链存证的交易方法及系统
CN102419729B (zh) 并行测试执行
US20140325487A1 (en) Software defect reporting
US11288124B2 (en) Methods and apparatus for in-field mitigation of firmware failures
Weigert et al. Practical experiences in using model-driven engineering to develop trustworthy computing systems
JP2005182798A (ja) 加入者識別モジュール(sim)エミュレータ
US20110067007A1 (en) Automatic thread dumping
KR20110128632A (ko) 스마트폰 응용프로그램의 악성행위 탐지 방법 및 장치
CN102742303A (zh) 具有本地pim集成的基于消息的移动对象
US20040003043A1 (en) Remote control of document objects in a collaborative environment
CN111368330A (zh) 一种基于区块链的以太坊智能合约审计系统及方法
Kazhamiakin et al. Analysis of realizability conditions for web service choreographies
CN113760339A (zh) 漏洞修复方法和装置
De Iasio et al. A framework for microservices synchronization
US8468529B2 (en) Correlating, logging and tracing messaging events between workflow instances with globally unique identifiers
CN111047444A (zh) 一种基于区块链网络的数据交易方法和装置
CN112583891B (zh) 接口文档获取方法、装置和服务器
US7451211B2 (en) Message exchange pattern tracking to avoid invalid message exchange
Mirisaee et al. A framework for context-aware university mobile organizer
CN118051421A (zh) Io时延故障的注入方法、装置、电子设备及存储介质
KR101593633B1 (ko) 소스 배포 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체
CN115964193A (zh) 网格环境应用的服务调用方法、计算机设备、存储介质
Maier et al. Reaching High Availability in Connected Car Backend Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110311

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120321

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: 20120525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120530

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150608

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees