(57)【要約】      （修正有）【課題】メッセージを送信するための最適メッセージ経路を動的に選択するメッセージ経路選択システムを提供する。【解決手段】様々な基準に従って、メッセージ経路を最適化する。直接メッセージ経路を使用して、インフラストラクチャメッセージングサーバを迂回するようにメッセージを導くことができる。インフラストラクチャメッセージング経路を、直接メッセージ経路の代わりとして、またはそれと並列的に使用することもできる。本システムによって、アプリケーションは、データ転送の直接モードおよびインフラストラクチャモードの両方のための単一の通信システムを使用することができる。インフラストラクチャメッセージ経路を迂回することができるので、メッセージ待ち時間と、送るメッセージの数を削減し、全体の帯域幅を向上させることができる。【選択図】図１
2006333486.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上の基準に基づいて送信元から送信先へメッセージを送信するために、複数の利用可能な経路から好ましい経路を動的に選択する方法であって、
前記メッセージを生成するステップと、
メッセージの送信先を自動的に決定するステップと、
前記メッセージの送信先に基づいて、少なくとも前記複数の利用可能な経路のうちのいくつかを自動的に決定するステップと、
前記メッセージの属性を使用して、前記メッセージを生成するステップに対してトランスペアレントに、前記好ましい配信経路を選択するステップと、
前記好ましい経路上で前記メッセージを前記送信先へ配信するステップとを含む、方法。
【請求項２】
前記メッセージの送信先を自動的に決定するステップは、
メッセージの内容を使用するステップ、および
前記メッセージを生成するステップによって提供された前記送信先のうちのいずれか１つを含む、請求項１に記載の方法。
【請求項３】
前記複数の利用可能な経路は、
直接通信経路と、
間接通信経路とのうちのいずれか１つ以上を備える、請求項１に記載の方法。
【請求項４】
前記直接通信経路は、
ブロードキャスト、
マルチキャスト、
ピアツーピア、
マルチ受信、および
パブリッシュ／サブスクライブという通信モードのうちの少なくとも１つ以上に対応している、請求項３に記載の方法。
【請求項５】
間接通信は、メッセージングシステムに対応している、請求項１に記載の方法。
【請求項６】
前記メッセージを前記送信先へ配信すると、前記好ましい経路を前記配信のために記憶して、前記好ましい経路を前記基準の一部として組み込むステップをさらに含む、請求項１に記載の方法。
【請求項７】
順位付け機能に基づいて、前記利用可能な経路を順位付けするステップと、
前記利用可能な経路の順位付け結果を前記基準の一部として組み込むステップとをさらに含む、請求項１に記載の方法。
【請求項８】
前記利用可能な経路を順位付けするステップは、
メッセージの前記属性を考慮するステップ、
前記メッセージを生成するステップの属性を考慮するステップ、および
前記利用可能な経路の属性を考慮するステップのうちのいずれか１つ以上を使用するステップを含む、請求項７に記載の方法。
【請求項９】
前記メッセージ属性は、
メッセージサイズ、
メッセージ暗号化、および
メッセージ内容のうちのいずれか１つ以上を備え、前記メッセージ内容は、音声、映像、およびテキストデータのうちのいずれか１つ以上を備える、請求項８に記載の方法。
【請求項１０】
前記メッセージを生成するステップの属性は、
前記メッセージを生成するステップの安全性、
性能要件、
配信保証要件、および
前記メッセージを生成するステップの待ち時間のうちのいずれか１つ以上を備える、請求項８に記載の方法。
【請求項１１】
前記利用可能な経路の属性は、
前記利用可能な経路がメッセージ配信の受領確認を提供するかどうか、
前記利用可能な経路の品質、
前記利用可能な経路の待ち時間、
前記利用可能な経路上でのデータ送信率、
前記利用可能な経路を使用するコスト、
前記利用可能な経路の輻輳、
前記利用可能な経路の安全性、
前記利用可能な経路の信頼性、
前記利用可能な経路が送信可能なデータの種類、および
既存のファイアウォールプロトコルへの到達可能性のうちのいずれか１つ以上を備える、請求項８に記載の方法。
【請求項１２】
前記好ましい配信経路を選択するステップは、前記メッセージを前記送信先に配信するための２つ以上好ましい経路を備える、請求項１に記載の方法。
【請求項１３】
前記メッセージ内容に基づいて、前記２つ以上の好ましい経路上で前記メッセージを配信するステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記２つ以上の好ましい経路は、安全な経路と、安全でない経路とを備える、請求項１２に記載の方法。
【請求項１５】
前記メッセージの送信先に前記メッセージを組み込むステップをさらに含む、請求項１３に記載の方法。
【請求項１６】
前記メッセージの送信先は、単一の信号送信先地点、および複数の送信先地点のいずれか１つを備える、請求項１に記載の方法。
【請求項１７】
前記メッセージの前記属性を継続的に監視して、少なくとも２つの好ましい配信経路を継続的に選択するステップと、
前記メッセージを少なくとも１つの送信先へ前記少なくとも２つの好ましい配送経路上で配送するために、必要に応じて、前記少なくとも２つの好ましい配信経路を交互に繰り返すステップとをさらに含む、請求項１に記載の方法。
【請求項１８】
前記送信先での前記メッセージの忠実度を確認するステップをさらに含む、請求項１に記載の方法。
【請求項１９】
１つ以上の基準に基づいて送信元から送信先へメッセージを送信するために、複数の利用可能な経路から好ましい経路を動的に選択するための、プログラムであって、
前記メッセージを生成する機能と、
前記メッセージの送信先を自動的に決定する機能と、
前記メッセージの送信先に基づいて、少なくとも前記複数の利用可能な経路のうちのいくつかを自動的に決定する機能と、
前記メッセージの属性を使用して、前記メッセージを生成する機能に対してトランスペアレントに、前記好ましい配信経路を選択する機能と、
前記好ましい経路上で前記メッセージを前記送信先へ配信する機能とをコンピュータに実現させるプログラム。
【請求項２０】
１つ以上の基準に基づいて送信元から送信先へメッセージを送信するために、複数の利用可能な経路から好ましい経路を動的に選択するためのメッセージ経路選択システムであって、
前記メッセージを生成する手段と、
前記メッセージの送信先を自動的に決定する手段と、
前記メッセージの送信先に基づいて、少なくとも前記複数の利用可能な経路のうちのいくつかを自動的に決定する手段と、
前記メッセージの属性を使用して、前記好ましい配信経路を選択する手段と、
前記好ましい経路上で前記メッセージを前記送信先へ配信する手段を備える、メッセージ経路選択システム。
【請求項２１】
１つ以上の基準に基づいて送信元から送信先へメッセージを送信するために、複数の利用可能な経路から好ましい経路を動的に選択するためのサービスシステムであって、
前記メッセージを生成する手段と、
前記メッセージの送信先を自動的に決定し、前記メッセージの送信先に基づいて、少なくとも前記複数の利用可能な経路のうちのいくつかを自動的に決定し、前記メッセージの属性を使用して、前記好ましい配信経路を選択するメッセージ経路選択システムと、
前記好ましい経路上で前記メッセージを前記送信先へ配信する前記メッセージ経路選択システムとを備える、サービスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、ネットワーク上でのデータ送信に関する。より特定的には、本発明は、直接ピアツーピア接続上での最適データ送信のための経路を決定すること、または様々な所定の基準に基づいたインフラストラクチャシステムに関する。
【背景技術】
【０００２】
ネットワーク上の装置間のデータの移動は、コンピュータ処理においては基本的な動作である。そのような分散システムは、典型的には、インフラストラクチャメッセージングシステムまたはピアツーピアメッセージングシステム（一般にポイントツーポイントメッセージングシステムとも称される）という、２つのシステムのうちの１つを使用するように設計されている。インフラストラクチャメッセージングシステムは、メッセージを、構造化されたデータまたは構造化されていないデータのいずれかとして送るので、メッセージは、別個のサーバを使用して配信される。ピアツーピアメッセージングシステムは、メッセージを、構造化されたデータまたは構造化されていないデータのいずれかとして送るので、メッセージは、送信および受信コンピュータ間において直接確立された導管を介して配信される。ＷＷＷ（ワールドワイドウェブ）は、１つの点から他の点へデータを交換するためのｈｔｔｐプロトコルを使用するピアツーピアメッセージングシステムの一例である。
【０００３】
インフラストラクチャメッセージングシステムの例には、例えば、ＭＱ  Ｓｅｒｉｅｓ（ＩＢＭ社の登録商標），Ｊｅｔｓｔｒｅａｍ，またはＴＳｐａｃｅｓなどのサーバまたは中継手段が含まれる。中継サーバは、メッセージのための一時的な保持領域として動作し、メッセージが受信者に安全に配達されるまでは破棄されないことを保証するものである。ピアツーピアメッセージングシステムに比べて、インフラストラクチャメッセージングシステムは、典型的にはより多くの特徴を含み、管理または運営しやすい。しかしながら、インフラストラクチャメッセージングシステムは、一般的には、多少のパフォーマンスオーバーヘッドを生じさせる。
【０００４】
ピアツーピアメッセージングシステムは、通常、インフラストラクチャメッセージングシステムと比較して性能がよい。しかしながら、ピアツーピアメッセージングシステム全体は、一般的に分散化しているため、運営または管理が全体的にいっそう難しくなっている。ピアツーピアネットワークは、分散独立管理が意図的に奨励されることが多い。
【０００５】
ピアツーピアメッセージングシステムは、高速データ転送を可能にするが、データ転送における唯一の制限要因は、送信システム、受信システム、および送信および受信システム間をつなぐ通信ネットワークの速度である。ピアツーピア通信は、少人数の関係当事者に対する適度な運営作業を必要とするに過ぎない。例えば、２つのコンピュータ接続において、データ交換に関係する当該２つのコンピュータだけを、データ交換接続の確立、使用、および停止が行われるように構成すればよい。
【０００６】
ピアツーピアメッセージングシステムとは対照的に、インフラストラクチャメッセージングシステムは、送信者および受信者（さらにクライアントとも称される）に対して、メッセージを失うことなく、接続、接続解除、再接続を許可している。インフラストラクチャメッセージングシステムに対応しているインフラストラクチャシステムは、クライアント宛のメッセージを受信し、クライアントが接続されたときに当該メッセージを配信する。クライアントが接続されていないときには、メッセージは、インフラストラクチャシステムによって記憶されて、クライアントが接続されたときに配信されてもよい。
【０００７】
インフラストラクチャメッセージイングシステムは、多相確定トランザクション、単一のメッセージにつき１つ以上の受信器、監査追跡、および耐障害性のような他の特徴を備える。しかしながら、この形態のデータ交換に対応する必要があるインフラストラクチャは、インフラストラクチャメッセージングシステムにおいてオーバヘッドを課すので、メッセージの待ち時間とデータ移動率との両方の増加という形態を取る。メッセージ待ち時間とは、メッセージを送ってから当該メッセージを完全に受信するまでに経過する時間のことである。データ移動率とは、送信者および受信者間でデータを移動させるのに必要な時間に渡って送信されるデータ量のことである。インフラストラクチャメッセージングシステムの利点は、速度の減少と、運営の必要性の増加とを招く。さらに、インフラストラクチャメッセージングシステムは、どのくらいの量のデータをメッセージ記憶領域に記憶できるかに関して制限があることが多い。
【０００８】
上述の技術が有用なことは証明されているものの、付加的な改良を提示することが望ましいだろう。インフラストラクチャメッセージングシステムまたはピアツーピアメッセージングシステムのいずれかの最適な選択を可能にする通信モデルが望ましい場合がある。例えば、通信システムは、数多くの顧客に映像を供給することができる。通信システムは、顧客に対して、映像供給のための登録、映像供給の開始および停止、様々な映像供給からの選択、映像供給速度および特性の調節などのための機能を提供する。このような制御メッセージは小さいので、インフラストラクチャメッセージングシステム上で容易に交換できる。映像供給は、サイズの理由から、インフラストラクチャメッセージングシステムにとっては適切でない。むしろ、映像供給は、ポイントツーポイントメッセージングシステムを使用して最良に送信される。
【０００９】
従来の方法を使用して、２つ以上の通信手法を単一のシステムでアプリケーションが使用することはできる。しかしながら、従来の取り組みは、クライアントに対して特定の接続毎に通信方法を静的に選択することを要求するので、クライアントが、１つより多くの通信機構を介して同一のメッセージを聞いているということはまずない。静的接続は、ある接続には一定の動作を強制するが、他の接続には強制しない。例えば、ピアツーピア接続は、メッセージの持続性を提供しないので、その結果、ピアツーピア送信専用の接続上で送られたすべてのメッセージは、持続性がない。
【００１０】
さらに、互いに異なるメッセージングシステムのメッセージペイロード要求の違いにより、（クライアントアプリケーションによって規定された）同一の複雑なオブジェクトを様々なメッセージシステムを介して送ることは難しいか、不可能でさえある。その結果、互いに異なるシステム上で送られたメッセージは、互いに異なるように作成される。代わりに、一般的なメッセージングシステムは、メッセージの特徴という面での最大の共通の特徴を利用して、ピアツーピアメッセージングシステムと、インフラストラクチャメッセージングシステムとの両方の上でメッセージを送ることができる。しかしながら、この取り組みでは、ピアツーピアメッセージングシステムまたはインフラストラクチャメッセージングシステムのいずれかを使用する場合に利用可能な有用なメッセージングの特徴の多くが排除されてしまう。互いに異なる特徴を有するという複雑な付加的メッセージングシステムを分散型のシステムに付加するのは、メッセージ経路を最適化するには非常に複雑な取り組みである。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
よって、インフラストラクチャメッセージング形式、ピアツーピアメッセージング形式、または任意の他のデータトランスポート形式で動作可能であり、かつ、様々な基準に従ってメッセージング形式を動的に選択することも可能な単一のインタフェースを有する単一のシステムを使用してメッセージを送信するために、最適なメッセージ経路を動的に選択するためのシステム、方法、サービス、およびプログラムが必要である。そのような解決策の必要性は、これまで満たされないままであった。
【課題を解決するための手段】
【００１２】
本発明はこの必要性を満たし、メッセージを送信するための最適メッセージ経路を動的に選択するためのシステム、サービス、コンピュータプログラム、および関連の方法（本明細書において、「システム」または「本システム」と総称される）を提示する。本システムは、例えば、効率、経済性、データ要件、監査要件、安全性、データサイズなどの様々な基準に従って、最適メッセージ経路を動的に選択する。送信クライアントおよび受信クライアントが直接メッセージ経路上で直接にメッセージを交換するための適切なモードであれば、本システムは、インフラストラクチャメッセージングサーバを迂回するようにメッセージを導くことができる。そうでない場合には、システムは、インフラストラクチャメッセージング経路上でインフラストラクチャに基づく通信機構を使用することができる。
【００１３】
送信クライアントおよび受信クライアントがメッセージを直接交換するために適切なモードでない場合には、本システムは、インフラストラクチャメッセージング経路（本明細書において、インフラストラクチャモードとさらに称される）を使用するインフラストラクチャメッセージングサーバを通ってメッセージを経路設定する。さらに、本システムは、インフラストラクチャメッセージングサーバを迂回する場合でも、インフラストラクチャメッセージングサーバを使用する利点を実現するものであって、通常、インフラストラクチャメッセージングサーバを直接使用するよりもはるかにコストが小さい。
【００１４】
本発明の直接通信は、例えば、ブロードキャスト、マルチキャスト、ピアツーピア（直接モードとしても知られている）、マルチ受信、およびパブリッシュ／サブスクライブのような数多くの通信モードに対応している。本システムは、直接モードで動作し、メッセージを特定の宛先に送っているクライアント用のデータトランスポートの通常モードである直接メッセージング経路を使用する。直接モードで動作するということは、送信クライアントおよび受信クライアントがメッセージを交換することについて合意していることを意味する。
【００１５】
直接モードは、例えば、通信のほとんどが非同期でかつ内容に基づいたタプル空間システムなどの非同期通信機構の特殊な場合である。非同期通信機構はマルチ受信であり、これは、（複数の）メッセージを誰が受信するかを決定するのは送信者ではなく、受信者であるということを意味する。メッセージは受信者に特定的に宛てられたものではない。マルチ受信メッセージングは、会話の双方を通常は明示的に識別するＪａｖａメッセージングサービス（ＪＭＳ）に対応しているシステムと比べて、キュー指向通信のより一般的な形式である。
【００１６】
互いに異なる種類のインフラストラクチャメッセージングサーバは、直接接続を互いに異なるやり方で設定する。例えば、ＪＭＳ製品においては、直接接続の設定には、送信クライアントと、（複数の）受信クライアントとの間のチャンネルの構築が含まれる。ＴＳｐａｃｅでは、受信クライアントがメッセージセージサーバに登録して、所定の形式または内容に合致するタプル（すなわち、メッセージ）が送られるかどうかが通知される。送信クライアントがその名前もメッセージに含める場合には、要求通知をさらに特定化することができる。特定のアドレス指定は、どちらの方向にも生じることが可能である。送信者は、メッセージ内に受信者の名前を含ませることによって、メッセージを特に受信者宛にすることができる。送信者は、受信者が指示された答えを作成する助けとなる送信者の名前を含めることによって、メッセージをいっそう個人的なものにすることができる。送信者は、一般的なメッセージを送信すること、および自身の名前を含めることもでき、これにより、受信者は、所定の内容を有するメッセージまたは当該送信者からのメッセージを聞くことができる。
【００１７】
本発明を直接接続（例えば、ＩＢＭ社のＤｉｒｅｃｔ  Ｃｏｎｎｅｃｔ、ＩＢＭＤＣ）のために使用すると、送信クライアントはその意図が明白となる。送信クライアントが意図したメッセージ受信者（受信クライアント）を特定する場合に、ピアツーピア接続が形成される。その後、接続が有効であるあいだに、任意のメッセージ書き込み呼び出しが、メッセージインフラストラクチャサーバを通って流れるのではなく、直接メッセージ経路上で直接に受信クライアントに対して進む。よって、送信クライアントまたは送信アプリケーションが標準的なインフラストラクチャを基本としたメッセージングインターフェイスを使用する場合でも、ＩＢＭＤＣの一部であるプログラムライブラリは、メッセージの経路設定を、受信クライアントのプログラムライブラリへ直接送るようにすることができ、インフラストラクチャを完全に迂回する。ネットワーク接続があり、かつそれが安定している場合で、直接モードが好ましいかまたは許可されているとユーザが宣言している場合には、さらに速い経路が本システムによって使用される。インフラストラクチャを基本としたモードのさらに強固な経路を、デフォルトで、またはインフラストラクチャを基本としたモードの特別な機能が必要な場合に使用する。
【００１８】
本システムによって、送信クライアントのアプリケーションは、データ転送の直接モードおよびインフラストラクチャモードの両方のための単一の通信システムを使用することができる。本システムによって、データ転送のための最適化されたメッセージ経路を選択するかどうかを選ぶというアプリケーションの柔軟性が可能となる。本システムは、インフラストラクチャメッセージ経路を迂回することができるので、メッセージ待ち時間と、送るメッセージの数とを削減し、全体の帯域幅を向上させることができる。
【００１９】
本システムは、送信クライアントと（複数の）受信クライアントとの間のより高速なメッセージ経路を作成する。本システムは、互いに異なるように使用できる独立したメッセージ経路をさらに作成する。例えば、直接モードを使用する高速経路の使用は、例えばストリーミングなどの大量のジョブのためにこれを行うことができ、インフラストラクチャモードを使用するより低速な経路の使用は、例えば、暗号化鍵、認証コード、またはメタデータ情報のためにこれを行うことができる。
【００２０】
本システムによってインフラストラクチャモードで作成された第２の接続は、メッセージを直接モードにおいて配信できない場合に、代替メッセージ経路として、またはバックアップ（耐障害性）メッセージ経路として使用することができる。逆に、第２の接続は、ピアツーピア接続がまだ開いているあいだにクライアントからインフラストラクチャサーバへの接続が切断される場合に、インフラストラクチャサーバへの代替経路として使用することができる。この代替経路は、無線または移動環境において有用である。
【００２１】
本システムを使用して、直接モードで通信する２名のクライアント（すなわち、ピアツーピアクライアント）は、他の装置上の通信サーバを起動して、そうでなければピアツーピアだけであった通信に対して、「インフラストラクチャ」接続を動的に付加または作成することができる。インフラストラクチャを動的に作成するこの機能により、通信接続に新たな機能が提供される。また、この機能は、インフラストラクチャモードの付加的機能が望ましく、かつインフラストラクチャモードの性能が若干低下してもよい場合に、特に適用可能である。
【００２２】
本発明は、変化するネットワーク状況に依存して、接続モードを交互に繰り返してもよい。例えば、直接的なピアツーピア接続のコストは変化することがあるので、間接的な接続の方がコストの面でより魅力的となっている。別の例として、本システムは、送信者と受信者との間の直接接続の使用を選択することもでき、当該送信者は、後に複数の受信者を追加することができる。ある時点では、送信者が間接的な方法を使用して単一のメッセージを送る（全ての受信者がインフラストラクチャからメッセージを得ることができる）方が、送信者が各受信者に対して明示的にメッセージを送るようにするよりも安上がりな場合がある。
【００２３】
本発明において、送信者には、メッセージ経路の観点およびメッセージコストを削減する手法の両方の観点から、複数の選択肢がある。より大きな「送信メッセージ」時間ウィンドウを使用して、互いに異なる場所宛の同一のメッセージの複数のコピーを検出することができ、その時に、どれが順位付け機能によって高順位付けされたかによって、パブリッシュ／サブスクライブモデルの通信か、または恐らくマルチキャスト形式の通信を使用することを決定することができる。
【００２４】
本発明は、メッセージ経路選択ユーティリティプログラムのようなユーティリティプログラムにおいて実施されてもよい。また、本発明は、まず最適経路を決定するための基準の組を指定して、その後、メッセージ経路選択ユーティリティを呼び出して最適経路を決定することによって、ユーザがメッセージ送信のための最適経路を識別するための手段を提供する。
【発明を実施するための最良の形態】
【００２５】
以下の説明、請求項、および図面を参照して、本発明の様々な特徴およびそれを達成する方法をより詳細に説明する。参照項目間の対応関係を示すために、参照番号が適宜繰り返し使用される
【００２６】
図１は、本発明に係る最適メッセージ経路を動的に選択するためのシステムおよび関連方法（「システム１０」）が使用されるであろう実施形態例全体を表す。システム１０は、典型的にはホストサーバ１５（本明細書において、送信クライアント１５とさらに称される）に埋め込まれるか、またはインストールされたソフトウェアプログラミングコードまたはコンピュータプログラムを備える。代わりに、ディスケット、ＣＤ、ハードドライブ、または同様の装置などの適切な記憶媒体上に、システム１０を退避することもできる。
【００２７】
送信クライアント１５によって送信されたメッセージの１名以上の受信者は、コンピュータ２０、２５、３０などの様々なコンピュータによって表され、ネットワーク３５を通じてホストサーバ１５にアクセスできる。メッセージは、命令、登録情報、文書、ファイル、映像、音声、または電子的に送信可能なその他のデータ形式のデータを備える。コンピュータ２０、２５、３０は、それぞれ、コンピュータ２０、２５、３０がホストサーバ１５と安全にインターフェイスできるようにするソフトウェアを備える。ホストサーバ１５は、電話ケーブル、または衛星リンクなどの通信リンク４０を介してネットワーク３５に接続されている。コンピュータ２０、２５、３０は、それぞれ、通信リンクコンピュータ４５、５０、５５を介してネットワーク３５に接続できる。システム１０をネットワーク３５の観点で説明するが、コンピュータ２０、２５、３０は、送信クライアント１５からメッセージをリモートではなくローカルで受信してもよい。送信クライアント１５は、システム１０を使用して、手動で、またはアプリケーションの使用を通じて自動的に、メッセージを送信してもよい。
【００２８】
図２は、システム１０によるメッセージ経路選択のための選択肢例を示す動作環境例を示す。コンピュータ２５（本明細書において、受信クライアント２５とさらに称される）は、送信クライアント１５からメッセージを受信する一般的な受信クライアントを示す。
【００２９】
システム１０は、メッセージインフラストラクチャサーバ２１０を介してインフラストラクチャメッセージ経路２０５を選択できる。メッセージインフラストラクチャサーバは、受信されたメッセージを仮想メッセージボード、すなわち「ホワイトボード」に書き込む。ホワイトボードに書き込まれたメッセージは、例えば受信クライアント２５などの対象受信者によって取り出すことができる。インフラストラクチャメッセージ経路２０５は、例えば送信クライアント１５によってメッセージが書き込まれた仮想メッセージボードを使用して確立されて、受信クライアント２５によって取り出される。メッセージインフラストラクチャサーバ２１０によって使用されるであろうメッセージを基本としたインフラストラクチャの例には、ＴＳｐａｃｅ（Ｒ）、ＭＱ  ｓｅｒｉｅｓ（Ｒ）、ＬＩＮＤＡ（Ｒ）、ＪａｖａＳｐａｃｅ（Ｒ）、またはタプル空間に基づく任意の他の技術が含まれる。メッセージを基本としたインフラストラクチャのさらなる例は、例えば電子メールプロトコルを使用する。
【００３０】
システム１０は、受信クライアント２５にメッセージを直接送信する直接メッセージ経路２１５をさらに選択できる。直接メッセージ経路２１５は、例えばメッセージインフラストラクチャサーバ２１０のようなメッセージを基本としたインフラストラクチャを必要としない任意の直接またはポイントツーポイントプロトコルを使用して、確立できる。プロトコル例には、例えば、ＴＣＰ、ＵＤＰ、ＩＰブロードキャスト技術などが含まれる。直接メッセージ経路２１５のために使用できる、さらなるプロトコルには、例えば携帯電話プロトコルなどのようなメッセージを基本としたインフラストラクチャを使用しない任意のネットワークプロトコルが含まれる。
【００３１】
ＩＰネットワーク上の直接メッセージ経路２１５のために使用できる、その他のプロトコルには、マルチキャストが含まれる。マルチキャストを使用して、送信クライアント１５は、データストリームをネットワーク３５上に確立する。送信クライアント１５によって確立されたデータストリームには、多くの受信者があってもよい。受信クライアント２５は、データストリームから直接、メッセージを取り出す。
【００３２】
図３は、送信クライアント１５、メッセージインフラストラクチャサーバ２１０、および受信クライアント２５のブロック図を示す。送信クライアント１５は、アプリケーションプログラムＡ３０５と、送信通信ミドルウェア３１０と、送信トランスポート層３１５とを備える。送信通信ミドルウェア３１０は、送信クライアント１５およびシステム１０に対して、直接メッセージ経路２１５またはインフラストラクチャメッセージ経路２０５のいずれかを使用してメッセージを送信するための機能を提供する。
【００３３】
受信クライアント２５は、アプリケーションプログラムＢ３２０と、受信通信ミドルウェア３２５と、および受信トランスポート層３３０とを備える。受信通信ミドルウェア３２５は、受信クライアント２５に対して、直接メッセージ経路２１５またはインフラストラクチャメッセージ経路２０５のいずれかを使用してメッセージを受信または取得するための機能を提供する。メッセージインフラストラクチャサーバ２１０は、メッセージアプリケーション３３５と、メッセージング通信ミドルウェア３４０と、メッセージングトランスポート層３４５とを備える。
【００３４】
システム１０は、送信通信ミドルウェア３１０にインストールされる。システム１０を使用して、送信通信ミドルウェア３１０は、最適メッセージ経路を動的に選択する。一実施形態において、システム１０は、アプリケーションプログラムＡ３０５にインストールされる。アプリケーションプログラムＡ３０５は、データまたはメッセージを作成および送出しながら、システム１０を使用して、最適メッセージ経路を動的に選択する。
【００３５】
図４，５，６は、１つ以上の所定の基準を使用してメッセージを送信するために最適のメッセージング経路を選択する際のシステム１０の動作の方法４００を示す。アプリケーションプログラムＡ３０５は、は、送信用データを選択する（ステップ４０５）。アプリケーションプログラムＡ３０５は、選択されたデータを送信通信ミドルウェアに渡す（ステップ４１０）。システム１０は、所定の基準に対して選択されたデータを評価する（ステップ４１５）。システム１０は、所定の基準に対してネットワーク３２の性能を評価する。（ステップ４２０）。
【００３６】
ステップ４１５およびステップ４２０において評価された所定の基準に従って、システム１０は、選択されたデータを利用可能なすべての経路上で送信するように決定してもよい（判断ステップ４３０）。この場合、システム１０は、送信トランスポート層に対して、選択されたデータの並列的な送信をインフラストラクチャメッセージ経路２０５上（図５の方法４３５に示す）および直接メッセージ経路２１５上（図６の方法４４０に示す）で行うように指示する。
【００３７】
選択されたデータをインフラストラクチャメッセージ経路２０５上で送信するために（方法４３５）、送信通信ミドルウェア３１０は、送信トランスポート層３１５に対して、選択されたデータをインフラストラクチャメッセージ経路２０５を使用して送信するように指示する（ステップ４４５）。メッセージインフラストラクチャサーバ２１０は、送信されたデータを受信して、送信されたデータを例えば仮想ホワイトボードに書き込む（ステップ４５０）。受信クライアント２５は、書き込まれたデータをメッセージインフラストラクチャサーバ２１０から取り出す（ステップ４５５）。
【００３８】
選択されたデータを直接メッセージ経路２１５上で送信するために（方法４４０）、送信通信ミドルウェア３１０は、送信トランスポート層３１５に対して、選択されたデータを直接メッセージ経路２１５送信するように指示する（ステップ４６０）。受信クライアント２５は、送信されたデータを受信する（ステップ４６５）。直接接続のために使用される機構は、送信者および受信車間の合意に基づいてもよい。例えば、速度は問題になるが信頼性は問題にならない映像ストリームの場合は、単純なＵＤＰ（ユーザデータグラムプロトコル）パケットを使用することができよう。他の場合には、単純なＴＣＰ／ＩＰ会話（例えば、ソケットまたはオブジェクトストリーム）を使用することができよう。
【００３９】
他の場合には、判断ステップ４３０において、システム１０は、データおよびネットワーク性能の評価に基づいて、最適なメッセージ経路を選択する。選択された最適経路が直接メッセージ経路である場合には（判断ステップ４７０）、システム１０は、送信トランスポート層３１５に対して、選択されたデータを直接メッセージ経路２１５上で送信するように指示する（図６の方法４４０に示す）。選択された最適経路が直接メッセージ経路でない場合には（判断ステップ４７０）、システム１０は、送信トランスポート層３１５に対して、選択されたデータをインフラストラクチャメッセージ経路２０５上で送信するように指示する（図５の方法４３０に示す）。
【００４０】
一実施形態において、システム１０は、アプリケーションプログラムＡ３１０にインストールされる。本実施形態において、システム１０は、選択されたデータを評価し、ネットワーク３５の性能を評価し、選択されたデータを送信通信ミドルウェア３１０に渡す（ステップ４１０）前に、最適なメッセージ経路を選択する（ステップ４１５、ステップ４２０、ステップ４２５）。
【００４１】
受信クライアント２５は、直接メッセージ経路２１５およびインフラストラクチャメッセージ経路２０５からメッセージを受信するが、アプリケーションプログラムＢ３２０に対しては、通信上の変化はトランスペアレントである。受信通信ミドルウェア３２５は、メッセージ経路の詳細をアプリケーションプログラムＢ３２０から隠す。
【００４２】
最適なメッセージ経路を決定する際にシステム１０によって使用される基準は、選択されたデータに付されたタグをアプリケーションプログラムＡ３０５によって検査することを備える。そのようなタグは、指定されたメッセージ経路を使用するためのアプリケーションプログラムＡ３０５による特定の要求を備える。タグは、例えば、制御データ、大容量データ、優先度の低いデータ、優先度の高いデータ、監査追跡を必要とするデータ、監査追跡を扶養とするデータ、映像、テキスト、などの選択データの識別を備えることができる。システム１０は、タグのデータベースと、これらのタグに関連した最適経路とを備える。システム１０は、例えば、優先度の高いデータについては、直接メッセージ経路２１５を選択することができる。さらに、システム１０は、例えば、監査追跡を必要とするデータについては、メッセージインフラストラクチャサーバ２１０が監査追跡を生成可能なインフラストラクチャメッセージ経路２０５を選択することができる。
【００４３】
最適メッセージ経路を決定するための基準は、送信用に選択されたデータの種類をさらに備える。例えば、システム１０は、構造化されたデータについては、構造化されていないデータとは異なる最適メッセージ経路を選択することができ、マルチメディアデータをテキストデータとは異なるように経路設定することができる。
【００４４】
システム１０は、選択されたデータのサイズを最適メッセージ経路を選択するための基準として使用することができる。例えば１ＭＢのサイズ以上のメッセージなどの大きなメッセージは、直接メッセージ経路を使用して送信されて、選択されたデータのデータ転送速度を上昇させることができる。この基準は、データの種類に基づいたサイズ制限としてさらに規定することができる。
【００４５】
システム１０によって使用される基準は、ネットワーク３５の性能、メッセージインフラストラクチャサーバ２１０の性能、使用負荷などをさらに備える。システム１０は、ネットワーク３５の性能およびメッセージインフラストラクチャサーバ２１０の性能を能動的に監視するフィードバックシステムを備える。システム１０は、例えば、ネットワーク３５が使用中か、またはメッセージインフラストラクチャサーバ２１０が使用中の場合には、選択されたデータを直接メッセージ経路２１５に経路設定することを選択する。
【００４６】
例えば、アプリケーションプログラムＡ３０５は、５つの他のコンピュータに送信されることをユーザが確認したいデータを選択しており、ネットワーク３５は、多くの停止を報告しているとする。選択されたデータを直接メッセージ経路２１５を使用して送信すると、コンピュータの中には、選択されたメッセージを受信しないものもある場合がある。その結果、システム１０は、インフラストラクチャメッセージ経路２０５を選択する。なぜならば、メッセージインフラストラクチャサーバ２１０は、選択されたデータを持続的な方法で書き込むからである。ネットワーク３５が機能停止した場合には、予定データ受信者はデータを取り出すことができない。しかしながら、ネットワーク３５が復帰した場合には、予定データ受信者は、メッセージインフラストラクチャサーバ２１０に接続して、選択されたデータを取り出すことができる。
【００４７】
最適メッセージ経路を選択する際にシステム１０によって使用される他の基準は、送信すべきデータの機密性である。直接メッセージ経路２１５は、インフラストラクチャメッセージ経路２０５よりも安全である場合がある。なぜならば、直接メッセージ経路２１５上で送信されるデータは暗号化されて、特定の受信者に向けることができるからである。しかしながら、送信クライアント１５および受信クライアント２５は、メッセージインフラストラクチャサーバ２１０を使用して、暗号化されたメッセージの転送を取り決めることもできる。
【００４８】
システム１０は、最適メッセージ経路を選択する際のロギング基準を使用することができる。ロギングを必要とするデータは、システム１０によってメッセージインフラストラクチャサーバ２１０に向けられる。書き込まれたデータであればどれでも、もう１つのデータベースにコピーされて、送信されたデータのアーカイブを生成することができる。
【００４９】
システム１０は、最適メッセージ経路を選択する際のコスト基準を使用することができる。システム１０は、最適メッセージ経路を選択して、選択されたデータの転送コストを最小限にすることができる。システム１０は、選択されたデータが有する受信者の数を、基準としてさらに使用することができる。数多くの受信者を有する選択されたデータは、同胞通信技術を使用して、インフラストラクチャメッセージ経路２０５上、または直接メッセージ経路２１５上でより経済的に送信されてもよい。
【００５０】
システム１０によって評価された基準によっては、システム１０は、インフラストラクチャメッセージ経路２０５および直接メッセージ経路２１５の両方を選択してもよい。例えば、特別の種類のデータは、直接メッセージ経路２１５上での高速転送が必要である場合もあり、また、メッセージインフラストラクチャサーバ２１０によって提供されるような監査追跡が必要がある場合がある。
【００５１】
システム１０の使用例としては、図１に示すようなネットワークを使用してデータを選択的にログ記録する病院が挙げられる。システム１０は、医師が命じた特殊な治療または医師が観察した特殊な発見を含んだ医療データを、インフラストラクチャメッセージ経路２０５に対して導くことができる。メッセージインフラストラクチャサーバ２１０は、この医療データを、例えば医療過誤訴訟に対抗して、アーカイビングおよび保護のために医療ログに記録する。しかしながら、Ｘ線写真などの大容量データは、所定のサイズ基準を超えており、システム１０によって直接メッセージ経路２１５に導かれて、医師のデスクトップコンピュータまたは携帯タブレットへ送信される。
【００５２】
システム１０は、メッセージまたはデータの送出または送信に関連するのみの図示目的で説明しているが、システム１０は、配達が確認または保証されるメッセージまたはデータ、もしくは、配達が確認または保証されないメッセージまたはデータにも適用可能であることは明白である。
【００５３】
さらに、システム１０は、メッセージまたはデータの受信者サーバへの送信に関連するのみの図示目的で説明しているが、システム１０は、例えばＩＰマルチキャストなどの様々な手法を使用した、任意の数の付加的なコンピュータに対するメッセージまたはデータの送信指示にも適用可能であることは明白である。
【００５４】
説明してきた本発明の特定の実施形態は、本発明の原理の一適用を例示するに過ぎないことが理解されるべきである。数多くの修正が、本明細書に記載された最適メッセージ経路を動的に選択するためのシステム、方法、およびサービスに対して、本発明の精神および範囲を逸脱することなくなされてもよい。
【図面の簡単な説明】
【００５５】
【図１】本発明のメッセージ経路選択システムが利用可能な動作環境例の概略図である。
【図２】メッセージインフラストラクチャサーバと共に図１のメッセージ経路選択システムを示す動作環境例の概略図である。
【図３】送信クライアントのアプリケーションプログラムと、受信クライアントのアプリケーションプログラムとの間の通信を示すブロック図であって、図１のメッセージ経路選択システムによって動的に選択されるように通信のモードが発生する様子を示す。
【図４】図１のメッセージ経路選択システムの動作方法を示す処理フロー図である。
【図５】図１のメッセージ経路選択システムの動作方法を示す処理フロー図である。
【図６】図１のメッセージ経路選択システムの動作方法を示す処理フロー図である。
【符号の説明】
【００５６】
１０  メッセージ経路選択システム
１５  送信クライアント
２０、２５、３０  コンピュータ
３５  ネットワーク
４０  通信リンク
４５、５０、５５  通信リンク
【図１】
2006333486.tif 000003
【図２】
2006333486.tif 000004
【図３】
2006333486.tif 000005
【図４】
2006333486.tif 000006
【図５】
2006333486.tif 000007
【図６】
2006333486.tif 000008