JP4100166B2 - Icカード及び同icカードを利用したデータベースアクセス方法 - Google Patents
Icカード及び同icカードを利用したデータベースアクセス方法 Download PDFInfo
- Publication number
- JP4100166B2 JP4100166B2 JP2002372611A JP2002372611A JP4100166B2 JP 4100166 B2 JP4100166 B2 JP 4100166B2 JP 2002372611 A JP2002372611 A JP 2002372611A JP 2002372611 A JP2002372611 A JP 2002372611A JP 4100166 B2 JP4100166 B2 JP 4100166B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- sql
- card
- communication data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、ICカード内またはICカード外で実行されるアプリケーションソフトウェアから、ICカード内またはICカード外のデータベースに汎用データベース言語で記述されたデータベース要求文を使用してアクセスするのに好適なICカード及び同ICカードを利用したデータベースアクセス方法に関する。
【0002】
【従来の技術】
最近、ICチップが実装されたカード、即ちICカードが普及している。このICチップは、演算処理及び各部の制御を行うCPU及び書き換え可能な不揮発性メモリを含んでいる。この書き換え可能な不揮発性メモリには、外部から任意のアプリケーション(アプリケーションソフトウェア)をダウンロードすることが可能である。つまり、書き換え可能な不揮発性メモリを備えたICカードでは、当該ICカードの発行(流通)後でも、アプリケーションの追加が可能である。書き換え可能な不揮発性メモリには、例えばEEPROM(Electrically Erasable and Programmable Read Only Memory)が用いられる。また、ICカードと当該ICカード外の電子機器(外部装置)との間のデータ通信には、例えばAPDU(Application Protocol Data Unit)と呼ばれるデータ形式の通信データが用いられる。APDUは16進数のデータ列である(例えば、非特許文献1参照)。
【0003】
現在流通しているICカードでは、データは単に羅列された状態でメモリに記憶されるだけである。つまり、現在のICカードでは、データはデータベース形式で管理・保持されるようにはなっていない。また、現在のICカードの記憶容量は、パーソナルコンピュータ等に比べると非常に小さい。このため、例えばICカード内のアプリケーションが当該ICカードに記憶されているデータを取得したい場合、データ記憶形式が上述のように単なるデータの羅列でしかなくても、そのデータ名を直接記述するなどの手法により、当該データにアクセスできる。
【0004】
【非特許文献1】
「JICSAP ICカード仕様 V2.0 第3部 共通コマンド」,ICカードシステム利用促進協議会,平成13年7月,p.48−114
【0005】
【発明が解決しようとする課題】
上記したように、現在流通しているICカードの記憶容量は非常に小さいため、当該ICカードでのデータ記憶形式が単なるデータの羅列でしかなくても、ICカードに記憶されている所望のデータに、そのデータ名を直接記述する手法でアクセスできる。
【0006】
しかし、近い将来ICカードの大容量化が実現された場合、上記データの羅列というデータ記憶形式では、所望のデータにアクセスすることは極めて困難となる。そこで、ICカードにおいても、大量のデータをリレーショナルデータベース等のデータベースにより管理・保持することが考えられる。このようなデータベースにアクセスするための汎用の(標準化された)データベース言語として、例えばSQLが知られている。ところが、ICカードと当該ICカード外の電子機器との間のデータ通信にAPDUが用いられることから、例えば当該電子機器内のアプリケーション(ICカード外のアプリケーション)からICカード内のデータベースに、データベースアクセス処理を要求するデータベース要求文であるSQL文(SQL要求文)を使用してアクセスすることはできない。同様の理由により、ICカード内のアプリケーションからICカード外のデータベースにSQL文(SQL要求文)を使用してアクセスすることはできない。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、ICカード内のアプリケーションから、ICカード外のデータベースに汎用データベース言語で記述されたデータベース要求文を使用してアクセスすることができるICカード及び同ICカードを利用したデータベースアクセス方法を提供することにある。
【0008】
【課題を解決するための手段】
本発明はかかる課題を解決するものであり、請求項1に係る発明は、汎用データベース言語で記述されたデータベース要求文に従ってデータベースアクセス処理が可能なデータベース機構を備えた外部装置との間で、オペレーティングシステムの管理のもとで、通信データの授受が可能なICカードであって、汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録したテーブルと、前記ICカード上で実行されるアプリケーションソフトウェアから前記データベース機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述した前記データベース要求文が発行された場合、前記テーブルを参照して、当該データベース要求文を、データベースアクセス処理を要求する前記通信データに変換するインタフェースと、変換された当該通信データを前記オペレーティングシステムを介して前記外部装置に送信する手段とを具備するICカードであることを特徴とする。
【0009】
請求項2に係る発明は、請求項1に記載のICカードにおいて、前記インタフェースは、前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文に対応する前記通信データが前記外部装置から前記ICカードに返された場合、返された当該通信データを前記オペレーティングシステムを介して受け取り、前記テーブルを参照して、返された当該通信データを、返された当該通信データに対応する汎用データベース言語で記述されたデータベース応答文に変換し、変換された当該データベース応答文を前記データベース要求文の発行元のアプリケーションソフトウェアに渡すことを特徴とする。
【0010】
請求項3に係る発明は、オペレーティングシステムの管理のもとで、外部装置との間で通信データの授受が可能なICカードを利用したデータベースアクセス方法であって、前記ICカード上で実行されるアプリケーションソフトウェアから前記外部装置に設けられたデータベースアクセス機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述したデータベース要求文が発行された場合、前記ICカードが有する汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録した第1のテーブルを、前記ICカードに設けられた第1のインタフェースが参照して、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、前記変換された通信データを前記ICカードから前記外部装置に送信するステップと、前記ICカードから前記外部装置に送信された通信データがデータベースアクセス処理を要求する通信データの場合、前記外部装置が有する汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録した第2のテーブルを、前記外部装置に設けられた第2のインタフェースが参照して、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、前記変換されたデータベース要求文を用いて、前記データベース機構がデータベースアクセス処理を行うステップとを具備するICカードを利用したデータベースアクセス方法であることを特徴とする。
【0011】
請求項4に係る発明は、前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文を受けて、前記第2のインタフェースが前記第2のテーブルを参照して、当該データベース応答文に対応する前記通信データに変換するステップと、前記データベース応答文に対応する通信データを前記ICカードに返すステップと、前記ICカードに返された当該通信データを、前記第1のインタフェースが前記オペレーティングシステムを介して受け取り、前記第1のテーブルを参照して、当該返された通信データに対応する汎用データベース言語で記述されたデータベース応答文に変換するステップと、変換された当該データベース応答文を前記第1のインタフェースが前記データベース要求文の発行元のアプリケーションソフトウェアに渡すステップとを更に具備することを特徴とする。
【0027】
請求項1または請求項3に係る発明において、ICカード内のインタフェース(第1のインタフェース)は、当該ICカード上で実行されるアプリケーションソフトウェアから外部装置のデータベース機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述したデータベース要求文が発行された場合、テーブル(第1のテーブル)を参照して、当該データベース要求文を、データベースアクセス処理を要求する通信データに変換する。この変換された通信データ(つまりデータベースアクセス処理を要求する通信データ)は、外部装置(つまり汎用データベース言語で記述されたデータベース要求文に従ってデータベースアクセス処理が可能なデータベース機構を有する外部装置)に送信される。
【0028】
このようなICカード内のインタフェースの機能により、当該ICカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて外部装値のデータベース機構(に設けられたデータベース)に簡単にアクセスできる。
【0029】
請求項2または請求項4に係る発明においては、外部装置のデータベース機構によるデータベースアクセス処理の結果を通知するためのデータベース応答文に対応する通信データが上記外部装置からICカードに返された場合、当該ICカード内のインタフェース(第1のインタフェース)によって、当該通信データが、当該通信データに対応するデータベース応答文に変換されて、このデータベース応答文が、当該インタフェースによりデータベース要求文の発行元のアプリケーションソフトウェアに渡される。このようなインタフェースの機能により、ICカード外のデータベース機構でのデータベースアクセス処理の結果を、データベースアクセス処理の要求元である、ICカード上で動作するアプリケーションソフトウェアに通知することが可能となる。
【0032】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0033】
[第1の実施形態]
図1は本発明の第1の実施形態に係るICカードの構成を示すブロック図である。
図1において、ICカード1は、データベース機構10とSQLAPI(SQLアプリケーション・プログラム・インタフェース)12とを備えている。データベース機構10は、リレーショナルデータベースに代表されるデータベース11を含む。データベース機構10はまた、データベース11を管理するデータベース管理システム(図示せず)を含む。データベース機構10は、外部からデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文、例えばSQLで記述されたSQL要求を表すSQL文(即ちSQL要求文)が与えられた場合、データベース管理システム(DBMS)の機能により、そのSQL文の指定に従ってデータベース11にアクセスするデータベースアクセス処理を実行する。また、データベース機構10は、データベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文、例えばSQLで記述されたSQL応答を表すSQL文(即ちSQL応答文)を要求元に返す。
【0034】
SQLAPI12は、ICカード1に格納されているアプリケーションプログラム(以下、アプリケーションと略称する)、例えばアプリケーション20-1及び20-2から後述するOS211(図2参照)の提供する機能を利用可能とするためのアプリケーション・プログラム・インタフェースである。SQLAPI12はまた、アプリケーション20-1及び20-2とデータベース機構10とのインタフェースをなす。SQLAPI12は、アプリケーション20-i(i=1,2)からデータベース11にアクセスするためのSQL文(SQL要求文)が発行された場合、そのSQL文に従うデータベースアクセス処理をデータベース機構10に行わせる機能を有する。SQLAPI12はまた、上記データベースアクセス処理の結果(SQL応答)を表すSQL文(SQL応答文)をデータベース機構10から受け取った場合、そのSQL文を要求元(SQL文の発行元)であるアプリケーション20-iに返す機能も有する。
【0035】
図2は、図1のICカード1のハードウェア構成を示すブロック図である。
本実施形態において、ICカード1は非接触ICカードである。図2に示すように、ICカード1は、ROM(Read Only Memory)21と、EEPROM22と、RAM(Random Access Memory)23と、CPU24と、通信インタフェース25と、アンテナ26とから構成される。ROM21には、基本ソフトウエアであるOS(オペレーティングシステム)211と図1中のSQLAPI12とが予め格納されている。EEPROM22には、図1中のデータベース11とアプリケーション20-1,20-2が格納されている。アプリケーション20-1,20-2は、外部からダウンロードされたアプリケーションソフトウェア(応用ソフトウェア)である。RAM23の領域は、CPU24のワーク領域等に用いられる。CPU24は、OS211に従ってアプリケーション20-1または20-2を実行する。CPU24は、通信インタフェース25及びアンテナ26を介して外部の装置との間でデータの入出力を行う。この外部の装置との間で入出力されるデータの形式にはAPDUが用いられる。
【0036】
次に、第1の実施形態の動作について、図3のシーケンスチャートを参照して説明する。
今、ICカード1において、当該ICカード1に格納されているアプリケーション、例えばアプリケーション20-1が実行中であり、データベース11からデータを検索したいものとする。この場合、アプリケーション20-1は目的のデータを検索するのに必要なSQL文(SQL要求文)を生成して、SQLAPI12に対して発行する(ステップS1,S2)。SQLAPI12はアプリケーション20-1により発行されたSQL文を受け取ると、解釈手段として機能して当該SQL文を解釈する(ステップS3)。SQLAPI12は、受け取ったSQL文がSQL要求を示すSQL文(即ちSQL要求文)の場合にデータベースアクセス手段として機能し、当該SQL文をデータベース機構10に渡して、当該SQL文に従うデータベースアクセス処理を行わせる(ステップS4)。
【0037】
するとデータベース機構10は、この例のようにSQL文によりデータ検索が指定されている場合であれば、当該SQL文により指定される条件に合致するデータをデータベース11から検索するための処理(データベースアクセス処理)を実行する(ステップS5)。なお、SQL文によりデータベース11への新規データ登録またはデータ更新が指定されているならば、データベース機構10は、当該新規データ登録またはデータ更新のためのデータベースアクセス処理を実行する。
【0038】
データベース機構10は、データベースアクセス処理の最終的な結果(ここでは検索結果)を取得すると、当該結果を通知するためのSQL文(SQL応答文)を生成し、そのSQL文をSQLAPI12に渡す(ステップS6,S7)。SQLAPI12は、データベース機構10から渡されたSQL文を解釈し、この例のようにデータベースアクセス処理の結果を通知するためのSQL文の場合、当該SQL文をSQL要求元のアプリケーション20-1に返す(ステップS8,S9)。
【0039】
以上の説明から明らかなように、本実施形態においては、ICカード1内に、データベース11を含むデータベース機構10が設けられる。ICカード1内にはまた、このデータベース機構10とアプリケーション20-i(i=1,2)とのインタフェースをなすSQLAPI12も設けられる。このSQLAPI12は、アプリケーション20-iからSQL要求文が発行された場合、当該SQL要求文に従うデータベースアクセス処理をデータベース機構10により行わせ、その処理結果を通知するSQL応答文をデータベース機構10から受け取ると、当該SQL応答文を要求元のアプリケーション20-iに渡す。このように本実施形態によれば、ICカード1に格納(ダウンロード)されているアプリケーション20-iは、データベースアクセスに標準的に用いられているSQL文を利用して、ICカード1内に構築されているデータベース11にアクセスできる。またデータベース11への新規登録またはデータ更新のためのSQL文を利用することにより、データベース11を構築することが可能となる。
【0040】
[第2の実施形態]
図4は本発明の第2の実施形態に係るICカード1を含むデータベースアクセスシステムの構成を示すブロック図である。なお、図1または図2と同様の部分には便宜的に同一参照符号を付してある。
【0041】
本発明の第2の実施形態の特徴は、ICカード1の外部の装置(以下、カード外装置と称する)4で実行されるアプリケーションソフトウェア(以下、カード外ソフトウェアと称する)41からICカード1内のデータベース11にアクセスすることが可能な構成を適用している点にある。
【0042】
そのため、図4に示すカード外装置4には、SQLAPI(SQLアプリケーション・プログラム・インタフェース)42が設けられている。このSQLAPI(以下、カード外SQLAPIと称する)42は、カード外ソフトウェア41とICカード1(内のデータベース11)とのインタフェースをなす。カード外SQLAPI42は、カード外ソフトウェア41からICカード1内のデータベース11にアクセスするためのSQL文、即ちSQL要求文が発行された場合、そのSQL要求文を、ICカード1との間で通信可能なデータ形式の通信データに変換する機能を有する。このSQL要求文をSQL文(要求)と表現することもある。本実施形態では、通信データの形式にAPDUが用いられる。そこで、本実施形態で適用される通信データを、APDU形式の通信データと呼ぶこともある。カード外SQLAPI42はまた、ICカード1から、データベースアクセス処理の結果を通知するための通信データが返された場合に、その通信データを、当該データベースアクセス処理の結果を通知するためのSQLで記述されたSQL文、即ちSQL応答文に変換する機能も有する。このSQL応答文をSQL文(応答)と表現することもある。
【0043】
一方、ICカード1には、前記第1の実施形態と同様に、データベース11を含むデータベース機構10と、SQLAPI12と、OS211とが設けられている。OS211は、メモリ管理、入出力管理など周知のシステム管理機能を有する。OS211は、カード外装置4のカード外SQLAPI42からSQL要求に関する通信データが送られた場合、そのデータをSQLAPI12に渡す入力管理を行う。OS211はまた、SQLAPI12からデータベースアクセス処理結果の応答に関する通信データを渡された場合、その通信データをカード外装置4に送信する出力管理を行う。
【0044】
SQLAPI12は、OS211からSQL要求に関する通信データを渡された場合、その通信データをデータベース11にアクセスするためのSQL文(SQL応答文)に変換する機能を有する。SQLAPI12はまた、変換されたSQL文に従うデータベースアクセス処理をデータベース機構10に行わせる機能を有する。SQLAPI12はまた、データベースアクセス処理の結果を通知するためのSQL文(SQL応答文)をデータベース機構10から受け取った場合、当該SQL文を通信データに変換する機能を有する。
【0045】
SQLAPI12及びカード外SQLAPI42は、それぞれ、上記の変換のためのテーブル120及び420を有している。図5はテーブル120(420)のデータ構造例を示す。
【0046】
図5に示すように、テーブル120(420)の各エントリは、SQL命令(キーワード)が設定されるフィールドF1と当該SQL命令(キーワード)を定義する16進表現のデータが設定されるフィールドF2との組(対)から構成される。ここでは、SQL命令を定義する16進表現のデータのサイズは1バイトである。図5中における16進表現のデータの記述0xYZは、YZが16進表現であることを示す。このテーブル120(420)を参照することで、SQL命令(キーワード)から、(通信データに利用可能な)対応する16進表現のデータへの変換と、(通信データに含まれている)SQL命令(キーワード)を表す16進表現のデータから当該SQL命令(キーワード)への変換とが可能となる。
【0047】
図6(a)は、本実施形態で適用されるAPDU形式の通信データの基本的なデータフォーマットを示す。図6(b)は、SQL文の授受のために用いられるAPDU形式の通信データのフォーマットを示す。
【0048】
本実施形態で適用される通信データは、図6(a)に示すように、ヘッダ部61とデータ部62とから構成される。ヘッダ部61は、5バイトで構成される。ヘッダ部61の先頭バイト611は該当する通信データが属するクラス(種類)を表す。ヘッダ部61の最終バイト612はデータ部62の長さ(データ長)を表す。ここでは、データ長はバイト数で表される。ヘッダ部61の他のバイトについては本実施形態と直接関係しないため説明を省略する。
【0049】
通信データに含まれているヘッダ部61のバイト611に、図6(b)に示すように所定のタグTAGSQLk(k=1,2…であり、図ではTAGSQL1)が設定されている場合、当該通信データは、SQL文の授受のために用いられる、APDU形式の通信データであることを示す。上記バイト611に設定可能なタグTAGSQLkは、複数種類用意されている。このタグTAGSQLkの種類により、対応する通信データが、データベースアクセス処理を要求するためのSQL文、つまりSQL要求文に対応するものであるか(TAGSQL1の場合)、或いはデータベースアクセス処理の結果を通知するためのSQL文、つまりSQL応答文に対応するものであるか(TAGSQL2の場合)等が示される。明らかなように、図6(b)は、SQL要求文に対応する通信データのフォーマット例を示す。
【0050】
図6(b)に示す通信データのデータ部62は、n個(nは通信データ毎に決定される1以上の整数)の部分データ部(サブデータ部)62-1〜62-nから構成される。部分データ部62-i(i=1〜n)は、当該部分データ部62-iを含む通信データがSQL要求文に対応するものである場合、SQL命令フィールド621、データ長フィールド622及び情報フィールド623から構成される。部分データ部62-i中のSQL命令フィールド621は、SQL命令(キーワード)#iに対応する16進表現のデータを設定するのに用いられる。データ長フィールド622は、情報フィールド623のデータ長(バイト数)を表す16進表現のデータを設定するのに用いられる。情報フィールド623は、データ長フィールド622で示されるデータ長の情報(16進表現のデータ)を設定するのに用いられる。なお、SQL応答文に対応する通信データの場合、部分データ部62-iはデータ長フィールド622及び情報フィールド623から構成され、SQL命令フィールド621を含まない。
【0051】
次に、図4の構成における動作について、図7乃至図15を適宜参照して説明する。なお、図7及び図8は、カード外装置4内のカード外ソフトウェア41からICカード1内のデータベース11にアクセスする際の動作を説明するためのシーケンスチャートである。また、図9はSQL要求文を通信データに変換する処理を説明するためのフローチャート、図10は通信データをSQL要求文に変換する処理を説明するためのフローチャートである。また、図11はSQL応答文を通信データに変換する処理を説明するためのフローチャート、図12は通信データをSQL応答文に変換する処理を説明するためのフローチャートである。また、図13はSQL要求文と当該SQL要求文から変換される通信データ及び当該通信データの構成要素の具体例を示す図、図14はデータベース51に格納されているテーブルのデータ構造例を示す図、図15はSQL応答文と当該SQL応答文から変換される通信データ及び当該通信データの構成要素の具体例を示す図である。
【0052】
まず、カード外装置4上でカード外ソフトウェア41が実行中であり、ICカード1内に構築されているデータベース11からデータを検索したいものとする。この場合、カード外ソフトウェア41は目的のデータを検索するのに必要なSQL文、即ちSQL要求文を作成して、カード外SQLAPI42に対して発行する(ステップS11,S12)。カード外SQLAPI42はカード外ソフトウェア41により発行されたSQL文を受け取ると解釈手段として機能し、当該SQL文を解釈する(ステップS13)。カード外SQLAPI42は、受け取ったSQL文がSQL要求文であると解釈できた場合にはSQL要求文(データベース要求文)/通信データ変換手段として機能し、当該SQL文をSQL要求のためのAPDU形式の通信データに変換する変換処理(ステップS14)を、次のように実行する。
【0053】
まず、カード外SQLAPI42がカード外ソフトウェア41から受け取ったSQL文(SQL要求文)が、図13(a)に示すように、
SELECT name FROM Table5 WHERE age=30
であるものとする。この例のSQL要求文は、1番目のSQL命令(キーワード)#1=“SELECT”及び当該SQL命令#1と対をなす情報#1=“name”からなる1番目の句(フレーズ)#1と、2番目のSQL命令#2=“FROM”及び当該SQL命令#2と対をなす情報#2=“Table5”(テーブルID=5を示す情報)からなる2番目の句#2と、3番目のSQL命令#3=“WHERE”及び当該SQL命令#3と対をなす情報#3=“age=30”からなる3番目の句#3とから構成される。上記各情報“name”“Table5”“age=30”は、いずれもASCIIコードで表されている。
【0054】
カード外SQLAPI42は、変数iを値1に初期設定する(ステップS14a)。次にカード外SQLAPI42は、SQL要求文から、当該SQL要求文に含まれているi番目のSQL命令(キーワード)#iを取り出す(ステップS14b)。
【0055】
次にカード外SQLAPI42は、取り出されたSQL命令#i(i=1のこの例では、SQL命令#1)をキーとしてテーブル420を参照する(ステップS14c)。これによりカード外SQLAPI42は、SQL命令#iに対応する16進表現のデータを取得する(ステップS14d)。つまりカード外SQLAPI42は、SQL命令#iを対応する16進表現のデータに変換する。
【0056】
図13(a)に示すSQL要求文の場合、SQL命令#1は“SELECT”である。この場合、図5のテーブル420の例から明らかなように、SQL命令#1=“SELECT”に対応する16進表現データとして0xA0が取得される(図13(c)参照)。
【0057】
カード外SQLAPI42は、SQL命令#iに対応する16進表現データを取得すると、SQL要求文からSQL命令#iと対をなす情報(ASCIIコード)#iを取り出す(ステップS14e)。カード外SQLAPI42は、取り出されたASCIIコード表現の情報#iを16進表現のデータ#iに変換する(ステップS14f)。図13(a)に示すSQL要求文の場合、SQL命令#i=SQL命令#1=“SELECT”と対をなす情報は“name”である。この場合、“name”は、図13(e)に示すように、“0x6E 0x61 0x6D 0x65”の4バイトからなるデータ#i=データ#1に変換される。このデータ#i=データ#1のデータ長#i=データ長#1は4バイトであり、16進表現では図13(d)に示すように“0x04”である。
【0058】
次にカード外SQLAPI42は、SQL要求文に対応する通信データ中のi番目の部分データ部62-iを生成する(ステップS14g)。この部分データ部62-iは、ステップS14dで変換されたSQL命令#iの16進表現のデータが設定された2バイトのSQL命令フィールド621と、ステップS14fで変換されたデータ#iのデータ長#i(16数表現)が設定された2バイトのデータ長フィールド622と、当該データ#i(16数表現)が設定された情報フィールド623とから構成される。
【0059】
次にカード外SQLAPI42は、SQL要求文の末尾まで処理したか否かを判定する(ステップS14h)。もし、SQL要求文の末尾まで処理していないなら、カード外SQLAPI42は、変数iを1だけインクリメントする(ステップS14i)。そしてカード外SQLAPI42は、上記ステップS14bから始まる処理をSQL文の末尾まで繰り返す。
【0060】
これにより、図13(a)に示すSQL要求文の例では、当該SQL要求文に対応する通信データの部分データ部62-2に設定されるSQL命令#2、データ長#2及びデータ#2として、図13(f),(g)及び(h)に示すように、それぞれ、“FROM”を表す16進表現データ0x70、1バイトを表す16進表現データ“0x01”及びテーブルID(テーブル番号)=“5”を表す16進表現データ“0x35”が取得される。同様に、上記SQL要求文に対応する通信データの部分データ部62-3に設定される、SQL命令#3、データ長#3及びデータ#3として、図13(i),(j)及び(k)に示すように、それぞれ、“WHERE”を表す16進表現データ“0x80”、6バイトを表す16進表現データ“0x06”及び“age=30”を表す16進表現データ“0x61 0x67 0x65 0x3D 0x33 0x30”が取得される。
【0061】
やがて、SQL要求文の末尾まで処理し終えたなら(ステップS14h)、カード外SQLAPI42は、当該SQL要求文に対応する通信データのヘッダ部61を生成する(ステップS14j)。このヘッダ部61の先頭バイト611には、図13(b)に示すように、SQL要求文に対応する通信データであることを表すタグTAGSQL1(16進表現データ“0x50”)が設定される。また、ヘッダ部61の最終バイト612には、ステップS14gの繰り返しにより生成された数の部分データ部を合わせた総バイト数(データ長)を示す情報が設定される。次にカード外SQLAPI42は、ステップS14jで生成されたヘッダ部61と、ステップS14gの繰り返しにより生成された部分データ部62-1〜62-i(ここではi=3)からなるデータ部62とから構成される通信データを生成する(ステップS14k)。即ちカード外SQLAPI42は、カード外ソフトウェア41から受け取った図13(a)に示すSQL要求文を、図13(l)に示す通信データに変換する(ステップS14)。
【0062】
カード外SQLAPI42は、カード外ソフトウェア41から受け取ったSQL要求文を通信データに変換すると、当該通信データをICカード1に送信する(ステップS15)。ICカード1内のOS211は、入出力管理機能によりカード外SQLAPI42から送信された通信データを受け取ると、解釈手段として機能して、当該通信データのヘッダ部61の先頭バイト611から当該通信データの種類を判別する。本実施形態のように、通信データのヘッダ部61の先頭バイト611にTAGSQL1(16進表現データ“0x50”)が設定されている場合、OS211は当該通信データがSQL要求文に対応する通信データ、即ちSQL要求の通信データであると判別する。この場合、OS211は、受け取った通信データをICカード1内のSQLAPI12に渡す(ステップS16)。
【0063】
SQLAPI12はOS211から通信データを受け取ると、解釈手段として機能して、当該通信データのヘッダ部61の先頭バイト611の内容をもとに当該通信データを解釈する(ステップS17)。SQLAPI12は、受け取った通信データがSQL要求文に対応する通信データであると解釈できた場合には通信データ/SQL要求文(データベース要求文)変換手段として機能し、当該通信データをSQL要求文に変換するための変換処理(ステップS18)を、次のように実行する。
【0064】
まずSQLAPI12は、変数iを値1に初期設定する(ステップS18a)。次にSQLAPI12は、通信データから、当該通信データに含まれている、i番目の部分データ部62-iの2バイトのSQL命令フィールド621に設定されているデータ、つまりSQL命令(キーワード)#iの16進表現データを取り出す(ステップS18b)。
【0065】
次にSQLAPI12は、取り出された16進表現データをキーとしてテーブル120を参照する(ステップS18c)。これによりSQLAPI12は、取り出された16進表現データに対応するSQL命令#iを取得する(ステップS18d)。つまりSQLAPI12は、取り出された16進表現データを対応するSQL命令#iに変換する。図13(l)に示す通信データの例では、部分データ部62-i=部分データ部62-1のSQL命令フィールド621に設定されている16進表現データは“0xA0”である。この場合、図5のテーブル120の例から明らかなように、“0xA0”に対応するSQL命令#1として“SELECT”が取得される。
【0066】
SQLAPI12は、SQL命令#iを取得すると、通信データから、当該通信データに含まれているi番目の部分データ部62-iの情報フィールド623に設定されている16進表現データ#iを取り出す(ステップS18e)。このデータ#iのデータ長は、部分データ部62-iの2バイトのデータ長フィールド622で指定される。
【0067】
次にSQLAPI12は、取り出された16進表現データ#iを、SQLで使用されるコード(即ちASCIIコード)で表現された情報#iに変換する(ステップS18f)。図13(l)に示す通信データの例では、部分データ部62-i=部分データ部62-1の情報フィールド623に設定されている16進表現データは“0x6E 0x61 0x6D 0x65”である。この場合、情報#1として、“0x6E 0x61 0x6D 0x65”に対応する“name”が取得される。
【0068】
次にSQLAPI12は、ステップS18dで取得したSQL命令#iとステップS18fで取得した情報#iとの対から構成される、SQL要求文のi番目の句#iを生成する(ステップS18g)。i=1のこの例では、SQL命令#1=“SELECT”と情報#1=“name”との対から構成される句#1が生成される。
【0069】
次にSQLAPI12は、通信データの末尾まで処理したか否かを判定する(ステップS18h)。もし、通信データの末尾まで処理していないなら、SQLAPI12は、変数iを1だけインクリメントする(ステップS18i)。そしてSQLAPI12は、上記ステップS18bから始まる処理を通信データの末尾まで繰り返す。
【0070】
これにより、図13(l)に示す通信データの例では、当該通信データの部分データ部62-2の設定内容をもとに、SQL命令#2=“FROM”と情報#2=“Table5”との対から構成される句#2が生成される。同様に、部分データ部62-3の設定内容をもとに、SQL命令#2=“WHERE”と情報#3=“age=30”との対から構成される句#3が生成される。
【0071】
やがて、通信データの末尾まで処理し終えたなら(ステップS18h)、SQLAPI12は、ステップS18gの繰り返しにより生成された句#1〜#iから構成されるSQL要求文を生成(復元)する(ステップS18j)。即ちSQLAPI12は、OS211から受け取った、カード外SQLAPI42から送られた図13(l)に示す通信データを、図13(a)に示すSQL要求文に変換(復元)する(ステップS18)。
【0072】
SQLAPI12は、OS211から受け取った通信データをSQL要求文に変換すると、データベースアクセス手段として機能して、当該SQL要求文をICカード1内のデータベース機構10に渡すことにより、当該SQL要求文に従うデータベースアクセス処理を行わせる(ステップS19)。これによりデータベース機構10は、データベース管理システムの機能により、SQLAPI12から渡されたSQL要求文の指定に従ってデータベース11にアクセスするデータベースアクセス処理を実行する(ステップS20)。図13(a)に示すSQL要求文の例では、データベース11に格納されている、テーブルIDが“5”(Table5)のテーブル(表)から、年齢(age)が30歳の人の名前(name)を検索(SELECT)するためのデータベースアクセス処理が行われる。ここで、テーブルIDが“5”のテーブルが図14に示すようになっているものとする。この場合、図13(a)に示すSQL要求文に従うデータベースアクセス処理により、当該処理の結果(検索結果)として、“TANAKA”及び“YAMADA”が得られる。
【0073】
データベース機構10は、データベースアクセス処理を実行すると、当該データベースアクセス処理の結果をもとに、当該結果を通知するためのSQL文、即ちSQL応答文を生成する(ステップS21)。ここでは、図15(a)に示すように、検索された“TANAKA”及び“YAMADA”の各情報と、その情報間に挿入されるカンマ(“,”)とから構成されるSQL応答文“TANAKA,YAMADA”が生成される。カンマは、情報の区切りを表す。
【0074】
データベース機構10は、生成されたSQL応答文を、SQLAPI12からのSQL要求文に対する応答を表すSQL文として、当該SQLAPI12に返す(ステップS22)。SQLAPI12は、データベース機構10から返されたSQL文を受け取ると、解釈手段として機能して当該SQL文を解釈する(ステップS23)。SQLAPI12は、受け取ったSQL文がSQL応答文であると解釈できた場合にはSQL応答文(データベース応答文)/通信データ変換手段として機能し、当該SQL文をSQL応答のためのAPDU形式の通信データに変換するための変換処理(ステップS24)を、次のように実行する。
【0075】
まずSQLAPI12は、変数i,jをいずれも値1に初期設定する(ステップS24a)。次にSQLAPI12は、SQL応答文から、i番目のカンマを探す(ステップS24b)。
【0076】
もし、i番目のカンマが検出できたならば(ステップS24c)、SQLAPI12は、SQL応答文中に含まれている、j番目の文字位置からi番目のカンマの直前の文字位置までの文字列(即ちSQL応答文中のi番目の情報を表す文字列)を取り出す(ステップS24d)。これに対し、i番目のカンマが検出できなかったならば(ステップS24c)、SQLAPI12は、SQL応答文中に含まれている、j番目の文字位置以降の全文字列(即ちSQL応答文中の最後の情報を表す文字列)を取り出す(ステップS24e)。図15(a)に示すSQL応答文の例では、i,jが共に1の場合、1番目のカンマが検出され、1番目の文字位置から1番目のカンマの直前の文字位置までの文字列“TANAKA”が取り出される。
【0077】
SQLAPI12は、ステップS24dまたはS24eで取り出された文字列を16進表現のデータ#iに変換する(ステップS24f)。次にSQLAPI12は、データ#iをもとに、SQL応答文に対応する通信データの部分データ部62-iを生成する(ステップS24g)。この部分データ部62-iは、取得されたデータ#iのデータ長が16進数で表されたデータ長#i(が設定されるデータ長フィールド622)及び当該データ#i(が設定される情報フィールド623)から構成される。この例のようにi,jが共に1の場合、データ#i=データ#1は、図15(d)に示すように、名前“TANAKA”を示す16進表現データ“0x54 0x41 0x4E 0x41 0x4B 0x41”である。また、データ長#1は、図15(c)に示すように、6バイトを示す16進表現データ“0x06”である。
【0078】
次にSQLAPI12は、SQL応答文の末尾まで処理したか否かを判定する(ステップS24h)。もし、SQL応答文の末尾まで処理していないなら、SQLAPI12は、変数iを1だけインクリメントすると共に、変数(文字位置ポインタ)jを、最新のステップS24bで検出されたカンマの次の文字位置を示すように更新する(ステップS24i)。そしてSQLAPI12は、上記ステップS24bから始まる処理をSQL応答文の末尾まで繰り返す。
【0079】
これにより、図15(a)に示すSQL応答文の例では、当該SQL応答文に対応する通信データの部分データ部62-2に設定されるデータ長#2及びデータ#2として、それぞれ図15(e)及び(f)に示すように、6バイトを表す16進表現データ“0x06”及び文字列“YAMADA”を示す16進表現データ“0x59 0x41 0x4D 0x41 0x44 0x41”が取得される。
【0080】
やがて、SQL応答文の末尾まで処理し終えたなら(ステップS24h)、SQLAPI12は、当該SQL応答文に対応する通信データのヘッダ部61を生成する(ステップS24j)。このヘッダ部61の先頭バイト611には、図15(b)に示すように、SQL応答文に対応する通信データであることを表すタグTAGSQL2(16進表現データ“0x40”)が設定される。また、ヘッダ部61の最終バイト612には、ステップS24gの繰り返しにより生成された数の部分データ部を合わせた総バイト数(データ長)を示す情報が設定される。
【0081】
次にSQLAPI12は、ステップS24jで生成されたヘッダ部61と、ステップS24gの繰り返しにより生成された部分データ部62-1〜62-i(ここではi=2)からなるデータ部62とから構成される通信データを生成する(ステップS24k)。即ちSQLAPI12は、データベース機構10から受け取った図15(a)に示すSQL応答文を、図15(g)に示す通信データに変換する(ステップS24)。
【0082】
SQLAPI12は、データベース機構10から受け取ったSQL応答文を通信データに変換すると応答手段として機能し、当該通信データをOS211に渡す(ステップS25)。OS211は、SQLAPI12から渡された通信データを受け取ると解釈手段として機能し、当該通信データのヘッダ部61の先頭バイト611から当該通信データの種類を判別する。本実施形態のように、通信データのヘッダ部61の先頭バイト611にTAGSQL2(16進表現データ“0x40”)が設定されている場合、OS211は当該通信データがSQL応答文に対応する通信データ、即ちSQL応答の通信データであると判別する。この場合、OS211は応答手段として機能し、受け取った通信データをカード外装置4内のカード外SQLAPI42に送出する(ステップS26)。
【0083】
カード外SQLAPI42は、OS211から送出された通信データを受け取ると解釈手段として機能し、当該通信データのヘッダ部61の先頭バイト611の内容をもとに当該通信データを解釈する(ステップS27)。カード外SQLAPI42は、受け取った通信データがSQL応答文に対応する通信データであると解釈できた場合には通信データ/SQL応答文(データベース応答文)変換手段として機能し、当該通信データをSQL応答文に変換するための変換処理(ステップS28)を、次のように実行する。
【0084】
まずカード外SQLAPI42は、変数iを値1に初期設定する(ステップS28a)。次にカード外SQLAPI42は、通信データから、当該通信データに含まれている、i番目の部分データ部62-iの情報フィールド623に設定されている16進表現データ#iを取り出す(ステップS28b)。次にカード外SQLAPI42は、取り出された16進表現データ#iを、SQLで使用されるコード(即ちASCIIコード)で表現された情報#iに変換する(ステップS28f)。図15(g)に示す通信データの例では、部分データ部62-i=部分データ部62-1の情報フィールド623に設定されている16進表現データは“0x6E 0x61 0x6D 0x65”である。この場合、情報#1として、“0x6E 0x61 0x6D 0x65”に対応する“TANAKA”が取得される。
【0085】
次にカード外SQLAPI42は、通信データの末尾まで処理したか否かを判定する(ステップS28d)。もし、通信データの末尾まで処理していないなら、カード外SQLAPI42は、変数iを1だけインクリメントする(ステップS28e)。そしてカード外SQLAPI42は、上記ステップS28bから始まる処理を通信データの末尾まで繰り返す。
【0086】
これにより、図15(g)に示す通信データの例では、当該通信データに含まれている部分データ部62-2中のデータ長フィールド622及び情報フィールド623の設定内容をもとに、情報(データ)#2=“YAMADA”が取得される。
【0087】
やがて、通信データの末尾まで処理し終えたなら(ステップS28d)、カード外SQLAPI42は、ステップS28cの繰り返しにより生成された情報#1〜#iと、各情報間に挿入されるカンマとから構成されるSQL応答文を生成(復元)する(ステップS28f)。即ちカード外SQLAPI42は、ICカード1内のSQLAPI12からOS211を介して送られた図15(g)に示す通信データを、図15(a)に示すSQL応答文に変換(復元)する(ステップS28)。
【0088】
カード外SQLAPI42は、ICカード1内のSQLAPI12からOS211を介して送られた通信データをSQL応答文に変換すると、当該SQL応答文を、SQL要求文の発行元であるカード外ソフトウェア41に渡す(ステップS29)。このようにカード外ソフトウェア41は、SQL要求文によりICカード1内のデータベース11にアクセスして、そのデータベースアクセス結果であるSQL応答文を受け取ることができる。
【0089】
[第3の実施形態]
図16は本発明の第3の実施形態に係るICカード1を含むデータベースアクセスシステムの構成を示すブロック図である。なお、図1または図4と同様の部分には便宜的に同一参照符号を付してある。
【0090】
図16に示すように、カード外装置4はデータベース機構50を備えている。データベース機構50は、リレーショナルデータベースに代表されるデータベース51を含む。
【0091】
第3の実施形態の特徴は、ICカード1で実行されるアプリケーション20-i(ここではアプリケーション20-1)からカード外装置4内のデータベース511にアクセスすることが可能な構成を適用している点にある。この、アプリケーション20-1からカード外装置4内のデータベース511にアクセスする際の動作は、ICカード1内のSQLAPI12とカード外装置4内のカード外SQLAPI42との役割が逆になる点を除けば、前記第2の実施形態とほぼ同様である。
【0092】
以下、図16の構成において、ICカード1内のアプリケーション20-1からカード外装置4内のデータベース51にアクセスする際の動作について簡単に説明する。
【0093】
まず、ICカード1上でアプリケーション20-1が実行中であり、カード外装置4内に構築されているデータベース51からデータを検索したいものとする。この場合、アプリケーション20-1は目的のデータを検索するのに必要なSQL要求文を作成して、SQLAPI12に対して発行する。するとSQLAPI12は解釈手段として機能して、このSQL要求文を解釈する。SQLAPI12は、アプリケーション20-1により発行されたSQL要求文を受け取った場合、SQL要求文(データベース要求文)/通信データ変換手段として機能して、当該SQL要求文を図9のフローチャートに示す手順で通信データに変換する。この通信データはSQLAPI12からOS211に渡される。OS211は、SQLAPI12から渡された通信データをカード外装置4に送信する。
【0094】
カード外装置4内のカード外SQLAPI42は、ICカード1内のOS211から送られた通信データを受け取ると解釈手段として機能して、当該通信データを解釈する。カード外SQLAPI42は、この通信データがSQL要求文に対応するものであると判定すると、通信データ/SQL要求文(データベース要求文)変換手段として機能し、当該通信データを図10のフローチャートに示す手順でSQL要求文に変換(復元)する。すると、カード外SQLAPI42はデータベースアクセス手段として機能して、このSQL要求文をデータベース機構50に渡すことにより、当該SQL要求文に従うデータベースアクセス処理を行わせる。
【0095】
データベース機構10によるデータベースアクセス処理が完了すると、そのデータベースアクセス処理の結果を通知するためのSQL応答文が、データベース機構10からカード外SQLAPI42に渡される。カード外SQLAPI42はデータベース機構10からSQL応答文を受け取ると、解釈手段として機能して当該SQL応答文を解釈する。カード外SQLAPI42はSQL応答文を受け取った場合、SQL応答文(データベース応答文)/通信データ変換手段として機能し、当該SQL応答文を図11のフローチャートに示す手順で通信データに変換する。カード外SQLAPI42は、この通信データをICカード1に送信する。
【0096】
ICカード1内のOS211は、カード外SQLAPI42から送られた通信データがSQL応答文に対応するものである場合、当該通信データをSQLAPI12に渡す。SQLAPI12はOS211から通信データを受け取ると、解釈手段として機能して当該通信データを解釈する。SQLAPI12は、SQL応答文に対応する通信データを受け取った場合には通信データ/SQL応答文(データベース応答文)変換手段として機能し、当該通信データを図12のフローチャートに示す手順でSQL応答文に変換(復元)する。SQLAPI12は、このSQQL応答文を、SQL要求文の発行元であるアプリケーション20-1に渡す。このように、ICカード1内のアプリケーション20-1は、カード外装置4内のデータベース51にアクセスして、そのデータベースアクセス結果であるSQL応答文を受け取ることができる。
【0097】
上記第1及び第3の実施形態では、ICカード1上で実行されるアプリケーションが外部からダウンロードされたものとしている。しかし、このアプリケーションがICカード1内のROM21またはEEPROM22に予め格納されていてもよい。
【0098】
また上記第2及び第3の実施形態では、ICカード1とカード外装置4との間で授受される通信データの暗号化については言及されていない。しかし、この通信データを暗号化するならば、ICカード1内のデータベース11(第2の実施形態)またはカード外装置4内のデータベース51(第3の実施形態)を、セキュリティの高いデータベースとすることができる。ここで、例えばICカード1での通信データの暗号化処理は、当該ICカード1に内蔵のCPU24により実現可能である。
【0099】
なお、本発明は、上記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0100】
【発明の効果】
以上詳述したように、請求項1または請求項3に係る発明によれば、ICカード内のインタフェース(第1のインタフェース)は、当該ICカード上で実行されるアプリケーションソフトウェアから外部装置のデータベース機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述したデータベース要求文が発行された場合、テーブル(第1のテーブル)を参照して、当該データベース要求文を、データベースアクセス処理を要求する通信データに変換することにより、この変換された通信データ(つまりデータベースアクセス処理を要求する通信データ)が、外部装置(つまり汎用データベース言語で記述されたデータベース要求文に従ってデータベースアクセス処理が可能なデータベース機構を有する外部装置)に送信されるようにしたので、当該ICカード上で動作するアプリケーションソフトウェアは、汎用データベース言語で記述されたデータベース要求文を用いて外部装値のデータベース機構(に設けられたデータベース)に簡単にアクセスできる。
【0107】
請求項2または請求項4に係る発明によれば、外部装置のデータベース機構によるデータベースアクセス処理の結果を通知するためのデータベース応答文に対応する通信データが上記外部装置からICカードに返された場合、当該ICカード内のインタフェース(第1のインタフェース)によって、当該通信データが、当該通信データに対応するデータベース応答文に変換され、この変換されたデータベース応答文が、当該インタフェースによってデータベース要求文の発行元のアプリケーションソフトウェアに渡される。このようなインタフェースの機能により、外部装置のデータベース機構でのデータベースアクセス処理の結果を、データベースアクセス処理の要求元である、ICカード上で動作するアプリケーションソフトウェアに通知することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係るICカードの構成を示すブロック図。
【図2】図1のICカードのハードウェア構成を示すブロック図。
【図3】同第1の実施形態の動作を説明するためのシーケンスチャート。
【図4】本発明の第2の実施形態に係るICカードを含むデータベースアクセスシステムの構成を示すブロック図。
【図5】図4中のSQLAPI12(カード外SQLAPI42)が有するテーブル120(420)のデータ構造例を示す図。
【図6】同第2の実施形態で適用されるAPDU形式の通信データの基本的なデータフォーマットと、SQL文の授受のために用いられるAPDU形式の通信データのフォーマットとを示す図。
【図7】同第2の実施形態において、カード外装置4内のカード外ソフトウェア41からICカード1内のデータベース11にアクセスする際の動作を説明するためのシーケンスチャートの一部を示す図。
【図8】カード外装置4内のカード外ソフトウェア41からICカード1内のデータベース11にアクセスする際の動作を説明するためのシーケンスチャートの残りを示す図。
【図9】図7中のステップS14の処理(SQL要求文を通信データに変換する処理)を説明するためのフローチャート。
【図10】図7中のステップS18の処理(通信データをSQL要求文に変換する処理)を説明するためのフローチャート。
【図11】図8中のステップS24の処理(SQL応答文を通信データに変換する処理)を説明するためのフローチャート。
【図12】図8中のステップS28の処理(通信データをSQL応答文に変換する処理)を説明するためのフローチャート。
【図13】SQL要求文と当該SQL要求文から変換される通信データ及び当該通信データの構成要素の具体例を示す図。
【図14】データベース51に格納されているテーブルのデータ構造例を示す図。
【図15】SQL応答文と当該SQL応答文から変換される通信データ及び当該通信データの構成要素の具体例を示す図。
【図16】本発明の第3の実施形態に係るICカードを含むデータベースアクセスシステムの構成を示すブロック図。
【符号の説明】
1…ICカード
4…カード外装置
10,50…データベース機構
11,51…データベース
12…SQLAPI
120,420…テーブル
20-1,20-2…アプリケーション(アプリケーションソフトウェア)
21…ROM
22…EEPROM
24…CPU
41…カード外ソフトウェア(アプリケーションソフトウェア)
42…カード外SQLAPI
Claims (4)
- 汎用データベース言語で記述されたデータベース要求文に従ってデータベースアクセス処理が可能なデータベース機構を備えた外部装置との間で、オペレーティングシステムの管理のもとで、通信データの授受が可能なICカードにおいて、
汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録したテーブルと、
前記ICカード上で実行されるアプリケーションソフトウェアから前記データベース機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述した前記データベース要求文が発行された場合、前記テーブルを参照して、当該データベース要求文を、データベースアクセス処理を要求する前記通信データに変換するインタフェースと、
変換された当該通信データを前記オペレーティングシステムを介して前記外部装置に送信する手段と、
を具備することを特徴とするICカード。 - 前記インタフェースは、前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文に対応する前記通信データが前記外部装置から前記ICカードに返された場合、返された当該通信データを前記オペレーティングシステムを介して受け取り、前記テーブルを参照して、返された当該通信データを、返された当該通信データに対応する汎用データベース言語で記述されたデータベース応答文に変換し、変換された当該データベース応答文を前記データベース要求文の発行元のアプリケーションソフトウェアに渡すことを特徴とする請求項1記載のICカード。
- オペレーティングシステムの管理のもとで、外部装置との間で通信データの授受が可能なICカードを利用したデータベースアクセス方法であって、
前記ICカード上で実行されるアプリケーションソフトウェアから前記外部装置に設けられたデータベースアクセス機構に対してデータベースアクセス処理を要求し且つ汎用データベース言語で記述したデータベース要求文が発行された場合、前記ICカードが有する汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録した第1のテーブルを、前記ICカードに設けられた第1のインタフェースが参照して、当該データベース要求文を、当該データベース要求文により示されるデータベースアクセス処理を要求する通信データに変換するステップと、
前記変換された通信データを前記ICカードから前記外部装置に送信するステップと、
前記ICカードから前記外部装置に送信された通信データがデータベースアクセス処理を要求する通信データの場合、前記外部装置が有する汎用データベース言語で記述されるキーワードと前記通信データを構成し且つ当該キーワードに対応するデータとの関係を登録した第2のテーブルを、前記外部装置に設けられた第2のインタフェースが参照して、当該通信データを、当該通信データにより示されるデータベースアクセス処理を要求する汎用データベース言語で記述されたデータベース要求文に変換するステップと、
前記変換されたデータベース要求文を用いて、前記データベース機構がデータベースアクセス処理を行うステップと、
を具備することを特徴とするICカードを利用したデータベースアクセス方法。 - 前記データベース機構によるデータベースアクセス処理の結果を通知するための汎用データベース言語で記述されたデータベース応答文を受けて、前記第2のインタフェースが前記第2のテーブルを参照して、当該データベース応答文に対応する前記通信データに変換するステップと、
前記データベース応答文に対応する通信データを前記ICカードに返すステップと、
前記ICカードに返された当該通信データを、前記第1のインタフェースが前記オペレーティングシステムを介して受け取り、前記第1のテーブルを参照して、当該返された通信データに対応する汎用データベース言語で記述されたデータベース応答文に変換するステ ップと、
変換された当該データベース応答文を前記第1のインタフェースが前記データベース要求文の発行元のアプリケーションソフトウェアに渡すステップと、
を更に具備することを特徴とする請求項3記載のICカードを利用したデータベースアクセス方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002372611A JP4100166B2 (ja) | 2002-12-24 | 2002-12-24 | Icカード及び同icカードを利用したデータベースアクセス方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002372611A JP4100166B2 (ja) | 2002-12-24 | 2002-12-24 | Icカード及び同icカードを利用したデータベースアクセス方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004206277A JP2004206277A (ja) | 2004-07-22 |
| JP4100166B2 true JP4100166B2 (ja) | 2008-06-11 |
Family
ID=32811171
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002372611A Expired - Fee Related JP4100166B2 (ja) | 2002-12-24 | 2002-12-24 | Icカード及び同icカードを利用したデータベースアクセス方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4100166B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12712919B2 (en) * | 2024-06-24 | 2026-08-18 | Ncr Voyix Corporation | Application programming interface (API) domain specific language |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2128803B1 (en) * | 2007-02-07 | 2025-04-16 | Kabushiki Kaisha Toshiba | Information storage medium and medium processing system |
| KR100957638B1 (ko) | 2008-01-29 | 2010-05-13 | 주식회사 케이티 | 스마트 카드에서의 정보 관리 방법 및 장치 |
-
2002
- 2002-12-24 JP JP2002372611A patent/JP4100166B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12712919B2 (en) * | 2024-06-24 | 2026-08-18 | Ncr Voyix Corporation | Application programming interface (API) domain specific language |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004206277A (ja) | 2004-07-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5431513B2 (ja) | コマンド索引のためのローカル記憶装置および拡張記憶装置を使用したコマンドスクリプトの解釈 | |
| AU2004239623B2 (en) | Progressive relaxation of search criteria | |
| JP4739455B2 (ja) | 文書管理方法 | |
| EP3611631A1 (en) | Method, apparatus and device for generating entity relationship data, and storage medium | |
| CN112860727B (zh) | 基于大数据查询引擎的数据查询方法、装置、设备及介质 | |
| US20040162822A1 (en) | Method and apparatus for converting in-line database queries to stored procedures | |
| US20040148301A1 (en) | Compressed data structure for a database | |
| JP2000089988A (ja) | 文書プロパティに基づく自己管理型文書の文書管理方法 | |
| CN111695336A (zh) | 疾病名称对码方法、装置、计算机设备及存储介质 | |
| JP2000076118A (ja) | 分散ファイル処理装置および分散ファイル処理方法 | |
| CN111813744A (zh) | 文件的搜索方法、装置、设备及存储介质 | |
| JP2012083929A (ja) | ファイル検索装置およびファイル検索プログラム | |
| EP3193260A2 (en) | Encoding program, encoding method, encoding device, decoding program, decoding method, and decoding device | |
| CN108874944B (zh) | 一种基于xsl语言转换的异构数据映射系统及方法 | |
| US12481634B2 (en) | Systems and methods for counteracting data-skewness for locality sensitive hashing via feature selection and pruning | |
| JP2004206277A (ja) | Icカード及び同icカードを利用したデータベースアクセス方法 | |
| WO2005062207A1 (en) | Advanced method of searching, drafting and editing of electronic files | |
| CN116383412B (zh) | 基于知识图谱的功能点扩增方法和系统 | |
| US20010051899A1 (en) | Document managing apparatus for managing transaction slip data in electronic commerce | |
| CN115048649B (zh) | 文件检测方法、装置、设备及存储介质 | |
| CN117492752A (zh) | 一种页面动态配置方法、装置、计算机设备及存储介质 | |
| US7596554B2 (en) | System and method for generating a unique, file system independent key from a URI (universal resource indentifier) for use in an index-less voicexml browser caching mechanism | |
| JP3347506B2 (ja) | 機械翻訳システム | |
| US20260003776A1 (en) | Intermediate storage device, computer system, and computer command preprocessing method | |
| CN116861106B (zh) | 数据处理方法、装置、设备、存储介质及计算机程序产品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050916 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071001 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080104 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080226 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080310 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110328 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120328 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130328 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140328 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |