(57)【要約】【課題】装置内部でデータ検索を効率的に行い、該当する全てのデータを検索結果として段階的に出力可能なデータ検索装置、システム、方法及びプログラムを提供する。【解決手段】データ検索装置１００は、データがレコード番号に対応して格納されているデータ格納手段１１０と、検索一致レコード番号を保持する検索一致レコード保持手段と、カレントレコード番号を保持するカレントレコード保持手段と、残りデータ数を保持する残りデータ数保持手段と、レコード番号からデータ格納手段１１０を参照してデータを出力するデータ参照手段と、検索条件に一致するデータの全ての検索一致レコード番号を出力するデータ検索手段と、検索結果として送信する新たなカレントレコード番号及び残りデータ数を計算するカレントレコード計算手段と、検索命令及び次候補出力命令を受信し、検索結果としてのデータ及び残りデータ数を送信するファイル制御手段とを備える。【選択図】図１
2005165960.tif 000002
【特許請求の範囲】
【請求項１】
外部から検索条件を含む検索命令を受信し、前記検索条件に基づいてデータを検索し、当該検索結果を外部に送信するデータ検索装置において、
検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段と、
前記検索条件に一致したデータ格納手段に格納されたデータの全てのレコード番号を、検索一致レコード番号として保持する検索一致レコード保持手段と、
前記検索条件に一致した全てのデータのうち検索結果として送信する一つのデータを特定するレコード番号を、カレントレコード番号として保持するカレントレコード保持手段と、
前記検索条件に一致した全てのデータのうち、検索結果として未送信のデータの数を、残りデータ数として保持する残りデータ数保持手段と、
レコード番号を入力し、前記データ格納手段を参照して当該レコード番号のデータを出力するデータ参照手段と、
検索条件を入力し、当該検索条件と前記データ格納手段に格納されたデータとを比較し、検索条件に一致するデータの全ての検索一致レコード番号を出力するデータ検索手段と、
前記検索一致レコード番号と検索結果として送信済みのデータのカレントレコード番号とを入力し、検索結果として送信する新たなカレントレコード番号及び残りデータ数を計算して出力するカレントレコード計算手段と、
検索命令と当該検索命令を受信して検索結果の一つのデータを送信した後に次のデータを送信するための次候補出力命令とを受信する命令受信部、
前記検索命令を受信した場合に、当該検索命令に含まれる検索条件を前記データ検索手段に出力し、当該データ検索手段から検索一致レコード番号を入力し、当該検索一致レコード番号を検索一致レコード保持手段に保持させる検索制御部、
前記検索一致レコード番号と検索結果として送信済みのデータのカレントレコード番号とをカレントレコード計算手段に出力し、新たなカレントレコード番号及び残りデータ数を入力して特定し、当該新たなカレントレコード番号及び残りデータ数をカレントレコード保持手段及び残りデータ数保持手段にそれぞれ保持させる出力データ特定部、
及び、前記検索命令または次候補出力命令を受信した場合に、出力データ特定部により特定されたカレントレコード番号をデータ参照手段に出力し、当該データ参照手段からカレントレコード番号のデータを入力し、当該データと前記出力データ特定部により特定された残りデータ数とを検索結果として送信する検索結果送信部を有するファイル制御手段と、を備えたことを特徴とするデータ検索装置。
【請求項２】
請求項１に記載のデータ検索装置において、
前記ファイル制御手段は、さらに、送信する検索結果としての全てのデータが格納される送信データバッファ部、及び前記検索一致レコード保持手段に保持された検索一致レコード番号の全てのデータをデータ参照手段を用いて入力し、前記送信データバッファ部に格納する送信データ格納部を有し、
前記命令受信部は、検索条件を含む命令であって、検索結果としての全てのデータを送信するための全検索出力命令を受信し、
前記検索制御部は、全検索出力命令を受信した場合に、当該全検索出力命令に含まれる検索条件を前記データ検索手段に出力し、当該データ検索手段から検索一致レコード番号を入力し、当該検索一致レコード番号を検索一致レコード保持手段に保持させ、
前記検索結果送信部は、全検索出力命令を受信した場合に、前記送信データバッファ部に格納された検索結果としての全てのデータを送信する、ことを特徴とするデータ検索装置。
【請求項３】
請求項１または２に記載のデータ検索装置において、
前記検索命令または全検索出力命令に含まれる検索条件は、データ検索手段が検索するデータ格納手段の検索開始位置を示すオフセット値と、当該オフセット値を先頭に検索範囲の長さを示すレングス値と、当該レングス値と同じ長さを有する検索パラメータとにより構成され、
前記データ検索手段は、検索条件を入力し、当該検索条件の検索パラメータと、前記データ格納手段に格納されたデータのうちの、前記オフセット値の示す位置からレングス値の示す長さの範囲のデータとを比較し、両者が一致した場合の全てのレコード番号を検索一致レコード番号として出力する、ことを特徴とするデータ検索装置。
【請求項４】
請求項１から３までのいずれか一項に記載のデータ検索装置において、
前記検索命令または全検索出力命令に含まれる検索条件は、大小関係を意味する判定情報を含み、
前記データ検索手段は、検索条件を入力し、当該検索条件と、前記データ格納手段に格納されたデータとを比較し、前記判定情報に基づいた大小関係の条件を満たすデータの全てのレコード番号を検索一致レコード番号として出力する、ことを特徴とするデータ検索装置。
【請求項５】
請求項１から４までのいずれか一項に記載のデータ検索装置において、
前記検索命令または全検索出力命令は複数の検索条件を含み、
前記データ検索手段は、複数の検索条件を入力し、当該複数の検索条件と前記データ格納手段に格納されたデータとをそれぞれ比較し、前記全ての検索条件に一致したデータの全てのレコード番号を検索一致レコード番号として出力する、ことを特徴とするデータ検索装置。
【請求項６】
請求項１から５までのいずれか一項に記載のデータ検索装置において、
前記検索命令または全検索出力命令は、検索結果のデータ数を制限するデータ検索数を含み、
前記データ検索手段は、検索条件を入力し、当該検索条件と前記データ格納手段に格納されたデータとを比較し、前記データ検索数以下の数分のレコード番号を検索一致レコード番号として出力する、ことを特徴とするデータ検索装置。
【請求項７】
請求項１から６までのいずれか一項に記載のデータ検索装置において、
前記データ参照手段は、出力したデータをデータ格納手段から削除する、ことを特徴とするデータ検索装置。
【請求項８】
請求項１から７までのいずれか一項に記載のデータ検索装置において、
前記データ参照手段は、レコード番号を入力し、前記データ格納手段を参照し、当該レコード番号のデータに対して所定の演算処理を施し、その演算結果のデータを出力する、ことを特徴とするデータ検索装置。
【請求項９】
請求項１から８までのいずれか一項に記載のデータ検索装置において、
前記ファイル制御手段は、さらに、所定の演算処理を施すためのデータが格納される演算対象バッファ部、前記検索結果送信部によりデータ参照手段からカレントレコード番号のデータを入力した際に、当該データを前記演算対象バッファ部に格納する演算対象データ格納処理部、及び当該演算対象バッファ部に格納されたデータに所定の演算処理を施す演算処理部を有し、
前記命令受信部は、所定の演算処理を施したデータを送信するための演算結果出力命令を受信し、
前記検索結果送信部は、演算結果出力命令を受信した場合に、前記演算処理部により演算処理を施されたデータを外部に送信する、ことを特徴とするデータ検索装置。
【請求項１０】
請求項１から９までのいずれか一項に記載のデータ検索装置は、ＩＣカードに組み込まれていることを特徴とするデータ検索装置。
【請求項１１】
請求項１から９までのいずれか一項に記載のデータ検索装置は、携帯電話に組み込まれていることを特徴とするデータ検索装置。
【請求項１２】
請求項１から９までのいずれか一項に記載のデータ検索装置と、当該データ検索装置に前記検索命令等の命令を送信する送信手段、及び前記データ検索装置から検索結果としてのデータ及び残りデータ数を受信する受信手段を有するデータ読み取り装置とを備えたデータ検索システムであって、
前記送信手段は、受信手段により受信された残りデータ数が１以上である場合に、前記次候補出力命令を送信する、ことを特徴とするデータ検索システム。
【請求項１３】
請求項１２に記載のデータ検索システムにおいて、
前記データ読み取り装置の送信手段は、当該データ読み取り装置を認証する認証情報を送信し、
前記データ検索装置は、さらに、認証情報の正当性を検証し、正当または不正を判断するデータ検証手段を備え、
前記ファイル制御手段の命令受信部は、前記認証情報を受信し、当該認証情報をデータ検証手段に出力し、
前記ファイル制御手段の検索結果送信部は、データ検証手段により認証情報の正当性が正当であると判断された場合に、前記検索結果としてのデータ及び残りデータ数をデータ読み取り装置に送信する、ことを特徴とするデータ検索システム。
【請求項１４】
請求項１２または１３に記載のデータ検索システムにおいて、前記データ検索装置は、ＩＣカードに組み込まれていることを特徴とするデータ検索システム。
【請求項１５】
請求項１２または１３に記載のデータ検索システムにおいて、前記データ検索装置は、携帯電話に組み込まれていることを特徴とするデータ検索システム。
【請求項１６】
検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段を備えたデータ検索装置が、外部から受信した検索命令に含まれる検索条件に基づいて前記データ格納手段からデータを検索し、当該検索結果を外部に送信するデータ検索方法において、
外部から検索条件を含む検索命令を受信するステップと、
当該受信した検索命令に含まれる検索条件と、前記データ格納手段に格納されたデータとを比較し、前記検索条件に一致するデータの全てのレコード番号を検索一致レコード番号として保持するステップと、
前記検索条件に一致した全てのデータのうち、検索結果として送信する一つのデータを特定するための位置情報を、カレントレコード番号として保持するステップと、
前記検索一致レコード番号とカレントレコード番号とにより、新たなカレントレコード番号及び残りデータ数を計算するステップと、
前記新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算した残りデータ数とを検索結果として送信するステップと、
前記検索命令に対して送信した一つのデータの次のデータを送信するための次候補出力命令を受信するステップと、
前記検索一致レコード番号と新たに計算したカレントレコード番号により、更に新たなカレントレコード番号及び残りデータ数を計算するステップと、
前記更に新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算された残りデータ数とを検索結果として送信するステップと、を有することを特徴とするデータ検索方法。
【請求項１７】
検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段を備え、外部から受信した検索命令に含まれる検索条件に基づいて前記データ格納手段からデータを検索し、当該検索結果を外部に送信するデータ検索装置を構成するコンピュータに実行させるデータ検索プログラムであって、
外部から検索条件を含む検索命令を受信する処理と、
当該受信した検索命令に含まれる検索条件と、前記データ格納手段に格納されたデータとを比較し、前記検索条件に一致するデータの全てのレコード番号を検索一致レコード番号として保持する処理と、
前記検索条件に一致した全てのデータのうち、検索結果として送信する一つのデータを特定するための位置情報を、カレントレコード番号として保持する処理と、
前記検索一致レコード番号とカレントレコード番号とにより、新たなカレントレコード番号及び残りデータ数を計算する処理と、
前記新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算した残りデータ数とを検索結果として送信する処理と、
前記検索命令に対して送信した一つのデータの次のデータを送信するための次候補出力命令を受信する処理と、
前記検索一致レコード番号と新たに計算したカレントレコード番号により、更に新たなカレントレコード番号及び残りデータ数を計算する処理と、
前記更に新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算された残りデータ数とを検索結果として送信する処理と、を実行させるデータ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組み込みチップに格納されたデータを検索及び管理する技術に関する。
【背景技術】
【０００２】
電子的なデータを保持して携帯できるデバイスには、接触／非接触ＩＣカード、携帯電話等があり、利用者は、様々なデータをそのデバイスに格納して持ち歩くことができる。例えば、乗車券や入場券等のチケット情報を電子化したデータ（以下、「電子チケット」という。）を携帯性を有するデバイスに格納し、利用者がこのデバイスを提示することによりサービスを受けることができる、いわゆる電子チケットサービスが提案されている。
【０００３】
このような電子チケットサービスには、ＩＣカードの一規格であるＪＩＣＳＡＰ（Ｊａｐａｎ  Ｉｃ  Ｃａｒｄ  Ｓｙｓｔｅｍ  ＡＰｐｌｉｃａｔｉｏｎ  Ｃｏｕｎｃｉｌ／ＩＣカードシステム利用推進協議会）カードを用いたサービスがある。このサービスは、乗車券等の電子チケットをＪＩＣＳＡＰカードの基礎ファイルを構成する複数のレコードに格納しておき、利用者がサービスを受ける際の改札処理において、読み取り端末が当該カードの各レコードからデータを読み取ることにより、カード内の電子チケットを検証するものである。この場合、ＪＩＣＳＡＰカードには複数の異なる電子チケットを格納することもできる。
【０００４】
ところで、電子チケットサービスを提供する交通機関やコンサート会場では、改札人数が多いため、高速かつ自動的に電子チケットの改札処理を行うことが求められる。これを実現するには、デバイスに格納された複数の電子チケットの中から改札すべきデータを高速かつ自動的に検索する必要がある。また、複数の同じ電子チケットが格納されていることもあり得るため、複数のデータを全て検索する必要もある。
【０００５】
デバイスに格納されたデータを検索する手法は、以下の２つに大別される。
（１）デバイスが、保持している全てのデータを読み取り端末に送信し、読み取り端末が、全てのデータから必要なデータを内部で検索する。
（２）デバイスが、保持している全てのデータから必要なデータを内部で検索する。
上述の（１）の例にはＪＩＣＳＡＰカードを用いた検索手法がある。この例では、ＪＩＣＳＡＰカードは各レコードに格納されているデータを一データ単位に読み取り端末に送信するため、データが格納されたレコードが多い場合には送信回数が増え、送信が完了するまで時間がかかるという問題があった。また、ＪＩＣＳＡＰカードは通信速度が制限されているため、格納されたデータの総量が大きい場合にも通信が完了するまで時間がかかるという問題があった。さらに、ＪＩＣＳＡＰカードは格納された全てのデータを送信するため、そのデータに個人情報を含む場合にはその情報が流出する恐れがあるという問題があった。
【０００６】
上述の（２）はこれらの問題を解決する検索手法である。例えば、ＩＣカードに格納されたデータの最大値または最小値を検索する場合、ＩＣカード内のＣＰＵが２つのデータを大小比較し、一番大きいデータまたは一番小さいデータを検索結果として外部に出力する技術が提案されている（特許文献１を参照。）。
【０００７】
【特許文献１】特開平７−２７１９４２号公報（段落〔０００５〕〜〔０００９〕）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
一般に、ＩＣカードを用いた電子チケットサービスの改札処理においては、条件に一致した全てのデータを検索する必要がある。しかしながら、上述の（２）の例では検索結果のデータを一つしか出力することができないため、複数のデータの出力が必要な電子チケットサービスには適用できないという問題があった。また、上述の（２）の例は、数値データの最大値または最小値を検索することを目的としているため、ＩＣカードに格納されたデータの相対的な条件の検索が可能であるが、外部から与えられた条件とＩＣカードに格納されたデータとの一致の検索には利用できない。
【０００９】
そこで、本発明はかかる問題に鑑みてなされたものであり、その目的は、複数のデータが格納されたデバイスから特定のデータを検索する場合に、デバイスの内部でデータ検索を効率的に行い、該当する全てのデータを検索結果として出力可能なデータ検索装置、システム、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上述した課題を解決するために、請求項１の発明は、外部から検索条件を含む検索命令を受信し、前記検索条件に基づいてデータを検索し、当該検索結果を外部に送信するデータ検索装置において、検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段と、前記検索条件に一致したデータ格納手段に格納されたデータの全てのレコード番号を、検索一致レコード番号として保持する検索一致レコード保持手段と、前記検索条件に一致した全てのデータのうち検索結果として送信する一つのデータを特定するレコード番号を、カレントレコード番号として保持するカレントレコード保持手段と、前記検索条件に一致した全てのデータのうち、検索結果として未送信のデータの数を、残りデータ数として保持する残りデータ数保持手段と、レコード番号を入力し、前記データ格納手段を参照して当該レコード番号のデータを出力するデータ参照手段と、検索条件を入力し、当該検索条件と前記データ格納手段に格納されたデータとを比較し、検索条件に一致するデータの全ての検索一致レコード番号を出力するデータ検索手段と、前記検索一致レコード番号と検索結果として送信済みのデータのカレントレコード番号とを入力し、検索結果として送信する新たなカレントレコード番号及び残りデータ数を計算して出力するカレントレコード計算手段と、検索命令と当該検索命令を受信して検索結果の一つのデータを送信した後に次のデータを送信するための次候補出力命令とを受信する命令受信部、前記検索命令を受信した場合に、当該検索命令に含まれる検索条件を前記データ検索手段に出力し、当該データ検索手段から検索一致レコード番号を入力し、当該検索一致レコード番号を検索一致レコード保持手段に保持させる検索制御部、前記検索一致レコード番号と検索結果として送信済みのデータのカレントレコード番号とをカレントレコード計算手段に出力し、新たなカレントレコード番号及び残りデータ数を入力して特定し、当該新たなカレントレコード番号及び残りデータ数をカレントレコード保持手段及び残りデータ数保持手段にそれぞれ保持させる出力データ特定部、及び、前記検索命令または次候補出力命令を受信した場合に、出力データ特定部により特定されたカレントレコード番号をデータ参照手段に出力し、当該データ参照手段からカレントレコード番号のデータを入力し、当該データと前記出力データ特定部により特定された残りデータ数とを検索結果として送信する検索結果送信部を有するファイル制御手段とを備えたことを特徴とする。これにより、全ての検索結果を段階的に外部に送信することができる。
【００１１】
また、請求項２の発明は、請求項１に記載のデータ検索装置において、前記ファイル制御手段が、さらに、送信する検索結果としての全てのデータが格納される送信データバッファ部、及び前記検索一致レコード保持手段に保持された検索一致レコード番号の全てのデータをデータ参照手段を用いて入力し、前記送信データバッファ部に格納する送信データ格納部を有し、前記命令受信部が、検索条件を含む命令であって、検索結果としての全てのデータを送信するための全検索出力命令を受信し、前記検索制御部が、全検索出力命令を受信した場合に、当該全検索出力命令に含まれる検索条件を前記データ検索手段に出力し、当該データ検索手段から検索一致レコード番号を入力し、当該検索一致レコード番号を検索一致レコード保持手段に保持させ、前記検索結果送信部が、全検索出力命令を受信した場合に、前記送信データバッファ部に格納された検索結果としての全てのデータを送信することを特徴とする。これにより、全ての検索結果を一度にまとめて送信することができる。
【００１２】
また、請求項３の発明は、請求項１または２に記載のデータ検索装置において、前記検索命令または全検索出力命令に含まれる検索条件が、データ検索手段が検索するデータ格納手段の検索開始位置を示すオフセット値と、当該オフセット値を先頭に検索範囲の長さを示すレングス値と、当該レングス値と同じ長さを有する検索パラメータとにより構成され、前記データ検索手段が、検索条件を入力し、当該検索条件の検索パラメータと、前記データ格納手段に格納されたデータのうちの、前記オフセット値の示す位置からレングス値の示す長さの範囲のデータとを比較し、両者が一致した場合の全てのレコード番号を検索一致レコード番号として出力することを特徴とする。これにより、各レコード内に格納されているデータの一部が検索条件に一致する場合に、全ての検索結果を送信することができる。
【００１３】
また、請求項４の発明は、請求項１から３までのいずれか一項に記載のデータ検索装置において、前記検索命令または全検索出力命令に含まれる検索条件が、大小関係を意味する判定情報を含み、前記データ検索手段は、検索条件を入力し、当該検索条件と、前記データ格納手段に格納されたデータとを比較し、前記判定情報に基づいた大小関係の条件を満たすデータの全てのレコード番号を検索一致レコード番号として出力することを特徴とする。これにより、データの大小関係を比較して得た全ての検索結果を送信することができる。
【００１４】
また、請求項５の発明は、請求項１から４までのいずれか一項に記載のデータ検索装置において、前記検索命令または全検索出力命令が複数の検索条件を含み、前記データ検索手段が、複数の検索条件を入力し、当該複数の検索条件と前記データ格納手段に格納されたデータとをそれぞれ比較し、前記全ての検索条件に一致したデータの全てのレコード番号を検索一致レコード番号として出力することを特徴とする。これにより、複数の検索条件の全てを満たす検索結果を送信することができる。
【００１５】
また、請求項６の発明は、請求項１から５までのいずれか一項に記載のデータ検索装置において、前記検索命令または全検索出力命令が、検索結果のデータ数を制限するデータ検索数を含み、前記データ検索手段が、検索条件を入力し、当該検索条件と前記データ格納手段に格納されたデータとを比較し、前記データ検索数以下の数分のレコード番号を検索一致レコード番号として出力することを特徴とする。これにより、特定のデータ検索数以下の数分の検索結果を送信することができる。
【００１６】
また、請求項７の発明は、請求項１から６までのいずれか一項に記載のデータ検索装置において、前記データ参照手段が、出力したデータをデータ格納手段から削除することを特徴とする。これにより、データを検索した後にデータ格納手段から当該データを削除することができる。
【００１７】
また、請求項８の発明は、請求項１から７までのいずれか一項に記載のデータ検索装置において、前記データ参照手段は、レコード番号を入力し、前記データ格納手段を参照し、当該レコード番号のデータに対して所定の演算処理を施し、その演算結果のデータを出力することを特徴とする。これにより、演算処理を施した検索結果を送信することができる。
【００１８】
また、請求項９の発明は、請求項１から８までのいずれか一項に記載のデータ検索装置において、前記ファイル制御手段が、さらに、所定の演算処理を施すためのデータが格納される演算対象バッファ部、前記検索結果送信部によりデータ参照手段からカレントレコード番号のデータを入力した際に、当該データを前記演算対象バッファ部に格納する演算対象データ格納処理部、及び当該演算対象バッファ部に格納されたデータに所定の演算処理を施す演算処理部を有し、前記命令受信部が、所定の演算処理を施したデータを送信するための演算結果出力命令を受信し、前記検索結果送信部が、演算結果出力命令を受信した場合に、前記演算処理部により演算処理を施されたデータを外部に送信することを特徴とする。これにより、演算処理を施した検索結果を送信することができる。
【００１９】
また、請求項１０の発明は、請求項１から９までのいずれか一項に記載のデータ検索装置がＩＣカードに組み込まれていることを特徴とする。
【００２０】
また、請求項１１の発明は、請求項１から９までのいずれか一項に記載のデータ検索装置が携帯電話に組み込まれていることを特徴とする。
【００２１】
また、請求項１２の発明は、請求項１から９までのいずれか一項に記載のデータ検索装置と、当該データ検索装置に前記検索命令等の命令を送信する送信手段、及び前記データ検索装置から検索結果としてのデータ及び残りデータ数を受信する受信手段を有するデータ読み取り装置とを備えたデータ検索システムであって、前記送信手段が、受信手段により受信された残りデータ数が１以上である場合に、前記次候補出力命令を送信することを特徴とする。
【００２２】
また、請求項１３の発明は、請求項１２に記載のデータ検索システムにおいて、前記データ読み取り装置の送信手段が、当該データ読み取り装置を認証する認証情報を送信し、前記データ検索装置が、さらに、認証情報の正当性を検証し、正当または不正を判断するデータ検証手段を備え、前記ファイル制御手段の命令受信部が、前記認証情報を受信し、当該認証情報をデータ検証手段に出力し、前記ファイル制御手段の検索結果送信部が、データ検証手段により認証情報の正当性が正当であると判断された場合に、前記検索結果としてのデータ及び残りデータ数をデータ読み取り装置に送信することを特徴とする。これにより、データ検索装置は読み取り装置の正当性を検証することができる。
【００２３】
また、請求項１４の発明は、請求項１２または１３に記載のデータ検索システムにおいて、前記データ検索装置がＩＣカードに組み込まれていることを特徴とする。
【００２４】
また、請求項１５の発明は、請求項１２または１３に記載のデータ検索システムにおいて、前記データ検索装置が携帯電話に組み込まれていることを特徴とする。
【００２５】
また、請求項１６の発明は、検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段を備えたデータ検索装置が、外部から受信した検索命令に含まれる検索条件に基づいて前記データ格納手段からデータを検索し、当該検索結果を外部に送信するデータ検索方法において、外部から検索条件を含む検索命令を受信するステップと、当該受信した検索命令に含まれる検索条件と、前記データ格納手段に格納されたデータとを比較し、前記検索条件に一致するデータの全てのレコード番号を検索一致レコード番号として保持するステップと、前記検索条件に一致した全てのデータのうち、検索結果として送信する一つのデータを特定するための位置情報を、カレントレコード番号として保持するステップと、前記検索一致レコード番号とカレントレコード番号とにより、新たなカレントレコード番号及び残りデータ数を計算するステップと、前記新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算した残りデータ数とを検索結果として送信するステップと、前記検索命令に対して送信した一つのデータの次のデータを送信するための次候補出力命令を受信するステップと、前記検索一致レコード番号と新たに計算したカレントレコード番号により、更に新たなカレントレコード番号及び残りデータ数を計算するステップと、前記更に新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算された残りデータ数とを検索結果として送信するステップとを有することを特徴とする。
【００２６】
また、請求項１７の発明は、検索対象の複数のデータがレコード番号に対応して格納されているデータ格納手段を備え、外部から受信した検索命令に含まれる検索条件に基づいて前記データ格納手段からデータを検索し、当該検索結果を外部に送信するデータ検索装置を構成するコンピュータに実行させるデータ検索プログラムであって、外部から検索条件を含む検索命令を受信する処理と、当該受信した検索命令に含まれる検索条件と、前記データ格納手段に格納されたデータとを比較し、前記検索条件に一致するデータの全てのレコード番号を検索一致レコード番号として保持する処理と、前記検索条件に一致した全てのデータのうち、検索結果として送信する一つのデータを特定するための位置情報を、カレントレコード番号として保持する処理と、前記検索一致レコード番号とカレントレコード番号とにより、新たなカレントレコード番号及び残りデータ数を計算する処理と、前記新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算した残りデータ数とを検索結果として送信する処理と、前記検索命令に対して送信した一つのデータの次のデータを送信するための次候補出力命令を受信する処理と、前記検索一致レコード番号と新たに計算したカレントレコード番号により、更に新たなカレントレコード番号及び残りデータ数を計算する処理と、前記更に新たに計算したカレントレコード番号のデータをデータ格納手段から読み出し、当該データ及び前記計算された残りデータ数とを検索結果として送信する処理とを実行させることを特徴とする。
【発明の効果】
【００２７】
本発明によれば、複数のデータが格納されているデータ検索装置が内部でデータ検索を行うようにしたから、該当する全てのデータを検索結果として送信することが可能となる。従来技術では、例えば、ＩＣカードに格納されているデータを検索するために、ＩＣカードが全てのデータを読み取り装置に送信し、読み取り装置が内部で検索を行う必要があった。この例の場合、本発明では、データ検索装置をＩＣカードに組み込むことにより、データ検索はＩＣカードの内部（データ検索装置の内部）で行われるため、読み取り装置との間の通信回数を減らすことができ、通信時間も短縮することができる。
【００２８】
また、本発明によれば、データ検索装置が検索条件に一致したデータを段階的に一つずつ送信するようにしたから、読み取り装置は送信されたデータ毎に検証を行うことができ、必要なデータを検証した後は他のデータの送信を停止させ、通信処理の回数及び通信時間を減らすことができる。例えば、電子チケットサービスでは、検索条件に一致する複数枚の同じ電子チケットから１枚のチケットのみを改札することがあり得る。この場合、検索条件に一致した全てのデータを送信することは、改札する必要のない余計なデータも含めて送信することになり、通信処理の回数や時間として非効率になる。この例の場合、本発明では、読み取り装置がデータの検証を一つずつ行うことが可能となり、ＩＣカードから余計なデータが送信されることがないため、通信時間等を短縮することができる。尚、上記のように、データを段階的に一つずつ送信する手法に加えて、検索条件を満たす全てのデータを一度に送信する手法も含め、両手法を必要に応じて切り替えて用いることもできる。上記の例は、検索条件を満たす複数のデータの中から特定の一つのデータを見つけたい場合に有効である。
【００２９】
さらに、本発明によれば、上記のように、データ検索装置が不要なデータの送信を減らすことができるから、例えばＩＣカードの場合には、ＩＣカード利用者の個人情報の流出を防ぐことができる。また、電子署名を含む認証情報を用いて読み取り装置の正当性を検証することにより、更に安心してＩＣカードを利用することができる。ＩＣカードを用いた電子チケットサービスの場合には、改札処理の効率化を図ることができ、電子チケットサービスの利便性を向上させることができる。
【発明を実施するための最良の形態】
【００３０】
本発明の実施の形態について、図面を参照して説明する。
図１に、本発明の実施の形態に係るデータ検索装置の原理構成図を示す。データ検索装置１００は、外部から検索条件を含む検索命令または次候補出力命令を受信し、当該検索条件に一致する全てのデータ及び残りデータ数から成る出力データを外部に送信する機能を有するデータ格納媒体である。図２に検索命令の例を、図３に次候補出力命令の例を、図４に出力データの例をそれぞれ示す。図２から図４を参照して、検索命令は命令コード及び検索条件を、次候補出力命令は命令コードを、出力データはデータ及び残りデータ数をそれぞれ含む。図１を参照して、データ検索装置１００は、データ格納手段１１０、検索一致レコード保持手段１２０、カレントレコード保持手段１３０、残りデータ数保持手段１４０、データ参照手段１５０、データ検索手段１６０、カレントレコード計算手段１７０及びファイル制御手段１８０から構成される。
【００３１】
図５に、データ格納手段１１０に格納されたデータの構成例を示す。データ格納手段１１０は、データを格納する複数の領域（レコード）と、各レコードに対する固有の番号（レコード番号）とから構成される。例えばＥＥＰＲＯＭの場合、メモリアドレスがレコード番号であり、メモリアドレスに対応するメモリ領域がレコードである。図５では、レコード番号＃１〜＃Ｎにデータ１〜Ｎがそれぞれ格納されている。
【００３２】
検索一致レコード保持手段１２０は、データ格納手段１１０において検索条件に一致した全てのレコードのレコード番号（検索一致レコード番号）を保持する。カレントレコード保持手段１３０は、データ格納手段１１０において検索条件に一致した全てのレコードの中で、検索結果として外部に送信するレコードのレコード番号（カレントレコード番号）を保持する。残りデータ数保持手段１４０は、データ格納手段１１０において検索条件に一致した全てのレコードの中で、未送信のレコードの数（残りデータ数）を保持する。
データ参照手段１５０は、レコード番号を入力し、当該レコード番号に対応するレコードに格納されたデータをデータ格納手段１１０から読み出して出力する。
【００３３】
図６に、データ検索手段１６０の内部構成を示す。データ検索手段１６０は、検索条件が格納される検索条件格納バッファ１６１と、比較対象となるレコードのレコード番号が格納される対象レコードバッファ１６２と、検索条件に一致したレコード番号が格納される一致レコード格納バッファ１６３と、データ格納手段１１０から読み出したデータが検索条件と一致する場合にその対象レコード番号を一致レコード格納バッファ１６３に格納するデータ比較実行部１６４とから構成される。具体的には、データ比較実行部１６４は、対象レコードバッファ１６２から読み出したレコード番号のレコードに格納されたデータをデータ格納手段１１０から読み出し、検索条件格納バッファ１６１から検索条件を読み出し、データと検索条件とを比較する機能と、データが検索条件に一致した場合にそのレコード番号を一致レコード格納バッファ１６３に格納する機能と、比較対象となるレコードのレコード番号を更新して対象レコードバッファ１６２に格納する機能とを有する。
【００３４】
図７に、カレントレコード計算手段１７０の内部構成を示す。カレントレコード計算手段１７０は、カレントレコード番号及び検索一致レコード番号を入力し、新たなカレントレコード番号及び残りデータ数を出力する。カレントレコード計算手段１７０は、カレントレコード番号が格納されるカレントレコードバッファ１７１と、検索一致レコード番号が格納される検索一致レコードバッファ１７２と、カレントレコードバッファ１７１及び検索一致レコードバッファ１７２を参照し、新たなカレントレコード及び残りのレコード数（残りデータ数）を計算して出力するカレントレコード計算実行部１７３とから構成される。
【００３５】
図８に、ファイル制御手段１８０の内部構成を示す。図２に示した検索命令または図３に示した次候補出力命令を外部から受信する命令受信部１８１と、受信した命令に従って上述したデータ参照手段１５０、データ検索手段１６０、検索一致レコード保持手段１２０、カレントレコード保持手段１３０、残りデータ数保持手段１４０及びカレントレコード計算手段１７０を制御する命令実行部１８２と、検索により特定したデータ及び残りデータ数を外部に送信するデータ送信部１８３とから構成される。
【００３６】
次に、図９に示すフローチャートを用いて、データ検索装置１００の動作原理を説明する。まず、データ検索装置１００は、検索命令または次候補出力命令を外部から受信する（ステップＳ９−１）。次に、受信した命令から命令コードを判定する（ステップＳ９−２）。命令コードが検索命令である場合は、受信した検索命令に基づいて検索を開始し、検索結果のデータを得る。そして、検索の結果特定されたデータの一つ及び残りデータ数を出力データとして外部に送信する（ステップＳ９−３）。一方、ステップＳ９−２において、命令コードが次候補出力命令である場合は、特定されたデータの中から未送信のデータの一つ及び残りデータ数を得る。そして、これらを出力データとして外部に送信する（ステップＳ９−４）。
【００３７】
次に、図１０に示すフローチャートを用いて、検索命令を受信した場合におけるデータ検索装置１００の動作原理を詳細に説明する。まず、データ検索装置１００のファイル制御手段１８０が、検索命令を外部から受信する（ステップＳ１０−１）。ファイル制御手段１８０は、データ格納手段１１０の全レコード数に１を加えた数を（カレントレコード番号の初期値として）カレントレコード保持手段１３０に保持させる（ステップＳ１０−２）。ファイル制御手段１８０は、受信した検索命令に含まれる検索条件をデータ検索手段１６０に出力する（ステップＳ１０−３）。データ検索手段１６０は、入力した検索条件を格納し、データ格納手段１１０を参照して当該検索条件に一致するデータのレコード番号を格納し、特定された全てのレコード番号を検索一致レコード番号としてファイル制御手段１８０に出力する（ステップＳ１０−４）。ファイル制御手段１８０は、入力した検索一致レコード番号を検索一致レコード保持手段１２０に保持させる（ステップＳ１０−５）。
【００３８】
ファイル制御手段１８０は、カレントレコード保持手段１３０に保持されたカレントレコード番号と、検索一致レコード保持手段１２０に保持された検索一致レコード番号とを読み出し、カレントレコード計算手段１７０に出力する（ステップＳ１０−６）。カレントレコード計算手段１７０は、カレントレコード番号と検索一致レコード番号とを入力し、検索一致レコード番号の中からカレントレコード番号より小さいレコード番号の個数を算出し、その個数から１を減じた数を残りデータ数として算出する。また、検索一致レコード番号の中からカレントレコード番号より小さいレコード番号のうちの最大のレコード番号を新たなカレントレコード番号とする。そして、カレントレコード計算手段１７０は、残りデータ数及び新たなカレントレコード番号をファイル制御手段１８０に出力する（ステップＳ１０−７）。ファイル制御手段１８０は、カレントレコード計算手段１７０が出力した残りデータ数及び新たなカレントレコード番号を入力し、残りデータ数保持手段１４０及びカレントレコード保持手段１３０にそれぞれ保持させる（ステップＳ１０−８）。
【００３９】
ファイル制御手段１８０は、残りデータ数を参照し、残りデータ数が０以上か否かを判定する（ステップＳ１０−９）。残りデータ数が０以上である場合には、ファイル制御手段１８０は、カレントレコード保持手段１３０を参照し、カレントレコード番号をデータ参照手段１５０に出力する（ステップＳ１０−１０１）。そして、データ参照手段１５０は、入力したカレントレコード番号のデータをデータ格納手段１１０から読み出し、ファイル制御手段１８０にデータＡとして出力し、ファイル制御手段１８０は、当該データをデータＡとして入力する（ステップＳ１０−１０２）。一方、ステップ１０−９において、残りデータ数が０未満である場合には、ファイル制御手段１８０は、該当データが存在しないことを示す情報「ＮＵＬＬ」をデータＡとして生成する（ステップＳ１０−１１）。ファイル制御手段１８０は、ステップ１０−１０２においてデータ参照手段１５０から入力したデータＡ、またはステップ１０−１１において生成したデータＡと、残りデータ数保持手段１４０を参照して得た残りデータ数とから成る出力データを外部に送信する（ステップＳ１０−１２）。
【００４０】
次に、図１１に示すフローチャートを用いて、次候補出力命令を受信した場合におけるデータ検索装置１００の動作原理を詳細に説明する。まず、データ検索装置１００のファイル制御手段１８０が、次候補出力命令を外部から受信する（ステップＳ１１−１）。ファイル制御手段１８０は、カレントレコード保持手段１３０に保持されたカレントレコード番号と、検索一致レコード保持手段１２０に保持された検索一致レコード番号とを読み出し、カレントレコード計算手段１７０に出力する（ステップＳ１１−２）。カレントレコード計算手段１７０は、カレントレコード番号と検索一致レコード番号とを入力し、検索一致レコード番号の中からカレントレコード番号より小さいレコード番号の個数を算出し、その個数から１を減じた数を残りデータ数として算出する。また、検索一致レコード番号の中からカレントレコード番号より小さいレコード番号のうちの最大のレコード番号を新たなカレントレコード番号とする。そして、カレントレコード計算手段１７０は、残りデータ数及び新たなカレントレコード番号をファイル制御手段１８０に出力する（ステップＳ１１−３）。ファイル制御手段１８０は、カレントレコード計算手段１７０が出力した残りデータ数及び新たなカレントレコード番号を入力し、残りデータ数保持手段１４０及びカレントレコード保持手段１３０にそれぞれ保持させる（ステップＳ１１−４）。
【００４１】
ファイル制御手段１８０は、残りデータ数を参照し、残りデータ数が０以上か否かを判定する（ステップＳ１１−５）。残りデータ数が０以上である場合には、ファイル制御手段１８０は、カレントレコード保持手段１３０を参照し、カレントレコード番号をデータ参照手段１５０に出力する（ステップＳ１１−６１）。そして、データ参照手段１５０は、入力したカレントレコード番号のデータをデータ格納手段１１０から読み出し、ファイル制御手段１８０に出力し、ファイル制御手段１８０は、当該データをデータＡとして入力する（ステップＳ１１−６２）。一方、ステップ１１−５において、残りデータ数が０未満である場合には、ファイル制御手段１８０は、該当データが存在しないことを示す情報「ＮＵＬＬ」をデータＡとして生成する（ステップＳ１１−７）。ファイル制御手段１８０は、ステップ１１−６２においてデータ参照手段１５０から入力したデータＡ、またはステップ１１−７において生成したデータＡと、残りデータ数保持手段１４０を参照して得た残りデータ数とから成る出力データを外部に送信する（ステップＳ１１−８）。
【００４２】
次に、図１に示したデータ検索装置１００の外部に読み取り端末を設けたデータ検索システムについて、図１２を用いて説明する。データ検索システム３００は、データ検索装置１００と、入出力装置２１０、演算処理装置２２０、データメモリ２３０及びプログラム格納媒体２４０を備えた読み取り端末２００とから構成される。読み取り端末２００は、検索命令及び次候補出力命令をデータ検索装置１００に送信し、検索条件に一致するデータ及び残りデータ数をデータ検索装置１００から受信する。具体的には、読み取り端末２００の演算処理装置２２０は、データメモリ２３０からデータ検索装置１００に命令を送信するために必要なデータ及び受信したデータを処理するために必要なデータを読み出し、プログラム格納媒体２４０から所定のプログラムを読み出し、検索命令を生成し、入出力装置２１０に出力する。入出力装置２１０は、入力した検索命令をデータ検索装置１００に送信する。また、入出力装置２１０は、データ検索装置１００から検索条件に一致したデータの一つ及び残りデータ数を受信すると、演算処理装置２２０に出力する。演算処理装置２２０は、残りデータ数が０でない場合には必要に応じて次候補出力命令を生成し、入出力装置２１０がデータ検索装置１００に次候補命令を送信する。このように、演算処理装置２２０は、全てのデータまたは必要なデータを受信すると、データメモリ２３０に必要なデータを格納し、例えば、電子チケットの改札処理等を実行する。
【００４３】
以上のように、本発明の実施の形態によれば、データ検索装置１００が、検索命令を受信し、当該検索命令に含まれる検索条件に一致する全てのデータを特定し、更に０回または複数回の次候補出力命令を受信することにより、受信した命令毎に特定したデータの一つを順次送信するようにした。これにより、特定した全てのデータを段階的に送信することが可能となる。
【００４４】
また、本発明の実施の形態によれば、データ検索装置１００の検索一致レコード保持手段１２０が検索条件に一致した全てのレコード番号を保持するようにした。これにより、データ検索装置１００は、次候補出力命令を受信した際に再度の検索が不要になり、効率的に検索結果である特定したデータを送信することができる。
【００４５】
また、本発明の実施の形態によれば、データ検索装置１００のカレントレコード保持手段１３０が、検索結果のデータを送信する毎に新たなカレントレコード番号を保持するようにした。これにより、検索一致レコード保持手段１２０を参照することで、特定したデータの中から未送信のデータを判別することができる。従って、データ検索装置１００は、検索命令を受信したことによって特定した全てのデータを、０回または複数回の次候補出力命令を受信した際に重複することなく送信することが可能となる。
【００４６】
また、本発明の実施の形態によれば、データ検索装置１００が特定したデータと共に残りデータ数を読み取り端末２００に送信するようにした。これにより、読み取り端末２００は、受信した残りデータ数から、検索条件に一致した全てのデータのうちの未受信のデータの数を把握することができる。
【００４７】
以上実施の形態を挙げて本発明を説明したが、本発明は上記実施の形態に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、上記実施の形態では、データ検索装置１００の検索一致レコード保持手段１２０に、検索条件に一致したレコード番号である検索一致レコード番号を保持させるようにしたが、データ格納手段１１０のレコードに対応するビットに検索一致の有無を示す２値情報をそれぞれ反映し、そのビット列を検索一致レコード情報として保持させるようにしてもよい。
【００４８】
また、本発明の実施の形態によれば、ファイル制御手段１８０が、外部から検索命令または次候補出力命令を受信し、検索により特定したデータ及び残りデータ数を、段階的に外部に送信するようにしたが、検索により特定した全てのデータをまとめて一度に送信するようにしてもよい。この場合のファイル制御手段１８０の処理を以下に説明する。ファイル制御手段１８０は、送信する検索結果としての全てのデータが格納される送信データバッファ部、及び検索一致レコード保持手段１２０に保持された検索一致レコード番号の全てのデータをデータ参照手段１５０を用いて入力し、送信データバッファ部に格納する送信データ格納部を有する。ファイル制御手段１８０は、外部から検索条件を含む全検索出力命令を受信し、上述したように、検索一致レコード保持手段１２０、カレントレコード保持手段１３０及び残りデータ数保持手段１４０に所定のデータを保持させた後、送信データ格納部が、残りデータ数保持手段１４０の残りデータ数が０以上である限り、データ格納手段１１０の必要なデータを送信データバッファ部に格納する。また、ファイル制御手段１８０は、残りデータ数を参照してその数が１以上である限り、データ格納手段１１０に格納された必要なデータを送信データバッファ部に格納し、残りデータ数が０以下のときは、送信バッファに格納されたデータを外部に送信する。
【００４９】
また、本発明の実施の形態によれば、ファイル制御手段１８０が検索条件を含む検索命令を受信するようにしたが、検索条件または全検索出力命令に大または小を意味する判定情報を含むようにしてもよい。この場合、データ検索手段１６０は、検索条件を入力して保持し、判定情報が大を意味する場合には、当該検索条件よりも大きいデータが格納されているデータ格納手段１１０のレコード番号を出力する。一方、判定情報が小を意味する場合には、当該検索条件よりも小さいデータが格納されているデータ格納手段１１０のレコード番号を出力する。
【００５０】
また、本発明の実施の形態によれば、ファイル制御手段１８０が検索条件を含む検索命令を受信するようにしたが、検索命令または全検索出力命令に複数の検索条件を含むようにしてもよい。この場合、データ検索手段１６０は、全ての検索条件に一致したデータの全てのレコード番号を出力し、または、複数の検索条件のうちのいずれか一つの検索条件に一致したデータの全てのレコード番号を出力する。
【００５１】
また、本発明の実施の形態によれば、ファイル制御手段１８０が検索条件を含む検索命令を受信し、データ検索手段１６０が検索条件に一致したデータの全てのレコード番号を出力するようにしたが、検索命令または全検索出力命令は、検索すべきデータの数を表わす数値、すなわち検索結果のデータ数を制限するデータ検索数を含むようにしてもよい。この場合、データ検索手段１６０は、データ検索数以下の数分のレコード番号を出力する。このため、データ検索装置１００が検索結果として送信するデータ数を制限することができる。
【００５２】
また、本発明の実施の形態によれば、データ参照手段１５０がレコード番号のデータをデータ格納手段１１０から読み出して出力するようにしたが、これに加えて、当該出力したデータをデータ格納手段１１０から削除するようにしてもよい。
【００５３】
また、本発明の実施の形態によれば、データ参照手段１５０がレコード番号のデータをデータ格納手段１１０から読み出して出力するようにしたが、当該データに所定の演算を施し、その演算結果のデータを出力するようにしてもよい。例えば、データ参照手段は、データ格納手段１１０から読み出したデータを用いて電子署名を含む認証情報を生成し、当該認証情報を演算結果のデータとして出力する。
【００５４】
また、本発明の実施の形態によれば、ファイル制御手段１８０が、検索命令または次候補出力命令を受信し、検索により特定したデータ及び残りデータ数を送信するようにしたが、検索により特定したデータに演算を施し、当該演算結果のデータを送信するようにしてもよい。この場合のファイル制御手段１８０の処理を以下に説明する。ファイル制御手段１８０は、所定の演算を施すためのデータが格納される演算対象バッファ部、データ参照手段１５０からカレントレコード番号のデータを入力した際に、当該データを演算対象バッファ部に格納する演算対象データ格納処理部、及び演算対象バッファ部に格納されたデータに所定の演算を施す演算処理部を有する。ファイル制御手段１８０は、外部から演算結果出力命令を受信し、演算処理部により予め演算対象バッファに格納されたデータに所定の演算を施し、その演算結果のデータを外部に送信する。例えば、ファイル制御手段１８０は、外部から演算結果出力命令を受信すると、演算処理部により予め演算対象バッファに格納されたデータを用いて電子署名を含む認証情報を生成し、当該認証情報を演算結果のデータとして外部に送信する。
【００５５】
また、本発明の実施の形態によれば、データ検索装置１００が、外部から検索命令等を受信し、検索により特定したデータ等を送信するようにしたが、データ検索装置１００に、電子署名を含む認証情報を受信して当該電子署名の正当性を検証し、正当または不正を判断するデータ検証手段を備えるようにしてもよい。この場合、データ検索装置１００は、検索命令等の発信元と同じ発信元から電子署名を含む認証情報を受信する。そして、データ検証手段が電子署名の正当性を検証し、それが正当であると判断した場合には、ファイル制御手段１８０は検索により特定したデータ及び残りデータ数を送信する。一方、データ検証手段が電子署名の正当性を不当であると判断した場合には、ファイル制御手段１８０は検索により特定したデータ等を送信しない。
【００５６】
尚、本発明の実施の形態に係るデータ検索装置１００は、データ格納手段１１０、ファイル制御手段１８０、データ参照手段１５０、データ検索手段１６０、検索一致レコード保持手段１２０、カレントレコード保持手段１３０、残りデータ数保持手段１４０及びカレントレコード計算手段１７０の処理をそれぞれ実行するソフトウェアを組み込んだコンピュータによって構成される。このソフトウェアは、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピィーディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記憶媒体に格納して頒布することもできる。また、読み取り端末２００も、入出力装置２１０及び演算処理装置２２０の処理をそれぞれ実行するソフトウェアを組み込んだコンピュータによって構成され、このソフトウェアもコンピュータに実行させることができるプログラムとして、記憶媒体に格納して頒布することができる。
【実施例】
【００５７】
次に、図１２に示したデータ検索システム３００の実施例を具体的に説明する。本実施例のデータ検索システム３００は、電子チケットサービスの改札処理を実行するシステムであり、データ検索装置１００がＩＣカードまたは携帯電話に組み込まれているものとする。以下、読み取り端末２００が、ＩＣカード等に組み込まれたデータ検索装置１００から検索条件に一致した全てのデータを段階的に読み出して検索処理を実行する場合の、データ検索システム３００の動作について説明する。
【００５８】
図１３に、データ検索装置１００のデータ格納手段１１０に格納されたデータの構成例を示す。データ格納手段１１０は、レコード番号が＃１〜＃５の５つのレコードから構成されている。図１４に、検索一致レコード保持手段１２０に保持されたデータの構成例を示す。検索一致レコード保持手段１２０は、５ビットのビット列をレコード番号にそれぞれ対応させた検索一致レコード情報を保持している。図１４では、レコード番号＃１，＃３，＃４が、検索条件に一致したデータが格納されているレコード番号である。すなわち、検索条件に一致したレコードに対応しているビットには「１」を、それ以外のビットには「０」を保持している。
【００５９】
図１５に、カレントレコード保持手段１３０に保持されたデータの構成例を示す。カレントレコード保持手段１３０は、カレントレコード番号としてレコード番号＃４を保持している。図１６に、残りデータ数保持手段１４０に保持されたデータの構成例を示す。残りデータ数保持手段１４０は、残りデータ数である「２」を保持している。図１７に、検索命令の例を示す。読み取り端末２００がデータ検索装置１００に送信する検索命令は、命令コードと、オフセット値と、レングスと、検索パラメータとの４つの情報から構成されている。以下、オフセット値、レングス及び検索パラメータをまとめて検索条件という。図１７に示した検索命令を読み取り端末２００から受信したデータ検索装置１００は、各レコードのオフセット値の位置からレングスの長さまでの範囲におけるデータから、検索パラメータに一致する（検索パラメータの示す条件を満足する）データを特定し、当該特定したデータを読み取り端末２００に送信する。
【００６０】
まず、図１８に示すフローチャートを用いて、読み取り端末２００が検索条件に一致した全てのデータを段階的に受信する動作を説明する。読み取り端末２００は、データ検索装置１００に検索命令を送信する（ステップＳ１８−１）。読み取り端末２００は、データ検索装置１００から残りデータ数及び特定されたデータの一つを受信し（ステップＳ１８−２）、受信した残りデータ数が１以上か否かを判定する（ステップＳ１８−３）。残りデータ数が１以上の場合は、データ検索装置１００に次候補出力命令を送信する（ステップＳ１８−４）。そして、ステップＳ１８−２〜１８−４を繰り返す。ステップＳ１８−３において残りレコード数が０以下の場合は、検索処理を終了する（ステップＳ１８−５）。
【００６１】
次に、図１９から図２７を用いて、データ検索装置１００が検索命令を受信してから、０回または複数回の次候補出力命令を受信し、検索条件に一致する全てのデータを送信するまでの、データ検索装置１００の各手段に格納または保持されたデータの遷移を示す。ここでは、図１３に示したデータがデータ格納手段１１０に格納されている状態で、読み取り端末２００が、図１７に示した検索命令、すなわち、データ格納手段１１０のレコードにおいてオフセット値「０２」からレングス「０２」までの範囲で検索パラメータ「２３ｃａ」に一致するデータを検索する命令をデータ検索装置１００に送信し、データ検索装置１００が、検索パラメータ「２３ｃａ」に一致するレコード番号＃１，＃３，＃４に格納されたデータをそれぞれ読み取り端末２００に送信するものとする。
【００６２】
まず、図１９に示すように、検索命令を受信する前の初期状態として、検索一致レコード保持手段１２０は「０００００」を、カレントレコード保持手段１３０は「＃０」を、残りデータ数保持手段１４０は「０」を保持している。データ検索装置１００のファイル制御手段１８０は、読み取り端末２００から検索命令を受信すると、データ格納手段１１０の全レコード数である「５」に１を加えた「＃６」をカレントレコード保持手段１３０に保持させる（図２０）。次に、ファイル制御手段１８０は、データ検索手段１６０によって特定された、図１４に示した検索一致レコード情報「１０１１０」を検索一致レコード保持手段１２０に保持させる（図２１）。
【００６３】
ファイル制御手段１８０は、検索条件に一致した全てのレコードのレコード番号の中で、更新前のカレントレコード番号＃６より小さく、かつ最大のレコード番号であるレコード番号「＃４」をカレントレコード計算手段１７０から入力し、カレントレコード保持手段１３０に保持させる。また、ファイル制御手段１８０は、検索条件に一致した全てのレコードのレコード番号の中で、更新前のカレントレコード番号＃６よりも小さいレコード番号である＃１，＃３及び＃４の数３から１を減じた「２」を残りデータ数として残りデータ数保持手段１４０に保持させる（図２２）。次に、ファイル制御手段１８０は、データ参照手段１５０を介してデータ格納手段１１０からカレントレコード番号＃４に格納されているデータを取得し、当該データ及び残りデータ数「２」を読み取り端末２００に送信する（図２３）。
【００６４】
ファイル制御手段１８０は、読み取り端末２００から次候補出力命令を受信すると、検索条件に一致した全てのレコードのレコード番号の中で、カレントレコード番号＃４より小さく、かつ最大のレコード番号であるレコード番号「＃３」をカレントレコード計算手段１７０から入力し、カレントレコード保持手段１３０に保持させる。また、ファイル制御手段１８０は、検索条件に一致した全てのレコードのレコード番号の中で、カレントレコード番号＃４よりも小さいレコード番号である＃１及び＃３の数２から１を減じた「１」を残りデータ数として残りデータ数保持手段１４０に保持させる（図２４）。次に、ファイル制御手段１８０は、データ参照手段１５０を介してデータ格納手段１１０からカレントレコード番号＃３に格納されているデータを取得し、当該データ及び残りデータ数「１」を読み取り端末２００に送信する（図２５）。
【００６５】
ファイル制御手段１８０は、読み取り端末２００から次候補出力命令を受信すると、検索条件に一致した全てのレコードのレコード番号の中で、カレントレコード番号＃３より小さく、かつ最大のレコード番号であるレコード番号「＃１」をカレントレコード計算手段１７０から入力し、カレントレコード保持手段１３０に保持させる。また、ファイル制御手段１８０は、検索条件に一致した全てのレコードのレコード番号の中で、カレントレコード番号＃３よりも小さいレコード番号＃１の数１から１を減じた「０」を残りデータ数として残りデータ数保持手段１４０に保持させる（図２６）。次に、ファイル制御手段１８０は、データ参照手段１５０を介してデータ格納手段１１０からカレントレコード番号＃１に格納されているデータを取得し、当該データ及び残りデータ数「０」を読み取り端末２００に送信する（図２７）。これにより、検索条件に一致した全てのデータの段階的な送信が完了する。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態に係るデータ検索装置１００を示す原理構成図である。
【図２】データ検索装置１００が受信する検索命令の構成例を示す図である。
【図３】データ検索装置１００が受信する次候補出力命令の構成例を示す図である。
【図４】データ検索装置１００が送信する出力データの構成例を示す図である。
【図５】データ格納手段１１０に格納されたデータの構成例を示す図である。
【図６】データ検索手段１６０の内部構成を示す図である。
【図７】カレントレコード計算手段１７０の内部構成を示す図である。
【図８】ファイル制御手段１８０の内部構成を示す図である。
【図９】データ検索装置１００の動作原理を説明するフローチャートである。
【図１０】検索命令を受信した場合におけるデータ検索装置１００の動作原理を説明するフローチャートである。
【図１１】次候補出力命令を受信した場合におけるデータ検索装置１００の動作原理を説明するフローチャートである。
【図１２】本発明の実施の形態に係るデータ検索システム３００を示す構成図である。
【図１３】実施例におけるデータ格納手段１１０に格納されたデータの構成例を示す図である。
【図１４】実施例における検索一致レコード保持手段１２０に保持されたデータの構成例を示す図である。
【図１５】実施例におけるカレントレコード保持手段１３０に保持されたデータの構成例を示す図である。
【図１６】実施例における残りデータ数保持手段１４０に保持されたデータの構成例を示す図である。
【図１７】実施例における検索命令の例を示す図である。
【図１８】実施例における読み取り端末２００の動作を説明するフローチャートである。
【図１９】実施例におけるデータ検索装置１００の各手段に格納または保持された、初期状態のデータを示す図である。
【図２０】実施例における検索命令受信後（１）のデータを示す図である。
【図２１】実施例における検索命令受信後（２）のデータを示す図である。
【図２２】実施例における検索命令受信後（３）のデータを示す図である。
【図２３】実施例における検索命令受信後（４）のデータを示す図である。
【図２４】実施例における１回目の次候補出力命令受信後（１）のデータを示す図である。
【図２５】実施例における１回目の次候補出力命令受信後（２）のデータを示す図である。
【図２６】実施例における２回目の次候補出力命令受信後（１）のデータを示す図である。
【図２７】実施例における２回目の次候補出力命令受信後（２）のデータを示す図である。
【符号の説明】
【００６７】
１００  データ検索装置
１１０  データ格納手段
１２０  検索一致レコード保持手段
１３０  カレントレコード保持手段
１４０  残りデータ数保持手段
１５０  データ参照手段
１６０  データ検索手段
１６１  検索条件格納バッファ
１６２  対象レコードバッファ
１６３  一致レコード格納バッファ
１６４  データ比較実行部
１７０  カレントレコード計算手段
１７１  カレントレコードバッファ
１７２  検索一致レコードバッファ
１７３  カレントレコード計算実行部
１８０  ファイル制御手段
１８１  命令受信部
１８２  命令実行部
１８３  データ送信部
２００  読み取り端末
２１０  入出力装置
２２０  演算処理装置
２３０  データメモリ
２４０  プログラム格納媒体
３００  データ検索システム
【図１】
2005165960.tif 000003
【図２】
2005165960.tif 000004
【図３】
2005165960.tif 000005
【図４】
2005165960.tif 000006
【図５】
2005165960.tif 000007
【図６】
2005165960.tif 000008
【図７】
2005165960.tif 000009
【図８】
2005165960.tif 000010
【図９】
2005165960.tif 000011
【図１０】
2005165960.tif 000012
【図１１】
2005165960.tif 000013
【図１２】
2005165960.tif 000014
【図１３】
2005165960.tif 000015
【図１４】
2005165960.tif 000016
【図１５】
2005165960.tif 000017
【図１６】
2005165960.tif 000018
【図１７】
2005165960.tif 000019
【図１８】
2005165960.tif 000020
【図１９】
2005165960.tif 000021
【図２０】
2005165960.tif 000022
【図２１】
2005165960.tif 000023
【図２２】
2005165960.tif 000024
【図２３】
2005165960.tif 000025
【図２４】
2005165960.tif 000026
【図２５】
2005165960.tif 000027
【図２６】
2005165960.tif 000028
【図２７】
2005165960.tif 000029