(57)【要約】【課題】  複数の機能プロバイダを連携させて特定の処理を実行させる際に、いずれかの機能プロバイダの構成が変更されても、変更前の機能プロバイダに設定されたお気に入り設定値を利用した処理を実行する。【解決手段】    所定のワークフロー定義ファイルに従い複数の機能プロバイダを連携して特定の処理を実行する情報処理装置において、それぞれの機能プロバイダに対してユーザが設定したお気に入り設定を機能プロバイダＩＤと、機能プロバイダの種別と、ユーザＩＤとを対応づけたお気に入り設定として記憶手段に登録する。そして、所定のワークフロー定義ファイルを読み込むことに応じて、前記所定のワークフローに記述された実行すべき機能プロバイダを検索し、当該検索された所定の機能プロバイダから取得される機能プロバイダＩＤと、前記所定のワークフロー定義ファイルを指示したユーザＩＤとを用いて、検索された所定の機能プロバイダに対して登録されたお気に入り設定を設定することを特徴とする。【選択図】  図１５
2017050813.tif 000002
【特許請求の範囲】
【請求項１】
所定のワークフロー定義ファイルに従い複数の機能プロバイダを連携して特定の処理を実行する情報処理装置であって、
それぞれの機能プロバイダに対してユーザが設定したお気に入り設定を機能プロバイダＩＤと、機能プロバイダの種別と、ユーザＩＤとを対応づけたお気に入り設定を登録手段に登録して管理する管理手段と、
前記所定のワークフロー定義ファイルを読み込むことに応じて、前記所定のワークフローに記述された実行すべき機能プロバイダを検索する検索手段と、
検索された所定の機能プロバイダから取得される機能プロバイダＩＤと、前記所定のワークフロー定義ファイルを指示したユーザＩＤとを用いて、検索された所定の機能プロバイダに対して登録されたお気に入り設定を行う設定する設定手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
取得したお気に入り設定の設定値と、デバイスで特定される設定できる設定値とから実行すべき機能プロバイダに対してお気に入り設定すべき設定値域を決定する決定手段を備え、
前記設定手段は、実行すべき機能プロバイダに対して決定された設定値を設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記決定手段は、検索された機能プロバイダから当該機能プロバイダがあらかじめ設定した肯定的設定値リストと、否定的設定値リストとを取得して、お気に入り登録された設定値域から設定すべきでない設定値を削除することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記特定の処理は、特定の機能プロバイダを組み合わせにより特定されることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記情報処理装置は、スキャナ、プリンタ、通信Ｉ／Ｆ、ユーザＩ／Ｆを備えることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項６】
所定のワークフロー定義ファイルは、登録された機能プロバイダの実行順序を特定するタグを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記所定のワークフロー定義ファイルは、登録された機能プロバイダの検索条件を特定するタグを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記所定のワークフロー定義ファイルは、登録された機能プロバイダを呼出すためのインタフェースを特定するタグを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
所定のワークフロー定義ファイルに従い複数の機能プロバイダを連携して特定の処理を実行する情報処理装置の制御方法であって、
それぞれの機能プロバイダに対してユーザが設定したお気に入り設定を機能プロバイダＩＤと、機能プロバイダの種別と、ユーザＩＤとを対応づけたお気に入り設定を登録手段に登録して管理する管理工程と、
前記所定のワークフロー定義ファイルを読み込むことに応じて、前記所定のワークフローに記述された実行すべき機能プロバイダを検索する検索工程と、
検索された所定の機能プロバイダから取得される機能プロバイダＩＤと、前記所定のワークフロー定義ファイルを指示したユーザＩＤとを用いて、検索された所定の機能プロバイダに対して登録されたお気に入り設定を行う設定工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１０】
請求項９に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置には、画像形成装置の機能を拡張できるシステムが普及している。拡張する機能（以降、拡張機能）は、ソフトウェアプログラム（以降、拡張ソフト）によって実現され、工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。この種のシステムとしてはキヤノン株式会社のＭＥＡＰ（登録商標）などがあげられる。
【０００３】
特に、ある特定の目的のために作られた拡張ソフトは、アプリケーションソフトウェア（以降、アプリ）と呼ばれる。アプリは、画像形成装置が備えるファクシミリ、スキャナ、プリンタといった機能を利用することで目的の処理を実現している。画像形成装置は、ユーザの目的に応じて複数のアプリをインストールできるように構成されている。
【０００４】
一方、従来のアプリにおいて、ユーザの好むアプリの設定内容を"お気に入り"として保存しておき、後からユーザが操作した際に簡単に呼び出すことのできる機能が知られている（例えば、特許文献１参照）。
特許文献１によれば、まず現在起動されているアプリケーションにおいて現在設定されている設定情報で処理を起動させるためのカスタムボタンをカスタムメニューに登録しておき、現在設定されている設定情報とカスタムボタンに関するボタンデータを格納する。
そして、ユーザからカスタムメニューの表示が指示されるとカスタムボタンを含むカスタムメニューを表示し、カスタムボタンが押下されると、カスタムボタンに対応するアプリの設定情報を読み出した状態で、アプリを起動する。これにより、現在起動しているアプリの設定情報、すなわち、お気に入り設定を保存し、後から保存されている設定情報を読み出した状態でアプリを起動できるように構成されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１２４９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のアプリがインストールされている場合に、ユーザがそれぞれのアプリに対して共通のお気に入り設定を行いたい場合がある。
例えば、印刷を行うアプリの場合、ページレイアウトを常に"２ｉｎ１"にしたり、常にステープルを"有り"にしたりする場合がある。
従来技術では、各アプリでのお気に入り登録手段、呼出手段はそれぞれ異なっていた。このため、ユーザが複数のアプリに対して同様のお気に入り設定を行う場合、各アプリでのお気に入り登録手段を用いてお気に入り設定を登録し、各アプリのお気に入り呼出手段を用いてお気に入り設定を呼出す手間があった。
【０００７】
一方、同様の機能を持つアプリ、例えば標準的なプルプリント機能を持つ標準プルプリントアプリと、標準プルプリントアプリの機能に加えて製本機能を持つ製本プルプリントアプリがあるような場合がある。
この場合、画像形成装置の管理者が、システム構成の変更のために、同様の機能を持つ標準プルプリントアプリから製本プルプリントアプリに入れ替えを行うケースがある。
この場合、従来技術では、標準プルプリントアプリと製本プルプリントアプリでお気に入り設定の登録手段、呼出手段が異なっており、またアプリによって設定の保管場所、設定項目、設定値域が異なる場合が多い。
このため、ユーザが標準プルプリントアプリに対してお気に入り設定を行っていたとしても、管理者が標準プルプリントアプリから製本プルプリントアプリに構成変更を行うと、旧アプリの設定を新アプリが引き継ぐことができない。
したがって、新アプリである製本プルプリントアプリへの構成変更が行われた後、ユーザは、再度旧アプリで設定した同じお気に入り設定を新アプリに対して行う作業の手間がかかっていた。
【０００８】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、複数の機能プロバイダを連携させて特定の処理を実行させる際に、いずれかの機能プロバイダの構成が変更されても、変更前の機能プロバイダに設定されたお気に入り設定値を利用した処理を実行できる仕組みを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
所定のワークフロー定義ファイルに従い複数の機能プロバイダを連携して特定の処理を実行する情報処理装置であって、それぞれの機能プロバイダに対してユーザが設定したお気に入り設定を機能プロバイダＩＤと、機能プロバイダの種別と、ユーザＩＤとを対応づけたお気に入り設定を登録手段に登録して管理する管理手段と、前記所定のワークフロー定義ファイルを読み込むことに応じて、前記所定のワークフローに記述された実行すべき機能プロバイダを検索する検索手段と、検索された所定の機能プロバイダから取得される機能プロバイダＩＤと、前記所定のワークフロー定義ファイルを指示したユーザＩＤとを用いて、検索された所定の機能プロバイダに対して登録されたお気に入り設定を行う設定する設定手段と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、複数の機能プロバイダを連携させて特定の処理を実行させる際に、いずれかの機能プロバイダの構成が変更されても、変更前の機能プロバイダに設定されたお気に入り設定値を利用した処理を実行できる。
【図面の簡単な説明】
【００１１】
【図１】画像処理システムのシステム構成の一例を示す図である。
【図２】ＭＦＰの構成を示すブロック図である。
【図３】サーバの構成を示すブロック図である。
【図４】ＭＦＰにおけるソフトウェア構成図である。
【図５】機能プロバイダ情報テーブルの一例を示す図である。
【図６】機能プロバイダユーザ情報テーブルの一例を示す図である。
【図７】機能プロバイダお気に入り設定テーブルの一例を示す図である。
【図８】ワークフロー定義ファイルの記述例を示す図である。
【図９】情報処理装置の制御方法を説明するフローチャートである。
【図１０】機能プロバイダのお気に入り登録処理の流れを示す図である。
【図１１】機能プロバイダのお気に入り呼出処理の流れを示す図である。
【図１２】お気に入りリスト値域チェック処理の流れを示す図である。
【図１３】情報処理装置の制御方法を説明するフローチャートである。
【図１４】情報処理装置の制御方法を説明するフローチャートである。
【図１５】情報処理装置の制御方法を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
次に本発明を実施するための最良の形態について図面を参照して説明する。
＜システム構成の説明＞
〔第１実施形態〕
【００１３】
図１は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、ＬＡＮ１１０を介して接続される情報処理装置の一例であるＭＦＰ１０１と、ＷＡＮ１２０を介して接続されるサーバ１０２から構成される。ＬＡＮ１１０上の装置とＷＡＮ１２０上の装置はお互いのネットワークを通して、相互に通信可能である。図１は典型的なネットワーク構成の例であり、各装置がＬＡＮ１１０またはＷＡＮ１２０のどちらにあっても構わない。
【００１４】
図１において、ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する拡張ソフトを追加、実行させるためのソフトウェアプラットホームを持つ。サーバ１０２は、ＭＦＰ１０１と連携して各種処理を行うサーバである。
例えば、ＭＦＰ１０１で印刷するファイルを保存するためのファイルサーバであったり、ＭＦＰ１０１から依頼を受けて画像変換などの各種処理を実行するアプリケーションサーバであったりする。サーバは１台とは限らず、目的に応じて複数のサーバが存在してもよい。なお、ＭＦＰ１０１は各種のユーザＩ／Ｆを操作部２１９に表示する。
【００１５】
図２は、図１に示したＭＦＰ１０１の構成を示すブロック図である。
図２において、ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み出して送受信制御や印刷制御などの各種制御処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データやインストールされた拡張ソフトを含む各種プログラムを記憶する。またＨＤＤ２１４は、後述の図５、図６、図７に示す情報テーブルを記憶する。
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。
【００１６】
プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。プリンタ２２０にはホチキスやソート、自動折り、製本などの処理を行うフィニッシング装置が備えられている。
【００１７】
スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。
【００１８】
ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する通信Ｉ／Ｆとして機能する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００１９】
図３は、図１に示したサーバ１０２の構成を示すブロック図である。
図３において、ＣＰＵ３１１を含む制御部３１０は、サーバ１０２全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種のプログラムやデータを記憶する。
【００２０】
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。
【００２１】
ネットワークＩ／Ｆ３１７は、制御部３１０（サーバ１０２）をＷＡＮ１２０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上またはＷＡＮ１２０上の他の装置との間で各種情報を送受信する。
【００２２】
図４は、図１に示したＭＦＰ１０１におけるソフトウェア構成図である。
本実施形態では、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラム（ソフトウェア）を、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図９、図１０、図１１、図１２および図１３のフローチャートの処理が実行される。
【００２３】
図４において、拡張ソフト管理部４１０は、ＭＦＰ１０１上で拡張ソフトを動作させるためのソフトウェアプラットホームである。図４では、拡張ソフトとして５つの機能プロバイダ４１１〜４１５がＭＦＰ１０１にインストールされている。
【００２４】
ここで、機能プロバイダは、拡張ソフトの一種であるが、アプリではない。アプリは単体で入力から出力までの一連の完結した処理を備えている。一方、単体の機能プロバイダは入力なら入力、出力なら出力といった特定の機能に特化したものであり、入力から出力までの一連の完結した処理を行うためには、複数の機能プロバイダを組み合わせる必要がある。
【００２５】
例えば、「ファイルサーバから画像ファイルを取得した後、標準的な設定で印刷する」という機能をユーザに提供する場合、アプリであれば「ＦＴＰ取得」、「標準プルプリント」の２つの機能を１つのアプリで実現する。ここでプルプリントとは、クライアントである画像形成装置において、サーバであるファイルサーバや各種情報処理装置から受信した画像データを印刷する処理のことである。
一方、機能プロバイダの場合、「ＦＴＰ取得機能を実現する機能プロバイダ」、「標準的な設定でプルプリント印刷機能を実現するプロバイダ」の２つの機能プロバイダが必要になる。さらに、それら２つの機能プロバイダを一連の処理として実行するためには、後述するワークフロー処理部４３０が必要になる。
【００２６】
また、アプリは、ＭＦＰ１０１が元々備えている機能（例えばコピー機能やファクス送信機能）を呼び出すためのメニュー画面に、それらの機能と横並びで表示されるようにアプリ自身を登録する。アプリは、メニュー画面からユーザの指示によって呼び出される。
一方、機能プロバイダはメニュー画面ではなく、後述する機能プロバイダ管理部４２０に、機能プロバイダ自身を登録する。機能プロバイダは、機能プロバイダ管理部４２０経由でワークフロー処理部４３０の指示によって呼び出される。
【００２７】
さらに、機能プロバイダは、後述する機能プロバイダ管理部４２０が規定するルール（以降、機能プロバイダインタフェース）を満たすようにプログラミングされている。機能プロバイダインタフェースは、ソフトウェア間のやり取りを行う際のルールを決めたソフトウェアインタフェースである。機能プロバイダインタフェースは、機能プロバイダが提供する機能の種類（以降、機能タイプ）ごとに定められている。機能プロバイダは、機能プロバイダインタフェースに基づいてワークフロー処理部４３０から呼び出される。
【００２８】
なお、１つの機能プロバイダは目的に応じて、複数種類のインタフェースを持つ場合がある。例えば、プルプリント機能を実現する機能プロバイダであれば、「印刷設定画面の表示」の目的のためのインタフェースと「印刷ジョブの実行」の目的のためのインタフェースといったように、目的別に複数種類のインタフェースを用意することができる。
【００２９】
また、複数種類の機能プロバイダをＭＦＰ１０１にインストールすることができる。異なる機能タイプの機能プロバイダを複数種類インストールしてもよいし、同じ機能タイプの機能プロバイダを複数種類インストールしてもよい。同じ機能タイプの機能プロバイダは同じソフトウェアインタフェースを持つため、拡張ソフトは、同じ機能タイプの機能プロバイダであれば、同じようにソフトウェア間のやり取りを行うことができる。
【００３０】
ＦＴＰ取得プロバイダ４１１は、ＦＴＰ受信でファイルを取得する機能を提供する機能プロバイダ（機能タイプ＝ファイル取得）である。ＦＴＰ取得プロバイダ４１１は、機能タイプが「ファイル取得」の機能プロバイダのために定義された機能プロバイダインタフェース（ファイル取得プロバイダインタフェース）を実現する。機能タイプが「ファイル取得」の機能プロバイダを総称してファイル取得プロバイダと呼ぶ。
一方、ＵｓｅｒＢｏｘ取得プロバイダは、ＭＦＰ１０１のＲＯＭ２１２、ＨＤＤ２１４に設けられたユーザ毎のファイル保管機能であるＵｓｅｒＢｏｘ（ＨＤＤ２１４に確保される）から、ファイルを取得する機能を提供する。
【００３１】
定型プルプリントプロバイダ４１３、標準プルプリントプロバイダ４１４と製本プルプリントプロバイダ４１５は、ともにプルプリント機能を提供する機能プロバイダ（機能タイプ＝プルプリント）である。機能タイプが「プルプリント」の機能プロバイダを総称してプルプリントプロバイダと呼ぶ。
プルプリントプロバイダは、機能タイプが「プルプリント」の機能プロバイダのために定義された機能プロバイダインタフェース（プルプリントプロバイダインタフェース）を実現する。
定型プルプリントプロバイダ４１３は、あらかじめ決められた設定で印刷を行う、ＭＦＰ１０１の操作に不慣れな初心者向けの印刷設定画面を持つ。一方、標準プルプリントプロバイダ４１４は、一般的なユーザ向けの印刷設定画面を持つ。製本プルプリントプロバイダ４１５は、高度なフィニッシングを行う製本印刷設定画面を持つ。
各機能プロバイダは、ＭＦＰ１０１に同じ機能タイプを持つ機能プロバイダが他に存在しなくても、自身の機能タイプ用に定義された機能プロバイダインタフェースを実現する。
以上で説明した５つの機能プロバイダ４１１〜４１５は一例であり、ＭＦＰ１０１には、拡張ソフトとして様々な機能プロバイダを追加・削除することが可能である。
【００３２】
機能プロバイダ管理部４２０は、ＭＦＰ１０１にインストールされている機能プロバイダを管理するソフトウェアである。機能プロバイダ管理部４２０は、機能プロバイダ登録部４２１、機能プロバイダ設定部４２２、機能プロバイダ検索部４２３を備える。さらに、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２４、機能プロバイダユーザ情報テーブル４２５、機能プロバイダお気に入り設定テーブル４２６を備える。
【００３３】
機能プロバイダ登録部４２１は、各機能プロバイダからの依頼を受けて、機能プロバイダ情報テーブル４２４に、各機能プロバイダの機能タイプや設定可能な値などの情報を登録する。各機能プロバイダ４１１〜４１５はＭＦＰ１０１にインストールされ実行状態になった時に機能プロバイダ登録部４２１に対して自身の登録を行う。
機能プロバイダ設定部４２２は、ユーザからの依頼を受けて、機能プロバイダのお気に入り設定といった機能プロバイダに関する設定を機能プロバイダユーザ情報テーブル４２５に設定する。
【００３４】
機能プロバイダ検索部４２３は、後述するワークフロー処理部４３０から機能プロバイダの検索条件を受け取り、機能プロバイダ情報テーブル４２４の情報をもとに条件に一致する機能プロバイダを特定する。機能プロバイダ検索部４２３は、検索結果として機能プロバイダを１つに特定するため、検索条件に一致する機能プロバイダが複数存在した場合は、最も優先順位の高い機能プロバイダを検索結果とする。
【００３５】
ワークフロー処理部４３０は、後述する所定のワークフロー定義ファイル４４０に従って複数の機能プロバイダを組み合わせて一連の処理として実行する。本実施例では、ワークフローとは、複数の機能プロバイダを組み合わせた一連の処理を差すものとする。
【００３６】
ワークフロー定義ファイル４４０は、ワークフロー処理部４３０が呼び出す機能プロバイダの検索条件や、呼び出し順序、呼び出した機能プロバイダに適用する設定値など、機能プロバイダの呼び出しに関する情報を定義する。
なお図４ではワークフロー定義ファイルの例を２つ定義しているが、数を限定するものではない。
【００３７】
図５は、図４に示した機能プロバイダ情報テーブル４２４の一例を示す図である。
図５において、機能プロバイダ情報テーブル４２４は、機能プロバイダを一意に特定する機能プロバイダＩＤ、機能プロバイダの名称、機能タイプ（種別）、機能プロバイダインタフェースなど、機能プロバイダに関する情報を保持する。
【００３８】
図６は、図４に示した機能プロバイダユーザ情報テーブル４２５の一例を示す図である。
図６において、機能プロバイダユーザ情報テーブル４２５は、機能プロバイダを使用するユーザを一意に特定するユーザＩＤなど、機能プロバイダを使用するユーザに関する情報を保持する。
【００３９】
図７は、図４に示した機能プロバイダお気に入り設定テーブル４２６の一例を示す図である。
図７において、機能プロバイダお気に入り設定テーブル４２６は、機能プロバイダのお気に入りを登録したユーザを示すユーザＩＤ、機能プロバイダの機能タイプ、機能プロバイダＩＤを保持する。また、機能プロバイダお気に入り設定テーブル４２６は、お気に入りの設定項目を特定するための設定ＩＤ、お気に入りの設定項目に対する設定値など、機能プロバイダのお気に入り設定に関する情報を保持する。
【００４０】
図８は、図４に示したワークフロー定義ファイル４４０の具体的な記述例を示す図である。本実施形態ではワークフロー定義ファイルはＸＭＬ形式のファイルとして表現されているが、ＸＭＬ形式に限定されるものではなく、他の形式のファイルであってもよい。
図８において、Ｗｏｒｋｆｌｏｗタグ８０１は、以下の記述がワークフローの定義であることを示している。
【００４１】
ＦＰタグ８０２は、Ｗｏｒｋｆｌｏｗタグ８０１の子要素で、ワークフローで実行する機能プロバイダに関する情報を定義している。ＦＰタグ８０２のｎｏ属性は、ワークフローにおける機能プロバイダの実行順序を定義しており、「ｎｏ＝"１"」は最初に実行する機能プロバイダであることを示している。ＦＰタグ８０８のｉｄ属性で、１番目に実行する機能プロバイダがＦＴＰ取得プロバイダであることを定義している。
Ｃｏｎｄｉｔｉｏｎタグ８０３は、ＦＰタグ８０２の子要素で、ファイル取得プロバイダの検索条件を定義するためのものである。
【００４２】
Ａｃｔｉｏｎタグ８０４は、ＦＰタグ８０２の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグのｎｏ属性とｍｅｔｈｏｄ属性は、ＦＰタグで定義された機能プロバイダの中での実行順と呼び出すインタフェースを定義している。Ａｃｔｉｏｎタグ８０４は、ファイル取得プロバイダの実行において「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を１番目に呼び出す旨を定義している。
【００４３】
Ｐａｒａｍｅｔｅｒタグ８０５はＡｃｔｉｏｎタグ８０４の子要素であり、Ａｃｔｉｏｎタグ８０４で定義されているインタフェース（ｓｈｏｗＳｅｔｔｉｎｇＵＩ）を呼び出す際に渡す設定値を定めている。
【００４４】
Ａｃｔｉｏｎタグ８０６は、ＦＰタグ８０２の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグ８０６は、ファイル取得プロバイダの実行において「ｄｏＧｅｔ」を２番目に呼び出す旨を定義している。
【００４５】
Ｐａｒａｍｅｔｅｒタグ８０７はＡｃｔｉｏｎタグ８０６の子要素であり、Ａｃｔｉｏｎタグ８０６で定義されているインタフェース（ｄｏＧｅｔ）を呼び出す際に渡す設定値を定めている。Ａｃｔｉｏｎタグ８０６は、この他に「ｄｏＧｅｔ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを含む。
【００４６】
ＦＰタグ８０８は、ｎｏ属性で、２番目に実行する機能プロバイダがプルプリントプロバイダであることを定義している。ＦＰタグ８０８のｔｙｐｅ属性は、実行する機能プロバイダの機能タイプを定義しており、「ｔｙｐｅ＝"ＰＵＬＬ＿ＰＲＩＮＴ"」はプルプリントプロバイダであることを示している。ＦＰタグは機能プロバイダを、ＦＰタグ８０２のようにｉｄ属性を使って一意に指定することもできるし、ＦＰタグ８０８のようにｔｙｐｅ属性を使って機能タイプで指定することもできる。
Ｃｏｎｄｉｔｉｏｎタグ８０９は、ＦＰタグ８０８の子要素で、プルプリントプロバイダの検索条件を定義するためのものである。
【００４７】
Ａｃｔｉｏｎタグ８１０は、ＦＰタグ８０８の子要素であり、機能プロバイダの呼び出しについての情報を定義している。Ａｃｔｉｏｎタグ８１０は、プルプリントプロバイダの実行において「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を１番目に呼び出す旨を定義している。Ａｃｔｉｏｎタグ８１０は、この他にプルプリントプロバイダの「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」呼び出しの入力に関する定義を表すＩｎｐｕｔタグを含む。
【００４８】
Ｐａｒａｍｅｔｅｒタグ８１１はＡｃｔｉｏｎタグ８１０の子要素であり、Ａｃｔｉｏｎタグ８１０で定義されているインタフェース（ｓｈｏｗＳｅｔｔｉｎｇＵＩ）を呼び出す際に渡す設定値を定めている。Ａｃｔｉｏｎタグ８１０は、この他に「ｓｈｏｗＳｅｔｔｉｎｇＵＩ」を実行した結果の出力を定義するＯｕｔｐｕｔタグを含む。
【００４９】
Ａｃｔｉｏｎタグ８１２は、プルプリントプロバイダの実行において「ｄｏＰｕｌｌＰｒｉｎｔ」を２番目に呼び出す旨を定義している。Ａｃｔｉｏｎタグ８１２は、この他にプルプリントプロバイダの「ｄｏＰｕｌｌＰｒｉｎｔ」呼び出しの入力に関する定義を表すＩｎｐｕｔタグを含む。
【００５０】
Ｐａｒａｍｅｔｅｒタグ８１３はＡｃｔｉｏｎタグ８１２の子要素であり、Ａｃｔｉｏｎタグ８１２で定義されているインタフェース（ｄｏＰｕｌｌＰｒｉｎｔ）を呼び出す際に渡す設定値を定めている。
【００５１】
図９は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、ＭＦＰ１０１上のワークフロー実行の流れに対応する。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
【００５２】
Ｓ９０１において、ユーザからのワークフロー実行指示をワークフロー処理部４３０が受け取る。Ｓ９０２において、ワークフロー処理部４３０が実行指示に対するワークフロー定義ファイル４４０を読み込む。ここでは、ワークフロー定義ファイル４４０に「機能プロバイダＩＤがＦＴＰ＿ＧＥＴの機能プロバイダ」、「機能タイプがプルプリントの機能プロバイダ」を順に実行するように定義されているものとする。
【００５３】
Ｓ９０３において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、ワークフロー定義ファイル４４０に記載されている「機能プロバイダＩＤがＦＴＰ＿ＧＥＴの機能プロバイダ」の機能プロバイダの検索を指示する。
【００５４】
Ｓ９０４において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２４をもとに検索条件に一致する機能プロバイダを抽出する。本例では、ＦＴＰ取得プロバイダ４１１が抽出されるものとする。
Ｓ９０５において、機能プロバイダ管理部４２０は、ＦＴＰ取得プロバイダの検索結果を、ワークフロー処理部４３０に通知する。Ｓ９０６において、検索結果を受け取ったワークフロー処理部４３０は、検索結果のＦＴＰ取得プロバイダ４１１に対して、ファイル取得指示を行う。
Ｓ９０７〜Ｓ９１３では、ＦＴＰ取得プロバイダ４１１がワークフロー処理部４３０から受信した指示を元に、ＦＴＰファイル取得処理を行う。
【００５５】
まず、Ｓ９０７において、ＦＴＰ取得プロバイダ４１１は、ユーザからお気に入り登録指示を受信したかを確認する。ここでは、ＦＴＰ取得プロバイダ４１１は、ＭＦＰ１０１の操作部２１９にＦＴＰ取得処理に必要な設定をユーザが行うための設定画面を表示し、設定内容を取得する際に、ユーザからのお気に入り登録を行うか否かの指示を受け付ける。
【００５６】
Ｓ９０８において、ＦＴＰ取得プロバイダ４１１は、Ｓ９０７でユーザからお気に入り登録を行う旨の指示を受信したか否かを判断する。ＦＴＰ取得プロバイダ４１１が、Ｓ９０７でユーザからお気に入り登録を行う旨の指示を受信したと判断した場合は、処理はＳ９０９に進む。ＦＴＰ取得プロバイダ４１１が、Ｓ９０７でユーザからお気に入り登録を行う旨の指示を受信していないと判断した場合は、処理はＳ９１０に進む。
Ｓ９０９において、ＦＴＰ取得プロバイダ４１１がお気に入り登録処理を行う。処理の詳細は図１０で示す。
【００５７】
Ｓ９１０において、ＦＴＰ取得プロバイダ４１１は、ユーザからお気に入り呼出指示を受信したかを確認する。ここでは、ＦＴＰ取得プロバイダ４１１は、ＭＦＰ１０１の操作部２１９にＦＴＰ取得処理に必要な設定をユーザが行うための設定画面を表示し、設定内容を取得する際に、ユーザからのお気に入り呼出を行うか否かの指示を受け付ける。
【００５８】
Ｓ９１１において、ＦＴＰ取得プロバイダ４１１は、Ｓ９１０でユーザからお気に入り呼出を行う旨の指示を受信したか否かを判断する。ＦＴＰ取得プロバイダ４１１が、Ｓ９１０でユーザからお気に入り呼出を行う旨の指示を受信したと判断した場合は、処理はＳ９１２に進む。ＦＴＰ取得プロバイダ４１１が、Ｓ９１０でユーザからお気に入り呼出を行う旨の指示を受信していないと判断した場合は、処理はＳ９１３に進む。
Ｓ９１２において、ＦＴＰ取得プロバイダ４１１がお気に入り呼出処理を行う。処理の詳細は図１１で示す。Ｓ９１３において、ＦＴＰ取得プロバイダ４１１が、指示に従ってＦＴＰファイル取得処理を実行する。
Ｓ９１４において、ＦＴＰ取得プロバイダ４１１が、ワークフロー処理部４３０に対して、ＦＴＰファイル取得処理を行った結果として、取得したファイルを送信する。
【００５９】
Ｓ９１５において、ワークフロー処理部４３０は、機能プロバイダ管理部４２０に対して、ワークフロー定義ファイル４４０に記載されている「機能タイプがプルプリントの機能プロバイダ」の機能プロバイダの検索を指示する。
【００６０】
Ｓ９１６において、機能プロバイダ管理部４２０は、機能プロバイダ情報テーブル４２４をもとに検索条件に一致する機能プロバイダを抽出する。本例では、標準プルプリントプロバイダ４１４が抽出されるものとする。
Ｓ９１７において、機能プロバイダ管理部４２０は、プルプリントプロバイダの検索結果を、ワークフロー処理部４３０に通知する。
Ｓ９１８において、検索結果を受け取ったワークフロー処理部４３０は、検索結果の標準プルプリントプロバイダ４１４に対して、プルプリント指示を行う。Ｓ９１９〜Ｓ９２３では、標準プルプリントプロバイダ４１４がワークフロー処理部４３０から受信した指示を元に、標準プルプリント処理を行う。
【００６１】
まず、Ｓ９１９において、標準プルプリントプロバイダ４１４は、ユーザからお気に入り登録指示を受信したかを判断する。ここでは、標準プルプリントプロバイダ４１４は、ＭＦＰ１０１の操作部２１９に標準プルプリント処理に必要な設定をユーザが行うための設定画面を表示し、設定内容を取得する際に、ユーザからのお気に入り登録を行うか否かの指示を受け付ける。
【００６２】
Ｓ９２０において、標準プルプリントプロバイダ４１４は、Ｓ９１９でユーザからお気に入り登録を行う旨の指示を受信したか否かを判断する。標準プルプリントプロバイダ４１４が、Ｓ９１９でユーザからお気に入り登録を行う旨の指示を受信したと判断した場合は、処理はＳ９０９に進む。標準プルプリントプロバイダ４１４が、Ｓ９１９でユーザからお気に入り登録を行う旨の指示を受信していないと判断した場合は、処理はＳ９２１に進む。
【００６３】
Ｓ９２１において、標準プルプリントプロバイダ４１４は、ユーザからお気に入り呼出指示を受信したかを判断する。ここでは、標準プルプリントプロバイダ４１４は、ＭＦＰ１０１の操作部２１９に標準プルプリント処理に必要な設定をユーザが行うための設定画面を表示し、設定内容を取得する際に、ユーザからのお気に入り呼出を行うか否かの指示を受け付ける。
【００６４】
Ｓ９２２において、標準プルプリントプロバイダ４１４は、Ｓ９１９でユーザからお気に入り呼出を行う旨の指示を受信したか否かを判断する。標準プルプリントプロバイダ４１４が、Ｓ９２１でユーザからお気に入り呼出を行う旨の指示を受信したと判断した場合は、処理はＳ９１２に進む。標準プルプリントプロバイダ４１４が、Ｓ９２１でユーザからお気に入り呼出を行う旨の指示を受信していないと判断した場合は、処理はＳ９２３に進む。
Ｓ９２３において、標準プルプリントプロバイダ４１４が、指示に従って標準プルプリント処理を実行する。Ｓ９２４において、標準プルプリントプロバイダ４１４が、ワークフロー処理部４３０に対して、標準プルプリント処理を行った結果を送信する。そして処理は終了する。
【００６５】
（機能プロバイダのお気に入り登録処理）
図１０は、図１に示したＭＦＰ１０１上の機能プロバイダのお気に入り登録処理の流れを示す図である。
図１０に示す処理は、図９のＳ９０９で示した処理の詳細である。ここでは、標準プルプリントプロバイダ４１４においてユーザからお気に入り登録が指示されたと仮定して処理を説明しているが、これらの処理は機能プロバイダによるものではなく、他の機能プロバイダであっても同様の処理を行う。
【００６６】
Ｓ１００１において、標準プルプリントプロバイダ４１４は、機能プロバイダ管理部４２０に対して、機能プロバイダＩＤ、ユーザＩＤ、お気に入り設定値リスト［設定ＩＤ、設定値］を送信して、お気に入り設定登録を依頼する。ここで機能プロバイダＩＤは、自らの機能プロバイダＩＤである「ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」、ユーザＩＤは、ワークフロー処理部４３０に対して処理を指示したユーザのユーザＩＤである。お気に入り設定値リストは、設定項目を表す設定ＩＤと、設定項目に対する設定内容を表す設定値の組のリストである。
【００６７】
Ｓ１００２において、機能プロバイダ管理部４２０は、Ｓ１００１で受信した機能プロバイダＩＤをもとに検索条件に一致する機能プロバイダの機能タイプを機能プロバイダ情報テーブル４２４から抽出する。本例では、検索条件「機能プロバイダＩＤ＝ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」の結果として、機能タイプ「ＰＵＬＬ＿ＰＲＩＮＴ」が抽出されるものとする。
Ｓ１００３において、機能プロバイダ管理部４２０が、Ｓ１００１で受信したお気に入り設定値リストの件数分、Ｓ１００４のループ処理を行う。
【００６８】
Ｓ１００４において、機能プロバイダ管理部４２０が、Ｓ１００２で取得した機能タイプ、Ｓ１００１で受信した機能プロバイダＩＤ、ユーザＩＤを取得する。そして、機能プロバイダ管理部４２０が、機能タイプ、機能プロバイダＩＤ、ユーザＩＤに紐づけて、お気に入り設定値［設定ＩＤ、設定値］のリストの要素を１件ずつ機能プロバイダお気に入り設定テーブル４２６に保存する。本例では、図７の機能プロバイダお気に入り設定テーブル４２６の２〜４行目のように、お気に入り設定値リストが保存される。すなわち、機能プロバイダお気に入り設定テーブル４２６には、「ユーザＩＤ＝ｔａｎａｋａ」、「機能タイプ＝ＰＵＬＬ＿ＰＲＩＮＴ」、「機能プロバイダＩＤ＝ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」に紐づけて、お気に入り設定値リストが保存される。このときのお気に入り設定値のリストは［部数＝１］、［ページレイアウト＝２ｉｎ１］、［面付け＝両面］が１件ずつ順に保存される。
【００６９】
Ｓ１００５において、機能プロバイダ管理部４２０は、標準プルプリントプロバイダ４１４に対して、Ｓ１００４でお気に入り設定を保存した結果を登録結果として返却する。そして処理は終了する。
【００７０】
（機能プロバイダのお気に入り呼出処理）
図１１は、図１に示したＭＦＰ１０１上の機能プロバイダのお気に入り呼出処理の流れを示す図である。
図１１に示す処理は、図９のＳ９１２で示した処理の詳細である。ここでは、標準プルプリントプロバイダ４１４においてユーザからお気に入り呼出が指示されたと仮定して処理を説明しているが、これらの処理は機能プロバイダによるものではなく、他の機能プロバイダであっても同様の処理を行う。
【００７１】
Ｓ１１０１において、標準プルプリントプロバイダ４１４は、機能プロバイダ管理部４２０に対して、機能プロバイダＩＤ、ユーザＩＤ、肯定的設定値リスト、否定的設定値リストを送信して、お気に入り設定呼出を依頼する。ここで機能プロバイダＩＤは、自らの機能プロバイダＩＤである「ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」、ユーザＩＤは、ワークフロー処理部４３０に対して処理を指示したユーザのユーザＩＤである。肯定的設定値リストは、ＭＦＰ１０１によらない全設定値のうち、機能プロバイダ自らが設定を許可する設定項目と設定値の組である。否定的設定値リストは、ＭＦＰ１０１によらない全設定値のうち、機能プロバイダ自らが設定を拒否する設定項目と設定値の組である。肯定的設定値リストと否定的設定値リストのいずれも、設定項目を表す設定ＩＤと、設定項目に対する設定内容を表す設定値の組のリストである。
【００７２】
Ｓ１１０２において、機能プロバイダ管理部４２０は、Ｓ１１０１で受信した機能プロバイダＩＤをもとに検索条件に一致する機能プロバイダの機能タイプを機能プロバイダ情報テーブル４２４から抽出する。本例では、検索条件「機能プロバイダＩＤ＝ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」の結果として、機能タイプ「ＰＵＬＬ＿ＰＲＩＮＴ」が抽出されるものとする。
【００７３】
Ｓ１１０３において、機能プロバイダ管理部４２０は、Ｓ１１０１で受信した機能プロバイダＩＤとユーザＩＤをもとに、検索条件に一致する機能プロバイダお気に入り設定を機能プロバイダお気に入り設定テーブル４２６から抽出する。本例では、図７の機能プロバイダお気に入り設定テーブル４２６の２〜４行目のように、検索条件「機能プロバイダＩＤ＝ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」、「ユーザＩＤ＝ｔａｎａｋａ」の結果が抽出される。その結果［部数＝１］［ページレイアウト＝２ｉｎ１］、［面付け＝両面］の３件のお気に入り設定値リストが抽出されるものとする。
【００７４】
Ｓ１１０４において、機能プロバイダ管理部４２０が、Ｓ１１０３において、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件であるか否かを判断する。機能プロバイダ管理部４２０が、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件であると判断した場合は、処理はＳ１１０５に進む。機能プロバイダ管理部４２０が、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件ではないと判断した場合は、処理はＳ１１０６に進む。
【００７５】
Ｓ１１０５において、機能プロバイダ管理部４２０は、Ｓ１１０２で取得した機能タイプと、Ｓ１１０１で受信したユーザＩＤの機能プロバイダお気に入り設定テーブル４２６の検索を行う。機能プロバイダ管理部４２０は、機能タイプとユーザＩＤの検索条件に一致する機能プロバイダお気に入り設定を機能プロバイダお気に入り設定テーブル４２６から抽出する。本例では、図７の機能プロバイダお気に入り設定テーブル４２６の２〜４行目のように、検索条件「機能タイプ＝ＰＵＬＬ＿ＰＲＩＮＴ」、「ユーザＩＤ＝ｔａｎａｋａ」の結果が抽出される。その結果「機能プロバイダＩＤ＝ＦＯＲＭ＿ＰＵＬＬ＿ＰＲＩＮＴ」に対応するお気に入り設定である［部数＝５０］の１件のお気に入り設定値リストが抽出されるものとする。さらに「機能プロバイダＩＤ＝ＮＯＲＭＡＬ＿ＰＵＬＬ＿ＰＲＩＮＴ」に対応するお気に入り設定である［部数＝１］［ページレイアウト＝２ｉｎ１］、［面付け＝両面］の３件のお気に入り設定値リストが抽出されるものとする。このように、機能プロバイダ管理部４２０は、機能プロバイダお気に入り設定テーブル４２６の検索結果は、機能プロバイダＩＤ毎にお気に入り設定リスト化して取得する。このように、機能プロバイダ管理部４２０は、機能タイプに対するお気に入り設定リストの抽出結果が複数個取得されてもよい。
【００７６】
Ｓ１１０６において、機能プロバイダ管理部４２０が、Ｓ１１０３またはＳ１１０５で取得したお気に入り設定リストの値域チェック処理を行う。処理の詳細は、図１２で示す。
【００７７】
Ｓ１１０７において、機能プロバイダ管理部４２０は、標準プルプリントプロバイダ４１４に対して、Ｓ１１０６において抽出されたお気に入り設定リストを、お気に入り設定取得結果として返却する。そして処理は終了する。
【００７８】
（お気に入り設定リストの値域チェック処理）
図１２は、図１に示したＭＦＰ１０１上の機能プロバイダ管理部４２０におけるお気に入りリスト値域チェック処理の流れを示す図である。より具体的には、図１１のＳ１１０６で示した処理の詳細である。
【００７９】
Ｓ１２０１では、機能プロバイダ管理部４２０が、取得した結果のお気に入り設定リストの個数が、０より大きいか否かを判断する。機能プロバイダ管理部４２０が、お気に入り設定リストの個数が「０」より大きくないと判断した場合は、処理はＳ１２０２に進む。機能プロバイダ管理部４２０が、お気に入り設定リストの個数が「０」より大きいと判断した場合は、処理はＳ１２０３に進む。
Ｓ１２０２において、機能プロバイダ管理部４２０が該当するお気に入り設定が無かった旨を返却する。そして処理は終了する。Ｓ１２０３において、機能プロバイダ管理部４２０が、設定可能値リスト作成処理を行う。処理の詳細は図１３で説明する。
【００８０】
Ｓ１２０４において、機能プロバイダ管理部４２０が、変数ｉの値を「１」に初期化する。Ｓ１２０５において、機能プロバイダ管理部４２０が、変数ｉの値が、取得したお気に入り設定リストの個数以下であるか否かを判断し、変数ｉの値が取得したお気に入り設定リストの個数以下の場合は処理をループさせる。すなわち、機能プロバイダ管理部４２０が、変数ｉの値が、取得したお気に入り設定リストの個数以下であると判断した場合は、処理はＳ１２０６に進む。機能プロバイダ管理部４２０が、変数ｉの値が、取得したお気に入り設定リストの個数以下ではないと判断した場合は、処理はＳ１２１３に進む。
【００８１】
Ｓ１２０６において、機能プロバイダ管理部４２０が、変数ｊの値を１に初期化する。Ｓ１２０７において、機能プロバイダ管理部４２０が、変数ｊの値が、取得したｉ番目のお気に入り設定リストの要素数以下であるか否かを判断し、変数ｊの値が取得したｉ番目のお気に入り設定リストの要素数以下である場合は処理をループさせる。すなわち、機能プロバイダ管理部４２０が、変数ｊの値が取得したｉ番目のお気に入り設定リストの要素数以下であると判断した場合は、処理はＳ１２０８に進む。機能プロバイダ管理部４２０が、変数ｊの値が取得したｉ番目のお気に入り設定リストの要素数以下ではないと判断した場合は、処理はＳ１２１２に進む。
【００８２】
Ｓ１２０８において、機能プロバイダ管理部４２０が、ｉ番目のお気に入りリストのｊ番目のお気に入り設定値が、設定可能値リストに入っているか否かを判断する。機能プロバイダ管理部４２０が、ｉ番目のお気に入りリストのｊ番目のお気に入り設定値が、設定可能値リストに入っていると判断した場合は、処理はＳ１２０９に進む。機能プロバイダ管理部４２０が、ｉ番目のお気に入りリストのｊ番目のお気に入り設定値が、設定可能値リストに入っていないと判断した場合は、処理はＳ１２１０に進む。
Ｓ１２０９において、機能プロバイダ管理部４２０は、ｉ番目のお気に入り設定リストのｊ番目のお気に入り設定ＩＤと設定値を、ｉ番目の結果リストにセットする。
【００８３】
Ｓ１２１０において、機能プロバイダ管理部４２０は、ｉ番目のお気に入り設定リストのｊ番目のお気に入り設定ＩＤに対応する設定値として、機能プロバイダの初期値をｉ番目の結果リストにセットする。Ｓ１２１１において、機能プロバイダ管理部４２０が、変数ｊの値をｊ＋１に設定する。そして処理はＳ１２０７に戻る。
【００８４】
Ｓ１２１２において、機能プロバイダ管理部４２０が、変数ｉの値をｉ＋１に設定する。そして処理はＳ１２０５に戻る。Ｓ１２１３において、機能プロバイダ管理部４２０は、全ての結果リストのうち、リストの件数が最も大きな結果リストを返却する。これにより、お気に入り設定リストのうち、設定可能値リストに適合する設定項目が最も多いお気に入り設定リストが、結果リストとして返却される。そして処理は終了する。
【００８５】
〔設定可能値リスト作成処理〕
図１３は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図１に示したＭＦＰ１０１上の機能プロバイダ管理部４２０における設定可能値リスト作成処理手順に対応する。より具体的には、図１２のＳ１２０３で示した処理の詳細手順である。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを実行することで実現される。
【００８６】
Ｓ１３０１において、機能プロバイダ管理部４２０は、ＭＦＰ１０１の能力値を取得し、設定可能値リストにセットする。ここで、機能プロバイダ管理部４２０は、ＭＦＰ１０１のプリンタＩ／Ｆ２１６を通じてデバイス、例えばプリンタ２２０に備えられている用紙サイズ、カラーモード、画像処理などの印刷機能や、ホチキス、自動折り、製本などのフィニッシング機能の有無を取得する。また機能プロバイダ管理部４２０は、ＭＦＰ１０１のスキャナＩ／Ｆ２１７を通じて、スキャン解像度、カラーモード、画像処理などのスキャン機能の有無を取得する。
さらに、機能プロバイダ管理部４２０は、ＭＦＰ１０１のネットワークＩ／Ｆ２１８を通じて、ネットワークの接続状態、ネットワーク接続先の応答の有無などのネットワーク機能の有無を取得する。さらに、機能プロバイダ管理部４２０は、ＭＦＰ１０１のＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムの有無や、ＨＤＤ２１４に記憶されたインストールされた拡張ソフトの有無を取得する。機能プロバイダ管理部４２０は、これら各種機能の有無をＭＦＰ１０１の能力値として、設定ＩＤと設定値の組を設定可能値リストとしてセット（決定）する。
【００８７】
Ｓ１３０２において、機能プロバイダ管理部４２０が、変数ｉの値を「１」に初期化する。Ｓ１３０３において、機能プロバイダ管理部４２０が、変数ｉの値が、設定可能値リストの件数以下であるか否かを判断し、変数ｉの値が設定可能値リストの件数以下であると判断した場合は処理をループさせる。すなわち、機能プロバイダ管理部４２０が、変数ｉの値が、設定可能値リストの件数以下であると判断した場合は、処理はＳ１３０４に進む。
一方、機能プロバイダ管理部４２０が、変数ｉの値が、設定可能値リストの件数以下ではないと判断した場合は、処理はＳ１３１０に進む。Ｓ１３０４において、機能プロバイダ管理部４２０が、変数ｊの値を「１」に初期化する。
【００８８】
Ｓ１３０５において、機能プロバイダ管理部４２０が、変数ｊの値が、前記図１１のＳ１１０１において受信した否定的設定値リストの件数以下であるか否かを判断し、変数ｉの値が否定的設定値リストの件数以下である場合は処理をループさせる。
すなわち、機能プロバイダ管理部４２０が、変数ｊの値が、否定的設定値リストの件数以下であると判断した場合は、処理はＳ１３０６に進む。機能プロバイダ管理部４２０が、変数ｊの値が、否定的設定値リストの件数以下ではないと判断した場合は、処理はＳ１３０９に進む。
【００８９】
Ｓ１３０６において、機能プロバイダ管理部４２０が、設定可能値リストのｉ番目の設定項目が、否定的設定値リストのｊ番目の設定項目と一致すると判断した場合は、処理はＳ１３０７に進む。機能プロバイダ管理部４２０が、設定可能値リストのｉ番目の設定項目が、否定的設定値リストのｊ番目の設定項目と一致していないと判断した場合は、処理はＳ１３０８に進む。Ｓ１３０７において、機能プロバイダ管理部４２０が、設定可能値リストのｉ番目の設定値を削除する。Ｓ１３０８において、機能プロバイダ管理部４２０が、変数ｊの値をｊ＋１に設定する。そして処理はＳ１３０５に戻る。
【００９０】
Ｓ１３０９において、機能プロバイダ管理部４２０が、変数ｉの値をｉ＋１に設定する。そして処理はＳ１３０３に戻る。これまでのＳ１３０２〜Ｓ１３０９の処理により、機能プロバイダ管理部４２０は、設定可能値リストから否定的設定値リストに含まれている設定値を削除する。Ｓ１３１０において、機能プロバイダ管理部４２０が、変数ｐの値を「１」に初期化する。
【００９１】
Ｓ１３１１において、機能プロバイダ管理部４２０が、変数ｐの値が、設定可能値リストの件数以下であるか否かを判断し、変数ｐの値が設定可能値リストの件数以下である場合は処理をループさせる。
すなわち、機能プロバイダ管理部４２０が、変数ｐの値が、設定可能値リストの件数以下であると判断した場合は、処理はＳ１３１２に進む。機能プロバイダ管理部４２０が、変数ｐの値が、設定可能値リストの件数以下ではないと判断した場合は、処理はＳ１３１８に進む。Ｓ１３１２において、機能プロバイダ管理部４２０が、変数ｑの値を「１」に初期化する。
【００９２】
Ｓ１３１３において、機能プロバイダ管理部４２０が、変数ｑの値が、前記図１１のＳ１１０１において受信した肯定的設定値リストの件数以下であるか否かを判断し、変数ｑの値が肯定的設定値リストの件数以下である場合は処理をループさせる。すなわち、機能プロバイダ管理部４２０が、変数ｑの値が、肯定的設定値リストの件数以下であると判断した場合は、処理はＳ１３１４に進む。機能プロバイダ管理部４２０が、変数ｑの値が、肯定的設定値リストの件数以下ではないと判断した場合は、処理はＳ１３１６に進む。
【００９３】
Ｓ１３１４において、機能プロバイダ管理部４２０が、設定可能値リストのｐ番目の設定項目が、肯定的設定値リストのｑ番目の設定項目と一致すると判断した場合は、処理はＳ１３１７に進む。機能プロバイダ管理部４２０が、設定可能値リストのｐ番目の設定項目が、肯定的設定値リストのｑ番目の設定項目と一致していないと判断した場合は、処理はＳ１３１５に進む。Ｓ１３１５において、機能プロバイダ管理部４２０が、変数ｑの値をｑ＋１に設定する。そして処理はＳ１３１３に戻る。Ｓ１３１６において、機能プロバイダ管理部４２０が、設定可能値リストのｐ番目の設定値を削除する。
【００９４】
Ｓ１３１７において、機能プロバイダ管理部４２０が、変数ｐの値をｐ＋１に設定する。そして処理はＳ１３１１に戻る。これまでのＳ１３１０〜Ｓ１３１７の処理により、機能プロバイダ管理部４２０は、設定可能値リストから肯定的設定値リストに含まれていない設定値を削除する。Ｓ１３１８において、機能プロバイダ管理部４２０が、設定値域を特定するを設定可能値リストを返却する。そして処理は終了する。
【００９５】
〔ワークフロー実行処理〕
図１４は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。より具体的には、図９に示したＭＦＰ１０１におけるワークフロー実行処理手順に対応する。なお、各ステップは、ＣＰＵ２１１が記憶された制御プログラムを読み出し、解析、実行することで実現される。
Ｓ１４０１において、まずワークフロー処理部４３０は、ユーザからワークフローの実行指示を受け取る。Ｓ１４０２において、ワークフロー処理部４３０は、実行指示に対応するワークフロー定義ファイル４４０を読み込む。
【００９６】
Ｓ１４０３において、ワークフロー処理部４３０はワークフロー定義ファイル４４０からＦＰタグで定義された機能プロバイダの定義を実行順に１つ取り出す。ここで、実行順とは、ＦＰタグのｎｏ要素に定義された数字の若い順を意味する。
【００９７】
Ｓ１４０４において、ワークフロー処理部４３０は、次に実行すべき機能プロバイダがあればＳ１４０５へ進み、次に実行すべき機能プロバイダがなければ（最後の機能プロバイダまで取得し終えたら）、ワークフローの実行を終了する。
Ｓ１４０５において、ワークフロー処理部４３０は、ＦＰタグから機能プロバイダの検索条件を取得し、機能プロバイダ情報テーブル４２４から機能プロバイダ情報を検索する。Ｓ１４０６において、ワークフロー処理部４３０は、機能プロバイダ検索結果を受け取り、検索条件に一致する機能プロバイダがあるかどうかをチェックする。
【００９８】
Ｓ１４０６において、ワークフロー処理部４３０は、検索結果に一致する機能プロバイダがあると判断した場合、Ｓ１４０７へ処理を進める。一方、ワークフロー処理部４３０は、検索に一致する機能プロバイダがないと判断した場合、Ｓ１４１３に処理を進める。Ｓ１４１３において、ワークフロー処理部４３０は、エラーを通知してワークフローの実行処理を終了する。
【００９９】
Ｓ１４０７において、ワークフロー処理部４３０はワークフロー定義ファイル４４０から処理対象となっているＦＰタグの子要素であるＡｃｔｉｏｎタグを実行順に１つ取り出す。ここで実行順とは、Ａｃｔｉｏｎタグのｎｏ要素に定義された数字の若い順を意味する。
【０１００】
Ｓ１４０８において、ワークフロー処理部は、次に処理すべきＡｃｔｉｏｎタグがあればＳ１４０９へ進み、次に処理すべきＡｃｔｉｏｎタグがなければ（最後のＡｃｔｉｏｎタグまで取得し終えたら）Ｓ１４０３へ戻る。
【０１０１】
Ｓ１４０９において、ワークフロー処理部４３０は、Ａｃｔｉｏｎタグの定義に従って、Ｓ１４０５の検索結果として取得した機能プロバイダを呼び出す。その際、ワークフロー処理部４３０は、Ａｃｔｉｏｎタグの子要素としてＰａｒａｍｅｔｅｒタグまたはＩｎｐｕｔタグが定義されていれば、その定義に従って、機能プロバイダに入力を与える。
例えば、図８に示したワークフロー定義ファイル４４０では、Ｐａｒａｍｅｔｅｒタグ８１３のＩｎｐｕｔタグはプルプリントプロバイダの「ｄｏＰｕｌｌＰｒｉｎｔ」呼び出しの入力に関する定義で、「Ｄｏｃｕｍｅｎｔ」をＩＤが「ｆｏｏ」のデータから受け取ることを示している。ＩＤが「ｆｏｏ」のデータは、Ａｃｔｉｏｎタグ８１２のＯｕｔｐｕｔタグで定義したファイル取得プロバイダの「ｄｏＧｅｔ」の出力データである。
ゆえに、ワークフロー処理部４３０は、自身が保持している「ｄｏＧｅｔ」の出力データを、「ｄｏＰｕｌｌＰｒｉｎｔ」の呼び出し時に入力データとして与える。
Ｓ１４１０において、ワークフロー処理部４３０によって呼び出された機能プロバイダが、指示に従って処理を実行する。処理の詳細は、図１５で説明する。Ｓ１４１１において、ワークフロー処理部４３０は呼び出した機能プロバイダの実行完了を待ち受ける。
【０１０２】
Ｓ１４１２において、ワークフロー処理部４３０は、機能プロバイダの出力を、別の機能プロバイダの入力として使用できるようＨＤＤ２１４またはＲＡＭ２１３に保存する。例えば、Ｐａｒａｍｅｔｅｒタグ８０７のＯｕｔｐｕｔタグはファイル取得プロバイダの「ｄｏＧｅｔ」呼び出しの出力に関する定義で、「ｄｏＧｅｔ」の出力である「Ｄｏｃｕｍｅｎｔ」データを、ＩＤを「ｆｏｏ」として保存する。機能プロバイダの出力を保存したら、ワークフロー処理部４３０は次の機能プロバイダの定義を取得するために、Ｓ１４０７へ処理を進める。
【０１０３】
〔機能プロバイダの実行処理〕
図１５は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。より具体的には、ＭＦＰ１０１上の機能プロバイダの実行処理レ順である。本処理は、図１４のＳ１４１０で示した処理の詳細手順に対応する。なお、各ステップは、ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで実現される。
【０１０４】
Ｓ１５０１において、ワークフロー処理部４３０は、機能プロバイダに実行を指示する。Ｓ１５０２において、機能プロバイダは、自身の処理に必要な設定入力値が、ワークフロー処理部４３０から必要な設定入力値が全て入力されたか否かにより、新たな設定入力をユーザに要求する必要があるかを判断する。機能プロバイダが、自身の処理に必要な設定入力値が全て与えられておらず、設定入力の必要があると判断した場合は、処理はＳ１５０３に進む。機能プロバイダが、自身の処理に必要な設定入力値が全て与えられており、設定入力の必要が無いと判断した場合は、処理はＳ１５２１に進む。
【０１０５】
Ｓ１５０３において、機能プロバイダは、ユーザからの設定入力を受け付け、ユーザからの入力を受信すると、処理はＳ１５０４に進む。ここでは、機能プロバイダは、ＭＦＰ１０１の操作部２１９に機能プロバイダ処理に必要な設定をユーザが行うための設定画面を表示する。この設定画面にはユーザからの、お気に入り設定登録、お気に入り呼出、機能プロバイダの実行、キャンセルを行うか否かの指示を受けられるようにしている。
【０１０６】
Ｓ１５０４において、機能プロバイダは、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定登録であるか否かを判断する。機能プロバイダは、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定登録であると判断した場合は、処理はＳ１５０５に進む。機能プロバイダは、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定登録ではないと判断した場合は、処理はＳ１５１２に進む。
【０１０７】
Ｓ１５０５において、機能プロバイダは、機能プロバイダ管理部４２０に対して、機能プロバイダＩＤ、ユーザＩＤ、お気に入り設定値リスト［設定ＩＤ、設定値］を送信して、お気に入り設定登録を依頼する。ここで機能プロバイダＩＤは、自らの機能プロバイダＩＤであり、ユーザＩＤは、ワークフロー処理部４３０に対して処理を指示したユーザのユーザＩＤである。お気に入り設定値リストは、設定項目を表す設定ＩＤと、設定項目に対する設定内容を表す設定値の組のリストである。
【０１０８】
Ｓ１５０６において、機能プロバイダ管理部４２０は、Ｓ１５０５で受信した機能プロバイダＩＤをもとに検索条件に一致する機能プロバイダの機能タイプを機能プロバイダ情報テーブル４２４から抽出する。Ｓ１５０７において、機能プロバイダ管理部４２０が、変数ｉの値を１に初期化する。
【０１０９】
Ｓ１５０８において、機能プロバイダ管理部４２０が、変数ｉの値が、Ｓ１５０５において機能プロバイダから受信したお気に入り設定リストの件数以下であるか否かを判断する。そして、機能プロバイダ管理部４２０が、変数ｉの値がお気に入り設定値リストの件数以下であると判断した場合、処理をループさせる。すなわち、機能プロバイダが、変数ｉの値が、お気に入り設定リストの件数以下であると判断した場合は、処理はＳ１５０９に進む。一方、機能プロバイダが、変数ｉの値が、お気に入り設定リストの件数以下ではないと判断した場合は、処理はＳ１５１１に進む。
【０１１０】
Ｓ１５０９において、機能プロバイダは、機能プロバイダ管理部４２０が、Ｓ１５０６で取得した機能タイプ、Ｓ１５０５で受信した機能プロバイダＩＤ、ユーザＩＤを取得する。そして、機能プロバイダ管理部４２０が、機能タイプ、機能プロバイダＩＤ、ユーザＩＤに紐づけて、お気に入り設定値［設定ＩＤ、設定値］のリストの要素を１件ずつ機能プロバイダお気に入り設定テーブル４２６に保存する。本例では、図７の機能プロバイダお気に入り設定テーブル４２６の２〜４行目のように、お気に入り設定値リストが保存される。
【０１１１】
Ｓ１５１０において、機能プロバイダ管理部４２０が、変数ｉの値をｉ＋１に設定する。そして処理はＳ１５０８に戻る。Ｓ１５１１において、機能プロバイダ管理部４２０は、機能プロバイダに対して、Ｓ１５０９でお気に入り設定を保存した結果を登録結果として返却する。そして処理はＳ１５０２に戻る。
【０１１２】
Ｓ１５１２において、機能プロバイダは、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定呼出であるか否かを判断する。機能プロバイダが、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定呼出であると判断した場合は、処理はＳ１５１３に進む。機能プロバイダが、Ｓ１５０３においてユーザから入力された内容が、お気に入り設定呼出ではないと判断した場合は、処理はＳ１５２０に進む。
【０１１３】
Ｓ１５１３において、機能プロバイダは、機能プロバイダ管理部４２０に対して、機能プロバイダＩＤ、ユーザＩＤ、肯定的設定値リスト［設定ＩＤ、設定値］、否定的設定値リスト［設定ＩＤ、設定値］を送信して、お気に入り設定呼出を依頼する。
ここで機能プロバイダＩＤは、自らの機能プロバイダＩＤであり、ユーザＩＤは、ワークフロー処理部４３０に対して処理を指示したユーザのユーザＩＤである。肯定的設定値リストは、ＭＦＰ１０１によらない全設定値のうち、機能プロバイダ自らが設定を許可する設定項目と設定値の組である。
否定的設定値リストは、ＭＦＰ１０１によらない全設定値のうち、機能プロバイダ自らが設定を拒否する設定項目と設定値の組である。肯定的設定値リストと否定的設定値リストのいずれも、設定項目を表す設定ＩＤと、設定項目に対する設定内容を表す設定値の組のリストである。
【０１１４】
Ｓ１５１４において、機能プロバイダ管理部４２０は、Ｓ１５１３で受信した機能プロバイダＩＤをもとに検索条件に一致する機能プロバイダの機能タイプを機能プロバイダ情報テーブル４２４から抽出する。
【０１１５】
Ｓ１５１５において、機能プロバイダ管理部４２０は、Ｓ１１０１で受信した機能プロバイダＩＤとユーザＩＤをもとに、検索条件に一致する機能プロバイダお気に入り設定を機能プロバイダお気に入り設定テーブル４２６から抽出する。そして、機能プロバイダ管理部４２０は、抽出した結果の設定ＩＤと設定値の組をリストとして、お気に入り設定値リストを作成する。
【０１１６】
Ｓ１５１６において、機能プロバイダ管理部４２０が、Ｓ１５１５において、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件であるか否かを判断する。機能プロバイダ管理部４２０が、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件であると判断した場合は、処理はＳ１５１７に進む。一方、機能プロバイダ管理部４２０が、機能プロバイダお気に入り設定テーブル４２６を検索した結果のお気に入り設定リストの件数が０件ではないと判断した場合は、処理はＳ１５１８に進む。
【０１１７】
Ｓ１５１７において、機能プロバイダ管理部４２０は、Ｓ１５１４で取得した機能タイプと、Ｓ１５１３で受信したユーザＩＤの機能プロバイダお気に入り設定テーブル４２６の検索を行う。
機能プロバイダ管理部４２０は、機能タイプとユーザＩＤの検索条件に一致する機能プロバイダお気に入り設定を機能プロバイダお気に入り設定テーブル４２６から抽出する。そして、機能プロバイダ管理部４２０は、抽出した結果の設定ＩＤと設定値の組をリストとして、お気に入り設定値リストを作成する。機能プロバイダ管理部４２０は、機能タイプに対するお気に入り設定リストの抽出結果が複数個取得されてもよい。
【０１１８】
Ｓ１５１８において、機能プロバイダ管理部４２０が、Ｓ１５１５またはＳ１５１７で取得したお気に入り設定リストの値域チェック処理を行う。本処理の詳細は、図１２で説明済みのため、ここでは説明は省略する。
【０１１９】
Ｓ１５１９において、機能プロバイダ管理部４２０は、機能プロバイダに対して、Ｓ１５１８において抽出されたお気に入り設定リストを、お気に入り設定取得結果として返却する。そして処理はＳ１５０３に戻る。
【０１２０】
Ｓ１５２０において、機能プロバイダは、Ｓ１５０３においてユーザから入力された内容が、機能プロバイダ実行であるか否かを判断する。機能プロバイダが、Ｓ１５０３においてユーザから入力された内容が、機能プロバイダ実行であると判断した場合は、処理はＳ１５２１に進む。一方、機能プロバイダが、Ｓ１５０３においてユーザから入力された内容が、機能プロバイダ実行ではないと判断した場合は、処理はＳ１５２３に進む。
Ｓ１５２１において、機能プロバイダが、指示に従って機能プロバイダ処理を実行する。Ｓ１５２２において、機能プロバイダが、ワークフロー処理部４３０に対して、機能プロバイダ処理を行った結果を送信する。そして処理は終了する。一方、Ｓ１５２３では、機能プロバイダが、指示に従ってキャンセル処理を実行する。そして処理はＳ１５２２に進む。
【０１２１】
本実施形態によれば、複数の機能プロバイダを組み合わせて一連の処理として実行する手段および一連の処理のなかで、機能プロバイダ管理部がお気に入り登録手段、お気に入り呼出手段を提供する。
また、アプリを構成するワークフローが変更され、機能タイプが同じ機能プロバイダが実行される場合、以前機能プロバイダから登録されたお気に入り設定を引き継いで、新しく実行する機能プロバイダで呼出すことができる。これにより、アプリの構成変更が行われた場合でも、ユーザが再度お気に入り設定を行う手間を軽減することができる。
【０１２２】
また、機能プロバイダ管理部は、機能プロバイダお気に入り設定テーブルから読み出したお気に入り設定の各設定値に対して、呼出す機能プロバイダの肯定的設定値、否定的設定値、ＭＦＰの能力値から設定可能値リストを作成し、その範囲内か否かを判断する。これにより、お気に入り設定を登録した機能プロバイダと、お気に入り設定を呼出す機能プロバイダの設定値が異なっていた場合でも、お気に入り設定を呼出す機能プロバイダで設定可能な設定値のみに絞って、お気に入り設定を呼出すことができる。またお気に入り登録時とお気に入り呼出時のＭＦＰの能力値が異なっていた場合でも、お気に入り設定を呼出した時点の機能プロバイダで使用可能な設定値のみに絞って、お気に入り設定を呼出すことができる。
【０１２３】
また、本実施形態では、ワークフローを構成するものとして、ワークフロー処理部が、機能プロバイダを呼び出す構成で説明したが、拡張ソフトであるアプリがワークフロー処理部の役割を行い、他の拡張ソフトを呼び出す構成であってもよい。例えば、任意のアプリが処理を行う際に、処理の途中で他のアプリや機能プロバイダを呼び出す際に、処理毎にデザインの定義を保持していて、呼び出す際にそのデザインの指定を呼び出される側の拡張ソフトに渡すように構成してもよい。
【０１２４】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２５】
１０１  ＭＦＰ
【図１】
2017050813.tif 000003
【図２】
2017050813.tif 000004
【図３】
2017050813.tif 000005
【図４】
2017050813.tif 000006
【図５】
2017050813.tif 000007
【図６】
2017050813.tif 000008
【図７】
2017050813.tif 000009
【図８】
2017050813.tif 000010
【図９】
2017050813.tif 000011
【図１０】
2017050813.tif 000012
【図１１】
2017050813.tif 000013
【図１２】
2017050813.tif 000014
【図１３】
2017050813.tif 000015
【図１４】
2017050813.tif 000016
【図１５】
2017050813.tif 000017