説明

情報処理システム、情報処理方法およびコンピュータプログラム

【課題】複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散する情報処理システムを提供する。
【解決手段】ロードバランサが、データダウンロード指示サーバから処理要求を受け付け、ダウンロード/変換サーバに割り振る。処理要求は、処理要求側と処理実行側との間の通信を識別し、互いに関連する処理に対応する通信について一意の値をとるセッションIDを含む。ダウンロード処理要求を受けたダウンロード/変換サーバが印刷データをダウンロードし、印刷データのファイルパスとセッションIDとを含むセッション管理情報を記憶する。データ変換処理要求を受けたダウンロード/変換サーバがセッション管理情報が含む上記セッションIDに対応するファイルパスが示す印刷データを変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法およびコンピュータプログラムに関する。
【背景技術】
【0002】
インターネットに接続されたPC(Personal Computer )や携帯電話などの各種デバイス(クライアント)から、Webサーバへのアクセス(Webアクセス)が年々増加している。Webアクセスにおいては、クライアントは、HTTP(HyperText Transfer Protocol )プロトコルを用いてWebサーバと通信する。Webサーバが、増加するWebアクセスを処理できるようにするために、ロードバランサが負荷分散を行う。具体的には、ロードバランサは、HTTPプロトコルを複数のWebサーバに分散する。
【0003】
一方、HTTP通信は、ステートレス通信である。例えば、クライアントがWebサーバに対してHTTP通信で処理の実行を要求し、Webサーバがデバイスからの要求に応じた処理を実行する場合、当該処理毎に通信が切断される。従って、連続するHTTP通信が関連付いている場合、WebサーバがIDを発行し、クライアントはこのIDをWebサーバへの通信に含めることで、Webサーバが、クライアントとの通信が続いていると判断できるようにする。このような連続するHTTP通信をセッションと呼ぶ。そして、セッションを識別するIDをセッションIDと呼ぶ。
【0004】
一般には、Webサーバが、Cookie情報やURLパラメータをセッションIDとしてクライアントに返却する。例えば、クライアントであるWebブラウザは、同じドメイン内で通信する場合、同じCookie情報を自動的に返却する。その結果、Webサーバは、返却されたCookie情報に基づいて、複数ページにまたがるWebアクセスが、同じクライアントのユーザから発生していることを確認することができる。
【0005】
なお、特許文献1は、データベースへアクセスするアクセス手段とセッションIDとを対応付けてセッション情報格納手段に格納し、受け付けた処理要求が含むセッションIDに対応するアクセス手段を取得して上記データベースにアクセスする中継装置を開示する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−189646号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
互いに関連付く処理に関するHTTP通信(セッション)が続く場合、ロードバランサがWebサーバの負荷に応じてWebサーバに対して処理要求を振り分けると、以下のような問題が発生する場合がある。例えば、Webブラウザが、複数ページにまたがる購買サイトにアクセスする場合、購買サイトが管理する商品選択のページとクレジットカード番号入力ページと送付先入力ページとが異なる場合がある。これらのページは、同じセッションに対応する情報である。しかし、ロードバランサが、ページに関する処理(例えば、ページの取得処理)を複数のWebサーバに振り分けると、クライアントからの処理要求に応答するために必要な情報が同じWebサーバに集まらず、正しい処理が実行できなくなるという問題がある。
【0008】
この問題を解決するために、ロードバランサが、HTTP通信が含むセッションIDを参照して、処理要求を振り分けるサーバを判断し、連続するHTTP通信が同じWebサーバに振り分けられるようにするシステム(第1のシステム)が考えられる。第1のシステムを、図12を参照して説明する。
【0009】
図12は、ロードバランサが、セッションIDを参照して処理要求をWebサーバに振り分ける情報処理システム(第1のシステム)の例である。この情報処理システムは、クライアント(WebブラウザA,B)と、Webサーバ(サーバA,B)と、ロードバランサとを備える。
【0010】
例えば、クライアントであるWebブラウザAからのHTTP通信にCookie情報が付いていない場合、ロードバランサは、負荷の軽いサーバAに処理を割り振る。サーバAからの返却情報にCookie情報が含まれている場合、ロードバランサは、このCookie情報とサーバAへの関連付け情報を作成し、Cookie−サーバテーブルに記憶する。以後、クライアントからのHTTP通信にCookie情報が付いている場合は、ロードバランサは、Cookie情報を最初に関連付けたサーバAに対して通信を割り振る。
【0011】
従って、クライアントが、例えばページAに関する処理要求をサーバAに対して行った後、ページAと関連するページBに関する処理要求をWebサーバ側に送信した場合に、クライアントはページAに関する処理を実行したサーバAにアクセスできる。これにより、クライアントは、サーバAにページBに関する処理を実行させることができる。これにより、クライアントからの処理要求に応答するために必要な情報が同じWebサーバに集まらず、正しい処理が実行できなくなるという問題を防ぐことができる。しかし、クライアントが所望する全ての情報がサーバAへ集積することになる。
【0012】
図12を参照して説明した第1のシステムにおいては、クライアントであるWebブラウザとWebサーバとの間でHTTP通信が行われる。ここで、例えば、Web APIのような、画面表示を伴わないHTTP通信が提案されている。そして、このWeb APIを用いたサーバ間通信が考えられる。
【0013】
サーバ間通信でWeb APIを使用するメリットは、HTTP通信を行うライブラリが充実しているために開発が容易なことや、ロードバランサなどの機材が入手しやすいことなどが挙げられる。
【0014】
サーバ間通信でWeb APIを使用するシステム(第2のシステム)は、負荷分散のために、クライアント側に相当するサーバを複数台備える構成をとる場合がある。このシステムにおいて、サーバ側がセッションIDをクライアント側に返却するようにした場合、以下のような問題が生ずる。
【0015】
例えば、クライアント側にサーバAとサーバBが設けられ、サーバ側にロードバランサ経由でサーバXとサーバYとが設けられているシステムを想定する。また、Web APIとして、API001とAPI002とがあるものとする。
【0016】
API001は、ファイルダウンロードを指示する処理要求として機能する。API002は、API001に応じてサーバ側がダウンロードしたファイルの変換処理を指示する処理要求として機能する。すなわち、サーバAとサーバBが、処理要求を行う処理要求装置である。サーバXとサーバYが、処理要求装置からの処理要求に応じた処理を実行する処理実行装置である。また、API001に応じてサーバ側(サーバXまたはサーバY)が実行する処理を第1の処理、API001に応じてサーバ側(サーバXまたはサーバY)が実行する処理を第2の処理とする。第2の処理は、第1の処理の結果に関連する。例えば、第1の処理が、ファイルのダウンロードであり、第2の処理が、当該ダウンロードされたファイルの変換処理である。
【0017】
第2のシステムにおいて、クライアント側のサーバAがAPI001を発行し、クライアント側のサーバBがAPI002を発行したとする。クライアント側のサーバAがAPI001を発行すると、Cookie情報がないので、サーバ側のロードバランサはサーバXに処理を割り振る。サーバXは、API001に応じて、ファイルのダウンロードを実行し、ダウンロードしたファイルをサーバX内に保存する。
【0018】
サーバXは、セッションIDとしてのCookie情報を生成する。そして、ロードバランサは、このCookie情報をサーバAに返却する。ここで、このシステムにおいても、図12を参照して説明したシステムと同様に、ロードバランサは、Cookie情報とサーバXとを所定のテーブル(例えば、図12を参照して説明したCookie−サーバテーブル)に記憶して管理するものとする。
【0019】
次に、クライアント側のサーバBがAPI002を発行すると、Cookie情報がないので、ロードバランサが、サーバYに第2の処理を割り振る場合がある。API001に応じてダウンロードされたファイルはサーバYには存在しないので、サーバYに処理が割り振られると、サーバYは、ファイルの変換処理を実行することができないという問題がある。
【0020】
このような問題に対応するために、API001を発行したサーバAが、ロードバランサから返却されたCookie情報をサーバBに伝達することが考えられる。しかし、サーバAがCookie情報をサーバBに伝達し、サーバBがAPI002を発行する場合、サーバ側の処理はCookie情報を生成したサーバが必ず処理を行うことになる。すなわち、サーバBがサーバ側にAPI002を発行する場合の通信にサーバAから伝達されたCookie情報が含まれるので、ロードバランサは、このCookie情報の生成元であるサーバXに処理を割り振る。
【0021】
従って、第2のシステムにおいては、クライアント側は負荷を分散するために処理要求を行う主体をサーバAとサーバBとに分けているにも関わらず、サーバ側は常にサーバXが実行することになるので、負荷が分散されないという問題がある。
【0022】
本発明は、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散する情報処理システムの提供を目的とする。
【課題を解決するための手段】
【0023】
本発明の一実施形態の情報処理システムは、第1の処理の実行を指示する第1の処理要求を行う第1の処理要求装置と、前記第1の処理の結果に関連する第2の処理の実行を指示する第2の処理要求を行う第2の処理要求装置と、前記第1または第2の処理要求に応じた処理を実行する第1、第2の処理実行装置と、ネットワークを介して、前記第1または第2の処理要求装置から処理要求を受け付け、前記第1、第2の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を前記第1または第2の処理実行装置に渡す処理要求分配装置とを備える。前記処理要求は、前記処理要求装置と前記処理実行装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションIDを含む。前記第1の処理要求を受けて前記第1の処理を実行した処理実行装置は、前記第1の処理の実行結果に関する情報と前記第1の処理要求が含む前記セッションIDとの対応情報をセッション管理情報として記憶手段に記憶する。また、前記第2の処理要求を受けた前記処理実行装置は、前記セッション管理情報から前記第2の処理要求が含むセッションIDに対応する前記第1の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第2の処理を実行する。
【発明の効果】
【0024】
本実施形態の情報処理システムによれば、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散することができる。
【図面の簡単な説明】
【0025】
【図1】本実施形態の情報処理システムの構成例を示す図である。
【図2】本実施形態の情報処理システムの機能ブロック図の例である。
【図3】印刷ジョブ受付サービスが備える印刷指示受信サーバの動作処理例を説明するフローチャートである。
【図4】印刷データ取得処理依頼を受けたデータダウンロード指示サーバが実行する処理の例を説明するフローチャートである。
【図5】データ変換処理依頼を受けたデータ変換指示サーバが実行する処理の例を説明するフローチャートである。
【図6】認証トークン要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図7】ダウンロード処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図8】データ変換処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図9】プリンタの動作処理の例を説明するフローチャートである。
【図10】変換結果保存サーバの動作処理の例を説明するフローチャートである。
【図11】印刷完了要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。
【図12】ロードバランサが、セッションIDを参照して処理要求をWebサーバに振り分ける情報処理システムの例である。
【発明を実施するための形態】
【0026】
図1は、本実施形態の情報処理システムの構成例を示す図である。図1に示す情報処理システムは、印刷データ受信サービスSVC001、印刷ジョブ受付サービスSVC002、印刷データ変換サービスSVC003、印刷データ保存サービスSVC004、認証サービスSVC005、プリンタPRT001を備える。各々のサービスは、サーバ群を有する。上述した印刷データ受信サービスSVC001乃至プリンタPRT001は、互いにネットワークを介して通信する。本実施形態の情報処理方法は、図1に示す各サービスおよびプリンタPRTの機能によって実現される。また、本実施形態のコンピュータプログラムは、この情報処理方法をコンピュータに実行させることを特徴とする。
【0027】
印刷データ受信サービスSVC001と印刷ジョブ受付サービスSVC002とが、ネットワークを介して、処理実行サーバに処理要求を送信するクライアントとして機能する。クライアントは、Web APIを発行する側である。また、印刷データ変換サービスSVC003と印刷データ保存サービスSVC004と認証サービスSVC005とが、クライアントから処理要求を受信し、この処理要求に応じた処理を実行する処理実行サーバとして機能する。処理実行サーバは、Web APIを実行する側である。
【0028】
図1に示す情報処理システムは、ネットワークを介した印刷処理を実行する。クライアントが、印刷ジョブを生成し、印刷ジョブに対応する第1、第2の処理要求を処理実行サーバに対して順次送信する。処理実行サーバが、クライアントから送信される処理要求を実行し、実行結果である印刷データを保存する。その後、クライアントが、画像形成装置であるプリンタPRT001に対して印刷要求を行う。プリンタPRT001が、クライアントから受けた印刷要求に応じて、処理実行サーバが保存している印刷データを取得し、印刷出力する。
【0029】
第1の処理要求は、第1の処理の実行を指示する要求である。本実施形態では、第1の処理は、印刷データのダウンロード処理である。第2の処理要求は、第1の処理の結果に関連する第2の処理の実行を指示する要求である。本実施形態では、第2の処理は、第1の処理すなわち印刷データのダウンロード処理によってダウンロードされた印刷データの変換処理である。印刷データの変換処理は、ダウンロードされた印刷データを、プリンタPRT001が処理可能なデータ形式に変換する処理である。
【0030】
印刷データ受信サービスSVC001は、ユーザから指示された印刷データを受信して保存する。また、印刷データ受信サービスSVC001は、印刷ジョブ受付サービスSVC002が保存した印刷データに対応する印刷ジョブを生成し、印刷ジョブ受付サービスSVC002に印刷ジョブを投入する(印刷指示を行う)。
【0031】
印刷ジョブ受付サービスSVC002は、印刷データ受信サービスSVC001から投入された印刷ジョブを受け付ける。そして、印刷ジョブ受付サービスSVC002は、印刷データ変換サービスSVC003に対して、受け付けた印刷ジョブに対応する処理要求(印刷データのダウンロード処理を指示する要求、ダウンロードされた印刷データの変換処理を指示する要求)を行う。また、印刷ジョブ受付サービスSVC002は、プリンタPRT001に対して、印刷要求を行う。この印刷要求は、印刷データ変換サービスSVC003が実行した処理結果、すなわち印刷データの取得と印刷出力とを求める要求である。
【0032】
本実施形態においては、印刷ジョブ受付サービスSVC002は、受け付けた印刷ジョブに対応する処理要求を行う前に、印刷データ変換サービスSVC003に対して、認証トークン要求を行う。認証トークン要求は、認証トークンの発行要求である。認証トークンは、プリンタPRT001が発行する印刷データの取得要求が正しいかを認証するために用いられる認証情報である。プリンタPRT001は、印刷ジョブ受付サービスSVC002から印刷要求を受け付け、印刷要求に応じて、印刷データ変換サービスSVC003が実行した処理結果である印刷データの保存先に対して、印刷データの取得要求を行う。本実施例では、印刷データの保存先は、印刷データ保存サービスSVC004である。
【0033】
印刷データ変換サービスSVC003は、印刷ジョブ受付サービスSVC002から処理要求を受け付け、受け付けた処理要求に応じて、印刷データのダウンロード処理と、ダウンロードされた印刷データの変換処理とを実行する。印刷データ変換サービスSVC003は、変換した印刷データを印刷データ保存サービスSVC004に渡して保存させる。
【0034】
また、印刷データ変換サービスSVC003は、印刷ジョブ受付サービスSVC002に対して、印刷データの変換が完了したことと、当該印刷データの保存場所のアドレス(URL)とを通知する。また、印刷データ変換サービスSVC003は、印刷ジョブ受付サービスSVC002から認証トークン要求を受け付ける。印刷データ変換サービスSVC003は、受け付けた認証トークン要求に応じて、認証トークンを生成し、認証サービスSVC005に渡して保存させる。
【0035】
印刷データ保存サービスSVC004は、印刷データ変換サービスSVC003から渡された印刷データを保存する。認証サービスSVC005は、印刷データ変換サービスSVC003が生成した認証トークンを保存する。
【0036】
図2は、本実施形態の情報処理システムの機能ブロック図の例である。図2に示す印刷ジョブ受付サービスSVC002は、印刷指示受信サーバVM001、データダウンロード指示サーバVM002、データ変換指示サーバVM003を備える。
【0037】
また、印刷データ変換サービスSVC003は、ロードバランサLB001、ダウンロード処理/データ変換処理サーバVM004、VM005、ダウンロード結果保存サーバDB001、セッション管理部SE001を備える。以下の説明では、ダウンロード処理/データ変換処理サーバを、ダウンロード/変換サーバと記述する。印刷データ保存サービスSVC004は、変換結果保存サーバDB002を備える。図2に示す例では、ダウンロード/変換サーバは2台であるが、印刷データ変換サービスSVC003がダウンロード/変換サーバを3台以上備えるようにしてもよい。また、認証サービスSVC005は、トークン保存サーバDB004を備える。
【0038】
印刷指示受信サーバVM001は、印刷データ受信サービスSVC001(図1)から印刷ジョブを受け付ける制御装置として機能する。印刷指示受信サーバVM001は、データダウンロード指示サーバVM002とデータ変換指示サーバVM003とに対して、上記受け付けた印刷ジョブに対応する処理要求を行うように指示する。
【0039】
具体的には、印刷指示受信サーバVM001は、データダウンロード指示サーバVM002に対して、ダウンロード処理要求を行うように指示する(印刷データ取得処理依頼を行う)。ダウンロード処理要求は、ダウンロード処理(第1の処理)の実行を求める要求である。ダウンロード処理は、印刷ジョブに対応する印刷データを取得(ダウンロード)する処理である。データダウンロード指示サーバVM002は、ネットワークを介して、印刷データ変換サービスSVC003に対してダウンロード要求を送信する(第1の処理要求装置として機能する)。
【0040】
印刷データ変換サービスSVC003がダウンロード要求に応じてダウンロード処理を完了すると、印刷指示受信サーバVM001は、データ変換指示サーバVM003に対して、データ変換処理要求を行うように指示する(データ変換処理依頼を行う)。データ変換処理要求は、データ変換処理(第2の処理)の実行を求める要求である。データ変換処理は、ダウンロード要求に応じて印刷データ変換サービスSVC003がダウンロードした印刷データのデータ形式を変換する処理である。データ変換指示サーバVM003は、ネットワークを介して、印刷データ変換サービスSVC003に対してデータ変換処理要求を送信する(第2の処理要求装置として機能する)。
【0041】
本実施形態では、データダウンロード指示サーバVM002、データ変換指示サーバVM003の各々が行う処理要求は、セッションIDを含む。セッションIDは、処理要求装置と処理実行装置との間の通信を識別する識別情報である。処理要求装置は、データダウンロード指示サーバVM002とデータ変換指示サーバVM003である。処理実行装置は、処理要求装置が行った処理要求に応じた処理を実行する装置である。本実施形態では、後述するダウンロード/変換サーバVM004が第1の処理実行装置、ダウンロード/変換サーバVM005が第2の処理実行装置である。
【0042】
セッションIDは、互いに関連する処理に対応する通信について一意の値をとる。すなわち、第1の処理要求(ダウンロード処理要求)が含むセッションIDと、第1の処理の結果に関連する第2の処理の実行を求める第2の処理要求(データ変換処理要求)が含むセッションIDとは、同じセッションIDである。
【0043】
本実施形態では、印刷指示受信サーバVM001は、データダウンロード指示サーバVM002に対してダウンロード処理要求を行うように指示する前に、ロードバランサLB001を介し、印刷データ変換サービスSVC003に対して、認証トークン要求を行う。
【0044】
印刷指示受信サーバVM001は、認証トークンが発行された後に、データダウンロード指示サーバVM002に対してダウンロード処理要求を行うように指示する。この認証トークン要求は、当該認証トークン要求に応じて認証トークンが発行された後に指示されるダウンロード処理要求が含むセッションIDと同じセッションIDを含む。
【0045】
印刷データ変換サービスSVC003が備えるダウンロード/変換サーバが、ロードバランサLB001を介して、認証トークン要求を受け付ける。ダウンロード/変換サーバは、認証トークン要求を受け付けた場合に、当該認証トークン要求が含むセッションIDを取得する。ダウンロード/変換サーバは、取得したセッションIDと固定文字列とに基づいて、DBインデックスを生成する。
【0046】
ダウンロード/変換サーバが、セッションID自体をDBインデックスとするようにしてもよい。そして、ダウンロード/変換サーバは、生成したDBインデックスに対応するレコードを作成する。ダウンロード/変換サーバVM004は、作成したレコードをセッション管理情報のレコードとしてセッション管理部SE001に渡す。セッション管理部SE001は、セッション管理情報のレコードを記憶する。
【0047】
セッション管理情報は、DBインデックスと第1の処理の実行結果に関する情報との対応情報である。DBインデックスは、セッション管理情報のレコード(一行分のデータ)を一意に特定する識別情報として機能する。ダウンロード/変換サーバが、セッションID自体をDBインデックスとした場合、セッション管理情報は、セッションIDと第1の処理の実行結果に関する情報との対応情報となる。
【0048】
本実施形態では、第1の処理の実行結果に関する情報は、ダウンロードされた印刷データのファイルのファイルパスである。認証トークン要求の受け付け時に作成されるセッション管理情報のレコードは、セッションIDに対応するファイルパスを含んでいない。このファイルパスは、ダウンロード処理時に、セッション管理情報のレコードに設定される。
【0049】
ダウンロード/変換サーバは、セッション管理情報のレコードを作成した後、認証トークンを発行する。そして、ダウンロード/変換サーバは、発行した認証トークンと、DBインデックスとをトークン保存サーバDB004に渡す。トークン保存サーバDB004は、ダウンロード/変換サーバから受け取った認証トークンとDBインデックスとを対応付けて保存する。
【0050】
ロードバランサLB001は、印刷ジョブ受付サービスSVC002から処理要求(認証トークン要求、ダウンロード処理要求、データ変換処理要求)を受け付ける。そして、ロードバランサLB001は、処理要求分配装置として機能する。すなわち、ロードバランサLB001は、ダウンロード/変換サーバVM004、ダウンロード/変換サーバVM005の各々の負荷に応じて、上記受け付けた処理要求をダウンロード/変換サーバVM004またはダウンロード/変換サーバVM005に渡す。ロードバランサLB001は、アクセス単位で処理要求を分散する。従って、処理要求が分散する個数は、サーバの負荷に応じて増減する。
【0051】
本実施形態では、ロードバランサLB001は、ラウンドロビン負荷分散方式に従って、ダウンロード/変換サーバVM004、VM005に対して順番に処理要求を渡す。ロードバランサLB001が、第1または第2の処理要求装置のうち、負荷が最も軽い処理要求装置を決定し、負荷が最も軽いと決定された処理要求装置に処理要求を渡すようにしてもよい。
【0052】
ダウンロード/変換サーバVM004とダウンロード/変換サーバVM005とは、互いに同様の構成と機能とを有する。従って、この例では、ダウンロード/変換サーバVM004について説明する。ダウンロード/変換サーバVM004は、認証トークン要求を受け付けて、認証トークンを発行する。また、ダウンロード/変換サーバVM004は、ダウンロード処理要求を受け付けて、ダウンロード処理を実行する。また、ダウンロード/変換サーバVM004は、データ変換処理要求を受け付けて、データ変換処理を実行する。
【0053】
ダウンロード/変換サーバVM004は、ダウンロード処理を完了した場合、ダウンロードした印刷データをダウンロード結果保存サーバDB001に渡して保存させる。また、ダウンロード/変換サーバVM004は、セッション管理部SE001が保存しているセッション管理情報のレコードのうち、ダウンロード処理要求が含むセッションIDに対応するレコードを特定する。
【0054】
ダウンロード/変換サーバVM004は、特定したレコードに、当該ダウンロード処理によってダウンロードされた印刷データのファイルのファイルパスを設定する。これにより、ダウンロード処理の実行結果に関する情報であるファイルパスとダウンロード処理要求が含むセッションIDとの対応情報が、セッション管理情報として記憶手段(セッション管理部SE001)に記憶される。
【0055】
また、ダウンロード/変換サーバVM004は、データ変換処理要求を受け付けた場合に、セッション管理部SE001が保存しているセッション管理情報のレコードのうち、データ変換処理要求が含むセッションIDに対応するレコードを特定する。ダウンロード/変換サーバVM004は、特定したレコードに設定されているファイルパスに基づいて、印刷データを取得する。ダウンロード/変換サーバVM004は、取得した印刷データを変換し、変換結果保存サーバDB002に渡す。変換結果保存サーバDB002は、ダウンロード/変換サーバVM004から受け取った印刷データ(変換後の印刷データ)を保存する。ダウンロード結果保存サーバDB001は、ダウンロード/変換サーバから受け取った印刷データを保存する。
【0056】
図3は、印刷ジョブ受付サービスが備える印刷指示受信サーバの動作処理例を説明するフローチャートである。なお、図3の各ステップはVM0001が動作する装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、印刷指示受信サーバVM001が、印刷データ受信サービスSVC001から印刷指示を受け付ける(ステップS101)。具体的には、印刷指示受信サーバVM001が、印刷データ受信サービスSVC001に対して定期的に通信することを通じて、印刷指示を受け付ける。この印刷指示は、印刷ジョブの実行を指示する制御情報であり、印刷ジョブIDとプリンタIDと印刷データURLと印刷設定とを含む。
【0057】
印刷ジョブIDは、印刷ジョブを一意に識別する識別情報(第1の識別情報)である。プリンタIDは、当該印刷ジョブを実行して印刷出力するプリンタPRT001を一意に識別する識別情報(第2の識別情報)である。印刷データURLは、印刷ジョブに対応する印刷データの格納場所を示すURLである。印刷設定は、印刷処理に関する設定である。印刷設定は、例えば、ファイルフォーマット変換に関する設定を含む。
【0058】
次に、印刷指示受信サーバVM001が、印刷指示が含む印刷ジョブIDを取得する(ステップS102)。続いて、印刷指示受信サーバVM001が、印刷指示が含むプリンタIDを取得する(ステップS103)。印刷指示受信サーバVM001が、印刷指示が含む印刷データURLを取得する(ステップS104)。また、印刷指示受信サーバVM001が、印刷指示が含む印刷設定を取得する(ステップS105)。
【0059】
次に、印刷指示受信サーバVM001が、認証トークン要求を行って(ステップS106)、認証トークンを取得する。具体的には、印刷指示受信サーバVM001が、ネットワークを介して認証トークン要求を印刷データ変換サービスSVC003に対して送信する。この認証トークン要求は、ステップS102において取得した印刷ジョブIDと、ステップS103において取得したプリンタIDとを、セッションIDとして含む。
【0060】
次に、印刷指示受信サーバVM001が、データダウンロード指示サーバVM002に対して、印刷データ取得処理依頼を行う(ステップS107)。具体的には、印刷指示受信サーバVM001が、ステップS102で取得した印刷ジョブIDと、ステップS103で取得したプリンタIDと、ステップS104で取得した印刷データURLとを引数として指定して、印刷データ取得処理依頼を行う。印刷データ取得処理依頼を受けたデータダウンロード指示サーバVM002が実行する処理については、図4を参照して後述する。
【0061】
次に、印刷指示受信サーバVM001が、データ変換指示サーバVM003に対して、データ変換処理依頼を行う(ステップS108)。具体的には、印刷指示受信サーバVM001は、ステップS102で取得した印刷ジョブIDと、ステップS103で取得したプリンタIDと、ステップS105で取得した印刷設定とを引数として指定して、データ変換処理依頼を行う。
【0062】
そして、データ変換処理を実行したダウンロード/変換サーバから、変換結果データとして、変換後データのダウンロードURLと変換後データの識別IDとを取得する。変換後データのダウンロードURLは、変換結果保存サーバDB002が保存する変換後データのアドレスである。変換後データは、データ変換処理がされた印刷データである。すなわち、印刷指示受信サーバVM001は、変換後データのダウンロードURLと変換後データの識別IDとを第2の処理(データ変換処理)の実行結果に関する情報として取得する。
【0063】
変換後データの識別IDは、データ変換処理がされた印刷データを一意に識別する識別情報である。データ変換処理依頼を受けたデータ変換指示サーバVM003が実行する処理については、図5を参照して後述する。
【0064】
次に、印刷指示受信サーバVM001が、ステップS108で取得した変換後データのダウンロードURLと変換後データの識別IDを引数として指定して、プリンタPRT001に対して印刷要求を行う(ステップS109)。すなわち、印刷指示受信サーバVM001は、第2の処理の実行結果に関する情報を、該第2の処理の実行結果に基づく第3の処理(印刷出力)を実行する第3の処理実行装置(プリンタPRT)に送信する。この印刷要求を受けたプリンタPRT001は、データ変換処理によってデータ形式が変換された印刷データ(変換後データ)を印刷出力する。
【0065】
次に、印刷指示受信サーバVM001が、プリンタPRT001による印刷が完了するのを待つ(ステップS110)。印刷が、正常に完了するか、エラーやキャンセルで終了した場合は、ステップS111に進む。
【0066】
次に、印刷指示受信サーバVM001が、印刷が完了したことを印刷データ受信サービスSVC001に対して通知する(ステップS111)。そして、印刷指示受信サーバVM001が、印刷データ変換サービスSVC003に対して、印刷完了要求を送信する(ステップS112)。具体的には、印刷指示受信サーバVM001は、ステップS102で取得した印刷ジョブIDと、ステップS103で取得したプリンタIDと、ステップS108で取得した変換後データの識別IDとを引数として指定して、印刷完了要求を送信する。印刷完了要求は、印刷の完了に応じた所定の処理の実行を指示する要求である。
【0067】
本実施形態では、上記所定の処理は、変換後データの削除処理とセッション管理情報のレコードの削除処理である。従って、印刷完了要求は、セッションIDを含む、第2の処理の実行結果とセッション管理情報のレコードとの削除要求として機能する。
【0068】
上述したことから、印刷指示受信サーバVM001は、プリンタPRT001から印刷処理の完了を示す通知を受けたことを契機として、ロードバランサLB001を介して、ダウンロード/変換サーバに対して印刷完了要求を行う。
【0069】
図4は、印刷データ取得処理依頼を受けたデータダウンロード指示サーバが実行する処理の例を説明するフローチャートである。なお、図4の各ステップは、VM0002が動作する装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、データダウンロード指示サーバVM002が、印刷データ取得処理依頼において引数として指定された印刷データURLを取得する(ステップS201)。続いて、データダウンロード指示サーバVM002が、印刷データ取得処理依頼において引数として指定された印刷ジョブIDを取得する(ステップS202)。次に、データダウンロード指示サーバVM002が、印刷データ取得処理依頼において引数として指定されたプリンタIDを取得する(ステップS203)。
【0070】
次に、データダウンロード指示サーバVM002が、印刷データ変換サービスSVC003に対してダウンロード処理要求を行う(ステップS204)。具体的には、データダウンロード指示サーバVM002は、ステップS201で取得した印刷データURLと、ステップS202で取得した印刷ジョブIDと、ステップS203で取得したプリンタIDとを引数として指定して、ダウンロード処理要求を行う。このダウンロード処理要求が含む印刷ジョブIDとプリンタIDとが、セッションIDとして機能する。
【0071】
次に、データダウンロード指示サーバVM002が、上記ダウンロード処理要求に対応するダウンロード処理の完了を待つ(ステップS205)。そして、ダウンロード処理が完了したら、処理を終了する。
【0072】
図5は、データ変換処理依頼を受けたデータ変換指示サーバが実行する処理の例を説明するフローチャートである。なお、図5の各ステップは、VM0003が動作する装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、データ変換指示サーバVM003が、データ変換処理依頼において引数として指定された印刷設定を取得する(ステップS301)。続いて、データ変換指示サーバVM003が、データ変換処理依頼において引数として指定された印刷ジョブIDを取得する(ステップS302)。次に、データ変換指示サーバVM003が、データ変換処理依頼において引数として指定されたプリンタIDを取得する(ステップS303)。
【0073】
次に、データ変換指示サーバVM003が、印刷データ変換サービスSVC003に対して、データ変換処理要求を行う(ステップS304)。具体的には、データ変換指示サーバVM003は、ステップS301で取得した印刷設定と、ステップS302で取得した印刷ジョブIDと、ステップS303で取得した印刷ジョブIDとを引数として指定して、データ変換処理要求を行う。
【0074】
次に、データ変換指示サーバVM003が、上記データ変換処理要求に対応するデータ変換処理の完了を待つ(ステップS305)。続いて、データ変換指示サーバVM003が、当該データ変換処理を実行したダウンロード/変換サーバから、変換後データのダウンロードURLを取得する(ステップS306)。そして、データ変換指示サーバVM003が、当該データ変換処理を実行したダウンロード/変換サーバから、変換後データの識別IDを取得して(ステップS307)、処理を終了する。
【0075】
図6は、認証トークン要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図6の処理は印刷データ変換サービスが実行される装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、印刷データ変換サービスSVC003のロードバランサLB001が、印刷ジョブ受付サービスSVC002から認証トークン要求を受け、認証トークン要求をダウンロード/変換サーバVM004またはダウンロード/変換サーバVM005に割り振る。この例では、認証トークン要求は、ダウンロード/変換サーバVM004に割り振られたものとする。
【0076】
ダウンロード/変換サーバVM004が、割り振られた認証トークン要求を受け付ける(ステップS1101)。続いて、ダウンロード/変換サーバVM004が、認証トークン要求において引数として指定された印刷ジョブIDを取得する(ステップS1102)。
【0077】
次に、ダウンロード/変換サーバVM004が、認証トークン要求において引数として指定されたプリンタIDを取得する(ステップS1103)。続いて、ダウンロード/変換サーバVM004が、ステップS1102で取得した印刷ジョブIDと、ステップS1103で取得したプリンタIDと、固定文字列とに基づいて、DBインデックスを生成する(ステップS1104)。前述したように、ダウンロード/変換サーバVM004は、印刷ジョブIDとプリンタID、すなわちセッションID自体をDBインデックスとしてもよい。
【0078】
次に、ダウンロード/変換サーバVM004が、セッション管理部SE001内に、ステップS1104で生成されたDBインデックスに対応するセッション管理情報のレコードが存在するかを判断する(ステップS1105)。セッション管理部SE001内に、ステップS1104で生成されたDBインデックスに対応するセッション管理情報のレコードが存在する場合、ダウンロード/変換サーバVM004は、エラーが発生したと判断して、ステップS1111に進む。そして、ダウンロード/変換サーバVM004は、認証トークン要求の送信元である印刷指示受信サーバVM001に対して、エラーを示す情報を返却して(ステップS1111)、処理を終了する。
【0079】
セッション管理部SE001内に、ステップS1104で生成されたDBインデックスに対応するセッション管理情報のレコードが存在しない場合は、ステップS1106に進む。そして、ダウンロード/変換サーバVM004が、セッション管理情報のレコードを作成する(ステップS1106)。この例では、ダウンロード/変換サーバVM004は、ステップS1104において生成したDBインデックスに対応するレコードを作成する。
【0080】
次に、ダウンロード/変換サーバVM004が、認証トークンを生成する(ステップS1107)。続いて、ダウンロード/変換サーバVM004が、認証トークンの生成日時を取得する(ステップS1108)。
【0081】
次に、ダウンロード/変換サーバVM004が、ステップS1304で生成したDBインデックス、ステップS1107で生成した認証トークン、ステップS1108で取得した認証トークンの生成日時をトークン保存サーバに渡す(ステップS1109)。トークン保存サーバは、ダウンロード/変換サーバVM004から受け取った認証トークンと、認証トークンの生成日時とを、ステップS1104で生成されたDBインデックスに対応付けて保存する。そして、ダウンロード/変換サーバVM004が、認証トークンを印刷指示受信サーバVM001に返却して(ステップS1110)、処理を終了する。
【0082】
図7は、ダウンロード処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図7の処理は印刷データ変換サービスが実行される装置のCPUが関連するプログラムを読み込んで実行することにより実現される。
まず、印刷データ変換サービスSVC003のロードバランサLB001が、印刷ジョブ受付サービスSVC002からダウンロード処理要求を受ける。そして、ロードバランサLB001が、ダウンロード処理要求をダウンロード/変換サーバVM004またはダウンロード/変換サーバVM004に割り振る。この例では、ダウンロード処理要求は、ダウンロード/変換サーバVM004に割り振られたものとする。
【0083】
ダウンロード/変換サーバVM004が、割り振られたダウンロード処理要求を受け付ける(ステップS1201)。続いて、ダウンロード/変換サーバVM004が、ダウンロード処理要求において引数として指定された印刷ジョブIDを取得する(ステップS1202)。
【0084】
次に、ダウンロード/変換サーバVM004が、ダウンロード処理要求において引数として指定されたプリンタIDを取得する(ステップS1203)。続いて、ダウンロード/変換サーバVM004が、ダウンロード処理要求において引数として指定されたダウンロードURLを取得する(ステップS1204)。そして、ダウンロード/変換サーバVM004が、ステップS1202で取得した印刷ジョブIDと、ステップS1203で取得したプリンタIDと、固定文字列とに基づいて、DBインデックスを生成する(ステップS1205)。DBインデックスは、セッション管理情報のインデックスである。なお、図6のステップS1106において生成されたセッション管理情報が、印刷ジョブIDとプリンタID、つまりセッションID自体をDBインデックスとして持つ場合、ダウンロード/変換サーバVM004は、セッションID自体をDBインデックスとする。
【0085】
次に、ダウンロード/変換サーバVM004が、セッション管理部SE001内に、ステップS1204で生成されたDBインデックスに対応するセッション管理情報のレコードが存在するかを判断する(ステップS1206)。セッション管理部SE001内に、ステップS1205で生成されたDBインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード/変換サーバVM004は、エラーが発生したと判断して、ステップS1213に進む。そして、ダウンロード/変換サーバVM004は、エラーを示す情報をデータダウンロード指示サーバVM002に返却して(ステップS1213)、処理を終了する。
【0086】
セッション管理部SE001内に、ステップS1205で生成されたDBインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップS1207に進む。そして、ダウンロード/変換サーバVM004が、ステップS1204において取得したダウンロードURLから、印刷データをダウンロードする(ステップS1207)。この例では、ダウンロード/変換サーバVM004が、PDFファイルをダウンロードするものとする。
【0087】
次に、ダウンロード/変換サーバVM004が、ダウンロードが成功したかを判断する(ステップS1208)。ダウンロードが失敗した場合は、ステップS1212に進む。そして、ダウンロード/変換サーバVM004が、ダウンロードが失敗したことを示す情報(ダウンロード失敗エラー)をデータダウンロード指示サーバVM002に返却して(ステップS1212)、処理を終了する。
【0088】
次に、ダウンロード/変換サーバVM004が、ダウンロードした印刷データのファイルをダウンロード結果保存サーバDB001に渡して保存させる(ステップS1209)。そして、ダウンロード/変換サーバVM004が、ダウンロード結果保存サーバDB001が保存したファイルのファイルパスを、セッション管理情報のレコードに保存する(ステップS1210)。ステップS1210においてファイルパスが保存されるレコードは、ステップS1206において存在すると判断された、DBインデックスに対応するレコードである。
【0089】
次に、ダウンロード/変換サーバVM004が、データダウンロード指示サーバVM002に対して、ダウンロードが正常に終了したことを示す情報を返却して(ステップS1211)、処理を終了する。
【0090】
図8は、データ変換処理要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図8の処理は印刷データ変換サービスが実行される装置のCPUが関連するプログラムを読み込んで実行することにより実現される。
まず、印刷データ変換サービスSVC003のロードバランサLB001が、印刷ジョブ受付サービスSVC002からデータ変換処理要求を受け、データ変換処理要求をダウンロード/変換サーバVM004またはダウンロード/変換サーバVM004に割り振る。この例では、データ変換処理要求は、ダウンロード/変換サーバVM005に割り振られたものとする。
【0091】
ダウンロード/変換サーバVM005が、割り振られたデータ変換処理要求を受け付ける(ステップS1301)。続いて、ダウンロード/変換サーバVM005が、データ変換処理要求において引数として指定された印刷ジョブIDを取得する(ステップS1302)。
【0092】
次に、ダウンロード/変換サーバVM005が、データ変換処理要求において引数として指定されたプリンタIDを取得する(ステップS1303)。そして、ダウンロード/変換サーバVM005が、ステップS1302で取得した印刷ジョブIDと、ステップS1303で取得したプリンタIDと、固定文字列とに基づいて、DBインデックスを生成する(ステップS1304)。DBインデックスは、セッション管理情報のインデックスである。なお、セッション管理情報が、印刷ジョブIDとプリンタID、すなわちセッションID自体をDBインデックスとして持つ場合、ダウンロード/変換サーバVM005は、当該セッションID自体をDBインデックスとして生成する。
【0093】
次に、ダウンロード/変換サーバVM005が、セッション管理部SE001内に、ステップS1304で生成されたDBインデックスに対応するセッション管理情報のレコードが存在するかを判断する(ステップS1305)。セッション管理部SE001内に、ステップS1304で生成されたDBインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード/変換サーバVM005は、エラーが発生したと判断して、ステップS1318に進む。そして、ダウンロード/変換サーバVM005は、エラーを示す情報をデータダウンロード指示サーバVM002に返却して(ステップS1318)、処理を終了する。
【0094】
セッション管理部SE001内に、ステップS1304で生成されたDBインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップS1306に進む。そして、ダウンロード/変換サーバVM005が、ステップS1304で生成されたDBインデックスに対応するセッション管理情報のレコードに格納されているファイルパスを取得する(ステップS1306)。DBインデックスがセッションID自体である場合、ダウンロード/変換サーバVM005は、セッション管理情報からデータ変換処理要求が含むセッションIDに対応するファイルパスを取得することとなる。
【0095】
続いて、ダウンロード/変換サーバVM005が、ステップS1306で取得したファイルパスに基づいて、ダウンロード結果保存サーバDB001に保存されている印刷データを読み込んで取得する(ステップS1307)。この例では、ダウンロード/変換サーバVM005は、PDFファイルを取得する。
【0096】
次に、ダウンロード/変換サーバVM005が、ステップS1307で取得した印刷データについて、データ変換処理を実行する(ステップS1308)。この例では、ダウンロード/変換サーバVM005は、PDFファイルに対応するPDFデータを、複数枚のJPEGデータと、各ページのJPEGデータのURLが記述されたメタファイルとに変換する。すなわち、ダウンロード/変換サーバVM004は、当該JPEGデータとメタファイルとを変換後データとする。
【0097】
次に、ダウンロード/変換サーバVM005が、変換後データの識別IDを生成する(ステップS1309)。続いて、ダウンロード/変換サーバVM005が、変換結果保存サーバDB0002内に、ステップS1309で生成された識別IDをキーとする変換結果データのレコードを生成する(ステップS1310)。
【0098】
次に、ダウンロード/変換サーバVM005が、変換後データに対応づける対象となる認証トークンを取得する(ステップS1311)。具体的には、ダウンロード/変換サーバVM005は、ステップS1304において生成されたDBインデックスに対応する認証トークンを、トークン保存サーバDB004から取得する。
【0099】
次に、ダウンロード/変換サーバVM005が、変換後データの保存先を決定する(ステップS1312)。続いて、ダウンロード/変換サーバVM005が、変換後データのダウンロードURLを生成する(ステップS1314)。ステップS1314でダウンロードURLが決まることによって、ステップS1308のデータ変換処理で生成したメタファイルが確定する。
【0100】
次に、ダウンロード/変換サーバVM005が、変換後データの保存先(S1312)とダウンロードURL(S1314)と認証トークン(S1311)とを、ステップS1310で生成した、変換結果データのレコードに格納する(ステップS1315)。これにより、変換結果データが変換結果保存サーバDB002に保存される。
【0101】
続いて、ダウンロード/変換サーバVM005が、当該データ変換処理の対象となった印刷データ(ダウンロードされた印刷データ)を削除する(ステップS1316)。そして、ダウンロード/変換サーバVM005が、変換後データの識別IDとダウンロードURLとをデータ変換指示サーバVM003に返却して(ステップS1317)、処理を終了する。
【0102】
図9は、プリンタの動作処理の例を説明するフローチャートである。図4乃至図8を参照して説明した処理によって、プリンタPRT001が印刷を行うための準備が整う。従って、図3のステップS109において、印刷指示受信サーバVM001が、PRT001に印刷要求を行い、この印刷要求に応じて、プリンタPRT001が以下の処理を実行する。なお、図9の処理はプリンタPRT001のCPUが、関連するプログラムを読み込んで実行することにより実現される。
【0103】
まず、図9のステップS1401において、プリンタPRT001が、印刷指示受信サーバVM001から印刷要求を受け付ける(ステップS1401)。続いて、プリンタPRT001が、印刷要求において引数として指定されている変換後データの識別IDを取得する(ステップS1402)。
【0104】
また、プリンタPRT001が、印刷要求において引数として指定されている変換後データのダウンロードURLを取得する(ステップS1403)。そして、プリンタPRT001が、ステップS1403で取得した、変換後データのダウンロードURLから、メタファイルをダウンロードする(ステップS1404)。具体的には、プリンタPRT001が、ステップS1402で取得した変換後データの識別IDと、変換後データのダウンロードURLとを含む変換後データ要求を変換結果保存サーバDB002に対して送信する。そして、プリンタPRT001が、変換後データ要求に応じた変換結果保存サーバDB002からメタファイルをダウンロードする。
【0105】
次に、プリンタPRT001が、メタファイルのダウンロードに成功したかを判断する(ステップS1405)。メタファイルのダウンロードに失敗した場合は、ステップS1415に進む。そして、プリンタPRT001が、印刷失敗を示す情報を印刷指示受信サーバVM001に返却する(ステップS1415)。
【0106】
メタファイルのダウンロードに成功した場合、プリンタPRT001が、メタファイルが示すURLからJPEGデータを変換後データとしてダウンロードする(ステップS1406)。
【0107】
次に、プリンタPRT001が、ステップS1406でダウンロードしたJPEGデータをレンダリングする(ステップS1407)。続いて、プリンタPRT001が、ステップS1407におけるレンダリング結果を色変換する(ステップS1408)。この例では、プリンタPRT001がカラープリンタであるものとする。従って、プリンタPRT001は、レンダリング結果として得られるRGBデータをCMYKデータに変換する。なお、プリンタPRT001がモノクロプリンタである場合には、プリンタPRT001は、RGBデータに対してグレイスケール変換を行う。
【0108】
次に、プリンタPRT001が、色変換結果(CMYKデータ)を二値化する(ステップS1409)。そして、プリンタPRT001が、二値化したCMYKデータを印刷エンジンへ送信して印刷を実行する(ステップS1410)。
【0109】
次に、プリンタPRT001が、印刷処理のキャンセルが発生したかを判断する(ステップS1411)。例えば、プリンタPRT001は、インクなしエラー、紙なしエラー、印刷処理の異常、またはユーザの指定によるキャンセルがあったかを判断する。
【0110】
印刷処理のキャンセルが発生していない場合は、ステップS1412に進む。そして、プリンタPRT001が、印刷が完了したかを判断する(ステップS1412)。印刷が完了していない場合は、ステップS1406に戻る。印刷が完了した場合は、ステップS1413に進む。そして、プリンタPRT001が、印刷が完了したことを示す情報を印刷指示受信サーバVM001に返却して(ステップS1413)、処理を終了する。
【0111】
印刷処理のキャンセルが発生した場合は、ステップS1414に進む。そして、プリンタPRT001が、印刷がキャンセルされたことを示す情報を印刷指示受信サーバVM001に返却して(ステップS1414)、処理を終了する。
【0112】
なお、図9を参照して説明した動作処理の例では、プリンタPRT001が印刷指示受信サーバVM001から印刷要求を受信することで当該動作処理(印刷処理)が開始されるが、プリンタPRT001が、ポーリング処理により印刷処理を開始しても良い。その場合、プリンタPRT001は、印刷指示受信サーバVM001に対して印刷データの変換が完了したかをHTTP通信で問い合わせる。そして、プリンタPRT001が問い合わせの結果として印刷データの変換が完了したことを示す情報を受信した場合、SSL(Secure Socket Layer)通信にて変換後データのダウンロードURL取得処理(S1403)を行う。これにより、問い合わせからダウンロードURLのすべての処理をSSL通信するよりも効率的な通信が可能となる。
【0113】
図10は、変換結果保存サーバの動作処理の例を説明するフローチャートである。なお、図10の各処理は変換結果保存サーバが動作する装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、変換結果保存サーバDB002が、プリンタPRT001から、変換後データ要求を受け付ける(ステップS1501)。次に、変換結果保存サーバDB002が、変換後データ要求が含む、変換後データの識別IDを取得する(ステップS1502)。続いて、変換結果保存サーバDB002が、変換後データ要求が含む、変換後データのダウンロードURLを取得する(ステップS1503)。
【0114】
次に、変換結果保存サーバDB002が、上記ステップS1502で取得した識別IDに対応する変換結果データのレコードがあるかを判断する(ステップS1504)。ステップS1502で取得した識別IDに対応する変換結果データのレコードがない場合は、ステップS1508に進む。そして、変換結果保存サーバDB002が、識別IDが異常であることを示す情報(識別ID異常エラー)をプリンタPRT001に返却する(ステップS1508)。
【0115】
ステップS1502で取得した識別IDに対応する変換結果データのレコードがある場合は、ステップS1505に進む。そして、変換結果保存サーバDB002が、当該変換結果データのレコードから認証トークンを取得する(ステップS1505)。
【0116】
次に、変換結果保存サーバDB002が、ステップS1505で取得した認証トークンに対応する有効期限が経過しているか、すなわち認証トークンがタイムアウトしているかを判断する(ステップS1506)。認証トークンがタイムアウトしている場合は、ステップS1508に進む。認証トークンがタイムアウトしていない場合は、ステップS1507に進む。そして、変換結果保存サーバDB002が、ステップS1503で取得した変換後データのダウンロードURLからメタファイルを取得して、プリンタPRT001に返却する(ステップS1507)。
【0117】
図11は、印刷完了要求を受けた印刷データ変換サービスが実行する処理の例を説明するフローチャートである。なお、図11の処理は印刷データ変換サービスが実行される装置のCPUが関連するプログラムを読み込んで実行することにより実現される。まず、印刷データ変換サービスSVC003のロードバランサLB001が、印刷指示受信サーバVM001から印刷完了要求を受け、印刷完了要求をダウンロード/変換サーバVM004またはダウンロード/変換サーバVM005に割り振る。この例では、印刷完了要求は、ダウンロード/変換サーバVM004に割り振られたものとする。
【0118】
ダウンロード/変換サーバVM004が、割り振られた印刷完了要求を受け付ける(ステップS1601)。続いて、ダウンロード/変換サーバVM004が、印刷完了要求において引数として指定された印刷ジョブIDを取得する(ステップS1602)。
【0119】
次に、ダウンロード/変換サーバVM004が、印刷完了要求において引数として指定されたプリンタIDを取得する(ステップS1603)。そして、ダウンロード/変換サーバVM004が、ステップS1602で取得した印刷ジョブIDと、ステップS1603で取得したプリンタIDと、固定文字列とに基づいて、DBインデックスを生成する(ステップS3404)。DBインデックスは、セッション管理情報のインデックスである。なお、セッション管理情報が、印刷ジョブIDとプリンタID、すなわちセッションID自体をDBインデックスとして持つ場合、ダウンロード/変換サーバVM004は、当該セッションID自体をDBインデックスとして生成する。
【0120】
次に、ダウンロード/変換サーバVM004が、セッション管理部SE001内に、ステップS1604で生成されたDBインデックスに対応するセッション管理情報のレコードが存在するかを判断する(ステップS3405)。
【0121】
セッション管理部SE001内に、ステップS1604で生成されたDBインデックスに対応するセッション管理情報のレコードが存在しない場合、ダウンロード/変換サーバVM004は、エラーが発生したと判断して、ステップS1610に進む。そして、ダウンロード/変換サーバVM004は、エラーを示す情報を印刷指示受信サーバVM001に返却して(ステップS1610)、処理を終了する。セッション管理部SE001内に、ステップS1604で生成されたDBインデックスに対応するセッション管理情報のレコードが存在する場合は、ステップS1606に進む。
【0122】
次に、ダウンロード/変換サーバVM004が、印刷完了要求において引数として指定された変換後データの識別IDを取得する(ステップS1606)。続いて、ダウンロード/変換サーバVM004が、変換結果保存サーバDB002が保存している変換結果データのレコードうち、ステップS1606で取得した識別IDに対応するレコードを取得する。そして、ダウンロード/変換サーバVM004が、当該取得したレコードから変換後データの保存先を取得する(ステップS1607)。
【0123】
次に、ダウンロード/変換サーバVM004が、ステップS1607で取得した変換後データの保存先に保存されている、当該変換後データを削除する(ステップS1608)。ステップS1608においては、ダウンロード/変換サーバVM004は、さらに、セッション管理部SE001内のセッション管理情報のレコードのうち、ステップS1604において生成したDBインデックスに対応するレコードを削除する。続いて、ダウンロード/変換サーバVM004が、印刷処理が正常に終了したことを示す情報を印刷指示受信サーバVM001に返却して(ステップS1609)、処理を終了する。
【0124】
図11を参照して説明した処理によって、印刷完了要求を受けたダウンロード/変換サーバは、変換後データを削除するとともに、印刷完了要求が含むセッションIDに対応するセッション管理情報のレコードを削除する。
【0125】
以上説明したように、本実施形態の情報処理システムは、複数の処理要求装置と複数の処理実行装置とを備える。第1の処理要求装置は第1の処理要求を行い、第2の処理要求装置は第2の処理要求を行う。そして、第1の処理を割り振られた処理実行装置は、第1の処理の実行後、第1の処理要求が含むセッションIDと第1の処理の結果に関する情報との対応情報をセッション管理情報として記憶する。また、第2の処理を割り振られた処理実行装置は、セッション管理情報から第2の処理要求が含むセッションIDに対応する第1の処理の結果に関する情報を取得し、取得した情報に基づいて、第2の処理を実行する。これにより、第1の処理を実行した処理実行装置と異なる処理実行装置に第2の処理要求が割り振られた場合でも、当該処理実行装置が、セッション管理情報に基づいて、当該第2の処理を実行することができる。従って、本実施形態の情報処理システムによれば、複数の処理要求装置と複数の処理実行装置との間での、互いに関連する処理に対応するセッションを確立しつつ、処理要求装置による処理の要求と処理実行装置による処理の実行に関する負荷を分散できる。
【0126】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【0127】
SVC001 印刷データ受信サービス
SVC002 印刷ジョブ受付サービス
SVC003 印刷データ変換サービス
SVC004 印刷データ保存サービス
SVC005 認証サービス
PRT001 プリンタ

【特許請求の範囲】
【請求項1】
第1の処理の実行を指示する第1の処理要求を行う第1の処理要求装置と、前記第1の処理の結果に関連する第2の処理の実行を指示する第2の処理要求を行う第2の処理要求装置と、
前記第1または第2の処理要求に応じた処理を実行する第1、第2の処理実行装置と、ネットワークを介して、前記第1または第2の処理要求装置から処理要求を受け付け、前記第1、第2の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を前記第1または第2の処理実行装置に渡す処理要求分配装置とを備え、
前記処理要求は、前記処理要求装置と前記処理実行装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションIDを含み、
前記第1の処理要求を受けて前記第1の処理を実行した処理実行装置は、前記第1の処理の実行結果に関する情報と前記第1の処理要求が含む前記セッションIDとの対応情報をセッション管理情報として記憶手段に記憶し、
前記第2の処理要求を受けた前記処理実行装置は、前記セッション管理情報から前記第2の処理要求が含むセッションIDに対応する前記第1の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第2の処理を実行する
ことを特徴とする情報処理システム。
【請求項2】
前記第1、第2の処理要求手段に指示して前記処理要求を行わせる制御装置を備え、
前記制御装置は、前記第1の処理要求装置に前記第1の処理要求を行わせる前に、前記処理要求分配装置を介して、前記処理実行装置に対して、前記セッションIDを含む、認証情報の発行要求を行い、
前記認証情報の発行要求を受けた前記処理実行装置は、認証情報を発行するとともに、前記認証情報の発行要求が含むセッションIDに対応する前記セッション管理情報のレコードを作成し、
前記第1の処理を実行した処理実行装置は、前記第1の処理の実行結果に関する情報を、前記第1の処理要求が含むセッションIDに対応する前記セッション管理情報のレコードに格納する
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記制御装置は、さらに、
前記第2の処理の実行結果に関する情報を取得して、該第2の処理の実行結果に関するに基づく第3の処理を実行する第3の処理実行装置に送信し、
前記第3の処理実行装置から前記第3の処理の実行の完了を示す通知を受けたことを契機として、前記処理要求分配装置を介して、前記処理実行装置に対して、前記セッションIDを含む、前記第2の処理の実行結果と前記セッション管理情報のレコードとの削除要求を行い、
前記削除要求を受けた前記処理実行装置は、前記第2の処理の実行結果を削除するとともに、該削除要求が含むセッションIDに対応する前記セッション管理情報のレコードを削除する
ことを特徴とする請求項2に記載の情報処理システム。
【請求項4】
前記制御装置は、印刷ジョブを受け付け、
前記第1の処理は、前記印刷ジョブに対応する印刷データを取得する処理であり、
前記第2の処理は、前記取得された印刷データのデータ形式を変換する処理であり、
前記セッションIDは、前記印刷ジョブを識別する第1の識別情報を含む
ことを特徴とする請求項2または請求項3に記載の情報処理システム。
【請求項5】
前記第3の処理実行装置は、画像形成装置であり、
前記第3の処理は、前記データ形式が変換された印刷データを印刷出力する処理であり、
前記セッションIDは、前記印刷ジョブを識別する第1の識別情報と、該印刷ジョブに対応する印刷データを印刷出力する画像形成装置を識別する第2の識別情報とを含む
ことを特徴とする請求項4に記載の情報処理システム。
【請求項6】
前記処理要求分配装置は、前記第1または第2の処理要求装置のうち、負荷が最も軽い処理要求装置を決定し、負荷が最も軽いと決定された処理要求装置に前記処理要求を渡す
ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。
【請求項7】
前記処理要求分配装置は、ラウンドロビン負荷分散方式に従って、前記第1、第2の処理要求装置に対して順番に前記処理要求を渡す
ことを特徴とする請求項1乃至5のいずれか1項に記載の情報処理システム。
【請求項8】
第1の処理要求装置が、第1の処理の実行を指示する第1の処理要求を行う工程と、
第2の処理要求装置が、前記第1の処理の結果に関連する第2の処理の実行を指示する工程と、
処理要求分配装置が、ネットワークを介して、前記第1または第2の処理要求装置から処理要求を受け付け、前記第1、第2の処理実行装置の各々の負荷に応じて、前記受け付けた処理要求を第1または第2の処理実行装置に渡す工程と、
前記第1、第2の処理実行装置が、前記処理要求分配装置から受けた処理要求に応じた処理を実行する工程とを有し、
前記処理要求は、前記処理要求装置と前記処理実行装置との間の通信を識別する識別情報であって、互いに関連する処理に対応する通信について一意の値をとるセッションIDを含み、
前記第1の処理要求を受けた前記処理実行装置が、前記第1の処理を実行するとともに、前記第1の処理の実行結果に関する情報と前記第1の処理要求が含む前記セッションIDとの対応情報をセッション管理情報として記憶手段に記憶する工程と、
前記第2の処理要求を受けた前記処理実行装置が、前記セッション管理情報から前記第2の処理要求が含むセッションIDに対応する前記第1の処理の実行結果に関する情報を取得し、取得した情報に基づいて、前記第2の処理を実行する工程とを有する
ことを特徴とする情報処理方法。
【請求項9】
請求項8に記載の情報処理方法をコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2013−61926(P2013−61926A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−252200(P2011−252200)
【出願日】平成23年11月18日(2011.11.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】