JPH0816493A - スキャナプリンタサーバーシステムのデータ通信制御方法 - Google Patents

スキャナプリンタサーバーシステムのデータ通信制御方法

Info

Publication number
JPH0816493A
JPH0816493A JP6150059A JP15005994A JPH0816493A JP H0816493 A JPH0816493 A JP H0816493A JP 6150059 A JP6150059 A JP 6150059A JP 15005994 A JP15005994 A JP 15005994A JP H0816493 A JPH0816493 A JP H0816493A
Authority
JP
Japan
Prior art keywords
packet
server device
client
response
scanner
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
JP6150059A
Other languages
English (en)
Inventor
Yoshikazu Yokomizo
良和 横溝
Shigetada Kobayashi
重忠 小林
Hirohiko Hashimoto
裕彦 橋本
Yukari Toda
ゆかり 戸田
Kazuhiro Saito
和浩 齋藤
Jiyunichi Shishizuka
順一 宍塚
Osamu Yamada
修 山田
Yasuo Fukuda
康男 福田
Mitsumasa Sugiyama
光正 杉山
Makoto Takaoka
真琴 高岡
Yoshinobu Mita
良信 三田
Susumu Sugiura
杉浦  進
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP6150059A priority Critical patent/JPH0816493A/ja
Publication of JPH0816493A publication Critical patent/JPH0816493A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 アプリケーションのデッドロック状態を確実
に防止できるとともに、アプリケーションからの入出力
要求を正常に行える通信環境に復帰できる。 【構成】 アプリケーションから入出力要求に応じて前
記クライアントマシンが前記サーバー装置に発行する所
定のパケットに対する応答パケットの発行状態を所定時
間監視し、所定時間内に前記応答パケットが前記サーバ
ー装置より発行されない場合に、アプリケーションに対
して前記サーバー装置の異常状態を応答する構成を特徴
とする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ネットワークに接続さ
れた1台以上のプリンタ/スキャナを、複数のコンピュ
ータから利用するためのスキャナプリンタサーバーシス
テムのデータ通信制御方法に関するものである。
【0002】
【従来の技術】従来、1台のサーバー装置に複数のプリ
ンタ/スキャナを接続して、それにネットワーク経由で
印刷/スキャンをする場合、複数のプリンタ/スキャナ
を利用の都度切り替え選択して使う方法がなかったか、
あっても極めて繁雑な操作が必要であった。
【0003】従来の一般的なやり方は、たとえ複数のプ
リンタ/スキャナがサーバー装置に接続されていても、
その中の特定のプリンタまたはスキャナに常に接続する
ように設定して使っていた。プリンタ/スキャナを切り
替える場合には、プリンタドライバを切り替えることに
よって行っていた。
【0004】従来のネットワーク印刷のための通信プロ
トコルは、データ(ファイル)の一括転送が主体であっ
た。データはひとつの塊としてバッチ的に転送され、ジ
ョブがキューに登録されると通信は終了していた。
【0005】これは、クライアント側のコンピュータを
速やかに印刷の作業から解放するために取った方法であ
るが、処理がバッチ的なのでプリンタ側で何等かのトラ
ブルが発生しても「トラブル記録」ファイルが自動的に
生成されるだけで、クライアント側には何も知らされな
い。また、プリンタを選択するのもドライバの選択によ
っていた。
【0006】他のコンピュータのオペレーティングシス
テム(OS)の場合、ローカルプリンタに印刷する手前
のデータを、BIOS部分でストールしてネットワーク
プリンタに伝送する形式のものもある。これらもプリン
タ側で何等かのトラブルが発生しても、クライアント側
には何も知らされない。レーザプリンタの場合、やや改
良された通信機能を持ったプリンタもあり、「紙無し」
等のエラーコードをクライアントに伝送できるものもあ
る。
【0007】しかし、プリンタを切り替える場合にはプ
リンタドライバの切り替えが必要であった。
【0008】
【発明が解決しようとする課題】この様に従来のプリン
タサーバー装置においては、1台のサーバー装置に接続
された複数のプリンタ/スキャナを選択するのに、プリ
ンタドライバを切り替えることによって対応していたの
で、サーバー装置とプリンタ/スキャナの接続形態が少
し変わる度に、異なるプリンタドライバを用意しなけれ
ばならないとい問題点があった。
【0009】また、この種のプリンタサーバー装置は、
1台のサーバー装置に複数のプリンタが接続されている
状態であるから、プリンタドライバを選択しただけで
は、単にサーバー装置が選択されるだけで、そこに接続
されているプリンタを選択したことにはならない。プリ
ンタを選択するためには、プリンタドライバ自身がサー
バー装置におけるプリンタの接続状況を知っている必要
があるが、そのようなコンフィギュレーションをプリン
タドライバに記録することは拡張性を阻害する等の問題
点があった。
【0010】さらに、通常、クライアントマシンはシン
グルユーザモードで動作させる場合が多く、通信の異常
は即アプリケーションのデッドロックにつながってしま
うという問題点があった。
【0011】本発明は、上記の問題点を解消するために
なされたもので、本発明に係る第1〜第6の発明の目的
は、アプリケーションからの入出力デバイス要求に基づ
くクライアントマシンとサーバー装置とのパケット通信
において、通信エラーが発生した場合に、アプリケーシ
ョンにパケット通信エラーを通知するとともに、通信エ
ラー回復処理を行うことにより、アプリケーションのデ
ッドロック状態を確実に防止できるとともに、アプリケ
ーションからの入出力要求を正常に行える通信環境に復
帰できるスキャナプリンタサーバーシステムのデータ通
信制御方法を提供することである。
【0012】
【課題を解決するための手段】本発明に係る第1の発明
は、ネットワーク上に複数のクライアントマシンとスキ
ャナ/プリンタサーバー装置とがパケット通信可能に構
成され、前記スキャナ/プリンタサーバー装置に接続さ
れた複数の入出力デバイスを各クライアントマシンのア
プリケーションが入出力要求を発行して画像入出力処理
を行うスキャナプリンタサーバーシステムのデータ通信
制御方法において、アプリケーションから入出力要求に
応じて前記クライアントマシンが前記サーバー装置に発
行する所定のパケットに対する応答パケットの発行状態
を所定時間監視する監視工程と、この監視工程により前
記所定時間内に前記応答パケットが前記サーバー装置よ
り発行されない場合に、前記アプリケーションに対して
前記サーバー装置の異常状態を応答する応答工程とを有
するものである。
【0013】本発明に係る第2の発明は、クライアント
マシンは、サーバー装置からの応答パケット発行状態を
タイマにより所定時間監視するように構成したものであ
る。
【0014】本発明に係る第3の発明は、クライアント
マシンは、応答工程後、サーバー装置に対して異常状態
を回復させるための所定のパケットを発行する回復工程
を有すものである。
【0015】本発明に係る第4の発明は、クライアント
マシンは、応答工程後、サーバー装置に対して異常状態
を回復させるため異常発生前に発行した同一のパケット
を所定数回発行する再送工程を有するものである。
【0016】本発明に係る第5の発明は、アプリケーシ
ョンは、クライアントマシンからの異常状態応答に応じ
てクライアントマシンに対してサーバー装置の異常回復
を要求する回復要求工程を有するものである。
【0017】本発明に係る第6の発明は、クライアント
マシンは、サーバー装置から正常な応答パケットが発行
された場合に、アプリケーションに対して正常応答を通
知する通知工程を有するものである。
【0018】
【作用】第1の発明においては、アプリケーションから
入出力要求に応じて前記クライアントマシンが前記サー
バー装置に発行する所定のパケットに対する応答パケッ
トの発行状態を所定時間監視し、所定時間内に前記応答
パケットが前記サーバー装置より発行されない場合に、
アプリケーションに対して前記サーバー装置の異常状態
を応答して、アプリケーション側にサーバー装置とクラ
イアントマシン間における通信異常有無を通知して、ア
プリケーションのデッドロック状態が発生しないように
する。
【0019】第2の発明においては、クライアントマシ
ンは、サーバー装置からの応答パケット発行状態をタイ
マにより所定時間監視して、サーバー装置とクライアン
トマシン間における通信異常有無を判別する。
【0020】第3の発明においては、クライアントマシ
ンは、アプリケーションに対して前記サーバー装置の異
常状態を応答後、サーバー装置に対して異常状態を回復
させるための所定のパケットを発行して、クライアント
マシンがサーバー装置に対してい正常通信状態への移行
を催促する。
【0021】第4の発明においては、クライアントマシ
ンは、アプリケーションに対して前記サーバー装置の異
常状態を応答後、サーバー装置に対して異常状態を回復
させるため異常発生前に発行した同一のパケットを所定
数回発行して、異常発生前のパケット通信を正常に再開
する。
【0022】第5の発明においては、アプリケーション
は、クライアントマシンからの異常状態応答に応じてク
ライアントマシンに対してサーバー装置の異常回復を要
求して、アプリケーション側からクライアントマシンに
対してサーバー装置との正常な通信状態に復帰するため
に必要な所定の回復処理の起動を催促する。
【0023】第6の発明においては、クライアントマシ
ンは、サーバー装置から正常な応答パケットが発行され
た場合に、アプリケーションに対して正常応答を通知し
て、サーバー装置との通信異常で中断していた入出力処
理を正常に再開する。
【0024】
【実施例】以下、図示の実施例に基づき詳細に説明す
る。
【0025】図1は本発明の一実施例を示すスキャナプ
リンタサーバーシステムの構成を説明するブロック図で
ある。
【0026】図において、1〜4はクライアントコンピ
ュータ(クライアントと呼ぶ場合ある)、5はローカル
エリアネットワーク(LAN)、6はカラーSPサーバ
ー装置(単にサーバー装置と書く場合もある)、7はプ
リンタAとしてのプリンタ、8はプリンタBとしてのプ
リンタ、9はスキャナCとしてのスキャナである。な
お、7,8,9は後述の説明中、単位にデバイスA,
B,Cと略記する場合がある。
【0027】クライアント1,2,3,4は、LAN5
を介してサーバー装置6と接続されており、このLAN
5を介してデバイス7,8,9に印刷またはスキャンを
することができる。
【0028】図2は本発明に係るスキャナプリンタサー
バーシステムにおける操作者,アプリケーション,クラ
イアント(Client),サーバー装置(Serve
r)およびデバイスとの間でのプリンタ処理手順の一例
を示すコマンドのシーケンスダイヤグラムである。な
お、図中、上から下に時間が流れていくようすを示すと
共に、矢印の方向にコマンドが流れていくようすも示し
ている。
【0029】操作者がアプリケーションに対し「印刷」
を指示すると、アプリケーションはClientに対し
て「印刷要求」を送る。Clientのプログラム形式
はプリンタドライバである。従って、アプリケーション
とClientの間には通常OSが介在するが、図面で
は省略してある。 〈プリント〉上記「印刷要求」を受け取ると、Clie
ntはServerとの間にトランスポート接続を張
る。この方法は一般的なので、図面では省略してある。
【0030】図2におけるClientとServer
間のやり取りは、全てトランスポート層の上のセッショ
ン層について記述しており、セッション層は、後述のよ
うに、内部的に2つのサブレイヤに分かれ、下位レイヤ
をレベル1、上位レイヤをレベル2としている。
【0031】図2においては、「Link」,「Lin
k_Ack」,「Release」,「Release
_Ack」がレベル1に属し、他は全てレベル2に属す
る。
【0032】「印刷要求」の後、トランスポート接続が
確立したら、レベル1の接続を行う。それがLinkお
よびその応答のLink_Ackパケットのやり取りで
ある。
【0033】通常、「印刷要求」の中でデバイス指定を
行うことはないが、オプションでデバイス指定が可能な
ように構成されている。
【0034】デバイス指定がない場合、Clientは
Serverに対し「Open」パケットを送る。先ほ
ど述べた通り、これはレベル2のパケットである。それ
を受けてServerは全てのデバイス(実際にはデバ
イスドライバ)に問い合わせ、電源が入っているかどう
かをチェックする。これが、図2の「問い合わせ」/
「問い合わせ応答」に対応する。
【0035】このようにして、どのデバイスが使用可能
であるかどうかをリストアップしたパケット「Open
_Ack」がServerから返されると、Clien
tはデバイスリスト表示ダイアログを開いて操作者にデ
バイスの選択を促す。
【0036】デバイスが選択されると、Clientは
Serverに「INIT」パケットを送って、サーバ
ー装置およびデバイスの初期化を行う。
【0037】このようにして初期化が成功すると、デバ
イスは「初期化肯定応答」(図示せず)を返すので、直
ちに印刷を開始できる。
【0038】しかし、通常はデバイスが選択されただけ
では初期化が十分でなく、デバイスはさらに細かなパラ
メータを必要とするので、「初期化否定応答」を返す。
いずれの場合でもServerはClientに対して
「INIT_Ack」を返す。
【0039】ただし、「初期化否定応答」に対しては同
パケットのmodifierビットをエラーにセットし
て返す。
【0040】通常は、用紙サイズが適当でない等の書式
エラーが返されるので、アプリケーションは「デバイス
機能」/「デバイス機能応答」コマンドでデバイスの能
力を調べる。
【0041】それは、Client/Server間で
は「Capability」/「Capability
_Ack」パケットであり、Server/デバイス間
では「能力問い合わせ」/「能力問い合わせ応答」コマ
ンドでやり取りされる。
【0042】デバイスの印刷機能が分かると、アプリケ
ーションは正確な書式指定が可能となりClientに
対して「書式指定」コマンドを発行する。本発明では、
初期化のためのパケットと書式指定のためのパケットを
同じ「INIT」で兼用しているので、Clientか
らServerに対して「INIT」パケットが送出さ
れる。それによってデバイスには「初期化」コマンドが
再び送られるが、今度は適格なパラメータが設定されて
いるので、肯定応答が返される。
【0043】これにより、書式指定が完了したので、こ
こで初めて印刷が可能となる。アプリケーションから
「印刷開始」コマンドが出て、「Print」パケット
としてServerに送られる。そのレスポンスは「P
rint_Ack」パケットとして返され、「印刷開始
応答」コマンドがアプリケーションに返される。
【0044】この後、印刷すべきデータが伝送される。
データは、所定サイズに分割して「Data」パケット
に乗せられる。
【0045】受信側では、再びそれを元のサイズに結合
して使う。当然「Data」パケットのヘッダ等の不用
部分も削除される。「Data_Ack」パケットは、
「Data」パケットに対する正確なレスポンスを返す
ように定義されており、「Data」パケットが送れた
のか送れなかったのかが1対1で分かるようになってい
る。それに対して、「データ」コマンドに対する「デー
タ応答」は必ずしもそのようではない。
【0046】その理由は通常、「データ」コマンドは関
数コール(サブルーチンコール)の形式を取るのに対
し、「データ応答」コマンドは、その関数の戻り値で与
えられる。そのため「Data_Ack」パケットが何
等かの理由により返されなかった時に、「データ応答」
が返せないのでアプリケーションがデッドロック状態に
なる。
【0047】これを防止するために、「Data」パケ
ットを送信してから一定時間以内に「Data_Ac
k」パケットが返されなかったら、Clientは自分
の責任で「Data」パケットを再送すると共に、「デ
ータ応答」コマンドの所定ビットをエラーに設定してア
プリケーションに戻してしまう。
【0048】しかし、本プロトコルはセッション層につ
いて定義しているので、その下位レイヤのトランスポー
ト層が、エンドツーエンドで誤りのない通信を保証して
いるから、やがて「Data_Ack」パケットが返さ
れる。
【0049】しかし、この時には既に「データ応答」の
所定ビットをエラーに設定して、関数の戻り値としてア
アプリケーションに返してしまっているので、エラーで
ない「データ応答」を返す手段がない。
【0050】従って、「データ」コマンドに対する「デ
ータ応答」は所定のビットがエラーに設定されていたと
しても、必ずしもエラーとはいえない。
【0051】「データ応答」の所定ビットがエラーに設
定されていた場合には、その内容にもよるが、通常は
「進捗」コマンドを発行してClient/Serve
r間の通信の状態を調べる。
【0052】Clientは必要に応じてServer
に対して「Progress」パケットを発行して「P
rogress_Ack」パケットを受け取り、通信の
状態を調べ、結果を「進捗応答」コマンドとしてアプリ
ケーションに戻す。
【0053】アプリケーションは、ファイルの終了(E
OF)に到達するまで次の「データ」コマンドを送り続
ける。「進捗応答」の内容は、操作者に分かるように画
面に表示する。
【0054】このようにしてデータを送り終ったら、ア
プリケーションはClientに対して印刷の終了を確
認するために「終了」コマンドを発行する。それを受け
てClientはServerに「Close」パケッ
トを発行するが、印刷が完了するまでは「Close_
Ack」パケットは返されない。この間アプリケーショ
ンはデッドロック状態になる。
【0055】これを防止するために、Clientは自
分の責任でServerに「Progress」パケッ
トを送出すると共に、「終了応答」コマンドの所定ビッ
トを{印刷中}に設定してアプリケーションに戻してし
まう。
【0056】もし印刷をバックグラウンドで行う場合に
は、{印刷中}であっても次のステップに移ってしま
う。そうでない(フォアグランド印刷)場合には、「終
了コマンドを再発行すると共に、「終了応答」コマンド
の所定ビットが{印刷完了}となるまでループする。
【0057】印刷が完了した後は、Clientは「R
eleas」パケットを発行し、Serverから「R
elease_Ack」パケットを受け取ったら、レベ
ル1以下の接続を切断する。
【0058】Server側も「Release」パケ
ットを受信したら「Release_Ack」パケット
を送信後レベル1以下の接続を切断する。 〈スキャン〉原稿をスキャンする場合には、印刷時とほ
とんど同じシーケンスで処理がなされる。大きな違いは
データの流れる向きが印刷の時と逆であるという点であ
る。スキャンのシーケンスダイヤグラムを図3に示す。
【0059】図3は本発明に係るスキャナプリンタサー
バーシステムにおける操作者,アプリケーション,クラ
イアント(Client),サーバー装置(Serve
r)およびデバイスとの間でのスキャン処理手順の一例
を示すコマンドのシーケンスダイヤグラムである。
【0060】同図に示すように、「Data」パケット
と「Data_Ack」パケットの向きは印刷時と逆で
あるが、「データ要求」コマンドと「データ要求応答」
コマンドの向きは変化がない。これは、関数を呼ぶ側
(アプリ)と呼ばれる側(OS)の立場は変わらないか
らである。スキャンされたデータは、「データ要求応
答」コマンドに乗って来る。バックグラウンドスキャン
は、バックグラウンド印刷と同様に可能であるが、図3
の実施例では入れていない。
【0061】図4は本発明に係るスキャナプリンタサー
バー装置の第1のデータ通信制御方法の一実施例を示す
フローチャートであり、特に、データ通信中における中
断シーケンスに対応する。
【0062】アプリケーションから「印刷」要求があっ
た場合、Server/Client間で「Lin
k」,「Link_Ack」,「Open」,「Ope
n_Ack」等のパケットのやり取りは順調に推移した
ものとする。
【0063】今、Clientが「INIT」を発行し
たらその応答「INIT_Ack」がServerから
なかなか戻らない場合を想定する。
【0064】通常のシーケンスでは、「INIT_Ac
k」がなかなか帰らないと、その間アプリケーションは
デッドロック状態となる。これを防止するためにタイマ
をセットし、例えば数秒待ってもサーバー装置から応答
がこない場合には、応答待ち状態を強制的に抜け出して
中断/回復/再送処理を行う。
【0065】タイマのセットは、例えばOSに対してタ
イマシグナルを発行する。タイマがカウント満了すると
OSは、シグナル発行時にセットした処理ルーチンに制
御を戻すので、その中で例えば疑似的に「エラーパケッ
ト」を自分自身(この場合はクライアント)に発行する
ことにより、パケット解析ルーチンで統一的に「デー
タ」,「コマンド」,「エラー」パケットの解析が行え
る。
【0066】この図の例では、INIT_Ackが所定
時間以内に戻らなかった場合に、クライアントは「印刷
要求応答」をエラーにしてアプリケーションにその旨の
メッセージを戻すことにより、アプリケーションに異常
事態に対する次のアクションを促している。
【0067】ここでは、アプリケーションは「中断」パ
ケットをクライアントに送り、それ以降の処理を中断さ
せている。
【0068】ただし、中断とはいってもそこでシーケン
スを突然やめてしまう訳にはいかない。サーバー装置や
デバイスに余計な「シーケンス的ストレス」を与えない
ために、「中断」パケットを発行した後のシーケンス
も、中断なりに正常に終了させる必要がある。さもなけ
れば、1つの異常が原因で連鎖反応的にエラーが拡大し
てしまうからだ。
【0069】そこで、本実施例では、通信プロトコルの
パケット送出時にソフト的なタイマを起動し、タイマが
満了した場合には、異常終了シーケンスに移行すること
により、アプリケーションのデッドロックを防止する。
【0070】なお、タイマが満了した場合の取り得るア
クションは、例えば「中断」「回復」「再送」である。
また、タイマの処理方法にも工夫が必要である。タイマ
ルーチンは、通常のパケット受信ルーチンとは本来無関
係の独立ルーチンで、OSに対してタイマをセットして
それをONすると、タイマが満了した場合には、単にタ
イマをセットした時に登録した処理ルーチンが1回コー
ルされるだけなので、パケットの受信待ちになっている
受信ルーチンはタイマを検知できなくなる。
【0071】そこで、本実施例では、該タイマルーチン
の中で、自分自身にタイマパケットを送信することによ
り、受信ルーチンにタイマの満了を知らせている。そし
て、タイマパケットを受信した受信ルーチンは、単に1
つの状態変化として捉えることができ、デッドロックを
確実に防止できるとともに、状態遷移表の設計が極めて
容易になる。
【0072】図5は本発明に係るスキャナプリンタサー
バー装置の第2のデータ通信制御方法の一実施例を示す
フローチャートであり、特に、データ通信中における回
復シーケンスに対応する。なお、図4と異なるのは、ク
ライアントが「印刷要求応答」をエラーとして帰した時
に、アプリケーションは「中断」の代わりに「回復」パ
ケットを発行する。
【0073】クライアントは、今度は回復パケットなの
で、サーバー装置に対して異常の回復を要求するためI
NITパケットを再発行して再度サーバー装置からの応
答「INIT_Ack」を待つ。
【0074】図6は本発明に係るスキャナプリンタサー
バー装置の第3のデータ通信制御方法の一実施例を示す
フローチャートであり、特に、データ通信中における再
送シーケンスに対応する。
【0075】本実施例では、クライアントがサーバー装
置からINIT_Ackが帰らない時、クライアントが
ループによって最大5回まで同一のINITパケットを
サーバー装置に再送する。
【0076】以下、本実施例と第1〜第6の発明の各工
程との対応及びその作用について図4〜図6を参照して
説明する。
【0077】第1の発明は、ネットワーク5上に複数の
クライアントマシン(クライアントコンピュータ1〜
4)とスキャナ/プリンタサーバー装置6とがパケット
通信可能に構成され、前記スキャナ/プリンタサーバー
装置6に接続された複数の入出力デバイス(プリンタ
7,8,スキャナ9)を各クライアントマシンのアプリ
ケーションが入出力要求を発行して画像入出力処理を行
うスキャナプリンタサーバーシステムのデータ通信制御
方法において、図4等のアプリケーションAPから入出
力要求に応じて前記クライアントマシンCMが前記サー
バー装置SRに発行する所定のパケットに対する応答パ
ケットの発行状態を所定時間監視する監視工程(図4の
通信処理S1)と、この監視工程により前記所定時間内
に前記応答パケットが前記サーバー装置より発行されな
い場合に、前記アプリケーションに対して前記サーバー
装置の異常状態を応答する応答工程(図4の処理S2)
とを実行して、アプリケーション側にサーバー装置とク
ライアントマシン間における通信異常有無を通知して、
アプリケーションのデッドロック状態が発生しないよう
にする。
【0078】第2の発明は、クライアントマシンは、サ
ーバー装置からの応答パケット発行状態をタイマ(図4
等のタイマTM1〜TM5)により所定時間監視して、
サーバー装置とクライアントマシン間における通信異常
有無を判別する。
【0079】第3の発明は、クライアントマシンCM
は、応答工程後、サーバー装置SRに対して異常状態を
回復させるための所定のパケットを発行する回復工程
(図5の処理S3)を実行して、クライアントマシンC
Mがサーバー装置に対してい正常通信状態への移行を催
促する。
【0080】第4の発明は、クライアントマシンCM
は、応答工程後、サーバー装置SRに対して異常状態を
回復させるため異常発生前に発行した同一のパケットを
所定数回発行する再送工程(図6の処理S4)を実行し
て、異常発生前のパケット通信を正常に再開する。
【0081】第5の発明は、アプリケーションAPは、
クライアントマシンCMからの異常状態応答に応じてク
ライアントマシンCMに対してサーバー装置の異常回復
を要求する回復要求工程(図5の処理S5)を実行し
て、アプリケーションAP側からクライアントマシンC
Mに対してサーバー装置との正常な通信状態に復帰する
ために必要な所定の回復処理の起動を催促する。
【0082】第6の発明は、クライアントマシンCM
は、サーバー装置SRから正常な応答パケットが発行さ
れた場合に、アプリケーションAPに対して正常応答を
通知する通知工程(図5の処理S6)を実行して、サー
バー装置SRとの通信異常で中断していた入出力処理を
正常に再開する。 〈Client/Server通信プロトコル〉以下
に、ClientとServerと間の通信プロトコル
の詳細を図7を参照して説明する。
【0083】図7は本発明に係るスキャナプリンタサー
バー装置におけるクライアントとサーバーとの間の通信
プロトコルの詳細を説明する概念図である。
【0084】Client通信プログラムは、大きく分
けて、図7のように3つの部分に分かれます。すなわ
ち、ドライバインタフェース,クライアントプロトコル
本体,TCP/IPインタフェースです。
【0085】以下、プリンタ言語としてCaPSL(C
anon Printing System Lang
uage(商品名:開発元:キヤノン株式会社)を使用
する場合を例として説明するが、他のプリンタ言語(例
えばポストスクリプト(商品名))等であってもよい。
【0086】Clientは、Serverに接続され
ているスキャナ/プリンタにCaPSLコードを伝送し
たり、スキャンしたりするための通信制御プログラムで
あり、TCP/IPおよびEthernetを介して通
信する。Clientの基本機能は以下の通りである。
【0087】機能(1)は、TCP/IPを介してSe
rverとEnd−to−Endのリンクを張る機能で
あり、機能(2)は、PrintTCPから受け取った
CaPSLデータを、Serverに送る機能であり、
機能(3)は、Serverに原稿のスキャンをさせ、
それを受信し、アプリケーションに送る。
【0088】Serverは、サーバー装置上でデーモ
ンとして常に走っており、クライアントからの受信を待
機する。Clientの基本機能は以下の通りである。
【0089】機能(1)は、Clientから受け取っ
たCaPSLデータを、CaPSLインタプリンタに渡
す機能であり、機能(2)は、原稿スキャンプログラム
を起動し、受け取ったデータをClientに送る。 <Client通信ソフトの機能>Client通信ソ
フトの基本機能のうち、機能(1)は、Serverと
の間に、ネットワークを介してEnd−to−Endの
呼を張り、通信サービスを提供する機能であり、Ser
verとの間に、ネットワークを介してEnd−to−
Endの呼を張る時、下位プロトコルとしてTCP/I
Pを用いる。Clientは、ServerとのEnd
−to−Endの呼が張られた状態では、見掛け上、C
lientとServerが直接交信しているかのよう
に振舞うが、実際には全てのパケットは下位レイヤのT
CP/IPとやり取りされる。
【0090】なお、アプリケーションから見たClie
ntは、ローカルに接続されているスキャナ/プリンタ
のように振舞う。すなわち、Clientは「ネットワ
ークを介してスキャナ/プリンタをエミュレートするプ
ログラムである」と言える。
【0091】機能(2)は、Server側の印刷/ス
キャン機能をClient側からリモート制御する機能
であり、Server側の印刷/スキャン機能は、当然
Client側からリモート制御されなければならな
い。所定のプロトコルに従いプリンタ/スキャナの受け
入れ体制を整えた後、原稿データを伝送する。データの
伝送完了後、次の印刷/スキャンに備えてプリンタ/ス
キャナをアイドル(待機)状態まで持っていき、呼を切
る。
【0092】機能(3)は、所定の手順(プロトコル)
に従い、文書データを伝送する機能であり、(3)所定
の手順(プロトコル)に従い、文書データを伝送する。
なお、以下の説明において、H_Link,L_Lin
k,HL_Linkのように先頭にH_,L_やHL_
が付いた同一名称のパケットが説明されているが、説明
の都合でこのように表現しているだけなので、同一パケ
ットであるものとする。
【0093】補助機能のうち、機能(4)は、ネットワ
ークに関する各種パラメータの設定機能であり、機能
(5)は、Serverに関する各種パラメータの設定
機能であり、機能(6)はファイルの伝送機能である。 〈パケットの形状〉以下、図8を参照しながらパケット
の形状について説明する。
【0094】図8は本発明に係るスキャナプリンタサー
バー装置におけるSPサーバー装置/クライアントプロ
トコルの一般的パケットの形状を説明する図である。
【0095】SPサーバー装置/クライアントプロトコ
ルの一般的パケットの形状は、図5に示す通りであり、
太い線で囲んだ部分の左側の数字はバイト数である。
【0096】図において、packet_idは、パケ
ットのIDコードを示し、source_idは、パケ
ットがどこからきたのかを示すコードを示し、pk_s
izeは、パケット全体の長さ(バイト数)を示し、c
ontentsは文字通り、送るべき情報の中身であ
る。 〈コンテンツ(contents)〉上記S/Pパケッ
トのコンテンツの部分はさらに、sub_comman
d_id,length,contentの3つの要素
が繰り返しで構成される。これが1セットで1つの意味
を表現します。
【0097】特に、sub_command_idはサ
ブコマンドコードで、これが受信側に対する特定のサブ
コマンドを示し、lengthは引き続くconten
tの長さ(バイト)を示す。なお、contentは、
sub_command_idの付加情報を伝えるのに
用い、ファイル名とかのテキストストリングのような、
1バイトに収まり切れない情報が入る。 〈各パケットの機能〉以下、各パケットの機能について
説明する。 <LEVEL_1パケット>LEVEL_1パケットに
は、LEVEL_1プロトコル接続要求を意味するL_
Linkパケット,LEVEL_1プロトコル接続確認
を意味するL_Link_ackパケット,LEVEL
_1プロトコル切断を意味するL_releaseパケ
ット,LEVEL_1プロトコル切断確認を意味するL
_release_ackパケット,状態確認要求を意
味するL_statusパケット,状態確認応答を意味
するL_status_ackパケット,Sever制
御要求を意味するL_controlパケット,Sev
er制御確認を意味するL_control_ackパ
ケット,強制切断要求を意味するL_abortパケッ
ト,強制切断確認を意味するLabort_ack等の
パケットがある。 <LEVEL_2パケット>LEVEL_2パケットに
は、L_open,L_open_ack,L_clo
se,L_close_ack,L_init,L_i
nit_ack,L_start,L_start_a
ck,L_end,L_end_ack,L_dat
a,L_data_ack,L_progress,L
_progress_ack,L_capabilit
y,L_capability_ack,L_canc
el,L_cansel_ack等の各種のパケットI
Dが定義可能に構成されている。以下、図9〜図25等
のを照しながら各パケットの内容について説明する。
【0098】上記パケットIDとしてのL_open
は、サーバー/クライアント間でリンクを張り、その後
のサービス(印刷/スキャン)の接続を確保するための
オープン要求するパケットに対応し、パケット定義例を
図9に示す。
【0099】図9に示す、packet_typeには
LEVEL_2を、packet_IDにはH_ope
nをセットする。その他のヘッダパラメータのセットの
仕方は後述する。
【0100】また、modifierのパラメータにm
_print(印刷),m_scan(スキャン),m
_FTAM(ファイル転送)のいずれかでジョブ指定す
ることによって、その後のシーケンスが「印刷」なのか
「スキャン」なのかが決まる。
【0101】さらに、host_nameとuser_
IDには、それぞれクライアント側のホスト名とユーザ
IDをセットする。これらはともにCストリングであ
り、NULLターミネータを必要とする。32バイトと
いうのは、ターミネータを含んだ長さである。将来サー
バー装置側で利用者に限定する時にこのパラメータを参
照するためである。
【0102】上記パケットIDとしてのL_open_
ackは、サービス(印刷/スキャン)の接続を確認す
るためのパケットに対応し、パケット定義例を図10に
示す。
【0103】当該確認の結果がOKならmodifie
rにNoErrorを返します。
【0104】一方、何等かの障害により、要求されたサ
ービスを提供できない場合には、modifierのエ
ラーフラグを「1」にセットし、errorにエラーコ
ードを書き、msgで障害の理由を送る。
【0105】なお、errorとmsgは、デバイスリ
ストdev1−dev6と同じ部分が共用される。
【0106】また、図10に示すホスト名にはサーバー
装置のホスト名、ユーザIDにはサーバー装置のユーザ
IDを返す。通常、サーバー装置のユーザIDはroo
tです。同一ネットワーク上にサーバー装置が複数存在
するようなシステムを構築する時に、このパラメータを
使う。
【0107】さらに、図10に示すファイル名には、サ
ーバー装置が内部でキューにセーブするファイル名を返
します。クライアントがこのファイル名を指定してキュ
ーのクリア等を行う。メモリ受信の場合は何もセットさ
れない場合がある。
【0108】サーバー装置に接続されるスキャナ/プリ
ンタは、いつ、どんな物が接続されるか分からないし、
電源が入っているかも分からないので、クライアントは
印刷/スキャンの都度サーバー装置に問い合わせる。
【0109】その結果が使用可能デバイスリストで返さ
れるので、L_initでひとつを選んで接続を要求し
ます。dev1からdev6には、クライアント/サー
バー装置間で識別可能なデバイスのコード(最大4バイ
ト)が、dev_info1からdeb_info6に
は、クライアントで表示可能な製品名(最大15バイト
+NULL)が入る。
【0110】例えばdev=”CLC5”,dev_i
nfol=”PIXELDUO(商品名)”,dev
=”CLC3”,dev_infol=”PIXELE
PO(商品名)”,dev=”CJ10”,dev_i
nfol=”PIXELJET(商品名)”等である。
【0111】なお、通常はデフォルト値のままでよい
が、1台のサーバーに同じ形式のデバイスが複数台接続
されている場合には、Nameプロトコルにより、de
v_infoを変更する必要がある。そこで、クライア
ントとサーバー間で、サービスを開始し、デバイスリス
トをクライアントに提示して、クライアントからデバイ
スを指定させ、指定されたデバイスの指定を確認し、サ
ービスを終了することにより、サーバーば指定されたデ
バイス名を、デフォルトデバイス名として記憶する。
【0112】上記パケットIDとしてのL_close
は、サービス(印刷/スキャン)の終了を要求する場合
のパケットに対応し、上記パケットIDとしてのL_c
lose_ackは、サービス(印刷/スキャン)の終
了の確認するパケットに対応する。
【0113】上記パケットIDとしてのL_init
は、サーバー初期化要求に対応するパケットであり、パ
ケット定義例を図11に示し、該L_initにサブコ
マンド例を図12,図13に示す。
【0114】図11に示すようにクライアントは、L_
initでサーバー装置/デバイスの機能を選択しま
す。サーバー装置は、ここで指定されたパラメータを記
憶しておく。なお、該パケット自体がオプションなの
で、これを送らずに印刷/スキャンも可能となる。
【0115】しかし、その場合、パケットIDとしての
L_capabilityで現在セットされているパラ
メータが何であるかを調べてから実行する方が望まし
い。
【0116】なお、パラメータの大部分が〔オプショ
ン〕指定になっているのは、L_initの使い方の自
由度を増すためである。例えば、L_initのパラメ
ータは何回かに分けて送ってもよいので、解像度のみを
変更しその他のパラメータは現在セットされている値を
そのまま使う場合には、RESOLUTIONだけをセ
ットし、それ以外のパラメータはセットせずに送る。
【0117】その場合のL_initのパケットサイズ
は、非常に小さくなります。パケットサイズが可変なの
は、L_initとL_dataのみである。なお、サ
ンプルプログラムは可変になっていないので、例えば解
像度のみを変更する場合には、その他のパラメータには
NULLをセットする必要がある。
【0118】さらに、パケットIDとしての上記L_i
nit_ackはサーバー初期化確認用のパケットに対
応し、L_startはサービス(印刷/スキャン等)
実行開始要求のパケットに対応し、L_start_a
ckは(印刷/スキャン等)実行開始応答のパケットに
対応し、L_endは(印刷/スキャン等)終了要求の
パケットに対応し、L_end_ackは終了確認のパ
ケットに対応し、L_dataはデータパケットに対応
し、L_data_ackはデータ送達確認のパケット
に対応する。
【0119】また、パケットIDとしての上記L_pr
ogressはサーバー/クライアントの状態を問い合
わせるパケットに対応し、paket_typeはL_
progressで、modifierはNULLであ
る。また、commandは、サーバー状態を調べるS
ERVER,クライアントの状態を調べるCLIEN
T,スキャナ/プリンタの状態を調べるDEVICE,
クライアント側のホストコンピュータの状態を調べるH
OST,スプーラの状態を調べるSPPLER,ネット
ワークの状態を調べるNETWORK,第2のサーバー
の状態を調べるROUTE,サーバー/クライアントの
状態を調べるNULL等のオプションコマンドを有し、
これらの機能をサポートしないサーバーは、SERVE
Rコマンドの受信と同じ動作をし、これらのコマンド要
求オプションが設定されていた場合には、正しくそのサ
ービスを実行するか、さもなければエラーを返す。な
お、objePRINTER,SCANNER,DIS
K,SERVERで、directionの種類は、印
刷,ファイル書込み,ループバック等のためのCLIE
NT_TOSERVERと、スキャン,ファイル読み込
み等のためのSEVER_TO_CLIENTである。
【0120】さらに、パケットIDとしての上記L_p
rigress_ackはL_prigressni対
する返事に対応し、L_capabilityは機能リ
スト要求に対応し、L_capability_ack
はデバイスの有する能力を示すパラメータリストの回答
のための機能リスト応答に対応する。その応答例を図1
4に示し、そのサブコマンドの内容を図17〜図18に
示す。
【0121】また、パケットIDとしての上記L_ca
ncelは、キャンセル要求のためのパケットに対応
し、L_cancel_ackはキャンセル確認のため
のパケットに対応する。 〈S/Pプロトコル〉図19は本発明に係るスキャナプ
リンタサーバー装置における基本シーケンス一例を示す
プロトコルを説明する図である。
【0122】サーバー装置/クライアント間でのパケッ
トのやり取りは、図19に示すように通常1対1で対応
しており、サーバー装置からコマンドパケットを発行す
れば、必ずAckパケットが返ってくるのを基本として
いる。この基本から外れる動作をするパケットは、L_
abort,L_abort_ackで、L_abor
tは、動作がおかしくなった時に発行されるパケットな
ので、いつでも発行され得る。
【0123】図20,図21は本発明に係るスキャナプ
リンタサーバー装置における初期化処理の一例を示すプ
ロトコルを説明する図である。
【0124】S/Pサーバー装置の初期化は、図20に
示すように、最短コースでは、Openとinitパケ
ットのやり取りで完了する。
【0125】また、initの要求に対して、サーバー
装置側の機能が欠けている場合、その返事init_a
ckにエラーが含まれて返される。その場合、capa
bilityパケットによってサーバー装置側の能力を
調べ、パラメータを変更の後、再度initを発行して
初期化を行う。今度は、相手の能力に合った要求を出し
たので、init_ackはエラーとなることはなくな
る。
【0126】コンピュータ側から印刷する場合の代表的
な処理手順における〈ネットワークの設定〉,〈印刷〉
は以下のようになる。 〈ネットワークの設定〉(1)で、コントロールパネル
のネットワークアイコンを選択し、「PrintTCP
ダイアログ」を表示させる。(2−1)で、TCP/I
P上のプリンタのホスト名(または、IPアドレス)を
設定する。次いで、(2−2)で、印刷/(スキャン)
サービスのポート番号の設定する。次いで、(2−3)
で、デバイス(スキャナ/プリンタ)の選択する。次い
で、(2−4)で、リトライタイマ値(T1)と、タイ
ムアウトタイマ値(T2)の設定を行い、(2−5)で
「OK」をクリックする。
【0127】図22は本発明に係るスキャナプリンタサ
ーバー装置におけるネゴシエーション処理におけるデバ
イス選択処理に対応するプロトコルを説明する図であ
る。
【0128】この図に示すように、上記(2−3)での
デバイス(スキャナ/プリンタ)の選択は、実際にTC
P/IPのリンクを張って、サーバー装置に何が接続さ
れているかを調べた上で、ダイアログに表示する。
(3)で「PrintTCPダイアログ」が消える。 〈印刷〉(4)で、「印刷」メニューの選択し、(5)
でプリンタドライバが「Printer Draive
r Device Mode]のダイアログを表示す
る。
【0129】(6−1)で、印刷するページの範囲を指
定(デフォルトは全ページ)し、(6−2)で、1ペー
ジ当りの印刷枚数を設定(デフォルトは1枚/頁)し、
(6−3)で、用紙サイズの選択(デフォルトはレター
サイズ)し、(6−4)で、用紙方向の選択(デフォル
トはポートレイト)し、(6−5)で、解像度の選択
(デフォルトは400dpi)する。
【0130】そして、(6−6)で、色指定(デフォル
トはRGB)し、(6−7)で、ページ記述言語の選択
(デフォルトはCaPSL)し、(6−8)でプリンタ
の選択する。
【0131】この中で、解像度に400dpiの選択メ
ニューがない場合には、HighResolution
の360dpiを選択し、プリンタの選択はやる必要が
ないので、例えば「P692」を選択しておく。
【0132】これらの設定値は(Windowsの場
合)WIN.INIファイルにセーブされる。将来は、
プリンタドライバとネットワークドライバが、直接通信
するようになると思われるが、現在はWindowsの
PrinterDriverが介在するため、これらの
パラメータをネットワークドライバに直接渡す方法は無
いのではないかと思われる。
【0133】そのため、ネットワークドライバはWI
N.INIファイルを自分で見に行くか、さもなければ
デフォルト値を決め打ちでセットすることなる。
【0134】図23は本発明に係るスキャナプリンタサ
ーバー装置における印刷の正常通信シーケンスを示すプ
ロトコルを説明する図である。
【0135】図24は本発明に係るスキャナプリンタサ
ーバー装置における印刷機能のネゴシエーション処理を
示すプロトコルを説明する図である。
【0136】以下、本発明に係るスキャナプリンタサー
バー装置における状態遷移について説明する。 〈状態遷移〉Client/Serverプロトコル
は、通信中に、以下、DM(Disconnect M
ode),CM(Connect Mode),SM
(Service Mode),TM(Transmi
ssion Mode)の4つの動作状態のいずれかを
取り得る。
【0137】先ず、DM(Disconnect Mo
de)状態は、電源を入れた直後の状態で、TCP/I
Pのリンクが切り放されている状態をいう。CM(Co
nnect Mode)状態は、サーバー装置とクライ
アントとの間でTCP/IPのリンクが張られ、いつで
も通信可能な状態にある。
【0138】SM(Service Mode)状態
は、サーバー装置とクライアントとの間で具体的な通信
サービス(例えば「印刷サービス」)を開始した状態を
いう。TM(Transmission Mode)状
態は、データが転送されている状態をいう。
【0139】SPサーバー装置/クライアントプロトコ
ルには、LEVEL_1パケット群とLEVEL_2パ
ケット群とがあり、LEVEL_1は、OSIのセッシ
ョンレイヤに相当するレイヤで、LEVEL_2は、O
SIのドキュメントレイヤに相当するレイヤである。
【0140】これらのパケットの内で、特定のパケット
を送受信した時に、上記のモードが変わ。例えばHL_
link/HL_link_ackは、DMからCMに
モードが変わり、HL_release/HL_rel
ease_ackはCMからDMにモードが変わり、H
L_open/HL_open_ackは、CMからS
Mにモードが変わり、HL_Close/HL_Clo
se_ackはSMからCMにモードが変わる。 〈DM状態〉以下、サーバー装置側の動作を中心にDM
状態について説明します。
【0141】図8に示したように、サーバー装置の基本
シーケンスの状態は遷移するが、サーバー装置は電源O
N後、〈DM〉の状態で着信信号を待ち続ける。そし
て、クライアントがTCP/IPのリンクを張り、クラ
イアントからHL_Linkパケットが到着すると、サ
ーバー装置はHL_link_ackを返すと共に〈C
M〉の状態に移行する。 〈CM状態〉図25は本発明に係るスキャナプリンタサ
ーバー装置におけるサーバー−クライアント間のシーケ
ンスの一例を示すプロトコルを説明する図である。
【0142】本実施例のるスキャナプリンタサーバー装
置においては、CM状態において、Level_1のパ
ケットの全てがやり取りできるようになる。
【0143】例えば図25に示すようにクライアントか
らHL_stasusパケットを受信したら、HL_s
tatus_ackパケットにサーバー装置の現在の状
態を乗せて送り返します。また、HL_pingパケッ
トを受信したら、全く同じデータを乗せて、HL_pi
ng_ackパケットを返す。
【0144】この状態でHL_releaseパケット
を受信すれば、サーバー装置は結局なんのサービスもせ
ずにTCP/IPの接続を切ることになる。これは、サ
ーバー装置に何もさせずにサーバー装置の状態だけを調
べる時に利用できます。
【0145】通常は、ネットワーク印刷かネットワーク
スキャンを行うので、クライアントからHL_open
パケットが送られてきます。印刷かスキャンかの切り分
けはHL_openパケットのmodifierバイト
にm_printかm_scanが書かれているのをチ
ェックして行う。印刷の場合には、図の左の矢印を上っ
て〈SM状態〉に移行する。 〈SM状態〉このSM状態から上で、Level_2の
パケットが全て使用できます(ただし、Level_1
のパケットも来る場合がある。その場合は、Level
_1のパケットが優先する)。
【0146】また、HL_openパケットによって、
送信されるファイル名とウインドサイズが知らされる。
これはクライアントからの要求であって、サーバー装置
はそれを使う義務はない。サーバー装置側で(もしファ
イルにセーブする場合には)実際にセーブに使われるフ
ァイル名は、HL_open_ackの中に記載されて
クライアントに知らされる。
【0147】ウインドサイズは、サーバー装置がHL_
openで要求されたサイズをサポートしていれば、必
ずHL_open_ackの中でそのサイズでデータを
やり取りする旨を示す必要がある。
【0148】もし、サポートしていない時は、要求され
たサイズよりも小さいウインドサイズを使うことを宣言
する必要がある。この状態でもしクライアントからHL
_closeパケットを受信すれば、サーバー装置は受
信バッファファイルをクローズして、HL_close
_ackを返し、直ちに〈CM〉に戻る。これは、オペ
レータが印刷を開始前にキャンセルした場合に起こる。
【0149】もしキャンセルされずに、印刷開始の「O
K」ボタンがクリックされた場合には、クライアントは
サーバー装置を初期化しようとしてHL_initパケ
ットを発行する。ここでは、プリンタの選択,ページ記
述言語の選択,用紙サイズの選択,用紙の送り方向の選
択,解像度の選、,色空間の選択等が行われる。
【0150】なお、HL_initはオプションであ
り、サーバー装置のデフォルト値で構わない場合には省
略可能である。また、ページ記述言語の中で十分な情報
が送れる場合にも省略可能である。HL_initで受
け取った数値はクライアントからの要求であり、サーバ
ー装置がこの要求に応えられない場合には、適当なデフ
ォルト値がセットされてHL_init_ackが返さ
れる。HL_initでは、状態の変化はない。クライ
アントの要求に1つでも応えられない項目があった時
は、サーバー装置はHL_init_ackのmodi
fierバイトをm_failにして返す。クライアン
トは、m_failの乗ったHL_init_ackの
設定値に満足できれば、HL_initによるネゴシエ
ーションを終了して、データ転送を開始しても良い。
【0151】もし、満足できない時は、値を変えて再度
HL_initを発行するか、HL_capabili
tyパケットによって具体的にサーバー装置がサポート
する機能を調べることができます。HL_capabi
lityでも状態の変化はない。
【0152】なお、本実施例において、HL_init
とHL_capabilityは、何回でも受け付ける
が、最後に受信したHL_initが有効となる。
【0153】また、HL_initによるネゴシエーシ
ョンに満足できれば、クライアントはHL_start
パケットを発行してデータ転送を開始しようとする。サ
ーバー装置はHL_start_ackを返して〈TM
状態〉に移行する。 〈TM状態〉HL_startとHL_endは、互い
に対になって用いられるパケットで、印刷の開始と終了
を意味します。印刷すべきデータ(ジョブ)がクライア
ントのキューに沢山たまっている時は、わざわざTCP
/IPの接続を切る必要はなく、HL_endの後ただ
ちに次のHL_startを続けても良い。
【0154】これができるのは、データが単なるASC
IIキャラクタで構成されている場合で、かつ、HL_i
nitの再度ネゴが不用な場合に限られ、通常は〈C
M〉まで下りてからHL_openをやり直す。
【0155】印刷時とスキャン時とでは、データの流れ
る方向が逆になる。データの送信側がHL_dataパ
ケットを発行し、受信側がHL_data_ackパケ
ットを返す。
【0156】上記実施例によれば、通信プロトコルを改
良し、1個のプリンタドライバからサーバー装置に接続
された任意のプリンタ/スキャナにアクセスできるよう
にした。すなわち、選択されたサーバー装置と実際に通
信を試みて、そこに接続されているプリンタの種類と状
態をクライアント側から把握することにより、容易に所
定のプリンタを選択可能となった。
【0157】データをパケット化し、全てのパケットに
制御用のヘッダ情報を付加し、パケットを受け取った側
で再びデータと制御情報に分離できるようにした。これ
によって制御情報が別々に正確に送れるようになった。
【0158】データの伝送に先立って、クライアントか
らサーバー装置に対し、どのようなデバイス(スキャナ
/プリンタ)が利用可能か問い合わせるシーケンスを用
意した。これによってクライアント側からデバイスの選
択ができるようになった。
【0159】また、それぞれのデバイスの特性や能力を
問い合わせるシーケンスも用意した。これによってプリ
ンタの能力(紙サイズ等)に合わせて、アプリケーショ
ン側でデータを整えて送ることができるようになった。
【0160】また、印刷やスキャンの途中で処理を中断
させたり、進捗状況を問い合わせたりできるようにし
た。これによって、時間のかかる複雑な原稿の印刷等を
行って処理を待っている場合、さらに待つべきなのか中
断すべきなのかの判断が正しくできるようになった。
【0161】次に、上記プリンタドライバのAPI(ア
プリケーションプログラムインタフェース)を改良し
て、アプリケーションからサーバー装置/プリンタの選
択情報をもらえた時には、その情報を元に通信を試み、
該情報がもらえない場合にはプリンタドライバ自身がダ
イアログ等を表示してユーザにデバイスの選択を可能な
らしめた。
【0162】
【発明の効果】以上説明したように、本発明に係る第1
の発明によれば、アプリケーションから入出力要求に応
じて前記クライアントマシンが前記サーバー装置に発行
する所定のパケットに対する応答パケットの発行状態を
所定時間監視し、所定時間内に前記応答パケットが前記
サーバー装置より発行されない場合に、アプリケーショ
ンに対して前記サーバー装置の異常状態を応答するの
で、アプリケーション側にサーバー装置とクライアント
マシン間における通信異常有無を通知して、アプリケー
ションのデッドロック状態が発生しないようにすること
ができる。
【0163】第2の発明によれば、クライアントマシン
は、サーバー装置からの応答パケット発行状態をタイマ
により所定時間監視するので、サーバー装置とクライア
ントマシン間における通信異常有無を判別することがで
きる。
【0164】第3の発明によれば、クライアントマシン
は、アプリケーションに対して前記サーバー装置の異常
状態を応答後、サーバー装置に対して異常状態を回復さ
せるための所定のパケットを発行するので、クライアン
トマシンがサーバー装置に対してい正常通信状態への移
行を催促することができる。
【0165】第4の発明によれば、クライアントマシン
は、アプリケーションに対して前記サーバー装置の異常
状態を応答後、サーバー装置に対して異常状態を回復さ
せるため異常発生前に発行した同一のパケットを所定数
回発行するので、異常発生前のパケット通信を正常に再
開することができる。
【0166】第5の発明によれば、アプリケーション
は、クライアントマシンからの異常状態応答に応じてク
ライアントマシンに対してサーバー装置の異常回復を要
求するので、アプリケーション側からクライアントマシ
ンに対してサーバー装置との正常な通信状態に復帰する
ために必要な所定の回復処理の起動を催促することがで
きる。
【0167】第6の発明によれば、クライアントマシン
は、サーバー装置から正常な応答パケットが発行された
場合に、アプリケーションに対して正常応答を通知する
ので、サーバー装置との通信異常で中断していた入出力
処理を正常に再開することができる。
【0168】従って、アプリケーションのデッドロック
状態を確実に防止できるとともに、アプリケーションか
らの入出力要求を正常に行える通信環境に復帰できる等
の効果を奏する。
【図面の簡単な説明】
【図1】本発明の一実施例を示すスキャナプリンタサー
バーシステムの構成を説明するブロック図である。
【図2】本発明に係るスキャナプリンタサーバーシステ
ムにおけるプリンタ処理手順の一例を示すコマンドのシ
ーケンスダイヤグラムである。
【図3】本発明に係るスキャナプリンタサーバーシステ
ムにおけるスキャン処理手順の一例を示すコマンドのシ
ーケンスダイヤグラムである。
【図4】本発明に係るスキャナプリンタサーバー装置の
第1のデータ通信制御方法の一実施例を示すフローチャ
ートである。
【図5】本発明に係るスキャナプリンタサーバー装置の
第2のデータ通信制御方法の一実施例を示すフローチャ
ートである。
【図6】本発明に係るスキャナプリンタサーバー装置の
第3のデータ通信制御方法の一実施例を示すフローチャ
ートである。
【図7】本発明に係るスキャナプリンタサーバー装置に
おけるクライアントとサーバーとの間の通信プロトコル
の詳細を説明する概念図である。
【図8】本発明に係るスキャナプリンタサーバー装置に
おけるSPサーバー装置/クライアントプロトコルの一
般的パケットの形状を説明する図である。
【図9】本発明に係るスキャナプリンタサーバー装置に
おけるパケット定義例を示す図である。
【図10】本発明に係るスキャナプリンタサーバー装置
におけるパケット定義例を示す図である。
【図11】本発明に係るスキャナプリンタサーバー装置
におけるパケット定義例を示す図である。
【図12】図11に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図13】図11に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図14】本発明に係るスキャナプリンタサーバー装置
におけるパケット定義例を示す図である。
【図15】図14に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図16】図14に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図17】図14に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図18】図14に示したパケット定義例におけるサブ
コマンドの内容を説明する図である。
【図19】本発明に係るスキャナプリンタサーバー装置
における基本シーケンス一例を示すプロトコルを説明す
る図である。
【図20】本発明に係るスキャナプリンタサーバー装置
における初期化処理の一例を示すプロトコルを説明する
図である。
【図21】本発明に係るスキャナプリンタサーバー装置
における初期化処理の一例を示すプロトコルを説明する
図である。
【図22】本発明に係るスキャナプリンタサーバー装置
におけるネゴシエーション処理におけるデバイス選択処
理に対応するプロトコルを説明する図である。
【図23】本発明に係るスキャナプリンタサーバー装置
における印刷の正常通信シーケンスを示すプロトコルを
説明する図である。
【図24】本発明に係るスキャナプリンタサーバー装置
における印刷機能のネゴシエーション処理を示すプロト
コルを説明する図である。
【図25】本発明に係るスキャナプリンタサーバー装置
におけるサーバー−クライアント間のシーケンスの一例
を示すプロトコルを説明する図である。
【符号の説明】
1 クライアントコンピュータ 2 クライアントコンピュータ 3 クライアントコンピュータ 4 クライアントコンピュータ 5 ローカルエリアネットワーク(LAN) 6 カラーSPサーバー装置 7 プリンタA 8 プリンタB 9 スキャナC
───────────────────────────────────────────────────── フロントページの続き (72)発明者 戸田 ゆかり 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 齋藤 和浩 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 宍塚 順一 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 山田 修 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 福田 康男 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 杉山 光正 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 高岡 真琴 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 三田 良信 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 杉浦 進 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上に複数のクライアントマ
    シンとスキャナ/プリンタサーバー装置とがパケット通
    信可能に構成され、前記スキャナ/プリンタサーバー装
    置に接続された複数の入出力デバイスを各クライアント
    マシンのアプリケーションが入出力要求を発行して画像
    入出力処理を行うスキャナプリンタサーバーシステムの
    データ通信制御方法において、アプリケーションから入
    出力要求に応じて前記クライアントマシンが前記サーバ
    ー装置に発行する所定のパケットに対する応答パケット
    の発行状態を所定時間監視する監視工程と、この監視工
    程により前記所定時間内に前記応答パケットが前記サー
    バー装置より発行されない場合に、前記アプリケーショ
    ンに対して前記サーバー装置の異常状態を応答する応答
    工程とを有することを特徴とするスキャナプリンタサー
    バーシステムのデータ通信制御方法。
  2. 【請求項2】 クライアントマシンは、サーバー装置か
    らの応答パケット発行状態をタイマにより所定時間監視
    することを特徴とする請求項1記載のスキャナプリンタ
    サーバーシステムのデータ通信制御方法。
  3. 【請求項3】 クライアントマシンは、応答工程後、サ
    ーバー装置に対して異常状態を回復させるための所定の
    パケットを発行する回復工程を有することを特徴とする
    請求項1記載のスキャナプリンタサーバーシステムのデ
    ータ通信制御方法。
  4. 【請求項4】 クライアントマシンは、応答工程後、サ
    ーバー装置に対して異常状態を回復させるため異常発生
    前に発行した同一のパケットを所定数回発行する再送工
    程を有することを特徴とする請求項1記載のスキャナプ
    リンタサーバーシステムのデータ通信制御方法。
  5. 【請求項5】 アプリケーションは、クライアントマシ
    ンからの異常状態応答に応じてクライアントマシンに対
    してサーバー装置の異常回復を要求する回復要求工程を
    有することを特徴とする請求項1記載のスキャナプリン
    タサーバーシステムのデータ通信制御方法。
  6. 【請求項6】 クライアントマシンは、サーバー装置か
    ら正常な応答パケットが発行された場合に、アプリケー
    ションに対して正常応答を通知する通知工程とを有する
    ことを特徴とする請求項1記載のスキャナプリンタサー
    バーシステムのデータ通信制御方法。
JP6150059A 1994-06-30 1994-06-30 スキャナプリンタサーバーシステムのデータ通信制御方法 Pending JPH0816493A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6150059A JPH0816493A (ja) 1994-06-30 1994-06-30 スキャナプリンタサーバーシステムのデータ通信制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6150059A JPH0816493A (ja) 1994-06-30 1994-06-30 スキャナプリンタサーバーシステムのデータ通信制御方法

Publications (1)

Publication Number Publication Date
JPH0816493A true JPH0816493A (ja) 1996-01-19

Family

ID=15488618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6150059A Pending JPH0816493A (ja) 1994-06-30 1994-06-30 スキャナプリンタサーバーシステムのデータ通信制御方法

Country Status (1)

Country Link
JP (1) JPH0816493A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100308676B1 (ko) * 1997-11-19 2001-10-20 포만 제프리 엘 신클라이언트상에로컬프린팅을제공하는방법
JP2004145890A (ja) * 1996-03-29 2004-05-20 Ricoh Co Ltd 複数の通信フォーマットを用いた装置の、診断方法および遠隔診断システム、並びに制御方法および遠隔制御システム
JP2007534073A (ja) * 2004-04-21 2007-11-22 レベル、ファイブ、ネットワークス、インコーポレーテッド ユーザーレベルスタック

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145890A (ja) * 1996-03-29 2004-05-20 Ricoh Co Ltd 複数の通信フォーマットを用いた装置の、診断方法および遠隔診断システム、並びに制御方法および遠隔制御システム
KR100308676B1 (ko) * 1997-11-19 2001-10-20 포만 제프리 엘 신클라이언트상에로컬프린팅을제공하는방법
JP2007534073A (ja) * 2004-04-21 2007-11-22 レベル、ファイブ、ネットワークス、インコーポレーテッド ユーザーレベルスタック
JP4825794B2 (ja) * 2004-04-21 2011-11-30 ソーラーフレア コミュニケーションズ インコーポレーテッド ユーザーレベルスタック

Similar Documents

Publication Publication Date Title
EP0991257B1 (en) Network scanner contention handling method
US6304905B1 (en) Detecting an active network node using an invalid protocol option
EP1087590B1 (en) Network peripheral server
JPH10233860A (ja) データ通信装置及びその方法
US8629995B2 (en) Peripheral apparatus control
JP2001043163A (ja) ネットワーク上で遠隔アプリケーションの実行を制御する方法、装置、媒体およびネットワークスキャナ
JP2001043038A (ja) プリンタシステム
JPH0816493A (ja) スキャナプリンタサーバーシステムのデータ通信制御方法
JP4299994B2 (ja) 複合デバイスシステム
JP2003140867A (ja) ネットワークプリントシステム及び情報処理装置
JP3201326B2 (ja) ネットワーク印刷装置システム
US20010023444A1 (en) Information processing apparatus, information processing method and information processing program for transmitting data to external apparatus for communication of information on device
US11467787B2 (en) Communication system, first server, second server, non-transitory computer-readable recording medium storing computer-readable instructions for first server and non-transitory computer-readable recording medium storing computer-readable instructions for second server
US11625211B2 (en) Printer capable of receiving print job from server and non-transitory computer-readable recording medium storing computer-readable instructions for printer
US11762610B2 (en) Communication apparatus that performs a process in response to a job notification received from a server and non-transitory computer-readable medium for communication apparatus
JP3310465B2 (ja) ネットワークインタフェース装置
JP2000181656A (ja) 印刷データ管理装置及び印刷データ管理方法
JP2000322227A (ja) プリント指示装置およびプリンタ状態監視モジュール
KR20050065032A (ko) 데이터 전송장치 및 전송방법
JPH0823409A (ja) ファクシミリ通信システム
JP4164243B2 (ja) 印刷監視システム、印刷監視方法、及びコンピュータプログラム
JP4404013B2 (ja) 分散印刷を実行する印刷制御装置および印刷装置
CN116166206A (zh) 打印设备及其控制方法和存储介质
JP2001156957A (ja) 通信装置
JP2024001770A (ja) 画像形成装置と画像形成装置のためのコンピュータプログラム