以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態におけるシステム構成例を示す図である。
同図において、画像形成装置10及び画像形成装置20は、例えば、一つのオフィス内においてLAN(Local Area Network)等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。
画像形成装置10及び画像形成装置20は、いずれも公開されたAPI(Application Program Interface)を備えたアプリケーションプラットフォーム(アプリケーション実行環境(プログラム実行環境提供手段))を有するという点において共通する。但し、両者のアプリケーションプラットフォームのソフトウェアーキテクチャは(構成)は異なる。また、両者のアプリケーションプラットフォームのAPIも異なる。
本実施の形態において、画像形成装置10は、画像形成装置20より新しいアプリケーションプラットフォームを備えていることとする。したがって、画像形成装置10を新画像形成装置10ともいう。また、画像形成装置20を旧画像形成装置20ともいう。
図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段(表示領域)を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。
なお、図2に示されているのは新画像形成装置10のハードウェア構成例であるが、旧画像形成装置20のハードウェア構成についても、図2に示されるものと同様でよい。
図3は、旧画像形成装置のソフトウェア構成例を示す図である。同図において、旧画像形成装置20は、標準アプリ221、アプリ管理サービス222、SDKアプリ223、SDKプラットフォーム224、コントロールサービス225、及びOS226等を有する。
OS226は、いわゆるOS(Operating System)である。旧画像形成装置20上の各ソフトウェアは、OS226上においてプロセス又はスレッドとして起動される。
標準アプリ221は、旧画像形成装置20に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ2211、印刷アプリ2212、コピーアプリ2213、及びFAXアプリ2214が例示されている。スキャンアプリ2211は、スキャンジョブを実行する。印刷アプリ2212は印刷ジョブを実行する。コピーアプリ2213は、コピージョブを実行する。FAXアプリ2214は、FAXの送信ジョブ又は受信ジョブを実行する。
コントロールサービス225は、各種のハードウェアリソース等を制御するための機能を上位アプリケーション等に対して提供するソフトウェアモジュール群であり、例えば、ネットワーク通信に関する機能、スキャナの制御機能、プリンタの制御機能、メモリの管理機能等を有する。
SDKアプリ223は、旧画像形成装置20の出荷後において、旧画像形成装置20の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。同図では、SDKアプリ223として、SDKアプリ223a、SDKアプリ223b、及びSDKアプリ223cが例示されている。
SDKプラットフォーム224は、SDKアプリ223の実行環境を提供する、SDKアプリ223のアプリケーションプラットフォーム(プログラム実行環境提供手段)である。各SDKアプリ223は、SDKプラットフォーム224が提供するAPI(Application Program Interface)を利用して開発される。SDKプラットフォーム224のAPIは公開されており、サードベンダ等によってもSDKアプリ223は開発されうる。APIとは、具体的には、関数又はメソッド等の集合である。また、広義においては、非同期に発生するイベント等をSDKアプリ223に通知するための仕組み等もAPIに含まれる。
同図において、SDKプラットフォーム224は、アプリ管理通信制御モジュール2241及びアプリ管理実行モジュール2242等を含む。アプリ管理通信制御モジュール2241は、HTTP(HyperText Transfer Protocol)を利用した所定のインタフェース(リクエスト(若しくはコマンド)又はリクエスト形式)に従った要求の入力を受け付け(要求を受信し)、当該要求をアプリ管理実行モジュール2242に入力する。アプリ管理実行モジュール2242は、要求の入力に応じ、SDKアプリ223の管理に関する各種処理のうち、当該要求に対応した処理を実行する。アプリ管理通信制御モジュール2241は、アプリ管理実行モジュール2242による処理の結果を示す結果情報を上記所定のインタフェースに従った形式に成形し、成形された結果情報を含む応答を要求の入力元に返信する。
アプリ管理サービス222は、SDKアプリ223の管理に関するユーザインタフェースを提供する。具体的には、アプリ管理サービス222は、SDKアプリ223の管理に関する各種画面を旧画像形成装置20の操作パネルに表示させる。アプリ管理サービス222は、表示された画面を介して入力される指示に応じ、上記所定のインタフェースに従った要求をHTTPを利用してアプリ管理通信制御モジュール2241に入力(送信)する。アプリ管理サービス222は、入力した要求に対して出力(返信)される結果情報を操作パネルに表示させる。
このように、旧画像形成装置20のアプリケーション管理機構は、アプリ管理サービス222、アプリ管理通信制御モジュール2241、及びアプリ管理実行モジュール2242によって実現される。
なお、アプリケーションの管理とは、アプリケーションのライフサイクルの管理又は状態の管理をいう。具体的には、アプリケーションの管理には、アプリケーションのインストール、起動、停止、及びアンインストールの実行制御や、インストールされているアプリケーションの一覧情報の確認等が含まれる。
ところで、アプリ管理サービス222とアプリ管理通信制御モジュール2241とアプリ管理実行モジュール2242との間にアプリ管理通信制御モジュール2241が介在するのは、アプリ管理サービス222とアプリ管理実行モジュール2242とが異なるプログラミング言語によって実装されていることによる。すなわち、旧画像形成装置20において、SDKプラットフォーム224及びSDKアプリ223は、Java(登録商標)言語によって実装されている。一方、コントロールサービス225、標準アプリ221、及びアプリ管理サービス222は、C言語によって実装されている。
したがって、アプリ管理サービス222が、Java(登録商標)言語によって実装されているアプリ管理実行モジュール22422を直接呼び出すためには、C言語によるプログラムがJava(登録商標)言語によるプログラムを呼び出すための特別な仕組みが必要とされる。そこで、当該特別な仕組みの実装を避けるために、アプリ管理通信制御モジュール2241が存在するのである。アプリ管理通信制御モジュール2241の介在により、アプリ管理サービス222は、プログラミング言語に対して中立的な(プログラミング言語に対する依存度の低い)HTTP通信を利用して、アプリ管理実行モジュール2242に対して要求を入力することができるからである。なお、プログラミング言語に対する中立性が確保可能であれば、アプリ管理サービス222とアプリ管理通信制御モジュール2241との間の通信プロトコルは、HTTP以外のものであってもよい。独自の通信プロトコルが利用されてもよいし、SOAP(Simple Object Access Protocol)等、標準化された通信プロトコルが利用されてもよい。
図4は、新画像形成装置のソフトウェア構成例を示す図である。同図において、新画像形成装置10は、標準アプリ121、プラグインアプリ122、プラグイン管理UI制御モジュール123、アプリ管理互換通信制御モジュール124、アプリ管理ラッパーモジュール125、アプリケーションプラットフォーム126、及びOS127等を有する。
OS127は、いわゆるOS(Operating System)である。新画像形成装置10上の各ソフトウェアは、OS127上においてプロセス又はスレッドとして起動される。
標準アプリ121は、新画像形成装置10に標準的に(出荷時に予め)実装されているアプリケーションの集合である。同図では、スキャンアプリ1211、印刷アプリ1212、コピーアプリ1213、及びFAXアプリ1214が例示されている。各標準アプリ121の機能は、旧画像形成装置20における同名の標準アプリ221の機能と同様である。
プラグインアプリ122は、新画像形成装置10の出荷後において、新画像形成装置10の機能拡張を図るためのプラグインとして追加的にインストールされるアプリケーションである。したがって、プラグインアプリ122は、旧画像形成装置20におけるSDKアプリ223と同様の位置付けに相当する。同図では、プラグインアプリ122として、プラグインアプリ122a、プラグインアプリ122b、及びプラグインアプリ122cが例示されている。
アプリケーションプラットフォーム126は、新画像形成装置10におけるアプリケーション(標準アプリ121及びプラグインアプリ122)の実行環境を提供する、プラグインアプリ122のアプリケーションプラットフォーム(プログラム実行環境提供手段)である。すなわち、新画像形成装置10においては、標準アプリ121及びプラグインアプリ122は、同一のプラットフォーム上で動作する。
なお、アプリケーションプラットフォーム126は、Java(登録商標)言語によって実装されている。したがって、アプリケーションプラットフォーム126上で動作する標準アプリ121、プラグインアプリ122、プラグイン管理UI制御モジュール123、アプリ管理互換通信制御モジュール124、及びアプリ管理ラッパーモジュール125もJava(登録商標)言語によって実装されている。
新画像形成装置10用の各アプリケーション又はモジュールは、アプリケーションプラットフォーム126が提供するAPI(Application Program Interface)を利用して開発される。アプリケーションプラットフォーム126のAPIは公開されており、サードベンダ等によってもプラグインアプリ122は開発されうる。なお、新画像形成装置10のアプリケーションプラットフォーム126のAPIと、旧画像形成装置20のSDKプラットフォーム224のAPIとの間には互換性は無い。したがって、プラグインアプリ122とSDKアプリ223との間にも互換性は無い。また、新画像形成装置10におけるプラグインアプリ122の管理機構(管理形態)は、旧画像形成装置20におけるSDKアプリ223の管理機構と異なる。
すなわち、新画像形成装置10において、プラグインアプリ122の管理機構は、アプリケーションプラットフォーム126に含まれているプラグイン管理実行モジュール1261と、アプリケーションプラットフォーム126上で動作するプラグイン管理UI制御モジュール123とによって実現される。プラグイン管理実行モジュール1261は、所定のインタフェースに従った要求の入力に応じ、プラグインアプリ122の管理に関する各種処理のうち、当該要求に対応した処理を実行する。プラグイン管理実行モジュール1261は、処理の結果を示す結果情報を上記所定のインタフェースに従った形式に成形し、成形された結果情報を含む応答を要求の入力元に出力する。
プラグイン管理UI制御モジュール123は、プラグインアプリ122の管理に関するユーザインタフェースを提供する。具体的には、プラグイン管理UI制御モジュール123は、プラグインアプリ122の管理に関する各種画面を新画像形成装置10の操作パネル15に表示させる。プラグイン管理UI制御モジュール123は、表示された画面を介して入力される指示に応じ、上記所定のインタフェースに従った要求をプラグイン管理実行モジュール1261に入力する。プラグイン管理UI制御モジュール123は、入力した要求に対して出力される結果情報を操作パネル15に表示させる。
すなわち、プラグイン管理UI制御モジュール123の位置付けは、アプリ管理サービス222に対応し、プラグイン管理実行モジュール1261の位置付けは、アプリ管理実行モジュール2242に対応する。しかし、プラグイン管理実行モジュール1261のインタフェース(API)と、アプリ管理実行モジュール2242のインタフェース(API)とは異なる。但し、このことは、プラグイン管理実行モジュール1261のインタフェースについてHTTP通信を利用した形態が除外されることを意図するものではない。
アプリ管理互換通信制御モジュール124及びアプリ管理ラッパーモジュール125は、斯かるインタフェースの相違を吸収し、アプリ管理サービス222からプラグイン管理実行モジュール1261を利用可能とするためのモジュールである。すなわち、アプリ管理互換通信制御モジュール124は、アプリ管理通信制御モジュール2241と同じインタフェースに従ったインタフェースを提供し、当該インタフェースを介して入力された要求をアプリ管理ラッパーモジュール125に入力する。アプリ管理ラッパーモジュール125は、アプリ管理実行モジュール2242と同じインタフェースに従ったインタフェースによって要求を受け付け、当該要求をプラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の要求をプラグイン管理実行モジュール1261に入力する。
したがって、アプリ管理互換通信制御モジュール124及びアプリ管理ラッパーモジュール125の存在により、新画像形成装置10のアプリケーション管理機構と旧画像形成装置20のアプリケーション管理機構に関して、図5に示されるような統合化を実現することができる。
図5は、新画像形成装置のアプリケーション管理機構と旧画像形成装置のアプリケーション管理機構との統合の仕組みを説明するための図である。
同図に示されるように、アプリ管理サービス222は、新画像形成装置10のアプリ管理互換通信制御モジュール124に対してHTTP通信によって要求を入力することができる。アプリ管理互換通信制御モジュール124は、アプリ管理通信制御モジュール2241と同様の処理によって、アプリ管理ラッパーモジュール125に当該要求を入力する。したがって、アプリ管理互換通信制御モジュール124は、アプリ管理通信制御モジュール2241そのものであってもよい。アプリ管理ラッパーモジュール125によって、アプリ管理実行モジュール2242と同じインタフェースが提供されているからである。
アプリ管理ラッパーモジュール125は、入力された要求をプラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の要求をプラグイン管理実行モジュール1261に入力する。プラグイン管理実行モジュール1261は、入力された要求に応じた処理を実行し、当該処理の結果情報をアプリ管理ラッパーモジュール125に出力する。アプリ管理ラッパーモジュール125は、当該結果情報をアプリ管理実行モジュール2242のインタフェースに従った形式に変換し、変換後の結果情報をアプリ管理互換通信制御モジュール124に返却する。アプリ管理互換通信制御モジュール124は、返却された結果情報をアプリ管理通信制御モジュール2241のインタフェースに従ってHTTP通信を利用してアプリ管理サービス222に返信する。
したがって、ユーザは、旧画像形成装置20の操作パネルを介して、旧画像形成装置20上のSDKアプリ223の管理だけでなく、新画像形成装置10上のプラグインアプリ122の管理をも行うことができる。
以下、図5に示した内容をより具体的な処理内容(インストール、起動、停止、及びアンインストール)に当てはめて、各処理手順を説明する。
図6は、アプリケーションのインストール処理の処理手順を説明するためのシーケンス図である。なお、同図のシーケンス図も含めて、以降のシーケンス図においても、ユーザの作業場所は旧画像形成装置20である。
ユーザが、旧画像形成装置20の操作パネルを介してアプリ管理サービス222を利用対象として選択すると、アプリ管理サービス222は、機能拡張初期設定画面を当該操作パネルに表示させる。
図7は、機能拡張初期設定画面の表示例を示す図である。同図において、機能拡張初期設定画面600は、起動設定タブ601、インストールタブ602、及びアンインストールタブ603等を有する。これらのタブは、目的に応じて機能拡張初期設定画面600の表示内容を切り替えるための表示部品である。同図では、インストールタブ602が選択され、インストール初期画面610が表示された状態が示されている。
インストール初期画面610において、ボタン611〜614は、旧画像形成装置20にインストールするSDKアプリ223の取得先(SDKアプリ223の供給元)を選択させるためのボタンである。ボタン615は、旧画像形成装置20以外の画像形成装置(本実施の形態では新画像形成装置10)をインストール先として選択させるためのボタンである。
なお、新画像形成装置10以外にもアプリケーションの管理機構を統合可能な画像形成装置がネットワークに接続されている場合は、斯かる画像形成装置のそれぞれに対応したボタンがインストール初期画面610に表示される。インストール先を選択させるためのボタンは、例えば、アプリ管理サービス222又は他のプログラムモジュールによって実行されるネットワーク50上における画像形成装置の検索結果に基づいて表示されてもよいし、予め記憶装置内に記録された一覧情報(画像形成装置の一覧情報)に基づいて表示されてもよい。
図7の状態において、ボタン611〜614のいずれかが押下されると(S101)、アプリ管理サービス222は、インストール先はローカルな画像形成装置(すなわち、旧画像形成装置20)であると判断する。そこで、アプリ管理サービス222は、押下されたボタンに対応する供給元の識別子を指定して、インストール可能なSDKアプリ223の一覧情報(インストール可能リスト)の取得要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S102)。なお、供給元の識別子は、ボタン611〜613のいずれかが押下された場合は、SDカードスロットの識別子であり、ボタン614が押下された場合は、所定のWWWサーバの識別子(例えば、URL(Uniform Resource Locator)等)である。
アプリ管理通信制御モジュール2241は、インストール可能リストの取得要求の受信に応じ、SDKアプリ223の供給元の識別子を指定し、インストール可能なSDKアプリ223の検索をアプリ管理実行モジュール2242に要求する(S103)。続いて、アプリ管理実行モジュール2242は、指定された供給元に保存されているSDKアプリ223を検索する(S104及びS105)。例えば、当該識別子がSDカードスロットを示すものである場合、アプリ管理実行モジュール2242は、当該識別子に係るSDカードスロットにセットされているSDカードの所定のフォルダに保存されているSDKアプリ223を検索する。一方、当該識別子がWWWサーバを示すものである場合、アプリ管理実行モジュール2242は、当該識別子に係るWWWサーバより、インストール可能なSDKアプリ223を検索する。供給元がいずれの場合であっても、検索結果として、インストール可能なSDKアプリ223ごとにアプリ情報が取得される。アプリ情報とは、SDKアプリ223に付随する(例えば、SDKアプリ223と同一の書庫ファイル内に記録されている)所定のファイルに記録されている、SDKアプリ223の属性情報をいう。
図8は、1つのSDKアプリに関するアプリ情報の例を示す図である。同図のアプリ情報は、<application>タグで囲まれたapplication要素をルート要素とするXML(eXtensible Markup Language)形式によって記載されている。
application要素の各子要素は、SDKアプリ223の属性項目に対応する。すなわち、productid要素の値は、プロダクトIDの値を示す。プロダクトIDは、SDKアプリ223の製品単位(種別単位)に一意なIDである。name要素の値は、アプリケーション名を示す。description要素の値は、SDKアプリ223に関する説明を示す。state要素の値は、SDKアプリ223の状態を示す。同図に示される「notinstalled」は、インストールされていない状態であることを示す。すなわち、アプリ情報は、SDKアプリ223と共にインストールされる。インストールによってSDKアプリ223の状態が変化すると、state要素の値は変化後の状態を示す値に更新される。versionは、SDKアプリ223のバージョンを示す。original要素の値は、SDKアプリ223の供給元(SDカード又はWWWサーバ等)を示す。同図における「sd」は、SDカード(SDカードスロット)を示す。vendor要素の値は、SDKアプリ223の開発ベンダを示す。e−mail要素、tel要素、及びfax要素のそれぞれの値は、当該開発ベンダのe−mailアドレス、電話番号、FAX番号を示す。autorun要素は、自動起動をするか(true)しないか(false)を示す。自動起動とは、後述される起動指示に応じてではなく、例えば、画像形成装置20の起動に応じて自動的に起動(スレッドとして起動)されることをいう。
ステップS104及びS105では、図8に示されるようなアプリ情報が、インストール可能なものとして検索された各SDKアプリ223に関して取得される。続いて、アプリ管理実行モジュール2242は、取得されたアプリ情報のリスト(アプリリスト)をアプリ管理通信制御モジュール2241に出力する(S106)。アプリ管理通信制御モジュール2241は、当該アプリリストをHTTP通信によってアプリ管理サービス222に返信する(S107)。
アプリ管理サービス222は、返信されたアプリリストに基づいて、インストール可能リスト画面を拡張機能初期設定画面600に表示させる(S108)。
図9は、旧画像形成装置に関するインストール可能リスト画面の表示例を示す図である。同図において、インストール可能リスト画面620には、インストール可能なSDKアプリ223の一覧が表示されている。当該一覧には、SDKアプリ223ごとに、アプリケーション名、説明、バージョン、及び供給媒体が表示されている。これらの項目の値は、それぞれのSDKアプリ223のアプリ情報より取得されたものである。
インストール可能リスト画面620における一覧の中から、所望のSDKアプリ223が選択され、インストールボタン621が押下されると(S111)、アプリ管理サービス222は、選択されたSDKアプリ223のプロダクトID及び供給元の識別子を指定して、SDKアプリ223のインストール要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S112)。アプリ管理通信制御モジュール2241は、インストール要求の受信に応じ、SDKアプリ223のプロダクトID及び供給元の識別子を指定して、SDKアプリ223のインストールをアプリ管理実行モジュール2242に要求する(S113)。続いて、アプリ管理実行モジュール2242は、指定された供給元に保存されているSDKアプリ223のうち、指定されたプロダクトIDに係るSDKアプリ223を旧画像形成装置20にインストールする(S114)。インストールにより、インストールされたアプリのアプリ情報が更新され、所定の記憶装置に保存される。
図10は、インストールによって更新されたアプリ情報の例を示す図である。図8のアプリ情報と比較して、図10のアプリ情報ではstate要素の値が「stop」に更新されている。これは、対応するSDKアプリ223はインストール済みであり、かつ、停止中である(起動されていない)ことを示す。また、origin要素の代わりにdestination要素が記録されている。destination要素の値は、インストール先の識別子を示す。同図における「sd1」は、SDカードである。すなわち、インストールされたSDKアプリ223の保存先は、旧画像形成装置20内の記憶装置ではなく、SDカード内であってもよい。
アプリ管理実行モジュール2242は、インストール処理の完了後、インストール処理の結果情報をアプリ管理通信制御モジュール2241に出力する(S115)。アプリ管理通信制御モジュール2241は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S116)。アプリ管理サービス222は、当該結果情報を拡張機能初期設定画面600に表示させる(S117)。
一方、インストール初期画面610(図7参照)において、ボタン615が選択されると、アプリ管理サービス222は、新画像形成装置10にインストールするプラグインアプリ122の取得先(プラグインアプリ122の供給元)を選択させるためのボタン(ボタン611〜614と同様のボタン)と、インストール先として旧画像形成装置20を選択させるためのボタン(すなわち、図7の状態に戻るためのボタン)が配置された画面を表示させる。
当該画面において、いずれかの供給元が選択されると(S101)、アプリ管理サービス222は、インストール先はリモートの新画像形成装置10あると判断する。そこで、アプリ管理サービス222は、選択された供給元の識別子を指定して、インストール可能なプラグインアプリ122の一覧情報(インストール可能リスト)の取得要求をHTTPによって新画像形成装置10のアプリ管理互換通信制御モジュール124に送信する(S121)。
アプリ管理互換通信制御モジュール124は、インストール可能リストの取得要求の受信に応じ、プラグインアプリ122の供給元の識別子を指定し、インストール可能なプラグインアプリ122の検索をアプリ管理ラッパーモジュール125に要求する(S122)。アプリ管理ラッパーモジュール125は、当該要求をプラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の要求(プラグインアプリ122の検索要求)をプラグイン管理実行モジュール1261に入力する(S123)。続いて、プラグイン管理実行モジュール1261は、指定された供給元に保存されているプラグインアプリ122を検索する(S124、S125)。検索結果としては、SDKアプリ223の場合と同様に、インストール可能なプラグインアプリ122ごとにアプリ情報が取得される。続いて、プラグイン管理実行モジュール1261は、取得されたアプリ情報のリスト(アプリリスト)をアプリ管理ラッパーモジュール125に出力する(S126)。アプリ管理ラッパーモジュール125は、プラグインアプリ122のアプリ情報の構成又はデータ形式等がSDKアプリ223のアプリ情報と異なる場合は、プラグインアプリ122のアプリ情報をSDKアプリ223のアプリ情報の形式等に従ったものに変換する。アプリ管理ラッパーモジュール125は、変換後のアプリ情報のリスト(アプリリスト)をアプリ管理互換通信制御モジュール124に出力する(S127)。アプリ管理互換通信制御モジュール124は、当該アプリリストをHTTP通信によってアプリ管理サービス222に返信する(S128)。
アプリ管理サービス222は、返信されたアプリリストに基づいて、インストール可能リスト画面を拡張機能初期設定画面600に表示させる(S108)。
図11は、新画像形成装置に関するインストール可能リスト画面の表示例を示す図である。同図に示されるインストール可能リスト画面630は、図9に示されるインストール可能リスト620とほぼ同様の構成を有する。すなわち、インストール可能リスト画面630には、インストール可能なプラグインアプリ122の一覧が表示されている。但し、当該一覧においてプラグインアプリ122ごとに表示される項目として供給媒体の代わりにインストール先の新画像形成装置10の名前(「機器2」)が表示されている。
インストール可能リスト画面630における一覧の中から、所望のプラグインアプリ122が選択され、インストールボタン631が押下されると(S111)、アプリ管理サービス222は、選択されたプラグインアプリ122のプロダクトID及び供給元の識別子を指定して、プラグインアプリ122のインストール要求をHTTPによってアプリ管理互換通信制御モジュール124に送信する(S131)。アプリ管理互換通信制御モジュール124は、インストール要求の受信に応じ、プラグインアプリ122のプロダクトID及び供給元の識別子を指定して、プラグインアプリ122のインストール要求をアプリ管理ラッパーモジュール125に入力する(S132)。アプリ管理ラッパーモジュール125は、当該インストール要求を、プラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後のインストール要求をプラグイン管理実行モジュール1261に入力する(S133)。続いて、プラグイン管理実行モジュール1261は、インストール要求において指定された供給元に保存されているプラグインアプリ122のうち、指定されたプロダクトIDに係るプラグインアプリ122を新画像形成装置10にインストールする(S134)。インストールにより、インストールされたアプリのアプリ情報が更新され、所定の記憶装置に保存される。更新の内容は、SDKアプリ223の場合と同様でよい。但し、プラグインアプリ122のアプリ情報の構成に応じて、更新の方法はSDKアプリ223の場合と必ずしも同じではない。
プラグイン管理実行モジュール1261は、インストール処理の完了後、インストール処理の結果情報をアプリ管理ラッパーモジュール125に出力する(S135)。アプリ管理ラッパーモジュール125は、当該結果情報をアプリ管理実行モジュール2242のインタフェースに従った形式に変換し、変換後の結果情報をアプリ管理互換通信制御モジュール124に出力する(S136)。アプリ管理互換通信制御モジュール124は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S137)。アプリ管理サービス222は、当該結果情報を拡張機能初期設定画面600に表示させる(S117)。
なお、ステップS121、S128、S131、及びS137において、アプリ管理サービス222は、インストール対象がプラグインアプリ122であるという認識はない。すなわち、アプリ管理サービス222は、プラグインアプリ122が新画像形成装置10にインストールされる場合においても、SDKアプリ223が旧画像形成装置20にインストールされる場合と同様の処理を実行する。アプリ管理互換通信制御モジュール124によって、アプリ管理通信制御モジュール2241と同じインタフェースが提供されているからである。
続いて、インストールされたアプリケーションの起動時の処理手順について説明する。図12は、アプリケーションの起動処理の処理手順を説明するためのシーケンス図である。
ユーザが、旧画像形成装置20の操作パネルに表示されている機能拡張初期設定画面600において起動設定タブ601を押下すると(S201)、アプリ管理サービス222は、インストール済みのSDKアプリ223の一覧情報(インストール済みリスト)の取得要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S202)。アプリ管理通信制御モジュール2241は、インストール済みリストの取得要求の受信に応じ、インストール済みのSDKアプリ223の検索をアプリ管理実行モジュール2242に要求する(S203)。続いて、アプリ管理実行モジュール2242は、インストール済みのSDKアプリ223を検索する(S204及びS205)。具体的には、インストールによって所定の記憶装置に記録されているアプリ情報が検索される。
続いて、アプリ管理実行モジュール2242は、検索されたアプリ情報のリスト(アプリリスト)をアプリ管理通信制御モジュール2241に出力する(S206)。アプリ管理通信制御モジュール2241は、当該アプリリストをHTTP通信によってアプリ管理サービス222に返信する(S207)。
アプリ管理サービス222は、また、ステップS202と並行して、インストール済みのプラグインアプリ122の一覧情報(インストール済みリスト)の取得要求をHTTPによって新画像形成装置10のアプリ管理互換通信制御モジュール124に送信する(S211)。
アプリ管理互換通信制御モジュール124は、インストール済みリストの取得要求の受信に応じ、インストール済みのプラグインアプリ122の検索をアプリ管理ラッパーモジュール125に要求する(S212)。アプリ管理ラッパーモジュール125は、当該要求をプラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の要求(プラグインアプリ122の検索要求)をプラグイン管理実行モジュール1261に入力する(S213)。続いて、プラグイン管理実行モジュール1261は、プラグインアプリ122を検索する(S214、S215)。検索結果としては、SDKアプリ223の場合と同様に、インストール済みのプラグインアプリ122ごとにアプリ情報が取得される。続いて、プラグイン管理実行モジュール1261は、取得されたアプリ情報のリスト(アプリリスト)をアプリ管理ラッパーモジュール125に出力する(S216)。アプリ管理ラッパーモジュール125は、プラグインアプリ122のアプリ情報をSDKアプリ223のアプリ情報の形式等に従ったものに変換する。アプリ管理ラッパーモジュール125は、変換後のアプリ情報のリスト(アプリリスト)をアプリ管理互換通信制御モジュール124に出力する(S217)。アプリ管理互換通信制御モジュール124は、当該アプリリストをHTTP通信によってアプリ管理サービス222に返信する(S218)。
続いて、アプリ管理サービス222は、アプリ管理通信制御モジュール2241及びアプリ管理互換通信制御モジュール124より返信されたアプリリストに基づいて、起動設定画面を拡張機能初期設定画面600に表示させる(S220)。
図13は、起動設定画面の表示例を示す図である。同図において、起動設定画面640には、インストール済みのSDKアプリ223又はプラグインアプリ122の一覧が表示されている。当該一覧には、アプリケーションごとに、状態(起動中又は停止)、アプリケーション名、説明、バージョン、及び起動元が表示されている。これらの項目の値は、それぞれアプリケーションのアプリ情報より取得されたものである。
起動設定画面640における一覧の中から、状態が「停止」であるいずれかのアプリケーションが選択され、起動ボタン641が押下されると(S221)、起動処理が開始される。選択されたアプリケーションの中に旧画像形成装置20にインストールされているアプリケーション(図13において起動元が「SDカードスロット1」であるSDKアプリ223)が含まれている場合、アプリ管理サービス222は、選択されたSDKアプリ223のプロダクトIDを指定して、SDKアプリ223の起動要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S222)。アプリ管理通信制御モジュール2241は、起動要求の受信に応じ、SDKアプリ223のプロダクトIDを指定して、SDKアプリ223の起動をアプリ管理実行モジュール2242に要求する(S223)。続いて、アプリ管理実行モジュール2242は、指定されたプロダクトIDに係るSDKアプリ223(のスレッド)を旧画像形成装置20において起動させる(S224)。起動に成功した場合、アプリ管理実行モジュール2242は、起動されたSDKアプリ223のアプリ情報におけるstate要素の値を「start」に更新する。
アプリ管理実行モジュール2242は、起動処理の完了後、起動処理の結果情報をアプリ管理通信制御モジュール2241に出力する(S225)。アプリ管理通信制御モジュール2241は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S226)。
アプリ管理サービス222は、また、起動対象として選択されたアプリケーションの中に新画像形成装置10にインストールされているアプリケーション(図13において起動元が「機器2」であるプラグインアプリ122)が含まれている場合、選択されたプラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122の起動要求をHTTPによってアプリ管理互換通信制御モジュール124に送信する(S231)。アプリ管理互換通信制御モジュール124は、起動要求の受信に応じ、プラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122の起動要求をアプリ管理ラッパーモジュール125に入力する(S232)。アプリ管理ラッパーモジュール125は、当該起動要求を、プラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の起動要求をプラグイン管理実行モジュール1261に入力する(S233)。続いて、プラグイン管理実行モジュール1261は、指定されたプロダクトIDに係るプラグインアプリ122(のスレッド)を新画像形成装置10において起動させる(S234)。起動に成功した場合、プラグイン管理実行モジュール1261は、起動されたプラグインアプリのアプリ情報における状態の値を起動中であることを示す値に更新する。
プラグイン管理実行モジュール1261は、起動処理の完了後、起動処理の結果情報をアプリ管理ラッパーモジュール125に出力する(S235)。アプリ管理ラッパーモジュール125は、当該結果情報をアプリ管理実行モジュール2242のインタフェースに従った形式に変換し、変換後の結果情報をアプリ管理互換通信制御モジュール124に出力する(S236)。アプリ管理互換通信制御モジュール124は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S237)。
続いて、アプリ管理サービス222は、アプリ管理通信制御モジュール2241及びアプリ管理互換通信制御モジュール124の少なくともいずれか一方から返信された結果情報に基づいて、起動設定画面640を更新する(S240)。
図14は、アプリケーションの起動によって更新された起動設定画面の表示例を示す図である。同図の起動設定画面640では、4行目のアプリケーション(プラグインアプリ122)の状態が起動中に更新されている。したがって、同図では、当該プラグインアプリ122が起動対象として選択され、図12のステップS231〜S240が実行された結果としての表示例が示されている。
続いて、起動されたアプリケーションの停止時の処理手順について説明する。図15は、アプリケーションの停止処理の処理手順を説明するためのシーケンス図である。図15中、ステップS201〜S220は、図12と同一の処理である。すなわち、旧画像形成装置20、新画像形成装置10のそれぞれにインストールされているアプリケーションが検索され、検索結果に基づいて、起動設定画面640が表示される。
例えば、図14に示される起動設定画面640における一覧の中から、状態が「起動中」であるいずれかのアプリケーションが選択され、停止ボタン642が押下されると(S321)、停止処理が開始される。選択されたアプリケーションの中に旧画像形成装置20にインストールされているアプリケーション(図13において起動元が「SDカードスロット1」であるSDKアプリ223)が含まれている場合、アプリ管理サービス222は、選択されたSDKアプリ223のプロダクトIDを指定して、SDKアプリ223の停止要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S322)。アプリ管理通信制御モジュール2241は、停止要求の受信に応じ、SDKアプリ223のプロダクトIDを指定して、SDKアプリ223の停止をアプリ管理実行モジュール2242に要求する(S323)。続いて、アプリ管理実行モジュール2242は、指定されたプロダクトIDに係るSDKアプリ223(のスレッド)を旧画像形成装置20において停止させる(S324)。停止に成功した場合、アプリ管理実行モジュール2242は、停止されたSDKアプリ223のアプリ情報におけるstate要素の値を「stop」に更新する。
アプリ管理実行モジュール2242は、停止処理の完了後、停止処理の結果情報をアプリ管理通信制御モジュール2241に出力する(S325)。アプリ管理通信制御モジュール2241は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S326)。
アプリ管理サービス222は、また、停止対象として選択されたアプリケーションの中に新画像形成装置10にインストールされているアプリケーション(図13において起動元が「機器2」であるプラグインアプリ122)が含まれている場合、選択されたプラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122の停止要求をHTTPによってアプリ管理互換通信制御モジュール124に送信する(S331)。アプリ管理互換通信制御モジュール124は、停止要求の受信に応じ、プラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122の停止要求をアプリ管理ラッパーモジュール125に入力する(S332)。アプリ管理ラッパーモジュール125は、当該停止要求を、プラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後の停止要求をプラグイン管理実行モジュール1261に入力する(S333)。続いて、プラグイン管理実行モジュール1261は、指定されたプロダクトIDに係るプラグインアプリ122(のスレッド)を新画像形成装置10において停止させる(S334)。停止に成功した場合、プラグイン管理実行モジュール1261は、停止されたプラグインアプリのアプリ情報における状態の値を停止中であることを示す値に更新する。
プラグイン管理実行モジュール1261は、停止処理の完了後、停止処理の結果情報をアプリ管理ラッパーモジュール125に出力する(S335)。アプリ管理ラッパーモジュール125は、当該結果情報をアプリ管理実行モジュール2242のインタフェースに従った形式に変換し、変換後の結果情報をアプリ管理互換通信制御モジュール124に出力する(S336)。アプリ管理互換通信制御モジュール124は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S337)。
続いて、アプリ管理サービス222は、アプリ管理通信制御モジュール2241及びアプリ管理互換通信制御モジュール124の少なくともいずれか一方から返信された当該結果情報に基づいて、起動設定画面640を更新する(S340)。例えば、図14において、4行目のプラグインアプリ122が停止対象として選択された場合、起動設定画面640の表示内容は図13に示されるように更新される。
続いて、不要となったアプリケーションのインストール時の処理手順について説明する。図16は、アプリケーションのアンインストール処理の処理手順を説明するためのシーケンス図である。
ユーザが、旧画像形成装置20の操作パネルに表示されている機能拡張初期設定画面600においてアンインストールタブ603を押下すると(S401)、図12において説明したステップS202〜S218と同様の処理が実行される。アプリ管理サービス222は、アプリ管理通信制御モジュール2241及びアプリ管理互換通信制御モジュール124より返信されたアプリリストに基づいて、アンインストール画面を機能拡張初期設定画面600に表示させる(S420)。
図17は、アンインストール画面の表示例を示す図である。同図に示されるアンインストール画面650の構成は、起動設定画面640とほぼ同様であるため、その詳細な説明については省略する。
アンインストール画面650における一覧の中から、いずれかのアプリケーションが選択され、アンインストールボタン651が押下されると(S421)、アンインストール処理が開始される。選択されたアプリケーションの中に旧画像形成装置20にインストールされているアプリケーション(図13において起動元が「SDカードスロット1」であるSDKアプリ223)が含まれている場合、アプリ管理サービス222は、選択されたSDKアプリ223のプロダクトIDを指定して、SDKアプリ223のアンインストール要求をHTTPによってアプリ管理通信制御モジュール2241に送信する(S422)。アプリ管理通信制御モジュール2241は、アンインストール要求の受信に応じ、SDKアプリ223のプロダクトIDを指定して、SDKアプリ223のアンインストールをアプリ管理実行モジュール2242に要求する(S423)。続いて、アプリ管理実行モジュール2242は、指定されたプロダクトIDに係るSDKアプリ223を旧画像形成装置20においてアンインストールする(S424)。
アプリ管理実行モジュール2242は、アンインストール処理の完了後、アンインストール処理の結果情報をアプリ管理通信制御モジュール2241に出力する(S425)。アプリ管理通信制御モジュール2241は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S426)。
アプリ管理サービス222は、また、アンインストール対象として選択されたアプリケーションの中に新画像形成装置10にインストールされているアプリケーション(図13において起動元が「機器2」であるプラグインアプリ122)が含まれている場合、選択されたプラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122のアンインストール要求をHTTPによってアプリ管理互換通信制御モジュール124に送信する(S431)。アプリ管理互換通信制御モジュール124は、アンインストール要求の受信に応じ、プラグインアプリ122のプロダクトIDを指定して、プラグインアプリ122のアンインストール要求をアプリ管理ラッパーモジュール125に入力する(S432)。アプリ管理ラッパーモジュール125は、当該アンインストール要求を、プラグイン管理実行モジュール1261のインタフェースに従った形式に変換し、変換後のアンインストール要求をプラグイン管理実行モジュール1261に入力する(S433)。続いて、プラグイン管理実行モジュール1261は、指定されたプロダクトIDに係るプラグインアプリ122を新画像形成装置10においてアンインストールする(S434)。
プラグイン管理実行モジュール1261は、アンインストール処理の完了後、アンインストール処理の結果情報をアプリ管理ラッパーモジュール125に出力する(S435)。アプリ管理ラッパーモジュール125は、当該結果情報をアプリ管理実行モジュール2242のインタフェースに従った形式に変換し、変換後の結果情報をアプリ管理互換通信制御モジュール124に出力する(S436)。アプリ管理互換通信制御モジュール124は、当該結果情報をHTTPによってアプリ管理サービス222に返信する(S437)。
続いて、アプリ管理サービス222は、アプリ管理通信制御モジュール2241及びアプリ管理互換通信制御モジュール124の少なくともいずれか一方から返信された当該結果情報に基づいて、アンインストール画面650を更新する(S440)。
上述したように、本実施の形態の新画像形成装置10は、旧画像形成装置20におけるアプリ管理通信制御モジュール2241のインタフェースと同じインタフェースに基づく要求を受け付けることが可能なアプリ管理互換通信制御モジュール124を有する。したがって、旧画像形成装置20のアプリ管理サービス222は、アプリ管理互換通信制御モジュール124を介して、従来と同様の処理手順において新画像形成装置10におけるプラグインアプリの管理に関する要求を入力することができる。よって、旧画像形成装置20におけるSDKアプリの管理と、新画像形成装置10におけるプラグインアプリの管理について統合化された操作環境をユーザに提供することができる。その結果、ユーザは、一台の画像形成装置を操作することにより、複数の画像形成装置に関するアプリケーションの管理を一括して行うことができる。
なお、アプリケーションの管理を一括して行うためのユーザインタフェース(操作環境)を提供する装置は、必ずしもアプリケーションの管理機構が統合される複数の画像形成装置のうちの一台でなくてもよい。例えば、当該複数の画像形成装置とネットワークを介して接続されるPC(Personal Computer)等の情報処理装置であってもよい。
図18は、統合的な操作環境が汎用的なコンピュータによって提供される場合のシステム構成例を示す図である。図18中、図1と同一部分には同一符号を付し、その説明は省略する。
図18では、機器管理装置30が更にネットワーク50に接続されている。機器管理装置30は、例えば、PC(Personal Computer)等の汎用的なコンピュータである。機器管理装置30は、アプリ統合管理部31を有する。アプリ統合管理部31は、機器管理装置30にインストールされたプログラムが機器管理装置30のCPUに実行させる処理によって実現されるソフトウェアである。
アプリ統合管理部31は、旧画像形成装置20におけるアプリ管理サービス222と同様の処理手順を実行する。すなわち、図6、図12、図15、図16のそれぞれにおけるアプリ管理サービス222をアプリ統合管理部と置き換えることができる。この場合、アプリ統合管理部31は、図7、図9、図11、図13、図14、図17等に示される画面を機器管理装置30の表示装置に表示させる。
図18に示されるような構成によれば、PC等の汎用的なコンピュータを用いて、複数の画像形成装置におけるアプリケーションの管理を統合的に行うことができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。