JP4302942B2 - Asp.net httpランタイム - Google Patents

Asp.net httpランタイム Download PDF

Info

Publication number
JP4302942B2
JP4302942B2 JP2002192640A JP2002192640A JP4302942B2 JP 4302942 B2 JP4302942 B2 JP 4302942B2 JP 2002192640 A JP2002192640 A JP 2002192640A JP 2002192640 A JP2002192640 A JP 2002192640A JP 4302942 B2 JP4302942 B2 JP 4302942B2
Authority
JP
Japan
Prior art keywords
request
event
events
http
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002192640A
Other languages
English (en)
Other versions
JP2003076560A (ja
Inventor
ディー.ガスリー スコット
ロブスマン ドミトリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2003076560A publication Critical patent/JP2003076560A/ja
Application granted granted Critical
Publication of JP4302942B2 publication Critical patent/JP4302942B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
この特許文書の開示の一部には、著作権保護の対象となる材料が含まれる。著作権所有者は、特許商標庁の特許ファイルまたは記録に現れる特許文書または特許開示の何人による複製にも異議はないが、それ以外では、すべての著作権を留保する。
【0002】
本発明はハイパーテキスト転送プロトコル(HTTP)要求の処理に関する。より詳細には、本発明はHTTP要求を処理するシステムおよび方法に関する。
【0003】
【従来の技術】
図2は、従来技術でHTTP要求を処理するウェブサイトアプリケーションの機能ブロック図を示す。クライアントコンピュータ202に置かれたウェブブラウザ201は、よく知られた方法で、インターネットなどのコンピュータネットワーク203を介して、選択されたURL205に対するホストサーバコンピュータ204にHTTP要求を送信する。ホストサーバコンピュータ204に特有のアプリケーション206を実行するホストサーバコンピュータ204は、HTTP要求を受信し、その要求の内容およびアプリケーション206の処理に基づいて、要求されたウェブページ205のコンテンツにアクセスする。そのHTTP要求への応答がウェブサーバ207によってウェブブラウザ201に送られる前に、アプリケーション206は、ホストサーバコンピュータ204上で実行中のソフトウェアを使用して要求されたウェブページ205を作成し、また、そのウェブページ205のコンテンツに基づいてウェブサービスプロキシなどのウェブサービス208を作成する。
【0004】
ホストサーバコンピュータ204上で実行中のソフトウェアが、例えば要求しているユーザを認証する機能モジュール209、要求しているユーザに要求されたウェブページにアクセスする権限が付与されているかどうかを判定する機能モジュール209、応答を暗号化するための機能モジュール209などを使用して、要求されたページを作成する前および/または後に、アプリケーション206は、選択された方法で要求を処理することもできる。JAVA(登録商標)サーブレットなどの機能モジュール209は、HTTP要求を連続した方法で処理する。すなわち、機能モジュール209aは、機能モジュール209bが要求を処理する前にその要求を処理するために選択され、機能モジュール209cは、機能モジュール209bの後に要求を処理するために選択される。例えば、機能モジュール209aは、アプリケーション206に対してユーザ認証を提供することができる。一旦、ユーザが認証されると、機能モジュール209bはユーザ認証を提供することができる。これに続いて、機能モジュール209cは、要求しているユーザの認証された識別(identification)に基づく広告機能を提供することができる。
【0005】
HTTPアプリケーション開発者が、カスタムロギング、インターネット規模のセキュリティ、またはデータのキャッシングなどのカスタマイズされた機能を含めるためにモジュール209の機能を変更することによってアプリケーション206の機能を変更する必要がある場合、開発者は、機能モジュールをカスタム生成すること、および/またはサードパーティによって開発された適切な機能モジュールを使用することが必要になる場合がある。
【0006】
【発明が解決しようとする課題】
この従来の手法に伴う問題は、新しい機能モジュールが既にその場にある別の機能モジュールと矛盾するように、アプリケーション開発者は他のすべての機能モジュールの処理を完全に理解する必要があるということである。さらに、アプリケーション開発者が処理シーケンスのどこに新しい機能モジュールまたは更新された機能モジュールを挿入するかを正確に知ることは困難である。また、ウェブサイトがユーザに対して比較的高速なウェブサイトとしてみえるように、ホストサーバコンピュータ204上で実行中のソフトウェアが要求されたウェブページを作成する前に、要求しているユーザに対して機能モジュールがコンテンツおよび/またはヘッダーを提示する状況では、そのコンテンツおよび/またはヘッダーは処理に対して最早使用可能ではないので、従来型の処理シーケンスで後に機能モジュールによって実行されるいかなる要求処理も最早実行することはできない。
【0007】
HTTPアプリケーション開発者がHTTPアプリケーションに容易に機能を追加する方法が求められている。さらに、異なるモジュール開発者によって開発されたHTTPモジュールが多くのHTTPアプリケーションと共存することができるような、アプリケーション間で再利用可能な機能を作成する方法も求められている。さらに、別の機能モジュールと矛盾する可能性のある機能モジュールの連続した配置を避ける、HTTP要求の処理を提供する方法も求められている。
【0008】
【課題を解決するための手段】
本発明は、HTTPアプリケーション開発者がHTTPアプリケーションに容易に機能を追加する方法を提供する。さらに、本発明は、異なるモジュール開発者によって開発されたHTTPモジュールが多くのHTTPアプリケーションと共存することができるような、アプリケーション間で再使用可能な機能を作成する方法も提供する。本発明は、また、別の機能モジュールと矛盾する可能性のある機能モジュールの連続した配置を避ける、HTTP要求の処理を提供する方法も提供する。
【0009】
これらの利点を達成するために、本発明は、HTTPアプリケーションおよびHTTPモジュールが要求/応答サイクルの異なる段階で加わえるように、オブジェクト指向型でイベント駆動型のインフラストラクチャを公開することによって、HTTP要求に応答するためのアプリケーションランタイムを提供する。すなわち、HTTP要求の存続期間中に同期式要求イベントまたは非同期式要求イベントが発生されるとき、コールバックに対してメソッドが登録される。
【0010】
本発明によれば、HTTP要求処理ランタイムは、コンテキストオブジェクトおよびイベントパイプラインを含む。コンテキストオブジェクトは、ホストアプリケーションでクライアントアプリケーションから受け取ったHTTP要求を解析することによって作成され、そのHTTP要求を論理的に表す。コンテキストオブジェクトは、受け取ったHTTP要求に関連するプロパティ(properties)を好適にカプセル化する。コンテキストオブジェクトは、複数の要求イベントを含むイベントパイプラインによって処理される。このパイプラインは、1つのHTTP要求を一度に処理し、そのパイプラインが1つのHTTP要求の処理を完了すると、別のHTTP要求が処理される。各要求イベントは対応するイベントを有しており、要求イベントに対応するイベントが生じたとき、および少なくとも1つのアプリケーションまたはモジュールが要求イベントに関連付けて登録されるときに、その要求イベントはコールバックを生成する。各コールバックは、コンテキストオブジェクトを処理するための要求イベントに関連付けて登録される各モジュールをインスタンス生成(instantiates)する。複数の要求イベントは、決定論的な順番(deterministic order)で同期および/または非同期であるイベントを含むことが好ましい。さらに、複数の要求イベントは、エラーイベントなどの非決定論的な順番を有する少なくとも1つの要求を含むことができる。本発明によれば、モジュールには複数の要求イベントを登録することができる。
【0011】
【発明の実施の形態】
本発明は、同様の参照番号が同様の要素を示す添付の図面で例示として示されているものであって、この図面で限定されるものではない。
【0012】
本発明は、図1および3を参照してより容易に説明することができる。図1は、本発明の様々な態様を実施するために使用することができる従来型汎用デジタルコンピューティング環境の概略図である。図1では、コンピュータ100は、処理装置110、システムメモリ120、およびこのシステムメモリを含めて様々なシステム構成要素を処理装置110に結合するシステムバス130を含む。システムバス130は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャを使用するローカルバスを含めて複数タイプのバス構造のいずれかであってよい。システムメモリ120は、読み出し専用メモリ(ROM)140およびランダムアクセスメモリ(RAM)150を含む。
【0013】
コンピュータ100の要素間で、情報を例えば起動時中に転送するために役立つ基本ルーチンを含んでいる基本入出力システム160(BIOS)は、ROM140に記憶されている。コンピュータ100は、ハードディスク(図示せず)に対して読み出しおよび書き込みを行うためのハードディスクドライブ170、取り外し可能磁気ディスク190に対して読み出しおよび書き込みを行うための磁気ディスクドライブ180、およびCD−ROMまたは他の光学媒体などの取り外し可能光学ディスク192に対して読み出しおよび書き込みを行うための光学ディスクドライブ191も含む。ハードディスクドライブ170、磁気ディスクドライブ180、および光学ディスクドライブ191は、それぞれハードディスクドライブインターフェース192、磁気ディスクドライブインターフェース193、および光学ディスクドライブインターフェース194によってシステムバス130に接続されている。これらのドライブおよびそれらに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびパーソナルコンピュータ100のための他のデータの不揮発性記憶装置を提供する。コンピュータによってアクセス可能なデータを記憶することができる別のタイプのコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、デジタルビデオディスク、Bemoulliのカートリッジ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)なども例示的動作環境内で使用することができることが、当業者には明らかになろう。
【0014】
オペレーティングシステム195、1つまたは複数のアプリケーションプログラム196、他のプログラムモジュール197およびプログラムデータ198を含めていくつかのプログラムモジュールを、ハードディスクドライブ170、磁気ディスク190、光学ディスク192、ROM140またはRAM150に記憶することができる。ユーザは、キーボード101およびポインティングデバイス102などの入力装置を介してコンピュータ100にコマンドおよび情報を入力することができる。その他の入力装置(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバスに結合されているシリアルポートインターフェース106を介して処理装置110に接続されることが多いが、他のインターフェース、例えばパラレル・ポート、ゲーム・ポート、またはユニバーサルシリアルバス(USB)などによって接続することもできる。さらに、これらの装置は、適切なインターフェース(図示せず)を介してシステムバス130に直接的に結合することができる。モニタ107または他のタイプの表示装置を、ビデオアダプタ108などのインターフェースを介してシステムバス130に接続することもできる。パーソナルコンピュータは、通常、モニタに加えてスピーカーおよびプリンタなどの他の周辺出力装置(図示せず)を含む。
【0015】
コンピュータ100は、遠隔コンピュータ109などの1つまたは複数の遠隔コンピュータへの論理接続によってネットワーク接続された環境で動作することができる。遠隔コンピュータ109は、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードであってよく、通常は、コンピュータ100に関して述べた上記要素の多くのものまたはその全てを含む。但し、図1には記憶装置111しか示していない。図1に示す論理接続には、ローカルエリアネットワーク(LAN)112およびワイドエリアネットワーク(WAN)113が含まれる。このようなネットワーク接続された環境は、事務所、企業内コンピュータネットワーク、イントラネットおよびインターネットでは一般的なものである。
【0016】
LANネットワーク接続環境で使用されるとき、コンピュータ100は、ネットワークインターフェースまたはアダプタ114を介してローカルエリアネットワーク112に接続される。WANネットワーク接続環境で使用されるとき、パーソナルコンピュータ100は、通常、モデム115、またはインターネットなどのワイドエリアネットワーク113を介して通信を確立する他の装置を含む。モデム115は内部モデムであっても外部モデムであってもよく、シリアルポートインターフェース106を介してシステムバス130に接続される。ネットワーク接続された環境では、パーソナルコンピュータ100に関して述べたプログラムモジュール、またはその一部は遠隔記憶装置に記憶することができる。
【0017】
図示したネットワーク接続は例示的なものであって、コンピュータ間に通信リンクを確立する他の技術を使用することができることも理解されよう。TCP/IP、Ethernet(登録商標)、FTP、HTTPなどの様々な周知のプロトコルのいずれかの存在が想定され、システムは、ユーザに対してウェブベースのサーバからウェブページを取り出すことを可能にするためにクライアント・サーバ構成で動作することができる。ウェブページ上にデータを表示し、かつ操作するために、様々な従来型ウェブブラウザのどれでも使用することができる。
【0018】
本発明の主要な態様は、HTTP要求に応答するイベントベースのアプリケーションランタイムを提供する。より具体的には、本発明のASP.NET HTTPランタイムは、要求/応答サイクルの異なる段階で加わる高機能のアプリケーションを作成するために、アプリケーション開発者に対してオブジェクト指向型でイベント駆動型のインフラストラクチャを公開する。例えば、本発明のASP.NET HTTPランタイムによって、アプリケーション開発者はHTTPアプリケーションを開発することができ、および/またはモジュール開発者は、任意の.NET言語で書かれたアプリケーションを使用して個々のHTTP要求をインターセプトし、それによって加わり、および/またはそれを変更するための再使用可能なHTTPモジュールを開発することができる。これを達成するために、本発明は、HTTPアプリケーション開発者および/またはHTTPモジュール開発者が、HTTP要求の存続期間中の特定の段階で呼び出されるメソッドをアプリケーションに登録することを可能にする。メソッドが登録されるこのインフラストラクチャは、従来型ウェブサーバのアプリケーションプログラムインターフェース(API)フィルタに対する論理.NETの代替品である。さらに、本発明は、ASP.NETの機能を変更することを可能にする。例えば、ASP.NETが特定のエリア内で十分な機能を提供しない場合、開発者は、基礎となるインフラストラクチャに関してより多くの知識を有する開発者の一部に対して準備されたレベルで、基礎となるアプリケーションインフラストラクチャを変更することができる。
【0019】
図3は、本発明によるASP.NET HTTPランタイムを使用したHTTP要求を処理するウェブサイトアプリケーションの機能ブロック図である。ASP.NET HTTP要求処理ランタイムのアーキテクチャは、HTTP要求からHTTPContextオブジェクトを作成するアプリケーションと、HTTPContextオブジェクトの存続期間中(すなわち、HTTP要求の存続期間中)にコールバックを生成するイベントパイプラインとを提供する。HTTPContextオブジェクトは、受け取ったHTTP要求に関連付けられており、その要求を処理するために必要なすべてのプロパティをカプセル化することによってその受け取ったHTTP要求を論理的に表す。コールバックは、HTTPアプリケーションによって、また、HTTPモジュールが初期化されたときにイベントに登録するHTTPモジュールによって使用される。GLOBAL.ASAXは進行中にコンパイルされたものであり、いかなるパイプラインイベントに対するイベントハンドラをも含むことができるアプリケーションコードを含んでいるので、このGLOBAL.ASAXはイベントの登録には必要ではない。このイベントハンドラは、命名規則によって自動的にフックされる。例えば、アプリケーションコード(GLOBAL.ASAX内にあるか、または事前コンパイルされている)がApplication_BeginRequestと命名されたメソッドを含んでいるとき、そのアプリケーションコードは、BeginRequestイベントに自動的にフックアップされることになる。したがって、イベントは、モジュールでもアプリケーションコードでも処理することができる。モジュールは複数のアプリケーション間で再使用可能なので、モジュールを使用することが好ましい。本発明は、受け取った複数のHTTP要求を処理するためのイベントパイプラインのインスタンシエーションを生成する。
【0020】
イベントパイプラインは、要求イベントが発生されるときにコールバックを生成するための複数の要求イベントを含むイベントベースのアーキテクチャを提供する。1つまたは複数の要求イベントが登録される各HTTPモジュールは、パイプラインがインスタンス生成される(instantiated)ときにインスタンス生成される。したがって、アプリケーション開発者は、要求の存続期間中に選択されたイベントで要求をインターセプトし、それによって加わり、またはそれを変更するアプリケーションを開発することができる。同様に、HTTPモジュール開発者は、要求の存続期間中に選択されたイベントで要求をインターセプトし、これによって加わり、またはこれを変更するHTTPモジュールを開発することができる。さらに、アプリケーションは、発生される要求イベントに基づいてResponse.End()メソッドを呼び出すことによって要求のさらなる処理を終了することができる。実行される最後のイベントは、モジュールがクリーンアップ操作を実行することができるように、常にEndRequestイベントである。
【0021】
再度図3を参照すると、実行中のホスト、例えばIIS(インターネット情報サーバ)5またはIIS6はHTTP要求を受け取る(図3には示さず)。受け取られた要求は本発明のASP.NETランタイムに渡され、そこでこの要求は周知の方法で解析され、要求を処理するために必要となる受け取られたHTTP要求に関連するすべてのプロパティをカプセル化するHTTPContextオブジェクトを作成する。アプリケーションがインスタンス生成され、要求の処理がHTTPハンドラ「方向に」イベントパイプラインを通って(要求イベント301および302によって示す)進む。要求の存続期間はイベントパイプラインを通って進むので、決定論的な要求イベント(deterministic request event)のそれぞれが発生される。特定の要求イベントが登録されるHTTPモジュール、またはGlobal.asaxに含まれているイベントシンクを有するHTTPモジュールは、特定の要求イベントが発生されるときに呼び出される。要求されたウェブページをHTTPハンドラが生成した後、処理はイベントパイプラインを通して続行する。すべての要求イベントの発生が完了し、すべてのHTTPモジュールが要求を処理し終わると、ホストは、要求された(かつ処理された)ウェブページを送ることによって要求に応答する。
【0022】
図3には3つの要求イベント301、302および303と、3つのHTTPモジュール304、305および306しか示していないが、使用される要求イベントおよびHTTPモジュールの数はこれ以上であってもこれ以下であってもよいことを理解されたい。複数のHTTPモジュールに特定の要求イベントを登録できることを理解されたい。図3は、HTTPモジュール304〜306への要求イベント301〜303の例示的登録を示す。HTTPモジュールと要求イベントとの間に延びた線は登録を示している。図3では、3つの例示的HTTPモジュール304、305および306には要求イベント302が登録されており、したがって3つのモジュール304〜306はすべて、要求イベント302によって発生される同じコールバックに基づいて1つのHTTP要求を処理する。HTTPモジュール305には、1つの要求イベントだけが登録されているように示されている。HTTPモジュールは、そのHTTPモジュールがそのモジュールに登録されたモジュールと同じ数だけコールバックを受け取るように、複数の要求イベントを登録することも可能である。例えば、図3は、HTTPモジュール304に要求イベント301および302が登録されていることを示している。同様に、HTTPモジュール306には要求イベント302および303が登録されている。
【0023】
本発明によれば、イベントパイプラインは、10個の決定論的な要求イベントと、3個の非決定論的な要求イベント(non−deterministic request event)とを含むことが好ましい。さらに、決定論的な要求イベントは同期式要求イベントであっても非同期式要求イベントであってもよい。(同期式)決定論的なイベントには、好ましい順番で以下のものが含まれる。
BeginRequest
AuthenticateRequest
AuthorizeRequest
ResolveRequestCache
AcquireRequestState
PreRequestHandlerExecute
PostRequestHandlerExecute
ReleaseRequestState
UpdateRequestCacheEndRequest
EndRequest
【0024】
当然ながら、決定論的な要求イベントの順番は、アプリケーションの要件に応じて再構成することができる。非決定論的な要求イベントには、以下のものが含まれる。
Error
PreSendRequestContent
PreSendRequesrHeaders
コールバックを生成するために、イベントパイプラインはこれ以上またはこれ以下の要求を含むことができ、および/またはその他の決定論的な要求イベントおよび非決定論的な要求イベントを含むことができることも理解されたい。
【0025】
HTTP要求の処理の開始時にBeginRequestイベントが発生される。AuthenticateRequestイベントは、アプリケーションがユーザの認証を必要とするHTTP要求の存続期間中のある時点で発生される。AuthorizeRequestイベントは、ユーザに特定の要求に対する応答を受け取る権限が付与されているかどうかをアプリケーションが判定する必要があるときに発生される。ResolveRequestCacheイベントは、要求への応答のすべてがキャッシュ済みであるかどうかを判定することがアプリケーションに要求されているときに発生される。これによって、要求されたページを作成し、また、要求しているユーザに応答を戻すために必要となる時間が短縮される場合がある。この時点で、HTTPハンドラが作成される。AcquireRequestStateイベントは、クライアント接続に関連付けられた付加的状態を取得するためと、ASP.NETセッション状態を列挙(list)するために発生される。個別設定モジュールは、例えばAcquireRequestStateイベントを使用することができる。AcquireRequestStateイベントはHTTPハンドラが作成された後に発生され、したがってモジュールはHTTPハンドラを検査し、どの種類の状態が必要とされているかを判断することができる。PreRequestHandlerExecuteイベントは、要求ハンドラが要求されたウェブページを作成する前に発生される。同様にして、PostRequestHandlerExecuteイベントは、要求されたウェブページを要求ハンドラが作成し終わったときに発生される。ReleaseRequestStateイベントは、AcquireRequestStateで取得されたいかなる状態の変化をも保存する機会をモジュールに与えるために発生される。例えば、セッション状態モジュールはReleaseRequestStateイベントを使用してセッションデータを保存することができる。UpdateRequestCacheイベントは、応答がキャッシュ可能な場合、(同じページに対する後続のHTTP要求に対して)後でその応答をResolveRequestCache内で発見できるように、その要求の処理中の、応答を保存するためにキャッシュが更新されるべきときに発生される。最後に、要求の処理が完了したときにEndRequestイベントが発生される。
【0026】
例えばアプリケーションコードによってキャッチされない例外条件が生成されるなどのエラー状態が発生したときは、非決定論的なErrorイベントが発生される。PreSendRequestContentイベントは、HTTPハンドラが要求を処理する前に、要求しているクライアントにコンテンツが送られ始めると発生される。同様に、PreSendRequestHeadersイベントは、HTTPハンドラが要求を処理する前に、要求しているクライアントにヘッダが送られ始めると発生される。PreSendRequestContent要求イベントおよびPreSendRequestHeader要求イベントの目的は、要求しているクライアントアプリケーションにコンテンツおよび/またはヘッダが送られる前に、そのコンテンツおよび/またはヘッダを別のメソッドが処理できるようにすることである。上記で指摘した通り、要求されたウェブページをHTTPハンドラが作成する前に機能モジュールがコンテンツおよび/またはヘッダを提示するという状況においては、そのコンテンツおよび/またはヘッダは処理のためには最早使用可能ではないので、従来型の処理シーケンスでは後で行われるような機能モジュールによって実行されるいかなる処理も実行されない。
【0027】
Interceptionイベントは、インテリジェントエラー処理コードと共にアプリケーションをラッピングするために有効に使用することができる。アプリケーションで何らかの予期せぬことが発生し、Errorイベントが発生される状況において、本発明は、その予期せぬ状況をどのように処理するかを決定するためのフレキシビリティを開発者に提供する。例えば、現行でログオンしているユーザ全員の現行の状態は、エラーをログしてシステム管理者に通知することに加えて、XMLファイルにログすることもできる。エラー状態が訂正され、アプリケーションが正常に実行され始めるとき、アプリケーションは、XMLファイルを使用したエラー状態が原因でドロップしたエンドユーザにコンタクトするように設計することができる。
【0028】
Interceptionイベントは、Global.asaxアプリケーションファイルを使用して開発することができるが、IHttpModuleインターフェースを実施する事前コンパイルされた構成要素であってもよい。Microsoft(登録商標)のVISUALBASICブランドのプログラミング言語に準拠した以下の疑似コードは例示的なGlobal.asaxを示している。
Figure 0004302942
【0029】
HTTPモジュールは、System.Web.IHttpModuleインターフェースを実施するクラスとして作成されており、任意のHTTPアプリケーションイベントに同期するためのInit()メソッドを使用する。以下の疑似コードはHTTPモジュールの一例である。
Figure 0004302942
HTTPモジュールはコンパイルされ、.Net Library DLLが「bin」ディレクトリにあるアプリケーションのvrootの下に置かれる。HTTPモジュールは以下の例示的疑似コードを使用してconfig.webに登録される。
Figure 0004302942
【0030】
ASP.NETプロセスを実行するプロセス中では、コードを実行するためにスレッドが使用される。スレッドはリソースであり、ASP.NETが使用することができるスレッドは無数にある。
【0031】
本発明によれば、ASP.NETは、アプリケーション開発者の制御下でアプリケーションの存続期間を通してスレッドの数を拡張、短縮するスレッドプールを作成して管理する。
【0032】
場合によっては、ネットワークI/Oなどのアプリケーションコードはプロセスでスレッドをストールする可能性がある。これは、そのスレッドが、この比較的遅いネットワークI/Oの動作が完了するまで待機する(すなわち、スレッドがブロックされる)必要があるからである。スレッドがブロックされると、そのスレッドは要求に応えるために使用することはできず、したがって、その要求は要求のキューに入れられ、アプリケーションのパフォーマンスを低下させることになる。これは、すべてのスレッドが、待機中に作業を行うのではなく、ブロックされるからである。このような状況を回避するため、本発明は、非同期式イベントに対するサポートと同期式イベントに対するサポートを提供する。したがって、本発明は、非同期式IOを容易にするために、ウェブサービスプロキシなどの、ネットワーククラスがI/O完了ポートをサポートするネットワークを介して操作を実行するアプリケーションをサポートする。
【0033】
本発明は、それぞれが同期式決定論的な要求イベントに対応する10個の非同期式要求イベントもサポートする。非同期式要求イベントは以下の順番で発生される。
AddOnBeginRequestAsync
AddOnAuthenticateRequsetAsync
AddOnAuthorizeRequestAsync
AddOnResolveRequestCacheAsync
AddOnAcquireRequesrStateAsync
AddOnPreRequestHandlerExecuteAsync
AddOnPostRequestHandlerExecuteAsync
AddOnReleaseRequestStateAsync
AddOnUpdateRequestCacheAsync
AddOnEndRequestAsync
【0034】
global.asax内の非同期式イベントを使用するために、イベントのプロトタイプは、HTTPアプリケーション内に仮想(virtual)としてマーク付けされているInit()メソッドを専用コードで置き換えることによって、イベントパイプライン内に手動で作成またはワイヤアップしなければならない。例えばOnBeginRequestイベントの非同期式バージョンであるAddOnBeginRequestAsyncイベントをワイヤアップするには、ApplicationInstanceのAddOnBeginRequestAsyncメソッドが呼び出されて2つのイベントハンドラ内に渡される場合がある。以下の例示的疑似コードはこれを示している。
Figure 0004302942
【0035】
上記の例示的疑似コードでは、イベントの実行中に呼び出される2つのメンバメソッド(BeginおよびEnd)内に渡すことによって新しいBeginEventHandlerおよび新しいEndEventHandlerが作成される。アプリケーション開発者は、両方のイベントハンドラを実施することが必要となる場合もある。例えば、Begin()ハンドラは、別のスレッドで行われる以下の例示的疑似コードで示すように、SimpleAsyncResultと定義されるカスタムクラスのインスタンスを使用する。
Figure 0004302942
【0036】
IAsyncResultインターフェースを実施するクラスの例示的実施態様を以下の疑似コードで示す。
Figure 0004302942
【0037】
以下の例示的疑似コードによって示すように、必要に応じていかなるオープンリソースをもクリーンアップするためにEndイベントを使用することができる。
Figure 0004302942
【0038】
ASP.NETは同期式アプリケーションイベントおよび非同期式アプリケーションイベントの両方をサポートするので、アプリケーション開発者はアプリケーションを構築するためにより多くの選択肢を有する。イベントを非同期式になるように符号化することによって、ASP.NETのワーカースレッドを、非同期式スレッド上で実行されるコードが完了するまで他の要求に応えるように解放する。これによって、要求に応えるために使用されるASP.NETスレッドはブロックされないので、より優れた拡張性が得られる。
【0039】
本発明は、本発明の実行に現時点で好適なモードを含めて特定の例示に関して説明したが、当業者ならば、上記のシステムおよび技術には、頭記の特許請求の範囲に記載の本発明の趣旨および範囲に含まれる無数の変形形態および並べ替えがあることが理解されよう。
【図面の簡単な説明】
【図1】本発明の様々な態様を実施するために使用することができる従来型汎用デジタルコンピューティング環境の概略図である。
【図2】従来の方法でHTTP要求を処理するウェブサイトアプリケーションの機能ブロック図である。
【図3】本発明によるASP.NET HTTPランタイムを使用してHTTP要求を処理するウェブサイトアプリケーションの機能ブロック図である。
【符号の説明】
100 コンピュータ
120 システムメモリ
130 システムバス
202 クライアントコンピュータ
204 ホストサーバコンピュータ
206 アプリケーション
301 要求イベント
302 要求イベント
303 要求イベント
304 HTTPモジュール
305 HTTPモジュール
306 HTTPモジュール

Claims (32)

  1. コンピュータを、
    ホストアプリケーションでクライアントアプリケーションから受け取ったハイパーテキスト転送プロトコル(HTTP)要求を論理的に表す手段であって、前記受け取ったHTTP要求に関連する少なくとも1つのプロパティをカプセル化する手段、並びに、
    該手段に対応する手段であって、各要求イベントは対応するイベントを有し、及び、前記要求イベントに対応する前記イベントが生じたとき前記要求イベントに関連付けてアプリケーションとモジュールが登録されていればコールバックを生成し、各コールバックが、前記要求イベントに関連付けて登録される各アプリケーションと各モジュールを開始して前記表す手段を処理する手段
    として機能させるプログラム。
  2. 前記複数の要求イベントは決定論的な順番(deterministic order)を有することを特徴とする請求項1に記載のプログラム
  3. 前記複数の要求イベントのうち少なくとも1つは同期式要求イベントであることを特徴とする請求項2に記載のプログラム
  4. 前記複数の要求イベントのうち少なくとも1つは非同期式要求イベントであることを特徴とする請求項2に記載のプログラム
  5. 前記複数の要求イベントは非決定論的な順番(non-deterministic order)を有する少なくとも1つの要求イベントをさらに含むことを特徴とする請求項2に記載のプログラム
  6. 前記複数の要求イベントは非決定論的な順番を有することを特徴とする請求項1に記載のプログラム
  7. 前記複数の非決定論的な順番の要求イベントはエラーイベントを含むことを特徴とする請求項6に記載のプログラム
  8. モジュールが複数の要求イベントに関連付けられて登録されることを特徴とする請求項1に記載のプログラム
  9. 前記複数の要求イベントを有する手段は、前記ホストアプリケーションでクライアントアプリケーションから受け取った各HTTP要求について該手段の別個のインスタンスであることを特徴とする請求項1に記載のプログラム
  10. 前記カプセル化する手段は、前記受け取ったHTTP要求を解析して、前記HTTP要求を論理的に表すことを特徴とする請求項1に記載のプログラム
  11. ハイパーテキスト転送プロトコル(HTTP)要求を処理する方法であって、
    ホストアプリケーションでクライアントアプリケーションから受け取ったHTTP要求を論理的に表し、前記受け取った要求に関連する少なくとも1つのプロパティをカプセル化するコンテキストオブジェクトを形成するステップと、
    前記コンテキストオブジェクトに対応し、それぞれが対応するイベントを有する複数の要求イベントを有するイベントパイプラインを形成するステップと、
    要求イベントに対応するイベントが生じ且つ前記要求イベントに関連してアプリケーションとモジュールが登録されたときにコールバックを生成するステップと、
    前記コンテキストオブジェクトを処理するための前記コールバックに応答して、前記要求イベントに関連付けて登録される各アプリケーションと各モジュールを開始するステップと
    を含むことを特徴とする方法。
  12. 少なくとも1つの選択された要求イベントに関連付けてモジュールを登録するステップをさらに含むことを特徴とする請求項11に記載の方法。
  13. 選択された要求イベントに関連付けて複数のモジュールを登録するステップをさらに含むことを特徴とする請求項11に記載の方法。
  14. 前記複数の要求イベントは決定論的な順番を有することを特徴とする請求項11に記載の方法。
  15. 前記複数の要求イベントのうち少なくとも1つは同期式要求イベントであることを特徴とする請求項14に記載の方法。
  16. 前記複数の要求イベントのうち少なくとも1つは非同期式要求イベントであることを特徴とする請求項14に記載の方法。
  17. 前記複数の要求イベントは非決定論的な順番を有する少なくとも1つの要求イベントをさらに含むことを特徴とする請求項16に記載の方法。
  18. 前記複数の要求イベントは非決定論的な順番を有することを特徴とする請求項11に記載の方法。
  19. 前記複数の非決定論的な順番の要求イベントはエラーイベントを含むことを特徴とする請求項18に記載の方法。
  20. 前記コンテキストオブジェクトに対応する前記イベントパイプラインを形成する前記ステップでは、前記ホストアプリケーションでクライアントアプリケーションから受け取った各HTTP要求について別個のインスタンスとして前記イベントパイプラインを形成することを特徴とする請求項11に記載の方法。
  21. 前記コンテキストオブジェクトを形成する前記ステップは、前記受け取ったHTTP要求を解析して前記コンテキストオブジェクトを形成するステップを含むことを特徴とする請求項11に記載の方法。
  22. コンピュータを、
    ホストアプリケーションでクライアントアプリケーションから受け取ったハイパーテキスト転送プロトコル(HTTP)要求を論理的に表し、前記受け取った要求に関連する少なくとも1つのプロパティをカプセル化するコンテキストオブジェクトを形成する手段、
    前記コンテキストオブジェクトに対応し、それぞれが対応するイベントを有する複数の要求イベントを有するイベントパイプラインを形成する手段、
    要求イベントに対応するイベントが生じ且つ前記要求イベントに関連してアプリケーションとモジュールが登録されたときにコールバックを生成する手段、並びに、
    前記コンテキストオブジェクトを処理するための前記コールバックに応答して、前記要求イベントに関連付けて登録される各アプリケーションと各モジュールを開始する手
    として機能させるプログラムを含むコンピュータ可読媒体。
  23. 前記プログラムは前記コンピュータを、少なくとも1つの選択された要求イベントに関連付けてモジュールを登録する手段としてさらに機能させることを特徴とする請求項22に記載のコンピュータ可読媒体。
  24. 前記プログラムは前記コンピュータを、選択された要求イベントに関連付けて複数のモジュールを登録する手段としてさらに機能させることを特徴とする請求項22に記載のコンピュータ可読媒体。
  25. 前記複数の要求イベントは決定論的な順番を有することを特徴とする請求項22に記載のコンピュータ可読媒体。
  26. 前記複数の要求イベントのうち少なくとも1つは同期式要求イベントであることを特徴とする請求項22に記載のコンピュータ可読媒体。
  27. 前記複数の要求イベントのうち少なくとも1つは非同期式要求イベントであることを特徴とする請求項22に記載のコンピュータ可読媒体。
  28. 前記複数の要求イベントは非決定論的な順番を有する少なくとも1つの要求イベントをさらに含むことを特徴とする請求項25に記載のコンピュータ可読媒体。
  29. 前記複数の要求イベントは非決定論的な順番を有することを特徴とする請求項22に記載のコンピュータ可読媒体。
  30. 前記複数の非決定論的な順番の要求イベントはエラーイベントを含むことを特徴とする請求項29に記載のコンピュータ可読媒体。
  31. 前記イベントパイプラインを形成する前記手段は、ホストアプリケーションでクライアントアプリケーションから受け取った各HTTP要求について別個のインスタンスとして前記イベントパイプラインを形成することを特徴とする請求項22に記載のコンピュータ可読媒体。
  32. 前記コンテキストオブジェクトを形成する前記手段は、前記受け取ったHTTP要求を解析して、前記コンテキストオブジェクトを形成することを特徴とする請求項22に記載のコンピュータ可読媒体。
JP2002192640A 2001-06-29 2002-07-01 Asp.net httpランタイム Expired - Fee Related JP4302942B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/894,828 2001-06-29
US09/894,828 US7162723B2 (en) 2001-06-29 2001-06-29 ASP.NET HTTP runtime

Publications (2)

Publication Number Publication Date
JP2003076560A JP2003076560A (ja) 2003-03-14
JP4302942B2 true JP4302942B2 (ja) 2009-07-29

Family

ID=25403577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002192640A Expired - Fee Related JP4302942B2 (ja) 2001-06-29 2002-07-01 Asp.net httpランタイム

Country Status (8)

Country Link
US (2) US7162723B2 (ja)
EP (1) EP1271883B1 (ja)
JP (1) JP4302942B2 (ja)
AT (1) ATE326106T1 (ja)
DE (1) DE60211254T2 (ja)
DK (1) DK1271883T3 (ja)
ES (1) ES2263707T3 (ja)
PT (1) PT1271883E (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985946B1 (en) * 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
US6792607B1 (en) 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US7013340B1 (en) * 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US6990653B1 (en) 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7493397B1 (en) * 2001-06-06 2009-02-17 Microsoft Corporation Providing remote processing services over a distributed communications network
US6898604B1 (en) 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US7103810B2 (en) * 2002-04-18 2006-09-05 International Business Machines Corporation System for the tracking of errors in a communication network enabling users to selectively bypass system error logs and make real-time responses to detected errors
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US7603430B1 (en) 2002-07-09 2009-10-13 Vignette Corporation System and method of associating events with requests
US7461120B1 (en) 2002-07-09 2008-12-02 Vignette Corporation Method and system for identifying a visitor at a website server by requesting additional characteristic of a visitor computer from a visitor server
US8117264B1 (en) 2002-10-07 2012-02-14 Yahoo! Inc. Email system
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7890604B2 (en) * 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US20050251380A1 (en) * 2004-05-10 2005-11-10 Simon Calvert Designer regions and Interactive control designers
US9026578B2 (en) * 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US7657618B1 (en) * 2004-10-15 2010-02-02 F5 Networks, Inc. Management of multiple client requests
US8429655B2 (en) * 2005-04-29 2013-04-23 Microsoft Corporation System and method for asynchronous processing in page lifecycle
US7721278B2 (en) * 2005-05-27 2010-05-18 Microsoft Corporation Modular server architecture for multi-environment HTTP request processing
US7971198B2 (en) * 2005-06-08 2011-06-28 Unoweb Inc. Method for global resource sharing having logically linked means and integrated functionality for building solutions
JP4852906B2 (ja) * 2005-06-24 2012-01-11 富士ゼロックス株式会社 連携処理システム及び装置
US8418233B1 (en) 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US8565088B1 (en) 2006-02-01 2013-10-22 F5 Networks, Inc. Selectively enabling packet concatenation based on a transaction boundary
US7962922B2 (en) * 2006-08-28 2011-06-14 Microsoft Corporation Delivering callbacks into secure application areas
US9106606B1 (en) 2007-02-05 2015-08-11 F5 Networks, Inc. Method, intermediate device and computer program code for maintaining persistency
US8230052B2 (en) * 2007-02-14 2012-07-24 Microsoft Corporation Module diagnostic toolkit for client-server based protocols
US20090276791A1 (en) * 2008-05-01 2009-11-05 Microsoft Corporation Techniques for facilitating server callbacks
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US9356991B2 (en) 2010-05-10 2016-05-31 Litera Technology Llc Systems and methods for a bidirectional multi-function communication module
US8645490B2 (en) 2010-06-08 2014-02-04 Microsoft Corporation Web site implementation by mapping expression evaluation
US8938721B2 (en) 2010-07-21 2015-01-20 Microsoft Corporation Measuring actual end user performance and availability of web applications
US9420022B2 (en) 2010-12-17 2016-08-16 Microsoft Technology Licensing, Llc Media requests to counter latency and minimize network bursts
US9946581B2 (en) 2010-12-17 2018-04-17 Microsoft Technology Licensing, Llc Exposing server functions to browser code
CN103179173B (zh) * 2011-12-26 2018-03-02 腾讯科技(深圳)有限公司 超文本传输系统、客户端和超文本传输方法
US10025689B2 (en) 2016-01-22 2018-07-17 International Business Machines Corporation Enhanced policy editor with completion support and on demand validation
US10191911B2 (en) * 2017-05-27 2019-01-29 Plesk International Gmbh Permanent website hosting on mobile devices
CN111600920B (zh) * 2019-02-21 2024-03-05 北京京东尚科信息技术有限公司 基于js的数据请求代理方法、装置、设备及可读存储介质

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US279151A (en) * 1883-06-12 Thill loop or tug
US286133A (en) * 1883-10-02 Systems
US3937925A (en) * 1974-06-25 1976-02-10 Ibm Corporation Modular transaction terminal with microprocessor control
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US4186871A (en) * 1978-03-01 1980-02-05 International Business Machines Corporation Transaction execution system with secure encryption key storage and communications
US4847785A (en) * 1985-01-22 1989-07-11 International Business Machines Corp. Interactive display for trend or bar graph
US4807154A (en) * 1987-01-29 1989-02-21 International Business Machines Corporation Method for developing automatic replies in an interactive electronic calendaring system
US4949300A (en) * 1988-01-07 1990-08-14 International Business Machines Corporation Sharing word-processing functions among multiple processors
US4979148A (en) * 1988-12-09 1990-12-18 International Business Machines Corporation Increasing options in mapping ROM in computer memory space
JPH0778728B2 (ja) * 1990-12-21 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション ヘルプ・パネルのアップロード処理自動化方法
US5517655A (en) * 1991-04-26 1996-05-14 Hewlett-Packard Company Method for monitoring transactions in an object-oriented environment
CA2061298C (en) * 1992-02-17 1996-12-03 Douglas J. Mortson Method for detecting critical failures during the building of complex computer programs from source code parts
US5388156A (en) * 1992-02-26 1995-02-07 International Business Machines Corp. Personal computer system with security features and method
US5918007A (en) * 1992-05-27 1999-06-29 International Business Machines Corporation Trusted personal computer system with limited accessibility
GB2269722A (en) * 1992-08-14 1994-02-16 Ibm Communications device
US5299315A (en) * 1992-09-17 1994-03-29 International Business Machines Corp. Personal computer with programmable threshold FIFO registers for data transfer
US5465332A (en) * 1992-09-21 1995-11-07 International Business Machines Corporation Selectable 8/16 bit DMA channels for "ISA" bus
JP2511233B2 (ja) 1993-02-12 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション 画像表示装置
US5812996A (en) 1994-07-12 1998-09-22 Sybase, Inc. Database system with methods for optimizing query performance with a buffer manager
US5706505A (en) * 1994-08-19 1998-01-06 Microsoft Corporation Method and system for binding data in a computer system
US5675520A (en) * 1995-03-30 1997-10-07 Microsoft Corporation Method for extending a common user interface
US5911068A (en) * 1995-03-30 1999-06-08 Microsoft Corporation Container independent control architecture
US5548340A (en) * 1995-05-31 1996-08-20 International Business Machines Corporation Intelligent television receivers combinations including video displays, and methods for diversion of television viewers by visual image modification
US5940847A (en) * 1995-06-07 1999-08-17 Microsoft Corporation System and method for automatically correcting multi-word data entry errors
US5956489A (en) * 1995-06-07 1999-09-21 Microsoft Corporation Transaction replication system and method for supporting replicated transaction-based services
US5745103A (en) * 1995-08-02 1998-04-28 Microsoft Corporation Real-time palette negotiations in multimedia presentations
US5732267A (en) * 1995-08-02 1998-03-24 Microsoft Corporation Caching/prewarming data loaded from CD-ROM
US5664228A (en) * 1995-08-09 1997-09-02 Microsoft Corporation Portable information device and system and method for downloading executable instructions from a computer to the portable information device
US5878141A (en) * 1995-08-25 1999-03-02 Microsoft Corporation Computerized purchasing system and method for mediating purchase transactions over an interactive network
US5732256A (en) * 1995-08-30 1998-03-24 Microsoft Corporation CD-ROM optimization and stream splitting
DE69621197T2 (de) 1995-09-06 2002-11-07 Seiko Epson Corp Peripheriegerätsteuerungssystem mit einer Mehrheit von Objekten
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5793982A (en) * 1995-12-07 1998-08-11 International Business Machine Corporation Validating an installation plan containing multiple transports and redirectors by adding data structure of the modules to the plan if the indicated transport and redirector modules are unavailable
US5855020A (en) * 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
DE19607971C2 (de) * 1996-03-01 1998-01-02 Gore W L & Ass Gmbh Leitungskoppler
US6038551A (en) * 1996-03-11 2000-03-14 Microsoft Corporation System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer
US5928323A (en) * 1996-05-30 1999-07-27 Sun Microsystems, Inc. Apparatus and method for dynamically generating information with server-side software objects
US5961601A (en) 1996-06-07 1999-10-05 International Business Machines Corporation Preserving state information in a continuing conversation between a client and server networked via a stateless protocol
US5638176A (en) * 1996-06-25 1997-06-10 International Business Machines Corporation Inexpensive interferometric eye tracking system
US5835724A (en) * 1996-07-03 1998-11-10 Electronic Data Systems Corporation System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
US6115744A (en) * 1996-07-30 2000-09-05 Bea Systems, Inc. Client object API and gateway to enable OLTP via the internet
US5897622A (en) 1996-10-16 1999-04-27 Microsoft Corporation Electronic shopping and merchandising system
US5953524A (en) 1996-11-22 1999-09-14 Sybase, Inc. Development system with methods for runtime binding of user-defined classes
US5991802A (en) 1996-11-27 1999-11-23 Microsoft Corporation Method and system for invoking methods of objects over the internet
US6401099B1 (en) * 1996-12-06 2002-06-04 Microsoft Corporation Asynchronous binding of named objects
US5748890A (en) 1996-12-23 1998-05-05 U S West, Inc. Method and system for authenticating and auditing access by a user to non-natively secured applications
US6032207A (en) 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
US6006230A (en) * 1997-01-15 1999-12-21 Sybase, Inc. Database application development system with improved methods for distributing and executing objects across multiple tiers
CA2198189C (en) * 1997-02-21 2001-05-29 Ibm Canada Limited-Ibm Canada Limitee Internet browser based data entry architecture
US6334157B1 (en) * 1997-03-11 2001-12-25 Microsoft Corporation Programmatically providing direct access to user interface elements of an application program
US6212192B1 (en) 1997-03-14 2001-04-03 Itxc, Inc. Method and apparatus for synchronizing information browsing among multiple systems
US6253228B1 (en) 1997-03-31 2001-06-26 Apple Computer, Inc. Method and apparatus for updating and synchronizing information between a client and a server
JP3155489B2 (ja) * 1997-04-16 2001-04-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション サスペンション・アセンブリ及びディスク・ドライブ装置
US6014637A (en) * 1997-04-30 2000-01-11 International Business Machines Corporation Object oriented framework mechanism for fulfillment requirements management
US5983227A (en) 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
CA2210755C (en) 1997-07-17 2003-12-23 Ibm Canada Limited - Ibm Canada Limitee Creating proxies for distribution of beans and event objects
GB2327786B (en) 1997-07-31 2002-04-03 Ibm Method and apparatus for strategic compilation of source programs into two or more target languages
US6138150A (en) * 1997-09-03 2000-10-24 International Business Machines Corporation Method for remotely controlling computer resources via the internet with a web browser
US5940075A (en) 1997-09-30 1999-08-17 Unisys Corp. Method for extending the hypertext markup language (HTML) to support enterprise application data binding
US6253234B1 (en) * 1997-10-17 2001-06-26 International Business Machines Corporation Shared web page caching at browsers for an intranet
US6014666A (en) 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6460071B1 (en) * 1997-11-21 2002-10-01 International Business Machines Corporation System and method for managing client application state in a stateless web browser environment
US6279151B1 (en) 1998-01-20 2001-08-21 International Business Machines Corporation Method and apparatus for remote source code inclusion
US6076108A (en) 1998-03-06 2000-06-13 I2 Technologies, Inc. System and method for maintaining a state for a user session using a web system having a global session server
JPH11301049A (ja) * 1998-03-27 1999-11-02 Internatl Business Mach Corp <Ibm> プリンタ、プリンタ・システム、印字属性を変更して印字をおこなう方法、プリンタを制御するプログラムを格納した記録媒体
US6167524A (en) * 1998-04-06 2000-12-26 International Business Machines Corporation Apparatus and method for efficient battery utilization in portable personal computers
US6101607A (en) * 1998-04-24 2000-08-08 International Business Machines Corporation Limit access to program function
US6185608B1 (en) 1998-06-12 2001-02-06 International Business Machines Corporation Caching dynamic web pages
US6121968A (en) * 1998-06-17 2000-09-19 Microsoft Corporation Adaptive menus
US6373841B1 (en) 1998-06-22 2002-04-16 Agilent Technologies, Inc. Integrated LAN controller and web server chip
US6463442B1 (en) * 1998-06-30 2002-10-08 Microsoft Corporation Container independent data binding system
US6343148B2 (en) * 1998-07-22 2002-01-29 International Business Machines Corporation Process for utilizing external handwriting recognition for personal data assistants
US6205480B1 (en) 1998-08-19 2001-03-20 Computer Associates Think, Inc. System and method for web server user authentication
US6246422B1 (en) * 1998-09-01 2001-06-12 Sun Microsystems, Inc. Efficient method for storing texture maps in multi-bank memory
US6389414B1 (en) * 1998-09-21 2002-05-14 Microsoft Corporation Internal database validation
US6397253B1 (en) 1998-10-06 2002-05-28 Bull Hn Information Systems Inc. Method and system for providing high performance Web browser and server communications
US6218958B1 (en) * 1998-10-08 2001-04-17 International Business Machines Corporation Integrated touch-skin notification system for wearable computing devices
US6460141B1 (en) 1998-10-28 2002-10-01 Rsa Security Inc. Security and access management system for web-enabled and non-web-enabled applications and content on a computer network
US6487590B1 (en) * 1998-10-30 2002-11-26 Lucent Technologies Inc. Method for controlling a network element from a remote workstation
US6363352B1 (en) * 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6564251B2 (en) * 1998-12-03 2003-05-13 Microsoft Corporation Scalable computing system for presenting customized aggregation of information
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6351767B1 (en) 1999-01-25 2002-02-26 International Business Machines Corporation Method and system for automatically caching dynamic content based on a cacheability determination
US6353447B1 (en) * 1999-01-26 2002-03-05 Microsoft Corporation Study planner system and method
US6412008B1 (en) * 1999-01-28 2002-06-25 International Business Machines Corporation System and method for cooperative client/server customization of web pages
US6326957B1 (en) * 1999-01-29 2001-12-04 International Business Machines Corporation System and method for displaying page information in a personal digital notepad
US6591272B1 (en) * 1999-02-25 2003-07-08 Tricoron Networks, Inc. Method and apparatus to make and transmit objects from a database on a server computer to a client computer
US6354477B1 (en) * 1999-06-08 2002-03-12 International Business Machines Corporation Mobile computing bag
US6557038B1 (en) 1999-06-30 2003-04-29 International Business Machines Corporation Method and apparatus for maintaining session states
US6505238B1 (en) * 1999-08-19 2003-01-07 International Business Machines Corporation Method and system for implementing universal login via web browser
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US6430575B1 (en) * 1999-09-10 2002-08-06 Xerox Corporation Collaborative document management system with customizable filing structures that are mutually intelligible
US6546516B1 (en) * 1999-11-22 2003-04-08 International Business Machines Corporation Method and apparatus for measuring timing characteristics of message-oriented transports
US6633416B1 (en) * 2000-01-10 2003-10-14 International Business Machines Corporation Computer scanner for three-dimensional objects
US6560618B1 (en) * 2000-03-22 2003-05-06 International Business Machines Corporation On-demand generation, packaging, and delivery of archive files
US6687735B1 (en) * 2000-05-30 2004-02-03 Tranceive Technologies, Inc. Method and apparatus for balancing distributed applications
US6622168B1 (en) 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
US7228346B1 (en) * 2000-04-21 2007-06-05 Sun Microsystems, Inc. IDL event and request formatting for corba gateway
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6996809B2 (en) * 2000-07-10 2006-02-07 Microsoft Corporation Method and apparatus for providing instrumentation data to an instrumentation data source from within a managed code environment
US6732364B1 (en) * 2000-07-14 2004-05-04 International Business Machines Corporation Mechanism for developing and dynamically deploying awarelets
US6772408B1 (en) * 2000-11-22 2004-08-03 Hyperion Solutions Corporation Event model using fixed-format text strings to express event actions
US6606418B2 (en) * 2001-01-16 2003-08-12 International Business Machines Corporation Enhanced compression of documents
US20020120677A1 (en) * 2001-02-23 2002-08-29 Goward Philip J. Method and apparatus for using a servlet to interoperate with server pages
US6725219B2 (en) * 2001-03-13 2004-04-20 Seiko Epson Corporation Internet presentation system
CN100389428C (zh) * 2001-10-24 2008-05-21 Nik软件公司 用于利用图像基准点处理数字图像的方法和设备

Also Published As

Publication number Publication date
ES2263707T3 (es) 2006-12-16
US20070174845A1 (en) 2007-07-26
ATE326106T1 (de) 2006-06-15
EP1271883A2 (en) 2003-01-02
DE60211254D1 (de) 2006-06-14
EP1271883B1 (en) 2006-05-10
DE60211254T2 (de) 2006-09-14
US7162723B2 (en) 2007-01-09
PT1271883E (pt) 2006-09-29
JP2003076560A (ja) 2003-03-14
EP1271883A3 (en) 2004-03-24
US7603676B2 (en) 2009-10-13
US20030018827A1 (en) 2003-01-23
DK1271883T3 (da) 2006-09-18

Similar Documents

Publication Publication Date Title
JP4302942B2 (ja) Asp.net httpランタイム
JP4005667B2 (ja) サーブレットを処理する方法及び装置
US9654548B2 (en) Intelligent network streaming and execution system for conventionally coded applications
CA2279382C (en) Web request broker controlling multiple processes
US8468541B2 (en) Event driven sendfile
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
US7587447B2 (en) Systems, methods and computer programs for implementing and accessing web services
US7082604B2 (en) Method and apparatus for breaking down computing tasks across a network of heterogeneous computer for parallel execution by utilizing autonomous mobile agents
US7769825B2 (en) System and method for web services Java API-based invocation
US7571208B2 (en) Creating proxies from service description metadata at runtime
US7028091B1 (en) Web server in-kernel interface to data transport system and cache manager
Ganger et al. Fast and flexible application-level networking on exokernel systems
CA2397865A1 (en) Improved method and system of state management for data communications
US7849472B1 (en) System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans
US8499023B1 (en) Servlet-based grid computing environment using grid engines and switches to manage resources
WO2004003770A1 (en) System and method for web services java api-based invocation
Nacar et al. Developing a secure grid computing environment shell engine: containers and services
Guthrie et al. Asp. net http runtime
Guide Unicenter® SOLVE: CPT™
Goto et al. World-wide web server with application layer queue: system and object-oriented software architecture
Guo Developing network server applications using generative design patterns
Mahmoud Design and Implementation of a Web-based Distributed Computing System
Nagel et al. Socket Programming in. NET
Hadjiefthymiades et al. Information Data Acquisition on the World Wide Web During Heavy Client/Server Traffic Periods
Allcock Programming with the Globus Toolkit GridFTP Client Library

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050613

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070921

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20071221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081118

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081217

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090324

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090423

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120501

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4302942

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130501

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees