(57)【特許請求の範囲】
【請求項１】
端末と第１サーバ及び第２サーバとの間のデータを中継するコンピュータに、
前記端末から受信したリクエストデータを第１サーバへ送信し、
前記リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信し、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、
前記リクエストデータの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングで前記コンピュータに送信する確認プログラムを、前記疑似レスポンスデータに格納して、前記端末に送信し、
前記第１サーバから前記レスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶し、
前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信する
各処理を実行させることを特徴とする中継プログラム。
【請求項２】
前記疑似レスポンスデータを前記端末に送信した後に、該端末から表示画面の変更要求を受信した場合に、変更後の表示画面を表示するデータに、前記確認プログラムを格納して、前記端末に送信する処理を更にコンピュータに実行させることを特徴とする請求項１に記載の中継プログラム。
【請求項３】
前記疑似レスポンスデータを送信する処理は、前記記憶装置を参照し、前記第１サーバからのレスポンスデータを受信する前に、前記疑似レスポンスデータを受信した場合に、前記疑似レスポンスデータを、前記端末に送信することを特徴とする請求項１または２に記載の中継プログラム。
【請求項４】
端末と第１サーバ及び第２サーバとの間のデータを中継するコンピュータが実行する中継方法であって、
前記端末から受信したリクエストデータを第１サーバへ送信し、
前記リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信し、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、
前記リクエストデータの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングで前記コンピュータに送信する確認プログラムを、前記疑似レスポンスデータに格納して、前記端末に送信し、
前記第１サーバから前記レスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶し、
前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信する
各処理を実行させることを特徴とする中継方法。
【請求項５】
通信部と制御部と記憶部とを有し、端末と第１サーバ及び第２サーバとの間のデータを中継する中継装置であって、
前記制御部は、
前記端末から受信したリクエストデータを前記第１サーバへ送信し、前記リクエストデータから生成された疑似リクエストデータを前記第２サーバへ送信するリクエスト送信部と、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、前記リクエストデータの応答となるレスポンスデータを受信するレスポンス受信部と、
前記レスポンスデータの受信を確認する確認リクエストデータを所定のタイミングで前記中継装置に送信する確認プログラムを、前記疑似レスポンスデータに格納して前記端末に送信し、前記第１サーバから受信した前記レスポンスデータを受信した場合に前記記憶部に記憶された該レスポンスデータを、前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記確認リクエストデータに対する応答として、前記端末に送信するレスポンス送信部と
を有することを特徴とする中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継プログラム等に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの浸透にともない、インターネット上に便利なサービスが増えつつある。以下では、クラウドコンピューティングをクラウドと略記する。例えば、クラウド上で動作するソフトウェアの機能を、ネットワークを介してオンラインで利用する形態がとられる。
【０００３】
しかし、秘匿データを取り扱う場合には、この秘匿データをクラウドに送信すると、クラウド上で秘匿データが漏洩する恐れがある。このため、クラウド上で動作するウェブアプリケーションと同じものを、組織内部のサーバにデプロイして組織外部に秘匿データが漏れないようにする技術がある。
【０００４】
例えば、従来技術では、クラウド上で動作するＷｅｂアプリケーションと同じものを、組織内部のサーバにデプロイして利用する技術が開示されている。組織内部のサーバは、デプロイしたウェブアプリケーションを実行し、端末からの表示画面の更新要求に応答して、表示画面の更新情報を非同期に送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−６３３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
組織内部のサーバは、デプロイしたウェブアプリケーションの処理負荷が大きい場合に、端末からの要求に迅速に対応できず、端末においてタイムアウトが発生してしまうという問題があった。このように、端末にタイムアウトが発生すると、利用者は、操作を継続できなくなってしまう上、処理結果を得ることができなくなってしまう。
【０００７】
なお、組織内部のサーバは、デプロイしたウェブアプリケーションを改良し、端末にタイムアウトが発生する前に「しばらくお待ちください」等のメッセージを一旦戻して、端末の処理をリフレッシュさせることが考えられる。端末は、リフレッシュ後に再度目的のＵＲＬ（Uniform  Resource  Locator）にアクセスすることで、処理を継続することができる。
【０００８】
しかし、従来技術は、クラウド上のウェブアプリケーションと同じものを組織内部のサーバにデプロイするものであるため、デプロイするウェブアプリケーションが自社開発のものでなければ、勝手に改良を加えることが難しい。また、仮に、組織内部のサーバがメッセージを一旦戻して、端末をリフレッシュさせても、端末はリフレッシュされた処理を再度実行することになり、ユーザは他の操作を行うことができなくなる。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、端末のタイムアウトを防止することができる中継プログラム、中継方法および中継装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
開示の中継プログラムは、コンピュータに下記の各処理を実行させる。中継プログラムは、コンピュータに、端末から受信したリクエストデータを第１サーバへ送信し、リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信させる。また、中継プログラムは、コンピュータに、疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信させる。また、中継プログラムは、コンピュータに、リクエストの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングでコンピュータに送信する確認プログラムを、疑似レスポンスデータに格納して、端末に送信させる。また、中継プログラムは、コンピュータに、コンピュータに第１サーバからレスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶させる。また、中継プログラムは、コンピュータに、端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際に下記の処理を実行させる。すなわち、コンピュータに、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信させる。
【発明の効果】
【００１１】
開示の中継プログラムによれば、端末のタイムアウトを防止することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例にかかるシステムの構成を示す図である。
【図２】図２は、端末で実行されるアプリを説明するための図である。
【図３】図３は、中継装置の構成を示す機能ブロック図である。
【図４】図４は、サービス管理テーブルのデータ構造の一例を示す図である。
【図５】図５は、利用者通信管理テーブルのデータ構造の一例を示す図である。
【図６】図６は、第１リクエストデータのデータ構造の一例を示す図である。
【図７】図７は、疑似リクエストデータのデータ構造の一例を示す図である。
【図８】図８は、疑似レスポンスデータのデータ構造の一例を示す図である。
【図９】図９は、画面変更データのデータ構造の一例を示す図である。
【図１０】図１０は、確認プログラムが挿入された疑似レスポンスデータの一例を示す図である。
【図１１】図１１は、リクエストデータを受信した場合の処理手順を示すフローチャートである。
【図１２】図１２は、結果出力処理の処理手順を示すフローチャートである。
【図１３】図１３は、レスポンスデータを受信した場合の処理手順を示すフローチャートである。
【図１４】図１４は、内部レスポンス処理の処理手順を示すフローチャートである。
【図１５】図１５は、外部レスポンス処理の処理手順を示すフローチャートである。
【図１６】図１６は、照合プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する中継プログラム、中継方法および中継装置を実行するコンピュータの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１４】
本実施例にかかるシステムの構成について説明する。図１は、本実施例にかかるシステムの構成を示す図である。図１に示すように、このシステムは、端末６０、内部サーバ７０、外部サーバ９０、中継装置１００を有する。中継装置１００は、ネットワーク５０を介して、端末６０、内部サーバ７０、外部サーバ９０に接続される。また、外部サーバ９０は、クラウド８０に含まれる。
【００１５】
端末６０は、中継装置１００を介して、内部サーバ７０にリクエストデータを送信し、各種の処理要求を行う装置である。
【００１６】
内部サーバ７０は、外部サーバ９０と同一のアプリケーション機能を有する装置であり、各種のサービスを端末６０に提供する装置である。内部サーバ７０は、中継装置１００を介して、端末６０のリクエストデータを受信し、リスクストデータに対応する処理を行う。そして、内部サーバ７０は、処理結果を、中継装置１００を介して端末６０に送信する。内部サーバ７０が中継装置１００に送信する処理結果を、レスポンスデータと表記する。内部サーバ７０は、第１サーバの一例である。
【００１７】
外部サーバ９０は、内部サーバ７０と同一のアプリケーション機能を有する装置である。外部サーバ９０は、中継装置１００から、端末６０のリクエストデータの一部を疑似情報に変更された疑似リクエストデータを受信し、疑似リクエストデータに対応する処理を行う。そして、外部サーバ９０は、処理結果を、中継装置１００に送信する。外部サーバ９０が中継装置１００に送信する処理結果を、疑似レスポンスデータと表記する。外部サーバ９０は、第２サーバの一例である。なお、外部サーバ９０は、クラウド８０に含まれる複数の装置によって構成されていてもよい。
【００１８】
中継装置１００は、端末６０と内部サーバ７０及び外部サーバ９０との間のデータを中継する装置である。この中継装置１００は、端末６０からリクエストデータを受信すると、リクエストデータを内部サーバ７０に送信する。また、中継装置１００は、リクエストデータの一部を疑似情報に変更することで、疑似リクエストデータを生成し、疑似リクエストデータを外部サーバ９０に送信する。
【００１９】
まず、中継装置１００が、内部サーバ７０からのレスポンスデータよりも、外部サーバ９０の疑似レスポンスデータを先に受信した場合について説明する。この場合には、中継装置１００は、レスポンスデータを確認する確認リクエストを所定のタイミングで中継装置１００に送信する確認プログラムを、疑似レスポンスデータに格納する。そして、中継装置１００は、確認プログラムを格納した疑似レスポンスデータを端末６０に送信する。
【００２０】
中継装置１００は、疑似レスポンスデータを端末６０に送信した後に、内部サーバ７０からレスポンスデータを受信し、記憶部に記憶する。端末６０は、確認プログラムを実行して、リクエストデータを中継装置１００に送信する。中継装置１００は、かかるリクエストデータを端末６０から受信した場合には、記憶部に記憶されたレスポンスデータを送信する。
【００２１】
続いて、中継装置１００が、外部サーバ９０からの疑似レスポンスデータよりも、内部サーバ７０からのレスポンスデータを先に受信した場合について説明する。この場合には、中継装置１００は、レスポンスデータを端末６０に送信する。
【００２２】
上記のように、中継装置１００は、端末６０からリクエストデータを内部サーバ７０に送信すると共に、疑似リクエストデータを外部サーバ９０に送信する。中継装置１００は、レスポンスデータよりも疑似レスポンスデータを先に受信した場合には、疑似レスポンスデータに確認プログラムを格納し、端末６０に送信する。その後、中継装置１００は、確認プログラムが端末６０で実行されることにより、端末６０から送信されるリクエストデータに対して、内部サーバ７０から受信しておいたレスポンスデータを端末６０に送信する。このため、端末６０のタイムアウトを防止することができる。
【００２３】
次に、図１に示した端末６０において実行されるアプリの一例について説明する。図２は、端末で実行されるアプリを説明するための図である。ユーザは、端末６０を操作して
アプリを実行することで、端末６０は、診断メニュー画面６１を表示する。
【００２４】
例えば、利用者が端末６０を操作してＡＢＣ診断６１ａを選択すると、端末６０がファイル選択画面６２を表示する。利用者は、端末６０を操作して、入力欄６２ａにＡＢＣ診断の実行対象となるファイル名を入力し、送信ボタン６２ｂを押下する。
【００２５】
端末６０は、送信ボタン６２ｂが押下された場合に、リクエストデータを中継装置１００に送信する。以下の説明において、送信ボタン６２ａが押下された場合に送信するリクエストデータを、特に区別する場合に、第１リクエストデータと表記する。端末６０は、中継装置１００からレスポンスデータまたは疑似レスポンスデータを受信し、受信したレスポンスデータまたは疑似レスポンスデータに応じた診断結果画面６３を表示する。
【００２６】
ここで、端末６０は、疑似レスポンスデータを受信した場合には、疑似レスポンスデータに含まれる確認プログラムを実行し、所定の時間間隔で、リクエストデータを中継装置１００に送信し、内部サーバ７０のレスポンスデータの要求を行う。以下の説明において、確認プログラムを実行して、中継装置１００に送信するリクエストデータを、特に区別する場合に、第２リクエストデータと表記する。
【００２７】
また、端末６０は、診断結果画面６３のメニューへ戻る６３ａを選択された場合には、画面変更のリクエストデータを中継装置１００に送信し、中継装置１００から送信されるデータにより、診断メニュー画面６１を表示する。端末６０は、診断メニュー画面６１を表示するデータに確認プログラムが含まれている場合には、確認プログラムを実行し、所定の時間間隔で、リクエストデータを中継装置１００に送信し、内部サーバ７０のレスポンスデータの要求を行う。
【００２８】
端末６０は、確認プログラムを実行してリクエストデータを中継装置１００に送信し、内部サーバ７０のレスポンスデータを受信した場合には、レスポンスデータに対応する表示画面を表示させる。
【００２９】
次に、図１に示した中継装置１００の構成について説明する。図３は、中継装置の構成を示す機能ブロック図である。図３に示すように、この中継装置１００は、通信部１１０、記憶部１２０、制御部１３０を有する。
【００３０】
通信部１１０は、端末６０、内部サーバ７０、外部サーバ９０との間でデータ通信を実行する処理部である。例えば、通信部１１０は、所定の通信プロトコルを利用してデータ通信を行う通信装置、通信カードなどに対応する。後述の制御部１３０は、通信部１１０を介して、端末６０、内部サーバ７０、外部サーバ９０との間でデータ通信を行うものとする。
【００３１】
記憶部１２０は、サービス管理テーブル１２０ａ、利用者通信管理テーブル１２０ｂ、結果出力データ１２０ｃを記憶する記憶部である。例えば、記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００３２】
サービス管理テーブル１２０ａは、端末６０からのリクエストデータを処理する外部サーバ９０のＵＲＬを保持するテーブルである。図４は、サービス管理テーブルのデータ構造の一例を示す図である。図４に示すように、このサービス管理テーブル１２０ａは、ＵＲＬと対応外部ＵＲＬとを対応付ける。
【００３３】
図４において、ＵＲＬは、端末６０からのリクエストデータに含まれるＵＲＬである。対応外部ＵＲＬは、ＵＲＬの処理を実行する外部サーバ９０のＵＲＬである。例えば、ＵＲＬ「http:/internal.com/abc」の対応外部ＵＲＬは「http:/external.com/abc」である。
【００３４】
利用者通信管理テーブル１２０ｂは、端末６０からのリクエストデータに対して、内部サーバ７０、外部サーバ９０からの応答があったか否かを管理するテーブルである。図５は、利用者通信管理テーブルのデータ構造の一例を示す図である。図５に示すように、この利用者通信管理テーブル１２０ｂは、利用者識別子、内部サーバレスポンス、外部サーバレスポンス、結果出力リソースを対応付ける。
【００３５】
図５において、利用者識別子は、端末６０を一意に識別するものである。例えば、端末６０の利用者識別子を「１９２．１６８．０．３」とする。内部サーバレスポンスは、内部サーバ７０からのレスポンスデータを格納するものである。内部サーバレスポンスにレスポンスデータが格納されている場合には、端末６０のリクエストデータに対応する内部サーバ７０の応答があったことを示す。
【００３６】
図５において、外部サーバレスポンスは、外部サーバ９０からの疑似レスポンスデータを格納するものである。外部サーバレスポンスにレスポンスデータが格納されている場合には、疑似リクエストデータに対応する外部サーバ９０の応答があったことを示す。
【００３７】
図５において、結果出力リソースは、内部サーバ７０の処理結果の格納場所を示すものである。
【００３８】
結果出力データ１２０ｃは、内部サーバ７０の処理結果を含むデータである。例えば、結果出力データ１２０ｃは、内部サーバ７０からのレスポンスデータに対応する。
【００３９】
制御部１３０は、リクエスト受信部１３１、リクエスト判定部１３２、疑似リクエスト生成部１３３、リクエスト送信部１３４、結果出力部１３５を有する。また、制御部１３０は、レスポンス受信部１３６、レスポンス判定部１３７、リソース生成部１３８、スクリプト挿入部１３９、レスポンス送信部１４０を有する。例えば、制御部１３０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１３０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００４０】
リクエスト受信部１３１は、端末６０からのリクエストデータを受信する処理部である。リクエスト受信部１３１は、リクエストデータをリクエスト判定部１３２に出力する。リクエスト受信部１３１の受信するリクエストデータには、第１リクエストデータ、第２リクエストデータを含む。
【００４１】
例えば、リクエストデータは、制御ヘッダと、リクエストＵＲＬを有する。制御ヘッダには、端末を一意に識別する利用者識別子が含まれる。リクエストＵＲＬには、リクエスト対象となるＵＲＬが含まれる。例えば、リクエストが、あるファイルに対するＡＢＣ診断である場合には、リクエストＵＲＬには「http://internal.com/abc」が格納される。
【００４２】
リクエスト判定部１３２は、第１、２リクエストデータに応じた各種の処理を実行する処理部である。
【００４３】
リクエスト判定部１３２が、第１リクエストデータを受信した場合の処理について説明する。リクエスト判定部１３２は、第１リクエストデータのリクエストＵＲＬと、サービス管理テーブル１２０ａとを基にして、第１リクエストデータを疑似リクエストデータに変換して、外部サーバ９０に送信するか否かを判定する。
【００４４】
リクエスト判定部１３２は、リクエストＵＲＬが、サービス管理テーブル１２０ａのＵＲＬの列に存在する場合には、疑似リクエストデータに変換して、外部サーバ９０に送信すると判定する。
【００４５】
リクエスト判定部１３２は、第１リクエストデータを疑似リクエストデータに変換すると判定した場合には、第１リクエストデータを疑似リクエスト生成部１３３に出力することで、疑似リクエストデータの生成を依頼する。また、リクエスト判定部１３２は、第１リクエストデータをリクエスト送信部１３４に出力する。
【００４６】
リクエスト判定部１３２は、第１リクエストデータの利用者識別子を、利用者通信管理テーブル１２０ｂに格納する。また、リクエスト判定部１３２は、格納した利用者識別子に対応する内部サービスレスポンスおよび外部サービスレスポンスを未受信に設定する。
【００４７】
これに対して、第１リクエストデータに含まれるリクエストＵＲＬが、サービス管理テーブル１２０ａのＵＲＬの列に存在する場合しない場合には、疑似リクエストデータを送信しないと判定する。また、リクエスト判定部１３２は、第１リクエストデータをリクエスト送信部１３４に出力する。
【００４８】
リクエスト判定部１３２が、第２リクエストデータを受信した場合の処理について説明する。リクエスト判定部１３２は、利用者通信管理テーブル１２０ｂの利用者識別子と結果出力リソースとの組と、第２リクエストデータの利用者識別子とリクエストＵＲＬとの組が一致するか否かを判定する。
【００４９】
リクエスト判定部１３２は、各組が一致する場合には、第２リクエストデータを結果出力部１３５に出力する。一方、リクエスト判定部１３２は、各組が一致しない場合には、ステータスコード４０１をレスポンスとして、端末６０に返信する。
【００５０】
疑似リクエスト生成部１３３は、第１リクエストデータから疑似リクエストデータを生成する処理部である。図６は、第１リクエストデータのデータ構造の一例を示す図である。図７は、疑似リクエストデータのデータ構造の一例を示す図である。
【００５１】
例えば、疑似リクエスト生成部１３３は、図６の第１リクエストデータの領域１０ａの「１０、２０、３０」、「２０、１０、４０」を「１、１、１」に変換することで、図７の疑似リクエストデータを生成する。変換対象となる領域および、変換後の値は、予め設定されているものとする。疑似リクエスト生成部１３３は、生成した疑似リクエストデータを、リクエスト送信部１３４に出力する。
【００５２】
リクエスト送信部１３４は、第１リクエストデータを、内部サーバ７０に送信する。また、リクエスト送信部１３４は、疑似リクエストデータを、外部サーバ９０に送信する。
【００５３】
結果出力部１３５は、第２リクエストデータのリクエストＵＲＬに対応する処理結果を、結果出力データ１２０ｃから取得する。そして、結果出力部１３５は、処理結果を、レスポンス送信部１４０に出力する。この処理結果は、内部サーバ７０のレスポンスデータに対応するものである。
【００５４】
なお、結果出力部１３５は、リクエストＵＲＬに対応する処理結果が結果出力データ１２０ｃに存在するか否かによって、レスポンスの返却依頼をレスポンス送信部１４０に行ってもよい。
【００５５】
レスポンス受信部１３６は、内部サーバ７０からレスポンスデータを受信した場合には、レスポンスデータをレスポンス判定部１３７に出力する。また、レスポンス受信部１３６は、外部サーバ９０から疑似レスポンスデータを受信した場合には、疑似レスポンスデータをレスポンス判定部１３７に出力する。図８は、疑似レスポンスデータのデータ構造の一例を示す図である。
【００５６】
内部サーバ７０の処理能力よりも外部サーバ９０の方の処理能力が長けている場合には、レスポンス受信部１３６は、レスポンスデータよりも疑似レスポンスデータを先に受信する。また、レスポンスデータおよび疑似レスポンスデータには、対応する利用者識別子が含まれているものとする。
【００５７】
なお、レスポンス受信部１３６は、端末６０から、画面変更のリクエストデータを受信する。レスポンス受信部１３６は、画面変更のリクエストデータを、レスポンス判定部１３７に出力する。
【００５８】
レスポンス判定部１３７は、レスポンスデータまたは疑似レスポンスデータに応じた各種の処理を実行する処理部である。また、レスポンス判定部１３７は、画面変更のリクエストデータに応じた処理を実行する。
【００５９】
レスポンス判定部１３７が、外部サーバ９０から疑似レスポンスデータを受信した場合の処理について説明する。レスポンス判定部１３７は、疑似レスポンスデータを、利用者識別子に対応付けて、利用者通信管理テーブル１２０ｂに格納する。
【００６０】
そして、レスポンス判定部１３７は、利用者通信管理テーブル１２０ｂを参照し、利用者識別子に対応する内部サーバレスポンスが未受信であるか否かを判定する。レスポンス判定部１３７は、内部サーバレスポンスが未受信の場合には、疑似レスポンスデータを、スクリプト挿入部１３９に出力する。
【００６１】
レスポンス判定部１３７が、内部サーバ７０からレスポンスデータを受信した場合の処理について説明する。レスポンス判定部１３７は、レスポンスデータを、利用者識別子に対応付けて、利用者通信管理テーブル１２０ｂに格納する。また、レスポンス判定部１３７は、レスポンスデータを、リソース生成部１３８に出力する。
【００６２】
そして、レスポンス判定部１３７は、利用者通信管理テーブル１２０ｂを参照し、利用者識別子に対応する外部サーバレスポンスが未受信であるか否かを判定する。レスポンス判定部１３７は、外部サーバレスポンスが未受信の場合には、レスポンスデータをレスポンス送信部１４０に送信する。
【００６３】
レスポンス判定部１３７が、画面変更のリクエストデータを受信した場合の処理について説明する。レスポンス判定部１３７は、利用者通信管理テーブル１２０ｂを参照し、利用者識別子に対応する内部サーバレスポンスが未受信であるか否かを判定する。
【００６４】
レスポンス判定部１３７は、内部サーバレスポンスが未受信の場合には、変更後の画面を表示するプログラムに確認プログラムを格納したデータを生成する。例えば、確認プログラムは、スクリプトである。以下において、この変更後の画面を表示するプログラムに確認プログラムを格納したデータを、画面変更データと表記する。レスポンス判定部１３７は、画面変更データをレスポンス送信部１４０に出力する。
【００６５】
図９は、画面変更データのデータ構造の一例を示す図である。図９に示すように、この画面変更データには、確認プログラム２０が格納されている。例えば、この画面変更データが端末６０に送信されると、図２に示した診断メニュー画面６１が表示される。
【００６６】
この確認プログラム２０が端末６０で実行された場合の処理の一例について説明する。端末６０は、１０秒おきに、第２リクエストデータを中継装置１００に送信する。該当する内部サーバ７０のレスポンスデータが中継装置１００に存在しない旨の情報が返ってきた場合には、１０秒後に再度第２リクエストデータを中継装置１００に送信する。
【００６７】
これに対して、レスポンス判定部１３７は、内部サーバレスポンスが受信済みの場合には、利用者通信管理テーブル１２０ｂを参照し、利用者識別子に対応する結果出力リソースにより、該当する処理結果を、結果出力データ１２０ｃから取得する。レスポンス判定部１３７は、利用者識別子と処理結果とを対応付けたデータを、レスポンス送信部１４０に出力する。
【００６８】
図３の説明に戻る。リソース生成部１３８は、内部サーバ７０からのレスポンスデータを、結果出力データ１２０ｃに登録する処理部である。また、リソース生成部１３８は、レスポンスデータを格納した位置を、利用者通信管理テーブル１２０ｂの結果出力リソースに格納する。例えば、レスポンスデータを格納した位置は、ＵＲＬで表される。
【００６９】
スクリプト挿入部１３９は、疑似レスポンスデータに、確認プログラムを挿入する処理部である。図１０は、確認プログラムが挿入された疑似レスポンスデータの一例を示す図である。図１０に示すように、この疑似レスポンスデータには、確認プログラム２０が挿入されている。確認プログラム２０の説明は、図９で説明したものと同様である。スクリプト挿入部１３９は、確認プログラムを挿入した疑似レスポンスデータを、レスポンス送信部１４０に出力する。
【００７０】
レスポンス送信部１４０は、レスポンスデータ、疑似レスポンスデータを端末６０に送信する。また、レスポンス送信部１４０は、画面変更データを、端末６０に送信する。
【００７１】
次に、中継装置１００の各処理手順について説明する。まず、中継装置１００が、リクエストデータを受信した場合の処理手順について説明する。図１１は、リクエストデータを受信した場合の処理手順を示すフローチャートである。図１１に示す処理は、端末６０からリクエストデータを受信したことを契機に実行される。
【００７２】
中継装置１００は、リクエストデータを取得する（ステップＳ１０１）。このリクエストデータは、第１リクエストデータまたは第２リクエストデータに対応する。中継装置１００は、サービス管理テーブル１２０ａを参照し、リクエストＵＲＬにマッチする行が存在するか否かを判定する（ステップＳ１０２）。
【００７３】
中継装置１００は、リクエストＵＲＬにマッチする行が存在する場合には（ステップＳ１０３，Ｙｅｓ）、疑似リクエスト生成処理を実行し（ステップＳ１０４）、ステップＳ１０７に移行する。ステップＳ１０４の疑似リクエスト生成処理において、中継装置１００は、例えば、疑似リクエストを生成し、生成した疑似リクエストデータを外部サーバ９０に送信する。
【００７４】
一方、中継装置１００は、リクエストＵＲＬにマッチする行が存在しない場合には（ステップＳ１０３，Ｎｏ）、利用者通信管理テーブル１２０ｂを参照し、リクエストＵＲＬに一致する結果出力リソースが存在するか否かを判定する（ステップＳ１０５）。
【００７５】
中継装置１００は、リクエストＵＲＬにマッチする結果出力リソースが存在しない場合には（ステップＳ１０６，Ｎｏ）、リクエスト送信処理を実行する（ステップＳ１０７）。ステップＳ１０７のリクエスト送信処理において、中継装置１００は、リクエストデータを内部サーバ７０に送信する。
【００７６】
一方、中継装置１００は、リクエストＵＲＬにマッチする結果出力リソースが存在する場合には（ステップＳ１０６，Ｙｅｓ）、以下の処理を行う。中継装置１００は、利用者通信管理テーブル１２０ｂにおいて、リクエストＵＲＬにマッチした行の利用者識別子がリクエストデータのものと一致しているか否かを判定する（ステップＳ１０８）。
【００７７】
中継装置１００は、リクエストＵＲＬにマッチした行の利用者識別子がリクエストデータのものと一致している場合には（ステップＳ１０９，Ｙｅｓ）、結果出力処理を実行する（ステップＳ１１０）。一方、中継装置１００は、リクエストＵＲＬにマッチした行の利用者識別子がリクエストデータのものと一致していない場合には（ステップＳ１０９，Ｎｏ）、ステータスコード４０１をレスポンスとして端末６０に返信する（ステップＳ１１１）。
【００７８】
次に、図１１のステップＳ１１０に示した結果出力処理の処理手順について説明する。図１２は、結果出力処理の処理手順を示すフローチャートである。図１２において、中継装置１００は、利用者通信管理テーブル１２０ｂを参照し、内部サーバレスポンスの結果が格納されているか否かを判定する（ステップＳ１５１）。
【００７９】
中継装置１００は、内部サーバレスポンスの結果が格納されていない場合には（ステップＳ１５２，Ｎｏ）、レスポンスコード２０２を端末６０に返信する（ステップＳ１５３）。このレスポンスコード２０２は、該当するレスポンスデータが存在しない旨を示すコードである。
【００８０】
一方、中継装置１００は、内部サーバレスポンスの結果が格納されている場合には（ステップＳ１５２，Ｙｅｓ）、レスポンスコード２００かつ、結果出力リソースの情報をレスポンスとして端末６０に返信する（ステップＳ１５４）。このレスポンスコード２００は、該当するレスポンスデータが存在する旨を示すコードである。
【００８１】
次に、中継装置１００がレスポンスデータを受信した場合の処理手順について説明する。図１３は、レスポンスデータを受信した場合の処理手順を示すフローチャートである。図１３に示す処理は、内部サーバ７０、外部サーバ９０からレスポンスを受信した場合などに実行される。また、図１３に示す処理は、端末６０から画面変更のリクエストデータを受信した場合も含む。
【００８２】
図１３に示すように、中継装置１００は、利用者通信管理テーブル１２０ｂを参照し、利用者識別子にマッチする行を取得する（ステップＳ２０１）。中継装置１００は、内部サーバ７０からのレスポンスの場合には（ステップＳ２０２，Ｙｅｓ）、内部レスポンス処理を実行する（ステップＳ２０３）。
【００８３】
中継装置１００は、内部サーバ７０からのレスポンスではない場合には（ステップＳ２０２，Ｎｏ）、外部サーバ９０からのレスポンスであるか否かを判定する（ステップＳ２０４）。中継装置１００は、外部サーバ９０からのレスポンスの場合には（ステップＳ２０４，Ｙｅｓ）、外部レスポンス処理を実行する（ステップＳ２０５）。
【００８４】
中継装置１００は、外部サーバ９０からのレスポンスではない場合には（ステップＳ２０４，Ｎｏ）、利用者通信管理にテーブル１２０ｂを参照し、内部サーバ７０からのレスポンスが受信済みであるか否かを判定する（ステップＳ２０６）。
【００８５】
中継装置１００は、内部サーバ７０からのレスポンスが受信済みではない場合には（ステップＳ２０７，Ｎｏ）、画面を切り換える場合に、確認プログラムを挿入し、画面変更データを送信する（ステップＳ２０８）。
【００８６】
一方、中継装置１００は、内部サーバ７０からのレスポンスが受信済みの場合には（ステップＳ２０７，Ｙｅｓ）、レスポンスデータを送信する（ステップＳ２０９）。
【００８７】
次に、図１３のステップＳ２０３に示した内部レスポンス処理の処理手順について説明する。図１４は、内部レスポンス処理の処理手順を示すフローチャートである。図１４に示すように、中継装置１００は、利用者通信管理テーブル１２０ｂの内部サーバレスポンスにレスポンス内容を格納する（ステップＳ２５０）。
【００８８】
中継装置１００は、利用者通信管理テーブル１２０ｂを参照し、外部サーバ９０からのレスポンスの有無を判定する（ステップＳ２５１）。中継装置１００は、外部サーバ９０からのレスポンスを受信済みの場合には（ステップＳ２５２，Ｙｅｓ）、処理を終了する。
【００８９】
一方、中継装置１００は、外部サーバ９０からのレスポンスを受信済みではない場合に（ステップＳ２５２，Ｎｏ）、レスポンスデータを端末６０に送信する（ステップＳ２５３）。
【００９０】
次に、図１３のステップＳ２０５に示した外部レスポンス処理の処理手順について説明する。図１５は、外部レスポンス処理の処理手順を示すフローチャートである。図１５に示すように、中継装置１００は、利用者通信管理テーブル１２０ｂの外部サーバレスポンスにレスポンスに内容を格納する（ステップＳ２６０）。
【００９１】
中継装置１００は、利用者通信管理テーブル１２０ｂを参照し、内部サーバ７０からのレスポンスの有無を判定する（ステップＳ２６１）。中継装置１００は、内部サーバ７０からのレスポンスを受信済みの場合には（ステップＳ２６２，Ｙｅｓ）、処理を終了する。
【００９２】
一方、中継装置１００は、内部サーバ７０からのレスポンスを受信済みではない場合には（ステップＳ２６２，Ｎｏ）、確認プログラムを挿入した疑似レスポンスデータを、端末６０に送信する（ステップＳ２６３）。
【００９３】
次に、本実施例にかかる中継装置１００の効果について説明する。中継装置１００は、端末６０からリクエストデータを内部サーバ７０に送信すると共に、疑似リクエストデータを外部サーバ９０に送信する。中継装置１００は、レスポンスデータよりも疑似レスポンスデータを先に受信した場合には、疑似レスポンスデータに確認プログラムを格納し、端末６０に送信する。その後、中継装置１００は、確認プログラムが端末６０で実行されることにより、端末６０から送信されるリクエストデータに対して、内部サーバ７０から受信しておいたレスポンスデータを端末６０に送信する。このため、端末６０のタイムアウトを防止することができる。
【００９４】
また、中継装置１００は、端末６０から表示画面の変更要求を受信した場合に、画面変更プログラムに確認プログラムを格納して、端末６０に送信する。このため、中継装置１００は、端末６０にて他の画面に移行した場合であっても、継続して、リクエストを受け付けることができ、内部サーバ７０からのレスポンスデータを端末に通知することができる。
【００９５】
中継装置１００は、内部サーバ７０からのレスポンスデータを受信する前に、疑似レスポンスデータを受信した場合に、疑似レスポンスデータを、端末に送信する。このため、不要な情報を、端末６０に送信することを防止することができる。
【００９６】
次に、図３に示した中継装置１００と同様の機能を実現する中継プログラムを実行するコンピュータの一例を説明する。図１６は、照合プログラムを実行するコンピュータの一例を示す図である。
【００９７】
図１６に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、ユーザからのデータの入力を受け付ける入力装置２０２と、ディスプレイ２０３を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読取る読み取り装置２０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置２０５とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０６と、ハードディスク装置２０７を有する。そして、各装置２０１〜２０７は、バス２０８に接続される。
【００９８】
ハードディスク装置２０７は、リクエスト処理プログラム２０７ａ、レスポンス処理プログラム２０７ｂを記憶する。ＣＰＵ２０１は、リクエスト処理プログラム２０７ａ、レスポンス処理プログラム２０７ｂを読み出して、ＲＡＭ２０６に展開する。リクエスト処理プログラム２０７ａは、リクエスト処理プロセス２０６ａとして機能する。レスポンス処理プログラム２０７ｂは、レスポンス処理プロセス２０６ｂとして機能する。
【００９９】
例えば、リクエスト処理プロセス２０６ａは、図３のリクエスト受信部１３１、リクエスト判定部１３２、疑似リクエスト生成部１３３、リクエスト送信部１３４、結果出力部１３５に対応する。レスポンス処理プロセス２０６ｂは、レスポンス受信部１３６、レスポンス判定部１３７、リソース生成部１３８、スクリプト挿入部１３９、レスポンス送信部１４０に対応する。
【０１００】
なお、各プログラム２０７ａ，２０７ｂについては、必ずしも最初からハードディスク装置２０７に記憶させておかなくてもよい。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ２００がこれらから各プログラム２０７ａ，２０７ｂを読み出して実行するようにしてもよい。
【０１０１】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０２】
（付記１）端末と第１サーバ及び第２サーバとの間のデータを中継するコンピュータに、
前記端末から受信したリクエストデータを第１サーバへ送信し、
前記リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信し、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、
前記リクエストデータの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングで前記コンピュータに送信する確認プログラムを、前記疑似レスポンスデータに格納して、前記端末に送信し、
前記第１サーバから前記レスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶し、
前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信する
各処理を実行させることを特徴とする中継プログラム。
【０１０３】
（付記２）前記疑似レスポンスデータを前記端末に送信した後に、該端末から表示画面の変更要求を受信した場合に、変更後の表示画面を表示するデータに、前記確認プログラムを格納して、前記端末に送信する処理を更にコンピュータに実行させることを特徴とする付記１に記載の中継プログラム。
【０１０４】
（付記３）前記疑似レスポンスデータを送信する処理は、前記記憶装置を参照し、前記第１サーバからのレスポンスデータを受信する前に、前記疑似レスポンスデータを受信した場合に、前記疑似レスポンスデータを、前記端末に送信することを特徴とする付記１または２に記載の中継プログラム。
【０１０５】
（付記４）端末と第１サーバ及び第２サーバとの間のデータを中継するコンピュータが実行する中継方法であって、
前記端末から受信したリクエストデータを第１サーバへ送信し、
前記リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信し、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、
前記リクエストデータの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングで前記コンピュータに送信する確認プログラムを、前記疑似レスポンスデータに格納して、前記端末に送信し、
前記第１サーバから前記レスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶し、
前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信する
各処理を実行させることを特徴とする中継方法。
【０１０６】
（付記５）前記疑似レスポンスデータを前記端末に送信した後に、該端末から表示画面の変更要求を受信した場合に、変更後の表示画面を表示するデータに、前記確認プログラムを格納して、前記端末に送信する処理を更に実行することを特徴とする付記４に記載の中継方法。
【０１０７】
（付記６）前記疑似レスポンスデータを送信する処理は、前記記憶装置を参照し、前記第１サーバからのレスポンスデータを受信する前に、前記疑似レスポンスデータを受信した場合に、前記疑似レスポンスデータを、前記端末に送信することを特徴とする付記４または５に記載の中継方法。
【０１０８】
（付記７）端末から受信したリクエストデータを第１サーバへ送信し、前記リクエストデータの一部を疑似情報に変更して疑似リクエストデータを生成し、生成した疑似リクエストデータを第２サーバへ送信するリクエスト処理部と、
前記疑似リクエストデータの応答となる疑似レスポンスデータを前記第２サーバから受信し、前記リクエストデータの応答となるレスポンスデータを確認する確認リクエストデータを所定のタイミングで前記コンピュータに送信する確認プログラムを、前記疑似レスポンスデータに格納して、前記端末に送信し、前記第１サーバから前記レスポンスデータを受信した場合に、該レスポンスデータを記憶装置に記憶し、前記端末により前記確認プログラムが実行されることにより送信される前記確認リクエストデータを受信した際、前記記憶装置に前記レスポンスデータが記憶されている場合に、前記確認リクエストデータに対する応答として、前記記憶装置に記憶された前記レスポンスデータを前記端末に送信するレスポンス処理部と
を有することを特徴とする中継装置。
【０１０９】
（付記８）前記レスポンス処理部は、疑似レスポンスデータを前記端末に送信した後に、該端末から表示画面の変更要求を受信した場合に、変更後の表示画面を表示するデータに、前記確認プログラムを格納して、前記端末に送信することを特徴とする付記７に記載の中継装置。
【０１１０】
（付記９）前記レスポンス処理部は、前記記憶装置を参照し、前記第１サーバからのレスポンスデータを受信する前に、前記疑似レスポンスデータを受信した場合に、前記疑似レスポンスデータを、前記端末に送信することを特徴とする付記７または８に記載の中継装置。
【符号の説明】
【０１１１】
１００    中継装置
１１０    通信部
１２０    記憶部
１３０    制御部
【図１】
0005747659.tif 000002
【図２】
0005747659.tif 000003
【図３】
0005747659.tif 000004
【図４】
0005747659.tif 000005
【図５】
0005747659.tif 000006
【図６】
0005747659.tif 000007
【図７】
0005747659.tif 000008
【図８】
0005747659.tif 000009
【図９】
0005747659.tif 000010
【図１０】
0005747659.tif 000011
【図１１】
0005747659.tif 000012
【図１２】
0005747659.tif 000013
【図１３】
0005747659.tif 000014
【図１４】
0005747659.tif 000015
【図１５】
0005747659.tif 000016
【図１６】
0005747659.tif 000017