(57)【特許請求の範囲】
【請求項１】
取引システムであって、
複数の取引ユニットと、
各々が該複数の取引ユニットのそれぞれの１つと関連する複数のコード・モジュールに実行可能なランタイムで解釈されたコードを格納するメモリ手段とプロセッサとを備え、該複数の取引ユニットのうちの１つに内蔵されたコントローラとを含み、該コントローラは、該取引ユニットに接続していて、該取引ユニットから信号を受信し、該取引ユニットへ信号を送信するように構成され、
前記コントローラは、各コード・モジュールで該実行可能なランタイムで解釈されたコードを実行するために動作することができ、該コード・モジュールの該実行可能なランタイムで解釈されたコードが他のモジュールのコードとは無関係に機能することができ、その各取引ユニットから受信した該取引ユニットが実行した各動作を示す信号に応じて処理動作を実行し、該コードが、さらに、前記各取引ユニットに送信するための、また、該取引ユニットが実行する異なる機能を表わすことができる制御信号を該コントローラに生成させるように動作することができ、
該コントローラは、該それぞれのコード・モジュールの該実行可能なランタイムで解釈されたコードを該複数の取引ユニットから該メモリ手段の保護されたメモリ領域内にアップロードするように動作可能であり、
１つの取引ユニットは、１つのマイクロプロセッサ・システムを備え、
（ａ） 該通貨の種類を確認するために該複数の取引ユニットから入力信号を受け入れ、処理するように動作することができる確認コード・モジュールと、
（ｂ） ジャバ仮想マシンと、
（ｃ） 該１つの取引ユニットが接続している別の各取引ユニットのための制御機能を実行するように動作することができ、各コード・モジュールを形成する少なくとも１つのジャバ・アプリケーションとを含む取引システム。
【請求項２】
請求項１に記載の取引システムにおいて、さらに、貨幣の種類を確認するために入力信号を受け入れ、処理するように動作することができる生のコード・ユニットを備える取引システム。
【請求項３】
請求項１又は請求項２に記載の取引システムにおいて、該取引ユニットが、各タイプの支払い媒体を処理するように構成されている取引システム。
【請求項４】
前記請求項の何れかに記載の取引システムにおいて、解釈された各コード・ユニットが、他の解釈されたコード・ユニットが存在していても存在していなくても、独立して機能するコード・ユニットである取引システム。
【請求項５】
請求項４に記載の取引システムにおいて、解釈された各コード・モジュールが、ランタイムでアクセスすることができるルーチンを含むＡＰＩコード・ユニットを含む取引システム。
【請求項６】
前記請求項の何れかに記載の取引システムにおいて、該メモリ手段が不揮発性半導体メモリである取引システム。
【請求項７】
請求項１に記載の取引システムにおいて、該確認コード・モジュールがコンパイルされたコードを備える取引システム。
【請求項８】
請求項１に記載の取引システムにおいて、該１つの取引ユニットのための制御機能を実行するように動作することができる別のジャバ・アプリケーションを含む取引システム。
【請求項９】
請求項７乃至８の何れか１項に記載の取引システムにおいて、該１つの取引ユニットが硬貨確認機構である取引システム。
【請求項１０】
請求項７乃至９の何れか１項に記載の取引システムにおいて、該１つの取引ユニットのマイクロプロセッサ・システムの制御下の少なくとも１つの他の取引ユニットを備える取引システム。
【請求項１１】
請求項１０に記載の取引システムにおいて、該取引ユニットが直列リンクにより相互に接続している取引システム。
【請求項１２】
請求項１に記載の取引システムにおいて、該メモリ手段が他のコード・モジュールに実行可能なコードを持ち、前記実行可能なコードが、一つまたはそれ以上の他のコード・モジュールのコードが発生した信用残高を表わす信号に応じ、また、少なくとも一つの他のコード・モジュールの前記実行可能なコードが使用するための販売許可信号を発生させるように動作することができる取引システム。
【請求項１３】
請求項１及び１２の何れか１項に記載の取引システムにおいて、前記実行可能なコードがジャバ・バイトコードである取引システム。
【請求項１４】
請求項１、１２、及び１３の何れか１項に記載の取引システムにおいて、該取引ユニットが直列リンクを通して相互に接続している取引システム。
【請求項１５】
請求項１及び１２乃至１４の何れか１項に記載の取引システムにおいて、前記取引ユニットが一つまたはそれ以上の（ａ）硬貨機構ユニットと、（ｂ）紙幣機構ユニットと、（ｃ）カード・リーダ・ユニットと、（ｄ）自動販売機コントローラ・ユニットとを含む取引システム。
【請求項１６】
取引システムを組み立てる方法であって、前記取引システムが、複数の取引ユニットと、プロセッサ及びそれぞれが各取引ユニットに関連している各コード・モジュールに実行可能なランタイムで解釈されたコードを記憶するためのメモリ手段を有すると共に、該複数の取引ユニットのうちの１つに内蔵されているコントローラとを備え、前記コントローラが、前記取引ユニットに接続していて、前記取引ユニットから信号を受信し、前記取引ユニットへ信号を送信し、前記コントローラが、各コード・モジュールの前記コードを実行するために動作することができ、各コード・モジュールが、前記各取引ユニットから受信した、前記取引ユニットが実行した各動作を示す信号に応じて処理動作を実行し、前記コード・モジュールが、さらに、前記コントローラに、各取引ユニットに送信するための、また前記取引ユニットが実行する異なる機能を表わすことができる制御信号を発生させるために動作することができ、該方法が、
該関連する取引ユニットから該コントローラの該メモリ手段のそれぞれの保護されているメモリ領域に、個別に、各コード・モジュールに対する実行可能なコードをロードするステップを含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、対価物取引システムに関し、特に、好適には、無人および／またはオフライン状態で、対価物と交換に製品またはチケット等を供給するための取引システムに関する。本発明は、さらに、硬貨機構、紙幣機構、カード・リーダ、自動販売機等のような相互に接続している取引ユニットを備えるシステムに関する。
【０００２】
【従来の技術、及び、発明が解決しようとする課題】
例えば、自動販売機にカード・リーダを設置するように、取引システムを形成するために、種々のユニットを相互接続することは周知である。このような相互接続を容易にするために、取引システムを相互接続することができるようにするための種々の規格がある。上記ユニットは、選択した共通のハードウェア規格、およびソフトウェア規格により、相互に連絡ができるように構成しなければならない。この作業をもっと容易にし、取引システムのいくつかのユニットが、相互に作用する方法をもっと柔軟にすることは望ましいことである。また、取引システムのコストを低減し、システムの交換、向上および修理を簡単にすることも望ましいことである。
【０００３】
本発明のいくつかの特徴は、添付の特許請求の範囲に記載してある。
下記の好適な実施形態の場合には、取引システムは、一つまたはそれ以上の下記の装置、すなわち、硬貨確認装置、紙幣確認装置、カード・リーダ、自動販売機を含む複数の取引ユニットを備える。取引ユニットの中の一つに内蔵させることができる一台のコントローラは、すべての相互接続しているユニットを制御することができる。この目的を達成するために、上記コントローラは、オペレーティング・システムおよび実行可能なコードのいくつかのユニットを記憶しているメモリを備える。（以下の詳細な説明においては、「ユニット」という用語は、ハードウェア・デバイス、すなわち、好適には、システムの個々の、システムが接続している部分を形成している取引ユニットばかりでなく、ソフトウェア・ルーチンの集合体、すなわち、例えば、上記ハードウェア・ユニットを制御することができるコード・ユニットも意味する。）
コードの第一のユニットは、コードを記憶している取引ユニットの低いレベルの動作を処理する。例えば、硬貨確認装置または紙幣確認装置においては、上記取引ユニットは、硬貨または紙幣が本物かどうかを判断するために、センサの測定値を処理し、その出力の処理を行う。これは、生のコード、好適には、コンパイルされたコードである。コードの第二のユニットは、複数のサブユニットに分割される。これらの中の一つは、取引ユニットが実行している取引を正式に許可するための中央取引制御モジュールである。他のサブユニットは、それぞれ、各取引ユニットのもっと高いレベルを制御するための専用のサブユニットである。
【０００４】
好適には、サブユニットは、ジャバ・バイトコードの形で実行可能なコードを記憶し、コントローラは、ジャバ・バイトコードの実行に応じて、オペレーティング・システムに命令を発行する、ジャバ仮想マシン（ＪＶＭ）を備えることが好ましい。好適には、コードの第一のユニットおよび各サブユニットは、保護された個々のメモリ領域であることが好ましい。
【０００５】
上記システムを使用することによって、取引ユニットのコストを低減することができる。何故なら、取引ユニットは、高いレベルのタスクを実行するために、共通のコントローラを使用しているため、低いレベルのタスクだけを処理するだけでいいからである。高いレベルのタスクを共通の制御ユニットで実行するので、タスク間の情報の交換がもっと簡単になり、もはやユニットを相互接続する方法に、依存しなくてすむことになる。それ故、相互接続にために、例えば、汎用直列バス規格に適合する相互接続のような、簡単で、共通のハードウェア規格、およびソフトウェア規格を使用することができる。
【０００６】
特に、コントローラは、不揮発性半導体メモリに記憶しているプログラムを実行するために、ＪＶＭのような実行時間インタープリタを備えることが望ましい。上記インタープリタは、実行時間に、コードにより違法動作が実行されるのを確実に防止し、それにより機密保護を確実に行う。従って、ソフトウェアの第三者供給を行うことができるシステムの設計が楽になる。
【０００７】
コントローラからの信号の制御の下で、個々の取引ユニットは、多数の機能を実行することができる。また、取引ユニットからコントローラへ多くのタイプのメッセージが送られる。このことを容易に行うために、取引ユニットへ送られる信号、および取引ユニットから送られる信号は、好適には、簡単なプロトコルに適合することが好ましい。プロトコルは下記のものを含む：（ａ）関連取引ユニットを識別するための識別コードまたはアドレス、（ｂ）取引ユニットが実行する機能またはコマンド、または取引ユニットが報告中のイベントを識別するための機能コード、およびオプションとして（ｃ）上記コマンドを実行中の取引ユニットが使用するための、または報告したイベントを記述するためのパラメータ。
【０００８】
【発明の実施の形態】
添付の図面を参照しながら本発明の実施形態について説明するが、これは単に例示としてのものにすぎない。
【０００９】
図１について説明すると、取引システム２は、この実施形態の場合には、汎用直列バス（ＵＳＢ）である一本のバス１２によりすべてが相互に接続しているユニット４、６、８および１０を備える。
【００１０】
取引ユニット４は、両替機であり、硬貨を受け取り、確認し、収容し、払い出すために必要な構成部材を含む。この両替機４は、ＵＳＢ１２により識別を送受信するためのユニット・インターフェース１４を備える。両替機４は、好適には、釣銭を支払うために、それぞれの額面の硬貨を収容するための複数の硬貨収容装置を含むことが好ましい。修理スタッフが機械を修理にきた場合に、各チューブ内の高さを予め定めた各フロートレベルに合わせることができる。両替機４は、フロートモードで、各額面の挿入されたすべての硬貨を、フロートレベルに達するまで、適当な釣銭収容場所に送ることによって、上記のことを容易に行うためにある手順を持つ。フロートレベルに達すると、それ以上硬貨は受け入れられない。また、フロートレベルに達するまで、硬貨収容場所から硬貨を払い出すように両替機を制御することもできる。
【００１１】
取引ユニット６は、紙幣を受け取り、収容し、払い出すために必要な構成部材を含む紙幣確認装置であり、また、両替機４のユニット・インターフェースに類似のユニット・インターフェース１４を含む。
【００１２】
取引ユニット８は、カード・リーダであり、同様に、インターフェース１４を含む。カード・リーダ８は、電子メモリ・カードおよび／またはプロセッサを含むスマート・カードから情報を受信し、スマート・カードへ情報を書き込むことができる。カード・リーダ８は、さらに、磁気カードから読み出したり、磁気カードに書き込んだりすることができ、また、この機能を実行するために他のユニットを使用することもできる。
【００１３】
取引ユニット１０は、インターフェース１４を含む自動販売機コントローラである。この取引ユニットは、自動販売機（図示せず）に内蔵されていて、ＵＳＢ１２により送られてきた信号に応じて、製品を販売することができる。他のユニット４、６および８も、自動販売機に内蔵させることができる。
【００１４】
硬貨機構ユニット４も、システム・コントローラ１６を内蔵する。このコントローラは、各ユニット４、６、８および１０の動作を制御するために動作することができる。上記コントローラは、他の任意のユニットに内蔵させることもできるが、好適には、硬貨機構ユニット４に内蔵させることが好ましい。何故なら、各ユニットは取引システムにおいてオプションであるが、硬貨機構は必要な場合が多いからであり、また、硬貨機構（および紙幣機構６）は、プロセッサの負担が最も重いタスクを実行するためのものだからである。
【００１５】
図２について説明すると、この図は、システム・コントローラ１６の略図である。このシステム・コントローラは、スクラッチ・パッド・メモリの機能を行う読出し／書込みメモリ（図示せず）を含むプロセッサ１８を備える。容易に入手できる標準マイクロプロセッサであってもよい、このプロセッサ１８は、コード・ユニット２０、２２、２４、２６、２８、３０、３２、３４、３５および３６にコードを記憶するメモリ手段に接続している。
【００１６】
上記マイクロプロセッサ１８は、コード・ユニット２０により形成されるリアルタイム・オペレーティング・システムの制御の下で命令を実行する。このオペレーティング・システム２０は、この実施形態の場合には、コード・ユニット２２、２４および２６のコードを実行する多重タスク・オペレーティング・システムである。
【００１７】
コード・ユニット２２は、硬貨機構のセンサ（図示せず）からの測定値の受信、上記測定値と許容基準との照合を含む低いレベルの確認タスクを実行する。ユニット２２のコードとしては、従来技術コード、すなわち、従来技術の確認装置内で使用されていたコードを使用することができる。速度を速くし、小型にするために、好適には、コードは、生のもの、より好適には、コンパイルされたコードであることが好ましい。
【００１８】
コード・ユニット２４は、インターフェース１４との通信の実現を含むハウスキーピング・タスクを実行する。コード・ユニット２６は、ジャバ仮想マシンである。
【００１９】
取引ユニット４、６、８および１４の高いレベルの動作は、各コード・ユニット２８、３０、３２および３４の制御の下でジャバ仮想マシン２６により実行される。他のコード・ユニット３５は、全体の取引制御および許可を処理する。これらの各ユニット２８−３５は、ジャバ・バイトコードの形で実行可能なコードを記憶する。このコードの書込みを容易にするために、また効率をあげるために、コントローラ・ユニット１６は、また、さらに、適用プログラマ・インターフェース（ＡＰＩ）を実行し、ジャバ・バイトコードからなるコード・ユニット３６を備える。このユニット３６のコードは、種々のユニット２８−３５が使用することができるジャバ・クラスを表わす。
【００２０】
各コード・ユニット２８、３０、３２、３４および３５は、他の任意のコード・モジュールが存在していても、いなくても、独立の機能モジュールである各コード・モジュールを形成する。（取引コード・モジュール３５は、予め定めたプロトコルに従って他のモジュールから信号を受信し、他のモジュールへ信号を送る。それ故、上記モジュールの動作は、他のモジュールが実行する動作に依存する。しかし、各モジュールは、任意の他のモジュールのコードに依存しないで、その機能を実行することができる。）各モジュールは、（好適には、コード・ユニット２２および２４のように）各保護メモリ領域に位置することが好ましい。そのため、また、以下に説明するジャバ言語の種々の機能のために、各モジュール内の任意のアプリケーションは、他のアプリケーションの中の任意のアプリケーションとインターフェースすることができない。上記メモリ領域は、多数の異なる方法の中の任意の方法で保護することができる。例えば、上記メモリ領域は、ソフトウェアをロードした後では、変更することができない、「一回書込み」メモリであってもよい。別の方法としては、上記メモリ領域は、（例えば、各領域内のソフトウェアのような）適当なソフトウェアだけに確実にアクセスできるように、物理的メモリ・アドレスが、専用の回路によってチェックされるように保護されたハードウェアであってもよい。別の方法としては、オペレーティング・システム２０は、対応するタスクを実行することができる。
【００２１】
従って、そのような装置は、システムが、異なるメーカの取引ユニットを含んでいる場合でも、他の取引ユニットの動作を妨害する有意の何等の恐れなしに、簡単で標準的なハードウェアおよびソフトウェアを使用して、種々の異なるメーカが、個々の取引システム・ユニットおよび／または上記ユニット用の制御コードを製造することができるようにするのに特に適している。
ソフトウェア・モジュール２８−３５が実行する機能としては、下記のもの等がある。
【００２２】
＜取引コード・モジュール３５＞
この取引コード・モジュールは、好適には、その各制御モジュールを通して、両替機４、紙幣確認装置６およびカード・リーダ８から信用残高信号を受信し、自動販売機コントローラ１０から（製品の値段のような）製品選択情報を受信する。上記取引コントローラは、信用残高を価格と比較し、妥当である場合には、販売を許可するために、自動販売機コントローラ１０用のコード・モジュール３４に対して許可信号を発行する。上記モジュールは、また、コード・モジュールに対して、両替機４、紙幣確認装置６およびカード・リーダ８に販売が行われたことを示す信号を発行する。それにより、両替機４および／または紙幣確認装置６から釣銭を払い出すことができ、その各コード・モジュールの制御下で（また、この目的のために、取引コントローラは、釣銭をいくら払えばいいのかを示す信号を供給することができるし）、および／またはカード・リーダ８用のコード・モジュールに、（販売コントローラ１０に販売許可信号を送信する前に発生する）カード上に新しい信用残高の額を書き込むように命令する。
【００２３】
取引モジュール３５は、また、監査機能を実行するように、すなわち、種々の取引ユニットが実行した取引の記録を維持し、また、例えば、取引システムに一時的に接続しているターミナルに、または例えば、電話線を通して遠隔地からダウンロードするために、この記録を利用することができるようにするように配置される。
【００２４】
＜両替機コード・モジュール２８＞
このモジュールは、コード・ユニット２２から受け入れることができる硬貨を示す信号を受信する。コードを持ち運ぶことができるようにするために、コード・ユニット２２は、取引モジュール３５および／またはインターフェース１４を通して信号を送ることができ、そのため、同じモジュール２８を、両替機４に内蔵されない他のシステムでも使用することができる。 コード・モジュール２８は、また、取引コード・モジュール３５に、信用残高の額を示す信号を送る。モジュール２８は、また、取引モジュールから支払う釣銭の額を示す信号を受信した場合、釣銭として支払はれる額面の割合を計算するためのアルゴリズムを含むことができる。この目的のために、上記モジュールは、両替機４から、両替機が収納する各額面の、使用できる釣銭の額を示す信号を受信するようにすることもできる。
【００２５】
上記モジュール２８は、また、上記の「フロートレベル」を判断するために使用することができる。
上記モジュールは、また、両替機４に、特定の額面の硬貨の受け入れを選択的に禁止するための信号を発行することができる。
【００２６】
＜紙幣確認モジュール３０＞
このモジュールは、モジュール２８が、両替機４に対して実行する機能と同じ機能を紙幣確認装置が実行するように構成することができる。
＜カード・リーダ・モジュール３２＞
このモジュールは、取引モジュール３５に送られる信用残高の金額を判断するため、カード・リーダから受信したデータを処理するように構成することができる。同様に、モジュール３５が発行した任意のデビット命令は、カード・リーダ自身に送られる前にカード・リーダ・モジュール３２により解釈することができる。
【００２７】
さらに、モジュール３２は、挿入されたカードのタイプおよび／または機能を推理するために、カード・リーダからの信号に応答し、その後で、カード・リーダに適当な命令を発行するように構成することができる。それ故、上記構成により、例えば、挿入されたカードと通信するために適当なプロトコルが使用され、カードがデビット・カードか、またはクレジット・カードに従って、適当な動作が実行されるように自動的に適応することができる。
【００２８】
異なるタイプのカードを処理するために、モジュール３２自身は、それぞれが、恐らく、それ自身の保護メモリ領域内に位置していて、各タイプのカード用の各アプリケーションを処理する（破線で示す）複数のサブモジュールを備えることができる。上記アプリケーションは、検出したプロトコルにより選択することができる。
【００２９】
＜自動販売機制御モジュール３４＞
このモジュールは、自動販売機コントローラ１４から製品選択信号を受信し、取引コントローラ・モジュール３５に製品の価格を送信し、上記取引コントローラ・モジュール３５から販売許可信号を受信し、コントローラ１０に製品供給信号を送信する。
モジュール３４は、また、自動販売機コントローラ１０に、自動販売機のディスプレイ上に表示するメッセージを示す信号を送信するように構成することができる。
【００３０】
好適な実施形態の場合には、ユニット６、８および１０は、それぞれ、各モジュール３０、３２および３４用のバイトコードを記憶するための各メモリを持つ。各ユニット内のメモリの内容は、そのユニット用の初期動作中に、システム・コントローラ１６にアップロードされる。
【００３１】
他の実施形態の場合には、ＪＶＭ２６の代わりにジャスト・イン・タイム・コンパイラ（ＪＩＴ）が使用される。
さらに他の実施形態の場合には、ＪＶＭ２６、オペレーティング・システム２０およびプロセッサ１８の代わりに、ジャバ物理的マシン（ＪＰＭ）が使用されるが、その場合には、モジュール２２および２４のコードも、ジャバ・バイトコードにより形成される。
【００３２】
図３は、システム・コントローラ１６が取引ユニット４、６、８および１０の中の一つの代わりに、独立しているコントローラ・ユニット３８に内蔵されている取引システム２の他の実施形態である。モジュール２８、３０、３２、３４および３５のに対しては、ジャバ以外の言語を使用することができる。しかし、しかし、どの言語を使用する場合でも、好適には、確実に統合性を達成するために、実行時間において制限を強行することができるように、その言語が、インタープリートされた言語であることが好ましい。
【００３３】
特に、好適には、物理的アドレスへの直接のアクセスを防止するために、その言語が制限を内蔵していることが好ましい。それ故、その言語が、ハッキリとポインタを使用しないようにすることが好ましい。また、好適には、その言語は、アレー・アクセスが、ランタイムにおいて、境界内に入るのを阻止する目的で、合法的タイプの変換だけができるように、またその方法が、正しいタイプのオブジェクト上で、必ず呼出されるように、すべての方法の呼出しが阻止されるようなものであることが好ましい。
【００３４】
また、個々のモジュールの中の一つまたはそれ以上のモジュールは、生のコードまたはコンパイルされたコードを含むことができるか、または上記コードにより形成することができる。しかし、そうすると、上記の利点の中のいくつかが失われる。例えば、モジュール２８を省略することができ、代わって、その機能は、ユニット２７のコードにより実行される。
【００３５】
また、予め定めた一組の条件に従って、ＪＶＭが、ソフトウェアが本物であると判断した場合だけ、各モジュールのソフトウェアが実行されるように身元確認手順を使用することが好ましい。例えば、ソフトウェアは、ソフトウェアを実行する前に、インタープリタが適当なものであると判断しなければならない身元確認コードを含むことができる。
【００３６】
また、本発明のシステムに接続しているそれ自身の制御ソフトウェアと一緒に従来の取引ユニットを持つこともできる。
ジャバは、サンマイクロシステム社の商標である。
【図面の簡単な説明】
【図１】本発明の取引システムである。
【図２】図１の取引システムの両替機が内蔵しているコントローラの構成である。
【図３】本発明の第二の取引システムである。
【図１】
0004420553.tif 000002
【図２】
0004420553.tif 000003
【図３】
0004420553.tif 000004