(57)【要約】【課題】効率的にワークフローを提供することを目的とする。【解決手段】ワークフロー定義ファイルと、インストールされている複数の機能提供手段のうちワークフロー定義ファイルにおいてワークフロー処理に利用される第１の複数の機能提供手段として定義されていない第２の複数の機能提供手段と、に基づいて、第２の複数の機能提供手段をワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する生成手段と、生成手段により生成された実行用のワークフロー定義ファイルに基づきワークフロー処理を実行する実行手段と、を有する。【選択図】図１２
2019040563.tif 000002
【特許請求の範囲】
【請求項１】
ワークフロー定義ファイルと、インストールされている複数の機能提供手段のうち前記ワークフロー定義ファイルにおいてワークフロー処理に利用される第１の複数の機能提供手段として定義されていない第２の複数の機能提供手段と、に基づいて、前記第２の複数の機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する生成手段と、
前記生成手段により生成された前記実行用のワークフロー定義ファイルに基づきワークフロー処理を実行する実行手段と、
を有する情報処理装置。
【請求項２】
前記生成手段は、前記ワークフロー定義ファイルに記載されている前記ワークフロー処理の実行に係る条件と、前記インストールされている複数の機能提供手段のうち前記第２の複数の機能提供手段の入力と、に基づいて、前記第２の複数の機能提供手段のうち、前記ワークフロー処理で利用可能な機能提供手段を選択し、前記選択した機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する請求項１記載の情報処理装置。
【請求項３】
前記生成手段は、前記ワークフロー定義ファイルに記載されている前記ワークフロー処理の実行に係る条件と、前記インストールされている複数の機能提供手段のうち前記第２の複数の機能提供手段の出力と、に基づいて、前記第２の複数の機能提供手段のうち、前記ワークフロー処理で利用可能な機能提供手段を選択し、前記選択した機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する請求項１記載の情報処理装置。
【請求項４】
前記生成手段は、前記ワークフロー定義ファイルに記載されている前記ワークフロー処理の実行に係る条件と、前記インストールされている複数の機能提供手段のうち前記第２の複数の機能提供手段の機能と、に基づいて、前記第２の複数の機能提供手段のうち、前記ワークフロー処理で利用可能な機能提供手段を選択し、前記選択した機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する請求項１記載の情報処理装置。
【請求項５】
前記生成手段は、前記ワークフロー定義ファイルと、前記インストールされている複数の機能提供手段のうち前記第２の複数の機能提供手段の用途と、に基づいて、前記第２の複数の機能提供手段のうち、前記ワークフロー処理で利用可能な機能提供手段を選択し、前記選択した機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する請求項１記載の情報処理装置。
【請求項６】
前記生成手段は、前記ワークフロー定義ファイルをインストールする際に、前記ワークフロー定義ファイルと、前記第２の複数の機能提供手段と、に基づいて、前記第２の複数の機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記実行手段は、前記実行用のワークフロー定義ファイルに基づきワークフロー処理を実行する際に、前記第２の複数の機能提供手段を利用する場合、前記第２の複数の機能提供手段のうちから１の機能提供手段を選択させる画面を操作部に表示する請求項１乃至６何れか１項記載の情報処理装置。
【請求項８】
前記実行手段は、前記第２の複数の機能提供手段うち、前記画面を介して選択された機能提供手段を利用して処理を実行する請求項７記載の情報処理装置。
【請求項９】
前記情報処理装置は、画像形成装置である請求項１乃至８何れか１項記載の情報処理装置。
【請求項１０】
情報処理装置が実行する情報処理方法であって、
ワークフロー定義ファイルと、インストールされている複数の機能提供手段のうち前記ワークフロー定義ファイルにおいてワークフロー処理に利用される第１の複数の機能提供手段として定義されていない第２の複数の機能提供手段と、に基づいて、前記第２の複数の機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する生成工程と、
前記生成工程により生成された前記実行用のワークフロー定義ファイルに基づきワークフロー処理を実行する実行工程と、
を含む情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至９何れか１項記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能（以下、拡張機能）は、機能ソフトウェアプログラム（以下、拡張ソフト）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のＭＥＡＰ（登録商標）等があげられる。
また、ユーザが選択した拡張ソフトを外部のＰＣ等からダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている（特許文献１）。
特にある目的に応じて、特定の入力から出力を行うように作られた拡張ソフトは、アプリケーションソフトウェア（以下、アプリ）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで入力から出力までの一連の処理（以下、ワークフロー）を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
また、ワークフローを定義する手段として、定義を示した情報が用いられ、実行装置においてそれらワークフローの定義に基づいた処理が実施される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−３５７１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術のように、拡張ソフト、又はサービスの処理を組み合わせたワークフローを定義した情報を用いて、画像形成装置上の複数の機能を連結するよう構成されている。
予め汎用的なワークフローが定義された情報を、ユーザの用途、環境に合わせて編集することで、よりユーザの用途に合ったワークフローを実現することが可能である。
しかし、ワークフローの編集を行うためには、ワークフロー全体の知識、又は編集するための手段を利用する必要があり、編集する手間が生じるという課題があった。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、ワークフロー定義ファイルと、インストールされている複数の機能提供手段のうち前記ワークフロー定義ファイルにおいてワークフロー処理に利用される第１の複数の機能提供手段として定義されていない第２の複数の機能提供手段と、に基づいて、前記第２の複数の機能提供手段を前記ワークフロー処理で利用可能とする実行用のワークフロー定義ファイルを生成する生成手段と、前記生成手段により生成された前記実行用のワークフロー定義ファイルに基づきワークフロー処理を実行する実行手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、効率的にワークフローを提供することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理システムのシステム構成の一例を示す図である。
【図２】ＭＦＰのハードウェア構成の一例を示す図である。
【図３】ＰＣのハードウェア構成の一例を示す図である。
【図４】ＭＦＰのソフトウェア構成の一例を示す図である。
【図５】機能プロバイダのソフトウェア構成の一例を示す図である。
【図６Ａ】機能プロバイダ情報テーブルの一例を示す図である。
【図６Ｂ】機能プロバイダＩ／Ｆ情報テーブルの一例を示す図である。
【図７】ワークフロー定義ファイルのより具体的な一例を示す図である。
【図８】インストールに係る情報処理の一例を示すフローチャートである。
【図９】ワークフローを実行するための画面の一例を示す図である。
【図１０】実行用ワークフロー定義ファイルのより具体的な一例を示す図である。
【図１１】拡張機能を選択するための画面の一例を示す図である。
【図１２】Ｓ８０３の情報処理の一例を示すフローチャートである。
【図１３】ワークフローの実行の流れの一例を示したシーケンス図である。
【図１４Ａ】Ｓ１３１４の詳細を示すシーケンス図である。
【図１４Ｂ】Ｓ１３１４の詳細を示すシーケンス図である。
【図１４Ｃ】Ｓ１３１４の詳細を示すシーケンス図である。
【図１５】ワークフロー定義ファイルのより具体的な一例を示す図である。
【図１６】実行用ワークフロー定義ファイルのより具体的な一例を示す図である。
【図１７】ワークフロー定義ファイルのより具体的な一例を示す図である。
【図１８】機能プロバイダ情報テーブルの詳細を示す図である。
【図１９】実行用ワークフロー定義ファイルのより具体的な一例を示す図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面に基づいて説明する。
【０００９】
＜実施形態１＞
図１は、情報処理システムのシステム構成の一例を示す図である。情報処理システムは、ＬＡＮ１１０を介して接続されるＭＦＰ１０１と、ＰＣ１０２とを含む。ＬＡＮ１１０上の装置は相互に通信可能である。ＭＦＰ１０１は、情報処理装置の一例である。
ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、ＭＦＰ１０１は、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。ＰＣ１０２は、ＭＦＰ１０１に対して、設定や拡張ソフトの追加、削除、又はワークフローを定義したワークフロー定義ファイルの追加、削除等を行うためのＰＣである。また、ＬＡＮ１１０は、ＷＡＮ等の外部ネットワークとも接続されていてもよい。
【００１０】
図２は、ＭＦＰ１０１のハードウェア構成の一例を示す図である。ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶されたプログラムを読み出して読取制御や送信制御等の各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボード等が備えられている。
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
ＣＰＵ２１１がＲＯＭ２１２又はＨＤＤ２１４に記憶されたプログラムに基づき処理を実行することによって後述する図４、図５に示す機能及び後述する図８（ａ）、図８（ｂ）、図１２、図１３、図１４Ａ〜図１４Ｃの処理が実現される。ＲＯＭ２１２又はＨＤＤ２１４は、記録媒体の一例である。
【００１１】
図３は、ＰＣ１０２のハードウェア構成の一例を示す図である。ＣＰＵ３１１を含む制御部３１０は、ＰＣ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶されたプログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
ネットワークＩ／Ｆ３１７は、制御部３１０（ＰＣ１０２）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
ＣＰＵ３１１がＲＯＭ３１２又はＨＤＤ３１４に記憶されたプログラムに基づき処理を実行することによってＰＣ１０２の機能等が実現される。
【００１２】
図４は、ＭＦＰのソフトウェア構成の一例を示す図である。
拡張ソフト管理部４１０は、ＭＦＰ１０１上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図４では、拡張ソフトとして４１１〜４１９の９つの拡張ソフトが機能プロバイダとしてＭＦＰ１０１にインストールされている。
機能プロバイダは、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは、入力なら入力、出力なら出力といった特定の機能を提供する拡張ソフトを示すものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
例えば、「スキャンしてプレビュー表示の後、ＰＤＦを生成して送信する」という機能をユーザに提供する場合、アプリであれば「スキャン」、「プレビュー」、「ドキュメント生成」、「送信」の４つの機能を１つのアプリで実現する。一方、機能プロバイダの場合、「スキャン機能を実現する機能プロバイダ」、「プレビュー機能を実現する機能プロバイダ」、「ドキュメント生成機能を実現する機能プロバイダ」、「送信機能を実現する機能プロバイダ」の４つの機能プロバイダが必要になる。更に、それら４つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部４３０が必要になる。機能プロバイダは、機能提供手段の一例である。
【００１３】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。一方、機能プロバイダは、メニュー画面ではなく、後述する機能プロバイダ管理部４２０に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２０経由でワークフロー処理部４３０の指示によって呼び出される。
更に、機能プロバイダは、機能プロバイダ管理部４２０が規定するルール（以下、機能プロバイダインターフェース）を満たすようにプログラミングされている。機能プロバイダインターフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインターフェースである。機能プロバイダインターフェースは、機能プロバイダが提供する機能の種類（以下、機能タイプ）ごとに定められている。機能プロバイダは、機能プロバイダインターフェースに基づいてワークフロー処理部４３０から呼び出される。
１つの機能プロバイダは目的に応じて、複数種類のインターフェースを持つ場合がある。例えば、スキャン機能を実現する機能プロバイダであれば、「スキャン設定画面の表示」の目的のためと「スキャンジョブの実行」の目的のためといったように、目的別に複数種類のインターフェースを用意することができる。
また、複数種類の機能プロバイダをＭＦＰ１０１にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類、ＭＦＰ１０１にインストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類、ＭＦＰ１０１にインストールしてもよい。同じ機能タイプの機能プロバイダは同じ機能プロバイダインターフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
【００１４】
標準スキャンプロバイダ４１１は、スキャン機能を提供する機能プロバイダ（機能タイプ＝Ｓｃａｎ）である。機能タイプが「Ｓｃａｎ」の機能プロバイダを総称してスキャンプロバイダと呼ぶ。スキャンプロバイダは、機能タイプが「Ｓｃａｎ」の機能プロバイダのために定義された機能プロバイダインターフェース（スキャンプロバイダインターフェース）を実現する。標準スキャンプロバイダ４１１は、一般的なユーザ向けのスキャン設定画面を持つ。
簡単ファイル名付けプロバイダ４１２は、ファイル名の情報を生成する機能を提供する機能プロバイダ（機能タイプ＝Ｐｒｏｐｅｒｔｙ）である。機能タイプが「Ｐｒｏｐｅｒｔｙ」の機能プロバイダを総称してプロパティプロバイダと呼び、プロパティプロバイダインターフェースを実現する。
画像編集プロバイダ４１３は、画像編集機能を提供する機能プロバイダ（機能タイプ＝ＩＭＡＧＥ＿ＥＤＩＴ）である。機能タイプが「ＩＭＡＧＥ＿ＥＤＩＴ」の機能プロバイダを総称して画像編集プロバイダと呼び、画像編集プロバイダインターフェースを実現する。
ＳＭＢ送信プロバイダ４１４は、ＳＭＢプロトコルによる送信機能を提供する機能プロバイダ（機能タイプ＝ＳＥＮＤ）である。機能タイプが「ＳＥＮＤ」の機能プロバイダを総称して送信プロバイダと呼び、送信プロバイダインターフェースを実現する。
Ｅ−ｍａｉｌ送信プロバイダ４１５は、Ｅ−ｍａｉｌ送信機能を提供する機能プロバイダ（機能タイプ＝ＳＥＮＤ）であり、ＳＭＢ送信プロバイダ４１４と同様に送信プロバイダである。
【００１５】
プレビュープロバイダ４１６は、プレビュー機能を提供する機能プロバイダ（機能タイプ＝Ｐｒｅｖｉｅｗ）である。機能タイプが「Ｐｒｅｖｉｅｗ」の機能プロバイダを総称してプレビュープロバイダと呼び、プレビュープロバイダインターフェースを実現する。
アドレス帳プロバイダ４１７は、送信アドレスの情報を提供する機能プロバイダ（機能タイプ＝Ｐｒｏｐｅｒｔｙ）である。
画像編集プロバイダ４１８は、画像編集機能を提供するプロバイダ（機能タイプ＝ＩＭＡＧＥ＿ＥＤＩＴ）である。画像編集プロバイダ４１８は、画像編集プロバイダ４１３とは同タイプであるが、提供する機能が異なる。
文書生成プロバイダ４１９は、文書生成の機能を提供する機能プロバイダ（機能タイプ＝Ｄｏｃｕｍｅｎｔ＿Ｅｄｉｔ）である。機能タイプが「Ｄｏｃｕｍｅｎｔ＿Ｅｄｉｔ」の機能プロバイダを総称して文書生成プロバイダと呼び、文書生成プロバイダインターフェースを実現する。
以上で説明した４１１〜４１９の９つの機能プロバイダは一例であり、ＭＦＰ１０１には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
【００１６】
機能プロバイダ管理部４２０は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２０は、機能プロバイダ登録部４２１、機能プロバイダ検索部４２２、機能プロバイダ情報テーブル４２３、及び機能プロバイダＩ／Ｆ情報テーブル４２４を持つ。
機能プロバイダ登録部４２１は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル４２３に、各機能プロバイダの機能タイプや設定可能な値等の情報を登録する。各機能プロバイダはＭＦＰにインストールされ実行状態になったときに機能プロバイダ登録部４２１に対して自身の登録を行う。
機能プロバイダ検索部４２２は、後述するワークフロー処理部４３０から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル４２３の情報をもとに機能プロバイダを特定する。機能プロバイダ検索部４２２は、検索結果として機能プロバイダを１つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダの機能、入力、出力に関する情報等、機能プロバイダに関する情報を保持する。
機能プロバイダＩ／Ｆ情報テーブル４２４は、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース等、機能プロバイダインターフェースに関する情報を保持する。
【００１７】
ワークフロー処理部４３０は、後述するワークフロー定義ファイル４４１、４４２に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。
ワークフロー実行状態管理部４３１は、実行中のワークフローに関する情報を保持する。例えば、ワークフロー実行状態管理部４３１は、各機能プロバイダからの処理結果等を保持し、機能プロバイダを組み合わせて実行する際に、処理結果から必要な情報を取得し、入力値を生成する。
【００１８】
ワークフロー管理部４４０は、ワークフロー定義ファイルの管理を実施する。より具体的には、ワークフロー管理部４４０は、ワークフロー定義ファイルのインストール、アンインストールを、ＰＣ１０２を介してユーザから受け付け、管理する。
ワークフロー定義ファイル４４１は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値等、機能プロバイダの呼び出しに関する情報を定義する。
ワークフロー定義ファイル４４２は、ワークフロー定義ファイル４４１と定義内容が異なるものである。
実行用ワークフロー定義ファイル４４３は、機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値等、機能プロバイダの呼び出しに関する情報を定義するもので、ワークフロー処理部によって実行される。
実行用ワークフロー定義ファイル４４４は、実行用ワークフロー定義ファイル４４３と定義内容が異なるものである。本実施形態では、ワークフロー定義ファイル４４１に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル４４３である。また、ワークフロー定義ファイル４４２に対応した実行用ワークフロー定義ファイルが実行用ワークフロー定義ファイル４４４とする。
図４ではワークフロー定義ファイルの例を複数定義しているが、数を限定するものではない。
【００１９】
図５は、機能プロバイダのソフトウェア構成の一例を示す図である。
ファイル５００は、機能プロバイダを構成する一連のファイルをまとめたファイルである。このファイル５００はＭＦＰ１０１がＰＣ１０２より受信する。そして、拡張ソフト管理部４１０がファイル５００をＨＤＤ２１４に記憶することで機能プロバイダがインストールされる。
機能プロバイダ情報ファイル５０１は、機能プロバイダの情報が定義されたファイルであり、機能プロバイダの名称、機能、設定情報等が含まれる。
インストール情報５０２は、機能プロバイダのバージョン等の情報が含まれる。
実行モジュール５０３は、機能プロバイダを実行するためのオブジェクトコード等が含まれる。
ファイル５１０に、機能プロバイダ情報ファイル５０１の詳細を示す。本実施形態では、機能プロバイダ情報ファイル５０１には、ＸＭＬの形式で機能プロバイダの情報が記述される。Ｆｕｎｃｔｉｏｎ  Ｐｒｏｖｉｄｅｒタグは、機能プロバイダの情報が内部に含まれることを示す。ＮＡＭＥタグは、機能プロバイダの名称である。ＴＹＰＥタグは、機能プロバイダのタイプである。ＦＵＮＣＴＩＯＮタグは、機能プロバイダの持つ機能を示し、ＣＯＬＯＲ、Ｒｅｓｏｌｕｔｉｏｎ等といったそれぞれの機能に関連したタグに、機能プロバイダの持つ機能が定義される。Ｍｅｔｈｏｄタグは、機能プロバイダの持つＩ／Ｆ、その入力、出力に関する情報が定義される。
機能プロバイダは、タイプ毎に定義されたＩ／Ｆを実現するが、個々の機能プロバイダによって詳細な出力情報が異なり、この情報には個々の機能プロバイダが実装している具体的な情報が定義される。
Ｍｅｔｈｏｄタグは、Ｉ／Ｆの数に応じて複数定義される。Ｓｐｅｃｉｆｉｃタグは、機能プロバイダが特殊な目的で実行されるものであり、汎用性を持たない場合に利用されることを示す。ＥＸＴタグは、拡張機能として利用可能であるＩ／Ｆの組み合わせを示す。
図５（ｂ）の例では、ＮＯＲＭＡＬ＿ＳＣＡＮという名称のスキャンプロバイダであり、機能がカラー、解像度、画質、等が定義されている。また、２つのＩ／Ｆが実装されており、それぞれの入出力に関する情報が記載されている。更に、特殊な用途での機能プロバイダではなく、汎用的に利用できるものであることが定義されている。また、拡張機能として利用される場合は、ｓｈｏｗＳｅｔｔｉｎｇＵＩ及びｄｏＳｃａｎの２つのＩ／Ｆを組み合わせて利用されることが定義されている。
【００２０】
図６Ａ及び６Ｂは、機能プロバイダ情報テーブル及び機能プロバイダＩ／Ｆ情報テーブルの一例を示す図である。
図６Ａに、機能プロバイダ情報テーブル４２３の詳細を示す。機能プロバイダ情報テーブル４２３は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ、機能プロバイダインターフェース、機能プロバイダのもつ機能、特殊な機能プロバイダか否かの情報、更に各機能プロバイダの持つＩ／Ｆと入力、出力の具体的な情報、更に拡張機能として各Ｉ／Ｆが利用可能か否かの情報が含まれる。
機能プロバイダ情報テーブル４２３に登録されている「拡張」情報は、拡張機能として利用する場合に必要となるＩ／Ｆの組み合わせを示す。「拡張」がＹとなっているＩ／Ｆの組み合わせは、本実施形態における拡張機能として取り扱うことが可能となる。「拡張」情報がＮとなっている場合は、拡張機能として取り扱うことができないため、予めワークフロー定義に記載されている場合のみ利用することが可能となる。
【００２１】
図６Ｂに、機能プロバイダＩ／Ｆ情報テーブル４２４の詳細を示す。機能プロバイダＩ／Ｆ情報テーブル４２４は、機能プロバイダの機能タイプ、機能タイプの名称、機能プロバイダインターフェース、設定インターフェース、実行インターフェース等、機能プロバイダインターフェースに関する情報を保持する。設定インターフェースは、機能プロバイダの持つ設定画面を呼び出すための機能プロバイダインターフェースである。実行インターフェースは、機能プロバイダのもつ実行処理を呼び出すための機能プロバイダインターフェースである。それぞれのインターフェースには、Ｉｎｐｕｔ、及びＯｕｔｐｕｔに関する情報が定義される。インプットとして必須ではない情報については（Ｏｐｔ）属性が定義され、機能プロバイダの実行に際し、その情報の入力を省略することが可能である。
拡張ソフト管理部４１０は、機能プロバイダのインストール時に、ファイル５１０の機能プロバイダ情報ファイルに定義された情報から、機能プロバイダＩ／Ｆ情報テーブルに定義されたＩ／Ｆを備えているか否かを判定する。機能プロバイダＩ／Ｆ情報テーブルに定義されたＩ／Ｆを備えていないと判定された場合はインストールエラーとなる。
また、機能プロバイダＩ／Ｆ情報テーブルでは、Ｉｎｐｕｔ／Ｏｕｔｐｕｔに関する情報が定義されているが、機能プロバイダ情報テーブルには、個々の機能プロバイダが実装する詳細なＩｎｐｕｔ／Ｏｕｔｐｕｔの情報が定義される。
例えば、プロパティ機能プロバイダのＯｕｔｐｕｔにはＳｅｔｔｉｎｇが定義されている。しかし、簡単ファイル名付け機能プロバイダは、／Ｓｅｔｔｉｎｇ／ＤｏｃｕｍｅｎｔＳｅｔｔｉｎｇ／ＦｉｌｅＮａｍｅが定義されており、この簡単ファイル名付け機能プロバイダの出力は、ドキュメント生成機能プロバイダの入力値に利用できることが示される。
【００２２】
図７は、実施形態１のワークフロー定義ファイルのより具体的な一例を示す図である。図７では、ワークフロー定義ファイル４４１を例に説明する。本実施形態ではワークフロー定義ファイルはＸＭＬ形式のファイルとして表現されているが、ＸＭＬ形式に限定されるものではなく、他の形式のファイルであってもよい。
Ｗｏｒｋｆｌｏｗタグ７０１は、以下の記述がワークフローの定義であることを示している。
ＦＰタグ７０２は、Ｗｏｒｋｆｌｏｗタグ７０１の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。ＦＰタグ７０２のｎｏ属性は、ワークフローにおける機能プロバイダの実行順を定義しており、「ｎｏ＝"１"」は最初に実行する機能プロバイダであることを示している。ＦＰタグ７０２のｔｙｐｅ属性は、実行する機能プロバイダの機能タイプを定義しており、「ｔｙｐｅ＝"ＳＣＡＮ"」はスキャンプロバイダであることを示している。
Ｃｏｎｄｉｔｉｏｎタグ７０３は、ＦＰタグ７０２の子要素で、スキャンプロバイダの実行条件を定義するためのものである。
Ａｃｔｉｏｎタグ７０４は、ＦＰタグ７０２の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグのｎｏ属性とｍｅｔｈｏｄ属性とは、ＦＰタグで定義された機能プロバイダの中での実行順と呼び出すインターフェースを定義している。Ａｃｔｉｏｎタグ７０４は、スキャンプロバイダの実行において「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を１番目に呼び出す旨を定義している。
Ａｃｔｉｏｎタグ７０５は、ＦＰタグ７０２の子要素であり、スキャンプロバイダの実行において「ｄｏＳｃａｎ」を２番目に呼び出す旨を定義している。Ａｃｔｉｏｎタグ７０５は、呼び出す際の設定であるＰａｒａｍｅｔｅｒタグや、入力を定義するＩｎｐｕｔタグ、更に「ｄｏＳｃａｎ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを含む。
入力及び出力の双方又は何れか一方は、ワークフロー定義ファイルに記載されているワークフロー処理の実行に係る条件の一例である。
【００２３】
ＦＰ７０６タグは、ｎｏ属性とｔｙｐｅ属性とで、２番目に実行する機能プロバイダがドキュメント生成プロバイダであることを定義している。子要素はＦＰタグ７０２と同様の構成である。
ＦＰ７０７タグは、ｎｏ属性とｉｄ属性とで、３番目に実行する機能プロバイダがＥ−ｍａｉｌ送信プロバイダであることを定義している。
ＦＰ７０８タグは、Ｆｕｎｃｔｉｏｎ属性で、機能プロバイダの持つ機能を指定するための情報である。図７の定義ファイルでは、Ｅ−ｍａｉｌ送信の機能を持つ送信プロバイダを利用することが示されている。
【００２４】
図８は、ワークフロー定義ファイル４４１及び機能プロバイダのインストールに係る情報処理の一例を示すフローチャートである。ユーザがＰＣ１０２を介して、ＬＡＮ１１０に接続されたＭＦＰ１０１に対して、ワークフロー定義ファイル又は機能プロバイダをインストールする。図８（ａ）は、ワークフロー定義ファイルのインストールフローを示し、図８（ｂ）は、機能プロバイダのインストールフローを示す。
ＭＦＰ１０１がワークフロー定義ファイルを受信した場合に図８（ａ）のフローチャートの処理が開始される。インストールの詳細な処理についてはワークフロー管理部４４０によって制御されるが、インストールにおけるＵＩ、また手順については説明の簡略化のため省略する。
Ｓ８０１において、ワークフロー管理部４４０は、ＬＡＮ１１０を介して、ＰＣ１０２からワークフロー定義ファイルを、ネットワークＩ／Ｆ２１８を経由して受信する。
Ｓ８０２は、ワークフロー管理部４４０は、Ｓ８０１で受信したワークフロー定義ファイルを、ＨＤＤ２１４に記憶する。
Ｓ８０３は、ワークフロー管理部４４０は、Ｓ８０２にて記憶されたワークフロー定義に対して、拡張機能の利用の可否を判定し、実行用ワークフロー定義ファイルを生成する。
そして、ワークフロー管理部４４０は、図８（ａ）に示すフローチャートの処理を終了する。
【００２５】
ＭＦＰ１０１が機能プロバイダを受信した場合に図８（ｂ）のフローチャートの処理が開始される。インストールの詳細な処理については拡張ソフト管理部４１０によって制御されるが、インストールにおけるＵＩ、また手順については説明の簡略化のため省略する。
Ｓ８１１において、拡張ソフト管理部４１０は、ＬＡＮ１１０を介して、ＰＣ１０２から図５で示した機能プロバイダのファイルを、ネットワークＩ／Ｆ２１８を経由して受信する。更に、拡張ソフト管理部４１０は、受信したファイルをＨＤＤ２１４に記憶する。
Ｓ８１２において、拡張ソフト管理部４１０は、Ｓ８１１でＨＤＤ２１４に記憶した機能プロバイダを開始する。
Ｓ８１３において、機能プロバイダが開始されると、各機能プロバイダは、機能プロバイダ情報ファイル５０１の内容を機能プロバイダ登録部４２１に登録する。
Ｓ８１４において、ワークフロー管理部４４０は、機能プロバイダが開始されたことを検知し、実行用ワークフロー定義を更新する。
【００２６】
図９は、ワークフローを実行するための、ＭＦＰの操作部２１９に表示されるＵＩ（画面）の一例を示す図である。ボタン９０１は、実行用ワークフロー定義ファイル４４３に定義されたワークフローを実行するためのボタンである。ボタン９０２は、実行用ワークフロー定義ファイル４４４に定義されたワークフローを実行するためのボタンである。ユーザによって各ボタンが選択されることにより、ワークフロー処理部４３０により各ワークフローが実行される。本実施形態では、ボタン９０２に関する詳細な説明は省略する。
【００２７】
図１０は、実施形態１の実行用ワークフロー定義ファイルのより具体的な一例を示す図である。図１０では、ワークフロー定義ファイル４４１の記述を基に生成された実行用ワークフロー定義ファイル４４３を例に説明する。
実行用ワークフロー定義ファイル４４３は、Ｓ８０３の処理において生成される。
タグ１００１は、ＳＥＬＥＣＴタグであり、実行する機能プロバイダを選択するためのＵＩを表示することを示し、ＳＥＬＥＣＴタグ内に定義されたｎｏ属性は、ＦＰタグのｎｏ属性同様に、ワークフローにおける実行順を示す。
また、ＳＥＬＥＣＴタグ内に定義されたＦＰタグは、拡張機能として利用可能な機能を示し、定義された機能プロバイダが選択肢として表示される。表示のＵＩの例は図１１に示す。
ワークフロー定義ファイル４４１では、「スキャン」、「ドキュメント生成」、「Ｅ−ｍａｉｌ送信」の機能プロバイダを順次実行するような構成である。実行用ワークフロー定義ファイル４４３では、「スキャン」の実行後に選択肢を表示し、選択肢として「プレビュー」、「画像編集」、「簡単ファイル名付け」の各機能プロバイダの実行が可能であること示す。更に、実行用ワークフロー定義ファイル４４３では、ドキュメントを生成した後に、「アドレス帳」を利用するか否かの選択肢が表示され、最終的にＥ−ｍａｉｌ送信が実行されることを示す。
【００２８】
図１１は、拡張機能を選択するためのＵＩの一例を示す図である。図１１に示すＵＩは、図１０に示された実行用ワークフロー定義ファイルのＳＥＬＥＣＴタグの実行時に表示されるＵＩであり、ワークフロー処理部４３０によってＭＦＰ１０１の操作部２１９に表示される。図１１に示すＵＩより、ＳＥＬＥＣＴタグ内に定義された機能プロバイダを選択することができ、選択された機能がワークフロー処理部４３０によって実行される。
【００２９】
図１２は、Ｓ８０３の情報処理の一例を示すフローチャートである。
図１２では、ワークフロー定義ファイル４４１に対応した実行用ワークフロー定義ファイル４４３の生成を例に説明する。
Ｓ１２０１において、ワークフロー管理部４４０は、ワークフロー定義ファイル４４１を読み込む。
Ｓ１２０２において、ワークフロー管理部４４０は、図６Ａの機能プロバイダ情報テーブル４２３を取得する。
Ｓ１２０３において、ワークフロー管理部４４０は、ワークフロー定義ファイル４４１に定義される各ＦＰタグの情報を処理として抽出する。
Ｓ１２０４において、ワークフロー管理部４４０は、Ｓ１２０３にて抽出した処理に対応した機能プロバイダを、機能プロバイダの情報テーブルから特定する。ワークフロー定義ファイル４４１には、Ｓｃａｎ、ＤｏｃｕｍｅｎｔＥｄｉｔ、Ｓｅｎｄの３つのタイプの機能プロバイダが定義されており、それぞれのタイプに該当する機能プロバイダがＮＯＲＭＡＬＳＣＡＮ、ＤＯＣＵＭＥＮＴ＿ＥＤＩＴ、ＳＥＮＤと抽出される。更に、ＳＥＮＤについてはＦｕｎｃｔｉｏｎの定義がＥｍａｉｌとなっているため、ＴＲＡＮＳＦＯＲＭ＝Ｅｍａｉｌの機能を持つＳＥＮＤ＿ＥＭＡＩＬの機能プロバイダが特定される。
【００３０】
Ｓ１２０５において、ワークフロー管理部４４０は、利用されない機能プロバイダがインストールされているか否かを判定する。本実施形態の例では、「ＮＯＲＭＡＬ＿ＳＣＡＮ」、「ＤＯＣＵＭＥＮＴ＿ＥＤＩＴ」、「ＳＥＮＤ＿ＥＭＡＩＬ」の他に複数の機能プロバイダがインストールされているため、ワークフロー管理部４４０は、Ｓ１２０６に遷移する。インストールされているすべての機能プロバイダが利用される場合、ワークフロー管理部４４０は、利用する機能プロバイダに関する情報を実行用ワークフロー定義に反映し、図１２に示すフローチャートの処理を終了する。
Ｓ１２０６は、機能の追加を解析し、ワークフロー定義を編集するためのループ処理の開始端である。ワークフロー管理部４４０は、ワークフロー定義ファイル４４１に定義されるＦＰタグすべての機能について、実行後に機能の追加が可能か否かを解析し、すべてのＦＰタグに対する解析が終了した場合、本ループを終了する。
【００３１】
以下、説明のためにソース機能とターゲット機能とを定義する。ソース機能とは、ワークフロー定義ファイル４４１に定義されるＦＰタグに定義される機能である。解析のために抽出された１つのＦＰタグである。ターゲット機能とは、機能プロバイダ情報テーブルに登録されている、インストールされている機能プロバイダから抽出した機能であり、ワークフロー定義に追加される対象となる機能である。
本ループ処理は、１つのループが１つのソース機能に対しての一連の処理であり、ワークフロー管理部４４０は、フロー定義のＦＰタグに定義されている機能の数繰り返し処理を行う。全ての機能について解析が実行された場合、ワークフロー管理部４４０は、本ループ処理を終了する。
本実施形態の例では、ソース機能として「Ｓｃａｎ」、「ＤｏｃｕｍｅｎｔＥｄｉｔ」、「Ｓｅｎｄ」が抽出される。また、ターゲット機能として「ＦＩＬＥＮＡＭＥ＿ＥＤＩＴ」、「ＩＭＡＧＥ＿ＥＤＩＴ」、「ＢＡＳＩＣ＿ＰＲＥＶＩＥＷ」、「ＡＤＤＲＥＳＳＢＯＯＫ」、「ＥＭＡＧＥ＿ＥＤＩＴ＿ＳＴＡＭＰ」が抽出される。
Ｓ１２０７において、ワークフロー管理部４４０は、Ｓ１２０５にて判定された、「利用されない機能プロバイダ」の１つをターゲット機能として抽出する。
Ｓ１２０８において、ワークフロー管理部４４０は、特殊な用途の機能プロバイダか否かを判定する。より具体的には、ワークフロー管理部４４０は、ターゲット機能が、特殊な用途の機能プロバイダか否かを機能プロバイダ情報テーブルの特殊属性を取得することによって判定する。本実施形態の例では、ターゲット機能がＥＭＡＧＥ＿ＥＤＩＴの場合、ワークフロー管理部４４０は、特殊な用途の機能プロバイダであると判定し、ターゲット機能から除外する。ワークフロー管理部４４０は、特殊な用途の機能プロバイダであると判定すると、Ｓ１２１６に遷移し、特殊な用途の機能プロバイダでないと判定すると、Ｓ１２０９に遷移する。
【００３２】
Ｓ１２０９において、ワークフロー管理部４４０は、ソース機能のＯｕｔｐｕｔが、ターゲット機能のＩｎｐｕｔに一致するか否かを判定する。ワークフロー管理部４４０は、ターゲット機能のＩｎｐｕｔは、機能プロバイダ情報テーブルに登録されているＩ／Ｆから、拡張フラグがＹになっているものを対象とする。
本実施形態では、ワークフロー管理部４４０は、ソース機能が「Ｓｃａｎ」の解析ループにおいて、「Ｓｃａｎ」のＯｕｔｐｕｔであるＩｍａｇｅを、Ｉｎｐｕｔとして扱う機能プロバイダかどうかを判定する。ワークフロー管理部４４０は、ターゲット機能が「ＦＩＬＥＮＡＭＥ＿ＥＤＩＴ」の場合、ＩｎｐｕｔにＩｍａｇｅをとるため条件に一致すると判定し、Ｓ１２１１に遷移する。一方、ワークフロー管理部４４０は、ＡＤＤＲＥＳＳＢＯＯＫがターゲット機能である場合、ＩｎｐｕｔにＩｍａｇｅをとらないため条件に一致しないと判定し、Ｓ１２１０に遷移する。
Ｓ１２１０において、ワークフロー管理部４４０は、ソース機能のＩｎｐｕｔが、ターゲット機能のＯｕｔｐｕｔに一致するか否かを判定する。ワークフロー管理部４４０は、Ｓ１２１０と同様に、ソース機能のＩｎｐｕｔと、ターゲット機能のＯｕｔｐｕｔとが一致するか否かを判定する。ワークフロー管理部４４０は、ターゲット機能のＯｕｔｐｕｔは、機能プロバイダ情報テーブルに登録されているＩ／Ｆから、拡張フラグがＹになっているものを対象とする。
本実施形態では、ソース機能が「Ｓｅｎｄ」であり、ターゲット機能が「ＡＤＤＲＥＳＳＢＯＯＫ」の場合に条件を満たす。
ワークフロー管理部４４０は、条件を満たさないと判定した場合、該当の機能をターゲット機能から除外し、Ｓ１２１６の未解析の機能プロバイダが存在するか否かを判定する処理に遷移する。また、ワークフロー管理部４４０は、条件を満たすと判定した場合、Ｓ１２１２に遷移する。
【００３３】
Ｓ１２１１において、ワークフロー管理部４４０は、ターゲット機能の追加箇所を特定する。Ｓ１２１１では、ワークフロー管理部４４０は、ソース機能の直後をターゲット機能の追加箇所と特定する。
Ｓ１２１２において、ワークフロー管理部４４０は、ターゲット機能の追加箇所を特定する。Ｓ１２１２では、ワークフロー管理部４４０は、ソース機能の直前をターゲット機能の追加箇所と特定する。
Ｓ１２１３において、ワークフロー管理部４４０は、Ｃｏｎｄｉｔｉｏｎタグに情報が定義されているか否かを判定する。ワークフロー管理部４４０は、Ｃｏｎｄｉｔｉｏｎタグに情報が定義されている場合はＳ１２１４へ遷移し、Ｃｏｎｄｉｔｉｏｎタグに情報が定義されていない場合はＳ１２１５へ遷移する。
【００３４】
Ｓ１２１４において、Ｃｏｎｄｉｔｉｏｎタグに定義されている情報が、ターゲット機能のＯｕｔｐｕｔに定義されているか、又はＦｕｎｃｔｉｏｎタグに定義されているものと一致するか否かを判定する。ワークフロー管理部４４０は、Ｃｏｎｄｉｔｉｏｎタグに定義されている情報が、ターゲット機能のＯｕｔｐｕｔに定義されているか、又はＦｕｎｃｔｉｏｎタグに定義されているものと一致すると判定すると、Ｓ１２１６に遷移する。一方、ワークフロー管理部４４０は、Ｃｏｎｄｉｔｉｏｎタグに定義されている情報が、ターゲット機能のＯｕｔｐｕｔに定義されているか、又はＦｕｎｃｔｉｏｎタグに定義されているものと一致しないと判定すると、Ｓ１２１５に遷移する。
例えば、ＦＩＬＥＮＡＭＥ＿ＥＤＩＴのｄｏＰｒｏｐｅｒｔｙのＯｕｔｐｕｔがＳｅｔｔｉｎｇ／ＤｏｃｕｍｅｎｔＳｅｔｔｉｎｇ／Ｆｉｌｅｎａｍｅと定義されている場合で、かつ、ワークフロー定義のＣｏｎｄｉｔｉｏｎにも同属性が定義されている場合は、ファイル名がワークフローで定義されているものであり、機能プロバイダによる変更を禁止するものである。そのため、ターゲット機能による変更は実施できない。この場合、ワークフロー管理部４４０は、該当の機能をターゲット機能から除外し、Ｓ１２１５の未解析の機能プロバイダが存在するか否かを判定する処理に遷移する。
Ｓ１２１５において、ワークフロー管理部４４０は、ワークフロー定義にＳＥＬＥＣＴタグを挿入し、かつ、ターゲット処理の実行を追加する。より具体的に説明すると、ワークフロー管理部４４０は、Ｓ１２１１、又はＳ１２１２にて特定した位置に、ＳＥＬＥＣＴタグを挿入し、かつ、ＳＥＬＥＣＴタグ内にターゲット処理の実行情報を追加する。本実施形態の例では、ＦＩＬＥＮＡＭＥ＿ＥＤＩＴ、ＰＲＥＶＩＥＷ、ＩＭＡＧＥ＿ＥＤＩＴがＳｃａｎの後にＳＥＬＥＣＴタグと共に挿入され、かつ、ＡＤＤＲＥＳＳＢＯＯＫがＳｅｎｄの前にＳＥＬＥＣＴタグと共に挿入される。
【００３５】
Ｓ１２１６において、ワークフロー管理部４４０は、未解析のターゲット機能が存在するか否かを判定する。ワークフロー管理部４４０は、機能プロバイダ情報テーブルに登録されている機能プロバイダの中で、未解析なものが存在する場合、ターゲット機能を未解析なものに切り替えて、再び、Ｓ１２０８の判定の処理を行う。また、ワークフロー管理部４４０は、ソース機能に対して、すべての機能プロバイダの解析及びワークフロー定義の書き換えが完了した場合、Ｓ１２１７に遷移する。
Ｓ１２１７は、ループ終了端であるが、ワークフロー管理部４４０は、未解析のソース機能が存在する場合、未解析のソース機能の１つをソース機能として選択し、再度、Ｓ１２０６のループ開始端から処理を行う。
ワークフロー管理部４４０は、全てのソース機能、及びターゲット機能の解析が終了した場合、図１２のフローチャートの処理にて書き換えたフロー定義を、実行用ワークフロー定義ファイルとしてＨＤＤ２１４に記憶し、図１２のフローチャートの処理を終了する。
【００３６】
以上の処理を行うことによって、ワークフロー定義ファイル４４１から、実行用ワークフロー定義ファイル４４３が生成される。
また、ワークフロー定義ファイル４４１に定義されていない、かつ、ＭＦＰ１０１にインストールされている機能プロバイダを拡張機能として利用可能にしたワークフローが実現可能となる。
【００３７】
図１３は、ワークフローの実行の流れの一例を示したシーケンス図である。実行用ワークフロー定義ファイル４４３には図１０で説明した内容が記述されているものとして、以下の処理の説明を行う。
Ｓ１３０１において、ワークフロー処理部４３０は、ユーザからのワークフロー実行指示を、受け取る。
Ｓ１３０２において、ワークフロー処理部４３０は、実行指示に対応する実行用ワークフロー定義ファイル４４３を読み込む。
Ｓ１３０３において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、実行用ワークフロー定義ファイル４４３に記載されている機能プロバイダの検索を指示する。実行用ワークフロー定義ファイル４４３には、機能プロバイダＩＤが「ＮＯＲＭＡＬ＿ＳＣＡＮ」、「ＦＩＬＥＮＡＭＥ＿ＥＤＩＴ」、「ＩＭＡＧＥ＿ＥＤＩＴ」、「ＢＡＳＩＣ＿ＰＲＥＶＩＥＷ」、「ＡＤＤＲＥＳＳＢＯＯＫ」、「ＤＯＣＵＭＥＮＴ＿ＥＤＩＴ」、「ＳＥＮＤ＿ＥＭＡＩＬ」が定義されている。そのため、ワークフロー処理部４３０は、その条件を指定して機能プロバイダの検索を指示する。
Ｓ１３０４において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２３を基に検索条件に一致する機能プロバイダを抽出する。本実施形態の例では、機能プロバイダ管理部４２０は、標準スキャンプロバイダ４１１、簡単ファイル名付けプロバイダ４１２、画像編集プロバイダ４１３、プレビュープロバイダ４１６、アドレス帳プロバイダ４１７、文書生成プロバイダ４１９、Ｅ−ｍａｉｌ送信プロバイダ４１５を抽出する。
Ｓ１３０５において、機能プロバイダ管理部４２０は、機能プロバイダの検索結果をワークフロー処理部４３０に通知する。
【００３８】
Ｓ１３０６において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）に従って、標準スキャンプロバイダ４１１の設定インターフェースを呼び出す。
Ｓ１３０７において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン設定画面を表示する。
Ｓ１３０８において、標準スキャンプロバイダ４１１は、スキャン設定の結果をワークフロー処理部４３０に通知する。
Ｓ１３０９において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、標準スキャンプロバイダ４１１の実行インターフェースを呼び出す。
Ｓ１３１０において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた標準スキャンプロバイダ４１１は、指示に従ってスキャン処理を実行する。
Ｓ１３１１において、標準スキャンプロバイダ４１１は、スキャン処理の結果をワークフロー処理部４３０に通知する。
【００３９】
Ｓ１３１２において、ワークフロー処理部４３０は、ワークフロー定義に従って、図１１に示した拡張機能の選択を行うためのＵＩをＭＦＰ１０１の操作部２１９に表示する。選択肢には、ＳＥＬＥＣＴタグ内に定義された「簡単ファイル名付け」、「プレビュー」、「画像編集」の３つの機能が表示される。
Ｓ１３１３において、ワークフロー処理部４３０は、拡張機能が選択されたか否かを判定する。ワークフロー処理部４３０は、ユーザによって拡張機能の実行が選択され、ＯＫが選択された場合にはＳ１３１４に遷移する。また、ワークフロー処理部４３０は、拡張機能の実行が選択されず、Ｃａｎｃｅｌボタンが選択された場合にはＳ１３１５に遷移する。
Ｓ１３１４の各処理については、図１４Ａ〜１４Ｃにて説明を行う。
【００４０】
Ｓ１３１５において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順（Ａｃｔｉｏｎタグのｎｏ属性）に従って、文書生成プロバイダ４１９の実行インターフェースを呼び出す。
Ｓ１３１６において、文書生成プロバイダ４１９は、ワークフロー定義に定義された機能に従い、文書生成処理を実行する。
Ｓ１３１７において、文書生成プロバイダ４１９は、文書生成の結果をワークフロー処理部４３０に通知する。
Ｓ１３１８において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１５の設定インターフェースを呼び出す。
Ｓ１３１９において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１５は、指示に従って送信設定画面を表示する。
Ｓ１３２０において、Ｅ−ｍａｉｌ送信プロバイダ４１５は、送信設定の結果をワークフロー処理部４３０に通知する。
【００４１】
Ｓ１３２１において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、Ｅ−ｍａｉｌ送信プロバイダ４１５の実行インターフェースを呼び出す。
Ｓ１３２２において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたＥ−ｍａｉｌ送信プロバイダ４１５は、指示に従って送信処理を実行する。
Ｓ１３２３において、Ｅ−ｍａｉｌ送信プロバイダ４１５は、送信処理の結果をワークフロー処理部４３０に通知する。
以上のように、複数の機能プロバイダが組み合わされて一連の処理が実行される。
【００４２】
図１４は、ワークフローの実行の情報処理の一例を示したシーケンス図であり、図１３のＳ１３１４の詳細を示すシーケンス図である。
図１４ＡのＳ１４０１からＳ１４０５までの情報処理は、Ｓ１３１３にて、拡張機能として「簡単ファイル名付け」の実行が選択された場合の情報処理の一例を示すシーケンスである。
Ｓ１４０１において、ワークフロー処理部４３０は、ユーザ操作に基づいて、簡単ファイル名付けの実行の選択を受け付ける。
Ｓ１４０２において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、簡単ファイル名付けプロバイダ４１２の実行インターフェースを呼び出す。
Ｓ１４０３において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた簡単ファイル名付けプロバイダ４１２は、指示に従って簡単ファイル名付けを行うための画面を表示し、ファイル名を生成する。
Ｓ１４０４において、簡単ファイル名付けプロバイダ４１２は、ファイル名生成の結果をワークフロー処理部４３０に通知する。
Ｓ１４０５において、ワークフロー処理部４３０は、ユーザに他の拡張機能を実行するか否かの選択を受けるために、再びＳ１３１２で表示した画面と同様の画面をＭＦＰ１０１の操作部２１９に表示し、Ｓ１３１２の状態となる。
【００４３】
図１４ＢのＳ１４１１からＳ１４１５までの情報処理は、Ｓ１３１３にて、拡張機能として「プレビュー」の実行が選択された場合の情報処理の一例を示すシーケンスである。
Ｓ１４１１において、ワークフロー処理部４３０は、ユーザ操作に基づいて、プレビューの実行の選択を受け付ける。
Ｓ１４１２において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、プレビュープロバイダ４１６の実行インターフェースを呼び出す。
Ｓ１４１３において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けたプレビュープロバイダ４１６は、プレビュー画面を表示する。
Ｓ１４１４において、プレビュープロバイダ４１６は、プレビューが終了したことをワークフロー処理部４３０に通知する。
Ｓ１４１５において、ワークフロー処理部４３０は、ユーザに他の拡張機能を実行するか否かの選択を受けるために、再びＳ１３１２で表示した画面と同様の画面をＭＦＰ１０１の操作部２１９に表示し、Ｓ１３１２の状態となる。
【００４４】
図１４ＣのＳ１４２１からＳ１４２８までの処理は、Ｓ１３１３にて、拡張機能として「画像編集」の実行が選択された場合の情報処理の一例を示すシーケンスである。
Ｓ１４２１において、ワークフロー処理部４３０は、ユーザ操作に基づいて、画像編集の実行の選択を受け付ける。
Ｓ１４２２において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、画像編集プロバイダ４１３の設定インターフェースを呼び出す。
Ｓ１４２３において、ワークフロー処理部４３０から設定インターフェースの呼び出しを受けた画像編集プロバイダ４１３は、画像編集の設定画面を表示する。
Ｓ１４２４において、画像編集プロバイダ４１３は、画像編集の設定結果をワークフロー処理部４３０に通知する。
Ｓ１４２５において、ワークフロー処理部４３０は、実行用ワークフロー定義ファイル４４３に定義されている呼び出し順に従って、画像編集プロバイダ４１３の実行インターフェースを呼び出す。
Ｓ１４２６において、ワークフロー処理部４３０から実行インターフェースの呼び出しを受けた画像編集プロバイダ４１３は、画像編集を実行する。
Ｓ１４２７において、画像編集プロバイダ４１３は、画像編集の結果をワークフロー処理部４３０に通知する。
Ｓ１４２８において、ワークフロー処理部４３０は、ユーザに他の拡張機能を実行するか否かの選択を受けるために、再びＳ１３１２で表示した画面と同様の画面をＭＦＰ１０１の操作部２１９に表示し、Ｓ１３１２の状態となる。
以上において、拡張機能の選択からそれぞれの拡張機能の実行が実現される。
【００４５】
＜実施形態２＞
実施形態１においては、ワークフロー定義の入出力情報に基づいた拡張機能の実行可否を行い、ワークフロー定義ファイルから実行用ワークフロー定義ファイルの生成、及び実行フローを説明した。実施形態２として、ワークフロー定義に所定の情報が定義され、かつ、所定の情報が機能プロバイダの出力と一致している場合のワークフロー定義ファイル、判定方法、及び実行用ワークフロー定義ファイルを説明する。
【００４６】
図１５は、実施形態２のワークフロー定義ファイルのより具体的な一例を示す図である。
図１５のワークフロー定義ファイルは、図７で説明したワークフロー定義ファイルに対して、Ｃｏｎｄｉｔｉｏｎタグ内に情報が追加され、かつ、パラメーターが予め指定されている。
Ｐａｒａｍｅｔｅｒタグ１５０１は、Ｓｅｔｔｉｎｇ／Ｄｏｃｕｍｅｎｔ／Ｆｉｌｅｎａｍｅに、日付情報を設定することが指定されている。その他の記述は、図７で説明したワークフロー定義ファイルと同様である。Ｐａｒａｍｅｔｅｒタグ１５０１の機能プロバイダの持つ機能は、ワークフロー定義ファイルに記載されているワークフロー処理の実行に係る条件の一例である。
【００４７】
図１６は、実施形態２の実行用ワークフロー定義ファイルのより具体的な一例を示す図である。図１６では、図１５に示したワークフロー定義ファイルの記述を基に作成された実行用ワークフロー定義ファイル４４３を例に説明する。図１２に示した実行用ワークフロー定義ファイルの生成に係る情報処理のフローチャートにおいて、ターゲット機能がＦＩＬＥＮＡＭＥ＿ＥＤＩＴ、ソース機能がＳＣＡＮの状態で、Ｓ１２１４の処理が実行される。
Ｃｏｎｄｉｔｉｏｎタグがワークフロー定義ファイルに定義されており、かつ、ＦＩＬＥＮＡＭＥ＿ＥＤＩＴのＯｕｔｐｕｔにＳｅｔｔｉｎｇ／Ｄｏｃｕｍｅｎｔ／Ｆｉｌｅｎａｍｅが存在する。そのため、Ｓ１２１４において、ワークフロー管理部４４０は、本ステップの条件をＹＥＳと判定する。したがって、ターゲット機能は抽出されない。
よって、実行用ワークフロー定義ファイルにはＦＩＬＥＮＡＭＥ＿ＥＤＩＴが記述されず、拡張機能として実行されない。
【００４８】
＜実施形態３＞
実施形態１においては、ワークフロー定義の入出力情報に基づいた拡張機能の実行可否を行い、ワークフロー定義ファイルから実行用ワークフロー定義ファイルの生成、及び実行フローを説明した。更に、実施形態２として、ワークフロー定義に所定の情報が定義され、かつ、所定の情報が機能プロバイダの出力と一致している場合のワークフロー定義ファイル、判定方法、及び実行用ワークフロー定義ファイルを説明した。
実施形態３では、ワークフロー定義ファイルに、機能に関する制限情報が定義され、かつ、機能プロバイダがその機能を備えている場合のワークフロー定義ファイル、判定方法、及び実行用ワークフロー定義ファイルを説明する。
【００４９】
図１７は、実施形態３のワークフロー定義ファイルのより具体的な一例を示す図である。
図１７のワークフロー定義ファイルは、図７で説明したワークフロー定義ファイルに対して、Ｃｏｎｄｉｔｉｏｎタグ内に情報が追加され、かつ、Ｆｕｎｃｔｉｏｎが予め指定されている。
Ｆｕｎｃｔｉｏｎタグ１７０１は、機能を示すｉｄにＩｍａｇｅＥｄｉｔ／Ｔｒｉｍ、Ｖａｌｕｅにｆａｌｓｅが指定されている。これは、ＩｍａｇｅＥｄｉｔタイプの機能プロバイダを実行する場合、Ｔｒｉｍ機能を利用できないことを意味する。その他の記述は、図７で説明したワークフロー定義ファイルと同様である。
図１８は、実施形態３の機能プロバイダ情報テーブル４２３の詳細を示す図である。図１８の機能プロバイダ情報テーブル４２３の例では、ＩＭＡＧＥ＿ＥＤＩＴの機能がＴｒｉｍとなっており、Ｔｒｉｍ専用の画像編集プロバイダであることが示されている。
【００５０】
図１９は、実施形態３の実行用ワークフロー定義ファイルのより具体的な一例を示す図である。図１９では、図１７に示したワークフロー定義ファイルの記述を基に作成された実行用ワークフロー定義ファイル４４３を例に説明する。本実施形態の例においては、機能プロバイダ情報テーブル４２３が図１８の構成になっている。
図１２に示した実行用ワークフロー定義ファイルの生成に係る情報処理のフローチャートにおいて、ターゲット機能がＩＭＡＧＥ＿ＥＤＩＴ、ソース機能がＳＣＡＮの状態で、Ｓ１２１４の処理が実行される。
Ｃｏｎｄｉｔｉｏｎタグがワークフロー定義ファイルに定義されており、かつ、ＩＭＡＧＥ＿ＥＤＩＴのＦｕｎｃｔｉｏｎにＴｒｉｍが存在する。そのため、Ｓ１２１４において、ワークフロー管理部４４０は、本ステップの条件をＹＥＳと判定する。したがって、ターゲット機能は抽出されない。
よって、実行用ワークフロー定義ファイルにはＩＭＡＧＥ＿ＥＤＩＴが記述されず、拡張機能として実行されない。
【００５１】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５２】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、ＰＣ１０２やＭＦＰ１０１のハードウェア構成として、ＣＰＵは複数存在してもよく、複数のＣＰＵが各装置のＨＤＤ等に記憶されているプログラムに基づき処理を実行するようにしてもよい。また、ＰＣ１０２やＭＦＰ１０１のハードウェア構成として、ＣＰＵに替えてＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いることとしてもよい。
【００５３】
以上、予め定義されたワークフロー定義情報に従って拡張ソフトである機能プロバイダを複数組み合わせ、一連のワークフロー処理を実現する。更に、インストールされている拡張ソフトに応じて、ワークフローに対して拡張機能の実行の可否を判定し、拡張機能の実行が可能だと判定された場合には、ワークフローの定義情報をシステムが自動的に書き換え、拡張機能の実行を可能とする例を説明した。
上述した実施形態では、ワークフローを構成するものとして、ワークフロー処理部４３０が、機能プロバイダを呼び出す構成で説明したが、拡張ソフトであるアプリがワークフロー処理部４３０の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。
上述した各実施形態によれば、ワークフローの一部の処理の追加を、ワークフロー定義を手動で編集することなく実施することができる。よって、効率的にワークフローを提供することができる。
【符号の説明】
【００５４】
１０１  ＭＦＰ
２１１  ＣＰＵ
２１２  ＲＯＭ
２１４  ＨＤＤ
【図１】
2019040563.tif 000003
【図２】
2019040563.tif 000004
【図３】
2019040563.tif 000005
【図４】
2019040563.tif 000006
【図５】
2019040563.tif 000007
【図６Ａ】
2019040563.tif 000008
【図６Ｂ】
2019040563.tif 000009
【図７】
2019040563.tif 000010
【図８】
2019040563.tif 000011
【図９】
2019040563.tif 000012
【図１０】
2019040563.tif 000013
【図１１】
2019040563.tif 000014
【図１２】
2019040563.tif 000015
【図１３】
2019040563.tif 000016
【図１４Ａ】
2019040563.tif 000017
【図１４Ｂ】
2019040563.tif 000018
【図１４Ｃ】
2019040563.tif 000019
【図１５】
2019040563.tif 000020
【図１６】
2019040563.tif 000021
【図１７】
2019040563.tif 000022
【図１８】
2019040563.tif 000023
【図１９】
2019040563.tif 000024