[go: up one dir, main page]

JP2004005688A - Server and server operation method for kiosk device connected to computer network - Google Patents

Server and server operation method for kiosk device connected to computer network Download PDF

Info

Publication number
JP2004005688A
JP2004005688A JP2003150123A JP2003150123A JP2004005688A JP 2004005688 A JP2004005688 A JP 2004005688A JP 2003150123 A JP2003150123 A JP 2003150123A JP 2003150123 A JP2003150123 A JP 2003150123A JP 2004005688 A JP2004005688 A JP 2004005688A
Authority
JP
Japan
Prior art keywords
kiosk
application
server
file
function
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.)
Pending
Application number
JP2003150123A
Other languages
Japanese (ja)
Inventor
Shuang Chen
チェン、シャン
Tetsunosuke Fujisaki
フジサキ、テツノスケ
Makoto Kobayashi
小林 真
Mitsuru Oshima
大島 満
Yoichi Yoshida
吉田 洋一
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US08/974,214 external-priority patent/US6195694B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004005688A publication Critical patent/JP2004005688A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F19/00Complete banking systems; Coded card-freed arrangements adapted for dispensing or receiving monies or the like and posting such transactions to existing accounts, e.g. automatic teller machines
    • G07F19/20Automatic teller machines [ATMs]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/0014Coin-freed apparatus for hiring articles; Coin-freed facilities or services for vending, access and use of specific services not covered anywhere else in G07F17/00
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2805Home Audio Video Interoperability [HAVI] networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
  • Stored Programmes (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a server and the server operation method for the kiosk device connected to the computer network are offered. <P>SOLUTION: The server system 195 is connected to a plurality of kiosks 100 by a network 150 such as the Internet, an intranet and an extranet of an enterprise or the government. A kiosk has one or a plurality of input/output devices 130 (for example a display, a keyboard, a paper printer, a telephone set, etc.) and the one or a plurality of driver programs 440 (local API) for each input/output device. A kiosk 160 has a browser 160 used in order that the kiosk receives material from the server. One or a plurality of files of the files in a configuration set comprise one or a plurality of built-in-control programs 620 for controlling the local API for the device on the kiosk. Thus, the device is controlled so that the kiosk performs the application. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークに接続され、サーバがキオスク装置を構成することができるキオスク装置およびサーバの分野に関する。
【0002】
【従来の技術】
一般にキオスクとは、ユーザまたは顧客による一般のアクセス、たとえば公共アクセスのための場所に配置され、それによってサービス提供者がそのユーザや顧客にサービスを提供することができるようにする機械である。一般に、このようなサービスは、サービス提供者が顧客に特定の援助を与えるエージェントを設けずに、顧客によって行われる「セルフサービス」である。したがって、サービスは、1)情報の入手、または2)特定の単純なトランザクション(たとえばチケットの購入、現金の入手、百貨店のフロア・マップの閲覧など)の遂行あるいはその両方を行うといったような、反復される単純な特定のタスクになる傾向がある。
【0003】
行われるタスクは、事前プログラムし、事前決定する必要があり、セルフサービスである必要がある。したがって、キオスクの設計は、柔軟性がなく、特定のユーザ向けにカスタマイズされた援助を提供しない。
【0004】
一般に、これらのトランザクションは、たとえば1つまたは複数のモニタ、カード読取装置、チケット・プリンタ、レーザ・プリンタ、現金自動支払機など、何らかの装置の使用を必要とする。これらの装置は、一般に、キオスクにおける柔軟性のない設計の事前定義されたタスク専用であり、したがって他に用途がない。
【0005】
キオスクの利点は、便利で信頼性が高いことである。キオスクは、作業を行うフルタイムの人間の操作者を必要とせず、したがって運転経費の節約になり、生産性が向上する。
【0006】
たとえば銀行のATM機、航空券販売機など、従来技術キオスクにはネットワークによって接続されているものがある。また、ショッピング・モール内の情報キオスクのように、スタンド・アロン・キオスクもある。
【0007】
従来技術には、銀行支店(エージェント)とユーザ/顧客との間に接続を設定しようと試みる銀行業アプリケーション向けのテレビ会議機能を備えたキオスクがある。これは、従来のタイプのキオスクにテレビ会議システムを付加するだけで行われる。
【0008】
また、従来技術には、インターネットとの統合キオスクもある。このキオスクは、キオスクの画面上にHTMLページを表示するブラウザ手段を有する。キオスクに表示される画面は、ユーザによって選択されたハイパーリンクによって制御される。これらのキオスクは、顧客/ユーザがハイパーリンクを呼び出す「ソフト」ボタンを選択することによってブラウズすることができる情報アクセスに適している。これらのキオスクは、電子メールのような特定の個人通信にも使用することができる。この種のシステムでは、画面は通常、(たとえばナビゲーション・ボタンを有する)ユーザ・インタフェースを提示するように特別に設計され、キオスクはさらに、キオスク作成者によって定義されたHTMLページ(URL)のみにアクセス可能になるように、顧客が訪れることができるURLを制限するフィルタとして機能する。
【0009】
ほとんどの従来技術のキオスクは柔軟性がない。従来技術のキオスクは、一般にプログラミングが特別に設計され、(通常はCやC++などの高水準コンピュータ・プログラミング言語で)作成され、特定の用途(アプリケーション)向けにキオスクに設置されるため、変更や再構成を容易にしかも低コストで迅速に行うことができない。変更する場合は、キオスクでのプログラムの再コード化、再コンパイル、再インストール、および再試験が必要になる。既存のキオスクに変更を加えるのは困難であり、更新を必要とする範囲に多くのキオスクがある場合は特に困難である。
【0010】
従来技術のキオスクは、アプリケーションに基づく効果的な「対面」サービス、すなわち、サービスまたはトランザクションを実行するためにユーザまたは顧客に助言や手引きを与えるエージェントを必要とするサービスを提供することができない。顧客サービスのための効果的な「対面」環境は、映像/音声だけでなく、同期化された画面共用(たとえばエージェントがデータを入力している間にユーザ/顧客がデータを見るなど)と遠隔装置制御(たとえばエージェントがキオスクのユーザ/顧客のために受領書を印刷することができるなど)も必要する。従来技術は、キオスクの同期化画面共用や遠隔装置制御を実現しない。
【0011】
従来技術の中には、電話によるエージェントからのユーザ援助を提供するものもあるが、エージェントは一般にキオスクの画面を直接見ることはできない。したがって、エージェントはキオスクに問題があった場合にその問題についてのユーザの説明に依存せざるを得ない。エージェントは、キオスクの画面を直接見て問題にアクセスすることができない。さらに、エージェントはキオスクの問題を修正するためにキオスクのプログラム/機能を遠隔地から変更することができない。銀行業アプリケーションにおけるキオスクの中には、銀行エージェントがキオスクの画面の内容を見ることができるようにするものもあることに留意されたい。しかし、この内容は、キオスク上に画面の内容を表示させるアプリケーションではなく、エージェントのワークステーション上で稼働している別個のアプリケーションによって表示される。
【0012】
【発明が解決しようとする課題】
従来技術の中には、キオスクの機能としてテレビ会議機能を備えるものもある。しかし、テレビ会議は顧客に他の当事者との音声/映像接続は提供するが、このアーキテクチャは音声/映像通信とキオスク画面の内容との間に一貫した統合がないため、市場ではまだ成功していない。顧客がキオスク画面上の項目の1つに問題があるときに、エージェントは顧客がキオスク上で持っている情報と同じ情報をエージェントの画面上で持つことができない。たとえば、キオスクの画面上のフィールド内にあいまいな値または誤った値があっても、テレビ会議中にエージェントにはその誤った値が見えない。さらに、エージェントは顧客の画面上の場所を指示することができず、顧客の画面を制御することもできない。さらに、エージェントは、キオスクがまだ事前プログラムされていないという一般情報をキオスクを介して顧客に提供することができない。また、たとえば、顧客がそのキオスク設計では入手することができない情報を必要とする場合、エージェントは音声またはカメラ映像によって情報を提供することができるに過ぎず、顧客のキオスク画面上で、または他のキオスク装置を介して情報を提供することはできない。
【0013】
従来技術の中には、限定された特定のアプリケーション、すなわち限定された情報ブラウズのみを行うことができる単純なインターネット/ブラウザ・ベースのキオスクを開示しているものもある。この種のキオスクは、キオスク制御機能や顧客と人間のエージェントとの間の協同がないため、柔軟性のある用途を持つ有効な顧客サービス環境を提供することができない。
【0014】
したがって、本発明は、請求の範囲で規定されているキオスクとサーバを提供する。
【0015】
【課題を解決するための手段】
本明細書に記載の手法は、「対面」エージェント対顧客サービスまたはトランザクションあるいはその両方およびインターネット(TCP/IP)、公共電話網(PSTN)、統合サービス・ディジタル網(ISDN)など複数の通信ネットワークへの公共アクセスの提供を含む、様々な用途向けの柔軟性があり、再構成可能で協同的なキオスク・アーキテクチャの利点を得て、公共の至る所に配置される、構成可能で直接アクセス可能なネットワーク・インタフェースを提供する。したがって、このネットワーク・サーバ・システムは、異なる用途(アプリケーション)のための異なる方法でネットワーク上の遠隔キオスクまたはキオスク装置を再構成するために、特に異なるアプリケーション用に異なる方法で使用される様々な入出力装置をサポートするために、(場合によっては1つまたは複数のネットワーク・サーバで作成、開発、および記憶される)きわめて多くのアプリケーションを配布することができる。
【0016】
したがって、好ましい実施形態では、キオスク・システムは1つまたは複数のネットワーク、たとえばインターネット、企業または政府のイントラネットなどに接続することができる。キオスクは、1つまたは複数の入力/出力装置(たとえば表示装置、キーボード、ペーパー・プリンタ、電話など)と、各入力/出力装置のための1つまたは複数のドライバ・プログラム(ローカルAPI)を有する。表示装置は、キオスクのユーザに1つまたは複数のグラフィカル・ユーザ・インタフェースとビデオ画像を提示するために使用される。インタフェースのうちのいくつかはアプリケーション固有のものである。(アプリケーションとは、キオスクがそのために構成または再構成される用途である。)キオスクは、ネットワーク上の1つまたは複数のサーバから、(構成セットにおける)1つまたは複数のアプリケーション・ファイルを取り出すブラウザを有する。アプリケーション・ファイル(構成セット)は、キオスクのブラウザによって(アプリケーションによって決定される)シーケンスで提示される1組のHTMLファイルを含む。これらのHTMLファイルのうちの1つまたは複数のHTMLファイルは、キオスク上の装置のうちの1つまたは複数の装置のローカルAPIを制御するために使用される組込み(制御)プログラムを含む。ファイルのうちの1つまたは複数のファイルは、他のHTMLファイル、(画像や音声のような)マルチメディア構成要素ファイル、または他のHTMLファイル、マルチメディア構成要素ファイル、組込みプログラムまたは他のアプリケーション・ファイルへのハイパーリンクあるいはそれらの組合せも含むことができる。キオスクにおける選択機能(たとえば音声、ソフト・ボタン、ハイパーリンクなど)によってサーバから第1のアプリケーション・ファイルが選択される。この選択項目(選択機能)に関連づけられたアプリケーション・ファイル(構成セット)が、キオスクをそれに応じて構成する。したがって、キオスクは、アプリケーション・ファイルによって定義された様々なアプリケーションを実行するように構成および再構成することができる。
【0017】
ある種の好ましい実施形態では、アプリケーション・ファイルのうちの1つまたは複数のアプリケーションが1つまたは複数の所定の選択リンク(たとえばハイパーリンク)を有する。ブラウザがアプリケーション・ファイルを(たとえば1ファイルずつ)レンダリングまたは解釈するにつれて、所定の選択リンクがグラフィカル・ユーザ・インタフェース上でユーザに対して追加の選択項目として提示される。ユーザは、ゼロ個または1個以上の他の組込み制御プログラムを含む1つまたは複数の他の構成セット、HTMLファイルなどを選択し、呼び出すことができる。したがって、これらの追加の選択項目を使用して、ブラウザによってHTMLファイルの内容が提示されるシーケンス、および実際にはシーケンス内のファイルを変更して、キオスクを異なる方法で再構成し、ユーザからの情報の入手またはユーザへの情報の提供あるいはその両方を行うことができる。シーケンス内のHTMLファイルの内容のレンダリングによってキオスクが構成され、それによって、対話式画面の1つまたは複数の画面シーケンスと、必要な場合は、キオスクを特定の選択されたアプリケーション用に再構成するために組合わされる(組込みプログラムによって制御される)装置アクションのシーケンスとが提供されるようになる。これらの実施形態では、ユーザ(またはキオスクまたはサーバ内の他の機能)は、キオスク上の異なる選択機能を選択することによって他のアプリケーションのためにキオスクを再構成することができる。
【0018】
ある種の好ましい実施形態では、アプリケーションの一部が、エージェントと顧客がキオスクおよびサーバを介してネットワークで協同することができるようにするウェブ・ページ共用機能を含む。好ましい一実施形態は、「軽量」クライアント・アーキテクチャ、すなわちキオスク上にアプリケーション固有のソフトウェアがないクライアント・アーキテクチャを実施する。
【0019】
例示のみを目的として以下の図面を参照しながら、本発明の様々な好ましい実施形態について以下に詳述する。
【発明の実施の形態】
キオスク100の好ましい一実施形態のブロック図である図1を参照すると、キオスク100は、適切な周知のネットワーク・インタフェース155を有するコンピュータ110(たとえばPC350やPC750のようなIBMパーソナル・コンピュータ)を含む。ネットワーク150は、任意の周知のローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)とすることができる。好ましい実施形態では、ネットワーク150はインターネットである。しかし、電話網、ケーブル網、ISDN網などによって実施可能な、企業ネットワークのようなイントラネットワーク、政府ネットワーク、教育ネットワーク、企業間のエクストラネットワーク、および1つまたは複数の小売業者によって使用されるネットワークを含む、他の汎用ネットワーク150も考えられる。コンピュータ110は、キオスク100の一部として装備された1つまたは複数の入力または出力あるいはその両方の装置(下部参照)130を有する。典型的には、コンピュータ110は、周知の、1つまたは複数のメイン・メモリと、(ハード・ディスク・ドライブ、CDROMなどのような)1つまたは複数の記憶装置110Mと、1つまたは複数の中央処理装置(CPU)110Cとを有する。さらに、コンピュータ110は、保守のための任意選択のハードウェア・キーボード135およびマウス134を有する。ユーザは、これらの様々な(周辺130)入力または出力あるいはその両方の装置(まとめて130と番号を付す)にアクセスして、コンピュータ110およびネットワーク150を介して、ネットワーク150に接続された他のクライアントまたはサーバ195あるいはその両方との間で情報を伝送する。これらの入力/出力装置130の例としては、画面105を備えたタッチ・センシティブ端末103、プリンタ109、任意の周知の汎用情報読取装置111(たとえば磁気カード、クレジット・カード、またはスマート・カードを読み取るカード読取装置121)、スキャナ(たとえばレーザ・スキャナ)112、任意の周知の汎用情報書出装置113(プリンタ、チケット・プリンタ、媒体プリンタ(たとえばディスケット・ドライブ)、計算書プリンタ、または受領書プリンタ)、(たとえばステッカーやコンピュータ・ディスクを提供する)ディスペンサ、または有形の媒体113Aに入った情報をユーザに提供するその他の任意の装置130がある。その他の入力/出力装置130としては、現金自動支払機、スキャナ、ディポーザ、ペン入力装置136、カード発行機、発券機、CRT、キーボード、タッチ・センシティブ・スクリーン、プログラム制御可能カメラ、1つまたは複数の人間感知器(たとえば赤外線)、1つまたは複数のライト、CD−ROMプレーヤ、音声入力/出力装置(たとえばマイクロフォン133、スピーカ132、または電話機107、およびメモリ113Bのうちの任意の1つまたは複数の装置が含まれる。キオスク100は、電話107やテレビ会議システム114、たとえばPictureTel PCS−100デスクトップISDNテレビ会議システムなどの周知の通信装置を備えることができる(PictureTelはPictureTel社の商標である)。テレビ会議システムは、カメラ131や、スピーカ132、マイクロフォン133、適切なネットワーク・インタフェース155を介した1つまたは複数のISDN接続または別個のネットワーク接続を含む。他のネットワーク151、たとえば電話107、スピーカ132、マイクロフォンを介した在来型電話システム(POTS)電話網122またはISDN回線123あるいはその両方への接続も行うことができる。周知のインタフェースを使用してネットワーク(150、151)に他の周辺装置130を独立して接続することもできる。
【0020】
コンピュータのCPU110Cは、制御プロセスおよびライブラリ125と、ある種の好ましい実施形態では1つまたは複数の協同プロセスとを含む、ソフトウェア・プログラムを実行する。制御プロセス125は、1つまたは組込み制御関数/プログラム620と1つまたは複数の制御機構640の2つの部分を有する。(以下の図5、図6から図10を参照。)組込み制御プログラム/関数620は、内容固有のプロセス(たとえば銀行業務、レンタカー業、商品購入など)であるが、それぞれの入力/出力装置(またはそのサブセット)130に付随する非内容固有の制御機構640を使用してローカル・アプリケーション・プログラム・インタフェース680(API)を制御する。したがって、入力/出力装置130は、アプリケーションの内容に固有の方法で制御される。代替実施形態では、制御機構は、ネットワーク150からコンピュータ110に直接ロードすることができる。
【0021】
協同プロセス170は、APIと、キオスク100から協同セッションを確立する機能を実行する。この協同プロセスについては、1996年9月27日出願のフィン(Fin)等の「Internet Web Page Sharing」という名称の米国特許出願第08/722287号に記載されており、参照によりその全体が本明細書に組み込まれる(欧州特許出願97307536.0号、公告番号833260を参照)。コンピュータはさらにネットワーク150との対話に必要なプログラムを実行し、これにはウェブ・ブラウザ・プログラム160、たとえばNetscape Navigatorブラウザが含まれる。(Netscape Navigatorは、Netscape Communications Corporataionの商標である。)
【0022】
図2は、囲われた空間または一部囲われた空間200内にあるキオスク100を示す、本発明の代替実施形態を示すブロック図である。囲われた空間200は、一人または複数のユーザと共にキオスク100が置かれる任意のタイプの空間、たとえば、部屋、小ボックス、またはその他の任意の個室または準個室空間とすることができる。この実施形態では、コンピュータ110は、コンピュータ110がスペース200内にユーザのための環境を作り出すために制御する1つまたは複数の周知の環境周辺機器130に接続される。たとえば、環境周辺機器としては、空間の照明205、追加情報(たとえば販売情報)または環境要素(たとえば風景の可変表示や仮想世界)あるいはその両方を伝える空間200内の表示装置210、空間200に出入りするセキュリティ・アクセス215などがある。さらに、(部分的に)囲われた空間は、上述の周辺機器130と類似の他の環境周辺機器130、たとえば、音声、テレビ会議なども有することができる。仮想世界の例は周知である。
【0023】
システム100および200の好ましい実施形態では、ユーザが(選択機能を使用して)、キオスクをそのために構成させるアプリケーション、たとえば銀行業務を選択し、ブラウザ160がインターネット(汎用ネットワーク)150上の1つまたは複数のウェブ・サーバ195と対話して1つまたは複数の構成セット175を取り出す。任意選択により、サーバ195とキオスク(100、200)内のブラウザ160との間でデータ通信が開始する。次に、ブラウザ160によってアプリケーション・ファイル175が1ファイルずつ実行され、1)任意選択により、それぞれのアプリケーションと共に使用する入力/出力装置のうちの1つまたは複数の入力/出力装置(たとえばタッチ・センシティブ端末103や表示装置)130を制御するドライバ・プログラム(ローカルAPI680)を呼び出し、2)任意選択により、一連の入力/出力装置130アクションを、たとえば、端末/表示装置103上に表示される一連のウェブ・ページとして行わせ、3)任意選択により、入力装置130からのユーザ入力をサーバ195に伝え、4)任意選択により、ユーザ入力に応じて、ブラウザ160によってさらに実行するためのアプリケーション・ファイル175の他のアプリケーション・ファイル175を選択する。このように、ユーザは第1の選択機能を使用して第1のアプリケーション(およびそれに付随するサーバ195上の構成セット(アプリケーション・ファイル)175を選択することができ、そのアプリケーションがキオスクを第1の特定の選択されたアプリケーションに合わせて再構成する。第2のアプリケーションを選択することによって、再びキオスクが第2のアプリケーション等々用に再構成される。後の構成のための選択機能は、前の構成でユーザに提供される。
【0024】
アプリケーションとは、キオスクがそのために構成される任意の用途である。たとえば、アプリケーションには、金融、ビジネス、情報(ニュース、広告)、通信(電子メール、ウェブ・アクセス、テレビ会議)、小売業、マーケティング、サービス(たとえば行政プログラム)の分野における用途
(構成)が含まれる。アプリケーション所有者は、そのアプリケーションを実現するようにキオスクを構成することになる任意の個人、組織、または企業である。たとえば、銀行または投資信託会社は、1つまたは複数の金融業アプリケーションを使用してキオスクを構成する。このような金融業アプリケーションの例としては、ユーザへの金融情報の提供、口座の開設、現金支払い、勘定支払い、ローンの申込み、預金、およびエージェントから受ける支援などがある。サービス所有者の一例は、自動車レンタル/リースなどを行うようにキオスクを構成するレンタカー会社である。
【0025】
他の好ましい実施形態では、キオスク(100、200)は、ユーザによってではなくサーバ195によって再構成される。たとえば、キオスクを、ショッピング・モールのような公共の空間に設置することができる。ブラウザは、ネットワーク150上に配置された1つまたは複数のサーバ195またはデフォルト・サーバまたはプロキシ・サーバ195Aからキオスク100に、構成セット(アプリケーション・ファイル)175を、最初にまたは定期的に取り出すようにすることができる(またはサーバが「プッシュ」するようにすることもできる)。したがって、システム設計者は、サーバ195の遠隔設置場所からキオスクの構成を制御することができる。たとえば、モール内のキオスクを最初に、モールの地図の表示、バックグラウンド・ミュージックの再生、アナウンス、または天気情報またはニュースや株式市況のようなその他の一般情報の提供を行うように構成することができる。アプリケーション・ファイル175は、入力/出力装置130のうちの1つまたは複数の装置に、選択機能105A、たとえばタッチ・スクリーン、アイコン、ハイパーテキスト・リンク、グラフィカル・ユーザ・インタフェース上のソフト・ボタン、ハードワイヤード・ボタン、(無線周波識別タグのような)リモート・センサ、またはテレビ会議システム用の音声入力式メッセージ機能などの選択機能105Aを有するように、またはそのような選択機能105Aとなるように指示することもできる。選択機能105Aは、ユーザが、キオスクをユーザのアプリケーションに合わせて再構成させる選択を行うことができるようにする機能である。これらの選択機能105Aによって、ユーザはキオスク100/200を再構成したり、サーバ195がキオスクに提供させるその他の情報にアクセスしたりすることができる。
【0026】
選択機能105Aまたは表示されるその他の情報は、キオスクの所有者/運営者にとって収入源ともなり得る。たとえば、キオスクは、キオスクが提供する通知は有料で行われる広告になり得る。アプリケーション提供者(たとえば銀行投資信託会社、モーゲージ会社、金貸業者、仲介業(株式、不動産)、レンタル会社(自動車、機器)、サービス提供者、および小売業者)なら、キオスク100/200上に、ユーザがキオスクを自分の用途に合わせて構成するために選択する選択機能105Aを所有するために料金を支払うであろう。料金の金額は、キオスクの設置場所、キオスク上の選択機能/情報の位置/場所(たとえばグラフィカル・ユーザ・インタフェース)、選択機能105Aのサイズ、キオスクによって選択機能105A/情報が提供される時間および期間などに基づいて決めることができる。選択機能105A/情報は、様々なクラスの顧客/クライアントを対象にするために、異なる時刻に変更したり定期的に表示したりすることができる。たとえば、グランド・セントラル駅に置かれたキオスクは、ラッシュ・アワーには通勤者向け情報を表示させ、昼食時間の直前にはレストラン予約のための選択機能105Aを有するように再構成される。
【0027】
キオスク100/200は、アプリケーション提供者がサーバ195を介してユーザ固有の構成になるよう再構成することができる。たとえば、旅行代理店がスミス氏のユーザ・プロファイルを有するとする。スミス氏は、公共の場所または勤務先にあるキオスク100/200上の選択機能105Aを選択する。キオスクはその旅行代理店のアプリケーション用に再構成された後は、たとえば、入力/出力装置130の1つを使用して個人識別コードを入力するかまたはクレジット・カードを通すことによって、(アプリケーション・ファイルのうちの1つによる指示に従って)スミス氏に対して個人情報を求めることができる。次に、スミス氏の個人情報はキオスク100/200によってサーバ195に渡され、スミス氏に関するプロファイルにアクセスする。プロファイル内の情報を使用して、サーバ195によってアプリケーション・ファイル175のうちの1つまたは複数のファイルが送られ、キオスクが特にスミス氏のために再構成される。たとえば、中米への休暇パッケージ旅行のみをキオスク上で提供することができる。他の実施形態では、アプリケーション・ファイル175のうちの1つまたは複数のファイルによって、ユーザがGUI(後出の300)を編成できるようにすることができる。
【0028】
キオスク100/200の他の好ましい構成では、一人または複数のキオスク・ユーザとアプリケーション提供者の1つまたは複数のエージェントとの間に協同セッションがセットアップされる。協同は、キオスク上に常駐するかまたはサーバ195によってアプリケーション・ファイル175として提供される協同プロセス170によってセットアップされる(フィン(Fin)等の特許出願を参照)。
【0029】
キオスク(100、200)の他の好ましい構成では、サーバ195がキオスクに、キオスクの監視または保守に使用されるアプリケーション・ファイル175を提供する。たとえば、このような実施形態では組込み制御プログラム620のうちの1つまたは複数の組込み制御プログラムが、「デッドマン」タイマー状況、誤り検査プロトコルなどを使用してどの入力/出力装置が動作しているかを判断することによって、入力/出力装置130のうちの1つまたは複数の装置の動作状況を監視する。この情報はサーバ195に返される。他のアプリケーション・ファイル175を使用して、所与のキオスクにどの入力/出力装置130が設置されているか、または動作可能であるかを問い合わせる。このようにして、サーバ195は、設置または動作可能入力/出力装置130を使用可能にし、設置されていないかまたは故障している装置を使用可能にしない(構成しない)ために、他のどのアプリケーション・ファイル175をキオスクに送るかを判断することができる。したがって、入力/出力装置130の任意の汎用の組合せを含むキオスクをサーバの遠隔に設置することができ、サーバは所与の用途のためにキオスクを動作可能にする適切かつ動作可能なアプリケーションを提供する。アプリケーション・ファイル175を使用して、入力/出力装置のうちの1つまたは複数の装置から情報を入手し、装置の操作方法を判断することもできる。
【0030】
図3に、キオスク100/200の画面表示装置105上に表示されるグラフィカル・ユーザ・インタフェース(GUI)300の一例を示す。GUI300は、選択機能105Aを介してキオスクのユーザに主アクセス・インタフェースを提供する。選択機能105Aの例としては、銀行301、保険業302、汎用ソフト・ボタン303、およびピザ・レストラン304用のアプリケーションを示すアイコン画像301〜304がある。GUI300は、1つまたは複数の選択項目(典型的には325)を有するメニュー320の形の選択機能105Aも表示することができる。選択機能105Aの他の例は、GUI300またはメニュー320あるいはその両方の一部とすることができるハイパーリンク350である。GUI300のその他の領域340は、情報またはその他のデータを入力するために使用することができる。これらの情報フィールド340を使用して、GUI300を納税申告用紙、ローン申込書、モーゲージ申込書、預金入金票などの書式370として提示することができる。GUI300は、周知の技法を使用してブラウザ160によりウェブ・ページとして表示することができる。このウェブ・ページは、入力/出力装置130を介してユーザに提示されるマルチメディア(音声、映像)態様を有することができる。
【0031】
図4に、ユーザがユーザ・インタフェースを介して対話して選択機能105Aを選択し、選択機能105Aがそれに対応する構成セットであるアプリケーション・ファイル175をサーバ195からクライアント(キオスク100、200)にダウンロードして特定の機能を実行し、周辺装置130の特定のサブセット451(たとえば107、109、111、113、114など)を制御する仕組みを示す。ローカルAPI440は、1つまたは複数の周辺装置130を直接制御するソフトウェア機能インタフェースである。たとえば、カード読取装置130のローカルAPI440は、初期設定、始動、カードからのデータの読取り、カードの排出を行い、機能をオフにする処理を含む。
【0032】
(キオスク構成の)選択は、選択機能105Aによって行われる。選択機能105Aの例としては以下のものがある。
a)ユーザが画面上の画像アイコン、またはボタンのような他の選択装置に明示的に触れる。
b)現在実行中のプログラムが、ユーザの動作に基づいて選択を呼び出す必要があることを判断し、たとえば、ユーザが同じ間違いを続けて2回犯した場合、ヘルプ・プログラムを呼び出す。
c)現在実行中のプログラム内の論理が、次の選択(キオスク構成)を判断する。たとえば、ユーザがモーゲージの事前資格審査申込書を作成し、銀行がそれを承認した後は、現行アプリケーションがユーザに不動産情報を必要とするかどうかを尋ねることができる。ユーザが肯定の応答をした場合、キオスクの構成は、不動産業者アプリケーションの構成に変更される。
【0033】
一実施形態では、選択105Aが行われると、ブラウザ160がネットワーク・インタフェース155を介してHTTPでサーバ195に、その選択機能105Aに対応する最初のアプリケーション・ファイル175(ファイル500からなる)を求める要求を送る。(アプリケーション・ファイル/構成セット175内のファイル500の説明については図5も参照されたい。)次に、サーバ195は、アプリケーション・ファイル175をブラウザ160に提供する。アプリケーション・ファイルを構成するファイル500がブラウザ160に到着した後、ファイル500のHTMLの内容が1行ずつ実行される。ブラウザが実行している現行アプリケーション・ファイルのファイル500に次のアプリケーション・ファイルのファイル500が関連づけられている(たとえばハイパーリンクされている)場合、この次のアプリケーション・ファイルのファイル500もブラウザに送られる。このようにして、ブラウザ160は各ファイル500を、構成セット175内のHTMLテキストの命令によって定義されている順序で1行ずつ、1構成セット175ずつ実行する。このようにしてアプリケーション・ファイル/構成セット175内のファイル500を実行することによって、(装置130に関連づけられている)ローカルAPI440または、ローカルAPIのサブセット441が呼び出されて、選択された装置のサブセット451を制御し、キオスク(100/200)が再構成される。各アプリケーション・ファイル/ファイル(175、500)内の論理またはユーザ・アクションあるいはその両方によって、どのアプリケーション・ファイル/ファイル(175、500)が実行されるかを変更したり、アプリケーション・ファイルのうちの一部のアプリケーション・ファイルを実行するかどうかを変更したりすることができることに留意されたい。
【0034】
アプリケーション・ファイル175を実行することによって、ブラウザ160は装置130のうちの1つまたは複数の装置を選択し、制御する。キオスクの構成は、アプリケーション・ファイルの実行中に選択された装置451(たとえば装置のサブセット451)と、装置のサブセット451がどのように制御されるかによって定義される。たとえば、銀行業務の構成では、アプリケーション・ファイル175の実行によって、API441のサブセットが呼び出され、たとえばカード読取装置111とプリンタ109(装置サブセット451)が選択されて制御され、それぞれ、銀行カードの読取りとトランザクション記録の印刷が行われる。同じ銀行業務の構成で、アプリケーション・ファイルのうちの1つまたは複数のアプリケーション・ファイル(またはアプリケーション・ファイル内の行あるいはその両方)175を実行すると装置130の選択や制御は行われないが、データの記憶、サーバ195へのデータまたはメッセージの返送などを含む他のアクションが行われる。ピザを注文する他の構成では、アプリケーション・ファイルの実行によってAPI441の異なるサブセットが呼び出され、同じ装置サブセット451(すなわちカード読取装置111とプリンタ109)を選択し、制御してそれぞれ、クレジット・カードの読取りおよび代価請求が行われ、選択されたピザのトッピングを示す購入レシートが印刷される。
【0035】
構成によっては、アプリケーション・ファイル175の実行によって1つまたは複数の装置130は選択されないことに留意されたい。そのような場合、デフォルトの装置が使用される。たとえば、テキスト行を表示させるファイル500内の行が、デフォルトにより表示装置103に宛てて送られる。
【0036】
また、ブラウザ160は他のローカル・プログラムまたはライブラリあるいはその両方を使用してアプリケーション・ファイルの実行と対話するローカル実行可能モジュールの特別なセットにアクセスすることができることにも留意されたい(図6参照)。
【0037】
図5は、少なくとも1つの組込み制御プログラム620を与える、1つまたは複数のHTMLファイルおよびそれに関連づけられたハイパーテキスト構成要素ファイルを含む、アプリケーション・ファイル(構成セット)175のセットを示すブロック図である。ウェブ・ベースのアプリケーション・ファイル175はすべて、少なくとも1つの組込み制御プログラム620を与えるHTMLベースのファイルである。アプリケーション・ファイル175は、任意選択により、HTMLベースであるかどうかを問わず他のハイパーテキスト構成要素ファイルも含む。典型的には、HTMLファイルは、テキスト525、画像またはグラフィクス528、(画像528、アプレット505、スクリプト515、またはその他の組込み制御関数(プログラム)620として実施された)アニメーション、(1つの組込み制御関数620として)音声、(1つの組込み制御関数620として)映像、およびその他のハイパーリンクといった組込み構成要素ファイルである標準HTML(HTML3.0など)、などを示すタグを含んで構成されている。これらのタグは周知である。好ましい一実施形態では、ブラウザ160はNetscape Navigator v3.0である。組込みプログラムは、Java(登録商標)ScriptまたはJava(登録商標)アプレット、またはプラグインを使用する他の任意の組込みプログラムあるいはそれらの組合せを使用して実施することができる(Java(登録商標)はSun Microsystems Inc.の商標である)。図5に示すように、HTMLファイル500は、タグ505を使用してJava(登録商標)アプレットを組み込み、タグ515を使用してJava(登録商標)Script関数を組み込ませ、タグ520を使用してブラウザのプラグイン機能を呼び出す他の任意のプログラムを組み込ませている。標準HTMLタグの詳細は、「Netscape HTML3.0 Source Book」に記載されており、参照によりその全体が本明細書に組み込まれる。これらの組込み制御関数520のうちのいくつかは、コンピュータに読み込まれると組込み制御関数/プログラム620とされる。
【0038】
図5は、キオスク100を構成する典型的なアプリケーションの組込み制御プログラム620の実行で呼び出されるシステムの構成要素を示すブロック図である。
【0039】
ブラウザ160内には、機能として、HTMLファイル内のHTMLタグを解釈または認識するインタプリタ610がある。インタプリタ610は、タグのタイプとタグの内容に応じて各HTMLタグごとに関数を実行するためにHTMLタグ実行プログラム611を呼び出す。実行によって、ローカル・キオスク・プログラム(ローカル周辺API440を含む)に対するAPI呼び出し680が呼び出されない場合、ブラウザは、必要であれば標準関数のライブラリ617を使用して各HTMLタグ615を実行する。これらの非API制御関数615の例としては、テキストの表示、画像の表示などがある。これらは周知であり、従来技術のブラウザに含まれている。
【0040】
しかし、実行プログラム611が、ローカル・キオスクAPI680の1つを呼び出す組込み制御関数620に遭遇した場合、実行プログラム611はブラウザ160内部のセキュリティ・マネージャ625を呼び出して、API呼び出しが許可されているかどうかを判断する。後で詳述するように、キオスク制御機構640、またはその機構の一部640Aが、ブラウザが入っているディレクトリのサブディレクトリに入れられている。こうすることにより、実行プログラム611が組込み制御関数620に遭遇するとセキュリティ・マネージャ625は制御機構640(以下の640A)を見つけ、API制御関数621がその制御機構640/640Aをブラウザ・プロセス160にロードする。たとえば、これらの組込み制御関数620は、1つまたは複数のローカルAPI関数680/440(すなわちAPI441の選択されたサブセット)を呼び出して装置451の所与のサブセットを動作させるアプレットを含むことができる。たとえば、装置がカード読取装置の場合、組込み制御関数620は制御機構640を使用して適切なAPI440を呼び出し、カード読取り装置を開き、カードからデータを読み取り、カードを排出し、カード読み取り装置を閉じる。
【0041】
周知のブラウザ160は、ローカルAPI680を実行するためにネットワーク150からの組込み制御関数620を実行しないことに留意されたい。実際には、これらのブラウザは、周知のネットワーク・セキュリティ上の理由のため、これらのAPI制御関数の実行を特に防止する。たとえば、アプリケーション・ファイル175がネットワークを通過している間に変更された場合、アプリケーション・ファイル内の被害を受けた制御関数の実行によって、クライアント機、すなわちキオスク(100、200)で予測不可能で有害な結果が生じる可能性がある。
【0042】
Java(登録商標)は、バイト・コード伝送および検証、仮想計算機による誤り検査など、様々な特別な手段を使用してネットワーク・セキュリティ問題を克服するように設計されていることは周知である。さらに、Java(登録商標)がウェブ・ベースのアプリケーション内のアプレットとして使用されている場合、すなわちHTMLファイルに組み込まれている場合、ブラウザは通常、そのJava(登録商標)アプレットが、ブラウザに組み込まれている標準Java(登録商標)ライブラリ内のJava(登録商標)プログラム以外のクライアント機上のどのローカルJava(登録商標)プログラムにもアクセスしないように厳しく防止する。その理由は、アプレットが管理されていない環境から送られてくるため、すなわち、ネットワーク全体のどのサーバからでも送られてくる可能性があるために、単にアプレットがクライアント機に与える可能性のある被害を防止するためである。
【0043】
「Java(登録商標) Now」(クリス・ジャムサ(Kris Jamsa)著、Jamsa Presss、1996年刊、ISBN 1−884133−30−4、p4)という書物に記載されているように、「セキュリティ問題に対処するため、Java(登録商標)開発者はプログラマがJava(登録商標)アプレットを使用してコンピュータ・ウィルスを作成できないようにし、アプレットがユーザのシステムに関する情報(ユーザのシステム上のファイルなど)をサーバに転送し戻すことができないようにしなければならなかった。たとえば、競争相手のウェブ・サイトを閲覧している間に、その競争相手のJava(登録商標)アプレットに自分のハード・ディスクを読まれたとしたら嫌であろう。そのようなセキュリティを設けるために、Java(登録商標)開発者はアプレットが行うことができる操作を制限することにした。たとえば、Java(登録商標)アプレットはユーザのシステム上のファイルを読み書きすることができない。このようにすることで、アプレットはユーザ・のディスクにウィルスを記憶したり、ユーザのディスクに記憶されている情報を読み取ったりすることができない」。また、次のようにも記載されている。「Java(登録商標)は、プログラマにスタンド・アロン型プログラムを作成させる。Java(登録商標)のスタンド・アロン型プログラムは、プログラマがC++を使用して作成することができるプログラムと類似している。そのようなスタンド・アロン型プログラムは、Java(登録商標)がアプレットによる実行を制限するファイルの読み書きと操作の実行を行うことができる。それに対してJava(登録商標)アプレットは、ブラウザ内でしか実行されない...」。これは、Java(登録商標)アプレットは、ブラウザ・プロセス160の外部の関数を操作しない設計になっていることを意味する。
【0044】
標準ブラウザの動作中、ブラウザのセキュリティ・マネージャ625がこれらのセキュリティ規則に違反がないか監視する。標準Java(登録商標)ライブラリ内にないプログラムへのアクセスを要求するアプレットが見つかると、ブラウザは、単にセキュリティ違反エラーを報告し、そのアプレットの実行を停止する。
【0045】
一実施形態では、アプリケーション・ファイル175がキオスクを構成することができるようにするために、キオスク固有制御機構640の一部640Aがブラウザ160に付加され、キオスク固有制御機構640の他の一部640Bがアプリケーション・プログラミング・インタフェース(API)680(440を含む)に付加される。したがって、キオスク固有制御機構640は、ブラウザ機構640AとAPI機構640Bの2つの部分に分けられる。この実施形態では、ブラウザ機構640AとAPI機構640Bは、プロセス間通信(IPC)640Iを介して連絡する。IPC640Iインタフェースは、ブラウザ機構640AとAPI機構640Bが、直接間接呼び出しではなくメッセージ受渡しを使用して連絡することができるようにする。(IPCは周知であり、その一例は、Windows(登録商標)オペレーティング・システムにおけるダイナミック・データ交換(DDE)の使用である。Windows(登録商標)はMicrosoft Corporationの商標である。)
【0046】
ブラウザ機構640Aは、どのアプリケーション・ファイル175内のAPI制御関数620もブラウザ160内のインタプリタ610によって認識されるように、ブラウザ・サブディレクトリに入れられる。API機構640Bは、ブラウザ機構640Aからメッセージを受け取り、そのメッセージに従って440を含む様々な関数を独立して制御する。このようにして、ブラウザからのアプレットは、1つまたは複数の装置およびローカル機能を制御することができるようになるが、それはブラウザ機構640Aを有する関数のみである。したがって、キオスク内の他の関数は、ネットワークを介したアプリケーション・ファイル175によるアクセスからは安全に保護されたままである。したがって、キオスクは構成可能ではあるが、安全に保護される。さらに、API機構640BはデバイスAPI440をブラウザからは独立して操作するため、API機構640Bに渡された装置制御関数(所与の装置を制御するために使用されるAPI制御関数620のサブセット)は、そのアプリケーション・ファイルが後でブラウザ160で除去または変更された場合であっても、装置のそのサブセット451についてのみ実行される。これによって、装置動作を持続的な方法で行うことができる。すなわちAPI関数(640、440)が開始された後は、アプリケーション・ファイル175がブラウザ160によって変更/除去されるかどうかに関係なく、その関数を完了することができる。この実行持続性によって、キオスクとのある種のユーザ対話をより効率的にすることができる。たとえば、アプリケーション・ファイル175は、カード発行機に新しいカードを発行するように指示することができる。次に、ユーザ/ブラウザは、カード発行機が磁気ストライプにデータを書き込んで新しいカードの打出しをしている間に別のアプリケーション・ファイルに移ることができる。
【0047】
ブラウザ機構640Aは、1)ブラウザ自体の標準ディレクトリ/ライブラリ内に入れられ、2)アプリケーション・ファイル175が、1つまたは複数のローカルAPI関数に関するメッセージ(たとえば関数名および関連パラメータ)を渡すネーム・サーバ機構を使用したメッセージ受渡し(図7および図9とその説明を参照)か、またはローカルAPI関数の直接呼び出し(図8および図10とその説明を参照)のいずれかによって、ローカルAPI680のうちの1つまたは複数のローカルAPI680を呼び出すことができるようにする構造を有する。
【0048】
好ましい一実施形態では、ブラウザ機構640Aは、アプリケーション・ファイル500にとって既知のJava(登録商標) API(「Java(登録商標)ラッパ」と呼ぶ場合もある)を含み、(たとえばプロセス間通信またはネーム・サーバを使用して)通信を行うか、またはローカルAPI680を直接呼び出すためのネイティブ言語(たとえばC++)でプログラムされた関数をさらに含む。
【0049】
API機構640Bは、1)様々なローカル機能モジュール(たとえばブラウザ制御モジュール、協同機能モジュール、装置制御モジュール、システム監視モジュールなど)に直接アクセスし、2)ネーム・サーバ機構を使用するかまたは関連する関数モジュールを直接呼び出すことによって1つまたは複数のAPI関数680から成るセットを呼び出すことができる構造を有し、3)API640Aとのメッセージ・ベースの通信を可能にするIPCを有する。(API関数680は、キオスク内の所与の装置または機能を特に制御するように作成され、アプリケーション・ファイル175によってアクセス可能であっても可能でなくてもよいことに留意されたい。)
【0050】
このキオスク制御機構を使用する一応用例は、アプリケーションがキオスクの構成方法を決定する前に、システム・セットアップおよび状況を問い合わせることである。アプリケーション・ファイル175内で、アプレットCallAPI.classを使用してAPI関数640「query_status」を呼び出すことができる。たとえば、

Figure 2004005688
このアプレットがブラウザによって実行されると、まず、kioskAppInterfaceというクラスをインスタンス化する。このファイルおよび関連するDLLは、ブラウザ標準ライブラリに入れられる。次に、send_APImessage()というkioskAppInterfaceクラス(640A)のメソッドを使用して、APIメッセージ”query_status”(640A)を送る。このメソッドは、プロセス間通信機能640Iを呼び出して、API機構640Bにメッセージを送る。次に、AIP機構640Bは、関連するローカルAPI関数680を呼び出してシステム状況データを入手し、そのデータをプロセス間通信機能640Iを介して640Aに送り返す。アプレットは、メソッドget_APImessage()をコマンド”status”と共に使用して、640Bから送り返されたデータを入手し、そのデータをsysStatusというクラス内のデータ構造に格納する。
【0051】
640Aと640Bとの間のAPIメッセージ受渡しには、ネーム・サーバ機能機構(以下の図7を参照)を使用することができる。一般に、640Bがメッセージを入手すると、(640B内の)ネーム・サーバ機能がそのメッセージを解析し、対応するローカル機能API680を呼び出す。この例では、システム監視関数APIを呼び出してシステム状況データを入手する。これは、以下のように例示することができる。
Figure 2004005688
上述のように”sysStatus”クラス・データ構造で入手されたデータの例を以下に示す。
Num. of Device = 5
laser printer = OK
card reader = OK
card issuer = no card supply
receipt printer = OK
ticket printer = OK
このメッセージは、キオスク上に5個の装置があり、カードを必要とするカード発行機以外はすべて動作していることを示している。
【0052】
キオスクの現況に従って、アプリケーション・ファイル175は、レーザ・プリンタ、受領書プリンタ、およびカード読み取り機(装置サブセット451)を選択して使用することができると同時に、状況データが示すようにカード読み取り機のカード供給機構にカードが入っていないため、カード発行機の使用を回避する(このような状況では、カードは他の手段で作成し、キオスクのユーザに郵送される)。
【0053】
ある種の好ましい実施形態では、このような技法を使用して、キオスクにどの装置が備えられているか、それらの装置が正常に機能しているかどうかを判断する。このようにして、サーバは、キオスクがどの装置を備えているかやどの装置が動作可能かに基づいて、キオスクを構成するための特定のアプリケーション・ファイル175を供給することができる。したがって、それぞれのアプリケーション構成のためにサーバでアプリケーション・ファイルを適切に選択することにより、任意の数の異なるキオスク設計や動作状況を構成することができる。たとえば、銀行業務アプリケーションでは、高品質の銀行取引明細書を印刷するためにレーザ・プリンタを備えたキオスクにはレーザ・プリンタ制御を含むアプリケーション・ファイルとして構成されるファイル500が送られるのに対し、それと同じタスク(銀行取引明細書)のために(使用可能かつ動作可能な)受領書プリンタしか持っていないキオスクには、受領書プリンタ制御を含むアプリケーション・ファイルとして構成される他のファイル500が送られる。このようにして、誤動作するレーザ・プリンタを備えたキオスクや、レーザ・プリンタのないより低コストのキオスクでも、銀行アプリケーション用に適切に構成することができる。
【0054】
他の実施形態では、1つまたは複数のサーバがアプリケーション・ファイルで要求を送ることによって状況情報を要求することができる。この情報を使用して、サービスの提供を必要とするキオスクまたはそれらのキオスク上の装置あるいはその両方を判断することができる。たとえば、必要な場合にサービス技術員を派遣してカード発行機にカードを追加することができる。
【0055】
他の実施形態では、キオスクまたは装置のサービス履歴で使用するために状況情報を要求することができる。さらに、他のマーケティング情報、たとえば、特定の設置場所でどのクラスの顧客によってどの構成が最も要求されるかという情報を入手することもできる。
【0056】
好ましい一実施形態では、キオスクは、他のアプリケーションのバックグラウンドで実行されるブラウザ・ウィンドウ(システム監視アプリケーション・ウィンドウ)を有することができる。このシステム監視アプリケーション・ウィンドウは、1つまたは複数のサーバと通信する1つまたは複数のアプレットを含む1つまたは複数のHTMLファイルを含むことができる。(サーバとのJava(登録商標)アプレット通信のための機構は周知である。)このシステム監視アプリケーション・ウィンドウは、キオスクに電源投入されると常に開始することができ、キオスクが動作中である限り稼働し続ける。このようにして、1つまたは複数のサーバが、アプレットとの通信を介して随時、キオスクのシステム状況情報を入手することができる。
【0057】
本明細書に記載の手法によって得られる可能性の中には以下のものがある。
1)「軽量クライアント」キオスク。キオスクに事前インストールする必要があるアプリケーション固有ソフトウェアがないため、コスト効果の高いキオスクの構築と維持を行うことができる。したがって、サーバ上で1つのアプリケーション(アプリケーション・ファイル500)を作成し、それをそのサーバに接続されているネットワーク上の多数の「軽量」キオスクが使用することができる。ネットワーク上の「軽量」キオスクのいずれのためにもアプリケーション固有のソフトウェアを作成する必要がない。実際には、ネットワークは、アプリケーション固有ソフトウェアをまったく持たない1つまたは複数の標準(したがってより安価な)「軽量」キオスクで構成することができる。(たとえば、キオスク製造業者は、どの用途にも使用され、どの用途からも独立した1つまたは複数の標準キオスクを製造することができる。)アプリケーション・ファイル500をサーバで作成、更新、保守することができ、キオスク内のどのプログラミングにも変更を加えることなく、ネットワーク上の1つまたは複数のキオスクを再構成するために使用することができる。この「軽量クライアント」キオスクは、いつでもどこでも汎用公共アクセスを提供するためのキオスクの大量配備を可能にし、たとえばインターネットまたは電話網あるいはその両方を介して通信することができる「キオスク電話」を可能にする。
【0058】
2)キオスクが再構成可能であるため、サーバで多数の多様なアプリケーションを開発することができ、そのキオスクを介して配布することができる。したがって、アプリケーション提供者はネットワーク上にあるどのキオスクでも共用することができる。これらのアプリケーションは、特定の時点や特定の状況、たとえばユーザ要求または所与の環境条件(雨が降り出した時に傘店が広告を出すなど)のために、キオスクに供給することができる。
【0059】
3)キオスクはインターネットおよびウェブのオープン・スタンダード技術に基づくことができるため、情報や媒体が豊富で、技術に富むインターネットおよびワールド・ワイド・ウェブの利点を利用することができる。
【0060】
ユーザがこのキオスク100をどのように使用できるかを示すいくつかの非限定的な例を以下に示す。
1.遊休時におけるキオスクの画面によって、様々な画像、ビデオ・クリップ、音声、グラフィクス・パターンおよびテキストを動的に表示する。画面の内容はすべてHTMLファイルから制御され、これらのHTMLファイルはキオスクの要求またはサーバのプッシュに基づいて更新される。サーバ提供者は、この異なる種類の画面「スペース」およびその表示時間に対して異なる料金を支払うことができる。朝と夕方の通勤時間には、主にヘッドライン・ニュースと金融市場の変化を表示し、昼食時間には多くのレストランの宣伝を表示する。週末には、百貨店の特売広告を表示することもできる。この内容は、そばを通る人々を常に、画面にタッチするように誘う。
2.ユーザは画面を見て歩み寄り、画面にタッチする。画面はただちに次の画面に切り替わり、アプリケーションのカテゴリを示す多くの画像アイコンとテキストを表示する。
3.ユーザがピザ注文アイコンにタッチすると、ユーザがピザの種類を選択することができる画面が提示される。画面は、ユーザに対してピザの配達場所と時間の入力を促し、ユーザは画面上のタッチ・キーパッドを介して情報を入力することができる。HTML内に組み込まれた制御プログラム620がこのデータを取り込む。次に、画面はユーザに対して自分のクレジット・カードを挿入して支払いを認めるように促す。制御プログラムは、カード読み取り機を開き、クレジット・カード情報を取り込む。次に、制御プログラムは関連するキオスクAPI関数を使用してキオスク上で通信機能を呼び出し、(たとえばモデムを介して)クレジット・カード会社と(たとえばファクス伝送を介して)ピザ店とにアクセスする。これらの機能が完了した後、画面は顧客に注文のための情報を確認する。その他の一般小売業トランザクションも同様にして行うことができる。
4.ユーザは、電話アイコンにタッチして電話を掛けることもできる。画面上に電話アプリケーションHTMLファイルが電話キーパッドと共に表示される。ユーザが番号を入力した後、組込み制御プログラムが関連API関数640Aを呼び出し、電話呼出しを開始する。これは、キオスクのネットワーク接続(122、123、150)、アプリケーション・ファイル500、およびユーザ選択105Aに応じて、公衆電話網(PSTN)、統合サービス・ディジタル網(ISDN)、またはインターネット電話を介した従来の電話呼出しとすることができる。電話が接続されると、ユーザはキオスクに備えられた送受話器またはスピーカフォンを使用することができる(欧州特許出願第789470号に対応する、1996年2月6日出願の「Multipoint Simultaneous Voice and Data Services Using a Media Splitter Gateway Architecture」という名称のホルテンシウス(Hortensius)等の米国特許出願第08/595897号を参照されたい。これは、参照によりその全体が本明細書に組み込まれる)。
【0061】
他の好ましい実施形態では、ユーザは相手方が同じ機能を備えていればアプリケーション共用機能を使用してテレビ電話呼出しまたはテレビ会議呼出しも選択することができる。その場合、HTMLアプリケーションに組み込まれた制御プログラム620が関連API関数640Aを呼び出して、キオスクのテレビ会議機能を開始する。ユーザはキオスクに備えられたタッチ・スクリーンと電子ペンを使用して会話を容易にすることができる(前述のフィン等の「Internet Web Page Sharing」特許出願に記載されている)。
5.ユーザはファクス機能を選択することもできる。画面は、ユーザに対して指示を出して、ファクス番号を入力し、クレジット・カードを挿入してファクスする文書を適切な装置(文書スロットなど)に入れ、準備が整ったら画面上のOKボタンにタッチするように促す。ボタンにタッチすると、組込み制御プログラム620がキオスク上で関連装置制御API関数640Aを呼び出し、スキャナを動作させ、文書を走査して文書を返し、ネットワーク、たとえばPSTNやインターネットを介して文書を電子送信する。
6.ユーザは、電子メール機能を選択することもできる。画面は、電子メール用のHTMLアプリケーションを表示する。組込み制御プログラム620が関連API関数640Aを呼び出すか、またはブラウザを介してメール・サーバおよびディレクトリ・サーバと直接通信し、ユーザを識別し、既存の電子メール・メッセージの取出しまたは新規メッセージの送信を行う。
7.ユーザは、フロッピィ・ディスケットなどの媒体上の電子ファイルを転送する105Aを選択することもできる。画面は、ユーザに対して特定のプロセスに従うように、たとえばフロッピィをスロットに挿入するように促す。組込み制御プログラム620が関連API関数640Aを呼び出し、ディスケットを読み取り、ユーザが選択したファイルの読み取りまたは書込みを行い、それを、たとえば誰かの電子メール・アドレスに送信するなど、ユーザの指示に従って転送する。
8.ユーザは、弁護士、医師、会計士、不動産業者、融資ブローカー、投資顧問業者、保険業者など、広範なサービス提供者(たとえばサーバ上のアプリケーション所有者)の中からサービスを選択することができる。画面は、HTMLファイル内の対応するアプリケーションを表示し、要求されたサービスを供給する(ユーザ選択に基づき、このサービスは、英語、スペイン語、中国語、日本語、フランス語、イタリア語など、任意の自然言語で提示することができる。)
9.サービス提供者のアプリケーションによっては、映像、音声、共用画面、および遠隔装置制御機能を使用して、リアルタイム協同セッションも開始することができる(前述したフィン等の特許を参照)。組込み制御プログラムが関連API関数620を呼び出し、映像、音声、およびデータ通信を処理する。
10.ユーザは、情報の検索を選択することができる。画面がユーザにどのような情報が必要かを入力するように促し、組込制御プログラムがそのデータを取り込み、情報のタイプの応じて照会を送る。照会は、インタフェースを介して、周知の検索エンジン、アプリケーション・サーバ上のデータベース、および他のネットワーク・サーバ上のデータベースを使用して送ることができる。
11.ユーザは、カスタマイズされたアプリケーション・サーバを選択することができる。たとえば、ユーザが(たとえば磁気カードまたはスマート・カード上でアクセスされた情報から)識別されると、アプリケーション・ファイルは、ユーザのためにカスタマイズされた情報やキオスク構成を提供する。
12.ユーザは、キオスク100によって最初に提供される構成ではないキオスク100の構成を選択することができる。キオスクの第1の構成と対話することによって、他のアプリケーション・ファイル175の参照によってキオスクを第2の構成に再構成することができる。たとえば、第1の構成が、第2の構成のためのアプリケーション・ファイル175にアクセスするユーザ入力(アイコンまたはハイパーリンク)を備えることができる。
13.ユーザは、サーバが「学習」アプリケーション・ファイル175を提供する、ネットワークに接続された1つまたは複数のキオスクにアクセスすることができる一人または複数の学生または受講者とすることができる。
14.ユーザは、キオスクから「電子」製品を選択することができる。たとえば、音楽、ビデオ、コンピュータ・ソフトウェア、またはその他のマルチメディア情報あるいはそれらの組合せを有するコンパクト・ディスク(CD)を、適切なディスペンサから販売することができる。あるいは、適切なキオスク装置によって空の媒体(たとえばテープ、ディスケット、書込み可能CDなど)に書き込み、ネットワークを介してユーザに伝送可能な「電子」情報を無形の形態で提供することもできる。たとえば、最新のオペラ録音を、工場で「カット」されたCDを送らずに、CDで提供することができる。
【0062】
キオスク装置との間で情報の入出力を行うために使用される、ある種のキオスク制御機構640の他の例を以下に示す。一般的入力状況で、アプリケーション・ファイル500は、API関数640「hardkey_input」を呼び出すために使用されるCllAPI.classというアプレットを有する。たとえば、以下の通りである。
【0063】
Figure 2004005688
【0064】
このアプレットを以下のようにHTMLファイルに組み込む。
【0065】
Figure 2004005688
【0066】
このアプレットは、ブラウザによって実行されると、まず、kioskAppInterfaceというクラスをインスタンス化する。このファイルおよび関連DLLは、ブラウザ標準ライブラリに入れられる。次に、send_APImessage()というkioskAppInterfaceクラス(640A)のメソッドを使用して、APIメッセージ「hardkey_input」(640A)を送る。このメソッドは、プロセス間通信機能640Iを呼び出して、メッセージをAPI機構640Bに送る。次に、API機構640Bが関連ローカルAPI関数680を呼び出し、キオスクに備えられたハードウェア・キーからのキー入力を取り込み、それをプロセス間通信機能640Iを介して640Aに送り返す。このアプレットは、コマンド「input」と共にget_AIPmessage()を使用して、640Bから送られたデータを入手し、InputDataというクラス内のデータ構造に格納する。
【0067】
Figure 2004005688
【0068】
アプリケーション・ファイル500が、「ソフト・キー」入力を呼び出す組込みアプレットを有する場合も、同様のAPIメッセージが640Aと640Bの間で受渡しされ、異なるAPI関数680を使用して画面上にソフトキー・パッド・ウィンドウを「ポップアップ」表示し、ユーザ入力を取り込むことに留意されたい。このようなソフト・キー入力のためのAPI関数680は周知である。
【0069】
同様にして、アプリケーション・ファイル500が、出力装置、たとえばレーザ・プリンタ上でのファイルのプリントを呼び出す場合、組込みアプレットを有する場合、上記のコードはローカルAPI関数680のLaser_print(FileName)に指示して、レーザ・プリンタを制御し、ファイル「FileName」をプリントさせる。
【0070】
図7に、ICP640Iおよびネーム・サーバ機能640Bを使用するキオスク制御機構640の一実施形態を示す。この場合、アプリケーション・ファイル(175、500)によって、(主としてメッセージ受渡しのための)汎用通信API関数640Aの小さな固定セットが使用される。これらの通信API関数は、640Aと60Bとの間でメッセージの通信または受渡しを行う。メッセージの実行は、640B内のネーム・サーバ機能によって行われる。サーバ機能640Bは、IPC640Iサーバとしての機能する。ネーム・サーバ機能は、様々な事前定義メッセージを認識する。たとえば、一実施形態では、通信APIのセットは、send_mesage(message)とget_message(message)の2つの関数を有する。しかし、複数の「message」がある。640B内のネーム・サーバ機能は、これらの各事前定義メッセージが入ったリストを融資、各事前定義メッセージは、それぞれの事前定義メッセージを実行するために適切なローカルAPI関数680を呼び出すことができる1組の論理に関連づけられている。
【0071】
この実施形態では、新しい事前定義メッセージと、新しい機能を実行するのに必要な論理とを与えることによって、新しい装置やそれらの新しい装置によって実行される新しい機能を追加することができる。このようにして、アプリケーション・ファイル(175、500)は、与えられた通信API関数において新しいメッセージ識別子を使用するだけで、それらの新しい機能を実行することができる。これには、典型的には、アプリケーション・ファイル500内で「ASCII」または「text」メッセージ識別子を変更するだけでよい。新しい機能を使用するために、新しい組込みプログラムのコード化とコンパイルを行ったり、既存のプログラムを修正したりする必要はない。したがって、キオスク提供者が必要な論理をネーム・サーバ640Bにすでに組み込んでいるため、アプリケーション所有者(したがってサーバ上のアプリケーション・ファイル)が新しい機能を実行するためにしなければならないことはわずかしかない。
【0072】
図8は、ブラウザ機構640Aにおけるマッピング・ローカルAPIのためのIPC640Iを使用するキオスク制御機構640の代替実施形態を示すブロック図である。この例では、多くのキオスク制御関数620またはすべてのキオスク制御関数620が、ブラウザ機構640Aでアプリケーション・ファイル500から対応するマッピング・ローカルAPIを直接呼び出すことによって実行される。各マッピング・ローカルAPI640Aは、IPC640Iを介してAPI機構640Bと連絡し、API機構640Bが適切なローカルAPI関数680を呼び出す。ここでは、マッピング・ローカルAPI640Aは、Java(登録商標) APIプログラムである。1つまたは複数のローカルAPI680のために特に作成された1つのJava(登録商標) APIプログラムがある。ネーム・サーバの場合とは異なり、Java(登録商標) APIプログラムのうちの少なくとも1つのAPIプログラムが、ローカルAPI680のうちの1つまたは複数のローカルAPI680を制御する論理を持っていなければならない。これらのJava(登録商標) APIプログラム640は事前定義され、アプリケーション・ファイル500にとって既知である。
【0073】
この実施形態では、ブラウザ機構640A内に新しいマッピング・ローカルAPI(640A)をそれらに対応するAPI機構640Bと共に設けることによって、新しい装置やそれらの装置によって実行される新規機能を追加することができる。この実施形態では、アプリケーション・ファイル500は、これらの各新規機能を直接呼び出しで実行する必要がある。したがって、新規機能を実行するための論理の一部または全部を、アプリケーション・ファイル500に定義する必要がある。たとえば、サーバでアプリケーション・ファイル500を作成するアプリケーション・プログラマは、たとえば新しいJava(登録商標)アプレットを作成することによってこの新しい論理をコード化する必要がある。
【0074】
図9に、キオスク制御機構640の他の実施形態を示す。この実施形態では、IPC640Iがなく、したがってAPI機構640Bはブラウザ機構640Aにマージされる。しかし、ネーム・サーバ機能(やはりマージされる)は使用され、通信APIのセットと組み合わされて、ブラウザ機構(640B、640)になる。この実施形態では、(アプレットを含む)アプリケーション・ファイル500がブラウザ160によって「除去(ドロップ)」され、ローカル機能680が終了するため、持続性が失われる。この実施形態は、持続性が不要な場合、たとえば、ブラウザによって制御される画面以外に必要なキオスク装置がない場合に有用である。
【0075】
図10に、キオスク制御機構640の他の実施形態を示す。この実施形態には、IPC640IとAPI機構640Bがまったくない。この場合は、アプレットがAPI関数(640、640A)を直接呼び出し、API関数がローカルAPI関数680を直接呼び出す。ここでは、API関数640はJava(登録商標) APIプログラムである。1つまたは複数の各ローカルAPI680のために特に作成された1つのJava(登録商標) APIプログラムがある。ネーム・サーバの場合とは異なり、Java(登録商標) APIプログラムのうちの少なくとも1つのJava(登録商標) APIプログラムが、ローカルAPI680のうちの1つまたは複数のローカルAPIプログラムを制御する論理を持っていなければならない。これらのJava(登録商標) APIプログラム640は事前定義され、アプリケーション・ファイル500にとって既知である。この実施形態でも持続性は失われる。
【0076】
図11は、キオスクによって行われる実行プロセス700のフローチャートである。
【0077】
まず、ブラウザ160がアプリケーション・ファイル175から(HTML)ファイル500を入手する705。次に、ブラウザ160は、アプリケーション・ファイル500のタグと内容を解釈する710。ブラウザ160がローカルAPI呼び出しに遭遇しない場合715、ブラウザは関連する周知の処置を行って720、タグを実行する。ブラウザがローカルAPI呼び出しに遭遇した場合715、ブラウザは関連API関数(640または640A)を呼び出す725。
【0078】
好ましい一実施形態では、ブラウザ機構640Aはプロセス間通信機能640Iを介してAPI機構640Bにメッセージを伝える730。あるいは、前述のようにメッセージ・サーバが使用される。API機構640Bはメッセージを受け取り、関連ローカル機能680を呼び出す735。API機構640Bは、プロセス間通信機能640Iを介してブラウザ機構640Aにローカル機能の実行結果についてのメッセージを伝える740。
【0079】
ブラウザは、画面入力、組込み制御プログラム論理、または外部ブラウザ制御機能660を介して制御され、次のHTMLファイルを要求する。このようにして、ブラウザをローカル・キオスク装置として扱うことができる。したがって、ブラウザを制御して、ローカルAPI660を使用して周知のブラウザ・インタフェース(API681)にアクセスすることによって、ネットワークを介して1つまたは複数のサーバから任意の特定のHTMLファイルをロードすることができる。ローカルAPI660は、組込み制御プログラム620がブラウザ・イン681にアクセスすることができるようにするように作成される(上記参照)。
【0080】
図12は、ネットワーク上の1つまたは複数のサーバで実行されるサーバ・プロセス800のフローチャートである。サーバが、ネットワークを介して1つまたは複数のキオスクから要求を受け取る810。この要求では、アプリケーション・ファイル175のうちのどのアプリケーション・ファイル175がキオスクによって選択/アクセスされるかが識別される。この要求は、アプリケーション・ファイルの要求/アクセスを行っているキオスク100の設置場所も含む。サーバは、要求を受け取ると、要求されたアプリケーション・ファイル175をキオスクに送る820。アプリケーション・ファイル175は、サーバ上の論理によって事前作成または動的に生成することができる。
【0081】
他の実施形態では、キオスクはプロキシ・サーバ195Aに要求を送る810。プロキシ・サーバ195Aは、典型的にはサーバ195よりもキオスクの近くに配置される。あるいは、プロキシ・サーバ195Aは、キオスク100/200ないのコンピュータ上に配置することもできる。たとえば、サーバ195は第1の都市、たとえば本社の所在地に配置され、プロキシ・サーバ195Aは異なる都市にあるキオスクに接続されたLAN上に配置することができる。プロキシ・サーバ195Aは、事前定義されたスケジュールに従ってキオスクが必要とする多くのアプリケーション・ファイル175またはすべてのアプリケーション・ファイル175を求める要求をネットワーク150を介してサーバに送ることができる。このようにして、キオスクは、アプリケーション・ファイルを必要とするとき、プロキシ・サーバ195A上のアプリケーション・ファイル175に、より高速に、より高い信頼性をもってアクセスすることができる。さらに、プロキシ・サーバは、ネットワーク上の「オフ・ピーク」時間中にサーバ195に対してアプリケーション・ファイル175を要求することができる。
【0082】
他の実施形態では、サーバ(195、195A)を使用して、サーバ195によって識別された1つまたは複数のキオスクに情報を「プッシュ」することができる。たとえば、ステップ810で、サーバ195で要求が開始される。この開始810は、様々な理由で行われるようにすることができる。たとえば、アプリケーションを更新するには、新しいアプリケーション・ファイル175を使用して1つまたは複数のキオスクを再構成する必要がある。あるいは、毎日特定の時刻に新しい構成の提供、すなわち毎日午後5時に異なる情報源からのニュースの提供を必要とする場合がある。サーバは、キオスクの定期「点検」を「プッシュ」して、どのキオスクが保守を必要としているかを判断することもできる。
【0083】
この実施形態の好ましい一実施態様は、キオスクで稼働する「サーバ・プッシュ機能」685を使用する。サーバ・プッシュ機能685は、ネットワーク150に接続され、サーバ195からメッセージを受け取ることができる。サーバ・プッシュ機能685は、ブラウザ・インタフェース681にもアクセスすることができる。サーバ195は、ブラウザにサーバ195に対して特定のアプリケーション・ファイル500を要求させる要求を、サーバ・プッシュ機能685に送る。
【0084】
図13は、組込み制御プログラムがJava(登録商標)の代わりにActiveX技法を使用する場合の機構を示すブロック図である。ActiveX制御オブジェクトは、C++やVisual Basic、Java(登録商標)などの様々なプログラミング言語を使用して実現可能である。ActiveXオブジェクトは、HTMLファイルに組み込むことができる。たとえば以下の通りである。
【0085】
Figure 2004005688
【0086】
この場合、ブラウザはActiveX使用可能でなければならない。すなわち、ActiveX技法をサポートしていなければならない。一実施形態では、ブラウザはMicrosoft Internet Explorerである。
【0087】
アプリケーション・ファイル500がブラウザ160に到着すると、HTMLファイルがそのタグと内容に基づいて解釈される910。前述のJava(登録商標)の場合と同様に、ブラウザは前述のように非API制御関数を実行する920。ブラウザによって実行されたAPI制御関数930がAPI940を直接呼び出す。Java(登録商標)の場合と同様に、APIの最初の部分940Aがプロセス間通信機能940Iを介してAPIの第2の部分(たとえば640B)と連絡し940B、この第2の部分がローカルAPI680を呼び出す。
【0088】
ActiveXと前述のJava(登録商標)の場合との相違は、ActiveXは、C++やVisual Basicなどの非ネットワーク言語で作成されたオブジェクトを含むことができることである。これらの言語のオブジェクトは、実行可能コードでブラウザにダウンロードされる。したがって、このようなオブジェクトは、同じ言語で作成されたプログラムが行えることはどのようなことでも行うことができるが、Java(登録商標)アプレットが持っているようなセキュリティ上の制限を持たない。したがって、組込み制御プログラム620を、非Java(登録商標)言語を使用してActiveX制御プログラムとして作成した場合、API関数940はキオスク内の任意のどこにでも入れることができる。ActiveXオブジェクトでJava(登録商標)を使用する場合は、やはり前述の機構を使用しなければならない。
【0089】
図14から図17で、前述の番号が付いたボックスは前述と同様の機能を有する。
【0090】
図14に、IPCおよびネーム・サーバ機能を使用するキオスク制御機構940の一実施形態を示す。ブラウザ機構940Aは、ブラウザ・ディレクトリに入れる必要がなく、キオスクのメモリ内の任意の場所、たとえばキオスクのシステム・ディレクトリに入れることができるネイティブ言語APIである。しかし、ブラウザ機構940Aのパス(すなわち場所)は、アプリケーション・ファイル500にわかっていなければならない。
【0091】
図15は、IPC640Iをマッピング・ローカルAPIと共に使用するキオスク制御機構940の他の実施形態を示すブロック図である。図8と同様、ローカルAPI680のうちの1つまたは複数のローカルAPI680のための少なくとも1つのブラウザ機構940がある。
【0092】
図16に、IPC640Iのないキオスク制御機構940の他の実施形態を示す。この場合、ブラウザ機構940Aは図14で前述したように配置することができる。
【0093】
図17に、制御をJava(登録商標)で実施しない場合にActiveX制御を使用するキオスク制御機構の他の実施形態を示す。この実施形態では、そのような組込みActiveX制御がローカルAPI680を直接呼び出すことができるため、940はまったく不要である。この場合、実行の持続性は失われる。
【0094】
図18に、いわゆるプラグイン技法を使用する他のキオスク制御機構を示す。この場合、好ましい実施形態はNetscape Navigator v3.0またはそれ以降のブラウザを使用する。
【0095】
ここでは、制御機構1040は、ブラウザ機構(プラグイン・モジュールおよびそれに付随するJava(登録商標)ラッパ)1040Aを含み、このブラウザ機構にアプリケーション・ファイル/ファイル(175、500)内のキオスク制御プログラム(620)がアクセスする。プラグイン・モジュール1040Aは、アクセスされると、ブラウザ160の一部として実行される。実行プラグイン・モジュール1040Aは、プロセス間通信機能1040Iを呼び出す。このプロセス間通信機能(IPC)1040Iは、前述のIPC(640I、940I)と同じものとすることができる。IPC1040Iは、API機構1040Bと連絡してローカルAPI680を呼び出す。API機構1040Bは、前述の機構(640B、940B)と同じものとすることができる。
【0096】
この実施形態では、ブラウザ機構1040Aはプラグイン技法(ザン・オリファント(Zan Oliphant)の「Programming Netscape Plug−ins」(Sams.net、1996年刊、ISBN1−57521−098−3)を参照)によって実施される。プラグイン技法は、ネイティブ・コード・モジュールを使用する。すなわち、CまたはC++あるいは同様のプログラミング言語を使用して実施され、さらに、より好ましい実施形態ではJava(登録商標)ラッパでも実施される。プラグイン1040Aは、ブラウザ160によって指定された特別なプラグイン・ディレクトリに入れられる。HTMLインタプリタ610が、マルチパーパス・インターネット・メール・エクステンション(MIME)タイプとも呼ばれる組込みファイル内の固有ファイル名拡張子によってそれぞれのプラグイン1040Aを識別する組込みファイル(620)に遭遇すると、プラグイン1040Aはブラウザ160に動的にロードされる。
【0097】
組込みキオスク制御プログラム(620)は、1)Java(登録商標)Script関数、2)Java(登録商標)アプレット、または3)固有拡張子を持つMIMEファイルに含まれる事前定義された1組の制御スクリプトとすることができる。
【0098】
ブラウザ160がプラグイン・モジュール1040Aをロードすると、プラグイン1040AはHTML文書に使用可能になる。すなわち、プラグイン内の関数(プラグイン関数)が組込みプログラム(620)、たとえば呼び出すJava(登録商標)Script関数またはJava(登録商標)アプレット関数に使用可能になる。これを行う際、キオスクのローカルAPI680を1つまたは複数の対応するプラグイン1040Aを介して所与の組込みプログラム620によって制御することができる。言い換えると、プラグイン・モジュール1040AはIPC関数1040Iを呼び出して、対応するAPI機構1040Bを介してキオスクのローカルAPI680を呼び出す。
【0099】
非限定的な3つの例を以下に示す。
【0100】
例1は、組込みキオスク制御プログラム1030としてJava(登録商標)Script関数を、メッセージ受渡機能を備えるプラグイン・モジュール1040Aと共に使用する。
【0101】
制御プログラム1030を有するアプリケーション・ファイル175は、以下の通りである。
【0102】
Figure 2004005688
【0103】
Java(登録商標)アプレット「MYAPPLET.Java」には以下のようなコードが含まれる。
【0104】
Figure 2004005688
【0105】
Java(登録商標)ラッパ・ファイルPluginWrapper.javaには、以下のコードが含まれる。
【0106】
Figure 2004005688
【0107】
上記の組込み制御プログラム1030に関連づけられたプラグイン・モジュール1040Aは、とえばC++などのネイティブ言語コードで実施されたメソッドSendMsg()を提供する。
【0108】
例2は、メッセージ受渡し機能を備えるプラグイン・モジュール1040Aと共に、組込みキオスク制御プログラム1030としてJava(登録商標)アプレットを直接使用する。
【0109】
制御プログラム1030を有するアプリケーション・ファイル175は以下の通りである。
【0110】
Figure 2004005688
【0111】
Java(登録商標)アプレット「MYAPPLET.Java」には以下のようなコードが含まれる。
【0112】
Figure 2004005688
【0113】
Java(登録商標)ラッパ・ファイルPluginWrapper.javaには以下のコードが含まれる。
Figure 2004005688
【0114】
例1と同じように、上記のプラグイン組込み制御プログラム1030に関連づけられたプラグイン・モジュール1040Aが、たとえばC++などのネイティブ言語で実施されたメソッドSendMsg()を提供する。
【0115】
例3は、1組の事前定義制御スクリプトと、キオスク・ローカルAPI680を制御する対応するプラグイン・モジュール1040Aとを含み、それらのスクリプトを実行してキオスクのローカルAPI680を制御する組込みファイル1030を使用する。
【0116】
組込みファイル1030を有するアプリケーション・ファイル175は、以下のようになる。
【0117】
Figure 2004005688
【0118】
プラグイン・モジュール104Aは以下のコードから成ることができる。
Figure 2004005688
Figure 2004005688
上記の3つのプラグイン関数は、Netscapeブラウザ160が備える標準プラグインAPIを実施する。ここでは、ブラウザ160が備える他のプラグインAPIは使用されない。
【0119】
<embed>タグがHTMLインタプリタ610によって解釈されると、MSGPASS.METというファイル1030がローカル・ディスクにダウンロードされ、それに対応するプラグイン・モジュール1040Aがまだブラウザ160にロードされていない場合、そのプラグイン・モジュール1040Aがロードされる。ブラウザ160は、NPP_NewというプラグインAPIを自動的に呼び出してプラグイン・インスタンスを作成し、ダウンロードされたファイルの名前を持つプラグインAPIであるNPPStreamAsFile()を呼び出して、そのファイルを実行する。必要であれば、ブラウザ160はNPP_Destroy()というプラグインAPIを呼び出してプラグイン・インスタンスを破棄する。
【0120】
組込みファイル内の事前定義スクリプトを解釈して実行するためにクラスKioskIPCと関数InterpretFile()を、C++などのネイティブ言語を使用して実施することができる。この意味で、関数InterpretFile()スクリプトが、妥当なパフォーマンスでスクリプトを解釈して必要な関数を実行することができるように実施されている限り、スクリプトをどのようなものにすることができるかについて制限がない。一例は以下の通りである。
【0121】
組込みファイル内では、スクリプトは以下のようになる。
【0122】
Figure 2004005688
【0124】
プラグイン・モジュール1040Aは、その機能の特定の対話式制御を実現するために、ブラウザ160ウィンドウ内にいくつかのボタンを作成することもできる。たとえば、「PrintCurrentPage」というメッセージを送るSendMsg()関数を呼び出すために、「Print(プリント)」というボタンを作成し、タッチまたはクリックされるのを待つことができる。<embed>タグは、プラグイン・モジュール1040Aの実施態様に従ってプラグイン・モジュール1040Aを制御するための1組の事前定義パラメータも含むことができる。<embed>タグの使用方法とプラグイン・モジュールの実施方法については、「HTML Publishing for Netscape」(スチュアート・ハリス(Stuart Harris)およびゲイル・キダー(Gayle Kidder)著、ISBN1−56604−288−7)およびザン・オリファント(Zan Olphant)による上記の書物を参照されたい。
【0125】
以下に本発明をまとめて示す。
(1) ブラウザ手段を含むエージェント・コンピュータを含んで構成される少なくとも1つのキオスク装置に接続され、アプリケーションを要求するための少なくとも1つの構成要求をネットワークを介して前記キオスク装置から受け取るサーバであって、前記サーバは、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを含んで構成されるHTMLファイルとして構成され、かつアプリケーション・ファイルとして参照される少なくとも1つの構成セットを格納する手段と、
前記構成要求により指定される前記構成セットを選択し、選択された前記構成セットをキオスク装置へと送信し、前記キオスク装置に対して入力/出力装置または周辺装置を制御するためのブラウザ機構を組み込ませ、前記キオスク装置の少なくとも1つの入力/出力装置または周辺装置を選択的に制御することにより前記キオスク装置が要求したアプリケーションを実行させる通信手段と、
を含むサーバ。
(2) 前記アプリケーション・ファイルが、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御による遠隔装置制御機能と、遠隔メッセージ表示機能と、ファイル転送機能と、エージェント/クライアント協同機能のうちのいずれか1つを提供する、(1)に記載のサーバ。
(3) 前記組込み制御関数の他、前記キオスク装置の動作状況を判断するシステム監視プログラムを含むHTMLファイルを格納する、(1)または(2)に記載のサーバ。
(4) 前記動作状況を使用して、前記入力/出力装置または周辺装置に必要な保守と、前記入力/出力装置または周辺装置の保守履歴と、前記構成要求のうちの1つまたは複数の構成要求に応答するために前記ネットワーク上で提供するアプリケーション・ファイルと、前記キオスク装置のユーザに関するマーケティング情報とのうちのいずれか1つまたは複数を判断する、(3)に記載のサーバ。
(5) 前記サーバは、前記動作状況を判断し、前記ネットワーク上で前記キオスク装置にどの構成セットを提供するかを決定する、(3)または(4)に記載のサーバ。
(6) 前記HTMLファイルは、ゼロ個または1個以上のハイパーテキスト構成要素ファイルを含む、(1)ないし(5)のいずれか一項に記載のサーバ。
(7) 前記アプリケーションがキオスク装置におけるユーザに合わせてカスタマイズされたカスタマイズ・アプリケーションである、(1)ないし(6)のいずれか一項に記載のサーバ。
(8) 前記アプリケーション・ファイルが、前記少なくとも1つのアプリケーション・ファイルを受信することにより構成されたキオスク装置を介してインターネットへのアクセス機能を提供する、(1)ないし(7)のいずれか一項に記載のサーバ。
(9) 前記インターネットへの前記アクセスが、1つまたは複数の指定されたサーバを介して一人または複数のユーザ間に通信リンクを提供する、(8)に記載のサーバ。
(10) 前記アプリケーション・ファイルが、電話呼出しと、電子メール送受信と、遠隔会議と、ファクス伝送と、トレーニング・セッションと、前記ネットワーク上の情報の検索と、ウェブ・ベースの協同とのうちのいずれか1つまたは複数の機能を提供する、(1)ないし(9)のいずれか一項に記載のサーバ。
(11) 前記少なくとも1つのアプリケーション・ファイルを受信することによって構成されたキオスク装置におけるユーザに前記アプリケーション情報を提供する、(1)ないし(10)のいずれか一項に記載のサーバ。
(12) 前記少なくとも1つの組込み制御関数が、キオスク装置に対して前記アプリケーション・ファイルのうちの1つまたは複数のアプリケーション・ファイルを要求させるための機能を付与する、(1)ないし(11)のいずれか一項に記載のサーバ。
(13) ネットワークを介して少なくとも1つのキオスク装置に接続されたサーバの動作方法であって、前記動作方法は前記サーバに対し、
前記ネットワークに接続されたキオスク装置に含まれ、ブラウザ手段を含むエージェント・コンピュータからの構成要求を受け取るステップと、
アプリケーションに関連づけられ、組込み構成要素ファイルと、キオスク装置におけるドライバ・プログラムから構成されるドライバ・サブセットを選択的に機能させる組込み制御関数とから構成され、かつHTMLファイルとして構成されるアプリケーション・ファイルである格納された構成セットを選択して、前記キオスク装置に送るステップと
を実行させ、
前記アプリケーション・ファイルは、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御を使用して前記キオスク装置にブラウザ機構を組込ませることにより前記キオスク装置の入力/出力装置または周辺装置に対応したドライバ・プログラムを選択的に制御させる
サーバ動作方法。
(14) エージェント・コンピュータを含んで構成される1つまたは複数のキオスク装置に接続され、少なくとも1つの構成要求をネットワークを介して前記キオスク装置のエージェント・コンピュータから受け取るサーバ動作方法であって、前記方法はサーバに対して、
前記ネットワークに接続された少なくとも1つのキオスク装置から構成要求を受け取るステップと、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを有し、かつ前記構成要求により指定され、HTMLファイルとして構成されるアプリケーション・ファイルである構成セットを前記キオスク装置に送信するステップと
を実行させ、
前記アプリケーション・ファイルは、前記キオスク装置にブラウザ機構を組込むことにより前記キオスク装置のドライバ・プログラムを選択的に制御させ、前記ドライバ・プログラムにより入力/出力装置または周辺装置を駆動させることにより前記キオスク装置に前記アプリケーションを実行させる、方法。
(15) 接続を介して少なくとも1つの構成要求を受信する、ネットワークへの1つまたは複数の接続を可能とする手段と、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを含んで構成されるHTMLファイルを含み、かつアプリケーション・ファイルとして参照される少なくとも1つの構成セットを格納する手段と、
キオスク装置へと前記構成要求により指定されるアプリケーションのための前記構成セットを通信する手段とを含み、
前記組込制御関数が前記キオスク装置に対してブラウザ機構を組込ませ、ブラウザ機構がドライバ・プログラムのうちの1つまたは複数のドライバ・プログラムから成るドライバ・サブセットを選択的に制御して前記ドライバ・プログラムにより前記入力/出力装置または周辺装置を駆動させ、前記キオスク装置をして前記アプリケーションを実行させるサーバ。
(16) 前記構成要求が構成する前記キオスク装置のうちの1つまたは複数のキオスク装置から送られる、(15)に記載のサーバ。
(17) 前記構成要求がエージェント・コンピュータから送られる、(16)に記載のサーバ。
(18) 前記アプリケーション・ファイルが、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御による遠隔装置制御機能、遠隔メッセージ表示、ファイル転送、およびエージェント/クライアント協同のうちのいずれか1つを含む、(16)に記載のサーバ。
(19) 前記組込み制御関数の他、前記キオスク装置のローカル・キオスク機能のうちの少なくとも1つのローカル・キオスク機能の動作状況を判断するシステム監視プログラムを含む、(15)に記載のサーバ。
(20) 前記システム監視プログラムにより与えられる前記動作状況を使用して、前記周辺装置のうちの1つまたは複数の装置に必要な保守と、前記周辺装置のうちの少なくとも1つの装置の保守履歴と、前記要求のうちの少なくとも1つの構成要求に応答するために前記ネットワーク上で提供するアプリケーション・ファイルと、一人または複数のキオスク・ユーザに関するマーケティング情報とのうちのいずれか1つまたは複数を判断する、(19)に記載のサーバ。
(21) 前記システム監視プログラムにより与えられる前記動作状況によって、前記サーバが前記ネットワーク上でサービスを提供するアプリケーション・ファイルを決定する、(19)に記載のサーバ。
(22) 前記アプリケーション・ファイルが、1つまたは複数のHTMLファイルを含み、前記HTMLファイルが、ゼロ個または1個以上のハイパーテキスト構成要素ファイルを含む、(15)に記載のサーバ。
(23) 前記アプリケーションが金融アプリケーションである、(15)に記載のサーバ。
(24) 前記金融アプリケーションが、ユーザへの金融情報提供、口座開設、現金支払い、勘定支払い、ローンの申込み、預金、モーゲージ支払い、金融に関する助言、固定資産取引、およびエージェントからの支援のうちのいずれか1つまたは複数の機能を含む、(23)に記載のサーバ。
(25) 前記アプリケーションがユーザに合わせてカスタマイズされたカスタマイズ・アプリケーションである、(15)に記載のサーバ。
(26) 前記アプリケーション・ファイルが、1つまたは複数のキオスク装置を介したインターネットへのアクセスを可能とする機能を提供する、(15)に記載のサーバ。
(27) インターネットへの前記アクセスが、1つまたは複数の指定されたサーバを介して一人または複数の第2のユーザ間に通信リンクを提供する、(26)に記載のサーバ。
(28) 前記アプリケーションが通信アプリケーションである、(27)に記載のサーバ。
(29) 前記通信アプリケーション・ファイルが、電話呼出し、電子メール送受信、遠隔会議、ファクス伝送、トレーニング・セッション、前記ネットワーク上の情報検索、およびウェブ・ベースの協同のうちのいずれか1つまたは複数の機能を提供する、(28)に記載のサーバ。
(30) 前記アプリケーションがサービス・アプリケーションである、(15)に記載のサーバ。
(31) 前記サービス・アプリケーションが、広告、サービス、およびサービス料金のうちのいずれか1つまたは複数の機能の提供を含む、(30)に記載のサーバ。
(32) 前記アプリケーションが、前記アプリケーション・ファイルを受信することによって構成されたキオスク装置を使用してユーザに情報を提供する、(15)に記載のサーバ。
(33) 前記組込み制御関数のうちの少なくとも1つの組込み制御関数が、前記キオスク装置のうちの少なくとも1つのキオスク装置に前記アプリケーション・ファイルのうちの少なくとも1つのアプリケーション・ファイルを要求させる機能を付与する、(15)に記載のサーバ。
【図面の簡単な説明】
【図1】キオスクの好ましい一実施形態を示すブロック図である。
【図2】キオスクの他の好ましい実施形態を示すブロック図である。
【図3】キオスクにおいて使用されるグラフィカル・ユーザ・インタフェースの例を示すブロック図である。
【図4】ユーザによって選択され、キオスクを構成するために実行される構成セット(アプリケーション・ファイル)を示すブロック図である。
【図5】少なくとも1つの組込み制御プログラムを含む、1つまたは複数のHTMLファイルおよび付随するハイパーテキスト構成要素ファイルを含む1組のアプリケーション・ファイル(構成セット)を示すブロック図である。
【図6】アプリケーション・ファイルおよびローカルAPIプログラムと対話してキオスクを構成する制御プログラム/関数を実行するキオスクの好ましい一実施形態を示すブロック図である。
【図7】キオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図8】キオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図9】キオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図10】キオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図11】API制御機能を備えた1つのアプリケーション・ファイルを実行する際に行われるステップを示すフローチャートである。
【図12】典型的なサーバで行われるステップを示すフローチャートである。
【図13】ActiveXを使用する好ましいキオスク・ソフトウェア・アーキテクチャを示すブロック図である。
【図14】ActiveXを使用するキオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図15】ActiveXを使用するキオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図16】ActiveXを使用するキオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図17】ActiveXを使用するキオスク制御機構の様々な好ましい代替実施形態を示すブロック図である。
【図18】プラグインを使用する代替キオスク制御実施形態を示すブロック図である。
【符号の説明】
100…キオスク装置
103…タッチ・センシティブ端末
109…プリンタ
105…表示画面
110…コンピュータ
111、112、130…汎用情報読取装置(入力装置または周辺装置)
113、130…汎用情報書出装置(出力装置または周辺装置)
122…電話網
123…ISDN
125…制御プロセスおよびライブラリ
155…ネットワーク・インタフェース
520、620…組込み制御関数
640…キオスク固有制御機構
640A…ブラウザ機構
640I…プロセス間通信手段
640B…API機構
680…ローカル・アプリケーション・プログラム・インタフェース(ローカル・キオスクAPI)[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to the field of kiosk devices and servers that can be connected to a computer network and the server can form a kiosk device.
[0002]
[Prior art]
Generally, a kiosk is a machine that is located at a location for general access by a user or customer, for example, public access, thereby allowing a service provider to provide services to that user or customer. Generally, such services are "self-service" performed by the customer without the service provider having an agent to provide the customer with specific assistance. Thus, the service may be repetitive, such as 1) obtaining information, or 2) performing certain simple transactions (eg, buying tickets, obtaining cash, viewing department store floor maps, etc.). Tends to be a simple specific task.
[0003]
The tasks performed need to be pre-programmed and pre-determined and need to be self-service. Thus, the kiosk design is inflexible and does not provide customized assistance for a particular user.
[0004]
Generally, these transactions require the use of some device, for example, one or more monitors, card readers, ticket printers, laser printers, cash machines, and the like. These devices are generally dedicated to predefined tasks for inflexible designs in kiosks and therefore have no other use.
[0005]
The advantage of a kiosk is that it is convenient and reliable. The kiosk does not require a full-time human operator to perform the work, thus saving operating costs and increasing productivity.
[0006]
Some prior art kiosks, such as bank ATM machines and air ticket vending machines, are connected by a network. There are also stand-alone kiosks, just like information kiosks in shopping malls.
[0007]
The prior art includes kiosks with video conferencing capabilities for banking applications that attempt to set up a connection between a bank branch (agent) and a user / customer. This is done simply by adding a video conferencing system to a traditional type of kiosk.
[0008]
The prior art also has an integrated kiosk with the Internet. This kiosk has browser means for displaying an HTML page on the screen of the kiosk. The screen displayed on the kiosk is controlled by the hyperlink selected by the user. These kiosks are suitable for information access that customers / users can browse by selecting a "soft" button that invokes a hyperlink. These kiosks can also be used for certain personal communications, such as email. In this type of system, the screen is typically specially designed to present a user interface (e.g., having navigation buttons), and the kiosk further only accesses HTML pages (URLs) defined by the kiosk creator. Acts as a filter that limits the URLs that customers can visit, as possible.
[0009]
Most prior art kiosks are inflexible. Prior art kiosks are generally designed specifically for programming, created (usually in a high-level computer programming language such as C or C ++), and installed on a kiosk for a particular application, thus requiring modification or Reconfiguration cannot be easily and quickly performed at low cost. Any changes will require recoding, recompiling, reinstalling, and retesting the program at the kiosk. It is difficult to make changes to existing kiosks, especially if there are many kiosks in the area that need updating.
[0010]
Prior art kiosks cannot provide an effective "face-to-face" service based on an application, that is, a service that requires an agent to advise or guide a user or customer to perform a service or transaction. An effective “face-to-face” environment for customer service is not only video / audio, but also synchronized screen sharing (eg, user / customer viewing data while agent is entering data) and remote Device control is also required (eg, an agent can print a receipt for the kiosk user / customer). The prior art does not implement kiosk synchronization screen sharing or remote device control.
[0011]
While some prior art offers user assistance from agents over the phone, agents generally cannot directly view the screen of a kiosk. Thus, if there is a problem with the kiosk, the agent must rely on the user's description of the problem. Agents cannot access the problem by looking directly at the kiosk screen. In addition, agents cannot remotely change the kiosk's program / function to correct the kiosk problem. Note that some kiosks in banking applications allow banking agents to view the contents of the kiosk screen. However, this content is displayed by a separate application running on the agent's workstation, rather than the application displaying the screen content on the kiosk.
[0012]
[Problems to be solved by the invention]
Some conventional technologies include a video conference function as a kiosk function. However, while video conferencing provides customers with audio / video connections to other parties, this architecture is still a success in the marketplace because of the lack of consistent integration between audio / video communications and the content of the kiosk screen. Absent. When a customer has a problem with one of the items on the kiosk screen, the agent cannot have the same information on the agent screen as the customer has on the kiosk. For example, an ambiguous or incorrect value in a field on the screen of a kiosk may not be visible to agents during a video conference. Further, the agent cannot indicate the location on the customer's screen and cannot control the customer's screen. Further, the agent cannot provide general information to the customer via the kiosk that the kiosk has not yet been pre-programmed. Also, for example, if the customer needs information that is not available in the kiosk design, the agent can only provide the information by audio or camera video, and can be provided on the customer's kiosk screen or other Information cannot be provided via a kiosk device.
[0013]
Some prior art discloses a simple Internet / browser-based kiosk that can only perform limited specific applications, ie, limited information browsing. This type of kiosk cannot provide an effective customer service environment with flexible uses because of the lack of kiosk control and cooperation between the customer and the human agent.
[0014]
Accordingly, the present invention provides a kiosk and a server as defined in the claims.
[0015]
[Means for Solving the Problems]
The techniques described herein may be used for "face-to-face" agent-to-customer service and / or transactions and multiple communication networks such as the Internet (TCP / IP), Public Telephone Network (PSTN), Integrated Services Digital Network (ISDN). Configurable, directly accessible network located throughout the public, taking advantage of a flexible, reconfigurable, collaborative kiosk architecture for a variety of applications, including providing public access to・ Provide an interface. Thus, this network server system can be used to reconfigure remote kiosks or kiosk devices on a network in different ways for different applications, especially for different applications used in different ways for different applications. Numerous applications (possibly created, developed, and stored on one or more network servers) can be distributed to support output devices.
[0016]
Thus, in a preferred embodiment, the kiosk system may be connected to one or more networks, such as the Internet, a corporate or government intranet, or the like. The kiosk has one or more input / output devices (eg, display, keyboard, paper printer, phone, etc.) and one or more driver programs (local API) for each input / output device. . The display device is used to present one or more graphical user interfaces and video images to a kiosk user. Some of the interfaces are application specific. (An application is an application for which a kiosk is configured or reconfigured.) A kiosk is a browser that retrieves one or more application files (in a configuration set) from one or more servers on a network. Having. An application file (configuration set) contains a set of HTML files that are presented in sequence (determined by the application) by the kiosk browser. One or more of these HTML files includes a built-in (control) program used to control the local API of one or more of the devices on the kiosk. One or more of the files may be other HTML files, multimedia component files (such as images or sounds), or other HTML files, multimedia component files, embedded programs or other application programs. It can also include hyperlinks to files or a combination thereof. The first application file is selected from the server by a selection function at the kiosk (eg, voice, soft button, hyperlink, etc.). The application file (configuration set) associated with this selection item (selection function) configures the kiosk accordingly. Thus, the kiosk can be configured and reconfigured to execute various applications defined by the application files.
[0017]
In certain preferred embodiments, one or more of the application files has one or more predetermined selection links (eg, hyperlinks). As the browser renders or interprets the application files (e.g., one file at a time), predetermined selection links are presented to the user as additional selections on a graphical user interface. The user can select and call one or more other configuration sets, HTML files, etc., including zero or one or more other embedded control programs. Thus, using these additional selections, the sequence in which the content of the HTML file is presented by the browser, and in fact the files in the sequence, may be modified to reconstruct the kiosk in a different way and to provide It can obtain information and / or provide information to a user. Rendering the kiosk by rendering the contents of the HTML files in the sequence, thereby reconfiguring one or more screen sequences of interactive screens and, if necessary, the kiosk for a particular selected application. And a sequence of device actions (controlled by a built-in program). In these embodiments, the user (or kiosk or other function in the server) can reconfigure the kiosk for other applications by selecting different selection functions on the kiosk.
[0018]
In certain preferred embodiments, some of the applications include web page sharing features that allow agents and customers to collaborate on the network via kiosks and servers. One preferred embodiment implements a "lightweight" client architecture, that is, a client architecture without application specific software on the kiosk.
[0019]
Various preferred embodiments of the present invention are described in detail below, by way of example only, with reference to the following figures.
BEST MODE FOR CARRYING OUT THE INVENTION
Referring to FIG. 1, which is a block diagram of one preferred embodiment of the kiosk 100, the kiosk 100 includes a computer 110 (eg, an IBM personal computer such as a PC 350 or PC 750) having a suitable well-known network interface 155. Network 150 may be any known local area network (LAN) or wide area network (WAN). In the preferred embodiment, network 150 is the Internet. However, intranets, such as enterprise networks, government networks, education networks, extra business-to-business networks, and networks used by one or more retailers can be implemented by telephone networks, cable networks, ISDN networks, and the like. Other general purpose networks 150 are also contemplated, including. The computer 110 has one or more input and / or output devices (see below) 130 equipped as part of the kiosk 100. Typically, computer 110 includes one or more main memories, one or more storage devices 110M (such as a hard disk drive, a CDROM, etc.), as is well known, and one or more A central processing unit (CPU) 110C. In addition, the computer 110 has an optional hardware keyboard 135 and mouse 134 for maintenance. The user may access these various (peripheral 130) input and / or output devices (collectively numbered 130) to access other devices connected to network 150 via computer 110 and network 150. It transmits information to and / or from the client and / or server 195. Examples of these input / output devices 130 are a touch-sensitive terminal 103 with a screen 105, a printer 109, and any well-known general-purpose information reader 111 (e.g., reading a magnetic card, credit card, or smart card). Card reader 121), scanner (eg, laser scanner) 112, any well-known general-purpose information writer 113 (printer, ticket printer, media printer (eg, diskette drive), statement printer, or receipt printer) , (Eg, providing a sticker or a computer disk), or any other device 130 that provides the user with information contained in the tangible medium 113A. Other input / output devices 130 include a cash dispenser, scanner, deposer, pen input device 136, card issuer, ticketing machine, CRT, keyboard, touch-sensitive screen, program-controllable camera, one or more Human detector (eg, infrared), one or more lights, CD-ROM player, audio input / output device (eg, microphone 133, speaker 132, or telephone 107, and any one or more of memory 113B) The kiosk 100 may include well-known communication devices such as a telephone 107 and a video conferencing system 114, such as a PictureTel PCS-100 desktop ISDN videoconferencing system (PictureTel is a product of PictureTel, Inc.). The video conferencing system includes a camera 131, a speaker 132, a microphone 133, one or more ISDN connections or a separate network connection via a suitable network interface 155. Other networks 151, such as Connections can also be made to a conventional telephone system (POTS) telephone network 122 and / or an ISDN line 123 via a telephone 107, a speaker 132, and a microphone, using well-known interfaces to the network (150, 151). The other peripheral devices 130 can also be connected independently.
[0020]
Computer's CPU 110C executes a software program that includes control processes and libraries 125 and, in certain preferred embodiments, one or more cooperating processes. The control process 125 has two parts: one or more built-in control functions / programs 620 and one or more control mechanisms 640. (See FIGS. 5 and 6 to 10 below.) The embedded control program / function 620 is a content-specific process (eg, banking, car rental, product purchase, etc.). (Or a subset thereof) 130 using a non-content specific control mechanism 640 to control the local application program interface 680 (API). Thus, the input / output device 130 is controlled in a manner specific to the content of the application. In an alternative embodiment, the control mechanism can be loaded directly from the network 150 to the computer 110.
[0021]
The collaboration process 170 performs the function of establishing a collaboration session from the kiosk 100 with the API. This cooperative process is described in U.S. patent application Ser. No. 08 / 722,287, filed Sep. 27, 1996, entitled "Internet Web Page Sharing," which is hereby incorporated by reference in its entirety. (See European Patent Application No. 97307536.0, publication no. 833260). The computer also executes the necessary programs for interacting with network 150, including a web browser program 160, such as a Netscape Navigator browser. (Netscape Navigator is a trademark of Netscape Communications Corporation.)
[0022]
FIG. 2 is a block diagram illustrating an alternative embodiment of the present invention showing the kiosk 100 in an enclosed space or a partially enclosed space 200. The enclosed space 200 can be any type of space in which the kiosk 100 is placed with one or more users, for example, a room, small box, or any other private or quasi-private room. In this embodiment, computer 110 is connected to one or more well-known environmental peripherals 130 that computer 110 controls to create an environment for a user in space 200. For example, environmental peripherals include lighting 205 of the space, a display 210 in the space 200 that conveys additional information (eg, sales information) and / or environmental elements (eg, variable display of scenery and virtual world), entering and exiting space 200 Security access 215. Further, the (partially) enclosed space may also have other environmental peripherals 130 similar to the peripherals 130 described above, for example, audio, video conferencing, and the like. Examples of virtual worlds are well known.
[0023]
In a preferred embodiment of the systems 100 and 200, the user selects (using the select function) an application that configures the kiosk therefor, such as banking, and the browser 160 is configured to access one or more of the Internet (universal network) 150. Interact with multiple web servers 195 to retrieve one or more configuration sets 175. Optionally, data communication between the server 195 and the browser 160 in the kiosk (100, 200) starts. The application files 175 are then executed one file at a time by the browser 160 and 1) optionally, one or more of the input / output devices (e.g., touch-sensitive) of the input / output devices used with the respective application. Calls a driver program (local API 680) that controls the terminal 103 or display device 130; 2) optionally, a series of input / output device 130 actions, eg, a series of actions displayed on the terminal / display device 103; 3) Optionally, communicate user input from input device 130 to server 195; 4) Optionally, respond to user input to application file 175 for further execution by browser 160 Other applications • Select the file 175. In this way, the user can use the first selection function to select the first application (and its associated configuration set (application file) 175 on the server 195), which application can use the kiosk for the first time. The kiosk is reconfigured for the second application, etc. again by selecting a second application. The selection function for later configuration is The configuration is provided to the user.
[0024]
An application is any application for which a kiosk is configured. For example, applications include applications in the fields of finance, business, information (news, advertising), communications (email, web access, video conferencing), retail, marketing, and services (eg, government programs).
(Configuration) is included. An application owner is any individual, organization, or company that will configure a kiosk to implement the application. For example, a bank or mutual fund company configures a kiosk using one or more financial applications. Examples of such financial applications include providing financial information to a user, opening an account, paying cash, paying an account, applying for a loan, depositing, and receiving assistance from an agent. An example of a service owner is a rental car company that configures kiosks to do car rental / lease and the like.
[0025]
In another preferred embodiment, the kiosk (100, 200) is reconfigured by the server 195 rather than by the user. For example, a kiosk can be installed in a public space such as a shopping mall. The browser may retrieve the configuration set (application file) 175 from the one or more servers 195 or default or proxy server 195A located on the network 150 to the kiosk 100 first or periodically. (Or let the server "push"). Therefore, the system designer can control the configuration of the kiosk from a remote location of the server 195. For example, a kiosk in a mall may be configured to initially display a map of the mall, play background music, announce, or provide weather information or other general information such as news or stock quotes. it can. The application file 175 may include a selection function 105A, such as a touch screen, icons, hypertext links, soft buttons on a graphical user interface, a hard drive, on one or more of the input / output devices 130. Indicate to have or be to be a selection function 105A, such as a wired button, a remote sensor (such as a radio frequency identification tag), or a voice-activated message function for a video conferencing system. You can also. The selection function 105A is a function that allows the user to make a selection to reconfigure the kiosk according to the user's application. These selection functions 105A allow the user to reconfigure the kiosk 100/200 and access other information that the server 195 provides to the kiosk.
[0026]
The selection function 105A or other information displayed may also be a source of revenue for the kiosk owner / operator. For example, a kiosk may be a paid ad for notifications provided by the kiosk. Application providers (e.g., bank mutual funds, mortgage companies, money lenders, intermediaries (stocks, real estate), rental companies (automobiles, equipment), service providers, and retailers) can use the kiosk 100/200 on A user would pay for owning the selection function 105A, which the user selects to configure the kiosk for his application. The amount of the fee depends on the location of the kiosk, the location / location of the selected function / information on the kiosk (eg, graphical user interface), the size of the selected function 105A, the time and period during which the kiosk provides the selected function 105A / information. It can be determined based on such factors. The selection function 105A / information can be changed at different times or displayed periodically to target different classes of customers / clients. For example, a kiosk located at Grand Central Station may be reconfigured to display information for commuters during rush hour and to have a selection function 105A for restaurant reservation just before lunch time.
[0027]
The kiosk 100/200 can be reconfigured by the application provider via the server 195 to a user-specific configuration. For example, suppose the travel agency has a user profile for Mr. Smith. Mr. Smith selects the select function 105A on the kiosk 100/200 at a public place or office. Once the kiosk has been reconfigured for its travel agent application, the user can enter a personal identification code using one of the input / output devices 130 or by passing through a credit card, for example. Smith can be asked for personal information (following instructions from one of the files). Next, Mr. Smith's personal information is passed by kiosk 100/200 to server 195 to access his profile. Using the information in the profile, one or more of the application files 175 are sent by the server 195 and the kiosk is reconfigured specifically for Mr. Smith. For example, only a vacation package trip to Central America could be offered on a kiosk. In other embodiments, one or more of the application files 175 may allow a user to organize a GUI (300 below).
[0028]
In another preferred configuration of kiosk 100/200, a cooperative session is set up between one or more kiosk users and one or more agents of the application provider. The collaboration is set up by a collaboration process 170 that resides on the kiosk or is provided by server 195 as an application file 175 (see Fin et al., Patent application).
[0029]
In another preferred configuration of the kiosk (100, 200), the server 195 provides the kiosk with application files 175 used for monitoring or maintaining the kiosk. For example, in such an embodiment, one or more of the embedded control programs 620 may determine which input / output device is operating using a "deadman" timer status, error checking protocol, or the like. By making the determination, the operating status of one or more of the input / output devices 130 is monitored. This information is returned to server 195. Other application files 175 are used to query which input / output devices 130 are installed or operational at a given kiosk. In this way, the server 195 may enable the installed or operable input / output device 130 and not (unconfigure) any other application to enable the non-installed or faulty device. Determine whether to send file 175 to kiosk. Thus, a kiosk containing any general-purpose combination of input / output devices 130 can be located remote from the server, and the server provides suitable and operable applications that enable the kiosk for a given application. I do. The application file 175 may also be used to obtain information from one or more of the input / output devices to determine how to operate the device.
[0030]
FIG. 3 shows an example of a graphical user interface (GUI) 300 displayed on the screen display device 105 of the kiosk 100/200. GUI 300 provides the kiosk user with a primary access interface via selection function 105A. Examples of the selection function 105A include icon images 301 to 304 indicating applications for the bank 301, the insurance business 302, the general-purpose software button 303, and the pizza restaurant 304. The GUI 300 may also display a selection function 105A in the form of a menu 320 having one or more selection items (typically 325). Another example of a selection function 105A is a hyperlink 350, which can be part of the GUI 300 and / or the menu 320. Other area 340 of GUI 300 can be used to enter information or other data. Using these information fields 340, the GUI 300 can be presented as a form 370 such as a tax return, loan application, mortgage application, deposit slip, and the like. GUI 300 may be displayed as a web page by browser 160 using well-known techniques. This web page may have a multimedia (audio, video) aspect that is presented to the user via the input / output device 130.
[0031]
In FIG. 4, the user interacts via the user interface to select the selection function 105A, and the selection function 105A downloads an application file 175, which is a corresponding configuration set, from the server 195 to the client (kiosk 100, 200). A specific function is performed to control a specific subset 451 (for example, 107, 109, 111, 113, 114, etc.) of the peripheral device 130. Local API 440 is a software function interface that directly controls one or more peripheral devices 130. For example, the local API 440 of the card reader 130 includes processing for initializing, starting, reading data from the card, ejecting the card, and turning off the function.
[0032]
The selection (of the kiosk configuration) is made by the selection function 105A. The following are examples of the selection function 105A.
a) The user explicitly touches an image icon or other selection device such as a button on the screen.
b) The currently running program determines that the selection needs to be invoked based on the user's actions, for example, if the user makes the same mistake twice in a row, invokes the help program.
c) The logic in the currently executing program determines the next selection (kiosk configuration). For example, after a user creates a pre-qualification application for a mortgage and the bank approves it, the current application may ask the user if it requires real estate information. If the user responds positively, the configuration of the kiosk is changed to the configuration of the real estate agent application.
[0033]
In one embodiment, when the selection 105A is made, the browser 160 requests the server 195 via HTTP via the network interface 155 for the first application file 175 (comprising the file 500) corresponding to the selection function 105A. Send. (See also FIG. 5 for a description of file 500 in application file / configuration set 175.) Next, server 195 provides application file 175 to browser 160. After the file 500 constituting the application file arrives at the browser 160, the HTML content of the file 500 is executed line by line. If the file 500 of the next application file is associated (eg, hyperlinked) with the file 500 of the current application file that the browser is running, the file 500 of the next application file is also sent to the browser. Can be In this way, the browser 160 executes each file 500 one line at a time and one configuration set 175 at a time in the order defined by the HTML text instructions in the configuration set 175. By executing the file 500 in the application file / configuration set 175 in this manner, the local API 440 (associated with the device 130) or a subset 441 of the local API is invoked and the selected subset of the device is 451 to reconfigure the kiosk (100/200). The logic and / or user actions within each application file / file (175, 500) can change which application file / file (175, 500) is executed, Note that some application files may or may not be executed.
[0034]
By executing the application file 175, the browser 160 selects and controls one or more of the devices 130. The configuration of the kiosk is defined by the device 451 selected during execution of the application file (eg, a device subset 451) and how the device subset 451 is controlled. For example, in a banking configuration, the execution of the application file 175 invokes a subset of the API 441 and, for example, selects and controls the card reader 111 and the printer 109 (device subset 451) to read and read the bank card, respectively. The transaction record is printed. Executing one or more of the application files (or lines in the application file) 175 in the same banking configuration does not select or control device 130, but does Other actions are performed, including storing the data or returning the data or message to the server 195. In another arrangement for ordering a pizza, execution of the application file invokes a different subset of the API 441 to select and control the same device subset 451 (ie, card reader 111 and printer 109), respectively, for the credit card. A read and price request is made and a purchase receipt indicating the selected pizza topping is printed.
[0035]
Note that in some configurations, execution of application file 175 does not select one or more devices 130. In such a case, the default device is used. For example, a line in the file 500 for displaying a text line is sent to the display device 103 by default.
[0036]
It should also be noted that the browser 160 can access a special set of local executable modules that interact with the execution of the application file using other local programs and / or libraries (see FIG. 6). ).
[0037]
FIG. 5 is a block diagram illustrating a set of application files (configuration sets) 175 that provide at least one embedded control program 620, including one or more HTML files and their associated hypertext component files. . All web-based application files 175 are HTML-based files that provide at least one embedded control program 620. Application files 175 optionally also include other hypertext component files, whether HTML-based or not. Typically, the HTML file contains text 525, images or graphics 528, animations (implemented as images 528, applets 505, scripts 515, or other built-in control functions (programs) 620), (one built-in control function). It includes tags indicating standard HTML (such as HTML 3.0), which is an embedded component file such as audio (as 620), video (as one embedded control function 620), and other hyperlinks. These tags are well known. In one preferred embodiment, browser 160 is Netscape Navigator v3.0. The embedded program may be implemented using JavaScript or a Java applet, or any other embedded program that uses a plug-in, or a combination thereof. Sun Microsystems Inc.). As shown in FIG. 5, the HTML file 500 incorporates a Java ™ applet using a tag 505, incorporates a Java ™ Script function using a tag 515, and uses a tag 520 to implement a Javascript function. It incorporates any other program that calls the browser's plug-in function. Details of standard HTML tags are described in "Netscape HTML 3.0 Source Book", which is incorporated herein by reference in its entirety. Some of these built-in control functions 520 are read as built-in control functions / programs 620 when read into a computer.
[0038]
FIG. 5 is a block diagram illustrating components of a system that is called upon execution of embedded control program 620 of a typical application that configures kiosk 100.
[0039]
Within the browser 160, as a function, there is an interpreter 610 that interprets or recognizes HTML tags in HTML files. The interpreter 610 calls the HTML tag execution program 611 to execute a function for each HTML tag according to the type of the tag and the content of the tag. If the execution does not result in an API call 680 for the local kiosk program (including the local peripheral API 440), the browser executes each HTML tag 615 using a library of standard functions 617 if necessary. Examples of these non-API control functions 615 include text display, image display, and the like. These are well known and are included in prior art browsers.
[0040]
However, if the executable 611 encounters a built-in control function 620 that calls one of the local kiosk APIs 680, the executable 611 calls the security manager 625 inside the browser 160 to determine whether the API call is authorized. to decide. As will be described in greater detail below, the kiosk control mechanism 640, or a portion 640A of that mechanism, is located in a subdirectory of the directory containing the browser. In this way, when the execution program 611 encounters the built-in control function 620, the security manager 625 finds the control mechanism 640 (640A below) and the API control function 621 loads the control mechanism 640 / 640A into the browser process 160. I do. For example, these built-in control functions 620 may include an applet that calls one or more local API functions 680/440 (ie, a selected subset of API 441) to operate a given subset of devices 451. For example, if the device is a card reader, the built-in control function 620 uses the control mechanism 640 to call the appropriate API 440, open the card reader, read data from the card, eject the card, and close the card reader. .
[0041]
Note that the well-known browser 160 does not execute the built-in control functions 620 from the network 150 to execute the local API 680. In practice, these browsers specifically prevent the execution of these API control functions for well-known network security reasons. For example, if the application file 175 is modified while transiting the network, execution of the damaged control function in the application file will cause the client machine, ie, the kiosk (100, 200) to become unpredictable. Adverse consequences can occur.
[0042]
It is well known that Java is designed to overcome network security issues using various special measures, such as byte code transmission and verification, virtual machine error checking, and the like. Further, if Java is used as an applet in a web-based application, ie, embedded in an HTML file, the browser will typically include the Java applet in the browser. Strictly prevent access to any local Java (registered trademark) program on the client machine other than the Java (registered trademark) program in the standard Java (registered trademark) library. The reason for this is that the applet is sent from an unmanaged environment, that is, it can be sent from any server in the entire network, so the applet may simply damage the client machine. This is to prevent
[0043]
As described in the book "Java (Registered Trademark) Now" (by Kris Jamsa, James Press, 1996, ISBN 1-88133-30-4, p4), "addressing security issues" In order to do this, Java developers prevent programmers from creating computer viruses using the Java applet, and the applet stores information about the user's system (such as files on the user's system) on a server. For example, while browsing a competitor's web site, the competitor's Java applet reads his hard disk. If you don't like that security To provide, Java developers have decided to limit the operations that applets can perform, for example, Java applets cannot read or write files on the user's system. By doing so, the applet cannot store the virus on the user's disk or read information stored on the user's disk. " It is also described as follows. "Java allows a programmer to create a stand-alone program. A Java stand-alone program is similar to a program that a programmer can create using C ++. Such a stand-alone program can read and write files and execute operations that Java® restricts execution by an applet, whereas Java ™ applet can be used in a browser. Is only executed ... ". This means that the Java applet is designed not to operate functions outside the browser process 160.
[0044]
During operation of a standard browser, the browser security manager 625 monitors for violations of these security rules. If it finds an applet requesting access to a program that is not in the standard Java library, the browser simply reports a security breach error and stops running the applet.
[0045]
In one embodiment, a portion 640A of the kiosk-specific control 640 is added to the browser 160 to allow the application file 175 to configure the kiosk, and another portion 640B of the kiosk-specific control 640 is provided. Is added to the application programming interface (API) 680 (including 440). Therefore, the kiosk-specific control mechanism 640 is divided into two parts, a browser mechanism 640A and an API mechanism 640B. In this embodiment, the browser mechanism 640A and the API mechanism 640B communicate via an inter-process communication (IPC) 640I. The IPC 640I interface allows the browser mechanism 640A and the API mechanism 640B to communicate using message passing rather than direct indirect calls. (IPC is well known, one example is the use of Dynamic Data Exchange (DDE) in the Windows operating system. Windows is a trademark of Microsoft Corporation.)
[0046]
Browser mechanism 640A is placed in a browser subdirectory so that API control functions 620 in any application files 175 are recognized by interpreter 610 in browser 160. The API mechanism 640B receives a message from the browser mechanism 640A and independently controls various functions including 440 according to the message. In this way, an applet from a browser can control one or more devices and local functions, but only functions with a browser mechanism 640A. Thus, other functions in the kiosk remain secure from access by the application file 175 over the network. Thus, the kiosk is configurable but secure. Further, because the API mechanism 640B operates the device API 440 independently of the browser, the device control functions passed to the API mechanism 640B (a subset of the API control functions 620 used to control a given device) are: , Only if that application file is later removed or modified in browser 160, for that subset 451 of devices. This allows the device operation to be performed in a sustainable manner. That is, after the API function (640, 440) has been initiated, it can be completed regardless of whether the application file 175 is modified / removed by the browser 160. This execution persistence can make certain user interactions with the kiosk more efficient. For example, the application file 175 can instruct the card issuer to issue a new card. The user / browser can then move to another application file while the card issuer writes data to the magnetic stripe and launches a new card.
[0047]
The browser mechanism 640A is a name server that 1) resides in the browser's own standard directory / library and 2) the application file 175 passes messages (eg, function names and associated parameters) for one or more local API functions. One of the local APIs 680, either by passing messages using the mechanism (see FIGS. 7 and 9 and its description), or by directly invoking the local API function (see FIGS. 8 and 10 and its description). It has a structure that allows one or more local APIs 680 to be called.
[0048]
In a preferred embodiment, browser mechanism 640A includes a Java API (sometimes referred to as a "Java wrapper") known to application file 500 (e.g., inter-process communication or name It further includes functions programmed in a native language (eg, C ++) to communicate or call the local API 680 directly (using a server).
[0049]
The API mechanism 640B 1) directly accesses various local function modules (eg, a browser control module, a cooperative function module, a device control module, a system monitoring module, etc.), and 2) uses a name server mechanism or an associated function module. Has a structure that allows a set of one or more API functions 680 to be invoked by directly invoking, and 3) has an IPC that enables message-based communication with the API 640A. (Note that API function 680 is created to specifically control a given device or function within the kiosk, and may or may not be accessible by application file 175.)
[0050]
One application that uses this kiosk control mechanism is that the application queries the system setup and status before the application determines how to configure the kiosk. In the application file 175, the applet CallAPI. The class can be used to call the API function 640 "query_status". For example,
Figure 2004005688
When this applet is executed by the browser, first, a class called kioskAppInterface is instantiated. This file and the associated DLL are placed in the browser standard library. Next, an API message "query_status" (640A) is sent using a method of the kioskAppInterface class (640A) called send_APImessage (). This method calls the inter-process communication function 640I and sends a message to the API mechanism 640B. Next, AIP mechanism 640B invokes the relevant local API function 680 to obtain system status data and sends that data back to 640A via inter-process communication function 640I. The applet uses the method get_APImessage () with the command "status" to obtain the data returned from the 640B and stores the data in a data structure in a class called sysStatus.
[0051]
The API message passing between 640A and 640B can use a name server facility (see FIG. 7 below). Generally, when 640B obtains a message, the name server function (within 640B) parses the message and calls the corresponding local function API 680. In this example, the system monitoring function API is called to obtain system status data. This can be illustrated as follows.
Figure 2004005688
An example of data obtained in the "sysStatus" class data structure as described above is shown below.
Num. of Device = 5
laser printer = OK
card reader = OK
card issuer = no card supply
receive printer = OK
ticket printer = OK
This message indicates that there are five devices on the kiosk and all are working except the card issuer that needs the card.
[0052]
According to the current state of the kiosk, the application file 175 allows the selection and use of laser printers, receipt printers and card readers (device subset 451), while at the same time the card reader as indicated by the status data. Avoid using a card issuer because there is no card in the card supply (in such a situation, the card is created by other means and mailed to the kiosk user).
[0053]
In certain preferred embodiments, such techniques are used to determine what devices are included in the kiosk and whether those devices are functioning properly. In this way, the server can provide a particular application file 175 for configuring the kiosk based on which devices the kiosk has and which devices are operational. Thus, any number of different kiosk designs and operating situations can be configured by appropriately selecting the application files at the server for each application configuration. For example, in a banking application, a kiosk equipped with a laser printer for printing high quality bank statements is sent a file 500 configured as an application file containing laser printer controls, A kiosk that has only a receipt printer (available and operable) for the same task (bank statement) will receive another file 500 that is configured as an application file containing receipt printer controls. Can be In this way, a kiosk with a malfunctioning laser printer, or a lower cost kiosk without a laser printer, can be properly configured for banking applications.
[0054]
In other embodiments, one or more servers may request status information by sending a request in an application file. This information can be used to determine which kiosks and / or devices on those kiosks require service. For example, if necessary, a service technician can be dispatched to add a card to the card issuing machine.
[0055]
In other embodiments, status information may be requested for use in a kiosk or device service history. In addition, other marketing information may be obtained, for example, which configuration is most required by which class of customer at a particular installation location.
[0056]
In one preferred embodiment, the kiosk may have a browser window (system monitoring application window) running in the background of other applications. The system monitoring application window can include one or more HTML files that include one or more applets that communicate with one or more servers. (Mechanisms for Java applet communication with the server are well known.) This system monitoring application window can be started whenever the kiosk is powered on, as long as the kiosk is running. Keep running. In this way, one or more servers can obtain kiosk system status information at any time via communication with the applet.
[0057]
Among the possibilities provided by the approach described here are:
1) A "light client" kiosk. Because there is no application-specific software that needs to be pre-installed on the kiosk, a cost-effective kiosk can be built and maintained. Thus, one application (application file 500) can be created on a server and used by multiple "lightweight" kiosks on the network connected to that server. There is no need to create application-specific software for any of the "lightweight" kiosks on the network. In practice, the network can be made up of one or more standard (and thus cheaper) "lightweight" kiosks without any application-specific software. (For example, a kiosk manufacturer may manufacture one or more standard kiosks that are used for and independent of any application.) Creating, updating, and maintaining application files 500 on a server And can be used to reconfigure one or more kiosks on the network without changing any programming in the kiosk. This "light client" kiosk enables mass deployment of kiosks to provide universal public access anytime, anywhere, for example, "kiosk phones" that can communicate via the Internet and / or the telephone network .
[0058]
2) Since the kiosk is reconfigurable, many different applications can be developed on the server and distributed through the kiosk. Thus, the application provider can share any kiosk on the network. These applications can be provided to the kiosk for a particular point in time or for a particular situation, such as a user request or a given environmental condition (such as an umbrella advertising when it rains).
[0059]
3) The kiosks can be based on open standard technologies of the Internet and the Web, so that they can take advantage of the rich information and media, and the rich Internet and the World Wide Web.
[0060]
Some non-limiting examples showing how a user can use this kiosk 100 are provided below.
1. The idle kiosk screen dynamically displays various images, video clips, audio, graphics patterns and text. All screen content is controlled from HTML files, which are updated based on kiosk requests or server pushes. The server provider may pay different fees for this different type of screen "space" and its display time. In the morning and evening commutes, we mainly show headline news and changes in the financial markets, and at lunchtime we show advertisements for many restaurants. On weekends, you can also display special ads for department stores. This content always invites people passing by to touch the screen.
2. The user looks at the screen, walks up, and touches the screen. The screen switches immediately to the next screen, displaying a number of image icons and text indicating the category of the application.
3. When the user touches the pizza order icon, a screen on which the user can select the type of pizza is presented. The screen prompts the user for a pizza delivery location and time, and the user can enter information via the on-screen touch keypad. The control program 620 incorporated in the HTML captures this data. Next, the screen prompts the user to insert his credit card and authorize the payment. The control program opens the card reader and captures the credit card information. The control program then invokes the communication function on the kiosk using the relevant kiosk API function to access the credit card company (eg, via a modem) and the pizza store (eg, via a fax transmission). After these functions are completed, the screen confirms the customer with the information for ordering. Other general retail transactions can be performed in a similar manner.
4. The user can also place a call by touching the phone icon. The phone application HTML file is displayed on the screen along with the phone keypad. After the user enters the number, the embedded control program calls the associated API function 640A to initiate a telephone call. This can be via a public telephone network (PSTN), an integrated services digital network (ISDN), or an Internet telephone, depending on the kiosk's network connection (122, 123, 150), the application file 500, and the user selection 105A. It can be a conventional telephone call. Once the telephone is connected, the user can use the handset or speakerphone provided in the kiosk (“Multipoint Simultaneous Voice and Data” filed February 6, 1996, corresponding to European Patent Application No. 789470). See US Patent Application No. 08/595897 to Hortensius et al., Entitled "Services Using a Media Splitter Gateway Architecture," which is incorporated herein by reference in its entirety).
[0061]
In another preferred embodiment, the user can also select a videophone or videoconference call using the application sharing feature if the other party has the same functionality. In that case, the control program 620 embedded in the HTML application calls the relevant API function 640A to start the kiosk video conference function. Users can use the touch screen and electronic pen provided on the kiosk to facilitate conversations (as described in the aforementioned "Internet Web Page Sharing" patent application, such as Fins).
5. The user can also select the fax function. The screen prompts the user to enter a fax number, insert a credit card, insert the document to be faxed into an appropriate device (such as a document slot), and press the OK button on the screen when ready. Prompt to touch. Upon touching the button, the embedded control program 620 calls the associated device control API function 640A on the kiosk, activates the scanner, scans the document, returns the document, and electronically sends the document over a network, such as a PSTN or the Internet. .
6. The user can also select the e-mail function. The screen displays an HTML application for e-mail. The embedded control program 620 calls the associated API function 640A or communicates directly with the mail server and directory server via a browser to identify the user, retrieve an existing email message or send a new message. .
7. The user may also select 105A to transfer an electronic file on a medium such as a floppy diskette. The screen prompts the user to follow a particular process, for example, to insert a floppy into the slot. The embedded control program 620 calls the associated API function 640A, reads the diskette, reads or writes the file selected by the user, and forwards it according to the user's instructions, such as sending it to someone's email address.
8. The user can select a service from a wide range of service providers (eg, application owners on a server) such as lawyers, doctors, accountants, real estate agents, loan brokers, investment advisors, insurers, and the like. The screen displays the corresponding application in the HTML file and provides the requested service (based on user selection, this service can be any English, Spanish, Chinese, Japanese, French, Italian, etc. Can be presented in natural language.)
9. Depending on the service provider's application, real-time collaborative sessions may also be initiated using video, audio, shared screen, and remote device control functions (see Finn et al., Supra). The embedded control program calls the associated API function 620 to handle video, audio, and data communications.
10. The user can choose to search for information. The screen prompts the user to enter what information is needed, and the embedded control program captures the data and sends a query depending on the type of information. Queries can be sent through the interface using well-known search engines, databases on application servers, and databases on other network servers.
11. The user can select a customized application server. For example, once a user is identified (eg, from information accessed on a magnetic card or smart card), the application file provides customized information and kiosk configuration for the user.
12. The user can select a configuration for the kiosk 100 that is not the configuration initially provided by the kiosk 100. By interacting with the kiosk's first configuration, the kiosk can be reconfigured to a second configuration by reference to other application files 175. For example, a first configuration can include a user input (icon or hyperlink) accessing an application file 175 for a second configuration.
13. The user may be one or more students or students who have access to one or more kiosks connected to the network, where the server provides the "learning" application file 175.
14. The user can select an “electronic” product from the kiosk. For example, a compact disc (CD) containing music, video, computer software, or other multimedia information or a combination thereof can be sold from a suitable dispenser. Alternatively, a suitable kiosk device can write to a blank medium (eg, tape, diskette, writable CD, etc.) and provide the user with “electronic” information in intangible form that can be transmitted over a network. For example, an up-to-date opera recording may be provided on a CD without sending a "cut" CD at the factory.
[0062]
Other examples of certain kiosk control mechanisms 640 used to input and output information to and from a kiosk device are shown below. In a typical input situation, the application file 500 may include a CAPI API.xml file used to call the API function 640 "hardkey_input". It has an applet called class. For example:
[0063]
Figure 2004005688
[0064]
Embed this applet in an HTML file as follows.
[0065]
Figure 2004005688
[0066]
When this applet is executed by the browser, it first instantiates a class called kioskAppInterface. This file and the associated DLL are placed in the browser standard library. Next, an API message “hardkey_input” (640A) is sent using a method of the kioskAppInterface class (640A) called send_APImessage (). This method calls the inter-process communication function 640I and sends a message to the API mechanism 640B. Next, the API mechanism 640B calls the associated local API function 680, captures the key input from the hardware key provided on the kiosk, and sends it back to 640A via the inter-process communication function 640I. This applet uses get_AIPmessage () with the command “input” to get the data sent from 640B and stores it in a data structure in a class called InputData.
[0067]
Figure 2004005688
[0068]
If the application file 500 has a built-in applet that invokes a "soft key" input, a similar API message is passed between 640A and 640B and the soft key pad is displayed on the screen using a different API function 680. Note that the window "pops up" and captures user input. API functions 680 for such soft key entry are well known.
[0069]
Similarly, if the application file 500 calls for printing a file on an output device, eg, a laser printer, or has a built-in applet, the above code directs the Local API function 680, Laser_print (FileName). , And controls the laser printer to print the file “FileName”.
[0070]
FIG. 7 illustrates one embodiment of a kiosk control mechanism 640 that uses the ICP 640I and the name server function 640B. In this case, the application file (175, 500) uses a small fixed set of general purpose communication API functions 640A (primarily for message passing). These communication API functions communicate or pass messages between 640A and 60B. Execution of the message is performed by the name server function in 640B. The server function 640B functions as an IPC 640I server. The name server function recognizes various predefined messages. For example, in one embodiment, the set of communication APIs has two functions: send_message (message) and get_message (message). However, there are multiple “messages”. The name server function in 640B finances a list containing each of these predefined messages, and each predefined message can call the appropriate local API function 680 to execute the respective predefined message1. Associated with a set of logic.
[0071]
In this embodiment, new devices and new functions performed by those new devices can be added by providing new predefined messages and the logic necessary to perform the new functions. In this way, the application files (175, 500) can perform their new functions simply by using the new message identifier in a given communication API function. This typically requires only changing the "ASCII" or "text" message identifier in the application file 500. You do not need to code and compile new embedded programs or modify existing programs to use the new features. Thus, since the kiosk provider has already incorporated the necessary logic into the name server 640B, there is little that the application owner (and thus the application files on the server) need to do to perform the new function.
[0072]
FIG. 8 is a block diagram illustrating an alternative embodiment of a kiosk control mechanism 640 that uses IPC 640I for a mapping local API in a browser mechanism 640A. In this example, many or all kiosk control functions 620 are executed by directly calling the corresponding mapping local API from application file 500 at browser mechanism 640A. Each mapping local API 640A communicates with the API mechanism 640B via the IPC 640I, which calls the appropriate local API function 680. Here, the mapping local API 640A is a Java (registered trademark) API program. There is one Java API program specifically created for one or more local APIs 680. Unlike the name server, at least one of the Java API programs must have logic to control one or more of the local APIs 680. These Java API programs 640 are predefined and known to the application file 500.
[0073]
In this embodiment, new devices and new functions performed by those devices can be added by providing new mapping local APIs (640A) in the browser mechanism 640A with their corresponding API mechanisms 640B. In this embodiment, the application file 500 needs to execute each of these new functions by direct invocation. Therefore, some or all of the logic for executing the new function needs to be defined in the application file 500. For example, an application programmer creating an application file 500 at the server will need to code this new logic, for example, by creating a new Java applet.
[0074]
FIG. 9 shows another embodiment of the kiosk control mechanism 640. In this embodiment, there is no IPC 640I, and thus the API mechanism 640B is merged into the browser mechanism 640A. However, the name server function (also merged) is used and combined with a set of communication APIs into a browser mechanism (640B, 640). In this embodiment, application files 500 (including applets) are "dropped" by browser 160 and local functions 680 are terminated, thus losing persistence. This embodiment is useful when persistence is not required, for example, when there is no required kiosk device other than the screen controlled by the browser.
[0075]
FIG. 10 shows another embodiment of the kiosk control mechanism 640. In this embodiment, there is no IPC 640I and no API mechanism 640B. In this case, the applet directly calls the API function (640, 640A), and the API function directly calls the local API function 680. Here, the API function 640 is a Java (registered trademark) API program. There is one Java API program specifically created for each one or more local APIs 680. Unlike the name server, at least one of the Java API programs has logic to control one or more of the local APIs 680. Must be. These Java API programs 640 are predefined and known to the application file 500. In this embodiment too, persistence is lost.
[0076]
FIG. 11 is a flowchart of an execution process 700 performed by a kiosk.
[0077]
First, the browser 160 obtains 705 the (HTML) file 500 from the application file 175. Next, browser 160 interprets 710 the tags and contents of application file 500. If the browser 160 does not encounter a local API call 715, the browser performs the relevant well-known actions 720, executing the tag. If the browser encounters a local API call 715, the browser calls 725 the associated API function (640 or 640A).
[0078]
In one preferred embodiment, browser mechanism 640A communicates 730 a message to API mechanism 640B via inter-process communication function 640I. Alternatively, a message server is used as described above. The API mechanism 640B receives the message and calls 735 the associated local function 680. The API mechanism 640B transmits 740 a message about the execution result of the local function to the browser mechanism 640A via the inter-process communication function 640I.
[0079]
The browser is controlled via screen input, embedded control program logic, or an external browser control function 660 to request the next HTML file. In this way, the browser can be treated as a local kiosk device. Thus, by controlling the browser and accessing the well-known browser interface (API 681) using the local API 660, it is possible to load any particular HTML file from one or more servers over the network. it can. Local API 660 is created to allow embedded control program 620 to access browser-in 681 (see above).
[0080]
FIG. 12 is a flowchart of a server process 800 executed on one or more servers on a network. The server receives 810 a request from one or more kiosks via a network. The request identifies which of the application files 175 is selected / accessed by the kiosk. The request also includes the location of the kiosk 100 that is requesting / accessing the application file. Upon receiving the request, the server sends 820 the requested application file 175 to the kiosk. The application file 175 can be pre-created or dynamically generated by logic on the server.
[0081]
In another embodiment, the kiosk sends 810 a request to proxy server 195A. Proxy server 195A is typically located closer to the kiosk than server 195. Alternatively, the proxy server 195A can be located on a computer without the kiosk 100/200. For example, server 195 may be located at a first city, for example, the location of a head office, and proxy server 195A may be located on a LAN connected to a kiosk in a different city. The proxy server 195A may send a request over the network 150 to the server for many or all application files 175 needed by the kiosk according to a predefined schedule. In this way, the kiosk can access the application file 175 on the proxy server 195A faster and more reliably when it needs the application file. Further, the proxy server may request the application file 175 from the server 195 during "off-peak" hours on the network.
[0082]
In other embodiments, the server (195, 195A) can be used to "push" information to one or more kiosks identified by the server 195. For example, at step 810, a request is initiated at server 195. This initiation 810 can be made for various reasons. For example, updating an application requires reconfiguring one or more kiosks using the new application file 175. Alternatively, it may be necessary to provide a new configuration at a specific time each day, i.e., provide news from a different source at 5 pm every day. The server can also "push" the periodic "checks" of the kiosk to determine which kiosk needs maintenance.
[0083]
One preferred implementation of this embodiment uses a "server push feature" 685 running on a kiosk. The server push function 685 is connected to the network 150 and can receive a message from the server 195. The server push function 685 can also access the browser interface 681. The server 195 sends a request to the server push function 685 to cause the browser to request the server 195 for a specific application file 500.
[0084]
FIG. 13 is a block diagram showing a mechanism in a case where the embedded control program uses the ActiveX technique instead of Java (registered trademark). The ActiveX control object can be realized using various programming languages such as C ++, Visual Basic, and Java (registered trademark). An ActiveX object can be embedded in an HTML file. For example:
[0085]
Figure 2004005688
[0086]
In this case, the browser must be ActiveX-enabled. That is, it must support the ActiveX technique. In one embodiment, the browser is a Microsoft Internet Explorer.
[0087]
When the application file 500 arrives at the browser 160, the HTML file is interpreted 910 based on its tags and content. As with Java, described above, the browser executes 920 non-API control functions as described above. The API control function 930 executed by the browser directly calls the API 940. As in the case of Java, the first part 940A of the API communicates with the second part of the API (eg, 640B) 940B via the inter-process communication function 940I, and this second part connects the local API 680. call.
[0088]
The difference between ActiveX and the above-mentioned case of Java (registered trademark) is that ActiveX can include objects created in a non-network language such as C ++ or Visual Basic. Objects in these languages are downloaded to the browser in executable code. Thus, such an object can do whatever a program written in the same language can do, but does not have the security restrictions that Java ™ applets have. Thus, if the embedded control program 620 was created as an ActiveX control program using a non-Java language, the API function 940 could be placed anywhere within the kiosk. In the case of using Java (registered trademark) in an ActiveX object, the above-described mechanism must also be used.
[0089]
14 to 17, the boxes with the above numbers have the same functions as those described above.
[0090]
FIG. 14 illustrates one embodiment of a kiosk control mechanism 940 that uses the IPC and name server functions. Browser mechanism 940A is a native language API that does not need to be in the browser directory but can be located anywhere in the kiosk's memory, for example, in the kiosk's system directory. However, the path (ie, location) of the browser mechanism 940A must be known to the application file 500.
[0091]
FIG. 15 is a block diagram illustrating another embodiment of a kiosk control mechanism 940 that uses IPC 640I with a mapping local API. As in FIG. 8, there is at least one browser mechanism 940 for one or more of the local APIs 680.
[0092]
FIG. 16 shows another embodiment of the kiosk control mechanism 940 without the IPC 640I. In this case, the browser mechanism 940A can be arranged as described above with reference to FIG.
[0093]
FIG. 17 shows another embodiment of a kiosk control mechanism that uses ActiveX control when the control is not performed in Java (registered trademark). In this embodiment, 940 is not required at all since such a built-in ActiveX control can directly call the local API 680. In this case, the persistence of execution is lost.
[0094]
FIG. 18 illustrates another kiosk control mechanism using a so-called plug-in technique. In this case, the preferred embodiment uses a Netscape Navigator v3.0 or later browser.
[0095]
Here, the control mechanism 1040 includes a browser mechanism (plug-in module and its associated Java (registered trademark) wrapper) 1040A, and the kiosk control program (application file / file (175, 500)) in the browser mechanism includes 620) is accessed. When accessed, plug-in module 1040A executes as part of browser 160. The execution plug-in module 1040A calls the inter-process communication function 1040I. This inter-process communication function (IPC) 1040I can be the same as the above-mentioned IPC (640I, 940I). The IPC 1040I contacts the API mechanism 1040B and calls the local API 680. The API mechanism 1040B can be the same as the aforementioned mechanisms (640B, 940B).
[0096]
In this embodiment, the browser mechanism 1040A is implemented by a plug-in technique (see Zan Oliphant's "Programming Netscape Plug-ins" (Sams.net, 1996, ISBN1-57521-098-3)). You. Plug-in techniques use native code modules. That is, it is implemented using C or C ++ or a similar programming language, and in a more preferred embodiment is also implemented in a Java wrapper. Plug-in 1040A is placed in a special plug-in directory specified by browser 160. When the HTML interpreter 610 encounters an embedded file (620) that identifies each plug-in 1040A by a unique file name extension in the embedded file, also known as a multi-purpose Internet mail extension (MIME) type, the plug-in 1040A Dynamically loaded into browser 160.
[0097]
The built-in kiosk control program (620) is a set of predefined control scripts included in 1) a Java script function, 2) a Java applet, or 3) a MIME file with a unique extension. It can be.
[0098]
When browser 160 loads plug-in module 1040A, plug-in 1040A becomes available for HTML documents. That is, the function (plug-in function) in the plug-in can be used for the embedded program (620), for example, a Java (registered trademark) Script function or a Java (registered trademark) applet function to be called. In doing so, the kiosk's local API 680 may be controlled by a given embedded program 620 via one or more corresponding plug-ins 1040A. In other words, the plug-in module 1040A calls the IPC function 1040I and calls the kiosk's local API 680 via the corresponding API mechanism 1040B.
[0099]
Three non-limiting examples are shown below.
[0100]
Example 1 uses a JavaScript function as the embedded kiosk control program 1030 together with a plug-in module 1040A having a message passing function.
[0101]
The application file 175 having the control program 1030 is as follows.
[0102]
Figure 2004005688
[0103]
The Java ™ applet “MYAPPLET.Java” includes the following codes.
[0104]
Figure 2004005688
[0105]
Java® wrapper file PluginWrapper. Java includes the following codes.
[0106]
Figure 2004005688
[0107]
The plug-in module 1040A associated with the embedded control program 1030 provides a method SendMsg () implemented in native language code such as C ++.
[0108]
Example 2 uses a Java applet directly as the embedded kiosk control program 1030 with a plug-in module 1040A having a message passing function.
[0109]
The application file 175 having the control program 1030 is as follows.
[0110]
Figure 2004005688
[0111]
The Java ™ applet “MYAPPLET.Java” includes the following codes.
[0112]
Figure 2004005688
[0113]
Java® wrapper file PluginWrapper. Java includes the following codes.
Figure 2004005688
[0114]
As in Example 1, the plug-in module 1040A associated with the plug-in embedded control program 1030 above provides a method SendMsg () implemented in a native language such as C ++.
[0115]
Example 3 includes a set of predefined control scripts and a corresponding plug-in module 1040A that controls the kiosk local API 680, and uses an embedded file 1030 that executes those scripts to control the kiosk local API 680. I do.
[0116]
The application file 175 having the embedded file 1030 is as follows.
[0117]
Figure 2004005688
[0118]
Plug-in module 104A may consist of the following code.
Figure 2004005688
Figure 2004005688
The above three plug-in functions implement the standard plug-in API provided in the Netscape browser 160. Here, other plug-in APIs provided in the browser 160 are not used.
[0119]
When the <embed> tag is interpreted by the HTML interpreter 610, the MSGPASS. If the file 1030 called MET is downloaded to the local disk and the corresponding plug-in module 1040A is not yet loaded in the browser 160, the plug-in module 1040A is loaded. The browser 160 automatically calls a plug-in API called NPP_New to create a plug-in instance, calls NPPStreamAsFile (), which is a plug-in API having the name of the downloaded file, and executes the file. If necessary, the browser 160 calls a plug-in API called NPP_Destroy () to destroy the plug-in instance.
[0120]
The class KioskIPC and the function InterpretFile () can be implemented using a native language such as C ++ to interpret and execute the predefined script in the embedded file. In this sense, as long as the function InterpretFile () script is implemented to be able to interpret the script with reasonable performance and execute the required functions, it is important to understand what the script can look like. There are no restrictions. An example is as follows.
[0121]
In the include file, the script looks like this:
[0122]
Figure 2004005688
[0124]
The plug-in module 1040A may also create a number of buttons in the browser 160 window to provide specific interactive control of its functions. For example, to call the SendMsg () function that sends a message “PrintCurrentPage”, a button “Print” can be created and waited for a touch or click. The <embed> tag may also include a set of predefined parameters for controlling the plug-in module 1040A according to an embodiment of the plug-in module 1040A. For information on how to use the <embed> tag and how to implement a plug-in module, see "HTML Publishing for Netscape" (Stuart Harris and Gayle Kidder, ISBN1-5664-288-7). And Zan Olphant, supra.
[0125]
The present invention will be described below.
(1) A server connected to at least one kiosk device including an agent computer including browser means and receiving at least one configuration request for requesting an application from the kiosk device via a network, , The server comprises:
Means for storing at least one configuration set associated with the application, configured as an HTML file comprising an embedded component file and an embedded control function, and referred to as an application file;
A browser mechanism for selecting the configuration set specified by the configuration request, transmitting the selected configuration set to a kiosk device, and controlling an input / output device or a peripheral device with respect to the kiosk device. Communication means for selectively controlling at least one input / output device or peripheral device of the kiosk device to execute an application requested by the kiosk device;
Server containing.
(2) The application file is one of a remote device control function by Java (registered trademark) applet or ActiveX control or plug-in control, a remote message display function, a file transfer function, and an agent / client cooperation function. The server according to (1), which provides one.
(3) The server according to (1) or (2), which stores, in addition to the built-in control function, an HTML file including a system monitoring program for determining an operation state of the kiosk device.
And (4) using the operating status to perform one or more of a maintenance required for the input / output device or the peripheral device, a maintenance history of the input / output device or the peripheral device, and the configuration request. The server of (3), wherein the server determines one or more of an application file to be provided on the network to respond to the request and marketing information about a user of the kiosk device.
(5) The server according to (3) or (4), wherein the server determines the operation status and determines which configuration set is to be provided to the kiosk device on the network.
(6) The server according to any one of (1) to (5), wherein the HTML file includes zero or one or more hypertext component files.
(7) The server according to any one of (1) to (6), wherein the application is a customization application customized for a user of the kiosk device.
(8) The application file according to any one of (1) to (7), wherein the application file provides a function of accessing the Internet via a kiosk device configured by receiving the at least one application file. Server as described in.
(9) The server of (8), wherein the access to the Internet provides a communication link between one or more users via one or more designated servers.
(10) The application file is any one of a telephone call, an e-mail transmission / reception, a teleconference, a fax transmission, a training session, a search for information on the network, and a web-based collaboration. The server according to any one of (1) to (9), which provides one or more functions.
(11) The server according to any one of (1) to (10), which provides the application information to a user in a kiosk device configured by receiving the at least one application file.
(12) The method according to (1) to (11), wherein the at least one built-in control function provides a function for causing the kiosk device to request one or more of the application files. A server according to any one of the preceding claims.
(13) An operation method of a server connected to at least one kiosk device via a network, wherein the operation method includes:
Receiving a configuration request from an agent computer included in the kiosk device connected to the network and including browser means;
An application file associated with the application, comprising an embedded component file, and an embedded control function for selectively operating a driver subset composed of a driver program in the kiosk device, and configured as an HTML file. Selecting a stored configuration set and sending it to the kiosk device;
And execute
The application file is provided with a driver corresponding to an input / output device of the kiosk device or a peripheral device by incorporating a browser mechanism into the kiosk device using Java (registered trademark) applet or ActiveX control or plug-in control. Have the program selectively controlled
Server operation method.
(14) A server operation method connected to one or a plurality of kiosk devices including an agent computer and receiving at least one configuration request from an agent computer of the kiosk device via a network, The method is for the server,
Receiving a configuration request from at least one kiosk device connected to the network;
Transmitting to the kiosk device a configuration set associated with the application, the configuration set having an embedded component file and an embedded control function, and being an application file specified by the configuration request and configured as an HTML file;
And execute
The application file selectively controls a driver program of the kiosk device by incorporating a browser mechanism into the kiosk device, and drives the input / output device or a peripheral device by the driver program to thereby control the kiosk device. Causing the application to execute.
(15) means for enabling one or more connections to the network, receiving at least one configuration request via the connection;
Means for storing at least one configuration set, including an HTML file associated with the application and including an embedded component file and an embedded control function, and referred to as an application file;
Means for communicating the configuration set for an application specified by the configuration request to a kiosk device;
The built-in control function causes the kiosk device to incorporate a browser mechanism, the browser mechanism selectively controlling a driver subset of one or more of the driver programs to control the driver A server that drives the input / output device or peripheral device by a program and causes the kiosk device to execute the application.
(16) The server according to (15), wherein the configuration request is sent from one or more of the kiosk devices to be configured.
(17) The server according to (16), wherein the configuration request is sent from an agent computer.
(18) the application file includes any one of a Java ™ applet or a remote device control function by ActiveX control or plug-in control, a remote message display, a file transfer, and an agent / client cooperation. The server according to (16).
(19) The server according to (15), further including a system monitoring program that determines an operation status of at least one local kiosk function among the local kiosk functions of the kiosk device, in addition to the built-in control function.
(20) The maintenance status of one or more of the peripheral devices and the maintenance history of at least one of the peripheral devices are determined by using the operation status provided by the system monitoring program. Determining one or more of an application file provided on the network for responding to at least one of the requests for configuration and marketing information for one or more kiosk users. , (19).
(21) The server according to (19), wherein the server determines an application file that provides a service on the network based on the operation status provided by the system monitoring program.
(22) The server according to (15), wherein the application file includes one or more HTML files, and the HTML file includes zero or more hypertext component files.
(23) The server according to (15), wherein the application is a financial application.
(24) The financial application may provide any of financial information to a user, account opening, cash payment, account payment, loan application, deposit, mortgage payment, financial advice, fixed asset transaction, and assistance from an agent. The server according to (23), further comprising one or more functions.
(25) The server according to (15), wherein the application is a customization application customized for a user.
(26) The server according to (15), wherein the application file provides a function that enables access to the Internet via one or more kiosk devices.
(27) The server according to (26), wherein the access to the Internet provides a communication link between one or more second users via one or more designated servers.
(28) The server according to (27), wherein the application is a communication application.
(29) The communication application file is one or more of a telephone call, an e-mail transmission and reception, a teleconference, a fax transmission, a training session, a search for information on the network, and a web-based collaboration. The server according to (28), which provides a function.
(30) The server according to (15), wherein the application is a service application.
(31) The server according to (30), wherein the service application includes providing one or more functions of an advertisement, a service, and a service fee.
(32) The server according to (15), wherein the application provides information to a user using a kiosk device configured by receiving the application file.
(33) At least one of the built-in control functions provides a function of causing at least one of the kiosk devices to request at least one of the application files. , (15).
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating one preferred embodiment of a kiosk.
FIG. 2 is a block diagram illustrating another preferred embodiment of the kiosk.
FIG. 3 is a block diagram illustrating an example of a graphical user interface used in a kiosk.
FIG. 4 is a block diagram illustrating a configuration set (application files) selected by a user and executed to configure a kiosk.
FIG. 5 is a block diagram illustrating a set of application files (configuration sets) including one or more HTML files including at least one embedded control program and accompanying hypertext component files.
FIG. 6 is a block diagram illustrating one preferred embodiment of a kiosk that interacts with application files and local API programs to execute control programs / functions that make up the kiosk.
FIG. 7 is a block diagram illustrating various preferred alternative embodiments of the kiosk control mechanism.
FIG. 8 is a block diagram illustrating various preferred alternative embodiments of the kiosk control mechanism.
FIG. 9 is a block diagram illustrating various preferred alternative embodiments of the kiosk control mechanism.
FIG. 10 is a block diagram illustrating various preferred alternative embodiments of the kiosk control mechanism.
FIG. 11 is a flowchart showing steps performed when executing one application file having an API control function.
FIG. 12 is a flowchart illustrating steps performed by a typical server.
FIG. 13 is a block diagram illustrating a preferred kiosk software architecture using ActiveX.
FIG. 14 is a block diagram illustrating various preferred alternative embodiments of a kiosk control mechanism using ActiveX.
FIG. 15 is a block diagram illustrating various preferred alternative embodiments of a kiosk control mechanism using ActiveX.
FIG. 16 is a block diagram illustrating various preferred alternative embodiments of a kiosk control mechanism using ActiveX.
FIG. 17 is a block diagram illustrating various preferred alternative embodiments of a kiosk control mechanism using ActiveX.
FIG. 18 is a block diagram illustrating an alternative kiosk control embodiment using a plug-in.
[Explanation of symbols]
100 ... Kiosk device
103 ... Touch-sensitive terminal
109 ... Printer
105 ... Display screen
110 ... Computer
111, 112, 130: General-purpose information reading device (input device or peripheral device)
113, 130: General-purpose information writing device (output device or peripheral device)
122 ... Telephone network
123 ... ISDN
125 ... Control process and library
155 ... Network interface
520, 620 ... Built-in control function
640 ... Kiosk specific control mechanism
640A… Browser mechanism
640I ... Inter-process communication means
640B… API mechanism
680: Local application program interface (local kiosk API)

Claims (33)

ブラウザ手段を含むエージェント・コンピュータを含んで構成される少なくとも1つのキオスク装置に接続され、アプリケーションを要求するための少なくとも1つの構成要求をネットワークを介して前記キオスク装置から受け取るサーバであって、前記サーバは、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを含んで構成されるHTMLファイルとして構成され、かつアプリケーション・ファイルとして参照される少なくとも1つの構成セットを格納する手段と、
前記構成要求により指定される前記構成セットを選択し、選択された前記構成セットをキオスク装置へと送信し、前記キオスク装置に対して入力/出力装置または周辺装置を制御するためのブラウザ機構を組み込ませ、前記キオスク装置の少なくとも1つの入力/出力装置または周辺装置を選択的に制御することにより前記キオスク装置が要求したアプリケーションを実行させる通信手段と、
を含むサーバ。
A server connected to at least one kiosk device including an agent computer including browser means and receiving at least one configuration request for requesting an application from the kiosk device via a network, the server comprising: Is
Means for storing at least one configuration set associated with the application, configured as an HTML file comprising an embedded component file and an embedded control function, and referred to as an application file;
A browser mechanism for selecting the configuration set specified by the configuration request, transmitting the selected configuration set to a kiosk device, and controlling an input / output device or a peripheral device with respect to the kiosk device. Communication means for selectively controlling at least one input / output device or peripheral device of the kiosk device to execute an application requested by the kiosk device;
Server containing.
前記アプリケーション・ファイルが、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御による遠隔装置制御機能と、遠隔メッセージ表示機能と、ファイル転送機能と、エージェント/クライアント協同機能のうちのいずれか1つを提供する、請求項1に記載のサーバ。The application file has one of a remote control function of Java (registered trademark) applet or ActiveX control or plug-in control, a remote message display function, a file transfer function, and an agent / client cooperation function. The server of claim 1 for providing. 前記組込み制御関数の他、前記キオスク装置の動作状況を判断するシステム監視プログラムを含むHTMLファイルを格納する、請求項1または2に記載のサーバ。3. The server according to claim 1, wherein an HTML file including a system monitoring program for determining an operation state of the kiosk device is stored in addition to the built-in control function. 前記動作状況を使用して、前記入力/出力装置または周辺装置に必要な保守と、前記入力/出力装置または周辺装置の保守履歴と、前記構成要求のうちの1つまたは複数の構成要求に応答するために前記ネットワーク上で提供するアプリケーション・ファイルと、前記キオスク装置のユーザに関するマーケティング情報とのうちのいずれか1つまたは複数を判断する、請求項3に記載のサーバ。Responsive to one or more of the input / output devices or peripherals, a maintenance history of the input / output devices or peripherals, and one or more of the configuration requests using the operating conditions; The server of claim 3, wherein the server determines one or more of an application file provided on the network to do so and marketing information about a user of the kiosk device. 前記サーバは、前記動作状況を判断し、前記ネットワーク上で前記キオスク装置にどの構成セットを提供するかを決定する、請求項3または4に記載のサーバ。5. The server according to claim 3, wherein the server determines the operation status and determines which configuration set is provided to the kiosk device on the network. 6. 前記HTMLファイルは、ゼロ個または1個以上のハイパーテキスト構成要素ファイルを含む、請求項1ないし5のいずれか一項に記載のサーバ。The server according to any one of claims 1 to 5, wherein the HTML file includes zero or one or more hypertext component files. 前記アプリケーションがキオスク装置におけるユーザに合わせてカスタマイズされたカスタマイズ・アプリケーションである、請求項1ないし6のいずれか一項に記載のサーバ。The server according to claim 1, wherein the application is a customization application customized for a user in a kiosk device. 前記アプリケーション・ファイルが、前記少なくとも1つのアプリケーション・ファイルを受信することにより構成されたキオスク装置を介してインターネットへのアクセス機能を提供する、請求項1ないし7のいずれか一項に記載のサーバ。The server according to claim 1, wherein the application file provides a function of accessing the Internet via a kiosk device configured to receive the at least one application file. 前記インターネットへの前記アクセスが、1つまたは複数の指定されたサーバを介して一人または複数のユーザ間に通信リンクを提供する、請求項8に記載のサーバ。The server of claim 8, wherein the access to the Internet provides a communication link between one or more users via one or more designated servers. 前記アプリケーション・ファイルが、電話呼出しと、電子メール送受信と、遠隔会議と、ファクス伝送と、トレーニング・セッションと、前記ネットワーク上の情報の検索と、ウェブ・ベースの協同とのうちのいずれか1つまたは複数の機能を提供する、請求項1ないし9のいずれか一項に記載のサーバ。The application file may include any one of a telephone call, an e-mail transmission and reception, a teleconference, a fax transmission, a training session, a search for information on the network, and a web-based collaboration. 10. The server according to claim 1, which provides a plurality of functions. 前記少なくとも1つのアプリケーション・ファイルを受信することによって構成されたキオスク装置におけるユーザに前記アプリケーション情報を提供する、請求項1ないし10のいずれか一項に記載のサーバ。The server according to any of the preceding claims, wherein said server provides said application information to a user at a kiosk device configured by receiving said at least one application file. 前記少なくとも1つの組込み制御関数が、キオスク装置に対して前記アプリケーション・ファイルのうちの1つまたは複数のアプリケーション・ファイルを要求させるための機能を付与する、請求項1ないし11のいずれか一項に記載のサーバ。12. The method of claim 1, wherein the at least one built-in control function provides a function for causing a kiosk device to request one or more of the application files. The server described. ネットワークを介して少なくとも1つのキオスク装置に接続されたサーバの動作方法であって、前記動作方法は前記サーバに対し、
前記ネットワークに接続されたキオスク装置に含まれ、ブラウザ手段を含むエージェント・コンピュータからの構成要求を受け取るステップと、
アプリケーションに関連づけられ、組込み構成要素ファイルと、キオスク装置におけるドライバ・プログラムから構成されるドライバ・サブセットを選択的に機能させる組込み制御関数とから構成され、かつHTMLファイルとして構成されるアプリケーション・ファイルである格納された構成セットを選択して、前記キオスク装置に送るステップと
を実行させ、
前記アプリケーション・ファイルは、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御を使用して前記キオスク装置にブラウザ機構を組込ませることにより前記キオスク装置の入力/出力装置または周辺装置に対応したドライバ・プログラムを選択的に制御させる
サーバ動作方法。
An operation method of a server connected to at least one kiosk device via a network, wherein the operation method includes:
Receiving a configuration request from an agent computer included in the kiosk device connected to the network and including browser means;
An application file associated with the application, comprising an embedded component file, and an embedded control function for selectively functioning a driver subset composed of a driver program in the kiosk device, and configured as an HTML file. Selecting a stored configuration set and sending it to the kiosk device.
The application file is loaded with a driver corresponding to an input / output device of the kiosk device or a peripheral device by incorporating a browser mechanism in the kiosk device using a Java (registered trademark) applet or ActiveX control or plug-in control. A server operation method for selectively controlling a program.
エージェント・コンピュータを含んで構成される1つまたは複数のキオスク装置に接続され、少なくとも1つの構成要求をネットワークを介して前記キオスク装置のエージェント・コンピュータから受け取るサーバ動作方法であって、前記方法はサーバに対して、
前記ネットワークに接続された少なくとも1つのキオスク装置から構成要求を受け取るステップと、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを有し、かつ前記構成要求により指定され、HTMLファイルとして構成されるアプリケーション・ファイルである構成セットを前記キオスク装置に送信するステップと
を実行させ、
前記アプリケーション・ファイルは、前記キオスク装置にブラウザ機構を組込むことにより前記キオスク装置のドライバ・プログラムを選択的に制御させ、前記ドライバ・プログラムにより入力/出力装置または周辺装置を駆動させることにより前記キオスク装置に前記アプリケーションを実行させる、方法。
A server operating method connected to one or more kiosk devices including an agent computer and receiving at least one configuration request from an agent computer of the kiosk device via a network, the method comprising a server Against
Receiving a configuration request from at least one kiosk device connected to the network;
Sending a configuration set to the kiosk device, the configuration set being an application file associated with the application, having an embedded component file and an embedded control function, and being specified by the configuration request and configured as an HTML file. Let
The application file selectively controls a driver program of the kiosk device by incorporating a browser mechanism into the kiosk device, and drives the input / output device or a peripheral device by the driver program to thereby control the kiosk device. Causing the application to execute.
接続を介して少なくとも1つの構成要求を受信する、ネットワークへの1つまたは複数の接続を可能とする手段と、
アプリケーションに関連づけられ、組込み構成要素ファイルと組込み制御関数とを含んで構成されるHTMLファイルを含み、かつアプリケーション・ファイルとして参照される少なくとも1つの構成セットを格納する手段と、
キオスク装置へと前記構成要求により指定されるアプリケーションのための前記構成セットを通信する手段とを含み、
前記組込制御関数が前記キオスク装置に対してブラウザ機構を組込ませ、ブラウザ機構がドライバ・プログラムのうちの1つまたは複数のドライバ・プログラムから成るドライバ・サブセットを選択的に制御して前記ドライバ・プログラムにより前記入力/出力装置または周辺装置を駆動させ、前記キオスク装置をして前記アプリケーションを実行させるサーバ。
Means for enabling one or more connections to the network, receiving at least one configuration request over the connection;
Means for storing at least one configuration set, including an HTML file associated with the application and including an embedded component file and an embedded control function, and referred to as an application file;
Means for communicating the configuration set for an application specified by the configuration request to a kiosk device;
The built-in control function causes the kiosk device to incorporate a browser mechanism, the browser mechanism selectively controlling a driver subset of one or more of the driver programs to control the driver A server that drives the input / output device or peripheral device by a program and causes the kiosk device to execute the application.
前記構成要求が構成する前記キオスク装置のうちの1つまたは複数のキオスク装置から送られる、請求項15に記載のサーバ。The server of claim 15, wherein the configuration request is sent from one or more of the kiosk devices to be configured. 前記構成要求がエージェント・コンピュータから送られる、請求項16に記載のサーバ。17. The server of claim 16, wherein the configuration request is sent from an agent computer. 前記アプリケーション・ファイルが、Java(登録商標)アプレットまたはActiveX制御またはプラグイン制御による遠隔装置制御機能、遠隔メッセージ表示、ファイル転送、およびエージェント/クライアント協同のうちのいずれか1つを含む、請求項16に記載のサーバ。17. The application file, wherein the application file includes one of a Java applet or ActiveX or plug-in controlled remote device control function, remote message display, file transfer, and agent / client cooperation. Server. 前記組込み制御関数の他、前記キオスク装置のローカル・キオスク機能のうちの少なくとも1つのローカル・キオスク機能の動作状況を判断するシステム監視プログラムを含む、請求項15に記載のサーバ。The server according to claim 15, further comprising a system monitoring program that determines an operation status of at least one local kiosk function of the kiosk devices of the kiosk device, in addition to the built-in control function. 前記システム監視プログラムにより与えられる前記動作状況を使用して、前記周辺装置のうちの1つまたは複数の装置に必要な保守と、前記周辺装置のうちの少なくとも1つの装置の保守履歴と、前記要求のうちの少なくとも1つの構成要求に応答するために前記ネットワーク上で提供するアプリケーション・ファイルと、一人または複数のキオスク・ユーザに関するマーケティング情報とのうちのいずれか1つまたは複数を判断する、請求項19に記載のサーバ。Using the operational status provided by the system monitoring program, maintenance required for one or more of the peripheral devices, maintenance history of at least one of the peripheral devices, Determining one or more of an application file to provide on the network to respond to a configuration request of at least one of: and marketing information for one or more kiosk users. 20. The server according to 19. 前記システム監視プログラムにより与えられる前記動作状況によって、前記サーバが前記ネットワーク上でサービスを提供するアプリケーション・ファイルを決定する、請求項19に記載のサーバ。20. The server according to claim 19, wherein the server determines an application file that provides a service on the network according to the operation status provided by the system monitoring program. 前記アプリケーション・ファイルが、1つまたは複数のHTMLファイルを含み、前記HTMLファイルが、ゼロ個または1個以上のハイパーテキスト構成要素ファイルを含む、請求項15に記載のサーバ。The server of claim 15, wherein the application file includes one or more HTML files, and wherein the HTML file includes zero or more hypertext component files. 前記アプリケーションが金融アプリケーションである、請求項15に記載のサーバ。The server according to claim 15, wherein the application is a financial application. 前記金融アプリケーションが、ユーザへの金融情報提供、口座開設、現金支払い、勘定支払い、ローンの申込み、預金、モーゲージ支払い、金融に関する助言、固定資産取引、およびエージェントからの支援のうちのいずれか1つまたは複数の機能を含む、請求項23に記載のサーバ。The financial application provides one of financial information to a user, account opening, cash payment, account payment, loan application, deposit, mortgage payment, financial advice, fixed asset transaction, and assistance from an agent. 24. The server of claim 23, comprising a plurality of functions. 前記アプリケーションがユーザに合わせてカスタマイズされたカスタマイズ・アプリケーションである、請求項15に記載のサーバ。The server of claim 15, wherein the application is a customized application customized for a user. 前記アプリケーション・ファイルが、1つまたは複数のキオスク装置を介したインターネットへのアクセスを可能とする機能を提供する、請求項15に記載のサーバ。The server of claim 15, wherein the application file provides a function that allows access to the Internet via one or more kiosk devices. インターネットへの前記アクセスが、1つまたは複数の指定されたサーバを介して一人または複数の第2のユーザ間に通信リンクを提供する、請求項26に記載のサーバ。27. The server of claim 26, wherein the access to the Internet provides a communication link between one or more second users via one or more designated servers. 前記アプリケーションが通信アプリケーションである、請求項27に記載のサーバ。The server according to claim 27, wherein the application is a communication application. 前記通信アプリケーション・ファイルが、電話呼出し、電子メール送受信、遠隔会議、ファクス伝送、トレーニング・セッション、前記ネットワーク上の情報検索、およびウェブ・ベースの協同のうちのいずれか1つまたは複数の機能を提供する、請求項28に記載のサーバ。The communication application file provides one or more of the following functions: telephone calling, e-mail transmission and reception, teleconference, fax transmission, training session, information retrieval on the network, and web-based collaboration. 29. The server according to claim 28. 前記アプリケーションがサービス・アプリケーションである、請求項15に記載のサーバ。The server according to claim 15, wherein the application is a service application. 前記サービス・アプリケーションが、広告、サービス、およびサービス料金のうちのいずれか1つまたは複数の機能の提供を含む、請求項30に記載のサーバ。31. The server of claim 30, wherein the service application includes providing one or more of an advertisement, a service, and a service fee. 前記アプリケーションが、前記アプリケーション・ファイルを受信することによって構成されたキオスク装置を使用してユーザに情報を提供する、請求項15に記載のサーバ。16. The server of claim 15, wherein the application provides information to a user using a kiosk device configured by receiving the application file. 前記組込み制御関数のうちの少なくとも1つの組込み制御関数が、前記キオスク装置のうちの少なくとも1つのキオスク装置に前記アプリケーション・ファイルのうちの少なくとも1つのアプリケーション・ファイルを要求させる機能を付与する、請求項15に記載のサーバ。The at least one built-in control function of the built-in control functions provides a function of causing at least one of the kiosk devices to request at least one of the application files. 16. The server according to 15.
JP2003150123A 1997-03-13 2003-05-28 Server and server operation method for kiosk device connected to computer network Pending JP2004005688A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US4041497P 1997-03-13 1997-03-13
US97421697A 1997-11-19 1997-11-19
US08/974,214 US6195694B1 (en) 1997-03-13 1997-11-19 Server for reconfiguring control of a subset of devices on one or more kiosks

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP10539335A Division JP2000510626A (en) 1997-03-13 1998-03-02 Kiosk and server connected to computer network

Publications (1)

Publication Number Publication Date
JP2004005688A true JP2004005688A (en) 2004-01-08

Family

ID=27365717

Family Applications (3)

Application Number Title Priority Date Filing Date
JP10539335A Pending JP2000510626A (en) 1997-03-13 1998-03-02 Kiosk and server connected to computer network
JP2003150102A Pending JP2004030640A (en) 1997-03-13 2003-05-28 Kiosk system connected with computer network and method for constituting kiosk system
JP2003150123A Pending JP2004005688A (en) 1997-03-13 2003-05-28 Server and server operation method for kiosk device connected to computer network

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP10539335A Pending JP2000510626A (en) 1997-03-13 1998-03-02 Kiosk and server connected to computer network
JP2003150102A Pending JP2004030640A (en) 1997-03-13 2003-05-28 Kiosk system connected with computer network and method for constituting kiosk system

Country Status (9)

Country Link
EP (1) EP0966712A1 (en)
JP (3) JP2000510626A (en)
KR (1) KR100368353B1 (en)
CN (1) CN1124010C (en)
AU (1) AU6629998A (en)
CA (1) CA2281725A1 (en)
IL (1) IL131357A (en)
PL (1) PL335521A1 (en)
WO (1) WO1998040826A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008305366A (en) * 2007-06-08 2008-12-18 Masazumi Fukuda Method for allowing any unspecified large number of general users (customers) to develop/resister/run (use) program at the same time any time
JP2016504649A (en) * 2012-11-05 2016-02-12 エーエフエル・テレコミュニケーションズ・エルエルシー Distributed test system architecture
JP2020181592A (en) * 2008-03-04 2020-11-05 アップル インコーポレイテッドApple Inc. Touch event model programming interface
US11429190B2 (en) 2013-06-09 2022-08-30 Apple Inc. Proxy gesture recognizer
US11449217B2 (en) 2007-01-07 2022-09-20 Apple Inc. Application programming interfaces for gesture operations
US11740725B2 (en) 2008-03-04 2023-08-29 Apple Inc. Devices, methods, and user interfaces for processing touch events
US11755196B2 (en) 2009-03-16 2023-09-12 Apple Inc. Event recognition
US12061915B2 (en) 2010-01-26 2024-08-13 Apple Inc. Gesture recognizers with delegates for controlling and modifying gesture recognition

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0866611A1 (en) * 1997-03-21 1998-09-23 CANAL+ Société Anonyme Broadcast receiving system comprising a computer and a decoder
US6141684A (en) * 1997-09-12 2000-10-31 Nortel Networks Limited Multimedia public communication services distribution method and apparatus with distribution of configuration files
AU1143199A (en) * 1997-10-24 1999-05-17 Mannesmann Aktiengesellschaft Communication system, especially for processing and/or transmitting data and/or signals, method for using such communication system and telecommunication booth
WO1999028830A1 (en) * 1997-12-02 1999-06-10 Korman Bruce R Multi-transactional network architecture
US7542944B1 (en) * 1999-02-17 2009-06-02 Diebold, Incorporated Method and system for connecting services to an automated transaction machine
ES2149697B1 (en) * 1998-07-14 2001-05-01 Garcia Jon Urresti TELE-SURVEY SYSTEM.
US6601039B1 (en) 1998-07-20 2003-07-29 Usa Technologies, Inc. Gas pump control system having access to the internet for the purposes of transacting e-mail, e-commerce, and e-business, and for conducting vending transactions
US6604086B1 (en) 1998-07-20 2003-08-05 Usa Technologies, Inc. Electronic commerce terminal connected to a vending machine operable as a telephone
US6615183B1 (en) 1998-07-20 2003-09-02 Usa Technologies, Inc. Method of warehousing user data entered at an electronic commerce terminal
US6606602B1 (en) 1998-07-20 2003-08-12 Usa Technologies, Inc. Vending machine control system having access to the internet for the purposes of transacting e-mail, e-commerce, and e-business, and for conducting vending transactions
EP1099175A1 (en) * 1998-07-20 2001-05-16 USA Technologies Inc. Universal interactive advertising and payment system for public access electronic commerce and business related products and services
US6601038B1 (en) 1998-07-20 2003-07-29 Usa Technologies, Inc. Delivery of goods and services resultant from an electronic commerce transaction by way of a pack and ship type company
US6806977B1 (en) * 1998-12-31 2004-10-19 Automated Business Companies Multiple integrated machine system
FI114064B (en) * 1999-01-08 2004-07-30 Telia Ab Controlling Internet access to sponsors
EP1020822A1 (en) * 1999-01-13 2000-07-19 Sanyo Electric Co. Ltd Control apparatus for vending machine
GB9901301D0 (en) * 1999-01-21 1999-03-10 Ncr Int Inc Self-service terminal network
JP3408984B2 (en) 1999-01-28 2003-05-19 パナソニック コミュニケーションズ株式会社 Network facsimile machine
EP1192514A4 (en) * 1999-05-03 2002-07-17 Streetspace Inc Method and system for providing personalized online services and advertisements in public spaces
AU4661500A (en) * 1999-06-10 2001-01-02 Cacheflow, Inc. Method and apparatus for dynamic proxy reflecting of streaming content
US6655284B1 (en) 1999-06-28 2003-12-02 Casio Computer Co., Ltd. Customer terminal apparatus and information distribution server
TW473696B (en) 1999-06-29 2002-01-21 Casio Computer Co Ltd Printing apparatus and printing method
FR2796238B1 (en) * 1999-07-06 2001-10-12 France Telecom PUBLIC TERMINAL FOR ACCESS TO A COMPUTER NETWORK
KR100351664B1 (en) * 1999-07-14 2002-09-11 가시오게산키 가부시키가이샤 Customer terminal apparatus, its system, and recording medium which records that program
US7185333B1 (en) * 1999-10-28 2007-02-27 Yahoo! Inc. Method and system for managing the resources of a toolbar application program
EP1096444A3 (en) * 1999-11-01 2003-07-23 Citicorp Development Center, Inc. Method and system for configuration of self-service financial transaction terminals for a common software release
WO2001037156A1 (en) * 1999-11-15 2001-05-25 Feals, Incorporated Company Real estate affairs support system and computer, and real estate business support method
JP2001202090A (en) * 1999-11-17 2001-07-27 Ricoh Co Ltd Visitor reception method and apparatus, and recording medium recording visitor reception program
US6912528B2 (en) * 2000-01-18 2005-06-28 Gregg S. Homer Rechargeable media distribution and play system
KR100699628B1 (en) * 2000-02-21 2007-03-23 엘지엔시스(주) Unmanned terminal providing Internet service and its Internet service providing method
EP1137234A1 (en) * 2000-03-24 2001-09-26 BRITISH TELECOMMUNICATIONS public limited company Internet access arrangement
US7450114B2 (en) * 2000-04-14 2008-11-11 Picsel (Research) Limited User interface systems and methods for manipulating and viewing digital documents
ES2165319B1 (en) * 2000-04-26 2003-06-16 Segarra Antonio Lopez PUBLIC COMMUNICATION CABIN WITH INTERNET ACCESS FOR RECORDING AND SENDING OF AUDIO AND VIDEO MESSAGES.
AU2001272958A1 (en) * 2000-06-19 2002-01-02 James R Clark Retail entertainment/applications distribution system
GB2366654A (en) * 2000-09-12 2002-03-13 Appliance Studio Ltd Display with Internet connectivity
IT1316045B1 (en) * 2000-09-22 2003-03-26 Guislaine Freda STAND-ALONE MACHINE FOR SELLING COMPACT DISC CONTAINING BRANIMUSICAL CHOICES SELECTED BY THE USER AND SERVICES IN GENERAL.
KR20020034758A (en) * 2000-11-03 2002-05-09 박기석 Multimidia visitor's register
FR2816784B1 (en) * 2000-11-14 2003-02-07 Schlumberger Systems & Service METHOD FOR TRANSFERRING FILES BETWEEN SERVICE DEVICES AND A REMOTE MANAGEMENT SERVER
ES2169004B1 (en) * 2000-11-27 2003-11-16 Hergos Sist S Digitales Y Ergo ERGONOMIC TOURIST-THEMATIC INFORMATION POINT.
US7636757B2 (en) 2000-12-15 2009-12-22 Canon Kabushiki Kaisha Printing over the internet
WO2002057975A1 (en) * 2001-01-19 2002-07-25 Fujitsu Limited Multifunctional information terminal
GB0101846D0 (en) 2001-01-24 2001-03-07 Ncr Int Inc Self-service terminal
KR100425555B1 (en) * 2001-02-12 2004-04-03 박종대 Method for advertizing using moving picture on kiosk
KR20020068649A (en) * 2001-02-21 2002-08-28 (주)싸이버뱅크 Wireless based thin client service system and method for transmission data decrease
JP2002297346A (en) * 2001-03-29 2002-10-11 Ricoh Co Ltd Sbc-adadtive printer output system and method, program for realizing the method, and recording medium for the recording program
US7280087B2 (en) 2001-04-23 2007-10-09 Gilbarco Inc. Multiple browser interface
US20020174206A1 (en) * 2001-05-21 2002-11-21 Moyer Alan L. Web-based file manipulating system
GB2377595B (en) * 2001-07-06 2004-12-15 Livedevices Ltd Improvements relating to reduction of resource usage in TCP/IP Implementation
WO2003005146A2 (en) * 2001-07-06 2003-01-16 Giulio Dorrucci Information and advertisement system
CN1338695A (en) * 2001-07-17 2002-03-06 天津南开戈德集团有限公司 Self-service network system and its operation method
US20030041030A1 (en) * 2001-08-14 2003-02-27 Carl Mansfield System and method for a home network telephone universal phonebook
WO2003034265A1 (en) * 2001-10-17 2003-04-24 Primeselections.Com, Inc. Digital interactive network appliance and system
JP2003132235A (en) * 2001-10-23 2003-05-09 Kanji Murakami Structure of shopping store, and information exchange device and method
JP2003141020A (en) * 2001-10-31 2003-05-16 Toshiba Tec Corp Information storage output system and information storage output service
KR100469083B1 (en) * 2002-02-19 2005-02-02 주식회사 코베콤 System and Method for providing service in wireless network environment using customer relation management
WO2003085895A1 (en) 2002-04-10 2003-10-16 Lg Electronics Inc. Method for controlling home automation system
ES2197815B1 (en) * 2002-05-17 2005-03-01 Manuel Becerril Gonzalez De La Mata SYSTEM OF DEVICES FOR ACCESS TO ADMINISTRATIONS, CLARIFICATION OF PROBLEMS AND RESOLUTION OF ACCESS TO INFORMATIC NETWORKS WITHOUT INFORMATIC KNOWLEDGE.
KR20030095571A (en) * 2002-06-12 2003-12-24 주식회사 코리아엠피에스 Method for providing multi-service and system therefor
KR100474912B1 (en) 2002-07-24 2005-03-10 엘지전자 주식회사 Dual internet protocol phone, communicating method using the same
KR20040033419A (en) * 2002-10-14 2004-04-28 (주)밸류게이츠인터내셔날 A/V switching method for high quality MPEG kiosk
DE10348094A1 (en) * 2003-10-16 2005-05-19 Deutsche Telekom Ag Multifunctional machine
KR100636143B1 (en) * 2004-06-02 2006-10-18 삼성전자주식회사 Automatic setting method and device of wireless network device
US8165900B2 (en) 2004-08-09 2012-04-24 Epic Systems Corporation Patient check-in/scheduling kiosk
US7957021B2 (en) 2005-05-20 2011-06-07 Ricoh Company, Ltd. Image handling apparatus, image processing system, image process controlling method, and image process controlling program product
EP1736947A1 (en) * 2005-06-09 2006-12-27 NCR International, Inc. Personalized security method for a self-service checkout system
US7839521B2 (en) 2005-08-09 2010-11-23 Global Print Systems, Inc. Methods and systems for print job management and printing
US7668974B2 (en) * 2005-11-01 2010-02-23 International Business Machines Corporation Method and system for local provisioning of device drivers for portable storage devices
WO2008041978A1 (en) 2006-10-03 2008-04-10 Lucent Technologies Inc. Method and apparatus for reconfiguring ic architectures
US8768720B2 (en) 2007-04-12 2014-07-01 Epic Systems Corporation Location limited check-in kiosk method and apparatus
TR200903668T1 (en) * 2007-07-17 2009-08-21 Murat Özbi̇len Mümtaz "Interactive branch cab system."
WO2009025194A1 (en) * 2007-08-22 2009-02-26 Epos Card Co., Ltd. Ic card instant issue system
DK2201475T3 (en) 2007-10-10 2020-09-28 Gilbarco Inc SYSTEM AND METHOD FOR MANAGING SAFE AND UNSECURE CONTENT BY DISPENSER OR RETAIL FACILITY
KR101403602B1 (en) 2007-12-28 2014-06-03 니혼에이티엠 가부시키가이샤 Automatic transaction device, automatic transaction device control program, recording medium and automatic transaction device control method
KR100983881B1 (en) * 2008-02-29 2010-09-27 (주)솔루젠 Network-based printing automation system
US20120154310A1 (en) * 2009-05-14 2012-06-21 Joseph Denny Interactive Multimedia Advertising System
GB0909277D0 (en) 2009-05-29 2009-07-15 Design Multimedia Ltd I A control system and method for a user terminal
US8687777B1 (en) 2010-02-03 2014-04-01 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8625756B1 (en) 2010-02-03 2014-01-07 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8572303B2 (en) 2010-02-03 2013-10-29 Tal Lavian Portable universal communication device
US9001819B1 (en) 2010-02-18 2015-04-07 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8903073B2 (en) 2011-07-20 2014-12-02 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8548131B1 (en) 2010-02-03 2013-10-01 Tal Lavian Systems and methods for communicating with an interactive voice response system
US8594280B1 (en) 2010-02-03 2013-11-26 Zvi Or-Bach Systems and methods for visual presentation and selection of IVR menu
US8548135B1 (en) 2010-02-03 2013-10-01 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8537989B1 (en) 2010-02-03 2013-09-17 Tal Lavian Device and method for providing enhanced telephony
US8681951B1 (en) 2010-02-03 2014-03-25 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8553859B1 (en) 2010-02-03 2013-10-08 Tal Lavian Device and method for providing enhanced telephony
US8879698B1 (en) 2010-02-03 2014-11-04 Tal Lavian Device and method for providing enhanced telephony
JP5804678B2 (en) * 2010-07-16 2015-11-04 キヤノン株式会社 Information processing apparatus, Web browser control method, and program
JP2012190298A (en) * 2011-03-11 2012-10-04 Sony Corp Electronic apparatus, control method and program for electronic apparatus, and storage medium
CN102289895A (en) * 2011-06-21 2011-12-21 上海北大方正科技电脑系统有限公司 Terminal and method for processing network note
EP2570923A1 (en) * 2011-09-14 2013-03-20 Alcatel Lucent Kiosk system for providing information and services
KR101183365B1 (en) 2011-10-07 2012-09-14 한화에스앤씨주식회사 Apparatus for controlling kiosk using short range wireless communication
CN103282888B (en) * 2011-12-27 2017-03-08 华为技术有限公司 Data processing method, image processor GPU and primary nodal point equipment
US8867708B1 (en) 2012-03-02 2014-10-21 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
US8731148B1 (en) 2012-03-02 2014-05-20 Tal Lavian Systems and methods for visual presentation and selection of IVR menu
CN102830947A (en) * 2012-08-13 2012-12-19 南京莱斯信息技术股份有限公司 Report printing control implemented based on report printing template format
CN103499952A (en) * 2013-09-13 2014-01-08 广州恩次元信息科技有限公司 Self-service terminal remote intelligent management system
JP6402575B2 (en) * 2014-10-15 2018-10-10 セイコーエプソン株式会社 Printing system and printing system control method
KR20160129499A (en) 2015-04-30 2016-11-09 뉴21커뮤니티(주) Kiosk of sharing screen with mobile terminal device, and screen sharing system of kiosk
JP6493130B2 (en) 2015-09-30 2019-04-03 富士通株式会社 Information processing apparatus, method, and program
KR102402154B1 (en) 2018-04-30 2022-05-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. Service Kiosk Access
KR102274453B1 (en) * 2020-05-15 2021-07-07 주식회사 블랙펄 Installation place customized total kiosk service providing system
US12230406B2 (en) 2020-07-13 2025-02-18 Vignet Incorporated Increasing diversity and engagement in clinical trails through digital tools for health data collection
US12211594B1 (en) * 2021-02-25 2025-01-28 Vignet Incorporated Machine learning to predict patient engagement and retention in clinical trials and increase compliance with study aims
US12248384B1 (en) 2021-02-25 2025-03-11 Vignet Incorporated Accelerated clinical trials using patient-centered, adaptive digital health tools
US12248383B1 (en) 2021-02-25 2025-03-11 Vignet Incorporated Digital systems for managing health data collection in decentralized clinical trials
KR102393609B1 (en) * 2022-02-28 2022-05-02 지철 A kiosk service system that provides a customized screen reflecting the user's preference according to the installation location
JP2024143187A (en) * 2023-03-30 2024-10-11 グローリー株式会社 Media processing device, media processing system, media processing method, and media processing program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5572572A (en) * 1988-05-05 1996-11-05 Transaction Technology, Inc. Computer and telephone apparatus with user friendly interface and enhanced integrity features

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449217B2 (en) 2007-01-07 2022-09-20 Apple Inc. Application programming interfaces for gesture operations
US11954322B2 (en) 2007-01-07 2024-04-09 Apple Inc. Application programming interface for gesture operations
JP2008305366A (en) * 2007-06-08 2008-12-18 Masazumi Fukuda Method for allowing any unspecified large number of general users (customers) to develop/resister/run (use) program at the same time any time
US11740725B2 (en) 2008-03-04 2023-08-29 Apple Inc. Devices, methods, and user interfaces for processing touch events
JP7111772B2 (en) 2008-03-04 2022-08-02 アップル インコーポレイテッド Touch event model programming interface
JP2020181592A (en) * 2008-03-04 2020-11-05 アップル インコーポレイテッドApple Inc. Touch event model programming interface
US12236038B2 (en) 2008-03-04 2025-02-25 Apple Inc. Devices, methods, and user interfaces for processing input events
US11755196B2 (en) 2009-03-16 2023-09-12 Apple Inc. Event recognition
US12265704B2 (en) 2009-03-16 2025-04-01 Apple Inc. Event recognition
US12061915B2 (en) 2010-01-26 2024-08-13 Apple Inc. Gesture recognizers with delegates for controlling and modifying gesture recognition
JP2016504649A (en) * 2012-11-05 2016-02-12 エーエフエル・テレコミュニケーションズ・エルエルシー Distributed test system architecture
US11429190B2 (en) 2013-06-09 2022-08-30 Apple Inc. Proxy gesture recognizer
US12379783B2 (en) 2013-06-09 2025-08-05 Apple Inc. Proxy gesture recognizer

Also Published As

Publication number Publication date
AU6629998A (en) 1998-09-29
PL335521A1 (en) 2000-04-25
KR100368353B1 (en) 2003-01-24
IL131357A0 (en) 2001-01-28
KR20000075844A (en) 2000-12-26
WO1998040826A3 (en) 1998-12-23
IL131357A (en) 2003-07-06
CN1250567A (en) 2000-04-12
EP0966712A1 (en) 1999-12-29
CN1124010C (en) 2003-10-08
CA2281725A1 (en) 1998-09-17
JP2000510626A (en) 2000-08-15
WO1998040826A2 (en) 1998-09-17
JP2004030640A (en) 2004-01-29

Similar Documents

Publication Publication Date Title
KR100368353B1 (en) Kiosk and server connected to computer network
US6195694B1 (en) Server for reconfiguring control of a subset of devices on one or more kiosks
US9807200B2 (en) System and method providing user interactivity across a network
US7739144B2 (en) Self-service terminal
US5963952A (en) Internet browser based data entry architecture
US7379977B2 (en) System and method for display of multiple electronic pages
CN100458789C (en) Method for exchanging portlet configuration data and portal
US20140181206A1 (en) Method and apparatus for generating a web site using a multi-dimensional description of the web site
US20170103050A9 (en) Method and apparatus for generating a web site with dynamic content data from an external data source integrated therein
CZ20031172A3 (en) System and method for monitoring a plurality of financial service terminals with document-controlled interface
JP2001503173A (en) Method and system for automatically coordinating access to software application programs through different access devices
CZ20031173A3 (en) System and method for providing safety to financial service terminals with document-controlled interface
KR100952089B1 (en) Method and system for scheduling trade lists in network-based trading facilities
MXPA99008367A (en) Kiosk and server connected to computer network
CZ319299A3 (en) Kiosk and server connected to computer network
HUP0000799A2 (en) Kiosk and server connected to computer network
Yu Comparing electronic commerce solutions for small businesses

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060131

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060222

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060627