(57)【要約】【課題】異なるプラットフォーム用プログラムへの対応が容易であり、開発効率が高く且つ拡張性が高い情報処理装置、画像形成装置及びプログラムインストール方法を提供することを目的とする。【解決手段】異なるプラットフォーム用プログラムをインストールして実行可能にする情報処理装置１であって、異なるプラットフォーム毎に設けられ、プラットフォーム間の差異を吸収する互換機構部１１，１２を有し、互換機構部１１，１２はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部２３，２４と、プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部２５，２６とを有することにより上記課題を解決する。【選択図】  図７
2010181976.tif 000002
【特許請求の範囲】
【請求項１】
異なるプラットフォーム用プログラムをインストールして実行可能にする情報処理装置であって、
異なるプラットフォーム用プログラムがインストール処理と実行処理とで共通に利用する共通部と、
異なるプラットフォーム毎に設けられ、プラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する互換機構部と
を有し、
前記互換機構部はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部と、
プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部と
を有し、
前記インストール仕様定義部は前記共通部からインストール処理要求のあったプラットフォーム用プログラムが自プラットフォームに対応するときに、インストール処理要求のあったプラットフォーム用プログラムのインストール処理を行い、
前記インターフェース仕様定義部は前記プラットフォーム用プログラムから実行処理のために呼び出された固有インターフェースを、前記共通部が提供する共通インターフェースに変換し、前記共通部の提供する共通インターフェースを呼び出して前記共通部に前記共通インターフェースに対応した機能を実行させる情報処理装置。
【請求項２】
前記共通部は、特定のプラットフォームの互換機構部に代わってプラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する請求項１記載の情報処理装置。
【請求項３】
前記共通部は、インストール処理要求が発生すると、異なるプラットフォーム毎に設けられた前記互換機構部に対して順次、インストール処理要求を行う請求項１又は２記載の情報処理装置。
【請求項４】
前記互換機構部は複数の機能に対応した複数のインターフェース仕様定義部を有する請求項１乃至３何れか一項記載の情報処理装置。
【請求項５】
前記共通部は前記互換機構部の登録用インターフェースを有し、前記互換機構部から前記登録用インターフェースを利用した登録を受け、現在搭載されているプラットフォーム及び互換機構部を動的に識別する請求項１乃至４何れか一項記載の情報処理装置。
【請求項６】
前記インストール仕様定義部は、プラットフォーム用プログラムが正当であるかを判定する正当性チェックを行う請求項１乃至５何れか一項記載の情報処理装置。
【請求項７】
前記インストール仕様定義部は、異なるプラットフォーム間で発生するインストールメディアの構成の差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項８】
前記インストール仕様定義部は、異なるプラットフォーム間で発生するインストールメディアのプログラム格納方法の差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項９】
前記インストール仕様定義部は、異なるプラットフォーム間で発生するインストールプログラムのプログラム種別情報の差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項１０】
前記インストール仕様定義部は、異なるプラットフォーム間で発生する暗号技術の差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項１１】
前記インターフェース仕様定義部は、異なるプラットフォーム間で発生するＩ／Ｆの粒度の差異及び指定するパラメータの差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項１２】
前記インターフェース仕様定義部は、異なるプラットフォーム間で発生する機能の差異を吸収する請求項１乃至６何れか一項記載の情報処理装置。
【請求項１３】
プロッタ，スキャナの少なくとも一方を有し、異なるプラットフォーム用プログラムをインストールして実行可能にする画像形成装置であって、
異なるプラットフォーム用プログラムがインストール処理と実行処理とで共通に利用する共通部と、
異なるプラットフォーム毎に設けられ、プラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する互換機構部と
を有し、
前記互換機構部はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部と、
プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部と
を有し、
前記インストール仕様定義部は前記共通部からインストール処理要求のあったプラットフォーム用プログラムが自プラットフォームに対応するときに、インストール処理要求のあったプラットフォーム用プログラムのインストール処理を行い、
前記インターフェース仕様定義部は前記プラットフォーム用プログラムから実行処理のために呼び出された固有インターフェースを、前記共通部が提供する共通インターフェースに変換し、前記共通部の提供する共通インターフェースを呼び出して前記共通部に前記共通インターフェースに対応した機能を実行させる画像形成装置。
【請求項１４】
異なるプラットフォーム用プログラムをインストールして実行可能にする情報処理装置のプログラムインストール方法であって、
前記情報処理装置は、
異なるプラットフォーム用プログラムがインストール処理と実行処理とで共通に利用する共通部と、
異なるプラットフォーム毎に設けられ、プラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する互換機構部と
を有し、
前記互換機構部はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部と、
プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部と
を有し、
前記インストール仕様定義部が、前記共通部からインストール処理要求のあったプラットフォーム用プログラムが自プラットフォームに対応するときに、インストール処理要求のあったプラットフォーム用プログラムのインストール処理を行うステップと、
前記インターフェース仕様定義部が、前記プラットフォーム用プログラムから実行処理のために呼び出された固有インターフェースを、前記共通部が提供する共通インターフェースに変換し、前記共通部の提供する共通インターフェースを呼び出して前記共通部に前記共通インターフェースに対応した機能を実行させるステップと
を有するプログラムインストール方法。
【請求項１５】
異なるプラットフォーム用プログラムをインストールして実行可能にする画像形成装置のプログラムインストール方法であって、
前記画像形成装置は、
異なるプラットフォーム用プログラムがインストール処理と実行処理とで共通に利用する共通部と、
異なるプラットフォーム毎に設けられ、プラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する互換機構部と
を有し、
前記互換機構部はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部と、
プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部と
を有し、
前記インストール仕様定義部が、前記共通部からインストール処理要求のあったプラットフォーム用プログラムが自プラットフォームに対応するときに、インストール処理要求のあったプラットフォーム用プログラムのインストール処理を行うステップと、
前記インターフェース仕様定義部が、前記プラットフォーム用プログラムから実行処理のために呼び出された固有インターフェースを、前記共通部が提供する共通インターフェースに変換し、前記共通部の提供する共通インターフェースを呼び出して前記共通部に前記共通インターフェースに対応した機能を実行させるステップと
を有するプログラムインストール方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置及びプログラムインストール方法に係り、特に異なるプラットフォーム用プログラムをインストールする情報処理装置、画像形成装置及びプログラムインストール方法に関する。
【背景技術】
【０００２】
従来、プログラム開発の現場では、新しいプラットフォームの開発が完了すると古いプラットフォームの開発が打ち切られることが多かった。つまり、新しいプラットフォームの開発完了以降、古いプラットフォームのバージョンアップは発生しないことが多い。
【０００３】
一方、新しいプラットフォームの開発に際し、効果を限定的に検証するためのパイロットプロジェクトを立ち上げ、プロトタイプを作成することで有効性を確認する手法は、プロジェクト成功のために有効であることが認知されはじめた。
【０００４】
パイロットプロジェクトによる効果確認から本格展開までには、ある程度時間がかかることも多い。このため、新しいプラットフォームをパイロットプロジェクトとして開発している最中も、古いプラットフォームの開発は並行して実施し、市場に価値を提供し続ける必要がある。
【０００５】
古いプラットフォームとの並行開発は、新しいプラットフォームの開発にとって大きな課題が発生する。なぜなら、古いプラットフォーム用に開発されたプログラムを、新しいプラットフォーム上でも動作させてほしいという、いわゆる上位互換性を求められることが多いからである。
【０００６】
両方のプラットフォームを並行で開発してしまうと、古いプラットフォームで発生したインターフェース変更に対して、新しいプラットフォームは逐次追従する必要が発生してしまう。このため、追従コストの大きさにより、新しいプラットフォームの開発効率は大きく低下してしまう。従来は、フィルタフレームワークにより新しいソフトウェアの開発負荷を減少させる技術が知られていた（例えば特許文献１参照）。
【０００７】
なお、新しいプラットフォームの開発効率が大きく低下してしまう理由は古いプラットフォームとの間で、差異の発生する箇所が多数存在するためである。プラットフォーム間ではインストールメディアのディレクトリ構成が異なるため、インストール方法の差異が存在する。また、プラットフォーム間ではプログラムパッケージを構成するファイルの形式が異なり、又、プログラムの正当性検証方法が異なるため、プログラム動作仕様の差異が存在する。
【０００８】
このように、異なるプラットフォーム間では同一機能でもインターフェース仕様（使い方）が異なり、又、含まれている機能に差異があるため、そのままで同一ソフトウェアが動作しなかった。従来はバージョンの大小関係からプラットフォームに関する互換性を判別する技術が知られていた（例えば特許文献２参照）。
【０００９】
図１は異なるプラットフォーム用プログラムをインストールする従来の情報処理装置の一例の構成図である。図１の情報処理装置１は、代表的なインストール方法として、インストールプログラムが格納されたインストールサーバ２，３からインストールプログラムをダウンロードしたり、ＳＤカードなどのインストールメディア４，５を情報処理装置１に挿入したりすることでインストールを実施する。ここでは一例として、インストールメディア４，５を用いた方法について説明するが、インストールサーバ２，３を用いた方法も同様である。
【００１０】
インストールメディア４，５に格納されているインストールプログラムは、情報処理装置１のプラットフォームソフトウェア（共通部）１０のインストール処理部２１を経由して情報処理装置内部にプラットフォームＡ用プログラムＸ又はプラットフォームＢ用プログラムＹとしてインストールされる。プラットフォームＡ用プログラムＸ又はプラットフォームＢ用プログラムＹは共通部１０の機能提供部２２を通して実行されていた。
【００１１】
この際、インストール処理部２１には異なるプラットフォーム間のインストール仕様の差異を吸収するための処理が全て含まれている。また、機能提供部２２は異なるプラットフォーム間のインターフェース仕様（Ｉ／Ｆ仕様）の差異を吸収するための処理が全て含まれている。具体的には、機能提供部２２は異なるプラットフォーム用Ｉ／Ｆの差分を吸収するために、想定される全てのプラットフォーム用Ｉ／Ｆを提供することで、プラットフォーム用Ｉ／Ｆの互換処理を実現していた。
【００１２】
図２は異なるプラットフォーム用プログラムをインストールする従来の情報処理装置の一例のシーケンス図である。図３は異なるプラットフォーム用プログラムを実行する従来の情報処理装置の一例のシーケンス図である。
【００１３】
図２では、ステップＳ１に進み、プラットフォームＡ用メディアであるインストールメディア４が情報処理装置１のスロット等に挿入される。インストール処理部２１はインストール要求イベント（メディア挿入）を受け取る。
【００１４】
ステップＳ２に進み、インストール処理部２１はインストールメディア４に対し、インストールプログラムの有無チェックを行う。インストールメディア４にインストールプログラムが有れば、インストール処理部２１はステップＳ３に進み、インストールメディア４からインストールプログラムを読み出す。
【００１５】
ステップＳ４に進み、インストール処理部２１は読み出したインストールプログラムのプログラム種別情報（ヘッダファイルなど）を解析することによるプログラム種類の識別を行う。ステップＳ５に進み、インストール処理部２１は読み出したインストールプログラムを例えばハードディスク装置などの補助記憶装置中のプログラム格納エリアに格納する。ステップＳ６に進み、インストール処理部２１はプログラム格納エリアに格納したインストールプログラムを情報処理装置１内で有効化することで、プラットフォームＡ用プログラムＸを生成する。
【００１６】
図３では、ステップＳ１１に進み、プラットフォームＡ用プログラムＸが、プログラム実行要求イベントを受け取る。ステップＳ１２に進み、プラットフォームＡ用プログラムＸは機能提供部２２に対してＩ／Ｆ呼び出しを行う。ステップＳ１３に進み、機能提供部２２はプラットフォームＡ用プログラムＸから呼び出されたＩ／Ｆに対応した機能を実行する。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
従来の情報処理装置１は新しいプラットフォームに対応するため、インストール処理部２１及び機能提供部２２全体を修正して、プラットフォームＡ，Ｂ間のインストール仕様及びＩ／Ｆ仕様の差異を吸収する必要があり、開発効率が低いという問題があった。
【００１８】
例えばインストール処理部２１及び機能提供部２２に特定のプラットフォームに依存した部分を設けてしまうと、開発効率は上がる可能性がある。しかし、インストール処理部２１及び機能提供部２２に特定のプラットフォームに依存した部分を設けてしまうと、その後の拡張性が低下する懸念があった。
【００１９】
なお、特許文献１はソフトウェアの拡張方法が述べられているもので、ソフトウェアの互換を維持する仕組みへの応用が考慮されていない。また、特許文献１は、述べられているソフトウェアの拡張方法もデータ変換処理に限定されており、インストールやＩ／Ｆ仕様など、互換を実現するために必要な他の要素への対応が考慮されていない。
【００２０】
特許文献２はバージョンの大小関係から互換性を判別する仕組みにより、同一プラットフォームに関する互換性比較を行うものである。特許文献２は複数プラットフォームに関する互換性が考慮されておらず、比較方法のみが記述されており、互換を取る方法に関して言及されていない。
【００２１】
本発明は、上記の点に鑑みなされたもので、異なるプラットフォーム用プログラムへの対応が容易であり、開発効率が高く且つ拡張性が高い情報処理装置、画像形成装置及びプログラムインストール方法を提供することを目的とする。
【課題を解決するための手段】
【００２２】
上記課題を解決するため、本発明は、異なるプラットフォーム用プログラムをインストールして実行可能にする情報処理装置であって、異なるプラットフォーム用プログラムがインストール処理と実行処理とで共通に利用する共通部と、異なるプラットフォーム毎に設けられ、プラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収する互換機構部とを有し、前記互換機構部はプラットフォーム間のインストール仕様の差異を吸収するインストール仕様定義部と、プラットフォーム間のインターフェース仕様の差異を吸収するインターフェース仕様定義部とを有し、前記インストール仕様定義部は前記共通部からインストール処理要求のあったプラットフォーム用プログラムが自プラットフォームに対応するときに、インストール処理要求のあったプラットフォーム用プログラムのインストール処理を行い、前記インターフェース仕様定義部は前記プラットフォーム用プログラムから実行処理のために呼び出された固有インターフェースを、前記共通部が提供する共通インターフェースに変換し、前記共通部の提供する共通インターフェースを呼び出して前記共通部に前記共通インターフェースに対応した機能を実行させることを特徴とする。
【００２３】
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
【発明の効果】
【００２４】
本発明によれば、異なるプラットフォーム用プログラムへの対応が容易であり、開発効率が高く且つ拡張性が高い情報処理装置、画像形成装置及びプログラムインストール方法を提供可能である。
【図面の簡単な説明】
【００２５】
【図１】異なるプラットフォーム用プログラムをインストールする従来の情報処理装置の一例の構成図である。
【図２】異なるプラットフォーム用プログラムをインストールする従来の情報処理装置の一例のシーケンス図である。
【図３】異なるプラットフォーム用プログラムを実行する従来の情報処理装置の一例のシーケンス図である。
【図４】コンピュータシステムの一例のハードウェア構成図である。
【図５】複合機の一例のハードウェア構成図である。
【図６】複合機の一例のソフトウェア構成図である。
【図７】異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の一例の構成図である。
【図８】異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の一例のシーケンス図である。
【図９】異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の一例のシーケンス図である。
【図１０】本発明の情報処理装置におけるインストール処理部とプラットフォームＡインストール仕様定義部とプラットフォームＢインストール仕様定義部との詳細を説明する為の説明図である。
【図１１】本発明の情報処理装置におけるプラットフォーム個別プログラムとプラットフォームＡＩ／Ｆ仕様定義部と機能提供部との詳細を説明する為の説明図である。
【図１２】異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。
【図１３】異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の他の例のシーケンス図である。
【図１４】異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の他の例のシーケンス図である。
【図１５】異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。
【図１６】異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。
【図１７】異なるプラットフォーム間で発生するインストールメディアの構成の差異を表した説明図である。
【図１８】異なるプラットフォーム間で発生するインストールメディアのプログラム格納方法の差異を表した説明図である。
【図１９】異なるプラットフォーム間で発生するインストールプログラムのプログラム種別情報の差異を表した説明図である。
【図２０】異なるプラットフォーム間で発生する暗号技術の差異を表した説明図である。
【図２１】異なるプラットフォーム間で発生するＩ／Ｆの差異を表した説明図である。
【図２２】異なるプラットフォーム間で発生する機能の差異を表した説明図である。
【発明を実施するための形態】
【００２６】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では情報処理装置の一例としてサーバ装置やパーソナルコンピュータなどのコンピュータシステム、画像形成装置の一例として複合機（ＭＦＰ）を例に説明するが、サーバ装置やパーソナルコンピュータなどのコンピュータシステム又は複合機に限定するものではない。本発明は、プラットフォーム型の機器全般に適用可能である。
【００２７】
図４は、コンピュータシステムの一例のハードウェア構成図である。コンピュータシステム３０は、それぞれバスＢで相互に接続されている入力装置３１，出力装置３２，ドライブ装置３３，補助記憶装置３４，主記憶装置３５，演算処理装置３６およびインターフェース装置３７を含む。
【００２８】
キーボードやマウスなどの入力装置３１は各種信号を入力するために用いられる。出力装置３２はディスプレイ装置などであり、各種ウインドウやデータ等を表示するために用いられる。モデム，ＬＡＮカードなどのインターフェース装置３７は、ネットワークに接続する為に用いられる。
【００２９】
本実施例のプラットフォーム互換機構を実現するプラットフォーム互換機構プログラムはコンピュータシステム３０を制御する各種プログラムの少なくとも一部である。プラットフォーム互換機構プログラムは例えば記録媒体３８の配布やネットワークからのダウンロードなどによって提供される。プラットフォーム互換機構プログラムを記録した記録媒体３８は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３０】
また、プラットフォーム互換機構プログラムを記録した記録媒体３８がドライブ装置３３にセットされると、プラットフォーム互換機構プログラムは記録媒体３８からドライブ装置３３を介して補助記憶装置３４にインストールされる。ネットワークからダウンロードされたプラットフォーム互換機構プログラムは、インターフェース装置３７を介して補助記憶装置３４にインストールされる。
【００３１】
補助記憶装置３４はインストールされたプラットフォーム互換機構プログラムを格納すると共に、必要なファイル，データ等を格納する。主記憶装置３５は、プラットフォーム互換機構プログラムの起動時に補助記憶装置３４からプラットフォーム互換機構プログラムを読み出して格納する。そして、演算処理装置３６は主記憶装置３５に格納されたプラットフォーム互換機構プログラムに従って、後述するような各種処理を実現している。なお、後述の処理ブロックは図４のコンピュータシステム３０の場合、演算処理装置３６がプラットフォーム互換機構プログラム等を実行することにより実現されるものである。
【００３２】
図５は、複合機の一例のハードウェア構成図である。複合機５０は、大きく分けて、コントローラ５１と、操作部５２と、ＦＡＸ制御ユニット５３と、プロッタ５４と、スキャナ５５と、その他ハードウェアリソース５６とを有し、画像データの入出力機能を複合して有する画像形成装置である。
【００３３】
コントローラ５１は、制御装置であるＣＰＵ６１と、プロセッサ用の作業メモリとして機能するＲＡＭ６２と、後述する各種ローカルインターフェースとがＮＢ（North Bridge）６３を介して接続されている。また、ＮＢ６３は、特定用途向け制御回路として機能するＡＳＩＣ６４とも接続されており、ＣＰＵ６１の制御をＡＳＩＣ６４に伝える。ＡＳＩＣ６４は、プロッタ５４等の各種ハードウェアと接続される他、複合機５０の不揮発性の記憶手段として機能するＨＤＤ６５と接続される。なお、ＡＳＩＣ６４は、回路用の作業メモリとして機能するＲＡＭ６６との接続を有している。
【００３４】
コントローラ５１は、各種ローカルインターフェースを備え、接続される各種機器又はネットワークと通信を行う。ローカルインターフェースとしては、シリアルバス６７，ＮＩＣ（Network Interface Card）６８，ＵＳＢ（Universal Serial Bus）  Ｉ／Ｆ６９，ＵＳＢケーブルを介してＩＣカードＲ／Ｗ装置５７と接続されるＵＳＢホスト７０、メモリカードＩ／Ｆ７１等であり、ＰＣＩ−ＢＵＳ７２を介して接続されている。なお、ローカルインターフェースは、上記の例に限定されることはなく多様なインターフェースでも対応可能である。また、接続の態様はＰＣＩ−ＢＵＳ７２に限定されず、ＰＣＩ−Ｅｘｐｒｅｓｓ等でもよい。また、ＩＣカードＲ／Ｗ装置５７はＩＣカード５８に記録されているデータを読み出し、又はＩＣカード５８へデータを記録する。
【００３５】
ＨＤＤ６５には、複合機５０を制御するプログラムやアプリケーション等のソフトウェアが格納されている。ＨＤＤ６５に格納されているソフトウェアは、ＣＰＵ６１により読み出され、ＲＡＭ６２上に展開される。ＣＰＵ６１はＲＡＭ６２上に展開されたソフトウェアに従って、後述するような各種処理を実現している。なお、後述の処理ブロックは図５の複合機５０の場合、ＣＰＵ６１がプラットフォーム互換機構プログラム等を実行することにより実現されるものである。
【００３６】
図６は複合機の一例のソフトウェア構成図である。図６の複合機５０は、アプリケーションとして、コピーアプリケーション８１，ファクスアプリケーション８２，プリンタアプリケーション８３，Ｗｅｂアプリケーション８４を有する。
【００３７】
また、アプリケーションプログラムインターフェース（ＡＰＩ）８５は、アプリケーションと共通システムサービスとの間の通信を行うためのものである。共通システムサービスは、アプリケーションに対して共通に利用できるサービスを提供するためのモジュール群である。共通システムサービスは、システム制御サービス（ＳＣＳ）８６，ファクス制御サービス（ＦＣＳ）８７，エンジン制御サービス（ＥＣＳ）８８，メモリ制御サービス（ＭＣＳ）８９，操作部制御サービス（ＯＣＳ）９０，ネットワーク制御サービス（ＮＣＳ）９１，認証制御サービス（ＣＣＳ）９２を有する。
【００３８】
また、エンジンインターフェース（エンジンＩ／Ｆ）９４は、エンジン制御ボード９５とコントローラ５１との間の通信を行うためのものである。エンジン制御ボード９５はプロッタエンジン９６，スキャナエンジン９７，その他ハードウェアリソースのエンジン９８の制御を行なうためのものである。なお、図６のソフトウェア構成図では共通システムサービスとＯＳ９３とがプラットフォームとなる。複合機５０のハードウェア構成及びソフトウェア構成は周知であるため、ここでは詳細部分についての説明を省略する。
【実施例１】
【００３９】
図７は異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の一例の構成図である。図７の情報処理装置１は、代表的なインストール方法として、インストールプログラムが格納されたインストールサーバ２，３からインストールプログラムをダウンロードしたり、ＳＤカードなどのインストールメディア４，５を情報処理装置１のメモリカードＩ／Ｆ７１等に挿入したりすることでインストールを実施する。本実施例では一例として、インストールメディア４，５を用いた方法について説明するが、インストールサーバ２，３を用いた方法も同様である。
【００４０】
図７の情報処理装置１はプラットフォームＡ互換機構１１とプラットフォームＢ互換機構１２とを、プラットフォームソフトウェア（共通部）１０から切り出して独立させている。プラットフォームＡ及びＢのインストール仕様及びＩ／Ｆ仕様の差分はプラットフォームＡ互換機構１１とプラットフォームＢ互換機構１２とで吸収する。
【００４１】
プラットフォームＡ互換機構１１はプラットフォームＡインストール仕様定義部２３とプラットフォームＡＩ／Ｆ仕様定義部２５−１とプラットフォームＡＩ／Ｆ仕様定義部２５−２とを有している。また、プラットフォームＢ互換機構１２はプラットフォームＢインストール仕様定義部２４とプラットフォームＢＩ／Ｆ仕様定義部２６−１とプラットフォームＢＩ／Ｆ仕様定義部２６−２とを有している。なお、Ｉ／Ｆ仕様定義部２５−１，２５−２，２６−１，２６−２はプラットフォームＡ，Ｂの並行開発（機能拡張）を考慮して、複数種類搭載できるように考慮されている。
【００４２】
インストールメディア４に格納されているインストールプログラムは、情報処理装置１のプラットフォームソフトウェア（共通部）１０のインストール処理部２１及びプラットフォームＡ互換機構１１のプラットフォームＡインストール仕様定義部２３を経由して情報処理装置１内部にプラットフォームＡ用プログラムＸとしてインストールされる。
【００４３】
インストールメディア５に格納されているインストールプログラムは、情報処理装置１のプラットフォームソフトウェア（共通部）１０のインストール処理部２１及びプラットフォームＢ互換機構１２のプラットフォームＢインストール仕様定義部２４を経由して情報処理装置１内部にプラットフォームＢ用プログラムＹとしてインストールされる。
【００４４】
また、プラットフォームＡ用プログラムＸはプラットフォームＡ互換機構１１のプラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２及び共通部１０の機能提供部２２を通して実行される。プラットフォームＢ用プログラムＹはプラットフォームＢ互換機構１２のプラットフォームＢＩ／Ｆ仕様定義部２６−１，２６−２及び共通部１０の機能提供部２２を通して実行される。
【００４５】
この際、プラットフォームＡインストール仕様定義部２３及びプラットフォームＢインストール仕様定義部２４には、異なるプラットフォームＡ，Ｂ間のインストール仕様の差異を吸収するための処理が全て含まれている。また、プラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２と、プラットフォームＢＩ／Ｆ仕様定義部２６−１，２６−２とには異なるプラットフォームＡ、Ｂ間のインターフェース仕様（Ｉ／Ｆ仕様）の差異を吸収するための処理が全て含まれている。
【００４６】
このように、本発明の情報処理装置１は、あるプラットフォームＡ上でインストールして実行可能なプログラムを、異なるプラットフォームＢ上でもインストールして実行可能な仕組みを提供するものである。具体的に、本発明の情報処理装置１はプラットフォームＡ向けに配布されたインストールメディア４（プラットフォームＡ上で動作するプラットフォームＡ用プログラムＸ）を、そのままプラットフォームＢのインストールメディア５としても利用できる仕組みを提供できる。本発明の情報処理装置１は、プラットフォームＡ，Ｂ毎に異なるインストール仕様やＩ／Ｆ仕様の差異に、簡単に対応する仕組みを提供できる。
【００４７】
図８は異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の一例のシーケンス図である。図８のシーケンス図は情報処理装置１がプラットフォームＡ互換機構１１を有する例を示している。
【００４８】
図８では、ステップＳ２１に進み、プラットフォームＡ用メディアであるインストールメディア４が情報処理装置１のスロット等に挿入される。インストール処理部２１はインストール要求イベント（メディア挿入）を受け取る。
【００４９】
ステップＳ２２に進み、インストール処理部２１はプラットフォームＡインストール仕様定義部２３にインストールプログラムの有無チェックを要求する。プラットフォームＡインストール仕様定義部２３はインストールメディア４に対し、インストールプログラムの有無チェックを行う。
【００５０】
インストールメディア４にインストールプログラムが有れば、プラットフォームＡインストール仕様定義部２３はステップＳ２３に進み、プログラム有りをインストール処理部２１に通知する。ステップＳ２４に進み、インストール処理部２１はプラットフォームＡインストール仕様定義部２３にインストールプログラムの取得を要求する。ステップＳ２５に進み、プラットフォームＡインストール仕様定義部２３はインストールメディア４からインストールプログラムを読み出す。
【００５１】
ステップＳ２６に進み、プラットフォームＡインストール仕様定義部２３はインストールプログラムの取得終了をインストール処理部２１に通知する。ステップＳ２７に進み、インストール処理部２１は読み出したインストールプログラムのプログラム種類の識別をプラットフォームＡインストール仕様定義部２３に要求する。
【００５２】
プラットフォームＡインストール仕様定義部２３は読み出したインストールプログラムのプログラム種別情報（ヘッダファイルなど）を解析することによるプログラム種類の識別を行う。ステップＳ２８に進み、プラットフォームＡインストール仕様定義部２３は読み出したインストールプログラムのプログラム種類の識別の結果を、インストール処理部２１に応答する。
【００５３】
ステップＳ２９に進み、インストール処理部２１は読み出したインストールプログラムの格納をプラットフォームＡインストール仕様定義部２３に要求する。プラットフォームＡインストール仕様定義部２３は読み出したインストールプログラムを例えばハードディスク装置などの補助記憶装置３４中のプログラム格納エリアに格納する。
【００５４】
ステップＳ３０に進み、プラットフォームＡインストール仕様定義部２３はプログラム格納エリアに格納したインストールプログラムを情報処理装置１内で有効化することで、プラットフォームＡ用プログラムＸを生成する。
【００５５】
図８に示すように、インストール処理部２１はインストールに関する処理を実行するわけではなく、プラットフォームＡインストール仕様定義部２３に処理を委譲することで異なるプラットフォーム用プログラムのインストールに対応している。
【００５６】
図９は異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の一例のシーケンス図である。図９のシーケンス図は情報処理装置１がプラットフォームＡ互換機構１１を有する例を示している。図９では、ステップＳ４１に進み、プラットフォームＡ用プログラムＸが、プログラム実行要求イベントを受け取る。
【００５７】
ステップＳ４２に進み、プラットフォームＡ用プログラムＸはプラットフォームＡＩ／Ｆ仕様定義部２５−１に対してプラットフォームＡのＩ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ４３に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−１はプラットフォームＡのＩ／Ｆ（固有Ｉ／Ｆ）を機能提供部２２のＩ／Ｆ（共通Ｉ／Ｆ）に変換する。
【００５８】
ステップＳ４４に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−１は機能提供部２２に対して共通Ｉ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ４５に進み、機能提供部２２はプラットフォームＡ用プログラムＸから呼び出されたプラットフォームＡのＩ／Ｆに対応した機能を実行する。
【００５９】
図９に示すように、機能提供部２２はＩ／Ｆ変換処理を実行するわけでなく、プラットフォームＡＩ／Ｆ仕様定義部２５−１にＩ／Ｆ変換処理を委譲することで異なるプラットフォーム用プログラムの実行に対応している。
【００６０】
ここで、異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置１におけるインストール処理部２１とプラットフォームＡインストール仕様定義部２３とプラットフォームＢインストール仕様定義部２４との詳細を説明する。
【００６１】
図１０は本発明の情報処理装置におけるインストール処理部とプラットフォームＡインストール仕様定義部とプラットフォームＢインストール仕様定義部との詳細を説明する為の説明図である。
【００６２】
インストール処理部２１はインストール処理のフレームワーク２７に規定されているＩ／Ｆを呼び出す。インストール処理部２１が呼び出すＩ／Ｆの実際の中身は、インストール処理個別プログラムとしてのプラットフォームＡインストール仕様定義部２３とプラットフォームＢインストール仕様定義部２４との内部に隠蔽している。
【００６３】
インストール処理のフレームワーク２７はＩ／Ｆ（器）を用意して、インストール処理部２１からの呼び出し方法を定義する。プラットフォームＡインストール仕様定義部２３とプラットフォームＢインストール仕様定義部２４はＩ／Ｆの実際の中身を実装し、プラットフォームＡ，Ｂ毎に異なる仕様差異を吸収する。
【００６４】
次に、異なるプラットフォーム用プログラムを実行する本発明の情報処理装置１におけるプラットフォーム個別プログラム２８とプラットフォームＡＩ／Ｆ仕様定義部２５−１とプラットフォームＡＩ／Ｆ仕様定義部２５−２と機能提供部２２との詳細を説明する。
【００６５】
図１１は本発明の情報処理装置におけるプラットフォーム個別プログラムとプラットフォームＡＩ／Ｆ仕様定義部と機能提供部との詳細を説明する為の説明図である。例えばプラットフォームＡの機能提供部２２が用意しているＩ／Ｆと他のプラットフォームＢの機能提供部２２が用意しているＩ／Ｆとに差異が存在する場合は、プラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２が差異を吸収する。
【００６６】
プラットフォームＡの機能提供部２２が用意しているＩ／Ｆと他のプラットフォームＢの機能提供部２２が用意しているＩ／Ｆとに差異が存在する場合の例としては、プラットフォームＢがコピーというＩ／Ｆを用意しているのに対し、プラットフォームＡがコピーを詳細化したスキャナ，プロッタというＩ／Ｆを個別に用意している場合などがある。
【００６７】
図１１の例では、プラットフォームＡ上でプラットフォーム個別プログラム２８がプラットフォームＢの用意したコピーというＩ／Ｆを呼び出すと、プラットフォームＡＩ／Ｆ仕様定義部２５−１がコピーというＩ／ＦをプラットフォームＡの用意したスキャナ，プロッタというＩ／Ｆに変換している。
【００６８】
なお、プラットフォームＡの機能提供部２２が用意するＩ／Ｆは進化するため、情報処理装置１はプラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２のように別パッケージ化することで、新たなプラットフォームＡのＩ／Ｆ仕様定義を後から追加できるようにしている。
【実施例２】
【００６９】
実施例２の情報処理装置１の構成は実施例１の情報処理装置１の構成と同様であるため説明を省略する。図１２は異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。図１２のシーケンス図は情報処理装置１がプラットフォームＡ互換機構１１，プラットフォームＢ互換機構１２を有する例を示している。
【００７０】
図１２では、ステップＳ６１に進み、プラットフォームＢ用メディアであるインストールメディア５が情報処理装置１のスロット等に挿入される。インストール処理部２１はインストール要求イベント（メディア挿入）を受け取る。
【００７１】
ステップＳ６２に進み、インストール処理部２１はプラットフォームＡインストール仕様定義部２３にインストールプログラムの有無チェックを要求する。プラットフォームＡインストール仕様定義部２３はインストールメディア５に対し、インストールプログラムの有無チェックを行う。
【００７２】
プラットフォームＡインストール仕様定義部２３はインストールメディア５にプラットフォームＡ用のインストールプログラムが無いため、ステップＳ６３に進み、プログラムなしをインストール処理部２１に通知する。
【００７３】
ステップＳ６４に進み、インストール処理部２１はプラットフォームＢインストール仕様定義部２４にインストールプログラムの有無チェックを要求する。プラットフォームＢインストール仕様定義部２４はインストールメディア５に対し、インストールプログラムの有無チェックを行う。
【００７４】
プラットフォームＢインストール仕様定義部２４はインストールメディア５にプラットフォームＢ用のインストールプログラムが有るため、ステップＳ６５に進み、プログラム有りをインストール処理部２１に通知する。
【００７５】
ステップＳ６６に進み、インストール処理部２１はプラットフォームＢインストール仕様定義部２４にインストールプログラムの取得を要求する。ステップＳ６７に進み、プラットフォームＢインストール仕様定義部２４はインストールメディア５からインストールプログラムを読み出す。
【００７６】
ステップＳ６８に進み、プラットフォームＢインストール仕様定義部２４はインストールプログラムの取得終了をインストール処理部２１に通知する。ステップＳ６９に進み、インストール処理部２１は読み出したインストールプログラムのプログラム種類の識別をプラットフォームＢインストール仕様定義部２４に要求する。
【００７７】
プラットフォームＢインストール仕様定義部２４は読み出したインストールプログラムのプログラム種別情報（ヘッダファイルなど）を解析することによるプログラム種類の識別を行う。ステップＳ７０に進み、プラットフォームＢインストール仕様定義部２４は読み出したインストールプログラムのプログラム種類の識別の結果を、インストール処理部２１に応答する。
【００７８】
ステップＳ７１に進み、インストール処理部２１は読み出したインストールプログラムの格納をプラットフォームＢインストール仕様定義部２４に要求する。プラットフォームＢインストール仕様定義部２４は読み出したインストールプログラムを補助記憶装置３４中のプログラム格納エリアに格納する。
【００７９】
ステップＳ７２に進み、プラットフォームＢインストール仕様定義部２４はプログラム格納エリアに格納したインストールプログラムを情報処理装置１内で有効化することで、プラットフォームＢ用プログラムＹを生成する。なお、図１２のシーケンス図はステップＳ６３でプログラムありと判定した場合はプラットフォームＢインストール仕様定義部２４にインストールプログラムの有無チェックを要求してもしなくてもよい。
【００８０】
図１２に示すように、インストール処理部２１はインストールに関する処理をプラットフォームＡインストール仕様定義部２３又はプラットフォームＢインストール仕様定義部２４に委譲する際、インストールプログラムの有無チェックを順に行い、プログラムありと判定したプラットフォームＡインストール仕様定義部２３又はプラットフォームＢインストール仕様定義部２４に処理を委譲する。
【００８１】
図１３は異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の他の例のシーケンス図である。図１３では、ステップＳ８１に進み、プラットフォームＢ用プログラムＹが、プログラム実行要求イベントを受け取る。
【００８２】
ステップＳ８２に進み、プラットフォームＢ用プログラムＹはプラットフォームＢＩ／Ｆ仕様定義部２６−１に対してプラットフォームＢのＩ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ８３に進み、プラットフォームＢＩ／Ｆ仕様定義部２６−１はプラットフォームＢのＩ／Ｆ（固有Ｉ／Ｆ）を機能提供部２２のＩ／Ｆ（共通Ｉ／Ｆ）に変換する。
【００８３】
ステップＳ８４に進み、プラットフォームＢＩ／Ｆ仕様定義部２６−１は機能提供部２２に対して共通Ｉ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ８５に進み、機能提供部２２はプラットフォームＢ用プログラムＹから呼び出されたプラットフォームＢのＩ／Ｆに対応した機能を実行する。
【００８４】
図１３に示すように、機能提供部２２はＩ／Ｆ変換処理を実行するわけでなく、プラットフォームＢＩ／Ｆ仕様定義部２６−１にＩ／Ｆ変換処理を委譲することで異なるプラットフォーム用プログラムの実行に対応している。
【実施例３】
【００８５】
実施例３の情報処理装置１の構成は実施例１の情報処理装置１の構成と同様であるため説明を省略する。また、実施例３の情報処理装置１の異なるプラットフォーム用プログラムをインストールする処理は実施例１又は実施例２と同様であるため説明を省略する。
【００８６】
図１４は異なるプラットフォーム用プログラムを実行する本発明の情報処理装置の他の例のシーケンス図である。図１４のシーケンス図は情報処理装置１がプラットフォームＡ互換機構１１にプラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２を有する例を示している。
【００８７】
なお、プラットフォームＡ互換機構１１はプラットフォームＡ用プログラムＸから呼び出されるＩ／Ｆの種類に応じてプラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２を有しているものとする。
【００８８】
図１４では、ステップＳ９１に進み、プラットフォームＡ用プログラムＸが、プログラム実行要求イベントを受け取る。ステップＳ９２に進み、プラットフォームＡ用プログラムＸはプラットフォームＡＩ／Ｆ仕様定義部２５−１に対して、プログラム実行要求イベントに応じたプラットフォームＡのＩ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ９３に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−１はプラットフォームＡのＩ／Ｆ（固有Ｉ／Ｆ）を機能提供部２２のＩ／Ｆ（共通Ｉ／Ｆ）に変換する。
【００８９】
ステップＳ９４に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−１は機能提供部２２に対して共通Ｉ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ９５に進み、機能提供部２２はプラットフォームＡ用プログラムＸから呼び出されたプラットフォームＡのＩ／Ｆに対応した機能を実行する。
【００９０】
ステップＳ９６に進み、プラットフォームＡ用プログラムＸはプラットフォームＡＩ／Ｆ仕様定義部２５−２に対して、プログラム実行要求イベントに応じたプラットフォームＡのＩ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ９７に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−２はプラットフォームＡのＩ／Ｆ（固有Ｉ／Ｆ）を機能提供部２２のＩ／Ｆ（共通Ｉ／Ｆ）に変換する。
【００９１】
ステップＳ９８に進み、プラットフォームＡＩ／Ｆ仕様定義部２５−２は機能提供部２２に対して共通Ｉ／ＦでＩ／Ｆ呼び出しを行う。ステップＳ９９に進み、機能提供部２２はプラットフォームＡ用プログラムＸから呼び出されたプラットフォームＡのＩ／Ｆに対応した機能を実行する。
【００９２】
図１４に示すように、プラットフォームＡ互換機構１１のプラットフォームＡＩ／Ｆ仕様定義部２５−１，２５−２は自分のＩ／Ｆ（固有Ｉ／Ｆ）が呼び出された場合、呼び出された固有Ｉ／Ｆを機能提供部２２が提供するＩ／Ｆ（共通Ｉ／Ｆ）に変換する。
【実施例４】
【００９３】
実施例４の情報処理装置１の構成は実施例１の情報処理装置１の構成と同様であるため説明を省略する。また、実施例４の情報処理装置１の異なるプラットフォーム用プログラムを実行する処理は実施例１〜３と同様であるため説明を省略する。
【００９４】
図１５は異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。図１５のシーケンス図は情報処理装置１がプラットフォームＡ互換機構１１，プラットフォームＢ互換機構１２を有する例を示している。実施例４の情報処理装置１におけるインストール処理部２１は互換機構の登録用Ｉ／Ｆを用意している。
【００９５】
図１５では、ステップＳ１０１に進み、プラットフォームＡ互換機構１１が互換機構の登録用Ｉ／Ｆを利用してインストール処理部２１に自身を登録する。ステップＳ１０２に進み、プラットフォームＢ互換機構１２が互換機構の登録用Ｉ／Ｆを利用してインストール処理部２１に自身を登録する。
【００９６】
ステップＳ１０３に進み、プラットフォームＢ用メディアであるインストールメディア５が情報処理装置１のスロット等に挿入される。インストール処理部２１はインストール要求イベント（メディア挿入）を受け取る。
【００９７】
ステップＳ１０４に進み、インストール処理部２１はプラットフォームＡ互換機構１１のプラットフォームＡインストール仕様定義部２３にインストールプログラムの有無チェックを要求する。プラットフォームＡインストール仕様定義部２３はインストールメディア５に対し、インストールプログラムの有無チェックを行う。
【００９８】
プラットフォームＡインストール仕様定義部２３はインストールメディア５にプラットフォームＡ用のインストールプログラムが無いため、ステップＳ１０５に進み、プログラムなしをインストール処理部２１に通知する。
【００９９】
ステップＳ１０６に進み、インストール処理部２１はプラットフォームＢ互換機構１２のプラットフォームＢインストール仕様定義部２４にインストールプログラムの有無チェックを要求する。プラットフォームＢインストール仕様定義部２４はインストールメディア５に対し、インストールプログラムの有無チェックを行う。
【０１００】
プラットフォームＢインストール仕様定義部２４はインストールメディア５にプラットフォームＢ用のインストールプログラムが有るため、ステップＳ１０７に進み、プログラム有りをインストール処理部２１に通知する。
【０１０１】
ステップＳ１０８に進み、インストール処理部２１はプラットフォームＢインストール仕様定義部２４にインストールプログラムの取得を要求する。ステップＳ１０９に進み、プラットフォームＢインストール仕様定義部２４はインストールメディア５からインストールプログラムを読み出す。
【０１０２】
なお、プラットフォームＢインストール仕様定義部２４がインストールメディア５からインストールプログラムを読み出したあとの処理は、図１２のステップＳ６８〜Ｓ７２と同様であるため説明を省略する。
【０１０３】
このように、インストール処理部２１は登録のあったプラットフォームＡインストール仕様定義部２３及びプラットフォームＢインストール仕様定義部２４に対してインストールプログラムの有無チェック（処理委譲対象に含める）を実施する。
【０１０４】
したがって、インストール処理部２１は情報処理装置１がどのような互換機構を保有しているかを意識することなく、インストール処理の委譲が可能となる。実施例４の情報処理装置１は内部に互換機構が何種類存在してもインストール仕様定義部を対応させることができる。つまり、実施例４の情報処理装置１は互換機構の後付けが容易となる。
【０１０５】
なお、互換機構の有効／無効を切り替えが、互換機構の登録用Ｉ／Ｆを実行する／実行しないにより実施できるので、特定の利用者に互換機構を公開するなど、商品の利便性向上も期待できる。
【実施例５】
【０１０６】
実施例５の情報処理装置１の構成は実施例１の情報処理装置１の構成と同様であるため説明を省略する。また、実施例５の情報処理装置１の異なるプラットフォーム用プログラムを実行する処理は実施例１〜４と同様であるため説明を省略する。
【０１０７】
図１６は異なるプラットフォーム用プログラムをインストールする本発明の情報処理装置の他の例のシーケンス図である。なお、図１６のシーケンス図におけるステップＳ１１１〜Ｓ１１８の処理は図８のシーケンス図におけるステップＳ２１〜Ｓ２８と同様であるため説明を省略する。
【０１０８】
ステップＳ１１９に進み、インストール処理部２１は読み出したインストールプログラムの正当性チェックを行う。読み出したインストールプログラムが正当（正当性チェックＯＫ）であると判定すると、プラットフォームＡインストール仕様定義部２３はステップＳ１２０に進み、正当性チェックＯＫをインストール処理部２１に通知する。
【０１０９】
正当性チェックＯＫが通知されると、インストール処理部２１はステップＳ１２１に進み、読み出したインストールプログラムの格納をプラットフォームＡインストール仕様定義部２３に要求する。プラットフォームＡインストール仕様定義部２３は読み出したインストールプログラムを例えばハードディスク装置などの補助記憶装置３４中のプログラム格納エリアに格納する。
【０１１０】
ステップＳ１２２に進み、プラットフォームＡインストール仕様定義部２３はプログラム格納エリアに格納したインストールプログラムを情報処理装置１内で有効化することで、プラットフォームＡ用プログラムＸを生成する。
【０１１１】
なお、読み出したインストールプログラムが不正（正当性チェックＮＧ）であると判定すると、プラットフォームＡインストール仕様定義部２３は正当性チェックＮＧをインストール処理部２１に通知する。正当性チェックＮＧが通知されると、インストール処理部２１は読み出したインストールプログラムの格納をプラットフォームＡインストール仕様定義部２３に要求しない。
【０１１２】
インストール処理部２１は正当性チェックＮＧが通知されると、状況に応じて利用者にインストールプログラムが不正であることを通知したり、不正なインストールプログラムのインストールが要求されたことをログとして記録したりする等の処理も可能である。
【０１１３】
（異なるプラットフォーム間で発生する差異例）
図１７は異なるプラットフォーム間で発生するインストールメディアの構成の差異を表した説明図である。図１７に示すように、インストールメディアのフォルダ構成は、プラットフォームによって異なる。
【０１１４】
パターンＡに示すように、あるプラットフォームでは、特定の名称（例えば、installなど）が付いたフォルダの存在有無でインストールメディアかどうかを判断する。パターンＢに示すように、あるプラットフォームでは、特定の拡張子（例えば、prgなど）が付いたファイルの存在有無でインストールメディアかどうかを判断する。
【０１１５】
パターンＣに示すように、あるプラットフォームでは、データの中身（例えばヘッダファイル）をチェックして、特定のヘッダファイルが付いているファイルの存在有無でインストールメディアかどうかを判断する。互換機構は上記のような異なるプラットフォーム間で発生するインストールメディアの構成の差分を吸収する。
【０１１６】
図１８は異なるプラットフォーム間で発生するインストールメディアのプログラム格納方法の差異を表した説明図である。パターンＡに示すように、あるプラットフォームではｒｏｏｔディレクトリの直下に１ファイルを配置する。パターンＢに示すように、あるプラットフォームではフォルダを圧縮して１ファイルで構成する。
【０１１７】
パターンＣに示すように、あるプラットフォームでは、もともと複数のファイルで構成される。互換機構は上記のような異なるプラットフォーム間で発生するインストールメディアのプログラム格納方法の差分を吸収する。
【０１１８】
図１９は異なるプラットフォーム間で発生するインストールプログラムのプログラム種別情報の差異を表した説明図である。パターンＡ，Ｃに示すように、あるプラットフォームではプログラムとは別に定義ファイル（例えばＸＭＬ形式で書かれたもの）で定義する。パターンＢに示すように、あるプラットフォームではプログラムのヘッダ情報に直接記載して定義する。
【０１１９】
定義ファイルやヘッダ情報はプラットフォーム毎に定義されているパラメータが異なっている。互換機構は上記のような異なるプラットフォーム間で発生するインストールプログラムのプログラム種別情報の差分を吸収する。
【０１２０】
図２０は異なるプラットフォーム間で発生する暗号技術の差異を表した説明図である。インストールプログラムの正当性を証明する方法としては暗号化された証明書を使用することが多い。証明書をどのようなアルゴリズムで暗号化するかは異なるプラットフォーム間で差異が生じる。例えばＳＨＡ１、ＭＤ５、Jarsignerなどの暗号技術は使い分けられていることが多い。互換機構は上記のような異なるプラットフォーム間で発生する暗号技術の差分を吸収する。
【０１２１】
図２１は異なるプラットフォーム間で発生するＩ／Ｆの差異を表した説明図である。図２１に示すように、Ｉ／Ｆの粒度やパラメータ指定方法は異なるプラットフォーム間で差異がある。
【０１２２】
パターンＡに示すように、あるプラットフォームではＩ／Ｆの粒度が細かく、リソース獲得，ジョブ生成，画像読み取り実行，画像印刷実行というようにコピー動作を細かく分割して指定する。Ｉ／Ｆの粒度が細かいプラットフォームでは、アプリケーションがきめ細やかな振る舞いを規定できるが、開発難易度が上がるという問題点もある。
【０１２３】
パターンＢに示すように、あるプラットフォームではＩ／Ｆの粒度が荒く、コピー実行という単一Ｉ／Ｆで定義されている。Ｉ／Ｆの粒度が荒いプラットフォームでは、アプリケーションが簡単に開発できるが、きめ細やかな振る舞いを規定できないという問題点がある。
【０１２４】
パターンＢ，Ｃに示すように、異なるプラットフォーム間ではＩ／Ｆの粒度だけでなく指定するパラメータの差異も存在する。例えばパターンＢではパラメータの一つとしてＡ４サイズという紙サイズコードが指定されている。一方、パターンＣではパラメータの一つとして２９７ｍｍ×２１０ｍｍという寸法データが指定されている。
【０１２５】
このように、Ｉ／Ｆの粒度やパラメータ指定方法などのＩ／Ｆの差異は一長一短があるために、通常、採用されるＩ／Ｆはプラットフォームによって大きく異なる。互換機構は上記のような異なるプラットフォーム間で発生するＩ／Ｆの差分を吸収する。
【０１２６】
図２２は異なるプラットフォーム間で発生する機能の差異を表した説明図である。図２２に示すように、プラットフォームは保有している機能が異なる。例えば認証機能ではパターンＡに示すパネルからログインするベーシック認証、パターンＢに示すＩＣカードを用いるカード認証、パターンＣに示すキーカウンタを用いるデバイス認証などがある。
【０１２７】
また、プラットフォームには新規開発された機能が後から追加されることも多く、並行開発による互換維持の難易度を上げる要因となっている。プラットフォームでは機能差分に対する開発効率を上げるために、Ｉ／Ｆ仕様定義を別途用意することで機能差分を埋めることが必要となっている。その他、機能の差異が発生する代表例としては、画像処理機能（解像度の差異、対応可能な画像フォーマットの差異、ＯＣＲ機能の搭載有無の差異など）や、デバイス（搭載メモリサイズの差異、スキャナの搭載有無の差異、後処理装置の接続有無の差異）などがある。互換機構は上記のような異なるプラットフォーム間で発生する機能の差分を吸収する。
【０１２８】
（効果）
本発明の情報処理装置１によれば、プラットフォームＡ向けに開発された資産（プログラム）を、プラットフォームBでもそのまま利用できる。プログラム開発者は、複数のプラットフォーム毎にプログラムを開発する必要がなくなるので、負担が減る。開発したプログラムは、マルチプラットフォームに対応するので、資産価値を格段に向上させることができる。本発明の情報処理装置１によれば、世の中に多数存在する他プラットフォーム向け開発者を、特別な教育をせずに異なる製品の開発者として取り込むことができ、プログラム開発速度を加速し、製品の市場規模を大幅に拡大することができる。
【０１２９】
また、本発明の情報処理装置１によれば、共通部が、特定のプラットフォームの互換機構部に代わってプラットフォーム間のインストール仕様及びインターフェース仕様の差異を吸収することで、プラットフォーム開発で、最初から互換機構を組み込んでいない場合にも、異なるプラットフォームに対する互換を容易にとることができる。
【０１３０】
また、本発明の情報処理装置１によれば、インストール処理要求を行う互換機構の判定処理をインストール処理部から独立させることができるので、開発効率を大幅に向上することができる。
【０１３１】
また、本発明の情報処理装置１によれば、互換機構に複数の機能に対応した複数のインターフェース仕様定義部を設置可能としたことにより、開発途中のインターフェースの追加が容易となり、開発効率が向上する。例えば本発明の情報処理装置１は、複数のプラットフォームが並行開発された際に、追加機能分（差異）のパッチを適用するだけで、互換が保てるため、開発効率が向上する。
【０１３２】
また、本発明の情報処理装置１によれば、互換機構から登録用インターフェースを利用した登録を受け、現在搭載されているプラットフォーム及び互換機構を動的に識別することができるので、開発効率、利便性が格段に向上する。
【０１３３】
また、本発明の情報処理装置１によれば、プラットフォーム用プログラムが正当であるかを判定する正当性チェックをインストール仕様定義部に行わせることで、インストール処理だけではなく、プラットフォーム間で差が発生しやすい正当性確認処理も互換機構内部に組み込むことができ、互換維持のための開発効率が向上する
さらに、本発明の情報処理装置１によれば、プラットフォーム間の多様な差異部分を吸収可能な互換機構となり、開発効率が上がる。
【０１３４】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１３５】
１    情報処理装置
２，３    インストールサーバ
４，５    インストールメディア
１０    プラットフォームソフトウェア（共通部）
１１    プラットフォームＡ互換機構
１２    プラットフォームＢ互換機構
２１    インストール処理部
２２    機能提供部
２３    プラットフォームＡインストール仕様定義部
２４    プラットフォームＢインストール仕様定義部
２５−１    プラットフォームＡＩ／Ｆ仕様定義部
２５−２    プラットフォームＡＩ／Ｆ仕様定義部
２６−１    プラットフォームＢＩ／Ｆ仕様定義部
２６−２    プラットフォームＢＩ／Ｆ仕様定義部
２７    インストール処理のフレームワーク
２８    プラットフォーム個別プログラム
３０    コンピュータシステム
３１    入力装置
３２    出力装置
３３    ドライブ装置
３４    補助記憶装置
３５    主記憶装置
３６    演算処理装置
３７    インターフェース装置
３８    記録媒体
５０    複合機
５１    コントローラ
５２    操作部
５３    ＦＡＸ制御ユニット
５４    プロッタ
５５    スキャナ
５６    その他ハードウェアリソース
５７    ＩＣカードＲ／Ｗ装置
５８    ＩＣカード
６１    ＣＰＵ
６２，６６    ＲＡＭ
６３    ＮＢ（North Bridge）
６４    ＡＳＩＣ
６５    ＨＤＤ
６７    シリアルバス
６８    ＮＩＣ（Network Interface Card）
６９    ＵＳＢ（Universal Serial Bus）  Ｉ／Ｆ
７０    ＵＳＢホスト
７１    メモリカードＩ／Ｆ
７２    ＰＣＩ−ＢＵＳ
８１    コピーアプリケーション
８２    ファクスアプリケーション
８３    プリンタアプリケーション
８４    Ｗｅｂアプリケーション
８５    アプリケーションプログラムインターフェース（ＡＰＩ）
８６    システム制御サービス（ＳＣＳ）
８７    ファクス制御サービス（ＦＣＳ）
８８    エンジン制御サービス（ＥＣＳ）
８９    メモリ制御サービス（ＭＣＳ）
９０    操作部制御サービス（ＯＣＳ）
９１    ネットワーク制御サービス（ＮＣＳ）
９２    認証制御サービス（ＣＣＳ）
９３    ＯＳ
９４    エンジンインターフェース（エンジンＩ／Ｆ）
９５    エンジン制御ボード
９６    プロッタエンジン
９７    スキャナエンジン
９８    その他ハードウェアリソースのエンジン
【先行技術文献】
【特許文献】
【０１３６】
【特許文献１】特開２００５−２８４３８４号公報
【特許文献２】特開２００３−２５６９８号公報
【図１】
2010181976.tif 000003
【図２】
2010181976.tif 000004
【図３】
2010181976.tif 000005
【図４】
2010181976.tif 000006
【図５】
2010181976.tif 000007
【図６】
2010181976.tif 000008
【図７】
2010181976.tif 000009
【図８】
2010181976.tif 000010
【図９】
2010181976.tif 000011
【図１０】
2010181976.tif 000012
【図１１】
2010181976.tif 000013
【図１２】
2010181976.tif 000014
【図１３】
2010181976.tif 000015
【図１４】
2010181976.tif 000016
【図１５】
2010181976.tif 000017
【図１６】
2010181976.tif 000018
【図１７】
2010181976.tif 000019
【図１８】
2010181976.tif 000020
【図１９】
2010181976.tif 000021
【図２０】
2010181976.tif 000022
【図２１】
2010181976.tif 000023
【図２２】
2010181976.tif 000024