説明

コマンド送信装置、コマンド送信プログラム、コマンド送信方法、及びコマンド通信システム、並びにレスポンス送信装置、レスポンス送信プログラム、及びレスポンス送信方法

【課題】コマンドの生成数が増加してもコマンドの通信回数の増加を抑制できるコマンド送信装置、コマンド送信プログラム、コマンド送信方法、及びコマンド通信システム、並びに受信するコマンド数が増加してもコマンドに対するレスポンスの通信回数の増加を抑制できるレスポンス送信装置、レスポンス送信プログラム、及びレスポンス送信方法を提供する。
【解決手段】コマンド送信装置であるIC制御サーバ401は、スクリプトに記載された第1コマンド生成ステップから第2コマンド生成ステップまでの中間ステップが、第1コマンドに対するレスポンスから独立した独立ステップであるか否かを判別するステップ判別部414を備える。また、IC制御サーバ401は、中間ステップが独立ステップであると判別された場合に、第1コマンドを第2コマンドと共に送信する送信部418を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路に対するコマンドを送信するコマンド送信装置、コマンド送信プログラム、コマンド送信方法、及びコマンド通信システム、並びにコマンドに対する集積回路のレスポンスを送信するレスポンス送信装置、レスポンス送信プログラム、及びレスポンス送信方法に関する。
【背景技術】
【0002】
特許文献1には、IC(Integrated Circuit)チップに対するデータの入出力を制御する情報処理システムが開示されている。この情報処理システムは、ICチップに対するデータの入出力コマンドを生成するサーバと、サーバで生成されたコマンド及び当該コマンドに対するICチップのレスポンスを中継するクライアントとで構成されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−65957号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、特許文献1に係る情報処理システムでは、サーバで生成されるコマンド数が増加すると、ICチップを制御するためにサーバクライアント間で行われる通信の回数が増加してしまうという問題があった。
【0005】
そこで、本発明は、このような点に鑑み、その目的とするところは、コマンドの生成数が増加してもコマンドの通信回数の増加を抑制できるコマンド送信装置、コマンド送信プログラム、コマンド送信方法、及びコマンド通信システム、並びに受信するコマンド数が増加してもコマンドに対するレスポンスの通信回数の増加を抑制できるレスポンス送信装置、レスポンス送信プログラム、及びレスポンス送信方法を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の第1の観点に係るコマンド送信装置は、
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段と、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段と、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段と、を備える、
ことを特徴とする。
【0007】
第1の観点に係るコマンド送信装置において、
前記ステップ判別手段は、前記第1コマンドに対するレスポンスが前記第2コマンド生成ステップの実行に用いられない場合に、前記第2コマンド生成ステップが、前記第1コマンドに対するレスポンスから独立した独立ステップであると判別する、
としても良い。
【0008】
第1の観点に係るコマンド送信装置において、
前記ステップ判別手段は、前記第1コマンドに対するレスポンスが前記中間ステップにおける繰返条件及び分岐条件のいずれか1つ以上に用いられない場合に、前記中間ステップが前記独立ステップであると判別する、
としても良い。
【0009】
第1の観点に係るコマンド送信装置において、
前記記憶されたスクリプトを実行するスクリプト実行手段と、
前記独立ステップであると判別された中間ステップを前記スクリプト実行手段が実行する間において、前記中間ステップに含まれる前記第1コマンド生成ステップの実行によって生成された第1コマンドと、前記中間ステップに含まれる前記第2コマンド生成ステップの実行により生成された第2コマンドとを蓄積するコマンド蓄積手段と、をさらに備え、
前記送信手段は、前記独立ステップの実行が終了すると、前記蓄積された第1コマンドを、前記蓄積された第2コマンドと共に送信する、
としても良い。
【0010】
第1の観点に係るコマンド送信装置において、
前記送信手段は、前記集積回路による前記第1コマンドの実行状態を表す実行状態情報と、前記実行状態に応じたアクションを定めるアクション定義情報とを前記第1コマンドと共に送信する、
としても良い。
【0011】
また、第2の観点に係るコマンド送信プログラムは、
コンピュータを、
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段、として機能させる、
ことを特徴としている。
【0012】
また、第3の観点に係るコマンド送信方法は、
スクリプトに記載された実行手順に基づいて、集積回路に対する制御処理を構成する、前記集積回路に対する第1コマンドを生成する第1コマンド生成ステップから、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別ステップと、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信ステップと、を有する、
ことを特徴としている。
【0013】
また、第4の観点に係るレスポンス送信装置は、
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信手段と、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力手段と、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力手段と、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信手段と、を備える、
ことを特徴としている。
【0014】
また、第4の観点に係るレスポンス送信装置において、
前記入力手段は、前記出力された第1コマンドの前記集積回路による実行状態を表す実行状態情報を、さらに入力し、
前記受信手段は、前記第1コマンドと共に、前記第1コマンドの実行状態を表す実行状態情報と、前記実行状態に応じたアクションを定めるアクション定義情報とを対応付けて受信し、
前記入力された実行状態情報と対応付けて受信されたアクション定義情報で定められるアクションを実行するアクション実行手段、をさらに備える、
としても良い。
【0015】
また、第4の観点に係るレスポンス送信装置において、
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が失敗した失敗状態を表す場合があり、
前記失敗状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンドの再出力動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が失敗した失敗状態を前記入力された実行状態情報が表す場合に、前記第1コマンドを再出力するように前記出力手段を制御する、
としても良い。
【0016】
また、第4の観点に係るレスポンス送信装置において、
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が失敗した失敗状態を表す場合があり、
前記失敗状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンド及び前記第2コマンドの出力を中断する動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が失敗した失敗状態を前記入力された実行状態情報が表す場合に、前記第1コマンド及び第2コマンドの出力を中断するように前記出力手段を制御する、
としても良い。
【0017】
また、第4の観点に係るレスポンス送信装置において、
前記出力手段は、前記第2コマンドよりも前記第1コマンドを先に出力し、
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が成功した成功状態を表す場合があり、
前記成功状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンドと共に受信された第2コマンドの出力動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が成功した成功状態を前記入力された実行状態情報が表す場合に、前記第2コマンドを出力するように前記出力手段を制御する、
としても良い。
【0018】
また、第5の観点に係るレスポンス送信プログラムは、
コンピュータを、
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信手段、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力手段、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力手段、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信手段、として機能させる、
ことを特徴としている。
【0019】
また、第6の観点に係るレスポンス送信方法は、
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信ステップと、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力ステップと、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力ステップと、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信ステップと、を有する、
ことを特徴としている。
【0020】
また、第7の観点に係るコマンド通信システムは、
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段と、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段と、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段と、
前記送信された第1コマンドを前記第2コマンドと共に受信する受信手段と、
前記受信された第1コマンドと前記第2コマンドとを前記集積回路へ順に出力する出力手段と、を備える、
ことを特徴としている。
【発明の効果】
【0021】
本発明に係るコマンド送信装置、コマンド送信プログラム、コマンド送信方法、及びコマンド通信システムによれば、コマンドの生成数が増加してもコマンドの通信回数の増加を抑制できる。また、本発明に係るレスポンス送信装置、レスポンス送信プログラム、及びレスポンス送信方法によれば、受信するコマンド数が増加してもコマンドに対するレスポンスの通信回数の増加を抑制できる。
【図面の簡単な説明】
【0022】
【図1】(a)は、本発明の実施形態に係るコマンド通信システムの一構成例を表すシステム構成図である。(b)は、サービス利用システムの一構成例を表すシステム構成図である。(c)は、ICカードの一構成例を表すハードウェア構成図である。
【図2】端末装置の一構成例を表すハードウェア構成図である。
【図3】(a)は、IC制御サーバの一構成例を表すハードウェア構成図である。(b)は、IC制御サーバの一構成例を表す機能ブロック図である。
【図4】(a)は、コマンド通信システムでサービス提供前に通信されるデータの一例を説明するための図である。(b)は、コマンド通信システムでサービス提供の要求時に通信されるデータの一例を説明するための図である。
【図5】(a)は、サービス提供サーバで実行されるサービス提供処理の一例を表すフローチャートである。(b)は、サービス利用部で実行されるサービス利用処理の一例を表すフローチャートである。
【図6】(a)は、コマンド通信システムでIC処理実行時に通信されるデータの一例を説明するための図である。(b)は、コマンド通信システムでIC処理実行後に通信されるデータの一例を説明するための図である。
【図7】端末装置の一構成例を表す機能ブロック図である。
【図8】(a)は、ICチップアクセスモジュールで実行されるICアクセス処理の一例の一部を表すフローチャートである。(b)は、ICチップ制御モジュールで実行されるIC制御処理の一例を表すフローチャートである。
【図9】(a)は、一括送信されるコマンドの一例を表す図である。(b)は、アクション種別の一例を説明するための図である。(c)は、アクションの一例とアクション条件の一例とを説明するための図である。
【図10】ICチップアクセスモジュールで実行されるICアクセス処理の一例の他部を表すフローチャートである。
【図11】IC処理ロジック記憶部に記憶される電子ファイルの一例を表す図である。
【図12】独立(非保留)ステップと従属(保留)ステップとの一例を表す図である。
【図13】スクリプト実行部が実行するIC処理の一例を表すフローチャートである。
【図14】比較例に係るコマンド通信システムで行われる動作の一例を表すシーケンス図である。
【発明を実施するための形態】
【0023】
以下、本発明の実施形態について添付図面を参照しつつ説明する。
【0024】
本発明の実施形態に係るコマンド通信システム1は、コマンド通信システム1のユーザに対して所定のサービスを提供する。ここで、所定のサービスとは、例えば、電子マネーによる決済が完了したことを条件として、動画、静止画、又は音声を配信するサービス、電子文書を翻訳するサービス、若しくはユーザが購入した商品を配送するサービスなどを含む。
【0025】
コマンド通信システム1は、図1(a)に示すように、通信網10、サービス提供サーバ20、サービス利用システム31から39、及びIC(Integrated Circuit)制御システム40で構成される。通信網10は、例えば、インターネットなどのコンピュータ通信網で構成される。尚、サービス利用システム31から39は、それぞれ同様の構成であるため、サービス利用システム31についてのみ説明を行う。また、コマンド通信システム1を構成するサービス利用システムの数は、9個に限定される訳ではない。
【0026】
サービス提供サーバ20は、上記所定のサービスを提供する。サービス利用システム31は、ユーザによる上記所定のサービスの利用に用いられ、例えば、サービス提供サーバ20から送信された動画や、翻訳された電子文書などを表示する。IC制御システム40は、サービス利用システム31のユーザが所有するICカードの動作を制御するコマンドを生成し、生成したコマンドをサービス利用システム31へ送信する。
【0027】
サービス利用システム31は、図1(b)に示すように、ICカード311、ICカードR/W(Reader / Writer)312、端末装置313、及びルータ314で構成される。
【0028】
ICカード311は、図1(c)に示すようなICチップ311aとアンテナ311bとで構成される。ICチップ311aは、例えば、電子マネーの残高を表す残高情報、電子マネーの種類を表す種類情報、ユーザを識別するユーザID、及びユーザ認証に用いられるパスワードを表すパスワード情報などを記憶する。ICチップ311aは、アンテナ311bでICカードR/W312から受信されたコマンド(つまり、命令)に従って、記憶するデータに対する読出処理や更新処理を実行する。その後、ICチップ311aは、処理の実行結果を表す情報を、受信されたコマンドに対するレスポンス(つまり、応答)としてアンテナ311bからICカードR/W312へ返信する。
【0029】
ICカードR/W312は、不図示のアンテナとコントロールボードとで構成される。ICカードR/W312は、端末装置313から出力されたコマンドをICカード311へ電波送信する。また、ICカードR/W312は、ICカード311から電波送信されたレスポンスを端末装置313へ出力する。
【0030】
端末装置313は、本発明に係るレスポンス送信装置であり、例えば、パーソナルコンピュータで構成される。端末装置313は、ルータ314を介して受信したコマンドをICカードR/W312へ出力する。その後、端末装置313は、出力したコマンドのレスポンスをICカードR/W312から入力し、入力したレスポンスをルータ314へ出力する。
【0031】
ルータ314は、通信網10と端末装置313が接続するLAN(Local Area Network)とを相互接続し、端末装置313と通信網10との間でコマンド及びレスポンスを含むデータを中継する。
【0032】
図1(b)で説明した端末装置313は、図2に示すようなCPU(Central Processing Unit)313a、ROM(Read Only Memory)313b、RAM(Random Access Memory)313c、ハードディスク313d、メディアコントローラ313e、LANカード(Local Area Network)313f、ビデオカード313g、LCD(Liquid Crystal Display)313h、キーボード313i、スピーカ313j、マウス313k、及びUSB(Universal Serial Bus)端子313lを備える。
【0033】
CPU313aは、ROM313b又はハードディスク313dに保存されたプログラムに従ってソフトウェア処理を実行することで、端末装置313の全体制御を行う。RAM313cは、CPU313aによるプログラムの実行時において、処理対象とする情報(つまり、データ)を一時的に記憶する。
【0034】
ハードディスク313dは、各種の情報(つまり、データ)を保存した表(つまり、テーブル)を記憶する。尚、端末装置313は、ハードディスク313dの代わりに、フラッシュメモリを備えても良い。
【0035】
メディアコントローラ313eは、記録媒体から各種のデータ及びプログラムを読み出す。尚、記録媒体は、フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、及びブルーレイディスク(Blu-ray Disc)(登録商標)を含む。
【0036】
LANカード313fは、通信網10を介して接続するサービス提供サーバ20及びIC制御システム40との間でデータを通信(つまり、送受信)する。キーボード313i及びマウス313kは、ユーザの操作に応じた信号を入力する。
【0037】
ビデオカード313gは、CPU313aから出力されたデジタル信号に基づいて画像を描画(つまり、レンダリング)すると共に、描画された画像を表す画像信号を出力する。LCD313hは、ビデオカード313gから出力された画像信号に従って画像を表示する。スピーカ313jは、CPU313aから出力された信号に基づいて音声を出力する。なお、端末装置313は、LCD313hの代わりに、PDP(Plasma Display Panel)又はEL(Electroluminescence)ディスプレイを備えても良い。
【0038】
USB端子313lは、ICカードR/W313と接続し、ICカードR/W313とCPU313aとの間でデータ通信に用いられる。
【0039】
図1(a)のIC制御システム40は、図1(b)に示すようなIC制御サーバ401、レイヤ2スイッチ(以下、L2SWという)402、ロードバランサ403、ファイアウォール404、及びルータ405で構成される。
【0040】
IC制御サーバ401は、本発明に係るコマンド送信装置であり、ICチップ311aに対するコマンドをL2SW402へ送信する。また、IC制御サーバ401は、出力したコマンドに対するレスポンスをL2SW402から受信する。IC制御サーバ401は、図3(a)に示すようなCPU401a、ROM401b、RAM401c、ハードディスク401d、メディアコントローラ401e、LANカード401f、ビデオカード401g、LCD401h、キーボード401i、スピーカ401j、及びマウス401kを備える。図3(a)のCPU401aからマウス401kは、図2(a)のCPU313aからマウス313kと同様であるので説明を省略する。
【0041】
図1(b)のL2SW402は、例えば、スイッチングハブで構成され、IC制御サーバ401と通信網10との間で通信されるデータを中継する。ロードバランサ403は、IC制御サーバ401の負荷を分散させる。ファイアウォール404は、ファイアウォール404よりもルータ405側のコンピュータネットワークと、ファイアウォール404よりもロードバランサ403側のコンピュータネットワークとの通信を制限する。ルータ405は、通信網10とIC制御サーバ401が接続するLANとを相互接続し、IC制御サーバ401と通信網10との間でコマンド及びレスポンスを含むデータを中継する。
【0042】
ここで、IC制御サーバ401が通信するコマンド及びレスポンスは、通常、数百バイト(Byte)である。このため、IC制御サーバ401と端末装置313との間でコマンド及びレスポンスを1回通信する場合に生じる総遅延時間の内で、コマンド及びレスポンスといった通信電文のサイズ(つまり、長さ)に依存した遅延時間は、例えば、平均500kbps(kilo bit per second)程度の速度で通信可能なブロードバンド環境においては1ms(millisecond)にも満たない。
【0043】
これに対して、ルータ314、L2SW402、ロードバランサ403、ファイアウォール404、及びルータ405におけるデータ中継時間は、それぞれ5ms程度であり、通信網10におけるデータ中継時間は、10msから20ms程度である。このため、コマンド及びレスポンスを1回通信する場合に生じる総遅延時間の内で、データ中継時間に依存した遅延時間は、約70msから140msであり、通信電文のサイズに依存した遅延時間よりも大きい。
【0044】
ここで、本実施形態に係るコマンド通信システム1の比較例であるコマンド通信システム9は、コマンド通信システム9のユーザへサービスを提供するために、図14に示すようなシーケンスで情報処理を実行する。
先ず、コマンド通信システム9の端末装置913がユーザの操作に従って、ユーザに指定されたサービスの提供を求めるリクエストをサービス提供サーバ920へ送信する(以下、サービス提供要求実行という)(シーケンスQ91)。次に、サービス提供サーバ920は、受信したリクエストで提供を求められたサービスを提供する条件(以下、サービス提供条件という)を、ユーザの所有するICチップ911aに記憶されたデータが満足するか否かを判別するためのIC処理を実行するように指示する(シーケンスQ92)。尚、本実施形態及び本実施形態の比較例において、サービス提供条件は、例えば、サービス提供に対する代金の決済が完了するという条件及びユーザ認証をクリアするという条件のいずれか1つ以上を含むとして良い。
【0045】
その後、端末装置913は、実行を指示されたIC処理の実行を依頼するリクエストをIC制御サーバ901へ送信する(シーケンスQ93)。次に、IC制御サーバ901は、受信したリクエストで要求されるIC処理を実行することで、例えば、ICチップ911aが記憶する電子マネーの種類情報を読み出すコマンド(つまり、ICチップ911aに対して種類情報を返信するように命じるコマンド)を生成し(シーケンスQ94)、生成されたコマンドを端末装置913へ送信する(シーケンスQ95)。その後、IC制御サーバ901は、端末装置913から応答があるまでスリープする。
【0046】
端末装置913は、受信したコマンドをICチップ911aへ出力することで、ICチップ911aにコマンドを実行させる(シーケンスQ96)。その後、端末装置913は、ICチップ911aから、コマンドに対するレスポンスを取得し、取得したレスポンスを入力する(シーケンスQ97)。その後、端末装置913は、取得したレスポンスをIC制御サーバ901へ返却する(シーケンスQ98)。
【0047】
IC制御サーバ901は、レスポンスを受信すると、IC処理の実行を再開する。その後、IC制御サーバ901は、例えば、レスポンスから種類情報を抽出し、抽出した種類情報で表される電子マネーの種類がサービス提供に対する代金の決済に用いられるものであるか否かを判別するなどのレスポンスに対する解釈を行う(シーケンスQ99)。
【0048】
その後、IC制御サーバ901は、シーケンスQ94からQ99までを複数回繰り返し、サービス提供条件が成立したか否かを判別する。次に、IC制御サーバ901は、IC処理の実行結果(つまり、サービス提供条件の成立に対する判別結果)を端末装置913へ返信する(シーケンスQ100)。
【0049】
その後、端末装置913は、受信したIC処理実行結果をサービス提供サーバ920へ通知する(シーケンスQ101)。通知を受けたサービス提供サーバ920は、IC処理実行結果が、サービス提供条件が成立したと判別したという結果である場合に、端末装置913に対してサービスの提供を開始する(シーケンスQ102)。
【0050】
ここで、比較例のコマンド通信システム9の構成は、本実施形態のコマンド通信システム1のシステム構成と同様であるので、コマンド及びレスポンスを1回通信する場合に生じる総遅延時間の内で、データ中継時間に依存した遅延時間は、約70msから140msである。このため、シーケンスQ94からQ99の繰り返し回数が1回増加する度に、シーケンスQ91でサービスの提供を要求してから、シーケンスQ102でサービスの提供が開始するまでの時間が約70msから140msずつ増加する。
【0051】
以下、シーケンスQ94からQ99の繰り返し回数が増加しても、サービスの提供を要求してからサービスの提供が開始するまで(つまり、シーケンスQ91からQ102まで)の遅延時間の増加を軽減できるコマンド通信システム1について説明を続ける。
【0052】
図1(a)のサービス提供サーバ20は、図4(a)に示すように、サービスの提供に先立って、サービス提供条件を決定した後に、決定されたサービス提供条件をサービス利用システム31のユーザによって所有されるICチップが満足するか否かを判別するために用いられるIC処理の処理手順を記載したスクリプトを生成する(ステップS01)。次に、サービス提供サーバ20は、サービス提供サーバ20が生成したIC処理の処理ロジック(以下、IC処理ロジックという)を識別するIC処理ロジックIDをIC制御サーバ401が生成し、生成したIC処理ロジックID送信する(以下、IC処理ロジックIDの払出しという)ように要求するリクエストをIC制御サーバ401へ送信する。尚、IC制御サーバ401は、リクエストを受信し、受信したリクエストに応じてIC処理ロジックIDの払出しを行う(ステップS02)。その後、サービス提供サーバ20は、IC処理ロジックIDを受信し、受信したIC処理ロジックIDとIC処理を記載したスクリプトとを対応付けてIC制御サーバ401へ保存する(以下、IC処理ロジックの登録という)(ステップS03)。また、サービス提供サーバ20は、登録されたIC処理ロジックのIC処理ロジックIDと、IC処理ロジックに従ってサービス提供条件の成立を判別されるサービスを識別するサービスIDとを対応付けて記憶する。
【0053】
サービス提供サーバ20は、図5(a)に示すようなサービス提供処理をさらに実行する。サービス提供処理を開始すると、図4(b)に示すように、端末装置313から、端末装置313のユーザが指定したサービスを提供するように求めるリクエスト(以下、サービス提供要求という)を受信する(ステップS11)。次に、サービス提供サーバ20は、サービス提供要求から、提供を求めるサービスのサービスIDを抽出した後に、抽出したサービスIDに対応付けられたIC処理ロジックIDを検索する。その後、サービス提供サーバ20は、検索したIC処理ロジックIDを含む、サービス提供要求に対するレスポンスを生成する(ステップS12)。次に、サービス提供サーバ20は、生成されたレスポンスを端末装置313へ返信する(ステップS13)。このレスポンスは、IC処理ロジックIDで識別されるIC処理ロジックを記載したスクリプトを実行するように指示する(以下、IC処理実行指示という)。
【0054】
その後、サービス提供サーバ20は、図6(b)に示すように、端末装置313からIC処理ロジックIDで識別されるIC処理ロジックを記載したスクリプトの実行結果(以下、IC処理実行結果という)を受信する(ステップS14)。次に、サービス提供サーバ20は、受信したIC処理実行結果が、端末装置313を操作するユーザのICチップ311aがサービス提供条件を満足するという結果であるか否かを検証する(ステップS15)。その後、サービス提供サーバ20は、IC処理実行結果がサービス提供条件を満足するという結果である場合に、提供を求められたサービスの提供を端末装置313に対して開始し、そうでない場合にサービスの提供を拒否するメッセージを端末装置313へ送信する(以下、IC処理実行結果に基づいたサービス提供という)(ステップS16)。その後に、サービス提供サーバ20は、サービス提供処理の実行を終了する。
【0055】
図1(b)に示したサービスの利用に用いられる端末装置313のCPU313aは、図2(a)のハードディスク313dに保存されたウェブブラウザプログラムを実行することで、ウェブブラウザを起動する。また、CPU313aは、ユーザに操作されたキーボード313i又はマウス313kから取得する信号に基づいて、ユーザに指定されたサーバへ、ユーザに指定されたウェブページを返信するように求めるリクエストを送信するようにLANカード313fを制御する。CPU313aは、返信されたウェブページに含まれるJava(登録商標)スクリプトなどをLANカード313fから取得し、取得したスクリプトに従って、図5(b)に示すようなサービス利用処理を実行する。これにより、CPU313aは、図7に示すようなサービス利用部331として機能する。
【0056】
また、CPU313aは、ハードディスク313dに保存されたドライバプログラムを実行することで、図7に示すような出力部332a及び入力部332bを含む入出力部332として機能する。
【0057】
さらに、CPU313aは、ハードディスク313dに保存されたプログラムを用いて、図8(a)及び図10に示すようなICアクセス処理を実行する。これにより、CPU313aは、LANカード313f及びハードディスク313dと協働して、図7に示すようなICチップアクセスモジュール333として機能する。
【0058】
図5(b)のサービス利用処理の実行を開始したサービス利用部331は、ユーザの操作に応じてキーボード313i又はマウス313kから入力された信号に基づいて、ユーザが提供を指示するサービスを特定する。その後、サービス利用部331は、特定されたサービスのサービスIDを含むサービス提供要求を生成し、生成したサービス提供要求をサービス提供サーバ20へ送信する(ステップS21)。その後、サービス利用部331は、図5(a)のステップS13で送信されたIC処理ロジックIDを含むレスポンスをサービス提供サーバ20から受信する(ステップS22)。
【0059】
その後、サービス利用部331は、受信したレスポンスからIC処理ロジックIDを抽出する。次に、サービス利用部331は、図4(b)に示すように、ICチップアクセスモジュール333に対して、抽出されたIC処理ロジックIDを引き渡し、図8(a)のICアクセス処理を、引き渡したIC処理ロジックIDを用いて実行させる(つまり、呼び出す)(図5のステップS23)。その後、サービス利用部331は、スリープするなどしてサービス利用処理の実行を中断する。
【0060】
図5(b)のステップS23の処理を実行した後に、サービス利用部331は、図6(b)に示すように、IC処理ロジックIDを用いたICアクセス処理の完了通知をICチップアクセスモジュール333から受信すると(ステップS24)、サービス利用処理の実行を再開する。その後、サービス利用部331は、IC処理ロジックIDで識別されるIC処理ロジックに従ったIC処理の実行結果を表す情報をICチップアクセスモジュール333から取得する(ステップS25)。
【0061】
次に、サービス利用部331は、サービス提供サーバ20に対してIC処理の実行結果を表す情報を送信(通知)する(ステップS26)。その後、サービス利用部331は、サービス提供サーバ20からサービスの提供を拒否する旨のメッセージを受信した場合には、図2のLCD313hに、受信したメッセージを表示させ、サービスの提供を開始された場合には、提供されたサービスに基づく表示を行わせる(ステップS27)。その後、サービス利用部331は、サービス利用処理の実行を終了する。
【0062】
図5(b)のステップS23で呼出されたICチップアクセスモジュール333は、図8に示すようなICアクセス処理を実行する。
ICアクセス処理の実行を開始すると、ICチップアクセスモジュール333は、サービス利用部331からIC処理ロジックIDを引き渡される。その後、ICチップアクセスモジュール333は、引き渡されたIC処理ロジックIDで識別されるIC処理ロジックに従ったIC処理を実行するように求めるリクエスト(つまり、IC処理実行依頼)を生成する。その後、図7に示すICチップアクセスモジュール333の送信部333fは、図4(b)に示すように、生成されたIC処理実行依頼をIC制御サーバ401へ送信する(ステップS32)。
【0063】
その後、ICチップアクセスモジュール333の受信部333aは、図6(a)に示すように、図9(a)に示すようなコマンドをIC制御サーバ401から受信する(ステップS33)。ここで、図9(a)のコマンドは、IC処理の実行により生成された第1コマンドと第2コマンドとを1つの電文としたコマンドである。1つの電文とされたコマンドは、それぞれ実行される順序を表す情報と対応付けられていても良いし、電文中の開始ビットを基準としたビット位置の前後関係によって実行順序を特定可能とされていても良い。尚、1つの電文とされるコマンドの数は、2つに限定される訳ではない。また、ステップS33においては、2以上の電文が受信されても良い。この場合、2以上の電文のいずれか1つ以上が複数のコマンドを含んでいれば良い。
【0064】
これらの構成によれば、第1コマンドを第2コマンドと共に受信するので、IC処理の実行によるコマンドの生成回数が増加しても、コマンドの受信回数の増加を軽減できる。
【0065】
この第1コマンドは、図9(a)に示すように、例えば、エラー制御コードなどの制御情報に対応付けられて受信される。この制御情報は、図9(c)に示すような、第1コマンドの実行状態を表す実行状態情報(例えば、エラーコードなど)に応じた端末装置313の動作(つまり、アクション)を定めるアクション定義情報と、アクションの実行条件を表す実行条件情報とを対応付けた情報である。この実行条件情報は、実行状態情報を含み、当該実行条件情報に対応付けられたアクション定義情報で表される動作を端末装置313が実行する条件を、第1コマンドの実行状態が当該実行状態情報で表される実行状態となるという条件に定める情報である。第2コマンドも同様である。図7に示すICチップアクセスモジュール333のコマンド保存部333bは、受信した電文から抽出された各コマンドと、コマンドの制御情報とを対応付けて、コマンド記憶部333cへ保存する。尚、制御情報は、予めICチップアクセスモジュール333のコマンド記憶部333cに記憶され、第1コマンドは、制御情報と別個に受信されるとしても良い。
【0066】
アクション定義情報で定められるアクションは、図9(b)の表に示すように、継続、リトライ、及び中断に種別される。継続とは、一括送信されてきたコマンドの内で、ICカードR/W312へ直近に出力(つまり、発行)されたコマンドの次の実行順序のコマンドを発行することをいう。リトライとは、一括送信されてきたコマンドの内で、直近に発行されたコマンドと同じコマンドを発行することをいう。中断とは、一括送信されてきたコマンドの内で、直近に発行されたコマンドより後の実行順序のコマンドを発行せずに(さらに、直近に発行されたコマンドと同じコマンドを再度発行せずに)、既に発行したコマンドに対するレスポンスを返信することをいう。尚、制御コードは、例えば、種別に応じて先頭2バイトのバイト値がそれぞれ異なっている構成を採用できる。また、種別が継続の制御コードを継続コードといい、リトライの制御コードをリトライコードといい、中断の制御コードを中断コードという。
【0067】
図9(c)では、コマンドの実行状態が正常(つまり、実行成功)であることを表す実行状態情報’9000’が入力されるという条件を表す実行条件情報に対して、直近で実行されたコマンドの次の実行順序のコマンドを発行するアクションを定めるアクション定義情報が対応付けられている。つまり、当該条件が成立した場合に、当該アクションを実行することが定められている。同様に、コマンドが処理の対象とするように命じた電子ファイルが、ICチップ311aに存在しない状態を表す実行状態情報’6A82’が入力されるという条件を表す実行条件情報に対して、処理を中断してコード’1004’に対応した例外処理を実行するというアクションを定めるアクション定義情報が対応付けられている。さらに、コマンドの発行に失敗したことを表すエラーコードを検出するという条件を定める実行条件情報に対して、発行に失敗したコマンドの発行を所定の回数だけ繰り返すというアクションを定めるアクション定義情報が対応付けられている。
【0068】
図8のステップ33の処理を実行した後に、ICチップアクセスモジュール333は、受信したコマンドの全てに対して図10のステップS35からS39の処理を実行したか否かを判別する(ステップS34)。このとき、ICチップアクセスモジュール333は、全てのコマンドに対して処理を実行したわけではないと判別すると(ステップS34;No)、処理の対象としていない(つまり、未処理の)コマンドの内で、最も実行順序が早いものを処理の対象とする(ステップS35)。次に、ICチップアクセスモジュール333のアクション実行部333eは、処理の再実行回数を計数するリトライカウンタに値’0’を代入することで初期化する(ステップS36)。その後、ICチップアクセスモジュール333は、入出力部332の出力部332aを介してICカードR/W312へ処理対象としたコマンド(以下、対象コマンドという)を出力することで、図6(a)に示すように、対象コマンドを発行する(ステップS37)。その後、ICカードR/W312は、図1(c)のICチップ331aへ対象コマンドを送信する。ICチップ331aは、送信された対象コマンドを受信し、受信したコマンドに従った処理を実行する。ICチップ331aは、例えば、エラーコードなどの対象コマンドの実行状態情報を含むレスポンスをICカードR/W312へ返信する。
【0069】
図10のステップS37の後に、入力部332bは、ICチップ331aからICカードR/W312を介してレスポンスを入力する。次に、ICチップアクセスモジュール333は、図6(a)に示すように、入力部332bからレスポンスを入力する(ステップS38)。その後、ICチップアクセスモジュール333のアクション実行部333eは、受信したレスポンスから実行状態情報を抽出した後に(ステップS39)、実行状態情報が対象コマンドの実行成功を表す成功コードであるか否かを判別する(ステップS40)。このとき、アクション実行部333eは、実行状態情報が成功コードであると判別すると(ステップS40;Yes)、ステップS34から上記処理を繰り返す。これにより、アクション実行部333eは、実行順序が対象コマンドの次である未処理のコマンドが存在する場合には、当該未処理のコマンドを出力するように出力部332aを制御する。
【0070】
これらの構成によれば、第1コマンドの実行が成功した成功状態を表す実行状態情報は、第1コマンドの実行状態に応じたアクションを第2コマンドの再出力動作と定めるアクション定義情報に対応付けられている。このため、集積回路による第1コマンドの実行が成功すると、クライアント装置は、成功状態を表す実行状態情報に対応付けられたアクション定義情報に従って第2コマンドを出力するため、第1コマンドと第2コマンドとの実行順序、及び第1コマンドの実行結果によって第2コマンドの実行結果が変更されることを防止できる。
【0071】
これに対して、アクション実行部333eが、実行状態情報は成功コードでないと判別すると(ステップS40;No)、定義情報検索部333dは、発行された対象コマンドに対応付けて記憶されたエラー制御コードをコマンド記憶部333cから検索する(ステップS41)。その後、アクション実行部333eは、検索されたエラー制御コードが継続コードであるか否かを判別する(ステップS42)。このとき、アクション実行部333eは、エラー制御コードが継続コードであると判別すると(ステップS42;Yes)、継続コードに従ってステップS34から上記処理を繰り返す。これにより、アクション実行部333eは、実行順序が対象コマンドの次である未処理のコマンドが存在する場合には、当該未処理のコマンドを出力するように出力部332aを制御する。
【0072】
これに対して、アクション実行部333eは、エラー制御コードが継続コードでないと判別すると(ステップS42;No)、検索されたエラー制御コードがリトライコードであるか否かを判別する(ステップS43)。このとき、アクション実行部333eは、エラー制御コードがリトライコードであると判別すると(ステップS43;Yes)、リトライカウンタの値を’1’だけインクリメントする(ステップS44)。その後、アクション実行部333eは、リトライカウンタの値が、エラー制御コードを構成するアクション定義情報で表されるリトライ回数より多いか否かを判別する(ステップS45)。このとき、アクション実行部333eは、リトライカウンタの値がリトライ回数以下であると判別すると(ステップS45;No)、上記処理をステップS37から再度繰り返す。これにより、アクション実行部333eは、対象コマンドを再度出力するように出力部332aを制御する。
【0073】
これに対して、アクション実行部333eは、リトライカウンタの値がリトライ回数より多いと判別すると(ステップS44;Yes)、ステップS34から再度繰り返す。これにより、アクション実行部333eは、実行順序が対象コマンドの次である未処理のコマンドが存在する場合には、当該未処理のコマンドを出力するように出力部332aを制御する。
【0074】
これらの構成によれば、第1コマンドの実行が失敗した失敗状態を表す実行状態情報は、第1コマンドの実行状態に応じたアクションを第1コマンドの再出力動作と定めるアクション定義情報に対応付けられている。このため、集積回路による第1コマンドの実行が失敗すると、クライアント装置は、失敗状態を表す実行状態情報に対応付けられたアクション定義情報に従って第1コマンドを再出力するため、受信した第1コマンドを確実に実行させることができる。
【0075】
ステップS43において、アクション実行部333eは、エラー制御コードがリトライコードでないと判別すると(ステップS43;No)、エラー制御コードが中断コードであると判別し、中断コードを構成する1又は複数のアクション定義情報を抽出する。その後、アクション実行部333eは、実行状態情報で表される実行状態によって成立する実行条件を特定した後に、特定された実行条件を表す実行条件情報に対応付けられたアクション定義情報で定められる例外処理に従って例外動作(つまり、例外アクション)を行ってから、ICアクセス処理の実行を終了する。これにより、アクション実行部333eは、対象コマンド及び実行順序が対象コマンドの次である未処理のコマンドを出力しないように出力部332aを制御する。
【0076】
これらの構成によれば、第1コマンドの実行が失敗した失敗状態を表す実行状態情報は、第1コマンドの実行状態に応じたアクションを第1コマンド及び第2コマンドの出力を中断する動作と定めるアクション定義情報に対応付けられている。このため、集積回路による第1コマンドの実行が失敗すると、クライアント装置は、失敗状態を表す実行状態情報に対応付けられたアクション定義情報に従って第1コマンド及び第2コマンドの出力を中断するため、例え、第1コマンドの実行が想定外の失敗であった場合であっても、集積回路の安全を確保できる。
【0077】
ステップS34において、ICチップアクセスモジュール333が、全てのコマンドについて処理を実行したと判別した場合には(ステップS34;Yes)、ICチップアクセスモジュール333の送信部333fは、ステップS38で入力された1又は複数のレスポンスを1つの電文としてIC制御サーバ401へ一括送信する(ステップS47)。尚、ステップS47において、2以上の電文が送信されても良い。この場合、少なくとも1つ以上の電文に複数のレスポンスが含まれていればよい。
【0078】
これらの構成によれば、第1コマンドを第2コマンドと共に受信するだけでなく、第1コマンドに対する集積回路(つまり、IC)のレスポンスと、第2コマンドに対する集積回路のレスポンスとを共に送信するため、コマンドの生成回数が増加しても、コマンドの受信回数の増加だけでなく、コマンドに対するレスポンスの送信回数の増加をも軽減できる。
【0079】
図8のステップS47の後に、ICチップアクセスモジュール333の受信部333aは、図6(b)に示すように、返信したレスポンスを用いて実行されたIC処理の実行結果をIC制御サーバ401から受信する(ステップS48)。その後、ICチップアクセスモジュール333は、IC処理の実行完了をサービス利用部(ブラウザ)331へ通知する(ステップS49)。その後、ICチップアクセスモジュール333は、IC処理の実行結果をサービス利用部331へ出力した後に(ステップS50)、ICアクセス処理の実行を終了する。
【0080】
図3(a)のIC制御サーバ401のCPU401aは、ハードディスク401dに保存されたプログラムを用いて、図8(b)に示すようなIC制御処理を実行する。これにより、CPU401aは、LANカード401f及びハードディスク401dと協働して、図3(b)に示すようなICチップ制御モジュール410として機能する。また、CPU401aは、ハードディスク401dと協働して、IC処理ロジック記憶部420として機能する。ICチップ制御モジュール410は、受信部411、スクリプト登録部412、スクリプト検索部413、ステップ判別部414、スクリプト実行部415、コマンド蓄積部416、送信制御部417、及び送信部418で構成される。
【0081】
図3(b)のIC処理ロジック記憶部420には、図11に示されるような複数の電子ファイルが記憶されている。図11のサービス定義ファイルは、IC処理定義ファイルで定義されるIC処理又はIC処理ロジックのIDやIC処理などで用いられる認証方式などを定義する。IC処理定義ファイルは、IC処理のメインルーチンを記述する。IC処理のメインルーチンで呼び出される、コマンドを生成する関数又はサブルーチンは、ファンクション定義ファイルで定義(つまり、記述)されている。アクション定義ファイルは、関数又はサブルーチンの実行で生成されるコマンドに対応したエラー制御コードを定義する。ファイル定義ファイルは、コマンドで制御されるICカード(つまり、ICチップ)が記憶する電子ファイルの構成を記述する。フォーマット定義ファイルは、ICカードが記憶する各ファイルのデータ構造を定義する。
【0082】
図3(b)のスクリプト登録部412は、図1(a)のサービス提供サーバ20から受信したIC処理ロジックIDをサービス定義ファイルに登録し、IC処理ロジックに従ったIC処理の実行手順が記載されたスクリプトを、IC処理ロジックIDと対応付けてIC処理定義ファイルに登録する。
【0083】
図8(b)のIC制御処理の実行を開始すると、ICチップ制御モジュール410の受信部411は、IC処理実行依頼を端末装置313から受信する(ステップS51)。次に、スクリプト検索部413は、IC処理実行依頼からIC処理ロジックIDを抽出した後に、IC処理ロジックIDに基づいて、IC処理ロジックIDで識別されるIC処理ロジックに従ったIC処理を記載したスクリプトをIC処理ロジック記憶部420から検索する(ステップS52)。その後、スクリプト検索部413は、図4(b)に示すように、検索したスクリプトを記憶部420から読み込む(以下、IC処理ロジックを読み込むともいう)(ステップS53)。
【0084】
次に、ステップ判別部414は、読み込んだスクリプトに従ってIC処理を実行するために使用される変数を管理する変数テーブルを、それぞれの変数に対してそれぞれの初期値を代入することで初期化する(ステップS54)。その後、ステップ判別部414は、スクリプトに実行手順が記載されたIC処理の処理ステップが独立ステップであるか、従属ステップであるかを判別する(ステップS55)。
【0085】
ここで、独立ステップとは、当該ステップより前に実行されるステップで生成されたコマンドに対するレスポンスから当該ステップの実行結果が独立したステップをいい、従属ステップとは、当該ステップより前に実行されるステップで生成されたコマンドに対するレスポンスに対して当該ステップの実行結果が従属(依存)したステップをいう。具体的には、従属ステップは、当該ステップより前に実行されるステップで生成されたコマンドに対するレスポンスを用いてコマンドを生成するステップ、及び当該レスポンスを分岐条件に用いるステップを含む。これに対して、独立ステップは、当該ステップより前に実行されるステップで生成されたコマンドに対するレスポンスを用いてコマンドを生成せず、当該レスポンスを分岐条件に用いないステップを含む。
【0086】
具体例として、図12(a)に示すような、スクリプトに記載されたIC処理が、ステップ1からステップ6を順に実行する処理である場合を例に挙げて説明する。ステップ1、ステップ4、及びステップ6は、第1コマンド、第2コマンド、及び第3コマンドをそれぞれ生成する処理ステップである(以下、第1コマンド生成ステップ、第2コマンド生成ステップ、及び第3コマンド生成ステップという)。また、ステップ2、ステップ3、及びステップ5は、コマンドを生成するステップ及び条件文ステップのいずれでもない通常ステップである。尚、条件文ステップとは、条件分岐するステップ(例えば、if文又はswitch文)及び条件繰返しするステップ(例えば、while文、do while文、for文)を総称したものである。このため、図12(a)のステップ1からステップ5までは、第1コマンドに対するレスポンス及び第2コマンドに対するレスポンスのいずれを受信していてもいなくとも、ステップの実行結果に違いが生じない。よって、ステップ1からステップ5は、独立ステップである。これに対して、ステップ6は、第1コマンドに対するレスポンスを用いて第3コマンドを生成するため、少なくとも第1コマンドに対するレスポンスを受信するまで実行を保留しなければ、保留しない場合とする場合とで、ステップの実行結果に違いが生じてしまう。よって、ステップ6は、従属ステップであり、保留ステップとも称される。
【0087】
他の具体例として、図12(b)に示すような場合を例に挙げて説明する。ステップ1及びステップ4は、それぞれ第1コマンド生成ステップ及び第2コマンド生成ステップである。また、ステップ2、ステップ3、ステップ5、及びステップ6は、条件文ステップである。ステップ2及びステップ3は、第1コマンドに対するレスポンスを条件判断に用いないステップである。つまり、当該ステップより前に生成されるコマンドのレスポンスが当該ステップ以降の処理の流れに影響を与えない。同様に、ステップ5は、第1コマンドに対するレスポンス及び第2コマンドに対するレスポンスのいずれも条件判断に用いないステップである。このため、図12(b)のステップ1からステップ5までは、第1コマンドに対する第1レスポンス及び第2コマンドに対する第2レスポンスのいずれを受信していてもいなくとも、いずれか1つ以上を受信していても、当該ステップの実行結果に違いが生じない。よって、ステップ1からステップ5は、独立ステップであり、非保留ステップとも称される。これに対して、ステップ6は、第1コマンドに対するレスポンスを分岐条件の判断に用いるため、当該レスポンスが処理の流れに影響を与える。このため、少なくとも第1コマンドに対するレスポンスを受信するまで実行を保留しなければ、保留しない場合とする場合とで、ステップの実行結果に違いが生じてしまう。よって、ステップ6は、従属ステップであり、保留ステップである。
【0088】
図8のステップS55の処理を実行した後に、ICチップ制御モジュール410は、ステップS55の判別結果に基づいて、図13に示すようなIC処理を実行する(ステップS59)。その後、ICチップ制御モジュール410の送信部418は、IC処理の実行結果を表す情報を端末装置313へ返信した後に(ステップS60)、IC制御処理の実行を終了する。
【0089】
図13のIC処理が開始すると、ICチップ制御モジュール410のスクリプト実行部415は、IC処理を構成する全ステップの実行が終了したか否かを判別する(ステップS61)。このとき、スクリプト実行部415は、全ステップの実行が終了した訳ではないと判別すると(ステップS61;No)、未処理のステップの内で、最も実行順序が先のステップを処理対象のステップ(以下、対象ステップという)とし、対象ステップが保留ステップ(つまり、従属ステップ)であるか否か(つまり、独立ステップであるか)を判別する(ステップS62)。このとき、スクリプト実行部415が、対象ステップは保留ステップであると判別すると(ステップS62;Yes)、図3(b)の送信制御部417は、コマンド蓄積部416に蓄積されている1又は複数のコマンドを、図9(a)に示すように、それぞれのコマンドの種類に応じてエラー制御コードなどの制御情報と対応付ける。コマンドの種類毎に発生が予想されるコマンドの実行状態や実行状態に応じて端末装置313が実行すべき動作(つまり、アクション)が異なるためである。また、コマンドの種類毎に、コマンドのレスポンスがIC処理の実行結果に与える影響が異なるためである。尚、制御情報は、予めコマンドの種類毎に対応付けられてコマンド蓄積部416に記憶されている。
【0090】
その後、送信制御部417は、それぞれ対応付けられた1又は複数のコマンドと制御情報とを、コマンドの生成順序(つまり実行順序)を特定可能な状態で1つの電文として、端末装置313へ一括送信するように送信部418を制御する(ステップS63)。尚、1つの電文とされるコマンドの数は、2つに限定される訳ではない。また、ステップS63においては、2以上の電文が送信されても良い。この場合、2以上の電文のいずれか1つ以上が複数のコマンドを含んでいれば良い。
【0091】
これらの構成によれば、スクリプトに記載された第1コマンド生成ステップから第2コマンド生成ステップまでの中間ステップが独立ステップであると判別されると、第1コマンドを第2コマンドと共に送信するため、コマンドの生成回数が増加しても、スクリプトの実行結果に対する変更を防止しながら、コマンドの送信回数の増加を軽減できる。
【0092】
また、これらの構成によれば、コマンドと共に実行状態情報とアクション定義情報とを対応付けた制御情報を送信するため、通信回数の増加を抑制しながらコマンドの実行状態に応じて端末装置313に実行させるアクションを定めることができる。
【0093】
図13のステップS63の後に、受信部411は、送信した1又は複数のコマンドに対する1又は複数のレスポンスを1つの電文として一括受信する(ステップS64)。尚、1つの電文とされるレスポンスの数は、2つに限定される訳ではない。また、ステップS64においては、2以上の電文が受信されても良い。この場合、2以上の電文のいずれか1つ以上が複数のレスポンスを含んでいれば良い。
【0094】
ステップS62において、スクリプト実行部415は、対象ステップが保留ステップでない(つまり、独立ステップである)と判別した場合(ステップS62;No)、又はステップS64を実行した後には、対象ステップを実行する(ステップS65)。その後、スクリプト実行部415は、対象ステップの実行によりコマンドが生成されたか否かを判別する(ステップS66)。このとき、スクリプト実行部415は、コマンドが生成されなかったと判別すると(ステップS66;No)、ステップS61から上記処理を繰り返す。これに対して、スクリプト実行部415は、コマンドが生成されたと判別すると(ステップS66;Yes)、生成されたコマンドを送信せずに、一旦コマンド蓄積部416に、コマンドの生成順番を表す情報と対応付けて蓄積する、又は蓄積される位置(アドレス)の前後関係などから生成順番を特定可能に蓄積する(ステップS67)。その後、スクリプト実行部415は、ステップS61から上記処理を繰り返す。
【0095】
これらの構成によれば、スクリプトに記載された制御処理の実行手順に従って制御処理を実行しながら第1コマンドと第2コマンドとを順番に生成し、生成した第1コマンドと第2コマンドとをそれぞれ蓄積した後に、第1コマンドと共に第2コマンドを送信する。このため、制御処理の実行順序を変更せず、制御処理の実行速度の低下を防止し、かつスクリプトの実行結果の変更を防止できる。
【0096】
ステップS61において、スクリプト実行部415は、全てのステップに対して処理を実行したと判別した場合には(ステップS61;Yes)、スクリプト実行部415は、コマンド蓄積部416に蓄積されたまま送信されていないコマンドが存在するか否かを判別する(ステップS68)。このとき、スクリプト実行部415がコマンド蓄積部416に未送信のコマンドが存在すると判別すると(ステップS68;Yes)、送信制御部417は、ステップS63と同様に、蓄積されている1又は複数のコマンドを1つの電文として、端末装置313へ一括送信するように送信部418を制御した後に(ステップS69)、IC制御処理の実行を終了する。
【0097】
最後に、コマンド通信システム1の動作について説明する。
図4(a)に示すように、サービス提供前において、サービス提供サーバ20は、ステップS01として説明したように、提供されるサービスのサービス提供条件の成立を判別するためのIC処理ロジックを生成する。次に、サービス提供サーバ20は、ステップS02として説明したように、IC制御サーバ401のICチップ制御モジュール410からIC処理ロジックIDの払い出しをされる。その後、サービス提供サーバ20は、ステップS03として説明したように、払いだされたIC処理ロジックIDと、当該IDで識別されるIC処理ロジックに従ったIC処理のスクリプトとを対応付けて、IC制御サーバ401のIC処理ロジック記憶部420に登録する。
【0098】
ユーザがサービスの提供を求めると、図4(b)に示すように、サービス提供サーバ20は、ステップS11として説明したように、端末装置313のサービス利用部331から、サービス提供要求を受信する。次に、サービス提供サーバ20は、ステップS11及びS12として順に説明したように、提供を求められたサービスのサービス提供条件の成立を判別するためのIC処理を実行するよう指示するIC処理実行指示を生成し、生成したIC処理実行指示をサービス利用部331へ返信する。サービス利用部331は、ステップS23として説明したように、ICチップアクセスモジュール333を呼び出す。次に、呼び出されたICチップアクセスモジュール333は、ステップS32として説明したように、IC処理の実行を求めるIC処理実行依頼をIC制御サーバ401のICチップ制御モジュール410へ送信する。その後、ICチップ制御モジュール410は、ステップS53及びS54として順に説明したように、依頼に従ってIC処理ロジックに従ったIC処理を記載したスクリプトを読み込み、読み込んだスクリプトに記載されたIC処理で使用される変数テーブルを初期化する。
【0099】
IC処理の実行が開始されると、図6(a)に示すように、ICチップ制御モジュール410は、保留ステップ(つまり、従属ステップ)まで非保留ステップ(つまり、独立ステップ)をスクリプトに記載された順に実行する。次に、ICチップ制御モジュール410は、ステップS33として説明したように、非保留ステップの実行により生成及び蓄積された複数のコマンドを1つの電文として端末装置313へ一括送信する。端末装置313のICチップアクセスモジュール333は、ステップS37及びS38として順に説明したように、一括送信されたコマンドが複数の場合には、送信されたコマンドの発行及びコマンドに対するICカード311のレスポンスの入力を繰り返す。その後、ICチップアクセスモジュール333は、ステップS47として説明したように、入力された複数のレスポンスを1つの電文として一括返信する。
【0100】
IC処理の実行が終了すると、図6(b)に示すように、ICチップアクセスモジュール333は、ステップS48として説明したように、IC処理の実行結果を受信する。
次に、ICチップアクセスモジュール333は、ステップS24及びS25として順に説明したように、サービス利用部331は、ICチップアクセスモジュール333から、IC処理の実行完了通知を受信した後に、IC処理の実行結果を取得する。その後、サービス提供サーバ20は、ステップS14、S15、及びS16として順に説明したように、サービス利用部331からIC処理の実行結果を受信し、実行結果を検証し、サービス提供条件が成立したか否かを判別し、サービス提供条件が成立したと判別するとサービス利用部331へサービスの提供を開始する。尚、サービス提供サーバ20は、サービス提供条件が成立しなかったと判別するとサービス利用部331へのサービスの提供を拒否し、エラーメッセージを返信する。
【0101】
本実施形態において、端末装置313はICカードR/W312に接続し、ICカードR/W312は、端末装置313から出力されるコマンドに従って、端末装置313とは分離されているICカード311に内蔵されたICチップ311aのデータを読み書きするとして説明した。しかしこれに限定される訳ではなく、端末装置313は、ICチップ311aを内蔵した携帯電話であり、ICチップ311aのデータを直接読み書きする構成を採用できる。
【0102】
なお、本発明に係る機能を実現するための構成を予め備えたコマンド送信装置又はレスポンス送信装置として提供できることはもとより、プログラムの適用により、既存のサーバ装置又は端末装置を本発明に係るコマンド送信装置又はレスポンス送信装置として機能させることもできる。すなわち、上記実施形態で例示したIC制御サーバ401又は端末装置313による各機能構成を実現させるためのサーバプログラムを、既存のサーバ装置または端末装置を制御するコンピュータ(CPUなど)が実行できるように適用することで、本発明に係るコマンド送信プログラム又はレスポンス送信プログラムとして機能させることができる。
【0103】
このようなプログラムの配布方法は任意であり、例えば、メモリカード、CD−ROM、又はDVD−ROMなどの記録媒体に格納して配布できる他、インターネットなどの通信媒体を介して配布することもできる。また、本発明に係るコマンド送信方法及びレスポンス送信方法は、本発明に係るコマンド送信装置であるIC制御サーバ401及び本発明に係るレスポンス送信装置である端末装置313を用いて実施できる。
【0104】
以上本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【符号の説明】
【0105】
1:コマンド通信システム
10:通信網
20:サービス提供サーバ
31〜39:サービス利用システム
40:IC制御システム
311:ICカード
311a:ICチップ
311b:アンテナ
312:ICカードR/W
313:端末装置
313a:CPU
313b:ROM
313c:RAM
313d:ハードディスク
313e:メディアコントローラ
313f:LANカード
313g:ビデオカード
313h:LCD
313i:キーボード
313j:スピーカ
313k:マウス
313l:USB端子
314:ルータ
331:サービス利用部
332:入出力部
333:ICチップアクセスモジュール
333a:受信部
333b:コマンド保存部
333c:コマンド記憶部
333d:定義情報検索部
333e:アクション実行部
333f:送信部
401:IC制御サーバ
401a:CPU
401b:ROM
401c:RAM
401d:ハードディスク
401e:メディアコントローラ
401f:LANカード
401g:ビデオカード
401h:LCD
401i:キーボード
401j:スピーカ
401k:マウス
402:L2SW
403:ロードバランサ
404:ファイアウォール
405:ルータ
410:ICチップ制御モジュール
411:受信部
412:スクリプト登録部
413:スクリプト検索部
414:ステップ判別部
415:スクリプト実行部
416:コマンド蓄積部
417:送信制御部
418:送信部
420:IC処理ロジック記憶部

【特許請求の範囲】
【請求項1】
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段と、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段と、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段と、を備える、
ことを特徴とするコマンド送信装置。
【請求項2】
前記ステップ判別手段は、前記第1コマンドに対するレスポンスが前記第2コマンド生成ステップの実行に用いられない場合に、前記第2コマンド生成ステップが、前記第1コマンドに対するレスポンスから独立した独立ステップであると判別する、
ことを特徴とする請求項1に記載のコマンド送信装置。
【請求項3】
前記ステップ判別手段は、前記第1コマンドに対するレスポンスが前記中間ステップにおける繰返条件及び分岐条件のいずれか1つ以上に用いられない場合に、前記中間ステップが前記独立ステップであると判別する、
ことを特徴とする請求項1又は2に記載のコマンド送信装置。
【請求項4】
前記記憶されたスクリプトを実行するスクリプト実行手段と、
前記独立ステップであると判別された中間ステップを前記スクリプト実行手段が実行する間において、前記中間ステップに含まれる前記第1コマンド生成ステップの実行によって生成された第1コマンドと、前記中間ステップに含まれる前記第2コマンド生成ステップの実行により生成された第2コマンドとを蓄積するコマンド蓄積手段と、をさらに備え、
前記送信手段は、前記独立ステップの実行が終了すると、前記蓄積された第1コマンドを、前記蓄積された第2コマンドと共に送信する、
ことを特徴とする請求項1ないし3のいずれか一項に記載のコマンド送信装置。
【請求項5】
前記送信手段は、前記集積回路による前記第1コマンドの実行状態を表す実行状態情報と、前記実行状態に応じたアクションを定めるアクション定義情報とを前記第1コマンドと共に送信する、
ことを特徴とする請求項1ないし4のいずれか一項に記載のコマンド送信装置。
【請求項6】
コンピュータを、
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段、として機能させる、
ことを特徴とするコマンド送信プログラム。
【請求項7】
スクリプトに記載された実行手順に基づいて、集積回路に対する制御処理を構成する、前記集積回路に対する第1コマンドを生成する第1コマンド生成ステップから、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別ステップと、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信ステップと、を有する、
ことを特徴とするコマンド送信方法。
【請求項8】
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信手段と、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力手段と、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力手段と、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信手段と、を備える、
ことを特徴とするレスポンス送信装置。
【請求項9】
前記入力手段は、前記出力された第1コマンドの前記集積回路による実行状態を表す実行状態情報を、さらに入力し、
前記受信手段は、前記第1コマンドと共に、前記第1コマンドの実行状態を表す実行状態情報と、前記実行状態に応じたアクションを定めるアクション定義情報とを対応付けて受信し、
前記入力された実行状態情報と対応付けて受信されたアクション定義情報で定められるアクションを実行するアクション実行手段、をさらに備える、
ことを特徴とする請求項8に記載のレスポンス送信装置。
【請求項10】
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が失敗した失敗状態を表す場合があり、
前記失敗状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンドの再出力動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が失敗した失敗状態を前記入力された実行状態情報が表す場合に、前記第1コマンドを再出力するように前記出力手段を制御する、
ことを特徴とする請求項9に記載のレスポンス送信装置。
【請求項11】
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が失敗した失敗状態を表す場合があり、
前記失敗状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンド及び前記第2コマンドの出力を中断する動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が失敗した失敗状態を前記入力された実行状態情報が表す場合に、前記第1コマンド及び第2コマンドの出力を中断するように前記出力手段を制御する、
ことを特徴とする請求項9に記載のレスポンス送信装置。
【請求項12】
前記出力手段は、前記第2コマンドよりも前記第1コマンドを先に出力し、
前記実行状態情報は、前記出力された第1コマンドに対する前記集積回路の実行が成功した成功状態を表す場合があり、
前記成功状態を表す実行状態情報は、前記実行状態に応じたアクションを、前記第1コマンドと共に受信された第2コマンドの出力動作と定めるアクション定義情報に対応付けられ、
前記アクション実行手段は、前記第1コマンドの実行が成功した成功状態を前記入力された実行状態情報が表す場合に、前記第2コマンドを出力するように前記出力手段を制御する、
ことを特徴とする請求項9ないし11のいずれか一項に記載のレスポンス送信装置。
【請求項13】
コンピュータを、
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信手段、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力手段、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力手段、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信手段、として機能させる、
ことを特徴とするレスポンス送信プログラム。
【請求項14】
集積回路に対する第1コマンドを、前記集積回路に対する第2コマンドと共に受信する受信ステップと、
前記受信された第1コマンドと第2コマンドとを前記集積回路へ出力する出力ステップと、
前記出力された第1コマンドに対する前記集積回路の第1レスポンスと、前記出力された第2コマンドに対する前記集積回路の第2レスポンスとを入力する入力ステップと、
前記入力された第1レスポンスを、前記第2レスポンスと共に送信する送信ステップと、を有する、
ことを特徴とするレスポンス送信方法。
【請求項15】
集積回路に対する第1コマンドを生成する第1コマンド生成ステップと、前記集積回路に対する第2コマンドを生成する第2コマンド生成ステップとを含む制御処理の実行手順が記載されたスクリプトを記憶するスクリプト記憶手段と、
前記記憶されたスクリプトに記載された実行手順に基づいて、前記制御処理に含まれる前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが、前記第1コマンドに対する前記集積回路のレスポンスから独立した独立ステップであるか否かを判別するステップ判別手段と、
前記第1コマンド生成ステップから前記第2コマンド生成ステップまでの中間ステップが独立ステップであると判別された場合に、前記第1コマンド生成ステップの実行により生成される第1コマンドを、前記第2コマンド生成ステップの実行により生成される第2コマンドと共に送信する送信手段と、
前記送信された第1コマンドを前記第2コマンドと共に受信する受信手段と、
前記受信された第1コマンドと前記第2コマンドとを前記集積回路へ順に出力する出力手段と、を備える、
ことを特徴とするコマンド通信システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−118949(P2012−118949A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−270897(P2010−270897)
【出願日】平成22年12月3日(2010.12.3)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】