(57)【要約】【課題】ファイル配信システム、ファイル配信方法、プログラムおよび記録媒体を提供すること【解決手段】ファイル配信システム１００は、複数のジョブのシーケンスであるワークフローの実行指令を受領する操作パネル１１２と、ユーザ入力により呼出され、ジョブのシーケンスであるワークフローの実行を管理し、ネットワーク１２８を介して他ローカルシステム１３６、１３８にジョブを割当てるとともに、他ローカルシステム１３６、１３８からの処理結果を受領してワークフローの後続ジョブに渡すワークフロー実行部１１８と、ワークフローを構成するジョブのためのプラグインとして実装された各種処理部１２０とを含み、ワークフロー実行部１２０は、他ローカルシステム１３６、１３８がジョブを実行するプラグインを保有しない場合、ジョブを実行するためのプラグインとともにジョブの対象データを送信する。【選択図】図１
2009146244.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された複数のローカルシステムを含むファイル配信システムであって、
複数のジョブのシーケンスであるワークフローの実行依頼を受領するインタフェース手段と、
ユーザ入力により呼出され、前記ワークフローの実行を管理し、前記ネットワークを介して他ローカルシステムに前記ジョブを割当てるとともに、前記他ローカルシステムからの処理結果を受領して前記ワークフローの後続ジョブに渡すワークフロー実行手段と、
前記ジョブを実行するためのプラグイン手段とを含み、
前記ワークフロー実行手段は、前記ジョブを割当てるための割当手段を参照して前記他ローカルシステムを選択し、前記他ローカルシステムが前記ジョブを実行する前記プラグイン手段を保有しない場合、前記ジョブを実行するための前記プラグイン手段とともに前記ジョブの対象データを送信して前記ジョブを割当てる
ファイル配信システム。
【請求項２】
前記ワークフロー実行手段は、前記割当手段に登録された配信履歴および処理能力を使用し、前記割当手段は、前記配信履歴に配信失敗が登録されていない他ローカルシステムの選択優先順位を高く登録する、請求項１に記載のファイル配信システム。
【請求項３】
前記ローカルシステムは、ライセンス管理手段を含み、前記ローカルシステムが前記プラグイン手段を配信する場合、前記ワークフロー実行手段は、前記プラグイン手段のライセンス数を超えず、かつ前記配信履歴に配信失敗が登録されていない他ローカルシステムを選択する、請求項２に記載のファイル配信システム。
【請求項４】
前記割当手段は、配信ジョブの平均実行時間についての移動平均を処理能力として登録しており、前記ワークフロー実行手段は、前記移動平均の値を参照して前記ジョブを割当てる他ローカルシステムを選択する、請求項２に記載のファイル配信システム。
【請求項５】
前記ローカルシステムは、前記ファイル配信システムの前記ネットワーク上でのローカルシステム構成の変更を検出して前記割当手段を更新する更新手段を含む、請求項１に記載のファイル配信システム。
【請求項６】
前記他ローカルシステムは、前記ワークフローを構成する前記ジョブのため、デイジーチェーン方式で第２の他ローカルシステムにジョブを配信する、請求項１に記載のファイル配信システム。
【請求項７】
ネットワークを介して接続された複数のローカルシステムが実行するファイル配信方法であって、
複数のジョブのシーケンスであるワークフローの実行依頼を受領するステップと、
前記ワークフローの実行依頼の受領に応答し、前記ワークフローを構成するジョブを割当てるための割当手段を参照して他ローカルシステムを選択するステップと、
前記他ローカルシステムに対して前記ジョブの実行を依頼するステップと、
前記他ローカルシステムから前記ジョブの処理結果を受領するステップとを含み、
前記選択するステップは、
前記割当手段に登録された配信履歴および処理能力を使用し、前記配信履歴に配信失敗が登録されていない他ローカルシステムを選択するステップと、
選択した前記他ローカルシステムが前記ジョブのためのプラグイン手段を保有するか否かを判断するステップと、
前記他ローカルシステムが前記ジョブのためのプラグイン手段を保有しない場合、前記ジョブを実行するための前記プラグイン手段とともに前記ジョブの対象データを前記ネットワークを介して前記他ローカルシステムに送信することにより前記ジョブを割当てるステップと
を含むファイル配信方法。
【請求項８】
前記選択するステップは、
前記プラグイン手段のライセンス数を判断するステップと、前記ライセンス数を超えず、かつ前記配信履歴に配信失敗が登録されていない選択優先順位の高い他ローカルシステムを選択するステップと
をさらに含む、請求項７に記載のファイル配信方法。
【請求項９】
前記選択するステップは、配信ジョブの平均実行時間についての移動平均を処理能力として前記移動平均の値を参照し、前記ジョブを割当てるべき他ローカルシステムを選択するステップを含む、請求項７に記載のファイル配信方法。
【請求項１０】
請求項１〜６のいずれか１項に記載の各手段を画像処理装置に実現するための装置実行可能なプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録した装置可読な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、他の処理装置と共同して処理負荷を分散するファイル配信システム、ファイル配信方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、画像処理装置（以下、ＭＦＰとして参照する。）は、複写機能、ファクシミリ機能、ＯＣＲ機能、プリンタ機能など複数の機能を提供する。ＭＦＰは、多機能を提供するため、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などのオペレーティングシステム（以下、ＯＳとして参照する。）により制御される複数のアプリケーションプログラムを実行する。また、ＭＦＰは、ローカルエリアネットワーク（ＬＡＮ）や、インターネットなどからなるネットワークに接続され、ＳＭＴＰ、ＨＴＴＰなどのデータ転送プロトコルを使用してファイルを送受信することも可能とされている。
【０００３】
したがって、近年のＭＦＰは、単に画像処理を行うばかりではなく、ファイルを配信することが可能であるため、複数のＭＦＰがネットワークに接続された場合、ファイル配信システムを構成するものとして捉えることもできる。以下、ファイル配信システムを、各種のデータやプログラムなど、情報処理装置が処理可能なファイルを指定された方法で読込んで処理を実行し、ネットワークを介して他のシステムに送信する複数のローカルシステムからなるシステムとして定義する。
【０００４】
上述したファイル配信システムが、複数のジョブがシーケンスとなってユーザの要求に対応するワークフローを処理する場合について説明する。ワークフローは、（１）ＭＦＰといったローカルシステムでスキャンし、ＴＩＦＦファイルとされた画像データ（ＴＩＦＦフォーマット）を、ＢＭＰファイルへとフォーマット変換し、（２）ＢＭＰファイルを使用してＯＣＲ処理を行い、（３）ＯＣＲ処理の結果を電子メールで配信するワークフローの場合を例として説明する。なお、ワークフローは、ワークフローを構成するジョブおよび他ローカルシステムで実行するべきジョブ、実行先などと共にローカルシステム上でユーザが定義する。
【０００５】
図９に、従来のファイル配信システムでのワークフローの処理プロセスを示す。図９（ａ）は、ワークフローを単一のローカルシステム９００で実行させる場合の従来例であり、図９（ｂ）は、ワークフローをネットワーク接続されたローカルシステム９００、９２０間で負荷分散しながら処理する従来例を示す。図９に示すように、ワークフローは、一連のジョブのシーケンスとして定義され、図９（ａ）の従来例では、単一のローカルシステム９００上でジョブ９０２、９０４、９０６が実行される。一方、図９（ｂ）に示した従来例では、ローカルシステム９１０上でジョブ９１２、９１６が実行され、他ローカルシステム９２０上で、ジョブ９１４が実行される。ユーザは、ワークフローを定義する場合に、図９（ａ）で示すように、一連のジョブを同一のローカルシステム上で実行させることを指定することができる。また、ユーザは、ワークフローを、図９（ｂ）に示すように特定のジョブ９０２のみを他のローカルシステム９２０上で行うという設定を行うこともできる。
【０００６】
ユーザは、ワークフローの実行を希望する場合、まずローカルシステム上で実行するべきワークフローを選択する。ローカルシステム９００、９１０、９２０は、ユーザが指定したワークフローに従ってデータに対して処理を行い、他ローカルシステムに対するファイル配信処理など行う。上述したようなファイル配信システムとして、例えば特許第３７７７７６７号明細書（特許文献１）では、ネットワークで接続されたコンピュータ間でリソースをインストールする際に、リソースのインストールに関連する負荷増大を回避するために、リソースをデイジーチェーン方式で順次インストールする方法およびシステムが開示されている。特許文献１に開示されたシステムは、コンピュータをネットワークで接続し、インストール対象であるリソースをデイジーチェーン方式でコンピュータに順次インストールするものである。
【特許文献１】特許第３７７７７６７号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示されたシステムもファイルを配信するものの、ワークフローを複数のローカルシステム間で共有させるものではない。また、特許文献１に記載されたシステムは、ファイルサーバなどのファイル送信負荷を低減することは可能とするものの、特定のローカルシステムでの処理負荷を、処理オブジェクトを分散させることにより低減させるものではない。さらに、特許文献１に記載されたシステムは、ネットワーク中にサーバを配置することが必要とされ、ネットワーク構成の変更に柔軟に対応できず、またシステムコストも増大してしまうという問題があった。サーバを介してのファイル配信システムは、サーバダウンなどにより、各ＭＦＰは健全でも、ファイル配信機能全体が機能しなくなるというように、システムのロバスト性に問題があった。
【０００８】
加えて、上述した従来のファイル配信システムは、ジョブの転送先のローカルシステムは、必ず受信したジョブの実行が可能でなければならないということが前提条件とされるものである。またリソースファイルをデイジーチェーン方式で配信する場合でも、配信先のコンピュータは、配信されたリソースファイルをインストールすることができることが前提とされている。
【０００９】
さらに、従来のファイル配信システムでは、ユーザは、ジョブまたはリソースファイルの転送先を、予めローカルシステムに登録しておかなければならなかった。すなわち、従来のファイル配信システムは、配信先の能力が保証され、かつ予め配信先がワークフロー内で指定されていなければならず、ファイル配信システムを構成するファイル配信システム内で最適な負荷分散を行うことができないという問題があった。さらに、配信サーバを利用する場合には、システム構成の変更に柔軟に対応できず、さらにサーバダウンによるワークフロー処理機能の全体がダウンするという、システムロバスト性においても充分なものではなかった。
【００１０】
本発明は、上記従来技術の課題に鑑みてなされたものであり、ユーザが予めファイルの転送先を指定することなく、ローカルシステムがワークフローの処理効率やライセンス状況などに対応して自動的にファイルの配信先を選択し、ファイル配信システム内で最適な負荷分散を可能とする、ファイル配信システム、ファイル配信方法、プログラムおよび記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明では、ＭＦＰなどをローカルシステムとし、複数のローカルシステムをネットワーク接続してファイル配信システムを構成する。ワークフローを構成するジョブは、ローカルシステムから他ローカルシステムへと配信される。ジョブの配信は、ジョブの種類、他ローカルシステムのパフォーマンス、ライセンス管理などに応じて配信元のローカルシステムにおいて動的に選択される。
【００１２】
負荷分散を最適化させる場合において、送付先の他ローカルシステムがジョブを実行するべきプログラムを保有していない場合、ジョブの対象データと共に、ジョブを実行するプログラムを、ライセンス制限に反しない範囲でプラグインとして他ローカルシステムに送付する。他ローカルシステムでのプラグインのインストール成功は、他ローカルシステムから、送信元のローカルシステムへと送付される。ローカルシステムは、インストール成功を受領すると、送付した対象データに対するプラグインを使用した処理を指令する実行指令を発行し、ワークフローを続行させる。
【００１３】
ローカルシステムは、プラグインプログラムのライセンス管理も行っており、プラグインがライセンス制限を受ける場合、ライセンス数を超えてファイル配信システム内で共用されないように管理しながら、ワークフローの効率的な実行管理を行う。
【００１４】
すなわち、本発明では、ファイル配信システム内でのジョブ処理効率を最適化することにより、ワークフロー全体の処理効率を向上させることが可能となる。
【００１５】
また、本発明では、ワークフローに対して予め配信するローカルシステムを割当てる必要が無く、またファイル配信機能を含むサーバを使用しないので、処理効率、ライセンス管理を効率化し、かつファイル配信システムの構成変更に柔軟に対応することが可能となる。
【００１６】
すなわち、本発明によれば、ネットワークを介して接続された複数のローカルシステムを含むファイル配信システムであって、
複数のジョブのシーケンスであるワークフローの実行依頼を受領するインタフェース手段と、
ユーザ入力により呼出され、前記ワークフローの実行を管理し、前記ネットワークを介して他ローカルシステムに前記ジョブを割当てるとともに、前記他ローカルシステムからの処理結果を受領して前記ワークフローの後続ジョブに渡すワークフロー実行手段と、
前記ジョブを実行するためのプラグイン手段とを含み、
前記ワークフロー実行手段は、前記ジョブを割当てるための割当手段を参照して前記他ローカルシステムを選択し、前記他ローカルシステムが前記ジョブを実行する前記プラグイン手段を保有しない場合、前記ジョブを実行するための前記プラグイン手段とともに前記ジョブの対象データを送信して前記ジョブを割当てる
ファイル配信システムが提供される。
【００１７】
本発明の前記ワークフロー実行手段は、前記割当手段に登録された配信履歴および処理能力を使用し、前記割当手段は、前記配信履歴に配信失敗が登録されていない他ローカルシステムの選択優先順位を高く登録することができる。本発明の前記ローカルシステムは、ライセンス管理手段を含み、前記ローカルシステムが前記プラグイン手段を配信する場合、前記ワークフロー実行手段は、前記プラグイン手段のライセンス数を超えず、かつ前記配信履歴に配信失敗が登録されていない他ローカルシステムを選択することができる。
【００１８】
本発明の前記割当手段は、配信ジョブの平均実行時間についての移動平均を処理能力として登録しており、前記ワークフロー実行手段は、前記移動平均の値を参照して前記ジョブを割当てる他ローカルシステムを選択することができる。本発明の前記ローカルシステムは、前記ファイル配信システムの前記ネットワーク上でのローカルシステム構成の変更を検出して前記割当手段を更新する更新手段を含むことができる。本発明の前記他ローカルシステムは、前記ワークフローを構成する前記ジョブのため、デイジーチェーン方式で第２の他ローカルシステムにジョブを配信することができる。
【００１９】
また、本発明によれば、ネットワークを介して接続された複数のローカルシステムが実行するファイル配信方法であって、
複数のジョブのシーケンスであるワークフローの実行依頼を受領するステップと、
前記ワークフローの実行依頼の受領に応答し、前記ワークフローを構成するジョブを割当てるための割当手段を参照して他ローカルシステムを選択するステップと、
前記他ローカルシステムに対して前記ジョブの実行を依頼するステップと、
前記他ローカルシステムから前記ジョブの処理結果を受領するステップとを含み、
前記選択するステップは、
前記割当手段に登録された配信履歴および処理能力を使用し、前記配信履歴に配信失敗が登録されていない他ローカルシステムを選択するステップと、
選択した前記他ローカルシステムが前記ジョブのためのプラグイン手段を保有するか否かを判断するステップと、
前記他ローカルシステムが前記ジョブのためのプラグイン手段を保有しない場合、前記ジョブを実行するための前記プラグイン手段とともに前記ジョブの対象データを前記ネットワークを介して前記他ローカルシステムに送信することにより前記ジョブを割当てるステップと
を含むファイル配信方法が提供される。
【００２０】
本発明の前記選択するステップは、
前記プラグイン手段のライセンス数を判断するステップと、前記ライセンス数を超えず、かつ前記配信履歴に配信失敗が登録されていない選択優先順位の高い他ローカルシステムを選択するステップと
をさらに含むことができる。
【００２１】
本発明の前記選択するステップは、配信ジョブの平均実行時間についての移動平均を処理能力として前記移動平均の値を参照し、前記ジョブを割当てるべき他ローカルシステムを選択するステップを含むことができる。
【００２２】
本発明では、上記いずれかに記載の各手段を画像処理装置に実現するための装置実行可能なプログラムが提供できる。また、本発明では、上記いずれかに記載の各手段を画像処理装置に実現するための装置実行可能なプログラムを記録した装置可読な記憶媒体が提供できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明を実施形態に基づいて説明するが、本発明は、後述する実施形態に限定されるものではない。図１は、ファイル配信システム１００の機能ブロックの実施形態を示す。図１に示したファイル配信システム１００は、複数のＭＦＰがネットワーク１２８に接続されて構成されており、ファイル配信システム１００を構成するＭＦＰを、以下、ローカルシステム１１０、１３６、１３８として参照する。
【００２４】
ネットワーク１２８は、ローカルエリアネットワーク（ＬＡＮ）、またはインターネットなどを含んで構成されており、ネットワーク１２８を介してローカルシステムがワークフローを構成するジョブを送受信する。なお、本実施形態では、ファイル配信システム１００は、複数のローカルシステム１１０、１３６、１３８がＬＡＮに接続され、ＭＡＣアドレスレベルでのファイル転送を行うものとして説明する。しかしながら、ファイル配信システム１００は、ＩＰプロトコルを使用し、ルータで接続された複数のドメインにわたり通信を行うワイドエリアネットワークまたはインターネットなどを介して相互接続されていてもよい。
【００２５】
ネットワーク１２８には、さらにメール転送を行うＳＭＴＰサーバ１３０、電子化されたドキュメントを管理する文書管理システム（Electric Document Management System:EDMS)１３２、ＩＴＵ勧告Ｘ．５００プロトコルなどを使用してファイルへのアクセスを可能とするファイルサーバ１３４などが接続されている。ＳＭＴＰサーバ１３０、ＥＤＭＳ１３２、ファイルサーバ１３４は、それぞれ、ローカルシステム１１０、１３６、１３８などからのアクセス要求に応じて、ＳＭＴＰ、ＨＴＴＰまたはＦＴＰなどのファイル転送プロトコルに基づき、各種データや各種ファイルを、ローカルシステム１１０、１３６、１３８に提供している。
【００２６】
ローカルシステム１１０は、ユーザからの入力を受け付ける操作パネル１１２と、操作パネル１１２への表示を制御する表示制御部１１４と、画像イメージを取得するためのスキャナ１１６などを含んで構成される。操作パネル１１２は、ユーザからの入力を受付け、ユーザに対して処理結果などを表示するためのインタフェース部である。ローカルシステム１１０は、ユーザからの指令を受付け、コピー、プリンタ、イメージスキャナ、ファクシミリ、メール送受信などの機能を提供する。
【００２７】
操作パネル１１２からのデータは、内部バス１４０を介してデータ処理部に送られる。データ処理部は、ワークフロー実行部１１８と、各種機能を提供するためのソフトウェアモジュールから構成される、各種処理部１２０と、処理対象データなどに対してアクセスを行うためのデータアクセス部１２２とを含んでいる。ワークフロー実行部１１８は、ユーザが設定したワークフロー、ジョブ配信先を管理する管理テーブルなどを記憶装置１２４から実行時に読込んで、ワークフローにしたがって、ジョブの実行および対象データおよびプラグインの配信などを管理する。
【００２８】
各種処理部１２０は、例えば、ファクシミリ送受信のための圧縮・伸張処理プログラム、ＢＭＰ、ＴＩＦＦ、ＧＩＦ、ＰＮＧ、ＪＰＥＧ、ＪＰＥＧ２０００などのフォーマットを、他のフォーマットに変換するコンバータプラグイン、メール送受信を行うメーラプラグインなどの他、データベースプログラムなどを含んで構成することができる。なお、ローカルシステム１１０は、これ以外にも、適宜用途に対応したいかなるプログラムを含んでいてもよい。これらの処理プログラムは、ハードウェア依存性が許容される限りにおいて、プラグインプログラムとして構成され、ローカルシステム間で共通に利用される。
【００２９】
ローカルシステム１１０は、また、ハードディスク装置、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、ＳＤカードなどの記憶装置１２４を含んでいる。記憶装置１２４は、ローカルシステム１１０がその処理のために必要なデータを格納する他、アクセス制限データ、アドレス帳、およびファイル配信のために使用するリソース状況が登録された管理テーブルなどを登録する。ネットワーク１２８に接続された他のローカルシステム１３６、１３８についてもプラグインの実装状況や特定の機能の相違を除き、同様の構成を有している。
【００３０】
リモート通信部１２６は、本実施形態では、ネットワークインタフェースカード（ＮＩＣ）を含んで構成されている。リモート通信部１２６は、イーサネット（登録商標）などを介してネットワーク１２８へとジョブの対象データやプラグインを送付するインタフェースとして機能する。また、ローカルシステム１３６、１３８では、ユーザ入力によるワークフロー実行依頼の入力に代わり、ネットワーク１２８を介してローカルシステム１１０から送付される実行依頼を受領するインタフェースとしても機能し、バス１４２を介してワークフロー実行部１１８などに送付する。
【００３１】
図２は、ローカルシステム１１０のソフトウェア構成を示す。ローカルシステム１１０は、オペレーティングシステム（以下、ＯＳとして参照する。）により制御されている。ＯＳ２０２としては、ＵＮＩＸ（登録商標）、ＬＩＮＵＸ（登録商標）などを使用することができるが、これらに限定されるわけではない。ＯＳ２０２は、ミドルウェア２０４を介してアプリケーション２０６の実行を管理し、また、アプリケーション２０６からの要求に応じて、記憶装置、ファクシミリモデム、スキャナ、画像形成エンジンなど、アプリケーションが要求したハードウェア装置を制御する。
【００３２】
アプリケーション２０６は、例えば、Ｃ、Ｃ＋＋、ＪＡＶＡ（登録商標）、ＰＥＲＬ、ＲＵＢＹなどのオブジェクト指向プログラミング言語で作成され、ローカルシステムごとにそれぞれインストールされている。また、ローカルシステム１１０は、各種アプリケーションが利用する機能を、ライブラリなどを管理するディレクトリ、例えば、「．ｓｏ」などの拡張子で規定されるプログラムを登録するライブラリや、「ｐｌｕｇｉｎｓ」などで記述されるフォルダなどの記憶領域に、「．ｊａｒ」などの拡張子で指定されるプラグイン２０８〜２１４として登録している。アプリケーション２０６は、起動時に例えば、拡張子「．ｓｏ」や、「．Ｊａｒ」で指定されるファイルをリンクして、プラグイン２０８〜２１４を使用した処理を実行する。
【００３３】
本実施形態では、上述したプラグインは特に限定されるものではない。例えば、本実施形態では、ＯＣＲ、メーラ、フォーマットコンバータ、圧縮・伸張プログラムなど、いかなる機能を提供するプログラムでもプラグインとして登録することができる。
【００３４】
図３は、ファイル配信システム１００のファイル配信処理の実施形態を示す。図３に示したファイル配信処理は、ローカルシステム３００と、他ローカルシステム３２０とがファイル配信を行うものとして説明する。ローカルシステム３００は、フォーマット変換処理部３０２と、ＯＣＲ処理部３０４と、データ送受信部３０６とを含んでおり、これらの機能部は、プラグインとして実装されている。
【００３５】
ワークフロー実行部３０８は、ユーザが設定したワークフローを実行制御し、ローカルシステム３００で実行するべきユーザ設定したジョブと、他ローカルシステムで実行するべきジョブとを分離し、他ローカルシステムで実行するべきジョブのディスパッチおよび処理結果の処理を管理する。さらに、ワークフロー実行部３０８は、自機を含め、ファイル配信システム１００を構成するローカルシステムのリソース状況を登録する管理テーブルを管理する。管理テーブルは、ジョブを他ローカルシステムに割当てる場合の割当手段として機能するデータ構造である。なお、管理テーブルについては、より詳細に後述する。
【００３６】
ローカルシステム３００は、さらに、実行依頼受付部３１０と、ファイル転送処理部３１２と、実行依頼部３１４とを含んで構成される。実行依頼受付部３１０は、ローカルシステム３００がワークフローの実行開始システムである場合、操作パネルからの入力を受領する。また、他ローカルシステム３２０の場合、実行依頼受付部３３０は、実行依頼パケットまたはフレームを受領しワークフロー実行部３２８に送付するリモート通信部からのデータを受領する。
【００３７】
ファイル転送処理部３１２は、ワークフロー実行部３０８が決定したファイル送信先に対し、画像、文書、マルチメディアなどの処理対象データをワークフロー実行部３０８の判断に応じて、処理対象データに対して処理を可能とするプラグインと共に送付する。一方、ファイル転送処理部３１２は、他ローカルシステムでの処理結果を受領して、ワークフロー実行部３０８に通知する機能も有している。実行依頼部３１４は、他ローカルシステム３２０に対して一連のワークフローを構成するジョブについて実行を依頼する。
【００３８】
ローカルシステム３００、３２０は、ファイル転送処理を、ネットワーク３４０の特性に応じて実行することができる。例えば、ファイル配信システム１００が単一のオフィスフロアを接続するだけで構成される場合、ファイル転送処理部３１２は、各ローカルシステムが含むＮＩＣのＭＡＣアドレスを使用するファイル転送や、ＭＡＣアドレスおよびＩＰアドレスを含むＴＣＰ／ＩＰなどのパケットを使用するファイル転送を使用する。
【００３９】
一方、ファイル転送システム１００が、異なるルータにより管理されるローカルシステム間にわたって構成される場合、ＩＰアドレスを含むＴＣＰ／ＩＰパケットの形式を使用し、ＨＴＴＰ、ＦＴＰなどのファイル転送プロトコルを使用してファイル送受信を行ってもよい。
【００４０】
以下に説明する実施形態では、ネットワーク３４０は、オフィスフロアにわたって構成されたＬＡＮ内で構成されるものとして説明する。ローカルシステム３００は、ユーザからのワークフロー開始指令を受領すると、実行するべきワークフローを指定してワークフロー実行部３０８に通知する。ワークフロー実行部３０８は、指定されたワークフローを構成するジョブを起動する。図３に示した実施形態では、ワークフローは、（１）ＴＩＦＦフォーマットをＢＭＰフォーマットに変換し、（２）フォーマット変換後の画像データを他ローカルシステム３２０に送付してＯＣＲ処理を行ってテキストテータを生成し、生成したテキストデータを処理結果としてローカルシステム３００が受領して、ローカルシステム３００から電子メールで、データ送信するものとする。
【００４１】
ワークフロー実行部３０８は、ワークフロー実行の通知を受領して起動され、起動と同時に、その時点でライブラリや特定のフォルダ内に登録されたプラグインを取得する。ワークフロー実行部３０８は、ワークフローシーケンスにしたがってまず、フォーマット変換処理部３０２を呼出す。フォーマット変換処理部３０２は、ファイルコンバータプラグインとして構成されており、ワークフロー実行部３０８が取得した画像データを、ＴＩＦＦからＢＭＰへと変換する。画像データがＢＭＰファイルに変換されると、ワークフロー実行部３０８に通知される。画像データは、ファイル転送処理部３１２へと送られ、ファイル転送処理部３１２から他ローカルシステム３２０へとディスパッチされる。
【００４２】
ワークフロー実行部３０８は、本実施形態では、フォーマット変換実行中に、管理テーブルを参照して、転送先の他ローカルシステムを選定する。また、選定された他ローカルシステム３２０が、処理対象データについてのジョブを実行するプラグインを有していない場合、ライセンス制限などの範囲内で、プラグインを送付する。他ローカルシステム３２０は、処理対象データとしてＢＭＰファイルおよび他ローカルシステム３２０の状況に依存してプラグインを受領する。なお、プラグインを受領した場合、他ローカルシステム３２０は、「ｐｌｕｇｉｎｓ」フォルダなどにプラグインを登録してそのインストール処理を実行し、ローカルシステム３００からの、ジョブ内容を指定する実行依頼を待機する。
【００４３】
他ローカルシステム３２０は、ローカルシステム３００からの実行依頼を受領するとワークフロー実行部３２８を起動し、指定されたジョブを実行するプラグインを使用して依頼ジョブを実行する。ジョブの実行が終了して処理結果が得られると、送信元のローカルシステムに処理結果を送付する。ローカルシステム３００は、処理結果を受領すると、ワークフロー実行部３０８に通知し、ワークフロー上で次ジョブとして定義されたメーラなどのデータ送受信部３０６を起動する。データ送受信部３０６は、起動されると、受領したデータを、送信データとして、ワークフローで指定されたメールアドレスに対してメール送信を実行し、ワークフローを完了する。
【００４４】
また、他の実施形態では、他ローカルシステム３２０は、第２の他ローカルシステムにジョブを実行させるため、実行依頼部３３４からデイジーチェーン方式で実行依頼を発行することができる。この実施形態は、例えば依頼ジョブを実行する場合に、他ローカルシステムが予め依頼ジョブを構成するサブジョブについて転送処理を設定している場合、他ローカルシステムの能力がユーザから入力されたジョブで専有されおり、第２の他ローカルシステムへの配信が必要な場合などに適用される。
【００４５】
図４は、本実施形態で、ローカルシステム３００が実行する処理のフローチャートである。送信元となるローカルシステム３００は、その処理をステップＳ４００から開始し以後、システムシャットダウンやリセットが行われるまで、待機状態とされ、ユーザからのワークフロー実行が指令されることにより、処理を開始する。
【００４６】
ステップＳ４０１で、ローカルシステム３００は、画像を取得し、フォーマット変換を行う。これらの処理は、プラグインとして構成したスキャナプラグインおよびコンバータプラグインを起動して実行される。例えばスキャナプラグインは、イメージリーダから画像を読み取り、デフォルト設定としてＴＩＦＦフォーマットを画像ファイルを生成する。コンバータプラグインは、生成されたＴＩＦＦフォーマットの画像ファイルを、ＯＣＲプラグインが処理可能な例えば、ＢＭＰなどのフォーマットに変換する。なお、ローカルシステム３００は、ワークフローの設定に応じて、イメージリーダから画像を取得するのではなく、すでに記憶装置に格納しておいた画像ファイルを読み取ってフォーマット変換を行うこともできる。
【００４７】
ステップＳ４０２では、ローカルシステム３００は、ワークフロー設定などにより指定されるＯＣＲ処理設定などをワークフロー実行部３０８から取得し、さらにステップＳ４０３で、ワークフロー実行部３０８が含む選択プログラムを起動して管理テーブルから、処理効率や過去のジョブ履歴をルックアップし、ジョブの転送先を選択する。なお、ＯＣＲ処理をローカルシステム３００で実行するか、または他ローカルシステム３２０で実行するかの判断は、ローカルシステム３００が当該機能を有しているか否か、またはローカルシステム３００と他ローカルシステム３２０との間の処理能力の相違などを判断して、ローカルシステム３００が選択する。ステップＳ４０４では、ワークフロー実行部３０８は、転送先の他ローカルシステム３２０がＯＣＲプラグインを保有しているか否かを、管理テーブルを参照して判定する。転送先の他ローカルシステム３２０がＯＣＲプラグインを保有していると判断した場合（ｙｅｓ）、処理をステップＳ４０５に分岐させ、ジョブの対象データを送付する。
【００４８】
一方、転送先の他ローカルシステム３２０がＯＣＲプラグインを保有していない場合（ｎｏ）、ローカルシステム３００は、ライセンス管理プログラムを起動し、ステップＳ４０７でＯＣＲプラグインのライセンス数を、管理テーブルに登録された装置情報のＯＣＲプラグイン数をカウントして取得し、ファイル配信システム１００内でインストールされたＯＣＲプラグインの数を判断する。ライセンス数が設定数を超える場合（ｎｏ）、処理をステップＳ４０３に分岐させ、管理テーブルを参照して次にランク付けされた他ローカルシステムを選択し、再度転送先のＯＣＲプラグインの有無を確認する。
【００４９】
一方、ライセンス数が設定数以下の場合（ｙｅｓ）、ステップＳ４０８で対象データの他、ＯＣＲプラグインを他ローカルシステム３２０に配信する。対象データまたは対象データおよびＯＣＲプラグインの配信が終了した後、ローカルシステムは、ステップＳ４０６で実行依頼を発行する。実行依頼は、ワークフロー処理であることを示す識別値、対象データ識別値、処理設定、他ローカルシステムで実行するべきジョブ指令をパケットまたはフレームのペイロードに含ませた形式とされている。他ローカルシステムは、実行依頼に含まれる各値を引数として使用してプラグインの呼出し、対象データの読出し、およびＯＣＲ処理のためのプラグイン呼出しを実行する。
【００５０】
また、ローカルシステム３００は、実行依頼を発行した後、ステップＳ４０９で他ローカルシステム３２０からの実行結果の受領を待機する。ローカルシステム３００は、ステップＳ４０９で実行結果を受領すると（ｙｅｓ）、ステップＳ４１０でワークフロー定義のうち次のジョブのプラグインを呼出し、次ジョブを開始する。その後、ローカルシステム３００は、ステップＳ４１１でワークフローの残りのジョブがあるかを判断し、残りのジョブがある場合（ｙｅｓ）、ステップＳ４１０で残りのジョブ、例えばメール配信などの処理を、メーラプラグインを呼出して実行させる。一方、ステップＳ４１１で残りのジョブがない場合（ｎｏ）、ワークフローの処理をステップＳ４１２で終了させる。
【００５１】
図５は、ファイル配信システム１００を構成するローカルシステムが保有する管理テーブル５００の実施形態を示す。管理テーブル５００は、各ローカルシステムのワークフロー実行部、例えば、ワークフロー実行部３０８が管理し、新たなローカルシステムの追加や、既接続のローカルシステムの状態変更などがあるたびに更新され、常に同一の管理テーブル５００がファイル転送システム１００内のローカルシステムに共有される。なお、各ローカルシステムは、管理テーブル５００を共有するため、ＳＮＭＰ(Simple Network Management Protocol)をサポートし、自ローカルシステムのリソース状況変更があった場合、ＳＮＭＰのｔｒａｐコマンドを使用し、状況変更を、ブロードキャストまたはマルチキャストして他のローカルシステムの該当するエントリ内容を修正させることができる。
【００５２】
また、管理テーブル５００は、ローカルシステムが定期的に他ローカルシステムにポーリングして、他ローカルシステムのＭＩＢなどから取得して更新することができる。いずれの場合でも、ファイル配信システム１００を構成するローカルシステムは、ファイル配信システム１００内でピアノードとして機能し、各ローカルシステムは、ユーザが定義したワークフローにしたがい、ファイル配信システム１００内にジョブを分散させ、ワークフローの負荷分散を可能とする。
【００５３】
以下、図５を参照して管理テーブル５００のエントリ項目について説明する。なお、自ローカルシステムは、ローカルシステムＡとして参照されるものとして説明する。管理テーブル５００は、他ローカルシステムＢ、Ｃ、Ｄごとにリソース状況を登録するレコードを含んで構成される。なお、自ローカルシステムＡのリソース状況は、ＭＩＢなどに別途管理される。管理テーブル５００は、ローカルシステムごとに割当てられたレコード５０２について、配信履歴フィールド５０４、平均処理時間フィールド５０６、リソース情報フィールド５０８、順位情報フィールド５１０、アドレスフィールド５１２などを含んで構成される。
【００５４】
配信履歴フィールド５０４には、過去にファイルを転送しようとして転送に失敗した履歴などの転送失敗フラグが設定され、ファイル転送する場合の選択優先順位を指定するために利用される。また、平均処理時間フィールド５０６は、対応するローカルシステムに対するジョブ依頼の発行から、実行結果の受領までの平均時間（ｓ）を登録し、ジョブ配信を行うごとに更新される移動平均の値を登録することができる。
【００５５】
この値は、当該他ローカルシステムのネットワーク環境を含めた処理能力の尺度を与える。選択優先順位は、本実施形態では、自ローカルシステムについて登録される平均処理時間と比較し、処理能力が高い他ローカルシステムについて優先順位が高く設定される。なお、他の実施形態では、ジョブを転送するべき他ローカルシステムがＯＣＲなどのプラグインを保有しているもののうち、最も処理能力の高い、例えばローカルシステムＢを選択し、プラグイン送信を効率化することもできる。なお、自ローカルシステムは、図５に対応するデータを、管理テーブル５００以外の例えばＭＩＢなどとして保有することができる。また、管理テーブル５００は、ネットワーク接続されたローカルシステム全体のデータを登録し、全体の中で最も処理に最適なローカルシステムごとに優先順位を割り当てておくことができる。
【００５６】
リソース情報フィールド５０８は、ローカルシステムのＭＩＢに登録されたデータをポーリングまたはブロードキャスト、マルチキャストなどにより受領し、ローカルシステムＡが他ローカルシステムＢ、Ｃ、Ｄなどのリソース状態を登録するフィールドである。リソース情報フィールド５０８は、ＯＣＲプラグインなどを配信する場合、ライセンス数を判断するために利用される他、ライセンス数などのためにプラグインを送信できない場合、該当するプラグインを保有するさらに順位の低いローカルシステムを配信先として選択するために参照される。なお、リソース情報フィールド５０８には、プラグインの種類ごとにライセンス可能なライセンス数を登録する追加フィールドを設け、ライセンス管理を行うことができる。なお、図５に示す管理テーブル５００の実施形態では、ローカルシステムＤは、ＯＣＲプラグインを保有していないものの、処理効率の観点から選択順位が最優先されている。
【００５７】
順位情報フィールド５１０は、処理効率の改善という観点からは、配信履歴に失敗が登録された他ローカルシステムを除き、平均処理時間フィールド５０６の値に基づいて決定される選択順位情報を登録する。なお、処理速度の最も高いローカルシステムがプラグインを保有しておらず、かつライセンス数も上限である場合、配信先として、順位の低い、例えば、ローカルシステムＢが次善の配信先として選択される。アドレスフィールド５１２は、各ローカルシステムのネットワーク上でのアドレスが登録されている。
【００５８】
アドレスとしては、ＭＡＣアドレス、ＩＰアドレスのいずれでも使用することができるが、特定のＬＡＮ内でのファイル配信を行う場合には、ＭＡＣアドレスを使用するＭＡＣ転送でよく、またＬＡＮ外に接続されたローカルシステムにジョブを送付する場合には、ＩＰアドレスなどを登録しておくことができる。ＩＰアドレスは、ＩＰｖ４、ＩＰｖ６のいずれでもかまわない。なお、これらのデータをローカルシステムＡが取得するためには、ＳＮＭＰプロトコルの他、ＡＲＰ、ＰＩＮＧ／ＩＣＭＰプロトコルなど、ネットワークデータを取得するためのいかなるプロトコルでも使用することができる。
【００５９】
図６は、ジョブの配信を受ける他ローカルシステムの処理を示すフローチャートである。他ローカルシステムの処理は、ステップＳ６００から開始する。他ローカルシステムは、処理を開始すると、ユーザからの個別的な入力に対応して種々の処理を実行する。またステップＳ６０１で対象データまたは対象データおよびプラグインを受領すると、受領したデータをバッファリングする。ステップＳ６０２では、プラグインを適切なフォルダ「Ｐｌｕｇｉｎｓ」などにインストールする。インストールに成功すると、他ローカルシステムは、配信元のローカルシステムにユニキャスト、マルチキャストなどを使用してインストール成功を通知する。
【００６０】
ステップＳ６０３では、ワークフローを開始したローカルシステムからの実行依頼を受領するまで待機する。他ローカルシステムが実行依頼を受領すると（ｙｅｓ）、ステップＳ６０４でＯＣＲプラグインを呼出して、対象データを処理する。その後、ステップＳ６０５では、処理結果を生成し、実行依頼発行元に送付する。なお、説明する実施形態では、処理結果は、テキストデータなどとすることができる。なお、他の実施形態では、ＢＭＰファイルからさらにＰＤＦデータなどに変換する処理を併用することもできる。なお、他ローカルシステムは、実行依頼を受けない場合（ｎｏ）処理をステップＳ６０３に戻して実行依頼の受領を待機しながら、ユーザから依頼される処理を実行する。
【００６１】
他ローカルシステムは、上述したステップＳ６０１〜ステップＳ６０５の処理を終了すると、プラグインおよびワークフローを実行するための各種データを廃棄して、ジョブ依頼を受ける前の状態として、ワークフローに関連する処理をステップＳ６０６で終了する。なお、他ローカルシステムがインストールしたプラグインなどを廃棄する場合にも、ローカルシステム３００が管理する管理テーブル５００は、他ローカルシステムからの処理結果を受領したことに対応して更新される。
【００６２】
図７は、ファイル配信システム１００の操作パネル１１２に表示される、ワークフロー定義のためのグラフィカルユーザインタフェース（ＧＵＩ）７００の実施形態を示す。操作パネル１１２に表示されるＧＵＩ７００は、ワークフローの名称などを記述して、ユーザに対しワークフローの内容を提示している。また、スキャンジョブ７０２の後の後続ジョブ７０４〜７０８を設定する実施形態を示す。図７では、ユーザが、スキャンジョブ７０２の後に、例えば電子メールを送信する電子メールジョブ７０４を実行させることを希望する場合の処理が例示的に示されている。ユーザは、スキャンした画像データを、特定のフォルダに格納する場合、「Folder Plug-in」を、ＧＵＩ左手側に表示されたプラグインリストフレームから選択し、例えば、スキャンジョブ７０２の後続ジョブに対応するポイントにドラッグ−ドロップする。この処理により、スキャンジョブ７０２の後続ジョブが電子メールジョブ７０４に設定される。なお、図７に示したワークフローは、シーケンシャルに行われるばかりではなく、複数のワークフローが、スキャンジョブ７０２を中心としてスターバースト状に並列処理可能であることを示す。
【００６３】
図７に示すワークフローでは、電子メールジョブ７０４と並列して、スキャンジョブ７０２→イメージコンバートジョブ７０６→フォルダ配信ジョブ７０８を設定することができる。また、ユーザは、例えば、各後続ジョブ７０４〜７０８のアイコンをダブルクリックするなどにより、実行するローカルシステムを指定することを可能とする他のＧＵＩを表示させ、後続ジョブごとに実行する他ローカルシステムを設定することが可能とされている。
【００６４】
図８は、ローカルシステム１００で定義されたワークフロー８００の実施形態を示す。図８に示したワークフロー８００は、ＸＭＬといった構造化文書により記述されており、ワークフロー実行時、ＸＭＬパーサおよびＤＯＭ(Document Object Model)などを使用して処理が実行される。図８に示したワークフロー８００では、スキャンジョブの後続ジョブが、プラグインのシーケンスとして記述されており、イメージコンバートジョブ７０６のためのプラグインの後に実行するべきフォルダジョブ７０８、すなわち、図７で示した木構造の後世代のジョブが、タグ＜Ｎｅｘｔ＞およびタグ＜／Ｎｅｘｔ＞で挟まれた範囲のプラグインとして記述されている。図８の実施形態では、フォルダジョブ７０８では、格納場所であるアドレス「\111.111.111.111\Folder_1」および「\111.111.111.222\Folder_2」にファイルを格納することが指定されている。図８に示した格納場所「\111.111.111.111\Folder_1」は、例えば自機のバックアップ格納場所アドレスであり、「\111.111.111.222\Folder_2」は、ファイルサーバ１３４の格納場所アドレスである。
【００６５】
また、イメージコンバートジョブ７０６と同世代のジョブである電子メールジョブ７０４がその下に記述され、プラグインの指定および電子メール送信先アドレスなどが、その後に記述され、電子メール送信ジョブが実行される。これらのうち、例えば、ローカルシステムがイメージコンバートジョブ７０６を、管理テーブル５００を参照して他ローカルシステムで実行すると判断する場合、イメージコンバートジョブ７０６は、他ローカルシステムに転送され、送信元のローカルシステムは、処理結果の受領を待機する状態となって、さらに他のユーザからの処理要求に対応することが可能となる。
【００６６】
以上説明したように、本実施形態のファイル配信システム１００は、ネットワーク１２８に接続された複数のローカルシステムをピアノードとしてワークフローの実行を完了させることを可能とする。この結果、ファイル配信システム１００は、例えばユーザからのアクセス性のよいローカルシステム３００を窓口として、ネットワーク１２８内の他ローカルシステム３２０に対して効率的なジョブを配信することができ、最適な負荷分散を達成することができる。
【００６７】
また、各ローカルシステムは、プラグインがライセンスを有する場合に、プラグイン配布のライセンス管理もそれぞれが行っており、ライセンス管理も同時に達成することができる。そして、本実施形態のファイル配信システム１００は、従来のファイル配信システムのように、データ配信サーバを使用することなく、ピアツウピアのファイル配信を可能とするので、ネットワーク構成の変更などに柔軟に対応しつつ、ワークフロー実行効率の最適化を可能とする。
【００６８】
本実施形態の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊａｖａ（登録商標）Ｂｅａｎｓ、Ｊａｖａ（登録商標）Ａｐｐｌｅｔ、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、プラグインプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００６９】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【図面の簡単な説明】
【００７０】
【図１】本実施形態のファイル配信システムの概略図。
【図２】ローカルシステムのソフトウェア構成を示したブロック図。
【図３】ファイル配信システムのファイル配信処理のデータフローを含む実施形態を示した図。
【図４】ローカルシステムが実行するファイル配信処理の実施形態のフローチャート。
【図５】管理テーブルの実施形態を示した図。
【図６】ジョブが割当てられる他ローカルシステムの処理の実施形態のフローチャート。
【図７】ワークフローを設定する場合のＧＵＩの実施形態を示した図。
【図８】ローカルシステム内でのワークフロー定義の実施形態を示した図。
【図９】ワークフローの従来例を示した図。
【符号の説明】
【００７１】
１００…ファイル配信システム、１１２…操作パネル、１１４…表示制御部、１１６…スキャナ、１１８…ワークフロー実行部、１２０…各種処理部（プラグイン）、１２２…データアクセス部、１２４…記憶装置、１２６…リモート通信部、１２８…ネットワーク、１３０…ＳＭＴＰサーバ、１３２…ＥＤＭＳ、１３４…ファイルサーバ、２００…ハードウェア、２０２…ＯＳ、２０４…ミドルウェア、２０６…アプリケーション、２０８、２１０、２１２、２１４…プラグイン、３００…ローカルシステム、３２０…他ローカルシステム、５００…管理テーブル
【図１】
2009146244.tif 000003
【図２】
2009146244.tif 000004
【図３】
2009146244.tif 000005
【図４】
2009146244.tif 000006
【図５】
2009146244.tif 000007
【図６】
2009146244.tif 000008
【図７】
2009146244.tif 000009
【図８】
2009146244.tif 000010
【図９】
2009146244.tif 000011