仮想ソフトウェアによるインターネット・セキュリティ方法およびシステム
インターネット・セキュリティを提供する方法は、第1実行可能アプリケーション・モジュールを含む記憶媒体を提供するステップを含む。記憶媒体をローカル・コンピュータに入力したことに応答して、第1実行可能アプリケーション・モジュールを、ローカル・コンピュータ内の仮想メモリにロードする。第1実行可能アプリケーション・モジュールを実行し、第1実行可能アプリケーション・モジュールが、少なくとも1つのリモート・サーバを特定する情報を提供する。第1実行可能アプリケーション・モジュールが提供する情報を用いて、ローカル・コンピュータとリモート・サーバとの間において通信を行う。リモート・サーバに、第2アプリケーション・モジュールをローカル・コンピュータに送るように命令する。第2アプリケーション・モジュールを受信したときに、該第2アプリケーション・モジュールをローカル・コンピュータ上の仮想メモリにロードする。仮想メモリから第2アプリケーション・モジュールを実行し、プロンプトをユーザに表示する。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願に対する引用
本願は、2007年3月29日に出願した米国仮特許出願第60/920,613号に基づき、その優先権を主張する。米国仮特許出願第60/920,613号をここで引用したことにより、その内容全体が本願にも含まれるものとする。
開示の分野
本開示は、インターネット・セキュリティに関し、特に、仮想ソフトウェアによるインターネット・セキュリティ方法およびシステムに関する。
【従来技術】
【0002】
インターネット・セキュリティは、常に変化の状態にある。新たな暗号モデルが作成され、コンピュータ上または配布する媒体上にもトークンが置かれ、これらが流通している。インターネット・セキュリティ業界は、自分のデータのプライバシを維持する機関の権利を回避しようとする者よりも常に一歩前にい続けようとしているが、成功しないことも多い。
【0003】
金融、医療、保険、工業、建設、政府等の組織のような組織は、現在、インターネット・セキュリティ方法を利用しているが、これらは同じ固有の弱点を内包している。例えば、現在のインターネット・セキュリティ方法の殆どは、インターネットを利用する人であれば誰にでもオンラインで利用可能なログオン・プロセスを利用している。ウェブサイトを訪問するとき、ユーザには多くの場合「サイン・オン」への選択肢が提示され、ユーザは情報を入力する。この情報には、ユーザIDおよびパスワードを含めるとよい。正しい情報を入力した後、ユーザには、オンライン・アプリケーションに基づいて、1つ以上のブラウザが提案される。例えば、銀行業では、ユーザに、彼らの当座口座、預金口座、クレジット・カード等を検査する選択肢、またはこれらを用いて作業する選択肢を提供することができる。しかしながら、組織のログオン画面およびオンライン・アプリケーションへの、このような自由に利用可能で開放されたアクセスは、システムに侵入しようとする個々の人々が、単にそうしようとする挑戦のため、または更に不穏な理由のための誘い掛けとなる。
【0004】
コンピュータおよびアクティブ・インターネット接続へのアクセスを有する個人がウェブサイトを訪問し、ログオンし、次いで機密データにアクセスするためのアプリケーションに基づいてブラウザの使用を容認することができる限り、現行のインターネット・セキュリティ・モデルでは効果がないのは当然である。現行のログオン・プロセスに伴う弱点に加えて、ユーザが組織のウェブサイトにログオンすることに成功した後であっても、オンライン・アプリケーションに基づいてブラウザが与えるデータ・アクセスに関連するプロセスが更に別の弱点を露呈する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の実施形態は、他のモデルが果たせない(miss)、理解し損ねた、または単に無視した弱点に取り組む。本開示の実施形態の実現を通じて、組織はログオン・プロセスを彼らのウェブサイトから除去することができるだけでなく、データを読み取り、書き込み、または更新するために現在採用されている、ブラウザに基づくオンライン・プロセス全体も除去することができる。
【0006】
例えば、銀行は、本開示の実施形態の使用により、そのウェブサイトからのオンライン銀行業務を可能にする全ての画面およびプロセスを除去し、なおもその顧客のオンライン銀行業務の特権を許可することができる。この処置を講ずることにより、銀行は、その顧客およびそれ自体の双方に対する高いレベルの保護を提供することが可能となる。
【課題を解決するための手段】
【0007】
本開示は、インターネット・セキュリティのためのツール(方法、装置、およびシステムの形態としたツール)について記載する。これらのツールは、コンピュータ読み取り可能媒体またはプログラム記憶デバイス上に格納された、および/またはコンピュータ・ネットワークまたはその他の送信媒体を通じてコンピュータ・データ信号の形態で1つ以上のセグメントで送信される1つ以上のコンピュータ・プログラムにおいて具現化することができる。
【0008】
インターネット・セキュリティを提供する方法は、第1実行可能アプリケーション・モジュールを含む記憶媒体を提供することを含む。記憶媒体をローカル・コンピュータに入力したことに応答して、第1実行可能アプリケーション・モジュールを、ローカル・コンピュータ内の仮想メモリにロードする。第1実行可能アプリケーション・モジュールを実行し、第1実行可能アプリケーション・モジュールが、少なくとも1つのリモート・サーバを特定する情報を提供する。第1実行可能アプリケーション・モジュールが提供する情報を用いて、ローカル・コンピュータとリモート・サーバとの間において通信を行う。リモート・サーバに、第2アプリケーション・モジュールをローカル・コンピュータに送るように命令する。第2アプリケーション・モジュールを受信したときに、該第2アプリケーション・モジュールをローカル・コンピュータ上の仮想メモリにロードする。仮想メモリから第2アプリケーション・モジュールを実行し、プロンプトをユーザに表示する。
【0009】
インターネット・セキュリティを提供する方法は、少なくとも1つのリモート・サーバへのアクセスを提供するアクセス・アプリケーション・モジュールを含む記憶媒体を提供することを含む。記憶媒体をローカル・コンピュータに入力したことに応答して、アクセス・アプリケーション・モジュールを仮想メモリにロードし、アクセス・アプリケーション・モジュールを実行し、リモート・アクセス・モジュールをリモート・サーバからダウンロードする。リモート・アクセス・モジュールをローカル・コンピュータ上の仮想メモリにロードし、アクセス画面をローカル・コンピュータ上に供給して、データを提供する少なくとも1つのリモート・データ・サーバへのアクセスのためのリモート・ログオン・データを入力するように、ユーザに促す。リモート・ログオン・データを入力する。リモート・ログオン・データが有効である場合、少なくとも1つの追加のアプリケーション・モジュールをリモート・サーバからローカル・コンピュータにダウンロードする。少なくとも1つの追加のアプリケーション・モジュールを仮想メモリにロードし、実行して、データ表示画面およびナビゲーション画面のうち少なくとも1つをユーザに表示する。
【0010】
配布記録媒体は、アプリケーション・モジュールおよびデータを提供する少なくとも1つのリモート・サーバに対する安全なアクセスを提供するためのコンピュータ実行可能コードを含み、配布記録媒体は、第1コンピュータ実行可能アプリケーション・モジュールを含む。第1コンピュータ実行可能アプリケーション・モジュールは、ローカル・コンピュータ上の仮想メモリにロードするコードと、所定のURLにおいて少なくとも1つのリモート・サーバにアクセスするコードと、所定のURLにおける少なくとも1つのリモート・サーバが、第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つをローカル・コンピュータにダウンロードすることを要求するコードと、第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つをローカル・コンピュータ上の仮想メモリにロードするコードとを備えている、第1コンピュータ実行可能アプリケーション・モジュールを含む。
【図面の簡単な説明】
【0011】
以下の詳細な説明を参照し添付図面と関連付けて検討することによって本開示が増々深く理解されていくので、本開示およびそれに関連する多くの利点についての更に完全な評価は容易に得られることになろう。
【図1】図1は、分散したローカル・コンピュータとのメディア相互作用を示す。
【図2】図2は、アプリケーション・モジュールおよびデータ双方に、1つのリモート・サーバからアクセスするローカル・コンピュータを示す。
【図3】図3は、1つのリモート・サーバ(群)からアプリケーション・モジュールにアクセスし、異なるリモート・サーバ(群)からデータにアクセスするリモート・コンピュータを示す。
【図4】図4は、アプリケーション制御サーバにアクセスするローカル・コンピュータを示す。アプリケーション制御サーバは、1つ以上のリモート・サーバ(群)からアプリケーション・モジュールにアクセスし、1つ以上のリモート・サーバ(群)からデータにアクセスするために、ローカル・コンピュータからの接続を導く。
【図5】図5は、単一および多重サーバ仮想ソフトウェア・アプリケーションのためのプロセスを示す。
【図6】図6は、本開示の実施形態による、アプリケーション・サーバ・モデルのためのプロセスを示す。
【図7】図7は、本開示の実施形態による、アプリケーション・サーバ・モデルのためのプロセスを示す。
【図8】図8は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図9】図9は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図10】図10は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図11】図11は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図12】図12は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【発明を実施するための形態】
【0012】
以下の実施形態例は、本開示の主題の理解を補助するために明記するのであって、その後に続く特許請求の範囲を限定することは全く意図しておらず、そのように解釈してはならない。したがって、ある実施形態例について記載する際に明確さのために具体的な用語を用いるが、本開示は、そのように選択した具体的な用語に限定されることを意図しているのではなく、各具体的な要素が、同様に動作するあらゆる技術的同等物を含むことは言うまでもない。
【0013】
本開示の実施形態は、オブジェクト指向プログラミングに基づいており、したがって、種々の実施形態の説明は、論理的開発プロセス、大抵の論理アプリケーション・フローに従い、プロセスが利用可能になる時点でそのプロセスに分岐する。本開示の種々の実施形態の説明は、必ずしも1つのアプリケーションについて記載するのではなく、むしろ少なくとも1つのソフトウェア・アプリケーションにおける実施形態の論理アプリケーションについて記載する。
【0014】
尚、本開示の実施形態は、各組織の個々の必要性に基づいて、様々な種類の組織にも適用可能であることは言うまでもない。本開示は、本開示の実施形態を適用することができる、様々な異なる種類の組織を同一視する。勿論、本開示は、開示する実施形態に限定されるのではない。本開示は、本開示の実施形態を適用することができる範囲の理解を与えるために様々な用途について端的に説明する。
【0015】
本開示の一実施形態によれば、ブラウザに基づくオンライン・サービスの代わりに、仮想ソフトウェア・アプリケーションの使用によって、インターネット・セキュリティを提供する。この実施形態によれば、最初に、何らかの種類の配布媒体上で少なくとも1つの仮想ソフトウェア・アプリケーションをユーザに提供する。利用することができる配布媒体の種類の非限定的な例には、CD−ROM、フラッシュ・ドライブ、メモリ・チップ、フラッシュ・メモリ、あるいは、限定ではないが、磁気的または光学的記録媒体を含む、その他のあらゆる種類の記録媒体が含まれる。
【0016】
ユーザは、配布された媒体をドライブに入れるか、あるいはコンピュータまたはワークステーションのアクセス・ポート・例えば、USBポートに差し込む。ユーザが配布媒体(distributed medium)をコンピュータまたはワークステーションに入れると、ソフトウェア・アプリケーションが仮想メモリ(例えば、RAM)において組み立てられ、自動的にまたはユーザの要求に応じて起動される。次いで、ユーザは、マウス、キーボード等のようなヒューマン・インターフェース・デバイスを利用して、ソフトウェア・アプリケーションと相互作用を行う。
【0017】
本開示の別の実施形態によれば、配布媒体上にあるソフトウェア・アプリケーション・モジュールは、「ログオン」中に供給される追加のセキュリティ・パラメータを用いて、ユーザに利用可能なソフトウェアのセクションを限定することができる。このようにすると、ユーザは、許可されているリモート・サーバにおいて、ソフトウェア・モジュールへのアクセスしか得られない。例えば、産業上の安全性では、会社は異なる許可パラメータを異なる個人グループ毎に供給することができ、各グループは異なるレベルのアクセス・クリアランス(access clearance)を有する。本開示の種々の実施形態によれば、各グループはオンライン情報へのアクセスを得るが、各個人は彼らのレベルのアクセス・クリアランスに関連のあるソフトウェア・モジュールよびデータにしかアクセスできない。例えば、会社が、内部における異なるグループ間、および/または外部のサブコントラクタと機密情報を共有する必要があることを知る場合がある。ユーザが彼らの配布媒体をローカル・コンピュータに挿入すると、ユーザ名およびパスワード、ならびに配布媒体に関連する暗号化コードまたはキーを用いてログオンすることにより、リモート・サーバにアクセスすることができる。本開示の一実施形態によれば、各ユーザが許可されている情報にしかアクセスできないように、ログオン後に、追加レベルのセキュリティ・アクセスを提供してもよい。
【0018】
本開示の種々の実施形態によれば、配布媒体上の暗号化コード即ちキーは、媒体を一人のユーザに割り当てる。このセキュリティ・コードは、様々な長さとすることができ、数値および文字双方を収容することができる。セキュリティ・コード・フォーマットは、設計するアプリケーション、および仮想ソフトウェア・アプリケーションを作成する組織の必要性に基づいて、変化してもよい。セキュリティ・コードは、暗号化してもしなくてもよい。
【0019】
以前に利用していたようなブラウザに基づくオンライン・プロセスの代わりに、配布可能媒体上で供給されるアクセス制御モジュールおよび/またはキーを用いて、許可された個人は、ランダム・アクセス・メモリ(RAM)において仮想ソフトウェア・アプリケーションとして組み立てられたオンライン・プロセスを有することができる。この仮想アプリケーションを用いて、ユーザは次にオンライン・データベースにアクセスし、データを照会、表示、および操作することができる。
【0020】
本開示が用いるアプリケーション・モジュールは、転送するデータの安全性を更に高めるために、暗号化を採用することができる。本開示の実施形態を説明する目的上、特定の暗号システムについて詳細に説明しない。しかしながら、本開示の実施形態を実現するためには、任意の適した種類の暗号システムを利用すればよいことは認められよう。本開示の実施形態によれば、暗号化方法を仮想ソフトウェアに書き込んでもよく、または各個人のアプリケーション要件に基づいて、データ転送プロセス上に積層する(layered over)こともできる。
【0021】
銀行業を参照しながら、本開示の実施形態について説明する。以前のプロセスを利用すると、あらゆるインターネット・ユーザが銀行のウェブサイトを訪問し、有効なユーザ名およびパスワードを入力し、次いで関連する個人の銀行口座へのアクセスを得ることができる。これは、ユーザ名およびパスワードを入力した個人が許可されたユーザであっても、偽ってこの情報へのアクセスを得た何らかの個人であっても、該当する。
【0022】
不正アクセスを回避するために、本開示の一実施形態によれば、銀行は、ログオン・プロセスをそのウェブサイトから除去することができる。銀行は、そのウェブサイトから、他の全てのオンライン処理画面をも除去することができる。本開示のこの実施形態によれば、銀行は、次に、フラッシュ・ドライブのような媒体をその顧客に配布する。
【0023】
銀行利用者(consumer)は、配布された媒体をローカル・コンピュータ上で用いて、オンライン銀行プロセスを起動する。オンライン銀行プロセスの起動プロセスについては、後に以下で説明する。勿論、本開示はいずれの特定の種類の産業にも限定されることはない。
【0024】
例えば、本開示の実施形態は、証券業(株式、債券等)にも容易に適用することができる。現在利用可能なオンライン・システムおよび方法をここでも利用すると、正しいユーザ名、パスワード、およびインターネット接続を有する個人は誰でも、個人の証券口座へのアクセスを得て、取引を行ったり資金を移動する(transfer)ことができる。
【0025】
本開示の実施形態は、証券業に関係する場合、前述の銀行モデルと類似しており、唯一の相違は、ソフトウェア・アプリケーションが金融証券業務処理(transaction)を実行するように設計されていることである。
【0026】
事実上あらゆるオンライン・システムが、ユーザ名およびパスワードだけを知っている不正ユーザによる違反行為を被る虞れがある。本開示の実施形態を利用すれば、このような不正アクセスを最小限にくい止めるか、または根絶することができる。
【0027】
本開示の実施形態によれば、産業安全保障(industrial security)型システムに関係する1つ以上のログオン・プロセスを用い、その一部はユーザ名およびパスワードを利用してもよい。加えて、種々のその他のプロセスも実行してもよい。即ち、この実施形態によれば、ユーザ・ログオンが完了した後、ユーザに許可されているサービスのみをローカル・コンピュータに転送するように、プロセスを提供する。この実施形態によれば、本システムは、仮想ソフトウェアに、ユーザのアカウントと関連のあるソフトウェアだけをダウンロードさせ、RAMセクションにロードさせる。つまり、ソフトウェアは、不正配布またはアクセスから保護されることになる。
【0028】
図1は、本開示の態様を実現するために用いることができる、様々な種類の配布媒体17の例を示す。例えば、配布媒体17は、CD−ROM10、フラッシュ・ドライブ12、14、メモリ・チップ16、フラッシュ・メモリ、あるいは、限定ではないが、磁気的または光学的記録媒体を含む、その他の任意の種類の記録媒体の形態とすればよい。配布媒体上にある情報は、ローカル・コンピュータ18によってアクセスが可能である。ローカル・コンピュータ18は、例えば、デスクトップ・コンピュータまたはラップトップ・パーソナル・コンピュータとすればよく、あるいは他の任意の種類のインターフェース・デバイスであってもよい。インターフェース・デバイスには、限定ではなく、PDA、セルラ・フォン、ゲーム・プラットフォーム、あるいは分散媒体をその多くの形式で読み込む容量を内蔵し、有線またはワイヤレス技術によってインターネットに接続し、人とデバイスとの間およびデバイスとリモート・サーバ(群)との間における相互作用を可能にし、双方向通信が可能な他の任意のデバイスが含まれる。
【0029】
本開示の実施形態は、多数の形態をなすことができ、その一部だけについて本明細書において説明する。以下に説明するモデルの記載は、本開示の実施形態の用途を限定することを意図するのではなく、逆に本開示の柔軟性を示すことを意図している。以下に、本開示の実施形態を実現するために利用することができる形式のシステムについての、端的な全体像を示す。
【0030】
図2に示すように、本開示の一実施形態によれば、配布媒体21をローカル・コンピュータ18の中に入れる。配布媒体21上にあるアプリケーション・モジュールを、ローカル・コンピュータ18内の仮想メモリにロードする。次いで、アプリケーション・モジュールは、1つのリモート・サーバURL20に対してコールを行う。リモート・サーバURL20は、アプリケーション・サーバおよびデータベース・サーバとしての役割を果たす。
【0031】
図3に示すように、本開示の別の実施形態によれば、配布された媒体25をローカル・コンピュータ26に入れる。配布媒体25上にあるアプリケーション・モジュールを、ローカル・コンピュータ26上の仮想メモリに移動させ、実行する。アクティブなインターネット接続を利用して、アプリケーション・モジュールは、アプリケーション・サーバとしての役割を果たすリモート・アプリケーション・サーバURL22をコールする。また、アプリケーション・モジュールは、アクティブなインターネット接続を用いてリモート・データ・サーバURL24にアクセスし、データにアクセスする。2つのサーバ(22、24)は、同じURLの一部としてホストすることができ、あるいは2つの完全に異なるURL上にホストすることもできる。
【0032】
本開示の更に別の実施形態を図4に示す。配布された媒体35をローカル・コンピュータ27に入れる。配布媒体35上にあるアプリケーション・モジュールを、ローカル・コンピュータ27上の仮想メモリに移動し、実行する。アクティブなインターネット接続を利用して、アプリケーション・モジュールは、アプリケーション制御サーバとしての役割を果たすリモート・アプリケーション・サーバURL30にコールする。アプリケーション制御サーバ30は、アプリケーション連携モジュールをローカル・コンピュータ27にダウンロードし、これもローカル・コンピュータ27上の仮想メモリにロードする。実行すると、アプリケーション連携モジュールは、利用者に利用可能な仮想ソフトウェア・アプリケーションのリストを提供する。本開示の一実施形態によれば、利用者が用いたいサービスを選択すると、ローカル・コンピュータ27は、アプリケーション制御サーバ30へのコールを行う。アプリケーション制御サーバ30は、次に、選択されたサービスに適したアプリケーションおよび/またはデータを、1つ以上のサーバ32〜36上で発見する。アプリケーション制御サーバ30は、データ/アプリケーションをサーバ(群)32〜36から読み出し、それをローカル・コンピュータ27にダウンロードする。ローカル・コンピュータ27は、データ/アプリケーションを仮想メモリに入れて、アプリケーションを実行する。この実施形態によるアプリケーション制御サーバを使用する一例をあげると、1つの配布媒体を用いて、複数の銀行における銀行サービス、1つ以上の仲介業務会社における金融サービス、株式取引にアクセスし、薬物(drug)またはサービスに対する請求書(bill)の保険処理(insurance processing)を追跡するときであろう。このアプリケーション・サーバ・モデルは、プロセス毎に独自の配布媒体を必要とするのではなく、利用者が1つの媒体を用いて数個のオンライン・サービスにアクセスすることを可能にする。
【0033】
以上説明した3つの実施形態では、現行のブラウザに基づくシステムを利用すると、セキュリティ・プロセスにおける弱点は、個人、ならびにユーザ名およびパスワードを個人が安全確実に保持できることにある。この分野では、事務所に不在で、データが必要となり、アシスタントにそれを提供するように要求するといった単純な理由で、セキュリティにおける些細な過ちが発生することが多い。このアシスタントを信頼してよいのか。信頼してもよいのであれば、ユーザ名およびパスワードをそのときに言っても、差し支えない。この想定場面はあり得ないように思えるが、頻繁に発生している。また、ユーザはそのユーザ名およびパスワードを書き留めておくことが多く、それを紛失したり盗まれたりした場合、その情報が用いられる可能性がある。
【0034】
暗号、トークン、またはその他のセキュリティ・デバイスを改良して構築しても、ユーザがユーザ名およびパスワードを漏洩することによって、セキュリティを脅かす可能性を排除できない。本開示の実施形態は、現行のインターネット・モデルに内在する弱点を解決するために設計されたのである。
【0035】
本開示の実施形態は、現行のブラウザに基づく配信プロセスからオンライン・プロセスを除去し、こうして無許可のユーザが単にウェブサイトに行くことによって特権情報にアクセスすることを不可能にする。
【0036】
加えて、本開示の一実施形態によれば、各配布媒体には、一意のキーを連続して振ることができ、したがってユーザ名およびパスワードと照合して、許可された個人であるか確かめることができる。このように、これらの実施形態は、組織の別の許可ユーザが、他の許可ユーザのオンライン・プロセスには、彼らの媒体がないと、アクセスすることを防止する。オンライン処理にアクセスすることができる個人は、媒体が割り当てられた人だけである。
【0037】
本開示の実施形態は、ユーザ入力/選択について説明する。例えば、本開示のある種の実施形態は、ユーザ入力または相互作用に基づいて、仮想環境にダウンロードするアプリケーション・モジュールについて説明する。尚、ユーザ入力が必要となるような場合では、ローカル・コンピュータ上で、表示されている関連ボックスにおいてあるボタンをクリックすること、および/または情報を入力することをユーザに催促するのが一般的であることは認められよう。
【0038】
以下に、本開示において想定する様々な種類のシステムの例について、更に詳細に説明する。勿論、特許請求の範囲は、開示する実施形態には限定されない。
図2に戻り、そして図5を参照しながら、本開示の一実施形態による単一サーバ型システムについて説明する。ユーザが配布媒体21をローカル・コンピュータ18に挿入すると、ローカル・コンピュータ18は、配布媒体21上にある実行ファイルを読み取り、それを仮想メモリ(RAM)にロードし、実行ファイルを実行する(ステップS100)。実行ファイルは、オートラン・プロセスを用いて自動的に、またはユーザによる要求に応じて実行することができる。アクティブなインターネット接続が利用可能か否か判断する(ステップS102)。利用可能でない場合、(ステップS104においてNo)、ユーザに通知する(ステップS106)。利用可能な場合(ステップS104においてYes)、ローカル・コンピュータ18はアクティブ・インターネット接続23を通じて、リモート・アプリケーションおよびデータ・サーバ20と接続する。即ち、実行ファイルはローカル・コンピュータ18に、指定されたURLにおいてリモート・サーバ20に接続し、1つ以上の指定されたソフトウェア・アプリケーション・モジュールおよびデータをサーバ20からダウンロードし、データを表示するように命令する(ステップS108)。次いで、アプリケーション・モジュール(群)および/またはデータをローカル・コンピュータ18における仮想メモリ(例えば、RAM)にロードする(ステップS110)。次いで、ユーザの相互作用にも基づいて、アプリケーション・モジュール(群)を実行する(ステップS112)。リモート・サーバ20からダウンロードされ、アプリケーション・モジュールに適したデータも、RAMにロードし、ローカル・コンピュータ18上に表示する。ユーザがローカル・コンピュータ18上に表示されているデータと相互作用を行い、変更を保存する必要がある場合、処理および格納のためにデータをリモート・サーバ20に返送する(ステップS114)。
【0039】
これより、本開示の一実施形態による二重サーバ型システムについて、図3および図6を参照しながら説明する。この実施形態によれば、アプリケーション・サーバ22およびデータ・サーバ24は、別個のシステム上に設けられている。ローカル・コンピュータ26は、データ・サーバ24およびアプリケーション・サーバ22とのアクティブ・インターネット接続23a、23bをそれぞれ有する。接続は、例えば、ワールド・ワイド・ウェブ(WWW)経由とすればよい。この実施形態によれば、ユーザが配布媒体25をローカル・コンピュータ26に挿入すると、ローカル・コンピュータ26は、実行ファイルを配布媒体25から仮想メモリにロードし、オートラン・プロセスを用いて自動的に、またはユーザの要求に応じてのいずれかでこれを実行する(ステップS200)。アクティブ・インターネット接続が利用可能か否か判断する(ステップS202)。利用可能でない場合(ステップS204においてNo)、ユーザに通知する(ステップS206)。接続が利用可能な場合(ステップS204においてYes)実行ファイルは、ローカル・コンピュータ26に、指定されたURLにおいてリモート・アプリケーション・サーバ22に接続し、1つ以上の指定されたソフトウェア・アプリケーション・モジュールをアプリケーション・サーバ22からダウンロードするように命令する(ステップS208)。1つ以上の指定されたソフトウェア・アプリケーション・モジュールを、ローカル・コンピュータ26上の仮想メモリ(例えば、RAM)にロードし(ステップS210)、実行する(ステップS212)。RAMにロードしたアプリケーション・モジュールに基づいて、ローカル・コンピュータ26は1つ以上の機能を実行することができる(ステップS214)。例えば、ユーザ入力に応答して、アプリケーション・モジュールは検証のためにクエリをデータ・サーバ24に送ることを命令したり、あるいはローカル・コンピュータ26上で表示するためにデータをダウンロードすることを、ローカル・コンピュータ26に命令することができる。ダウンロードしたデータを、ローカル・コンピュータ26上の仮想メモリに入れる。また、アプリケーション・モジュールは、ローカル・コンピュータ26に追加のアプリケーション・モジュールをアプリケーション・サーバ22からダウンロードするように命令することもできる。追加でダウンロードしたアプリケーション・モジュールのいずれも、ローカル・コンピュータ26内の仮想メモリにロードし、走らせる。この場合、ローカル・コンピュータ26においてユーザがデータを操作した場合、または新たなデータを入力した場合、操作されたデータおよび/または新たなデータは、処理および格納のために、データ・サーバ24に送られる。
【0040】
これより、図4および図7を参照しながら、本開示の一実施形態による多重アプリケーション配布媒体型システムについて説明する。この実施形態によれば、データ・サーバ32、アプリケーション・サーバ34、およびアプリケーション/データ・サーバ36は別個のシステム上に設けられている。ローカル・コンピュータ27は、アプリケーション制御サーバ30とのアクティブ・インターネット接続23を提供することができ、アプリケーション制御サーバ30自体も、図示のように、サーバ32〜36とのアクティブ・インターネット接続23b〜23dを提供することができる。アクティブ・インターネット接続は、例えば、ワールド・ワイド・ウェブ(WWW)経由とすればよい。この実施形態によれば、ユーザが配布媒体35をローカル・コンピュータ27に挿入すると、ローカル・コンピュータ27は、実行ファイルを配布媒体35から仮想メモリにロードして、オートラン・プロセスを用いて自動的に、またはユーザの要求に応答してのいずれかでそれを実行する(ステップS300)。アクティブ・インターネット接続が利用可能か否か判断する(ステップS302)。利用可能でない場合(ステップS304においてNo)、ユーザに通知する(ステップS306)。接続が利用可能な場合(ステップS304においてYes)、実行ファイルは、ローカル・コンピュータ27に、指定されたURLにおいてリモート・アプリケーション制御サーバ30に接続し(ステップS308)、1つ以上の指定されたソフトウェア・アプリケーション・モジュールをアプリケーション制御サーバ30からダウンロードするように命令する(ステップS310)。例えば、アプリケーション制御サーバ30は、リモート・ログオン画面モジュールをローカル・コンピュータ27にダウンロードすることができる。ローカル・コンピュータ27は、リモート・ログオン画面モジュールを仮想メモリに入れて、自動的にまたはユーザの要求に応答してのいずれかで、モジュールを実行する(ステップS312)。
【0041】
ローカル・コンピュータ27のユーザは、表示されたリモート・ログオン画面を通じて、アプリケーション制御サーバ30へのアクセスのために、リモートユーザIDおよびパスワードを供給するように促される(ステップS314)。ユーザIDおよびパスワードをアプリケーション制御サーバ30にアップロードする(ステップS316)。リモート・ログオン・データが無効である場合(ステップS318においてNo)、アプリケーション制御サーバ30はローカル・コンピュータ27に指示をダウンロードし、ローカル・コンピュータ27上にエラー・メッセージを表示する(ステップS320)。リモート・ログオン・データが有効である場合(ステップS318においてYes)、アプリケーション制御サーバ30は、例えば、メイン・メニューのようなアプリケーションと共に指示をローカル・コンピュータ27にダウンロードする。メイン・メニューは、アプリケーション制御サーバ30からローカル・コンピュータ27内の仮想メモリ(例えば、RAM)にダウンロードする(ステップS322)。次いで、システムは更に次のユーザ相互作用を待つ(ステップS324)。あるいはまたは加えて、アプリケーション制御サーバ30は、アプリケーション表示モジュールを返してもよい。アプリケーション表示モジュールは、ローカル・コンピュータ27内の仮想環境(例えば、RAM)に、ローカル・コンピュータ27上に表示するデータと共にロードされる。例えば、表示するデータは、配布媒体35と関連のあるアカウントから成る場合もある。このアプリケーション表示モジュールは、ローカル・コンピュータ27のユーザに、アクセスしたいアカウントを選択させ、次いで、選択されたアカウントと関連のあるサーバ(群)(例えば、データ・サーバ(群)32、アプリケーション・サーバ(群)34、および/またはアプリケーションおよびデータ・サーバ36)と接続するように、アプリケーション制御サーバに指令する。
【0042】
先に記したように、リモート・ログオンを試行する場合、ユーザは彼らのユーザ名およびパスワードを入力し、次いでデータを転送するボタンをクリックする。本開示の一実施形態によれば、配布媒体を一意に特定するIDを暗号化して、ログオン・データと共に送る。アプリケーションが、ローカル・コンピュータ18、26、または27がインターネットとの接続を失ったことを発見した場合、エラー・メッセージを表示し、それ以外の場合、ユーザ名、パスワード、および暗号化したIDをリモート・サーバ(例えば、アプリケーションおよびデータ・サーバ20、データ・サーバ24、アプリケーション制御サーバ30、あるいはデータおよびすらまたはアプリケーション・サーバ32〜36の内1つ以上)に送る。
【0043】
次いで、リモート・サーバは、受け渡した情報全てがデータベースにおけるエントリと一致することを検証する。これは、受け入れられるプログラミング規範の任意のものを用いて遂行する。例えば、これは、ローカル・コンピュータ18、26、または27から転送したID、ユーザ名、およびパスワードを用いて、ODBC準拠データベースに照会することによって、リモート・サーバにおいて実行することができる。クエリからの記録カウントがゼロよりも大きい場合、情報は一致であり、アクセスが付与される。クエリからの記録カウントが0に等しい場合、ローカル・コンピュータから転送されたデータは一致とならない。
【0044】
本開示の一実施形態によれば、サーバ20(図2)またはサーバ22、24(図3)は、銀行のような組織によって設けることができる。この場合、ログオン後ローカル・コンピュータにダウンロードされる最初の画面は、通常、メイン・メニューである。メイン・メニューは、銀行のオンライン処理アプリケーションの一部である。一旦メイン・メニューを表示したなら、ローカル・コンピュータはユーザの相互作用を待つ。
【0045】
開示する実施形態の説明を先に進めると、コード機能性の具体的詳細に入ることのないプロセスに関して説明する。当技術分野に精通したプログラマであれば、用いられるプロセスや実行される機能を理解することができ、更に本開示に関してプロセスや機能を実現することができるであろう。
【0046】
更に、いずれの個々のアプリケーションの具体的詳細も、記載する本開示の実施形態には重要ではないことも認められよう。即ち、本開示の実施形態を実現するために用いられる具体的なコードは重要ではない。
【0047】
図8を参照して説明する本開示の一実施形態は、オンライン銀行モデルを利用する。勿論、この実施形態は、本開示を銀行に限定することを意図するのではない。逆に、銀行モデルを用いるのは、本開示の実施形態が利用するプロセスを、どのようにしてこれらの種類のシステムに実装し用いることができるか説明するためである。
【0048】
図8を参照すると、ユーザは配布媒体21、25、または35(図2〜図4も参照)をローカル・コンピュータ18、26、または27に挿入し、媒体21、25、または35からの実行可能アプリケーションを、ローカル・コンピュータ18、26、または27上の仮想メモリにロードする。ユーザが入力データをローカルに検証することに成功し(例えば、長さが6から20文字の間のユーザ名、および長さが8から15文字の間のパスワード)(ステップS400〜S406)、前述のように遠隔地においてログオンに成功した(ステップS408〜S410)後、そしてリモート・サーバが、受け渡された情報全てがデータベースにおけるエントリに一致したことを検証した(ステップS408においてYes)後、リモート・アプリケーション・サーバはアカウント・メニューと共にデータをローカル・コンピュータに返送する(ステップS412)。次いで、ローカル・コンピュータは、ユーザがアクセスするアカウントを選択するのを待つ(ステップS414)。ユーザがアカウントを選択した後、選択したアカウントに対するログオン画面をロードする(ステップS416)。これを遂行するには、アカウントのリモート・サーバ(群)からその画面をコールし、ログオン画面モジュールをアカウントのリモート・サーバ(群)からローカル・コンピュータに転送し、それを仮想メモリに入れ、次いでローカル・コンピュータ上にログオン画面を表示する。次いで、アプリケーションは、ユーザがデータを入力しログオンを開始するのを待つ(ステップS418)。次いで、アカウントに対して同様のログオン・プロセスを実行する。ユーザがアカウントにログオンするのに成功した後、アカウントに対するメイン・メニューをダウンロードし、ローカル・コンピュータ上に表示することができる。
【0049】
図9を参照すると、ユーザがログオンに成功し、メイン・メニューがリモート・アプリケーション・サーバ(群)からローカル・コンピュータに表示のために転送された後、ローカル・コンピュータはユーザがプロセスを選択するのを待つ。例えば、本開示の一実施形態によれば、ユーザの処理要求に素早く応答するために、プロセスを小さなプロセス・モジュールに細分する。プロセス・モジュールは、1つの画面またはプロセス全体を構成することができる。図9に表示するような仮想ソフトウェア・アプリケーションを用いると、アプリケーションは、ユーザが選択するために、3つの主要な処理機能を有する。銀行は、本開示の実施形態を採用すれば、保険情報および処理または株式業務処理等のような機能を、減少または増大させて提供することを選択することができる。仮想ソフトウェア・アプリケーションは、プロセスを採用しているクライアントの想像によって限定されるだけである。
【0050】
本開示のこの実施形態にしたがって採用する3つの主要プロセスは、ユーザ口座情報440、資金移動442、およびオンライン請求書支払い446である。これらの部門の各々は、1つのプロセス・モジュールまたは複数のプロセス・モジュールで構築することができる。一旦ユーザが機能と、当該機能に関係するプロセス・モジュール(群)を選択したなら、プロセス・モジュール(群)をリモート・サーバ(群)からコールし、ローカル・コンピュータにダウンロードし、仮想環境(例えば、ローカル・コンピュータ18のRAM)にロードし、実行する。
【0051】
プロセス・モジュール(群)をローカル・コンピュータにダウンロードし、仮想環境に一旦ロードする。その後この機能に入力する場合はいつでも、ユーザの最初の要求のときに、仮想ソフトウェア・アプリケーションに追加されたプロセス・モジュールを用いる。
【0052】
図10Aおよび図10Bを参照して、ユーザは、図9において特定した口座情報440を選択したと仮定する。この場合、リモート・アプリケーション・サーバ(群)をコールし(ステップS500)、口座リスト・モジュールをダウンロードし、仮想環境(例えば、ローカル・コンピュータ18におけるRAM)にロードする。口座リスト・モジュールのロードが完了したなら(ステップS502)、リモート・データ・サーバ(群)をコールし、リモート・データ・サーバにおいて照会を実行し、口座のリストを口座リスト・モジュールにダウンロードして表示する(ステップS504)。本開示のこの実施形態によれば、口座リスト・モジュールは、ユーザに利用可能な口座のリストをその口座残高、キーおよび外部キー、ならびに表示してもしなくてもよいその他の任意の関連データと共に表示する画面のみから成る。
【0053】
次いで、ユーザは確認する口座を選択し(ステップS506)、仮想ソフトウェア・アプリケーションはリモート・サーバをコールし(ステップS506)、口座詳細モジュールをダウンロードして、ローカル・コンピュータ18内の仮想メモリにロードする(ステップS508)。次いで、口座詳細モジュールはリモート・データ・サーバ(群)からデータを呼び出し、リモート・データ・サーバにおいてクエリを実行して、関連データを抽出する(ステップS512)。次いで、このデータをローカル・コンピュータに転送し、仮想ソフトウェア・アプリケーションにロードし、表示する(ステップS514)。
【0054】
本開示の一実施形態によれば、プロセスは、以前に表示した口座を確認するためまたは新たな口座を確認するために、このセクション(例えば、口座情報440)において何らかの後続入力があれば、それに合わせて変化する。即ち、この実施形態によれば、アプリケーション・モジュールのためにリモート・アプリケーション・サーバにコールすることは、もはやない。何故なら、これらは、ユーザがアプリケーションを終了するまで、ローカル・コンピュータ18のメモリに残留するからである。
【0055】
口座情報セクションへのその後の入力プロセスでは、口座リスト・モジュールを表示する(ステップS516)。ユーザは、確認のために口座を選択し(ステップS518)、口座詳細モジュールが表示される(ステップS520)。次いで、口座詳細モジュールは、リモート・データ・サーバへのコールを行い(ステップS522)、リモート・データ・サーバにおいて照会を実行し、口座のリストを口座リスト・モジュールにダウンロードして表示する(ステップS524)。
【0056】
これより図11Aおよび図11Bを参照し、図9において特定した資金移動422をユーザが選択したと仮定する。リモート・アプリケーション・サーバ(群)に対してコールを行い(ステップS600)、資金移動モジュールをダウンロードし、ローカル・コンピュータ18内の仮想環境(例えば、RAM)にロードする(ステップS602)。資金移動モジュールのロードが完了すると、リモート・データ・サーバ(群)に対してコールを行い、ユーザの納入業者リストを資金移動モジュールにダウンロードして表示する(ステップS604)。本開示のこの実施形態によれば、移動モジュールは、全体的なアプリケーションのこの部分についての表示および全ての処理セクションを含む。全ての資金移動動作は、このモジュールによって完了し、データ・サーバ(群)へのコールだけが行われ、データを送出および受信する(ステップS606)。資金移動モジュールを仮想環境にロードし、初期データ転送が完了した後(ステップS606)、アプリケーションはユーザの相互作用を待つ。ユーザは、画面上に表示された対応するボタンをクリックすることによって、資金を移動する元となる口座、資金を移動する先の口座、および移動する金額を選択することができる(ステップS608)。リセット・ボタン上でクリックすることにより、リセット選択肢(ステップS610)を実行する。このボタンは、画面上にある入力フィールドの各々に無またはゼロ値を入力する機能を開始し(ステップS612)、次いでアプリケーションはユーザの相互作用を待つ。
【0057】
ユーザは、口座および移動する金額を選択するか、またはメイン・メニューに戻ることができる(図9)。ユーザが口座および移動する金額を選択し、資金移動ボタン上でクリックすると(ステップS614)、コールが実行され、ユーザ・データをリモート・データ・サーバに処理のために送る(ステップS616)。リモート・データ・サーバにおいて、データを受信し、データを照会し、一方の口座から他方へ資金を移動する。移動は、即時に行うことができ、または銀行の次のバッチ・プロセスにおける処理に合わせて予定を立てることもできる。処理を完了した後、処理結果をローカル・コンピュータに返送し、仮想ソフトウェア・アプリケーションにロードし、画面上に表示する(ステップS618)。次いで、ユーザはサインイン・メニューに戻るか、または支払い画面に戻ることができる。
【0058】
このセッションの間に、その後このアプリケーションのセクション(例えば、資金移動442)に入力が行われたときはいつでも、資金移動モジュールを表示し(ステップS620)、選択口座入力データ画面において、口座情報を入力する。ステップS624〜S632は、対応するステップS610〜S618と同様であり、簡潔さのために、詳細には説明しない。
【0059】
図12を参照し、図9において特定したオンライン請求書支払い(466)をユーザが選択したと仮定する。リモート・アプリケーション・サーバ(群)に対してコールを行い(ステップS700)、オンライン請求書支払いモジュールをダウンロードし、ローカル・コンピュータ内の仮想環境にロードする(ステップS702)。オンライン請求書支払いモジュールのロードを完了すると、リモート・データ・サーバ(群)に対してコールを行い、ユーザの納入業者リストをオンライン請求書支払いモジュールにダウンロードして、表示する(ステップS704)。本開示のこの実施形態によれば、オンライン請求書支払いモジュールは、アプリケーション全体のこの部分についての表示および全ての処理セクションを含む。オンライン請求書支払い動作の全ては、このモジュールによって完了し、リモート・データ・サーバ(群)へのコールだけが行われ、データを送出および受信する。
【0060】
オンライン請求書支払いモジュールを仮想環境にロードし、初期データ転送が完了した後、アプリケーションはユーザの相互作用を待つ。ユーザは、納入業者を選択し、支払い金額を入力すること、および/または新たな納入業者を追加することができる。
【0061】
支払いを行う際、ユーザは納入業者を選択し(ステップS706)、支払い金額、支払いを行う日付、および支払いの頻度(frequency)を入力する(ステップS708)ことができる。次いで、ユーザはプロセス支払いボタン上でクリックし、リモート・データ・サーバに対するコールを行って、支払い情報を処理のために送る(ステップS710)。
【0062】
データ・サーバにおいて、データを受信する。データを照会し、支払いを追加し、データベースにおいてあらゆる追加の支払いプロセスを実行する(例えば、支払いを処理する予定を組む)。処理が完了した後、処理結果をローカル・コンピュータに返送し、仮想ソフトウェア・アプリケーションにロードし、画面上に表示する。次いで、ユーザはメイン・メニューに戻るか、または支払い画面に戻ることができる。
【0063】
ユーザが支払いのために新たな納入業者を追加する必要がある場合、ユーザは、画面上に表示されている「新納入業者」ボタン上でクリックすれば、新納入業者画面が表示される(ステップS712)。ユーザは、名称、住所、および口座番号というような、納入業者に関する情報を入力し(ステップS714)、支払い金額を入力する(ステップS716)。次いで、ユーザは納入業者追加ボタンをクリックし、リモート・データ・サーバに対してコールを行い、納入業者情報を送る(ステップS718)。
【0064】
リモート・データ・サーバにおいて、データを受信し、検証し、エラー・チェックを行い、データベースに追加するかまたは拒絶する。リモート・データ・サーバにおいてデータ処理の結果を完成し、このモジュールの初期画面上に表示するために、データをローカル・コンピュータに返送し、ユーザの相互作用を待つ。
【0065】
このセッションの間に、その後このアプリケーションのセクションに入力が行われたときはいつでも、オンライン請求書支払いモジュールを初期画面に表示する(ステップS720)。次いで、後続の処理は全て、前述の最初の入力時と同一である。即ち、ステップS722〜S732はステップS706〜S718と同様であり、簡潔さのために、説明しない。
【0066】
高レベルのセキュリティに備えるために、ユーザがシステムからログ・アウトするとき、またはそれ以外でセッションから離れるとき(例えば、ローカル・コンピュータを停止する)、本開示の実施形態が利用した仮想環境を格納していたエリアに、全てゼロ、全て1、ランダムなデータ等を上書きすることによって、ローカル・コンピュータ18内のRAMを消去することができる。このような高レベルのセキュリティが必要でない場合、RAMは、ローカル・コンピュータ上における他のアプリケーションが用いるために、単に解放すればよい。
【0067】
Adobe社のFlash開発ツールのような製品を、本開示の実施形態を実現するための開発プラットフォームとして用いると、インターネット上のURLが、ローカル・コンピュータの記憶コンポーネントの延長であるかのように、動作させることが可能となる。
【0068】
本開示の一実施形態によれば、配布モジュール上にある実行モジュールを作成し仮想環境にロードするように用意されている。環境が作成されると直ぐに、実行モジュールはコールを行い、最初の動作モジュールを仮想環境にロードする。
【0069】
本開示の態様による動作モジュールは、コール、ロード・コマンドによって、外部モジュールまたはその他の動作モジュールから仮想環境にロードすることができる任意のアプリケーション、またはアプリケーションの一部である。動作モジュールは、他の動作モジュールをコールすることによってメニューとして、または情報を求めてデータ・サーバに対するコールを行う機能アプリケーションとして、あるいは双方の組み合わせとして実行することができる。
【0070】
ローカル・コンピュータ上では、仮想環境において動作するアプリケーションは、転送するデータを暗号化することもできる。次いで、アプリケーションは、暗号化したデータを、データ・サーバ(群)を特定するURLに送る。
【0071】
データ・サーバ上における受信プロセスは、ウェブ・サービス・コネクタ、または.cfmページのような、インターネット上のページとすることができ、.cfmはColdfusionページの拡張子である。本開示のこの実施形態では、サーバに基づく処理にColdfusionを選択した。何故なら、これは、そのままでFlashに適応し、本開示の実施形態を作成するために用いた開発ツールであるからである。Flashは、.php、.asp、.net等を含む多数のインターネット・アプリケーション・プロトコルと相互作用することができる。
【0072】
データ・サーバに対するコールは、以下の機能のいずれでも、または全てを含むことができる。
1.アプリケーションが送ったデータを解読する。
【0073】
2.ODBC準拠データベースに対して照会を行う。照会は、データの抽出、データの追加、またはデータの編集を含むことができる。
3.データの追加処理を実行する。
【0074】
4.得られたデータを暗号化する。
5.ローカル・コンピュータ上の仮想環境内にあるアプリケーションにデータを返送する。
【0075】
次いで、ローカル・コンピュータ上にある仮想ソフトウェア・アプリケーションはデータを解読し、結果をユーザに表示する。
本開示の実施形態を実現するには、Adobe社のFlashソフトウェアを利用することができる。Adobe Flashソフトウェアは、ディジタル、ウェブ、および移動体プラットフォームに合わせて豊富なインタラクティブ・コンテンツを作成するために用いられるオーサリング環境である。Flash は、当初アニメーション・ツールとして設計された。従前からの漫画を映画化するのと同じように、Flashは、互いに重ね合わせたレイヤを有するように設計されており、レイヤの全てを通じたビューが完全なビューを呈示する。アニメーション化した漫画の場合、基本レイヤは何もない空色の画面とすることができる。次のレイヤは、その上の白い雲を有することができる。基準レベル上に重ねると、白い雲が空に示される。次のレベルは、山とすることができ、これらが青い背景の底面(bottom)を遮るので、3つのレイヤを通して見ると、青い空および白い雲がある山の場面が得られる。後続の各レイヤは、ムービーに新たな要素を追加し、これらのエレメントは、その下にあるものを遮ることになる。
【0076】
また、Flashは、アプリケーションの設計および作業にも同様に用いることができる。モジュールのレイヤを互いの上に重ね、モジュールを新たなレイヤ上に追加する限り、他のモジュールの全ては表示のために利用可能である。これらのレイヤに対する付番方式は、基準レイヤの0から始まり、数千ものレイヤを基準レイヤ上に重ねることができ、他のいずれのモジュールも除去する必要はない。既にモジュールを収容しているレイヤにモジュールをロードする場合、アプリケーションにおいて新たなモジュールが古いモジュールと入れ代わる。
【0077】
仮想ソフトウェアの開発では、0は基準レイヤ、または「起動」モジュールをロードするレイヤである。次いで、後続の各モジュールをこのレイヤの上または下に積層する。レイヤをロードするには、順次法(sequential methodology)を用いる必要はない。しかしながら、2つのモジュールが同じレイヤを共有することはできない。全てのモジュールの配置を追跡し続けることは重要である。何故なら、終了するときには、全てのレイヤを「アンロード」しなければならないからである。即ち、レイヤをアンロードする場合、モジュール内に格納または表示されている全てのデータもFlashから除去する。これは、複数のアプリケーションにアクセスを提供する媒体にとっては重要となる。即ち、セキュリティを向上するためには、ユーザは、1つのアプリケーションからのデータが背景内で浮遊することや、異なるアプリケーションに利用可能になることは望まない。
【0078】
本開示の一実施形態によれば、Flashを用いてアプリケーションを構築する場合、基準レベル即ち0レベルには「起動」モジュールを配置し、レベル10は「ログオン」モジュールを収容する。これら2つのモジュールを標準化することによって、アプリケーションが用いるデータへのアクセスを効果的に制御することができる。
【0079】
以下に、本開示の種々の態様を実現する方法を説明する。この説明は、本開示の開発プロセスおよび機能性を理解するのに役立つ。勿論、本明細書に記載する方法は、仮想ソフトウェアを開発するために利用することができる方法だけでなく、請求項または請求項の範囲を限定することを意図するのではないことは認められよう。この説明は、Adobe Flashを用いた開発に特定的であるが、Flash内部においてであっても、これがアプリケーションを開発する唯一の方法ではない。いずれのアプリケーションの開発にも微妙な差異があり、そのためにプロセスを異なる経路に導く可能性がある。したがって、この説明は、厳格な規則の集合ではなく、開発に対する指針と見なすこととする。
【0080】
仮想ソフトウェア・アプリケーション環境を作成するプロセスは、種々の方法で実現することができる。現在ブラウザ・ウィンドウ内で走るソフトウェア・アプリケーションの殆どいずれでも、仮想ソフトウェア環境において走るように変換することができる。本開示の一実施形態による仮想ソフトウェア環境の2つの突出した特徴は、キー認識、およびログオン画面のロードである。これら2つのステップがアクセスを付与し、データを管理する。データ管理の問題は、1つの配布媒体が複数の組織にアクセスを付与するために用いられると、特に重要となる可能性がある。
【0081】
セキュリティ強化のために、種々のシステムを用いることができる。例えば、本開示の実施形態は、ウィンドウス・クリプトAPI(windows crypto API)を用いた標準的なSSLを用いることができる。更に高いレベルのセキュリティには、媒体上における暗号化チップ技術と合わせて、実施形態を実現することができる。採用するセキュリティのレベルは、ユーザの個々の必要性に応じて変更することができる。このように、各アプリケーションは、ユーザの使用に合わせて個別設計することができる。
【0082】
キー認識は、本開示の種々の態様によるセキュリティ・プロセスの重要な部分とすることができる。キー認識は、媒体(例えば、スマート・カード)に特定の組織のアプリケーションにアクセスさせ、キーが認識されない場合、媒体を完全に遮断する。組織は、それ自体のキー・データベースを維持することができ、あるいはキー・データベースを外部サービスによって制御することもできる。外部サービスにキー・データベースを制御させることの便益は、利用者がキーを複数の口座に対して相互引用できることである。例えば、利用者が、その金融組織、健康保険提供業者、年金計画および投資管理サービス等のような複数のソースから媒体を受信する場合がある。外部サービスは、相互引用プロセスを提供することができるので、これらのキーの内任意のものが利用者の口座の全てへのアクセスを提供することができる。これらの配布媒体キーのいずれかを紛失した場合、そのキーをディスエーブルすることができるが、他のキーはいずれも、相互引用されている他の口座の各々へのアクセスを提供し続ける。
【0083】
本開示の態様は、フラッシュ・ドライブを配布媒体として用いる場合を参照しながら説明する。勿論、フラッシュ・ドライブの使用は非限定的であり、本開示の態様は、他の種類の配布媒体を利用しても実用化することができることは認められよう。
【0084】
以下に、本開示の種々の態様を実現するために用いることができるプロセスを実行するために用いられるアプリケーションまたはモジュールの一部について説明する。
本開示の一実施形態によれば、「起動」アプリケーションを配布媒体内に設ける。キー認識は、配布媒体内に配布される「起動」アプリケーションにおいて完了する。「起動」アプリケーションは、数個の機能を実行し、これらの機能には、アプリケーションが動作する環境を作成し、URLをキー・データベースおよび「ログオン」モジュールに供給し、WEBサービス・コネクタを用いてまたは標準的なURLへのコールによってデータベースに接続し、サーバ・レベルにおいて実行されるキー妥当性判断を検証し、「ログオン」モジュールをロードすることを含む。
【0085】
媒体、およびこの媒体上で提供される「起動」アプリケーションは、殆ど値のデータを収容しない。しかしながら、媒体を紛失したりまたは盗まれた場合でも、媒体にリバース・エンジニアリングやディコンパイルがかけられる現実的な公算は殆どない。キーには、暗号化チップを通じて、これらのチップを市場に現在供給している第三者が提供する、チップに関するセキュリティを設けることができる。理論的には、暗号化チップは、キー番号を露出する時点で、文字どおり1つのレイヤを磨く(sand down)ことができるが、このプロセスは精巧であり、精巧な電子機器および技法を必要とする。いずれにしろ、暗号化チップが損なわれるという、可能性が低い状況においても、唯一の露出は、1つの媒体およびそれに関連があるアカウントに対してだけである。本開示の態様によれば、媒体を紛失したと報告された場合、サーバ上でキーにインアクティブの印を付けることができ、損なわれたキーを役に立たなくすることができる。本開示の一実施形態によれば、キー照会に対するインアクティブな応答が、暗号化チップを自己破壊させることもできる。
【0086】
何らかの理由で、「起動」アプリケーション自体が損なわれた場合、ハッカーに入手可能なデータは、キー・データベースのURL、および「ログオン」モジュールをロードするために用いられるURLだけである。クライアントのデータおよびアプリケーションの位置は、損なわれない。これは、「ログオン」モジュールの設計によって保証される。「ログオン」モジュールは、残りのアプリケーション・モジュールおよびデータベース(群)のURLを収容する。
【0087】
先に記したように、キーはアクティブまたは非アクティブのいずれかである。望まれるセキュリティのレベルに応じて、検証中にキーがアクティブでないと判断された場合、媒体上のチップおよび関連する回路は、チップに「自己破裂」させることができるように、および/またはキーがもはや有効でないことを述べるメッセージを提示するように設計することができる。チップが破壊された媒体には、キーを再度検証する理由は全くない。相互参照データベースは、そのキーを除去するように修正することができる。ある者が再度配布媒体を使用しようとして、「起動」アプリケーションが再度そのキーのチップからの読み取りを検査した場合、データベースに対してコールすることなく、キーがアクティブでないことを述べるメッセージを表示することができる。
【0088】
キーがアクティブな場合、キー検証に成功した後、「起動」アプリケーションは「ログオン」モジュールをロードし、全ての制御を「ログオン」モジュールに移管する。本開示の一実施形態によれば、これは、「起動」アプリケーションにおいて最後に実行する機能を、「ログオン」モジュールのロードにすることによって、行うことができる。
【0089】
「ログオン」モジュールは、本開示の種々の実施形態が利用する仮想ソフトウェアの種々の態様にとって、突出した特徴である。「ログオン」モジュールは、キーを有する配布媒体の保持者が許可されたユーザであることを更に検証するプロセスを提供する。ログオン中に用いられたユーザ名およびパスワードは、あらゆるオンライン・アプリケーションと同様に機能するが、追加のデータを1つ、即ち、暗号化キーを転送する。リモート・サーバ側では、リモート・サーバが、ユーザ名、パスワード、およびキーの組み合わせが正しいことを検証する。これら3つのフィールドの組み合わせのいずれかが正しくない場合、プロセスは「無効ユーザ」メッセージを、ローカル・コンピュータにおける「ログオン」モジュールに返送し、ユーザに表示する。これによって、キーを保持している人が真の所有者であること、または少なくとも真の所有者のログオン情報を彼らのキーと共に有することを保証する。
【0090】
組織は、ログオン・プロセスにおけるアクセス制御のために、追加のパラメータ・チェックを追加することができる。ここで望むことは、ユーザの許可の範囲に該当しないソフトウェア全体のセクションへのユーザ・アクアセスを排除することである。このレベルでパラメータ・チェックを実行することによって、クライアントはモジュールをダウンロードしてセキュリティを高める必要性を解消することができる。このレベルのセキュリティの一例に、車両を製造する計画および概要(schematics)へのアクセスを提供する自動車会社(例えば、組織)がある。この組織は、データへのアクセスをサブコントラクタに提供したいが、サブコントラクタには、自動車全体ではなく、彼らの仕事を完成させるために必要なデータにアクセスするだけにして欲しい。各サブコントラクタに利用可能なデータ・アクセスを制限するように、パラメータを設定することができる。
【0091】
キーが有効であり、ログオン情報が正しいと仮定すると、アプリケーションは次の論理モジュールをロードする。本開示の一実施形態によれば、次にロードするモジュールは「制御」モジュールである。この実施形態によれば、制御モジュールは、ボタン/リンクの1群を、利用可能なプロセスに表示し、および/または追加の表示情報を提供することもできる。
【0092】
本開示の一実施形態によれば、モジュールから1つを選択し、これを例外なくデータのための保管場所として常に用いる。例えば、この実施形態によれば、「ログオン」モジュールは、常にデータの保管場所として用いられる。データを配置し保持するプロセスは、モジュール固有である。即ち、モジュールがロードされている限り、データは、現在アプリケーションにロードされている他のいずれのモジュールにも利用可能である。「ログオン」モジュールをアンロードすると、全てのデータがメモリから一掃され、アプリケーションの残りの部分にも、更に後続のいずれのアプリケーションにももはや利用可能ではなくなる。
【0093】
本開示の一実施形態によれば、「ログオン」モジュールをアンロードすることによるデータのメモリからの一掃により、表示されているデータおよび処理のために用いられるデータの双方全てに対するアクセスが除去される。別の実施形態によれば、「ログオン」モジュールをアンロードすると、他のアプリケーション・モジュールの表示フィールドに格納されているデータを除いて、表示されているデータおよび処理のために用いられるデータの全てに対するアクセスが除去される。本開示の一実施形態によれば、「制御」モジュールに「終了機能」を設ける。データがロードされる毎に、エントリをこの機能に書き込み、そのレイヤをアンロードする。終了機能を実行すると、データを収容している各レイヤをアンロードし、これらのモジュールにおいて表示されているデータも全てアンロードする。本システムは、アプリケーションのレベル毎にモジュール・アンロードを実行する。未実装レベル(unpopulated level)をアンロードするコマンドは、無視される。
【0094】
以下の説明は、銀行組織の要件の一例を実現する本開示の一実施形態に該当する。
本開示の一実施形態によれば、「制御」モジュールは、ログオンが完了した後にロードされる最初のモジュールである。「制御」モジュールは、画面の左片に沿ってボタンを表示し、各ボタンは、アプリケーションまたは機能のモジュールに対応する。これらのボタンは、アプリケーションの他のモジュールと相互作用を行う。これらのボタンの1つをクリックすると、モジュールをロードする(未だロードされていない場合)か、またはモジュールを表示する(既にロードされている場合)。
【0095】
一実施形態によれば、「アカウント」モジュールが、制御モジュールの直後にロードされる次のモジュールであり、ユーザの相互作用なしにロードすることができる。「アカウント」モジュールは、アカウント画面の上辺にわたってタブを表示する。各タブは、「制御」モジュールにおけるボタンのように機能する。即ち、タブを選択すると、モジュールがロードされる(未だロードされていない場合)か、または既にロードされている場合、モジュールが表示される。現在選択されているタブは、他のタブとは異なる色になる。
【0096】
「アカウント情報」モジュールは、次にロードされるモジュールであり、ユーザの相互作用なしにロードすることができる。このモジュールは、この組織を通じて利用可能な口座のリストを表示する。例えば、組織が銀行のような金融組織である場合、その銀行でのユーザの口座リストが表示される。リストには、ユーザ・ログオンが成功した後に照会されログオン・モジュールにロードされたデータが入れられる。ユーザがある口座上でクリックすると、選択されたアカウントキーをサーバに送る機能がコールされ、次いでサーバはクエリを処理して、ある日付の範囲内でキーに関係するアカウントの詳細を全て選択する。次いで、結果をアプリケーションに戻し、「ログオン」モジュールに格納する。結果が戻されると、アプリケーションは「アカウント情報」を隠し、「アカウント詳細」モジュールをロードする、即ち、出現させ、「アカウント詳細」モジュールに表示するために、クエリからの結果をロードする。
【0097】
「口座詳細」モジュールは、ユーザの要求に応じてロードされる。ユーザが「口座情報」モジュールにおいてある口座上でクリックすると、「ログオン」モジュールにおける機能が実行されて、銀行データベースに、当該口座に関係する業務処理のリストを照会する。口座キー変数を「ログオン」モジュール機能に受け渡し、照会すべき口座を特定する。次いで、「ログオン」モジュールは照会プロセスを走らせ、サーバから結果が返送されると、口座詳細モジュールをロードまたは表示し、照会の結果を表示する。このモジュールでは、表示は、スクロール・バーに添付するテキスト・ボックスである。このボックスは、データが全て表示されることを確保するように設定されたタブを有し、照会結果は、一度に1行ずつロードされる。本開示の一実施形態によれば、ボタンを表示することができ、これをクリックしたときに、業務処理に関係するチェック画像が格納されている場合、チェックが表示される。
【0098】
「口座」または「制御」モジュールにおいて「資金移動」ボタン上でクリックしたことの結果、「移動」モジュールをロードまたは表示する。このモジュールは、2つのドロップ・ダウン、コンボ、ボックスを有し、これらには、利用者の口座およびその残高のリストが、選択のために収納されている。利用者は、「移動元」口座および「移動先」口座を選択し、次いで移動する金額、移動の日付、および移動の頻度を入力する。次いで、受入ボタン上でクリックすることによって、データをリモート・サーバに送り、銀行による夜間バッチ処理のために格納する。
【0099】
「口座」または「制御」モジュールにおいて「請求書支払い」ボタン上でクリックしたことの結果、「請求書支払い」モジュールをロードして表示する。このモジュールは、ユーザに納入業者をユーザの口座データベースに追加させ、ユーザに請求書支払い金額および支払い日付を設定させる。ユーザは、支払いの日付、または支払いの頻度、例えば、毎週または毎月を指定することができる。これらの支払いは、夜間バッチにおいて受取人によって処理することができる。
【0100】
銀行のバッチ処理は、既にしかるべく存在していると思われ、本開示のこの実施形態を用いた利用者による相互作用における変化による影響を受けないので、これについては論じない。
【0101】
「口座」または「制御」モジュールにおいて「顧客支援」ボタン上でクリックしたことの結果、「顧客支援」モジュールをロードして教示する。「顧客支援」モジュールは、利用者についてのテキスト情報へのアクセスを提供する。「顧客支援」モジュールは、テキスト・ボックスに、ボックスの右側に沿ってスクロール・バーを設け、長すぎるデータをボックス内に納まるように表示する。このボックスには、選択したボタンに基づいたデータを収納することができる。これによって、複数のページまたはモジュールをロードする必要性を排除する。
【0102】
本開示の種々の態様は、ディジタル電子回路において、またはコンピュータ・ハードウェア、ファームウェア、ソフトウェア、あるいはこれらの組み合わせにおいて実現することができる。本システムは、コンピュータ・プログラム生産物、即ち、情報担体、例えば、機械読み取り可能記憶デバイスまたは伝搬信号において実体的に具体化した、データ処理装置、例えば、プログラマブル・プロセッサ、コンピュータ、または複数のコンピュータによる実行のため、またはその動作を制御するためのコンピュータ・プログラムとして実現することができる。コンピュータ・プログラムは、コンパイル言語またはインタプリタ言語を含む任意の形態のプログラミング言語で書くことができ、単体プログラム、またはモジュール、コンポーネント、サブルーチン、あるいは計算環境における使用に適したその他のユニットを含む、あらゆる形態で展開することができる。コンピュータ・プログラムは、1カ所における1つのコンピュータまたは複数のコンピュータ上で実行するように、または複数の場所に分散し通信ネットワークによって相互接続するように展開することができる。
【0103】
本開示と関連のある方法ステップは、入力データを処理して出力を発生することにより、本開示の機能を実行するコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行することができる。また、方法ステップは、特殊目的論理回路、例えば、FPGA(フィールド・プログラマブル・ゲート・アレイ)またはASIC(特定用途集積回路)によって実行することができ、本開示の装置は、特殊目的論理回路として実現することができる。
【0104】
コンピュータ・プログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの双方、ならびに任意の種類のディジタル・コンピュータの1つ以上の任意のプロセッサを含む。一般に、プロセッサは、命令およびデータをリード・オンリ・メモリまたはランダム・アクセス・メモリあるいは双方から受け取る。コンピュータのエレメントには、命令を実行するプロセッサと、命令およびデータを格納する1つ以上のメモリ・デバイスとがある。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含むか、あるいはこれらからデータを受け取るまたはこれらにデータを転送する、あるいは双方を行うように動作的に結合されている。コンピュータ・プログラム命令およびデータを具体化するのに適した情報担体には、全ての形態の不揮発性メモリが含まれ、一例として、半導体メモリ・デバイス、例えば、EPROM(消去可能プログラマブル・リード・オンリ・メモリ)、EEPROM(電気的消去可能プログラマブル・リード・オンリ・メモリ)、およびフラッシュ・メモリ・デバイス、磁気ディスク、例えば、内部ハード・ディスクまたはリムーバブル・ディスク、光磁気ディスク、CD−ROM(コンパクト・ディスク・リード・オンリ・メモリ)、およびDVD−ROM(ディジタル・バーサタイル・ディスク・リード・オンリ・メモリ)が含まれる。プロセッサおよびメモリは、特殊目的論理回路によって補うこと、またはその中に組み込むことができる。
【0105】
ユーザとの相互作用に備えるために、本開示の態様は、情報をユーザに表示するためのディスプレイ・デバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに供給することができるキーボードおよびポインティング・デバイス、例えば、マウスまたはトラック・ボールを有するコンピュータ上で実現することができる。また、ユーザとの相互作用に備えるために、他の種類のデバイスを用いることもできる。例えば、ユーザに提供するフィードバックは、任意の形態の検知フィードバックでも可能であり、例えば、視覚フィードバック、聴覚フィードバック、触覚フィードバックがあり、ユーザからの入力は、音響、音声、または接触入力を含む、任意の形態で受け取ることができる。
【0106】
本開示の態様は、バック・エンド・コンポーネントを、例えば、データ・サーバとして含む計算システム、またはミドルウェア・コンポーネント、例えば、アプリケーション・サーバを含む計算システム、あるいはフロント・エンド・コンポーネント、例えば、グラフィカル・インターフェースまたはウェブ・ブラウザを含み、ユーザがこれによって本開示の実施態様と相互作用を行うことができる計算システム、あるいはこのようなバック・エンド・コンポーネント、ミドルウェア・コンポーネント、またはフロント・エンド・コンポーネントの任意の組み合わせにおいて実演することができる。計算システムのコンポーネントは、ディジタル・データ通信の任意の形態または媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカル・エリア・ネットワーク(「LAN」)、およびワイド・エリア・ネットワーク(「WAN」)、例えば、インターネットが含まれる。
【0107】
計算システムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、通例通信ネットワークを通じて相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で走り、互いに対してクライアント−サーバ関係を有するコンピュータ・プログラムによって生ずる。
【0108】
特定的な実施形態に関して、本開示を説明した。他の実施形態も、以下の請求項の範囲に該当する。例えば、本システムは、更に大きなシステムにおけるコンポーネントとして記載したが、他のシステムの中でまたは単体システムとして実現することもできる。
【0109】
以上の教示を検討すれば、本開示の多数の更に別の修正や変形も可能である。したがって、添付した請求項の範囲内において、本開示は、具体的に本明細書で説明したこと以外でも実用化できることは言うまでもない。例えば、異なる例示的実施形態のエレメントおよび/または特徴を互いに組み合わせること、および/または互いに交換することも、本開示および添付した請求項の範囲内で可能である。
【技術分野】
【0001】
関連出願に対する引用
本願は、2007年3月29日に出願した米国仮特許出願第60/920,613号に基づき、その優先権を主張する。米国仮特許出願第60/920,613号をここで引用したことにより、その内容全体が本願にも含まれるものとする。
開示の分野
本開示は、インターネット・セキュリティに関し、特に、仮想ソフトウェアによるインターネット・セキュリティ方法およびシステムに関する。
【従来技術】
【0002】
インターネット・セキュリティは、常に変化の状態にある。新たな暗号モデルが作成され、コンピュータ上または配布する媒体上にもトークンが置かれ、これらが流通している。インターネット・セキュリティ業界は、自分のデータのプライバシを維持する機関の権利を回避しようとする者よりも常に一歩前にい続けようとしているが、成功しないことも多い。
【0003】
金融、医療、保険、工業、建設、政府等の組織のような組織は、現在、インターネット・セキュリティ方法を利用しているが、これらは同じ固有の弱点を内包している。例えば、現在のインターネット・セキュリティ方法の殆どは、インターネットを利用する人であれば誰にでもオンラインで利用可能なログオン・プロセスを利用している。ウェブサイトを訪問するとき、ユーザには多くの場合「サイン・オン」への選択肢が提示され、ユーザは情報を入力する。この情報には、ユーザIDおよびパスワードを含めるとよい。正しい情報を入力した後、ユーザには、オンライン・アプリケーションに基づいて、1つ以上のブラウザが提案される。例えば、銀行業では、ユーザに、彼らの当座口座、預金口座、クレジット・カード等を検査する選択肢、またはこれらを用いて作業する選択肢を提供することができる。しかしながら、組織のログオン画面およびオンライン・アプリケーションへの、このような自由に利用可能で開放されたアクセスは、システムに侵入しようとする個々の人々が、単にそうしようとする挑戦のため、または更に不穏な理由のための誘い掛けとなる。
【0004】
コンピュータおよびアクティブ・インターネット接続へのアクセスを有する個人がウェブサイトを訪問し、ログオンし、次いで機密データにアクセスするためのアプリケーションに基づいてブラウザの使用を容認することができる限り、現行のインターネット・セキュリティ・モデルでは効果がないのは当然である。現行のログオン・プロセスに伴う弱点に加えて、ユーザが組織のウェブサイトにログオンすることに成功した後であっても、オンライン・アプリケーションに基づいてブラウザが与えるデータ・アクセスに関連するプロセスが更に別の弱点を露呈する。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示の実施形態は、他のモデルが果たせない(miss)、理解し損ねた、または単に無視した弱点に取り組む。本開示の実施形態の実現を通じて、組織はログオン・プロセスを彼らのウェブサイトから除去することができるだけでなく、データを読み取り、書き込み、または更新するために現在採用されている、ブラウザに基づくオンライン・プロセス全体も除去することができる。
【0006】
例えば、銀行は、本開示の実施形態の使用により、そのウェブサイトからのオンライン銀行業務を可能にする全ての画面およびプロセスを除去し、なおもその顧客のオンライン銀行業務の特権を許可することができる。この処置を講ずることにより、銀行は、その顧客およびそれ自体の双方に対する高いレベルの保護を提供することが可能となる。
【課題を解決するための手段】
【0007】
本開示は、インターネット・セキュリティのためのツール(方法、装置、およびシステムの形態としたツール)について記載する。これらのツールは、コンピュータ読み取り可能媒体またはプログラム記憶デバイス上に格納された、および/またはコンピュータ・ネットワークまたはその他の送信媒体を通じてコンピュータ・データ信号の形態で1つ以上のセグメントで送信される1つ以上のコンピュータ・プログラムにおいて具現化することができる。
【0008】
インターネット・セキュリティを提供する方法は、第1実行可能アプリケーション・モジュールを含む記憶媒体を提供することを含む。記憶媒体をローカル・コンピュータに入力したことに応答して、第1実行可能アプリケーション・モジュールを、ローカル・コンピュータ内の仮想メモリにロードする。第1実行可能アプリケーション・モジュールを実行し、第1実行可能アプリケーション・モジュールが、少なくとも1つのリモート・サーバを特定する情報を提供する。第1実行可能アプリケーション・モジュールが提供する情報を用いて、ローカル・コンピュータとリモート・サーバとの間において通信を行う。リモート・サーバに、第2アプリケーション・モジュールをローカル・コンピュータに送るように命令する。第2アプリケーション・モジュールを受信したときに、該第2アプリケーション・モジュールをローカル・コンピュータ上の仮想メモリにロードする。仮想メモリから第2アプリケーション・モジュールを実行し、プロンプトをユーザに表示する。
【0009】
インターネット・セキュリティを提供する方法は、少なくとも1つのリモート・サーバへのアクセスを提供するアクセス・アプリケーション・モジュールを含む記憶媒体を提供することを含む。記憶媒体をローカル・コンピュータに入力したことに応答して、アクセス・アプリケーション・モジュールを仮想メモリにロードし、アクセス・アプリケーション・モジュールを実行し、リモート・アクセス・モジュールをリモート・サーバからダウンロードする。リモート・アクセス・モジュールをローカル・コンピュータ上の仮想メモリにロードし、アクセス画面をローカル・コンピュータ上に供給して、データを提供する少なくとも1つのリモート・データ・サーバへのアクセスのためのリモート・ログオン・データを入力するように、ユーザに促す。リモート・ログオン・データを入力する。リモート・ログオン・データが有効である場合、少なくとも1つの追加のアプリケーション・モジュールをリモート・サーバからローカル・コンピュータにダウンロードする。少なくとも1つの追加のアプリケーション・モジュールを仮想メモリにロードし、実行して、データ表示画面およびナビゲーション画面のうち少なくとも1つをユーザに表示する。
【0010】
配布記録媒体は、アプリケーション・モジュールおよびデータを提供する少なくとも1つのリモート・サーバに対する安全なアクセスを提供するためのコンピュータ実行可能コードを含み、配布記録媒体は、第1コンピュータ実行可能アプリケーション・モジュールを含む。第1コンピュータ実行可能アプリケーション・モジュールは、ローカル・コンピュータ上の仮想メモリにロードするコードと、所定のURLにおいて少なくとも1つのリモート・サーバにアクセスするコードと、所定のURLにおける少なくとも1つのリモート・サーバが、第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つをローカル・コンピュータにダウンロードすることを要求するコードと、第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つをローカル・コンピュータ上の仮想メモリにロードするコードとを備えている、第1コンピュータ実行可能アプリケーション・モジュールを含む。
【図面の簡単な説明】
【0011】
以下の詳細な説明を参照し添付図面と関連付けて検討することによって本開示が増々深く理解されていくので、本開示およびそれに関連する多くの利点についての更に完全な評価は容易に得られることになろう。
【図1】図1は、分散したローカル・コンピュータとのメディア相互作用を示す。
【図2】図2は、アプリケーション・モジュールおよびデータ双方に、1つのリモート・サーバからアクセスするローカル・コンピュータを示す。
【図3】図3は、1つのリモート・サーバ(群)からアプリケーション・モジュールにアクセスし、異なるリモート・サーバ(群)からデータにアクセスするリモート・コンピュータを示す。
【図4】図4は、アプリケーション制御サーバにアクセスするローカル・コンピュータを示す。アプリケーション制御サーバは、1つ以上のリモート・サーバ(群)からアプリケーション・モジュールにアクセスし、1つ以上のリモート・サーバ(群)からデータにアクセスするために、ローカル・コンピュータからの接続を導く。
【図5】図5は、単一および多重サーバ仮想ソフトウェア・アプリケーションのためのプロセスを示す。
【図6】図6は、本開示の実施形態による、アプリケーション・サーバ・モデルのためのプロセスを示す。
【図7】図7は、本開示の実施形態による、アプリケーション・サーバ・モデルのためのプロセスを示す。
【図8】図8は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図9】図9は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図10】図10は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図11】図11は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【図12】図12は、本開示の種々の実施形態について説明するためのフロー・チャートを示す。
【発明を実施するための形態】
【0012】
以下の実施形態例は、本開示の主題の理解を補助するために明記するのであって、その後に続く特許請求の範囲を限定することは全く意図しておらず、そのように解釈してはならない。したがって、ある実施形態例について記載する際に明確さのために具体的な用語を用いるが、本開示は、そのように選択した具体的な用語に限定されることを意図しているのではなく、各具体的な要素が、同様に動作するあらゆる技術的同等物を含むことは言うまでもない。
【0013】
本開示の実施形態は、オブジェクト指向プログラミングに基づいており、したがって、種々の実施形態の説明は、論理的開発プロセス、大抵の論理アプリケーション・フローに従い、プロセスが利用可能になる時点でそのプロセスに分岐する。本開示の種々の実施形態の説明は、必ずしも1つのアプリケーションについて記載するのではなく、むしろ少なくとも1つのソフトウェア・アプリケーションにおける実施形態の論理アプリケーションについて記載する。
【0014】
尚、本開示の実施形態は、各組織の個々の必要性に基づいて、様々な種類の組織にも適用可能であることは言うまでもない。本開示は、本開示の実施形態を適用することができる、様々な異なる種類の組織を同一視する。勿論、本開示は、開示する実施形態に限定されるのではない。本開示は、本開示の実施形態を適用することができる範囲の理解を与えるために様々な用途について端的に説明する。
【0015】
本開示の一実施形態によれば、ブラウザに基づくオンライン・サービスの代わりに、仮想ソフトウェア・アプリケーションの使用によって、インターネット・セキュリティを提供する。この実施形態によれば、最初に、何らかの種類の配布媒体上で少なくとも1つの仮想ソフトウェア・アプリケーションをユーザに提供する。利用することができる配布媒体の種類の非限定的な例には、CD−ROM、フラッシュ・ドライブ、メモリ・チップ、フラッシュ・メモリ、あるいは、限定ではないが、磁気的または光学的記録媒体を含む、その他のあらゆる種類の記録媒体が含まれる。
【0016】
ユーザは、配布された媒体をドライブに入れるか、あるいはコンピュータまたはワークステーションのアクセス・ポート・例えば、USBポートに差し込む。ユーザが配布媒体(distributed medium)をコンピュータまたはワークステーションに入れると、ソフトウェア・アプリケーションが仮想メモリ(例えば、RAM)において組み立てられ、自動的にまたはユーザの要求に応じて起動される。次いで、ユーザは、マウス、キーボード等のようなヒューマン・インターフェース・デバイスを利用して、ソフトウェア・アプリケーションと相互作用を行う。
【0017】
本開示の別の実施形態によれば、配布媒体上にあるソフトウェア・アプリケーション・モジュールは、「ログオン」中に供給される追加のセキュリティ・パラメータを用いて、ユーザに利用可能なソフトウェアのセクションを限定することができる。このようにすると、ユーザは、許可されているリモート・サーバにおいて、ソフトウェア・モジュールへのアクセスしか得られない。例えば、産業上の安全性では、会社は異なる許可パラメータを異なる個人グループ毎に供給することができ、各グループは異なるレベルのアクセス・クリアランス(access clearance)を有する。本開示の種々の実施形態によれば、各グループはオンライン情報へのアクセスを得るが、各個人は彼らのレベルのアクセス・クリアランスに関連のあるソフトウェア・モジュールよびデータにしかアクセスできない。例えば、会社が、内部における異なるグループ間、および/または外部のサブコントラクタと機密情報を共有する必要があることを知る場合がある。ユーザが彼らの配布媒体をローカル・コンピュータに挿入すると、ユーザ名およびパスワード、ならびに配布媒体に関連する暗号化コードまたはキーを用いてログオンすることにより、リモート・サーバにアクセスすることができる。本開示の一実施形態によれば、各ユーザが許可されている情報にしかアクセスできないように、ログオン後に、追加レベルのセキュリティ・アクセスを提供してもよい。
【0018】
本開示の種々の実施形態によれば、配布媒体上の暗号化コード即ちキーは、媒体を一人のユーザに割り当てる。このセキュリティ・コードは、様々な長さとすることができ、数値および文字双方を収容することができる。セキュリティ・コード・フォーマットは、設計するアプリケーション、および仮想ソフトウェア・アプリケーションを作成する組織の必要性に基づいて、変化してもよい。セキュリティ・コードは、暗号化してもしなくてもよい。
【0019】
以前に利用していたようなブラウザに基づくオンライン・プロセスの代わりに、配布可能媒体上で供給されるアクセス制御モジュールおよび/またはキーを用いて、許可された個人は、ランダム・アクセス・メモリ(RAM)において仮想ソフトウェア・アプリケーションとして組み立てられたオンライン・プロセスを有することができる。この仮想アプリケーションを用いて、ユーザは次にオンライン・データベースにアクセスし、データを照会、表示、および操作することができる。
【0020】
本開示が用いるアプリケーション・モジュールは、転送するデータの安全性を更に高めるために、暗号化を採用することができる。本開示の実施形態を説明する目的上、特定の暗号システムについて詳細に説明しない。しかしながら、本開示の実施形態を実現するためには、任意の適した種類の暗号システムを利用すればよいことは認められよう。本開示の実施形態によれば、暗号化方法を仮想ソフトウェアに書き込んでもよく、または各個人のアプリケーション要件に基づいて、データ転送プロセス上に積層する(layered over)こともできる。
【0021】
銀行業を参照しながら、本開示の実施形態について説明する。以前のプロセスを利用すると、あらゆるインターネット・ユーザが銀行のウェブサイトを訪問し、有効なユーザ名およびパスワードを入力し、次いで関連する個人の銀行口座へのアクセスを得ることができる。これは、ユーザ名およびパスワードを入力した個人が許可されたユーザであっても、偽ってこの情報へのアクセスを得た何らかの個人であっても、該当する。
【0022】
不正アクセスを回避するために、本開示の一実施形態によれば、銀行は、ログオン・プロセスをそのウェブサイトから除去することができる。銀行は、そのウェブサイトから、他の全てのオンライン処理画面をも除去することができる。本開示のこの実施形態によれば、銀行は、次に、フラッシュ・ドライブのような媒体をその顧客に配布する。
【0023】
銀行利用者(consumer)は、配布された媒体をローカル・コンピュータ上で用いて、オンライン銀行プロセスを起動する。オンライン銀行プロセスの起動プロセスについては、後に以下で説明する。勿論、本開示はいずれの特定の種類の産業にも限定されることはない。
【0024】
例えば、本開示の実施形態は、証券業(株式、債券等)にも容易に適用することができる。現在利用可能なオンライン・システムおよび方法をここでも利用すると、正しいユーザ名、パスワード、およびインターネット接続を有する個人は誰でも、個人の証券口座へのアクセスを得て、取引を行ったり資金を移動する(transfer)ことができる。
【0025】
本開示の実施形態は、証券業に関係する場合、前述の銀行モデルと類似しており、唯一の相違は、ソフトウェア・アプリケーションが金融証券業務処理(transaction)を実行するように設計されていることである。
【0026】
事実上あらゆるオンライン・システムが、ユーザ名およびパスワードだけを知っている不正ユーザによる違反行為を被る虞れがある。本開示の実施形態を利用すれば、このような不正アクセスを最小限にくい止めるか、または根絶することができる。
【0027】
本開示の実施形態によれば、産業安全保障(industrial security)型システムに関係する1つ以上のログオン・プロセスを用い、その一部はユーザ名およびパスワードを利用してもよい。加えて、種々のその他のプロセスも実行してもよい。即ち、この実施形態によれば、ユーザ・ログオンが完了した後、ユーザに許可されているサービスのみをローカル・コンピュータに転送するように、プロセスを提供する。この実施形態によれば、本システムは、仮想ソフトウェアに、ユーザのアカウントと関連のあるソフトウェアだけをダウンロードさせ、RAMセクションにロードさせる。つまり、ソフトウェアは、不正配布またはアクセスから保護されることになる。
【0028】
図1は、本開示の態様を実現するために用いることができる、様々な種類の配布媒体17の例を示す。例えば、配布媒体17は、CD−ROM10、フラッシュ・ドライブ12、14、メモリ・チップ16、フラッシュ・メモリ、あるいは、限定ではないが、磁気的または光学的記録媒体を含む、その他の任意の種類の記録媒体の形態とすればよい。配布媒体上にある情報は、ローカル・コンピュータ18によってアクセスが可能である。ローカル・コンピュータ18は、例えば、デスクトップ・コンピュータまたはラップトップ・パーソナル・コンピュータとすればよく、あるいは他の任意の種類のインターフェース・デバイスであってもよい。インターフェース・デバイスには、限定ではなく、PDA、セルラ・フォン、ゲーム・プラットフォーム、あるいは分散媒体をその多くの形式で読み込む容量を内蔵し、有線またはワイヤレス技術によってインターネットに接続し、人とデバイスとの間およびデバイスとリモート・サーバ(群)との間における相互作用を可能にし、双方向通信が可能な他の任意のデバイスが含まれる。
【0029】
本開示の実施形態は、多数の形態をなすことができ、その一部だけについて本明細書において説明する。以下に説明するモデルの記載は、本開示の実施形態の用途を限定することを意図するのではなく、逆に本開示の柔軟性を示すことを意図している。以下に、本開示の実施形態を実現するために利用することができる形式のシステムについての、端的な全体像を示す。
【0030】
図2に示すように、本開示の一実施形態によれば、配布媒体21をローカル・コンピュータ18の中に入れる。配布媒体21上にあるアプリケーション・モジュールを、ローカル・コンピュータ18内の仮想メモリにロードする。次いで、アプリケーション・モジュールは、1つのリモート・サーバURL20に対してコールを行う。リモート・サーバURL20は、アプリケーション・サーバおよびデータベース・サーバとしての役割を果たす。
【0031】
図3に示すように、本開示の別の実施形態によれば、配布された媒体25をローカル・コンピュータ26に入れる。配布媒体25上にあるアプリケーション・モジュールを、ローカル・コンピュータ26上の仮想メモリに移動させ、実行する。アクティブなインターネット接続を利用して、アプリケーション・モジュールは、アプリケーション・サーバとしての役割を果たすリモート・アプリケーション・サーバURL22をコールする。また、アプリケーション・モジュールは、アクティブなインターネット接続を用いてリモート・データ・サーバURL24にアクセスし、データにアクセスする。2つのサーバ(22、24)は、同じURLの一部としてホストすることができ、あるいは2つの完全に異なるURL上にホストすることもできる。
【0032】
本開示の更に別の実施形態を図4に示す。配布された媒体35をローカル・コンピュータ27に入れる。配布媒体35上にあるアプリケーション・モジュールを、ローカル・コンピュータ27上の仮想メモリに移動し、実行する。アクティブなインターネット接続を利用して、アプリケーション・モジュールは、アプリケーション制御サーバとしての役割を果たすリモート・アプリケーション・サーバURL30にコールする。アプリケーション制御サーバ30は、アプリケーション連携モジュールをローカル・コンピュータ27にダウンロードし、これもローカル・コンピュータ27上の仮想メモリにロードする。実行すると、アプリケーション連携モジュールは、利用者に利用可能な仮想ソフトウェア・アプリケーションのリストを提供する。本開示の一実施形態によれば、利用者が用いたいサービスを選択すると、ローカル・コンピュータ27は、アプリケーション制御サーバ30へのコールを行う。アプリケーション制御サーバ30は、次に、選択されたサービスに適したアプリケーションおよび/またはデータを、1つ以上のサーバ32〜36上で発見する。アプリケーション制御サーバ30は、データ/アプリケーションをサーバ(群)32〜36から読み出し、それをローカル・コンピュータ27にダウンロードする。ローカル・コンピュータ27は、データ/アプリケーションを仮想メモリに入れて、アプリケーションを実行する。この実施形態によるアプリケーション制御サーバを使用する一例をあげると、1つの配布媒体を用いて、複数の銀行における銀行サービス、1つ以上の仲介業務会社における金融サービス、株式取引にアクセスし、薬物(drug)またはサービスに対する請求書(bill)の保険処理(insurance processing)を追跡するときであろう。このアプリケーション・サーバ・モデルは、プロセス毎に独自の配布媒体を必要とするのではなく、利用者が1つの媒体を用いて数個のオンライン・サービスにアクセスすることを可能にする。
【0033】
以上説明した3つの実施形態では、現行のブラウザに基づくシステムを利用すると、セキュリティ・プロセスにおける弱点は、個人、ならびにユーザ名およびパスワードを個人が安全確実に保持できることにある。この分野では、事務所に不在で、データが必要となり、アシスタントにそれを提供するように要求するといった単純な理由で、セキュリティにおける些細な過ちが発生することが多い。このアシスタントを信頼してよいのか。信頼してもよいのであれば、ユーザ名およびパスワードをそのときに言っても、差し支えない。この想定場面はあり得ないように思えるが、頻繁に発生している。また、ユーザはそのユーザ名およびパスワードを書き留めておくことが多く、それを紛失したり盗まれたりした場合、その情報が用いられる可能性がある。
【0034】
暗号、トークン、またはその他のセキュリティ・デバイスを改良して構築しても、ユーザがユーザ名およびパスワードを漏洩することによって、セキュリティを脅かす可能性を排除できない。本開示の実施形態は、現行のインターネット・モデルに内在する弱点を解決するために設計されたのである。
【0035】
本開示の実施形態は、現行のブラウザに基づく配信プロセスからオンライン・プロセスを除去し、こうして無許可のユーザが単にウェブサイトに行くことによって特権情報にアクセスすることを不可能にする。
【0036】
加えて、本開示の一実施形態によれば、各配布媒体には、一意のキーを連続して振ることができ、したがってユーザ名およびパスワードと照合して、許可された個人であるか確かめることができる。このように、これらの実施形態は、組織の別の許可ユーザが、他の許可ユーザのオンライン・プロセスには、彼らの媒体がないと、アクセスすることを防止する。オンライン処理にアクセスすることができる個人は、媒体が割り当てられた人だけである。
【0037】
本開示の実施形態は、ユーザ入力/選択について説明する。例えば、本開示のある種の実施形態は、ユーザ入力または相互作用に基づいて、仮想環境にダウンロードするアプリケーション・モジュールについて説明する。尚、ユーザ入力が必要となるような場合では、ローカル・コンピュータ上で、表示されている関連ボックスにおいてあるボタンをクリックすること、および/または情報を入力することをユーザに催促するのが一般的であることは認められよう。
【0038】
以下に、本開示において想定する様々な種類のシステムの例について、更に詳細に説明する。勿論、特許請求の範囲は、開示する実施形態には限定されない。
図2に戻り、そして図5を参照しながら、本開示の一実施形態による単一サーバ型システムについて説明する。ユーザが配布媒体21をローカル・コンピュータ18に挿入すると、ローカル・コンピュータ18は、配布媒体21上にある実行ファイルを読み取り、それを仮想メモリ(RAM)にロードし、実行ファイルを実行する(ステップS100)。実行ファイルは、オートラン・プロセスを用いて自動的に、またはユーザによる要求に応じて実行することができる。アクティブなインターネット接続が利用可能か否か判断する(ステップS102)。利用可能でない場合、(ステップS104においてNo)、ユーザに通知する(ステップS106)。利用可能な場合(ステップS104においてYes)、ローカル・コンピュータ18はアクティブ・インターネット接続23を通じて、リモート・アプリケーションおよびデータ・サーバ20と接続する。即ち、実行ファイルはローカル・コンピュータ18に、指定されたURLにおいてリモート・サーバ20に接続し、1つ以上の指定されたソフトウェア・アプリケーション・モジュールおよびデータをサーバ20からダウンロードし、データを表示するように命令する(ステップS108)。次いで、アプリケーション・モジュール(群)および/またはデータをローカル・コンピュータ18における仮想メモリ(例えば、RAM)にロードする(ステップS110)。次いで、ユーザの相互作用にも基づいて、アプリケーション・モジュール(群)を実行する(ステップS112)。リモート・サーバ20からダウンロードされ、アプリケーション・モジュールに適したデータも、RAMにロードし、ローカル・コンピュータ18上に表示する。ユーザがローカル・コンピュータ18上に表示されているデータと相互作用を行い、変更を保存する必要がある場合、処理および格納のためにデータをリモート・サーバ20に返送する(ステップS114)。
【0039】
これより、本開示の一実施形態による二重サーバ型システムについて、図3および図6を参照しながら説明する。この実施形態によれば、アプリケーション・サーバ22およびデータ・サーバ24は、別個のシステム上に設けられている。ローカル・コンピュータ26は、データ・サーバ24およびアプリケーション・サーバ22とのアクティブ・インターネット接続23a、23bをそれぞれ有する。接続は、例えば、ワールド・ワイド・ウェブ(WWW)経由とすればよい。この実施形態によれば、ユーザが配布媒体25をローカル・コンピュータ26に挿入すると、ローカル・コンピュータ26は、実行ファイルを配布媒体25から仮想メモリにロードし、オートラン・プロセスを用いて自動的に、またはユーザの要求に応じてのいずれかでこれを実行する(ステップS200)。アクティブ・インターネット接続が利用可能か否か判断する(ステップS202)。利用可能でない場合(ステップS204においてNo)、ユーザに通知する(ステップS206)。接続が利用可能な場合(ステップS204においてYes)実行ファイルは、ローカル・コンピュータ26に、指定されたURLにおいてリモート・アプリケーション・サーバ22に接続し、1つ以上の指定されたソフトウェア・アプリケーション・モジュールをアプリケーション・サーバ22からダウンロードするように命令する(ステップS208)。1つ以上の指定されたソフトウェア・アプリケーション・モジュールを、ローカル・コンピュータ26上の仮想メモリ(例えば、RAM)にロードし(ステップS210)、実行する(ステップS212)。RAMにロードしたアプリケーション・モジュールに基づいて、ローカル・コンピュータ26は1つ以上の機能を実行することができる(ステップS214)。例えば、ユーザ入力に応答して、アプリケーション・モジュールは検証のためにクエリをデータ・サーバ24に送ることを命令したり、あるいはローカル・コンピュータ26上で表示するためにデータをダウンロードすることを、ローカル・コンピュータ26に命令することができる。ダウンロードしたデータを、ローカル・コンピュータ26上の仮想メモリに入れる。また、アプリケーション・モジュールは、ローカル・コンピュータ26に追加のアプリケーション・モジュールをアプリケーション・サーバ22からダウンロードするように命令することもできる。追加でダウンロードしたアプリケーション・モジュールのいずれも、ローカル・コンピュータ26内の仮想メモリにロードし、走らせる。この場合、ローカル・コンピュータ26においてユーザがデータを操作した場合、または新たなデータを入力した場合、操作されたデータおよび/または新たなデータは、処理および格納のために、データ・サーバ24に送られる。
【0040】
これより、図4および図7を参照しながら、本開示の一実施形態による多重アプリケーション配布媒体型システムについて説明する。この実施形態によれば、データ・サーバ32、アプリケーション・サーバ34、およびアプリケーション/データ・サーバ36は別個のシステム上に設けられている。ローカル・コンピュータ27は、アプリケーション制御サーバ30とのアクティブ・インターネット接続23を提供することができ、アプリケーション制御サーバ30自体も、図示のように、サーバ32〜36とのアクティブ・インターネット接続23b〜23dを提供することができる。アクティブ・インターネット接続は、例えば、ワールド・ワイド・ウェブ(WWW)経由とすればよい。この実施形態によれば、ユーザが配布媒体35をローカル・コンピュータ27に挿入すると、ローカル・コンピュータ27は、実行ファイルを配布媒体35から仮想メモリにロードして、オートラン・プロセスを用いて自動的に、またはユーザの要求に応答してのいずれかでそれを実行する(ステップS300)。アクティブ・インターネット接続が利用可能か否か判断する(ステップS302)。利用可能でない場合(ステップS304においてNo)、ユーザに通知する(ステップS306)。接続が利用可能な場合(ステップS304においてYes)、実行ファイルは、ローカル・コンピュータ27に、指定されたURLにおいてリモート・アプリケーション制御サーバ30に接続し(ステップS308)、1つ以上の指定されたソフトウェア・アプリケーション・モジュールをアプリケーション制御サーバ30からダウンロードするように命令する(ステップS310)。例えば、アプリケーション制御サーバ30は、リモート・ログオン画面モジュールをローカル・コンピュータ27にダウンロードすることができる。ローカル・コンピュータ27は、リモート・ログオン画面モジュールを仮想メモリに入れて、自動的にまたはユーザの要求に応答してのいずれかで、モジュールを実行する(ステップS312)。
【0041】
ローカル・コンピュータ27のユーザは、表示されたリモート・ログオン画面を通じて、アプリケーション制御サーバ30へのアクセスのために、リモートユーザIDおよびパスワードを供給するように促される(ステップS314)。ユーザIDおよびパスワードをアプリケーション制御サーバ30にアップロードする(ステップS316)。リモート・ログオン・データが無効である場合(ステップS318においてNo)、アプリケーション制御サーバ30はローカル・コンピュータ27に指示をダウンロードし、ローカル・コンピュータ27上にエラー・メッセージを表示する(ステップS320)。リモート・ログオン・データが有効である場合(ステップS318においてYes)、アプリケーション制御サーバ30は、例えば、メイン・メニューのようなアプリケーションと共に指示をローカル・コンピュータ27にダウンロードする。メイン・メニューは、アプリケーション制御サーバ30からローカル・コンピュータ27内の仮想メモリ(例えば、RAM)にダウンロードする(ステップS322)。次いで、システムは更に次のユーザ相互作用を待つ(ステップS324)。あるいはまたは加えて、アプリケーション制御サーバ30は、アプリケーション表示モジュールを返してもよい。アプリケーション表示モジュールは、ローカル・コンピュータ27内の仮想環境(例えば、RAM)に、ローカル・コンピュータ27上に表示するデータと共にロードされる。例えば、表示するデータは、配布媒体35と関連のあるアカウントから成る場合もある。このアプリケーション表示モジュールは、ローカル・コンピュータ27のユーザに、アクセスしたいアカウントを選択させ、次いで、選択されたアカウントと関連のあるサーバ(群)(例えば、データ・サーバ(群)32、アプリケーション・サーバ(群)34、および/またはアプリケーションおよびデータ・サーバ36)と接続するように、アプリケーション制御サーバに指令する。
【0042】
先に記したように、リモート・ログオンを試行する場合、ユーザは彼らのユーザ名およびパスワードを入力し、次いでデータを転送するボタンをクリックする。本開示の一実施形態によれば、配布媒体を一意に特定するIDを暗号化して、ログオン・データと共に送る。アプリケーションが、ローカル・コンピュータ18、26、または27がインターネットとの接続を失ったことを発見した場合、エラー・メッセージを表示し、それ以外の場合、ユーザ名、パスワード、および暗号化したIDをリモート・サーバ(例えば、アプリケーションおよびデータ・サーバ20、データ・サーバ24、アプリケーション制御サーバ30、あるいはデータおよびすらまたはアプリケーション・サーバ32〜36の内1つ以上)に送る。
【0043】
次いで、リモート・サーバは、受け渡した情報全てがデータベースにおけるエントリと一致することを検証する。これは、受け入れられるプログラミング規範の任意のものを用いて遂行する。例えば、これは、ローカル・コンピュータ18、26、または27から転送したID、ユーザ名、およびパスワードを用いて、ODBC準拠データベースに照会することによって、リモート・サーバにおいて実行することができる。クエリからの記録カウントがゼロよりも大きい場合、情報は一致であり、アクセスが付与される。クエリからの記録カウントが0に等しい場合、ローカル・コンピュータから転送されたデータは一致とならない。
【0044】
本開示の一実施形態によれば、サーバ20(図2)またはサーバ22、24(図3)は、銀行のような組織によって設けることができる。この場合、ログオン後ローカル・コンピュータにダウンロードされる最初の画面は、通常、メイン・メニューである。メイン・メニューは、銀行のオンライン処理アプリケーションの一部である。一旦メイン・メニューを表示したなら、ローカル・コンピュータはユーザの相互作用を待つ。
【0045】
開示する実施形態の説明を先に進めると、コード機能性の具体的詳細に入ることのないプロセスに関して説明する。当技術分野に精通したプログラマであれば、用いられるプロセスや実行される機能を理解することができ、更に本開示に関してプロセスや機能を実現することができるであろう。
【0046】
更に、いずれの個々のアプリケーションの具体的詳細も、記載する本開示の実施形態には重要ではないことも認められよう。即ち、本開示の実施形態を実現するために用いられる具体的なコードは重要ではない。
【0047】
図8を参照して説明する本開示の一実施形態は、オンライン銀行モデルを利用する。勿論、この実施形態は、本開示を銀行に限定することを意図するのではない。逆に、銀行モデルを用いるのは、本開示の実施形態が利用するプロセスを、どのようにしてこれらの種類のシステムに実装し用いることができるか説明するためである。
【0048】
図8を参照すると、ユーザは配布媒体21、25、または35(図2〜図4も参照)をローカル・コンピュータ18、26、または27に挿入し、媒体21、25、または35からの実行可能アプリケーションを、ローカル・コンピュータ18、26、または27上の仮想メモリにロードする。ユーザが入力データをローカルに検証することに成功し(例えば、長さが6から20文字の間のユーザ名、および長さが8から15文字の間のパスワード)(ステップS400〜S406)、前述のように遠隔地においてログオンに成功した(ステップS408〜S410)後、そしてリモート・サーバが、受け渡された情報全てがデータベースにおけるエントリに一致したことを検証した(ステップS408においてYes)後、リモート・アプリケーション・サーバはアカウント・メニューと共にデータをローカル・コンピュータに返送する(ステップS412)。次いで、ローカル・コンピュータは、ユーザがアクセスするアカウントを選択するのを待つ(ステップS414)。ユーザがアカウントを選択した後、選択したアカウントに対するログオン画面をロードする(ステップS416)。これを遂行するには、アカウントのリモート・サーバ(群)からその画面をコールし、ログオン画面モジュールをアカウントのリモート・サーバ(群)からローカル・コンピュータに転送し、それを仮想メモリに入れ、次いでローカル・コンピュータ上にログオン画面を表示する。次いで、アプリケーションは、ユーザがデータを入力しログオンを開始するのを待つ(ステップS418)。次いで、アカウントに対して同様のログオン・プロセスを実行する。ユーザがアカウントにログオンするのに成功した後、アカウントに対するメイン・メニューをダウンロードし、ローカル・コンピュータ上に表示することができる。
【0049】
図9を参照すると、ユーザがログオンに成功し、メイン・メニューがリモート・アプリケーション・サーバ(群)からローカル・コンピュータに表示のために転送された後、ローカル・コンピュータはユーザがプロセスを選択するのを待つ。例えば、本開示の一実施形態によれば、ユーザの処理要求に素早く応答するために、プロセスを小さなプロセス・モジュールに細分する。プロセス・モジュールは、1つの画面またはプロセス全体を構成することができる。図9に表示するような仮想ソフトウェア・アプリケーションを用いると、アプリケーションは、ユーザが選択するために、3つの主要な処理機能を有する。銀行は、本開示の実施形態を採用すれば、保険情報および処理または株式業務処理等のような機能を、減少または増大させて提供することを選択することができる。仮想ソフトウェア・アプリケーションは、プロセスを採用しているクライアントの想像によって限定されるだけである。
【0050】
本開示のこの実施形態にしたがって採用する3つの主要プロセスは、ユーザ口座情報440、資金移動442、およびオンライン請求書支払い446である。これらの部門の各々は、1つのプロセス・モジュールまたは複数のプロセス・モジュールで構築することができる。一旦ユーザが機能と、当該機能に関係するプロセス・モジュール(群)を選択したなら、プロセス・モジュール(群)をリモート・サーバ(群)からコールし、ローカル・コンピュータにダウンロードし、仮想環境(例えば、ローカル・コンピュータ18のRAM)にロードし、実行する。
【0051】
プロセス・モジュール(群)をローカル・コンピュータにダウンロードし、仮想環境に一旦ロードする。その後この機能に入力する場合はいつでも、ユーザの最初の要求のときに、仮想ソフトウェア・アプリケーションに追加されたプロセス・モジュールを用いる。
【0052】
図10Aおよび図10Bを参照して、ユーザは、図9において特定した口座情報440を選択したと仮定する。この場合、リモート・アプリケーション・サーバ(群)をコールし(ステップS500)、口座リスト・モジュールをダウンロードし、仮想環境(例えば、ローカル・コンピュータ18におけるRAM)にロードする。口座リスト・モジュールのロードが完了したなら(ステップS502)、リモート・データ・サーバ(群)をコールし、リモート・データ・サーバにおいて照会を実行し、口座のリストを口座リスト・モジュールにダウンロードして表示する(ステップS504)。本開示のこの実施形態によれば、口座リスト・モジュールは、ユーザに利用可能な口座のリストをその口座残高、キーおよび外部キー、ならびに表示してもしなくてもよいその他の任意の関連データと共に表示する画面のみから成る。
【0053】
次いで、ユーザは確認する口座を選択し(ステップS506)、仮想ソフトウェア・アプリケーションはリモート・サーバをコールし(ステップS506)、口座詳細モジュールをダウンロードして、ローカル・コンピュータ18内の仮想メモリにロードする(ステップS508)。次いで、口座詳細モジュールはリモート・データ・サーバ(群)からデータを呼び出し、リモート・データ・サーバにおいてクエリを実行して、関連データを抽出する(ステップS512)。次いで、このデータをローカル・コンピュータに転送し、仮想ソフトウェア・アプリケーションにロードし、表示する(ステップS514)。
【0054】
本開示の一実施形態によれば、プロセスは、以前に表示した口座を確認するためまたは新たな口座を確認するために、このセクション(例えば、口座情報440)において何らかの後続入力があれば、それに合わせて変化する。即ち、この実施形態によれば、アプリケーション・モジュールのためにリモート・アプリケーション・サーバにコールすることは、もはやない。何故なら、これらは、ユーザがアプリケーションを終了するまで、ローカル・コンピュータ18のメモリに残留するからである。
【0055】
口座情報セクションへのその後の入力プロセスでは、口座リスト・モジュールを表示する(ステップS516)。ユーザは、確認のために口座を選択し(ステップS518)、口座詳細モジュールが表示される(ステップS520)。次いで、口座詳細モジュールは、リモート・データ・サーバへのコールを行い(ステップS522)、リモート・データ・サーバにおいて照会を実行し、口座のリストを口座リスト・モジュールにダウンロードして表示する(ステップS524)。
【0056】
これより図11Aおよび図11Bを参照し、図9において特定した資金移動422をユーザが選択したと仮定する。リモート・アプリケーション・サーバ(群)に対してコールを行い(ステップS600)、資金移動モジュールをダウンロードし、ローカル・コンピュータ18内の仮想環境(例えば、RAM)にロードする(ステップS602)。資金移動モジュールのロードが完了すると、リモート・データ・サーバ(群)に対してコールを行い、ユーザの納入業者リストを資金移動モジュールにダウンロードして表示する(ステップS604)。本開示のこの実施形態によれば、移動モジュールは、全体的なアプリケーションのこの部分についての表示および全ての処理セクションを含む。全ての資金移動動作は、このモジュールによって完了し、データ・サーバ(群)へのコールだけが行われ、データを送出および受信する(ステップS606)。資金移動モジュールを仮想環境にロードし、初期データ転送が完了した後(ステップS606)、アプリケーションはユーザの相互作用を待つ。ユーザは、画面上に表示された対応するボタンをクリックすることによって、資金を移動する元となる口座、資金を移動する先の口座、および移動する金額を選択することができる(ステップS608)。リセット・ボタン上でクリックすることにより、リセット選択肢(ステップS610)を実行する。このボタンは、画面上にある入力フィールドの各々に無またはゼロ値を入力する機能を開始し(ステップS612)、次いでアプリケーションはユーザの相互作用を待つ。
【0057】
ユーザは、口座および移動する金額を選択するか、またはメイン・メニューに戻ることができる(図9)。ユーザが口座および移動する金額を選択し、資金移動ボタン上でクリックすると(ステップS614)、コールが実行され、ユーザ・データをリモート・データ・サーバに処理のために送る(ステップS616)。リモート・データ・サーバにおいて、データを受信し、データを照会し、一方の口座から他方へ資金を移動する。移動は、即時に行うことができ、または銀行の次のバッチ・プロセスにおける処理に合わせて予定を立てることもできる。処理を完了した後、処理結果をローカル・コンピュータに返送し、仮想ソフトウェア・アプリケーションにロードし、画面上に表示する(ステップS618)。次いで、ユーザはサインイン・メニューに戻るか、または支払い画面に戻ることができる。
【0058】
このセッションの間に、その後このアプリケーションのセクション(例えば、資金移動442)に入力が行われたときはいつでも、資金移動モジュールを表示し(ステップS620)、選択口座入力データ画面において、口座情報を入力する。ステップS624〜S632は、対応するステップS610〜S618と同様であり、簡潔さのために、詳細には説明しない。
【0059】
図12を参照し、図9において特定したオンライン請求書支払い(466)をユーザが選択したと仮定する。リモート・アプリケーション・サーバ(群)に対してコールを行い(ステップS700)、オンライン請求書支払いモジュールをダウンロードし、ローカル・コンピュータ内の仮想環境にロードする(ステップS702)。オンライン請求書支払いモジュールのロードを完了すると、リモート・データ・サーバ(群)に対してコールを行い、ユーザの納入業者リストをオンライン請求書支払いモジュールにダウンロードして、表示する(ステップS704)。本開示のこの実施形態によれば、オンライン請求書支払いモジュールは、アプリケーション全体のこの部分についての表示および全ての処理セクションを含む。オンライン請求書支払い動作の全ては、このモジュールによって完了し、リモート・データ・サーバ(群)へのコールだけが行われ、データを送出および受信する。
【0060】
オンライン請求書支払いモジュールを仮想環境にロードし、初期データ転送が完了した後、アプリケーションはユーザの相互作用を待つ。ユーザは、納入業者を選択し、支払い金額を入力すること、および/または新たな納入業者を追加することができる。
【0061】
支払いを行う際、ユーザは納入業者を選択し(ステップS706)、支払い金額、支払いを行う日付、および支払いの頻度(frequency)を入力する(ステップS708)ことができる。次いで、ユーザはプロセス支払いボタン上でクリックし、リモート・データ・サーバに対するコールを行って、支払い情報を処理のために送る(ステップS710)。
【0062】
データ・サーバにおいて、データを受信する。データを照会し、支払いを追加し、データベースにおいてあらゆる追加の支払いプロセスを実行する(例えば、支払いを処理する予定を組む)。処理が完了した後、処理結果をローカル・コンピュータに返送し、仮想ソフトウェア・アプリケーションにロードし、画面上に表示する。次いで、ユーザはメイン・メニューに戻るか、または支払い画面に戻ることができる。
【0063】
ユーザが支払いのために新たな納入業者を追加する必要がある場合、ユーザは、画面上に表示されている「新納入業者」ボタン上でクリックすれば、新納入業者画面が表示される(ステップS712)。ユーザは、名称、住所、および口座番号というような、納入業者に関する情報を入力し(ステップS714)、支払い金額を入力する(ステップS716)。次いで、ユーザは納入業者追加ボタンをクリックし、リモート・データ・サーバに対してコールを行い、納入業者情報を送る(ステップS718)。
【0064】
リモート・データ・サーバにおいて、データを受信し、検証し、エラー・チェックを行い、データベースに追加するかまたは拒絶する。リモート・データ・サーバにおいてデータ処理の結果を完成し、このモジュールの初期画面上に表示するために、データをローカル・コンピュータに返送し、ユーザの相互作用を待つ。
【0065】
このセッションの間に、その後このアプリケーションのセクションに入力が行われたときはいつでも、オンライン請求書支払いモジュールを初期画面に表示する(ステップS720)。次いで、後続の処理は全て、前述の最初の入力時と同一である。即ち、ステップS722〜S732はステップS706〜S718と同様であり、簡潔さのために、説明しない。
【0066】
高レベルのセキュリティに備えるために、ユーザがシステムからログ・アウトするとき、またはそれ以外でセッションから離れるとき(例えば、ローカル・コンピュータを停止する)、本開示の実施形態が利用した仮想環境を格納していたエリアに、全てゼロ、全て1、ランダムなデータ等を上書きすることによって、ローカル・コンピュータ18内のRAMを消去することができる。このような高レベルのセキュリティが必要でない場合、RAMは、ローカル・コンピュータ上における他のアプリケーションが用いるために、単に解放すればよい。
【0067】
Adobe社のFlash開発ツールのような製品を、本開示の実施形態を実現するための開発プラットフォームとして用いると、インターネット上のURLが、ローカル・コンピュータの記憶コンポーネントの延長であるかのように、動作させることが可能となる。
【0068】
本開示の一実施形態によれば、配布モジュール上にある実行モジュールを作成し仮想環境にロードするように用意されている。環境が作成されると直ぐに、実行モジュールはコールを行い、最初の動作モジュールを仮想環境にロードする。
【0069】
本開示の態様による動作モジュールは、コール、ロード・コマンドによって、外部モジュールまたはその他の動作モジュールから仮想環境にロードすることができる任意のアプリケーション、またはアプリケーションの一部である。動作モジュールは、他の動作モジュールをコールすることによってメニューとして、または情報を求めてデータ・サーバに対するコールを行う機能アプリケーションとして、あるいは双方の組み合わせとして実行することができる。
【0070】
ローカル・コンピュータ上では、仮想環境において動作するアプリケーションは、転送するデータを暗号化することもできる。次いで、アプリケーションは、暗号化したデータを、データ・サーバ(群)を特定するURLに送る。
【0071】
データ・サーバ上における受信プロセスは、ウェブ・サービス・コネクタ、または.cfmページのような、インターネット上のページとすることができ、.cfmはColdfusionページの拡張子である。本開示のこの実施形態では、サーバに基づく処理にColdfusionを選択した。何故なら、これは、そのままでFlashに適応し、本開示の実施形態を作成するために用いた開発ツールであるからである。Flashは、.php、.asp、.net等を含む多数のインターネット・アプリケーション・プロトコルと相互作用することができる。
【0072】
データ・サーバに対するコールは、以下の機能のいずれでも、または全てを含むことができる。
1.アプリケーションが送ったデータを解読する。
【0073】
2.ODBC準拠データベースに対して照会を行う。照会は、データの抽出、データの追加、またはデータの編集を含むことができる。
3.データの追加処理を実行する。
【0074】
4.得られたデータを暗号化する。
5.ローカル・コンピュータ上の仮想環境内にあるアプリケーションにデータを返送する。
【0075】
次いで、ローカル・コンピュータ上にある仮想ソフトウェア・アプリケーションはデータを解読し、結果をユーザに表示する。
本開示の実施形態を実現するには、Adobe社のFlashソフトウェアを利用することができる。Adobe Flashソフトウェアは、ディジタル、ウェブ、および移動体プラットフォームに合わせて豊富なインタラクティブ・コンテンツを作成するために用いられるオーサリング環境である。Flash は、当初アニメーション・ツールとして設計された。従前からの漫画を映画化するのと同じように、Flashは、互いに重ね合わせたレイヤを有するように設計されており、レイヤの全てを通じたビューが完全なビューを呈示する。アニメーション化した漫画の場合、基本レイヤは何もない空色の画面とすることができる。次のレイヤは、その上の白い雲を有することができる。基準レベル上に重ねると、白い雲が空に示される。次のレベルは、山とすることができ、これらが青い背景の底面(bottom)を遮るので、3つのレイヤを通して見ると、青い空および白い雲がある山の場面が得られる。後続の各レイヤは、ムービーに新たな要素を追加し、これらのエレメントは、その下にあるものを遮ることになる。
【0076】
また、Flashは、アプリケーションの設計および作業にも同様に用いることができる。モジュールのレイヤを互いの上に重ね、モジュールを新たなレイヤ上に追加する限り、他のモジュールの全ては表示のために利用可能である。これらのレイヤに対する付番方式は、基準レイヤの0から始まり、数千ものレイヤを基準レイヤ上に重ねることができ、他のいずれのモジュールも除去する必要はない。既にモジュールを収容しているレイヤにモジュールをロードする場合、アプリケーションにおいて新たなモジュールが古いモジュールと入れ代わる。
【0077】
仮想ソフトウェアの開発では、0は基準レイヤ、または「起動」モジュールをロードするレイヤである。次いで、後続の各モジュールをこのレイヤの上または下に積層する。レイヤをロードするには、順次法(sequential methodology)を用いる必要はない。しかしながら、2つのモジュールが同じレイヤを共有することはできない。全てのモジュールの配置を追跡し続けることは重要である。何故なら、終了するときには、全てのレイヤを「アンロード」しなければならないからである。即ち、レイヤをアンロードする場合、モジュール内に格納または表示されている全てのデータもFlashから除去する。これは、複数のアプリケーションにアクセスを提供する媒体にとっては重要となる。即ち、セキュリティを向上するためには、ユーザは、1つのアプリケーションからのデータが背景内で浮遊することや、異なるアプリケーションに利用可能になることは望まない。
【0078】
本開示の一実施形態によれば、Flashを用いてアプリケーションを構築する場合、基準レベル即ち0レベルには「起動」モジュールを配置し、レベル10は「ログオン」モジュールを収容する。これら2つのモジュールを標準化することによって、アプリケーションが用いるデータへのアクセスを効果的に制御することができる。
【0079】
以下に、本開示の種々の態様を実現する方法を説明する。この説明は、本開示の開発プロセスおよび機能性を理解するのに役立つ。勿論、本明細書に記載する方法は、仮想ソフトウェアを開発するために利用することができる方法だけでなく、請求項または請求項の範囲を限定することを意図するのではないことは認められよう。この説明は、Adobe Flashを用いた開発に特定的であるが、Flash内部においてであっても、これがアプリケーションを開発する唯一の方法ではない。いずれのアプリケーションの開発にも微妙な差異があり、そのためにプロセスを異なる経路に導く可能性がある。したがって、この説明は、厳格な規則の集合ではなく、開発に対する指針と見なすこととする。
【0080】
仮想ソフトウェア・アプリケーション環境を作成するプロセスは、種々の方法で実現することができる。現在ブラウザ・ウィンドウ内で走るソフトウェア・アプリケーションの殆どいずれでも、仮想ソフトウェア環境において走るように変換することができる。本開示の一実施形態による仮想ソフトウェア環境の2つの突出した特徴は、キー認識、およびログオン画面のロードである。これら2つのステップがアクセスを付与し、データを管理する。データ管理の問題は、1つの配布媒体が複数の組織にアクセスを付与するために用いられると、特に重要となる可能性がある。
【0081】
セキュリティ強化のために、種々のシステムを用いることができる。例えば、本開示の実施形態は、ウィンドウス・クリプトAPI(windows crypto API)を用いた標準的なSSLを用いることができる。更に高いレベルのセキュリティには、媒体上における暗号化チップ技術と合わせて、実施形態を実現することができる。採用するセキュリティのレベルは、ユーザの個々の必要性に応じて変更することができる。このように、各アプリケーションは、ユーザの使用に合わせて個別設計することができる。
【0082】
キー認識は、本開示の種々の態様によるセキュリティ・プロセスの重要な部分とすることができる。キー認識は、媒体(例えば、スマート・カード)に特定の組織のアプリケーションにアクセスさせ、キーが認識されない場合、媒体を完全に遮断する。組織は、それ自体のキー・データベースを維持することができ、あるいはキー・データベースを外部サービスによって制御することもできる。外部サービスにキー・データベースを制御させることの便益は、利用者がキーを複数の口座に対して相互引用できることである。例えば、利用者が、その金融組織、健康保険提供業者、年金計画および投資管理サービス等のような複数のソースから媒体を受信する場合がある。外部サービスは、相互引用プロセスを提供することができるので、これらのキーの内任意のものが利用者の口座の全てへのアクセスを提供することができる。これらの配布媒体キーのいずれかを紛失した場合、そのキーをディスエーブルすることができるが、他のキーはいずれも、相互引用されている他の口座の各々へのアクセスを提供し続ける。
【0083】
本開示の態様は、フラッシュ・ドライブを配布媒体として用いる場合を参照しながら説明する。勿論、フラッシュ・ドライブの使用は非限定的であり、本開示の態様は、他の種類の配布媒体を利用しても実用化することができることは認められよう。
【0084】
以下に、本開示の種々の態様を実現するために用いることができるプロセスを実行するために用いられるアプリケーションまたはモジュールの一部について説明する。
本開示の一実施形態によれば、「起動」アプリケーションを配布媒体内に設ける。キー認識は、配布媒体内に配布される「起動」アプリケーションにおいて完了する。「起動」アプリケーションは、数個の機能を実行し、これらの機能には、アプリケーションが動作する環境を作成し、URLをキー・データベースおよび「ログオン」モジュールに供給し、WEBサービス・コネクタを用いてまたは標準的なURLへのコールによってデータベースに接続し、サーバ・レベルにおいて実行されるキー妥当性判断を検証し、「ログオン」モジュールをロードすることを含む。
【0085】
媒体、およびこの媒体上で提供される「起動」アプリケーションは、殆ど値のデータを収容しない。しかしながら、媒体を紛失したりまたは盗まれた場合でも、媒体にリバース・エンジニアリングやディコンパイルがかけられる現実的な公算は殆どない。キーには、暗号化チップを通じて、これらのチップを市場に現在供給している第三者が提供する、チップに関するセキュリティを設けることができる。理論的には、暗号化チップは、キー番号を露出する時点で、文字どおり1つのレイヤを磨く(sand down)ことができるが、このプロセスは精巧であり、精巧な電子機器および技法を必要とする。いずれにしろ、暗号化チップが損なわれるという、可能性が低い状況においても、唯一の露出は、1つの媒体およびそれに関連があるアカウントに対してだけである。本開示の態様によれば、媒体を紛失したと報告された場合、サーバ上でキーにインアクティブの印を付けることができ、損なわれたキーを役に立たなくすることができる。本開示の一実施形態によれば、キー照会に対するインアクティブな応答が、暗号化チップを自己破壊させることもできる。
【0086】
何らかの理由で、「起動」アプリケーション自体が損なわれた場合、ハッカーに入手可能なデータは、キー・データベースのURL、および「ログオン」モジュールをロードするために用いられるURLだけである。クライアントのデータおよびアプリケーションの位置は、損なわれない。これは、「ログオン」モジュールの設計によって保証される。「ログオン」モジュールは、残りのアプリケーション・モジュールおよびデータベース(群)のURLを収容する。
【0087】
先に記したように、キーはアクティブまたは非アクティブのいずれかである。望まれるセキュリティのレベルに応じて、検証中にキーがアクティブでないと判断された場合、媒体上のチップおよび関連する回路は、チップに「自己破裂」させることができるように、および/またはキーがもはや有効でないことを述べるメッセージを提示するように設計することができる。チップが破壊された媒体には、キーを再度検証する理由は全くない。相互参照データベースは、そのキーを除去するように修正することができる。ある者が再度配布媒体を使用しようとして、「起動」アプリケーションが再度そのキーのチップからの読み取りを検査した場合、データベースに対してコールすることなく、キーがアクティブでないことを述べるメッセージを表示することができる。
【0088】
キーがアクティブな場合、キー検証に成功した後、「起動」アプリケーションは「ログオン」モジュールをロードし、全ての制御を「ログオン」モジュールに移管する。本開示の一実施形態によれば、これは、「起動」アプリケーションにおいて最後に実行する機能を、「ログオン」モジュールのロードにすることによって、行うことができる。
【0089】
「ログオン」モジュールは、本開示の種々の実施形態が利用する仮想ソフトウェアの種々の態様にとって、突出した特徴である。「ログオン」モジュールは、キーを有する配布媒体の保持者が許可されたユーザであることを更に検証するプロセスを提供する。ログオン中に用いられたユーザ名およびパスワードは、あらゆるオンライン・アプリケーションと同様に機能するが、追加のデータを1つ、即ち、暗号化キーを転送する。リモート・サーバ側では、リモート・サーバが、ユーザ名、パスワード、およびキーの組み合わせが正しいことを検証する。これら3つのフィールドの組み合わせのいずれかが正しくない場合、プロセスは「無効ユーザ」メッセージを、ローカル・コンピュータにおける「ログオン」モジュールに返送し、ユーザに表示する。これによって、キーを保持している人が真の所有者であること、または少なくとも真の所有者のログオン情報を彼らのキーと共に有することを保証する。
【0090】
組織は、ログオン・プロセスにおけるアクセス制御のために、追加のパラメータ・チェックを追加することができる。ここで望むことは、ユーザの許可の範囲に該当しないソフトウェア全体のセクションへのユーザ・アクアセスを排除することである。このレベルでパラメータ・チェックを実行することによって、クライアントはモジュールをダウンロードしてセキュリティを高める必要性を解消することができる。このレベルのセキュリティの一例に、車両を製造する計画および概要(schematics)へのアクセスを提供する自動車会社(例えば、組織)がある。この組織は、データへのアクセスをサブコントラクタに提供したいが、サブコントラクタには、自動車全体ではなく、彼らの仕事を完成させるために必要なデータにアクセスするだけにして欲しい。各サブコントラクタに利用可能なデータ・アクセスを制限するように、パラメータを設定することができる。
【0091】
キーが有効であり、ログオン情報が正しいと仮定すると、アプリケーションは次の論理モジュールをロードする。本開示の一実施形態によれば、次にロードするモジュールは「制御」モジュールである。この実施形態によれば、制御モジュールは、ボタン/リンクの1群を、利用可能なプロセスに表示し、および/または追加の表示情報を提供することもできる。
【0092】
本開示の一実施形態によれば、モジュールから1つを選択し、これを例外なくデータのための保管場所として常に用いる。例えば、この実施形態によれば、「ログオン」モジュールは、常にデータの保管場所として用いられる。データを配置し保持するプロセスは、モジュール固有である。即ち、モジュールがロードされている限り、データは、現在アプリケーションにロードされている他のいずれのモジュールにも利用可能である。「ログオン」モジュールをアンロードすると、全てのデータがメモリから一掃され、アプリケーションの残りの部分にも、更に後続のいずれのアプリケーションにももはや利用可能ではなくなる。
【0093】
本開示の一実施形態によれば、「ログオン」モジュールをアンロードすることによるデータのメモリからの一掃により、表示されているデータおよび処理のために用いられるデータの双方全てに対するアクセスが除去される。別の実施形態によれば、「ログオン」モジュールをアンロードすると、他のアプリケーション・モジュールの表示フィールドに格納されているデータを除いて、表示されているデータおよび処理のために用いられるデータの全てに対するアクセスが除去される。本開示の一実施形態によれば、「制御」モジュールに「終了機能」を設ける。データがロードされる毎に、エントリをこの機能に書き込み、そのレイヤをアンロードする。終了機能を実行すると、データを収容している各レイヤをアンロードし、これらのモジュールにおいて表示されているデータも全てアンロードする。本システムは、アプリケーションのレベル毎にモジュール・アンロードを実行する。未実装レベル(unpopulated level)をアンロードするコマンドは、無視される。
【0094】
以下の説明は、銀行組織の要件の一例を実現する本開示の一実施形態に該当する。
本開示の一実施形態によれば、「制御」モジュールは、ログオンが完了した後にロードされる最初のモジュールである。「制御」モジュールは、画面の左片に沿ってボタンを表示し、各ボタンは、アプリケーションまたは機能のモジュールに対応する。これらのボタンは、アプリケーションの他のモジュールと相互作用を行う。これらのボタンの1つをクリックすると、モジュールをロードする(未だロードされていない場合)か、またはモジュールを表示する(既にロードされている場合)。
【0095】
一実施形態によれば、「アカウント」モジュールが、制御モジュールの直後にロードされる次のモジュールであり、ユーザの相互作用なしにロードすることができる。「アカウント」モジュールは、アカウント画面の上辺にわたってタブを表示する。各タブは、「制御」モジュールにおけるボタンのように機能する。即ち、タブを選択すると、モジュールがロードされる(未だロードされていない場合)か、または既にロードされている場合、モジュールが表示される。現在選択されているタブは、他のタブとは異なる色になる。
【0096】
「アカウント情報」モジュールは、次にロードされるモジュールであり、ユーザの相互作用なしにロードすることができる。このモジュールは、この組織を通じて利用可能な口座のリストを表示する。例えば、組織が銀行のような金融組織である場合、その銀行でのユーザの口座リストが表示される。リストには、ユーザ・ログオンが成功した後に照会されログオン・モジュールにロードされたデータが入れられる。ユーザがある口座上でクリックすると、選択されたアカウントキーをサーバに送る機能がコールされ、次いでサーバはクエリを処理して、ある日付の範囲内でキーに関係するアカウントの詳細を全て選択する。次いで、結果をアプリケーションに戻し、「ログオン」モジュールに格納する。結果が戻されると、アプリケーションは「アカウント情報」を隠し、「アカウント詳細」モジュールをロードする、即ち、出現させ、「アカウント詳細」モジュールに表示するために、クエリからの結果をロードする。
【0097】
「口座詳細」モジュールは、ユーザの要求に応じてロードされる。ユーザが「口座情報」モジュールにおいてある口座上でクリックすると、「ログオン」モジュールにおける機能が実行されて、銀行データベースに、当該口座に関係する業務処理のリストを照会する。口座キー変数を「ログオン」モジュール機能に受け渡し、照会すべき口座を特定する。次いで、「ログオン」モジュールは照会プロセスを走らせ、サーバから結果が返送されると、口座詳細モジュールをロードまたは表示し、照会の結果を表示する。このモジュールでは、表示は、スクロール・バーに添付するテキスト・ボックスである。このボックスは、データが全て表示されることを確保するように設定されたタブを有し、照会結果は、一度に1行ずつロードされる。本開示の一実施形態によれば、ボタンを表示することができ、これをクリックしたときに、業務処理に関係するチェック画像が格納されている場合、チェックが表示される。
【0098】
「口座」または「制御」モジュールにおいて「資金移動」ボタン上でクリックしたことの結果、「移動」モジュールをロードまたは表示する。このモジュールは、2つのドロップ・ダウン、コンボ、ボックスを有し、これらには、利用者の口座およびその残高のリストが、選択のために収納されている。利用者は、「移動元」口座および「移動先」口座を選択し、次いで移動する金額、移動の日付、および移動の頻度を入力する。次いで、受入ボタン上でクリックすることによって、データをリモート・サーバに送り、銀行による夜間バッチ処理のために格納する。
【0099】
「口座」または「制御」モジュールにおいて「請求書支払い」ボタン上でクリックしたことの結果、「請求書支払い」モジュールをロードして表示する。このモジュールは、ユーザに納入業者をユーザの口座データベースに追加させ、ユーザに請求書支払い金額および支払い日付を設定させる。ユーザは、支払いの日付、または支払いの頻度、例えば、毎週または毎月を指定することができる。これらの支払いは、夜間バッチにおいて受取人によって処理することができる。
【0100】
銀行のバッチ処理は、既にしかるべく存在していると思われ、本開示のこの実施形態を用いた利用者による相互作用における変化による影響を受けないので、これについては論じない。
【0101】
「口座」または「制御」モジュールにおいて「顧客支援」ボタン上でクリックしたことの結果、「顧客支援」モジュールをロードして教示する。「顧客支援」モジュールは、利用者についてのテキスト情報へのアクセスを提供する。「顧客支援」モジュールは、テキスト・ボックスに、ボックスの右側に沿ってスクロール・バーを設け、長すぎるデータをボックス内に納まるように表示する。このボックスには、選択したボタンに基づいたデータを収納することができる。これによって、複数のページまたはモジュールをロードする必要性を排除する。
【0102】
本開示の種々の態様は、ディジタル電子回路において、またはコンピュータ・ハードウェア、ファームウェア、ソフトウェア、あるいはこれらの組み合わせにおいて実現することができる。本システムは、コンピュータ・プログラム生産物、即ち、情報担体、例えば、機械読み取り可能記憶デバイスまたは伝搬信号において実体的に具体化した、データ処理装置、例えば、プログラマブル・プロセッサ、コンピュータ、または複数のコンピュータによる実行のため、またはその動作を制御するためのコンピュータ・プログラムとして実現することができる。コンピュータ・プログラムは、コンパイル言語またはインタプリタ言語を含む任意の形態のプログラミング言語で書くことができ、単体プログラム、またはモジュール、コンポーネント、サブルーチン、あるいは計算環境における使用に適したその他のユニットを含む、あらゆる形態で展開することができる。コンピュータ・プログラムは、1カ所における1つのコンピュータまたは複数のコンピュータ上で実行するように、または複数の場所に分散し通信ネットワークによって相互接続するように展開することができる。
【0103】
本開示と関連のある方法ステップは、入力データを処理して出力を発生することにより、本開示の機能を実行するコンピュータ・プログラムを実行する1つ以上のプログラマブル・プロセッサによって実行することができる。また、方法ステップは、特殊目的論理回路、例えば、FPGA(フィールド・プログラマブル・ゲート・アレイ)またはASIC(特定用途集積回路)によって実行することができ、本開示の装置は、特殊目的論理回路として実現することができる。
【0104】
コンピュータ・プログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの双方、ならびに任意の種類のディジタル・コンピュータの1つ以上の任意のプロセッサを含む。一般に、プロセッサは、命令およびデータをリード・オンリ・メモリまたはランダム・アクセス・メモリあるいは双方から受け取る。コンピュータのエレメントには、命令を実行するプロセッサと、命令およびデータを格納する1つ以上のメモリ・デバイスとがある。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含むか、あるいはこれらからデータを受け取るまたはこれらにデータを転送する、あるいは双方を行うように動作的に結合されている。コンピュータ・プログラム命令およびデータを具体化するのに適した情報担体には、全ての形態の不揮発性メモリが含まれ、一例として、半導体メモリ・デバイス、例えば、EPROM(消去可能プログラマブル・リード・オンリ・メモリ)、EEPROM(電気的消去可能プログラマブル・リード・オンリ・メモリ)、およびフラッシュ・メモリ・デバイス、磁気ディスク、例えば、内部ハード・ディスクまたはリムーバブル・ディスク、光磁気ディスク、CD−ROM(コンパクト・ディスク・リード・オンリ・メモリ)、およびDVD−ROM(ディジタル・バーサタイル・ディスク・リード・オンリ・メモリ)が含まれる。プロセッサおよびメモリは、特殊目的論理回路によって補うこと、またはその中に組み込むことができる。
【0105】
ユーザとの相互作用に備えるために、本開示の態様は、情報をユーザに表示するためのディスプレイ・デバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザが入力をコンピュータに供給することができるキーボードおよびポインティング・デバイス、例えば、マウスまたはトラック・ボールを有するコンピュータ上で実現することができる。また、ユーザとの相互作用に備えるために、他の種類のデバイスを用いることもできる。例えば、ユーザに提供するフィードバックは、任意の形態の検知フィードバックでも可能であり、例えば、視覚フィードバック、聴覚フィードバック、触覚フィードバックがあり、ユーザからの入力は、音響、音声、または接触入力を含む、任意の形態で受け取ることができる。
【0106】
本開示の態様は、バック・エンド・コンポーネントを、例えば、データ・サーバとして含む計算システム、またはミドルウェア・コンポーネント、例えば、アプリケーション・サーバを含む計算システム、あるいはフロント・エンド・コンポーネント、例えば、グラフィカル・インターフェースまたはウェブ・ブラウザを含み、ユーザがこれによって本開示の実施態様と相互作用を行うことができる計算システム、あるいはこのようなバック・エンド・コンポーネント、ミドルウェア・コンポーネント、またはフロント・エンド・コンポーネントの任意の組み合わせにおいて実演することができる。計算システムのコンポーネントは、ディジタル・データ通信の任意の形態または媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカル・エリア・ネットワーク(「LAN」)、およびワイド・エリア・ネットワーク(「WAN」)、例えば、インターネットが含まれる。
【0107】
計算システムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに離れており、通例通信ネットワークを通じて相互作用する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で走り、互いに対してクライアント−サーバ関係を有するコンピュータ・プログラムによって生ずる。
【0108】
特定的な実施形態に関して、本開示を説明した。他の実施形態も、以下の請求項の範囲に該当する。例えば、本システムは、更に大きなシステムにおけるコンポーネントとして記載したが、他のシステムの中でまたは単体システムとして実現することもできる。
【0109】
以上の教示を検討すれば、本開示の多数の更に別の修正や変形も可能である。したがって、添付した請求項の範囲内において、本開示は、具体的に本明細書で説明したこと以外でも実用化できることは言うまでもない。例えば、異なる例示的実施形態のエレメントおよび/または特徴を互いに組み合わせること、および/または互いに交換することも、本開示および添付した請求項の範囲内で可能である。
【特許請求の範囲】
【請求項1】
インターネット・セキュリティを提供する方法であって、
第1実行可能アプリケーション・モジュールを含む記憶媒体を提供するステップと、
前記記憶媒体のローカル・コンピュータへの入力に応答して、前記第1実行可能アプリケーション・モジュールを、前記ローカル・コンピュータ内の仮想メモリにロードし、前記第1実行可能アプリケーション・モジュールを実行し、前記第1実行可能アプリケーション・モジュールが、少なくとも1つのリモート・サーバを特定する情報を提供するステップと、
前記第1実行可能アプリケーション・モジュールが提供する前記情報を用いて、前記ローカル・コンピュータと前記リモート・サーバとの間において通信を行うステップと、
前記リモート・サーバに、第2アプリケーション・モジュールを前記ローカル・コンピュータに送るように命令するステップと、
前記第2アプリケーション・モジュールを受信したときに、該第2アプリケーション・モジュールを前記ローカル・コンピュータ上の仮想メモリにロードするステップと、
前記仮想メモリから前記第2アプリケーション・モジュールを実行し、プロンプトをユーザに表示するステップと、
を備えた、方法。
【請求項2】
請求項1記載の方法において、前記第1および第2実行可能アプリケーション・モジュールの少なくとも1つが、ロード後自動的に実行される、方法。
【請求項3】
請求項1記載の方法において、前記実行可能アプリケーション・モジュールの少なくとも1つを仮想メモリにロードしたとき、前記第1および第2実行可能アプリケーション・モジュールの前記少なくとも1つを実行すべきか否か判断するように、ユーザに促す、方法。
【請求項4】
請求項1記載の方法であって、更に、前記ローカル・コンピュータがアクティブのインターネット接続を有するか否か判断するステップを備えており、前記ローカル・コンピュータがアクティブのインターネット接続を有していないと判断した場合、ユーザに通知し、アクティブのインターネット接続を提供するようにユーザに要求する、方法。
【請求項5】
請求項1記載の方法において、前記ローカル・コンピュータ上の仮想メモリは、ランダム・アクセス・メモリ(RAM)を備えた、方法。
【請求項6】
請求項1記載の方法において、前記第1実行可能アプリケーション・モジュールは、仮想メモリにロードした後自動的に実行されるログオン・アプリケーション・モジュールを含む、方法。
【請求項7】
請求項1記載の方法において、前記第1実行可能アプリケーション・モジュールを自動的に仮想メモリにロードする、方法。
【請求項8】
インターネット・セキュリティを提供する方法であって、
少なくとも1つのリモート・サーバへのアクセスを提供するアクセス・アプリケーション・モジュールを含む記憶媒体を提供するステップと、
前記記憶媒体をローカル・コンピュータに入力したことに応答して、前記アクセス・アプリケーション・モジュールを仮想メモリにロードし、前記アクセス・アプリケーション・モジュールを実行し、リモート・アクセス・モジュールを前記少なくとも1つのリモート・サーバからダウンロードするステップと、
前記リモート・アクセス・モジュールを前記ローカル・コンピュータ上の仮想メモリにロードし、アクセス画面をユーザに供給し、該アクセス画面が、少なくとも1つのリモート・データ・サーバへのアクセスのためリモート・ログオン・データを入力するように、ユーザに促すステップと、
リモート・ログオン・データを入力するステップと、
前記リモート・ログオン・データが有効である場合、少なくとも1つの追加のアプリケーション・モジュールを前記少なくとも1つのリモート・サーバから前記ローカル・コンピュータにダウンロードするステップと、
前記少なくとも1つの追加のアプリケーション・モジュールを仮想メモリにロードするステップと、
前記少なくとも1つの追加のアプリケーション・モジュールを実行するステップと、
データ表示画面およびナビゲーション画面のうち少なくとも1つをユーザに表示するステップと、
を備えた、方法。
【請求項9】
請求項8記載の方法において、前記アクセス画面を仮想メモリに供給するために前記アクセス・アプリケーション・モジュールをロードする前に、前記ローカル・コンピュータにログオンするためのローカル・ログオン情報を提供するように、ユーザに促す、方法。
【請求項10】
請求項8記載の方法において、前記少なくとも1つのアクセス・アプリケーション・モジュールは、前記ローカル・コンピュータ内の前記仮想メモリにロードするアプリケーション表示モジュールを含む、方法。
【請求項11】
請求項10記載の方法であって、更に、前記ローカル・コンピュータ上で表示するデータを、前記仮想メモリに、前記アプリケーション表示モジュールと共にロードするステップを備えており、前記表示するデータは、前記記憶媒体と関連した少なくとも1つのアカウントを特定するアカウント情報を含む、方法。
【請求項12】
請求項10記載の方法において、前記アプリケーション表示モジュールは、実現することができる複数の機能を表示し、少なくとも1つの機能を選択するようにユーザに促す、方法。
【請求項13】
請求項12記載の方法において、ユーザが少なくとも1つの機能を選択したときに、選択された機能と関連する少なくとも1つのプロセス・モジュールを、前記リモート・サーバから前記ローカル・コンピュータにダウンロードし、前記少なくとも1つのプロセス・モジュールを前記仮想メモリにロードし、前記プロセス・モジュールを仮想メモリから実行する、方法。
【請求項14】
請求項8記載の方法において、前記少なくとも1つのリモート・サーバは、アプリケーション・サーバおよびデータ・サーバのうち少なくとも1つを含む、方法。
【請求項15】
請求項14記載の方法において、前記少なくとも1つのアプリケーション・サーバおよびデータ・サーバは、別個のURLに位置する、方法。
【請求項16】
請求項8記載の方法において、前記リモート・サーバは、リモート・アプリケーション制御サーバを含み、該リモート・アプリケーション制御サーバは、少なくとも1つのリモート・アプリケーション・サーバおよび少なくとも1つのリモート・データ・サーバの一方または双方にアクセスする、方法。
【請求項17】
請求項16記載の方法において、前記リモート・サーバは、少なくとも1つのアプリケーションおよびデータの一方または双方を入手し、該少なくとも1つのアプリケーションおよびデータの一方または双方を前記ローカル・コンピュータにダウンロードすることができる、方法。
【請求項18】
請求項17記載の方法において、ダウンロードした後、前記少なくとも1つのアプリケーションおよびデータの一方または双方は前記ローカル・コンピュータの仮想メモリにロードされる、方法。
【請求項19】
リモート・アプリケーションおよびリモート・データのうち少なくとも1つに対する安全なアクセスを提供するためのコンピュータ実行可能コードを含む配布記録媒体であって、該配布記録媒体は、第1コンピュータ実行可能アプリケーション・モジュールを含み、該第1コンピュータ実行可能アプリケーション・モジュールが、
第1コンピュータ実行可能アプリケーション・モジュールをローカル・コンピュータ上の仮想メモリにロードするコードと、
所定のURLの少なくとも1つのリモート・サーバにアクセスするコードと、
前記所定のURLの少なくとも1つのリモート・サーバが第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つを前記ローカル・コンピュータにダウンロードすること、を要求するコードと、
前記第2実行可能アプリケーション・モジュールおよびデータのうち前記少なくとも1つを前記ローカル・コンピュータ上の仮想メモリにロードするコードと、
を含む、配布記録媒体。
【請求項1】
インターネット・セキュリティを提供する方法であって、
第1実行可能アプリケーション・モジュールを含む記憶媒体を提供するステップと、
前記記憶媒体のローカル・コンピュータへの入力に応答して、前記第1実行可能アプリケーション・モジュールを、前記ローカル・コンピュータ内の仮想メモリにロードし、前記第1実行可能アプリケーション・モジュールを実行し、前記第1実行可能アプリケーション・モジュールが、少なくとも1つのリモート・サーバを特定する情報を提供するステップと、
前記第1実行可能アプリケーション・モジュールが提供する前記情報を用いて、前記ローカル・コンピュータと前記リモート・サーバとの間において通信を行うステップと、
前記リモート・サーバに、第2アプリケーション・モジュールを前記ローカル・コンピュータに送るように命令するステップと、
前記第2アプリケーション・モジュールを受信したときに、該第2アプリケーション・モジュールを前記ローカル・コンピュータ上の仮想メモリにロードするステップと、
前記仮想メモリから前記第2アプリケーション・モジュールを実行し、プロンプトをユーザに表示するステップと、
を備えた、方法。
【請求項2】
請求項1記載の方法において、前記第1および第2実行可能アプリケーション・モジュールの少なくとも1つが、ロード後自動的に実行される、方法。
【請求項3】
請求項1記載の方法において、前記実行可能アプリケーション・モジュールの少なくとも1つを仮想メモリにロードしたとき、前記第1および第2実行可能アプリケーション・モジュールの前記少なくとも1つを実行すべきか否か判断するように、ユーザに促す、方法。
【請求項4】
請求項1記載の方法であって、更に、前記ローカル・コンピュータがアクティブのインターネット接続を有するか否か判断するステップを備えており、前記ローカル・コンピュータがアクティブのインターネット接続を有していないと判断した場合、ユーザに通知し、アクティブのインターネット接続を提供するようにユーザに要求する、方法。
【請求項5】
請求項1記載の方法において、前記ローカル・コンピュータ上の仮想メモリは、ランダム・アクセス・メモリ(RAM)を備えた、方法。
【請求項6】
請求項1記載の方法において、前記第1実行可能アプリケーション・モジュールは、仮想メモリにロードした後自動的に実行されるログオン・アプリケーション・モジュールを含む、方法。
【請求項7】
請求項1記載の方法において、前記第1実行可能アプリケーション・モジュールを自動的に仮想メモリにロードする、方法。
【請求項8】
インターネット・セキュリティを提供する方法であって、
少なくとも1つのリモート・サーバへのアクセスを提供するアクセス・アプリケーション・モジュールを含む記憶媒体を提供するステップと、
前記記憶媒体をローカル・コンピュータに入力したことに応答して、前記アクセス・アプリケーション・モジュールを仮想メモリにロードし、前記アクセス・アプリケーション・モジュールを実行し、リモート・アクセス・モジュールを前記少なくとも1つのリモート・サーバからダウンロードするステップと、
前記リモート・アクセス・モジュールを前記ローカル・コンピュータ上の仮想メモリにロードし、アクセス画面をユーザに供給し、該アクセス画面が、少なくとも1つのリモート・データ・サーバへのアクセスのためリモート・ログオン・データを入力するように、ユーザに促すステップと、
リモート・ログオン・データを入力するステップと、
前記リモート・ログオン・データが有効である場合、少なくとも1つの追加のアプリケーション・モジュールを前記少なくとも1つのリモート・サーバから前記ローカル・コンピュータにダウンロードするステップと、
前記少なくとも1つの追加のアプリケーション・モジュールを仮想メモリにロードするステップと、
前記少なくとも1つの追加のアプリケーション・モジュールを実行するステップと、
データ表示画面およびナビゲーション画面のうち少なくとも1つをユーザに表示するステップと、
を備えた、方法。
【請求項9】
請求項8記載の方法において、前記アクセス画面を仮想メモリに供給するために前記アクセス・アプリケーション・モジュールをロードする前に、前記ローカル・コンピュータにログオンするためのローカル・ログオン情報を提供するように、ユーザに促す、方法。
【請求項10】
請求項8記載の方法において、前記少なくとも1つのアクセス・アプリケーション・モジュールは、前記ローカル・コンピュータ内の前記仮想メモリにロードするアプリケーション表示モジュールを含む、方法。
【請求項11】
請求項10記載の方法であって、更に、前記ローカル・コンピュータ上で表示するデータを、前記仮想メモリに、前記アプリケーション表示モジュールと共にロードするステップを備えており、前記表示するデータは、前記記憶媒体と関連した少なくとも1つのアカウントを特定するアカウント情報を含む、方法。
【請求項12】
請求項10記載の方法において、前記アプリケーション表示モジュールは、実現することができる複数の機能を表示し、少なくとも1つの機能を選択するようにユーザに促す、方法。
【請求項13】
請求項12記載の方法において、ユーザが少なくとも1つの機能を選択したときに、選択された機能と関連する少なくとも1つのプロセス・モジュールを、前記リモート・サーバから前記ローカル・コンピュータにダウンロードし、前記少なくとも1つのプロセス・モジュールを前記仮想メモリにロードし、前記プロセス・モジュールを仮想メモリから実行する、方法。
【請求項14】
請求項8記載の方法において、前記少なくとも1つのリモート・サーバは、アプリケーション・サーバおよびデータ・サーバのうち少なくとも1つを含む、方法。
【請求項15】
請求項14記載の方法において、前記少なくとも1つのアプリケーション・サーバおよびデータ・サーバは、別個のURLに位置する、方法。
【請求項16】
請求項8記載の方法において、前記リモート・サーバは、リモート・アプリケーション制御サーバを含み、該リモート・アプリケーション制御サーバは、少なくとも1つのリモート・アプリケーション・サーバおよび少なくとも1つのリモート・データ・サーバの一方または双方にアクセスする、方法。
【請求項17】
請求項16記載の方法において、前記リモート・サーバは、少なくとも1つのアプリケーションおよびデータの一方または双方を入手し、該少なくとも1つのアプリケーションおよびデータの一方または双方を前記ローカル・コンピュータにダウンロードすることができる、方法。
【請求項18】
請求項17記載の方法において、ダウンロードした後、前記少なくとも1つのアプリケーションおよびデータの一方または双方は前記ローカル・コンピュータの仮想メモリにロードされる、方法。
【請求項19】
リモート・アプリケーションおよびリモート・データのうち少なくとも1つに対する安全なアクセスを提供するためのコンピュータ実行可能コードを含む配布記録媒体であって、該配布記録媒体は、第1コンピュータ実行可能アプリケーション・モジュールを含み、該第1コンピュータ実行可能アプリケーション・モジュールが、
第1コンピュータ実行可能アプリケーション・モジュールをローカル・コンピュータ上の仮想メモリにロードするコードと、
所定のURLの少なくとも1つのリモート・サーバにアクセスするコードと、
前記所定のURLの少なくとも1つのリモート・サーバが第2実行可能アプリケーション・モジュールおよびデータのうち少なくとも1つを前記ローカル・コンピュータにダウンロードすること、を要求するコードと、
前記第2実行可能アプリケーション・モジュールおよびデータのうち前記少なくとも1つを前記ローカル・コンピュータ上の仮想メモリにロードするコードと、
を含む、配布記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2010−527050(P2010−527050A)
【公表日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2010−501011(P2010−501011)
【出願日】平成20年3月28日(2008.3.28)
【国際出願番号】PCT/US2008/004105
【国際公開番号】WO2008/121345
【国際公開日】平成20年10月9日(2008.10.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(509270199)
【Fターム(参考)】
【公表日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願日】平成20年3月28日(2008.3.28)
【国際出願番号】PCT/US2008/004105
【国際公開番号】WO2008/121345
【国際公開日】平成20年10月9日(2008.10.9)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WINDOWS
【出願人】(509270199)
【Fターム(参考)】
[ Back to top ]