【手続補正書】
【提出日】平成23年2月14日(2011.2.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【発明の名称】インターフェースモジュール
【技術分野】
【０００１】
本発明はインターフェースモジュールに関する。より詳細には、ソフトウェアモジュール間のインターフェースモジュールに関するが、これに限られない。さらに詳細には、コミュニケーションソフトウェアモジュールとビジネスロジックソフトウェアモジュールとの間のインターフェースモジュールに関するが、これに限られない。
【背景技術】
【０００２】
典型的には、ビジネスソフトウェアエンジンは、単数のフロントエンドコミュニケーションモジュールと、複数のバックエンドビジネスロジックモジュールのインスタンスとを備えている。ユーザのクエリに対応するビジネスエンジンの照会中に、フロントエンドモジュールはユーザのクエリに対応するクエリデータを受信する。そして、フロントエンドモジュールは、何れのバックエンドモジュールがユーザのクエリを処理するのに最適であるかを決定する。典型的には、こうした決定は、何れのバックエンドモジュールが適切なビジネスロジックを実行しているか、ユーザのクエリを受信した時点で特定のバックエンドが受ける負荷、などの基準に基づいて行なわれる。
【０００３】
バックエンドモジュールは、必要に応じてクエリデータを処理し、外部サービスを照会するための照会データを形成する。この照会データは、フロントエンドモジュールに送信され、そこから適切な外部サービスにルーティングされる。典型的には、バックエンドモジュールによるデータ処理は、複数の外部サービスから照会データに応答(reply)が受信されるまで一時停止される。
【０００４】
複数の外部サーバからの応答は、フロントエンドモジュールを介して、停止中のバックエンドモジュールにルーティングされる。データ処理は停止中のバックエンドモジュールで再開され、複数の応答からのデータがレスポンスに組み込まれる。レスポンスはフロントエンドモジュール経由でユーザに出力される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
バックエンドモジュールの各インスタンスは単一の要求のみを処理可能であるので、こうした構成ではリソースを効率的に使用することにはならない。これは、複数の外部サーバからの応答が照会データに受信されるまで、各バックエンドモジュールでの処理が一時停止されるからである。
【０００６】
データがバックエンドモジュールから同時に読み書きされるので、非同期的な応答処理を試みることで、バックエンドモジュール内のデータが破損し得る。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、コミュニケーションモジュールと複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）との間をインターフェースし、複数の外部サーバ（１１６ａ）に接続可能で、第１機能エレメント（１０６ａ）と、第２機能エレメント（１０６ｂ）を備えたインターフェースモジュール（１０６）であって、第１機能エレメント（１０６ａ）は、コミュニケーションモジュールからの入力データを受信するように構成され、データストラクチャ内に保持されたルールセットに基づいて、入力データを複数のロジックモジュール（１０４ａ、１０４ｂ、１０４ｃ）のインスタンスの何れに転送するかを選択するように構成される。
【０００８】
受信したクエリデータを含むユーザリクエストに応答して、第１機能エレメント（１０６ａ）は、受信したユーザリクエストにコンテクスト識別子を関連付け、データストラクチャ（１０８）内に保持されたルールセットに基づいて、関連付けられたコンテクスト識別子に応じて、複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の一つを選択し、第２機能エレメント（１０６ｂ）を介して選択されたロジックモジュールのインスタンスに受信したクエリデータを送信するように構成されている。選択されたロジックモジュールのインスタンスは、複数の外部サーバ（１１６ａ）のうち、いずれの外部サーバがユーザリクエストを満たすためにクエリされるべきかを決定し、第１機能エレメント（１０６ａ）に決定された外部サーバに関する情報を伝達するように構成される。第１機能エレメント（１０６ａ）は、決定された外部サーバにクエリを出し、クエリされた外部サーバからレスポンスデータを受信し、受信したレスポンスデータを第１機能エレメント（１０６ａ）に保存する。
【０００９】
こうしたモジュールにより、ロジックデータへの書き込みもロジックデータからの読み出しも同時に実行されないので、ロジックモジュール内のデータ破損が防止される。
【００１０】
複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）は、選択的にシングルショットモードまたはマルチプルショットモードで動作でき、第２機能エレメント（１０６ｂ）は、選択されたロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の動作モードを決定し、選択されたロジックモジュールのインスタンスと第１機能エレメント（１０６ａ）との間のデータ経路を仲介するように構成される。受信したクエリデータは、第２機能エレメント（１０６ｂ）を介して選択されたロジックモジュールのインスタンスへ、選択されたロジックモジュールのインスタンスの動作モードに応じて、順次送信される、または、受信した入力データの要約に対応する要約データレコードに対応して送信されてもよい。  
【００１１】
第１機能エレメントは、コミュニケーションモジュールに関連付けられてもよい。第２機能エレメントは、ロジックモジュールに関連付けられてもよい。それぞれがロジックモジュールのインスタンスに関連付けられた複数の第２機能エレメントが設けられてもよい。
【００１２】
インターフェースの機能エレメントをこのように分割することにより、これらの機能エレメントがやり取りを行うモジュールに対して特定の機能性を関連付けることが可能となるので、各ロジックモジュールが独立した状態になる。これにより、第２機能エレメントが複数のロジックモジュールの残りのインスタンスの動作に影響を与えることなく機能しなくなるので、システム内の冗長性が増大する。
【００１３】
データストラクチャは、複数のルールに対応する複数のデータエントリを有するようにしてもよい。データストラクチャを第１機能エレメントに保存してもよい。
【００１４】
第１機能エレメントはリモートターミナルから入力クエリデータを受信するように構成されてもよく、さらに、複数のルールに応じてクエリデータを送信するモジュールを複数のロジックモジュールの何れかに割り当てるように構成されてもよい。ルールは、所定のロジックモジュールの適合性、所定のロジックモジュールの使用、所定のロジックモジュールの動作ステータスの内、何れか一つまたは組み合わせを有するようにしてもよい。
【００１５】
複数のロジックモジュールを効率的に使用できるように、第１機能エレメントは、複数のロジックモジュールのインスタンスへのデータフロー、および、これらのロジックモジュールのインスタンスからのデータフローを調整する。これにより、ロジックモジュールを実行するプロセッサの動作の効率性を高める。
【００１６】
第１機能エレメントは、第２機能エレメントを介して複数のロジックモジュールの１つから受信した要求データに対応して、複数の外部サーバを照会するように構成されてもよい。第１機能エレメントは、複数の外部サーバからのレスポンスデータを保存するように構成してもよく、さらに、要約データレコードをそこから生成するように構成されてもよい。代替案として、第１機能エレメントは、レスポンスデータをロジックモジュールに順次送信するように構成してもよい。
【００１７】
これにより、データ破損の可能性を低減するために、外部データベースからのレスポンスデータの複数のインスタンスを管理することが可能となる。
【００１８】
インターフェースは、コンテクストデータストラクチャを有してもよい。コンテクストデータストラクチャは、クエリデータに対する複数のロジックモジュールの割り当てと、クエリデータのインスタンスに関連付けられたグローバルタイムアウトパラメータと、クエリデータの各インスタンスに関連付けられたセッション識別子（ＳＩＤ）と、外部サーバの照会に関するインスタンスに関連付けられた特定のレスポンスタイムアウトとのうち何れか一つ、または、これらの組み合わせに対応するデータエントリを有してもよい。コンテクストデータストラクチャは、第１機能エレメント内に保存されてもよい。
【００１９】
コンテクストデータストラクチャは、リモートサーバを照会中に、複数のロジックモジュールのインスタンスが、異なるクエリデータを自由に処理できるような方法でクエリデータの管理を実行可能にする。
【００２０】
第１機能エレメントは、外部サーバの照会と、外部サーバからのレスポンスデータの受信との間の経過時間が所定のタイムアウト閾値を超える場合に、タイムアウトデータを第２機能エレメントに返すように構成してもよい。
【００２１】
プロセッサで実行される場合に、このプロセッサを本発明の第１の態様によるインターフェースとして動作させるソフトウェアが提供されてもよい。
【００２２】
コミュニケーションモジュールと複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）との間をインターフェースする方法であって、クエリデータを含みコミュニケーションモジュールで受信したユーザリクエストに応答して、ユーザリクエストにコンテクスト識別子を関連付けるステップと、データストラクチャ（１０８）内に保持されたルールセットに基づいて、関連付けられたコンテクスト識別子に応じて複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の一つを選択するステップと、選択されたロジックモジュールのインスタンスに受信したクエリデータを送信するステップと、選択されたロジックモジュールのインスタンスが、複数の外部サーバ（１１６ａ）のいずれがユーザリクエストを満足させるためにクエリされなければならないかを決定するステップと、クエリされた外部サーバからレスポンスデータを受信し、受信したレスポンスデータを保存するステップと、を備える方法が提供されてもよい。
【００２３】
コンピュータで実行される際、上記に記載の方法のステップを実行するための命令を含むコンピュータプログラムが提供されてもよい。
【００２４】
上記に記載のコンピュータプログラムを実施するコンピュータ可読手段を含むコンピュータプログラム製品が提供されてもよい。
【００２５】
添付図面を参照し、本発明の実施形態をここに記載する。なお、実施形態は例示に過ぎない。
【図面の簡単な説明】
【００２６】
【図１】本発明に一態様によるインターフェースの一実施形態を有するビジネスソフトウェアエンジンを備えたビジネスエンジンに関する概略図である。
【図２】本発明の他の態様によるコミュニケーションモジュールと複数のロジックモジュールのインスタンスとの間をインターフェースする方法に関する一実施形態を詳細に示すフローチャートである。
【発明を実施するための形態】
【００２７】
ここで図１を参照すると、一例としてのビジネスエンジン１００は、フロントエンドモジュール１０２と、複数のバックエンドモジュールのインスタンス１０４ａ乃至１０４ｃと、コールコーディネータインターフェース１０６とを備える。典型的には、コールコーディネータインターフェース（ＣＣＩ）１０６は、フロントエンドモジュール１０２に関連付けられた第１エレメント１０６ａと、バックエンドモジュール１０４ａ乃至１０４ｃのそれぞれに関連付けられた複数の第２エレメント１０６ｂとを有する。通常、ＣＣＩ１０６はミドルウェアである。
【００２８】
ＣＣＩ１０６の第１エレメント１０６ａは、受信データがバックエンドモジュール１０４ａ乃至１０４ｃの何れに割り当てられるかを調整するための複数のルール１１０を含むデータストラクチャ１０８を備えている。
【００２９】
フロントエンドモジュール１０２は、ビジネスソフトウェアエンジン１００と、外部ターミナル１１４と、サービス１１６ａ乃至１１６ｃとの間の接続をネットワーク１１７経由で提供するコミュニケーションソフトウェアを有する。典型的には、ネットワーク１１７は、インターネットまたはプライベートネットワークを有する。
【００３０】
典型的には、バックエンドモジュール１０４ａ乃至１０４ｃはビジネスロジックソフトウェアを有しており、このソフトウェアは、リモートターミナル１１４から受信したユーザが生成したクエリに対する応答の生成を制御する。
【００３１】
使用時において、フロントエンドモジュール１０２は、当業者に周知の方法で、ユーザのクエリに関連付けられたデータを負荷バランス調整部１１５経由で受信し、当該クエリをＣＣＩ１０６の第１エレメント１０６ａに送信する。
【００３２】
クエリ受信時において、第１エレメント１０６ａはクエリに対するコンテクストを確立し、クエリに関連付けられたデータエントリをコンテクストサーバ１１２に保存する。例えば、コンテクストサーバのデータエントリはセッションＩＤを有しており、このＩＤは、クエリまたはグローバルレスポンスタイムアウトパラメータに関連付けられた入出力コミュニケーションの特定に使用可能なクエリに関連付けられている。グローバルタイムアウトパラメータは、クエリ全体を満たさないと思われる期間を定義する。このように、クエリに対するレスポンスがグローバルレスポンスタイムアウトパラメータで定義された時間内にユーザに供給されない場合、タイムアウトレスポンスがターミナル１１４経由でユーザに送信される。
【００３３】
第１エレメント１０６ａは、データストラクチャ１０８に保存された複数のルール１１０に応じて処理する複数のバックエンドモジュール１０４ａの一つにクエリを割り当てる。特定のバックエンドモジュールへのクエリの割り当てに使用される典型的なルールは、バックエンドモジュールのインスタンスが要求を扱うのに適切かどうか、バックエンドモジュールのインスタンスが要求を自由に扱うことができるかどうか、バックエンドモジュールのインスタンスが使用可能であるかどうか、ＳＩＤがクエリに対して確立されたかどうか、を含む。
【００３４】
そして、第１エレメント１０６ａはクエリデータをＣＣＩ１０６の第２エレメント１０６ｂに送信する。第２エレメント１０６ｂは、自身が関連付けられたバックエンドモジュール１０４ａがシングルショットモードとマルチプルショットモードの何れかで実行すべきかを決定する。クエリデータは、第２エレメント１０６ｂ経由でバックエンドモジュール１０４ａに送信される。
【００３５】
バックエンドモジュール１０４ａは、ユーザのクエリを満たすために、外部サーバ１１６ａ乃至１１６ｃのいずれが照会を必要とするかを決定する。サーバ１１６ａ乃至１１６ｃの照会を要求するデータは、第２エレメント１０６ｂに送信される。第２エレメント１０６ｂは、この時点でサーバ固有のレスポンスタイムアウトパラメータを照会データにセットしてもよい。例えば、サーバ固有のレスポンスタイムアウトデータが存在するかどうか、ロジックモジュール１０６が何れのモードで動作しているか、などのコンテクストデータがさらにコンテクストサーバ１１２に保存されている場合、照会データが第２エレメント１０６ｂから第１エレメント１０６ａに送信される。照会データがフロントエンドモジュール１０２に一旦送信されると、照会データを生成したバックエンドモジュール１０４のインスタンスは、データ処理を自由に継続することができる。第１エレメント１０６ａ内に保持されるデータは、これを反映するために更新される。
【００３６】
照会データは、フロントエンドモジュール１０２に送信される。なお、フロントエンドモジュール１０２は、この後で照会データの内容に応じてサーバ１１６ａ乃至１１６ｃを照会する。
【００３７】
サーバ１１６ａ乃至１１６ｃはデータを処理し、フロントエンドモジュール１０２経由でビジネスエンジン１００にレスポンスデータを返す。
【００３８】
フロントエンドモジュール１０２でのレスポンスデータの受信時において、第１エレメント１０６ａは、サーバ１１６ａ乃至１１６ｃをそれぞれ照会できたことを詳細に示す関連フラグを立てて、コンテクストサーバ１１２にレスポンスデータを保存する。例えば、このフラグは、サーバの照会がタイムアウトしたこと、サーバの照会が複数のコミュニケーションレイヤの一つで成功または失敗したこと、を示してもよい。
【００３９】
第１エレメント１０６ａは、照会データを生成したバックエンドモジュール１０４ａのインスタンスがシングルショットモードまたはマルチプルショットモードで動作しているかどうかを特定する。そして、第１エレメント１０６ａは、レスポンスデータの処理に適しており、レスポンスデータを自由に処理可能なバックエンドモジュール１０４ａ乃至１０４ｃのインスタンスを特定する。これは、照会データを生成した同一のバックエンドモジュールのインスタンス１０４ａであってもよいし、バックエンドモジュール１０４ｂおよび１０４ｃの何れかのインスタンスであってもよい。典型的には、複数のバックエンドモジュールの特定のインスタンスは同一であるので、交換可能である。
【００４０】
第１エレメント１０６ａは、レスポンスデータと、コンテクストサーバ１１２上に保持されたコンテクトデータとを第２エレメント１０６ｂ経由でバックエンドモジュール１０４ａに送信する。
【００４１】
バックエンドモジュール１０４ａがシングルショットモードで動作している場合、全レスポンスデータに対応するデータを含む集合データがバックエンドモジュール１０４ａに送信される。
【００４２】
しかし、バックエンドモジュール１０４ａがマルチプルショットモードで動作している場合、サーバ１１６ａ乃至１１６ｃのそれぞれの照会結果に対応するレスポンスデータがバックエンドモジュール１０４ａに返される。
【００４３】
バックエンドモジュール１０４ａはレスポンスデータを処理し、ユーザのクエリに対する回答を含む応答データを、第１および第２エレメント１０６ａ，１０６ｂ、フロントエンドモジュール１０２、およびネットワーク１１８を介してリモートターミナル１１４に出力する。
【００４４】
例えば、ビジネスエンジン１００が旅行予約エンジンであり、ユーザがベルリンからニースへのフライトに関する詳細を要求する場合、フロントエンドコミュニケーションモジュールは、ユーザターミナル１１３から要求を受信する。
【００４５】
この要求は、ＣＣＩ１０６の第１エレメント１０６ａに送信される。なお、第１エレメントは、セッションＩＤをこの要求に割り当て、これをコンテクストサーバ１１２に保存する。第１エレメント１０６ａは、この要求をバックエンドモジュール１０４ａ乃至１０４ｃのインスタンスに割り当てる。
【００４６】
例えば、２つのバックエンドモジュールのインスタンス１０４ａ、１０４ｂがフライト予約を処理し、他のバックエンドモジュールのインスタンス１０４ｃがホテル予約を処理してもよい。この場合、第１エレメント１０６ａは、ホテル予約用バックエンドモジュールのインスタンス１０４ｃがこの要求の送信に不適切であることを確認する。２つのフライト予約用バックエンドモジュールのインスタンス１０４ｂの内、一方は他の要求の処理を行ってもよい。したがって、第１エレメント１０６ａは、フライト予約を扱う利用可能なバックエンドモジュールのインスタンス１０４ａにこの要求を割り当てる。
【００４７】
この要求は、ＣＣＩ１０６の第２エレメント１０６ｂに送信され、その後、利用可能なフライト予約用バックエンドモジュールのインスタンス１０４ａに送信される。これは、周知の方法でこの要求を処理し、３つのエアラインサーバ１１６ａ乃至１１６ｃの照会を要求する照会データを出力する。この照会データは、ＣＣＩ１０６を通過し、第２エレメント１０６ｂを経由して、第１エレメント１０６ａに送信される。第２エレメント１０６ｂにおいて、バックエンドモジュールのインスタンス１０４ａがシングルショットモードとマルチプルショットモードの何れかで動作しているか、サーバ固有のレスポンスタイムアウトパラメータが設定されたかどうかを示すために、複数のフラグが照会データに加えられる。
【００４８】
第１エレメント１０６はこれらのフラグを照会データから抽出し、セッションＩＤによって特定されたセッションのためのコンテクストデータと共にコンテクストサーバ１１２に保存する。
【００４９】
照会データはコミュニケーションフロントエンドモジュール１０２に送信される。なお、この照会データは、コミュニケーションフロントエンドモジュール１０２からネットワーク１１７経由でエアラインサーバ１１６ａ乃至１１６ｃに送信される。サーバ１１６ａ乃至１１６ｃは、当業者に周知の方法で照会される。ベルリンからニースへのルートでの席の有無および価格に関するデータを含むレスポンスデータは、ネットワーク１１７経由でビジネスエンジン１００に送信される。
【００５０】
上述のように、適切で利用可能なバックエンドモジュールのインスタンス１０４ａに割り当てられる場合、レスポンスデータは、フロントエンドモジュール１０２を通過し、ＣＣＩ１０６の第１エレメント１０６ａに送信される。
【００５１】
グローバルレスポンスタイムアウトパラメータがＣＣＩ１０６の第１エレメント１０６ａで定義される場合、すべてのレスポンスデータがタイムアウト期間の終了前にフロントエンドモジュール１０２で受信されていないのであれば、要求はタイムアウトとなってもよい。この状況が発生した場合、フロントエンドモジュール１０２はバックエンドモジュールのインスタンス１０４ａに送信される通知データを生成する。そして、これがタイムアウト応答シーケンスのトリガーとなる。なお、タイムアウト応答シーケンスは、フロントエンドモジュール１０２によってネットワーク１１７経由でユーザターミナル１１４にルーティングされるタイムアウトメッセージを生じることになる。
【００５２】
レスポンスデータは、フロントエンドモジュールによって使用に適しており、自由に使用できると決定されたバックエンドモジュールのインスタンス１０４ａに送信されるのである。この時、バックエンドモジュールのインスタンス１０４ａがマルチプルショットモードで動作している場合には順次送信され、また、シングルショットモードで動作している場合には集合データレコードとして送信される。このレスポンスデータは、上記インスタンス１０４ａ内で実行するビジネスロジックに応じて、バックエンドモジュールインスタンス１０４ａによって処理される。
【００５３】
バックエンドモジュールのインスタンス１０４ａがマルチプルショットモードで動作し、サーバ固有のタイムアウトが任意に設定される場合、サーバ固有のレスポンスタイムアウトで定められた制限時間内にエアラインサーバ１１６ａ乃至１１６ｃの任意の一つ、または、特定の一つが応答できなければ、このタイムアウトによる失敗が第１エレメント１０６ａに通知される応答データの出力が行われる。典型的には、特定サーバが信頼性の低いレコードを有することで知らており、何らかの理由でアップグレード等を実施している場合に、サーバ固有のレスポンスタイムアウトパラメータを定義してもよい。
【００５４】
レスポンスタイムアウトパラメータが矛盾しない場合、バックエンドモジュールのインスタンス１０４ａは、応答データを第１エレメント１０６ａに出力する。
【００５５】
第１エレメント１０６ａは、任意の応答データをフロントエンドモジュール１０２に送信する。なお、フロントエンドモジュール１０２は、この応答データをネットワーク１１７経由でユーザターミナル１１４にルーティングする。
【００５６】
ここで図２を参照すると、単数のコミュニケーションモジュールと、複数のロジックモジュールのインスタンスとの間をインターフェースする方法は、データストラクチャ内に保持されたルールセットに基づいて、入力データを転送するために、複数のロジックモジュールのインスタンスの何れかを選択するステップを有する（ステップ２００）。この入力データは、選択されたロジックモジュールのインスタンスに送信される（ステップ２０２）。選択されたロジックモジュールのインスタンスの動作モードが決定される（ステップ２０４）。コミュニケーションモジュールで受信された入力データは、選択されたロジックモジュールに順次送信されるか、コミュニケーションモジュールで受信された入力データの要約に対応する要約データレコードとして送信される。これは、選択されたロジックモジュールのインスタンスの動作モードによって決まる（ステップ２０６）。
【００５７】
本発明は、旅行データを参照して記載されているが、任意のエンジンでの使用にも適しているのは言うまでもない。この場合、任意のエンジンにおいては、ビジネスロジックまたは任意の他のロジックの複数のインスタンスが、これらのロジックインスタンスからのデータフローと、これらのロジックインスタンスへのデータフローとを調整するコミュニケーションモジュールとやり取りを行う。
【００５８】
さらに、ＣＣＩは、フロントエンドモジュールと、複数のバックエンドモジュールのインスタンスのそれぞれに、それぞれ関連付けられた第１および第２エレメントを用いて説明されているが、内部で実行する第２エレメントの複数のインスタンスを備えた個別のシステムエレメントであってもよいことは言うまでもない。
【００５９】
本発明の様々な実施形態が記載されたが、この開示により、本発明の範囲を逸脱することなく、様々な修正、変更、改良、変化を加えることが可能であることは、当業者にとって明白である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コミュニケーションモジュールと複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）との間をインターフェースし、複数の外部サーバ（１１６ａ）に接続可能で、第１機能エレメント（１０６ａ）と第２機能エレメント（１０６ｂ）とを備えたインターフェースモジュール（１０６）であって、
前記第１機能エレメント（１０６ａ）は、前記コミュニケーションモジュールからの入力データを受信するように構成され、前記入力データを前記複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の内、何れに転送するかを選択するように構成され、
受信したクエリデータを含むユーザリクエストに応答して、前記第１機能エレメント（１０６ａ）は、前記受信したユーザリクエストにコンテクスト識別子を関連付け、データストラクチャ（１０８）内に保持されたルールセットに基づいて、前記関連付けられたコンテクスト識別子に応じて、前記複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の一つを選択し、前記第２機能エレメント（１０６ｂ）を介して前記選択されたロジックモジュールのインスタンスに前記受信したクエリデータを送信するように構成されていて、
前記選択されたロジックモジュールのインスタンスは、前記複数の外部サーバ（１１６ａ）のうち、いずれの外部サーバが前記ユーザリクエストを満たすためにクエリされるべきかを決定し、前記第１機能エレメント（１０６ａ）に前記決定された外部サーバに関する情報を伝達するように構成され、前記第１機能エレメント（１０６ａ）は、前記決定された外部サーバにクエリを出し、前記クエリされた外部サーバからレスポンスデータを受信し、前記受信したレスポンスデータを前記第１機能エレメント（１０６ａ）に保存するインターフェースモジュール（１０６）。
【請求項２】
前記複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）は、選択的にシングルショットモードまたはマルチプルショットモードで動作でき、前記第２機能エレメント（１０６ｂ）は、前記選択されたロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の動作モードを決定し、前記選択されたロジックモジュールのインスタンスと前記第１機能エレメント（１０６ａ）との間のデータ経路を仲介するように構成され、
前記受信したクエリデータは、前記第２機能エレメント（１０６ｂ）を介して前記選択されたロジックモジュールのインスタンスへ、前記選択されたロジックモジュールのインスタンスの動作モードに応じて、順次送信される、または、受信した入力データの要約に対応する要約データレコードに対応して送信される請求項１に記載のインターフェースモジュール（１０６）。
【請求項３】
前記データストラクチャが前記第１機能エレメント（１０６ａ）に保存されている請求項１または請求項２に記載のインターフェースモジュール（１０６）。
【請求項４】
前記第１機能エレメントは、リモートターミナルから入力クエリデータを受信するように構成されている請求項１から３の何れかに記載のインターフェースモジュール（１０６）。
【請求項５】
前記第１機能エレメントは、複数の外部サーバから受信したレスポンスデータを保存するように構成されている請求項１から４の何れかに記載のインターフェースモジュール（１０６）。
【請求項６】
前記第１機能エレメントは、複数の外部サーバから受信したレスポンスデータから要約データレコードを生成するように構成され、前記要約データレコードを前記選択されたロジックモジュールのインスタンスに送信するように構成されている請求項１から５の何れかに記載のインターフェースモジュール（１０６）。
【請求項７】
前記第１機能エレメントは、前記選択されたロジックモジュールのインスタンスに前記要約データレコードを順次送信するように構成されている請求項６に記載のインターフェースモジュール（１０６）。
【請求項８】
コンテクストデータストラクチャを備える請求項１から７の何れかに記載のインターフェースモジュール（１０６）。
【請求項９】
前記コンテクストデータストラクチャは、クエリデータに対する複数のロジックモジュールの割り当て、クエリデータのインスタンスに関連付けられたグローバルタイムアウトパラメータ、クエリデータの各インスタンスに関連付けられたセッション識別子（ＳＩＤ）、外部サーバの照会に関するインスタンスに関連付けられた特定のレスポンスタイムアウトの内、１以上に対応する複数のデータエントリを有する請求項８に記載のインターフェースモジュール（１０６）。
【請求項１０】
外部サーバの照会と前記外部サーバからのレスポンスデータの受信との間の経過時間が所定のタイムアウト閾値を超える場合に、前記第１機能エレメントは、タイムアウトデータを前記第２機能エレメントに返すように構成されている請求項１から９の何れかに記載のインターフェースモジュール（１０６）。
【請求項１１】
コミュニケーションモジュールと複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）との間をインターフェースする方法であって、
クエリデータを含み前記コミュニケーションモジュールで受信したユーザリクエストに応答して、前記ユーザリクエストにコンテクスト識別子を関連付けるステップと、
データストラクチャ（１０８）内に保持されたルールセットに基づいて、前記関連付けられたコンテクスト識別子に応じて前記複数のロジックモジュールのインスタンス（１０４ａ、１０４ｂ、１０４ｃ）の一つを選択するステップと、
前記選択されたロジックモジュールのインスタンスに前記受信したクエリデータを送信するステップと、
前記選択されたロジックモジュールのインスタンスが、前記複数の外部サーバ（１１６ａ）のいずれが前記ユーザリクエストを満足させるためにクエリされなければならないかを決定するステップと、
前記クエリされた外部サーバからレスポンスデータを受信し、前記受信したレスポンスデータを保存するステップと、
を備える方法。
【請求項１２】
コンピュータで実行される際、請求項１１に記載の前記方法の前記ステップを実行するための命令を含むコンピュータプログラム。
【請求項１３】
請求項１２に記載の前記コンピュータプログラムを実施するコンピュータ可読手段を含むコンピュータプログラム製品。