(57)【要約】【課題】  ワークフローを効率よく実行する。【解決手段】  ワークフロー制御サーバであるＭＦＰは、ネットワークで接続された複数のデバイスそれぞれが実行可能な処理を調査するワークフロー解析部１１と、複数の処理が定義されたワークフローを入力する入力手段と、ワークフロー解析部１１による調査結果に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定する実行ワークフロー生成部１３と、ワークフローで定義された複数の処理それぞれを、実行ワークフロー生成部１３により決定されたデバイスに実行させるワークフロー制御部１５とを備え、ワークフロー制御部１５は、決定されたデバイスが処理を実行するためのプログラムを記憶していない場合は、該プログラムを記憶する他のデバイスからダウンロードさせる。【選択図】        図３
2006350529.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数のデバイスと通信可能な情報処理装置であって、
前記複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、
複数の処理が定義されたワークフローを入力する入力手段と、
前記調査手段による調査結果に基づいて、前記ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するデバイス決定手段と、
前記ワークフローで定義された複数の処理それぞれを、前記デバイス決定手段により決定されたデバイスに実行させる指示手段とを備え、
前記指示手段は、前記決定されたデバイスが処理を実行するためのプログラムを記憶していない場合は、該プログラムを記憶する他のデバイスからダウンロードさせるダウンロード指示手段を含む、情報処理装置。
【請求項２】
前記デバイス決定手段は、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように、前記複数の処理それぞれを実行させるデバイスを決定する最適化手段を含む、請求項１に記載の情報処理装置。
【請求項３】
前記指示手段は、前記ダウンロード指示手段によりダウンロードが指示されたプログラムを、削除させる削除指示手段を含む、請求項１に記載の情報処理装置。
【請求項４】
ネットワークに接続された複数のデバイスと通信可能な情報処理装置であって、
前記複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、
複数の処理が定義されたワークフローを入力する入力手段と、
前記調査手段による調査結果に基づいて、前記ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するデバイス決定手段と、
前記ワークフローで定義された複数の処理それぞれを、前記デバイス決定手段により決定されたデバイスに実行させる指示手段とを備え、
前記デバイス決定手段は、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように、前記複数の処理それぞれを実行させるデバイスを決定する最適化手段を含む、情報処理装置。
【請求項５】
前記入力手段は、前記複数の処理のいずれかの処理を実行させるデバイスの指定を受付けるデバイス指定手段を含む、請求項１または４に記載の情報処理装置。
【請求項６】
ネットワークに接続された複数のデバイスと通信可能な情報処理装置で実行されるワークフロー制御プログラムあって、
前記複数のデバイスそれぞれが実行可能な処理を調査するステップと、
複数の処理が定義されたワークフローの入力を受付けるステップと、
前記調査結果に基づいて、前記ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するステップと、
前記決定されたデバイスが処理を実行するためのプログラムを記憶していないときは、該プログラムを記憶する他のデバイスからダウンロードさせるステップと、
前記ワークフローで定義された複数の処理それぞれを、前記デバイス決定手段により決定されたデバイスに実行させるステップとを実行させる、ワークフロー制御プログラム。
【請求項７】
ネットワークに接続された複数のデバイスと通信可能な情報処理装置で実行されるワークフロー制御プログラムあって、
前記複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、
複数の処理が定義されたワークフローの入力を受付けるステップと、
前記調査結果に基づいて、前記ワークフローで定義された前記複数の処理すべてが実行された場合にデータの送信回数が最少となるように、前記複数の処理それぞれを実行させるデバイスを決定するステップと、
前記ワークフローで定義された複数の処理それぞれを、前記デバイス決定手段により決定されたデバイスに実行させるステップとを実行させる、ワークフロー制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報処理装置およびワークフロー制御プログラムに関し、特に、複数のデバイスに処理を実行させるワークフロー制御可能な情報処理装置およびワークフロー制御プログラムに関する。
【背景技術】
【０００２】
文書データに施すべき複数の処理の処理順序を直列的及び並列的に組み合わせ可能に設定でき、ネットワークに接続された各機器に対して複数の処理を連携して処理させるサービス処理装置が、特開２００４−２８７８５９号公報に記載されている。
【０００３】
しかしながら、特開２００４−２８７８５９号公報に記載のサービス処理装置は、ネットワークに接続された各機器が既に有する機能の範囲で、各機器が実行する処理を設定したワークフローを決定している。このため、必要な機能を搭載していない機器では、その機能を有する他の機器にその処理を実行させなければならず、ワークフローが効率的ではなかった。また、ワークフローの最適化にデータの送信回数が考慮されないため、データの送信回数が増加してしまい、ワークフローを実行するのに時間がかかるといった問題がある。
【特許文献１】特開２００４−２８７８５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、ワークフローを効率よく実行することが可能な情報処理装置を提供することである。
【０００５】
この発明の他の目的は、ワークフローを効率よく実行させることが可能なワークフロー制御プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上述した目的を達成するためにこの発明のある局面によれば、情報処理装置は、ネットワークに接続された複数のデバイスと通信可能な情報処理装置であって、複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、複数の処理が定義されたワークフローを入力する入力手段と、調査手段による調査結果に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するデバイス決定手段と、ワークフローで定義された複数の処理それぞれを、デバイス決定手段により決定されたデバイスに実行させる指示手段とを備え、指示手段は、決定されたデバイスが処理を実行するためのプログラムを記憶していない場合は、該プログラムを記憶する他のデバイスからダウンロードさせるダウンロード指示手段を含む。
【０００７】
この発明に従えば、複数のデバイスそれぞれが実行可能な処理が調査され、複数の処理が定義されたワークフローが入力されると、調査結果に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスが決定されて、決定されたデバイスにより実行される。決定されたデバイスが処理を実行するためのプログラムを記憶していない場合は、該プログラムを記憶する他のデバイスからダウンロードさせる。このため、複数のデバイスにプログラムが既に記憶されている必要がないので、無駄なデータ転送やワークフロー管理を削減することができ、実行するワークフローの生産性が向上する。その結果、ワークフローを効率よく実行することが可能な情報処理装置を提供することができる。
【０００８】
好ましくは、デバイス決定手段は、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように、複数の処理それぞれを実行させるデバイスを決定する最適化手段を含む。
【０００９】
この発明に従えば、データの送信回数が最少となるように、複数の処理それぞれを実行させるデバイスが決定されるので、複数ある組み合わせのうちから最適なワークフローを容易に決定することができる。
【００１０】
好ましくは、指示手段は、ダウンロード指示手段によりダウンロードが指示されたプログラムを、削除させる削除指示手段を含む。
【００１１】
この発明に従えば、ユーザの知らないうちにプログラムが記憶されたままになることがない。
【００１２】
この発明の他の局面によれば、情報処理装置は、ネットワークに接続された複数のデバイスと通信可能な情報処理装置であって、複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、複数の処理が定義されたワークフローを入力する入力手段と、調査手段による調査結果に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するデバイス決定手段と、ワークフローで定義された複数の処理それぞれを、デバイス決定手段により決定されたデバイスに実行させる指示手段とを備え、デバイス決定手段は、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように、複数の処理それぞれを実行させるデバイスを決定する最適化手段を含む。
【００１３】
この発明に従えば、複数のデバイスそれぞれが実行可能な処理が調査され、複数の処理が定義されたワークフローが入力されると、プログラム一覧に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスが、データの送信回数が最少となるように決定されて、決定されたデバイスにより実行される。このため、無駄なデータ転送やワークフロー管理を削減することができ、実行するワークフローの生産性が向上する。また、複数ある組み合わせのうちから最適なワークフローを容易に決定することができる。その結果、ワークフローを効率よく実行することが可能な情報処理装置を提供することができる。
【００１４】
好ましくは、入力手段は、複数の処理のいずれかの処理を実行させるデバイスの指定を受付けるデバイス指定手段を含む。
【００１５】
この発明のさらに他の局面によれば、ワークフロー制御プログラムは、ネットワークに接続された複数のデバイスと通信可能な情報処理装置で実行されるワークフロー制御プログラムあって、複数のデバイスそれぞれが実行可能な処理を調査するステップと、複数の処理が定義されたワークフローの入力を受付けるステップと、調査結果に基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスを決定するステップと、決定されたデバイスが処理を実行するためのプログラムを記憶していないときは、該プログラムを記憶する他のデバイスからダウンロードさせるステップと、ワークフローで定義された複数の処理それぞれを、デバイス決定手段により決定されたデバイスに実行させるステップとを実行させる。
【００１６】
この発明に従えば、ワークフローを効率よく実行させることが可能なワークフロー制御プログラムを提供することができる。
【００１７】
この発明のさらに他の局面によれば、ワークフロー制御プログラムは、ネットワークに接続された複数のデバイスと通信可能な情報処理装置で実行されるワークフロー制御プログラムあって、複数のデバイスそれぞれが実行可能な処理を調査する調査手段と、複数の処理が定義されたワークフローの入力を受付けるステップと、調査結果に基づいて、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように、複数の処理それぞれを実行させるデバイスを決定するステップと、ワークフローで定義された複数の処理それぞれを、デバイス決定手段により決定されたデバイスに実行させるステップとを実行させる。
【００１８】
この発明に従えば、ワークフローを効率よく実行させることが可能なワークフロー制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００２０】
図１は、本発明の実施の形態の一つにおける情報処理システムの全体構成を示す図である。図１を参照して、情報処理システム１は、ネットワーク２にそれぞれ接続された複合機（以下、「ＭＦＰ」という）１００,１００Ａと、パーソナルコンピュータ（以下「ＰＣ」という）２００，２００Ａ，２００Ｂと、サーバ３００とを含む。サーバ３００、ＰＣ２００，２００Ａ，２００Ｂは、一般的なコンピュータであり、その構成および機能は周知であるので、ここでは説明を繰り返さない。
【００２１】
ＭＦＰ（Ｍｕｌｔｉ Ｆｕｎｃｔｉｏｎ Ｐｅｒｉｐｈｅｒａｌ）１００,１００Ａは、原稿を読取るためのスキャナ部、画像データに基づいて紙などの記録媒体に画像を形成するための画像形成部、ファクシミリを含み、画像読取機能、複写機能、ファクシミリ送受信機能を備えている。ＭＦＰ１００，１００Ａは、その構成および機能は同じなので、ここでは特に言及しない限り、ＭＦＰ１００を例に説明する。
【００２２】
ネットワーク２は、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワーク２は、ＬＡＮに限らず、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、一般公衆回線を用いたネットワーク等であってもよい。
【００２３】
なお、図１では、２台のＭＦＰ１００，１００Ａ、３台のＰＣ２００，２００Ａ，２００Ｂ、および１台のサーバ３００をネットワーク２に接続する例を示すが、これらの台数を限定するものではない。
【００２４】
図２は、本実施の形態におけるＭＦＰのハード構成を示すブロック図である。図１を参照して、ＭＦＰ１００は、スキャナ部１０３と、用紙などの記録媒体に画像を形成する画像形成部１０６と、それぞれがバス１１１に接続されたＣＰＵ（Central Processing Unit）１０１と、記憶部１０２と、スキャナ部１０３が出力する画像データを処理する入力画像処理部１０４と、画像データに出力するのに適した処理を行う出力画像処理部１０５と、ネットワークインターフェイス（Ｉ／Ｆ）１０７と、モデム１０８と、操作パネル１０９と、カードＩ／Ｆ１１０とを含む。
【００２５】
ＣＰＵ１０１は、ＭＦＰ１００の全体を制御する。記憶部１０２は、ＲＯＭ（Read
Only Memory）、ＲＡＭ（Random Access Memory）およびＥＥＰＲＯＭ〔Electrically Erasable/Programable ROM）などの半導体メモリおよびハードディスクドライブ（ＨＤＤ）等の磁気記憶装置を含む。ＣＰＵ１０１は、ＲＯＭに記録されたワークフロー制御プログラムをＲＡＭにロードして実行する。
【００２６】
スキャナ部１０３は、ＣＣＤ（Charge Coupled Device）等の光電変換素子を含み、原稿を光学的に読取って電子データとしての画像データを入力画像処理部１０４に出力する。入力画像処理部１０４は、入力された画像データに対して、色変換処理、色補正処理、解像度変換処理、領域判別処理などを実行して、処理した画像データを記憶部１０２に記憶する。
【００２７】
出力画像処理部１０５は、記憶部１０２から画像データを読み出して、スクリーン制御処理、スムージング処理、パルス幅変調（ＰＷＭ）を行い、処理後の画像データを画像形成部１０６に出力する。画像形成部１０６は、レーザプリンタであり、出力画像処理部１０５から入力される画像データを紙などの記録媒体に可視化する。画像形成部１０６は、カラープリントの場合には、イエロー、マゼンタ、シアン、ブラックの４色のトナーで画像を形成する。画像形成部１０６は、インクジェットプリンタであってもよい。
【００２８】
カードＩ／Ｆ１１０には、ＩＣカード１１０Ａが装着される。ＣＰＵ１０１は、カードＩ／Ｆ１１０を介してＩＣカード１１０Ａにアクセスが可能である。ネットワークＩ／Ｆ１０７は、ＭＦＰ１００をネットワーク２と接続する。ネットワークＩ／Ｆ１０７は、データを所定の通信プロトコルに従ってネットワーク２に出力し、ネットワーク２から所定の通信プロトコルに従ってデータを受信する。ＣＰＵ１０１は、ネットワークＩ／Ｆ１０７を介してネットワーク２に接続された他のＭＦＰ１００Ａ、ＰＣ２００，２００Ａ，２００Ｂおよびサーバ３００と通信することが可能となる。このため、たとえば、ＦＴＰ（File Transfer Protocol）等を用いてデータの送受信が可能である。
【００２９】
モデム１０８は、ＭＦＰ１００を電話回線１１３と接続する。モデム１０８は、データをファクシミリの通信プロトコルに従ってファクシミリ通信を可能とする。モデム１０８は、ファクシミリ受信されたデータを記憶部１０２のＨＤＤに記憶する。また、モデム１０８は、電話回線１１３に接続されたコンピュータとの通信を可能とするためＮＣＵ（Network Control Unit）を含む。モデム１０８により他のコンピュータから受信されたデータは、記憶部１０２のＨＤＤに記憶される。
【００３０】
操作パネル１０９は、入力部１０９Ａと表示部１０９Ｂとを含む。入力部１０９Ａは、ＭＦＰ１００のユーザによる操作の入力を受付けるためのタッチパネル、キーボードまたはマウス等の入力装置である。表示部１０９Ｂは、液晶表示装置または有機ＥＬ（ｅｌｅｃｔｒｏ−ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイパネルである。入力部１０９Ａに透明な部材からなるタッチパネルを用いる場合には、表示部１０９Ｂ上にタッチパネルを重ねて設置することで、表示部１０９Ｂに表示されたボタンの指示を検出することができる。これにより、種々の操作の入力が可能となる。
【００３１】
なお、ＣＰＵ１０１で実行するワークフロー制御プログラムは、ＲＯＭに記憶されたものに限られず、ＥＥＰＲＯＭに記憶するようにしてもよい。ＥＥＰＲＯＭに記憶するようにすれば、ワークフロー制御プログラムを書き換えるまたは追加して書き込みすることが可能となる。このため、ネットワーク２に接続された他のコンピュータが、ＭＰＰ１００のＥＥＰＲＯＭに記憶されたワークフロー制御プログラムを書換える、または、新たなワークフロー制御プログラムを追加して書き込むことができる。さらに、ＭＦＰ１００が、ネットワーク２に接続された他のＰＣ２００，２００Ａ,２００Ｃからワークフロー制御プログラムをダウンロードして、そのワークフロー制御プログラムをＥＥＰＲＯＭに記憶することができる。
【００３２】
さらに、ワークフロー制御プログラムをＩＣカード１１０Ａに記憶するようにし、カードＩ／Ｆ１１０に装着されたＩＣカード１１０Ａに記録されたワークフロー制御プログラムをＲＡＭにロードして実行するようにしてもよい。なお、ワークフロー制御プログラムをＩＣカード１１０Ａに記録する場合に限らず、磁気テープ、カセットテープ、磁気ディスク（フレキシブルディスク、ハードディスク等）や光ディスク（CD-ROM（Ｃｏｍｐａｃｔ Ｄｉｓｃ − ＲＯＭ）/ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ
Ｄｉｓｃ）/ＭＤ（Ｍｉｎｉ Ｄｉｓｃ）/ＤＶＤ（Ｄｉｇｉｔａｌ
Ｖｅｒｓａｔｉｌｅ Ｄｉｓｃ）等）、光カード、あるいはマスクＲＯＭ、フラッシュメモリなどの半導体メモリ等の固定的にプログラムを担持する媒体に記録するようにしてもよい。
【００３３】
ここでいうプログラムは、ＣＰＵ１０１により直接実行可能なプログラムだけでなく、ソースプログラム形式のプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３４】
本実施の形態における情報システム１では、ワークフローを与えることにより、情報システム１の全体でそのワークフローが実行される。ここでは説明のために、次のワークフローをＭＦＰ１００に入力して、ワークフローを実行させる例を説明する。この場合、ワークフローが入力されるＭＦＰ１００がワークフロー制御サーバとなる。ワークフローは、処理の流れを定義する。ワークフローには、少なくとも１つの処理が定義され、処理の対象となるデータを識別するための情報（たとえばファイル名）を含む。
【００３５】
＜ワークフローの例＞
（１）ワークフローの概要。  
ＭＦＰ１００で原稿を読み取り、得られた画像データと、ＰＣ１００，１００Ａ，ＭＦＰ１００Ａそれぞれに記憶されているデータをＰＤＦ（Ｐｏｒｔａｂｌｅ
Ｄｏｃｕｍｅｎｔ Ｆｏｒｍａｔ）フォーマットの１つのファイルに合成して、サーバ３００のデータベースに登録する。
【００３６】
（２）ワークフローが処理対象とするデータ。
（ｉ）  ＭＦＰ１００のスキャナ部１０３で原稿を読み取って得られる第１データ。第１データは、ビットマップ形式の画像データであり、ファイル名はワークフローを入力する段階で仮に付与するようにすればよい。
（ii）  ＰＣ２００のハードディスクに記憶されている第２データ。第２データはワードプロセッサのアプリケーションプログラムで作成されたデータであり、そのデータを識別するためのファイル名は「C:\OPENBOX\報告書.doc」である。
（iii）  ＰＣ２００のハードディスクに記憶されている第３データ。第３データは、表計算のアプリケーションプログラムで作成されたデータであり、ファイル名は「C:\openbox\添付ファイル.xls」である。
（iv）  ＰＣ２００Ａのハードディスクに記憶されている第４データ。第４データは、ＰＤＦフォーマットのデータであり、ファイル名は「C:\OPENBOX\実験ファイル.pdf」である。
（ｖ）  ＭＦＰ１００Ａのハードディスクに記憶されている第５データ。第５データは、ＰＤＦフォーマットのデータであり、そのファイル名は「C:\OPENBOX\データファイル.pdf」である。
（vi）  合成の対象となる第１〜第５データを合成した第６データ。第６データはサーバ３００のデータベースに登録されるデータでもある。第６データのファイル名は、ワークフローを入力する段階で仮に付与するようにすればよい。
【００３７】
（３）ワークフローに定義される処理。
（処理１：スキャン処理）
ＭＦＰ１００で原稿を読み取って画像データを記憶する処理である。画像データのフォーマットは、たとえば、ビットマップ形式である。このスキャン処理は、ＭＦＰ１００でのみ実行可能である。処理対象とするデータは、取得された画像データであり、ここでは第１データである。
【００３８】
（処理２：フォーマット変換処理）
スキャン処理により得られた画像データ、または、アプリケーションプログラムにより生成されたデータをＰＤＦフォーマットに変換する処理である。ＰＤＦフォーマットに変換するためには、フォーマット変換プログラムが実行される必要がある。処理対象とされるデータは、第１、第２および第３データである。したがって、フォーマット変換処理は、ワークフローには処理対象データの数に対応して３つが定義される。ここでは、第１、第２および第３データのフォーマット変換処理をそれぞれ第１、第２および第３フォーマット変換処理という。
【００３９】
（処理３：データ編集処理）
複数のＰＤＦフォーマットのデータを編集して、１つのデータに合成する処理である。ＰＤＦフォーマットのデータを編集するには、データ編集プログラムが実行される必要がある。処理対象データは、フォーマット変換後の第１、第２、第３データと、第４および第５データである。編集内容は、ここでは、フォーマット変換後の第２データに、フォーマット変換後の第３データを追加し、追加して得られるデータの第１頁を第１データに置き換え、第５頁と第６頁の間に第３データを、第１０頁と第１１頁の間に第４データを、それぞれ挿入することを内容とする。
【００４０】
（処理４：データベース登録処理）
サーバ３００が記憶するデータベースにデータを登録する処理である。処理対象は、登録するべき第６データである。
【００４１】
ワークフローには、上述したスキャン処理、第１〜第３フォーマット変換処理、データ編集処理が記述される。このワークフローは、各処理に対応して処理対象とする画像データを識別するためのファイル名を含む。スキャン処理については、第１フォーマット変換処理で第１データを特定する必要があるため、読み取られて得られる第１データに仮のファイル名を付すようにすればよい。また、データ編集処理については、データベース登録処理で登録する第６データを特定する必要があるため、合成された第６データに仮のファイル名を付すようにすればよい。
【００４２】
また、ワークフローでは、処理を実行するデバイスの範囲を限定するために、デバイス識別情報を含む。ここでは、ＭＦＰ１００，１００ＡおよびＰＣ２００，２００Ａのデバイス識別情報がワークフローに記述される。このため、ワークフローで限定された範囲のデバイ以外のデバイスで処理が実行されることはない。さらに、ワークフローに定義された処理のいずれかをその処理を実行させるデバイスとして指定することができる。この場合には、ワークフローには、処理に対応付けてその処理を実行するデバイスのデバイス識別情報が記述される。実行するデバイスが指定された処理は、その指定されたデバイスで実行されるように、後述する実行ワークフローが生成される。
【００４３】
図３は、ワークフロー制御サーバの機能の概略を示す機能ブロック図である。ここでは、ＭＦＰ１００にワークフローを入力するようにしているので、ＭＦＰ１００がワークフロー制御サーバとなる。このため、図３では、ＭＦＰ１００のＣＰＵ１０１の機能の概略を示している。図３を参照して、ＣＰＵ１０１は、入力されたワークフローを解析して処理を実行可能なデバイスを抽出するワークフロー解析部１１と、ワークフローに定義された処理を実行させるデバイスを決定して実行ワークフローを生成する実行ワークフロー生成部１３と、実行ワークフローを実行するワークフロー制御部１５とを含む。
【００４４】
ワークフロー解析部１１は、上述した処理と処理対象データとを定義したワークフローが入力される。ワークフローは、操作パネル１０９を操作するユーザにより、入力部１０９Ａから入力される場合と、ネットワークＩ／Ｆ１０７を介してネットワーク２に接続された他のＭＦＰ１００Ａ、ＰＣ２００，２００Ａ，２００Ｂまてゃサーバ３００から入力される場合とがある。ワークフロー解析部１１は、入力されたワークフローに定義された処理を実行可能なデバイスを抽出してデバイスリストを生成する。抽出されるデバイスは、そのデバイスにアプリケーションプログラムがインストールされており、直ちに実行可能な状態にあるデバイスと、他のデバイスからアプリケーションプログラムをダウンロードすれば実行可能となるデバイスとを含む。ワークフロー解析部１１は、生成したデバイスリストを実行ワークフロー生成部１３に出力する。
【００４５】
ＰＣ２００，２００Ａ，２００Ｂでは、アプリケーションプログラムをダウンロードした後、それを実行可能とするためにはダウンロードしたアプリケーションプログラムをインストールする必要があるが、ここでば、インストール処理を含めてダウンロードという。従って、ここでＰＣ２００，２００Ａ，２００Ｂにアプリケーションプログラムがダウンロードされるというときは、そのＰＣ２００，２００Ａ，２００Ｂは、ダウンロードしたアプリケーションプログラムが実行可能な状態となることを意味する。これに対して、ＭＦＰ１００，１００Ａでは、アプリケーションプログラムは、記憶部１０２の予め定められたアドレスに記憶されるため、ダウンロードされることによりアプリケーションンプログラムを実行可能となる。従って、ＭＦＰ１００，１００Ａにアプリケーションプログラムがダウンロードされると、そのＭＦＰ１００，１００Ａは、ダウンロードしたアプリケーションプログラムが実行可能な状態となる。
【００４６】
ここでは、ＭＦＰ１００は、フォーマット変換プログラムを記憶しており、ＭＦＰ１００はそれを実行可能な状態となっている。したがって、ＭＦＰ１００は、スキャナ部１０３が出力する画像データをＰＤＦフォーマットに変換する処理を実行することが可能である。なお、ここでは、ＭＦＰ１００に記憶されているフォーマット変換プログラムは、第２および第３フォーマット変換処理も実行可能である。また、ＰＣ２００Ａは、ＰＤＦフォーマットのデータを編集するデータ編集プログラムを記憶しており、それを実行可能な状態となっている。さらに、ＰＣ２００Ｂは、ＰＣ２００，２００Ａ，２００Ｂにインストール可能なフォーマット変換プログラムと、ＭＦＰ１００，１００Ａで実行可能なデータ編集プログラムおよびデータベース登録プログラムを記憶している。
【００４７】
実行ワークフロー生成部１３は、ワークフローと、デバイスリストとが入力される。実行ワークフロー生成部１３は、ＭＦＰ１００，１００Ａ，ＰＣ２００，２００Ａ，２００Ｂのいずれで処理を実行させるかを決定して、実行ワークフローを生成する。実行ワークフロー生成部１３は、処理を実行するデバイスに処理対象データが存在しない場合には、その処理対象データを処理を実行するデバイスに送信させる送信処理を実行させるデバイスを決定する。このため実行ワークフロー生成部１３で生成される実行ワークフローは、実行するべき処理と、その処理を実行するデバイスを特定するための装置識別情報とを関連付けたものである。実行ワークフローによる、実行するべき処理とその処理を実行するデバイスの装置識別情報との関連付けは、ワークフローの開始から終了までの処理時間が最短となるように関連付けてもよいし、実行するべき処理を実行するデバイスの数が最少となるように関連付けてもよいし、または、アプリケーションプログラムおよびデータの送信回数が最少となるように関連付けてもよい。ここでは、アプリケーションプログラムおよびデータの送受信回数が最少となるように関連付ける場合を例に説明する。なお、データの送信回数に代えて、送信されるデータのデータ量が最少となるように関連付けてもよい。実行ワークフロー生成部１３は、生成した実行ワークフローを記憶部１０２に記憶する。
【００４８】
ワークフロー制御部１５は、記憶部１０２から実行ワークフローを読み出して、実行ワークフローで定義された処理それぞれを、各処理それぞれに関連付けられているデバイスに実行させる。
【００４９】
図４は、ワークフロー制御サーバで実行されるワークフロー解析処理の流れの一例を示すフローチャートである。図４を参照して、ワークフロー解析部１１は、ワークフローが入力されるまで待機状態となる（ステップＳ０１でＮＯ）。そして、ワークフローが入力されるとステップＳ０２へ進む。すなわち、ワークフロー解析処理は、ワークフローが入力されることを条件に実行される処理である。
【００５０】
ステップＳ０２では、ワークフローに定義されている処理のうちから、実行するデバイスが指定されている処理を抽出する。ワークフローを記述したユーザの意思により実行するデバイスが指定されたことに従うためである。たとえば、第１データのフォーマット変換処理に対して、ＭＦＰ１００を指定されている場合である。この場合には、第１データのフォーマット変換は、ＭＦＰ１００で実行されるように、第１データのフォーマット変換処理が抽出され、フォーマット変換処理とＭＦＰ１００の装置識別情報との関連付けが決定される。
【００５１】
ステップＳ０３では、ワークフローに定義された処理を実行するためのアプリケーションプログラムが特定される。フォーマット変換処理に対してフォーマット変換プログラムが、データ編集処理に対してデータ編集プログラムが、データベース登録処理に対してデータベース登録プログラムが特定される。
【００５２】
次のステップＳ０４では、ダウンロードすることなく実行可能な処理が調査される。ここでは、ステップＳ０３で特定したアプリケーションプログラムが登録されているデバイスが抽出される。ここでの登録とは、アプリケーションプラグラムが実行可能な状態とされていることをいう。ＭＦＰ１００は、自装置で登録されているアプリケーションプログラムを検出するとともに、ＭＦＰ１００ＡおよびＰＣ２００，２００Ａ，２００Ｂそれぞれに要求信号を送信して、それぞれから登録されているアプリケーションプログラムの情報を受信する。これにより、ワークフローに定義された処理を、アプロケーションプログラムをダウンロードすることなく実行可能なデバイスが検出される。ここでの例では、ＭＦＰ１００自身でフォーマット変換プログラムが検出され、ＰＣ２００Ａからフォーマット変換プログラムを示す情報が受信され、ＰＣ２００Ａからデータ編集プログラムを示す情報が受信される。これにより、ＭＦＰ１００は、ＭＦＰ１００およびＰＣ２００Ａの装置識情報とフォーマット変換処理とを関連付けて記憶し、ＰＣ２００Ａの装置識別情報とデータ編集処理とを関連付けて記憶する。
【００５３】
次のステップＳ０５では、ダウンロードすることにより実行可能な処理が調査される。ここでは、ステップＳ０３で特定したアプリケーションプログラムであって、ダウンロード可能な状態で記憶されているものを抽出する。ＭＦＰ１００は、自装置で登録されているアプリケーションプログラムを検出するとともに、ＭＦＰ１００ＡおよびＰＣ２００，２００Ａ，２００Ｂそれぞれに要求信号を送信して、それぞれから登録されているアプリケーションプログラムの情報を受信する。なお、この処理は、ステップＳ０４で同時に行ってもよい。抽出されるアプリケーションプログラムは、ダウンロード可能な状態で記憶されているので、他のデバイスがそれをダウンロードすれば、該他のデバイスでそれを実行することが可能となる。アプリケーションプログラムは、ＭＦＰ１００，１００Ａでのみ実行可能なものと、ＰＣ２００，２００Ａ，２００Ｃで実行可能なものとがあるため、抽出したアプリケーションプログラムからそのアプリケーションプログラムをダウンロードして実行可能なデバイスを特定することができる。ここでは、ＰＣ２００ＢからＭＦＰ１００,１００Ａで実行可能なデータベース登録プログラムの情報と、ＰＣ２００，２００Ａ、２００Ｃで実行可能なフォーマット変換処理プログラムの情報とが受信される。これにより、ＭＦＰ１００は、ＭＦＰ１００,１００Ａの装置識情報とデータベース登録処理とを関連付けて記憶し、ＰＣ２００，２００Ａとフォーマット変換処理とを関連付けて記憶する。
【００５４】
次のステップＳ０６では、ステップＳ０３およびステップＳ０４で調査した結果、記憶された処理と装置識情報とからデバイスリストが作成され、記憶部１０２に記憶される。図５は、デバイスリストの一例を示す図である。図５を参照して、縦をデバイス名として横を処理名としたマトリックスでデバイスリストを示している。◎印は、対応するデバイスで対応する処理が実行可能な状態であることを示し、○印は対応するデバイスでアプリケーションプログラムをダウンロードすることにより対応する処理が実行可能となることを示している。
【００５５】
図６は、ワークフローが実行される前の状態において、デバイスで実行可能な処理とデバイスが記憶している処理対象データとを示す図である。図６において、デバイスごとに上段に実行可能な処理名を示し、下段に記憶している処理対象データを示している。括弧で囲われた実行可能な処理名は、ダウンロードされることを条件に実行可能となる処理を示している。
【００５６】
図７は、ワークフロー制御サーバで実行される実行ワークフロー生成処理の流れの一例を示すフローチャートである。図７を参照して、実行ワークフロー生成処理では、ワークフローが入力されるまで待機状態となる（ステップＳ１０でＮＯ）。そして、ワークフローが入力されるとステップＳ１１へ進む。すなわち、ワークフロー制御処理は、ワークフローが入力されることを条件に実行される処理である。
次のステップＳ１１では、記憶部１０２からデバイスリストが読み出されることによりデバイスリストが取得される。そして、取得したデバイスリストを使用してワークフローを生成する（ステップＳ１２）。ここで生成されるワークフローは、処理にそれを実行するデバイスが対応付けられる。ワークフローには、プログラムをダウンロードさせる必要がある場合にはプログラムをダウンロードさせる処理が含まれ、処理を実行するために処理対象データを送受信する必要がある場合には処理対象データを送信させるデータ送信処理を含む。さらに、ワークフローは、ダウンロードさせる処理が含まれる場合にはダウンロードさせたプログラムを削除またはアンインストールさせる処理が含まれる。
【００５７】
生成されるワークフローは複数あり、その一例としては、次のものがある。
（パターン１）
ＭＦＰ１００に第１〜第５データを集め、処理可能なデバイスに送信して処理を実行させた処理結果をＭＦＰ１００に返信させ、ＭＦＰ１００からデータベースに登録する。
（１）原稿を読み取ってフォーマット変換して第１データを記憶する処理。
（２）ＰＣ２００にＭＦＰ１００へ第２および第３データを送信させる処理。第２および第３の２つが送信される。
（３）ＰＣ２００ＡにＭＦＰ１００へ第４データを送信させる処理。
（４）ＭＦＰ１００ＡにＭＦＰ１００へ第５データを送信させる処理。
（５）第２および第３データをフォーマット変換する処理。
（６）フォーマット変換後の第１〜第５データをＰＣ２００Ａに送信する処理。第１〜第５データの５つが送信される。
（７）ＰＣ２００Ａにデータ編集処理を実行させる処理。ＰＣ２００Ａで第１〜第５データが合成されて第６データが生成される。
（８）ＰＣ２００ＡにＭＦＰ１００へ第６データを送信させる処理。
（９）ＰＣ２００Ｂからデータベース登録プログラムをダウンロードする処理。ＰＣ２００ＢからＭＦＰ１００にデータベース登録プログラムが送信される。
（10）第６データをサーバ３００のデータベースに登録する処理。
（11）ダウンロードしたデータベース登録プログラムを削除する処理。
【００５８】
（パターン２）
各デバイスで処理を行ったデータをＭＦＰ１００に送信して、ＭＦＰ１００でデータ編集した後、ＭＦＰ１００からデータベースに登録する。
（１）原稿を読み取ってフォーマット変換して第１データを記憶する処理。
（２）ＰＣ２００Ｂからデータ編集プログラムをダウンロードする処理。ＰＣ２００ＢからＭＦＰ１００にデータ編集プログラムが送信される。
（３）ＰＣ２００に第２、第３データをＭＦＰ１００へ送信させる処理。第２、第３データの２つが送信される。
（４）第２、第３データをフォーマット変換する処理。
（５）ＰＣ２００ＡにＭＦＰ１００へ第４データを送信させる処理。
（６）ＭＦＰ１００ＡにＭＦＰ１００へ第５データを送信させる処理。
（７）データ編集処理を実行する処理。第１〜第５データを合成して第６データを生成する処理である。
（８）ＰＣ２００ＢにＭＦＰ１００へデータベース登録プログラムを送信させる処理。
（９）第６データをサーバ３００のデータベースに登録する処理。
（10）ダウンロードしたデータ編集プログラムおよびデータベース登録プログラムを削除する処理。
【００５９】
（パターン３）
全てのデータをＰＣ２００Ａに送信して、ＰＣ２００Ａでまとめた第６データをＭＦＰ１００に送信し、ＭＦＰ１００からデータベースに登録する。
（１）原稿を読み取ってフォーマット変換して第１データを記憶する処理。
（２）第１データをＰＣ２００Ａに送信する処理。
（３）ＰＣ２００にＰＣ２００Ｂからフォーマット変換プログラムをダウンロードさせる処理。フォーマット変換プログラムがＰＣ２００ＢからＰＣ２００に送信される。
（４）ＰＣ２００に第２、第３データをフォーマット変換させる処理。
（５）ＰＣ２００にＰＣ２００Ａへ第２、第３データを送信させる処理。第２、第３データが送信される。
（６）ＭＦＰ１００ＡにＰＣ２００Ａへ第４データを送信させる処理。
（７）ＰＣ２００Ａに第４データをフォーマット変換させる処理。
（８）ＰＣ２００Ａにデータ編集処理を実行させる処理。第１〜第５データが合成されて第６データが生成される。
（９）ＰＣ２００ＡにＭＦＰ１００へ第６データを送信させる処理。
（10）ＰＣ２００Ｂからデータベース登録プログラムをダウンロードする処理。
（11）第６データをサーバ３００のデータベースに登録する処理。
（12）ダウンロードしたデータベース登録プログラムを削除する処理。
（13）ＰＣ２００にインストールしたフォーマット変換プログラムをアンインストールさせる処理。
【００６０】
次のステップＳ１３では、全てのパターンのワークフローごとに送信回数を算出する。ここでの送信回数の算出の対象となる送信処理は、アプリケーションプログラムの送信処理と処理対象データの送信処理とである。なお、送信回数の算出の対象となる送信処理に、アプリケーションプログラムの送信処理を含めることなく、処理対象データの送信処理のみとしてもよい。アプリケーションプログラムの送信は、データの送信と同じタイミングで送信することが可能であること、データの送信に比較して、ワークフローにおける処理の順位の制約が少ないからである。送信回数は、上記パターン１では１２回となり、パターン２では７回となり、パターン３では８回となる。
【００６１】
ステップＳ１４では、送信回数の少ない順にワークフローをソーティングする。そして、送信回数が最少のワークフローを実行ワークフローに決定し（ステップＳ１５）、決定した実行ワークフローを記憶部１０２に記憶する（ステップＳ１６）。ここでは、パターン２のワークフローが実行ワークフローに決定され、記憶される。
【００６２】
図８は、ワークフロー制御サーバで実行されるワークフロー制御処理の流れの一例を示すフローチャートである。図８を参照して、まず、記憶部１０２に記憶されている実行ワークフローが選択されるまで待機状態となる（ステップＳ２１でＮＯ）。実行ワークフローが選択された場合にステップＳ２２に進む。すなわち、ワークフロー制御処理は、実行ワークフローが選択されることを条件に実行される処理である。
【００６３】
ステップＳ２２では、選択された実行ワークフローが記憶部１０２より読み出される。そして、実行指示が入力されるまで待機状態となり（ステップＳ２３でＮＯ）、実行指示が入力されるとステップＳ２４に進む。なお、待機状態とするのではなく、実行指示が入力されるまで、ステップＳ２１およびＳ２２を繰り返すようにして、選択された実行ワークフローの変更を許可するようにしてもよい。
【００６４】
そして、ステップＳ２４では、ステップＳ２２で読み出された実行ワークフローに従って処理が実行される。
【００６５】
以上説明したように本実施の形態における情報処理システム１では、ワークフロー制御デバイスであるＭＦＰ１００は、ＭＦＰ１００，１００ＡおよびＰＣ２００，２００Ａ，２００Ｂ別にそれらがアプリケーションプログラムをダウンロードすることなく実行可能な処理、およびアプリケーションプログラムをダウンロードすることを条件に実行可能な処理を調査してデバイスリストが生成される。そして、ワークフローが入力されると、デバイスリストに基づいて、ワークフローで定義された複数の処理それぞれを実行させるデバイスが決定されて実行ワークフローが生成され、実行ワークフローに従って決定されたデバイスに処理を実行させる。決定されたデバイスが処理を実行するためのプログラムを記憶していない場合は、そのプログラムを記憶する他のデバイスからダウンロードされる。このため、複数のデバイスにプログラムが予め記憶されている必要がないので、無駄なデータ転送やワークフロー管理を削減することができ、実行するワークフローの生産性が向上する。
【００６６】
また、ワークフローで定義された複数の処理すべてが実行された場合にデータの送信回数が最少となるように実行ワークフローを生成するので、複数ある組み合わせのうちから最適なワークフローを容易に決定することができる。
【００６７】
また、実行ワークフローは、ダウンロードされたプログラムを削除またはアンインストールさせる処理を含むので、ユーザの知らないうちにプログラムが記憶されてその状態が継続することがない。
【００６８】
また、ワークフローは、処理を実行させるデバイスを指定することができるので、ユーザの意思で使用するアプリケーションプログラムを指定することができる。
【００６９】
なお、上述した実施の形態においては、ワークフロー制御デバイスであるＭＦ１００について説明したが、ＭＦＰ１００Ａ、ＰＣ２００，２００Ａ，２００Ｂのいずれかをワークフロー制御デバイスとすることができる。さらに、図４に示したワークフロー解析処理、図７に示した実行ワークフロー生成処理、および図８に示したワークフロー制御処理をコンピュータに実行させるワークフロー制御方法またはワークフロー制御プログラムとして発明を捉えることができるのはいうまでもない。
【００７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００７１】
＜付記＞
（１）  前記調査手段は、前記複数のデバイスごとに、プログラムをダウンロードすることを条件に実行可能な処理と、プログラムをダウンロードする必要なく実行可能な処理とを区別したデバイスリストを生成するデバイスリスト生成手段を含む、請求項１に記載の情報処理装置。
【００７２】
（２）  前記デバイス決定手段は、ワークフローで定義された複数の処理それぞれを実行するためにデータを送信させる処理を決定する送信処理決定手段と、
前記送信処理により送信されるデータの数をカウントするカウント手段とを含む、請求項２または４に記載の情報処理装置。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態の一つにおける情報処理システムの全体構成を示す図である。
【図２】本実施の形態におけるＭＦＰのハード構成を示すブロック図である。
【図３】ワークフロー制御サーバの機能の概略を示す機能ブロック図である。
【図４】ワークフロー制御サーバで実行されるワークフロー解析処理の流れの一例を示すフローチャートである。
【図５】デバイスリストの一例を示す図である。
【図６】ワークフローが実行される前の状態において、デバイスで実行可能な処理とデバイスが記憶している処理対象データとを示す図である。
【図７】ワークフロー制御サーバで実行される実行ワークフロー生成処理の流れの一例を示すフローチャートである。
【図８】ワークフロー制御サーバで実行されるワークフロー制御処理の流れの一例を示すフローチャートである。
【符号の説明】
【００７４】
１  情報処理システム、２  ネットワーク、１１  ワークフロー解析部、１３  実行ワークフロー生成部、１５  ワークフロー制御部、１０２  記憶部、１０３  スキャナ部、１０４  入力画像処理部、１０５  出力画像処理部、１０６  画像形成部、１０７  ネットワークＩ／Ｆ、１０８  モデム、１０９  操作パネル、１０９Ａ  入力部、１０９Ｂ  表示部、１１０  カードＩ／Ｆ、１１０Ａ  ＩＣカード、１１１  バス、１１２  ネットワーク、１１３  電話回線、３００  サーバ。
【図１】
2006350529.tif 000003
【図２】
2006350529.tif 000004
【図３】
2006350529.tif 000005
【図４】
2006350529.tif 000006
【図５】
2006350529.tif 000007
【図６】
2006350529.tif 000008
【図７】
2006350529.tif 000009
【図８】
2006350529.tif 000010