(57)【要約】【課題】インストールが可能なアプリケーションか否かを判断するために必要なアプリケーションに関するアプリ情報を取得する。【解決手段】アプリケーションをインストール可能に構成された画像形成装置において、アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得手段と、前記アプリケーションを前記画像形成装置にインストールすることが可能か否かを判定する判定手段と、を備える。前記アプリケーション情報取得手段は、前記アプリケーション情報が前記画像形成装置の記憶手段に格納されているか否かを判断し、格納されている場合に、前記記憶手段から前記アプリケーション情報を取得し、格納されていない場合には、前記アプリケーションから、当該アプリケーションが保有する前記アプリケーション情報を取得するように構成する。【選択図】図３
2011030272.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションをインストール可能に構成された画像形成装置であって、
アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得手段と、
前記アプリケーション情報を用いて、前記アプリケーションを前記画像形成装置にインストールすることが可能か否かを判定する判定手段と、を備え、
前記アプリケーション情報取得手段は、前記アプリケーション情報が前記画像形成装置の記憶手段に格納されているか否かを判断し、格納されている場合に、前記記憶手段から前記アプリケーション情報を取得し、格納されていない場合には、前記アプリケーションから、当該アプリケーションが保有する前記アプリケーション情報を取得する
ことを特徴とする画像形成装置。
【請求項２】
前記アプリケーション情報取得手段は、前記アプリケーションから取得した前記アプリケーション情報を前記記憶手段に格納する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記アプリケーションが保有するアプリケーション情報は、当該アプリケーションの実行ファイル中に含まれる情報であることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記アプリケーション情報取得手段が取得するアプリケーション情報は、アプリケーションに固有のプロダクトＩＤを含むことを特徴とする請求項１ないし３のうちいずれか１項に記載の画像形成装置。
【請求項５】
前記アプリケーション情報は、前記プロダクトＩＤに加えて、対応するアプリケーションのベンダー名とアプリケーション名、バージョン情報と使用リソース情報の少なくとも一方を含むことを特徴とする請求項４に記載の画像形成装置。
【請求項６】
コンピュータの構成を備えた画像形成装置を、請求項１ないし５のうちいずれか１項に記載の画像形成装置の各手段として機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項８】
アプリケーションをインストール可能に構成された画像形成装置において使用される方法であって、
アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得ステップと、
前記アプリケーション情報を用いて、前記アプリケーションを前記画像形成装置にインストールすることが可能か否かを判定する判定ステップと、を備え、
前記アプリケーション情報取得ステップにおいて、前記画像形成装置は、前記アプリケーション情報が前記画像形成装置の記憶手段に格納されているか否かを判断し、格納されている場合に、前記記憶手段から前記アプリケーション情報を取得し、格納されていない場合には、前記アプリケーションから、当該アプリケーションが保有する前記アプリケーション情報を取得する
ことを特徴とする方法。
【請求項９】
前記アプリケーション情報取得ステップにおいて、前記画像形成装置は、前記アプリケーションから取得した前記アプリケーション情報を前記記憶手段に格納する
ことを特徴とする請求項８に記載の方法。
【請求項１０】
前記アプリケーションが保有するアプリケーション情報は、当該アプリケーションの実行ファイル中に含まれる情報であることを特徴とする請求項８又は９に記載の方法。
【請求項１１】
前記アプリケーション情報は、アプリケーションに固有のプロダクトＩＤを含むことを特徴とする請求項８ないし１０のうちいずれか１項に記載の方法。
【請求項１２】
前記アプリケーション情報は、前記プロダクトＩＤに加えて、対応するアプリケーションのベンダー名とアプリケーション名、バージョン情報と使用リソース情報の少なくとも一方を含むことを特徴とする請求項１１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを提供する画像形成装置で、インストール処理を行うアプリケーションに関するアプリ情報を取得する画像形成装置に関するものである。
【背景技術】
【０００２】
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した３種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
このような従来の複合機では、プリンタ、コピー、ファクシミリ、スキャナなどの各機能単位ですべてのアプリケーションプログラムが起動される。これら既存のアプリケーションの場合、各アプリケーションは、起動可能な状態にするためのインストール処理が事前に行われている。すなわち、従来の複合機では、あらかじめ搭載されている既存のアプリケーションの場合、起動可能な状態にするインストール処理を行うにあたって、アプリケーションと複合機とのバージョンの整合性や使用するリソース量などが事前にわかっているため、通常にインストール処理を行って、起動させて実行するだけでよく、インストール前にバージョンやリソース量などをチェックする必要はなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。
【０００５】
このような新規な複合機では、アプリケーションの少なくとも２つが共通的に必要とするサービスを提供するコントロールサービスをアプリケーションと別個に設けた構成となっているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して、複合機に搭載可能な構成となっている。このため、かかる複合機では、出荷時に搭載されているコピー、プリンタ、スキャナ、ファクシミリといった既存のアプリケーション以外に、従来の複合機とは異なるユーザやサードベンダが開発した新規アプリケーションなどを複合機にコピーした後、そのアプリケーションを起動可能な状態にするためのインストール処理をする必要がある。上記した複合機の既存のアプリケーションの場合は、バージョンの整合性や使用リソース量があらかじめわかっているため、インストールして起動させたとしても、バージョンの不整合やリソース不足による動作の不具合が生じるおそれはない。しかしながら、サードベンダなどが開発する新規アプリケーションの場合は、搭載する複合機の状況（バージョンやリソース容量）まで考慮して開発していないため、その新規アプリケーションを起動させた場合に複合機の動作が不安定になる可能性がある。そこで、とりあえずインストールしておいて、起動までにチェックすれば動作が不安定になることが防止できるとも考えられる。しかし、起動させると複合機の動作が不安定になる可能性のあるアプリケーションをインストールしておくのは無意味なことである。このように、新規アプリケーションが搭載可能な新規な複合機では、新規アプリケーションのバージョンチェックやリソースチェックを行わずに起動させると、動作が不安定となったり、動作が途中で停止するなど従来の複合機では問題にならなかった新規な課題が生じてくる。
【０００６】
この発明は上記に鑑みてなされたもので、新規アプリケーションを複合機に搭載して、起動可能な状態とするインストール処理の前に、インストールが可能なアプリケーションか否かを判断するために必要なアプリケーションに関する正確なアプリ情報を取得できる画像形成装置および方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、アプリケーションをインストール可能に構成された画像形成装置であって、アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得手段と、前記アプリケーション情報を用いて、前記アプリケーションを前記画像形成装置にインストールすることが可能か否かを判定する判定手段と、を備え、前記アプリケーション情報取得手段は、前記アプリケーション情報が前記画像形成装置の記憶手段に格納されているか否かを判断し、格納されている場合に、前記記憶手段から前記アプリケーション情報を取得し、格納されていない場合には、前記アプリケーションから、当該アプリケーションが保有する前記アプリケーション情報を取得することを特徴とする画像形成装置として構成される。
【０００８】
また、本発明は、コンピュータの構成を備える画像形成装置を、上記画像形成装置の各手段として機能させるためのプログラム、及び当該プログラムを格納したコンピュータ読み取り可能な記録媒体として構成することもできる。
【０００９】
また、本発明は、アプリケーションをインストール可能に構成された画像形成装置において使用される方法であって、アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得ステップと、前記アプリケーション情報を用いて、前記アプリケーションを前記画像形成装置にインストールすることが可能か否かを判定する判定ステップと、を備え、前記アプリケーション情報取得ステップにおいて、前記画像形成装置は、前記アプリケーション情報が前記画像形成装置の記憶手段に格納されているか否かを判断し、格納されている場合に、前記記憶手段から前記アプリケーション情報を取得し、格納されていない場合には、前記アプリケーションから、当該アプリケーションが保有する前記アプリケーション情報を取得することを特徴とする方法として構成してもよい。
【発明の効果】
【００１０】
本発明によれば、アプリケーション情報を画像形成装置が取得するので、そのアプリケーション情報を用いて、インストールが可能なアプリケーションか否かを判断することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかる複合機の構成を示すブロック図である。
【図２】実施の形態１にかかる複合機のハードウェア構成を示すブロック図である。
【図３】本実施の形態にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【図４】ＶＡＳとアプリ情報を格納するハードディスク、アプリ情報テーブル、ＮＶＲＡＭとの関係を示す説明図である。
【図５】本実施の形態の複合機においてアプリに対してインストール処理かアンインストール処理を行う場合の全体フローチャートである。
【図６】図５のステップＳ４０１におけるアプリ情報取得処理のサブルーチンを示すフローチャートである。
【図７】仮起動の機能を含むアプリのプログラム記述（メイン関数）の概要を示す図である。
【図８】ＶＡＳとアプリのネゴシエーションを示す図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、この発明にかかる画像形成装置およびアプリ情報取得方法の好適な実施の形態を詳細に説明する。
【００１３】
図１は、この発明の本実施の形態である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒レーザプリンタ（B&W LP）１０１と、カラーレーザプリンタ（Color LP）１０２と、スキャナ、ファクシミリ、ハードディスク、メモリ、ネットワークインタフェースなどのハードウェアリソース１０３を有するとともに、プラットホーム１２０とアプリケーション（以下、アプリともいう）１３０と仮想アプリケーションサービス（ＶＡＳ：Ｖｉｒｔｕａｌ  Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ）１４０から構成されるソフトウェア群１１０とを備えている。
【００１４】
また、本実施の形態では、アプリ１３０とプラットホーム１２０との間に仮想アプリケーションサービス（ＶＡＳ）１４０を配置している。この仮想アプリケーションサービス（ＶＡＳ）１４０は、コントロールサービスをサーバとしたクライアントプロセスとして動作し、かつアプリケーションをクライアントとしたサーバプロセスとして動作するもので、アプリ情報取得スレッドがこの仮想アプリケーションサービス１４０に含まれている。このＶＡＳ１４０は、あるアプリを起動可能な状態とするインストール処理を行う前に、アプリ情報を取得して、そのアプリ情報ファイルを記憶手段としてのハードディスク（ＨＤ）２００に生成する。取得するアプリ情報の例としては、ここでは、プロダクト情報を取得するようにしていて、プロダクトＩＤ、ベンダー名、アプリ名、バージョン、連絡先（電話番号）、必要リソース、インストール時判定、関連アプリ情報などが含まれている。このプロダクト情報は、アプリの実行ファイル中に持っていたり、ファイルとしてネットワーク経由で取得したり、あるいは、以前に取得したプロダクト情報をハードディスク２００、不揮発性メモリであるＮＶＲＡＭ１０４、アプリ専用のアプリ情報テーブル１０６などに格納されている場合は、そのプロダクト情報を読み出すことによっても利用することができる。
【００１５】
アプリの実行ファイル中にあるアプリ情報は、ＶＡＳ１４０がアプリを仮起動することにより、ＶＡＳ１４０とアプリの間のプロセス間通信により、ＶＡＳ１４０が取得することが可能である。
【００１６】
また、アプリ自身は複合機１００のハードディスク２００にコピーしたり、ＰＣカード、ＩＣカード、ＳＤカードといった種々のデータカードを介してコピーされた後、起動できるような状態とするインストール処理が行われることになる。本実施の形態では、インストール処理を行う前に、アプリに関する情報であるアプリ情報を取得し、このアプリ情報に基づいてインストール処理が可能なアプリか否かを判断するようにする。このインストール処理が可能か否かの判断は、インストール処理後、そのアプリを起動させたとした場合に、インストールした複合機の既存のアプリや他のインストール済みの新規アプリとの関係において、リソース不足やバージョンの整合性等の問題で複合機自体の動作が不安定となったり、動作が停止するおそれがあるか否かによる。このような判断を行う理由は、起動できないアプリをインストールしても意味がない上、インストールされていると、誤って起動させた場合に複合機自体の動作に支障が出るからである。
【００１７】
プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有している。
【００１８】
コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とから構成されている。なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有している。
【００１９】
汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００２０】
ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４  Ｉ／Ｆ、ＲＳ２３２Ｃ  Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００２１】
具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が利用可能であるか（他の要求により利用されていないかどうか）を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００２２】
ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００２３】
ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（B&W LP）１０１、カラーレーザプリンタ（Color LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソースのエンジンの制御が行われる。
【００２４】
ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００２５】
ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００２６】
ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【００２７】
ＯＣＳ１２６のプロセスは、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）１０５の制御を行う。ＯＣＳ１２６は、オペレーションパネル１０５からキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【００２８】
アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６とを有している。これらの各アプリは、複合機特有（画像形成装置特有）のアプリであり、起動時にＶＡＳ１４０に対して自プロセスのプロセスＩＤとともにアプリ登録要求メッセージを送信し、アプリ登録要求メッセージを受信したＶＡＳ１４０によって、起動したアプリに対する登録処理が行われるようになっている。
【００２９】
アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００３０】
このように、本実施の形態にかかる複合機１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。また、複合機１００には、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に新規アプリ１１７，１１８を開発して搭載することが可能となっている。図１では、この新規アプリ１１７，１１８を搭載した例を示している。
【００３１】
なお、本実施の形態にかかる複合機１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。
【００３２】
図２に複合機１００のハードウェア構成例を示す。
【００３３】
複合機１００は、コントローラ１６０と、オペレーションパネル１７５と、ファックスコントロールユニット（ＦＣＵ）１７６と、プリンタ等の画像形成処理に特有のハードウェア資源であるエンジン部１７７とを含む。コントローラ１６０は、ＣＰＵ１６１と、システムメモリ１６２と、ノースブリッジ（ＮＢ）１６３と、サウスブリッジ（ＳＢ）１６４と、ＡＳＩＣ１６６と、ローカルメモリ１６７と、ＨＤＤ１６８と、ネットワークインターフェースカード（ＮＩＣ）１６９と、ＳＤカード用スロット１７０と、ＵＳＢデバイス１７１と、ＩＥＥＥ１３９４デバイス１７２と、セントロニクス１７３とを含む。なお、メモリ１６２、１６７はＲＡＭ、ＲＯＭ等を含む。ＦＣＵ１７６およびエンジン部１７７は、コントローラ１６０のＡＳＩＣ１６６にＰＣＩバス１７８で接続されている。
【００３４】
ＣＰＵ１６１が、複合機１００にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。
【００３５】
図３は、本実施の形態にかかる複合機１００のＶＡＳ１４０の構成と、ＶＡＳ１４０と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。なお、図３では、アプリケーション１３０の例として、プリンタアプリ１１１、コピーアプリ１１２、新規アプリ１１７，１１８を示しているが、他のアプリでも同様の構成である。
【００３６】
仮想アプリケーションサービス（ＶＡＳ）１４０のプロセスには、ディスパッチャ１４５と、制御スレッド１４４と、アプリ情報取得手段としてのアプリ情報取得スレッド１４１と、オペレーションパネルに対して操作画面を生成する画面表示スレッド１４２、および、取得したアプリ情報に基づいてアプリのインストールが可能か否かをチェックするアプリチェックスレッド１４３が動作している。
【００３７】
ディスパッチャ１４５は、アプリケーション１３０やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じて制御スレッド１４４、アプリ情報取得スレッド１４１、画面表示スレッド１４２、アプリチェックスレッド１４３に対して処理要求を行うものである。本実施の形態の複合機１００では、ディスパッチャ１４５は、コントロールサービスからインストールされているアプリに対するアプリ起動要求メッセージを受信したとき、受信したアプリ起動要求メッセージを制御スレッド１４４に送信し、制御スレッド１４４からアプリ情報取得スレッド１４１、画面表示スレッド１４２、アプリチェックスレッド１４３に対して処理要求を行うようになっている。
【００３８】
制御スレッド１４４は、ディスパッチャ１４４からのアプリ起動要求メッセージを受信して、アプリ情報取得処理、画面表示処理、およびアプリチェック処理を行う。ここで、アプリチェック処理とは、アプリをインストール後に起動させた場合に複合機に対して影響を与える可能性が有るか無いかをチェックする処理のことである。例えば、インストール要求のあったアプリと、他のインストール済みのアプリのアプリ情報を取得して、バージョンチェックやリソースチェックを行うことによって、インストール後に起動させても動作に影響を与えないか否かを判断することが可能となる。その際、画面表示スレッド１４２は、ハードディスク（ＨＤ）２００の中のアプリ情報ファイル２０１に格納したアプリ情報を用いてオペレーションパネル１０５上に各アプリのアプリ情報を表示するので、インストールしようとしているアプリの状況を把握することができる。従って、アプリチェックスレッド１４３よってインストールが不可能であると判断されても、どのような理由でインストールできなかったのかを理解することができる。
【００３９】
また、制御スレッド１４３は、アプリチェックスレッド１４３によってインストールが可能と判断されたり、あるいは、後述するように、インストールされているアプリが不要になった場合などに削除するアンインストール処理などを制御する。
【００４０】
アプリ情報取得スレッド１４１は、制御スレッド１４３からの処理要求を受けると、インストール前のアプリに対しては、仮起動を行うことによってプロセス間通信が可能な状態として、アプリ情報を取得する。また、インストールされているアプリは、起動させることで同様にプロセス間通信によるアプリ情報取得が可能となる。このようにして、取得された各アプリのアプリ情報は、アプリ情報ファイル２０１としてハードディスク（ＨＤ）２００に生成される。かかるアプリ情報は、アプリごとのレコードとして記録される。
【００４１】
上記ＶＡＳ１４０のプログラムは、ソフトウェア開発キット（ＳＤＫ：Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ）等の一部または全部として、ＣＤ−ＲＯＭまたはＦＤ（フレキシブルディスク）などの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のＶＡＳ１４０のプログラムファイルを、ネットワーク経由で取得可能な方法で提供するようにしても良い。
【００４２】
図４は、ＶＡＳ１４０とアプリ情報を格納するハードディスク２００、アプリ情報テーブル１０６、ＮＶＲＡＭ１０４との関係を示す説明図である。図４に示すように、ハードディスク２００に格納されているプロダクト情報は、各アプリ単位ごとに管理され、プロダクトＩＤが特定できれば、これに対応するアプリ情報も特定することができる。また、このハードディスク２００には、複合機にコピーされたインストール前のアプリＡやアプリＣのデータが格納されており、また、アプリＢは、ＩＣカードなどに格納されたデータを使ってインストール処理を行うものである。図４中の破線で示したＦは、特定のパスにある実行ファイル群を示している。
【００４３】
ＮＶＲＡＭ１０４は、電源を切ってもメモリ内容を保持する不揮発性メモリであり、アプリＡ、アプリＢのように、各アプリごとにプロダクトＩＤ、起動情報、付加情報がそれぞれ格納されている。ＮＶＲＡＭ１０４には、アプリのインストール処理を行うことによって情報が記録される。また、電源ＯＮ時に当該アプリが起動されるか否かを示す情報が起動情報として設定される。
【００４４】
また、アプリ情報テーブルは、アプリに関する情報を各アプリごとにテーブルデータとして格納したものである。このため、アプリＡのプロダクトＩＤを入力すれば、このアプリＡのアプリ名、バージョン、インストール属性等のアプリ情報を取り出すことができる。そして、オペレーションパネルへの表示等を行うことができる。
【００４５】
図５は、本実施の形態の複合機においてアプリに対してインストール処理かアンインストール処理を行う場合の全体フローチャートであり、図６は、図５のステップＳ４０１におけるアプリ情報取得処理のサブルーチンを示すフローチャートである。
【００４６】
まず、図５のステップＳ４０１では、ディスパッチャ１４５が制御スレッド１４４を介してアプリ情報取得スレッド１４１に対して、インストール前、あるいは、インストール済みのアプリに対するアプリ情報取得処理を要求する。アプリ情報スレッド１４１は、後述する図６におけるアプリ情報取得処理を行って、アプリ情報ファイル２０１を生成する。
【００４７】
また、上記ステップＳ４０１では、生成されたアプリ情報ファイル２０１から制御スレッド１４４がアプリ情報を読み出して、オペレーションパネル１０５に表示する操作画面を生成して、画面表示が行われる（ステップＳ４０２）。この表示画面は、コピーされたアプリに関するアプリ名、バージョン、リソース等の情報を併記して表示するとともに、選択画面に沿ってユーザが選択していくだけで、インストールの可否やインストール不可能になった場合の状況等が画面表示により理解できるようになっている。ユーザは、その画面表示に従って選択処理を行う。
【００４８】
全ての項目についてユーザの選択処理が行われた後は、ステップＳ４０３において、ユーザ操作待機の後（ステップＳ４０３）、ユーザ要求の有無が判断される（ステップＳ４０４）。ここでは、ユーザの要求としては、アプリのインストール要求か、アンインストール要求のいずれかである。ユーザ要求がインストールで、許可されるならば、図４に示すＮＶＲＡＭ１０４に対して登録処理が行われる（ステップＳ４０５）。また、ユーザ要求がアンインストールであるならば、図４に示すＮＶＲＡＭ１０４からアプリ情報を削除することによってアンインストールされることになる（ステップＳ４０６）。
【００４９】
図６は、図５におけるアプリ情報取得処理動作を詳細に説明したものである。インストール前あるいは、起動前のアプリに対してはそのままではアプリ情報を取得することができないため、ＶＡＳ１４０は、情報取得対象のアプリを仮起動させ（ステップＳ５０１）、プロセス間通信により、所望の情報を要求することでアプリ情報を取得することができる。本実施の形態では、アプリ情報の一元管理が可能なプロダクトＩＤを要求してこれを取得すると（ステップＳ５０２）、ＮＶＲＡＭ１０４を参照することにより、そのアプリが登録済みのアプリか否かがわかる（ステップＳ５０３）。
【００５０】
ＮＶＲＡＭ１０４に登録済みでない場合は、プロダクト情報ファイルの有無が判断され（ステップＳ５０４）、プロダクト情報がない場合は、アプリよりプロセス間通信を使って各種情報を取得するようにする（ステップＳ５０５）。これにより、プロダクト情報ファイルを生成した後（ステップＳ５０６）、インストール判定処理が行われる（ステップＳ５０７）。そして、その判定処理結果をプロダクト情報に反映させるようにする（ステップＳ５０８）。インストール判定は、例えば、アプリから取得した使用リソース情報と、システムが有するリソース情報を比較することにより行う。
【００５１】
そして、ステップＳ５０９では、その判定結果に基づいて、インストールの可否が判断される。また、上記ステップＳ５０４で、プロダクト情報ファイルが有る場合は、プロダクト情報よりアプリ情報取得がなされ（ステップＳ５１０）、インストール時の判定情報取得が行われた後（ステップＳ５１１）、上記したステップＳ５０９において、インストールの可否が判断される。
【００５２】
ステップＳ５０９において、インストール可能であれば、インストール可能フラグの設定を行い（ステップＳ５１２）、アプリ情報テーブルへの書き込みが行われる（ステップＳ５１６）。また、インストールが不可の場合は、インストール不可フラグの設定が行われて（ステップＳ５１３）、アプリ情報テーブルへの書き込みが行われる（ステップＳ５１６）。さらに、上記したステップＳ５０３において、ＮＶＲＡＭ１０４にプロダクトＩＤが登録されているアプリの場合は、ＮＶＲＡＭ１０４よりアプリ情報取得が行われ（ステップＳ５１４）、インストール済みのフラグの設定が行われて（ステップＳ５１５）、アプリ情報テーブルへの書き込みが行われる（ステップＳ５１６）。
【００５３】
そして、全アプリに対する処理が終了していなければ、再び上記ステップＳ５０１に戻って、全アプリに対する処理が終了するまで、上記処理が繰り返される。
【００５４】
このように、本実施の形態の複合機１００では、新規アプリをインストール処理する場合に、仮想アプリケーションサービス１４０のアプリ情報取得スレッド１４１を使って、全アプリに対してアプリ情報の取得が行われるため、この取得したアプリ情報に基づいて、インストールした後に当該アプリを起動した場合の動作状況を正確に把握することが可能となり、インストール後に起動させた場合でも、複合機の動作が不安定になったり、動作が停止するような状況を防止することが可能となる。
【００５５】
次に、アプリケーションの仮起動についてより詳しく説明する。仮起動は、複合機のリソースを使用することになるアプリの通常起動（アプリ本来の機能を奏するための起動を通常起動と呼ぶ）とは別の起動である。仮起動では、アプリはアプリ本来の動作に必要なメモリ確保等のリソース取得を行わず、ＶＡＳとのプロセス間通信処理のみを行う。そして、アプリは、ＶＡＳに情報を提供する。仮起動したアプリのプロセスは、ＶＡＳとの通信処理が終了すれば終了する。また、アプリの仮起動に関する機能は、アプリ本来の機能によらず、本実施の形態における複合機で動作するアプリに共通する機能である。従って、例えば、ベンダーがアプリを開発する場合、ベンダーに、仮起動の機能を含むプログラムテンプレートを提供し、そのプログラムテンプレートを用いてベンダーが複合機用のアプリを開発することができる。なお、上記のアプリ情報は、例えば、ベンダーが、アプリ情報を記録したインクルードファイルを作成し、アプリのコンパイル時にインクルードすることにより、アプリの実行ファイル中に含めることができる。
【００５６】
アプリが仮起動の機能を持つことにより、通常起動をすることなくＶＡＳとの通信によりＶＡＳにアプリ情報を提供でき、ＶＡＳがインストール可否のチェックを行うことができる。
【００５７】
図７に、仮起動の機能を含むアプリのプログラム記述（メイン関数）の概要を示す。なお、この記述を上記のプログラムテンプレートとして提供する。
【００５８】
図７に示すように、このプログラム記述は、アプリケーションを仮起動するか通常起動するかを引数（−ｖ）によって指定する。これにより、ＶＡＳがアプリを起動する際に、通常起動と仮起動とを容易に使い分けることができる。すなわち、引数（−ｖ）を使って仮起動を指定すると、仮起動が実行され、アプリ情報提供処理がなされる。また、仮起動が指定されていない場合は、通常起動を行って、アプリ本来の動作を行う。
【００５９】
なお、上記の実施の形態では、ＶＡＳがアプリから情報を取得してインストールの可否を判断し、アプリの登録を行っていたが、図８に示すシーケンスのように、インストール可であるとＶＡＳが判断した後に、ＶＡＳからアプリに対して、アプリのインストールを開始してよいか否かの問い合わせをし（ステップＳ６０１）、アプリがその問い合わせに対してインストール可の通知をＶＡＳに返した場合に（ステップＳ６０２）、ＶＡＳがアプリの登録をするようにしてもよい（ステップＳ６０３）。
【００６０】
なお、ステップＳ６０１とステップＳ６０２の間で、アプリがＶＡＳからシステム情報（リソース情報あるいは機器構成情報等）を取得し、その情報に基づき、インストールできるか否かをアプリが判断するようにしてもよい。
【００６１】
なお、ＶＡＳがアプリ情報を取得する方法は、アプリの実行ファイル中に含められたアプリ情報を取得する方法以外にもある。その方法は、例えば、アプリ情報をアプリとは別のファイルに作成しておき、そのファイルの内容をＶＡＳが読み出すというものである。そのファイルを複合機の外部のサーバに備えて置くことにより、ネットワーク経由でアプリ情報を取得することもできる。
【００６２】
以下、本明細書に開示される構成を例示的に列挙する。
（第１項）
アプリケーションをインストール可能に構成された画像形成装置であって、
アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得手段を備えたことを特徴とする画像形成装置。
【００６３】
本構成によれば、インストールが可能なアプリケーションか否かを正確な判断を下すことができる。
（第２項）
前記アプリケーション情報取得手段は、前記画像形成装置におけるアプリケーションが自ら保有するアプリケーション情報を取得することを特徴とする第１項に記載の画像形成装置。
【００６４】
本構成によれば、アプリケーション情報取得手段は、アプリケーションから直接正確な情報を取得することができる。
（第３項）
前記アプリケーションが自ら保有するアプリケーション情報は、当該アプリケーションの実行ファイル中に含まれる情報であることを特徴とする第２項に記載の画像形成装置。
【００６５】
これにより、アプリケーションから直接正確な情報を取得することができる。
（第４項）
前記アプリケーション情報取得手段は、前記画像形成装置におけるアプリケーションとは別のファイルから前記アプリケーション情報を取得することを特徴とする第１項に記載の画像形成装置。
【００６６】
本構成により、例えば、ネットワーク経由でアプリケーション情報を取得することが可能となる。
【００６７】
なお、第３項に記載の画像形成装置において、前記アプリケーション情報取得手段は、前記アプリケーションを仮起動させることにより、前記アプリケーション情報を取得することとしてもよい。
【００６８】
本構成によれば、通常起動前のアプリケーションに対しても、正確なアプリ情報を取得することができる。
【００６９】
また、上記画像形成装置において、前記アプリケーション情報取得手段は、仮起動させたアプリケーションからプロセス間通信により前記アプリケーション情報を取得することとしてもよい。
【００７０】
本構成により、通常起動前のアプリケーションに対してプロセス間通信により、正確なアプリ情報を取得することができる。
【００７１】
また、上記画像形成装置において、前記アプリケーションは、前記アプリケーション情報取得手段からの要求に基づき、仮起動するか通常起動するかを判断するステップと、仮起動の場合に、前記アプリケーション情報取得手段と通信することにより、アプリケーション情報を前記アプリケーション情報取得手段に提供するステップを前記画像形成装置に実行させることとしてもよい。
【００７２】
本構成によれば、アプリケーションが、アプリケーション情報取得手段からの要求に基づき仮起動するか通常起動するかを判断する手段を備えるので、仮起動するか通常起動するかを選択することができる。
（第５項）
前記アプリケーション情報取得手段が取得したアプリケーション情報を記憶する記憶手段をさらに備えたことを特徴とする第１項に記載の画像形成装置。
【００７３】
本構成によれば、アプリ情報取得手段が取得したアプリ情報を記憶手段に記憶するようにしたため、一旦取得したアプリ情報を必要に応じていつでも取り出せることから、データベースのように使用することが可能となり、アプリ情報取得に要する時間を短縮して、処理の迅速化が図れる。
【００７４】
また、上記画像形成装置において、前記記憶手段は、ハードディスク、不揮発性メモリ、および、ＳＤカード等のメモリカードの少なくとも一つであって、前記アプリ情報取得手段は、それらの記憶媒体に記憶された情報を読み出すことによりアプリ情報を取得することとしてもよい。
【００７５】
本構成によれば、種々の記憶媒体をアプリ情報の記憶手段として利用することが可能となり、状況に応じて記憶媒体を使い分けることができる。
（第６項）
前記アプリケーション情報取得手段が取得するアプリケーション情報は、アプリケーションに固有のプロダクトＩＤを含むことを特徴とする第１〜５項のいずれか一つに記載の画像形成装置。
【００７６】
本構成によれば、アプリケーション情報のやり取りをこのプロダクトＩＤに基づいて、簡易かつ迅速に行うことができるとともに、アプリ情報が一元管理できることから、情報の信頼性を向上させることができる。
（第７項）
前記アプリケーション情報は、前記プロダクトＩＤに加えて、対応するアプリケーションのベンダー名とアプリケーション名、バージョン情報と使用リソース情報の少なくとも一方を含むことを特徴とする第６項に記載の画像形成装置。
【００７７】
本構成によれば、アプリケーションの起動時に問題となるバージョンの整合性やリソース不足よる動作の不安定要因の有無を正確に判断することができる。
【００７８】
また、上記画像形成装置において、前記記憶手段は、インストールを可能なアプリケーションのプロダクトＩＤを記憶し、判断対象となるアプリケーションのプロダクトＩＤがその記憶手段に記憶されているか否かによって、インストール可能なアプリケーションか否かを自動的に判断することとしてもよい。
【００７９】
本構成によれば、簡易な構成により迅速かつ正確にインストール可能なアプリケーションか否かを自動判断することができる。
【００８０】
また、上記画像形成装置が画像形成処理で使用されるハードウェア資源と、ハードウェア資源の制御を行うコントロールサービスと、コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有し、仮想アプリケーションサービスが前記アプリケーション情報取得手段を含むこととしてもよい。
（第８項）
アプリケーションをインストール可能に構成された画像形成装置において使用される方法であって、
アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得ステップを有することを特徴とする方法。
（第９項）
前記アプリケーション情報取得ステップにおいて、前記画像形成装置は、前記画像形成装置におけるアプリケーションが自ら保有するアプリケーション情報を取得することを特徴とする第８項に記載の方法。
（第１０項）
前記アプリケーションが自ら保有するアプリケーション情報は、当該アプリケーションの実行ファイル中に含まれる情報であることを特徴とする第９項に記載の方法。
（第１１項）
前記アプリケーション情報取得ステップにおいて、前記画像形成装置は、前記画像形成装置におけるアプリケーションとは別のファイルから前記アプリケーション情報を取得することを特徴とする第８項に記載の方法。
（第１２項）
前記アプリケーション情報を記憶手段に記憶する記憶ステップをさらに有することを特徴とする第８項に記載の方法。
（第１３項）
前記アプリケーション情報は、アプリケーションに固有のプロダクトＩＤを含むことを特徴とする第８〜１２項のいずれか一つに記載の方法。
（第１４項）
前記アプリケーション情報は、前記プロダクトＩＤに加えて、対応するアプリケーションのベンダー名とアプリケーション名、バージョン情報と使用リソース情報の少なくとも一方を含むことを特徴とする第１３項に記載の方法。
【００８１】
また、本発明の一実施形態によれば、アプリケーションをインストール可能に構成された画像形成装置を、アプリケーションを前記画像形成装置にインストールすることが可能か否かを判断するために使用されるアプリケーション情報の取得を行うアプリケーション情報取得手段として機能させるプログラムを提供できる。更に、当該プログラムを記録したコンピュータ読み取り可能な記録媒体を提供できる。
【００８２】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００８３】
１００  複合機
１０１  白黒レーザプリンタ
１０２  カラーレーザプリンタ
１０４  ＮＶＲＡＭ 
１０５  オペレーションパネル
１１０  ソフトウェア群
１１１  プリンタアプリ
１１２  コピーアプリ
１１３  ファックスアプリ
１１４  スキャナアプリ
１１５  ネットファイルアプリ
１１６  工程検査アプリ
１１７，１１８  新規アプリ
１２０  プラットホーム
１２１  汎用ＯＳ 
１２２  ＳＣＳ 
１２３  ＳＲＭ 
１２４  ＥＣＳ 
１２５  ＭＣＳ 
１２６  ＯＣＳ 
１２７  ＦＣＳ 
１２８  ＮＣＳ 
１３０  アプリケーション
１４０，８４１〜８４８  仮想アプリケーションサービス（ＶＡＳ） 
１４１  アプリ情報取得スレッド
１４２  画面表示スレッド
１４３  アプリチェックスレッド
１４４  制御スレッド
１４５  ディスパッチャ
１５０  コントロールサービス層
２００  ハードディスク（ＨＤ） 
２０１  アプリ情報ファイル
【先行技術文献】
【特許文献】
【００８４】
【特許文献１】特開平１１−１１２７０１号公報
【図１】
2011030272.tif 000003
【図２】
2011030272.tif 000004
【図３】
2011030272.tif 000005
【図４】
2011030272.tif 000006
【図５】
2011030272.tif 000007
【図６】
2011030272.tif 000008
【図７】
2011030272.tif 000009
【図８】
2011030272.tif 000010