(57)【要約】【課題】アプリケーションの書換えを提供側が従来よりも手間を減らして行うことができるようにする。【解決手段】  開発用コンピュータ２は、アプリケーションのインストール用データを画像形成装置３Ａへ送信する。画像形成装置３Ａは、インストール用データを受信し、アプリケーションをインストールした後、アプリケーションを起動する。そして、アプリケーションの画面をキャプチャし、その画像データを開発用コンピュータ２へ送信する。開発用コンピュータ２は、画像データを受信すると、これに基づいて、キャプチャされた画面を出力する。【選択図】図１
2014229169.tif 000002
【特許請求の範囲】
【請求項１】
サーバとクライアントとを有し、
前記サーバには、
アプリケーションをインストールするためのインストール用データを前記クライアントへ送信するインストール用データ送信手段、
が設けられ、
前記クライアントには、
前記インストール用データを受信するインストール用データ受信手段と、
前記インストール用データによって前記アプリケーションをインストールした後、前記アプリケーションを起動する起動手段と、
前記アプリケーションを起動した後、前記アプリケーションの画面をキャプチャするキャプチャ手段と、
キャプチャされた前記画面の画像データを前記サーバへ送信する、画像データ送信手段と、
が設けられ、
前記サーバには、さらに、
前記画像データを受信する画像データ受信手段と、
前記画像データに基づいて前記画面を出力する画面出力手段と、
が設けられている、
ことを特徴とするアプリケーション登録システム。
【請求項２】
アプリケーションをインストールするためのインストール用データをサーバから受信するインストール用データ受信手段と、
前記インストール用データによって前記アプリケーションをインストールした後、前記アプリケーションを起動する起動手段と、
前記アプリケーションを起動した後、前記アプリケーションの画面をキャプチャするキャプチャ手段と、
キャプチャされた前記画面の画像データを前記サーバへ送信する、画像データ送信手段と、
を有することを特徴とするコンピュータ。
【請求項３】
前記インストール用データが受信された後、ユーザによる入力の操作の制限を行う、操作制限手段と、
前記画面がキャプチャされた後、前記制限を解除する、制限解除手段と、を有する、
請求項２に記載のコンピュータ。
【請求項４】
前記キャプチャ手段は、前記画面として、指定された複数の画面をキャプチャする、
請求項２または請求項３に記載のコンピュータ。
【請求項５】
前記画像データ送信手段は、前記指定された複数の画面それぞれの前記画像データを１つに纏めて前記サーバへ送信する、
請求項４に記載のコンピュータ。
【請求項６】
アプリケーションをインストールするためのインストール用データをクライアントへ送信するインストール用データ送信手段と、
前記クライアントから、前記クライアントがキャプチャした前記アプリケーションの画面の画像データを取得する、画像データ取得手段と、
前記画像データに基づいて前記画面を出力する画面出力手段と、
を有することを特徴とするアプリケーション提供サーバ。
【請求項７】
前記画像データ取得手段は、前記アプリケーションがインストールされたことが前記クライアントから通知された後、前記クライアントへリモートアクセスし、前記アプリケーションを起動する処理および前記画面をキャプチャする処理を前記クライアントに行わせることによって、前記画像データを取得する、
請求項６の記載のアプリケーション提供サーバ。
【請求項８】
前記画面から不具合を検出する不具合検出手段と、
検出された前記不具合が解消されるように前記アプリケーションを修正するアプリケーション修正手段と、
を有し、
前記インストール用データ送信手段は、修正された前記アプリケーションの前記インストール用データをさらに送信する、
請求項６または請求項７に記載のアプリケーション提供サーバ。
【請求項９】
サーバに、
アプリケーションをインストールするためのインストール用データをクライアントへ送信する処理を実行させ、
前記クライアントに、
前記インストール用データを受信する処理を実行させ、
前記インストール用データによって前記アプリケーションをインストールする処理を実行させ、
前記アプリケーションを起動する処理を実行させ、
前記アプリケーションが起動した後、前記アプリケーションの画面をキャプチャする処理を実行させ、
キャプチャした前記画面の画像データを前記サーバへ送信する処理を実行させ、
前記サーバに、
前記画像データを受信する処理を実行させ、
前記画像データに基づいて前記画面を出力する処理を実行させる、
ことを特徴とするアプリケーション登録方法。
【請求項１０】
サーバから提供されるアプリケーションを使用するコンピュータに用いられるコンピュータプログラムであって、
前記アプリケーションをインストールするためのインストール用データを前記サーバから受信する処理を実行させ、
前記インストール用データによって前記アプリケーションをインストールした後、前記アプリケーションを起動する処理を実行させ、
前記アプリケーションを起動した後、前記アプリケーションの画面をキャプチャする処理を実行させ、
キャプチャした前記画面の画像データを前記サーバへ送信する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項１１】
クライアントへアプリケーションを提供するコンピュータに用いられるコンピュータプログラムであって、
前記アプリケーションをインストールするためのインストール用データを前記クライアントへ送信する処理を実行させ、
前記クライアントから、前記クライアントがキャプチャした前記アプリケーションの画面の画像データを取得する処理を実行させ、
前記画像データに基づいて前記画面を出力する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してアプリケーションをサーバからクライアントへ提供する技術に関する。
【背景技術】
【０００２】
近年、装置へのアプリケーションのインストール（登録）を、サーバによって通信回線を介して行う方法が、普及している。
【０００３】
アプリケーションは、所定の条件を有する装置において使用することができる。所定の条件の例として、所定のバージョン以降のオペレーティングシステムがインストールされていること、所定のバージョン以降のウェブブラウザがインストールされていること、所定以上のメモリが備わっていること、および所定以上の解像度のディスプレイが備わっていること、など種々の条件が挙げられる。
【０００４】
しかし、装置ごとに、ハードウェアのスペックおよび各種の設定の内容などに差異がある。したがって、装置が所定の条件を満たしていたとしても、開発者が意図した通りにアプリケーションの画面が表示されないことがある。
【０００５】
そこで、サーバから提供された画面情報の内容を、インストール先の装置（例えば、ＭＦＰ（Multi Function Peripherals））が書き換えることが、提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−３９３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、アプリケーションのインストール先の装置つまり提供先で書換えを行うのではなく、アプリケーションの提供側で書換えを行うほうが望ましい場合がある。アプリケーションの提供者のほうがユーザよりも知識がありかつ書換えの操作に慣れているからである。誤った操作を行うおそれも少ない。
【０００８】
そこで、アプリケーションの提供側で書換えを、手間をできるだけ減らして行えるようにすることが、求められる。
【０００９】
本発明は、このような課題に鑑み、アプリケーションの書換えを提供側が従来よりも手間を減らして行うことができるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一形態に係るアプリケーション登録システムは、サーバとクライアントとを有し、前記サーバには、アプリケーションをインストールするためのインストール用データを前記クライアントへ送信するインストール用データ送信手段、が設けられ、前記クライアントには、前記インストール用データを受信するインストール用データ受信手段と、前記インストール用データによって前記アプリケーションをインストールした後、前記アプリケーションを起動する起動手段と、前記アプリケーションを起動した後、前記アプリケーションの画面をキャプチャするキャプチャ手段と、キャプチャされた前記画面の画像データを前記サーバへ送信する、画像データ送信手段と、が設けられ、前記サーバには、さらに、前記画像データを受信する画像データ受信手段と、前記画像データに基づいて前記画面を出力する画面出力手段と、が設けられている。
【００１１】
好ましくは、前記クライアントは、さらに、前記インストール用データが受信された後、ユーザによる入力の操作の制限を行う、操作制限手段と、前記画面がキャプチャされた後、前記制限を解除する、制限解除手段と、を有する。
【００１２】
または、前記キャプチャ手段は、前記画面として、指定された複数の画面をキャプチャする。
【００１３】
または、前記画像データ送信手段は、前記指定された複数の画面それぞれの前記画像データを１つに纏めて前記サーバへ送信する。
【００１４】
または、前記画像データ受信手段は、前記アプリケーションがインストールされたことが前記クライアントから通知された後、前記クライアントへリモートアクセスし、前記アプリケーションを起動する処理および前記画面をキャプチャする処理を前記クライアントに行わせる。そして、キャプチャされた画面の画像データを前記画像データとして前記クライアントから受信する。
【００１５】
好ましくは、前記サーバは、さらに、前記画面から不具合を検出する不具合検出手段と、検出された前記不具合が解消されるように前記アプリケーションを修正するアプリケーション修正手段と、を有し、前記インストール用データ送信手段は、修正された前記アプリケーションの前記インストール用データをさらに送信する。
【発明の効果】
【００１６】
本発明によると、アプリケーションの書換えを提供側が従来よりも手間を減らして行うことができる。
【図面の簡単な説明】
【００１７】
【図１】ネットワークの全体的な構成の例を示す図である。
【図２】画像形成装置のハードウェア構成の例を示す図である。
【図３】画像形成装置の機能的構成の例を示す図である。
【図４】開発用コンピュータのハードウェア構成の例を示す図である。
【図５】開発用コンピュータの機能的構成の例を示す図である。
【図６】ウィンドウの例を示す図である。
【図７】登録処理の流れの例を説明するフローチャートである。
【図８】アプリケーションの画面の例を示す図である。
【図９】キャプチャ画面の例を示す図である。
【図１０】キャプチャ画面の例を示す図である。
【図１１】第一の実施形態における開発用コンピュータおよび画像形成装置の全体的な処理の流れの例を説明するシーケンス図である。
【図１２】第二の実施形態における開発用コンピュータの機能的構成の例を示す図である。
【図１３】第二の実施形態における画像形成装置の機能的構成の例を示す図である。
【図１４】第一の実施形態における開発用コンピュータ２および画像形成装置の全体的な処理の流れの例を説明するシーケンス図である。
【図１５】ウィンドウの例を示す図である。
【図１６】ウィンドウの例を示す図である。
【図１７】キャプチャの処理の際のウィンドウの表示の状態の遷移の例を示す図である。
【発明を実施するための形態】
【００１８】
〔第一の実施形態〕
図１は、ネットワーク１の全体的な構成の例を示す図である。図２は、画像形成装置３のハードウェア構成の例を示す図である。図３は、画像形成装置３の機能的構成の例を示す図である。図４は、開発用コンピュータ２のハードウェア構成の例を示す図である。図５は、開発用コンピュータ２の機能的構成の例を示す図である。図６は、ウィンドウ２１Ｗの例を示す図である。
【００１９】
ネットワーク１は、図１に示すように、開発用コンピュータ２、１台または複数台の画像形成装置３、および通信回線４などによって構成される。
【００２０】
画像形成装置３は、一般に「複合機」または「ＭＦＰ（Multi Function Peripherals）」などと呼ばれる装置であって、コピー、ファックス、スキャン、ネットワークプリント、およびファイルサーバなどの機能を集約した装置である。以下、各画像形成装置３を「画像形成装置３Ａ」、「画像形成装置３Ｂ」、…と区別して記載することがある。
【００２１】
画像形成装置３は、図２に示すように、ＣＰＵ（Central Processing Unit）３０ａ、ＲＡＭ（Random Access Memory）３０ｂ、ＲＯＭ（Read Only Memory）３０ｃ、大容量記憶装置３０ｄ、操作パネル３０ｅ、タッチパネルディスプレイ３０ｆ、ＮＩＣ（Network Interface Card）３０ｇ、モデム３０ｈ、スキャンユニット３０ｉ、画像処理回路３０ｊ、およびプリントユニット３０ｋなどによって構成される。
【００２２】
操作パネル３０ｅは、テンキー、スタートキー、ストップキー、およびリセットキーなどによって構成され、ユーザが処理の条件およびコマンドなどを入力するために用いられる。
【００２３】
タッチパネルディスプレイ３０ｆは、ユーザへのメッセージを示す画面、処理の結果を示す画面、またはコマンドをユーザが入力するための画面などを表示する。そのほか、開発用コンピュータ２から取得したアプリケーションの画面も、表示する。
【００２４】
さらに、タッチパネルディスプレイ３０ｆは、タッチされた位置を検知し、ＣＰＵ３０ａにその位置を通知する。タッチパネルディスプレイ３０ｆも、ユーザが処理の条件およびコマンドなどを入力するために用いられる。
【００２５】
ＮＩＣ３０ｇは、通信回線４を介して開発用コンピュータ２に接続し、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）などのプロトコルによって通信を行う。
【００２６】
モデム３０ｈは、固定電話網を介してファックス端末に接続し、Ｇ３などのプロトコルによって通信を行う。
【００２７】
スキャンユニット３０ｉは、原稿台にセットされた用紙に記されている文字、写真、イラスト、または図表などの画像を読み取って画像データを生成する。
【００２８】
画像処理回路３０ｊは、スキャンユニット３０ｉによって読み取られた画像または他の装置から受信した画像に、エッジ強調、回転、または汚れ除去などの画像処理を施す。
【００２９】
プリントユニット３０ｋは、他の装置から受信しまたはスキャンユニット３０ｉが読み取った画像を白紙である用紙に印刷する。画像は、画像処理回路３０ｊによって処理された後、印刷される場合がある。
【００３０】
ＲＯＭ３０ｃまたは大容量記憶装置３０ｄには、図３に示す登録要求受付部３０１、デバイスロック処理部３０２、アプリケーション登録処理部３０３、画面キャプチャ部３０４、デバイスロック解除処理部３０５、および登録結果通知部３０６などの機能を実現するためのソフトウェアが予め記憶されている。そのほか、オペレーティングシステム、ファームウェア、およびウェブブラウザなどが予め記憶されている。
【００３１】
これらのソフトウェアを構成する各モジュールおよびデータは、必要に応じてＲＡＭ３０ｂにロードされ、ＣＰＵ３０ａによってモジュールに基づく処理が実行される。
【００３２】
さらに、大容量記憶装置３０ｄには、アプリケーション３８がインストールされる。これについては、後述する。
【００３３】
大容量記憶装置３０ｄとして、ハードディスクまたはＳＳＤ（Solid State Drive）などが用いられる。
【００３４】
開発用コンピュータ２は、画像形成装置３で動作するアプリケーションの開発（作成）のために使用される。さらに、画像形成装置３へのアプリケーションのインストールおよびアプリケーションの修正のために使用される。つまり、開発用コンピュータ２は、アプリケーションのサーバであると、言える。
【００３５】
以下、画像形成装置３のユーザに合わせてカスタマイズされた画面を表示するアプリケーション３８を取り扱う場合を例に説明する。
【００３６】
開発用コンピュータ２は、図４に示すように、ＣＰＵ（Central Processing Unit）２０ａ、ＲＡＭ（Random Access Memory）２０ｂ、ＲＯＭ（Read Only Memory）２０ｃ、大容量記憶装置２０ｄ、液晶ディスプレイ２０ｅ、キーボード２０ｆ、ポインティングデバイス２０ｇ、およびＮＩＣ（Network Interface Card）２０ｈなどによって構成される。開発用コンピュータ２として、例えば、パーソナルコンピュータまたはワークステーションなどが用いられる。
【００３７】
ＲＯＭ２０ｃまたは大容量記憶装置２０ｄには、図５に示すアプリケーション開発ツール２１、登録用ソフトウェア２３、および修正用ソフトウェア２５などのソフトウェアがインストールされている。
【００３８】
アプリケーション開発ツール２１は、開発者が画像形成装置用のアプリケーションを開発するためのＳＤＫ（Software Development Kit）である。アプリケーション３８も、アプリケーション開発ツール２１によって作成される。アプリケーション開発ツール２１によると、開発者は、図６に示すようなウィンドウ２１Ｗによって、画像形成装置３に表示する種々の画面のレイアウトをデザインしたり、画面の中のオブジェクトが選択された際に実行する処理を定義したりすることができる。
【００３９】
登録用ソフトウェア２３は、アプリケーション開発ツール２１によって作成されたアプリケーションを画像形成装置３へ登録するためのソフトウェアである。また、修正用ソフトウェア２５によって修正されたアプリケーションを画像形成装置３へ登録するためにも用いられる。登録用ソフトウェア２３によると、アプリケーション記憶部２３１、アプリケーション登録要求部２３２、登録結果受付部２３３、および登録結果表示処理部２３４などの機能が実現される。
【００４０】
修正用ソフトウェア２５は、アプリケーション開発ツール２１によって作成されたアプリケーションを登録（インストール）先の画像形成装置３に合わせて修正するためのソフトウェアである。修正用ソフトウェア２５によると、不具合検出部２５１、アプリケーション修正処理部２５２、および不具合表示処理部２５３などの機能が実現される。
【００４１】
これらのソフトウェアを構成する各モジュールおよびデータは、必要に応じてＲＡＭ２０ｂにロードされ、ＣＰＵ２０ａによってモジュールに基づく処理が実行される。大容量記憶装置２０ｄとして、ハードディスクまたはＳＳＤなどが用いられる。
【００４２】
液晶ディスプレイ２０ｅには、アプリケーション開発ツール２１および修正用ソフトウェア２５の画面などが表示される。
【００４３】
キーボード２０ｆおよびポインティングデバイス２０ｇは、アプリケーションを作成しまたは修正する際のデータおよびコマンドの入力のために用いられる。
【００４４】
ＮＩＣ２０ｈは、通信回線４を介して画像形成装置３に接続し、ＴＣＰ／ＩＰなどのプロトコルによって通信を行う。
【００４５】
次に、図５に示す開発用コンピュータ２の各部および図３に示す画像形成装置３の各部の処理を、アプリケーション３８を新規に登録する際の処理およびアプリケーション３８を修正する際の処理に大別して説明する。
【００４６】
〔アプリケーションを新規に登録する際の処理〕
図７は、登録処理の流れの例を説明するフローチャートである。図８は、アプリケーション３８の画面の例を示す図である。
【００４７】
図５のアプリケーション記憶部２３１には、アプリケーション３８がアプリケーション開発ツール２１によって作成されると、アプリケーション３８を構成する種々のアプリケーションファイル３ＫＦ（プログラムファイル、画像ファイル、および設定ファイルなど）のほか、ログイン用ファイル３ＲＦおよび登録情報ファイル３ＴＦなどが記憶される。
【００４８】
ログイン用ファイル３ＲＦは、画像形成装置３へログインするための情報、例えば、パスワードを示す。
【００４９】
登録情報ファイル３ＴＦは、画像形成装置３へのアプリケーション３８の登録の処理のために用いられるファイルであって、アプリケーション３８の名称（アプリケーション名）、標準の画面（例えば、トップの画面）に配置するアプリケーション３８のアイコン、または画像形成装置３における各アプリケーションファイル３ＫＦの保存場所などが示される。
【００５０】
アプリケーションがアプリケーション記憶部２３１に記憶されると、オペレータ（例えば、ＣＥ（Customer Engineer）は、登録すべきアプリケーションおよびその登録先を指定する。本例では、登録すべきアプリケーションとしてアプリケーション３８が指定される。また、以下、登録先として画像形成装置３Ａが指定された場合を例に説明する。
【００５１】
アプリケーション登録要求部２３２は、指定された登録先すなわち画像形成装置３Ａに対して、指定されたアプリケーションすなわちアプリケーション３８を登録（インストール）するように要求する。
【００５２】
画像形成装置３Ａの登録要求受付部３０１（図３参照）は、開発用コンピュータ２からの要求を受け付ける処理を行う。
【００５３】
ここで、アプリケーション登録要求部２３２および登録要求受付部３０１の具体的な処理を説明する。
【００５４】
アプリケーション登録要求部２３２は、画像形成装置３Ａに接続し、所定の規則に従って、ログイン用ファイル３ＲＦに示されるパスワードを画像形成装置３Ａへ送信する。
【００５５】
登録要求受付部３０１は、開発用コンピュータ２からパスワードを受信すると、このパスワードが正しいパスワードであれば、開発用コンピュータ２が正規のコンピュータであると判別し、画像形成装置３Ａへのログインを認める。正しいパスワードでない場合は、正規のコンピュータでないと判別し、開発用コンピュータ２とのセッションを終了する。
【００５６】
アプリケーション登録要求部２３２は、画像形成装置３Ａへのログインに成功すると、アプリケーション３８の登録を画像形成装置３Ａに対して要求する。この際に、アプリケーション３８のアプリケーションファイル３ＫＦおよび登録情報ファイル３ＴＦを画像形成装置３Ａへ送信する。
【００５７】
そして、登録要求受付部３０１は、アプリケーション３８の登録の要求を、アプリケーションファイル３ＫＦおよび登録情報ファイル３ＴＦとともに画像形成装置３Ａから受信する。
【００５８】
デバイスロック処理部３０２ないし登録結果通知部３０６は、アプリケーション３８を登録し結果を開発用コンピュータ２へ通知する処理を行う。以下、各部の処理を、図７を参照しながら説明する。
【００５９】
デバイスロック処理部３０２は、アプリケーションの登録の要求が登録要求受付部３０１によって受け付けられると（図７の＃６０１でＹｅｓ）、画像形成装置３Ａの操作が行えないように、オペレーティングシステムに、操作パネル３０ｅおよびタッチパネルディスプレイ３０ｆからの入力の受付を停止させる（＃６０２）。つまり、いわゆるデバイスロックを行う。なお、デバイスロックにおいて、さらに、入力以外に関する事項を制限してもよい。
【００６０】
アプリケーション登録処理部３０３は、登録情報ファイル３ＴＦに基づいてアプリケーション３８の登録の処理を行う（＃６０３）。この処理は、例えば次のように行われる。
【００６１】
アプリケーション登録処理部３０３は、アプリケーションファイル３ＫＦを、大容量記憶装置３０ｄにおける、登録情報ファイル３ＴＦに示される保存場所に記憶させる。さらに、登録情報ファイル３ＴＦに示されるアイコンおよびアプリケーション名が標準の画面に配置されるように、標準の画面のデータを更新する。
【００６２】
画面キャプチャ部３０４は、アプリケーション３８の登録に成功した場合に（＃６０４でＹｅｓ）、図８のような、アプリケーション３８の画面を、次のようにキャプチャする。
【００６３】
画面キャプチャ部３０４は、アプリケーション３８を起動し（＃６０５）、アプリケーション３８の画面をタッチパネルディスプレイ３０ｆに表示させる（＃６０６）。例えば、アプリケーションファイル３ＫＦのうちのメインのプログラムファイルを起動する。または、アプリケーション３８がＨＴＭＬファイルによって構成される場合は、ウェブブラウザを起動し、アプリケーションファイル３ＫＦのうちのトップ画面のＨＴＭＬファイルを開く。または、アプリケーション３８がウェブ用のスクリプトファイル（いわゆるウェブアプリ）である場合は、ウェブブラウザ上でアプリケーション３８を実行する。
【００６４】
そして、画面キャプチャ部３０４は、タッチパネルディスプレイ３０ｆに表示されている画面をキャプチャし、画面の画像データ３ＧＤを生成しＲＡＭ３０ｂに一時的に記憶させる（＃６０７）。以下、この画面を「キャプチャ画面３ＣＳ」と記載する。画像データ３ＧＤのフォーマットは、ビットマップデータのままでもよいが、ＧＩＦ（Graphics Interchange Format）またはＴＩＦＦ（Tagged Image File Format）などの圧縮形式が好ましい。
【００６５】
画像データ３ＧＤが取得されたら、デバイスロック解除処理部３０５および登録結果通知部３０６は、次の処理を行う。
【００６６】
デバイスロック解除処理部３０５は、オペレーティングシステムに、操作パネル３０ｅおよびタッチパネルディスプレイ３０ｆからの入力の受付を再開させる（＃６０８）。つまり、デバイスロックを解除する。デバイスロックの解除の後、アプリケーション３８を終了させてもよい。
【００６７】
登録結果通知部３０６は、画面キャプチャ部３０４によって生成された画像データ３ＧＤのほか、アプリケーション３８の登録が成功した旨のメッセージを示す結果データ３ＳＤを開発用コンピュータ２へ送信する（＃６０９）。結果データ３ＳＤに画像データ３ＧＤを添付して送信してもよい。
【００６８】
一方、アプリケーション３８の登録に失敗した場合は（＃６０４でＮｏ）、デバイスロック解除処理部３０５はデバイスロックを解除し（＃６１０）、登録結果通知部３０６は、登録に失敗した旨のメッセージを示す結果データ３ＦＤを開発用コンピュータ２へ送信する（＃６１１）。
【００６９】
開発用コンピュータ２において、登録結果受付部２３３（図５参照）は、画像形成装置３Ａから画像データ３ＧＤおよび結果データ３ＳＤを受信する。または、結果データ３ＦＤを受信することがあるが、この場合は、登録結果表示処理部２３４以降の処理を中止する。
【００７０】
登録結果表示処理部２３４は、画像データ３ＧＤに基づいてキャプチャ画面３ＣＳを液晶ディスプレイ２０ｅに表示させる。オペレータは、キャプチャ画面３ＣＳを見ることによって、画像形成装置３Ａにおいてアプリケーション３８の画面が的確に表示されるか否かを判断することができる。
【００７１】
〔アプリケーションを修正する際の処理〕
図９および図１０は、キャプチャ画面３ＣＳの例を示す図である。
【００７２】
アプリケーション３８の画面が画像形成装置３Ａにおいて的確に表示されない場合は、キャプチャ画面３ＣＳにも不具合が見られる。オペレータは、キャプチャ画面３ＣＳの状況を開発者に報告し、開発者は、的確に表示されるようにアプリケーション３８を修正することができる。
【００７３】
さらに、開発用コンピュータ２の修正用ソフトウェア２５によると、自動的にアプリケーション３８を次のように修正することができる。
【００７４】
不具合検出部２５１は、キャプチャ画面３ＣＳの不具合を検出する。不具合には、幾つかの種類がある。不具合検出部２５１は、各種類の不具合を次のように検出する。
【００７５】
（１）スクロール用のオブジェクトの出現
不具合検出部２５１は、キャプチャ画面３ＣＳからのスクロール用のオブジェクトの検出を例えば次のように試みる。
【００７６】
不具合検出部２５１は、キャプチャ画面３ＣＳの右端および下端からスクロールボタン３ＣＳａおよびスクロールバー３ＣＳｂの検出を試みる。キャプチャ画面３ＣＳが図８に示すような状態であれば、スクロールボタン３ＣＳａおよびスクロールバーの３ＣＳｂのいずれのオブジェクトも検出しない。しかし、図９に示すような状態であれば、スクロールボタン３ＣＳａおよびスクロールバー３ＣＳｂの両方を検出する。
【００７７】
キャプチャ画面３ＣＳにスクロールボタン３ＣＳａおよびスクロールバー３ＣＳｂなどのスクロール用のオブジェクトが現われる原因は、アプリケーション３８の画面のサイズが画像形成装置３Ａのタッチパネルディスプレイ３０ｆのサイズよりも大きいことであると、考えられる。
【００７８】
（２）フォームの崩れ
不具合検出部２５１は、キャプチャ画面３ＣＳからの（形式）の崩れの検出を例えば次のように試みる。
【００７９】
アプリケーション３８の、フォームの崩れが生じていない画面（以下、「理想画面」と記載する。）のデータを予め用意しておく。そして、不具合検出部２５１は、キャプチャ画面３ＣＳと理想画面とを比較することによって、キャプチャ画面３ＣＳからフォームの崩れを検出する。すなわち、比較した結果、キャプチャ画面３ＣＳのフォームが理想画面のフォームと同一であることが分かれば、崩れを検出しない。一方、相違する場合は、崩れを検出する。理想画面が図８に示す状態でありキャプチャ画面３ＣＳが図１０に示す状態である場合は、フォームの崩れが検出される。
【００８０】
アプリケーション３８の画面のサイズが画像形成装置３Ａのタッチパネルディスプレイ３０ｆのサイズよりも大きいが、スクロール用のオブジェクトが非表示に設定されている場合に、フォームの崩れが生じることがある。または、開発者が推奨する環境（例えば、推奨するウェブブラウザ）が画像形成装置３Ａに備わっていない場合に、フォームの崩れが生じることもある。
【００８１】
（３）画面の不適格な明るさ
不具合検出部２５１は、キャプチャ画面３ＣＳの全体的な明るさを、各画素の明度の平均値を算出することによって測定する。そして、測定した全体的な明るさが所定の基準以下であれば、キャプチャ画面３ＣＳの明るさが不適格であることを検出する。
【００８２】
（４）文字化けの出現
アプリケーション３８の画面に配置される文字化けしていない文字列のテキストデータを予め用意しておく。不具合検出部２５１は、キャプチャ画面３ＣＳの中から文字列を検出し、ＯＣＲ（Optical Character Recognition）によってテキストデータに変換する。そして、両テキストデータを比較し、一致しない場合は、キャプチャ画面３ＣＳの中の文字列を文字化けの文字列として検出する。なお、ＯＣＲの精度が１００％であるとは限らない。そこで、不一致の文字数が所定の割合（例えば、９０％）以上である場合に、キャプチャ画面３ＣＳの中の文字列を文字化けの文字列として検出してもよい。
【００８３】
アプリケーション修正処理部２５２は、キャプチャ画面３ＣＳから不具合検出部２５１によって検出された不具合を修正するために、アプリケーション３８を修正する処理を行う。アプリケーション３８は、不具合の状況または発生の原因などに応じて、例えば次のように修正される。
【００８４】
スクロール用のオブジェクトが検出された場合は、アプリケーション修正処理部２５２は、画面のサイズが小さくなるようにアプリケーション３８を修正する。例えば、画面に用いられるフォント、テキストボックス、またはボタンなどのサイズが小さくなるように、または、画面の外枠のサイズが小さくなるように、アプリケーション３８の中の画面用のアプリケーションファイル３ＫＦを更新する。
【００８５】
フォームの崩れが検出された場合は、スクロール用のオブジェクトが検出された場合と同様に、アプリケーション修正処理部２５２は、画面のサイズが小さくなるようにアプリケーション３８を修正する。または、画像形成装置３Ａのウェブブラウザの仕様に合わせてアプリケーション３８を修正する。
【００８６】
明るさが不適格であることが検出された場合は、アプリケーション修正処理部２５２は、画面全体の明度が上がるようにアプリケーション３８を修正する。例えば、テキストボックスおよびボタンなどのオブジェクトにおける背景の部分の明度を上げ、または、オブジェクトの配置されていない部分（余白）の明度を上げる。
【００８７】
アプリケーション修正処理部２５２によって修正されたアプリケーション３８のアプリケーションファイル３ＫＦは、アプリケーション記憶部２３１に記憶される。修正前のアプリケーション３８は、アプリケーション記憶部２３１から削除される。つまり、上書きされる。または、他の保存場所へバックアップされる。なお、アプリケーション３８のファイルのうち更新されたものだけを上書きしてもよい。
【００８８】
アプリケーション修正処理部２５２によって自動的に修正することができない不具合がキャプチャ画面３ＣＳに含まれていることがある。
【００８９】
そこで、不具合表示処理部２５３は、不具合検出部２５１によって検出された不具合を液晶ディスプレイ２０ｅに表示させる。開発者は、表示された不具合を参照し、アプリケーション３８を修正することができる。
【００９０】
アプリケーション修正処理部２５２によって修正されまたは開発者によって修正されたアプリケーション３８は、画像形成装置３Ａへ登録される。登録の処理は、開発用コンピュータ２のアプリケーション登録要求部２３２ないし登録結果表示処理部２３４および画像形成装置３Ａの登録要求受付部３０１ないし登録結果通知部３０６によって、上述の通り行われる。ただし、修正前のアプリケーション３８は、大容量記憶装置３０ｄから削除される。つまり、新しいアプリケーション３８によって上書きされる。または、他の保存場所へバックアップしてもよい。
【００９１】
図１１は、第一の実施形態における開発用コンピュータ２および画像形成装置３の全体的な処理の流れの例を説明するシーケンス図である。
【００９２】
次に、アプリケーションの登録および修正の全体的な処理の手順を、図１１のシーケンス図を参照しながら
開発用コンピュータ２および画像形成装置３の全体的な処理の流れを、画像形成装置３Ａへアプリケーション３８を登録する場合を例に説明する。
【００９３】
開発者がアプリケーション３８を作成すると、開発用コンピュータ２は、アプリケーション記憶部２３１によって記憶する（図１１の＃７０１）。
【００９４】
開発者が登録を指令するとともに、画像形成装置３Ａおよびアプリケーション３８を指定すると、開発用コンピュータ２は、画像形成装置３Ａに接続し、アプリケーション３８のアプリケーションファイル３ＫＦおよび登録情報ファイル３ＴＦを画像形成装置３Ａへ送信する（＃７０２）。この際に、ログイン用ファイル３ＲＦに示されるパスワードによって画像形成装置３Ａにログインする。これらの処理は、既存のプロトコル、例えば、ＨＴＴＰ（Hypertext Transfer Protocol）およびＳＯＡＰ（Simple Object Access Protocol）に従って行えばよい。
【００９５】
画像形成装置３Ａは、開発用コンピュータ２からのパスワードに基づいて開発用コンピュータ２の認証を行い、正規のコンピュータであることを判別できたら、登録の要求とともにアプリケーション３８のアプリケーションファイル３ＫＦおよび登録情報ファイル３ＴＦを受け付ける（＃７２１）。
【００９６】
画像形成装置３Ａは、デバイスロックを行い（＃７２２）、アプリケーションファイル３ＫＦを大容量記憶装置３０ｄの所定の場所に記憶させるとともに、トップの画面の設定などを行う（＃７２３）。これにより、アプリケーション３８の登録が完了する。
【００９７】
さらに、画像形成装置３Ａは、アプリケーション３８を起動し（＃７２４）、画面をタッチパネルディスプレイ３０ｆに表示させ（＃７２５）、画面をキャプチャする（＃７２６）。そして、デバイスロックを解除するとともに（＃７２７）、画像データ３ＧＤおよび結果データ３ＳＤを開発用コンピュータ２へ送信する（＃７２８）。これにより、キャプチャされた画面（キャプチャ画面３ＣＳ）および登録の結果が開発用コンピュータ２へ通知される。画像形成装置３Ａから開発用コンピュータ２への通知の処理も、既存のプロトコル、例えば、ＨＴＴＰおよびＳＯＡＰなどに従って行えばよい。
【００９８】
開発用コンピュータ２は、画像データ３ＧＤおよび結果データ３ＳＤを受信すると（＃７０３）、画像データ３ＧＤに基づいてキャプチャ画面３ＣＳを表示する（＃７０４）。
【００９９】
さらに、開発用コンピュータ２は、キャプチャ画面３ＣＳから不具合を検出し（＃７０５）、不具合を表示するとともに（＃７０６）、不具合がなくなるようにアプリケーション３８を修正する（＃７０７）。不具合の全部または一部を開発者が修正してもよい。
【０１００】
そして、開発用コンピュータ２は、修正したアプリケーション３８をアプリケーション記憶部２３１によって記憶するとともに（＃７０８）、画像形成装置３Ａへ登録する処理を行う。登録の処理は、ステップ＃７０２〜＃７０４およびステップ＃７２１〜＃７２８と基本的に同様である。ただし、画像形成装置３Ａは、先に登録したアプリケーション３８を削除し、修正されたアプリケーション３８を登録する。
【０１０１】
第一の実施形態によると、アプリケーションの提供者は、画像形成装置３に表示されるアプリケーションの画面の状態を、画像形成装置３を直接操作することなく確認することができる。よって、アプリケーションの書換えを従来よりも手間なく行うことができる。
【０１０２】
〔第二の実施形態〕
図１２は、第二の実施形態における開発用コンピュータ２の機能的構成の例を示す図である。図１３は、第二の実施形態における画像形成装置３の機能的構成の例を示す図である。図１４は、第一の実施形態における開発用コンピュータ２および画像形成装置３の全体的な処理の流れの例を説明するシーケンス図である。図１５および図１６は、ウィンドウ２ＷＮの例を示す図である。
【０１０３】
第一の実施形態では、アプリケーション３８の画面をキャプチャする仕組みを画像形成装置３に新たに設けた。第二の実施形態では、リモートアクセスの仕組みを使用し、キャプチャする仕組みを開発用コンピュータ２に設ける。
【０１０４】
第二の実施形態におけるネットワーク１の全体的な構成は、第一の実施形態と同様であり、図１に示した通りである。開発用コンピュータ２のハードウェアの構成も、第一の実施形態と同様であり、図４に示した通りである。また、画像形成装置３のハードウェアの構成も、第一の実施形態と同様であり、図２に示した通りである。
【０１０５】
ただし、開発用コンピュータ２のＲＯＭ２０ｃまたは大容量記憶装置２０ｄには、画像形成装置３へのアプリケーションの登録用のソフトウェアとして、登録用ソフトウェア２３（図５参照）の代わりに図１２に示すような登録用ソフトウェア２６が記憶されている。さらに、アプリケーションの修正用のソフトウェアとして、修正用ソフトウェア２５の代わりに修正用ソフトウェア２７が記憶されている。
【０１０６】
登録用ソフトウェア２６によると、アプリケーション記憶部２６１、アプリケーション登録要求部２６２、登録結果受付部２６３、リモート制御部２６４、および画面キャプチャ部２６５などの機能が実現される。
【０１０７】
修正用ソフトウェア２７によると、不具合検出部２７１、アプリケーション修正処理部２７２、および不具合表示処理部２７３などの機能が実現される。
【０１０８】
画像形成装置３のＲＯＭ３０ｃまたは大容量記憶装置３０ｄには、図１３に示す登録要求受付部３２１、アプリケーション登録処理部３２２、および登録結果通知部３２３などの機能を実現するためのソフトウェアが記憶されている。
【０１０９】
以下、図１２に示す開発用コンピュータ２の各部および図１３に示す画像形成装置３の各部の処理を、図１４を参照しながら、アプリケーション３８を画像形成装置３Ａに登録する場合を例に説明する。なお、第一の実施形態と重複する点は、説明を省略する。
【０１１０】
開発用コンピュータ２のアプリケーション記憶部２６１には、第一の実施形態のアプリケーション記憶部２３１（図５参照）と同様、アプリケーション３８のアプリケーションファイル３ＫＦ、ログイン用ファイル３ＲＦ、および登録情報ファイル３ＴＦが記憶される（図１４の＃７５１）。
【０１１１】
アプリケーション登録要求部２６２は、第一の実施形態のアプリケーション登録要求部２３２と同様、指定されたアプリケーションの登録を、指定された画像形成装置３に対して要求する（＃７５２）。本例では、アプリケーション３８の登録を画像形成装置３Ａに対して要求する。
【０１１２】
画像形成装置３Ａの登録要求受付部３２１（図１３参照）は、第一の実施形態の登録要求受付部３０１（図３参照）と同様、開発用コンピュータ２からの要求を受け付ける処理を行う（＃７７１）。
【０１１３】
アプリケーション登録処理部３２２は、第一の実施形態のアプリケーション登録処理部３０３と同様、アプリケーション３８の登録の処理を行う（＃７７２）。なお、第二の実施形態では、デバイスロックを行わなくてもよい。
【０１１４】
登録結果通知部３２３は、第一の実施形態の登録結果通知部３０６と同様、アプリケーション３８の登録が成功した場合は、その旨のメッセージのデータ（結果データ３ＳＤ）を開発用コンピュータ２へ送信し、失敗した場合は、その旨のメッセージのデータ（結果データ３ＦＤ）を開発用コンピュータ２へ送信する（＃７７３）。ただし、第一の実施形態とは異なり、キャプチャ画面３ＣＳの画像データ（画像データ３ＧＤ）は、送信しない。
【０１１５】
開発用コンピュータ２の登録結果受付部２６３（図１２参照）は、画像形成装置３Ａから結果データ３ＳＤまたは結果データ３ＦＤを受信する（＃７５３）。
【０１１６】
リモート制御部２６４は、結果データ３ＳＤが登録結果受付部２６３によって受信された場合に、画像形成装置３Ａへリモートアクセスする（＃７５４）。すると、画像形成装置３Ａのトップの画面（以下、「トップ画面３ＴＳ」と記載する。）のデータが、画像形成装置３Ａから開発用コンピュータ２へ送信され（＃７７４、＃７５５）、図１５のようにトップ画面３ＴＳを配置したウィンドウ２ＷＮが液晶ディスプレイ２０ｅに表示される（＃７５６）。なお、リモートアクセスは、市販のソフトウェアによって行ってもよい。
【０１１７】
画面キャプチャ部２６５は、アプリケーション３８の画面を次のようにキャプチャする。リモートアクセスが完了したら、アプリケーション３８を画像形成装置３Ａに起動させる（＃７５７、＃７７５、＃７７６）。画像形成装置３Ａにおいてアプリケーション３８が起動すると、図１６のような、アプリケーション３８の画面（以下、「アプリケーション画面３ＡＳ」と記載する。）のデータが、画像形成装置３Ａから開発用コンピュータ２へ送信される（＃７７７、＃７５８）。すると、図１６のように、ウィンドウ２ＷＮが、アプリケーション画面３ＡＳが配置された状態に変わる（＃７５９）。
【０１１８】
そして、画面キャプチャ部２６５は、液晶ディスプレイ２０ｅに表示されたアプリケーション画面３ＡＳをキャプチャする（＃７６０）。これにより、第一の実施形態におけるキャプチャ画面３ＣＳの画像データ（画像データ３ＧＤ）と同等の画像データ３ＨＤが得られる。
【０１１９】
不具合検出部２７１は、画像データ３ＨＤに基づいて、キャプチャしたアプリケーション画面３ＡＳから不具合を検出する（＃７６１）。検出の方法は、第一の実施形態と同様である。
【０１２０】
不具合表示処理部２７３は、不具合検出部２７１によって検知された不具合を液晶ディスプレイ２０ｅに表示させる（＃７６２）。開発者は、第一の実施形態と同様に、これを参照しながらアプリケーション３８を修正することができる。
【０１２１】
アプリケーション修正処理部２７２は、不具合検出部２７１によって検知された不具合が解消されるように、アプリケーション３８を修正する（＃７６３）。修正の方法は、第一の実施形態と同様である。
【０１２２】
修正されたアプリケーション３８の取扱いは、第一の実施形態と同様である。すなわち、大容量記憶装置２０ｄに、修正されたアプリケーション３８が記憶される（＃７６４）。さらに、画像形成装置３Ａにも、登録される。登録の手順は、基本的にステップ＃７５２〜＃７５３およびステップ＃７７１〜＃７７３の通りである。
【０１２３】
第二の実施形態によると、アプリケーションのキャプチャのための仕組みを画像形成装置３に追加することなく、画像形成装置３に表示されるアプリケーションの画面のデータを開発用コンピュータ２へ送信することができる。
【０１２４】
図１７は、キャプチャの処理の際のウィンドウ２ＷＮの表示の状態の遷移の例を示す図である。
【０１２５】
第一の実施形態および第二の実施形態では、１つの画面から不具合を検出したが、複数の画面のそれぞれから検出してもよい。この場合は、画像形成装置３または開発用コンピュータ２に、各画面を順に辿って各画面をキャプチャする処理を行わせばよい。
【０１２６】
通常、画面には、他の画面へ移動するためのオブジェクト（例えば、ボタン）が設けられていることが多い。そこで、アプリケーションの起動後、画像形成装置３または開発用コンピュータ２は、図１７のような、アプリケーションのトップ画面５０をキャプチャする。そして、トップ画面５０に設けられている移動用のオブジェクト５０ａに基づいて他の画面（例えば、コピー用画面５０１）へ移動し、当該他の画面をキャプチャする。以下、同様に、移動用のオブジェクトに基づいて残りの画面（画面５０２など）への移動およびキャプチャを繰り返す。
【０１２７】
または、開発用コンピュータ２または画像形成装置３は、開発者などが予め指定した画面のみをキャプチャするようにしてもよい。画面は、画面の識別子、例えばＵＲＬによって指定すればよい。または、トップ画面からのルート（route）を指定してもよい。開発用コンピュータ２または画像形成装置３は、識別子またはルートに基づいて画面を特定しキャプチャする。
【０１２８】
第一の実施形態において、画像形成装置３は、複数の画面をキャプチャした場合は、これらの画面の画像データを１つのファイルに纏め、このファイルを開発用コンピュータ２へ送信してもよい。
【０１２９】
第一の実施形態および第二の実施形態では、開発用コンピュータ２は、キャプチャした画面から不具合を検出したが、他の情報に基づいて不具合を検出してもよい。
【０１３０】
例えば、開発用コンピュータ２は、画像形成装置３から、登録（インストール）したアプリケーションのオプション情報、画像形成装置３のファームウェアの情報、ウェブブラウザの情報（製品名およびバージョンなど）、またはユーザの設定情報（ユーザプロファイル）を取得し、これらの情報に基づいて不具合を以下のように検出してもよい。
【０１３１】
これらの情報のいずれかによると、アプリケーションによって表示される文字のサイズ（フォントサイズ）が特定できる場合がある。そこで、開発用コンピュータ２は、特定したフォントサイズで文字を表示した場合の画面のサイズを算出し、このサイズの画面がタッチパネルディスプレイ３０ｆに収まるか否かを判別する。そして、収まらない場合は、不具合として、スクロール用のオブジェクトの出現またはフォームの崩れを検出する。
【０１３２】
または、これらの情報によると、画像形成装置３のウェブブラウザに対応していないコード（特に、表示に関連するコード）がアプリケーションに含まれているか否かを特定することができる。そこで、このようなコードが含まれている場合は、開発用コンピュータ２は、不具合が生じると判別する。
【０１３３】
または、これらの情報によると、画像形成装置３のオペレーティングシステムまたはウェブブラウザが使用する文字コード（ユニコード）の規格を特定することができる場合がある。そこで、開発用コンピュータ２は、特定した規格とアプリケーションの画面で使用する文字コードの規格とを比較し、両者が相違する場合は、不具合として文字化けを検出する。
【０１３４】
第一の実施形態および第二の実施形態では、開発用コンピュータ２は、キャプチャされた画面を液晶ディスプレイ２０ｅに表示したが、プリンタによって用紙に印刷してもよい。
【０１３５】
第一の実施形態および第二の実施形態では、画像形成装置にアプリケーションをインストールする場合を例に説明したが、パーソナルコンピュータ、タブレットコンピュータ、およびスマートフォンなど他の装置へアプリケーションをインストールする場合にも、本発明を適用することができる。
【０１３６】
第一の実施形態および第二の実施形態では、アプリケーションの開発、画像形成装置３への提供、および修正を、１台の開発用コンピュータ２で行ったが、複数台のコンピュータに分散して行ってもよい。例えば、開発、提供、および修正を３台のコンピュータにそれぞれ分散して行ってもよい。
【０１３７】
その他、ネットワーク１、開発用コンピュータ２、画像形成装置３の全体または各部の構成、処理内容、処理順序、アプリケーションの構成、画面の構成などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【０１３８】
１  ネットワーク（アプリケーション登録システム）
２  開発用コンピュータ（サーバ）
２３２  アプリケーション登録要求部（インストール用データ送信手段）
２３３  登録結果受付部（画像データ受信手段）
２３４  登録結果表示処理部（画面出力手段）
３、３Ａ、３Ｂ  画像形成装置（クライアント）
３０１  登録要求受付部（インストール用データ受信手段）
３０２  デバイスロック処理部（操作制限手段）
３０４  画面キャプチャ部（起動手段、キャプチャ手段）
３０５  デバイスロック解除処理部（制限解除手段）
３０６  登録結果通知部（画像データ送信手段）
３ＣＳ  キャプチャ画面
３ＧＤ  画像データ
３ＫＦ  アプリケーションファイル（インストール用データ）
３ＴＦ  登録情報ファイル（インストール用データ）
【図１】
2014229169.tif 000003
【図２】
2014229169.tif 000004
【図３】
2014229169.tif 000005
【図４】
2014229169.tif 000006
【図５】
2014229169.tif 000007
【図６】
2014229169.tif 000008
【図７】
2014229169.tif 000009
【図８】
2014229169.tif 000010
【図９】
2014229169.tif 000011
【図１０】
2014229169.tif 000012
【図１１】
2014229169.tif 000013
【図１２】
2014229169.tif 000014
【図１３】
2014229169.tif 000015
【図１４】
2014229169.tif 000016
【図１５】
2014229169.tif 000017
【図１６】
2014229169.tif 000018
【図１７】
2014229169.tif 000019