(57)【特許請求の範囲】
【請求項１】
分散コンピュータ化された環境において外部デバイス(200、300、300')にセッションを提供する方法であって、前記セッションには、前記外部デバイス(200、300、300')とシステム(100)のアプリケーションサーバ(A1、…、C4)との間で通信を確立することが要求され、前記外部デバイス(200、300、300')および前記システム(100)が、クライアント/サーバモードで動作し、前記システム(100)は、前記クライアントモードと前記サーバモードのうちの一方のモードで動作し、前記外部デバイス(200、300、300')は、前記クライアントモードと前記サーバモードのうちの他方のモードで動作する、方法において、各アプリケーションサーバが、少なくとも1つのソフトウェアアプリケーション(A、B、C、D)を処理し、前記アプリケーションサーバ(A1、…、C4)のうちの少なくともいくつかが、データ格納手段において前記セッションのコンテキストの少なくとも一部分をローカルで格納するように構成され、それにより、様々なアプリケーションサーバ(A1、…、C4)を介して前記コンテキストを割り振ることを可能にし、
前記システム(100)内に備えられた少なくとも1つのルーティング手段(10、15)が、所与のセッションに関して、前記外部デバイス(200、300、300')と前記アプリケーションサーバ(A1、…、C4)のうちの少なくとも1つとの間で通信を確立するステップを実行し、
前記通信を確立するステップは、少なくとも1つのデータプロセッサを有する前記ルーティング手段(10、15)において実行される以下のステップ、すなわち、
前記アプリケーションサーバと前記外部デバイスのうちの一方から、前記アプリケーションサーバと前記外部デバイスのうちの他方に到達するコールを受信するステップ、
前記コールがセッション識別子(ID)を含むかどうかを判定するステップであって、
前記コールがセッションIDを含んでいない場合、前記通信のためにセッションを開き、前記セッションを一意に識別するセッションIDを作成し、前記セッションIDを前記コールに追加し、前記セッションIDを格納し、前記コールを、前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの他方にルーティングし、それにより、前記通信を確立し、
前記コールが既にセッションIDを含む場合、前記コールを前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの他方にルーティングして、それにより、前記通信を確立し、前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを、前記通信が前記既に開かれているセッションの前記コンテキストを共有できるようにすることによって可能にする、
ステップを含み、
前記システム(100)は、複数のルーティング手段(10、11、12、13、15)を備え、所与のセッションに関して、前記複数のルーティング手段のうちの1つのルーティング手段は、前記外部デバイス(200、300、300')と前記システム(100)との間でトランザクションをルーティングすることを担うメインルーティング手段(10、15)であり、  前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを可能にする前記ステップは、前記コールを受信する前記ルーティング手段において実行される以下のステップ、すなわち、前記複数のルーティング手段のうちのいずれのルーティング手段が、前記既に開かれているセッションに関する前記メインルーティング手段であるかを識別するために、その他のルーティング手段にポーリングするステップと、その後、前記トランザクションを前記メインルーティング手段に転送するステップとを含む
ことを特徴とする方法。
【請求項２】
前記確立された通信は、第1のセッションIDを有し、第1のプロトコルを使用し、少なくとも別の通信は、同一のセッションIDを有し、前記第1のプロトコルとは異なる第2のプロトコルを使用する請求項1に記載の方法。
【請求項３】
前記外部デバイス(200)は、前記システム(100)がサーバモードで動作するのに対してクライアントモードで動作する請求項1または2に記載の方法。
【請求項４】
同一のセッションIDを有するコールを受信するすべてのアプリケーションサーバ(A1、…、C4)は、前記外部デバイス(200)に対する同一のインバウンドのセッションを共有する請求項3に記載の方法。
【請求項５】
前記外部デバイス(300、300')は、前記システム(100)がクライアントモードで動作するのに対してサーバモードで動作する請求項1または2に記載の方法。
【請求項６】
同一のセッションIDを共有するコールを受信するすべてのアプリケーションサーバ(A1、…、C4)は、前記外部デバイス(300、300')に対する同一のアウトバウンドの通信を共有する請求項5に記載の方法。
【請求項７】
前記外部デバイス(200)は、前記システム(100)がサーバモードで動作するのに対してクライアントモードで動作し、さらなる外部デバイス(300)は、前記システム(100)がクライアントモードで動作するのに対してサーバモードで動作する請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記ルーティング手段においてコールを受信する前記ステップの後、および前記コールがセッション識別子(ID)を含むかどうかを判定する前記ステップの前に、前記コールには、既に開かれているセッションに加わることが要求されていることを判定するさらなるステップを含む請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記コールには、既に開かれているセッションに加わることが要求されていることを判定する前記ステップは、既に開かれているセッションに加わる要求を受信するステップを含み、前記コールは、セッションに加わる要求を含んだヘッダを含む請求項8に記載の方法。
【請求項１０】
前記コールには、既に開かれているセッションに加わることが要求されていることを判定する前記ステップは、以下のステップ、すなわち、前記ルーティング手段が、前記受信されたコールが、既に開かれているセッションに加わる要求に専用のソフトウェアアプリケーションを処理するアプリケーションサーバから来ること、または前記アプリケーションサーバにルーティングされるように要求することを判定するステップであって、前記アプリケーションサーバは、前記受信されたコールが、既に開かれているセッションに加わらなければならないことを前記ルーティング手段に示す、ステップを含む請求項8に記載の方法。
【請求項１１】
セッションの所与の通信に、前記セッションを閉じることを制御するプロパティが与えられる請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記プロパティは、前記所与の通信が閉じられると、前記セッションを閉じるように構成されている請求項11に記載の方法。
【請求項１３】
前記プロパティは、前記所与の通信が閉じられると、かつそのセッションに関して依然として開かれている他の通信が存在しない場合、前記セッションを閉じるように構成され、前記プロパティは、前記所与の通信が閉じられると、かつ少なくとも別の通信が、そのセッションに関して依然として開かれている場合、前記セッションを開かれたままにするように構成されている請求項11に記載の方法。
【請求項１４】
前記プロパティは、前記所与の通信が閉じられると、始まる所定のインアクティブ期間の終わりの後、前記セッションを閉じるように構成されている請求項11に記載の方法。
【請求項１５】
セッションが閉じられると、前記ルーティング手段は、そのセッションに関して通信を共有しているすべてのアプリケーションサーバ(A1、…、C4)にセッション終了の通知を送信する請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記システムは、或るソフトウェアアプリケーションに専用のアプリケーションサーバ(A1、…、C4)のグループ(20、30、40)を形成するアプリケーションサーバ(A1、…、C4)を備え、同一のグループ(20)の各アプリケーションサーバ(A1、…、A8)は、前記グループが専用である前記ソフトウェアアプリケーション(A)を独立に処理し、アプリケーションサーバは、セッションの前記コンテキストの一部分を格納して、それにより、各セッションに関して、ユーザセッションとの親和性をそれぞれが有するアプリケーションサーバのセットを規定し、前記方法は、前記ルーティング手段において以下のステップ、すなわち、
前記セッションに、親和性キーを含むように構成された相互関係レコード(DCX)を割り当てるステップであって、各親和性キーは、所与のソフトウェアアプリケーションに関して前記セッションと親和性を有する前記アプリケーションサーバを示す、ステップと、
前記トランザクションとともに、前記トランザクションを処理することに関係があるアプリケーションサーバに前記相互関係レコードを伝搬し、それにより、すべての前記ルーティング手段が、そのセッションの前記コンテキストにリンクされた前記アプリケーションサーバをターゲットにすることを可能にするステップと
を含む請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記外部デバイスは、クライアントモードで動作し、前記システム(100)は、サーバモードで動作し、前記外部デバイスは、既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くように要求し、セキュリティ設定を継承するステップは、前記既に開かれているセッションのコンテキストの一部分を複製するステップを含み、コンテキストの前記一部分は、前記既に開かれているセッションのセキュリティ設定を含み、前記新たなセッションは、前記既に開かれているセッションの前記コンテキストとは無関係であるコンテキストを、セキュリティ設定を含むそのコンテキストの一部分を除いて有する請求項1から16のいずれか一項に記載の方法。
【請求項１８】
既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くように要求するステップは、前記ルーティング手段において実行される以下のステップ、すなわち、
前記外部デバイスから、新たなセッションを開く要求と、前記既に開かれているセッションを識別するセッションIDとを受信するステップ、
前記セッションIDに基づいて、前記既に開かれているセッションの前記セキュリティ設定を取り出すステップ、
前記新たなセッションの通信とともに前記セキュリティ設定を伝搬するステップを含む請求項17に記載の方法。
【請求項１９】
ソフトウェアプログラム命令を含む持続性コンピュータ可読記憶媒体であって、
少なくとも1つのデータプロセッサによる前記ソフトウェアプログラム命令の実行は、請求項1から18のいずれか一項に記載の方法の実行を含む動作の実行をもたらす持続性コンピュータ可読記憶媒体。
【請求項２０】
分散コンピュータ化された環境において外部デバイス(200、300、300')にセッションを提供するシステムであって、前記セッションには、前記外部デバイス(200、300、300')と当該システム(100)内に備えられたアプリケーションサーバ(A1、…、C4)との間で通信を確立することが要求され、当該システム(100)は、前記外部デバイス(200、300、300')とともにクライアント/サーバモードで動作するように構成され、当該システム(100)は、前記クライアントモードと前記サーバモードのうちの一方のモードで動作し、前記外部デバイス(200、300、300')は、前記クライアントモードと前記サーバモードのうちの他方のモードで動作し、当該システムは、少なくとも1つのプロセッサをそれぞれが備える複数のマシンを備え、前記マシンのうちの少なくともいくつかは、データ格納手段を備え、各アプリケーションサーバは、マシン上で実行されるとともに、少なくとも1つのソフトウェアアプリケーションをそれぞれが処理するように構成され、前記アプリケーションサーバ(A1、…、C4)のうちの少なくともいくつかは、データ格納手段において前記セッションのコンテキストの少なくとも一部分をローカルで格納するように構成され、それにより、様々なアプリケーションサーバ(A1、…、C4)を介して前記コンテキストを割り振ることを可能にする、システムにおいて、
前記外部デバイス(200、300、300')と前記アプリケーションサーバ(A1、…、C4)との間で通信を確立するように構成された少なくとも1つのデータプロセッサを含むルーティング手段(10、15)を備え、前記1つまたは複数のルーティング手段(10、15)は、
前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの一方から、前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの他方に到達するコールを受信し、
前記コールがセッション識別子(ID)を含むかどうかを判定する
ように構成され、
前記コールがセッションIDを含んでいない場合、前記通信のためにセッションを開き、前記セッションを一意に識別するセッションIDを作成し、前記セッションIDを前記コールに追加し、前記セッションIDを格納し、前記コールを、前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの他方にルーティングし、それにより、前記通信を確立し、
前記コールが既にセッションIDを含む場合、前記コールを前記アプリケーションサーバと前記外部デバイス(200、300、300')のうちの他方にルーティングして、それにより、前記通信を確立し、前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを、前記通信が前記既に開かれているセッションの前記コンテキストを共有できるようにすることによって可能にし、
前記システム(100)は、複数のルーティング手段(10、11、12、13、15)を備え、所与のセッションに関して、前記複数のルーティング手段のうちの1つのルーティング手段は、前記外部デバイス(200、300、300')と前記システム(100)との間でトランザクションをルーティングすることを担うメインルーティング手段(10、15)であり、
前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを可能にする処理は、前記コールを受信する前記ルーティング手段において実行される以下のステップ、すなわち、前記複数のルーティング手段のうちのいずれのルーティング手段が、前記既に開かれているセッションに関する前記メインルーティング手段であるかを識別するために、その他のルーティング手段にポーリングするステップと、その後、前記トランザクションを前記メインルーティング手段に転送するステップとを含む
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、分散コンピュータ化された環境において外部デバイスにセッションを提供するシステムおよび方法に関し、ここでは、セッションには、クライアント/サーバモードで動作しているその外部デバイスとシステムの間の通信を確立することが要求される。より詳細には、本発明は、場合により、非常にヘテロジニアスな通信が共通のセッションを共有しなければならない方法およびシステムに関する。
【背景技術】
【０００２】
多くの既存のシステムが、外部デバイスに、システムの複数のソフトウェアアプリケーションと外部デバイスとの間の様々な通信を含むセッションを提供するように構成され、ここでは、外部デバイスとシステムは、クライアント/サーバモードで動作する。
【０００３】
これらの既存のソリューションは、同種の環境、すなわち、1つのセッションに関与する複数のソフトウェアアプリケーションが共通のプロトコルを使用する環境に関して効率的であることが判明している。
【０００４】
しかし、これらの既存のシステムでは、セッション全体に関して共通のコンテキストを共有しながら、異なるプロトコルを使用して通信をすることは特に困難である。たいてい、所与のセッションに関するコンテキストは、関与する複数のアプリケーションサーバによって使用されるプロトコルごとに複製されなければならない。そのような既存のソリューションは、処理能力およびデータ格納能力を消費する。詳細には、既存のシステムは、所与のプロトコルを使用するアプリケーションから、同一のコンテキストを共有しながら他のプロトコルを使用するアプリケーションに段階的に移行する効率的なソリューションを提供しない。
【０００５】
さらに、通信によって使用されるプロトコルとは独立に、外部デバイスがクライアントモードで動作しているシステムに対してサーバモードで動作する場合、およびシステムが、いくつかのアプリケーションサーバを備える場合、すべての通信を、共通のセッションを共有して行うことは特に複雑である。既存のソリューションにおいて、システムには、システムからの複数のクエリをマージして、外部デバイスに対する同一のアウトバウンドの通信にするように構成された専用のアプリケーションサーバが備えられる。しかし、これらの専用のアプリケーションサーバには、これらの既存のシステムのスループットを低下させる、またはこれらの既存のシステムをひどく信頼性の低いものにする、もしくは複雑にする、大きな負荷がかかる。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、本発明の全般的な目的は、既存のソリューションの前述した弱点のうちの少なくとも1つを解決する、または制限することである。
【０００７】
より詳細には、本発明の目的は、外部デバイスに、共通のコンテキストを共有しなければならない複数のヘテロジニアスな通信を含むセッションの統一された見通しが与えられるソリューションを説明することである。
【課題を解決するための手段】
【０００８】
本発明の実施形態により、前述の目的、および他の目的が達せられ、さらに他の利点が実現される。
【０００９】
本発明は、外部デバイスにセッションを提供する方法を開示し、このセッションには、その外部デバイスとシステムの複数のアプリケーションサーバとの間で通信を確立することが要求される。その外部デバイスとシステムは、クライアント/サーバモードで動作し、システムは、クライアントモードとサーバモードのうちの一方のモードで動作し、外部デバイスは、クライアントモードとサーバモードのうちの他方のモードで動作する。
【００１０】
各アプリケーションサーバは、少なくとも1つのソフトウェアアプリケーションを処理し、アプリケーションサーバのうちの少なくともいくつかは、データ格納手段の中に、セッションのコンテキストの少なくとも一部分を格納して、それにより、そのコンテキストを、そのセッションにリンクされた様々なアプリケーションサーバによって割り振ることを可能にするように構成されている。システムには、所与のセッションに関して、外部デバイスと複数のアプリケーションサーバのうちの1つとの間で通信を確立するように構成された少なくともルーティング手段が備えられる。この通信を確立することは、少なくとも1つのデータプロセッサを有するルーティング手段において実行される以下のステップ、すなわち、
アプリケーションサーバと外部デバイスのうちの一方から、アプリケーションサーバと外部デバイスのうちの他方に到達するコールを受信するステップ、
コールがセッション識別子(ID)を含むかどうかを判定するステップ
を含み、
コールがセッションIDを含んでいない場合、前記通信のためにセッションを開き、前記セッションを一意に識別するセッションIDを作成し、セッションIDをコールに追加し、セッションIDを格納し、さらにコールを、アプリケーションサーバと外部デバイスのうちの他方にルーティングして、それにより、通信を確立し、
コールが既にセッションIDを含む場合、コールをアプリケーションサーバと外部デバイスのうちの他方にルーティングし、前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを可能にし、それにより、通信を確立し、通信が、既に開かれているセッションのコンテキストを共有できるようにする。
【００１１】
本発明の別の態様は、ソフトウェアプログラム命令を含む持続性コンピュータ可読記憶媒体に関し、少なくとも1つのデータプロセッサによるソフトウェアプログラム命令の実行が、前述した特徴およびステップのいずれか1つにおける方法の実行を含む動作の実行をもたらす。
【００１２】
別の態様によれば、本発明は、前述の特徴およびステップのいずれか1つにおける方法を実行するように構成された手段を備えるシステムに関する。
【００１３】
本発明の別の態様は、外部デバイスにセッションを提供するためのシステムであり、このセッションには、外部デバイスと、システム内に備えられた複数のアプリケーションサーバとの間で通信を確立することが要求され、システムは、外部デバイスとともにクライアント/サーバモードで動作するように構成されている。システムは、クライアントモードとサーバモードのうちの一方のモードで動作し、さらに外部デバイスは、クライアントモードとサーバモードのうちの他方のモードで動作する。各アプリケーションサーバは、少なくともソフトウェアアプリケーションを処理するように構成されている。各アプリケーションサーバは、マシン上で実行される。これらのマシンのうちの少なくともいくつかには、データ格納手段が備えられる。それらのアプリケーションサーバのうちの少なくともいくつかは、データ格納手段の中に、セッションのコンテキストの少なくとも一部分を格納するように構成され、それにより、そのセッションにリンクされた様々なアプリケーションサーバによってコンテキストを割り振ることを可能にする。
【００１４】
システムは、外部デバイスと複数のアプリケーションサーバとの間で通信を確立するように構成された少なくともデータプロセッサを含むルーティング手段を備える。1つまたは複数のルーティング手段は、
アプリケーションサーバと外部デバイスのうちの一方から、アプリケーションサーバと外部デバイスのうちの他方に到達するコールを受信し、
このコールがセッション識別子(ID)を含むかどうかを判定する
ように構成され、
コールがセッションIDを含んでいない場合、前記通信のためにセッションを開き、前記セッションを一意に識別するセッションIDを作成し、セッションIDをコールに追加するとともに、セッションIDを格納し、コールを、アプリケーションサーバと外部デバイスのうちの他方にルーティングし、それにより、通信を確立し、
コールが既にセッションIDを含む場合、コールをアプリケーションサーバと外部デバイスのうちの他方にルーティングし、前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを可能にし、それにより、通信を確立し、通信が、前記既に開かれているセッションのコンテキストを共有できるようにする。
【００１５】
本発明の実施形態の上述のおよび他の態様は、添付の図面と併せて読むと、以下の「発明を実施するための形態」においてより明白となる。
【図面の簡単な説明】
【００１６】
【図１】外部デバイスに、異なるプロトコルを使用する通信を含むセッションが提供される、本発明の実施形態によるシステムの例を示す図である。
【図２】外部デバイスに、異なるプロトコルを使用する通信を含むセッションが提供される、本発明のシステムの実施形態によるシステムの別の例を示す図である。
【図３】システムの様々なアプリケーションサーバが、外部デバイスに対する共通のアウトバウンド通信を共有する、本発明の実施形態によるシステムの例を示す図である。
【図４】外部デバイスがシステムに対してクライアントモードで動作し、別のアプリケーションサーバがシステムに対してサーバモードで動作する一方で、外部デバイスとシステムの間のすべての通信は、共通のコンテキストを共有する、本発明の実施形態によるシステムの例を示す図である。
【図５】外部デバイスが、以前のセッションからセキュリティ設定を、後のセッションのためにそれらのセキュリティ設定を使用する目的で継承する、本発明の実施形態によるシステムの例を示す図である。
【発明を実施するための形態】
【００１７】
いくつかの有利な特徴およびステップが、以下に説明される。次に、いくつかの例示的な実施形態および使用事例が、図面に関連してさらに詳細に説明される。
【００１８】
本発明は、外部デバイスにセッションを提供する方法を開示し、セッションには、外部デバイスとシステムの複数のアプリケーションサーバとの間で通信を確立することが要求される。外部デバイスとシステムは、クライアント/サーバモードで動作し、システムは、クライアントモードとサーバモードのうちの一方のモードで動作し、外部デバイスは、クライアントモードとサーバモードのうちの他方のモードで動作する。
【００１９】
各アプリケーションサーバは、少なくとも1つのソフトウェアアプリケーションを処理し、アプリケーションサーバのうちの少なくともいくつかは、データ格納手段の中に、セッションのコンテキストの少なくとも一部分を格納するように構成さえr、それにより、そのコンテキストを、そのセッションにリンクされた様々なアプリケーションサーバによって割り振ることを可能にする。システムには、所与のセッションに関して、外部デバイスと複数のアプリケーションのうちの1つのアプリケーションとの間で通信を確立するように構成された少なくとも1つのルーティング手段が備えられる。通信を確立することは、少なくとも1つのデータプロセッサを有するルーティング手段において実行される以下のステップ、
アプリケーションサーバと外部デバイスのうちの一方から、アプリケーションサーバと外部デバイスのうちの他方に到達するコールを受信するステップ、
このコールがセッション識別子(ID)を含むかどうかを判定ステップ
を含み、
コールがセッションIDを含んでいない場合、前記通信のためにセッションを開き、前記セッションを一意に識別するセッションIDを作成し、セッションIDをコールに追加し、セッションIDを格納し、コールを、アプリケーションサーバと外部デバイスのうちの他方にルーティングし、それにより、通信を確立し、
コールが既にセッションIDを含む場合、コールをアプリケーションサーバと外部デバイスのうちの他方にルーティングし、前記通信が、前記セッションIDによって一意に識別される、既に開かれているセッションに加わることを可能にし、それにより、通信を確立し、通信が、既に開かれているセッションのコンテキストを共有できるようにする。
【００２０】
このため、本発明は、通信が開かれること、およびセッションを一意に識別することを可能にし、その後、セッションに加わることが可能な別の通信を有することを可能にする。このため、これらの通信は、これらの通信のプロトコルがどのようなものであれ、そのセッションのコンテキストを共有することができる。したがって、外部デバイスには、それらの加わった通信を含むセッションの統一された、一貫性のある見通しが与えられ得る。
【００２１】
ユーザにセッションの統一された見通しを与えることは、それらの様々なソフトウェアアプリケーションが、様々な、独立したアプリケーションサーバによって処理されていることにユーザが気付かないことを意味する。このため、セッションに関与するソフトウェアアプリケーションおよびアプリケーションサーバの数は、ユーザにトランスペアレントである。ユーザは、システムが1つの一意のアプリケーションサーバとマシンであるかのように、システムと通信する。
【００２２】
いくつかのトランザクションおよび通信が、システムが、外部デバイスに対してサーバモードで動作する場合、同一のインバウンドのセッションを共有することができ、またはシステムが、外部デバイスに対してクライアントモードで動作する場合、同一のアウトバウンドの通信を共有することができる。
【００２３】
さらに、外部デバイスには、セッションの統一された、一貫性のある見通しが与えられるものの、待ち状態のセッションにわずかしか、または全く影響を与えずに、さらなるアプリケーションサーバがシステムに追加されて、それにより、システムの処理容量が増加し得る。さらに、外部デバイスには、セッションの統一された、一貫性のある見通しが与えられるものの、待ち状態のセッションにわずかしか、または全く影響を与えずに、さらなるソフトウェアアプリケーションがシステムに組み込まれて、それにより、新たなサービスが組み込まれることが可能である。
【００２４】
オプションとして、本発明による方法は、追加の、ただし、限定的ではない特徴およびステップのいずれの特徴またはステップを含むことも可能である。
【００２５】
好ましくは、各アプリケーションサーバは、単一のソフトウェアアプリケーションを処理する。このため、各アプリケーションサーバは、単一のソフトウェアアプリケーションに専用である。
【００２６】
確立されるべき通信は、第1のセッションIDを有し、第1のプロトコルを使用し、少なくとも別の通信は、同一のセッションIDを有し、第2のプロトコルを使用する。
【００２７】
このため、本発明の特に有利な、ただし、限定的ではない特徴によれば、すべての通信は、それらの通信が呼び出すソフトウェアアプリケーションがどのようなものであれ、それらの通信のプロトコルがどのようなものであれ、同一のセッションを共有することができる。例えば、外部デバイスは、第1のソフトウェアアプリケーションを呼び出すとともに、第1の通信プロトコルを使用する第1のトランザクションでセッションを開くことができる。次に、外部デバイスは、同一のセッションを介して、第2の通信プロトコルを使用する第2のソフトウェアアプリケーションを呼び出すことができる。
【００２８】
本発明のこの特徴は、いくつかのソフトウェアアプリケーションから、別のプロトコルを使用する他のソフトウェアアプリケーションへの移行を段階的に行うために特に有利である。実際、本発明は、以前のソフトウェアアプリケーションのコンテキストを共有しながら、新たなソフトウェアアプリケーションを組み込むこと、および処理することを可能にする。したがって、移行が段階的に行われることが可能であり、このことは、すべてのソフトウェアアプリケーションに関する移行を1つのステップで行うことと比べて、はるかに安全である。
【００２９】
既存のシステムは、所与のプロトコルを使用するアプリケーションから他のプロトコルを使用するアプリケーションに、同一のコンテキストを共有しながら段階的な移行を行う効率的なソリューションを提供しない。
【００３０】
好ましくは、ルーティング手段は、企業サービスバスである。
【００３１】
このシステムは、複数のルーティング手段を備える。所与のセッションに関して、その複数のルーティング手段のうちの1つのルーティング手段が、外部デバイスとシステムの間でトランザクションをルーティングすることを担うメインルーティング手段である。前記通信が、前記セッションIDによって一意に識別される既に開かれているセッションに加わることを可能にするステップは、コールを受信するルーティング手段において実行される以下のステップ、すなわち、
複数のルーティング手段のうちのいずれのルーティング手段が、前記既に開かれているセッションに関するメインルーティング手段であるかを知るために、その他のルーティング手段にポーリングを行うステップ、および、その後、
トランザクションをメインルーティング手段に転送するステップ
を含む。
【００３２】
好ましくは、ルーティング手段は、少なくとも1つの企業サービスバス(ESB)である。ESBは、トランザクションをルーティングすることを担う複数のESB構成要素を備える。或るセッションに加わる要求を伴ってESB構成要素に到達するコールは、そのセッションのセッションIDですべてのESB構成要素にポーリングを行うことによって、そのセッションを担うESB構成要素に転送される。
【００３３】
本発明の或る実施形態によれば、外部デバイスは、システムがサーバモードで動作するのに対してクライアントモードで動作する。外部デバイスは、複数のヘテロジニアスなプロトコルでシステムにアクセスするいくつかのヘテロジニアスな構成要素から成ることが可能である。
【００３４】
このため、そのような使用事例に関して、外部デバイスは、いくつかの通信を使用してサーバにアクセスしている場合でさえ、1つだけの通信が使用されているかのように、セッションの統一された見通しをもたらすことができる。
【００３５】
同一のセッションIDを有する外部デバイスのすべての構成要素は、それらの構成要素が単一の通信を使用する単一のデバイスであるかのように、アプリケーションサーバにトランザクションを送信する。
【００３６】
本発明の別の実施形態によれば、外部デバイスは、システムがクライアントモードで動作するのに対してサーバモードで動作する。
【００３７】
このため、そのような使用事例に関して、外部デバイスには、セッションの統一された見通しが、そのセッションの、様々なアプリケーションサーバから来るすべての通信およびトランザクションが、単一のアプリケーションサーバから来ているかのように、与えられ得る。このため、本発明は、システムからの複数のクエリをマージして、外部デバイスに対する共通のアウトバウンドの通信にするのに専用のソフトウェアアプリケーションを有する必要性を軽減する。
【００３８】
同一のセッションIDを共有するコールを受信するすべてのアプリケーションサーバが、外部デバイスに対する同一のアウトバウンドの通信を共有することができる。より正確には、同一のセッションIDを有する複数のアプリケーションサーバからのすべての通信が、ルーティング手段と外部デバイスの間のアウトバウンドの部分である、通信の共通の部分を共有する。
【００３９】
本発明の別の実施形態によれば、外部デバイスは、システムがサーバモードで動作するのに対してクライアントモードで動作し、さらなる外部デバイスは、システムがクライアントモードで動作するのに対してサーバモードで動作する。
【００４０】
ルーティング手段においてコールを受信するステップの後、かつコールがセッション識別子(ID)を含むかどうかを判定するステップの前に、方法は、コールには、既に開かれているセッションに加わることが要求されていることを判定するさらなるステップを含む。
【００４１】
コールには、既に開かれているセッションに加わることが要求されていることを判定するステップは、既に開かれているセッションに加わる要求を受信するステップを含む。既に開かれているセッションに加わるこの要求は、暗黙的であると言われる。好ましくは、既に開かれているセッションに加わる要求は、前記コールのプロトコルのセッション層の中に保持される。
【００４２】
代替として、コールには、既に開かれているセッションに加わることが要求されていることを判定するステップは、以下のステップ、すなわち、ルーティング手段が、受信されたコールが、既に開かれているセッションに加わる要求に専用のソフトウェアアプリケーションを処理するアプリケーションサーバから来ること、またはそのようなサーバにルーティングされるように要求することを判定するステップを含み、このアプリケーションサーバは、受信されたコールが、既に開かれているセッションに加わらなければならないことをルーティング手段に示す。既に開かれているセッションに加わるこの要求は、明示的であると言われる。
【００４３】
既に開かれているセッションに加わる明示的な要求は、外部デバイスによって送信され得る。
【００４４】
代替として、既に開かれているセッションに加わる暗黙的な要求が、システムによって送信され得る。したがって、いくつかのアプリケーションサーバが、外部デバイスに対する共通のアウトバウンドの通信を共有することが可能である。
【００４５】
通信プロパティ
有利には、セッションの所与の通信は、セッションを閉じることを制御するプロパティを含む。
【００４６】
或るプロパティは、前記所与の通信が閉じられると、セッションを閉じるように構成されている。このプロパティは、「所有者プロパティ」と呼ばれる。
【００４７】
別のプロパティは、前記所与の通信が閉じられ、さらにそのセッションに関して依然として開かれている他の通信が存在しない場合、そのセッションを閉じるように構成され、さらに前記所与の通信が閉じられ、さらにそのセッションに関して依然として開かれている少なくとも1つの別の通信が存在する場合、そのセッションを開かれたままにするように構成されている。このプロパティは、「単純共有プロパティ」と呼ばれる。
【００４８】
別のプロパティは、前記所与の通信が閉じられると始まる所定のインアクティブ期間の終わりの後、さらにそのセッションに関して依然として開かれている他の通信が存在しない場合、そのセッションを閉じるように構成されている。その後、通信が閉じられると、任意の新たな通信が、所定の期間中にそのセッションに加わることができる。このプロパティは、「終了継続(Keep on exit)プロパティ」と呼ばれる。
【００４９】
有利には、或るセッションが閉じられると、ルーティング手段は、そのセッションに関する通信を共有するすべてのアプリケーションサーバに、セッション終了(session closure)の通知を送信する。
【００５０】
好ましくは、セッションを担うルーティング手段が、そのセッションに関して動作しているすべてのアプリケーションサーバのリファレンスを保持する。これらのリファレンスにより、ルーティング手段は、セッションが閉じられたことをアプリケーションサーバに知らせることができる。
【００５１】
アプリケーションサーバにおいてセッション終了の通知が受信されると、前記アプリケーションサーバは、そのサーバがそのセッションに関して扱う通信を閉じる。
【００５２】
アプリケーションサーバに、セッションコンテキストの一部分を格納するように構成されたデータ格納手段が備えられている場合、方法は、セッション終了の通知が受信されると、セッションコンテキストの前記部分を削除するさらなるステップを含む。したがって、処理能力および格納能力の使用が最適化される。
【００５３】
或る好ましい実施形態によれば、複数のアプリケーションサーバは、或るソフトウェアアプリケーションに専用のアプリケーションサーバのグループを形成し、同一のグループの各アプリケーションサーバは、そのグループが専用であるソフトウェアアプリケーションを独立に処理し、アプリケーションサーバは、セッションのコンテキストの一部分を格納して、それにより、各セッションに関して、ユーザセッションとの親和性(affinity)をそれぞれが有するアプリケーションサーバのセットを規定し、方法は、以下のステップ、すなわち、
ルーティング手段において、セッションに、親和性キーを含むように構成された相互関係レコード(DCX)を割り当てるステップであって、各親和性キーは、所与のソフトウェアアプリケーションに関するセッションとの親和性を有するアプリケーションサーバを示す、ステップ、
相互関係レコードをトランザクションとともに伝搬して、それにより、ルーティング手段が、そのセッションのコンテキストにリンクされた複数のアプリケーションサーバをターゲットにすることを可能にする、ステップ
を含む。
【００５４】
或る限定的ではない実施形態によれば、セッションIDは、相互関係レコードの中に格納される。
【００５５】
すべてのアプリケーションサーバは、互いに独立である。アプリケーションサーバは、互いの存在も、ロケーションも知らない。ルーティング手段によって読み取られる相互関係レコードだけが、複数のソフトウェアアプリケーションの間で通信を確立することを可能にする。
【００５６】
このため、親和性キーは、相互関係レコードに追加される、ルーティング手段が、トランザクションを処理することに関係があるセッションにリンクされたコンテキストの部分を使用してアプリケーションサーバをターゲットにすることを可能にするリファレンスである。
【００５７】
有利には、セッションIDは、相互関係レコードと一緒に格納され、または相互関係レコードの中に格納される。
【００５８】
このため、セッションIDは、セッションに関与するすべてのアプリケーションサーバに親和性キーと一緒に伝搬される。それにより、所与のセッションのセッションIDは、そのセッションに関するセッションコンテキストを保持するすべてのアプリケーションサーバと暗黙的に共有される。
【００５９】
セッションIDは、ルーティング手段によって作成される。1つまたは複数のルーティング手段は、いずれのアプリケーションサーバに対してもどのように到達すべきかを知っている。このため、1つまたは複数のルーティング手段は、各アプリケーションサーバの存在、およびそのアプリケーションサーバがどこに配置されているかを知っている。また、1つまたは複数のルーティング手段は、いずれのアプリケーションサーバ上で所与のソフトウェアアプリケーションが処理されるかも知っている。好ましくは、
相互関係レコードは、セッションを担うルーティング手段に関連付けられたデータ格納手段の中に格納され、
メインルーティング手段は、ユーザ要求を受信するルーティング手段であり、
親和性キーは、ルーティング手段によって設定される。
【００６０】
セキュリティ設定、セキュリティコンテキストのクローニング
或る好ましい実施形態によれば、外部デバイスは、クライアントモードで動作し、さらにシステムは、サーバモードで動作する。外部デバイスは、既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くように要求する。
【００６１】
セキュリティ設定を継承することは、既に開かれているセッションのコンテキストの一部分を複製することを含み、コンテキストの前記一部分は、既に開かれているセッションのセキュリティ設定を含む。
【００６２】
新たなセッションのコンテキストは、セキュリティ設定を含むコンテキストの部分を除いて、既に開かれているセッションのコンテキストとは無関係である。既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くことを要求することは、ルーティング手段において実行される以下のステップ、すなわち、
外部デバイスから、新たなセッションを開く要求と、既に開かれているセッションを識別するセッションIDとを受信するステップ、
前記セッションIDにより、既に開かれているセッションのセキュリティ設定を取り出すステップ、
新たなセッションの通信とともに前記セキュリティ設定を伝搬するステップ
を含む。
【００６３】
したがって、同一のセキュリティ設定を共有しながら、専用の適用コンテキストをそれぞれが有する様々なセッションが開かれ得る。セキュリティ設定と関係するコンテキストの部分だけが、複製される。コンテキストの残りの部分は、複製されない。
【００６４】
このため、セッションごとに認証を実行する必要性を軽減しながら、各セッションの独立が維持される。
【００６５】
したがって、セキュリティ管理および面倒な認証に専用のアプリケーションサーバの負荷を制限しながら、多数の要求がシステムに送信され得る。また、本発明は、通信のプールによってクエリを処理する必要性を回避する。
【００６６】
好ましくは、既に開かれているセッションの通信によって生成されるセキュリティ設定は、その既に開かれているセッションのセッションIDに関連してルーティング手段において受信され、さらに格納される。次に、新たなセッションの通信が、ルーティング手段に、既に開かれているセッションのセッションIDを、既に開かれているセッションのセキュリティ設定を取り出すために与え、それにより、新たなセッションのたびに認証を行う必要性が軽減し得る。
【００６７】
或る好ましい実施形態によれば、同一のセキュリティコンテキストを共有するすべてのセッションは、リンクされ、したがって、外部デバイスは、単一の要求ですべてのセッションを閉じることができる。同様に、遠隔のセキュリティ管理者が、同一のセキュリティコンテキストを共有するすべてのセッションを閉じることを、1つの要求で要求することができる。
【００６８】
セキュリティコンテキストを共有することを求める要求は、専用のサービスコールを使用して明示的に実行され得る。代替として、そのような要求は、プロトコルのセッション層の中で保持される要求によって暗黙的に実行されて、それにより、同一の認証を使用しながらシステムに並行のステートレス(stateless)クエリを送信することが可能にされ得る。
【００６９】
本発明の脈絡において、外部デバイスは、処理ユニット、パーソナルコンピュータ、スマートフォン、処理ユニットを備えたデータベース、データストアなどのシステムである。
【００７０】
或る実施形態によれば、外部デバイスは、システムがサーバモードで動作するのに対してクライアントモードで動作する。このため、外部デバイスは、システムにクエリを送信することができる。通常、このタイプの外部デバイスは、ユーザのパーソナルコンピュータ、ウェブサイト上で実行されるサーバなどを集める。例えば、そのような外部デバイスは、ユーザが、旅行およびツーリズムの商品およびサービスを予約し、さらに購入することを可能にするウェブサイトである。典型的な商品は、フライト、列車、レンタカー、またはホテルと関係する。また、外部デバイスは、予約システムの一部を形成し、さらに旅行の空き状況と関係するクエリ(典型的には、フライトの空き状況と関係するクエリ)を送信するシステムであることも可能である。
【００７１】
別の実施形態によれば、外部デバイスは、サーバモードで動作し、システムは、クライアントモードで動作している。そのような外部デバイスの典型的な例が、システムにデータを供給する処理ユニットまたはデータストアである。例えば、そのような外部デバイスは、旅行およびツーリズムの商品およびサービスを提供する企業によって運用されるデータストアである。このデータストアは、フライトの空き状況を担当するインベントリであることが可能であり、さらに航空会社によって、またはグローバルディストリビューションシステム(GDS)によって運用可能である。
【００７２】
通信は、2つの構成要素の間の通信であり、それらの構成要素は、外部デバイスとシステムのアプリケーションサーバである、またはシステムの2つのアプリケーションサーバである。1つの通信当り、1つのプロトコルだけしか使用されない。
【００７３】
トランザクションは、クエリを満足させるのに要求されるすべての通信および処理を含む。通信を確立するコールは、外部デバイスまたはアプリケーションサーバのいずれか1つによって開始される。
【００７４】
セッションは、通常、複数の通信を含み、複数のトランザクションを含み得る。セッションは、コンテキストに関連付けられる。コンテキストは、アプリケーションサーバによって生成可能であり、さらに/または外部デバイスによって供給可能である。
【００７５】
本発明において、コンテキストとも呼ばれるユーザコンテキストは、ユーザと関係するとともに、セッションを処理することに関係があるコンテキストである。ユーザコンテキストは、この特定のユーザが、要求される機能を実行するのにシステムによって使用されるすべての機能上、および技術上の情報を表し、例えば、旅行予約システムにおいて、アクティブなエンドセッション(end-session)にリンクされた予約(買い物)セッションコンテキストを表す。
【００７６】
ユーザコンテキストの一部分は、ユーザ身元保証、出発日、または出発地、または目的地などのユーザによって供給されるデータであり得る。ユーザコンテキストの一部分は、格納手段にリンクされたソフトウェアアプリケーションによって要求され得る。また、ユーザコンテキストのその一部分は、そのソフトウェアアプリケーションによって生成されるデータであることも可能である。例えば、ユーザコンテキストのその一部分は、ソフトウェアアプリケーションによって取り出されるフライト空き状況、またはソフトウェアアプリケーションによって計算される、もしくは取り出される価格と関係することが可能である。また、ユーザコンテキストのその一部分は、乗客名簿(passenger name record、PNR)、またはPNRの一部分と関係することも可能である。
【００７７】
図1に例示されるとおり、システムは、トランザクションをルーティングするように構成されたルーティング手段10、11、12、13を備える。好ましくは、ルーティング手段は、エンタープライズサービスバスである。代替として、ルーティング手段は、トランザクションを適切なアプリケーションサーバにルーティングすることができるルータまたは他の任意の手段であることも可能である。以降、ルーティング手段は、性質にかかわらず、ESB、つまり、エンタープライズサービスバス、ルータなどと呼ばれる。
【００７８】
各ユーザセッションに関して、1つのESBがそのセッションを担う。このESBは、メインESBと呼ばれる。好ましくは、メインESBは、ユーザからの要求を受信するESB10である。メインESBが、いくつかのESB構成要素を備える場合、各セッションに関して、好ましくは、前記セッションを担う1つの構成要素が存在する。前記構成要素は、メインESB構成要素と呼ばれる。
【００７９】
好ましくは、システムは、複数のマシンを備える。各マシンは、少なくとも1つのアプリケーションサーバを実行している少なくとも1つの処理手段を備えるハードウェアデバイスである。また、これらのマシンの少なくともいくつかは、データ格納手段も備える。少なくとも1つのアプリケーションサーバが、マシン上で実行される。アプリケーションサーバA1、A2、…、C4…、が、処理手段を使用する。これらのアプリケーションサーバのうちの少なくともいくつかは、データ格納手段も使用する。したがって、アプリケーションサーバは、処理手段にリンクされ、最終的には、データ格納手段にリンクされる。
【００８０】
或る特定の実施形態によれば、複数のアプリケーションサーバが、単一のマシン上で実行される。各アプリケーションサーバは、サーバ独自の処理手段、最終的には、サーバ独自の最終データ格納手段を使用することが可能である。代替として、複数のアプリケーションサーバが、同一のプロセッサを共有してもよく、最終的には、同一のデータ格納手段を共有してもよい。
【００８１】
別の実施形態によれば、所与のマシンに関して1つだけのアプリケーションサーバが実行される。このため、この別の実施形態によれば、トランザクションをマシンにルーティングすることは、後段の説明におけるアプリケーションサーバにトランザクションをルーティングすることも意味する。
【００８２】
各アプリケーションサーバは、ソフトウェアアプリケーションを処理する。
【００８３】
有利には、同一のソフトウェアアプリケーションが、複数のアプリケーションサーバによって独立に処理され、これらのアプリケーションサーバは、同一のマシン上、または異なる複数のマシン上で実行される。
【００８４】
また、システムは、プラットフォームと呼ばれることも可能である。
【００８５】
複数のアプリケーションサーバが、グループ20、30、40に編成される。アプリケーションサーバは、マシンとも呼ばれる。
【００８６】
同一のグループのアプリケーションサーバの各アプリケーションサーバは、同一のソフトウェアアプリケーションを処理する。
【００８７】
すると、所与のソフトウェアアプリケーションが、いくつかのアプリケーションサーバ上で並行に処理され得る。例えば、グループ20の各アプリケーションサーバA1、A2、…、A8が、ソフトウェアアプリケーションAを処理する。グループ30の各アプリケーションサーバB1、B2、…、B8が、ソフトウェアアプリケーションBを処理する。グループ40の各アプリケーションサーバC1、C2、C3、C4が、ソフトウェアアプリケーションCを処理する。
【００８８】
所与のセッションに関して、1つのソフトウェアアプリケーション当り動作するアプリケーションサーバは、1つだけしか存在しない。このため、同一のソフトウェアアプリケーションを処理するアプリケーションサーバのグループの中で、1つのアプリケーションサーバが、その所与のセッションに専用である。
【００８９】
データを格納する必要がある各アプリケーションサーバには、データ格納手段が備えられる。所与のセッションに専用のアプリケーションサーバは、そのサーバが実行されるマシンの格納手段を使用する。このため、所与のセッションに専用のこのアプリケーションサーバは、これらの格納手段の中に、このアプリケーションサーバによって処理されるソフトウェアアプリケーションに関係のあるユーザコンテキストの部分を格納することができる。
【００９０】
このため、ユーザのコンテキストは、非常に多数である可能性があるアプリケーションサーバによって割り振られ、このユーザコンテキストの各部分が、ローカルで格納される。図1に示されるとおり、ユーザUaのコンテキストが、部分a0、a1、a2、a3を含み、さらにアプリケーションサーバA3、B8、C4によって割り振られる。a0は、メインESBのデータストレージの中に格納される。a0は、ユーザセッションを参照するセッションIDと、ユーザおよびアプリケーションサーバに関して開かれた通信と関係するすべてのデータとを含む。最終的には、a0は、相互関係レコードも含む。相互関係レコード(DCX)については、後段でさらに詳細に説明する。
【００９１】
したがって、所与のユーザセッションに専用であるすべてのアプリケーションサーバが、そのセッションとの親和性をそれぞれが有するアプリケーションサーバのセットを形成する。
【００９２】
次に、ヘテロジニアスな通信が共通のセッションを共有することを可能にするソリューションについて詳細に説明する。
【００９３】
外部デバイス200が、システム100にコールを送信する。ESB10が、このコールを受信する(ステップ101)。そのセッションに関して外部デバイス200によって開かれているそれまでの通信は、存在しない。このコール101は、セッション識別子(セッションID)を全く含んでいない。次に、ESB10が、セッションIDを作成し、さらにそのセッションIDを格納する。また、ESB10は、外部デバイス200によって呼び出されたソフトウェアアプリケーションを処理するアプリケーションサーバにこのコールをルーティングすることもする(ステップ102)。ESBは、いずれのグループのアプリケーションサーバが、外部デバイス200によって要求されたソフトウェアアプリケーションを処理するかを知るように構成されている。
【００９４】
このため、外部デバイス200と、ソフトウェアアプリケーションを処理することに専用のアプリケーションサーバA3の間で通信が確立される。アプリケーションサーバA3が、そのトランザクションを処理する。コンテキストの一部分a1が作成され、A3に関連付けられたデータ格納手段の中に格納される。A3が、別のソフトウェアアプリケーション(ソフトウェアアプリケーションB)を呼び出す。そのようなコールは、付帯的コールとも呼ばれる。ESB11が、ソフトウェアアプリケーションBを処理することに専用のグループのアプリケーションサーバから来るコールをルーティングすることを担う。
【００９５】
ESB11が、例えば、負荷分散規則によって、ソフトウェアアプリケーションBを処理することに専用のグループ30のアプリケーションサーバの中からアプリケーションサーバB8を選択し、さらにトランザクションをB8にルーティングして、それにより、アプリケーションサーバA3とアプリケーションサーバB8の間で通信を生成する(ステップ103)。そのような通信は、付帯的通信とも呼ばれる。B8が、トランザクションを処理し、さらにそのセッションのコンテキストの一部分を作成する。コンテキストのこの部分a2は、アプリケーションサーバB8に備えられたデータ格納手段の中に格納される。
【００９６】
処理の後、アプリケーションサーバB8は、ソフトウェアアプリケーションCを呼び出す。ソフトウェアアプリケーションBを処理することに専用のグループ30のアプリケーションサーバからのコールをルーティングすることを担うESB13が、アプリケーションサーバC4を選択する。トランザクションが、アプリケーションサーバC4にルーティングされる(ステップ104)。アプリケーションサーバC4が、トランザクションを処理し、そのセッションに関するコンテキストの一部分a3を作成する。
【００９７】
このため、トランザクションは、ステップ101、102、103、104を含む。
【００９８】
したがって、前述したすべての通信を含むセッションは、部分a0、a1、a2、a3を含むコンテキストを有する。前記コンテキストは、複数のアプリケーションサーバによって割り振られる。
【００９９】
外部デバイス200が、別の通信を開く(ステップ105)。それまでに、外部デバイス200は、ESB10によって作成されたセッションIDを取り出している。
【０１００】
また、外部デバイスは、この別の通信が、それまでの通信で開かれているセッションに加わることも要求する。
【０１０１】
既に開かれているセッションに加わるそのような要求は、明示的であることも、暗黙的であることも可能である。
【０１０２】
明示的な要求とは、外部デバイス200が、セッションに加わることを求める要求に専用のソフトウェアアプリケーションを呼び出すことを意味する。ESB10が、外部デバイス200によって呼び出されたソフトウェアアプリケーションを識別し、さらにESB10の新たな通信が、既に開かれているセッションを共有しなければならないと判定する。
【０１０３】
暗黙的な要求とは、ESB10からのコールが、セッションに加わることを求める要求を含むヘッダを含むことを意味する。より正確には、この新たな通信のプロトコルのセッション層が、セッションに加わることを求める要求を保持する。
【０１０４】
ESB10が、新たな通信が、既に開かれているセッションに加わることが予期されると判定すると、その新たな通信のセッションIDが確認される。
【０１０５】
ESB10が同一のセッションIDを保持する場合、このことは、このESB10が、その既に開かれているセッションを管理しているESBであることを意味する。すると、ESB10は、外部デバイス200からのコールが、要求されるアプリケーションサーバに到達し、さらにその既に開かれているセッションに加わることを可能にする。
【０１０６】
ESB10が同一のセッションIDを保持しない場合、ESB10は、いずれのESB,またはESBのいずれの構成要素が、同一のセッションIDを有する既に開かれているセッションを担っているかを識別するために、その他のESB、またはESBのその他の構成要素にポーリングを行う。セッションを担うそのようなESB(またはESB構成要素)は、そのセッションに関するメインESB(またはメインESB構成要素)と呼ばれる。
【０１０７】
メインESBが識別されると、外部デバイス200からコールを受信したESBが、セッションに加わる要求をメインESBに転送する。図1に示される使用事例において、メインESBは、外部デバイス200から第2のトランザクションを受信するESBでもある。
【０１０８】
メインESBが、セッションに加わる要求を受信すると、新たな通信は、既に開かれているセッションを共有し、したがって、既に開かれているセッションのコンテキストを共有することが可能である。
【０１０９】
本発明の特に有利な使用事例は、様々な通信が、異なるプロトコルを使用するセッションと関係する。本発明により、各通信は、その通信のプロトコルがどのようなものであれ、その他の通信のコンテキストを共有することができる。
【０１１０】
例えば、ステップ105、106で示される通信を含むトランザクション2が、ステップ101、102、103、および104で示される通信を含むトランザクション1のコンテキストを共有することが可能である。
【０１１１】
図1を参照すると、外部デバイス200が、それまでの通信のコンテキストを共有しながら、別のプロトコルで新たな通信を開くことを要求する。
【０１１２】
前述したとおり、本発明のこれらの特徴は、或るプロトコルを使用するサービスを、別のプロトコルを使用する他のサービスに移行させるのに特に有利である。
【０１１３】
本発明は、セッションに加わる通信の数によって限定されない。さらに、本発明は、セッションに加わる様々な通信によって使用される異なるプロトコルの数によっても限定されない。
【０１１４】
図2は、本発明が特に有利であると判明する別の使用事例を示す。この実施形態において、ESBは、サービスインテグレータ(SI)の中に含められる。SIは、外部デバイス200などの外部デバイスから、さらにシステム100の様々なアプリケーションサーバからコールを受信するように構成された複数のマルチプレクサMUX1、MUX2、MUX3を備える。また、SIは、ルーティング手段の機能をそれぞれが有するSRV1およびSRV2などの複数のサーバも備える。
【０１１５】
この実施形態において、アプリケーションサーバは、オープンバックエンド(OBE)と呼ばれる。複数のOBEが、OBEのグループ20、30、40にまとめられる。グループ20は、ソフトウェアアプリケーションAをそれぞれが処理するOBE A1、OBE A2、OBE A3をまとめる。グループ30は、ソフトウェアアプリケーションBをそれぞれが処理するOBE B1およびOBE B2を備える。グループ40は、ソフトウェアアプリケーションCを処理するOBE C1を備える。
【０１１６】
外部デバイス200は、MUX1に到達するコールをSIに送信する(ステップ201)。このコールは、Protocol1と呼ばれるプロトコルを使用する。MUX1が、このコールをSRV2にルーティングする(ステップ202)。このコールの中にセッションIDは含まれていないので、SRV2は、セッションを開き、さらにセッションIDを作成する。セッションIDは、SRV2に格納される。SRV2は、ソフトウェアアプリケーションAが呼び出されていると判定し、さらにグループ20の中からアプリケーションサーバOBE A1を選択する。SRV2は、アプリケーションサーバOBE A1が、ソフトウェアアプリケーションAを処理することに専用の複数のアプリケーションサーバのうちでそのセッションにリンクされたアプリケーションサーバであることを示す相互関係レコード(DCX)を作成する。そのような指示は、親和性キーと呼ばれる。すると、DCXの親和性キーは、OBE A1がそのセッションと親和性を有することを示す。
【０１１７】
相互関係レコード、相互関係レコードの機能、および相互関係レコードの利点の一般的な説明および例示的な実施形態は、本特許出願と同一の優先日を有する、「Method and System for providing a session involving a plurality of software applications」という名称の、本特許出願の出願人名義で出願された同時係属の特許出願において入手可能である。
【０１１８】
SRV2は、このコールをOBE A1にルーティングし(ステップ203)、それにより、SIを介して外部デバイス200とOBE A1の間で通信を確立する。OBE A1が、このコールを処理する。OBE A1は、最終的には、OBE A1が使用する格納手段の中にそのセッションのコンテキストの一部分を格納する。
【０１１９】
好ましくは、OBE A1は、OBE A1が格納したコンテキストの部分をどのように取り出すべきかを示す、適用コンテキストキーと呼ばれるリファレンスを作成する。適用コンテキストキーは、DCXの中に格納される。したがって、次回にOBE A1が、そのセッションに関するコールを受信すると、OBE A1は、そのセッションに関してOBE A1が保持するコンテキストの部分を容易に取り出すことができる。
【０１２０】
適用コンテキストキーで強化されたDCXが、SRV2に戻される(ステップ204)。SRV2は、OBE A1によって強化されたDCXを格納する。
【０１２１】
処理の結果がこのDCXと一緒に、MUX1を介して外部デバイス200に送信される(ステップ205、206)。また、セッションIDも外部デバイス200に送信される。
【０１２２】
或る特定の限定的ではない実施形態によれば、セッションIDは、DCXの中に格納されてもよい。このため、DCXが各通信の各コールおよび各付帯的コールに伝搬されるにつれ、セッションIDもまた、伝搬され、さらにカスケードされる。外部デバイス200に処理の結果が供給されると、またはDCXだけが供給されると、この第1の通信は、終了する。
【０１２３】
次に、外部デバイス200が、プロトコル2を使用して別の通信を開く(ステップ207)。
【０１２４】
このコールは、第1の通信から取り出されたセッションIDを含み、MUX2に到達する。MUX2は、プロトコル2を使用するコールに専用である。
【０１２５】
このコールは、既に開かれている通信に加わる要求を含む。MUX2は、外部デバイス200によって送信されたセッションIDですべてのルーティング手段(SRV1およびSRV2)にポーリングする。SRV2が、SRV2が同一のセッションIDを既に保持することを識別する。すると、MUX2は、セッションに加わる要求をSRV2に転送する(ステップ208)。
【０１２６】
SRV2は、この新たなコールが、その既に開かれているセッションを共有することを可能にする。したがって、そのセッションのコンテキストは、この新たな通信に利用可能である。SRV2は、ソフトウェアアプリケーションBに専用のアプリケーションサーバが呼び出されていると判定し、さらにそのソフトウェアアプリケーションに関して親和性の要求はまだ全く設定されていないので、これらのアプリケーションサーバのうちの1つを選択する。OBE B2が選択される。そのグループ30に関する親和性が設定され、さらにDCXが、OBE B2をポイントする親和性キーで強化される。
【０１２７】
親和性の要求は、ESB構成の一部分である。ESBに到達するトランザクションの送信元、宛先、およびソフトウェアアプリケーションなどのトランザクションパラメータに基づいて、そのESBは、ESBの構成により、そのトランザクションが、親和性を考慮に入れて処理されなければならないかどうかを判定することができる。このため、親和性が要求されるかどうかを判定するために静的情報(ESBの構成)が考慮に入れられる一方で、DCXのコンテキストは、動的情報である。
【０１２８】
次に、トランザクションは、OBE B2にルーティングされる(ステップ209)。OBE B2が、トランザクションを処理する。OBE B2は、OBE B2が実行されているマシンの格納手段の中にコンテキストの一部分を格納し、それに相応して、適用コンテキストキーでDCXを強化する。DCXは、SRV2に戻され(ステップ210)、SRV2に格納される。処理の結果が、強化されたDCXと一緒に、外部デバイス200にルーティングされる(ステップ211)。
【０１２９】
ステップ212で、外部デバイス200が、別のプロトコル(プロトコルP3)を使用して別の通信を開くことを要求する。MUX3は、プロトコル3を使用してコールを管理することを担う。セッションのIDがコールの中に含められ、さらにセッションに加わることを求める要求をMUX3が、同一のセッションIDを保持するとともに、そのセッションを管理するSRV2に転送することを可能にする(ステップ213)。
【０１３０】
次に、SRV2が、この新たな通信にそのセッションを開く。したがって、プロトコル3を使用する通信が、プロトコル1およびプロトコル2を使用する通信によって作成されたコンテキストを共有することが可能である。
【０１３１】
したがって、SRV2は、ソフトウェアアプリケーションBが呼び出されていることを識別する。DCXにより、SRV2は、そのソフトウェアアプリケーションに関して親和性が要求されると判定し、さらにアプリケーションサーバOBE B2をターゲットにする。すると、トランザクションは、そのDCXを用いてOBE B2にルーティングされ、さらに外部デバイス200とOBE B2の間で通信が開かれる(ステップ214)。DCXの適用コンテキストキーが、OBE B2が、OBE B2が保持するコンテキストの部分を取り出すことを可能にする。OBE B2が、そのトランザクションを処理する。最終的には、OBE B2は、適用コンテキストキーを更新し、さらにトランザクションをDCXと一緒にSRV2に送り返す(ステップ215)。SRV2は、強化されたそのDCXを格納する。
【０１３２】
OBE B2によって実行された処理の結果が、DCXと一緒に、外部デバイス200に送信される。
【０１３３】
この例示的な実施形態は、本発明が、異なるプロトコルを使用する複数の通信が、同一のセッションを共有することによって同一のコンテキストを共有することを可能にすることを明確に示す。
【０１３４】
このことは、同一のコンテキストを共有しながら、或るプロトコルから別のプロトコルに移行することに関して特に有利であると判明する。このため、移行が、段階的に、例えば、サービスごとに行われ得る。
【０１３５】
また、この使用事例は、トラフィックおよびルーティングを制限しながら、相互関係レコードを、セッションIDと一緒に伝搬することの利点も示す。
【０１３６】
図3は、本発明の他の利点を示す。この使用事例において、外部デバイス300は、クライアントモードで動作しているシステム100に対してサーバモードで動作する。例えば、外部デバイスは、データの提供者によって保持されるシステムである一方で、このシステムが、これらのデータを取り出し、さらに処理する必要があるアプリケーションサーバを備える。
【０１３７】
システムは、複数のアプリケーションサーバを備えるものの、単一のアプリケーションサーバを備えるかのように外部デバイスと通信する。ESB15が、ソフトウェアアプリケーションAを処理することに専用のグループ20のアプリケーションサーバのうちのアプリケーションサーバA2からコールを受信する(ステップ301)。コールは、外部デバイス300に到達することを意図している。コールは、セッションIDを含んでいないので、ESB15は、セッションを開き、セッションIDを作成する。セッションIDは、セッションaを一意に識別する。ESB15が、前記セッションIDを格納し、コールを外部デバイス300にルーティングする(ステップ302)。したがって、アプリケーションサーバA2と外部デバイス300の間で通信が開かれる。外部デバイス300からの応答が、ESB15において受信され、ESB15は、前記応答を、外部デバイス300を呼び出したアプリケーションサーバA2にルーティングする。また、セッションIDも、このアプリケーションサーバに送信される。
【０１３８】
次に、別のコールが、ESB15に到達する(ステップ303)。このコールは、アプリケーションサーバB3から来る。このコールは、既に開かれているセッションに加わる要求を含み、ESB15によって以前に作成されたセッションIDを含む。前記セッションIDは、アプリケーションサーバB3に到達する前に、アプリケーションサーバA2から、最終的には、他のアプリケーションサーバに、またはシステムに対してクライアントモードで動作している別の外部デバイスに伝搬されている。
【０１３９】
ESB15が、B3からのコールが、外部デバイス300に対する同一のアウトバウンドの通信を共有することができるように、以前に開かれたセッションを開く。
【０１４０】
同様に、アプリケーションサーバC2からのコールが、それまでに開かれているセッションを共有する通信を開く。すると、A2、B3、およびC2が、セッションIDにより、外部デバイス300に対する同一のアウトバウンドの通信を共有する。好ましくは、セッションIDは、セッションaのコンテキストと親和性を有するすべてのアプリケーションサーバに伝搬されるDCXの中に格納される。好ましくは、このDCXは、前記ユーザセッションを管理することを担うESBにおいて格納される。
【０１４１】
同様に、別のセッション(セッションb)が開かれる。A5、B5、およびC4が、セッションbを一意に識別する別のセッションIDにより、同一のアウトバウンドの通信を共有する。A5、B5、およびC4は、それぞれ、ユーザセッションbのコンテキストの部分b1、b2、およびb3を保持する。
【０１４２】
同様に、ユーザセッションcが開かれる。A4、B7、およびC3が、セッションcを一意に識別する別のセッションIDにより、外部デバイス300'に向う同一のアウトバウンドの通信を共有する。A4、B7、およびC3は、ユーザセッションcのコンテキストの部分c1、c2、c3をそれぞれ格納する。したがって、外部デバイス300'は、多くのアプリケーションサーバと、これらのアプリケーションサーバが単一のアプリケーションサーバであるかのように、通信する。
【０１４３】
セッションを共有する要求は、明示的であることも、暗黙的であることも可能である。前段で詳細に述べたとおり、セッションに加わる要求を伴ってESB構成要素に到達するコールは、そのセッションのセッションIDを用いてすべてのESB構成要素にポーリングすることによって、そのセッションを担うESB構成要素に転送される。
【０１４４】
図3に示される使用事例は、システムが、システム100からのコールの発信元がいずれであれ、外部デバイスと共通のアウトバウンドの通信を共有することができることを明確に示す。したがって、外部デバイスは、すべてのアプリケーションサーバが単一のアプリケーションサーバであるかのように、システム100と通信する。
【０１４５】
したがって、セッションのコンテキストは、様々な外部デバイスに影響を与えることなしに割り振られ得る。このことは、システムが、外部デバイスを運用している企業とは異なる企業によって運用されている場合に非常に有利である。
【０１４６】
さらに、本発明は、外部デバイスに全く影響を与えることなしに、グループ60のアプリケーションサーバをグループ20のアプリケーションサーバに追加することを可能にする。したがって、処理容量が、容易に増加され得る。さらに、新たなサービスDに専用のグループ50のアプリケーションサーバD1、D2、D3、D4を追加することが、外部デバイスに完全にトランスペアレントである。グループ50のアプリケーションサーバは、同一のマシン上で実行可能であり、またはそれぞれが、専用のマシン上で実行可能である。このため、本発明は、初期システム構成を変更する必要性を軽減する。したがって、強化されたサービスが、ユーザに提供され得る(図3には示さず)。
【０１４７】
有利には、セッションに加わる際、通信は、通信がセッションを閉じることをどの程度、制御するかを規定するプロパティを有する。以下の3つのプロパティが、セッションを効率的に管理することを可能にし、例えば、セッションの格納容量の使用を最適化できるようにする。
【０１４８】
通信に第1のプロパティが設定された場合、セッションは、その通信が閉じられると、閉じる。このプロパティは、「所有者プロパティ」と呼ばれる。
【０１４９】
通信に第2のプロパティが設定された場合、セッションは、通信が閉じられると、そのセッションに関して依然として開かれている他の通信が存在しないという条件付きで、閉じる。そのセッションに関して少なくとも別の通信が依然として開かれている場合、第2のプロパティが設定されている通信が閉じた場合でさえ、そのセッションは、開かれたままになる。このプロパティは、「単純共有プロパティ」と呼ばれる。
【０１５０】
通信に第3のプロパティが設定された場合、その通信は、その通信が閉じられると始まる所定の期間の終了後にセッションを閉じる。すると、その通信が閉じられた後、他の任意の通信、または任意の新たな通信が、所定の期間中、そのセッションに加わることができる。このプロパティは、「終了後継続プロパティ」と呼ばれる。
【０１５１】
好ましくは、セッションが閉じられた後、ルーティング手段が、そのセッションで通信を共有するすべてのアプリケーションサーバに、セッション終了の通知を送信する。すると、すべてのアプリケーションサーバは、そのセッションに関して開かれたそれらのアプリケーションサーバの通信を閉じる。
【０１５２】
好ましくは、セッションを担うルーティング手段が、そのセッションに関して動作しているすべてのアプリケーションサーバのリファレンスを保持する。これらのリファレンスにより、ルーティング手段は、そのセッションが閉じられたことを、それらのアプリケーションサーバに知らせることができる。
【０１５３】
図4は、システムが、システム100に対してクライアントモードで動作している外部デバイス200と通信する一方で、外部デバイス300が、システム100に対してサーバモードで動作する、本発明の別の例示的な使用事例を示す。多数である可能性がある外部デバイス200、および多数である可能性がある外部デバイス300が、システムと通信し得る。この使用事例は、図1、2、および3の前述した使用事例の特徴および利点を組み合わせる。
【０１５４】
詳細には、外部デバイス200が、システム100のいくつかのアプリケーションサーバ(図4に示されるアプリケーションサーバA3)を介して外部デバイス300に対するステートフル(stateful)トランザクションを開くことができる。このトランザクションは、通信401、402、403を含む。
【０１５５】
外部デバイス200が、以前のトランザクションのコンテキストを共有する後のトランザクションを開くことが可能である。この後のトランザクションは、通信404、405、406、407を含む。
【０１５６】
通信404、405は、以前のトランザクションの通信401、402とは異なるアプリケーションサーバ上で処理される。
【０１５７】
しかし、以前のトランザクションと後のトランザクションは、同一のステートフル通信(403、407)を共有する。
【０１５８】
このため、外部デバイス300は、すべてのアプリケーションサーバと、それらのアプリケーションサーバが単一のアプリケーションサーバであるかのように、通信する。以前のトランザクションと後のトランザクションは、最終的には、異なるプロトコルを使用することも可能である。各トランザクションとともに伝搬されるセッションIDが、両方のトランザクションを含むセッションのコンテキストを共有することを可能にする。
【０１５９】
次に、本発明の他の有利な特徴を、図5を参照して詳細に説明する。或る通信が、既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションの作成、およびそのセッションに関する新たなコンテキストを要求することが可能である。
【０１６０】
後のセッション、またはクローニングされたセッションとも呼ばれる、この新たなセッションは、セキュリティ設定に関する以外は、このセッション独自のコンテキストを有し、したがって、さらに、既に開かれているセッションからクローニングされたセッションと考えられることが可能である。
【０１６１】
このことは、外部デバイスが、いくつかのクローニングされたセッションを開き、その後、システムに対して1回の認証を実行しながら、いくつかの適用コンテキストを有することを可能にする。このため、既に開かれているセッションのコンテキストの一部分だけが、クローニングされたセッションに複製される。コンテキストのこの部分は、セキュリティ設定と関係する。
【０１６２】
好ましくは、クローニングされたすべてのセッションは、以前に開かれたセッションにリンクされる。このため、クローニングされたすべてのセッションは、単一の要求で閉じられ得る。クローニングされたすべてのセッションは、以前のセッションが閉じられると、閉じられ得る。代替として、クローニングされたすべてのセッションは、セキュリティ管理者の要求で閉じられ得る。
【０１６３】
セッションに加わることに関して、クローニングされたセッションを開く要求が、専用のソフトウェアアプリケーションを呼び出すことによって明示的に、またはそのコールの中に埋め込まれた専用のヘッダで暗黙的に実行され得る。
【０１６４】
暗黙的なクローニングされたセッションを使用して、サーバモードで動作しているシステムに対してクライアントモードで動作している外部デバイスが、単一回の認証を実行しながら、システムに並行のステートレスクエリを送信することが可能である。
【０１６５】
既存のシステムでは、専用のコンテキストをそれぞれが有することを要求する並行のクエリは、それぞれが認証を実行することを必要とする。したがって、認証に専用のアプリケーションサーバが大規模に呼び出されて、このことが、低い信頼性につながる、または費用のかさむ設備を要求する。他の既存のソリューションは、通信のプールに基づき、通信のプールに関して単一回の認証が要求される。これらのソリューションは、クエリごとに認証する必要性を軽減するものの、既存の設備の大きな変更を要求する。
【０１６６】
図5を参照すると、外部デバイス200が、ESB10を呼び出す(ステップ501)。ESBが、セッションを開き、さらにセッションIDを作成する。ESBが、そのコールを、セキュリティ確認を担うアプリケーションサーバA2にルーティングする(ステップ502)。アプリケーションサーバA2が、そのトランザクションを処理し、さらに、ESB10経由で外部デバイスに送り返されるセキュリティ資格証明を作成する(ステップ504)。ESB10が、セッションIDおよびセキュリティ設定を格納する。最終的には、アプリケーションサーバA2は、別のアプリケーションサーバ(C2)を呼び出して、そのセッションに関するコンテキストの別の部分が作成される(ステップ503)。
【０１６７】
次に、外部デバイス200が、別のコールをESB10に送信する。通常、このコールは、システム100によって処理されなければならない別のクエリである(ステップ505)。
【０１６８】
このコールは、既に開かれているセッションのセッションIDを含む。さらに、このコールは、既に開かれているセッションをクローニングする要求を含む。以前に開かれたセッションを担うESB10が、そのセッションIDを考慮に入れてセキュリティ設定を取り出す。以前のセッションのコンテキストの、セキュリティ設定を含む部分a0が、クローニングされたセッションに関するコンテキストの一部分a0'を形成するように複製される。次に、セキュリティ設定を含む、そのクローニングされたセッションに関するトランザクションが、関係のあるアプリケーションサーバ(B3)にルーティングされる(ステップ506)。前記関係のあるアプリケーションサーバは、セキュリティ設定を生成することに専用のアプリケーションサーバではない。しかし、この関係のあるアプリケーションサーバは、受信されたトランザクションが、要求されるセキュリティ設定を含むかどうかを確認する。
【０１６９】
したがって、アプリケーションサーバB3が、そのトランザクションを処理し、さらにクローニングされたセッションのコンテキストを強化することができる。その処理の結果が、ESBに送信され、さらに外部デバイス200からのクエリが満足させられる(ステップ507)。
【０１７０】
したがって、クローニングされたセッションは、セキュリティ設定に関するa0'以外、そのセッション独自のコンテキストを含み、すなわち、クローニングされたセッションの適用コンテキストは、既に開かれているセッションのコンテキストとは無関係である。
【０１７１】
以上の説明から、本発明が、分散されている可能性がある外部デバイスのすべての部分が、システムに対して同一のアウトバウンドな、またはインバウンドな通信を使用する、完全に分散されたクライアントアプリケーションの独特の見通しを与える方法をもたらすと思われる。
【０１７２】
さらに、本発明は、ヘテロジニアスな複数の通信プロトコルから同一のセッションを管理する方法をもたらす。このことは、或るプロトコルから別のプロトコルへの移行、またはヘテロジニアスな複数の外部デバイスの統合を容易にする。
【０１７３】
また、本発明は、単一のセキュリティセッションにおいていくつかのコンテキストセッションおよびステートレスの並行クエリを管理する方法ももたらす。
【０１７４】
以上の説明は、例示的な、限定的ではない例として、本発明の例示的な実施形態を実施するための様々な方法、装置、およびコンピュータプログラムソフトウェアの完全で、参考になる説明を与えてきた。しかし、様々な変形形態および適応形態が、添付の図面、および添付の特許請求の範囲と併せて読まれる、以上の説明に鑑みて、当業者には明白となり得る。単にいくつかの例として、他の類似した、または均等のデータ構造および論理フローの使用が、当業者によって試みられてもよい。しかし、本発明の教示のすべてのそのような変形形態、および類似した変形形態は、依然として、本発明の実施形態の範囲内に含まれる。
【０１７５】
さらに、本発明の例示的な実施形態の特徴のいくつかは、その他の特徴の対応する使用を伴わずに、有利に使用され得る。このため、以上の説明は、本発明の原理、教示、および実施形態を単に例示するに過ぎず、本発明を限定するものではないものと見なされるべきである。
【符号の説明】
【０１７６】
A、B、C、D  ソフトウェアアプリケーション
A1〜A8  アプリケーションサーバ
B1〜B8  アプリケーションサーバ
C1〜C4  アプリケーションサーバ
D1〜D4  アプリケーションサーバ
10、11、12、13、15  ルーティング手段
20、30、40、50、60  アプリケーションサーバのグループ
100  システム
200、300、300'  外部デバイス
【図１】
0005898240.tif 000002
【図２】
0005898240.tif 000003
【図３】
0005898240.tif 000004
【図４】
0005898240.tif 000005
【図５】
0005898240.tif 000006