(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続され、印刷ジョブが蓄積されたサーバコンピュータからＨＴＴＰプロトコルを用いて印刷ジョブを取得し、自身に接続されたプリンタを用いて印刷を行うクライアントであって、
前記ＨＴＴＰプロトコルの書式に従って印刷に関するリクエストを生成するとともに、少なくとも前記サーバコンピュータからのレスポンスが未了のリクエストを識別するための第１の識別子を前記リクエストのボディ部に付与するリクエスト生成部と、
前記リクエストを前記サーバコンピュータに送信するリクエスト送信部と、
前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に第２の識別子が付与されたレスポンスを前記サーバコンピュータから受信するレスポンス受信部と、
前記第１の識別子と前記第２の識別子とに基づいて、前記レスポンスが前記リクエストに対応しているか否かを判定する識別子判定部と、
を備えるクライアント。
【請求項２】
請求項１に記載のクライアントであって、
前記識別子判定部は、前記第１の識別子と前記第２の識別子とが同一である場合に前記第１の識別子と前記第２の識別子とが対応していると判定するクライアント。
【請求項３】
請求項１に記載のクライアントであって、
前記リクエスト生成部は、前記クライアントに固有の情報と、前記リクエストの生成順序に関連した情報とに基づき前記第１の識別子を生成するクライアント。
【請求項４】
ネットワークを介して接続されたクライアントからの要求に応じて、蓄積された印刷ジョブを、ＨＴＴＰプロトコルを用いて転送するサーバコンピュータであって、
前記ＨＴＴＰプロトコルの書式に従うリクエストのボディ部に識別子が付与されたリクエストであって、印刷に関するリクエストを、前記クライアントから受信するリクエスト受信部と、
前記リクエストに応じたレスポンスであって、前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に前記識別子に対応した返信用識別子を含めて、当該レスポンスを生成するレスポンス生成部と、
前記クライアントに前記レスポンスを送信するレスポンス送信部と、
を備えるサーバコンピュータ。
【請求項５】
ネットワークを介して接続され、印刷ジョブが蓄積されたサーバコンピュータからＨＴＴＰプロトコルを用いて印刷ジョブを取得し、自身に接続されたプリンタを用いて印刷を行うクライアントが前記サーバコンピュータと通信を行う通信方法であって、
（ａ）  前記ＨＴＴＰプロトコルの書式に従って印刷に関するリクエストを生成するとともに、少なくとも前記サーバコンピュータからのレスポンスが未了のリクエストを識別するための第１の識別子を前記リクエストのボディ部に付与する工程と、
（ｂ）  前記リクエストを前記サーバコンピュータに送信する工程と、
（ｃ）  前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に第２の識別子が付与されたレスポンスを前記サーバコンピュータから受信する工程と、
（ｄ）  前記第１の識別子と前記第２の識別子とに基づいて、前記レスポンスが前記リクエストに対応しているか否かを判定する工程と、
を含む通信方法。
【請求項６】
ネットワークを介して接続されたクライアントからの要求に応じて、蓄積された印刷ジョブを、ＨＴＴＰプロトコルを用いて転送するサーバコンピュータが前記クライアントと通信を行う通信方法であって、
（ａ）  前記ＨＴＴＰプロトコルの書式に従うリクエストのボディ部に識別子が付与されたリクエストであって、印刷に関するリクエストを、前記クライアントから受信する工程と、
（ｂ）  前記リクエストに応じたレスポンスであって、前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に前記識別子に対応した返信用識別子を含めて、当該レスポンスを生成する工程と、
（ｃ）  前記クライアントに前記レスポンスを送信する工程と、
を含む通信方法。
【請求項７】
ネットワークを介して接続され、印刷ジョブが蓄積されたサーバコンピュータからＨＴＴＰプロトコルを用いて印刷ジョブを取得し、自身に接続されたプリンタを用いて印刷を行うクライアントが前記サーバコンピュータと通信を行うためのコンピュータプログラムであって、
前記ＨＴＴＰプロトコルの書式に従って印刷に関するリクエストを生成するとともに、少なくとも前記サーバコンピュータからのレスポンスが未了のリクエストを識別するための第１の識別子を前記リクエストのボディ部に付与する機能と、
前記リクエストを前記サーバコンピュータに送信する機能と、
前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に第２の識別子が付与されたレスポンスを前記サーバコンピュータから受信する機能と、
前記第１の識別子と前記第２の識別子とに基づいて、前記レスポンスが前記リクエストに対応しているか否かを判定する機能と、
をコンピュータに実現させるためのコンピュータプログラム。
【請求項８】
ネットワークを介して接続されたクライアントからの要求に応じて、蓄積された印刷ジョブを、ＨＴＴＰプロトコルを用いて転送するサーバコンピュータが前記クライアントと通信を行うためのコンピュータプログラムであって、
前記ＨＴＴＰプロトコルの書式に従うリクエストのボディ部に識別子が付与されたリクエストであって、印刷に関するリクエストを、前記クライアントから受信する機能と、
前記リクエストに応じたレスポンスであって、前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に前記識別子に対応した返信用識別子を含めて、当該レスポンスを生成する機能と、
前記クライアントに前記レスポンスを送信する機能と、
をコンピュータに実現させるためのコンピュータプログラム。
【請求項９】
請求項７または８に記載のコンピュータプログラムをコンピュータ読取可能に記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアントとサーバコンピュータ（以下、単にサーバとも言う）間の通信に関する。
【０００２】
【従来の技術】
従来、ネットワークを介してクライアントとＷｅｂサーバが通信を行う場合、クライアントは既に発行したリクエストに対応するレスポンスの受信を待って次のリクエストを発行していた。ただし、単純なＨＴＭＬ文書の閲覧等の目的では、サーバからレスポンスを待たずに次のリクエストを送信する場合があった。このような目的では、レスポンスを待たずに次の文書を取得するリクエストを発行してもユーザに何ら不都合はないからである。
【０００３】
【発明が解決しようとする課題】
しかし、近年、Ｗｅｂサーバは電子商取引やメール配信サービスといった種々のサービスをクライアントに提供することが可能となっている。このようなサービスの提供を受ける場合、クライアントは送信したリクエストと、そのリクエストに対するサーバからのレスポンスを厳密に対応付けなければならい。ユーザに不測の損害を与えないためである。そのため、クライアントはサーバからのレスポンスがあるまで次のリクエストを送信することができなかった。
【０００４】
本発明は上記課題に鑑みなされたものであり、連続してリクエストを送信してもレスポンスとの対応付けが適切に行われる技術の提供を目的としている。
【０００５】
【課題を解決するための手段およびその作用・効果】
上述の課題を解決するため、本発明を次のように構成した。すなわち、
ネットワークを介して接続され、印刷ジョブが蓄積されたサーバコンピュータからＨＴＴＰプロトコルを用いて印刷ジョブを取得し、自身に接続されたプリンタを用いて印刷を行うクライアントであって、
前記ＨＴＴＰプロトコルの書式に従って印刷に関するリクエストを生成するとともに、少なくとも前記サーバコンピュータからのレスポンスが未了のリクエストを識別するための第１の識別子を前記リクエストのボディ部に付与するリクエスト生成部と、
前記リクエストを前記サーバコンピュータに送信するリクエスト送信部と、
前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に第２の識別子が付与されたレスポンスを前記サーバコンピュータから受信するレスポンス受信部と、
前記第１の識別子と前記第２の識別子とに基づいて、前記レスポンスが前記リクエストに対応しているか否かを判定する識別子判定部と、
を備えることを要旨としている。
【０００６】
本発明のクライアントによれば、リクエストに付与した第１の識別子と、レスポンスに付与された第２の識別子とに基づいて、リクエストとレスポンスとの対応関係を照合することができる。そのため、連続してリクエストを送信してもレスポンスとの対応付けが容易に可能となる。
【０００７】
なお、前記リクエスト生成部は、対応するレスポンスが既に返信されているリクエストに対して付与した識別子と重複する識別子を新たに生成するリクエストに付与してもよい。既にレスポンスが返信されていれば、そのレスポンスに対応するリクエストと新たに生成するリクエストとを判別する必要はないからである。
【０００８】
前記識別子判定部は、前記第１の識別子と前記第２の識別子とが同一である場合に前記第１の識別子と前記第２の識別子とが対応していると判定するものとしてもよい。こうすることにより、判定が容易となるからである。他にも、例えば、第１の識別子と第２の識別子とが逆数の関係にある場合や、両者の和が１あるいは０になるといった場合に対応していると判定するものとしてもよい。
【０００９】
また、前記リクエスト生成部は、前記クライアントに固有の情報と、前記リクエストデータの生成順序に関連した情報とに基づき前記第１の識別子を生成することとすれば、他のクライアントが生成する識別子とも重複することのないユニークな識別子をリクエストに付与することができる。クライアントに固有の情報としては、例えば、クライアントに付与されたＭＡＣアドレスやＩＰアドレス、製造番号等とすることができる。また、生成順序に関連した情報としては、例えば、識別子を生成した日付・時刻、生成した識別子の通し番号などとすることができる。
【００１０】
また、本発明は、上記所定のプロトコルがＨＴＴＰ（Hypertext Transport Protocol）である場合に特に効果が高い。ＨＴＴＰは、ファイアウォールを越えることが容易なため、例えば、本発明のクライアントをセキュアな会社内に設置した場合でも容易にインターネット上に存在するサーバにアクセスすることが可能となるからである。
【００１１】
本発明は、このようなクライアントとして構成できるほか、次のようなサーバコンピュータとしても構成することができる。すなわち、
ネットワークを介して接続されたクライアントからの要求に応じて、蓄積された印刷ジョブを、ＨＴＴＰプロトコルを用いて転送するサーバコンピュータであって、
前記ＨＴＴＰプロトコルの書式に従うリクエストのボディ部に識別子が付与されたリクエストであって、印刷に関するリクエストを、前記クライアントから受信するリクエスト受信部と、
前記リクエストに応じたレスポンスであって、前記ＨＴＴＰプロトコルの書式に従うレスポンスのボディ部に前記識別子に対応した返信用識別子を含めて、当該レスポンスを生成するレスポンス生成部と、
前記クライアントに前記レスポンスを送信するレスポンス送信部と、
を備えるサーバコンピュータである。
【００１２】
本発明のサーバによれば、リクエストに応じたレスポンスを生成する際に、そのリクエストに付与された識別子に対応する返信用識別子をレスポンスに付与することとなる。従って、このようなレスポンスを受信するクライアントは、発行したリクエストと受信したレスポンスとの対応付けを適切に行うことができる。なお、レスポンス生成部は、リクエストに付与された識別子と同一の識別子を返信用識別子としてレスポンスに付与するものとすれば好適である。新たに識別子を生成する必要がないため処理を簡略化することができるからである。
【００１３】
本発明は、上述したクライアントやサーバとしての態様の他、種々の態様で構成可能である。例えば、クライアントがネットワーク上に存在するサーバと所定のプロトコルを用いて通信を行う通信方法、サーバがネットワーク上に存在するクライアントと所定のプロトコルを用いて通信を行う通信方法、クライアントがネットワーク上に存在するサーバと所定のプロトコルを用いて通信を行うためのコンピュータプログラム、サーバがネットワーク上に存在するクライアントと所定のプロトコルを用いて通信を行うためのコンピュータプログラム、かかるコンピュータプログラムを記録した記録媒体等の態様である。
【００１４】
ここで記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読取り可能な種々の媒体を利用できる。
【００１５】
【発明の実施の形態】
以下、本発明の実施の形態について実施例に基づき次の順序で説明する。
Ａ．印刷システム：
Ｂ．エージェント：
Ｃ．プリント仲介サーバ：
Ｄ．通信処理：
Ｅ．効果：
Ｆ．変形例：
【００１６】
Ａ．印刷システム：
図１は、本実施例における印刷システムの概略構成を示す説明図である。印刷システム１０は、主に携帯情報端末１２を用いて外出先で閲覧したコンテンツを、家庭や会社のプリンタＰＴで印刷することを目的としたシステムである。印刷システム１０を構成するコンテンツサーバ１１、携帯情報端末１２、プリント仲介サーバ１３、クライアントＰＣ１４は、インターネットＩＮＴを介して相互に接続されている。
【００１７】
以下、本システムを用いた印刷手順の大まかな流れを説明する。まず、ユーザは、ノートパソコンやＰＤＡ、携帯電話等の携帯情報端末１２を用いてコンテンツサーバ１１が保持する所望のコンテンツを表示する。コンテンツサーバ１１は、メールの配信サービスや地図の配信サービス等といった種々のサービスをユーザに提供するサーバである。本実施例では、コンテンツサーバ１１は、地図の配信サービスを行っているものとした。従って、図中の携帯情報端末１２にはコンテンツサーバから配信された地図画像ＭＩが表示されている。
【００１８】
携帯情報端末１２に表示された地図画像ＭＩ上には、印刷ボタンＰＢが配置されている。ユーザは、このボタンを押すことにより印刷ジョブをプリント仲介サーバ１３に転送することができる。印刷ボタンＰＢは、プリント仲介サーバ１３へのハイパーリンクとなっており、ユーザがこのボタンを押すことにより地図画像ＭＩのリンク元であるコンテンツサーバのＵＲＬ（Uniform Resource Locator）がプリント仲介サーバ１３に転送される仕組みとなっている。なお、ここではＵＲＬが転送されることとしたが、地図画像ＭＩの画像データそのものを転送することとしてもかまわない。
【００１９】
ユーザは、外出先から帰宅し、家庭あるいは会社のコンピュータ（クライアントＰＣ１４）で上記印刷ジョブの印刷を行うために、クライアントＰＣ１４にインストールされたエージェントと呼ばれるプログラムを用いる。エージェントは、プリント仲介サーバ１３へのログオン、印刷ジョブの要求／ダウンロード、プリンタへの印刷といった一連の印刷処理を行うソフトウェアである。ユーザは、エージェントを用いることにより、外出先で閲覧したコンテンツを家庭や会社のプリンタで容易に印刷することが可能となる。
【００２０】
エージェントとプリント仲介サーバ１３とは、プロトコルとしてＨＴＴＰを用いた通信を行う。ＨＴＴＰは、ファイアウォールを容易に越えることができるという特徴がある。従って、ファイアウォールを介してインターネットに接続された企業内のコンピュータであってもエージェントを用いて容易にプリント仲介サーバ１３との通信が可能となる。
【００２１】
Ｂ．エージェント：
図２は、エージェントの機能ブロック図である。エージェント１５は、図示するようにモジュール化された複数のプログラムにより構成されている。以下、各モジュールについて図３および図４を交えて説明する。通信制御モジュール２０は、他のモジュールが発行する仮想メッセージに従ってプリント仲介サーバ１３との通信を仲介するインターフェースとしての機能を備えている。「仮想メッセージ」とは、各モジュールが、プリント仲介サーバ１３とあたかも直接メッセージを送受信しているかのように見せかけるために用意されたメッセージ群である。各モジュールは、この仮想メッセージを用いることにより、通信制御モジュール２０の存在を意識することなくプリント仲介サーバ１３にアクセスすることが可能となる。
【００２２】
図３は、仮想メッセージの一例を示す表である。「RegPrinter」とは、エージェント１５のプリンタ設定モジュール２１が発行する仮想メッセージであり、ユーザのプリンタをプリント仲介サーバ１３に登録する際に用いるメッセージである。ユーザは、エージェントにプリンタの機種名、利用可能な用紙、カラー対応であるか否かといったパラメータを入力する。するとプリンタ設定モジュール２１がこれらのパラメータを引数とした「RegPrinter」メッセージを発行して、プリント仲介サーバ１３にユーザが利用するプリンタを登録する。プリント仲介サーバ１３で登録が成功すると、戻り値としてプリンタＩＤが返信される。登録台数が所定の台数を越えたり、サポートしていないプリンタであった場合には戻り値として「NG」と返信される。
【００２３】
「DelPrinter」もプリンタ設定モジュール２１が発行するメッセージである。これは、「RegPrinter」によってプリント仲介サーバ１３に登録したプリンタを削除する際に用いるメッセージである。削除するプリンタは、プリンタＩＤによって指定する。プリント仲介サーバ１３が削除を成功したら戻り値として「OK」が返信され、指定したプリンタが存在しなかった場合等には「NG」と返信される。
【００２４】
「GetJob」は、プリンタ管理モジュール２２が発行するメッセージであり、プリント仲介サーバ１３から印刷ジョブを取得する際に用いるメッセージである。プリント仲介サーバ１３は、このメッセージをエージェント１５から受信すると、印刷ジョブをエージェント１５に転送する。後述するように、プリント仲介サーバ１３は印刷ジョブをすべてＰＤＦファイルに変換する機能を備えることから、ＰＤＦファイルの実体が戻り値として返信されることとなる。もし、プリント仲介サーバ１３に蓄積されていないジョブを指定してしまった場合には、「File Not Found」なるメッセージが戻り値として返信される。エージェント１５は、「GetJob」によって取得したＰＤＦファイルを、印刷処理モジュール２４によって印刷を行う。
【００２５】
「PrinterStatus」も、プリンタ管理モジュール２２が発行するメッセージである。プリンタ管理モジュール２２は、プリンタの稼動状態を監視しており、例えば、「ready（印刷可能）」や「busy（印刷不可）」といったプリンタの状態をプリント仲介サーバ１３に通知する。
【００２６】
「JobStatus」も、プリンタ管理モジュール２２が発行するメッセージであり、「GetJob」によって取得した印刷ジョブが正常に印刷されたか否かをプリント仲介サーバ１３に対して通知する際に用いるメッセージである。
【００２７】
「GetModule」は、バージョン管理モジュール２３が発行するメッセージであり、プリント仲介サーバ１３から新しいバージョンのモジュールを取得する際に用いるメッセージである。
【００２８】
エージェント管理モジュール２５は、上述したプリンタ管理モジュール２２およびバージョン管理モジュール２３を統括管理するモジュールである。
【００２９】
エージェントブラウザ２６は、プリント仲介サーバ１３のホームページの表示を行う。このホームページ上で、ログイン名、パスワード等を登録することにより、ユーザはユーザ登録を行う。
【００３０】
次に、上述した通信制御モジュール２０の詳細な構成について説明する。通信制御モジュール２０は、仮想メッセージを各モジュールから受信すると、仮想メッセージキュー２７に蓄積する。そして所定のタイミングで、リクエスト生成部２８により仮想メッセージをＨＴＴＰリクエストに変換する。所定のタイミングとは、例えばユーザによって設定された時刻や、ダイアルアップ時にインターネットに接続されたタイミング等である。変換時には、その変換時刻とエージェント１５がインストールされたコンピュータに付与されたＭＡＣアドレスとに基づきユニークなメッセージＩＤを生成する。そして生成したメッセージＩＤをＨＴＴＰリクエストのボディ部内に記録する。
【００３１】
このように生成されたメッセージＩＤは、例えば次のようになる。
「ａａｂｂｃｃｄｄｅｅｆｆ２００２０４１６１１０１１４」
このうち、「ａａｂｂｃｃｄｄｅｅｆｆ」がＭＡＣアドレスを表し、「２００２０４１６」が日付、「１１０１１４」が時刻を表す。
【００３２】
図４（ａ）は、このように生成されたＨＴＴＰリクエストの一例を示している。本図ではメッセージＩＤを簡略化して「ＡＢＣ」と示している。ＨＴＴＰリクエストは、ヘッダ部とボディ部とからなり、ヘッダ部には、ＨＴＴＰの規格上定められた種々のコマンドが記述される。一方、ボディ部には、仮想メッセージとメッセージＩＤとが記録される。図の場合では、仮想メッセージとして「PrinterStatus」が記録されたことを示している。図中「ready」とあるのは、この仮想メッセージに対する引数であり、プリンタが印刷可能状態であることを示している。
【００３３】
通信制御モジュール２０は、リクエスト送信部２９によってＨＴＴＰリクエストをプリント仲介サーバ１３に送信する。このとき、リクエスト履歴保持部３０に、発行したＨＴＴＰリクエストの履歴を記録する。記録されるパラメータには少なくともメッセージＩＤと仮想メッセージとが含まれる。
【００３４】
レスポンス受信部３１は、プリント仲介サーバ１３が返信するＨＴＴＰレスポンスを受信する。図４（ｂ）にＨＴＴＰレスポンスの一例を示した。ＨＴＴＰレスポンスも、ヘッダ部とボディ部とにより構成されており、図示するように、ボディ部にはメッセージＩＤと仮想メッセージ、および仮想メッセージに対する戻り値が記録されている。図の場合では、「PrinterStatus」に対する戻り値が「OK」である旨が記録されている。すなわち、プリント仲介サーバ１３が正常にプリンタの稼動状態を把握したことを表している。
【００３５】
ＩＤ判定部３２は、このＨＴＴＰレスポンスと、リクエスト履歴保持部に記録されたＨＴＴＰリクエストとの照合を行う。照合は、両者に付与されたメッセージＩＤが同一かどうかを判定することにより行う。照合した結果、同一のメッセージＩＤを持つＨＴＴＰリクエストがある場合、そのＨＴＴＰリクエストの変換元となった仮想メッセージを発行したモジュールに対して、ＨＴＴＰレスポンスに記録された戻り値を転送する。戻り値は、戻り値転送部３３により転送される。
【００３６】
Ｃ．プリント仲介サーバ：
図５は、プリント仲介サーバ１３の機能ブロック図である。プリント仲介サーバ１３は、図示する各機能部を実現するソフトウェアを汎用のコンピュータにインストールすることにより構成されている。
【００３７】
通信制御部４０は、他のサーバやクライアント等との通信を司る。通信制御部４０は、ＨＴＴＰリクエストを受信するリクエスト受信部４１と、ＨＴＴＰレスポンスを送信するレスポンス送信部４２とを備える。
【００３８】
ＵＩ提供部４３は、携帯情報端末１２やクライアントＰＣ１４等からの要求に従いＨＴＭＬによるユーザインターフェースを提供する。例えば、上記エージェントブラウザ２６からホームページの閲覧要求があった場合等に利用される。
【００３９】
ユーザ管理部４４はユーザのログインＩＤ、パスワード、利用するプリンタ等の管理を行う。エージェント１５からのプリンタの登録、解除要求があった場合に設定の変更を行う。
【００４０】
ジョブ格納部４５には、携帯情報端末１２から転送された印刷ジョブが格納されている。エージェント１５から印刷ジョブの転送要求があった場合、ＰＤＦ変換部４６を用いて印刷ジョブをＰＤＦファイルに変換する。格納された印刷ジョブが単にＵＲＬの場合は、そのＵＲＬ先のコンテンツサーバ１１からＨＴＭＬ文書や画像を取得してＰＤＦファイルに変換する。
【００４１】
主制御部４７は、通信制御部４０が受信したＨＴＴＰリクエストに応じて種々の処理を行う。ＨＴＴＰリクエストにメッセージＩＤ、仮想メッセージが格納されている場合には、その仮想メッセージに応じて上述の各機能部を用いてプリンタの登録、解除、ジョブの転送等の処理を行う。処理終了後は、その処理に応じた戻り値を記録したＨＴＴＰレスポンスを生成する。ＨＴＴＰレスポンス生成時には、処理対象としたＨＴＴＰリクエストに記録されたメッセージＩＤと同一のメッセージＩＤを付与する（図４（ｂ）参照）。生成したＨＴＴＰレスポンスは、通信制御部４０によってＨＴＴＰリクエストの送信元に返信する。
【００４２】
なお、プリント仲介サーバ１３は、上述した機能部の一部を他のサーバが代行するいわゆる分散型のシステムとして構築してもよい。例えば、ＰＤＦ変換を独立した他のサーバが代行するものとしてもよいし、ユーザ管理を他のサーバが受け持つものとしてもよい。
【００４３】
Ｄ．通信処理：
図６は、エージェント１５とプリント仲介サーバ１３とにおける通信処理のフローチャートである。まず、エージェント１５は、各モジュールから仮想メッセージを受信すると（ステップＳ１０）、仮想メッセージキューにその仮想メッセージを格納する（ステップＳ１１）。そして所定のタイミングで順次仮想メッセージを読み出してＨＴＴＰリクエストを生成する（ステップＳ１２）。このとき、ＨＴＴＰリクエストにはメッセージＩＤが付与される。エージェント１５は、このように生成したＨＴＴＰリクエストをプリント仲介サーバ１３へ送信するとともにリクエスト履歴保持部３０に送信したＨＴＴＰリクエストの履歴を記録する（ステップＳ１３）。
【００４４】
プリント仲介サーバ１３は、このように送信されたＨＴＴＰリクエストを受信すると（ステップＳ２０）、そのＨＴＴＰリクエストに記録された仮想メッセージに応じて種々の処理を行う（ステップＳ２１）。そして、その処理結果である戻り値を記録したＨＴＴＰレスポンスを生成する（ステップＳ２２）。このとき、処理対象としたＨＴＴＰリクエストに付与されたメッセージＩＤと同じメッセージＩＤをＨＴＴＰレスポンスに記録する。生成したＨＴＴＰレスポンスは、エージェント１５に送信する（ステップＳ２３）。
【００４５】
エージェント１５は、ＨＴＴＰレスポンスを受信すると（ステップＳ１４）、受信したＨＴＴＰレスポンスに記録されたメッセージＩＤを参照して、同一のメッセージＩＤが付与されたＨＴＴＰリクエストをリクエスト履歴保持部３０から検索する（ステップＳ１５）。そして、検索した結果、該当するＨＴＴＰリクエストの生成元となった仮想メッセージの発行元であるモジュールに対して、ＨＴＴＰレスポンスに記録された戻り値を転送する（ステップＳ１６）。このような処理を経ることによりエージェント１５の各モジュールは、発行した仮想メッセージに対応する戻り値をプリント仲介サーバ１３から適切に取得することが可能となる。
【００４６】
Ｅ．効果：
図７は、エージェント１５とプリント仲介サーバ１３との通信例を示す説明図である。図では、メッセージＩＤをＩＤ１、ＩＤ２、…と示した。図中、左から右へ向かう矢印がＨＴＴＰリクエストを表し、右から左へ向かう矢印がＨＴＴＰレスポンスを表している。下向きの矢印は時間経過を表す。本実施例で説明したエージェント１５とプリント仲介サーバ１３によれば、エージェント１５は、既に発行したＨＴＴＰリクエストに対するＨＴＴＰレスポンスを待つことなく次々にＨＴＴＰリクエストを送信することができる。ＨＴＴＰリクエストとそのＨＴＴＰリクエストに対応するＨＴＴＰレスポンスとには、共通するユニークなメッセージＩＤ（ＩＤ１〜ＩＤ５）が付与されるため、図示するようにプリント仲介サーバ１３から返信されるＨＴＴＰレスポンスの順序がＨＴＴＰリクエストの送信された順序と異なる場合であっても、ＨＴＴＰリクエストとＨＴＴＰレスポンスとの対応を適切に照合することができる。
【００４７】
Ｆ．変形例：
実施例では、エージェントは、メッセージＩＤをＭＡＣアドレスと時刻とに基づき生成するものとした。従って、生成するメッセージＩＤは、全て重複することなく唯一無比のものとなる。しかし、エージェント１５は、少なくともレスポンスが返信されていないリクエストと、新たに生成するリクエストとを判別できればよい。そのため、既にレスポンスが返信されたリクエストに対して付与したメッセージＩＤと重複するメッセージＩＤを新たに生成するリクエストに付与しても差し支えない。
【００４８】
図８は、重複したメッセージＩＤを利用した場合の通信例を示す説明図である。図示するように、エージェント１５は、ＩＤ１〜ＩＤ４を付与したリクエストを送信した後、プリント仲介サーバ１３からＩＤ１およびＩＤ２の付与されたレスポンスを受信している。従って、エージェントは、ＩＤ１またはＩＤ２のメッセージＩＤを再利用してリクエストに付与しても、他のリクエストと判別を行うことができる。図の場合では、ＩＤ１を再利用した場合を示している。このように、メッセージＩＤを重複して利用するものとすれば、例えば、メッセージＩＤを限られた数しか用いることのできないシステム等に特に有効である。
【００４９】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。例えば、実施例においてソフトウェアで実現した機能を、ハードウェア的に実現するものとしてもよい。また、印刷システム１０以外のシステムにおけるサーバ／クライアント間の通信に用いてもよい。また、実施例では通信制御モジュールが一元的にメッセージＩＤを生成するものとしたが、各モジュールが生成するものとしてもよい。また、メッセージＩＤをＨＴＴＰリクエスト／レスポンスのボディ部に記録するものとしたが、ヘッダ部に記録するものとしてもよい。
【図面の簡単な説明】
【図１】印刷システムの概略構成を示す説明図である。
【図２】エージェントの機能ブロック図である。
【図３】仮想メッセージの一例を示す表である。
【図４】ＨＴＴＰリクエストとＨＴＴＰレスポンスの一例を示す説明図である。
【図５】プリント仲介サーバの機能ブロック図である。
【図６】エージェントとプリント仲介サーバとにおける通信処理のフローチャートである。
【図７】エージェントとプリント仲介サーバとの通信例を示す説明図である。
【図８】メッセージＩＤを再利用した場合の通信例を示す説明図である。
【符号の説明】
１０…印刷システム
１１…コンテンツサーバ
１２…携帯情報端末
１３…プリント仲介サーバ
１４…クライアントＰＣ
１５…エージェント
２０…通信制御モジュール
２１…プリンタ設定モジュール
２２…プリンタ管理モジュール
２３…バージョン管理モジュール
２４…印刷処理モジュール
２５…エージェント管理モジュール
２６…エージェントブラウザ
２７…仮想メッセージキュー
２８…リクエスト生成部
２９…リクエスト送信部
３０…リクエスト履歴保持部
３１…レスポンス受信部
３２…ＩＤ判定部
３３…戻り値転送部
４０…通信制御部
４１…リクエスト受信部
４２…レスポンス送信部
４３…ＵＩ提供部
４４…ユーザ管理部
４５…ジョブ格納部
４６…ＰＤＦ変換部
４７…主制御部
【図１】
0004231241.tif 000002
【図２】
0004231241.tif 000003
【図３】
0004231241.tif 000004
【図４】
0004231241.tif 000005
【図５】
0004231241.tif 000006
【図６】
0004231241.tif 000007
【図７】
0004231241.tif 000008
【図８】
0004231241.tif 000009