[go: up one dir, main page]

JPWO2001025934A1 - Server/Client System - Google Patents

Server/Client System

Info

Publication number
JPWO2001025934A1
JPWO2001025934A1 JP2001-528827A JP2001528827A JPWO2001025934A1 JP WO2001025934 A1 JPWO2001025934 A1 JP WO2001025934A1 JP 2001528827 A JP2001528827 A JP 2001528827A JP WO2001025934 A1 JPWO2001025934 A1 JP WO2001025934A1
Authority
JP
Japan
Prior art keywords
port
server
client
virtual
device driver
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
JP2001-528827A
Other languages
Japanese (ja)
Other versions
JP4592242B2 (en
Inventor
貴弥 笠作
靖治 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority claimed from PCT/JP1999/005497 external-priority patent/WO2001025934A1/en
Publication of JPWO2001025934A1 publication Critical patent/JPWO2001025934A1/en
Application granted granted Critical
Publication of JP4592242B2 publication Critical patent/JP4592242B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 本サーバ/クライアントシステムは、少なくとも1個のI/Oポートを有する少なくとも1個のクライアントを通信回線を介して1個のサーバに接続するサーバ/クライアントシステムであって、サーバに、I/Oポートを制御するためのデバイスドライバと、このデバイスドライバに対してI/Oポートと同一の機能を有するインターフェースを提供しかつデバイスドライバからの入出力制御信号をクライアント側に送信しまたクライアント側からのイベントを受信して前記デバイスドライバに通知するための仮想I/Oポートを設け、クライアント側に通信回線を介して仮想I/Oポートに接続されるデバイスハンドラを設け、このデバイスハンドラによってI/Oポートを制御する構成を有する。 (57) [Abstract] This server/client system is a server/client system that connects at least one client having at least one I/O port to one server via a communication line, and is configured such that the server is provided with a device driver for controlling the I/O port and a virtual I/O port that provides an interface to the device driver with the same functions as the I/O port and sends input/output control signals from the device driver to the client side and receives events from the client side and notifies the device driver, and the client side is provided with a device handler connected to the virtual I/O port via the communication line, and the I/O port is controlled by the device handler.

Description

【発明の詳細な説明】Detailed Description of the Invention

技術分野 本発明はサーバ/クライアントシステムに関し、特に、クライアント側のハー
ドウエア資源を軽減したサーバ/クライアントシステムに関する。 背景技術 図1は、従来のサーバ/クライアントシステムのハードウエア構成を概略的に
示す図である。図において100はサーバ、200はパソコン相当のクライアン
トを示し、両者の間は通信回線300によって接続されている。また、クライア
ント200には、プリンタ、メモリカードリーダ、バーコードリーダ等のI/O
デバイス400が接続回線500を介して接続されている。 従来のサーバ/クライアントシステムにおけるサーバ100は、CPU101
、メモリ102、ハードディスク103aおよび103b、回線制御部104を
含んでいる。サーバ内のハードディスクは、一方に故障が生じた場合も他方でカ
バーできるように通常二重化(ミラーリング)されている。 クライアント200は、CPU201、メモリ202、ハードディスク203
、回線制御部204、I/Oポート205を含んでいる。ハードディスク203
内には、各種アプリケーションおよびデバイスドライバ、およびクライアント2
00の動作を制御するオペレーションシステム(O/S)がソフトウエア206
として組み込まれている。 従来のサーバ/クライアントシステムでは、図示する様に、アプリケーション
はクライアント側において動作する構成になっており、そのため近年、O/Sや
アプリケーションのコードサイズが大容量化し、またデバイスドライバの増加に
より、更に処理能力の高いハードウエア資源やより大容量の記憶装置を備えるク
ライアントが求められている。 しかしながら、ハードウエア資源として多用されるハードディスクは大容量化
するに伴ってコストが上昇すると共に、故障の発生も多い。従って、製造コスト
の面のみならず、システム運用上のコスト面からもハードウエア資源の大容量化
は好ましいものではない。従って、従来のアプリケーションやデバイスドライバ
の資産を有効活用しながらクライアント側での処理負担を軽減し、クライアント
を軽量化することが求められている。 このため、サーバ100においてアプリケーションを動作させ、クライアント
とサーバ間で画面とキー入力を転送すれば、クライアント200の処理負担は軽
減され、それに伴ってハードウエアを軽量化することができる。I/Oデバイス
はユーザの近く、即ちクライアントに接続されるのが普通であるため、デバイス
ドライバはクライアントに側に配置される。 この様に、アプリケーションをサーバ側に置き、一方クライアント側でデバイ
スドライバを動作させる場合、I/Oデバイス制御に関して以下の問題が生じる
。 (1)クライアントのデバイスドライバは、コードサイズの大きいO/Sに依
存している場合が多く、従ってデバイスドライバをクライアント側に置くと、ク
ライアントの処理負担が大きくなり、デバイスドライバを動作させるのに必要な
O/Sのための記憶装置が必要となってしまう。 (2)サーバ側に置いたアプリケーションと、クライアント側に置いたデバイ
スドライバ間でインターフェースが変わるため、デバイスドライバを作成しなお
す必要が生じる。 (3)I/Oデバイスが複数種類ある場合、それぞれのデバイスドライバも、
前記(2)の理由で作成しなおす必要が生じる。 (4)デバイスドライバの版数はクライアントの設置してある場所でしか確認
することができない。 (5)クライアントI/Oデバイスの診断は、クライアントの設置してある場
所でしか行うことが出来ない。 (6)クライアントのプラットフォームが変わる毎にデバイスドライバを作成
しなおす必要が生じる。 以上の様に、アプリケーションをサーバ側で動作させ、デバイスドライバをク
ライアント側で動作させると、特に上記(1)、(2)、(3)の理由によりク
ライアントの軽量化および従来のアプリケーション、デバイスドライバ等の資産
の有効活用は困難となる。更に、上記(4)、(5)、(6)に示す様に、シス
テムの効率的な運用が難しい。 発明の開示 本発明は、前記の問題点に鑑みてなされたもので、従来のアプリケーション、
デバイスドライバ等の資産を有効活用し、かつクライアント側のハードウエア資
源を大幅に軽量化することが可能なサーバ/クライアントシステムを得ることを
その主な目的とする。 前記目的を達成する本発明の1実施形態によれば、少なくとも1個のI/Oポ
ートを有する少なくとも1個のクライアントを通信回線を介して1個のサーバに
接続するサーバ/クライアントシステムにおいて、前記サーバ側に、前記I/O
ポートを制御するためのデバイスドライバと、該デバイスドライバに対して前記
I/Oポートと同一の機能を有するインターフェースを提供しかつ前記デバイス
ドライバからの入出力制御信号を前記クライアント側に送信し該クライアント側
からのイベントを受信して前記デバイスドライバに通知するための仮想I/Oポ
ートを設け、前記クライアント側に前記通信回線を介して前記仮想I/Oポート
に接続されるデバイスハンドラを設け、該デバイスハンドラによって前記I/O
ポートを制御する構成としたことを特徴とする、サーバ/クライアントシステム
が提供される。 この様なサーバ/クライアントシステムでは、デバイスドライバと仮想I/O
ポートによって、従来のサーバ/クライアントシステムにおけるデバイスドライ
バとI/Oポート間のインターフェースと同じインターフェースがサーバ側で実
現されるので、従来のクライアント側で使用していたアプリケーションおよびデ
バイスドライバを全てサーバ側において動作させることが可能となる。これによ
ってクライアント側のハードウエア資源を大幅に軽量化する事が可能となると共
に、従来のアプリケーションおよびデバイスドライバの資産を変更せずそのまま
サーバ側で使用することができる。 更に、前記構成のサーバ/クライアントシステムにおいて、仮想I/Oポート
にクライアントの通信回線上のアドレス、及び各I/Oポートを識別する機能を
持たせることによって、複数の軽量化されたクライアントを1台のサーバによっ
て一元管理することが可能となる。 また前記仮想I/Oポートにクライアント側のハードウエアの診断機能を付加
することによって、複数のクライアントを管理するサーバにおいて、各クライア
ントのハードウエア診断を一元的に行うことが可能となる。 発明を実施するための最良の態様 図2は、本発明の1実施形態にかかるサーバ/クライアントシステムのハード
ウエア構成を示すブロック図である。図示する様に本実施形態のサーバ1は、C
PU11、メモリ12およびハードディスク13a、13b等の記憶装置および
回線制御部14で構成されている。2重構造のハードディスク13a、13b内
には、従来クライアント側にあった各種アプリケーション、デバイスドライバお
よび後述する仮想I/OポートおよびO/Sがソフトウエア15として組み込ま
れている。 クライアント2は、CPU21、メモリ22およびROM23等の記憶装置、
回線制御部24およびI/Oポート25で構成されている。本システムでは、ア
プリケーションおよびデバイスドライバをサーバ側に置き、それらをサーバ側で
動作させる構成を取っているため、ROM23内には、サーバ側のデバイスドラ
イバから通信回線3を介して送信される信号をI/Oポート25に入力可能な信
号に変換するためのソフトウエア、即ちデバイスハンドラ、およびクライアント
2全体を制御するための組込み用O/Sがソフトウエア26として収納される。
なお、デバイスハンドラの詳細な機能については、後述する。 本実施形態のクライアント2では、クライアント内でアプリケーションを動作
させる必要がないので、デバイスハンドラおよびO/Sを含めたソフトウエア全
体のコードサイズは従来のシステムに比べて遙に小さく、上述した様にROM2
3内に十分収納することができる。これによってクライアント内にハードディス
クは不必要となる。 一般のサーバ/クライアントシステムにおいては、クライアント側の主な故障
原因はハードディスクであり、従って本発明のシステムではハードディスクが不
要となる事でシステムの信頼性が大きく向上する。 通信回線3としては、例えばLAN(Local Area Network
)等を想定する。 図3は、図2に示すサーバ/クライアントシステムのソフトウエア構成を示す
図面である。本実施形態のシステムでは、サーバ1内に各種アプリケーション1
6、各種I/Oデバイス4を駆動するためのデバイスドライバ17およびデバイ
スドライバ17からの信号を通信回線3で伝送しうる信号に変換し、かつ通信回
線3を介して入力された信号をデバイスドライバ17に入力しうる信号に変換す
るための仮想I/Oポート18およびこれらのソフトウエアを制御するO/S1
9が設けられている。O/S19は、これらのソフトウエアがクライアント2内
に有った場合に使用されるO/Sと同じ物、例えばウインドウズ98(商標)、
ウインドウズNT(商標)などの既存のO/Sを使用することができる。なお、
アプリケーションおよびデバイスドライバも、既存のシステムにおいて使用され
ているものを使用することができることは勿論である。 クライアント2は、通信回線3を介して入力された信号をI/Oポート25で
認識しうる信号に変換し、かつI/Oポート25からの信号を通信回線3で伝送
しうる信号に変換するためのデバイスハンドラ27を含む。本発明では、クライ
アント2側にコードサイズが大きいアプリケーションおよびデバイスドライバを
含まず、ソフトウエアとしてはコードサイズが小さいデバイスハンドラ27のみ
を含むので、これを制御するO/S28は、極めて単純な構成の組込み用O/S
であって良い。 サーバ1内の仮想I/Oポート18は、基本的に次の機能を有している。即ち
、 (1)クライアント2側のI/Oポート25と同一に機能するインターフェー
スを、その上位のデバイスドライバ17に提供すること、 (2)上位のデバイスドライバ17からの入出力制御信号をクライアント2の
デバイスハンドラ27に送信すること、およびデバイスハンドラ27からのイベ
ントを受信して上位のデバイスドライバ17に通知すること、である。 また、クライアント2側のデバイスハンドラ27の必要最低限の機能は、 (1)サーバ1の仮想I/Oポート18から送信された入出力制御信号を受信
し、I/Oポートに対して入力制御/出力制御を行い、かつI/Oポート25か
らのイベントをサーバ1の仮想I/Oポート18に送信することである。 本実施形態のサーバ/クライアントシステムでは、以上の様に、サーバ側に仮
想I/Oポートを、クライアント2側にデバイスハンドラを設けたことにより、
従来のアプリケーションおよびデバイスドライバを変更することなくサーバ側で
動作させることが可能となり、クライアントのハードウエア資源が大幅に軽量化
される。 以下に、本システムの更に詳細な構成およびその動作を、サーバ1内のアプリ
ケーション16とI/Oデバイス4間のデータフローを示す図4を用いて説明す
る。 まず、アプリケーション16からI/Oデバイス4へのデータ入出力は以下の
通りである。 (1)アプリケーション16は入出力したいデータを含む入出力処理要求を
デバイスドライバ17に対して行い、 (2)デバイスドライバ17は入出力処理要求に従い、仮想I/Oポート1
8の入出力制御を行う。 (3)仮想I/Oポート18は入出力制御を通信回線3上のデータに変換し
、クライアント2側のデバイスハンドラ27に入出力制御パケットとして送信
する。 (4)デバイスハンドラ27は入出力制御パケットを受信すると、内容を解
釈しI/Oポート25の入出力制御を行う。 (5)I/Oポート25は入出力制御を接続回線5上のデータに変換し、
外部I/Oデバイス4に送信し、これを制御する。 以上によって、アプリケーションからI/Oデバイス4へ、入出力制御が実行
される。 次に、I/Oデバイス4からアプリケーション16へのイベントの通知につい
て説明する。 まず、(6)I/Oデバイス4はイベント(制御信号線変化等)を接続回線
5上に出力する。 (7)デバイスハンドラ27はI/Oポート25からのイベントを通信回線
上のデータに変換し、仮想I/Oポート18にイベントパケットとして送信す
る。 (8)仮想I/Oポート18はイベントパケットを受信すると、内容を解釈
し、デバイスドライバ17にイベントを上げる。 (9)デバイスドライバ17は、アプリケーション16に対して、イベント〔
10〕を上げる。 以上が、本実施形態のサーバ/クライアントシステムにおけるアプリケーショ
ン16とI/Oデバイス4間のデータフローである。 次に、本実施形態にかかるサーバ/クライアントシステムの動作シーケンスを
、図5を用いて説明する。 サーバ1およびクライアント2に電源が投入されると、先ず、仮想I/Oポー
ト18とデバイスハンドラ27間のコネクションが確立される。このコネクショ
ン確立は双方のネゴシエーションにより行われる。即ち、クライアント2側に電
源が投入されると、デバイスハンドラ27は通信回線上のコネクション確立要求
のための接続要求〔11〕(ブロードキャスト)を仮想I/Oポート18に送信
する。サーバ1に電源が投入されていて、仮想I/Oポート18が起動している
と、これに対するレスポンス〔12〕が仮想I/Oポート18よりデバイスハン
ドラ27に出力される。レスポンス〔12〕には、仮想I/Oポート18の設定
機能によって予め設定されたクライアント2の通信回線上のアドレス、クライア
ント2が持つ物理I/Oポートの種別、番号のマッピング情報が含まれる。デバ
イスハンドラ27はこのレスポンス〔12〕を受信すると、通信回線上のコネク
ションを確立し、マッピング情報に従って物理I/Oポートのマッピングを行い
、これが完了するとマッピング完了通知〔13〕を仮想I/Oポート18に送信
する。仮想I/Oポート18はこの通知〔13〕を受信すると、これに対するレ
スポンス〔14〕を送信する。この時点で、仮想I/Oポート18はデバイスド
ライバ17からの制御を受け付ける事が可能となる。なお、この時点より以前に
デバイスドライバ17から制御信号が送信されると、仮想I/Oポート18はエ
ラー信号をデバイスドライバ17に返す。 次に、アプリケーション16からI/Oデバイス4へのデータ入出力について
、そのシーケンスを説明する。なおこの場合のデータフローは、図4に示した通
りである。 先ず、アプリケーション16の入出力要求〔15〕は、デバイスドライバ17
に受け付けられ、デバイスドライバ17は仮想I/Oポート18に入出力制御〔
16〕を行う。仮想I/Oポート18は入出力制御〔16〕を通信回線上のデー
タに変換し、これをデバイスハンドラ27に入出力制御パケット〔17〕として
送信する。デバイスハンドラ27は入出力制御パケット〔17〕を受信すると、
内容を解釈しI/Oポート25の入出力制御〔18〕を行う。I/Oポート25
は接続回線5上にデータ〔19〕を出力する。 次に、I/Oデバイス4からアプリケーション16へのイベントの通知につい
て説明する。 I/Oデバイス4はイベント(制御信号変化等)〔20〕を接続回線上に出力
すると、デバイスハンドラ2 7はI/Oポート25からのイベント〔21〕を
通信回線上のデータに変換し、仮想I/Oポート18にイベントパケット〔22
〕として送信する。仮想I/Oポート18がイベントパケット〔22〕を受信す
ると、内容を解釈し、デバイスドライバ17にイベント〔23〕を上げる。デバ
イスドライバ17はアプリケーション16に対してイベント〔24〕を上げる。 図6は、仮想I/Oポート18の機能を示すためのフローチャートである。な
おこのフローチャートは、仮想I/Oポート18の必要最低限の機能のみを示し
ている。 仮想I/Oポート18の内部の状態として、以下に示すものを想定する。即ち
、 (1)待機:クライアント2側からの接続要求受信待ちの状態、 (2)完了通知待ち:クライアント2の物理I/Oポートのマッピング完了通
知待ちの状態、 (3)接続:クライアント2の物理I/Oポートのマッピング完了通知受信後
、デバイスドライバ17からの制御を受け付けることが可能な状態、である。 仮想I/Oポートの前記各状態に対して、以下に示すイベントを想定する。即
ち、 (4)接続要求受信:クライアント2からの接続要求受信のイベント、 (5)完了通知受信:クライアント2の物理I/Oポートのマッピング完了通
知受信のイベント、 (6)入出力制御要求:デバイスドライバ17からの入出力制御要求のイベン
ト、 (7)イベントパケット受信:クライアント2からのイベントパケット受信の
イベント、である。 以上の状態、およびイベントを参照して、以下に仮想I/Oポート18の機能
を説明する。 図6において、ステップS1で初期化処理を行って、仮想I/Oポート18の
状態を待機状態に設定する。次に、ステップS2でイベント取得する。この時、
仮想I/Oポート18の状態が待機状態であれば(ステップS3のYes)、次
にステップS4でイベントが接続要求受信であるか否かを判定する。イベントが
接続要求受信で有る場合は(ステップS4のYes)、ステップS5でデバイス
ハンドラ27に対してレスポンスを送信し、ステップS6で状態を完了通知待ち
とする。ステップS4でイベントが接続要求受信で無い場合(No)、ステップ
S7で次に入力されるイベントが終了要求か否かを検出し、終了要求である場合
(Yes)は、仮想I/Oポート18の動作を終了する。一方、終了要求で無い
場合は、ステップS2に戻って再びイベントを取得し、更にそれ以降のステップ
を実行する。 ステップS3で状態が待機では無い場合(No)は、ステップS8で状態が完
了通知待ちであるか否かを判定する。完了通知待ち(ステップS8のYes)の
場合は、ステップS9においてイベントが完了通知受信であるか否かを判定する
。完了通知受信の場合(ステップSのYes)は、ステップS10においてレス
ポンスをデバイスハンドラ27に送信し、接続状態に移行する(テップS11)
。ステップS9においてイベントが完了通知受信で無い場合(No)は、イベン
トが終了要求の場合を除いてステップS2に移動して再びイベントを取得する。 ステップS8で、状態が完了通知待ちでは無い場合(ステップS8のNo)、
ステップS12で仮想I/Oポート18の状態が接続状態であるか否かを判定す
る。接続状態の場合(ステップS12のYes)、ステップS13でイベントが
入出力制御要求であるか否かを判定し、Yesの場合、ステップS14で入出力
制御パケットをデバイスハンドラ27に送信する。ステップS13でイベントが
入出力制御要求では無い場合(ステップS13のNo)、ステップS15におい
てイベントがイベントパケット受信であるか否かを判定し、Yesの場合、受信
したパケットをデバイスドライバ17に上げる。ステップS15でイベントパケ
ット受信では無い場合(No)、ステップS7においてイベントの終了要求があ
るか否かを判定し、Yesの場合は処理を終了し、Noの場合はステップS2に
移って以降の処理を続行する。 図7は、デバイスハンドラ27の機能を示すフローチャートである。なお、こ
のフローチャートはデバイスハンドラ27の必要最低限の機能のみを示している
。 デバイスハンドラ27の内部状態としては、次の(1)〜(3)を想定する。
即ち、 (1)待機:クライアント2の起動直後の状態、 (2)接続要求レスポンス待ち:接続要求送信後、サーバからのレスポンス待
ちの状態、 (3)接続:物理I/Oポートのマッピング完了通知送信後、仮想I/Oポー
ト18からの入出力制御パケットを受け付けることが可能な状態、である。 更に、デバイスハンドラ27の各状態に対して、(4)〜(7)のイベントを
想定する。即ち、 (4)イベント無し:イベントが何も無いこと、 (5)接続要求レスポンス受信:接続要求送信後、サーバからのレスポンス受
信のイベント、 (6)入出力制御パケット受信:サーバからの入出力制御パケット受信のイベ
ント、および (7)I/Oポートイベント:I/Oポート25からのイベント、である。 次に、図7を参照して、デバイスハンドラ27における処理手順を説明する。 先ず、ステップS20において初期化処理を行って状態を待機とし、ステップ
S21でイベントを取得する。次にステップS22でイベントの状態が待機か否
かを判定し、Yesの場合、ステップS23においてイベントが無いことを確認
する。イベントが無い場合(ステップS23のYes)、サーバ1の仮想I/O
ポート18に接続要求を送信し(ステップS24)、状態を接続要求レスポンス
待ちにする(ステップS25)。次にイベントが終了要求であるか否かを判定し
(ステップS26)、終了要求で無い場合はステップS21に移って以降のステ
ップを再度実行する。 ステップS22でデバイスハンドラ27の状態が待機で無いと判定されると(
ステップS22のNo)、ステップS27において状態が接続要求レスポンス待
ちであるか否かを判定する。Yesの場合、ステップS28において、イベント
が接続要求レスポンス受信であるか否かを判定し、Yesの場合、仮想I/Oポ
ート18に、物理I/Oポートマッピング完了通知を送信し、デバイスハンドラ
27の状態を接続にする(S30)。 一方、ステップS27で、デバイスハンドラ27の状態が接続要求レスポンス
待ちでは無い場合(No)、ステップS31において状態が接続か否かを判定す
る。Yesの場合、ステップS32においてイベントが入出力制御パケットの受
信であるか否かを判定する。Yesの場合、ステップS33において、I/Oポ
ート25に対し、入出力制御を行う。 ステップS32でイベントが入出力制御パケット受信で無い場合、ステップS
34でイベントがI/Oポートイベントか否かを判定し、Yesの場合は、ステ
ップS35で仮想I/Oポートに対してこのイベントパケットを送信する。なお
、ステップS34でイベントがI/Oポートイベントで無い場合は、ステップS
26において、イベントが終了要求か否かを判定し、Yesの場合は処理を終了
し、Noの場合はステップS21に移動して以降のステップを再度実行する。 以上の様に、本発明の第1の実施形態にかかるサーバ/クライアントシステム
では、サーバ側に仮想I/Oポート18を、クライアント側にデバイスハンドラ
27を設け、仮想I/Oポート18の上位層であるデバイスドライバからの処理
をデバイスハンドラ27に転送し、このデバイスハンドラによってI/Oポート
25の制御を行い、かつI/Oポート25からのイベントを仮想I/Oポート1
8に転送する構成としたため、従来クライアント側で動作していたアプリケーシ
ョンおよびデバイスドライバを、それらに変更を加えることなくサーバ1側で動
作させることが可能となる。これによって、クライアント2側での処理負担は非
常に軽減され、クライアント側にハードディスク等の大容量記憶装置の搭載が不
要となる。 なお、図2、3に示す本実施形態のサーバ/クライアントシステムでは、仮想
I/Oポート18とデバイスドライバ17との間のインターフェースとして、ク
ライアント側にデバイスドライバを有する従来のサーバ/クライアントシステム
において使用されているインターフェースを採用している。 図8aは、従来のシステムにおけるデバイスドライバ210とI/Oポート2
05(ハードウエア)間のインターフェース構成を示す図である。図示するよう
に、デバイスドライバ210とI/Oポート205間には、I/Oポートデバイ
スドライバ211が存在し、ハードウエアの違いを吸収するために、デバイスド
ライバ210がI/Oポート205に対して行う操作は、抽象化されたコマンド
30となる。I/Oポートデバイスドライバ211はこのコマンド30によって
I/Oポート205(ハードウエア)を制御31し、制御結果32をI/Oポー
ト205から受け取り、更に処理結果33をデバイスドライバ210に返す。 図2、3に示す本実施形態のサーバ/クライアントシステムでは、図8bに示
す様に、仮想I/Oポート18が、図8aに示すコマンド30と処理結果33の
インターフェースをそのままデバイスドライバ17に対して提供する構成とした
ものである。これによって、従来のシステムにおけるO/Sがデバイスドライバ
210に提供するAPI(アプリケーションインターフェース)環境を、本実施
形態のO/Sにおいてもデバイスドライバ17に提供する事ができる。この結果
本実施形態において、従来のデバイスドライバ210と同じデバイスドライバ1
7を使用してI/Oデバイス4の制御を行うことが可能となったものである。 以上の様に本実施形態のサーバ/クライアントシステムでは、サーバ側で従来
のデバイスドライバを変更せずそのまま使用することができ、既存の資産を有効
活用することができる。 図9は、本発明の第2の実施形態の構成を示すブロック図である。本実施形態
では、図示するように、1台のサーバ1に対して2台の本発明に従って軽量化さ
れたクライアント2aおよび2bが接続されている。なお、1個のサーバに対し
て接続されるクライアントの数は図示の例に限定されるものではなく、任意の複
数個のクライアントが接続可能であることは言うまでもない。 図示の実施形態において、クライアント2aはデバイスハンドラ27aとI/
Oポート25aを有し、I/Oポート25aを介してI/Oデバイス4aに接続
されている。 クライアント2bはデバイスハンドラ27bと2個のI/Oポート1、2を有
し、それぞれI/Oデバイス4b、I/Oデバイス4cに接続されている。 サーバ1において、アプリケーション16a内にはクライアント2aが使用す
るアプリケーション(1)とクライアント2bが使用するアプリケーション(2
)が含まれる。デバイスドライバ17a内は、クライアント2aに接続されたI
/Oデバイス4aを駆動するためのデバイスドライバ(1)、クライアント2b
に接続されたI/Oデバイス4bを駆動するためのデバイスドライバ(2)、I
/Oデバイス4cを駆動するためのデバイスドライバ(3)が含まれる。 本実施形態において、仮想I/Oポート18aは、通信回線3を介してサーバ
1に接続された各クライアント2a、2bおよび各I/Oポート25a、25b
、25cを識別するために、仮想I/Oポート18aにおける仮想I/Oポート
番号、各クライアント2a、2bの通信回線上のアドレス、各クライアントが持
つ物理I/Oポートの種別、および物理I/Oポート番号を、それぞれ設定でき
る機能を有している。 図10に図9のシステムにおける設定情報を示す。またこの設定情報は第5図
中のレスポンス〔12〕中に含まれる。 図10に示す設定情報に従って、クライアント(1)2aは、通信回線上のア
ドレス1で特定され、クライアント(2)2bはアドレス2で特定される。クラ
イアント(1)2a中のI/Oポート25aは、物理I/Oポート種別がCOM
で、物理I/Oポート番号が1として特定される。クライアント(2)2b中の
2個のI/Oポート25b、25cは、物理I/Oポート番号1、2で特定され
る。マッピング情報は、クライアントが持つ物理I/Oポートの種別、番号と仮
想I/Oポート番号として設定された番号とを、1対1で対応させる。例えば、
図10の例では、クライアント(1)2aの物理I/Oポート種別、番号=CO
M1は、仮想I/Oポート番号1に対応する。更にクライアント(2)2b中の
COM1は仮想I/Oポート番号2に、COM2は仮想I/Oポート番号3に、
それぞれ1対1で対応する。 図9のシステムにおいて、クライアント(1)2aに電源が投入されると、デ
バイスハンドラ27aが起動し、通信回線上のアドレス0(サーバ1)とアドレ
ス1(クライアント2a)間で仮想I/Oポート18aとのコネクションが確立
される。以降の仮想I/Oポート18aとデバイスハンドラ27a間のデータ転
送はこのコネクション上で行われる。デバイスドライバ17aからI/Oデバイ
ス4aに対する処理は、仮想I/Oポート18a上でI/Oポート25aに対す
る処理として受け付けられ、処理電文にI/Oポート25aを示すCOM1が付
加され、デバイスハンドラ27aに転送される。デバイスハンドラ27aでは、
処理電文に付された情報COM1から、I/Oポート25aが識別され、これに
対して処理が行われる。 一方、I/Oポート25aで発生したイベントには、デバイスハンドラ27a
において処理電文に1が付加され、仮想I/Oポート18aへパケット送信され
る。従って仮想I/Oポート18aでは、仮想I/Oポート番号1が認識され、
仮想I/Oポート番号1に対応するデバイスドライバ(1)にイベントの発生が
通知される。 クライアント2bに関しても、通信回線上のアドレス0とアドレス2間のコネ
クション上で、同様にして処理される。即ち、仮想I/Oポート18aとI/O
ポート25b間は、仮想I/Oポート番号2とCOM1が1対1で対応し、仮想
I/Oポート18aとI/Oポート25c間は、仮想I/Oポート番号3とCO
M2とが1対1で対応する。従って、アドレス0とアドレス2間のコネクション
上で往復される処理電文には、情報として仮想I/Oポート番号2、COM1あ
るいは仮想I/Oポート番号3、COM2が付加され、I/Oポート25bまた
はI/Oポート25cが特定される。 本実施形態のサーバ/クライアントシステムでは、以上の様にして1個のサー
バで、複数個のI/Oポートを有する複数個のクライアントを一元的に管理する
ことができる。この場合、複数のクライアントに接続される複数種類のI/Oデ
バイスの各デバイスドライバは、従来のシステムにおけるデバイスドライバを変
更せずに全てサーバ側で動作させることができるので、全てのデバイスドライバ
の版数をサーバ側で確認し、管理することができる。 図9におけるサーバ/クライアントシステムにおいて、仮想I/Oポート18
aに診断指示機能と結果表示機能を付加することによって、全てのクライアント
の診断をサーバ側で一元的に実行することができる。即ち、ユーザにより診断が
開始されると、仮想I/Oポート18aは、診断コマンドを指定されたクライア
ント、例えばクライアント(1)2aに送信し、クライアント2a中のデバイス
ハンドラ27aによってI/Oポート25a、I/Oデバイス4aおよびクライ
アントハードウエアの診察を実行させる。診断の結果は、仮想I/Oポート18
aに送信され、診断結果として表示される。 図11は、この診断機能において使用される診断メニューを例示する図である
。本システムは、前述した様に仮想I/Oポート18aにおいて各クライアント
の各I/Oポートを特定するための設定機能を有しているので、仮想I/Oポー
トユーザがこのシステムの診断を開始すると、指定されたI/Oデバイス、I/
Oポート、クライアントの診断が行われる。まず、仮想I/Oポート18aは、
診断コマンドを指定されたクライアント、例えばクライアント2aに送信し、デ
バイスハンドラ27aは送信されたコマンドを受信すると直ちにそのレスポンス
を仮想I/Oポート18aに返信する。従って仮想I/Oポート18aがこのレ
スポンスを受け取れなかった場合は、クライアント2aの電源が切断されている
か、あるいは何らかの異常が通信回線またはクライアント2aにあることを意味
する。この異常は、サーバ1側の例えばディスプレイにおいて表示される。 デバイスハンドラ27aが診断コマンドを受信すると、デバイスハンドラ27
aはその内容を解釈し、例えばI/Oデバイス4aの診断の場合、それがサポー
トする診断を行い、結果を仮想I/Oポート18aに送信する。例えばI/Oポ
ート27aがシリアルポートである場合、内部折り返し診断等を実行し、結果を
仮想I/Oポート18aに送信する。仮想I/Oポート18aが診断結果を受信
すると、例えばサーバ側のディスプレイでその結果を表示する。 以上の診断処理は、仮想I/Oポート18aが各クライアント、各種I/Oポ
ートを個々に識別しうるため、全てのクライアントの診断をサーバ側で一元的に
実行することが可能となる。 図9に示す実施形態において、各クライアントのプラットフォーム(ハードウ
エア、O/S等)が変更された場合、それぞれのクライアントのデバイスハンド
ラは新たに作成しなおすことが必要であるが、一方、仮想I/Oポート18aと
通信回線3上のコネクションの確立手順、仮想I/Oポート18aからの処理電
文受信方法、仮想I/Oポート18aへのI/Oポート番号と種別を含む処理結
果の電文フォーマット、イベントの電文フォーマットは変更する必要がない。さ
らに前記診断機能を有するシステムにおいても、診断コマンドの受信方法、レス
ポンスの電文フォーマット、診断結果の電文フォーマットも変更する必要はない
。従って、各クライアントのプラットフォームが変更されても、サーバ側を変更
する必要が無いので、クライアント側のプラットフォームの変更に柔軟に対処す
ることが可能である。 発明の効果 以上に説明した様に、本発明によれば、従来のサーバ/クライアントシステム
でクライアント側で使用されていたアプリケーション、デバイスドライバを変更
することなくサーバ上に移すことが可能である。従って、クライアント側での処
理負担が軽減され、その結果ハードウエア資源が大幅に軽量化される。従って、
従来のAPI環境を維持しながら、軽量化されたクライアントを有するサーバ/
クライアントシステムを構築することが可能となる。 また、クライアントのプラットフォームが変更された場合も、サーバ側に変更
を要しないので、プラットフォームの変更に柔軟に対応することができる。 以上の様な本発明のサーバ/クライアントシステムは、1個のサーバで数個の
クライアントを制御するPOSシステム等に応用された場合、各クライアントが
大幅に軽量化されるため、システム全体を構築するためのコストのみならず、シ
ステム運用上のコスト削減の効果が大きい。更に各プラットフォームの変更に柔
軟に対処できるので、POSシステムの設計変更時のコスト負担を大幅に削減で
きる。
TECHNICAL FIELD The present invention relates to a server/client system, and in particular to a server/client system that reduces the hardware resources on the client side. BACKGROUND ART Figure 1 is a diagram showing a schematic hardware configuration of a conventional server/client system. In the figure, 100 indicates a server and 200 indicates a client equivalent to a personal computer, and the two are connected by a communication line 300. The client 200 also has I/O devices such as a printer, a memory card reader, a barcode reader, etc.
The device 400 is connected via a connection line 500. The server 100 in the conventional server/client system includes a CPU 101.
The client 200 includes a CPU 201, a memory 202, hard disks 103a and 103b, and a line control unit 104. The hard disks in the server are usually duplicated (mirrored) so that if one fails, the other can cover the other.
, a line control unit 204, and an I/O port 205.
It contains various applications, device drivers, and client 2
The operating system (O/S) that controls the operation of the software 206
In conventional server/client systems, as shown in the figure, applications are configured to run on the client side. Therefore, in recent years, the code size of operating systems and applications has grown, and the number of device drivers has increased, leading to a demand for clients with hardware resources with higher processing power and larger storage capacities. However, as hard disks, which are widely used as hardware resources, become larger in capacity, their costs increase and they are prone to malfunction. Therefore, increasing the capacity of hardware resources is undesirable not only in terms of manufacturing costs but also in terms of system operation costs. Therefore, there is a need to reduce the processing burden on the client side and lighten the client weight while effectively utilizing the assets of conventional applications and device drivers. Therefore, by running applications on the server 100 and transferring screen and key input between the client and server, the processing burden on the client 200 can be reduced, thereby reducing the hardware weight. Since I/O devices are typically connected close to the user, i.e., to the client, the device drivers are located on the client side. In this way, when applications are located on the server side and device drivers are run on the client side, the following problems arise with I/O device control. (1) Client device drivers often depend on the OS, which has a large code size. Therefore, if the device driver is placed on the client side, the processing load on the client increases, and a storage device is required for the OS required to run the device driver. (2) Since the interface changes between the application placed on the server side and the device driver placed on the client side, it becomes necessary to rewrite the device driver. (3) When there are multiple types of I/O devices, each device driver also needs to be
The need to recreate the device driver arises due to reason (2) above. (4) The version number of the device driver can only be confirmed at the location where the client is installed. (5) Diagnosis of the client I/O device can only be performed at the location where the client is installed. (6) The need to recreate the device driver arises every time the client platform changes. As described above, when the application runs on the server side and the device driver runs on the client side, it becomes difficult to reduce the client's weight and to effectively utilize existing assets such as applications and device drivers, particularly for reasons (1), (2), and (3) above. Furthermore, as shown in (4), (5), and (6) above, it is difficult to operate the system efficiently. Disclosure of the Invention The present invention has been made in consideration of the above problems, and provides a solution to the above problems by providing ...
The main object of the present invention is to provide a server/client system that can effectively utilize assets such as device drivers and can significantly reduce the hardware resources on the client side. According to one embodiment of the present invention that achieves the above object, in a server/client system in which at least one client having at least one I/O port is connected to one server via a communication line, the server side is provided with a
a device driver for controlling the I/O port; and a virtual I/O port for providing the device driver with an interface having the same functions as the I/O port and transmitting input/output control signals from the device driver to the client side and receiving events from the client side and notifying the device driver of the events; and a device handler connected to the virtual I/O port via the communication line is provided on the client side, and the device handler controls the I/O port.
The server/client system is characterized by a configuration in which the device driver and the virtual I/O are controlled.
The virtual I/O port realizes an interface on the server side that is the same as the interface between device drivers and I/O ports in a conventional server/client system, allowing all applications and device drivers used on the conventional client side to run on the server side. This significantly reduces the hardware resources on the client side, and allows the existing application and device driver assets to be used on the server side without modification. Furthermore, in a server/client system with the above configuration, by providing the virtual I/O port with the ability to identify the client's address on the communication line and each I/O port, it becomes possible to centrally manage multiple lightweight clients with a single server. Furthermore, by adding a client-side hardware diagnostic function to the virtual I/O port, it becomes possible for a server managing multiple clients to centrally diagnose the hardware of each client. Best Mode for Carrying Out the Invention FIG. 2 is a block diagram showing the hardware configuration of a server/client system according to one embodiment of the present invention. As shown in the figure, the server 1 of this embodiment includes a C
The client 2 is comprised of a PU 11, a memory 12, storage devices such as hard disks 13a and 13b, and a line control unit 14. The dual-structured hard disks 13a and 13b contain various applications, device drivers, and virtual I/O ports and an O/S (described later) that were previously installed on the client side as software 15. The client 2 is comprised of a CPU 21, storage devices such as a memory 22 and a ROM 23,
The system is composed of a line control unit 24 and an I/O port 25. In this system, the applications and device drivers are placed on the server side and run on the server side, so the ROM 23 stores software 26, which is software for converting signals sent from the device driver on the server side via the communication line 3 into signals that can be input to the I/O port 25, i.e., a device handler, and an embedded OS for controlling the entire client 2.
The detailed function of the device handler will be described later. In the client 2 of this embodiment, there is no need to run an application within the client, so the code size of the entire software, including the device handler and O/S, is much smaller than that of the conventional system, and as mentioned above, the ROM 2
3, which eliminates the need for a hard disk in the client. In a typical server/client system, the main cause of failure on the client side is the hard disk, so the system of the present invention does not require a hard disk, thereby greatly improving the reliability of the system. The communication line 3 can be, for example, a LAN (Local Area Network
3 is a diagram showing the software configuration of the server/client system shown in FIG. 2. In the system of this embodiment, various applications 1 are installed in the server 1.
6, a device driver 17 for driving various I/O devices 4, a virtual I/O port 18 for converting signals from the device driver 17 into signals that can be transmitted over the communication line 3, and converting signals input via the communication line 3 into signals that can be input to the device driver 17, and an OS 1 for controlling these software.
The O/S 19 is the same as the O/S used when these software programs are installed in the client 2, for example, Windows 98 (trademark),
Existing operating systems such as Windows NT (trademark) can be used.
Of course, applications and device drivers that are used in existing systems can also be used. The client 2 includes a device handler 27 that converts signals input via the communication line 3 into signals that can be recognized by the I/O port 25, and converts signals from the I/O port 25 into signals that can be transmitted over the communication line 3. In the present invention, the client 2 does not include applications and device drivers that have large code sizes, but only includes the device handler 27, which has a small code size as software, and the O/S 28 that controls this is an embedded O/S with an extremely simple configuration.
The virtual I/O port 18 in the server 1 basically has the following functions: (1) to provide an interface that functions the same as the I/O port 25 on the client 2 side to the upper device driver 17; and (2) to send input/output control signals from the upper device driver 17 to the device handler 27 of the client 2, and to receive events from the device handler 27 and notify the upper device driver 17. The minimum required functions of the device handler 27 on the client 2 side are: (1) to receive input/output control signals sent from the virtual I/O port 18 of the server 1, to perform input control/output control on the I/O port, and to send events from the I/O port 25 to the virtual I/O port 18 of the server 1. In the server/client system of this embodiment, by providing a virtual I/O port on the server side and a device handler on the client 2 side as described above,
Conventional applications and device drivers can be run on the server side without modification, significantly reducing the hardware resources of the client. The detailed configuration and operation of this system will be explained below with reference to Figure 4, which shows the data flow between the application 16 in the server 1 and the I/O device 4. First, data input/output from the application 16 to the I/O device 4 is as follows: (1) The application 16 issues an I/O processing request, including the data to be input/output, to the device driver 17, (2) The device driver 17 responds to the I/O processing request and sends the data to the virtual I/O port 1.
(3) The virtual I/O port 18 converts the I/O control into data on the communication line 3 and sends it to the device handler 27 on the client 2 side as an I/O control packet. (4) When the device handler 27 receives the I/O control packet, it interprets the contents and performs I/O control of the I/O port 25. (5) The I/O port 25 converts the I/O control into data on the connection line 5,
The event is sent to the external I/O device 4 and controlled. In this way, input/output control is performed from the application to the I/O device 4. Next, the notification of an event from the I/O device 4 to the application 16 will be explained. First, (6) the I/O device 4 outputs an event (such as a change in a control signal line) onto the connection line 5. (7) The device handler 27 converts the event from the I/O port 25 into data on the communication line and sends it to the virtual I/O port 18 as an event packet. (8) When the virtual I/O port 18 receives the event packet, it interprets the contents and sends the event to the device driver 17. (9) The device driver 17 notifies the application 16 of the event [
10]. The above is the data flow between the application 16 and the I/O device 4 in the server/client system of this embodiment. Next, the operation sequence of the server/client system according to this embodiment will be described with reference to FIG. 5. When the server 1 and client 2 are powered on, first, a connection is established between the virtual I/O port 18 and the device handler 27. This connection is established through negotiation between the two. That is, when the client 2 is powered on, the device handler 27 sends a connection request [11] (broadcast) to the virtual I/O port 18 to request establishment of a connection on the communication line. If the server 1 is powered on and the virtual I/O port 18 is active, a response [12] to this is output from the virtual I/O port 18 to the device handler 27. The response [12] includes the address of the client 2 on the communication line, which is preset by the setting function of the virtual I/O port 18, the type of physical I/O port that the client 2 has, and number mapping information. When the device handler 27 receives this response [12], it establishes a connection on the communication line, maps the physical I/O port according to the mapping information, and when this is complete, it sends a mapping completion notification [13] to the virtual I/O port 18. When the virtual I/O port 18 receives this notification [13], it sends a response [14] to it. At this point, the virtual I/O port 18 is able to accept control from the device driver 17. Note that if a control signal is sent from the device driver 17 before this point, the virtual I/O port 18 returns an error signal to the device driver 17. Next, the sequence for data input/output from the application 16 to the I/O device 4 will be explained. Note that the data flow in this case is as shown in Figure 4. First, the input/output request [15] of the application 16 is sent to the device driver 17.
The device driver 17 sends the input/output control
The virtual I/O port 18 converts the input/output control [16] into data for communication lines and transmits it to the device handler 27 as an input/output control packet [17]. When the device handler 27 receives the input/output control packet [17],
The contents are interpreted and input/output control [18] of the I/O port 25 is performed.
The I/O device 4 outputs data [19] onto the connection line 5. Next, the notification of an event from the I/O device 4 to the application 16 will be described. When the I/O device 4 outputs an event (such as a change in a control signal) [20] onto the connection line, the device handler 27 converts the event [21] from the I/O port 25 into data on the communication line and sends an event packet [22] to the virtual I/O port 18.
]. When the virtual I/O port 18 receives the event packet [22], it interprets the contents and sends an event [23] to the device driver 17. The device driver 17 sends an event [24] to the application 16. FIG. 6 is a flowchart showing the functions of the virtual I/O port 18. Note that this flowchart shows only the minimum necessary functions of the virtual I/O port 18. The following internal states of the virtual I/O port 18 are assumed: (1) Waiting: A state in which the virtual I/O port 18 is waiting to receive a connection request from the client 2; (2) Waiting for completion notification: A state in which the virtual I/O port 18 is waiting for a mapping completion notification of the physical I/O port of client 2; and (3) Connected: A state in which the virtual I/O port 18 is able to accept control from the device driver 17 after receiving a mapping completion notification of the physical I/O port of client 2. The following events are assumed for each of the above states of the virtual I/O port. That is, (4) Connection request reception: an event of receiving a connection request from the client 2, (5) Completion notification reception: an event of receiving a notification of completion of mapping of the physical I/O port of the client 2, (6) Input/output control request: an event of an input/output control request from the device driver 17, and (7) Event packet reception: an event of receiving an event packet from the client 2. The function of the virtual I/O port 18 will be explained below with reference to the above states and events. In Fig. 6, an initialization process is performed in step S1, and the state of the virtual I/O port 18 is set to a standby state. Next, an event is acquired in step S2. At this time,
If the virtual I/O port 18 is in a standby state (Yes in step S3), it is then determined in step S4 whether the event is a connection request reception. If the event is a connection request reception (Yes in step S4), a response is sent to the device handler 27 in step S5, and the state is set to a completion notification waiting state in step S6. If the event is not a connection request reception (No in step S4), it is determined in step S7 whether the next input event is a termination request. If it is a termination request (Yes), the operation of the virtual I/O port 18 is terminated. On the other hand, if it is not a termination request, the process returns to step S2, where an event is acquired again, and subsequent steps are executed. If the state is not a standby state in step S3 (No), it is determined in step S8 whether the state is a completion notification waiting state. If it is a completion notification waiting state (Yes in step S8), it is determined in step S9 whether the event is a completion notification reception state. If it is a completion notification reception state (Yes in step S), a response is sent to the device handler 27 in step S10, and the state transitions to a connected state (step S11).
If the event is not a completion notification reception in step S9 (No), the process returns to step S2 to acquire the event again, except when the event is a termination request. If the state is not a completion notification waiting state in step S8 (No in step S8),
In step S12, it is determined whether the state of the virtual I/O port 18 is connected. If it is connected (Yes in step S12), it is determined in step S13 whether the event is an I/O control request. If Yes, an I/O control packet is sent to the device handler 27 in step S14. If the event is not an I/O control request in step S13 (No in step S13), it is determined in step S15 whether the event is an event packet reception. If Yes, the received packet is sent to the device driver 17. If it is not an event packet reception in step S15 (No), it is determined in step S7 whether there is an event termination request. If Yes, the process ends. If No, the process proceeds to step S2 and continues. FIG. 7 is a flowchart showing the functions of the device handler 27. Note that this flowchart shows only the minimum necessary functions of the device handler 27. The internal states of the device handler 27 are assumed to be (1) to (3) below.
(1) Standby: the state immediately after the startup of the client 2; (2) Waiting for a connection request response: the state of waiting for a response from the server after sending a connection request; (3) Connected: the state in which an I/O control packet can be received from the virtual I/O port 18 after sending a notification of completion of mapping of the physical I/O port. Furthermore, events (4) to (7) are assumed for each state of the device handler 27. (4) No event: the absence of any event; (5) Received connection request response: the event of receiving a response from the server after sending a connection request; (6) Received I/O control packet: the event of receiving an I/O control packet from the server; and (7) I/O port event: the event from the I/O port 25. Next, the processing procedure of the device handler 27 will be described with reference to FIG. 7 . First, in step S20, initialization processing is performed to set the state to standby, and an event is acquired in step S21. Next, in step S22, it is determined whether the event state is standby. If the result is Yes, it is confirmed in step S23 that there is no event. If there is no event (Yes in step S23), the virtual I/O of the server 1
A connection request is sent to the port 18 (step S24), and the state is set to waiting for a response to the connection request (step S25). Next, it is determined whether the event is an end request (step S26). If it is not an end request, the process returns to step S21 and the subsequent steps are executed again. If it is determined in step S22 that the state of the device handler 27 is not in standby (
If the answer is No in step S22, it is determined in step S27 whether the state is waiting for a connection request response. If the answer is Yes, it is determined in step S28 whether the event is reception of a connection request response. If the answer is Yes, a physical I/O port mapping completion notification is sent to the virtual I/O port 18, and the state of the device handler 27 is set to connected (S30). On the other hand, if the state of the device handler 27 is not waiting for a connection request response (No) in step S27, it is determined in step S31 whether the state is connected. If the answer is Yes, it is determined in step S32 whether the event is reception of an input/output control packet. If the answer is Yes, input/output control is performed on the I/O port 25 in step S33. If the event is not reception of an input/output control packet in step S32,
In step S34, it is determined whether the event is an I/O port event, and if the result is Yes, in step S35, this event packet is sent to the virtual I/O port.
In step S26, it is determined whether the event is an end request, and if Yes, the process is terminated, and if No, the process returns to step S21 and the subsequent steps are executed again. As described above, in the server/client system according to the first embodiment of the present invention, a virtual I/O port 18 is provided on the server side, and a device handler 27 is provided on the client side, and processing from a device driver which is an upper layer of the virtual I/O port 18 is transferred to the device handler 27, and the device handler controls the I/O port 25, and events from the I/O port 25 are transferred to the virtual I/O port 18.
8, applications and device drivers that have conventionally run on the client side can be run on the server 1 side without any changes. This significantly reduces the processing load on the client 2 side, and eliminates the need for a large-capacity storage device such as a hard disk on the client side. Note that the server/client system of this embodiment shown in Figures 2 and 3 employs an interface used in conventional server/client systems that have device drivers on the client side as the interface between the virtual I/O port 18 and device driver 17. Figure 8a shows the interface between the device driver 210 and I/O port 210 in a conventional system.
8A shows the interface configuration between the I/O port 205 (hardware) and the device driver 210. As shown in the figure, an I/O port device driver 211 exists between the device driver 210 and the I/O port 205. To absorb differences in hardware, the operations performed by the device driver 210 on the I/O port 205 are expressed as abstracted commands 30. The I/O port device driver 211 controls the I/O port 205 (hardware) using these commands 30, receives control results 32 from the I/O port 205, and returns processing results 33 to the device driver 210. In the server/client system of this embodiment shown in FIGS. 2 and 3, as shown in FIG. 8B, the virtual I/O port 18 provides the interface of the commands 30 and processing results 33 shown in FIG. 8A to the device driver 17 as is. This makes it possible to provide the API (application interface) environment provided to the device driver 210 by the OS in conventional systems to the device driver 17 in the OS of this embodiment as well. As a result, in this embodiment, the device driver 100 is the same as the conventional device driver 210.
7 to control the I/O device 4. As described above, in the server/client system of this embodiment, conventional device drivers can be used as they are on the server side without modification, making it possible to effectively utilize existing assets. FIG. 9 is a block diagram showing the configuration of a second embodiment of the present invention. In this embodiment, as shown in the figure, two clients 2a and 2b, which have been made lighter in accordance with the present invention, are connected to one server 1. It goes without saying that the number of clients connected to one server is not limited to the example shown in the figure, and any number of clients can be connected. In the embodiment shown, client 2a uses device handler 27a and I/O
The client 2b has a device handler 27b and two I/O ports 1 and 2, which are connected to the I/O device 4b and the I/O device 4c, respectively. In the server 1, the application 16a contains an application (1) used by the client 2a and an application (2) used by the client 2b.
The device driver 17a includes the I
/O device driver (1) for driving device 4a, client 2b
a device driver (2) for driving an I/O device 4b connected to
In this embodiment, the virtual I/O port 18a includes a device driver (3) for driving the I/O device 4c. In this embodiment, the virtual I/O port 18a is connected to the clients 2a and 2b and the I/O ports 25a and 25b connected to the server 1 via the communication line 3.
, 25c, the system has a function of being able to set the virtual I/O port number of the virtual I/O port 18a, the addresses on the communication line of each client 2a, 2b, the type of physical I/O port each client has, and the physical I/O port number. Figure 10 shows the setting information in the system of Figure 9. This setting information is also included in the response [12] in Figure 5. According to the setting information shown in Figure 10, client (1) 2a is specified by address 1 on the communication line, and client (2) 2b is specified by address 2. The I/O port 25a in client (1) 2a has a physical I/O port type of COM
In this case, the physical I/O port number is specified as 1. Two I/O ports 25b and 25c in client (2) 2b are specified as physical I/O port numbers 1 and 2. The mapping information allows one-to-one correspondence between the type and number of the physical I/O port possessed by the client and the number set as the virtual I/O port number. For example,
In the example of FIG. 10, the physical I/O port type of the client (1) 2a is CO
M1 corresponds to virtual I/O port number 1. Furthermore, COM1 in client (2) 2b corresponds to virtual I/O port number 2, COM2 corresponds to virtual I/O port number 3,
9, when the power is turned on to the client (1) 2a, the device handler 27a is started and a connection is established between address 0 (server 1) and address 1 (client 2a) on the communication line and the virtual I/O port 18a. Subsequent data transfer between the virtual I/O port 18a and the device handler 27a is carried out over this connection. Processing from the device driver 17a to the I/O device 4a is accepted on the virtual I/O port 18a as processing for the I/O port 25a, and COM1 indicating the I/O port 25a is added to the processing message before being transferred to the device handler 27a. In the device handler 27a,
The I/O port 25a is identified from the information COM1 attached to the processing message, and processing is performed for this. On the other hand, the device handler 27a
, 1 is added to the processing message and the message is sent as a packet to the virtual I/O port 18a. Therefore, the virtual I/O port number 1 is recognized in the virtual I/O port 18a.
The occurrence of the event is notified to the device driver (1) corresponding to virtual I/O port number 1. For client 2b, the same processing is performed on the connection between address 0 and address 2 on the communication line. That is, the virtual I/O port 18a and the I/O
Between the virtual I/O port 18a and the I/O port 25b, the virtual I/O port number 2 and COM1 correspond one-to-one. Between the virtual I/O port 18a and the I/O port 25c, the virtual I/O port number 3 and COM1 correspond one-to-one.
M2 correspond one-to-one to the virtual I/O port number 18. Therefore, the processing message exchanged on the connection between address 0 and address 2 is accompanied by information indicating virtual I/O port number 2, COM1, or virtual I/O port number 3, COM2, thereby identifying I/O port 25b or I/O port 25c. In the server/client system of this embodiment, a single server can centrally manage multiple clients having multiple I/O ports as described above. In this case, the device drivers for multiple types of I/O devices connected to multiple clients can all be run on the server side without changing the device drivers in conventional systems, so the version numbers of all device drivers can be confirmed and managed on the server side. In the server/client system of FIG. 9, virtual I/O port 18
By adding a diagnostic instruction function and a result display function to the virtual I/O port 18a, the diagnosis of all clients can be executed centrally on the server side. That is, when a diagnosis is started by a user, the virtual I/O port 18a sends a diagnostic command to a specified client, for example, the client (1) 2a, and causes the device handler 27a in the client 2a to examine the I/O port 25a, the I/O device 4a, and the client hardware. The results of the diagnosis are displayed on the virtual I/O port 18a.
a and displayed as a diagnostic result. Fig. 11 is a diagram showing an example of a diagnostic menu used in this diagnostic function. As described above, this system has a setting function for specifying each I/O port of each client in the virtual I/O port 18a. Therefore, when a virtual I/O port user starts diagnosing this system, the specified I/O device, I/O
First, the virtual I/O port 18a is diagnosed as follows:
A diagnostic command is sent to a specified client, for example, client 2a, and upon receiving the sent command, the device handler 27a immediately returns a response to the virtual I/O port 18a. Therefore, if the virtual I/O port 18a does not receive this response, it means that the power to client 2a has been cut off or there is some kind of abnormality in the communication line or client 2a. This abnormality is displayed on the server 1 side, for example, on a display. When the device handler 27a receives the diagnostic command, the device handler 27
The virtual I/O port 18a interprets the contents of the diagnostic data and, for example, when diagnosing the I/O device 4a, performs the diagnostics supported by the I/O device 4a and sends the results to the virtual I/O port 18a. For example, if the I/O port 27a is a serial port, it performs an internal loopback diagnostic and sends the results to the virtual I/O port 18a. When the virtual I/O port 18a receives the diagnostic results, it displays them, for example, on a display on the server side. The above diagnostic process allows the virtual I/O port 18a to individually identify each client and each I/O port, enabling the server side to centrally perform diagnostics for all clients. In the embodiment shown in FIG. 9, if the platform (hardware, operating system, etc.) of each client is changed, each client's device handler must be newly created. However, there is no need to change the procedure for establishing a connection between the virtual I/O port 18a and the communication line 3, the method for receiving processing messages from the virtual I/O port 18a, the format of the processing result message including the I/O port number and type to the virtual I/O port 18a, or the format of the event message. Furthermore, even in a system having the above-mentioned diagnostic function, there is no need to change the method of receiving diagnostic commands, the message format of the response, or the message format of the diagnostic results. Therefore, even if the platform of each client is changed, there is no need to change the server side, so it is possible to flexibly deal with changes in the client side platform. Effects of the Invention As explained above, according to the present invention, it is possible to move applications and device drivers used on the client side in a conventional server/client system to the server without changing them. Therefore, the processing load on the client side is reduced, and as a result, hardware resources are significantly lightened. Therefore,
A server/server with a lightweight client while maintaining the traditional API environment
This makes it possible to build a client system that can handle multiple clients simultaneously. Furthermore, even if the client platform is changed, no changes are required on the server side, so changes to the platform can be flexibly accommodated. When the server/client system of the present invention as described above is applied to a POS system in which one server controls several clients, each client is significantly lighter, resulting in significant savings not only in the cost of building the entire system but also in the cost of operating the system. Furthermore, because changes to each platform can be flexibly accommodated, the cost burden when changing the design of the POS system can be significantly reduced.

【図面の簡単な説明】 本発明の前記およびその他の目的、特徴、利点等を、本発明の実施形態を示す
添付図面と共に以下に詳細に説明するが、図中において、 図1は、従来のサーバ/クライアントシステムの構成を示すブロック図、 図2は、本発明の第1の実施形態にかかるサーバ/クライアントシステムのハ
ードウエア構成を示すブロック図、 図3は、図2に示すサーバ/クライアントシステムのソフトウエア構成を示す
ブロック図、 図4は、図2および3に示すサーバ/クライアントシステムにおけるアプリケ
ーションとI/Oデバイス間のデータフローを説明するための図、 図5は、図2および3に示すサーバ/クライアントシステムにおける動作シー
ケンスを示す図、 図6は、図2および3に示すサーバ/クライアントシステムに含まれる仮想I
/Oポートの機能を説明するためのフローチャート、 図7は、図2および3に示すサーバ/クライアントシステムに含まれるデバイ
スハンドラの機能を説明するためのフローチャート、 図8aは、従来のサーバ/クライアントシステムにおけるデバイスドライバと
I/Oポート間のインターフェースを示す図、 図8bは、図2および3に示す本発明のサーバ/クライアントシステムにおけ
るデバイスドライバと仮想I/Oポート間のインターフェースを示す図、 図9は、本発明の第2の実施形態にかかるサーバ/クライアントシステムの構
成を示すブロック図、 図10は、図9に示すサーバ/クライアントシステムに含まれる仮想I/Oポ
ートの機能を説明するための図、および 図11は、図9に示すサーバ/クライアントシステムに含まれる仮想I/Oポ
ートのその他の機能を説明するための図である。
BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, advantages, etc. of the present invention will be described in detail below with reference to the accompanying drawings showing embodiments of the present invention. In the drawings, in which: FIG. 1 is a block diagram showing the configuration of a conventional server/client system; FIG. 2 is a block diagram showing the hardware configuration of a server/client system according to a first embodiment of the present invention; FIG. 3 is a block diagram showing the software configuration of the server/client system shown in FIG. 2; FIG. 4 is a diagram for explaining the data flow between applications and I/O devices in the server/client systems shown in FIGS. 2 and 3; FIG. 5 is a diagram showing an operation sequence in the server/client systems shown in FIGS. 2 and 3;
7 is a flowchart for explaining the function of a device handler included in the server/client system shown in FIGS. 2 and 3; FIG. 8a is a diagram showing the interface between a device driver and an I/O port in a conventional server/client system; FIG. 8b is a diagram showing the interface between a device driver and a virtual I/O port in the server/client system of the present invention shown in FIGS. 2 and 3; FIG. 9 is a block diagram showing the configuration of a server/client system according to a second embodiment of the present invention; FIG. 10 is a diagram for explaining the function of a virtual I/O port included in the server/client system shown in FIG. 9; and FIG. 11 is a diagram for explaining other functions of the virtual I/O port included in the server/client system shown in FIG. 9.

───────────────────────────────────────────────────── (注)この公表は、国際事務局(WIPO)により国際公開された公報を基に作 成したものである。 なおこの公表に係る日本語特許出願(日本語実用新案登録出願)の国際公開の 効果は、特許法第184条の10第1項(実用新案法第48条の13第2項)に より生ずるものであり、本掲載とは関係ありません。───────────────────────────────────────────────────── (Note) This publication is based on the publication published internationally by the International Bureau of Patents (WIPO). The effect of the international publication of the Japanese patent application (Japanese utility model registration application) related to this publication arises pursuant to Article 184-10, Paragraph 1 of the Patent Act (Article 48-13, Paragraph 2 of the Utility Model Act) and is unrelated to this publication.

Claims (12)

【特許請求の範囲】[Claims] 【請求項1】少なくとも1個のI/Oポートを有する少なくとも1個のクライア
ントを通信回線を介して1個のサーバに接続するサーバ/クライアントシステム
であって、 前記サーバに、前記I/Oポートを制御するためのデバイスドライバと、該デ
バイスドライバに対して前記I/Oポートと同一の機能を有するインターフェー
スを提供しかつ前記デバイスドライバからの入出力制御信号を前記クライアント
側に送信し該クライアント側からのイベントを受信して前記デバイスドライバに
通知するための仮想I/Oポートを設け、 前記クライアントに前記通信回線を介して前記仮想I/Oポートに接続される
デバイスハンドラを設け、該デバイスハンドラによって前記I/Oポートを制御
する構成としたことを特徴とする、サーバ/クライアントシステム。
[Claim 1] A server/client system in which at least one client having at least one I/O port is connected to one server via a communication line, wherein the server is provided with a device driver for controlling the I/O port, and a virtual I/O port that provides the device driver with an interface having the same functions as the I/O port and transmits input/output control signals from the device driver to the client side and receives events from the client side and notifies the device driver of the events, and the client is provided with a device handler connected to the virtual I/O port via the communication line, and the I/O port is controlled by the device handler.
【請求項2】前記デバイスハンドラは、前記仮想I/Oポートから送信された入
出力制御信号を受信し該制御信号に基づいて前記I/Oポートに対する入出力制
御を行い、かつ前記クライアントに前記I/Oポートを介して接続されたI/O
デバイスからのイベントを前記I/Oポートを介して受信し前記仮想I/Oポー
トに送信することを特徴とする、請求項1に記載のサーバ/クライアントシステ
ム。
2. The device handler receives an input/output control signal transmitted from the virtual I/O port, performs input/output control for the I/O port based on the control signal, and transmits input/output control to the I/O port connected to the client via the I/O port.
2. The server/client system according to claim 1, wherein an event from a device is received via said I/O port and transmitted to said virtual I/O port.
【請求項3】前記仮想I/Oポートは前記デバイスドライバからの入出力制御を
入出力制御パケットとして前記通信回線を介して前記デバイスハンドラに送信す
ることを特徴とする、請求項1または2に記載のサーバ/クライアントシステム
3. The server/client system according to claim 1, wherein said virtual I/O port transmits input/output control from said device driver to said device handler via said communication line as an input/output control packet.
【請求項4】前記デバイスハンドラは前記I/Oポートを介して受信したI/O
ポートイベントをイベントパケットとして前記通信回線を介して前記仮想I/O
ポートに送信することを特徴とする、請求項1乃至3の何れか1項に記載のサー
バ/クライアントシステム。
4. The device handler receives an I/O command via the I/O port.
The port event is transmitted as an event packet to the virtual I/O port via the communication line.
4. The server/client system according to claim 1, wherein the client/server device transmits data to a port.
【請求項5】前記サーバは、従来のサーバ/クライアントシステムで使用されて
いた既存のアプリケーションを含むことを特徴とする請求項1乃至4の何れか1
項に記載のサーバ/クライアントシステム。
5. The method according to claim 1, wherein the server includes an existing application used in a conventional server/client system.
Item 1. A server/client system according to item 1.
【請求項6】前記サーバは、従来のサーバ/クライアントシステムで使用されて
いた既存のデバイスドライバを含むことを特徴とする、請求項1乃至5の何れか
1項に記載のサーバ/クライアントシステム。
6. The server/client system according to claim 1, wherein the server includes an existing device driver that has been used in a conventional server/client system.
【請求項7】前記仮想I/Oポートは、前記クライアントの通信回線上のアドレ
スと前記I/Oポートの種別および番号を識別する機能を有することを特徴とす
る、請求項1乃至6の何れか1項に記載のサーバ/クライアントシステム。
[Claim 7] A server/client system as described in any one of claims 1 to 6, characterized in that the virtual I/O port has the function of identifying the address on the client's communication line and the type and number of the I/O port.
【請求項8】前記仮想I/Oポートは、前記クライアントのハードウエアの診断
機能を有することを特徴とする、請求項1乃至7の何れか1項に記載のサーバ/
クライアントシステム。
8. The server/server system according to claim 1, wherein the virtual I/O port has a function of diagnosing the hardware of the client.
Client system.
【請求項9】前記通信回線はLANである、請求項1乃至8の何れか1項に記載
のサーバ/クライアントシステム。
9. The server/client system according to claim 1, wherein the communication line is a LAN.
【請求項10】1個のサーバと、それぞれが少なくとも1個のI/Oポートを有
するm(mは2以上の整数)個のクライアントを備え、 前記サーバ側に、前記各クライアントで使用される全てのアプリケーションと
、前記各I/Oポートを制御する全てのデバイスドライバとを配置したことを特
徴とする、請求項1乃至9の何れか1項に記載のサーバ/クライアントシステム
[Claim 10] A server/client system as described in any one of claims 1 to 9, comprising one server and m (m is an integer greater than or equal to 2) clients, each having at least one I/O port, and wherein all applications used by each of the clients and all device drivers controlling each of the I/O ports are located on the server side.
【請求項11】少なくとも1個のCPU、記憶装置、回線制御部およびこれらを
制御するオペレーションシステムを有するサーバにおいて、更に、アプリケーシ
ョン、デバイスドライバおよび該デバイスドライバにI/Oポートと同一の機能
を提供する仮想I/Oポートをソフトウエアとして組み込んだことを特徴とする
サーバ。
[Claim 11] A server having at least one CPU, a memory device, a line control unit, and an operating system that controls these, characterized in that it further incorporates, as software, an application, a device driver, and a virtual I/O port that provides the device driver with the same functions as an I/O port.
【請求項12】少なくとも1個のCPU、記憶装置、回線制御部、外部I/Oデ
バイスを制御するためのI/Oポート、およびこれらを制御するためのオペレー
ションシステムを有するクライアントにおいて、更に前記I/Oポートを制御す
るためのデバイスハンドラをソフトウエアとして組み込んだことを特徴とするク
ライアント。
[Claim 12] A client having at least one CPU, a memory device, a line control unit, an I/O port for controlling an external I/O device, and an operating system for controlling these, characterized in that a device handler for controlling the I/O port is further incorporated as software.
JP2001528827A 1999-10-05 1999-10-05 Server / client system Expired - Fee Related JP4592242B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP1999/005497 WO2001025934A1 (en) 1999-10-05 1999-10-05 Server/client system

Publications (2)

Publication Number Publication Date
JPWO2001025934A1 true JPWO2001025934A1 (en) 2003-04-22
JP4592242B2 JP4592242B2 (en) 2010-12-01

Family

ID=14236931

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001528827A Expired - Fee Related JP4592242B2 (en) 1999-10-05 1999-10-05 Server / client system

Country Status (3)

Country Link
US (1) US7464133B1 (en)
JP (1) JP4592242B2 (en)
WO (1) WO2001025934A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4546023B2 (en) * 2002-12-04 2010-09-15 キヤノン株式会社 Information processing apparatus, control method therefor, program, and storage medium
US7702750B2 (en) 2004-09-29 2010-04-20 Citrix Systems, Inc. System and method for event detection and re-direction over a network using a presentation level protocol
US8069226B2 (en) * 2004-09-30 2011-11-29 Citrix Systems, Inc. System and method for data synchronization over a network using a presentation level protocol
US7912987B2 (en) * 2005-01-14 2011-03-22 Microsoft Corporation USB devices in application server environments
CA2630014C (en) 2007-05-18 2014-05-27 Nec Infrontia Corporation Main device redundancy configuration and main device replacing method
US8244949B2 (en) 2007-05-18 2012-08-14 Nec Infrontia Corporation Slot interface access unit, method thereof, and program thereof, as well as redundancy configuration of main unit, and replacing method of the same
JP5366177B2 (en) * 2007-05-18 2013-12-11 Necインフロンティア株式会社 Slot interface access device, method and program thereof, and redundant configuration and alternative method of main device
JP5196547B2 (en) * 2007-05-21 2013-05-15 Necインフロンティア株式会社 Main device, method of mounting multi-functional unit on main device, and program thereof
JP2008305143A (en) * 2007-06-07 2008-12-18 Nec Fielding Ltd Port management system, information processor, port management method and port management program
JP2010015475A (en) * 2008-07-07 2010-01-21 Nec Personal Products Co Ltd Information processing terminal and client server system
JP5321311B2 (en) * 2009-07-17 2013-10-23 セイコーエプソン株式会社 Communication control device
US10956892B2 (en) * 2013-08-08 2021-03-23 Ncr Corporation Transaction performance

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809217A (en) * 1985-10-31 1989-02-28 Allen-Bradley Company, Inc. Remote I/O port for transfer of I/O data in a programmable controller
JPS63296156A (en) * 1987-05-27 1988-12-02 Nec Corp Input/output port control system
US5047922A (en) * 1988-02-01 1991-09-10 Intel Corporation Virtual I/O
JPH04233649A (en) * 1990-12-28 1992-08-21 Nec Eng Ltd Management system for peripheral device
JPH04333158A (en) * 1991-05-09 1992-11-20 Mitsubishi Electric Corp I/o access right control method
JP3248199B2 (en) * 1991-10-01 2002-01-21 日新電機株式会社 Information processing device with X window
JPH0675881A (en) * 1992-08-24 1994-03-18 Nec Corp Different machine kind terminal control and transmission control system
EP0604010B1 (en) 1992-12-21 1999-12-29 Sun Microsystems, Inc. Method and apparatus for subcontracts in distributed processing systems
US5530872A (en) * 1992-12-23 1996-06-25 International Business Machines Corporation Method and system for directing device driver to service multiple sequential interrupt requests generated by I/O device connected thereto
JP3359075B2 (en) * 1993-01-18 2002-12-24 キヤノン株式会社 Information processing apparatus and method
DE69527948T2 (en) * 1994-03-15 2003-01-02 Digi International, Inc. SYSTEM AND METHOD FOR COMMUNICATING WITH A REMOTE NETWORK APPARATUS
JP3200661B2 (en) * 1995-03-30 2001-08-20 富士通株式会社 Client / server system
US6073183A (en) * 1995-03-31 2000-06-06 Intel Corporation Transparent communication with multiple devices over a single serial or parallel port of a computer
US5819112A (en) * 1995-09-08 1998-10-06 Microsoft Corporation Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests
JPH09274607A (en) * 1996-04-08 1997-10-21 Hitachi Ltd Computer system and its operating method
US5923852A (en) * 1996-09-04 1999-07-13 Advanced Micro Devices, Inc. Method and system for fast data transmissions in a processing system utilizing interrupts
US5790895A (en) * 1996-10-18 1998-08-04 Compaq Computer Corporation Modem sharing
JPH10154123A (en) * 1996-11-25 1998-06-09 Toshiba Corp Network system
US6186893B1 (en) * 1996-12-18 2001-02-13 Walker Digital, Llc Slot machine advertising/sales system and method
JPH10301875A (en) * 1997-04-28 1998-11-13 Nec Corp Program remote control system in distributed computer environment
JPH117404A (en) * 1997-06-17 1999-01-12 Toshiba Corp Network-attached SCSI device and file system using the same
US5978857A (en) * 1997-07-22 1999-11-02 Winnov, Inc. Multimedia driver having reduced system dependence using polling process to signal helper thread for input/output
JP3045985B2 (en) * 1997-08-07 2000-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション Connection establishment method, communication method, state change transmission method, state change execution method, wireless device, wireless device, and computer
US6370591B2 (en) * 1997-09-30 2002-04-09 Nokia Mobile Phones Ltd. Method and apparatus for running simultaneous applications through the same port using supplementary drivers through a main driver
US5996024A (en) * 1998-01-14 1999-11-30 Emc Corporation Method and apparatus for a SCSI applications server which extracts SCSI commands and data from message and encapsulates SCSI responses to provide transparent operation
US6421748B1 (en) * 1998-03-04 2002-07-16 Nadio.Com, Inc. System and method for a universal output driver
JPH11275291A (en) * 1998-03-19 1999-10-08 Matsushita Electric Ind Co Ltd Client / server system
US7349391B2 (en) * 1999-03-19 2008-03-25 F5 Networks, Inc. Tunneling between a bus and a network
US6785894B1 (en) * 1999-04-09 2004-08-31 Sun Microsystems, Inc. Virtual device driver
US6895588B1 (en) * 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US6789111B1 (en) * 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
US6629166B1 (en) * 2000-06-29 2003-09-30 Intel Corporation Methods and systems for efficient connection of I/O devices to a channel-based switched fabric
JP2002099495A (en) * 2000-09-26 2002-04-05 Fujitsu Ltd Client server system, server and client

Similar Documents

Publication Publication Date Title
US5758157A (en) Method and system for providing service processor capability in a data processing by transmitting service processor requests between processing complexes
US7447708B2 (en) Data processing apparatus and network system that outputs quality of service information to a user
US20020059372A1 (en) Method and apparatus for sharing peripheral devices over a network
JPWO2001025934A1 (en) Server/Client System
JP4592242B2 (en) Server / client system
US8112769B2 (en) System and method for implementing and/or operating network interface devices to achieve network-based communications
US20090217081A1 (en) System for providing an alternative communication path in a SAS cluster
US8589954B2 (en) Method and program for selective suspension of USB network device
CN113193981B (en) Configuration issuing method and device and network system
JP5040364B2 (en) Information processing system, transfer server device
US9087031B2 (en) Method and program for selective suspension of USB device
JP3765198B2 (en) Computer system
US5894547A (en) Virtual route synchronization
US20030065864A1 (en) System and method supporting remote data processing system management
JP4675541B2 (en) Data transfer and reception method, multi-node computer system, and computer-readable recording medium
US7281056B1 (en) Assigning a device to a network
US20070155422A1 (en) Method for controlling mobile data connection through USB Ethernet management of mobile station
JPH08316957A (en) Redundant network management system
JP3792343B2 (en) Input/Output Switching System
JP2001075810A (en) Computer system, expansion board, and method of updating function of expansion board in computer system
US20050022056A1 (en) Access by distributed computers to a same hardware resource
JP3260435B2 (en) Information communication system
JP2773758B2 (en) Circuit open method that requires synchronization in network
JP2778408B2 (en) Management device
JP2008083980A (en) Peripheral device, peripheral device recognition method, and peripheral device recognition program