(57)【要約】【課題】  加入者識別モジュール（ＳＩＭ）をエミュレートする方法、システム、およびコンピュータ可読媒体を提供すること。【解決手段】  ＳＩＭエミュレーションは、ＳＩＭの１つまたは複数の特性を表す構成データを読み出すことを含む。次いで、エミュレーションの実行が開始される。ＳＩＭコマンドが、ＳＩＭの資源にアクセスするために無線インターフェース層（ＲＩＬ）から受け取られる。ＳＩＭコマンドは、構成データに基づいて、ＳＩＭの動作と合致したやり方で処理される。ＳＩＭコマンドおよびコマンドの処理に関連するデータが、ログをとられる。【選択図】  図１
2005182798.tif 000002
【特許請求の範囲】
【請求項１】
加入者識別モジュール（ＳＩＭ）をエミュレートする方法であって、
前記ＳＩＭの１つまたは複数の特性を表す構成データを読み出すステップと、
前記エミュレーションの実行を開始するステップと、
前記ＳＩＭの資源にアクセスするためのＳＩＭコマンドを受け取るステップと、
前記構成データに基づいて、前記ＳＩＭの動作と合致したやり方で前記ＳＩＭコマンドを処理するステップと、
前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとるステップとを含むことを特徴とする方法。
【請求項２】
前記構成データは、ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記エミュレーションの実行用の前記１つまたは複数のパラメータの１つは、前記ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延を含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記構成データは、前記ＳＩＭのファイルシステムに格納される１つまたは複数のデータファイルを含むことを特徴とする請求項１に記載の方法。
【請求項５】
ＳＩＭコマンドを受け取るステップは、前記ＳＩＭコマンドに関連づけられたデータを受け取るステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記ＳＩＭコマンドが前記ＳＩＭのファイルシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理するステップは、
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定するステップと、
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭファイルシステム内のデータにアクセスし、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ＳＩＭコマンドが前記ＳＩＭのセキュリティシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理するステップは、
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定するステップと、
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭセキュリティシステムの機能を実施し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ＳＩＭファイルシステム内のデータへのアクセスに基づいて、応答コードを返すステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記応答コードに関連づけられた応答データを返すステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ＳＩＭセキュリティシステム内のデータへのアクセスに基づいて、応答コードを返すステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項１１】
前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとるステップは、前記ＳＩＭコマンド、前記応答コード、および前記応答データを記録するステップを含むことを特徴とする請求項９に記載の方法。
【請求項１２】
前記構成データに基づいたＳＩＭエラーをシミュレートするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
第２の組の構成データを読み出すステップと、前記第２の組の構成データに基づいて、前記ＳＩＭの動作と合致したやり方で後続のＳＩＭコマンドを処理するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１４】
プロセッサと、
前記プロセッサと結合され前記プロセッサによる読出しが可能なメモリとを備える、加入者識別モジュール（ＳＩＭ）をエミュレートするためのシステムであって、前記メモリは、前記プロセッサによって実行されると、前記プロセッサに、前記ＳＩＭの１つまたは複数の特性を表す構成データを読み出させ、前記エミュレーションの実行を開始させ、前記ＳＩＭの資源にアクセスするためのＳＩＭコマンドを受け取らせ、前記ＳＩＭコマンドを、前記構成データに基づいて、前記ＳＩＭの動作と合致したやり方で処理させ、前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとらせる一連の命令を含むことを特徴とするシステム。
【請求項１５】
前記構成データは、ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記エミュレーションの実行用の前記１つまたは複数のパラメータの１つは、前記ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延を含むことを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記構成データは、前記ＳＩＭのファイルシステムに格納される１つまたは複数のデータファイルを含むことを特徴とする請求項１４に記載のシステム。
【請求項１８】
ＳＩＭコマンドを受け取ることは、前記ＳＩＭコマンドに関連づけられたデータを受け取ることをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項１９】
前記ＳＩＭコマンドが、前記ＳＩＭのファイルシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理することは、
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定すること、ならびに
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭファイルシステム内のデータにアクセスし、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止することをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項２０】
前記ＳＩＭコマンドが、前記ＳＩＭのセキュリティシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理することは、
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定すること、ならびに
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭセキュリティシステムの機能を実施し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止することをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項２１】
前記ＳＩＭファイルシステム内のデータへのアクセスに基づいて、応答コードを返すことをさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２２】
前記応答コードに関連づけられた応答データを返すことをさらに含むことを特徴とする請求項２１に記載のシステム。
【請求項２３】
前記ＳＩＭセキュリティシステム内のデータへのアクセスに基づいて、応答コードを返すことをさらに含むことを特徴とする請求項１９に記載のシステム。
【請求項２４】
前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとることは、前記ＳＩＭコマンド、前記応答コード、および前記応答データを記録することを含むことを特徴とする請求項２３に記載のシステム。
【請求項２５】
前記構成データに基づいたＳＩＭエラーをシミュレートすることをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項２６】
第２の組の構成データを読み出すこと、および前記第２の組の構成データに基づいて、前記ＳＩＭの動作と合致したやり方で後続のＳＩＭコマンドを処理することをさらに含むことを特徴とする請求項１４に記載のシステム。
【請求項２７】
加入者識別モジュール（ＳＩＭ）をエミュレートするコンピュータ処理を実行する命令からなるコンピュータプログラムを符号化するコンピュータ可読媒体であって、前記コンピュータ処理は、
前記ＳＩＭの１つまたは複数の特性を表す構成データを読み出すステップと、
前記エミュレーションの実行を開始するステップと、
前記ＳＩＭの資源にアクセスするためのＳＩＭコマンドを受け取るステップと、
前記構成データに基づいて、前記ＳＩＭの動作と合致したやり方で前記ＳＩＭコマンドを処理するステップと、
前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとるステップとを含むことを特徴とするコンピュータ可読媒体。
【請求項２８】
前記構成データは、ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項２９】
前記エミュレーションの実行用の前記１つまたは複数のパラメータの１つは、前記ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延を含むことを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記構成データは、前記ＳＩＭのファイルシステムに格納される１つまたは複数のデータファイルを含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３１】
ＳＩＭコマンドを受け取るステップは、前記ＳＩＭコマンドに関連づけられたデータを受け取るステップをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３２】
前記ＳＩＭコマンドが、前記ＳＩＭのファイルシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理するステップは、
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定するステップと、
前記ＳＩＭファイルシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭファイルシステム内のデータにアクセスし、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止するステップとをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３３】
前記ＳＩＭコマンドが、前記ＳＩＭのセキュリティシステムにアクセスするためのコマンドであることに応答して、前記コマンドを処理するステップは、
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるかどうか判定するステップと、
前記ＳＩＭセキュリティシステムへのアクセスが前記ＳＩＭコマンドに対して許可されるという判定に応答して、前記ＳＩＭコマンドおよび前記構成データに基づいて、前記ＳＩＭセキュリティシステムの機能を実施し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、前記構成データが、前記ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、前記構成データにおいて指定されたある程度の時間、休止するステップとをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３４】
前記ＳＩＭファイルシステム内のデータへのアクセスに基づいて、応答コードを返すステップをさらに含むことを特徴とする請求項３２に記載のコンピュータ可読媒体。
【請求項３５】
前記応答コードに関連づけられた応答データを返すステップをさらに含むことを特徴とする請求項３４に記載のコンピュータ可読媒体。
【請求項３６】
前記ＳＩＭセキュリティシステム内のデータへのアクセスに基づいて、応答コードを返すステップをさらに含むことを特徴とする請求項３２に記載のコンピュータ可読媒体。
【請求項３７】
前記ＳＩＭコマンドおよび前記コマンドの処理に関連するデータのログをとるステップは、前記ＳＩＭコマンド、前記応答コード、および前記応答データを記録するステップを含むことを特徴とする請求項３５に記載のコンピュータ可読媒体。
【請求項３８】
前記構成データに基づいたＳＩＭエラーをシミュレートするステップをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【請求項３９】
第２の組の構成データを読み出すステップと、前記第２の組の構成データに基づいて、前記ＳＩＭの動作と合致したやり方で後続のＳＩＭコマンドを処理するステップとをさらに含むことを特徴とする請求項２７に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータソフトウェアの分野に関し、より詳細には、加入者識別モジュール（ＳＩＭ）を使用するアプリケーションをテストするソフトウェア開発ツールに関する。
【背景技術】
【０００２】
セルラー電話、ページャ、携帯情報端末（ＰＤＡ）など、非常に様々なモバイルコンピューティング装置が一般的に使用されている。こうしたモバイル装置において利用可能なソフトウェアは、ゲーム、電話帳、カレンダ、ｅメール、ウェブブラウザなど、広範なアプリケーションを含む。こうしたアプリケーションは、モバイル装置上で実行されたとき、モバイル装置内の加入者識別モジュール（ＳＩＭ）の資源を頻繁に使用する。ＳＩＭは、メモリと、セキュリティ機能を実施することや、情報を格納するためにファイルシステムを維持することなど、様々な機能を実施するプロセッサとからなる「スマートカード」装置である。
【０００３】
たとえば、電話帳アプリケーションは、ＳＩＭのファイルシステムにエントリを格納することができる。ＳＩＭは、こうしたエントリへのアクセスを、許可されたアプリケーションに対してのみ認める。許可されると、アプリケーションは、ファイルシステムの内容を、たとえば、新しい電話帳エントリを格納するように更新することができる。ＳＩＭは、そのセキュリティ機能を介して、許可されたアプリケーションに、ユーザの個人識別番号（ＰＩＮ）を読み出させ、かつ／または更新させることもできる。
【０００４】
ＳＩＭの資源を利用するアプリケーションのテストは概して、アプリケーションが実行される装置と共に使われるＳＩＭと共にアプリケーションをテストすることに依存する。通常、こうしたテストは、アプリケーションが開発されテストされる、パーソナルコンピュータなどのコンピューティングデバイスと接続されたＳＩＭ装置を使用する。それ以外の場合、アプリケーションは、ＳＩＭを使用するモバイル装置上でテストされる。
【０００５】
しかし、ＳＩＭを得てアクティブに保つことは非常にコストがかかり、その結果、ＳＩＭと共にアプリケーションをテストすることはコストがかかる。さらに、ほとんどのＳＩＭは、ＰＩＮの読み出しや更新など、いくつかの機能への限定アクセスを可能にするだけであるため、ＳＩＭは、そうした機能をテストするのに、限られた回数だけ使用できるに過ぎず、このことは、各テストの総コストを高くする。さらに、様々なモバイル装置において異なるタイプのＳＩＭが使われる場合もあり得る。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、ＳＩＭを用いて完全なテストを行うことは、ソフトウェアベンダが、異なる多くのタイプの、多数のＳＩＭを取得する必要を生じさせる。本発明は、こうした検討事項および他の検討事項を鑑みてなされたものである。
【課題を解決するための手段】
【０００７】
本発明によれば、上記の問題および他の問題は、加入者識別モジュール（ＳＩＭ）装置をエミュレートする方法およびシステムによって解決される。こうした方法およびシステムを用いることによって、モバイル装置で使うためのアプリケーションが、実ＳＩＭ(real SIM)ではなくエミュレートされたＳＩＭを使ってテストされることができる。ＳＩＭエミュレータは、構成データを介して、エミュレートされている実際のＳＩＭ(actual SIM)と合致したやり方で動作するようにセットアップされることができる。アプリケーションは、実ＳＩＭを使う場合と同じように、ＳＩＭエミュレータを使って実行されテストされることができる。さらに、ＳＩＭエミュレータは、検査中にデータのログをとり、アプリケーションのテストおよびデバッグをさらに助けるためにＳＩＭエラーをシミュレートすることができる。
【０００８】
他の態様によれば、本発明は、加入者識別モジュール（ＳＩＭ）をエミュレートする方法に関する。この方法は、ＳＩＭの１つまたは複数の特性を表す構成データを読み出すことを含む。次いで、エミュレーションの実行が開始される。ＳＩＭコマンドが、ＳＩＭの資源にアクセスするために無線インターフェース層（ＲＩＬ）から受け取られる。ＳＩＭコマンドは、構成データに基づいて、ＳＩＭの動作と合致したやり方で処理される。ＳＩＭコマンドおよびコマンドの処理に関連するデータが、ログをとられる。
【０００９】
さらに他の態様によれば、本発明は、加入者識別モジュール（ＳＩＭ）をエミュレートするためのシステムに関する。このシステムは、プロセッサ、およびプロセッサと結合されプロセッサによる読出しが可能なメモリを含む。メモリは、プロセッサによって実行されると、プロセッサに、ＳＩＭの１つまたは複数の特性を表す構成データを読み出させる一連の命令を含む。プロセッサは次いで、エミュレーションの実行を開始する。ＳＩＭコマンドが、ＳＩＭの資源にアクセスするために無線インターフェース層（ＲＩＬ）から受け取られる。ＳＩＭコマンドは、構成データに基づいて、ＳＩＭの動作と合致したやり方で処理される。ＳＩＭコマンドおよびコマンドの処理に関連するデータが、ログをとられる。
【００１０】
本発明は、コンピュータ処理、計算機システム、またはコンピュータプログラム製品やコンピュータ可読媒体などの製造品として実装されることができる。コンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータ処理を実行する命令からなるコンピュータプログラムを符号化するコンピュータ記憶媒体でよい。コンピュータプログラム製品は、計算機システムによって読取り可能であり、コンピュータ処理を実行する命令からなるコンピュータプログラムを符号化する搬送波上で伝搬される信号でもよい。
【００１１】
本発明を特徴づけるこうしたおよび他の様々な特徴ならびに利点が、以下の詳細な説明を読み、関連する図面を見ることによって明らかになるであろう。
【発明を実施するための最良の形態】
【００１２】
本発明の実施形態は、加入者識別モジュール（ＳＩＭ）のエミュレートに関する。後で説明されるように、ＳＩＭエミュレーションは、様々な環境において実施されることができる。たとえば、ＳＩＭエミュレーションは、実モバイル装置内で実施されることができる。あるいは、ＳＩＭエミュレーションは、モバイル装置のエミュレーションの一部として実施されることができ、この場合、実際のモバイル装置の様々なコンポーネントの機能が、ＳＩＭエミュレーションに従ってエミュレートされる。当然ながら、実コンポーネントおよびエミュレートされたコンポーネントの様々な組合せも可能である。
【００１３】
図１は、本発明の実施形態が実装されることができるモバイル装置の機能コンポーネントの一部を示す。この例では、実モバイル装置１００が示されている。モバイル装置１００は、１つまたは複数のアプリケーション１０５、無線インターフェース層（ＲＩＬ）プロキシ１１０、ＲＩＬドライバ１１５、無線機(radio)１２０、および加入者識別モジュール（ＳＩＭ）エミュレータ１２５を含む。
【００１４】
アプリケーション１０５は、電話帳、カレンダ、ウェブブラウザ、ゲームなど、モバイル装置１００上で実行されることができる可能な様々なソフトウェアアプリケーションの１つまたは複数を含むことができる。こうしたアプリケーションは、テストおよびデバッグ用アプリケーションの開発中に、モバイル装置上で実行されることができる。実行中、アプリケーション１０５は、ＲＩＬプロキシ１１０とインターフェースをとる。
【００１５】
ＲＩＬプロキシ１１０は、アプリケーション１０５に１組のＲＩＬアプリケーションプログラムインターフェース（ＡＰＩ）を公開するソフトウェア層である。ＲＩＬドライバ１１５は、ＲＩＬプロキシ１１０と共に、アプリケーション１０５と無線機１２０の間の通信を提供する。たとえば、ＲＩＬ１１０を介して、アプリケーションは、無線機１２０にアクセスすることができる。これに対して、無線機１２０は、セルラーネットワークなどの無線ネットワーク１３０との接続を提供し、このネットワークを介して、モバイル装置１００は、他の装置と通信することができる。この実施形態において、「無線機」は、無線ネットワークと接続し、こうした無線ネットワークを介した接続を提供する送受信機と定義される。
【００１６】
また、無線機１２０は、アプリケーション１０５とＳＩＭエミュレータ１２５の間の接続を提供する。ＳＩＭエミュレータ１２５は、モバイル装置１００のメモリに格納されると共にモバイル装置１００によって実行されるソフトウェアからなることができる。あるいは、ＳＩＭエミュレータ１２５は、適切なケーブル配線または他のタイプの接続を介してモバイル装置１００と接続されたパーソナルコンピュータなど別の装置のメモリ内に常駐し、その装置上で実行されることもできる。いずれの場合でも、ＳＩＭエミュレータ１２５は、実ＳＩＭの機能を提供する。このようにして、アプリケーション１０５は、実ＳＩＭを使用する際のコストおよび障害なく、テストされることができる。
【００１７】
ＳＩＭエミュレータ１２５によって実施される機能の詳細は、図５〜７を参照して後で説明される。概して、ＳＩＭは、アプリケーション１０５用の様々なファイルシステムおよび認証機能を提供する。動作する際、ＳＩＭエミュレータ１２５は、実ＳＩＭが提供するのと同じ機能をアプリケーション１０５に提供する。これを達成するために、ＳＩＭエミュレータ１２５は、最初に構成データを読み出す。この構成データは、拡張マークアップ言語（ＸＭＬ）ファイル、テキストファイルの形、または他の形式でよい。構成データは、エミュレートされている実ＳＩＭの１つまたは複数の特性を表す。たとえば、構成データは、ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延(time delay)など、実ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことができる。別の例では、構成データは、ＳＩＭのファイルシステムに格納される電話帳エントリなど、１つまたは複数のデータファイルを含むことができる。
【００１８】
一実施形態では、ＳＩＭエミュレータ１２５は、ファイルシステムを維持し、セキュリティシステムを維持し、ＳＩＭコマンドに応答する、ハードコードされた(hard coded)機能を有するソフトウェアルーチンを備えることができる。構成データは、異なるタイプのＳＩＭの間で特性および行動が変化する場合に、こうしたルーチン中の変数用に使われる値を表す。
【００１９】
構成データを読み出した後、ＳＩＭエミュレータ１２５は、エミュレーションの実行を開始する。ＳＩＭのエミュレーションは、構成データによって示される、実ＳＩＭによって実施される機能と合致した機能の実施を含む。たとえば、ＳＩＭエミュレータ１２５は、構成データからのデータを含む１つまたは複数のデータファイルを含むファイルシステムをエミュレートすることができる。さらに、ＳＩＭエミュレータ１２５は、ファイルシステム内でファイルを維持すると共にそうしたファイルへのアクセスを処理し、かつ個人識別番号（ＰＩＮ）へのアクセスを提供するＳＩＭセキュリティシステムを提供することができる。別の例では、ＳＩＭエミュレータ１２５は、指定されたイベントが発生するとメッセージが表示され、または音が鳴らされるようにする一般的なＳＩＭプログラムを含むＳＩＭツールキットを提供することができる。
【００２０】
エミュレーションの実行中、ＳＩＭエミュレータは、ＲＩＬ１１０から、ＳＩＭの資源にアクセスするためのＳＩＭコマンドを受け取ることができる。たとえば、ＳＩＭエミュレータ１２５は、ＲＩＬから、ファイルシステム内のデータを読み出しまたは書き込むためのＳＩＭコマンドを受け取ることができる。したがって、書込みコマンドの場合、ＳＩＭコマンドの受取りは、ファイルシステムに書き込まれるデータなど、ＳＩＭコマンドに関連づけられたデータの受取りをさらに含むことができる。
【００２１】
ＳＩＭエミュレータ１２５は、構成データに基づいて、実ＳＩＭの動作と合致したやり方でＳＩＭコマンドを処理する。たとえば、ＳＩＭコマンドの処理は、実ＳＩＭが返すような応答コードを返すことを含むことができる。戻りコードは、ＳＩＭファイルシステム内のデータへのアクセスに基づくことができる。したがって、ＳＩＭコマンドの処理は、ＳＩＭ読出しコマンドの処理の完了成功に応答してファイルシステムから読み出されるデータなど、応答コードに関連づけられた応答データを返すことを含むこともできる。
【００２２】
ＳＩＭエミュレータ１２５は、ＳＩＭコマンドおよびコマンドの処理に関連するデータのログをとることもできる。たとえば、ＳＩＭエミュレータ１２５は、ＳＩＭコマンドおよび応答コードを記録することができる。いくつかの場合では、ＳＩＭコマンドの処理に関連づけられた応答データおよび他のデータが記録されることもできる。ログをとられたデータは、テストされているアプリケーションのデバッグを助けるために、後でアクセスされることができる。
【００２３】
最後に、ＳＩＭエミュレータは、構成データに基づいて、ＳＩＭエラーをシミュレートすることもできる。つまり、構成データは、このようなエラーを処理する、テストされているアプリケーションの性能をより完全にテストするために、ランダムに、指定されたときに、または指定されたイベントに応答してＳＩＭエミュレータによって生じられる１つまたは複数のエラーを示すことができる。
【００２４】
図２は、本発明の実施形態が実装されることができるモバイル装置をエミュレートするシステムの主な機能コンポーネントを高レベルで示す。上述したように、ＳＩＭエミュレータは、エミュレートされたモバイル装置ならびに実モバイル装置において使われることができる。
【００２５】
図２に示される例は、図３を参照して後で説明されるシステム３００などの計算機システム上で実装されることができるアプリケーションテスト／開発システム２００を示す。アプリケーションテスト／開発システム２００は、１つまたは複数のアプリケーション２０５、ＲＩＬプロキシ２０７、および装置エミュレータ２１０を含む。装置エミュレータ２１０は、無線インターフェース層（ＲＩＬ）エミュレータ２１５、無線機エミュレータ２２５、ネットワークエミュレータ２３０、および加入者識別モジュール（ＳＩＭ）エミュレータ２３５を含む。
【００２６】
上記のように、アプリケーション２０５は、電話帳、カレンダ、ウェブブラウザなど、可能な様々なソフトウェアアプリケーションの１つまたは複数を含むことができる。こうしたアプリケーション２０５は、アプリケーション２０５をテストしデバッグするために、アプリケーションテスト／開発システム２００によって実行される。
【００２７】
実行中、アプリケーション２０５は、ＲＩＬプロキシ２０７とインターフェースをとり、これに対してＲＩＬプロキシ２０７は、装置エミュレータ２１０のＲＩＬドライバエミュレータ２１５とインターフェースをとる。上記のように、ＲＩＬプロキシ２０７は、アプリケーション２０５に１組のＲＩＬ  ＡＰＩを提供する。ＲＩＬドライバエミュレータ２１５は、ＲＩＬプロキシ２０７と共に、アプリケーション２０５と無線機エミュレータ２２５の間の通信を提供する。これに対して、無線機エミュレータ２２５は、セルラーネットワークなどの無線ネットワークをエミュレートするネットワークエミュレータ２３０との接続を提供する。
【００２８】
また、無線機エミュレータ２２５は、アプリケーション２０５とＳＩＭエミュレータ２３５の間の接続を提供する。上述したように、ＳＩＭエミュレータ２３５は、アプリケーションおよび無線機の視点からの実ＳＩＭの機能を提供する。このようにして、アプリケーション２０５は、実ＳＩＭを使う際のコストおよび障害なくテストされることができる。
【００２９】
ＳＩＭエミュレータが、図１のモバイル装置１００などの実際のモバイル装置、または図２の装置エミュレータ２１０によって表されるようなエミュレートされた装置のいずれと接続されるかに関わらず、ＳＩＭエミュレータによって実施される機能は概して同じである。概して、こうした機能は、実ＳＩＭの１つまたは複数の特性を表す構成データを読み出すこと、エミュレーションの実行を開始すること、ＳＩＭの資源にアクセスするためのＳＩＭコマンドを無線インターフェース層（ＲＩＬ）から受け取ること、構成データに基づいて、実ＳＩＭの動作と合致したやり方でＳＩＭコマンドを処理すること、ならびにＳＩＭコマンドおよびコマンドの処理に関連するデータのログをとることを含む。こうした動作のこれ以上の詳細は、図５〜７を参照して後で説明される。
【００３０】
図３は、本発明の実施形態が実装されることができる適切な計算機システム環境の例を示す。このシステム３００は、ウェブサイトサービスにおいてリダイレクタおよび／またはサーバとして働くのに使われることができるシステムを表す。最も基本的な構成において、システム３００は通常、少なくとも１つの処理ユニット３０２およびメモリ３０４を含む。コンピューティングデバイスの正確な構成およびタイプに応じて、メモリ３０４は、ＲＡＭなどの揮発性でも、たとえばＲＯＭ、フラッシュメモリなどの不揮発性でも、この２つの何らかの組合せでもよい。この最も基本的な構成は、図３に破線３０６で示される。さらに、システム３００は、追加特徴／機能をもつこともできる。たとえば、装置３００は、磁気／光ディスク／テープを含むがそれに限定されない、取外し可能および／または固定式の追加記憶装置を含むこともできる。このような追加記憶装置は、図３に取外し可能記憶装置３０８および固定式記憶装置３１０で示される。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するどの方法でも技術でも実装される、揮発性および不揮発性媒体、取外し可能および固定式媒体を含む。メモリ３０４、取外し可能記憶装置３０８、および固定式記憶装置３１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ（デジタル多用途ディスク）または他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使われることができると共にシステム３００によってアクセスされることができる他のどの媒体も含むが、それに限定されるものではない。このようなどのコンピュータ記憶媒体も、システム３００の一部でよい。
【００３１】
システム３００は、システムが他の装置と通信することを可能にする通信接続（群）３１２も含むことができる。通信接続（群）３１２は、通信媒体の例である。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの変調データ信号で具体化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号に情報を符号化するようなやり方でその特性の１つまたは複数が設定されまたは変更された信号を意味する。限定ではなく例として、通信媒体は、配線接続された媒体、たとえば配線接続されたネットワークおよび直接配線接続、ならびに無線媒体、たとえば音波、ＲＦ、赤外線、および他の無線媒体を含む。本明細書で使用されるコンピュータ可読媒体という用語は、記憶媒体および通信媒体両方を含む。
【００３２】
システム３００は、たとえばキーボード、マウス、ペン、音声入力装置、タッチ式入力装置などの入力装置（群）３１４も有することができる。たとえばディスプレイ、スピーカ、プリンタなどの出力装置（群）３１６も含まれることができる。こうしたすべての装置は、当該分野において公知であり、本明細書で詳細に説明される必要はない。
【００３３】
システム３００などのコンピューティングデバイスは一般に、少なくとも何らかの形のコンピュータ可読媒体を含む。コンピュータ可読媒体は、システム３００によってアクセスされることができる、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができよう。
【００３４】
図４は、本発明の一実施形態による、加入者識別モジュール（ＳＩＭ）をエミュレートするシステムの主な機能コンポーネントを示す。この例では、ＳＩＭエミュレータ４００は、制御モジュール４２０、構成データ４３５、構成マネージャ４４０、ＳＩＭコマンド処理モジュール４０５、ＳＩＭセキュリティエミュレータ４１５、ＳＩＭファイルシステムエミュレータ４３０、１つまたは複数のログ４２５、および任意選択のＳＩＭツールキットエミュレータ４１０を含む。
【００３５】
ＳＩＭエミュレーションを実施する前に、ユーザは、構成マネージャ４４０を使って、構成データ４３５を設定する。上述したように、構成データ４３５は、拡張マークアップ言語（ＸＭＬ）ファイル、テキストファイルの形、または他の形式でよい。構成データ４３５は、エミュレートされている実ＳＩＭの１つまたは複数の特性を表す。たとえば、構成データは、ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延など、実ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことができる。つまり、時間の遅れ(time lag)は、コマンドごと、またはファイルごとに指定されることができる。別の例では、構成データは、ＳＩＭのファイルシステムに格納される電話帳エントリなど、１つまたは複数のデータファイルを含むことができる。
【００３６】
構成データ４３５は、エミュレーションの実行中に変更されることも更新されることもできることが明らかであろう。たとえば、テストを実施するオペレータは、テストを変更するためにデータを変えることができる。さらに、構成データ４３５にアクセスする書込みコマンドなどのＳＩＭコマンドも、エミュレーションの実行中に構成データ４３５を変更することができる。
【００３７】
制御モジュール４２０は、構成データ４３５を読み出す。制御モジュール４２０は、構成データ４３５を用いて、ＳＩＭエミュレータ４００の他のコンポーネントをセットアップする。制御モジュール４２０は次いで、エミュレーションの実行を開始する。いくつかの場合では、制御モジュール４２０は、後で、エミュレーションの実行中に、周期的に、または何らかのイベントに応答して、構成データ４３５を読み出し、構成データ４３５のどの変更も反映するようにＳＩＭエミュレータ４００の他のコンポーネントをセットアップすることができる。
【００３８】
ＳＩＭエミュレーションの実行中、ＳＩＭコマンド処理モジュール４０５は、実無線機またはエミュレートされた無線機いずれからも、ＳＩＭエミュレータ４００の資源にアクセスするためのＳＩＭコマンドを受け取ることができる。たとえば、ＳＩＭコマンド処理モジュール４０５は、ファイルシステムにおいてデータを読み出しまたは書き込むためのＳＩＭコマンドを、無線機を介してＲＩＬから受け取ることができる。ＳＩＭコマンド処理モジュール４０５は、コマンドの形式、およびコマンドに関連づけられたどのデータも調べて、処理を進める前にコマンドを確認することができる。
【００３９】
ＳＩＭコマンド処理モジュール４０５は次いで、制御モジュール４２０にＳＩＭコマンドを渡す。制御モジュール４２０は次いで、コマンドに基づいて、エラーシミュレーションや、コマンドおよび関連するどのデータのログもとるなどの機能を実施することができる。制御モジュール４２０は次いで、ＳＩＭセキュリティエミュレータ４１５を介してＳＩＭファイルシステムにアクセスすることを試みる。
【００４０】
ＳＩＭセキュリティエミュレータ４１５は、ファイルシステム内のファイルへのアクセスを維持し処理する。さらに、ＳＩＭセキュリティエミュレータ４１５は、個人識別番号（ＰＩＮ）へのアクセスを提供し、通常はＳＩＭによって実施される他のセキュリティ機能を実施する。ＳＩＭセキュリティコマンドの処理の詳細は、図７を参照して後でさらに説明される。概して、ＳＩＭセキュリティエミュレータ４１５は、ＳＩＭセキュリティシステムへのアクセスがＳＩＭコマンドに対して許可されるかどうか判定することによって、セキュリティコマンドを処理する。ＳＩＭセキュリティシステムへのアクセスがＳＩＭコマンドに対して許可されるという判定に応答して、ＳＩＭセキュリティエミュレータ４１５は、ＳＩＭコマンドおよび構成データ４３５に基づいて、ＳＩＭセキュリティシステムの機能を実施する。ＳＩＭセキュリティエミュレータ４１５は次いで、構成データ４３５が、ＳＩＭコマンドに対する遅れ時間を示すかどうか判定する。構成データ４３５が、ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、ＳＩＭセキュリティエミュレータ４１５は、構成データ４３５において指定されたある程度の時間、休止する。
【００４１】
ＳＩＭファイルシステムエミュレータ４３０は、ファイルシステムをエミュレートする。ＳＩＭファイルシステムエミュレータ４３０は、構成データ４３５のデータを含む１つまたは複数のデータファイルを含むことができる。たとえば、構成データ４３５は、電話帳エントリを表すデータを含むことができる。制御モジュール４２０は、このデータを構成データ４３５から読み出し、実ＳＩＭと合致したやり方でこのデータを表すようにＳＩＭファイルシステムエミュレータ４３０をセットアップする。ＳＩＭファイルシステムのコマンドの処理の詳細は、図６を参照して後でさらに説明される。概して、ファイルシステムのコマンドの処理は、ＳＩＭファイルシステムへのアクセスがＳＩＭコマンドに対して許可されるかどうか判定することを含む。ＳＩＭファイルシステムへのアクセスがＳＩＭコマンドに対して許可されるという判定に応答して、ＳＩＭファイルシステムエミュレータ４３０は、ＳＩＭコマンドおよび構成データ４３５に基づいて、ＳＩＭファイルシステム内のデータにアクセスし、構成データ４３５が、ＳＩＭコマンドに対する遅れ時間を示すかどうか判定し、構成データ４３５が、ＳＩＭコマンドに対する遅れ時間を示すという判定に応答して、構成データ４３５において指定されたある程度の時間、休止する。
【００４２】
エミュレーションを実行するとき、ＳＩＭコマンド処理モジュール４０５は、ＳＩＭセキュリティモジュール４１５およびＳＩＭファイルシステムエミュレータ４３０と協同して、構成データ４３５に基づいて、実ＳＩＭの動作と合致したやり方でＳＩＭコマンドを処理する。たとえば、ＳＩＭコマンドの処理は、実ＳＩＭが返す応答コードなどの応答コードを返すことを含むことができる。戻りコードは、ＳＩＭファイルシステム内のデータへのアクセスに基づくことができる。したがって、ＳＩＭコマンドの処理は、ＳＩＭ読出しコマンドの処理の完了成功に応答してファイルシステムから読み出されるデータなど、応答コードに関連づけられた応答データを返すことを含むこともできる。
【００４３】
ＳＩＭエミュレータ４００は、１つまたは複数のログ４２５も含む。ログ４２５は、制御モジュール４２０によって書き込まれることができる。たとえば、制御モジュールは、ＳＩＭコマンド、およびそうしたコマンドへの応答を記録することができる。いくつかの場合では、応答データ、およびＳＩＭコマンドの処理に関連づけられた他のデータも、記録されることができる。
【００４４】
任意選択のＳＩＭツールキットエミュレータ４１０は、一般的なＳＩＭツールキットプログラムを含むＳＩＭツールキットを提供することができる。たとえば、ツールキットは、指定されたイベントが発生すると、メッセージが表示され、または音が鳴らされるようにするプログラムを含むことができ、無線アプリケーションプロトコル（ＷＡＰ）提供シナリオをテストし、無線によるソフトウェアのアップグレード、または実ＳＩＭのプロセッサ上で通常は実行される他のアプリケーションをシミュレートする。概して、ＳＩＭツールキットエミュレータ４１０は、テストされているエミュレートされたＳＩＭアプリケーションに取り付けることができるフックを提供する。モバイル装置上のアプリケーションは、適切なＳＩＭコマンドを用いて、制御モジュール４２０を介して、エミュレートされたＳＩＭアプリケーションといつでも通信することができる。このようなＳＩＭコマンドを受け取ると、制御モジュール４２０は、ＳＩＭツールキットエミュレータ４１０にコマンドを転送する。ＳＩＭエミュレータ４００の他のコンポーネントと同様に、構成データ４３５は、たとえば遅れ時間など、ＳＩＭツールキットの特性を指定するのに使われることができる。さらに、制御モジュール４２０は、後で取り出すために、ツールキットに関連するＳＩＭコマンドをログ４２５に記録することができる。
【００４５】
最後に、ＳＩＭエミュレータ４００は、構成データ４３５に基づいて、ＳＩＭエラーをシミュレートすることもできる。つまり、構成データ４３５は、ランダムに、指定されたときに、または指定されたイベントに応答して、ＳＩＭエミュレータ４００の制御モジュール４２０によって生じられる１つまたは複数のエラーを示すことができる。シミュレートされたこのようなエラーは、このようなエラーを処理するためのアプリケーションの性能をテストすることによって、テストされているアプリケーションの性能をより完全にテストするのを助ける。
【００４６】
エラーシミュレーションの詳細は、図８を参照して後で説明される。概して、コマンドが、無線機を介してＲＩＬから受け取られると、制御モジュール４２０は、そのコマンドをエラーシミュレーションモジュール４４５に渡し、モジュール４４５は、与えられたコマンド、またはコマンドをカプセル化するクラスが、構成データ４３５によって失敗するように規定されているかどうか判定する。こうした規定は、その失敗に対する特定の条件、たとえば失敗するまでに何個のコールが成功するか、ランダムな失敗の確率、失敗するまでの遅れ時間などを含むことができる。エラーシミュレーションモジュール４４５は、着信コマンドが失敗すると判定すると、構成データ４３５によって指定されたエラーコードを返す。エラーコードの例は、ＳＩＭ未挿入、ＳＩＭシステム障害などを含むことができよう。エラーコードは、エラーシミュレーションモジュール４４５から制御モジュール４２０に返され、制御モジュール４２０は次いで、そのエラーを、無線機を介してＲＩＬに返す。失敗したコマンドは、制御モジュール４２０によって止められ、他のどのモジュールも通らない。さらに、エラーシミュレーションモジュール４４５は、構成データ４３５に基づいて、たとえばＳＩＭ削除エラー、ＳＩＭビジーエラーなどのエラーイベントを自律的にトリガすることもできる。ただし、アプリケーションが、存在しないファイルへのアクセスを試みるときのＳＩＭファイルシステムエミュレータ４３０や、アプリケーションが不正なまたは認証されていないＰＩＮを使うときのＳＩＭセキュリティエミュレータなど、他のモジュールでもエラーが生成され得ることに留意されたい。
【００４７】
本発明の様々な実施形態の論理動作は、（１）計算機システムで実行される、一連のコンピュータ実装作用もしくはプログラムモジュールとして、かつ／または（２）相互接続されたマシン論理回路、もしくは計算機システム内の回路モジュールとして実装される。この実装形態は、本発明を実装する計算機システムの性能要件に応じた選択の問題である。したがって、本明細書において説明される本発明の実施形態を構成する論理動作は、動作、構造装置、作用、またはモジュールなど、様々に呼ばれる。こうした動作、構造装置、作用、およびモジュールは、本明細書に添付された特許請求の範囲に記載される本発明の精神および範囲から逸脱することなく、ソフトウェア、ファームウェア、特殊目的のデジタル論理、およびこれらのどの組合せとしても実装され得ることが、当業者には理解されよう。
【００４８】
図５は、本発明の実施形態によるＳＩＭエミュレーションを示すフローチャートである。この例において、動作は、読出し動作５００で始まる。読出し動作５００は、実ＳＩＭの１つまたは複数の特性を表す構成データの読み出しを含む。上述したように、構成データは、ＳＩＭの動作特性を表す１つまたは複数のパラメータを含むことができる。エミュレーションの実行用の１つまたは複数のパラメータの１つは、ＳＩＭコマンドに関連づけられた機能を実施するための時間遅延を含むことができる。さらに、構成データは、ＳＩＭのファイルシステムに格納される１つまたは複数のデータファイルを含むことができる。構成データは、ＸＭＬファイル、テキストファイルの形、または他の好都合な形式でよい。他の実施形態では、ＳＩＭエミュレータは、読出し動作が必要とされないように実ＳＩＭに関連づけられた、予め定義された構成データを有する。重要なことは、ＳＩＭエミュレータが、適切な構成データを読み出し、またはそうしたデータを用いて符号化されることである。
【００４９】
次に、開始動作５０５が、エミュレーションの実行を開始する。つまり、構成データが、エミュレートされている実ＳＩＭと合致したやり方でエミュレーションが動作するようにＳＩＭエミュレーションをセットアップするのに用いられる。たとえば、異なるタイプのＳＩＭの間で変化する特性および行動を表す、ＳＩＭエミュレータのコード中の変数が、構成データの値を設定するのに使われることができる。
【００５０】
受取り動作５１０で、ＳＩＭエミュレータは、ＳＩＭの資源にアクセスするためのＳＩＭコマンドを、無線機を介して無線インターフェース層（ＲＩＬ）から受け取る。コマンドの性質に応じて、ＳＩＭコマンドの受取りは、ＳＩＭコマンドに関連づけられたデータの受取りをさらに含むことができる。たとえば、書込みコマンドは、書き込まれる関連づけられたデータ、または書き込まれる位置へのポインタを有することができる。受取り動作５１０で、ＳＩＭコマンドがまだ受け取られていない場合、制御は、受取り動作５１０で、ＳＩＭコマンドが受け取られるのを待つためにループし、または休止することができる。他の実装形態では、ＳＩＭエミュレータがＳＩＭコマンドを受け取るのを待っている間、他の動作が実施されることができる。ＳＩＭコマンドが受け取られたという判定が行われると、制御は、処理動作５１５に移る。
【００５１】
処理動作５１５は、構成データに基づいて、実ＳＩＭの動作と合致したやり方でＳＩＭコマンドを処理する。ＳＩＭエミュレータは、いくつかのＳＩＭコマンドにある特定のやり方で応答するようにハードコードされることができる。たとえば、読出しコマンドは、ＳＩＭエミュレータに、読出しが成功した場合はファイルシステムの一部のデータに従う固定応答コードを用い、読出しが成功しなかった場合は異なる応答コードを用いて応答させることができる。さらに、エミュレーションをセットアップするのに使われる構成データ中の情報は、異なるタイプのＳＩＭの間で変わる動作パラメータを示すことができる。たとえば、構成データは、コマンドに応答するための遅れ時間も、応答の形式さえも示すことができる。ＳＩＭコマンド処理のこれ以上の詳細は、図６および７を参照して後で説明される。
【００５２】
いくつかの実施形態では、コマンドを処理すると、ログ動作５２０が、ＳＩＭコマンドおよびコマンドの処理に関連するデータのログをとる。ＳＩＭコマンドおよびコマンドの処理に関連するデータのログをとることは、ＳＩＭコマンドおよび応答コードを記録することを含むことができる。さらに、エミュレーションの実行およびＳＩＭコマンドの処理に関連づけられた応答データおよび他のデータも、記録されることができる。上で説明したように、このデータは次いで、テストされているアプリケーションのデバッグにおいて使用可能である。
【００５３】
上述したように、構成データは、エミュレーションの実行中に変化してもよい。したがって、多くの場合、ＳＩＭエミュレーションの実施は、周期的に、または何らかのイベントが発生したときに構成データを再度読み出すことを含むこともできる。このような場合、上で概説された動作に従って、ＳＩＭエミュレータは、第２のまたは後続の組の構成データを読み出し、第２の組の構成データに基づいて、ＳＩＭの動作と合致したやり方で後続のＳＩＭコマンドを処理する。
【００５４】
図６は、図５に示されるＳＩＭエミュレーションのさらなる実施形態による、ＳＩＭファイルシステムコマンドの処理を示すフローチャートである。使用され得る一般的なＳＩＭファイルシステムコマンドは、標準ＳＩＭ読出しコマンドおよび書込みコマンドを含むが、それに限定されない。ここで、動作は、クエリ動作６０５で始まる。クエリ動作６０５は、ＳＩＭファイルシステムへのアクセスがＳＩＭコマンドに対して許可されるか判定する。この判定は、実ＳＩＭ内と同様にファイルシステム内の各ファイル用に維持されるアクセス制御リスト（ＡＣＬ）に照らして現在のアプリケーションのセキュリティレベルを調べることを含むことができる。アクセスが許可されないという判定が行われると、制御は、戻り動作６２５に移る。クエリ動作６０５での、ＳＩＭファイルシステムへのアクセスがＳＩＭコマンドに対して許可されるという判定に応答して、制御は、読出し／書込み動作６１０に移る。
【００５５】
読出し／書込み動作６１０は、ＳＩＭコマンドおよび構成データに基づいて、ＳＩＭファイルシステム内のデータにアクセスすることを含む。つまり、読出しコマンドは、ＳＩＭエミュレータに、ファイルシステムからデータを取得させ、書込みコマンドは、ＳＩＭエミュレータに、ファイルシステムにデータを追加させ、またはファイルシステムを更新させる。
【００５６】
次に、クエリ動作６１５が、ＳＩＭコマンドに対する遅れ時間を構成データが示しているかどうか判定する。構成データ中で遅れが示されていない場合、制御は、戻り動作６２５に移る。構成データが、ＳＩＭコマンドに対する遅れ時間を示しているという判定に応答して、制御は、休止動作６２０に移る。休止動作６２０は、構成データ中で指定されたある程度の時間休止することを含む。制御は次いで、戻り動作６２５に移る。
【００５７】
戻り動作６２５は、ＳＩＭファイルシステム内のデータへのアクセスに基づいて、応答コードを返す。たとえば、ＳＩＭエミュレータが、成功した書込みを完了した場合、成功した書込み用の通常のＳＩＭ応答コードが返されることができる。別の例では、存在しないファイルの読出しの試みが、エラーコードが返されるという結果を生じさせる場合がある。さらに、いくつかの場合では、戻り動作６２５は、応答コードに関連づけられた応答データを返すことを含むこともできる。たとえば、成功した読出し動作用の応答コードが、読み出されたデータに関連づけられることができる。
【００５８】
図７は、図５に示されるＳＩＭエミュレーションのさらなる実施形態による、ＳＩＭセキュリティシステムコマンドの処理を示すフローチャートである。使われ得るＳＩＭセキュリティコマンドは、ユーザの個人識別番号（ＰＩＮ）を確認し、変更し、有効にし、または無効にする一般的なＳＩＭコマンドを含むが、それに限定されない。この例では、動作は、クエリ動作７０５で始まる。クエリ動作７０５は、ＳＩＭセキュリティシステムへのアクセスがＳＩＭコマンドに対して許可されるか判定する。この判定は、実ＳＩＭ内と同様にファイルシステム内の各ファイル用に維持されるアクセス制御リスト（ＡＣＬ）と突き合わせて現在のアプリケーションのセキュリティレベルを調べることを含むことができる。アクセスが許可されないという判定が行われると、制御は、戻り動作７２５に移る。クエリ動作７０５での、ＳＩＭセキュリティシステムへのアクセスがＳＩＭコマンドに対して許可されるという判定に応答して、制御は、実行動作７１０に移る。
【００５９】
実行動作７１０は、ＳＩＭコマンドおよび構成データに基づいた、ＳＩＭセキュリティシステムの機能の実施を含む。つまり、コマンドに応じて、ＰＩＮが、読み出され、更新され、有効にされ、または無効にされることができる。
【００６０】
次に、クエリ動作７１５が、ＳＩＭコマンドに対する遅れ時間を構成データが示しているかどうか判定する。構成データ中で遅れが示されていない場合、制御は、戻り動作７２５に移る。構成データが、ＳＩＭコマンドに対する遅れ時間を示しているという判定に応答して、制御は、休止動作７２０に移る。休止動作７２０は、構成データ中で指定されたある程度の時間休止することを含む。制御は次いで、戻り動作７２５に移る。
【００６１】
戻り動作７２５は、動作の成功に基づいて、応答コードを返す。たとえば、ＳＩＭエミュレータが、成功した変更を完了した場合、成功したＰＩＮ変更用の通常のＳＩＭ応答コードが返されることができる。別の例では、ＰＩＮの失敗したアクセスが、エラーコードが返されるという結果を生じさせる場合がある。さらに、いくつかの場合では、戻り動作７２５は、応答コードに関連づけられた応答データを返すことを含むこともできる。
【００６２】
図８は、本発明の一実施形態によるエラーシミュレーションを示すフローチャートである。この例では、動作は、クエリ動作８０５で始まる。クエリ動作８０５は、受け取ったコマンドが、不良すなわち無効なコマンドとみなされるかどうか判定する。ある実施形態では、クエリ動作８０５は、コマンドの形式、コマンドに関連づけられた１つまたは複数のパラメータを評価することによって、あるいはコマンドまたはコマンドをカプセル化するクラスが失敗するように規定されているという構成データ中の指示に基づいて、コマンドが「不良」であるか判定する。コマンドが不良コマンドとみなされないという判定が行われた場合、制御は、クエリ動作８３５に移る。しかし、コマンドが不良コマンドとみなされるという判定が行われた場合、制御は、戻り動作８１０に移る。戻り動作８１０は、不良コマンドのエラーコードを返すことを含む。
【００６３】
クエリ動作８３５は、ランダムエラーが生成されるかどうかの判定を含む。この判定は、たとえば、構成データ中にそのパラメータが格納される乱数ジェネレータに基づくことができる。ランダムエラーが生成されないという判定が行われた場合、制御は、クエリ動作８４５に移る。しかし、ランダムエラーが生成されるという判定が行われた場合、制御は、戻り動作８４０に移る。戻り動作８４０は、生成されたランダムエラーに基づいたエラーコードを返すことを含む。エラーコードは、構成データに格納されている、起こり得るいくつかのエラーの１つでよい。さらに、起こり得るいくつかのエラーのうち、返される正確なエラーコードは、乱数ジェネレータによって生成される値に基づくことができる。
【００６４】
クエリ動作８４５は、構成データに格納されている、受け取ったコマンドに応答するための遅れ時間が、やはり構成データに格納されている、その応答に対する限度を超えているかどうかの判定を含む。つまり、コマンドの遅れ時間と、遅れ時間の限度との比較が行われる。上述したように、構成データ中で指定された遅れ時間は、特定のコマンドまたは特定のファイルに関連することができる。遅れ時間が限度を超えている場合、制御は戻り動作８５０に移る。戻り動作８５０は、時間切れエラーを返すことを含む。
【００６５】
以上、コンピュータの構造上の特徴、方法を行うための動作、およびコンピュータ可読媒体に特有の言葉で本発明が説明されたが、添付の特許請求の範囲において定義される本発明は、説明した特定の構造、動作、または媒体に必ずしも限定されないことを理解されたい。一例として、ＳＩＭエミュレータは、実装置、エミュレートされた装置、または実コンポーネントおよびエミュレートされたコンポーネントの何らかの組合せを含む様々な環境において使われることができる。さらに、構成データは、その形式ならびにその内容において大きく変わり得る。したがって、こうした特定の構造上の特徴、動作、および媒体は、権利請求される本発明を実装する例示的な実施形態として開示されるものである。
【００６６】
上述した様々な実施形態は、例として示したに過ぎず、本発明を限定するものと解釈されるべきでない。本明細書において例示し説明した、例である実施形態および適用例に従わなくとも、また、添付の特許請求の範囲において述べられる本発明の真の精神および範囲から逸脱することなく、本発明に対して行われ得る様々な修正および変更を、当業者は容易に理解するであろう。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施形態が実装されることができるモバイル装置の機能コンポーネントを示す図である。
【図２】本発明の実施形態が実装されることができるモバイル装置をエミュレートするシステムの機能コンポーネントを示す図である。
【図３】本発明の実施形態が実装されることができる適切な計算機システム環境の例を示す図である。
【図４】本発明の実施形態による、加入者識別モジュール（ＳＩＭ）をエミュレートするシステムの機能コンポーネントを示す図である。
【図５】本発明の実施形態によるＳＩＭエミュレーションを示すフローチャートである。
【図６】図５に示されるＳＩＭエミュレーションのさらなる実施形態による、ＳＩＭファイルシステムコマンドの処理を示すフローチャートである。
【図７】図５に示されるＳＩＭエミュレーションのさらなる実施形態による、ＳＩＭセキュリティシステムコマンドの処理を示すフローチャートである。
【図８】本発明の実施形態によるエラーシミュレーションを示すフローチャートである。
【符号の説明】
【００６８】
１００  モバイル装置
１０５  アプリケーション
１１０  無線インターフェース層プロキシ（ＲＩＬ）
１１５  ＲＩＬドライバ
１２０  無線機
１２５  加入者識別モジュール（ＳＩＭ）エミュレータ
１３０  ネットワーク
２００  アプリケーションテスト／開発システム
２０５  アプリケーション
２０７  無線インターフェース層（ＲＩＬ）プロキシ
２１０  装置エミュレータ
２１５  無線インターフェース層（ＲＩＬ）ドライバエミュレータ
２２５  無線機エミュレータ
２３０  ネットワークエミュレータ
２３５  加入者識別モジュール（ＳＩＭ）エミュレータ
３０２  処理ユニット
３０４  システムメモリ
３０８  取外し可能記憶装置
３１０  固定式記憶装置
３１２  通信接続（群）
３１４  入力装置（群）
３１６  出力装置（群）
４００  ＳＩＭエミュレータ
４０５  ＳＩＭコマンド処理モジュール
４１０  ＳＩＭツールキットエミュレータ
４１５  ＳＩＭセキュリティエミュレータ
４２０  制御モジュール
４２５  ログ
４３０  ＳＩＭファイルシステムエミュレータ
４３５  構成データ
４４０  構成マネージャ
４４５  エラーシミュレーションモジュール
【図１】
2005182798.tif 000003
【図２】
2005182798.tif 000004
【図３】
2005182798.tif 000005
【図４】
2005182798.tif 000006
【図５】
2005182798.tif 000007
【図６】
2005182798.tif 000008
【図７】
2005182798.tif 000009
【図８】
2005182798.tif 000010