(57)【要約】バーチャルマシンを必要とするアプレットは無線装置にダウンロードされる。装置上のソフトウエアプラットホームは実行中にバーチャルマシンがアプレットにより使用されるかを決定する。ユーザの付加的な介入なしにバーチャルマシンは無線装置にダウンロードされる。これはまだバーチャルマシンがインストールされていない装置がバーチャルマシンを必要としているアプレッを使用することを可能にする。さらに別の実施例ではシステムサービスを使用するアプリケーションがロードされるときシステムサービスのダイナミックなロードを含んでいる。システムサービスに関連する特有の識別子が使用されてシステムサービスがロードされているかを決定する。
2004537086.tif 000002
【特許請求の範囲】
【請求項１】
無線装置においてバーチャルマシンを受信する方法において、
無線装置においてバーチャルマシンを使用するアプリケーションをダウンロードするリクエストを送信し、
サーバからアプリケーションおよびアプリケーションがバーチャルマシンを使用することを示す関連する基準を受取り、
基準を使用してバーチャルマシンが無線装置にロードされているか否かを決定し、
バーチャルマシンが無線装置にロードされていない場合には、サーバにリクエストを送ってバーチャルマシンを無線装置にダウンロードするステップを有する方法。
【請求項２】
さらに、アプリケーションに対するリクエストを受信する請求項１記載の方法。
【請求項３】
アプリケーションはＪａｖａコードであり、バーチャルマシンはｊａｖａバーチャルマシンである請求項１記載の方法。
【請求項４】
アプリケーションは実行するときバーチャルマシンを使用する請求項１記載の方法。
【請求項５】
関連するシステムサービスを有するデータを処理する方法において、
システムサービスがデータと関連しているか否かを決定し、
システムサービスが無線装置によってアクセス可能か否かを決定し、
無線装置がサービスにアクセスしていない場合には、無線ネットワークを介してシステムサービスに対するアクセスを得る方法。
【請求項６】
データは実行可能なコードである請求項５記載の方法。
【請求項７】
システムサービスはＪａｖａバーチャルマシンであり、実行可能なコードは実行時にＪａｖａバーチャルマシンを使用する請求項６記載の方法。
【請求項８】
基準はデータと関係しており、さらに、基準を検査することによりシステムサービスがデータと関係しているか否かを決定する請求項５記載の方法。
【請求項９】
さらに、システムサービスを無線ネットワークを介して無線装置中に受信するステップを含んでいる請求項５記載の方法。
【請求項１０】
さらに、無線ネットワークを介して無線装置中にデータを受信するステップを含んでいる請求項５記載の方法。
【請求項１１】
無線装置においてシステムサービスを受信する方法において、
データオブジェクトを無線装置に記憶し、
データオブジェクトがそのデータオブジェクトと関係するシステムサービスを有するか否かを決定し、
システムサービスが無線装置内に位置しているか否かを決定し、
システムサービスが無線装置内にない場合には、システムサービスのためにサーバにリクエストを送り、
無線ネットワークを介してサーバからシステムサービスを受信するステップを含んでいる方法。
【請求項１２】
さらに、データオブジェクトに対するリクエストは無線装置において受信するステップを含んでいる請求項１１記載の方法。
【請求項１３】
システムサービスを有するデータオブジェクトはそのデータオブジェクトと関係する基準の解析とシステムサービスの指示とを含んでいるシステムサービスを有している請求項１１記載の方法。
【請求項１４】
無線装置においてアプリケーションを処理する方法において、
アプリケーションに対するリクエストを受信し、
無線装置を検査してアプリケーションがその無線装置によってアクセス可能か否かを決定し、
アプリケーションがアクセス可能でない場合には、無線装置を使用するサーバからアプリケーションに対するアクセスをリクエストし、
アプリケーションとそのアプリケーションに関連する基準を受取り、その基準はアプリケーションにより使用するシステムサービスを示し、
基準を検査してシステムサービスが無線装置によってアクセス可能か否かを決定し、
システムサービスが無線装置によってアクセス可能でない場合には、無線ネットワークを使用するサーバからシステムサービスへのアクセスをリクエストする方法。
【請求項１５】
さらに、無線ネットワークを介してサーバからアプリケーションを受信するステップを含んでいる請求項１４記載の方法。
【請求項１６】
さらに、無線ネットワークを介してサーバからシステムサービスを受信するステップを含んでいる請求項１４記載の方法。
【請求項１７】
アプリケーションを処理する装置において、
記憶装置とプロセッサとを有する無線装置を具備し、
プロセッサは、データと関連するシステムサービスを決定し、システムサービスが無線装置によりアクセス可能か否かを決定するように構成され、無線装置がサービスにアクセスしていない場合には、無線ネットワークを介してシステムサービスに対するアクセスを得るアプリケーション処理装置。
【請求項１８】
無線装置においてバーチャルマシンを受信する方法を実行し、実行するときコンピュータの実行可能な命令を含んでいるコンピュータ読取り可能な媒体において、
無線装置においてバーチャルマシンを使用してアプリケーションをダウンロードするリクエストを送信し、
アプリケーションとアプリケーションがバーチャルマシンを使用することを示す関連する基準をサーバから受信し、
その基準を使用してバーチャルマシンが無線装置にロードされたか否かを決定し、
バーチャルマシンが無線装置にロードされていない場合には、サーバにリクエストを送り、無線装置にバーチャルマシンをダウンロードするコンピュータ読取り可能な媒体。
【請求項１９】
無線装置においてバーチャルマシンを受信するシステムにおいて、
無線装置においてバーチャルマシンを使用してアプリケーションをダウンロードするリクエストを送信する手段と、
アプリケーションとアプリケーションがバーチャルマシンを使用することを示す関連する基準とをサーバから受信する手段と、
その基準を使用してバーチャルマシンが無線装置にロードされたか否かを決定する手段と、
バーチャルマシンが無線装置にロードされていない場合に、サーバにリクエストを送信し、無線装置にバーチャルマシンをダウンロードする手段とを具備しているシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線装置におけるシステムサービスのダイナミックなダウンロードおよび実行に関する。
【従来の技術】
【０００２】
典型的に、バーチャルマシン、ビュアー、プラグ・インを含むシステムサービスは、必要とされる他のオブジェクトまたはアプリケーションによって使用されるために装置にインストールされる必要がある。例えば、ＪａｖａアプレットはロードされたＪａｖａバーチャルマシンを有する装置で動作する。その結果、Ｊａｖａアプレットを実行しようとする装置は装置にＪａｖａバーチャルマシンをインストールする。典型的に、バーチャルマシンその他のシステムサービスはその実行中装置中に一体化される必要があるため、システムサービスを利用したいアプレット（ａｐｐｌｅｔ）その他のアプリケーションをダウンロードまたは実行しようと試みる前にインストールのダウンロードまたはが行われなければならない。
【０００３】
しかしながら、ある種の装置、特に無線装置は制限された環境を有する。メモリは２次記憶装置および能動プログラムおよびデータのための１次記憶装置を含み、処理は他の大型のコンピュータシステムにおけるよりも遥かにまれである。その結果、必要に基づいてバーチャルマシンのようなあるシステムサービスをダウンロードし、インストールすることが有効である。残念ながら、これらの制限された装置ではシステムサービスは使用されないときでさえメモリ中にインストールまたはロードされ高価なリソースを取り込むことを要求される。さらに、アプリケーションをサポートしているシステムサービスをすでに有していない装置上においてアプリケーションを使用することを望むユーザは、それを行うことを妨害され、阻止される。それはシステムサービスがまだ装置にインストールされていないからである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、装置で動作するアプリケーションの必要性に基づいて装置中でバーチャルマシン、ビュアー、プラグ・イン、フラッシュ・プレイヤー、その他の実行可能なコンテンツまたはデータのようなシステムサービスをダイナミックにダウンロードしてインストールするシステムおよび方法を提供することによって従来技術の欠点を克服する。
【課題を解決するための手段】
【０００５】
１実施形態において、本発明の方法は、ダウンロードされるアプリケーションを使用する無線装置にシステムサービスをダウンロードするステップを含んでいる。そのシステムサービスは、アプリケーションがユーザが介入しないでダウンロードされるときには自動的にダウンロードされてもよい。
【０００６】
別の実施形態において、本発明はまた、アプリケーションが実行のために装置のメモリにロードされ、必要であればバーチャルマシンをロードおよび実行するとき、バーチャルマシンが存在するか否かを検出し、それによりアプリケーションはバーチャルマシン環境で動作することができる。
【発明を実施するための最良の形態】
【０００７】
本発明の例示的な好ましい実施の形態を添付図面を参照にして以下詳細に説明する。図において同様の参照符号は全体を通じて同様の素子を示している。本発明の特徴、目的、および利点は添付図面を参照にした以下の詳細な説明を考慮することによって当業者にはさらに明白になるであろう。
明細書の一部を構成する図面は本発明の好ましい現在の実施例を示しており、上述の一般的な説明および以下説明する好ましい実施形態の詳細な説明によって本発明の原理を説明する。
【０００８】
図１は本発明が実施される環境の例示的な１実施例を示している。この実施例では装置100 は無線ネットワーク125 を使用してサーバ105 と通信する。装置100 はデータおよび／または音声を送信および／または受信することのできる無線装置でよい。無線装置100 はアプリケーション110 および無線装置によって使用されるバーチャルマシン120 のようなシステムサービス115 を含んでいる種々の情報をリクエストする。
【０００９】
無線装置100 はプロセッサおよびメモリ、すなわち、サーバからダウンロードされたアプリケーション110 およびシステムサービス115 を記憶し、ロードし、実行するための１次および２次メモリを備えている。これらのアプリケーション110 およびシステムサービス115 はまた装置特定リソースに対して一般化された呼を与えるような無線装置とインターフェースために使用される無線装置上に位置するソフトウエアプラットホームと相互作用する。そのようなソフトウエアプラットホームはカリホルニア州サンディエゴのクァルコム社によって開発された無線TM（ＢＲＥＷTM）ソフトウエア用の“２進ルーチン環境”である。
【００１０】
当業者は、無線装置100 のアーキテクチャがまた他の部品（示されていないものたは特に示されたもの）を含んでもよいことを認識するであろう。そのような部品にはディスプレイ、スピーカ、マイクロホン、文字および記号入力のためのボタンが含まれているがそれに限定されないことを認識するであろう。無線装置はまた、電源のバッテリ、ＲＯＭ、ＲＡＭおよびフラッシュメモリのような多数の記憶機構、オペレーティングシステム、およびアプリケーション、システムサービス、他の実行可能なコードおよびデータの操作の実行を助ける複合部品を含んでいてもよい。
【００１１】
システムサービスおよびアプリケーションはサーバ105 に位置しているものとして説明されたが、当業者は、アプリケーションおよびソフトウエアは物理的にサーバに配置されていなくてもよい。この場合にはサーバは、他のシステムから無線装置に対してアプリケーションおよびシステムサービスに対するリクエストを行い、その後、リクエストされたファイルをダウンロードし、或いはリクエストされたファイルを無線装置に直接転送するためにリクエストを他のシステムに転送してもよい。
【００１２】
当業者が認識するように、図１は本発明の１つの例示である。装置は無線および非無線装置を含む他のケイシキのシステムを含んでいてもよい。さらに、装置は、無線および非無線装置、私設、および公共のリンク、交換装置を有するまたは有しないリンク、直接リンクおよびそれらの任意の組合わせを含む多数の形式のネットワークおよび通信アーキテクチャによってサーバおよび他のシステムと通信するようにしてもよい。
【００１３】
図２はアプリケーションのダウンロードを含むプロセスを示しており、それは本発明の例示的な実施例にしたがったシステムサービスを使用している。無線装置100 のような装置はサーバ105 からアプリケーションをリクエストする（ステップ200 ）。このリクエストは無線装置からのゲームのような特定のアプリケーションをユーザがリクエストするために開始されてもよい。装置はユーザに利用可能なアプリケーションが全て装置自身に位置していないで、ユーザがアクセスすることのできるアプリケーションの表示でもよいように構成されている。
【００１４】
しかしながら、リクエストはユーザなしに開始されてもよく、システムの保守および直接のユーザの対話を含まないタスクを含んでいてもよい。さらに、リクエストは、データ、システムサービス、または他のタイプの情報を含むアプリケーション以外のファイルのタイプに対するものであってもよい。
【００１５】
その後、装置はサーバからアプリケーションを受信してそれを記憶する（ステップ205 ）。１実施例では、サーバはリクエストされたアプリケーションを装置に送る。しかしながら上述のように、アプリケーションは物理的にサーバに記憶されないでもよく、サーバがリクエストを受取って装置へのアプリケーションのダウンロードを開始してもよい。
【００１６】
その後、装置はアプリケーションがシステムサービスを使用するか否かを決定するためにアプリケーションを検査する（ステップ210 ）。アプリケーションは基準または何らかの識別子を含んでいてもよく、それはシステムサービスがアプリケーションにより使用されることを示す。この基準はアプリケーションとともに、或いは他の方法でアプリケーションと関連させて含まれてもよい。
【００１７】
１実施形態では、アプリケーションはＪａｖａアプレットであり、実行するためにＪａｖａバーチャルマシン（システムサービス）の使用を必要とする。装置は上記したＢＲＥＷTMのようなソフトウエアプラットホームを含んでいてもよい。装置はソフトウエアプラットホームを使用してＪａｖａバーチャルマシンを示すオブジェクトクラスに対してがアプレットによる基準があるか検査することによってアプレットによりＪａｖａバーチャルマシンが使用されることを決定する。１実施形態では、各オブジェクトクラスはユニークな３２ビットの識別子によって表され、この識別子はオブジェクトクラスが参照されるか否かを決定するために使用されることができる。
【００１８】
その後、システムサービスがすでに装置にインストールされていることを決定する（ステップ215 ）。１実施形態では、これは装置にインストールされたオブジェクトクラスのリストを含む内部テーブルをチェックすることによって行われる。ダウンロードされたアプリケーションによって基準とされた３２ビットの識別子を使用して、内部テーブルは参照されたオブジェクトクラスがインストールされたか否かを決定し、或いは上記の例を使用して、Ｊａｖａバーチャルマシンがすでに装置にインストールされているか否かを決定する。
【００１９】
システムサービスがインストールされていない場合には、“ノー”のブランチに進み、システムはシステムサービスをダウンロードするように進行する（ステップ220 ）。上記の例にしたがって、ダウンロードされたアプリケーションにより使用されたＪａｖａバーチャルマシンが装置にインストールされていない場合には、装置はＪａｖａバーチャルマシンをダウンロードするようにサーバにリクエストを行う。さらに、もしも他のシステムサービスが必要とされる場合には、それらは装置にダウンロードされることができる。
【００２０】
当業者は、ダウンロードされたアプリケーションにより使用されたシステムサービスのダウンロードがユーザにより何等のアクションなしに行われることができることを認識するであろう。可能な伝送遅延または指示の他にユーザはこれらのダウンロードが発生することを完全に気付かない可能性もある。しかしながら、付加的なダウンロードが行われたことょユーザに通知することが望ましい。これは本発明の前記の実施例においては好みに任されている。
【００２１】
当業者はさらに、システムサービスのダウンロードはアプリケーションがダウンロードされたか否かに関係なくできることを認識するであろう（すなわち、システムサービスのダウンロードは工場でインストールされたアプリケーションのために開始されてもよく、または装置に転送されてもよい）。
【００２２】
ステップ210 でシステムサービスがすでにインストールされている場合、またはステップ220 でダウンロードされた後に、システムサービスはアプリケーションが実行されるときに利用可能になる。システムサービスが装置にダウンロードされる可能性があるが、実行のために装置にロードされていない可能性があることは当業者によって認識される。
【００２３】
前述の説明は、システムサービスが必要とされ、装置からのリクエストに応答してシステムサービスをダウンロードするかどうかの決定を行う装置の使用を含んでいるが、本発明はまた、システムサービスが必要か否か、および装置がすでにシステムサービスをインストールされているか否かに基づいてシステムサービスをダウンロードする決定をサーバまたは他のシステムが行う場合のプロセスを実行する。
【００２４】
図３は、バーチャルマシンを使用するアプリケーションのローディングに応答して無線装置にインストールされたバーチャルマシンをローディングして実行するプロセスを示している。このプロセスは無線装置へ利用可能なアプリケーションから選択されたアプリケーションを有することによって開始される（ステップ300 ）。この選択はアプリケーションを実行しようと思っているユーザにより行われてもよい。しかしながら、選択は装置によるユーザ介入なく、または何等かの他の自動的な方法によって行うことができる。
【００２５】
アプリケーションが選択された後、装置は実行のためにアプリケーションをメモリ中にロードする（ステップ305 ）。（アプリケーションが実行される環境に応じてアプリケーションのローディングはアプリケーションの実行の一部と考えてもよい）。このローディングフェーズ中、ローダ（実行のためにアプリケーションをロードする部品）はバーチャルマシンサービスをリクエストする（ステップ310 ）。１実施形態では、ローダは、特有のクラス識別子を使用してバーチャルマシンを識別する上述したソフトウエアプラットホーム中に構築されたアプリケーションプログラムインターフェース（ＡＰＩ）機構を使用してこれを行う。
【００２６】
例えば、アプリケーションは無線装置で実行されるＪａｖａバーチャルマシンの使用を要求するＪａｖａアプレットであってもよい。実行のためにＪａｖａアプレットを装置にロードするローダは、特有の識別子によりＪａｖａバーチャルマシンを識別するＢＲＥＷTMＡＰＩ機構を使用することによりＪａｖａバーチャルマシンサービスをリクエストすることができる。１実施形態では、この識別子は３２ビットのクラス識別子である。
【００２７】
その後、装置はバーチャルマシンシステムサービスがメモリ中にロードされているか否かを決定する（ステップ315 ）。装置はオブジェクトクラスがメモリ中にロードされたことをチェックすることによってこれを行う。これらのシステムサービス、アプリケーション、実行可能なファイル、データ、ロードされるその他のデータタイプまたはオブジェクトクラスを追跡するために各オブジェクトクラスと関連する識別子が使用されることが好ましい。
【００２８】
装置、または特に、１実施例におけるＢｒｅｗソフトウエアプラットホームはローダによりリクエストされたバーチャルマシンがすでにメモリ中にあるか否かについて決定を行う。
もしも、バーチャルマシンがまだメモリ中にロードされていないことがステップ315 で決定されているならば、図３のフロー図の“ノー”ブランチに沿って処理が行われ、装置はバーチャルマシンをロードされる（ステップ320 ）。バーチャルマシンがまだ無線装置にインストールされていない場合には、バーチャルマシンはバーチャルマシンソフトウエアにアクセスを有するサーバまたは他のコンピュータシステムのような外部ソースから無線装置にダウンロードされる。
【００２９】
装置および動作プラットホームおよびシステムサービスに応じて、本発明は構成され、システムサービスはそのローディングにしたがった付加的な実行またはスタートステップを必要とするかも知れない。この実施例のシステムサービスまたはバーチャルマシンは、実行または恐らく他の処理が行われたときダウンロードされたアプリケーションにアクセス可能である装置の状態になければならない。
【００３０】
ステップ320 に続いて、またはすでにバーチャルマシンがロードされているステップ315 の後で行われた決定が行われた場合に、アプリケーションはバーチャルマシン環境で動作する（ステップ325 ）。システムサービスがバーチャルマシンでないならば、アプリケーションはそのアプリケーションに対してダウンロードされたシステムサービスを使用することができる。Ｊａｖａバーチャルマシンの例では、ＪａｖａアプレットがＪａｖａバーチャルマシン環境で実行される。
【００３１】
装置がＢｒｅｗTMのようなソフトウエアプラットホームを含んでいる場合には、アプリケーションから無線装置へのインターフェースを簡単にするために、バーチャルマシンはソフトウエアプラットホームへアプリケーションまたはバーチャルマシンにより行われたシステムサービスのリクエストを送る（ステップ330 ）。
【００３２】
図３は実行中にバーチャルマシンを使用するアプリケーションについて論じたが、これは例示のためであって、バーチャルマシン以外の他のシステムサービス、実行可能なコンテンツ、およびアプリケーションにより使用されるデータのダイナミックローディングは本発明の技術的範囲内であると考えられる。
【００３３】
［結論］
本発明は装置におけるシステムサービスのダイナミックなダウンロードおよび実行を可能にする。１実施形態ではバーチャルマシンをリクエストするアプレットは無線装置にダウンロードされる。装置のソフトウエアプラットホームはバーチャルマシンが実行中にアプレットにより使用されることを決定する。付加的なユーザの介入なしにバーチャルマシンは無線装置にダウンロードされる。これはバーチャルマシンをリクエストするアプレットがバーチャルマシンをまだインストールされていない装置により使用されることを可能にする。
【００３４】
本発明の別の実施形態は、システムサービスを使用するアプリケーションがロードされているときバーチャルマシンのようなシステムサービスのダイナミックなロードを可能にする。この実施形態では、システムサービスがロードされているかを装置が決定することを可能にするためにシステムサービスと関連する特有の識別子を使用して行われる。
【００３５】
本発明の構成についての前述の記述は例示および説明のために記載されたものである。この記述は本発明をあますところなく、正確に限定するものではない。上述の記載から本発明を実施するために必要な多くの変形変更が可能である。例えば、上記の構成はソフトウエアを含んでいるが、本発明の実施形態はハードウエアとソフトウエアの組合わせ、或いはハードウエアのみで構成されてもよい。本発明はオブジェクト指向または非オブジェクト指向のプログラムシステムの両者で実施可能である。さらに、本発明の１特徴では、メモリに記憶されるものとして説明されたが、当業者は、ハードディスク、フロッピディスク、またはＣＤ−ＲＯＭのような２次記憶装置、インターネットその他の伝搬媒体からの搬送波、或いはその他の形態のＲＡＭまたはＲＯＭのようなコンピュータの読取り可能な媒体に記憶されることができることを認識するであろう。本発明の技術的範囲は特許請求の範囲およびその均等物によって規定される。
【図面の簡単な説明】
【００３６】
【図１】本発明を実行する環境の例示的な１実施形態を示す概略図。
【図２】本発明を実行する環境の例示的な１実施形態によるシステムサービスを使用するアプリケーションのダウンロードを含むプロセスのフロー図。
【図３】バーチャルマシンを使用するアプリケーションに応答する無線装置にインストールされたバーチャルマシンのローディングと実行のプロセスのフロー図。
【図１】
2004537086.tif 000003
【図２】
2004537086.tif 000004
【図３】
2004537086.tif 000005
【国際公開パンフレット】
2004537086.tif 000006
2004537086.tif 000007
2004537086.tif 000008
2004537086.tif 000009
2004537086.tif 000010
2004537086.tif 000011
2004537086.tif 000012
2004537086.tif 000013
2004537086.tif 000014
2004537086.tif 000015
2004537086.tif 000016
2004537086.tif 000017
2004537086.tif 000018
2004537086.tif 000019
2004537086.tif 000020
【国際公開パンフレット（コレクトバージョン）】
2004537086.tif 000021
2004537086.tif 000022
【国際公開パンフレット（コレクトバージョン）】
2004537086.tif 000023
2004537086.tif 000024
2004537086.tif 000025
2004537086.tif 000026
2004537086.tif 000027
2004537086.tif 000028
2004537086.tif 000029
2004537086.tif 000030
2004537086.tif 000031
2004537086.tif 000032
2004537086.tif 000033
2004537086.tif 000034
2004537086.tif 000035
2004537086.tif 000036
2004537086.tif 000037
【国際調査報告】
2004537086.tif 000038
2004537086.tif 000039