(57)【要約】【課題】共通データベースが存在しない場合であっても、適切に機能を実行することが可能となる情報処理プログラムを提供する。【解決手段】設定アプリ１６１は、管理アプリ１５１がＰＣ１００にインストールされることにより共通ＤＢ１５５が構築されている場合には、共通ＤＢ１５５から複数のＭＦＰ２００の識別情報を示す第１デバイスリストを取得し、記憶部１５０に共通ＤＢ１５５が構築されていない場合には、通信ＩＦ１６０を介して複数のＭＦＰ２００を検索することにより、複数のＭＦＰ２００の識別情報を示す第２デバイスリストを取得する取得処理と、第１デバイスリスト又は第２デバイスリストを表示部１２０に表示させる第１表示処理と、第１表示処理により表示された第１デバイスリスト又は第２デバイスリストから選択された２以上のデバイスとの間で、設定データを送信、又は受信する通信処理と、をＰＣ１００に実行させる。【選択図】  図２
2020135607.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置と通信可能な通信部と、操作部と、表示部と、記憶部と、を備えた端末装置のための第１情報処理プログラムであって、
前記第１情報処理プログラムは、
前記第１情報処理プログラムと異なる第２情報処理プログラムが前記端末装置にインストールされることにより前記記憶部に共通データベースが構築されている場合には、前記共通データベースに記憶された第１デバイスリストであって、前記複数の通信装置の識別情報を示す第１デバイスリストを取得し、前記記憶部に共通データベースが構築されていない場合には、前記通信部を介して前記複数の通信装置を検索することにより、前記複数の通信装置の識別情報を示す第２デバイスリストを取得する取得処理と、
前記第１デバイスリスト又は前記第２デバイスリストを前記表示部に表示させる第１表示処理と、
前記第１表示処理により表示された前記第１デバイスリスト又は前記第２デバイスリストから選択された２以上の通信装置との間で、設定データを送信、又は受信する通信処理と、
を前記端末装置に実行させる、
情報処理プログラム。
【請求項２】
前記第１情報処理プログラムはさらに、
前記記憶部に前記共通データベースが構築されているかどうかを判断する判断処理と、
前記判断処理により前記共通データベースが構築されていると判断された場合には、動作モードのデフォルトを第１モードに設定し、前記判断処理により前記共通データベースが構築されていないと判断された場合には、動作モードのデフォルトを第２モードに設定する設定処理と、
を前記端末装置に実行させ、
前記取得処理は、前記動作モードが前記第１モードに設定された場合には、前記第１デバイスリストを取得し、前記動作モードが前記第２モードに設定された場合には、前記第２デバイスリストを取得する、
請求項１に記載の情報処理プログラム。
【請求項３】
前記第２情報処理プログラムは、バックグランドで動作するサービスであるバックグランドサービスのプログラムを含み、
前記判断処理は、前記バックグランドサービスが実行中である場合に、前記共通データベースが構築されていると判断し、前記バックグランドサービスが無い場合に、前記共通データベースが構築されていないと判断し、
前記取得処理は、前記バックグランドサービスが実行中である場合に、前記バックグランドサービスに前記第１デバイスリストを要求するコマンドを送信し、前記コマンドの送信に応じて前記バックグランドサービスが前記共通データベースから読み出した前記第１デバイスリストを取得する、
請求項２に記載の情報処理プログラム。
【請求項４】
前記設定処理は、前記判断処理により前記バックグランドサービスが停止状態である場合に、前記動作モードを前記第２モードに設定し、
前記第１情報処理プログラムはさらに、
前記設定処理により設定されたデフォルトの動作モードを変更するための操作子を前記表示部に表示させる第２表示処理と、
前記第２表示処理により表示された前記操作子に対して前記操作部を介して行った操作を受け付ける受付処理と、
前記受付処理により、前記動作モードを前記第２モードから前記第１モードへ変更するための操作が、前記操作子に対して受け付けられた場合には、前記バックグランドサービスの起動指示を前記記憶部に記憶されているオペレーティングシステムに送信する送信処理と、
を前記端末装置に実行させる、
請求項３に記載の情報処理プログラム。
【請求項５】
前記操作子は、前記判断処理により前記共通データベースが構築されていないと判断された場合には、前記表示部に表示されない、
請求項４に記載の情報処理プログラム。
【請求項６】
前記取得処理により前記第２デバイスリストが取得された後に、前記第２情報処理プログラムが前記端末装置にインストールされた場合、前記第２デバイスリストを前記共通データベースに登録することは禁止される、
請求項１乃至５のいずれか１項に記載の情報処理プログラム。
【請求項７】
前記通信部は、サーバと通信可能であり、
前記取得処理は、前記判断処理により前記共通データベースが構築されていると判断された場合には、前記共通データベースから前記サーバと通信するための第１プロキシ設定を取得し、前記判断処理により前記共通データベースが構築されていないと判断された場合には、前記サーバと通信するための第２プロキシ設定をユーザから受け付けることによって取得し、
前記通信処理は、前記取得処理により取得された前記第１プロキシ設定又は前記第２プロキシ設定を用いて前記サーバと通信した後に、前記選択された２以上の通信装置との間で、前記設定データを送信、又は受信する、
請求項２乃至６のいずれか１項に記載の情報処理プログラム。
【請求項８】
前記取得処理は、前記判断処理により前記共通データベースが構築されていると判断された場合には、前記複数の通信装置とＳＮＭＰ（simple network management protocol）に従って通信するための第１ＳＮＭＰ設定を前記共通データベースから取得し、前記判断処理により前記共通データベースが構築されていないと判断された場合には、前記複数の通信装置と前記ＳＮＭＰに従って通信するための第２ＳＮＭＰ設定をユーザから受け付けることによって取得し、
前記通信処理は、前記取得処理により取得された前記第１ＳＮＭＰ設定又は前記第２ＳＮＭＰ設定を用いて前記選択された２以上の通信装置との間で、前記設定データを送信、又は受信する、
請求項２乃至７のいずれか１項に記載の情報処理プログラム。
【請求項９】
前記第１情報処理プログラムは、前記端末装置にインストールされることなく実行可能なプログラムであり、
前記第２情報処理プログラムは、前記端末装置にインストールされることによって実行可能なプログラムである、
請求項１乃至８のいずれか１項に記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、複数の通信装置との間で、設定ファイルを送信、又は受信する情報処理プログラムに関するものである。
【背景技術】
【０００２】
特許文献１には、起動されたアプリケーションの記憶部に記憶された共通基本情報（Ｂ）と、共通データベースに記憶された共通基本情報（Ａ）とが一致しない場合、共通基本情報（Ｂ）を共通基本情報（Ａ）に上書きし、共通基本情報（Ａ）を用いて処理を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１６４７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の技術では、第２のアプリケーションの動作時に、共通データベースが構築済みであることを前提としている。そのため、例えば、共通データベースが構築されていない場合に、共通データベースを利用するアプリケーションがどう動作するかについては、特許文献１では考慮されていない。
【０００５】
そこで本願は、共通データベースが存在しない場合であっても、適切に機能を実行することが可能となる情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本願の情報処理プログラムは、複数の通信装置と通信可能な通信部と、操作部と、表示部と、記憶部と、を備えた端末装置のための第１情報処理プログラムであって、第１情報処理プログラムは、第１情報処理プログラムと異なる第２情報処理プログラムが端末装置にインストールされることにより記憶部に共通データベースが構築されている場合には、共通データベースに記憶された第１デバイスリストであって、複数の通信装置の識別情報を示す第１デバイスリストを取得し、記憶部に共通データベースが構築されていない場合には、通信部を介して複数の通信装置を検索することにより、複数の通信装置の識別情報を示す第２デバイスリストを取得する取得処理と、第１デバイスリスト又は第２デバイスリストを表示部に表示させる第１表示処理と、第１表示処理により表示された第１デバイスリスト又は第２デバイスリストから選択された２以上のデバイスとの間で、設定データを送信、又は受信する通信処理と、を端末装置に実行させる。
【発明の効果】
【０００７】
本願の情報処理プログラムによれば、共通データベースが存在しない場合であっても、適切に機能を実行することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本願の一実施の形態に係る情報処理プログラムを実行するパーソナルコンピュータ、及びパーソナルコンピュータと通信可能に接続されている複合機を示す模式図である。
【図２】本願の一実施の形態に係る情報処理プログラムの構成例の一部を示すブロック図、及び、データベースに格納されるデータのフォーマットの一例を示す図である。
【図３】設定アプリケーションを起動したときに表示されるメイン画面、及び、ドロップダウンリストの各一例を示す図である。
【図４】“Backup Setting”機能が選択されたときのメイン画面、及び、“PJL Activation”機能が選択されたときのメイン画面の各一例を示す図である。
【図５】“Add Devices”画面の一例を示す図である。
【図６】通信設定画面の一例を示す図である。
【図７】通信設定画面の一例を示す図である。
【図８】連携処理のフローチャートである。
【図９】デバイスリスト表示処理のフローチャートである。
【図１０】実行ボタン選択時処理のフローチャートである。
【図１１】“PLJ Activation”マップ作成処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本願の実施の形態を図面に基づいて詳細に説明する。
（システム構成）
【００１０】
図１は、本願の一実施の形態に係る情報処理プログラムを実行するパーソナルコンピュータ１００、及びパーソナルコンピュータ１００と通信可能に接続されている複合機２００を示す模式図である。以下、パーソナルコンピュータ１００をＰＣ１００といい、複合機２００をＭＦＰ２００という。なおＭＦＰは、multifunction peripheral の略語である。
【００１１】
ＰＣ１００は、操作部１１０、表示部１２０、音声Ｉ／Ｏ（input/output）１３０、ＣＰＵ（central processing unit）１４０、記憶部１５０及び通信ＩＦ（interface）１６０を備えている。
【００１２】
操作部１１０は、典型的には、キーボードとマウスにより構成される。
【００１３】
表示部１２０は、液晶ディスプレイや有機ＥＬ（electro-luminescence）ディスプレイなどの表示装置、表示装置を駆動する駆動回路などにより構成されている。表示部１２０として、タッチパネル方式のものを用いた場合には、ユーザは、画面上の入力ボタンをクリックすることで、入力操作をすることができる。したがってこの場合には、表示部１２０は、操作部１１０としての役割も果たすことになる。なお、クリックとは、ポイント・アンド・クリック（point-and-click）のことであり、オブジェクトを実行したり、開いたりすることを意味する（以下、同様）。
【００１４】
音声Ｉ／Ｏ１３０は、マイク、スピーカ、音声処理回路などにより構成されている。
【００１５】
ＣＰＵ１４０は、本実施形態の情報処理プログラムを含む各種アプリケーションプログラム（以下「アプリ」と略す）やファームウェア（firmware）等を実行する。
【００１６】
記憶部１５０は、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）、ＨＤＤ（hard disk drive）、ＳＳＤ（solid state drive）及び光ディスクドライブなどを含んでいる。ＲＯＭには、ファームウェアや各種データが格納されている。ＲＡＭは、ＣＰＵ１４０がアプリをロードしたり、各種の処理を実行したりするための一時記憶部として用いられる。
【００１７】
記憶部１５０には、ＯＳ（operating system）、本実施形態の情報処理プログラム、その他各種のアプリやデータなどが記憶される。
【００１８】
本実施形態の情報処理プログラムを含む各種アプリは、通信ＩＦ１６０を介して外部のサーバ（図示せず）からダウンロードすることができる。なお、ＰＣ１００に設けられたＵＳＢ（universal serial bus）インタフェース（ＩＦ）を介して、外部機器（図示せず）から各種アプリをダウンロードしてもよい。
【００１９】
通信ＩＦ１６０は、ＰＣ１００を通信ネットワーク３００に接続したり、ＰＣ１００に外部機器を接続したりするものである。通信ネットワーク３００は、本実施形態では有線又は無線ＬＡＮ（local area network）を想定しているので、通信ＩＦ１６０は、ＬＡＮＩＦ（local area network interface）又はＷＬＡＮ ＩＦ（wireless LAN interface）である。もちろん、有線ＬＡＮと無線ＬＡＮが同時に存在する場合もあり、この場合には、通信ＩＦ１６０は、ＬＡＮＩＦ及びＷＬＡＮ ＩＦの両方を含んでいる。また、外部機器をＰＣ１００に直接接続するＩＦとしては、上記ＵＳＢＩＦやＢｌｕｅｔｏｏｔｈ（登録商標）ＩＦなどが含まれる。
【００２０】
通信ネットワーク３００には、本実施形態では複数のＭＦＰ２００が接続されている。各ＭＦＰ２００は、本実施形態では説明の都合上、同一メーカの同一モデルとするが、これに限らず、異なるメーカのものであってもよいし、同一メーカの異なるモデルであってもよい。また本実施形態では、通信装置の例として、ＭＦＰを挙げているが、これに限らず、単体のプリンタやスキャナ、コピー機であってもよいし、ＭＦＰと、プリンタ、スキャナ及びコピー機とが同時に存在する態様であってもよい。
【００２１】
なおＰＣ１００には、通信ネットワーク３００を介さずに直接、１台のＭＦＰ２００も接続されている。このときの接続ＩＦは、本実施形態ではＵＳＢＩＦを用いている。
【００２２】
通信ネットワーク３００にはさらに、プロキシサーバ２５０が接続され、プロキシサーバ２５０は、インターネット３５０に接続されている。プロキシサーバ２５０は、通信ネットワーク３００に接続されている機器、つまり本実施形態では、ＰＣ１００及び各ＭＦＰ２００を、セキュリティを維持しつつインターネット３５０に接続する役割を果たしている。
【００２３】
インターネット３５０には、管理サーバ２７０と、メールサーバ２９０とが接続されている。管理サーバ２７０は、各ＭＦＰ２００が備える有償機能を管理するものであり、メールサーバ２９０は、メールの送受信を行うものである。ＰＣ１００が、管理サーバ２７０及びメールサーバ２９０にアクセスする場合、プロキシサーバ２５０を介してアクセスする。なおＭＦＰ２００も理論上は、管理サーバ２７０及びメールサーバ２９０にプロキシサーバ２５０を介してアクセス可能であるが、本実施形態ではＭＦＰ２００は、管理サーバ２７０及びメールサーバ２９０にアクセスしないものとする。
（情報処理プログラムの構成）
【００２４】
本実施形態の情報処理プログラムは、図２（ａ）に示すように、管理アプリ１５１と、設定アプリ１６１とにより構成されている。
【００２５】
管理アプリ１５１は、ＭＦＰ２００の状態（ステータス）を装置毎に表示部１２０に表示し、管理可能なアプリである。管理アプリ１５１は、ＭＦＰ２００との間で設定ファイルの送信、又は受信を行う機能（“Send Files”，“Backup Settings”，“Send Log”，“Notification”）を実行するためのプログラムでもある。管理アプリ１５１は、インストールによりＰＣ１００の記憶部１５０の、例えばＨＤＤ内に導入される。ＣＰＵ１４０は、管理アプリ１５１の内容を記憶部１５０のＲＡＭ内にロードし、バックグランドサービス１５３を実行させる。そしてユーザが、インストールされた管理アプリ１５１の実行ファイルを指示するアイコン（図示せず）をクリックすると、第１ユーザインターフェース制御層（以下、「第１ＵＩ制御層」と略す）１５２のプログラムが実行される。
【００２６】
図２（ａ）は、ロードされた管理アプリ１５１及び設定アプリ１６１の構成例の一部を示している。管理アプリ１５１は、図２（ａ）に示すように階層構造をなしており、最上層から下位層にかけて、第１ＵＩ制御層１５２、バックグランドサービス１５３及びデータサービス層１５４を備えている。またデータサービス層１５４には、データベース（ＤＢ）１５５が接続されている。さらにバックグランドサービス１５３の下位には、ビジネスロジック層１５６、データ制御層１５７、プロトコル層１５８及び通信インターフェース層１５９が設けられている。ビジネスロジック層１５６から通信インターフェース層１５９までをプラットフォーム（ＰＦ）１６５と称する。なお、ビジネスロジック層１５６へのアクセスは、第１ＵＩ制御層１５２又は後述する第２ユーザインターフェース制御層（以下、「第２ＵＩ制御層」と略す）１６２によってバックグランドサービス１５３を通してなされる場合と、第２ＵＩ制御層１６２からバックグランドサービス１５３を通さずになされる場合と、がある（各場合の詳細は、後述する）。
【００２７】
第１ＵＩ制御層１５２の管理プログラム１５１は、ＧＵＩ（graphical user interface）をＰＣ１００のユーザに提供するとともに、該ＧＵＩに対するユーザ操作を受け付けて、各種パラメータを設定及び変更等するためのプログラムである。またバックグランドサービス１５３を経由してデータサービス層１５４やビジネスロジック層１５６にアクセスし、ＭＦＰ２００との間で各種機能を実行し、ＧＵＩ上に結果を表示する。
【００２８】
バックグランドサービス１５３の管理プログラム１５１は、ＯＳ上のバックグラウンドサービスとして実行可能なプログラムであり、第１ＵＩ制御層１５２からの要求を受け、データサービス層１５４を保守する役割をもつ。データサービス層１５４のデータ更新にあたっては、ＰＦ１６５のビジネスロジック層１５６を呼び出して、結果をデータサービス層１５４に格納する。
【００２９】
データサービス層１５４の管理プログラム１５１は、ＤＢ１５５へのデータの読み書き（また、その際の排他制御）、データの追加や削除のためのＡＰＩ（application programming interface）を提供するためのプログラムである。これ以外にも、データサービス層１５４の管理プログラム１５１は、バックグランドサービス１５３で実行されるデバイス・アクション・シナリオ（device action scenario）を管理したり、第１ＵＩ制御層１５２とバックグランドサービス１５３間の通知の仕組みを提供したりする。なお、デバイス・アクション・シナリオ（以下「シナリオ」と略す）は、ビジネスロジック層１５６の管理プログラム１５１が提供する関数を実行する順番を規定した情報である。
【００３０】
ビジネスロジック層１５６の管理プログラム１５１は、データ制御層１５７にアクセスし、管理アプリ１５１及び設定アプリ１６１を用いて実行される機能を実現するための関数を提供するためのプログラムである。提供される関数は、例えば“Discovery”関数、“Send Files”関数及び“Backup Settings”関数である。
【００３１】
“Discovery”関数は、ＰＣ１００と通信可能に接続されているＭＦＰ２００を検索する関数である。ＣＰＵ１４０は、“Discovery”関数を呼び出すと、通信ＩＦ１６０を介してブロードキャストアドレス宛にパケットを送信し、当該パケットに応答したＭＦＰ２００が出力した情報（例えば、モデル名、ＩＰアドレス及びノード名）を通信ＩＦ１６０を介して受信する。ＣＰＵ１４０は、応答した各ＭＦＰ２００に対して、当該ＭＦＰ２００を一意に特定するデバイスＩＤを付与し、各ＭＦＰ２００から受信した情報に基づいて、図２（ｂ）に示すデバイスリストを生成する。なおデバイスリスト（ｂ）中、“Discovery”関数では受信されない情報、例えば「有償機能の有無」の情報は、デバイスリストに記載されたデバイスＩＤによって示されるＩＰアドレス宛てにパケットを送信し、ユニキャストで取得するようにすればよい。なお、図２（ｂ）のデバイスリストに記載されるＭＦＰ２００についての情報は、一例に過ぎず、上記情報に加えて、シリアル番号及びＭＡＣアドレス（media access control address）等を含むようにしてもよいし、上記情報からいずれかの一部情報を含まないようにしてもよい。
【００３２】
“Send Files”関数は、ＭＦＰ２００に設定ファイルを送信する関数である。ＣＰＵ１４０が、引数としてデバイスＩＤ及び設定ファイルの格納場所を渡して“Send Files”関数を呼び出すと、当該格納場所から設定ファイルを読み出し、読み出した設定ファイルをデバイスＩＤによって示されるＭＦＰ２００に送信する。
【００３３】
“Backup Settings”関数は、ＭＦＰ２００の設定ファイルを指定された保存場所に保存する関数である。ＣＰＵ１４０が、引数としてデバイスＩＤ、設定ファイルの保存場所及びバックアップ項目を渡して“Backup Settings”関数を呼び出すと、デバイスＩＤによって示されるＭＦＰ２００の各種設定から、バックアップ項目に対応する設定を抜き出して設定ファイルとし、当該設定ファイルを保存場所に保存する。
【００３４】
さらに、これら以外にも各種関数が提供されるが、本実施形態を説明する上で必要ではないため、これ以上の説明は省略する。
【００３５】
データ制御層１５７の管理プログラム１５１は、ＭＩＢ（management information base）やＰＪＬ（printer job language）、ＪＳＯＮ（JavaScript（登録商標） object notation）等を利用して、ＭＦＰ２００に対してデータを入出力するためのプログラムである。
【００３６】
プロトコル層１５８の管理プログラム１５１は、指定したＭＦＰ２００のＵＳＢポートに対するデータの入出力、及び、ＴＣＰ（transmission control protocol）の９１００番ポートに対するデータの入出力を提供する。またプロトコル層１５８の管理プログラム１５１は、指定したＭＦＰ２００のＳＮＭＰ（simple network management protocol）を利用したデータの入出力、及び、指定したＭＦＰ２００、サービスのＨＴＴＰ（hypertext transfer protocol）を利用したデータの入出力を提供する。
【００３７】
通信インターフェース層１５９の管理プログラム１５１は、データの入出力にプリンタドライバ、ＵＳＢドライバ、ソケット（socket）あるいはＨＴＴＰを使用する場合に利用される。
【００３８】
ＤＢ１５５には、ＭＦＰ２００のリスト（つまり、上記デバイスリスト）や各ＭＦＰ２００のステータス、ログなど、ＭＦＰ２００に関する各種情報が格納される。
【００３９】
一方、設定アプリ１６１は、ＭＦＰ２００に対して各種設定を行うアプリである。設定アプリ１６１は、ＭＦＰ２００との間で設定ファイルの送信、又は受信を行う機能（“Send Files”及び“Backup Settings”）を実行するためのプログラムでもある。設定アプリ１６１は、管理アプリ１５１より実行できる機能が少ない簡易的なアプリであるとも言える。設定アプリ１６１は、実行ファイルの形式で、ＰＣ１００の記憶部１５０の、例えばＨＤＤ内に導入される。つまり設定アプリ１６１は、インストール不要のプログラムである。そしてユーザが、設定アプリ１６１の実行ファイルを指示するアイコン（図示せず）をクリックすると、第２ＵＩ制御層１６２の設定プログラム１６１が実行される。
【００４０】
第２ＵＩ制御層１６２の設定プログラム１６１は、第１ＵＩ制御層１５２と同様に、ＧＵＩをＰＣ１００のユーザに提供するとともに、該ＧＵＩに対するユーザ操作を受け付けて、各種パラメータを設定及び変更等するためのプログラムである。また第２ＵＩ制御層１６２は、第１ＵＩ制御層１５２と同じ上位層に属し、第２ＵＩ制御層１６２の設定プログラム１６１は、第１ＵＩ制御層１５２の管理プログラム１５１と同様に、バックグランドサービス１５３を通してデータサービス層１５４の各機能を実行し、ＤＢ１５５からデータの読み取りを行うことができる。さらに第２ＵＩ制御層１６２の設定プログラム１６１は、バックグランドサービス１５３を経由せずに直接、ビジネスロジック層１５６にアクセスし、ＭＦＰ２００との間で各種機能を実行し、ＧＵＩ上に結果を表示する。
【００４１】
このように第２ＵＩ制御層１６２も、管理アプリ１５１に含まれる複数層の階層とともに、階層構造をなしている。
（設定アプリの詳細）
【００４２】
設定アプリ１６１は、上述のように管理アプリ１５１より実行できる機能が少ない簡易的なアプリであるので、設定アプリ１６１の、少なくとも一部機能は、管理アプリ１５１の機能に含まれる。具体的には、設定アプリ１６１が実行する“Send Files”機能と“Backup Settings”機能は、管理アプリ１５１側にも備えられている。
【００４３】
設定アプリ１６１の特徴の１つは、設定アプリ１６１が管理アプリ１５１と連携できることである。そして連携状態のときには、設定アプリ１６１は、管理アプリ１５１によって構築されたＤＢ１５５を管理アプリ１５１と共有して使用することができる。
【００４４】
設定アプリ１６１は、上述のように実行ファイル形式のプログラムであり、インストール不要のプログラムである。ＤＢ１５５は、設定アプリ１６１によって構築されない。一方、管理アプリ１５１は、上述のようにインストールによりＰＣ１００内に導入されるプログラムである。そして管理アプリ１５１がインストールされるときに、ＤＢ１５５が構築される。そこで設定アプリ１６１は、自身の機能や処理を実行する際に、管理アプリ１５１と連携状態のときには、管理アプリ１５１のＤＢ１５５を使用して実行するようにしている。
【００４５】
設定アプリ１６１の特徴の１つは、管理アプリ１５１と連携できないときには、管理アプリ１５１のＤＢ１５５を使用できないが、このときでも自身の機能や処理を実行できることである。
【００４６】
設定アプリ１６１の特徴の１つは、管理アプリ１５１のプログラム構成の一部を利用して、設定アプリ１６１の機能や処理を実行することである。具体的には、設定アプリ１６１は、自身の機能や処理を実行する際に、管理アプリ１５１の上記ＰＦ１６５を利用する。
（メイン画面の画面構成）
【００４７】
図３（ａ）は、設定アプリ１６１を起動したときに表示部１２０に表示されるメイン画面８００の一例を示している。
【００４８】
メイン画面８００には、設定アプリ１６１によって実現される機能を選択して切り替えるための機能選択コンボボックス８０１が設けられている。機能選択コンボボックス８０１の右端には、ドロップダウンボタン８０２が設けられ、ユーザがドロップダウンボタン８０２をクリックすると、図３（ｂ）に示すようにドロップダウンリスト８３０が表示される。
【００４９】
ドロップダウンリスト８３０に提示された機能は、“Send Files”，“Backup Settings”及び“PJL Activation”である。
【００５０】
“Send Files”は、ＭＦＰ２００に適用させる設定ファイル（例えばＪＳＯＮやＰＪＬ等により記載されたもの）をＭＦＰ２００に送信する機能である。“Backup Settings”は、ＭＦＰ２００の設定を示す設定ファイルをＭＦＰ２００から受信し、保存する機能である。“PJL Activation”は、ＭＦＰ２００の有償機能（本実施形態では“Custom UI”機能）を有効化／無効化する機能である。なお“Custom UI”機能は、ＭＦＰ２００の表示部（図示せず）の表示内容を通常表示と異なる特殊表示にカスタマイズさせる機能である。
【００５１】
図３（ａ）に戻り、メイン画面８００は、機能選択コンボボックス８０１により“Send Files”機能が選択された状態のものである。“Add Devices”アイコン８０３は、送信先リスト領域８１０にデバイス、つまりＭＦＰ２００を追加するときにクリックするものである。“Refresh”アイコン８０４は、送信先リスト領域８１０に表示されたＭＦＰ２００の状態を最新の状態にリフレッシュ（更新）するためのものである。“Application Settings”アイコン８０５は、アプリケーション設定画面（図６参照）を表示部１２０に表示させるためのものである。
【００５２】
“Set Files”ボタン８０６は、送信先リスト領域８１０に表示されたＭＦＰ２００のうち、選択されたものに対して設定ファイル（の場所）を設定するものである。“Set Device Password”ボタン８０７は、送信先リスト領域８１０に表示されたＭＦＰ２００のうち、選択されたものに対してパスワードを設定するものである。“Delete Devices”ボタン８０８は、送信先リスト領域８１０から、選択されたＭＦＰ２００を削除するものである。
【００５３】
送信先リスト領域８１０は、ファイルの送信先をリスト表示する領域である。
【００５４】
“Save as Deploy Profile”ボタン８２０は、現在の設定状態をプロファイルとして記憶させるものである。“Apply”ボタン８２１は、現在の設定状態の適用を指示するものである。
【００５５】
図４（ａ）は、機能選択コンボボックス８０１により“Backup Settings”機能が選択されたときのメイン画面８４０を示している。図４（ａ）のメイン画面８４０は、図３（ａ）のメイン画面８００に対して、異なる構成についてのみ異なる符号を付与している。したがって、同じ符号を付与した構成についての説明は省略する。
【００５６】
バックアップ対象リスト領域８５０は、バックアップ対象とするＭＦＰ２００をリスト表示する領域である。
【００５７】
“Set Device Password”ボタン８４１は、バックアップ対象リスト領域８５０に表示されたＭＦＰ２００のうち、選択されたものに対してパスワードを設定するものである。領域８４３は、バックアップする場所を指定するための領域である。領域８４４は、バックアップ対象の項目を指定するための領域である。
【００５８】
“Save as Deploy Profile”ボタン８４５は、現在の設定状態をプロファイルとして記憶させるものである。“Backup”ボタン８４６は、現在の設定状態でのバックアップを指示するものである。
【００５９】
図４（ｂ）は、機能選択コンボボックス８０１により“PJL Activation”機能が選択されたときのメイン画面８６０を示している。図４（ｂ）のメイン画面８６０は、図３（ａ）のメイン画面８００及び図４（ａ）のメイン画面８４０に対して、異なる構成についてのみ異なる符号を付与している。したがって、同じ符号を付与した構成についての説明は省略する。
【００６０】
“PJL Activation”対象リスト領域８７０は、“PJL Activation”機能の対象とするＭＦＰ２００をリスト表示する領域である。
【００６１】
領域８６２は、“Solution File”を指定するための領域である。領域８６３は、“Solution Provider ID”を表示するための領域である。“Solution Provider ID”の指定は、図６（ａ）の通信設定画面９５０の左ペイン９５２の設定項目リストから“Solution”を選択することによって、右ペイン９５３に表示された詳細設定領域から行う。
【００６２】
“Save as Deploy Profile”ボタン８６４は、現在の設定状態をプロファイルとして記憶させるものである。“Activate”ボタン８６５は、現在の設定状態での“PJL Activation”を指示するものである。
（“Add Devices”画面の画面構成）
【００６３】
図５（ａ），（ｂ）は、図３（ａ）のメイン画面８００内の“Add Devices”アイコン８０３がクリックされたときに表示部１２０に表示される“Add Devices”画面９００，９００′の一例である。
【００６４】
図５（ａ）の“Add Devices”画面９００は、設定アプリ１６１が管理アプリ１５１と連携され、ＤＢ１５５が設定アプリ１６１と管理アプリ１５１とで共有されているときに、“Add Devices”アイコン８０３がクリックされた場合に、表示部１２０上に表示される画面を示している。
【００６５】
“Add Devices”画面９００は、図５（ａ）に示すように左ペイン９０１と及び右ペイン９０５を備えている。左ペイン９０１は、ＤＢ１５５に格納されたデバイスリストを選択する領域である。図示例では、ＤＢ１５５には１つのデバイスリストが格納されているので、左ペイン９０１にはその１つが表示されている。右ペイン９０５は、左ペイン９０１において選択されたデバイスリストに提示されたＭＦＰ２００を表示する。つまり、設定アプリ１６１が管理アプリ１５１と連携され、ＤＢ１５５が設定アプリ１６１と管理アプリ１５１とで共有されているときには、デバイスリストは、ＤＢ１５５から取得できるので、ＤＢ１５５から取得したデバイスリストを用いて、“Add Devices”画面９００を表示するようにしている。
【００６６】
一方、図５（ｂ）の“Add Devices”画面９００′は、設定アプリ１６１と管理アプリ１５１とが連携されておらず、ＤＢ１５５が設定アプリ１６１と管理アプリ１５１とで共有できないときに、“Add Devices”アイコン８０３がクリックされた場合に、表示部１２０上に表示される画面を示している。設定アプリ１６１と管理アプリ１５１とが連携されない場合には、設定アプリ１６１と管理アプリ１５１とでＤＢ１５５を共有することはできない。したがってこの場合には、設定アプリ１６１を実行するＣＰＵ１４０は、デバイスリストをＤＢ１５５から取得できず、右ペイン９０５にデバイスリストを表示することができないので、設定アプリ１６１を実行するＣＰＵ１４０は、デバイスリストを生成する。“Add Devices”画面９００′は、設定アプリ１６１を実行するＣＰＵ１４０によって生成されたデバイスリストに基づいて表示部１２０に表示されたものである。
（通信設定画面の画面構成）
【００６７】
図６（ａ）は、アプリケーション設定画面に含まれる通信設定画面９５０の一例を示す図であり、通信設定画面９５０は、表示部１２０に表示される。なおアプリケーション設定画面は、図４（ａ）のメイン画面８４０内の“Application Settings”アイコン８０５がクリックされたときに、メイン画面８４０から遷移する。そして通信設定画面９５０は、アプリケーション設定画面における左ペイン９５２の設定項目リストから“Network”を選択することによって表示される。
【００６８】
通信設定画面９５０は、設定アプリ１６１と管理アプリ１５１とを連携させるか否かを選択するための選択領域９５１と、上記左ペイン９０１と、左ペイン９０１で選択された設定項目についての詳細設定を行うための右ペイン９５３とを備えている。
【００６９】
選択領域９５１には、設定アプリ１６１と管理アプリ１５１とを連携（＝Ｏｎ）又は非連携（＝Ｏｆｆ）のいずれかに切り替える切替ボタン９５４が設けられている。図６（ａ）の通信設定画面９５０では、切替ボタン９５４が“Ｏｆｆ”状態であるので、設定アプリ１６１と管理アプリ１５１とは非連携の状態である。
【００７０】
右ペイン９５３には、ＳＮＭＰ設定についての詳細設定領域が表示され、ユーザは、この詳細設定領域からＳＮＭＰ設定を行うことができる。
【００７１】
図６（ａ）の通信設定画面９５０上の右ペイン９５３が、ＳＮＭＰ設定についての詳細設定領域を表示するのに対して、図６（ｂ）の通信設定画面９５０上の右ペイン９５３′は、プロキシ設定についての詳細設定領域を表示する点が異なっている。ＳＮＭＰ設定についての詳細設定領域と、プロキシ設定についての詳細設定領域との切り替えは、“SNMP”が表示された“SNMP”タブと“Proxy”が表示された“Proxy”タブのいずれかを選択することによってなされる。
【００７２】
ユーザは、図６（ａ）の右ペイン９５３又は図６（ｂ）の右ペイン９５３′によって設定したＳＮＭＰ設定又はプロキシ設定について、設定アプリ１６１側の設定として保存したい場合には、ＯＫボタン９５５をクリックする。一方、当該ＳＮＭＰ設定又はプロキシ設定についてキャンセルしたい場合には、ユーザはキャンセルボタン９５６をクリックする。
【００７３】
図７は、設定アプリ１６１と管理アプリ１５１とが連携された場合の通信設定画面９６０の一例を示している。
【００７４】
設定アプリ１６１と管理アプリ１５１とを連携させるか否かを選択するための選択領域９６１には、切替ボタン９５４が表示され、切替ボタン９５４は“Ｏｎ”状態になっている。切替ボタン９５４が“Ｏｎ”状態のときには、設定アプリ１６１における通信設定は、ＤＢ１５５に格納された通信設定、つまり管理アプリ１５１側で設定された通信設定をそのまま使用するので、管理アプリ１５１のユーザは、管理アプリ１５１側で通信設定を自由に変更することは禁止される。このため右ペイン９６３には、通信設定についての詳細設定領域は表示されない。そして選択領域９６１には「設定を変更する場合は、連携を解除してください」というメッセージが表示される。このとき、ユーザが切替ボタン９５４を“Ｏｎ”状態から“Ｏｆｆ”状態に切り替えると、図７の通信設定画面９６０は、図６（ａ）あるいは図６（ｂ）の通信設定画面９５０に遷移する。
（連携処理）
【００７５】
図８は、設定アプリ１６１の１つの機能である連携処理の手順を示すフローチャートである。連携処理は、設定アプリ１６１と管理アプリ１５１との連携又は非連携を自動又は手動で切り替える処理と、この切り替えに応じた処理とを行う。連携処理は、設定アプリ１６１の起動時に開始され、ＰＣ１００、特にＣＰＵ１４０により実行される。
【００７６】
図８において、まず、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、バックグランドサービス１５３の起動状態を判断する（ステップ（以下「Ｓ」と略す）１）。ＣＰＵ１４０は、上記ＯＳにバックグランドサービス１５３のサービス名を含むコマンドを送信する。当該コマンドを受信したＯＳは、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０に対して、バックグランドサービス１５３の起動状態を示す情報を送信する。第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、受信した情報に基づいて、バックグランドサービス１５３の起動状態を判断する。
【００７７】
バックグランドサービス１５３の起動状態は、バックグランドサービス１５３が「実行中」、「停止中」及び「存在しない」のいずれかである。「実行中」は、バックグランドサービス１５３がＯＳに登録されて起動されている状態である。「停止中」は、バックグランドサービス１５３はＯＳに登録されているものの、起動が停止されている状態である。「存在しない」は、バックグランドサービス１５３がＯＳに登録されていない状態や、登録後に削除された状態である。なお、管理アプリ１５１がＰＣ１００にインストールされていない場合も、バックグランドサービス１５３の起動状態は「存在しない」状態であるが、本実施形態では管理アプリ１５１はインストールされていることを前提とし、管理アプリ１５１がインストールされていない場合は考慮しない。
【００７８】
このようにＣＰＵ１４０は、Ｓ１の判断で、バックグランドサービス１５３が上記３状態のいずれであるかを判断することができる。
【００７９】
Ｓ１において、バックグランドサービス１５３が実行中と判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータを“ＯＮ”に設定する（Ｓ２）。連携パラメータは、設定アプリ１６１の動作モードであって、バックグランドサービス１５３の起動状態に応じた動作モードを示すパラメータであり、“ＯＮ”，“ＯＦＦ”及び“ＮＧ”の３種類のモードのいずれかを取り得るように構成されている。連携パラメータは、上記記憶部１５０の、例えばＲＡＭに記憶される。このように、連携処理中で決定された動作モードをデフォルトの動作モードという。なお、連携処理における動作モードの決定は、上記Ｓ２と、後述するＳ１０，Ｓ２０とで行われる。
【００８０】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、バックグランドサービス１５３に対して、ＤＢ１５５に記憶されている通信設定を要求する（Ｓ３）。通信設定には、ＳＮＭＰ設定及びプロキシ設定が含まれ、当該通信設定は、管理アプリ１５１を実行するＣＰＵ１４０がユーザから受け付け、ＤＢ１５５に登録した設定である。
【００８１】
バックグランドサービス１５３の管理プログラム１５１を実行するＣＰＵ１４０は、第２ＵＩ制御層１６２からの通信設定の要求に応じて、データサービス層１５４に対して通信設定要求を行う。これに応じて、データサービス層１５４の管理プログラム１５１を実行するＣＰＵ１４０は、当該通信設定をＤＢ１５５から読み出して、バックグランドサービス１５３に送信する。
【００８２】
バックグランドサービス１５３の管理プログラム１５１を実行するＣＰＵ１４０は、通信設定を受信し、受信した通信設定を第２ＵＩ制御層１６２に送信する。第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、バックグランドサービス１５３から通信設定を取得する（Ｓ４）。本実施形態では上述のように、通信設定として、ＳＮＭＰ設定及びプロキシ設定の両方がＤＢ１５５に登録され、当該両方の設定をＤＢ１５５から取得するようにしたが、Ｓ３で要求し、Ｓ４で取得する通信設定は、ＳＮＭＰ設定又はプロキシ設定のいずれか一方であってもよい。この場合に、ＤＢ１５５から取得しない方の設定は、上記図６（ａ），（ｂ）の通信設定画面９５０を介してユーザから受け付けるようにすればよい。あるいは、ＳＮＭＰ設定及びプロキシ設定の両方とも、ＤＢ１５５から取得せずに、図６（ａ），（ｂ）の通信設定画面９５０を介してユーザから受け付けるようにしてもよい。
【００８３】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、バックグランドサービス１５３に対して、デバイスリストを要求する（Ｓ５）。これに応じて、バックグランドサービス１５３の管理プログラム１５１を実行するＣＰＵ１４０は、デバイスリスト要求をデータサービス層１５４に行う。データサービス層１５４の管理プログラム１５１を実行するＣＰＵ１４０は、当該デバイスリストをＤＢ１５５から読み出して、バックグランドサービス１５３に送信する。
【００８４】
バックグランドサービス１５３の管理プログラム１５１を実行するＣＰＵ１４０は、受信したデバイスリストを第２ＵＩ制御層１６２に送信する。これに応じて、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、バックグランドサービス１５３からデバイスリストを取得する（Ｓ６）。
【００８５】
そして、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータに基づいて通信設定画面を表示部１２０に表示する（Ｓ７）。上記図７は、Ｓ７で表示された通信設定画面９６０の一例を示している。通信設定画面９６０の選択領域９６１には、切替ボタン９５４が表示され、切替ボタン９５４は、設定アプリ１６１と管理アプリ１５１とが連携されていることを示す“Ｏｎ”状態となっている。さらに選択領域９６１には「設定を変更する場合は、連携を解除してください」のメッセージが表示されている。そして上述のように、通信設定画面９６０の右ペイン９６３には何も表示されず、通信設定を変更できないようになっている。なお本実施形態では、通信設定画面９６０の右ペイン９６３は非表示としたが、これに限らず、上記図６（ａ），（ｂ）の通信設定画面９５０の右ペイン９５３，９５３′に表示された詳細設定内容をグレーアウト表示としてもよい。
【００８６】
通信設定画面９６０において、ユーザがＯＫボタン９６５又はキャンセルボタン９６６をクリックすると、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、メイン画面（例えば、図３（ａ）のメイン画面８００）を表示部１２０に表示する（Ｓ８）。
【００８７】
一方、上記Ｓ１において、バックグランドサービス１５３が停止中と判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータを“ＯＦＦ”に設定し（Ｓ１０）、連携パラメータに基づいて通信設定画面を表示部１２０に表示する（Ｓ１１）。図６（ａ），（ｂ）は、Ｓ１１によって表示された通信設定画面９５０の一例を示している。上述のように、図６（ａ）は、“SNMP”タブが選択されて右ペイン９５３にＳＮＭＰ設定の詳細設定領域が表示された例を示し、図６（ｂ）は、“Proxy”タブが選択されて右ペイン９５３にプロキシ設定の詳細設定領域が表示された例を示している。
【００８８】
また上述のように、図６（ａ），（ｂ）の通信設定画面９５０上の選択領域９５１には、切替ボタン９５４が設けられている。通信設定画面９５０では、切替ボタン９５４は“Ｏｆｆ”状態である。切替ボタン９５４が“Ｏｆｆ”状態である場合は、バックグランドサービス１５３はＯＳに登録されているものの、上記「停止中」の状態である。なお、バックグランドサービス１５３の起動状態が上記「存在しない」状態であれば、切替ボタン９５４は表示部１２０上に表示されない。
【００８９】
切替ボタン９５４が表示されている場合には、上述のようにユーザは、“Ｏｆｆ”状態から“Ｏｎ”状態に切替ボタン９５４の状態を切り替えることができる。
【００９０】
図８に戻り、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、操作部１１０を介して連携ＯＮ操作を受け付けたか否かを判断する（Ｓ１２）。この連携ＯＮ操作が、切替ボタン９５４を“Ｏｆｆ”状態から“Ｏｎ”状態に切り替える操作である。具体的には、ユーザが操作部１１０の上記マウスを用いて、カーソル（図示せず）を切替ボタン９５４のつまみ（図６では黒丸）に合わせ、ドラッグして右端に寄せた後、ドロップする。もちろん、このユーザ操作は一例であって、切替ボタン９５４を“Ｏｆｆ”状態から“Ｏｎ”状態に切り替え可能な操作であれば、どのような操作方法を用いてもよい。
【００９１】
Ｓ１２において、操作部１１０を介して連携ＯＮ操作を受け付けたと判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータを“ＯＮ”に設定し（Ｓ１３）、ＯＳにバックグランドサービス１５３の起動を指示する（Ｓ１４）。これにより、バックグランドサービス１５３の管理プログラム１５１が起動を開始し、バックグランドサービス１５３は実行中となる。
【００９２】
そして、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、処理を上記Ｓ３に進める。Ｓ３以降の処理は上述したので、その説明は省略する。
【００９３】
一方、上記Ｓ１２において、連携ＯＮ操作がなかったと判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、図６（ａ），（ｂ）の通信設定画面９５０において、ユーザからＯＫボタン９５５又はキャンセルボタン９５６のクリックが受け付けられるまで待機する。バックグランドサービス１５３が停止中のとき、設定アプリ１６１は、バックグランドサービス１５３から通信設定を取得することができないので、ユーザは手動で通信設定を行う必要がある。このためユーザは、図６（ａ）の通信設定画面９５０からＳＮＭＰ設定を行い、図６（ｂ）の通信設定画面９５０からプロキシ設定を行う。そしてユーザがＯＫボタン９５５をクリックすると、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ＳＮＭＰ設定及びプロキシ設定を含む通信設定を上記記憶部１５０の、例えばＲＡＭに記憶させた（Ｓ１５）後、処理を上記Ｓ８に進めて、メイン画面（例えば、図３（ａ）のメイン画面８００）を表示部１２０に表示する。
【００９４】
上記Ｓ１において、バックグランドサービス１５３が存在しないと判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータを“ＮＧ”に設定し（Ｓ２０）、連携パラメータに基づいて通信設定画面９５０を表示部１２０に表示する（Ｓ２１）。Ｓ２１で表示される通信設定画面９５０は、上記図６（ａ），（ｂ）の通信設定画面９５０から選択領域９５１の表示を非表示にしたものである。したがって、Ｓ２１で表示される通信設定画面では、ユーザが手動で通信設定を行う。第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、通信設定画面９５０においてユーザからＯＫボタン９５５又はキャンセルボタン９５６が受け付けられるまで待機する。そして、通信設定画面９５０からＳＮＭＰ設定及びプロキシ設定が受け付けられ、ＯＫボタン９５５がクリックされると、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、上記Ｓ１５と同様にして、ＳＮＭＰ設定及びプロキシ設定を含む通信設定を記憶部１５０に記憶させる（Ｓ２２）。そして、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、処理を上記Ｓ８に進めて、メイン画面（例えば、図３（ａ）のメイン画面８００）を表示部１２０に表示する。
【００９５】
上記Ｓ１４及びＳ２２で記憶した通信設定は、ＤＢ１５５に記憶されないため、管理アプリ１５１に使用されることはない。なお、設定アプリ１６１がＤＢ１５５に対して通信設定を書き込む動作は禁止されている。これは、設定アプリ１６１は、管理アプリ１５１より機能が少ない簡易的なアプリであるので、設定アプリ１６１が、設定アプリ１６１で受け付けられた通信設定を、ＤＢ１５５に格納されている通信設定に上書きしてしまうと、管理アプリ１５１の実行時に、管理アプリ１５１が有する機能が正常に動作しなくなる虞が生じるからである。
（デバイスリスト表示処理）
【００９６】
図９は、デバイスリスト表示処理の手順を示すフローチャートである。デバイスリスト表示処理は、上記図３（ａ）のメイン画面８００内の“Add Devices”アイコン８０３がクリックされたときに開始され、上記図５（ａ）の“Add Devices”画面９００及び上記図５（ｂ）の“Add Devices”画面９００′のいずれかを表示部１２０に表示する処理である。デバイスリスト表示処理は、ＰＣ１００、特にＣＰＵ１４０により実行される。
【００９７】
図９において、まず、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、連携パラメータが“ＯＮ”に設定されているか否かを判断する（Ｓ３１）。Ｓ３１において、連携パラメータが“ＯＮ”に設定されていると判断される場合、つまり、設定アプリ１６１と管理アプリ１５１とが連携されていて、設定アプリ１６１と管理アプリ１５１との間で、ＤＢ１５５を共有できる場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ＤＢ１５５からデバイスリストを取得する（Ｓ３２）。Ｓ３２の処理でも、上記図８のＳ５及びＳ６で説明した手順と同様の手順に従って、ＤＢ１５５からデバイスリストを取得する必要があるが、ＤＢ１５５からデバイスリストを取得する手順については、既に詳述したので、その説明は省略する。
【００９８】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、Ｓ３２で取得したデバイスリストに基づいて、上記図５（ａ）の“Add Devices”画面９００を表示部１２０に表示した（Ｓ３３）後、デバイスリスト表示処理を終了する。
【００９９】
一方、上記Ｓ３１において、連携パラメータが“ＯＮ”に設定されていないと判断される場合、つまり、設定アプリ１６１と管理アプリ１５１とが連携されておらず、設定アプリ１６１と管理アプリ１５１との間で、ＤＢ１５５を共有できない場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ＤＢ１５５からデバイスリストを取得することができない。このため、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ＰＣ１００と通信可能に接続されているＭＦＰ２００を検索する（Ｓ３４）。ＭＦＰ２００の検索は、具体的には、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０がビジネスロジック層１５６に対して上記“Discovery”関数の呼び出しを行うことによってなされる。“Discovery”関数の呼び出しよってなされる処理の詳細は、上述したので、その説明は省略する。
【０１００】
Ｓ３４の処理により、ＰＣ１００と通信可能に接続されているＭＦＰ２００が検索されるので、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、当該検索結果に基づいて、例えば上記図２（ｂ）に示すデバイスリストを作成する（Ｓ３５）。そして、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、作成したデバイスリストに基づいて、上記図５（ｂ）の“Add Devices”画面９００′を表示部１２０に表示した（Ｓ３６）後、デバイスリスト表示処理を終了する。
【０１０１】
このように設定アプリ１６１は、管理アプリ１５１と連携されて、管理アプリ１５１との間でＤＢ１５５を共有しているときには、管理アプリ１５１側で生成され、ＤＢ１５５に登録されたデバイスリストをＤＢ１５５から取得して用いるようにしている。一方、設定アプリ１６１は、管理アプリ１５１と連携されず、管理アプリ１５１との間でＤＢ１５５を共有できないときには、設定アプリ１６１側でデバイスリストを生成するようにしている。
【０１０２】
なお、上記図８の連携処理では、バックグランドサービス１５３が停止中の場合又は存在しない場合、デバイスリストの作成はなされていない。したがってこの場合には、デバイスリストは、上記デバイスリスト表示処理が実行された後に作成されるが、これに限らず、連携処理内で作成されるようにしてもよい。具体的には、連携処理において、例えば、Ｓ１５の直後及びＳ２２の直後に、Ｓ３４及びＳ３５の処理を挿入する。
（実行ボタン選択時処理）
【０１０３】
図１０は、設定アプリ１６１のいずれかの機能を設定する画面（図３（ａ）のメイン画面８００、図４（ａ）のメイン画面８４０及び図４（ｂ）のメイン画面８６０のうちのいずれか）において、実行ボタン（“Apply”ボタン８２１、“Backup”ボタン８４６及び“Activate”ボタン８６５のうちのいずれか）がクリック（選択）されたときに実行される処理の手順を示すフローチャートである。実行ボタン選択時処理は、ＰＣ１００、特にＣＰＵ１４０により実行される。また実行ボタン選択時処理は、図３（ａ）のメイン画面８００内の“Apply”ボタン８２１、図４（ａ）のメイン画面８４０内の“Backup”ボタン８４６及び図４（ｂ）のメイン画面８６０内の“Activate”ボタン８６５のうちのいずれかのボタンがクリックされたときに開始される。
【０１０４】
図１０において、まず、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、表示中の機能がどの機能であるかを判断する（Ｓ４１）。つまりこの判断では、ＣＰＵ１４０は、“Apply”ボタン８２１、“Backup”ボタン８４６及び“Activate”ボタン８６５のいずれがクリックされたかを判断する。
【０１０５】
Ｓ４１において、“Apply”ボタン８２１がクリックされたと判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、“Send Files”マップを作成する“Send Files”マップ作成処理を実行する（Ｓ４２）。“Send Files”マップは、ユーザが機能を実行する対象として選択したＭＦＰ２００毎に行を設け、各行に“Send Files”コマンド、設定ファイルの格納場所及びデバイスＩＤを揃えて、マップ化したものである。“Send Files”コマンドは、具体的には、上記データサービス層１５４の管理プログラム１５１が提供する“Send Files”関数の呼び出しを指示するコマンドである。そして、設定ファイルの格納場所及びデバイスＩＤは、“Send Files”関数を呼び出すときに“Send Files”関数の引数として用いられる。
【０１０６】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、作成した“Send Files”マップについて１行ずつコマンド送信処理を実行する（Ｓ４６）。コマンド送信処理では、ＣＰＵ１４０は、データサービス層１５４に対して“Send Files”関数の呼び出しを行う。これに応じて、ビジネスロジック層１５６の管理プログラム１５１を実行するＣＰＵ１４０は、呼び出された“Send Files”関数を実行し、下層のデータ制御層１５７、プロトコル層１５８及び通信インターフェース層１５９を利用して、“Send Files”機能を示すタスクを実行する。
【０１０７】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、その実行結果を受信し（Ｓ４７）、進捗状況表示を更新した（Ｓ４８）後、次の行に移って、Ｓ４６〜Ｓ４８の処理を繰り返す。
【０１０８】
なお、処理がＳ４２からＳ４５に進む前に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ＳＮＭＰ設定を用いて、ＭＦＰ２００と通信するプロトコル（ＴＣＰ／ＩＰ（９１００）あるいはＨＴＴＰＳ）を決定する。
【０１０９】
そして、“Send Files”マップの全行についてＳ４６〜Ｓ４８の処理が終了すると、ＣＰＵ１４０は、実行結果を表示部１２０上に表示して（Ｓ４９）、実行ボタン選択時処理を終了する。
【０１１０】
ユーザが、図３（ａ）のメイン画面８００において、“Send Files”機能の対象とするＭＦＰ２００を選択し、“Set Files”ボタン８０６を用いて設定ファイルを指定し、必要であれば“Set Device Password”ボタン８０７を用いてパスワードを設定した上で、“Apply”ボタン８２１をクリックすると、実行ボタン選択時処理が実行され、通信ＩＦ１６０から“Send Files”機能の対象とするＭＦＰ２００に対して、設定ファイルの適用を示す情報及び設定ファイルを含むデータが送信される。ＭＦＰ２００は、受信したデータに基づいて設定ファイルを適用する。なお、ＰＣ１００とＭＦＰ２００との間の通信には、例えばＳＮＭＰ設定が用いられる。
【０１１１】
上記Ｓ４１において、“Backup”ボタン８４６がクリックされたと判断される場合、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、“Backup Settings”マップを作成する“Backup Settings”マップ作成処理を実行する（Ｓ４３）。“Backup Settings”マップは、ユーザが機能を実行する対象として選択したＭＦＰ２００毎に行を設け、各行に“Backup Settings”コマンド、設定ファイルの保存場所、バックアップ項目及びデバイスＩＤを揃えて、マップ化したものである。“Backup Settings”コマンドは、具体的には、上記データサービス層１５４の管理プログラム１５１が提供する“Backup Settings”関数の呼び出しを指示するコマンドである。そして、設定ファイルの保存場所、バックアップ項目及びデバイスＩＤは、“Backup Settings”関数を呼び出すときに“Backup Settings”関数の引数として用いられる。
【０１１２】
続くＳ４６〜Ｓ４８の処理では、処理対象のマップが異なるだけで、処理内容は“Send Files”マップと“Backup Settings”マップとではほとんど異ならないので、Ｓ４６〜Ｓ４８の処理についての説明は省略する。
【０１１３】
ユーザが、図４（ａ）のメイン画面８４０において、“Backup Settings”機能の対象とするＭＦＰ２００を選択し、領域８４３からバックアップする場所を指定し、領域８４４からバックアップ対象の項目を指定した上で、“Backup”ボタン８４６をクリックすると、実行ボタン選択時処理が実行され、通信ＩＦ１６０から“Backup Settings”機能の対象とするＭＦＰ２００に対して、設定ファイルを読み出して送信することを指示する情報及びバックアップ対象の項目を示す情報を含むデータが送信される。ＭＦＰ２００は、受信したデータに基づいて現在の設定から、バックアップ対象の項目に対応する設定を抜き出して生成した設定ファイルを含むデータをＰＣ１００に送信する。ＰＣ１００がＭＦＰ２００からのデータを受信すると、ＰＦ１６５の管理プログラム１５１を実行するＣＰＵ１４０は、受信したデータに含まれる設定ファイルをビジネスロジック層１５６から第２ＵＩ制御層１６２に送信する。第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、受信した設定ファイルを指定されたバックアップ場所に保存する。
【０１１４】
上記Ｓ４１において、“Activate”ボタン８６５がクリックされたと判断される場合、ＣＰＵ１４０は、“PJL Activation”マップ作成処理を実行する（Ｓ４４）。
【０１１５】
図１１は、“PJL Activation”マップ作成処理の手順を示すフローチャートである。
【０１１６】
図１１において、まず、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、図４（ｂ）のメイン画面８６０の領域８６３に表示された認証ＩＤ（“Solution Provider ID”）をＰＦ１６５のビジネスロジック層１５６に送信する（Ｓ５１）。ビジネスロジック層１５６の管理プログラム１５１を実行するＣＰＵ１４０は、下層のデータ制御層１５７、プロトコル層１５８及び通信インターフェース層１５９を利用して、受信した認証ＩＤを通信ＩＦ１６０からプロキシサーバ２５０を経由して、管理サーバ２７０に送信する。管理サーバ２７０は、受信した認証ＩＤに基づいて権限認証を行い、認証結果をＰＣ１００に送信する。
【０１１７】
ビジネスロジック層１５６の管理プログラム１５１を実行するＣＰＵ１４０は、通信ＩＦ１６０から受信した認証結果を、下層のデータ制御層１５７、プロトコル層１５８及び通信インターフェース層１５９を利用して取得し、第２ＵＩ制御層１６２に送信する。第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、ビジネスロジック層１５６から受信した認証結果が成功であるか否かを判断する（Ｓ５２）。
【０１１８】
Ｓ５２において、認証結果が失敗であったと判断される場合（Ｓ５２：ＮＯ）、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、“PJL Activation”マップを作成せずに、“PJL Activation”マップ作成処理を終了する。この場合、“PJL Activation”マップが無い状態であるので、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、いずれのＭＦＰ２００に対しても特定機能の実行制限を解除することができない。
【０１１９】
一方、Ｓ５２において、認証結果が成功であったと判断される場合（Ｓ５２：ＹＥＳ）、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、制御対象として選択したＭＦＰ２００をマップに展開する（Ｓ５３）。そして、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、Ｓ５３にて展開したマップの全行に認証付き設定変更コマンド（“PJL Activation”付き設定変更コマンド）を展開する（Ｓ５４）。
【０１２０】
次に、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、図４（ｂ）のメイン画面８６０の領域８６２から入力された格納場所からダウンロードしたソリューションファイル（“Solution File”）をマップの全行に設定し（Ｓ５５）、ＵＩに入力されたファイルパス、つまり、上記認証ＩＤの含まれるファイルの格納場所を示す情報（＝ファイルパス）をマップの全コマンドに展開する（Ｓ５６）。このようにして作成したマップを、第２ＵＩ制御層１６２の設定プログラム１６１を実行するＣＰＵ１４０は、記憶部１５０の、例えばＲＡＭに記憶し（Ｓ５６）、“PJL Activation”マップ作成処理を終了する。
【０１２１】
続くＳ４６〜Ｓ４８の処理では、処理対象のマップが異なるだけで、処理内容は“Send Files”マップと“PJL Activation”マップとではほとんど異ならないので、Ｓ４６〜Ｓ４８の処理についての説明は省略する。
【０１２２】
ユーザが、図４（ｂ）のメイン画面８６０において、“PJL Activation”機能の対象とするＭＦＰ２００を選択し、領域８６２から“Solution File”を指定し、領域８６３に“Solution Provider ID”を表示させた上で、“Activate”ボタン８６５をクリックすると、実行ボタン選択時処理が実行され、通信ＩＦ１６０から“PJL Activation”機能の対象とするＭＦＰ２００に対して、“PJL Activation”付き設定変更情報、“Solution File”及び“Solution Provider ID”のファイルパスを含むデータが送信される。ＭＦＰ２００は、受信したデータに基づいて上記“Custom UI”機能を有効化し、自身の表示部の表示内容を特殊表示に切り替える。
（効果）
【０１２３】
以上説明したように、本実施形態の情報処理プログラムは、複数のＭＦＰ２００と通信可能な通信ＩＦ１６０と、操作部１１０と、表示部１２０と、記憶部１５０と、を備えたＰＣ１００のための設定アプリ１６１であって、設定アプリ１６１は、設定アプリ１６１と異なる管理アプリ１５１がＰＣ１００にインストールされることにより記憶部１５０に共通ＤＢ１５５が構築されている場合には、共通ＤＢ１５５に記憶された第１デバイスリストであって、複数のＭＦＰ２００の識別情報を示す第１デバイスリストを取得し（Ｓ３２）、記憶部１５０に共通ＤＢ１５５が構築されていない場合には、通信ＩＦ１６０を介して複数のＭＦＰ２００を検索することにより（Ｓ３４）、複数のＭＦＰ２００の識別情報を示す第２デバイスリストを取得する（Ｓ３５）取得処理と、第１デバイスリスト又は第２デバイスリストを表示部１２０に表示させる第１表示処理（Ｓ３３，Ｓ３６）と、第１表示処理により表示された第１デバイスリスト又は第２デバイスリストから選択された２以上のデバイスとの間で、設定データを送信、又は受信する通信処理（Ｓ４６）と、をＰＣ１００に実行させる。
【０１２４】
このように、本実施形態の情報処理プログラムでは、共通ＤＢ１５５が存在しない場合であっても、通信ＩＦ１６０を介して複数のＭＦＰ２００を検索することにより、複数のＭＦＰ２００の識別情報を示す第２デバイスリストが取得され、この第２デバイスリストから選択された２以上のデバイスとの間で、設定データが送信、又は受信されるので、適切に機能を実行することが可能となる。
【０１２５】
ちなみに、本実施形態において、ＭＦＰ２００は、「通信装置」の一例である。通信ＩＦ１６０は、「通信部」の一例である。設定アプリ１６１は、「第１情報処理プログラム」の一例である。管理アプリ１５１は、「第２情報処理プログラム」の一例である。
【０１２６】
また、設定アプリ１６１はさらに、記憶部１５０に共通ＤＢ１５５が構築されているかどうかを判断する判断処理（Ｓ１）と、判断処理により共通ＤＢ１５５が構築されていると判断された場合には、動作モードのデフォルトを第１モード（“ＯＮ”）に設定し、判断処理により共通ＤＢ１５５が構築されていないと判断された場合には、動作モードのデフォルトを第２モード（“ＯＦＦ”又は“ＮＧ”）に設定する設定処理（Ｓ２，Ｓ１０，Ｓ２０）と、をＰＣ１００に実行させる。そして取得処理は、動作モードが第１モードに設定された場合には、第１デバイスリストを取得し（Ｓ６）、動作モードが第２モードに設定された場合には、第２デバイスリストを取得する。
【０１２７】
これにより、動作モードのデフォルトが自動的に設定されるので、ユーザは動作モードのデフォルトを自身で設定する必要がなくなり、便利である。
【０１２８】
また管理アプリ１５１は、バックグランドで動作するサービスであるバックグランドサービス１５３のプログラムを含み、判断処理は、バックグランドサービス１５３が実行中である場合に、共通ＤＢ１５５が構築されていると判断し、バックグランドサービス１５３が無い場合に、共通ＤＢ１５５が構築されていないと判断し（Ｓ１）、取得処理は、バックグランドサービス１５３が実行中である場合に、バックグランドサービス１５３に第１デバイスリストを要求するコマンドを送信し（Ｓ５）、コマンドの送信に応じてバックグランドサービス１５３が共通ＤＢ１５５から読み出した第１デバイスリストを取得する（Ｓ６）。
【０１２９】
これにより、バックグランドサービス１５３の有無により、共通ＤＢ１５５が構築されているかどうかが判断されるので、この判断を容易に行うことができる。
【０１３０】
また設定処理は、判断処理によりバックグランドサービス１５３が停止状態である場合に、動作モードを第２モードに設定し（Ｓ１０）、設定アプリ１６１はさらに、設定処理により設定されたデフォルトの動作モードを変更するための切替ボタン９５４を表示部１２０に表示させる第２表示処理と、第２表示処理により表示された切替ボタン９５４に対して操作部１１０を介して行った操作を受け付ける受付処理と、受付処理により、動作モードを第２モードから第１モードへ変更するための操作が、切替ボタン９５４に対して受け付けられた場合には、バックグランドサービス１５３の起動指示を記憶部１５０に記憶されているオペレーティングシステムに送信する送信処理（Ｓ１４）と、をＰＣ１００に実行させる。
【０１３１】
これにより、デバイスリストとして、バックグランドサービス１５３によって共通ＤＢ１５５から読み出された第１デバイスリストを用いることができるので、設定アプリ１６１は第２デバイスリストを取得しなくてもよくなり、設定アプリ１６１の負担を軽減することができる。
【０１３２】
ちなみに、切替ボタン９５４は、「操作子」の一例である。
【０１３３】
また切替ボタン９５４は、判断処理により共通ＤＢ１５５が構築されていないと判断された場合には、表示部１２０に表示されない。
【０１３４】
これにより、共通ＤＢ１５５が構築されていないときに、モード変更操作ができないので、誤動作を防止することができる。
【０１３５】
また取得処理により第２デバイスリストが取得された後に、第２情報処理プログラムがＰＣ１００にインストールされた場合、第２デバイスリストを共通ＤＢ１５５に登録することは禁止される。
【０１３６】
これにより、共通ＤＢ１５５におけるデバイスリストのユーザの意に反した書き換えを防止することができる。
【０１３７】
また通信ＩＦ１６０は、プロキシサーバ２５０と通信可能であり、取得処理は、判断処理により共通ＤＢ１５５が構築されていると判断された場合には、共通ＤＢ１５５からプロキシサーバ２５０と通信するための第１プロキシ設定を取得し（Ｓ４）、判断処理により共通ＤＢ１５５が構築されていないと判断された場合には、プロキシサーバ２５０と通信するための第２プロキシ設定をユーザから受け付けることによって取得し（Ｓ２１）、通信処理は、取得処理により取得された第１プロキシ設定又は第２プロキシ設定を用いてプロキシサーバ２５０と通信した後に、選択された２以上のＭＦＰ２００との間で、設定データを送信、又は受信する。
【０１３８】
これにより、共通ＤＢ１５５が構築されている場合には、プロキシ設定も共通ＤＢ１５５から読み出して取得することができるので、面倒なプロキシ設定を行う必要がなくなり、便利である。
【０１３９】
また取得処理は、判断処理により共通ＤＢ１５５が構築されていると判断された場合には、複数のＭＦＰ２００とＳＮＭＰ（simple network management protocol）に従って通信するための第１ＳＮＭＰ設定を共通ＤＢ１５５から取得し（Ｓ４）、判断処理により共通ＤＢ１５５が構築されていないと判断された場合には、複数のＭＦＰ２００とＳＮＭＰに従って通信するための第２ＳＮＭＰ設定をユーザから受け付けることによって取得し（Ｓ２１）、通信処理は、取得処理により取得された第１ＳＮＭＰ設定又は第２ＳＮＭＰ設定を用いて選択された２以上のＭＦＰ２００との間で、設定データを送信、又は受信する。
【０１４０】
これにより、共通ＤＢ１５５が構築されている場合には、ＳＮＭＰ設定も共通ＤＢ１５５から読み出して取得することができるので、面倒なＳＮＭＰ設定を行う必要がなくなり、便利である。
【０１４１】
また設定アプリ１６１は、ＰＣ１００にインストールされることなく実行可能なプログラムであり、管理アプリ１５１は、ＰＣ１００にインストールされることによって実行可能なプログラムである。
【符号の説明】
【０１４２】
１００  ＰＣ
１１０  操作部
１２０  表示部
１４０  ＣＰＵ
１５０  記憶部
１６０  通信ＩＦ
２５０  プロキシサーバ
２７０  管理サーバ
２９０  メールサーバ
１５１  管理アプリ
１５２  第１ＵＩ制御層
１５３  バックグランドサービス
１５４  データサービス層
１５５  ＤＢ
１５６  ビジネスロジック層
１５７  データ制御層
１５８  プロトコル層
１５９  インターフェース層
１６１  設定アプリ
１６２ 第２ＵＩ制御層
１６５  ＰＦ
２００  ＭＦＰ  
【図１】
2020135607.tif 000003
【図２】
2020135607.tif 000004
【図３】
2020135607.tif 000005
【図４】
2020135607.tif 000006
【図５】
2020135607.tif 000007
【図６】
2020135607.tif 000008
【図７】
2020135607.tif 000009
【図８】
2020135607.tif 000010
【図９】
2020135607.tif 000011
【図１０】
2020135607.tif 000012
【図１１】
2020135607.tif 000013