(57)【特許請求の範囲】
【請求項１】
第１の処理の実行を指示する第１の処理要求を行う第１の処理要求装置と、前記第１の処理の結果に関連する第２の処理の実行を指示する第２の処理要求を行う第２の処理要求装置と、
前記第１または第２の処理要求に応じた処理を実行する第１、第２の処理実行装置と、ネットワークを介して、前記第１または第２の処理要求装置から処理要求を受け付け、前記第１、第２の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を前記第１または第２の処理実行装置に渡す処理要求分配装置とを備え、
前記処理要求は、前記第１および第２の処理要求装置のいずれかの装置と前記第１および第２の処理実行装置のいずれかの装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションＩＤを含み、
前記第１の処理要求を受けて前記第１の処理を実行した前記第１および第２の処理実行装置のいずれかの装置は、前記第１の処理の実行結果に関する情報と前記第１の処理要求が含む前記セッションＩＤとの対応情報をセッション管理情報として記憶手段に記憶し、
前記第２の処理要求を受けた前記第１および第２の処理実行装置のいずれかの装置は、前記セッション管理情報から前記第２の処理要求が含むセッションＩＤに対応する前記第１の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第２の処理を実行する
ことを特徴とする情報処理システム。
【請求項２】
前記第１、第２の処理要求装置に指示して前記処理要求を行わせる制御装置を備え、
前記制御装置は、前記第１の処理要求装置に前記第１の処理要求を行わせる前に、前記処理要求分配装置を介して、前記第１および第２の処理実行装置のいずれかの装置に対して、前記セッションＩＤを含む、認証情報の発行要求を行い、
前記認証情報の発行要求を受けた前記第１および第２の処理実行装置のいずれかの装置は、認証情報を発行するとともに、前記認証情報の発行要求が含むセッションＩＤに対応する前記セッション管理情報のレコードを作成し、
前記第１の処理を実行した前記第１および第２の処理実行装置のいずれかの装置は、前記第１の処理の実行結果に関する情報を、前記第１の処理要求が含むセッションＩＤに対応する前記セッション管理情報のレコードに格納する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記制御装置は、さらに、
前記第２の処理の実行結果に関する情報を取得して、該第２の処理の実行結果に基づく第３の処理を実行する第３の処理実行装置に送信し、
前記第３の処理実行装置から前記第３の処理の実行の完了を示す通知を受けたことを契機として、前記処理要求分配装置を介して、前記第１および第２の処理実行装置のいずれかの装置に対して、前記セッションＩＤを含む、前記第２の処理の実行結果と前記セッション管理情報のレコードとの削除要求を行い、
前記削除要求を受けた前記第１および第２の処理実行装置のいずれかの装置は、前記第２の処理の実行結果を削除するとともに、該削除要求が含むセッションＩＤに対応する前記セッション管理情報のレコードを削除する
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記制御装置は、印刷ジョブを受け付け、
前記第１の処理は、前記印刷ジョブに対応する印刷データを取得する処理であり、
前記第２の処理は、前記取得された印刷データのデータ形式を変換する処理であり、
前記セッションＩＤは、前記印刷ジョブを識別する第１の識別情報を含む
ことを特徴とする請求項２または請求項３に記載の情報処理システム。
【請求項５】
前記第３の処理実行装置は、画像形成装置であり、
前記第３の処理は、前記データ形式が変換された印刷データを印刷出力する処理であり、
前記セッションＩＤは、前記印刷ジョブを識別する第１の識別情報と、該印刷ジョブに対応する印刷データを印刷出力する画像形成装置を識別する第２の識別情報とを含む
ことを特徴とする請求項４に記載の情報処理システム。
【請求項６】
前記処理要求分配装置は、前記第１または第２の処理要求装置のうち、負荷が最も軽い処理要求装置を決定し、負荷が最も軽いと決定された処理要求装置に前記処理要求を渡す
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
前記処理要求分配装置は、ラウンドロビン負荷分散方式に従って、前記第１、第２の処理要求装置に対して順番に前記処理要求を渡す
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項８】
第１の処理要求装置が、第１の処理の実行を指示する第１の処理要求を行う工程と、
第２の処理要求装置が、前記第１の処理の結果に関連する第２の処理の実行を指示する工程と、
処理要求分配装置が、ネットワークを介して、前記第１または第２の処理要求装置から処理要求を受け付け、前記第１、第２の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を第１または第２の処理実行装置に渡す工程と、
前記第１、第２の処理実行装置が、前記処理要求分配装置から受けた処理要求に応じた処理を実行する工程とを有し、
前記処理要求は、前記第１および第２の処理要求装置のいずれかの装置と前記第１および第２の処理実行装置のいずれかの装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションＩＤを含み、
前記第１の処理要求を受けた前記第１および第２の処理実行装置のいずれかの装置が、前記第１の処理を実行するとともに、前記第１の処理の実行結果に関する情報と前記第１の処理要求が含む前記セッションＩＤとの対応情報をセッション管理情報として記憶手段に記憶する工程と、
前記第２の処理要求を受けた前記第１および第２の処理実行装置のいずれかの装置が、前記セッション管理情報から前記第２の処理要求が含むセッションＩＤに対応する前記第１の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第２の処理を実行する工程とを有する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
インターネットに接続されたＰＣ（Personal Computer ）や携帯電話などの各種デバイス（クライアント）から、Ｗｅｂサーバへのアクセス（Ｗｅｂアクセス）が年々増加している。Ｗｅｂアクセスにおいては、クライアントは、ＨＴＴＰ（HyperText Transfer Protocol ）プロトコルを用いてＷｅｂサーバと通信する。Ｗｅｂサーバが、増加するＷｅｂアクセスを処理できるようにするために、ロードバランサが負荷分散を行う。具体的には、ロードバランサは、ＨＴＴＰプロトコルを複数のＷｅｂサーバに分散する。
【０００３】
一方、ＨＴＴＰ通信は、ステートレス通信である。例えば、クライアントがＷｅｂサーバに対してＨＴＴＰ通信で処理の実行を要求し、Ｗｅｂサーバがデバイスからの要求に応じた処理を実行する場合、当該処理毎に通信が切断される。従って、連続するＨＴＴＰ通信が関連付いている場合、ＷｅｂサーバがＩＤを発行し、クライアントはこのＩＤをＷｅｂサーバへの通信に含めることで、Ｗｅｂサーバが、クライアントとの通信が続いていると判断できるようにする。このような連続するＨＴＴＰ通信をセッションと呼ぶ。そして、セッションを識別するＩＤをセッションＩＤと呼ぶ。
【０００４】
一般には、Ｗｅｂサーバが、Ｃｏｏｋｉｅ情報やＵＲＬパラメータをセッションＩＤとしてクライアントに返却する。例えば、クライアントであるＷｅｂブラウザは、同じドメイン内で通信する場合、同じＣｏｏｋｉｅ情報を自動的に返却する。その結果、Ｗｅｂサーバは、返却されたＣｏｏｋｉｅ情報に基づいて、複数ページにまたがるＷｅｂアクセスが、同じクライアントのユーザから発生していることを確認することができる。
【０００５】
なお、特許文献１は、データベースへアクセスするアクセス手段とセッションＩＤとを対応付けてセッション情報格納手段に格納し、受け付けた処理要求が含むセッションＩＤに対応するアクセス手段を取得して上記データベースにアクセスする中継装置を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１８９６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
互いに関連付く処理に関するＨＴＴＰ通信（セッション）が続く場合、ロードバランサがＷｅｂサーバの負荷に応じてＷｅｂサーバに対して処理要求を振り分けると、以下のような問題が発生する場合がある。例えば、Ｗｅｂブラウザが、複数ページにまたがる購買サイトにアクセスする場合、購買サイトが管理する商品選択のページとクレジットカード番号入力ページと送付先入力ページとが異なる場合がある。これらのページは、同じセッションに対応する情報である。しかし、ロードバランサが、ページに関する処理（例えば、ページの取得処理）を複数のＷｅｂサーバに振り分けると、クライアントからの処理要求に応答するために必要な情報が同じＷｅｂサーバに集まらず、正しい処理が実行できなくなるという問題がある。
【０００８】
この問題を解決するために、ロードバランサが、ＨＴＴＰ通信が含むセッションＩＤを参照して、処理要求を振り分けるサーバを判断し、連続するＨＴＴＰ通信が同じＷｅｂサーバに振り分けられるようにするシステム（第１のシステム）が考えられる。第１のシステムを、図１２を参照して説明する。
【０００９】
図１２は、ロードバランサが、セッションＩＤを参照して処理要求をＷｅｂサーバに振り分ける情報処理システム（第１のシステム）の例である。この情報処理システムは、クライアント（ＷｅｂブラウザＡ，Ｂ）と、Ｗｅｂサーバ（サーバＡ，Ｂ）と、ロードバランサとを備える。
【００１０】
例えば、クライアントであるＷｅｂブラウザＡからのＨＴＴＰ通信にＣｏｏｋｉｅ情報が付いていない場合、ロードバランサは、負荷の軽いサーバＡに処理を割り振る。サーバＡからの返却情報にＣｏｏｋｉｅ情報が含まれている場合、ロードバランサは、このＣｏｏｋｉｅ情報とサーバＡへの関連付け情報を作成し、Ｃｏｏｋｉｅ−サーバテーブルに記憶する。以後、クライアントからのＨＴＴＰ通信にＣｏｏｋｉｅ情報が付いている場合は、ロードバランサは、Ｃｏｏｋｉｅ情報を最初に関連付けたサーバＡに対して通信を割り振る。
【００１１】
従って、クライアントが、例えばページＡに関する処理要求をサーバＡに対して行った後、ページＡと関連するページＢに関する処理要求をＷｅｂサーバ側に送信した場合に、クライアントはページＡに関する処理を実行したサーバＡにアクセスできる。これにより、クライアントは、サーバＡにページＢに関する処理を実行させることができる。これにより、クライアントからの処理要求に応答するために必要な情報が同じＷｅｂサーバに集まらず、正しい処理が実行できなくなるという問題を防ぐことができる。しかし、クライアントが所望する全ての情報がサーバＡへ集積することになる。
【００１２】
図１２を参照して説明した第１のシステムにおいては、クライアントであるＷｅｂブラウザとＷｅｂサーバとの間でＨＴＴＰ通信が行われる。ここで、例えば、Ｗｅｂ  ＡＰＩのような、画面表示を伴わないＨＴＴＰ通信が提案されている。そして、このＷｅｂ  ＡＰＩを用いたサーバ間通信が考えられる。
【００１３】
サーバ間通信でＷｅｂ  ＡＰＩを使用するメリットは、ＨＴＴＰ通信を行うライブラリが充実しているために開発が容易なことや、ロードバランサなどの機材が入手しやすいことなどが挙げられる。
【００１４】
サーバ間通信でＷｅｂ  ＡＰＩを使用するシステム（第２のシステム）は、負荷分散のために、クライアント側に相当するサーバを複数台備える構成をとる場合がある。このシステムにおいて、サーバ側がセッションＩＤをクライアント側に返却するようにした場合、以下のような問題が生ずる。
【００１５】
例えば、クライアント側にサーバＡとサーバＢが設けられ、サーバ側にロードバランサ経由でサーバＸとサーバＹとが設けられているシステムを想定する。また、Ｗｅｂ  ＡＰＩとして、ＡＰＩ００１とＡＰＩ００２とがあるものとする。
【００１６】
ＡＰＩ００１は、ファイルダウンロードを指示する処理要求として機能する。ＡＰＩ００２は、ＡＰＩ００１に応じてサーバ側がダウンロードしたファイルの変換処理を指示する処理要求として機能する。すなわち、サーバＡとサーバＢが、処理要求を行う処理要求装置である。サーバＸとサーバＹが、処理要求装置からの処理要求に応じた処理を実行する処理実行装置である。また、ＡＰＩ００１に応じてサーバ側（サーバＸまたはサーバＹ）が実行する処理を第１の処理、ＡＰＩ００１に応じてサーバ側（サーバＸまたはサーバＹ）が実行する処理を第２の処理とする。第２の処理は、第１の処理の結果に関連する。例えば、第１の処理が、ファイルのダウンロードであり、第２の処理が、当該ダウンロードされたファイルの変換処理である。
【００１７】
第２のシステムにおいて、クライアント側のサーバＡがＡＰＩ００１を発行し、クライアント側のサーバＢがＡＰＩ００２を発行したとする。クライアント側のサーバＡがＡＰＩ００１を発行すると、Ｃｏｏｋｉｅ情報がないので、サーバ側のロードバランサはサーバＸに処理を割り振る。サーバＸは、ＡＰＩ００１に応じて、ファイルのダウンロードを実行し、ダウンロードしたファイルをサーバＸ内に保存する。
【００１８】
サーバＸは、セッションＩＤとしてのＣｏｏｋｉｅ情報を生成する。そして、ロードバランサは、このＣｏｏｋｉｅ情報をサーバＡに返却する。ここで、このシステムにおいても、図１２を参照して説明したシステムと同様に、ロードバランサは、Ｃｏｏｋｉｅ情報とサーバＸとを所定のテーブル（例えば、図１２を参照して説明したＣｏｏｋｉｅ−サーバテーブル）に記憶して管理するものとする。
【００１９】
次に、クライアント側のサーバＢがＡＰＩ００２を発行すると、Ｃｏｏｋｉｅ情報がないので、ロードバランサが、サーバＹに第２の処理を割り振る場合がある。ＡＰＩ００１に応じてダウンロードされたファイルはサーバＹには存在しないので、サーバＹに処理が割り振られると、サーバＹは、ファイルの変換処理を実行することができないという問題がある。
【００２０】
このような問題に対応するために、ＡＰＩ００１を発行したサーバＡが、ロードバランサから返却されたＣｏｏｋｉｅ情報をサーバＢに伝達することが考えられる。しかし、サーバＡがＣｏｏｋｉｅ情報をサーバＢに伝達し、サーバＢがＡＰＩ００２を発行する場合、サーバ側の処理はＣｏｏｋｉｅ情報を生成したサーバが必ず処理を行うことになる。すなわち、サーバＢがサーバ側にＡＰＩ００２を発行する場合の通信にサーバＡから伝達されたＣｏｏｋｉｅ情報が含まれるので、ロードバランサは、このＣｏｏｋｉｅ情報の生成元であるサーバＸに処理を割り振る。
【００２１】
従って、第２のシステムにおいては、クライアント側は負荷を分散するために処理要求を行う主体をサーバＡとサーバＢとに分けているにも関わらず、サーバ側は常にサーバＸが実行することになるので、負荷が分散されないという問題がある。
【００２２】
本発明は、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散する情報処理システムの提供を目的とする。
【課題を解決するための手段】
【００２３】
本発明の一実施形態の情報処理システムは、第１の処理の実行を指示する第１の処理要求を行う第１の処理要求装置と、前記第１の処理の結果に関連する第２の処理の実行を指示する第２の処理要求を行う第２の処理要求装置と、前記第１または第２の処理要求に応じた処理を実行する第１、第２の処理実行装置と、ネットワークを介して、前記第１または第２の処理要求装置から処理要求を受け付け、前記第１、第２の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を前記第１または第２の処理実行装置に渡す処理要求分配装置とを備える。前記処理要求は、前記第１および第２の処理要求装置のいずれかの装置と前記第１および第２の処理実行装置のいずれかの装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションＩＤを含む。前記第１の処理要求を受けて前記第１の処理を実行した前記第１および第２の処理実行装置のいずれかの装置は、前記第１の処理の実行結果に関する情報と前記第１の処理要求が含む前記セッションＩＤとの対応情報をセッション管理情報として記憶手段に記憶する。また、前記第２の処理要求を受けた前記第１および第２の処理実行装置のいずれかの装置は、前記セッション管理情報から前記第２の処理要求が含むセッションＩＤに対応する前記第１の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第２の処理を実行する。
【発明の効果】
【００２４】
本実施形態の情報処理システムによれば、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散することができる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態の情報処理システムの構成例を示す図である。
【図２】本実施形態の情報処理システムの機能ブロック図の例である。
【図３】印刷ジョブ受付サービスが備える印刷指示受信サーバの動作処理例を説明するフローチャートである。
【図４】印刷データ取得処理依頼を受けたデータダウンロード指示サーバが実行する処理の例を説明するフローチャートである。
【図５】データ変換処理依頼を受けたデータ変換指示サーバが実行する処理の例を説明するフローチャートである。
【図６】認証トークン要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図７】ダウンロード処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図８】データ変換処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図９】プリンタの動作処理の例を説明するフローチャートである。
【図１０】変換結果保存サーバの動作処理の例を説明するフローチャートである。
【図１１】印刷完了要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図１２】ロードバランサが、セッションＩＤを参照して処理要求をＷｅｂサーバに振り分ける情報処理システムの例である。
【発明を実施するための形態】
【００２６】
図１は、本実施形態の情報処理システムの構成例を示す図である。図１に示す情報処理システムは、印刷データ受信サービスＳＶＣ００１、印刷ジョブ受付サービスＳＶＣ００２、印刷データ変換サービスＳＶＣ００３、印刷データ保存サービスＳＶＣ００４、認証サービスＳＶＣ００５、プリンタＰＲＴ００１を備える。各々のサービスは、サーバ群を有する。上述した印刷データ受信サービスＳＶＣ００１乃至プリンタＰＲＴ００１は、互いにネットワークを介して通信する。本実施形態の情報処理方法は、図１に示す各サービスおよびプリンタＰＲＴの機能によって実現される。また、本実施形態のコンピュータプログラムは、この情報処理方法をコンピュータに実行させることを特徴とする。
【００２７】
印刷データ受信サービスＳＶＣ００１と印刷ジョブ受付サービスＳＶＣ００２とが、ネットワークを介して、処理実行サーバに処理要求を送信するクライアントとして機能する。クライアントは、Ｗｅｂ  ＡＰＩを発行する側である。また、印刷データ変換サービスＳＶＣ００３と印刷データ保存サービスＳＶＣ００４と認証サービスＳＶＣ００５とが、クライアントから処理要求を受信し、この処理要求に応じた処理を実行する処理実行サーバとして機能する。処理実行サーバは、Ｗｅｂ  ＡＰＩを実行する側である。
【００２８】
図１に示す情報処理システムは、ネットワークを介した印刷処理を実行する。クライアントが、印刷ジョブを生成し、印刷ジョブに対応する第１、第２の処理要求を処理実行サーバに対して順次送信する。処理実行サーバが、クライアントから送信される処理要求を実行し、実行結果である印刷データを保存する。その後、クライアントが、画像形成装置であるプリンタＰＲＴ００１に対して印刷要求を行う。プリンタＰＲＴ００１が、クライアントから受けた印刷要求に応じて、処理実行サーバが保存している印刷データを取得し、印刷出力する。
【００２９】
第１の処理要求は、第１の処理の実行を指示する要求である。本実施形態では、第１の処理は、印刷データのダウンロード処理である。第２の処理要求は、第１の処理の結果に関連する第２の処理の実行を指示する要求である。本実施形態では、第２の処理は、第１の処理すなわち印刷データのダウンロード処理によってダウンロードされた印刷データの変換処理である。印刷データの変換処理は、ダウンロードされた印刷データを、プリンタＰＲＴ００１が処理可能なデータ形式に変換する処理である。
【００３０】
印刷データ受信サービスＳＶＣ００１は、ユーザから指示された印刷データを受信して保存する。また、印刷データ受信サービスＳＶＣ００１は、印刷ジョブ受付サービスＳＶＣ００２が保存した印刷データに対応する印刷ジョブを生成し、印刷ジョブ受付サービスＳＶＣ００２に印刷ジョブを投入する（印刷指示を行う）。
【００３１】
印刷ジョブ受付サービスＳＶＣ００２は、印刷データ受信サービスＳＶＣ００１から投入された印刷ジョブを受け付ける。そして、印刷ジョブ受付サービスＳＶＣ００２は、印刷データ変換サービスＳＶＣ００３に対して、受け付けた印刷ジョブに対応する処理要求（印刷データのダウンロード処理を指示する要求、ダウンロードされた印刷データの変換処理を指示する要求）を行う。また、印刷ジョブ受付サービスＳＶＣ００２は、プリンタＰＲＴ００１に対して、印刷要求を行う。この印刷要求は、印刷データ変換サービスＳＶＣ００３が実行した処理結果、すなわち印刷データの取得と印刷出力とを求める要求である。
【００３２】
本実施形態においては、印刷ジョブ受付サービスＳＶＣ００２は、受け付けた印刷ジョブに対応する処理要求を行う前に、印刷データ変換サービスＳＶＣ００３に対して、認証トークン要求を行う。認証トークン要求は、認証トークンの発行要求である。認証トークンは、プリンタＰＲＴ００１が発行する印刷データの取得要求が正しいかを認証するために用いられる認証情報である。プリンタＰＲＴ００１は、印刷ジョブ受付サービスＳＶＣ００２から印刷要求を受け付け、印刷要求に応じて、印刷データ変換サービスＳＶＣ００３が実行した処理結果である印刷データの保存先に対して、印刷データの取得要求を行う。本実施例では、印刷データの保存先は、印刷データ保存サービスＳＶＣ００４である。
【００３３】
印刷データ変換サービスＳＶＣ００３は、印刷ジョブ受付サービスＳＶＣ００２から処理要求を受け付け、受け付けた処理要求に応じて、印刷データのダウンロード処理と、ダウンロードされた印刷データの変換処理とを実行する。印刷データ変換サービスＳＶＣ００３は、変換した印刷データを印刷データ保存サービスＳＶＣ００４に渡して保存させる。
【００３４】
また、印刷データ変換サービスＳＶＣ００３は、印刷ジョブ受付サービスＳＶＣ００２に対して、印刷データの変換が完了したことと、当該印刷データの保存場所のアドレス（ＵＲＬ）とを通知する。また、印刷データ変換サービスＳＶＣ００３は、印刷ジョブ受付サービスＳＶＣ００２から認証トークン要求を受け付ける。印刷データ変換サービスＳＶＣ００３は、受け付けた認証トークン要求に応じて、認証トークンを生成し、認証サービスＳＶＣ００５に渡して保存させる。
【００３５】
印刷データ保存サービスＳＶＣ００４は、印刷データ変換サービスＳＶＣ００３から渡された印刷データを保存する。認証サービスＳＶＣ００５は、印刷データ変換サービスＳＶＣ００３が生成した認証トークンを保存する。
【００３６】
図２は、本実施形態の情報処理システムの機能ブロック図の例である。図２に示す印刷ジョブ受付サービスＳＶＣ００２は、印刷指示受信サーバＶＭ００１、データダウンロード指示サーバＶＭ００２、データ変換指示サーバＶＭ００３を備える。
【００３７】
また、印刷データ変換サービスＳＶＣ００３は、ロードバランサＬＢ００１、ダウンロード処理／データ変換処理サーバＶＭ００４、ＶＭ００５、ダウンロード結果保存サーバＤＢ００１、セッション管理部ＳＥ００１を備える。以下の説明では、ダウンロード処理／データ変換処理サーバを、ダウンロード／変換サーバと記述する。印刷データ保存サービスＳＶＣ００４は、変換結果保存サーバＤＢ００２を備える。図２に示す例では、ダウンロード／変換サーバは２台であるが、印刷データ変換サービスＳＶＣ００３がダウンロード／変換サーバを３台以上備えるようにしてもよい。また、認証サービスＳＶＣ００５は、トークン保存サーバＤＢ００４を備える。
【００３８】
印刷指示受信サーバＶＭ００１は、印刷データ受信サービスＳＶＣ００１（図１）から印刷ジョブを受け付ける制御装置として機能する。印刷指示受信サーバＶＭ００１は、データダウンロード指示サーバＶＭ００２とデータ変換指示サーバＶＭ００３とに対して、上記受け付けた印刷ジョブに対応する処理要求を行うように指示する。
【００３９】
具体的には、印刷指示受信サーバＶＭ００１は、データダウンロード指示サーバＶＭ００２に対して、ダウンロード処理要求を行うように指示する（印刷データ取得処理依頼を行う）。ダウンロード処理要求は、ダウンロード処理（第１の処理）の実行を求める要求である。ダウンロード処理は、印刷ジョブに対応する印刷データを取得（ダウンロード）する処理である。データダウンロード指示サーバＶＭ００２は、ネットワークを介して、印刷データ変換サービスＳＶＣ００３に対してダウンロード要求を送信する（第１の処理要求装置として機能する）。
【００４０】
印刷データ変換サービスＳＶＣ００３がダウンロード要求に応じてダウンロード処理を完了すると、印刷指示受信サーバＶＭ００１は、データ変換指示サーバＶＭ００３に対して、データ変換処理要求を行うように指示する（データ変換処理依頼を行う）。データ変換処理要求は、データ変換処理（第２の処理）の実行を求める要求である。データ変換処理は、ダウンロード要求に応じて印刷データ変換サービスＳＶＣ００３がダウンロードした印刷データのデータ形式を変換する処理である。データ変換指示サーバＶＭ００３は、ネットワークを介して、印刷データ変換サービスＳＶＣ００３に対してデータ変換処理要求を送信する（第２の処理要求装置として機能する）。
【００４１】
本実施形態では、データダウンロード指示サーバＶＭ００２、データ変換指示サーバＶＭ００３の各々が行う処理要求は、セッションＩＤを含む。セッションＩＤは、処理要求装置と処理実行装置との間の通信を識別する識別情報である。処理要求装置は、データダウンロード指示サーバＶＭ００２とデータ変換指示サーバＶＭ００３である。処理実行装置は、処理要求装置が行った処理要求に応じた処理を実行する装置である。本実施形態では、後述するダウンロード／変換サーバＶＭ００４が第１の処理実行装置、ダウンロード／変換サーバＶＭ００５が第２の処理実行装置である。
【００４２】
セッションＩＤは、互いに関連する処理に対応する通信について一意の値をとる。すなわち、第１の処理要求（ダウンロード処理要求）が含むセッションＩＤと、第１の処理の結果に関連する第２の処理の実行を求める第２の処理要求（データ変換処理要求）が含むセッションＩＤとは、同じセッションＩＤである。
【００４３】
本実施形態では、印刷指示受信サーバＶＭ００１は、データダウンロード指示サーバＶＭ００２に対してダウンロード処理要求を行うように指示する前に、ロードバランサＬＢ００１を介し、印刷データ変換サービスＳＶＣ００３に対して、認証トークン要求を行う。
【００４４】
印刷指示受信サーバＶＭ００１は、認証トークンが発行された後に、データダウンロード指示サーバＶＭ００２に対してダウンロード処理要求を行うように指示する。この認証トークン要求は、当該認証トークン要求に応じて認証トークンが発行された後に指示されるダウンロード処理要求が含むセッションＩＤと同じセッションＩＤを含む。
【００４５】
印刷データ変換サービスＳＶＣ００３が備えるダウンロード／変換サーバが、ロードバランサＬＢ００１を介して、認証トークン要求を受け付ける。ダウンロード／変換サーバは、認証トークン要求を受け付けた場合に、当該認証トークン要求が含むセッションＩＤを取得する。ダウンロード／変換サーバは、取得したセッションＩＤと固定文字列とに基づいて、ＤＢインデックスを生成する。
【００４６】
ダウンロード／変換サーバが、セッションＩＤ自体をＤＢインデックスとするようにしてもよい。そして、ダウンロード／変換サーバは、生成したＤＢインデックスに対応するレコードを作成する。ダウンロード／変換サーバＶＭ００４は、作成したレコードをセッション管理情報のレコードとしてセッション管理部ＳＥ００１に渡す。セッション管理部ＳＥ００１は、セッション管理情報のレコードを記憶する。
【００４７】
セッション管理情報は、ＤＢインデックスと第１の処理の実行結果に関する情報との対応情報である。ＤＢインデックスは、セッション管理情報のレコード（一行分のデータ）を一意に特定する識別情報として機能する。ダウンロード／変換サーバが、セッションＩＤ自体をＤＢインデックスとした場合、セッション管理情報は、セッションＩＤと第１の処理の実行結果に関する情報との対応情報となる。
【００４８】
本実施形態では、第１の処理の実行結果に関する情報は、ダウンロードされた印刷データのファイルのファイルパスである。認証トークン要求の受け付け時に作成されるセッション管理情報のレコードは、セッションＩＤに対応するファイルパスを含んでいない。このファイルパスは、ダウンロード処理時に、セッション管理情報のレコードに設定される。
【００４９】
ダウンロード／変換サーバは、セッション管理情報のレコードを作成した後、認証トークンを発行する。そして、ダウンロード／変換サーバは、発行した認証トークンと、ＤＢインデックスとをトークン保存サーバＤＢ００４に渡す。トークン保存サーバＤＢ００４は、ダウンロード／変換サーバから受け取った認証トークンとＤＢインデックスとを対応付けて保存する。
【００５０】
ロードバランサＬＢ００１は、印刷ジョブ受付サービスＳＶＣ００２から処理要求（認証トークン要求、ダウンロード処理要求、データ変換処理要求）を受け付ける。そして、ロードバランサＬＢ００１は、処理要求分配装置として機能する。すなわち、ロードバランサＬＢ００１は、ダウンロード／変換サーバＶＭ００４、ダウンロード／変換サーバＶＭ００５の各々の負荷に応じて、上記受け付けた処理要求をダウンロード／変換サーバＶＭ００４またはダウンロード／変換サーバＶＭ００５に渡す。ロードバランサＬＢ００１は、アクセス単位で処理要求を分散する。従って、処理要求が分散する個数は、サーバの負荷に応じて増減する。
【００５１】
本実施形態では、ロードバランサＬＢ００１は、ラウンドロビン負荷分散方式に従って、ダウンロード／変換サーバＶＭ００４、ＶＭ００５に対して順番に処理要求を渡す。ロードバランサＬＢ００１が、第１または第２の処理要求装置のうち、負荷が最も軽い処理要求装置を決定し、負荷が最も軽いと決定された処理要求装置に処理要求を渡すようにしてもよい。
【００５２】
ダウンロード／変換サーバＶＭ００４とダウンロード／変換サーバＶＭ００５とは、互いに同様の構成と機能とを有する。従って、この例では、ダウンロード／変換サーバＶＭ００４について説明する。ダウンロード／変換サーバＶＭ００４は、認証トークン要求を受け付けて、認証トークンを発行する。また、ダウンロード／変換サーバＶＭ００４は、ダウンロード処理要求を受け付けて、ダウンロード処理を実行する。また、ダウンロード／変換サーバＶＭ００４は、データ変換処理要求を受け付けて、データ変換処理を実行する。
【００５３】
ダウンロード／変換サーバＶＭ００４は、ダウンロード処理を完了した場合、ダウンロードした印刷データをダウンロード結果保存サーバＤＢ００１に渡して保存させる。また、ダウンロード／変換サーバＶＭ００４は、セッション管理部ＳＥ００１が保存しているセッション管理情報のレコードのうち、ダウンロード処理要求が含むセッションＩＤに対応するレコードを特定する。
【００５４】
ダウンロード／変換サーバＶＭ００４は、特定したレコードに、当該ダウンロード処理によってダウンロードされた印刷データのファイルのファイルパスを設定する。これにより、ダウンロード処理の実行結果に関する情報であるファイルパスとダウンロード処理要求が含むセッションＩＤとの対応情報が、セッション管理情報として記憶手段（セッション管理部ＳＥ００１）に記憶される。
【００５５】
また、ダウンロード／変換サーバＶＭ００４は、データ変換処理要求を受け付けた場合に、セッション管理部ＳＥ００１が保存しているセッション管理情報のレコードのうち、データ変換処理要求が含むセッションＩＤに対応するレコードを特定する。ダウンロード／変換サーバＶＭ００４は、特定したレコードに設定されているファイルパスに基づいて、印刷データを取得する。ダウンロード／変換サーバＶＭ００４は、取得した印刷データを変換し、変換結果保存サーバＤＢ００２に渡す。変換結果保存サーバＤＢ００２は、ダウンロード／変換サーバＶＭ００４から受け取った印刷データ（変換後の印刷データ）を保存する。ダウンロード結果保存サーバＤＢ００１は、ダウンロード／変換サーバから受け取った印刷データを保存する。
【００５６】
図３は、印刷ジョブ受付サービスが備える印刷指示受信サーバの動作処理例を説明するフローチャートである。なお、図３の各ステップはＶＭ０００１が動作する装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、印刷指示受信サーバＶＭ００１が、印刷データ受信サービスＳＶＣ００１から印刷指示を受け付ける（ステップＳ１０１）。具体的には、印刷指示受信サーバＶＭ００１が、印刷データ受信サービスＳＶＣ００１に対して定期的に通信することを通じて、印刷指示を受け付ける。この印刷指示は、印刷ジョブの実行を指示する制御情報であり、印刷ジョブＩＤとプリンタＩＤと印刷データＵＲＬと印刷設定とを含む。
【００５７】
印刷ジョブＩＤは、印刷ジョブを一意に識別する識別情報（第１の識別情報）である。プリンタＩＤは、当該印刷ジョブを実行して印刷出力するプリンタＰＲＴ００１を一意に識別する識別情報（第２の識別情報）である。印刷データＵＲＬは、印刷ジョブに対応する印刷データの格納場所を示すＵＲＬである。印刷設定は、印刷処理に関する設定である。印刷設定は、例えば、ファイルフォーマット変換に関する設定を含む。
【００５８】
次に、印刷指示受信サーバＶＭ００１が、印刷指示が含む印刷ジョブＩＤを取得する（ステップＳ１０２）。続いて、印刷指示受信サーバＶＭ００１が、印刷指示が含むプリンタＩＤを取得する（ステップＳ１０３）。印刷指示受信サーバＶＭ００１が、印刷指示が含む印刷データＵＲＬを取得する（ステップＳ１０４）。また、印刷指示受信サーバＶＭ００１が、印刷指示が含む印刷設定を取得する（ステップＳ１０５）。
【００５９】
次に、印刷指示受信サーバＶＭ００１が、認証トークン要求を行って（ステップＳ１０６）、認証トークンを取得する。具体的には、印刷指示受信サーバＶＭ００１が、ネットワークを介して認証トークン要求を印刷データ変換サービスＳＶＣ００３に対して送信する。この認証トークン要求は、ステップＳ１０２において取得した印刷ジョブＩＤと、ステップＳ１０３において取得したプリンタＩＤとを、セッションＩＤとして含む。
【００６０】
次に、印刷指示受信サーバＶＭ００１が、データダウンロード指示サーバＶＭ００２に対して、印刷データ取得処理依頼を行う（ステップＳ１０７）。具体的には、印刷指示受信サーバＶＭ００１が、ステップＳ１０２で取得した印刷ジョブＩＤと、ステップＳ１０３で取得したプリンタＩＤと、ステップＳ１０４で取得した印刷データＵＲＬとを引数として指定して、印刷データ取得処理依頼を行う。印刷データ取得処理依頼を受けたデータダウンロード指示サーバＶＭ００２が実行する処理については、図４を参照して後述する。
【００６１】
次に、印刷指示受信サーバＶＭ００１が、データ変換指示サーバＶＭ００３に対して、データ変換処理依頼を行う（ステップＳ１０８）。具体的には、印刷指示受信サーバＶＭ００１は、ステップＳ１０２で取得した印刷ジョブＩＤと、ステップＳ１０３で取得したプリンタＩＤと、ステップＳ１０５で取得した印刷設定とを引数として指定して、データ変換処理依頼を行う。
【００６２】
そして、データ変換処理を実行したダウンロード／変換サーバから、変換結果データとして、変換後データのダウンロードＵＲＬと変換後データの識別ＩＤとを取得する。変換後データのダウンロードＵＲＬは、変換結果保存サーバＤＢ００２が保存する変換後データのアドレスである。変換後データは、データ変換処理がされた印刷データである。すなわち、印刷指示受信サーバＶＭ００１は、変換後データのダウンロードＵＲＬと変換後データの識別ＩＤとを第２の処理（データ変換処理）の実行結果に関する情報として取得する。
【００６３】
変換後データの識別ＩＤは、データ変換処理がされた印刷データを一意に識別する識別情報である。データ変換処理依頼を受けたデータ変換指示サーバＶＭ００３が実行する処理については、図５を参照して後述する。
【００６４】
次に、印刷指示受信サーバＶＭ００１が、ステップＳ１０８で取得した変換後データのダウンロードＵＲＬと変換後データの識別ＩＤを引数として指定して、プリンタＰＲＴ００１に対して印刷要求を行う（ステップＳ１０９）。すなわち、印刷指示受信サーバＶＭ００１は、第２の処理の実行結果に関する情報を、該第２の処理の実行結果に基づく第３の処理（印刷出力）を実行する第３の処理実行装置（プリンタＰＲＴ）に送信する。この印刷要求を受けたプリンタＰＲＴ００１は、データ変換処理によってデータ形式が変換された印刷データ（変換後データ）を印刷出力する。
【００６５】
次に、印刷指示受信サーバＶＭ００１が、プリンタＰＲＴ００１による印刷が完了するのを待つ（ステップＳ１１０）。印刷が、正常に完了するか、エラーやキャンセルで終了した場合は、ステップＳ１１１に進む。
【００６６】
次に、印刷指示受信サーバＶＭ００１が、印刷が完了したことを印刷データ受信サービスＳＶＣ００１に対して通知する（ステップＳ１１１）。そして、印刷指示受信サーバＶＭ００１が、印刷データ変換サービスＳＶＣ００３に対して、印刷完了要求を送信する（ステップＳ１１２）。具体的には、印刷指示受信サーバＶＭ００１は、ステップＳ１０２で取得した印刷ジョブＩＤと、ステップＳ１０３で取得したプリンタＩＤと、ステップＳ１０８で取得した変換後データの識別ＩＤとを引数として指定して、印刷完了要求を送信する。印刷完了要求は、印刷の完了に応じた所定の処理の実行を指示する要求である。
【００６７】
本実施形態では、上記所定の処理は、変換後データの削除処理とセッション管理情報のレコードの削除処理である。従って、印刷完了要求は、セッションＩＤを含む、第２の処理の実行結果とセッション管理情報のレコードとの削除要求として機能する。
【００６８】
上述したことから、印刷指示受信サーバＶＭ００１は、プリンタＰＲＴ００１から印刷処理の完了を示す通知を受けたことを契機として、ロードバランサＬＢ００１を介して、ダウンロード／変換サーバに対して印刷完了要求を行う。
【００６９】
図４は、印刷データ取得処理依頼を受けたデータダウンロード指示サーバが実行する処理の例を説明するフローチャートである。なお、図４の各ステップは、ＶＭ０００２が動作する装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、データダウンロード指示サーバＶＭ００２が、印刷データ取得処理依頼において引数として指定された印刷データＵＲＬを取得する（ステップＳ２０１）。続いて、データダウンロード指示サーバＶＭ００２が、印刷データ取得処理依頼において引数として指定された印刷ジョブＩＤを取得する（ステップＳ２０２）。次に、データダウンロード指示サーバＶＭ００２が、印刷データ取得処理依頼において引数として指定されたプリンタＩＤを取得する（ステップＳ２０３）。
【００７０】
次に、データダウンロード指示サーバＶＭ００２が、印刷データ変換サービスＳＶＣ００３に対してダウンロード処理要求を行う（ステップＳ２０４）。具体的には、データダウンロード指示サーバＶＭ００２は、ステップＳ２０１で取得した印刷データＵＲＬと、ステップＳ２０２で取得した印刷ジョブＩＤと、ステップＳ２０３で取得したプリンタＩＤとを引数として指定して、ダウンロード処理要求を行う。このダウンロード処理要求が含む印刷ジョブＩＤとプリンタＩＤとが、セッションＩＤとして機能する。
【００７１】
次に、データダウンロード指示サーバＶＭ００２が、上記ダウンロード処理要求に対応するダウンロード処理の完了を待つ（ステップＳ２０５）。そして、ダウンロード処理が完了したら、処理を終了する。
【００７２】
図５は、データ変換処理依頼を受けたデータ変換指示サーバが実行する処理の例を説明するフローチャートである。なお、図５の各ステップは、ＶＭ０００３が動作する装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、データ変換指示サーバＶＭ００３が、データ変換処理依頼において引数として指定された印刷設定を取得する（ステップＳ３０１）。続いて、データ変換指示サーバＶＭ００３が、データ変換処理依頼において引数として指定された印刷ジョブＩＤを取得する（ステップＳ３０２）。次に、データ変換指示サーバＶＭ００３が、データ変換処理依頼において引数として指定されたプリンタＩＤを取得する（ステップＳ３０３）。
【００７３】
次に、データ変換指示サーバＶＭ００３が、印刷データ変換サービスＳＶＣ００３に対して、データ変換処理要求を行う（ステップＳ３０４）。具体的には、データ変換指示サーバＶＭ００３は、ステップＳ３０１で取得した印刷設定と、ステップＳ３０２で取得した印刷ジョブＩＤと、ステップＳ３０３で取得した印刷ジョブＩＤとを引数として指定して、データ変換処理要求を行う。
【００７４】
次に、データ変換指示サーバＶＭ００３が、上記データ変換処理要求に対応するデータ変換処理の完了を待つ（ステップＳ３０５）。続いて、データ変換指示サーバＶＭ００３が、当該データ変換処理を実行したダウンロード／変換サーバから、変換後データのダウンロードＵＲＬを取得する（ステップＳ３０６）。そして、データ変換指示サーバＶＭ００３が、当該データ変換処理を実行したダウンロード／変換サーバから、変換後データの識別ＩＤを取得して（ステップＳ３０７）、処理を終了する。
【００７５】
図６は、認証トークン要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図６の処理は印刷データ変換サービスが実行される装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、印刷データ変換サービスＳＶＣ００３のロードバランサＬＢ００１が、印刷ジョブ受付サービスＳＶＣ００２から認証トークン要求を受け、認証トークン要求をダウンロード／変換サーバＶＭ００４またはダウンロード／変換サーバＶＭ００５に割り振る。この例では、認証トークン要求は、ダウンロード／変換サーバＶＭ００４に割り振られたものとする。
【００７６】
ダウンロード／変換サーバＶＭ００４が、割り振られた認証トークン要求を受け付ける（ステップＳ１１０１）。続いて、ダウンロード／変換サーバＶＭ００４が、認証トークン要求において引数として指定された印刷ジョブＩＤを取得する（ステップＳ１１０２）。
【００７７】
次に、ダウンロード／変換サーバＶＭ００４が、認証トークン要求において引数として指定されたプリンタＩＤを取得する（ステップＳ１１０３）。続いて、ダウンロード／変換サーバＶＭ００４が、ステップＳ１１０２で取得した印刷ジョブＩＤと、ステップＳ１１０３で取得したプリンタＩＤと、固定文字列とに基づいて、ＤＢインデックスを生成する（ステップＳ１１０４）。前述したように、ダウンロード／変換サーバＶＭ００４は、印刷ジョブＩＤとプリンタＩＤ、すなわちセッションＩＤ自体をＤＢインデックスとしてもよい。
【００７８】
次に、ダウンロード／変換サーバＶＭ００４が、セッション管理部ＳＥ００１内に、ステップＳ１１０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在するかを判断する（ステップＳ１１０５）。セッション管理部ＳＥ００１内に、ステップＳ１１０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在する場合、ダウンロード／変換サーバＶＭ００４は、エラーが発生したと判断して、ステップＳ１１１１に進む。そして、ダウンロード／変換サーバＶＭ００４は、認証トークン要求の送信元である印刷指示受信サーバＶＭ００１に対して、エラーを示す情報を返却して（ステップＳ１１１１）、処理を終了する。
【００７９】
セッション管理部ＳＥ００１内に、ステップＳ１１０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在しない場合は、ステップＳ１１０６に進む。そして、ダウンロード／変換サーバＶＭ００４が、セッション管理情報のレコードを作成する（ステップＳ１１０６）。この例では、ダウンロード／変換サーバＶＭ００４は、ステップＳ１１０４において生成したＤＢインデックスに対応するレコードを作成する。
【００８０】
次に、ダウンロード／変換サーバＶＭ００４が、認証トークンを生成する（ステップＳ１１０７）。続いて、ダウンロード／変換サーバＶＭ００４が、認証トークンの生成日時を取得する（ステップＳ１１０８）。
【００８１】
次に、ダウンロード／変換サーバＶＭ００４が、ステップＳ１３０４で生成したＤＢインデックス、ステップＳ１１０７で生成した認証トークン、ステップＳ１１０８で取得した認証トークンの生成日時をトークン保存サーバに渡す（ステップＳ１１０９）。トークン保存サーバは、ダウンロード／変換サーバＶＭ００４から受け取った認証トークンと、認証トークンの生成日時とを、ステップＳ１１０４で生成されたＤＢインデックスに対応付けて保存する。そして、ダウンロード／変換サーバＶＭ００４が、認証トークンを印刷指示受信サーバＶＭ００１に返却して（ステップＳ１１１０）、処理を終了する。
【００８２】
図７は、ダウンロード処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図７の処理は印刷データ変換サービスが実行される装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。
まず、印刷データ変換サービスＳＶＣ００３のロードバランサＬＢ００１が、印刷ジョブ受付サービスＳＶＣ００２からダウンロード処理要求を受ける。そして、ロードバランサＬＢ００１が、ダウンロード処理要求をダウンロード／変換サーバＶＭ００４またはダウンロード／変換サーバＶＭ００４に割り振る。この例では、ダウンロード処理要求は、ダウンロード／変換サーバＶＭ００４に割り振られたものとする。
【００８３】
ダウンロード／変換サーバＶＭ００４が、割り振られたダウンロード処理要求を受け付ける（ステップＳ１２０１）。続いて、ダウンロード／変換サーバＶＭ００４が、ダウンロード処理要求において引数として指定された印刷ジョブＩＤを取得する（ステップＳ１２０２）。
【００８４】
次に、ダウンロード／変換サーバＶＭ００４が、ダウンロード処理要求において引数として指定されたプリンタＩＤを取得する（ステップＳ１２０３）。続いて、ダウンロード／変換サーバＶＭ００４が、ダウンロード処理要求において引数として指定されたダウンロードＵＲＬを取得する（ステップＳ１２０４）。そして、ダウンロード／変換サーバＶＭ００４が、ステップＳ１２０２で取得した印刷ジョブＩＤと、ステップＳ１２０３で取得したプリンタＩＤと、固定文字列とに基づいて、ＤＢインデックスを生成する（ステップＳ１２０５）。ＤＢインデックスは、セッション管理情報のインデックスである。なお、図６のステップＳ１１０６において生成されたセッション管理情報が、印刷ジョブＩＤとプリンタＩＤ、つまりセッションＩＤ自体をＤＢインデックスとして持つ場合、ダウンロード／変換サーバＶＭ００４は、セッションＩＤ自体をＤＢインデックスとする。
【００８５】
次に、ダウンロード／変換サーバＶＭ００４が、セッション管理部ＳＥ００１内に、ステップＳ１２０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在するかを判断する（ステップＳ１２０６）。セッション管理部ＳＥ００１内に、ステップＳ１２０５で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード／変換サーバＶＭ００４は、エラーが発生したと判断して、ステップＳ１２１３に進む。そして、ダウンロード／変換サーバＶＭ００４は、エラーを示す情報をデータダウンロード指示サーバＶＭ００２に返却して（ステップＳ１２１３）、処理を終了する。
【００８６】
セッション管理部ＳＥ００１内に、ステップＳ１２０５で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップＳ１２０７に進む。そして、ダウンロード／変換サーバＶＭ００４が、ステップＳ１２０４において取得したダウンロードＵＲＬから、印刷データをダウンロードする（ステップＳ１２０７）。この例では、ダウンロード／変換サーバＶＭ００４が、ＰＤＦファイルをダウンロードするものとする。
【００８７】
次に、ダウンロード／変換サーバＶＭ００４が、ダウンロードが成功したかを判断する（ステップＳ１２０８）。ダウンロードが失敗した場合は、ステップＳ１２１２に進む。そして、ダウンロード／変換サーバＶＭ００４が、ダウンロードが失敗したことを示す情報（ダウンロード失敗エラー）をデータダウンロード指示サーバＶＭ００２に返却して（ステップＳ１２１２）、処理を終了する。
【００８８】
次に、ダウンロード／変換サーバＶＭ００４が、ダウンロードした印刷データのファイルをダウンロード結果保存サーバＤＢ００１に渡して保存させる（ステップＳ１２０９）。そして、ダウンロード／変換サーバＶＭ００４が、ダウンロード結果保存サーバＤＢ００１が保存したファイルのファイルパスを、セッション管理情報のレコードに保存する（ステップＳ１２１０）。ステップＳ１２１０においてファイルパスが保存されるレコードは、ステップＳ１２０６において存在すると判断された、ＤＢインデックスに対応するレコードである。
【００８９】
次に、ダウンロード／変換サーバＶＭ００４が、データダウンロード指示サーバＶＭ００２に対して、ダウンロードが正常に終了したことを示す情報を返却して（ステップＳ１２１１）、処理を終了する。
【００９０】
図８は、データ変換処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図８の処理は印刷データ変換サービスが実行される装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。
まず、印刷データ変換サービスＳＶＣ００３のロードバランサＬＢ００１が、印刷ジョブ受付サービスＳＶＣ００２からデータ変換処理要求を受け、データ変換処理要求をダウンロード／変換サーバＶＭ００４またはダウンロード／変換サーバＶＭ００４に割り振る。この例では、データ変換処理要求は、ダウンロード／変換サーバＶＭ００５に割り振られたものとする。
【００９１】
ダウンロード／変換サーバＶＭ００５が、割り振られたデータ変換処理要求を受け付ける（ステップＳ１３０１）。続いて、ダウンロード／変換サーバＶＭ００５が、データ変換処理要求において引数として指定された印刷ジョブＩＤを取得する（ステップＳ１３０２）。
【００９２】
次に、ダウンロード／変換サーバＶＭ００５が、データ変換処理要求において引数として指定されたプリンタＩＤを取得する（ステップＳ１３０３）。そして、ダウンロード／変換サーバＶＭ００５が、ステップＳ１３０２で取得した印刷ジョブＩＤと、ステップＳ１３０３で取得したプリンタＩＤと、固定文字列とに基づいて、ＤＢインデックスを生成する（ステップＳ１３０４）。ＤＢインデックスは、セッション管理情報のインデックスである。なお、セッション管理情報が、印刷ジョブＩＤとプリンタＩＤ、すなわちセッションＩＤ自体をＤＢインデックスとして持つ場合、ダウンロード／変換サーバＶＭ００５は、当該セッションＩＤ自体をＤＢインデックスとして生成する。
【００９３】
次に、ダウンロード／変換サーバＶＭ００５が、セッション管理部ＳＥ００１内に、ステップＳ１３０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在するかを判断する（ステップＳ１３０５）。セッション管理部ＳＥ００１内に、ステップＳ１３０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード／変換サーバＶＭ００５は、エラーが発生したと判断して、ステップＳ１３１８に進む。そして、ダウンロード／変換サーバＶＭ００５は、エラーを示す情報をデータダウンロード指示サーバＶＭ００２に返却して（ステップＳ１３１８）、処理を終了する。
【００９４】
セッション管理部ＳＥ００１内に、ステップＳ１３０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップＳ１３０６に進む。そして、ダウンロード／変換サーバＶＭ００５が、ステップＳ１３０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードに格納されているファイルパスを取得する（ステップＳ１３０６）。ＤＢインデックスがセッションＩＤ自体である場合、ダウンロード／変換サーバＶＭ００５は、セッション管理情報からデータ変換処理要求が含むセッションＩＤに対応するファイルパスを取得することとなる。
【００９５】
続いて、ダウンロード／変換サーバＶＭ００５が、ステップＳ１３０６で取得したファイルパスに基づいて、ダウンロード結果保存サーバＤＢ００１に保存されている印刷データを読み込んで取得する（ステップＳ１３０７）。この例では、ダウンロード／変換サーバＶＭ００５は、ＰＤＦファイルを取得する。
【００９６】
次に、ダウンロード／変換サーバＶＭ００５が、ステップＳ１３０７で取得した印刷データについて、データ変換処理を実行する（ステップＳ１３０８）。この例では、ダウンロード／変換サーバＶＭ００５は、ＰＤＦファイルに対応するＰＤＦデータを、複数枚のＪＰＥＧデータと、各ページのＪＰＥＧデータのＵＲＬが記述されたメタファイルとに変換する。すなわち、ダウンロード／変換サーバＶＭ００４は、当該ＪＰＥＧデータとメタファイルとを変換後データとする。
【００９７】
次に、ダウンロード／変換サーバＶＭ００５が、変換後データの識別ＩＤを生成する（ステップＳ１３０９）。続いて、ダウンロード／変換サーバＶＭ００５が、変換結果保存サーバＤＢ０００２内に、ステップＳ１３０９で生成された識別ＩＤをキーとする変換結果データのレコードを生成する（ステップＳ１３１０）。
【００９８】
次に、ダウンロード／変換サーバＶＭ００５が、変換後データに対応づける対象となる認証トークンを取得する（ステップＳ１３１１）。具体的には、ダウンロード／変換サーバＶＭ００５は、ステップＳ１３０４において生成されたＤＢインデックスに対応する認証トークンを、トークン保存サーバＤＢ００４から取得する。
【００９９】
次に、ダウンロード／変換サーバＶＭ００５が、変換後データの保存先を決定する（ステップＳ１３１２）。続いて、ダウンロード／変換サーバＶＭ００５が、変換後データのダウンロードＵＲＬを生成する（ステップＳ１３１４）。ステップＳ１３１４でダウンロードＵＲＬが決まることによって、ステップＳ１３０８のデータ変換処理で生成したメタファイルが確定する。
【０１００】
次に、ダウンロード／変換サーバＶＭ００５が、変換後データの保存先（Ｓ１３１２）とダウンロードＵＲＬ（Ｓ１３１４）と認証トークン（Ｓ１３１１）とを、ステップＳ１３１０で生成した、変換結果データのレコードに格納する（ステップＳ１３１５）。これにより、変換結果データが変換結果保存サーバＤＢ００２に保存される。
【０１０１】
続いて、ダウンロード／変換サーバＶＭ００５が、当該データ変換処理の対象となった印刷データ（ダウンロードされた印刷データ）を削除する（ステップＳ１３１６）。そして、ダウンロード／変換サーバＶＭ００５が、変換後データの識別ＩＤとダウンロードＵＲＬとをデータ変換指示サーバＶＭ００３に返却して（ステップＳ１３１７）、処理を終了する。
【０１０２】
図９は、プリンタの動作処理の例を説明するフローチャートである。図４乃至図８を参照して説明した処理によって、プリンタＰＲＴ００１が印刷を行うための準備が整う。従って、図３のステップＳ１０９において、印刷指示受信サーバＶＭ００１が、ＰＲＴ００１に印刷要求を行い、この印刷要求に応じて、プリンタＰＲＴ００１が以下の処理を実行する。なお、図９の処理はプリンタＰＲＴ００１のＣＰＵが、関連するプログラムを読み込んで実行することにより実現される。
【０１０３】
まず、図９のステップＳ１４０１において、プリンタＰＲＴ００１が、印刷指示受信サーバＶＭ００１から印刷要求を受け付ける（ステップＳ１４０１）。続いて、プリンタＰＲＴ００１が、印刷要求において引数として指定されている変換後データの識別ＩＤを取得する（ステップＳ１４０２）。
【０１０４】
また、プリンタＰＲＴ００１が、印刷要求において引数として指定されている変換後データのダウンロードＵＲＬを取得する（ステップＳ１４０３）。そして、プリンタＰＲＴ００１が、ステップＳ１４０３で取得した、変換後データのダウンロードＵＲＬから、メタファイルをダウンロードする（ステップＳ１４０４）。具体的には、プリンタＰＲＴ００１が、ステップＳ１４０２で取得した変換後データの識別ＩＤと、変換後データのダウンロードＵＲＬとを含む変換後データ要求を変換結果保存サーバＤＢ００２に対して送信する。そして、プリンタＰＲＴ００１が、変換後データ要求に応じた変換結果保存サーバＤＢ００２からメタファイルをダウンロードする。
【０１０５】
次に、プリンタＰＲＴ００１が、メタファイルのダウンロードに成功したかを判断する（ステップＳ１４０５）。メタファイルのダウンロードに失敗した場合は、ステップＳ１４１５に進む。そして、プリンタＰＲＴ００１が、印刷失敗を示す情報を印刷指示受信サーバＶＭ００１に返却する（ステップＳ１４１５）。
【０１０６】
メタファイルのダウンロードに成功した場合、プリンタＰＲＴ００１が、メタファイルが示すＵＲＬからＪＰＥＧデータを変換後データとしてダウンロードする（ステップＳ１４０６）。
【０１０７】
次に、プリンタＰＲＴ００１が、ステップＳ１４０６でダウンロードしたＪＰＥＧデータをレンダリングする（ステップＳ１４０７）。続いて、プリンタＰＲＴ００１が、ステップＳ１４０７におけるレンダリング結果を色変換する（ステップＳ１４０８）。この例では、プリンタＰＲＴ００１がカラープリンタであるものとする。従って、プリンタＰＲＴ００１は、レンダリング結果として得られるＲＧＢデータをＣＭＹＫデータに変換する。なお、プリンタＰＲＴ００１がモノクロプリンタである場合には、プリンタＰＲＴ００１は、ＲＧＢデータに対してグレイスケール変換を行う。
【０１０８】
次に、プリンタＰＲＴ００１が、色変換結果（ＣＭＹＫデータ）を二値化する（ステップＳ１４０９）。そして、プリンタＰＲＴ００１が、二値化したＣＭＹＫデータを印刷エンジンへ送信して印刷を実行する（ステップＳ１４１０）。
【０１０９】
次に、プリンタＰＲＴ００１が、印刷処理のキャンセルが発生したかを判断する（ステップＳ１４１１）。例えば、プリンタＰＲＴ００１は、インクなしエラー、紙なしエラー、印刷処理の異常、またはユーザの指定によるキャンセルがあったかを判断する。
【０１１０】
印刷処理のキャンセルが発生していない場合は、ステップＳ１４１２に進む。そして、プリンタＰＲＴ００１が、印刷が完了したかを判断する（ステップＳ１４１２）。印刷が完了していない場合は、ステップＳ１４０６に戻る。印刷が完了した場合は、ステップＳ１４１３に進む。そして、プリンタＰＲＴ００１が、印刷が完了したことを示す情報を印刷指示受信サーバＶＭ００１に返却して（ステップＳ１４１３）、処理を終了する。
【０１１１】
印刷処理のキャンセルが発生した場合は、ステップＳ１４１４に進む。そして、プリンタＰＲＴ００１が、印刷がキャンセルされたことを示す情報を印刷指示受信サーバＶＭ００１に返却して（ステップＳ１４１４）、処理を終了する。
【０１１２】
なお、図９を参照して説明した動作処理の例では、プリンタＰＲＴ００１が印刷指示受信サーバＶＭ００１から印刷要求を受信することで当該動作処理（印刷処理）が開始されるが、プリンタＰＲＴ００１が、ポーリング処理により印刷処理を開始しても良い。その場合、プリンタＰＲＴ００１は、印刷指示受信サーバＶＭ００１に対して印刷データの変換が完了したかをＨＴＴＰ通信で問い合わせる。そして、プリンタＰＲＴ００１が問い合わせの結果として印刷データの変換が完了したことを示す情報を受信した場合、ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒ）通信にて変換後データのダウンロードＵＲＬ取得処理（Ｓ１４０３）を行う。これにより、問い合わせからダウンロードＵＲＬのすべての処理をＳＳＬ通信するよりも効率的な通信が可能となる。
【０１１３】
図１０は、変換結果保存サーバの動作処理の例を説明するフローチャートである。なお、図１０の各処理は変換結果保存サーバが動作する装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、変換結果保存サーバＤＢ００２が、プリンタＰＲＴ００１から、変換後データ要求を受け付ける（ステップＳ１５０１）。次に、変換結果保存サーバＤＢ００２が、変換後データ要求が含む、変換後データの識別ＩＤを取得する（ステップＳ１５０２）。続いて、変換結果保存サーバＤＢ００２が、変換後データ要求が含む、変換後データのダウンロードＵＲＬを取得する（ステップＳ１５０３）。
【０１１４】
次に、変換結果保存サーバＤＢ００２が、上記ステップＳ１５０２で取得した識別ＩＤに対応する変換結果データのレコードがあるかを判断する（ステップＳ１５０４）。ステップＳ１５０２で取得した識別ＩＤに対応する変換結果データのレコードがない場合は、ステップＳ１５０８に進む。そして、変換結果保存サーバＤＢ００２が、識別ＩＤが異常であることを示す情報（識別ＩＤ異常エラー）をプリンタＰＲＴ００１に返却する（ステップＳ１５０８）。
【０１１５】
ステップＳ１５０２で取得した識別ＩＤに対応する変換結果データのレコードがある場合は、ステップＳ１５０５に進む。そして、変換結果保存サーバＤＢ００２が、当該変換結果データのレコードから認証トークンを取得する（ステップＳ１５０５）。
【０１１６】
次に、変換結果保存サーバＤＢ００２が、ステップＳ１５０５で取得した認証トークンに対応する有効期限が経過しているか、すなわち認証トークンがタイムアウトしているかを判断する（ステップＳ１５０６）。認証トークンがタイムアウトしている場合は、ステップＳ１５０８に進む。認証トークンがタイムアウトしていない場合は、ステップＳ１５０７に進む。そして、変換結果保存サーバＤＢ００２が、ステップＳ１５０３で取得した変換後データのダウンロードＵＲＬからメタファイルを取得して、プリンタＰＲＴ００１に返却する（ステップＳ１５０７）。
【０１１７】
図１１は、印刷完了要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図１１の処理は印刷データ変換サービスが実行される装置のＣＰＵが関連するプログラムを読み込んで実行することにより実現される。まず、印刷データ変換サービスＳＶＣ００３のロードバランサＬＢ００１が、印刷指示受信サーバＶＭ００１から印刷完了要求を受け、印刷完了要求をダウンロード／変換サーバＶＭ００４またはダウンロード／変換サーバＶＭ００５に割り振る。この例では、印刷完了要求は、ダウンロード／変換サーバＶＭ００４に割り振られたものとする。
【０１１８】
ダウンロード／変換サーバＶＭ００４が、割り振られた印刷完了要求を受け付ける（ステップＳ１６０１）。続いて、ダウンロード／変換サーバＶＭ００４が、印刷完了要求において引数として指定された印刷ジョブＩＤを取得する（ステップＳ１６０２）。
【０１１９】
次に、ダウンロード／変換サーバＶＭ００４が、印刷完了要求において引数として指定されたプリンタＩＤを取得する（ステップＳ１６０３）。そして、ダウンロード／変換サーバＶＭ００４が、ステップＳ１６０２で取得した印刷ジョブＩＤと、ステップＳ１６０３で取得したプリンタＩＤと、固定文字列とに基づいて、ＤＢインデックスを生成する（ステップＳ３４０４）。ＤＢインデックスは、セッション管理情報のインデックスである。なお、セッション管理情報が、印刷ジョブＩＤとプリンタＩＤ、すなわちセッションＩＤ自体をＤＢインデックスとして持つ場合、ダウンロード／変換サーバＶＭ００４は、当該セッションＩＤ自体をＤＢインデックスとして生成する。
【０１２０】
次に、ダウンロード／変換サーバＶＭ００４が、セッション管理部ＳＥ００１内に、ステップＳ１６０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在するかを判断する（ステップＳ３４０５）。
【０１２１】
セッション管理部ＳＥ００１内に、ステップＳ１６０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード／変換サーバＶＭ００４は、エラーが発生したと判断して、ステップＳ１６１０に進む。そして、ダウンロード／変換サーバＶＭ００４は、エラーを示す情報を印刷指示受信サーバＶＭ００１に返却して（ステップＳ１６１０）、処理を終了する。セッション管理部ＳＥ００１内に、ステップＳ１６０４で生成されたＤＢインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップＳ１６０６に進む。
【０１２２】
次に、ダウンロード／変換サーバＶＭ００４が、印刷完了要求において引数として指定された変換後データの識別ＩＤを取得する（ステップＳ１６０６）。続いて、ダウンロード／変換サーバＶＭ００４が、変換結果保存サーバＤＢ００２が保存している変換結果データのレコードうち、ステップＳ１６０６で取得した識別ＩＤに対応するレコードを取得する。そして、ダウンロード／変換サーバＶＭ００４が、当該取得したレコードから変換後データの保存先を取得する（ステップＳ１６０７）。
【０１２３】
次に、ダウンロード／変換サーバＶＭ００４が、ステップＳ１６０７で取得した変換後データの保存先に保存されている、当該変換後データを削除する（ステップＳ１６０８）。ステップＳ１６０８においては、ダウンロード／変換サーバＶＭ００４は、さらに、セッション管理部ＳＥ００１内のセッション管理情報のレコードのうち、ステップＳ１６０４において生成したＤＢインデックスに対応するレコードを削除する。続いて、ダウンロード／変換サーバＶＭ００４が、印刷処理が正常に終了したことを示す情報を印刷指示受信サーバＶＭ００１に返却して（ステップＳ１６０９）、処理を終了する。
【０１２４】
図１１を参照して説明した処理によって、印刷完了要求を受けたダウンロード／変換サーバは、変換後データを削除するとともに、印刷完了要求が含むセッションＩＤに対応するセッション管理情報のレコードを削除する。
【０１２５】
以上説明したように、本実施形態の情報処理システムは、複数の処理要求装置と複数の処理実行装置とを備える。第１の処理要求装置は第１の処理要求を行い、第２の処理要求装置は第２の処理要求を行う。そして、第１の処理を割り振られた処理実行装置は、第１の処理の実行後、第１の処理要求が含むセッションＩＤと第１の処理の結果に関する情報との対応情報をセッション管理情報として記憶する。また、第２の処理を割り振られた処理実行装置は、セッション管理情報から第２の処理要求が含むセッションＩＤに対応する第１の処理の結果に関する情報を取得し、取得した情報に基づいて、第２の処理を実行する。これにより、第１の処理を実行した処理実行装置と異なる処理実行装置に第２の処理要求が割り振られた場合でも、当該処理実行装置が、セッション管理情報に基づいて、当該第２の処理を実行することができる。従って、本実施形態の情報処理システムによれば、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散できる。
【０１２６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１２７】
ＳＶＣ００１  印刷データ受信サービス
ＳＶＣ００２  印刷ジョブ受付サービス
ＳＶＣ００３  印刷データ変換サービス
ＳＶＣ００４  印刷データ保存サービス
ＳＶＣ００５  認証サービス
ＰＲＴ００１  プリンタ
【図１】
0005854782.tif 000002
【図２】
0005854782.tif 000003
【図３】
0005854782.tif 000004
【図４】
0005854782.tif 000005
【図５】
0005854782.tif 000006
【図６】
0005854782.tif 000007
【図７】
0005854782.tif 000008
【図８】
0005854782.tif 000009
【図９】
0005854782.tif 000010
【図１０】
0005854782.tif 000011
【図１１】
0005854782.tif 000012
【図１２】
0005854782.tif 000013