(57)【要約】【課題】  ディスパッチする前に挿入されたメッセージ修正を使用して、動的に、コード作成するために受信したメッセージをディスパッチする機構を提供すること。【解決手段】  メッセージを受信した後、ディスパッチ用コンポーネントに渡される前、そのメッセージの受信経路内に配置された１つまたは複数の受信経路コンポーネントを通過する。１つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、その修正済みメッセージからの情報を使用し、ディスパッチを実行する。ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。そのメッセージにとって理想的な、専門的で柔軟な処理が可能となる。【選択図】  図４
2005222533.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有し、さらに処理を行うように、受信したメッセージを１つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含む受信コンピューティングシステムを含む該ネットワーク環境において、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得できない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法であって、
メッセージを受信する動作と、
前記ディスパッチ用コンポーネントに渡される前に前記メッセージの受信経路内に配置された１つまたは複数の受信経路コンポーネントによって前記受信したメッセージを通過させる動作と、
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが、少なくとも１つの修正により前記メッセージを修正する動作と、
前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と、
前記ディスパッチ機構が、前記少なくとも１つの修正から取得可能な情報を使用し、さらに処理するように前記メッセージを１つまたは複数のメソッドのグループにディスパッチする動作と
を備えたことを特徴とする方法。
【請求項２】
前記メッセージは、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）エンベロープを含み、
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、追加情報を有するＳＯＡＰヘッダを前記メッセージに追加する動作を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
少なくとも１つのデータフィールドを前記メッセージに追加する動作を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
前記メッセージ内の少なくとも１つのデータフィールドを修正する動作を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
少なくとも１つのデータフィールドを前記メッセージから削除する動作を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
受信コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
前記受信コンポーネント以外の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
単一の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが前記メッセージを修正する動作は、
複数の受信経路コンポーネントが前記メッセージを修正する動作を含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記少なくとも１つの修正は、前記メッセージがいずれの接続を介して受信したかを識別する接続識別を含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記少なくとも１つの修正は、前記メッセージを受信するために使用されたプロトコル種別を含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記少なくとも１つの修正は、前記メッセージが受信した時刻を含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記少なくとも１つの修正は、前記メッセージの取扱い優先順位に関する情報を含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記少なくとも１つの修正は、前記メッセージの送信者の状況に関する情報を含むことを特徴とする請求項１に記載の方法。
【請求項１５】
前記少なくとも１つの修正は、前記コンピューティングシステムの負荷に関する情報を含むことを特徴とする請求項１に記載の方法。
【請求項１６】
前記ディスパッチ機構が、前記少なくとも１つの修正を使用し、さらに処理するように前記メッセージを１つまたは複数のメソッドのグループにディスパッチする動作は、
前記メッセージに対する前記少なくとも１つの修正内に存在する情報を参照するディスパッチ規則にアクセスする動作と、
前記ディスパッチ規則に従って前記メッセージをディスパッチする動作と
を含むことを特徴とする請求項１に記載の方法。
【請求項１７】
前記ディスパッチ規則は、１つまたは複数のＸｐａｔｈステートメントを使用して表現されることを特徴とする請求項１６に記載の方法。
【請求項１８】
さらに処理するように、受信したメッセージを１つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含み、ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有する受信コンピューティングシステムを含むネットワーク環境において使用するコンピュータプログラム製品であって、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得されない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法を実行し、前記コンピューティングシステムの１つまたは複数のプロセッサによって実行されると、
メッセージを受信する動作と、
少なくとも１つの修正により前記メッセージを修正する動作と、
前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と、
前記ディスパッチ機構が、前記少なくとも１つの修正から取得可能な情報を使用し、さらに処理するために前記メッセージを１つまたは複数のメソッドのグループにディスパッチすることができるように、１つまたは複数の他の受信経路コンポーネントから前記ディスパッチ機構に少なくとも間接的に、前記修正済みメッセージを提供する動作と
を前記コンピューティングシステムに実行させるコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読取可能な媒体を備えたことを特徴とするコンピュータプログラム製品。
【請求項１９】
前記メッセージは、シンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）エンベロープを含み、
前記１つまたは複数の受信経路コンポーネントの少なくとも１つを実行して前記メッセージを修正する動作を実行するためのコンピュータ実行可能命令は、追加情報を有するＳＯＡＰヘッダを前記メッセージに追加する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２０】
前記少なくとも１つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
少なくとも１つのデータフィールドを前記メッセージに追加する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２１】
前記少なくとも１つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
前記メッセージ内の少なくとも１つのデータフィールドを修正する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２２】
前記少なくとも１つの修正によりメッセージを修正する動作を実行するためのコンピュータ実行可能命令は、
少なくとも１つのデータフィールドを前記メッセージから削除する動作を実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２３】
前記少なくとも１つの修正は、前記メッセージがいずれの接続を介して受信したかを識別する接続識別を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２４】
前記少なくとも１つの修正は、前記メッセージを受信するために使用されたプロトコル種別を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２５】
前記少なくとも１つの修正は、前記メッセージが受信した時刻を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２６】
前記少なくとも１つの修正は、前記メッセージの取扱い優先順位に関する情報を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２７】
前記少なくとも１つの修正は、前記メッセージの送信者の状況に関する情報を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２８】
前記少なくとも１つの修正は、前記コンピューティングシステムの負荷に関する情報を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項２９】
前記１つまたは複数のコンピュータ読取可能な媒体は、物理メモリ媒体を含むことを特徴とする請求項１８に記載のコンピュータプログラム製品。
【請求項３０】
前記物理メモリ媒体は、永続メモリを含むことを特徴とする請求項２９に記載のコンピュータプログラム製品。
【請求項３１】
前記物理メモリ媒体は、システムメモリを含むことを特徴とする請求項２９に記載のコンピュータプログラム製品。
【請求項３２】
ネットワーク環境内の他のコンピューティングシステムからメッセージを受信する機能を有し、さらに処理するように受信したメッセージを１つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを含む受信コンピューティングシステムを含むネットワーク環境において、前記ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性がある場合でも、および該情報が存在しないか、または前記受信コンピューティングシステムによって受信したメッセージから容易に取得されない場合であっても、前記ディスパッチ機構により受信したメッセージをディスパッチする方法であって、
前記ディスパッチ機構に提供される前に、少なくとも１つの修正で前記受信したメッセージを修正するステップと、
前記ディスパッチ機構が、前記少なくとも１つの修正から取得可能な情報を使用し、さらに処理するように前記メッセージを１つまたは複数のメソッドのグループにディスパッチする動作と
を含むことを特徴とする方法。
【請求項３３】
前記受信したメッセージを修正するステップは、
前記メッセージを受信する動作と、
前記ディスパッチ用コンポーネントに渡される前に、前記メッセージの受信経路内に配置された１つまたは複数の受信経路コンポーネントによって前記受信したメッセージを送る動作と、
前記１つまたは複数の受信経路コンポーネントの少なくとも１つが、少なくとも１つの修正で前記メッセージを修正する動作と、
前記ディスパッチ機構が前記修正済みメッセージを前記受信経路から受信する動作と
を含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
１つまたは複数のプロセッサと、
システムメモリと、
コンピュータ実行可能命令を有する１つまたは複数のコンピュータ読取可能な媒体であって、前記コンピュータ実行可能命令は、１つまたは複数のプロセッサによって実行されると、
ディスパッチ用コンポーネントに渡される前に前記メッセージの受信経路内に配置される１つまたは複数の受信経路コンポーネントであって、受信経路コンポーネントの少なくとも１つが、少なくとも１つの修正で前記メッセージを修正するように構成された受信経路コンポーネントと、
さらに処理するように、受信したメッセージを１つまたは複数のメソッドのグループにディスパッチし、および前記少なくとも１つの修正から取得可能な情報を使用し、前記メッセージをディスパッチするディスパッチ用コンポーネントと
を前記コンピューティングシステムに前記システムメモリ内でインスタンス化させる１つまたは複数のコンピュータ読取可能な媒体と
を備えたことを特徴とするコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング技術に関し、より詳細には、ディスパッチする前に挿入された（ｉｎｔｅｒ−ｐｏｓｉｔｉｏｎｅｄ）メッセージ修正を使用して、動的に、コード作成する（ｃｏｄｅ）ために受信したメッセージをディスパッチする機構に関する。
【背景技術】
【０００２】
コンピューティング技術により、人々の仕事と遊びの方法は変容することとなった。現在、コンピューティングシステムは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットＰＣ、携帯情報端末（ＰＤＡ）、家庭向け装置などを含めて、多種多様な態様で提供されている。コンピューティングシステムは、その最も基本的な形として、システムメモリと、１つまたは複数のプロセッサとを備える。システムメモリ内のソフトウェアがプロセッサによって実行され、そのコンピューティングシステムの他のハードウェアに所望の機能を実行するように指示することができる。
【０００３】
ソフトウェアは通常、非常に複雑であり、数千、あるいは数百万行ものソースコードからコンパイルされ、または解釈される。ソフトウェア開発プロセスを少しでも秩序をもったものにするため、より特定の動作を実行する管理可能なサブルーチンまたはメソッドに、そのタスクを分割することができる。そのソフトウェアのより複雑な機能を全体として実行するため、メソッド同士を相関付ける（ｉｎｔｅｒｒｅｌａｔｅ）。メッセージ処理システムでは、受信したメッセージは、それがどのような周囲の関連事実によりアクセス可能であるかに応じて、１つまたは複数のこれらのメソッドの処理を行うディスパッチ機構（ｄｉｓｐａｔｃｈｉｎｇ  ｍｅｃｈａｎｉｓｍ）によってディスパッチされる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
最も適切なディスパッチを実行するためには、ディスパッチ用コンポーネントが可能な限り関連する情報にアクセスできる方が有利となるであろう。しかし、システム内のコンポーネントすべてが情報に等しくアクセスできるわけではない。たとえば、ディスパッチ機構は、メッセージがいずれの接続を介して受信したか、いずれのプロトコルを使用してメッセージを送達するか、メッセージ交換の履歴、現在のロードバランシング状態、メッセージが受信した時刻、メッセージの送信者の重要度などに関して直接情報を有していない可能性がある。さらに、関連情報がメッセージ自体の中に存在しないか、または少なくとも、メッセージから容易にはアクセスできない可能性がある。
【０００５】
したがって、より柔軟な適切にメッセージを処理を可能にするため、メッセージのディスパッチを実行する際ディスパッチ機構が以前には未知であった情報、またはアクセスするのが困難な情報を、より容易に受け入れることが可能となる機構が有利となりうるのである。
【課題を解決するための手段】
【０００６】
従来技術に関する上述の問題は、ネットワーク環境内の他のコンピューティングシステムからメッセージを受信することが可能な受信コンピューティングシステムを含むネットワーク環境内で実施することができる本発明の原理によって解決される。受信コンピューティングシステムは、さらに処理するために、受信したメッセージを１つまたは複数のメソッドのグループにディスパッチするディスパッチ用コンポーネントを備える。本発明の原理は、たとえディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性があるにせよ、また例えその情報が存在しない、あるいは受信コンピューティングシステムによって受信したメッセージから容易に得られないとしても、ディスパッチ用コンポーネントが受信したメッセージをディスパッチする機構に関する。
【０００７】
メッセージを受信した後に、そのメッセージは、ディスパッチ用コンポーネントに渡される前にそのメッセージの受信経路内に配置された１つまたは複数の受信経路コンポーネントを通過する。１つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。そのような情報には、たとえば、そのメッセージがいずれの接続を介して受信したか、そのメッセージを受信するために使用されたプロトコルの種類、そのメッセージが受信した時刻、そのメッセージの取扱い優先順位、そのメッセージの送信者の状況、そのコンピューティングシステムの負荷、またはディスパッチに役立つ任意の他の情報が含まれる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、（潜在的に修正それ自体を含め）その修正済みメッセージからの情報を使用してディスパッチを実行する。
【０００８】
ディスパッチ用コンポーネントにとって役立つ追加情報を含むようにメッセージを修正するため、ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。したがって、そのメッセージにとって理想的な、専門的で柔軟な処理が可能となる。たとえば、送信者が大口顧客であった場合、送信者が小口顧客であった場合と異なるコードによって特別に処理することができる。この場合、顧客データベースにアクセスできる受信経路内のコンポーネントは、適切な顧客状況をメッセージに追加することができ、それにより、メッセージをディスパッチ用コンポーネントによって適切にディスパッチすることができる。
【０００９】
本発明の追加の特徴および利点は、以下の説明で述べられることになり、また一部には、その説明から自明となり、あるいは、本発明を実施することによって学習することができる。本発明の特徴および利点は、特許請求の範囲で特に指摘されている手段および組合せによって実現し獲得することができる。本発明のこれら、および他の特徴は、以下の説明と特許請求の範囲から、より完全に明らかとなり、あるいは以下で述べられている本発明を実施することによって学習することができる。
【００１０】
本発明の上記の、また他の利点および特徴を得ることができるやり方を述べるため、簡単に上述した本発明について、添付の図面に示されているその特定の実施形態を参照することによって、より具体的に述べる。これらの図面は、本発明の典型的な実施形態を示すにすぎず、したがってその範囲を制限するものとみなすべきでないことを理解して、本発明について、添付の図面を使用することによって追加の特殊性および詳細と共に述べ、かつ説明する。
【発明を実施するための最良の形態】
【００１１】
本発明の原理は、メッセージを受信した後に、そのメッセージが、ディスパッチ用コンポーネントに渡される前に受信経路内に配置された１つまたは複数の受信経路コンポーネントを通過する機構に関する。１つまたは複数の受信経路コンポーネントは、ディスパッチを実行するためにディスパッチ用コンポーネントにとって役立つ可能性がある情報を含むように、そのメッセージを修正することができる。ディスパッチ用コンポーネントは、修正されたメッセージを受け取り、（潜在的に修正それ自体を含め）その修正済みメッセージからの情報を使用してディスパッチを実行する。ディスパッチ用コンポーネントにとって役立つ追加情報を含むようにメッセージを修正するため、ディスパッチ用コンポーネントは、そのメッセージと共に行われるべき処理をより柔軟に識別することができる。したがって、そのメッセージとして理想的な、専門的で柔軟な処理を可能とすることができる。
【００１２】
図面では、同じ符号は同じ要素を指すが、本発明が好適なコンピューティング環境内で実施される様子が示される。以下の説明は、本発明の例示された実施形態に基づいており、本明細書で明示的に述べられていない代替の実施形態に関して、本発明を限定すると考えるべきでない。
【００１３】
以下の説明では、別段の表示がない限り、本発明について、１つまたは複数のコンピュータによって実行される動作や、演算を記号で表したものを参照して述べる。したがって、そのような動作および演算は、「コンピュータによって実行された」と呼ぶことができ、構造化された形でデータを表す電気信号をコンピュータの処理装置が操作することを含むことを理解されたい。この操作により、データが変換され、またはコンピュータのメモリシステム内の所定の場所においてデータが維持され、当業者には容易に理解できる方法で、コンピュータの演算が再構成され、または他の方法で変更される。データを維持するデータ構造は、データのフォーマットによって定義された特定の特性を有するメモリの物理的配置である。しかし、本発明について前述の文脈で述べるが、当業者であれば以下で述べる様々な動作および演算をハードウェアで実行することもできることを理解するように、何らかの限定を意味するものではない。図１は、これらのデバイスにとって使用可能なコンピュータアーキテクチャの例の概略図である。
【００１４】
図１のアーキテクチャは、説明のための好適な環境の一例にすぎず、本発明の使用または機能の範囲についてどのような限定を暗示するものでもない。コンピューティングシステムは、図１に示されている任意の１つのコンポーネントまたはコンポーネントの組合せに関してどのような依存または要件もないものと解釈すべきである。
【００１５】
本発明は、多数の他の汎用または専用コンピューティング環境もしくは構成、または通信環境もしくは構成と共に動作可能である。本発明と共に使用するのに適した周知のコンピューティングシステム、環境、構成の例には、それだけには限らないが、移動電話、ポケットコンピュータ、パーソナルコンピュータ、サーバ、マルチプロセッサシステム、マイクロプロセッサをベースとするシステム、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境が含まれる。
【００１６】
コンピューティングシステム１００は、一般に、その最も基本的な構成では、少なくとも１つの処理装置１０２およびメモリ１０４を含む。メモリ１０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはその２つの何らかの組合せとすることができる。この最も基本的な構成が、図１に破線１０６によって示されている。
【００１７】
記憶媒体デバイスは、追加の特徴および機能を有することができる。たとえば、それだけには限らないが、ＰＣＭＣＩＡカード、磁気ディスクおよび光ディスク、ならびに磁気テープを含めて、追加の記憶装置（取外し式および固定式）を含むことができる。そのような追加の記憶装置は、図１に、取外し式記憶装置１０８および固定式記憶装置１１０によって示されている。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなど情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、取外し式と固定式の媒体が含まれる。メモリ１０４、取外し式記憶装置１０８、および固定式記憶装置１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけには限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク、他の光記憶、磁気カセット、磁気テープ、磁気ディスク記憶、または他の磁気記憶デバイス、および、所望の情報を記憶するために使用することができ、コンピューティングシステムによってアクセスすることができる任意の他の媒体が含まれる。
【００１８】
本明細書では、「モジュール」または「コンポーネント」という用語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指す可能性がある。本明細書に述べられている様々なコンポーネント、モジュール、エンジン、サービスは、（たとえば、別個のスレッドとして）コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして実装することができる。本明細書に述べられているシステムおよび方法は、ソフトウェアで実施されることが好ましいが、ソフトウェアとハードウェア、あるいはハードウェアで実施することも可能であり、そのように企図されている。
【００１９】
コンピューティングシステム１００はまた、ホストが、ネットワーク１２０を介して他のシステムおよびデバイスと通信することを可能にする通信チャネル１１２を含むことができる。通信チャネル１１２は、通信媒体の例である。通信媒体は、一般に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合する。限定ではなく例を挙げると、通信媒体は、有線ネットワークおよび直接配線接続など有線媒体と、音響、電波、赤外線および他の無線媒体など無線媒体とを含む。本明細書では、「コンピュータ読取可能な媒体」という用語は、記憶媒体と通信媒体を共に含む。
【００２０】
コンピューティングシステム１００はまた、キーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなど、入力コンポーネント１１４を備えることができる。出力コンポーネント１１６は、画面ディスプレイ、スピーカ、プリンタなど、また、それらを駆動するための（しばしば「アダプタ」と呼ばれる）出力（ｒｅｎｄｅｒｉｎｇ）モジュールを含む。コンピューティングシステム１００は、電源１１８を有する。これらのコンポーネントはすべて、当技術分野で知られており、ここで詳細に論じる必要はない。
【００２１】
図２は、本発明の原理に従って、協動して相互作用し、受信したメッセージの柔軟なディスパッチを実行することができる様々なコンポーネント２００を示す。この様々なコンポーネントは、図１のコンピューティングシステム１００の状況で実行されたとき、メモリ１０４内でインスタンス化され、および／または、たとえば取外し式記憶装置１０８および／または固定式記憶装置１１０など永続メモリ内で持続することができる。永続（ｐｅｒｓｉｓｔｅｎｔ）メモリとしては、たとえば磁気ディスクがある。
【００２２】
メッセージ２０１は、１つまたは複数の受信経路コンポーネントを含むメッセージ受信経路２０２内で受信される。たとえば、メッセージ受信経路２０２は、おそらくは水平省略記号２０２Ｂによって表された他のものの中でもとりわけ、受信経路コンポーネント２０２Ａを含むものとして示す。受信経路コンポーネントは、たとえば、接続層、暗号化層、アクセス制御層、環境解析層、接続マネージャ、アプリケーションプログラム、または、メッセージがディスパッチ用コンポーネント２０５に送られる前にメッセージ２０１にアクセスできる任意の他のコンポーネントとすることができる。たとえば図１のコンピューティングシステム１００のメモリ内で、様々な受信経路コンポーネントを実装することができる。
【００２３】
受信経路コンポーネントの少なくとも１つは、少なくとも１つの修正によりそのメッセージを修正するように構成される。修正されたメッセージを、追加された情報２０４と共に図２に修正済みメッセージ２０１’として示すが、この追加情報はそれによって示されたその修正によって表されるのである。この修正には、たとえば、１つまたは複数のデータフィールドの追加、１つまたは複数のデータフィールドの削除、および／または１つまたは複数のデータフィールドの修正が含まれる。たとえば、メッセージ２０１がシンプルオブジェクトアクセスプロトコル（ＳＯＡＰ）エンベロープであった場合、追加された情報２０４は、追加、削除または修正されたＳＯＡＰヘッダとすることができるが、本発明の原理によってメッセージ２０１の本文内のデータフィールドの修正が排除されることはない。この情報は、修正によって学習し、または取得することができる任意の新しい情報を示す。たとえば、ディスパッチ用コードは、その修正が何であったかではなく、修正が加えられたか否かに関心があるにすぎない可能性がある。
【００２４】
ディスパッチ用コンポーネント２０５は、修正済みメッセージ２０１’を受け取り、ディスパッチ規則２０６と（追加された情報２０４’を含む可能性がある）修正済みメッセージ２０１’からの情報とを使用し、１つまたは複数のメソッドのどのグループにそのメッセージを送信するか識別する。追加された情報２０４’は、デスクリプト（ｄｅｓｃｒｉｐｔ）とすることができる。図２の例では、修正済みメッセージ２０１’を、たとえば、さらに処理するためにメソッド２０７に送信することができる。受信経路コンポーネントは、ディスパッチ用コンポーネント２０５によって容易にアクセスすることができない、あるいはまったくアクセスすることができない情報にアクセスできる可能性がある。たとえば、受信経路コンポーネント２０２Ａによってアクセス可能な情報２０３Ａは、修正済みメッセージ２０１’によってアクセスすることができない場合があり得る。したがって、受信経路コンポーネントがメッセージ２０１に情報を追加することを可能にすることにより、ディスパッチ用コンポーネント２０５は、通常なら容易にアクセス（またはまったくアクセス）することができないはずの情報を使用し、どこにメッセージ２０１’をディスパッチするかについて、より知性をもって判断をすることができる。
【００２５】
図３は、ディスパッチ機構が受信したメッセージをディスパッチする方法３００のフローチャートを示すが、この方法を使用しても、ディスパッチ機構がディスパッチに関連する何らかの情報に直接アクセスできない可能性があり、また、その情報が存在しない、または受信コンピューティングシステムによって受信したメッセージから容易に得られない可能性がある。まず、メッセージが受信される（動作３０１）。次いで、そのメッセージは、ディスパッチ用コンポーネントに渡される前に、そのメッセージの受信経路内に配置された１つまたは複数の受信経路コンポーネントを通過する（動作３０２）。これが行われているとき、受信経路コンポーネントの少なくとも１つは、少なくとも１つの修正によりメッセージを修正する（動作３０３）。この修正は、たとえば、接続層、暗号化層、アクセス制御層、環境解析層、接続マネージャ、アプリケーションプログラム、またはディスパッチ用コンポーネントによって受信される前にメッセージの経路内にある任意の他のコンポーネントなど、受信経路コンポーネントの１つまたは複数によって実行することができる。ディスパッチ用コンポーネントは、考えられるメッセージ内の他の情報と共にメッセージの修正を受信し（動作３０４）、どこに修正済みメッセージをディスパッチするか判定するため、ディスパッチ規則のリストを評価する（動作３０５）。
【００２６】
図４は、修正済みメッセージを使用してディスパッチするための方法４００を示すフローチャートである。まず、ディスパッチ用コンポーネントは、メッセージに対する修正内に存在する情報を参照するディスパッチ規則にアクセスする（動作４０１）。次いで、ディスパッチ用コンポーネントは、ディスパッチ規則に従ってメッセージをディスパッチする。一実施形態において、メッセージは、階層構造化された文書とすることができる。その場合、ディスパッチ規則は、Ｘｐａｔｈステートメントを使用して表現することができるが、これは必ずしも必要ではない。
【００２７】
追加された情報２０４は、たとえば、メッセージがいずれの接続を介して受信したかを識別する接続識別情報とすることができる。これにより、ディスパッチ機構はメッセージを、そのインスタンスに対応する適切なコードインスタンスにディスパッチすることができるようになる。
【００２８】
またはこれに替えて、追加された情報は、たとえばメッセージを受信するために使用されたプロトコル種別とすることができる。これは、そのプロトコルにとって適切なコードに対してディスパッチする際の支援となるであろう。たとえば、特定のプロトコルに従うといわれるメッセージを妥当性検査するように、ある種のコードを適合させることができる。
【００２９】
追加された情報は、メッセージが受信した時刻を含むことができる。勤務時間外に受信した場合、勤務時間中に比べ、メッセージに対し一定の処理が実行されるであろう。この場合、受信時刻が与えられれば、ディスパッチ機構は適切なコードに対してディスパッチすることができる。
【００３０】
追加された情報は、取扱い優先順位を含むことができる。たとえば、大量の商品の注文を表すメッセージや、新規顧客からのメッセージは、優先順位が高いものと決定することができる。受信経路コンポーネントの１つは、顧客データベースにアクセスして取扱い優先順位を識別することが可能になる。したがって、ディスパッチ用コンポーネントは、たとえ受信したメッセージ自体に取扱い優先順位が指定されていなかったとしても、取扱い優先順位が与えられれば、適切なコードに対してディスパッチすることができる。
【００３１】
追加された情報はまた、送信者の状況に関する情報を含むことができる。たとえば、得意先顧客はある種の状況識別子を有することができ、新規顧客は別の状況識別子を有することができ、および小口顧客はさらに別の状況識別子を有することができる。この情報は、メッセージ送信者の状況が与えられれば、メッセージに追加して適切なディスパッチを可能にすることができる。
【００３２】
追加された情報はまた、コンピューティングシステムの現在のワークロードを含むことができる。受けている負荷が少ないコードに対してメッセージを送信することが適切な場合がある。
【００３３】
これらは、メッセージをディスパッチする際に有用となる可能性のある追加情報の諸例を示している。これらは、決して完全なリストとなるものではない。本発明の原理は、受信経路内にある間に、任意の様々な情報をメッセージに追加することを可能にすることであることを当業者なら（この説明を見直した後に）理解するであろう。したがって、この多種多様な情報を使用し、より柔軟かつ適切にメッセージをディスパッチすることができる。
【００３４】
本発明は、その精神または本質的な特徴から逸脱することなしに、他の特定の形態で実施することができる。上述の実施形態は、あらゆる面において限定的なものではなく、例示的なものにすぎないと見みすべきである。したがって、本発明の範囲は、上述の説明によってではなく、特許請求の範囲によって示される。特許請求の範囲と等価な意味および範囲内に入る変更はすべて、それらの範囲に包含すべきである。
【図面の簡単な説明】
【００３５】
【図１】本発明の特徴を実施することができる好適なコンピューティングシステムを示す図である。
【図２】本発明の原理に従って、協動して相互作用し、受信したメッセージの柔軟なディスパッチを実行することができる様々なコンポーネントを示す図である。
【図３】本発明の原理による、コンピューティングシステムが受信したメッセージの柔軟なディスパッチを実行する方法のフローチャートである。
【図４】修正されたメッセージを使用してディスパッチするための方法のフローチャートである。
【符号の説明】
【００３６】
１０２  処理装置
１０４  システムメモリ
１０８  取外し式記憶装置
１１０  固定式記憶装置
１１２  通信チャネル
１１４  入力コンポーネント
１１６  出力コンポーネント
１１８  電源
１２０  ネットワーク
【図１】
2005222533.tif 000003
【図２】
2005222533.tif 000004
【図３】
2005222533.tif 000005
【図４】
2005222533.tif 000006
【外国語明細書】
2005222533000001.pdf