以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
図1は、本発明の実施の形態の1つにおける情報処理システムの概要の一例を示す図である。図1を参照して、情報処理システムは、複合装置1と、外部サーバー3と、を含む。複合装置1と、外部サーバー3とは、インターネット5で接続されている。インターネット5の接続形態は有線または無線を問わない。インターネット5は、ローカルエリアネットワークであってもよい。
外部サーバー3は、一般的なコンピューターであり、そのハードウェア構成および機能は周知なのでここでは詳細な説明は繰り返さない。外部サーバー3は、予め定められた処理を実行することによりサービスを提供する。外部サーバー3が提供するサービスは、限定するものではないが、ユーザーを認証する処理を実行する認証サービスと、データを管理するファイル管理サービスとする場合を例に説明する。以下、外部サーバー3が提供するサービスを外部サービス(第2のサービス)という。
図2は、本発明の実施の形態の1つにおける複合装置の外観を示す斜視図である。図2を参照して、複合装置1は、画像処理装置として機能するMFP(Multi Function Peripheral)100と、MFP100の下方に配置された内部サーバー200と、MFP100の側面に配置された操作パネル300とを含む。
MFP100は、自動原稿搬送装置120と、原稿読取部130と、画像形成部140と、給紙部150と、を含む。自動原稿搬送装置120は、原稿トレイ上にセットされた複数枚の原稿を1枚ずつ自動的に原稿読取部130の原稿読み取り位置まで搬送し、原稿読取部130により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。
原稿読取部130は、その上面に原稿を読み取るための矩形状の読取面を有する。読取面は、例えばプラテンガラスにより形成される。自動原稿搬送装置120は、読取面の1つの辺に平行な軸を中心に回転可能にMFP100の本体に接続され、開閉可能である。自動原稿搬送装置120の下方に、原稿読取部130が配置されており、自動原稿搬送装置120が回転して開いた状態で、原稿読取部130の読取面が露出する。このため、ユーザーは、原稿読取部130の読取面に原稿を載置可能である。
原稿読取部130は、光を照射する光源と、光を受光する光電変換素子とを含み、読取面に載置された原稿に形成されている画像を走査する。読取領域に原稿が載置されている場合、光源から照射された光は原稿で反射し、反射した光が光電変換素子で結像する。光電変換素子は、原稿で反射した光を受光すると、受光した光を電気信号に変換した画像データを生成する。
給紙部150は、用紙を収容するための2つの給紙トレイを含む。給紙部150は、2つの給紙トレイのいずれかに収容された用紙を画像形成部140に搬送する。画像形成部140は、周知の電子写真方式により画像を形成するものであって、画像データに基づいて、給紙部150により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイ155に排出する。
図3は、複合装置のハードウェア構成の一例を示すブロック図である。図3を参照して、複合装置1は、MFP100と、内部サーバー200と、操作パネル300と、を含む。MFP100と内部サーバー200とは、LANケーブル7で接続される。
内部サーバー200は、一般的なコンピューターであり、内部サーバー200の全体を制御するための第2CPU(中央演算処理装置)201と、第1CPU201が実行するためのプログラムを記憶するROM(Read Only Memory)202と、第1CPU201の作業領域として使用されるRAM(Random Access Memory)203と、データを不揮発的に記憶するハードディスクドライブ(HDD)204と、第1CPU201をLANケーブル7に接続する第1LAN通信部205と、外部記憶装置206と、を含む。第1CPU201、ROM202、RAM203、HDD204、第1LAN通信部205および外部記憶装置206はバス221に接続される。
ROM202は、第1CPU201が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM203は、第1CPU201がプログラムを実行する際の作業領域として用いられる。
第1LAN通信部205は、第1CPU201をネットワークに接続するためのインターフェースである。第1LAN通信部205は、TCP(Transmission Control Protocol)またはFTP(File Transfer Protocol)等の通信プロトコルで、ネットワークに接続されたコンピューターと通信する。ここでは、第1LAN通信部205は、インターネット5およびLANケーブル7と接続される。このため、第1LAN通信部205は、第1CPU201をインターネット5を介して外部サーバー3と接続するためのインターフェースであるとともに、第1CPU201をLANケーブル7を介してMFP100と接続するためのインターフェースである。なお、第1LAN通信部205が接続されるネットワークは、インターネット5およびLANケーブル7に限らず、他のLANのケーブルに接続されてもよい。また、第1CPU201は、第1LAN通信部205によってインターネット5に接続されるので、外部サーバー3とは別のコンピューターと接続が可能である。
HDD204は、大容量記憶装置であり、第1CPU201により制御される。第1CPU201は、HDD204に記憶されたデータを読出し可能であり、また、HDD204にデータを書き込み可能である。
外部記憶装置206は、第1CPU201により制御され、CD(Compact Disk)−ROM206A、または半導体メモリが装着される。第1CPU201は、外部記憶装置206を制御して、CD−ROM206Aまたは半導体メモリに記憶されたデータの読出し、または、CD−ROM206Aまたは半導体メモリにデータを書き込みが可能である。
操作パネル300は、表示部305と、操作部307と、を含む。表示部305および操作部307は、内部サーバー200のバス221に接続され、第1CPU201により制御される。
表示部305は、例えば、液晶表示装置(LCD)であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、LCDに代えて、画像を表示する装置であれば、例えば、有機EL(electroluminescence)ディスプレイを用いることができる。
操作部307は、タッチパネル321と、ハードキー部323とを含む。タッチパネル321は、静電容量方式である。なお、タッチパネル321は、静電容量方式に限らず、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式等の他の方式を用いることができる。
タッチパネル321は、表示部305の上面または下面に重畳して設けられる。ここでは、タッチパネル321の検出面のサイズと、表示部305の表示面のサイズとを同じにしている。このため、表示面の座標系と検出面の座標系は同じである。タッチパネル321は、ユーザーが、表示部305の表示面を指示する位置を検出面で検出し、検出した位置の座標を示す位置情報を第1CPU201に出力する。表示面の座標系と検出面の座標系は同じなので、タッチパネル321が出力する位置情報で特定される座標を、表示部305の表示面の座標に置き換えることができる。ハードキー部323は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。
MFP100は、第2CPU111と、第2LAN通信部112と、ROM113と、RAM114と、ファクシミリ部115と、自動原稿搬送装置120と、原稿読取部130と、画像形成部140と、給紙部150と、を含む。第2CPU111は、第2LAN通信部112、ROM113、RAM114、ファクシミリ部115、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150と接続され、MFP100の全体を制御する。
ROM113は、第2CPU111が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。RAM114は、第2CPU111がプログラムを実行する際の作業領域として用いられる。また、RAM114は、原稿読取部130から連続的に送られてくる画像データを一時的に記憶する。
ファクシミリ部115は、公衆交換電話網(PSTN)に接続され、PSTNにファクシミリデータを送信する、またはPSTNからファクシミリデータを受信する。ファクシミリ部115は、受信したファクシミリデータを画像形成部140でプリント可能なプリントデータに変換して、画像形成部140に出力する。これにより、画像形成部140は、ファクシミリ部115により受信されたファクシミリデータの画像を用紙に形成する。また、ファクシミリ部115は、原稿読取部130が原稿を読み取って出力する画像データをファクシミリデータに変換して、PSTNに接続されたファクシミリ装置に送信する。
第2LAN通信部112は、第1CPUをLANケーブル7に接続された内部サーバー200に接続するためのインターフェースである。第2LAN通信部112は、TCPまたはFTP等の通信プロトコルで、LANケーブル7に接続された内部サーバー200と通信する。なお、第2LAN通信部112が接続されるネットワークの接続形態は有線または無線を問わない。また、LANケーブル7は、MFP100とは別の他のコンピューターと接続されてもよい。この場合、第2LAN通信部112は、LANケーブル7に接続された他のコンピューターと通信可能となる。また、LANケーブル7がインターネットに接続される場合には、第2LAN通信部112は、インターネットに接続された他のコンピューターと通信可能となる。
HDD204および外部記憶装置206は、第1CPU201によりMFP100と共有設定されており、MFP100からアクセス可能に設定される。このため、第2CPU111は、HDD204または外部記憶装置206に装着されたCD−ROM206Aに記憶されたデータを読出し可能であり、また、それらにデータを書き込み可能である。
本実施の形態においては、第2CPU111はROM113に記憶されたプログラムを実行する例を説明するが、第2CPU111はHDD204または外部記憶装置206に装着されたCD−ROM206A等から第2CPU111が実行するためのプログラムを読出し、読み出したプログラムをRAM114にロードして実行するようにしてもよい。同様に、第1CPU201はHDD204または外部記憶装置206に装着されたCD−ROM206A等から第1CPU201が実行するためのプログラムを読出し、読み出したプログラムをRAM203にロードして実行するようにしてもよい。
なお、第2CPU111または第1CPU201それぞれが実行するためのプログラムを記憶する記録媒体としては、CD−ROM206Aに限られず、フレキシブルディスク、カセットテープ、光ディスク(MO(Magnetic Optical Disc)/MD(Mini Disc)/DVD(Digital Versatile Disc))、ICカード、光カード、マスクROM、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)などの半導体メモリ等の媒体でもよい。
さらに、第2CPU111または第1CPU201がインターネットに接続されたコンピューターからプログラムをダウンロードしてHDD204に記憶する、または、インターネットに接続されたコンピューターがプログラムをHDD204に書込みするようにしてもよい。この場合、第2CPU111は、HDD204に記憶されたプログラムをRAM114にロードして実行し、第1CPU201は、HDD204に記憶されたプログラムをRAM203にロードして実行する。ここでいうプログラムは、第2CPU111または第1CPU201により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
本実施の形態におけるMFP100においては、外部からMFP100を制御するために、予め制御コマンドが定められている。ここでは、外部からMFP100を制御するために予め定められた制御コマンドをAPIコマンドという。MFP100は、APIコマンドが入力されると、APIコマンドに従って処理を実行する。APIコマンドは、MFP100が実行する複数の処理にそれぞれ対応するコマンドであって、MFP100の外部からMFP100に処理を実行させることを可能にしたコマンドである。また、MFP100においては、APIコマンドを受信する単一の外部装置として内部サーバー200が設定される。例えば、MFP100に内部サーバー200を識別するための装置識別情報が設定される。装置識別情報は、例えば、IPアドレス等のネットワークアドレスを用いることができる。MFP100には、内部サーバーからの指示により、APIコマンドを受信する外部装置として内部サーバー200が設定される。
ここで、MFP100が備える第2LAN通信部112、ROM113、RAM114、ファクシミリ部115、自動原稿搬送装置120、原稿読取部130、画像形成部140および給紙部150を、MFP100が制御するハードウェア資源という。
第2CPU111は、第2LAN通信部112を制御し、LANケーブル7を介して内部サーバー200からAPIコマンドを受信することにより、内部サーバー200により制御される。第2CPU111が実行する処理は、ハードウェア資源を制御してジョブを実行するジョブ実行処理と、パラメータを設定する設定処理と、を含む。設定処理により設定されるパラメータは、例えば、ジョブ実行処理の実行を制限することを定めるパラメータ、ハードウェア資源を管理するパラメータを含む。
第2CPU111は、APIコマンドによって定まる設定処理を実行する場合、ジョブ実行処理の実行を制限することを定めるパラメータを設定する。その後、第2CPU111は、ジョブ実行処理の実行を指示するAPIコマンドを受信する場合、設定されたパラメータに従ってジョブ実行処理を実行する。例えば、第2CPU111は、設定処理が実行されて、ジョブ実行処理の実行を制限することを定めるパラメータとして、ジョブ実行処理の実行を指示したユーザーを制限することを定めるパラメータが設定される場合、ユーザーが認証されていることを条件にジョブ実行処理を実行する。また、第2CPU111は、設定処理が実行されて、ジョブ実行処理の実行を制限することを定めるパラメータとして、ジョブ実行処理の実行を指示したユーザーの権限を制限することを定めるパラメータが設定される場合、ユーザーに与えられた権限の範囲内でジョブ実行処理を実行する。
また、第2CPU111は、第2LAN通信部112を制御し、LANケーブル7を介して内部サーバー200に応答情報を送信する場合がある。応答情報は、第2CPU111がAPIコマンドに従ってジョブ実行処理を実行した結果を示す情報を含む。この場合における応答情報は、ジョブ実行処理の実行を指示するAPIコマンドによる要求に応答する情報である。第2CPU111は、APIコマンドに従ってジョブ実行処理を実行するが、APIコマンドに従って設定処理が実行されている場合には、設定処理により設定されたパラメータに従ってジョブ実行処理を実行し、応答情報を送信する。このため、第2CPU111がAPIコマンドに従ってジョブ実行処理を実行した結果を示す情報は、第2CPU111が設定処理を実行することにより設定されるパラメータによって異なる場合がある。
例えば、第2CPU111は、設定処理が実行されて、ハードウェア資源を管理することを定めるパラメータとして、ジョブ実行処理を実行した履歴を管理することを定めるパラメータが設定される場合、APIコマンドに従ってジョブ実行処理を実行した結果を応答情報として、内部サーバー200に送信する。この場合、設定処理が実行されてユーザーを制限することを定めるパラメータが設定される場合、ジョブ実行処理の実行を指示するAPIコマンドに対応する応答情報は、ジョブ実行処理を実行した結果に加えてジョブ実行処理の実行を指示したユーザー識別情報を含む。
また、第2CPU111は、設定処理が実行されて、ハードウェア資源を管理することを定めるパラメータとして、プリント枚数を管理するパラメータがされる場合、ジョブ実行処理を実行してプリントした用紙の枚数を応答情報として、内部サーバー200に送信する。この場合、設定処理が実行されてユーザーを制限することを定めるパラメータが設定される場合、ジョブ実行処理の実行を指示するAPIコマンドに対応する応答情報は、ジョブ実行処理を実行した結果であるプリント枚数に加えてジョブ実行処理の実行を指示したユーザー識別情報を含む。
また、第2CPU111は、APIコマンドにより特定されるジョブ実行処理が原稿を読み取るスキャンジョブの場合には、応答情報として、原稿を読み取って得られる画像データを内部サーバー200に送信する。この場合、設定処理が実行されてユーザーを制限することを定めるパラメータが設定される場合、ジョブ実行処理の実行を指示する応答情報は、ジョブ実行処理を実行した結果であるプリント枚数に加えてジョブ実行処理の実行を指示したユーザー識別情報を含む。
本実施の形態における複合装置1は、内部サーバー200がMFP100を制御する。また、内部サーバー200は、外部サーバー3が提供する外部サービスとは別にサービスを提供する。以下、内部サーバー200が提供するサービス(第1のサービス)を内部サービスという。内部サーバー200は、MFP100にAPIコマンドを受信する装置として内部サーバー200を登録させることにより、外部サーバー3にMFP100のために外部サービスを提供させるとともに、MFP100のために内部サービスを提供する。以下、これについて具体的に説明する。
図4は、内部サーバーが備える第1CPUが有する機能と外部サーバーの機能の一例を示す図である。図4に示す内部サーバー200が備える第1CPU201が有する機能は、第1CPU201が、ROM202、HDD204またはCD−ROM206Aに記憶された連携プログラムを実行することにより、第1CPU201に形成される機能である。図4を参照して、第1CPU201は、内部サービスを提供する管理モジュール251と、MFP100を管理する管理部253と、を含む。管理モジュール251は、第1CPU201が内部サービスを提供するための処理を定めたアプリケーションプログラムを実行するタスクの集合である。管理モジュール251が提供する内部サービスは、内部サーバー200にインストールされるアプリケーションプログラムによって定まる。
ここでは、管理モジュール251は、アカウント管理部257と、カウンター管理部259と、を含む。アカウント管理部257は、MFP100を操作するユーザーが属する部門ごとにMFP100に実行させることが可能な処理の範囲を管理するアカウント管理サービスを提供し、カウンター管理部259は、MFP100が画像を形成した枚数をユーザーおよび部門ごとに管理するカウンター管理サービスを提供する。アカウント管理部257は、アカウント管理サービスを提供するためのアプリケーションプログラムを第1CPU201が実行するタスクである。カウンター管理部259は、カウンター管理サービスを提供するためのアプリケーションプログラムを第1CPU201が実行するタスクである。
ここで、外部サーバー3の機能を説明する。本実施の形態においては、外部サーバー3は、ユーザーを認証する処理を実行する認証サービスと、データを管理するファイル管理サービスとを外部サービスとして提供する。外部サーバー3は、認証サービスを提供するための認証管理部351と、ファイル管理サービスを提供するためのファイル管理部353と、を含む。認証管理部351およびファイル管理部353それぞれは、外部サーバー3が備えるCPUが外部サービスを提供するための処理を定めたアプリケーションプログラムを実行するタスクである。
第1CPU201が有する管理部253は、設定部261と、関連付部263と、中継部265と、を含む。中継部265は、サービス管理部271と、要求部273と、応答情報受付部275と、サービス決定部277と、サービス依頼部279と、を含む。
設定部261は、外部サービスおよび内部サービスをMFP100のために提供されるサービスとして設定する。例えば、ユーザーが、外部サーバー3に外部サービスを提供する先としてMFP100を登録する場合、複合装置1のURL(Uniform Resource Locator)を外部サーバー3に入力する。ここで、複合装置1の内部サーバー200がインターネット5に接続されているので、複合装置1のURLは内部サーバー200に割り当てられたURLである。外部サーバー3は、複合装置1のURLが登録されることに応じて、サービスの提供を開始することを指示するAPIコマンドを、インターネット5を介して複合装置1のURL宛てに送信する。APIコマンドは、外部サーバー3が提供する外部サービスを識別するためのサービス識別情報を含む。サービス識別情報は、例えば、外部サービスに割り当てられたURLである。
例えば、ユーザーが、管理モジュール251に内部サービスの提供を要求する場合、管理モジュール251は、サービスの提供を開始することを指示するAPIコマンドを設定部261に出力する。管理モジュール251が出力するAPIコマンドは、内部サービスを識別するためのサービス識別情報を含む。
設定部261は、第1LAN通信部205が外部サーバー3からサービスの提供を開始することを指示するAPIコマンドを受信すると、第1LAN通信部205が受信したAPIコマンドを受け付け、管理モジュール251からサービスの提供を開始することを指示するAPIコマンドが入力されると、そのAPIコマンドを受け付ける。以下、第1LAN通信部205が受信したAPIコマンドで特定される外部サービスと、管理モジュール251から入力されるAPIコマンドで特定される内部サービスとを、区別しない場合に単にサービスという。設定部261は、サービスの提供を開始することを指示するAPIコマンドを受け付けることに応じて、そのAPIコマンドにより特定されるサービスをMFP100のために提供されるサービスとして登録するとともに、MFP100の設定をAPIコマンドにより特定されるサービスの提供を受けることが可能な状態に変更するために、そのAPIコマンドをMFPに転送する。
具体的には、設定部261は、APIコマンドにより特定されるサービスを登録するために、APIコマンドをサービス管理部271および関連付部263に出力する。また、設定部261は、MFP100の設定を変更するために、要求部273にAPIコマンドの転送を依頼する。
要求部273は、設定部261からAPIコマンドの転送が依頼されることに応じて、MFP100にAPIコマンドを、外部サーバー3または管理モジュール251に代わって送信する。具体的には、要求部273は、第1LAN通信部205を制御して、APIコマンドをMFP100に送信する。MFP100は、APIコマンドを受信すると、APIコマンドを実行し、APIコマンドで特定されるサービスの提供を受けるために必要なパラメータを設定する。サービスの提供を受けるために必要なパラメータは、サービスに対して予め定められており、認証サービスに対して、ジョブ実行処理の実行を指示したユーザーを制限することを定めるパラメータである。また、アカウント管理サービスに対して、ジョブ実行処理の実行を指示したユーザーが属する部門により実行可能な処理の範囲を制限することを定めるパラメータが定められている。また、カウンター管理サービスに対して、ジョブ実行処理を実行した結果として返信する項目を定めるパラメータが定められている。項目は、APIコマンドで定まるサービスに与えられ、そのサービスを提供するために用いられる入力情報の種類であり、サービスに対して予め定められている。例えば、カウンター管理サービスに対して定められる項目は、ジョブ実行処理の実行を指示したユーザーのユーザー識別情報、ジョブ実行処理を実行して画像が形成された枚数を含む。
関連付部263は、設定部261からサービスの提供を開始することを指示するAPIコマンドが入力されることに応じて、そのAPIコマンドで特定されるサービスに、MFP100が出力する応答情報の種類を関連付けた関連付テーブルを生成する。関連付部263は、生成された関連付テーブルをサービス決定部277に出力する。関連付部263は、APIコマンドで特定されるサービスに与えられる入力情報に基づいて、MFP100が出力する応答情報の種類を決定する。サービスに与えられる入力情報は、予め定めておくようにしてもよいし、そのサービスの提供元から取得するようにしてもよい。
図5は、関連付テーブルの一例を示す図である。図5を参照して、関連付テーブルは、サービスごとに、サービスと応答情報とを関連付ける。例えば、認証サービスは、ユーザーを認証する処理であり、与えられる入力情報は、ユーザー識別情報とパスワードである。これらの情報は、ユーザーが入力する情報であり、MFP100が出力する応答情報ではない。このため、認証サービスに対応する関連付レコードにおいて、サービスに応答情報は関連付けられない。
ファイル管理サービスは、外部サーバー3に記憶されたデータを画像形成するためのプリントジョブを生成する出力処理と、MFP100が原稿を読み取るスキャン処理を実行して取得される画像を外部サーバー3に記憶する入力処理とを含む。ファイル管理サービスの出力処理に対して与えられる入力情報は、外部サーバー3に記憶されたデータであり、ユーザーが入力する情報なので、MFP100が出力する応答情報ではない。ファイル管理サービスの入力処理に対して与えられる入力情報は、MFP100が実行するスキャン処理の結果得られる画像である。関連付部263は、ファイル管理サービスが登録される場合、ファイル管理サービスのサービス識別情報と、MFP100が実行するスキャン処理の結果得られる画像を示す種類識別情報とを含む関連付レコードを生成し、生成された関連付レコードを関連付テーブルに追加する。
アカウント管理部257が提供するアカウント管理サービスは、ユーザーが属する部門に対してMFP100に実行させることが可能な処理の範囲を決定する処理であり、与えられる入力情報は、ユーザー識別情報と部門名とである。これらの情報は、ユーザーが入力する情報であり、MFP100が出力する応答情報ではない。このため、認証サービスに対応する関連付レコードにおいて、サービスに応答情報は関連付けられない。
カウンター管理サービスは、MFP100に処理を指示したユーザーおよび部門ごとに、MFP100が実行した処理量を記憶する処理であり、与えられる入力情報は、ユーザー識別情報と、部門名と、処理量である。処理量は、プリントジョブを実行する処理に対して画像を形成する用紙の枚数を示す画像形成枚数であり、スキャン処理に対して読み取った原稿の枚数を示す原稿枚数である。関連付部263は、カウンター管理サービスに、入力情報としてユーザー識別情報と部門名と処理量とを関連付ける。具体的には、関連付部263は、カウンター管理サービスが登録される場合、カウンター管理サービスのサービス識別情報と、ユーザー識別情報を示す種類識別情報と、部門名を識別するための種類識別情報と、画像形成枚数を示す種類識別情報と、を含む関連付レコードと、カウンター管理サービスのサービス識別情報と、ユーザー識別情報を示す種類識別情報と、部門名を示す種類識別情報と、原稿読取枚数を示す種類識別情報と、を含む関連付レコードと、を生成し、生成された2つの関連付レコードを関連付テーブルに追加する。
図4に戻って、サービス管理部271は、設定部261からサービスの提供を開始することを指示するAPIコマンドが入力されることに応じて、そのAPIコマンドで特定されるサービスを登録し、登録されたサービスを管理する。サービス管理部271は、登録されたサービスのサービス識別情報をサービス依頼部279に出力する。
サービス管理部271が複数のサービスを登録する場合、登録された複数のサービスが、先行サービスと、先行サービスが提供された結果を利用する後続サービスと、を含む場合がある。サービス管理部271は、先行サービスと後続サービスとの順番を決定し、決定された順番をサービス依頼部279に出力する。ここでは、認証サービス、ファイル管理サービス、アカウント管理サービス、カウンター管理サービスが登録されている場合を例に説明する。ファイル管理サービス、アカウント管理サービスおよびカウンター管理サービスは、認証サービスにより認証されたユーザーのユーザー識別情報を利用するので、認証サービスが第1番の順番に決定される。ファイル管理サービスおよびカウンター管理サービスは、アカウント管理サービスで特定されるユーザーの部門の部門名を利用するので、アカウント管理サービスが第2番の順番に決定される。カウンター管理サービスは、MFP100がジョブが実行した結果を利用し、ファイル管理サービスが提供されてMFP100がジョブを実行するので、ファイル管理サービスが第3番の順番に決定され、カウント管理サービスが第4番の順番に決定される。
また、第1番目の認証サービスと、第2番目のアカウント管理サービスとは、複合装置1を操作するユーザーを特定するためのサービスであるため、サービス管理部271は、ユーザーがMFP100を操作する段階で、第1番目の認証サービスと、第2番目のアカウント管理サービスとの提供を自動的に受けるように設定する。さらに、第3番目のファイル管理サービスは、MFP100に処理を実行させるサービスであるため、ユーザーにより指示された場合にサービスの提供を受けるように設定する。第4番目のカウンター管理サービスは、MFP100が処理を実行した結果を用いるので、MFP100が処理を実行した後にサービスの提供を受けるように設定する。
サービス依頼部279は、サービス管理部271から登録された1以上のサービスそれぞれのサービス識別情報と、サービスの順番と、が入力される。サービス依頼部279は、サービスの順番に従って、管理モジュール251と、外部サーバー3とにサービスの提供を依頼する。
サービス依頼部279は、ユーザーが複合装置1を操作するために、操作部307を操作すると、第1番目の認証サービスの提供を受けるために、外部サーバー3に認証サービスの提供を依頼する。具体的には、サービス依頼部279は、第1LAN通信部205を制御して、外部サーバー3との間で通信セッションを確立する。ここで確立される通信セッションをサーバーセッションという。サービス依頼部279は、サーバーセッションを介して、MFP100に代わって認証サービスの提供を依頼する信号を送信する。外部サーバー3の認証管理部351は、認証画面を返信するので、サービス依頼部279は、サーバーセッションを介して外部サーバー3から受信する認証画面を表示部305に表示する。そして、サービス依頼部279は、ユーザーが操作部307に入力する認証情報を受け付け、受け付けられた認証情報を、サーバーセッションを介して外部サーバー3に送信する。認証情報は、ユーザー識別情報とパスワードとを含む。外部サーバー3の認証管理部351は、複合装置1から受信される認証情報に基づいて認証し、認証結果を示すAPIコマンドを返信する。
サービス依頼部279は、サーバーセッションを介して外部サーバー3から受信する認証結果を示すAPIコマンドが認証成功を示す場合、第1LAN通信部205を制御して、MFP100との間で通信セッションを確立し、MFP100を操作するユーザーの通知を要求部273に依頼する。ここで、MFP100との間で確立された通信セッションをMFPセッションという。サービス依頼部279は、認証されたユーザーがログアウトするまで、または、操作部307が操作を受け付けることなく所定の時間が経過するまでMFPセッションを維持する。MFP100は、MFPセッションが確立されている間は、内部サーバー200をAPIコマンドを受信する特定の外部装置に設定する。換言すれば、MFP100は、MFPセッションが確立されている間は、内部サーバー200から受信されるAPIコマンドを実行することにより設定するパラメータを維持し、パラメータに従ってAPIコマンドに従って処理を実行するが、MFPセッションが切断されると、それまでに設定されたパラメータをデフォルト値に再設定する。
要求部273は、MFPセッションを介してMFP100に、外部サーバー3から受信される認証結果を示すAPIコマンドを外部サーバー3に代わって送信する。これにより、APIコマンドを受信するMFP100は、外部サーバー3により認証されたユーザーを、MFP100を操作するユーザーとして設定する。また、サービス依頼部279は、サーバーセッションを介して外部サーバー3から受信する認証結果が認証失敗を示す場合、サーバーセッションを切断する。
サービス依頼部279は、複合装置1を操作するユーザーを認証する場合、第2番目のアカウント管理サービスの提供を受けるために、管理モジュール251にMFP100に代わってアカウント管理サービスの提供を依頼する。具体的には、サービス依頼部279は、管理モジュール251に、アカウント管理サービスの提供を依頼する信号を出力する。管理モジュール251のアカウント管理部257は、アカウント管理サービスの提供の依頼を受けると、表示部305に部門入力画面を表示する。部門入力画面は、ユーザーを識別するためのユーザー識別情報と、そのユーザーが属する部門の部門名と、の入力を受け付けるための画面である。なお、アカウント管理サービスの提供を依頼する信号に、外部サーバー3により認証されたユーザーのユーザー識別情報を含めるようにしてもよい。この場合、アカウント管理部257は、部門入力画面のユーザー識別情報を入力する領域に、認証されたユーザーのユーザー識別情報を設定した状態の部門入力画面を表示部305に表示する。
サービス依頼部279は、ユーザーが操作部307に入力する部門名、必要に応じてユーザー識別情報を受け付け、受け付けられた部門名、および必要に応じてユーザー識別情報をアカウント管理部257に出力する。
アカウント管理部257は、ユーザー識別情報と部門名とから、その部門に対してMFP100に実行させることができる処理の範囲を決定し、部門に対して実行可能な処理の範囲を示すAPIコマンドを返信する。サービス依頼部279は、アカウント管理部257から入力されるAPIコマンドの送信を要求部273に依頼する。要求部273は、MFPセッションを介してMFP100に、管理モジュールに代わってAPIコマンドを送信する。MFP100は、APIコマンドを実行し、部門に対して実行可能な処理の範囲を設定する。
サービス依頼部279は、操作部307がファイル管理サービスを選択する操作を受け付けることに応じて、ファイル管理サービスの順番が正しいか否かを確認する。具体的には、現在確立されているMFPセッションが確立されている間に、ファイル管理サービスよりも順番が前のサービスの提供を受けているか否かを判断する。ここでは、ファイル管理サービスの順番は第3番であり、第1番の認証サービスと第2番のアカウント管理サービスとの提供を受けているか否かを判断する。現在確立されているMFPセッションが確立されている間にファイル管理サービスよりも順番が前のサービスの提供を受けていない場合には、表示部305に、ファイル管理サービスの提供を受けることができないことを通知するエラー画面を表示する。
サービス依頼部279は、現在確立されているMFPセッションが確立されている間にファイル管理サービスよりも順番が前のサービスの全ての提供を受けている場合は、ファイル管理サービスの提供を受けるために、MFP100に代わって外部サーバー3にファイル管理サービスの提供を依頼する。具体的には、サービス依頼部279は、サーバーセッションを介して、ファイル管理サービスの提供を依頼する信号を送信する。
外部サーバー3のファイル管理部353は、ファイル管理画面を返信するので、サービス依頼部279は、サーバーセッションを介して外部サーバー3から受信するファイル管理画面を表示部305に表示する。そして、サービス依頼部279は、ユーザーが操作部307に入力する操作を、サーバーセッションを介して外部サーバー3に送信する。
外部サーバー3は、ユーザーが操作部307に入力する操作に従って処理を実行することにより、ファイル管理サービスを提供する。ここで、ファイル管理部353が提供するファイル管理サービスは、外部サーバー3に記憶されたデータをMFP100にプリントさせるためのプリントジョブを生成する出力処理と、MFP100が原稿を読み取るスキャン処理を実行して取得される画像を外部サーバー3に記憶する入力処理とを含む。
<出力処理>
ユーザーによりファイル管理サービスとして出力処理が選択される場合、外部サーバー3は、プリントジョブの実行を指示するAPIコマンドを複合装置1に送信するので、サービス依頼部279は、サーバーセッションを介して、外部サーバー3からプリントジョブの実行を指示するAPIコマンドを受信することに応じて、プリントジョブの実行を指示するAPIコマンドの送信を要求部273に依頼する。
要求部273は、サービス依頼部279からプリントジョブの実行を指示するAPIコマンドの送信が依頼されると、MFPセッションを介してMFP100に、プリントジョブの実行を指示するAPIコマンドを外部サーバー3に代わって送信する。プリントジョブの実行を指示するAPIコマンドを受信するMFP100は、APIコマンドで特定される外部サーバー3により生成されたプリントジョブの実行が可能か否かを判断する。
MFP100は、プリントジョブの実行を指示するAPIコマンドを受信する前に、MFPセッションを介して受信されたAPIコマンドを実行して、MFP100を操作するユーザーと、ユーザーが属する部門と、実行可能な処理の範囲とを設定している。このため、MFP100は、設定されているMFP100を操作するユーザーと、設定されている実行可能な処理の範囲に基づいて、APIコマンドで特定されるプリントジョブが実行可能か否かを判断する。具体的には、APIコマンドで特定されるプリントジョブは、そのプリントジョブの実行を指示したユーザーのユーザー識別情報が含まれているので、MFP100は、プリントジョブに含まれるユーザー識別情報と、MFP100を操作するユーザーとして設定されているユーザーのユーザー識別情報とが同じであることを確認する。また、MFPは、プリントジョブの実行が、設定されている実行可能な処理の範囲内であることを確認する。MFP100は、プリントジョブが実行可能ならばプリントジョブを実行し、ユーザー識別情報と、部門名と、プリントジョブの実行結果と、画像形成枚数と、を応答情報として、MFPセッションを介して返信する。プリントジョブの実行結果は、プリントジョブの実行が完了したか否かを示す。
<入力処理>
ユーザーによりファイル管理サービスとして入力処理が選択される場合、外部サーバー3は、スキャンジョブの実行を指示するAPIコマンドを複合装置1に送信するので、サービス依頼部279は、サーバーセッションを介して、外部サーバー3からスキャンジョブの実行を指示するAPIコマンドを受信することに応じて、スキャンジョブの実行を指示するAPIコマンドの送信を要求部273に依頼する。
要求部273は、サービス依頼部279からスキャンジョブの実行を指示するAPIコマンドの送信が依頼されると、MFPセッションを介してMFP100に、スキャンジョブの実行を指示するAPIコマンドを外部サーバー3に代わって送信する。スキャンジョブの実行を指示するAPIコマンドを受信するMFP100は、スキャンジョブの実行が可能か否かを判断する。
MFP100は、スキャンジョブの実行を指示するAPIコマンドを受信する時点で設定されているMFP100を操作するユーザーと実行可能な処理の範囲とに基づいて、APIコマンドで特定されるスキャンジョブが実行可能か否かを判断する。具体的には、APIコマンドで特定されるスキャンジョブは、そのスキャンジョブの実行を指示したユーザーのユーザー識別情報が含まれている。MFP100は、スキャンジョブに含まれるユーザー識別情報と、MFP100を操作するユーザーとして設定されているユーザーのユーザー識別情報とが同じであることを確認する。また、MFPは、スキャンジョブの実行が、設定されている実行可能な処理の範囲内であることを確認する。MFP100は、スキャンジョブが実行可能ならばスキャンジョブを実行し、ユーザー識別情報と、部門名と、スキャンジョブの実行結果と、原稿読取枚数と、を応答情報として、MFPセッションを介して返信する。スキャンジョブの実行結果は、原稿を読み取って得られる画像を含む。
応答情報受付部275は、第1LAN通信部205が、MFPセッションを介して、MFP100から受信する応答情報を受け付ける。応答情報受付部275は、応答情報を受け付けることに応じて、応答情報をサービス決定部277に出力する。
サービス決定部277は、応答情報受付部275から応答情報が入力されることに応じて、関連付部263から入力される関連付テーブルを参照して、応答情報に対応するサービスを決定する。サービス決定部277は、応答情報に対して決定されたサービスを決定する場合、サービスを決定する元になった応答情報を入力情報に決定し、決定されたサービスを識別するためのサービス識別情報と入力情報との組を、サービス依頼部279に出力する。
具体的には、MFP100がスキャンジョブを実行する場合は、応答情報は、ユーザー識別情報と、部門名と、画像と、原稿読取枚数を含む。サービス決定部277は、MFP100がスキャンジョブを実行する場合であって、サービス依頼部279がファイル管理サービスの提供を依頼している場合には、応答情報である画像に対してファイル管理サービスを決定し、画像を入力情報に決定するとともに、応答情報であるユーザー識別情報、部門名、および原稿読取枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および原稿読取枚数を入力情報に決定する。そして、サービス決定部277は、ファイル管理サービスのサービス識別情報と入力情報に決定された画像との組と、カウンター管理サービスのサービス識別情報と、入力情報に決定されたユーザー識別情報、部門名、および原稿読取枚数と、の組と、をサービス依頼部279に出力する。また、MFP100がスキャンジョブを実行する場合であって、サービス依頼部279がファイル管理サービスの提供を依頼していない場合には、サービス決定部277は、応答情報であるユーザー識別情報、部門名、および原稿読取枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および原稿読取枚数を入力情報に決定する。そして、サービス決定部277は、カウンター管理サービスのサービス識別情報と、入力情報に決定されたユーザー識別情報、部門名、および原稿読取枚数と、の組をサービス依頼部279に出力する。
さらに、MFP100がプリントジョブを実行する場合は、応答情報は、ユーザー識別情報と、部門名と、画像形成枚数とを含む。この場合は、応答情報であるユーザー識別情報、部門名、および画像形成枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および画像形成枚数を入力情報に決定する。そして、カウンター管理サービスのサービス識別情報と、入力情報に決定されたユーザー識別情報、部門名、および画像形成枚数と、の組をサービス依頼部279に出力する。
サービス依頼部279は、サービス決定部277からサービス識別情報と入力情報との組が入力されることに応じて、入力情報を、外部サーバー3および管理モジュール251のうちサービス識別情報で特定されるサービスを提供する一方に出力する。例えば、サービス依頼部279は、サービス決定部277からカウンター管理サービスのサービス識別情報が入力される場合、入力情報は、ユーザー識別情報と、部門と、画像形成枚数または原稿読取枚数と、を含む。サービス依頼部279は、入力情報に含まれるユーザー識別情報と、部門と、画像形成枚数または原稿読取枚数とをMFP100に代わって管理モジュール251に出力し、管理モジュール251にカウンター管理サービスの提供を要求する。これにより、カウンター管理部259により、入力情報に基づいてカウンター管理サービスを提供するための処理が実行される。
また、サービス依頼部279は、サービス決定部277からファイル管理サービスのサービス識別情報と入力情報との組が入力される場合、入力情報は画像を含む。サービス依頼部279は、入力情報に含まれる画像を、サーバーセッションを介して外部サーバー3にMFP100に代わって送信し、外部サーバー3にファイル管理サービスの提供を要求する。これにより、外部サーバー3により、入力情報の画像を外部サーバー3に記憶するファイル管理サービスの入力処理が実行される。
図6は、サービス登録処理の流れの一例を示すフローチャートである。サービス登録処理は、サービス登録処理は、内部サーバー200が備える第1CPU201が、ROM202、HDD204またはCD−ROM206Aに記憶された連携プログラムを実行することにより、第1CPU201により実行される処理である。図6を参照して、サービスの登録が要求された否かを判断する(ステップS01)。第1LAN通信部205が外部サーバー3からサービスの提供を開始することを指示するAPIコマンドを受信する場合、または、管理モジュール251からサービスの提供を開始することを指示するAPIコマンドが入力される場合、サービスの登録が要求されたと判断する。サービスの登録が要求されるまで待機状態となり(ステップS01でNO)、サービスの登録が要求されたならば(ステップS01でYES)、処理をステップS02に進める。
ステップS02においては、ステップS01において登録が要求されたサービスの提供を受けるためにMFPの設定を変更する。具体的には、第1LAN通信部205を制御して、ステップS01において、外部サーバー3または管理モジュール251のいずれかから受信されるAPIコマンドをMFP100に送信する。APIコマンドを受信するMFP100は、APIコマンドを実行してパラメータを設定させる。例えば、認証サービスが登録される場合のパラメータは、ジョブの実行を指示したユーザーを制限することを定めるパラメータである。また、アカウント管理サービスが登録される場合のパラメータは、ジョブの実行を指示したユーザーが属する部門により実行可能な処理の範囲を制限することを定めるパラメータである。また、カウンター管理サービスが登録される場合のパラメータは、ジョブを実行した結果として返信する項目を定めるパラメータである。例えば、項目は、ジョブの実行を指示したユーザーのユーザー識別情報、ジョブを実行して画像が形成された用紙の枚数、読み取った原稿の枚数を含む。
次のステップS03においては、関連付レコードを生成する。ステップS01において受け付けられたAPIコマンドに基づいて、APIコマンドで特定されるサービスに、そのサービスに与えられる入力情報の種類を関連付けた関連付レコードを生成する。
そして、登録されたサービスが複数か否かを判断する(ステップS04)。複数のサービスが登録されているならば処理をステップS05に進めるが、そうでなければ処理を終了する。ステップS05においては、処理対象となるサービスを選択する。そして、登録された複数のサービスのうちに、処理対象となるサービスに対して先行サービスが存在するか否かを判断する(ステップS06)。先行サービスは、処理対象となるサービスが使用する情報を提供するサービスである。先行サービスが存在するならば、処理をステップS07に進めるが、そうでなければ処理をステップS08に進める。ステップS07においては、処理対象となるサービスの順番を、先行サービスの後に設定し、処理をステップS08に進める。ステップS08においては、処理対象に選択していないサービスが存在するか否かを判断する。未選択のサービスが存在するならば処理をステップS05に戻すが、存在しなければ処理を終了する。
図7は、連携処理の流れの一例を示すフローチャートである。連携処理は、内部サーバー200が備える第1CPU201が、ROM202、HDD204またはCD−ROM206Aに記憶された連携プログラムを実行することにより、第1CPU201により実行される処理である。ここでは、図6に示したサービス登録処理が実行されて、認証サービス、ファイル管理サービス、アカウント管理サービスおよびカウンター管理サービスが登録されている場合を例に説明する。
図7を参照して、内部サーバー200が備える第1CPU201は、サーバーセッションを確立する(ステップS11)。サーバーセッションは、外部の装置との間で確立される通信セッションである。登録されたサービスのサービス識別情報に基づいて、通信セッションを確立する。ここでは、外部サーバー3が提供する認証サービスおよびファイル管理サービスが登録されているので、外部サーバー3との間で通信セッションを確立する。具体的には、第2LAN通信部112を制御して、外部サーバー3との間で通信セッションを確立する。なお、認証サービスのサービス識別情報とファイル管理サービスのサービス識別情報とは異なるが、認証サービスとファイル管理サービスとは1つの外部サーバー3により提供されるため、認証サービスとファイル管理サービスとに対して、外部サーバー3との間で1つの通信セッションを確立する。
次のステップS12においては、MFPセッションを確立し、処理をステップS13に進める。MFPセッションは、MFP100との間で確立される通信セッションである。第1LAN通信部205を制御して、MFP100との間で通信セッションを確立する。
ステップS13においては、登録されたサービスのうちに独立サービスが存在が存在するか否かを判断する。独立サービスは、MFP100から情報を取得することなく提供を受けることが可能なサービスである。独立サービスが存在するならば処理をステップS14に進めるが、そうでなければ処理をステップS17に進める。ここでは、認証サービスとアカウント管理サービスとが独立サービスに相当するので、処理をステップS14に進める。
ステップS14においては、サービス提供を依頼する。サービスの提供元に提供を依頼する。そして、サービス結果を受信したか否かを判断する(ステップS15)。サービスの提供元は、サービスを提供した結果を示すAPIコマンドを送信するので、サーバーセッションを介して、APIコマンドを受信したならば、サービス結果を受信したと判断する。サービス結果を受信するまで待機状態となり(ステップS15でNO)、サービス結果を受信したならば(ステップS15でYES)、処理をステップS16に進める。なお、サービス結果が否定的な結果を示す場合には、後述するステップS30以降の処理を実行し、処理を終了するようにすればよい。ステップS16においては、ステップS15において受信されたAPIコマンドをMFPに転送し、処理をステップS13に戻す。
ステップS13〜ステップS16の処理を、具体的に説明する。ここでは、独立サービスとして、認証サービスとアカウント管理サービスが相当する。認証サービスの順番がアカウント管理サービスよりも前なので、ステップS14においては、まず、順番が前の認証サービスの提供を、外部サーバー3に依頼する。これにより、サーバーセッションを介して、外部サーバー3と通信し、認証サービスの提供を受ける。外部サーバー3は、認証サービスを提供した結果、認証に成功したか否かを示すAPIコマンドを送信するので、ステップS15において、サーバーセッションを介して、認証に成功したか否かを示すAPIコマンドを受信したならば、サービス結果を受信したと判断する。
ステップS16においては、MFPセッションを介してMFP100に、MFP100を操作するユーザーを通知するAPIコマンドを送信する。これにより、APIコマンドを受信するMFP100は、外部サーバー3により認証されたユーザーを、MFP100を操作するユーザーとして設定する。
次に、ステップS14において、アカウント管理サービスの提供を、管理モジュール251に依頼する。これにより、管理モジュール251によるアカウント管理サービスの提供を受ける。管理モジュール251は、アカウント管理サービスを提供した結果、部門に対してMFP100に実行させることができる処理の範囲を示すAPIコマンドを出力する。ステップS15においては、ステップS14においてサービスの提供を依頼した先、ここでは、管理モジュール251からAPIコマンドが入力されたか否かを判断する。APIコマンドが入力されるまで待機状態となり(ステップS15でNO)、APIコマンドが入力されたならば処理をステップS16に進める。
ステップS16においては、MFPセッションを介して、ステップS15において取得されたAPIコマンドをMFP100に送信する。これにより、APIコマンドを受信するMFP100は、部門に対して実行させることができる処理の範囲を設定する。
ステップS17においては、ユーザーが操作部307に入力する操作を受け付けたか否かを判断する。操作を受け付けたならば処理をステップS18に進めるが、そうでなければ処理をステップS32に進める。ステップS32においては、タイムアウトを判断する。操作部307が操作を受け付けることなく経過する時間が所定の時間を経過するとタイムアウトと判断する。タイムアウトと判断する場合、処理をステップS30に進めるが、そうでなければ処理をステップS17に戻す。
ステップS18においては、操作部307が受け付けた操作がサービスを選択する操作か否かを判断する。サービスを選択する操作を受け付けたならば処理をステップS19に進めるが、そうでなければ処理をステップS27に進める。ステップS19においては、先行サービスが提供済か否かを判断する。ステップS18において選択されたサービスに先行する先行サービスのすべてについてサービスが提供されているか否かを判断する。先行サービスのすべてが提供済ならば処理をステップS20に進めるが、そうでなければ処理をステップS18に戻す。
ステップS20においては、選択されたサービスの提供を依頼する。ここでは、ファイル管理サービスが選択される場合を例に説明する。第1CPU201は、第1LAN通信部205を制御して、外部サーバー3にファイル管理サービスの提供を依頼する。外部サーバー3は、ユーザーにより出力処理が選択される場合、プリントジョブの実行を指示するAPIコマンドを返信し、ユーザーにより入力処理が選択される場合、スキャンジョブの実行を指示するAPIコマンドを返信する。
次のステップS21においては、ステップS20においてサービスの提供を依頼した先、ここでは、外部サーバー3からAPIコマンドを受信したか否かを判断する。APIコマンドを受信するまで待機状態となり(ステップS21でNO)、APIコマンドを受信したならば(ステップS21でYES)、処理をステップS22に進める。
ステップS22においては、ステップS21において受信されたAPIコマンドをMFP100に転送し、処理をステップS23に進める。APIコマンドを受信するMFP100は、ユーザーにより出力処理が選択される場合、プリントジョブの実行を指示するAPIコマンドに従ってプリントジョブを実行し、ユーザー識別情報、部門名、画像形成枚数を含む応答情報を返信し、ユーザーにより入力処理が選択される場合、APIコマンドに従ってスキャンジョブを実行し、ユーザー識別情報、部門名、画像および原稿読取枚数を含む応答情報を返信する。
一方、ステップS27においては、ステップS17において受け付けられる操作が、処理の実行を指示する操作か否かを判断する。処理の実行を指示する操作ならば処理をステップS28に進めるが、そうでなければ処理をステップS29に進める。ステップS28においては、ユーザーによる入力される操作により定まる処理の実行を指示するAPIコマンドをMFP100に送信し、処理をステップS23に進める。APIコマンドを受信するMFP100は、ステップS17において受け付けられた操作に従って処理を実行する。
ステップS23においては、MFP100から応答情報を受信したか否かを判断する。応答情報を受信するまで待機状態となり(ステップS23でNO)、応答情報を受信すると(ステップS23でYES)、処理をステップS24に進める。ステップS24においては、関連付テーブルを参照して、応答情報に対応するサービスを決定する。次のステップS25においては、入力情報を決定し、処理をステップS26に進める。サービスを決定する元になった応答情報を入力情報に決定する。具体的には、MFP100がスキャンジョブを実行する場合であって、ステップS20においてファイル管理サービスの提供を依頼している場合には、応答情報である画像に対してファイル管理サービスを決定し、画像を入力情報に決定するとともに、応答情報であるユーザー識別情報、部門名、および原稿読取枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および原稿読取枚数を入力情報に決定する。また、ステップS27においてMFP100にスキャンジョブを実行させる場合は、ファイル管理サービスの提供を依頼していない。この場合は、応答情報であるユーザー識別情報、部門名、および原稿読取枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および原稿読取枚数を入力情報に決定する。MFP100がプリントジョブを実行する場合は、応答情報であるユーザー識別情報、部門名、および画像形成枚数に対してカウンター管理サービスを決定し、ユーザー識別情報、部門名、および画像形成枚数を入力情報に決定する。
ステップS26においては、外部サーバー3および管理モジュール251のいずれかに、サービスの提供を依頼し、処理をステップS13に戻す。外部サーバー3および管理モジュール251のうちステップS24において決定されたサービスを提供する一方に、ステップS25において決定された入力情報を送信し、ステップS24において決定されたサービスの提供を依頼する。具体的には、ステップS24においてカウンター管理サービスが決定される場合、管理モジュール251に、ステップS25において入力情報として決定されたユーザー識別情報と、部門と、画像形成枚数または原稿読取枚数と、を送信し、カウンター管理サービスの提供を依頼する。これにより、カウンター管理部259により、入力情報に基づいてカウンター管理サービスを提供するための処理が実行される。また、ステップS24においてファイル管理サービスが決定される場合、外部サーバー3に、ステップS25において入力情報として決定された画像を送信し、ファイル管理サービスの提供を依頼する。これにより、外部サーバー3により、入力情報の画像を外部サーバー3に記憶するファイル管理サービスの入力処理が実行される。
ステップS29においては、ステップS17において受け付けられる操作が、ログアウトを指示する操作か否かを判断する。ログアウトを指示する操作が受け付けられたならば処理をステップS30に進めるが、そうでなければ処理をステップS18に戻す。ステップS30においては、ステップS12において確立されたMFPセッションを切断し、処理をステップS31に進める。MFP100においては、MFPセッションが切断されると、それまでに設定したパラメータをデフォルト値に再設定する。例えば、MFP100を操作していたユーザーをログアウトさせる処理を実行する。ステップS31においては、ステップS11において確立されたサーバーセッションを切断し、処理を終了する。
<第1の変形例>
図8は、第1の変形例における内部サーバーが備える第1CPUが有する機能と外部サーバーの機能の一例を示す図である。図8を参照して、図4に示した機能と異なる点は、サービス管理部271およびサービス依頼部279が、サービス管理部271Aおよびサービス依頼部279Aにそれぞれ変更された点、操作受付制御部269および画面生成部267が追加された点である。その他の機能は、図4に示した機能と同じなので、ここでは説明を繰り返さない。
サービス管理部271Aは、登録された複数のサービスの2以上が、同一の情報を要求する場合、同一の情報を要求する2以上のサービスそれぞれが要求する情報の全てを受け付ける入力画面の生成指示を、画面生成部267に出力する。例えば、外部サーバー3の認証管理部351が提供する認証サービスは、ユーザーを識別するためのユーザー識別情報と、パスワードとを入力情報として要求し、管理モジュール251のアカウント管理部257が提供するアカウント管理サービスは、ユーザー識別情報と部門名を入力情報として要求する。認証サービスおよびアカウント管理サービスが、ユーザー識別情報を入力情報として要求する。また、認証サービスおよびアカウント管理サービスそれぞれが要求する入力情報の全ては、ユーザー識別情報、パスワードおよび部門名である。
画面生成部267は、サービス管理部271から入力される生成指示に基づいて、入力画面を生成し、操作受付制御部269に出力する。具体的には、認証サービスおよびアカウント管理サービスそれぞれが要求する全ての入力情報である、ユーザー識別情報、パスワードおよび部門名を受け付けるための入力画面を生成する。
操作受付制御部269は、画面生成部267から入力される入力画面を表示部305に表示し、操作部307が受け付ける操作に従って、ユーザー識別情報、パスワードおよび部門名を受け付ける。操作受付制御部269は、受け付けられたユーザー識別情報、パスワードおよび部門名をサービス依頼部279Aに出力する。
サービス依頼部279Aは、ユーザーが複合装置1を操作するために、操作部307を操作すると、操作受付制御部269に入力画面を表示部305に表示させ、ユーザーが操作部307に入力するユーザー識別情報、パスワードおよび部門名を受け付ける。次にサービス依頼部279Aは、第1番目の認証サービスの提供を受けるために、外部サーバー3に認証サービスの提供を依頼する。具体的には、サービス依頼部279Aは、第1LAN通信部205を制御して、外部サーバー3との間でサーバーセッションを確立し、サーバーセッションを介して、ユーザー識別情報、パスワードを送信し、認証サービスの提供を依頼する信号を送信する。外部サーバー3の認証管理部351は、サーバーセッションを介してユーザー識別情報とパスワードとに基づいて認証し、認証結果を示すAPIコマンドを返信する。
サービス依頼部279Aは、サーバーセッションを介して外部サーバー3から受信する認証結果を示すAPIコマンドが認証成功を示す場合、第1LAN通信部205を制御して、MFP100との間でMFPセッションを確立し、MFP100を操作するユーザーの通知を要求部273に依頼する。サービス依頼部279Aは、認証されたユーザーがログアウトするまで、または、操作部307が操作を受け付けることなく所定の時間が経過するまでMFPセッションを維持する。また、サービス依頼部279Aは、サーバーセッションを介して外部サーバー3から受信する認証結果が認証失敗を示す場合、サーバーセッションを切断する。
要求部273は、MFPセッションを介してMFP100に、外部サーバー3から受信される認証結果を示すAPIコマンドを外部サーバー3に代わって送信する。これにより、APIコマンドを受信するMFP100は、外部サーバー3により認証されたユーザーを、MFP100を操作するユーザーとして設定する。
サービス依頼部279Aは、複合装置1を操作するユーザーを認証する場合、第2番目のアカウント管理サービスの提供を受けるために、管理モジュール251にアカウント管理サービスの提供を依頼する。具体的には、サービス依頼部279Aは、管理モジュール251に、ユーザー識別情報と部門名とを送信し、アカウント管理サービスの提供を依頼する信号を出力する。管理モジュール251のアカウント管理部257は、アカウント管理サービスの提供の依頼を受けると、ユーザー識別情報と部門名とから、その部門に対してMFP100に実行させることができる処理の範囲を決定し、部門に対して実行可能な処理の範囲を示すAPIコマンドを返信する。サービス依頼部279Aは、アカウント管理部257から入力されるAPIコマンドの送信を要求部273に依頼する。要求部273は、MFPセッションを介してMFP100に、APIコマンドを管理モジュール251に代わって送信する。MFP100は、APIコマンドを実行し、部門に対して実行可能な処理の範囲を設定する。
<第2の変形例>
第2の変形例においては、設定部261が、外部サーバー3または管理モジュール251から登録完了信号を受け付ける場合に、MFP100のパラメータをMFP100に変更させないようにする。このため、第2の変形例におけるMFP100は、MFP100を操作するユーザーの制限、およびMFP100が実行可能な処理の範囲の制限をしない。したがって、第2の変形例においては、内部サーバー200が、MFP100によるジョブの実行が可能か否かを判断し、MFP100は、ジョブを実行する場合にそのジョブが実行可能か否かを判断しない。MFP100は、APIコマンドに従ってジョブを実行し、ジョブを実行して返信する応答情報に、ユーザー識別情報と、部門名とを含めない。
サービス依頼部279は、ファイル管理サービスの提供を受ける時点で、認証サービスの提供を受けているので複合装置1を操作するユーザーのユーザー識別情報とパスワードとが既知であり、アカウント管理サービスの提供を受けているので部門名と、MFP100が実行可能な処理の範囲とが既知である。このため、サービス依頼部279は、外部サーバー3からファイル管理サービスの提供を受けてAPIコマンドを受信する場合に、そのAPIコマンドで定まるジョブをMFP100で実行可能か否かを判断し、実行可能と判断する場合に、要求部273にMFP100にジョブの実行を指示するAPIコマンドを送信させる。
そして、サービス依頼部279は、MFP100から受信される応答情報と、既知の値であるユーザー識別情報、パスワードおよび部門名とを用いて入力情報を決定する。例えば、サービス依頼部279は、サービス決定部277からカウンター管理サービスのサービス識別情報が入力される場合、応答情報は、画像形成枚数または原稿読取枚数を含む。サービス依頼部279は、画像形成枚数または原稿読取枚数と、既知の値であるユーザー識別情報と部門名とを用いて、カウンター管理サービスに対する入力情報を生成し、カウンター管理サービスの提供を受けるために、生成された入力情報を管理モジュール251に出力し、カウンター管理サービスの提供を依頼する。これにより、カウンター管理部259は、入力情報に基づいてカウンター管理サービスを提供するための処理を実行する。
また、サービス依頼部279は、サービス決定部277からファイル管理サービスのサービス識別情報と応答情報との組が入力される場合、応答情報は画像を含む。サービス依頼部279は、画像をファイル管理サービスに対する入力情報に決定し、ファイル管理サービスの提供を受けるために、決定された入力情報を、サーバーセッションを介して外部サーバー3に送信し、ファイル管理サービスの提供を要求する。これにより、外部サーバー3は、入力情報の画像を外部サーバー3に記憶するファイル管理サービスの入力処理を実行する。
また、サービス依頼部279は、MFPセッションが確立されている間は、MFPセッションが確立されている間に外部サーバー3からサーバーセッションを介して受信される情報、管理モジュール251から入力される情報、および操作部307により受け付けられた操作により特定される情報を有効に設定する。サービス依頼部279は、MFPセッションが確立されている間に外部サーバー3からサーバーセッションを介して受信される情報、管理モジュール251から入力される情報、および操作部307により受け付けられた操作により特定される情報を、MFPセッションが切断されることに応じて消去する。
以上説明したように、本実施の形態における複合装置1において、内部サーバー200は、管理モジュール251から内部サービス(第1のサービス)の提供を受けてMFP100を制御して処理を実行させ、また、外部サーバー3から外部サービス(第2のサービス)の提供を受けてMFP100を制御して処理を実行させる。このため、外部サーバー3および内部サーバー200がMFP100を制御することができる。
また、MFP100が処理を実行して出力する応答情報に基づいて、内部サービスを決定する場合には内部サービスを管理モジュール251に提供させ、外部サービスを決定する場合には外部サーバー3に第2のサービスを提供させ、内部サービスおよび外部サービスを決定する場合には、内部サービスを管理モジュール251に提供させるとともに外部サーバー3に外部サービスを提供させる。このため、外部サーバー3にMFP100が処理を実行して出力する応答情報を用いて外部サービスを提供させることができ、また、管理モジュール251にMFP100が処理を実行して出力する応答情報を用いて内部サービスを提供させることができる。
また、内部サーバー200は、MFP100が内部サーバー200から受信するAPIコマンドに従って処理を実行して出力する応答情報を、管理モジュール251または外部サーバー3に処理させるので、外部サーバー3にMFP100が処理を実行して出力する応答情報を用いて外部サービスを提供させることができ、MFP100が外部サービスの結果を用いて処理を実行して出力する応答情報を用いて内部サービスを内部サーバー200に提供させることができる。逆に、管理モジュール251にMFP100が処理を実行して出力する応答情報を用いて内部サービスを提供させることができ、MFP100が内部サービスの結果を用いて処理を実行して出力する応答情報を用いて外部サーバー3に外部サービスを提供させることができる。
また、内部サーバー200は、MFP100との間で通信セッションを確立している間、MFP100に設定されたパラメータを有効に設定するので、内部サーバー200が外部サーバー3とともにMFP100を制御可能な期間を制限することができる。
また、内部サーバー200は、MFP100が1つの処理を実行して出力する応答情報を、外部サービスの提供を受けるために外部サーバー3に送信するとともに、内部サービスの提供を受けるために管理モジュール251に出力する。このため、内部サービスおよび外部サービスの提供を受けるために、MFP100は、内部サービスの提供を受けるための処理と、外部サービスの提供を受けるための処理とを別々に実行する必要がない。このため、MFP100に2つの処理をそれぞれ実行させるための操作が不要となるので、操作を容易にすることができる。また、MFP100にインストールされているプログラム等を変更することなく、内部サーバー200は、外部サーバー3とともにMFP100を制御することができる。
また、内部サーバー200は、MFP100とMFPセッションが確立されている間にMFP100に複数の処理を実行させるので、外部サーバー3にMFP100が処理を実行して出力する応答情報を用いて外部サービスを提供させることができ、MFP100が外部サービスの結果を用いて処理を実行して出力する応答情報を用いて内部サービスを内部サーバー200に提供させることができる。逆に、管理モジュール251にMFP100が処理を実行して出力する応答情報を用いて内部サービスを提供させることができ、MFP100が内部サービスの結果を用いて処理を実行して出力する応答情報を用いて外部サーバー3に外部サービスを提供させることができる。
また、内部サービスおよび外部サービスは、MFP100が画像を処理するための条件となるパラメータを決定するサービス、MFP100が画像を処理した実績を管理するサービスを含む。例えば、外部サーバー3が提供する認証サービスにより認証されたユーザーをMFP100に設定し、MFP100に画像を形成する処理を実行させる場合、内部サーバー200が提供するカウント管理サービスにおいて、認証サービスにより認証されたユーザーに対して画像形成枚数を履歴として管理することができる。
また、内部サーバー200は、複数のサービスが登録される場合、先行サービスが提供された結果を利用する後続サービスが存在する場合、後続サービスよりも先行サービスを提供させる順番を前にするので、後続サービスよりも先に先行サービスが提供されるようにして、先行サービスが提供された結果を利用して後続サービスの提供を受けるようにすることができる。
なお、本実施の形態においては、複合装置1が1台の外部サーバー3と接続される場合を例に説明したが、複合装置1が接続される装置の台数を限定するものではなく、1以上であればよい。また、内部サーバー200が提供するサービスとして、2つのサービスを例に説明したが、内部サーバー200が提供するサービスの数を限定するものではなく、1以上であればよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
<付記>
(1) 前記内部サーバーは、前記画像処理装置に前記内部サーバーを前記外部装置として設定させるために、前記画像処理装置との間で通信するための通信セッションを確立する通信制御手段を、さらに備えた、請求項1または2に記載の複合装置。この局面に従えば、内部サーバーが画像処理装置との間で通信セッションを確立している間、画像処理装置に内部サーバーを外部装置として設定するので、外部サーバーとともに画像処理装置を制御可能な期間を制限することができる。
(2) 前記要求手段は、前記第1のサービスおよび前記第2のサービスの提供を受けるために、1つの処理を実行させる、請求項3または4に記載の複合装置。この局面に従えば、第1のサービスおよび第2のサービスの提供を受けるために、画像処理装置は、第1のサービスの提供を受けるための処理と、第2のサービスの提供を受けるための処理とを別々に実行する必要がない。そのため、画像処理装置に2つの処理をそれぞれ実行させるための操作が不要となるので、操作を容易にすることができる。
(3) 前記サービス決定手段は、1つの前記応答情報に基づいて、前記第1のサービスおよび前記第2のサービスを決定する、請求項3、4および(2)のいずれかに記載の複合装置。この局面に従えば、画像処理装置が出力する応答情報が、第1のサービスと第2のサービスに与えられるので、画像処理装置が外部サーバーと内部サーバーとに別々に応答情報を出力する必要がない。その結果、画像処理装置を変更することなく、外部サーバーとともに画像処理装置を制御することができる。
(4) 前記内部サーバーは、前記画像処理装置との間で通信するための通信セッションを確立する通信制御手段を、さらに備え、
前記要求手段は、前記通信制御手段により確立された前記通信セッションが確立されている間に、前記画像処理装置に複数の処理を実行させる、請求項3、4、(2)および(3)のいずれかに記載の複合装置。この局面に従えば、内部サーバーは、画像処理装置と通信セッションが確立されている間に画像処理装置に複数の処理を実行させるので、第1のサービスまたは第2のサービスが提供された結果を用いて第1のサービスまたは第2のサービスを提供させることができる。
(5) 前記第1のサービスおよび前記第2のサービスは、前記画像処理装置が画像を処理するための条件となるパラメータを決定するサービス、前記画像処理装置が画像を処理した実績を管理するサービスを含む、請求項3,4、(2)〜(4)のいずれかに記載の複合装置。この局面に従えば、第1のサービスまたは第2のサービスによって決定されたパラメータを用いて、第1のサービスまたは第2のサービスによって画像処理装置が画像を処理した実績を管理することができる。
(6) 前記内部サーバーは、前記第1のサービスおよび前記第2のサービスのいずれか一方の後続サービスが他方の先行サービスが提供された結果を利用する場合、前記管理モジュールと前記外部サーバーのうち前記先行サービスを提供する一方に前記後続サービスを提供する他方よりも先に前記先行サービスを提供させるサービス管理手段を含む、請求項3、4、(2)〜(5)のいずれかに記載の複合装置。この局面に従えば、後続サービスよりも先に先行サービスが提供されるので、先行サービスが提供された結果を利用して後続サービスの提供を受けることができる。