(57)【要約】【課題】端末を制御する端末制御サーバの信頼性を高める。【解決手段】端末を制御するコマンドを生成する制御プログラムのプロセスと、端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとしてコマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置は、ＨＴＴＰリクエストを受信したＨＴＴＰサーバプログラムからの関数呼び出しを受けて、制御プログラムのプロセスを動作させる端末側要求処理部と、制御プログラムからの関数呼び出しによりコマンドを受信し、コマンドを受信した旨の受信通知を端末側要求処理部へ通知する制御側要求処理部とを備え、端末側要求処理部は、受信通知を受け取った場合に、ＨＴＴＰサーバプログラムに処理を戻すことにより、コマンドをＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させる。【選択図】  図３
2004199158.tif 000002
【特許請求の範囲】
【請求項１】
端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置であって、
前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、
前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部と
を備え、
前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とする中継処理装置。
【請求項２】
前記制御側要求処理部は、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受け取った場合に、前記制御プログラムに処理を戻すことにより、前記コマンド処理結果に応じた処理を前記制御プログラムに行わせることを特徴とする請求項１記載の中継処理装置。
【請求項３】
前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、制御プログラムのプロセスを動作させた後に、実行状態を保持したまま停止した状態に移行し、前記受信通知を前記制御側要求処理部から受信した場合に、前記停止した状態から復帰して、前記ＨＴＴＰサーバプログラムに処理を戻すことを特徴とする請求項１記載の中継処理装置。
【請求項４】
前記制御側要求処理部は、前記受信通知を前記端末側要求処理部へ通知した場合に、実行状態を保持したまま停止した状態に移行し、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受け取った場合に、前記停止した状態から復帰して、前記制御プログラムに処理を戻すことを特徴とする請求項１記載の中継処理装置。
【請求項５】
前記端末側要求処理部は、前記制御プログラムのプロセスを動作させてから予め定められた時間内に、前記受信通知を前記制御側要求処理部から受信しなかった場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドの生成に失敗した旨を示すＨＴＴＰレスポンスを送信させることを特徴とする請求項１記載の中継処理装置。
【請求項６】
前記制御側要求処理部は、前記受信通知を前記端末側要求処理部に送信してから予め定められた時間内に、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受信しなかった場合に、前記コマンド処理結果を受信できなかった旨を示す情報を前記制御プログラムに返送することを特徴とする請求項１記載の中継処理装置。
【請求項７】
前記ＨＴＴＰサーバプログラムは、前記ＨＴＴＰリクエストに対応付けて、当該ＨＴＴＰリクエストを送信した端末の種類を識別する端末識別情報を受信し、
前記制御側要求処理部は、前記端末識別情報に基づき、前記コマンドを、当該コマンドの送信先の端末に応じたメッセージ形式に変換し、当該端末に返送させることを特徴とする請求項１記載の中継処理装置。
【請求項８】
前記ＨＴＴＰサーバプログラムが、第１の前記ＨＴＴＰリクエストとして、前記端末の正当性を証明する電子証明書の作成を要求する証明要求メッセージを受信した場合に、
前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記電子証明書を作成する前記制御プログラムのプロセスを動作させ、
前記制御側要求処理部は、前記制御プログラムからの関数呼び出しを受けて、電子署名付の証明要求メッセージを前記端末に送信させる署名付加コマンドを受信し、前記受信通知を前記端末側要求処理部へ送信し、
前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記署名付加コマンドを前記ＨＴＴＰサーバプログラムにより送信させ、
前記端末側要求処理部は、前記署名付加コマンドに対する返答を第２の前記ＨＴＴＰリクエストとして受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御側要求処理部に通知することにより、前記制御プログラムを動作させ、
前記制御側要求処理部は、前記署名付加コマンドに対する返答である前記電子署名付の前記証明要求メッセージを受信した場合に、前記制御プログラムに処理を戻すことにより、前記電子署名付の前記証明要求メッセージを前記制御プログラムに返送し、
前記端末側要求処理部は、前記制御プログラムが前記電子署名付の前記証明要求メッセージを用いて外部に設けられた認証局に作成させた前記電子証明書を、前記第３のＨＴＴＰリクエストに対する前記ＨＴＴＰレスポンスとして返送させることを特徴とする請求項１記載の中継処理装置。
【請求項９】
前記ＨＴＴＰサーバプログラムから前記制御側要求処理部に通知されるＨＴＴＰリクエストと、前記制御側要求処理部から前記ＨＴＴＰサーバプログラムに通知される前記コマンドとを格納するコマンド情報格納部を更に備えることを特徴とする請求項１記載の中継処理装置。
【請求項１０】
端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置を制御する制御方法であって、
前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理段階と、
前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を通知する制御側要求処理段階と、
前記受信通知を受け取った場合に、前記端末要求処理段階における関数呼び出しから前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させる段階とを備えることを特徴とする制御方法。
【請求項１１】
端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、
前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部と
して機能させ、
前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とするプログラム。
【請求項１２】
請求項１１記載のプログラムを記録した記録媒体。
【請求項１３】
ネットワークを介して端末を制御する端末制御サーバであって、
前記端末を制御するコマンドを生成する制御プログラムのプロセスと、
前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスと、
前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、
前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部と
を備え、
前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とする端末制御サーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバに関する。特に本発明は、ネットワークを介して端末を制御する中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバに関する。
【０００２】
【従来の技術】
従来、ＨＴＴＰサーバにおいて、端末との間でＨＴＴＰリクエスト／ＨＴＴＰレスポンスをやり取りするウェブサーバプログラムと、ＨＴＴＰリクエストに応じた処理を行うアプリケーションプログラムとの間の通信を中継するゲートウェイプログラムが提案されている（特許文献１参照。）。このゲートウェイプログラムによれば、アプリケーションプログラムがＨＴＭＬを解釈できない場合であっても、ＨＴＴＰリクエストを適宜変換することにより、アプリケーションプログラムを適切に動作させることができる。
【０００３】
【特許文献１】
特表平１１−５１０６３２号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、上記ＨＴＴＰサーバにおいて、ウェブサーバプログラム、ゲートウェイプログラム、及びアプリケーションプログラムは、スレッド間通信によって互いに通信する。この場合、プログラムの作成者には、スレッド間の同期を考慮した煩雑な作業が必要とされた。
そこで本発明は、上記の課題を解決することのできる中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【０００５】
【課題を解決するための手段】
即ち、本発明の第１の形態によると、端末を制御するコマンドを生成する制御プログラムのプロセスと、端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとしてコマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置であって、ＨＴＴＰリクエストを受信したＨＴＴＰサーバプログラムからの関数呼び出しを受けて、制御プログラムのプロセスを動作させる端末側要求処理部と、制御プログラムからの関数呼び出しによりコマンドを受信し、コマンドを受信した旨の受信通知を端末側要求処理部へ通知する制御側要求処理部とを備え、端末側要求処理部は、受信通知を受け取った場合に、ＨＴＴＰサーバプログラムに処理を戻すことにより、コマンドをＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とする中継処理装置、当該中継処理装置を制御する制御方法、当該中継処理装置を実現するプログラム、プログラムを記録した記録媒体、当該中継処理装置を含む端末処理サーバを提供する。
なお上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションも又発明となりうる。
【０００６】
【発明の実施の形態】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、又実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図１は、通信システム１０の概略図を示す。通信システム１０は、携帯通信端末等の端末１００と、端末１００とネットワークを介して通信する端末制御サーバ２００と、端末制御サーバ２００からの要求に応じて端末１００の認証を行う認証局３００とを備える。端末１００は、電子証明書の作成を要求する電子証明要求メッセージを端末制御サーバ２００に送る。これを受けて、端末制御サーバ２００は、端末１００を制御するコマンドを端末１００に送信し、電子証明書の作成に必要な情報を当該端末制御サーバ２００宛てに送信させる。例えば、端末制御サーバ２００は、ＩＣカード１０５に記録された公開鍵暗号系の秘密鍵を用いて、端末１００に電子署名を作成させる。そして、端末制御サーバ２００は、認証局３００を用いて端末１００の認証を行うことにより電子証明書を作成し、端末１００に返送する。従って、端末１００の利用者は、証明要求メッセージを端末制御サーバ２００に送る指示のみを与えることにより、端末制御サーバ２００により端末１００を制御させることができ、利便である。
【０００７】
図２は、端末制御サーバ２００の機能ブロック図を示す。端末制御サーバ２００は、ＨＴＴＰサーバプログラム２１０と、中継処理装置２０と、制御プログラム２５０とを備える。制御プログラム２５０は、端末を制御するコマンドを生成する。そして、ＨＴＴＰサーバプログラム２１０は、端末１００から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして、制御プログラム２５０により生成されたコマンドを返信する。中継処理装置２０は、ＨＴＴＰサーバプログラム２１０及び制御プログラム２５０のそれぞれから関数呼び出しを受けて、ＨＴＴＰサーバプログラム２１０及び制御プログラム２５０間の通信を中継する。例えば、制御プログラム２５０は、中継処理装置２０を実現する関数を呼び出すことによりコマンドを端末１００に送信させ、当該関数からリターンした場合には、送信した当該コマンドに対する応答を受け取り、認証局３００を用いた処理を行うことができる。すなわち、制御プログラム２５０は、中継処理装置２０を実現する関数を呼び出すことにより、プロセス間通信などの明示的な通信処理を行うことなく、端末１００を制御することができる。これにより、プログラムの作成者は、制御プログラム２５０を利便に作成できるばかりでなく、プログラムの生産性、信頼性、及び再利用性を高めることができる。
【０００８】
中継処理装置２０は、端末側要求処理部２２０と、制御側要求処理部２３０と、コマンド情報格納部２４０とを有する。端末側要求処理部２２０は、ＨＴＴＰリクエストを受信したＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けて、制御プログラム２５０のプロセスを動作させる。例えば、ＨＴＴＰサーバプログラム２１０が初期化されてから始めてＨＴＴＰリクエストを受信した場合に、端末側要求処理部２２０は、制御プログラム２５０のプロセスを生成することにより、制御プログラム２５０のプロセスの動作を開始させる。なお、プロセスとは、オペレーティングシステムにより管理されるプログラムの実行主体であり、スレッドでもよいし、タスクでもよい。また、関数呼び出しとは、Ｃ言語におけるサブルーチンの呼び出しである。これに代えて、関数呼び出しは、ＪＡＶＡ（登録商標）におけるメソッドコールでもよいし、他のプログラミング言語におけるプロシジャー（手続）呼び出しでもよい。
【０００９】
そして、端末側要求処理部２２０は、制御側要求処理部２３０が制御プログラム２５０からコマンドを受信した旨の受信通知を制御側要求処理部２３０から受け取った場合に、ＨＴＴＰサーバプログラム２１０に処理を戻す。処理を戻す処理は、例えば、関数呼び出しからリターンする処理である。その結果、端末側要求処理部２２０は、ＨＴＴＰサーバプログラム２１０によりＨＴＴＰリクエストに対するＨＴＴＰレスポンスにコマンドを含めて送信させることができる。
【００１０】
制御側要求処理部２３０は、制御プログラム２５０からの関数呼び出しによりコマンドを受信し、受信した当該コマンドをコマンド情報格納部２４０に格納する。そして、制御側要求処理部２３０は、コマンドを受信した旨の受信通知を端末側要求処理部２２０へ送信する。制御側要求処理部２３０は、受信通知を、例えば、プロセス間通信によって端末側要求処理部２２０に送信する。コマンド情報格納部２４０は、ＨＴＴＰサーバプログラム２１０から制御側要求処理部２３０に通知されるＨＴＴＰリクエストと、制御側要求処理部２３０からＨＴＴＰサーバプログラム２１０に通知されるコマンドとを格納する。
【００１１】
図３は、端末制御サーバ２００の通信フローの一例を示す。端末１００は、ＨＴＴＰリクエストをＨＴＴＰサーバプログラム２１０に送信する（Ｓ３００）。そして、ＨＴＴＰサーバプログラム２１０は、ＨＴＴＰリクエストを受けて、端末側要求処理部２２０を機能させる関数を呼び出す（Ｓ３１０）。この際、ＨＴＴＰサーバプログラム２１０は、ＨＴＴＰリクエストに対応付けて、当該ＨＴＴＰリクエストを送信した端末１００の種類を識別する端末識別情報を受信してもよい。端末側要求処理部２２０は、ＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けて、制御プログラム２５０のプロセスを生成することにより、制御プログラム２５０のプロセスを動作させる（Ｓ３２０）。端末側要求処理部２２０は、制御プログラム２５０のプロセスを動作させた後に、実行状態を保持したまま停止した状態に移行する。停止した状態とは、例えば、プログラムカウンタ、スタックポインタ、及びレジスタの値を保持したまま、ＣＰＵ、メモリ、及び入出力装置の使用を停止したウェイト状態である。
【００１２】
制御プログラム２５０は、端末１００を制御するコマンドを生成し、制御側要求処理部２３０を機能させる関数を呼び出すことにより、コマンドを制御側要求処理部２３０に通知する（Ｓ３３０）。制御プログラム２５０は、例えば、関数呼び出しの引数として、コマンドを制御側要求処理部２３０に通知する。これを受けて、制御側要求処理部２３０は、コマンドをＨＴＴＰサーバプログラム２１０に通知する（Ｓ３４０）。例えば、制御側要求処理部２３０は、コマンドをコマンド情報格納部２４０に格納し、後に動作を再開したＨＴＴＰサーバプログラム２１０がコマンドを取得できる状態とする。この際、制御側要求処理部２３０は、端末識別情報に基づき、コマンドを、当該コマンドの送信先の端末１００に応じたメッセージ形式に変換してもよい。そして、制御側要求処理部２３０は、コマンドを受信した旨を示す受信通知を端末側要求処理部２２０へ通知し（Ｓ３５０）、実行状態を保持したまま停止した状態に移行する。
【００１３】
端末側要求処理部２２０は、受信通知を制御側要求処理部２３０から受信した場合に（Ｓ３６０：ＹＥＳ）、停止した状態から復帰して、関数呼び出しからリターンすることにより、ＨＴＴＰサーバプログラム処理を戻す（Ｓ３８０）。これを受けて、ＨＴＴＰサーバプログラム２１０は、コマンド情報格納部２４０からコマンドを取得し、当該コマンドをＨＴＴＰレスポンスに含めて端末１００に送信する（Ｓ３９０）。一方、受信通知を受信していない場合に（Ｓ３６０：ＮＯ）、端末側要求処理部２２０は、制御プログラム２５０のプロセスを動作させてから予め定められた時間内に受信通知を受信しなかったタイムアウト状態であるか否かを判断する（Ｓ３７０）。タイムアウト状態でない場合に（Ｓ３７０：ＮＯ）、端末側要求処理部２２０は、Ｓ３６０に処理を戻す。タイムアウト状態である場合に（Ｓ３７０：ＹＥＳ）、端末側要求処理部２２０は、停止した状態から復帰して、ＨＴＴＰサーバプログラム２１０に処理を戻す（Ｓ３８０）。これを受けて、ＨＴＴＰサーバプログラム２１０は、コマンドの生成に失敗した旨を示すＨＴＴＰレスポンスを端末１００に送信する（Ｓ３９０）。
【００１４】
端末１００は、ＨＴＴＰレスポンスに含まれたコマンドに応じた処理を行い、コマンドに対するコマンド処理結果を含めた他のＨＴＴＰリクエストを、ＨＴＴＰサーバプログラム２１０に送る（Ｓ４００）。ＨＴＴＰサーバプログラム２１０は、このＨＴＴＰリクエストを受けて、コマンド処理結果をコマンド情報格納部２４０に格納し、端末側要求処理部２２０を実現する関数を呼び出す（Ｓ４１０）。端末側要求処理部２２０は、ＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けて、ＨＴＴＰサーバプログラム２１０がコマンド処理結果を含むＨＴＴＰリクエストを受信した旨の通知であるコマンド処理結果受信通知を制御側要求処理部２３０に送る（Ｓ４２０）。これにより、端末側要求処理部２２０は、制御側要求処理部２３０を停止した状態から復帰させ、制御プログラム２５０のプロセスの動作を再開させる。
【００１５】
制御側要求処理部２３０は、ＨＴＴＰサーバプログラム２１０がコマンド処理結果を含むＨＴＴＰリクエストを受け取った場合に（Ｓ４４０：ＹＥＳ）、停止した状態から復帰する。そして、制御側要求処理部２３０は、コマンド処理結果をコマンド情報格納部２４０から取得し（Ｓ４３０）、制御プログラム２５０に処理を戻すことにより、コマンド処理結果に応じた処理を制御プログラム２５０に行わせる（Ｓ４６０）。一方、制御側要求処理部２３０は、ＨＴＴＰサーバプログラム２１０がＨＴＴＰリクエストを受け取っていない場合に（Ｓ４４０：ＮＯ）、受信通知を端末側要求処理部２２０に送信してから予め定められた時間内に、コマンド処理結果受信通知を受信しなかったタイムアウト状態であるか否かを判断する（Ｓ４５０）。制御側要求処理部２３０は、タイムアウト状態でない場合に（Ｓ４５０：ＮＯ）、Ｓ４４０に処理を戻す。タイムアウト状態である場合に（Ｓ４５０：ＹＥＳ）、制御側要求処理部２３０は、制御プログラム２５０からの関数呼び出しからリターンし、コマンド処理結果を受信できなかった旨を示す情報を、例えば、関数呼び出しからの戻り値として、制御プログラム２５０に返送する（Ｓ４６０）。
【００１６】
図４は、端末制御サーバ２００のソフトウェアコンポーネントの一例を示す。端末制御サーバ２００は、ソフトウェアコンポーネントとして、ＨＴＴＰサーバプログラム２１０を実現するＨＴＴＰサーバエンジン４００と、デバイス対応サーブレット４１０と、データベース４２０と、制御プログラム２５０を実現する制御プログラム４３０と、低レベルインターフェイス４４０と、中継処理装置２０を実現する仮想デバイスレイヤ４５０とを備える。本図における矢印は、関数呼び出しを示す。即ち、矢印の始点から終点の方向に関数呼び出しが行われ、矢印の終点から始点の方向に関数のリターンが行われる。
【００１７】
より詳しくは、ＨＴＴＰサーバエンジン４００は、ＨＴＴＰリクエストを端末１００から受けて、デバイス対応サーブレット４１０を実現する関数を呼び出す。デバイス対応サーブレット４１０は、更に、データベース４２０又は制御プログラム４３０を実現する関数を呼び出す。一方、制御プログラム４３０は、必要に応じて証明サーバ３００を用いて、低レベルインターフェイス４４０を実現する関数を呼び出すことにより、コマンドを作成する。低レベルインターフェイス４４０は、更に、仮想デバイスレイヤ４５０を実現する関数を呼び出す。仮想デバイスレイヤ４５０は、デバイス対応サーブレット４１０及び低レベルインターフェイス４４０からの関数呼び出しに応じてＨＴＴＰサーバエンジン４００及び制御プログラム４３０間の通信を中継する。
【００１８】
このように、関数呼び出しとは、複数の関数呼び出しが入れ子となった関数呼び出しを含む。すなわち、中継処理装置２０の端末側要求処理部２２０は、デバイス対応サーブレット４１０等の他のサブルーチンを経由して、ＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けてもよい。同様に、中継処理装置２０の制御側要求処理部２３０は、低レベルインターフェイス４４０等の他のサブルーチンを経由して、制御プログラム２５０からの関数呼び出しを受けてもよい。同様に、関数からの戻り（リターン）とは、他のサブルーチンを経由したリターンを含む。
【００１９】
図５は、端末１００に電子証明書を発行する通信フローの一例を示す。端末１００は、端末１００の正当性を証明する電子証明書の作成を要求する証明要求メッセージを第１のＨＴＴＰリクエストとして端末制御サーバ２００に送る。この場合の、端末制御サーバ２００内の動作を以下で詳説する。ＨＴＴＰサーバプログラム２１０が、第１のＨＴＴＰリクエストを受信した場合に、端末側要求処理部２２０は、ＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けて、電子証明書を作成する制御プログラム２５０のプロセスを動作させる。
【００２０】
制御側要求処理部２３０は、制御プログラム２５０からの関数呼び出しを受けて、電子署名付の証明要求メッセージを端末１００に送信させる署名付加コマンドを受信し、受信通知を端末側要求処理部２２０へ送信する。これを受けて、端末側要求処理部２２０は、ＨＴＴＰサーバプログラム２１０に処理を戻す。ＨＴＴＰサーバプログラム２１０は、署名付加コマンドをコマンド情報格納部２４０から取得し、端末１００に送信する。端末１００は、証明付加コマンドに対する返答である電子署名付の証明要求メッセージを、第２のＨＴＴＰリクエストとして端末制御サーバ２００に送る。例えば、端末１００は、公開鍵暗号系の秘密鍵及び公開鍵を作成し（Ｓ５１０）、当該秘密鍵を用いて証明要求メッセージに電子署名を付加する。
【００２１】
端末側要求処理部２２０は、第２のＨＴＴＰリクエストを受信したＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けて、制御側要求処理部２３０に通知する。これを受けて、制御側要求処理部２３０は、電子署名付の証明要求メッセージをコマンド情報格納部２４０から取得し、制御プログラム２５０に処理を戻すことにより、電子署名付の証明要求メッセージを制御プログラム２５０に返送する。なお、制御側要求処理部２３０は、受信通知を端末側要求処理部２２０に送ってから予め定められた期間内に電子署名付の証明要求メッセージを受信できない場合には、その旨を制御プログラム２５０に返送する。
【００２２】
端末側要求処理部２２０は、制御プログラム２５０に電子証明書を作成させ、第３のＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして返送させる。すなわち、制御プログラム２５０は、電子署名付の証明要求メッセージを用いて、外部に設けられた認証局３００に、電子証明書を作成させる（Ｓ５２０）。そして、制御プログラム２５０は、認証局３００から電子証明書を受け取り（Ｓ５３０）、制御側要求処理部２３０を実現する関数を呼び出す。制御側要求処理部２３０は、関数呼び出しを受けて、電子証明書をコマンド情報格納部２４０に格納し、受信通知を端末側要求処理部２２０に通知する。端末側要求処理部２２０は、受信通知を受けて、第３のＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして電子証明書を返送させる。なお、端末側要求処理部２２０は、第２のＨＴＴＰリクエストを受信したＨＴＴＰサーバプログラム２１０からの関数呼び出しを受けてから予め定められた期間内に受信通知を受信できない場合には、その旨をＨＴＴＰレスポンスとして返送させる。
このように、認証局３００との間の通信に障害が発生した場合、認証局３００における処理が混雑している場合、又は端末１００及び端末制御サーバ２００間の通信に障害がある場合であっても、通信システム１０は、適切に通信を中断し、当該通信システム１０の輻輳を防止することができる。
【００２３】
図６は、中継処理装置２０のハードウェア構成の一例を示す。本実施形態に係る中継処理装置２０は、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、グラフィックコントローラ１０７５、及び表示装置１０８０を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００２４】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００２５】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、ＣＤ−ＲＯＭドライブ１０６０、及び記憶装置インターフェイス１０８５を接続する。通信インターフェイス１０３０は、ネットワークを介して他の装置と通信する。ハードディスクドライブ１０４０は、中継処理装置２０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、入出力コントローラ１０８４を介してＲＡＭ１０２０に提供する。
【００２６】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、中継処理装置２０の起動時にＣＰＵ１０００が実行するブートプログラムや、中継処理装置２０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力コントローラ１０８４を介してＲＡＭ１０２０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００２７】
中継処理装置２０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、入出力コントローラ１０８４を介して中継処理装置２０にインストールされ、中継処理装置２０において実行される。
【００２８】
中継処理装置２０にインストールされて実行されるプログラムは、端末側要求処理モジュールと、制御側要求処理モジュールと、コマンド情報格納モジュールとを含む。各モジュールが中継処理装置２０に働きかけて行わせる動作は、図１から図４において説明した中継処理装置２０における、対応する部材の動作と同一であるから、説明を省略する。
【００２９】
以上の説明から明らかなように、本実施形態における中継処理装置２０によれば、制御プログラム２５０は、中継処理装置２０を実現する関数を呼び出すことにより、プロセス間通信などの明示的な通信処理を行うことなく、端末１００を制御することができる。これにより、プログラムの作成者は、制御プログラム２５０を利便に作成できるばかりでなく、プログラムの生産性、信頼性、及び再利用性を高めることができる。
【００３０】
また、中継処理装置２０は、コマンドに対する応答を所定期間内に端末１００から受け取れない場合には、その旨を適切に制御プログラム２５０に通知することができる。更に、中継処理装置２０は、ＨＴＴＰリクエストに対するＨＴＴＰレスポンスを所定期間内に制御プログラム２５０から受け取れない場合には、その旨を適切に端末１００に通知することができる。したがって、端末１００及び端末制御サーバ２００間の通信環境が悪い場合等であっても、適切にエラー処理ができ、通信システム１０の堅牢性を高めることができる。
【００３１】
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００３２】
以上で説明した実施形態によれば、以下に示す中継処理装置、制御方法、プログラム、記録媒体、及び端末制御サーバが実現される。
【００３３】
（項目１）  端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置であって、前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部とを備え、前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とする中継処理装置。
（項目２）  前記制御側要求処理部は、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受け取った場合に、前記制御プログラムに処理を戻すことにより、前記コマンド処理結果に応じた処理を前記制御プログラムに行わせることを特徴とする項目１記載の中継処理装置。
（項目３）  前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、制御プログラムのプロセスを動作させた後に、実行状態を保持したまま停止した状態に移行し、前記受信通知を前記制御側要求処理部から受信した場合に、前記停止した状態から復帰して、前記ＨＴＴＰサーバプログラムに処理を戻すことを特徴とする項目１記載の中継処理装置。
【００３４】
（項目４）  前記制御側要求処理部は、前記受信通知を前記端末側要求処理部へ通知した場合に、実行状態を保持したまま停止した状態に移行し、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受け取った場合に、前記停止した状態から復帰して、前記制御プログラムに処理を戻すことを特徴とする項目１記載の中継処理装置。
（項目５）  前記端末側要求処理部は、前記制御プログラムのプロセスを動作させてから予め定められた時間内に、前記受信通知を前記制御側要求処理部から受信しなかった場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドの生成に失敗した旨を示すＨＴＴＰレスポンスを送信させることを特徴とする項目１記載の中継処理装置。
（項目６）  前記制御側要求処理部は、前記受信通知を前記端末側要求処理部に送信してから予め定められた時間内に、前記ＨＴＴＰサーバプログラムが前記コマンドに対するコマンド処理結果を含む他のＨＴＴＰリクエストを受信しなかった場合に、前記コマンド処理結果を受信できなかった旨を示す情報を前記制御プログラムに返送することを特徴とする項目１記載の中継処理装置。
【００３５】
（項目７）  前記ＨＴＴＰサーバプログラムは、前記ＨＴＴＰリクエストに対応付けて、当該ＨＴＴＰリクエストを送信した端末の種類を識別する端末識別情報を受信し、前記制御側要求処理部は、前記端末識別情報に基づき、前記コマンドを、当該コマンドの送信先の端末に応じたメッセージ形式に変換し、当該端末に返送させることを特徴とする項目１記載の中継処理装置。
（項目８）  前記ＨＴＴＰサーバプログラムが、第１の前記ＨＴＴＰリクエストとして、前記端末の正当性を証明する電子証明書の作成を要求する証明要求メッセージを受信した場合に、前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記電子証明書を作成する前記制御プログラムのプロセスを動作させ、前記制御側要求処理部は、前記制御プログラムからの関数呼び出しを受けて、電子署名付の証明要求メッセージを前記端末に送信させる署名付加コマンドを受信し、前記受信通知を前記端末側要求処理部へ送信し、前記端末側要求処理部は、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記署名付加コマンドを前記ＨＴＴＰサーバプログラムにより送信させ、前記端末側要求処理部は、前記署名付加コマンドに対する返答を第２の前記ＨＴＴＰリクエストとして受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御側要求処理部に通知することにより、前記制御プログラムを動作させ、前記制御側要求処理部は、前記署名付加コマンドに対する返答である前記電子署名付の前記証明要求メッセージを受信した場合に、前記制御プログラムに処理を戻すことにより、前記電子署名付の前記証明要求メッセージを前記制御プログラムに返送し、前記端末側要求処理部は、前記制御プログラムが前記電子署名付の前記証明要求メッセージを用いて外部に設けられた認証局に作成させた前記電子証明書を、前記第３のＨＴＴＰリクエストに対する前記ＨＴＴＰレスポンスとして返送させることを特徴とする項目１記載の中継処理装置。
【００３６】
（項目９）  前記ＨＴＴＰサーバプログラムから前記制御側要求処理部に通知されるＨＴＴＰリクエストと、前記制御側要求処理部から前記ＨＴＴＰサーバプログラムに通知される前記コマンドとを格納するコマンド情報格納部を更に備えることを特徴とする項目１記載の中継処理装置。
（項目１０）  端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置を制御する制御方法であって、前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理段階と、前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を通知する制御側要求処理段階と、前記受信通知を受け取った場合に、前記端末要求処理段階における関数呼び出しから前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させる段階とを備えることを特徴とする制御方法。
【００３７】
（項目１１）  端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスとの間の通信を中継する中継処理装置としてコンピュータを機能させるプログラムであって、前記コンピュータを、前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部として機能させ、前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とするプログラム。
（項目１２）  項目１１記載のプログラムを記録した記録媒体。
（項目１３）  ネットワークを介して端末を制御する端末制御サーバであって、前記端末を制御するコマンドを生成する制御プログラムのプロセスと、前記端末から受け取ったＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして前記コマンドを返信するＨＴＴＰサーバプログラムのプロセスと、前記ＨＴＴＰリクエストを受信した前記ＨＴＴＰサーバプログラムからの関数呼び出しを受けて、前記制御プログラムのプロセスを動作させる端末側要求処理部と、前記制御プログラムからの関数呼び出しにより前記コマンドを受信し、前記コマンドを受信した旨の受信通知を前記端末側要求処理部へ通知する制御側要求処理部とを備え、前記端末側要求処理部は、前記受信通知を受け取った場合に、前記ＨＴＴＰサーバプログラムに処理を戻すことにより、前記コマンドを前記ＨＴＴＰリクエストに対するＨＴＴＰレスポンスに含めて送信させることを特徴とする端末制御サーバ。
【００３８】
【発明の効果】
上記説明から明らかなように、本発明によれば端末を制御する端末制御サーバの信頼性を高めることができる。
【図面の簡単な説明】
【図１】図１は、通信システム１０の概略図。
【図２】図２は、端末制御サーバ２００の機能ブロック図。
【図３】図３は、端末制御サーバ２００の通信フローの一例を示す図。
【図４】図４は、端末制御サーバ２００のソフトウェアコンポーネントの一例を示す図。
【図５】図５は、端末１００に電子証明書を発行する通信フローの一例を示す図。
【図６】図６は、中継処理装置２０のハードウェア構成の一例を示す図。
【符号の説明】
１０  通信システム
２０  中継処理装置
１００  端末
１０５  ＩＣカード
２００  端末制御サーバ
２１０  ＨＴＴＰサーバプログラム
２２０  端末側要求処理部
２３０  制御側要求処理部
２４０  コマンド情報格納部
２５０  制御プログラム
３００  証明サーバ
４００  ＨＴＴＰサーバエンジン
４１０  デバイス対応サーブレット
４２０  データベース
４３０  制御プログラム
４４０  低レベルインターフェイス
４５０  仮想デバイスレイヤ
【図１】
2004199158.tif 000003
【図２】
2004199158.tif 000004
【図３】
2004199158.tif 000005
【図４】
2004199158.tif 000006
【図５】
2004199158.tif 000007
【図６】
2004199158.tif 000008