(57)【特許請求の範囲】
【請求項１】
複数のコンピュータシステムを含むコンピュータネットワーク環境における、プロセッサおよびメモリを含むコンピュータにおいて、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供するコンピュータが実行する方法であって、前記方法は、
マルチテナントリレーサービスにおいて、第１のテナントに属する第１のコンピュータシステムから異なる第２のコンピュータシステムに渡されるデータの一部を受信する第１受信ステップであって、前記マルチテナントリレーサービスは、複数の異なるテナントに対して、データをセキュアにリレーするように構成される、第１受信ステップと、
前記マルチテナントリレーサービスが、前記第１のコンピュータシステムと前記第２のコンピュータシステムとの間で前記第１のテナントのデータをルーティングするためのセキュアなルーティングチャネルを作成する作成ステップであって、前記セキュアなルーティングチャネルは、前記第１のテナントの特定のコンピュータシステムから受信されるデータの一部のそれぞれにユニークＩＤを適用し、前記第１のコンピュータシステムは、前記特定のコンピュータシステムに該当する、作成ステップと、
前記マルチテナントリレーサービスが、複数のパスのうちどれが前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングするのに最適なパスであるかを判定する判定ステップと、
前記マルチテナントリレーサービスが、前記の適用されたユニークＩＤを使用し、前記の判定された最適なパスを使用して、前記セキュアなルーティングチャネルを介して、前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングする第１ルーティングステップと
を含む方法。
【請求項２】
前記マルチテナントリレーサービスにおいて、異なる第２のテナントに属する異なる第３のコンピュータシステムからデータの一部を受信する第２受信ステップと、
前記マルチテナントリレーサービスが、前記第２のテナントから受信される情報の一部のそれぞれに、異なるユニークＩＤを適用する適用ステップと、
前記マルチテナントリレーサービスが、前記の適用された異なるユニークＩＤを使用して、前記セキュアなルーティングチャネルを介して、前記受信したデータを前記第３のコンピュータシステムから前記第２のコンピュータシステムにルーティングする第２ルーティングステップと
をさらに含む請求項１に記載の方法。
【請求項３】
前記第２のコンピュータシステムにより提供された、前記第１のテナントが接続しているものと同じサービスに、前記第２のテナントが接続している場合でも、前記第２のテナントから受信されるデータは、前記第１のテナントから受信されるデータから分離される請求項２に記載の方法。
【請求項４】
前記第１のテナントの前記第１のコンピュータシステムおよび前記第２のテナントの前記第３のコンピュータシステムが、同じＩＰアドレスを有する請求項２に記載の方法。
【請求項５】
前記作成ステップは、前記セキュアなルーティングチャネルにおいてＩＰアドレス間でルーティングするためのＩＰアドレス空間を作成することを含む請求項１に記載の方法。
【請求項６】
テナントのデータの前記ユニークＩＤを前記第１のテナントから前記第１のコンピュータシステムのＤＮＳ名にマッピングして、前記第１のコンピュータシステムのＤＮＳ名を解決する解決ステップをさらに含む請求項１に記載の方法。
【請求項７】
前記の適用されたユニークＩＤにより、各テナントが前記マルチテナントリレーサービス内で自身の一意的な名前空間を有することができる請求項１に記載の方法。
【請求項８】
コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供する方法を実行するコンピュータプログラムであって、当該コンピュータプログラムは、コンピュータの１つまたは複数のプロセッサにより実行されると、前記コンピュータに前記方法を実行させ、前記方法は、
マルチテナントリレーサービスにおいて、第１のテナントに属する第１のコンピュータシステムから異なる第２のコンピュータシステムに渡されるデータの一部を受信する受信ステップであって、前記マルチテナントリレーサービスは、複数の異なるテナントに対して、データをリレーするように構成される、受信ステップと、
前記マルチテナントリレーサービスが、前記第１のコンピュータシステムと前記第２のコンピュータシステムとの間でデータをルーティングするためのセキュアなルーティングチャネルを作成する作成ステップであって、前記セキュアなルーティングチャネルは、前記第１のテナントの特定のコンピュータシステムから受信されるデータの一部のそれぞれにユニークＩＤを適用し、前記第１のコンピュータシステムは、前記特定のコンピュータシステムに該当する、作成ステップと、
前記マルチテナントリレーサービスが、複数のパスのうちどれが前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングするのに最適なパスであるかを判定する判定ステップと、
前記マルチテナントリレーサービスが、前記の適用されたユニークＩＤを使用し、前記の判定された最適なパスを使用して、前記セキュアなルーティングチャネルを介して、前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングするルーティングステップと
を含む、コンピュータプログラム。
【請求項９】
コンピュータシステムであって、
１つまたは複数のプロセッサと、
システムメモリと、
前記１つまたは複数のプロセッサにより実行されると、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供する方法を当該コンピュータシステムに実行させるコンピュータ実行可能命令が記憶される、１つまたは複数のコンピュータ可読記憶媒体であって、前記方法は、
マルチテナントリレーサービスにおいて、第１のテナントに属する第１のコンピュータシステムから異なる第２のコンピュータシステムに渡されるデータの一部を受信する受信ステップであって、前記マルチテナントリレーサービスが、複数の異なるテナントに対して、データをセキュアにリレーするように構成される、受信ステップと、
前記マルチテナントリレーサービスが、前記第１のコンピュータシステムと前記第２のコンピュータシステムとの間で前記第１のテナントのデータをルーティングするためのセキュアなルーティングチャネルを作成する作成ステップであって、前記セキュアなルーティングチャネルは、前記第１のテナントの特定のコンピュータシステムから受信したデータの一部のそれぞれにユニークＩＤを適用し、前記第１のコンピュータシステムは、前記特定のコンピュータシステムに該当する、作成ステップと、
前記マルチテナントリレーサービスが、複数のパスのうちどれが前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングするのに最適なパスであるかを判定する判定ステップと、
前記マルチテナントリレーサービスが、前記の適用されたユニークＩＤを使用し、前記の判定された最適なパスを使用して、前記セキュアなルーティングチャネルを介して、前記受信したデータを前記第１のコンピュータシステムから前記第２のコンピュータシステムにルーティングするルーティングステップと
を含む、コンピュータ可読記憶媒体と
を備えたコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチテナントリレーを使用する仮想ネットワークの提供に関する。
【背景技術】
【０００２】
コンピュータは、職場、家庭、モバイル機器、および多くの他の場所において高度に統合されてきている。コンピュータは極めて大量の情報を素早くかつ効率的に処理することができる。コンピュータシステム上で稼働させるべく設計されるソフトウェアアプリケーションによって、ユーザがビジネスアプリケーション、学業、娯楽などを含む幅広い機能を実行することができる。ソフトウェアアプリケーションは、文書を作成するワードプロセッサアプリケーション、または電子メールを送信、受信、および整理する電子メールプログラムなど、特定のタスクを実行するべく設計されることが多い。
【０００３】
多くの場合、ソフトウェアアプリケーションは、他のソフトウェアアプリケーションまたは他のコンピュータシステムと相互作用するべく設計される。例えば、クライアントコンピュータシステムを、サービスプロバイダからのサービスを要求するように構成することができる。サービスプロバイダは、種々のクライアントから要求を受け取り、その要求に応答してサービスを提供することができる。サービスの提供には、プロバイダとクライアントコンピュータシステムとの間で種々の通信を送信することを含めることができる。これらのコンピュータシステムは、ルータおよびファイアウォールなどの種々のハードウェア装置またはソフトウェア装置により分離または遮断された異なるコンピュータネットワーク上に存在することが多い。
【０００４】
場合によっては、ＶＰＮ（ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）、リレー、または他のセキュアな通信チャネルが、別個のネットワーク上にあるコンピュータシステム間に確立されていることもある。しかし、リレーは、典型的に組織に対してプライベートであるかパブリックであるかのどちらかであり、リレーにより任意のユーザがアクセスできるため、有害なユーザが含まれる可能性がある。
【発明の概要】
【０００５】
本明細書に記載する実施形態は、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供することに対処する。一実施形態において、コンピュータシステムが、第１のテナントに属する第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る。インスタンス化されたマルチテナントリレーサービスが、複数の異なるテナントに対して、データをセキュアにリレーするべく構成される。コンピュータシステムは、第１のコンピュータシステムと第２のコンピュータシステムとの間で第１のテナントのデータをルーティングするためのセキュアなルーティングチャネルを作成する。セキュアなルーティングチャネルは、第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを適用する。コンピュータシステムはまた、適用されたユニークＩＤを使用して、セキュアなルーティングチャネルを介して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする。
【０００６】
別の実施形態において、コンピュータシステムが、第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る。インスタンス化されたマルチテナントリレーサービスが、複数の異なるテナントに対して、データをリレーするべく構成される。コンピュータシステムは、第１のコンピュータシステムと第２のコンピュータシステムとの間でデータをルーティングするためのセキュアなルーティングチャネルを作成する。セキュアなルーティングチャネルは、第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを与える。コンピュータシステムは、種々の異なるネットワークプロトコルのうちどれが受け取ったデータのルーティングに利用可能であるかを判定し、かつ、どのネットワークプロトコルが利用可能であるかの判定に基づき、データ転送効率を最適化する適切なプロトコルを動的に選択する。コンピュータシステムはまた、判定されたプロトコルを使用して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする。データは、適用されたユニークＩＤを使用してセキュアなルーティングチャネルを介してルーティングされる。
【０００７】
本「発明の概要」は、以下の「発明を実施するための形態」でさらに記載する概念を選択して簡略化した形式で紹介するために提供するものである。本「発明の概要」は、特許請求の主題の重要な特徴または主要な特徴を特定することを意図しておらず、特許請求の主題の範囲を決定する際の助けとして使用されることも意図していない。
【０００８】
本発明の追加の特徴および利点を以下に続く記載において説明し、一部は記載により明らかとなるか、または、本明細書における教示の実践により習得することができるであろう。本発明の特徴および利点は、特に添付の請求項において指摘される機器および組み合わせを用いて、実現および取得することができる。本発明の特徴は、以下の記載および添付の請求項からさらに完全に明らかとなるか、または、以下に説明するような本発明の実践により習得することができるであろう。
【図面の簡単な説明】
【０００９】
本発明の実施形態の上述および他の利点ならびに特徴を明確にするために、本発明の実施形態についてさらに特定の記載を、添付の図面を参照して与える。これらの図面は本発明の典型的な実施形態を示すにすぎず、従って本発明の範囲を制限するものとみなすべきではないことは理解されるであろう。本発明を、添付の図面を使用することにより、さらに具体的および詳細に記載かつ説明する。
【図１】コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供することを含め本発明の実施形態を動作させることができる、コンピュータアーキテクチャを示す図である。
【図２】コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供するための例示の方法のフローチャートである。
【図３】コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供するための代替の例示の方法のフローチャートである。
【図４】複数のテナントからの通信が、セキュアなルーティングチャネルを介してセキュアにルーティングされる、本発明の一実施形態を示す図である。
【発明を実施するための形態】
【００１０】
本明細書に記載する実施形態は、セキュアな接続をお互いに直接ルーティングすることができないコンピュータシステム間で、データをセキュアにリレーするマルチテナントリレーサービスを提供することに対処する。一実施形態において、コンピュータシステムが、第１のテナントに属する第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る。インスタンス化されたマルチテナントリレーサービスが、複数の異なるテナントに対して、データをセキュアにリレーするべく構成される。コンピュータシステムは、第１のコンピュータシステムと第２のコンピュータシステムとの間で第１のテナントのデータをルーティングするためのセキュアなルーティングチャネルを作成する。セキュアなルーティングチャネルは、第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを適用する。コンピュータシステムはまた、適用されたユニークＩＤを使用して、セキュアなルーティングチャネルを介して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする。
【００１１】
別の実施形態において、コンピュータシステムが、第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る。インスタンス化されたマルチテナントリレーサービスが、複数の異なるテナントに対して、データをリレーするべく構成される。コンピュータシステムは、第１のコンピュータシステムと第２のコンピュータシステムとの間でデータをルーティングするためのセキュアなルーティングチャネルを作成する。セキュアなルーティングチャネルは、第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを与える。コンピュータシステムは、種々の異なるネットワークプロトコルうちどれが受け取ったデータのルーティングに利用可能であるかを判定し、かつ、どのネットワークプロトコルが利用可能であるかの判定に基づき、データ転送効率を最適化する適切なプロトコルを動的に選択する。コンピュータシステムはまた、判定されたプロトコルを使用して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする。データは、適用されたユニークＩＤを使用して、セキュアなルーティングチャネルを介してルーティングされる。
【００１２】
ここで、以下の検討では、実行することができる多数の方法および方法の動作に言及する。方法の動作を、特定の順番で検討し、または、特定の順番で発生するようにフローチャートにおいて例示しているが、動作は、該動作が実行される前に完了する別の動作に依存するため、特に記載または要求がない限り、特定の順番を必ずしも要求するものではないことに留意されたい。
【００１３】
本発明の実施形態では、以下でさらに詳細に検討するように、コンピュータハードウェア、例えば、１つまたは複数のプロセッサおよびシステムメモリを含む専用または汎用のコンピュータを備えるか、または利用することができる。本発明の範囲にある実施形態にはまた、コンピュータ実行可能命令および／またはデータ構造を搬送または記憶するための物理的および他のコンピュータ可読媒体を含む。そのようなコンピュータ可読媒体は、汎用または専用のコンピュータシステムによりアクセス可能な任意の利用可能な媒体とすることができる。コンピュータ実行可能命令を記憶するコンピュータ可読媒体は、コンピュータ記憶媒体である。コンピュータ実行可能命令を搬送するコンピュータ可読媒体は伝送媒体である。従って、制限ではなく例として、本発明の実施形態では、少なくとも２つの明確に異なる種類のコンピュータ可読媒体、すなわち、コンピュータ記憶媒体および伝送媒体を備えることができる。
【００１４】
コンピュータ記憶媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、または、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形式で記憶することに使用可能であり、かつ汎用または専用のコンピュータによりアクセス可能である任意の他の媒体を含む。
【００１５】
「ネットワーク」は、コンピュータシステムおよび／またはモジュールおよび／または他の電子デバイスの間で電子データの転送を可能にする１つまたは複数のデータリンクとして定義される。ネットワークまたは別の通信接続（有線、無線、または有線もしくは無線の組み合わせ）を介して情報がコンピュータに転送または提供される時、コンピュータは該接続を適切に伝送媒体とみなす。伝送媒体には、ネットワーク、および／または、所望のプログラムコード手段をコンピュータ実行可能命令またはデータ構造の形式で搬送することに使用可能であり、かつ汎用または専用のコンピュータによりアクセス可能であるデータリンクを含むことができる。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含むべきである。
【００１６】
さらに、種々のコンピュータシステム構成要素に到達すると、コンピュータ実行可能命令またはデータ構造の形式のプログラムコード手段は、伝送媒体からコンピュータ記憶媒体へ（またはその逆）自動的に転送されることが可能である。例えば、ネットワークまたはデータリンクを介して受け取ったコンピュータ実行可能命令またはデータ構造は、ネットワークインターフェースモジュール（例えば、「ＮＩＣ」）内のＲＡＭのバッファに格納され、そして、最終的にコンピュータシステムＲＡＭおよび／またはコンピュータシステムの低揮発性コンピュータ記憶媒体に転送されることが可能である。従って、コンピュータ記憶媒体を、伝送媒体をも利用する（または、主に使用するとも言える）コンピュータシステム構成要素に含めることができることは理解されるべきである。
【００１７】
コンピュータ実行可能命令は、例えば、汎用のコンピュータ、専用のコンピュータ、または専用の処理装置に、特定の機能または機能群を実行させる命令およびデータを備える。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間形式の命令、さらにはソースコードとすることができる。主題を、構造的特徴および／または方法論的な動作に特有の言語で記載しているが、添付の請求項に定義する主題が必ずしも記載した上述の特徴または動作に限定されないことは理解されるべきである。むしろ、記載した特徴および動作は、請求項を実装する例示の形式として開示するものである。
【００１８】
パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能の家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、ルータ、スイッチ等を含む、多くのタイプのコンピュータシステム構成を伴うネットワークコンピュータ環境において本発明を実践することができることを、当業者は理解するであろう。ローカルおよびリモートのコンピュータシステムが、ネットワークを介して（有線データリンク、無線データリンク、または有線データリンクと無線データリンクとの組み合わせにより）リンクされ、双方がタスクを実行する分散システム環境において、本発明を実践することもできる。分散システム環境において、ローカルおよびリモートのメモリ記憶装置の両方にプログラムモジュールを設置することができる。
【００１９】
図１は、本発明の原理を採用することができるコンピュータアーキテクチャ１００を例示する。コンピュータアーキテクチャ１００には、インターネット１３０を介して通信する、テナント１２０およびホスト１３５を含む。テナントおよびホストを、ファイアウォール１２５Ａおよび１２５Ｂを介して通信するべく構成することができる。ファイアウォールに加えて、通信はルータ、スイッチ、ゲートウェイ、または他のネットワーク通信装置を経由することができる。テナント１２０は、実質的には任意の数のコンピュータシステムを有することができる。例えば、テナントは、政府機関、学校、企業、または数百、数千もしくはそれ以上のコンピュータシステムを有し得る他の事業体などの組織とすることができる。または、テナントは、単一のコンピュータシステムを有する単一のユーザとすることができる。従って、テナント１（１２０）が３つのコンピュータシステム（１２１Ａ１、１２１Ａ２、および１２１Ａ３）を有するものとして図１に示されているが、このテナントが任意の数のコンピュータシステムを有することができることは理解されるであろう。
【００２０】
それに応じて、ホスト１３５もまた、任意の数のコンピュータシステムを有することができ、かつ、任意の数のサービスを提供またはホストすることができる。ホストは、様々な異なるサービスを異なるテナントにホストするマルチテナントホストとすることができる。各テナントは、異なるサービスまたは異なるバージョンのサービスさえも契約することができる。そして、テナントのユーザのそれぞれがそれらのサービスにアクセスする。マルチテナントホストは、ユーザのアイデンティティが特定のクライアントまたはテナントの一部であることを検証して、そのテナントが契約したそれらのサービスを提供する。各テナントの設定、構成、契約、記憶される文書、および他の事項が、全ての他のテナントの情報とは分離され維持される。場合によっては、ホスト１３５は、クラウドベースのホストとすることができ、物理的に世界中のいたる場所に設置される複数の異なるコンピュータシステム間に分散可能である。このように、ホストの任意のコンピュータシステムが、テナントが要求するサービスを提供することができる。
【００２１】
いくつかの実施形態において、テナント１２０とホスト１３５との間に仮想ネットワークを構築することができる。仮想ネットワークでは、マルチテナントリレーサービス１０５（または本明細書においては「サービス１０５」）を使用して、テナントとホストとの間でデータをセキュアに転送することができる。テナントは、サービス１０５により構築されたセキュアなルーティングチャネル１１０を介してデータ１０６を送ることができる。それぞれの異なるテナントから送られるデータには、どのテナントからデータを受け取ったのかを示すユニークＩＤ（ユニークＩＤ１０７）をタグ付けすることができる。データ１０６は、ＳＳＬ（ｓｅｃｕｒｅ  ｓｏｃｋｅｔｓ  ｌａｙｅｒ）トンネルまたは他のセキュアな通信手段を介して、ＶＰＮ（ｖｉｒｔｕａｌ  ｐｒｉｖａｔｅ  ｎｅｔｗｏｒｋ）を通り伝送されることができる。
【００２２】
場合によっては、この仮想ネットワークを、仮想ネットワークに接続されるテナントコンピュータシステムに対する作成およびアドレス割り当てを管理するネットワーク仮想化層として説明することができる。マルチテナントリレーサービス１０５は、仮想ネットワークに関与するコンピュータシステム間の接続性をサポートすることができる。ネットワーク仮想化層は、ＩＰ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）エンドポイントをコンピュータシステムのオペレーティングシステム内のネットワークアダプタとして露出させることができる。仮想ネットワーク内の各エンドポイント（すなわち、各コンピュータシステムまたはテナント）は、コンピュータシステムが仮想ネットワーク内の他のエンドポイントと通信することを可能にするディレクトリサービスから、一意的なアドレスまたは他の識別子を受け取ることができる。仮想ネットワークに関与するコンピュータシステム上にインストールされたドライバまたはソフトウェアエージェントが、リレーサービス１０５を介してＩＰトラフィックを送ること、および、トラフィックをリレーサービスから受け入れることを担うことができる。
【００２３】
いくつかの実施形態において、マルチテナントリレーサービス１０５は、リレーサービスと相互作用する分離されたルーティングドメインを作成するべく構成される。各ルーティングドメインにより、認証された（テナントまたはホストの）マシンのセットへのアクセスを制限することが可能であり、かつ、マシンを一意的に識別する名前空間をドメイン内に提供することが可能である。これにより、リレーサービスへのアクセスをセキュアにするだけでなく、一旦リレーサービスに接続されたコンピュータシステム間でアクセスを分割することができる。一実施形態において、マルチテナントリレーサービスは、仮想ネットワークの構築に使用することができる１つまたは複数の分離されたルーティングドメインを提供することができる。場合によっては、テナントのアイデンティティに基づく特定のサブネットからＩＰアドレスを割り当てるＳＳＴＰ（ｓｅｃｕｒｅ  ｓｏｃｋｅｔ  ｔｕｎｎｅｌｉｎｇ  ｐｒｏｔｏｃｏｌ）リレーを、インスタンス化することができる。これらおよび他の概念は、それぞれ図２および３の方法２００および３００に関して以下でさらに詳細に記載する。
【００２４】
上述のシステムおよびアーキテクチャを考慮すると、開示する主題に従って実装することができる方法論は、図２および３のフローチャートを参照することでより良く理解されるであろう。説明を簡単にする目的で、方法論を一連のブロックとして示し記載している。しかし、特許請求する主題がブロックの順番によって制限されることはなく、一部のブロックは、本明細書に示し記載しているものとは異なる順番で、および／または、他のブロックと同時に発生可能であることは理解かつ認識されるべきである。さらに、例示される全てのブロックが、本明細書に記載する方法論を実装するために求められるわけではない。
【００２５】
図２は、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供するための方法２００のフローチャートを例示する。方法２００を、ここでは環境１００の構成要素およびデータを頻繁に参照して記載する。
【００２６】
方法２００は、インスタンス化されたマルチテナントリレーサービスにおいて、第１のテナントに属する第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る動作を含み、インスタンス化されたマルチテナントリレーサービスは、複数の異なるテナントに対して、データをセキュアにリレーするべく構成される（動作２１０）。例えば、マルチテナントリレーサービス１０５は、テナント１（１２０）からホスト１３５に渡されるデータ１０６を受け取ることができる。リレーサービスは、複数の異なるテナントに対して、データをセキュアにリレーするべく構成可能である。ある場合では、リレーサービスは、各コンピュータシステム（例えば、１２１Ａ１）を特定のテナント（例えば、テナント１２０）に属するコンピュータシステムとして一意的に識別することができる。別の場合では、リレーサービスは、どのコンピュータシステムからデータが生じたのかに関わらず、データを特定のテナントから生じたものとして一意的に識別することができる。従って、リレーサービス１０５によりデータに添付されたユニークＩＤ１０７は、受け取ったデータの送り元であるテナント、および／または、テナント１２０の一部である特定のコンピュータシステムまたはユーザを一意的に識別することができる。
【００２７】
上記で示すように、ホストおよびテナントのコンピュータシステムは、物理的に分散可能であり、または異なるネットワーク上にローカルに分散可能である。マルチテナントリレーサービスを、複数の分散コンピュータシステム上で実行させることもできる。そのような場合、リレーサービスは、どのパスが最適であるか（例えば、最高帯域、最高のセキュア、最短パスなど）を判定することができ、かつ、データ１０６のルーティングに好ましいパスを使用することができる。いくつかの実施形態において、マルチテナントリレーサービスに接続される各コンピュータシステムに、ソフトウェアエージェントをインストールまたは提供することができる。エージェントは、コンピュータシステムをリレーサービスに結びつけることおよび／またはＩＰアドレス変換のためのＤＮＳ（ｄｏｍａｉｎ  ｎａｍｅ  ｓｙｓｔｅｍ）サービスを提供することを担うことができる。従って、リレーサービスを使用して構築される仮想ネットワーク内では、コンピュータシステムは、その通信においてＤＮＳを使用することができる。場合によっては、マルチテナントリレーサービスはＩＰレベルのリレーである。そのような場合、第１のコンピュータシステムと第２のコンピュータシステムとの間の通信はＩＰレベルで管理される。
【００２８】
方法２００は、マルチテナントリレーサービスによる、第１のコンピュータシステムと第２のコンピュータシステムとの間で第１のテナントのデータをルーティングするためのセキュアなルーティングチャネルを作成する動作を含み、セキュアなルーティングチャネルは、第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを適用する（動作２２０）。例えば、マルチテナントリレーサービス１０５は、テナント１２０とホスト１３５との間でデータ１０６をルーティングするためのセキュアなルーティングチャネル１１０を作成することができる。セキュアなルーティングチャネルは、テナント１２０から受け取ったデータの一部のそれぞれにユニークＩＤ１０７を適用することができる。加えてまたは代替として、セキュアなルーティングチャネルは、テナントの特定のコンピュータシステムから（例えば、コンピュータシステム１２１Ａ２から）受け取ったデータの一部のそれぞれにユニークＩＤを適用することができる。
【００２９】
セキュアなルーティングチャネルの作成は、セキュアなルーティングチャネルにおいてＩＰアドレス間でルーティングするためのＩＰアドレス空間を作成することを含むことができる。ＤＮＳが使用される場合、テナントのデータに適用されるユニークＩＤ１０７が、テナントから第１のコンピュータシステム（例えば、１２１Ａ２）のＤＮＳ名にマッピングされて、第１のコンピュータのＤＮＳ名を解決することができる。従って、データ１０６を送ったコンピュータのＤＮＳ名が、セキュアなルーティングチャネルにより適用されたユニークＩＤに対してマッピングされる。
【００３０】
上述のように、ユニークＩＤ１０７を、どのコンピュータシステムまたはどの複数のコンピュータシステムからデータを受け取ったかに関わらず、特定のテナント（例えば、テナント１２０）から受け取った全てのデータに適用することができる。このようにして、適用されたユニークＩＤにより、各テナントがマルチテナントリレーサービス内で自身の一意的な名前空間を有することができ、テナントとホストとの間で転送されるデータの一部のそれぞれが、そのテナントからのものであると一意的に識別される。同様に、ユニークＩＤ１０７を、特定のコンピュータシステムから受け取った全てのデータに適用することができ、コンピュータシステムとホストとの間で転送されるデータの一部のそれぞれが、そのコンピュータシステムからのものであると一意的に識別される。従って、所与のテナント（テナントのユーザのうちのどれがデータを送っているのかに関わらず）からのデータが、他のテナントのデータとは分離され維持される。これにより、データ転送のセキュリティの方策が追加される。この追加されるセキュリティ（他の特徴の中で）により、リレーサービス１０５はサービスを使用しているテナントにセキュリティ保障を提供することができる。これは、私的情報、財務情報、機密情報、またはセキュアな環境において伝送される必要がある他の情報を伴うサービスには特に重要である。
【００３１】
方法２００は、マルチテナントリレーサービスによる、適用されたユニークＩＤを使用して、セキュアなルーティングチャネルを介して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする動作を含む（動作２３０）。例えば、リレーサービス１０５は、適用されたユニークＩＤ１０７を使用して、セキュアなルーティングチャネル１１０を介して、データ１０６をテナント１２０からホスト１３５にルーティングすることができる。ユニークＩＤは、セキュアなルーティングチャネルを介してテナントおよびホストとの間でやりとりされる全てのデータに対して適用される。場合によっては、複数の異なるテナントが、ホスト１３５にデータを送りホスト１３５からデータを受け取る。
【００３２】
例えば、図４のコンピュータ環境４００に示すように、テナント４２０Ａ、４２０Ｂ、および４２０Ｃはそれぞれ、異なるデータをマルチテナントリレーサービス４０５に送ることができる。具体的には、テナント４２０Ａは、データ４０６Ａをリレーサービス４０５のセキュアなルーティングチャネル４１０に送る。セキュアなルーティングチャネルは、次に、ユニークＩＤ（テナント４２０ＡのユニークＩＤ）４０７Ａを適用し、データをサービスプロバイダ４３５に転送する。同様に、テナント４２０Ｂおよび４２０Ｃは、データ４０６Ｂおよび４０６Ｃをリレーサービス４０５のセキュアなルーティングチャネル４１０に送る。セキュアなルーティングチャネルは、次に、ユニークＩＤ（テナント４２０ＢのユニークＩＤおよびテナント４２０ＣのユニークＩＤ）４０７Ｂおよび４０７Ｃをそれぞれ適用し、データをサービスプロバイダ４３５に転送する。
【００３３】
各テナントのデータは、各テナントが同じサービスに接続している場合にも、他のテナントのデータとは分離されセキュアに維持される。さらに、各テナントのデータが、所与のテナントから（または、テナントの特定のユーザ／コンピュータシステムから）のものとして一意的に識別される。従って、２つのテナントが同じＩＰアドレスを持っている場合でも、データを分離し、各自のユニークＩＤを有するテナントごとにルーティングすることが可能である。このようにして、リレーサービスは、テナントとホストとの間で情報をセキュアにリレーすることが可能である。テナントのコンピュータシステム（複数可）に戻るべく伝送されるデータは、セキュアなルーティングチャネルにより割り当てられたユニークＩＤを保持する。さらに、テナントのコンピュータシステム（複数可）上で実行されるアプリケーションは、通信データがソースと送り先との間で仮想ネットワーク上をセキュアなルーティングチャネルを介してチャネリングされるため、ネットワークアドレス変換を行わずに、ホストシステム上で実行されるアプリケーションまたはサービスに直接接続するように見える。
【００３４】
ここで図３に戻ると、図３は、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供するための方法３００のフローチャートを例示する。方法３００を、ここでは環境１００の構成要素およびデータを頻繁に参照して記載する。
【００３５】
方法３００は、インスタンス化されたマルチテナントリレーサービスにおいて、第１のコンピュータシステムから第２の異なるコンピュータシステムに渡されるデータの一部を受け取る動作（動作３１０）を含み、インスタンス化されたマルチテナントリレーサービスは、複数の異なるテナントに対して、データをリレーするべく構成される。例えば、マルチテナントリレーサービス１０５は、コンピュータシステム１２１Ａ３から、ホスト１３５のコンピュータシステム１３１Ａ１、１３１Ａ２、または１３１Ａ３のうちの１つへ渡されるデータ１０６を受け取ることができる。上記に示すように、リレーサービス１０５は、様々な異なるテナントに対して、データをリレーするべく構成可能である。テナントには、１つのコンピュータユーザを含むことができ、また、数千またはそれ以上のユーザを含むこともできる。リレーサービスは、１２１Ａ３などのコンピュータシステムを、テナント１２０に属するものとして一意的に識別することができる。加えてまたは代替として、リレーサービスは、コンピュータユーザを、そのユーザがどのコンピュータシステムを使用しているのかに関わらず、テナントに属するものとして識別することができる。例えば、ユーザを、テナント１２０のメンバとして認証することができ、その認証から、ユーザはテナントが契約したサービスへのアクセスを獲得することができる。
【００３６】
方法３００は、マルチテナントリレーサービスによる、第１のコンピュータシステムと第２のコンピュータシステムとの間でデータをルーティングするためのセキュアなルーティングチャネルを作成する動作（動作３２０）をさらに含み、セキュアなルーティングチャネルが第１のテナントから受け取ったデータの一部のそれぞれにユニークＩＤを与える。例えば、マルチテナントリレーサービス１０５は、テナント１２０とホスト１３５との間でデータをルーティングまたはリレーするためのセキュアなルーティングチャネル１１０を作成することができる。セキュアなルーティングチャネルは、所与のコンピュータユーザまたはコンピュータシステムから受け取ったデータの一部のそれぞれにユニークＩＤ１０７を適用する。
【００３７】
方法３００は、複数の異なるネットワークプロトコルうちどれが受け取ったデータのルーティングに利用可能であるかを判定する動作（動作３３０）を含む。例えば、リレーサービス１０５は、データ１０６のルーティングにどのネットワークプロトコルが利用可能であるかを判定することができる。プロトコルには、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ＴＣＰ（ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ）、ＩＰ（ｉｎｔｅｒｎｅｔ  ｐｒｏｔｏｃｏｌ）、またはネットワークを介してデータを転送するための任意の他のプロトコルを含めることができる。リレーサービスはまた、データの転送にローカルネットワークが利用可能であるかどうかを判定することができる。そして、どのネットワークプロトコルが利用可能であるかの判定に基づき、リレーサービスが、データ転送効率を最適化する適切なプロトコルを動的に選択することができる（動作３４０）。例えば、ローカルネットワークが利用可能であり、かつ、セキュアであると判定される場合、そのローカルネットワークは最も効率が良いものとして選択され、そのローカルネットワーク上のプロトコルがデータの転送に使用されることになる。最初の選択が行われた後に、ネットワークに変更が生じた場合、リレーサービスは、利用可能であるどのプロトコルがデータの転送に最も適切であるかを再評価することができる。
【００３８】
方法３００はまた、判定されたプロトコルを使用して、受け取ったデータを第１のコンピュータシステムから第２のコンピュータシステムにルーティングする動作（動作３５０）を含み、データは、適用されたユニークＩＤを使用して、セキュアなルーティングチャネルを介してルーティングされる。例えば、リレーサービス１０５のセキュアなルーティングチャネル１１０は、判定されたプロトコルを使用してルートデータを１０６テナント１２０からホスト１３５にルーティングすることができる。データは、ユニークＩＤ１０７が添付されており、ＨＴＴＰ、ＴＣＰ、ＩＰ、または何らかの他の適切であると判定されたプロトコルを使用して転送される。場合によっては、テナントおよびホストが同じローカルコンピュータネットワーク上にある場合、リレーサービスは、２つのシステムに、どちらかのシステムがファイアウォール環境から離れるようなことなく該ローカルネットワーク上で接続するように指示することができる。最も効率の良い（かつセキュアな）プロトコルを選択することにより、最適なルーティング効率を確保することができる。
【００３９】
このように、コンピュータシステム間でデータをセキュアにリレーするマルチテナントリレーサービスを提供する方法、システム、およびコンピュータプログラム製品を提供する。システムは、ローカルネットワークが利用可能である場合にローカルネットワークを使用することができ、また、利用可能なプロトコルから選択してその状況において最も効率の良いプロトコルを使用することができる。リレーサービスは、各テナントから受け取ったデータをセキュアにリレーすること、かつ、一意的に識別することにより、テナントとホストとの間で仮想ネットワークを構築し保持することができる。このようにして、マルチテナントリレーサービスがマルチテナントホストにサービス提供することが可能である。
【００４０】
本発明は、その趣旨または主要な特徴から逸脱することなく他の特定の形式において具現化することができる。記載した実施形態は、あらゆる点において単に例示であって制限するものではないとみなされるべきである。従って、本発明の範囲は、前述の記載によるのではなく、添付の請求項により示すものである。請求項と等価の意味および範囲に入る全ての変更は、請求項の範囲に包含される。
【図１】
0005937078.tif 000002
【図２】
0005937078.tif 000003
【図３】
0005937078.tif 000004
【図４】
0005937078.tif 000005