(57)【要約】【課題】複数の情報処理装置において複数の処理を実行する。【解決手段】データを取得する情報取得装置とサーバとを備え、ワークフロー情報に定義された複数の処理を実行する情報処理システムであって、ワークフロー情報は、複数の処理の順序を定義し、情報取得装置およびサーバは、ワークフロー情報に定義された複数の処理のそれぞれを一方が実行し、情報取得装置は、ワークフロー情報により定義された複数の処理に特定の処理が含まれている場合、特定の処理の前に、対象データをサーバに送信し、サーバは、対象データを受信して、ワークフロー情報により定義されている複数の処理のうち特定の処理を実行する。【選択図】図３
2015061141.tif 000002
【特許請求の範囲】
【請求項１】
データを取得する情報取得装置とサーバとを備え、ワークフロー情報に定義された複数の処理を実行する情報処理システムであって、
前記ワークフロー情報は、複数の処理の順序を定義し、
前記情報取得装置および前記サーバは、前記ワークフロー情報に定義された複数の処理のそれぞれを一方が実行し、
前記情報取得装置は、前記ワークフロー情報により定義された複数の処理に特定の処理が含まれている場合、前記特定の処理の前に、対象データを前記サーバに送信し、
前記サーバは、前記対象データを受信して、前記ワークフロー情報により定義されている複数の処理のうち前記特定の処理を実行する
情報処理システム。
【請求項２】
前記情報取得装置は、前記ワークフロー情報により定義された複数の処理に、前記サーバが実行すべき処理を含む場合、前記サーバが実行すべき処理の前に、前記対象データを前記サーバに送信し、
前記サーバは、前記対象データを受信して、前記ワークフロー情報により定義されている複数の処理のうち、前記サーバが実行すべき処理を実行する
請求項１に記載の情報処理システム。
【請求項３】
前記ワークフロー情報には、定義している前記複数の処理の中に、前記サーバが実行すべき処理を含むことが記述され、
前記情報取得装置は、前記ワークフロー情報に定義された複数の処理の実行前に、前記サーバが実行すべき処理を含むかを判断し、前記サーバが実行すべき処理を含む場合には、前記対象データを前記サーバに送信し、
前記サーバは、前記ワークフロー情報に定義された前記複数の処理を実行する
請求項２に記載の情報処理システム。
【請求項４】
前記情報取得装置は、前記サーバの処理負荷が予め定められた値以下である場合には、前記対象データを前記サーバに送信する
請求項３に記載の情報処理システム。
【請求項５】
前記ワークフロー情報には、前記複数の処理のそれぞれについて、前記サーバが実行すべき処理であるかが記述され、
前記情報取得装置は、前記ワークフロー情報により定義された複数の処理のそれぞれについて、前記サーバが実行すべき処理であるかを判断し、
前記サーバが実行すべき処理ではない場合には、前記情報取得装置は、前記サーバが実行すべき処理を実行し、
前記サーバが実行すべき処理である場合には、前記情報取得装置は、前記対象データを前記サーバに送信し、前記サーバは、前記サーバが実行すべき処理を実行する
請求項２に記載の情報処理システム。
【請求項６】
前記情報取得装置は、前記サーバが実行すべき処理でない場合であっても、前記サーバの処理負荷が予め定められた値以下である場合には、前記対象データを前記サーバに送信する
請求項５に記載の情報処理システム。
【請求項７】
前記情報取得装置は、前記ワークフロー情報に、前記サーバが実行できない処理を含むかを判断し、
前記サーバが実行できない処理を含む場合には、前記情報取得装置は、少なくとも前記サーバが実行できない処理を実行した後に、前記対象データを前記サーバに送信し、前記サーバは、以後の処理を実行する
請求項２から６の何れか一項に記載の情報処理システム。
【請求項８】
前記情報取得装置は、前記ワークフロー情報により定義された複数の処理に、装置の保有能力が要求能力を満たさない処理が含まれている場合、装置の保有能力が要求能力を満たさない処理の前に、対象データを前記サーバに送信し、
前記サーバは、前記対象データを受信して、前記ワークフロー情報により定義されている複数の処理のうち、前記情報取得装置の保有能力が要求能力を満たさない処理を実行する
請求項１に記載の情報処理システム。
【請求項９】
前記ワークフロー情報には、定義している前記複数の処理を実行するために装置に要求する能力が記述され、
前記情報取得装置は、前記ワークフロー情報に定義された複数の処理の実行前に、装置の保有能力が要求能力を満たすか否かを判断し、
装置の保有能力が要求能力を満たさない処理が含まれている場合には、前記情報取得装置は、取得した前記データを前記サーバに送信し、前記サーバは、前記ワークフロー情報に定義された前記複数の処理を実行する
請求項８に記載の情報処理システム。
【請求項１０】
前記ワークフロー情報には、前記複数の処理のそれぞれについて、実行するために装置に要求する能力が記述され、
前記情報取得装置は、前記ワークフロー情報により定義された複数の処理のそれぞれについて、装置の保有能力が要求能力を満たすか否かを判断し、
装置の保有能力が要求能力を満たす場合には、前記情報取得装置は、処理を実行し、
装置の保有能力が要求能力を満たさない場合には、前記情報取得装置は、前記対象データを前記サーバに送信し、前記サーバは、装置の保有能力が要求能力を満たさない処理および以後の処理を実行する
請求項８に記載の情報処理システム。
【請求項１１】
請求項１から１０の何れか一項に記載の情報処理システムに備えられる情報取得装置。
【請求項１２】
コンピュータを請求項１１に記載の情報取得装置として機能させるためのプログラム。
【請求項１３】
請求項１から１０の何れか一項に記載の情報処理システムに備えられるサーバ。
【請求項１４】
コンピュータを請求項１３に記載のサーバとして機能させるためのプログラム。
【請求項１５】
データを取得する情報取得装置とサーバとを備え、ワークフロー情報に定義された複数の処理を実行する情報処理システムで実行される情報処理方法であって、
前記ワークフロー情報は、複数の処理の順序を定義し、
前記情報取得装置および前記サーバが、前記ワークフロー情報に定義された複数の処理のそれぞれを一方が実行し、
前記情報取得装置が、前記ワークフロー情報により定義された複数の処理に、特定の処理が含まれている場合、前記特定の処理の前に、対象データを前記サーバに送信し、
前記サーバが、前記対象データを受信して、前記ワークフロー情報により定義されている複数の処理のうち、前記特定の処理を実行する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理を実行する情報処理システム、情報取得装置、サーバ、プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
従来、プリンタ、スキャナおよびファクシミリ等の機能を有する複合機は、複数の処理の手順を予め定義したワークフローを、スキャナ等により取り込んだ画像データに対して実行する機能を有する（例えば、特許文献１参照）。ワークフローを定義することにより、複合機は、取り込んだ画像データを、指定されたフォルダーに自動で送信したり、自動でメール送信したりすることができる。
【０００３】
また、サーバがワークフローを実行するシステムも知られている。このシステムでは、複合機が取り込んだ画像データをサーバに送信し、サーバがワークフローにより定義された複数の処理を実行する。このようなシステムによれば、複合機では実行が困難であるような処理（例えば、画像補正処理および文字認識処理等）を含むワークフローを実行することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来、ワークフローを実行する装置は、複合機またはサーバの何れか一方であった。しかし、近年、複合機の機能が向上したことにより、比較的に負荷の重い処理も実行可能となってきた。そこで、複合機とサーバとがより効率良くワークフローを実行することが望まれる。
【０００５】
そこで、本発明は、上記に鑑みてなされたものであって、ワークフロー情報により定義された複数の処理を効率良く実行する情報処理システム、情報取得装置、サーバ、プログラムおよび情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係る情報処理システムは、データを取得する情報取得装置とサーバとを備え、ワークフロー情報に定義された複数の処理を実行する情報処理システムであって、前記ワークフロー情報は、複数の処理の順序を定義し、前記情報取得装置および前記サーバは、前記ワークフロー情報に定義された複数の処理のそれぞれを一方が実行し、前記情報取得装置は、前記ワークフロー情報により定義された複数の処理に特定の処理が含まれている場合、前記特定の処理の前に、対象データを前記サーバに送信し、前記サーバは、前記対象データを受信して、前記ワークフロー情報により定義されている複数の処理のうち前記特定の処理を実行することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ワークフロー情報により定義された複数の処理を効率良く実行することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理システムの構成を示す図である。
【図２】図２は、情報処理システムにより実行される複数の処理と、実行主体との関係を示す図である。
【図３】図３は、複合機およびワークフローサーバの機能構成を示す図である。
【図４】図４は、ワークフロー情報に含まれる設定情報の一例を示す図である。
【図５】図５は、ワークフローの実行のシーケンスを示す図である。
【図６】図６は、最初に実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。
【図７】図７は、ワークフロー情報に含まれる処理毎の設定情報（プラグイン情報）の一例を示す図である。
【図８】図８は、処理毎に実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。
【図９】図９は、最初にジョブキュー数に基づいて実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。
【図１０】図１０は、処理毎にジョブキュー数に基づいて実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。
【図１１】図１１は、最初に実行主体を判断するフローを実行するか、処理毎に実行主体を判断するフローを実行するかを、ジョブキュー数に基づいて切り替える場合のフロー図である。
【図１２】図１２は、ワークフローサーバで実行できない処理を含むワークフローを実行する場合のフロー図である。
【図１３】図１３は、変形例に係る情報処理システムが備える複合機およびワークフローサーバの機能構成を示す図である。
【図１４】図１４は、変形例に係るワークフロー情報に含まれる処理毎の設定情報（プラグイン情報）の一例を示す図である。
【図１５】図１５は、装置の保有能力を示す機器情報の一例を示す図である。
【図１６】図１６は、装置の保有能力を示す機器情報の他の例を示す図である。
【図１７】図１７は、変形例に係る情報処理システムにおいて、処理毎に実行主体を判断して、ワークフローを実行する場合のフロー図である。
【図１８】図１８は、変形例に係る情報処理システムにおいて、最初に実行主体を判断して、ワークフローを実行する場合のフロー図である。
【図１９】図１９は、実施形態に係る情報処理システムがクラウドシステムに適用された場合の構成を示す図である。
【図２０】図２０は、複合機のハードウェア構成の一例を示す図である。
【図２１】図２１は、ワークフローサーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係る実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１０】
図１は、実施形態に係る情報処理システム１０の構成を示す図である。情報処理システム１０は、一例として、複合機２０と、クライアント端末２１と、携帯機器２２と、ワークフローサーバ３０と、データ蓄積装置３１と、中継装置３２と、データ出力装置３３とを備える。
【００１１】
複合機２０、クライアント端末２１、携帯機器２２、ワークフローサーバ３０、中継装置３２およびデータ出力装置３３は、ネットワーク４０を介して接続される。また、データ蓄積装置３１は、中継装置３２を介してネットワーク４０に接続される。データ蓄積装置３１は、ネットワーク４０に直接接続されていてもよい。
【００１２】
ネットワーク４０は、ＬＡＮ（Local  Area  Network）またはＬＡＮがルータを介して接続されたＷＡＮ（Wide  Area  Network）であってもよい。また、ネットワーク４０は、インターネットまたは電話通信回線等を含んでいてもよい。また、ネットワーク４０は、有線で構成されていてもよいし、一部または全部が無線により構成されていてもよい。
【００１３】
複合機２０は、スキャナ機能およびファクシミリ機能の少なくとも１つを有し、データを取得する情報取得装置として機能する。これとともに複合機２０は、通信機能および表示機能等を有する。さらに、複合機２０は、プログラムを予め記憶し、プログラムに従ってデータ処理を実行する情報処理装置として機能する。複合機２０は、一例として、用紙をスキャンして画像データを取り込み、取り込んだ画像データに対してプログラムに従ったデータ処理を実行する。
【００１４】
クライアント端末２１は、デスクトップ型コンピュータ、ノート型コンピュータ、ワークステーションまたは電子黒板等である。クライアント端末２１は、画像の撮像、音声入力、通信媒体からの情報入力、および、記憶媒体から情報の読み出し等により、情報を取得する情報取得装置である。また、クライアント端末２１は、通信機能および表示機能等を有する。さらに、クライアント端末２１は、プログラムを予め記憶し、プログラムに従ってデータ処理を実行する情報処理装置として機能する。
【００１５】
携帯機器２２は、スマートフォン、タブレット端末、携帯電話機およびデジタルカメラ等のユーザにより携帯される機器である。携帯機器２２は、画像の撮像、音声入力、通信媒体からの情報入力、および、記憶媒体から情報の読み出し等により、情報を取得する情報取得装置である。また、携帯機器２２は、通信機能および表示機能等を有する。さらに、携帯機器２２は、プログラムを予め記憶し、プログラムに従ってデータ処理を実行する情報処理装置として機能する。
【００１６】
なお、複合機２０、クライアント端末２１および携帯機器２２は、ワークフローサーバ３０に対してワークフローの実行を要求することができる。情報処理システム１０は、複合機２０、クライアント端末２１および携帯機器２２以外の情報取得装置を備えてもよい。
【００１７】
ワークフローサーバ３０は、一台以上のコンピュータにより構成される。ワークフローサーバ３０は、通信機能を有し、さらに、プログラムを予め記憶し、プログラムに従ってデータ処理を実行する情報処理装置として機能する。
【００１８】
ワークフローサーバ３０は、ワークフロー情報を予め記憶する。ワークフロー情報は、複数の処理の順序を定義する情報である。ここで、ワークフローの実行主体となる情報処理装置は、ワークフローサーバ３０、および、このワークフローサーバ３０に対してネットワーク４０を介してワークフローの実行を要求する情報取得装置（例えば、複合機２０、クライアント端末２１または携帯機器２２）である。
【００１９】
ワークフローサーバ３０は、ワークフローの実行を要求する情報取得装置（複合機２０、クライアント端末２１または携帯機器２２）に対して、要求されたワークフロー情報を提供する。そして、ワークフローサーバ３０は、ワークフローの実行を要求してきた情報取得装置とともに、ワークフロー情報に定義された複数の処理を実行する。より具体的には、ワークフローサーバ３０およびワークフローの実行を要求してきた情報処理装置は、ワークフロー情報に定義された複数の処理のそれぞれを、定義された順序で、何れか一方が実行する。ワークフローサーバ３０およびワークフローの実行を要求してきた情報取得装置は、実行主体が変更する場合には、処理対象となる対象データをネットワーク４０を介して受け渡しをする。
【００２０】
データ蓄積装置３１は、一台以上のコンピュータにより構成される。データ蓄積装置３１は、通信機能および情報蓄積機能を有する。データ蓄積装置３１は、一例として、ファイルサーバまたはメールサーバ等である。データ蓄積装置３１は、ワークフローの実行結果であるデータを、ワークフローサーバ３０または情報取得装置（例えば、複合機２０、クライアント端末２１または携帯機器２２）から受信して、内部に蓄積する。
【００２１】
中継装置３２は、ワークフローサーバ３０または情報取得装置（例えば、複合機２０、クライアント端末２１または携帯機器２２）と、データ蓄積装置３１との間のデータ転送を中継する。
【００２２】
データ出力装置３３は、通信機能および情報出力機能を有する。データ出力装置３３は、一例として、表示装置、プリンタ、プロジェクタ、電子黒板または音声出力装置等である。データ出力装置３３は、ワークフローの実行結果であるデータを、ワークフローサーバ３０または情報取得装置（例えば、複合機２０、クライアント端末２１または携帯機器２２）から受信して、受信したデータを外部に出力する。データ出力装置３３は、情報取得装置（例えば、複合機２０、クライアント端末２１または携帯機器２２）と一体的に構成されていてもよい。
【００２３】
このような情報処理システム１０は、ワークフローサーバ３０と、ワークフロー情報が提供された複合機２０、クライアント端末２１または携帯機器２２とにより、ワークフロー情報に定義された複数の処理を実行する。
【００２４】
以下、ワークフローサーバ３０と複合機２０とが連携して複数の処理を実行する場合を例にとって説明する。
【００２５】
図２は、情報処理システム１０により実行される複数の処理と、実行主体との関係を示す図である。ワークフロー情報には、複数の処理の内容および順序が定義される。ワークフロー情報は、コンピュータにより解釈が可能なデータ形式で記述がされる。ワークフロー情報は、一例として、ＸＭＬ（Extensible  Markup  Language）により記述される。
【００２６】
ワークフロー情報では、一例として、各種のデータ処理（データ圧縮処理、文字認識処理（ＯＣＲ）、フィルタリング処理、データ合成処理、特定のデータ形式への符号化処理、特定のファイル形式への変換処理（例えばＰＤＦ化処理）等）を定義することができる。また、ワークフロー情報では、一例として、データを外部に出力する処理（印刷処理、表示処理、音声出力処理、データのサーバへの配信（アップロード）処理、および、メール配信処理等）を定義することができる。また、ワークフロー情報では、一例として、データを取り込む処理（例えば、スキャン処理、撮像処理、メール受信処理、および、ファクシミリ受信処理等）を定義することもできる。
【００２７】
また、ワークフロー情報には、処理の実行順序が定義される。それぞれの処理を実行する装置は、前段の処理の結果である対象データを受け取り、受け取った対象データに対して処理を実行する。
【００２８】
ワークフローの処理対象となる対象データは、一例として、画像データである。これに代えて、処理対象となる対象データは、一例として、動画像データ、テキストデータ、音声データおよびコンピュータプログラム等のどのようなデータであってもよい。
【００２９】
情報処理システム１０では、ワークフロー情報により定義されている複数の処理のうち、一部を複合機２０（情報取得装置）が実行し、残りの一部をワークフローサーバ３０が実行してもよい。
【００３０】
例えば、図２に示されるように、ワークフロー情報に５つの処理が定義されている場合において、複合機２０は、１番目の処理（フィルタリング）、２番目の処理（天地識別）および３番目の処理（画像補正）を実行する。そして、ワークフローサーバ３０は、４番目の処理（ＯＣＲ）および５番目の処理（配信）を実行する。この場合、実行主体が切り替わる処理と処理との間において、対象データおよびワークフロー情報が、複合機２０（情報取得装置）からワークフローサーバ３０へと転送される。
【００３１】
また、情報処理システム１０は、ワークフロー情報により定義されている複数の処理の全部を、複合機２０（情報取得装置）またはワークフローサーバ３０の一方が実行してもよい。ワークフローサーバ３０が複数の処理の全部を実行する場合には、複数の処理の実行の前に、複合機２０（情報取得装置）が取得した対象データおよびワークフロー情報が、複合機２０（情報取得装置）からワークフローサーバ３０へと転送される。
【００３２】
ここで、ワークフロー情報が定義する複数の処理の中に、ワークフローサーバ３０が必ず実行すべき処理（特定の処理）が含まれる場合がある。このような処理を含む場合、ワークフロー情報には、定義している複数の処理の中に、ワークフローサーバ３０が必ず実行すべき処理が含まれることが記述される。これに代えて、または、これに加えて、ワークフロー情報には、定義している複数の処理のそれぞれについて、ワークフローサーバ３０が必ず実行すべきかが記述されていてもよい。
【００３３】
ワークフロー情報に、ワークフローサーバ３０が実行すべき処理が存在する場合、ワークフローサーバ３０が実行すべき処理の前に、複合機２０（情報取得装置）は、対象データをワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、対象データを受信して、ワークフロー情報により定義されている複数の処理のうち、ワークフローサーバ３０が実行すべき処理以後の処理を実行する。
【００３４】
これにより、情報処理システム１０によれば、ワークフロー情報により定義された複数の処理のそれぞれを、複合機２０（情報取得装置）またはワークフローサーバ３０の何れか一方が実行できる。これとともに、情報処理システム１０によれば、ワークフローサーバ３０が実行すべき処理を、ワークフローサーバ３０に実行させることができる。
【００３５】
図３は、複合機２０およびワークフローサーバ３０の機能構成を示す図である。ワークフローサーバ３０は、処理実行部６１と、ワークフロー記憶部６２と、リモート通信部６３と、フロー制御部６４と、ジョブ記憶部６５と、ジョブ取得部６６とを備える。
【００３６】
処理実行部６１は、ワークフロー情報に定義されたそれぞれの処理を実行する。処理実行部６１は、複数の処理部７１を有する。複数の処理部７１のそれぞれは、互いに異なる処理を実行する。複数の処理部７１のそれぞれは、フロー制御部６４により呼び出されたプラグインプログラムをプロセッサが実行することにより実現される。
【００３７】
例えば、処理実行部６１は、文字認識用プラグインプログラムが予め登録されており、文字認識用プラグインプログラムが呼び出されることにより、文字認識処理（ＯＣＲ処理）を実行する。また、例えば、処理実行部６１は、メール配信用プラグインプログラムが予め登録されており、メール配信用プラグインプログラムが呼び出されることにより、メール配信処理を実行する。
【００３８】
ワークフロー記憶部６２は、管理者等により登録された少なくとも１つのワークフロー情報を記憶する。リモート通信部６３は、ネットワーク４０を介して複合機２０および他の装置等と通信をする。
【００３９】
フロー制御部６４は、処理実行部６１により実行される複数の処理の実行順序を、ワークフロー情報に従い制御する。より具体的には、フロー制御部６４は、リモート通信部６３を介して、複合機２０からのワークフロー情報の選択を受け、選択されたワークフロー情報をワークフロー記憶部６２から読み出す。フロー制御部６４は、読み出したワークフロー情報をリモート通信部６３を介して複合機２０に送信する。そして、フロー制御部６４は、リモート通信部６３を介して複合機２０から対象データを受信した場合、ワークフロー情報に定義されている処理を処理実行部６１に実行させる。
【００４０】
また、リモート通信部６３は、複合機２０または他の装置からネットワーク４０を介して、ワークフローの実行指示であるジョブを受信する。ジョブ記憶部６５は、リモート通信部６３が受信したジョブを一時的に格納する。ジョブ取得部６６は、処理実行部６１のリソースの空き状況に応じてジョブ記憶部６５に記憶されているジョブを取得し、取得したジョブをフロー制御部６４に渡す。フロー制御部６４は、ジョブ取得部６６から渡されたジョブに示されるワークフロー情報に従って、処理の実行を制御する。
【００４１】
複合機２０は、処理実行部６１と、リモート通信部６３と、フロー制御部６４と、ジョブ記憶部６５と、ジョブ取得部６６と、実行場所判定部６７と、機能実行部６８と、機能制御部６９とを備える。
【００４２】
複合機２０の処理実行部６１、リモート通信部６３およびフロー制御部６４は、ワークフローサーバ３０が備える処理実行部６１、リモート通信部６３およびフロー制御部６４と同様の機能および構成を有する。ただし、複合機２０内のフロー制御部６４は、ワークフロー情報をリモート通信部６３を介して、ワークフローサーバ３０から取得する。
【００４３】
また、複合機２０内の処理実行部６１は、ワークフローサーバ３０の処理実行部６１とは、実行可能な処理の内容が異なっていてもよい。すなわち、複合機２０の処理実行部６１は、ワークフローサーバ３０の処理実行部６１と異なる種類のプラグインプログラムが登録されていてもよい。
【００４４】
複合機２０内のリモート通信部６３は、ワークフローサーバ３０からネットワーク４０を介して、ワークフロー情報等を含む処理実行指示であるジョブを受信する。複合機２０内のジョブ記憶部６５は、受信したジョブを一時的に格納する。複合機２０内のジョブ取得部６６は、複合機２０内の処理実行部６１のリソースの空き状況に応じてジョブ記憶部６５に記憶されているジョブを取得し、取得したジョブをフロー制御部６４に渡す。複合機２０内のフロー制御部６４は、ジョブ取得部６６から渡されたジョブに含まれるワークフロー情報に従って、処理の実行を制御する。
【００４５】
実行場所判定部６７は、ワークフロー情報に定義された処理を、ワークフローサーバ３０で実行すべきか、複合機２０で実行すべきかを判定する。実行場所判定部６７は、ワークフロー情報に定義された処理をワークフローサーバ３０で実行すべきであると判定した場合には、対象データおよびワークフロー情報をリモート通信部６３を介してワークフローサーバ３０に送信させる。
【００４６】
機能実行部６８は、複合機２０が備える特有の機能を実行する。機能実行部６８は、一例として、スキャン部８１と、プリント部８２と、ファクシミリ部８３と、表示入力部８４とを有する。
【００４７】
スキャン部８１は、原稿台にセットされた用紙をスキャンして画像データを取得する。プリント部８２は、用紙に画像等を印刷する。ファクシミリ部８３は、電話回線を介してファクシミリの送信または受信をする。表示入力部８４は、ユーザに対して情報を表示し、また、ユーザからの操作情報を入力する。
【００４８】
機能制御部６９は、機能実行部６８により実行される機能を制御する。機能制御部６９は、ワークフロー情報に機能実行部６８により実行される処理が定義されている場合には、フロー制御部６４からの呼び出しに応じて機能実行部６８に処理を実行させる。
【００４９】
図４は、ワークフロー情報に含まれる設定情報の一例を示す図である。ワークフロー情報には、例えば、図４に示されるような情報が記述される。
【００５０】
図４に示すワークフロー情報には、“＜ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”および“＜／ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”のタグが記述される。このタグ内には、“ｔｒｕｅ”または“ｆａｌｓｅ”が記述される。ｔｒｕｅの場合、定義している複数の処理の中に、ワークフローサーバ３０が実行すべき処理が含まれることを示す。また、ｆａｌｓｅの場合、定義している複数の処理の中に、ワークフローサーバ３０が実行すべき処理が含まれないことを示す。
【００５１】
図５は、ワークフローの実行のシーケンスを示す図である。複合機２０およびワークフローサーバ３０は、ワークフローを実行する場合、例えば、図５に示すようなシーケンスで処理を進める。
【００５２】
まず、ステップＳ１１において、ユーザは、複合機２０に対してスキャン開始を指示する。スキャン開始の指示を受けると、続いて、ステップＳ１２において、複合機２０は、スキャン処理を実行して、用紙をスキャンして画像データ（対象データ）を取得する。
【００５３】
なお、本例では、複合機２０を用いる例を説明しているが、他の機器によるデータの取得処理であってもよい。例えば、撮像装置が静止画像データまたは動画像データを取得する処理であってもよい。また、例えば、クライアント端末２１がメールを受信する処理であってもよいし、記録媒体からデータを読み出す処理であってもよい。また、電子黒板が、手書きで記載された情報を読み取る処理であってもよい。
【００５４】
続いて、ステップＳ１３において、複合機２０は、ワークフローサーバ３０に対して、ワークフローの選択画面の取得要求を送信する。続いて、ステップＳ１４において、ワークフローサーバ３０は、ワークフローの選択画面を複合機２０に送信する。続いて、ステップＳ１５において、複合機２０は、取得したワークフローの選択画面を表示する。
【００５５】
続いて、ステップＳ１６において、ユーザは、複合機２０に対してワークフローの選択操作をする。選択操作がされると、続いて、ステップＳ１７において、複合機２０は、ユーザにより選択されたワークフローに対応するワークフロー情報の取得要求を、ワークフローサーバ３０に送信する。続いて、ステップＳ１８において、ワークフローサーバ３０は、対応するワークフロー情報を複合機２０に送信する。
【００５６】
続いて、ステップＳ１９において、ユーザは、複合機２０に対してワークフローの実行開始の指示を与える。実行開始の指示を受けると、ステップＳ２０において、複合機２０は、ワークフロー情報を解析する。具体的には、複合機２０は、図４に示す“＜ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”および“＜／ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”のタグ内の情報を解析する。そして、ステップＳ２１において、複合機２０は、ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を含むか否かを判定する。
【００５７】
複合機２０は、ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を含むと判定した場合、ワークフローサーバ３０により処理を実行させる。ワークフローサーバ３０が処理を実行する場合、ステップＳ２２において、複合機２０は、対象データおよびワークフロー情報を、ワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、対象データおよびワークフロー情報を受信する。続いて、ステップＳ２３−１、…、ステップＳ２３−Ｎにおいて、ワークフローサーバ３０は、ワークフロー情報により定義されている複数の処理を順次に実行する。
【００５８】
また、複合機２０は、ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を含まないと判定した場合、自身が処理を実行する。複合機２０が処理を実行する場合には、複合機２０は、対象データ等をワークフローサーバ３０に送信しない。そして、ステップＳ２４−１、…、ステップＳ２４−Ｎにおいて、複合機２０は、ワークフロー情報により定義されている複数の処理を順次に実行する。
【００５９】
図６は、最初に実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。図５で示したシーケンスを実行する場合、複合機２０およびワークフローサーバ３０は、図６に示すフローを実行する。
【００６０】
まず、ステップＳ１０１において、複合機２０は、ワークフローの選択画面を表示する。続いて、ステップＳ１０２において、複合機２０は、選択画面に対する操作を受け付けて、実行すべきワークフローを選択する。
【００６１】
続いて、ステップＳ１０３において、複合機２０は、選択されたワークフロー情報をワークフローサーバ３０から取得する。続いて、ステップＳ１０４において、複合機２０は、ユーザからの操作に応じて、ワークフローの実行を開始する。
【００６２】
ワークフローの実行を開始すると、まず、ステップＳ１０５において、複合機２０は、ワークフロー情報を解析する。続いて、ステップＳ１０６において、複合機２０は、解析結果に基づき、ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を含むか否かを判定する。
【００６３】
ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を含まない場合（ステップＳ１０６のＮｏ）、複合機２０は、フローをステップＳ１０７に進める。ステップＳ１０７において、複合機２０は、ワークフロー情報により定義された複数の処理の全てを、順次に実行する。そして、複合機２０は、終端の処理まで実行すると、本フローを終了する。
【００６４】
ワークフロー情報により定義された複数の処理に、ワークフローサーバ３０が実行すべき処理を１つでも含む場合（ステップＳ１０６のＹｅｓ）、複合機２０は、フローをステップＳ１０８に進める。ステップＳ１０８において、複合機２０は、対象データおよびワークフロー情報を、ワークフローサーバ３０に送信する。続いて、ステップＳ１０９において、ワークフローサーバ３０は、受信した対象データおよびワークフロー情報に基づき、ワークフロー情報により定義されている複数の処理の全てを順次に実行する。そして、ワークフローサーバ３０は、終端の処理まで実行すると、本フローを終了する。
【００６５】
以上のように、複合機２０は、ワークフロー情報に定義された複数の処理の実行前に、ワークフローサーバ３０が実行すべき処理を含むかを判断し、ワークフローサーバ３０が実行すべき処理を含む場合には、対象データをワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、ワークフロー情報に定義された複数の処理を最初から実行する。これにより、情報処理システム１０によれば、ワークフローサーバ３０が実行すべき処理を、ワークフローサーバ３０に実行させることができる。
【００６６】
図７は、ワークフロー情報に含まれる処理毎の設定情報（プラグイン情報）の一例を示す図である。ワークフロー情報には、定義している複数の処理のそれぞれについて、例えば、図７に示されるような設定情報が記述される。
【００６７】
図７に示すワークフロー情報には、“＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグが記述される。このタグ内には、１つの処理（プラグイン）に対して設定される情報が記述される。
【００６８】
また、“＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグ内には、“＜ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”および“＜／ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”のタグが記述される。このタグ内には、“ｔｒｕｅ”または“ｆａｌｓｅ”が記述される。ｔｒｕｅの場合、対応する処理が、ワークフローサーバ３０が実行すべき処理であることを示す。また、ｆａｌｓｅの場合、対応する処理が、ワークフローサーバ３０が実行すべき処理ではないこと（ワークフローサーバ３０が実行しても他の機器が実行してもよいこと）を示す。
【００６９】
図８は、処理毎に実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。複合機２０およびワークフローサーバ３０は、ワークフロー情報に、図７に示されるような、複数の処理のそれぞれについてワークフローサーバ３０が実行すべき処理であるかが記述されている場合には、図８に示すフローチャートを実行する。
【００７０】
まず、ステップＳ２０１からステップＳ２０４までにおいて、複合機２０は、図６のステップＳ１０１からステップＳ１０４までと同様の処理を実行する。
【００７１】
ワークフローの実行を開始すると、ステップＳ２０５において、複合機２０は、ワークフロー情報を参照して、最初の処理の設定情報（プラグイン情報）を解析する。具体的には、複合機２０は、図７に示す、対応する処理の＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグ内における、“＜ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”および“＜／ｉｓＳｅｒｖｅｒＲｅｑｕｉｒｅｄ＞”のタグ内の情報を解析する。そして、ステップＳ２０６において、複合機２０は、当該処理が、ワークフローサーバ３０が実行すべき処理であるか否かを判定する。
【００７２】
当該処理が、ワークフローサーバ３０が実行すべき処理ではない場合（ステップＳ２０６のＮｏ）、複合機２０は、フローをステップＳ２０７に進める。そして、ステップＳ２０７において、複合機２０は、当該処理を実行する。続いて、ステップＳ２０８において、複合機２０は、当該処理が終端の処理であるか否かを判断する。
【００７３】
終端の処理である場合（ステップＳ２０８のＹｅｓ）、複合機２０は、本フローを終了する。終端の処理ではない場合（ステップＳ２０８のＮｏ）、続いて、ステップＳ２０９において、複合機２０は、ワークフロー情報を参照して、次の処理の設定情報（プラグイン情報）を解析する。そして、ステップＳ２０９を終えると、複合機２０は、フローをステップＳ２０６に戻して、次の処理について、ワークフローサーバ３０が実行すべき処理であるか否かを判定する。
【００７４】
当該処理が、ワークフローサーバ３０が実行すべき処理である場合（ステップＳ２０６のＹｅｓ）、複合機２０は、フローをステップＳ２１０に進める。ステップＳ２１０において、複合機２０は、対象データおよびワークフロー情報を、ワークフローサーバ３０に送信する。ここで、対象データは、直前の処理までを実行して得られたデータである。
【００７５】
続いて、ステップＳ２１１において、ワークフローサーバ３０は、受信した対象データおよびワークフロー情報に基づき、当該処理を含めて以後の処理を順次に実行する。そして、ワークフローサーバ３０は、終端の処理まで実行すると、本フローを終了する。
【００７６】
以上のように、複合機２０は、ワークフロー情報により定義された複数の処理のそれぞれについて、ワークフローサーバ３０が実行すべき処理であるか否かを判断する。そして、全ての処理が、ワークフローサーバ３０が実行すべき処理ではない場合には、複合機２０は、全ての処理を実行する。また、ワークフローサーバ３０が実行すべき処理が存在する場合には、複合機２０は、ワークフローサーバ３０が実行すべき処理の直前までの各処理を実行し、その後に、対象データをワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、ワークフローサーバ３０が実行すべき処理および以後の処理を実行する。これにより、情報処理システム１０によれば、ワークフローサーバ３０が実行すべき処理を、ワークフローサーバ３０に実行させることができる。
【００７７】
なお、ワークフローサーバ３０は、複合機２０から対象データおよびワークフロー情報を受信した後において、ワークフローサーバ３０が実行すべき処理ではない処理を実行する場合には、再度、対象データおよびワークフロー情報を複合機２０に送信してもよい。この場合、複合機２０は、再度、ステップＳ２０６からの処理を繰り返して、以後の処理を実行する。これにより、複合機２０およびワークフローサーバ３０は、処理毎に実行主体を切り替えながら、ワークフロー情報に定義された複数の処理を実行することができる。もっとも、この場合においては、複合機２０およびワークフローサーバ３０は、例えばネットワーク４０のトラフィックが混雑しており、ワークフローの処理時間が長くなる場合には、ワークフローサーバ３０から複合機２０へと対象データ等を戻さずに、ワークフローサーバ３０で処理を完了させる方が好ましい。
【００７８】
図９は、最初にジョブキュー数に基づいて実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。複合機２０およびワークフローサーバ３０は、図９に示すフローを実行してもよい。なお、図９に示すフローは、図６に示すフローと略同一であるので、以下、図６に示すフローとの相違点を除き説明を省略する。
【００７９】
複合機２０は、ステップＳ１０３の後に、ステップＳ３０１のフローを実行する。ステップＳ３０１において、複合機２０は、ワークフローサーバ３０からジョブキュー数を取得する。ジョブキュー数は、ワークフローサーバ３０が保持している、実行が完了していないジョブの数を示す。従って、ジョブキュー数は、値が大きければ、ワークフローサーバ３０の処理負荷が大きいことを示し、小さければ、ワークフローサーバ３０の処理負荷が小さいことを示す。複合機２０は、ステップＳ３０１を終えると、フローをステップＳ１０４に進める。
【００８０】
また、ステップＳ１０５の後に、ステップＳ３０２において、複合機２０は、取得したジョブキュー数が、閾値以下であるか否かを判断する。すなわち、複合機２０は、ワークフローサーバ３０の処理負荷が予め定められた値以下であるか否かを判断する。
【００８１】
取得したジョブキュー数が、閾値以下である場合には（ステップＳ３０２のＹｅｓ）、複合機２０は、フローをステップＳ１０８に進める。取得したジョブキュー数が、閾値以下でない場合（ステップＳ３０２のＮｏ）、複合機２０は、フローをステップＳ１０６に進める。
【００８２】
以上のように、複合機２０は、ワークフローサーバ３０のジョブキュー数が閾値以下である場合には（すなわち、ワークフローサーバ３０の処理負荷が予め定められた値以下である場合には）、取得したデータをワークフローサーバ３０に送信する。これにより、情報処理システム１０によれば、ワークフローサーバ３０が実行すべき処理を含むか否かに関わらず、ワークフローサーバ３０の処理負荷が低い場合には、ワークフローサーバ３０にワークフローを実行させることができる。
【００８３】
図１０は、処理毎にジョブキュー数に基づいて実行主体を判定し、判定した実行主体でワークフローを実行する場合のフロー図である。複合機２０およびワークフローサーバ３０は、図１０に示すフローを実行してもよい。なお、図１０に示すフローは、図８に示すフローと略同一であるので、以下、図８に示すフローとの相違点を除き説明を省略する。
【００８４】
複合機２０は、ステップＳ２０３の後に、ステップＳ４０１のフローを実行する。ステップＳ４０１において、複合機２０は、ワークフローサーバ３０からジョブキュー数を取得する。そして、複合機２０は、ステップＳ４０１を終えると、フローをステップＳ２０４に進める。
【００８５】
また、ステップＳ２０６において、ワークフローサーバ３０が実行すべき処理ではないと判断した場合（ステップＳ２０６のＮｏ）、複合機２０は、フローをステップＳ４０２に進める。ステップＳ４０２において、複合機２０は、取得したジョブキュー数が、閾値以下であるか否かを判断する。すなわち、複合機２０は、ワークフローサーバ３０の処理負荷が予め定められた値以下であるか否かを判断する。
【００８６】
取得したジョブキュー数が、閾値以下である場合には（ステップＳ４０２のＹｅｓ）、複合機２０は、フローをステップＳ２１０に進める。取得したジョブキュー数が、閾値以下でない場合（ステップＳ４０２のＮｏ）、複合機２０は、フローをステップＳ２０７に進める。
【００８７】
以上のように、複合機２０は、複数の処理のそれぞれ毎にワークフローサーバ３０のジョブキュー数が閾値以下であるか否かを判断する。そして、複合機２０は、ワークフローサーバ３０のジョブキュー数が閾値以下である場合には（すなわち、ワークフローサーバ３０の処理負荷が予め定められた値以下である場合には）、取得したデータをワークフローサーバ３０に送信する。また、複合機２０は、ワークフローサーバ３０のジョブキュー数が閾値以下ではない場合には（すなわち、ワークフローサーバ３０の処理負荷が予め定められた値以下ではない場合には）、当該処理を実行する。
【００８８】
これにより、情報処理システム１０によれば、ワークフローサーバ３０が実行すべき処理であるか否かに関わらず、ワークフローサーバ３０の処理負荷が低い場合には、ワークフローサーバ３０に当該処理を実行させることができる。
【００８９】
図１１は、最初に実行主体を判断するフローを実行するか、処理毎に実行主体を判断するフローを実行するかを、ジョブキュー数に基づいて切り替える場合のフロー図である。複合機２０およびワークフローサーバ３０は、図１１に示すフローを実行してもよい。
【００９０】
まず、ステップＳ５０１からステップＳ５０３までにおいて、複合機２０は、図６のステップＳ１０１からステップＳ１０３までと同様の処理を実行する。続いて、ステップＳ５０４において、複合機２０は、ワークフローサーバ３０からジョブキュー数を取得する。
【００９１】
続いて、ステップＳ５０５において、複合機２０は、ユーザからの操作に応じて、ワークフローの実行を開始する。ワークフローの実行を開始すると、ステップＳ５０６において、複合機２０は、取得したジョブキュー数が、閾値以下であるか否かを判断する。すなわち、複合機２０は、ワークフローサーバ３０の処理負荷が予め定められた値以下であるか否かを判断する。
【００９２】
取得したジョブキュー数が、閾値以下である場合には（ステップＳ５０６のＹｅｓ）、複合機２０は、フローをステップＳ５０７に進める。
【００９３】
ステップＳ５０７では、複合機２０およびワークフローサーバ３０は、図６のステップＳ１０５からステップＳ１０９と同様の処理を実行する。すなわち、ステップＳ５０７において、複合機２０およびワークフローサーバ３０は、ワークフロー情報により定義された複数の処理前において、複合機２０またはワークフローサーバ３０の何れを実行主体とするかを判断するフローを実行する。
【００９４】
また、取得したジョブキュー数が、閾値以下ではない場合には（ステップＳ５０６のＮｏ）、複合機２０は、フローをステップＳ５０８に進める。
【００９５】
ステップＳ５０８では、複合機２０およびワークフローサーバ３０は、図８のステップＳ２０５からステップＳ２１１と同様の処理を実行する。すなわち、ステップＳ５０８において、複合機２０およびワークフローサーバ３０は、ワークフロー情報により定義された複数の処理のそれぞれ毎に、複合機２０またはワークフローサーバ３０の何れを実行主体とするかを判断するフローを実行する。
【００９６】
これにより、情報処理システム１０によれば、ワークフローサーバ３０の処理負荷が低い場合には、ワークフローサーバ３０にワークフロー情報により定義された複数の処理を実行させることができる。そして、情報処理システム１０によれば、ワークフローサーバ３０の処理負荷が低くない場合には、ワークフローサーバ３０が実行すべきか否かを、処理毎に判断して、ワークフローサーバ３０が実行すべき場合に、ワークフローサーバ３０に当該処理以降の処理を実行させることができる。
【００９７】
図１２は、ワークフローサーバ３０で実行できない処理を含むワークフローを実行する場合のフロー図である。ワークフロー情報には、例えば、データの取得処理として、スキャン処理、画像撮像処理および音声取得処理等を定義することができる。このような情報取得装置の特有の機能を利用した処理がワークフロー情報に定義されている場合、ワークフローサーバ３０では当該処理を実行することができない。そこで、このような場合には、複合機２０およびワークフローサーバ３０は、図１２に示すフローを実行する。
【００９８】
まず、ステップＳ６０１からステップＳ６０４までにおいて、複合機２０は、図６のステップＳ１０１からステップＳ１０４までと同様の処理を実行する。
【００９９】
ワークフローの実行を開始すると、ステップＳ６０５において、複合機２０は、ワークフロー情報を解析する。続いて、ステップＳ６０６において、複合機２０は、ワークフロー情報の解析結果に基づき、ワークフローサーバ３０で実行できないデータ取得処理が定義されているか否かを判断する。例えば、複合機２０は、スキャン処理が定義されているか否かを判断する。
【０１００】
ワークフローサーバ３０で実行できない処理が定義されている場合には（ステップＳ６０６のＹｅｓ）、複合機２０は、ステップＳ６０７にフローを進める。また、ワークフローサーバ３０で実行できない処理が定義されていない場合には（ステップＳ６０６のＮｏ）、複合機２０は、ステップＳ６０８にフローを進める。
【０１０１】
ステップＳ６０７において、複合機２０は、当該処理（ワークフローサーバ３０で実行できないデータ取得処理）を実行する。ステップＳ６０７を終えると、複合機２０は、フローをステップＳ６０８に進める。
【０１０２】
そして、ステップＳ６０８からステップＳ６１１においては、複合機２０およびワークフローサーバ３０は、図６のステップＳ１０６からステップＳ１０９と同様の処理を実行する。
【０１０３】
これにより、情報処理システム１０によれば、ワークフロー情報の先頭にワークフローサーバ３０により実行できないデータ取得処理が定義されている場合であっても、ワークフロー情報に定義された処理を確実に実行することができる。
【０１０４】
図１３は、変形例に係る情報処理システム１０が備える複合機２０およびワークフローサーバ３０の機能構成を示す図である。
【０１０５】
変形例に係る情報処理システム１０は、図３に示した情報処理システム１０と略同一の機能および構成を有するので、同一の機能ブロックには同一の符号を付けて相違点を除き説明を省略する。
【０１０６】
変形例に係る複合機２０は、保有能力記憶部９１と、能力判定部９２とを、さらに備える。保有能力記憶部９１は、この複合機２０が有するハードウェア的およびソフトウェア的な能力を記憶する。
【０１０７】
例えば、保有能力記憶部９１は、この複合機２０が有するプロセッサのクロックスピード、メモリサイズ、ハードディスクの容量、通信インターフェースのバージョン等を記憶する。また、保有能力記憶部９１は、この複合機２０にインストールされているメソッド、ライブラリまたはプログラム等の内容を記憶する。
【０１０８】
能力判定部９２は、保有能力記憶部９１に記憶されている保有能力が、ワークフロー情報により定義されている複数の処理を実行するために要求される要求能力を満たすか否かを判断する。
【０１０９】
ワークフロー情報により定義されている複数の処理を実行するために要求される要求能力は、ワークフロー情報に記述されている。要求能力は、一例として、処理を実行する装置に対して要求するプロセッサのクロックスピード、メモリサイズ、ハードディスクの容量、通信インターフェースのバージョン等である。また、要求能力は、処理を実行する装置にインストールされているメソッド、ライブラリまたはプログラム等である。
【０１１０】
図１４は、ワークフロー情報に含まれる処理毎の設定情報（プラグイン情報）の一例を示す図である。変形例に係るワークフロー情報には、定義している複数の処理のそれぞれについて、例えば、図１４に示されるような設定情報が記述される。
【０１１１】
図１４に示すワークフロー情報には、“＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグが記述される。このタグ内には、１つの処理（プラグイン）に対して設定される情報が記述される。
【０１１２】
また、“＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグ内には、“＜ＲｅｑｕｉｒｅｄＳｐｅｃ＞”および“＜／ＲｅｑｕｉｒｅｄＳｐｅｃ＞”のタグが記述される。このタグ内には、例えば、当該処理を実行するために装置に要求する、プロセッサのクロックスピード、メモリサイズ、ハードディスクの容量、通信インターフェースのバージョン等が記述される。
【０１１３】
また、“＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグ内には、“＜ＲｅｑｕｉｒｅｄＭｅｔｈｏｄ＞”および“＜／ＲｅｑｕｉｒｅｄＭｅｔｈｏｄ＞”のタグが記述される。このタグ内には、例えば、当該処理を実行するために装置にインストールされていなければならない、メソッド、ライブラリまたはプログラム等が記述される。
【０１１４】
図１５は、装置の保有能力を示す機器情報の一例を示す図である。図１６は、装置の保有能力を示す機器情報の他の例を示す図である。
【０１１５】
保有能力記憶部９１は、一例として、図１５および図１６に示されるような、ＸＭＬ文書で記述された保有能力情報を記憶する。
【０１１６】
図１５および図１６に示すように、保有能力情報には、“＜ＡｖａｉｌａｂｌｅＳｐｅｃ＞”および“＜／ＡｖａｉｌａｂｌｅＳｐｅｃ＞”のタグが記述される。このタグ内には、当該装置が保有しているハードウェアデバイスの能力（例えば、プロセッサのクロックスピード、メモリサイズ、ハードディスクの容量、通信インターフェースのバージョン等）が記述される。
【０１１７】
また、保有能力情報には、“＜ＡｖａｉｌａｂｌｅＭｅｔｈｏｄ＞”および“＜／ＡｖａｉｌａｂｌｅＭｅｔｈｏｄ＞”のタグが記述される。このタグ内には、当該装置にインストールされている、メソッド、ライブラリまたはプログラム等が記述される。
【０１１８】
図１７は、変形例に係る情報処理システム１０において、処理毎に実行主体を判断して、ワークフローを実行する場合のフロー図である。変形例に係る複合機２０およびワークフローサーバ３０は、ワークフローを実行する場合、例えば、図１７に示すフローを実行する。
【０１１９】
まず、ステップＳ７０１において、複合機２０は、ワークフローの選択画面を表示する。続いて、ステップＳ７０２において、複合機２０は、選択画面に対する操作を受け付けて、実行すべきワークフローを選択する。
【０１２０】
続いて、ステップＳ７０３において、複合機２０は、選択されたワークフロー情報をワークフローサーバ３０から取得する。続いて、ステップＳ７０４において、複合機２０は、保有能力情報を取得する。具体的には、図１５および図１６で示したようなＸＭＬ文書を取得する。続いて、ステップＳ７０５において、複合機２０は、ユーザからの操作に応じて、ワークフローの実行を開始する。
【０１２１】
ワークフローの実行を開始すると、ステップＳ７０６において、複合機２０は、ワークフロー情報を参照して、最初の処理の設定情報（プラグイン情報）を解析する。具体的には、複合機２０は、図１４に示す、対応する処理の＜ｐｌｕｇｉｎＩｎｆｏ＞”および“＜／ｐｌｕｇｉｎＩｎｆｏ＞”のタグ内における、“＜ＲｅｑｕｉｒｅｄＳｐｅｃ＞”および“＜／ＲｅｑｕｉｒｅｄＳｐｅｃ＞”のタグ内の情報を解析する。
【０１２２】
続いて、ステップＳ７０７において、複合機２０は、当該装置の保有能力が、当該処理を実行するための要求される能力を満たすか否かを判断する。複合機２０は、当該装置の保有能力が、当該処理を実行するために要求される能力を満たす場合には（ステップＳ７０７のＹｅｓ）、フローをステップＳ７０８に進める。そして、ステップＳ７０８において、複合機２０は、当該処理を実行する。続いて、ステップＳ７０９において、複合機２０は、当該処理が終端の処理であるか否かを判断する。
【０１２３】
終端の処理である場合（ステップＳ７０９のＹｅｓ）、複合機２０は、本フローを終了する。終端の処理ではない場合（ステップＳ７０９のＮｏ）、続いて、ステップＳ７１０において、複合機２０は、ワークフロー情報を参照して、次の処理の設定情報（プラグイン情報）を解析する。そして、ステップＳ７１０を終えると、複合機２０は、フローをステップＳ７０７に戻して、次の処理について、当該装置の保有能力が、当該処理を実行するための要求される能力を満たすか否かを判断する。
【０１２４】
複合機２０は、当該装置の保有能力が、当該処理を実行するために要求される能力を満たさない場合には（ステップＳ７０７のＮｏ）、複合機２０は、フローをステップＳ７１１に進める。ステップＳ７１１において、複合機２０は、対象データおよびワークフロー情報を、ワークフローサーバ３０に送信する。ここで、対象データは、直前の処理までを実行して得られたデータである。
【０１２５】
続いて、ワークフローサーバ３０は、受信した対象データおよびワークフロー情報に基づき、当該処理を含めて以後の処理を順次に実行する。そして、ワークフローサーバ３０は、終端の処理まで実行すると、本フローを終了する。
【０１２６】
以上のように、複合機２０は、ワークフロー情報により定義された複数の処理のそれぞれについて、当該装置の保有能力が当該処理を実行するために要求される能力を満たすか否かを判断する。そして、全ての処理について、保有能力が要求能力を満たす場合には、複合機２０は、全ての処理を実行する。また、保有能力が要求能力を満たさない処理が存在する場合には、複合機２０は、保有能力が要求能力を満たさない処理の直前までの各処理を実行し、その後に、対象データをワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、保有能力が要求能力を満たさない処理および以後の処理を実行する。これにより、情報処理システム１０によれば、保有能力が要求能力を満たさない処理を、ワークフローサーバ３０に実行させることができる。
【０１２７】
図１８は、変形例に係る情報処理システム１０において、最初に実行主体を判断して、ワークフローを実行する場合のフロー図である。ワークフロー情報は、図１４に示すような処理毎（プラグイン毎）の要求能力に代えてまたは処理毎の要求能力に加えて、定義されている複数の処理の全体に対して、当該処理を実行するために装置に要求する要求能力が記述されていてもよい。
【０１２８】
この場合、変形例に係る複合機２０およびワークフローサーバ３０は、ワークフローを実行する場合、図１８に示すフローで処理を進める。
【０１２９】
まず、ステップＳ８０１からステップＳ８０５までにおいて、複合機２０は、図１７のステップＳ７０１からステップＳ７０５までと同様の処理を実行する。
【０１３０】
ワークフローの実行を開始すると、ステップＳ８０６において、複合機２０は、ワークフロー情報を参照して、設定情報を解析する。続いて、ステップＳ８０７において、複合機２０は、解析結果に基づき、当該装置の保有能力が、複数の処理の全てを実行するための要求される能力を満たすか否かを判断する。
【０１３１】
複合機２０は、当該装置の保有能力が、複数の処理の全てを実行するために要求される能力を満たす場合には（ステップＳ８０７のＹｅｓ）、フローをステップＳ８０８に進める。ステップＳ８０８において、複合機２０は、ワークフロー情報により定義された複数の処理の全てを、順次に実行する。そして、複合機２０は、終端の処理まで実行すると、本フローを終了する。
【０１３２】
当該装置の保有能力が、複数の処理の全てを実行するために要求される能力を満たさない場合には（ステップＳ８０７のＮｏ）、複合機２０は、フローをステップＳ８０９に進める。ステップＳ８０９において、複合機２０は、対象データおよびワークフロー情報を、ワークフローサーバ３０に送信する。続いて、ステップＳ８１０において、ワークフローサーバ３０は、受信した対象データおよびワークフロー情報に基づき、ワークフロー情報により定義されている複数の処理の全てを順次に実行する。そして、ワークフローサーバ３０は、終端の処理まで実行すると、本フローを終了する。
【０１３３】
以上のように、複合機２０は、ワークフロー情報に定義された複数の処理の実行前に、当該装置の保有能力が複数の処理の全てを実行するために要求される能力を満たすかを判断し、当該装置の保有能力が複数の処理の全てを実行するために要求される能力を満たさない場合には、対象データをワークフローサーバ３０に送信する。そして、ワークフローサーバ３０は、ワークフロー情報に定義された複数の処理を最初から実行する。これにより、情報処理システム１０によれば、当該装置の保有能力が複数の処理の全てを実行するために要求される能力を満たさない処理を、ワークフローサーバ３０に実行させることができる。
【０１３４】
図１９は、実施形態に係る情報処理システム１０がクラウドシステム５００に適用された場合の構成を示す図である。
【０１３５】
本実施形態の情報処理システム１０は、クラウドシステム５００に適用することもできる。クラウドシステム５００は、一例として、企業内ネットワークシステム５１０と、サービス提供システム５２０とを備える。企業内ネットワークシステム５１０とサービス提供システム５２０とはインターネットを介して接続される。
【０１３６】
企業内ネットワークシステム５１０では、複合機２０およびクライアント端末２１等が、ネットワーク４０を介して接続される。また、企業内ネットワークシステム５１０内の各機器は、ファイアウォール５１１を介して、外部のサーバ等と接続される。従って、複合機２０等は、外部のサーバ等へとアクセスできるが、サーバ等から直接アクセスはされない。
【０１３７】
サービス提供システム５２０は、複数のサービス提供装置５２２を有する。複数のサービス提供装置５２２は、複数台の情報処理装置により構成されていてもよいし、複数の装置が１台の情報処理装置により構成されていてもよい。
【０１３８】
ここで、ある１つのサービス提供装置５２２は、情報処理システム１０におけるワークフローサーバ３０の機能を、企業内ネットワークシステム５１０内の複合機２０等に提供する。
【０１３９】
アクセス制御装置５２１は、企業内ネットワークシステム５１０内の複合機２０等が、サービス提供システム５２０にアクセスするための認証を行う。ここで、サービス提供システム５２０への認証には、例えば企業毎に割り当てられた組織コードと呼ばれるコードが用いられる。企業内ネットワークシステム５１０内の各機器は、アクセス制御装置５２１による認証が成功すると、それぞれのサービス提供装置５２２にアクセスすることができる。
【０１４０】
このようなクラウドシステム５００によれば、ワークフローサーバ３０を企業内ネットワークシステム５１０内に設けなくてもよいので、高価なサーバ等を設置せずにワークフローサーバ３０の機能を実現することができる。
【０１４１】
図２０は、複合機２０のハードウェア構成の一例を示す図である。複合機２０は、一例として、コントローラ１１０と、オペレーションパネル１２５と、ファクシミリコントロールユニット（ＦＣＵ）１２６と、撮像部１２７と、印刷部１２８とを有する。
【０１４２】
コントローラ１１０は、ＣＰＵ１１１（Central  Processing  Unit）と、ＡＳＩＣ１１２（Application  Specific  Integrated  Circuit）と、ＮＢ１１３（ノースブリッジ）と、ＳＢ１１４（サウスブリッジ）と、ＭＥＭ−Ｐ１１５（システムメモリ）と、ＭＥＭ−Ｃ１１６（ローカルメモリ）と、ＨＤＤ１１７（ハードディスクドライブ）と、メモリカードスロット１１８と、ＮＩＣ１１９（ネットワークインタフェースコントローラ）と、ＵＳＢデバイス１２０と、ＩＥＥＥ１３９４デバイス１２１と、セントロニクスデバイス１２２とを有する。
【０１４３】
ＣＰＵ１１１は、種々の情報処理を実行するためのＩＣであり、ＯＳ（Operating  System）またはプラットホーム上で、アプリケーションをプロセス単位で並列的に実行する。ＡＳＩＣ１１２は、画像処理用の半導体デバイスである。ＮＢ１１３は、ＣＰＵ１１１とＡＳＩＣ１１２とを接続するためのブリッジである。ＳＢ１１４は、ＮＢ１１３と周辺機器等とを接続するためのブリッジである。ＡＳＩＣ１１２とＮＢ１１３とは、例えばＡＧＰ（Accelerated  Graphics  Port）を介して接続されている。
【０１４４】
ＭＥＭ−Ｐ１１５は、ＮＢ１１３に接続されたメモリである。ＭＥＭ−Ｃ１１６は、ＡＳＩＣ１１２に接続されたメモリである。ＨＤＤ１１７は、ＡＳＩＣ１１２に接続されたストレージであり、画像データ蓄積、文書データ蓄積、プログラム蓄積、フォントデータ蓄積およびフォームデータ蓄積等を行うために使用される。
【０１４５】
ＨＤＤ１１７には、種々のアプリケーションプログラム（コピープログラム、スキャナプログラム、プリンタプログラム、ファックスプログラム等）が記憶されている。また、ＨＤＤ１１７には、各種のプラグインプログラムが記憶されている。プラグインプログラムは、ワークフロー情報に定義された各種の処理を実行するためのプログラムである。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルである。また、ＨＤＤ１１７には、ワークフロー処理プログラムが記憶されている。ワークフロー処理プログラムは、ワークフロー情報を解析して、必要なプラグインプログラムを呼び出して、ワークフロー情報に応じた処理を実行させるためのプログラムである。
【０１４６】
メモリカードスロット１１８は、ＳＢ１１４に接続され、メモリカード１２４をセット（挿入）するために使用される。メモリカード１２４は、ＵＳＢメモリ等のフラッシュメモリであり、ワークフロー処理プログラムおよびプラグインプログラムを配布するために使用される。また、ワークフロー処理プログラムおよびプラグインプログラムは、所定のサーバから複合機２０にダウンロードすることで配布することもできる。
【０１４７】
ＮＩＣ１１９は、ネットワーク４０等を介してＭＡＣアドレス等を使用したデータ通信を行うためのコントローラである。ＵＳＢデバイス１２０は、ＵＳＢ（Universal  Serial  Bus）規格に準拠したシリアルポートを提供するためのデバイスである。ＩＥＥＥ１３９４デバイス１２１は、ＩＥＥＥ１３９４規格に準拠したシリアルポートを提供するためのデバイスである。セントロニクスデバイス１２２は、セントロニクス仕様に準拠したパラレルポートを提供するためのデバイスである。ＮＩＣ１１９と、ＵＳＢデバイス１２０と、ＩＥＥＥ１３９４デバイス１２１と、セントロニクスデバイス１２２とは、ＰＣＩ（Peripheral  Component  Interconnect）バスを介してＮＢ１１３およびＳＢ１１４に接続されている。
【０１４８】
オペレーションパネル１２５は、ユーザが複合機２０に入力を行うためのハードウェア（操作部）であるとともに、複合機２０がメニュー画面を表示するハードウェア（表示部）である。オペレーションパネル１２５は、ＡＳＩＣ１１２に接続されている。ＦＣＵ１２６と撮像部１２７と印刷部１２８とは、ＰＣＩバスを介してＡＳＩＣ１１２に接続されている。
【０１４９】
撮像部１２７は、コンタクトガラスに載置された原稿を光学的に走査して、その反射光をＡ／Ｄ変換して画像処理を施し、カラーまたはモノクロの画像データを生成する。
【０１５０】
印刷部１２８は、例えばタンデム型の感光ドラムを有し、画像データまたはクライアント端末２１等から受信したＰＤＬ（Page  Description  Language）データに基づきレーザビームを変調し感光ドラムを走査して潜像を形成する。そして、印刷部１２８は、潜像にトナーを付着して現像した１ページ毎の画像を用紙に熱と圧力で転写する。印刷部１２８は、このような電子写真方式のプロッタに限られず、液滴を吐出して画像を形成するインクジェット型のプロッタエンジンでもよい。
【０１５１】
ＦＣＵ１２６は、ＮＩＣ１１９を介してネットワーク４０に接続し例えばＴ．３７，Ｔ．３８の規格に対応した通信手順または公衆通信網に接続し例えばＧ３、Ｇ４規格に対応した通信手順に従い画像データの送受信を行う。また、ＦＣＵ１２６は、複合機２０の電源がＯＦＦのときに画像データを受信しても、印刷部１２８を起動して画像データを用紙に印刷することができる。
【０１５２】
図２１は、ワークフローサーバ３０のハードウェア構成の一例を示す図である。
【０１５３】
ワークフローサーバ３０は、ＣＰＵ３０１と、ＲＯＭ（Read  Only  Memory）３０２と、ＲＡＭ（Random  Access  Memory）３０３と、ＨＤＤ３０４と、ディスプレイ３２０が接続されたグラフィックボード３０５と、入力装置３０６と、メディアドライブ３０７と、ネットワーク通信部３０８とを有する。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、グラフィックボード３０５、入力装置３０６、メディアドライブ３０７、および、ネットワーク通信部３０８は、バスにより接続されている。
【０１５４】
ＣＰＵ３０１は、ＨＤＤ３０４に記憶されたプログラムをＲＡＭ３０３に展開して実行し、各部品を制御して入出力を行ったり、データの加工を行ったりする。ＲＯＭ３０２には、ＢＩＯＳ（Basic  Input／Output  System）およびブートストラップローダをＨＤＤ３０４からＲＡＭ３０３に読み出すスタートプログラムが記憶されている。ブートストラップローダは、ＯＳをＨＤＤ３０４からＲＡＭ３０３に読み出す。
【０１５５】
ＨＤＤ３０４は、不揮発性のメモリであればよくＳＳＤ（Solid  State  Drive）などでもよい。ＨＤＤ３０４は、ＯＳおよびデバイスドライバを記憶している。さらに、ＨＤＤ３０４には、ワークフロー処理プログラムが記憶されている。また、ＨＤＤ３０４には、各種のプラグインプログラムが記憶されている。これらのプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータで読み取り可能な記録メディアに記録して配布される。また、プログラムは、サーバからダウンロードすることにより配布されてもよい。
【０１５６】
ディスプレイ３２０には、プログラムが指示し、グラフィックボード３０５が作成したＧＵＩ画面が表示される。入力装置３０６は、例えば、キーボードまたはマウス等であり、ユーザの操作を受け付ける。メディアドライブ３０７は、コンパクトディスク、ＤＶＤ（Digital  Versatile  Disk）およびブルーレイディスクなどの光学メディアに対してデータを読み書きする。また、メディアドライブ３０７は、フラッシュメモリなどのメモリカードに対してデータを読み書きしてもよい。ネットワーク通信部３０８は、例えばＬＡＮに接続するためのイーサネット（登録商標）カードである。
【０１５７】
以上、本実施の形態の情報処理装置（複合機２０およびワークフローサーバ３０等）は、ＣＰＵなどの制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１５８】
本実施形態の情報処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１５９】
また、本実施形態の情報処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１６０】
本実施の形態の情報処理装置で実行されるプログラムは、上述した各部（処理実行部６１およびフロー制御部６４）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、処理実行部６１およびフロー制御部６４が主記憶装置上に生成されるようになっている。
【符号の説明】
【０１６１】
１０  情報処理システム
２０  複合機
２１  クライアント端末
２２  携帯機器
３０  ワークフローサーバ
３１  データ蓄積装置
３２  中継装置
３３  データ出力装置
４０  ネットワーク
６１  処理実行部
６２  ワークフロー記憶部
６３  リモート通信部
６４  フロー制御部
６５  ジョブ記憶部
６６  ジョブ取得部
６７  実行場所判定部
６８  機能実行部
６９  機能制御部
７１  処理部
８１  スキャン部
８２  プリント部
８３  ファクシミリ部
８４  表示入力部
９１  保有能力記憶部
９２  能力判定部
１１０  コントローラ
１１１  ＣＰＵ
１１２  ＡＳＩＣ
１１３  ＮＢ
１１４  ＳＢ
１１５  ＭＥＭ−Ｐ
１１６  ＭＥＭ−Ｃ
１１７  ＨＤＤ
１１８  メモリカードスロット
１１９  ＮＩＣ
１２０  ＵＳＢデバイス
１２１  ＩＥＥＥ１３９４デバイス
１２２  セントロニクスデバイス
１２４  メモリカード
１２５  オペレーションパネル
１２６  ＦＣＵ
１２７  撮像部
１２８  印刷部
３０１  ＣＰＵ
３０２  ＲＯＭ
３０３  ＲＡＭ
３０４  ＨＤＤ
３０５  グラフィックボード
３０６  入力装置
３０７  メディアドライブ
３０８  ネットワーク通信部
３２０  ディスプレイ
５００  クラウドシステム
５１０  企業内ネットワークシステム
５１１  ファイアウォール
５２０  サービス提供システム
５２１  アクセス制御装置
５２２  サービス提供装置
【先行技術文献】
【特許文献】
【０１６２】
【特許文献１】特開２００８−９７５８６号公報
【図１】
2015061141.tif 000003
【図２】
2015061141.tif 000004
【図３】
2015061141.tif 000005
【図４】
2015061141.tif 000006
【図５】
2015061141.tif 000007
【図６】
2015061141.tif 000008
【図７】
2015061141.tif 000009
【図８】
2015061141.tif 000010
【図９】
2015061141.tif 000011
【図１０】
2015061141.tif 000012
【図１１】
2015061141.tif 000013
【図１２】
2015061141.tif 000014
【図１３】
2015061141.tif 000015
【図１４】
2015061141.tif 000016
【図１５】
2015061141.tif 000017
【図１６】
2015061141.tif 000018
【図１７】
2015061141.tif 000019
【図１８】
2015061141.tif 000020
【図１９】
2015061141.tif 000021
【図２０】
2015061141.tif 000022
【図２１】
2015061141.tif 000023