JPH1196095A - アプリケーション・インタフェースに持続性を提供するための装置および方法 - Google Patents

アプリケーション・インタフェースに持続性を提供するための装置および方法

Info

Publication number
JPH1196095A
JPH1196095A JP10198347A JP19834798A JPH1196095A JP H1196095 A JPH1196095 A JP H1196095A JP 10198347 A JP10198347 A JP 10198347A JP 19834798 A JP19834798 A JP 19834798A JP H1196095 A JPH1196095 A JP H1196095A
Authority
JP
Japan
Prior art keywords
persistent
browser
program
cgi
request
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.)
Granted
Application number
JP10198347A
Other languages
English (en)
Other versions
JP4233635B2 (ja
Inventor
Kureigu Ratsupu Uiriamu
ウィリアム・クレイグ・ラップ
Jiyoi Shiyurutsu Kurisuchian
クリスチアン・ジョイ・シュルツ
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1196095A publication Critical patent/JPH1196095A/ja
Application granted granted Critical
Publication of JP4233635B2 publication Critical patent/JP4233635B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • 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]

Abstract

(57)【要約】 【課題】 現在知られているCGIモデルの利点を取り
入れるが、関連する欠点の多くを克服するようなCGI
プログラム拡張を提供するために使用する持続CGIモ
デルを提供すること。 【解決手段】 持続CGIプログラムはウェブ・サーバ
のサブプロセスとして実行される。持続CGIプログラ
ムは、標準入力および環境変数によってウェブ・ブラウ
ザから入力を受信し、既存のCGIプログラムと同様に
標準出力によって出力を提供する。しかし、既存のCG
Iプログラムとは異なり、持続CGIプログラムは、ウ
ェブ・サーバ・アプリケーションによってウェブ・ブラ
ウザに出力が送信された後で自動的に終了することはな
い。むしろ、持続CGIプログラムは、活動状態のまま
になり、同じウェブ・ブラウザからの追加入力を待つ。
このため、トランザクションは開いたままになり、した
がって、ウェブ・ブラウザ要求同士の間に進行中のトラ
ンザクションに関する状態データを維持することができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にネットワー
ク化したコンピュータ・システム用のプログラミング・
インタフェースに関し、より具体的にはクライアント/
サーバ環境でのトランザクションに関する。
【0002】
【従来の技術】コンピュータ時代の始まりとして、19
48年のEDVACコンピュータ・システムの開発が挙
げられる場合が多い。そのとき以来、コンピュータ・シ
ステムは非常に高性能な装置へと発展し、多種多様な設
定で見ることができる。通常、コンピュータ・システム
は、ハードウェア(たとえば、半導体、回路板など)と
ソフトウェア(たとえば、コンピュータ・プログラム)
の組合せを含む。半導体処理とコンピュータ・アーキテ
クチャの進歩によってコンピュータ・ハードウェアのパ
フォーマンスがより高いものになるにつれ、ハードウェ
アのより高いパフォーマンスを利用するようにより高性
能のコンピュータ・システムが発展し、その結果、現在
のコンピュータ・システムは数年前のものよりかなり強
力なものになっている。
【0003】通常、コンピュータ・システムは、コンピ
ュータの基本機能を制御するオペレーティング・システ
ム・ソフトウェアと、所望のタスクを実行するためにオ
ペレーティング・システムの制御下で動作する1つまた
は複数のソフトウェア・アプリケーションとを含む。た
とえば、典型的なIBMパーソナル・コンピュータはO
S/2オペレーティング・システムを実行することがで
き、OS/2オペレーティング・システムの制御下でユ
ーザはワード・プロセッサなどのアプリケーション・プ
ログラムを実行することができる。コンピュータ・シス
テムの機能が増加するにつれて、ハイ・パフォーマンス
・コンピュータ・システム用に設計されたソフトウェア
・アプリケーションは非常に強力なものになった。
【0004】その他の技術上の変化も、コンピュータの
使い方に大いに影響している。たとえば、コンピュータ
が広範囲にわたって急増したため、コンピュータ同士が
互いに通信できるようにするコンピュータ・ネットワー
クの開発が促進された。また、パーソナル・コンピュー
タ(PC)の導入により、コンピュータの能力や機能は
多数の人が利用しやすいものになった。パーソナル・コ
ンピュータ用のネットワークは、個々のユーザが互いに
通信できるようにするために開発されたものである。こ
のようにして、1企業内の多数の人がコンピュータ・シ
ステム上で動作するソフトウェア・アプリケーションと
同時に通信することができる。
【0005】近年、非常に人気が高くなったコンピュー
タ・ネットワークの1つは、インターネットである。イ
ンターネットは、最近のコンピュータおよびネットワー
クの急増に起因し、コンピュータ・システムからなる高
性能の世界的なネットワークへと発展した。インターネ
ットの重要な部分は、ひとまとめにして「ワールドワイ
ド・ウェブ」(WWW)を構成するウェブ・ページによ
って表示され、一緒にリンクされる所与の情報である。
個々のPC(すなわち、ワークステーション)に向かっ
ているユーザがWWWへのアクセスを希望する場合、通
常、ウェブ・ブラウザと呼ばれるソフトウェア・アプリ
ケーションを使用して、それを実行する(クライアント
とも呼ぶ)。ウェブ・ブラウザは、WWWを介してウェ
ブ・サーバと呼ばれるコンピュータへの接続を行い、ユ
ーザのワークステーション上に表示するためにウェブ・
サーバから情報を受信する。ユーザに対して表示される
情報は、HTML(Hypertext Markup Language)とい
う特殊言語によって構築されたページ単位に構成され
る。
【0006】インターネットの人気の拡大とともに、イ
ンターネットが売上げと効率を上昇させる新しい方法を
もたらすことを企業は認識している。潜在的な顧客が企
業のアプリケーション・ソフトウェアと直接対話して、
製品を購入し、他の同様の活動を完了することができれ
ば、取引は簡略化されるだろう。このため、顧客が受け
入れる見込みが高くなり、販売機会が増加する。WWW
は事業機会の創造には非常に成功したが、ネットワーク
上で事業を行う手段としてWWWを使用することは容易
ではない。
【0007】一般に、WWW上で様々なソフトウェア・
アプリケーションを使用して正常に取引を行うには、様
々なアプリケーションとそのアプリケーションをサポー
トするプラットフォームに必要なインタフェース要件に
関するかなり広範囲の知識が必要である。他の2つのプ
ログラム間またはプロセス環境間の媒介として機能しう
るインタフェース・プログラムを作成することが必要に
なる場合も多い。クライアント/サーバ環境で使用し、
広く採用されているインタフェース規格の1つは、CG
I(Common Gateway Interface)プログラミング・モデ
ルである。CGIプログラミング・モデルとは、WWW
上での通信およびトランザクション・サポートのインタ
フェースを提供するために使用する特定のプロトコルま
たは1組の規則である。CGIプログラムは、当業者に
は周知の実行可能プログラムである。通常、異なる各ソ
フトウェア・アプリケーションにアクセスするために、
異なるアクセス手順とプログラミングインタフェースを
備えた各種CGIプログラムが用意されている。1つの
CGIプログラムは、ウェブ・サーバ・アプリケーショ
ンの機能性を拡張し、そうすることによって、ウェブ・
ブラウザを使用するクライアントがCGIによりWWW
を介して様々なソフトウェア・アプリケーションにアク
セスできるようになる。
【0008】
【発明が解決しようとする課題】現在知られているCG
Iプログラミング・モデルは非常によくできているが、
現行のCGIプログラムによってトランザクションを行
うことがいくらか煩わしく望ましくないものになるよう
な、いくつかの重大な制限やある程度の処理上の制約事
項が存在する。たとえば、ブラウザが特定のCGIプロ
グラムに対する要求を行うたびに、その要求に対応する
ためにウェブ・サーバによって新しいCGIプロセスが
開始される。ウェブ・ブラウザからの要求はデータ・ス
トリームとしてCGIプロセスに送信され、CGIプロ
セスはそのデータ・ストリームを読み取って、その要求
を処理する。CGIプロセスがウェブ・ブラウザの要求
を処理し、要求された情報をウェブ・ブラウザに返した
後、CGIプロセスは終了する。次に、ウェブ・ブラウ
ザが他の要求を行うと、CGIプロセスの他のインスタ
ンスが開始される。この反復開始停止プロセスは相当な
量のシステム・オーバヘッドを必要とし、ウェブ・ブラ
ウザとCGIとの通信プロセスの効率がかなり悪くなる
傾向がある。
【0009】さらに、各ウェブ・ブラウザ要求の結果、
CGIプログラムの新しいインスタンスがインスタンス
化されるので、あるウェブ・ブラウザ要求から別の要求
に使用可能にする必要がある情報は、プロセス環境の外
部で管理または格納しなければならない。通常、これ
は、ディスクにデータを書き込んだり、ウェブ・サーバ
からのデータ・ストリームとしてウェブ・ブラウザにデ
ータを返すなどの比較的高率の悪い手段を使用すること
によって行われる。しかし、ウェブ・ブラウザが早い時
期に保留トランザクションを終了しなければならない場
合、ディスクにデータを書き込むことは問題である。決
して発生しそうもない今後の使用のために所与のデータ
を格納する場合がある。同じCGIプログラムによって
処理される複数の要求を所与のウェブ・ブラウザが繰り
返し提示する場合に特にこの点が当てはまる。しかも、
データベース更新トランザクションなど、ウェブ・ブラ
ウザが資源に何度もアクセスする必要がある所与のトラ
ンザクションは、複数のブラウザ要求にわたって維持す
ることができない。
【0010】最後に、ウェブ・ユーザ、プロバイダ、ウ
ェブ・サーバの数は急速に拡大し続けているので、ウェ
ブ・ブラウザがシステム・オーバヘッドを低減し、より
効率よくCGIプログラムと対話できることがますます
重要になる。WWW上のネットワーク・トラフィックの
急増が予測されることを考慮すると、現在知られている
CGIプログラム・モデルをサポートするソフトウェア
・アプリケーションは、大量のウェブ・ブラウザ要求を
サポートするために十分なシステム資源を備えていない
可能性がある。
【0011】ワールドワイド・ウェブ上でソフトウェア
・アプリケーションとウェブ・ブラウザとのトランザク
ション・サポートの方法を改良できるCGIメカニズム
がなければ、CGIによりインターネット・ユーザとソ
フトウェア・アプリケーションとの間で行われるトラン
ザクションは、非常に時間がかかり、過度に高価なもの
になる。さらに、貴重なシステム資源は時間がかかるオ
ーバヘッド・タスクで不必要に消費され、それにより、
システム全体の効率が低下する可能性がある。
【0012】
【課題を解決するための手段】本発明の好ましい実施例
によれば、現在知られているCGIモデルの利点を取り
入れるが、関連する欠点の多くを克服するようなCGI
プログラム拡張を提供するために、持続CGIモデルを
使用する。持続CGIプログラムはウェブ・サーバのサ
ブプロセスとして実行される。持続CGIプログラム
は、標準入力および環境変数によってウェブ・ブラウザ
から入力を受信し、既存のCGIプログラムと同様に標
準出力によって出力を提供する。しかし、既存のCGI
プログラムとは異なり、持続CGIプログラムは、ウェ
ブ・サーバ・アプリケーションによってウェブ・ブラウ
ザに出力が送信された後で自動的に終了することはな
い。むしろ、持続CGIプログラムは、活動状態のまま
になり、同じウェブ・ブラウザからの追加入力を待つ。
このため、トランザクションは開いたままになり、した
がって、ウェブ・ブラウザ要求同士の間に進行中のトラ
ンザクションに関する状態データを維持することができ
る。さらに、CGIプロセスは持続性であり、複数の要
求のために同じウェブ・ブラウザとの通信を維持するの
で、同じトランザクションのために同じウェブ・ブラウ
ザからの後続要求ごとに別々のCGIプロセスをインス
タンス化する必要がない。
【0013】
【発明の実施の形態】本発明は、WWWを介して通信
し、トランザクションを実行するためのCGIの使用に
関する。WWWトランザクション、CGI、そのアプリ
ケーションにあまり慣れていない人のために、以下の概
要の項では、本発明の好ましい実施例を理解するのに役
立つ多くの概念について説明する。WWWトランザクシ
ョンおよびCGIプログラミング技法に精通した人は、
概要の項を飛ばし、詳細な説明の項に直接移行しても構
わない。
【0014】1.概要 ウェブ・トランザクション ウェブ・ブラウザとウェブ・サーバ・アプリケーション
との対話により、トランザクションを実行するためのク
ライアント/サーバ環境が作られる。様々なコンピュー
タ・システム、プログラム、資源がWWW上に存在し、
ウェブ・ブラウザによってアクセスすることができる。
このような様々な資源によってトランザクションを実行
するために、ウェブ・ブラウザは、資源固有のアドレス
または識別子を使用することによって所望の資源を指定
することができる。このような資源固有のアドレスまた
は識別子は、多くの異なる実施態様を有する場合があ
る。WWW環境で使用する一般的な識別子の1つは、Un
iform Resource Identifier(URI)である。URI
は、Universal Document Identifier(UDI)、Unive
rsal Resource Identifier、Uniform Resource Locator
(URL)とも呼ばれている。ほとんどのサーバに関す
る限り、URIまたはURLは、WWW資源の位置を識
別するための単純にフォーマットされたテキスト・スト
リングである。
【0015】次に図2を参照すると、クライアント・ワ
ークステーション210上で動作する標準のウェブ・ブ
ラウザ212と、ウェブ・サーバ・コンピュータ・シス
テム220上で動作するウェブ・サーバ・アプリケーシ
ョン222との典型的なトランザクションは、接続部
(通信リンクまたは通信メカニズム)216上で行われ
れる。当然のことながら、クライアント・ワークステー
ション210は、ローカル・エリア・ネットワーク(L
AN)を介してあるいは他のタイプのコンピュータ・ネ
ットワークまたは他の相互接続を介して、他のコンピュ
ータ・システムに結合することができる。同様に、ウェ
ブ・サーバ・コンピュータ・システム220も他のコン
ピュータ・システムに結合することができる。クライア
ント・ワークステーション210は、ウェブ・ブラウザ
212を使用することによりWWWへのアクセスを可能
にすることができるコンピュータであれば、どのコンピ
ュータでもよい。これは、ハンドヘルド、ポータブル、
またはラップトップ・コンピュータ、標準のデスクトッ
プ・コンピュータ・システム、メインフレームに接続さ
れた非プログラム式ターミナルを含むだろう。
【0016】ウェブ・ブラウザ212は、クライアント
・ワークステーション210側のユーザが接続部216
により他のコンピュータと通信できるようにするため
の、クライアント・ワークステーション210上で動作
するソフトウェア・プログラムである。ウェブ・ブラウ
ザ212は、WWWによりデータの送受信が可能なもの
であれば、どのようなウェブ・ブラウザも含む。これ
は、IBMのWebExplorer、ネットスケープ・ナビゲー
タ、マイクロソフト・インターネット・エクスプロー
ラ、その他の現在存在するソフトウェア・アプリケーシ
ョン、またはWWWにより情報にアクセスしたり情報を
処理するために今後開発される可能性のあるソフトウェ
ア・アプリケーションなどの市販のソフトウェア・アプ
リケーションを含む。接続部216の好ましい実施例
は、インターネットまたはイントラネットへの接続をサ
ポートできる適当な通信リンクまたは通信メカニズムで
あり、現在知られているかまたは今後開発されるかにか
かわらず、配線による接続部、モデムまたは高速T1回
線による電話アクセス、赤外線その他のワイヤレス通
信、コンピュータ・ネットワーク通信(ワイヤによるか
ワイヤレスかに関わらない)、コンピュータ間のその他
の適当な接続部を含む。
【0017】クライアント・ワークステーション210
とウェブ・サーバ・コンピュータ・システム220は、
物理的または論理的に同じコンピュータ・システムにす
ることができることに留意されたい。通常、ウェブ・ブ
ラウザ212は、クライアント・ワークステーション2
10上でHTMLデータのページを表示する。テキスト
・データ、グラフィカル・データ(たとえば、Graphic
Image Format(GIF)ファイル)、オーディオ・デー
タ、サウンド・ファイル(たとえば、WAVファイ
ル)、Javaアプレット(実行可能コード)、Multip
urpose Internet Mail Extensions(MIME)データ
と呼ばれる専門データ形式(上記その他のデータ・タイ
プの組合せを含む可能性がある)を含む、他のタイプの
データもウェブ・ブラウザ212に送信することができ
る。
【0018】ウェブ・サーバ・アプリケーション222
は、クライアント・ワークステーション210側のユー
ザがウェブ・サーバ220によって制御される情報にア
クセスできるようにするための、ウェブ・サーバ・コン
ピュータ・システム220上で動作するソフトウェア・
プログラムである。本発明によるウェブ・サーバ・アプ
リケーション222の好ましい一実施例は、IBMのIn
ternet Connection Serverなどの市販のウェブ・サーバ
・アプリケーションである。他のウェブ・サーバ・アプ
リケーションも本発明と互換性のあるものである。通
常、ウェブ・サーバ・コンピュータ・システム220
は、クライアント・ワークステーション210側のユー
ザによって取られるアクションを反映するウェブ・ブラ
ウザ212による要求に応答して、HTMLデータのペ
ージをウェブ・ブラウザ212に出力する。さらに、上
記のように、ウェブ・サーバ・コンピュータ・システム
220は、他のタイプのデータもウェブ・ブラウザ21
2に出力することができる。出力データは、静的HTM
Lページ(ページの内容が変化しないことを意味する)
を含む場合もあれば、動的に決定し、出力データに挿入
しなければならないようなデータを含む場合もある。ウ
ェブ・サーバ・アプリケーション222は、それがウェ
ブ・サーバ・コンピュータ・システム220内のメモリ
からまたは他のコンピュータ・システムから取り出した
部分から出力データ(たとえば、HTMLページ)を動
的に構築する場合もあれば、以前構築したかまたは他の
コンピュータが構築したページを通過するだけの場合も
ある。
【0019】通常、ウェブ・ブラウザ212は、接続部
216によりウェブ・サーバ・コンピュータ・システム
220に入力(たとえば、URI、URL、HTMLペ
ージ)を送信することにより、ウェブ・サーバ・アプリ
ケーション222と対話する。この入力は、通常、HT
TPを使用して送信される。ウェブ・サーバ・アプリケ
ーション222を実行するウェブ・サーバ・コンピュー
タ・システム220は、ウェブ・ブラウザ212から入
力を受信し、それに応答して、ブラウザ212にデータ
(たとえば、HTMLページ)を出力する。ウェブ・サ
ーバ・コンピュータ・システム220は、所望の機能を
実行するためにCGIプログラムまたはモジュールを含
む、他の多数のソフトウェア構成要素を有する場合もあ
る。上記のプロセスはインターネットによる基本トラン
ザクションを示すものであり、本発明の概念を理解する
ために単純な状況を示すため、本発明の範囲内にある多
くの詳細および変形についてはここに開示しないことが
分かるだろう。
【0020】ウェブ・ページ ウェブ・ページは、主に、クライアント・ワークステー
ション210のモニタ上に表示する予定の視覚データで
ある。一般にウェブ・ページはHTMLで作成される。
ウェブ・サーバ・コンピュータ・システム220上で動
作するウェブ・サーバ・アプリケーション222がウェ
ブ・ページ要求を受信すると、そのアプリケーション
は、HTMLでウェブ・ページを構築するかまたは事前
構築したウェブ・ページを含むファイルを取り出して、
それを接続部216により要求側のウェブ・ブラウザ2
12に送出することになる。ウェブ・ブラウザ212
は、HTMLを理解し、それを解釈して、クライアント
・ワークステーション210のモニタ上にウェブ・ペー
ジを出力する。このウェブ・ページは、ユーザの画面上
に表示されるが、テキスト、グラフィック、リンク(他
のウェブ・ページのURIまたはURLアドレスであ
る)を含む場合がある。このような他のウェブ・ページ
(すなわち、リンクによって表されるもの)は同じウェ
ブ・サーバ上にある場合もあれば、他のウェブ・サーバ
上にある場合もある。ユーザは、マウスまたは他のポイ
ンティング・デバイスを使用してこのようなリンクをク
リックすることにより、このような他のウェブ・ページ
を取り出すことができる。ウェブ・ページからなるこの
ようなシステム全体が、世界中の他のウェブ・サーバ上
の他のウェブ・ページへのリンクとともに、ひとまとめ
になって「ワールドワイド・ウェブ」(WWW)を構成
する。
【0021】マルチスレッド環境 アプリケーション・ソフトウェア・プログラムのパフォ
ーマンスを改善した方法の1つは、「マルチスレッド」
プログラミング概念を使用することである。マルチスレ
ッド・コンピュータ・プログラミング環境では、通常、
単一のアプリケーション・プログラムまたはプロセスが
複数のサブプロセスを有することになり、そのそれぞれ
を別々の「スレッド」として実行することができる。こ
れは、アプリケーション・プログラムがいくつかのより
小さいサブプロセス・タスクを有し、そのそれぞれを完
了まで個別に処理できることを意味する。プロセスが複
数のスレッドを有する場合、そのプロセスはマルチスレ
ッド・プロセスであるという。一般に、同じタスクを実
施するために複数のプロセスを管理する場合とは対照的
に、1つのマルチスレッド・プロセスを管理する方がシ
ステムレベルのオーバヘッドは小さくなる。これは、独
立プロセスとは異なり、同じプロセスからの複数のスレ
ッドは同じメモリ空間内に共存し、それにより、メモリ
管理タスクを低減するからである。したがって、マルチ
スレッド・オペレーティング・システム環境でスレッド
を使用することにより、所与の程度の処理効率を得るこ
とができる。また、1つのプロセスの様々な機能を並列
処理可能な複数のプロセスに区分することにより、より
迅速に独立タスクを完了できる場合が多い。
【0022】マルチスレッド・オペレーティング・シス
テムは、マルチスレッド・プロセスのマルチスレッド機
能をサポートし、指定のシーケンスで、またはすべての
スレッドが同じアドレス空間を共用する場合に優先順位
方式に従って、複数の異なるスレッド間で実際の処理活
動を交互に行う。通常、このような様々なマルチスレッ
ド・プロセスは、「サーバ」の指示の下で実行される。
「サーバ」という用語は、一般に、適切なプロセッサ・
システムまたはサーバ・ホスト上で実行され、同じかま
たは他のコンピュータ・システム上で実行することがで
きる他のコンピュータ・プログラムによって行われるサ
ービス要求を実行するようなコンピュータ・プログラム
を指す場合に使用する。
【0023】多くの実施態様では、サーバは指定のコン
ピュータ上で実行され、通信ネットワークにより他のコ
ンピュータ上で実行される他のプロセスからサービス要
求を受信する。このような他のコンピュータ・プロセス
は、通常、「クライアント」と呼ばれる。典型的なクラ
イアントは、保険会社データベース・レコード管理プロ
グラムなどのアプリケーション・ソフトウェア・プログ
ラムを含むことができる。クライアントとサーバが同じ
コンピュータ・システム上または地理的に遠隔の複数の
コンピュータ・システム上で動作可能であることは、重
要なことである。同様に、単一コンピュータ・システム
は、サーバおよびクライアントの様々な組合せをサポー
トすることができる。
【0024】マルチスレッド・サーバ・プロセスを初期
設定すると、通常、サーバ・プロセスで使用するために
「スレッド・プール」が割り振られる。この割振りプロ
セスは、クライアント・プログラムまたはプロセスによ
って使用可能になる所与の数のスレッドを確立する。次
に、クライアント・プロセスがサーバ・プロセスに対し
て要求を行うと、その要求を処理するために必要な数の
スレッドがスレッド・プールから割り振られる。スレッ
ド・プール内のスレッドの割振り、割当て、制御は、ス
レッド・マネージャによって管理される。通常、スレッ
ド・マネージャは、無作為にスレッドを割り当てるが、
所与の状況では、様々なクライアント・プロセスの要求
に応じて、特定のクライアントに特別な専用スレッドを
提供する場合もある。
【0025】クライアント要求が完了まで実行された
後、通常、その要求が処理されたスレッドは、他のクラ
イアント・プロセスによって使用される可能性に備え
て、スレッド・プールに返される。このようなスレッド
は「再使用可能」スレッドと呼ばれる。というのは、異
なる時期に異なるクライアント・プロセスによって同じ
スレッドを使用できるからである。再使用可能スレッド
の目的は、スレッドの作成、削除、その他の管理の際に
発生するシステム・オーバヘッドを低減することであ
る。これは、限定されたコンピュータ・システム資源の
より効率のよい使用を促進する。任意の時点でスレッド
に対する要求がスレッドの可用性を上回る場合、所与の
限度内で、スレッド・マネージャは追加のスレッドを必
要なだけ動的に割り振ることができる。
【0026】しかも、ほとんどのサーバ・プロセスは、
オペレーティング・システム・スレッドとスレッド・プ
ール・スレッドの両方を利用する。オペレーティング・
システム・スレッドとスレッド・プールからのスレッド
との主な違いの1つは、オペレーティング・システム・
スレッドは一度しか使わないスレッドであり、したがっ
て、オペレーティング・システム・スレッド上で実行さ
れるサブタスクが完了すると、オペレーティング・シス
テム・スレッドが終了することである。しかし、上記の
ように、スレッド・プール・スレッドは、スレッド・マ
ネージャによって保管し、他のクライアント・プロセス
のために再使用することができる。
【0027】標準CGI 次に図3を参照すると、WWWトランザクションを実行
するための典型的なCGIベースのコンピュータ・シス
テム300は、クライアント・ワークステーション21
0と、ウェブ・サーバ・コンピュータ・システム220
と、接続部216と、CGIインタフェース217と、
ウェブ・サーバ・アプリケーション222と、ウェブ・
サーバ・プロセス340と、CGIプロセス350およ
び360と、CGIプログラム352および362とを
含む。
【0028】上記のように標準のCGIプログラミング
・モデルは、WWWなどのネットワークによって通信
し、トランザクションを実行するための方法を提供す
る。CGIプログラム352または362の目的は、所
望の目的を達成するためにユーザが要求する可能性のあ
る資源に対する能力をウェブ・ブラウザ・ユーザに提供
することである。しかも、ユーザは、処理のためにCG
Iプログラム352または362に可変情報を渡すため
にウェブ・ブラウザ212を使用することができる。
【0029】サーバ側のCGIプログラム352および
362用のCGIインタフェース217は、ウェブ・サ
ーバ・アプリケーション222によってCGIプログラ
ム352および362を開始する方法、ならびに標準入
力および環境変数の組合せを使用してCGIプログラム
352および362用のパラメータを渡す方法を記述す
るものである。環境変数は、プロセスによって設定し、
アクセスすることができる情報項目である。環境変数の
例としては、ライブラリ・ファイル、デフォルト、その
他のシステム・レベル・パラメータのリストを含む。ほ
とんどのウェブ・サーバ・アプリケーション・プログラ
ムでは、ウェブ・ブラウザおよびウェブ・サーバ情報を
含むように、CGIプログラミング・モデルで使用する
環境変数のリストが拡張されている。また、CGIイン
タフェース217は、標準出力手順を使用してウェブ・
サーバ222に通常はHTML要素である出力情報を渡
す方法も記述する。
【0030】CGIプログラム352および362は、
CGIヘッダを介してウェブ・サーバ・アプリケーショ
ン222と通信する。CGIヘッダの使用は当業者には
周知のものである。通常、ウェブ・ブラウザ212は、
要求を生成し、それをウェブ・サーバ・アプリケーショ
ン222に送信する。ウェブ・サーバ・アプリケーショ
ン222は、ブラウザ要求がCGIプロセスを必要とす
ることを認識し、CGIプログラム352または362
にブラウザ要求を転送することになる。CGIプログラ
ム352または362は、ヘッダを介してウェブ・サー
バ・アプリケーション222に応答する。標準のCGI
ヘッダは、「位置」ヘッダと、「状況」ヘッダと、「内
容タイプ」ヘッダの3つである。位置ヘッダは、ウェブ
・ブラウザ要求を他のいくつかの資源にリダイレクトす
るCGIプログラムからのメッセージである。状況ヘッ
ダは、ウェブ・ブラウザ要求を処理する際に例外または
エラーが発生したことを示すためにCGIが使用する。
内容タイプ・ヘッダは、ウェブ・ブラウザ要求に応答し
て返されるデータのタイプを識別するため、ならびに実
際に要求された情報を送信するためにCGIプログラム
352または362が使用する。このような3つのヘッ
ダ・ファイルは、CGIモデルに適合するすべてのウェ
ブ・サーバによってサポートされている。
【0031】CGIプログラミング・モデルは、ほとん
どのWWW通信およびトランザクションの場合にそれが
人気のある選択肢になるような、いくつかの利点を提供
する。第1に、CGIプログラミング・モデルは比較的
単純であり、したがって、理解しやすく、使いやすい。
第2に、CGIプログラミング・モデルはプログラミン
グ言語非依存である。これは、標準のプログラミング言
語を使用してCGIインタフェースを作成できることを
意味する。さらに、CGIプログラミング・モデルはプ
ロセス分離を行う。というのは、HTTPサーバ・プロ
セスから分離されたプロセス内でCGIプログラムが実
行されるからである。エラーによってプロセスの1つが
打ち切られる場合、他のプロセスは中断せずに続行可能
である。プロセス同士は分離されているので、各プロセ
スの安定性が高まる。
【0032】マイナス面としては、CGIプログラム
は、ウェブ・ブラウザ212から受信した各要求ごとに
新しいプロセスをインスタンス化する。これは、ウェブ
・サーバ・アプリケーション222にとって非常に要求
の厳しいものになる可能性があり、十分なウェブ・ブラ
ウザ要求を受信した場合、ウェブ・サーバ・コンピュー
タ・システム220のパフォーマンスは容認できないも
のになりうる。しかも、CGIプロセスへの単一要求に
よってほとんどのタスクを実施することは非常に困難で
あり、いかなる情報もブラウザ要求間にCGIプロセス
によって保持されることはない。ウェブ・ブラウザとC
GIプロセスとの間で確立された通信リンクは「連続リ
ンク」と呼ばれる。予期せず打ち切られない限り、ウェ
ブ・ブラウザがウェブ・サーバを介してCGIプロセス
から何らかの通知または情報を受信するまで、通信リン
クは絶えず存在するからである。しかし、前述のよう
に、CGIプロセスが要求を満足した後、CGIプロセ
スは終了する。この制限に対応するためにいくつかの方
法が採用されているが、現在既知の方法はいずれも煩わ
しいもので、より多くの資源を消費するオーバヘッドを
プロセスに追加し、さらにパフォーマンスを低下させ
る。
【0033】サーバAPI 次に図4を参照すると、WWWトランザクションを実行
するためのサーバAPIベースのコンピュータ・システ
ム400は、クライアント・ワークステーション210
と、ウェブ・サーバ・コンピュータ・システム220
と、接続部216と、サーバAPI217と、ウェブ・
サーバ・アプリケーション222と、ウェブ・サーバ・
プロセス340と、サーバAPIプログラム444とを
含む。
【0034】サーバ・アプリケーション・プログラミン
グ・インタフェース(API)を使用すると、WWWな
どのネットワークにより通信するためのもう1つの方法
が得られる。一般に、APIは、2つまたはそれ以上の
異なるプログラム間で通信するための通信プロトコルを
定義する。サーバAPIは、ウェブ・サーバで使用する
ために開発されたものであり、CGIプログラミング・
モデルのパフォーマンス上の制限に対処するために具体
的に設計されている。サーバAPIプログラムの例とし
ては、IBMのICAPI、ネットスケープのNSAP
I、マイクロソフトのISAPIを含む。このような製
品のすべてが交換可能であるわけではなく、異なるAP
I命令セットが異なる機能をサポートする。このような
様々な製品はいずれも、WWWクライアント/ブラウザ
環境で使用するためにそれぞれのベンダが採用した各種
実施態様である。
【0035】このようなサーバAPIプログラムは、ウ
ェブ・サーバ・アプリケーション222の機能性を拡張
し、CGIプログラミング・モデルに代わるものを提供
する。ウェブ・サーバ・アプリケーション222とサー
バAPIプログラム444は、互いに通信するためにサ
ーバAPI217を使用する。サーバAPIプログラム
444は、ウェブ・サーバ・プロセス340の拡張部分
として実施され、ウェブ・サーバ・プロセス340とと
もにインスタンス化される。サーバAPIプログラム4
44は、ウェブ・サーバ・プロセス340が活動状態に
ある限り、活動状態のままになる。サーバAPIプログ
ラム444はサーバ・プロセス340の一部として実行
されるので、サーバAPIプログラム444は、サーバ
環境へアクセスすることができ、認証、許可、出力生成
などのサーバ論理の様々な態様に関与することができ
る。サーバAPIプログラム444は持続性であり、し
たがって、クライアント・ワークステーション210か
ら受信した後続要求間で状態情報を維持することができ
る。
【0036】ウェブ・ブラウザ環境でのサーバAPIプ
ログラム444の実施にとってのマイナス面は重大なも
のになる場合もある。まず第1に、ウェブ・サーバ・プ
ログラム222とサーバAPIプログラム444はどち
らも同じプログラム環境を共用するので、どちらのプロ
グラムもある程度の安全保護と完全性を失ってしまう。
また、どちらのプログラムも同じプログラム環境の一部
なので、一方のプログラムが使用不能になると、両方の
プログラムが動作不能になる可能性がある。第2に、サ
ーバAPIプログラム444は「C」プログラミング言
語で作成しなければならず、通常、サーバAPIプログ
ラム444を従来のCGIプログラムより複雑なものに
するような複数の入口点を有することになる。さらに、
この環境のトランザクション機能は依然として制限され
ており、そのためにサーバAPIプログラム444は、
ウェブ・サーバ・アプリケーション222によりサーバ
API444に要求を行う各ウェブ・ブラウザ212ご
とに複数のウェブ・ブラウザ・セッションを作成し管理
せざるを得なくなる。もう1つの問題は、現在すべての
ウェブ・サーバ222がAPIをサポートしているわけ
ではないことであり、したがって、一部の実施環境のオ
プションにはならない。最後に、サーバAPI444
は、個別の各ウェブ・ブラウザ・セッションの持続期間
を決定するための単純な方法を一切備えていない。この
ため、決して到着しそうにないウェブ・ブラウザ212
からの入力を待つことにより、サーバAPIプログラム
444がシステム資源を浪費することになる可能性があ
る。
【0037】高速CGI WWWトランザクション用のもう1つのシステム構成は
「高速CGI」と呼ばれるものである。次に図5を参照
すると、WWWトランザクションを実行するための高速
CGIベースのコンピュータ・システム500は、クラ
イアント・ワークステーション210と、ウェブ・サー
バ・コンピュータ・システム530と、接続部216
と、高速CGIインタフェース217と、ウェブ・サー
バ・アプリケーション222と、ウェブ・サーバプロセ
ス340と、ソケット560と、高速CGIプログラム
572とを含む。
【0038】いわゆる高速CGIモデルは、WWWなど
のネットワークにより様々な資源と通信するためのもう
1つの方法を提供するプロプラエタリ・モデルである。
高速CGIプロセス・モデルは、標準CGIモデル(図
3)とサーバAPIモデル(図4)の両方からの特徴を
結合する。高速CGIモデルは、標準CGIプログラム
・モデルで説明したようにプロセス分離を特徴とする
が、サーバAPIモデルに関連して説明したように、1
つのプログラムが複数のウェブ・ブラウザ212からの
複数の要求に対応する。これは、様々なブラウザ要求の
それぞれに関する状態データを高速CGIプログラム5
72によって追跡し、高速CGIプログラム572内の
正しいウェブ・ブラウザ212に関連付けなければなら
ないことを意味する。この要件は、より一層の複雑さと
オーバヘッドをシステムに追加する。
【0039】ソケット560は、高速CGIプログラム
572とウェブ・サーバ・アプリケーション222との
間の全2重プロセス間通信を表す。高速CGIプログラ
ム572は、ウェブ・ブラウザ212とプロセス570
との間で通信するために標準の入出力変数を使用しな
い。高速CGIプログラム572は、むしろ、ウェブ・
サーバ・アプリケーション222との間で情報をやりと
りするために上記のものと同様のAPI呼出しを使用す
る。高速CGIモデルでは、プロセス570はプロセス
340から独立しており、どちらのプロセスも異なる物
理コンピュータ・システム上で実行することができる。
【0040】高速CGIモデルの実施に関連するマイナ
ス面は数多い。まず第1に、このモデルは、標準CGI
モデルより大幅に複雑である。このモデルを実施するに
は、高速CGI通信モデルおよびプロトコルをサポート
するようにウェブ・サーバ・アプリケーション222を
変更し構成することが必要である。さらに、高速CGI
モデルはプロプラエタリなので、いまだに広く採用され
ておらず、多くのウェブ・サーバ・アプリケーション2
22は高速CGIモデルとの互換性がない。最後に、上
記のサーバAPIの場合と同様、高速CGIプログラム
572は「C」プログラミング言語で作成され、したが
って、一部のプログラマの能力を上回る。
【0041】2.詳細な説明 次に図1を参照すると、同図には本発明の好ましい実施
例によるコンピュータ・システム100が示されてい
る。しかし、当業者であれば、コンピュータ・システム
が複雑なマルチユーザ・コンピューティング装置である
か、パーソナル・コンピュータまたはワークステーショ
ンなどの単一ユーザ装置であるかにかかわらず、本発明
の方法および装置がどのようなコンピュータ・システム
にも同じように適用されることが分かるだろう。コンピ
ュータ・システム100は、中央演算処理装置(CP
U)またはプロセッサ110と、メイン・メモリ120
と、メモリ・コントローラ130と、補助記憶インタフ
ェース140と、ターミナル・インタフェース150と
を適当に含み、そのいずれもシステム・バス160を介
して相互接続されている。ただし、キャッシュ・メモリ
またはその他の周辺装置の追加など、本発明の範囲内で
図1に示すコンピュータ・システム100に対して、様
々な変更、追加、または削除を行うことができることに
留意されたい。図1は、コンピュータ・システム100
の顕著な特徴の一部を単純に示すように提示されてい
る。
【0042】プロセッサ110は、コンピュータ・シス
テム100の計算および制御機能を実行し、適当な中央
演算処理装置(CPU)を含む。プロセッサ110は、
マイクロプロセッサなどの単一集積回路を含む場合もあ
れば、プロセッサの諸機能を実施するために協同で作業
する適当な数の集積回路装置または回路板を含む場合も
ある。プロセッサ110は、メイン・メモリ120内の
オブジェクト指向コンピュータ・プログラム122を適
当に実行する。
【0043】補助記憶インタフェース140により、コ
ンピュータ・システム100は、磁気ディスク(たとえ
ば、ハード・ディスクまたはフロッピー・ディスク)ま
たは光学記憶装置(たとえば、CD−ROM)などの補
助記憶装置からの情報を格納し取り出すことができる。
適当な記憶装置の1つは、直接アクセス記憶装置(DA
SD)170である。図1に示すように、DASD17
0は、フロッピー・ディスク180からプログラムおよ
びデータを読み取ることができるフロッピー・ディスク
・ドライブにすることができる。重要なことに、完全機
能コンピュータ・システムに関して本発明を説明してき
た(今後も説明し続ける)が、当業者であれば、本発明
のメカニズムは様々な形式のプログラム製品として配布
することができ、実際にその配布を実行するための特定
タイプの信号伝達媒体にかかわらず、本発明は同様に適
用されることが分かるだろう。信号伝達媒体の例として
は、フロッピー・ディスク(たとえば、ディスク18
0)およびCD−ROMなどの記録可能タイプの媒体
と、ワイヤレス通信リンクを含む、ディジタルおよびア
ナログ通信リンクなどの伝送タイプの媒体とを含む。
【0044】メモリ・コントローラ130は、要求され
た情報をメイン・メモリ120からまたは補助記憶イン
タフェース140を介してプロセッサ110へ移動する
作業を担当する。説明のために、メモリ・コントローラ
130を個別のエンティティとして示すが、当業者であ
れば、メモリ・コントローラ130によって提供される
機能の各部分は実際にはプロセッサ110、メイン・メ
モリ120、または補助記憶インタフェース140に関
連する回路内に常駐可能であることが分かるだろう。
【0045】ターミナル・インタフェース150によ
り、システム・アドミニストレータおよびコンピュータ
・プログラマは、通常、プログラム式ワークステーショ
ンによりコンピュータ・システム100と通信すること
ができる。図1に示すシステム100は単一メイン・プ
ロセッサ110と単一システム・バス160のみを含ん
でいるが、本発明は複数のプロセッサと複数のシステム
・バスとを有するコンピュータ・システムにも同様に適
用されることが分かるだろう。同様に、好ましい実施例
のシステム・バス160は典型的な配線式マルチドロッ
プ・バスであるが、コンピュータ関連環境で双方向通信
をサポートする接続手段であれば、どのような接続手段
でも使用可能である。
【0046】メイン・メモリ120は、1つまたは複数
のコンピュータ・プログラム122と、持続CGIプロ
セス123と、プロセス・プール124と、オペレーテ
ィング・システム125と、受諾URL CGIヘッダ
126と、タイムアウトCGIヘッダ127と、ウェブ
・ブラウザURL128とを適当に含んでいる。メモリ
120内のコンピュータ・プログラム122はその最も
広い意味で使用され、ソース・コード、中間コード、マ
シン・コード、その他の表現のコンピュータ・プログラ
ムを含む、あらゆる形式のコンピュータ・プログラムを
含む。持続CGI123は、ここに記載した特徴および
機能をサポートする本発明の好ましい実施例によるプロ
グラムである。オペレーティング・システム125は、
一般にコンピュータ・システムで使用するオペレーティ
ング・システムを代表するシステム管理タスクを実行で
きるオペレーティング・システムである。プロセス・プ
ール124は、ウェブ・ブラウザ要求に関するジョブの
流れを制御するために持続CGI123とともに使用す
る。CGIヘッダ126および127は、既存のCGI
プログラミング・モデルの拡張部分である。
【0047】メイン・メモリ120は必ずしも図示のす
べてのメカニズムのすべての部分を含むわけではないこ
とが分かるだろう。たとえば、コンピュータ・プログラ
ム122とオペレーティング・システム125の各部分
はプロセッサ110用の命令キャッシュ(図示せず)に
ロードして実行することができるが、他のファイルは磁
気または光ディスク記憶装置(図示せず)に格納するこ
とができる。さらに、コンピュータ・プログラム122
はオペレーティング・システム125およびオブジェク
ト123と同じメモリ位置に常駐するように示されてい
るが、メイン・メモリ120は異なるメモリ位置からな
る可能性もあることが分かるだろう。ここで使用する
「メモリ」という用語は、システム100の仮想メモリ
空間内の任意の記憶位置を意味する。
【0048】次に図6を参照すると、本発明の好ましい
実施例によりWWWトランザクションを実行するための
持続CGIベースのコンピュータ・システム600は、
クライアント・ワークステーション210と、ウェブ・
サーバ・コンピュータ・システム630と、接続部21
6と、持続CGIインタフェース217と、ウェブ・サ
ーバ・アプリケーション222と、ウェブ・サーバ・プ
ロセス340と、ウェブ・サーバ・コンピュータ630
と、プロセス・プール680と、プロセス682および
684と、CGIプログラム683および685とを含
む。
【0049】持続CGIモデルを実施するため、2つの
新しいCGIヘッダ拡張部が実施されている。この2つ
の新しいヘッダは「受諾URL」ヘッダと「タイムアウ
ト」ヘッダである。この新しいヘッダ・ファイルを標準
のCGIプログラミング・モデルに追加すると、CGI
プロセスは、単一ウェブ・ブラウザ要求を超えて持続
し、様々なウェブ・ブラウザ要求に及ぶ延長期間にわた
って同じウェブ・ブラウザ212によって単一トランザ
クションまたは一連の関連トランザクションを維持する
ことができる。
【0050】受諾URL CGIヘッダは、CGIプロ
グラム683および685が持続することをウェブ・サ
ーバ・アプリケーション222に警告するために使用
し、ウェブ・ブラウザ212による後続要求で持続CG
Iプログラム683および685によってどのウェブ・
ブラウザURL128が受諾されるかも指定する。受諾
URL CGIヘッダは、持続CGIプログラム683
および685によってどの後続ブラウザ要求が処理され
るかを識別するための識別メカニズムとして機能する。
ウェブ・サーバ・アプリケーション222は、ウェブ・
ブラウザ要求が満足された後でCGIプログラム683
および685を自動的に終了するわけではないが、CG
Iプログラム683および685が活動状態にままにな
り、ウェブ・ブラウザ212からの後続要求を待つこと
ができるようにする。指定のウェブ・ブラウザURL1
28は絶対URLとして提供されない。というのは、サ
ーバは、各後続アクセスごとに新しい通信ポートにウェ
ブ・ブラウザ212をリダイレクトする可能性があるか
らである。ウェブ・サーバ・アプリケーション222が
ウェブ・ブラウザURL128を適切な持続CGIプロ
グラムと付き合わせることができるように、URLは固
有のものでなければならない。
【0051】ウェブ・サーバ・アプリケーション222
が受諾URL CGIヘッダを受信すると、持続CGI
プログラム683または685によって受諾または認識
されるウェブ・ブラウザURL128は、メモリ120
内に(すなわち、テーブルまたは連係リストとして)格
納され、持続CGIプログラム683または685の特
定インスタンスに割り当てられるものとして識別され
る。次に、メモリ120内に格納されたウェブ・ブラウ
ザURL128と一致する、ウェブ・ブラウザからの後
続ウェブ・ブラウザ要求は、ウェブ・サーバ・アプリケ
ーション222によって適切な持続CGIプログラム6
83または685に転送される。この手順は、ウェブ・
ブラウザ212が実行を希望する1つまたは複数のトラ
ンザクションの期間中に、CGIプログラム683また
は685の特定のインスタンスを効果的に特定のウェブ
・ブラウザ212専用にする。
【0052】タイムアウトCGIヘッダは、受諾URL
ヘッダとともに使用し、CGIプログラムが現行ジョブ
に関して所与のウェブ・ブラウザからの後続要求を待つ
時間の長さ(分単位)を指定し制御するためのタイムア
ウト・メカニズムとして機能する。タイムアウトCGI
ヘッダが指定されていない場合、ジョブは無限にまたは
PersistentThreadTimeoutウェブ・サーバ指示が指定す
る時間の長さを超過するまで待つことになる。これに対
して、タイムアウトCGIヘッダが指定されている場
合、このヘッダはPersistentThreadTimeout値より優先
される。このオプションにより、個々のCGIプログラ
ムは、サーバがデフォルト値を見込むために必要とする
長い形式または拡張部分に対してユーザが応答するため
の時間を延長することができる。タイムアウトCGI拡
張ヘッダの使用を示す例は、以下の通りである。 Timeout = "Timeout"":"minutes"."min-fragment minutes = 1*DIGIT min-fragment = 1*DIGIT
【0053】タイムアウト値は、分単位で時間を表す、
負以外の10進整数である。タイムアウトCGI拡張ヘ
ッダは、受諾URL CGI拡張ヘッダによって実施し
なければならない。そうではない場合、タイムアウトC
GI拡張ヘッダはシステムによって無視される。タイム
アウトCGI拡張ヘッダが省略されている場合、CGI
プログラムはウェブ・ブラウザからの受入れ可能な要求
をいつまでも待つつもりであるものと想定する。時間切
れになった場合、ソケットは閉じられ、ジョブは終了す
る。さらに、保留トランザクションに関する暗黙ロール
バックが行われる。CGIプログラム683または68
5のインスタンスがタイムアウトのために終了すると、
システム・メッセージがログ記録される。
【0054】プロセス・プール680は、持続CGIプ
ログラム682および684のインスタンスをいくつで
も含むことができる。通常、ウェブ・サーバ・アプリケ
ーション222は、ウェブ・ブラウザ212から受信し
た要求を収容するために、CGIプログラム123から
の複数の持続CGIプロセスをインスタンス化する。要
求が受信されると、ウェブ・サーバ・アプリケーション
222はその要求を適切な持続CGIプロセスに転送す
る。持続CGIプロセス682または684がウェブ・
ブラウザ・トランザクションを処理している間、そのプ
ロセスはその特定のウェブ・ブラウザ専用になり、他の
ウェブ・ブラウザからの他の要求を処理するために使用
できなくなる。おそらく複数の独立要求を含む、ウェブ
・ブラウザ・トランザクション全体が完了した後、持続
CGIプロセス682または684は終了するかまたは
プロセス・プールに返され、そこで次の要求に対応する
ために使用できるようになる。ウェブ・ブラウザ212
と持続CGIプロセス682および684との間に確立
された通信リンクが、トランザクションに関しては「連
続的」であるが、単一ウェブ・ブラウザ212用の複数
の独立ウェブ・ブラウザ要求に関しては「非連続的」で
あることは、重要なことである。このため、単一トラン
ザクションは、複数の分離したウェブ・ブラウザ要求を
単一トランザクションとして含むことができる。これ
は、各トランザクションが単一要求を含み、各ウェブ・
ブラウザ要求後に通信リンクが終了するという、これま
でに既知の解決策の「連続」性とは対照的なものであ
る。
【0055】次に、図1、図6、図7を参照すると、同
図には、本発明の好ましい実施例により持続CGIを実
施するための方法700が示されている。ウェブ・サー
バ・アプリケーション222はウェブ・ブラウザ212
から要求を受信する(ステップ705)。ウェブ・サー
バ・アプリケーション222は、ウェブ・ブラウザ要求
に対応するために持続CGIプロセス123をインスタ
ンス化する(ステップ710)。持続CGIプロセス1
23は、ウェブ・ブラウザ要求を処理し、その要求を満
足するために必要なアクションをすべて行う(ステップ
715)。次に持続CGIプロセス123は、ウェブ・
サーバ・アプリケーション222に受諾URL CGI
ヘッダを送信する(ステップ720)。受諾URL C
GIヘッダは、持続CGIプロセス123によって許さ
れる今後のトランザクション用のソースとしてウェブ・
ブラウザ212を識別するように機能する。また、受諾
URL CGIヘッダは、ウェブ・ブラウザ212から
のどのURLがCGIプロセス123に適合するものと
して受け入れられるかについても識別する。
【0056】任意で、タイムアウトCGIヘッダが含ま
れる場合、ウェブ・サーバ・アプリケーション222
は、割り振られた時間を超過したかどうかを確認するた
めに検査する(ステップ725)。超過した場合、持続
CGIプロセスは終了する(ステップ755)。タイム
アウトCGIヘッダが指定されていない場合または指定
されているが超過していない場合、持続CGIプロセス
123は待機サイクルに入り、ウェブ・ブラウザ212
からの他の要求を待つ。ウェブ・ブラウザから他の要求
を受信すると(ステップ730=YES)、ウェブ・サ
ーバ・アプリケーション222は要求側ウェブ・ブラウ
ザのURLとメモリ内に格納されたURLのリストとを
比較し(ステップ735)、一致しない場合(ステップ
735=NO)、要求は拒否され、持続CGIプロセス
123によって処理されない(ステップ740)。しか
し、URLが受け入れられる場合(ステップ735=Y
ES)、持続CGIプロセス123は要求を処理する
(ステップ745)。トランザクション全体が完了し、
ウェブ・ブラウザ・セッションが完了した後(ステップ
750=YES)、持続CGIプロセスは終了する(ス
テップ755)かまたはプロセス・プールに戻される。
【0057】本発明の好ましい実施例により持続CGI
モデルを実施するためには、上記のCGI拡張ヘッダに
加え、いくつかの新しいウェブ・サーバ指示を標準のウ
ェブ・サーバ指示に加える必要がある。ウェブ・サーバ
指示とは、ウェブ・サーバの挙動を指定する1つまたは
複数の構成ファイルに格納されたステートメントであ
る。このようなサーバ指示は、ウェブ・ブラウザ・イン
タフェースを介するかまたはファイル(複数も可)を直
接編集するだけで、追加、変更、または削除することが
できる。本発明の好ましい実施例で使用するための2つ
の新しいサーバ指示は、「PersistentThreadTimeout」
指示と「MaxPersistentThreads」指示である。
【0058】所与の持続CGIプロセスに関するウェブ
・ブラウザ入力の連続到着についてはまったく確信でき
ないので、保留サーバ・ジョブに関連する不正確終了を
除去するためのメカニズムが所定の位置になければなら
ない。PersistentThreadTimeout指示を使用すると、ウ
ェブ・サーバ・アプリケーション222が持続CGIプ
ログラムを終了する前に持続CGIプログラムに関する
追加のブラウザ入力を受信するまで待つ最長時間が指定
される。活動スレッドが指定の期間中に新しい入力を受
信しない場合、ジョブは終了するかまたはジョブ・プー
ルに返される。指定の時間値は、時間、分、秒のいかな
る組合せにすることもできる。「永久」というデフォル
ト値を使用する場合、サーバはどのジョブも終了しない
かまたはどのスレッドも終了しない。デフォルト値は、
上記のタイムアウトCGIヘッダを使用するCGIプロ
グラムによって指定変更することができる。タイムアウ
トCGIヘッダにより、サーバ・アドミニストレータは
より短いデフォルト・タイムアウト値を設定することが
でき、個々のCGIプログラムは必要であればより長い
待機時間を選択的に指定することができる。「永久」以
外のタイムアウト値を設定すると、サーバ・ジョブが故
意ならびに偶発的な「応答なし」条件により不必要に拘
束されるのを防止する。CGIプログラムがタイムアウ
トのために終了すると、システム・メッセージがログ記
録される。PersistentThreadTimeout指示の使い方の一
例は「PersistentThreadTimeout 5 mins」である。
【0059】MaxPersistentThreads指示は、任意の時点
で持続性になりうる最大数のスレッドを指定するために
使用する。最大数に達した場合、既存の持続スレッドが
解放され、使用可能になるまで、サーバは新しいジョブ
を求める追加の実行要求を拒否する。MaxPersistentThr
eads指示の使い方の一例は「MaxPersistentThreads 2
0」である。
【0060】本発明の好ましい実施例による持続CGI
モデルの使用を例示するために、以下の例を示す。ある
企業は、従業員が顧客の注文を処理できるようにするソ
フトウェア・アプリケーションに対してインターネット
によりアクセスできるようにしたいと希望している。顧
客の注文を処理するため、従業員はインターネットによ
り複数のデータベースにアクセスすることが必要にな
る。また、その企業は、WWWページ上に対話式製品カ
タログをポストし、顧客がインターネットによりそのカ
タログにアクセスして電子注文できるようにすることも
計画している。また、その企業は、インターネットによ
り新しい顧客を受け入れ、その顧客を企業の顧客データ
ベースに登録することも希望している。
【0061】顧客がその企業のウェブ・ページにアクセ
スすると、顧客はウェブ・ブラウザ212を使用してそ
の企業のウェブ・ページを閲覧する。ウェブ・ページの
一部は顧客情報データの書式を含むことになる。この書
式により、顧客は、顧客番号、自宅の住所、電話番号な
どの情報を入力することができる。顧客が必要な情報を
入力した後、その情報はウェブ・サーバ・アプリケーシ
ョン222に送信されて処理される。ウェブ・サーバ・
アプリケーション222は持続CGIプロセス123を
インスタンス化し、持続CGIプロセスは要求を満足す
るために必要なステップを実行する。これは、企業のデ
ータベース・ファイルを開いて顧客番号、住所情報など
を検査または確認することを含む場合がある。また、持
続CGIプロセス123は、受託URL CGIヘッダ
と、要求されたデータまたはウェブ・ブラウザ212用
の応答をウェブ・サーバ・アプリケーション222に送
信する。ウェブ・サーバ・アプリケーション222は、
要求されたデータまたは持続CGIプロセス123から
の応答をウェブ・ブラウザ212に転送し、ウェブ・ブ
ラウザ212用のポートを開く。
【0062】この時点で顧客は、ウェブ・ブラウザ21
2を使用して他の要求をウェブ・サーバ・アプリケーシ
ョン222に提示する。この要求は、オンライン・カタ
ログからの特定の製品に関する顧客の注文である場合も
ある。この要求がウェブ・サーバ・アプリケーション2
22によって受信されると、その要求とともに送信され
たURLはウェブ・ブラウザ212を識別し、ウェブ・
サーバ・アプリケーション222は持続CGIプロセス
123が待っているポートにその要求を転送する。次に
持続CGIプロセス123は、この要求も処理すること
になる。同様に、ウェブ・ブラウザ212からの追加の
要求は、請求書情報、発送データなどの送信を含む可能
性がある。このような要求はいずれもウェブ・サーバ・
アプリケーション222によって持続CGIプロセス1
23に経路指定され、持続CGIプロセス123によっ
て処理される。トランザクション全体が完了すると、持
続CGIプロセス123はウェブ・サーバ・アプリケー
ション222に戻り、受諾URL CGIヘッダを指定
しない。これは、持続CGIプロセス123がウェブ・
ブラウザ212によってトランザクションを完了し(ス
テップ750)、持続CGIプロセス123が終了する
かまたはプロセス・プールに戻って、ウェブ・ブラウザ
212またはウェブ・サーバ・アプリケーション222
に要求を提示する他のウェブ・ブラウザからの新しいト
ランザクションに関する新しい要求を待つことができる
ことを意味する。
【0063】図6に示すような持続CGIモデルを実施
する場合、本発明の潜在的な利点を完全に実現するため
に対処しなければならないシステム管理関係の問題がい
くつかある。持続CGIプロセスは潜在的な長期間の
間、活動状態を維持することができるので、所与のシス
テム資源を不用意に独占する可能性がある。持続CGI
プロセスをプログラミングするには、システムの機能性
を保護するためにすべてのシステム資源の割振りおよび
使用法に注意する必要がある。たとえば、持続CGIプ
ロセスが所与の時間後に「タイムアウト」または終了す
るようにセットアップされていない場合、そのプロセス
は、クライアントが所与のトランザクションを続行する
のを待って、継続的にシステム資源を消費する可能性が
ある。しかし、この可能性は、上記の「タイムアウト」
CGI拡張ヘッダを使用することにより、最小限にする
か除去することができる。さらに、持続CGIプロセス
の可搬性は、標準CGIプロセスに比べ、いくらか低減
される。というのは、現在、すべてのウェブ・サーバ・
アプリケーションが持続CGIモデルをサポートしてい
るわけではないからである。持続CGIモデルをサポー
トするように設計されたHTTPサーバがますます増え
るにつれて、この制限は重要性が低下するはずである。
【0064】本発明のさらなる機能強化としては「活動
化グループ」という概念を含む。活動化グループとは、
活動化グループが特定のプログラムまたはプロセス向け
に事前初期設定された所与のプロセスであり、必要な環
境変数も事前初期設定されている場合に、プロセス・プ
ール内のサブプールとして識別される特定のグループの
持続CGIプロセスである。活動化プロセス内のプロセ
スは、複数のブラウザ要求にわたって活動状態を維持す
ることができる。このため、特定のプログラムへのアク
セスを必要とするウェブ・ブラウザは、所望の活動化グ
ループ内のプログラムと繰り返し対話して、より好都合
の方法で所望のタスクを達成することができる。
【0065】本発明の好ましい実施例により持続CGI
プロセスを実施することにより、ウェブ・ブラウザとC
GIプロセスとの間の通信プロセスの特徴は、上記のこ
れまでに既知の解決策とはまったく異なったものにな
る。単一連続通信接続により単一ウェブ・ブラウザ要求
を処理するのではなく、所与のウェブ・ブラウザと同じ
CGIプロセスとの間に確立された一連の非連続通信接
続によって、複数の別々であるが関連のある要求を処理
することができる。
【0066】その好ましい実施例に関連して本発明を具
体的に示し説明してきたが、当業者であれば、本発明の
精神および範囲を逸脱せずに形式および細部の点で様々
な変更が可能であることが分かるだろう。具体的には、
CGIプログラミング・モデルに関連して本発明を説明
してきたが、本発明は他の環境での使用にも適当に採用
することができる。
【0067】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0068】(1)少なくとも1つのCPUと、前記C
PUに結合されたメモリと、前記メモリ内に常駐し、前
記CPUによって実行される持続インタフェース・プロ
グラムであって、ブラウザと前記持続インタフェース・
プログラムとの間に確立された非連続通信接続を介して
前記ブラウザとの間でデータを送受信することができ、
前記ブラウザから受信した要求を処理した後、活動状態
を維持する持続インタフェース・プログラムとを含む、
持続インタフェース装置。 (2)前記メモリ内に常駐する識別メカニズムであっ
て、前記持続インタフェース・プログラムによって受け
入れられる少なくとも1つのブラウザからの少なくとも
1つの資源固有アドレスを識別する識別メカニズムをさ
らに含む、上記(1)に記載の装置。 (3)前記メモリ内に常駐するタイムアウト・メカニズ
ムであって、所定の期間後に前記持続インタフェース・
プログラムを終了するタイムアウト・メカニズムをさら
に含む、上記(1)に記載の装置。 (4)前記メモリ内に常駐するプロセス・プールをさら
に含み、前記持続インタフェース・プログラムが前記プ
ロセス・プールの一部である、上記(1)に記載の装
置。 (5)活動化グループをさらに含み、前記活動化グルー
プが前記プロセス・プールの一部であり、前記持続イン
タフェース・プログラムが前記活動化グループの一部で
ある、上記(4)に記載の装置。 (6)前記メモリ内に常駐するタイムアウト・メカニズ
ムであって、所定の期間後に前記持続インタフェース・
プログラムを終了するタイムアウト・メカニズムと、前
記メモリ内に常駐する識別メカニズムであって、前記持
続インタフェース・プログラムによって受け入れられる
少なくとも1つのブラウザからの少なくとも1つの資源
固有アドレスを識別する識別メカニズムとをさらに含
む、上記(1)に記載の装置。 (7)前記持続インタフェース・プログラムがCGIプ
ログラムである、上記(1)に記載の装置。 (8)少なくとも1つのCPUと、前記CPUに結合さ
れたメモリと、前記メモリ内に常駐し、前記CPUによ
って実行される持続CGIプログラムであって、ウェブ
・ブラウザと前記持続CGIプログラムとの間に確立さ
れた非連続通信接続を介して前記ウェブ・ブラウザとの
間でデータを送受信することができ、前記ウェブ・ブラ
ウザから受信した要求を処理した後、活動状態を維持す
る持続CGIプログラムと、前記メモリ内に常駐する識
別メカニズムであって、前記持続CGIプログラムによ
って受け入れられる少なくとも1つのウェブ・ブラウザ
からの少なくとも1つの資源固有アドレスを識別する識
別メカニズムとを含む、持続CGI装置。 (9)ブラウザと通信するための方法において、前記ブ
ラウザから持続インタフェース・プログラムに第1のブ
ラウザ要求を送信するステップと、前記第1のブラウザ
要求を処理して結果を生成するステップと、前記ブラウ
ザから前記持続インタフェース・プログラムによって受
け入れられる第1の資源固有アドレスをメモリ位置内に
格納するステップと、前記結果を前記ブラウザに送信す
るステップと、前記ブラウザと前記持続インタフェース
・プログラムとの間に非連続通信リンクを確立するステ
ップと、前記結果を前記ブラウザに送信した後、前記持
続インタフェース・プログラムを活動状態に維持し、前
記ブラウザからの後続要求を処理するステップとを含む
方法。 (10)前記ブラウザから前記持続インタフェース・プ
ログラムに第2の要求を送信するステップであって、前
記第2の要求が第2の資源固有アドレスに関連するステ
ップと、前記ブラウザによって送信された前記第2の資
源固有アドレスを前記メモリ位置内に格納された前記第
1の資源固有アドレスと比較するステップと、前記第2
の資源固有アドレスが前記第1の資源固有アドレスと一
致する場合に前記第2の要求を処理するステップとをさ
らに含む、上記(9)に記載の方法。 (11)所定の時間待った後で前記持続インタフェース
・プログラムを終了するステップをさらに含む、上記
(9)に記載の方法。 (12)前記持続インタフェース・プログラムに第1の
ブラウザ要求を送信する前記ステップが、前記第1のブ
ラウザ要求をプロセス・プールに送信するステップであ
って、前記第1のブラウザ要求が前記持続インタフェー
ス・プログラムに割り当てられるステップを含む、上記
(9)に記載の方法。 (13)前記プロセス・プール内の前記持続インタフェ
ース・プログラムを事前初期設定し、活動化グループを
作成するステップをさらに含む、上記(12)に記載の
方法。 (14)前記持続インタフェース・プログラムを含むす
べてのステップが持続CGIプログラムによって実行さ
れる、上記(9)に記載の方法。 (15)ウェブ・ブラウザと通信するための方法におい
て、ウェブ・サーバを介して前記ウェブ・ブラウザから
持続CGIプログラムに第1のウェブ・ブラウザ要求を
送信するステップと、前記第1のウェブ・ブラウザ要求
を処理して結果を生成するステップと、前記ウェブ・ブ
ラウザから前記持続CGIプログラムによって受け入れ
られる第1の資源固有アドレスをメモリ位置内に格納す
るステップと、前記ウェブ・サーバを介して前記結果を
前記ウェブ・ブラウザに送信するステップと、前記ウェ
ブ・ブラウザと前記持続CGIプログラムとの間に非連
続通信リンクを確立するステップと、前記結果を前記ウ
ェブ・ブラウザに送信した後、前記持続CGIプログラ
ムを活動状態に維持し、前記ウェブ・ブラウザからの後
続要求を処理するステップと、識別メカニズムを使用
し、前記持続CGIプログラムによって受け入れられる
前記ウェブ・ブラウザからの少なくとも1つの資源固有
アドレスを識別するステップとを含む方法。 (16)(A)単一ブラウザからの一連の複数のブラウ
ザ要求にわたって前記単一ブラウザによって非連続通信
接続を維持し、各ブラウザ要求を待っている間に活動状
態を維持する持続インタフェース・プログラムと、
(B)前記持続インタフェース・プログラムを伝達する
信号伝達媒体とを含む、プログラム製品。 (17)前記信号伝達媒体が記録可能媒体を含む、上記
(16)に記載のプログラム製品。 (18)前記信号伝達媒体が送信媒体を含む、上記(1
6)に記載のプログラム製品。 (19)前記持続インタフェース・プログラムが持続C
GIプログラムを含む、上記(16)に記載のプログラ
ム製品。 (20)(A)識別メカニズムを使用して単一ウェブ・
ブラウザを識別することにより前記単一ウェブ・ブラウ
ザからの一連の複数のウェブ・ブラウザ要求にわたって
前記単一ウェブ・ブラウザによって非連続通信接続を維
持し、各ウェブ・ブラウザ要求を待っている間に活動状
態を維持する持続CGIプログラムと、(B)前記持続
CGIプログラムを伝達する信号伝達媒体とを含む、プ
ログラム製品。 (21)(A)持続インタフェース・プログラムであっ
て、前記持続インタフェース・プログラムのインスタン
スが非連続通信接続を介して単一ブラウザから受信した
複数の独立ブラウザ要求を処理できるようにする通信メ
カニズムを含み、各独立ブラウザ要求を待っている間に
活動状態を維持する持続インタフェース・プログラム
と、(B)前記持続インタフェース・プログラムを伝達
する信号伝達媒体とを含む、プログラム製品。 (22)前記信号伝達媒体が記録可能媒体を含む、上記
(21)に記載のプログラム製品。 (23)前記信号伝達媒体が送信媒体を含む、上記(2
1)に記載のプログラム製品。 (24)ブラウザと持続インタフェース・プログラムと
の間で通信するためのコンピュータ実施方法において、
前記持続インタフェース・プログラムをインスタンス化
するステップと、前記ブラウザと前記持続インタフェー
ス・プログラムとの間に非連続接続を確立するステップ
と、前記ブラウザから前記持続インタフェース・プログ
ラムに第1のブラウザ要求を送信するステップと、前記
持続インタフェース・プログラムを使用して、前記ブラ
ウザ要求から結果を生成するステップと、前記ブラウザ
から前記持続インタフェース・プログラムによって受け
入れられる第1の資源固有アドレスをメモリ位置内に格
納するステップと、前記結果を前記ブラウザに送信する
ステップと、前記持続インタフェース・プログラムを活
動状態に維持するステップとを含む方法。 (25)前記ブラウザから前記持続インタフェース・プ
ログラムに第2の要求を送信するステップであって、前
記第2の要求が第2の資源固有アドレスに関連するステ
ップと、前記ブラウザによって送信された前記第2の資
源固有アドレスを前記第1の資源固有アドレスと比較す
るステップと、前記持続インタフェース・プログラムを
使用し、前記第2の資源固有アドレスが前記第1の資源
固有アドレスと一致する場合に前記第2の要求を処理す
るステップとをさらに含む、上記(24)に記載のコン
ピュータ実施方法。 (26)所定の時間後に前記持続インタフェース・プロ
グラムを終了するステップをさらに含む、上記(24)
に記載のコンピュータ実施方法。 (27)前記持続インタフェース・プログラムに第1の
ブラウザ要求を送信する前記ステップが、前記第1のブ
ラウザ要求をプロセス・プールに送信するステップであ
って、前記第1のブラウザ要求が前記プロセス・プール
内の前記持続インタフェース・プログラムに割り当てら
れるステップを含む、上記(24)に記載のコンピュー
タ実施方法。 (28)前記プロセス・プール内の前記持続インタフェ
ース・プログラムを事前初期設定し、活動化グループを
作成するステップをさらに含む、上記(27)に記載の
コンピュータ実施方法。 (29)前記持続インタフェース・プログラムが持続C
GIプログラムを含む、上記(24)に記載のコンピュ
ータ実施方法。 (30)ウェブ・ブラウザと持続CGIプログラムとの
間で通信するためのコンピュータ実施方法において、前
記持続CGIプログラムをインスタンス化するステップ
と、前記ウェブ・ブラウザと前記持続CGIプログラム
との間に非連続接続を確立するステップと、ウェブ・サ
ーバを介して前記ウェブ・ブラウザから前記持続CGI
プログラムに第1のウェブ・ブラウザ要求を送信するス
テップと、前記持続CGIプログラムを使用して、前記
ウェブ・ブラウザ要求から結果を生成するステップと、
前記結果を前記ウェブ・ブラウザに送信するステップ
と、識別メカニズムを使用し、前記持続CGIプログラ
ムによって受け入れられる前記ウェブ・ブラウザからの
少なくとも1つの資源固有アドレスを識別するステップ
と、前記持続CGIプログラムを活動状態に維持し、前
記ウェブ・ブラウザからの他の要求を待つステップとを
含む方法。
【図面の簡単な説明】
【図1】本発明の好ましい実施例による装置のブロック
図である。
【図2】クライアント・ワークステーションとウェブ・
サーバとのWWWトランザクションのブロック図であ
る。
【図3】WWWトランザクションを実行するための既知
のCGIベースのコンピュータ・システムのブロック図
である。
【図4】WWWトランザクションを実行するための既知
のサーバAPIベースのコンピュータ・システムのブロ
ック図である。
【図5】WWWトランザクションを実行するための既知
の高速CGIベースのコンピュータ・システムのブロッ
ク図である。
【図6】本発明の好ましい実施例によりWWWトランザ
クションを実行するための持続CGIベースのシステム
のブロック図である。
【図7】本発明の好ましい実施例によりWWWトランザ
クションを実行するための持続CGIベースのシステム
のフローチャートである。
【符号の説明】
100 コンピュータ・システム 110 中央演算処理装置(CPU)またはプロセッサ 120 メイン・メモリ 122 コンピュータ・プログラム 123 持続CGIプロセス 124 プロセス・プール 125 オペレーティング・システム 126 受諾URL CGIヘッダ 127 タイムアウトCGIヘッダ 128 ウェブ・ブラウザURL 130 メモリ・コントローラ 140 補助記憶インタフェース 150 ターミナル・インタフェース 160 システム・バス 170 直接アクセス記憶装置(DASD) 180 ディスク
フロントページの続き (72)発明者 クリスチアン・ジョイ・シュルツ アメリカ合衆国55990 ミネソタ州ワイコ フ アール・アール1 ボックス189

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】少なくとも1つのCPUと、 前記CPUに結合されたメモリと、 前記メモリ内に常駐し、前記CPUによって実行される
    持続インタフェース・プログラムであって、ブラウザと
    前記持続インタフェース・プログラムとの間に確立され
    た非連続通信接続を介して前記ブラウザとの間でデータ
    を送受信することができ、前記ブラウザから受信した要
    求を処理した後、活動状態を維持する持続インタフェー
    ス・プログラムとを含む、持続インタフェース装置。
  2. 【請求項2】前記メモリ内に常駐する識別メカニズムで
    あって、前記持続インタフェース・プログラムによって
    受け入れられる少なくとも1つのブラウザからの少なく
    とも1つの資源固有アドレスを識別する識別メカニズム
    をさらに含む、請求項1に記載の装置。
  3. 【請求項3】前記メモリ内に常駐するタイムアウト・メ
    カニズムであって、所定の期間後に前記持続インタフェ
    ース・プログラムを終了するタイムアウト・メカニズム
    をさらに含む、請求項1に記載の装置。
  4. 【請求項4】前記メモリ内に常駐するプロセス・プール
    をさらに含み、前記持続インタフェース・プログラムが
    前記プロセス・プールの一部である、請求項1に記載の
    装置。
  5. 【請求項5】活動化グループをさらに含み、前記活動化
    グループが前記プロセス・プールの一部であり、前記持
    続インタフェース・プログラムが前記活動化グループの
    一部である、請求項4に記載の装置。
  6. 【請求項6】前記メモリ内に常駐するタイムアウト・メ
    カニズムであって、所定の期間後に前記持続インタフェ
    ース・プログラムを終了するタイムアウト・メカニズム
    と、 前記メモリ内に常駐する識別メカニズムであって、前記
    持続インタフェース・プログラムによって受け入れられ
    る少なくとも1つのブラウザからの少なくとも1つの資
    源固有アドレスを識別する識別メカニズムとをさらに含
    む、請求項1に記載の装置。
  7. 【請求項7】前記持続インタフェース・プログラムがC
    GIプログラムである、請求項1に記載の装置。
  8. 【請求項8】少なくとも1つのCPUと、 前記CPUに結合されたメモリと、 前記メモリ内に常駐し、前記CPUによって実行される
    持続CGIプログラムであって、ウェブ・ブラウザと前
    記持続CGIプログラムとの間に確立された非連続通信
    接続を介して前記ウェブ・ブラウザとの間でデータを送
    受信することができ、前記ウェブ・ブラウザから受信し
    た要求を処理した後、活動状態を維持する持続CGIプ
    ログラムと、 前記メモリ内に常駐する識別メカニズムであって、前記
    持続CGIプログラムによって受け入れられる少なくと
    も1つのウェブ・ブラウザからの少なくとも1つの資源
    固有アドレスを識別する識別メカニズムとを含む、持続
    CGI装置。
  9. 【請求項9】ブラウザと通信するための方法において、 前記ブラウザから持続インタフェース・プログラムに第
    1のブラウザ要求を送信するステップと、 前記第1のブラウザ要求を処理して結果を生成するステ
    ップと、 前記ブラウザから前記持続インタフェース・プログラム
    によって受け入れられる第1の資源固有アドレスをメモ
    リ位置内に格納するステップと、 前記結果を前記ブラウザに送信するステップと、 前記ブラウザと前記持続インタフェース・プログラムと
    の間に非連続通信リンクを確立するステップと、 前記結果を前記ブラウザに送信した後、前記持続インタ
    フェース・プログラムを活動状態に維持し、前記ブラウ
    ザからの後続要求を処理するステップとを含む方法。
  10. 【請求項10】前記ブラウザから前記持続インタフェー
    ス・プログラムに第2の要求を送信するステップであっ
    て、前記第2の要求が第2の資源固有アドレスに関連す
    るステップと、 前記ブラウザによって送信された前記第2の資源固有ア
    ドレスを前記メモリ位置内に格納された前記第1の資源
    固有アドレスと比較するステップと、 前記第2の資源固有アドレスが前記第1の資源固有アド
    レスと一致する場合に前記第2の要求を処理するステッ
    プとをさらに含む、請求項9に記載の方法。
  11. 【請求項11】所定の時間待った後で前記持続インタフ
    ェース・プログラムを終了するステップをさらに含む、
    請求項9に記載の方法。
  12. 【請求項12】前記持続インタフェース・プログラムに
    第1のブラウザ要求を送信する前記ステップが、前記第
    1のブラウザ要求をプロセス・プールに送信するステッ
    プであって、前記第1のブラウザ要求が前記持続インタ
    フェース・プログラムに割り当てられるステップを含
    む、請求項9に記載の方法。
  13. 【請求項13】前記プロセス・プール内の前記持続イン
    タフェース・プログラムを事前初期設定し、活動化グル
    ープを作成するステップをさらに含む、請求項12に記
    載の方法。
  14. 【請求項14】前記持続インタフェース・プログラムを
    含むすべてのステップが持続CGIプログラムによって
    実行される、請求項9に記載の方法。
  15. 【請求項15】ウェブ・ブラウザと通信するための方法
    において、 ウェブ・サーバを介して前記ウェブ・ブラウザから持続
    CGIプログラムに第1のウェブ・ブラウザ要求を送信
    するステップと、 前記第1のウェブ・ブラウザ要求を処理して結果を生成
    するステップと、 前記ウェブ・ブラウザから前記持続CGIプログラムに
    よって受け入れられる第1の資源固有アドレスをメモリ
    位置内に格納するステップと、 前記ウェブ・サーバを介して前記結果を前記ウェブ・ブ
    ラウザに送信するステップと、 前記ウェブ・ブラウザと前記持続CGIプログラムとの
    間に非連続通信リンクを確立するステップと、 前記結果を前記ウェブ・ブラウザに送信した後、前記持
    続CGIプログラムを活動状態に維持し、前記ウェブ・
    ブラウザからの後続要求を処理するステップと、 識別メカニズムを使用し、前記持続CGIプログラムに
    よって受け入れられる前記ウェブ・ブラウザからの少な
    くとも1つの資源固有アドレスを識別するステップとを
    含む方法。
  16. 【請求項16】(A)単一ブラウザからの一連の複数の
    ブラウザ要求にわたって前記単一ブラウザによって非連
    続通信接続を維持し、各ブラウザ要求を待っている間に
    活動状態を維持する持続インタフェース・プログラム
    と、 (B)前記持続インタフェース・プログラムを伝達する
    信号伝達媒体とを含む、プログラム製品。
  17. 【請求項17】前記信号伝達媒体が記録可能媒体を含
    む、請求項16に記載のプログラム製品。
  18. 【請求項18】前記信号伝達媒体が送信媒体を含む、請
    求項16に記載のプログラム製品。
  19. 【請求項19】前記持続インタフェース・プログラムが
    持続CGIプログラムを含む、請求項16に記載のプロ
    グラム製品。
  20. 【請求項20】(A)識別メカニズムを使用して単一ウ
    ェブ・ブラウザを識別することにより前記単一ウェブ・
    ブラウザからの一連の複数のウェブ・ブラウザ要求にわ
    たって前記単一ウェブ・ブラウザによって非連続通信接
    続を維持し、各ウェブ・ブラウザ要求を待っている間に
    活動状態を維持する持続CGIプログラムと、 (B)前記持続CGIプログラムを伝達する信号伝達媒
    体とを含む、プログラム製品。
  21. 【請求項21】(A)持続インタフェース・プログラム
    であって、 前記持続インタフェース・プログラムのインスタンスが
    非連続通信接続を介して単一ブラウザから受信した複数
    の独立ブラウザ要求を処理できるようにする通信メカニ
    ズムを含み、各独立ブラウザ要求を待っている間に活動
    状態を維持する持続インタフェース・プログラムと、 (B)前記持続インタフェース・プログラムを伝達する
    信号伝達媒体とを含む、プログラム製品。
  22. 【請求項22】前記信号伝達媒体が記録可能媒体を含
    む、請求項21に記載のプログラム製品。
  23. 【請求項23】前記信号伝達媒体が送信媒体を含む、請
    求項21に記載のプログラム製品。
  24. 【請求項24】ブラウザと持続インタフェース・プログ
    ラムとの間で通信するためのコンピュータ実施方法にお
    いて、 前記持続インタフェース・プログラムをインスタンス化
    するステップと、 前記ブラウザと前記持続インタフェース・プログラムと
    の間に非連続接続を確立するステップと、 前記ブラウザから前記持続インタフェース・プログラム
    に第1のブラウザ要求を送信するステップと、 前記持続インタフェース・プログラムを使用して、前記
    ブラウザ要求から結果を生成するステップと、 前記ブラウザから前記持続インタフェース・プログラム
    によって受け入れられる第1の資源固有アドレスをメモ
    リ位置内に格納するステップと、 前記結果を前記ブラウザに送信するステップと、 前記持続インタフェース・プログラムを活動状態に維持
    するステップとを含む方法。
  25. 【請求項25】前記ブラウザから前記持続インタフェー
    ス・プログラムに第2の要求を送信するステップであっ
    て、前記第2の要求が第2の資源固有アドレスに関連す
    るステップと、 前記ブラウザによって送信された前記第2の資源固有ア
    ドレスを前記第1の資源固有アドレスと比較するステッ
    プと、 前記持続インタフェース・プログラムを使用し、前記第
    2の資源固有アドレスが前記第1の資源固有アドレスと
    一致する場合に前記第2の要求を処理するステップとを
    さらに含む、請求項24に記載のコンピュータ実施方
    法。
  26. 【請求項26】所定の時間後に前記持続インタフェース
    ・プログラムを終了するステップをさらに含む、請求項
    24に記載のコンピュータ実施方法。
  27. 【請求項27】前記持続インタフェース・プログラムに
    第1のブラウザ要求を送信する前記ステップが、前記第
    1のブラウザ要求をプロセス・プールに送信するステッ
    プであって、前記第1のブラウザ要求が前記プロセス・
    プール内の前記持続インタフェース・プログラムに割り
    当てられるステップを含む、請求項24に記載のコンピ
    ュータ実施方法。
  28. 【請求項28】前記プロセス・プール内の前記持続イン
    タフェース・プログラムを事前初期設定し、活動化グル
    ープを作成するステップをさらに含む、請求項27に記
    載のコンピュータ実施方法。
  29. 【請求項29】前記持続インタフェース・プログラムが
    持続CGIプログラムを含む、請求項24に記載のコン
    ピュータ実施方法。
  30. 【請求項30】ウェブ・ブラウザと持続CGIプログラ
    ムとの間で通信するためのコンピュータ実施方法におい
    て、 前記持続CGIプログラムをインスタンス化するステッ
    プと、 前記ウェブ・ブラウザと前記持続CGIプログラムとの
    間に非連続接続を確立するステップと、 ウェブ・サーバを介して前記ウェブ・ブラウザから前記
    持続CGIプログラムに第1のウェブ・ブラウザ要求を
    送信するステップと、 前記持続CGIプログラムを使用して、前記ウェブ・ブ
    ラウザ要求から結果を生成するステップと、 前記結果を前記ウェブ・ブラウザに送信するステップ
    と、 識別メカニズムを使用し、前記持続CGIプログラムに
    よって受け入れられる前記ウェブ・ブラウザからの少な
    くとも1つの資源固有アドレスを識別するステップと、 前記持続CGIプログラムを活動状態に維持し、前記ウ
    ェブ・ブラウザからの他の要求を待つステップとを含む
    方法。
JP19834798A 1997-07-17 1998-07-14 アプリケーション・インタフェースに持続性を提供するための装置および方法 Expired - Fee Related JP4233635B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/896,245 US6938257B1 (en) 1997-07-17 1997-07-17 Apparatus and method to provide persistence for application interfaces
US08/896245 1997-07-17

Publications (2)

Publication Number Publication Date
JPH1196095A true JPH1196095A (ja) 1999-04-09
JP4233635B2 JP4233635B2 (ja) 2009-03-04

Family

ID=25405875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19834798A Expired - Fee Related JP4233635B2 (ja) 1997-07-17 1998-07-14 アプリケーション・インタフェースに持続性を提供するための装置および方法

Country Status (4)

Country Link
US (1) US6938257B1 (ja)
JP (1) JP4233635B2 (ja)
KR (1) KR100322153B1 (ja)
TW (1) TW436698B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009376A (ja) * 2007-06-28 2009-01-15 Fujitsu Ltd 表示制御装置、表示制御プログラム及び方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346689B1 (en) * 1998-04-20 2008-03-18 Sun Microsystems, Inc. Computer architecture having a stateless human interface device and methods of use
US6772416B1 (en) * 1999-11-19 2004-08-03 General Dynamics Decision Systems, Inc. Separation kernel with memory allocation, remote procedure call and exception handling mechanisms
US7447802B2 (en) * 2001-03-30 2008-11-04 Oracle International Corporation Method and system for maintaining a configuration state
US7111038B2 (en) * 2002-04-03 2006-09-19 International Business Machines Corporation Enhancing application server performance by relocating performance-degrading processing
US20050071447A1 (en) * 2003-09-25 2005-03-31 International Business Machines Corporation Method, system and program product for testing a server application using a reentrant test application
JP4144609B2 (ja) * 2004-09-29 2008-09-03 ソニー株式会社 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム
US8166177B1 (en) * 2006-10-27 2012-04-24 Crimson Corporation Systems and methods for managing requests for connections to services on a computer system
US8209702B1 (en) * 2007-09-27 2012-06-26 Emc Corporation Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks
US8209701B1 (en) * 2007-09-27 2012-06-26 Emc Corporation Task management using multiple processing threads
JP2009289103A (ja) * 2008-05-30 2009-12-10 Fujitsu Ltd 情報処理システム、情報処理装置、及びコンピュータプログラム
EP2541424A4 (en) * 2010-02-23 2017-10-04 Fujitsu Limited Program, data management method, and data management device
US20120167122A1 (en) * 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US9419821B2 (en) 2011-06-20 2016-08-16 Dell Products, Lp Customer support system and method therefor
US9979755B2 (en) * 2011-06-20 2018-05-22 Dell Products, Lp System and method for routing customer support softphone call
US9021109B1 (en) * 2012-01-23 2015-04-28 Amazon Technologies, Inc. Controlling requests through message headers
US9983887B2 (en) 2015-06-05 2018-05-29 Apple Inc. Memory management of data processing systems
CN110851756A (zh) * 2019-10-12 2020-02-28 平安普惠企业管理有限公司 页面加载方法、装置、计算机可读存储介质及终端设备
CN113971969B (zh) * 2021-08-12 2023-03-24 荣耀终端有限公司 一种录音方法、装置、终端、介质及产品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214809A (ja) * 1993-01-18 1994-08-05 Toshiba Corp 計算機システム
JPH09171469A (ja) * 1995-12-20 1997-06-30 Mitsubishi Electric Corp プログラム動作制御方法およびプログラム動作制御システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server 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
US6038562A (en) * 1996-09-05 2000-03-14 International Business Machines Corporation Interface to support state-dependent web applications accessing a relational database
US5796952A (en) * 1997-03-21 1998-08-18 Dot Com Development, Inc. Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06214809A (ja) * 1993-01-18 1994-08-05 Toshiba Corp 計算機システム
JPH09171469A (ja) * 1995-12-20 1997-06-30 Mitsubishi Electric Corp プログラム動作制御方法およびプログラム動作制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009009376A (ja) * 2007-06-28 2009-01-15 Fujitsu Ltd 表示制御装置、表示制御プログラム及び方法

Also Published As

Publication number Publication date
TW436698B (en) 2001-05-28
KR100322153B1 (ko) 2002-03-08
KR19990013422A (ko) 1999-02-25
JP4233635B2 (ja) 2009-03-04
US6938257B1 (en) 2005-08-30

Similar Documents

Publication Publication Date Title
JP4233635B2 (ja) アプリケーション・インタフェースに持続性を提供するための装置および方法
US6237005B1 (en) Web server mechanism for processing multiple transactions in an interpreted language execution environment
AU746391B2 (en) Method and system for facilitating distributed software development in a distribution unaware manner
US6144990A (en) Computer apparatus and method for communicating between software applications and computers on the world-wide web using universal variable handling
US6845505B1 (en) Web request broker controlling multiple processes
US5892905A (en) Computer apparatus and method for providing a common user interface for software applications accessed via the world-wide web
JP3853592B2 (ja) 分散ウェブアプリケーションサーバ
JP4729172B2 (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
AU750435B2 (en) Method and apparatus for implementing an extensible authentication mechanism in a web application server
US6901425B1 (en) Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web
US6225995B1 (en) Method and apparatus for incorporating state information into a URL
US7716061B2 (en) Method and apparatus for obtaining status information in a grid
US5341499A (en) Method and apparatus for processing multiple file system server requests in a data processing network
JPH08502841A (ja) 分散適用業務処理ネットワーク
US6636900B2 (en) Method and apparatus for executing distributed objects over a network
EP0962860A2 (en) Apparatus and method for increasing the performance of JAVA programs running on a server
JPH0823825B2 (ja) 分散アプリケーシヨン・プログラムの実行方法
JPH02116955A (ja) ネツトワークにおける端末アドレス通知方法
JPH02127757A (ja) 分散アプリケーション・プログラム実行方法及びシステム資源管理方法
JPS62163155A (ja) 情報通信システム
WO2021022714A1 (zh) 跨区块链节点的消息处理方法及装置、设备、介质
US20050283455A1 (en) Processing of data sets in a computer network
US6128667A (en) System and method for deferred resolution hypertext links
US20020169881A1 (en) Method and apparatus for distributed access to services in a network data processing system
JPH06161919A (ja) メッセージ制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040330

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040521

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040630

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081028

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: 20081210

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111219

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121219

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131219

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees