(57)【要約】【課題】複数チャネルでの確実なアクセス制御を実現でき、別のロジカルチャネルとカレント設定が競合する場合のコマンドに対する処理内容をアプリケーションごとに運用形態などに応じて設計できるＩＣカード１を提供できる。【解決手段】ＩＣカード１において、オペレーティングシステム４１がチャネル管理テーブル４２ａにより各ファイルに対する各チャネルのアクセス順番を管理し、アプリケーションがチャネル管理テーブル４２ａにより管理されるアクセス順番に基づいて各ファイルへのアクセスを制御する。上記チャネル管理テーブル４２ａでは、各ロジカルチャネルが各ファイルをカレントに設定した順番をアクセス順番として記憶する。特定のロジカルチャネルによるカレント設定が解除された場合、テーブル更新機能４２ｂは、上記チャネル管理テーブル４２ａに記憶されている当該ロジカルチャネルを削除し、当該ロジカルチャネル以降のアクセス順番であった各ロジカルチャネルのアクセス順番を繰り上げる。【選択図】      図１
2010146410.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムプログラムを記憶する第１の記憶手段と、アプリケーションプログラムを記憶する第２の記憶手段と、ファイルを記憶する第３の記憶手段と、前記オペレーティングシステムプログラムおよび前記アプリケーションプログラムを実行する制御手段とを有する携帯可能電子装置であって、
前記オペレーティングシステムプログラムは、
前記第３の記憶手段に記憶しているファイルへアクセスするための複数のチャネルを管理するチャネル管理機能と、
前記チャネル管理機能により管理される各チャネルが前記第３の記憶手段に記憶しているファイルをカレント状態とした順番をアクセス順番として管理するアクセス順番管理機能と、
前記チャネル管理機能により管理される第１のチャネルが前記第３の記憶手段に記憶しているファイルに対するカレント状態を解除した場合、前記第１のチャネルを当該ファイルに対するアクセス順番の管理対象から外し、前記第１のチャネルよりもアクセス順番が後であった全チャネルのアクセス順番を繰り上げるアクセス順番更新機能と、
前記第３の記憶手段に記憶しているファイルに対するチャネルのアクセス順番を示す情報を前記第２の記憶手段に記憶しているアプリケーションプログラムへ提供する提供機能と、を有し、
前記アプリケーションプログラムは、
前記オペレーティングシステムプログラムから提供される前記ファイルに対するチャネルのアクセス順番に基づいて、当該アプリケーションプログラムに割り当てられているチャネルでの前記ファイルに対するアクセスを制御するアクセス制御機能を有する、
ことを特徴とする携帯可能電子装置。
【請求項２】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番に応じて、前記ファイルに対するアクセスを制限する、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項３】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位である場合に、前記ファイルに対して制限無しでアクセスする、
ことを特徴とする前記請求項２に記載の携帯可能電子装置。
【請求項４】
前記アプリケーションプログラムのアクセス制御機能は、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位である場合には前記ファイルに対して制限無しでアクセスし、それ以外の場合には前記ファイルに対して一律の制限を加える、
ことを特徴とする前記請求項１に記載の携帯可能電子装置。
【請求項５】
前記アプリケーションプログラムのアクセス制御機能は、前記ファイルに対してファイルの状態を変更する処理を実行する場合、当該アプリケーションプログラムに割り当てられているチャネルの前記ファイルに対するアクセス順番が最上位でなければ、前記ファイルへのアクセスを禁止とする、
ことを特徴とする前記請求項１乃至４の何れか１項に記載の携帯可能電子装置。
【請求項６】
前記アプリケーションプログラムのアクセス制御機能は、前記ファイルに対してファイルの状態を変更させない処理を実行する場合、前記ファイルに対するアクセス順番にかかわらず、前記ファイルへのアクセスを許可する、
ことを特徴とする前記請求項１乃至５の何れか１項に記載の携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、たとえば、データの書込み、書換え可能な不揮発性メモリおよびＣＰＵなどの制御素子を有したモジュールを内蔵し、外部から入力されるコマンドに対応した処理を実行するＩＣカードなどの携帯可能電子装置に関する。
【背景技術】
【０００２】
従来、携帯可能電子装置としては、たとえば、メモリやＣＰＵなどの機能を有したＩＣモジュールがプラスチック板などで構成される筐体内に埋設されているＩＣカードがある。このようなＩＣカードでは、外部装置からのコマンドに応じて書き換え可能な不揮発性メモリにデータを書き込んだり、不揮発性メモリからデータを読み出したりするようになっている。このようなＩＣカードは、セキュリティの重要性から、入退出管理、クレジットカード、携帯電話機、電子商取引など様々な分野で利用されている。さらに、近年では、１つのＩＣカードを様々な用途で利用するために、複数のアプリケーションを動作させる運用形態も多くなってきている。
【０００３】
一般に、ＩＣカードと上位装置（端末）のデータの送受信は、ロジカルチャネルと呼ばれる「通信のためのチャネル」を経由して実施される。従来、一般的な運用形態では、ＩＣカードと端末とが１対１で通信を行うことが多いため、１つのチャネルのみで処理が完結することが多い。ただし、近年では、１つのＩＣカードと複数の端末とで通信を行うケースが増えてきている。これは、ＩＣカードの基本性能が向上したこと、あるいは、外部との複数のインターフェース（接触型、非接触型、あるいは、高速タイプの接触型など）を有するＩＣカードが多くなってきていることなどが要因である。複数の端末と通信を行う場合、ＩＣカードは、複数のチャネルを開設し、それぞれのチャネルがそれぞれの対象ファイル（あるいはアプリケーション）にアクセスする制御を行う。
【０００４】
しかしながら、ＩＣカードにおける各ファイルへのアクセスは、複数のチャネルごとに管理されていないのが現状である。つまり、従来のＩＣカードでは、複数のチャネルから各ファイルに無条件にアクセスことが可能となっている。このように複数のチャネルから無条件で各ファイルにアクセス可能であると、ＩＣカード内で、様々が問題が発生することがある。たとえば、第１のチャネルでアクセス中のファイルが第２のチャネルで書換えられてしまうようなことが起こりうる。このような現象が起こると、第１のチャネルで期待された処理が実現できなくなってしまうという問題がある。
【特許文献１】特開２００５−１１１４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明は、複数のチャネルでのアクセス制御を確実かつ効率的に行うことができる携帯可能電子装置を提供することを目的する。
【課題を解決するための手段】
【０００６】
この発明の一形態としての携帯可能電子装置は、オペレーティングシステムプログラムを記憶する第１の記憶手段と、アプリケーションプログラムを記憶する第２の記憶手段と、ファイルを記憶する第３の記憶手段と、前記オペレーティングシステムプログラムおよび前記アプリケーションプログラムを実行する制御手段とを有するものであって、前記オペレーティングシステムプログラムは、前記第３の記憶手段に記憶しているファイルへアクセスするための複数のチャネルを管理するチャネル管理機能と、前記チャネル管理機能により管理される各チャネルが前記第３の記憶手段に記憶しているファイルをカレント状態とした順番をアクセス順番として管理するアクセス順番管理機能と、前記チャネル管理機能により管理される第１のチャネルが前記第３の記憶手段に記憶しているファイルに対するカレント状態を解除した場合、前記第１のチャネルを当該ファイルに対するアクセス順番の管理対象から外し、前記第１のチャネルよりもアクセス順番が後であった全チャネルのアクセス順番を繰り上げるアクセス順番更新機能と、前記第３の記憶手段に記憶しているファイルに対するチャネルのアクセス順番を示す情報を前記第２の記憶手段に記憶しているアプリケーションプログラムへ提供する提供機能と、を有し、前記アプリケーションプログラムは、前記オペレーティングシステムプログラムから提供される前記ファイルに対するチャネルのアクセス順番に基づいて、当該アプリケーションプログラムに割り当てられているチャネルでの前記ファイルに対するアクセスを制御するアクセス制御機能を有する。
【発明の効果】
【０００７】
この発明によれば、複数のチャネルでのアクセス制御を確実かつ効率的に行うことができる携帯可能電子装置を提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、この発明を実施するための最良の形態について図面を参照して説明する。  
図１は、この実施の形態に係る携帯可能電子装置としてのＩＣカード１のハードウエア構成を概略的に示すものである。  
図１に示すように、ＩＣカード１は、ＣＰＵ（セントラル・プロセッシング・ユニット）１１、ＲＯＭ（リード・オンリ・メモリ）１２、ＲＡＭ（ランダム・アクセス・メモリ）１３、通信ユニット（ＵＡＲＴ）１４、不揮発性メモリ（ＮＶ（ＥＥＰＲＯＭ））１５、および、コプロセッサ（Ｃｏ−Ｐｒｏｃｅｓｓｏｒ）１６などを有している。
【０００９】
上記ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、通信ユニット１４、コプロセッサ１５および不揮発性メモリ１６は、ＩＣチップなどにより一体的に形成されたモジュールＣａにより構成される。このモジュールＣａは、当該ＩＣカード１を形成する筐体Ｃの内部に埋設される。すなわち、上記ＩＣカード１は、モジュールＣａが埋設された筐体Ｃにより構成されている。  
また、上記ＩＣカード１は、上位装置としての上記ＩＣカード処理装置２から電力などの供給を受けた際、活性化し（動作可能な状態となり）、上記ＩＣカード処理装置２からのコマンドに応じて動作するようになっている。
【００１０】
上記ＣＰＵ１１は、全体的な管理や制御を司るものである。上記ＣＰＵ１１は、処理手段や判断手段として機能する。上記ＣＰＵ１１は、制御プログラム等に基づいて動作することにより種々の処理を行う。上記ＲＯＭ１２は、制御用プログラムや制御データなどが予め格納されている不揮発性メモリである。上記ＲＡＭ１３は、ワーキングメモリとして機能する揮発性のメモリである。
【００１１】
上記通信ユニット１４は、通信手段として機能し、上位装置としてのＩＣカード処理装置２とのデータ通信を制御するものである。また、上記通信ユニット１４は、上記ＩＣカード１が動作するための電源を受給する手段としても機能する。上記コプロセッサ１５は、暗号化あるいは復号化などの演算の補助を行うものである。上記不揮発性メモリ１６は、各種データやアプリケーション（アプリケーションプログラム）などを記憶する書き換え可能な不揮発性メモリである。なお、上記不揮発性メモリ１６に記憶されるデータの構造については、後で詳細に説明する。
【００１２】
また、上記通信ユニット１４は、ＩＣカード１の通信方式に応じた構成を有している。たとえば、上記ＩＣカード１の通信方式が接触式の通信方式である場合、上記通信ユニット１４は、上位装置としてのＩＣカード処理装置２のコンタクト部と物理的に接触するためのコンタクト部などにより構成される。この場合、ＩＣカード１は、ＩＣカード処理装置２と物理的に接触している上記通信ユニット１４によりＩＣカード処理装置２からの電源を受給する。つまり、上記ＩＣカード１が接触式ＩＣカードである場合、上記ＩＣカード１は、通信ユニット１４としてのコンタクト部を介してＩＣカード処理装置２からの動作電源および動作クロックの供給を受けて活性化される。
【００１３】
また、上記ＩＣカード１の通信方式が非接触式（無線式）の通信方式である場合、上記通信ユニット１４は、電波の送受信を行うアンテナおよび通信を制御する通信制御部等により構成される。この場合、上記ＩＣカード１は、通信ユニット１４により受信した電波から図示しない電源部により動作電源および動作クロックを生成するようになっている。つまり、上記ＩＣカード２が非接触式ＩＣカードである場合、上記ＩＣカード２は、通信ユニット１４としてのアンテナおよび通信制御部等を介してＩＣカード処理装置２からの電波を受信し、その電波から図示しない電源部により動作電源および動作クロックを生成して活性化するようになっている。
【００１４】
次に、上記不揮発性メモリ１６に記憶されるデータの構成について説明する。  
上記不揮発性メモリ１６には、たとえば、ＩＳＯ／ＩＥＣ７８１６において定義されたファイル構造で各種のデータが記憶される。たとえば、上記不揮発性メモリ１６には、複数階層構造（ツリー構造）で管理されるデータファイルとしてのファイル（ＥＦ：Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）、および、データフォルダとしてのファイル（ＤＦ：Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）が記憶されている。
【００１５】
図２は、上記不揮発性メモリ１６に記憶されているファイル構造の例を示す図である。  
図２に示す例では、最上位がマスタファイルとしてのファイル（ＭＦ：Ｍａｓｔｅｒ  Ｆｉｌｅ）２１である。上記ＭＦ２１の配下には、フォルダとしてのＤＦ（アプリケーションＡ）２２Ａ、および、フォルダとしてのＤＦ（２アプリケーションＢ）２２Ｂが設けられている。さらに、上記ＤＦ（アプリケーションＡ）２２Ａの配下には、データの格納などに使用されるＥＦ（ファイルＡ１）２３Ａ１およびＥＦ（ファイルＡ２）２３Ａ２が設けられている構成になっている。さらに、上記ＤＦ（アプリケーションＢ）２２Ｂの配下には、データの格納などに使用されるＥＦ（ファイルＢ１）２３Ｂ１が設けられている構成になっている。このようなファイル構造では、各種のデータは、データファイルとしてのＥＦに記憶される。
【００１６】
次に、上記ＩＣカード１におけるソフトウエア構成について説明する。  
上記ＩＣカード１では、上述したように、ＣＰＵ１１がＲＯＭ１２あるいは不揮発性メモリ１６に記憶されているプログラムを実行することにより、種々の処理を実現している。すなわち、上記ＩＣカード１では、ＣＰＵ１１が実行するソフトウエアによってＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１６、ＵＡＲＴ１４あるいはコプロセッサ１５などを制御することにより種々の処理を実現している。
【００１７】
図３は、上記ＩＣカード１におけるソフトウエア構成を模式的に示す図である。  
上記ＩＣカード１におけるソフトウエアは、ハードウエア（Ｈ／Ｗ）層３１、ＯＳ（オペレーティングシステム）層３２、および、アプリケーション層３３から構成される。図３に示すように、上記ＩＣカード１では、上記アプリケーション層３３が最上位に位置し、上記ＯＳ層３２が上記Ｈ／Ｗ層３１の上位に位置するような構造となっている。
【００１８】
上記Ｈ／Ｗ層３１は、上記ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＵＡＲＴ１４、コプロセッサ１５、不揮発性メモリ１６などのハードウエアから構成される。上記Ｈ／Ｗ層３１の各ハードウエアは、上記ＯＳ層３２からの処理要求に応じて処理を実行したり、実行した処理の結果を上記ＯＳ層３２に送ったりするものである。
【００１９】
上記ＯＳ層３２は、当該ＩＣカード１における基本的な制御を実行するためのプログラムとしてのカードＯＳ（オペレーティングシステム）４１を有する。なお、上記ＯＳ層３２は、環境設定モジュール、アプリケーションインタフェース群などのモジュールなどを有するようにしても良い。上記カードＯＳ４１としてのソフトウエアは、当該ＩＣカードの基本的な動作を司るプログラムであり、上記Ｈ／Ｗ層３１の各ハードウエアを制御したり、各ハードウエアからの処理結果などの情報を受けて動作したりするプログラムである。上記カードＯＳ４１としてのソフトウエアは、ＩＣカード内における不揮発性のメモリに予め記憶されているものであり、たとえば、上記ＲＯＭ２３などに記憶される。
【００２０】
また、上記カードＯＳ４１は、当該ＩＣカード１の基本動作を実現するためのＨ／Ｗ層の各ハードウエアを制御する基本機能に加えて、ロジカルチャネル管理機能４２を有している。ロジカルチャネルとは、上記不揮発性メモリ１６内の各ファイルあるいは各アプリケーションに対してアクセスするための論理的なチャネルを管理するものである。たとえば、複数の通信方式で通信を行っている場合、各通信方式ごとにロジカルチャネルが割り当てられる。このようなロジカルチャネルによる制御を行うことにより、ＩＣカード１では、各チャネルごとに複数系列のコマンド群を処理することができる。たとえば、アプリケーションＡでは、第１のチャネルでコマンド処理を実行し、アプリケーションＢでは、第２のチャネルでコマンド処理を実行するという処理が可能となっている。
【００２１】
上記ロジカルチャネル管理機能４２は、上記のようなロジカルチャネルを管理する機能である。すなわち、上記ロジカルチャネル管理機能４２は、ロジカルチャネルのオープン及びクローズを制御したり、アプリケーションプログラムに対してロジカルチャネルを割り当てたり、チャネル管理テーブル４２ａを用いてファイルあるいはアプリケーションに対する各ロジカルチャネルのアクセス順番を管理したりするものである。また、上記チャネル管理テーブル４２ａに記憶される情報は、各ロジカルチャネルでカレントとして設定するファイルあるいはアプリケーションプログラムなどの変更に応じて、テーブル更新機能４２ｂにより更新される。
【００２２】
上記アプリケーション層３３は、各種の処理を実現するためのプログラムとしての各種のアプリケーション（アプリケーションＡ、アプリケーションＢ、…）から構成される。上記各アプリケーションとしてのソフトウエアは、当該ＩＣカード１の運用形態に応じた各種の処理を実現するためのプログラムおよびデータなどにより構成される。上記アプリケーションとしてのソフトウエアは、予めＩＣカード１内の不揮発性のメモリ１６に記憶されたり、適宜外部装置からダウンロードしてＩＣカード１内の不揮発性メモリ１６に記憶されたりするものである。  
すなわち、上記Ｈ／Ｗ層３１の各ハードウエアは、上記ＯＳ層３２のカードＯＳ４１により制御される。上記ＯＳ層３２のカードＯＳ４１は、上記アプリケーション層３３の各アプリケーションから要求に応じて各ハードウエアの動作を制御する。また、上記Ｈ／Ｗ層３１の各ハードウエアによる処理結果等は、上記ＯＳ層３２のカードＯＳ４１を介してアプリケーションへ供給される。たとえば、外部装置からのコマンドは、上記Ｈ／Ｗ層３１のハードウエアにより受信され、上記ＯＳ層３２のカードＯＳ４１へ供給される。上記カードＯＳ４１では、上記Ｈ／Ｗ層３１で受信したコマンドを選択的にアプリケーション層３３における特定のアプリケーションへ供給する。
【００２３】
たとえば、上記Ｈ／Ｗ層３１で外部装置からアプリケーション選択コマンドを受信した場合、上記カードＯＳ４１は、上記アプリケーション層３３から当該アプリケーション選択コマンドで指定されたアプリケーションをカレント状態とする。この状態において上記Ｈ／Ｗ層３１で外部装置からコマンドを受信した場合、上記カードＯＳ４１は、当該コマンドをカレント状態のアプリケーションへ供給する。これにより、アプリケーション層３３の各アプリケーションは、上記ＯＳ層３２のカードＯＳ４１から供給されるコマンドに応じた処理を実行する。すなわち、上記カードＯＳ４１は、カレント状態のアプリケーション（以下、カレントアプリケーションとも称する）を指定し、カレントアプリケーションに対してコマンドを供給するようになっている。
【００２４】
次に、上記ロジカルチャネル管理機能４２について説明する。  
図４、図５及び図６は、上記チャネル管理テーブル４２ａの構成例を示す図である。  
すなわち、図４、図５及び図６に示すように、上記チャネル管理テーブル４２ａは、各アプリケーションおよび各ファイルごとに各ロジカルチャネルのアクセス順番が格納されている。つまり、上記チャネル管理テーブル４２ａに格納されるアクセス順番は、各ロジカルチャネルが各ファイルあるいは各アプリケーションをカレントに設定した順番（アクセスした順番）を示す情報である。
【００２５】
上記チャネル管理テーブル４２ａに格納される情報は、上記テーブル更新機能４２ｂにより適宜更新される。たとえば、新たなロジカルチャネルをオープンした場合、上記テーブル更新機能４２ｂは、当該ロジカルチャネルでカレントに設定するファイルあるいはアプリケーションに追加する。この場合、カレントに設定するファイルあるいはアプリケーションに対する当該ロジカルチャネルのアクセス順番は、アクセス中のロジカルチャネルの後（つまり、アクセス順番が最後尾）とする。また、既存のロジカルチャネルをクローズした場合、上記テーブル更新機能４２ｂは、当該ロジカルチャネルをチャネル管理テーブル４２ａから削除する。この場合、上記テーブル更新機能４２ｂは、当該ロジカルチャネルをチャネル管理テーブル４２ａから削除するとともに、当該ロジカルチャネルよりも後のアクセス順番となっている全ロジカルチャネルのアクセス順番を繰り上げる。
【００２６】
まず、上記テーブル更新機能４２ｂがチャネル管理テーブル４２ａに格納されるアクセス順番にロジカルチャネルを追加する処理について説明する。
【００２７】
図４に示すチャネル管理テーブル４２ａでは、アプリケーションＡは、ロジカルチャネル「ｃｈ．１」、「ｃｈ．３」、「ｃｈ．０」の順にカレント設定され、ファイルＡ１は、ロジカルチャネル「ｃｈ．１」、「ｃｈ．３」の順にカレント設定されていることを示している。すなわち、図４に示すチャネル管理テーブル４２ａでは、ロジカルチャネル「ｃｈ．１」は、アプリケーションＡとファイルＡ１とをそれぞれカレント設定していることを示している。また、図４に示すチャネル管理テーブル４２ａにおいて、アプリケーションＢは、ロジカルチャネル「ｃｈ．２」でカレント設定されている。
【００２８】
チャネル管理テーブル４２ａが図４に示すような状態において、ロジカルチャネル「ｃｈ．２」でアプリケーションＡのファイルＡ１を選択する処理（ロジカルチャネル「ｃｈ．２」でアプリケーションＡ及びファイルＡ１をカレント設定する処理）を実施したものとする。この場合、上記テーブル更新機能４２ｂは、チャネル管理テーブル４２ａの状態を図５に示すような状態に遷移させる。
【００２９】
すなわち、ロジカルチャネル「ｃｈ．２」のカレントファイルをアプリケーションＡのファイルＡ１にする場合、上記テーブル更新機能４２ｂは、上記チャネル管理テーブル４２ａにおけるアプリケーションＢに対するアクセス順番からロジカルチャネル「ｃｈ．２」を削除すると共に、チャネル管理テーブル４２ａにおけるアプリケーションＡ及びファイルＡ１に対するアクセス順番の最後尾にそれぞれロジカルチャネル「ｃｈ．２」を追加する。これにより、チャネル管理テーブル４２ａは、図５に示すように、アプリケーションＡ及びファイルＡ１を最後にカレントに設定したロジカルチャネルが「ｃｈ．２」であることを示す状態となる。図５に示すようなチャネル管理テーブル４２ａによれば、ロジカルチャネル「ｃｈ．２」のファイルＡ１へのアクセス順番は、ロジカルチャネル「ｃｈ．１」及び「ｃｈ．３」の次であることが判別できる。
【００３０】
次に、上記テーブル更新機能４２ｂがチャネル管理テーブル４２ａに格納されるアクセス順番からロジカルチャネルを削除する処理について説明する。  
ここでは、上記チャネル管理テーブル４２ａが図５に示すような状態において、ロジカルチャネル「ｃｈ．１」をクローズする処理が実施される場合を想定するものとする。この場合、上記テーブル更新機能４２ｂは、クローズされるロジカルチャネル「Ｃｈ．１」を上記チャネル管理テーブル４２ａから削除する（ロジカルチャネル「Ｃｈ．１」を管理対象から外す）ことにより、チャネル管理テーブル４２ａの状態を図６に示すような状態に遷移させる。
【００３１】
すなわち、ロジカルチャネル「ｃｈ．１」をクローズする場合、上記テーブル更新機能４２ｂは、チャネル管理テーブル４２ａにおけるロジカルチャネル「ｃｈ．１」を削除すると共に、ロジカルチャネル「ｃｈ．１」以外に続く各ロジカルチャネルのアクセス順番をそれぞれ繰り上げる。たとえば、図５に示すチャネル管理テーブル４２ａでは、アプリケーションＡ及びファイルＡ１に対するアクセス順番が最上位のロジカルチャネル「ｃｈ．１」が削除される。このため、上記チャネル管理テーブル４２ａは、図６に示すように、アプリケーションＡに対するアクセス順番がロジカルチャネル「Ｃｈ．３」、「Ｃｈ．０」、「Ｃｈ．２」となり、ファイルＡ１に対するアクセス順番がロジカルチャネル「Ｃｈ．３」、「Ｃｈ．２」となる。
【００３２】
上記のように、チャネル管理テーブル４２ａにおいて、各アプリケーション及び各ファイルに対する各ロジカルチャネルのアクセス順番は、各ロジカルチャネルがカレントに設定した順番を示すものである。ロジカルチャネルがクローズされた場合、あるいは、ロジカルチャネルのカレント設定が変更された場合、各ロジカルチャネルに与えられていたアクセス順番は変更される。言い換えると、本ＩＣカード１では、特定のロジカルチャネルに対してクローズ及びオープン、あるいは、各ロジカルチャネルのカレント設定の変更を行うことにより、チャネル管理テーブル４２ａにおける各ロジカルチャネルのアクセス順番を変更することが可能である。
【００３３】
すなわち、特定のロジカルチャネルがクローズされた場合、上記チャネル管理テーブル４２ａでは、クローズされたロジカルチャネルが管理対象から除外され、それ以外の各ロジカルチャネルのアクセス順番が繰り上がる。これにより、ロジカルチャネルがクローズされた場合であっても、他のロジカルチャネルでのアプリケーションあるいはファイルに対するアクセスに矛盾が生じることのない管理を実現できる。言い換えると、特定のロジカルチャネルに対してクローズとオープンとを行うことにより、当該ロジカルチャネルのアクセス順番を最後尾にすることが可能となっている。
【００３４】
次に、ＩＣカード処理装置２からのコマンドに対するＩＣカード１における処理について説明する。  
上記のようなチャネル管理テーブル４２ａによって、上記カードＯＳ４１のロジカルチャネル管理機能４２では、各アプリケーションに処理を実施しているチャネル番号を通知したり、各ファイルあるいは各アプリケーションに対する各ロジカルチャネルの優先権（アクセス順序）を通知したりする。これにより、コマンドを受けた各アプリケーションでは、カードＯＳ４１から提供される優先権を示す情報に基づいて、当該コマンドに対する処理内容を決定することが可能となる。
【００３５】
各アプリケーションでは、カードＯＳ４１を介してＩＣカード処理装置２からのコマンドが与えられる。この場合、アプリケーションは、自身のロジカルチャネルの優先順位に基づいて受信したコマンドに対する処理を実行するか否かを判断する。さらに、各アプリケーションでは、自身のロジカルチャネルの優先順位と受信したコマンドの種類とに基づいて、当該コマンドに対する処理を実行するか否かを判断するようにしても良い。言い換えると、受信したコマンドを実行するか否かを判断するか否かは、各アプリケーションがカードＯＳ４１から提供されるロジカルチャネルのアクセス順序（優先権）を示す情報により決定するようになっている。
【００３６】
たとえば、コマンドを受信したアプリケーションでは、自身のロジカルチャネルの優先順位が最上位である場合、全てのコマンドに対する処理を実行可を判断するようにする。また、コマンドを受信したアプリケーションでは、自身のロジカルチャネルの優先順位が最上位でない場合、受信したコマンドがファイルの状態を変更するコマンド（たとえば、書換えあるいは削除などのコマンド）に対する処理を実行不可と判断し、受信したコマンドがファイルの状態を変更しないコマンド（たとえば、読出しなどのコマンド）に対する処理を実行可と判断するようにする。
【００３７】
上記のように、受信したコマンドに対する処理内容（実行の可否）は、アプリケーションが決定ようにすることができる。従って、各アプリケーションにより実現される処理は、上述した例にかかわらずに、以下のような種々の形態が可能である。  
たとえば、特定のアプリケーション（最優先とするアプリケーション）は、ロジカルチャネルの優先順位によらずに、常に全てのコマンドに対する処理を実行するようにしても良い。また、受信したコマンドの種類によらずに、最上位のロジカルチャネルでなければ、全てのコマンドに対する処理を実行しないようにしても良い。さらには、たとえば、履歴情報をレコード単位で順次格納する特定のファイルについては、ロジカルチャネルの優先順位によらずに、書込み処理を許可するようにしても良い。  
上記のように、本ＩＣカード１では、アプリケーションごとに、別のロジカルチャネルとカレント設定が競合する場合のコマンドに対する処理内容に自由に設計でき、運用形態などに応じた自由度の高いシステムを実現できる。
【００３８】
図７は、ＩＣカード処理装置２からのコマンドに対する処理例を説明するためのフローチャートである。なお、カードＯＳ４１および各アプリケーションの動作は、ＣＰＵ１１により実現されるものであるが、以下の処理例では、カードＯＳ４１の動作と各アプリケーション２２（２２Ａ、２２Ｂ、…）の動作とに分けて説明するものとする。  
まず、ＩＣカード処理装置２からのコマンドをＵＡＲＴ１４により受信すると（ステップＳ１０）、ＣＰＵ１１により実行されるカードＯＳ４１は、受信したコマンドをアプリケーション（ここではアプリケーション２２Ａとする）に通知する（ステップＳ１１）。
【００３９】
上記カードＯＳ４１からコマンドを取得すると（ステップＳ１２）、上記アプリケーション２２Ａは、自身のロジカルチャネルをカードＯＳ４１に対して問合せる（ステップＳ１３）。  
この問合せに対して、カードＯＳ４１は、ロジカルチャネル管理機能４２によりチャネル管理テーブル４２ａを参照し、当該アプリケーション２２Ａのロジカルチャネルを判別する（ステップＳ１４）。上記アプリケーション２２Ａのロジカルチャネルを判別すると、カードＯＳ４１は、上記アプリケーション２２Ａに対してロジカルチャネルを示す情報を通知する（ステップＳ１５）。  
これにより、上記アプリケーション２２Ａは、自身のロジカルチャネルを確認する。なお、コマンドを受信したアプリケーションが自身に割り当てられたロジカルチャネルを確認する方法としては、上記ステップＳ１３〜Ｓ１６の処理に限らず、受信したコマンドのＣＬＡＳＳバイトから直接確認する方法、あるいは、カード仕様によって予め用意されてる専用のＡＰＩにより取得する方法なども適用可能である。
【００４０】
上記カードＯＳ４１から自身のロジカルチャネルを示す情報を取得すると、上記アプリケーション２２Ａは、当該コマンドにおいてアクセス対象となるファイルを判別し、アクセス対象となるファイルの各ロジカルチャネルによるアクセス状況をカードＯＳ４１に問い合わせる（ステップＳ２１）。  
この問合せに対して、カードＯＳ４１は、上記ロジカルチャネル管理機能４２によりチャネル管理テーブル４２ａを参照して、アクセス対象とするファイルに対する各ロジカルチャネルのアクセス順番（優先順位）を判定する（ステップＳ２２）。上記アクセス対象のファイルに対する各ロジカルチャネルのアクセス順番を判別すると、カードＯＳ４１は、上記アプリケーション２２Ａに対して当該ファイルに対する各ロジカルチャネルのアクセス順番を示す情報を通知する（ステップＳ２３）。
【００４１】
上記アクセス対象とするファイルに対する各ロジカルチャネルのアクセス順番を示す情報を取得すると（ステップＳ２４）、アプリケーション２２Ａは、当該コマンドに対する処理を実行するか否かを判定する処理を行う（ステップＳ２５〜Ｓ２６）。すなわち、アプリケーション２２Ａは、当該コマンドがアクセス対象とするファイルにアクセスしている（当該ファイルをカレントに設定している）別のロジカルチャネルが存在するか否かを判断する（ステップＳ２５）。
【００４２】
別のロジカルチャネルで当該ファイルへのアクセスが無いと判断した場合（ステップＳ２５、ＮＯ）、上記アプリケーション２２Ａは、当該コマンドに対する処理を実行し（ステップＳ２８）、その処理結果をカードＯＳ４１へ通知する（ステップＳ２９）。なお、上記ステップＳ２８のコマンドに対する処理では、アプリケーション２２Ａは、カードＯＳ４１と共同して当該ファイルが格納されているメモリへのアクセスなどを実現するようになっている。
【００４３】
また、別のロジカルチャネルで当該ファイルへのアクセスが有ると判断した場合（ステップＳ２５、ＮＯ）、上記アプリケーション２２Ａは、カードＯＳ４１から取得した各ロジカルチャネルのアクセス順番を示す情報に基づいて、自身のロジカルチャネルに当該ファイルに対する優先権があるか否かを判断する（ステップＳ２６）。たとえば、上記アプリケーション２２Ａは、カードＯＳ４１から取得した各ロジカルチャネルのアクセス順番において、自身のロジカルチャネルが最上位であるか否かにより、当該ファイルに対する優先権があるか否かを判断する。
【００４４】
上記判断により自身のロジカルチャネルに優先権があると判断した場合（ステップＳ２６、ＹＥＳ）、上記アプリケーション２２Ａは、当該コマンドに対する処理を実行し（ステップＳ２８）、その処理結果をカードＯＳ４１へ通知する（ステップＳ２９）。
【００４５】
また、上記判断により自身のロジカルチャネルに優先権がないと判断した場合（ステップＳ２６、ＮＯ）、上記アプリケーション２２Ａは、当該コマンドの種類が実行可能なコマンドであるか否かを判断する（ステップＳ２７）。上記ステップＳ２７の処理は、各アプリケーションごとの設定に応じて判断されるものである。たとえば、ライト系のコマンドを実行不可とし、リード系のコマンドを実行可能となるような形態が可能である。また、全コマンドを実行不可としたり、全コマンドを実行可としたりする形態も可能である。さらには、アクセス対象となるファイルのタイプによって、実行の可否を判定するような形態も可能である。
【００４６】
たとえば、アプリケーション２２Ａでは、書換えなどのファイルの状態を書き換えてしまうようなコマンドを実行不可とし、それ以外のコマンドを実行可と設定されているものとする。このような場合、上記アプリケーション２２Ａは、受信したコマンドが書換えコマンドであれば、当該コマンドの処理を実行不可を判断する。また、受信したコマンドが読出しコマンドであれば、上記アプリケーション２２Ａは、当該コマンドの処理を実行可と判断する。
【００４７】
上記判断により受信したコマンドの処理を実行可と判断した場合（ステップＳ２７、ＹＥＳ）、上記アプリケーション２２Ａは、当該コマンドに対する処理を実行し（ステップＳ２８）、その処理結果をカードＯＳ４１へ通知する（ステップＳ２９）。また、上記判断により受信したコマンドの処理を実行不可と判断した場合（ステップＳ２７、ＮＯ）、上記アプリケーション２２Ａは、当該コマンドに対する処理を実行不可（中断）し、当該コマンドに対する処理を中断した旨を処理結果としてカードＯＳ４１へ通知する（ステップＳ２９）。
【００４８】
上記アプリケーション２２Ａから受信したコマンドに対する処理を取得すると（ステップＳ３０）、カードＯＳ４１は、上記アプリケーション２２Ａから通知された処理結果を受信したコマンドに対するレスポンスデータとしてＩＣカード処理装置２へ送信する（ステップＳ３１）
上記のように、本ＩＣカード１のカードＯＳ４１では、各ファイルに対してカレント設定しているチャネルとそれらのチャネルのアクセス順番とを管理しておき、アプリケーションが、受信したコマンドに応じてアクセスしようとするファイルについて、「既に他のチャネルが対象のファイルをカレント設定しているか」、「アクセスする優先権（アクセスした順番）はどのチャネルにあるか」をカードＯＳ４１から提供される情報により確認することにより、複数のチャネルでのカレント設定に応じたアクセス制御を行う。  
上記のような処理により、あるアプリケーションのコマンド処理において、アクセスするファイルが他のチャネルで既にカレント設定されていなかをカードＯＳ４１が確認することができ、複数のロジカルチャネルでカレント設定されているファイルに対する処理を確実に管理することができる。
【００４９】
つまり、本実施の形態のＩＣカードでは、オペレーティングシステムが、不揮発性メモリに記憶されている各ファイルに対してアクセス中のチャネルを示す情報をチャネル管理テーブルにより管理し、前記チャネル管理テーブルで管理されている情報を参照することにより受信したコマンドがアクセス対象とするファイルにアクセス中のロジカルチャネルを示す情報を当該コマンドを処理するアプリケーションに提供し、前記アプリケーションが前記オペレーティングシステムから提供された情報に基づいて前記コマンドに対する処理の実行の可否を判定する。これにより、複数のロジカルチャネルでのアクセス制御において、別のロジカルチャネルとカレント設定（アクセス中のファイル）が競合する場合のコマンドに対する処理内容をアプリケーションごとに運用形態などに応じて設計できる。
【図面の簡単な説明】
【００５０】
【図１】この発明の実施の形態に係る携帯可能電子装置としてのＩＣカードのハードウエア構成を概略的に示すブロック図。
【図２】不揮発性メモリに記憶されるデータのファイル構成例を示す図。
【図３】ＩＣカードにおけるソフトウエア構成を説明するための模式図。
【図４】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図５】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図６】チャネルのアクセス順序を管理するためのチャネル管理テーブルの構成例を示す図。
【図７】ＩＣカードにおけるコマンドに対する処理例を説明するためのフローチャート。
【符号の説明】
【００５１】
１…ＩＣカード、２…ＩＣカード処理装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…通信ユニット（ＵＡＲＴ）、１５…コプロセッサ、１６…不揮発性メモリ、Ｃａ…モジュール、Ｃ…本体、３１…ハードウエア層、３２…ＯＳ層、３３…アプリケーション層、４１…カードＯＳ、４２…ロジカルチャネル管理機能、４２ａ…チャネル管理テーブル、４２ｂ…テーブル更新機能。
【図１】
2010146410.tif 000003
【図２】
2010146410.tif 000004
【図３】
2010146410.tif 000005
【図４】
2010146410.tif 000006
【図５】
2010146410.tif 000007
【図６】
2010146410.tif 000008
【図７】
2010146410.tif 000009