(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続され、ワークフロー定義に従って複数のプラグインプログラムを連携して呼び出すことによりデータに対する複数の処理を実行するための情報処理装置であって、
前記情報処理装置は、
前記ネットワークを介して前記ワークフロー定義の更新通知を受領して、更新対象となる作業ノードから前記作業ノードが保有する前記プラグインプログラムに関する情報であるリモート環境ファイルを取得する手段と、
前記更新通知の受領に応じて、更新すべきワークフロー定義を実行するためのプラグインプログラムのプラグイン識別値を含むプラグイン環境ファイルを生成する手段と、
前記リモート環境ファイルと前記プラグイン環境ファイルとに基づき、前記更新すべきワークフロー定義を実行するためのプラグインプログラムに対する前記作業ノードが保有するプラグインプログラムの相違に関する情報を含む差分ファイルを生成する手段と、
前記差分ファイルを読み込んで、前記作業ノードに対するプラグインプログラムのインストール、アンインストール、動作属性値の設定の要否を判断する手段と、
前記判断する手段が、前記作業ノードに対するプラグインプログラムのインストールを要すると判断した場合に、設定するべきプラグインプログラムのインストールパスを含むプラグイン設定ファイルを生成し、前記作業ノードが保有するプラグインプログラムのアンインストールを要すると判断した場合に、アンインストールさせるプラグインプログラムのアンインストール指令を前記作業ノードに発行する手段と、
を含む情報処理装置。
【請求項２】
前記動作属性値は、前記相違するプラグインプログラムのイネーブルまたはディセーブルを指定する、請求項１に記載の情報処理装置。
【請求項３】
前記データは画像データを含み、前記情報処理装置は、前記複数の処理を実行可能な画像処理装置である、請求項１または２のいずれか１項に記載の情報処理装置。
【請求項４】
ネットワークを介してワークフロー定義に従って複数のプラグインプログラムを連携して呼び出すことによりデータに対する複数の処理を実行するワークフローシステムであって、前記ワークフローシステムは、
前記複数の処理を実行する作業ノードと、
前記作業ノードが実行するべき処理を更新するためのユーティリティノードとを含み、
前記ユーティリティノードは、
前記ネットワークを介して前記ワークフロー定義の更新通知を受領して、更新対象となる作業ノードから前記作業ノードが保有する前記プラグインプログラムに関する情報であるリモート環境ファイルを取得する手段と、
前記更新通知の受領に応じて、更新すべきワークフロー定義を実行するためのプラグインプログラムのプラグイン識別値を含むプラグイン環境ファイルを生成する手段と、
前記リモート環境ファイルと前記プラグイン環境ファイルとに基づき、前記更新すべきワークフロー定義を実行するためのプラグインプログラムに対する前記作業ノードが保有するプラグインプログラムの相違に関する情報を含む差分ファイルを生成する手段と、
前記差分ファイルを読み込んで、前記作業ノードに対するプラグインプログラムのインストール、アンインストール、動作属性値の設定の要否を判断する手段と、
前記判断する手段が、前記作業ノードに対するプラグインプログラムのインストールを要すると判断した場合に、設定するべきプラグインプログラムのインストールパスを含むプラグイン設定ファイルを生成し、前記作業ノードが保有するプラグインプログラムのアンインストールを要すると判断した場合に、アンインストールさせるプラグインプログラムのアンインストール指令を前記作業ノードに発行する手段と、
を含む、ワークフローシステム。
【請求項５】
前記動作属性値は、前記相違するプラグインプログラムのイネーブルまたはディセーブルを指定する、請求項４に記載のワークフローシステム。
【請求項６】
ネットワークを介してワークフロー定義に従って複数のプラグインプログラムを連携して呼び出すことによりデータに対する複数の処理を実行するワークフローシステムであって、前記ワークフローシステムは、
前記複数の処理を連続して実行する作業ノードと、
前記作業ノードが実行するべき処理を更新するためのユーティリティノードとを含み、
前記ユーティリティノードは、
前記ネットワークを介して前記ワークフロー定義の更新通知を受領して、更新対象となる作業ノードから前記作業ノードが保有する前記プラグインプログラムに関する情報であるリモート環境ファイルを取得する手段と、
前記更新通知の受領に応じて、更新すべきワークフロー定義を実行するためのプラグインプログラムのプラグイン識別値を含むプラグイン環境ファイルを生成する手段と、
前記リモート環境ファイルと前記プラグイン環境ファイルとに基づき、前記更新すべきワークフロー定義を実行するためのプラグインプログラムに対する前記作業ノードが保有するプラグインプログラムの相違に関する情報を含む差分ファイルを生成する手段と、
前記差分ファイルを読み込んで、前記作業ノードに対するプラグインプログラムのインストール、アンインストール、動作属性値の設定の要否を判断する手段と、
前記判断する手段が、前記作業ノードに対するプラグインプログラムのインストールを要すると判断した場合に、設定するべきプラグインプログラムのインストールパスを含むプラグイン設定ファイルを生成し、前記作業ノードが保有するプラグインプログラムのアンインストールを要すると判断した場合に、アンインストールさせるプラグインプログラムのアンインストール指令を前記作業ノードに発行する手段と、
を含み、
前記動作属性値は、前記相違するプラグインプログラムのイネーブルまたはディセーブルを指定する、ワークフローシステム。
【請求項７】
前記データが画像データであり、前記ユーティリティノードは、前記複数の処理を連続して実行することが可能な作業ノードとして前記ワークフローシステムを構成する、請求項６に記載のワークフローシステム。
【請求項８】
ネットワークを介して接続され、データに対して複数の処理を実行する作業ノードと、前記作業ノードの処理を更新するためのユーティリティノードとを含むワークフローシステムで、前記ユーティリティノードが実行するワークフロー管理方法であって、
前記ネットワークを介して前記ワークフロー定義の更新通知を受領するステップと、
更新対象となる作業ノードから前記作業ノードが保有する前記プラグインプログラムに関する情報であるリモート環境ファイルを取得するステップと、
前記更新通知の受領に応じて、更新すべきワークフロー定義を実行するためのプラグインプログラムのプラグイン識別値を含むプラグイン環境ファイルを生成する手段と、
前記リモート環境ファイルと前記プラグイン環境ファイルとに基づき、前記更新すべきワークフロー定義を実行するためのプラグインプログラムに対する前記作業ノードが保有するプラグインプログラムの相違に関する情報を含む差分ファイルを生成するステップと、
前記差分ファイルを読み込んで、前記作業ノードに対するプラグインプログラムのインストール、アンインストール、動作属性値の設定の要否を判断するステップと、
前記判断するステップにおいて、前記作業ノードに対するプラグインプログラムのインストールを要すると判断された場合に、設定するべきプラグインプログラムのインストールパスを含むプラグイン設定ファイルを生成し、前記作業ノードが保有するプラグインプログラムのアンインストールを要すると判断された場合に、アンインストールさせるプラグインプログラムのアンインストール指令を前記作業ノードに発行するステップと、
を含み、
前記動作属性値により前記相違するプラグインプログラムのイネーブルまたはディセーブルを指定する、ワークフロー管理方法。
【請求項９】
前記更新対象となる作業モードに送付するステップは、ユニキャストまたはマルチキャストでの送付を含む、請求項８に記載のワークフロー管理方法。
【請求項１０】
情報処理装置を請求項１〜３のいずれか１項に記載の手段として機能させるためのコンピュータ実行可能なプログラム。
【請求項１１】
請求項９に記載のプログラムを記録した装置可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを利用したワークフロー技術に関し、より詳細には、ネットワーク上でワークフローに使用するリソースを更新する情報処理装置、ワークフローシステム、ワークフロー管理方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
近年、オフィス内では複数の画像処理装置が設置され、ネットワークに接続されて、プリンタ、リモートファックス、リモートスキャナなどとして利用されている。また、コンピュータの普及に対応し、オフィス内には複数のパーソナルコンピュータやサーバが設置されていて、画像処理装置と連携した処理を行っている。画像処理装置は、画像処理を前提とするハードウェアおよびミドルウェアを主要な情報処理資源として実装するが、近年、マイクロプロセッサの高機能化および多様化、ＲＡＭ、ＨＤＤ装置などメモリ装置の普及に伴い、その処理能力も向上している。
【０００３】
このため画像処理装置は、画像処理ばかりではなく、高級オペレーティングシステム（以下，ＯＳとして参照する。）の制御下で、Ｊａｖａ（登録商標）、Ｒｕｙ、Ｐｅｒｌ、ＪａｖａＳｃｔｉｐｔ（登録商標）などのオブジェクト指向プログラミング言語を実行し、ＨＴＭＬ、ＸＭＬなどの構造化文書を利用した各種処理が可能な画像処理装置も普及しつつある。
【０００４】
この様なネットワーク環境において、画像処理装置は、ハードウェア機能やユーザインタフェースを除き、パーソナルコンピュータなどと同質のネットワークノードを構成すると考えることができる。画像処理装置を、ハードウェア機能が異なるネットワークノードとして認識した場合、ネットワークを介して設定された処理シーケンスにしたがってネットワークノードを機能させることにより、分散データ処理が可能となる。
【０００５】
画像処理装置は、そのハードウェア機能の故に、処理を待機する期間がパーソナルコンピュータに比較して長く、この観点から、画像処理装置が保有するハードウェア資源やソフトウェア資源を、パーソナルコンピュータなどの情報処理装置の業務をサポートするために提供することができる。
【０００６】
上述したネットワーク環境下で、特定のデータについて必要となる処理シーケンスは、ユーザやユーザ集団に依存して修正されることも多い。処理シーケンスが修正されると、画像処理装置を含むネットワークノードが実行するべき処理が異なる場合も想定される。処理シーケンスの修正に対応して、特定のネットワークノードが実行する処理を修正する必要がある場合、常時ネットワークノードが当該処理を実行できるアプリケーション環境を保有しているとは限らない。この様な場合、例えば特開２００７−２８１７８２号公報（特許文献１）では、画像形成装置に対するソフトウエア機能を拡張する目的で追加機能を提供するためにプラグインプログラムを画像形成装置に追加する技術が記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載された技術を利用することによって画像処理装置などに対してプラグインプログラムを送付してソフトウェア機能を拡張することは可能である。一方、画像処理装置は、本来的には画像を処理することが必要とされ、画像処理機能のために最小限に必要とされる以上の記憶領域を確保しなければならない。さらにネットワークノード全体にわたり、ソフトウェア環境を均一化することも考えられるが、ネットワークノードは、個々に記憶容量などが異なり、またハードウェア資源およびソフトウェア資源の無駄を生じさせてしまう。さらに、ネットワークノードに関し、処理シーケンスの修正に伴ってソフトウェア機能を無制限に拡張するとは妥当ではない。
【０００８】
したがって、ネットワークノードを利用した分散データ処理において、処理シーケンスの変更に柔軟に対応することを可能とすることが必要とされていた。また、処理シーケンスの変更に柔軟に対応しながら、ハードウェア資源およびソフトウェア資源の有効利用を可能とする技術が必要とされていた。
【０００９】
さらにワークフロー定義の設定の更新を柔軟に行いながら、ワークフローを実行するためのハードウェアおよびソフトウェア資源の省資源化を可能とする技術が必要とされていた。
【課題を解決するための手段】
【００１０】
本発明は、上記従来技術の問題点に鑑みてなされたものであり、ネットワークを介して接続され、データに対して複数の処理を連続して実行するための情報処理装置であって、情報処理装置は、ネットワークを介して前記データに対して複数の処理を連続して実行するためのワークフロー定義の更新通知を受領して、更新対象となる作業ノードから前記作業ノードが保有するプラグインプログラムを記録するリモート環境ファイルを取得する手段と、情報処理装置が保有する更新すべきプラグインプログラムのプラグイン識別値を含むプラグイン環境ファイルを生成する手段と、リモート環境ファイルとプラグイン環境ファイルとで相違する情報を含む差分ファイルを生成する手段と、差分ファイルを読み込んで、作業ノードについてプラグインプログラムのインストール、アンインストール、動作属性値の設定を判断する手段と、判断する手段が、プラグインプログラムをインストールすると判断した場合に、設定するべきプラグインプログラムのインストールパスを含むプラグイン設定ファイルを生成する手段と
を含む。
【００１１】
本発明の差分ファイルは、リモート環境ファイルとプラグイン環境ファイルとの間で相違するプラグインプログラムを指定するためのプラグイン識別値と、当該相違するプラグインプログラムについての差分状態を指定する差分属性値と、相違するプラグインプログラムのイネーブルまたはディセーブルを指定する動作属性値とを含むことができる。本発明では、さらにプラグイン設定ファイルと、プラグイン設定ファイルに関連するリソースを更新対象となる作業モードに送付する手段を含むことができる。請求項１または２に記載の情報処理装置。本発明では、データは画像データを含み、情報処理装置は、複数の処理が可能な画像処理装置として実装することができる。
【００１２】
本発明によれば、さらに上述した情報処理装置を含むワークフローシステム、ワークフロー管理方法、プログラム及び記憶媒体を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態のワークフローシステム１００を示した図。
【図２】本実施形態のネットワークノードの機能ブロック２００を示した図
【図３】本実施形態のワークフローシステム１００におけるネットワークノード間のデータフロー３００を示した図。
【図４】本実施形態のユーティリティノード３２０が実行する処理のフローチャートを示した図。
【図５】本実施形態のプラグイン環境ファイル、リモート環境ファイル、差分ファイルの実施形態を示した図。
【図６】本実施形態で作成されるプラグイン設定ファイル６００の実施形態を示した図。
【図７】本実施形態のワークフローシステム１００におけるプラグイン更新処理のデータフローを説明した図。
【図８】本実施形態のワークフローシステム１００の第２の実施形態を示した図。
【発明を実施するための形態】
【００１４】
以下、本発明を実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。図１は、本実施形態のワークフローシステム１００を示す。ワークフローシステム１００は、パーソナルコンピュータ、ワークステーション、サーバ、画像処理装置などネットワークに接続可能な情報処理装置を含んで構成されている。以下、ネットワークに接続可能な情報処理装置のうち、ワークフローの処理を分担する情報処理装置をネットワークノードとして参照する。ネットワークノードは、ユーティリティノードと、ユーティリティノードの機能を有しない作業ノードを含んでいる。
【００１５】
ユーティリティノードは、ワークフローの定義を設定し、ワークフローシステムにおけるネットワークノードの処理を管理する機能を有する。また、ユーティリティノードは、インターネットやイントラネットなどを介してワークフロー定義を取得し、バージョン変更やワークフロー定義の追加などを行う。また、ユーティリティノードは、ワークフロー定義の変更に際して、不要となるプラグインプログラムが発生する場合、作業ノードに対して不要プラグインプログラムのプラグイン識別値（以下、プラグインＩＤとして参照する。）を指定し、作業ノードに対してアンインストール処理などの指令を発行する。
【００１６】
作業ノード１５０〜１７０は、ユーティリティノード１１０からのワークフロー定義を受領し、処理のために必要なプラグインプログラムをインストールして受領したワークフロー定義において、当該作業ノードが担当するべきジョブを実行する。図１に示す本実施形態のワークフローシステム１００は、ユーティリティノード１１０を、コンピュータ１２０または画像処理装置１３０として実装することができる。コンピュータ１２０は、パーソナルコンピュータ、ワークステーション、またはサーバといった特に画像処理に特化した機能を含まず、汎用的なアプリケーションを実行できる情報処理装置から選択することができる。
【００１７】
画像処理装置１３０は、専ら画像処理を実行する機能を備えるほか、Ｊａｖａ（登録商標）、ブラウザプログラム、ファイル転送、メール機能、持続的ストレージ機能などを有し、ＨＴＭＬ、ＸＭＬなどの構造化文書パーザを備える、いわゆるＭＦＰ(Multi-Function Peripheral)として参照される上位機種として構成することができる。また、各ネットワークノードは、ＸＭＬ−ＡＴＯＭ、ＳＯＡＰなど、ＸＭＬなどを介してデータの共有化を行うことが可能とされていることが好ましい。
【００１８】
ユーティリティノード１１０は、ワークフローシステム１００において複数設置される必要はなく、ワークフローを分担する作業ノード集合に対して最低１ノード設置するだけでよい。ただし、特定のワークフローシステム１００において機能冗長性を付与したり、機能を分離させて利用することが好ましい場合などには、特定のワークフローシステム１００内に複数ユーティリティノード１１０を設置することもできる。さらにユーティリティノード１１０を、画像処理装置１３０として実装する場合、ユーティリティノード１１０は、それ自身がワークフロー定義上の作業ノードとして機能することができる。
【００１９】
ユーティリティノード１１０は、ワークフロー定義をプロファイルファイル１４０として、作業ノード１５０〜１７０に送付して、作業ノードにワークフロー内でのノードとして機能させる。プロファイルファイル１４０は、本実施形態では、ＸＭＬといった構造化文書で作成されている。また、プロファイルファイル１４０は、複数の異なる作業項目、例えば、画像取得、メール配信、ファイルアップロード、フォルダ格納などの作業項目が、プロジェクトとして参照される階層ノードを構成する。
【００２０】
プロファイルファイル１４０は、例えば、画像取得→フォーマット変換→ファイルアップロードといった複数の作業を、プロファイルファイル１４０に記述されたプロジェクトの階層構造を解釈しながら実行し、自己の担当するワークフロー上の役割を負担する。なお、本実施形態で、プロファイルファイル１４０をＸＭＬとして構成する場合、各プロジェクトは、例えば＜Project＞、＜/Project＞などといったＸＭＬタグで指定されるノードとして記述され、各プロジェクトが利用するべき制御データが、＜Project＞、＜/Project＞タグの間に各種制御のためのデータタグなどにより記述される。
【００２１】
まや、ユーティリティノード１１０は、作業ノード１５０〜１７０が、送付するプロファイルファイルで指定される機能を提供するために必要十分のプラグインプログラム環境となるように各作業ノード１５０〜１７０を管理している。
【００２２】
作業ノード１５０〜１７０は、それぞれ独立してプロファイルファイル１４０に定義されたワークフローを実行し、例えばファイルサーバとして機能する画像処理装置１８０やサーバ１９０へと取得したデータをアップロードする。フォルダ格納、メール配信、ファイルアップロードなどの機能は、ファイル共有機能、メールサーバを使用し、ＳＭＴＰプロトコルを利用するメール転送機能、ＦＴＰやＨＴＴＰプロトコル、その他、適宜セキュリティレベルに応じたプロトコルを利用するファイル転送機能を利用して実装することができる。
【００２３】
本発明の要旨ではないが、ネットワークノードやユーティリティノードなどを構成するコンピュータおよび画像処理装置は、概ね同様のハードウェア構成を採用することができ、Ｐｅｎｔｉｕｍ（登録商標）、Xeon（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）互換チップなど、ＣＩＳＣアーキテクチャのマイクロプロセッサ、または、ＰｏｗｅｒＰＣ（登録商標）などのＲＩＳＣアーキテクチャのマイクロプロセッサを、シングルコアまたはマルチコアの形態で実装することができる。
【００２４】
また、各ノードは、Ｗｉｎｄｏｗｓ（登録商標）２００Ｘ、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）などのオペレーティングシステム（ＯＳ）により制御されていて、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＰＥＲＬ、ＲＵＢＹなどのプログラミング言語を使用して実装される、アプリケーションプログラムを実行し、ワークフローシステム１００上のノードとして機能するための機能手段として情報処理装置および画像処理装置を機能させている。各ノードは、またその処理の必要性に応じて、ＩｎｔｅｒｎｅｔＥｘｐｌｏｒｅｒ（登録商標）、Ｍｏｚｉｌｌａ（登録商標）、Ｏｐｅｒａ（登録商標）、ＦｉｒｅＦｏｘ（登録商標）などのブラウザ・ソフトウェアを実装することができる。
【００２５】
図２は、本実施形態のネットワークノードの機能ブロック２００を示す。図２に示すように、ネットワークノードは、入出力制御部２１０と、画像読み取り制御部２２０と、配信制御部２３０とを含んで構成されている。入出力制御部２１０は、ネットワークノードの実装形式に対応して、オペレーションパネル制御を行うことができる。また、ネットワークノードが、ブラウザプログラムなどを実装する場合、オペレーションパネルからのキー入力の他、ネットワークノードが備えるビデオモニタを介してブラウザプログラムが提供する制御用ウィンドウを表示させてもよい。
【００２６】
画像読み取り制御部２２０は、ネットワークノードが含むスキャナ、ソータなどのスキャナエンジンに指令を与え、画像処理機能を制御し、ネットワークノードに対して画像データ、テキストデータなどを取得させている。配信制御部２３０は、プロファイルファイルで指定されるワークフロー定義にしたがってネットワークノードが取得したデータを処理するためのプラグインプログラムを管理し、ワークフロー定義にしたがって各種のプラグインプログラムを呼び出して、データに対して処理を施し、またネットワークノードから、ローカルエリアネットワーク（ＬＡＮ）２７０を介してファイルサーバ、フォルダ、メールサーバなどの各種機能部２９０へと外部通信を行う。
【００２７】
上述した機能を提供するため、配信制御部２３０は、プラグイン管理部２４０と、外部通信処理部２６０とを含んで構成されている。プラグイン管理部２４０は、ユーティリティ機能部２８０が提供するインストール／アンインストール指令を実行し、各指令が含む情報を使用してプラグインプログラムのインストール、アンインストールを実行する。また、プラグイン管理部２４０は、ユーティリティ機能部２８０から送付されるプラグインプログラムのイネーブル／ディセーブル情報を取得し、イネーブル情報／ディセーブル情報にしたがって以後のプロジェクト実行を管理する。
【００２８】
外部通信処理部２６０は、ネットワークノードがプロファイルファイルに記述されたプロジェクトをシーケンシャルに実行して生成されたデータをファイル共有、ファイルアップロード、メール送信といった適切なプロトコルを使用してネットワークノードの外部に送信する。なお、図２に示したユーティリティ機能部２８０は、ネットワークノードがユーティリティノードとして機能する場合には、配信制御部２３０の機能部として含まれる。また、図２に示したネットワークノードが作業ノードとして機能する場合には、ユーティリティノードの機能としてネットワークを介して接続される。
【００２９】
図３は、本実施形態のワークフローシステム１００におけるネットワークノード間のデータフロー３００を示す。図３では、ワークフローシステム１００を構成するユーティリティノード３２０に対してユーザＰＣ３１０からワークフローの各種設定を行うものとして説明する。ユーザＰＣ３１０は、ワークフローシステム１００の管理者が使用するパーソナルコンピュータなどとすることができ、本実施形態では、ユーザＰＣ３１０は、プラグイン動作管理ツール３１２と、同期ツールとを含んで構成される。
【００３０】
本実施形態では、ユーザＰＣ３１０については要旨としていないので概略的な説明のみに止めるが、プラグイン動作管理ツール３１２は、ユーザＰＣ３１０のデスクトップ画面上にグラフィカルユーザインタフェース（ＧＵＩ）を表示し、作業ノード３４０に既にインストールされているプラグインプログラムのうち、主要な機能を提供するプラグインプログラム、例えば、フォルダ配信、ファイルアップロード、メール配信などの主要プラグイン機能について、動作可能な状態（イネーブル状態）と、動作不可能な状態（ディセーブル状態との間で切り換えを行い、主要な機能のプラグインプログラムについては、効率的な動作開始を可能としている。
【００３１】
同期ツール３１４は、作業ノード３４０に対してユーティリティノード３２０が保持するプラグインプログラムと、作業ノード３４０が保持するプラグインプログラムとを主要プラグイン機能を除き、ワークフロー定義に対して必要十分となるように同期化を指令するツールである。ワークフローシステム１００の管理者は、ワークフロー定義を変更する場合、当該ワークフロー定義を与えるプロファイルファイルを送付し、さらにユーザＰＣ３１０からプラグイン動作管理ツール３１２および同期ツールを起動して更新するべきワークフロー定義を実行するために必要十分なプラグイン環境に設定するようにプラグイン環境更新通知を発行する。プラグイン環境更新通知には、プロファイルファイル、プラグイン動作管理情報および同期指令が含まれる。
【００３２】
ユーティリティノード３２０は、プラグイン更新処理を実行するためのプラグイン更新部３２２を含んで構成されている。ユーティリティノード３２０は、ユーザＰＣ３１０からのプラグイン環境更新通知を受領すると、プラグインプログラムの同期的な更新を行うために、作業ノード３４０からリモート環境ファイル３４２を取得する。その後、ユーティリティノード３２０は、自己の最新のプラグイン環境を取得してプラグイン環境ファイル３２４を作成する。ユーティリティノード３２０は、その後、自己の最新のプラグイン環境と、リモート環境ファイルとを比較し、（１）リモート環境ファイルで存在するが自己のプラグイン環境には存在しないファイル、（２）自己のプラグイン環境には存在するが、リモート環境ファイルには存在しないファイル、（３）主要プラグインプログラムの動作設定の修正の有無を判断する。
【００３３】
なお、プラグイン更新部３２２は、各ファイルを作業ノードから取得したり、送付したりする場合に、例えばＸＭＬ−ＡＴＯＭといったプロトコルを使用して、ＧＥＴ、ＰＯＳＴなどのファイル転送コマンドを取得手段および送付手段として利用することができる。
【００３４】
上記（２）で作業ノードにインストールさせるべきプラグインプログラムを固有に指定するパスをリストしたＸＭＬファイルとしてプラグイン設定ファイル３２６を生成する。なお、ユーティリティノード３２０は、例えば外部接続されたリソースサーバから更新するべきプロファイルファイルに対応するプラグインが送付され、プラグインインストーラ３３０によりプラグインインストーラ３３０などを含むプラグインインストール用リソース３２８を予めダウンロードすることができる。
【００３５】
その後、ユーティリティノード３２０は、生成したプラグイン設定ファイル３２６と、対応するプラグインインストール用リソース３２８とを作業ノード３４０に送付する。また、上記（１）の場合には、作業ノード３４０に対して不要なプラグインプログラムのプラグインＩＤを含むアンインストール指令を発行する。一方、上記（３）の判断で主要プラグインの動作設定更新が指令されている場合には、主要プラグインのプロジェクトを記述したＸＭＬファイルの該当する主要プラグインの動作属性値を指令された動作設定で書き換えるように作業ノードに指令する。なお、動作属性値は、本実施形態では、valid／invalidで指定することができる。
【００３６】
図４は、本実施形態のユーティリティノード３２０のプラグイン更新部３２２が実行する処理のフローチャートを示す。図４の処理は、ステップＳ４００から開始し、ステップＳ４００で、同期ツールからのプロファイル更新通知を受領したか否かを判断する。プロファイル更新通知を受領しない場合（ｎｏ）、処理をステップＳ４００に戻し、プロファイル更新通知を待機する。一方、ステップＳ４０１でプロファイル更新通知を受領した場合（ｙｅｓ）、ステップＳ４０１で、ユーティリティノード３２０は、作業ノードが保有するリモートプラグイン環境を、リモート環境ファイルとして取得する。なお、リモート環境ファイルは、種々のフォーマットで作成することができるが、同期化効率の点で、現在作業ノードが保有しているプロファイルファイルをそのままリモート環境ファイルとして送付することが好ましい。
【００３７】
ステップＳ４０２では、ユーティリティノード１１０が保有するプラグイン環境を、最新のプロファイルファイルから取得する。なお、説明の目的のため、ユーティリティノード１１０がプラグイン更新のために利用する最新のプロファイルファイルを、プラグイン環境ファイルとして参照する。ステップＳ４０３ではプラグイン環境ファイルとリモート環境ファイルとを、ＸＭＬエディタを起動し、プラグインＩＤの一致・不一致、動作属性値の一致・不一致を比較し差分ファイルを作成する。差分ファイルには、相違したプラグインプログラムのプラグインＩＤと、追加するか余分なのかを示す処理属性値、および相違する動作属性値がそれぞれ追加される。なお、差分ファイルの実施形態についてはより詳細に後述する。
【００３８】
ステップＳ４０４では、作成した差分ファイル＝ｎｕｌｌであるか否かに対応し、差分ファイル＝ｎｕｌｌの場合（ｎｏ）、処理をステップＳ４００に戻し、以後の更新通知の受領を待機する。ステップＳ４０４で差分ファイル≠ｎｕｌｌでプラグイン環境に差があると判断した場合（ｙｅｓ）、ステップＳ４０５以降のプラグイン環境更新処理を実行する。
【００３９】
以下で説明する処理ステップは、本実施形態におけるプラグイン更新処理である。ステップＳ４０５では、差分ファイルに登録されるプラグインＩＤおよび処理属性値を取得し、動作属性値を修正するべきか否かを判断し、動作属性値を修正すべきであると判断した場合（ｙｅｓ）、ステップＳ４０６で動作識別値を作業ノードに送付し、プラグイン環境更新処理後に利用させる設定を行い、現在処理中の差分ファイル中の行を削除して、処理をステップＳ４０４に分岐させる。
【００４０】
また、ステップＳ４０５で動作識別値を修正する必要がないと判断した場合（ｎｏ）、ステップ４０７で作業ノードでオプション機能が不足しているか否かを判断し、オプション機能が不足していると判断した場合、ステップＳ４０８で差分ファイルに登録されている処理中のプラグインＩＤのインストールパスを抽出し、プラグイン設定ファイルに追加して、差分ファイルの処理終了行を削除し処理をステップＳ４０４に分岐させる。
【００４１】
さらにその後、ステップＳ４０９では、作業ノードでオプション機能過剰か否かを判断し、オプション機能過剰であると判断された場合（ｙｅｓ）、ステップＳ４１０で、当該プラグインＩＤおよびアンインストール指令を作業ノードに発行し、指令済み行を差分ファイルから削除して処理をステップＳ４０４に分岐ささせる。一方、ステップＳ４０９で作業ノードでオプション機能が過剰ではないと判断した場合（ｎｏ）、処理をステップＳ４００に戻し、以後のプロファイル更新通知を待機する。
【００４２】
なお、本発明の他の実施形態では、作業ノード１５０〜１７０にて余剰となるオプション機能のプラグインプログラムについて、直ちにアンインストールするのではなく、ユーザＰＣ３１０からの指令により、動作属性値をinvalidに変更し、プラグインプログラム自体は、明示的な指令があるまで作業ノード１５０〜１７０に保存しておくこともできる。
【００４３】
以上の処理で、ユーティリティノード１１０と作業ノード１５０〜１７０との間のプラグイン環境更新処理が完了する。なお、プラグイン更新処理は、作業ノード１５０〜１７０の全部について一括して行うこともできるし、特定の作業ノード、例えば作業ノード１６０を対象として実行することができる。作業ノード１５０〜１７０について一括してプラグイン更新処理を実行する場合、マルチキャストとして各指令を発行することができる。また、作業ノード１５０〜１７０を１台毎にプラグイン更新処理を実行する場合、ユニキャストを利用して、各指令を発行することができる。
【００４４】
図５は、本実施形態のプラグイン環境ファイル、リモート環境ファイル、差分ファイルの実施形態を示す。プラグイン環境ファイル５００は、ユーティリティノード１１０が現在保有するプロファイル更新のための最新のプロファイルファイルであり、データ保全の目的で、最新のプロファイルファイルをコピーしてプラグイン環境ファイル５００として生成される。また、リモート環境ファイル５１０は、例えば作業ノード１５０から送付された、作業ノード１５０が現在実行するべきプロファイルファイルに対応する。
【００４５】
そして、差分ファイル５２０は、ユーティリティノードでＸＭＬエディタなどがプロファイル環境ファイルと、リモート環境ファイルとから作成したＸＭＬファイルである。差分ファイルには、相違する動作属性値を記述した行と、相違するプラグインプログラムのプラグインＩＤと、差分ファイルにおける差分属性とが記述される。差分属性の値は、説明する実施形態ではタグ＜Ｄｉｆｆ＞で記述され、差分属性＝ａｄｄは、更新処理の際に追加してインストールすべきことを意味する。なお、説明する実施形態では作業ノードで過剰なプラグインプログラムが見出されていないが、作業ノードで不要となるプラグインプログラムが見出された場合タグ＜Ｄｉｆｆ＞には、差分属性＝ｄｅｌが記述される。なお、差分ファイルの実装形式および登録するべき値などについては、特定の目的に応じて適宜設定することができる。
【００４６】
ユーティリティノード１１０は、プラグイン環境更新処理を行う場合、差分ファイルの先頭行から差分ファイルを読み出し、プラグイン環境更新処理における処理モードを決定し、各モードでの処理を実行し、当該処理が終了すると現在処理中の行を削除する。そして差分ファイルの内容がｎｕｌｌとなった時点でプラグイン環境更新処理を終了する。
【００４７】
図６は、本実施形態で作成されるプラグイン設定ファイル６００の実施形態を示す。プラグイン設定ファイル６００は、ＸＭＬファイルとして作成され、差分ファイル５２０において、差分属性＝ａｄｄとして識別されたプラグインプログラムを登録するべきパス設定が記述される。ユーティリティノード１１０は、差分ファイルの内容がｎｕｌｌになるまでプラグイン設定ファイル６００を作成し、作成終了後、インストールするべきプラグインインストール用リソース３２８と共に作業ノード１５０〜１７０に送付される。なお、プラグインインストール用リソース３２８には、プラグインプログラムの実行ファイル、レジストリデータなどのインストール環境データなどのリソースを含む一般的なインストールパッケージである。
【００４８】
作業ノード１５０〜１７０は、差分ファイルの検査が完了するまでの間に、アンインストールを行うべきプラグインプログラムがある場合、逐次的に指令を受領し、この間にアンインストールを実行させることで、プラグイン更新処理を効率化させることができる。
【００４９】
図７は、本実施形態のワークフローシステム１００におけるプラグイン更新処理のデータフロー７００を説明する図である。図７に示したワークフローシステム１００は、画像処理装置７２０がユーティリティノード１１０として機能している。またワークフローシステム１００には、ユーザＰＣ７１０が接続されていて、プラグイン動作管理ツール３１２および同期ツール３１４によって、画像処理装置７２０に対しプラグイン更新処理を実行させている。
【００５０】
画像処理装置７２０は、ユーティリティノード１１０として機能するために、インターネットなどの広域ネットワーク７８０を開始してリソースサーバ７９０などからプラグインリソースをダウンロードし、ユーザＰＣ７１０からのプラグイン更新通知の受領を待機している。ユーザＰＣ７１０からプラグイン更新通知を受領すると、画像処理装置７２０は、プラグイン環境ファイル、リモート環境ファイルを生成し、差分ファイルを作成して、インストール、アンインストール、または動作環境変更を判断し、図４の処理にしたがってプラグイン更新処理を実行する。
【００５１】
プラグイン更新処理において生成された指令およびファイルは、ＬＡＮ７７０を介してそれぞれの作業ノード７３０、７４０、７５０に送付される。なお、図７に示した実施形態では画像処理装置７２０は、ユーティリティノード１１０としても機能すると同時に作業ノードとしても機能できる。当該実施形態では、画像処理装置７２０が、ユーティリティノードとしての機能を完了させた後、プラグイン環境ファイルとして利用したプロファイルファイルを実行するべきワークフロー定義として設定し、プラグインプログラムのインストールやアンインストール、および動作環境設定の更新を実行する。上述した処理を完了した後、画像処理装置７２０も、例えば図１の作業ノード１５０〜１７０として機能することが可能とされる。
【００５２】
図８は、本実施形態のワークフローシステム１００の第２の実施形態８００を示す。図８に示した実施形態では、ユーティリティノード１１０は、独立したパーソナルコンピュータ、ワークステーションまたはサーバとして構成されていて、専らユーティリティノード１１０としての機能を提供している。図８に示した実施形態では、ワークフローシステム１００に対してユーティリティノード１１０として機能する情報処理装置を追加する必要が生じるものの、ワークフロー定義が複雑な場合や、管理するべき画像処理装置８２０〜８４０の台数が多い場合など、プラグイン更新処理のための処理オーバーヘッドが図７の画像処理装置７２０には負担が多くなる場合などには、好ましく用いることができる実施形態である。
【００５３】
本実施形態では、ワークフローシステム１００を、図７の実施形態とするか図８の実施形態とするかについては、ワークフローシステム１００を構成する画像処理装置の台数やワークフロー定義の複雑さなどに応じて適宜変更することができる。
【００５４】
本実施形態の上記機能は、Ｃ＋＋、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ｐｅｒｌ、Ｒｕｂｙなどのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、プログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【００５５】
これまで本実施形態につき説明してきたが、本発明は、上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００５６】
１００…ワークフローシステム、１１０…ユーティリティノード、１２０…コンピュータ、１３０…画像処理装置、１４０…プロファイルファイル、１５０〜１７０…作業ノード、１８０…画像処理装置、１９０…サーバ、２１０…入出力制御部、２２０…画像読み取り制御部、２３０…配信制御部、２４０…プラグイン管理部、２６０…外部通信処理部、２８０…ユーティリティ機能部、２９０…各種機能部、３００…データフロー、３１０…ユーザＰＣ、３１２…プラグイン動作管理ツール、３１４…同期ツール、３２０…ユーティリティノード、３２２…プラグイン更新部、３２４…プラグイン環境ファイル、３２６…プラグイン設定ファイル、３２８…プラグインインストール用リソース、３３０…プラグインインストーラ、３４０…作業ノード、３４２…リモート環境ファイル
【先行技術文献】
【特許文献】
【００５７】
【特許文献１】特開２００７−２８１７８２号公報
【図１】
0005476834.tif 000002
【図２】
0005476834.tif 000003
【図３】
0005476834.tif 000004
【図４】
0005476834.tif 000005
【図５】
0005476834.tif 000006
【図６】
0005476834.tif 000007
【図７】
0005476834.tif 000008
【図８】
0005476834.tif 000009