近年、OA機器のネットワーク化が急速に進展している。このような事態に適切に対処するため、OA機器の統合インタフェースに関する標準仕様として「BMLinkS」が提唱されている。BMLinkSでは、OA機器の探索方法(Discovery)や、OA機器間で授受されるデータフォーマット(Data Format)や、OA機器の制御方法(Job/Device Control)等が標準化される。
BMLinkSでは、OA機器の機能がオフィスサービスとしてモデル化される。OA機器のスキャン機能はスキャンサービス、OA機器のプリント機能はプリントサービス、OA機器のファックス入力機能はファックスインサービス、OA機器のファックス出力機能はファックスアウトサービス、OA機器のストレージ機能はストレージサービスとしてモデル化される。これにより通常、スキャナにはスキャンサービス、プリンタにはプリントサービス、コピーにはスキャンサービスとプリントサービス、ファクシミリにはファックスインサービスとファックスアウトサービス、ストレージ装置にはストレージサービスが存在することになる。スキャンサービスやプリントサービスに関しては、create_job(ジョブ生成要求)やlist_jobs(ジョブ一覧要求)等のコマンドが規定されており、ストレージサービスに関しては、create_file(ファイル生成要求/データ保存要求)やlist_files(ファイル一覧要求/データ一覧要求)やread_data(データ読出要求)やwrite_data(データ書込要求)等のコマンドが規定されている。BMLinkSでは、ネットワークプロトコルとしてHTTP−SOAPが使用される。
BMLinkSの例からも考察されるように、OA機器のネットワーク化においては、ストレージの取り扱い方が問題になる。例えば、OA機器により構成される文書処理システムに複数個のストレージが存在する場合、小容量のストレージと大容量のストレージを文書処理(文書データ処理)の内容に応じて使い分けるなど、これらストレージを効果的に使用することが望ましいと言える。
したがって、本発明は、OA機器により構成される文書処理システムに存在するストレージを効果的に使用する手法を提供することを課題とする。
本発明(ストレージ装置)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備えるストレージ装置であって、当該ストレージ装置が備える前記ストレージサービス手段は、文書データを保存する旨のデータ保存要求に応じて、前記文書データを分割して複数の分割データを生成するデータ分割処理と、前記複数の分割データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、当該ストレージ装置が備える前記ストレージサービス手段は、前記データ保存手段により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の分割データを読み出す旨の複数のデータ読出要求を前記複数のストレージサービス手段に対して発行するデータ読出要求発行処理と、前記複数の分割データを結合して前記文書データを生成するデータ結合処理とを実行するデータ読出手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、前記データ保存手段は、前記データ保存要求発行処理によって保存する前記複数の分割データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出手段は、前記データ読出要求発行処理によって読み出す前記複数の分割データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、当該ストレージ装置が備える前記ストレージサービス手段は、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の分割データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成手段を備える。
本発明(ストレージ装置)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備えるストレージ装置であって、当該ストレージ装置が備える前記ストレージサービス手段は、文書データを保存する旨のデータ保存要求に応じて、前記文書データを複製して複数の文書データを生成するデータ複製処理と、前記複数の文書データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、当該ストレージ装置が備える前記ストレージサービス手段は、前記データ保存手段により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の文書データのいずれかを読み出す旨のデータ読出要求を前記複数のストレージサービス手段のいずれかに対して発行するデータ読出要求発行処理を実行するデータ読出手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、前記データ保存手段は、前記データ保存要求発行処理によって保存する前記複数の文書データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出手段は、前記データ読出要求発行処理によって読み出す前記文書データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、当該ストレージ装置が備える前記ストレージサービス手段は、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の文書データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、当該ストレージ装置が備える前記ストレージサービス手段は、ストレージ機能に係る処理を実行する旨の要求を当該ストレージサービス手段から発行する際の発行先とするストレージサービス手段の一覧を管理するサービス一覧管理手段を備える。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、前記サービス一覧管理手段は、起動した旨を公告する起動公告を発行したストレージサービス手段、又は/及び、当該ストレージサービス手段が起動した旨を公告する起動公告に応答する起動応答を発行したストレージサービス手段を前記一覧に登録する。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、前記サービス一覧管理手段は、終了する旨を公告する終了公告を発行したストレージサービス手段を前記一覧から削除する。
本発明(ストレージ装置)は、前記発明(ストレージ装置)に関して、前記複数のストレージサービス手段のそれぞれは、当該ストレージ装置、又は、当該ストレージ装置以外のストレージ装置又は画像形成装置が備えるストレージサービス手段である。
本発明(画像形成装置)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備える画像形成装置であって、当該画像形成装置が備える前記ストレージサービス手段は、文書データを保存する旨のデータ保存要求に応じて、前記文書データを分割して複数の分割データを生成するデータ分割処理と、前記複数の分割データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、当該画像形成装置が備える前記ストレージサービス手段は、前記データ保存手段により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の分割データを読み出す旨の複数のデータ読出要求を前記複数のストレージサービス手段に対して発行するデータ読出要求発行処理と、前記複数の分割データを結合して前記文書データを生成するデータ結合処理とを実行するデータ読出手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、前記データ保存手段は、前記データ保存要求発行処理によって保存する前記複数の分割データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出手段は、前記データ読出要求発行処理によって読み出す前記複数の分割データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、当該画像形成装置が備える前記ストレージサービス手段は、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の分割データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成手段を備える。
本発明(画像形成装置)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備える画像形成装置であって、当該画像形成装置が備える前記ストレージサービス手段は、文書データを保存する旨のデータ保存要求に応じて、前記文書データを複製して複数の文書データを生成するデータ複製処理と、前記複数の文書データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、当該画像形成装置が備える前記ストレージサービス手段は、前記データ保存手段により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の文書データのいずれかを読み出す旨のデータ読出要求を前記複数のストレージサービス手段のいずれかに対して発行するデータ読出要求発行処理を実行するデータ読出手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、前記データ保存手段は、前記データ保存要求発行処理によって保存する前記複数の文書データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出手段は、前記データ読出要求発行処理によって読み出す前記文書データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、当該画像形成装置が備える前記ストレージサービス手段は、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の文書データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、当該画像形成装置が備える前記ストレージサービス手段は、ストレージ機能に係る処理を実行する旨の要求を当該ストレージサービス手段から発行する際の発行先とするストレージサービス手段の一覧を管理するサービス一覧管理手段を備える。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、前記サービス一覧管理手段は、起動した旨を公告する起動公告を発行したストレージサービス手段、又は/及び、当該ストレージサービス手段が起動した旨を公告する起動公告に応答する起動応答を発行したストレージサービス手段を前記一覧に登録する。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、前記サービス一覧管理手段は、終了する旨を公告する終了公告を発行したストレージサービス手段を前記一覧から削除する。
本発明(画像形成装置)は、前記発明(画像形成装置)に関して、前記複数のストレージサービス手段のそれぞれは、当該画像形成装置、又は、当該画像形成装置以外の画像形成装置又はストレージ装置が備えるストレージサービス手段である。
本発明(文書処理方法)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備えるストレージ装置又は画像形成装置において前記ストレージサービス手段により実行される文書処理方法であって、文書データを保存する旨のデータ保存要求に応じて、前記文書データを分割して複数の分割データを生成するデータ分割処理と、前記複数の分割データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記データ保存段階により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の分割データを読み出す旨の複数のデータ読出要求を前記複数のストレージサービス手段に対して発行するデータ読出要求発行処理と、前記複数の分割データを結合して前記文書データを生成するデータ結合処理とを実行するデータ読出段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記データ保存段階では、前記データ保存要求発行処理により保存する前記複数の分割データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出段階では、前記データ読出要求発行処理により読み出す前記複数の分割データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の分割データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成段階を備える。
本発明(文書処理方法)は、ストレージ機能に係る処理を実行する旨の要求に応じて、ストレージ機能に係る処理を実行するストレージサービス手段を備えるストレージ装置又は画像形成装置において前記ストレージサービス手段により実行される文書処理方法であって、文書データを保存する旨のデータ保存要求に応じて、前記文書データを複製して複数の文書データを生成するデータ複製処理と、前記複数の文書データを保存する旨の複数のデータ保存要求を当該ストレージサービス手段を含む又は除く複数のストレージサービス手段に対して発行するデータ保存要求発行処理とを実行するデータ保存段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記データ保存段階により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の文書データのいずれかを読み出す旨のデータ読出要求を前記複数のストレージサービス手段のいずれかに対して発行するデータ読出要求発行処理を実行するデータ読出段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記データ保存段階では、前記データ保存要求発行処理により保存する前記複数の文書データの所在を特定するための所在情報を保存する所在情報保存処理を実行し、前記データ読出段階では、前記データ読出要求発行処理により読み出す前記文書データの所在を特定するための前記所在情報を読み出す所在情報読出処理を実行する。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、当該ストレージサービス手段により保存されたデータの一覧を要求する旨のデータ一覧要求に応じて、前記複数のストレージサービス手段により保存されたデータの一覧を要求する旨の複数のデータ一覧要求を前記複数のストレージサービス手段に対して発行するデータ一覧要求発行処理と、当該ストレージサービス手段により保存されたデータの一覧と前記複数のストレージサービス手段により保存された前記複数の文書データの一覧を包含するデータ一覧応答を発行するデータ一覧応答発行処理とを実行するデータ一覧生成段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、ストレージ機能に係る処理を実行する旨の要求を当該ストレージサービス手段から発行する際の発行先とするストレージサービス手段の一覧を管理するサービス一覧管理段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記サービス一覧管理段階では、起動した旨を公告する起動公告を発行したストレージサービス手段、又は/及び、当該ストレージサービス手段が起動した旨を公告する起動公告に応答する起動応答を発行したストレージサービス手段を前記一覧に登録する。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記サービス一覧管理段階では、終了する旨を公告する終了公告を発行したストレージサービス手段を前記一覧から削除する。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記複数のストレージサービス手段のそれぞれは、当該ストレージ装置又は当該画像形成装置、又は、当該ストレージ装置又は当該画像形成装置以外のストレージ装置又は画像形成装置が備えるストレージサービス手段である。
本発明(文書処理プログラム)は、前記文書処理方法をコンピュータに実行させる文書処理プログラムである。
本発明(記録媒体)は、前記文書処理方法をコンピュータに実行させる文書処理プログラムが記録されたコンピュータ読取可能な記録媒体である。
本発明(文書処理方法)は、1台以上のストレージ装置又は/及び1台以上の画像形成装置を備え、ストレージ機能に係る処理を実行する旨の要求に応じてストレージ機能に係る処理を実行する複数のストレージサービス手段を備える文書処理システムにおいて実行される文書処理方法であって、1のストレージサービス手段が、文書データを保存する旨のデータ保存要求に応じて、前記文書データを分割して複数の分割データを生成するデータ分割段階と、前記1のストレージサービス手段が、前記複数の分割データを保存する旨の複数のデータ保存要求を発行するデータ保存要求発行段階と、前記1のストレージサービス手段を含む又は除く複数のストレージサービス手段のそれぞれが、前記分割データを保存する旨の前記データ保存要求に応じて、前記分割データを保存するデータ保存段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記1のストレージサービス手段が、前記データ分割段階と前記データ保存要求発行段階と前記データ保存段階により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の分割データを読み出す旨の複数のデータ読出要求を発行するデータ読出要求発行段階と、前記1のストレージサービス手段を含む又は除く前記複数のストレージサービス手段のそれぞれが、前記分割データを読み出す旨の前記データ読出要求に応じて、前記分割データを読み出すデータ読出段階と、前記1のストレージサービス手段が、複数の前記分割データを結合して前記文書データを生成するデータ結合段階を備える。
本発明(文書処理方法)は、1台以上のストレージ装置又は/及び1台以上の画像形成装置を備え、ストレージ機能に係る処理を実行する旨の要求に応じてストレージ機能に係る処理を実行する複数のストレージサービス手段を備える文書処理システムにおいて実行される文書処理方法であって、1のストレージサービス手段が、文書データを保存する旨のデータ保存要求に応じて、前記文書データを複製して複数の文書データを生成するデータ複製段階と、前記1のストレージサービス手段が、前記複数の文書データを保存する旨の複数のデータ保存要求を発行するデータ保存要求発行段階と、前記1のストレージサービス手段を含む又は除く複数のストレージサービス手段のそれぞれが、前記文書データを保存する旨の前記データ保存要求に応じて、前記文書データを保存するデータ保存段階を備える。
本発明(文書処理方法)は、前記発明(文書処理方法)に関して、前記1のストレージサービス手段が、前記データ複製段階と前記データ保存要求発行段階と前記データ保存段階により保存された前記文書データを読み出す旨のデータ読出要求に応じて、前記複数の文書データのいずれかを読み出す旨のデータ読出要求を発行するデータ読出要求発行段階と、前記1のストレージサービス手段を含む又は除く前記複数のストレージサービス手段のいずれかが、前記文書データを読み出す旨の前記データ読出要求に応じて、前記文書データを読み出すデータ読出段階を備える。
本発明(ストレージ装置)では、ストレージサービス手段によって文書データが分割されて分散保存されるため、OA機器により構成される文書処理システムに存在するストレージが効果的に使用される。
本発明(ストレージ装置)では、ストレージサービス手段によって分割されて分散保存された文書データが、ストレージサービス手段によって読み出されて結合されるため、保存された文書データが元通りになって読み出される。
本発明(ストレージ装置)では、ストレージサービス手段によって文書データが複製されて重複保存されるため、OA機器により構成される文書処理システムに存在するストレージがミラーリング用として効果的に使用される。
本発明(ストレージ装置)では、ストレージサービス手段によって複製されて重複保存された文書データが、ストレージサービス手段によって読み出される。
本発明(画像形成装置)では、ストレージサービス手段によって文書データが分割されて分散保存されるため、OA機器により構成される文書処理システムに存在するストレージが効果的に使用される。
本発明(画像形成装置)では、ストレージサービス手段によって分割されて分散保存された文書データが、ストレージサービス手段によって読み出されて結合されるため、保存された文書データが元通りになって読み出される。
本発明(画像形成装置)では、ストレージサービス手段によって文書データが複製されて重複保存されるため、OA機器により構成される文書処理システムに存在するストレージがミラーリング用として効果的に使用される。
本発明(画像形成装置)では、ストレージサービス手段によって複製されて重複保存された文書データが、ストレージサービス手段によって読み出される。
本発明(文書処理方法)では、ストレージサービス手段によって文書データが分割されて分散保存されるため、OA機器により構成される文書処理システムに存在するストレージが効果的に使用される。
本発明(文書処理方法)では、ストレージサービス手段によって分割されて分散保存された文書データが、ストレージサービス手段によって読み出されて結合されるため、保存された文書データが元通りになって読み出される。
本発明(文書処理方法)では、ストレージサービス手段によって文書データが複製されて重複保存されるため、OA機器により構成される文書処理システムに存在するストレージがミラーリング用として効果的に使用される。
本発明(文書処理方法)では、ストレージサービス手段によって複製されて重複保存された文書データが、ストレージサービス手段によって読み出される。
本発明(文書処理方法)では、ストレージサービス手段によって文書データが分割されて分散保存されるため、OA機器により構成される文書処理システムに存在するストレージが効果的に使用される。
本発明(文書処理方法)では、ストレージサービス手段によって分割されて分散保存された文書データが、ストレージサービス手段によって読み出されて結合されるため、保存された文書データが元通りになって読み出される。
本発明(文書処理方法)では、ストレージサービス手段によって文書データが複製されて重複保存されるため、OA機器により構成される文書処理システムに存在するストレージがミラーリング用として効果的に使用される。
本発明(文書処理方法)では、ストレージサービス手段によって複製されて重複保存された文書データが、ストレージサービス手段によって読み出される。
このように、本発明は、OA機器により構成される文書処理システムに存在するストレージを効果的に使用する手法を提供するものである。
図1は、OA機器により構成される文書処理システム100の例を表す。図1の文書処理システム100は、2台のスキャナ112A,112Bと、2台のプリンタ114A,114Bと、1台のコピー116と、1台のファクシミリ118と、3台のストレージ装置120A,120B,120Cにより構成されている。すなわち、6台の画像形成装置110と3台のストレージ装置120により構成されている。これらOA機器は、イーサネット(登録商標)等のネットワーク130により相互接続されている。
図1の文書処理システム100には、それぞれ画像形成装置110又はストレージ装置120に装備された8個のストレージ140が存在する。スキャナ112Aに装備されたストレージ140Aと、プリンタ114Aに装備されたストレージ140Bと、コピー116に装備されたストレージ140Cと、ファクシミリ118に装備されたストレージ140Dと、ストレージ装置120Aに装備されたストレージ140Eと、ストレージ装置120Bに装備されたストレージ140Fと、ストレージ装置120Cに装備されたストレージ140G,140Hである。これらストレージ140はここではそれぞれ、ハードディスクドライブ(HDD)である。
図1のOA機器はそれぞれ、BMLinkSに準拠したOA機器である。スキャナ112Aにはスキャンサービス152Aとストレージサービス160A、スキャナ112Bにはスキャンサービス152B、プリンタ114Aにはプリントサービス154Aとストレージサービス160B、プリンタ114Bにはプリントサービス154B、コピー116にはスキャンサービス152Cとプリントサービス154Cとストレージサービス160C、ファクシミリ118にはファックスインサービス156とファックスアウトサービス158とストレージサービス160D、ストレージ装置120Aにはストレージサービス160E、ストレージ装置120Bにはストレージサービス160F、ストレージ装置120Cにはストレージサービス160G,160Hが存在する。
図2は、図1の画像形成装置110に係るハードウェア構成図である。図1の画像形成装置110は、CPU201と、ROM202と、RAM203と、NV(non−volatile)RAM204と、リアルタイムクロック205と、イーサネット(登録商標)I/F211と、USBI/F212と、IEEE1284I/F213と、ハードディスクドライブ(HDD)I/F214と、オペレーションパネルI/F215と、エンジンI/F216を備える。これらのハードウェア構成要素は、システムバス221に接続されている。
CPU201は、画像形成装置110の制御等に係る情報処理を実行するハードウェアである。ROM202は、上記の情報処理用のプログラム等が格納されたハードウェアである。RAM203は、上記の情報処理用のメモリである。NVRAM204は、上記の情報処理用の不揮発性メモリである。リアルタイムクロック205は、処理の同期用等に使用されるクロックである。
イーサネット(登録商標)I/F211は、イーサネット(登録商標)を接続するためのインタフェースである。画像形成装置110は、イーサネット(登録商標)I/F211によりネットワーク130(図1参照)に接続される。USBI/F212は、USBケーブルを接続するためのインタフェースである。IEEE1284I/F213は、IEEE1284ケーブルを接続するためのインタフェースである。
ハードディスクドライブI/F214は、ハードディスクドライブに係るインタフェースである。ハードディスクドライブであるストレージ140(図1参照)は、ハードディスクドライブI/F214により画像形成装置110に装備される。なお、図1のスキャナ112Bやプリンタ114Bには、ハードディスクドライブI/F214は存在しなくてもよい。オペレーションパネルI/F215は、画像形成装置110のオペレーションパネル170に係るインタフェースである。エンジンI/F216は、画像形成装置110のエンジン180に係るインタフェースである。エンジン180としては、図1のスキャナ112には文書データを読取原稿から読み取る読取部が存在し、図1のプリンタ114には文書データを印刷用紙に印刷する印刷部が存在する。
図3は、図1のストレージ装置120に係るハードウェア構成図である。図1のストレージ装置120は、CPU301と、ROM302と、RAM303と、NV(non−volatile)RAM304と、リアルタイムクロック305と、イーサネット(登録商標)I/F311と、USBI/F312と、IEEE1284I/F313と、ハードディスクドライブ(HDD)I/F314と、オペレーションパネルI/F315を備える。これらのハードウェア構成要素は、システムバス321に接続されている。
CPU301は、ストレージ装置120の制御等に係る情報処理を実行するハードウェアである。ROM302は、上記の情報処理用のプログラム等が格納されたハードウェアである。RAM303は、上記の情報処理用のメモリである。NVRAM304は、上記の情報処理用の不揮発性メモリである。リアルタイムクロック305は、処理の同期用等に使用されるクロックである。
イーサネット(登録商標)I/F311は、イーサネット(登録商標)を接続するためのインタフェースである。ストレージ装置120は、イーサネット(登録商標)I/F311によりネットワーク130(図1参照)に接続される。USBI/F312は、USBケーブルを接続するためのインタフェースである。IEEE1284I/F313は、IEEE1284ケーブルを接続するためのインタフェースである。
ハードディスクドライブI/F314は、ハードディスクドライブに係るインタフェースである。ハードディスクドライブであるストレージ140(図1参照)は、ハードディスクドライブI/F314によりストレージ装置120に装備される。オペレーションパネルI/F315は、ストレージ装置120のオペレーションパネル170に係るインタフェースである。
図4は、図1の画像形成装置110に係る機能ブロック図である。図1の画像形成装置110には、ネットワークI/F410、Webサービス部420、ストレージサービス部430、画像形成サービス部440等の機能ブロックが存在する。
ネットワークI/F410は、通信制御を実行する機能ブロックである。ネットワークI/F410のネットワークプロトコル700は、図7のように、TCP/IP(Transmission Control Protocol/Internet Protocol)710と、HTTP(HypetText Transfer Protocol)720と、SOAP(Simple Object Access Protocol)730と、BMLinkS740により構成される階層構造となっている。
Webサービス部420は、BMLinkSでのWebサービス要求やWebサービス応答の授受に係る制御を実行する機能ブロックである。Webサービス部420は、画像形成装置110の内部と外部の間での授受を制御対象とするだけではなく、画像形成装置110の内部と内部の間での授受も制御対象とする。
BMLinkSでのWebサービス要求の例としては、スキャン機能やプリント機能に係る処理を実行する旨のWebサービス要求、ストレージ機能に係る処理を実行する旨のWebサービス要求等が挙げられる。前者の具体例としてはcreate_jobやlist_jobsが、後者の具体例としてはcreate_fileやlist_filesやread_dataやwrite_dataが挙げられる。前者のWebサービス要求はスキャンサービスやプリントサービスに対して発行され、後者のWebサービス要求はストレージサービスに対して発行される。BMLinkSでのWebサービス応答の例としては、スキャン機能やプリント機能に係る処理を実行する旨のWebサービス要求に応じて実行された処理の実行結果に係るWebサービス応答、ストレージ機能に係る処理を実行する旨のWebサービス要求に応じて実行された処理の実行結果に係るWebサービス応答等が挙げられる。
ストレージサービス部430は、ストレージ機能に係る処理を実行する旨のWebサービス要求に応じて、ストレージ機能に係る処理を実行する機能ブロックである。ストレージサービス部430は、BMLinkSのストレージサービスに相当する機能ブロックである。図1のスキャナ112Bやプリンタ114Bには、ストレージサービス部430は存在しない。
ストレージサービス部430は、XML(eXtensible Markup Language)パーサ431、コマンド解析部432、ファイル管理部433、サービス一覧管理部434等の機能ブロックにより構成される。
XMLパーサ431は、Webサービス部420からストレージサービス部430に受け渡されたXMLメッセージの構文解析を実行する機能ブロックである。
コマンド解析部432は、XMLパーサ431により構文解析が実行されたXMLメッセージからBMLinkSコマンド(Webサービス要求)等を取得する機能ブロックである。
ファイル管理部433は、コマンド解析部432によりXMLメッセージから取得されたBMLinkSコマンド(Webサービス要求)に応じて、ファイル管理に関連する処理を実行する機能ブロックである。ファイル管理部433は、データ保存部436、データ一覧生成部437、データ読出部438、データ書込部439等の機能ブロックにより構成される。データ保存部436はcreate_file(データ保存要求)に応じて処理を実行する機能ブロック、データ一覧生成部437はlist_files(データ一覧要求)に応じて処理を実行する機能ブロック、データ読出部438はread_data(データ読出要求)に応じて処理を実行する機能ブロック、データ書込部439はwrite_data(データ書込要求)に応じて処理を実行する機能ブロックである。
サービス一覧管理部434は、スキャンサービス,プリントサービス,ストレージサービス等(スキャンサービス部,プリントサービス部,ストレージサービス部等)の一覧を管理する機能ブロックである。
画像形成サービス部440は、画像形成機能に係る処理を実行する旨のWebサービス要求に応じて、画像形成機能に係る処理を実行する機能ブロックである。図1のスキャナ112の画像形成サービス部(スキャンサービス部)440は、スキャン機能に係る処理を実行する旨のWebサービス要求に応じて、スキャン機能に係る処理を実行する。図1のプリンタ114の画像形成サービス部(プリントサービス部)440は、プリント機能に係る処理を実行する旨のWebサービス要求に応じて、プリント機能に係る処理を実行する。スキャンサービス部440は、BMLinkSのスキャンサービスに相当する機能ブロックである。プリントサービス部440は、BMLinkSのプリントサービスに相当する機能ブロックである。
画像形成サービス部440は、XML(eXtensible Markup Language)パーサ441、コマンド解析部442、ジョブ制御部443、サービス一覧管理部444等の機能ブロックにより構成される。
XMLパーサ441は、Webサービス部420から画像形成サービス部440に受け渡されたXMLメッセージの構文解析を実行する機能ブロックである。
コマンド解析部442は、XMLパーサ441により構文解析が実行されたXMLメッセージからBMLinkSコマンド(Webサービス要求)等を取得する機能ブロックである。
ジョブ制御部433は、コマンド解析部442によりXMLメッセージから取得されたBMLinkSコマンド(Webサービス要求)に応じて、ジョブ制御に関連する処理を実行する機能ブロックである。ジョブ制御部443は、ジョブ生成部446、ジョブ一覧生成部447等の機能ブロックにより構成される。ジョブ生成部446はcreate_job(ジョブ生成要求)に応じて処理を実行する機能ブロックであり、ジョブ一覧生成部447はlist_jobs(ジョブ一覧要求)に応じて処理を実行する機能ブロックである。
サービス一覧管理部444は、スキャンサービス,プリントサービス,ストレージサービス等(スキャンサービス部,プリントサービス部,ストレージサービス部等)の一覧を管理する機能ブロックである。
図5は、図1のストレージ装置120に係る機能ブロック図である。図1のストレージ装置120には、ネットワークI/F510、Webサービス部520、ストレージサービス部530等の機能ブロックが存在する。
ネットワークI/F510は、通信制御を実行する機能ブロックである。ネットワークI/F510のネットワークプロトコル700は、図7のように、TCP/IP(Transmission Control Protocol/Internet Protocol)710と、HTTP(HypetText Transfer Protocol)720と、SOAP(Simple Object Access Protocol)730と、BMLinkS740により構成される階層構造となっている。
Webサービス部520は、BMLinkSでのWebサービス要求やWebサービス応答の授受に係る制御を実行する機能ブロックである。Webサービス部520は、ストレージ装置120の内部と外部の間での授受を制御対象とするだけではなく、ストレージ装置120の内部と内部の間での授受も制御対象とする。
BMLinkSでのWebサービス要求の例としては、スキャン機能やプリント機能に係る処理を実行する旨のWebサービス要求、ストレージ機能に係る処理を実行する旨のWebサービス要求等が挙げられる。前者の具体例としてはcreate_jobやlist_jobsが、後者の具体例としてはcreate_fileやlist_filesやread_dataやwrite_dataが挙げられる。前者のWebサービス要求はスキャンサービスやプリントサービスに対して発行され、後者のWebサービス要求はストレージサービスに対して発行される。BMLinkSでのWebサービス応答の例としては、スキャン機能やプリント機能に係る処理を実行する旨のWebサービス要求に応じて実行された処理の実行結果に係るWebサービス応答、ストレージ機能に係る処理を実行する旨のWebサービス要求に応じて実行された処理の実行結果に係るWebサービス応答等が挙げられる。
ストレージサービス部530は、ストレージ機能に係る処理を実行する旨のWebサービス要求に応じて、ストレージ機能に係る処理を実行する機能ブロックである。ストレージサービス部530は、BMLinkSのストレージサービスに相当する機能ブロックである。
ストレージサービス部530は、XML(eXtensible Markup Language)パーサ531、コマンド解析部532、ファイル管理部533、サービス一覧管理部534等の機能ブロックにより構成される。
XMLパーサ531は、Webサービス部520からストレージサービス部530に受け渡されたXMLメッセージの構文解析を実行する機能ブロックである。
コマンド解析部532は、XMLパーサ531により構文解析が実行されたXMLメッセージからBMLinkSコマンド(Webサービス要求)等を取得する機能ブロックである。
ファイル管理部533は、コマンド解析部532によりXMLメッセージから取得されたBMLinkSコマンド(Webサービス要求)に応じて、ファイル管理に関連する処理を実行する機能ブロックである。ファイル管理部533は、データ保存部536、データ一覧生成部537、データ読出部538、データ書込部539等の機能ブロックにより構成される。データ保存部536はcreate_file(データ保存要求)に応じて処理を実行する機能ブロック、データ一覧生成部537はlist_files(データ一覧要求)に応じて処理を実行する機能ブロック、データ読出部538はread_data(データ読出要求)に応じて処理を実行する機能ブロック、データ書込部539はwrite_data(データ書込要求)に応じて処理を実行する機能ブロックである。
サービス一覧管理部534は、スキャンサービス,プリントサービス,ストレージサービス等(スキャンサービス部,プリントサービス部,ストレージサービス部等)の一覧を管理する機能ブロックである。
図6は、図1のOA機器のクライアントとなるPC(パーソナルコンピュータ)600に係る機能ブロック図である。図6のPC600は、ネットワークI/F610、Webサービス部620、文書アプリケーションソフト630、ジョブ要求部640、ジョブ一覧要求部650、サービス探索部660等の機能ブロックにより構成される。図6のPC600は、ネットワーク130(図1参照)に接続されて使用される。
ネットワークI/F610は、通信制御を実行する機能ブロックである。図4のネットワークI/F410や図5のネットワークI/F510と同様である。
Webサービス部620は、BMLinkSでのWebサービス要求やWebサービス応答の授受に係る制御を実行する機能ブロックである。図4のWebサービス部420や図5のWebサービス部520と同様である。
文書アプリケーションソフト630は、文書データを作成するためのアプリケーションソフトである。PC600には、オペレーティングシステム(OS)や、文書アプリケーションソフト630等のアプリケーションソフトや、図1のOA機器のドライバがインストールされている。文書アプリケーションソフト630の例としては、ワードプロセッサソフトや表計算ソフトが挙げられる。
ジョブ要求部640は、create_job(ジョブ生成要求)に係る処理を実行する機能ブロックである。例えば、図1のプリンタ114Aにより文書データを印刷する旨の指示を文書アプリケーションソフト630から受けて、図1のプリンタ114Aのプリントサービス154Aに対してcreate_jobを発行する。
ジョブ一覧要求部650は、list_jobs(ジョブ一覧要求)に係る処理を実行する機能ブロックである。例えば、図1のプリンタ114Aの印刷ジョブの一覧を取得する旨の指示を受けて、図1のプリンタ114Aのプリントサービス154Aに対してlist_jobsを発行する。
サービス探索部660は、BMLinkSでのOA機器の探索(Discovery)に係る処理を実行する機能ブロックである。
(文書処理)
以上の説明を踏まえて、図1の文書処理システム100において実行される文書処理について説明する。
(1)起動公告と終了公告
図1の文書処理システム100には、全8個のストレージサービス160が存在する。スキャナ112Aのストレージサービス160A、プリンタ114Aのストレージサービス160B、コピー116のストレージサービス160C、ファクシミリ118のストレージサービス160D、ストレージ装置120Aのストレージサービス160E、ストレージ装置120Bのストレージサービス160F、ストレージ装置120Cのストレージサービス160G,160Hである。
図1の文書処理システム100では、全8個のストレージサービス160が1個のストレージグループ190を形成する。図1のOA機器のストレージサービスはグループ名を保持することが可能であり、同一のグループ名を保持するストレージサービス同士がストレージグループを形成する。図1の文書処理システム100では、全8個の各ストレージサービス160が同一のグループ名を保持している。ストレージサービスのグループ化には、文書処理システム全体のストレージ容量が実質的に拡張されるという利点がある。図1の文書処理システムでは、ストレージサービスのグループ化が以下のようにして自動的に実行されるため、文書処理システム全体のストレージ容量が簡単に拡張される。
図1の文書処理システム100では、ストレージサービス160の間で起動公告や終了公告が授受される。この様子を、ストレージサービス♯1乃至♯nの全n個(nは2以上の自然数)のストレージサービスの間で起動公告や終了公告が授受される様子を記載したフロー図(図8,9)に基づいて説明する。
図8は、起動公告や終了公告が授受される様子の第1の例を記載したフロー図である。
ストレージサービス♯1が起動(S11)した後に、ストレージサービス♯1は、ストレージサービス♯1が起動した旨を公告する起動公告(multicast)を発行(S12)する。ストレージサービス♯1の起動公告には、ストレージサービス♯1が起動した旨を通知する起動通知(notify)や、ストレージサービス♯1のグループ名や、ストレージサービス♯1のURIが包含される。ストレージサービス♯1の起動公告は、ストレージサービス♯2乃至♯nにマルチキャストされる。これに応じてストレージサービス♯2乃至♯nは、ストレージサービス♯1のグループ名と自己のグループ名が同一であれば、ストレージサービス♯1を自己のサービス一覧に登録(S13)する。サービス一覧の管理処理や上記登録処理は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により実行される。
ストレージサービス♯1が終了(S18)する前に、ストレージサービス♯1は、ストレージサービス♯1が終了する旨を公告する終了公告(multicast)を発行(S16)する。ストレージサービス♯1の終了公告には、ストレージサービス♯1が終了する旨を通知する終了通知(notify)や、ストレージサービス♯1のグループ名や、ストレージサービス♯1のURIが包含される。ストレージサービス♯1の終了公告は、ストレージサービス♯2乃至♯nにマルチキャストされる。これに応じてストレージサービス♯2乃至♯nは、ストレージサービス♯1を自己のサービス一覧から削除(S17)する。サービス一覧の管理処理や上記削除処理は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により実行される。
図9は、起動公告や終了公告が授受される様子の第2の例を記載したフロー図である。
ストレージサービス♯1が起動(S11)した後に、ストレージサービス♯1は、ストレージサービス♯1が起動した旨を公告する起動公告(multicast)を発行(S12)する。これに応じてストレージサービス♯2乃至♯nは、ストレージサービス♯1のグループ名と自己のグループ名が同一であれば、ストレージサービス♯1を自己のサービス一覧に登録(S13)すると共に、ストレージサービス♯1の起動公告に応答する起動応答をストレージサービス♯1に対して発行(S14)する。ストレージサービス♯2乃至♯nそれぞれの起動応答には、ストレージサービス♯2乃至♯nそれぞれのグループ名や、ストレージサービス♯2乃至♯nそれぞれのURIが包含される。これに応じてストレージサービス♯1は、ストレージサービス♯2乃至♯nそれぞれのグループ名と自己のグループ名が同一であれば、ストレージサービス♯2乃至♯nのそれぞれを自己のサービス一覧に登録(S15)する。サービス一覧の管理処理や上記登録処理は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により実行される。
ストレージサービス♯1が終了(S18)する前に、ストレージサービス♯1は、ストレージサービス♯1が終了する旨を公告する終了公告(multicast)を発行(S16)する。これに応じてストレージサービス♯2乃至♯nは、ストレージサービス♯1を自己のサービス一覧から削除(S17)する。サービス一覧の管理処理や上記削除処理は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により実行される。
図10は、起動公告のスクリプトの第1の例を表す。図10の起動公告のスクリプトの例は、UDP/IP(User Datagram Protocol/Internet Protocol)マルチキャストでHTTPヘッダのみの例である。記述10−1はストレージサービスの起動通知「ssdp:alive」である。記述10−2はストレージサービスのグループ名「storage group ♯1」である。記述10−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。
図11は、終了公告のスクリプトの第1の例を表す。図11の終了公告のスクリプトの例は、UDP/IP(User Datagram Protocol/Internet Protocol)マルチキャストでHTTPヘッダのみの例である。記述11−1はストレージサービスの起動通知「ssdp:byebye」である。記述11−2はストレージサービスのグループ名「storage group ♯1」である。記述11−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。
図12は、起動応答のスクリプトの例を表す。図12の起動応答のスクリプトの例は、UDP/IP(User Datagram Protocol/Internet Protocol)マルチキャストでHTTPヘッダのみの例である。記述12−1は起動公告に係る「OK」である。記述12−2はストレージサービスのグループ名「storage group ♯1」である。記述12−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。
図13は、起動公告のスクリプトの第2の例を表す。図13の起動公告のスクリプトの例は、UDP/IPマルチキャストでXMLが使用された例である。記述13−1はストレージサービスの起動通知「ssdp:alive」である。記述13−2はストレージサービスのグループ名「storage group ♯1」である。記述13−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。
図14は、終了公告のスクリプトの第2の例を表す。図14の終了公告のスクリプトの例は、UDP/IPマルチキャストでXMLが使用された例である。記述14−1はストレージサービスの終了通知「ssdp:byebye」である。記述14−2はストレージサービスのグループ名「storage group ♯1」である。記述14−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。
図15は、起動公告のスクリプトの第3の例を表す。図15の起動公告のスクリプトの例は、UDP/IPマルチキャストでXMLが使用された例である。記述15−1はストレージサービスの起動通知「ssdp:alive」である。記述15−2はストレージサービスのグループ名「storage group ♯1」である。記述15−3はストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1/」である。記述15−4は子ストレージサービスのグループ名「storage group ♯1.1」である。記述15−5は子ストレージサービスのURI「http://nts−wn.cis.co.jp/storage/service1.1/」である。
(2)文書データの分割と分散保存
図1の文書処理システム100では、ストレージサービス160によって文書データを分割して分散保存することが可能である。例えば、スキャナ112Aのスキャンサービス152Aにより読取原稿から読み取られた文書データが、ストレージサービス160Aにより分割されて、ストレージサービス160Aとストレージサービス160Cとストレージサービス160Eによりストレージ140Aとストレージ140Cとストレージ140Eに分散して保存される。例えばまた、スキャナ112Bのスキャンサービス152Bにより読取原稿から読み取られた文書データが、ストレージサービス160Eにより分割されて、ストレージサービス160Cとストレージサービス160Fによりストレージ140Cとストレージ140Fに分散して保存される。この様子を、ストレージサービス♯1乃至♯nの全n個(nは2以上の自然数)のストレージサービスが関与して文書データを分割して分散保存する様子を記載したフロー図(図16,17)に基づいて説明する。
図16は、文書データを分散保存する様子の第1の例を記載したフロー図である。
始めに、スキャンサービス♯1が、ユーザ♯1によるスキャンスタート操作に応じて、スキャナの読取原稿セット部にセットされた読取原稿から文書データを読み取る(S21)。読取原稿セット部は例えばADF(自動原稿搬送装置)であり、ADFに同時にセットされた複数枚の読取原稿から順番に読み取られた複数ページの画像データが1の文書データとして処理される。
続いて、スキャンサービス♯1は、上記の文書データを保存する旨のデータ保存要求をストレージサービス♯1に対して発行(S22)する。これに応じて、ストレージサービス♯1は、親ファイルを生成(S23)する。ストレージサービス♯1は、スキャンサービス♯1の最寄のストレージサービスであり、スキャンサービス♯1からデータ保存要求を発行する際の発行先とするストレージサービスとして事前に設定されている。ユーザ♯1がこれを意識する必要はない。S22とS23は詳細には、スキャンサービス♯1からストレージサービス♯1にcreate_file(データ保存要求)を発行する処理、これに応じてストレージサービス♯1が親ファイルを生成する処理、これに続いてストレージサービス♯1からスキャンサービス♯1にcreate_fileRESPONSE(データ保存応答)を発行する処理、これに応じてスキャンサービス♯1からストレージサービス♯1に文書データを転送する処理等からなる。
続いて、ストレージサービス♯1は、自己のサービス一覧に登録されているストレージサービスのURI(Uniform Resource Identifiers)を読み出す(S24)。第1節「起動公告と終了公告」において説明したように、サービス一覧は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により管理されている。ストレージサービス♯1は、自己のサービス一覧に登録されているストレージサービスを、ストレージ機能に係る処理を実行する旨のWebサービス要求を当該ストレージサービス♯1から発行する際(例えば下記のS25とS28)の発行先とする。上記のURIは、その際に利用されるものである。
続いて、ストレージサービス♯1は、ユーザ♯1のアクセス情報(アクセス権や空領域等)をストレージサービス♯1乃至♯nに対して問い合わせる(S25)。これに応じて、ストレージサービス♯1乃至nは、認証サービスとやり取りして、ユーザ♯1のアクセス情報(アクセス権や空領域等)をストレージサービス♯1に対して返却(S26)する。S25では、ストレージサービス♯1からストレージサービス♯1乃至♯nにget_service_attributes(アクセス情報要求)が発行されて、S26では、ストレージサービス♯1乃至♯nからストレージサービス♯1にget_service_attributesRESPONSE(アクセス情報応答)が発行される。
続いて、ストレージサービス♯1は、上記の文書データを分割して複数の分割データを生成(S27)して、複数の分割データのそれぞれを保存する旨の複数のデータ保存要求のそれぞれをストレージサービス♯1乃至♯nのそれぞれに対して発行(S28)する。これに応じて、ストレージサービス♯1乃至♯nのそれぞれは、子ファイルを生成(S29)する。S28とS29は詳細には、ストレージサービス♯1からストレージサービス♯1乃至♯nにcreate_file(データ保存要求)を発行する処理、これに応じてストレージサービス♯1乃至♯nが子ファイルを生成する処理、これに続いてストレージサービス♯1乃至nからスキャンサービス♯1にcreate_fileRESPONSE(データ保存応答)を発行する処理、これに応じてストレージサービス♯1が子ファイルの所在を特定するための所在情報(ここでは子ファイルのURL)を親ファイルに保存する処理、これに続いてスキャンサービス♯1からストレージサービス♯1乃至♯nに分割データを転送する処理、これに応じてストレージサービス♯1乃至♯nが分割データを子ファイルに保存する処理等からなる。
図17は、文書データを分散保存する様子の第2の例を記載したフロー図である。
図16の例との相違点は、S22とS23に関して、文書データを保存する旨のデータ保存要求(S22)に応じて、ストレージサービス♯1が、ユーザ♯1の認証を認証サービスに問い合わせて、ユーザ♯1の認証結果を認証サービスから返却されてから、親ファイルを生成(S23)する点である。これにより、S25とS26におけるアクセス情報の問い合わせと返却において、空領域については取扱対象となるが、アクセス権については取扱対象とならない。すでに、アクセス可能となっているからである。ストレージサービス♯1は、ストレージサービス♯1乃至♯nに対して要求を発行する際に、認証済情報(認証チケット)を包含する要求を発行することで、ストレージサービス♯1乃至♯nにアクセス可能なのである。
図16の例と図17の例について総括する。
ストレージサービス♯1によるS23,S24,S25,S27,S28の各処理は、ストレージサービス部430,530のデータ保存部436,536(図4,5参照)により実行される。ストレージサービス♯1によるS25とS28の各処理は、ストレージサービス♯1を含むストレージサービス♯1乃至♯nに対して実行されるようにしているが、ストレージサービス♯1を除くストレージサービス♯2乃至♯nに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、文書データを保存する旨のデータ保存要求に応じて、文書データを分割して複数の分割データを生成(S27)して、複数の分割データを保存する旨の複数のデータ保存要求をストレージサービス♯1を含む又は除く複数のストレージサービス(ストレージサービス♯1乃至♯n又はストレージサービス♯2乃至♯n)に対して発行(S28)する。こうして、文書データが分割されて分散保存されるのである。これを利用して例えば、小容量のストレージに親ファイルを保存し、大容量のストレージに子ファイルを保存するなど、ストレージを効果的に使用することができる。
文書データの分割態様について説明する。文書データの分割態様の第1の例としては、複数ページの画像データからなる文書データをページの境目で分割するような分割態様が挙げられる。このように分割すると、ページ指定プリントの際に便利である。文書データの分割態様の第2の例としては、PDAファイルやHTMLファイル等の構造化言語ファイルに係る文書データをテキスト部分とその他イメージ部分に分割するような分割態様が挙げられる。このように分割する場合、テキスト部分についてはローカル保存するようにするとよい。
分割データの保存先について説明する。図16の例と図17の例では、ストレージサービス♯1は、自己のサービス一覧に登録されているストレージサービスを、分割データの保存先(分割データを保存する旨のデータ保存要求の発行先)とした。この際、サービス一覧に登録されている全てのストレージサービスを保存先としてもよいし、サービス一覧に登録されているストレージサービスに優先順位を設定しておいて、優先順位の高いストレージサービスに保存しきれない場合、優先順位の低いストレージサービスにも保存するようにしてもよい。
図18は、データ保存要求(create_file)のスクリプトの例を表す。記述18が、BMLinkSコマンド「create_file」に係るXML記述である。記述18−1は要求主体であるユーザ♯1のユーザ名「ike」である。記述18−2は生成ファイルのファイル名「scan document data」である。
図19は、データ保存応答(create_fileRESPONSE)のスクリプトの例を表す。記述19が、BMLinkSコマンドレスポンス「create_fileRESPONSE」に係るXML記述である。記述19−1はデータ保存要求に係る「ok」である。記述19−2は生成ファイルのファイルID「001」である。記述19−3はデータの転送先となるURI「http://192.168.1.5/bm−storage/file−001」である。
図20は、データを転送するスクリプトの例を表す。記述20−1がデータの転送先であり、記述20−2がデータである。
図21は、アクセス情報要求(get_service_attributes)のスクリプトの例を表す。記述21が、BMLinkSコマンド「get_service_attributes」に係るXML記述である。記述21−1は要求主体であるストレージサービス♯1のサービス名「ss♯1」である。記述21−2は要求客体であるユーザ♯1のユーザ名「ike」である。記述21−3はアクセス権を問い合わせる旨の記述である。記述21−4は空領域を問い合わせる旨の記述である。
図22は、アクセス情報応答(get_service_attributesRESPONSE)のスクリプトの例を表す。記述22が、BMLinkSコマンドレスポンス「get_service_attributesRESPONSE」に係るXML記述である。記述22−1はアクセス情報要求に係る「ok」である。記述22−2はアクセス権の真偽値「true」である。記述22−3は空領域の容量「12.560MB」である。
図23は、親ファイルと子ファイルについて説明するための図である。1の文書データに係るmの分割データ(mは2以上の自然数)を取り扱う場合、1個の親ファイルとm個の子ファイルが生成される。1の文書データと1個の親ファイルが1対1で対応し、1の分割データと1個の子ファイルが1対1で対応する。子ファイルは分割データを格納するためのファイルで、1個の子ファイルのファイル本体には1の分割データが格納される。親ファイルは文書データに係る全分割データの所在を特定するための所在情報を格納するためのファイルで、1個の親ファイルのファイル本体には全m個の子ファイルそれぞれのURL(Uniform Resource Locators)が格納される。図23では、子ファイル♯1乃至♯mにはそれぞれ分割データ♯1乃至♯mが格納されており、親ファイル♯1には子ファイル♯1乃至♯mそれぞれのURLが格納されている。なお、親ファイルや子ファイルのファイルインスタンスには、ファイルURL,ファイルID,ファイル名,ファイル生成時,ファイル生成者等のファイル属性が格納される。
なお、S28の処理は、ストレージサービス♯1乃至♯n又は♯2乃至♯nの「全て」に対して実行される必要はない。S27の処理にて2の分割データを生成する場合には2個のストレージサービスでよく、S27の処理にて3の分割データを生成する場合には3個のストレージサービスでよい。その意味で、図23ではm(≦n)を使用した。S27の処理にてmの分割データを生成する場合にはm個のストレージサービスでよいのである。n個のストレージサービスの中からm個のストレージサービスを選択する手法の例としては、上記の優先順位が挙げられる。
図1の文書処理システム100では、ストレージサービス160によって分割して分散保存した文書データを、ストレージサービス160によって読み出して結合することが可能である。例えば、スキャナ112Aのスキャンサービス152Aにより読取原稿から読み取られて、ストレージサービス160Aにより分割されて、ストレージサービス160Aとストレージサービス160Cとストレージサービス160Eによりストレージ140Aとストレージ140Cとストレージ140Eに分散して保存された文書データが、ストレージサービス160Aとストレージサービス160Cとストレージサービス160Eによりストレージ140Aとストレージ140Cとストレージ140Eから読み出されて、ストレージサービス160Aにより結合されて、プリンタ114Aのプリントサービス154Aにより印刷用紙に印刷される。例えばまた、スキャナ112Bのスキャンサービス152Bにより読取原稿から読み取られて、ストレージサービス160Eにより分割されて、ストレージサービス160Cとストレージサービス160Fによりストレージ140Cとストレージ140Fに分散して保存された文書データが、ストレージサービス160Cとストレージサービス160Fによりストレージ140Cとストレージ140Fから読み出されて、ストレージサービス160Eにより結合されて、プリンタ114Bのプリントサービス154Bにより印刷用紙に印刷される。この様子を、ストレージサービス♯1乃至♯nの全n個(nは2以上の自然数)のストレージサービスが関与して文書データを読み出して結合する様子を記載したフロー図(図24)に基づいて説明する。
図24は、文書データを読み出す様子の例を記載したフロー図である。
図24のフロー図は、図16のフロー図又は図17のフロー図に続くフロー図である。したがって、ストレージサービス♯1により文書データが分割されて複数の分割データが生成(S27)されて、ストレージサービス♯1乃至♯nにより複数の分割データが分散して保存(S29)されており、ストレージサービス♯1により生成された親ファイル、ストレージサービス♯1乃至♯nにより生成された子ファイルが存在するものとする。
始めに、プリントサービス♯1が、ユーザ♯1によるファイル一覧要求操作に応じて、ファイルの一覧を要求する旨のファイル一覧要求を発行する。ストレージサービス♯1に対しては、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求を発行(S31)する。これに応じて、ストレージサービス♯1は、ストレージサービス♯1乃至♯nそれぞれにより保存されたファイルの一覧を要求する旨のファイル一覧要求をストレージサービス♯1乃至♯nそれぞれに対して発行(S32)する。これに応じて、ストレージサービス♯1乃至♯nのそれぞれは、ストレージサービス♯1乃至♯nのそれぞれにより保存されたファイルの一覧を包含するファイル一覧応答をストレージサービス♯1に対して発行(S33)する。
S31,S32,S33の各処理の前提について解説しておく。図24のフロー図は、ユーザ♯1によるファイル一覧要求操作において、上記の文書データが検索されるような検索条件でファイルの一覧が要求されることを前提とする。この場合、親ファイルの保存先であるストレージサービス♯1は、上記の文書データが検索されるようなファイル一覧要求(データ一覧要求)に応じて、子ファイルの保存先であるストレージサービス♯1乃至♯nに、上記の分割データが検索されるようなファイル一覧要求(データ一覧要求)を発行する。この場合、子ファイルの保存先であるストレージサービス♯1乃至♯nは、親ファイルの保存先であるストレージサービス♯1に、ストレージサービス♯1乃至♯nにより保存された子ファイルの一覧を包含するファイル一覧応答(データ一覧応答)を発行することになる。
続いて、ストレージサービス♯1は、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求に応じたファイル一覧応答として、ストレージサービス♯1により保存された親ファイルその他ファイルの一覧(例:1の親ファイル)のほか、ストレージサービス♯1乃至♯nにより保存された子ファイルの一覧(例:1の親ファイルに係る全ての子ファイル)を包含するデータ一覧応答をプリントサービス♯1に対して発行(S34)する。これに応じて、プリントサービス♯1は、プリンタのオペレーションパネルにファイルの一覧を表示(S35)する。
S31では、プリントサービス♯1からストレージサービス♯1にlist_files(ファイル一覧要求)が発行される。S32では、ストレージサービス♯1からストレージサービス♯1乃至♯nにlist_files(ファイル一覧要求)が発行される。S33では、ストレージサービス♯1乃至♯nからストレージサービス♯1にlist_filesRESPONSE(ファイル一覧応答)が発行される。S34では、ストレージサービス♯1からプリントサービス♯1にlist_filesRESPONSE(ファイル一覧応答)が発行される。
ストレージサービス♯1によるS32,S34の各処理は、ストレージサービス部430,530のデータ一覧生成部437,537(図4,5参照)により実行される。ストレージサービス♯1によるS32の処理は、ストレージサービス♯1によるS28の処理に呼応して、ストレージサービス♯1を含むストレージサービス♯1乃至♯nに対して実行されるようにしているが、ストレージサービス♯1によるS28の処理に呼応して、ストレージサービス♯1を除くストレージサービス♯2乃至♯nに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求に応じて、ストレージサービス♯1乃至♯n又は♯2乃至♯nにより保存されたファイルの一覧を要求する旨の複数のファイル一覧要求をストレージサービス♯1乃至♯n又は♯2乃至♯nに対して発行(S32)して、ストレージサービス♯1により保存された親ファイルその他ファイルの一覧(例:1の親ファイル)とストレージサービス♯1乃至♯n又は♯2乃至♯nにより保存された子ファイルの一覧(例:1の親ファイルに係る全ての子ファイル)を包含するファイル一覧応答を発行(S34)する。
続いて、プリントサービス♯1は、ユーザ♯1によるプリントスタート操作に応じて、プリンタのオペレーションパネルに表示されたファイル一覧の中から選択されたファイルを印刷する印刷ジョブを生成(S41)する。ここでは、分割されて分散保存された上記の文書データを印刷する印刷ジョブが生成されるものとする。S41では、プリントサービス♯1に対してジョブ生成要求(create_job)が発行される。
続いて、プリントサービス♯1は、上記の文書データを読み出す旨のデータ読出要求をストレージサービス♯1に対して発行(S42)する。これに応じて、ストレージサービス♯1は、上記の複数の分割データのそれぞれを読み出す旨の複数のデータ読出要求のそれぞれをストレージサービス♯1乃至♯nのそれぞれに対して発行(S43)する。これに応じて、ストレージサービス♯1乃至♯nのそれぞれは、データ読出応答をストレージサービス♯1に対して発行(S44)する。S42とS43とS44は詳細には、プリントサービス♯1からストレージサービス♯1にread_data(データ読出要求)を発行する処理、これに応じてストレージサービス♯1が分割データ(子ファイル)の所在を特定するための上記の所在情報(ここでは子ファイルのURL)を読み出す処理、これに続いてストレージサービス♯1からストレージサービス♯1乃至♯nにread_data(データ読出要求)を発行する処理、これに応じてストレージサービス♯1乃至♯nからストレージサービス♯1にread_dataRESPONSE(データ読出応答)を発行する処理、これに応じてストレージサービス♯1からストレージサービス♯1乃至♯nに分割データの転送を要求する処理、これに応じてストレージサービス♯1乃至♯nが分割データを読み出す処理、これに続いてストレージサービス♯1乃至♯nからストレージサービス♯1に読み出された分割データを転送する処理等からなる。
続いて、ストレージサービス♯1は、上記の複数の分割データを結合して上記の文書データを生成(S45)して、データ読出応答をプリントサービス♯1に対して発行(S46)する。これに応じて、プリントサービス♯1は、プリンタの印刷用紙セット部にセットされた印刷用紙に上記の文書データを印刷(S47)する。S46は詳細には、ストレージサービス♯1からプリントサービス♯1にread_dataRESPONSE(データ読出応答)を発行する処理、これに応じてプリントサービス♯1からストレージサービス♯1に文書データの転送を要求する処理、これに応じてストレージサービス♯1からプリントサービス♯1に生成された文書データを転送する処理等からなる。
ストレージサービス♯1によるS43,S45,S46の各処理は、ストレージサービス部430,530のデータ読出部438,538(図4,5参照)により実行される。ストレージサービス♯1によるS43の処理は、ストレージサービス♯1によるS28の処理に呼応し、ストレージサービス♯1を含むストレージサービス♯1乃至♯nに対して実行されるようにしているが、ストレージサービス♯1によるS28の処理に呼応し、ストレージサービス♯1を除くストレージサービス♯2乃至♯nに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、分割されて分散保存された上記の文書データを読み出す旨のデータ読出要求に応じて、上記の複数の分割データを読み出す旨の複数のデータ読出要求を上記の複数のストレージサービス(ストレージサービス♯1乃至♯n又はストレージサービス♯2乃至♯n)に対して発行(S43)すると共に、上記の複数の分割データを結合して上記の文書データを生成(S45)する。こうして、保存された文書データが元通りになって読み出されるのである。
図25は、ファイル一覧要求(list_files)のスクリプトの例を表す。記述25が、BMLinkSコマンド「list_files」に係るXML記述である。記述25−1は要求主体であるユーザ♯1のユーザ名「ike」である。記述25−2は検索条件としてユーザ名「ike」を設定する旨の記述である。記述25−3は検索条件としてファイル名「scan*」を設定する旨の記述である。記述25−4はファイル一覧項目としてファイルURL,ファイルID,ファイル名を要求する旨の記述である。
図26は、ファイル一覧応答(list_filesRESPONSE)のスクリプトの例を表す。記述26が、BMLinkSコマンドレスポンス「list_filesRESPONSE」に係るXML記述である。記述26−1はファイル一覧要求に係る「ok」である。記述26−2は検索条件としてユーザ名「ike」が設定された旨の記述である。記述26−3は検索条件としてファイル名「scan*」が設定された旨の記述である。記述26−4は検索されたファイルの一覧である。記述26−5は検索されたファイルのファイルURL,ファイルID,ファイル名である。
図27は、ジョブ生成要求(create_job)のスクリプトの例を表す。記述27が、BMLinkSコマンド「create_job」に係るXML記述である。記述27−1は要求主体であるユーザ♯1のユーザ名「ike」である。記述27−2は生成ジョブのジョブ名「sample−job」である。
図28は、データ読出要求(read_data)のスクリプトの例を表す。記述28が、BMLinkSコマンド「read_data」に係るXML記述である。記述28−1は要求主体であるユーザ♯1のユーザ名「ike」である。記述28−2は読出ファイルのファイルID「001」である。
図29は、データ読出応答(read_dataRESPONSE)のスクリプトの例を表す。記述29が、BMLinkSコマンドレスポンス「read_dataRESPONSE」に係るXML記述である。記述29−1はデータ読出要求に係る「ok」である。記述29−2はデータの転送元となるURI「http://192.168.1.5/bm−storage/file−001」である。
図30は、データの転送を要求するスクリプトの例を表す。記述30−1がデータの転送元である。
図31は、データを転送するスクリプトの例を表す。記述31−1がデータである。
なお、S28の処理がm個のストレージサービスに対して実行される場合には、S43の処理もm個のストレージサービスに対して実行されることになる。
(3)文書データの複製と重複保存
図1の文書処理システム100では、ストレージサービス160によって文書データを複製(コピー)して重複保存(ミラーリング)することが可能である。例えば、スキャナ112Aのスキャンサービス152Aにより読取原稿から読み取られた文書データが、ストレージサービス160Aにより複製されて、ストレージサービス160Aとストレージサービス160Cとストレージサービス160Eによりストレージ140Aとストレージ140Cとストレージ140Eに重複して保存される。例えばまた、スキャナ112Bのスキャンサービス152Bにより読取原稿から読み取られた文書データが、ストレージサービス160Eにより複製されて、ストレージサービス160Cとストレージサービス160Fによりストレージ140Cとストレージ140Fに重複して保存される。この様子を、ストレージサービス♯1乃至♯nの全n個(nは2以上の自然数)のストレージサービスが関与して文書データを複製して重複保存する様子を記載したフロー図(図32,33)に基づいて説明する。
図32は、文書データを分散保存する様子の第1の例を記載したフロー図である。
始めに、スキャンサービス♯1が、ユーザ♯1によるスキャンスタート操作に応じて、スキャナの読取原稿セット部にセットされた読取原稿から文書データを読み取る(S51)。読取原稿セット部は例えばADF(自動原稿搬送装置)であり、ADFに同時にセットされた複数枚の読取原稿から順番に読み取られた複数ページの画像データが1の文書データとして処理される。
続いて、スキャンサービス♯1は、上記の文書データを保存する旨のデータ保存要求をストレージサービス♯1に対して発行(S52)する。これに応じて、ストレージサービス♯1は、親ファイルを生成(S53)する。ストレージサービス♯1は、スキャンサービス♯1の最寄のストレージサービスであり、スキャンサービス♯1からデータ保存要求を発行する際の発行先とするストレージサービスとして事前に設定されている。ユーザ♯1がこれを意識する必要はない。S52とS53は詳細には、スキャンサービス♯1からストレージサービス♯1にcreate_file(データ保存要求)を発行する処理、これに応じてストレージサービス♯1が親ファイルを生成する処理、これに続いてストレージサービス♯1からスキャンサービス♯1にcreate_fileRESPONSE(データ保存応答)を発行する処理、これに応じてスキャンサービス♯1からストレージサービス♯1に文書データを転送する処理等からなる。
続いて、ストレージサービス♯1は、自己のサービス一覧に登録されているストレージサービスのURI(Uniform Resource Identifiers)を読み出す(S54)。第1節「起動公告と終了公告」において説明したように、サービス一覧は、ストレージサービス部430,530のサービス一覧管理部434,534(図4,5参照)により管理されている。ストレージサービス♯1は、自己のサービス一覧に登録されているストレージサービスを、ストレージ機能に係る処理を実行する旨のWebサービス要求を当該ストレージサービス♯1から発行する際(例えば下記のS55とS58)の発行先とする。上記のURIは、その際に利用されるものである。
続いて、ストレージサービス♯1は、ユーザ♯1のアクセス情報(アクセス権や空領域等)をストレージサービス♯1乃至♯nに対して問い合わせる(S55)。これに応じて、ストレージサービス♯1乃至nは、認証サービスとやり取りして、ユーザ♯1のアクセス情報(アクセス権や空領域等)をストレージサービス♯1に対して返却(S56)する。S55では、ストレージサービス♯1からストレージサービス♯1乃至♯nにget_service_attributes(アクセス情報要求)が発行されて、S56では、ストレージサービス♯1乃至♯nからストレージサービス♯1にget_service_attributesRESPONSE(アクセス情報応答)が発行される。
続いて、ストレージサービス♯1は、上記の文書データを複製して複数の文書データを生成(S57)して、複数の文書データのそれぞれを保存する旨の複数のデータ保存要求のそれぞれをストレージサービス♯1乃至♯nのそれぞれに対して発行(S58)する。これに応じて、ストレージサービス♯1乃至♯nのそれぞれは、子ファイルを生成(S59)する。S58とS59は詳細には、ストレージサービス♯1からストレージサービス♯1乃至♯nにcreate_file(データ保存要求)を発行する処理、これに応じてストレージサービス♯1乃至♯nが子ファイルを生成する処理、これに続いてストレージサービス♯1乃至nからスキャンサービス♯1にcreate_fileRESPONSE(データ保存応答)を発行する処理、これに応じてストレージサービス♯1が子ファイルの所在を特定するための所在情報(ここでは子ファイルのURL)を親ファイルに保存する処理、これに続いてスキャンサービス♯1からストレージサービス♯1乃至♯nに文書データを転送する処理、これに応じてストレージサービス♯1乃至♯nが文書データを子ファイルに保存する処理等からなる。
図33は、文書データを分散保存する様子の第2の例を記載したフロー図である。
図32の例との相違点は、S52とS53に関して、文書データを保存する旨のデータ保存要求(S52)に応じて、ストレージサービス♯1が、ユーザ♯1の認証を認証サービスに問い合わせて、ユーザ♯1の認証結果を認証サービスから返却されてから、親ファイルを生成(S53)する点である。これにより、S55とS56におけるアクセス情報の問い合わせと返却において、空領域については取扱対象となるが、アクセス権については取扱対象とならない。すでに、アクセス可能となっているからである。ストレージサービス♯1は、ストレージサービス♯1乃至♯nに対して要求を発行する際に、認証済情報(認証チケット)を包含する要求を発行することで、ストレージサービス♯1乃至♯nにアクセス可能なのである。
図32の例と図33の例について総括する。
ストレージサービス♯1によるS53,S54,S55,S57,S58の各処理は、ストレージサービス部430,530のデータ保存部436,536(図4,5参照)により実行される。ストレージサービス♯1によるS55とS58の各処理は、ストレージサービス♯1を含むストレージサービス♯1乃至♯nに対して実行されるようにしているが、ストレージサービス♯1を除くストレージサービス♯2乃至♯nに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、文書データを保存する旨のデータ保存要求に応じて、文書データを複製して複数の文書データを生成(S57)して、複数の文書データを保存する旨の複数のデータ保存要求をストレージサービス♯1を含む又は除く複数のストレージサービス(ストレージサービス♯1乃至♯n又はストレージサービス♯2乃至♯n)に対して発行(S58)する。こうして、文書データが複製されて重複保存されるのである。これを利用して、ストレージをミラーリング用として効果的に使用することができる。
図34は、親ファイルと子ファイルについて説明するための図である。1の文書データに由来するmの重複文書データ(mは2以上の自然数)を取り扱う場合、1個の親ファイルとm個の子ファイルが生成される。1の文書データと1個の親ファイルが1対1で対応し、1の重複文書データと1個の子ファイルが1対1で対応する。子ファイルは重複文書データを格納するためのファイルで、1個の子ファイルのファイル本体には1の重複文書データが格納される。親ファイルは同一文書データに由来する全重複文書データの所在を特定するための所在情報を格納するためのファイルで、1個の親ファイルのファイル本体には全m個の子ファイルそれぞれのURL(Uniform Resource Locators)が格納される。図34では、子ファイル♯1乃至♯mにはそれぞれ重複文書データ♯1乃至♯mが格納されており、親ファイル♯1には子ファイル♯1乃至♯mそれぞれのURLが格納されている。なお、親ファイルや子ファイルのファイルインスタンスには、ファイルURL,ファイルID,ファイル名,ファイル生成時,ファイル生成者等のファイル属性が格納される。
なお、S58の処理は、ストレージサービス♯1乃至♯n又は♯2乃至♯nの「全て」に対して実行される必要はない。S57の処理にて2の文書データを生成する場合には2個のストレージサービスでよく、S57の処理にて3の文書データを生成する場合には3個のストレージサービスでよい。その意味で、図34ではm(≦n)を使用した。S57の処理にてmの文書データを生成する場合にはm個のストレージサービスでよいのである。
図1の文書処理システム100では、ストレージサービス160によって複製して重複保存した文書データを、ストレージサービス160によって読み出すことが可能である。例えば、スキャナ112Aのスキャンサービス152Aにより読取原稿から読み取られ、ストレージサービス160Aにより複製され、ストレージサービス160Aとストレージサービス160Cとストレージサービス160Eによりストレージ140Aとストレージ140Cとストレージ140Eに重複して保存された文書データが、ストレージサービス160Aやストレージサービス160Cやストレージサービス160Eによりストレージ140Aやストレージ140Cやストレージ140Eから読み出され、プリンタ114Aのプリントサービス154Aにより印刷用紙に印刷される。例えばまた、スキャナ112Bのスキャンサービス152Bにより読取原稿から読み取られ、ストレージサービス160Eにより複製され、ストレージサービス160Cとストレージサービス160Fによりストレージ140Cとストレージ140Fに重複して保存された文書データが、ストレージサービス160Cやストレージサービス160Fによりストレージ140Cやストレージ140Fから読み出されて、プリンタ114Bのプリントサービス154Bにより印刷用紙に印刷される。この様子を、ストレージサービス♯1乃至♯nの全n個(nは2以上の自然数)のストレージサービスが関与して文書データを読み出す様子を記載したフロー図(図35)に基づいて説明する。
図35は、文書データを読み出す様子の例を記載したフロー図である。
図35のフロー図は、図32のフロー図又は図33のフロー図に続くフロー図である。したがって、ストレージサービス♯1により文書データが複製されて同一の文書データが複数生成(S57)されて、ストレージサービス♯1乃至♯nにより同一の文書データが重複して複数保存(S59)されており、ストレージサービス♯1により生成された親ファイル、ストレージサービス♯1乃至♯nにより生成された子ファイルが存在するものとする。
始めに、プリントサービス♯1が、ユーザ♯1によるファイル一覧要求操作に応じて、ファイルの一覧を要求する旨のファイル一覧要求を発行する。ストレージサービス♯1に対しては、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求を発行(S61)する。これに応じて、ストレージサービス♯1は、ストレージサービス♯1乃至♯nそれぞれにより保存されたファイルの一覧を要求する旨のファイル一覧要求をストレージサービス♯1乃至♯nそれぞれに対して発行(S62)する。これに応じて、ストレージサービス♯1乃至♯nのそれぞれは、ストレージサービス♯1乃至♯nのそれぞれにより保存されたファイルの一覧を包含するファイル一覧応答をストレージサービス♯1に対して発行(S63)する。
S61,S62,S63の各処理の前提について解説しておく。図35のフロー図は、ユーザ♯1によるファイル一覧要求操作において、上記の文書データが検索されるような検索条件でファイルの一覧が要求されることを前提とする。この場合、親ファイルの保存先であるストレージサービス♯1は、上記の文書データが検索されるようなファイル一覧要求(データ一覧要求)に応じて、子ファイルの保存先であるストレージサービス♯1乃至♯nに、上記の文書データが検索されるようなファイル一覧要求(データ一覧要求)を発行する。この場合、子ファイルの保存先であるストレージサービス♯1乃至♯nは、親ファイルの保存先であるストレージサービス♯1に、ストレージサービス♯1乃至♯nにより保存された子ファイルの一覧を包含するファイル一覧応答(データ一覧応答)を発行することになる。
続いて、ストレージサービス♯1は、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求に応じたファイル一覧応答として、ストレージサービス♯1により保存された親ファイルその他ファイルの一覧(例:1の親ファイル)のほか、ストレージサービス♯1乃至♯nにより保存された子ファイルの一覧(例:1の親ファイルに係る全ての子ファイル)を包含するデータ一覧応答をプリントサービス♯1に対して発行(S64)する。これに応じて、プリントサービス♯1は、プリンタのオペレーションパネルにファイルの一覧を表示(S65)する。
S61では、プリントサービス♯1からストレージサービス♯1にlist_files(ファイル一覧要求)が発行される。S62では、ストレージサービス♯1からストレージサービス♯1乃至♯nにlist_files(ファイル一覧要求)が発行される。S63では、ストレージサービス♯1乃至♯nからストレージサービス♯1にlist_filesRESPONSE(ファイル一覧応答)が発行される。S64では、ストレージサービス♯1からプリントサービス♯1にlist_filesRESPONSE(ファイル一覧応答)が発行される。
ストレージサービス♯1によるS62,S64の各処理は、ストレージサービス部430,530のデータ一覧生成部437,537(図4,5参照)により実行される。ストレージサービス♯1によるS62の処理は、ストレージサービス♯1によるS58の処理に呼応して、ストレージサービス♯1を含むストレージサービス♯1乃至♯nに対して実行されるようにしているが、ストレージサービス♯1によるS58の処理に呼応して、ストレージサービス♯1を除くストレージサービス♯2乃至♯nに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、ストレージサービス♯1により保存されたファイルの一覧を要求する旨のファイル一覧要求に応じて、ストレージサービス♯1乃至♯n又は♯2乃至♯nにより保存されたファイルの一覧を要求する旨の複数のファイル一覧要求をストレージサービス♯1乃至♯n又は♯2乃至♯nに対して発行(S62)して、ストレージサービス♯1により保存された親ファイルその他ファイルの一覧(例:1の親ファイル)とストレージサービス♯1乃至♯n又は♯2乃至♯nにより保存された子ファイルの一覧(例:1の親ファイルに係る全ての子ファイル)を包含するファイル一覧応答を発行(S64)する。
続いて、プリントサービス♯1は、ユーザ♯1によるプリントスタート操作に応じて、プリンタのオペレーションパネルに表示されたファイル一覧の中から選択されたファイルを印刷する印刷ジョブを生成(S71)する。ここでは、複製されて重複保存された上記の文書データを印刷する印刷ジョブが生成されるものとする。S71では、プリントサービス♯1に対してジョブ生成要求(create_job)が発行される。
続いて、プリントサービス♯1は、上記の文書データを読み出す旨のデータ読出要求をストレージサービス♯1に対して発行(S72)する。これに応じて、ストレージサービス♯1は、上記の複数の文書データのいずれかを読み出す旨のデータ読出要求をストレージサービス♯1乃至♯nのいずれかに対して発行(S73)する。これに応じて、ストレージサービス♯1乃至♯nのいずれかは、データ読出応答をストレージサービス♯1に対して発行(S74)する。S72とS73とS74は詳細には、プリントサービス♯1からストレージサービス♯1にread_data(データ読出要求)を発行する処理、これに応じてストレージサービス♯1が文書データ(子ファイル)の所在を特定するための上記の所在情報(ここでは子ファイルのURL)を読み出す処理、これに続いてストレージサービス♯1からストレージサービス♯1乃至♯nいずれかにread_data(データ読出要求)を発行する処理、これに応じてストレージサービス♯1乃至♯nいずれかからストレージサービス♯1にread_dataRESPONSE(データ読出応答)を発行する処理、これに応じてストレージサービス♯1からストレージサービス♯1乃至♯nいずれかに文書データの転送を要求する処理、これに応じてストレージサービス♯1乃至♯nいずれかが文書データを読み出す処理、これに続いてストレージサービス♯1乃至♯nいずれかからストレージサービス♯1に読み出された文書データを転送する処理等からなる。
続いて、ストレージサービス♯1は、データ読出応答をプリントサービス♯1に対して発行(S76)する。これに応じて、プリントサービス♯1は、プリンタの印刷用紙セット部にセットされた印刷用紙に上記の文書データを印刷(S77)する。S76は詳細には、ストレージサービス♯1からプリントサービス♯1にread_dataRESPONSE(データ読出応答)を発行する処理、これに応じてプリントサービス♯1からストレージサービス♯1に文書データの転送を要求する処理、これに応じてストレージサービス♯1からプリントサービス♯1に読み出された文書データを転送する処理等からなる。
ストレージサービス♯1によるS73,S76の各処理は、ストレージサービス部430,530のデータ読出部438,538(図4,5参照)により実行される。ストレージサービス♯1によるS73の処理は、ストレージサービス♯1によるS58の処理に呼応し、ストレージサービス♯1を含むストレージサービス♯1乃至♯nのいずれかに対して実行されるようにしているが、ストレージサービス♯1によるS58の処理に呼応し、ストレージサービス♯1を除くストレージサービス♯2乃至♯nのいずれかに対して実行されるようにしてもよい。
このように、ストレージサービス♯1は、複製されて重複保存された上記の文書データを読み出す旨のデータ読出要求に応じて、上記の複数の文書データのいずれかを読み出す旨のデータ読出要求を上記の複数のストレージサービス(ストレージサービス♯1乃至♯n又はストレージサービス♯2乃至♯n)のいずれかに対して発行(S73)する。こうして、保存された文書データが読み出されるのである。
なお、S58の処理がm個のストレージサービスに対して実行される場合には、S73の処理はm個のストレージサービスのいずれかに対して実行されることになる。
(変形例)
図1の画像形成装置110やストレージ装置120は、本発明の実施例に該当し、図1の画像形成装置110やストレージ装置120においてストレージサービス160(ストレージサービス部430やストレージサービス部530)により実行される文書処理方法は、本発明の実施例に該当する。当該文書処理方法をコンピュータに実行させる文書処理プログラムは、本発明の実施例に該当し、当該文書処理方法をコンピュータに実行させる文書処理プログラムが記録されたコンピュータ読取可能な記録媒体は、本発明の実施例に該当する。