(57)【特許請求の範囲】
【請求項１】
非対称暗号化によって暗号化された対称鍵、前記非対称暗号化に関連した公開鍵、前記対称鍵を使って暗号化された対称暗号化データを符号化したものを記録した取外し可能コンピュータ可読媒体を読取装置によって受取るステップと、
前記公開鍵および使い捨てパスワードとして使用するために生成したランダム値を含む情報を自動ホストに送付して当該公開鍵を使用して適合する秘密鍵を選択させるステップと、
前記公開鍵に関連して選択された前記秘密鍵によってサインした前記ランダム値を含む応答を前記ホストから受取るステップと、
前記サインされた応答に含まれる前記ランダム値の確認に応答して、前記秘密鍵を使って前記対称鍵を前記自動ホストに復号させるステップと、
前記復号された対称鍵を使って前記暗号化データを復号化するステップと、
を含む方法。
【請求項２】
前記ランダム値はナンスを含む、請求項１に記載の方法。
【請求項３】
前記データを復号化するステップは前記ホストによって行われる、請求項１に記載の方法。
【請求項４】
前記データを復号化するステップは前記読取装置によって行われる、請求項１に記載の方法。
【請求項５】
前記非対称暗号化によって暗号化された対称鍵を前記自動ホストに前記読取装置によって供給するステップと、
前記暗号化データを復号化するときに使うために前記自動ホストが選択した秘密鍵によって復号化された対称鍵を前記読取装置が受取るステップと、
を更に含む、請求項４に記載の方法。
【請求項６】
前記取外し可能コンピュータ可読媒体を読取装置によって受取るステップは、コンピュータ・テープを受取るステップを含む、請求項１に記載の方法。
【請求項７】
情報処理装置が、
非対称暗号化によって暗号化された対称鍵、前記非対称暗号化に関連した公開鍵、前記対称鍵を使って暗号化された対称暗号化データを符号化したものを記録した取外し可能コンピュータ可読媒体を読取装置によって受取るステップと、
前記公開鍵および使い捨てパスワードとして使用するために生成したランダム値を含む情報を自動ホストに送付して当該公開鍵を使用して適合する秘密鍵を選択させるステップと、
前記公開鍵に関連して選択された前記秘密鍵によってサインした前記ランダム値を含む応答を前記ホストから受取るステップと、
前記サインされた応答に含まれる前記ランダム値の確認に応答して、前記秘密鍵を使って前記対称鍵を前記自動ホストに復号させるステップと、
前記復号された対称鍵を使って前記暗号化データを復号化するステップと、
を実行するためのコンピュータ実行可能なプログラム。
【請求項８】
前記ランダム値はナンスを含む、請求項７に記載のコンピュータ・プログラム。
【請求項９】
前記データを復号化するステップは前記自動ホストによって行われる、請求項７に記載のコンピュータ・プログラム。
【請求項１０】
前記データを復号化するステップは前記読取装置によって行われる、請求項７に記載のコンピュータ・プログラム。
【請求項１１】
前記非対称暗号化によって暗号化された対象鍵を前記ホストに、前記読取装置によって供給するステップと、
前記暗号化データを復号化するときに使うために前記自動ホストからの前記アンラップされた対称鍵を、前記読取装置によって受取るステップと、
を更に実行する、請求項７に記載のコンピュータ・プログラム。
【請求項１２】
前記取外し可能コンピュータ可読媒体を読取装置によって受取るステップは、コンピュータ・テープを受取るステップを含む、請求項７に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・テープおよびテープ・ドライブのような取外し可能媒体におけるデータの安全な処理および暗号化のための技術に関するものである。
【背景技術】
【０００２】
搬送中の情報を保護するために、益々多くのデータが暗号化データとしてテープに書込まれる。一般に、このデータは対称鍵によって暗号化されており、そのテープを復号化するためにはその鍵を所持することが必要である。
【０００３】
秘密鍵暗号化法としても知られている対称暗号化は、暗号化側（または装置）および復号化側（または装置）の両方が単一の共通の鍵値を共用する暗号化方式を指す。対称暗号化は、唯一の鍵値またはパスワード値しか使用しない簡単なものであり、速く実行されるようになっている。１つの一般に使用されている暗号化方式は、データ暗号化標準（ＤＥＳ）である。
【０００４】
例えば、或るデータ・センタから他のデータ・センタにテープを搬出するのに備えて、そのテープに一組のデータベース・レコードが書込まれる場合、管理者は、データがそのテープに保存されているとき、そのデータを暗号化するＤＥＳ暗号化ルーチンのためのパスワードを指定することがある。したがって、管理者は、宛先のデータ・センタにおける意図された受領管理者とそのパスワードを安全に共用することになる。
【０００５】
搬送中にテープが盗まれたり、喪失されたり、或いは複製されたりした場合、そのデータを復号化しようとする人またはシステムは、それが秘密鍵（例えば、パスワード）または暗号化破壊ツールを所持してないとその復号化を行うことができないであろう。パスワードが漏洩することはよくあることであるが、暗号化破壊ツールも脆弱な暗号化方式に対して利用し得ることがある。
【０００６】
テープがその宛先のデータ・センタに到着するとき、そこの管理者はそのテープを装填し、ＤＥＳ復号化ルーチンにパスワードを供給し、そしてテープからデータが読取られるときにそれは復号化され、データベースのようなものにローカル的に格納されるであろう。
【０００７】
このように、テープを復号化する既存の手段は、暗号化鍵が外部エンティティによって読取用のテープ・ドライブにロードされることに基づいており、それは、テープを簡単にアクセスし得ることが暗号化鍵のローディングおよびデータの読取りを可能にするためである。これは、自動化することが難しい比較的安全でない環境をもたらす。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、本発明の目的は、データ・セキュリティを提供するだけでなく、比較的操作し易い、コンピュータ媒体の暗号化および復号化の方法およびシステムを提供することにある。
【課題を解決するための手段】
【０００９】
既存のテープ暗号化および処理方法は使い易いが、漏洩し易く且つ自動化し難いという未解決の問題点を、本発明者は認識していた。本発明は、テープが装填されるときおよび何らかのデータ読取りが行われる前に、最もそのデータを読取ることを望んでいるホスト・システムがテープ自体に関する所定の知識をもっているということを、そのシステムがテープ・ドライブに対して証明することによって、テープ装填および復号化プロセスを自動化する。これは、テープ・ドライブが「チャレンジ」、すなわち、適当な乱数列を発生すること、ホストが既知の情報を用いたそのチャレンジの順序を変えること、およびその順序変更が予想通りであることをテープ・ドライブが確認すること、によって行われる。ここで言う「チャレンジ」とは、ある値を相手に送り、相手がそれを暗号化して送り返し、それを解読して元の値と比較するような手順のことである。このように、テープ読取りシステムおよびテープ上のデータ・フォーマットは、強力な形式の暗号化を使用するように及び「チャレンジ応答」認証方式を使用するように機能強化される。
【発明を実施するための最良の形態】
【００１０】
Ａ．システム図
図１３は、本発明によるコンポーネントおよびシステムの構成６０を示し、その構成は、格納された暗号化データを有する取外し可能コンピュータ可読媒体６１を作成または創作するためのシステム６２を含む。本発明を適用し得る幾つかの共通に使用される取外し可能媒体６１は、コンピュータ・テープ及びテープ・カートリッジ５２、フロッピ・ディスク４３、取外し可能ハード・ディスク４０、フラッシュまたはサム・ドライブ４９、コンパクト・ディスク（例えば、ＣＤ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等）及びデジタル・バーサタイル・ディスク（例えば、ＤＶＤ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等）４６、取外し可能メモリ・モジュール（４０１）、および種々のメモリ・カード（例えば、CompactFLASH、Secure Data SD、Sony Memory Sticks（登録商標）等）４７を含む。本発明は、これら特定の媒体への適用に限定されないが、暗号化されたデータが格納または符号化される他のタイプの取外し可能コンピュータ媒体が使用することも可能である。本明細書の以下の部分を通して、代表的な例として、コンピュータ・テープを使用する多くのタイプの取外し可能媒体を参照することにする。
【００１１】
媒体６１は、互換性のある読取装置またはドライブに搬送され、宛先システム６４に相互接続される。本発明によれば、宛先システム６４の認証プロセスが十分に自動化され、従って、本発明を操作するために管理者が存在する必要はなく、管理者が存在する場合には、管理者相互作用は必要ない。
【００１２】
Ｂ．データ構造
図１は、取外し可能コンピュータ可読媒体、即ち複数の媒体６１上にまたはその媒体内に配置された本発明によるデータ構造を参照番号１００として示す。少なくとも１つのヘッダ領域１０１が設けられ、暗号化されたデータ・ブロックまたはファイルのような１つまたは複数の暗号化データ領域１０２と関連付けられる。ヘッダ内には、少なくとも１つの非対称的に暗号化された対称暗号鍵ＥＥＫ１０３および少なくとも１つの関連した公開非対称暗号鍵ＫＥＫ−ＰＵＢ１０４が格納され、それらの鍵の両方が少なくとも１つの暗号化データ領域１０２と関連付けられる。
【００１３】
Ｃ．汎用論理プロセス
図１４および図１５は本発明による汎用論理プロセス７０を示す。図１４には、１つまたは複数の取外し可能コンピュータ可読（Ｃ−Ｒ）媒体６１の一般的なプロセスが示され、その媒体６１には、非対称的に暗号化された対照暗号鍵（ＥＥＫ）を生じるために、管理者指定の対称暗号鍵（ＥＫ）自身が非対称暗号鍵（例えば、鍵暗号化鍵ＫＥＫ）によって暗号化(ラップ：wrap)される(ステップ７１)。ＥＥＫは、非対称暗号鍵の公開部分（ＫＥＫ−ＰＵＢ）のコピーと共に媒体６１のヘッダに格納される(ステップ７２)。
【００１４】
次に、データ、データ・ファイル、レコード等の１つまたは複数のブロックがＥＫを使って対称的に暗号化され(ステップ７３)、その暗号化されたデータが媒体６１上にまたは媒体６１内に格納または符号化される(ステップ７４)。次に、媒体６１が取り外され、宛先システムに搬送される(ステップ７５)。
【００１５】
図１５は、管理者が秘密鍵を共用することを必要とすることなく、宛先システムがデータをアクセスすることを許されるかどうかを決定し、それがデータを復号化することを許容するための本発明による汎用の論理的プロセス７００を示す。先ず、互換性のある読取装置またはドライブが取外し可能媒体６１上にまたはその媒体６１内に暗号化されたデータまたは格納されたデータをアクセスし得るよう、その媒体６１が受取られ、インストールされ、挿入され、装着され、または配置される（ステップ７０１）。
【００１６】
ドライブまたは読取装置によってランダム値（例えば、「ナンス」（使い捨てパスワード））が発生され（ステップ７０２）、それが非対称暗号鍵の公開部分（ＫＥＫ−ＰＵＢ）のコピーと共に宛先ホストに送られる（ステップ７０３）。
【００１７】
宛先ホストはナンスおよびＫＥＫ−ＰＵＢを受取り、そのＫＥＫ−ＰＵＢを使って、適合する秘密非対称暗号鍵（ＫＥＫ−ＰＲＩＶ）を選択する（ステップ７０４）。つぎに、それはＫＥＫ−ＰＲＩＶを使ってナンスをサインし、そのサインされたナンスがドライブまたは読取装置に戻される（ステップ７０６）。
【００１８】
次に、ドライブまたは読取装置は、ホストからのサインされた値がそのナンスに適合することを確認し(ステップ７０７)、それが肯定されれば、読取装置およびホストのいずれか、またはその２つの共同体がＫＥＫ−ＰＲＩＶを使って対称暗号鍵ＥＫの復号化を行い（ステップ７０８）、媒体６１からのデータの復号化がそれに続く（ステップ７０９）。
【００１９】
Ｄ．詳細な実施例
図１１および図１２は、本発明の実施例を更に詳細な信号フローの形態で提供し、本発明に従って配列された種々のシステムおよびコンポーネントの間の相互作用を示す。
【００２０】
図１１を参照すると、本発明の第１の局面に従って、対称暗号鍵ＥＫがコンピュータ・テープ５２におけるヘッダ・データ構造に格納される（伝送ステップ５０１）。そのヘッダ・データ構造自体は、鍵暗号鍵ＫＥＫと呼ばれる非対称暗号鍵を使用してテープ作成システム５１によって暗号化されている。テープ作成管理者またはユーザは、ＥＫを「ラップ（wrap）」するために使用されるＫＥＫの公開部分を指定し、その結果、非対称的に暗号化された対称暗号鍵ＥＥＫがテープ上に格納される。更に、非対称暗号鍵の公開部分ＫＥＫ−ＰＵＢがテープ上に配置される（伝送ステップ５０２）。次に、データが、ＥＫを使って対称鍵プロセスを通して暗号化された後、テープ上に配置される(伝送ステップ５０３)。
【００２１】
本発明のもう１つの局面によれば、テープが他のシステム５４において読取られるまたは装填されるべきとき、テープ５２はテープ・ドライブ５３に挿入され、テープ・ドライブのファームウェアがそのテープからヘッダ情報を読取る。テープ・ドライブは、それが保持する２０バイトのナンスのような既知の長さのランダム値（例えば、ナンス）を発生し、そのテープ・データを読取ろうとしているホスト・システムにも送る(伝送ステップ５０４)。ホスト・システムは公開鍵ＫＥＫ−ＰＵＢをテープ・ドライブによって提供され（伝送ステップ５０４）、「チャレンジ」に応答するためにおよび、最終的には、ヘッダにおけるＥＫを復号化するためにそれを使用する。
【００２２】
ホスト・システムはナンスおよびＫＥＫ−ＰＵＢを受け取り（伝送ステップ５０２、５０４）、ＫＥＫ−ＰＵＢを使用してどの秘密鍵（ＫＥＫ−ＰＲＩＶ）を使用すべきかを決定し（ステップ５１００）、しかる後、その選択されたＫＥＫ−ＰＲＩＶを使ってナンスをサインし、それをドライブ５３に戻す（伝送ステップ５０５）。
【００２３】
次に、テープ・ドライブ５３は、テープ・ヘッダからわかったＫＥＫ−ＰＲＩＶを使って、ホストによりサインされ、ナンスとなるべき値が、そのホストに送られたナンスと同じであるということを確認する(ステップ５２００)。それが肯定される場合、これは、チャレンジ（ホストへのナンスおよびＫＥＫ−ＰＵＢの発生）および応答（ＫＥＫ−ＰＲＩＶの正しい選択およびホストによるナンスのサイン）プロセスを成功裏に完成する。それは、ホストがテープ・データをアクセスすることを許されることを証明する。
【００２４】
最後に、本発明のもう１つの実施例によれば、ホストがテープ・ドライブからＫＥＫ保護されたＥＫを受取り（伝送ステップ５０１）、その選択され且つ証明されたＫＥＫ−ＰＲＩＶを使って対称ＥＫを複号化し（ステップ５３００）、それに続いて、復号化されたＥＫおよび適合する対称複号プロセスを使ってテープの暗号化データを復号化する（ステップ５４００）。この実施例５０は、テープ・ドライバがホストのためのテープ・データを復号化せず、代わりに、暗号化されたデータをホストに供給し、ホストがそのデータを復号化することを仮定している。
【００２５】
しかし、図１２に示されるような本発明のもう１つの実施例によれば、プロセス５０’のこの後者の部分は、ホストが正しい対称暗号鍵を供給する場合（伝送ステップ５０６）、テープ・データの復号化（アンラップ：unwrap）を行う（ステップ５４００’）ように調節される。従って、本実施例のこの変更では、ホストが、チャレンジ・レスポンス・フェーズ中に選択された（ステップ５１００）ＫＥＫ−ＰＲＩＶを使ってＥＫを復号化し（ステップ５３００）、しかる後、そのＥＫをテープ・ドライブ５３に送る（伝送ステップ５０６）。次に、テープ・ドライブ５３がテープ・データを複号化し（ステップ５４００’）、その未保護のまたは復号化されたデータをホストに送る（伝送ステップ５０７）。
【００２６】
Ｅ．適切な暗号化方法
対称暗号鍵を保護するために、何らかの適切な標準または専有の非対称暗号化方式を使用することも可能である。例えば、周知の Rivest-Shamir-Adlema（ＲＳＡ）方式、周知の「pretty good privacy」（ＰＧＰ）に従って、または、それとは別に、周知の「デジタル・シグニチャ・アルゴリズム（ＤＳＡ）に従って、非対称暗号化を利用することも可能である。対称暗号化方式に関しては、ＤＥＳのような周知のプロセスを利用することも可能である。
【００２７】
Ｆ．適切なコンピューティング・プラットフォーム
本発明の一実施例では、前述の論理的プロセスが、組込み型マイクロコントローラ、パーソナル・コンピュータ、ウェブ・サーバ、ウェブ・ブラウザのようなコンピュータ、或いは、パーソナル・デジタル・アシスタント（ＰＤＡ）、ウェブ・イネーブルド無線電話、または他のタイプの個人情報管理（ＰＩＭ）装置のような特有能力のあるコンピューティング・プラットフォームによって実行されるソフトウェアによって部分的または全体的に遂行される。
【００２８】
従って、ハイエンド・ウェブまたはエンタープライズ・サーバ・プラットフォームからパーソナル・コンピュータ、ポータブルＰＤＡ、またはウェブ・イネーブルド無線電話までの範囲の実施態様にわたるコンピューティング・プラットフォームの汎用アーキテクチャを見直すことは有益である。
【００２９】
図２を参照すると、中央処理ユニット（ＣＰＵ）２１を含む汎用アーキテクチャが示される。ＣＰＵ２１は、一般に、ランダム・アクセス・メモリ（ＲＡＭ）２４およびリード・オンリ・メモリ（ＲＯＭ）２５と関連したマイクロプロセッサ２２から構成される。多くの場合、ＣＰＵ２１は、キャッシュ・メモリ２３およびプログラマブル・フラッシュＲＯＭ２６も備えている。マイクロプロセッサ２２および種々のタイプのＣＰＵメモリとの間のインターフェースは、「ローカル・バス」と呼ばれることが多いが、より一般的なバス即ち業界標準のバスであってもよい。
【００３０】
多くのコンピューティング・プラットフォームは、ハードディスク・ドライブ（ＨＤＤ）、フロッピ・ディスク・ドライブ、コンパクト・ディスク・ドライブ（ＣＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ等）、並びに独自仕様のディスクおよびテープ・ドライブ（例えば、Iomega Zip（登録商標）、Jaz（登録商標）、Addonics SpurDisk（登録商標）等）も備えている。更に、或るストレージ・ドライブが、コンピュータ・ネットワークを介してアクセス可能なものであってもよい。
【００３１】
多くのコンピュータ・プラットフォームは、コンピュータ・プラットフォームの意図された機能に従って１つまたは複数の通信インターフェースを備えている。例えば、パーソナル・コンピュータは、多くの場合、高速シリアル・ポート（ＲＳ−２３２、ＲＳ−４２２等）、エンハンスト・パラレル・ポート（ＥＰＰ）、および１つまたは複数のユニバーサル・シリアル・バス（ＵＳＢ）ポートを備えている。コンピューティング・プラットフォームは、イーサネット（Ethernet）（登録商標）・カードのようなローカル・エリア・ネットワーク（ＬＡＮ）インターフェース、およびハイパフォーマンス・シリアル・バス（HighPerformance Serial Bus）ＩＥＥＥ−１３９４のような他の高速インターフェースを備えることも可能である。
【００３２】
無線電話および無線ネットワークＰＤＡのようなコンピューティング・プラットフォームは、アンテナと共に高周波（ＲＦ）インターフェースを備えることも可能である。場合によっては、コンピューティング・プラットフォームは、赤外線データ構成（ＩrＤＡ）インターフェースを備えることも可能である。
【００３３】
コンピューティング・プラットフォームは、多くの場合、インダストリ・スタンダード・アーキテクチャ（ＩＳＡ）、エンハンスト・インダストリ・スタンダード・アーキテクチャ（ＥＩＳＡ）、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）のような１つまたは複数の内部拡張スロット２１１、或いは、音声カード、メモリ・ボード、およびグラフィックス・アクセラレータのような他のハードウェアを追加するための独自のインターフェース・スロットを備えている。
【００３４】
更に、ラップトップ・コンピュータおよびＰＤＡのような多くのユニットが、ＰＣＭＣＩＡカード、SmartMedia（登録商標） カードのようなハードウェア拡張デバイス、並びに、取外し可能ハード・ドライブ、ＣＤドライブ、およびフロッピ・ドライブのような種々の独自のモジュールを容易に取付けるおよび取外す能力をユーザに許容する１つまたは複数の拡張スロット２１２を備えている。
【００３５】
多くの場合、ストレージ・ドライブ２９、通信インターフェース２１０、内部拡張スロット２１１、および外部拡張スロット２１２はＩＳＡ、ＥＩＳＡ、またはＰＣＩのような標準のまたはインダストリ・オープン・バス・アーキテクチャ２８を介してＣＰＵ２１と相互接続される。多くの場合、バス２８は独自の設計のものであってもよい。
【００３６】
コンピューティング・プラットフォームは、通常、キーボードまたはキーパッド２１６、およびマウスまたはポインタ装置２１７、および／またはタッチ・スクリーン・ディスプレイ２１８のような１つまたは複数の入力装置を備えている。パーソナル・コンピュータの場合、フルサイズ・キーボードが、トラック・ボールまたは TrackPoint（登録商標）のようなマウスまたはポインタ装置と共に提供される。ウェブ・イネーブルド無線電話の場合、簡単なキーパッドが１つまたは複数の機能特有のキーを備えている。ＰＤＡの場合、通常、タッチ・スクリーン２１８が手書き認識機能を備えていることが多い。
【００３７】
ウェブ・イネーブルド無線電話のマイクロフォンまたはパーソナル・コンピュータのマイクロフォンのようなマイクロフォン２１９は、コンピューティング・プラットフォームと共に供給される。このマイクロフォンは、単にオーディオおよび音声信号を伝えるために使用され、それは、音声認識機能を使って、ウェブ・サイトの音声ナビゲーションのようなユーザ選択を入力するために、または電話番号を自動ダイヤルするために使用することも可能である。
【００３８】
多くのコンピューティング・プラットフォームは、スチール・デジタル・カメラまたはフル・モーション・ビデオ・デジタル・カメラのようなカメラ装置２１００も備えている。
【００３９】
ディスプレイ２１３のような１つまたは複数のユーザ出力装置は大抵のコンピューティング・プラットフォームと共に提供される。ディスプレイ２１３は、陰極線管（ＣＲＴ）、薄膜トランジスタ（ＴＦＴ）アレイ、或いは、発光ダイオード（ＬＥＤ）または液晶ディスプレイ（ＬＣＤ）の簡単なセットを含む多くの形式を取ることが可能である。
【００４０】
多くの場合、１つまたは複数のスピーカ２１４および／または報知器２１５がコンピューティング・プラットフォームとも関連付けられる。スピーカ２１４は、無線電話のスピーカまたはパーソナル・コンピュータのスピーカのような音声および音楽を再生するために使用することが可能である。報知器２１５は、ＰＤＡおよびＰＩＭのような或る装置において一般的に見られる単純なビープ音発生器またはブザーの形式を取ることも可能である。
【００４１】
ユーザ入力装置および出力装置は、独自のバス構造および／またはインターフェースを介してＣＰＵ２１に直接に相互接続されてもよく、或いは、ＩＳＡ、ＥＩＳＡ、ＰＣＩ等のような１つまたは複数のインダストリ・オープン・バスを介して相互接続されてもよい。
【００４２】
コンピューティング・プラットフォームは、そのコンピューティング・プラットフォームの望ましい機能を具現化するために１つまたは複数のソフトウェアおよびファームウェア２１０１のプログラムを備えることも可能である。
【００４３】
次に、図３を参照すると、この範囲のコンピューティング・プラットフォームにおけるソフトウェアおよびファームウェア２１０１の汎用構成に関する更なる詳細が示される。ワード・プロセッサ、スプレッドシート、コンタクト管理ユーティリティ、アドレス・ブック、カレンダ、電子メール・クライアント、プレゼンテーション、金融および記帳プログラムのような１つまたは複数のオペレーティング・システム（ＯＳ）・ネイティブ・アプリケーション・プログラム２２３をコンピューティング・プラットフォーム上に設けることも可能である。
【００４４】
更に、１つまたは複数の「ポータブル」または装置独立プログラム２２４を実装することも可能である。そのプログラムは、Java（登録商標）スクリプトおよびプログラムのようなＯＳネイティブ・プラットフォーム特有のインタープリタ２２５によって解釈されなければならない。
【００４５】
多くの場合、コンピューティング・プラットフォームは、ブラウザ・プラグイン２２７のようなブラウザに対する１つまたは複数の拡張機能を含み得るウェブ・ブラウザまたはマイクロ・ブラウザ２２６の形で提供される。
【００４６】
コンピューティング装置は、多くの場合、Microsoft Windows（登録商標）、UNIX（登録商標）、IBM OS/2（登録商標）、IBM AIX（登録商標）、オープン・ソース LINUX、アップル社のMAC OS（登録商標）、または他のプラットフォーム特有のオペレーティング・システムのようなオペレーティング・システム２２０を備えている。ＰＤＡおよび無線電話器のような小型の装置は、リアルタイム・オペレーティング・システム（ＲＴＯＳ）またはPalm Computing 社の PalmOS（登録商標）のような他の形式のオペレーティング・システムを備えることも可能である。
【００４７】
基本入出力システム（ＢＩＯＳ）およびハードウェア・デバイス・ドライバ２２１のセットは、多くの場合、オペレーティング・システム（２２０）およびプログラムが、コンピューティング・プラットフォームによって提供された特定のハードウェア機能に対してインターフェースし且つそれを制御することを可能にするために設けられる。
【００４８】
更に、１つまたは複数の組込みファームウェア・プログラム２２２が多くのコンピューティング・プラットフォームを共通に備えており、マイクロ・コントローラまたはハード・ドライブ、通信プロセッサ、ネットワーク・インターフェース・カード、或いは音声またはグラフィックス・カードのような周辺装置の一部として、オンボードまたは「組込み」マイクロプロセッサにより実行される。
【００４９】
このように、図２および図３は、パーソナル・コンピュータ、ＰＤＡ、ＰＩＭ、ウェブ・イネーブルド電話、および、WebTV（登録商標）ユニットのような他の機器を含むがそれに限定されない、広範なコンピュータ・プラットフォームの種々のハードウェア・コンポーネント、並びに、ソフトウェアおよびファームウェア・コンポーネントを一般的に示している。次に、このようなコンピュータ・プラットフォームにおいてソフトウェアおよびファームウェアとして実施されることが望ましいプロセスおよび方法に関する本発明の開示に注意を向けることにする。これとは別に、以下の方法およびプロセスが、本発明の真意および範囲を逸脱することなく部分的にまたは全体的にハードウェア機能として実現することも可能であることは当業者には容易に明らかであろう。
【００５０】
Ｇ．サービス・ベースの実施例
本発明のもう１つの実施例は、高機能洗濯機の論理的制御プロセスを提供するために、ソフトウェアを構成すること、ソフトウェアを配備すること、ソフトウェアをダウンロードすること、ソフトウェアを配布すること、またはオンデマンド環境においてクライアントを遠隔的にサービスすること、によって提供される本発明の前述の論理的プロセスおよび機能の一部またはすべて含む。
【００５１】
Ｈ．ソフトウェア開発の実施例
本発明の一実施例によれば、クライアントのコンピューティング・システムに対するサービス提供者によるサービスとして本発明の方法およびプロセスが配布または配備される。
【００５２】
図４を参照すると、配備プロセスは、それが開始すると(ステップ３０００)、プロセス・ソフトウェアが実行されるときにサーバに何らかの常駐プログラムが存在するかどうかを決定する(ステップ３００１)。これが存在する場合、実行可能なものを含むサーバが識別される(ステップ３０９)。サーバのためのプロセス・ソフトウェアがＦＴＰまたは他の何らかのプロトコルを介して、或いは共用ファイル・システムの使用を通してコピーすることによって、サーバ記憶装置に直接転送される（ステップ３１０）。しかる後、プロセス・ソフトウェアがサーバ上にインストールされる(ステップ３１１)。
【００５３】
次に、サーバにおけるプロセス・ソフトウェアをユーザにアクセスさせることによってプロセス・ソフトウェアが配備されるべきかどうかに関する決定が行われる(ステップ３００２)。ユーザがサーバにおけるプロセス・ソフトウェアをアクセスすべき場合、そのプロセス・ソフトウェアを格納していると思われるサーバ・アドレスが識別される(ステップ３００３)。
【００５４】
ステップ３００４では、電子メールを介してユーザにプロセス・ソフトウェアを送ることによって、そのプロセス・ソフトウェアが開発されるべきかどうかに関する決定が行われる。プロセス・ソフトウェアが配備されるべきユーザのセットが、ユーザ・クライアント・コンピュータのアドレスと共に識別される(ステップ３００５)。プロセス・ソフトウェアは、電子メールよってユーザのクライアント・コンピュータの各々に送られる。そこで、ユーザは電子メールを受取り(ステップ３０５)、しかる後、電子メールからクライアント・コンピュータ上のディレクトリにプロセス・ソフトウェアを取り出す(ステップ３０６)。ユーザは、プロセス・ソフトウェアを自分のクライアント・コンピュータ上にインストールするプログラムを実行し(ステップ３１２)、しかる後、プロセスを終了する(ステップ３００８)。
【００５５】
プロセス・ソフトウェアを格納するためにプロキシ・サーバが形成されるべきかどうかの決定が行われる(ステップ３００)。プロキシ・サーバは、ウェブ・ブラウザのようなクライアント・アプリケーションと実サーバとの間に位置するサーバである。そのサーバは、それが要求そのものを満たし得るかどうかを知るために、実サーバへのすべての要求を傍受する。それが要求を満たし得ない場合、それはその要求を実サーバに送る。プロキシ・サーバの２つの主要な有益な点は、パフォーマンスを改良することおよび要求をフィルタすることである。プロキシ・サーバが必要とされる場合、そのプロキシ・サーバがインストールされる(ステップ３０１)。プロセス・ソフトウェアがＦＴＰのようなプロトコルを介してサーバに送られるか、またはそれがソース・ファイルからファイル・シェアリングを介してサーバ・ファイルに直接コピーされる(ステップ３０２)。別の実施例は、プロセス・ソフトウェアを含んだサーバにトランザクションを送ってそのサーバ・プロセスにトランザクションを処理させ、しかる後、プロセス・ソフトウェアを受取り、それをサーバのファイル・システムにコピーする。一旦プロセス・ソフトウェアがサーバに格納されると、ユーザは、それらのクライアント・コンピュータを介してサーバにおけるプロセス・ソフトウェアをアクセスし、それらのクライアント・コンピュータにファイル・システムをコピーする(ステップ３０３)。更に別の実施例は、プロセス・ソフトウェアを各クライアントへ、サーバに自動的にコピーさせ、各クライアント・コンピュータにおけるプロセス・ソフトウェアのためのインストール・プログラムを実行させる。ユーザは、自分のクライアント・コンピュータ上にプロセス・ソフトウェアをインストールするプログラムを実行し(ステップ３１２)、しかる後、プロセスを終了する(ステップ３００８)。
【００５６】
最後に、プロセス・ソフトウェアがそれらのクライアント・コンピュータにおけるユーザ・ディレクトリに直接送られるかどうかの決定が行われる(ステップ３００６)。それが肯定される場合、ユーザ・ディレクトリが識別される(ステップ３００７)。プロセス・ソフトウェアがユーザのクライアント・コンピュータ・ディレクトリに直接転送される(ステップ３０７)。これは、ファイル・システム・ディレクトリを共用すること、しかる後送信側のファイル・システムから受信側ユーザのファイル・システムにコピーすること、或いは、それとは別に、ファイル転送プロトコル（ＦＩＰ）のような転送プロトコルを使うというような幾つかの方法で行われ得るが、それに限定されない。ユーザが、プロセス・ソフトウェアのインストールに備えてそれらのクライアント・ファイル・システムにおけるディレクトリをアクセスする(ステップ３０８)。ユーザは、自分のクライアント・コンピュータ上にプロセス・ソフトウェアをインストールするプログラムを実行し(ステップ３１２)、しかる後、プロセスを終了する(ステップ３００８)。
【００５７】
Ｉ．ソフトウェア統合の実施例
本発明のもう１つの実施例によれば、本明細書に開示された方法およびプロセスを実施するソフトウェアがサービス提供者によるサービスとして他のソフトウェア・アプリケーション、アプレット、またはコンピューティング・システムに統合される。
【００５８】
本発明の統合は、一般に、アプリケーション、オペレーティング・システム、およびネットワーク・オペレーティング・システムのソフトウェアと共存するようにプロセス・ソフトウェアを提供すること、および、しかる後、プロセス・ソフトウェアが機能する環境におけるクライアントおよびサーバ上にプロセス・ソフトウェアをインストールすることを含む。
【００５９】
概して云えば、第１タスクは、プロセス・ソフトウェアが配備されるネットワーク・オペレーティング・システムを含むクライアントおよびサーバ上にあり、且つプロセス・ソフトウェアにより必要とされるかまたはプロセス・ソフトウェアと関連して働く、いずれのソフトウェアでも識別することである。これは、ネットワーキング・フィーチャを加えることによって基本オペレーティング・システムを機能強化するソフトウェアであるネットワーク・オペレーティング・システムを含む。次に、ソフトウェア・アプリケーションおよびバージョン番号が識別され、プロセス・ソフトウェアを共に働くかどうかをテストされたソフトウェア・アプリケーションおよびバージョン番号のリストに比較されるであろう。見つからないソフトウェア・アプリケーションまたは正しいバージョンと適合しないソフトウェア・アプリケーションは正しいバージョン番号でもってアップグレードされるであろう。プロセス・ソフトウェアからソフトウェア・アプリケーションにパラメータを送るプログラム命令は、パラメータ・リストが、プロセス・ソフトウェアによって必要とされるパラメータ・リストに適合することを保証するために、チェックされるであろう。逆にソフトウェア・アプリケーションによってプロセス・ソフトウェアに送られたパラメータは、それらのパラメータが、プロセス・ソフトウェアにより要求されたパラメータに適合することを保証するためにチェックされるであろう。ネットワーク・オペレーティング・システムを含むクライアント・オペレーティング・システムおよびサーバのオペレーティング・システムが識別され、プロセス・ソフトウェアと共に働くことをテストされたオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアのリストに比較されるであろう。テストされたオペレーティング・システムおよびバージョン番号のリストと適合しないオペレーティング・システム、バージョン番号、およびネットワーク・ソフトウェアがクライアントおよびサーバにおける必要とされるレベルまでアップグレードされるであろう。
【００６０】
プロセス・ソフトウェアが配備されるべきソフトウェアが、プロセス・ソフトウェアと共に働くことをテストされた正しいバージョン・レベルにあることを保証した後、クライアントおよびサーバ上にプロセス・ソフトウェアをインストールすることによって、統合が完成する
【００６１】
図５を参照すると、本発明による統合プロセスの詳細が示される。統合は、それが開始すると（ステップ３２０）、実行されるいずれかのプロセス・ソフトウェア・プログラムがサーバ上に存在するかどうかを決定する(ステップ３２１)。それがサーバ上に存在しない場合、統合はステップ３２７に進む。それが肯定される場合、サーバ・アドレスが識別される(ステップ３２２)。サーバは、プロセス・ソフトウェアでもってテストされたそれらのバージョン番号と共に、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を含むソフトウェアをサーバが有するかどうかを知るためにチェックされる(ステップ３２３)。サーバは、プロセス・ソフトウェアが必要とするソフトウェアの欠落があるかどうかを決定するためにもチェックされる(ステップ３２３)。
【００６２】
バージョン番号が、プロセス・ソフトウェアによってテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号に適合するかどうかの決定が行われる(ステップ３２４)。すべてのバージョン番号が適合し、必要なソフトウェアの欠落がない場合、統合は継続する(ステップ３２７)。
【００６３】
１つまたは複数のバージョン番号が適合しない場合、未適合のバージョンがサーバにおいて正しいバージョンでもって更新される（ステップ３２５）。更に、必要なソフトウェアの見落としが存在する場合、それがサーバにおいて更新される(ステップ３２５)。プロセス・ソフトウェアをインストールすることによって、サーバの統合が完成する(ステップ３２６)。
【００６４】
ステップ３２１、３２４、または３２６に続くステップ３２７は、クライアントにおいて実行されるプロセス・ソフトウェアのプログラムが存在するかどうかを決定する。クライアントにおいて実行されるプロセス・ソフトウェアのプログラムがない場合、統合はステップ３３０に進み、終了する。そのようなプロセス・ソフトウェアのプログラムがある場合、クライアント・アドレスが識別される(ステップ３２８)。
【００６５】
プロセス・ソフトウェアによってテストされたバージョン番号と共に、オペレーティング・システム（ＯＳ）、アプリケーション、およびネットワーク・オペレーティング・システム（ＮＯＳ）を含むソフトウェアをクライアントが有するかどうかを知るために、そのクライアントがチェックされる(ステップ３２９)。プロセス・ソフトウェアによって要求されるソフトウェアの欠落があるかどうかを決定するためにもクライアントがチェックされる(ステップ３２９)。
【００６６】
バージョン番号が、プロセス・ソフトウェアによってテストされたＯＳ、アプリケーション、およびＮＯＳのバージョン番号に適合するかどうかの決定が行われる(ステップ３３１)。すべてのバージョン番号が適合し、必要なソフトウェアの欠落がない場合、統合はステップ３３０に進み、終了する。
【００６７】
１つまたは複数のバージョン番号が適合しない場合、クライアントにおいて、未適合のバージョンが正しいバージョンによって更新される(ステップ３３２)。更に、必要なソフトウェアの欠落が存在する場合、それはクライアントにおいて更新される(ステップ３３２)。クライアント統合は、クライアントにおいてプロセス・ソフトウェアをインストールすることによって完成する(ステップ３３３)。統合はステップ３３０に進み、終了する。
【００６８】
Ｊ．オンデマンド・コンピューティング・サービスの実施例
本発明のもう１つの局面によれば、本明細書に開示されたプロセスおよび方法は、サービス提供者によってクライアントにサービスを提供するためにオンデマンド・コンピューティング・アーキテクチャを通して行われる。
【００６９】
図６を参照すると、概して云えば、本明細書に開示された方法を実施するプロセス・ソフトウェアは共用され、同時に複数の顧客のために融通性のある自動化された態様で働く。それは、ほとんどカスタマイズを必要とせずに標準化され、それは、「即金支払（pay-as-you-go）」モデルでは要求時に能力を提供するように拡張性がある。
【００７０】
プロセス・ソフトウェアは、１つまたは複数のサーバからアクセスし得る共用ファイル・システム上に格納することも可能である。プロセス・ソフトウェアは、アクセスされたサーバ上のＣＰＵ単位を使用するデータおよびサーバ処理要求を含むトランザクションを通して実行される。ＣＰＵ単位は、サーバの中央プロセッサにおける分、秒、時間のような時間単位である。更に、そのアクセスされたサーバは、ＣＰＵ単位を必要とする他のサーバに要求を行うことも可能である。ＣＰＵ単位は、単に１つの使用量の測定値を表わす例である。他の使用量の測定値は、ネットワーク帯域幅、メモリ使用量、記憶装置使用量、パケット転送、完全なトランザクション等を含むが、それに限定されない。
【００７１】
複数の顧客が同じプロセス・ソフトウェア・アプリケーションを使用するとき、それらのトランザクションは、唯一の顧客とその顧客のためのサービスのタイプとを識別する、そのトランザクションに含まれるパラメータによって区別される。各顧客に対するサービスのために使用されるすべてのＣＰＵ単位および他の使用量の測定値が記録される。いずれかのサーバに対するトランザクションの数が、そのサーバのパフォーマンスに影響し始める数に達すると、容量を増すためにおよびワークロードを分担するために、他のサーバがアクセスされる。同様に、ネットワーク帯域幅、メモリ使用量、記憶装置使用量等のような他の使用量の測定値が、パフォーマンスに影響しそうな容量に近づくとき、更なるネットワーク帯域幅、メモリ使用量、記憶装置使用量等がワークロードを分担するために加えられる。
【００７２】
各サービスおよび顧客に対して使われた使用量の測定値が、プロセス・ソフトウェアの分担実行を行うサーバのネットワーク内のどこかで処理された各サービスのための各顧客に対する使用量の測定値を合計する収集サーバに送られる。使用単位に関する測定値の合計が単位コストと掛け算され、その結果生じた合計のプロセス・ソフトウェア・アプリケーション・サービス・コストが顧客に送られ、顧客によってアクセスされたウェブ・サイト上に表わされる。そこで、顧客はサービス提供者への支払を付託する。
【００７３】
もう１つの実施例では、サービス提供者は銀行または金融機関における顧客の口座からの支払を直接に要求する。
【００７４】
もう１つの実施例では、サービス提供者が、プロセス・ソフトウェア・アプリケーションを使用する顧客でもある場合、サービス提供者に負わされた支払は、支払の移転を最小にするためにサービス提供者によって負わされた支払に調停される。
【００７５】
図６は、オンデマンド・プロセスを通して、本発明を利用可能にする詳細な論理的プロセスを示す。独特の顧客識別、要求されたサービスのタイプ、および更にサービスのタイプを指定する任意のサービス・パラメータ、を含むトランザクションが作成される(ステップ３４１)。次に、トランザクションがメイン・サーバに送られる(ステップ３４２)。オンデマンドの実施例では、メイン・サーバは、当初、唯一のサーバであり、その後、容量がカスタマイズされると、他のサーバがオンデマンド環境に加えられる。
【００７６】
オンデマンド環境におけるサーバの中央処理ユニット（ＣＰＵ）の容量が照会される(ステップ３４３)。トランザクションのＣＰＵ要件が見積もられ、しかる後、オンデマンド環境におけるサーバの使用可能なＣＰＵ容量がトランザクションのＣＰＵ要件に比較され、トランザクションを処理するに十分なＣＰＵの使用可能な容量がいずれのサーバにも存在するかどうか知る(ステップ３４４)。十分なサーバＣＰＵの使用可能な容量が存在しない場合、更なるサーバＣＰＵ容量がトランザクションを処理するために割り振られる(ステップ３４８)。既に十分な使用可能なＣＰＵ容量が存在していた場合、トランザクションは選択されたサーバに送られる(ステップ３４５)。
【００７７】
トランザクションを実行する前に、残りのオンデマンド環境が、そのトランザクションを処理するための十分な使用可能容量を有するかどうかを決定するためにその残りのオンデマンド環境のチェックが行われる(ステップ３４６)。その環境の容量は、ネットワーク帯域幅、プロセッサ・メモリ、記憶装置等のようなものを含むが、それらに限定されない。十分に適当な容量が存在しない場合、オンデマンド環境に容量が加えられる(ステップ３４７)。次に、トランザクションを処理するための必要なソフトウェアがアクセスされ、メモリにロードされ、しかる後、トランザクションが実行される(ステップ３４９)。
【００７８】
使用量の測定値が記録される(ステップ３５０)。使用量の測定値は、オンデマンド環境における機能のうちの、そのトランザクションを処理するために使用される部分を含む。そのような機能の使用は、ネットワーク帯域幅、プロセッサ・メモリ、記憶装置、ＣＰＵサイクルのような機能を含むがそれらに限定されない機能の使用量が記録される。使用量の測定は合算され、単位コストと掛算され、しかる後、要求元の顧客に使用量として記録される。
【００７９】
オンデマンド・コストがウェブ・サイトに送られるということを顧客が要求した場合（ステップ３５２）、それらが送られる(ステップ３５３)。オンデマンド・コストが電子メールによって顧客アドレスに送られるということを顧客が要求した場合（ステップ３５４）、それらが送られる(ステップ３５５)。オンデマンド・コストが顧客の口座から直接に支払われるということを顧客が要求した場合(ステップ３５６)、支払が顧客の口座から直接に受けられる(ステップ３５７)。最後のステップはオンデマンド・プロセスから出ることである(ステップ３５８)。
【００８０】
Ｋ．ＶＰＮ配置の実施例
本発明のもう１つの局面によれば、本明細書に開示された方法およびプロセスが、サービスの一部として第三者に配備され得るソフトウェアによって部分的にまたは全体的に実施される。この場合、第三者の仮想プライベート・ネットワーク（ＶＰＮ）サービスは安全な配置手段として提案されるかまたは特定の配備のために、必要なときにオンデマンドで形成される。
【００８１】
仮想専用ネットワーク（ＶＰＮ）は、他の状況では非セキュア・ネットワークまたは非トラステッド・ネットワークを確保するために使用される技術の任意の結合体である。ＶＰＮは、リモート・サイトまたはユーザを相互に接続するために、通常はインターネットである公衆ネットワークを利用する。専用回線のような専用の実世界の接続を使用する代わりに、ＶＰＮは、企業の専用ネットワークからインターネットを介してリモート・サイトまたは従業員に経路指定される「仮想」接続を使用する。ＶＰＮを介したソフトウェアへのアクセスは、プロセス・ソフトウェアの配布または実行のためにＶＰＮを具体的に構成することによってサービスとして提供される（即ち、ソフトウェアは他の存在する）。なお、ＶＰＮの存続期間は、支払われた額に基づいて、所与の期間または所与の配備の数に限定される。
【００８２】
プロセス・ソフトウェアは、リモート・アクセスＶＰＮまたはサイト・ツー・サイト（site-to-site）ＶＰＮを通して配備され、アクセスされ、そして実行される。リモート・アクセスＶＰＮを使用するとき、プロセス・ソフトウェアは、第三者サービス提供者を介した企業の専用ネットワークおよびリモート・ユーザの間の安全な暗号化接続を通して配置され、アクセスされ、そして実行される。企業サービス提供者（ＥＳＰ）はネットワーク・アクセス・サーバ（ＮＡＳ）をセットし、それらのコンピュータ用のデスクトップ・クライアント・ソフトウェアをリモート・ユーザに提供する。在宅勤務者は、ケーブルまたはＤＳＬモデムを介して直接に接続するために無料通話番号をダイヤルしてＮＡＳに達し、ＶＰＮクライアント・ソフトウェアを使って企業のネットワークをアクセスし、プロセス・ソフトウェアをアクセスし、ダウンロードし、実行することができる。
【００８３】
サイト・ツー・サイトＶＰＮを使用するとき、プロセス・ソフトウェアは、インターネットのような公衆ネットワークを介して企業の複数の固定サイトを接続するために使用される専用の施設および大規模の暗号化を通して配備され、アクセスされ、そして、実行される。
【００８４】
プロセス・ソフトウェアは、パケット全体を他のパケット内に入れ、ネットワークを介してそれを送るというプロセスであるトンネリングによってＶＰＮ上を搬送される。外部パケットのプロトコルは、ネットワークと、パケットがネットワークに出入りするトンネル・インターフェースと呼ばれる両ポイントとによって理解される。
【００８５】
図７を参照すると、リモート・アクセスのためのＶＰＮが必要であるかどうか決定すること（ステップ３６１）によって、ＶＰＮ配備プロセスが開始する(ステップ３６０)。それが必要でない場合、プロセスはステップステップ３６２に進む。それが必要である場合、プロセスは、リモート・アクセスＶＰＮが存在するかどうかを決定する(ステップ３６４)。
【００８６】
ＶＰＮが存在する場合、ＶＰＮ配備プロセスはサーバに接続されたネットワークをアクセスするように進行する(ステップ３６５)。そうでない場合、プロセスは、企業の専用ネットワークと企業のリモート・ユーザとの間の安全な暗号化接続を提供する第三者の提供者を識別する(ステップ３７６)。企業のリモート・ユーザが識別される（ステップ３７７）。次に、第三者の提供者は、リモート・ユーザが無料通話番号をダイヤルすること、または、ブロードバンド・モデムを介して直接接続することを可能にするネットワーク・アクセス・サーバ（ＮＡＳ）を設定し（ステップ３７８）、リモート・アクセスＶＰＮのためのデスクトップ・クライアント・ソフトウェアをアクセスし、ダウンロードし、そしてインストールする(ステップ３７９)。
【００８７】
リモート・アクセスＶＰＮが形成された後、または、それが事前にインストールされていた場合、リモート・ユーザは、ＮＡＳにダイヤルすることによって、或いはケーブルまたはＤＳＬモデムを介してＮＡＳに直接接続することによって、プロセス・ソフトウェアをアクセスすることができる（ステップ３６５）。これは、プロセス・ソフトウェアがアクセスされる企業のネットワークへのエントリを可能にする（ステップ３６６）。プロセス・ソフトウェアは、トンネリングによりネットワークを介してリモート・ユーザのデスクトップに搬送される。即ち、プロセス・ソフトウェアがパケットに分割され、データおよびプロトコルを含む各パケットが他のパケット内に置かれる(ステップ３６７)。プロセス・ソフトウェアがリモート・ユーザのデスクトップに達するとき、それはパケットから取り外されて再構成され、リモート・ユーザのデスクトップ上で実行される(ステップ３６８)。
【００８８】
サイト・ツー・サイト・アクセスのためにＶＰＮが必要であるかどうかを知るための決定が行われる(ステップ３６２)。それが必要でない場合、プロセスは終了に進む(ステップ３６３)。それが必要である場合、サイト・ツー・サイトのＶＰＮアクセスが存在するかどうかが決定される(ステップ３６９)。それが存在する場合、プロセスはステップ３７１に進む。それが存在しない場合、サイト・ツー・サイトＶＰＮを設定するために必要な専用の装備がインストールされる(ステップ３７０)。そこで、大規模暗号化がＶＰＮに形成される(ステップ３７１)。
【００８９】
サイト・ツー・サイトＶＰＮが形成された後、または、それが事前に設定されていた場合、ユーザはＶＰＮを介してプロセス・ソフトウェアをアクセスする(ステップ３７２)。プロセス・ソフトウェアがトンネリングによりネットワークを介してサイト・ユーザに搬送される。即ち、プロセス・ソフトウェアはパケットに分割され、データおよびプロトコルを含む各パケットが他のパケット内に置かれる(ステップ３７４)。プロセス・ソフトウェアがリモート・ユーザのデスクトップに達すると、それはパケットから取り外され、サイト・ユーザのデスクトップ上で実行される(ステップ３７５)。プロセスは終了に進む(ステップ３６３)。
【００９０】
Ｌ．コンピュータ可読媒体の実施例
本発明のもう１つの実施例では、洗濯機を制御するための本発明による且つ本明細書において説明される論理的プロセスが１つまたは複数のコンピュータ可読媒体上にまたはその媒体内に符号化される。或るコンピュータ可読媒体は読取り専用であり（例えば、その媒体は、その媒体からデータを読取るために最終的に使用される装置とは異なる装置を使って先ずプログラムされなければならず）、或る媒体は書込み専用であり（例えば、データ・エンコーダの観点から、それらは符号化され得るだけであるが、同時に読取られ得ない）、或いは読取り・書込みである。更に他の媒体は、１回だけの書込み、複数回の読取りのものである。
【００９１】
或る媒体はそれらの装着機構内に相対的に固定され、一方、他の媒体は取外し可能であるかまたは搬送可能でさえある。コンピュータ可読媒体はすべてデータおよび／またはコンピュータ・ソフトウェアによって符号化されるとき、次のような２つのタイプのシステムを形成する。即ち、
（ａ）ドライブまたは読取機構から取り外されると、それらは、適切な電磁信号、電子信号、および／または光信号によって活性化されるときに有益なデータ駆動された出力を発生するメモリ装置であり、
（ｂ）ドライブまたは読取機構に装填されると、それらはコンピュータによりアクセスし得るデータ・リポジトリ・システムを形成する。
【００９２】
図８は、１つまたは複数の磁気的に符号化されたプラッタまたはディスク４１を有するコンピュータ・ハード・ドライブ４０を含む幾つかのコンピュータ可読媒体を示す。なお、そのプラッタまたはディスク４１は、１つまたは複数のヘッド４２によって読取られ、書込まれ、またはその両方を行われ得るものである。このようなハード・ドライブは、典型的には、完全なドライブ・ユニットに半永久的に装着され、そのドライブ・ユニットは、その後、パーソナル・コンピュータ、サーバ・コンピュータ等のような構成可能なコンピュータ・システムに統合されてもよい。
【００９３】
同様に、コンピュータ可読媒体のもう１つの例は、アクセス・ヘッドを内蔵したドライブに挿入される可撓性の取外し可能「フロッピ・ディスク」４３である。フロッピ・ディスクは、典型的には、スライド・カバー４４における窓４５を通してドライブ・ヘッドによりアクセスし得る磁気的に符号化可能なディスクを含む。
【００９４】
コンパクト・ディスク（ＣＤ）４６は、通常、光学的プロセスおよび／または光磁気プロセスを使って符号化され、その後、一般には光学的プロセスを使って読取られるプラスチック・ディスクである。或るＣＤは読取り専用（ＣＤ−ＲＯＭ）であり、配布および読取型のドライブによる使用に先立って量産される。他のＣＤは、１回だけまたは何回も書込み可能（例えば、ＣＤ−ＲＷ、ＣＤ−Ｒ）である。デジタル多用途ディスク（ＤＶＤ）は、多くの場合、データの両面符号化、更に、データの多層符号化をも含む上級型のＣＤである。フロッピ・ディスクのように、ＣＤまたはＤＶＤは取外し可能媒体である。
【００９５】
もう１つの一般型の取外し可能媒体は、コンパクト・フラッシュ（ＣＦ）４７、セキュア・データ（ＳＤ）、ソニー社の MemoryStick 、ユニバーサル・シリアル・バス（ＵＳＢ）FlashDrive および「Thumbdrives」４９、並びにその他等のようないくつかのタイプの取外し可能回路ベース（例えば、ソリッド・ステート）のメモリ・ドライブである。これらのデバイスは、典型的には、バッテリ・バックアップ付きランダム・アクセス・メモリ・チップ（ＲＡＭ）またはフラッシュ・リード・オンリ・メモリ（FrashROM）のようなデジタル・メモリ・チップを組み込んだプラスチック・ハウジングである。ＣＦドライブ・スロットまたはＵＳＢスロットのようなコネクタに係合するための１つまたは複数の電子コネクタ４８、４００は、媒体の外部部分に使用可能である。ＵＳＢFlashDriveのようなデバイスはシリアル・データ手法を使ってアクセスされ、一方、ＣＦのような他のデバイスはパラレル手法を使ってアクセスされる。これらのデバイスは、多くの場合、ディスク・ベースの媒体よりも速いアクセス・タイムを提供し、機械的衝撃および振動に対する信頼性の向上および感受性の低減を与える。多くの場合、それらは、同等の価格のディスク・ベースの媒体よりも低い記憶能力を提供する。
【００９６】
コンピュータ可読媒体デバイスの更にもう１つのタイプは、ＳＩＭＭまたはＤＩＭＭと呼ばれることの多いメモリ・モジュール４０３である。ＣＦ、ＳＤ、および FlashDrive と同様に、これらのモジュールは、回路ボード４０１上に搭載されたダイナミックＲＡＭ（ＤＲＡＭ）のような１つまたは複数のメモリ・デバイス４０２を内蔵する。回路ボード４０１は、パーソナル・コンピュータのマザーボードのような他の回路に係合し且つインターフェースするための１つまたは複数の電子コネクタを有する。これらのタイプのメモリ・モジュールは、通常、それらが熟練の技術者による搭載を意図される場合には外側ハウジング内に閉じ込められず、一般に、パーソナル・コンピュータのシャーシのようなもっと大きい外側ハウジングによって保護される。
【００９７】
次に図９を参照すると、本発明のもう１つの実施例オプション４０５が示され、そこでは、本発明に従って論理的プロセスを具現化するソフトウェア、データ、またはその両方により、コンピュータ可読信号が符号化される。図９は、無線伝送システム、有線伝送システム、電気光学的伝送システム、および光学的信号システムの機能を表わすために一般化されている。例えば、図９に示されたシステムは、高周波（ＲＦ）による無線伝送および赤外線データ配列（ＩｒＤＡ）のような光学的信号による無線伝送に適した方法で実現され得る。図９のシステムは、前記ＵＳＢFlashDrive を読取るためのドライブ、或いはＣＤまたはハード・ドライブ・プラッタのようなディスク内に直接格納されたデータをアクセスするためのドライブのような、ＵＳＢシステム用のデータ送信機、データ受信機、またはデータ送受信機として作用するよう別の方法で実現することも可能である。
【００９８】
一般に、マイクロプロセッサまたはマイクロコントローラ４０６は、データ、プログラム、またはその両方を記憶装置４０７に或いは記憶装置４０７からデータを読取るか、書込むか、またはその両方を行う。デジタル・アナログ変換器を任意選択的に含むデータ・インターフェース４０９は、オプショナル・プロトコル・スタック４０８と協同してシステム・フロント・エンド４１０とマイクロプロセッサ４０６との間でデータを送信、受信、または送受信する。プロトコル・スタックは、送信、受信、または送受信される信号のタイプに適応する。例えば、ローカル・エリア・ネットワーク（ＬＡＮ）の実施例では、プロトコル・スタックは、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）を実装し得る。コンピュータ相互間またはコンピュータ・周辺装置間の実施例では、プロトコル・スタックは、ＵＳＢ、FireWire、ＲＳ−２３２、ポイント・ツー・ポイント・プロトコル（ＰＰＰ）等のすべてまたは一部を実装し得る。
【００９９】
システムのフロント・エンドまたはアナログ・フロント・エンドは、変調、復調、またはトランスコードされる信号のタイプに適応する。例えば、ＲＦベースのシステム４１３では、アナログ・フロント・エンドが、周波数変調（ＦＭ）、振幅変調（ＡＭ）、位相変調（ＰＭ）、パルス・コード変調（ＰＣＭ）等のような信号フォーマットを具現化する種々のローカル発信器、変調器、復調器等を含む。そのようなＲＦベースの実施例は、典型的には、大気、水、大地を介して、またはＲＦ導波管、および同軸ケーブルを介して、電磁信号を送信、受信、または送受信するためのアンテナ４１４を含む。或る一般的な空中伝送の標準は、BlueTooth、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ）、時分割多重接続（ＴＤＭＡ）、先進モバイル電話サービス（ＡＭＰＳ）、およびワイヤレス・フィデリティ（Ｗｉ−Ｆｉ）である。
【０１００】
もう１つの実施例では、アナログ・フロント・エンドが、レーザ・ベースの光学的インターフェース（例えば、波長多重方式、ＳＯＮＥＴ等）または赤外線データ通信規格（ＩｒＤＡ）のような光学的インターフェース４１５を介して信号を送信、受信、または送受信するように適応し得る。同様に、アナログ・フロント・エンドは、ＵＳＢ、イーサネット、ＬＡＮ、ツイスト・ペア・ケーブル、同軸ケーブル、プレーン・オールド・テレフォン・サービス（ＰＯＴＳ）等のような実施例も含み得るケーブル・インターフェースを使って、ケーブル４１２を介して信号を送信、受信、または送受信するように適応し得る。
【０１０１】
送信、受信、または送受信された信号およびディスク上にまたはメモリ装置内に符号化されたデータは、それを未承認の復号化および使用から保護するようにコード化することも可能である。他のタイプのコード化は、パリティ・ビットの付加または巡回冗長検査（ＣＲＣ）によるようなエラー検出および、場合によっては、エラー訂正を可能にするために使用されてもよい。パケットおよびフレーム・ベースのプロトコルのような、正しい宛先へのデータの方向付けまたは「経路指定」を可能にするために、更に他のタイプの符号化を使用することも可能である。
【０１０２】
図１０は、並列データを直列データにおよび並列データを直列データから変換する変換システムを示す。並列データは、マイクロプロセッサによって直接使用可能であることが最も多く、多くの場合、８ビット幅のバイト、１６ビット幅のワード、３２ビット幅のダブルワード等でフォーマットされる。並列データは、実行可能ソフトウェアまたは解釈可能ソフトウェアを表わし得るし、或いはコンピュータによる使用のためのデータ値を表わし得る。データは、多くの場合、ＲＦまたは光学的チャネルのような媒体を介してそれを送信するために、またはディスクのような媒体上にそれを記録するために、直列化される。そのように、多くのコンピュータ可読媒体システムは、データの直列化および再並列化を行うために回路、ソフトウェア、またはその両方を含む。
【０１０３】
並列データ４２１は、各ビットＤ０−Ｄｎが同時にバスまたは信号搬送体上にあることによって並列データ単位（バイト、ワード、ダブルワード等）４２２、４２３、４２４が送信されるように時間的に揃ったデータ信号の流れとして表される。なお、データ単位の「幅」はｎ−１である。システムによっては、Ｄ０は最下位ビット（ＬＳＢ）を表わすために使用され、別のシステムでは、それは最上位ビット（ＭＳＢ）を表わすために使用される。データは、各データ単位が、直列態様で次々に、一般にはプロトコルに従って、送られるよう、一時に１ビットを送ることによって直列化される。
【０１０４】
このように、コンピュータ・メモリ４０７、４０７’に格納された並列データは、多くの場合、マイクロプロセッサまたは並列・直列変換器４２５、４２５’により並列バス４２１を介してアクセスされ、直列バス４２１’を介して交換される（例えば、送信、受信、または送受信される）。受信された直列データは、通常、コンピュータ・メモリにそれを格納する前に並列データに変換される。図１０において一般化された直列データ４２１’はＵＳＢまたはFirewire のような有線バスであってもよく、或いは、前述のように、ＲＦまたは光学的チャネルのような無線通信媒体であってもよい。
【０１０５】
このように、本発明の種々の実施例は、本発明の論理的プロセスに従ってソフトウェア、データ、またはその両方を、前述のタイプのコンピュータ可読媒体を含むがそれに限定されない１つまたは複数のコンピュータ可読媒体内に符号化することによって実現することが可能であり、それによって、適切に読取られ、受信され、または解読されるとき、有益なプログラミング命令、データ、またはその両方をもたらすコンピュータ・プログラムおよびシステムを生じる。
【０１０６】
Ｍ．結び
種々の実施例の詳細を説明したが、種々のプログラミング手法、コンピューティング・プラットフォーム、および処理技術のような具現化時における変更を、本発明の要旨および範囲から逸脱することなく導入し得ることは当業者には明らかであろう。従って、本発明の範囲は「特許請求の範囲」の記載によって決定されるべきである。
【図面の簡単な説明】
【０１０７】
【図１】本発明によるデータ構造の概略図である。
【図２】汎用コンピューティング・プラットフォーム・アーキテクチャの概略図である。
【図３】図２のコンピューティング・プラットフォーム・アーキテクチャのソフトウェアおよびファームウェアの汎用編成の概略図である。
【図４】本発明の方法およびプロセスを実施するクライアントにソフトウェアを配備するための論理的プロセスを示すフローチャートである。
【図５】ソフトウェアを他のソフトウェア・プログラムに統合する論理的プロセスを示すフローチャートである。なお、その統合されたソフトウェアが本発明の方法およびプロセスを実施する。
【図６】オンデマンド・コンピューティング・システムにおけるクライアントに代わってソフトウェアを実行するための論理的プロセスを示すフローチャートである。なお、実行されたソフトウェアは本発明の方法およびプロセスを実施する。
【図７】仮想専用ネットワークを介してクライアントにソフトウェアを配備するための論理的プロセスを示すフローチャートである。なお、配備されたソフトウェアは本発明の方法およびプロセスを実施する。
【図８】種々の取外し可能型および固定型のコンピュータ可読媒体の概略図である。
【図９】信号送受信機におけるコンピュータ可読信号の符号化の概略図である。
【図１０】並列データを直列データに、および直列データを並列データに変換するシステムの概略図である。
【図１１】本発明に従って配列され且つ同時使用されるシステムおよびコンポーネントの間の通信および相互作用を示す概略図である。
【図１２】本発明に従って配列され且つ同時使用されるシステムおよびコンポーネントの間の通信および相互作用を示す概略図である。
【図１３】本発明によるシステムおよびコンポーネントの配列を示す概略図である。
【図１４】本発明に従ってデータ構造を作成するための論理的プロセスを示すフローチャートである。
【図１５】本発明に従って取外し可能コンピュータ媒体上の暗号化データへのアクセスを制御するための論理的プロセスを示すフローチャートである。
【図１】
0005390086.tif 000002
【図２】
0005390086.tif 000003
【図３】
0005390086.tif 000004
【図４】
0005390086.tif 000005
【図５】
0005390086.tif 000006
【図６】
0005390086.tif 000007
【図７】
0005390086.tif 000008
【図８】
0005390086.tif 000009
【図９】
0005390086.tif 000010
【図１０】
0005390086.tif 000011
【図１１】
0005390086.tif 000012
【図１２】
0005390086.tif 000013
【図１３】
0005390086.tif 000014
【図１４】
0005390086.tif 000015
【図１５】
0005390086.tif 000016