説明

サーバ装置、情報処理装置、サービス処理装置、ネットワークシステム、ジョブ処理方法及びプログラム

【課題】 情報処理装置と各サービス処理装置が連携して実行すべきクライアントとサービスとの依存性を低下させることができる。
【解決手段】 情報処理装置から要求されるジョブに従い、当該ジョブを連携して処理するサービス処理装置を管理するサーバ装置181のRSV320は、記憶手段に記憶された連携サービス情報に従いPC130が連携サービスを要求すべき情報処理装置の所在情報と連携処理を示すセッション情報と、サービス処理の進捗状態を示すオーダ情報を含むメッセージ322を生成する。そして、RSV320が生成されるメッセージ331を前記情報処理装置に指示する。そして、PC130から連携処理情報に対する応答情報を取得する。さらに、PC130から取得する応答情報に従い、RSV320が生成する次のメッセージ335をPC133に指示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ装置、情報処理装置、サービス処理装置とが連携してサービス処理を実行するネットワークシステム、ジョブ処理方法及びプログラムに関する。
【背景技術】
【0002】
従来の連携サービスシステムには、サービス間をジョブが直接送受信されるシステムがある(例えば、特許文献1参照)。これは、クライアントがジョブを作成する際に、連携サービスの利用手順、利用手続きをジョブに入れ、受信したサーバがそのジョブの利用手続きにしたがって処理を行い、ジョブの利用手順にしたがって次のサーバへジョブを引き渡すものである。これによってサービスは次のサービスについての詳細は認識せずとも良く、ジョブの内容にしたがって次のサービスへ処理要求を行えばよい。したがって、サービス・サービス間の依存性を低くすることができる。
連携システムにおいて、例えばサービスの利用手順の変更、サービスのURLの変更された場合を想定する。例えばサービスを完了するまでの利用手順が変更されると、そのサービスに対して前段に位置するサービス、つまり変更されるサービスに対して処理を要求するサービスは、前記変更された新しい利用手順で要求を行う必要がある。つまりある1つのサービスの利用手順を変更する場合、そのサービスを使用した連携サービスを提供するためには、連携に関連した別のサービスも合わせて変更されなくてはならない。
【0003】
同様にある1つのサービスのURLが変更されれば、連携に関連した別のサービスも前記変更後のURLを認識するように変更しなければならない。このようにサービス・サービス間の依存性が大きいと、ある1つのサービスの変更によって他のサービスの変更を余儀なくされることになり、変更工数の増加、変更時におけるシステム全体の停止などによる稼働率の低下、を招くことになる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−249290号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来例では、クライアントはあるサービスの要求を行う際にそれが連携サービスであることを認識し、どのような順番で行えばサービスの提供を受けることができるのかを把握している必要がある。例えばサービスAというものがあり、それはサービス1の実行結果をふまえてサービス2を実行し、次にそのサービス2の実行結果をふまえてサービス3を実行し、その結果を受け取ることにより実現される、という例を考える。
【0006】
この場合、クライアントはまずサービス1、サービス2、サービス3を使用するという認識が必要であり、またこれらの実行順序を把握していなければサービスAの要求を作成することはできない。また、サービス2を提供するサーバのURLが変更になった場合や、同じサービス2を提供するサーバが複数ある場合に負荷状況や稼動状況などによって最適なサーバを選択する場合には、クライアントはそれらの情報を考慮に入れて要求を作成しなくてはならない。つまりクライアント・サービス間の依存性が大きい、という課題があった。
【0007】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、情報処理装置と各サービス処理装置が連携して実行すべきクライアントとサービスとの依存性を低下させることができる。
【課題を解決するための手段】
【0008】
上記目的を達成する本発明のサーバ装置は以下に示す構成を備える。
情報処理装置から要求されるジョブに従い、当該ジョブを連携して処理するサービス処理装置を管理するサーバ装置であって、前記ジョブ処理要求で特定される連携サービス処理を実行すべき複数のサービス処理装置の所在情報を含む連携サービス情報を記憶する記憶手段と、前記記憶手段に記憶された連携サービス情報に従い前記情報処理装置が連携サービスを要求すべきサービス処理装置の所在情報と連携処理を示すセッション情報と、サービス処理の進捗状態を示すオーダ情報を含む連携処理情報を生成する生成手段と、前記生成手段により生成される連携処理情報を前記情報処理装置に送信し、該情報処理装置に処理を指示する指示手段と、前記情報処理装置から前記連携処理情報に対する応答情報を取得する取得手段とを備え、前記指示手段は、前記取得手段が取得する応答情報に従い次に処理すべき処理を特定し、前記情報処理装置に該特定した処理を指示する。
【0009】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
ジョブを実行するために連携すべきサービス処理を実行するサービス処理装置を管理するサーバ装置と通信する情報処理装置であって、前記サーバ装置から指示される連携処理情報に従い特定されるサービス処理装置に対してサービス処理を要求する要求手段と、前記サービス処理装置から前記サービス処理に対する前記連携処理情報を含む応答情報を前記サービス処理装置から受信する受信手段と、前記受信手段が受信した前記連携処理情報を含む応答情報を前記サーバ装置に通知する通知手段とを備え、前記要求手段は、前記サーバ装置から指示される次の連携処理情報に従い前記ジョブ処理要求に対して連携してサービス処理を実行する次のサービス処理装置へ接続して連携サービスを要求することを特徴とする。
【0010】
上記目的を達成する本発明のサービス処理装置は以下に示す構成を備える。
サーバ装置で特定されて指示される連携処理情報に従う情報処理装置からの依頼に応じて連携すべきサービス処理を実行するサービス処理装置であって、前記情報処理装置から依頼されるサービス処理を実行する実行手段と、前記実行手段によるサービス処理実行後、前記情報処理装置から要求されるサービス処理に対して前記サーバ装置に通知すべき連携処理情報を含む応答情報を生成する生成手段と、前記生成手段が生成した前記連携処理情報を含む応答情報を前記情報処理装置に通知する通知手段と、を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、情報処理装置と各サービス処理装置が連携して実行すべきクライアントとサービスとの依存性を低下させることができる。
【図面の簡単な説明】
【0012】
【図1】本実施形態を示すネットワークシステムの一例を示す図である。
【図2】図1に示した情報処理装置のハードウエア構成を説明するブロック図である。
【図3】本実施形態を示すプリントジョブ処理シーケンスの一例を示す図である。
【図4】サーバ装置のデータ処理手順の一例を示すフローチャートである。
【図5】情報処理装置のデータ処理手順の一例を示すフローチャートである。
【図6】サーバ装置で処理されるセッション情報の一例を示す図である。
【発明を実施するための形態】
【0013】
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
図1は、本実施形態を示すネットワークシステムの一例を示す図である。本実施形態では、ネットワークに接続される複数の情報処理装置で実行されるサービス処理を連携して一連のデータ処理を実行するサービス処理システムの例である。具体的には、1つのジョブを実行するためにクライアントとしての情報処理装置(PC)が複数のサービス処理装置におけるサービス処理を連携するために、ルーティングサーバとして機能するサーバ装置がネットワーク上に設けてなるネットワークシステムである。ここで、サーバ装置は、サービス要求元のPCと、当該PCから要求されるサービス処理を実行する複数のPC(サービス処理装置)との連携処理状況並びに、1つのジョブ処理を複数のPCで連携するためのサービス処理実行先等を一元管理する。これにより、クライアントとしての情報処理装置と各サービス処理装置が連携して実行すべき各サービスとの依存性を低下させることが可能となる。
【0014】
以下、サーバ装置181がプッシュプリントジョブをサービス要求元のPC130から受付て、サーバ装置181からメッセージとして指示される連携処理情報に従いPC130がサービス処理装置に接続してサービス処理を実行する実施形態について詳述する。なお、連携処理情報については、図3,図4において詳述する。
図1において、100はデータ処理システムで、110は画像処理装置(MFP)で、コピー、プリント、センド、ボックス、プルプリントなどを機能として持つ。PC120は1つ以上のサービスを提供するサーバ装置、130はサービス処理を要求するクライアント装置(PC)であり、それぞれLAN108に接続されている。
【0015】
109はファイアウォールであり、LAN108を外部のインターネット199に接続する。また、LAN108はファイアウォール109、インターネット199を介して更に別のネットワーク170、180に接続される。ネットワーク170、180の内部構成は、ネットワーク100と同様な構成である。
ネットワーク170には、情報処理装置(PC)171、172がLAN178に接続されている。同様に、ネットワーク180には、特定のサービス処理を実行するサーバとして機能するサーバ装置181,情報処理装置(PC)182、及び情報処理装置(PC)183、184がLAN188に接続されている。なお、外部のインターネットとはファイアウォール179、189によって接続される。本実施形態では、あるサービス処理を提供する情報処理装置、及びそれら複数のサービス処理を使用した連携サービスを一元管理するルーティングサーバとして機能するサーバ装置がある。以後、一例としてルーティングサーバをPC181、サービス処理を実行する情報処理装置をPC120、171、172、182、183、184として説明する。サービス要求元の情報処理装置をPC130とする。
【0016】
このように構成されたネットワークシステムにおいて、サーバ装置181は、PC130からの1つのジョブ要求に従い複数のサービス処理を連携すべきサービス処理装置を特定する機能を備える。さらに、サーバ装置181は、特定された各サービス処理装置とサービス要求元のPCとの間で連携されるサービス処理の実行状況を図3に示すようなシーケンス例に従い一元管理する機能を備える。そして、サーバ装置181は、サービス要求元の情報処理装置130が管理すべきサービス処理を実行するサービス処理装置を管理する負担を軽減している。したがって、サービス要求元の情報処理装置130は、ジョブ処理要求開始前に、何らサービス処理を実行するサービス処理装置の所在を示す情報や1つのジョブを処理するためのサービス処理順序を意識する必要がない。つまり、ルーティングサーバとして機能するサーバ装置は、サービス要求元のPC130から要求される1つのジョブを実行する際に、システム状況を踏まえて柔軟なシステムを動的に組み立てることが可能に構成されている。
【0017】
これにより、サービス処理を実行するサービス処理装置のアクセス先が変更されてもルーティングサーバが自在に対応するために、PC130側はアクセス先の変更、サービスの順序、代替サービスの選択等を意識する必要がなくなる。つまり、クライアントとしての情報処理装置と各サービス処理装置が連携して実行すべき各サービスとの依存性を低下させることが可能となる。
【0018】
図2は、図1に示した情報処理装置のハードウエア構成を説明するブロック図である。なお、図1におけるPC120、130、171、172、181、182、183、184の内部構成はこのようになっている。以下、上記PC120、130、171、172、181、182、183、184をPC200として説明する。なお、本実施形態において、PC182、120は、サーバ装置で特定されて指示される連携処理情報に従うPC130からの依頼に応じて連携すべきサービス処理を実行するサービス処理装置として用いられる。
図2において、PC200は、ROM202もしくはハードディスク(HD)211に記憶された、あるいはフレキシブルディスクドライブ(FD)212より供給される各種ソフトウエアを実行するCPU201を備える。そして、CPU201は、システムバス204に接続される各機器を総括的に制御する。
【0019】
203はRAMで、CPU201の主メモリ、ワークエリア等として機能する。205はキーボードコントローラ(KBC)で、キーボード(KB)209や不図示のポインティングデバイス等からの指示入力を制御する。
206はCRTコントローラ(CRTC)で、CRTディスプレイ(CRT)210の表示を制御する。207はディスクコントローラ(DKC)で、ブートプログラム、本発明の動作を行うプログラム、種々のアプリケーション、編集ファイル、ならびにユーザファイル等を記憶するハードディスク(HD)211とのアクセスを制御する。また、DKC207は、フレキシブルディスクドライブ(FD)212とのアクセスも制御する。
【0020】
208はネットワークインタフェースカード(NIC)で、LAN220を介して、ネットワークプリンタ、他のネットワーク機器あるいは他のPCと双方向にデータをやりとりする。なお、本実施形態においては、LAN220は図1におけるLAN108、178、188と同じものである。
以下、従来のネットワークシステムで起こり得る現状の問題、特に、サービス・サービス間の依存性が大きい場合の問題について例を挙げて説明する。サービス・サービス間の依存性が大きい連携システムにおいて、以下のような変更がある1つのサービスについて行われたとする。
【0021】
例えばサービスの利用手順の変更、サービスのURLの変更である。ここで、連携システムにおいて、利用手順が変更されると、そのサービスに対して前段に位置するサービス、つまり変更されるサービスに対して処理を要求するサービスは、前記変更された新しい利用手順で要求を行う必要がある。つまりある1つのサービスの利用手順を変更する場合、そのサービスを使用した連携サービスを提供するためには、連携に関連した別のサービスも合わせて変更されなくてはならない。
同様にある1つのサービスのURLが変更されれば、連携に関連した別のサービスも前記変更後のURLを認識するように変更しなければならない。このようにサービス・サービス間の依存性が大きいと、ある1つのサービスの変更によって他のサービスの変更を余儀なくされることになり、変更工数の増加、変更時におけるシステム全体の停止などによる稼働率の低下、を招くことになる。
【0022】
そこで、本実施形態では上記課題を解決すべく、ネットワークシステムにおいてルーティングサービスをサーバ装置181が実行する。
ここで本発明にて実現する連携サービス処理の例として、ドキュメントのプッシュプリントを行う連携サービス処理について説明する。このプッシュプリントは次の3つサービスを、次のような順番で構成されるものとする。したがって、連携サービス処理がさらに多くのサービス処理装置と連携するような場合もあり、サービスの数が「3」である場合に限定されるものではない。ここで、プッシュプリントサービスの場合、第1のサービス処理が指定したドキュメントを指定した場所へダウンロードするダウンロードサービスである。また、プッシュプリントサービスの場合、第2のサービス処理が指定したドキュメントを印刷データに変換する変換サービスである。さらに、プッシュプリントサービスの場合、第3のサービス処理が、指定した印刷データを指定したプリンタへ送信するディストリビュートサービスである。以降、前記ダウンロードサービスと、変換サービスは図1のPC182が受け持ち、ディストリビュートサービスはPC120が受け持つものとして説明する。
【0023】
また、これらの第1〜第3のサービス処理を実現するプログラムは、各PCを構成するハードウエアとしてのROM202もしくはハードディスク(HD)211、あるいはフレキシブルディスクドライブ(FD)212に記憶されている。そして、各PCのCPU201がこれらのメモリから読み出す制御プログラムをRAMにロードして実行することで各サービス処理が実行される。なお、各サービス処理の実行順序は、ルーティングサーバとして機能するPC181により制御される。なお、この処理の詳細については図3を参照して詳述する。
【0024】
また、ルーティングサービスを提供するPC181もまたルーティングサービスを実現するプログラムがROM202もしくはハードディスク(HD)211、あるいはフレキシブルディスクドライブ(FD)212に記憶されている。そして、PC181のCPU201がRAMにロードして実行することでルーティングサービスが実現される。
【0025】
同様にクライアントとして機能するPC130もプッシュプリントを要求するプログラムがROM202もしくはハードディスク(HD)211、あるいはフレキシブルディスクドライブ(FD)212に記憶されている。そして、PC130のCPU201がRAMに制御プログラムをロードして実行することで処理が実現される。
クライアントとしてのPC130とサーバとして機能するPC181、PC182、PC120との間の通信は、それぞれNIC208を使用してLAN220を介して行われる。ディストリビュートサーバとして機能するPC120は、ネットワーク108に接続された画像処理装置110とも通信も行うが、この通信も同様にNIC208を使用してLAN220を介して行われる。なお、画像処理装置110が図示しないネットワーク上に接続されたシステムとして本システムが構築されていてもよい。また、画像処理装置110が複数台同一のネットワーク上に接続されていてもよい。つまり、プリントジョブを実行させる際に、各ジョブ処理状況に従い、プリントジョブを分割して処理するようなシステムであってもよい。
【0026】
図3は、本実施形態を示すネットワークシステムのプリントジョブ処理シーケンスの一例を示す図である。本例は、連携サービスによるジョブ処理(プッシュプリント処理)に対応するシーケンス例である。以下の説明では、PC130のCPU201による処理の主体をクライアント310として、PC181のCPU201による処理であって、ルーティングサービスを提供する処理の主体をルーティングサービス320として説明する。同様に、PC182のCPU201による処理であって、ダウンロードサービス処理と、変換サービス処理の主体をダウンロードサービス380、変換サービス382として説明する。同様に、PC120のCPU201による処理であって、ディストリビュートサービス処理の主体をディストリビュートサービス(DSV)384として説明する。ここで、プッシュプリントは、第1のサービス処理〜第3のサービス処理を連携し、さらにこれらとクライアント310との処理順序をルーティングサービス(RSV)320が制御する例を説明する。なお、クライアントとしてのPC130はブラウザ機能を実現可能に構成されている。
【0027】
なお、本実施形態においては、第1のサービス処理とはダウンロードサービス処理に対応し、第2のサービス処理とは変換サービス処理に対応し、第3のサービス処理とはディストリビュートサービス処理に対応する。また、本実施形態において、メッセージ332、336、340は、情報処理装置としてのPC130からサービス処理装置であるPC182,120に通知される連携処理情報であって、例えばURI481等で構成される。本実施形態では、連携処理情報をURIのクエリパラメートに設定する例である。連携情報は、PC130がサービス処理装置に接続するための所在情報と連携処理を示すセッション情報とを含む構成としている。ここで、セッション情報は、セッションIDと、サービス処理の進捗情報(サービス処理順序を特定する情報)としてのオーダ情報を含む構成とし、オーダ情報は、RSV320を実行するサーバ装置181により順次構成される。
【0028】
図3において、クライアント310がプッシュプリントをRSV320へ要求する。ここで、プッシュプリントはダウンロードサービス(DWSV)380、変換サービス(CSV)382、ディストリビュートサービス(DSV)384の順序で処理を実行する連携サービスによって提供される。これを図1に示したネットワークシステム例にあてはめると、このクライアント310はPC130であり、RSV320はPC181が提供することとなる。399はメッセージで、連携サービス処理を実行すべき複数の情報処理装置の所在情報を含む連携サービス情報として用いられ、サーバ装置181のメモリ装置に更新可能に記憶されている。つまり、PC130からのジョブ要求が特定されると、サーバ装置181は、メモリ装置から連携サービス情報を取得して当該ジョブ要求を連携すべき複数のサービス処理装置の処理経路と処理順序とを決定する。本例は、プッシュプリントジョブ例であるので、連携サービス情報に従い3つのサービス処理を実行するサービス処理装置が特定される例である。
【0029】
同様にDWSV380、CSV382は図1のPC182、DSV384はPC120がそれぞれ提供する。
まず、クライアント310は、ユーザ301の指示またはプログラムからの要求により、RSV320にメッセージ330を送信しプッシュプリントを要求する。メッセージ330を受信したRSV320は、処理321にてプッシュプリントの連携サービス情報を検索し取得する。連携サービス情報は、1つ以上のサービス処理からなる連携サービス処理の詳細を定義したものである。
また、RSV320は処理322で、クライアント310からのメッセージ330にて要求を受けたサービスを提供するためにセッション情報を生成し、処理321で取得した連携サービス情報をセッション情報の一部として保存する。
【0030】
ここで、セッション情報は、自身を識別するセッションIDを持ち、セッションに関連したデータを管理するための情報で、ルーティングサービスによって保存、取り出し可能であれば良い。ここで、セッション情報の保存場所の一例として、ルーティングサービスを提供するサーバ装置181が備えるメモリ装置内などである。
なお、RSV320が作成するセッション情報には、クライアント310から要求する内容で確定されるサービス処理を要求すべきサービス処理装置の所在情報(例えばURL)ばかりでなく、サービスの組み合わせ順序も含まれる。この際、要求元であるクライアント310は、サービス処理を要求すべき所在情報(例えばURL)の変更だけではなく、サービスの組み合わせ順序の把握をせずともサービス処理装置にサービス処理を要求できる。
【0031】
例えばサービスAの構成がサービス1、2、3から成り立っていることや、当該サービスがサービス1→2→3の順序で行う必要があることや、故障などによる代替サービスの選択などを要求元のクライアント310は意識する必要がなくなる。
【0032】
次に、RSV320は、クライアント310に対してメッセージ330の応答として、メッセージ331を送信する。その内容は、クライアント310に対してDWSV380へのリダイレクト指示であり、また、処理322で生成したセッションを識別するセッションIDと、order情報を合わせて渡している。
ここで、サービス処理の進捗情報として用いられるorder情報とは「0」から始まる数値で連携サービスの順序を表すものである。メッセージ331ではorderの値は「0」であり、リダイレクト先のDWSV380は連携サービスの1番目であることを示す。
このようにしてRSV320からメッセージ331を受信したクライアント310は、そのリダイレクトの指示内容にしたがってDWSV380へメッセージ332を送信する。その際、メッセージ331で受信したセッションIDとorder=0を情報として合わせて渡す。クライアント310からメッセージ332を受信したDWSV380は、処理381を実行する。処理381の動作の具体的な実施形は、図1に示したネットワークシステムを例として説明すると以下のようになる。
【0033】
〔処理381の内容〕
サーバ装置182は、PC130上と通信を行い、PC130にダウンロードを行うドキュメントとドキュメントの記憶領域を指定させる画面を表示させ、ユーザの操作を待たせる。ユーザの指示によって、PC130はPC171内のドキュメントと記憶領域を指定する。PC130により指定された情報により、PC182はPC130により指定されたPC171内のドキュメントを指定された場所へダウンロードする。そして、DWSV380は処理381を実行後(サービス処理実行後)、メッセージ333をPC130に応答する。ここで、DWSV380がクライアント310(PC130)に応答する内容は、RSV320へアクセスするリダイレクト指示であり、メッセージ332で受信したセッションIDとorder=0も合わせてクライアント310へ渡している。
【0034】
メッセージ333を受信したクライアント310は、その指示にしたがってRSV320へメッセージ334(応答情報)を送信する。メッセージ334には、ダウンロードサービス380からのメッセージ333で受信したメッセージIDとorder=0の情報も記載されている。
クライアント310からメッセージ334を受信したRSV320は、受信したセッションIDから保存してあるセッション情報の連携サービス情報を取り出す。この連携サービス情報とメッセージ334のorder情報の値が「0」であるから、次のサービスは2番目に位置しているCSV382であることが分かる。
【0035】
そこで、RSV320は、クライアント310に対してCSV382へのリダイレクト指示であるメッセージ335を作成し、メッセージ334の応答としてクライアント310に対してメッセージ335を送信する。メッセージ335は、メッセージ334に記載されていたセッションIDを持ち、order情報は更新してその値を「1」としている。つまり、連携処理が1つ進行したことを示している。
RSV320からメッセージ335を受信したクライアント310は、その内容にしたがってCSV382へメッセージ336を送信する。メッセージ336には、メッセージ335に記載されていたセッションIDとorder=1の情報を含んでいる。クライアント310からメッセージ336を受信したCSV382は、処理383を実行する。処理383の動作の具体的な実施形は、図1に示したネットワークシステムを例として説明すると以下のようになる。
【0036】
〔処理383の内容〕
サーバ装置182は、PC130上と通信を行い、PC130に変換を行うドキュメントと、変換した印刷データを保存する記憶領域を指定させる画面を表示させ、ユーザの操作を待たせる。
そして、ユーザの指示によって、クライアントPC130は変換するドキュメントと印刷データを保存する記憶領域を指定する。これらの情報により、サーバ装置182は指定されたドキュメントを印刷データに変換し、指定された領域へ保存する。
CSV382は処理383を実行後、メッセージ337をクライアント310へ応答する。その内容はRSV320へアクセスするリダイレクト指示であり、メッセージ336で受信したセッションIDとorder=1も合わせてクライアント310へ渡している。
【0037】
CSV382からメッセージ337を受信したクライアント310は、その指示にしたがってRSV320へメッセージ338を送信する。メッセージ338には、メッセージ337で受信したメッセージIDとorder=1の情報も記載されている。クライアント310からメッセージ338を受信したRSV320は、受信したセッションIDから保存してあるセッション情報の連携サービス情報を取り出す。
この連携サービス情報とメッセージ338のorder情報の値が「1」であるから、次に要求するべきサービスは3番目に位置しているDSV384であることが分かる。
そこで、RSV320は、クライアント310に対してDSV384へのリダイレクト指示であるメッセージ339を作成し、メッセージ338の応答として送信する。メッセージ339は、メッセージ338に記載されていたセッションIDを持ち、order情報は更新してその値を今度は「2」としている。
【0038】
RSV320からメッセージ339を受信したクライアント310は、その内容にしたがってDSV384へメッセージ340を送信する。メッセージ340には、メッセージ339に記載されていたセッションIDとorder=2の情報を含んでいる。クライアント310からメッセージ340を受信したDSV384は、処理385を実行する。処理385の動作の具体的な実施形は、図1に示したネットワークシステムを例として説明すると以下のようになる。
【0039】
〔処理385の内容〕
PC120は、PC130上と通信を行い、PC130上に印刷を実行するプリンタと印刷データを指定させる画面を表示させ、ユーザの操作を待つ。
ユーザの操作により、クライアントPC130はMFP110をプリンタとして指定し、CSV382で得られた印刷データを指定する。これら指定された情報により、PC120は指定されたプリンタ(MFP110)へ指定した印刷データを送信し、印刷を実行する。
次に、DSV384は処理385実行後、メッセージ341をクライアント310へ応答として送信する。その内容はRSV320へ再度アクセスするリダイレクト指示であり、メッセージ340で受信したセッションIDとorder=2も合わせてクライアント310へ渡している。
【0040】
DSV384からメッセージ341を受信したクライアント310は、その指示にしたがってRSV320へメッセージ342を送信する。メッセージ342には、メッセージ341で受信したメッセージIDとorder=2の情報も記載されている。メッセージ342を受信したRSV320は、受信したセッションIDから保存してあるセッション情報の連携サービス情報を取り出す。
【0041】
図3の例では連携して提供するサービスの数は「3」であるため、メッセージ342のorder情報の値が2であることから、RSV320は連携サービスが終了したことが分かる。そこで、RSV320は、完了通知としてメッセージ343を作成し、クライアント310へ送信し、セッションIDで識別されるセッション情報を削除する(処理323)。
そして、RSV320からメッセージ343を受信したクライアント310は、完了時の処理として完了表示を行う(処理311)
【0042】
図4は、本実施形態を示すサーバ装置のデータ処理手順の一例を示すフローチャートである。本例は、図3のRSV320において、クライアント310からの要求を受信した際に行われる処理に対応する。ここで、クライアントの要求とは、図3の例で言えば、メッセージ330、334、338、342が該当する。図4では、リダイレクト指示にクエリパラメータを使用した、プッシュプリント〔pushprint〕の連携サービスを実施形の例としてあげている。
クライアント310からRSV320へ最初に連携サービスを要求するメッセージ330は、以後サービス開始要求メッセージと呼ぶ。
また、連携サービスの1つの処理が終了し次のサービスへのリダイレクト指示を要求するメッセージ334、338、342を以後、サービス終了メッセージと呼ぶ。なお、図4のフローチャートに示す各処理は、PC200のCPU201がHDD211に記憶された図3に示した制御プログラムを実行することにより実現される。なお、制御主体は、図3に示した制御プログラムとして以下の処理を説明する。
【0043】
RSV320は、S401でクライアント310からのメッセージを受信すると、その内容によって処理を分岐させる。図3のクライアント310から送信されるメッセージ330(サービス開始要求メッセージ)はURI(Uniform Resource Identifier)を持つ。図4では連携処理情報の一例として、クエリパラメータにsrv=pushprintが記載されている(URI480)。これは、プッシュプリントの開始を要求するサービス開始要求メッセージであることを示している。
S401にてサービス開始要求メッセージを受信したRSV320は、S420へ進み、複数ある連携サービス情報のうち要求されたプッシュプリントの連携サービス情報を取り出す。その後、RSV320はセッションを生成し、そのセッション情報をメモリ上に保存する。
【0044】
具体的には、RSV320は、セッション情報を作成し、生成したセッションを識別するIDを発行し(S421)、セッション情報としてメモリ上に保存する(S422)。次に、S423では取得した連携サービス情報から、1番目のサービスを提供するサーバへリダイレクト先を指示する応答(メッセージ331)をクライアント310へ送信する。その際のリダイレクト先のURIの一例が、URI481である。URI481は所在情報の一例であって、セッション情報とオーダ情報とをクエリパラメータで指示した例である。
これは、http://ttt.ttt.ttt/dwld.aspxに対して処理を要求し、この連携サービスのセッションはセッションIDが「12345」であることを示している。また、この処理のorder情報は「0」、つまり連携サービスの1番目の処理であることを示している。S423が終了後、本処理を終了する。
【0045】
図3のクライアント310から送信されるメッセージ334、338、342(各サービス処理に対するサービス終了メッセージ)のそれぞれはURIを持つ。
図4では一例として、クエリパラメータにsid=12345、およびorder=nが記載されている(URI482)。これは、セッションID=12345における連携処理のうちorder=nのサービスが終了したということを通知するサービス終了メッセージであることを示している。ただし、nの値はメッセージ334、338、342で異なり、図3の例としてはそれぞれ0、1、2となる。ここで、order=nは、サービス処理の進捗状態を示す情報として用いられる。
S401にてサービス終了メッセージを受信したRSV320は、S430へ進む。S430で、RSV320は、セッションIDよってメモリに保持されているセッション情報を読み出す。図4に示すURI482の例では、セッションID=12345のセッション情報を読み出すことになる。
【0046】
次に、RSV320は、セッション情報とorder情報から連携する次のサービス処理の有無を判断する(S431)。次の連携サービスが無ければサービス処理は終了しているとRSV320は判断し、S440へ進む。
S440では、RSV320はクライアント310へ完了通知を行い、次に、S441にて、RSV320はセッション情報を削除し、本処理を終了する。
一方、S431で、次に実行するサービス処理があるとRSV320が判断した場合、S432へ進む。S432で、RSV320は次のサービス処理のためにセッション情報を更新する。そして、S433で、RSV320はorderの値をn+1、つまりn+2番目のサーバへのリダイレクト指示を示すメッセージ335をクライアント310へ送信して、本処理を終了する。
【0047】
なお、図4に示すURI483は、RSV320からクライアント310に送信されるメッセージ335で指示されるリダイレクトの内容の一例である。これは、http://ttt.ttt.ttt/conv.aspxに対して処理を要求し、この連携サービスのセッションはセッションIDが「12345」であることを示している。つまり、本メッセージ335は、クライアント310に対して、変換サービス382へのリダイレクトを指示している。
【0048】
また、この処理のorder情報は「1」、つまり連携サービスの2番目の処理であることを示している。同様にURI484は、RSV320からクライアント310に送信されるメッセージ339で指示されるリダイレクトの内容の一例である。
これは、http://uuu.uuu.uuu/push.aspxに対して処理を要求し、この連携サービスのセッションはセッションIDが「12345」であることを示している。つまり、クライアント310に対して、DSV384へのリダイレクトを指示している。また、この処理のorder情報は「2」、つまり連携サービスの3番目の処理であることを示している。S433を終了後、本処理を終了する。
【0049】
S401にてRSV320がサービス開始要求メッセージまたはサービス終了メッセージ以外のメッセージを受信したと判断した場合は、RSV320は、S410へ進む。そして、S410で、RSV320はクライアント310から受信したメッセージに適したその他の処理を実行し、本処理を終了する。なお、S410の一例として、予期しないメッセージを受信した場合としてのエラー応答などがある。
【0050】
図5は、本実施形態を示す情報処理装置のデータ処理手順の一例を示すフローチャートである。本例は、図3の各DSV380、CSV382、DSV384における、クライアント310からの要求を受信した際に行われる処理例である。ここで、クライアント310からの要求とは、図3の例で言えば、メッセージ332、336、340が該当する。この図では図4と同様に、リダイレクト指示にクエリパラメータを使用したpushprintの連携サービスを実施形の例としてあげている。
また、連携サービスの1つとして処理を要求するメッセージ332、336、340を以後、サービス処理要求メッセージと呼ぶ。図5のフローチャートに示す各処理は、PC200のCPU201がHDD211に記憶された制御プログラムを実行することにより実現される。また、制御主体は、図3に示した制御プログラムとして以下の処理を説明する。
【0051】
S501で、RSV320は、クライアント310からのサービス処理要求メッセージを受信する。サービス処理要求メッセージはURIを持っている。図5に示す例では、図3のメッセージ332、336、340の例として、それぞれURI580、URI582、URI583を示してある。
ここで、URI580は、メッセージ332に含まれるURIであり、処理の実行を要求するサービスとして、http://ttt.ttt.ttt/dwld.aspxを指定している。また、クエリパラメータとしてsid=12345、およびorder=0が記載されている。
【0052】
これは、セッションID=12345における連携処理のうちorder=0のサービスの実行を要求することを示している。同様にURI582はメッセージ336に含まれるURIであり、処理の実行を要求するサービスとして、http://ttt.ttt.ttt/conv.aspxを指定している。
【0053】
また、クエリパラメータとしてsid=12345、およびorder=1が記載されている。これは、セッションID=12345における連携処理のうちorder=1のサービスの実行を要求することを示している。URI583はメッセージ340に含まれるURIであり、処理の実行を要求するサービスとして、http://uuu.uuu.uuu/push.aspxを指定している。
また、クエリパラメータとしてsid=12345、およびorder=2が記載されている。これは、セッションID=12345における連携処理のうちorder=2のサービスの実行を要求することを示している。
【0054】
次に、S502で、DSV380、CSV382、DSV384が、クライアント310から受信したメッセージの内容をチェックする。例えば、セッションIDの記載が無いなど、連携処理を継続できない内容であると判断した場合は、NGとして、S510へ進む。そして、S510でエラー処理を行い、本処理を終了する。
一方、S502で受信した、メッセージの内容がOKであるとDSV380、CSV382、DSV384が判断した場合は、S503へ進む。そして、S503で、クライアント310から要求された処理を実行する。
次に、S504で、DSV380、CSV382、DSV38はクライアント310に対して、RSV320へのリダイレクトを指示する応答を送信して、本処理を終了する。図5に示すURI581は、そのリダイレクト先URIの一例である。
【0055】
URI581ではクエリパラメータとしてsid=12345、およびorder=nが記載されている。これは、セッションID=12345における連携処理のうちorder=nのサービス処理が完了したことを示している。ただし、nの値はメッセージ333、337、341で異なり、図3の例としてはそれぞれn=0、1、2となる。
ここで、図3のシーケンスと合わせて説明すると、URI580を含むメッセージ332をS501にて受信したDSV380は、S503にてダウンロードサービスをクライアント310に対して提供する。その後、S504にて、n=0としたURI581を含むメッセージ333をクライアント310へ送信する。
【0056】
同様にURI582を含むメッセージ336を受信したCSV382は、S503にて変換サービスをクライアント310に対して提供する。その後、S504にて、n=1としたURI581を含むメッセージ337をクライアント310へ送信する。URI583を含むメッセージ340を受信したDSV384は、S503にてディストリビュートサービスをクライアント310に対して提供する。その後、S504にて、n=2としたURI581を含むメッセージ341をクライアント310へ送信する。
【0057】
本実施形態によれば、1つのジョブをサービス1〜3を複数のサービス処理装置で連携して処理する場合において、クライアントはまずサービス1、サービス2、サービス3を使用するという認識が必要なくなる。この際、クライアントとしての情報処理装置は、サービスの実行順序を把握する必要がなくなり、クライアント・サービス間の依存性を低くすることができる。逆に言うと、クライアントとしての情報処理装置は、要求するジョブを実行する際に、サービス処理をいずれのサービス処理装置で受ければよいか意識する必要がなくなる。
【0058】
また、サービス2を提供するサーバのURLが変更された場合、同じサービス2を提供するサーバが複数ある場合に負荷状況や稼動状況などによって最適なサーバを選択する場合もクライアントとしての情報処理装置は、それらの情報を意識する必要がなくなる。これにより、サービス・サービス間の依存性も低くすることができる。
【0059】
〔第2実施形態〕
上記第1実施形態では、図4および図5はクエリパラメータを使用してセッションIDおよびorderの情報をメッセージとして送信する実施形であるが、これはあくまで一例である。
別の方法として、HTTPのボディーにこれらの情報を記載し、URIにはクエリパラメータを使用しない方法をとっても良い。以下、その実施形態について説明する。
図6は、本実施形態を示すサーバ装置で処理されるセッション情報の一例を示す図である。本例は、図4のS421にて、RSV320が生成する、あるいはS432にて更新、S441にて削除が行われるセッション情報の一例である。本例はXMLによりセッション情報を記載している例である。
【0060】
図6において、行601はXML宣言である。行610は「セッション情報」であることを示すコメント行であり、以降にセッション情報が記載されている。行611はセッション情報の開始タグである。行612はセッションIDであり、処理421にて生成したIDである。行613は、本セッションが作成された日時情報を示している。
行614は、本セッションで実行される連携サービスの最大order値が記述されている。行615は、連携サービスにおいて現在実行されているサービスのorder値である。情報620は連携サービス情報であり、図3のメッセージ399から検索し図4の処理420で読み出したものの一例である。
【0061】
行621はコメント行である。行622は、連携サービス情報を一意に示す名前であり、この連携サービス情報の名前が"pushprint"であることを示している。行630は、連携サービスのリスト表示の開始タグである。
行631はorder=0のサービスであり、URLがhttp://ttt.ttt.ttt/dwld.aspxであることを示している。同様に行632は、order=1のサービスであり、URLがhttp://ttt.ttt.ttt/conv.aspxである。行633はorder=2のサービスであり、URLがhttp://uuu.uuu.uuu/push.aspxとなる。行634は、連携サービスのリスト表示の終了タグである。行616はセッション情報の終了タグである。
【0062】
〔第3実施形態〕
上記実施形態では、サービス処理としてプッシュプリントを一例として説明した。しかしながら、サービス処理としては、ネットワークの資源を利用した、例えばクラウドコンピューティングシステム環境において提供可能なサービス処理を複数の情報処理装置で連携するシステムではあれば本発明を提供可能である。
以上、詳細に説明した本発明を適用できる本実施形態により、アプリケーションで扱うデータが異なる場合でも、インストール時にデータ定義ファイルによる不要なデータの削除を伴った移行を行うことが出来る。
【0063】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン(コンピュータ)等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【0064】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【0065】
130 PC
182 サーバ装置

【特許請求の範囲】
【請求項1】
情報処理装置から要求されるジョブに従い、当該ジョブを連携して処理するサービス処理装置を管理するサーバ装置であって、
前記ジョブ処理要求で特定される連携サービス処理を実行すべき複数のサービス処理装置の所在情報を含む連携サービス情報を記憶する記憶手段と、
前記記憶手段に記憶された連携サービス情報に従い前記情報処理装置が連携サービスを要求すべきサービス処理装置の所在情報と連携処理を示すセッション情報と、サービス処理の進捗状態を示すオーダ情報を含む連携処理情報を生成する生成手段と、
前記生成手段により生成される連携処理情報を前記情報処理装置に送信し、該情報処理装置に処理を指示する指示手段と、
前記情報処理装置から前記連携処理情報に対する応答情報を取得する取得手段とを備え、
前記指示手段は、前記取得手段が取得する応答情報に従い次に処理すべき処理を特定し、前記情報処理装置に該特定した処理を指示することを特徴とするサーバ装置。
【請求項2】
前記生成手段は、前記情報処理装置から応答される前記連携処理情報に含まれるオーダ情報を更新することを特徴とする請求項2記載のサーバ装置。
【請求項3】
前記連携処理情報は、URIのクエリパラメータで指示することを特徴とする請求項1記載のサーバ装置。
【請求項4】
前記連携処理情報は、XMLで指示することを特徴とする請求項1記載のサーバ装置。
【請求項5】
ジョブを実行するために連携すべきサービス処理を実行するサービス処理装置を管理するサーバ装置と通信する情報処理装置であって、
前記サーバ装置から指示される連携処理情報に従い特定されるサービス処理装置に対してサービス処理を要求する要求手段と、
前記サービス処理装置から前記サービス処理に対する前記連携処理情報を含む応答情報を前記サービス処理装置から受信する受信手段と、
前記受信手段が受信した前記連携処理情報を含む応答情報を前記サーバ装置に通知する通知手段とを備え、
前記要求手段は、前記サーバ装置から指示される次の連携処理情報に従い前記ジョブ処理要求に対して連携してサービス処理を実行する次のサービス処理装置へ接続して連携サービスを要求することを特徴とする情報処理装置。
【請求項6】
前記連携処理情報は、URIのクエリパラメータで指示することを特徴とする請求項5記載の情報処理装置。
【請求項7】
前記連携処理情報は、XMLで指示することを特徴とする請求項5記載の情報処理装置。
【請求項8】
サーバ装置から指示される連携処理情報に従って情報処理装置が要求するサービス処理を実行するサービス処理装置であって、
前記情報処理装置から依頼されるサービス処理を実行する実行手段と、
前記実行手段によるサービス処理実行後、前記情報処理装置から要求されるサービス処理に対して前記サーバ装置に通知すべき連携処理情報を含む応答情報を前記情報処理装置に通知する通知手段と、
を備えることを特徴とするサービス処理装置。
【請求項9】
前記連携処理情報は、URIのクエリパラメータで指示することを特徴とする請求項8記載のサービス処理装置。
【請求項10】
前記連携処理情報は、XMLで指示することを特徴とする請求項8記載のサービス処理装置。
【請求項11】
情報処理装置から要求されるジョブに従い、当該ジョブを連携して処理するサービス処理装置を管理するサーバ装置を含むネットワークシステムであって、
前記サーバ装置は、
前記ジョブ処理要求で特定される連携サービス処理を実行すべき複数のサービス処理装置の所在情報を含む連携サービス情報を記憶する記憶手段と、
前記記憶手段に記憶された連携サービス情報に従い前記情報処理装置が連携サービスを要求すべきサービス処理装置の所在情報と連携処理を示すセッション情報とを含む連携処理情報を生成する生成手段と、
前記生成手段により生成される連携処理情報を前記情報処理装置に指示する指示手段と、
前記情報処理装置から前記連携処理情報に対する応答情報を取得する取得手段とを備え、
前記指示手段は、前記取得手段が取得する応答情報に従い、前記生成手段が生成する次の連携処理情報を前記情報処理装置に指示し、
前記情報処理装置は、
前記サーバ装置から指示される連携処理情報に従い特定されるサービス処理装置に対してサービス処理を要求する要求手段と、
前記サービス処理装置から前記サービス処理に対する前記連携処理情報を含む応答情報を前記サービス処理装置から受信する受信手段と、
前記受信手段が受信した前記連携処理情報を含む応答情報を前記サーバ装置に通知する通知手段とを備え、
前記要求手段は、前記サーバ装置から指示される次の連携処理情報に従い前記ジョブ処理要求に対して連携してサービス処理を実行する次のサービス処理装置へ接続して連携サービスを要求し、
前記サービス処理装置は、
前記情報処理装置から要求されるサービス処理に対して前記サーバ装置に通知すべき連携処理情報を含む応答情報を生成する生成手段と、
前記生成手段が生成した前記連携処理情報を含む応答情報を前記情報処理装置に通知する通知手段と、
を備えることを特徴とするネットワークシステム。
【請求項12】
情報処理装置から要求されるジョブに従い、当該ジョブを連携して処理するサービス処理装置を管理するサーバ装置におけるジョブ処理方法であって、
記憶手段に記憶される前記ジョブ処理要求で特定される連携サービス処理を実行すべき複数のサービス処理装置の所在情報を含む連携サービス情報を取得する取得工程と、
前記記憶手段から取得された連携サービス情報に従い前記情報処理装置が連携サービスを要求すべき情報処理装置の所在情報と連携処理を示すセッション情報と、サービス処理の進捗状態を示すオーダ情報を含む連携処理情報を生成する生成工程と、
前記生成工程により生成される連携処理情報を前記情報処理装置に指示する指示工程と、
前記情報処理装置から前記連携処理情報に対する応答情報を取得する取得工程とを備え、
前記指示工程は、前記取得工程が取得する応答情報に従い、前記生成工程が生成する次の連携処理情報を前記情報処理装置に指示することを特徴とするジョブ処理方法。
【請求項13】
ジョブを実行するために連携すべきサービス処理を実行するサービス処理装置を管理するサーバ装置と通信する情報処理装置におけるジョブ処理方法であって、
前記サーバ装置から指示される連携処理情報に従い特定されるサービス処理装置に対してサービス処理を要求する要求工程と、
前記サービス処理装置から前記サービス処理に対する前記連携処理情報を含む応答情報を前記サービス処理装置から受信する受信工程と、
前記受信工程が受信した前記連携処理情報を含む応答情報を前記サーバ装置に通知する通知工程とを備え、
前記要求工程は、前記サーバ装置から指示される次の連携処理情報に従い前記ジョブ処理要求に対して連携してサービス処理を実行する次のサービス処理装置へ接続して連携サービスを要求することを特徴とするジョブ処理方法。
【請求項14】
サーバ装置から指示される連携処理情報に従って情報処理装置が要求するサービス処理を実行するサービス処理装置におけるジョブ処理方法であって、
前記情報処理装置から依頼されるサービス処理を実行する実行工程と、
前記実行工程によるサービス処理実行後、前記情報処理装置から要求されるサービス処理に対して前記サーバ装置に通知すべき連携処理情報を含む応答情報を前記情報処理装置に通知する通知工程と、
を備えることを特徴とするジョブ処理方法。
【請求項15】
請求項12乃至14のいずれか1項に記載のジョブ処理方法をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−53511(P2012−53511A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−193224(P2010−193224)
【出願日】平成22年8月31日(2010.8.31)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】