(57)【要約】      （修正有）【課題】メッセージ交換パターンアプリケーションがテストされるたびに、追加のテストソフトウェアのオーサリングを必要とすることなく、このテストを実施可能とする。【解決手段】コード生成コンピューティングシステム３０１は、メッセージ交換パターン定義３０２を使用して、シミュレーションコード３０４を生成する。メッセージ交換パターン定義３０２が、有効メッセージが送信されることを可能とする各状態について、少なくとも有効送信メッセージの送信をシミュレートするコードがその状態について生成される。メッセージ交換パターン定義３０２が、有効メッセージが受信されることを可能とする各状態について、有効受信メッセージの受信をシミュレートするコードがその状態について生成される。メッセージの送信または受信が状態遷移を発生させる場合、適切な状態遷移をメッセージ交換パターン内に引き起こすコードが生成される。【選択図】図３
2005209209.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令をシステムメモリ内で実行することができる１つまたは複数のプロセッサを含む、コード生成コンピューティングシステムにおいて、前記コード生成コンピューティングシステムが、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンアプリケーションを使用して、メッセージ交換パターンに従うメッセージトランザクションに従事するコードを、自動的に生成するための方法であって、
複数の状態を定義するメッセージ交換パターン定義にアクセスするステップであって、前記メッセージ交換パターン定義はさらに、前記複数の状態の各々について、その状態のための前記メッセージ交換パターンに適合する１つまたは複数の有効メッセージの指示、前記状態が与えられるとどのコンピューティングシステムが各有効メッセージを送信することができるかの指示、および、前記有効メッセージが発生する場合に遷移するべき前記複数の状態の１つを識別する前記有効メッセージの少なくともいくつかのための状態遷移指示を有するステップと、
前記メッセージ交換パターン定義が、有効送信メッセージが前記テストコンピューティングシステムによって送信されることを可能とする各状態について、少なくとも前記有効送信メッセージの送信をシミュレートし、また、前記有効送信メッセージが送信される場合に遷移するべき前記状態を表す他のコードへ遷移する、コードを生成するステップと、
前記メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、前記有効受信メッセージの前記受信をシミュレートし、また、前記有効受信メッセージが受信される場合に遷移するべき前記状態を表す他のコードへ遷移する、コードを生成するステップと
を備えることを特徴とする方法。
【請求項２】
前記メッセージ交換パターン定義は、特定の状態において、複数の有効送信メッセージのいずれか１つを送信することができることを指示することを特徴とする請求項１に記載の方法。
【請求項３】
前記メッセージ交換パターン定義は、前記特定の状態のための前記複数の有効送信メッセージの各々について、前記特定の状態が与えられると前記複数の有効送信メッセージの各々が送信されるチャンスのパーセンテージを指示し、前記方法は、少なくとも前記複数の有効送信メッセージの各々をシミュレートし、また、前記送信が与えられると適切な状態遷移を実行するための、コードを自動的に生成するステップをさらに備えることを特徴とする請求項２に記載の方法。
【請求項４】
疑似乱数値を生成すると共に、前記複数の有効送信メッセージの１つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項３に記載の方法。
【請求項５】
少なくとも１つの状態について、少なくとも無効送信メッセージの送信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
特定の状態が与えられると前記無効送信メッセージが送信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成すると共に、前記無効送信メッセージの１つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項５に記載の方法。
【請求項７】
前記メッセージ交換パターン定義は、特定の状態において、複数の有効受信メッセージのいずれか１つを受信することができることを指示することを特徴とする請求項１に記載の方法。
【請求項８】
前記メッセージ交換パターン定義は、前記特定の状態のための前記複数の有効受信メッセージの各々について、前記特定の状態が与えられると前記複数の有効受信メッセージの各々が受信されるチャンスのパーセンテージを指示し、前記方法は、前記複数の有効受信メッセージの各々をシミュレートし、また、前記送信が与えられると適切な状態遷移を実行するための、コードを自動的に生成するステップをさらに備えることを特徴とする請求項７に記載の方法。
【請求項９】
疑似乱数値を生成すると共に、前記複数の有効受信メッセージの１つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
少なくとも１つの状態について、無効受信メッセージの受信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
特定の状態が与えられると前記無効受信メッセージが受信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効受信メッセージの１つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて選択する、コードを生成するステップをさらに備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
前記メッセージ交換パターン定義は、ウェブサービス記述言語（ＷＳＤＬ）規格を使用して定義されることを特徴とする請求項１に記載の方法。
【請求項１３】
前記メッセージ交換パターン定義はさらに、特定の状態において課せられるべきタイミングポリシーを定義することを特徴とする請求項１に記載の方法。
【請求項１４】
コンピュータ実行可能命令をシステムメモリ内で実行することができる１つまたは複数のプロセッサを含む、コード生成コンピューティングシステムにおいて使用するためのコンピュータプログラム製品であって、
前記コンピュータプログラム製品は、前記コード生成コンピューティングシステムが、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンアプリケーションを使用して、メッセージ交換パターンに従うメッセージトランザクションに従事するコードを、自動的に生成するための方法を実行するためのものであり、前記コンピュータプログラム製品は、前記コード生成コンピューティングシステムの１つまたは複数のプロセッサによって実行される場合、前記コード生成コンピューティングシステムに前記方法を実行させる、１つまたは複数のコンピュータ可読メディアを備え、前記方法は、
複数の状態を定義するメッセージ交換パターン定義にアクセスするステップであって、前記メッセージ交換パターン定義はさらに、前記複数の状態の各々について、その状態のための前記メッセージ交換パターンに適合する１つまたは複数の有効メッセージの指示、前記状態が与えられるとどのコンピューティングシステムが各有効メッセージを送信することができるかの指示、および、前記有効メッセージが発生する場合に遷移するべき前記複数の状態の１つを識別する前記有効メッセージの少なくともいくつかのための状態遷移指示を有するステップと、
前記メッセージ交換パターン定義が、有効送信メッセージが前記テストコンピューティングシステムによって送信されることを可能とする各状態について、少なくとも前記有効送信メッセージの送信をシミュレートすると共に、前記有効送信メッセージが送信される場合に遷移するべき前記状態を表す他のコードへと遷移するコードを生成するステップと、
前記メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、前記有効受信メッセージの前記受信をシミュレートすると共に、前記有効受信メッセージが受信される場合に遷移するべき前記状態を表す他のコードへと遷移する、コードを生成するステップとを備えることを特徴とするコンピュータプログラム製品。
【請求項１５】
前記メッセージ交換パターン定義は、特定の状態において、複数の有効送信メッセージのいずれか１つを送信することができることを指示することを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１６】
前記メッセージ交換パターン定義は、前記特定の状態のための前記複数の有効送信メッセージの各々について、前記特定の状態が与えられると前記複数の有効送信メッセージの各々が送信されるチャンスのパーセンテージを指示し、前記方法は、少なくとも前記複数の有効送信メッセージの各々をシミュレートし、また、前記送信が与えられると適切な状態遷移を実行するための、コードを自動的に生成するステップをさらに備えることを特徴とする請求項１５に記載のコンピュータプログラム製品。
【請求項１７】
疑似乱数値を生成すると共に、前記複数の有効送信メッセージの１つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
少なくとも１つの状態について、少なくとも無効送信メッセージの送信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項１９】
特定の状態が与えられると前記無効送信メッセージが送信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効送信メッセージの１つを、送信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記メッセージ交換パターン定義は、特定の状態において、複数の有効受信メッセージのいずれか１つを受信することができることを指示することを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２１】
前記メッセージ交換パターン定義は、前記特定の状態のための前記複数の有効受信メッセージの各々について、前記特定の状態が与えられると前記複数の有効受信メッセージの各々が受信されるチャンスのパーセンテージを指示し、前記方法は、前記複数の有効受信メッセージの各々をシミュレートし、また、前記送信が与えられると適切な状態遷移を実行するための、コードを自動的に生成するステップをさらに備えることを特徴とする請求項２０に記載のコンピュータプログラム製品。
【請求項２２】
疑似乱数値を生成すると共に、前記複数の有効受信メッセージの１つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて、選択するコードを生成するステップをさらに備えることを特徴とする請求項２１に記載のコンピュータプログラム製品。
【請求項２３】
少なくとも１つの状態について、
無効受信メッセージの受信をシミュレートするコードを生成するステップをさらに備えることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２４】
特定の状態が与えられると前記無効受信メッセージが受信されるチャンスのパーセンテージもまた指示され、前記方法は、疑似乱数値を生成し、前記無効受信メッセージの１つを、シミュレートされた受信のために、前記擬似乱数値および前記チャンスのパーセンテージに基づいて選択する、コードを生成するステップをさらに備えることを特徴とする請求項２３に記載のコンピュータプログラム製品。
【請求項２５】
前記メッセージ交換パターン定義は、ウェブサービス記述言語（ＷＳＤＬ）規格を使用して定義されることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２６】
前記メッセージ交換パターン定義はさらに、特定の状態において課せられるべきタイミングポリシーを定義することを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２７】
前記１つまたは複数のコンピュータ可読メディアは物理メディアであることを特徴とする請求項１４に記載のコンピュータプログラム製品。
【請求項２８】
前記１つまたは複数のコンピュータ可読メディアはシステムメモリを含むことを特徴とする請求項２７に記載のコンピュータプログラム製品。
【請求項２９】
前記１つまたは複数のコンピュータ可読メディアは持続メモリを含むことを特徴とする請求項２７に記載のコンピュータプログラム製品。
【請求項３０】
前記持続メモリは磁気ディスクであることを特徴とする請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
コンピュータ実行可能命令をシステムメモリ内で実行することができる１つまたは複数のプロセッサを含む、コード生成コンピューティングシステムにおいて、前記コード生成コンピューティングシステムが、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンアプリケーションを使用して、メッセージ交換パターンに従うメッセージトランザクションに従事するコードを、自動的に生成するための方法であって、
複数の状態を定義するメッセージ交換パターン定義にアクセスするステップであって、前記メッセージ交換パターン定義はさらに、前記複数の状態の各々について、その状態のための前記メッセージ交換パターンに適合する１つまたは複数の有効メッセージの指示、前記状態が与えられるとどのコンピューティングシステムが各有効メッセージを送信することができるかの指示、および、前記有効メッセージが発生する場合に遷移するべき前記複数の状態の１つを識別する前記有効メッセージの少なくともいくつかのための状態遷移指示を有するステップと、
メッセージ交換パターンシミュレーションコードを、前記メッセージ交換パターン定義を使用して自動的に生成するためのステップと
を備えることを特徴とする方法。
【請求項３２】
メッセージ交換パターンシミュレーションコードを、前記メッセージ交換パターン定義を使用して自動的に生成するための前記ステップは、
前記メッセージ交換パターン定義が、有効送信メッセージが前記テストコンピューティングシステムによって送信されることを可能とする各状態について、少なくとも前記有効送信メッセージの送信をシミュレートすると共に、前記有効送信メッセージが送信される場合に遷移するべき前記状態を表す他のコードへと遷移するコードを生成するステップと、
前記メッセージ交換パターン定義が、有効受信メッセージが受信されることを可能とする各状態について、前記有効受信メッセージの前記受信をシミュレートすると共に、前記有効受信メッセージが受信される場合に遷移するべき前記状態を表す他のコードへと遷移する、コードを生成するステップとを備えることを特徴とする請求項３１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーキング技術に関し、より詳細には、メッセージ交換パターンをシミュレートするコードの自動生成に関する。
【背景技術】
【０００２】
コンピューティング技術は、我々が働き、遊ぶ方法を変えてきた。コンピューティングシステムは現在、デスクトップコンピュータ、ラップトップコンピュータ、タブレットＰＣ、携帯情報端末（ＰＤＡ）など、幅広い種類の形態を取っている。家庭用のデバイス（冷蔵庫、オーブン、ミシン、セキュリティシステムなど）でさえ、様々なレベルの処理機能を有し、したがってコンピューティングシステムと見なすことができる。
【０００３】
コンピューティングシステムによって提供される機能性の多くは、他のコンピューティングシステムとネットワーク化される（および、メッセージを通信することができる）、コンピューティングシステムに依拠する。２つの通信するコンピューティングシステムが特定のタスクを実施するために、メッセージ交換のパターンを含むメッセージトランザクションが必要とされる場合がある。メッセージトランザクションに関係する各コンピューティングシステムはアプリケーション（以下で「メッセージ交換パターンアプリケーション」とも称する）を有し、このアプリケーションは、受信されたメッセージを、メッセージ交換パターンに従うトランザクションの一部として処理し、および、メッセージ交換パターンに適合する他のメッセージを送信する場合に支援を行う。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
メッセージ交換パターンアプリケーションをテストするために、メッセージ交換パターンアプリケーションを異なるコンピューティングシステムにインストールし、次いでテストする場合がある。しかし、２つのメッセージ交換パターンアプリケーションがメッセージ交換パターンを使用して互いに対話できるとしても、多くの場合、あるコンピューティングシステム上のメッセージ交換パターンアプリケーションは、別のコンピューティングシステム上のメッセージ交換パターンアプリケーションとは著しく異なる場合がある。テスターは、これらのメッセージ交換パターンアプリケーションのうち一方へのアクセスしか有していない可能性がある。さらに、他方のメッセージ交換パターンアプリケーションの所有者は、これら２つのメッセージ交換パターンアプリケーションの対話を協調的にテストすることを進んで行わない場合があり、あるいはそれができない場合がある。したがって、メッセージ交換パターンアプリケーションを、それが実施および配置される実際のネットワーク環境内でテストすることは、常に実現可能であるとは限らない。
【０００５】
有利となるであろうものは、メッセージ交換パターンアプリケーションを、それが最終的に使用される実際のネットワーク環境内でテストする必要なしに、テストするためのメカニズムである。さらに、メッセージ交換パターンアプリケーションがテストされるべきであるたびに、追加のテストソフトウェアのオーサリングを必要とすることなく、このテストを実施することができる場合、有利となるであろう。
【０００６】
従来技術の前述の問題は、本発明の原理によって克服され、本発明は、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンをシミュレートするコードを、自動的に生成するためのメカニズムを対象とする。
【課題を解決するための手段】
【０００７】
コード生成コンピューティングシステムは、メッセージ交換パターン定義を使用して、シミュレーションコードを生成する。メッセージ交換パターン定義は、メッセージ交換パターン内の各遷移状態について、１）その状態が与えられると、どのコンピューティングシステムが各有効メッセージを送信（および／または受信）することができるかの指示、および、２）有効メッセージを送信または受信した結果得られる状態遷移記述を含む。
【０００８】
メッセージ交換パターン定義が、有効メッセージが送信されることを可能とする各状態について、少なくとも有効送信メッセージの送信をシミュレートするコードがその状態について生成される。メッセージ交換パターン定義が、有効メッセージが受信されることを可能とする各状態について、少なくとも有効受信メッセージの受信をシミュレートするコードがその状態について生成される。メッセージの送信または受信が状態遷移を発生させる場合、適切な状態遷移をメッセージ交換パターン内に引き起こすコードが生成される。コード生成コンピューティングシステムはまた、特定の状態もが与えられると、無効メッセージの送信または受信をシミュレートするコードをも生成することができる。確率を、あるメッセージ（有効であろうと無効であろうと）が送信または受信されることに割り当てることができる。メッセージ交換パターンを何度もシミュレートして、メッセージ交換パターン中の多数またはすべての可能な状態遷移パスをシミュレートすることができる。これにより、シミュレーションで、実際の配置において直面するであろう可能な場合のすべてを潜在的にも包含することができる。
【０００９】
したがって、シミュレーションコードは、メッセージ交換パターン定義を使用して自動的に生成され、それにより、シミュレーションコードを生成することがより容易となる。さらに、シミュレーションを単一のコンピューティングシステムの内部にすることができ、これは、メッセージ送信および受信を、別のコンピューティングシステムと通信することなくシミュレートすることができるからである。したがって、ネットワークリソースを使用する必要はない。代替として、シミュレーションが単一のコンピューティングシステムの内部でない場合でも、シミュレーションは、単一の組織のネットワーク内の通信を可能にする。したがって、メッセージ交換パターンアプリケーションをテストするために、別の組織の協調に依拠する必要はない。
【００１０】
本発明の追加の特徴および利点は、以下に続く説明において示され、部分的にはこの説明から明らかとなり、あるいは本発明の実施によって知ることができる。本発明の特徴および利点は、付属の特許請求の範囲内で特に指摘された手段および組み合わせを用いて、実現および得ることができる。本発明のこれらおよび他の特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかになり、あるいは、以下に示す本発明の実施によって知ることができる。
【００１１】
本発明の上記および他の利点および特徴を得ることができる方法を説明するために、簡単に上述した本発明のより詳細な説明を、その特定の実施形態を参照することによって提供し、その特定の実施形態を添付の図面において例示する。これらの図面は本発明の典型的な実施形態のみを示し、したがってその範囲を限定するものと見なされるべきでないことを理解して、本発明を追加の特定性および詳細により、添付の図面の使用を通じて説明する。
【発明を実施するための最良の形態】
【００１２】
本発明の原理は、テストコンピューティングシステムの機能をテストして、メッセージ交換パターンをシミュレートするコードを、自動的に生成するためのメカニズムに関する。コード生成コンピューティングシステムは、メッセージ交換パターン定義を、シミュレーションコードを自動的に生成するための基礎として使用する。メッセージ交換パターン定義が、有効メッセージが送信されることを可能とする各状態について、少なくとも有効送信メッセージの送信をシミュレートするコードがその状態について生成される。メッセージ交換パターン定義が、有効メッセージを受信されることを可能とする各状態について、有効受信メッセージの受信をシミュレートするコードがその状態について生成される。メッセージの送信または受信が状態遷移を発生させる場合、適切な状態遷移をメッセージ交換パターン内に引き起こすコードが生成される。
【００１３】
図面を見ると、類似の参照番号は類似の要素を指し、本発明は適切なコンピューティング環境内で実施されるものとして例示される。以下の説明は、本発明の例示された実施形態に基づき、明示的に本明細書で説明されない代替実施形態に関して本発明を限定するものとして解釈されるべきではない。
【００１４】
以下の説明では、特に明記しない限り、本発明を、１つまたは複数のコンピュータによって実行される、ステップ（ａｃｔ、処理）、およびオペレーションの記号表現を参照して説明する。したがって、このようなステップおよびオペレーションは時として、コンピュータにより実行されるものとして呼ばれ、このようなステップおよびオペレーションには、コンピュータの処理装置による、データを構造化形式で表現する電気信号の操作が含まれることを理解されたい。この操作はデータを変換するか、あるいはデータをコンピュータのメモリシステム内のロケーションで維持し、これはコンピュータのオペレーションを、当業者によく理解される方法で再構成し、あるいはそうでない場合は変更する。データが維持されるデータ構造は、データのフォーマットによって定義された特定のプロパティを有するメモリの物理的ロケーションである。しかし、本発明を前述に関連して説明するが、これは限定とする意味ではなく、これは、以下で説明するいくつかのステップおよびオペレーションをハードウェアにおいても実施することができることが当業者には理解されるであろうからである。図１は、これらのデバイスについて使用可能な一例のコンピュータアーキテクチャの概略図を示す。
【００１５】
説明のため、表現されたアーキテクチャは適切な環境の一例でしかなく、本発明の使用または機能性の範囲についてのいかなる限定をも示唆するように意図されない。また、コンピューティングシステムは、図１に例示されたコンポーネントのいずれか１つまたは組み合わせに関係するいかなる依存性または要件も有するものとして解釈されるべきではない。
【００１６】
本発明は、多数の他の汎用または専用のコンピューティングまたは通信の環境または構成と共に動作する。本発明と共に使用するために適切な周知のコンピューティングシステム、環境および構成の例には、それだけに限定されないが、携帯電話、ポケットコンピュータ、パーソナルコンピュータ、サーバー、マルチプロセッサシステム、マイクロプロセッサベースシステム、ミニコンピュータ、メインフレームコンピュータ、および、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれる。
【００１７】
その最も基本的な構成では、コンピューティングシステム１００は通常、少なくとも１つの処理装置１０２およびメモリ１０４を含む。メモリ１０４を揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）またはこの２つのある組み合わせにすることができる。この最も基本的な構成を図１で破線１０６によって例示する。
【００１８】
ストレージメディアデバイスは追加の特徴および機能性を有することができる。例えば、ストレージメディアデバイスには追加のストレージ（リムーバブルおよび非リムーバブル）が含まれる場合があり、これには、それだけに限定されないが、ＰＣＭＣＩＡカード、磁気および光ディスク、ならびに磁気テープが含まれる。このような追加のストレージを図１で、リムーバブルストレージ１０８および非リムーバブルストレージ１１０によって例示する。コンピュータストレージメディアには、揮発性および不揮発性、リムーバブルおよび非リムーバブルメディアが含まれ、これは、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報の格納のためのいずれかの方法または技術において実装される。メモリ１０４、リムーバブルストレージ１０８および非リムーバブルストレージ１１０はすべてコンピュータストレージメディアの例である。コンピュータストレージメディアには、それだけに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、他の磁気ストレージデバイス、および、所望の情報を格納するために使用することができ、またコンピューティングシステムによってアクセスすることができる他のいかなるメディアもが含まれる。
【００１９】
本明細書で使用される場合、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行するソフトウェアオブジェクトまたはルーチンを指すことができる。本明細書で説明する、異なるコンポーネント、モジュール、エンジンおよびサービスを、コンピューティングシステム上で（例えば、別々のスレッドとして）実行するオブジェクトまたはプロセスとして実装することができる。本明細書で説明するシステムおよび方法は好ましくはソフトウェアにおいて実装されるが、ソフトウェアおよびハードウェア、またはハードウェアにおける実装もまた可能であり、企図される。
【００２０】
コンピューティングシステム１００はまた通信チャネル１１２も含み、通信チャネル１１２は、ホストがネットワーク１２０を介して他のシステムおよびデバイスと通信することができるようにする。通信チャネル１１２は通信メディアの例である。通信メディアは通常、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを、搬送波または他の移送メカニズムなどの変調データ信号において実施し、いかなる情報配信メディアをも含む。例として、限定ではなく、通信メディアには、有線ネットワークおよび直接有線接続などの有線メディア、ならびに、音響、無線、赤外線および他の無線メディアなどの無線メディアが含まれる。本明細書で使用される場合、コンピュータ可読メディアという用語は、ストレージメディアおよび通信メディアを含む。
【００２１】
コンピューティングシステム１００はまた、キーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなど、入力コンポーネント１１４も有する場合がある。出力コンポーネント１１６には、画面ディスプレイ、スピーカー、プリンターなど、および、これらを駆動するためのレンダリングモジュール（しばしば「アダプタ」と呼ばれる）が含まれる。コンピューティングシステム１００は電源１１８を有する。これらのすべてのコンポーネントは当技術分野で周知であり、ここで詳細に論じる必要はない。
【００２２】
図２は、ネットワーク環境２００を例示し、これにおいて２つのコンピューティングシステム（図２では「実装コンピューティングシステム」と称する）は特定のタスクを実施するために通信する。詳細には、実装コンピューティングシステム２０１は実装コンピューティングシステム２０２と通信する。特定のタスクを実施するために、コンピューティングシステム２０１および２０２はメッセージを特定の交換のパターン２３０において交換する。特定のメッセージ交換のパターンは、どのコンピューティングシステムがどのメッセージをメッセージ交換におけるいずれかの所与の時点で送信するべきであるかを定義する。メッセージ交換パターンは、実施されるべきタスク、および、メッセージを交換するために使用されたプロトコルに依存する。本発明の原理は、メッセージ交換パターンについてのいかなる所与の構造にも限定されない。
【００２３】
各実装コンピューティングシステムは、メッセージ交換パターンに従事するメッセージ交換パターンアプリケーションを有する。例えば、実装コンピューティングシステム２０１はメッセージ交換パターンアプリケーション２１０を実行するが、実装コンピューティングシステム２０２はメッセージ交換パターンアプリケーション２２０を実行する。実装コンピューティングシステム２０１および２０２を、コンピューティングシステムのために上述のように構造化することができるが、これは必要ではない。本明細書および特許請求の範囲では、「コンピューティングシステム」は電子メッセージを処理するための能力を有するいずれかのデバイスまたはシステムとして定義される。
【００２４】
メッセージ交換パターン内のメッセージは、すべてがコンピューティングシステム内の同じコンポーネントによって生成および消費される必要はない。例えば、あるメッセージを、２つのコンピューティングシステムの間のプロトコルレベルで適切な調整を可能にするためのプロトコルレベルメッセージにすることができる。他のメッセージを、所望のタスクを実施するために必要とされたデータの交換を可能にするための、アプリケーションレベルメッセージにすることができる。一実施形態では、メッセージ交換パターン内のプロトコルレベルメッセージは、ウェブサービス調整（ＷＳ調整）およびＷＳトランザクション仕様によって管理され、これらは当業者に知られている。
【００２５】
図２は、メッセージ交換パターンアプリケーションが最終的に動作する環境を例示する。しかし、メッセージ交換パターンアプリケーションをテストして、アプリケーションの出荷に先立って適切なオペレーションを保証することが望ましい。アプリケーションをテストするにはしばしばかなりの時間を要するが、これは、しばしば新しいコードを、シミュレーションを実行するために作成する必要があるからである。さらに、メッセージ交換パターンアプリケーションをテストすることは特に困難であり、これは、オペレーションが本質的に分散されており、しばしばトラストの境界を越えて分散されるからである。例えば、メッセージ交換パターンアプリケーション２１０を作成するものは、他のコンピューティングシステム上で実行するべきであるメッセージ交換パターンアプリケーション２２０へのアクセスを有していない場合がある。さらに、メッセージ交換パターンアプリケーション２２０の所有者の協調を、テストのために獲得することが困難である場合がある。
【００２６】
したがって、本発明の原理はあるメカニズムを提供し、それにより、広範囲に渡る人がコードを作成することを必要とせずに、また、別の組織の協調と共に、または場合によってはまったくいかなるネットワーク環境内でもテストを発生させることを必要とせずに、テストコンピューティングシステムがメッセージ交換パターンの処理をシミュレートすることができるようにする、コードが自動的に生成される。図３は、このような自動コード生成が発生することができる環境を例示する。
【００２７】
図３を参照すると、コード生成コンピューティングシステム３０１はメッセージ交換パターン定義３０２にアクセスする。シミュレーションコード生成モジュール３０３はメッセージ交換パターン定義３０２を使用して、シミュレーションコード３０４を生成する。図４を参照すると、このシミュレーションコード３０４を次いで、テストコンピューティングシステム４０１によって、シミュレータ４０２によって使用して、メッセージ交換パターン定義をテストすることができる。このオペレーションに関するより多くのものを、以下で、最初にメッセージ交換パターン定義３０２をさらに詳細に説明した後、さらに説明する。
【００２８】
メッセージ交換パターンには、いくつかの状態がある。メッセージ交換パターン定義はこれらの状態を定義する。各状態について、送信される可能性のあるゼロまたはそれ以上の有効メッセージタイプ、および、受信される可能性のあるゼロまたはそれ以上の有効メッセージタイプが存在するようになる。有効メッセージタイプの受信または送信により、メッセージ交換パターンは異なる状態に遷移する可能性がある。メッセージ交換パターンは、各状態について有効メッセージタイプを指示し、ある有効メッセージタイプが与えられると何の状態遷移が発生するべきであるかを指示する。メッセージ交換パターン定義はいかなるフォーマットであってもよい。しかし、コードを自動的に生成するためにメッセージ交換パターンを解釈するために、メッセージ交換パターン定義は、より容易に解析することができるフォーマットである場合、有利である。このようなフォーマットの一例は、ウェブサービス記述言語（ＷＳＤＬ）規格によって定義される。
【００２９】
メッセージ交換パターン定義はまた、例えば、ある状態が与えられるとある有効メッセージが受信または送信されるチャンスの確率をも含むことができる。メッセージ交換パターン定義はまた、ある状態が与えられると適用されるべきタイミングポリシーをも課すことができる。例えば、タイミングポリシーは、応答がある期間内に受信されない場合、以前の要求がキャンセルされるべきであることを指示することができる。
【００３０】
メッセージ交換パターン定義を状態遷移木に縮小することによって、メッセージ交換パターン定義をよりよく理解することができる。状態遷移木は、メモリ内でコード生成プロセス中に構築することができるが、これは必要ではない。メッセージ交換パターン状態遷移木には、メッセージ交換パターン内の各状態のためのノードが含まれる。各ノードについて、有効メッセージタイプ、および、どのコンピューティングシステムがどのメッセージのタイプを送信することができるかのリストが提供される。各有効メッセージタイプについて、特定のメッセージを受信する（または、場合によっては送信する）場合にどの状態に遷移するべきであるかの識別もある。
【００３１】
木の構造は、まったくメッセージ交換パターンによって決まり、メッセージ交換パターンは、実行されるタスクによって決まる。すべての可能な状態遷移木を例示することは、数限りないメッセージ交換パターンのために、不可能となる。多数をリストすることは、本発明の原理を曖昧にするであろう。しかし、１つのメッセージ交換パターンを、例示のためにのみ本明細書で説明する。本発明の原理はいかなるメッセージ交換パターンにも適用されることは、当業者には（本明細書を読んだ後に）理解されよう。
【００３２】
そのため、図５は一例のメッセージ交換パターン状態遷移木５００を例示する。状態遷移木５００は、いくつかの状態５０１ないし５０７を含む。コンピューティングシステムの１つからのメッセージの送信は、実線の矢印によって表された状態遷移の結果となる。他方では、コンピューティングシステムの他方からのメッセージの送信は、破線の矢印によって表された状態遷移の結果となる。今の時点では、矢印５４１および５４２ならびに確率のマークは無視し、これらの項目については以下で図６に関してさらに説明する。図５を参照すると、あるコンピューティングシステムがメッセージを送信し、これは状態遷移５１１ないし５１４の結果となり、他方のコンピューティングシステムがメッセージを送信し、これは状態遷移５２１ないし５２７の結果となる。各矢印は、その送信について有効である特定のメッセージタイプまたはメッセージタイプのグループに関連付けられる。
【００３３】
ＷＳ協調が使用されている場合、実装コンピューティングシステム２０１は最初に協調コンテキストメッセージを実装コンピューティングシステム２０２に送信することができる。実装コンピューティングシステム２０２は次いで、登録メッセージを実装コンピューティングシステム２０１に送信することができる。実装コンピューティングシステム２０１は次いで、登録受け入れメッセージを実装コンピューティングシステム２０２に送信する。この段階で、実装コンピューティングシステム２０１は「コーディネーター」の役割を担い、実装コンピューティングシステム２０２は「参加者」の役割を担い、メッセージ交換はアクティブ状態５０１にある。図５の実線は、コーディネーター（すなわち、実装コンピューティングシステム２０１）がメッセージを送信することによって引き起こされる状態遷移を表し、図５の破線は、参加者（すなわち、実装コンピューティングシステム２０２）がメッセージを送信することによって引き起こされる状態遷移を表す。
【００３４】
アクティブ状態５０１から、実装コンピューティングシステム２０１はキャンセルメッセージを実装コンピューティングシステム２０２に送信することができる。これは、実装コンピューティングシステム２０１が、以前に要求されたオペレーションをキャンセルすることを選択したことを表し、結果として、アクティブ状態５０１からキャンセル状態５０２への遷移となり、これは実線の矢印５１１で表される。より一般的には、送信側コンピューティングシステムは、遷移に関連付けられたメッセージが送信されるとすぐに、状態遷移を認識する。受信側コンピューティングシステムは、遷移に関連付けられたメッセージが受信されるとすぐに、状態遷移を認識する。したがって、実装コンピューティングシステム２０１によって認識される状態遷移図の追跡された進行、および、実装コンピューティングシステム２０２によって認識される状態遷移図の追跡された進行において、ある一時的な違いがある場合がある。この特定の遷移５１１で、実装コンピューティングシステム２０１は、キャンセルメッセージを送信するとすぐに、この遷移５１１を認識する。実装コンピューティングシステム２０２は、キャンセルメッセージを受信するとすぐに、遷移５１１を認識する。
【００３５】
代替として、アクティブ状態５０１にある間、実装コンピューティングシステム２０１は、エグジットメッセージを実装コンピューティングシステム２０２から受信する場合がある。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２がもはやメッセージ交換パターン内で参加しないことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１へのエグジットメッセージの送信は、アクティブ状態５０１から終了状態５０５への遷移５２２の結果となる。
【００３６】
代替として、アクティブ状態５０１にある間、実装コンピューティングシステム２０１は、完了メッセージを実装コンピューティングシステム２０２から受信する場合がある。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２が以前の要求に関係する処理を完了したことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１への完了メッセージの送信は、アクティブ状態５０１から完了状態５０３への遷移５２３の結果となる。
【００３７】
代替として、アクティブ状態５０１にある間、実装コンピューティングシステム２０１は、障害メッセージを実装コンピューティングシステム２０２から受信する場合がある。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２がアクティブ状態５０１から障害を起こしたことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１への障害メッセージの送信は、アクティブ状態５０１から障害状態５０７への遷移５２６の結果となる。
【００３８】
キャンセル状態５０２にある間、実装コンピューティングシステム２０１は、キャンセル済メッセージを実装コンピューティングシステム２０２から受信することができる。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２が、以前に要求されたオペレーションが実装コンピューティングシステム２０１の要求でキャンセルされたことを確認することを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１へのキャンセル済メッセージの送信は、キャンセル状態５０２から終了状態５０５への遷移５２１の結果となる。
【００３９】
完了状態５０３にある間、実装コンピューティングシステム２０１は、クローズメッセージを実装コンピューティングシステム２０２に送信することができる。このメッセージは実装コンピューティングシステム２０２に、以前の要求が成功したことを通知する。したがって、実装コンピューティングシステム２０１から実装コンピューティングシステム２０２へのクローズメッセージの送信は、完了状態５０３からクローズ状態５０４への遷移５１２の結果となる。
【００４０】
クローズ状態５０４にある間、実装コンピューティングシステム２０１は、クローズ済メッセージを実装コンピューティングシステム２０２から受信することができる。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２がオペレーションを成功して終了させたことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１へのクローズ済メッセージの送信は、クローズ状態５０４から終了状態５０５への遷移５２４の結果となる。
【００４１】
また、完了状態５０３にある間、実装コンピューティングシステム２０１は、補正メッセージを実装コンピューティングシステム２０２に送信することができる。これにより実行中の作業が妥当な範囲まで解除されるべきであることを実装コンピューティングシステム２０２に通知する。したがって、実装コンピューティングシステム２０１から実装コンピューティングシステム２０２への補正メッセージの送信は、完了状態５０３から補正状態５０６への遷移５１３の結果となる。
【００４２】
補正状態５０６にある間、実装コンピューティングシステム２０１は、補正済メッセージを実装コンピューティングシステム２０２から受信することができる。このメッセージは実装コンピューティングシステム２０１に、補正処置が成功したことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１への補正済メッセージの送信は、補正状態５０６から終了状態５０５への遷移５２５の結果となる。
【００４３】
代替として、補正状態５０６にある間、実装コンピューティングシステム２０１は、障害メッセージを実装コンピューティングシステム２０２から受信する場合がある。このメッセージは実装コンピューティングシステム２０１に、実装コンピューティングシステム２０２が補正状態５０６から障害を起こしたことを通知する。したがって、実装コンピューティングシステム２０２から実装コンピューティングシステム２０１への障害メッセージの送信は、補正状態５０６から障害状態５０７への遷移５２７の結果となる。
【００４４】
障害状態５０７にある間、実装コンピューティングシステム２０１は、フォゲットメッセージを実装コンピューティングシステム２０２に送信することができる。このメッセージは実装コンピューティングシステム２０２に、実装コンピューティングシステム２０１が障害に気付いていることを通知する。したがって、実装コンピューティングシステム２０１から実装コンピューティングシステム２０２へのフォゲットメッセージの送信は、障害状態５０７から終了状態５０５への遷移５１４の結果となる。
【００４５】
図６は、コード生成コンピューティングシステム３０１が、テストコンピューティングシステム４０１の機能をテストして、メッセージ交換パターンアプリケーションを使用して、メッセージ交換パターンに従うメッセージトランザクションに従事する、コードを自動的に生成する方法６００の流れ図を例示する。このコードは、テストコンピューティングシステム４０１が他の組織とのメッセージトランザクションに従事することを必要とすることなく、または、場合によっては他のコンピューティングシステムとの通信を必要とすることもなく、シミュレーションを可能にする。方法６００を、図５の特定の例のメッセージ交換パターン定義をしばしば参照して説明する。
【００４６】
コード生成コンピューティングシステムは、上述のメッセージ交換パターン定義など、メッセージ交換パターン定義にアクセスする（ステップ６０１）。次いで、コード生成コンピューティングシステムは、メッセージ交換パターン定義を使用してメッセージ交換パターンシミュレーションコードを自動的に生成するための、機能的な結果志向のステップを実行する（ステップ６１０）。ステップ６１０には、この結果を実施するいかなる対応する特定のステップもが含まれる場合がある。しかし、例示の実施形態では、ステップ６１０には、対応するステップ６１１および６１２が含まれる。
【００４７】
具体的には、メッセージ交換パターン定義が、有効送信メッセージがテストコンピューティングシステムによって送信されることを可能とする各状態について、コード生成コンピューティングシステムは、少なくとも有効送信メッセージの送信をシミュレートするコードを自動的に生成する（ステップ６１１）。例えば、図５のアクティブ状態５０１を考察する。アクティブ状態５０１は１つの有効メッセージが送信されることを許可し、これはキャンセルメッセージである。キャンセルメッセージが送信される３％のチャンスがあるように示される。この割合を、メッセージ交換パターン定義によって規定することができ、および／または、ユーザーもしくはコード生成コンピューティングシステムによって規定することができる。この送信に関連付けられた割合は、テストプロセス中に経時的に、動的に変化する場合がある。キャンセルメッセージの条件付き送信をシミュレートするために、コード生成コンピューティングシステムは、以下の擬似コード文書に従うコードを生成することができ、この擬似コード文書には後の説明を容易にするために行番号が付加される。
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.    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.   }
【００５０】
状態５０５への適切な状態遷移を有するエグジットメッセージの受信をシミュレートするため（行１０〜１３を参照）、状態５０３への適切な状態遷移を有する完了メッセージの受信をシミュレートするため（行１４〜１７を参照）、および、状態５０７への適切な状態遷移を有する障害メッセージの受信をシミュレートするため（行１８〜２１を参照）の、条件付きで実行される擬似コードの追加に留意されたい。
【００５１】
加えて、無効メッセージの送信または受信を、発生の正の確率をある無効メッセージの送信または受信に割り当てることによって、シミュレートすることができる。これらの無効メッセージをメッセージ交換パターン定義によって規定することはできず、これは、これらの無効メッセージがメッセージ交換パターンに従わないからである。その代わりに、これらの無効メッセージを、ユーザーによって、あるいはコード生成コンピューティングシステムによって入力することができる。例えば、アクティブ状態５０１にある間、無効メッセージが送信される場合があり、これを矢印５４１によって示す（７％の発生のチャンスを有する）。また、無効メッセージが受信される場合もあり、これを矢印５４２によって示す（３％の発生のチャンスを有する）。無効メッセージの受信および送信をシミュレートすることにより、このシミュレーションで、メッセージ交換パターンへの不適合に対処しなければならない大変実際的な確率をテストすることができる。類似のコードを、これらの無効メッセージについても自動的に生成することができる。例えば、以下の擬似コードは、前の例を拡張して、無効メッセージの送信（行２５〜２７を参照）および受信（行２２〜２４を参照）を条件付きでシミュレートするコードを生成する。
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.    }
【００５２】
この生成プロセスをまた、他の状態（例えば、状態５０２ないし５０７）についてのサブルーチンも生成するように実行することもでき、これらもまたそれら自体の分岐確率を有することができる。このコード生成プロセスは、基本プログラム（例えば、プログラム「メイン」）を生成すること、各状態についてのサブルーチンを生成すること、多数のイベントが発生する場合のある各状態について乱数を生成すること、および、次いでイベントを乱数に基づいて条件付きで実行することを含む。これは非常に手続き的なプロセスであり、判断コールについてはほとんど関係しないので、このコード生成プロセスを高度に自動化することができる。いかなるユーザーの介入も、ある場合は些細なものとなる。例えば、ユーザーは、各有効メッセージタイプについて発生の確率を推定し、無効メッセージ受信または送信が発生する可能性があるかどうかを（関連の確率と共に）指示する必要がある場合がある。しかし、ユーザーが実際にコード自体を作成する必要はなくなる。したがって、コードはより容易に生成される。
【００５３】
さらに、「送信」および「受信」機能を、単に、メッセージの送信および受信が実際の配置中に発生するであろう場合にシミュレートするように、作成することができる。したがって、メッセージ交換パターンアプリケーションをテストするために、最終的にメッセージ交換パターンに関連するであろう他の組織の協調に依拠する必要はない。一実施形態では、送信および受信自体をシミュレートして、シミュレーションの結果として実際のネットワークトラフィックが生じないようにし、それによりネットワークリソースを保つようにすることができる。
【００５４】
本発明を、その精神または本質的な特性から逸脱することなく、他の特定の形態において実施することができる。説明した実施形態は、あらゆる点で限定的ではなく例示的としてのみ見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の同意義の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
【００５５】
主張し、米国特許証による保護が望まれるものは、以下の通りである。
【図面の簡単な説明】
【００５６】
【図１】本発明の機能を実施することができる、適切なコンピューティングシステムを例示する図である。
【図２】２つのコンピューティングシステムが、それぞれメッセージ交換パターンアプリケーションを使用してメッセージ交換パターンを実施する、ネットワーク環境を例示する図である。
【図３】メッセージ交換パターンをテストコンピューティングシステム上で内部でシミュレートするコードを自動的に生成する、コード生成コンピューティングシステムを例示する図である。
【図４】コード生成コンピューティングシステムによって生成されたシミュレーションコードを使用して、メッセージ交換パターンを内部でシミュレートする、テストコンピューティングシステムを例示する図である。
【図５】任意のメッセージ交換パターン内の進行を追跡するために使用することができる、状態遷移木を例示する図である。
【図６】コード生成コンピューティングシステムが、メッセージ交換パターンを内部でシミュレートするシミュレーションコードを自動的に生成するための方法の流れ図を例示する図である。
【符号の説明】
【００５７】
１０２  処理装置
１０８  リムーバブルストレージ
１１０  非リムーバブルストレージ
１１２  通信チャネル
１１４  入力コンポーネント
１１６  出力コンポーネント
１１８  電源
１２０  ネットワーク
【図１】
2005209209.tif 000003
【図２】
2005209209.tif 000004
【図３】
2005209209.tif 000005
【図４】
2005209209.tif 000006
【図５】
2005209209.tif 000007
【図６】
2005209209.tif 000008