JPH06214808A - クライアント/サーバ・アーキテクチャを提供する方法及び装置 - Google Patents

クライアント/サーバ・アーキテクチャを提供する方法及び装置

Info

Publication number
JPH06214808A
JPH06214808A JP26231693A JP26231693A JPH06214808A JP H06214808 A JPH06214808 A JP H06214808A JP 26231693 A JP26231693 A JP 26231693A JP 26231693 A JP26231693 A JP 26231693A JP H06214808 A JPH06214808 A JP H06214808A
Authority
JP
Japan
Prior art keywords
client
server
task
request
under
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
Application number
JP26231693A
Other languages
English (en)
Inventor
David I Shriver
デビッド・アイ・シュライバー
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 JPH06214808A publication Critical patent/JPH06214808A/ja
Pending 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
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 改良されたクライアント/サーバ・アーキテ
クチャを提供すること。 【構成】 本発明は、クライアントにとっては論理的及
び機能的に同じであるが、サーバがクライアントの要求
をサービスする時に、サーバを一時的にクライアントの
拡張として実行する。これはサーバの状態を、サーバが
新たな作業要求を受諾可能な準備状態として保存する
(レジスタ及びクリティカルな記憶ポインタを保管す
る)ことにより達成される。サーバのこの状態情報は、
制御をサーバ・コードに移行し、サーバ・オペレーショ
ンを再開するために、後にクライアントによりアクセス
されて使用される。クライアントの要求は呼出しの際
に、引数(パラメータ)として受渡される。メッセージ
転送と異なり、これは必ずしもデータ転送を含まず、要
求データのアドレスだけが転送される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は一般にデータ処理システ
ムに関し、特に、クライアント/サーバ・アーキテクチ
ャを提供する方法及び装置に関する。
【0002】
【従来の技術】ソフトウェア編成のクライアント/サー
バ方法が、コンピュータ・プログラミング技法において
確立される。現存のクライアント/サーバ・プログラミ
ングは、一般に、別のタスク(またはプロセス)の下で
実行される独立のクライアント(リクエスタ)及びサー
バのソフトウェア・ルーチンを含むように認識されてい
る。これらは通信またはメッセージ転送プロトコルを使
用して互いに通信し、サーバにより実行される作業に対
する要求をクライアントまたはリクエスタのために転送
し、これらの要求に対する応答が有れば、それぞれのク
ライアントまたはリクエスタに伝達する。
【0003】クライアント/サーバは、従来のプログラ
ムが別のプログラムをサブ・プログラムとして呼出す時
の状況とは区別される。
【0004】従来のプログラム構造を使用する場合、呼
出されるプログラムが入力され、必要な処理を実行後、
終了する。このプログラムは再入可能で逐次再使用可能
であるか、或いは再入不能であり、プログラム自身は共
用記憶装置または非共用記憶装置に在中する。プログラ
ムが再入可能な場合、各呼出者は固有に使用可能な1つ
または複数の作業記憶領域を割当てられる。複数の呼出
者が同時に同一の作業記憶を共用することは、一般には
認められていない。これは互いの変数に干渉してそれら
を破壊し、不正な結果を招く可能性があるからである。
【0005】従来のコンピュータ・サブプログラムのフ
ローは以下のようである。 1)必要な作業記憶の割当て 2)処理の実行 3)割当てられた作業記憶の解放 4)プログラムの終了(通常、呼出者に復帰する)
【0006】クライアント/サーバ・コンピューティン
グ構造を使用する場合、上述の呼出しプログラムがクラ
イアントと呼ばれる。クライアントの要求を処理するプ
ログラムがサーバと呼ばれる。クライアント/サーバ・
コンピューティング・システムを構成するプログラム
は、従来のプログラム構造とは異なって編成される。ク
ライアントが直接サーバを呼出すのではなく、要求をサ
ーバに転送するためにシステム・ルーチンが呼出され
る。別の主な相違点は、サーバ・プログラムはクライア
ントのサブプログラムとしては論理的に機能せずに、別
々の通常長時間実行される並行プログラムとして機能す
る。従来のプログラム/サブプログラム構造とクライア
ント/サーバ・プログラム構造との主な相違点は、1)
サーバ・プログラムの寿命が通常複数のクライアント要
求に跨って継続する、2)サーバはその作業記憶として
共通の存続する記憶域を使用する、ことが挙げられる。
すなわち、サーバによって受信される各要求は、固有の
別々の作業記憶を必要とせず、サーバは固有の作業記憶
への適切なアクセスを直列化し、制御する。
【0007】サーバ・コンピュータ・プログラムの標準
のフローは以下のようである。 1)1回の初期化(通常、作業記憶の割当て及び変数の
初期化)を実行する。 2)クライアント要求の処理を(サーバが停止するま
で)以下のようにループする。 a)クライアントからの要求を待機する。 b)クライアントの要求を処理する。 c)結果をクライアントに伝達する。 3)サーバが停止されると、作業記憶を解放し、終了す
る。
【0008】こうしたクライアント/サーバ・アーキテ
クチャはいくつかの利点を提供する。クライアント/サ
ーバ・アーキテクチャは、より単純で、より論理的なソ
フトウェア機能の編成を提供し、ソフトウェア機能はサ
ービス及びこうしたサービス要求の概念を基本として分
離される。サービスのこうした分離またはカプセル封じ
は、実行の独立性及び可搬性を促進する。分離はまた水
平及び垂直の両方のスケーラブル性を提供する。水平ス
ケーリングでは、サーバの機能はクライアントを追加ま
たは除去することにより変更される。垂直スケーリング
では、サーバの機能はサーバを高性能環境に移行するこ
とにより、或いは複数のサーバを追加することにより、
変更される。
【0009】これらの利点により、クライアント/サー
バ・コンピューティングの使用は増加しつつあるが、同
様に、いくつかの欠点も存在する。これらの欠点はいく
つかの環境において、その有用性を妨げることになる。
これらの問題の重要なものの1つに、性能低下がある。
従来のクライアント/サーバの実施例では、従来のプロ
グラム/サブプログラムの場合と比較して、実質的な性
能のオーバヘッドが存在する。これは主に、固有の別々
のタスクまたはプロセスの下で実行されるサーバ・プロ
グラムによる。
【0010】別々のサーバ・タスクは、これらのタスク
及びタスク切替えを管理するために、更にオペレーティ
ング・システム・オーバヘッドを必要とする。別々のサ
ーバ・タスクはまた、要求されるプロセス間通信によ
り、追加のオペレーティング・システム・オーバヘッド
を生じる。プロセス間通信は、クライアント・プログラ
ムからサーバ・プログラムへの要求、サーバ・プログラ
ムからクライアント・プログラムへの応答を含み、これ
らはあるメッセージ・プロトコルを介して転送される
が、従来のプログラム/サブプログラム・パラメータ転
送に比較して非効率的である。
【0011】タスク切替え及びプロセス間通信の組合わ
せは、長いコード・パス長及びより多くの要求データ及
び応答データの転送を生じる。
【0012】性能問題に加え、別々のサーバ・タスク
は、更にシステム管理の問題を生じる。これらにはシス
テム保護及びシステム会計が含まれる。システム保護の
問題は、別々のクライアント・タスク及びサーバ・タス
クが様々なシステム資源に対する異なる権限またはアク
セス特権を有する場合に指摘されなければならない。シ
ステム会計は、サーバによるシステム資源の使用がサー
ビスを受ける各クライアントに割当てられなければなら
ない場合に、より複雑となる。
【0013】このように現存のシステムでは、システム
・オーバヘッドの欠点を伴うことなく、クライアント/
サーバ・アーキテクチャを提供するための方法または装
置が提供されない。従って、現存のシステムのシステム
・オーバヘッドの欠点を伴わない、クライアント/サー
バ・アーキテクチャを提供する方法及び装置が必要とさ
れる。
【0014】
【発明が解決しようとする課題】本発明はクライアント
/サーバ・アーキテクチャを提供する方法及び装置を開
示する。本発明で述べられる方法及び装置は、クライア
ント/サーバ・アーキテクチャを提供する現存のシステ
ムの欠点を除去或いは低減する。
【0015】本発明の目的は、改良されたデータ処理シ
ステムを提供することである。
【0016】本発明の他の目的は、改良されたクライア
ント/サーバ・アーキテクチャを提供することである。
【0017】本発明の他の目的は、タスク切替え及びプ
ロセス間通信を低減する、より効率的なクライアント/
サーバ・オペレーションの方法を提供することである。
パラメータを引数として転送することにより、プログラ
ム間で制御を効率的に直接転送し、コード・パス長を短
小化し、要求データ及び応答データの転送量を低減す
る。
【0018】本発明の他の目的は、サーバがクライアン
ト・タスクの一部として実行されて、クライアントと同
じ権限を継承するときに、サーバとしての改良された保
護を提供することである。これにより資源へのアクセス
に対する保護の権限が、クライアント毎(或いはタスク
毎)に管理される。
【0019】本発明の他の目的は、サーバにより使用さ
れる資源が、サーバがサービスするクライアント・タス
クの合計に自動的に反映されるように、システム会計オ
ーバヘッドを単純化且つ低減することである。
【0020】本発明の他の目的は、サーバがクライアン
ト・タスクの一部であるときに、サーバがクライアント
・タスクの動作特性を保証することである。これらの動
作特性には、システム優先順位或いはシステム資源の所
有権が含まれる。
【0021】本発明の他の目的は、改良された回復を提
供することである。いくつかの動作環境では、タスクが
失敗すると、そのタスクがバック・アウトされる。すな
わち、タスクにより変更された資源が以前の状態に復元
される。サーバをクライアント・タスクの下で動作させ
ることにより、もしサーバが失敗しても、その(クライ
アント)タスクによって変更された資源だけが以前の値
にバック・アウトされる。サーバが別のタスクとして実
行され、各クライアント要求後に回復同期ポイントが特
定されない場合には、サーバ開始後の全ての資源がバッ
ク・アウトされる。
【0022】
【課題を解決するための手段】本発明によれば、クライ
アントの要求を処理する際に、サーバがクライアントの
タスク、サブタスクまたはプロセスの一部として実行さ
れる。本発明では、論理的及び機能的にはクライアント
にとって同様に見えるものの、サーバを一時的にクライ
アントの拡張として実行させ、サーバがクライアントの
要求をサービスする。これはサーバの状態を、新たな作
業要求を受諾可能な準備状態に保存する(レジスタ及び
クリティカルな記憶ポインタを保管することによる)こ
とにより達成される。サーバのこの状態情報は、後にサ
ーバ・コードに制御を転送し、サーバのオペレーション
を再開するために、クライアントによりアクセスされて
使用される。次に、クライアントの要求が呼出しに際
し、引数(パラメータ)として転送される。メッセージ
転送と異なり、これは必ずしもデータ転送を含まず、要
求データのアドレスだけが転送されたりする。
【0023】
【実施例】図1を参照すると、本発明によるデータ処理
システム100のブロック図が示される。データ処理シ
ステム100は、中央処理ユニット(CPU)04及び
メモリ06を含むプロセッサ02を含む。プロセッサ0
2には、ハード・ディスク・ファイル記憶装置08及び
フロッピー・ディスク装置10の形式の追加のメモリが
接続される。フロッピー・ディスク10はディスケット
12を受取り、これにはデータ処理システム100にお
いて本発明を実施するコンピュータ・プログラム・コー
ドが記録される。データ処理システム100はまた、プ
ロセッサ02へのユーザ入力を可能とするマウス14及
びキーボード16、及び可視データをユーザに表示する
ための表示装置18を含むユーザ・インタフェース・ハ
ードウェアを含む。
【0024】図2を参照すると、本発明を実行するため
に好適なオペレーションの流れ図が示される。流れ図に
おいて、図形規定に従い、テストまたは判断に対応して
ひし形が、処理または機能に対応して矩形が使用され
る。これらの規定は当業者には既知であり、この流れ図
は当業者が適切なコンピュータ・プログラミング言語に
よりコードを作成するのに十分なものである。
【0025】図2を参照すると、クライアントの開始
後、クライアントは処理ブロック100でクライアント
・タスク(またはサブタスクまたはプロセス)の下で実
行される。その後、処理ブロック110で、クライアン
トはサーバに対する要求以外の処理を実行する。その
後、処理ブロック120は、サーバ要求システム・ルー
チンに呼出しを発することにより、クライアント要求を
実施する。サーバ要求システム・ルーチンは、クライア
ントと同じタスク(クライアント・タスク)の下で実行
される。
【0026】その後、制御はサーバ要求システム・ルー
チンに移行する。サーバ要求システム・ルーチンの開始
後、処理ブロック200は共通記憶にクライアントの状
態と復帰アドレスを保管する。クライアントの状態は、
クライアントがサーバからの応答を待機している状態で
ある。共通記憶とは、タスクの呼出しを通じて持続し、
複数のタスクの下で実行されるクライアント/サーバ・
サービス・ルーチンによりアクセス可能な共用記憶をさ
す。その後、判断ブロック210はサーバが既に開始さ
れたかを判断する。サーバがまだ開始されていない場
合、処理ブロック220はサーバ開始システム・ルーチ
ンに呼出しを発する。サーバ開始システム・ルーチン
は、クライアントと同じタスク(クライアント・タス
ク)の下で実行される。
【0027】その後、制御はサーバ開始システム・ルー
チンへ移行する。サーバ開始システム・ルーチンの開始
後、処理ブロック300はクライアントと同じタスク
(クライアント・タスク)の下においてサーバを呼出
す。その後、処理ブロック310で、制御がサーバに移
行する。
【0028】その後、制御はサーバの開始に移行する。
サーバの開始後、処理ブロック400はサーバにより要
求される初期化を実行する。この初期化は存続する作業
記憶の割当てを含む。存続する作業記憶は、クライアン
ト・タスクの寿命を越えて存続する記憶である。その
後、処理ブロック410はクライアント要求を処理す
る。その後、処理ブロック420がサーバ待機サービス
・ルーチンを呼出す。サーバ待機サービス・ルーチン
は、クライアントと同じタスク(クライアント・タス
ク)の下で実行される。
【0029】その後、制御はサーバ待機サービス・ルー
チンの開始に移行する。サーバ待機サービス・ルーチン
の開始後、処理ブロック500は共通記憶にサーバの処
理ブロック410の状態及び復帰アドレスを保管する。
サーバの状態は、サーバがクライアントからの要求を待
機している状態である。その後、処理ブロック510は
共通記憶から、以前にサーバ要求システム・ルーチンの
処理ブロック200で保管されたクライアントの状態デ
ータを復元する。その後、処理ブロック520は、制御
を共通記憶から復元されたデータに保管される復帰アド
レスに受渡すことにより、制御をクライアントに戻す。
【0030】クライアントに制御が戻された後、処理ブ
ロック130はサーバへ要求を発する以外の処理を実行
する。その後、クライアントは停止する。
【0031】判断ブロック210に再び戻り、サーバが
既に開始されている場合、次に処理ブロック230は共
通記憶にサーバの保管された状態及び復帰アドレスを配
置する。サーバのこの保管された状態及び復帰アドレス
は、以前にサーバ待機サービス・ルーチンの処理ブロッ
ク500で共通記憶に保管されたものであり、サーバの
処理ブロック410のそれに相当する。その後、処理ブ
ロック240は共通記憶からサーバ状態及び復帰アドレ
スを復元する。その後、処理ブロック250は、制御を
共通記憶から復元されるデータに保管される復帰アドレ
スに受渡すことにより、制御をサーバに戻す。これによ
り制御はサーバの処理ブロック410に移行する。サー
バは要求の待機後に起動し、処理ブロック410でクラ
イアントの要求を処理する。しかしながら、制御をサー
バに提供したサーバ要求システム・ルーチンがクライア
ントと同じタスクの下で実行されたために、サーバはク
ライアントと同じタスクの下で実行される。
【0032】サーバが処理ブロック410でクライアン
ト要求を処理後、処理ブロック420はサーバ待機サー
ビス・ルーチンを呼出し、制御は再びクライアントに戻
り、サーバは別のクライアント要求を待機する。
【0033】サーバにより作業を待機し、要求を処理す
るこのサイクルは、サーバがオペレータ動作、クライア
ントによる終了要求、動作環境の終了、或いはサーバの
終了を生じる別の事象により終了されるまで、何度も繰
返される。
【0034】クライアント要求の結果生じるサーバから
の応答情報は、サーバ待機サービス・ルーチン呼出しの
パラメータとして、クライアントに戻される。それとは
別に、応答情報が共通記憶を使用して、クライアントに
戻されても良い。
【0035】上述の実施例では、サーバは直列に再使用
可能な資源として実施された。従って、サーバが第1の
クライアントにより使用されるとき、第2のクライアン
トはこのサーバを直ちには使用できない。本発明の別の
実施例では、サーバが解放されるまで第2のクライアン
トを延期するために、或いは第2のクライアントからの
要求をキューに登録するために、発生事象待機/登録論
理またはキューイング論理が使用される。
【0036】本発明の別の実施例では、サーバの複数の
活動コピーが同時に実行される。これらの複数の活動コ
ピーが資源を共用する場合、これらの資源の共用化が同
期される。
【0037】本発明は特に実施例を参照して述べられて
きたが、当業者には理解されるように、本発明の精神及
び範疇を逸脱することなく、様々な変更が可能である。
【0038】
【発明の効果】以上説明したように本発明によれば、タ
スク切替え及びプロセス間通信を含むシステム・オーバ
ヘッドを低減する、改良されたクライアント/サーバ・
アーキテクチャを提供することができる。
【図面の簡単な説明】
【図1】本発明の方法及び装置を形成するために使用さ
れるデータ処理システムのブロック図である。
【図2】本発明を実行するためのオペレーションの流れ
図である。
【符号の説明】
02 プロセッサ 04 CPU 06 メモリ 08 ハード・ディスク・ファイル記憶装置 10 フロッピー・ディスク装置

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】クライアント及びサーバを有するクライア
    ント/サーバ・アーキテクチャを提供する方法であっ
    て、 クライアント・タスクの下でクライアントを実行するス
    テップと、 クライアント・タスクの下でサーバを実行するステップ
    と、 を含む方法。
  2. 【請求項2】上記クライアント・タスクの下で上記クラ
    イアントを実行する上記ステップが、 上記クライアントの状態を保管するステップと、 上記クライアント・タスクの下で上記サーバの実行を呼
    出すステップと、 を含む、請求項1記載の方法。
  3. 【請求項3】上記クライアント・タスクの下で上記サー
    バを実行する上記ステップが、 上記サーバの状態を保管するステップと、 プログラム制御を上記クライアントに戻すステップと、 を含む、請求項1記載の方法。
  4. 【請求項4】クライアント及びサーバを有するクライア
    ント/サーバ・アーキテクチャを提供する装置であっ
    て、 クライアント・タスクの下でクライアントを実行する手
    段と、 クライアント・タスクの下でサーバを実行する手段と、 を含む装置。
  5. 【請求項5】上記クライアント・タスクの下で上記クラ
    イアントを実行する上記手段が、 上記クライアントの状態を保管する手段と、 上記クライアント・タスクの下で上記サーバの実行を呼
    出す手段と、 を含む、請求項4記載の装置。
  6. 【請求項6】上記クライアント・タスクの下で上記サー
    バを実行する上記手段が、 上記サーバの状態を保管する手段と、 プログラム制御を上記クライアントに戻す手段と、 を含む、請求項4記載の装置。
  7. 【請求項7】クライアント及びサーバを有するクライア
    ント/サーバ・アーキテクチャを可能とする方法であっ
    て、 クライアント・タスクの下でクライアントを実行する手
    段を提供するステップと、 クライアント・タスクの下でサーバを実行する手段を提
    供するステップと、 を含む方法。
  8. 【請求項8】上記クライアント・タスクの下で上記クラ
    イアントを実行する上記手段を提供するステップが、 上記クライアントの状態を保管する手段を提供するステ
    ップと、 上記クライアント・タスクの下で上記サーバの実行を呼
    出す手段を提供するステップと、 を含む、請求項7記載の方法。
  9. 【請求項9】上記クライアント・タスクの下で上記サー
    バを実行する上記手段を提供するステップが、 上記サーバの状態を保管する手段を提供するステップ
    と、 プログラム制御を上記クライアントに戻す手段を提供す
    るステップと、 を含む、請求項7記載の方法。
JP26231693A 1992-11-19 1993-10-20 クライアント/サーバ・アーキテクチャを提供する方法及び装置 Pending JPH06214808A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US97864792A 1992-11-19 1992-11-19
US978647 1992-11-19

Publications (1)

Publication Number Publication Date
JPH06214808A true JPH06214808A (ja) 1994-08-05

Family

ID=25526290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26231693A Pending JPH06214808A (ja) 1992-11-19 1993-10-20 クライアント/サーバ・アーキテクチャを提供する方法及び装置

Country Status (2)

Country Link
EP (1) EP0598673A1 (ja)
JP (1) JPH06214808A (ja)

Also Published As

Publication number Publication date
EP0598673A1 (en) 1994-05-25

Similar Documents

Publication Publication Date Title
US5452459A (en) Method and apparatus for allocating server access in a distributed computing environment
KR100733852B1 (ko) 계산기 시스템
US5276879A (en) Portable, resource sharing file server using co-routines
US7051330B1 (en) Generic application server and method of operation therefor
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US6275893B1 (en) Method and apparatus for providing seamless hooking and intercepting of selected kernel and HAL exported entry points in an operating system
JP4410795B2 (ja) 共有リソースの同時アクセス
US8032899B2 (en) Providing policy-based operating system services in a hypervisor on a computing system
US6223207B1 (en) Input/output completion port queue data structures and methods for using same
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
US20040216145A1 (en) User mode device driver interface
US5666523A (en) Method and system for distributing asynchronous input from a system input queue to reduce context switches
EP0272835B1 (en) Virtual execution of programs on a multiprocessor system
JPH0283627A (ja) インタプリタ
US20080148355A1 (en) Providing Policy-Based Operating System Services in an Operating System on a Computing System
US20020091695A1 (en) Remote computation framework
KR20010041297A (ko) 원격 프로세스의 중단과 연속 방법 및 장치
US7552434B2 (en) Method of performing kernel task upon initial execution of process at user level
US10289306B1 (en) Data storage system with core-affined thread processing of data movement requests
US5761696A (en) Parallel database serving mechanism for a single-level-store computer system
US20180270306A1 (en) Coexistence of a synchronous architecture and an asynchronous architecture in a server
US7594229B2 (en) Predictive resource allocation in computing systems
JPH06214808A (ja) クライアント/サーバ・アーキテクチャを提供する方法及び装置
US20020129144A1 (en) Data processing method and apparatus
JPH01195562A (ja) 入出力装置割当て制御方式