JP2004507825A - コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 - Google Patents
コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 Download PDFInfo
- Publication number
- JP2004507825A JP2004507825A JP2002522164A JP2002522164A JP2004507825A JP 2004507825 A JP2004507825 A JP 2004507825A JP 2002522164 A JP2002522164 A JP 2002522164A JP 2002522164 A JP2002522164 A JP 2002522164A JP 2004507825 A JP2004507825 A JP 2004507825A
- Authority
- JP
- Japan
- Prior art keywords
- request
- application protocol
- kernel
- application
- user space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004891 communication Methods 0.000 title claims abstract description 11
- 238000012545 processing Methods 0.000 title abstract description 12
- 238000004590 computer program Methods 0.000 claims description 27
- 238000012546 transfer Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 14
- 230000015654 memory Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 5
- 244000035744 Hura crepitans Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
- Stored Programmes (AREA)
- Crystals, And After-Treatments Of Crystals (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
(背景技術)
インターネットは、通信リンクを経由して相互に接続される数多くのコンピュータとコンピュータネットワークからなる。通信リンクは、公知の標準的な伝送制御プロトコル/インターネットプロトコル(TCP/IP)を使用してデジタル情報をやり取りする。ハイパーテキスト転送プロトコル(HTTP)及びファイル転送プロトコル(FTP)などのアプリケーションプロトコルがTCP/IPの上位で使用される。同様又は同一の伝送プロトコル及びアプリケーションプロトコルも最新のコンピュータによって使用され、イントラネットやローカルエリアネットワーク(LAN)などの私設網を経由して通信する。これらのアプリケーションプロトコルによって、サーバコンピュータシステムは情報を遠方のクライアントコンピュータシステムに送信することができる。そして遠方のクライアントコンピュータシステムは、その情報を表示したり、利用することができる。HTTPの場合は、情報はいわゆるワールドワイドウェブページの形式で表示されるであろう。
【0002】
近年における、インターネットの使用及び他の形式のクライアント/サーバ通信の著しい増加は、サーバがますます多くの要求を受信し、ますます多くの接続と応答を処理していることを意味する。そのため、一定の時間内に扱う要求の数に対してサーバが動作する速度が、全体の速度及びインターネットや他のコンピュータ通信システムの性能において非常に重要となってきた。
【0003】
サーバにインストールされたオペレーティングシステム及びアプリケーションの性能を遅くする一つの処理は、実行のコンテキストを切り替える処理である。実行のコンテキストは単に「コンテキスト」「プロセス」「スレッド」あるいは「タスク」とも呼ばれる。コンテキストは、マルチタスクオペレーティングシステムカーネルの基本単位である。オペレーティングシステムカーネルは、ハードウェアのリソースを扱いオペレーティングシステムの基本的な動作を行うオペレーティングシステムの一部である。現行のオペレーティングシステムカーネルの中には、TCP/IP機能などのいくつかの下位プロトコル機能を有するものがある。いずれの場合においても、コンテキスト切替えは2つ以上の処理の「切替え」であるので、各処理は中央演算処理装置(CPU)を使用することができる。
【0004】
コンテキストの切替えによって行われる有用なアプリケーションワークがないという点において、コンテキストの切替えは意味のないものである。マルチタスキングオペレーティングシステムやこのようなシステムにインストールされたアプリケーション内のいくつかの動作は、コンテキストの切替無しに行うことができる。そのような動作は「原子」動作と呼ばれることが多い。しかしながら、入出力、つまり「I/O」、を伴う動作は通常コンテキスト切替えを必要とする。このような動作は媒体装置にアクセスすることを含み、さらに、残念なことにアプリケーションプロトコルを使用してネットワーク上で通信することを含む。
【0005】
(発明の開示)
本発明によって、ネットワーク上で受信したアプリケーションプロトコル要求がコンテキストの切替えを起こさずにサーバで処理され応答されることが可能となる。本発明は、オペレーティングシステムカーネル内にアプリケーションプロトコルサブシステムとプロトコルモジュールを備えることによってこの機能を可能なものにする。プロトコルサブシステムは、カーネル要求構造の中に、アプリケーションプロトコル要求に関する情報を記憶する「カーネル内」アプリケーションプロトコルスタックを作成する。そして、ユーザスペースアプリケーションは、オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答する間、実行を続けることができる。
【0006】
本発明のひとつの実施例によると、サーバはカーネル及びユーザスペースを備えたオペレーティングシステムを有する。前記サーバは、アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立し、前記アプリケーションプロトコル要求に対応するカーネル要求構造を作ることによって受信された前記アプリケーションプロトコル要求に応答する。前記サーバは、前記アプリケーションプロトコル要求に関連してクライアントから受信したデータを用いて前記カーネル要求構造を作成する。前記オペレーティングシステムは、前記ユーザスペースのアプリケーションが実行を続け、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように前記カーネル要求構造に従って前記ユーザスペース要求構造を更新する。そして前記サーバは、前記アプリケーションプロトコル要求に応答する。ひとたび前記要求が処理されると、前記カーネル要求構造を削除することができる。
【0007】
ある実施例では、サーバシステムは本発明によるオペレーティングシステムを有し、前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立し維持するよう動作可能なユーザスペースを備える。前記サーバシステムはまた、前記ユーザスペースに動作可能に接続されたオペレーティングシステムカーネルを有する。前記カーネルは、前記アプリケーションプロトコル要求に関連してクライアントから受け取ったデータを使用し、前記アプリケーションプロトコル要求に対応するカーネル要求構造を維持するよう動作可能である。前記カーネルはまた、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように、前記ユーザスペース要求構造を更新できる。
【0008】
本発明の実施例において、コンピュータプログラムコードは本発明の多くの態様を実行するために使用される。コンピュータプログラムは媒体上に記憶することができる。前記媒体として、ディスケット、テープ、固定ディスクといった磁気媒体や、CD−ROMやDVD−ROMといった光媒体が可能である。前記コンピュータプログラムコードは、半導体装置にも記憶できる。さらに、前記コンピュータプログラムをインターネットや何らかの他の種類のネットワークを経由して供給することもできる。ネットワークに接続されたワークステーション又はコンピュータシステムは一般に、コンピュータプログラム製品の一部として供給される前記コンピュータプログラムコードを作動させる。このコンピュータシステムは、「プログラム実行システム」又は「命令実行システム」とも呼ぶことができる。前記コンピュータシステム及び測定システムと組み合わせた前記コンピュータプログラムコードは、本発明の方法を実行する手段を形成する。
【0009】
(本発明を実行するための最良の形態)
本発明は典型的に、コンピュータソフトウェアまたはコンピュータプログラム製品において具体化される。説明されるソフトウェアのすべての特徴が、付記された請求項のうちの何れか特定のひとつにおいて請求されている本発明を実施するのに、必要であるというわけではないと理解されるべきである。完全なソフトウェア製品は、むしろ本発明を十分に可能なものとするために説明される。ソフトウェア処理又は方法が示されている又は説明されているこの開示全体にわたって、あるステップが最初に行われている他のステップに依存することが文脈から明確でない場合は、この方法のステップはいかなる順序で行われても又は同時に行われてもよいということも理解されるべきである。
【0010】
説明される本発明の実施例は、インターネット上でオープンソースとして直接入手可能である「リナックス」として一般に知られるコンピュータオペレーティングシステムに基づいたコンピューティングプラットフォームにおいて実施される。リナックスはまた、リナックスオペレーティングシステムのためのサービスとサポートを提供するさまざまなベンダを通しても入手可能である。これらのベンダの中には、本発明の譲受人であるノースキャロライナ州、リサーチ・トライアングル・パークのレッド・ハット・インコーポレイティッドがある。本発明の一部を実施するパッチ形式のあるコンピュータプログラムコードの例がこの明細書の最後に記載され、その使用については後述する。さらに簡単なあるコードのサンプルがこの明細書中に記載されており、説明される特定の概念を示す。これらの例の全ては、当業者によって容易に理解されるであろう。リナックスの例は例示のためのみに示されていることも理解されるであろう。ここに述べられる発明の概念は、マッキントッシュ(登録商標)、ユニックス(登録商標)及びウィンドウズ(登録商標)に基づくオペレーティングシステムを含む任意のオペレーティングシステムに基づいた、任意のコンピューティングプラットフォームに適応されることができる。
【0011】
最後に、発明の概念を示すために用いられるいくつかのブロック図及びフローチャートは相互に他を排除するものではないと理解されるべきである。むしろ、各図は説明される特定の概念を示すのに合わせて作成されている。多くの場合、特定の図面に示された要素やステップは別の図面に示された他の要素やステップと共存するが、分かりやすくするためにある要素又はステップのみが示されている。例えば、図1及び図4のブロック図はともにオペレーティングシステムカーネル及びユーザスペース内の要素を示している。実際のソフトウェアにおいては、両図の要素の全てが存在するかもしれない。しかしながら、分かりやすくするために特定の特徴に関連する要素だけが各図に示されている。
【0012】
図1に戻ると、オペレーティングシステムカーネル100及びユーザスペース101を有するソフトウェアシステムの種々の要素を示すブロック図が示されている。図1によって示される特徴はサーバとして使用されるコンピュータプラットフォーム又は命令実行システムにとって重要であるため、図1のソフトウェアシステムは「サーバシステム」と呼ぶことができる。オペレーティングシステムカーネル、あるいは単に「カーネル」は、ハードウェアリソースを操作し、基本的な機能を提供し、アプリケーションに基本的なプログラミングインタフェースを提供するオペレーティングシステムソフトウェアの一部である。このようなプログラミングインタフェースは、「アプリケーションプログラミングインタフェース」または「API」と呼ばれることが多い。本発明の本実施例においては、オペレーティングシステムカーネル100はカーネル内のアプリケーションプロトコルサブシステム102を使用することで通信プロトコルスタックを保持する機能を有している。HTTPやFTPなどのアプリケーションプロトコルとTCP/IPなどの下位プロトコルを区別することは重要である。信頼できるプロトコルモジュール103もカーネルに備わっており、プロトコルサブシステム102にアプリケーションプロトコル情報及び機能を提供する。関与するプロトコルは、HTTP、FTP、又はHTTPを使用する拡張マークアップ言語(XML)及びハイパーテキストマークアップ言語(HTML)などのいわゆる「メタアプリケーションプロトコル」を含むネットワーク通信に使用される任意の他のアプリケーションプロトコルが可能である。ここに述べられるHTTPに言及するということは、HTML及びXMLを含むということであると理解されるべきである。包括的なオペレーティングシステムキャッシュ104もカーネルに備わっており、情報のファイルやページを格納するのに使用することができる。最後に、プロトコルオブジェクトキャッシュ105もカーネルの中にあり、プロトコルサブシステム102に動作可能に接続される。プロトコルオブジェクトキャッシュは、後述するソフトウェアシステムのある特性にとって重要となる。図1に示すようにこの実施例のプロトコルサブシステムは、直接共通ゲートウェイ・インタフェース(CGI)及びトランスペアレント・ソケット出力先変更を提供することに注目するべきである。
【0013】
図1で説明するオペレーティングシステムアーキテクチャ(及び図4を用いて後述するオペレーティングシステムアーキテクチャ)は代表例であることを強調してもしすぎることはない。オペレーティングシステムの中には、あるアプリケーションをカーネルスペースで実行させるものもあれば、ユーザスペースで実行させるものもある。ある環境においては、アプリケーションが両方の場所で作動することも可能で、あるコードはカーネルスペースで作動し別のコードはユーザスペースで作動する。
【0014】
図1のユーザスペース101は、信頼できないモジュールあるいは他のエクセキュータブル106を有する。「信頼できる」ソフトウェアモジュール対「信頼できない」ソフトウェアモジュールの意味するものを説明することはこの時点で有益である。当業者には公知であるように、ほとんどの最新のオペレーティングシステムは、ユーザスペースにあるアプリケーション又はソフトウェアモジュールが「サンドボックス」のようなものの中にあるように設計されている。このサンドボックスは、オペレーティングシステムの中のモジュールが壊れないこと又はユーザスペース内で起きることによって悪影響を受けないことを保証している。この概念は、ユーザスペースのモジュールが「信頼できない」とみなされてオペレーティングシステム機能へのアクセスが制限されるようにオペレーティングシステムを設計することで実施される。それに対して、オペレーティングシステムカーネル内のモジュールは「信頼できる」ものであり、オペレーティングシステム機能に完全にアクセスできる。本発明のこの実施例において、上位の通信プロトコルアプリケーションはオペレーティングシステムカーネル内の信頼できるモジュールとして存在できる。これらのカーネル内プロトコルモジュール及びカーネル内プロトコルサブシステムによって、サーバシステムは、オペレーティングシステムがコンテキストを切り替えること無しにアプリケーションプロトコル要求に応答可能となる。全てのオペレーティングシステムが別個のユーザスペースを有するわけではないことに注目するのは重要である。オペレーティングシステムには、オペレーティングシステムカーネルスペース内でアプリケーションを実行するものがある。しかしながら、これらの場合、オペレーティングシステムとアプリケーションの機能的な関係は同じである。オペレーティングシステムはハードウェアを操作し、APIを提供し、アプリケーションはAPIを用いて、アプリケーションのタスクを行う。
【0015】
コンテキストの切替え、又は何らかの他の処理スケジュールの中断を起こさないコンピュータシステムにおける動作は、「原子」動作と呼ばれることが多い。説明したばかりのアーキテクチャでは、通信アプリケーションは、一般にコンテキストの切替えを伴わない「非原子」作業となるであろうものを行うことができる。応答を発生させる必要がある場合、ひとたび応答が既に起こったかのように相応のユーザスペース要求構造が更新されるとカーネルが実行を再開できるようにするメモリ内のカーネル内要求構造に、アプリケーションプロトコル要求についての情報が記憶される。HTTP要求の要求構造の例が下記に示されている。この特定の場合においてユーザ要求構造が示されているが、カーネル要求構造は非常に類似しておりユーザスペース要求構造から容易に得られる。
【0016】
図2はコンテキストの切替えを伴わずに要求に応答する方法を示すフローチャートである。ステップ201で、ユーザスペース要求構造が作成される。ステップ202で、サーバシステムとして動作する命令実行システムによる実行がオペレーティングシステムカーネルに入る。ステップ203で、新しいカーネル要求構造が作成されて要求を処理する。カーネル要求構造は、通常ネットワーク上に要求をするクライアントシステムから、この要求に関連して受信したデータで埋められる。ステップ204で、カーネル要求構造は、ユーザスペース要求構造を埋めることでユーザスペースにコピーされる。この「コピー」は、要求構造の使用済み部分にのみ関連したデータを移動させることで最も効率良く行われる。この場合、要求構造のいわゆる「私設領域」も移動されるであろう。この私設領域は、参考のためにアプリケーションが使用できる不透明なポインタである。ステップ205で、実行はユーザスペースに戻り、ユーザスペースアプリケーションは要求が処理されたかのように動作を続ける。ユーザスペース要求構造は、別の要求を処理する必要がある場合は上書きされる。カーネルはしかるべき時に、通常に要求を処理する(分かりやすくするために、このステップは図示されていない)。206で、オペレーティングシステムは要求を監視する。要求が完了する、あるいは時間切れになれば、実行はステップ207でオペレーティングシステムカーネルに入り、カーネル要求構造は208で削除され、メモリリソースをセーブする。要求は完了されないが時間切れが起こらなかった場合は、システムは要求を保持し、その要求のための入出力動作が終了した後に、その要求はユーザスペースへ現在の要求として戻される。「一時停止された」要求は、実行を一時停止させることはない。タスクではなく要求が一時停止されるので、実行はユーザスペースで続くことに気付くべきである。要求を二つ以上の入出力動作で一時停止させることも可能である。
【0017】
図3は、本発明を具体化するオペレーティングシステムに含まれる他の処理、すなわちアプリケーションプロトコル要求に応答してクライアントアプリケーションに送られる、HTTPウェブページなどの応答に静的プロトコルオブジェクトを埋め込む処理を示す。この説明は例としてのみHTTPウェブページに基づいていることに注目すべきである。FTPなどの他のアプリケーションプロトコルで本発明を実行することも可能である。本発明のこの実施例において、静的プロトコルオブジェクトは図1のプロトコルオブジェクトキャッシュ105に記憶されるが、それらは包括的なオペレーティングシステムキャッシュの中にあってもよい。図3のステップ301で、サーバはアプリケーションプロトコル要求を受信し、分析する。HTTP要求の形式のアプリケーションプロトコル要求のサンプルを下に示す。このような要求は通常ふたつの改行文字で終わる。
ステップ302でプリアンブルがクライアントに送り返される。プリアンブルとはHTTP応答又は返答のヘッダ部分である。ヘッダ部分の例を下に示す。
【0018】
ステップ303で、返答ページの任意の動的部分がサーバ上のメモリバッファ内で作成される。動的部分は、返答の一部分を形成する動的プロトコルオブジェクトからなる。返答はまた静的プロトコルオブジェクトを内部に埋め込むこともできる。ステップ304で、動的プロトコルオブジェクトはクライアントアプリケーションに送信される。ステップ305で、返答ページの静的部分又は静的プロトコルオブジェクトがプロトコルオブジェクトキャッシュ又は包括的なオペレーティングシステムキャッシュから検索される。ステップ306で、静的オブジェクトはクライアントアプリケーションに送信され、ここで静的オブジェクトは完全な返答がクライアントシステムで表示されるように返答の中に埋め込まれる。
【0019】
図4は本発明のオペレーティングシステムの実施例を示す別のブロック図である。この場合、このブロック図は原子ファイル検索特性の動作を示すように構成されている。図4にはオペレーティングシステム環境の3つの主なセグメント:すなわちファイルシステム400、ユーザスペース401、及びオペレーティングシステムカーネル402が含まれている。ファイルシステム400は、そのファイルシステムスペースにファイルシステムオブジェクト403を備えている。ファイルシステムオブジェクトまたは単に「ファイル」は、ファイルシステムスペースの構成要素である。実際には、それらは情報の容器である。通常のファイル、ディレクトリ、及びシンボリックリンクを含む種々の種類のファイルシステムオブジェクトがある。シンボリックリンクは、実際は既存のファイルを指す新しいファイルを作る手段を提供する。シンボリックリンクはソフトリンクとも呼ばれる。リンク付けは分離文字を含む文字列によって行われる。分離記号はリナックス及びユニックス(登録商標)システム上、及びインターネットのURLシステムでは「/」(スラッシュ)文字であり、それはウィンドウズ(登録商標)システム上の「\」(逆スラッシュ)文字である。
【0020】
ファイルシステムオブジェクト名又はファイル名は、例えば、「homework.doc」のような分離文字を含まない文字列であることに注目するべきである。各ファイルシステムオブジェクトは、ファイルシステムオブジェクト名を持つ。しかしながらファイルシステムオブジェクトパス、すなわち「ファイルパス」は、通常は分離文字で始まり、ファイルの位置を示すパスの種々の部分を特定する文字列である。いくつかのシステムでは、このファイルパスがディレクトリパス又はフォルダパスとも呼ばれ、例えば「/home/joe/docs/homework.doc」などとなる。
【0021】
図4のファイルシステムはまた、ファイルシステムネームスペース404を有する。ファイルシステムネームスペースは、システム内の全てのファイルパスを参照する。全てのファイルのパスは、典型的にディレクトリの形式でファイルシステム装置に記憶される。図4に示されたユーザスペース401では、アプリケーション405が典型的に備わっている。これらのアプリケーションは、ファイルシステム400内に保持されているファイルシステムオブジェクト403を利用する。未使用のファイルを使用するために、アプリケーション及びオペレーティングシステムはファイルシステムネームスペース動作を行う。このような動作は、例えばファイルを開く、ファイルを読む、ファイルに書き込む、ファイル名を変える、又はファイルをディレクトリ間で移動させるために行われる。他の公知のファイルシステムネームスペース動作もある。この開示のために、これらのファイルシステムネームスペース動作はいずれも総称して「ファイルを開く」、「ファイルオープン要求」を処理する、ファイル操作を行う、などと呼ばれる。従来の技術においては、アプリケーションが「/home/joe/docs/homework.doc」ファイルの最初の1000バイトを読みたい場合、アプリケーションは下記のC言語の例に示されるのと同様のコンピュータプログラムコードを有するであろう。
これらの3つのシステムコールを行った後、オペレーティングシステムカーネルはメモリバッファ「buf」にファイルの最初の1000バイトを入れるであろう。
【0022】
オペレーティングシステムカーネルは、ファイルシステムネームスペースキャッシュ406を有する。パスがいったんファイルシステムネームスペースキャッシュに記憶されると、上に示した「オープン」システムコールは内部でファイルシステムネームスペースキャッシュにアクセスし、ファイルへのアクセスの速度を上げる。ファイルシステムネームスペースキャッシュは、「デントリキャッシュ(dentry cache)」と呼ばれることもある。ネームスペースキャッシュはファイルのコンテンツを格納しないことに注意すべきである。このネームスペースキャッシュはファイルの属性を格納してもよいであろう。ファイルコンテンツは、公知であり、分かりやすくするために図4からは省いた「ページキャッシュ」と呼ばれることの多い、図1で示した包括的なキャッシュなどの、別個のデータ構造に格納される。
【0023】
上記のような従来の技術では、カーネルは、時間とリソースについてどれだけ要しようとファイルに到達するであろう、そしてファイル名を有するファイルパスがネームスペースキャッシュに既に存在したか否かはアプリケーションにとってトランスペアレントである。もしそうでなければ、カーネルはディスクからファイルパスの詳細を読み込み、入出力が終了するまでそのアプリケーションに関連した処理は一時停止されてコンテキストの切替えが起こり、重大な性能上の支障を引き起こす。
【0024】
説明したばかりの従来の技術とは異なり、図4のシステムは、本発明のこの実施例による原子ファイル検索を実行する原子検索動作407を備えている。原子ファイル検索によってアプリケーション405は、ファイルが既にネームスペースキャッシュに格納されているか否かを検出することができる。以下のコードは、その特性が実際にはどのように使用されるかを示す。
「O_ATOMICLOOKUP」フラグ及び新しい「−EWOULDBLOCKIO」はオープンシステムコールのためのコードを返すことに注目するべきである。ファイルパスがまだ格納されていないことがわかると、アプリケーションは、ファイルのオープンをアプリケーション開発者によって適当であると判断されるような別の処理へ戻すか、転送することができる。この処理はブロッキングポイント処理を行う処理となる場合もある。
【0025】
ブロッキングポイント処理は図4のユーザスペースの408に、あるい図4のはカーネルの409に備えることができる。「ブロッキングポイント」とは、検索によって、可能性のあるコンテキスト切替えが起こるであろうポイントである。「ブロッキングポイントの処理」には、性能を改善するようにファイルのオープンを管理できる別のプロセス/スレッドにこの検索を返すことを伴う。
【0026】
図5は、原子検索動作の一例をフローチャートの形式で示す。ステップ501で、アプリケーションは、文字列によって示される開かれるべきファイル名を決める。502で、オペレーティングシステムに対してファイルオープン要求がなされる。ステップ500で、オペレーティングシステムカーネルはこの要求を受信し、原子的にファイルを開くことを試みる。原子オープンを試みるために、カーネルはファイルシステムネームスペースキャッシュに適当なファイルパスがないか調べる。ステップ503は、このようなファイルの存在の欠如などのエラーについて調べる決定ポイントである。この処理は、従来技術と同じ方法で行われる。エラーがある場合、504のエラー処理ルーチンによって処理される。エラーがない場合、処理は続く。オペレーティングシステムカーネルは、ステップ505で、パスがファイルシステムネームスペースキャッシュに記憶されたためファイルが原子的に開かれたか又は開かれているかについてアプリケーションに通知する。ファイルが原子的に開かれた場合、そのファイルはステップ506で使用される。原子的に開かれなかった場合、原子的オープンがステップ505で不可能であったという事実がアプリケーションに通知されているので、可能なブロッキングポイントがステップ507で処理される。
【0027】
この実施例では、アプリケーションはファイルパスが格納されているかどうかについての問い合わせを送信しないことに注目するべきである。アプリケーションは単に、オペレーティングシステムカーネルに対してファイルを原子的に開きたいということを通知するだけである。ファイルパスが格納されているためカーネルが応じることができる場合、ファイルは開かれ、処理がアプリケーションに戻される。ファイルパスが格納されていない場合、そのときファイルは開かれず、−EWOULDBLOCKIOはアプリケーションに戻される。この特徴についてのここでの記述に関して、「開かれた」「開かれるであろう」「開かれている」などの用語が区別なく使用される。同様に、「行われた」「行われている」「行われるであろう」などの、ファイル操作に関する用語が区別なく使用される。「行われる」などが区別なく使用される。キャッシュの検査、ファイルのオープン、およびオペレーティングシステムカーネルからアプリケーションへの通知の厳密なタイミングに関係なく、本発明の動作は同じである。
【0028】
上述のオペレーティングシステムアーキテクチャには多くの変形があるが、そのいずれも原子検索動作を有することができる。例えば、ファイルシステム装置は、オペレーティングシステムカーネルを保持しているコンピュータシステムに備わる必要は無く、代わりにネットワーク上でアクセスされてもよい。この場合、ファイルシステムネームスペースは、ネットワーク接続されたファイルシステム装置とともに設置されるか、オペレーティングシステムカーネルを保持しているシステム上に位置するか、両方の場所に分配されるかである。全てのオペレーティングシステム環境が別個の保護領域としてユーザスペースを有するわけではないことに注意することも重要である。例えば組み込まれたプロセッサとともに通常使用されるものなどいくつかのオペレーティングシステムでは、アプリケーションがオペレーティングシステムカーネル内で保持され実行される。この場合でも、オペレーティングシステムはアプリケーションにAPIを提供し、アプリケーションがユーザスペースの中で作動しているのと全く同じようにオペレーティングシステムはAPIを介してアプリケーションと通信する。
【0029】
原子検索特性を実行するコードを示すソースコード一覧の一例が、請求項の前のこの明細書の最後に記載される。このソースコード一覧は「ソースコード例」というタイトルが付けられている。ソースコードは公知の差分パッチ形式のものである。そのソースコードは、インターネット上で、また本出願の譲受人であるレッド・ハット・インコーポレイティッドなどインターネットのサポートを提供する会社から取得できるオープンソースオペレーティングシステムであるリナッックスオペレーティングシステムの公的に入手可能なバージョン2.4.2にパッチをあてる。
【0030】
先に述べたように、いくつかの実施例では、本発明はパーソナルコンピュータやワークステーションなどのプログラム可能なコンピュータシステム又は命令実行システム、または他のマイクロプロセッサによるプラットフォーム上で作動するコンピュータプログラムコードによって実行される。図6はこのようにして本発明を実行しているコンピュータシステムのさらなる詳細を示す。システムバス601は主な構成要素を相互接続する。システムは、このシステムのための中央演算処理装置(CPU)として機能するマイクロプロセッサ602によって制御される。システムメモリ605は典型的に、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)などの多数の種類のメモリやメモリ領域に分けられる。システムメモリはまた、基本入出力システム(BIOS)を有してもよい。複数の一般的な入出力(I/O)アダプタ又は装置606が存在する。分かりやすくするために、3つのみを図示している。これらは、固定ディスクドライブ607、ディスケットドライブ608、ネットワーク610、及びディスプレイ609を含む種々の装置に接続している。本発明の機能を実行するコンピュータプログラムコード命令は、固定ディスク607に記憶されている。システムが作動している時、命令は部分的にメモリ605にロードされ、マイクロプロセッサ602によって実行される。入出力装置のひとつは、随意に、インターネットとすることができるネットワーク610への接続のためのネットワークアダプタまたはモデムである。図6のシステムは例示的な一例としての意味を持つだけであることに気付くべきである。多くの種類の汎用コンピュータシステムが入手可能で、使用することができる。
【0031】
本発明の要素は、(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)コンピュータプログラムコードとしてハードウェア及び/又はソフトウェアにおいて具体化されてもよい。さらに、本発明は、図6に示すような命令実行システムによって使用される、又はこのシステムと関連して使用される媒体に組み込まれた、コンピュータ使用可能な又はコンピュータ可読のプログラムコードを有するコンピュータ使用可能な又はコンピュータ可読の記憶媒体上のコンピュータプログラム製品の形を取ってもよい。このような媒体が図6に図式的に示されていて、ディスケットドライブを表している。コンピュータ使用可能な又はコンピュータ可読の媒体は、命令実行システムによって使用される、又はこのシステムと関連して使用されるプログラムを有する、記憶する、通信する、または伝送できる任意の媒体とすることができる。コンピュータ使用可能な又はコンピュータ可読の媒体は、例えば、電子システム、磁気システム、光システム、電磁気システム、赤外線システム、又は半導体システムである。媒体はまた単に、コンピュータプログラム製品がインターネットなどのネットワークを通じて「ダウンロードされる」場合に検索される情報のストリームであってもよい。コンピュータ使用可能な又はコンピュータ可読の媒体は紙であってもよいし、プログラムが印刷される他の適切な媒体であってもよいことに注目すべきである。
【0032】
この明細書に述べられた特徴を実行する差分パッチ形式のソースコードはwww.redhat.com/〜mingo/TUX/において、この出願の出願日現在で公的に入手可能である。本発明を実現するソフトウェアシステムのための完全なソースコードも、この出願の譲受人であるレッド・ハット・インコーポレイティッドからこの出願の出願日現在、取得可能である。上記インターネットアドレスにあるソースコードは、インターネット上において、また本出願の譲受人であるレッド・ハット・インコーポレイティッドなどのインターネットサポートを提供する会社から取得可能なオープンソースオペレーティングシステムであるリナックスオペレーティングシステムのバージョンにパッチをあてるためのものである。このコードは、公知のいわゆる「ac4」パッチによって既にパッチされたリナックスオペレーティングシステムのバージョン2.4.5にパッチをあてるためのものである。
【0033】
リナックスのバージョン2.4.5は、いろいろある中でも特に、www.kernel.org/pub/linux/kernel/v2.4/linux−2.4.5.tar.gz.で入手可能である。上記公知のac4パッチは、いろいろある中でも特に、www.kernel.org/pub/linux/kernel/people/alan/2.4/patch−2.4.5−ac4.gz.で入手可能である。
【0034】
発明の特定の実施例がここに述べられている。コンピュータ技術の当業者なら、本発明が他の環境の中では他のアプリケーションを有することを速やかに認識するであろう。事実、多くの実施例と実施が可能である。本発明の請求項は、本発明の範囲を上述の特定の実施例に限定することを意図したものでは決してない。
ソースコード例
【図面の簡単な説明】
【図1】本発明の実施例を実行するソフトウェアのいくつかの特徴を示すブロック図である。
【図2】本発明の一つの実施例を実行するソフトウェアによって行われる方法を示すフローチャートである。
【図3】本発明の実施例を実行するソフトウェアによって行われる方法を示す別のフローチャートである。
【図4】本発明の実施例を実行するソフトウェアのいくつかの特徴を示すブロック図である。
【図5】本発明の一つの実施例を実行するソフトウェアによって行われる方法を示すフローチャートである。
【図6】本発明の実施例を実行しているコンピュータシステムのブロック図である。
Claims (20)
- アプリケーションプロトコル要求に応答する方法であって、
前記アプリケーションプロトコル要求を受信するステップと、
前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立する(201)ステップと、
前記アプリケーションプロトコル要求に関連してクライアントシステムから受信したデータを使用して、前記アプリケーションプロトコル要求に対応するカーネル要求構造を作成する(203)ステップと、
ユーザスペースのアプリケーションが実行を続行し、オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように、前記カーネル要求構造に従って前記ユーザスペース要求構造を更新する(204)ステップと、
前記アプリケーションプロトコル要求に応答するステップとを、備えたことを特徴とする方法。 - 請求項1に記載の方法であって、
前記アプリケーションプロトコル要求に応答した後、前記カーネル要求構造を削除するステップをさらに備えたことを特徴とする方法。 - 請求項1に記載の方法において、
前記アプリケーションプロトコル要求及び前記アプリケーションプロトコル要求に対する任意の応答は、ハイパーテキスト転送プロトコル(HTTP)に従ってフォーマットされることを特徴とする方法。 - 請求項2に記載の方法において、
前記アプリケーションプロトコル要求及び前記アプリケーションプロトコル要求に対する任意の応答は、ハイパーテキスト転送プロトコル(HTTP)に従ってフォーマットされることを特徴とする方法。 - 請求項1に記載の方法において、
前記アプリケーションプロトコル要求及び前記アプリケーションプロトコル要求に対する任意の応答は、ファイル転送プロトコル(FTP)に従ってフォーマットされることを特徴とする方法。 - 請求項2に記載の方法において、
前記アプリケーションプロトコル要求及び前記アプリケーションプロトコル要求に対する任意の応答は、ファイル転送プロトコル(FTP)に従ってフォーマットされることを特徴とする方法。 - カーネル及びユーザスペースを有するオペレーティングシステムを備えるサーバがアプリケーションプロトコル要求に応答可能とするコンピュータプログラムコードが内部に組み込まれたコンピュータプログラム製品であって、前記コンピュータプログラムコードは、
前記アプリケーションプロトコル要求を受信するための命令と、
前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立するための命令と、
前記アプリケーションプロトコル要求に関連してクライアントシステムから受信したデータを使用して、前記アプリケーションプロトコル要求に対応するカーネル要求構造を作成するための命令と、
前記ユーザスペースのアプリケーションが実行を続行し、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように前記カーネル要求構造に従って前記ユーザスペース要求構造を更新するための命令と、
前記アプリケーションプロトコル要求に応答するための命令と、
前記カーネル要求構造を削除するための命令とを、備えたことを特徴とするコンピュータプログラム製品。 - 請求項7に記載のコンピュータプログラム製品において、
前記コンピュータプログラムコードは、ハイパーテキスト転送プロトコル(HTTP)を実行するための命令をさらに備えたことを特徴とするコンピュータプログラム製品。 - 請求項7に記載のコンピュータプログラム製品において、
前記コンピュータプログラムコードは、ファイル転送プロトコル(FTP)を実行するための命令をさらに備えたことを特徴とするコンピュータプログラム製品。 - 請求項8に記載のコンピュータプログラム製品において、
前記コンピュータプログラムコードは、ファイル転送プロトコル(FTP)を実行するための命令をさらに備えたことを特徴とするコンピュータプログラム製品。 - カーネル及びユーザスペースを有するオペレーティングシステムを備え、アプリケーションプロトコル要求に応答するよう動作可能な装置であって、
前記アプリケーションプロトコル要求を受信する手段と、
前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立する手段と、
前記アプリケーションプロトコル要求に関連してクライアントシステムから受信したデータを使用して、前記アプリケーションプロトコル要求に対応するカーネル要求構造を作成する手段と、
前記ユーザスペースのアプリケーションが実行を続行し、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように前記カーネル要求構造に従って前記ユーザスペース要求構造を更新する手段と、
前記アプリケーションプロトコル要求に応答する手段と、
前記カーネル要求構造を削除する手段とを、備えたことを特徴とする装置。 - オペレーティングシステムを備え、アプリケーションプロトコル要求に応答するよう動作可能なサーバシステムであって、
前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立し保持するよう動作可能なユーザスペース(101)と、
前記アプリケーションプロトコル要求に関連してクライアントシステムから受信したデータを使用して、前記アプリケーションプロトコル要求に対応するカーネル要求構造を保持し、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように前記ユーザスペース要求構造を更新するよう動作可能な、前記ユーザスペースに接続されたオペレーティングシステムカーネル(100)とを、備えたことを特徴とするサーバシステム。 - 請求項12に記載のサーバシステムにおいて、前記オペレーティングシステムカーネルは、
少なくとも一つのプロトコルモジュール(103)と、
前記ユーザスペース及び前記少なくとも一つのプロトコルモジュールに動作可能に接続され、少なくとも部分的に前記オペレーティングシステムカーネルが前記カーネル要求構造を保持することを可能とするプロトコルサブシステム(102)とを、さらに備えたことを特徴とするサーバシステム。 - 請求項13に記載のサーバシステムにおいて、
前記少なくとも一つのプロトコルモジュールは、ハイパーテキスト転送プロトコル(HTTP)モジュールをさらに備えたことを特徴とするサーバシステム。 - 請求項13に記載のサーバシステムにおいて、
前記少なくとも一つのプロトコルモジュールは、ファイル転送プロトコル(FTP)モジュールをさらに備えたことを特徴とするサーバシステム。 - 請求項14に記載のサーバシステムにおいて、
前記少なくとも一つのプロトコルモジュールは、ファイル転送プロトコル(FTP)モジュールをさらに備えたことを特徴とするサーバシステム。 - カーネル及びユーザスペースを有するオペレーティングシステムを備えた通信プロトコルサーバとして動作可能であって、アプリケーションプロトコル要求に対して、
前記アプリケーションプロトコル要求を受信するステップと、
前記アプリケーションプロトコル要求に対応するユーザスペース要求構造を確立するステップと、
前記アプリケーションプロトコル要求に関連してクライアントシステムから受信したデータを使用して、前記アプリケーションプロトコル要求に対応するカーネル要求構造を作成するステップと、
前記ユーザスペースのアプリケーションが実行を続行し、前記オペレーティングシステムがコンテキストを切替えることなく前記アプリケーションプロトコル要求に応答できるように前記カーネル要求構造に従って前記ユーザスペース要求構造を更新するステップと、
前記アプリケーションプロトコル要求に応答するステップとを、行うことによって応答するよう動作可能である命令実行システム。 - 請求項17に記載の命令実行システムであって、
さらにハイパーテキスト転送プロトコル(HTTP)サーバとして動作可能であることを特徴とする命令実行システム。 - 請求項17に記載の命令実行システムであって、
さらにファイル転送プロトコル(FTP)サーバとして動作可能であることを特徴とする命令実行システム。 - 請求項17に記載の命令実行システムであって、
さらにハイパーテキスト転送プロトコル(HTTP)サーバ及びファイル転送プロトコル(FTP)サーバとして動作可能であることを特徴とする命令実行システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22751000P | 2000-08-24 | 2000-08-24 | |
PCT/US2001/041845 WO2002017597A1 (en) | 2000-08-24 | 2001-08-23 | Method and apparatus for handling communication requests at a server without context switching |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007270596A Division JP4778493B2 (ja) | 2000-08-24 | 2007-10-17 | コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004507825A true JP2004507825A (ja) | 2004-03-11 |
Family
ID=22853373
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002521695A Expired - Fee Related JP4317361B2 (ja) | 2000-08-24 | 2001-08-23 | 原子ファイル検索のための方法及び装置 |
JP2002522164A Pending JP2004507825A (ja) | 2000-08-24 | 2001-08-23 | コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 |
JP2007270596A Expired - Lifetime JP4778493B2 (ja) | 2000-08-24 | 2007-10-17 | コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002521695A Expired - Fee Related JP4317361B2 (ja) | 2000-08-24 | 2001-08-23 | 原子ファイル検索のための方法及び装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007270596A Expired - Lifetime JP4778493B2 (ja) | 2000-08-24 | 2007-10-17 | コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 |
Country Status (8)
Country | Link |
---|---|
US (4) | US6988142B2 (ja) |
EP (2) | EP1312195B1 (ja) |
JP (3) | JP4317361B2 (ja) |
AT (2) | ATE459927T1 (ja) |
AU (2) | AU2001287203A1 (ja) |
DE (2) | DE60108884T2 (ja) |
TW (2) | TW517190B (ja) |
WO (2) | WO2002017070A2 (ja) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6988142B2 (en) * | 2000-08-24 | 2006-01-17 | Red Hat, Inc. | Method and apparatus for handling communication requests at a server without context switching |
GB2378270B (en) * | 2001-07-30 | 2005-04-20 | Ibm | Method and apparatus for data transfer across a network |
DE10151115A1 (de) * | 2001-10-15 | 2003-05-08 | Siemens Ag | Verfahren zum Bedienen und zum Beobachten von Feldgeräten |
US7246233B2 (en) * | 2001-12-05 | 2007-07-17 | International Business Machines Corporation | Policy-driven kernel-based security implementation |
US20030105957A1 (en) * | 2001-12-05 | 2003-06-05 | International Business Machines Corporation | Kernel-based security implementation |
CN100378840C (zh) * | 2002-05-10 | 2008-04-02 | 松下电器产业株式会社 | 制造多层光信息记录媒体的方法和设备 |
US7417987B2 (en) * | 2002-06-04 | 2008-08-26 | Lucent Technologies Inc. | Distribution of forwarding information in a network node |
US7458018B2 (en) * | 2002-06-27 | 2008-11-25 | Microsoft Corporation | System and method for obtaining and using namespace related information for opening XML documents |
US7343301B1 (en) | 2002-08-30 | 2008-03-11 | Signiant, Inc. | Method and apparatus for notification of data transfer |
US7152108B1 (en) | 2002-08-30 | 2006-12-19 | Signiant Inc. | Data transfer system and method with secure mapping of local system access rights to global identities |
US7155571B2 (en) * | 2002-09-30 | 2006-12-26 | International Business Machines Corporation | N-source in-kernel cache for high performance in computer operating systems |
US7448049B1 (en) | 2002-10-18 | 2008-11-04 | Crossroads Systems, Inc. | System and method of supporting kernel functionality |
US20040167961A1 (en) * | 2003-02-26 | 2004-08-26 | Microsoft Corporation | Fragment response cache |
US20040236824A1 (en) * | 2003-05-23 | 2004-11-25 | Millington Bradley D. | Post-cache substitution |
US7076500B2 (en) * | 2003-06-30 | 2006-07-11 | David Gallant | Selective file caching method |
US7949682B2 (en) * | 2003-11-05 | 2011-05-24 | Novell, Inc. | Method for providing a flat view of a hierarchical namespace without requiring unique leaf names |
US7349926B2 (en) * | 2004-03-30 | 2008-03-25 | International Business Machines Corporation | Atomic renaming and moving of data files while permitting lock-free look-ups |
US7683904B2 (en) * | 2004-05-17 | 2010-03-23 | Pixar | Manual component asset change isolation methods and apparatus |
GB2415797B (en) * | 2004-06-24 | 2009-02-25 | Symbian Software Ltd | A method for improving the performance of a file system in a computer device |
US7526557B2 (en) * | 2004-06-30 | 2009-04-28 | Signiant, Inc. | System and method for transferring data in high latency firewalled networks |
US7721298B2 (en) * | 2004-12-03 | 2010-05-18 | Microsoft Corporation | Operating system performance |
US8370317B2 (en) * | 2005-09-22 | 2013-02-05 | Microsoft Corporation | Synchronizing shared resources in a collection |
US20070078852A1 (en) * | 2005-10-04 | 2007-04-05 | Microsoft Corporation | Synchronizing shared resources in a collection |
US20070101061A1 (en) * | 2005-10-27 | 2007-05-03 | Guruprasad Baskaran | Customized content loading mechanism for portions of a web page in real time environments |
US8195640B2 (en) | 2006-06-16 | 2012-06-05 | Microsoft Corporation | Online service for program lookup |
US9860274B2 (en) | 2006-09-13 | 2018-01-02 | Sophos Limited | Policy management |
TW200826571A (en) * | 2006-12-08 | 2008-06-16 | Univ Nat Chiao Tung | Identification and management system and method applicable to a point-to-point gateway |
US7783677B2 (en) * | 2007-03-30 | 2010-08-24 | Microsoft Corporation | Tracking file system namespace changes during transactions |
US20090006179A1 (en) * | 2007-06-26 | 2009-01-01 | Ebay Inc. | Economic optimization for product search relevancy |
US8402151B2 (en) * | 2007-12-07 | 2013-03-19 | Roche Diagnostics Operations, Inc. | Dynamic communication stack |
JP4479930B2 (ja) * | 2007-12-21 | 2010-06-09 | 日本電気株式会社 | ノードシステム、サーバ切換え方法、サーバ装置、データ引き継ぎ方法、およびプログラム |
TW200933398A (en) * | 2008-01-28 | 2009-08-01 | Inventec Corp | Method of accessing files with XML documents of Windows formation under Linux |
US8624898B1 (en) | 2009-03-09 | 2014-01-07 | Pixar | Typed dependency graphs |
US8930475B1 (en) | 2012-03-30 | 2015-01-06 | Signiant Inc. | Systems and methods for secure cloud-based media file sharing |
CN102663067B (zh) * | 2012-03-31 | 2013-09-25 | 中标软件有限公司 | 一种基于Linux操作系统终端的文件打开方法 |
US9692799B2 (en) | 2012-07-30 | 2017-06-27 | Signiant Inc. | System and method for sending and/or receiving digital content based on a delivery specification |
CN103123651B (zh) * | 2013-03-06 | 2016-01-20 | 广东欧珀移动通信有限公司 | 一种查看多个同类文件的方法、装置和移动设备 |
US9934067B2 (en) * | 2014-01-30 | 2018-04-03 | Vmware, Inc. | Synchronous user space function execution from a kernel context |
US9646091B2 (en) * | 2014-02-24 | 2017-05-09 | Futurewei Technologies, Inc. | File joining on back end device |
US10248989B2 (en) * | 2015-11-20 | 2019-04-02 | Cvs Pharmacy, Inc. | Digital order tracking |
US10223271B2 (en) * | 2017-03-31 | 2019-03-05 | Intel Corporation | Apparatus, computer program product, and method to perform cache operations in a solid state drive |
US10885213B2 (en) | 2017-09-12 | 2021-01-05 | Sophos Limited | Secure firewall configurations |
US10735516B1 (en) | 2019-02-15 | 2020-08-04 | Signiant Inc. | Cloud-based authority to enhance point-to-point data transfer with machine learning |
US11044348B1 (en) * | 2020-11-05 | 2021-06-22 | Atlassian Pty Ltd | System, method, and computer program product for improved embedded application data management |
US11811668B2 (en) | 2021-08-19 | 2023-11-07 | Bank Of America Corporation | System for implementing disposition bias for validating network traffic from upstream applications |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668010A (ja) * | 1992-08-17 | 1994-03-11 | Nippon Telegr & Teleph Corp <Ntt> | 分散キャッシュ管理システム |
JPH09223027A (ja) * | 1996-01-31 | 1997-08-26 | Hewlett Packard Co <Hp> | メッセージ通信装置 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU649455B2 (en) * | 1990-07-11 | 1994-05-26 | American Telephone And Telegraph Company | Distributed computing system |
US5515538A (en) | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
US6098112A (en) * | 1995-10-19 | 2000-08-01 | Hewlett-Packard Company | Streams function registering |
US5948062A (en) * | 1995-10-27 | 1999-09-07 | Emc Corporation | Network file server using a cached disk array storing a network file directory including file locking information and data mover computers each having file system software for shared read-write file access |
US5781550A (en) * | 1996-02-02 | 1998-07-14 | Digital Equipment Corporation | Transparent and secure network gateway |
US6179489B1 (en) * | 1997-04-04 | 2001-01-30 | Texas Instruments Incorporated | Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto |
US5832513A (en) | 1996-06-04 | 1998-11-03 | Symantec Corporation | Detecting significant file system alterations during execution of a storage media software utility |
US5832515A (en) * | 1996-09-12 | 1998-11-03 | Veritas Software | Log device layered transparently within a filesystem paradigm |
US6034963A (en) * | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US6011803A (en) * | 1997-01-13 | 2000-01-04 | Lucent Technologies Inc. | Distributed-protocol server |
US5872963A (en) | 1997-02-18 | 1999-02-16 | Silicon Graphics, Inc. | Resumption of preempted non-privileged threads with no kernel intervention |
US5835914A (en) * | 1997-02-18 | 1998-11-10 | Wall Data Incorporated | Method for preserving and reusing software objects associated with web pages |
US5946458A (en) * | 1997-03-24 | 1999-08-31 | Xerox Corporation | Network printing system for responding to remote print-related requests |
US6209036B1 (en) * | 1997-06-06 | 2001-03-27 | International Business Machines Corporation | Management of and access to information and other material via the world wide web in an LDAP environment |
US6256712B1 (en) * | 1997-08-01 | 2001-07-03 | International Business Machines Corporation | Scaleable method for maintaining and making consistent updates to caches |
IL121815A (en) * | 1997-09-22 | 2000-09-28 | Security 7 Software Ltd | Method and system for the identification and the suppression of executable objects |
US5974430A (en) * | 1997-09-30 | 1999-10-26 | Unisys Corp. | Method for dynamically embedding objects stored in a web server within HTML for display by a web browser |
US6757746B2 (en) * | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US6427173B1 (en) * | 1997-10-14 | 2002-07-30 | Alacritech, Inc. | Intelligent network interfaced device and system for accelerated communication |
US6389479B1 (en) * | 1997-10-14 | 2002-05-14 | Alacritech, Inc. | Intelligent network interface device and system for accelerated communication |
US6658480B2 (en) * | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US6246683B1 (en) * | 1998-05-01 | 2001-06-12 | 3Com Corporation | Receive processing with network protocol bypass |
US6279001B1 (en) * | 1998-05-29 | 2001-08-21 | Webspective Software, Inc. | Web service |
US6625650B2 (en) * | 1998-06-27 | 2003-09-23 | Intel Corporation | System for multi-layer broadband provisioning in computer networks |
US6022214A (en) * | 1998-11-17 | 2000-02-08 | Hirsch; James A. | Intraoral illumination device and method of using the same |
US6449614B1 (en) * | 1999-03-25 | 2002-09-10 | International Business Machines Corporation | Interface system and method for asynchronously updating a share resource with locking facility |
US6801529B1 (en) * | 1999-06-08 | 2004-10-05 | Amx Corporation | Method and system for sending messages to multiple locations in a control system |
US6615088B1 (en) * | 1999-06-09 | 2003-09-02 | Amx Corporation | System and method of device interface configuration for a control system |
US7174506B1 (en) * | 1999-11-05 | 2007-02-06 | International Business Machines Corporation | Method and system for producing dynamic web pages |
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US6405252B1 (en) * | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | Integrated point of presence server network |
US6606525B1 (en) * | 1999-12-27 | 2003-08-12 | Motorola, Inc. | System and method of merging static data in web pages |
US6363357B1 (en) * | 1999-12-29 | 2002-03-26 | Pitney Bowes, Inc. | Method and apparatus for providing authorization to make multiple copies of copyright protected products purchased in an online commercial transaction |
US7096418B1 (en) * | 2000-02-02 | 2006-08-22 | Persistence Software, Inc. | Dynamic web page cache |
US6934761B1 (en) * | 2000-02-25 | 2005-08-23 | Sun Microsystems, Inc. | User level web server cache control of in-kernel http cache |
US6662215B1 (en) * | 2000-07-10 | 2003-12-09 | I Novation Inc. | System and method for content optimization |
US6591266B1 (en) * | 2000-07-14 | 2003-07-08 | Nec Corporation | System and method for intelligent caching and refresh of dynamically generated and static web content |
US6826594B1 (en) * | 2000-07-15 | 2004-11-30 | Commission Junction | Method and system for remote content management of a designated portion of a web page |
US6678746B1 (en) * | 2000-08-01 | 2004-01-13 | Hewlett-Packard Development Company, L.P. | Processing network packets |
US6751635B1 (en) * | 2000-08-18 | 2004-06-15 | Network Appliance, Inc. | File deletion and truncation using a zombie file space |
US6988142B2 (en) * | 2000-08-24 | 2006-01-17 | Red Hat, Inc. | Method and apparatus for handling communication requests at a server without context switching |
US6483840B1 (en) * | 2001-06-25 | 2002-11-19 | Lsi Logic Corporation | High speed TCP/IP stack in silicon |
-
2001
- 2001-08-22 US US09/934,658 patent/US6988142B2/en not_active Expired - Lifetime
- 2001-08-22 US US09/934,659 patent/US6886004B2/en not_active Expired - Lifetime
- 2001-08-22 US US09/934,738 patent/US8631092B2/en not_active Expired - Fee Related
- 2001-08-23 AU AU2001287203A patent/AU2001287203A1/en not_active Abandoned
- 2001-08-23 DE DE60108884T patent/DE60108884T2/de not_active Expired - Lifetime
- 2001-08-23 DE DE60141480T patent/DE60141480D1/de not_active Expired - Lifetime
- 2001-08-23 WO PCT/US2001/041844 patent/WO2002017070A2/en active Application Filing
- 2001-08-23 WO PCT/US2001/041845 patent/WO2002017597A1/en active IP Right Grant
- 2001-08-23 JP JP2002521695A patent/JP4317361B2/ja not_active Expired - Fee Related
- 2001-08-23 JP JP2002522164A patent/JP2004507825A/ja active Pending
- 2001-08-23 AT AT01966716T patent/ATE459927T1/de not_active IP Right Cessation
- 2001-08-23 AU AU2001287204A patent/AU2001287204A1/en not_active Abandoned
- 2001-08-23 EP EP01966717A patent/EP1312195B1/en not_active Expired - Lifetime
- 2001-08-23 EP EP01966716A patent/EP1358577B1/en not_active Expired - Lifetime
- 2001-08-23 AT AT01966717T patent/ATE289146T1/de not_active IP Right Cessation
- 2001-08-24 TW TW090120874A patent/TW517190B/zh not_active IP Right Cessation
- 2001-08-24 TW TW090120873A patent/TW535065B/zh not_active IP Right Cessation
-
2005
- 2005-02-09 US US11/054,461 patent/US7082424B2/en not_active Expired - Lifetime
-
2007
- 2007-10-17 JP JP2007270596A patent/JP4778493B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0668010A (ja) * | 1992-08-17 | 1994-03-11 | Nippon Telegr & Teleph Corp <Ntt> | 分散キャッシュ管理システム |
JPH09223027A (ja) * | 1996-01-31 | 1997-08-26 | Hewlett Packard Co <Hp> | メッセージ通信装置 |
Non-Patent Citations (3)
Title |
---|
JEFF TANNER: "CIFS-Common Internet File System", UNIX MAGAZINE UNIX MAGAZINE, vol. 第12巻, CSND199700131008, JP, ISSN: 0000839474 * |
TIMOTHY: "Answers From Planet TUX: Ingo Monlnar Responds", SLASHDOT.ORG, JPN5002031108, 21 July 2000 (2000-07-21), ISSN: 0000777460 * |
盛合敏、外2名: "マルチメディアコンピューティング(III) マルチメディア通信とネットワーク", 電子情報通信学会, vol. 第80巻、第7号, CSNG199901609001, 25 July 1997 (1997-07-25), JP, pages 740 - 745, ISSN: 0000777461 * |
Also Published As
Publication number | Publication date |
---|---|
US20050171981A1 (en) | 2005-08-04 |
US8631092B2 (en) | 2014-01-14 |
US7082424B2 (en) | 2006-07-25 |
EP1312195B1 (en) | 2005-02-09 |
US6988142B2 (en) | 2006-01-17 |
DE60141480D1 (de) | 2010-04-15 |
WO2002017070A2 (en) | 2002-02-28 |
US20020059330A1 (en) | 2002-05-16 |
EP1312195A1 (en) | 2003-05-21 |
JP2004507815A (ja) | 2004-03-11 |
ATE289146T1 (de) | 2005-02-15 |
US20020091868A1 (en) | 2002-07-11 |
TW535065B (en) | 2003-06-01 |
WO2002017070A3 (en) | 2003-04-24 |
US6886004B2 (en) | 2005-04-26 |
US20020049834A1 (en) | 2002-04-25 |
AU2001287204A1 (en) | 2002-03-04 |
JP2008102935A (ja) | 2008-05-01 |
JP4778493B2 (ja) | 2011-09-21 |
EP1358577B1 (en) | 2010-03-03 |
EP1358577A2 (en) | 2003-11-05 |
TW517190B (en) | 2003-01-11 |
DE60108884D1 (de) | 2005-03-17 |
WO2002017597A1 (en) | 2002-02-28 |
AU2001287203A1 (en) | 2002-03-04 |
ATE459927T1 (de) | 2010-03-15 |
JP4317361B2 (ja) | 2009-08-19 |
DE60108884T2 (de) | 2006-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4778493B2 (ja) | コンテキストを切替えることなくサーバで通信要求を処理する方法及び装置 | |
US6401099B1 (en) | Asynchronous binding of named objects | |
US6460058B2 (en) | Object-oriented framework for hyperlink navigation | |
US7529778B1 (en) | System and method for providing access to consistent point-in-time file versions | |
US5987517A (en) | System having a library of protocol independent reentrant network interface functions for providing common calling interface for communication and application protocols | |
KR101109340B1 (ko) | 프로토콜과 무관한 클라이언트측 파일 캐싱 방법, 컴퓨터 프로그램 제조품, 및 컴퓨터 시스템 | |
KR100260682B1 (ko) | 애플릿실행방법및컴퓨터워크스테이션 | |
US5991760A (en) | Method and apparatus for modifying copies of remotely stored documents using a web browser | |
US20060168118A1 (en) | Method and system for differential distributed data file storage, management and access | |
US20050149528A1 (en) | Uniform name space referrals with location independence | |
US20020095522A1 (en) | System and method for automatic provision of an application | |
US20050044541A1 (en) | Automatic software downloading from a computer network | |
US20080005133A1 (en) | Merging file system directories | |
US6856985B1 (en) | Server based control of robotic libraries | |
US20080065698A1 (en) | Method and apparatus for emulating alternate data streams across heterogeneous file systems | |
US20040167961A1 (en) | Fragment response cache | |
US20060074979A1 (en) | Static sample data switch | |
US10789014B2 (en) | Preventing cross-volume file moves in an overlay optimizer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040830 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070417 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070717 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070725 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070817 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070824 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070918 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070926 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20071211 |