(57)【要約】【課題】計算装置にデバイスを動的にシミュレートするためのシステム及び方法を提供すること。【解決手段】提案された方法は、デバイス・シミュレータに第１模擬デバイスを生成することを含む。第１模擬デバイスは第１物理デバイスに対応する。第２模擬デバイスがデバイス・シミュレータに生成される。第２模擬デバイスは第２物理デバイスに対応する。少なくとも１つの動作エクステンション・ファイルがデバイス・シミュレータにロードされる。更に、動作エクステンション・ファイルは第１模擬デバイス、または、第２模擬デバイスに適用される。更にデバイス・シミュレータにアプリケーションを選択的にロードすることが含まれる。アプリケーションは第１模擬デバイス、第２模擬デバイス或は第１模擬デバイス及び第２模擬デバイスの両方に関して選択的に実行される。また、アプリケーションは、変更されたアプリケーションを作るために、デバイス・シミュレータにおけるアプリケーションの実行に応じて少なくとも部分的に変更されることが出来る。【選択図】      図４
2007514993.tif 000002
【特許請求の範囲】
【請求項１】
デバイス・シミュレータに、第１物理デバイスに対応する第１模擬デバイスを生成し、
該デバイス・シミュレータに、第２物理デバイスに対応する第２模擬デバイスを生成し、
該デバイス・シミュレータに少なくとも１つの動作エクステンション・ファイルをロードし、
該少なくとも１つの動作エクステンション・ファイルを該第１模擬デバイス或は該第２模擬デバイスに適用することを具備する、方法。
【請求項２】
該少なくとも１つの動作エクステンション・ファイルは該第１模擬デバイス及び該第２模擬デバイスに適用される、請求項１の方法。
【請求項３】
該第１物理デバイスは、セルラ電話、携帯情報端末、及びページャから成るグループから選択される、請求項１の方法。
【請求項４】
該第２物理デバイスは、セルラ電話、携帯情報端末、及びページャから成るグループから選択される、請求項１の方法。
【請求項５】
該第１模擬デバイスの選択された動作を表す該少なくとも１つの動作エクステンション・ファイルを含む第１デバイス・パックを実行することを更に具備する、請求項１の方法。
【請求項６】
該第２模擬デバイスの選択された動作を表す第２動作エクステンション・ファイルを含む第２デバイス・パックを実行することを更に具備する、請求項５の方法。
【請求項７】
該デバイス・シミュレータにデータ・セットを選択的にロードすることを更に具備する、請求項６の方法。
【請求項８】
該データ・セットは、オーディオ・ファイル、ビデオ・ファイル、画像ファイル、或はフォント・ファイルである、請求項７の方法。
【請求項９】
該第１模擬デバイス、該第２模擬デバイス、或は該第１模擬デバイスと該第２模擬デバイスの両方に該データ・セットを選択的に適用することを更に具備する、請求項８の方法。
【請求項１０】
該デバイス・シミュレータにアプリケーションを選択的にロードすることを更に具備する、請求項５の方法。
【請求項１１】
該第１模擬デバイス、該第２模擬デバイス、或は該第１模擬デバイスと該第２模擬デバイスの両方に関するアプリケーションを選択的に実行することを更に具備する、請求項１０の方法。
【請求項１２】
該デバイス・シミュレータにおける該アプリケーションの実行に応答して、少なくとも部分的に該アプリケーションを変更し、変更されたアプリケーションを作ることを更に具備する、請求項１１の方法。
【請求項１３】
該アプリケーションは該第１模擬デバイスに関する実行期間中少なくとも第１動作エクステンションを利用する、及び、該アプリケーションは該第２模擬デバイスに関する実行期間中少なくとも第２動作エクステンションを利用する、請求項１２の方法。
【請求項１４】
該第１模擬デバイス、該第２模擬デバイス、或は該第１模擬デバイスと該第２模擬デバイスの両方上で該変更されたアプリケーションを選択的に実行することを更に具備する、請求項１２の方法。
【請求項１５】
コンピュータ可読媒体内部に埋め込まれるコンピュータ・プログラムであって、
基本シミュレータを生成するための命令、
該基本シミュレータと共に使用するための第１模擬デバイスを生成するための命令、
該第１模擬デバイス上に第１の複数の動作をロードするための命令、
該基本シミュレータ内部に、該第１模擬デバイスとは異なる第２模擬デバイスを生成するための命令、及び
該第２模擬デバイス上に第２の複数の動作をロードするための命令
を具備するコンピュータ・プログラム。
【請求項１６】
該第１模擬デバイスはセルラ電話の第１の型或は構成のシミュレーションであり、そして、該第２模擬デバイスはセルラ電話の第２の型或は構成のシミュレーションである、請求項１５の方法。
【請求項１７】
該複数の動作はディジタル・ビデオ・カメラ動作、ディジタル・スチール・カメラ動作、オーディオ・プレイヤー動作、ビデオ・プレイヤー動作、イメージ・ビューアー動作、及び、電子手帳動作の内少なくとも１つを含む、請求項１５のコンピュータ・プログラム。
【請求項１８】
該第２模擬デバイスはセルラ電話、携帯情報端末、或はページャのシミュレーションである、請求項１６の方法。
【請求項１９】
データ・ファイルを受信する命令を更に具備する、請求項１７のコンピュータ・プログラム。
【請求項２０】
該第１デバイス、該第２デバイス、或は該第１デバイスと該第２デバイスの両方上に該データ・ファイルをロードする命令を更に具備する、請求項１９のコンピュータ・プログラム。
【請求項２１】
該第１データ・ファイル及び該セット・データ・ファイルは、オーディオ・ファイル、ビデオ・ファイル、静止画像ファイル、或はフォント・ファイルである、請求項１９のコンピュータ・プログラム。
【請求項２２】
該オーディオ・ファイルは、ＭＰＥＧオーディオ・レイヤー・スリー（audio layer three）（ＭＰ３）ファイル、ウェーブフォーム・オーディオ・フォーマット（waveform audio format）（ＷＡＶ）ファイル、ｗｍａファイル、ＯＧＧファイル、モンキーズ・オーディオ・ディジタル・ファイル（Monkey's Audio digital file）（ＡＰＥ）ファイル、ＶＯＸファイル、リアル・オーディオ（Real Audio）(ＲＡ) ファイル、シンセティク・ミュージック・モバイル・アプリケーション・フォーマット（synthetic music mobile application format）（ＭＭＦ）ファイル、或は、ミュージカル・インストルメント・ディジタル・インタフェース（musical instrument digital interface）（ＭＩＤ）ファイル、フレーズ・フォーマット（phrase format）（ＳＰＦ） ファイル、或は、クアルコム・ピュアボイス・オーディオ（Qualcomm PureVoice audio）ファイル（ＱＣＰ）、である、請求項２１のコンピュータ・プログラム。
【請求項２３】
ビデオ・ファイルは、ムービング・ピクチャ・エクスパーツ・グループ（moving picture experts group）（ＭＰＥＧ）ファイル、オーディオ・ビデオ・インタリーブ（audio video interleave）（ＡＶＩ）ファイル、ウィンドウズ・メディア・ビデオ（Windows media video）（ＷＭＶ）ファイル、アドバンスド・ストリーミング・フォーマット（advanced streaming format）（ＡＳＦ）ファイル、クイックタイム（Quicktime）（ＭＯＶ）ファイル、或は、リアルメディア（Real Media）（ＲＭ）ファイル、である、請求項２１のコンピュータ・プログラム。
【請求項２４】
画像ファイルは、ジョイント・フォトグラフィック・エクスパーツ・グループ（joint photographic experts group）（ＪＰＥＧ）ファイル、グラフィックス・インターチェンジ・フォーマット（graphics interchange format）（ＧＩＦ）ファイル、タグド・イメージ・ファイル・フォーマット（tagged image file format）（ＴＩＦＦ）ファイル、アドビ・フォトショップ（Adobe Photoshop）（ＰＳＤ）ファイル、ポータブル・ネットワークス・グラフィックス（portable networks graphics）（ＰＮＧ）ファイル、或は、ウィンドウズ・メタファイル（windows metafile）（ＷＭＦ）ファイル、である、請求項２１のコンピュータ・プログラム。
【請求項２５】
該第１模擬デバイス、該第２模擬デバイス、或は該第１模擬デバイスと該第２模擬デバイスの両方において少なくとも１つのアプリケーション・プログラムを実行するための命令を更に具備する、請求項１５のコンピュータ・プログラム。
【請求項２６】
該少なくとも１つのアプリケーション・プログラムの実行に関連付けされる１又は複数のエラーを検出するための命令を更に具備する、請求項２５のコンピュータ・プログラム。
【請求項２７】
修正されたアプリケーションを実行するための命令を更に具備する、請求項２６のコンピュータ・プログラム。
【請求項２８】
物理携帯計算装置の動作の基本セットをシミュレートするための基本シミュレータ、及び
該基本シミュレータにアクセス可能な複数の動作エクステンションとを具備し、
該動作エクステンションは、該物理携帯計算装置の、動作の基本セットとは別の、付加的動作をシミュレートするために、該基本シミュレータに適用可能である、デバイス・シミュレータ。
【請求項２９】
該物理携帯計算装置は第１の型のセルラ電話、携帯情報端末、或はページャである、請求項２８のデバイス・シミュレータ。
【請求項３０】
該物理携帯計算装置は第２の型のセルラ電話、携帯情報端末、或はページャである、請求項２９のデバイス・シミュレータ。
【請求項３１】
該複数の動作エクステンションは該物理携帯計算装置内部の付加的コンポーネントに対応する、請求項３０のデバイス・シミュレータ。
【請求項３２】
該付加的コンポーネントはオーディオ・プレイヤー機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３３】
該付加的コンポーネントはビデオ・プレイヤー機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３４】
該付加的コンポーネントはイメージ・ビューアー機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３５】
該付加的コンポーネントはディジタル・ビデオ・カメラ機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３６】
該付加的コンポーネントはディジタル・スチール・カメラ機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３７】
該付加的コンポーネントは電子手帳機能を提供する、請求項３１のデバイス・シミュレータ。
【請求項３８】
プロセッサ、
該プロセッサにアクセス可能なメモリ装置、
該メモリ装置内部に埋め込まれるデバイス・シミュレータであって、
第１携帯計算装置をシミュレートするための命令、
第２携帯計算装置をシミュレートするための命令、及び
該第１携帯計算装置、該第２携帯計算装置、或は該第１携帯計算装置と該第２携帯計算装置の両方に対して少なくとも１つの動作エクステンションを適用するための命令、
を具備するデバイス・シミュレータと、
を含むソフトウェア開発システム。
【請求項３９】
該デバイス・シミュレータは、該第１携帯計算装置の装置固有の特性をシミュレートするために、第１デバイス・パックを実行するための命令を更に具備する、請求項３８のシステム。
【請求項４０】
該デバイス・シミュレータは、該第２携帯計算装置の装置固有の特性をシミュレートするために、第２デバイス・パックを実行するための命令を更に具備する、請求項３９のシステム。
【請求項４１】
該デバイス・シミュレータは、アプリケーションを選択的に実行するための命令を更に具備する、請求項４０のシステム。
【請求項４２】
該デバイス・シミュレータは、第１アプリケーションの実行に関する１又は複数の問題を検出するための命令を更に具備する、請求項４１のシステム。
【請求項４３】
該デバイス・シミュレータは、該アプリケーションの修正版を選択的に実行する命令を更に含み、該アプリケーションの該修正版は該検出されたエラーを処理するための命令を含む、請求項４２のシステム。
【請求項４４】
該デバイス・シミュレータは、該修正されたアプリケーションの実行に関する１又は複数のエラーを検出するための命令を更に具備する、請求項４３のシステム。
【請求項４５】
第１の動作を有する第１模擬デバイスと、
第２の動作を有する第２模擬デバイスと、
を具備する利用者インタフェースであって、
１又は複数のプログラムが、該第１模擬デバイス、該第２模擬デバイス、或は該第１模擬デバイスと該第２模擬デバイスの両方において実行されることが出来き、
該第１模擬デバイスは、セルラ電話、携帯情報端末、或はページャの内のただ１つのモデルのシミュレーションである、
利用者インタフェース。
【請求項４６】
該第２模擬デバイスは、セルラ電話、携帯情報端末、或はページャの内のただ１つのモデルのシミュレーションである、請求項４５の利用者インタフェース。
【請求項４７】
該第１模擬デバイスは、オーディオ・プレイヤー動作、ビデオ・プレイヤー動作、イメージ・ビューアー動作、ディジタル・ビデオ・カメラ動作、ディジタル・スチール・カメラ動作、或は、電子手帳動作、を含む、請求項４５の利用者インタフェース。
【請求項４８】
該第２模擬デバイスは、オーディオ・プレイヤー動作、ビデオ・プレイヤー動作、イメージ・ビューアー動作、ディジタル・ビデオ・カメラ動作、ディジタル・スチール・カメラ動作、或は、電子手帳動作、を含む、請求項４５の利用者インタフェース。
【請求項４９】
プロセッサ、
該プロセッサにアクセス可能なメモリ、及び
該メモリにロードされるアプリケーションを具備する携帯計算装置であって、
該アプリケーションは試験されるアプリケーションであり、
該試験されるアプリケーションは、デバイス・シミュレータ上で実行され、
該デバイス・シミュレータは、複数の異なる型の物理計算装置に共通なデバイス動作のセットを有し、且つ該デバイス・シミュレータによる使用のためのエクステンションの特徴を定義する複数のエクステンション・ファイルを有していて、少なくとも１つの該複数の異なる型の物理計算装置のための複数の付加的動作をシミュレートする
携帯計算装置。
【請求項５０】
該物理計算装置はセルラ電話、携帯情報端末、或はページャである、請求項４９の携帯計算装置。
【請求項５１】
該デバイス・シミュレータはコンピュータ上に備わる、請求項４９の携帯計算装置。
【請求項５２】
該コンピュータはデスクトップ・コンピュータ、ラップトップ・コンピュータ、或は、ハンドヘルド・コンピュータである、請求項５１の携帯計算装置。
【請求項５３】
該アプリケーションは該メモリにロードされる前に該コンピュータからサーバへアップロードされる、請求項５２の携帯計算装置。
【請求項５４】
該アプリケーションはサーバから該携帯計算装置にダウンロードされる、請求項５３の携帯計算装置。
【請求項５５】
該アプリケーションは該携帯計算装置への無線接続を介してダウンロードされる、請求項５４の携帯計算装置。
【請求項５６】
アプリケーションを受信し、
デバイス・シミュレータにおいて該アプリケーションを試験してデバグされたアプリケーションを生成し、
該デバグされたアプリケーションをアプリケーション・サーバに通信する
アプリケーションを試験する方法であって、
該デバイス・シミュレータは、
少なくとも１つの物理携帯計算装置の動作の基本セットをシミュレートするためのコア・シミュレーション・プログラム、及び、
少なくとも１つの物理携帯計算装置の付加的動作をシミュレートするためにシミュレーション・プログラムに適用されるためのエクステンションの特徴を定義するエクステンション・ファイル、を含む、
アプリケーションを試験する方法。
【請求項５７】
該デバグされたアプリケーションをアプリケーション・サーバから物理デバイスに通信することを更に具備する、請求項５６の方法。
【請求項５８】
該デバグされたアプリケーションは無線接続を介して物理デバイスに通信される、請求項５７の方法。
【請求項５９】
該物理デバイス上で該デバグされたアプリケーションを実行することを更に具備する、請求項５８の方法。
【請求項６０】
サーバにおいてアプリケーションを受信するステップであって、このステップでは、該アプリケーションはデバイス・シミュレータ上で試験され、該デバイス・シミュレータは、複数の異なる型の物理計算装置に共通な複数の動作を有し、且つ、少なくとも１つの該物理計算装置の複数の付加的動作をシミュレートするために、該デバイス・シミュレータによる使用のためのエクステンションの特徴を定義する複数のエクステンション・ファイルを有する、ステップと、
該アプリケーションを該サーバから該模擬デバイスに対応する物理デバイスに通信するステップとを具備する、方法。
【請求項６１】
該アプリケーションは該デバイス・シミュレータにおける該アプリケーションの試験実行に応じて少なくとも部分的にデバグされる、請求項６０の方法。
【請求項６２】
該アプリケーションは該物理デバイス上で実行される、請求項６１の方法。
【請求項６３】
該物理デバイスは、セルラ電話、ページャ、及び携帯情報端末を含むグループから選択される、請求項６２の方法。
【請求項６４】
該物理デバイスに該アプリケーションをダウンロードするための料金を課金することを更に具備する、請求項６３の方法。
【請求項６５】
プロセッサ、
該プロセッサにアクセス可能なコンピュータ・メモリ、
該コンピュータ・メモリ内部に記憶され、該プロセッサによって実行可能である、シミュレーション・プログラムを有するシステムであり、
該シミュレーション・プログラムは、
シミュレートされることが可能な複数の異なる型の物理携帯計算装置に共通な動作のセットをシミュレートするためのコア・シミュレーション・プログラム、
該シミュレーション・プログラムによる使用のためのエクステンションの特徴を定義し、該動作のセットに付加されるデバイス動作をシミュレートするエクステンション・ファイルであって、該デバイス動作は複数の異なる型の物理携帯計算装置から選択された物理デバイスの付加的動作に対応する、エクステンション・ファイル、
複数の異なる型の物理携帯計算装置の内の少なくとも１つにおける実行を目標とされ、該シミュレーション・プログラムを使用して試験されるアプリケーション・プログラムと、
を具備するシステム。
【請求項６６】
該アプリケーション・プログラムは該シミュレーション・プログラムの使用に関連して試験され、その試験結果に基づいて、該アプリケーション・プログラムの修正版を作るために該アプリケーション・プログラムは修正される、請求項６５のシステム。
【請求項６７】
該アプリケーション・プログラムの修正版は複数の異なる型の物理携帯計算装置から選択された第１物理携帯計算装置上にロードされ、該アプリケーション・プログラムの修正版は複数の異なる型の物理携帯計算装置から選択された第２物理携帯計算装置上にロードされる、請求項６６のシステム。
【請求項６８】
該アプリケーション・プログラムの修正版は無線インタフェースを使用して該第１物理携帯計算装置及び該第２物理携帯計算装置に通信される、請求項６７のシステム。
【請求項６９】
該第１物理携帯計算装置は該アプリケーション・プログラムの修正版を実行する、請求項６８のシステム。
【請求項７０】
該第１物理携帯計算装置はセルラ電話であり、該アプリケーション・プログラムは該セルラ電話を介してアクセス可能なゲームである、請求項６９のシステム。
【請求項７１】
該第１物理携帯計算装置はセルラ電話であり、該アプリケーション・プログラムは該セルラ電話を介してアクセス可能な呼出音管理ソフトである、請求項６９のシステム。
【請求項７２】
該アプリケーション・プログラムの修正版はシステム外部の格納庫に格納される、請求項６６のシステム。
【請求項７３】
該格納庫はサーバ内部の記憶モジュールである、請求項７２のシステム。
【請求項７４】
該アプリケーション・プログラムの修正版は該第１物理携帯計算装置に対応するアプリケーション・プログラム・インタフェース（application program interface）（ＡＰＩ）を利用する、請求項６６のシステム。
【請求項７５】
該ＡＰＩはワイヤレス対応２値化ランタイム環境（ＢＲＥＷ）ＡＰＩである、請求項７４のシステム。
【請求項７６】
プロセッサ、
該プロセッサによってアクセス可能なコンピュータ・メモリ、
該コンピュータ・メモリ内部に記憶され、そして、該プロセッサにより実行可能である、シミュレーション・プログラムを含むシステムであって、
該シミュレーション・プログラムは、
少なくとも１つの物理携帯計算装置の動作の基本セットをシミュレートするための手段、
少なくとも１つの物理携帯計算装置の付加的動作をシミュレートするために、該シミュレーション・プログラムに適用されるためのエクステンションの特徴を定義するための手段を含む
システム。
【請求項７７】
該シミュレーション・プログラムはアプリケーションを試験するための手段を更に具備する、請求項７６のシステム。
【請求項７８】
該シミュレーション・プログラムは修正されたアプリケーションを試験するための手段を更に具備する、請求項７７のシステム。
【請求項７９】
該プロセッサは該修正されたアプリケーションをサーバにアップロードするための手段を更に具備する、請求項７８のシステム。
【請求項８０】
基本シミュレータを供給するためのＢＲＥＷコア、
該ＢＲＥＷコアに結合される共有エクステンション・モジュール、
該共有エクステンション・モジュールに潜在する少なくとも１つの組み込みエクステンションであって、該少なくとも１つの組み込みエクステンションは該ＢＲＥＷコアにアクセス可能であり、該基本シミュレータによってシミュレートされる物理デバイスのための第１の動作を提供する、組み込みエクステンション、
該共有エクステンション・モジュールに顕在する少なくとも１つの汎用エクステンションであって、該少なくとも１つの汎用エクステンションは該ＢＲＥＷコアにアクセス可能であり、該基本シミュレータによってシミュレートされる物理デバイスのための第２の動作を提供する、汎用エクステンション、
該ＢＲＥＷコアにアクセス可能な少なくとも１つのデバイス・パックであって、該少なくとも１つのデバイス・パックは該ＢＲＥＷコアにアクセス可能な少なくとも１つのデバイス・パック・エクステンションを含み、該基本シミュレータによってシミュレートされる物理デバイスのための第３の動作を提供するデバイス・パック、
とを含むデバイスシミュレータ。
【請求項８１】
該少なくとも１つのデバイス・パックは、主キーパッド情報、２次キーパッド情報、キーボード情報、主ディスプレイ情報、２次ディスプレイ情報、オーディオ情報、フォント情報、対応媒体のフォーマット、アプリケーション・サポート、Ｂｌｕｅｔｏｏｔｈ情報、ジョイスティック情報、タッチ・スクリーン情報、全地球測位システム情報、ネットワーク情報、予測型文字入力（predictive text entry）情報、メモリ情報、加入者情報、モジュール情報、呼出音情報、通話記録情報、住所録情報、及び、スクリーン・セーバ情報を含むグループから選択される情報を含む、請求項８０のデバイス・シミュレータ。
【請求項８２】
該少なくとも１つの組み込みエクステンションは該ＢＲＥＷコア上に最初にロードされる、請求項８０のデバイス・シミュレータ。
【請求項８３】
該少なくとも１つの汎用エクステンションは該ＢＲＥＷコア上に２番目にロードされる、請求項８２のデバイス・シミュレータ。
【請求項８４】
該少なくとも１つのデバイス・パック・エクステンションは該ＢＲＥＷコア上に３番目にロードされる、請求項８３のデバイス・シミュレータ。
【請求項８５】
該少なくとも１つの汎用エクステンションは、該汎用エクステンションが該少なくとも１つの組み込みエクステンションによっても提供されるＢＲＥＷインタフェースのための機能を含むとき、該少なくとも１つの組み込みエクステンションをオーバライド（override）する、請求項８３のデバイス・シミュレータ。
【請求項８６】
該少なくとも１つのデバイス・パック・エクステンションは、該デバイス・パック・エクステンションが該少なくとも１つの汎用エクステンションによっても提供されるＢＲＥＷインタフェースのための機能を含むとき、該少なくとも１つの汎用エクステンションをオーバライドする、請求項８４のデバイス・シミュレータ。
【請求項８７】
該少なくとも１つのデバイス・パック・エクステンションは、該デバイス・パック・エクステンションが該少なくとも１つの組み込みエクステンションによっても提供されるＢＲＥＷインタフェースのための機能を含むとき、該少なくとも１つの組み込みエクステンションをオーバライドする、請求項８４のデバイス・シミュレータ。
【発明の詳細な説明】
【関連出願の参照】
【０００１】
本出願は、２００３年１１月１３日に出願され、そして、本出願の中に全体的に参照として組み込まれた、米国特許仮出願番号第６０／５２０，０４７号の優先権を主張する。
【技術分野】
【０００２】
本発明は、一般にデバイス・シミュレータに係る。特に、本発明は、デバイスをシミュレートするためのコンピュータのアプリケーションに関する。
【関連技術の説明】
【０００３】
技術の進歩はより小さなそしてより強力なパーソナル計算装置をもたらしてきた。例えば、現在、小さく、軽く、そして利用者によって容易に持ち運びされる、携帯無線電話、携帯情報端末（personal digital assistants）（ＰＤＡｓ）、及びページング装置のような、無線計算装置を含む、様々な携帯個人用計算装置が存在する。更に具体的には、携帯無線電話は、例えば、無線ネットワークを介して音声やデータパケットを通信するセルラ電話を更に含む。その上、多くのそのような無線電話は重要な計算能力を提供し、そして、そのようなものとして、小型パソコンやハンドヘルド（handheld）ＰＤＡと同等なものとなりつつある。
【０００４】
通常は、これ等のより小型でより強力な個人用計算装置は、しばしば、リソース制約されている。例えば、画面寸法、利用可能な記憶容量とファイル・システム領域の大きさ、及び、入出力能力の大きさは装置の小さな寸法により制約されることがある。このような厳しいリソース制約のために、この様なパーソナル計算装置（クライアント計算装置）上に常備するのは限られた大きさと量のソフトウェア・アプリケーションや他の情報にしておくことが望ましいと言える。
【０００５】
複数のこれ等のパーソナル計算装置は、しばしばランタイム環境やソフトウェア・プラットフォームと呼ばれるアプリケーション・プログラミング・インタフェース（application programming interfaces）（ＡＰＩｓ）を利用する。ＡＰＩはローカル・コンピュータ・プラットフォーム上に搭載され、そして、装置固有のリソースのために一般化された通話を提供することにより、この様な装置の動作とプログラミングを簡略化するために使用されることが出来る。更に、あるＡＰＩはこの様な装置上で十分に実行できるソフトウェア・アプリケーションを作る能力をソフトウェア開発者に提供することが出来る。その上、ＡＰＩはパーソナル計算装置のシステム・ハードウェアとソフトウェア・アプリケーションとの間にインタフェースを提供することが出来る。このように、パーソナル計算装置の機能が、ソフトウェア開発者に特定のパーソナル計算装置のソース・コードにアクセスすることを要求せずに、ソフトウェア・アプリケーションに役立てられるようにすることが出来る。更に、あるＡＰＩは、安全を確保された暗号鍵情報を使用して、クライアントの装置やサーバのシステムのような、複数のパーソナル装置間の安全な通信のための機構を提供する。
【０００６】
この様なＡＰＩの例は、その内幾つかは下記に更に詳細に論じられるが、カリフォルニア州サンディエゴのクアルコム社（Qualcomm, Inc.）によって開発された、ワイヤレス対応２値化ランタイム環境（Binary Runtime Environment for Wireless（登録商標））（ＢＲＥＷ（登録商標））の最近一般に利用可能になったバージョンを含む。ＢＲＥＷ（登録商標）は無線セルラ電話のような計算装置のＯＳ（operating system）を覆って存在する薄い化粧板として説明されることが出来る。ＢＲＥＷ（登録商標）はパーソナル計算装置上に特に見出されるハードウェアの特徴に１又は複数のインターフェースを提供することが出来る。
【０００７】
更に、ＢＲＥＷ（登録商標）は、それが、装置リソースに対する要求に関して、及び、ＢＲＥＷ（登録商標）ＡＰＩを備える装置に対して消費者によって通常支払われている価格に関して、比較的低価格でパーソナル計算装置に提供されることが出来る、ということにおいて有利である。加えて、ＢＲＥＷ（登録商標）は、無線サービス業者、ソフトウェア開発者及び計算装置の消費者のために様々な利益を含む、端末から端末へのソフトウェア配布プラットフォームを提供する。１つのこの様な現在利用可能な端末から端末へのソフトウェア配布プラットフォームは、サーバ・クライアント構成を介して配布されるロジックを含み、サーバは請求書作成、安全確保、及びアプリケーション配布機能を実行することができ、そしてクライアントはアプリケーションの実行、安全確保、及びユーザ・インタフェース機能を実行することが出来る。
【０００８】
様々な型の携帯パーソナル計算装置のためのソフトウェアを開発するために、ソフトウェアが開発される対象である特定の物理装置を物理的に所有して試験することがしばしば必要である。物理装置の所有によって開発者は、ソフトウェアをデバッグし、開発されたソフトウェアが開発者によって企図された機能性を備えているかどうかを決定するために、物理デバイス上に搭載されたソフトウェアを実行することが出来る。それに代わって、ソフトウェア開発者はデバイス・シミュレータを利用することが出来る、しかし、そのようなデバイス・シミュレータは通常静的であり、単一の型とモデルの物理デバイスにむすびつけられている。
【０００９】
従って、多数の挙動を示す多数のデバイスをシミュレートすることが出来る改良されたデバイス・シミュレータを提供することは有益である。
【発明の開示】
【課題を解決するための手段】
【００１０】
提供される方法は、デバイス・シミュレータに第１模擬デバイスを生成することを含む。該第１模擬デバイスは第１物理デバイスに対応する。又、第２模擬デバイスが該デバイス・シミュレータに生成される。該第２模擬デバイスは第２物理デバイスに対応する。少なくとも１つの動作エクステンション・ファイルがデバイス・シミュレータにロードされる。更に、該動作エクステンション・ファイルは該第１模擬デバイス又は該第２模擬デバイスに適用される。
【００１１】
特別な実施形態において、動作エクステンション・ファイルは該第１模擬デバイス及び該第２模擬デバイスに適用される。更に、特別な実施形態において、第１物理デバイスは、セルラ電話、携帯情報端末、及びページャから成るグループから選択される。又、第２物理デバイスも、セルラ電話、携帯情報端末、及びページャから成るグループから選択される。特別な実施形態において、第１デバイス・パックが実行され、第１デバイス・パックは該第１模擬デバイスの選択された動作を表す該動作エクステンション・ファイルを含む。更に、第２デバイス・パックが実行され、第２デバイス・パックは該第２模擬デバイスの選択された動作を表す第２の動作エクステンション・ファイルを含む。
【００１２】
別の特別な実施形態において、該方法はデバイス・シミュレータにデータ・セットを選択的にロードすることを更に含む。該データ・セットは、オーディオ・ファイル、ビデオ・ファイル、画像ファイル、或はフォント・ファイルであることが出来る。更に加えて、該データ・セットは、該第１模擬デバイス、該第２模擬デバイス、或は、該第１模擬デバイスと該第２模擬デバイスの両方に適用される。又、特別な実施形態において、該方法はデバイス・シミュレータにアプリケーションを選択的にロードすることを含む。該アプリケーションは、該第１模擬デバイス、該第２模擬デバイス、或は、該第１模擬デバイスと該第２模擬デバイスの両方に関して選択的に実行されることが出来る。又、該アプリケーションは、変更されたアプリケーションを作るために、該デバイス・シミュレータにおける該アプリケーションの実行に応じて少なくとも部分的に変更されることが出来る。該変更されたアプリケーションは、該第１模擬デバイス、該第２模擬デバイス、或は、該第１模擬デバイスと該第２模擬デバイスの両方の上で選択的に実行されることが出来る。
【００１３】
別の実施形態において、コンピュータ・プログラムはコンピュータ可読媒体の中に組み込まれ、基本シミュレータを生成するための命令、及び、該基本シミュレータと共に使用するための第１模擬デバイスを生成するための命令を含む。該コンピュータ・プログラムは又該第１模擬デバイス上に第１の複数の動作をロードするための命令を含む。更に、該コンピュータ・プログラムは基本シミュレータの中に第２模擬デバイスを生成する命令を含む。特に、第２模擬デバイスは第１模擬デバイスとは異なる。該コンピュータ・プログラムは又該第２デバイス上に第２の複数の動作をロードするための命令を含む。
【００１４】
別の実施形態において、基本シミュレータが提供されて、物理携帯計算装置の動作の基本セットをシミュレートする。複数の動作エクステンションが該基本シミュレータにアクセス可能である。更に、該動作エクステンションは、該物理携帯計算装置の、動作の基本セットとは別の、付加的動作をシミュレートするために、該基本シミュレータに適用可能である。
【００１５】
更に別の実施形態において、ソフトウェア開発システムが提供され、プロセッサ及び該プロセッサにアクセス可能なメモリ装置を含む。更に、デバイス・シミュレータが該メモリ装置の中に組み込まれる。該デバイス・シミュレータは第１の携帯計算装置をシミュレートするための命令及び第２の携帯計算装置をシミュレートするための命令を含む。更に加えて、該デバイス・シミュレータは、第１の携帯計算装置、第２の携帯計算装置、或は、第１の携帯計算装置と第２の携帯計算装置の両方に少なくとも１つの動作エクステンションを適用するための命令を含む。
【００１６】
また別の実施形態において、利用者インタフェースが提供され、そのインターフェースは第１の動作を有する第１模擬デバイス及び第２の動作を有する第２模擬デバイスを含む。１以上のプログラムが、該第１模擬デバイス、該第２模擬デバイス、或は、該第１模擬デバイスと該第２模擬デバイスの双方、において実行されることが出来る。又、該第１模擬デバイスは、セルラ電話、携帯情報端末、或はページャの内の、ある唯一つのモデルのシミュレーションである。
【００１７】
更にまた別の実施形態において、携帯計算装置はプロセッサ及び該プロセッサにアクセス可能なメモリを含む。アプリケーションが該メモリの中にロードされる。該アプリケーションは試験されるアプリケーションであり、該試験されるアプリケーションは複数の異なる型の物理計算装置に共通なデバイス動作のセットを有するデバイス・シミュレータ上で実行される。又、該デバイス・シミュレータは、少なくとも１つの該複数の異なる型の物理計算装置に対する複数の付加的動作をシミュレートするために、該デバイス・シミュレータによる使用のためのエクステンションの特徴を定義する複数のエクステンション・ファイルを有する。
【００１８】
別の実施形態において、アプリケーションを試験するための方法が提供され、その方法はアプリケーションを受信することを含む。該アプリケーションはデバッグされたアプリケーションを生成するためにデバイス・シミュレータにおいて試験される。特に、該デバイス・シミュレータは少なくとも１つの物理計算装置の動作の基本セットをシミュレートするために使用されることが出来るコア・シミュレーション・プログラムを含む。更に、該デバイス・シミュレータは、少なくとも１つの物理計算装置の付加的動作をシミュレートするためのシミュレーション・プログラムに適用されるべきエクステンションの特徴を定義するエクステンション・ファイルを含む。デバッグされたアプリケーションはサーバに通信されることが出来る。
【００１９】
更に別の実施形態において、方法はサーバにおいてアプリケーションを受信することを含む。特に、該アプリケーションは複数の異なる型の物理計算装置に共通する複数の動作を含むデバイス・シミュレータ上で試験される。又、該デバイス・シミュレータは、少なくとも１つの物理計算装置の複数の付加的動作をシミュレートするために、該デバイス・シミュレータによる使用のためのエクステンションの特徴を定義する複数のエクステンション・ファイルを含む。該アプリケーションはサーバから該模擬デバイスに対応する物理デバイスに通信されることが出来る。
【００２０】
更にまた別の実施形態において、システムが提供され、そのシステムは、プロセッサ及び該プロセッサにアクセス可能なコンピュータ・メモリを含む。シミュレーション・プログラムが該コンピュータ・メモリ内部に記憶され、そして、該プロセッサにより実行可能である。該シミュレーション・プログラムは、シミュレートされることが可能な複数の異なる型の物理携帯計算装置に共通する動作のセットをシミュレートするためのコア・シミュレーション・プログラムを含む。その上、該シミュレーション・プログラムは、該セットに追加されるデバイス動作をシミュレートするために、該シミュレーション・プログラムによる使用のためのエクステンションの特徴を定義するエクステンション・ファイルを含む。特に該デバイス動作は、複数の異なる型の物理携帯計算装置から選択された、物理デバイスの付加的特徴に対応する。該システムは又、複数の異なる型の物理携帯計算装置の少なくとも１つにおける実行のために目標とされる、アプリケーション・プログラムを含む。更に、該アプリケーション・プログラムは該シミュレーション・プログラムを使用して試験される。
【００２１】
また更に別の実施形態において、システムが提供され、そのシステムは、プロセッサ及び該プロセッサによってアクセス可能なコンピュータ・メモリを含む。シミュレーション・プログラムが該コンピュータ・メモリ内部に記憶され、そして、該プロセッサにより実行可能である。該シミュレーション・プログラムは、少なくとも１つの物理携帯計算装置の動作の基本セットをシミュレートするための手段を含む。又、該シミュレーション・プログラムは、少なくとも１つの物理計算装置の付加的動作をシミュレートするためのシミュレーション・プログラムに適用されるべきエクステンションの特徴を定義するための手段を含む。
【００２２】
別の実施形態において、デバイス・シミュレータが提供され、そのデバイス・シミュレータは基本シミュレータを提供するためのＢＲＥＷコアを含む。共有エクステンション・モジュールがＢＲＥＷコアに結合されている。更に、少なくとも１つの組み込みエクステンションが該共有エクステンション・モジュールに対して潜在する。該少なくとも１つの組み込みエクステンションはＢＲＥＷコアにアクセス可能であり、そして、該基本シミュレータによってシミュレートされる物理デバイスに対して第１の動作を提供する。又、少なくとも１つの汎用エクステンションが該共有エクステンション・モジュールに顕在する。該少なくとも１つの汎用エクステンションはＢＲＥＷコアにアクセス可能であり、そして、該基本シミュレータによってシミュレートされる物理デバイスに対して第２の動作を提供する。更に加えて、該デバイス・シミュレータはＢＲＥＷコアにアクセス可能である少なくとも１つのデバイス・パックを含む。該少なくとも１つのデバイス・パックはＢＲＥＷコアにアクセス可能である少なくとも１つのデバイス・パックのエクステンションを含み、そして、該基本シミュレータによってシミュレートされる該物理デバイスに対して第３の動作を提供する。
【００２３】
本発明の他の態様、利点および特徴は、下記の節、即ち、図面の簡単な説明、発明を実施するための最良の形態、及び請求項、を含む本願全体を通読すれば明らかになる。
【発明を実施するための最良の形態】
【００２４】
本明細書において説明される実施形態の先述の態様及び付随する利点は下記の詳細な説明を添付図面と共に参照することによって更に容易に明らかになる。
【００２５】
用語“具体例の”は本明細書においては“例、事例、あるいは例証として使用する”を意味するために使われる。本明細書中で“具体例の”と記載される何れの実施形態も、他の実施形態に対して優位である又は有利であると解釈される必要はない。用語“シミュレータ”は実際の物理デバイス或はデバイスの実行時の環境をシミュレートできるコンピュータ・アプリケーションを記述するために使用される。本明細書において使用されるように、用語“シミュレータ”はエミュレータを含むことを意図される。更に、多くの実施形態は、例えば、計算装置の素子によって実行される動作の系列によって記載される。本明細書において説明される様々な動作は、特定の回路、例えば特定用途向け集積回路（application specific integrated circuits）（ＡＳＩＣｓ）によって、１以上のプロセッサによって実行されるプログラム命令によって、或は、両者の組合せによって、実行されることが出来る。
【００２６】
その上、本明細書において説明される実施形態は、実行に際して関連するプロセッサに本明細書で説明される機能を実施させる、コンピュータ命令の対応するセットをそこに記憶した任意の型のコンピュータ可読記憶媒体の内部で完全に具体化される、と更に加えて考えられるべきである。従って、本発明の様々な態様が多くの異なる形態の中で具体化されることが出来て、その全てはクレームに記載された対象の範囲内であると考えられる。更に、本明細書で説明されるそれぞれの実施形態に関しては、何れのこの様な実施形態の対応する形式も本明細書において、例えば、ある動作を実行する“ために構成されたロジック”或は、説明された動作を実行する“ために使用できるコード（code）”として記載されることが出来る。
【００２７】
下記の詳細な説明は、計算装置において１以上のデバイスをシミュレートするために使用される、方法、システム、ソフトウェア及び装置を説明する。少なくとも１つの実施形態において、デバイス・シミュレータは計算システムにおける携帯デバイスをシミュレートできる。模擬デバイスに対応する実際の物理的携帯デバイスのために開発されたアプリケーション・プログラムは該計算システムで実行される。特に、該アプリケーション・プログラムは該計算システムにおいて生成される模擬デバイスを使用して試験されることが出来る。
【００２８】
１以上の実施形態において、デバイス・シミュレータは１以上のパーソナル計算装置をシミュレートすることができ、そして、ランタイム環境と結合して作動することが出来る。１つのこの様なランタイム環境は、カリフォルニア州サンディエゴのクアルコム社によって開発された、ワイヤレス対応２値化ランタイム環境（ＢＲＥＷ（登録商標））ソフトウェア・プラットフォームのあるバージョンである。下記の説明における少なくとも１つの実施形態において、クライアントの計算装置とサーバとの間に通信を提供するために使用されるシステムが、最新バージョンのＢＲＥＷ（登録商標）ソフトウェア・プラットフォームのような、ランタイム環境を実行する計算デバイスに実装される。しかしながら、クライアントの計算装置とサーバとの間に通信を提供するために使用されるシステムの１以上の実施形態が、例えば、無線クライアントの計算装置上のアプリケーションの実行を管理するために動作する、他の型のランタイム環境を用いた利用に適している。
【００２９】
図１は、セルラ電話１０２のような無線装置上のソフトウェア・アプリケーション・コンポーネントのロード、再ロード、及び、消去のためのシステム１００の具体例の、非限定的実施形態のブロック図である。セルラ電話１０２は無線ネットワーク１０４を介して少なくとも１つのアプリケーション・サーバ１０６と通信する。更に、アプリケーション・サーバ１０６は、無線通信ポータル或は無線ネットワーク１０４への他のデータ・アクセスを介して、１又は複数の無線装置に１又は複数のソフトウェア・アプリケーション及びソフトウェア・コンポーネントを選択的に送信することが出来る。
【００３０】
図１に図示されるように、無線装置は、セルラ電話１０２、携帯情報端末１０８、ページャ１１０、或は、無線通信ポータルを有する独立したコンピュータ・プラットフォーム１１２、であることができる。特別な実施形態において、ページャ１１０は２方向テキスト・ページャであることが出来る。更に、それに代わる実施形態において、無線装置はネットワーク或はインターネットへの有線接続１１４を有することが出来る。具体例の非限定的システムは任意の型の遠隔モジュールを含み、この遠隔モジュールは、無線通信ポータルを含み、無線モデム、ＰＣＭＣＩＡカード、パソコン、アクセス端末、ディスプレイ或はキーパッドのない電話、或はそれ等の組合せ又は部分的組合せ、を限定なしで含む。
【００３１】
図１に表されるように、アプリケーション・ダウンロード・サーバ１０６は、無線ネットワーク１０４と通信する他のコンピュータ要素と共に、ネットワーク１１６に結合されている。システム１００は第２サーバ１２０及びスタンド・アローン・サーバ１２２を含み、そして、各サーバはネットワーク１０４を介して無線装置１０２、１０８、１１０、１１２に対し独立したサービスと処理を提供することが出来る。更に、図１に示されるように、システム１００は、又、無線装置１０２、１０８、１１０、１１２によってダウンロード可能なソフトウェア・アプリケーションを格納する、少なくとも１つの格納アプリケーションのデータベース１１８を含む。アプリケーション・ダウンロード・サーバ１０６、第２サーバ１２０及びスタンド・アローン・サーバ１２２の内の任意の１つ又は複数において安全な通信を行うためのロジックを設置する異なる実施形態が考えられる。
【００３２】
図２には、無線ネットワーク１０４の諸コンポーネント、及び、システム１００の諸要素の相互関係を含め、システム１００を更に十分に図解するブロック図が示されている。システム１００は単に具体例であり、そして、無線クライアント計算装置１０２、１０８、１１０、１１２のような遠隔モジュールが相互間で、及び／又は、無線ネットワーク事業者及び／又はサーバ（限定するものではない）を含む無線ネットワーク１０４を介して結合される諸コンポーネントとの間で、無線通信するための任意のシステムを含むことが出来る。アプリケーション・ダウンロード・サーバ１０６及び格納アプリケーションのデータベース１１８は、サーバ１２０のような他の任意のサーバと共に、セルラ電話通信サービスを提供することが出来、そして、インターネット、安全が確保されているＬＡＮ、ＷＡＮ、或は他のネットワークのようなデータ・リンクを介して通信事業者のネットワーク２００と通信することが出来る。実例となる実施形態において、サーバ１２０はサーバ・セキュリティ・モジュール１２１を含み、このモジュール１２１は、通信事業者のネットワーク２００での安全な通信を確保するように構成されたロジックを更に含む。特別な実施形態において、サーバ・セキュリティ・モジュール１２１は、安全が確保された通信を提供するために、無線装置１０２、１０８、１１０、１１２のようなクライアント計算装置上に設置されるクライアント・セキュリティ・モジュールと結合して、動作することが出来る。
【００３３】
通信事業者のネットワーク２００は移動通信交換局（mobile switching center）（“ＭＳＣ”）２０２に送られる（データ・パケットのような）メッセージを制御する。通信事業者のネットワーク２００は、インターネット及び／又はＰＯＴＳ（plain ordinary telephone system）のようなネットワークによって、ＭＳＣ２０２と通信する。通常、通信事業者のネットワーク２００とＭＳＣ２０２との間のネットワーク接続はデータを転送し、ＰＯＴＳは音声情報を転送する。ＭＳＣ２０２は多数の無線基地局装置（base transceiver stations）（“ＢＴＳ”）２０４に接続される。ＭＳＣ２０２は、データ伝送のためのネットワーク及び／又はインターネット及び音声情報のためのＰＯＴＳ双方によってＢＴＳ２０４に接続される。ＢＴＳ２０４は、結局、ショート・メッセージ・サービス（“ＳＭＳ”）或は当業者に公知の他の無線通信の方法によって、セルラ電話１０２のような無線装置に対して無線でメッセージを一斉送信する。
【００３４】
無線装置、例えば、セルラ電話１０２のような無線クライアント計算装置は、アプリケーション・ダウンロード・サーバ１０６から送信されたソフトウェア・アプリケーションを受信して実行することが出来るコンピュータ・プラットフォーム２０６を有する。コンピュータ・プラットフォーム２０６は、特定用途向け集積回路（“ＡＳＩＣ”２０８）、プロセッサ、マイクロプロセッサ、ロジック回路、或は他のデータ処理装置として実装される。ＡＳＩＣ２０８は無線装置の製造時に装着される。ＡＳＩＣ２０８または他のプロセッサは、無線装置のメモリ２１２内の常駐プログラムと結合するアプリケーション・プログラミング・インタフェース（application programming interface）（“ＡＰＩ”）２１０層を実行することが出来る。メモリ２１２は、リード・オンリー・メモリ或はランダム・アクセス・メモリ（ＲＯＭ又はＲＡＭ）、ＥＥＰＲＯＭ、フラッシュ・メモリ、或はコンピュータ・プラットフォームに適した他の任意のメモリから構成される。ＡＰＩ２１０は、また、事業者ネットワーク２００を介して安全な通信を行うように構成されたロジックを有するクライアント・セキュリティ・モジュール２１４を含む。特別な実施形態において、クライアント・セキュリティ・モジュール２１４は安全な通信を提供するためのサーバ・セキュリティ・モジュール１２１と結合して動作することが出来る。図２に図示されるように、コンピュータ・プラットフォーム２０６は、メモリ２１２内でアクティブには使用されてないアプリケーションを格納できるローカル・データベース２１６を更に含むことができる。実例となる実施形態において、ローカル・データベース２１６は、フラッシュ・メモリ・セルであるが、磁気媒体、ＥＥＰＲＯＭ、光媒体、テープ、或はフロッピー（登録商標）又はハードディスクのような当業者に公知の任意の２次記憶装置であってもよい。
【００３５】
無線クライアント計算装置、例えば、セルラ電話１０２は、アプリケーション・ダウンロード・サーバ１０６から、ゲーム、ニュース、株モニタなどのような、１又は複数のソフトウェア・アプリケーションをダウンロードすることが出来る。更に、該無線計算装置は該アプリケーションを使用してない時には、ローカル・データベース２１６の中に格納することができ、格納された常駐アプリケーションを、利用者が所望する際に、ＡＰＩ２１０による実行のためにローカル・データベース２１６からメモリ２１２へアップロードすることが出来る。更に、ネットワーク１０４を介する通信は、クライアントのセキュリティ・モジュール２１４とサーバのセキュリティ・モジュール１２１との間の相互作用と働きによって、少なくとも部分的には、安全を確保された方法で行われる。
【００３６】
さて図３を参照すると、パーソナル計算装置をシミュレートするためのシステムが示され、全体として３００と番号付けされる。示されているように、システム３００は計算システム３０２を含む。実例となる実施形態において、計算システム３０２は、デスクトップ計算装置、ラップトップ計算装置、或は、ハンドヘルド計算装置であることができる。入力装置３０４が計算システム３０２に結合される。実例となる実施形態において、入力装置３０４はデータ或は情報を入力するために使用される。特別な実施形態において、入力装置３０４はキーボードである。他の具体例の、非限定的な実施形態において、入力装置３０４はマウス、ライト・ペン（light pen）、スキャナ、タッチ・スクリーン、セルラ電話、ディジタル・カメラ、或はＭＰ３プレイヤーであることが出来る。
【００３７】
図３は、更に、計算システム３０２に結合された出力装置３０６を示している。出力装置３０６はワイヤ接続、ケーブル接続、或は無線接続を介して計算システム３０２から１又は複数の出力を受信する。実例となる実施形態において、出力装置３０６はディスプレイ装置である。他の具体例の、非限定的な実施形態において、出力装置３０６は、プリンタ、記録装置、プロッタ、或はプロジェクタであることが出来る。図３は、また、計算システム３０２に結合されるネットワーク接続装置３０８を示す。ネットワーク接続装置３０８はネットワーク、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、イントラネット、或はインターネットへの接続可能性を提供する。実例となる実施形態において、ネットワーク接続装置３０８はモデム或はルータである。
【００３８】
図３に示されるように、計算システム３０２はプロセッサ３１０及びメモリ３１２を含む。メモリ装置３１２はプロセッサ３１０に結合され、プロセッサ３１０にアクセス可能である。実例となる実施形態において、メモリ装置３１２は、ハード・ディスク・ドライブのような不揮発性メモリ装置３１２であることが出来る。メモリ装置３１２は、リード・オンリー・メモリ（ＲＯＭ）装置或はランダム・アクセス・メモリ（ＲＡＭ）装置であることが出来る。図３に更に図示されるように、デバイス・シミュレータ３１４がロードされ、メモリ装置３１２の内部に組み込まれる。特別な実施形態において、デバイス・シミュレータ３１４は計算システム３０２において１又は複数のパーソナル計算装置をシミュレートすることが出来る。
【００３９】
特別な実施形態において、アプリケーション・プログラムが、物理的なパーソナル計算装置の動作をシミュレートするために、計算システム内部のデバイス・シミュレータ３１４上で実行される。該アプリケーションは計算システム３０２に入力され、コンピュータ・アプリケーションが企図される対象となる選択された物理的なパーソナル計算装置に対応する模擬デバイス上で、あたかも実行されているように、該アプリケーションが実行される。このようにして、ソフトウェア開発者は、ある特別なアプリケーション・プログラムを、該プログラムが企図される対象となる特別な物理的パーソナル計算装置に該アプリケーション・プログラムを移植する必要もなく、試験することが出来る。実例となる実施形態において、デバイス・シミュレータ３１４は、セルラ電話の異なる種々の製造元とモデルとをシミュレートすることが出来る。また、デバイス・シミュレータ３１４は、異なる種々の製造元と型の携帯情報端末（ＰＤＡｓ）、異なる種々の製造元と型のページャ、及びコンピュータ・アプリケーションが書かれる対象となる異なる種々の製造元と型の他のデバイス、をシミュレートすることが出来る。更に、デバイス・シミュレータ３１４は、コア・セットの諸動作及び随意選択の多様な付加的諸動作を複数の模擬デバイスに割り当てることが出来る。例えば、デバイス・シミュレータ３１４は、エクステンション・ファイルを使用して、オーディオ・プレイヤー動作、ビデオ・プレイヤー動作、イメージ・ビューアー動作、ディジタル・ビデオ・カメラ動作、ディジタル・スチール・カメラ動作、及び、ディジタル・オーディオ・レコーダ動作を割り当てることが出来る。
【００４０】
アプリケーションがデバイス・シミュレータにおいて試験された後、該試験されたアプリケーションは格納庫、例えば図１に示される格納アプリケーションのデータベース１１８にアップロードされる。更に、試験に基づいて変更された可能性がある該試験されたアプリケーションは、１又は複数の無線装置１０２、１０８、１１０、１１２（図１）にダウンロードされる。サービス・プロバイダはそれぞれのダウンロードされたアプリケーションに対して料金を請求することができ、該料金の１部をソフトウェア開発者に渡すことが出来る。
【００４１】
図４には、デバイス・シミュレータの具体例の、非限定的実施形態が示され、全体として４００と番号付けされる。実例となる実施形態において、デバイス・シミュレータ４００はワイヤレス対応２値化ランタイム環境（ＢＲＥＷ）プラットフォームを用いて動作することが出来る。しかしながら、デバイス・シミュレータは任意の他のプラットフォーム或はオペレーティング・システム上で動作することが出来る。示されているように、デバイス・シミュレータはＢＲＥＷコア４０２を含む。更に、デバイス・シミュレータ４００は相手先ブランド製造者（original equipment manufacturer）（ＯＥＭ）層４０４を含む。ＢＲＥＷコア４０２は、ＯＥＭ層４０４に対するＡＰＩとして使用されることが出来る多数のコアＢＲＥＷライブラリ及びモジュールを含む。特別な実施形態において、ＯＥＭ層４０４は、デバイス・シミュレータが搭載され実行されるコンピュータ上にＢＲＥＷを移植することができるデバイス固有のコードを有する。
【００４２】
図４は、また、デバイス・シミュレータ４００がＢＲＥＷコア４０２に結合される共有エクステンション・モジュール４０６を更に含むことを示している。示されているように、共有エクステンション・モジュール４０６は、デバイス・シミュレータ４００の動作中にアプリケーションに対して利用可能にするエクステンションを含む。特別な実施形態において、共有エクステンション・モジュール４０６は第１汎用エクステンション４０８及び第２汎用エクステンション４１０を含む。更に、共有エクステンション・モジュール４０６は第１組み込みエクステンション４１２及び第２組み込みエクステンション４１４を含む。
【００４３】
特別な実施形態において、汎用エクステンション４０８、４１０及び組み込みエクステンション４１２，４１４は、デバイス・シミュレータによってシミュレートされるデバイスに通常共通する諸特徴を備える。これ等の特徴は、例えば、汎用ボタンの大きさと形状、汎用ディスプレイの大きさと形状、汎用スピーカの大きさと形状、汎用マイクロフォンの大きさと形状、汎用アンテナの大きさと形状を含むことが出来る。
【００４４】
図４に示されるように、デバイス・シミュレータ４００は第１デバイス・パック４１６及び第２デバイス・パック４１８を含む。それぞれのデバイス・パック４１６，４１８はデバイス・シミュレータ４００によってシミュレートされる特別な物理デバイスを表す。更に、それぞれのデバイス・パック４１６，４１８は、該デバイス・パック４１６，４１８によって表されるデバイスに関連するデバイス・モデル情報を含む。例えば、それぞれのデバイス・パック４１６，４１８は特別なデバイスのためのネットワーク接続及びソケット情報を含むことが出来る。また、それぞれのデバイス・パック４１６，４１８は、デバイスに含まれるメモリのタイプ及びメモリの大きさのようなメモリ情報を含むことが出来る。更に、デバイス・パック４１６，４１８はディスプレイのタイプを含むディスプレイ情報、例えば、液晶ディスプレイ（ＬＣＤ）、ディスプレイの大きさ、及びディスプレイの解像度を含むことが出来る。
【００４５】
更に加えて、デバイス・パック４１６，４１８は主キーパッド情報、２次キーパッド情報、キーボード情報、主ディスプレイ情報、２次ディスプレイ情報、オーディオ情報、フォント情報、対応媒体のフォーマット、アプリケーション・サポート、Ｂｌｕｅｔｏｏｔｈ（登録商標）情報、ジョイスティック情報、タッチ・スクリーン情報、全地球測位システム情報、ネットワーク情報、予測型文字入力（predictive text entry）情報、メモリ情報、加入者情報、モジュール情報、及び、呼出音、通話記録情報、住所録情報、スクリーン・セーバ情報のようなその他装置固有の情報、を含むことが出来る。付録１はデバイス・パックを作るために書かれたプログラムの具体例の、非限定的な実施形態を示す。特に、付録１に示されるプログラムは、デバイス・シミュレータ４００に、セルラ電話のシミュレーションを表示させることが出来る。図４は、第１デバイス・パック４１６が第１エクステンション４２０、第２エクステンション４２２、第３エクステンション４２４を含むことを示す。図４は、また、第２デバイス・パック４１８が第１エクステンション４２６、第２エクステンション４２８を含むことを示す。
【００４６】
特別な実施形態において、それぞれのデバイス・パック４１６，４１８に含まれる該エクステンションは、デバイス・パック４１６，４１８に関連付けされる模擬デバイスに固有である。また、該エクステンションは模擬デバイスに対応する物理デバイスのある諸特徴または諸特性を表す。例えば、これ等の特徴は、オーディオ・プレイヤーの特徴、例えばＭＰ３ファイルの演奏、ビデオ・プレイヤーの特徴、イメージ・ビューアーの特徴、ビデオ・カメラの特徴、スチール・カメラの特徴、及び、オーディオ・レコーダの特徴を含むことが出来るが、これ等に限定されない。特別な実施形態において、もしデバイス・パック４１６，４１８が汎用エクステンションと衝突する何らかの動作エクステンションを含むならば、デバイス・パックのエクステンションは汎用エクステンションの動作をオーバライド（override）する。利用者によって選択された後、何れかのデバイス・パック４１６，４１８がコンピュータによってデバイス・シミュレータにロードされる際に、該エクステンションは、模擬デバイスにおいて実行されるためにデバイス・シミュレータにロードされる任意の動的アプリケーションに対して利用可能である。
【００４７】
更に加えて、図４は複数の動的ＢＲＥＷアプリケーションを示す。具体的には、図４は、第１動的ＢＲＥＷアプリケーション４３０、第２動的ＢＲＥＷアプリケーション４３２、第３動的ＢＲＥＷアプリケーション４３４、及び、第４動的ＢＲＥＷアプリケーション４３６を示す。動的アプリケーション４３０、４３２，４３４，４３６は物理携帯計算装置上での使用のために開発されているプログラムを含むことが出来る。例えば、動的アプリケーションは、ゲーム、業務アプリケーション、呼出音、及び他のビジネス或は娯楽関連のアプリケーションを含むことが出来る。特別な実施形態において、動的ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６は、ＢＲＥＷコア４０２、任意の共有アプリケーション、及び、デバイス・シミュレータにロードされる任意のデバイス・パック・エクステンションに直接接続することが出来る。特別な実施形態において、動作中に、動的ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６は、模擬デバイス或は環境上で、デバイス・シミュレータによって実行されることが出来る。これにより、動的ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６の開発者は、ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６を試験してデバッグするために、及び、ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６の動作が開発者によって意図される通りであるかどうかを決定するために、開発期間中にＢＲＥＷプラットフォーム上でＢＲＥＷアプリケーション４３０、４３２，４３４，４３６を実行することが出来る。
【００４８】
特別な実施形態において、デバイス・シミュレータは全てのエクステンションをロードするための共通場所を含有し、該ロードされたエクステンションはデバイス・シミュレータの特定のインスタンスに対し全てのデバイス・パックを介して適用可能である。更に、デバイス・パックがデバイス・シミュレータにロードされる時、該エクステンションは次のようにロードされることが出来る。最初に、組み込みエクステンションがロードされる。組み込みエクステンションはデバイス・シミュレータに潜在し、利用者によって変更されることは出来ない。第２に、デバイス・パックにとって利用可能であり、且つ適用可能である汎用エクステンションがロードされる。汎用エクステンションはデバイス・シミュレータに顕在し、利用者によって変更されたり或は提供されることが出来、そして、デバイス・シミュレータにアップロードされることが出来る。汎用エクステンション（複数）が先にロードされた組み込みエクステンションをオーバライドすることが出来るのは、それ等が該先にロードされたエクステンションと同じＢＲＥＷインタフェース或はＢＲＥＷクラスのための機能を実装している場合に限る。第３にデバイス・パックに固有のデバイス・パック・エクステンションがロードされる。デバイス・パック・エクステンションもまたデバイス・シミュレータに顕在し、利用者によって変更されたり或は提供されることが出来、デバイス・シミュレータにアップロードされることが出来る。デバイス・パックエクステンション（複数）が２番目にロードされた汎用エクステンションをオーバライドすることが出来るのは、それ等が該２番目にロードされた汎用エクステンションと同じＢＲＥＷインタフェース或はＢＲＥＷクラスのための機能を実装している場合である。デバイス・パック・エクステンション（複数）もまた、最初にロードされた組み込みエクステンションをオーバライドすることが出来るが、それはそれ等が該最初にロードされたエクステンションと同じＢＲＥＷインタフェース或はＢＲＥＷクラスのための機能を実装している場合である。
【００４９】
従って、もしディスプレイのための組み込みエクステンションが最初にロードされ、そして次に、ディスプレイのための汎用エクステンションがロードされるならば、汎用エクステンションは組み込みエクステンションをオーバライドする。その後、もしディスプレイのためのデバイス・パック・エクステンションがロードされるならば、それは該汎用エクステンション及び該組み込みエクステンションをオーバライドする。もし汎用エクステンションがキーパッドのためのものならば、それはディスプレイのための組み込みエクステンションをオーバライドしないが、ディスプレイのためのデバイス・パック・エクステンションは依然としてディスプレイのための組み込みエクステンションをオーバライドする。上述の説明において、ＢＲＥＷインタフェースは類似するサービスを提供する機能の集合を意味するように意図され、３２ビット識別子によって独自に識別される。更に、ＢＲＥＷクラスはＢＲＥＷインタフェースにおける諸機能の実装を意味する。
【００５０】
図４に関する特別な例において、第１デバイス・パック・エクステンション４２０は第２汎用エクステンション４１０の最新化された或は変更された実装であり、代わりに第２汎用エクステンション４１０は第１組み込みエクステンションの最新化された或は変更された実装である、という仮定がなされている。この様に、第１デバイス・パック４１６がデバイス・シミュレータ４００上にロードされるとき、第１デバイス・パック・エクステンション４２０、第２デバイス・パック・エクステンション４２２、第３デバイス・パック・エクステンション４２４、第１汎用エクステンション４０８及び第２組み込みエクステンション４１４は、ＢＲＥＷアプリケーション４３０、４３２，４３４，４３６にとって利用可能である。これは、第１デバイス・パック・エクステンション４２０は第２汎用エクステンション４１０をオーバライドし、代わりに後者は第１組み込みエクステンション４１２をオーバライドする、という事実のためである。
【００５１】
図５には、デバイスをシミュレートする方法が示され、ブロック５００で開始する。ブロック５００において、コンピュータはデバイス・シミュレータ、例えば本明細書で説明されるデバイス・シミュレータを実行する。ブロック５０２において、デバイス・シミュレータはシミュレートされるべき特定の物理デバイスの選択を検知する。特別な実施形態において、利用者はドロップ・ダウン・メニューを使用して、シミュレートされる物理デバイスの一覧表から選択することができ、或は、利用者はドロップ・ダウン・メニューを使用して、特定の物理デバイスと関連付けられる特定のデバイス・パックを選択することが出来る。ブロック５０４に移り、計算装置は選択されたデバイスに関連付けられたデバイス・パックをロードする。次に、ブロック５０６において、デバイス・シミュレータはデバイス・パックを実行して該デバイス・シミュレータに模擬デバイスを作る。
【００５２】
ブロック５１０に進んで、デバイス・シミュレータはデバイス・パックに関連付けられる１又は複数のデバイス動作エクステンションをロードする。本明細書で説明されるように、該エクステンションはロードされることが出来る。その後、ブロック５１０において、デバイス・シミュレータはデバイス動作エクステンションを該デバイス・シミュレータによって与えられる模擬デバイスに適用することが出来る。デバイス動作エクステンションは模擬デバイスの外観を規定或は変更することが出来る。更に、デバイス動作エクステンションは模擬デバイスの機能或は動作を規定或は変更することが出来る。次に、方法は判断段階５１２へ進む。
【００５３】
方法の説明を続けると、判断段階５１２において、デバイス・シミュレータは、データ・セットが該デバイス・シミュレータを介して選択されるかどうかを検知する。もしデータ・セットが選択されるならば、方法はブロック５１４へと続き、そして、デバイス・シミュレータは該データ・セットをロードする。特別な実施形態において、データ・セットは、ジョイント・フォトグラフィック・エクスパーツ・グループ（joint photographic experts group）（ＪＰＥＧ）ファイル、グラフィックス・インターチェンジ・フォーマット（graphics interchange format）（ＧＩＦ）ファイル、タグド・イメージ・ファイル・フォーマット（tagged image file format）（ＴＩＦＦ）ファイル、アドビ・フォトショップ（Adobe Photoshop）（ＰＳＤ）ファイル、ポータブル・ネットワークス・グラフィックス（portable networks graphics）（ＰＮＧ）ファイル、ウィンドウズ（登録商標）・メタファイル（windows（登録商標） metafile）（ＷＭＦ）ファイル、或は模擬デバイスにおいて観られることが出来る他のタイプの画像ファイルである。また、データ・セットは、ムービング・ピクチャ・エクスパーツ・グループ（moving picture experts group）（ＭＰＥＧ）ファイル、オーディオ・ビデオ・インタリーブ（audio video interleave）（ＡＶＩ）ファイル、ウィンドウズ・メディア・ビデオ（Windows media video）（ＷＭＶ）ファイル、アドバンスド・ストリーミング・フォーマット（advanced streaming format）（ＡＳＦ）ファイル、クイックタイム（Quicktime）（ＭＯＶ）ファイル、リアルメディア（Real Media）（ＲＭ）ファイル、或は模擬デバイスにおいて観られることが出来る他のタイプのビデオ・ファイルであってもよい。データ・セットは、ＭＰＥＧオーディオ・レイヤー・スリー（audio layer three）（ＭＰ３）ファイル、ウェーブフォーム・オーディオ・フォーマット（waveform audio format）（ＷＡＶ）ファイル、ｗｍａファイル、ＯＧＧファイル、モンキー
ズ・オーディオ・ディジタル・ファイル（Monkey's Audio digital file）（ＡＰＥ）ファイル、ＶＯＸファイル、リアル・オーディオ（Real Audio）(ＲＡ)ファイル、シンセティク・ミュージック・モバイル・アプリケーション・フォーマット（synthetic music mobile application format）（ＭＭＦ）ファイル、ミュージカル・インストルメント・ディジタル・インタフェース（musical instrument digital interface）（ＭＩＤ）ファイル、フレーズ・フォーマット（phrase format）（ＳＰＦ） ファイル、クアルコム・ピュアボイス・オーディオ（Qualcomm PureVoice audio）ファイル（ＱＣＰ）、或は模擬デバイスを介して聴かれることが出来る他のタイプのサウンド・ファイルでもよい。また、オーディオ・ファイルはセルラ電話装置のための呼出音として使用されることが出来る。更に、該データ・セットはコンピュータ上で利用可能な１又は複数のフォント、或は、模擬デバイスに特有な１又は複数のフォントを含むフォント・ファイルであることが出来る。ブロック５１４へ移行して、該データ・セットは模擬デバイスに適用される。ブロック５１６から、方法は判断段階５１８へと移行する。判断段階５１２へ戻って、もしデータ・セットがデバイス・シミュレータを介して選択されないならば、方法は判断段階５１８へと進行する。
【００５４】
判断段階５１８において、デバイス・シミュレータは、模擬デバイスのために書かれたアプリケーションが該デバイス・シミュレータを介して選択されたかどうかを検知する。もしそうならば、該アプリケーションがブロック５２０においてデバイス・シミュレータ上にロードされる。ブロック５２２において、該アプリケーションがデバイス・シミュレータで、例えば、模擬デバイスにおいて実行される。特に、該アプリケーションはデバイス・シミュレータによって供給され、特別な物理デバイスの動作環境に対応する模擬デバイス環境で実行される。判断段階５２４へと移行して、コンピュータ或は利用者は該アプリケーションが何らかの問題或は“バグ”を有するかどうかを決定する。もしないならば、方法は次に図６の判断段階６００へ移行する。もしバグがあるならば、論理はブロック５２６へ移行し、そして該アプリケーションは修正される、即ち、デバグされる。次に、ブロック５２８において、デバグされたアプリケーションがデバイス・シミュレータにロードされる。論理は次にブロック５２２に戻り、本明細書に説明されたように継続する。判断段階５１８に戻って、もしアプリケーションが該デバイス・シミュレータを介して選択されないならば、図６の判断段階６００へ移行する。
【００５５】
図６を参照すると、ブロック６００においてデバイス・シミュレータは、新しいデバイスが該デバイス・シミュレータにおいてシミュレートされるために選択されるかどうかを検知する。もし新しいデバイスが選択されるならば、デバイス・シミュレータは、ブロック６０２において、新しい模擬デバイスを作るために新しく選択されたデバイスに関連付けられたデバイス・パックを実行する。ブロック６０４において、新しく選択されたデバイスに関連付けられたデバイス動作エクステンションがデバイス・シミュレータにロードされる。その後、ブロック６０６において、デバイス・シミュレータは新しいデバイス動作エクステンションを模擬デバイスに適用する。次に判断段階６０８に移行する。
【００５６】
判断段階６０８において、デバイス・シミュレータは、新しいデータ・セットが該デバイス・シミュレータを介して選択されたかどうかを検知する。もし新しいデータ・セットが選択されたならば、ブロック６１０において、該新しいデータ・セットはデバイス・シミュレータにロードされる。特に、新しいデータ・セットはデバイス・シミュレータにおける新しい模擬デバイスにロードされ、ブロック６１２において新しい模擬デバイスに適用されるか、或は該新しい模擬デバイスによって処理される。その後、判断段階６１４へ進む。判断段階６０８に戻って、もし新しいデータ・セットが選択されないならば、論理は判断段階６１６に移行し、デバイス・シミュレータは、先に選択されたデータを新しい模擬デバイスに適用するかどうかを決定する。特別な実施形態において、この決定は利用者に質問を提示することによって行われることが出来る。もしデバイス・シミュレータが先に選択されたデータを新しい模擬デバイスに適用すると決定するならば、ブロック６１８へ進み、該デバイス・シミュレータは先に選択されたデータを該模擬デバイスに適用する。論理は次に判断段階６１４に移行する。
【００５７】
判断段階６１４において、デバイス・シミュレータは新しい模擬デバイスのために開発された新しいアプリケーションが選択されるかどうかを決定する。もしそうならば、ブロック６２０において、該新しいアプリケーションがデバイス・シミュレータ上にロードされる。特に、新しいアプリケーションはデバイス・シミュレータにおける模擬デバイス上にロードされる。次に、ブロック６２２において、新しいアプリケーションが本明細書で説明されるデバイス・シミュレータにおいて実行される。その後、論理は判断段階６２４に進む。
【００５８】
判断段階６１４に戻り、もし新しいアプリケーションが選択されないならば、判断段階６２６へと継続し、デバイス・シミュレータは、先に選択されたアプリケーションを模擬デバイスにおいて実行するかどうかを決定する。もしそうならば、デバイス・シミュレータは、先に選択されそして模擬デバイスに先にロードされたデバイス・アプリケーションを実行する。他方、もし先に選択されたアプリケーションが実行されないならば、論理は判断段階６２４へと続き、デバイス・シミュレータは、利用者が該デバイス・シミュレータを閉じることを決定したかどうかを検知する。もしデバイス・シミュレータが判断段階６２４で閉じられないならば、論理は判断段階６００に戻り、上述で説明されたように継続する。実例となる実施形態において、本明細書において説明される方法の諸段階は図示される順序で実行される。しかしながら、１又は複数のそれに替わる実施形態において、１又は複数の方法の段階が異なる順序で実行されることが可能である。
【００５９】
図７は、上述で説明されたデバイス・シミュレータによって提示されることが出来るグラフィカル・ユーザ・インタフェースを示し、全体として７００と番号付けされる。図示されているように、ＧＵＩ７００はデバイス・シミュレータ７０２の第１インスタンス及びデバイス・シミュレータ７０４の第２インスタンスを含むことが出来る。デバイス・シミュレータ７０２の第１インスタンスは第１模擬デバイス７０６を含む。また、図７に示されるように、デバイス・シミュレータ７０４の第２インスタンスは第２模擬デバイス７０８を含む。特別な実施形態において、第１模擬デバイス７０６は、特別な機能性を有する第１のタイプの特別なセルラ電話のシミュレーションである。また、第２模擬デバイス７０８は、異なる機能性を有する第２のタイプの特別なセルラ電話のシミュレーションである。更に、特別な実施形態において、基本デバイス・シミュレータはデバイス・シミュレータ７０２，７０４の各インスタンスにおいて同一である。換言すれば、同一バックグラウンドが提供されることが出来、同一ドロップ・ダウン・メニューが提供されることが出来、そして、同一オプションが提供されることが出来る。
【００６０】
利用者はドロップ・ダウン・メニューを介して特別な物理デバイスを選択できる。デバイス・シミュレータは該物理デバイスのシミュレーションを生成し、図示されるように、利用者に該シミュレーションを提供する。模擬デバイス７０６，７０８はデバイス・シミュレータ７０２、７０４上にロードされた１又は複数の動作エクステンションに従って出現し、動作し、機能する。従って、もしカメラの動作エクステンションが模擬デバイス７０６、７０８の何れかの上にロードされるならば、それはカメラ付き電話として動作できる。更にもしオーディオ・プレイヤー・エクステンションが模擬デバイス７０６、７０８の何れかの上にロードされるならば、それはＭＰ３プレイヤーとして動作できる。
【００６１】
利用者は、模擬デバイス７０６、７０８の上にロードされるべきファイル、例えばオーディオ・ファイルを選択できる。このことは利用者が模擬デバイス７０６、７０８の動作を試験することを可能にする。更に、利用者は模擬デバイス７０６、７０８において実行されるべき１又は複数のアプリケーションを選択できる。かくして、利用者は、１又は複数のアプリケーションが特定の物理デバイスによって対応されることが出来るかどうかを決定することが出来る。更に、利用者は１又は複数のアプリケーションが該利用者によって意図されるように機能できるかどうかを決定できる。特別な実施形態において、特別なアプリケーション或はファイルは、第１模擬デバイス７０６において動作エクステンションの第１のセットを、そして第２模擬デバイス７０８において動作エクステンションの第２のセットを、利用することが出来る。このようにして、特別なプログラムは、第１模擬デバイス７０６において第１の動作を、第２模擬デバイス７０８において第２の動作を示すことが出来る。
【００６２】
図７に示される例において、ＭＩＤ、ＭＭＦ及びＳＰＦファイルが第１模擬デバイス７０６のために有効化される。しかしながら、ＱＣＰ及びＭＰ３ファイル・フォーマットは第１模擬デバイス７０６のためのデバイス・パックには含まれない。このようにして、第１模擬デバイス７０６のためのメディア・プレイヤー・リスト（Media Player list）は．ｍｉｄ、．ｍｍｆ、及び．ｓｐｆファイルのみ載せている。他方、第２模擬デバイス７０８に関連付けられるデバイス・パックはＭＩＤマルチメディア・エクステンションを含まない。
【００６３】
上述された構造の構成によって、デバイス・シミュレータは、様々な携帯計算装置のためのアプリケーションの開発期間中に使用される柔軟性に富む道具を提供する。デバイス・シミュレータによって、デバイス・パックは、該デバイス・パックによって提供される、模擬デバイスのための機能性を動的に提供することが可能になる。更に、デバイス・シミュレータの機能性は、新デバイスのための新デバイス・パックを開発することによって新デバイスが開発されるに伴い、拡張可能である。また、デバイス・シミュレータはモジュール式であり、物理デバイスの動作に極めて近い動作を提供するシミュレーション環境を可能にする。
【００６４】
本明細書において開示された実施形態に関連して説明された様々な実例となる諸論理ブロック、諸構成、諸モジュール、諸回路、及び、アルゴリズムの諸段階は、電子的ハードウェア、コンピュータ・ソフトウェア、或は両者の組合せとして実装されることが出来る、ということを当業者なら更に理解できるだろう。ハードウェアとソフトウェアのこの交換可能性を明確に説明するために、様々な実例となる諸コンポーネント、諸ブロック、諸構成、諸モジュール、諸回路、及び諸段階が、それ等の機能性によって一般的に説明された。このような機能性がハードウェアとして実装されるか或はソフトウェアとして実装されるかは、特別なアプリケーション及び全体システムに課されるデザイン制約次第である。熟練した技術者は、説明された機能性をそれぞれの特別なアプリケーションに対して様々な方法で実装することが可能であるが、このような実装は本発明の範囲からの逸脱をもたらすものとして解釈されてはならない。
【００６５】
本明細書に開示された実施形態に関連して説明された方法或はアルゴリズムの諸段階は、直接ハードウェアで、プロセッサによって実行されるソフトウェア・モジュールで、或は両者の組合せで具体化されることが出来る。ソフトウェア・モジュールは、ＲＡＭメモリ、フラッシュ・メモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハード・ディスク、取り外し可能なディスク、ＣＤ−ＲＯＭ、或は当業者には公知の任意の他のタイプの記憶媒体の中に記憶されても良い。具体例の記憶媒体は、プロセッサが該記憶媒体から情報を読み、該媒体に情報を書くことが出来るように、プロセッサに結合される。その代わりに、記憶媒体はプロセッサに統合されることが出来る。プロセッサと記憶媒体はＡＳＩＣの中に備わることが出来る。該ＡＳＩＣは計算装置或は利用者端末の中に備わることが出来る。その代わりに、プロセッサと記憶媒体は計算装置或は利用者端末における個別部品として備わることが出来る。
【００６６】
開示された実施形態の先述の説明は当業者の誰もが本発明を作る或は利用することを可能にするために提供されている。これ等の実施形態への種々の変更は当業者等には容易に明白であり、本明細書中で定義される包括的な原理は、本発明の精神或は範囲を逸脱することなく、他の実施形態に適用されることが出来る。かくして、本発明は、本明細書中に示される実施形態に限定されるようには意図されておらず、請求項によって定義される原理及び新規性と首尾一貫する最も広い範囲を認容されるべきである。
【００６７】
付記１.  例えば、デスクパックの非限定的な実施形態
【数１】
2007514993.tif 000003
【００６８】
2007514993.tif 000004
【００６９】
2007514993.tif 000005
【００７０】
2007514993.tif 000006
【００７１】
2007514993.tif 000007
【００７２】
2007514993.tif 000008
【００７３】
2007514993.tif 000009
【００７４】
2007514993.tif 000010
【００７５】
2007514993.tif 000011
【００７６】
2007514993.tif 000012
【００７７】
2007514993.tif 000013
【図面の簡単な説明】
【００７８】
【図１】図１はクライアントの計算装置とサーバとの間の通信を提供するシステムの特別な実施形態の概略図である。
【図２】図２は図１のクライアントの計算装置とサーバとの間の通信のためのシステムの特別な実施形態の更なる詳細を図示する概略図である。
【図３】図３は携帯デバイスのシミュレーションを支える計算システムのブロック図である。
【図４】図４はデバイス・シミュレータの機能を図示するブロック図である。
【図５】図５は計算装置においてデバイスをシミュレートする方法の第１の部分を図示するフローチャートである。
【図６】図６は計算装置においてデバイスをシミュレートする方法の第２の部分を図示するフローチャートである。
【図７】図７はデバイス・シミュレータに関連付けされるグラフィカル・ユーザ・インタフェースを図示する概略図である。
【符号の説明】
【００７９】
１００…無線装置上のソフトウェア・アプリケーション・コンポーネントのロード、再ロード、及び、消去のためのシステム、１０２…セルラ電話、１０８…携帯情報端末、１１０…ページャ、１１２…コンピュータ・プラットフォーム、１１４…ネットワーク或はインターネットへの有線接続、１１６…ネットワーク、１１８…データベース、１２２…スタンド・アローン・サーバ、２０６…コンピュータ・プラットフォーム、３００…パーソナル計算装置シミュレート・システム、４００…デバイス・シミュレータ、７００…グラフィカル・ユーザ・インタフェース、７０２、７０４…デバイス・シミュレータ、ＭＳＣ…移動通信交換局、ＢＴＳ…無線基地局装置、Ｅｘｔ…エクステンション、ＡＰＰ…アプリケーション。
【図１】
2007514993.tif 000014
【図２】
2007514993.tif 000015
【図３】
2007514993.tif 000016
【図４】
2007514993.tif 000017
【図５】
2007514993.tif 000018
【図６】
2007514993.tif 000019
【図７】
2007514993.tif 000020
【国際調査報告】
2007514993.tif 000021
2007514993.tif 000022