(57)【特許請求の範囲】
【請求項１】
外部装置にサービスを提供するサービス提供装置であって、
前記サービス提供装置がサービスを提供すべき装置の情報をグループとして管理する管理手段と、
外部装置から送信されたサービス要求を受信する受信手段と、
前記受信手段が前記サービス要求を受信した場合に、前記外部装置が前記グループに含まれる装置であるか否かを判定する第１の判定手段と、
前記第１の判定手段によって前記外部装置が前記グループに含まれると判定された場合に、前記サービス要求が示すサービスを前記外部装置に提供するサービス提供手段と、
前記第１の判定手段によって前記外部装置が前記グループに含まれないと判定された場合に、前記外部装置にサービスを提供すべき正規のサービス提供装置が存在するか否かを判定する第２の判定手段とを備え、
前記第２の判定手段によって前記正規のサービス提供装置が存在しないと判定された場合に、前記サービス要求が示すサービスを前記サービス提供手段が前記外部装置に提供し、
前記第２の判定手段によって前記正規のサービス提供装置が存在すると判定された場合に、前記サービス要求が示すサービスを前記サービス提供手段が前記外部装置に提供しないことを特徴とするサービス提供装置。
【請求項２】
前記第２の判定手段によって前記正規のサービス提供装置が存在すると判断された場合に、前記外部装置の接続先を前記サービス提供装置から前記正規のサービス提供装置に変更することを許可するか否かを前記外部装置に問い合わせる問い合わせ手段を更に備え、
前記外部装置の接続先を前記サービス提供装置から前記正規のサービス提供装置に変更することを前記外部装置が許可する場合に、前記サービス提供手段は前記サービス要求が示すサービスを前記外部装置に提供せず、前記外部装置の接続先を前記サービス提供装置から前記正規のサービス提供装置に変更することを前記外部装置が許可しない場合に、前記サービス提供手段は前記サービス要求が示すサービスを前記外部装置に提供することを特徴とする請求項１に記載のサービス提供装置。
【請求項３】
前記第２の判定手段によって前記正規のサービス提供装置が存在すると判定された場合に、前記サービス要求が示すサービスを前記正規のサービス提供装置が提供できるか否かを判定する第３の判定手段を更に備え、
前記第３の判定手段によって前記サービス要求が示すサービスを前記正規のサービス提供装置が提供できると判定された場合に、前記サービス提供手段は前記サービス要求が示すサービスを前記外部装置に提供せず、前記第３の判定手段によって前記サービス要求が示すサービスを前記正規のサービス提供装置が提供できないと判定された場合に、前記サービス提供手段は前記サービス要求が示すサービスを前記外部装置に提供することを特徴とする請求項１に記載のサービス提供装置。
【請求項４】
前記第３の判定手段は、前記正規のサービス提供装置が提供するサービスのバージョンに基づいて、前記サービス要求が示すサービスを前記正規のサービス提供装置が提供できるか否かを判定することを特徴とする請求項３に記載のサービス提供装置。
【請求項５】
前記第２の判定手段は、ネットワーク上の他のサービス提供装置に問い合わせを行うことで、前記外部装置にサービスを提供すべき正規のサービス提供装置が存在するか否かを判定することを特徴とする請求項１乃至４のいずれか１項に記載のサービス提供装置。
【請求項６】
前記第２の判定手段は、前記外部装置の識別情報を前記他のサービス提供装置に送信することで問い合わせを行うことを特徴とする請求項５に記載のサービス提供装置。
【請求項７】
前記識別情報は、前記外部装置のＩＰアドレス又はＭＡＣアドレスであることを特徴とする請求項６に記載のサービス提供装置。
【請求項８】
前記サービスは、画像をＰＤＦフォーマットに変換するサービスであることを特徴とする請求項１乃至７のいずれか１項に記載のサービス提供装置。
【請求項９】
前記サービスは、画像を暗号化に対応したＰＤＦフォーマットに変換するサービスであることを特徴とする請求項１乃至７のいずれか１項に記載のサービス提供装置。
【請求項１０】
前記サービスは、ＦＡＸ送信であることを特徴とする請求項１乃至７のいずれか１項に記載のサービス提供装置。
【請求項１１】
外部装置にサービスを提供するサービス提供装置の制御方法であって、
前記サービス提供装置がサービスを提供すべき装置の情報をグループとして管理する管理ステップと、
外部装置から送信されたサービス要求を受信する受信ステップと、
前記受信ステップで前記サービス要求を受信した場合に、前記外部装置が前記グループに含まれる装置であるか否かを判定する第１の判定ステップと、
前記第１の判定ステップで前記外部装置が前記グループに含まれると判定された場合に、前記サービス要求が示すサービスを前記外部装置に提供するサービス提供ステップと、
前記第１の判定ステップで前記外部装置が前記グループに含まれないと判定された場合に、前記外部装置にサービスを提供すべき正規のサービス提供装置が存在するか否かを判定する第２の判定ステップとを備え、
前記第２の判定ステップによって前記正規のサービス提供装置が存在しないと判定された場合に、前記サービス要求が示すサービスを前記外部装置に提供し、
前記第２の判定ステップによって前記正規のサービス提供装置が存在すると判定された場合に、前記サービス要求が示すサービスを前記外部装置に提供しないことを特徴とするサービス提供装置の制御方法。
【請求項１２】
請求項１１に記載のサービス提供装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自身の持つ機能をサービスとして提供する機能を備えたサービス提供装置及びその制御方法、コンピュータプログラムに関するものである。
【背景技術】
【０００２】
画像形成装置が高機能、多機能化してきており、ネットワークに接続されて、ＰＣや他の画像形成装置などネットワーク上の装置から様々な機能が利用されるようになってきている。今までは、ステイプルを行うフィニッシャーや新規の用紙サイズなど、画像形成装置のハードウェア的に追加されたオプション機能をネットワーク上の他の装置から利用することが主であった。しかし、近年では、画像の色変換やフォーマット変換などを行う画像処理や、インターネットＦＡＸ送信などソフトウェア的な機能を画像形成装置がサービスとして提供し、他の装置から利用させる機会が増えている。高機能なサービスを提供する画像形成装置の機能を、当該機能を持たない他の画像形成装置から利用することで、当該機能を持たない他の画像形成装置からも、より高度な機能が利用できるようになる。
【０００３】
更には、画像形成装置内で処理を行うためのＣＰＵなどのプロセッサの機能が向上している。従来であれば、専用半導体チップで処理していたものが、処理をソフトウェアとして画像形成装置内に保持しておき、ソフトウェアによって、汎用的なＣＰＵを用いて処理を行うようになってきている。例えば、今までは、フォーマット変換のために画像処理を高速に行うための専用の半導体チップが用意され、それを用いてフォーマット変換処理を行っていた。しかし、近年では、フォーマット変換処理をソフトウェアとして画像形成装置内に保持しておき、汎用的なＣＰＵを用いてフォーマット変換処理を実行する。
【０００４】
このようなソフトウェアは、ファームウェアとして組込まれたり、追加的なアプリケーションソフトウェアとして画像形成装置内のフラッシュメモリやハードディスクに記憶される。そのため、ハードウェア的な機能向上に比べ、ファームウェアやソフトウェアのバージョンアップ（更新）、追加インストールによって簡易に機能向上や新機能追加が行われる。
【０００５】
複数の画像形成装置がネットワークに接続された環境において、全ての機器のファームウェアやソフトウェアのバージョンアップを一括して行わないことがある。これは、動作している以前の環境を全て変える前に、限定した範囲内でのみバージョンアップを行って、安定して稼動するかを確認したい場合が考えられる。即ち、一台、あるいは一部の機器だけバージョンアップを行い、一定期間経た後に、全ての機器にバージョンアップを適用するといった場合であえる。また、有償の新機能の追加であって、当面は一部機器のみに新機能を追加して、後から他の機器にも適用すると言った場合もある。このように、ネットワーク上に複数の画像形成装置が存在する場合に、ファームウェアやソフトウェアのバージョンアップ、追加インストールによって、機器間で、機能の能力差が生じる場合がある。このような場合に、利用者は、機能の高い機器を利用しようとして、サービスとして提供される機能が高い特定の機器に集中してアクセスするようになる。そこで、特定の機器に負荷が集中しないように、複数の機器に負荷を分散させる仕組みが必要となる。
【０００６】
具体的な例を図５を用いて説明する。５０１、５０２、５０３は、サービスを提供する画像形成装置である。以下、自身の保有する機能をサービスとして提供する画像形成装置を「サービス提供装置」と呼ぶ。５０４、５０５、５０６、５０７、５０８、５０９は機能が限定された画像形成装置であり、サービス提供装置が提供しているサービスを利用する。このような、サービス提供装置で提供しているサービスを利用する画像形成装置を、以下、「サービス利用装置」と呼ぶ。図５は、これら画像形成装置５０１〜５０９がネットワークを介して互いに通信可能に接続された画像形成システムである。通常、サービス提供装置は、サービスを利用するサービス利用装置と共にグループ化される。利用者が、サービス提供装置で印刷した場合に印刷物を取りに行くことなどから、物理的に近いもの同士でグループ化される場合が多い。あるいは、負荷を分散するためにグループ化することもある。図５では、グループ５１０、５１１、５１２がある。グループ５１０は、サービス提供装置５０１とサービス利用装置５０４、５０５からなる。グループ５１１は、サービス提供装置５０２とサービス利用装置５０６、５０７からなる。グループ５１２は、サービス提供装置５０３とサービス利用装置５０８、５０９からなる。以下、図５と同一構成のものについては、同一符号を与える。
【０００７】
図５に示す画像形成システムにおいて、例えば、サービス提供装置５０１、５０２、５０３のファームウェア、あるいはソフトウェアがバージョン１．０であったとする。バージョン１．０とは、フォーマット変換機能として、スキャナで読み取った画像をＰＤＦフォーマットに変換する機能をサービスとして提供可能であることを表す。このような場合であれば、各サービス利用装置は、それぞれのグループ内のサービス提供装置の機能を利用することになる。ここで、サービス提供装置５０１のファーウェアあるいはソフトウェアだけをバージョンアップして、バージョン２．０にしたとする。バージョン２．０では、新たに暗号化に対応したＰＤＦを作成できるようになる。この場合、グループ５１１に含まれるサービス利用装置５０６の利用者は、暗号化に対応したＰＤＦを作成しようとした場合、暗号化ＰＤＦの機能をサービスとして提供するサービス提供装置５０１へ接続する（図６  ６０１）。即ち、サービス利用装置５０６が本来利用すべきサービス提供装置５０２ではないサービス提供装置を利用することになる。その後、サービス利用装置５０６の本来の接続先であるサービス提供装置５０２が、バージョンアップによって、ファームウェア（ソフトウェア）バージョン２．０になり、暗号化ＰＤＦの機能を利用できるようになったとする。しかし、この場合でも、サービス利用装置５０６の利用者は、サービス提供装置５０１を利用し続けることがある（図７  ７０１）。なぜなら、利用者が、サービス提供装置５０２がバージョンアップされたことに気付かない可能性があるからである。その結果、ある画像形成装置に負荷が集中してしまう。
【０００８】
この問題に対して、画像形成装置の負荷を分散するために、全ての接続を受け付けるサーバ振り分け装置を用意し、サービス利用者のサービス利用実績に基づいて、サービス提供サーバを選択すると言うものがある。（例えば、特許文献１）。
【特許文献１】特開２００２−７７４９公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術は、サービスを提供する装置以外に、別途管理サーバを用意する必要がある。また、装置間で、サービスの機能差が生じた場合に、機能が高い装置をユーザが意図して利用することができなくなる。即ち、装置間の機能差が無くなるまでの期間だけ、一時的に特定の装置のみを使わせた後に、機能差が無くなった時点で、元の接続先の装置に戻すといった制御ができない。
【００１０】
本発明は、このような問題を解決するためになされたものであり、サービスを提供するサービス提供装置が複数存在する場合に、特定のサービス提供装置にアクセスが集中してしまうことを防ぐことを目的とする。更に、特定のサービス提供装置のみが提供しているサービスがある場合には、サービス利用装置は、一時的に、そのサービス提供装置を利用することができるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決するために、本発明は、外部装置にサービスを提供するサービス提供装置であって、前記サービス提供装置がサービスを提供すべき装置の情報をグループとして管理する管理手段と、外部装置から送信されたサービス要求を受信する受信手段と、前記受信手段が前記サービス要求を受信した場合に、前記外部装置が前記グループに含まれる装置であるか否かを判定する第１の判定手段と、前記第１の判定手段によって前記外部装置が前記グループに含まれると判定された場合に、前記サービス要求が示すサービスを前記外部装置に提供するサービス提供手段と、前記第１の判定手段によって前記外部装置が前記グループに含まれないと判定された場合に、前記外部装置にサービスを提供すべき正規のサービス提供装置が存在するか否かを判定する第２の判定手段とを備え、前記第２の判定手段によって前記正規のサービス提供装置が存在しないと判定された場合に、前記サービス要求が示すサービスを前記サービス提供手段が前記外部装置に提供し、前記第２の判定手段によって前記正規のサービス提供装置が存在すると判定された場合に、前記サービス要求が示すサービスを前記サービス提供手段が前記外部装置に提供しないことを特徴とする。
【発明の効果】
【００１２】
本発明によって、サービスを提供するサービス提供装置が複数存在する場合に、特定のサービス提供装置にアクセスが集中してしまうことを回避することが可能となる。また、特定のサービス提供装置のみが提供しているサービスがある場合に、サービス利用装置は、一時的にそのサービス提供装置を利用することが可能となる。
【発明を実施するための最良の形態】
【００１３】
（実施例１）
以下、本発明の実施例１について図面を参照して詳細に説明する。
【００１４】
図１は、本発明の実施例を示す画像形成システムの全体の構成を説明するブロック図である。画像形成装置１００は、画像入力デバイスであるスキャナ部２０７０、画像出力デバイスであるプリンタ部２０９５、Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００、ユーザーインターフェースである操作部２０１２から構成される。スキャナ部２０７０、プリンタ部２０９５、操作部２０１２は、それぞれＣｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００に接続され、Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００は、ＬＡＮ  ２０１１などのネットワーク伝送手段、公衆回線等に接続されている。公衆回線からはカラー画像送信を含むＧ３、Ｇ４ファックスによる送受信が可能である。また、ＬＡＮ  ２０１１には、画像形成装置１００と同様の機器構成をもつ他の画像形成装置１２０、１３０が接続されえている。また、パーソナルコンピュータ（以下ＰＣ）１４０が接続されていて、ＦＴＰ、ＳＭＢプロトコルなどを使用したファイルの送受信、電子メールの送受信ができる。画像形成装置１２０、１３０は、それぞれスキャナ部２２７０、２３７０、プリンタ部２２９５、２３９５、操作部２２１２、２３１２を持ち、それらがＣｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２２００、２３００に接続されている。
【００１５】
図２は、画像形成装置の構成を説明するブロック図である。Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００は画像情報やデバイス情報の入出力を行う為のコントローラである。Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ  ２０００は、画像入力デバイスであるスキャナ２０７０や画像出力デバイスであるプリンタ２０９５と接続され、一方ではＬＡＮ２０１１や公衆回線（ＷＡＮ）２０５１と接続される。ＣＰＵ２００１はシステム全体を制御するコントローラである。ＲＡＭ２００２はＣＰＵ２００２が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。また、オペレーティングシステムやシステムソフトウェア、アプリケーショソフトウェアなどのプログラムを動作させるために配置されることもある。ＲＯＭ２００３はブートＲＯＭであり、システムのブートプログラムが格納されている。また、システムプログラムやアプリケーションプログラムが格納されている場合もある。ＨＤＤ２００４はハードディスクドライブで、システムソフトウェア、アプリケーションソフトウェア、画像データ等を格納する。また、これらに限らず、画像管理のためのデータなどの画像以外の一般データファイルや画像形成装置で管理するデータを格納することができる。画像形成装置で管理するデータとしては、例えば、どの利用者が、いつ、どのような機能を利用したかを記録する「接続ログ」などがある。操作部Ｉ／Ｆ２００６は操作部（ＵＩ）２０１２とインターフェース部で、操作部２０１２に表示する画像データを操作部２０１２に対して出力する。また、操作部２０１２から本システム使用者が入力した情報を、ＣＰＵ２００１に伝える役割をする。Ｎｅｔｗｏｒｋ２０１０はＬＡＮ２０１１に接続し、情報の入出力を行う。Ｍｏｄｅｍ２０５０は公衆回線２０５１に接続し、画像情報の入出力を行う。以上のデバイスがシステムバス２００７上に配置される。Ｉｍａｇｅ  Ｂｕｓ  Ｉ／Ｆ２００５はシステムバス２００７と画像データを高速で転送する画像バス２００８を接続し、データ構造を変換するバスブリッジである。画像バス２００８は、ＰＣＩバスなどで構成される。画像バス２００８上には以下のデバイスが配置される。ラスターイメージプロセッサ（ＲＩＰ）２０６０はＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ部２０２０は、画像入出力デバイスであるスキャナ２０７０やプリンタ２０９５とコントローラ２０００を接続し、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２０８０は、入力画像データに対し補正、加工、編集を行う。また入力された画像がカラー原稿か白黒原稿かを画像の彩度信号から判断しその結果を保持する機能を有する。プリンタ画像処理部２０９０は、出力画像データに対し補正、加工、編集を行う。画像回転２０３０はスキャナ画像処理と連携して、スキャナからの画像読み込みと同時に画像を回転しメモリ上に格納する。また、メモリ上にある画像を回転し、メモリ上に格納、もしくはメモリ上にある画像をプリンタ画像処理部と連携して回転しながら印字出力することができる。解像度変換２０３１はメモリ上にある画像を解像度変換処理し、メモリ上に格納する。色空間変換２０３２はマトリクス演算により、たとえばメモリ上にあるＹＵＶ画像をＬａｂ画像に変換し、メモリ上に格納する。階調変換２０３３はたとえばメモリ上にある８ｂｉｔ、２５６階調の画像を誤差拡散処理などの手法により１ｂｉｔ、２階調に変換し、メモリ上に格納する。画像圧縮部２０４０は、多値画像データはＪＰＥＧ、２値画像画像データはＪＢＩＧ、ＭＭＲ、ＭＲ、ＭＨの圧縮伸張処理を行う。画像回転２０３０、解像度変換２０３１、色空間変換２０３２、階調変換２０３３、画像圧縮２０４０はそれぞれ連結して動作することが可能で、たとえばメモリ上の画像を画像回転、解像度変換する場合は、両処理をメモリを介さずに行うことができる。
【００１６】
ここで、上記の説明においては、画像回転などの画像処理は、画像バス２００８に接続されたデバイスで行っている。ただし、ＨＤＤ２００４やＲＯＭ２００３に画像処理のソフトウェアを格納しておき、ＲＡＭ２００２に読み込んで、ＣＰＵ２００１で実行するようにしてもよい。なお、実行するソフトウェアは、画像処理に限らず、画像形成装置で必要となる他の処理でも構わないのは、言うまでもない。また、ＲＯＭ２００３に格納されたプログラムは、ＲＡＭ２００２に読み込まずに実行してもよい。
【００１７】
画像形成装置の外観図を図３に示す。画像入力デバイスであるスキャナ部２０７０は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサ（図示せず）を走査することで、ラスターイメージデータ２０７１として電気信号に変換する。原稿用紙は原稿フィーダ２０７２のトレイ２０７３にセットされる。装置使用者が操作部２０１２から読み取り起動指示をすると、コントローラＣＰＵ２００１はスキャナ２０７０に指示を与え（２０７１）。そして、フィーダ２０７２は原稿用紙を１枚ずつフィードし原稿画像の読み取り動作を行う。画像出力デバイスであるプリンタ部２０９５は、ラスターイメージデータ２０９６を用紙上の画像に変換する部分である。その方式は感光体ドラムや感光体ベルトを用いた電子写真方式、微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等があるが、どの方式でも構わない。プリント動作の起動は、コントローラＣＰＵ２００１からの指示２０９６によって開始する。プリンタ部２０９５には、異なる用紙サイズまたは異なる用紙向きを選択できるように複数の給紙段を持ち、それに対応した用紙カセット２１０１、２１０２、２１０３、２１０４がある。また、排紙トレイ２１１１は印字し終わった用紙を受けるものである。
【００１８】
操作部２０１２の構成を図４に示す。ＬＣＤ表示部２０１３は、ＬＣＤ上にタッチパネルシート２０１９が貼られており、システムの操作画面およびソフトキーを表示するとともに、表示してあるキーが押されるとその位置情報をコントローラＣＰＵ２００１に伝える。スタートキー２０１４は原稿画像の読み取り動作を開始する時などに用いる。スタートキー２０１４中央部には、緑と赤の２色ＬＥＤ２０１８があり、その色によってスタートキー２０１４が使える状態にあるかどうかを示す。ストップキー２０１５は稼働中の動作を止める働きをする。ＩＤキー２０１６は、使用者のユーザーＩＤを入力する時に用いる。リセットキー２０１７は操作部からの設定を初期化する時に用いる。当然ながら、画像形成装置の構成は、本発明の要件を満たすものであれば、図２、図３、図４に記載されたものに限定されるものではない。
【００１９】
ここで、画像形成装置の性能を向上させたり、機能を追加するために実行されるファームウェア、ソフトウェアのバージョンアップについて述べる。本発明においては、ファームウェアとソフトウェアは、ともに機能を実現するためのプログラムであり、同義のものとする。以下においては、ソフトウェアと呼んで説明するが、ファームウェアとしてもよい。バージョンアップするソフトウェアは、ＲＯＭ２００３やＨＤＤ２００４に格納されている。ここで、ＲＯＭ２００３は、書き換え可能なＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などであるとする。ネットワーク２０１０で接続された外部サーバなどや、不図示である外部との接続Ｉ／Ｆに接続された機器経由で、アップデータを受け取り、ＲＯＭ２００３やＨＤＤ２００４に格納されているソフトウェアを上書きして、更新する。あるいは、機能追加の場合であれば、新たにソフトウェアを追加する。
【００２０】
本発明におけるサービス提供装置について説明する。サービス提供装置は、自身の持つ機能をサービスとして他の機器に対して提供する装置であり、ＭＦＰやプリンタ等の画像形成装置や、ＰＣ等の情報処理装置である。本実施例では、サービス提供装置が画像形成装置の場合を例に説明するが、サービス提供装置はＰＣ等の情報処理装置であっても構わない。サービス提供装置は、サービスの依頼をネットワークから受け付ける。これは、例えば、ＷｅｂＳｅｒｖｉｃｅなどの技術を用いても構わないし、独自のプロトコルを用いてもよい。サービスとは、サービス提供装置が備える機能のうち外部に提供している機能である。つまり、ソフトウェアによって提供されるサービスもあれば、ハードウェアによって提供されるサービスも存在する。即ち、ＰＤＦ変換等の画像処理機能もサービスであり、ファクシミリ送受信機能やステイプル機能、両面印刷機能もサービスの一種である。以下において、機能のバージョンとサービスのバージョンは同義であり、これは、サービス提供装置が有するソフトウェアのバージョンと同義である。サービス提供装置は、他の機器に対してサービスを利用させた場合、提供したサービス毎に、サービスを利用したサービス利用装置を特定する識別情報と、利用した日時を「接続ログ」に記録する。サービス利用装置とは、サービス提供装置が提供するサービスを利用する装置であり、ＭＦＰやプリンタ等の画像形成装置や、ＰＣ等の情報処理装置である。本実施例では、サービス利用装置が画像形成装置の場合を例に説明するが、サービス利用装置はＰＣ等の情報処理装置であっても構わない。サービス利用装置を特定する識別情報とは、例えばＩＰアドレスやＭＡＣアドレスなどである。なお、接続ログに記録する項目は、この限りでなく他の項目を含んでも構わない。具体的な例については、後述する。
【００２１】
サービス提供装置は、サービス利用装置から特定のサービスに対して利用要求を受けたとき、当該サービスに対する自身の接続ログを確認する。
【００２２】
そして、当該サービス利用装置から当該サービスに対して、以前に利用があったかを判定する。利用されたことが無ければ、ネットワーク上の他のサービス提供装置に対して、当該サービス利用装置の識別情報と、当該サービスの利用の有無とをブロードキャストを利用して問い合わせる。問い合わせの方法は、ブロードキャストに限らず、予め指定された機器に問い合わせるなど、問い合わせを行うことが可能であれば他の方法でも構わない。
【００２３】
問い合わせの結果、当該サービス利用装置が当該サービスを利用したことがある他のサービス提供装置がネットワーク上に存在した場合には、当該サービスのバージョンを比較する。他のサービス提供装置の方が当該サービスのバージョンが低い場合には、自身が当該サービス利用装置にサービスを提供する。一方、他のサービス提供装置が当該サービスのバージョンが同等又は高かった場合には、サービス利用装置に対して、当該他のサービス提供装置を利用させる。以下、図を用いて具体的に例を挙げて説明する。
【００２４】
図８を用いて、サービス利用装置が、他のグループのサービス提供装置の機能を利用する場合についての一例について説明する。図８は、サービス利用装置５０６がサービス提供装置５０１でサービスとして提供されている機能を利用する場合の図である。
【００２５】
まず、８０１で示すように、サービス利用装置５０６からサービス提供装置５０１に対して、利用したいサービスを指定して、サービスの実行を依頼する。このときに、サービス実行の依頼を受けた、サービス提供装置５０１は、サービス利用装置５０６を特定する識別情報として、ネットワークカードに割当てられたＭＡＣアドレスを得る。なお、識別情報は、サービス利用装置を一意に特定できるものであれば、ＭＡＣアドレスに限らず他の情報でも構わないことは言うまでもない。
【００２６】
サービス提供装置５０１は、当該サービスに対する接続ログを確認し、当該サービス利用装置のＭＡＣアドレスで接続されたことがあるかを判定する。接続されたことがあれば、グループ内の機器であると判定して、サービス利用装置に対して、要求されたサービスを利用させる。その後、当該サービスの接続ログに、サービス利用装置の識別情報と利用日時を正規の利用として記録する。
【００２７】
図８の例は、サービス利用装置５０６からのサービスの要求であるが、他のサービス利用装置からのサービスの要求に対しても、サービス提供装置は同様に動作する。例えば、サービス利用装置５０４からの要求であり、以前に接続があった場合、サービス提供装置５０１の当該サービスの接続ログに、サービス利用装置５０４の識別情報と利用日時を正規の利用として記録する。
【００２８】
接続ログに記録する内容は、一例であり、この限りではない。図１２に、当該サービスの接続ログの記載の一例を挙げる。例えば、１２０１は、サービスを利用した接続元の機器（サービス利用装置）を識別できる情報であり、この例においては、ＭＡＣアドレスが記載されている。以下、図中では、本情報を接続元識別情報とする。１２０２には、サービスを利用した日時が記されている。１２０３は、後述する一時利用であるかどうかを判別するフラグである。１２０４は、１２０１で示される接続元識別情報のサービス利用装置が本来利用すべきサービス提供装置の識別情報が記載される。１２０４の情報については、以下、図中では、正規接続先識別情報とする。図１２の例では、グループ内の機器からのアクセスで、以前に利用があったので、一時的な利用ではない。そのため、このフラグは「オフ（−）」となり、本来利用すべき正規サービス提供装置の識別情報は記載されない（１２０５）。
【００２９】
なお、本実施例では、サービス毎に接続ログを持っているが、この限りでない。利用したサービス、サービス利用装置を特定できる識別情報、サービス利用日時、及び、一時的な利用かどうかを判別できるフラグ、本来利用すべき正規サービス提供装置の識別情報を取得できるものであればよい。例えば、全ての接続について記録する接続ログを持っていて、その項目として、サービスを特定できる情報が記載される形態でも構わない。あるいは、本来利用すべき正規サービス提供装置の識別情報の記載の有無で、利用が一時的な利用かどうかを判別できるフラグにするような仕組みでも構わない。
【００３０】
サービス提供装置５０１において、サービス利用装置５０６から要求されたサービスに対する接続ログが確認される。その結果、サービス利用装置５０６のＭＡＣアドレスが当該サービスの接続ログに含まれていなければ、接続されたことが無いと判定される。すると、サービス提供装置５０１は、ネットワーク上の他のサービス提供装置に対して、当該サービスがサービス利用装置５０６から利用されたことがあるか否かを問い合わせる（８０２）。
【００３１】
問い合わせを受けた他のサービス提供装置５０２、５０３は、それぞれ、自身の当該サービスの接続ログを確認して、サービス利用装置５０６のＭＡＣアドレスが当該サービスの接続ログに含まれているか否かを判定する。そして、判定の結果を問い合わせの依頼のあったサービス提供装置５０１へ返す。このとき、応答を行ったサービス提供装置のＭＡＣアドレスやＩＰアドレスなどの識別情報、及び当該サービスにおける接続の有無だけなく、当該サービスのバージョンも同時に返される。図８の例では、サービス提供装置５０２が、サービス利用装置５０６からの接続があり、サービスのバージョンは、１．０であることを返信している（８０３）。また、サービス提供装置５０３は、サービス利用装置５０６からの接続が無かったことを返信している（８０４）。
【００３２】
次に、当該サービスでサービス利用装置の利用の有無が問い合わせられた結果、複数のサービス提供装置からサービス利用装置からの利用があった旨の応答があった場合について、図１７を用いて説明する。
【００３３】
本実施例では、複数のサービス提供装置の中から使用するサービス提供装置を特定する方法の一例として、バージョン番号、接続頻度、最終アクセス日時を元に決めるものとして説明する。なお、図１７において、図８と同等である部分については、図８と同じ符号を付しており、説明は省略する。
【００３４】
図１７の８０２において当該サービスでサービス利用装置５０６の利用の有無が問い合わされると、他のサービス提供装置５０２、５０３は、それぞれ自身の当該サービスの接続ログを確認する。そして、当該サービス利用装置５０６のＭＡＣアドレスからの接続の有無を判定する。そして、判定の結果を問い合わせの依頼のあったサービス提供装置５０１へ返す。このとき、応答を行ったサービス提供装置の識別情報、及び当該サービスにおける接続の有無、当該サービスのバージョンに加えて、当該サービスの接続頻度（使用回数）、最終アクセス日時が返される。図１７の例では、サービス提供装置５０２が、当該サービスでの接続があり、サービスのバージョンは、１．０であり、接続頻度は１５回、最終アクセス日時は、２００７年５月１日１４時２１分４３秒である（１７０１）。サービス提供装置５０３は、当該サービスでの接続があり、サービスのバージョンは、１．０であり、接続頻度は２４回、最終アクセス日時は、２００７年２月３日１９時５３分１１秒である（１７０２）。
【００３５】
図１７の例では、サービス提供装置５０２、５０３共にバージョン１．０を返しているが、もしバージョンが異なる場合は、より高いバージョンのサービスを提供するサービス提供装置が選択されることになる。１７０１、１７０２に示したように同一のバージョンの場合には、接続頻度または最終アクセス日時またはその両方によって、サービス利用装置に対する正規の接続先を決定する。例えば、接続頻度によって決定するのであれば、１７０２にあるようにサービス提供装置５０３が２４回と多いため、サービス提供装置５０３が選択される。また、最終アクセス日時によって決定するのであれば、１７０１にあるようにサービス提供装置５０２が２００７年６月１１日５月１日１４時２１分４３秒と一番最近アクセスされたため、サービス提供装置５０２が選択される。また、頻度や日時に対して閾値を設けて、それ以上（日時であればそれ以後）であるサービス提供装置を優先して選択してもよい。または、頻度と日時に関して重み付けを行ったアクセス度数を表す関数を定義して、その値に応じて接続先のサービス提供装置を決定してもよい。アクセス度数の計算式として、例えば、
【００３６】
【数１】
0005127414.tif 000002
【００３７】
のようなものを利用してもよい。現在時刻やアクセス日時は、例えば、公知の方法である１９７０年１月１日からの通算秒で表すような仕組みなどを用いる。
【００３８】
図９では、サービスに対してサービス利用装置が利用したことのある他のサービス提供装置（すなわち、正規サービス提供装置）が存在するが、提供するサービスのバージョンが古い場合について説明する。サービス提供装置５０１は、サービス提供装置５０２から前述した８０３の返答を受信すると、提供しているサービスのバージョンが異なることを判別する。つまり、サービス利用装置５０６からサービスの依頼のあったサービス提供装置５０１のサービスに対応する機能のソフトウェアのバージョンは、２．０である。一方、サービス利用装置５０６から当該サービスで接続されたことがあるサービス提供装置５０２のサービスに対応する機能のソフトウェアのバージョンは、１．０であり、バージョンが異なっている。サービス提供装置５０１は、自身のバージョンの方が高いため、サービス提供装置５０２に対して、当該サービスのバージョンアップが行われたら、サービス提供装置５０１に通知するように指示する（９０１）。そして、サービス利用装置５０６には、自身のサービスを一時利用として使用させる（９０２）。サービス提供装置５０１は、サービス利用装置５０６に、当該サービスを一時的に利用させているだけである。従って、サービス提供装置５０１の当該サービスの接続ログに、サービス利用装置の識別情報と利用日時と共に、一時利用であることを記録する。図１３に、この場合のサービス提供装置５０６の接続ログの例を示す。サービスを利用した接続元を特定できる識別情報（接続元識別情報）、サービス利用日時に関する情報は、それぞれ１３０１、１３０２である。一時利用フラグは、１３０３で示すように「オン（○）」となり、サービス利用装置５０６が本来利用すべき正規サービス提供装置５０２の識別情報（正規接続先識別情報）が１３０４に記載される。１３０４では、一例として、サービス提供装置５０２のＭＡＣアドレスが記載される。
【００３９】
ここで、サービス提供装置５０２は、当該サービスのバージョンアップ時にその旨をサービス提供装置５０１に通知するために、図１１に示すテーブルを管理している。即ち、通知すべきサービスの名称１１０３、バージョン番号１１０４、通知先のサービス提供装置を示すＩＰアドレス１１０５を管理する。図１１には、１１０１と１１０２の２つの設定がある。
【００４０】
１１０１は、サービス提供装置５０１がサービス提供装置５０２に対して、サービス「ＰＤＦ変換」のバージョンが「２．０」以上であるときに、通知を依頼していることを示している。ここで、サービス提供装置５０１のＩＰアドレスは、「１７２．１６．１０．１５３」であるとする。サービス提供装置５０２は、１１０１に従って、「ＰＤＦ変換」のバージョンが「２．０」以上であるときに、通知先「１７２．１６．１０．１５３」にその旨を通知することになる。なお、設定項目は、この限りでなく、例えば、サービス名称でなく、サービスを一意に特定できるサービスＩＤでも構わないし、通知先を特定できる情報も一意に特定できるものであれば構わない。サービスも一つだけなく、複数、システム全体のバージョンアップなどでも構わない。あるいは、通知先を複数登録できるようになっていても構わない。バージョン番号も指定した番号以上、指定した番号以下、指定したものと同一番号、範囲指定などバージョン番号の条件を設けても構わない。これを実現するためには、例えば、図１１において、バージョン番号の指定に加えて、条件指定のフィールドを設けることで実現できる。すなわち、本発明では、機能のバージョンが更新されたことを通知できる仕組みであれば構わない。なお、図１１の例では、バージョン番号の条件についての指定が無いが、指定した番号以上のものとしている。
【００４１】
図１０では、正規サービス提供装置のバージョンが上がった場合についての処理の一例について説明する。前述の図９の９０１で記したように、サービス提供装置５０２には、当該サービスのバージョンが更新されたときに、サービス提供装置５０１へ通知するように設定されている。従って、サービス提供装置５０２の当該バージョンが上がったとき、サービス提供装置５０２は、バージョンが更新された旨のメッセージをサービス提供装置５０１へ送信する（１００１）。メッセージの内容は、サービス名称、当該サービスのソフトウェアのバージョン番号、メッセージ送信元を識別できる情報（例えば、ＭＡＣアドレスなど）である。当該サービス、当該サービスのソフトウェアのバージョン番号、メッセージ送信元を識別できる情報であれば、これらに限らないのは言うまでもない。
【００４２】
当該サービスのソフトウェアのバージョンがアップしたときの確認は、先に図１１で示した通知先設定を確認し、対応するサービスのバージョンが通知すべきバージョンに達していたら、通知先にメッセージを送ることになる。例えば、１１０１に示される要件（「ＰＤＦ変換」のソフトウェアがバージョン「２．０」以上である）をサービス提供装置５０２が満たしたときに、ＩＰアドレスの１７２．１６．１０．１５３宛てに、メッセージの送信を行う。メッセージ通信の仕組みは、本実施例の本質ではないため詳細な説明は省略するが、メッセージ交換が行えるプロトコルを用いればよい。サービス提供装置５０２は、バージョンアップのメッセージを受信したことに対する応答をサービス提供装置５０１から受信する（１００２）。その後、サービス提供装置５０２は、当該サービスに対する情報を図１１の通知先設定から削除する。図１１の例においては、１１０１が削除される。なお、サービス提供装置５０１から応答メッセージが無い場合は、通知先設定から削除せずに、一定時間毎にバージョンアップ通知のメッセージの再送信を行う。電源が切れていたり、ネットワーク等の障害などによって、サービス提供装置５０１がバージョンアップ通知のメッセージを受信していない可能性があるためである。
【００４３】
バージョンアップ通知のメッセージを受け取ったサービス提供装置５０１は、メッセージに含まれる当該サービス名称から接続ログを特定し、メッセージに含まれる識別情報が当該サービスに対する接続ログに含まれるか検索する。このときに、接続ログの一時利用フラグが「オン（○）」であるものが検索対象となる。例えば、図１３であれば、１３０５がマッチする。その後、接続ログ中の、サービスを利用したサービス利用装置の接続元識別情報を用いて、サービス利用装置５０６に対して、当該サービスの接続先の変更を依頼する（１００３）。即ち、サービス利用装置５０６に対して、当該サービスを利用するための接続先を、サービス提供装置５０１からサービス提供装置５０２に変更するように依頼する。これを受けたサービス利用装置５０６は、当該サービスの接続先を自動的に変更する。または、接続先変更の問い合わせの画面を図４に示したＬＣＤ表示部に表示して、利用者に選択させるようにしても構わない。つまり、このときだけ、一時的に利用して、その後の接続先は、変更するようにしてもよい。
【００４４】
サービス利用装置５０６では、当該サービスの接続先変更処理を実行すると、変更完了通知をサービス提供装置５０１へ送信する（１００４）。サービス提供装置５０１では、変更完了通知によって、当該サービスの接続ログの一時利用フラグを「接続先変更完了（×）」と変更する。これにより、以後の接続ログの検索において、当該サービスのログを検索対象とならないようにする（図１４の１４０１）。本実施例では、接続ログ中の識別情報として、ＭＡＣアドレスを用いており、ＩＰアドレスへの変換処理を行っているが、ＩＰアドレスを識別情報として用いたり、ＭＡＣアドレスと共にＩＰアドレスを記録するようにしてもよい。また、接続ログの一時利用フラグを確認して、正規サービス提供装置、及び、サービスの変更先通知を行うサービス利用装置を特定しているが、別途対応を記載したテーブルを用意して、管理するようにしてもよい。
【００４５】
次に、先に説明した図８中の８０２の問合せの結果、他の全てのサービス提供装置から、サービス利用装置５０６からの利用が無いと返答された場合について説明する。この場合は、サービス利用装置５０６が、ネットワークでアクセスできる範囲内の当該サービスを提供しているサービス提供装置の当該サービスの機能を初めて利用することになる。サービス提供装置５０１は、サービス利用装置５０６に、自身のサービスを使用させる。ここで、サービス提供装置５０１の当該サービスの接続ログに、サービス利用装置の識別情報と利用日時とを記録する。先の図９の９０２で示した例と異なり、この場合は、一時利用で無く、正式な利用となる。接続ログは、先の図１２の１２０５で示したものと同様に、一時的な利用ではないため、このフラグは「オフ（−）」となり、本来利用すべき正規サービス提供装置の識別情報は記載されない。
【００４６】
更に別の例として、説明した図８中の８０２の問合せの結果、サービス提供装置５０２が、当該サービスでの接続があり、サービスのバージョンは、２．０であると返答した場合について説明する。尚、サービス提供装置５０３は、当該サービスでの接続が無かったと返答する。この場合は、サービス利用画像提供装置５０６が、以前にサービス提供画像装置５０２の当該サービスの機能を利用していた場合である。且つ、サービス利用画像提供装置５０６の要求してきたサービス提供装置５０１と同一バージョンの機能を提供しているケースである。つまり、この場合は、サービス利用装置５０６は、サービス提供装置５０２を利用しなければならない。そのため、サービス提供装置５０１は、サービス利用装置５０６に対して、当該サービスの接続先の変更を依頼する。サービス利用装置５０６では、当該サービスの接続先変更処理を実行して、変更完了通知をサービス提供装置５０１へ送信する。ここで、サービス利用装置５０６は、当該サービスの接続先を自動的に変更する。または、接続先変更の問い合わせの画面を図４に示したＬＣＤ表示部に表示して、利用者に選択させるようにしても構わない。つまり。このときだけ、一時的に利用して、その後の接続先は、変更するようにしてもよい。なお、この例では、問い合わせを行ったサービス提供装置５０１と問い合わせに対して返答したサービス提供装置５０２が同一バージョンであるものであったが、より高いバージョンであった場合も同様である。
【００４７】
図１５を用いて、本実施例におけるサービス提供装置の動作を示すフローチャートを説明する。図１５に示す各ステップは、サービス提供装置のＣｏｎｔｒｏｌ  Ｕｎｉｔ２２００が備えるＣＰＵ２００１が、メモリに記憶されたプログラムを実行することによって行なわれる。
【００４８】
Ｓ１５０１では、サービス提供装置は、所定のサービスが指定されたサービス要求をサービス利用装置から受信する。Ｓ１５０２では、サービス提供装置は、サービス提供装置自身がＳ１５０１で指定されたサービスを提供しているか否か判定する。提供していれば、Ｓ１５０４へ進み、提供していなければ、Ｓ１５０３へ進む。Ｓ１５０３では、サービス提供装置は、指定されたサービスを提供していないため、接続の拒否をサービス利用装置へ返答して、処理を終了する。Ｓ１５０４では、サービス提供装置は、Ｓ１５０１で受信した接続要求に含まれる、サービス利用装置を特定する識別情報を取得する。この識別情報は、例えば、サービス利用装置のＩＰアドレスやＭＡＣアドレスなどである。
【００４９】
Ｓ１５０５では、サービス提供装置は、自身で管理している接続ログのうちＳ１５０１で指定されたサービスの接続ログに、Ｓ１５０４で取得したサービス利用装置の識別情報が含まれるか判断する。含まれていれば、Ｓ１５１９へ進み、含まれていなければ、Ｓ１５０６へ進む。Ｓ１５０６では、サービス提供装置は、Ｓ１５０４で取得した識別情報で特定されるサービス利用装置からの利用があったどうかを、ネットワーク上の他のサービス提供装置に対して問い合わせる。具体的には、Ｓ１５０１で指定されたサービス、Ｓ１５０４で取得した識別情報を、ネットワーク上の他のサービス提供装置に送信する。
【００５０】
Ｓ１５０７では、サービス提供装置は、Ｓ１５０６における問い合わせに対する他のサービス提供装置からの応答を受ける。応答には、応答したサービス提供装置のＭＡＣアドレスやＩＰアドレスなどの識別情報、当該サービスにおける接続の有無、及び当該サービスのバージョンが含まれる。なお、問い合わせを受ける一例として、問い合わせた全てのサービス提供装置からの応答を待ったり、あるいは、一定時間のタイムアウトを設けることで応答を受信する。
【００５１】
Ｓ１５０８では、サービス提供装置は、Ｓ１５０７で返された全ての応答を確認する。そして、他のサービス提供装置のうちで、Ｓ１５０４で取得した識別情報で特定されるサービス利用装置からの利用があったサービス提供装置があるかどうかを判断する。即ち、Ｓ１５０４で取得した識別情報で特定されるサービス利用装置に対する正規サービス提供装置が存在するか否かを判断する。
そして、存在すれば、Ｓ１５０９へ進み、存在しなければ、Ｓ１５２０へ進む。
【００５２】
Ｓ１５２０では、サービス提供装置は、自身が管理する接続ログの接続元識別情報の欄に、Ｓ１５０４で取得した識別情報を書込む。また、アクセス日時を書込む。また、この場合は、サービス提供装置自身が、このサービス利用装置の正規サービス提供装置となるので、一時利用フラグの欄には、「オフ（−）」が書込まれる。Ｓ１５２０の処理の後、Ｓ１５１９へと進む。Ｓ１５０９では、サービス提供装置は。Ｓ１５０８で見つけた正規サービス提供装置の、Ｓ１５０１で指定されたサービスのバージョンが、自身のサービスのバージョンと同じ或いは高いか否かを判断する。そして、同じ又は高い場合にはＳ１５１０へ進み、低い場合にはＳ１５１４へと進む。
【００５３】
Ｓ１５１０では、サービス提供装置は、Ｓ１５０８で見つけられた正規サービス提供装置が２台以上存在するかどうか判定する。２台以上存在する場合には、Ｓ１５１１へ進み、１台のみの場合は、Ｓ１５１２へ進む。Ｓ１５１１では、サービス提供装置は、先に説明したように、当該サービスのバージョンや接続頻度、最終アクセス日時などの基準に基づいて、接続先のサービス提供装置を選択し、Ｓ１５１２へ進む。Ｓ１５１２では、サービス提供装置は、サービス利用装置に対して、接続先をＳ１５０８で見つけられた又はＳ１５１１で選択された正規サービス提供装置に変更しても構わないかどうかを問い合わせる。サービス利用装置が本来接続すべき正規サービス提供装置が、サービス利用装置が所望するサービスを提供しているためである。Ｓ１５１３では、サービス提供装置は、Ｓ１５１２の問い合わせに対するサービス利用装置からの応答を受信する。接続先変更が許諾された場合は処理を終了し、一方、接続先変更が拒否されれば、Ｓ１５１８へ進む。
【００５４】
Ｓ１５１８では、サービス提供装置は、自身が管理する接続ログに、Ｓ１５０４で取得した識別情報と一時利用である旨を書込み、接続ログを更新する。具体的には、一時利用のフラグは「接続先変更完了（×）」となり、正規接続先識別情報の欄には、Ｓ１５０８で見つかった、又はＳ１５１１で選択されたサービス提供装置の識別情報が書込まれる。また、アクセス日時を書込む。また、この場合は、ユーザが意図的に正規サービス提供装置以外のサービス提供装置を使おうとする場合であるので、正規サービス提供装置からのバージョンアップ通知は必要ない。
【００５５】
Ｓ１５１４では、サービス提供装置は、Ｓ１５０８で見つけられた正規サービス提供装置が２台以上存在するかどうか判定する。２台以上存在する場合には、Ｓ１５１５へ進み、１台のみの場合は、Ｓ１５１６へ進む。Ｓ１５１５では、サービス提供装置は、先に説明したように、当該サービスのバージョンや接続頻度、最終アクセス日時などの基準に基づいて、接続先のサービス提供装置を選択し、Ｓ１５１６へ進む。Ｓ１５１６では、サービス提供装置は、Ｓ１５０８で見つかった、又はＳ１５１５で選択された正規サービス提供装置に対して、当該サービスのバージョンアップ時に通知するように依頼を行う。具体的には、正規サービス提供装置に対して、通知すべきサービスの情報と通知すべきバージョンを示す情報を送信する。これを受けた正規サービス提供装置では、該当するサービスのバージョンが、指定されたバージョンになった場合に、サービス提供装置に対してバージョンアップの通知を送信することになる。
【００５６】
Ｓ１５１７では、サービス提供装置は、自身が管理する接続ログに、Ｓ１５０４で取得した識別情報と一時利用である旨を書き込み、接続ログを更新する。具体的には、一時利用のフラグは「オン（○）」となり、正規接続先識別情報の欄には、Ｓ１５０８で見つかった、又はＳ１５１５で選択されたサービス提供装置の識別情報が書込まれる。また、アクセス日時を書込む。Ｓ１５１９では、サービス提供装置は、要求されたサービスをサービス利用装置に対して提供する。
【００５７】
図１６は、サービス提供装置が、バージョンアップ通知をサービス利用装置の本来の接続先である正規サービス提供装置から受け取った場合の処理について説明したフローチャートである。図１６に示す各ステップも、図１５と同様、サービス提供装置のＣｏｎｔｒｏｌ  Ｕｎｉｔ２２００が備えるＣＰＵ２００１が、メモリに記憶されたプログラムを実行することによって行なわれる。
【００５８】
Ｓ１６０１では、サービス提供装置は、特定のサービスに関してのバージョンアップ通知を当該サービスの本来の接続先である正規サービス提供装置から受信する。なお、バージョンアップの通知は、先に説明した図１５のＳ１５１６での登録に従って行われる。
【００５９】
Ｓ１６０２では、サービス提供装置は、自身が管理する接続ログを参照し、当該サービスに対するサービス利用装置を特定する。具体的には、図１３の接続ログにおいて、一時利用フラグが「○」であるものの中から、Ｓ１６０１のバージョンアップ通知の送信元が正規接続先識別情報である接続元識別情報に対応するサービス利用装置を特定する。
【００６０】
Ｓ１６０３では、サービス提供装置は、Ｓ１６０２で特定されたサービス利用装置に対して、接続先変更要求を送信する。これは、このサービス利用装置が本来使用していたサービス提供装置が、当該サービスにおいてもバージョンがアップしたことにより、使用可能になったことを通知するものである。
【００６１】
Ｓ１６０４では、サービス提供装置は、Ｓ１６０３の要求に対して、サービス利用装置において接続先変更が許可されたか否かを判断する。ここでは、Ｓ１６０３において送信された要求に対する応答が返ってきたことによって、許可されたとみなしてもよい。又は、Ｓ１６０３において送信された要求によって、サービス利用装置において接続先変更の許可／禁止を選択させる画面を表示し、ユーザの選択に応じて、許可又は禁止を示す応答をサービス利用装置が送信するものとする。その結果をもって、許可／禁止を判断するようにしてもよい。また、Ｓ１６０３において要求が送信されてから、一定時間応答がなかった場合には、接続先変更が許可されなかったものと判断してもよい。
【００６２】
Ｓ１６０４において接続先の変更が許可されたと判断された場合、Ｓ１６０５に進み、サービス提供装置は、自身が管理する接続ログを更新する。具体的には、図１３に示す一時利用フラグ「○」１３０３を、図１４に示すように接続先変更完了を示す「×」１４０１に更新する。
【００６３】
尚、一時利用させたサービス提供装置の機能のバージョンがより高く上がることがある。例えば、図６の例において、サービス提供装置５０１のバージョンが２．０、サービス提供装置５０２のバージョンが１．０である。このようなときに、本実施例では、サービス利用装置５０６がサービス提供装置５０１の機能をサービスとして利用している。そして、サービス提供装置５０２には、図１１の１１０４で示すように当該サービス（機能）のバージョンが上がったら通知されるようにテーブルとして設定されている。このような場合に、更にサービス提供装置５０１のバージョンが上がり、３．０になってしまうような場合がある。このような場合には、サービス提供装置５０１が、ブロードキャストなどを利用して、他のサービス提供装置に対して、自身のバージョンアップを通知する。そして、この通知を受けたサービス提供装置５０１正規サービス提供装置（この例では、５０２）が、通知用のテーブルを書き換えるようにする。例えば、図１８の１８０１のようにバージョンを書き換える。
【００６４】
以上説明したように、本実施例では、サービス提供装置は、サービス利用装置からのサービス要求に対して、当該サービス利用装置が本来使用するべき他のサービス提供装置へ接続先を変更することができる。また、サービス利用装置が要求するサービスのバージョンが当該サービス利用装置が本来使用するべきサービス提供装置よりも高い場合には、一時的にサービス提供装置を使用させることもできる。
【００６５】
これにより、サービス利用装置からのサービスの利用が、一部のサービス提供装置に偏ってしまうことを防ぐことができる。更に、各サービス提供装置の機能に差がある場合には、一時的に高機能のサービス提供装置をサービス利用装置に利用させることもできる。
【００６６】
（実施例２）
上記第１の実施例では、サービス提供装置は、サービス利用装置から要求されたサービスに関して、接続ログを参照し、過去に使用されたことがあるかどうかを判断していた。つまり、サービス利用装置から要求されたサービスを使用されたことがないサービス提供装置は、たとえその他のサービスを使用されたことがあっても、正規サービス提供装置とはならなかった。
【００６７】
第２の実施例においては、サービス利用装置から要求されたサービスを使用されたことはないものの、他のサービスは当該サービス利用装置から使用されたことがあるようなサービス提供装置が存在する場合を考える。
【００６８】
例えば、有償で提供される機能をある特定のサービス提供装置にのみインストールしているような場合、特定のサービス提供装置しかその機能をサービスとして提供していないため、そのサービス提供装置にアクセスが集中する。しかし、他のサービス提供装置が、そのサービスの機能を提供すれば、接続先を変えるべき正規サービス提供装置が存在することになる。つまり本来の接続先の正規サービス提供装置に機能が提供される前の状態であると、サービス毎の接続ログには、サービス利用装置からのアクセスの記録が残らないため、接続先を変更することができない。本実施例は、このようなケースに対応するための方法について示したものである。
【００６９】
本実施例におけるシステム構成及びサービス提供装置、サービス利用装置の構成は、第１の実施例と同様のため、説明を省略する。
【００７０】
図１９は、本実施例におけるサービス提供装置の動作を示すフローチャートである。図１９の各ステップは、サービス提供装置のＣｏｎｔｒｏｌ  Ｕｎｉｔ２２００が備えるＣＰＵ２００１が、メモリに記憶されたプログラムを実行することによって行なわれる。なお、図１９において、図１５のフローチャートと同等の部分については、同一符号を付与して、説明は省略する。
【００７１】
図１９のＳ１５０８において、サービス提供装置は、Ｓ１５０７で返された全ての応答を確認する。そして、他のサービス提供装置のうちで、Ｓ１５０４で取得した識別情報で特定されるサービス利用装置からの利用があったサービス提供装置があるかどうかを判断する。あった場合にはＳ１５０９へと進み、実施例１と同様である。一方、なかった場合には、実施例１では、Ｓ１５２０へと進んだが、本実施例では、Ｓ１９０１へと進む。
【００７２】
Ｓ１９０１では、サービス提供装置は、ネットワーク上の他のサービス提供装置に対して、サービスの種類によらず、Ｓ１５０４で取得した識別情報で特定されるサービス利用装置からの利用があったかを問い合わせる。この問い合わせには、Ｓ１５０４で取得した識別情報が含まれる。この問い合わせを受信した他のサービス提供装置では、自身が提供する全てのサービスそれぞれの接続ログを参照し、少なくともいずれかに当該識別情報が含まれているかが判断される。
【００７３】
Ｓ１９０２では、サービス提供装置は、Ｓ１９０１における問い合わせに対する応答を受信する。応答には、応答を行ったサービス提供装置のＭＡＣアドレスやＩＰアドレスなどの識別情報、当該サービスにおける接続の有無、及び当該サービスのバージョンが含まれる。なお、問い合わせを受ける一例として、問い合わせた全てのサービス提供装置からの応答を待つことを行ったり、あるいは、一定時間のタイムアウトを設けることで応答を行う。
【００７４】
Ｓ１９０３では、サービス提供装置は、Ｓ１９０２で受信した応答を確認し、他のサービス提供装置の中に、Ｓ１５０４で特定された識別情報のサービス利用装置から利用されたサービス提供装置が存在するか確認する。その結果、存在する場合にはＳ１５１７へと進み、存在しない場合にはＳ１５２０へと進む。
【００７５】
尚、Ｓ１９０３において、複数のサービス提供装置が該当した場合には、第１の実施例のように、接続頻度や最終アクセス日時の情報に基づいて、使用するサービス提供装置を選択するようにしてもよい。又は、指定した特定のサービスを利用しているものを優先して選択するようにしてもよい。あるいは、サービス種別、接続頻度、アクセス日時のそれぞれについて重み付けを行う計算式を用意して、アクセス度数を求めて、それによって選択するようにしてもよい。
【００７６】
以上説明したように、本実施例によれば、サービス利用装置から要求されたサービスを使用されたことはないものの、他のサービスは当該サービス利用装置から使用されたことがあるようなサービス提供装置を選択することができる。
【００７７】
（実施例３）
上記第１の実施例及び第２の実施例では、サービスのバージョンが低い正規サービス提供装置に対して、バージョンアップを通知すべきサービスのバージョンを通知していた。そして、正規サービス提供装置は図１１に示すテーブルを管理し、サービスのバージョンが通知すべきバージョンになった際に、バージョンアップ通知を行うようにしていた。
【００７８】
本実施例では、サービス提供装置は、正規サービス提供装置に、通知すべきサービスのバージョンを通知するのではなく、サービスのみを通知する。そして、バージョンアップ通知を受信したサービス提供装置側で、通知されたバージョンが所定のバージョンに達しているかを判断するものとする。
【００７９】
図２０を用いて、本実施例の特徴部分について説明する。本実施例におけるシステム構成及びサービス提供装置、サービス利用装置の構成は、第１の実施例と同様のため、説明を省略する。
【００８０】
図２０は、本実施例に置いて、サービス利用装置からサービス要求を受信したサービス提供装置が、正規サービス提供装置からバージョンアップ通知を受信した場合の処理を示すフローチャートである。図２０に示す各ステップは、サービス提供装置のＣｏｎｔｒｏｌ  Ｕｎｉｔ２２００が備えるＣＰＵ２００１が、メモリに記憶されたプログラムを実行することによって行なわれる。なお、図２０において、図１６のフローチャートと同等の部分については、同一符号を付与して、説明は省略する。
【００８１】
図２０のＳ１６０１において、サービス提供装置は、正規サービス提供装置から、バージョンアップ通知を受信する。バージョンアップ通知には、サービスを示す情報と、当該サービスのバージョンが含まれている。
【００８２】
Ｓ２００１では、サービス提供装置は、Ｓ１６０１で受信したサービスのバージョンと、自身の当該サービスのバージョンとを比較する。その結果、受信したバージョンの方が高い、又は同じバージョンであれば、Ｓ１６０２へと進む。低ければ、Ｓ２００２へと進む。
【００８３】
Ｓ１６０２以降の処理は、図１６で説明した処理と同様である。Ｓ２００２では、サービス提供装置は、正規サービス提供装置に対して、接続先が変更されていないことを通知する。これは、正規サービス提供装置のサービスのバージョンが低かったか、又は高い（又は同じ）場合でもサービス利用装置において接続先の変更が許可されなかった場合である。この通知を受信した正規サービス提供装置は、以降、当該サービスのバージョンがアップした場合に、再度、サービス提供装置にその旨を通知することになる。
【００８４】
なお、Ｓ１６０２でサービス利用装置の対象が複数台に渡る場合は、Ｓ１６０３で、サービス提供装置は、対象の複数台のサービス利用装置に対して、接続先変更要求を送信する。Ｓ１６０４では、サービス提供装置は、依頼を行ったサービス利用装置からの返答を待つ。このとき、依頼を行った全てのサービス利用装置からの返答を待ってもよいし、タイムアウトを設けて、返答が無いものを対象から外したり、一定期間後に接続先変更依頼を再送信する仕組みにしても構わない。
【００８５】
（その他の実施例）
上記実施例１乃至実施例３では、複数のサービス提供装置のうちで、最初にサービス利用装置からサービス要求を受信したサービス提供装置が、そのサービス利用装置に対する正規サービス提供装置になっていた。つまり、サービス提供装置は、サービス利用装置からサービス要求を受信した際に、他に正規サービス提供装置がいない場合には、自身が正規サービス提供装置となっていた。
【００８６】
これに対して、予め各サービス提供装置に、管理対象とするサービス利用装置を登録してもよい。つまり、予め各サービス提供装置に、当該サービス提供装置がサービスを提供するサービス利用装置を登録しておく。そして、任意のサービス利用装置からサービス要求を受信すると、自身が管理対象とするサービス利用装置であるか否かを判断する。自身が管理対象とするサービス利用装置でないと判断された場合には、他のサービス提供装置に対して、当該サービス利用装置を管理対象としているか否かを問い合わせる。このとき、サービス利用装置から要求されているサービスのバージョンも問い合わせる。他のサービス提供装置の中に、当該サービス利用装置を管理対象としているサービス提供装置があった場合には、そのサービス提供装置のサービスのバージョンと、自身のサービスのバージョンを比較する。
【００８７】
この場合、サービス提供装置は、自身が管理対象とするサービス利用装置のリストをデータとして保持しておく。このデータは、サービス提供装置のＲＯＭ２００３やＨＤＤ２００４等の記憶部に記憶される。この場合の、サービス提供装置の動作は、図１５とほぼ同様であるが、以下のステップが異なる。まず、Ｓ１５０５では、サービス提供装置は、Ｓ１５０４で取得した識別情報が自身が管理対象とするサービス利用装置のリストに含まれているか否かを判断する。含まれている場合はＳ１５２０へ進み、含まれていない場合には、Ｓ１５０６へ進む。
【００８８】
このように、各サービス提供装置に、それぞれが管理対象とするサービス利用装置を登録しておけば、より確実に、サービス提供装置及びサービス利用装置が接続されたシステムのグループ管理を行なうことができるようになる。
【００８９】
なお、サービス提供装置側にではなく、サービス利用装置側に、それぞれのサービス利用装置が、使用するべきサービス提供装置を登録しておく構成にしてもよい。この場合は、サービス利用装置がサービス要求を送信する際に、登録されたサービス提供装置を示す情報を付加して送信することになる。
【００９０】
尚、上記実施例においては、自身の保有する機能をサービスとして提供する画像形成装置を「サービス提供装置」、サービス提供装置で提供しているサービスを利用する画像形成装置を「サービス利用装置」として説明した。ただし、本発明において、サービス提供装置およびサービス利用装置は、プリンタや複写機、複合機、スキャナ、ＦＡＸ等の画像形成装置に限らず、サーバやＰＣ、携帯端末等の情報処理装置であってもよい。
【００９１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
【００９２】
また、本発明は、前述した実施例のフローチャートを実現するソフトウェアのコンピュータプログラムコードを記録した記憶媒体を、システムあるいは装置に供給してもよい。そして、そのシステムあるいは装置のコンピュータ（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成され得る。
【００９３】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９４】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【図面の簡単な説明】
【００９５】
【図１】本実施例における画像形成システムの全体構成を示す図
【図２】本実施例における画像形成装置の全体構成を示す図
【図３】本実施例における画像形成装置の入出力デバイス外観図
【図４】本実施例における画像形成装置の表示部の外観図
【図５】グループ化された画像形成システムの動作の例
【図６】グループ化された画像形成システムの動作の例
【図７】グループ化された画像形成システムの動作の例
【図８】グループ化された画像形成システムの動作の例
【図９】グループ化された画像形成システムの動作の例
【図１０】グループ化された画像形成システムの動作の例
【図１１】本実施例におけるバージョンアップ時の通知先設定のテーブルの一例
【図１２】本実施例におけるサービス提供装置が管理する接続ログの記載の一例
【図１３】本実施例におけるサービス提供装置が管理する接続ログの記載の一例
【図１４】本実施例におけるサービス提供装置が管理する接続ログの記載の一例
【図１５】本実施例におけるサービス提供装置の動作を示すフローチャート
【図１６】本実施例におけるサービス提供装置の動作を示すフローチャート
【図１７】グループ化された画像形成システムの動作の例
【図１８】本実施例におけるバージョンアップ時の通知先設定のテーブルの一例
【図１９】本実施例におけるサービス提供装置の動作を示すフローチャート
【図２０】本実施例におけるサービス提供装置の動作を示すフローチャート
【符号の説明】
【００９６】
２０００  コントローラユニット
２００１  ＣＰＵ
２００２  ＲＡＭ
２００３  ＲＯＭ
２００４  ＨＤＤ
２０７０  スキャナ
２０８０  プリンタ
２０１２  操作部
【図１】
0005127414.tif 000003
【図２】
0005127414.tif 000004
【図３】
0005127414.tif 000005
【図４】
0005127414.tif 000006
【図５】
0005127414.tif 000007
【図６】
0005127414.tif 000008
【図７】
0005127414.tif 000009
【図８】
0005127414.tif 000010
【図９】
0005127414.tif 000011
【図１０】
0005127414.tif 000012
【図１１】
0005127414.tif 000013
【図１２】
0005127414.tif 000014
【図１３】
0005127414.tif 000015
【図１４】
0005127414.tif 000016
【図１５】
0005127414.tif 000017
【図１６】
0005127414.tif 000018
【図１７】
0005127414.tif 000019
【図１８】
0005127414.tif 000020
【図１９】
0005127414.tif 000021
【図２０】
0005127414.tif 000022