JP2004530201A - 組込み環境においてアプリケーションをロードして実行するための方法 - Google Patents
組込み環境においてアプリケーションをロードして実行するための方法 Download PDFInfo
- Publication number
- JP2004530201A JP2004530201A JP2002574071A JP2002574071A JP2004530201A JP 2004530201 A JP2004530201 A JP 2004530201A JP 2002574071 A JP2002574071 A JP 2002574071A JP 2002574071 A JP2002574071 A JP 2002574071A JP 2004530201 A JP2004530201 A JP 2004530201A
- Authority
- JP
- Japan
- Prior art keywords
- application
- executing
- memory space
- playback area
- loading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
携帯通信デバイスに存在するような組込み環境が、アプリケーション・ファイルを記憶するための不揮発性メモリ(106)を備える。不揮発性メモリは、再生領域(202)と呼ばれるセクションを含み、ここで、アプリケーションが、インストールされ、また、ここからアプリケーションが実行される。アプリケーションをインストールすると、アプリケーションによって他のセクションのコードを呼び出すために用いられる物理アドレスが、呼び出されるセクションのコードと共に、決定され(308)、そして、アプリケーションは、その物理アドレスを有する再生領域に書き込まれ、その再生領域から実行される。
Description
【技術分野】
【0001】
本発明は、一般的に、アプリケーションを呼び出して実行するための方法に関し、特に、リソースが限定された組込みシステムにおいて、アプリケーションを呼び出して実行するための方法に関する。
【背景技術】
【0002】
市場において入手可能な小型でリソースが制限されたコンピュータデバイスの数が、ますます多くなっている。これらのデバイスには、セルラ通信デバイス、情報端末、所謂パームトップ・コンピュータ等が含まれる。近年、これらのデバイスをインターネットに接続し、移植可能なコード・アプリケーション又はジャバ(java)アプリケーション等のアプリケーションをロードして実行しようとする努力がなされてきた。通常の汎用コンピュータは、ランダム・アクセス・メモリ(RAM)や複雑で高度なファイル・システム等のコンピュータ処理用のリソースを備えているが、これらの組込み環境は、一般的に、同じレベルのリソースを備えていない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
組込み環境においてリソースが制限されていると、デバイス内でアプリケーションを呼び出す際、問題が生じる。発生する問題の1つは、アプリケーションを如何にしてロードして実行するか、また、実行中、デバイスメモリ内のどこにコードを常駐させるべきかである。この問題に対しては、従来2つの解決策がある。第1の方法として、アプリケーションは、やろうと思えば、RAMに完全にロードすることが可能である。RAMにアプリケーションをロードするには、アプリケーション・ファイルと同じサイズのRAM及び変数並びにデータ構造用の追加のRAMが必要な場合がある。しかしながら、通常、この種類のデバイスに備えられるRAMは、豊富ではなく、このため、本アプローチの実用性が制限される。第2の方法は、コードがファイル・システム中に常駐しつつ、コードを実行することである。このためには、ファイル・システムがかなり高度である必要があり、また、クラスへポインタを更新する等かなりの量の“ハウスキーピング”を実行する必要がある。組込み環境においては、リソースが制限されているため、この方法もまた望ましいアプローチではない。これらのアプローチのいずれも場合も、コードが移動した場合、又は、アプリケーションが呼び出す他のコードが移動した場合、ランタイムに問題がある。このことは、リンカーは、ランタイムにおいて、他のルーチン、データ等を呼び出す際、用いるポインタを更新しなければならないことから、汎用コンピュータのアプリケーション管理においてもよくあることである。従って、過剰なRAMを用いることなく、あるいは、高度なファイル管理システムを必要とせずに、アプリケーションをロードして実行する方法が必要である。
【課題を解決するための手段】
【0004】
本発明は、組込み環境において、アプリケーションをローディングして実行する方法を提供する。本方法は、不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階と、アプリケーションの圧縮版を含むアーカイブ・ファイルをダウンロードする段階を含む。通常、アーカイブ・ファイルは、記憶空間の不揮発性メモリに記憶される。アプリケーションをインストールする場合、組込み環境は、アプリケーションの圧縮版の解凍を開始し、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスを決定し始める。最後に、対応する物理アドレスを有するアプリケーションが、再生領域メモリ空間に書き込まれる。一旦、アプリケーションがインストールされると、デバイスは、アプリケーションを再生領域から実行し得る。
【0005】
ウェブ上で使用可能なセルラ式電話等の携帯通信デバイスの場合、本発明は、携帯通信デバイスにおいて、javaアプリケーションをロードしてインストールする方法を提供する。同様に、携帯通信デバイスにおいて、本方法は、携帯通信デバイスの不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階を含む。一旦携帯通信デバイスが動作すれば、ユーザはインターネットを閲覧して、適切なアプリケーションを見つけることができる。そして、当技術分野で知られているように、携帯通信デバイスと通信サービス・インフラ装置との間の無線インターフェースを介して、インターネット・サーバからjavaアーカイブ(JAR)ファイルのダウンロードを開始できる。JARファイルは、通常、アプリケーションの圧縮バイト・コード版と、開発者の公開キーで署名されたデジタル証明書等の認証ファイルを含む。ユーザがアプリケーションをインストールしようと決めた場合、携帯通信デバイスは、アプリケーションの圧縮版の解凍を開始してアプリケーション・バイト・コードを得る。処理中の或る時点で、携帯通信デバイスは、認証ファイルを用いて、JARファイルの認証を開始する。バイト・コードを再生領域に書き込む前に、携帯通信デバイスは、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスの決定を行ない、そして、対応する物理アドレスを有するアプリケーション・バイト・コードを再生領域メモリ空間に書き込む。アプリケーションは、呼び出されると、javaバーチャルマシン環境を利用して再生領域から実行される。
【発明の効果】
【0006】
従って、本発明は、指定された又は所定の不揮発性メモリ空間にアプリケーションをローディングし、ポインタと対向する物理アドレスを用い、不揮発性メモリからアプリケーション・コードを実行することによって、アプリケーションをインストールして実行する従来の方法の問題を回避するものである。この手法により、アプリケーションはメモリ内に残り、従来方法によるインストール処理を経ること無くアプリケーションの呼出しが可能になる。これらの理由により、本発明は、特に、javaや他の移植可能なコード環境において有用である。
【発明を実施するための最良の形態】
【0007】
本明細書は、新規性があると見なされる本発明の特徴を規定する特許請求の範囲で締めくくるが、図面と共に以下の説明を考察することにより、本発明の理解が深まるものと考える。図面中において、同様な参照番号は、繰り返し用いてある。本発明は、アプリケーションを不揮発性メモリにインストールし、その不揮発性メモリからアプリケーションを実行することによって、RAM使用法の問題、及び、ランタイム遅延を解決する。本発明によると、アプリケーションは、デバイスをオフにした時、インスタンスが生成されたままになるという付加的な利点があるため、後でデバイスをオンにした時、再インストールする必要がない。
【0008】
次に、図1において、組込みコンピュータ処理デバイス100のブロック図を示す。具体的には、本ブロック図は、コントローラ102と、バス108を介してコントローラに接続された2つの形態のメモリ(RAM104と不揮発性メモリ106)のみを示す。チップ選択ライン110により、コントローラは、いずれかのメモリにアクセスできる。一般的に、当該技術分野ではよくあるように、コントローラは、マイクロコントローラ又はマイクロプロセッサである。同様に、RAM104は、従来のスクラッチ・パッド・メモリである。不揮発性メモリは、プログラム可能なメモリ部を含む。好適な実施形態において、不揮発性メモリは、所謂フラッシュ・メモリである。不揮発性メモリは、ユーザが記憶したいデータと共に、デバイスを駆動する実行可能なコードを記憶するために用いられる。更に、本発明に基づき、不揮発性メモリは、後述するように、アプリケーションをイ
ンストールするための専用メモリ空間を有しており、アプリケーションは、不揮発性メモリ中においてインストールされた位置から実行される。
【0009】
次に、図2において、本発明に基づくデータ構造構成のメモリ図202を示す。セクション202は、再生領域専用のメモリ空間を示し、ここでは、javaアプレットや他の移植可能なコード等のアプリケーションがインストールされ、また、ユーザによって、又はアプリケーション・マネージャの動作によって除去されるまで常駐する。再生領域は、デバイスによってプログラム可能でなければならず、また好適には、消去可能でなくてはならない。メモリの他のセクションは、アプリケーション・ファイル204を記憶するために用い得る。アプリケーション・ファイルには、例えば、ライセンス・ファイル、デスクリプタ・ファイル、及びセキュリティのためにアプリケーション・ファイルのソースを認証するために用いられるファイル等の様々なファイルと共に、圧縮された実行可能なコードが含まれる。本発明の1つの実施形態において、再生領域マネージャ206は、再生領域にインストールされたアプリケーションを管理するために用いられる。メモリ空間には限界があるため、また、ユーザが、メモリ空間の大きさを越えてアプリケーションをインストールしたい場合があるため、マネージャは、新しいアプリケーションをインストールできるように、どのアプリケーションをメモリからアンインストール又は消去できるか決定する。再生領域マネージャは、ユーザ・インターフェースで実現可能であり、インストールされているどのアプリケーションを削除すべきかユーザに選択させる。あるいは、例えば、現在再生領域にインストールされているアプリケーションの最近の使用履歴を記録することによって、ユーザに分かるようにセットアップすることが可能である。そして、新しいアプリケーションをインストールする必要がある時、再生領域マネージャは、使用履歴が最も古いアプリケーションをアンインストールする。削除したアプリケーションを後で実行する必要がある場合、再生領域マネージャは、単に、使用履歴が最も古いアプリケーションを消去し、以前削除したアプリケーションを再インストールする。このことには、従来のランタイム・リンクが必要であるが、全体的には、不揮発性メモリにアプリケーションをインストールすることによって、時間節約が可能である。
【0010】
インストール、リンク、実行は、ローダ・メモリ空間208において、コードによって行なわれる。好適な実施形態において、組込み環境には、例えば、kJava・バーチャルマシンすなわちKVM等の移植可能なコードを実行する手段も設けられるが、この移植可能なコードは、ローダ・メモリ空間にも常駐し得る。ローダ及びKVMは、従来の方法で動作する。勿論、組込み環境は、例えば、ユーザ・インターフェース、送受信機制御、音声制御等、他の機能を実行する他のコード210も含む。1つの重要なアプリケーションは、当技術分野において知られているように、フラッシュ・メディア・マネージャ(FMM)等のメモリマネージャ、即ち、メディアマネージャである。FMMは、他のアプリケーション、アルゴリズム、及びルーチンによって必要とされる低レベルのメモリ動作を制御する。例えば、FMMは、ローダの命令に従って、再生領域へのアプリケーションのインストールを実行する。従って、ローダは、メモリで何をしたいか決定し、FMMは、フラッシュ・メモリを管理することによって、命令を実行する。
【0011】
次に、図3において、本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法のフローチャート図300を示す。アプリケーションをインストールして実行するために、第1ステップでは、デバイスがアーカイブ・ファイルを取得する(302)。このことは、インターネット接続等のネットワーク接続を介して、サーバからアーカイブ・ファイルをダウンロードすることによって実現し得る。1つの実施形態において、デバイスは、インターネットが可能なセルラ式電話又はそれと同等品等の携帯通信デバイスであることが考えられる。更に、アーカイブ・ファイルは、例えば、javaアーカイブ・ファイルすなわちJARであってよい。移動電話機等のモバイル・デバイス用Java仕様は、公開されており、従って、このようなデバイス上で用いられるjavaアプリケーションを開発する開発者が存在する。但し、PDAや他のこのようなデバイスでも同様である。アーカイブ・ファイは、例えば、汎用コンピュータとのローカル接続を介してロードすることによって、デバイスにロードしてもよい。ローカル接続は、RS−232等のシリアル接続を介して行なうことができる。
【0012】
デバイスがアーカイブ・ファイルを取得している場合、デバイスは、それをメモリに記憶しなければならない(304)。アーカイブ・ファイルのメモリへの記憶は、そのファイルを不揮発性メモリ106に保存することによって実行される。アーカイブ・ファイルのダウンロード処理には、セキュリティのために、ファイルの認証を含んでよい。アーカイブ・ファイルがJARである場合、認証は通常通り実行される。アーカイブ・ファイルを取得して記憶した後、そのファイルは、デバイスのユーザがアーカイブ・ファイルに含まれるアプリケーションのインストールを決めるまで、そのまま使用されなかったり、あるいは、そのアプリケーションは、何らかの他のコードによって呼び出されたりする場合がある。アプリケーションをインストールして実行できるようにする誘因が何であれ、最初にすべきことは、アプリケーションの解凍である。アプリケーションは、RAMにおいて、又は、不揮発性記憶装置の然るべきメモリ空間において、解凍し得る。アプリケーション・コードは、次に、構文解析される。構文解析することによって、アプリケーションが行なう呼出しの論理アドレスが決定される。好適な実施形態において、java等のバーチャルマシン環境で実行可能なアプリケーションは、バイト・コード単位である。構文解析は、既知のように、リンカー/ローダ・アプリケーションによって実行し得る。しかしながら、他の移植可能なコード環境との根本的な違いは、リンカー/ローダ、又は、同等のアプリケーションが、構文解析中に決定された論理アドレスに対応する物理アドレスの決定を開始することである(308)。これによって、所謂“デリファレンス(dereferencing)”の必要が無くなる。また、所定の再生領域メモリ空間等、アプリケーションがインストールされるメモリ空間が正確に分かっている場合、リンカー/ローダは、まず論理アドレスを決定することなく、最初から物理アドレスを決定できる。物理アドレスを決定することで、ポインタを使う必要が無くなり、また、デリファレンスの必要が無くなる。
【0013】
一旦、物理アドレスが決定されると、ローダは、指定された再生領域の1つへアプリケーション・コードの書き込みを開始できる(310)。インストールされた状態で、アプリケーション・コードは、コードの様々な他の部分に対して行なわれる呼出し用の物理アドレスを含む。ポインタの更新は、RAMへアプリケーションをインストールする際の慣例となっており、他のファイルやデータ構造を収容するためにRAMのコンテンツが時折移動されるが、これによって、ポインタを更新する必要が無くなる。物理アドレスを用いると共に不揮発性メモリを用いることで、従来の方法でポインタを保持する必要が無くなる。何故ならば、バイト・コードは、一旦不揮発性メモリにインストールされると決して移動されないからである。更に、アプリケーションがRAM中のバーチャルマシン環境にインストールされる場合とは異なり、不揮発性メモリにアプリケーションをインストールすると、デバイスがオフになった後、アプリケーションのインスタンス生成を継続でき、デバイスをオンする際、アプリケーションを再インストールする必要が無い。アプリケーションは、実行される際、不揮発性メモリ内の所定の位置で実行される。所定の位置でのアプリケーションの実行(312)は、例えば、FMM等の支援を受けて行なわれる。アプリケーションは、ユーザが入力した時、実行してもよく、あるいは、他のアプリケーションや他のソフトウェアエンティティにより呼び出された時、実行してもよい。
【0014】
本発明の好適な実施形態について、例示・説明したが、本発明がそのように制限されるものでないことは明らかであろう。添付の特許請求の範囲で規定される本発明の精神及び範囲から逸脱することなく、数多くの変形、変更、修正、置き換え、同等物が、当業者には起こり得る。
【図面の簡単な説明】
【0015】
【図1】組込みコンピュータ処理用デバイスを示すブロック図。
【図2】本発明に基づくデータ構造構成を示すメモリ図。
【図3】本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法を示すフローチャート図。
【0001】
本発明は、一般的に、アプリケーションを呼び出して実行するための方法に関し、特に、リソースが限定された組込みシステムにおいて、アプリケーションを呼び出して実行するための方法に関する。
【背景技術】
【0002】
市場において入手可能な小型でリソースが制限されたコンピュータデバイスの数が、ますます多くなっている。これらのデバイスには、セルラ通信デバイス、情報端末、所謂パームトップ・コンピュータ等が含まれる。近年、これらのデバイスをインターネットに接続し、移植可能なコード・アプリケーション又はジャバ(java)アプリケーション等のアプリケーションをロードして実行しようとする努力がなされてきた。通常の汎用コンピュータは、ランダム・アクセス・メモリ(RAM)や複雑で高度なファイル・システム等のコンピュータ処理用のリソースを備えているが、これらの組込み環境は、一般的に、同じレベルのリソースを備えていない。
【発明の開示】
【発明が解決しようとする課題】
【0003】
組込み環境においてリソースが制限されていると、デバイス内でアプリケーションを呼び出す際、問題が生じる。発生する問題の1つは、アプリケーションを如何にしてロードして実行するか、また、実行中、デバイスメモリ内のどこにコードを常駐させるべきかである。この問題に対しては、従来2つの解決策がある。第1の方法として、アプリケーションは、やろうと思えば、RAMに完全にロードすることが可能である。RAMにアプリケーションをロードするには、アプリケーション・ファイルと同じサイズのRAM及び変数並びにデータ構造用の追加のRAMが必要な場合がある。しかしながら、通常、この種類のデバイスに備えられるRAMは、豊富ではなく、このため、本アプローチの実用性が制限される。第2の方法は、コードがファイル・システム中に常駐しつつ、コードを実行することである。このためには、ファイル・システムがかなり高度である必要があり、また、クラスへポインタを更新する等かなりの量の“ハウスキーピング”を実行する必要がある。組込み環境においては、リソースが制限されているため、この方法もまた望ましいアプローチではない。これらのアプローチのいずれも場合も、コードが移動した場合、又は、アプリケーションが呼び出す他のコードが移動した場合、ランタイムに問題がある。このことは、リンカーは、ランタイムにおいて、他のルーチン、データ等を呼び出す際、用いるポインタを更新しなければならないことから、汎用コンピュータのアプリケーション管理においてもよくあることである。従って、過剰なRAMを用いることなく、あるいは、高度なファイル管理システムを必要とせずに、アプリケーションをロードして実行する方法が必要である。
【課題を解決するための手段】
【0004】
本発明は、組込み環境において、アプリケーションをローディングして実行する方法を提供する。本方法は、不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階と、アプリケーションの圧縮版を含むアーカイブ・ファイルをダウンロードする段階を含む。通常、アーカイブ・ファイルは、記憶空間の不揮発性メモリに記憶される。アプリケーションをインストールする場合、組込み環境は、アプリケーションの圧縮版の解凍を開始し、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスを決定し始める。最後に、対応する物理アドレスを有するアプリケーションが、再生領域メモリ空間に書き込まれる。一旦、アプリケーションがインストールされると、デバイスは、アプリケーションを再生領域から実行し得る。
【0005】
ウェブ上で使用可能なセルラ式電話等の携帯通信デバイスの場合、本発明は、携帯通信デバイスにおいて、javaアプリケーションをロードしてインストールする方法を提供する。同様に、携帯通信デバイスにおいて、本方法は、携帯通信デバイスの不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階を含む。一旦携帯通信デバイスが動作すれば、ユーザはインターネットを閲覧して、適切なアプリケーションを見つけることができる。そして、当技術分野で知られているように、携帯通信デバイスと通信サービス・インフラ装置との間の無線インターフェースを介して、インターネット・サーバからjavaアーカイブ(JAR)ファイルのダウンロードを開始できる。JARファイルは、通常、アプリケーションの圧縮バイト・コード版と、開発者の公開キーで署名されたデジタル証明書等の認証ファイルを含む。ユーザがアプリケーションをインストールしようと決めた場合、携帯通信デバイスは、アプリケーションの圧縮版の解凍を開始してアプリケーション・バイト・コードを得る。処理中の或る時点で、携帯通信デバイスは、認証ファイルを用いて、JARファイルの認証を開始する。バイト・コードを再生領域に書き込む前に、携帯通信デバイスは、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスの決定を行ない、そして、対応する物理アドレスを有するアプリケーション・バイト・コードを再生領域メモリ空間に書き込む。アプリケーションは、呼び出されると、javaバーチャルマシン環境を利用して再生領域から実行される。
【発明の効果】
【0006】
従って、本発明は、指定された又は所定の不揮発性メモリ空間にアプリケーションをローディングし、ポインタと対向する物理アドレスを用い、不揮発性メモリからアプリケーション・コードを実行することによって、アプリケーションをインストールして実行する従来の方法の問題を回避するものである。この手法により、アプリケーションはメモリ内に残り、従来方法によるインストール処理を経ること無くアプリケーションの呼出しが可能になる。これらの理由により、本発明は、特に、javaや他の移植可能なコード環境において有用である。
【発明を実施するための最良の形態】
【0007】
本明細書は、新規性があると見なされる本発明の特徴を規定する特許請求の範囲で締めくくるが、図面と共に以下の説明を考察することにより、本発明の理解が深まるものと考える。図面中において、同様な参照番号は、繰り返し用いてある。本発明は、アプリケーションを不揮発性メモリにインストールし、その不揮発性メモリからアプリケーションを実行することによって、RAM使用法の問題、及び、ランタイム遅延を解決する。本発明によると、アプリケーションは、デバイスをオフにした時、インスタンスが生成されたままになるという付加的な利点があるため、後でデバイスをオンにした時、再インストールする必要がない。
【0008】
次に、図1において、組込みコンピュータ処理デバイス100のブロック図を示す。具体的には、本ブロック図は、コントローラ102と、バス108を介してコントローラに接続された2つの形態のメモリ(RAM104と不揮発性メモリ106)のみを示す。チップ選択ライン110により、コントローラは、いずれかのメモリにアクセスできる。一般的に、当該技術分野ではよくあるように、コントローラは、マイクロコントローラ又はマイクロプロセッサである。同様に、RAM104は、従来のスクラッチ・パッド・メモリである。不揮発性メモリは、プログラム可能なメモリ部を含む。好適な実施形態において、不揮発性メモリは、所謂フラッシュ・メモリである。不揮発性メモリは、ユーザが記憶したいデータと共に、デバイスを駆動する実行可能なコードを記憶するために用いられる。更に、本発明に基づき、不揮発性メモリは、後述するように、アプリケーションをイ
ンストールするための専用メモリ空間を有しており、アプリケーションは、不揮発性メモリ中においてインストールされた位置から実行される。
【0009】
次に、図2において、本発明に基づくデータ構造構成のメモリ図202を示す。セクション202は、再生領域専用のメモリ空間を示し、ここでは、javaアプレットや他の移植可能なコード等のアプリケーションがインストールされ、また、ユーザによって、又はアプリケーション・マネージャの動作によって除去されるまで常駐する。再生領域は、デバイスによってプログラム可能でなければならず、また好適には、消去可能でなくてはならない。メモリの他のセクションは、アプリケーション・ファイル204を記憶するために用い得る。アプリケーション・ファイルには、例えば、ライセンス・ファイル、デスクリプタ・ファイル、及びセキュリティのためにアプリケーション・ファイルのソースを認証するために用いられるファイル等の様々なファイルと共に、圧縮された実行可能なコードが含まれる。本発明の1つの実施形態において、再生領域マネージャ206は、再生領域にインストールされたアプリケーションを管理するために用いられる。メモリ空間には限界があるため、また、ユーザが、メモリ空間の大きさを越えてアプリケーションをインストールしたい場合があるため、マネージャは、新しいアプリケーションをインストールできるように、どのアプリケーションをメモリからアンインストール又は消去できるか決定する。再生領域マネージャは、ユーザ・インターフェースで実現可能であり、インストールされているどのアプリケーションを削除すべきかユーザに選択させる。あるいは、例えば、現在再生領域にインストールされているアプリケーションの最近の使用履歴を記録することによって、ユーザに分かるようにセットアップすることが可能である。そして、新しいアプリケーションをインストールする必要がある時、再生領域マネージャは、使用履歴が最も古いアプリケーションをアンインストールする。削除したアプリケーションを後で実行する必要がある場合、再生領域マネージャは、単に、使用履歴が最も古いアプリケーションを消去し、以前削除したアプリケーションを再インストールする。このことには、従来のランタイム・リンクが必要であるが、全体的には、不揮発性メモリにアプリケーションをインストールすることによって、時間節約が可能である。
【0010】
インストール、リンク、実行は、ローダ・メモリ空間208において、コードによって行なわれる。好適な実施形態において、組込み環境には、例えば、kJava・バーチャルマシンすなわちKVM等の移植可能なコードを実行する手段も設けられるが、この移植可能なコードは、ローダ・メモリ空間にも常駐し得る。ローダ及びKVMは、従来の方法で動作する。勿論、組込み環境は、例えば、ユーザ・インターフェース、送受信機制御、音声制御等、他の機能を実行する他のコード210も含む。1つの重要なアプリケーションは、当技術分野において知られているように、フラッシュ・メディア・マネージャ(FMM)等のメモリマネージャ、即ち、メディアマネージャである。FMMは、他のアプリケーション、アルゴリズム、及びルーチンによって必要とされる低レベルのメモリ動作を制御する。例えば、FMMは、ローダの命令に従って、再生領域へのアプリケーションのインストールを実行する。従って、ローダは、メモリで何をしたいか決定し、FMMは、フラッシュ・メモリを管理することによって、命令を実行する。
【0011】
次に、図3において、本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法のフローチャート図300を示す。アプリケーションをインストールして実行するために、第1ステップでは、デバイスがアーカイブ・ファイルを取得する(302)。このことは、インターネット接続等のネットワーク接続を介して、サーバからアーカイブ・ファイルをダウンロードすることによって実現し得る。1つの実施形態において、デバイスは、インターネットが可能なセルラ式電話又はそれと同等品等の携帯通信デバイスであることが考えられる。更に、アーカイブ・ファイルは、例えば、javaアーカイブ・ファイルすなわちJARであってよい。移動電話機等のモバイル・デバイス用Java仕様は、公開されており、従って、このようなデバイス上で用いられるjavaアプリケーションを開発する開発者が存在する。但し、PDAや他のこのようなデバイスでも同様である。アーカイブ・ファイは、例えば、汎用コンピュータとのローカル接続を介してロードすることによって、デバイスにロードしてもよい。ローカル接続は、RS−232等のシリアル接続を介して行なうことができる。
【0012】
デバイスがアーカイブ・ファイルを取得している場合、デバイスは、それをメモリに記憶しなければならない(304)。アーカイブ・ファイルのメモリへの記憶は、そのファイルを不揮発性メモリ106に保存することによって実行される。アーカイブ・ファイルのダウンロード処理には、セキュリティのために、ファイルの認証を含んでよい。アーカイブ・ファイルがJARである場合、認証は通常通り実行される。アーカイブ・ファイルを取得して記憶した後、そのファイルは、デバイスのユーザがアーカイブ・ファイルに含まれるアプリケーションのインストールを決めるまで、そのまま使用されなかったり、あるいは、そのアプリケーションは、何らかの他のコードによって呼び出されたりする場合がある。アプリケーションをインストールして実行できるようにする誘因が何であれ、最初にすべきことは、アプリケーションの解凍である。アプリケーションは、RAMにおいて、又は、不揮発性記憶装置の然るべきメモリ空間において、解凍し得る。アプリケーション・コードは、次に、構文解析される。構文解析することによって、アプリケーションが行なう呼出しの論理アドレスが決定される。好適な実施形態において、java等のバーチャルマシン環境で実行可能なアプリケーションは、バイト・コード単位である。構文解析は、既知のように、リンカー/ローダ・アプリケーションによって実行し得る。しかしながら、他の移植可能なコード環境との根本的な違いは、リンカー/ローダ、又は、同等のアプリケーションが、構文解析中に決定された論理アドレスに対応する物理アドレスの決定を開始することである(308)。これによって、所謂“デリファレンス(dereferencing)”の必要が無くなる。また、所定の再生領域メモリ空間等、アプリケーションがインストールされるメモリ空間が正確に分かっている場合、リンカー/ローダは、まず論理アドレスを決定することなく、最初から物理アドレスを決定できる。物理アドレスを決定することで、ポインタを使う必要が無くなり、また、デリファレンスの必要が無くなる。
【0013】
一旦、物理アドレスが決定されると、ローダは、指定された再生領域の1つへアプリケーション・コードの書き込みを開始できる(310)。インストールされた状態で、アプリケーション・コードは、コードの様々な他の部分に対して行なわれる呼出し用の物理アドレスを含む。ポインタの更新は、RAMへアプリケーションをインストールする際の慣例となっており、他のファイルやデータ構造を収容するためにRAMのコンテンツが時折移動されるが、これによって、ポインタを更新する必要が無くなる。物理アドレスを用いると共に不揮発性メモリを用いることで、従来の方法でポインタを保持する必要が無くなる。何故ならば、バイト・コードは、一旦不揮発性メモリにインストールされると決して移動されないからである。更に、アプリケーションがRAM中のバーチャルマシン環境にインストールされる場合とは異なり、不揮発性メモリにアプリケーションをインストールすると、デバイスがオフになった後、アプリケーションのインスタンス生成を継続でき、デバイスをオンする際、アプリケーションを再インストールする必要が無い。アプリケーションは、実行される際、不揮発性メモリ内の所定の位置で実行される。所定の位置でのアプリケーションの実行(312)は、例えば、FMM等の支援を受けて行なわれる。アプリケーションは、ユーザが入力した時、実行してもよく、あるいは、他のアプリケーションや他のソフトウェアエンティティにより呼び出された時、実行してもよい。
【0014】
本発明の好適な実施形態について、例示・説明したが、本発明がそのように制限されるものでないことは明らかであろう。添付の特許請求の範囲で規定される本発明の精神及び範囲から逸脱することなく、数多くの変形、変更、修正、置き換え、同等物が、当業者には起こり得る。
【図面の簡単な説明】
【0015】
【図1】組込みコンピュータ処理用デバイスを示すブロック図。
【図2】本発明に基づくデータ構造構成を示すメモリ図。
【図3】本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法を示すフローチャート図。
Claims (10)
- 組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションを不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
前記アプリケーションの圧縮版を含むアーカイブ・ファイルをダウンロードする段階と、
前記アプリケーションの前記圧縮版を解凍する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーションを前記再生領域メモリ空間に書き込む段階と、を含む方法。 - 請求項1に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供する段階を含む方法。 - 請求項1に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、更に
前記再生領域メモリ空間から前記アプリケーションを実行する段階を含む方法。 - 請求項1に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションは、バイト・コード形態のjavaアプリケーションである方法。 - 携帯通信デバイスにおいてjavaアプリケーションをロードして実行するための方法であって、
前記アプリケーションを前記携帯通信デバイスの不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
無線インターフェースを介して、インターネット・サーバから、前記アプリケーションの圧縮バイト・コード版と認証ファイルを含むjavaアーカイブ(JAR)ファイルをダウンロードする段階と、
アプリケーション・バイト・コードを得るために、前記アプリケーションの前記圧縮版を解凍する段階と、
前記認証ファイルを用いて、前記JARファイルを認証する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーション・バイト・コードを前記再生領域メモリ空間に書き込む段階と、を含む方法。 - 請求項5に記載の携帯通信デバイスにおいてjavaアプリケーションをロードして実行するための方法であって、更に、
javaバーチャルマシン環境を用いて、前記再生領域メモリ空間から前記アプリケーションを実行する段階を含む方法。 - 請求項5に記載の携帯通信デバイスにおいてjavaアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供す
る段階を含む方法。 - 組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションを不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
インターネット・サーバから前記アプリケーションをダウンロードする段階と、
前記アプリケーションを、前記不揮発性メモリの記憶メモリ空間に記憶する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーションを前記再生領域メモリ空間に書き込む段階と、
前記アプリケーションを、前記再生領域メモリ空間から実行する段階と、を含む方法。 - 請求項8に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供する段階を含む方法。 - 請求項8に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションは、バイト・コード形態のjavaアプリケーションであり、前記実行する段階は、javaバーチャルマシン環境を用いて、前記javaバイト・コードを実行する段階を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/811,332 US20040015960A1 (en) | 2001-03-16 | 2001-03-16 | Method for loading and executing an application in an embedded environment |
PCT/US2002/004954 WO2002075531A1 (en) | 2001-03-16 | 2002-02-20 | Method for loading and executing an application in an embedded environment |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004530201A true JP2004530201A (ja) | 2004-09-30 |
Family
ID=25206254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002574071A Withdrawn JP2004530201A (ja) | 2001-03-16 | 2002-02-20 | 組込み環境においてアプリケーションをロードして実行するための方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20040015960A1 (ja) |
JP (1) | JP2004530201A (ja) |
KR (1) | KR20040004557A (ja) |
CN (1) | CN1502075A (ja) |
BR (1) | BR0208166A (ja) |
CA (1) | CA2441121A1 (ja) |
IL (1) | IL157912A0 (ja) |
WO (1) | WO2002075531A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912543B2 (en) * | 2000-11-14 | 2005-06-28 | International Business Machines Corporation | Object-oriented method and system for transferring a file system |
US20040002970A1 (en) * | 2002-06-28 | 2004-01-01 | Jeong Hur | System and method for storing information searched on the Internet for portable audio apparatus |
US20040025009A1 (en) * | 2002-07-31 | 2004-02-05 | Camber August A. | Method and apparatus for acceleration of multimedia content |
JP3912278B2 (ja) * | 2002-12-20 | 2007-05-09 | 株式会社日立製作所 | 組込みコントローラ及び組込みコントローラ開発ツール |
JP4323190B2 (ja) * | 2003-03-07 | 2009-09-02 | 株式会社エヌ・ティ・ティ・ドコモ | 通信端末 |
US6976253B1 (en) * | 2003-07-30 | 2005-12-13 | Microsoft Corporation | Method and apparatus for configuring a mobile device |
KR100591840B1 (ko) * | 2003-12-26 | 2006-06-20 | 주식회사 팬택앤큐리텔 | 이동통신 단말기의 리소스 관리 시스템 |
US20050149990A1 (en) * | 2004-01-06 | 2005-07-07 | Fairhurst Jon A. | Actuating selected Java Applets on a TV using a remote control |
US7827558B2 (en) * | 2004-06-30 | 2010-11-02 | Devicevm, Inc. | Mechanism for enabling a program to be executed while the execution of an operating system is suspended |
EP1624372A1 (en) * | 2004-08-05 | 2006-02-08 | Sony Ericsson Mobile Communications AB | Compact storage of program code on mobile terminals |
US7606973B2 (en) * | 2004-09-08 | 2009-10-20 | International Business Machines Corporation | System and method for pervasive computing with a portable non-volatile memory device |
CN1303526C (zh) * | 2004-09-23 | 2007-03-07 | 倚天资讯股份有限公司 | 下载安装软件的方法 |
US7398381B2 (en) | 2004-12-10 | 2008-07-08 | Intel Corporation | Utilizing paging to support dynamic code updates |
DE102005000653A1 (de) * | 2005-01-04 | 2006-07-13 | Robert Bosch Gmbh | Skriptbasierte Software-Installation über Broadcast-Transportmedien |
US8418226B2 (en) * | 2005-03-18 | 2013-04-09 | Absolute Software Corporation | Persistent servicing agent |
KR100746035B1 (ko) * | 2006-03-07 | 2007-08-06 | 삼성전자주식회사 | 리니어 파일 시스템을 이용한 리소스 관리를 제공하는 장치및 방법 |
CN100414501C (zh) * | 2006-07-18 | 2008-08-27 | 华为技术有限公司 | 一种嵌入式操作系统加载逻辑文件的方法和嵌入式系统 |
CN100464300C (zh) * | 2006-11-15 | 2009-02-25 | Ut斯达康通讯有限公司 | 基于arm的二进制执行环境平台及利用它的加载方法 |
US8495622B2 (en) * | 2007-11-07 | 2013-07-23 | International Business Machines Corporation | Micro installation process for software packaging and distribution |
WO2010016833A1 (en) | 2008-08-05 | 2010-02-11 | Hewlett-Packard Development Company, L.P. | Method and device for customizing software |
US20100153667A1 (en) * | 2008-12-15 | 2010-06-17 | Sony Ericsson Mobile Communications Ab | Method, computer program and electronic device |
DE102012016164A1 (de) * | 2012-08-14 | 2014-02-20 | Giesecke & Devrient Gmbh | Sicherheitselement und Verfahren zur Installation von Daten in dem Sicherheitselement |
GB2547921B (en) * | 2016-03-03 | 2019-05-29 | F Secure Corp | Authenticating or controlling software application on end user device |
CN106371884B (zh) * | 2016-09-18 | 2019-12-20 | 时瑞科技(深圳)有限公司 | 通用嵌入式加载应用系统及方法 |
CN110569040A (zh) * | 2019-09-17 | 2019-12-13 | 深圳市优创亿科技有限公司 | 一种在嵌入式系统内安装、运行应用程序的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530847A (en) * | 1993-03-22 | 1996-06-25 | Dell Usa, L.P. | System and method for loading compressed embedded diagnostics |
US5463766A (en) * | 1993-03-22 | 1995-10-31 | Dell Usa, L.P. | System and method for loading diagnostics routines from disk |
US5606660A (en) * | 1994-10-21 | 1997-02-25 | Lexar Microsystems, Inc. | Method and apparatus for combining controller firmware storage and controller logic in a mass storage system |
US5717887A (en) * | 1995-07-28 | 1998-02-10 | Nomai Sa | System for the automatic substitution of control firmware embedded in a removable disk drive |
US5701492A (en) * | 1996-03-29 | 1997-12-23 | Canon Kabushiki Kaisha | Fail-safe flashing of EPROM |
US5794049A (en) * | 1996-06-05 | 1998-08-11 | Sun Microsystems, Inc. | Computer system and method for executing architecture specific code with reduced run-time memory space requirements |
US5859982A (en) * | 1996-06-05 | 1999-01-12 | Sun Microsystems, Inc. | Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements |
US5812857A (en) * | 1996-08-28 | 1998-09-22 | Extended Systems, Inc. | Field configurable embedded computer system |
US6220510B1 (en) * | 1997-05-15 | 2001-04-24 | Mondex International Limited | Multi-application IC card with delegation feature |
FR2771829B1 (fr) * | 1997-12-03 | 2000-02-18 | Rue Cartes Et Systemes De | Procede de gestion des ressources de memoire dans une carte a microcircuit |
US6289300B1 (en) * | 1998-02-06 | 2001-09-11 | Analog Devices, Inc. | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
AU2001288757A1 (en) * | 2000-09-01 | 2002-03-13 | Op40, Inc. | System, method, uses, products, program products, and business methods for distributed internet and distributed network services |
-
2001
- 2001-03-16 US US09/811,332 patent/US20040015960A1/en not_active Abandoned
-
2002
- 2002-02-20 WO PCT/US2002/004954 patent/WO2002075531A1/en active Application Filing
- 2002-02-20 CA CA002441121A patent/CA2441121A1/en not_active Abandoned
- 2002-02-20 JP JP2002574071A patent/JP2004530201A/ja not_active Withdrawn
- 2002-02-20 BR BR0208166-0A patent/BR0208166A/pt not_active IP Right Cessation
- 2002-02-20 KR KR10-2003-7012083A patent/KR20040004557A/ko not_active Application Discontinuation
- 2002-02-20 IL IL15791202A patent/IL157912A0/xx unknown
- 2002-02-20 CN CNA028080718A patent/CN1502075A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20040004557A (ko) | 2004-01-13 |
WO2002075531A1 (en) | 2002-09-26 |
US20040015960A1 (en) | 2004-01-22 |
CA2441121A1 (en) | 2002-09-26 |
CN1502075A (zh) | 2004-06-02 |
BR0208166A (pt) | 2004-03-23 |
IL157912A0 (en) | 2004-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004530201A (ja) | 組込み環境においてアプリケーションをロードして実行するための方法 | |
US8694981B2 (en) | Shared resource dependencies | |
US20070169099A1 (en) | Firmware update system for facilitating firmware update in mobile handset | |
KR100883699B1 (ko) | 무선 장치 동작 환경에서 비검증된 프로그램들의 실행 | |
EP1967981A1 (en) | Program execution control method, device, and execution control program | |
JP2008524686A (ja) | コンピュータ装置においてアプリケーションを保守する方法 | |
KR20040032199A (ko) | 비휘발성 메모리에의 데이터 저장 방법 및 장치 | |
JP2005122725A (ja) | スマートメモリパススルー通信のための方法及び装置 | |
CN111427596B (zh) | 一种软件升级的方法、装置及终端设备 | |
CN110543369A (zh) | 一种安卓系统存储空间结构的构建方法、装置及其构建结构 | |
CN103810416A (zh) | 一种软件安装或卸载方法及装置 | |
CN108228077B (zh) | 存储区的管理方法、运行方法、装置、设备、可读介质 | |
KR20120109800A (ko) | Fota 기반의 데이터 갱신 방법 및 이를 지원하는 휴대 단말기 | |
WO2023202299A1 (zh) | 一种sdk升级方法、装置以及计算机设备 | |
WO2022227409A1 (zh) | 一种嵌入式终端远程软件更新方法 | |
JP4602644B2 (ja) | 通信端末装置およびアプリケーションプログラム | |
CN101158898A (zh) | 基于Java的终端系统 | |
KR20190020677A (ko) | Nand 스토리지 디바이스에 대한 선제적 압축해제 스케줄링 | |
US7681009B2 (en) | Dynamically updateable and moveable memory zones | |
US20220413828A1 (en) | Unified Local Patch Repository | |
CN115760391A (zh) | 区块链中智能合约更改方法、装置、电子设备及存储介质 | |
WO2019157891A1 (zh) | 应用安装方法、应用安装包的生成方法 | |
KR20020006165A (ko) | 휴대폰의 프로그램 업그레이드 방법 | |
US11340915B2 (en) | Encaching and sharing transformed libraries | |
JP4638505B2 (ja) | 電子デバイス内の安全なプログラム解釈方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050221 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20061005 |