(57)【特許請求の範囲】
【請求項１】
ネットワークベースのアプリケーションを処理するコンピュータシステムであって、
プレゼンテーション層、および
前記プレゼンテーション層と結合されたモバイル層
の機能を実行するプロセッサを含むローカルシステムと、
前記モバイル層および前記プレゼンテーション層のうちの少なくとも一方に結合された保護層、および
前記保護層に結合されたデータ層
の機能を実行するプロセッサを含むリモートシステムと
を備え、
前記プレゼンテーション層はローカルデータを操作するためにローカル要求を生成し、
前記モバイル層は、前記ローカル要求を処理するためのアプリケーション論理が前記ローカルシステム上に常駐するかどうか判断し、前記アプリケーション論理が存在しない場合に、前記リモートシステムから前記アプリケーション論理を送信させるために前記保護層へのリモート要求によってダウンロード要求を開始し、
前記モバイル層はアプリケーション論理を受信する際、ローカル要求を処理するためのデータを前記データ層から受信し、
ダウンロードしたアプリケーション論理は、前記ローカルシステム上のポリシーによって認可された、前記アプリケーション論理の送信元のドメインへのコードアクセス許可によって実行され、前記アプリケーション論理がインストールされるとき、前記アプリケーション論理は、インストール時に前記アプリケーション論理に与えられたＵＲＩに基づいて許可を与えられることを特徴とするシステム。
【請求項２】
前記ローカルシステムからのリモートデータ要求に基づいてリモートデータが前記リモートシステムからダウンロードされることを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記リモートデータ要求はＨＴＴＰ要求であることを特徴とする請求項２に記載のシステム。
【請求項４】
前記リモートデータは、前記アプリケーション論理に向けて送られたローカルデータ要求によって、前記ローカルシステムでローカルに処理されることを特徴とする請求項２に記載のコンピュータシステム。
【請求項５】
前記リモートデータは、ＸＭＬ応答及びＷＭＬ応答の少なくとも１つによって提供されることを特徴とする請求項２に記載のコンピュータシステム。
【請求項６】
前記リモートデータは、インターネット、イントラネット、及び無線ネットワークの少なくとも１つを介して通信されることを特徴とする請求項２に記載のコンピュータシステム。
【請求項７】
ネットワークベースのアプリケーションを処理するためのコンピュータシステムであって、
ネットワークベースのアプリケーションと対話するためのプレゼンテーション層、
該プレゼンテーション層と結合されたモバイル層、および
該モバイル層及びプレゼンテーション層の少なくとも１つと結合された保護層
の機能を実行するプロセッサを備え、
前記プレゼンテーション層はローカルデータを操作するためにローカル要求を生成し、
前記モバイル層は、前記ローカル要求を処理するためのアプリケーション論理が常駐するかどうか判断し、前記アプリケーション論理が存在しない場合に、前記アプリケーション論理を送信させるために前記保護層へのリモート要求によってダウンロード要求を開始し、
前記モバイル層はアプリケーション論理を受信する際、ローカル要求を処理するためのデータを受信し、
ダウンロードしたアプリケーション論理は、前記コンピュータシステム上のポリシーによって認可された、前記アプリケーション論理の送信元のドメインへのコードアクセス許可によって実行され、前記アプリケーション論理がインストールされるとき、前記アプリケーション論理は、インストール時に前記アプリケーション論理に与えられたＵＲＩに基づいて許可を与えられることを特徴とするコンピュータシステム。
【請求項８】
前記プロセッサは、前記保護層と結合され、前記アプリケーション論理の実行に伴って使用されるデータを含むデータ層の機能をさらに実行することを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記保護層は、前記モバイル層が前記アプリケーション論理を実行することを可能にする論理を含むことを特徴とする請求項７に記載のコンピュータシステム。
【請求項１０】
前記モバイル層は、前記データ層によって提供されるデータを操作する前記保護層に関連付けられたアプリケーション論理を実行することを特徴とする請求項８に記載のコンピュータシステム。
【請求項１１】
前記モバイル層は、ローカルデータ要求をオフラインで処理し、当該処理されたローカルデータ要求に基づいて、前記データ層に関連付けられたデータの送信または受信の少なくとも１つを行うように前記保護層へのリモート要求を生成することを特徴とする請求項１０に記載のコンピュータシステム。
【請求項１２】
コンピュータを請求項１１に記載のコンピュータシステムとして機能させるためのコンピュータ実行可能命令を記憶したことを特徴とするコンピュータ可読記憶媒体。
【請求項１３】
ネットワークベースのアプリケーションを処理するコンピュータシステムであって、
プレゼンテーション層、および
前記プレゼンテーション層と結合されたモバイル層
の機能を実行するプロセッサを備え、
前記プレゼンテーション層はローカルデータを操作するためにローカル要求を生成し、
前記モバイル層は、前記ローカル要求を処理するためのアプリケーション論理が常駐するかどうか判断し、前記アプリケーション論理が存在しない場合に、リモートシステムから前記アプリケーション論理を送信させるために前記リモートシステムへのリモート要求によってダウンロード要求を開始し、
前記モバイル層はアプリケーション論理を受信する際、ローカル要求を処理するためのデータを前記リモートシステムから受信し、
ダウンロードしたアプリケーション論理は、前記コンピュータシステム上のポリシーによって認可された、前記アプリケーション論理の送信元のドメインへのコードアクセス許可によって実行され、前記アプリケーション論理がインストールされるとき、前記アプリケーション論理は、インストール時に前記アプリケーション論理に与えられたＵＲＩに基づいて許可を与えられることを特徴とするシステム。
【請求項１４】
ネットワークベースのアプリケーションを処理するためのコンピュータシステムであって、
ネットワークベースのアプリケーションと対話するためのプレゼンテーション層、および
該プレゼンテーション層と結合されたモバイル層
の機能を実行するプロセッサを備え、
前記プレゼンテーション層はローカルデータを操作するためにローカル要求を生成し、
前記モバイル層は、前記ローカル要求を処理するためのアプリケーション論理が常駐するかどうか判断し、前記アプリケーション論理が存在しない場合に、前記アプリケーション論理を送信させるためにリモートシステムへのリモート要求によってダウンロード要求を開始し、
前記モバイル層はアプリケーション論理を受信する際、ローカル要求を処理するためのデータを受信し、
ダウンロードしたアプリケーション論理は、前記コンピュータシステム上のポリシーによって認可された、前記アプリケーション論理の送信元のドメインへのコードアクセス許可によって実行され、前記アプリケーション論理がインストールされるとき、前記アプリケーション論理は、インストール時に前記アプリケーション論理に与えられたＵＲＩに基づいて許可を与えられることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、コンピュータシステムに関し、より詳細には、多層分散型アプリケーションアーキテクチャ（ｍｕｌｔｉ−ｔｉｅｒ  ｄｉｓｔｒｉｂｕｔｅｄ  ａｐｐｌｉｃａｔｉｏｎｓ  ａｒｃｈｉｔｅｃｔｕｒｅ）を提供するネットワークベースのアプリケーション、それを処理するためのアーキテクチャ及びシステム、及びそれを実行するための方法に関する。本発明は、より高性能なネットワーク／システムの動作を容易にし、ユーザに一貫したオフライン／オンライン体験を提供するために、リモートアプリケーションの部分をローカルシステムから実行できるようにする。
【０００２】
【従来の技術】
インターネットおよび他のネットワーク技術の爆発的な発展は、２０世紀後半以降の技術革新を加速した。これらの新しくて刺激的な技術により、新興企業も従来企業も成長してきたが、周囲の状況から、長い間に発展し、かつ既存のサービスを提供し続ける既存のシステムおよびネットワークアーキテクチャをある程度受け入れざるを得なかった。たとえば、インターネットシステム間に共通のテーマとして、大規模なデータベースに密結合された非常に強力なサーバを提供することが挙げられる。このサーバは、サーバ提供アプリケーションによってワールドワイドウェブをサーフするリモートユーザからの数千もの要求を処理することができる。このモデルは、引き続きインターネットのトラフィックを処理することはできるが、現在のシステムでは、性能上および論理上の問題が依然として未解決のままである。
【０００３】
【発明が解決しようとする課題】
サーバ提供アプリケーションモデルに関連する一つの問題は、ローカルクライアント資源を利用することに関係している。たとえば、ネットワークサーバは、複数の多種多様なリモートサービス要求に応答するために複数の重複した計算を実行しなければならないので、ボトルネックとなりがちである。マイクロプロセッサとクロックのスピードが高速化してパーソナルコンピュータ（ＰＣ）の性能は向上したものの、サーバでボトルネックが生じたことによって、リモート処理が完了するまでＰＣを待機させることがしばしばあり、ネットワーク全体の性能は、ＰＣの性能の向上に追い付けなくなってきている。したがって、現在のＰＣ技術の向上は、現在のモデルによって完全には作用しておらず、また利用されていない。
【０００４】
サーバ提供アプリケーションモデルに関係するもう一つの問題は、一般にネットワークの性能に関連するものである。ウェブページへのアクセスとその操作は、たとえば、一般的に、リモートのクライアントとサーバの間で膨大な量のデータを頻繁に交換することを必要とする。ユーザ数の増加に伴い、インターネット上のデータ処理件数は増加し、その結果、全体の通信性能は低下する。したがって、クライアントがネットワークとの対話性を引き続き享受しながらも、それに伴うネットワークからの要求と待ち時間を削減することができる、より強力で柔軟なシステムアーキテクチャが求められている。
【０００５】
既存アーキテクチャに関連するさらにもう一つの問題は、ネットワークベースのシステムのオフライン性能に関係する。多くのウェブページは、たとえば、ユーザに、所与のサイトが提供するデータを監視し利用するための対話型の活気ある体験（ｖｉｂｒａｎｔ  ｅｘｐｅｒｉｅｎｃｅ）を提供する。ユーザが現在のサイトにオンラインで留まる限り、その対話型の体験は続く。しかし残念ながら、それらのサイトからデータファイルをダウンロードできたとしても、そのウェブページを操作するサーバアプリケーションから切断されると、対話型で、しばしば有用なデータの表示／操作は失われる。ユーザが後刻オフラインでそのデータを監視するとき、関連するサーバとオンラインであるかのようにそのデータを閲覧し、操作することができることは非常に適切で有用である。したがって、現在オンラインで得られる機能と同様のオフラインサービス機能を提供するシステムおよび／または方法が求められているが、これは未解決である。
【０００６】
【課題を解決するための手段】
本発明は、アプリケーションを複数のシステム間で共用し、利用することができる多層アプリケーションアーキテクチャに関する。多層アーキテクチャにより、ローカルシステム資源は、従来、中央に位置するアプリケーションサーバシステムで提供されていたアプリケーションをサービスすることができるようになる。したがって、中央設置場所からサービスが提供され、すなわち伝達されるのとは対照的に、クライアントのパーソナルコンピュータシステムが、ネットワークアプリケーション（インターネット、イントラネット、無線ネットワーク、遠隔通信（Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ）など）をローカルに提供し、サービスすることができるので、本発明によって、性能とオフライン機能は向上する。サーバシステムからクライアントシステムに性能の機能をシフトすることによって、ネットワーク性能を向上させ、リモートからのサービス要求に関わる待ち時間を緩和することができる。さらに、オフライン機能を向上させることもできる。
【０００７】
より詳細には、本発明は、リモートデータシステムに関連する対話型処理をローカルに実行することができる多層アーキテクチャを提供する。このアーキテクチャは、プレゼンテーション層（ｐｒｅｓｅｎｔａｔｉｏｎ  ｔｉｅｒ）、モバイル層（ｍｏｂｉｌｅ  ｔｉｅｒ）（たとえば、非保護層（ｕｎｇｕａｒｄｅｄｔｉｅｒ））、保護層（ｇｕａｒｄｅｄ  ｔｉｅｒ）、およびデータ層（ｄａｔａ  ｔｉｅｒ）を含むことができる。プレゼンテーション層は、たとえば、リモートユーザデータ要求を生成するためのブラウザを含むことができる。この場合、ブラウザは、たとえば、クライアントのマシンに常駐するモバイル層にローカル要求を生成することができる。次いで、モバイル層に関連付けられたローカルアプリケーション論理は、データ層へのアクセス権を有するリモートサーバに関連付けられた保護層にリモートサービス要求を送信することができる。保護層は、リモート要求を受信すると、ウェブページおよび／または他のネットワークアプリケーションに関連付けられたリモートデータと対話し、それを操作するために、データ層からモバイル層に、関連するデータと共にアプリケーション論理の部分をダウンロードすることができる。前述のアプリケーション部分は、別法として、たとえばＣＤ  ＲＯＭからクライアントの端末にロードすることもできることに留意されたい。アプリケーションをモバイル層にインストールすることによって、クライアントシステムは、リモートデータとローカルに対話することができ、したがって、ローカルコンピュータ資源（ｌｏｃａｌ  ｃｏｍｐｕｔｉｎｇ  ｒｅｓｏｕｒｃｅｓ）に作用し、さらにサーバシステムへのネットワークアクセスを緩和することができるようになる。さらに、クライアント資源がより完全に利用され、セキュリティが向上し、インストール費が削減され、従来型サーバモデルに関連するラウンドトリップの待ち時間が向上する統一アプリケーションモデルが提供される。以下で詳述するように、ローカルシステムアクセスをローカル資源に、またリモートアクセスをリモート位置に、ユーザに透過的に向けることができる要求処理システムを提供することによって、ローカルアクセスを容易にすることができる。アプリケーションのローカルでの実行を可能にすることによって、ユーザは、オンライン体験と同様の方法で、ネットワークデータオフラインで対話できるようになる。したがって、本発明は、オフラインユーザ体験を向上させるものである。
【０００８】
本発明の一態様は、ネットワークベースのアプリケーションに関係し、該アプリケーションは、アプリケーション論理とプレゼンテーション論理を含み、少なくともその一部は、変更を加えられることなく、サーバまたはクライアントによって区別なく（ｉｎｔｅｒｃｈａｎｇｅａｂｌｙ）交互に処理される。
【０００９】
本発明の別の態様は、ネットワークベースのアプリケーションを処理するためのアーキテクチャに関係する。該アーキテクチャは、クライアントに、ウェブベースのアプリケーションと対話するためのプレゼンテーション層を含む。モバイル層は、プレゼンテーション層と操作可能に結合され、クライアント側またはサーバで、ネットワークベースのアプリケーションの少なくとも一部を実行することを提供する。保護層は、モバイル層とプレゼンテーション層の少なくとも一つと操作可能に結合され、サーバで、ウェブベースのアプリケーションの残りの部分を実行することを提供する。
【００１０】
本発明の別の態様は、ネットワークベースのアプリケーションを実行する方法に関係し、クライアントコンピュータ上でネットワークベースのアプリケーションの少なくとも一部を実行することを備え、ウェブベースのアプリケーションは、アプリケーション論理とプレゼンテーション論理とからなり、少なくともその一部が、変更を加えられることなく、サーバまたはクライアントによって区別なく処理される。
【００１１】
以下の記述および添付の図面で、本発明のいくつかの例示的態様を詳述する。ただし、これらの態様は、本発明の原理を実施することができる様々な方法のいくつかしか示していないが、本発明は、そのような態様のすべてとそれらに相当する態様を含むことを意図する。以下の本発明の記述を図面と共に検討することによって、本発明の他の利点と新規な特徴が明らかになろう。
【００１２】
【発明の実施の形態】
次に、本発明を、図面を参照しながら説明する。同様の要素は、一貫して同様の参照番号によって示す。
【００１３】
本発明は、ネットワークサーバアプリケーションをマシンにローカルにインストールすることを必要とせずに、クライアントマシン上で（たとえば、ブラウザ内で）ネットワークサーバアプリケーションを実行するシステムおよび方法に関する。したがって、アプリケーションを、自動的にダウンロードし、インストールすることができ、その結果、安全な環境におけるゼロコストのインストールと実行が容易になる。本発明は、ネットワークサーバに書き込まれたネットワークアプリケーションと類似および／または同一に見えるネットワークアプリケーションを使用可能にする。さらに、それらのアプリケーションは、一般にホストのネットワークサーバに関連付けられるハードウェアを必要とせずに、オフラインで実行することができる。
【００１４】
まず図１を参照すると、例示的システム１０ａは、本発明による多層分散型アプリケーションアーキテクチャの例示的一態様を示す。ローカルシステム２０は、ローカルシステム要求と、ローカルデータ処理（たとえば、ウェブページ、無線データ）操作を処理するために提供されている。ブラウザ（図示せず）（たとえば、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｎｅｔｓｃａｐｅ、ＨＴＭＬ３．２、ＷＭＬ、ＪＡＶＡ(登録商標)）を含むことができるプレゼンテーション層２４は、ユーザがローカルシステム２０上のローカル（たとえば、ウェブ）情報にアクセスするためのインタフェースを提供する。ユーザがプレゼンテーション層２４にアクセスすると、ローカルデータ要求２８（たとえば、ＨＴＴＰ）がモバイル層３２に送信される。モバイル層３２は、ローカルアプリケーション論理（図示せず）を提供する。これは、ローカル要求２８を、ローカルシステム２０で処理するために変換し、送信するため、かつ／またはリモート要求３６（たとえば、ＨＴＴＰ）をリモートシステム４０に送信するためのローカルアプリケーション論理（図示せず）である。モバイル層３２は、一般に、たとえばリモートシステム４０とローカルシステム２０の間に高度の信頼性を確立することができるシステムの場合を除いて、「保護されない（ｕｎｇｕａｒｄｅｄ）論理」とみなされることに留意されたい。リモートシステム４０は、ローカルアプリケーション論理をモバイル層３２に提供し、かつ／またはデータ層４８に関連する情報（たとえば、ウェブページ、リモートアプリケーションデータ）に関係するデータへのインタフェースを提供するための保護層４４を含むことができる。アプリケーション論理と、データ層に関連付けられたデータとを保護層４４からダウンロードできるようにすることによって、ローカルシステム２０の資源が利用できるようになり、その結果、情報アクセスが容易になり、データ層４８によって供給される情報をローカルシステム２０からオフラインで操作し、利用することができるようになる。モバイル層３２のアプリケーション論理は、別法として、ローカルシステム２０上で、たとえばＣＤおよび／またはフロッピーディスク(登録商標)からロードすることによってローカルに提供することもできることに留意されたい。
【００１５】
ローカルデータにアクセスし、それを操作するために、ローカル要求２８が生成されると、モバイル層３２は、そのローカル要求２８を処理するためのアプリケーション論理がローカルシステム２０に常駐するかどうかを判定する。アプリケーション論理が常駐しない場合、モバイル層３２は、そのアプリケーション論理をリモートシステム４０から送信させるために、保護層へのリモート要求３６によってダウンロード要求を開始することができる。モバイル層３２は、この論理を受信する際、ローカルデータ要求２８を処理するためのデータをデータ層４８から受信することもできる。モバイル層３２がローカル要求２８を処理するように構成された後、ユーザは、たとえば、リモートシステム４０で提供されているかのように、その情報にアクセスすることができる。ただし、ローカルシステム２０の資源は、要求を処理するために利用することができる。このようにして、性能の向上および情報（たとえば、ウェブページ）のオフライン操作の向上を達成することができる。ローカル要求２８が操作のためのさらなるデータを必要とする場合、追加のリモート要求３６を、保護層４４に対して開始することができ、かつ／または、後刻、ユーザがオフライン作業の後、オンライン接続を再確立したときにこれを開始することができる。
【００１６】
保護層４４は、アプリケーション論理と前述のデータを、リモート要求５４（たとえば、ＸＭＬファイル、無線マーク付け言語（ＷＭＬ：Ｗｉｒｅｌｅｓｓ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ））ファイル）によって供給することができることに留意されたい。モバイル層３２論理は、保護層４４か、モバイル層３２のどちらかに常駐できることもさらに留意されたい。たとえば、保護層４４は、本発明によるモバイル層３２のダウンロード要求に応答するためのインタフェース（図示せず）の部分を含むことができ、また、プレゼンテーション層２４からの要求を直接に処理するための論理を含むことができる。図２を簡単に参照すると、本発明に従って構成された保護層がリモートシステム４０によって提供されていない場合、リモートシステムに直接にアクセスするために、プレゼンテーション層２４によってバイパス要求５６を開始することができる。
【００１７】
再度図１を参照すると、ローカルシステム２０の構成が完了した後で（たとえば、ダウンロードおよび／またはＣＤインストール）、本発明によるオフラインシステムを使用することができる。たとえば、アプリケーションは、インターネットのショッピングサイトからダウンロードすることができる。アプリケーションは、上記のデータ層４８からオフラインで表示するために、そのデータカタログの一部をＸＭＬ形式で提供することができる。インターネットのショッピングサイトは、そのエントリページで、たとえば、ユーザは、オフライン中であっても、リンクをクリックすることによって、その在庫を閲覧し、注文することができることを宣伝することができる。この場合、ショッピングアプリケーションとＸＭＬデータカタログをダウンロードし、自動的にローカルにインストールすることができる。顧客は、一週間を通して、カタログをローカルに閲覧し、必要なものを思いついた時はいつでもショッピングカートにアイテムを追加する。注文が提出されると、キューに入れられたトランザクションを、アプリケーションのストレージ（図示せず）に保持されたＸＭＬストアで生成することができる。ユーザは、次にオンラインになった際、ショッピングアプリケーションに移動することができ、このアプリケーションは、ユーザに、提出すべき注文があることを通知する。ユーザは、次いで、その注文の提出を許可することができ、それは次いで、処理される。ユーザは、いかなる料金の変更（セール、または増額）の通知も受信することができ、次いで注文を許可または拒絶することができ、その推定配達時は返送されることができる。
【００１８】
前記でインターネットのアプリケーションの例について記述したが、本発明は、実質的に本発明に従って構成されたいかなるローカルシステムおよびリモートシステムにも適用できることを理解されたい。たとえば、無線電話、パーソナルデジタルアシスタント（ＰＤＡ）、または他のハンドヘルド装置を、リモートサーバの記憶場所から本発明によるモバイル層論理をロードするように構成することができる。たとえば、無線電話のユーザは、リモートシステムからアプリケーション論理と、電話帳に関するデータをダウンロードすることができる。たとえば、ユーザは、後刻、リモートシステムに直接無線接続を介してまだ接続しているかのように電話帳にアクセスし、それを操作することができる。リモートシステムに追加データが要求された場合、モバイル層論理は、ユーザが次にリモートシステムにアクセスしたときに追加データを要求するか、または要求に基づいてリモートシステムに無線接続を開始することができる。複数の他のローカル／リモートシステムも、同様に構成することができることをさらに理解されたい。
【００１９】
以下で詳述するように、ローカルシステム２０内のローカルファイルを望まないアクセスから保護するために、モバイル層３２はセキュリティシステムを含むことができる。リモートシステム４０は、保護層４４とデータ層４８の密結合された関係を含むことができ、データ層にアクセスするための保護層論理は、データ層４８に高度に依存することができることにも留意されたい。それとは対照的に、本発明はローカルシステム２０とリモートシステム４０の疎結合された関係を提供する。その際、データには、ローカルシステム要求の命令によってたまにアクセスすることができ、したがって、システム間において最大の柔軟性と性能が容易になる。プレゼンテーション層２４とモバイル層３２の間で密結合および／または疎結合の構成を確立することができることにさらに留意されたい。
【００２０】
次に図３を参照すると、システム１０ｂは、本発明の例示的態様によるローカルシステム２０のアーキテクチャを例示する。システム１０ｂは、インターネットの例に関連して記述されているが、本発明は、実質的に前述のいかなるローカル／リモートデータアクセスシステムにも適用することができることを理解されたい。たとえば、ローカルシステム２０は、ウェブページ６８および／または他のデータ形式にアクセスするためにローカルアプリケーション論理６４と通信するためのユーザインタフェースを提供するブラウザ６０を含むことができる。ウェブページ６８は、たとえば、ウェブページを操作するためのＨＴＭＬのヘッダとスクリプトを含むことができる。ローカル要求２８を処理するために、ハンドラ７２（たとえば、ＨＴＴＰ）も提供することができる。以下で詳述するように、ローカルアプリケーション論理６４をローディングする際に、ローカルシステムにローカル要求をマップすることができる。たとえば、リモートインターネット要求は、ｈｔｔｐ：ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍと表示することができ、本発明は、論理６４をローディングする際に、ローカルウェブページアクセス用に、リモート要求をＭｙＣｏｍｐａｎｙ：ｗｗｗ．ｅｘａｍｐｌｅ．ｃｏｍにマップすることができる。したがって、ローカルシステム２０で、ウェブページおよび／または他の要求を処理するためのシームレスで透過的なシステムがユーザに提供される。
【００２１】
次に図４を参照すると、システム１０ｃは、本発明の一態様による要求処理システムを例示する。システム１０ｃは、ブラウザ６０と共に、またはブラウザ６０内で実行されるように構成することができる。システム１０ｃは、後述するプロトコル方式用のハンドラとして登録することができる、非同期プラガブルプロトコルハンドラ（ＡＰＰ）（ａｓｙｎｃｈｒｏｎｏｕｓ  ｐｌｕｇｇａｂｌｅ  ｐｒｏｔｏｃｏｌ  ｈａｎｄｌｅｒ）８０を使用する。ブラウザ６０によってそのプロトコル方式を使用して要求が生成されると、ＵＲＬモニタ８４は、ハンドラ（ＡＰＰ）８０を活動化する。ＡＰＰ  ８０は、システム１０ｃに書き込まれたワーカ要求（ｗｏｒｋｅｒ  ｒｅｑｕｅｓｔ）８８にその要求を渡し、それは、ローカルＨＴＴＰ要求９６を処理するように構成されたローカルハンドラ９２（このメカニズムを介して、静的ファイルも送信される）にＵＲＩ（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）をマップする。ＡＰＰ  ８０は、ローカルレジストリ（図示せず）からの情報に基づく所与のアプリケーションのために、ブラウザ６０に適切なセキュリティゾーンを提供する。
【００２２】
次に、前述のプロトコル方式を詳述する。システム１０ｃは、動的な内容と静的な内容を含めてすべてのＵＲＩを識別するためのプロトコル方式を使用することができる。たとえば、ウェブサイトアプリケーションは、すべてローカルハンドラ９２に分解される下記のＵＲＩを提示することができ（マッピングメカニズムについては以下で詳述する）、ｅｘａｍｐｌｅｗｅｂは、ローカル資源への例示的マッピングを提供する。
【００２３】
ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ｄｅｆａｕｌｔ．ａｓｐｘ
ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ｉｍａｇｅｓ／ｌｏｇｏ．ｊｐｇ
ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ａｃｃｏｕｎｔｓ．ａｓｐｘ
ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ｓｔａｔｉｃ／ａｂｏｕｔ．ｈｔｍ
【００２４】
システム１０ｃは、インストールされたアプリケーションのローカルマッピングと、それらのＵＲＩネーム空間をローカル記憶位置に維持することができる。これにより、ユーザは、たとえばそのリモートＵＲＩを使用して、リモートアプリケーションを参照することができる。さらに、これにより、ＵＲＩを、ある方式で他のインストレーションにエクスポートできるようにすることができ、また、本発明で動作するように構成された要求駆動型インストレーションを可能にすることができる。さらに、ローカルにインストールできるブラウザアプリケーションが、リモートで発信することができ、したがって、ローカルマシンではなくリモートサイトに適した信頼性を持ってそれらを実行すべきであることを、ブラウザアプリケーションに警告することができる。
【００２５】
たとえば、ユーザが、ＵＲＩ  ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙを使用してマイクロソフトマネーの将来バージョンをインストールすると想定する。ＵＲＩを呼び出す第１の試行により、システム１０ｃは、名前付けパタンを使用して、サイトから名簿（ｍａｎｉｆｅｓｔ）（下記参照のこと）を取り出すことができる（たとえば、ｈｔｔｐ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ｅｘａｍｐｌｅｗｅｂ．ｏｓｄ）。ユーザが、アプリケーションをインストールすることを選択すると、データを、ローカルにコピーし、インストールすることができる。後刻、ユーザがそのアプリケーションＵＲＩ（ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ）に戻ると、システム１０ｃは、そのアプリケーションのローカルにインストールされたバージョンを呼び出すことができる。ただし、アプリケーションがローカルにあるとき、ブラウザが、たとえばブラウザでフレーム横断アタック（ｃｒｏｓｓ  ｆｒａｍｅ  ａｔｔａｃｋ）を行ってローカル資源にアクセスしないように、そのアプリケーションがリモートアプリケーションであることをブラウザ６０に警告する必要がある。このメカニズムにより、ユーザは、自分が何を実行しているか、そのファイルはどこから発信されたかを知ることもできる。
【００２６】
名前を分解するとき、システム１０ｃは、たとえば、最も長い一致を探すことを、ローカルマッピングのリスト全体にわたって繰り返すことができる。最も長い一致を選択した後、システムはその一致をインストールしたアプリケーションのアプリケーションドメインに分解し、適切なハンドラ９２を呼び出すことができる。シャドーイング（ｓｈａｄｏｗｉｎｇ）の場合、ユーザは所与のポイントからアプリケーションをインストールし、後刻、同じ階層のさらに深いポイントからアプリケーションをインストールすることを希望する（たとえば、ｅｘａｍｐｌｅｗｅｂ：／／ｗｗｗ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｍｏｎｅｙ／ａｄｄｏｎｓ／ｌｏａｎ−ｃａｌｃｕｌａｔｏｒ）。その際、そのＵＲＩに登録されたハンドラ９２がまったくないので、要求−インストレーションは依然として可能な状態であることができる。
【００２７】
以下の例は、ＵＲＩマッピングがどのようにシステム１０ｃで動作することができるかを例示する。ユーザは、次のようにインストールした２つのアプリケーションを有することができる。
【００２８】
【表１】
0004950389.tif 000002
【００２９】
それらのアプリケーションは、それぞれそのルートがウェブページ、ｂｉｎ  ディレクトリのＣＯＭ＋アセンブリ、静的内容、およびデータから構成される階層を有することができる。これらのアプリケーションは、次の例示的構成を有することができるこの例を除いて、任意の構成を有することができる。
【００３０】
ａｐｐｒｏｏｔ
ｂｉｎ＼  ＃  Ｂｕｓｉｎｅｓｓ  ｌｏｇｉｃ（ｖａｒｉｏｕｓ  ａｓｓｅｍｂｌｉｅｓ）
ｉｍｇ＼  ＃  ｉｍａｇｅｓ
ｄａｔａ＼  ＃  ＸＭＬ  ｓｔｏｒｅｓ
ｄｅｆａｕｌｔ．ａｓｐｘ
ｃｏｎｆｉｇ．ｃｆｇ
【００３１】
次の表に、様々な例示的アプリケーションＵＲＩと、その対応する物理ファイルを示す。アプリケーションのＵＲＩネーム空間の部分への要求を所与のハンドラ９２に関連させることによって、仮想ＵＲＩを維持できることも理解されたい。
【００３２】
【表２】
0004950389.tif 000003
【００３３】
アプリケーションをインストールするには、少なくとも、標準インストレーションプラットフォーム（ｓｔａｎｄａｒｄ  ｉｎｓｔａｌｌａｔｉｏｎ  ｐｌａｔｆｏｒｍ）を使用してアプリケーションをインストールする方法と、リモートＵＲＩが前述のプロトコル方式を使用して要求される要求駆動型インストレーション（ｄｅｍａｎｄ−ｄｒｉｖｅｎ  ｉｎｓｔａｌｌａｔｉｏｎ）の２つの方法がある。インストールしたアプリケーションは、ＵＲＩをそれがインストールされた記憶位置にマップするローカルレジストリ（図示せず）で維持することができる。レジストリは、また、インストレーションの時刻および使用情報を含めてインストレーション情報も維持することができる。アプリケーションに関する情報は、たとえば、ＨＫＥＹ＿ＣＵＲＲＥＮＴ＿ＵＳＥＲ＼＼ＳＯＦＴＷＡＲＥ＼Ｍｉｃｒｏｓｏｆｔ＼ＸＳＰ＼Ｅｘａｍｐｌｅｗｅｂの下でシステムレジストリにストアすることができる。各アプリケーションには、そのオリジンホストとアプリケーション経路によって指定されたキーがある（たとえば、ｗｗｗ．ｆｏｏ．ｃｏｍ／ｍｙａｐｐ）。インストールしたアプリケーションには、次のレジストリ値を含めることができる。
【００３４】
【表３】
0004950389.tif 000004
【００３５】
明示的および／または要求駆動型シナリオのためのインストレーションは、任意の従属関係と共に名簿（下で述べる）に指定されるキャビネット（ＣＡＢ）ファイルまたは明示的ファイルを取り出すことから構成することができる。ファイルが取り出されると、ファイルは、ファイルシステム（ＣＡＢファイルは、そのディレクトリ階層を維持したままエクスプロードすることができる）のディレクトリに入れることができる。レジストリにエントリを追加することができ、したがって、アプリケーションのＵＲＩを物理記憶位置にマッピングすることができる。物理記憶位置は、一意の識別子（図示しないＧＵＩＤなど）によって判定することができる。名前を容易に演算されないためには、これが望ましい。
【００３６】
アプリケーションは、次の名前付けの規定を使用してファイルシステムに入れることができる。基底アプリケーションディレクトリ（たとえば、ｃ：＼プログラムファイル）から開始して、サーバ名、次いでアプリケーション名、さらに一意に生成された識別子を添える。たとえば、ｈｔｔｐ：／／ｗｗｗ．ｆｏｏ．ｃｏｍ．／ｂａｒ／ｂａｚから発信されたアプリケーションは、次の題名のディレクトリに常駐することができる。
【００３７】
【表４】
0004950389.tif 000005
【００３８】
名前のランダムな部分は予測不能であり、アプリケーションのインストールの前にシステム１０ｃによって生成される。アプリケーションは、ページ、メッセージング／ウェブ、方法ファイル、ハンドラ、および構成データを含めて任意の適切なウェブページハンドラからなることができる。構成データは、アプリケーションの適用範囲に対するハンドラを活動化することができ、そのアプリケーション用の設定を提供することができる。
【００３９】
ユーザが、ローカルにインストールされていないＵＲＩに移動しようとするとき、リンクをクリックすることによって、またはブラウザ６０にＵＲＩをタイプインすることによって、システム１０ｃは、後述するアプリケーションの名簿を探し出す試行を行うことができる。提示されたＵＲＩが、拡張子によって判定されたアプリケーションの名簿を識別する場合、システムはそれを取り出し、その名簿ファイルを解析する。この場合、ユーザに、システム１０ｃがアプリケーションをローカルにインストールすることを試行中であることを示すユーザインタフェースＵＩ（図示せず）を提示することができる。たとえば、ＵＩは、必要なディスク空間（提示される場合は、＜ＤＩＳＫＳＰＡＤＥ＞ＯＳＤエレメントと、任意の従属ＣＡＢファイルを格納するために必要なサイズの和に基づいて）を示し、ユーザが要求すれば、省略時ディスク割当てを指定変更し、アプリケーションに含まれるファイル名を閲覧することを可能にする。インストレーションＵＩは、基本の構成データの省略時ビューと、個別ファイルを表示し、ユーザにアプリケーション実行許可の制御を可能にする拡張型ビュー（たとえば、ファイルＩ／Ｏ許可および／または標準的ＣＯＭ相互運用性）を提供することができる。
【００４０】
所望ならば構成を提供することはできるが、インストレーションは、当初、構成を要求できないことに留意されたい。透過的操作を可能にするために、ユーザは、省略時値を使用して、クリックしてインストレーションを確認し、先へ進まなければならない。ＵＲＩが名簿ファイルディレクトリを参照しなかった場合、システム１０ｃは、標準名簿名とＵＲＩのホスト／経路部分を結合することによって名簿の取出しを試みることができる。これが失敗すると、システムは、経路の部分を除去すること、および各レベルに名簿ファイルを置くことから構成されるバックオフアルゴリズムを使用することができる。パッケージされたインストレーション（たとえば、ＣＤ  ＲＯＭ、フロッピー(登録商標)）に対して、アプリケーションは、適切に登録するためにレジストリＡＰＩを呼び出すことができる。デフォルト値により、それらのアプリケーションには、ローカルトラストを与えることができる。しかし、それらのアプリケーションは、たとえば要求できる許可を要求するために、ＣＯＭ＋コードアクセスセキュリティを使用して自己防衛することができる。
【００４１】
前述のＵＩは、期限経過とみなされたアプリケーションを自動更新するか、それとも期限経過とみなされたいかなるアプリケーションの更新も手動で確認することを選択することができるオプションを含めることができる。システムは、アプリケーションの更新を確認するとき、まず名簿ファイルを取り出すことができる。名簿ファイルに異なるバージョンがある場合、ユーザの確認を保留して、様々な従属関係を取り出し、インストールすることができる。インストレーションに加えて、システムは、防護策として、アプリケーション発信元サーバからのダウンロード更新を制限することができる。さらに、分離ストレージ（Ｉｓｏｌａｔｅｄ  Ｓｔｏｒａｇｅ）機能は、たとえばインストールしたアプリケーションをデュラブルストレージ（ｄｕｒａｂｌｅ  ｓｔｏｒａｇｅ）でローカルに維持することを可能にするために、ＣＯＭ＋によって提供することができる。分離ストレージは、複数のメカニズム管理、満了管理、有効期間管理によって分離をサポートする管理されたファイルシステムを提供する。アプリケーションは、アプリケーションをローカルファイルシステムにアクセスさせる危険にユーザを曝すことなく、分離データストレージを維持するので、これはシステム１０ｃ用のＣＯＭ＋の機能である。
【００４２】
システム１０ｃは、前述の名簿（たとえばＯＳＤ）を使用して、アプリケーションをインストールすることをサポートする。デフォルト値の名簿名は、たとえばｅｘａｍｐｌｅｗｅｂ．ｏｓｄにすることができる。ＯＳＤ名簿は、名簿にソフトウェア資源の様々な表示を定義することを可能にする実施タグをサポートする。たとえば、固有のＷｉｎ３２バージョンと、システム１０ｃバージョンがある場合がある。実施のタイプは、ＩＭＰＬＴＹＰＥエレメントによって示すことができる。たとえば、システムは、「Ｃｏｍ＋」「Ｅｘａｍｐｌｅｗｅｂ」または明示的ＩＭＰＬＴＹＰＥエレメントが欠乏した１つ以下の実施エレメントを有するＩＭＰＬＴＹＰＥを有するアプリケーションをインストールすることができる。ＯＳＤフォーマットは、ＯＳと呼ばれるエレメントをサポートすることができ、その結果、異なるＯＳに対して異なる実施態様を可能する。システム１０ｃは、いかなるサポートされたプラットフォーム上でもＯＳを使用せずにこのタグをサポートし、実施を受け入れることができ、またはプラットフォームを制限するＯＳタグを尊重することを試みることができる。これにより、トランザクションのような、プラットフォーム特有のサポートを要求するアプリケーションが、所望の機能をサポートするそのプラットフォームへのインストレーションを制限することを可能にする。たとえば、トランザクションの意味体系を有するアプリケーションは、次のようなエレメントを使用してＷｉｎｄｏｗｓ(登録商標)  ２０００を要求する場合がある。
【００４３】
【表５】
0004950389.tif 000006
【００４４】
アプリケーションが、トランザクションを要求しないアプリケーションのバージョンも提供する場合、第２の実施態様は、次のエレメントを含むことができる。
【００４５】
【表６】
0004950389.tif 000007
【００４６】
例示的名簿には、以下のものが含まれる。
【００４７】
【表７】
0004950389.tif 000008
【００４８】
アプリケーションの潜在的消費者に情報を提供するために使用することができるいくつかの他の選択的エレメントがあることが理解されよう。たとえば、ＯＳＤは、（アンパック）アプリケーションを含めるためにどれだけのディスクストレージが必要かを詳述するＤＩＳＫＳＰＡＣＥエレメントを有することができる。
【００４９】
以下の属性は、システム１０ｃがサポートするＯＳＤ形式への拡張子であってよい。
【００５０】
【表８】
0004950389.tif 000009
【００５１】
ダウンロードしたアプリケーションは、ローカルマシン上のポリシーによって認可された、リモートドメインへのコードアクセス許可（図示せず）によって実行することができる。ローカルアプリケーションがインストールされるとき、インストレーション時にアプリケーションに提供されたＵＲＩに基づいて、許可を与えられることができる。この際、インストレーションは、ユーザの希望に応じて、ローカルおよび／またはリモートであってよい。システム１０ｃは、アプリケーションディレクトリ階層からロードされたいかなるコードも、そのアプリケーションの元のドメインに関連付けられていることを示すために、ポリシーをアプリケーションドメインに追加することができる。たとえば、アプリケーションが、ｗｗｗ．ｆｏｏ．ｃｏｍ．／ｍｙａｐｐからダウンロードされ、インストールされるとする。システム１０ｃがアプリケーションからコードをロードするとき、システム１０ｃは、セキュリティシステムに、そのコードがｗｗｗ．ｆｏｏ．ｃｏｍ／ｍｙａｐｐからのものであることを示す証拠を提供し、その結果、そのドメインに対する許可を適用することができる。さらに、システム１０ｃは、アプリケーションディレクトリ（および子ディレクトリ）からロードされたコードをリモートＵＲＩ：ｗｗｗ．ｆｏｏ．ｃｏｍ／ｍｙａｐｐに関連付けることができるように、ポリシーを追加することができる。これにより、アプリケーションがその固有のディレクトリからアセンブリをロードすることを可能にすること、およびその結果ドメインのセキュリティを無視することが軽減される。システムは、また、ネットワークの入出力が、元のリモートホスト（前述の例ではｗｗｗ．ｆｏｏ．ｃｏｍ）に対して使用可能になることを示すためにポリシーを追加することもできる。
【００５２】
管理ＵＩは、システム１０ｃがインストールされたときにも、実施することができる。たとえば、ブラウザ６０のツールバーにツールバーボタンを追加することができる。このボタンがクリックされると、たとえば管理ＵＩを呼び出すことができるｅｘａｍｐｌｅｗｅｂ：／／Ｈｏｍｅに移動することができる。ｅｘａｍｐｌｅｗｅｂ：／／またはｅｘａｍｐｌｅｗｅｂ：／／Ｈｏｍｅにユーザが移動すると、管理ＵＩを実行することもできる。管理ＵＩは、以下の例示的なページを含むことができる。
【００５３】
ホームページ：インストールしたアプリケーションを列挙することができ、容易にそれらを除去する方法を提供するページである。さらに、ローカルソースまたはリモートソースから新しいアプリケーションをインストールするためのリンクを提供することもできる。
【００５４】
インストールページ：このページがリモートＵＲＩと共に提示される場合、このページは、ユーザに、アプリケーションに関する名簿からの情報を提示し、またそのアプリケーションをインストールすることを可能にすることができる。このページがリモートＵＲＩと共に提示されなければ、これに対して指示することができる。
【００５５】
ローカルインストールページ：ローカルディレクトリ、およびアプリケーションに関して使用するローカルＵＲＩを指定し、ユーザがローカルアプリケーションをインストールすることを可能にするページである。
【００５６】
削除確認ページ：ページを削除する前にユーザに確認のためにプロンプト表示するページである。確認が得られると、アプリケーションを除去する。
【００５７】
更新ページ：ユーザに、アプリケーションの新しいバージョンが入手できることを通知し、それを取り出すか否かを尋ねるページである。承認が得られると、新しいバージョンがダウンロードされ、インストールされる。アプリケーションがページを更新すると、このページは、成功裏の更新後にそこに指定変更しなければならない。
【００５８】
次に図５に、本発明による方法を示す流れ図を示す。ステップ１５０で、ユーザはデータ要求を開始する。ステップ１５４では、ステップ１５０の要求で、アプリケーションが動作するためにローカルシステム上にロードされたか否かの判定が行われる。アプリケーションがすでにロード済みの場合、方法はステップ１６０に進み、前述の通りに要求をローカルシステムにマップする。要求がマップされた後、ステップ１６４で、ユーザは、ローカルシステムでそのデータ（たとえば、ウェブページ）と対話することができる。要求されたサービスを提供するアプリケーションがステップ１５４でロードしなかった場合、プロセスはステップ１６８に進む。ステップ１６８で、データ要求をサーブするためのアプリケーションがローカルシステムにロードされる。前述の通り、アプリケーションは、リモートシステムからダウンロードされ、かつ／またはローカルにＣＤおよび／または他の記憶媒体からロードすることができる。ステップ１６８で、アプリケーションがロードされた後、プロセスはステップ１６０に進み、ローカルシステムへの要求のマッピングを開始する。
【００５９】
本発明の様々な態様の背景を提供するために、図６と以下の記述は、本発明の様々な態様を実施することができる適切なコンピュータ環境に関する概略的で一般的な説明を提供することを意図している。１つまたは複数のコンピュータで実行されるコンピュータプログラムのコンピュータで実行可能な命令に関して一般的に上記で説明したが、本発明は、他のプログラムモジュールと組み合せて実施することもできることを、当業者なら理解するだろう。一般に、プログラムモジュールには、特定タスクを実行し、かつ／または特定の抽象データ型を実施するルーチン、プログラム、構成要素、データ構造などが含まれる。さらに、本発明の方法は、シングルプロセッサのコンピュータシステムまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピュータデバイス（ｈａｎｄ−ｈｅｌｄ  ｃｏｍｐｕｔｉｎｇ  ｄｅｖｉｃｅ）、マイクロプロセッサベースの家庭用電化製品またはプログラム可能な家庭用電化製品などを含めて、他のコンピュータシステム構成によって実施することができることを当業者なら理解するだろう。本発明の例示の態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型コンピュータ環境でも実施することができる。しかし、本発明のすべてではないにしてもいくつかは、スタンドアロン型コンピュータで実施することができる。分散型のコンピュータ環境では、プログラムモジュールは、ローカルなメモリストレージデバイスにも、リモートのメモリストレージデバイスにも置くことができる。
【００６０】
図６を参照すると、本発明の様々な態様を実施するための例示的システムは、処理ユニット２２１、システムメモリ２２２、およびシステムメモリを含む様々なシステム構成要素を処理ユニット２２１に結合するシステムバス２２３を含めて、従来型コンピュータ２２０を含む。処理ユニットは、Ｉｎｔｅｌ  ｘ８６と、Ｐｅｎｔｉｕｍ(登録商標)と、ＩｎｔｅｌおよびＣｙｒｉｘ、ＡＭＤ、Ｎｅｘｇｅｎを含む他社の互換性のあるマイクロプロセッサ、すなわちＤｉｇｉｔａｌのＡｌｐｈａ、ＭＩＰＳ  Ｔｅｃｈｎｏｌｏｇｙ、ＮＥＣ、ＩＤＴ、Ｓｉｅｍｅｎｓおよび他社のＭＩＰＳ、およびＩＢＭとＭｏｔｏｒｏｌａのＰｏｗｅｒ  ＰＣを含むがこれらには限定されず、様々な市販のプロセッサのどれであってもよい。デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャも、処理ユニット２２１として使用することができる。
【００６１】
システムバスは、メモリバスまたはメモリコントローラと、周辺バスと、いくつか指定するならばＰＣＩ、ＶＥＳＡ、Ｍｉｃｒｏｃｈａｎｎｅｌ、ＩＳＡ、およびＥＩＳＡなどの様々な従来型バスアーキテクチャのどれかを使用するローカルバスとを含めて、いくつかのタイプのバス構成であってよい。システムメモリは、リードオンリーメモリ（ＲＯＭ）２２４とランダムアクセスメモリ（ＲＡＭ）２２５とを含む。基本入出力システム（ＢＩＯＳ）は、ＲＯＭ２２４に格納されており、スタートアップ中などにサーバコンピュータ２２０内のエレメント間で情報を転送する助けとなる基本ルーチンを含む。
【００６２】
コンピュータ２２０は、ハードディスクドライブ２２７と、たとえばリムーバブルディスク２２９から読み込み、リムーバブルディスク２２９に書き込む磁気ディスクドライブ２２８と、たとえばＣＤ−ＲＯＭディスク２３１読込み用の、または他の光媒体から読み込み、他の光媒体に書き込むための光ディスクドライブ２３０とをさらに含む。ハードディスクドライブ２２７、磁気ディスクドライブ２２８、および光ディスクドライブ２３０は、ハードディスクドライブインタフェース２３２、磁気ディスクドライブインタフェース２３３、および光ディスクドライブインタフェース２３４をそれぞれ介してシステムバス２２３に接続される。ドライブおよびドライブに関連するコンピュータ可読媒体は、サーバコンピュータ２２０にデータ、データ構造、コンピュータ実行可能命令などの不揮発性記憶装置を提供する。前述のコンピュータ可読媒体の記述ではハードディスク、リムーバブル磁気ディスク、およびＣＤに言及したが、本発明の方法を実施するためには、コンピュータによって読むことのできる他のタイプの媒体、たとえば磁気カセット、フラッシュメモリカード、デジタルビデオディスク、Ｂｅｒｎｏｕｌｌｉカートリッジなども例示的動作環境において使用することができ、さらにそのようないかなる媒体もコンピュータで実行可能な命令を含むことができることを当業者なら理解するだろう。
【００６３】
オペレーティングシステム２３５、１つまたは複数のアプリケーションプログラム２３６、他のプログラムモジュール２３７、およびプログラムデータ２３８を含めて、いくつかのプログラムモジュールを、ドライブとＲＡＭ２２５に格納することができる。例示のコンピュータの中のオペレーティングシステム２３５は、Ｍｉｃｒｏｓｏｆｔのオペレーティングシステム（たとえば、Ｗｉｎｄｏｗｓ(登録商標)ＮＴオペレーティングシステム）であってよい。たとえばＵＮＩＸ(登録商標)など、他のオペレーティングシステムを使用することができることを理解されたい。
【００６４】
ユーザは、キーボード２４０と、マウス２４２などのポインティングデバイスを介してサーバコンピュータ２２０にコマンドと情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる。これらの入力デバイスや他の入力デバイスは、システムバスに結合するシリアルポートインタフェース２４６を介して処理ユニット２２１にしばしば接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など他のインタフェースによって接続することもできる。モニタ２４７または他のタイプの表示装置も、ビデオアダプタ２４８などのインタフェースを介してシステムバス２２３に接続することができる。コンピュータには、典型的には、モニタに加え、スピーカやプリンタなど他の周辺出力デバイス（図示せず）が含まれる。
【００６５】
コンピュータ２２０は、リモートクライアントコンピュータ２４９など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ２４９は、図６にはメモリストレージデバイス２５０しか示さないが、ワークステーション、サーバコンピュータ、ルータ、ピアデバイス、または他の共通ネットワークノードであってよく、典型的には、サーバコンピュータ２２０に関して記述した多くのまたはすべてのエレメントを含む。図６に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）２５１とワイドエリアネットワーク（ＷＡＮ）２５２が含まれる。このようなネットワーキング環境は、オフィス、企業の広域コンピュータネットワーク、イントラネットおよびインターネットでは常識である。
【００６６】
ＬＡＮネットワーキング環境で使用されるとき、サーバコンピュータ２２０は、ネットワークインタフェースまたはアダプタ２５３を介してローカルネットワーク２５１に接続することができる。ＷＡＮネットワーキング環境で使用されるとき、サーバコンピュータ２２０は、一般に、モデム２５４を含むことができ、かつ／またはＬＡＮ上の通信サーバに接続され、かつ／またはインターネットなどの広域エリアネットワーク２５２を介した通信を確立する他の手段を有する。内部でも外部でもあってよいモデム２５４は、シリアルポートインタフェース２４６を介してシステムバス２２３に接続することができる。ネットワークされた環境で、コンピュータ２２０に関係して示したプログラムモジュールまたはその部分は、リモートメモリデバイスに格納することができる。示したネットワーク接続は、例示的なものであって、コンピュータ間に通信リンクを確立する他の手段も使用することができることが理解されよう。
【００６７】
コンピュータプログラミングの当業者の慣行に従い、本発明は、特に指摘しない限り、コンピュータ２２０などのコンピュータによって実施される活動（ａｃｔ）と動作のシンボリックな表示とを参照して記述した。このような活動や動作は、時々、コンピュータ実行（ｃｏｍｐｕｔｅｒ−ｅｘｅｃｕｔｅｄ）と呼ばれる。活動やシンボリックに表示された動作は、処理ユニット２２１による、電気的信号表示の変形または減少の原因となる、データビットを表す電気的信号の操作と、コンピュータシステムの動作を再構成するか、それとも変更する、メモリシステム（システムメモリ２２２、ハードドライブ２２７、フロッピーディスク(登録商標)２２９およびＣＤ−ＲＯＭ２３１を含む）のメモリ記憶位置におけるデータビットの維持と、他の信号の処理とを含むことが理解されよう。このようなデータビットが維持されるメモリ記憶位置は、データビットに対応する特定の電気特性、磁気特性、光学特性を有する物理記憶位置である。
【００６８】
前述では、本発明の好ましい態様を説明した。当然、本発明を説明するための構成要素または方法の考えうる限りのすべての組合せを記述することは不可能であるが、本発明の多くのさらなる組合せおよび順列を、当業者ならば理解するだろう。したがって、本発明は、頭書の特許請求項の趣旨および範囲から逸脱することなく、すべてのこのような代替形態、修正形態、および変形形態を抱合することを意図するものである。
【００６９】
【発明の効果】
以上説明したように、多層アーキテクチャにより、ローカルシステム資源は、従来、中央に位置するアプリケーションサーバシステムで提供されていたアプリケーションをサービスすることができるようになる。したがって、本発明によれば、中央設置場所からサービスが提供され、すなわち伝達されるのとは対照的に、クライアントのパーソナルコンピュータシステムが、ネットワークアプリケーションをローカルに提供し、サービスすることができるので、性能とオフライン機能が向上する。
【００７０】
また、サーバシステムからクライアントシステムに性能の機能をシフトすることによって、ネットワーク性能を向上させ、リモートからのサービス要求に関わる待ち時間を緩和することができ、さらにオフライン機能も向上させることができる。
【図面の簡単な説明】
【図１】本発明の一態様による多層アーキテクチャを示す概略的ブロック図である。
【図２】本発明の別の態様による多層アーキテクチャを示す概略的ブロック図である。
【図３】本発明の一態様によるローカルアプリケーション環境を示す概略的ブロック図である。
【図４】本発明の一態様による要求処理システムを示す概略的ブロック図である。
【図５】本発明の一態様による多層アーキテクチャを提供する方法を示す流れ図である。
【図６】本発明の一態様によるシステムを示す概略的ブロック図である。
【符号の説明】
１０ａ  システム
２０  ローカルシステム
４０  リモートシステム
６０  ブラウザ
９２  ローカルハンドラ
【図１】
0004950389.tif 000010
【図２】
0004950389.tif 000011
【図３】
0004950389.tif 000012
【図４】
0004950389.tif 000013
【図５】
0004950389.tif 000014
【図６】
0004950389.tif 000015