(57)【特許請求の範囲】
【請求項１】
ターミナル（ＴＥ）からのコマンドを受信して応答するために、前記ターミナル（ＴＥ）に接続可能なスマートカード（ＣＰ）タイプのエンティティであって、
通信プロトコル層（ＰＲ）と、前記コマンドへの応答を送信するために、前記通信プロトコル層（ＰＲ）により提供されるサービスを使用するアプリケーション層（ＡＰ）とを有し、
前記ターミナルは、前記コマンドが前記ターミナルから送信された後の所定の時間内に、前記エンティティから前記応答か又は待ち時間延長（ＷＴＸ）要求のいずれかがあると予測し、
さらに前記エンティティは、タイムマネージャ（ＧＤ）を備え、
前記タイムマネージャ（ＧＤ）は、
前記エンティティが前記ターミナル（ＴＥ）から前記コマンドを受信したときに前記通信プロトコル層（ＰＲ）によって起動され、
前記ターミナル（ＴＥ）へ前記通信プロトコル層（ＰＲ）を介して定期的に待ち時間延長（ＷＴＸ）要求を構築して送信し、
前記アプリケーション層（ＡＰ）が前記コマンドの応答を前記ターミナル（ＴＥ）に送信したときには前記通信プロトコル層（ＰＲ）によって停止されることを特徴とするエンティティ。
【請求項２】
請求項１に記載のエンティティにおいて、
前記タイムマネージャ（ＧＤ）は、前記待ち時間延長（ＷＴＸ）要求を何時構築し送信するかを決定する時間カウント手段（ＣＤ）と、前記時間カウント手段（ＣＤ）を起動及び停止する手段とを含み、
前記タイムマネージャ（ＧＤ）は、前記エンティティがデータを有しないコマンド（ＣＯＭ）またはデータを有するコマンド（ＣＤＯ）をターミナル（ＴＥ）から受信するか又は、前記エンティティがデータを有する応答（ＲＤＯ）をターミナル（ＴＥ）へ送信したとき、のいずれかが発生すると前記通信プロトコル層（ＰＲ）によって起動され（ステップＧ１）、
前記時間カウント手段の終了に続き前記タイムマネージャ（ＧＤ）が前記待ち時間延長（ＷＴＸ）要求を構築し送信したときには、前記時間カウント手段（ＣＤ）を起動し（ステップＧ７）、
前記アプリケーション層（ＡＰ）がデータを有するコマンド（ＣＤＯ）を待っているときか前記アプリケーション層（ＡＰ）がデータを有しない応答（ＲＥＳ）またはデータを有する応答（ＲＤＯ）をターミナル（ＴＥ）へ送信したときには前記通信プロトコル層（ＰＲ）によって停止され（ステップＧ８）、
前記時間カウント手段（ＣＤ）におけるカウントダウンを停止させる（Ｇ９）ことを特徴とするエンティティ。
【請求項３】
通信プロトコル層（ＰＲ）にリンクしたアプリケーション層（ＡＰ）を有するスマートカード（ＣＰ）タイプのエンティティにおける時間管理方法であって、
前記通信プロトコル層（ＰＲ）は、前記通信プロトコル層（ＰＲ）を介してターミナル（ＴＥ）へ待ち時間延長（ＷＴＸ）要求の送信を定期的に構築し送信するためタイムマネージャ（ＧＤ）を起動し、
前記タイムマネージャ（ＧＤ）は、前記エンティティがデータを有しないコマンド（ＣＯＭ）またはデータを有するコマンド（ＣＤＯ）を前記ターミナル（ＴＥ）から受信する（ステップＰ１、Ｐ３）か、前記エンティティがデータを有する応答（ＲＤＯ）を前記ターミナル（ＴＥ）へ送信する（ステップＰ５）か、のいずれかが発生するときに前記通信プロトコル層（ＰＲ）によって起動され、
前記通信プロトコル層（ＰＲ）は、前記アプリケーション層（ＡＰ）がデータを有するコマンド（ＣＤＯ）を待っている（Ｐ３）か、前記アプリケーション層（ＡＰ）がデータを有しない応答（ＲＥＳ）またはデータを有する応答（ＲＤＯ）をターミナル（ＴＥ）へ前記通信プロトコル層（ＰＲ）を介して送信する（Ｐ４、Ｐ５）かのいずれかが発生するときに、前記タイムマネージャ（ＧＤ）を停止する（ステップＧ８）ことを特徴とする方法。
【請求項４】
請求項３に記載の方法において、前記タイムマネージャ（ＧＤ）の起動及び停止は、
前記タイムマネージャ（ＧＤ）が起動されているとき、時間カウント手段（ＣＤ）をカウントダウンし（ステップＧ３、Ｇ４）、
前記時間カウント手段（ＣＤ）のカウント終了において前記時間カウント手段を停止し（ステップＧ５）、
待ち時間延長（ＷＴＸ）要求を構築し（ステップＧ６）、
前記通信プロトコル層（ＰＲ）の手段により前記ターミナル（ＴＥ）へ前記待ち時間延長（ＷＴＸ）要求を送信し（ステップＰ２）、
前記時間カウント手段（ＣＤ）を再起動する（ステップＧ７）、
の各ステップを含むことを特徴とする方法。
【発明の詳細な説明】
【０００１】
（技術分野）
本発明は、ＩＣカードやマイクロプロセッサカードとも呼ばれているスマートカードタイプのエンティティにおいて使用されるアプリケーション層の通信プロトコルにおける時間的制約に係り、特に、時間測定の制約が、例えばコンタクトのある、またはコンタクトのないカード専用の通信プロトコルに対して厳しく、かつ、例えば、オープンオペレーティングシステムにとって考慮し難い通信プロトコルに関する。
【０００２】
（背景技術）
クレジットカードや、ＳＩＭ（加入者識別モジュール）電話加入者カードなどスマートカードのほとんどは、動作時にカードが電気的に接続されているリーダもしくは移動無線電話局といったようなターミナルと、ＩＳＯ国際標準規格７８１６−３に準拠する専用通信プロトコルに基づいてデータを交換する。
【０００３】
この国際標準に準拠して、アプリケーション層レベルにてＴ＝１非同期ブロック伝送プロトコルに基づいてデータブロック（Ｉ−ブロック）を交換するプロセスの間、カードが受信した第１ブロックにおける最後の文字のリーディングエッジと、カードにより伝送された第２データブロックにおける最初の文字のリーディングエッジとの間の時間は、あらかじめ決定された最大時間ＢＷＴ（ブロック待ち時間）を超過しない。アプリケーションプロセスのオペレーションが連続する間、第１ブロックの処理が所定の最大時間を超過しそうであり、そのためにターミナルを「待ち状態」にしなくてはならないとカードのアプリケーション層が判断を行うと、ＢＷＴ（ブロック待ち時間）の最大時間が満了となる前に、アプリケーション層は「待ち時間延長」ＷＴＸと呼ばれる特定のプロトコル要求を伝送する。ＷＴＸ（待ち時間延長）要求の情報フィールドは、要求に応えてターミナルから伝送された確認応答を受け取った後に開始する、カードのアプリケーション層に割り当てられた時間を明示する、最大時間ＢＷＴ（ブロック待ち時間）の整数の倍数を含む。
【０００４】
通常、時間ＢＷＴが満了するか、または要求により、割り当て時間が満了する前に、第１ブロックに続きカードが他のブロックを送信しない場合、ターミナルはブロックのないことをタイムアウトと解釈し、そして、例えば第１ブロックを再度送信する。
しかし、アプリケーションレベルにおいて、情報交換に関する時間の概念と関係なくスマートカードのソフトウェアプログラムが最初に設計される。
【０００５】
一方において、パフォーマンスは時間に関してオペレーティングシステム、特にマイクロプロセッサの特性、システムルーティン等に依存するので、アプリケーションは時間の計算を目的としない。この問題は、アプレットなどのアプリケーションが独立したプラットフォームであると仮定されている、Ｊａｖａ（登録商標）カードのようなオープンオペレーティングシステムにおいて解決することは非常に困難である。
【０００６】
また他方において、下位レベルのサブプログラム（カーネル）は時間アスペクトから完全に切り離されているため、このようなプログラムがこれらの要求を送出する役割を果たすことは望ましいものではない。
このように、時間価値が、例えば専用非接触カードプロトコルなどのプロトコルの効率に直接リンクしていることから、時間管理に関して特定の通信プロトコルは非常に制限的である。
【０００７】
この問題を解決するため、待ち時間延長ＷＴＸ要求を管理する２つのタイプが従来技術より知られている。
第１のタイプにおいては、図1に示すように、カードにおけるアプリケーション層ＡＰ１の下に横たわるプロトコル層ＰＲ１より供給される待ち時間延長ＷＴＸ要求は、アプリケーション層ＡＰ１それ自身により管理される。このソフトウェアアーキテクチャはポータブルではない、すなわち、時間は、経験的時間カウントを有するサブプログラムＫ１（カーネル）に依存するものであり、また、このアーキテクチャは、アプリケーションが例えば複雑な暗号アルゴリズムのような長い処理手続きを有するサービスを呼び出す時に適用できず、また、待ち時間の持続時間などの特定のパラメータを考慮に入れておらず、かつまた、例えば専用非接触プロトコルに関連する、短い待ち時間の間のアプリケーションに対し非常に制限的である。
【０００８】
第２のタイプにおいては、図２に示すように、待ち時間延長ＷＴＸ要求は、プロトコル層ＰＲ２により、これらを管理するサブプログラム（カーネル）Ｋ２に供給される。この従来技術による第２タイプのソフトウェアアーキテクチャには、このアプリケーションのファンクションが少なくとも１つの外部エンティティによるアプリケーションのファンクションとは独立していることから、アプリケーションはオープンオペレーティングシステムにおける要件であるＷＴＸ要求の管理から解放されるという長所がある。さらに、このソフトウェアアーキテクチャは、処理の間にＷＴＸ要求を有する相当数のコールを挿入することによって、長い処理の実行を容易にする。
【０００９】
しかしながら、この第２ソフトウェアアーキテクチャは、サブプログラムにより各コールシーケンスと見なされるという困難さのために厳格でもなくまた完全でもない。また、この第２ソフトウェアアーキテクチャは、待ち時間などの特定のプロトコルパラメータを考慮に入れておらず、各サブプログラムに影響が出るおそれがある。
【００１０】
（発明の開示）
本発明は、この時間的制約からアプリケーション層を解放することにより、スマートカードにおける第１タイプに基づき、アプリケーションレベルにおいてソフトウェアアーキテクチャにおける時間管理を改良することを目的とする。
この目的を達成するために、通信プロトコル層にリンクしたアプリケーション層を有するスマートカードタイプのエンティティは、データがアプリケーション層にて処理されている過程にあるかぎり、プロトコル層を介してターミナルに伝送される待ち時間延長要求を、待ち時間の満了時にほぼ定期的に構築する、プロトコル層とインタフェース接続するタイムマネージャを含むことを特徴とする。
【００１１】
実際にタイムマネージャは時間カウント手段を含み、この時間カウント手段は、ターミナルによって伝送されたデータを有するかまたはこれを有しないコマンドを受信した後に、あるいはエンティティにより伝送されたデータを有する応答の後に起動し、そして、アプリケーション層からのデータを有するコマンドを待つ間、またはデータを有するかまたは有しない応答をターミナルへ伝送するほぼその時に動作を停止し、そして、ターミナルへの延長要求の伝送を生じさせる各待ち時間が満了するほぼその時に、停止し、そしてそれから再起動する。時間カウント手段は、例えば、プロトコル層や、サブプログラムのセットとは区別されスマートカードのマイクロプロセッサに統合される。
【００１２】
本発明によるアプリケーションレベルにおけるソフトウェアアーキテクチャにより、時間カウントは、アプリケーション層のベースタスクとしては実行されず、また、マイクロプロセッサのような、エンティティの中央処理装置（ＣＰＵ）によって定められた時間と相互作用しない。アプリケーション層はデータブロックの処理時間を考慮せず、プロトコル層に依存して、ターミナルを待ち状態にすることによってこの時間をターミナルにより管理する。よって、このプログラムに関連する処理時間を気にすることなく、プログラムはアプリケーション層において開発される。
【００１３】
本発明はまた、スマートカードタイプのエンティティにおいて通信プロトコル層にリンクしたアプリケーション層のレベルにおいて時間を管理する方法に関するものであり、この方法は、以下のステップを含むことを特徴とする。
アプリケーション層にリンクしたプロトコル層とインタフェース接続するタイムマネージャを提供し、
プロトコル層からターミナルに伝送される待ち時間延長要求をほぼ定期的に構築するように、ターミナルからの伝送データを有するあるいは有しないコマンドに応答して、あるいは、エンティティによってターミナルに伝送されたデータを有する応答の後に、プロトコル層によってタイムマネージャを起動し、
プロトコル層がデータを有するコマンドを待っているとき、あるいはプロトコル層がデータを有するあるいは有しない応答を伝送するほぼそのとき、タイムマネージャ停止する。
【００１４】
望ましくは、起動ステップは次の周期的ステップを含む。すなわち、
起動されたマネージャに含まれる時間カウント手段により待ち時間をカウントダウンし、
カウント手段を停止し、待ち時間が満了するほぼその時にマネージャにより待ち時間延長要求を構築し、
プロトコル層により、延長要求をターミナルに伝送し、そして、
カウント手段を起動する。
本発明の他の特徴および長所は、添付の図面を参考にしながら本発明のいくつかの望ましい実施形態を読み取ることによりさらに明確となろう。
【００１５】
（発明を実施するための最良の形態）
図3は、スマートカードＣＰにおいて、基底にある通信プロトコル層ＰＲと下位レベルサブプログラムおよびプログラミングツール（カーネル）Ｋとにリンクしたアプリケーション層ＡＰのレベルにおける、図1に示す第１タイプに基づくオペレーティングシステムのソフトウェアアーキテクチャを示したものである。スマートカードは、電気接点を有する、あるいは有しないシンプレックスリンクＬＩにより、カードリーダもしくは移動無線電話ターミナルといったようなターミナルＴＥに接続されている。
【００１６】
本発明によれば、タイムマネージャＧＤは待ち時間延長ＷＴＸ要求を制御するよう、プロトコル層ＰＲと直接インタフェース接続する。タイムマネージャは、スマートカードマイクロプロセッサ内において、あるいはスマートカードマイクロプロセッサと連結して、例えばクロックパルスにより測定を行い、かつハードウェアに関して実行するタイマーＣＤといったような、専用タイムカウンティングリソースを使用する。通信プロトコル層は、ターミナルＴＥといったような他のエンティティのプロトコル層とのコマンドの交換、および応答を管理する。通信プロトコルは例えばＩＳＯ国際標準規格７８１６−３に基づく“Ｔ＝１”シンプレックス非同期ブロック通信プロトコルである。
【００１７】
本発明に基づくソフトウェアアーキテクチャは、要求を、自動的に伝送されたプロトコルコマンドプリミティブに同期させ、それによりプロトコルコンフリクトを回避する目的において、特定のソフトウェア設計を必要とする。なぜならば、一方において、データ処理プロセス開始時に、アプリケーション層ＡＰは、データの受信と新しいデータの送信との間における処理時間を管理せず、基底にあるプロトコル層ＰＲのプリミティブに永続的に依存するためである。また他方において、こうした時間に気づかないアプリケーション層におけるデータ処理時間を、本発明に基づいてそれ自身が監視するプロトコル層ＰＲは、通信プロトコルを混乱させることなくＷＴＸ要求の構築および伝送を制御しなくてはならない。
【００１８】
タイムマネージャＧＤおよびプロトコル層ＰＲ間のインターフェーシングは、従来技術と比較して、プロトコル層にいくらかの修正を必要とする。
プロトコル層ＰＲはタイムマネージャＧＤにプロトコルパラメータを供給する。このプロトコルパラメータとは特に、プロトコルデータユニットとしてカードにおいて受信されたデータフィールド（バイトシーケンス）を有する、あるいはこれを有しないコマンドと、カードによって伝送されるデータフィールドを有する、あるいはこれを有しない応答との間の最大時間ＢＷＴ（ブロック待ち時間）などの待ち時間に関連するものである。マネージャＧＤに含まれるタイマーＣＤは、プロトコル層ＰＲより供給されるこれらのパラメータによって初期化される。
【００１９】
通信プロトコルのオペレーションシーケンスに基づいて、プロトコル層ＰＲは、タイマーＣＤの起動と、ゆえにプロトコルコンフリクトを回避するタイムマネージャＧＤによるＷＴＸ要求の構築を制御する。このように、タイマーＣＤにおける所定数のクロックパルスのカウントダウンもしくはカウントアップにより、後者はアプリケーション層で必要とされる処理時間を正確に知ることなしに、プロトコル層ＰＲに関連する通信サービスを呼び出すことでＷＴＸ要求を作り出させる。
【００２０】
図4に示した時間管理方法例では、アプリケーション層ＡＰにより処理および構築されるプロトコルデータユニットＡＰＤＵの主な4タイプが示されている。すなわち、データを有しないコマンドＣＯＭ、リンクＬＩを介してターミナルＴＥよりカードＣＰに伝送されるデータを有するコマンドＣＤＯ、データを有しない応答ＲＥＳ、およびリンクＬＩを介してカードＣＰよりターミナルＴＥに伝送されるデータを有する応答ＲＤＯの4タイプである。したがって、アプリケーション層ＡＰのレベルで時間を管理する方法は、これら4タイプのプロトコルユニット、ＣＯＭ、ＣＤＯ、ＲＥＳ、およびＲＤＯに関連する４つのステップＡ１乃至Ａ４から成る。これら４つのプロトコルユニットの各々は、初期設定の後、プロトコル層ＰＲおよびタイムマネージャＧＤ間において相互動作を開始する。初期設定の間、とりわけ待ちデータに関連し、プロトコル層ＰＲにて確定された上述のプロトコルパラメータはマネージャＧＤに伝送され、それに従いタイマーＣＤの設定がなされる。
【００２１】
アプリケーション層ＡＰにおけるステップＡ１乃至Ａ４の循環シーケンスによって、とりわけ伝送されるプロトコルユニットと受信されるプロトコルユニット間のコンフリクトを確実になくすことが出来る。
さらに、アプリケーション層ＡＰは、後述するタイムマネージャにおけるステップの循環とは全く関係のない機能を有する。
【００２２】
データを有しないコマンドＣＯＭがアプリケーション層において受信されることになると（ステップＡ１）、プロトコル層ＰＲは、ステップＰ１においてコマンドの受信を監視し、そしてこれを管理する。
ＣＯＭコマンドが検出されると、プロトコル層ＰＲは、ステップＧ１においてタイムマネージャＧＤを起動するための手続きを呼び出す。タイムマネージャにおいて、起動ステップＧ１はステップＧ２においてタイマーＣＤを初期化する。この初期化は例えば、それのカウントＣＩを、ＣＯＭコマンドなどの受信プロトコルユニットおよびスマートカードＣＰより伝送されたプロトコルユニット間の最大時間ＢＷＴ（ブロック待ち時間）を表す数［ＢＷＴ］に等しくなるように設定することによってなされる。
【００２３】
次に、ステップＧ３において、クロックパルスのカウントダウンが開始される。各クロックパルスに反応して、中間ステップＧ４において周期的に、マネージャＧＤは、カウンターＣＤのカウントＣＩと、最大時間ＢＷＴ（ブロック待ち時間）と比較して小さいという時間を表した、ｄＴ＜＜［ＢＷＴ］などのパラメータｄＴとを比較して、ＷＴＸ要求を伝送する。このように、ステップＧ４において、カウントＣＩがｄＴよりも大きい場合にかぎり、クロックパルスのカウントダウンは続けられる。その後ステップＡ３およびステップＡ４に関連して分かるように、アプリケーション層ＡＰがＣＯＭコマンドに対するＲＥＳあるいはＲＤＯ応答を作り出さないかぎり、カウントダウンは続行される。
【００２４】
ステップＧ４において、カウントＣＩがｄＴに達すると、ステップＧ５においてカウンターＣＤは停止する。マネージャＧＤは、次のステップＧ６において、プロトコル層ＰＲに適用される待ち時間延長ＷＴＸ要求を構築する。そして、ステップＧ７において、ステップＧ３およびステップＧ４の循環とともに継続するステップＧ２でそのカウントがＣＩ＝［ＢＷＴ］にリセットされるカウンターＣＤをもう一度起動する。ステップＰ２においてＷＴＸ要求を構築し、そしてターミナルＴＥにこれを伝送した後、応答が伝送されないかぎり、プロトコル層ＰＲは、ＷＴＸ要求生成サイクルＧ２からＧ７を維持するアプリケーション層ＡＰにこれを知らせる。
【００２５】
データを有するコマンドＣＤＯがアプリケーション層において受信されることになると（ステップＡ２）、ステップＧ８において、プロトコル層ＰＲはマネージャＧＤを停止するための手続きを呼び出す。これは、ステップＧ９においてマネージャＧＤが停止し、それによって、おそらく伝送データＲＤＯを有する応答に続いてカウントダウンを行っている過程のカウンターＣＤのカウントダウンを中断させるためのものである。プロトコル層ＰＲはまた、ステップＰ３においてＣＤＯコマンドの受信を監視し、これを管理する。
【００２６】
ステップＰ３でＣＤＯコマンドが検出された場合、プロトコル層ＰＲは、ステップＧ２でタイマーＣＤを初期化する、ステップＧ１と同一ステップでタイムマネージャＧＤを起動するための手続きを呼び出し、そして、カウンターＣＤにおけるカウントダウンを中断するＲＥＳあるいはＲＤＯ応答が作り出されないかぎり、おそらくステップＰ２において構築されたＷＴＸ要求の伝送により、マネージャＧＤにおいてすでに記載したステップＧ２からステップＧ７を開始する。
【００２７】
データを有しない応答ＲＥＳがアプリケーション層によって伝送されることになると（ステップＡ３）、プロトコル層ＰＲは、ステップＧ８においてマネージャＧＤを停止し、ステップＧ９でカウンターを停止するための手続きを呼び出す。なぜならば、カウンターＣＤはＣＯＭあるいはＣＤＯコマンドを受信することにより開始し、かつ、アプリケーション層がこの最後のコマンドによって生成された処理を完了しない限り、循環カウントダウン状態を維持するからである。ほぼ同時に、ステップＰ４において、プロトコル層ＰＲはそれを隠蔽することによりＲＥＳ応答を伝送する。
【００２８】
同様に、データを有する応答ＲＤＯがアプリケーション層により伝送されることになると（ステップＡ４）、ステップＧ８およびステップＧ９においてプロトコル層ＰＲはマネージャＧＤを停止するための手続きをほぼ同時に呼び出し、そして、ステップＰ５において、プロトコル層ＰＲによって隠蔽されたＲＤＯ応答を伝送する。
【００２９】
しかし、ステップＧ２からステップＧ７に基づいてプロトコル層ＰＲがタイムマネージャＧＤを起動するための手続きを呼び出している間、ステップＰ５にステップＧ１が続く。この理由は、最終的なＲＥＳ応答が伝送されないかぎり、データを有する少なくとも１つのコマンドＣＤＯにより、ターミナルによって伝送されるデータを待ちながら上記処理を継続するため、１つあるいはそれ以上のＷＴＸ要求を伝送することにより時間延長を依然必要とするアプリケーション層において、データを有する応答ＲＤＯは必ずしも処理の終了ではないためである。
【図面の簡単な説明】
【図１】  従来技術の第１タイプに基づくスマートカードのアプリケーションレベルにおけるソフトウェアモジュラーアーキテクチャの概略図である。
【図２】  従来技術の第２タイプに基づくスマートカードのアプリケーションレベルにおけるソフトウェアモジュラーアーキテクチャの概略図である。
【図３】  本発明に基づくスマートカードのアプリケーションレベルにおけるソフトウェアモジュラーアーキテクチャの概略図である。
【図４】  本発明に基づくソフトウェアアーキテクチャにおいて、プロトコル層とタイムマネージャ間における時間を管理するアルゴリズムを示す図である。
【図１】
0003764679.tif 000002
【図２】
0003764679.tif 000003
【図３】
0003764679.tif 000004
【図４】
0003764679.tif 000005