(57)【要約】【課題】  異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる電子機器およびプログラムを提供する。【解決手段】  プラットフォーム３０上で動作してプラットフォーム３０のコンポーネントを実行するプログラム４０を実行するＭＦＰは、プラットフォーム３０とは異なるプラットフォーム５０上で動作してプラットフォーム５０のコンポーネントを実行するプログラム６０をプログラム４０から利用する拡張機能３２を備え、拡張機能３２は、プラットフォーム５０のコンポーネントのうちプログラム６０の実行に必要な必要コンポーネントをプラットフォーム５０からロードし（Ｓ１３２）、ロードした必要コンポーネントによって構成される一時的なプラットフォーム上でプログラム６０を動作させることを特徴とする。【選択図】  図６
2016095602.tif 000002
【特許請求の範囲】
【請求項１】
プラットフォーム上で動作して前記プラットフォームの少なくとも１つのコンポーネントを実行するプログラムを実行する電子機器であって、
前記プラットフォームとは異なる他プラットフォーム上で動作して前記他プラットフォームの少なくとも１つのコンポーネントを実行する他プログラムを前記プログラムから利用する他プログラム利用手段を備え、
前記他プログラム利用手段は、前記他プラットフォームのコンポーネントのうち前記他プログラムの実行に必要な必要コンポーネントを前記他プラットフォームからロードし、ロードした前記必要コンポーネントによって構成される一時的なプラットフォーム上で前記他プログラムを動作させることを特徴とする電子機器。
【請求項２】
前記必要コンポーネントを特定するための必要コンポーネント特定用情報を記憶し、
前記他プログラム利用手段は、前記必要コンポーネント特定用情報に基づいて前記必要コンポーネントを特定することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記必要コンポーネント特定用情報は、
前記他プログラムの実行対象としての実行対象コンポーネントを前記他プラットフォームのコンポーネントの中から特定するための実行対象コンポーネント特定用情報と、
前記実行対象コンポーネントが起動状態になるために必要な依存コンポーネントを前記他プラットフォームのコンポーネントの中から特定するための依存コンポーネント特定用情報とを含み、
前記他プログラム利用手段は、前記他プログラムおよび前記実行対象コンポーネント特定用情報に基づいて特定した前記実行対象コンポーネントと、前記実行対象コンポーネントおよび前記依存コンポーネント特定用情報に基づいて特定した前記依存コンポーネントとを、前記必要コンポーネントとして特定することを特徴とする請求項２に記載の電子機器。
【請求項４】
プラットフォーム上で動作して前記プラットフォームの少なくとも１つのコンポーネントを実行するプログラムであって、
前記プラットフォームとは異なる他プラットフォーム上で動作して前記他プラットフォームの少なくとも１つのコンポーネントを実行する他プログラムを前記プログラムから利用する他プログラム利用手段として電子機器を機能させ、
前記他プログラム利用手段は、前記他プラットフォームのコンポーネントのうち前記他プログラムの実行に必要な必要コンポーネントを前記他プラットフォームからロードし、ロードした前記必要コンポーネントによって構成される一時的なプラットフォーム上で前記他プログラムを動作させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を利用する電子機器およびプログラムに関する。
【背景技術】
【０００２】
従来、異なるプラットフォーム上で動作する２つのアプリケーションの一方から他方を利用する方法が知られている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−７５８８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の方法においては、複雑で大規模なシステムが必要であるという問題がある。
【０００５】
そこで、本発明は、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる電子機器およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の電子機器は、プラットフォーム上で動作して前記プラットフォームの少なくとも１つのコンポーネントを実行するプログラムを実行する電子機器であって、前記プラットフォームとは異なる他プラットフォーム上で動作して前記他プラットフォームの少なくとも１つのコンポーネントを実行する他プログラムを前記プログラムから利用する他プログラム利用手段を備え、前記他プログラム利用手段は、前記他プラットフォームのコンポーネントのうち前記他プログラムの実行に必要な必要コンポーネントを前記他プラットフォームからロードし、ロードした前記必要コンポーネントによって構成される一時的なプラットフォーム上で前記他プログラムを動作させることを特徴とする。
【０００７】
この構成により、本発明の電子機器は、プラットフォーム上で動作するプログラムから、このプラットフォームとは異なる他プラットフォーム上で動作する他プログラムを利用する場合、他プラットフォームのコンポーネントのうち他プログラムの実行に必要な必要コンポーネントを他プラットフォームからロードし、ロードした必要コンポーネントによって構成される一時的なプラットフォーム上で他プログラムを動作させるので、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる。
【０００８】
また、本発明の電子機器は、前記必要コンポーネントを特定するための必要コンポーネント特定用情報を記憶し、前記他プログラム利用手段は、前記必要コンポーネント特定用情報に基づいて前記必要コンポーネントを特定しても良い。
【０００９】
この構成により、本発明の電子機器は、必要コンポーネント特定用情報に基づいて必要コンポーネントを特定するので、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる。
【００１０】
また、本発明の電子機器において、前記必要コンポーネント特定用情報は、前記他プログラムの実行対象としての実行対象コンポーネントを前記他プラットフォームのコンポーネントの中から特定するための実行対象コンポーネント特定用情報と、前記実行対象コンポーネントが起動状態になるために必要な依存コンポーネントを前記他プラットフォームのコンポーネントの中から特定するための依存コンポーネント特定用情報とを含み、前記他プログラム利用手段は、前記他プログラムおよび前記実行対象コンポーネント特定用情報に基づいて特定した前記実行対象コンポーネントと、前記実行対象コンポーネントおよび前記依存コンポーネント特定用情報に基づいて特定した前記依存コンポーネントとを、前記必要コンポーネントとして特定しても良い。
【００１１】
この構成により、本発明の電子機器は、複数種類の他プログラムが存在する場合に、必要コンポーネント特定用情報を他プログラム毎に完全に独立して記憶する必要がなく、必要コンポーネント特定用情報のうち依存コンポーネント特定用情報を複数種類の他プログラムの共通の情報として記憶することができるので、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる。
【００１２】
本発明のプログラムは、プラットフォーム上で動作して前記プラットフォームの少なくとも１つのコンポーネントを実行するプログラムであって、前記プラットフォームとは異なる他プラットフォーム上で動作して前記他プラットフォームの少なくとも１つのコンポーネントを実行する他プログラムを前記プログラムから利用する他プログラム利用手段として電子機器を機能させ、前記他プログラム利用手段は、前記他プラットフォームのコンポーネントのうち前記他プログラムの実行に必要な必要コンポーネントを前記他プラットフォームからロードし、ロードした前記必要コンポーネントによって構成される一時的なプラットフォーム上で前記他プログラムを動作させることを特徴とする。
【００１３】
この構成により、本発明のプログラムは、プラットフォーム上で動作するプログラムから、このプラットフォームとは異なる他プラットフォーム上で動作する他プログラムを利用する場合、他プラットフォームのコンポーネントのうち他プログラムの実行に必要な必要コンポーネントを他プラットフォームからロードし、ロードした必要コンポーネントによって構成される一時的なプラットフォーム上で他プログラムを動作させるので、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる。
【発明の効果】
【００１４】
本発明の電子機器およびプログラムは、異なるプラットフォーム上で動作する２つのプログラムの一方から他方を簡単な構成で利用することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態に係るＭＦＰのブロック図である。
【図２】図１に示す２つのプラットフォームのうちの一方の一例を示す図である。
【図３】図１に示す２つのプログラムのうちの一方のコードの一例を示す図である。
【図４】図１に示す２つのプラットフォームのうちの図２に示す方とは異なる方の一例を示す図である。
【図５】図１に示す２つのプログラムのうちの図３に示す方とは異なる方のコードの一例を示す図である。
【図６】図１に示す２つのプラットフォームと、２つのプログラムとの関係を示す図である。
【図７】図１に示す実行対象コンポーネント特定用情報の一例を示す図である。
【図８】図１に示す依存コンポーネント特定用情報の一例を示す図である。
【図９】図２に示すプラットフォーム上で図３に示すプログラムを動作させる場合のＭＦＰの動作のフローチャートである。
【図１０】図９に示す拡張機能実行処理のフローチャートである。
【図１１】図１０に示す必要コンポーネント特定処理のフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施の形態について、図面を用いて説明する。
【００１７】
まず、本実施の形態に係る電子機器としてのＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）の構成について説明する。
【００１８】
図１は、本実施の形態に係るＭＦＰ１０のブロック図である。
【００１９】
図１に示すように、ＭＦＰ１０は、利用者による種々の操作が入力されるボタンなどの入力デバイスである操作部１１と、種々の情報を表示するＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示デバイスである表示部１２と、原稿から画像データを読み取る読取デバイスであるスキャナー１３と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター１４と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部１５と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク経由で外部の装置と通信を行うネットワーク通信デバイスであるネットワーク通信部１６と、各種のデータを記憶しているＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの不揮発性の記憶デバイスである記憶部２０と、ＭＦＰ１０全体を制御する制御部８０とを備えている。
【００２０】
記憶部２０は、本発明の「プラットフォーム」としてのプラットフォーム３０と、プラットフォーム３０上で動作する本発明の「プログラム」としてのプログラム４０と、本発明の「他プラットフォーム」としてのプラットフォーム５０と、プラットフォーム５０上で動作する本発明の「他プログラム」としてのプログラム６０とを記憶している。
【００２１】
プラットフォーム３０およびプラットフォーム５０は、例えば、Ｗｉｎｄｏｗｓ（登録商標）、Ｌｉｎｕｘ（登録商標）、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）（登録商標）など、プログラムを動作させる実行環境である。プラットフォーム３０およびプラットフォーム５０は、互いに異なる種類のプラットフォームである。
【００２２】
図２は、プラットフォーム３０の一例を示す図である。
【００２３】
図２に示すように、プラットフォーム３０は、プラットフォーム３１と、プラットフォーム３１の機能を拡張するための拡張機能３２とによって構成されている。
【００２４】
プラットフォーム３１は、コンポーネント３１ａ、コンポーネント３１ｂ、コンポーネント３１ｃなど、複数のコンポーネントによって構成されている。プラットフォーム３１を構成するコンポーネントのそれぞれは、少なくとも１つのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）によって構成されている。
【００２５】
拡張機能３２は、少なくとも１つのＡＰＩによって構成されている。拡張機能３２は、プログラム６０（図１参照。）をプログラム４０（図１参照。）から利用する機能であり、本発明の他プログラム利用手段を構成している。
【００２６】
図３は、プログラム４０のコードの一例を示す図である。
【００２７】
図３に示すように、プログラム４０は、「FuncA-1」、「FuncA'(プログラム６０)」、「FuncA-2」、「FuncA-3」の順番に関数を実行するスクリプト言語で記述されたプログラムである。
【００２８】
ここで、「FuncA-1」は、プラットフォーム３０（図２参照。）のコンポーネント３１ａ（図２参照。）を実行するための関数である。同様に、「FuncA-2」、「FuncA-3」は、それぞれ、プラットフォーム３０のコンポーネント３１ｂ（図２参照。）、コンポーネント３１ｃ（図２参照。）を実行するための関数である。
【００２９】
また、「FuncA'」は、プラットフォーム３０の拡張機能３２（図２参照。）を実行するための関数である。ここで、「FuncA'(プログラム６０)」の「プログラム６０」は、拡張機能３２に渡される引数であって、実際にはプログラム６０のコードが入力される。
【００３０】
図４は、プラットフォーム５０の一例を示す図である。
【００３１】
図４に示すように、プラットフォーム５０は、コンポーネント５１ａ、コンポーネント５１ｂ、コンポーネント５１ｃ、コンポーネント５１ｄ、コンポーネント５１ｅなど、複数のコンポーネントによって構成されている。プラットフォーム５０を構成するコンポーネントのそれぞれは、少なくとも１つのＡＰＩによって構成されている。
【００３２】
図５は、プログラム６０のコードの一例を示す図である。
【００３３】
図５に示すように、プログラム６０は、「FuncB-1」、「FuncB-2」、「FuncB-3」の順番に関数を実行するスクリプト言語で記述されたプログラムである。
【００３４】
ここで、「FuncB-1」は、プラットフォーム５０（図４参照。）のコンポーネント５１ａ（図４参照。）を実行するための関数である。同様に、「FuncB-2」、「FuncB-3」は、それぞれ、プラットフォーム５０のコンポーネント５１ｂ（図４参照。）、コンポーネント５１ｃ（図４参照。）を実行するための関数である。
【００３５】
図６は、プラットフォーム３０、５０と、プログラム４０、６０との関係を示す図である。
【００３６】
図６に示すように、プラットフォーム３０の拡張機能３２は、プラットフォーム５０を部分的に実行したり（Ｓ１３２）、プラットフォーム５０のうちＳ１３２の処理において実行した部分を停止したり（Ｓ１３４）することができる。
【００３７】
図１に示すように、記憶部２０は、プログラム６０の実行に必要な必要コンポーネントを特定するための必要コンポーネント特定用情報７０を記憶している。
【００３８】
必要コンポーネント特定用情報７０は、プログラム６０の実行対象としての実行対象コンポーネントをプラットフォーム５０のコンポーネントの中から特定するための実行対象コンポーネント特定用情報７１と、実行対象コンポーネントが起動状態になるために必要な依存コンポーネントをプラットフォーム５０のコンポーネントの中から特定するための依存コンポーネント特定用情報７２とを含んでいる。
【００３９】
図７は、実行対象コンポーネント特定用情報７１の一例を示す図である。
【００４０】
図７に示す実行対象コンポーネント特定用情報７１は、プログラム６０（図５参照。）の関数と、プラットフォーム５０（図４参照。）のコンポーネントとの対応関係を示すテーブルである。図７に示す実行対象コンポーネント特定用情報７１によれば、「FuncB-1」（図５参照。）、「FuncB-2」（図５参照。）、「FuncB-3」（図５参照。）の実行対象コンポーネントがそれぞれコンポーネント５１ａ（図４参照。）、コンポーネント５１ｂ（図４参照。）、コンポーネント５１ｃ（図４参照。）であることを理解することができる。
【００４１】
図８は、依存コンポーネント特定用情報７２の一例を示す図である。
【００４２】
図８に示す依存コンポーネント特定用情報７２は、プラットフォーム５０（図４参照。）のコンポーネントと、このコンポーネントが起動状態になるために必要なコンポーネントとしての依存コンポーネントとの対応関係を示すテーブルである。図８に示す依存コンポーネント特定用情報７２によれば、コンポーネント５１ａ（図４参照。）が起動状態になるためにコンポーネント５１ｂ（図４参照。）、コンポーネント５１ｃ（図４参照。）およびコンポーネント５１ｄ（図４参照。）が必要であることを理解することができる。同様に、コンポーネント５１ｂが起動状態になるためにコンポーネント５１ｃおよびコンポーネント５１ｅ（図４参照。）が必要であることを理解することができる。また、コンポーネント５１ｃが起動状態になるためにコンポーネント５１ｄおよびコンポーネント５１ｅが必要であることを理解することができる。
【００４３】
図１に示す制御部８０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、プログラムおよび各種のデータを予め記憶しているＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＣＰＵの作業領域として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）とを備えている。ＣＰＵは、ＲＯＭまたは記憶部２０に記憶されているプログラムを実行するようになっている。
【００４４】
次に、プラットフォーム３０上でプログラム４０を動作させる場合のＭＦＰ１０の動作について説明する。
【００４５】
図９は、プラットフォーム３０上でプログラム４０を動作させる場合のＭＦＰ１０の動作のフローチャートである。
【００４６】
図９に示すように、制御部７０は、まず、プログラム４０の「FuncA-1」を実行することによって、プラットフォーム３０のコンポーネント３１ａを実行する（Ｓ１０１）。
【００４７】
次いで、制御部７０は、プログラム４０の「FuncA'(プログラム６０)」を実行することによって、プラットフォーム３０の拡張機能３２を実行する図１０に示す拡張機能実行処理を実行する（Ｓ１０２）。
【００４８】
図１０は、図９に示す拡張機能実行処理のフローチャートである。
【００４９】
図１０に示すように、拡張機能３２は、プラットフォーム５０のコンポーネントのうちプログラム６０の実行に必要な必要コンポーネントを、関数「FuncA'」の引数として渡されたプログラム６０のコードに基づいて特定する図１１に示す必要コンポーネント特定処理を実行する（Ｓ１３１）。
【００５０】
図１１は、図１０に示す必要コンポーネント特定処理のフローチャートである。
【００５１】
図１１に示すように、拡張機能３２は、プラットフォーム５０のコンポーネントのうちプログラム６０の実行対象コンポーネントを実行対象コンポーネント特定用情報７１に基づいて特定する（Ｓ１６１）。すなわち、拡張機能３２は、プログラム６０の実行対象コンポーネントとしてコンポーネント５１ａ〜５１ｃを特定する。
【００５２】
次いで、拡張機能３２は、Ｓ１６１において特定した実行対象コンポーネントの依存コンポーネントを依存コンポーネント特定用情報７２に基づいて特定する（Ｓ１６２）。すなわち、拡張機能３２は、コンポーネント５１ａの依存コンポーネントとしてコンポーネント５１ｂ〜５１ｄを特定する。また、拡張機能３２は、コンポーネント５１ｂの依存コンポーネントとしてコンポーネント５１ｃおよび５１ｅを特定する。また、拡張機能３２は、コンポーネント５１ｃの依存コンポーネントとしてコンポーネント５１ｄおよび５１ｅを特定する。
【００５３】
拡張機能３２は、図１１に示す必要コンポーネント特定処理によって、プログラム６０の関数「FuncB-1」の実行対象コンポーネントとしてのコンポーネント５１ａと、このコンポーネント５１ａの依存コンポーネントとしてのコンポーネント５１ｂ〜５１ｄとを、関数「FuncB-1」の必要コンポーネントとして特定する。同様に、拡張機能３２は、プログラム６０の関数「FuncB-2」の実行対象コンポーネントとしてのコンポーネント５１ｂと、このコンポーネント５１ｂの依存コンポーネントとしてのコンポーネント５１ｃおよび５１ｅとを、関数「FuncB-2」の必要コンポーネントとして特定する。また、拡張機能３２は、プログラム６０の関数「FuncB-3」の実行対象コンポーネントとしてのコンポーネント５１ｃと、このコンポーネント５１ｃの依存コンポーネントとしてのコンポーネント５１ｄおよび５１ｅとを、関数「FuncB-3」の必要コンポーネントとして特定する。すなわち、拡張機能３２は、図１１に示す必要コンポーネント特定処理によって、プログラム６０の必要コンポーネントとしてコンポーネント５１ａ〜５１ｅを特定する。
【００５４】
拡張機能３２は、Ｓ１６２の処理が終了すると、図１１に示す必要コンポーネント特定処理を終了する。
【００５５】
図１０に示すように、拡張機能３２は、Ｓ１３１の必要コンポーネント特定処理が終了すると、Ｓ１３１の必要コンポーネント特定処理によって必要コンポーネントとして特定されたコンポーネント５１ａ〜５１ｅをプラットフォーム５０からＲＡＭ上にロードすることによって、コンポーネント５１ａ〜５１ｅを利用可能な状態にする（Ｓ１３２）。すなわち、拡張機能３２は、コンポーネント５１ａ〜５１ｅを実行する。
【００５６】
次いで、拡張機能３２は、Ｓ１３２においてロードしたコンポーネント５１ａ〜５１ｅによって構成される一時的なプラットフォーム上でプログラム６０を動作させることによって、プログラム６０を実行する（Ｓ１３３）。
【００５７】
次いで、拡張機能３２は、プログラム６０の必要コンポーネント、すなわち、コンポーネント５１ａ〜５１ｅをＲＡＭ上からアンロードすることによって、コンポーネント５１ａ〜５１ｅを停止させて（Ｓ１３４）、図１０に示す拡張機能実行処理を終了する。
【００５８】
図９に示すように、制御部７０は、Ｓ１０２の拡張機能実行処理が終了すると、プログラム４０の「FuncA-2」を実行することによって、プラットフォーム３０のコンポーネント３１ｂを実行する（Ｓ１０３）。
【００５９】
次いで、制御部７０は、プログラム４０の「FuncA-3」を実行することによって、プラットフォーム３０のコンポーネント３１ｃを実行して（Ｓ１０４）、図９に示す動作を終了する。
【００６０】
以上に説明したように、ＭＦＰ１０は、プラットフォーム５０上で動作するプログラム６０を、プラットフォーム３０上で動作するように移植することなく、シームレスに動作させることができる。
【００６１】
また、ＭＦＰ１０は、プラットフォーム３０上で動作するプログラム４０から、プラットフォーム５０上で動作するプログラム６０を利用する場合、プラットフォーム５０のコンポーネントのうちプログラム６０の実行に必要なコンポーネント５１ａ〜５１ｅをプラットフォーム５０からロードし（Ｓ１３２）、ロードしたコンポーネント５１ａ〜５１ｅによって構成される一時的なプラットフォーム上でプログラム６０を動作させる（Ｓ１３３）ので、プラットフォーム３０上で動作するプログラム４０から、プラットフォーム５０上で動作するプログラム６０を簡単な構成で利用することができる。
【００６２】
また、ＭＦＰ１０は、プログラム６０の実行に必要なコンポーネント５１ａ〜５１ｅを必要コンポーネント特定用情報７０に基づいて特定するので、プラットフォーム３０上で動作するプログラム４０から、プラットフォーム５０上で動作するプログラム６０を簡単な構成で利用することができる。
【００６３】
また、ＭＦＰ１０は、プラットフォーム５０上で動作するプログラム、すなわち、他プログラムが複数種類存在する場合に、必要コンポーネント特定用情報７０を他プログラム毎に完全に独立して記憶する必要がなく、必要コンポーネント特定用情報７０のうち依存コンポーネント特定用情報７２を複数種類の他プログラムの共通の情報として記憶することができるので、プラットフォーム３０上で動作するプログラム４０から、プラットフォーム５０上で動作するプログラム６０を簡単な構成で利用することができる。
【００６４】
本発明は、プラットフォーム３０上で動作するプログラム４０から、プラットフォーム５０上で動作するプログラム６０を簡単な構成で利用することができるので、ＭＦＰ１０のようなリソースの限られた組み込みシステムにおいて有効である。
【００６５】
なお、本実施の形態において、プラットフォーム３０と、プラットフォーム５０とは、同一のハードウェアによって実現されている。しかしながら、プラットフォーム３０と、プラットフォーム５０とは、別々のハードウェアによって実現されても良い。
【００６６】
本発明の電子機器は、本実施の形態においてＭＦＰであるが、プリンター専用機、コピー専用機、ＦＡＸ専用機など、ＭＦＰ以外の画像形成装置であっても良いし、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）など、画像形成装置以外の電子機器であっても良い。
【符号の説明】
【００６７】
１０  ＭＦＰ（電子機器）
３０  プラットフォーム
３１ａ〜３１ｃ  コンポーネント
３２  拡張機能（他プログラム利用手段）
４０  プログラム
５０  プラットフォーム（他プラットフォーム）
５１ａ〜５１ｅ  コンポーネント
６０  プログラム（他プログラム）
７０  必要コンポーネント特定用情報
７１  実行対象コンポーネント特定用情報
７２  依存コンポーネント特定用情報
【図１】
2016095602.tif 000003
【図２】
2016095602.tif 000004
【図３】
2016095602.tif 000005
【図４】
2016095602.tif 000006
【図５】
2016095602.tif 000007
【図６】
2016095602.tif 000008
【図７】
2016095602.tif 000009
【図８】
2016095602.tif 000010
【図９】
2016095602.tif 000011
【図１０】
2016095602.tif 000012
【図１１】
2016095602.tif 000013