(57)【要約】携帯通信デバイスに存在するような組込み環境が、アプリケーション・ファイルを記憶するための不揮発性メモリ（１０６）を備える。不揮発性メモリは、再生領域（２０２）と呼ばれるセクションを含み、ここで、アプリケーションが、インストールされ、また、ここからアプリケーションが実行される。アプリケーションをインストールすると、アプリケーションによって他のセクションのコードを呼び出すために用いられる物理アドレスが、呼び出されるセクションのコードと共に、決定され（３０８）、そして、アプリケーションは、その物理アドレスを有する再生領域に書き込まれ、その再生領域から実行される。
2004530201.tif 000002
【特許請求の範囲】
【請求項１】
組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションを不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
前記アプリケーションの圧縮版を含むアーカイブ・ファイルをダウンロードする段階と、
前記アプリケーションの前記圧縮版を解凍する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーションを前記再生領域メモリ空間に書き込む段階と、を含む方法。
【請求項２】
請求項１に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供する段階を含む方法。
【請求項３】
請求項１に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、更に
前記再生領域メモリ空間から前記アプリケーションを実行する段階を含む方法。
【請求項４】
請求項１に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションは、バイト・コード形態のｊａｖａアプリケーションである方法。
【請求項５】
携帯通信デバイスにおいてｊａｖａアプリケーションをロードして実行するための方法であって、
前記アプリケーションを前記携帯通信デバイスの不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
無線インターフェースを介して、インターネット・サーバから、前記アプリケーションの圧縮バイト・コード版と認証ファイルを含むｊａｖａアーカイブ（ＪＡＲ）ファイルをダウンロードする段階と、
アプリケーション・バイト・コードを得るために、前記アプリケーションの前記圧縮版を解凍する段階と、
前記認証ファイルを用いて、前記ＪＡＲファイルを認証する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーション・バイト・コードを前記再生領域メモリ空間に書き込む段階と、を含む方法。
【請求項６】
請求項５に記載の携帯通信デバイスにおいてｊａｖａアプリケーションをロードして実行するための方法であって、更に、
ｊａｖａバーチャルマシン環境を用いて、前記再生領域メモリ空間から前記アプリケーションを実行する段階を含む方法。
【請求項７】
請求項５に記載の携帯通信デバイスにおいてｊａｖａアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供す
る段階を含む方法。
【請求項８】
組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションを不揮発性メモリに記憶するための所定の再生領域メモリ空間を提供する段階と、
インターネット・サーバから前記アプリケーションをダウンロードする段階と、
前記アプリケーションを、前記不揮発性メモリの記憶メモリ空間に記憶する段階と、
前記アプリケーションが一旦前記再生領域メモリ空間にインストールされると、前記アプリケーションが用いる物理アドレスを決定する段階と、
対応する前記物理アドレスを有する前記アプリケーションを前記再生領域メモリ空間に書き込む段階と、
前記アプリケーションを、前記再生領域メモリ空間から実行する段階と、を含む方法。
【請求項９】
請求項８に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記提供する段階は、フラッシュ・メモリ内に前記所定の再生領域メモリ空間を提供する段階を含む方法。
【請求項１０】
請求項８に記載の組込み環境においてアプリケーションをロードして実行するための方法であって、
前記アプリケーションは、バイト・コード形態のｊａｖａアプリケーションであり、前記実行する段階は、ｊａｖａバーチャルマシン環境を用いて、前記ｊａｖａバイト・コードを実行する段階を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、アプリケーションを呼び出して実行するための方法に関し、特に、リソースが限定された組込みシステムにおいて、アプリケーションを呼び出して実行するための方法に関する。
【背景技術】
【０００２】
市場において入手可能な小型でリソースが制限されたコンピュータデバイスの数が、ますます多くなっている。これらのデバイスには、セルラ通信デバイス、情報端末、所謂パームトップ・コンピュータ等が含まれる。近年、これらのデバイスをインターネットに接続し、移植可能なコード・アプリケーション又はジャバ（ｊａｖａ）アプリケーション等のアプリケーションをロードして実行しようとする努力がなされてきた。通常の汎用コンピュータは、ランダム・アクセス・メモリ（ＲＡＭ）や複雑で高度なファイル・システム等のコンピュータ処理用のリソースを備えているが、これらの組込み環境は、一般的に、同じレベルのリソースを備えていない。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
組込み環境においてリソースが制限されていると、デバイス内でアプリケーションを呼び出す際、問題が生じる。発生する問題の１つは、アプリケーションを如何にしてロードして実行するか、また、実行中、デバイスメモリ内のどこにコードを常駐させるべきかである。この問題に対しては、従来２つの解決策がある。第１の方法として、アプリケーションは、やろうと思えば、ＲＡＭに完全にロードすることが可能である。ＲＡＭにアプリケーションをロードするには、アプリケーション・ファイルと同じサイズのＲＡＭ及び変数並びにデータ構造用の追加のＲＡＭが必要な場合がある。しかしながら、通常、この種類のデバイスに備えられるＲＡＭは、豊富ではなく、このため、本アプローチの実用性が制限される。第２の方法は、コードがファイル・システム中に常駐しつつ、コードを実行することである。このためには、ファイル・システムがかなり高度である必要があり、また、クラスへポインタを更新する等かなりの量の“ハウスキーピング”を実行する必要がある。組込み環境においては、リソースが制限されているため、この方法もまた望ましいアプローチではない。これらのアプローチのいずれも場合も、コードが移動した場合、又は、アプリケーションが呼び出す他のコードが移動した場合、ランタイムに問題がある。このことは、リンカーは、ランタイムにおいて、他のルーチン、データ等を呼び出す際、用いるポインタを更新しなければならないことから、汎用コンピュータのアプリケーション管理においてもよくあることである。従って、過剰なＲＡＭを用いることなく、あるいは、高度なファイル管理システムを必要とせずに、アプリケーションをロードして実行する方法が必要である。
【課題を解決するための手段】
【０００４】
本発明は、組込み環境において、アプリケーションをローディングして実行する方法を提供する。本方法は、不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階と、アプリケーションの圧縮版を含むアーカイブ・ファイルをダウンロードする段階を含む。通常、アーカイブ・ファイルは、記憶空間の不揮発性メモリに記憶される。アプリケーションをインストールする場合、組込み環境は、アプリケーションの圧縮版の解凍を開始し、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスを決定し始める。最後に、対応する物理アドレスを有するアプリケーションが、再生領域メモリ空間に書き込まれる。一旦、アプリケーションがインストールされると、デバイスは、アプリケーションを再生領域から実行し得る。
【０００５】
ウェブ上で使用可能なセルラ式電話等の携帯通信デバイスの場合、本発明は、携帯通信デバイスにおいて、ｊａｖａアプリケーションをロードしてインストールする方法を提供する。同様に、携帯通信デバイスにおいて、本方法は、携帯通信デバイスの不揮発性メモリにアプリケーションを記憶するための所定の再生領域メモリ空間を提供する段階を含む。一旦携帯通信デバイスが動作すれば、ユーザはインターネットを閲覧して、適切なアプリケーションを見つけることができる。そして、当技術分野で知られているように、携帯通信デバイスと通信サービス・インフラ装置との間の無線インターフェースを介して、インターネット・サーバからｊａｖａアーカイブ（ＪＡＲ）ファイルのダウンロードを開始できる。ＪＡＲファイルは、通常、アプリケーションの圧縮バイト・コード版と、開発者の公開キーで署名されたデジタル証明書等の認証ファイルを含む。ユーザがアプリケーションをインストールしようと決めた場合、携帯通信デバイスは、アプリケーションの圧縮版の解凍を開始してアプリケーション・バイト・コードを得る。処理中の或る時点で、携帯通信デバイスは、認証ファイルを用いて、ＪＡＲファイルの認証を開始する。バイト・コードを再生領域に書き込む前に、携帯通信デバイスは、一旦アプリケーションが再生領域メモリ空間にインストールされると、アプリケーションが用いる物理アドレスの決定を行ない、そして、対応する物理アドレスを有するアプリケーション・バイト・コードを再生領域メモリ空間に書き込む。アプリケーションは、呼び出されると、ｊａｖａバーチャルマシン環境を利用して再生領域から実行される。
【発明の効果】
【０００６】
従って、本発明は、指定された又は所定の不揮発性メモリ空間にアプリケーションをローディングし、ポインタと対向する物理アドレスを用い、不揮発性メモリからアプリケーション・コードを実行することによって、アプリケーションをインストールして実行する従来の方法の問題を回避するものである。この手法により、アプリケーションはメモリ内に残り、従来方法によるインストール処理を経ること無くアプリケーションの呼出しが可能になる。これらの理由により、本発明は、特に、ｊａｖａや他の移植可能なコード環境において有用である。
【発明を実施するための最良の形態】
【０００７】
本明細書は、新規性があると見なされる本発明の特徴を規定する特許請求の範囲で締めくくるが、図面と共に以下の説明を考察することにより、本発明の理解が深まるものと考える。図面中において、同様な参照番号は、繰り返し用いてある。本発明は、アプリケーションを不揮発性メモリにインストールし、その不揮発性メモリからアプリケーションを実行することによって、ＲＡＭ使用法の問題、及び、ランタイム遅延を解決する。本発明によると、アプリケーションは、デバイスをオフにした時、インスタンスが生成されたままになるという付加的な利点があるため、後でデバイスをオンにした時、再インストールする必要がない。
【０００８】
次に、図１において、組込みコンピュータ処理デバイス１００のブロック図を示す。具体的には、本ブロック図は、コントローラ１０２と、バス１０８を介してコントローラに接続された２つの形態のメモリ（ＲＡＭ１０４と不揮発性メモリ１０６）のみを示す。チップ選択ライン１１０により、コントローラは、いずれかのメモリにアクセスできる。一般的に、当該技術分野ではよくあるように、コントローラは、マイクロコントローラ又はマイクロプロセッサである。同様に、ＲＡＭ１０４は、従来のスクラッチ・パッド・メモリである。不揮発性メモリは、プログラム可能なメモリ部を含む。好適な実施形態において、不揮発性メモリは、所謂フラッシュ・メモリである。不揮発性メモリは、ユーザが記憶したいデータと共に、デバイスを駆動する実行可能なコードを記憶するために用いられる。更に、本発明に基づき、不揮発性メモリは、後述するように、アプリケーションをイ
ンストールするための専用メモリ空間を有しており、アプリケーションは、不揮発性メモリ中においてインストールされた位置から実行される。
【０００９】
次に、図２において、本発明に基づくデータ構造構成のメモリ図２０２を示す。セクション２０２は、再生領域専用のメモリ空間を示し、ここでは、ｊａｖａアプレットや他の移植可能なコード等のアプリケーションがインストールされ、また、ユーザによって、又はアプリケーション・マネージャの動作によって除去されるまで常駐する。再生領域は、デバイスによってプログラム可能でなければならず、また好適には、消去可能でなくてはならない。メモリの他のセクションは、アプリケーション・ファイル２０４を記憶するために用い得る。アプリケーション・ファイルには、例えば、ライセンス・ファイル、デスクリプタ・ファイル、及びセキュリティのためにアプリケーション・ファイルのソースを認証するために用いられるファイル等の様々なファイルと共に、圧縮された実行可能なコードが含まれる。本発明の１つの実施形態において、再生領域マネージャ２０６は、再生領域にインストールされたアプリケーションを管理するために用いられる。メモリ空間には限界があるため、また、ユーザが、メモリ空間の大きさを越えてアプリケーションをインストールしたい場合があるため、マネージャは、新しいアプリケーションをインストールできるように、どのアプリケーションをメモリからアンインストール又は消去できるか決定する。再生領域マネージャは、ユーザ・インターフェースで実現可能であり、インストールされているどのアプリケーションを削除すべきかユーザに選択させる。あるいは、例えば、現在再生領域にインストールされているアプリケーションの最近の使用履歴を記録することによって、ユーザに分かるようにセットアップすることが可能である。そして、新しいアプリケーションをインストールする必要がある時、再生領域マネージャは、使用履歴が最も古いアプリケーションをアンインストールする。削除したアプリケーションを後で実行する必要がある場合、再生領域マネージャは、単に、使用履歴が最も古いアプリケーションを消去し、以前削除したアプリケーションを再インストールする。このことには、従来のランタイム・リンクが必要であるが、全体的には、不揮発性メモリにアプリケーションをインストールすることによって、時間節約が可能である。
【００１０】
インストール、リンク、実行は、ローダ・メモリ空間２０８において、コードによって行なわれる。好適な実施形態において、組込み環境には、例えば、ｋＪａｖａ・バーチャルマシンすなわちＫＶＭ等の移植可能なコードを実行する手段も設けられるが、この移植可能なコードは、ローダ・メモリ空間にも常駐し得る。ローダ及びＫＶＭは、従来の方法で動作する。勿論、組込み環境は、例えば、ユーザ・インターフェース、送受信機制御、音声制御等、他の機能を実行する他のコード２１０も含む。１つの重要なアプリケーションは、当技術分野において知られているように、フラッシュ・メディア・マネージャ（ＦＭＭ）等のメモリマネージャ、即ち、メディアマネージャである。ＦＭＭは、他のアプリケーション、アルゴリズム、及びルーチンによって必要とされる低レベルのメモリ動作を制御する。例えば、ＦＭＭは、ローダの命令に従って、再生領域へのアプリケーションのインストールを実行する。従って、ローダは、メモリで何をしたいか決定し、ＦＭＭは、フラッシュ・メモリを管理することによって、命令を実行する。
【００１１】
次に、図３において、本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法のフローチャート図３００を示す。アプリケーションをインストールして実行するために、第１ステップでは、デバイスがアーカイブ・ファイルを取得する（３０２）。このことは、インターネット接続等のネットワーク接続を介して、サーバからアーカイブ・ファイルをダウンロードすることによって実現し得る。１つの実施形態において、デバイスは、インターネットが可能なセルラ式電話又はそれと同等品等の携帯通信デバイスであることが考えられる。更に、アーカイブ・ファイルは、例えば、ｊａｖａアーカイブ・ファイルすなわちＪＡＲであってよい。移動電話機等のモバイル・デバイス用Ｊａｖａ仕様は、公開されており、従って、このようなデバイス上で用いられるｊａｖａアプリケーションを開発する開発者が存在する。但し、ＰＤＡや他のこのようなデバイスでも同様である。アーカイブ・ファイは、例えば、汎用コンピュータとのローカル接続を介してロードすることによって、デバイスにロードしてもよい。ローカル接続は、ＲＳ−２３２等のシリアル接続を介して行なうことができる。
【００１２】
デバイスがアーカイブ・ファイルを取得している場合、デバイスは、それをメモリに記憶しなければならない（３０４）。アーカイブ・ファイルのメモリへの記憶は、そのファイルを不揮発性メモリ１０６に保存することによって実行される。アーカイブ・ファイルのダウンロード処理には、セキュリティのために、ファイルの認証を含んでよい。アーカイブ・ファイルがＪＡＲである場合、認証は通常通り実行される。アーカイブ・ファイルを取得して記憶した後、そのファイルは、デバイスのユーザがアーカイブ・ファイルに含まれるアプリケーションのインストールを決めるまで、そのまま使用されなかったり、あるいは、そのアプリケーションは、何らかの他のコードによって呼び出されたりする場合がある。アプリケーションをインストールして実行できるようにする誘因が何であれ、最初にすべきことは、アプリケーションの解凍である。アプリケーションは、ＲＡＭにおいて、又は、不揮発性記憶装置の然るべきメモリ空間において、解凍し得る。アプリケーション・コードは、次に、構文解析される。構文解析することによって、アプリケーションが行なう呼出しの論理アドレスが決定される。好適な実施形態において、ｊａｖａ等のバーチャルマシン環境で実行可能なアプリケーションは、バイト・コード単位である。構文解析は、既知のように、リンカー／ローダ・アプリケーションによって実行し得る。しかしながら、他の移植可能なコード環境との根本的な違いは、リンカー／ローダ、又は、同等のアプリケーションが、構文解析中に決定された論理アドレスに対応する物理アドレスの決定を開始することである（３０８）。これによって、所謂“デリファレンス（ｄｅｒｅｆｅｒｅｎｃｉｎｇ）”の必要が無くなる。また、所定の再生領域メモリ空間等、アプリケーションがインストールされるメモリ空間が正確に分かっている場合、リンカー／ローダは、まず論理アドレスを決定することなく、最初から物理アドレスを決定できる。物理アドレスを決定することで、ポインタを使う必要が無くなり、また、デリファレンスの必要が無くなる。
【００１３】
一旦、物理アドレスが決定されると、ローダは、指定された再生領域の１つへアプリケーション・コードの書き込みを開始できる（３１０）。インストールされた状態で、アプリケーション・コードは、コードの様々な他の部分に対して行なわれる呼出し用の物理アドレスを含む。ポインタの更新は、ＲＡＭへアプリケーションをインストールする際の慣例となっており、他のファイルやデータ構造を収容するためにＲＡＭのコンテンツが時折移動されるが、これによって、ポインタを更新する必要が無くなる。物理アドレスを用いると共に不揮発性メモリを用いることで、従来の方法でポインタを保持する必要が無くなる。何故ならば、バイト・コードは、一旦不揮発性メモリにインストールされると決して移動されないからである。更に、アプリケーションがＲＡＭ中のバーチャルマシン環境にインストールされる場合とは異なり、不揮発性メモリにアプリケーションをインストールすると、デバイスがオフになった後、アプリケーションのインスタンス生成を継続でき、デバイスをオンする際、アプリケーションを再インストールする必要が無い。アプリケーションは、実行される際、不揮発性メモリ内の所定の位置で実行される。所定の位置でのアプリケーションの実行（３１２）は、例えば、ＦＭＭ等の支援を受けて行なわれる。アプリケーションは、ユーザが入力した時、実行してもよく、あるいは、他のアプリケーションや他のソフトウェアエンティティにより呼び出された時、実行してもよい。
【００１４】
本発明の好適な実施形態について、例示・説明したが、本発明がそのように制限されるものでないことは明らかであろう。添付の特許請求の範囲で規定される本発明の精神及び範囲から逸脱することなく、数多くの変形、変更、修正、置き換え、同等物が、当業者には起こり得る。
【図面の簡単な説明】
【００１５】
【図１】組込みコンピュータ処理用デバイスを示すブロック図。
【図２】本発明に基づくデータ構造構成を示すメモリ図。
【図３】本発明に基づき、組込みシステムにおいてアプリケーションをロードして実行する方法を示すフローチャート図。
【図１】
2004530201.tif 000003
【図２】
2004530201.tif 000004
【図３】
2004530201.tif 000005
【国際公開パンフレット】
2004530201.tif 000006
2004530201.tif 000007
2004530201.tif 000008
2004530201.tif 000009
2004530201.tif 000010
2004530201.tif 000011
2004530201.tif 000012
2004530201.tif 000013
2004530201.tif 000014
2004530201.tif 000015
2004530201.tif 000016
2004530201.tif 000017
2004530201.tif 000018
2004530201.tif 000019
【国際調査報告】
2004530201.tif 000020
2004530201.tif 000021