JP2004086890A - Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program - Google Patents

Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program Download PDF

Info

Publication number
JP2004086890A
JP2004086890A JP2003207781A JP2003207781A JP2004086890A JP 2004086890 A JP2004086890 A JP 2004086890A JP 2003207781 A JP2003207781 A JP 2003207781A JP 2003207781 A JP2003207781 A JP 2003207781A JP 2004086890 A JP2004086890 A JP 2004086890A
Authority
JP
Japan
Prior art keywords
script
game
application program
execution
smart card
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.)
Withdrawn
Application number
JP2003207781A
Other languages
Japanese (ja)
Inventor
Hiroko Suketa
助田 浩子
Yusuke Mishina
三科 雄介
Masaru Oki
大木 優
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003207781A priority Critical patent/JP2004086890A/en
Publication of JP2004086890A publication Critical patent/JP2004086890A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Credit Cards Or The Like (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a method which enables a plurality of kinds of games to be replaced by increasing flexibility as to application programs, e.g. a game program on an IC card system which has high-level information storage capacity and can actualize high security. <P>SOLUTION: Commonizable treatment parts are provided as components and the components wherein definitions of games are described as scripts are replaced from a terminal when necessary. In a program, an interpreter which interprets and executes a script, a control part which controls the replacement of a script, and a control part which controls point data and game execution right are prepared. Consequently, different kinds of games are dynamically changed and one application handles different kinds of games. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、アプリケーションプログラムの供給方法、スマートカード、スクリプト供給方法、端末装置およびアプリケーションプログラムを有する記憶媒体に関し、特に、高いセキュリティを持つコンピュータシステム、特に、不揮発性メモリにアプリケーションプログラムを格納し、カード内部でアプリケーションプログラムを実行することが可能なICカードを核としたコンピュータシステムに関するものである。
【0002】
【従来の技術】
ICチップにCPU(Central Processing Unit)を内蔵し、カード内部での演算を行なうことができるICカード(あるいはスマートカードと称する)は、高度な情報記憶能力を持ち、高いセキュリティを実現できることから、さまざまな分野での利用が期待され、特に電子マネーなど金融分野において、近年積極的に導入が進められている。
【0003】
最近では、1枚のカード上に安全に複数のアプリケーションを共存できるようなカードOS(Operating System)が一般化してきた。これらマルチアプリケーション対応カードOSとしては、Mondex International社による“MULTOS”や、Sun Microsystems社による“Java Card”(Javaは登録商標である)などが知られている。こうしたOSによって管理されるマルチアプリケーション対応ICカードでは、アプリケーションプログラム間の独立性が高くなるように制御されており、安全に複数のアプリケーションを共存させられるだけでなく、発行後のカードに新たにアプリケーションプログラムを追加したり、不要なアプリケーションプログラムを削除したりすることも可能となっており、単なる情報格納媒体としてではなく、安全なコンピュータとしてみなすことができる。カードの持つ高いセキュリティを活かし、あるいは従来の磁気カード機能の置き換えという観点から、クレジットカードや電子マネーなどの金融分野での応用、特に複数アプリケーションの連携などが期待されている。
【0004】
従来から、顧客囲い込みの一手段として、ポイントシステムあるいはロイヤリティプログラム(以下、ポイントシステムと称する)といったシステムが一般化している。これは、「カードの利用に応じてポイントが加算されその点数の蓄積により所定のサービスが受けられるシステム」と定義され、ポイント獲得による特典への期待から、店舗やカードの利用を促すといった効果を狙っている。システムの例として商店街のスタンプカードやデパートなどのポイントシステム、あるいは航空会社のマイレージプログラムのようなものがある。一例としてデパートのポイントシステムを例に挙げると、会員はカードを所持し、該当デパートで買い物をする際にカードを提示すると、購入履歴とともに売り上げに応じてポイントが蓄積され(例えば1000円の買い物ごとに20ポイント付加)、ポイントがある一定たまると、そのデパートで利用できる商品券と引き換えることができる(例えば1000ポイントで1000円の商品券と交換。つまり、5万円の買い物につき会員は1000円分の割引が受けられる計算となる)。キャンペーン期間中はポイント付加の割合が倍になったり、1年間の購入額がある一定の金額以上に達すると割引率が高くなったりすることで、消費者の購買意欲を煽るものである。別の例として、航空会社のマイレージプログラムでは、購入額ではなく飛行距離を積算し、ある一定の飛行距離に達すると無料航空券やシートのアップグレードサービスが受けられるというようなシステムもある。この場合も、会員の利用履歴に応じてサービスを与えることにより、会員が同じ航空会社を選択する動機づけを与えるものである。こういったポイントシステムをICカード化することにより、カード利用者のポイントがカード上で正しく管理することが可能となる。マルチアプリケーション対応ICカードにおいては、電子マネーやクレジットカード機能などと組み合わせることで、複数アプリケーションを効果的に連携することも可能となる。
【0005】
以上述べたようなマルチアプリケーション対応ICカードの特性を活かしたカード上のアプリケーションのひとつとして、ポイントシステムにゲーム機能を付加し、カードに格納されたゲームを実行した結果に応じてポイントの値を連動させる「ゲーム付きポイントシステム搭載ICカードシステム」が提案されてきた。これは、特願平10−239812号および特願平10−321684号にて出願済みである。これらの発明の中では、ユーザがゲームを実行することのできる回数を「ゲーム実行権」と定義し、このゲーム実行権とゲーム実行の結果であるポイントの値を管理することで、ICカードプログラム中で安全にゲームを実行可能な方法について提案した。
【0006】
また、これとは別に、ICカード上でポイントシステムの管理を行う方法として、ポイント管理プログラムの中に複数の固有プログラムを有するシステムも提案されている。このシステムは特願平10−307216号にて出願されており、この方法によれば、販売店ごとに固有プログラムをポイント管理プログラムの中に埋め込むことにより、ひとつのポイントアプリケーションプログラムで、複数の販売店向けのポイントを管理することが可能となる。
【0007】
【発明が解決しようとする課題】
“MULTOS”をはじめとするマルチアプリケーション対応OSは、セキュリティの観点から、各々が所定のロード機構を持っている。ロード機構では、アプリケーションをダウンロードする場合に、ダウンロードしたアプリケーションプログラムが改竄されていないか、正当な開発者が開発したものか、カードにそのアプリケーションプログラムをダウンロードする権利があるかといった項目のチェックを行なう。例えば、改竄の有無は、アプリケーションプログラムのハッシュ値を認証局(CA)の秘密鍵で署名したデータをアプリケーションプログラムに付随させ、カードで再計算したハッシュ値と比較一致するかで検証を行なうことができる。これらのチェックはICカードの安全性を左右するため、各カードごとに厳格な手順が規定されており、また転送されるアプリケーションプログラムも所定のデータ形式を持っていないとダウンロードできない仕組みになっている。この規定をアプリケーション発行スキームと呼ぶ。
【0008】
このため、マルチアプリケーション対応OSを搭載したICカードにアプリケーションプログラムをロードするためには、上記のアプリケーション発行スキームに従い、所定のアプリケーション認定および登録の手続きを行なわなければならない。そのため、原理的には発行後のカード上でアプリケーションプログラムの入れ替えが可能であるとはいえ、実際にアプリケーションプログラムの入れ替えを行なうためには、かなりの手間と時間が必要になることになる。これはICカードの安全性を保つためであり、通常の金融系アプリケーションであれば、それほど頻繁にプログラムの内容が変更されることもないために大きな問題とはならない。
【0009】
しかし、ゲームアプリケーションの場合には、ゲームの種類にバリエーションがないとユーザが飽きてしまう可能性が大きく、ゲームの内容をこまめに変更したいという要望が大きい。ゲームの種類をこまめに入れ替えたいという要望に対して、毎回アプリケーション認定・登録の手続きを行っていたのでは、手続きが煩雑でありゲームアプリケーションの特長を活かしきることができない。
【0010】
また、異なる種類のゲームごとに別々のアプリケーションプログラムを開発・配布していたのでは、古い種類のゲームで得たポイントを新しい種類のゲームに移行する際の手続きが必要となり、このためのポイント管理が煩雑となるという問題点がある。
【0011】
開発の面でも、類似した機能を持つアプリケーションを毎回別々に開発していたのでは、処理に無駄が多くなるし、たくさんの種類のゲームアプリケーションの開発・配布の間で、発行管理やカードへのロード時の配布管理が必要となる。
【0012】
さらに、“MULTOS”や“Java Card”といったいくつかの異なるICカード用OSが混在する現状においては、ICカード上のゲームアプリケーションプログラムを、ゲームの種類を変えるたびに複数のプラットフォーム上に別々に構築する必要があり、開発工数が大きくなるという問題点がある。
【0013】
なお、これらの問題はゲームアプリケーションに限った問題ではなく、処理内容を頻繁に変更したいICカード上のアプリケーションにおいては、同様の問題が生じることが予想される。
【0014】
本発明の目的は、ICカード上で実行するゲームアプリケーションにおいて、ゲームのバリエーションを増やした場合であっても、煩雑なアプリケーションプログラム入れ替え処理が不要となり、これにより手軽に複数種類のゲームをカードの上で扱うことのできるとともに、OSの違いに依存せずに新しいゲームを開発可能とするような、ゲームアプリケーションプログラムを提供することにある。
【0015】
またこれをゲームアプリケーションだけでなく、一般のアプリケーションにも拡張するならば、本発明の別の目的は、ICカードのアプリケーションにおいて、処理のバリエーションを増やした場合にも煩雑なアプリケーションプログラム入れ替え処理が不要となり、これにより手軽に複数種類の処理を扱うことのできるともに、OSの違いに依存せずに新しいゲームを開発可能とするような、ICカード上のアプリケーションプログラムを提供することにある。
【0016】
【課題を解決するための手段】
以上の目的を達成するために、ICカード上の単一のアプリケーションプログラムで複数種類のゲームを扱うための手段を提案する。
【0017】
まず考えられる方針は、ゲーム実行の結果であるポイントデータおよびゲーム実行権を取り扱うための部分(データ格納部および処理部)を複数ゲーム間で共有することである。ゲームプログラムの処理において、ポイントデータおよびゲーム実行権の管理部分を共通化してしまえば、ゲームによって異なるのは、実際にゲーム結果を判定するアルゴリズムだけと考えて良い。
【0018】
しかし、それほど複雑な計算を行なえるとは言い難いICカード上で主に実行されるゲームの種類を吟味すると、ゲーム実行部分は、「端末経由でユーザから送られるデータを受信」「乱数の発生」」「簡単な加減算」「データの格納」「データの比較と分岐」程度の処理とその組み合わせを繰り返すものであることがわかる。これらの処理を行なう部分を「コンポーネント」として部品化すると、それぞれのゲームの定義は、これらのコンポーネントの呼出し順序を定義する「スクリプト」のようなもので表現することができる。 つまり、ICカードのひとつのアプリケーションプログラム中に、ゲームを実行するための処理を行なう処理部品「コンポーネント」と、スクリプトを解釈・実行する「インタープリタ」を用意すれば、プログラム外部で生成されたゲーム定義用の「スクリプト」を実行することで異なるゲームの処理を行なうことができる。
【0019】
また、このスクリプトを必要に応じて端末を通じてアプリケーションプログラム外部から入れ替えられるようにすれば、ICカード上の単一のゲームアプリケーションプログラムによって、異なる複数種類のゲームを実行することが可能となる。
【0020】
しかし、スクリプトの入れ替え・追加を可能とした場合に、ここでどんなスクリプトでもアプリケーションプログラム内部に格納してしまったとしたら、悪意のあるスクリプトによりゲーム結果のポイントが不正な値にされてしまう可能性もあり、せっかくのICカードOSの持つセキュリティが活かされないことになる。そこで、OSの定義したアプリケーションプログラム発行スキームの代わりに、アプリケーション内部で擬似的な発行スキームを規定することで、不正なスクリプトが格納されないように制御しなければならない。具体的には、スクリプトの入れ替えを制御する制御部を用意し、不正なスクリプトが格納されないようにする必要がある。
【0021】
つまり、OSの持つアプリケーションプログラム発行スキームの代わりに、アプリケーションプログラムが擬似的なゲーム発行スキームを用意し、安全性を確保するとともに、アプリケーションプログラム内部でスクリプトの解釈・実行を行なう処理部を用意することで、限られた機能ではあるが異なる種類のゲームを単一のプログラムで実行することを可能とするものである。
【0022】
また、ゲームの結果に応じて値が変化し、後で所定のサービス(物品との交換など)が受けられるポイントデータについては、複数のゲーム間で共通に処理できることはもちろんであるが、カード内部に格納するゲーム定義スクリプトにゲーム発行元の情報を付け加えておくことにより、ポイントも発行元ごとに管理することが可能となる。
【0023】
従って、本発明が課題を解決する手段としては、以下の6つの項目が挙げられる。
【0024】
まずICカード側の手段としては、
(1)以下の要素からなるアプリケーションプログラム:
(a)ゲーム実行コンポーネント:ゲームを実行するために必要な、カードプログラム中の処理を集めた部品
(b)ゲーム定義スクリプト格納部:コンポーネントの実行順序を定めたスクリプトを格納するエリア
(c)スクリプトインタープリタ:ゲーム定義スクリプトを解釈・実行するインタープリタ
(d)ポイントデータ格納部・処理部:ゲームの結果として変化するポイントの値を格納するエリアおよび、ポイントデータを管理する処理部
(e)ゲーム実行権格納部・処理部:ゲームを実行する権利に関する値を格納するエリアおよび、ゲーム実行権を管理する処理部
(f)コマンド処理部:端末からのコマンドを処理し、プログラム内部での各処理を呼び出す処理部
以上が必須であり、これに加えて必要に応じて、
(2)ゲーム定義スクリプト格納処理部:ゲーム定義スクリプトの格納および入れ替えを管理する機能を持つ。アプリケーションプログラムが規定するゲーム発行スキームに基づき処理する。
【0025】
(3)発行元別ポイント管理機能:発行元別にポイントおよびゲーム実行権を管理する機能を持つ。
【0026】
が用意される。
【0027】
次に、このICカードを取り扱うための端末装置としては、
(4)ゲーム発行機能:所定のプロトコルによってICカードとデータ通信を行ない、ゲーム定義スクリプトデータあるいは/およびゲーム実行権データをICカードに対して発行する機能を持つ。ゲーム定義スクリプトとゲーム実行権は、別々に管理される場合も、同一のものとして管理される場合もあり得る。
【0028】
(5)ゲーム実行機能:所定のプロトコルによってICカードとデータ通信を行ない、ゲームを実行するためのコマンドによってゲームを実行する。ユーザがゲームを実行できるようなユーザインタフェースも必要である。
【0029】
(6)ポイント演算機能:所定のプロトコルによってICカードとデータ通信を行ない、カードに格納されたポイントデータに対する値の取得および新しい値の設定(主に減算)を行なう。ポイントデータが発行元別に管理されている場合には、発行元別の識別子を付けてポイント演算を行なう。
【0030】
が必要となる。(4)から(6)までの各機能は、すべて同一の端末にあっても良いし、別々の端末に機能を分担して持たせても良い。
【0031】
【発明の実施の形態】
図1に、ICカードを用いたゲーム付きポイントシステムのサービスイメージ図を示す。システムは大きく分けて、サービスを提供するサービスプロバイダ側(101)とサービスを受けるユーザ側(109)に分けられる。サービスプロバイダ側(101)は、ゲームアプリケーションをICカードおよび端末に供給するアプリケーション提供者(102)、ゲームの運営を管理するサービス管理者(103)、各ユーザへのゲームの供給やポイント交換などを行う店舗(104)から構成される。ここで、アプリケーション提供者(102)とサービス管理者(103)は双方の役割を兼ねることもあるし、分担する場合もある。店舗(104)は通常の場合、別々の地点に複数存在するが、1箇所だけでアプリケーション提供者(102)やサービス管理者(103)と同一となる場合もある。ユーザ側(109)は、ひとり以上のユーザ(113)から構成され、それぞれのユーザ(113)はICカード(110)を1枚以上所有している。ユーザ(113)は、カード内部でゲームを実行するための入出力機能を持った、ユーザ用ゲーム実行端末(111)を保有している場合もある(必須ではない)。この、ユーザ用ゲーム実行端末(111)は、機能をゲーム実行だけに限定する必要はなく、ICカード(110)への入出力機能を備えておりゲーム実行を補助するものであれば、ICカード用リーダライタ(Reader/Writer:ICカードに対するアクセスを行う装置)を備えた通常のPC(Personal Computer:パーソナルコンピュータ)であっても、カード内の残高照会などを行う機能を持つICカード取扱専用携帯端末であってもよい。
【0032】
アプリケーション提供者(102)は最初に、各ユーザ(113)のICカード(110)に対してゲームアプリケーションのロードを行う。ICカード(110)がユーザ(113)に対して発行された時点で、ゲームアプリケーションがカード内にロードされている場合もあるが、カード発行後にもゲームアプリケーションを自由にカードにロードすることができることが、マルチアプリケーション対応OS搭載ICカードの特長である。アプリケーションロードに関わる情報は、以下に述べるゲーム管理データ(106)に反映される場合もある。
【0033】
サービス管理者(103)は、本ゲーム付きポイントシステムに関する各種情報を集めたゲーム管理用データ(106)から必要なデータを受け、ゲーム管理用サーバ(107)にてゲーム用の各種パラメータを各店舗(104)の店舗用端末(108)に対して配信する。
【0034】
店舗(104)では、ユーザ(113)の店舗利用(買い物など)に応じて、ICカード(110)に対してゲームの実行権あるいはゲームパターンを発行する。ここで、ゲームの実行権とはユーザがゲームを実行する権利であり、ゲーム実行後には消滅する。ゲームパターンは、ICカード内で実行するゲームの各種パラメータのことであり、ゲーム実行権を含む。
【0035】
ユーザ(113)は、ICカード(110)にゲーム実行権が与えられた状態で、ユーザ用ゲーム実行端末(111)あるいは店舗(104)に備え付けられた店舗内ゲーム実行端末(112)(店舗側が管理する端末。ユーザ用ゲーム実行端末と同様、ゲーム実行機能だけに限定する必要はなく、ICカードとのインタフェースとゲーム実行機能があれば形状は問わない)を通じて、カード内部のゲームの実行を行う。ゲーム実行の結果に応じて、ICカード(110)内のポイントの値が更新される。
【0036】
このポイントを店舗(104)にて商品や賞金と交換する。ゲームの発行状況やユーザの実行履歴、ポイントの交換履歴などのデータは随時ゲーム管理用データ(106)に蓄積され、次回のゲームパラメータ生成やゲーム発行にフィードバックされる。このように、ゲームの最新のデータを用いて、サービス管理者がゲームのパラメータを動的に制御することにより、サービスプロバイダ側(101)ではシステム全体の状況を管理することが可能となる。
【0037】
次に、図2を用いて、マルチアプリケーションICカード上のプログラム実行における情報の流れについて簡単に説明する。ICカード(110)は、カードOS(201)と入出力インタフェース(202)を備え、ひとつ以上のアプリケーションプログラム(203)が、所定の手順によりロードされている。図中で、アプリケーションプログラム(203)とアプリケーションプログラム(203’)とは別の独立したプログラムであり、双方が他方のデータに不正にアクセスすることは禁止されている。端末(120)には、ICカード用リーダライタ(161)および入出力インタフェース(164)と端末OS(163)とを備え、ICカード中のアプリケーションプログラムを扱うための端末プログラム(162)が、ひとつ以上ロードされている。通常、ICカードのアプリケーションプログラムひとつに対してひとつ以上の端末プログラムが必要である。
【0038】
ユーザ(あるいは店員など)が、端末(120)に対してユーザインタフェースを通じて入力を行なう(151)と、端末プログラム(162)では、ICカードに送信するためのコマンドを生成する(152)。端末プログラム(162)は、リーダライタ(161)を通じて、このコマンドをICカード(110)に送信する(153)。ICカード(110)はコマンドを受け取ると、カードOS(201)がコマンド送信先のアプリケーションプログラム(203)を判定し、端末プログラム(162)が意図したアプリケーションプログラム(203)に対してコマンドを送信する(154)。アプリケーションプログラム(203)中の実行処理部(205)では、このコマンドに従い処理を行ない、アプリケーションデータ(204)に対してアクセスし、値の更新などを行ない(155)、レスポンスを生成する(156)。レスポンスは端末(120)に返され(157)、端末プログラム(162)ではこの結果を提示する(158)。これが一連のプログラム実行の流れである。
【0039】
アプリケーションプログラム(203)が複数ロードされている場合でも、端末プログラム(162)でコマンドを発行する相手のアプリケーションプログラム(203)を切り替えることにより、端末(120)を介してICカード(110)上のプログラム実行が可能となる。基本的に、ICカード上のアプリケーションプログラム(203)はお互いのデータに不正に影響を及ぼさないように制御されているが、例えば“MULTOS”の場合では、デリゲーション(delegation:委任・委譲などの意味を持つ)と呼ばれる所定の方法により、複数のアプリケーションプログラムが連携し合って動作することが可能である。(最新の“MULTOS”にはこの機能が備えられている。デリゲーション機能の詳細は省略する)
次に、図3から図8までを用いて、本発明の実施例により実現されるゲーム付きポイントシステムにおける、具体的なICカードの構成を説明する。ここでは、ゲームの種類を2種類に増やした場合を例にとり説明する。ここで、ゲームの「種類」とは、ゲーム実行の結果をポイントにどのように反映するかを定義するアルゴリズムが異なるもののバリエーションであり、ここで言うアルゴリズムは、基本的にはICカード内のデータの演算と乱数発生などの組み合わせにより定義されるものである、とする。
【0040】
図3は、ゲームの種類を2種類に増やした場合の、既出願発明(特願平10−239812号および特願平10−321684号)によるゲームアプリケーションで実現可能なICカードの構成である。ICカード(110)は、“MULTOS”や“Java Card”などのマルチアプリケーション対応のカードOS(201)のもと動作し、端末(120)とのデータのやりとりを行う入出力インタフェース(202)を備えている。既出願発明のアプリケーションの構成では、ひとつのアプリケーションに対して結果判定アルゴリズムはひと通りであり、ゲームの種類だけゲームアプリケーションプログラム(200)が必要になる。ここでひとつめのゲームを(A)、ふたつめのゲームを(B)とする。
【0041】
ゲームアプリケーションプログラム(A)(200)は、ゲームパラメータ(221)、ゲーム実行権(222)、ポイントデータ(223)のそれぞれのデータを格納する部分と、コマンド処理部(211)、結果判定アルゴリズム(212)、実行権処理部(213)、ポイントデータ処理部(214)といった実際に処理を実行する部分とから構成される。図中(211)、(212)、(213)、(214)の網掛けで表した部分は、それぞれ処理を実行する部分であって、いったんプログラムがカードにロードされたらプログラム中で固定であることを示す。(221)、(222)、(223)のデータ格納部では、格納されたデータの内容はプログラム実行に伴い変化する。端末(120)からのコマンドは、大きく分けて店舗からのゲーム発行に関わるコマンドと、ユーザからのゲーム実行に関わるコマンドとがあり、コマンド処理部(211)ではコマンドの種類に対してそれぞれの処理実行部に処理を振り分け、これによりポイントデータやゲーム実行権データの増減などを行なう。ユーザからのゲーム実行のコマンドに対しては、ユーザ入力に応じて、結果判定アルゴリズム(212)とゲームパラメータ(221)の値に基づいてゲーム実行を行ない、この結果に応じてポイントデータ(223)の値を変更すると同時に、ゲーム実行権(222)を減少させて、店舗から与えられた実行可能回数を超えてゲームの実行を行なわせないように制御する。
【0042】
ゲームアプリケーションプログラム(B)(200’)に対しても(A)と同様の構成となっており、それぞれ独立した処理系としてプログラムが実装される。端末(120)からのコマンドはアプリケーション選択後に送られてくるので、それぞれのゲームアプリケーションプログラム(200)、(200’)に対しては独立に設定されたコマンド発行により、アプリケーションプログラムが動作する。当然、ゲーム実行の結果生じるポイントデータ(223)、(223’)についても別々に格納されており、ポイント交換などの際にまとめて処理を行うことは原則としてはできない。ゲーム(A)とゲーム(B)において決定的に異なるのは、結果判定のアルゴリズム(212)(212’)であり、それ以外のゲーム実行権やポイントを処理する部分では類似した機能から構成されているのにも関わらず、別々のプログラムとして処理を行うのは、リソースの限られたICカードでは無駄も大きいという問題がある。
【0043】
また、“MULTOS”においては、基本的にゲームアプリケーション(A)のプログラム(200)とゲームアプリケーション(B)のプログラム(200’)は別のアプリケーションなので、アプリケーションを搭載する際には、それぞれについてOSの定めた発行スキームによりアプリケーションの登録・認定の処理が必要となる。カード発行後に動的にアプリケーションの搭載・削除ができることがマルチアプリケーションICカードの大きな特長であるとはいえ、ゲームのように内容をこまめに変更したいアプリケーションにおいて、別のアルゴリズムで動作するゲームを開発するたびにアプリケーションの登録・認定処理を行うのは煩雑であり、負担が大きい。また、ゲームを(A)から(B)に入れ替えた場合、ゲーム(A)実行の結果蓄積されたポイントは、ゲームの種類が変わっても継続して使えるようにしたいというのがユーザの自然な要求であるが、図3の構成では、異なるゲーム間のポイントの移行、およびそれに伴うポイント情報の管理は簡単ではない。
【0044】
複数のゲーム間でのポイントの共有に関する問題の解決方法のひとつとして考えられるのは、ポイント管理のアプリケーションをゲームアプリケーションとは別アプリケーションとすることである。この方法は、上記の既出願発明によっても実現可能な手段である。ゲームアプリケーションとは別にポイントアプリケーションプログラムを用意し、この中でポイントデータの管理を行なうものである。ポイントの値の変更処理は、ゲームアプリケーションからの依頼に応じて、カードOS(201)の持つデリゲーション処理を用いて行なう。ただし、この方法を用いてポイント一括管理の問題は解決しても、新しいゲームを追加する場合にアプリケーションの登録・認定処理を行う必要があることには変わりがなく、根本的な解決にはならない。
【0045】
そこで、単一のアプリケーション上で複数種類のゲームを扱う方法を考える。
【0046】
図4は、まとめて管理したいポイントデータとコマンド処理を共通部分とし、ゲームのパラメータや結果判定アルゴリズムなど固有の処理を行う部分は、ゲームの種類だけ用意する方式をとった場合の、ICカードの構成を示す。ICカード(110)には、ゲームアプリケーションプログラム(200)を搭載するが、この中ではゲーム(A)とゲーム(B)の2種類のゲームを扱うことができる。もちろん、別の種類のゲーム(C)を載せることもできるが、この図の例では2種類のゲームを搭載しているものとして説明を続ける。なお、アプリケーションを発行した時点で扱えるゲームの種類は決まっており、ゲームの新規追加は行えない。
【0047】
ゲームの実行の結果として得られるポイントデータ(223)は、複数種類のゲームで共通して扱えるようにする。また、端末からのコマンドを受け取り処理を分岐するコマンド処理部(211)も、ゲーム処理とは分けて複数ゲームで共有できるようにする。ゲームパラメータ(221)、ゲーム実行権(222)、結果判定アルゴリズム(212)をゲームによって異なる部分として、ゲームの種類分だけ持たせ、実行権処理部(213)およびポイントデータ処理部(214)は共通処理部として用意する。
【0048】
端末(120)から送られるコマンドの体系は、ゲームの種類によって識別できるようにしておき、コマンド処理部(211)は送られてきたコマンドを解析し、どの種類のゲーム宛のコマンドなのかを判別して処理を切り替える。ゲーム(A)へのコマンドであれば、ゲーム(A)の結果判定アルゴリズム(212)に従い処理を行い、その結果に応じてポイントデータ(223)を更新する。ゲーム(A)によっても、ゲーム(B)によっても同様に、ポイントデータ(221)の値が更新される。
【0049】
図4の方法から一歩進めたのが、図5によって示される方法である。ICカード上のゲームは基本的に、ユーザからの入力された値を処理することと、入力タイミングに応じてカードの中で乱数を発生すること、ローカルな変数およびパラメータとして与えられる定数を組み合わせて結果を判定することの繰り返しで表現されるものがほとんどであり、結果判定アルゴリズムが異なっていても、その他の部分で共通化できる部分が大きい。そこで、乱数発生や加減算、繰り返しなど複数ゲーム間で共通化できるものを共通処理コンポーネントとして部品化する。共通処理コンポーネント(224)には、似た処理を行う部品をコンポーネントとして用意しておく。
【0050】
ゲーム(A)については、ゲームパラメータ(221)およびゲーム実行権データ(222)の格納部を持ち、ゲーム(A)の実行部(215)には、コンポーネントの呼出定義(225)により、共通処理コンポーネント(224)をどのような順序で呼び出してゲームの正解判定を行なうのかという処理手順が定義されている。プログラムの実行については図4の方法とほぼ同じであり、コマンドの種類によってコマンド処理部(211)にてゲームの切り替えを行なうことで、あらかじめプログラムに組み込まれている範囲においては、複数のゲームを扱うことができる。図5例では、図4の例に比べて、共通化できる部分を極力コンポーネント化することにより、アプリケーションの効率化が図られている。
【0051】
図4の方法でも、図5の方法でも、アプリケーション開発時にあらかじめ組み込んでおいたゲームについては複数種類を扱うことができ、端末からのコマンドに応じていくつものゲームを切り替えて実行することができるが、アプリケーション開発・発行後に別の種類のゲームを組み込むことはできない。後から別の種類のゲームを実行できるようにするためには、また新たなアプリケーションを開発し、登録・認定処理を行い、アプリケーションの入れ替えを行う必要がある。
【0052】
そこで、以下図6および図7では、アプリケーションの登録・認定処理やアプリケーションの入れ替えを行う必要なしに、ゲームの種類を入れ替えたり追加したりできる方法を提案する。
【0053】
具体的には、図5の方法で用いた、コンポーネント呼出定義(225)を一歩進めてスクリプト定義とし、実行部にはゲーム定義スクリプトを解釈・実行するインタープリタを用意する。そして、入れ替え可能なスクリプトによって異なるゲームの定義を行なうとともに、それぞれのスクリプトをインタープリタにより実際に解釈・実行するというものである。
【0054】
図6は、ゲーム定義をスクリプト化し、インタープリタにて実行する方法のゲームアプリケーションを持つICカードの構成を示す。ここでも、網掛けで示した部分はあらかじめプログラムで定められた固定の部分である。
【0055】
この例では、ゲーム定義と実行権定義を別のものとして扱う。ゲーム実行権(222)、ポイントデータ(223)は図5までの例と同様、実行権処理部(213)およびポイントデータ処理部(214)により全ての種類のゲームに関して共通に扱う。共通処理コンポーネント(224)はあらかじめ定義されており、ゲーム定義スクリプト(226)は、これらのコンポーネントの呼出し順序を記述することで、ゲームごとに異なる結果判定アルゴリズムを定義する。
【0056】
このゲーム定義スクリプト(226)は入れ替えが可能であり、スクリプトの入れ替えはゲーム定義スクリプト入れ替え処理部(216)が制御する。ICカードのセキュリティを守るために厳格なアプリケーション発行スキームが定められているにも関わらず、簡便なゲーム種類入れ替えのためにスクリプト定義によりゲームの種類を入れ替えられるようにすることは、このことにより安全性を犠牲にする可能性があることは否定できない。このため、格納しようとするゲーム定義スクリプトが改竄されていないか、正当な開発者が開発したものか、ゲームにそのスクリプトを格納する権利があるかといった項目のチェックは、アプリケーションプログラム内部で行なわなければならない。つまり、OSのもつアプリケーション発行スキームの代わりに、アプリケーション内部で独自のゲーム発行スキームを用意し、これに基づき安全なゲームスクリプトだけがカード内部格納されるように制御する。この役割をゲーム定義スクリプト入れ替え処理部(216)が行なうのである。
【0057】
ゲーム実行権(222)データは、どの種類のゲームを何回実行可能かということを定義するデータであり、ゲーム発行時にカードに格納される。端末(120)からゲーム実行に関するコマンドを受信した場合には、ゲーム実行権(222)があれば、ゲーム定義スクリプト(226)の内容をスクリプトインタープリタ(215)で解釈するとともに実行する。ゲームの実行が終われば、ゲーム実行権(222)を減らす処理を行なうことはすでに説明した構成のものと同様である。ゲーム定義スクリプト(226)を複数種類格納することにより、複数種類のゲームに対応することができ、かつ、ゲーム定義スクリプト入れ替え処理部(216)により、アプリケーションをカードにロードした後でも、ゲームの種類を入れ替えることが可能となる。
【0058】
図7は、図6の例と似ているが、ゲーム定義スクリプトの中にゲームの実行権を含ませたもので、ゲーム定義スクリプト(226)がすなわち1回分のゲーム実行権を含むゲームの定義、となっている。従って、ゲーム定義スクリプトで記述された1回分のゲームを実行したら、そのスクリプトは削除し、二度と実行できないように制御する必要がある。また、ゲーム実行権の管理とゲーム定義スクリプトの管理とは同一となり、ゲームデータ格納処理部(217)が管理する。ゲーム発行時に端末から送られて来たスクリプトをデータエリアに格納するとともに、スクリプト実行後のスクリプト削除もここで処理を行なう。ゲームデータ格納処理部(217)で、図6におけるゲーム定義スクリプト入れ替え処理部(216)と同様のスクリプト安全性チェックを行なわなければならないのは言うまでもない。
【0059】
図8はさらに、図6の方法を複数のポイント系列に対応させたものである。ゲーム実行権(222)は、発行元とゲーム種別と実行回数を組にしたデータとして格納されている。ポイントデータ(223)も、点数は発行元別に格納される。ゲーム実行のコマンドが端末から送られてくると、発行元別の実行権(222)をチェックして、実行権があるゲーム種別について、ゲーム定義スクリプト(226)に従い、スクリプトインタープリタ(215)がゲームを実行する。ゲーム実行に伴うポイントデータ(223)の追加は、発行元別に点数を追加し、実行済みの発行元別実行権(222)を減算する。
【0060】
この方式は、前出の出願済み発明(特願平10−307216号)のポイントシステムの考え方を応用したものであり、ポイントデータ(223)が一通りではなく、複数のポイント系列に対応するものである。こうすることによって、ゲームの種類を複数にしただけでなく、ポイントサービスの提供者を複数にも対応させられる。これによって、ゲームのサービス運用者がそれぞれの店舗に対して、ゲームアプリケーションの間貸しのようなことをすることも可能となり、ゲームアプリケーションの可能性がさらに広がることになる。
【0061】
次に、図9および図10を用いて、図6および図7で説明した構成のICカードを用いたゲーム付きポイントシステムにおけるシステム運用例を説明する。ここで、図9の運用例は図6のICカードに対応したもので、ゲーム定義スクリプトとゲーム実行権が別々になっており、ゲーム種類の入れ替えは適当なタイミングで行なうことを想定したものである。図10の運用例は図7のICカードに対応したもので、ゲーム定義スクリプトとゲーム実行権が一緒になったものであり、ゲームを実行する毎にスクリプトも無効化(削除)してしまうものである。
【0062】
図9は、複数ゲームに対応したゲームアプリケーションが搭載されたICカードを用いたゲーム付きポイントシステムの運用例を表す図であり、この例では、ゲーム定義スクリプトとゲーム実行権データとは別のものになっている。
【0063】
まず、ICカード(110)には、ゲームアプリケーションプログラム(200)がロードされており、このゲームアプリケーション(200)は、コマンド処理部(211)、スクリプトインタープリタ(215)、ゲーム定義スクリプト入れ替え処理部(216)、実行権処理部(213)、ポイントデータ処理部(214)などから構成されている。ポイントデータ(223)は、発行元の会社ごとに管理されたポイントの点数のデータとして格納されている。ゲーム実行権(222)に関しても発行元ごとに管理されており、ゲームの種別と実行可能回数が格納されている。ゲーム定義スクリプト(226)は、ゲームの内容を共通処理コンポーネント(224)の呼出し順序を記述することで定義したものであり、実際にはスクリプトインタープリタ(215)でスクリプトの内容を解釈して実行する。このゲーム定義スクリプト(226)は、必要に応じて入れ替えることも可能である。
【0064】
以下、ゲームの入れ替え・ゲーム発行・ゲーム実行・ポイント交換のそれぞれの段階に分けて、処理手順を説明する。
【0065】
(ゲームの入れ替え)
店舗(104)あるいはその他の場所にある、ゲーム定義発行用端末(114)から、ゲーム入れ替えコマンド(132)およびゲーム定義データ(141)をICカード(110)に対して送信する。すると、コマンド処理部(211)でコマンドを解釈し、ゲーム入れ替えコマンド(132)であることがわかれば、ゲーム定義スクリプト入れ替え処理部(216)にて、ゲーム定義の入れ替え処理を行なう。このとき、送られてくるゲーム定義スクリプトというのは、ポイントデータを書き換えることもできるものであることから、正しく発行元から発行されたものであるということが保証されていなければならない。そのために、発行するゲーム定義データ(141)には、あらかじめアプリケーションで定義したゲーム発行スキームに従い、発行元が正しいスクリプトであることを認証するような暗号キーをつけ、これによりゲーム定義スクリプト入れ替え処理部(216)にて認証処理を行なう必要がある。なお、ゲーム実行の際にはゲーム実行端末(111)に対応する端末プログラムが必要であるから、新しいゲームを発行する際には、端末側のプログラムの入れ替えが必要になる場合もある。
【0066】
(ゲーム発行)
(X)社の店舗(104)での購入に応じて、店舗用端末(108)はICカード(110)に対して、実行権発行コマンド(133)および実行権データ(142)を送信する。この実行権データ(142)には、ゲーム(A)を1回実行可能で発行元は(X)社であるという情報が含まれる。このデータについても安全のために暗号化されていることが望ましい。コマンド処理部(211)ではコマンドを解釈し、実行権処理部(213)にてゲーム実行権データ(222)にデータを追加する。
【0067】
(ゲーム実行)
ユーザ(113)がゲームを実行する場合は、ゲーム実行コマンド(131)がICカード(110)に送信される。ゲーム実行権(222)が存在すれば、該当する種別のゲームを実行できる。ゲーム実行に伴い、ポイントデータ(223)の値が変化するが、この場合は、実行中の実行権データ(222)に含まれる、ゲーム実行権発行元のポイントを更新する。ゲーム実行後は、該当するゲーム実行権(222)を減らす処理を行なう。なお、ゲームを実行する場合には、ゲーム実行端末の中(111)に、ICカードのゲームの種類に対応した実行用端末プログラムが必要である。
【0068】
(ポイント交換)
ゲーム実行によって蓄積したポイントデータ(223)は、店舗(108)において規定のサービスと交換できるが、その際には、店舗用端末(108)(ゲーム実行権を発行する端末と同じ物でも違うものでもよい)から、ポイント演算コマンド(134)をICカード(110)に対して送信する。コマンド処理部(211)にてポイントデータ処理部(214)に処理を渡し、ポイントデータ処理部(214)はポイント減算の処理を行なう。この場合、コマンドを送った店舗(104)が(X)社であれば、ポイント交換は(X)社発行のポイントだけを交換可能とする。
【0069】
この方式においては、ゲーム定義スクリプト(226)の種類だけ、ユーザはゲームの実行が可能となる(もちろん、ゲーム実行権が存在する場合に限られる)。必要に応じてゲーム定義スクリプト(226)の入れ替えを行なうことにより、ゲームアプリケーション(200)を入れ替えることなしに、常に新しいゲームを実行することができる。
【0070】
図10は、複数ゲームに対応したゲームアプリケーションが搭載されたICカードを用いたゲーム付きポイントシステムの、別の運用例を表す図であり、この例では、ゲーム定義スクリプトがゲーム実行権データと一体になっている。図9の運用例と同様に、ICカード(110)にはゲームアプリケーションプログラム(200)がロードされており、このゲームアプリケーション(200)は、コマンド処理部(211)、スクリプトインタープリタ(215)、ゲームデータ格納処理部(217)、ポイントデータ処理部(214)などから構成されている。ポイントデータ(223)は、発行元の会社ごとに管理されたポイントの点数のデータとして格納されている。図9の例と異なるところは、ゲームデータ(227)として、ゲーム定義スクリプトと発行元情報が対になったものを一組として、データを格納しているところである。ゲーム定義スクリプトをスクリプトインタープリタ(215)でスクリプトの内容を解釈して実行するところは同様である。このスクリプトは、1回分のゲーム実行権として見なすことができ、ゲーム実行の際には、対応する発行元のポイントデータ(223)のみを書き換えることができ、ゲーム実行が終了したら削除などにより無効化され、二度と同じスクリプトが実行されないようにする。
【0071】
こちらも以下、ゲームの入れ替え・ゲーム発行・ゲーム実行・ポイント交換のそれぞれの段階に分けて、処理手順を説明する。
【0072】
(ゲーム発行)
(X)社の店舗(104)での購入に応じて、店舗用端末(108)はICカード(110)に対して、ゲーム発行コマンド(135)および、ゲーム定義スクリプトと発行元を含むゲームデータ(143)を送信する。安全のため、発行するゲームデータ(143)には、あらかじめ定義した方法により、発行元が正しいスクリプトであることを認証するような暗号キーをつけ、これによりゲームデータ格納処理部(217)にて認証処理を行なう必要がある。なお、ゲーム実行の際にはゲーム実行端末(111)に対応する端末プログラムが必要であるから、新しいゲームを発行する際には、端末側のプログラムの入れ替えが必要になる場合もある。
【0073】
(ゲーム実行)
ユーザ(113)がゲームを実行する場合は、ゲーム実行コマンド(131)がICカード(110)に送信される。ゲームデータ(227)が存在すれば、ゲーム定義スクリプトにより記述されたゲームを実行できる。ゲーム実行に伴い、ポイントデータ(223)が増やされるが、この場合は、実行中のゲームデータ(227)に含まれる発行元のポイントを増やす。ゲーム実行後は、該当するゲームデータ(227)をスクリプトごと消去し、二度と実行できないようにする。なお、ゲームを実行する場合には、ゲーム実行端末の中(111)に、ICカードのゲームの種類に対応した実行用端末プログラムが必要である。
【0074】
(ポイント交換)
ゲーム実行によってためられたポイントデータ(223)は、のちほど店舗(108)において規定のサービスと交換できるが、その際には、店舗用端末(108)(ゲーム実行権を発行する端末と同じ物でも違うものでもよい)から、ポイント演算コマンド(134)をICカード(110)に対して送信する。コマンド処理部(211)にてポイントデータ処理部(214)に処理を渡し、ポイントデータ処理部(214)はポイント減算の処理を行なう。この場合、コマンドを送った店舗(104)が(X)社であれば、ポイント交換は(X)社発行のポイントだけを交換可能とする。
【0075】
この方式においては、ゲームデータ(227)としてゲーム定義スクリプトを含んでいるので、同じ種類のゲームを複数格納する場合にはスクリプトがだぶる場合があり、無駄となる可能性もあるが、必要に応じてゲーム定義スクリプトの入れ替えを行なう図9の例に比べて、ゲーム種類に対する柔軟性は増す。ゲーム実行権の発行がすなわち新しいゲームの発行となるため、ゲームアプリケーション(200)を入れ替えることなしに、常に新しいゲームを実行することができる。ただし、新しいゲームの種類を開発するたびに端末側のプログラムも変更する必要があるので、ゲーム実行用端末が分散している場合には端末用プログラムの更新の手間がかかる恐れもある。
【0076】
次に、ゲーム処理実行部の処理の流れについて、図11により説明する。ゲーム定義データ(226)には、パラメータ定義(301)、実行権定義(302)、スクリプト記述(303)が格納されている。これとは別にポイントデータ(308)が存在する。
【0077】
ゲーム処理実行部には、ローカルな変数としてプログラムカウンタ(304)および実行用配列(305)を持ち、また端末から送られてきたコマンドのパラメータ(306)を参照/端末に返すレスポンスのパラメータ(307)を書き換えることができる。
【0078】
端末からのコマンドが送られてくると、ゲーム処理実行部は、端末からのコマンドを受信、解析し(311)、指定されたゲーム種類に切り替える(すなわち、指定されたゲーム定義を呼び出す)(312)。このときコマンドに付随して送られてきたパラメータをコマンドパラメータ(306)に格納する。
【0079】
プログラムカウンタ(304)の値を初期化して(313)ゲーム実行を開始する。スクリプト記述部(303)に記述されたスクリプトを順番に実行していくわけであるが、基本的にはプログラムカウンタ(304)の値をひとつずつ進めていきながら(314)、順番にスクリプトを解析し(315)、共通処理コンポーネントを呼び出すことでスクリプトを実行する。スクリプトが「コマンド待ち」であれば、いったん端末にレスポンスを返信し、次のコマンド受信を待つ(316)。スクリプトが「終了」であれば、レスポンスを返信し、スクリプト処理を終了する(317)。スクリプトがジャンプまたは分岐を指定するものであれば、プログラムカウンタをジャンプ先に変更し、次のスクリプト解析に進む(318)。それ以外のスクリプトの場合には、スクリプトに関連付けられた対応する共通処理コンポーネントを呼び出して、実際にスクリプトを実行し(319)、プログラムカウンタを進める処理(314)に戻る。スクリプト実行(319)では、コマンドパラメータ(306)の値を参照しながら、実行用配列(305)の値やレスポンスパラメータ(308)の値を更新していく。これを続けていくことで、ゲームの実行が行なわれる。
【0080】
図12には、共通コンポーネントを呼び出すためのスクリプト言語定義の例を示す。ここで、array[ ]とは実行用配列(305)であり、cmd[ ]はコマンドパラメータ(306)、rsp[ ]はレスポンスパラメータ(307)をさす。それぞれのスクリプトは、ひとつの共通コンポーネントを呼び出し、実際にプログラムを実行する役割を果たす。ひとつのスクリプトについてパラメータは3つまで付随する。
【0081】
この例では、わかりやすいように通常のプログラミング言語に近い言語体系でスクリプトを記述しているが、メモリ容量の少ないICカードで実行することを考えると、ゲームに限定した場合にはもっと特殊な形のスクリプト言語体系(例えば少ない桁数のバイト列で表現するような)のほうが向いているかもしれない。また、スクリプトを発行する端末側に何らかのコンパイル手段を用意し、バイト列に表現し直したスクリプトを発行する方法もある。
【0082】
以下、図13から図19までを用いて、3種類のゲームの実装例を挙げていくが、この中では、図12で定義したスクリプトを用いてゲーム定義を表現する。
【0083】
図13は、ボックス数(=乱数の数)が3で、ひとつのボックスで表現される数字(乱数)の範囲が0〜2までであるスロットマシンの、ゲーム実行端末におけるゲーム実行画面の例である。各ボックスの値について、「0」をりんご、「1」をみかん、「2」をバナナで表している。
【0084】
(a)は、ゲームを開始した状態の画面である。現在のポイント数(401)および残り実行可能ゲーム数(402)が表示され、3つのボックス(405)はまだ値が確定しておらず、画面上では回転している様子が描かれている。ユーザが3つの「Push」ボタン(406)をひとつずつ押すことで、カードに対して乱数発生のコマンドが送られて、ボックスに乱数の値に対応した絵が表示される。
【0085】
(b)は1回目の「Push」選択後の画面例である。カードの中で発生した乱数が「0」だったので、対応するボックスにはりんごの絵が表示される。これを3回繰り返す。
【0086】
(c)は3回目の「Push」が選択され、1回分のゲームを終了した状態(あたりの場合)の画面例である。3つのボックスの絵がすべて一致したため、ゲームにかけられた点数「100」点がユーザのポイントに追加される。ゲームの結果が「あたり」で100ポイントが追加されたことを示すメッセージ(403)が表示され、ポイントが追加されているのがわかる。
【0087】
(d)は3回目の「Push」が選択され、1回分のゲームを終了した状態(はずれの場合)の画面例である。3つのボックスの絵が一致しなかった場合には、「はずれ」のメッセージ(404)が表示され、ポイントの追加はない。
【0088】
図14は、図13に示したスロットマシンを、図12のスクリプトで記述した例を示す。00行から11行(バイナリ)まで、18行のスクリプトで表現される。
【0089】
00〜02行:1回目の「Push」が押されたときに呼ばれる。乱数をひとつ発生し、それを実行用配列に格納して、その乱数の値を返す。端末に操作を返させたい場合には、「Return」スクリプトが定義される。
【0090】
03〜05行:2回目の「Push」が押されたときに呼ばれる。乱数をひとつ発生し、それを実行用配列に格納して、その乱数の値を返す。
【0091】
06〜08行:3回目の「Push」が押されたときに呼ばれる。乱数をひとつ発生し、それを実行用配列に格納する。レスポンスに「今回が最後」を表す値を入れ、結果判定に進む。
【0092】
09〜11行:結果判定。格納した3つの乱数がすべて一致したら、所定の点数をポイントに追加する。最後に結果を返して終了である。
【0093】
図15は、当たる確率が3分の1で、勝負数が3回であるルーレットゲームの、ゲーム実行端末におけるゲーム実行画面の例である。3つの数字を、それぞれ「A」「B」「C」と表す。図には表れないが、カラーで色分けされていると見やすい。
【0094】
(a)は初期画面である。現在のポイント数(401)および残り実行可能ゲーム数(402)が表示されている。ゲームを始めるには、ルーレット(408)を回転させる前に、賭け場(407)から「A」「B」「C」いずれかを選ぶ。
【0095】
(b)はゲーム開始後の画面である。ここでは賭け場(407)から「B」を選ぶと、「B」のところに黒い丸が置かれる。スコア(410)と残り勝負数(411)が表示される。このゲームでは勝負数は「3」なので、残り勝負数(411)は「3」と表示される。ここで「Start」ボタン(409)を押して回転を始めると、残り勝負数(411)が減少する。
【0096】
(c)はルーレット(408)が回転した状態(これは画面上での見え方で、カード側のプログラムでは待ち状態になっている)で、「Stop」ボタン(回転を止めるボタン)(406)を押すと、ICカードに対してコマンドを発行する。
【0097】
(d)は1回分の勝負を終えた状態の画面である。カードで発生した乱数の値に応じて、賭けた数字と一致していれば「あたり」(403)としてスコアが追加される。
【0098】
(e)は1回分の勝負を終えてはずれた場合の画面である。「はずれ」(404)としてスコアは追加されない。
【0099】
(f)回転と乱数発生を3回繰り返すと、ゲームは終了である。「GAME OVER」とスコアの値が表示される(412)。
【0100】
図16は、図15に示したルーレットを、図12のスクリプトで記述した例を示す。00行から1a行(バイナリ)まで、27行のスクリプトで表現される。
【0101】
00〜05行:1回目の「Stop」が押されたときに呼ばれる。コマンドのパラメータとして送られたユーザ入力値を実行用配列と、乱数をひとつ発生させたものを比較し、比較結果を配列に格納する。比較結果とその乱数の値を端末に返す。
【0102】
06〜0b行:2回目の「Stop」が押されたときに呼ばれる。コマンドのパラメータとして送られたユーザ入力値を実行用配列と、乱数をひとつ発生させたものを比較し、比較結果を配列に格納する。比較結果とその乱数の値を端末に返す。
【0103】
0c〜10行:3回目の「Stop」が押されたときに呼ばれる。コマンドのパラメータとして送られたユーザ入力値を実行用配列と、乱数をひとつ発生させたものを比較し、比較結果を配列に格納する。
【0104】
01〜1a行:結果判定。3回分の比較結果に応じて、点数をポイントに追加する。最後に結果を返して終了である。
【0105】
図17は、ボックス数が5で、5回勝負のシューティングゲームの、ゲーム実行画面の画面例である。1秒毎にランダムに移動するターゲットを狙い、ユーザはボックスをクリックして、ターゲットが現れているボックスと一致するかどうかを競うゲームである。このクリックを5回繰り返す。
【0106】
(a)は初期画面である。現在のポイント数(401)および残り実行可能ゲーム数(402)が表示されている。「Start」ボタン(409)をクリックするとゲームを開始する。
【0107】
(b)はユーザが画面をクリックする前の画面である。5つのボックス(405)に、ランダムにターゲットの絵(413)が現れる。これは1秒毎に発生する乱数の値に応じて変化する。画面中には、現在のゲームのスコア(410)および残り勝負数(411)が表示される。
【0108】
(c)はユーザが画面をクリックしているところの画面である。この場合は、ユーザが選んだボックスとターゲットが現れているボックスとが一致しているので、「あたり」(414)としてスコアが10点追加される。
【0109】
(d)はユーザが画面をクリックしているところの画面である。ユーザが選んだボックスとターゲットが現れているボックスとが一致しない場合は「はずれ」(415)である。
【0110】
(e)はゲーム終了画面である。5回の勝負が終了すると、「GAME OVER」とスコアの値が表示される(412)。残りゲーム数(402)がまだある場合には、新たな「Start」ボタン(409)が表示される。
【0111】
図18は、図17に示したシューティングゲームの処理手順を、端末(120)側とカード(110)側に分けて表した図である。他のICカード上のプログラムと同じく、基本的に端末(120)からはコマンドとパラメータをカードに対して送り、カード(110)は受け取ったコマンドに応じて処理を実行してレスポンスを返す、という手順になる。現在のMULTOSなどを搭載したICカードには時計が内蔵されていない(端末からのコマンド受信をきっかけに動作する)ので、1秒毎にカードが乱数を発生して画面を更新するためには、端末側で1秒毎に乱数発生要求をカードに送ってやる必要がある。
【0112】
まず、端末(120)は乱数発生要求のコマンド(パラメータ=0)を発行する(321)。
【0113】
カード(110)では、コマンドを受信(321)し、ボックス数の範囲で発生した乱数を変数Rに代入して(332)、パラメータ=Rとしてレスポンスを送信する(333)。端末はこれを受けて、Rの値に応じて画面を再表示する(322)。1秒毎のタイマー(323)により、これ(321から322まで)を1秒間隔で繰り返す。
【0114】
ユーザから入力(クリック)があると、ユーザが選択したボックス番号を変数Dに代入し(324)、パラメータ=Dとしてコマンドを発行する(321)。カードはコマンドを受信し(331)、パラメータがD(0以外)であれば、格納してあった直前の乱数Rと受け取ったボックス番号Dとを比較し(324)、あたりであればポイント数を追加し、比較結果を端末に返す(335)。端末は結果を受け取り、画面に結果を表示する(412)。これを勝負数(図17の例では5回)だけ繰り返す。
【0115】
図19は、図17および図18で説明したシューティングゲームを、図12のスクリプトで記述した例を示す。コマンドのパラメータが「0」の場合は乱数を発生し、それ以外の場合は、ユーザ入力を前回の乱数の値と比較する。このスクリプト例では、前のふたつの例とは異なり、ループを実現している。
【0116】
00〜02行:実行用配列の初期化
03行:ループのトップ
04行:コマンドパラメータの値に応じて分岐する
05〜0d行:コマンドパラメータに「0」以外が渡されたときは、ユーザの入力値と乱数の値を比較して、比較結果を格納する。ループカウンタをひとつ増やす。ループカウンタが最終回以外の場合は、比較結果を端末に返す。端末に処理を渡し、次に処理が戻ってきた場合には、ループの先頭(03行)に戻る。
【0117】
0e〜11行:最終ループの場合。格納された比較結果に基づき、点数をポイントに追加する。
【0118】
12〜16行:コマンドはダミーの場合。乱数を発生し、その乱数を端末に返す。ループの先頭に戻る。
【0119】
これを繰り返すことにより、図18の処理をスクリプトで実現できる。
【0120】
以上説明してきたように、図12に示したスクリプトを用いることで、例に挙げた3種類のゲームのような、複数種類のゲームを定義することができる。この3種類はあくまでも一例であり、乱数発生およびユーザからの入力との比較との組み合わせにより、他にも何種類ものゲームを定義できる。これらスクリプト記述で定義されたゲームを、図11に示すようなスクリプトインタープリタ(実行部)によって実行することで、ひとつのアプリケーションプログラムで複数種類のゲームを実行することが可能となる。
【0121】
以上、ICカード上で複数種類のゲームを実行可能なアプリケーションプログラムおよびその運用について説明してきたが、この方法をゲーム以外のアプリケーションに応用することも可能である。例えば、次々と更新される画面上で回答していくことでポイントを獲得するアンケートシステムや、特定の広告を閲覧することでポイントを獲得する広告システムなど、ユーザの操作によりポイントなどの価値を生み出し、かつ同一のスクリプトを二度と実行しないように制御するアプリケーションとして、本発明を適用することが可能となる。ただし、その場合は、アンケートの回答履歴や広告の閲覧履歴をカード中に格納しておき、同一のアンケート・広告スクリプトを複数回ロードしないように制御する必要がある。また、ゲームの場合はスクリプト実行後は該当スクリプトを削除するか実行権を減算するだけで良いが、アンケ−トの場合は回答デ−タを店舗側に回収する必要が生じる。
【0122】
図20は、本発明をアンケートシステムに応用した運用例である。基本的には図10に示したゲームシステムの運用例と類似しているが、アンケート回答を回収する部分が少し異なる。
【0123】
ICカード(110)にはアンケートアプリケーション(500)がロードされており、このアンケートアプリケーション(500)は、コマンド処理部(211)、スクリプトインタープリタ(215)、アンケートデータ格納処理部(503)、ポイントデータ処理部(214)などから構成されている。アンケートデータ(501)は、アンケートスクリプトと発行元および回答データとの組で格納されている。回答データはユーザがアンケートに回答するまでは中身は空になっており、ユーザがアンケートに回答すると回答データが格納される。この回答データは、アンケートが回答済みであるかどうかを表すフラグの役割も持っており、このデータが入っている場合には二度と同じアンケートを実行することができない。アンケートに対する回答履歴は回答履歴データ(502)として格納されており、回答済みのアンケートがロードされないように制御する。また、図9、図10と同様、ポイントデータ(223)は、発行元の会社ごとに管理されたポイントの点数のデータとして格納されている。
【0124】
(X)社の店舗(104)において、店舗用端末(108)はICカード(110)に対して、アンケート発行コマンド(506)および、アンケート定義スクリプトと発行元を含むアンケートデータ(507)を送信する。このデータは、ゲームのときと同様、正しく発行元から発行されたものであるということを保証するために、あらかじめ定義した方法により、発行元が正しいスクリプトであることを認証するような暗号キーをつけ、これによりアンケートデータ格納処理部(503)にて認証処理を行なう必要がある。アンケートデータ格納処理部(503)ではまた、送られてきたアンケートデータ(507)が回答済みかどうかを回答履歴データ(502)と照らし合わせてチェックし、回答済みのアンケートについてはアンケートデータ(501)に格納されないように制御を行なう役目も担っている。
【0125】
ユーザ(113)がユーザ端末(509)にてアンケートに回答する場合は、アンケート実行コマンド(505)がICカード(110)に送信される。アンケートデータ(501)が存在すれば、アンケート定義スクリプトにより記述されたゲームを実行できる。アンケートは、単純に質問に答えるだけでなくて、ユーザが回答の詳細度を選択できるようにし、また前回の回答内容によって次回の質問内容が変化するように工夫されている。アンケートを回答したら、回答内容によって重み付けされた点数が、発行元のポイントデータ(223)に加算され、アンケートデータ(501)には回答データが付加される。回答データの付加されたアンケートデータ(501)は二度と回答することができない。つまり、回答済みのアンケートデータ(501)に回答データを付加することは、該当するアンケートデータを無効化することに相当する。
【0126】
店舗端末(108)にて、ポイント交換を行なう際、あるいは同じ発行元の次のアンケートを発行する際に、前回回答したアンケート回答データを回収しなければならない。回答済みのアンケートデータは、回答データが付加されて無効化された状態になっているので、回答データを回収しないでためていくとアンケートデータ(501)があふれる恐れがあるので、適当なタイミングで回答データの回収を行なう必要がある。回答データの回収が要求されると、アンケート回答回収処理部(504)では、回答データを暗号化して端末(108)に返却し、それとともに該当するアンケートデータ(501)を消去し、回答履歴データ(502)に履歴情報を追加する。
【0127】
このような方式により、本発明をゲームだけでなくアンケートシステムに展開することが可能となる。広告閲覧システムも類似の方法により応用可能である。
【0128】
以上述べてきたように、本発明の実施例による効果を、「課題を解決する手段」で挙げた6項目に沿って挙げると、
まず本発明の実施例により実現されるICカードによれば、
(1)以下の要素からなるアプリケーションプログラム:
(a)ゲーム実行コンポーネント
(b)ゲーム定義スクリプト格納部
(c)スクリプトインタープリタ
(d)ポイントデータ格納部・処理部
(e)ゲーム実行権格納部・処理部
(f)コマンド処理部
により、ICカード上のひとつのアプリケーションプログラムによって、複数種類のゲームを実行することが可能となる。
【0129】
これに加えて、
(2)ゲーム定義スクリプト格納処理部
により、ゲームアプリケーションプログラムをICカードにロードしてからでも、アプリケーションプログラムの入れ替えを必要とせずに、随時新しい種類のゲームを導入することができ、より柔軟なゲームシステムを提供することが可能となる。
【0130】
アプリケーションプログラムが規定するゲーム発行スキームに基づき格納を制御することにより、安全にアプリケーションプログラムの処理を切り替えることができるとともに、カードOSによって規定された面倒なアプリケーション発行スキームから開放される。
【0131】
また、同一の処理を行なうゲームアプリケーションプログラムを、“MULTOS”や“Java Card”といった異なるOSを搭載したICカードにロードしておけば、新しいゲームを開発する際にはOSの違いにとらわれることなく同様のゲームを開発することが可能となる。
【0132】
(3)発行元別ポイント管理機能により、複数種類のゲームを複数の発行元で、ひとつのアプリケーションで管理することが可能となり、より広く利用されるゲームシステムを提供することが可能となる。
【0133】
次に、このICカードを取り扱うための端末装置としては、
(4)ゲーム発行機能
(6)ポイント演算機能
により、ICカードに対して、ゲームアプリケーションプログラムの入れ替えをすることなしに複数種類のゲームを発行することが可能となるとともに、ポイント管理まで含めた柔軟なゲームシステムを安全に運用することが可能となる。
【0134】
また、それぞれのゲームを実行するためのユーザインタフェースを備えた
(5)ゲーム実行機能
により、ユーザは楽しみながらゲームを実行することでポイントを獲得できる。
【0135】
従って、本発明の実施例によれば、より柔軟性の高いゲームアプリケーションをICカードシステムに安全に導入することが可能となる。ゲームの結果をポイントと連動することにより、利用者のカード利用意欲が増し、アプリケーション提供者の顧客囲い込みに有効であるとともに、ICカードシステムの普及に大きく役立つ。
【0136】
また、スクリプト定義とインタープリタの導入・アプリケーションプログラムが規定するゲーム発行スキームに基づきスクリプトの格納を制御する方法により、ゲームアプリケーションに限らず、プログラムの入れ替えなしにプログラムの処理内容を入れ替える方式は、プラットフォームから開放された、より柔軟で簡便なICカードアプリケーションの開発を可能とする。
【0137】
【発明の効果】
本発明によれば、例えば、プログラムの入れ替えなしにゲームの入れ替えが可能である。
【図面の簡単な説明】
【図1】ICカードを用いたゲーム付きポイントシステムのサービスイメージ図。
【図2】マルチアプリケーションICカード上のプログラム実行における情報の流れを示す図。
【図3】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その1)。
【図4】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その2)。
【図5】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その3)。
【図6】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その4)。
【図7】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その5)。
【図8】本発明の実施例に係るゲーム付きポイントシステムにおける具体的なICカードの構成を説明するための図(その6)。
【図9】ゲーム発行運用例を示す図(その1)。
【図10】ゲーム発行運用例を示す図(その2)。
【図11】スクリプトインタープリタ(実行部)の処理を示す図。
【図12】共通コンポーネント呼出しスクリプト言語定義の例を示す図。
【図13】スロットマシンの例の例を示す図。
【図14】スロットマシンにおけるスクリプト記述例を示す図。
【図15】ルーレットの例を示す図。
【図16】ルーレットにおけるスクリプト記述例を示す図。
【図17】シューティングゲームの例を示す図。
【図18】シューティングゲームの処理手順の例を示す図。
【図19】シューティングゲームにおけるスクリプト記述例を示す図。
【図20】アンケートシステムの運用例を示す図。
【符号の説明】
101:サービスプロバイダ側
102:アプリケーション提供者
103:サービス管理者
104:店舗(ゲーム供給者)
105:アプリケーションロード用端末
106:ゲーム管理用データ
107:ゲーム管理用サーバ
108:店舗用端末
109:ユーザ側
110:ICカード
111:ユーザ用ゲーム実行端末
112:店舗内ゲーム実行端末
113:ユーザ
114:ゲームデータ発行用端末
120:端末
131:ゲーム実行コマンド
132:ゲーム入れ替えコマンド
133:実行権発行コマンド
134:ポイント演算コマンド
135:ゲーム発行コマンド
141:発行するゲーム定義データ
142:発行する実行権データ
143:発行するゲームデータ
151〜158:データの流れ
161:ICカード用R/W
162:端末プログラム
163:端末OS
164:(端末の)入出力インタフェース
200:ゲームアプリケーションプログラム
201:カードOS
202:入出力インタフェース
203:アプリケーションプログラム
204:アプリケーションデータ
205:実行処理部
211:コマンド処理部
212:結果判定アルゴリズム
213:実行権処理部
214:ポイントデータ処理部
215:スクリプトインタープリタ(実行部)
216:ゲーム定義スクリプト入れ替え処理部
217:ゲームデータ格納処理部
221:ゲームパラメータ
222:ゲーム実行権データ
223:ポイントデータ
224:共通処理コンポーネント
225:コンポーネント呼出し定義
226:ゲーム定義スクリプト
227:ゲームデータ(スクリプト+発行元)
300:ゲーム定義データ
301:パラメータ定義
302:実行権定義
303:スクリプト記述
304:プログラムカウンタ
305:実行用配列
306:コマンドパラメータ
307:レスポンスパラメータ
308:ポイントデータ
311〜319:ゲーム処理実行部の処理ステップ
321:コマンド発行処理
322:再表示処理
323:タイマー
324:入力データの代入処理
331:コマンド受信処理
332:乱数発生と代入処理
333:レスポンス送信処理
334:データの比較処理
335:結果の返却処理
401:ポイント数
402:残りゲーム数
403:あたりのメッセージ
404:はずれのメッセージ
405:ボックス
406:回転を止めるためのボタン
407:賭け場
408:回転ルーレット
409:スタートボタン
410:スコア
411:残り勝負
412:ゲーム結果
413:ターゲット
414:あたった場合
415:はずれた場合
500:アンケートアプリケーション
501:アンケートデータ
502:回答履歴データ
503:アンケートデータ格納処理部
504:アンケート回答回収処理部
505:アンケート実行コマンド
506:アンケート発行コマンド
507:発行するアンケートデータ
508:回収する回答データ
509:ユーザ端末。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an application program supply method, a smart card, a script supply method, a terminal device, and a storage medium having an application program, and more particularly to a computer system having high security, in particular, storing an application program in a nonvolatile memory, The present invention relates to a computer system having an IC card as a core capable of executing an application program inside.
[0002]
[Prior art]
An IC card (or smart card) that has a CPU (Central Processing Unit) built into the IC chip and can perform calculations inside the card has a high level of information storage capability and high security. In recent years, it has been actively introduced in the financial field such as electronic money.
[0003]
Recently, a card OS (Operating System) that allows a plurality of applications to coexist safely on a single card has become common. As such multi-application compatible card OSs, “MULTIS” by Mondex International, “Java Card” (Java is a registered trademark) by Sun Microsystems, etc. are known. The multi-application compatible IC card managed by such an OS is controlled so that the independence between application programs is high, and not only can a plurality of applications coexist safely, but a new application can be added to the issued card. Programs can be added and unnecessary application programs can be deleted, and can be regarded as a safe computer, not just as an information storage medium. From the viewpoint of taking advantage of the high security of the card or replacing the conventional magnetic card function, it is expected to be applied in the financial field such as credit card and electronic money, especially the cooperation of multiple applications.
[0004]
2. Description of the Related Art Conventionally, a system such as a point system or a loyalty program (hereinafter referred to as a point system) has been generalized as a means for enclosing customers. This is defined as “a system in which points are added according to the use of a card and a predetermined service can be received by accumulating the points”. Aiming. Examples of systems are point systems such as shopping center stamp cards and department stores, or airline mileage programs. For example, in the department store point system as an example, when a member possesses a card and presents the card when shopping at the relevant department store, points are accumulated according to sales along with the purchase history (for example, every 1000 yen shopping) 20 points can be added), when a certain amount of points are accumulated, it can be exchanged for a gift certificate that can be used at the department store (for example, 1000 points can be exchanged for a 1000 yen gift certificate. Yen discount). During the campaign period, the percentage of points added doubles, and the discount rate increases when the purchase amount for one year reaches a certain amount or more, thereby encouraging consumers to purchase. As another example, an airline's frequent flyer program may accumulate a flight distance rather than a purchase price and receive a free airline ticket or seat upgrade service when a certain flight distance is reached. In this case as well, by providing a service according to the member's usage history, the member is motivated to select the same airline. By making such a point system into an IC card, the points of the card user can be correctly managed on the card. In a multi-application compatible IC card, a plurality of applications can be effectively linked by combining with an electronic money or a credit card function.
[0005]
As one of the applications on the card that takes advantage of the characteristics of the multi-application compatible IC card as described above, a game function is added to the point system, and the point value is linked according to the result of executing the game stored on the card. An "IC card system with a point system with game" has been proposed. This application has been filed in Japanese Patent Application No. 10-239812 and Japanese Patent Application No. 10-321684. In these inventions, the number of times that the user can execute the game is defined as “game execution right”, and the game execution right and the value of the point as a result of the game execution are managed, whereby the IC card program In this paper, we proposed a method that can run the game safely.
[0006]
In addition, as a method for managing the point system on the IC card, a system having a plurality of unique programs in the point management program has been proposed. This system has been filed in Japanese Patent Application No. 10-307216, and according to this method, a single point application program can be used for multiple sales by embedding a unique program in the point management program for each store. It becomes possible to manage points for the store.
[0007]
[Problems to be solved by the invention]
Each OS corresponding to multi-applications such as “MULTIS” has a predetermined load mechanism from the viewpoint of security. When downloading an application, the loading mechanism checks items such as whether the downloaded application program has been tampered with, developed by a valid developer, or whether the card has the right to download the application program. . For example, the presence / absence of tampering can be verified by associating data obtained by signing the hash value of the application program with the secret key of the certificate authority (CA) with the application program and comparing and matching the hash value recalculated with the card. it can. Since these checks affect the safety of the IC card, strict procedures are prescribed for each card, and the application program to be transferred can be downloaded only if it has a predetermined data format. . This specification is called an application issue scheme.
[0008]
For this reason, in order to load an application program onto an IC card equipped with a multi-application-compatible OS, predetermined application authorization and registration procedures must be performed in accordance with the above-described application issuance scheme. Therefore, although it is possible in principle to replace the application program on the issued card, considerable effort and time are required to actually replace the application program. This is to maintain the safety of the IC card, and in the case of a normal financial application, the contents of the program are not changed so frequently, so that this is not a big problem.
[0009]
However, in the case of a game application, there is a high possibility that the user will get bored if there is no variation in the type of game, and there is a great demand to change the contents of the game frequently. If the procedure for approving and registering the application is performed every time in response to a request to frequently change the type of game, the procedure is complicated and the features of the game application cannot be fully utilized.
[0010]
Also, if different application programs were developed and distributed for different types of games, procedures for transferring points earned from old types of games to new types of games are required, and point management for this purpose There is a problem that becomes complicated.
[0011]
In terms of development, if each application with similar functions was developed separately each time, it would be wasteful in processing, and during the development and distribution of many types of game applications, issue management and card distribution Distribution management at the time of loading is required.
[0012]
Furthermore, in the current situation where several different IC card OSs such as “MULTIS” and “Java Card” are mixed, game application programs on IC cards are built separately on multiple platforms each time the game type is changed. There is a problem that the development man-hour becomes large.
[0013]
Note that these problems are not limited to game applications, and similar problems are expected to occur in applications on IC cards whose processing contents are to be changed frequently.
[0014]
The object of the present invention is to eliminate the need for complicated application program replacement processing even when game variations are increased in a game application executed on an IC card. And a game application program that can develop a new game without depending on the difference in OS.
[0015]
Further, if this is extended not only to a game application but also to a general application, another object of the present invention is that no complicated application program replacement processing is required even when processing variations are increased in an IC card application. Accordingly, it is an object to provide an application program on an IC card that can easily handle a plurality of types of processing and can develop a new game without depending on a difference in OS.
[0016]
[Means for Solving the Problems]
In order to achieve the above object, a means for handling a plurality of types of games with a single application program on an IC card is proposed.
[0017]
The first possible policy is to share the point data that is the result of game execution and the part for handling game execution rights (data storage unit and processing unit) among a plurality of games. If the point data and the game execution right management part are made common in the processing of the game program, it may be considered that only the algorithm that actually determines the game result is different depending on the game.
[0018]
However, when examining the types of games that are mainly executed on an IC card, which cannot be said to be so complicated, the game execution part “receives data sent from the user via the terminal” “generates random numbers” It can be seen that it repeats the processes of “”, “simple addition / subtraction”, “data storage”, “data comparison and branching”, and combinations thereof. When the parts that perform these processes are made into parts as “components”, the definition of each game can be expressed as a “script” that defines the calling order of these components. In other words, if a processing component “component” that performs processing for executing a game and an “interpreter” that interprets and executes a script are prepared in one application program of an IC card, a game definition generated outside the program By executing the “script”, a different game process can be performed.
[0019]
If this script is exchanged from the outside of the application program through the terminal as required, it is possible to execute a plurality of different types of games by a single game application program on the IC card.
[0020]
However, if it is possible to replace and add scripts, if any script is stored inside the application program, the malicious script may result in incorrect game results. Yes, the security of the precious IC card OS is not utilized. Therefore, in place of the application program issuance scheme defined by the OS, a pseudo issuance scheme must be defined inside the application so that an illegal script is not stored. Specifically, it is necessary to prepare a control unit that controls the replacement of scripts so that illegal scripts are not stored.
[0021]
In other words, instead of the OS's application program issuance scheme, the application program prepares a pseudo game issuance scheme to ensure safety and to prepare a processing unit that interprets and executes scripts inside the application program. Thus, although it has a limited function, it is possible to execute different types of games with a single program.
[0022]
In addition, point data that changes depending on the outcome of the game and can receive a predetermined service (exchange with goods, etc.) later can be processed in common among multiple games. By adding the game issuer information to the game definition script stored in, points can be managed for each issuer.
[0023]
Accordingly, as means for solving the problems of the present invention, the following six items are listed.
[0024]
First, as a means on the IC card side,
(1) Application program consisting of the following elements:
(A) Game execution component: A component that collects the processes in a card program necessary for executing a game
(B) Game definition script storage: An area for storing a script that defines the execution order of components
(C) Script interpreter: interpreter that interprets and executes game definition scripts
(D) Point data storage unit / processing unit: an area for storing point values that change as a result of the game, and a processing unit for managing point data
(E) Game execution right storage unit / processing unit: an area for storing a value related to the right to execute a game and a processing unit for managing the game execution right
(F) Command processing unit: A processing unit that processes commands from a terminal and calls each process within the program.
This is essential, and if necessary,
(2) Game definition script storage processing unit: has a function of managing storage and replacement of game definition scripts. Process based on the game issuance scheme defined by the application program.
[0025]
(3) Issuer-specific point management function: has a function of managing points and game execution rights by issuer.
[0026]
Is prepared.
[0027]
Next, as a terminal device for handling this IC card,
(4) Game issuing function: has a function of performing data communication with the IC card according to a predetermined protocol and issuing game definition script data and / or game execution right data to the IC card. The game definition script and the game execution right may be managed separately or may be managed as the same thing.
[0028]
(5) Game execution function: Data communication is performed with the IC card according to a predetermined protocol, and the game is executed according to a command for executing the game. There is also a need for a user interface that allows the user to run the game.
[0029]
(6) Point calculation function: Data communication with the IC card is performed according to a predetermined protocol, and a value for point data stored in the card is acquired and a new value is set (mainly subtracted). When the point data is managed for each issuer, point calculation is performed with an identifier for each issuer.
[0030]
Is required. The functions (4) to (6) may all be in the same terminal, or may be shared among different terminals.
[0031]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 shows a service image diagram of a point system with a game using an IC card. The system is roughly divided into a service provider side (101) that provides a service and a user side (109) that receives a service. The service provider (101) provides an application provider (102) that supplies game applications to IC cards and terminals, a service manager (103) that manages game operations, game supply and point exchange to each user, etc. It is comprised from the store (104) to perform. Here, the application provider (102) and the service manager (103) may serve both roles or may be shared. Usually, there are a plurality of stores (104) at different points, but there may be a case where the store is the same as the application provider (102) or the service manager (103) at only one place. The user side (109) is composed of one or more users (113), and each user (113) owns one or more IC cards (110). The user (113) may have a user game execution terminal (111) having an input / output function for executing a game inside the card (not required). The user game execution terminal (111) does not need to limit the function only to the game execution, and is provided with an input / output function for the IC card (110) to assist the game execution. Even if it is a normal PC (Personal Computer: personal computer) equipped with a reader / writer (Reader / Writer: a device that accesses the IC card), it is a dedicated mobile phone for handling IC cards that has a function to check the balance in the card. It may be a terminal.
[0032]
First, the application provider (102) loads a game application to the IC card (110) of each user (113). The game application may be loaded in the card when the IC card (110) is issued to the user (113), but the game application can be freely loaded on the card even after the card is issued. Is the feature of the IC card with OS for multi-applications. Information relating to application loading may be reflected in the game management data (106) described below.
[0033]
The service manager (103) receives necessary data from the game management data (106) that collects various types of information regarding the point system with the game, and the game management server (107) sets various parameters for the game at each store. Delivered to the store terminal (108) of (104).
[0034]
In the store (104), a game execution right or a game pattern is issued to the IC card (110) according to the use of the user (113) (shopping or the like). Here, the right to execute the game is the right for the user to execute the game and disappears after the game is executed. The game pattern is various parameters of a game executed in the IC card and includes a game execution right.
[0035]
The user (113), with the game execution right given to the IC card (110), has an in-store game execution terminal (112) (store side) provided in the user game execution terminal (111) or the store (104). The terminal to manage.As with the game execution terminal for the user, it is not necessary to limit to the game execution function alone, and the game inside the card is executed through the interface with the IC card and the game execution function. . The value of the point in the IC card (110) is updated according to the game execution result.
[0036]
These points are exchanged for goods and prizes at the store (104). Data such as game issuance status, user execution history, point exchange history, etc. are accumulated in the game management data (106) as needed, and fed back to the next game parameter generation or game issuance. In this way, the service manager (101) can manage the status of the entire system by dynamically controlling the game parameters using the latest game data.
[0037]
Next, the flow of information in program execution on the multi-application IC card will be briefly described with reference to FIG. The IC card (110) includes a card OS (201) and an input / output interface (202), and one or more application programs (203) are loaded according to a predetermined procedure. In the figure, the application program (203) and the application program (203 ′) are separate independent programs, and both of them are prohibited from illegally accessing the other data. The terminal (120) includes an IC card reader / writer (161), an input / output interface (164), and a terminal OS (163), and there is one terminal program (162) for handling application programs in the IC card. It has been loaded. Usually, one or more terminal programs are required for one application program of an IC card.
[0038]
When a user (or a store clerk) inputs to the terminal (120) through the user interface (151), the terminal program (162) generates a command to be transmitted to the IC card (152). The terminal program (162) transmits this command to the IC card (110) through the reader / writer (161) (153). When the IC card (110) receives the command, the card OS (201) determines the command transmission destination application program (203), and the terminal program (162) transmits the command to the intended application program (203). (154). The execution processing unit (205) in the application program (203) performs processing according to this command, accesses the application data (204), updates values (155), and generates a response (156). . The response is returned to the terminal (120) (157), and the terminal program (162) presents this result (158). This is a sequence of program execution.
[0039]
Even when a plurality of application programs (203) are loaded, by switching the partner application program (203) that issues a command in the terminal program (162), the terminal program (203) can be switched over on the IC card (110) Program execution is possible. Basically, the application program (203) on the IC card is controlled so as not to affect each other's data illegally. For example, in the case of “MULTIS”, delegation means delegation A plurality of application programs can operate in cooperation with each other by a predetermined method called “having”. (The latest “MULTIS” has this function. Details of the delegation function are omitted.)
Next, a specific configuration of the IC card in the game point system realized by the embodiment of the present invention will be described with reference to FIGS. Here, a case where the number of game types is increased to two will be described as an example. Here, the “type” of the game is a variation of a different algorithm that defines how the result of the game execution is reflected in the points. The algorithm referred to here is basically data in the IC card. It is defined by a combination of the above operation and random number generation.
[0040]
FIG. 3 shows the configuration of an IC card that can be realized by a game application according to the inventions already filed (Japanese Patent Application No. 10-239812 and Japanese Patent Application No. 10-321684) when the number of game types is increased to two. The IC card (110) operates under a multi-application compatible card OS (201) such as “MULTIS” or “Java Card” and has an input / output interface (202) for exchanging data with the terminal (120). I have. In the application configuration of the invention of the already filed application, there are one result determination algorithm for one application, and the game application program (200) is required for each type of game. Here, the first game is (A), and the second game is (B).
[0041]
The game application program (A) (200) includes a game parameter (221), a game execution right (222), a portion for storing data of point data (223), a command processing unit (211), a result determination algorithm ( 212), an execution right processing unit (213), and a point data processing unit (214) that actually execute processing. In the figure, the shaded portions of (211), (212), (213), and (214) are portions for executing processing, and once the program is loaded on the card, it is fixed in the program. It shows that. In the data storage units (221), (222), and (223), the contents of the stored data change as the program is executed. The commands from the terminal (120) are roughly classified into commands related to game issuance from the store and commands related to game execution from the user. The command processing unit (211) processes each of the types of commands. The processing is distributed to the execution unit, thereby increasing or decreasing the point data or game execution right data. In response to a game execution command from the user, the game is executed based on the result determination algorithm (212) and the value of the game parameter (221) according to the user input, and point data (223) is determined according to the result. At the same time, the game execution right (222) is decreased, and control is performed so that the game is not executed more than the executable number given from the store.
[0042]
The game application program (B) (200 ′) has the same configuration as (A), and the program is mounted as an independent processing system. Since the command from the terminal (120) is sent after selecting the application, the application program operates by issuing a command set independently for each of the game application programs (200) and (200 ′). Of course, the point data (223) and (223 ′) generated as a result of the game execution are also stored separately, and as a general rule, it is not possible to perform processing collectively when exchanging points. The decisive difference between the game (A) and the game (B) is the result determination algorithm (212) (212 ′), and other parts that process game execution rights and points are composed of similar functions. In spite of this, processing as separate programs has the problem that the IC card with limited resources is wasteful.
[0043]
In “MULTIS”, the game application (A) program (200) and the game application (B) program (200 ′) are basically different applications. The application registration / certification process is required according to the issuance scheme defined by. Although the great feature of multi-application IC cards is that applications can be dynamically installed and deleted after the card is issued, a game that operates with a different algorithm is developed for applications that require frequent changes, such as games. It is cumbersome and burdensome to perform application registration / authorization processing each time. In addition, when the game is changed from (A) to (B), it is natural for the user that the points accumulated as a result of the execution of the game (A) can be used continuously even if the game type changes. Although it is a requirement, in the configuration of FIG. 3, it is not easy to transfer points between different games and to manage the point information associated therewith.
[0044]
One possible solution to the problem of sharing points between multiple games is to make the point management application different from the game application. This method is a means that can be realized also by the above-described inventions already filed. A point application program is prepared separately from the game application, and point data is managed therein. The point value changing process is performed using a delegation process of the card OS (201) in response to a request from the game application. However, even if the point management problem is solved using this method, there is no change in the need to register and authorize the application when adding a new game, and it will not be a fundamental solution. .
[0045]
Therefore, consider a method of handling multiple types of games on a single application.
[0046]
In FIG. 4, the point data to be managed collectively and the command processing are used as a common part, and the part that performs specific processing such as game parameters and result determination algorithm is prepared for only the type of game. The configuration is shown. The IC card (110) is loaded with a game application program (200), in which two types of games, game (A) and game (B), can be handled. Of course, another type of game (C) can be placed, but in the example of this figure, the description will be continued assuming that two types of games are installed. Note that the types of games that can be handled when an application is issued are determined, and new games cannot be added.
[0047]
The point data (223) obtained as a result of the game execution can be handled in common for a plurality of types of games. In addition, the command processing unit (211) that receives a command from the terminal and branches the processing can be shared by a plurality of games separately from the game processing. The game parameter (221), the game execution right (222), and the result determination algorithm (212) are set as different portions depending on the game, and the execution right processing unit (213) and the point data processing unit (214) are provided. Prepare as a common processing unit.
[0048]
The command system sent from the terminal (120) can be identified by the type of game, and the command processing unit (211) analyzes the sent command and determines which type of game the command is directed to. To switch the process. If it is a command to the game (A), processing is performed according to the result determination algorithm (212) of the game (A), and the point data (223) is updated according to the result. Similarly, the value of the point data (221) is updated by both the game (A) and the game (B).
[0049]
A step forward from the method of FIG. 4 is the method illustrated by FIG. The game on the IC card basically processes the value input from the user, generates a random number in the card according to the input timing, and combines local variables and constants given as parameters Most of them are expressed by repetition of judging the result, and even if the result judging algorithm is different, there are many parts that can be shared by other parts. Therefore, components that can be shared among a plurality of games, such as random number generation, addition / subtraction, and repetition, are made into components as common processing components. In the common processing component (224), parts that perform similar processing are prepared as components.
[0050]
The game (A) has a storage unit for game parameters (221) and game execution right data (222), and the execution unit (215) of the game (A) has a common process according to the component call definition (225). A processing procedure is defined in which order the components (224) are called to determine the correct answer of the game. The execution of the program is almost the same as the method of FIG. 4, and by switching the game by the command processing unit (211) depending on the type of command, a plurality of games can be executed within the range incorporated in the program in advance. Can be handled. In the example of FIG. 5, compared with the example of FIG. 4, the efficiency of the application is achieved by making components that can be shared as much as possible into components.
[0051]
In the method of FIG. 4 and the method of FIG. 5 as well, it is possible to handle a plurality of types of games pre-installed at the time of application development, and to switch and execute a number of games according to commands from the terminal. Another kind of game cannot be incorporated after application development / publishing. In order to be able to execute another type of game later, it is necessary to develop a new application, perform registration / authorization processing, and replace the application.
[0052]
Therefore, in FIGS. 6 and 7, a method is proposed in which game types can be exchanged or added without the need to perform application registration / authorization processing or application exchange.
[0053]
More specifically, the component call definition (225) used in the method of FIG. 5 is advanced one step into the script definition, and an interpreter for interpreting and executing the game definition script is prepared in the execution unit. Then, different games are defined depending on interchangeable scripts, and each script is actually interpreted and executed by an interpreter.
[0054]
FIG. 6 shows a configuration of an IC card having a game application in which a game definition is scripted and executed by an interpreter. Again, the shaded portion is a fixed portion determined in advance by the program.
[0055]
In this example, the game definition and the execution right definition are handled separately. The game execution right (222) and point data (223) are handled in common for all types of games by the execution right processing unit (213) and the point data processing unit (214), as in the example up to FIG. The common processing component (224) is defined in advance, and the game definition script (226) defines different result determination algorithms for each game by describing the calling order of these components.
[0056]
This game definition script (226) can be replaced, and the game definition script replacement processing unit (216) controls the replacement of the script. Despite the fact that strict application issuance schemes have been established to protect the security of IC cards, it is safe to change the game type by script definition for easy game type exchange. It cannot be denied that there is a possibility of sacrificing sex. Therefore, items such as whether the game definition script to be stored has been falsified, developed by a legitimate developer, or whether the game has the right to store the script must be checked inside the application program. I must. That is, instead of the application issuing scheme possessed by the OS, an original game issuing scheme is prepared inside the application, and based on this, only a safe game script is controlled to be stored inside the card. This role is performed by the game definition script replacement processing unit (216).
[0057]
The game execution right (222) data is data that defines how many times each type of game can be executed, and is stored in the card when the game is issued. When a command related to game execution is received from the terminal (120), if there is a game execution right (222), the contents of the game definition script (226) are interpreted and executed by the script interpreter (215). When the execution of the game is over, the process of reducing the game execution right (222) is the same as that of the configuration already described. By storing a plurality of types of game definition scripts (226), it is possible to handle a plurality of types of games, and even after the application is loaded onto the card by the game definition script replacement processing unit (216), the types of games Can be replaced.
[0058]
FIG. 7 is similar to the example of FIG. 6 except that the game definition script includes a game execution right, and the game definition script (226), that is, the game definition including the game execution right for one time. It has become. Therefore, once a game described in the game definition script is executed, the script needs to be deleted and controlled so that it cannot be executed again. Further, the management of the game execution right and the management of the game definition script are the same, and the game data storage processing unit (217) manages them. The script sent from the terminal when the game is issued is stored in the data area, and the script deletion after the script execution is also processed here. Needless to say, the game data storage processing unit (217) must perform the same script safety check as the game definition script replacement processing unit (216) in FIG.
[0059]
FIG. 8 further corresponds to the method of FIG. 6 corresponding to a plurality of point sequences. The game execution right (222) is stored as data in which the issuer, the game type, and the number of executions are combined. The point data (223) is also stored for each issuer. When a game execution command is sent from the terminal, the execution authority (222) for each issuer is checked, and the script interpreter (215) determines the game type with the execution authority according to the game definition script (226). Execute. For the addition of point data (223) accompanying the game execution, the score is added for each issuer, and the executed issuer-specific execution right (222) is subtracted.
[0060]
This method applies the concept of the point system of the previously filed invention (Japanese Patent Application No. 10-307216), and the point data (223) is not a single line but corresponds to a plurality of point series. It is. In this way, not only a plurality of game types but also a plurality of point service providers can be handled. As a result, the game service operator can also lend the game application to each store, and the possibilities of the game application are further expanded.
[0061]
Next, a system operation example in the point system with game using the IC card having the configuration described in FIGS. 6 and 7 will be described with reference to FIGS. 9 and 10. Here, the operation example of FIG. 9 corresponds to the IC card of FIG. 6, and the game definition script and the game execution right are separated, and the game type is assumed to be replaced at an appropriate timing. is there. The operation example of FIG. 10 corresponds to the IC card of FIG. 7 and is a combination of the game definition script and the game execution right, and the script is invalidated (deleted) every time the game is executed. It is.
[0062]
FIG. 9 is a diagram illustrating an operation example of a point system with a game using an IC card on which game applications corresponding to a plurality of games are mounted. In this example, the game definition script and the game execution right data are different from each other. It has become.
[0063]
First, a game application program (200) is loaded on the IC card (110). The game application (200) includes a command processing unit (211), a script interpreter (215), a game definition script replacement processing unit ( 216), an execution right processing unit (213), a point data processing unit (214), and the like. The point data (223) is stored as point score data managed for each issuing company. The game execution right (222) is also managed for each issuer, and stores the type of game and the number of times it can be executed. The game definition script (226) defines the game contents by describing the calling order of the common processing components (224), and actually interprets and executes the script contents by the script interpreter (215). . This game definition script (226) can be replaced as necessary.
[0064]
Hereinafter, the processing procedure will be described for each stage of game replacement, game issuance, game execution, and point exchange.
[0065]
(Game replacement)
A game replacement command (132) and game definition data (141) are transmitted to the IC card (110) from the game definition issuing terminal (114) in the store (104) or other places. Then, the command processing unit (211) interprets the command, and if it is found that the command is a game replacement command (132), the game definition script replacement processing unit (216) performs a game definition replacement process. At this time, the sent game definition script can rewrite the point data, so it must be guaranteed that the game definition script is correctly issued from the issuer. For this purpose, the game definition data (141) to be issued is attached with an encryption key for authenticating that the issuer is the correct script in accordance with the game issue scheme defined in advance by the application. It is necessary to perform authentication processing at (216). In addition, since a terminal program corresponding to the game execution terminal (111) is necessary when executing the game, it may be necessary to replace the program on the terminal side when issuing a new game.
[0066]
(Game issue)
In response to purchase at the store (104) of (X), the store terminal (108) transmits an execution right issue command (133) and execution right data (142) to the IC card (110). The execution right data (142) includes information that the game (A) can be executed once and the issuer is (X) company. It is desirable that this data is also encrypted for security. The command processing unit (211) interprets the command, and the execution right processing unit (213) adds data to the game execution right data (222).
[0067]
(Game execution)
When the user (113) executes the game, a game execution command (131) is transmitted to the IC card (110). If the game execution right (222) exists, the corresponding type of game can be executed. As the game is executed, the value of the point data (223) changes. In this case, the game execution right issuer point included in the execution right data (222) being executed is updated. After the game is executed, processing for reducing the corresponding game execution right (222) is performed. When a game is executed, an execution terminal program corresponding to the type of IC card game is required in the game execution terminal (111).
[0068]
(Point exchange)
The point data (223) accumulated by the game execution can be exchanged for a prescribed service at the store (108), but at that time, the store terminal (108) (the same thing as the terminal that issues the game execution right is different) The point calculation command (134) is transmitted to the IC card (110). The command processing unit (211) passes the processing to the point data processing unit (214), and the point data processing unit (214) performs point subtraction processing. In this case, if the store (104) that sent the command is (X) company, only the points issued by (X) company can be exchanged.
[0069]
In this method, the user can execute the game only for the type of the game definition script (226) (of course, only when the game execution right exists). By replacing the game definition script (226) as necessary, a new game can always be executed without replacing the game application (200).
[0070]
FIG. 10 is a diagram showing another operation example of the point system with a game using an IC card on which game applications corresponding to a plurality of games are mounted. In this example, the game definition script is integrated with the game execution right data. It has become. As in the operation example of FIG. 9, a game application program (200) is loaded on the IC card (110). The game application (200) includes a command processing unit (211), a script interpreter (215), a game A data storage processing unit (217), a point data processing unit (214), and the like are included. The point data (223) is stored as point score data managed for each issuing company. The difference from the example of FIG. 9 is that the game data (227) is stored as a set of a combination of a game definition script and issuer information. The game definition script is the same in that the script interpreter (215) interprets and executes the contents of the script. This script can be regarded as a game execution right for one time, and at the time of game execution, only the point data (223) of the corresponding issuer can be rewritten. And prevent the same script from being executed again.
[0071]
Hereafter, the processing procedure will be described in stages of game replacement, game issuance, game execution, and point exchange.
[0072]
(Game issue)
In response to purchase at the store (104) of the company (X), the store terminal (108) sends a game issuance command (135) and game data including a game definition script and an issuer to the IC card (110). (143) is transmitted. For safety, the game data (143) to be issued is attached with an encryption key for authenticating that the issuer is the correct script by a pre-defined method, so that the game data storage processing unit (217) It is necessary to perform authentication processing. In addition, since a terminal program corresponding to the game execution terminal (111) is necessary when executing the game, it may be necessary to replace the program on the terminal side when issuing a new game.
[0073]
(Game execution)
When the user (113) executes the game, a game execution command (131) is transmitted to the IC card (110). If game data (227) exists, the game described by the game definition script can be executed. As the game is executed, the point data (223) is increased. In this case, the issuer point included in the game data (227) being executed is increased. After the game is executed, the corresponding game data (227) is erased together with the script so that it cannot be executed again. When a game is executed, an execution terminal program corresponding to the type of IC card game is required in the game execution terminal (111).
[0074]
(Point exchange)
The point data (223) saved by the game execution can be exchanged later for a prescribed service at the store (108). In this case, the store terminal (108) (the same as the terminal that issues the game execution right) The point calculation command (134) is transmitted to the IC card (110). The command processing unit (211) passes the processing to the point data processing unit (214), and the point data processing unit (214) performs point subtraction processing. In this case, if the store (104) that sent the command is (X) company, only the points issued by (X) company can be exchanged.
[0075]
In this method, the game definition script is included as the game data (227). Therefore, when a plurality of games of the same type are stored, the script may be sloppy and may be wasted. Compared with the example of FIG. 9 in which the game definition script is replaced, the flexibility for the game type is increased. Since the game execution right is issued, that is, a new game is issued, a new game can always be executed without replacing the game application (200). However, since it is necessary to change the program on the terminal side every time a new game type is developed, there is a possibility that it takes time to update the terminal program when the game execution terminals are distributed.
[0076]
Next, the process flow of the game process execution unit will be described with reference to FIG. The game definition data (226) stores a parameter definition (301), an execution right definition (302), and a script description (303). Apart from this, there is point data (308).
[0077]
The game processing execution unit has a program counter (304) and an execution array (305) as local variables, and also refers to a parameter (306) of a command sent from the terminal / response parameter (307) to be returned to the terminal. ) Can be rewritten.
[0078]
When a command is sent from the terminal, the game process execution unit receives and analyzes the command from the terminal (311), and switches to the designated game type (that is, calls the designated game definition) (312). ). At this time, the parameter sent accompanying the command is stored in the command parameter (306).
[0079]
The value of the program counter (304) is initialized (313) and game execution is started. The scripts described in the script description part (303) are executed in order. Basically, the script is analyzed in order while the value of the program counter (304) is advanced one by one (314). (315), and the script is executed by calling the common processing component. If the script is “waiting for command”, a response is once returned to the terminal and the next command reception is waited (316). If the script is “finished”, a response is returned and the script processing is terminated (317). If the script specifies jump or branch, the program counter is changed to the jump destination and the process proceeds to the next script analysis (318). In the case of other scripts, the corresponding common processing component associated with the script is called, the script is actually executed (319), and the process returns to the process of advancing the program counter (314). In script execution (319), the value of the array for execution (305) and the value of the response parameter (308) are updated while referring to the value of the command parameter (306). By continuing this process, the game is executed.
[0080]
FIG. 12 shows an example of a script language definition for calling a common component. Here, array [] is an execution array (305), cmd [] is a command parameter (306), and rsp [] is a response parameter (307). Each script is responsible for calling a common component and actually executing the program. Up to three parameters are attached to one script.
[0081]
In this example, the script is written in a language system that is close to a normal programming language for easy understanding. However, considering that it is executed with an IC card with a small memory capacity, a more special form is provided when limited to games. A scripting language system (for example, expressing a byte sequence with a small number of digits) may be more appropriate. There is also a method in which some compile means is prepared on the terminal side that issues the script, and the script re-expressed in a byte string is issued.
[0082]
Hereinafter, three types of game implementation examples will be described with reference to FIG. 13 to FIG. 19, in which the game definition is expressed using the script defined in FIG. 12.
[0083]
FIG. 13 shows an example of the game execution screen in the game execution terminal of the slot machine in which the number of boxes (= number of random numbers) is 3 and the range of numbers (random numbers) expressed by one box is 0 to 2. is there. Regarding the value of each box, “0” is represented by an apple, “1” by a mandarin orange, and “2” by a banana.
[0084]
(A) is a screen of the state which started the game. The current number of points (401) and the number of remaining executable games (402) are displayed, and the three boxes (405) have not yet been determined, and the screen is rotating on the screen. When the user presses three “Push” buttons (406) one by one, a random number generation command is sent to the card, and a picture corresponding to the random number value is displayed in the box.
[0085]
(B) is a screen example after the first “Push” selection. Since the random number generated in the card was “0”, an apple picture is displayed in the corresponding box. Repeat three times.
[0086]
(C) is an example of a screen in a state where “Push” for the third time is selected and one game is completed (in the case of hitting). Since all the pictures in the three boxes match, the score “100” given to the game is added to the user's points. A message (403) indicating that the game result is “hit” and 100 points have been added is displayed, indicating that points have been added.
[0087]
(D) is an example of a screen in a state where “Push” for the third time is selected and one game is completed (in the case of a loss). If the pictures in the three boxes do not match, a “missing” message (404) is displayed and no points are added.
[0088]
FIG. 14 shows an example in which the slot machine shown in FIG. 13 is described by the script of FIG. It is expressed by a script of 18 lines from 00 lines to 11 lines (binary).
[0089]
Lines 00 to 02: Called when “Push” is pressed for the first time. Generate one random number, store it in the execution array, and return the value of the random number. When it is desired to return the operation to the terminal, a “Return” script is defined.
[0090]
Lines 03 to 05: Called when the second “Push” is pressed. Generate one random number, store it in the execution array, and return the value of the random number.
[0091]
Lines 06 to 08: Called when the third “Push” is pressed. Generate one random number and store it in the execution array. A value indicating “this is the last” is entered in the response, and the process proceeds to result determination.
[0092]
Lines 09 to 11: Result determination. When all three stored random numbers match, a predetermined score is added to the point. Finally, return the result and finish.
[0093]
FIG. 15 is an example of a game execution screen on a game execution terminal of a roulette game with a probability of winning of one third and a game number of three. The three numbers are represented as “A”, “B”, and “C”, respectively. Although it does not appear in the figure, it is easy to see if it is color-coded.
[0094]
(A) is an initial screen. The current number of points (401) and the number of remaining executable games (402) are displayed. In order to start the game, before rotating the roulette (408), one of “A”, “B”, and “C” is selected from the betting area (407).
[0095]
(B) is a screen after the game starts. Here, when “B” is selected from the betting place (407), a black circle is placed at “B”. The score (410) and the remaining number of games (411) are displayed. Since the game number is “3” in this game, the remaining game number (411) is displayed as “3”. Here, when the “Start” button (409) is pressed to start rotation, the remaining number of games (411) decreases.
[0096]
(C) is a state in which the roulette (408) is rotated (this is how it looks on the screen and is in a waiting state in the program on the card side), and a “Stop” button (button for stopping rotation) (406) When is pressed, a command is issued to the IC card.
[0097]
(D) is a screen in a state where one game has been completed. In accordance with the value of the random number generated on the card, if it matches the bet number, a score is added as “Hit” (403).
[0098]
(E) is a screen in the case where the game is finished after one game. The score is not added as “out of” (404).
[0099]
(F) The game is over when the rotation and random number generation are repeated three times. “GAME OVER” and the score value are displayed (412).
[0100]
FIG. 16 shows an example in which the roulette shown in FIG. 15 is described by the script shown in FIG. It is expressed by a script of 27 lines from 00 line to 1a line (binary).
[0101]
Lines 00 to 05: Called when “Stop” is pressed for the first time. The user input value sent as the command parameter is compared with the execution array and the one that generated one random number, and the comparison result is stored in the array. Return the comparison result and the random value to the terminal.
[0102]
Lines 06 to 0b: Called when the second “Stop” is pressed. The user input value sent as the command parameter is compared with the execution array and the one that generated one random number, and the comparison result is stored in the array. Return the comparison result and the random value to the terminal.
[0103]
Lines 0c to 10: Called when the third “Stop” is pressed. The user input value sent as the command parameter is compared with the execution array and the one that generated one random number, and the comparison result is stored in the array.
[0104]
Lines 01 to 1a: Result determination. Points are added to the points according to the comparison results for three times. Finally, return the result and finish.
[0105]
FIG. 17 is a screen example of a game execution screen of a shooting game with five boxes and five games. This is a game in which the user clicks on a box aiming at a target that moves randomly every second, and competes with the box where the target appears. Repeat this click 5 times.
[0106]
(A) is an initial screen. The current number of points (401) and the number of remaining executable games (402) are displayed. When the “Start” button (409) is clicked, the game is started.
[0107]
(B) is a screen before the user clicks on the screen. Target pictures (413) appear randomly in the five boxes (405). This changes according to the value of a random number generated every second. On the screen, the current game score (410) and the number of remaining games (411) are displayed.
[0108]
(C) is a screen where the user is clicking the screen. In this case, since the box selected by the user matches the box in which the target appears, a score of 10 points is added as “Hit” (414).
[0109]
(D) is a screen where the user is clicking the screen. If the box selected by the user does not match the box in which the target appears, the result is “out” (415).
[0110]
(E) is a game end screen. When the game is completed five times, "GAME OVER" and the score value are displayed (412). If there are still games remaining (402), a new “Start” button (409) is displayed.
[0111]
FIG. 18 is a diagram showing the processing procedure of the shooting game shown in FIG. 17 separately for the terminal (120) side and the card (110) side. Like other programs on the IC card, the terminal (120) basically sends commands and parameters to the card, and the card (110) executes processing according to the received command and returns a response. Become a procedure. Since the current IC card equipped with MULTIS does not have a built-in clock (actually triggered by receiving a command from the terminal), in order for the card to generate a random number every second and update the screen, The terminal needs to send a random number generation request to the card every second.
[0112]
First, the terminal (120) issues a random number generation request command (parameter = 0) (321).
[0113]
The card (110) receives the command (321), substitutes the random number generated in the range of the number of boxes into the variable R (332), and transmits a response with parameter = R (333). In response to this, the terminal redisplays the screen according to the value of R (322). This (from 321 to 322) is repeated at 1 second intervals by the timer (323) every second.
[0114]
When there is an input (click) from the user, the box number selected by the user is substituted for variable D (324), and a command is issued with parameter = D (321). The card receives the command (331), and if the parameter is D (other than 0), the stored random number R is compared with the received box number D (324). And the comparison result is returned to the terminal (335). The terminal receives the result and displays the result on the screen (412). This is repeated by the number of games (5 times in the example of FIG. 17).
[0115]
FIG. 19 shows an example in which the shooting game described in FIGS. 17 and 18 is described by the script in FIG. If the command parameter is “0”, a random number is generated. Otherwise, the user input is compared with the value of the previous random number. In this example script, unlike the previous two examples, a loop is implemented.
[0116]
Lines 00-02: Initializing the execution array
Line 03: Top of the loop
Line 04: Branch according to the value of the command parameter
Lines 0-5d: When a value other than “0” is passed to the command parameter, the input value of the user is compared with the value of the random number, and the comparison result is stored. Increase the loop counter by one. If the loop counter is other than the last time, the comparison result is returned to the terminal. When the process is passed to the terminal and the process returns next time, the process returns to the top of the loop (line 03).
[0117]
Lines 0e to 11: In the case of the final loop. Based on the stored comparison results, points are added to the points.
[0118]
Lines 12 to 16: Command is a dummy. Generate a random number and return the random number to the terminal. Return to the top of the loop.
[0119]
By repeating this, the process of FIG. 18 can be realized by a script.
[0120]
As described above, by using the script shown in FIG. 12, a plurality of types of games such as the three types of games given as examples can be defined. These three types are merely examples, and many other types of games can be defined by a combination of random number generation and comparison with user input. By executing the game defined by these script descriptions by a script interpreter (execution unit) as shown in FIG. 11, a plurality of types of games can be executed by one application program.
[0121]
As described above, the application program capable of executing a plurality of types of games on the IC card and its operation have been described. However, this method can be applied to applications other than games. For example, a user's operation creates value such as points, such as a questionnaire system that earns points by answering on a screen that is updated one after another, and an advertising system that earns points by browsing a specific advertisement In addition, the present invention can be applied as an application for controlling the same script not to be executed again. In this case, however, it is necessary to store the questionnaire response history and advertisement browsing history in the card and control the same questionnaire / advertisement script not to be loaded multiple times. In the case of a game, it is only necessary to delete the script or subtract the execution right after executing the script. However, in the case of a questionnaire, it is necessary to collect the answer data at the store side.
[0122]
FIG. 20 shows an operation example in which the present invention is applied to a questionnaire system. Basically, it is similar to the operation example of the game system shown in FIG. 10, but the part for collecting the questionnaire responses is slightly different.
[0123]
A questionnaire application (500) is loaded on the IC card (110). The questionnaire application (500) includes a command processing unit (211), a script interpreter (215), a questionnaire data storage processing unit (503), and point data. It consists of a processing unit (214) and the like. The questionnaire data (501) is stored as a set of a questionnaire script, an issuer, and answer data. The answer data is empty until the user answers the questionnaire, and the answer data is stored when the user answers the questionnaire. This answer data also serves as a flag indicating whether or not the questionnaire has been answered. If this data is included, the same questionnaire cannot be executed again. The answer history for the questionnaire is stored as answer history data (502), and control is performed so that the answered questionnaire is not loaded. Similarly to FIG. 9 and FIG. 10, the point data (223) is stored as point score data managed for each issuing company.
[0124]
In the store (104) of company (X), the store terminal (108) transmits a questionnaire issue command (506) and questionnaire data (507) including a questionnaire definition script and an issuer to the IC card (110). To do. In order to ensure that this data is correctly issued from the publisher, as in the case of the game, an encryption key that authenticates that the publisher is a correct script is obtained by a predefined method. Thus, it is necessary to perform an authentication process in the questionnaire data storage processing unit (503). The questionnaire data storage processing unit (503) also checks whether or not the sent questionnaire data (507) has been answered against the answer history data (502), and the questionnaire data (501) for the answered questionnaire. It also plays a role of controlling so that it is not stored in the.
[0125]
When the user (113) answers the questionnaire at the user terminal (509), a questionnaire execution command (505) is transmitted to the IC card (110). If the questionnaire data (501) exists, the game described by the questionnaire definition script can be executed. The questionnaire is designed not only to answer a question simply but also to allow the user to select the level of detail of the answer and to change the contents of the next question depending on the contents of the previous answer. If the questionnaire is answered, the points weighted according to the contents of the answer are added to the point data (223) of the issuer, and the answer data is added to the questionnaire data (501). The questionnaire data (501) to which the answer data is added cannot be answered again. That is, adding the answer data to the answered questionnaire data (501) is equivalent to invalidating the corresponding questionnaire data.
[0126]
When exchanging points at the store terminal (108) or when issuing the next questionnaire of the same publisher, the questionnaire response data that was previously answered must be collected. Since the questionnaire data that has already been answered is invalidated with the answer data added, the questionnaire data (501) may overflow if you collect it without collecting the answer data. It is necessary to collect response data. When collection of response data is requested, the questionnaire response collection processing unit (504) encrypts the response data, returns it to the terminal (108), and erases the corresponding questionnaire data (501) together with the response history data. History information is added to (502).
[0127]
With such a system, the present invention can be developed not only in a game but also in a questionnaire system. The advertisement browsing system can be applied in a similar manner.
[0128]
As described above, the effects of the embodiments of the present invention are listed along the six items listed in “Means for Solving Problems”.
First, according to the IC card realized by the embodiment of the present invention,
(1) Application program consisting of the following elements:
(A) Game execution component
(B) Game definition script storage
(C) Script interpreter
(D) Point data storage / processing unit
(E) Game execution right storage / processing unit
(F) Command processing unit
Thus, a plurality of types of games can be executed by one application program on the IC card.
[0129]
In addition to this,
(2) Game definition script storage processing unit
Thus, even after the game application program is loaded onto the IC card, a new type of game can be introduced at any time without requiring replacement of the application program, and a more flexible game system can be provided. .
[0130]
By controlling the storage based on the game issuance scheme defined by the application program, the processing of the application program can be switched safely, and the troublesome application issuance scheme defined by the card OS is released.
[0131]
In addition, if a game application program that performs the same processing is loaded onto an IC card equipped with a different OS such as “MULTIS” or “Java Card”, the difference between the OSs is not affected when developing a new game. It is possible to develop a similar game.
[0132]
(3) With the issuer-specific point management function, a plurality of types of games can be managed by a plurality of issuers using a single application, and a more widely used game system can be provided.
[0133]
Next, as a terminal device for handling this IC card,
(4) Game issue function
(6) Point calculation function
This makes it possible to issue multiple types of games to an IC card without replacing the game application program, and to safely operate a flexible game system including point management. Become.
[0134]
Also equipped with a user interface for running each game
(5) Game execution function
Thus, the user can earn points by executing the game while having fun.
[0135]
Therefore, according to the embodiment of the present invention, a more flexible game application can be safely introduced into the IC card system. By linking the game results with points, the user's willingness to use the card increases, which is effective for enclosing the customer of the application provider and greatly helps spread the IC card system.
[0136]
In addition, the method of changing the processing contents of the program without replacing the program is not limited to the game application by the method of controlling the script storage based on the game issuance scheme defined by the script definition and the application program. Development of open, more flexible and simple IC card applications is possible.
[0137]
【The invention's effect】
According to the present invention, for example, a game can be replaced without replacing a program.
[Brief description of the drawings]
FIG. 1 is a service image diagram of a point system with a game using an IC card.
FIG. 2 is a diagram showing a flow of information in executing a program on a multi-application IC card.
FIG. 3 is a diagram (No. 1) for explaining a specific configuration of an IC card in the point system with game according to the embodiment of the present invention;
FIG. 4 is a diagram (No. 2) for explaining a specific configuration of an IC card in the point system with game according to the embodiment of the present invention;
FIG. 5 is a diagram (No. 3) for explaining a specific configuration of an IC card in the point system with game according to the embodiment of the present invention.
FIG. 6 is a diagram (No. 4) for explaining a specific IC card configuration in the point system with game according to the embodiment of the present invention;
FIG. 7 is a view (No. 5) for explaining the specific structure of the IC card in the point system with game according to the embodiment of the present invention.
FIG. 8 is a diagram (No. 6) for explaining a specific configuration of the IC card in the point system with game according to the embodiment of the present invention.
FIG. 9 is a diagram showing an example of game issuance operation (part 1);
FIG. 10 is a diagram showing an example of game issuance operation (part 2);
FIG. 11 is a diagram showing processing of a script interpreter (execution unit).
FIG. 12 is a diagram showing an example of a common component call script language definition.
FIG. 13 is a diagram showing an example of a slot machine.
FIG. 14 is a view showing a script description example in the slot machine.
FIG. 15 is a diagram illustrating an example of a roulette.
FIG. 16 is a diagram showing a script description example in roulette.
FIG. 17 shows an example of a shooting game.
FIG. 18 is a diagram illustrating an example of a shooting game processing procedure;
FIG. 19 is a diagram showing a script description example in a shooting game.
FIG. 20 is a diagram showing an operation example of a questionnaire system.
[Explanation of symbols]
101: Service provider side
102: Application provider
103: Service administrator
104: Store (game supplier)
105: Application loading terminal
106: Game management data
107: Game management server
108: Terminal for store
109: User side
110: IC card
111: User game execution terminal
112: In-store game execution terminal
113: User
114: Game data issuing terminal
120: Terminal
131: Game execution command
132: Game replacement command
133: Execution right issue command
134: Point calculation command
135: Game issue command
141: Game definition data to be issued
142: Execution right data to be issued
143: Game data to be issued
151-158: Data flow
161: IC card R / W
162: Terminal program
163: Terminal OS
164: Input / output interface (of terminal)
200: Game application program
201: Card OS
202: Input / output interface
203: Application program
204: Application data
205: Execution processing unit
211: Command processing unit
212: Result determination algorithm
213: Execution right processing unit
214: Point data processing unit
215: Script interpreter (execution unit)
216: Game definition script replacement processing unit
217: Game data storage processing unit
221: Game parameters
222: Game execution right data
223: Point data
224: Common processing component
225: Component call definition
226: Game definition script
227: Game data (script + publisher)
300: Game definition data
301: Parameter definition
302: Execution right definition
303: Script description
304: Program counter
305: Execution array
306: Command parameter
307: Response parameter
308: Point data
311 to 319: processing steps of game processing execution unit
321: Command issue processing
322: Redisplay processing
323: Timer
324: Input data substitution processing
331: Command reception processing
332: Random number generation and substitution processing
333: Response transmission process
334: Data comparison processing
335: Result return processing
401: Number of points
402: Number of remaining games
Message per 403:
404: Missing message
405: Box
406: Button to stop rotation
407: betting area
408: Rotating roulette
409: Start button
410: Score
411: Remaining game
412: Game result
413: Target
414: When hit
415: When it comes off
500: Questionnaire application
501: Questionnaire data
502: Answer history data
503: Questionnaire data storage processing unit
504: Questionnaire response collection processing section
505: Questionnaire execution command
506: Questionnaire issue command
507: Questionnaire data to be issued
508: Response data to be collected
509: User terminal.

Claims (30)

CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラムを、前記入出力インタフェースを介して前記スマートカードの外から中へ供給することを特徴とするアプリケーションプログラムの供給方法。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program An application program supply method comprising: supplying an application program having an interpreter function for interpretation and execution from outside to inside of the smart card via the input / output interface. 前記スマートカードは前記スクリプトで定義された動作手順に従ったプログラムの実行結果に応じて値が更新されるポイントデータを格納するポイントデータ格納部を有することを特徴とする請求項1記載のスマートカード。2. The smart card according to claim 1, further comprising a point data storage unit that stores point data whose value is updated according to an execution result of a program according to an operation procedure defined by the script. . 前記スクリプトによって定義された処理は、スマートカードのユーザの入力および実行のタイミングによって異なる結果を得る可能性を持ち、事前に前記ユーザがその結果を予測不可能である処理であることを特徴とする請求項1記載のスマートカード。The process defined by the script is a process that has a possibility of obtaining different results depending on the input and execution timing of a smart card user, and the user cannot predict the result in advance. The smart card according to claim 1. 前記スクリプトで定義された処理を実行した後、該当するスクリプトを無効として前記処理を実行不可能に設定する手段を有することを特徴とする請求項1のスマートカード。The smart card according to claim 1, further comprising means for invalidating a corresponding script and setting the process to be unexecutable after executing the process defined by the script. 前記スクリプトで定義された処理を実行できる最大回数を定義するスクリプト実行権を格納するための実行権格納部を有し、前記スクリプトで定義された処理を実行した後、該当するスクリプトの実行権データを減算する手段を有することを特徴とする請求項1のスマートカード。An execution right storage unit for storing a script execution right for defining the maximum number of times the process defined by the script can be executed, and after executing the process defined by the script, the execution right data of the corresponding script The smart card according to claim 1, further comprising means for subtracting. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納することを特徴とする請求項1記載のスクリプト供給方法。2. The script supply method according to claim 1, wherein after the application program is supplied, the script is stored in the storage unit through the input / output interface. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納する際に、所定の認証処理を行ない、改竄されていない正しいスクリプトが格納されることを保証するための認証処理部を有することを特徴とする請求項1記載のスマートカード。An authentication processing unit for performing a predetermined authentication process when the script is stored in the storage unit through the input / output interface after the application program is supplied, and for ensuring that a correct script that has not been falsified is stored; The smart card according to claim 1, further comprising: 前記ポイントデータを発行元別に集計し、
前記スクリプトあるいは実行権データに発行元を示す識別子を付加し、
前記スクリプトで定義された処理の実行結果に応じて、前記発行元データに対応するポイントデータのみを更新する手段を有することを特徴とする請求項2記載のスマートカード。
Aggregating the point data by publisher,
Add an identifier indicating the issuer to the script or execution right data,
The smart card according to claim 2, further comprising means for updating only point data corresponding to the issuer data in accordance with an execution result of the process defined by the script.
CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、そのアプリケーションプログラムの動作手順を定義するためのスクリプトを解釈および実行するためのインタプリタ機能を有する前記アプリケーションプログラムが前記記憶手段に格納された前記スマートカードの外から中へ前記入出力インタフェースを介して前記スクリプトを供給することを特徴とするスクリプト供給方法。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program A script supply method characterized in that the application program having an interpreter function for interpreting and executing supplies the script from outside to inside of the smart card stored in the storage means via the input / output interface. CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラムを、前記入出力インタフェースを介して前記スマートカードの外から中へ供給することを特徴とするアプリケーションプログラムを有するスマートカード。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program A smart card having an application program, wherein an application program having an interpreter function for interpretation and execution is supplied from the outside to the inside of the smart card via the input / output interface. 前記スクリプトが前記記憶手段に格納されていることを特徴とする請求項10記載のスマートカード。The smart card according to claim 10, wherein the script is stored in the storage unit. CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラムを、前記入出力インタフェースを介して前記スマートカードへ供給する手段を有することを特徴とする端末装置。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program A terminal device comprising means for supplying an application program having an interpreter function for interpretation and execution to the smart card via the input / output interface. CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、そのアプリケーションプログラムの動作手順を定義するためのスクリプトを解釈および実行するためのインタプリタ機能を有する前記アプリケーションプログラムが、前記記憶手段に格納された前記スマートカードの外から中へ前記入出力インタフェースを介して前記スクリプトを供給する手段を有することを特徴とする端末装置。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program The application program having an interpreter function for interpretation and execution has means for supplying the script via the input / output interface from outside to inside of the smart card stored in the storage means. Terminal device. CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラムを、前記入出力インタフェースを介して前記スマートカードへ供給する手段を有することを特徴とする端末装置。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program A terminal device comprising means for supplying an application program having an interpreter function for interpretation and execution to the smart card via the input / output interface. CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラム。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program An application program having an interpreter function for interpretation and execution. 前記スマートカードは前記スクリプトで定義された動作手順に従ったプログラムの実行結果に応じて値が更新されるポイントデータを格納するポイントデータ格納部を有することを特徴とする請求項15記載のアプリケーションプログラム。16. The application program according to claim 15, wherein the smart card has a point data storage unit for storing point data whose value is updated according to an execution result of the program according to the operation procedure defined by the script. . 前記スクリプトによって定義された処理はスマートカードのユーザの入力および実行のタイミングによって異なる結果を得る可能性を持ち、事前に前記ユーザがその結果を予測不可能である処理であることを特徴とする請求項15記載のアプリケーションプログラム。The process defined by the script is a process which has a possibility of obtaining different results depending on the input and execution timing of a smart card user, and the user cannot predict the result in advance. Item 15. The application program according to Item 15. 前記スクリプトで定義された処理を実行した後、該当するスクリプトを無効として前記処理を実行不可能に設定する機能を有することを特徴とする請求項15のアプリケーションプログラム。16. The application program according to claim 15, further comprising a function of invalidating a corresponding script and setting the process to be unexecutable after executing the process defined by the script. 前記スクリプトで定義された処理を実行できる最大回数を定義するスクリプト実行権を格納するための実行権格納部を有し、前記スクリプトで定義された処理を実行した後、該当するスクリプトの実行権データを減算する機能を有することを特徴とする請求項15のアプリケーションプログラム。An execution right storage unit for storing a script execution right for defining the maximum number of times the process defined by the script can be executed, and after executing the process defined by the script, the execution right data of the corresponding script 16. The application program according to claim 15, which has a function of subtracting. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納することが可能に構成されたことを特徴とする請求項15記載のアプリケーションプログラム。16. The application program according to claim 15, wherein the application program is configured to be able to be stored in the storage unit through the input / output interface after the application program is supplied. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納する際に、所定の認証処理を行ない、改竄されていない正しいスクリプトが格納されることを保証するための認証処理部を有することを特徴とする請求項15記載のアプリケーションプログラム。An authentication processing unit for performing a predetermined authentication process when the script is stored in the storage unit through the input / output interface after the application program is supplied, and for ensuring that a correct script that has not been falsified is stored; 16. The application program according to claim 15, further comprising: 前記ポイントデータを発行元別に集計し、
前記スクリプトあるいは実行権データに発行元を示す識別子を付加し、
前記スクリプトで定義された処理の実行結果に応じて、前記発行元データに対応するポイントデータのみを更新する機能を有することを特徴とする請求項16記載のアプリケーションプログラム。
Aggregating the point data by publisher,
Add an identifier indicating the issuer to the script or execution right data,
17. The application program according to claim 16, further comprising a function of updating only point data corresponding to the issuer data in accordance with an execution result of processing defined by the script.
CPU、記憶手段および入出力インタフェースを有するスマートカード(smart card)に搭載されたオペレーティングシステム(OS)上で動作可能なアプリケーションプログラムであり、かつ、前記アプリケーションプログラムの動作手順を定義するためのスクリプトの解釈および実行するためのインタープリタ機能を有するアプリケーションプログラムを有する記憶媒体。An application program operable on an operating system (OS) mounted on a smart card having a CPU, storage means, and an input / output interface, and a script for defining an operation procedure of the application program A storage medium having an application program having an interpreter function for interpretation and execution. 前記スマートカードは前記スクリプトで定義された動作手順に従ったプログラムの実行結果に応じて値が更新されるポイントデータを格納するポイントデータ格納部を有することを特徴とする請求項23記載の記憶媒体。24. The storage medium according to claim 23, wherein the smart card has a point data storage unit for storing point data whose value is updated in accordance with an execution result of a program according to an operation procedure defined by the script. . 前記スクリプトによって定義された処理はスマートカードのユーザの入力および実行のタイミングによって異なる結果を得る可能性を持ち、事前に前記ユーザがその結果を予測不可能である処理であることを特徴とする請求項23記載の記憶媒体。The process defined by the script is a process which has a possibility of obtaining different results depending on the input and execution timing of a smart card user, and the user cannot predict the result in advance. Item 24. The storage medium according to Item 23. 前記スクリプトで定義された処理を実行した後、該当するスクリプトを無効として前記処理を実行不可能に設定する機能を有することを特徴とする請求項23の記憶媒体。24. The storage medium according to claim 23, wherein after executing the process defined by the script, the function is set so that the corresponding script is invalid and the process cannot be executed. 前記スクリプトで定義された処理を実行できる最大回数を定義するスクリプト実行権を格納するための実行権格納部を有し、前記スクリプトで定義された処理を実行した後、該当するスクリプトの実行権データを減算する機能を有することを特徴とする請求項23の記憶媒体。An execution right storage unit for storing a script execution right for defining the maximum number of times the process defined by the script can be executed, and after executing the process defined by the script, the execution right data of the corresponding script 24. The storage medium according to claim 23, which has a function of subtracting. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納することが可能に構成されたことを特徴とする請求項23記載の記憶媒体。24. The storage medium according to claim 23, wherein the script can be stored in the storage unit through the input / output interface after the application program is supplied. アプリケーションプログラムの供給後に、前記スクリプトを前記入出力インタフェースを通じて前記記憶手段へ格納する際に、所定の認証処理を行ない、改竄されていない正しいスクリプトが格納されることを保証するための認証処理部を有することを特徴とする請求項23記載の記憶媒体。An authentication processing unit for performing a predetermined authentication process when the script is stored in the storage unit through the input / output interface after the application program is supplied, and for ensuring that a correct script that has not been falsified is stored; 24. The storage medium according to claim 23, comprising: 前記ポイントデータを発行元別に集計し、
前記スクリプトあるいは実行権データに発行元を示す識別子を付加し、
前記スクリプトで定義された処理の実行結果に応じて、前記発行元データに対応するポイントデータのみを更新する機能を有することを特徴とする請求項24記載の記憶媒体。
Aggregating the point data by publisher,
Add an identifier indicating the issuer to the script or execution right data,
The storage medium according to claim 24, wherein the storage medium has a function of updating only point data corresponding to the issuer data in accordance with an execution result of the process defined by the script.
JP2003207781A 2003-08-19 2003-08-19 Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program Withdrawn JP2004086890A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003207781A JP2004086890A (en) 2003-08-19 2003-08-19 Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003207781A JP2004086890A (en) 2003-08-19 2003-08-19 Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP36914299A Division JP2001184472A (en) 1999-12-27 1999-12-27 Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program

Publications (1)

Publication Number Publication Date
JP2004086890A true JP2004086890A (en) 2004-03-18

Family

ID=32064485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003207781A Withdrawn JP2004086890A (en) 2003-08-19 2003-08-19 Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program

Country Status (1)

Country Link
JP (1) JP2004086890A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012173355A2 (en) * 2011-06-17 2012-12-20 (주)네오위즈게임즈 Device and method for executing task files in a game server
US8484237B2 (en) 2008-04-30 2013-07-09 Nec Corporation Terminal, web application operating method and program

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484237B2 (en) 2008-04-30 2013-07-09 Nec Corporation Terminal, web application operating method and program
WO2012173355A2 (en) * 2011-06-17 2012-12-20 (주)네오위즈게임즈 Device and method for executing task files in a game server
WO2012173355A3 (en) * 2011-06-17 2013-03-28 (주)네오위즈게임즈 Device and method for executing task files in a game server
KR101264615B1 (en) 2011-06-17 2013-05-27 (주)네오위즈게임즈 Device and method for executing and managing job file of game server

Similar Documents

Publication Publication Date Title
JP2001184472A (en) Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program
TW460847B (en) IC card, terminal apparatus and service management server
RU2488888C2 (en) Method of access to applications in secure mobile environment
EP1103032B1 (en) Terminal software architecture for use with smart cards
US6761319B2 (en) Configuration of IC card
US11798359B2 (en) Blockchain-based smart contract instant lottery ticket
US20020112236A1 (en) Smart card, method for loyalty program using smart card, and smart card system
CN109847339B (en) Control method, terminal device, information processing system, and storage medium
US20020069169A1 (en) Data processing method of smart card system
CN103268249A (en) Method and apparatus for emulating multiple cards in mobile devices
KR20130104574A (en) Method and server for compensattion according to buying charged-item
CN110302541A (en) The transfer of game data between different platforms
JP2004086890A (en) Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program
JP4729992B2 (en) Mobile terminal game control method
Markantonakis et al. An overview of the GlobalPlatform smart card specification
JP4579618B2 (en) Payment server and payment request server
MX2012010195A (en) Method and system for operations management in a telecommunications terminal.
JP2000207470A (en) Ic card, terminal and server
JP5367303B2 (en) Electronic payment system, electronic payment server, mobile communication terminal, and electronic payment method
KR20190135360A (en) Block Chain Integrity Using Invisible Wallet
US20230419354A1 (en) Method for providing virtual keyboard service that pays cryptocurrency rewards and apparatus using the same
US20230419306A1 (en) Non-fungible token distribution, display and storage system using mobile smartphone wallets
JP2004030239A (en) Control system for application addition
JP2004030238A (en) Ic card region lending management system
KR101013162B1 (en) System for Relaying Application and Service Code for Card with ICC and MS

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060421

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060511