JP5898240B2 - ヘテロジニアスな環境においてセッションを提供するための方法およびシステム - Google Patents

ヘテロジニアスな環境においてセッションを提供するための方法およびシステム Download PDF

Info

Publication number
JP5898240B2
JP5898240B2 JP2013558440A JP2013558440A JP5898240B2 JP 5898240 B2 JP5898240 B2 JP 5898240B2 JP 2013558440 A JP2013558440 A JP 2013558440A JP 2013558440 A JP2013558440 A JP 2013558440A JP 5898240 B2 JP5898240 B2 JP 5898240B2
Authority
JP
Japan
Prior art keywords
session
external device
communication
call
routing means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013558440A
Other languages
English (en)
Other versions
JP2014509803A (ja
Inventor
クリストフ・ドゥフェイエ
シモン・マルタン
ステファン・モンブル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Publication of JP2014509803A publication Critical patent/JP2014509803A/ja
Application granted granted Critical
Publication of JP5898240B2 publication Critical patent/JP5898240B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、一般に、分散コンピュータ化された環境において外部デバイスにセッションを提供するシステムおよび方法に関し、ここでは、セッションには、クライアント/サーバモードで動作しているその外部デバイスとシステムの間の通信を確立することが要求される。より詳細には、本発明は、場合により、非常にヘテロジニアスな通信が共通のセッションを共有しなければならない方法およびシステムに関する。
多くの既存のシステムが、外部デバイスに、システムの複数のソフトウェアアプリケーションと外部デバイスとの間の様々な通信を含むセッションを提供するように構成され、ここでは、外部デバイスとシステムは、クライアント/サーバモードで動作する。
これらの既存のソリューションは、同種の環境、すなわち、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' 外部デバイス

Claims (20)

  1. 分散コンピュータ化された環境において外部デバイス(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によって一意に識別される、既に開かれているセッションに加わることを可能にする前記ステップは、前記コールを受信する前記ルーティング手段において実行される以下のステップ、すなわち、前記複数のルーティング手段のうちのいずれのルーティング手段が、前記既に開かれているセッションに関する前記メインルーティング手段であるかを識別するために、その他のルーティング手段にポーリングするステップと、その後、前記トランザクションを前記メインルーティング手段に転送するステップとを含む
    ことを特徴とする方法。
  2. 前記確立された通信は、第1のセッションIDを有し、第1のプロトコルを使用し、少なくとも別の通信は、同一のセッションIDを有し、前記第1のプロトコルとは異なる第2のプロトコルを使用する請求項1に記載の方法。
  3. 前記外部デバイス(200)は、前記システム(100)がサーバモードで動作するのに対してクライアントモードで動作する請求項1または2に記載の方法。
  4. 同一のセッションIDを有するコールを受信するすべてのアプリケーションサーバ(A1、…、C4)は、前記外部デバイス(200)に対する同一のインバウンドのセッションを共有する請求項3に記載の方法。
  5. 前記外部デバイス(300、300')は、前記システム(100)がクライアントモードで動作するのに対してサーバモードで動作する請求項1または2に記載の方法。
  6. 同一のセッションIDを共有するコールを受信するすべてのアプリケーションサーバ(A1、…、C4)は、前記外部デバイス(300、300')に対する同一のアウトバウンドの通信を共有する請求項5に記載の方法。
  7. 前記外部デバイス(200)は、前記システム(100)がサーバモードで動作するのに対してクライアントモードで動作し、さらなる外部デバイス(300)は、前記システム(100)がクライアントモードで動作するのに対してサーバモードで動作する請求項1から6のいずれか一項に記載の方法。
  8. 前記ルーティング手段においてコールを受信する前記ステップの後、および前記コールがセッション識別子(ID)を含むかどうかを判定する前記ステップの前に、前記コールには、既に開かれているセッションに加わることが要求されていることを判定するさらなるステップを含む請求項1から7のいずれか一項に記載の方法。
  9. 前記コールには、既に開かれているセッションに加わることが要求されていることを判定する前記ステップは、既に開かれているセッションに加わる要求を受信するステップを含み、前記コールは、セッションに加わる要求を含んだヘッダを含む請求項8に記載の方法。
  10. 前記コールには、既に開かれているセッションに加わることが要求されていることを判定する前記ステップは、以下のステップ、すなわち、前記ルーティング手段が、前記受信されたコールが、既に開かれているセッションに加わる要求に専用のソフトウェアアプリケーションを処理するアプリケーションサーバから来ること、または前記アプリケーションサーバにルーティングされるように要求することを判定するステップであって、前記アプリケーションサーバは、前記受信されたコールが、既に開かれているセッションに加わらなければならないことを前記ルーティング手段に示す、ステップを含む請求項8に記載の方法。
  11. セッションの所与の通信に、前記セッションを閉じることを制御するプロパティが与えられる請求項1から10のいずれか一項に記載の方法。
  12. 前記プロパティは、前記所与の通信が閉じられると、前記セッションを閉じるように構成されている請求項11に記載の方法。
  13. 前記プロパティは、前記所与の通信が閉じられると、かつそのセッションに関して依然として開かれている他の通信が存在しない場合、前記セッションを閉じるように構成され、前記プロパティは、前記所与の通信が閉じられると、かつ少なくとも別の通信が、そのセッションに関して依然として開かれている場合、前記セッションを開かれたままにするように構成されている請求項11に記載の方法。
  14. 前記プロパティは、前記所与の通信が閉じられると、始まる所定のインアクティブ期間の終わりの後、前記セッションを閉じるように構成されている請求項11に記載の方法。
  15. セッションが閉じられると、前記ルーティング手段は、そのセッションに関して通信を共有しているすべてのアプリケーションサーバ(A1、…、C4)にセッション終了の通知を送信する請求項1から14のいずれか一項に記載の方法。
  16. 前記システムは、或るソフトウェアアプリケーションに専用のアプリケーションサーバ(A1、…、C4)のグループ(20、30、40)を形成するアプリケーションサーバ(A1、…、C4)を備え、同一のグループ(20)の各アプリケーションサーバ(A1、…、A8)は、前記グループが専用である前記ソフトウェアアプリケーション(A)を独立に処理し、アプリケーションサーバは、セッションの前記コンテキストの一部分を格納して、それにより、各セッションに関して、ユーザセッションとの親和性をそれぞれが有するアプリケーションサーバのセットを規定し、前記方法は、前記ルーティング手段において以下のステップ、すなわち、
    前記セッションに、親和性キーを含むように構成された相互関係レコード(DCX)を割り当てるステップであって、各親和性キーは、所与のソフトウェアアプリケーションに関して前記セッションと親和性を有する前記アプリケーションサーバを示す、ステップと、
    前記トランザクションとともに、前記トランザクションを処理することに関係があるアプリケーションサーバに前記相互関係レコードを伝搬し、それにより、すべての前記ルーティング手段が、そのセッションの前記コンテキストにリンクされた前記アプリケーションサーバをターゲットにすることを可能にするステップと
    を含む請求項1から15のいずれか一項に記載の方法。
  17. 前記外部デバイスは、クライアントモードで動作し、前記システム(100)は、サーバモードで動作し、前記外部デバイスは、既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くように要求し、セキュリティ設定を継承するステップは、前記既に開かれているセッションのコンテキストの一部分を複製するステップを含み、コンテキストの前記一部分は、前記既に開かれているセッションのセキュリティ設定を含み、前記新たなセッションは、前記既に開かれているセッションの前記コンテキストとは無関係であるコンテキストを、セキュリティ設定を含むそのコンテキストの一部分を除いて有する請求項1から16のいずれか一項に記載の方法。
  18. 既に開かれているセッションからセキュリティ設定を継承しながら、新たなセッションを開くように要求するステップは、前記ルーティング手段において実行される以下のステップ、すなわち、
    前記外部デバイスから、新たなセッションを開く要求と、前記既に開かれているセッションを識別するセッションIDとを受信するステップ、
    前記セッションIDに基づいて、前記既に開かれているセッションの前記セキュリティ設定を取り出すステップ、
    前記新たなセッションの通信とともに前記セキュリティ設定を伝搬するステップを含む請求項17に記載の方法。
  19. ソフトウェアプログラム命令を含む持続性コンピュータ可読記憶媒体であって、
    少なくとも1つのデータプロセッサによる前記ソフトウェアプログラム命令の実行は、請求項1から18のいずれか一項に記載の方法の実行を含む動作の実行をもたらす持続性コンピュータ可読記憶媒体。
  20. 分散コンピュータ化された環境において外部デバイス(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によって一意に識別される、既に開かれているセッションに加わることを可能にする処理は、前記コールを受信する前記ルーティング手段において実行される以下のステップ、すなわち、前記複数のルーティング手段のうちのいずれのルーティング手段が、前記既に開かれているセッションに関する前記メインルーティング手段であるかを識別するために、その他のルーティング手段にポーリングするステップと、その後、前記トランザクションを前記メインルーティング手段に転送するステップとを含む
    ことを特徴とするシステム。
JP2013558440A 2011-03-15 2012-03-15 ヘテロジニアスな環境においてセッションを提供するための方法およびシステム Active JP5898240B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP11305280.7 2011-03-15
EP11305280.7A EP2501107B1 (en) 2011-03-15 2011-03-15 Method and system for providing a session in a heterogeneous environment
US13/065,273 US8473626B2 (en) 2011-03-15 2011-03-18 Method and system for providing a session in a heterogeneous environment
US13/065,273 2011-03-18
PCT/EP2012/054565 WO2012123546A1 (en) 2011-03-15 2012-03-15 Method and system for providing a session in a heterogeneous environment

Publications (2)

Publication Number Publication Date
JP2014509803A JP2014509803A (ja) 2014-04-21
JP5898240B2 true JP5898240B2 (ja) 2016-04-06

Family

ID=44741243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013558440A Active JP5898240B2 (ja) 2011-03-15 2012-03-15 ヘテロジニアスな環境においてセッションを提供するための方法およびシステム

Country Status (13)

Country Link
US (1) US8473626B2 (ja)
EP (1) EP2501107B1 (ja)
JP (1) JP5898240B2 (ja)
KR (1) KR101640296B1 (ja)
CN (1) CN103404111B (ja)
AU (1) AU2012228220B2 (ja)
BR (1) BR112013018589A2 (ja)
CA (1) CA2824394C (ja)
ES (1) ES2454548T3 (ja)
PL (1) PL2501107T3 (ja)
SG (1) SG192160A1 (ja)
WO (1) WO2012123546A1 (ja)
ZA (1) ZA201305951B (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2500848A1 (en) 2011-03-15 2012-09-19 Amadeus S.A.S. Method and system for centralized reservation context management on multi-server reservation system
EP2500856A1 (en) 2011-03-15 2012-09-19 Amadeus S.A.S. Method and system for providing a session involving a plurality of software applications
US9235620B2 (en) 2012-08-14 2016-01-12 Amadeus S.A.S. Updating cached database query results
EP2541473A1 (en) 2011-06-27 2013-01-02 Amadeus S.A.S. Method and system for a pre-shopping reservation system with increased search efficiency
CN103580986B (zh) * 2012-07-30 2016-12-21 华为终端有限公司 一种实时通信方法、终端设备、实时通信服务器及系统
GB201305211D0 (en) 2013-03-21 2013-05-01 Ibm Workload placement in a computer system
TWI561035B (en) * 2013-08-12 2016-12-01 Chunghwa Telecom Co Ltd Dynamic dispatching business operations in heterogeneous systems
US9519509B2 (en) * 2014-10-21 2016-12-13 Oracle International Corporation System and method for supporting transaction affinity based request handling in a middleware environment
US20160285957A1 (en) * 2015-03-26 2016-09-29 Avaya Inc. Server cluster profile definition in a distributed processing network
DE102015222956A1 (de) * 2015-11-20 2017-05-24 Robert Bosch Gmbh Verfahren zum Betreiben eines Serversystems und zum Betreiben eines Aufnahmegeräts zum Aufnehmen eines Sprachbefehls, Serversystem, Aufnahmegerät und Sprachdialogsystem
CN109617749B (zh) * 2019-01-31 2021-08-06 郑州物海网络科技有限公司 基于互联网实现柔性配置终端设备和路由规则的方法
FR3103664B1 (fr) 2019-11-27 2023-04-07 Amadeus Sas Système de stockage distribué pour stocker des données contextuelles
US11637819B2 (en) * 2020-11-25 2023-04-25 International Business Machines Corporation Establishing connectivity between user devices
CN115203689B (zh) * 2022-07-25 2023-05-02 广州正则纬创信息科技有限公司 一种数据安全分享方法及系统

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158044A (en) 1997-05-21 2000-12-05 Epropose, Inc. Proposal based architecture system
US6208955B1 (en) 1998-06-12 2001-03-27 Rockwell Science Center, Llc Distributed maintenance system based on causal networks
US7328166B1 (en) 1999-01-20 2008-02-05 Sabre, Inc. Global reservations transaction management system and method
US6392997B1 (en) 1999-03-16 2002-05-21 Cisco Technology, Inc. Technique for group-based routing update with limited per neighbor/adjacency customization
WO2000063808A1 (en) 1999-04-16 2000-10-26 Cg & G Software Plus Tee time reservation system
US6748420B1 (en) * 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
US7437408B2 (en) 2000-02-14 2008-10-14 Lockheed Martin Corporation Information aggregation, processing and distribution system
WO2001098936A2 (en) 2000-06-22 2001-12-27 Microsoft Corporation Distributed computing services platform
NO312697B1 (no) 2000-09-01 2002-06-17 Ericsson Telefon Ab L M Fremgangsmåte for å tilveiebringe effektive operasjoner i et serversystem
US6640222B1 (en) 2000-09-29 2003-10-28 Motorola, Inc. Method for selecting an information unit among conflicting information units based on context fields by a user device
US20020078150A1 (en) * 2000-12-18 2002-06-20 Nortel Networks Limited And Bell Canada Method of team member profile selection within a virtual team environment
US7165105B2 (en) 2001-07-16 2007-01-16 Netgenesis Corporation System and method for logical view analysis and visualization of user behavior in a distributed computer network
US7512652B1 (en) * 2001-09-28 2009-03-31 Aol Llc, A Delaware Limited Liability Company Passive personalization of buddy lists
WO2003044706A2 (en) 2001-11-20 2003-05-30 T.I.G.R. Ghaniem Family Trust A method of receiving a booking request from a user, making the booking and generating a travel confirmation document
US8209200B2 (en) 2002-03-13 2012-06-26 Orbitz Llc System and method for synchronizing passenger name record data
CA2381737A1 (en) 2002-04-15 2003-10-15 Ibm Canada Limited-Ibm Canada Limitee Framework for managing data that provides correlation information in a distributed computing system
US20030233473A1 (en) * 2002-05-07 2003-12-18 International Business Machines Corporation Method for configuring logical connections to a router in a data communication system
US7146400B2 (en) * 2002-05-29 2006-12-05 International Business Machines Corporation Web and lotus notes adapter layers
US7454761B1 (en) 2002-12-20 2008-11-18 Cisco Technology, Inc. Method and apparatus for correlating output of distributed processes
US20040128542A1 (en) 2002-12-31 2004-07-01 International Business Machines Corporation Method and system for native authentication protocols in a heterogeneous federated environment
US7430187B2 (en) * 2003-05-15 2008-09-30 At&T Intellectual Property I, Lp Methods, systems, and computer program products for providing different quality of service/bandwidth allocation to different susbscribers for interactive gaming
EP1629382A4 (en) 2003-06-02 2011-12-21 Liquid Machines Inc MANAGING DATA OBJECTS IN DYNAMIC, DISTRIBUTED AND COLLABORATIVE CONTEXTS
WO2004112335A1 (en) * 2003-06-12 2004-12-23 Camiant, Inc. Pcmm application manager
KR100541758B1 (ko) 2003-07-08 2006-01-10 주식회사 팬택앤큐리텔 무선가입자망의 가입자접속장치에서 패킷 형태의 과금갱신 정보 전송 방법
JP2007521684A (ja) * 2003-08-13 2007-08-02 マイクロソフト コーポレーション ルーティングヒント
US7395279B2 (en) 2003-11-17 2008-07-01 International Business Machines Corporation System and method for achieving different levels of data consistency
US20050262100A1 (en) 2004-05-19 2005-11-24 Bea Systems, Inc. System and method for context propagation in application servers and transaction-based systems
US20060155857A1 (en) * 2005-01-06 2006-07-13 Oracle International Corporation Deterministic session state management within a global cache array
US20060212583A1 (en) * 2005-03-17 2006-09-21 Beadle Bruce A Distributing messaging session logs to users entering an already ongoing messaging session
US7412224B2 (en) 2005-11-14 2008-08-12 Nokia Corporation Portable local server with context sensing
ATE547907T1 (de) * 2005-12-12 2012-03-15 Ericsson Telefon Ab L M Verfahren und anordnung zum herstellen einer kommunikationssitzung für multimedia
JP2007219608A (ja) 2006-02-14 2007-08-30 Fujitsu Ltd 負荷分散処理プログラム及び負荷分散装置
US7702145B2 (en) 2006-06-28 2010-04-20 Microsoft Corporation Adapting a neural network for individual style
US7774463B2 (en) 2006-07-25 2010-08-10 Sap Ag Unified meta-model for a service oriented architecture
US8112550B2 (en) 2006-09-19 2012-02-07 Tacoda Llc System and method for preserving consumer choice
US7870267B2 (en) * 2007-05-16 2011-01-11 International Business Machines Corporation Creating global sessions across converged protocol applications
US8108528B2 (en) * 2007-07-11 2012-01-31 International Business Machines Corporation System and method for verifying the identity of a chat partner during an instant messaging session
CN101187946A (zh) 2007-12-14 2008-05-28 无敌科技(西安)有限公司 利用实时信息更新数据系统及其方法
EP2293197A4 (en) * 2008-05-28 2011-10-26 Panasonic Corp TERMINAL COMMUNICATION DEVICE, COMMUNICATION CONTROL METHOD, AND COMMUNICATION CONTROL PROGRAM
US20100312586A1 (en) 2009-06-03 2010-12-09 Drefs Martin J Generation of Travel-Related Offerings
WO2011032701A1 (en) * 2009-09-18 2011-03-24 Deutsche Telekom Ag Method for supporting a user equipment lacking globally routable user agent uri - gruu support in an internet protocol multimedia subsystem - ims
CN102036319B (zh) * 2009-09-30 2013-11-06 中兴通讯股份有限公司 一种带有彩铃的振铃状态会话的切换系统及方法
US9515849B2 (en) * 2009-12-22 2016-12-06 At&T Intellectual Property I, L.P. Method and apparatus for managing communication faults
US9535769B2 (en) 2010-02-05 2017-01-03 Oracle International Corporation Orchestrated data exchange and synchronization between data repositories
US8601073B2 (en) * 2010-02-12 2013-12-03 Tekelec, Inc. Methods, systems, and computer readable media for source peer capacity-based diameter load sharing
US10455275B2 (en) * 2010-02-16 2019-10-22 Comcast Cable Communications, Llc Disposition of video alerts and integration of a mobile device into a local service domain
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
US9535762B2 (en) * 2010-05-28 2017-01-03 At&T Intellectual Property I, L.P. Methods to improve overload protection for a home subscriber server (HSS)
US8655996B2 (en) * 2010-06-30 2014-02-18 At&T Intellectual Property I, L.P. Customized behavior of a control layer towards an application server in a packet-based network
US8990380B2 (en) * 2010-08-12 2015-03-24 Citrix Systems, Inc. Systems and methods for quality of service of ICA published applications
US9392121B2 (en) * 2010-09-20 2016-07-12 International Business Machines Corporation Seamlessly conferencing a previously-connected telephone call
US9880014B2 (en) * 2010-11-24 2018-01-30 Telenav, Inc. Navigation system with session transfer mechanism and method of operation thereof
US8510435B2 (en) * 2010-12-27 2013-08-13 Avaya Inc. Highly scalable and distributed call/media modeling and control framework

Also Published As

Publication number Publication date
JP2014509803A (ja) 2014-04-21
AU2012228220A1 (en) 2013-05-02
PL2501107T3 (pl) 2014-08-29
CN103404111A (zh) 2013-11-20
ZA201305951B (en) 2014-10-29
CN103404111B (zh) 2016-06-08
SG192160A1 (en) 2013-08-30
US8473626B2 (en) 2013-06-25
CA2824394A1 (en) 2012-09-20
WO2012123546A1 (en) 2012-09-20
EP2501107A1 (en) 2012-09-19
ES2454548T3 (es) 2014-04-10
BR112013018589A2 (pt) 2016-09-27
AU2012228220B2 (en) 2015-01-22
KR101640296B1 (ko) 2016-07-15
EP2501107B1 (en) 2014-01-22
KR20140015395A (ko) 2014-02-06
US20120239818A1 (en) 2012-09-20
CA2824394C (en) 2019-02-12

Similar Documents

Publication Publication Date Title
JP5898240B2 (ja) ヘテロジニアスな環境においてセッションを提供するための方法およびシステム
CA2824393C (en) Method and system for providing a session involving a plurality of software applications
US8195743B2 (en) Extensible and programmable multi-tenant service architecture
JP4788711B2 (ja) ワークフロー実行システム、ワークフロー実行方法、及び、プログラム
US10552796B1 (en) Approval service in a catalog service platform
US20160098298A1 (en) Methods and apparatus for integrated work management
US20100235887A1 (en) System and method for queuing to a cloud via a queuing proxy
US11689643B2 (en) Just-in-time auto-provisioning systems and methods for information exchange platform
Do et al. A scalable routing mechanism for stateful microservices
US10394916B2 (en) Personalized search environment
JP2003058423A (ja) アクセス制御方法、アクセス制御システムおよびアクセス制御プログラム
US9871870B1 (en) Pseudonymous communication session generation and management systems and methods
US9026657B2 (en) Method and system for provisioning telecommunication services and equipment using sequential or parallel processing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160112

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160303

R150 Certificate of patent or registration of utility model

Ref document number: 5898240

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250