JPH07302235A - クライアント・サーバシステム - Google Patents

クライアント・サーバシステム

Info

Publication number
JPH07302235A
JPH07302235A JP6114602A JP11460294A JPH07302235A JP H07302235 A JPH07302235 A JP H07302235A JP 6114602 A JP6114602 A JP 6114602A JP 11460294 A JP11460294 A JP 11460294A JP H07302235 A JPH07302235 A JP H07302235A
Authority
JP
Japan
Prior art keywords
client
server
remote procedure
thread
remote
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
JP6114602A
Other languages
English (en)
Inventor
Toshihiro Nishide
俊浩 西出
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP6114602A priority Critical patent/JPH07302235A/ja
Publication of JPH07302235A publication Critical patent/JPH07302235A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】 クライアント・サーバシステムにおいて、サ
ーバ側のリモートプロシジャをマルチスレッド構成にす
ることにより、サーバ側の物理的リソースの消費を最小
限に抑える。 【構成】 クライアント1のクライアントアプリケーシ
ョン11から引数を指定したリモートプロシジャ呼び出し
があると、リモートプロシジャ制御部14は引数および呼
び出すべきリモートプロシジャ名を含む要求メッセージ
をサーバ2に送信する。サーバ2のリモートプロシジャ
制御部24は、サーバ2側に存在する複数のリモートプロ
シジャ21-1〜21-nのうちの該当するリモートプロシジャ
21-1を呼び出す。リモートプロシジャ21-1では、そのス
レッド管理機構26が、その呼び出しに対応する1つのス
レッド25-1を新たに生成し、既に生成済の他のスレッド
を含め複数のスレッドを並行して実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、処理を要求するクライ
アントと処理を要求されるサーバとが通信網に接続され
たクライアント・サーバシステムに関する。
【0002】
【従来の技術】従来のこの種のクライアント・サーバシ
ステムとしては、図3に示すようなものが知られてい
る。同図において、100は処理を要求するクライアン
ト、200は処理を要求されるサーバであり、両者は通
信網300によって相互に接続されている。クライアン
ト100には、実際の処理要求を行うクライアントアプ
リケーション101,メッセージ組立部102,メッセ
ージ解析部103,送信部104および受信部105が
備えられ、サーバ200には、クライアント100から
の処理要求を実際に処理する複数のサーバアプリケーシ
ョン201−1〜201−n,メッセージ振分部20
2,メッセージ解析部203,メッセージ組立部20
4,送信部205および受信部206が備えられてい
る。
【0003】クライアントアプリケーション101は、
何れかのサーバアプリケーション、例えばサーバアプリ
ケーション201−1に対して処理を要求する場合、自
クライアント100上に存在するアプリケーションに対
して処理を要求する際の呼び出し手法とは異なり、要求
する処理の内容をメッセージ組立部102に通知する形
式で処理を要求する。メッセージ組立部102は、要求
された処理内容をメッセージとして組み立て、送信部1
04から通信網300を通じてサーバ200に送信す
る。この処理要求のメッセージはサーバ200の受信部
206で受信されてメッセージ解析部203に送られ、
このメッセージ解析部203でどのような処理内容であ
るか、またどのサーバアプリケーションに対するもので
あるかが解析され、この解析結果に基づきメッセージ振
分部202が該当するサーバアプリケーション201−
1に処理を要求する。処理を要求されたサーバアプリケ
ーション201−1での処理が終了すると、メッセージ
組立部204はその処理結果をメッセージとして組み立
て、送信部205および通信網300を通じてクライア
ント100に送信する。この処理結果のメッセージはク
ライアント100の受信部105で受信され、メッセー
ジ解析部103によって解析されて、要求元のクライア
ントアプリケーション101に処理結果が通知される。
【0004】上述した従来のクライアント・サーバシス
テムでは、クライアントアプリケーション101は、自
クライアント100上に存在するアプリケーションに対
して処理を要求する際の呼び出し手法とは別の形式でサ
ーバ200に対して処理を要求する必要があり、クライ
アントアプリケーション101の設計が面倒になるとい
う問題点がある。
【0005】そこで、このような問題点を解消するため
に、クライアント・サーバシステムにおける要求,応答
型の通信を通常の手続き呼び出しと同じように行えるよ
うにしたリモートプロシジャ呼び出し(RPC)が提案
されている。このリモートプロシジャ呼び出しでは、通
常のプロシジャ呼び出しと同じようにリモートプロシジ
ャを呼び出せるため、クライアントアプリケーションの
設計が容易になる。なお、呼び出したプログラムの実行
は、呼び出されたプロシジャの実行が終了するまで中断
される。また、呼び出しに際してパラメータを指定する
ことができ、プロシジャは値を返すことができる。
【0006】
【発明が解決しようとする課題】ところで、リモートプ
ロシジャ呼び出しを適用したクライアント・サーバシス
テムにおいて、システムのスループットを高めるには、
複数のクライアントアプリケーションが同時期に同種の
呼び出しを行った場合、それらの呼び出しにかかるリモ
ートプロシジャの処理を並行して処理し得るようにする
必要がある。しかし、これを実現するために、同種のリ
モートプロシジャをサーバ上に複数備える構成によれ
ば、各々のリモートプロシジャはそのコード部やデータ
部等を格納するために別個のメモリ等の物理的リソース
を必要とするため、サーバの物理的リソースが圧迫され
るという問題点がある。
【0007】本発明はこのような事情に鑑みて提案され
たものであり、その目的は、サーバ側の物理的リソース
の消費を最小限に抑えることができるクライアント・サ
ーバシステムを提供することにある。
【0008】
【課題を解決するための手段】本発明は上記の目的を達
成するために、サーバ側の各々のリモートプロシジャを
マルチスレッド構造のものとしている。そして、リモー
トプロシジャの呼び出しを受けた時点でその呼び出しに
対応する1つのスレッドを新たに生成し、既に生成済の
他のスレッドを含め複数のスレッドを並行して実行する
ように構成している。
【0009】
【作用】本発明のクライアント・サーバシステムにおい
ては、クライアントのクライアントアプリケーションか
ら引数を指定したリモートプロシジャ呼び出しがある
と、クライアント側リモートプロシジャ制御部が、クラ
イアント側送受信部および通信網を通じてサーバに対し
前記引数および呼び出すべきリモートプロシジャ名を含
む要求メッセージを送信し、この要求メッセージを受信
したサーバ側リモートプロシジャ部が、サーバ側に存在
する複数のリモートプロシジャのうちの該当するリモー
トプロシジャを呼び出す。呼び出されたリモートプロシ
ジャでは、そのスレッド管理機構が、その呼び出しに対
応する1つのスレッドを新たに生成し、既に生成済の他
のスレッドを含め複数のスレッドを並行して実行する。
そして、或るスレッドの実行により処理結果が得られる
と、サーバ側リモートプロシジャ制御部がその処理結果
を含む応答メッセージを生成してサーバ側送受信部およ
び通信網を通じてクライアントに送信し、この応答メッ
セージを受信したクライアント側リモートプロシジャ制
御部が、受信した応答メッセージ中の処理結果をクライ
アントアプリケーションに通知する。
【0010】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0011】図1は本発明のクライアント・サーバシス
テムの一実施例のブロック図である。同図において、1
は処理を要求するクライアント、2は処理を依頼される
サーバであり、クライアント1とサーバ2とは通信網3
によって相互に接続されている。クライアント1には、
リモートプロシジャ呼び出しによって実際に処理要求を
行うクライアントアプリケーション11,サーバ2との
間で通信網3を通じて通信するための送信部12および
受信部13,クライアントアプリケーション11から出
されたリモートプロシジャ呼び出しを処理するリモート
プロシジャ制御部14が設けられ、サーバ2には、クラ
イアント1からの処理要求を実際に処理する複数のリモ
ートプロシジャ21−1〜21−n,クライアント1と
の間で通信網3を通じて通信するための送信部22およ
び受信部23,クライアント1から出されたリモートプ
ロシジャ呼び出しを処理するリモートプロシジャ制御部
24が設けられている。
【0012】リモートプロシジャ21−1〜21−n
は、それぞれ異なる処理を実行するプロシジャであり、
複数のクライアントアプリケーションからの呼び出しを
並行して処理し得るように、リモートプロシジャ21−
1中に例示するスレッド25−1〜25−mの如く、そ
れぞれスレッドが複数存在し得るマルチスレッド構成を
有している。ここで、スレッドとは、計算の実体であ
り、サーバ2を構成するプロセッサの状態(レジスタ,
プログラムカウンタ,スタックポインタ,特権レベル
等)を含むコンテクストで構成される。同一リモートプ
ロシジャ内の複数のスレッドは、コード部やデータ等を
他のスレッドと共有するため、少ないメモリ資源で複数
の処理を多重に実行することができる。スケジューリン
グは、スレッド管理機構26によってスレッドを単位と
して行われる。
【0013】図2にスレッド管理機構26の処理例を示
す。スレッド管理機構26は、クライアントアプリケー
ション11からのリモートプロシジャへの接続要求時に
リモートプロシジャ内にクライアントアプリケーション
11に対応してスレッドを生成する(S1)。スレッド
管理機構26は、生成したスレッドを含めて次に実行す
べきスレッドを決定し(S2)、次いで、必要に応じて
現在実行中のスレッドの実行環境を退避する等のスレッ
ド実行環境の入れ替えを行って、これから実行すべきス
レッドの実行環境をリモートプロシジャ内に生成する
(S3)。実行環境が整いスレッドが実行可能な状態に
なると、スレッド管理機構26はスレッドを実行する
(S4)。そして、スレッドがプロセッサに依存しない
命令である、例えばディスクI/O等のI/O要求を行
ったとき、或いは予め定められたプロセッサ時間を消費
したタイムアウト時(S5,S6)は、処理S2に戻
り、次に実行すべき優先度の高いスレッドに処理を移
す。また、或るスレッドの実行中に、別のリモートプロ
シジャ呼び出しにより他のスレッドの生成要求が生じた
場合(S7)、現在のスレッドの実行を中断させてスレ
ッドの生成処理S1を実行し、処理S2に戻って次に実
行すべきスレッドを決定する。
【0014】以下、上述のように構成された本実施例の
クライアント・サーバシステムの動作を説明する。
【0015】クライアント1のクライアントアプリケー
ション11から、例えばリモートプロシジャ21−1の
プロシジャ名および引数を指定したリモートプロシジャ
呼び出しが発生すると、制御がリモートプロシジャ制御
部14に移り、クライアントアプリケーション11はそ
の時点で中断せしめられる。
【0016】リモートプロシジャ制御部14は、クライ
アントアプリケーション11から出された引数を送信し
やすい形にメッセージ化し、それを、呼び出すリモート
プロシジャ21−1のプロシジャ名と呼び出し元のクラ
イアントアプリケーション11の名前と共に、要求メッ
セージとして送信部12および通信網3を通じてサーバ
2に送信する。
【0017】サーバ2の受信部23は、メッセージ化さ
れた引数と呼び出すリモートプロシジャ21−1のプロ
シジャ名と呼び出し元のクライアントアプリケーション
11の名前とを含む要求メッセージを受信すると、これ
をリモートプロシジャ制御部24に通知し、リモートプ
ロシジャ制御部24は、メッセージ化された引数を元の
状態に展開し、呼び出し対象となるリモートプロシジャ
21−1に対し、呼び出し元のクライアントアプリケー
ション11の名前と共にそれらの引数を引き渡す。
【0018】リモートプロシジャ21−1のスレッド管
理機構26は、呼び出し元のクライアントアプリケーシ
ョン11の名前と引数とが渡されると、図2に示す処理
S1で、当該クライアントアプリケーション11の名前
に対応するスレッドを生成する。そして、今回生成した
スレッドを含めて次に実行すべきスレッドを決定し(S
2)、次に、実行すべきスレッドの実行環境をリモート
プロシジャ21−1内に生成し(S3)、スレッドを実
行する(S4)。そして、この実行中のスレッドがI/
O要求を行ったとき、或いは予め定められたプロセッサ
時間を消費したとき(S5,S6)、処理S2に戻って
次に実行すべき優先度の高いスレッドに処理を移す。こ
の結果、リモートプロシジャ21−1内では、このリモ
ートプロシジャ21−1を呼び出したクライアントアプ
リケーションの数に等しいスレッドが生成され、リモー
トプロシジャ21−1内で時分割的に順次処理されるこ
とになる。
【0019】さて、リモートプロシジャ21−1の或る
スレッド、例えばスレッド25−1で処理が終了する
と、その処理結果と要求元のクライアントアプリケーシ
ョン11の名前とがリモートプロシジャ制御部24に通
知される。リモートプロシジャ制御部24は、処理結果
を送信に適するようにメッセージ化し、クライアントア
プリケーション11の名前と共に、応答メッセージとし
て送信部22および通信網3を通じてクライアント1に
送信する。
【0020】この応答メッセージはクライアント1の受
信部13で受信されてリモートプロシジャ制御部14に
通知され、リモートプロシジャ制御部14は、呼び出し
元のクライアントアプリケーション11を再開せしめ
て、メッセージ化された処理結果をリモートプロシジャ
呼び出しのリモート値としてクライアントアプリケーシ
ョン11に返却する。
【0021】
【発明の効果】以上説明したように、本発明は、サーバ
側のリモートプロシジャをマルチスレッド構造にして、
リモートプロシジャ内の複数のスレッドによって各クラ
イアントアプリケーションの処理を各スレッドで分担し
て処理するようにしたので、スループットを低下させる
ことなくサーバ側の物理的リソースの消費を最小限に抑
えることができる効果がある。
【図面の簡単な説明】
【図1】本発明のクライアント・サーバシステムの一実
施例のブロック図である。
【図2】スレッド管理機構の処理例を示すフローチャー
トである。
【図3】従来のクライアント・サーバシステムの構成例
を示すブロック図である。
【符号の説明】
1…クライアント 11…クライアントアプリケーション 12…送信部 13…受信部 14…リモートプロシジャ制御部 2…サーバ 21−1〜21−n…リモートプロシジャ 22…送信部 23…受信部 24…リモートプロシジャ制御部 25−1〜25−m…スレッド 26…スレッド管理機構 3…通信網

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 処理を要求するクライアントと処理を要
    求されるサーバとが通信網に接続されたクライアント・
    サーバシステムにおいて、 前記クライアントに、 前記サーバとの間で前記通信網を介して通信するための
    クライアント側送受信部と、 処理を要求するクライアントアプリケーションと、 該クライアントアプリケーションからの引数を指定した
    リモートプロシジャ呼び出しに応答して前記クライアン
    ト側送受信部および前記通信網を通じて前記サーバに対
    し前記引数および呼び出すべきリモートプロシジャ名を
    含む要求メッセージを送信し、また前記クライアント側
    送受信部および前記通信網を通じて前記サーバから受信
    した応答メッセージ中の処理結果を前記クライアントア
    プリケーションに通知するクライアント側リモートプロ
    シジャ制御部とを備え、 前記サーバに、 前記クライアントとの間で前記通信網を介して通信する
    ためのサーバ側送受信部と、 おのおのがマルチスレッド構造の複数のリモートプロシ
    ジャと、 前記サーバ側送受信部で受信された前記要求メッセージ
    に応答して前記複数のリモートプロシジャのうちの該当
    するリモートプロシジャを呼び出し、またリモートプロ
    シジャの処理結果を含む応答メッセージを生成して前記
    サーバ側送受信部および前記通信網を通じて前記クライ
    アントに送信するサーバ側リモートプロシジャ制御部と
    を備えることを特徴とするクライアント・サーバシステ
    ム。
  2. 【請求項2】 前記サーバ側の個々のリモートプロシジ
    ャ中のスレッドを管理するスレッド管理機構を備え、 前記スレッド管理機構は、リモートプロシジャの呼び出
    しを受けた時点でその呼び出しに対応する1つのスレッ
    ドを新たに生成し、既に生成済の他のスレッドを含め複
    数のスレッドを並行して実行することを特徴とする請求
    項1記載のクライアント・サーバシステム。
JP6114602A 1994-04-30 1994-04-30 クライアント・サーバシステム Pending JPH07302235A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6114602A JPH07302235A (ja) 1994-04-30 1994-04-30 クライアント・サーバシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6114602A JPH07302235A (ja) 1994-04-30 1994-04-30 クライアント・サーバシステム

Publications (1)

Publication Number Publication Date
JPH07302235A true JPH07302235A (ja) 1995-11-14

Family

ID=14641967

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6114602A Pending JPH07302235A (ja) 1994-04-30 1994-04-30 クライアント・サーバシステム

Country Status (1)

Country Link
JP (1) JPH07302235A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150393A (ja) * 2001-11-09 2003-05-23 Nec Corp リモートサービス処理システムおよび方法、プログラム
US7512660B2 (en) 1997-06-10 2009-03-31 International Business Machines Corporation Message handling method, message handling apparatus, and memory media for storing a message handling apparatus controlling program
JP5163128B2 (ja) * 2006-01-31 2013-03-13 富士通株式会社 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512660B2 (en) 1997-06-10 2009-03-31 International Business Machines Corporation Message handling method, message handling apparatus, and memory media for storing a message handling apparatus controlling program
US8949309B2 (en) 1997-06-10 2015-02-03 International Business Machines Corporation Message handling method, for mobile agent in a distributed computer environment
JP2003150393A (ja) * 2001-11-09 2003-05-23 Nec Corp リモートサービス処理システムおよび方法、プログラム
JP5163128B2 (ja) * 2006-01-31 2013-03-13 富士通株式会社 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ

Similar Documents

Publication Publication Date Title
JP3610120B2 (ja) トランザクション・システム内のサーバの数を動的に制御する方法
US8024744B2 (en) Method and system for off-loading user queries to a task manager
Bangs et al. Better operating system features for faster network servers
KR20180073154A (ko) 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법
US8005926B2 (en) Tiered web site with web-tier admission control based on utilization data generated on application tier
JPH10149296A (ja) サーバ・コンピュータ集約トポロジーを識別するための方法及び装置
US6038664A (en) Method for selecting communication access method for local area networks
US20030135617A1 (en) Intelligent system control agent
CN113742111B (zh) 一种微服务rpc自适应调度方法及相关装置
US7966394B1 (en) Information model registry and brokering in virtualized environments
DE102004052412A1 (de) Verfahren und Vorrichtung zum dynamischen Umschalten zwischen Abfragen und Interrupt, um Netzverkehr zu handhaben
US20030055913A1 (en) Tiered web site with web-tier admission control based on utilization data generated on application tier
JP2002532777A (ja) オブジェクト指向リアルタイム・プロセス制御システムのためのタイムアウト・オブジェクト、およびその操作の方法
US7424712B1 (en) System and method for controlling co-scheduling of processes of parallel program
US6480879B1 (en) Framework for providing quality of service requirements in a distributed object-oriented computer system
JPH07302235A (ja) クライアント・サーバシステム
US20040215578A1 (en) Controlling usage of system resources by a network manager
US6629126B1 (en) Framework for providing quality of service requirements in a distributed object-oriented computer system
US9264506B2 (en) Pull data transfer method in request-response models
CN111752728B (zh) 消息传输方法及装置
Poellabauer et al. KECho—Event Communication for Distributed Kernel Services
WO2023203731A1 (ja) 演算処理オフロードシステム、演算処理オフロード方法およびプログラム
KR0143742B1 (ko) 다중처리 시스템을 위한 데이타 통신방법
CN114205269A (zh) 一种高性能多任务的tcp测速实现方法及系统
JPH0581163A (ja) 情報処理システム