(57)【特許請求の範囲】
【請求項１】
複数の画像形成装置と検索サーバとを含むアプリケーション共有システムであって、
前記複数の画像形成装置それぞれは、
処理を実行する処理実行手段と、
前記処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、を備え、
前記複数の画像形成装置のうち前記複数の関数の少なくとも１つを含むアプリケーションプログラムがインストールされる第１の画像形成装置は、
前記アプリケーションプログラムを、前記検索サーバに送信する送信手段と、を備え、
前記検索サーバは、
前記第１の画像形成装置から受信されるアプリケーションプログラムを記憶するアプリデータ記憶手段と、
前記複数の画像形成装置のうち前記第１の画像形成装置とは異なる第２の画像形成装置から検索条件を含む検索要求を受信することに応じて、１以上の前記記憶されたアプリケーションプログラムのうちから前記検索要求に含まれる検索条件に合致する１以上のアプリケーションプログラムを抽出する抽出手段と、
前記抽出された１以上のアプリケーションプログラムそれぞれについて、該アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、前記アプリケーションプログラムのネットワークアドレスとを含む画面情報を、前記検索要求を送信してきた前記第２の画像形成装置に送信する画面情報送信手段と、
前記第２の画像形成装置からのダウンロード要求に応じて、前記記憶された１以上のアプリケーションプログラムのうちからダウンロード要求されたアプリケーションプログラムを前記第２の画像形成装置に送信するアプリ送信手段と、を備え、
前記第２の画像形成装置は、
前記関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、前記複数のスタブのいずれかを実行することにより、前記処理実行手段を動作させることなく、前記関数実行手段が前記複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、
前記検索サーバより前記シミュレートコマンドを受信することに応じて、前記受信されたシミュレートコマンドを解釈して、前記アプリケーションプログラムをシミュレートするための前記スタブを前記スタブ実行手段に実行させるシミュレート手段と、
前記スタブ実行手段による実行結果が正常であることを条件に、前記シミュレートコマンドとともに前記検索サーバより受信されるネットワークアドレスに基づいて前記アプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する画面生成手段と、を備えた、アプリケーション共有システム。
【請求項２】
前記画面情報送信手段は、マークアップ言語で記述され、前記アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、前記シミュレートした結果が正常であることを条件に前記アプリケーションプログラムをダウンロード可能に表示する条件付表示コマンドとを含むウェブページを生成し、
前記シミュレート手段は、前記シミュレートコマンドを実行し、
前記画面生成手段は、前記条件付表示コマンドを実行する、請求項１に記載のアプリケーション共有システム。
【請求項３】
複数の画像形成装置と検索サーバとを含むアプリケーション共有システムであって、
前記複数の画像形成装置それぞれは、
処理を実行する処理実行手段と、
前記処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、を備え、
前記複数の画像形成装置のうち前記複数の関数の少なくとも１つを含むアプリケーションプログラムがインストールされる第１の画像形成装置は、
前記アプリケーションプログラムを、前記検索サーバに送信する送信手段と、を備え、
前記検索サーバは、
前記第１の画像形成装置から受信されるアプリケーションプログラムを記憶するアプリデータ記憶手段と、
前記複数の画像形成装置のうち前記第１の画像形成装置とは異なる第２の画像形成装置から検索条件を含む検索要求を受信することに応じて、１以上の前記記憶されたアプリケーションプログラムのうちから前記検索要求に含まれる検索条件に合致する１以上のアプリケーションプログラムを抽出する抽出手段と、
前記抽出された１以上のアプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、前記アプリケーションプログラムのネットワークアドレスとを、前記検索要求を送信してきた前記第２の画像形成装置に送信する画面情報送信手段と、
前記第２の画像形成装置からのダウンロード要求に応じて、前記記憶された１以上のアプリケーションプログラムのうちからダウンロード要求されたアプリケーションプログラムを前記第２の画像形成装置に送信するアプリ送信手段と、を備え、
前記第２の画像形成装置は、
前記関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、前記複数のスタブのいずれかを実行することにより、前記処理実行手段を動作させることなく、前記関数実行手段が前記複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、
前記検索サーバより前記シミュレートコマンドを受信することに応じて、前記受信されたシミュレートコマンドを解釈して、前記アプリケーションプログラムをシミュレートするための前記スタブを前記スタブ実行手段に実行させるシミュレート手段と、
前記シミュレートコマンドとともに前記検索サーバより受信されるネットワークアドレスに基づいて前記アプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する画面生成手段と、を備え、
前記画面生成手段は、前記スタブ実行手段による実行結果が正常でない場合、警告メッセージを前記検索結果画面に追加する警告追加手段を含む、アプリケーション共有システム。
【請求項４】
前記第１の画像形成装置は、前記アプリケーションプログラムがインストールされる際に、該アプリケーションプログラムを実行することにより発生することが予想されるエラーを識別するためのエラーコードと、該エラーの発生原因とを関連付けたエラーテーブルを受け付け、記憶するエラーテーブル記憶手段をさらに備え、
前記送信手段は、前記アプリケーションプログラムとともに前記エラーテーブルを前記検索サーバに送信し、
前記検索サーバは、前記第１の画像形成装置から受信されるエラーテーブルをアプリケーションプログラムと関連付けて記憶するエラーテーブル記憶手段と、
前記第２の画像形成装置から前記エラーコードが受信されることに応じて、前記エラーテーブルによって前記エラーコードと関連付けられた発生原因を前記第２の画像形成装置に送信する発生原因送信手段と、をさらに備え、
前記第２の画像形成装置は、前記スタブ実行手段が前記アプリケーションプログラムを実行した結果が正常とならない場合、前記スタブ実行手段が前記アプリケーションプログラムを実行した結果得られるエラーコードを、前記検索サーバに送信するエラーコード送信手段、をさらに備え、
前記警告追加手段は、前記エラーコードの送信に応じて受信される発生原因を、前記検索結果画面に追加する、請求項３に記載のアプリケーション共有システム。
【請求項５】
前記画面情報送信手段は、マークアップ言語で記述され、前記アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、前記アプリケーションプログラムをダウンロード可能に表示するリンク表示コマンドと、前記シミュレートした結果が正常でない場合、警告メッセージを表示する警告表示コマンドとを含むウェブページを生成し、
前記シミュレート手段は、前記シミュレートコマンドを実行し、
前記画面生成手段は、前記リンク表示コマンドおよび警告表示コマンドを実行する、請求項４に記載のアプリケーション共有システム。
【請求項６】
前記画面情報送信手段は、前記アプリケーションプログラムに含まれる関数を、該関数に対応するスタブに変更することによって、シミュレーション用のアプリケーションプログラムを生成する関数変更手段を含み、
前記シミュレートコマンドは、前記生成されたシミュレーション用のアプリケーションプログラムを実行させる記述である、請求項１〜５のいずれかに記載のアプリケーション共有システム。
【請求項７】
前記画面情報送信手段は、前記アプリケーションプログラムのプログラム名の拡張子を、予め定められた拡張子に変更することによって、シミュレーション用のアプリケーションプログラムを生成する名称変更手段を含み、
前記シミュレートコマンドは、前記生成されたシミュレーション用のアプリケーションプログラムを実行させる記述である、請求項１〜５のいずれかに記載のアプリケーション共有システム。
【請求項８】
前記画面情報送信手段は、前記生成されるウェブページが所定量を超える場合、所定量以下の複数ページからなるウェブページを生成し、１ページのウェブページが生成されるごとに、生成された１ページのウェブページを前記検索要求を送信してきた前記第２の画像形成装置に送信する、請求項２または５のいずれかに記載のアプリケーション共有システム。
【請求項９】
前記処理実行手段は、画像を形成する画像形成手段を含む、請求項１〜８のいずれかに記載のアプリケーション共有システム。
【請求項１０】
処理を実行する処理実行手段と、
前記処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、
前記関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、前記複数のスタブのいずれかを実行することにより、前記処理実行手段を動作させることなく、前記関数実行手段が前記複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、
前記複数の関数を用いて記述されたアプリケーションプログラムを受信するアプリケーション受信手段と、
前記受信されたアプリケーションプログラムを前記スタブ実行手段に実行させるシミュレート手段と、を備え、
前記シミュレート手段は、前記受信されたアプリケーションプログラムに付された拡張子が予め定められた拡張子の場合に、前記受信されたアプリケーションプログラムを前記スタブ実行手段に実行させる、画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アプリケーション共有システムおよび画像形成装置に関し、特に、ある画像形成装置で開発されたアプリケーションプログラムを別の画像形成装置にインストールするのに適したアプリケーション共有システム、そのアプリケーション共有システムに含まれる画像形成装置に関する。
【背景技術】
【０００２】
アプリケーションプログラムを、ユーザが利用可能とするために、アプリケーションプログラムを管理するサーバに記憶しておき、ユーザによるダウンロードを可能にしたシステムが知られている。しかしながら、機器の状態によっては、ダウンロードしたアプリケーションプログラムが、必ずしも正常に動作するとは限らない。このため、サーバでシミュレーションしてからダウンロードする技術が知られている（特開２００２−３１２５０６号公報）。
【０００３】
近年、インターネットウェブサーバ（以下「ＩＷＳ」）として機能する複合機（以下「ＭＦＰ」という）が登場しており、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）を備えている。さらに、ＣＧＩを起動するための関数としてＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）が公開されており、ユーザは、その関数を用いてアプリケーションプログラムを開発し、ＭＦＰにインストールすることができる。公開されるＡＰＩは、ＭＦＰが備える機能を実行させる関数を含む。このため、ＭＦＰに、それが有する機能を実行させるアプリケーションプログラムを開発することができる。このアプリケーションプログラムを、他のユーザが転用することを可能とするために、例えば、メーカが管理するサーバ等に、アプリケーションプログラムをアップロードしておけば、他のユーザが自由にダウンロードすることができる。
【０００４】
一方、ＭＦＰは、ソータ等の後処理部、両面読取ユニット等の複数種類の周辺装置を本体に接続可能であり、また、ＭＦＰにインストールされているアプリケーションプログラムも多種多様である。本体に接続される周辺装置の種類の違いやインストールされているアプリケーションプログラムの種類の違いなど、ＭＦＰの設定環境は多種多様である。設定環境が異なれば、ＭＦＰが実行可能な機能が異なる。このため、特開２００２−３１２５０６号公報に記載のように、サーバにおいてアプリケーションプログラムをシミュレートするためには、多種多様な設定環境の全てに対応してアプリケーションプログラムをシミュレートできなければならない。しかしながら、ＭＦＰの多種多様な設定環境の全てに対応してシミュレートするプログラムを開発するのは困難であるといった問題がある。
【特許文献１】特開２００２−３１２５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、実行することが可能なアプリケーションプログラムのみをダウンロードすることが可能なアプリケーション共有システムを提供することである。
【０００６】
この発明の他の目的は、アプリケーションプログラムの実行可否を通知することが可能なアプリケーション共有システムを提供することである。
【０００７】
この発明のさらに他の目的は、アプリケーションプログラムを実行する動作をシミュレートすることが可能な画像形成装置を提供することである。
【課題を解決するための手段】
【０００８】
上述した目的を達成するためにこの発明のある局面によれば、アプリケーション共有システムは、複数の画像形成装置と検索サーバとを含むアプリケーション共有システムであって、複数の画像形成装置それぞれは、処理を実行する処理実行手段と、処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、を備え、複数の画像形成装置のうち複数の関数の少なくとも１つを含むアプリケーションプログラムがインストールされる第１の画像形成装置は、アプリケーションプログラムを、検索サーバに送信する送信手段と、を備え、検索サーバは、第１の画像形成装置から受信されるアプリケーションプログラムを記憶するアプリデータ記憶手段と、複数の画像形成装置のうち第１の画像形成装置とは異なる第２の画像形成装置から検索条件を含む検索要求を受信することに応じて、１以上の記憶されたアプリケーションプログラムのうちから検索要求に含まれる検索条件に合致する１以上のアプリケーションプログラムを抽出する抽出手段と、抽出された１以上のアプリケーションプログラムそれぞれについて、該アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、アプリケーションプログラムのネットワークアドレスとを含む画面情報を、検索要求を送信してきた第２の画像形成装置に送信する画面情報送信手段と、第２の画像形成装置からのダウンロード要求に応じて、記憶された１以上のアプリケーションプログラムのうちからダウンロード要求されたアプリケーションプログラムを第２の画像形成装置に送信するアプリ送信手段と、を備え、第２の画像形成装置は、関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、複数のスタブのいずれかを実行することにより、処理実行手段を動作させることなく、関数実行手段が複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、検索サーバよりシミュレートコマンドを受信することに応じて、受信されたシミュレートコマンドを解釈して、アプリケーションプログラムをシミュレートするためのスタブをスタブ実行手段に実行させるシミュレート手段と、スタブ実行手段による実行結果が正常であることを条件に、シミュレートコマンドとともに検索サーバより受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する画面生成手段と、を備える。
【０００９】
この局面に従えば、検索サーバよりシミュレートコマンドを受信することに応じて、アプリケーションプログラムをシミュレートし、シミュレートした実行結果が正常であることを条件に、検索サーバより受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する。このため、検索結果画面に、実行することのできないアプリケーションプログラムをダウンロードするためのリンク情報を含まないようにすることができる。その結果、実行することが可能なアプリケーションプログラムのみをダウンロードすることが可能なアプリケーション共有システムを提供することができる。
【００１０】
好ましくは、画面情報送信手段は、マークアップ言語で記述され、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、シミュレートした結果が正常であることを条件にアプリケーションプログラムをダウンロード可能に表示する条件付表示コマンドとを含むウェブページを生成し、シミュレート手段は、シミュレートコマンドを実行し、画面生成手段は、条件付表示コマンドを実行する。
【００１１】
この発明の他の局面に従えば、アプリケーション共有システムは、複数の画像形成装置と検索サーバとを含むアプリケーション共有システムであって、複数の画像形成装置それぞれは、処理を実行する処理実行手段と、処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、を備え、複数の画像形成装置のうち複数の関数の少なくとも１つを含むアプリケーションプログラムがインストールされる第１の画像形成装置は、アプリケーションプログラムを、検索サーバに送信する送信手段と、を備え、検索サーバは、第１の画像形成装置から受信されるアプリケーションプログラムを記憶するアプリデータ記憶手段と、複数の画像形成装置のうち第１の画像形成装置とは異なる第２の画像形成装置から検索条件を含む検索要求を受信することに応じて、１以上の記憶されたアプリケーションプログラムのうちから検索要求に含まれる検索条件に合致する１以上のアプリケーションプログラムを抽出する抽出手段と、抽出された１以上のアプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、アプリケーションプログラムのネットワークアドレスとを、検索要求を送信してきた第２の画像形成装置に送信する画面情報送信手段と、第２の画像形成装置からのダウンロード要求に応じて、記憶された１以上のアプリケーションプログラムのうちからダウンロード要求されたアプリケーションプログラムを第２の画像形成装置に送信するアプリ送信手段と、を備え、第２の画像形成装置は、関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、複数のスタブのいずれかを実行することにより、処理実行手段を動作させることなく、関数実行手段が複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、検索サーバよりシミュレートコマンドを受信することに応じて、受信されたシミュレートコマンドを解釈して、アプリケーションプログラムをシミュレートするためのスタブをスタブ実行手段に実行させるシミュレート手段と、シミュレートコマンドとともに検索サーバより受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する画面生成手段と、を備え、画面生成手段は、スタブ実行手段による実行結果が正常でない場合、警告メッセージを検索画面に追加する警告追加手段を含む。
【００１２】
この局面に従えば、第２の画像形成装置は、検索サーバよりシミュレートコマンドを受信することに応じて、アプリケーションプログラムをシミュレートし、検索サーバより受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報と、シミュレートした実行結果が正常でない場合は警告メッセージを含む、検索結果画面を生成する。このため、アプリケーションプログラムの実行可否を通知することが可能なアプリケーション共有システムを提供することができる。
【００１３】
好ましくは、第１の画像形成装置は、アプリケーションプログラムがインストールされる際に、該アプリケーションプログラムを実行することにより発生することが予想されるエラーを識別するためのエラーコードと、該エラーの発生原因とを関連付けたエラーテーブルを受け付け、記憶するエラーテーブル記憶手段をさらに備え、送信手段は、アプリケーションプログラムとともにエラーテーブルを検索サーバに送信し、検索サーバは、第１の画像形成装置から受信されるエラーテーブルをアプリケーションプログラムと関連付けて記憶するエラーテーブル記憶手段と、第２の画像形成装置からエラーコードが受信されることに応じて、エラーテーブルによってエラーコードと関連付けられた発生原因を第２の画像形成装置に送信する発生原因送信手段と、をさらに備え、第２の画像形成装置は、スタブ実行手段がアプリケーションプログラムを実行した結果が正常とならない場合、スタブ実行手段がアプリケーションプログラムを実行した結果得られるエラーコードを、検索サーバに送信するエラーコード送信手段、をさらに備え、警告追加手段は、エラーコードの送信に応じて受信される発生原因を、検索結果画面に追加する。
【００１４】
この局面に従えば、発生原因を通知するので、アプリケーションプログラムを実行するための条件をユーザに知らせることができる。
【００１５】
好ましくは、画面情報送信手段は、マークアップ言語で記述され、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、アプリケーションプログラムをダウンロード可能に表示するリンク表示コマンドと、シミュレートした結果が正常でない場合、警告メッセージを表示する警告表示コマンドとを含むウェブページを生成し、シミュレート手段は、シミュレートコマンドを実行し、画面生成手段は、リンク表示コマンドおよび警告表示コマンドを実行する。
【００１６】
好ましくは、画面情報送信手段は、アプリケーションプログラムに含まれる関数を、該関数に対応するスタブに変更することによって、シミュレーション用のアプリケーションプログラムを生成する関数変更手段を含み、シミュレートコマンドは、生成されたシミュレーション用のアプリケーションプログラムを実行させる記述である。
【００１７】
好ましくは、画面情報送信手段は、アプリケーションプログラムのプログラム名の拡張子を、予め定められた拡張子に変更することによって、シミュレーション用のアプリケーションプログラムを生成する名称変更手段を含み、シミュレートコマンドは、生成されたシミュレーション用のアプリケーションプログラムを実行させる記述である。
【００１８】
好ましくは、画面情報送信手段は、生成されるウェブページが所定量を超える場合、所定量以下の複数ページからなるウェブページを生成し、１ページのウェブページが生成されるごとに、生成された１ページのウェブページを検索要求を送信してきた第２の画像形成装置に送信する。
【００１９】
この局面に従えば、１ページごとにウェブページが送信されるので、すべてのウェブページを送信するより速く送信される。このため、画像形成装置でウェブページを早期に表示することができる。また、画像形成装置においては、１ページごとにウェブページを処理できるので、画像形成装置の負荷を時間的に分散させることができる。
【００２０】
好ましくは、処理実行手段は、画像を形成する画像形成手段を含む。
【００２１】
この発明の他の局面によれば、画像形成装置は、処理を実行する処理実行手段と、処理実行手段を動作させるために予め準備された複数の関数のうちから選択された関数を実行する関数実行手段と、関数実行手段が実行可能な複数の関数にそれぞれ対応する複数のスタブを実行可能であって、複数のスタブのいずれかを実行することにより、処理実行手段を動作させることなく、関数実行手段が複数の関数のうち該実行されるスタブに対応する関数を実行したのと同じ結果を出力するスタブ実行手段と、複数の関数を用いて記述されたアプリケーションプログラムを受信するアプリケーション受信手段と、受信されたアプリケーションプログラムをスタブ実行手段に実行させるシミュレート手段と、を備え、シミュレート手段は、受信されたアプリケーションプログラムに付された拡張子が予め定められた拡張子の場合に、受信されたアプリケーションプログラムをスタブ実行手段に実行させる。
【００２２】
この局面に従えば、複数の関数を用いて記述されたアプリケーションプログラムを処理実行手段を動作させることなく、処理実行手段が動作したのと同じ結果を出力するので、アプリケーションプログラムを実行する動作をシミュレートすることが可能な画像形成装置を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態におけるアプリケーション共有システムの全体概要を示す図である。
【図２】ＭＦＰの外観を示す斜視図である。
【図３】ＭＦＰのハードウエア構成の一例を示すブロック図である。
【図４】検索サーバのハードウエア構成の一例を示すブロック図である。
【図５】登録装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。
【図６】検索サーバが備えるＣＰＵの機能の概要の一例を示すブロック図である。
【図７】アプリケーションプログラムの一例を示す図である。
【図８】画面情報を含むウェブページのソースコードの一例を示す図である。
【図９】ダウンロード装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。
【図１０】アプリケーション登録処理の流れの一例を示すフローチャートである。
【図１１】検索送信処理の流れの一例を示すフローチャートである。
【図１２】画面情報生成・送信処理の流れの一例を示すフローチャートである。
【図１３】ブラウジング処理の流れの一例を示すフローチャートである。
【図１４】検索結果画面生成処理の流れの一例を示すフローチャートである。
【図１５】第２の実施の形態において登録装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。
【図１６】エラーテーブルの一例を示す図である。
【図１７】第２の実施の形態における検索サーバが備えるＣＰＵの機能の概要の一例を示すブロック図である。
【図１８】第２の実施の形態においてダウンロード装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。
【図１９】第２の実施の形態におけるアプリケーション登録処理の流れの一例を示すフローチャートである。
【図２０】第２の実施の形態における画面情報生成・送信処理の流れの一例を示すフローチャートである。
【図２１】第２の実施の形態における検索結果画面生成処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰り返さない。
【００２６】
＜第１の実施の形態＞
図１は、本発明の実施の形態におけるアプリケーション共有システムの全体概要を示す図である。図１を参照して、アプリケーション共有システム１は、それぞれがネットワーク３に接続された複合機（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）（以下、「ＭＦＰ」という）１００，１００Ａ〜１００Ｄと、インターネット５に接続された検索サーバ２００と、を含む。
【００２７】
ＭＦＰ１００，１００Ａ〜１００Ｄは、画像形成装置の一例であり、スキャナ機能、プリンタ機能、コピー機能、ファクシミリ機能等の複数の機能を備える。また、ＭＦＰ１００，１００Ａ〜１００Ｄそれぞれは、ＣＧＩ（Ｃｏｍｍｏｎ  Ｇａｔｅｗａｙ  Ｉｎｔｅｒｆａｃｅ）を備えており、インターネットウェブサーバ（以下「ＩＷＳ」）として機能する。さらに、ＣＧＩを起動するための関数としてのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）が公開されており、ユーザは、そのＡＰＩを用いてアプリケーションプログラムを開発し、ＭＦＰ１００，１００Ａ〜１００Ｄにインストールすることができる。さらに、ＭＦＰ１００，１００Ａ〜１００Ｄには、ブラウジングプログラムがインストールされており、ブラウジングプログラムを実行するタスクが、ＩＷＳとして機能するＭＦＰ１００，１００Ａ〜１００Ｄのユーザインターフェースとして機能する。
【００２８】
ネットワーク３は、ローカルエリアネットワーク（ＬＡＮ）であり、有線および無線の別を問わない。ＭＦＰ１００，１００Ａ〜１００Ｄそれぞれは、ネットワーク３を介して互いに通信可能であり、さらに、インターネット５を介して接続された検索サーバ２００と通信可能である。なお、ネットワーク３は、ＬＡＮに限らず、インターネット、ワイドエリアネットワーク（ＷＡＮ）または公衆交換電話網等であってもよい。
【００２９】
検索サーバ２００は、一般的なコンピュータである。本実施の形態においては、検索サーバ２００は、ＭＦＰ１００，１００Ａ〜１００Ｄのメーカが管理するコンピュータとしている。検索サーバ２００は、ＭＦＰ１００，１００Ａ〜１００Ｄそれぞれにおいてインストールされたアプリケーションプログラムがアップロードされ、アップロードされたアプリケーションプログラムを検索可能な状態で記憶し、要求に応じてダウンロードする。なお、検索サーバ２００は、ＭＦＰ１００，１００Ａ〜１００Ｄそれぞれにおいてインストールされたアプリケーションプログラムの他に、メーカが開発し、供給するアプリケーションプログラムを検索可能に記憶するようにしてもよい。なお、本実施の形態においては、検索サーバ２００を、ＭＦＰ１００，１００Ａ〜１００Ｄのメーカが管理するコンピュータとしたが、メーカとは関係のない者が管理するコンピュータであってもよい。
【００３０】
ＭＦＰ１００，１００Ａ〜１００Ｄは、それぞれが備える機能は同じであってもよく異なっていてもよいが、基本的には、紙などの用紙に画像を形成するための画像形成機能を少なくとも有し、付加的に、原稿を読み取って画像データを出力する画像読取機能、画像データを処理する画像処理機能、画像形成後の用紙にパンチ穴加工、ソート処理等する後処理機能、ファクシミリ送受信機能のいずれかを含んでもよい。
【００３１】
ＭＦＰ１００，１００Ａ〜１００Ｄ各々が有する機能は同じではない場合があるが、ここではＭＦＰ１００が、他のＭＦＰ１００Ａ〜１００Ｄのいずれかが有する機能を有している場合を例に説明する。
【００３２】
図２は、ＭＦＰの外観を示す斜視図である。図２を参照して、ＭＦＰ１００は、自動原稿搬送装置（ＡＤＦ）２１と、画像読取部２２と、画像処理部２３（図３参照）と、画像形成部２４と、給紙部２５と、後処理部２６とを含む。また、ＭＦＰ１００は、その上面にユーザインターフェースとして用いられる操作パネル１１を備えている。
【００３３】
図３は、ＭＦＰのハードウエア構成の一例を示すブロック図である。図３を参照して、ＭＦＰ１００は、情報処理部１０１と、ファクシミリ部２７と、通信制御部２８と、ＡＤＦ２１と、画像読取部２２と、画像処理部２３と、画像形成部２４と、給紙部２５と、後処理部２６と、を含む。情報処理部１０１は、中央演算装置（ＣＰＵ）１１１と、ＣＰＵ１１１が実行するプログラム等を記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１２と、ＣＰＵ１１１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１３と、データを不揮発的に記憶するためのハードディスクドライブ（ＨＤＤ）１１４と、表示部１１５と、操作部１１６と、ネットワークインターフェース（Ｉ／Ｆ）１１７と、外部記憶装置１１８とを含む。ＣＰＵ１１１は、ＲＯＭ１１２、ＲＡＭ１１３、ＨＤＤ１１４、表示部１１５、操作部１１６、ネットワークＩ／Ｆ１１７および外部記憶装置１１８とそれぞれ接続され、情報処理部１０１の全体を制御する。また、ＣＰＵ１１１は、ファクシミリ部２７、通信制御部２８、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６と接続され、ＭＦＰ１の全体を制御する。
【００３４】
ＡＤＦ２１は、原稿台に搭載された複数枚の原稿をさばいて１枚ずつ順に、画像読取部２２に搬送する。ＡＤＦ２１は、原稿の片面を画像読取部２２に読み取らせる場合、原稿を画像読取部２２に搬送して表面を読み取らせる。さらに、ＡＤＦ２１は、原稿の両面を画像読取部２２に読み取らせる場合、原稿を画像読取部２２に搬送して表面を読み取らせた後、原稿を裏返して画像読取部２２に搬送して裏面を読み取らせる。画像読取部２２は、写真、文字、絵等の画像情報を原稿から光学的に読み取って画像データを取得し、画像処理部２３に出力する。
【００３５】
画像処理部２３は、ＣＰＵ１１１により制御され、ＣＰＵ１１１からの指示に基づき画像データを画像処理する。画像データは、画像読取部２２が原稿を読み取って出力する画像データ、ネットワークＩ／Ｆ１１７により他のコンピュータから受信されるプリントジョブに含まれる画像データ、ネットワークＩ／Ｆ１１７により他のＭＦＰ１００Ａ〜１００Ｄのいずれかから受信される画像データ、ＨＤＤ１１４に記憶されている画像データを含む。画像処理は、例えば、画像を拡大する拡大処理、画像を縮小する縮小処理、複数の画像を合成して１つの画像を生成する合成処理、画像を回転させて方向を変換する回転処理等である。画像処理部２３は、処理後の画像データを画像形成部２４に出力する。
【００３６】
給紙部２５は、複数の給紙トレイを有し、指定された給紙トレイに格納した用紙を１枚ずつ画像形成部２４に供給する。複数の給紙トレイそれぞれは、複数のサイズの用紙のうちから選ばれたサイズの用紙を、複数の方向のうちから選ばれた方向に収納する。ここでは、給紙部２５が４つの第１〜第４給紙トレイを有し、第１の給紙トレイがＡ４サイズの用紙を縦方向に収納し、第２の給紙トレイがＡ４サイズの用紙を横方向に収納し、第３の給紙トレイがＡ３サイズの用紙を縦方向に収納し、第４の給紙トレイがＢ５サイズの用紙を横方向に収納する。また、給紙部２５は、両面印刷が指定されると、用紙の両面に画像を形成するために、画像形成部２４に搬送した用紙を表裏反転させて、再度画像形成部２４に搬送する。
【００３７】
画像形成部２４は、画像処理部２３から入力される画像データに基づき、給紙部２５から搬送される用紙に画像を形成する。
【００３８】
後処理部２６は、画像が形成された用紙を排紙する。後処理部２６は、複数の排紙トレイを有し、ソート部、パンチ穴加工部、ステープル加工部を備えている。ソート部は、画像が形成された複数の用紙を複数の排紙トレイにソートして出力する。パンチ穴加工部は、用紙にパンチ穴を開ける。ステープル加工部は、画像が形成された複数の用紙をまとめるためにステープル加工する。
【００３９】
表示部１１５は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置であり、ユーザに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１１６は、複数のキーを備え、キーに対応するユーザの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部１１６は、表示部１１５上に設けられたタッチパネルをさらに含む。表示部１１５と操作部１１６とで、操作パネル１１を構成する。
【００４０】
ネットワークＩ／Ｆ１１７は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで通信するためのインターフェースであり、ネットワーク３およびインターネット５を介して検索サーバ２００と通信する。また、ネットワーク３に接続された他のＭＦＰ１００Ａ〜１００Ｄと通信する。
【００４１】
外部記憶装置１１８は、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１９が装着される。ＣＰＵ１１１は、外部記憶装置１１８を介してＣＤ−ＲＯＭ１１９にアクセス可能であり、ＣＤ−ＲＯＭ１１９に記憶されたプログラムをＲＡＭ１１３にロードして実行可能である。なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１９に記憶されたプログラムに限られず、他の記憶媒体に記憶されたプログラムでもよく、ＨＤＤ１１６に記憶されたプログラムであってもよく、さらに、ネットワークＩ／Ｆ１１７を介してネットワーク３に接続された他のコンピュータによりＨＤＤ１１４に書込みされたプログラムであってもよい。
【００４２】
なお、プログラムを記憶する記憶媒体としては、ＣＤ−ＲＯＭ１１９に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリでもよい。
【００４３】
ファクシミリ部２７は、ＰＳＴＮ１３に接続され、ＰＳＴＮ１３にファクシミリデータを送信する、またはＰＳＴＮ１３からファクシミリデータを受信する。ファクシミリ部２７は、受信したファクシミリデータを、画像形成部２４がプリント可能なプリントデータに変換して、画像形成部２４に出力する。これにより、画像形成部２４は、ファクシミリ部２７により受信されたファクシミリデータを用紙にプリントする。また、ファクシミリ部２７は、ＨＤＤ１１４に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮ１３に接続されたファクシミリ装置に送信する。
【００４４】
ＨＤＤ１１４は、ＭＦＰ１００の環境情報を記憶する。環境情報は、ＭＦＰ１００に接続される周辺機器の接続状態を示す接続情報、ＭＦＰ１００が有する機能ごとに所定の設定項目の設定値を含む設定情報と、を含む。接続状態は、ＡＤＦ２１、画像読取部２２、画像処理部２３、後処理部２６の接続有無を示す。ＭＦＰ１００が有する機能は、両面読み取り機能、カラー印字機能、給紙機能、両面印字機能、画像処理機能、後処理機能を含む。両面読取機能における設定項目と設定値は、原稿の両面を読み取り可能であるか否かが設定される。また、カラー印字機能における設定項目と設定値は、カラー印字が可能であるか否かを設定される。給紙機能における設定項目と設定値は、Ａ４縦、Ａ４横、Ａ３縦およびＢ５横の用紙を選択可能か否かが設定される。プリント機能における設定項目と設定値は、片面または両面に画像を形成可能であるか否かが設定される。画像処理機能における設定項目と設定値は、画像のサイズを変更する変倍処理および複数ページの画像を合成して１つの用紙に画像形成するＮｉｎ１処理が可能であるか否かが設定される。後処理機能における設定項目と設定値は、ソート処理、ステープル加工処理およびパンチ穴加工処理が可能であるか否かが設定される。通信機能における設定項目と設定値は、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）のバージョン情報が設定される。
【００４５】
ＭＦＰ１００，１００Ａ〜１００Ｄ各々は、画像形成部２４および給紙部２５を少なくとも備えており、付加的に、ＡＤＦ２１、画像読取部２２、画像処理部２３、後処理部２６およびファクシミリ部２７のいずれかを備えている。したがって、ＭＦＰ１００，１００Ａ〜１００ＤのうちＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５、後処理部２６およびファクシミリ部２７の全てを備えていないものが存在してもよく、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５、後処理部２６およびファクシミリ部２７のいずれを備えているかにより、ＭＦＰ１００，１００Ａ〜１００Ｄ各々が備える機能が異なる場合がある。
【００４６】
さらに、画像処理部２３は、拡大処理、縮小処理、合成処理、および回転処理を含む例を説明したが、画像処理部２３は、拡大処理、縮小処理、合成処理、および回転処理の少なくとも１つを実行可能であればよい。したがって、ＭＦＰ１００，１００Ａ〜１００Ｄのうちで画像処理部２３を備えているものの間で、拡大処理、縮小処理、合成処理、および回転処理のいずれを実行可能かによって、機能が異なる場合がある。
【００４７】
また、後処理部２６にあっては、上述したようにソート機能、ステープル機能、パンチ機能を備えている例を説明したが、これらの機能のうち少なくとも１つを備えていればよい。このため、ＭＦＰ１００，１００Ａ〜１００Ｄのうちで後処理部２６を備えるもののうち、ソート機能、ステープル機能、パンチ機能の全てを備えていないものが存在してもよい。したがって、ＭＦＰ１００，１００Ａ〜１００Ｄのうちで後処理部２６を備えるものの間で、ソート機能、ステープル機能、パンチ機能のいずれを備えているかによって、機能が異なる場合がある。
【００４８】
図４は、検索サーバのハードウエア構成の一例を示すブロック図である。図４を参照して、検索サーバ２００は、検索サーバ２００の全体を制御するためのＣＰＵ２０１と、ＣＰＵ２０１が実行するプログラム等を記憶するためのＲＯＭ２０２と、ＣＰＵ２０１の作業領域として用いられるＲＡＭ２０３と、検索サーバ２００をネットワークに接続するためのネットワークＩ／Ｆ２０４と、大容量記憶装置としてのＨＤＤ２０５と、表示部２０６と、ユーザの操作の入力を受け付ける操作部２０７と、ＣＤ−ＲＯＭ２０９が装着される外部記憶装置２０８と、を含む。
【００４９】
外部記憶装置２０８には、ＣＤ−ＲＯＭ２０９が装着される。ＣＤ−ＲＯＭ２０９には、ＣＰＵ２０１が実行可能なアプリケーション検索プログラムが記憶されており、ＣＰＵ２０１は、外部記憶装置２０８を制御して、ＣＤ−ＲＯＭ２０９からアプリケーション検索プログラムを読出し、読み出したアプリケーション検索プログラムをＲＡＭ２０３にロードして実行する。
【００５０】
なお、アプリケーション検索プログラムを記憶する記録媒体としては、ＣＤ−ＲＯＭ２０９に限られず、フレキシブルディスク、カセットテープ、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリでもよい。さらに、ＣＰＵ２０１がインターネット５に接続された他のコンピュータからアプリケーション検索プログラムをダウンロードしてＨＤＤ２０５に記憶する、または、他のコンピュータがアプリケーション検索プログラムをＨＤＤ２０５に書込みするようにして、ＨＤＤ２０５に記憶されたアプリケーション検索プログラムをＲＡＭ２０３にロードしてＣＰＵ２０１で実行するようにしてもよい。ここでいうプログラムは、ＣＰＵ２０１により直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５１】
本実施の形態におけるアプリケーション共有システム１においては、ＭＦＰ１００，１００Ａ〜１００Ｄのいずれかで開発されたアプリケーションプログラムが、検索サーバ２００に登録され、ＭＦＰ１００，１００Ａ〜１００Ｄのいずれかにおいて、検索サーバ２００に登録されたアプリケーションプログラムをダウンロードしてインストールする。したがって、ＭＦＰ１００，１００Ａ〜１００Ｄそれぞれは、開発されたアプリケーションプログラムがインストールされると検索サーバ２００に登録する登録装置として機能するとともに、検索サーバ２００からアプリケーションプログラムをダウンロードするダウンロード装置として機能する。登録装置およびダウンロード装置として機能するＭＦＰ１００，１００Ａ〜１００Ｄは同じなので、ここではＭＦＰ１００を例に説明する。
【００５２】
図５は、登録装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。図５に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶されたアプリケーション共有プログラムを実行することにより、ＣＰＵ１１１に形成される。
【００５３】
図５を参照して、ＣＰＵ１１１は、アプリケーションプログラムを受け付けるアプリケーション受付部５１と、アプリケーションプログラムを実行する関数実行部５３と、エビデンスデータを生成するエビデンスデータ生成部５５と、アプリケーションプログラムとエビデンスデータとを含むアプリデータを検索サーバに送信する登録情報送信部５７と、を含む。
【００５４】
関数実行部５３は、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させるために予め準備された複数の関数のうちから選択された関数を実行し、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させる。複数の関数は、ＭＦＰ１００のメーカによってＡＰＩとして予め公開されている。ユーザは、操作部１１６を用いて、ＭＦＰ１００を動作させるための処理手順をＡＰＩの関数で記述することにより、アプリケーションプログラムを作成することができる。
【００５５】
アプリケーション受付部５１は、ユーザが操作部１１６に入力するアプリケーションプログラムを受け付ける。また、ユーザが、パーソナルコンピュータを用いて、ＡＰＩの関数で記述されたアプリケーションプログラムを作成する場合は、パーソナルコンピュータで作成されたアプリケーションプログラムを、ネットワーク３を介して、ＭＦＰ１００に送信してもよい。この場合は、アプリケーション受付部５１は、ネットワークＩ／Ｆ１１７がパーソナルコンピュータから受信するアプリケーションプログラムを受け付ける。アプリケーション受付部５１は、受け付けられたアプリケーションプログラムを、関数実行部５３および登録情報送信部５７に出力する。
【００５６】
関数実行部５３は、アプリケーション受付部５１から入力されるアプリケーションプログラムに記述された順に関数を実行する。ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させるために、動作を特定するための条件、例えば、コピー部数等が必要な場合がある。この場合には、アプリケーションプログラムは、ユーザから条件を受け付けるためのユーザインターフェースとして条件設定画面を表示部１１５に表示する関数の記述、ユーザが入力する条件を受け付ける関数の記述を含む。関数実行部５３は、アプリケーションプログラムに記述された順に関数を実行することによって、表示部１１５に条件設定画面を表示し、ユーザが操作部１１６に入力する条件を受け付ける。関数実行部５３は、操作部１１６から条件を受け付ける場合は、受け付けられた条件に従って、アプリケーションプログラムに記述された順に関数を実行し、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６のいずれかを動作させる。
【００５７】
関数実行部５３は、操作部１１６から条件を受け付ける場合は、受け付けられた条件をエビデンスデータ生成部５５に出力する。エビデンスデータ生成部５５は、条件が入力される場合は、条件を含むエビデンスデータを生成し、生成されたエビデンスデータを登録情報送信部５７に出力する。
【００５８】
登録情報送信部５７は、アプリケーション受付部５１から入力されるアプリケーションプログラムと、エビデンスデータ生成部５５からエビデンスデータが入力される場合は、エビデンスデータとを、検索サーバ２００に、ネットワークＩ／Ｆ１１７を介して送信する。
【００５９】
ここで、検索サーバ２００について説明する。図６は、検索サーバが備えるＣＰＵの機能の概要の一例を示すブロック図である。図６に示す機能は、検索サーバ２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９に記憶されたアプリケーション共有プログラムを実行することにより、ＣＰＵ２０１に形成される。
【００６０】
図６を参照して、ＣＰＵ２０１は、アプリケーション登録部２１１と、検索要求受信部２１３と、抽出部２１５と、画面情報送信部２１７と、アプリ要求受信部２３１と、アプリ送信部２３３と、を含む。
【００６１】
アプリケーション登録部２１１は、ネットワークＩ／Ｆ２０４がＭＦＰ１００，１００Ａ〜１００Ｄのいずれかからアプリケーションプログラムを受信すると、受信されたアプリケーションプログラムをＨＤＤ２０５に記憶する。アプリケーション登録部２１１は、アプリケーションプログラムととともにエビデンスデータが受信される場合には、そのエビデンスデータをアプリケーションプログラムと関連付けて記憶する。また、アプリケーション登録部２１１は、アプリケーションプログラムをＨＤＤ２０５に記憶する際に、アプリケーションプログラムに検索に用いるためのキーワードを付与する。キーワードは、検索サーバ２００の管理者が付与するようにしてもよいし、アプリケーションプログラムを送信してきた装置、例えばＭＦＰ１００において、アプリケーションプログラムをインストールする際に、ＭＦＰ１００のユーザである開発者が入力し、アプリケーションプログラムとともに検索サーバ２００に送信するようにしてもよい。アプリケーション登録部２１１によって、アプリケーションプログラムがＨＤＤ２０５に記憶されると、ＨＤＤ２０５にアプリケーションプログラムとキーワードとを少なくとも含む登録情報２５１が記憶される。
【００６２】
検索要求受信部２１３は、ネットワークＩ／Ｆ２０４がＭＦＰ１００，１００Ａ〜１００Ｄのいずれかから検索要求を受信すると、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきたものに検索画面をネットワークＩ／Ｆ２０４を介して送信する。検索画面は、ＨＤＤ２０５に記憶された登録情報２５１を検索するための検索キーワードを入力する領域を含む。ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索画面を受信する装置、例えば、ＭＦＰ１００は、検索画面を表示し、ユーザが検索画面に従って検索キーワードを入力すれば、検索キーワードを検索サーバ２００に送信する。検索要求受信部２１３は、ネットワークＩ／Ｆ２０４が検索画面を送信したＭＦＰ１００から検索キーワードを受信すると、受信された検索キーワードを抽出部２１５に出力する。
【００６３】
抽出部２１５は、検索要求受信部２１３から検索キーワードが入力されることに応じて、検索キーワードを用いてＨＤＤ２０５に記憶されている登録情報２５１を検索する。具体的には、ＨＤＤ２０５に記憶されている登録情報２５１のうち、検索要求受信部２１３から入力される検索キーワードと同じキーワード、またはそれに含まれる複数のキーワードの少なくとも１つと同じキーワードで、関連付けられたアプリケーションプログラムを抽出する。ＨＤＤ２０５に、検索キーワードと同じキーワード、またはそれに含まれる複数のキーワードの少なくとも１つと同じキーワードで、関連付けられたアプリケーションプログラムが複数記憶されている場合、それら複数のアプリケーションプログラムを抽出する。抽出部２１５は、抽出された１以上のアプリケーションプログラムを、画面情報送信部２１７に出力する。抽出部２１５は、抽出されたアプリケーションプログラムがエビデンスデータと関連付けられている場合には、アプリケーションプログラムとともに、それに関連付けられているエビデンスデータを、画面情報送信部２１７に出力する。
【００６４】
画面情報送信部２１７は、抽出部２１５から入力される１以上のアプリケーションプログラムに基づいて画面情報を生成し、画面情報をＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものにネットワークＩ／Ｆ２０４を介して送信する。画面情報送信部２１７は、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドを生成し、生成されたシミュレートコマンドとアプリケーションプログラムのネットワークアドレスとを含む画面情報を生成する。画面情報送信部２１７は、抽出部２１５からアプリケーションプログラムとともにエビデンスデータが入力される場合、アプリケーションプログラムをエビデンスデータに含まれる条件での実行をシミュレートするシミュレートコマンドを生成する。画面情報送信部２１７は、抽出部２１５から複数のアプリケーションプログラムが入力される場合、複数のアプリケーションプログラムごとに、画面情報を生成する。画面情報送信部２１７は、抽出部２１５から入力されるアプリケーションプログラムの数の画面情報を生成する。画面情報は、シミュレートコマンドと表示コマンドとを含む。
【００６５】
画面情報送信部２１７は、関数変換部２１９を含む。関数変換部２１９は、アプリケーションプログラムに記述されている関数の名称を、関数をシミュレートするために予め定められたスタブの名称に変更する。ここでは、スタブの名称は、関数の名称の後に「ｓｔｂ」を追加した名称としている。例えば、ＡＰＩの名称が「ｃｏｐｙ．ｐｙ」とすると、スタブの名称は「ｃｏｐｙｓｔｂ．ｐｙ」である。
【００６６】
シミュレートコマンドは、関数変換部２１９がアプリケーションプログラムに記述されている関数の名称をスタブの名称に変更した後のシミュレーション用のアプリケーションプログラムを含み、シミュレーション用のアプリケーションプログラムを実行させる記述である。シミュレートコマンドは、抽出部２１５からアプリケーションプログラムとともにエビデンスデータが入力される場合、シミュレーション用のアプリケーションプログラムをエビデンスデータに含まれる条件で実行させる記述である。例えば、エビデンスデータに含まれる条件をアプリケーションプログラムに引数として渡す記述である。表示コマンドは、シミュレートコマンドの実行結果が正常であることを条件にアプリケーションプログラムをダウンロード可能に表示させるコマンドであり、ＨＤＤ２０５に記憶された登録情報２５１に含まれるアプリケーションプログラムへのリンク情報を含み、リンク情報は、そのアプリケーションプログラムのネットワークアドレスを含む。ネットワークアドレスは、例えば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）である。
【００６７】
ここでは、画面情報送信部２１７は、マークアップ言語で記述され、画面情報を記述したウェブページを生成し、生成されたウェブページをＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものに送信する。ウェブページは、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドの記述と、該アプリケーションプログラムの実行をシミュレートした結果が正常であることを条件にアプリケーションプログラムをダウンロード可能に表示する表示コマンドの記述とを含む。シミュレートコマンドの記述と、表示コマンドの記述とは、抽出部２１５から入力される１以上のアプリケーションプログラムデータの数と同じ数だけ含まれる。
【００６８】
画面情報送信部２１７は、抽出部２１５から入力される１以上のアプリケーションプログラムの数が所定の数を超える場合、シミュレートコマンドの記述と、表示コマンドの記述との組を所定数含む複数のウェブページを生成し、複数のウェブページを生成された順に１ページのウェブページを選択する。画面情報送信部２１７は、選択されたウェブページをＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものにネットワークＩ／Ｆ２０４を介して送信する。画面情報送信部２１７は、複数のウェブページを送信する場合、後述するＭＦＰ１００から次ページの送信要求をネットワークＩ／Ｆ２０４が受信するまで待って、次ページのウェブページを送信する。
【００６９】
後述するように、複数ページのウェブページを生成してから送信するよりも速くウェブページを送信することができる。また、ＭＦＰ１００においては、受信されたウェブページに記述されたシミュレートコマンドおよび表示コマンドを実行するが、所定数の組のシミュレートコマンドおよび表示コマンドを実行すれば検索結果画面を表示することができるので、検索結果画面をできるだけ速く表示することができる。さらに、シミュレートコマンドおよび表示コマンドを実行している最中に、次のウェブページを受信することができる。
【００７０】
アプリ要求受信部２３１は、ネットワークＩ／Ｆ２０４がＭＦＰ１００，１００Ａ〜１００Ｄのいずれかからダウンロード要求を受信すると、ダウンロード要求に含まれるネットワークアドレスを、アプリ送信部２３３に出力する。アプリ送信部２３３は、アプリ要求受信部２３１から入力されるネットワークアドレスで特定されるアプリケーションプログラムを、ＨＤＤ２０５に記憶されている登録情報２５１のうちから読み出し、読み出したアプリケーションプログラムを、ＭＦＰ１００，１００Ａ〜１００Ｄのうちダウンロード要求を送信してきたものにネットワークＩ／Ｆ２０４を介して送信する。
【００７１】
図７は、アプリケーションプログラムの一例を示す図である。図７を参照して、アプリケーションプログラム３０１は、アプリケーションプログラムの名称ＣｏｐｙＡｐｐ＿Ａ．ｐｙであり、言語はＰｙｔｈｏｎで記述される。アプリケーションプログラム３０１は、関数名ｋｍｆｕｎｃ．ｃｏｐｙの関数３０３の記述を含む。関数は、ｉｍｐｏｒｔコマンドによってアプリケーションプログラムに組み入れられている。関数３０３は、引数「ｎｕｍ」および「ｓｔａｐｌｅ」が与えられる。引数「ｎｕｍ」は、コピー枚数を示し、引数「ｓｔａｐｌｅ」は、ステープル位置を示す。関数３０３は、引数「ｎｕｍ」の部数コピーし、引数「ｓｔａｐｌｅ」で指定される位置にステープルする動作をさせる関数である。
【００７２】
図８は、画面情報を含むウェブページのソースコードの一例を示す図である。図８を参照して、ウェブページ３１１は、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）のマークアップ言語で記述され、シミュレートコマンドの記述３１３と、表示コマンドの記述３１５とを含む。シミュレートコマンドの記述３１３は、関数名ｋｍｆｕｎｃ．ｃｏｐｙの関数３０３に対応し、名称ｋｍｆｕｎｃ．ｃｏｐｙｓｕｂのスタブを含み、引数「ｎｕｍ」として「２」と、引数「ｓｔａｐｌｅ」として「ｕｐｐｅｒ＿ｒｉｇｈｔ」とが与えられる記述を含む。これらの引数は、エビデンスに基づいて関数に与えられる。
【００７３】
表示コマンドの記述３１５は、シミュレートコマンドの実行結果が成功「ｏｋ」の場合に、アプリケーションプログラムＣｏｐｙＡｐｐ＿Ａをダウンロード可能に表示する記述を含む。
【００７４】
図９は、ダウンロード装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。図９に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶されたアプリケーション共有プログラムおよびブラウジングプログラムを実行することにより、ＣＰＵ１１１に形成される。
【００７５】
図９を参照して、ＣＰＵ１１１は、ブラウジング部８１と、画面情報受信部８３と、シミュレート部８５と、スタブ実行部８７と、画面生成部８９と、ダウンロード部９１と、を含む。ブラウジング部８１およびダウンロード部９１は、ＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶されたブラウジングプログラムを実行することにより、ＣＰＵ１１１に形成される機能である。画面情報受信部８３と、シミュレート部８５と、スタブ実行部８７と、画面生成部８９とは、ＣＰＵ１１１がアプリケーション共有プログラムを実行することによりＣＰＵ１１１に形成される機能である。
【００７６】
ここでは、ブラウジング部８１が起動すると、ブラウジング部８１が検索サーバ２００に、それに登録されているアプリケーションプログラムを検索するための検索画面の送信を要求する場合を説明する。ブラウジング部８１は、ネットワークＩ／Ｆ１１７が検索サーバ２００から検索画面を受信すると、受信された検索画面を表示部１１５に表示する。ユーザが表示部１１５に表示された検索画面に従って、検索キーワードを入力することができる。検索キーワードは、ユーザがＭＦＰ１００にインストールすることを望むアプリケーションプログラムを抽出するための条件である。例えば、検索画面に、予め複数の検索キーワードを準備しておき、複数の検索キーワードのうちから１つをユーザが選択するようにしてもよいし、ユーザが任意に検索キーワードを入力するようにしてもよい。任意の検索キーワードを入力する場合には、例えば、コピー機能に関するアプリケーションプログラムをインストールすることを望むのであれば、検索キーワードにコピー機能に関連するワード、例えば「コピー」を設定すればよい。
【００７７】
ブラウジング部８１は、ユーザが操作部１１６に入力する検索キーワードを検索サーバ２００に、ネットワークＩ／Ｆ１１７を介して送信する。
【００７８】
画面情報受信部８３は、ネットワークＩ／Ｆ１１７を制御して、検索サーバ２００が検索キーワードの受信に応じて送信する画面情報を受信し、受信された画面情報をシミュレート部８５および画面生成部８９に出力する。画面情報は、検索サーバ２００によって抽出された１以上のアプリケーションプログラムそれぞれについて、該アプリケーションプログラムの実行をシミュレートするシミュレートコマンドと、そのアプリケーションプログラムのネットワークアドレスと、を含む。ここでは、画面情報は、シミュレートコマンドおよび表示コマンドとしてウェブページに記述され、画面情報が記述されたウェブページを受信する場合について説明する。
【００７９】
シミュレート部８５は、画面情報受信部８３から入力されるウェブページに記述されたシミュレートコマンドに従って、シミュレートコマンドに含まれるシミュレート用のアプリケーションプログラムに含まれるスタブをスタブ実行部８７に実行させる。
【００８０】
スタブ実行部８７は、関数実行部５３が実行する複数の関数にそれぞれ対応する複数のスタブを実行し、実行結果を画面生成部８９に出力する。上述したように関数実行部５３は、複数の関数のいずれかを実行するとＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させるが、スタブ実行部８７は、複数のスタブのいずれかを実行することにより、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させることなく、関数実行部５３がスタブ実行部８７の実行するスタブに対応する関数を実行したのと同じ結果を、画面生成部８９に出力する。
【００８１】
具体的には、スタブ実行部８７は、スタブを実行することにより、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６の動作をシミュレートし、そのシミュレートした結果を画面生成部８９に出力する。例えば、後処理部２６がステープル機能を備えていない場合に、スタブがステープルする関数に対応するならば、後処理部２６によってステープルできないことを示すエラーコードを画面生成部８９に出力する。エラーコードは、関数およびスタブの返り値として予め定められており、またはアプリケーションプログラムの実行結果としてアプリケーションプログラムにより予め定められている。スタブ実行部８７は、シミュレート用のアプリケーションプログラムを実行した結果がエラーの場合にはエラーコードを画面生成部８９に出力するが、シミュレート用のアプリケーションプログラムを実行した結果が正常の場合には正常終了信号を画面生成部８９に出力する。
【００８２】
画面生成部８９は、画面情報受信部８３から入力されるウェブページに含まれる表示コマンドを実行し、スタブ実行部８７から入力される実行結果に基づいて検索結果画面を生成し、検索結果画面をブラウジング部８１に出力する。検索結果画面は、マークアップ言語で記述される。具体的には、画面生成部８９は、スタブ実行部８７から正常終了信号が入力される場合は、スタブ実行部８７により実行されたシミュレーション用のアプリケーションプログラムに対応するアプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述を検索結果画面に追加する。アプリケーションプログラムをダウンロード可能に表示する記述は、表示コマンドに含まれるアプリケーションプログラムが記憶されているネットワークアドレスを含むリンク情報と関連付けられる。画面生成部８９は、スタブ実行部８７からエラーコードが入力される場合は、スタブ実行部８７により実行されたシミュレーション用のアプリケーションプログラムに対応するアプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述を検索結果画面に追加しない。
【００８３】
画面情報受信部８３から入力されるウェブページにシミュレートコマンドと表示コマンドとの組が複数記述されている場合、シミュレート部８５および画面生成部８９は、複数の組ごとに、シミュレートコマンドおよび表示コマンドを実行する。このため、スタブ実行部８７は、シミュレート部８５がシミュレートコマンドを実行するごとに、エラーコードまたは制御終了信号のいずれかを出力し、画面生成部８９は、スタブ実行部８７からエラーコードまたは正常終了信号のいずれかが入力されるごとに、アプリケーションプログラムをダウンロード可能に表示するか否かを判断し、正常終了信号が入力される場合に、アプリケーションプログラムをダウンロード可能に表示する記述を検索結果画面に追加する。
【００８４】
このため、検索結果画面は、検索サーバ２００において、抽出された複数のアプリケーションプログラムのうち、ＭＦＰ１００で実行してもエラーとならないアプリケーションプログラムのみをダウンロードする記述を含む。検索結果画面は、ＭＦＰ１００で実行するとエラーとなるアプリケーションプログラムをダウンロードする記述を含まないので、不要なアプリケーションプログラムがダウンロードされないようにすることができる。
【００８５】
ブラウジング部８１は、画面生成部８９から検索結果画面が入力されると、検索結果画面を表示部１１５に表示する。検索結果画面は、アプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述を含むので、ユーザが操作部１１６を操作して、検索結果画面のリンク元を指示すれば、ブラウジング部８１は、アプリケーションプログラムのダウンロード要求を、検索サーバ２００に送信する。検索サーバ２００は、ダウンロード要求を受信すると、アプリケーションプログラムを送信するので、ダウンロード部９１は、ネットワークＩ／Ｆ１１７がアプリケーションプログラムを受信すると、その受信されたアプリケーションプログラムを、ＨＤＤ１１４に記憶する。
【００８６】
図１０は、アプリケーション登録処理の流れの一例を示すフローチャートである。アプリケーション登録処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶されたアプリケーション登録プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。アプリケーション登録プログラムは、アプリケーション共有プログラムの一部である。
【００８７】
図１０を参照して、ＣＰＵ１１１は、アプリケーションプログラムを受け付けたか否かを判断する（ステップＳ０１）。アプリケーションプログラムを受け付けるまで待機状態となり（ステップＳ０１でＮＯ）、アプリケーションプログラムを受け付けたならば処理をステップＳ０２に進める。換言すれば、アプリケーション登録処理は、ＭＦＰ１００にアプリケーションプログラムが入力されることを条件に実行される処理である。ＣＰＵ１１１は、ユーザが操作部１１６に入力するアプリケーションプログラムを受け付ける。また、ユーザが、パーソナルコンピュータを用いて、ＡＰＩの関数で記述されたアプリケーションプログラムを作成する場合は、パーソナルコンピュータで作成されたアプリケーションプログラムを、ネットワークＩ／Ｆ１１７がパーソナルコンピュータから受信することにより、アプリケーションプログラムを受け付ける。
【００８８】
ステップＳ０２においては、ステップＳ０１において受け付けられたアプリケーションプログラムを実行する。ステップＳ０１において受け付けられるアプリケーションプログラムは、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させる手順が記述されるが、それらの動作を特定するための条件、例えば、コピー部数等を要求する場合がある。ステップＳ０２において、実行されたアプリケーションプログラムが、条件を要求する場合には、その条件を受け付ける。
【００８９】
次のステップＳ０３においては、アプリケーションプログラムの実行結果を判断する。実行結果が正常ならば処理をステップＳ０４に進めるが、そうでなければ処理を終了する。ステップＳ０４においては、エビデンスデータを生成する。エビデンスデータは、ステップＳ０２において実行されたアプリケーションプログラムを実行する際に、受け付けられた条件を含む。次のステップＳ０５においては、登録情報を検索サーバ２００に送信し、処理を終了する。登録情報は、ステップＳ０１において受け付けられたアプリケーションプログラムと、ステップＳ０４において生成されたエビデンスデータとを含む。
【００９０】
図１１は、検索送信処理の流れの一例を示すフローチャートである。検索送信処理は、検索サーバ２００が備えるＣＰＵ２０１が、ＲＯＭ２０２、ＨＤＤ２０５またはＣＤ−ＲＯＭ２０９に記憶された検索送信プログラムを実行することにより、ＣＰＵ２０１により実行される処理である。検索送信プログラムは、アプリケーション共有プログラムの一部である。図１１を参照して、ＣＰＵ２０１は、アプリケーションプログラムを受信したか否かを判断する（ステップＳ５１）。ネットワークＩ／Ｆ２０４が、ＭＦＰ１００，１００Ａ〜１００Ｄのいずれかからアプリケーションプログラムを受信したならば処理をステップＳ５２に進めるが、そうでなければ処理をステップＳ５４に進める。ネットワークＩ／Ｆ２０４が、アプリケーションプログラムととともにエビデンスデータを受信する場合は、そのエビデンスデータをアプリケーションプログラムとともに受信する。
【００９１】
ステップＳ５２においては、キーワードを受け付ける。検索サーバ２００のユーザが、操作部２０７に入力するキーワードを受け付ける。ユーザが、ステップＳ５１において受信されたアプリケーションプログラムを閲覧し、キーワードを決定する。なお、アプリケーションプログラムの名称、アプリケーションプログラムに含まれる関数から自動的にキーワードを生成するようにしてもよい。さらに、アプリケーションプログラムを送信しきた装置、例えばＭＦＰ１００において、アプリケーションプログラムをインストールする際に、開発者が入力し、アプリケーションプログラムとともに送信し、アプリケーションプログラムがキーワードとともに受信される場合は、アプリケーションプログラムとともに受信されたキーワードを受け付けるようにしてもよい。
【００９２】
次のステップＳ５３においては、ステップＳ５１において受信されたアプリケーションプログラムを、ステップＳ５２において受け付けられたキーワードと関連付け、それらをＨＤＤ２０５に記憶し、処理を終了する。アプリケーションプログラムととともにエビデンスデータが受信される場合には、そのエビデンスデータをアプリケーションプログラムと関連付けて記憶し、処理を終了する。
【００９３】
ステップＳ５４においては、検索要求を受信したか否かを判断する。ネットワークＩ／Ｆ２０４が、ＭＦＰ１００，１００Ａ〜１００Ｄのいずれかから検索要求を受信したならば処理をステップＳ５５に進めるが、検索要求を受信しなければ処理をステップＳ５７に進める。
【００９４】
ステップＳ５５においては、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきたものから受信される検索キーワードを含むキーワードと関連付けられたアプリケーションプログラムを、ＨＤＤ２０５に記憶されているアプリケーションプログラムのうちから抽出する。具体的には、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきたものに検索画面をネットワークＩ／Ｆ２０４を介して送信する。検索画面は、ＨＤＤ２０５に記憶されたアプリケーションプログラムを検索するための検索キーワードを入力する領域を含む。ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索画面を受信する装置、例えば、ＭＦＰ１００は、検索画面を表示し、ユーザが検索画面に従って検索キーワードを入力すれば、検索キーワードを検索サーバ２００に送信する。ステップＳ５５においては、ネットワークＩ／Ｆ２０４が検索画面を送信したＭＦＰ１００から検索キーワードを受信すると、受信された検索キーワードを用いて、ＨＤＤ２０５に記憶されているアプリケーションプログラムを検索する。ＨＤＤ２０５に、検索キーワードを含むキーワードと関連付けられたアプリケーションプログラムが複数記憶されている場合、それら複数のアプリケーションプログラムを抽出する。抽出されたアプリケーションプログラムがエビデンスデータと関連付けられている場合には、アプリケーションプログラムとともに、それに関連付けられているエビデンスデータを抽出する。
【００９５】
次のステップＳ５６においては、画面情報生成・送信処理を実行し、処理を終了する。画面情報生成・送信処理の詳細は後述するが、ステップＳ５５において抽出されたアプリケーションプログラムをダウンロードするための検索結果画面を生成するための画面情報を生成し、送信する処理である。
【００９６】
ステップＳ５７においては、ダウンロード要求を受信したか否かを判断する。ネットワークＩ／Ｆ２０４が、ＭＦＰ１００，１００Ａ〜１００Ｄのいずれかからダウンロード要求を受信したならば処理をステップＳ５８に進めるが、ダウンロード要求を受信しなければ処理をステップＳ５１に戻す。ダウンロード要求は、ＨＤＤ２０５に記憶されているアプリケーションプログラムのネットワークアドレスを含む。
【００９７】
ステップＳ５８においては、ＨＤＤ２０５に記憶されているアプリケーションプログラムのうちダウンロード要求に含まれるネットワークアドレスで特定されるアプリケーションプログラムを読出し、ＭＦＰ１００，１００Ａ〜１００Ｄのうちダウンロード要求を送信してきた装置にネットワークＩ／Ｆ２０４を介して送信し、処理を終了する。
【００９８】
図１２は、画面情報生成・送信処理の流れの一例を示すフローチャートである。画面情報生成・送信処理は、図１１のステップＳ５６において実行される処理である。図１２を参照して、変数ｉを初期値「０」に設定する（ステップＳ７１）。変数ｉは、ウェブページに記述されるコマンドの組の数をカウントするための変数である。次のステップＳ７２においては、図１１のステップＳ５５において、抽出された１以上のアプリケーションプログラムのうちから１つを選択する。そして、変数ｉをそれに「１」を加算した値に更新する（ステップＳ７３）。
【００９９】
次のステップＳ７４においては、選択されたアプリケーションプログラムに含まれる関数を、スタブに変換する。これによりシミュレート用のアプリケーションプログラムが生成される。
【０１００】
次のステップＳ７５においては、ステップＳ７２において選択されたアプリケーションプログラムの実行をシミュレートするシミュレートコマンドを生成する。ステップＳ７２において選択されたアプリケーションプログラムがエビデンスデータと関連付けられている場合、アプリケーションプログラムをエビデンスデータに含まれる条件での実行をシミュレートするシミュレートコマンドを生成する。シミュレートコマンドは、ステップＳ７４において関数をスタブに変換することにより生成されたシミュレート用のアプリケーションプログラムを実行させるためのコマンドである。
【０１０１】
次のステップＳ７６においては、表示コマンドを生成する。表示コマンドは、ステップＳ７５において生成されたシミュレートコマンドを実行した結果が正常であることを条件にアプリケーションプログラムをダウンロード可能に表示するコマンドである。そして、マークアップ言語で記述されるウェブページに、生成されたシミュレートコマンドおよび表示コマンドの記述を追加する（ステップＳ７７）。ウェブページは、ステップＳ７４において、生成されたシミュレート用のアプリケーションプログラムそのものを記述するようにしてもよいし、シミュレート用のアプリケーションプログラムのネットワークアドレスを含み、ネットワークアドレスに基づいてシミュレート用のアプリケーションプログラムを取り込む記述をウェブページに記述してもよい。
【０１０２】
次のステップＳ７８においては、図１１のステップＳ５５において、抽出された１以上のアプリケーションプログラムのうちステップＳ７２において未だ処理対象として選択されていないアプリケーションプログラムが存在するか否かを判断する。処理対象として選択されていないアプリケーションプログラムが存在すれば処理をステップＳ７９に進めるが、存在しなければ処理をステップＳ８２に進める。ステップＳ８２においては、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきた装置に、ステップＳ７７において生成されたウェブページを、ネットワークＩ／Ｆ２０４を介して送信し、処理を検索送信処理に戻す。
【０１０３】
ステップＳ７９においては、変数ｉが予め定められたしきい値Ｔ以上か否かを判断する。しきい値Ｔは、ウェブページに記述されるシミュレートコマンドおよび表示コマンドの組の数の上限値として、予め定められた値である。変数ｉがしきい値Ｔ以上ならば処理をステップＳ８０に進めるが、そうでなければ処理をステップＳ７２に戻す。
【０１０４】
ステップＳ８０においては、画面要求を受信したか否かを判断する。ネットワークＩ／Ｆ２０４が、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきた装置からウェブページ要求を受信したか否かを判断する。ウェブページ要求を受信するまで待機状態となり（ステップＳ８０でＮＯ）、ウェブページ要求を受信したならば（ステップＳ８０でＹＥＳ）、処理をステップＳ８１に進める。
【０１０５】
ステップＳ８１においては、ステップＳ７７において生成されたウェブページを、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索要求を送信してきた装置にネットワークＩ／Ｆ２０４を介して送信し、処理をステップＳ７１に戻す。
【０１０６】
ウェブページに含まれるシミュレートコマンドおよび表示コマンドの組の数をしきい値Ｔ以下に制限することにより、次のウェブページの生成を開始してから送信するまでの期間に、先に送信したウェブページを受信した装置がシミュレートコマンドおよび表示コマンドを実行することができる。このため、２つの異なる処理を２つの装置それぞれで並列して実行することにより、ウェブページを受信した装置において、ウェブページを受信してから検索結果画面を表示するまでの時間をできるだけ速くすることができる。
【０１０７】
画面情報生成・送信処理が実行されることにより、図１１のステップＳ５５において、抽出された１以上のアプリケーションプログラムそれぞれに対してシミュレートコマンドと表示コマンドとの組が１以上のウェブページに記述される。したがって、１以上のウェブページは、図１１のステップＳ５５において、抽出された１以上のアプリケーションプログラムの数と同じ数の組のシミュレートコマンドと表示コマンドとが記述される。
【０１０８】
図１３は、ブラウジング処理の流れの一例を示すフローチャートである。ブラウジング処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶されたブラウジングプログラムを実行することにより、ＣＰＵ１１１により実行される処理能である。
【０１０９】
図１３を参照して、ＣＰＵ１１１は、検索画面を要求する指示を受け付けたか否かを判断する（ステップＳ１１）。ユーザが操作部１１６に、検索サーバのＵＲＬを入力すると、検索画面を要求する指示を受け付ける。検索画面を要求する指示を受け付けるまで待機状態となり、検索画面を要求する指示を受け付けたならば、ネットワークＩ／Ｆ１１７を介して検索サーバ２００に検索画面の送信要求を送信し、処理をステップＳ１２に進める。
【０１１０】
ステップＳ１２においては、ネットワークＩ／Ｆ１１７が検索サーバ２００から検索画面を受信するまで待機状態となり、検索サーバ２００から検索画面を受信すると処理をステップＳ１３に進める。ステップＳ１３においては、受信された検索画面を表示部１１５に表示する。次に、ユーザが表示部１１５に表示された検索画面に従って、操作部１１６に入力する検索キーワードを受け付けたか否かを判断する。検索キーワードを受け付けたならば処理をステップＳ１５に進めるが、そうでなければ処理をステップＳ１３に戻す。
【０１１１】
ステップＳ１５においては、ネットワークＩ／Ｆ１１７を介して検索サーバ２００に検索要求を送信し、処理をステップＳ１６に進める。検索要求は、ステップＳ１４において受け付けられた検索キーワードを含む。検索要求を受信する検索サーバ２００においては、上述した検索送信処理のステップＳ５５およびステップＳ５６を実行し、ＭＦＰ１００にウェブページを送信する。この場合、ＭＦＰ１００はウェブページを受信するが、ＣＰＵ１１１に形成されるブラウジング処理を実行するタスクが、受信されたウェブページを処理するのではなく、ＣＰＵ１１１に形成される検索結果画面生成処理を実行するタスクがウェブページを処理して生成する。ブラウジング処理を実行するタスクは、検索結果画面生成処理を実行するタスクにより生成された検索結果画面を処理する。
【０１１２】
ここで、検索結果画面生成処理について説明する。図１４は、検索結果画面生成処理の流れの一例を示すフローチャートである。検索結果画面生成処理は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１２、ＨＤＤ１１４またはＣＤ−ＲＯＭ１１９に記憶された検索結果画面生成プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。検索結果画面生成プログラムは、アプリケーション共有プログラムの一部である。
【０１１３】
図１４を参照して、ＣＰＵ１１１は、検索サーバ２００からウェブページを受信したか否かを判断する。ウェブページを受信するまで待機状態となり（ステップＳ３１でＮＯ）、ウェブページを受信すると（ステップＳ３１でＹＥＳ）、処理をステップＳ３２に進める。ウェブページは、検索サーバ２００がＭＦＰ１００の送信する検索要求の受信に応じて送信するウェブページであり、画面情報を含む。換言すれば、検索結果画面生成処理は、検索サーバ２００から画面情報を含むウェブページを受信することを条件に実行される処理である。
【０１１４】
ステップＳ３２においては、ウェブページに含まれるシミュレート用のアプリケーションプログラムを選択する。そして、選択されたシミュレート用のアプリケーションプログラムを実行する（ステップＳ３３）。ステップＳ３３において、シミュレート用のアプリケーションプログラムを実行した結果が正常に終了したか否かを判断する。実行したシミュレート用のアプリケーションプログラムが正常に終了したならば処理をステップＳ３５に進めるが、そうでなければステップＳ３５をスキップして、処理をステップＳ３６に進める。
【０１１５】
ステップＳ３５においては、検索サーバ２００に記憶されているアプリケーションプログラムへのハイパーリンクを検索結果画面に追加し、処理をステップＳ３６に進める。ハイパーリンクは、ステップＳ３２で選択されたシミュレーション用のアプリケーションプログラムと組になるリンク情報を含み、リンク情報は、シミュレーション用のアプリケーションプログラムに対応し、検索サーバ２００に記憶されているアプリケーションプログラムのネットワークアドレス（ＵＲＬ）を含む。ハイパーリンクは、リンク情報で特定されるアプリケーションプログラムをダウンロード可能に表示する記述である。
【０１１６】
ステップＳ３６においては、ステップＳ３１において受信されたウェブページに含まれるシミュレート用のアプリケーションプログラムのうちで、ステップＳ３２において未だ処理対象に選択されていないものが存在するか否かを判断する。処理対象に選択されていないシミュレート用のアプリケーションプログラムが存在すれば、処理をステップＳ３２に戻すが、存在しなければ処理をステップＳ３７に進める。
【０１１７】
ステップＳ３７においては、ステップＳ３５において、ハイパーリンクが追加された検索結果画面をブラウジング処理を実行するタスクに出力する。次のステップＳ３８においては、次のウェブページの送信を要求するウェブページ要求を、ネットワークＩ／Ｆ１１７を介して、検索サーバ２００に送信し、処理を終了する。
【０１１８】
図１３に戻って、ステップＳ１５において検索サーバ２００に検索要求を送信した後、検索結果画面が入力されるまで待機状態となり（ステップＳ１６でＮＯ）、検索結果画面が入力されると（ステップＳ１６でＹＥＳ）、処理をステップＳ１７に進める。検索結果画面は、図１４に示した検索結果画面生成処理を実行するタスクから入力される。
【０１１９】
ステップＳ１７においては、検索結果画面を表示部１１５に表示し、処理をステップＳ１８に進める。ステップＳ１８においては、リンク情報が指示された否かを判断する。具体的には、検索結果画面に含まれるハイパーリンクが指示されると、リンク情報が指示されたと判断する。検索結果画面に含まれるハイパーリンクが指示されたならば処理をステップＳ１９に進めるが、そうでなければ処理をステップＳ２０に進める。ステップＳ１９においては、ハイパーリンクに含まれるリンク情報で特定されるアプリケーションプログラムをダウンロードし、処理をステップＳ２０に進める。ハイパーリンクに含まれるリンク情報を含むダウンロード要求を、ネットワークＩ／Ｆ１１７を介して検索サーバ２００に送信する。ダウンロード要求を受信する検索サーバ２００は、リンク情報で特定されるアプリケーションプログラムを返信するので、ネットワークＩ／Ｆ１１７が受信するアプリケーションプログラムをＨＤＤ１１４に記憶する。
【０１２０】
ステップＳ２０においては、終了指示を受け付けたか否かを判断する。ユーザが操作部１１６に予め設けられた終了キーを押下すると、終了指示を受ける。終了指示を受け付けたならば処理を終了するが、そうでなければ処理をステップＳ２１に進める。
【０１２１】
ステップＳ２１においては、次ページのウェブページに表示を切り換えるページ送り指示を受け付けたか否かを判断する。ユーザが操作部１１６に予め設けられたページ送りキーを押下すると、ページ送り指示を受ける。ページ送り指示を受け付けたならば処理をステップＳ１６に戻し、そうでなければ処理をステップＳ１８に戻す。
【０１２２】
以上説明したように第１の実施の形態におけるアプリケーション共有システム１において、ＭＦＰ１００は、検索サーバよりシミュレートコマンドを受信することに応じて、アプリケーションプログラムをシミュレートし、シミュレートした実行結果が正常であることを条件に、検索サーバより受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報を含む検索結果画面を生成する。このため、検索結果画面に、実行することのできないアプリケーションプログラムをダウンロードするためのリンク情報を含まないようにすることができる。
【０１２３】
また、検索サーバは、所定数のコマンドを含むページ単位でウェブページを生成し、１ページのウェブページを生成するごとにウェブページを送信するので、すべてのコマンドを含むウェブページを生成するより速くウェブページを送信する。このため、ＭＦＰ１００でウェブページを早期に表示することができる。また、ＭＦＰ１００においては、ページ単位でウェブページに含まれるコマンドを実行し、表示することができるので、ＭＦＰ１００の負荷を時間的に分散させることができる。
【０１２４】
また、ＭＦＰ１００は、複数の関数を用いて記述されたアプリケーションプログラムを実行することにより、ＡＤＦ２１、画像読取部２２、画像処理部２３、画像形成部２４、給紙部２５および後処理部２６を動作させることなく、実際にそれらを動作させたのと同じ結果を得ることができるので、アプリケーションプログラムを実行する動作をシミュレートすることができる。
【０１２５】
＜第２の実施の形態＞
第１の実施の形態におけるアプリケーション共有システムは、ダウンロード装置として機能するＭＦＰ１００において、シミュレートした結果が正常でない場合は、アプリケーションプログラムをダウンロード可能に表示しないようにしたものであった。第２の実施の形態におけるアプリケーション共有システムにおいては、ダウンロード装置として機能するＭＦＰ１００において、シミュレートした結果が正常でない場合であっても、アプリケーションプログラムをダウンロード可能に表示するようにするとともに、エラーとなった原因を併せて表示する。第２の実施の形態におけるアプリケーション共有システムのシステム構成および検索サーバ２００およびＭＦＰ１００，１００Ａ〜１００Ｄのハードウエア構成は、第１の実施の形態におけるアプリケーション共有システムと同じなので、ここでは説明を繰り返さない。
【０１２６】
図１５は、第２の実施の形態において登録装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。図１５を参照して、図５に示した機能と異なる点は、エラーテーブル受付部６１が追加された点、および登録情報送信部５７が
登録情報送信部５７Ａに変更された点である。その他の機能は図５に示した機能と同じなので、ここでは説明を繰り返さない。
【０１２７】
エラーテーブル受付部６１は、ユーザが操作部１１６に入力するエラーテーブルを受け付ける。また、ユーザが、パーソナルコンピュータを用いて、ＡＰＩとして公開された関数で記述されたアプリケーションプログラムを作成する場合は、ユーザは、アプリケーションプログラムとともにエラーテーブルを生成する。この場合には、パーソナルコンピュータからネットワーク３を介して、ＭＦＰ１００にアプリケーションプログラムとエラーテーブルとを送信してもよい。この場合は、アプリケーション受付部５１は、ネットワークＩ／Ｆ１１７がパーソナルコンピュータから受信するアプリケーションプログラムを受け付け、エラーテーブル受付部６１は、ネットワークＩ／Ｆ１１７がパーソナルコンピュータから受信するエラーテーブルを受け付ける。アプリケーション受付部５１は、受け付けられたアプリケーションプログラムを、関数実行部５３および登録情報送信部５７Ａに出力し、エラーテーブル受付部６１は、受け付けられたエラーテーブルを登録情報送信部５７Ａに出力する。
【０１２８】
登録情報送信部５７Ａは、アプリケーション受付部５１から入力されるアプリケーションプログラムと、エビデンスデータ生成部５５からエビデンスデータが入力される場合は、エビデンスデータと、エラーテーブル受付部６１から入力されるエラーテーブルとを、検索サーバ２００に、ネットワークＩ／Ｆ１１７を介して送信する。
【０１２９】
図１６は、エラーテーブルの一例を示す図である。図１６を参照して、エラーテーブルは、エラーコードとエラーの発生する原因とを関連付けたエラーレコードを含む。エラーレコードは、エラーコードの項目と、原因の項目とを含む。エラーコードの項目は、アプリケーションプログラムを実行してエラーが発生した場合にアプリケーションプログラムが返す値として定められたコードが設定される。原因の項目は、エラーコードに対応するエラーが発生した原因が設定される。例えば、エラーコード「１」に対応する原因「本体設定と禁則組み合わせのパラメータ」が設定され、パラメータの設定にエラーの原因があることが示される。
【０１３０】
図１７は、第２の実施の形態における検索サーバが備えるＣＰＵの機能の概要の一例を示すブロック図である。図１７を参照して、図６に示した機能と異なる点は、エラー原因通知部２４１が追加された点、アプリケーション登録部２１１および画面情報送信部２１７がそれぞれアプリケーション登録部２１１Ａおよび画面情報送信部２１７Ａに変更された点である。その他の機能は図６に示した機能と同じなので、ここでは説明を繰り返さない。
【０１３１】
アプリケーション登録部２１１Ａは、ネットワークＩ／Ｆ２０４がＭＦＰ１００，１００Ａ〜１００Ｄのいずれかからアプリケーションプログラムおよびエラーテーブルを受信すると、受信されたアプリケーションプログラムおよびエラーテーブルをＨＤＤ２０５に記憶する。アプリケーション登録部２１１は、アプリケーションプログラムととともにエビデンスデータが受信される場合には、そのエビデンスデータをアプリケーションプログラムおよびエラーテーブルと関連付けて記憶する。また、アプリケーション登録部２１１は、アプリケーションプログラムをＨＤＤ２０５に記憶する際に、アプリケーションプログラムに検索に用いるためのキーワードを付与する。キーワードは、検索サーバ２００の管理者が付与するようにしてもよいし、アプリケーションプログラムを送信してきた装置、例えばＭＦＰ１００において、アプリケーションプログラムをインストールする際に、開発者が入力し、アプリケーションプログラムとともに検索サーバ２００に送信するようにしてもよい。アプリケーション登録部２１１によって、アプリケーションプログラムがＨＤＤ２０５に記憶されると、ＨＤＤ２０５にアプリケーションプログラムと、エラーテーブルと、キーワードと、を少なくとも含む登録情報２５１Ａが記憶される。
【０１３２】
画面情報送信部２１７Ａは、抽出部２１５から入力される１以上のアプリケーションプログラムに基づいて画面情報を生成し、画面情報をＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものにネットワークＩ／Ｆ２０４を介して送信するとともに、ＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものを識別するための装置識別情報をエラー原因通知部２４１に出力する。具体的には、画面情報送信部２１７Ａは、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドを生成し、生成されたシミュレートコマンドとアプリケーションプログラムのネットワークアドレスとを含む画面情報を生成する。画面情報送信部２１７Ａは、抽出部２１５からアプリケーションプログラムとともにエビデンスデータが入力される場合、アプリケーションプログラムをエビデンスデータに含まれる条件での実行をシミュレートするシミュレートコマンドを生成する。画面情報は、抽出部２１５から入力されるアプリケーションプログラムの数と同じ数である。
【０１３３】
ここでは、画面情報送信部２１７Ａは、マークアップ言語で記述され、画面情報を記述したウェブページを生成し、生成されたウェブページをＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものに送信する。ウェブページは、アプリケーションプログラムの実行をシミュレートするシミュレートコマンドの記述と、該アプリケーションプログラムをダウンロード可能に表示する表示コマンドの記述と、該アプリケーションプログラムの実行をシミュレートした結果が正常でない場合にエラー原因を取得し、表示する警告コマンドの記述とを含む。
【０１３４】
具体的には、
シミュレートコマンドは、関数変換部２１９がアプリケーションプログラムに記述されている関数の名称をスタブの名称に変更した後のシミュレーション用のアプリケーションプログラムを含み、シミュレーション用のアプリケーションプログラムを実行させる記述である。シミュレートコマンドは、抽出部２１５からアプリケーションプログラムとともにエビデンスデータが入力される場合、シミュレーション用のアプリケーションプログラムをエビデンスデータに含まれる条件で実行させる記述である。具体的には、エビデンスデータに含まれる条件をアプリケーションプログラムに引数として渡す記述である。
【０１３５】
表示コマンドは、アプリケーションプログラムをダウンロード可能に表示させるコマンドであり、ＨＤＤ２０５に記憶された登録情報２５１に含まれるアプリケーションプログラムへのリンク情報を含み、リンク情報は、そのアプリケーションプログラムのネットワークアドレスを含む。
【０１３６】
警告コマンドは、シミュレートコマンドの実行結果が正常か否かは判断するコマンドと、シミュレートコマンドの実行結果が正常でない場合にアプリケーションプログラムのプログラム名とエラーコードとを検索サーバ２００に送信するコマンドと、検索サーバ２００からエラー原因を受信するコマンドと、受信されたエラー原因を表示するコマンドと、を含む。
【０１３７】
画面情報送信部２１７Ａは、抽出部２１５から入力される１以上のアプリケーションプログラムの数が所定の数を超える場合、シミュレートコマンドの記述と、表示コマンドの記述と、警告コマンドの記述との組を所定数含む複数のウェブページを生成し、複数のウェブページを生成された順に１ページのウェブページを選択する。画面情報送信部２１７Ａは、選択されたウェブページをＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものにネットワークＩ／Ｆ２０４を介して送信する。画面情報送信部２１７Ａは、複数のウェブページを送信する場合、ＭＦＰ１００から次ページの送信要求をネットワークＩ／Ｆ２０４が受信するまで待って、次ページのウェブページを送信する。
【０１３８】
エラー原因通知部２４１は、画面情報送信部２１７ＡからＭＦＰ１００，１００Ａ〜１００Ｄのうち検索キーワードを送信してきたものの装置識別情報が入力される。ここでは、ＭＦＰ１００から検索キーワードが送信されてきた場合を例に説明する。エラー原因通知部２４１は、画面情報送信部２１７ＡからＭＦＰ１００の装置識別情報が入力された後、ネットワークＩ／Ｆ２０４がＭＦＰ１００からアプリケーション名とエラーコードを受信すると、ＨＤＤ２０５に記憶されている登録情報２５１Ａを検索して、受信されたアプリケーション名とエラーコードに基づいてエラー原因を特定する。受信されたアプリケーション名のアプリケーションプログラムに関連付けられているエラーテーブルを特定し、特定されたエラーテーブルから受信されたエラーコードを含むエラーレコードを抽出する。そして、抽出されたエラーレコードの原因の項目に設定されているエラー原因を取得する。エラー原因通知部２４１は、取得されたエラー原因を、ネットワークＩ／Ｆ２０４を介して、アプリケーション名とエラーコードとを送信してきたＭＦＰ１００に送信する。
【０１３９】
図１８は、第２の実施の形態においてダウンロード装置として機能するＭＦＰが備えるＣＰＵが有する機能の概要の一例を示すブロック図である。図１８を参照して、図９に示した機能と異なる点は、画面生成部８９が画面生成部８９Ａに変更された点である。その他の機能は図９に示した機能と同じなので、ここでは説明を繰り返さない。
【０１４０】
画面生成部８９Ａは、画面情報受信部８３から入力されるウェブページに含まれる表示コマンドおよび警告コマンドを実行し、スタブ実行部８７から入力される実行結果に基づいて検索結果画面を生成し、検索結果画面をブラウジング部８１に出力する。検索結果画面は、マークアップ言語で記述される。
【０１４１】
具体的には、画面生成部８９Ａは、表示コマンドを実行することにより、アプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述を検索結果画面に追加する。アプリケーションプログラムをダウンロード可能に表示する記述は、表示コマンドに含まれるアプリケーションプログラムが記憶されているネットワークアドレスを含むリンク情報と関連付けられる。
【０１４２】
画面生成部８９Ａは、エラー原因取得部９５と、警告追加部９７と、を含む。エラー原因取得部９５は、警告コマンドに含まれる複数のコマンドのうち、シミュレートコマンドの実行結果が正常か否かを判断するコマンドと、シミュレートコマンドの実行結果が正常でない場合にアプリケーションプログラムのプログラム名とエラーコードとを検索サーバ２００に送信するコマンドと、検索サーバ２００からエラー原因を受信するコマンドと、を実行する。エラー原因取得部９５は、スタブ実行部８７からエラーコードが入力される場合に正常でないと判断し、スタブ実行部８７から正常終了信号が入力される場合に正常と判断する。
【０１４３】
エラー原因取得部９５は、スタブ実行部８７からエラーコードが入力される場合にアプリケーションプログラムのプログラム名とエラーコードとを、ネットワークＩ／Ｆ１１７を介して検索サーバ２００に送信する。そして、エラー原因取得部９５は、ネットワークＩ／Ｆ１１７が、検索サーバ２００からエラー原因を受信すると、受信されたエラー原因を警告追加部９７に出力する。
【０１４４】
警告追加部９７は、警告コマンドに含まれる複数のコマンドのうち、エラー原因を表示するコマンドを実行する。警告追加部９７は、エラー原因取得部９５から入力されるエラー原因の記述を検索結果画面に追加する。警告追加部９７は、エラー原因の記述を、アプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述の近傍に記述する。
【０１４５】
画面生成部８９Ａは、スタブ実行部８７により実行されたシミュレーション用のアプリケーションプログラムに対応するアプリケーションプログラムをダウンロード可能に表示するハイパーリンクの記述を検索結果画面に追加し、スタブ実行部８７からエラーコードが入力されるアプリケーションプログラムについては、エラーコードにエラーテーブルによって関連付けられたエラー原因の記述を、ハイパーリンクの記述の近傍に追加する。
【０１４６】
このため、ブラウジング部８１が検索結果画面を表示部１１５に表示すると、ＭＦＰ１００において正常に実行することが可能なアプリケーションプログラムと、正常に実行することが不可能なアプリケーションプログラムとを区別して、ダウンロード可能に表示される。さらに、正常に実行することが不可能なアプリケーションプログラムについては、エラー原因が表示されるので、ユーザは、現在のＭＦＰ１００の設定状態、オプション装置の接続状態を変更する等してエラー原因を排除すれば、アプリケーションプログラムを正常に実行することができることを知ることができる。
【０１４７】
図１９は、第２の実施の形態におけるアプリケーション登録処理の流れの一例を示すフローチャートである。図１９を参照して、図１０に示したアプリケーション登録処理と異なる点は、ステップＳ０４の後にステップＳ０４Ａが追加された点、ステップＳ０５がステップＳ０５Ａに変更された点である。その他の処理は図１０に示した処理と同じなのでここでは説明を繰り返さない。
【０１４８】
ステップＳ０４においてエビデンスデータが生成されると、次のステップＳ０４Ａにおいては、エラーテーブルを受け付ける。ＣＰＵ１１１は、ユーザが操作部１１６に入力するエラーテーブルを受け付ける。また、ユーザが、パーソナルコンピュータを用いて、エラーテーブルを生成する場合は、パーソナルコンピュータで作成されたエラーテーブルを、ネットワークＩ／Ｆ１１７がパーソナルコンピュータから受信することにより受け付ける。
【０１４９】
次のステップＳ０５Ａにおいては、登録情報を検索サーバ２００に送信し、処理を終了する。登録情報は、ステップＳ０１において受け付けられたアプリケーションプログラムと、ステップＳ０４において生成されたエビデンスデータと、ステップＳ０４Ａにおいて受け付けられたエラーテーブルと、を含む。
【０１５０】
図２０は、第２の実施の形態における画面情報生成・送信処理の流れの一例を示すフローチャートである。第２の実施の形態における画面情報生成・送信処理は、図１１のステップＳ５６において実行される処理である。図２０を参照して、図１２に示した画面生成・送信処理と異なる点は、ステップＳ７６およびステップＳ７７がそれぞれステップＳ７６ＡおよびステップＳ７７Ａに変更された点、ステップＳ７６ＡとステップＳ７７Ａとの間にステップＳ７６Ｂが追加された点、である。その他の処理は図１２に示した処理と同じなのでここでは説明を繰り返さない。
【０１５１】
ステップＳ７５において、シミュレートコマンドが生成すると、次のステップＳ７６Ａにおいて、表示コマンドを生成する。表示コマンドは、ステップＳ７２において選択されたアプリケーションプログラムをダウンロード可能に表示するコマンドである。
【０１５２】
次のステップＳ７６Ｂにおいては、警告コマンドを生成する。警告コマンドは、シミュレートコマンドの実行結果が正常か否かは判断するコマンドと、シミュレートコマンドの実行結果が正常でない場合にアプリケーションプログラムのプログラム名とエラーコードとを検索サーバ２００に送信するコマンドと、検索サーバ２００からエラー原因を受信するコマンドと、受信されたエラー原因を表示するコマンドと、を含む。
【０１５３】
次のステップＳ７７Ａにおいては、マークアップ言語で記述されるウェブページに、生成されたシミュレートコマンド、表示コマンドおよび警告コマンドの記述を追加し、処理をステップＳ７８に進める。
【０１５４】
図２１は、第２の実施の形態における検索結果画面生成処理の流れの一例を示すフローチャートである。図２１を参照して、図１４に示した検索結果画面生成処理と異なる点は、ステップＳ３２の後にステップＳ３２Ａが追加された点、ステップＳ３５に代えてステップＳ４１〜ステップＳ４３が追加された点である。その他の処理は図１４に示した処理と同じなのでここでは説明を繰り返さない。
【０１５５】
ステップＳ３２において、ウェブページに含まれるシミュレート用のアプリケーションプログラムが選択されると、次のステップＳ３２Ａにおいて、検索サーバ２００に記憶されているアプリケーションプログラムへのハイパーリンクを検索結果画面に追加する。ハイパーリンクは、ステップＳ３２で選択されたシミュレーション用のアプリケーションプログラムと組になるリンク情報を含み、リンク情報は、シミュレーション用のアプリケーションプログラムに対応し、検索サーバ２００に記憶されているアプリケーションプログラムのネットワークアドレス（ＵＲＬ）を含む。ハイパーリンクは、リンク情報で特定されるアプリケーションプログラムをダウンロード可能に表示する記述である。
【０１５６】
次のステップＳ３３において、ステップＳ３２において選択されたシミュレート用のアプリケーションプログラムを実行する。次のステップＳ３４においては、ステップＳ３３において、シミュレート用のアプリケーションプログラムを実行した結果が正常に終了したか否かを判断する。実行したシミュレート用のアプリケーションプログラムが正常に終了したならば処理をステップＳ４１に進めるが、そうでなければ処理をステップＳ３６に進める。
【０１５７】
ステップＳ４１においては、エラーコードを検索サーバ２００に送信する。ステップＳ３３においてシミュレート用のアプリケーションプログラムを実行した結果、エラーコードが得られるので、得られたエラーコードを、ネットワークＩ／Ｆ１１７を介して検索サーバ２００に送信する。
【０１５８】
次のステップＳ４２においては、エラー原因を受信したか否かを判断する。ネットワークＩ／Ｆ１１７が検索サーバ２００からエラー原因を受信したか否かを判断する。エラー原因が受信されるまで待機状態となり（ステップＳ４２でＮＯ）、エラー原因が受信されると（ステップＳ４２でＹＥＳ）、処理をステップＳ４３に進める。
【０１５９】
ステップＳ４３においては、受信されたエラー原因を検索結果画面に追加する。ステップＳ３２Ａにおいて検索結果画面に追加されたハイパーリンクの近傍に追加する。
【０１６０】
第２の実施の形態におけるアプリケーション共有システム１において、ＭＦＰ１００は、検索サーバ２００よりシミュレートコマンドを受信することに応じて、アプリケーションプログラムをシミュレートし、検索サーバ２００より受信されるネットワークアドレスに基づいてアプリケーションプログラムをダウンロードするためのリンク情報と、シミュレートした実行結果が正常でない場合は警告メッセージとを含む、検索結果画面を生成する。このため、表示される検索結果画面を見るユーザに、アプリケーションプログラムの実行可否を通知することができる。
【０１６１】
また、シミュレートした実行結果が正常でない場合は警告メッセージは、発生原因を含むので、アプリケーションプログラムを実行するための条件をユーザに知らせることができる。
【０１６２】
なお、上述した実施の形態においては、アプリケーションプログラムに含まれる関数をスタブに変更することによりシミュレート用のアプリケーションプログラムを生成する例を示したが、アプリケーションプログラムの名称を、予め定められた名称を付加することで、アプリケーションプログラムがシミュレート用か否かを区別するようにしてもよい。
【０１６３】
なお、上述した実施の形態においてはアプリケーション共有システム１について説明したが、図１０〜図１４、図１９〜図２１に示した処理をコンピュータに実行させるためのアプリケーション共有方法またはアプリケーション共有プログラムとして発明を捉えることができるのは言うまでもない。
【０１６４】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１６５】
１  アプリケーション共有システム、３  ネットワーク、５  インターネット、１１  操作パネル、２１  ＡＤＦ、２２  画像読取部、２３  画像処理部、２４  画像形成部、２５  給紙部、２６  後処理部、２７  ファクシミリ部、２８  通信制御部、５１  アプリケーション受付部、５３  関数実行部、５５  エビデンスデータ生成部、５７，５７Ａ  登録情報送信部、６１  エラーテーブル受付部、８１  ブラウジング部、８３  画面情報受信部、８５  シミュレート部、８７  スタブ実行部、８９，８９Ａ  画面生成部、８９Ａ  画面情報生成部、９１  ダウンロード部、９５  エラー原因取得部、９７  警告追加部、１００，１００Ａ〜１００Ｄ  ＭＦＰ、１０１  情報処理部、１１１  ＣＰＵ、１１２  ＲＯＭ、１１３  ＲＡＭ、１１４  ＨＤＤ、１１５  表示部、１１６  操作部、１１７  ネットワークＩ／Ｆ、１１８  外部記憶装置、１１９  ＣＤ−ＲＯＭ、２００  検索サーバ、２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ネットワークＩ／Ｆ、２０５  ＨＤＤ、２０６  表示部、２０７  操作部、２０８  外部記憶装置、２０９  ＣＤ−ＲＯＭ、２１１  アプリケーション登録部、２１１Ａ  アプリケーション登録部、２１３  検索要求受信部、２１５  抽出部、２１７，２１７Ａ  画面情報送信部、２１９  関数変換部、２３１  アプリ要求受信部、２３３  アプリ送信部、２４１  エラー原因通知部。
【図１】
0005545135.tif 000002
【図２】
0005545135.tif 000003
【図３】
0005545135.tif 000004
【図４】
0005545135.tif 000005
【図５】
0005545135.tif 000006
【図６】
0005545135.tif 000007
【図７】
0005545135.tif 000008
【図８】
0005545135.tif 000009
【図９】
0005545135.tif 000010
【図１０】
0005545135.tif 000011
【図１１】
0005545135.tif 000012
【図１２】
0005545135.tif 000013
【図１３】
0005545135.tif 000014
【図１４】
0005545135.tif 000015
【図１５】
0005545135.tif 000016
【図１６】
0005545135.tif 000017
【図１７】
0005545135.tif 000018
【図１８】
0005545135.tif 000019
【図１９】
0005545135.tif 000020
【図２０】
0005545135.tif 000021
【図２１】
0005545135.tif 000022