(57)【特許請求の範囲】
【請求項１】
当初のオペレーティングシステム（３０）を備えたセキュアエレメント（２０）内のパッケージ（１０）を管理する方法であって、
前記セキュアエレメント（２０）は、第１のエージェント（７０）、第２のエージェント（８０）及び第３のエージェント（９０）を備え、前記パッケージ（１０）は、前記セキュアエレメント（２０）に以前にダウンロードされたＣＡＰファイル（４０）から作成され、前記ＣＡＰファイル（４０）は複数のコンポーネントを含み、前記方法は、
前記第１のエージェント（７０）によって、前記当初のオペレーティングシステム（３０）を更新して、更新されたオペレーティングシステム（３１）を生成する第１ステップと、
前記第２のエージェント（８０）によって、前記パッケージ（１０）を前記更新されたオペレーティングシステム（３１）にリンク付けする第２ステップと、
前記第３のエージェント（９０）によって、前記複数のコンポーネント中から、前記第２ステップ中に更新されるリファレンスを取得することが必要なコンポーネントをアイテム（６０）として選択し、前記アイテム（６０）を前記セキュアエレメント（２０）に格納し、前記セキュアエレメント（２０）から前記ＣＡＰファイル（４０）の少なくとも１つのコンポーネント（５０）を削除する第３ステップとを含み、
前記第２ステップは前記第１ステップによって起動されることを特徴とする方法。
【請求項２】
前記ＣＡＰファイル（４０）は、インポートコンポーネント（５１）、コンスタントプールコンポーネント（５２）、リファレンスロケーションコンポーネント（５３）、クラスコンポーネント（５４）及びメソッドコンポーネント（５５）を含み、前記アイテム（６０）は、前記インポート、コンスタントプール、リファレンスロケーション、クラス及びメソッドコンポーネント（５１、５２、５３、５４、５５）から選択される、請求項１に記載の方法。
【請求項３】
前記アイテム（６０）は、前記ＣＡＰファイル（４０）と異なるフォーマットで前記セキュアエレメント（２０）に格納される、請求項１に記載の方法。
【請求項４】
パッケージ（１０）及び当初のオペレーティングシステム（３０）を備えたセキュアエレメント（２０）であって、
前記パッケージ（１０）は、前記セキュアエレメント（２０）に以前にダウンロードされた複数のコンポーネントを含むＣＡＰファイル（４０）から作成され、
前記セキュアエレメント（２０）は、
前記当初のオペレーティングシステム（３０）を更新することによって更新されたオペレーティングシステム（３１）を生成するように適合された第１のエージェント（７０）と；
前記パッケージ（１０）を前記更新されたオペレーティングシステム（３１）にリンク付けするように適合された第２のエージェント（８０）と；
前記複数のコンポーネントから、前記リンク付け中に更新されるリファレンスを取得することが必要なコンポーネントをアイテム（６０）として選択し、前記アイテム（６０）を前記セキュアエレメント（２０）に格納し、前記セキュアエレメント（２０）から前記ＣＡＰファイル（４０）の少なくとも１つのコンポーネント（５０）を削除するように適合された第３のエージェント（９０）と；を備え、
前記第１のエージェント（７０）は、前記パッケージ（１０）の前記リンク付けを前記当初のオペレーティングシステム（３０）の更新の終わりに起動するように適合されることを特徴とするセキュアエレメント（２０）。
【請求項５】
前記ＣＡＰファイル（４０）は、インポートコンポーネント（５１）、コンスタントプールコンポーネント（５２）、リファレンスロケーションコンポーネント（５３）、クラスコンポーネント（５４）及びメソッドコンポーネント（５５）を含み、前記第３のエージェント（９０）は、前記アイテム（６０）を前記インポート、コンスタントプール、リファレンスロケーション、クラス及びメソッドコンポーネント（５１、５２、５３、５４、５５）から選択するように適合される、請求項４に記載のセキュアエレメント（２０）。
【請求項６】
前記第３のエージェント（９０）は、前記アイテム（６０）を前記ＣＡＰファイル（４０）と異なるフォーマットで前記セキュアエレメント（２０）に格納するように適合される、請求項４に記載のセキュアエレメント（２０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュアエレメント内のパッケージを管理する方法に関する。本発明は特に、セキュアエレメントのオペレーティングシステムが更新されたときにパッケージを処理する方法に関する。
【背景技術】
【０００２】
セキュアエレメントは、計算処理のためのメモリ、マイクロプロセッサ及びオペレーティングシステムを備えた小型デバイスである。このようなセキュアエレメントは、不揮発性メモリや揮発性メモリといった異なるタイプの複数のメモリを備える場合がある。セキュアエレメントは、これに含まれるデータへのアクセスを制御し、他のマシンによるデータの使用を許可する又は許可しないことができるために「セキュア」といわれる。セキュアエレメントは、暗号化コンポーネントをベースとした計算サービスを提供する場合もある。一般に、セキュアエレメントは限られたコンピュータ資源及びメモリ資源を有し、電力提供を行うホストマシンに接続されることが意図されている。セキュアエレメントは、ホストマシンに対して取外し可能又は固定式であってよい。例えばスマートカードはセキュアエレメントの一種である。
【０００３】
セキュアエレメントは、アプリケーションと、ユーザデータ、ファイルシステム及び秘密鍵を含むアプリケーションに関連するアプリケーションデータとを含んでよい。そのようなアプリケーションは、セキュアエレメントに格納される１つのパッケージ又は一セットのパッケージとして開発される場合がある。そして、必要に応じて１又は複数のアプリケーションインスタンスが生成される。各インスタンスは、自身のインスタンスデータを所有、処理及び格納する。
【０００４】
セキュアチャネルは、無線チャネルを介して、又は例えばインターネットなどの有線ネットワークを通じて遠隔サーバによってアクセスされる場合がある。例えば、テレコムドメイン又はマシンツーマシン（Ｍ２Ｍ）ドメインで使用されることが意図されたセキュアエレメントは、ＯＴＡ（Ｏｖｅｒ−Ｔｈｅ−Ａｉｒ）チャネルを管理することができる。これらのセキュアエレメントはまた、通常はＨＴＴＰ、セキュアモードのものはＨＴＴＰＳと呼ばれるハイパーテキスト転送プロトコルを通じてアクセスされてよい。したがって、遠隔サーバは、ＵＩＣＣ（汎用集積回路カード）などのセキュアエレメントのコンテンツを、特定のプロトコルを使用する専用の通信セッションを通じて遠隔的に管理することができる。例えば、サーバは、ＧｌｏｂａｌＰｌａｔｆｏｒｍ（登録商標）ｖ２．２ ｓｔａｎｄａｒｄ−Ａｍｅｎｄｍｅｎｔ Ｂ “ＲＡＭ ｏｖｅｒ ＨＴＴＰ”が定義するＲＡＭ（リモートアプレット管理）機構、又はＯＭＡ−ＴＳ−ＤＭ Ｖ１．２．１ ｓｔａｎｄａｒｄが定義するＯＭＡ−ＤＭ（オープンモバイルアライアンス−デバイス管理）プロトコルを使用してよい。
【０００５】
Ｊａｖａ（登録商標）Ｃａｒｄ仕様に従って、パッケージがＣＡＰファイルを通じてセキュアエレメントにロードされてよい。パッケージインストールは、パッケージをオペレーティングシステムにリンク付けするステップを含む。このリンク付けするステップは、ＣＡＰファイルで使用される記号アドレスを、現在のオペレーティングシステムによって物理アドレスにマッピングすることを可能にする。このリンク付けするステップは、セキュアエレメント内で一度だけ実行され、その後ＣＡＰファイルのいくつかのコンポーネント（ヘッダ、ディレクトリ、インポート、コンスタントプール及びリファレンスロケーションコンポーネント）が削除される。これによってランタイム時の高速実行及びメモリ節約が可能になる。
【０００６】
遠隔サーバは、セキュアエレメントのオペレーティングシステムの新しいバージョン又はアップグレード版を送信することができる。この場合、前のオペレーティングシステムにリンク付けされたパッケージは削除され、その後セキュアエレメントに再ロードされる。この新しいパッケージのロードは、これらのパッケージの再インストールを起動し、ひいてはこれらのパッケージの新しいオペレーティングシステムへのリンク付けを起動する。
【０００７】
パッケージの再ロードは、ネットワーク上の帯域幅の大部分を必要とする可能性がある。この問題は、多数のセキュアエレメントをアップグレードする必要がある場合に深刻になる。また、遠隔サーバは、パッケージがサードパーティなどの別のエンティティによってインストールされた場合は当該パッケージにアクセスできない場合がある。
【０００８】
セキュアエレメントのオペレーティングシステムが更新されたとき、パッケージを機能状態に維持できるようにする必要性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明の目的は、上述の技術的課題を解決することである。
【課題を解決するための手段】
【００１０】
本発明の目的は、当初のオペレーティングシステムを備えたセキュアエレメント内のパッケージを管理する方法である。この方法は、当初のオペレーティングシステムを更新して、更新されたオペレーティングシステムを生成するステップを含む。この方法は、パッケージを更新されたオペレーティングシステムにリンク付けするステップを含み、リンク付けするステップは当初のオペレーティングシステムを更新するステップによって起動される。
【００１１】
有利には、パッケージは、セキュアエレメントに以前にダウンロードされたＣＡＰファイルから作成されてよい。ＣＡＰファイルは複数のコンポーネントを含んでよい。この方法は、複数のコンポーネントから、リンク付けするステップ中に更新されるリファレンスを取得することが必要なアイテムを選択し、前記アイテムをセキュアエレメントに永久的に格納するステップを含んでよい。この方法は、セキュアエレメントからＣＡＰファイルの少なくとも１つのコンポーネントを削除するステップを含んでよい。
【００１２】
有利には、前記アイテムはパッケージ外部のターゲットに関係していてよい。
【００１３】
有利には、ＣＡＰファイルは、インポートコンポーネント、コンスタントプールコンポーネント、リファレンスロケーションコンポーネント、クラスコンポーネント及びメソッドコンポーネントを含んでよい。前記アイテムは、前記インポート、コンスタントプール、リファレンスロケーション、クラス及びメソッドコンポーネントから選択されてよい。
【００１４】
有利には、パッケージは、自身のクラスコンポーネントと自身のメソッドコンポーネントの両方を含んでよく、前記リンク付けするステップは、
−インポートコンポーネントを処理して、パッケージの更新されたオペレーティングシステムとの整合性をチェックするサブステップと、整合性チェックが成功した場合に、前記アイテムを使用して、
−パッケージのクラスコンポーネントの各外部リファレンスを解決するサブステップと、
−パッケージのメソッドコンポーネントの各外部リファレンスを解決するサブステップと、を含んでよい。
【００１５】
有利には、前記アイテムは、ＣＡＰファイルと異なるフォーマットでセキュアエレメントに永久的に格納されてよい。
【００１６】
本発明の別の目的は、パッケージ及び当初のオペレーティングシステムを備えたセキュアエレメントである。セキュアエレメントは、当初のオペレーティングシステムを更新することによって、更新されたオペレーティングシステムを生成するように適合された第１のエージェントを備える。セキュアエレメントは、パッケージを更新されたオペレーティングシステムにリンク付けするように適合された第２のエージェントを備える。第１のエージェントは、パッケージのリンク付けを当初のオペレーティングシステムの更新の終わりに起動するように適合される。
【００１７】
有利には、パッケージは、セキュアエレメントに以前にダウンロードされたＣＡＰファイルから作成されてよい。ＣＡＰファイルは複数のコンポーネントを含んでよい。セキュアエレメントは、前記複数のコンポーネントから、リンク付けするステップ中に更新されるリファレンスを取得することが必要なアイテムを選択し、前記アイテムをセキュアエレメントに永久的に格納し、セキュアエレメントからＣＡＰファイルの少なくとも１つのコンポーネントを削除するように適合された第３のエージェントを備えてよい。
【００１８】
有利には、ＣＡＰファイルは、インポートコンポーネント、コンスタントプールコンポーネント、リファレンスロケーションコンポーネント、クラスコンポーネント及びメソッドコンポーネントを含んでよく、前記第３のエージェントは、前記インポート、コンスタントプール、リファレンスロケーション、クラス及びメソッドコンポーネントから前記アイテムを選択するように適合されてよい。
【００１９】
有利には、パッケージは、自身のクラスコンポーネントと自身のメソッドコンポーネントの両方を含んでよい。第２のエージェントは、
−前記アイテムに属する、インポートコンポーネントからのデータを処理して、パッケージの更新されたオペレーティングシステムとの整合性をチェックし、整合性チェックが成功した場合に、前記アイテムを使用して、
−パッケージのクラスコンポーネントの各外部リファレンスを解決し、
−パッケージのメソッドコンポーネントの各外部リファレンスを解決する
ように適合されてよい。
【００２０】
有利には、第３のエージェントは、前記アイテムをＣＡＰファイルと異なるフォーマットでセキュアエレメントに永久的に格納するように適合されてよい。
【図面の簡単な説明】
【００２１】
本発明の他の特徴及び利点は、対応する添付の図面を参照しながら本発明の複数の好適な実施形態の以下の説明を読めばより明らかになるだろう。
【００２２】
【図１】本発明に係るセキュアエレメントにおけるパッケージ管理の例示的なフローチャート。
【図２】本発明の一例に係るセキュアエレメントの図。
【発明を実施するための形態】
【００２３】
本発明は、パッケージと、フィールドに展開された場合にアップグレードされる可能性があるオペレーティングシステムとを埋め込むことが意図されたいずれのタイプのセキュアエレメントにも適用することができる。このようなセキュアエレメントは、スマートフォン、スマートウォッチ、車両、計測器、スロットマシン、ＴＶ又はコンピュータなどのホストマシンに結合されてよい。
【００２４】
本説明では、パッケージは、オブジェクト指向プログラミング言語によって定義されるコンテナである。特に、本発明はＪａｖａ（登録商標）及びＪａｖａＣａｒｄ（登録商標）言語で定義されるパッケージに適用される。
【００２５】
図１は、本発明に係るセキュアエレメントのオペレーティングシステムがアップグレードされたときにパッケージを管理するためのフローチャートの一例を示す。
【００２６】
セキュアエレメント２０には当初のオペレーティングシステム３０が装備されていると想定される。例えば、この当初のオペレーティングシステム３０は、オブジェクト指向仮想マシン及び高レベルのアプリケーションプログラミングインターフェース（ＡＰＩ）を備えてよい。例えば、仮想マシン（ＶＭ）は、ＪａｖａＣａｒｄ（登録商標）仕様バージョン２．２以上に準拠してよい。
【００２７】
ステップＳ１において、パッケージ１０を作成可能なコンポーネントを含むＣＡＰファイル４０がセキュアエレメント２０にダウンロードされる。パッケージ１０は、例えばセキュアエレメント２０にアプリケーションをインストールするのに必要となる場合がある。
【００２８】
ステップＳ２において、パッケージ１０はセキュアエレメントにインストールされる。換言すれば、パッケージ１０はＣＡＰファイル４０のコンポーネントから作成され、その後パッケージ１０は当初のオペレーティングシステム３０にリンク付けされる。一実施形態では、ＣＡＰファイルは、セキュアエレメントにロードされるときオンザフライで処理されてよい。ＣＡＰファイルのコンポーネントは、パッケージが完全に作成されるとＣＡＰファイル（それ自体）がセキュアエレメント上にそれ以上存在しなくなるように一時的に格納されてよい。
【００２９】
パッケージインストール動作は、セキュアエレメント２０が（起こり得るＣＡＰファイル消去の前に）ＣＡＰファイル４０のいくつかのコンポーネントからアイテム６０を選択するステップＳ３を起動する。好ましくは、これらのアイテム６０は、インポート５１、コンスタントプール５２、リファレンスロケーション５３、クラス５４及びメソッド５５からなるコンポーネントリストから抽出される。
【００３０】
これらのアイテム６０は、更なるリンク付け（すなわち再リンク付け）動作中に更新する必要があるクラスコンポーネント及びメソッドコンポーネントの全てのリファレンスを取得するのに必要である。
【００３１】
これらのアイテム６０は、セキュアエレメント２０に永久的に格納される。例えば、アイテム６０は、セキュアエレメント２０の不揮発性メモリに格納される。本説明において「永久的に格納される」とは、アイテムが長い間セキュアエレメント２０に保持されることを意味する。例えば、これらのアイテムは、パッケージ１０がセキュアエレメント２０から削除されるまで保持される。
【００３２】
好ましくは、これらのアイテムは、フットプリントを最小化する又は構文解析を簡単にするように、ＣＡＰファイルのフォーマットと異なるカスタマイズされたフォーマットで格納される。
【００３３】
一実施形態では、アイテム６０は、パッケージ１０外部のリファレンスのみを参照するように選択される。換言すれば、選択されたアイテム６０は、パッケージ１０内部のリファレンスの解決に使用することが意図されていない。代替的に、アイテム６０は、パッケージ外部のリファレンスとパッケージ内部のリファレンスの両方を参照するように選択されてよい。
【００３４】
ステップＳ２及びＳ３を２つの別個のステップとして説明してきたが、これらを単一のステップと見なしてもよい。例えば、次の新しい構造を使用して、メソッドコンポーネントと、アイテム６０のサブセットを格納するためにカスタマイズされたコンスタントプールコンポーネントの間のリンクを確立できるようにする情報を格納してよい。この格納フォーマットは、メソッドコンポーネントのリファレンスを解決することを可能にする。
ｒｅｌｉｎｋ＿ｃｏｍｐｏｎｅｎｔ｛
ｕ１６  ｒｅｆ＿ｃｏｕｎｔ；
ｒｅｆ＿ｉｎｆｏ  ｒｅｆ＿ｉｎｆｏｓ［ｒｅｆ＿ｃｏｕｎｔ］；
｝
ｒｅｆ＿ｉｎｆｏ｛
ｕ１６  ｏｆｆｓｅｔ＿ｉｎ＿ｍｅｔｈｏｄ＿ｃｏｍｐｏｎｅｎｔ；
ｕ１６  ｉｎｄｅｘ＿ｉｎ＿ｃｏｎｓｔａｎｔ＿ｐｏｏｌ；
｝
【００３５】
（ＣＡＰファイルの）元のコンポーネントから抽出されるアイテムを示すために、元々次のように構成されたインポートコンポーネント：
ｉｍｐｏｒｔ＿ｃｏｍｐｏｎｅｎｔ｛
ｕ１  ｔａｇ
ｕ２  ｓｉｚｅ
ｕ１  ｃｏｕｎｔ
ｐａｃｋａｇｅ＿ｉｎｆｏ  ｐａｃｋａｇｅｓ［ｃｏｕｎｔ］
｝
を次のフォーマットに保持する：
ｉｍｐｏｒｔ＿ｃｏｍｐｏｎｅｎｔ＿Ｋｅｐｔ｛
ｕ１  ｃｏｕｎｔ
ｐａｃｋａｇｅ＿ｉｎｆｏ  ｐａｃｋａｇｅｓ［ｃｏｕｎｔ］
｝
【００３６】
ＣＡＰファイルをロードするとき、クラスコンポーネントは通常完全に保持される。しかし、クラスコンポーネントのいくつかのデータはオペレーティングシステムにリンク付けされ、それらの元の値はそれ以上保持されない。本発明のある例によれば、新しいプロセスは、後で再リンク付けする必要がある（元の値を有する）データを抽出する。
【００３７】
例えば、クラスコンポーネントは、元々次のように構成されてよい。
ｃｌａｓｓ＿ｃｏｍｐｏｎｅｎｔ｛
ｕ１  ｔａｇ
ｕ２  ｓｉｚｅ
ｕ２  ｓｉｇｎａｔｕｒｅ＿ｐｏｏｌ＿ｌｅｎｇｔｈ
ｔｙｐｅ＿ｄｅｓｃｒｉｐｔｏｒ  ｓｉｇｎａｔｕｒｅ＿ｐｏｏｌ［］
ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ  ｉｎｔｅｒｆａｃｅｓ［］
ｃｌａｓｓ＿ｉｎｆｏ  ｃｌａｓｓｅｓ［］
｝
ここで、「ｉｎｔｅｒｆａｃｅ  ｉｎｆｏ」及び「ｃｌａｓｓ  ｉｎｆｏ」は、元々
ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ｛
ｕ１  ｂｉｔｆｉｅｌｄ｛
ｂｉｔ［４］ｆｌａｇｓ
ｂｉｔ［４］ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ
｝
ｃｌａｓｓ＿ｒｅｆ  ｓｕｐｅｒｉｎｔｅｒｆａｃｅｓ［ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ］
ｉｎｔｅｒｆａｃｅ＿ｎａｍｅ＿ｉｎｆｏ  ｉｎｔｅｒｆａｃｅ＿ｎａｍｅ
｝
及び、
ｃｌａｓｓ＿ｉｎｆｏ｛
ｕ１  ｂｉｔｆｉｅｌｄ｛
ｂｉｔ［４］ｆｌａｇｓ
ｂｉｔ［４］ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ
｝
ｃｌａｓｓ＿ｒｅｆ  ｓｕｐｅｒ＿ｃｌａｓｓ＿ｒｅｆ
ｕ１  ｄｅｃｌａｒｅｄ＿ｉｎｓｔａｎｃｅ＿ｓｉｚｅ
ｕ１  ｆｉｒｓｔ＿ｒｅｆｅｒｅｎｃｅ＿ｔｏｋｅｎ
ｕ１  ｒｅｆｅｒｅｎｃｅ＿ｃｏｕｎｔ
ｕ１  ｐｕｂｌｉｃ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｂａｓｅ
ｕ１  ｐｕｂｌｉｃ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｃｏｕｎｔ
ｕ１  ｐａｃｋａｇｅ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｂａｓｅ
ｕ１  ｐａｃｋａｇｅ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｃｏｕｎｔ
ｕ２
ｐｕｂｌｉｃ＿ｖｉｒｔｕａｌ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ［ｐｕｂｌｉｃ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｃｏｕｎｔ］
ｕ２
ｐａｃｋａｇｅ＿ｖｉｒｔｕａｌ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ［ｐａｃｋａｇｅ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｃｏｕｎｔ］
ｉｍｐｌｅｍｅｎｔｅｄ＿ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ
ｉｎｔｅｒｆａｃｅｓ［ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ］
ｒｅｍｏｔｅ＿ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ  ｒｅｍｏｔｅ＿ｉｎｔｅｒｆａｃｅｓ
｝
のように構成され、外部リファレンスが更なる再リンク付けのために抽出及び格納されるように次の構造に保持される。
ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ＿ｋｅｐｔ｛
ｃｌａｓｓ＿ｒｅｆ  ｓｕｐｅｒｉｎｔｅｒｆａｃｅｓ［ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ］
｝
及び
ｃｌａｓｓ＿ｉｎｆｏ＿ｋｅｐｔ｛
ｃｌａｓｓ＿ｒｅｆ  ｓｕｐｅｒ＿ｃｌａｓｓ＿ｒｅｆ
ｕ１  ｄｅｃｌａｒｅｄ＿ｉｎｓｔａｎｃｅ＿ｓｉｚｅ
ｕ１  ｆｉｒｓｔ＿ｒｅｆｅｒｅｎｃｅ＿ｔｏｋｅｎ
ｕ２
ｐｕｂｌｉｃ＿ｖｉｒｔｕａｌ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ［ｐｕｂｌｉｃ＿ｍｅｔｈｏｄ＿ｔａｂｌｅ＿ｃｏｕｎｔ］
ｉｍｐｌｅｍｅｎｔｅｄ＿ｉｎｔｅｒｆａｃｅ＿ｉｎｆｏ
ｉｎｔｅｒｆａｃｅｓ［ｉｎｔｅｒｆａｃｅ＿ｃｏｕｎｔ］
｝
【００３８】
ステップＳ４において、セキュアエレメント２０は、選択されたアイテム６０をセキュアエレメント２０に保持しつつ、ＣＡＰファイルコンポーネントの一部５０を削除する。例えば、次のコンポーネント、すなわちヘッダコンポーネント及びディレクトリコンポーネントがセキュアエレメント２０から削除される。換言すれば、セキュアエレメント２０は、これらの削除されたコンポーネントからの情報を保持しない。
【００３９】
ＣＡＰファイルは、通常保持され、更新することもできるカスタムコンポーネントを含んでよい。これらのカスタムコンポーネントはＯＳ発行者に依存するため、これらを管理する一般原則はない。任意選択の記述子コンポーネントは、オンボードでのバイトコード検証がアクティブな場合に使用されることが意図されている。その結果、記述子コンポーネントは、ランタイム中のバイトコードチェックのために保持することができる。
【００４０】
ステップＳ５において、当初のオペレーティングシステム３０にアップグレードが適用され、新しい（更新された）オペレーティングシステム３１が生成される。
【００４１】
第１の例では、ステップＳ５は、セキュアエレメント２０のオペレーティングシステムを管理するように設計されたブートローダエージェントを介して実行される。この場合、更新されたオペレーティングシステム３１は、セキュアエレメント２０に完全に送信される。
【００４２】
この場合、ブートローダは、セキュアエレメント２０の挙動が当初のオペレーティングシステム３０に依存しないように作動する。そして、新しいオペレーティングシステム３１がブートローダを介してセキュアエレメント２０にダウンロードされる。そして、セキュアエレメントに起動コマンドが送信されてブートローダモードから新しいオペレーティングシステム３１モードに切り替わり、セキュアエレメントが新しいオペレーティングシステム３１を起動することによって、新しいオペレーティングシステム３１を考慮するようにセキュアエレメントに更なるリセット（すなわちハードウェア再起動）がかけられる。この例では、当初のオペレーティングシステム３０を更新するステップＳ５は、起動コマンドとリセットの両方の実行の組み合わせから構成される。
【００４３】
第２の例では、ステップＳ５は、（修正パッチや新しい機能など）当初のオペレーティングシステムをわずかに変更することを目的とするデータの塊をダウンロードすることによって実行されてよい。この場合、新しい／更新された機能は、セキュアエレメントにインストールされるとすぐに（例えばリセットを必要とせずに）アクティブになる。この例では、当初のオペレーティングシステム３０を更新するステップＳ５は、新しい／更新された機能のインストールから構成される。
【００４４】
全ての場合において、更新されたオペレーティングシステム３１がセキュアエレメント２０上でアクティブになると再リンク付け動作が行われることに留意されたい。
【００４５】
ステップＳ５の終了は、更新されたオペレーティングシステム３１へのパッケージ１０の新しいリンク付け（再リンク付けとも称する）動作が開始されるステップＳ６を起動する。この再リンク付け動作は、格納されたアイテム６０を使用して実行される。
【００４６】
換言すれば、再リンク付けステップは、ステップＳ５の終了によって自動的に起動され、セキュアエレメントに永久的に格納されたデータを使用して実行される。好ましくは、再リンク付けステップは、ステップＳ５が終わるとすぐに実行される（すなわち直接実行される）。代替的に、ステップＳ５の終わりと再リンク付けステップの間に中間動作が行われてもよい。
【００４７】
好ましくは、本発明によって永久的に格納されるアイテム６０は、別のオペレーティングシステムの更新の後に更なる再リンク付けステップを再度行うことができるように、再リンク付けステップ後に変化がない。
【００４８】
好ましくは、ステップＳ６の再リンク付け動作は以下のように実行される。
【００４９】
まず、セキュアエレメント２０は、インポートコンポーネント５１からのアイテムによって、パッケージ１０の更新されたオペレーティングシステム３１との整合性（すなわち互換性）をチェックする。このチェックの目的は、パッケージが更新されたオペレーティングシステム３１の機能にも準拠していることを管理することである。失敗した場合、再リンク付け動作は中断する。整合性チェックが成功した場合、セキュアエレメント２０は、格納されたアイテム６０を使用してパッケージ１０のクラスコンポーネントの各外部リファレンスを解決し、かつ格納されたアイテム６０を使用してパッケージ１０のメソッドコンポーネントの各外部リファレンスを解決する。
【００５０】
付加的に、セキュアエレメント２０はまた、格納されたアイテム６０を使用してパッケージ１０のクラスコンポーネント及びパッケージ１０のメソッドコンポーネントの内部リファレンスを解決してもよい。
【００５１】
パッケージ再リンク付けプロセスは、これらのパッケージが更新されたオペレーティングシステムと互換性がある場合、セキュアエレメントに以前にインストールされた全てのパッケージに適用されることに留意されたい。
【００５２】
図２は、ＣＡＰファイルの一例及び本発明の一例に係るセキュアエレメントの図を示す。
【００５３】
ここでパッケージ１０は、ＣＡＰファイル４０からセキュアエレメント２０内に作成される。セキュアエレメント２０は、当初のオペレーティングシステム３０を備え、（破線で示す）更新されたオペレーティングシステム３１を備えることが意図されている。更新されたオペレーティングシステム３１は、当初のオペレーティングシステム３０のアップグレードバージョンと想定される。
【００５４】
この例では、セキュアエレメント２０は、ＩＳＯ−７８１６規格に従って外部とデータ交換するように構成された通信インターフェース（図示せず）を備えたスマートカードである。
【００５５】
当初のオペレーティングシステム３０及び更新されたオペレーティングシステム３１は、どちらもＪａｖａＣａｒｄ（登録商標）仮想マシンＶＭを備える。
【００５６】
セキュアエレメントは、当初のオペレーティングシステム３０を更新して、更新されたオペレーティングシステム３１を生成するように構成された第１のソフトウェアエージェント７０を含む。第１のソフトウェアエージェント７０は、遠隔マシンからのデータの塊を入手し、受け取ったデータを使用して当初のオペレーティングシステム３０を更新することができる。
【００５７】
セキュアエレメント２０は、パッケージ１０を更新されたオペレーティングシステム３１にリンク付けするように構成された第２のソフトウェアエージェント８０を備える。第１のエージェント７０は、更新されたオペレーティングシステム３１の生成の終わりにパッケージ１０の（再）リンク付けを開始するために第２のエージェント８０を自動的に動作させる。
【００５８】
セキュアエレメント２０は、ＣＡＰファイル４０の複数のコンポーネントから、（再）リンク付けステップ中に更新されるリファレンスを取得することが必要なアイテム６０を選択するように構成された第３のソフトウェアエージェント９０を備える。第３のソフトウェアエージェント９０はまた、これらのアイテム６０をセキュアエレメント２０に永久的に格納し、セキュアエレメント２０からＣＡＰファイル４０の少なくとも１つのコンポーネント５０を削除するように構成される。好ましくは、第３のソフトウェアエージェント９０は、これらのアイテム６０をＣＡＰファイル４０の以下のコンポーネント、すなわち、インポートコンポーネント５１、コンスタントプールコンポーネント５２、リファレンスロケーション５３、クラスコンポーネント５４及びメソッドコンポーネント５５から抽出するように構成される。
【００５９】
好ましくは、第３のソフトウェアエージェント９０は、（ＣＡＰファイル４０の）ヘッダコンポーネント及びディレクトリコンポーネントをセキュアエレメント２０から削除するように適合される。第３のソフトウェアエージェント９０は、選択されたアイテム６０が別の格納フォーマットでセキュアエレメント２０に保持されていると想定して、ＣＡＰファイル４０の全てのコンポーネントを削除するように構成されてよい。
【００６０】
パッケージ１０は、任意の格納機構に従ってセキュアエレメント２０に格納され得る、自身のクラスコンポーネントと自身のメソッドコンポーネントの両方を備えると想定される。
【００６１】
図２の例では、第２のエージェント８０は、インポートコンポーネント５１からのアイテムを処理して、パッケージ１０が更新されたオペレーティングシステム３１と互換性があるかどうかをチェックするように設計される。整合性（互換性）チェックが成功した場合、第２のエージェント８０は、アイテム６０を使用してパッケージ１０のクラスコンポーネントの全ての外部リファレンスを解決し、かつアイテム６０を使用してパッケージ１０のメソッドコンポーネントの全ての外部リファレンスを解決するように設計される。
【００６２】
本発明によれば、セキュアエレメント２０に既にインストールされているパッケージを自動的に存続させることによって、オペレーティングシステムが更新されたときの既存のパッケージの移行を容易かつ円滑に管理することが可能となる。したがって、オペレーティングシステムの更新動作は、パッケージ（及びその関連アプリケーション）の機能が維持されているため、サービスの完全な継続性を保つユーザにトランスペアレントな方法で実行することができる。
【００６３】
本発明は上記の実施形態又は例に限定されない。特に、セキュアエレメントは、オペレーティングシステムが更新されるとすぐに自動的に再リンク付けされるいくつかのパッケージを備えてもよい。
【００６４】
本発明は、アプリケーションを作成しないパッケージにも適用されることに留意されたい。本発明は、ＡＰＩ（アプリケーションプログラミングインターフェース）パッケージに適用される。
【図１】
0006560824.tif 000002
【図２】
0006560824.tif 000003