JP3592323B2 - ネットワーク基板、及び回路基板 - Google Patents

ネットワーク基板、及び回路基板 Download PDF

Info

Publication number
JP3592323B2
JP3592323B2 JP2003089131A JP2003089131A JP3592323B2 JP 3592323 B2 JP3592323 B2 JP 3592323B2 JP 2003089131 A JP2003089131 A JP 2003089131A JP 2003089131 A JP2003089131 A JP 2003089131A JP 3592323 B2 JP3592323 B2 JP 3592323B2
Authority
JP
Japan
Prior art keywords
printer
network
neb
lan
information
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.)
Expired - Fee Related
Application number
JP2003089131A
Other languages
English (en)
Other versions
JP2004030585A (ja
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.)
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25526030&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP3592323(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2004030585A publication Critical patent/JP2004030585A/ja
Application granted granted Critical
Publication of JP3592323B2 publication Critical patent/JP3592323B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1207Improving or facilitating administration, e.g. print management resulting in the user being informed about print result after a job submission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1259Print job monitoring, e.g. job status
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【産業上の利用分野】
本発明はネットワーク基板、及び回路基板に関し、特に、ローカルエリアネットワークの周辺装置(例えば、プリンタ)に結合され、且つパーソナルコンピュータを周辺装置管理専用にすることなく前記周辺装置をインテリジェントな対話型ネットワークのメンバに構成できる、更に詳細には、応答性のある周辺装置とローカルエリアネットワークとの間に結合されたネットワーク基板、及び回路基板に関する。
【0002】
【従来の技術】
構内情報通信網(“LAN”)は、複数のパーソナルコンピューターを、プリンタ、コピー機等のような周辺装置に結合して、通信機能拡張と資源共有を図るものとして知られている。従来、LANに結合されるプリンタのような周辺装置は、どちらかといえばインテリジェント性がなく、LANからの情報を受け入れて、そのような情報をハードコピーにプリントするだけであった。また、かかるプリンタは、通常、プリンタへのデータの流れを効率的に管理するための、即ち、そのプリンタの「サーバー」として働くホストパーソナルコンピュータ(“PC”)を要した。これにより、ホストPCは、ほとんど常時、プリンタのサーバータスク専用である必要があった。
【0003】
近年、限られたサーバー機能を実行するために、周辺装置に結合できる回路基板に、ハードウェアとソフトウェアを組み込むことによって、表面上、かかる専用PCの必要を廃した製品が数多く出回ってきた。例えば、ASPコンピュータプロダクト社では、ノベルネットワーク用の独立型プリントサーバーとして働く「ジェットLAN/P(JetLAN/P)」という装置を出している。ジェットLAN/P(商標)装置は、10Base−2の細芯同軸ケーブルまたは10Base−Tのより対線ケーブルを使ってLANに接続する。しかし、ジェットLAN/P(商標)は、プリンタのパラレルポートからしかプリンタに結合できない。従って、プリント情報をプリンタに送ることができても、プリンタから戻ってくるプリンタ状態情報量が厳しく制限される。例えば、このような装置がプリンタから受信できるのは、「オフライン」および「用紙切れ」程度の情報である。このような装置では、プリンタを、ネットワークの真にインテリジェント性をもって応答するメンバにすることは不可能に近い。
【0004】
プリンタをLANに結合するための他の周知の装置は、ヒューレットパッカード社のジェットディレクト(JetDirect(商標))C2071A/BとC2059A、エクステンデッドシステムズ社のイーサフレックス(EtherFlex(商標))、インテル社のネットポート(NetPort(商標))とネットポートII(NetPortII(商標))、キャステレ社のLANプレス(LANPress(商標))とジェットプレス(JetPress(商標))、ミラン社のファストポート(FastPort(商標))などがある。
【0005】
【発明が解決しようとする課題】
しかしながら上記の装置はいずれも、プリンタがLANへ十分の量のデータを送信出来ないため、プリンタがネットワークの効果的でインテリジェントなメンバになり得ない、という弱点がある点でASP社のジェットLANと同じである。
【0006】
【発明の概要】
本発明は、周辺装置に結合され、且つ前記周辺装置を応答性のあるインテリジェントなネットワークメンバーに構成できるネットワーク基板、及び回路基板を提供することにより、上述の欠点を克服するものである。
【0007】
本発明の一態様によれば、周辺装置を構内情報通信網に接続するための装置に、周辺装置に結合される回路基板を含んでいる。LANインタフェースは、前記回路基板に結合され、且つLANから周辺装置のジョブ情報を受信し、LANから周辺装置状態要求を受信し、周辺装置状態情報をLANに送信する。周辺装置インタフェースは、前記回路基板に結合され、且つ、周辺装置ジョブデータを周辺装置に送信し、周辺装置状態問合わせを周辺装置に送信し、周辺装置から周辺装置状態データを受信する。PROMは、前記回路基板に結合され、且つ、LANを介して受信する周辺装置ジョブ情報を、周辺装置ジョブデータとして周辺装置に送信させるアプリケーションモジュールを記憶する。PROMは、LANを介して受信する周辺装置状態要求を、周辺装置状態問合わせとして周辺装置に送信させ、且つ周辺装置機器から受信する周辺装置状態データを周辺装置状態情報としてLANに送信させる制御モジュールも記憶する。RAMは、前記基板に結合され、且つ実行時にアプリケーションモジュールと制御モジュールを一時記憶する。そして、アプリケーションモジュールと制御モジュール実行するために、プロセッサが前記基板に結合される。
【0008】
本発明の別の態様によれば、周辺装置をLANに接続する方法は、対話型ネットワーク基板を周辺装置とLANに結合する工程と、前記基板にてLANから周辺装置ジョブ情報と周辺装置状態要求を受信する工程と、から構成される。次に、周辺装置ジョブデータは基板から周辺装置に送信され、周辺装置からの周辺装置状態データは基板にて受信される。基板は、LANに周辺装置状態情報も送信する。基板上のPROMは、ジョブアプリケーションモジュールと状態モジュールを記憶する。ボード上のプロセッサは、ジョブアプリケーションモジュールを実行して周辺装置ジョブデータを周辺装置に提供し、且つ状態モジュールを実行して周辺装置状態情報をLANに提供する。
【0009】
【課題を解決するための手段】及び【作用】
上記目的を達成するために本発明のネットワーク基板は、以下の様な構成からなる。即ち、プリンタをネットワークに接続するために、前記プリンタの拡張スロット或いはオプションスロットにインストールされるネットワーク基板であって、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、実行中に一時的に前記アプリケーションモジュールと前記コントロールモジュールを記憶する一時記憶手段と、前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とするネットワーク基板を備える。
【0010】
また他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とする回路基板を備える。
【0011】
さらに他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記回路基板に前記ネットワークを介し第1のプロトコルに従って送受信する情報を処理させる第一プログラムと、前記回路基板に前記ネットワークを介し第2のプロトコルに従って送受信する情報を処理させる第二プログラムとを記憶するプログラム記憶手段と、前記第一プログラム又は前記第二プログラムを実行するプロセッサとを有することを特徴とする回路基板を備える。
【0012】
またさらに他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記ネットワークを介し第1のプロトコルに従ってジョブを受信し処理する第一サーバプログラムと、前記ネットワークを介し第2のプロトコルに従ってジョブを受信し処理する第二サーバプログラムとを記憶するプログラム記憶手段と、前記第一サーバプログラムまたは前記第二サーバプログラムを実行するプロセッサとを有することを特徴とする回路基板を備える。
【0016】
【実施例】
以下添付図面を参照して本発明の好適な実施例を詳細に説明する。
【0017】
本発明を適用した実施例では、ネットワークから受信されたデータを受信し処理することができるだけでなく、詳細な状態情報、オペレーションパラメータや、更には、スキャナ入力、ファクシミリ受信などのような他の形態によって周辺機器へ入力されるデータのような相当量のデータまでも、ネットワークに伝送する能力を持つ対話型ネットワーク構成要素,例えばプリンタ,のようなネットワーク周辺機器を構成するためのハードウェア及びソフトウェア的解決法を提供するものである。そして、周辺機器にこのようなハードウェア及びソフトウェアを組み込むことによって、周辺機器へのサーバの役を果たす専用パーソナル・コンピュータをなくすことが可能になる。
【0018】
1. アーキテクチャ
図1は、以下に解説するオープンアーキテクチャを持つ、プリンタ4に接続されたネットワーク拡張ボード(“NEB”)2に組み込まれた本実施例を示すブロック・ダイヤグラムである。NEB2は、LANインタフェース8(たとえば、同軸コネクタ、RJ45コネクタあるいはDB15コネクタ(AUI)とそれぞれ接続されている、10base−2、10base−T、あるいは10base−5のようなイーサネットインタフェース)を介して、LANバス6に接続している。LAN6にはまた、PC10、PC12、PC14(この場合、管理者がこのPC14に記録をとるならば、PC14がネットワーク管理装置として機能する。;詳細は後述)のようなネットワーク構成要素、及び、プリンタ16(内蔵型QSERVER機能を持つ;詳細は後述)とが接続されていてもよい。他のLAN構成要素として、付属プリンタ20を持つPC18(プリント・サーバの役をする;詳細は後述)、付属プリンタ24を持つPC22(RPRINTERの役をする;詳細は後述)、及びNetPort装置28(上記発明の背景において、解説)を介してLAN6に接続されるプリンタ26が含まれてもよい。ファイル・サーバ30は、LAN6に接続され、ファイルをLAN上で伝送し処理するための“ライブラリ”として機能する。ファイル・サーバ30には、付属プリンタ32及び34がついていてもよい。
【0019】
より詳細に述べると、種々のネットワーク構成要素間での交信を行なうために、図1に描写されたネットワークで、ノーベル社あるいはUnixソフトウェアのような任意のネットワークソフトウェアを利用してもよい。本発明の適用はどんなネットワークソフトウェアに対しても可能であるが、本実施例ではノーベル社のNetWareソフトウェア(下記、セクション3aでより詳細に解説)を利用するLANに関して説明する。このソフトウェア・パッケージについての詳細な説明については、“NetWare(商標)ユーザーガイド”及び“NetWare(商標)スーパーバイザ・ガイド”(M&Tブック社、1990年版権取得)にあるのでそれを参照されたい。又、“NetWareプリントサーバ”(ノーベル社刊、1991年3月版、ノーベル部品番号100−000892−001)も参照されたい。簡潔に述べれば、ファイル・サーバ30はファイルマネジャとして機能し、LAN構成要素間のデータのファイルを受信し、格納し、待ち行列に登録し、キャッシングし、伝送する。たとえば、PC10及び12でそれぞれ作成されたデータ・ファイルは、ファイル・サーバ30へまず運ばれて、ファイル・サーバ30はそれらのデータ・ファイルを順序付けした後、PC18のプリント・サーバからのコマンドでプリンタ24へこの順序付けされたデータ・ファイルを転送することができる。ファイル・サーバ30には、10ギガバイトのハードディスク(HD)サブシステムのような大容量記憶装置(LCS)構成要素を含めることもできるし、あるいはそのような大容量記憶装置(LCS)構成要素に接続されたものであってもよい。もし所望であれば、更に、プリンタ32及び34をファイル・サーバ30に接続して、追加的印刷ステーションを備えることもできる。
【0020】
パーソナル・コンピュータ装置が図1に例示されているが、実行されているネットワークソフトウェアにとって適切なものとして、他のコンピュータ装置も含むことができる。たとえば、Unixソフトウェアが使用される場合、Unixワークステーションをネットワークに含んでいてもよい。また、これらのワークステーションを、適切な環境の下で、例示された複数PCとともに使用してもよい。
【0021】
PC10及び12としては、各々、データ・ファイルを生成し、LAN上へそれらを伝送し、LANからファイルを受信し、ワークステーションでこのようなファイルを表示及び/若しくは処理することができる、標準的ワークステーションPCを含むことができる。しかしながら、PC10及び12は、LAN周辺機器に対する制御を行なうことはできない(ネットワーク管理者がそのPCに記録されていない限り)。
【0022】
LAN周辺機器に対して限定的制御を行なうことができるPCとは、内蔵型RPRINTERプログラムが含まれるPC22である。RPRINTERプログラムとは、MS−DOSTerminate&StayResident(以下TSRという)プログラムのことで、ワークステーション上で実行され、このプログラムで、ユーザはワークステーションに接続されたプリンタ24を共用することが可能になる。RPRINTERは、作業を求めるプリンタ待ち行列を探索する能力を持っていない、どちらかといえばインテリジェント性のないプログラムである。RPRINTERは、ネットワークの別の場所で実行しているPSERVER(詳細は後述)からその作業を得る。プリンタのパラレルポートを通じて付属プリンタと通信しているために、RPRINTERは、限定された状態しか得られず、また、その状態情報を応答可能なPSERVERにLAN6を通じて返すことしかできない。制御という見地から見ると、RPRINTERは印刷ジョブの停止くらいのことしかできない。パーソナル・コンピュータで実行するRPRINTERのTSRプログラムと同じ限定された機能しか与えられていない内部若しくは外部回路基板を装着することによって得られるRPRINTER機能が含まれているものも、プリンタの中にはある。
【0023】
LAN周辺機器に対して限定された制御しか実行できない、もう一つのネットワークエンティティは、内蔵型QSERVERプログラムを持っている付属回路基板36を備えたプリンタ16である。現在、QSERVERプログラムはHPのLaserJetIII(商標)SIプリンタ内で実行され、適格の印刷ファイルを求めてファイル・サーバ30の印刷待ち行列を探索する能力を持っている。QSERVERの探索待ち行列を動的に変更することはできないし、また、QSERVERは、いかなる形の状態照会にも応答しない。QSERVERの利点は作業を求めて自律的に探索するその能力である。QSERVERは、システムを動かすために、別の場所で実行中のPSERVERを必要としない。QSERVERには対応するPSERVERがなく、また、いかなる状態及び制御能力もそれ自身が持っていないために、RPRINTER自身よりも少ない制御しか行なわれない。また、QSERVERは、非常に限定された通知機能しか持っておらず、かつ、各印刷ジョブの初めにバナーを印刷することができないという点で、PSERVERとは異なる。
【0024】
QSERVER能力を持っているもう一つのネットワーク構成要素としては、外部NetPort装置28を介してLAN6に接続されるプリンタ26がある。
【0025】
スキャナ、複写機、ファクシミリなどのような種々の周辺機器を使用するために他の周辺機器サーバプログラムを実行したり、Unix互換ライン・プリンタ・リモートサーバ(“LPR”)のようなネットワークソフトウェアプロトコルに基いてサーバを提供することもできる。
【0026】
LAN周辺機器に対して重要な制御を実行することができるLAN構成要素として、内蔵されたPSERVERプログラムを持っているPC18がある。PSERVERは、複数のユーザ定義の印刷待ち行列を発信したり、動的に探索待ち行列変更を実行したり、例外的(故障)条件及び状態や制御能力のための定義された通知手順を提供する能力を持っている。PSERVERはいくつかの形で提供される。PSERVER.EXEは、ワークステーション上で専用プログラムとして実行し、ローカル及びリモート両方のプリンタを制御するプログラムである。ローカルプリンタはシリアルあるいはパラレルポートのいずれかに接続することができ、また、リモート・プリンタはシステムの別の場所で実行するプリンタである。PSERVERプログラムの他の2つの形としては、PSERVER.VAP及びPSERVER.NLMがある。これらはファイル・サーバ30それ自身の上で実行するPSERVERバージョンである。.VAPバージョンはNetWare286(商標)用であり、.NLMバージョンはNetWare386(商標)用である。PSERVERの方が、RPRINTER及びQSERVERよりもはるかに多くの能力を備えてはいるものの、その欠点の1つとしては、EXEバージョンは専用パーソナル・コンピュータを必要とするということがある。
【0027】
PSERVER.EXEを実行する専用パーソナル・コンピュータは16ものローカル/リモートプリンタを制御することができ、多くのファイル・サーバ待ち行列から印刷情報を要求することができる。しかしながら、ネットワーク印刷サービスの制御をPSERVERに依存するにはいくつかの欠点がある。その第1の欠点は、単一ネットワーク・ノード及びパーソナル・コンピュータプロセッサを介して複数のプリンタストリームをすべて1ヶ所に集めなければならないことである。これが作業を妨げる原因となりうる。第2の欠点は、最も効率的なオペレーションのためには、プリンタ20のように、プリンタをコンピュータにローカルに接続しなければならないということである。これはユーザにとって不便な場合がある。なぜなら、PC18の周囲にプリンタを集合させる必要があるからである。第3の欠点としては、RPRINTERによって使用されるプリンタ24の場合のように、制御されたプリンタがリモートの場合、印刷データが、ファイル・サーバ30からPSERVERのPC18まで転送され、次いで、RPRINTERを実行するプリンタへ再伝送されなければならないということである。これは非能率的である。
【0028】
第4の欠点は、PSERVERを介して提供されるプリンタ状態及び制御情報の量が限られていることである。RPRINTERでは、「用紙切れ」や「オフライン」のような不完全状態よりもっと重大な不完全状態はあまり容認されないということは既に述べた。ローカルにまたリモートに接続されたプリンタのためのPSERVER自身も、これ以上の状態をあまり提供しない。なぜなら、PSERVERはパーソナル・コンピュータのパラレルポートの限界を考慮して設計されているためである。PSERVERプログラムはまた、それ自身の状態及び制御をも考慮に入れる。
【0029】
プリンタ4にインストールされたネットワーク拡張ボード(NEB)2によって、上記解説されたネットワーク周辺機器制御エンティティ上で、多くの利点がもたらされ、柔軟性更に強化される。特に、NEB内蔵型制御装置によって、RPRINTER、PSERVER、及びLPR(ライン・プリンタリモート)機能(以下、セクション3dで解説するCRPRINTER、CPSERVER及びCLPRプログラムを介して)が提供される。CPINIT(以下、セクション4hで解説)という名の初期化プログラムがあり、このプログラムによって、ネットワーク管理者のPC14によるNEB機能の構成に対する完全な制御が可能になる。NEBに内蔵された性質及びプリンタ4のオープンアーキテクチャのために、NEBは、幅広い様々な状態及び制御機能をネットワークに提供する能力を持つことになる。すなわち、冗長な量の状態情報をプリンタ4からLAN6に提供し、多くの制御情報をLAN6からプリンタ4へ提供することができる(たとえばPC14からプリンタフロント・パネル機能を実行して)。
【0030】
NEBで使用可能な広範な情報量をアクセスするために、CPCONSOLと呼ばれるプログラムがネットワーク管理者のPC14に常駐し、このプログラムによって、NEB2がプリンタ4からエクスポートするすべてのプリンタ情報を、システム管理者がみることが可能になる。NEB2のRPRINTER機能構成(CRPRINTER)が選択された場合であっても、このプリンタ情報は使用可能である。NEB2のPSERVER機能構成(CPSERVER)によって、ボードを含むプリンタ4が制御される。このオプションには、通知及び状態機能に加えて、すべての標準的PSERVER待ち行列探索能力が備わっている。これらすべての機能は遠隔地のワークステーションから動的に制御することができる。NEB環境、及び、広範な状態及び制御情報をプリンタ4からエクスポートするその能力によって、NEB2とプリンタ4の組合せは、現在使用可能な標準的RPRINTER、QSERVERあるいはPSERVER印刷手法よりもはるかに強力なものになっている。
【0031】
ネットワーク管理者のPC14で提供されるCPCONSOLプログラム(以下、セクション4iでより詳細に解説)は、NEB2(及び他のネットワーク構成要素)と接続され、選択されたネットワーク装置に対して現在の情報(インタフェース情報、制御情報、フォント情報、レイアウト情報、品質及び共通環境情報、二重情報及び雑情報)を表示するような機能を実行することができる。CPCONSOLは、また、ネットワーク装置の安全(デフォルト)条件を設定したり、変更することができる。CPCONSOLは、また、CPSERVERあるいはCRPRINTER(詳細は後述するが、一般に、上記に解説したPSERVER及びRPRINTERソフトウェア・パッケージに類似している)のようなNEB2のアプリケーションを起動させたり、停止させたりすることもできる。更に、CPCONSOLによってPC14は、ログ・ファイルを表示したり、ログ・ファイルを消去したり、ローカルあるいはファイル・システムディスクのような記憶装置にログ・ファイルを書込むことができる。CPCONSOLは、また、ジョブ数、1つのジョブ当たりページ数、1分当たりページ数、1つのジョブ当たり時間、1日当たりページの合計数、1日当たりジョブの合計数、及び日数のようなPC14に関するプリンタ関連情報を表示することができる。CPCONSOLプログラムは、また、媒体関連情報及び非媒体関連情報のようなネットワーク関連情報をPC14上に表示することができ、また、このようなネットワーク統計値を消去することができる。
【0032】
ネットワーク管理者のPC14に常駐するCPINITプログラム(以下、セクション4hでより詳細に解説)によって、CPSERVERとCRPRINTERのようなアプリケーション情報印刷サービスをセットアップすることができ、またそれらのアプリケーションを構成することができる。CPINITは、また、時間/日付/時間帯、バッファ・サイズ、ディスクサイズ、ロギングフラッグ、ログ制限、及び安全(デフォルト)環境フラッグのような装置情報を設定及び/若しくは表示することができる。CPINITは、また、デフォルトサービスヘッディングを復元し、NEB2をリセットし、NEB2をリブ−トし、フォントダウンロードを命じ、エミュレーションダウンロードを命じ、NEB電源投入自己検査(“POST”)エラーを表示し、NEB2ファームウェアレベルを表示し、現在のログ・ファイルサイズを表示するなどのことができる。
【0033】
NEB2にPSERVER及びRPRINTER能力を設けることで、本実施例によって、LAN6に関してプリンタ4の強化された機能が単一回路基板で達成される。したがって、プリンタ4は本当の意味で“ネットワークされた”プリンタであって、ネットワークに接続された単なるプリンタではない。
【0034】
本実施例はLAN6上で独自の利点を提供するものであるが、これらの利点は、LAN6が広域ネットワーク(“WAN”)において他の1つ以上のLANに接続されている場合にも実現される。図2に、サーバS1 40、PC42、44及び46、ならびにプリンタ48が含まれる第1LAN41を含むようなWANが描写されている。サーバS1 40は、バス52によってバックボーン50に接続される。バックボーン50は複数のバス間の電気接続にすぎない。また、このWANには、サーバS2 60、PC62、64及び66、ならびにプリンタ68からなる第2LAN61が接続されている。サーバS2 60は、バス54によってバックボーン50に接続されている。
【0035】
このWANには、また、サーバS3 70、PC72、74及び76、ならびにプリンタ78からなる遠隔LAN71が含まれる場合もある。LAN71はシステムの他の部分から遠隔地にあるため、バス56、トランスポンダ(これにはモデムが含まれる場合もある)58、及び通信回線59を介してバックボーン50に接続されている。
【0036】
このようなWANにおいて、PC42がプリンタ78の使用を要求するPSERVERであると想定する。プリンタ78が本実施例によるNEBを装備している場合、直接のデータリンクを、PC42とプリンタ78との間に設定することができ、それによプリンタ78にジョブ情報を送ることができ、プリンタ78からLAN41に状態と制御情報を送ることができる。したがって、WANに接続された周辺機器にインストールされた場合であっても、本実施例によるNEBはその強化された機能を成し遂げることができる。
【0037】
図3は、本実施例によるNEB2の、プリンタ4及びLAN6との接続を描写するブロック・ダイヤグラムである。NEB2は、LANインタフェース101を介してLAN6に直接接続され、また、両方向インタフェース(ここでは、小型コンピュータ用周辺機器インタフェース(“SCSI”)100)を介してプリンタ4にも直接接続されている。SCSIインタフェース100は、プリンタ4のSCSIバス102に接続されている。
【0038】
NEBは、また、標準SCSI連結プロトコルを用いてSCSIバス上でデージーチェーンされた、他のプリンタ(RPRINTER)あるいは他の周辺機器のような付加的SCSI装置を使用することもできる。また、LAN自体を介して他の周辺機器を駆動せるためにNEBを使用してもよい。
【0039】
プリンタ4は好適にはSCSIバス102、SCSIインタフェース104及び106が含まれるオープンアーキテクチャプリンタである。プリンタ4には、RAM110と通信し、また、印刷のメカニズムを実際に駆動させるプリンタエンジン112と通信する簡略命令セット・コンピュータ(“RISC”)のようなプロセッサ108もまた含まれる。また、RISCプロセッサ108は、ユーザ定義情報のようなパワーサイクル間で保持する必要のある情報を格納するために、NVRAM111と通信する。また、RISCプロセッサ108は印刷制御機構を実行するためにROM113と通信する。プリンタ4には、また、不揮発的に大量のデータを保持することができるハードディスク114が含まれていてもよい。プリンタ4は、また、フロント・パネルディプレイ116、及びプリンタへ制御コマンドを入力するためのキーボード115を持っている。
【0040】
好適には、プリンタ4には、SCSIインタフェース100の双方向性質を利用するオープンアーキテクチャが含まれていることが望ましく、これによって、NEBを介してLAN6にプリンタ4から多くの状態情報(もしくは他の情報)が送られ、また、遠隔地からプリンタの細かい制御も可能になる。たとえば、このようなオープンアーキテクチャが双方向SCSIインタフェースを用いて使用された場合、プリンタ4のフロント・パネルディプレイ116に関する情報の大部分あるいはすべてを遠隔地へエクスポートすることが可能になり、また、プリンタフロント・パネルキーボード115の制御機能の大部分あるいはすべてを遠隔地から起動することも可能になる。
【0041】
簡潔に述べれば、オープンアーキテクチャを有するプリンタ4には、4つの主要なサブシステム、すなわち、通信、ジョブパイプ、ページレイアウトとラスター機能、及びシステムサービスが含まれる。通信サブシステムでは異なる通信装置が処理され、ジョブアプリケーションの始動が行なわれる。プリンタがデータを受信し始めると、通信サブシステムは、検査のために各エミュレータに着信データの最初の部分を送る。データを処理することができる第1エミュレータがジョブパイプドライバになる。次いで、システムはジョブパイプを構築し、データを処理する。(パイプの一端にデータが入り込み、ページイメージが他端から流れ出る)。このジョブパイプには多くのセグメントが含まれ、その中の1つがジョブパイプドライバである。
【0042】
ジョブパイプサブシステムは、パイプドライバセグメント(エミュレータ用アプリケーション)と入出力セグメントを持っている。入出力パイプセグメントは、他の少なくとも2つのセグメント(入力用として、ソース及びソースフィルタセグメント、及び、出力用として、出力フィルタ及びデータシンク)を持っている。通信サブシステムの入力セグメントによって、ファイル・システムからの情報で補足し得る入力データが伝達される。パイプドライバによって入力及び補足データが処理される。また、出力セグメントに送られるイメージングコマンドとページレイアウト情報もパイプドライバによって生成される。パイプドライバによって、プリンタディスク(もし存在すれば)へこの情報を格納してもよい。出力セグメントによって、このデータはページレイアウト及びラスターサブシステムへ送信される。
【0043】
ページレイアウト及びラスターサブシステムによって、イメージング情報及びページレイアウト情報が受取られ、この情報はプリンタエンジン112のためにラスタ・イメージに変換される。このセクションは、ジョブパイプから完全に分離して作動する。
【0044】
システムサービスサブシステムによって、ファイル・システムアクセス、コンソールアクセス、フォントサービス、基本システムサービス及びイメージ生成サービスが提供される。したがって、このようなオープンアーキテクチャを持つプリンタ4によって、インテリジェント性を備えた対話型NEB2が十分に利用され、プリンタ4及びネットワーク全体に強化された機能が提供される。
2. ハードウェア
図4はNEB2の主要構成要素を示すブロック・ダイヤグラムである。NEB2は、ネットワークコネクタ202、203及び204を介してLAN6に接続されている。好適には、コネクタ202は10base−T接続が可能なRJ45であることが望ましい。10base−5接続を可能とするために、コネクタ203はDB15コネクタを有するのに対して、コネクタ204は、10base−2を接続可能な単純な同軸コネクタであってもよい。コネクタ202、203及び204のすべては、ネットワークコントローラ206(好適にはイーサネットネットワークコントローラ)に接続されている。しかし、コネクタ204は、まずトランシーバ208を介して接続される。
【0045】
電源は、プリンタ拡張ポート226を介して、プリンタ4の+5V電源からNEB2へ供給される。この+5V電源は、また、電力変換器210及び212へも供給される。EPROM222を“フラッシング”(ローディング;以下、セクション4qで解説)させるために、この電力変換器212によって+12Vの電源が供給されているのに対して、電力変換器210によってトランシーバ208に−9V電源が供給されている。また、ネットワークコントローラ206は8キロバイトSRAM214に接続されている。
【0046】
NEB2の心臓部はマイクロプロセッサ216であり、好適にはNECV53が望ましい。マイクロプロセッサ216は、テストのために現在使用されているシリアル・ポート218に接続されている。また、マイクロプロセッサ216に接続されているものとして、512キロバイトDRAM220、256キロバイトフラッシュEPROM222、SCSIコントローラ224(図3のSCSIインタフェース100に対応)、プリンタ拡張ポート226、故障診断LED240、256バイト不揮発性RAM228(以下NVRAM228)、制御レジスタ230、及び、すべてのイーサネットボードに対してつけられているユニークな名称であるメディア・アクセス制御(“MAC”)アドレスを格納するPROM232がある。
【0047】
NEB2のアーキテクチャには、広範なマルチエリアネットワークの運用と管理のための独自のサポート機能をこのアーキテクチャが持っているという利点がある。これらのサポート機能に含まれるものとして、たとえば、ネットワーク上の遠隔地(つまりネットワーク管理者のオフィス)からの、印刷制御と印刷状態のモニタ、次のユーザのために保証された初期環境を提供するための、各印刷ジョブ後のプリンタ構成の自動管理、及び、プリンタ作業量を特徴づけ、トナーカートリッジ取替えをスケジューリングするための、ネットワーク全体でアクセス可能なプリンタ使用統計値のログなどがある。NEB設計における重要なパラメータは、双方向インタフェース(ここでは、SCSIインタフェース100)を介してNEB2から印刷制御状態をアクセスする能力である。これによって、プリンタコンソール情報が、NEBに、あるいは多くの有用な印刷サポート機能のプログラミングのための外部ネットワーク・ノードにエクスポートされることが可能になる。
【0048】
表1に、NEB2の主要なハードウェア構成要素に関する機能、インプリメンテーション、及び注釈を記述する。
【0049】
Figure 0003592323
Figure 0003592323
好適には、NEB2はプリンタ4内の拡張あるいはオプションスロットにインストールされることが望ましい。NEB2は、したがって、上に説明された処理及びデータ記憶装置機能を備えた内蔵型ネットワーク・ノードである。
【0050】
マイクロプロセッサ216によって、ネットワークパケット伝送及び受信のデータ・リンクレイヤが実現される。ネットワークデータ転送オーバヘッドは、ネットワークコントローラ206によって直接管理された専用SRAMパケットバッファ214を用いることによって最小化される。マイクロプロセッサ216によって、ネットワークコントローラ206を介してSRAMパケットデータ及びネットワークメッセージのブロックがアクセスされ、大容量DRAM220へそのブロックが移される。
【0051】
印刷イメージデータ及び制御情報のブロックはマイクロプロセッサ216によってアセンブルされ、プリンタ拡張ポートのSCSI転送プロトコルを用いて、SCSIコントローラ224によりプリンタ4へ転送される。同様に、プリンタ状態情報は、プリンタ4からSCSIブロックフォーマットのNEB2へ転送される。SCSIコントローラ224は、増加したデータ処理量に対してNEBがフルに能力を発揮するために、ネットワークコントローラ206と並行して作動する。
【0052】
マイクロプロセッサ216は、好適にはNECV53チップであることが望ましい。このチップは、ダイレクト・メモリ・アクセス(“DMA”)、割込み、タイマ及びDRAMリフレッシュ制御をサポートする16ビットインテル互換性プロセッサを備えた、高速、高集積マイクロプロセッサである。NEB2上のデータ・バス構造は、マイクロプロセッサ入出力転送時に8ビット/16ビットダイナミックバスサイジングを利用するため、16ビット長で実現されている。マイクロプロセッサ216用の制御ファームウェア及びアプリケーション・ソフトウェアは、NEB2上のEPROM222に格納される。電源投入自己検査後、ファームウェアコードは高性能DRAM220に選択的に移され、実際に実行される。プリンタがネットワーク上に最初にインストールされると、ネットワーク及びプリンタの構成パラメータがNVRAM228に書込まれる。このようにして、プリンタの電源のオンオフが繰り返されたとき、NEBソフトウェアがインストールパラメータを回復することがNVRAM228によって可能になる。
3. ソフトウェア
LAN用ソフトウェアに含まれるものとして、ネットワークソフトウェアと、NEB内蔵型ソフトウェアやネットワーク管理者のPCに常駐するソフトウェアのようなNEBにカスタマイズされたソフトウェアとが組合わされたものがある。
3a. ネットワークソフトウェア
本実施例において、NetWareネットワーク用ソフトウェアはネットワークのノード間の相互作用を管理するために使用される。その結果、クライアントワークステーションは、ディスク・ファイルサーバ、データbaseサーバ、プリント・サーバなどのようなサーバノードからのサービスを共用し、受信することができる。NetWareそれ自身は、これらのサーバノード及び各ワークステーションノード上で実行するソフトウェアモジュールの組合わさったものである。少なくとも1つのファイル・サーバがノーベル社ネットワークで提供される。NetWare(商標)は、ファイル・サーバのPC用オペレーティング・システムとして実行され、基本的なネットワークの中心機能及びユーティリティを提供する。4つまでのネットワーク・インタフェースカード(好適にはイーサネットあるいはトークン・リング接続)を用いて、ファイル・サーバを1種以上のLANに接続することができる。これらの構成において、図2に示すように、“ブリッジ”あるいは“バックボーン”サービスが複数のLAN間で提供され、その結果、プリンタを含むリソースは共用“インタネット”(すなわち、1つのLANから別のLANへの)となり得る。
【0053】
ワークステーション上で、NetWareは、制御ソフトウェアのNetWare“シェル”として、ワークステーションオペレーティング・システム(DOSあるいはOS/2)と協動して実行する。このシェルには、ネットワーク上へワークステーションオペレーティング・システムのサービスを拡張する効果があり、このため、ネットワークリソースはワークステーションに対してローカルとなる。
【0054】
ノーベル社PSERVERソフトウェアには、ネットワーク・ノードから印刷要求を出すために、(16台までの)プリンタの1グループを制御するジョブがある。要求は、ネットワーク待ち行列管理サービスを用いて、ネットワークファイル・サーバに保持される印刷待ち行列という形で構造化される。待ち行列項目には、印刷されるファイルのリストが含まれている。このファイルには、タブ、書式送りのような印刷データ、及び他のプリンタ記述言語(“PDL”)コマンドが含まれる。単一PSERVERによっていくつかの待ち行列を出すことができる。
【0055】
標準的なノーベル社サーバは、実行するネットワーク・ノードのタイプに依って異なるバージョンで使用可能である。プリント・サーバプログラムは、ファイル・サーバ自体に常駐することができる。また、プリント・サーバソフトウェアのバージョンをスタンド・アロン型DOSステーションノードにロードして、そのノードを専用プリント・サーバにしてもよい。
【0056】
本実施例のNEB2にプリント・サーバ機能(CPSERVER)を設けることによって、付属PCを必要とせずに標準的なノーベル社プリント・サーバの印刷サービスがすべて、NEB及び付属プリンタから提供される。
【0057】
プリンタはそれ自身“ローカル”あるいは“リモート”のいずれかであると考えられる。ローカルプリンタとはプリント・サーバノードに物理的に接続されているものである。NEB2の場合、ローカルプリンタはNEBを格納しているプリンタである。リモート・プリンタは、それらが接続されているPCで実行するRPRINTERプログラムによって管理される。RPRINTERはLAN上の別の場所で実行するPRINTSERVERSから印刷データを受信する。本実施例のNEB2は、RPRINTER機能(CRPRINTER)を備えることができ、ネットワークリモート・プリンタとしてNEB2のプリンタが提供される。このモードで、NEB2は、ノーベル社プリント・サーバの標準的なバージョンと完全に互換性をもつ。
【0058】
ノーベル社NetWare(商標)によって、いくつかの印刷ユーティリティが提供され、制御ファイルサーバ、あるいは、ワークステーションbaseプリント・サーバ及びその付属プリンタを構成し、制御する。ノーベル社プログラムPCONSOLEは、メニュー方式ユーティリティであり、このユーティリティによって、ユーザ(プリンタコンソールオペレータ)は、新しいプリント・サーバを作成し、16台までのローカルまたはリモート印刷ポートを構成し、印刷待ち行列を作成し、プリンタに待ち行列を割当て、そしてプリンタ及びサーバオペレーションを始動/停止することができる。
3b. NEBカスタマイズソフトウェア
NEB2には、NetWareによって提供される全範囲の印刷サービスが実現されるソフトウェアモジュールが組み込まれている。これには、プリンタ内のNEB2で実行する、内部NetWare互換モジュールに加えて、ネットワークのワークステーションノード上で実行する外部NetWare互換モジュールも含まれている。NEB2で使用するために開発された、NetWareと互換性をもつ特定プログラム(たとえば、後述するカスタマイズされたCPSERVER及びCRPRINTERプログラム)に、ノーベル社から標準的印刷モジュールと同じ汎用オペレーションインタフェースが提供されるため、ノーベルユーザ及びネットワーク管理者が親しみやすい。カスタマイズされたバージョンには、プリンタ4のオープンアーキテクチャを利用する拡張機能が含まれ、ネットワーク全体に渡って印刷サービスの管理が強化されている。
【0059】
表2に、NEB用に開発されたカスタマイズソフトウェアの機能、インプリメンテーション、及び、注釈を示す。
【0060】
Figure 0003592323
3c. NEB内蔵型ソフトウェア
NEB2用に開発されたこのソフトウェアには、NEBに内蔵されたソフトウェア、及びネットワーク管理者のPC14にロードされたソフトウェアが含まれる。ワークステーションPC及びそのDOSオペレーティング・システムのオーバヘッドなしで、プリンタ4内部に直接、NetWare(商標)と互換性をもつノード及びNetWareと互換性をもつ印刷サービスの両方が、このNEB内蔵型ソフトウェアによって提供される。NEB内蔵型ソフトウェアに含まれるものとしては、複数のアプリケーションモジュール(CPSERVER、CRPRINTERなど)、実時間サービスモジュール、ネットワークプロトコルスタック、及び、アプリケーション交換、拡張処理、装置セマフォを行ない、バッファプール管理を共用するモニタ・プログラムがある。NEBの機能は、アプリケーションモジュールのタイプ、及びNEB2内に構成されたネットワークレイヤ通信ソフトウェアのプロトコルスタックの数によって決定される。マルチタスク処理で各アプリケーションモジュールにNEB処理時間が割当てられるのに対して、プリンタ4とネットワーク間の相互作用は、実時間事象に応答するモニタ・プログラムによって調整される。
【0061】
NEBソフトウェアは2つのレイヤ(“ランタイム”すなわち実時間レイヤ、及び、“ソフトタイム”すなわちアプリケーションレイヤ)で機能する。ランタイムレイヤは、マイクロプロセッサ割込みに応答するNEBソフトウェアの要素で構成される。タイマ、SCSIポートからの待機データ転送要求あるいはプロトコルスタックルーチンを介したLANデータ、及び、CPSOCKET(以下、セクション4jで解説)通信メカニズムのような機能がこのレイヤによって提供される。
【0062】
このソフトタイムレイヤは、実時間事象がすべて発生した後、NEBのマイクロプロセッサ216の制御を行なうモニタ・プログラム(以下、セクション4lで解説)によって調停され、制御される。非強制排除(連動マルチタスク)手法を用いて、ロードされる種々のアプリケーションモジュール間でプロセッサ資源を分割し、その結果、マイクロプロセッサ資源を確保することにより、どんなアプリケーションモジュールも他のモジュールを強制排除できないようにロードされる。
【0063】
NEBのEPROM222には、256キロバイトまでのアプリケーションモジュールプログラム及びNEB初期化コードが含まれている。電源投入時あるいはプログラムされたリセット時に、NEBのEPROMコードがNEBのDRAM220へ選択的に転送されないうちに、NEB2によって、EPROM222からPOSTが実行される。POSTが成功した場合、NEB2によって、そのプロトコルスタック及びアプリケーションモジュールがDRAM中にロードされ、そのアプリケーションモジュールの実行が開始される。
【0064】
その基本的な構成において、NEB2には、2つの内蔵された構成をもつNetWare互換性アプリケーションモジュールが含まれている。即ち、カスタマイズされたリモート・プリンタ(“CRPRINTER”)とカスタマイズされたプリント・サーバ(“CPSERVER”)である。好適には、NEBは、1回に、これらの構成の1つだけにおいて実行されることが望ましい。さらに、NEBの範囲内において、ネットワークプロトコルスタックがロードされ、機能することが、これらのアプリケーションモジュールによって要求される。
【0065】
RPRINTER機能を備えて構成された時、NEBは、CRPRINTERモジュールを用いて、外部プリント・サーバへのスレーブ(ユニット)としてのそのプリンタを操作する。この構成では、標準的ノーベルプリント・サーバが標準的ノーベルRPRINTERから予期されるものをエミュレートして、限定されたプリンタ状態情報のみがLANへエクスポートされる。しかし、CPCONSOLユーティリティ(上述)がネットワーク管理者のPC14で実行される場合は、プリンタに関する拡張された状態情報はなお使用可能である。
【0066】
上述のように、NEB2には内蔵型ソフトウェアプログラムCPSERVER及びCRPRINTERが含まれ、このプログラムによって、NEBはPSERVERあるいはRPRINTERのいずれかの機能性を備えて、ネットワーク上で実行することが可能になる。LAN上で、周辺機器状態及び制御情報を使用可能にするカスタマイズされたNEB内蔵型ソフトウェアは、CPSOCKET(以下、セクション4jで解説)である。CPSOCKETは、NEB上で実行され、NEB2及び付属プリンタ4の両方にアドレス指定されたLANの通信をモニタする。さらに、CPINITとCPCONSOLが実行しているとき、CPSOCKETはそれらと通信する。CPSOCKETには、装置環境用デフォルト設定値表を保持し、電源投入時の基本的構成情報(フォントとエミュレーション)をダウンロードし、CPCONSOLディスプレイに装置情報、統計値及びログ情報を送り、リセット、リブート及びダウンロードする能力が備わっている。CPSOCKETは、また、NEB2の構成に責任を負う。さらに、CPSOCKETは、CPINITの要求を受けてNEB上でアプリケーションを構成し起動する。また、CPSOCKETによって、正確なプロトコルスタックが各々の構成されたアプリケーションに対して使用可能となることが保証される。CPSOCKETは、CPINITとCPCONSOLの両方の要求を受けてNEB2の設定値及びプリンタ変数を扱う。最終的に、ダウンロード設備(たとえばネットワーク管理者のPC14)はCPSOCKETと連絡をとり、要求されるいかなるファームウェアのダウンローディング(EPROM222をフラッシュするような)をも遂行する。
【0067】
初期化に際して、CPINITとCPCONSOLのようなプログラムによって、NEB2のカスタマイズされたソフトウェアを持つすべてのネットワーク装置を捜すLAN上のサービス公示プロトコル(“SAP”)が発行される。CPSOCKETによってこの同報信号が受信され、応答が行われる。次いで、CPINITまたはCPCONSOLは、カスタマイズされたクライアントソケットを用いて、CPSOCKETとの特別の接続を設定する。次いで、CPSOCKETによって、多重受信が通知され、NEB制御、装置情報、基本的構成情報、アプリケーション情報、統計値及びロギングのようなクライアントサービストランザクションが提供される。たとえば、CPINITによって、アプリケーションの構成を要求することができ、また、CPCONSOLによって、すでに構成されたアプリケーションの起動あるいは停止を要求することができる。適切なオプション(プロトコルスタック)が使用可能になり、アプリケーションそれ自身が構成を許される前に、アプリケーションのために適切なオプションが構成されることが、CPSOCKETによって保証される。NEB内部で、CPSOCKETオペレーションモジュールは常に起動されている。
【0068】
NEB中にさらにアプリケーションモジュール(たとえばUNIX印刷サービスや関連するプロトコルインプリメンテーション)をロードした後、付加的な印刷サービスアプリケーションを利用してもよい。
3d. PC常駐カスタマイズソフトウェア
NEB2の機能をさらに強化するために、カスタマイズされたソフトウェアもまたネットワーク管理者のPC14に提供される。たとえば、カスタマイズされたPCONSOLE(“CPCONSOL”;以下、セクション4iでより詳細に解説)ユーティリティによってノーベル社のPCONSOLEプリンタユーティリティに拡張機能が提供され、オープンアーキテクチャプリンタ4に対する強力な制御機能及びモニタ機能へのアクセスが可能になる。たとえば、CPCONSOLを用いることによってプリンタからネットワークに対して使用可能な典型的な状態制御情報として、以下のものがある。:(A)オンライン/オフライン、無応答、時間/日付/時間帯、言語、オフセット、エラースキップ設定値、タイマ、ブザーイネーブル、トナー不足、用紙フル、用紙カウント、最終サービスからのカウント、用紙切れ、紙づまりのような状態及び制御情報;(B)1次、2次、グラフィックセット、スケーリング、回転、エリートのようなフォント情報;(C)用紙方向、行ピッチ、文字ピッチのようなレイアウト情報;(D)コピー枚数、オーバレイ、ジョブ完了、コマンド・モード、デフォルト用紙サイズ、現在の用紙サイズのような品質及び共通環境情報、及び(E)インタフェース、バッファ・サイズ、フィーダ選択、両面印刷、ページスタックオーダ、などのような構成情報。
【0069】
更に、CPCONSOLを用いることによってネットワークにアクセスできるプリンタ用構成データには、以下のものが含まれる:(A)プロトコルタイプ、ノード名、ファイル・サーバ名、ルーティング、POSTエラーコード、NEBファームウェアレベル、MACアドレス、サーバモードのようなネットワーク・グループ情報;及び(B)安全(デフォルト)環境、フォント、現在のディスク、ディスクサイズ、初期環境、ロギングオン−オフ、ログ・ファイルサイズ、構成/非構成、及びネットワーク名のようなプリンタグループ情報。さらに、印刷ジョブフロー、プリンタエンジンの使用法及びネットワークの作動状態のログを記録することができる。このような使用法及び統計値ログエントリの例として以下のものが含まれる:(A)受信統計値、転送統計値、及び非媒体関連情報のようなネットワーク・グループ情報;(B)日付/時間/時間帯、ログイン(ユーザ名)、ジョブ名、ページ、コピーカウント、及び印刷状態のようなジョブ・エントリ情報;(C)初期化エントリ情報;(D)エラー状態エントリ情報;(E)クリアログエントリ情報;及び、(F)ジョブ数、ページ/ジョブ、ページ/分、時間/ジョブ、ページ合計/日、ジョブ合計/日、日数及びリセット合計のようなプリンタグループ情報。
【0070】
CPCONSOLは、メニュー方式のDOS実行可能プログラムであり、その機能はノーベル社PCONSOLEプリンタユーティリティに拡張機能を与えるものである。CPCONSOL拡張機能によって、オープンアーキテクチャプリンタ4に対する追加的制御機能及びモニタ機能へのアクセスが可能になる。これらの機能によって、ネットワーク管理者のPC14が遠隔地からプリンタを制御し保守することが可能になり、ネットワーク全体の印刷サービス管理が強化される。要するに、CPCONSOLとは、ネットワーク管理者へ印刷制御機能をエクスポートし、安全(デフォルト)環境の再構成を許可し、ネットワーク管理者が、ネットワーク及びプリンタ状態、ジョブ統計値、及び、これまで処理したジョブ及びエラー状態のログをみることを可能にするユーティリティである。NEB内蔵型ソフトウェアプログラム・モジュールCPSOCKETと通信することによって、CPCONSOLは要求された情報を収集する。
【0071】
ネットワーク管理者のPC14に常駐するもう1つのカスタマイズソフトウェアプログラムとして、カスタマイズされた周辺機器初期化プログラム(“CPINIT”;以下、セクション4hで解説)があり、このプログラムもメニュー方式DOS実行可能プログラムである。このプログラムの機能は、NEB2に付属のプリンタ4を構成し、再構成し、初期化することである。
【0072】
CPINITモジュールによってNEBが構成され、NEBは、1つの付属プリンタを備えたプリント・サーバとして働く。また、このモジュールはその一次ファイルサーバを指定し、このサーバによって、NEBはどの待ち行列を使うべきかを決定する。CPINITはLAN上で同じようにカスタマイズされたすべての装置(たとえば他のオープンアーキテクチャプリンタにインストールされた他のNEB)を管理するプログラムである。CPINITは、オープンアーキテクチャ周辺装置内に常駐する他のNEBとネットワーク上で交信することによってこのタスクを遂行する。CPINITを用いて、CPSERVERまたはCRPRINTERとしてNEBを構成するような適切な基本的構成情報で各々のNEBが構成される。基本的構成情報に含まれるものとして、NEB環境設定値(どのプリント・サーバアプリケーションが実行中であるかを含めて)があり、また同様に、装置環境オプション(たとえばプリンタ初期化時刻をダウンロードするための、フォント及びエミュレーションのリスト)、及び、装置デフォルト設定値(内部装置時間/日付/時間帯、バッファ・サイズ、ディスク及びロギング情報、及びプリンタ名のような)もある。CPINITプログラムは、NEBに関する状態情報(NEBにロードされたファームウェアレベル)も表示し、また、潜在的POSTエラーを報告する。
【0073】
他のどのカスタマイズされた装置がLANで使用可能かを調べるために、CPINITプログラムはネットワーク全体に渡って同報通信を行なう。このような他のカスタマイズされた装置に付属したNEBが、その識別番号、そのデバイス・タイプ及びその構成状態を用いて応答する。ネットワーク管理者に提示される、これらのNEBと装置のリストがCPINITによって構成され、それらの構成あるいは再構成が可能になる。
【0074】
また、ダウンローダプログラムをネットワーク管理者のPC14にロードし、ネットワークを介して実行可能ファイルをNEBへダウンロードしてもよい(以下、セクション4hでより詳細に解説)。
【0075】
ネットワーク管理者のPC14で実行できる、もう一つのカスタマイズされたプログラムとして、CPFLASHがある。これは、EPROM222内へ新しいファームウェアを遠隔からフラッシュするために使用されるが、これについては、以下、セクション4qでより詳細に解説する。
4. オペレーション
最初に、図5A、図5B及び図5Cのフローチャートに関して、NEBの構造及び機能についての概論を行なう。その後、NEBのハードウェア及びソフトウェアの種々の態様のより詳細な説明をセクション4aから4qに関して行なう。
【0076】
本実施例では、プリンタとNEB間の通信の双方向的性質、及び、マルチタスク処理によるNEBの情報処理能力が利用される。すなわち、双方向SCSIバスによって大量のデータをプリンタへ、かつ、プリンタから双方向へ伝送することができ、NEBによって大量の特定状態データをプリンタから受信したり、周辺機器から入力されたデータ(スキャナから入力されたイメージデータのような)までも受信することが可能である。NEBマイクロプロセッサは、マルチタスク方式によって(シーケンシャルであるが分割処理を行う)情報を処理し、ネットワークから受信される情報及びプリンタから受信される情報を効率的に並行処理する。このようにして、近実時間方式でネットワークとプリンタ双方にNEBが応答することが、このマルチタスク処理によって保証される。
【0077】
図5A、図5B及び図5Cには、NEB及びそれに関連するソフトウェアがローカルエリアネットワーク(LAN)に接続されたプリンタにインストールされる場合に発生し得る事象の概念的シーケンスを描写する、概念フローチャートが含まれる。全体として、プリンタによって印刷情報が伝えられ、プリンタは双方向SCSIインタフェースを介してNEBに接続されている。プリンタは、また、他のソースから印刷情報を受信するためのパラレルポート及び/又はシリアルポートを持っていてもよい。NEBは、双方向SCSIインタフェースを介してプリンタに接続されており、ボードによって、ローカルエリアネットワーク(LAN)からプリンタ情報が受信される。このボードによって、SCSIインタフェースを通してプリンタへ印刷ジョブ、及び、プリンタ状態の照会が送信される。そして、SCSIインタフェースを通してプリンタからプリンタ状態が受信され、ネットワークを通してプリンタ状態が報告される。
【0078】
NEBが、スキャナのようなデータ生成装置に接続されている場合、このボードは双方向SCSIインタフェースを介してスキャナに接続され、LANインタフェースを介してネットワークに接続される。ボードによって、ネットワークから状態要求情報が受信され、この情報は双方向インタフェースを通してスキャナへ渡される。このボードは、また、双方向インタフェースを通して、スキャナによって生成されたデータを受信し、LANインタフェースを通してネットワーク上へそのデータを渡す。
【0079】
NEBがプリンタにインストールされる場合に起り得る事象のシーケンスを説明する。図5Aにおいては、まず、ステップS1において、電源がNEBに印加される。ステップS2で、NEBによって、EPROM220から電源投入自己検査(“POST”)が実行される。ステップS3で、POSTが無事完了した場合、処理はステップS5へ移り、このステップで、NEBのEPROM222オペレーションコードによって、NVRAM228からネットワーク及びプリンタ構成コードが読取られる。POSTがステップS3で成功裡に遂行されなかった場合、故障表示がステップS4で経過記録される。また、この情報は、LANインタフェースを通してネットワークに伝送されてもよい。NEBあるいはプリンタの故障/診断ライトが点灯されてもよい。
【0080】
ネットワーク及び構成コードがNVRAM228から読取られた後、処理はステップS6へ進む。このステップにおいて、NEBのEPROMオペレーションコードによって、選択された構成モジュール、プロトコルスタック、ハウスキーピングモジュール、など(たとえばマルチタスク処理モジュールMONITOR、CPSOCKET、CPSERVERなど)が、EPROM222から読取られ、こうして選択されたモジュールがDRAM220へダウンロードされる。即ち、ステップS6において、対話型ネットワークボードのオペレーションモード(たとえばCPSERVERあるいはCRPRINTER)を定義する構成が選択される(CPINITによって設定された構成に従って)。以下、セクション4dでより詳細に解説されるように、バイナリの構成コードがLANを通して送られ、NVRAM228に格納される。NEBがブートアップされた後、この構成コードはROM常駐の電源投入処理ステップを用いてNVRAMから読取られる。このROM常駐処理ステップを用いて、NVRAMから読取られた構成コードに従ってROM常駐実行可能モジュールが選択される。これらのモジュールは、NVRAMの構成コードの2進数字へのビット的対応で選択される。次いで、これらの選択されたモジュールは、DRAM中へ格納され、これらのモジュールに対する実行制御はDRAMへ渡され、ここで、これらの選択モジュールが実行される。このようにして、複数の構成を定義し、選択的に変更することができる。
【0081】
ステップS7で、LAN上に伝送されたイーサネットフレームタイプの情報パケットが判定される(以下、セクション4eでより詳細に解説)。すなわち、イーサネットによって、異なる4つのフレームタイプ(イーサネット802.3;イーサネットII;イーサネット802.2;及びイーサネットSNAP)がサポートされている。イーサネットフレームタイプを判定するために、プレスキャン処理(“PRESCAN”)によって、どんなフレームタイプが、LAN上に常駐しているかが(任意のLAN同報通信データから)判定され、そのデータに対して適切なNEB常駐プロトコルスタックが構成される。フレームタイプを示すバイトに到達するまで、プレスキャン処理によって、受信LANパケットからバイトのデータが分離される。簡潔に述べれば、ステップS7においては、複数の異なる種類のフレームタイプのLANパケットを処理する能力がNEBに提供される。この能力は、LANからデータのフレームを受信し、フレームタイプを判定するためにこのフレームをプレスキャンし、適切な処理プログラムを用いて、識別されたフレームをNEB上で処理することにより、NEBに提供される。プレスキャンオペレーションには、フレームのヘッドから所定のバイト数を剥ぎ取り、フレームタイプを示す識別コードを識別するために剥ぎ取られたフレームを処理し、識別されたフレームを処理プログラムに伝送するサブステップが含まれる。
【0082】
ステップS8で、ステップS6でダウンロードされたタイマモジュールによって、最も近いLANサーバが見つけられ、現在の時間が要求される。現在の時間を受信した後、処理はステップS9へ進み、そこで、時刻が午前0時かどうか、すなわち返信された時間が新しい日付を示すかどうかが判定される。
【0083】
ステップS9からS12にはCPSOCKETプログラムによってNEBで行われる、いわゆる“オートログイン”機能が含まれる。これは、自動的にかつ系統的にプリンタからLANへ状態情報を送るためである(オートログインについては、以下、セクション4kでより詳細に解説)。ステップS9で、午前0時に達していない場合、処理はステップS13へ進む。しかし、午前0時に達していた場合、NEBマイクロプロセッサ216によって、SCSIバスを通してプリンタに要求が伝送され、プリンタはNEBに現在の状態を返信する。たとえば、プリンタによって、印刷累計ページ数がNEBに返信される。ステップS11で、NEBマイクロプロセッサ216によって、1ジョブ当たりページ数あるいは1日当りページ数のようなプリンタ統計値が計算され、NEBによって、プリンタに送られたジョブ数及び日付の記録が取られる。ステップS12で、プリンタ統計値は、プリンタのハードディスク114あるいはNVRAM111のような不揮発性メモリあるいはNEBのNVRAM228に転送される。もしくは、ステップS10、S11、S12はステップS9より前に実行してもよく、それによって統計値は分毎に格納される。
【0084】
ステップS9からS12を要約すれば、双方向インタフェースを介してLAN通信用対話型ネットワークボードに接続されたプリンタのシステム統計値を記録する方法には、印刷したページ数をプリンタ中で数えるステップと、印刷されたジョブ数をボード上で数えるステップとが含まれる。プリンタが、双方向インタフェースを通じて、日毎の印刷ページ数の問合わせを受けると、ボードはこのページ数、ジョブ数及び他の状態情報を用いて、1日毎の統計値を計算する。次いで、この1日毎の統計値が格納され、ネットワーク管理者のPC14からCPCONSOLを用いてこれをアクセスすることができ、また、遠隔地で表示することもできる。“オートログイン”機能の追加的特徴として、異なるレベルの統計値を経過記録することができるということがある。たとえば、基本的なレベルで、各ジョブに対するページ数だけを経過記録してもよい。より高度のレベルでは、ジョブ当たりページ数に障害状態のログを加えたものを記録したり、ジョブ開始及び終了時刻を、障害状態及び1ジョブ当たりページ数に加えて記録することもできる。ロギングレベルはCPINITによって設定される。
【0085】
図5BのステップS13で、SAPSERVERプログラム(以下、セクション4gでより詳細に解説)によって、NEBがCPSERVER及びCPSOCKET双方のアイデンティティを持っているものとして公示される。このようにして、NEB及び付属プリンタは、PSERVER及びカスタマイズされたエンティティ(CPSOCKET;すなわち、インストールされたNEBを持つ他のLAN周辺機器に類似)の対をなす役割で機能を果たすことができる。SAPSERVERはNEB常駐TSRプログラムであり、このプログラムによって、2つ以上のサーバが同一ノード上で同時にネットワーク・サービスを公示することが可能である。このようにして、CPSOCKETとCPSERVERは、SAPSERVERを介してそのサービスを通知し、他のネットワークアプリケーションからの問合せに応答する。各イーサネットボードは1つのSAPソケット番号しか持ち得ないため、SAPSERVERが機能し、混乱なく双方のNEBアイデンティティがLANへ公示される。
【0086】
要するに、ステップS13は、単一の対話型ネットワークボードを2つのネットワークサーバ(たとえばCPSERVERとCPSOCKET)としてみなす方法であり、この方法には、そのボードが第1タイプのネットワークエンティティであることを示す信号(そのボードにユニークな識別信号を含む信号)を所定の時間間隔でネットワークへ伝送するステップと、次いで、そのボードが第2タイプのネットワークエンティティであることを示す第2の信号(同様に、同一のユニークな識別信号を含む)を所定の時間間隔でネットワークへ伝送するステップとが含まれる。ひとたびネットワークエンティティのタイプの1つの機能をこのボードが果たすように要求するネットワークからの信号が受信されると、ボードと(本ボードは要求されたタイプのネットワークエンティティとして機能する)この要求を生成したネットワークエンティティとの間で直接の通信が確率される。このように直接の通信が確率されると、NEBは新しいユニークな識別信号を利用する。
【0087】
ステップS14で、LAN及びSCSIインタフェースの双方は、CPSOCKET(以下、セクション4jでより詳細に解説)へ向けられるデータのためにチェックされる。SCSIインタフェースは、典型的には、それまで受信された状態要求に応じてLANに渡されるプリンタ状態データを持つことになる。CPSOCKETはNEB常駐TSRプログラムであり、このプログラムは、このような接続要求、データダウンロード要求あるいはリモートユーティリティからのサービス要求などに応答する。CPSOCKETによって、NEB又はプリンタから情報が収集され、また、必要な場合には、ログ・ファイルへの書込み要求がモニタされ、装置の状態に対するアプリケーション要求がモニタされ、また上に記載のように、ジョブ統計値が保持される。
【0088】
簡潔に述べれば、CPSOCKETプログラムはネットワークと周辺装置間で対話型ネットワークボードを接続する方法であり、この方法には、RAMから実行するためにボードROMからボードRAMへプログラムを転送するステップが含まれる。また、このプログラムで、周辺装置へ向けられたネットワーク通信を検出するためのボードネットワーク・インタフェースをモニタするステップも含まれる。次いで、このプログラムによって、ネットワーク通信に応答する機能の実行が周辺装置に命じられ、ボード双方向周辺機器インタフェースによる周辺装置の状態情報の検出と格納がモニタされる。最終的に、このプログラムは、別のネットワーク通信に応答して、ネットワーク・インタフェースを介してネットワーク上へ周辺装置状態情報を出力する。
【0089】
図5BのステップS15及びS17は、“ランタイム”レイヤ機能を示し、ステップS20は“ソフトタイム”アプリケーションレイヤを表わす。最初に、ステップS15によって、データがLAN上で受信されているかどうかが判定される。LANデータが受信されている場合、処理はステップS16へ進み、ソフトウェアプロトコルタイプが判定される(以下、セクション4fでより詳細に解説)。たとえば、LAN上で受信されるイーサネットデータは次のソフトウェアプロトコルのどの1つであってもよい。SPX/IPX上のNetWare、TCP/IP上のUNIX、あるいはAppleTalk上のMACシステム7。基本的には、ソフトウェアプロトコルタイプは、上記のステップS7で検知されたフレームパケットタイプに従って判定することができる。
【0090】
LANデータがステップS15で受信されていないとCPSOCKETによって判定された場合、ステップS17において、SCSIデータが受信されているかどうかが判定される。SCSIデータが受信されている場合、ステップS18でそのデータはプリンタから入力され、次いで、ステップS19でDRAM220に格納される。
【0091】
ステップS19において、プリンタデータが格納された後、あるいは、SCSIデータがステップS17で受信されていない場合、処理はステップS20へ進る。ここで、“MONITOR”と呼ばれるマルチタスク処理ソフトウェアプログラムによって制御されるようなマルチタスク方式により、“ソフトタイム”タスクが実行される(以下、セクション4lでより詳細に解説)。ステップS20はしたがって、図5A、図5B及び図5Cで描写されるフローチャートを通じて平行的に実行される“バックグラウンド”処理である。すなわち、“ソフトタイム”タスクが実行されているときはいつでも、マイクロプロセッサ216によって、“ソフトタイム”タスクの時分割、並列、非強制排除処理が保証される。
【0092】
より詳細に述べれば、MONITORは、ステップS6でEPROM222からDRAM220へダウンロードされるソフトウェアモジュールである。MONITORは、現在実行中のいくつかのアプリケーションタスク間でプロセッサ利用率を配分する非強制排除マルチタスクモニタである。このモニタの非強制排除的性質によって、各アプリケーションタスクが制御を周期的に放棄することが要求され、その結果、他のタスクを実行する機会が得られる。この制御放棄メカニズムは、制御をMONITORへ渡すソフトウェア割込みを用いて実現される。割込み時に、MONITORによって、現在実行中のタスクの状態は保存され、別の動作途中のタスクの状態が復元され、この新しいタスクの実行が再開(あるいは開始)される。最初制御を放棄されたタスクが、割込み時点の制御を最終的に回復する(すなわち、制御が放棄されたときと同じ状態までその関連情報が復元される)。
【0093】
要するに、ステップS20には、プロセッサリソースを配分するために、マルチタスク処理対話型ネットワークボードの複数のアプリケーションタスクをモニタするステップが含まれる。第1のアプリケーションタスクがメモリに格納される。この第1のアプリケーションタスクは、印刷すべき印刷ファイルの待ち行列を得るべくネットワーク・インタフェースを獲得するためにファイル・サーバを待ち行列に加え、ボードに接続されたプリンタへインタフェースを介してその印刷ファイルを伝える。第2のアプリケーションタスクもそのメモリに格納される。この第2のアプリケーションタスクはLANインタフェースを通して遠隔地の状態照会を受信し、プリンタ状態や受信した状態照会への応答を得るために双方向インタフェースを通じてプリンタに問合せ、状態要求者にLANインタフェースを通して状態情報を提供することができる。第1と第2のアプリケーションタスクは各々放棄コマンドを含む。これにより、現在実行中のアプリケーションタスクの制御が周期的にMONITORに対して放棄される。このMONITORによって、放棄タスクの状態が保存され、非放棄タスクの状態が復元され、非放棄タスクの実行が再開される。
【0094】
図5Cで、データがステップS15においてLAN上で受信された場合、ステップS21によって、受信データが印刷ジョブ用であるかどうか判定される。もし、このデータが印刷ジョブ用である場合には、マイクロプロセッサ216はアクティブな印刷ファイルのためのLANファイル・サーバとして働き、印刷ジョブブロックがステップS22でDRAM220へ転送される。
【0095】
ステップS23で、マイクロプロセッサ216によって、イメージデータ及び制御情報のブロックがアセンブルされ、SCSIインタフェースを介してプリンタへこのブロックが送られる。このステップにおいて、マイクロプロセッサ216によって、LAN上で受信されたデータ・ストリームに対して“ジョブ開始”と“ジョブ終了”表示が有効に加えられる。これは、印刷ジョブの開始時にXP(データ)チャネルを開くことによって、また、印刷ジョブの終了時にXPチャネルを閉じることによって行なわれる。
【0096】
ステップS24で、印刷ジョブが完了するまで、この処理は待機する。ひとたび印刷ジョブが完了すると、ステップS25で、プリンタはデフォルト環境に確実に設定される。印刷ジョブ前(あるいは印刷ジョブ時)にデフォルト構成を設定することもまた可能である。すなわち、NEB自身が、例えば、デフォルトフォント、用紙トレイ、照合、分類などを指定するデフォルト環境に付属プリンタを設定することを確実に行う。これにより、次の印刷ジョブが既知のプリンタ構成にて開始されることが保証される(以下、セクション4mでより詳細に解説)。
【0097】
ステップS25によって、プリンタ設定(たとえばポートレートモード、両面など)を論理的な印刷ジョブ間へ返すことを保証することによって、プリンタのためのデフォルト環境が保証されると考えてよい。たとえば、ノーベル社NetWareには、プリンタ環境をリセットするためにプリンタエスケープ・シーケンスをすべてのジョブの前に付ける能力が含まれているが、このようなエスケープ・シーケンスは、ネットワークファイル・サーバ上のデータベースに常駐しており、問題の印刷ジョブはそのファイル・サーバからは起動しないかもしれない。デフォルト環境の保証を確実なものにするために、必要な構成パラメータがNEBによって格納され、また、NEBは印刷ジョブの間でプリンタ環境をリセットすることを担う。
【0098】
要するに、ネットワークに接続された対話型ネットワークボードを持つLANプリンタにデフォルト構成を提供する方法には、対話型ネットワークボードでLANインタフェースを通してデフォルト構成を受信するステップが含まれる。デフォルト構成は、NEBのNVRAM228に格納するか、あるいは、ボードとプリンタ間の双方向インタフェースを介してプリンタのNVRAMもしくはディスクに格納してもよい。次いで、デフォルト構成は、双方向インタフェースを通してプリンタのNVRAMからボード上のDRAM220へダウンロードされる。ボードによってLANインタフェースを通して印刷情報が受信され、双方向インタフェースを通してプリンタに印刷情報が伝えられると、ボードは印刷ジョブの終了を検出する。この検出に応じてデフォルト構成がプリンタに送られ、これによってプリンタはそのデフォルト構成に設定される。
【0099】
さらに、複数のデフォルト構成が格納されてもよく、また、適切なデフォルト構成を別のLANエンティティから遠隔地で選択するようにしてもよい。たとえば、複数のデフォルト構成のうちの1つを設定する方法として、印刷ジョブの開始をボードで検出し、ジョブのソースを識別するステップが含まれてもよい。その後に、適切なデフォルト構成が格納された構成の中から選択され、次いで、選択されたデフォルト構成が、印刷ジョブの開始あるいは終了時にプリンタへ送られる。
【0100】
図5Cで、ステップS21で印刷ジョブが要求されていないと判定された場合、付属プリンタの状態を求める状態要求がLAN上でなされているかどうかが、ステップS26によって判定される。状態要求が受信されたと判定された場合、ステップS27によって、状態要求のタイプが判定される。たとえば、エラーコード、印刷ページ数、トナー状態などのようなプリンタ状態を要求することができる。
【0101】
ステップS28で、DRAM220から要求された状態データがマイクロプロセッサ216によって引き出され、この状態データはアセンブルされて、LANインタフェースを介してLANに送られる(以下、セクション4iでより詳細に解説)。このようにして、ステップS28で、単純な「オン・オフ」以上の情報がLANに伝送され、LANにプリンタの詳細な状態が通知される。適用範囲の広いアプリケーションでは、LAN上でのプリンタフロント・パネル状態のエクスポート、及び、LANからのフロント・パネル制御コマンドのインポートがステップS28の中に含まれる。すなわち、PC14のネットワーク管理者は、プリンタフロント・パネルディプレイ116上に含まれる、すべてのプリンタ情報を示す表示を要求し、受信することができる。次いで、ネットワーク管理者は異なるプリンタフロント・パネル機能を自分のPCで起動でき、これらの機能はプリンタへ伝送され、選択された制御が実行される。
【0102】
要するに、ステップS28においては、LAN通信用LANインタフェースを持つ対話型ネットワークボードを介してネットワークされたプリンタの手動操作可能な機能を遠隔地で制御する方法として、遠隔地で、ボードへコマンドを送出し、そのコマンドによって、ボードがプリンタ状態情報をボードを通じて遠隔地へLANインタフェースを介して転送するステップが含まれる。遠隔地で、プリンタ状態を表示してもよいし、また、遠隔地でLANインタフェースを介してボードへ第2コマンドを送出し、手動操作可能な機能をボードに実行させることもできる。
【0103】
受信LANデータが印刷ジョブでも状態要求でもない場合、この受信データはダウンロードオペレーションであるとステップS29で判定される。つまり、ROMあるいはRAMアプリケーションを更新するためにデータがNEB中へ転送され、たとえば、NEBで実行される非常駐診断のためにダウンロードが利用される場合があるからである。
【0104】
最初に、ステップS30で、このデータは、LANからDRAM220までダウンロードされる(以下、セクション4nでより詳細に解説)。すなわち、このダウンロードは、データをネットワーク・ノードにロードし、次いで、行動、すなわち、実行させる処理である。たとえば、パッチコードから、製造テストルーチンまで、あるいは、EPROM用ファームウェアの更新までのすべてがダウンロードされる場合もある。また、アプリケーションモジュールをLANファイル・サーバに格納し、次いで、NEBへ毎朝ダウンロードする場合もある。
【0105】
要するに、LANからDRAMへのデータのダウンロードは、LANインタフェースを持つ対話型ネットワークボードのオペレーションモードを変更する方法を含む。そして、この方法は、DRAMから実行されるLAN通信プログラム(LANに関する印刷情報を周辺プリンタへ伝送する通信プログラム)を起動するステップを含む。次に、変更されたオペレーションモードに対応する実行可能命令がLANインタフェースを介してDRAM中へダウンロードされる。そして、ボードは、変更されたオペレーションモードの実行を始めるようにLANインタフェースを介して命じられる。
【0106】
ステップS31で、ダウンロードされた情報がEPROM222のために指定されたものかあるいはDRAM220に対して指定されたものかが判定される。この情報がEPROMに対して指定されている場合、ROMイメージがステップS32でアセンブルされる(以下、セクション4oでより詳細に解説)。たとえば、遠隔地からEPROMファームウェアをダウンロードすることによって、ユニークな柔軟性が与えられる。特に、プリンタにボードをインストールした後、オンボードテストルーチンのダウンロード、及び、EPROM構成ファームウェアの変更を遠隔地から行なうことができる。
【0107】
ステップS32は、EPROM222中へプログラムされるバイナリイメージファイルを構築する処理である。EPROMのために指定されたデータは、最初、DRAM220にダウンロードされ、ここで、ROMイメージにセットされているモジュール名を含む構成ファイルがユーティリティによって読取られる。次いで、すべての指定モジュールを含む完全なバイナリイメージファイルが構築される。ヘッダーがイメージファイルの各モジュールの先頭に置かれる。このヘッダーは、モジュールを識別し、その属性を記述し、そして、ローディング中におけるモジュール配置のために次のヘッダーの位置指定を行う。EPROMにロードされる最後のモジュールはEPROM常駐コードである。これは、ROMイメージの最後に置かれるため、電源投入初期化コードはマイクロプロセッサ216によって予想されるアドレスに常駐する。
【0108】
要するに、EPROMに格納する実行可能コードモジュールを含むバイナリイメージファイルをフォーマットする処理がステップS32には含まれる。最初に、バイナリイメージを形成するコードモジュールを指定する構成ファイルが読取られる。次に、構成ファイルの中で指定された各モジュールのためにヘッダーが形成され、そのヘッダーには、そのモジュールの識別番号、そのモジュールの属性定義、及び次のモジュール用ヘッダーへのポインタが含まれる。次いで、指定モジュール及びそれらに関連するヘッダーを含むバイナリイメージファイルが構築される。最終的に、ROM常駐コードのモジュールがバイナリイメージに追加され、このROM常駐コードによって電源投入時に制御信号が受信され、POSTが送られ、モジュールの少なくとも一つが、バイナリイメージファイルからDRAM220へロードされ、基本的なボード入出力サービスが提供される。
【0109】
EPROM222に新しいデータが書込まれる前に、まず第一に書込み操作が事実上意図されていることを明白に保証する必要がある。明らかに、EPROM222へのいかなる偶発的な書込も、NEBを使用不能としてしまう。したがって、情報がEPROM222へ“フラッシュされる”前に、ステップS33において特定の一連の事象がEPROMをアクセスするために発生する(以下、セクション4pでより詳細に解説)。本実施例においては、2つのデータ・ビットが別個の2つの入出力ロケーションで変更されない限り、EPROMに書込むのに必要な+12ボルトは供給されない。
【0110】
簡潔に述べれば、EPROMが偶発的に書込まれないことを保証する方法は、プロセッサ及びメモリを持つ対話型ネットワークボード上に常駐するEPROM上でフラッシュオペレーションを行なう方法を含み、プロセッサに入出力書込み信号を送るステップを有する。次いで、プロセッサによってメモリに第1アドレスが生成され、入出力信号に応じて第1ビットが所定の状態にセットされる。次いで、電源ユニットによって、所定の状態にセットされている第1ビットに応じてトランジスタに+12Vが供給される。次いで、入出力受信信号がプロセッサに送られ、このプロセッサによって、記憶装置に第2アドレスが生成され、入出力受信信号に応じてあらかじめ選ばれた状態に第2ビットがセットされる。次いで、あらかじめ選ばれた状態にセットされている第2ビットに応じてトランジスタがオンし、EPROMの電源ターミナルへ+12Vが印加され、書込み操作の発生を可能にする。
【0111】
新しいROMイメージがEPROM222に実際に格納される前に、ステップS34で、この新しいROMイメージは、ROMイメージが受信された後で送られるチェックサム値でもってチェックサムされ、照合されなければならない。そして、EPROM222を消去する前に、MACアドレスのような保存データ及びモジュールはDRAM220上の新たなROMイメージ内にロードされねばならない。
【0112】
ROMイメージが検査されたと判定された後、かつ、DRAM220に格納された新しいROMイメージ中へ必要データがすべて保存された後、新しいROMイメージをロードする際データの破損がないことを保証するために、EPROM222をクリアし、消去する必要がある。従って、新しいROMイメージがEPROM222に格納される前に、ステップS35で、EPROM222は複数回消去されることもある。
【0113】
ステップS35で EPROM222が消去された後、この新しいROMイメージがステップS36でEPROM222中へ“フラッシュされ”る(以下、セクション4qでより詳細に解説)。
【0114】
要するに、ステップS36は、LANインタフェースを持つ対話型ネットワークボード上でプログラム可能なファームウェアを遠隔地で変更する方法に関するものであり、この方法には、ボードのDRAMから実行されるLAN通信プログラム(LANに関する印刷情報を周辺プリンタへ伝送する通信プログラム)を起動するステップが含まれる。次いで、ROMファームウェアイメージが、LANインタフェースを介してボード上のDRAMへダウンロードされる。ROMイメージがターゲットボードにダウンロードされたことが次に確認され、また、ROMイメージの正当性が確認される。次いで、ボードは、EPROMを電子的に消去するように命じられ、それから、EPROMは新しいROMイメージでフラッシュされる。さらに、もし所望であれば、“フラッシュ完了”信号をフラッシュオペレーション後にLANへ送ってもよい。
【0115】
次いで、この情報がEPROM222へフラッシュされた後、NEBは、ステップS37で、EPROM222の新しいROMファームウェアイメージからリブートされ、処理はステップS1へ戻る。
【0116】
図5Cで、RAM情報がダウンロードされていると、ステップS31によって判定された場合、そのような情報は、ステップS38を介してDRAM220でまずアセンブルされる。続いて、ステップS39によってRAMプログラムが実行され、処理はステップ13へ戻り、そこでSAPSERVERによってPSERVER及びCPSOCKETエンティティが公示される。
【0117】
NEBをLANネットワークプリンタにインストールした場合のNEBの構造及び機能の概説を、以上の解説によって終了する。NEBのハードウェア及びソフトウェアの種々の態様のオペレーションのより詳細な説明を今から行なう。
4a. 電源投入シーケンス
電源投入に続いて直ちに、電源オン自己検査(POST)がNEB2によって実行され、それに続いて、EPROM222からDRAM220へオペレーションソフトウェアがNEBによってロードされ実行される。
【0118】
より明確に述べれば、電源投入直後、マイクロプロセッサ216が、EPROM222に位置するPOSTプログラム・モジュールをアクセスする。マイクロプロセッサ216によって、EPROM222から直接POSTが実行され、以下のテストを実行する。即ち、マイクロプロセッサの機能、EPROM222に格納されたプログラムの正当性(たとえばチェックサムによる照合による)、DRAM220の動作(たとえば読み出し書き込みサイクルを用いて)、SCSIコントローラ224の動作、NVRAM228のデータの正当性及び制御レジスタ230の動作がテストされる。POSTには、また、EPROM222中へダウンロードされたMACアドレスとPROM232に格納されているMACアドレスの比較が含まれることもある。
【0119】
POSTには、さらに、ネットワークに関連するハードウェアのオペレーションチェックが含まれる。より明確に述べれば、ネットワークコントローラ206のオペレーションを検査するための、ネットワークアクティビティのチェックと同様、SRAM214に対する動作チェック(たとえば読み出し書き込みサイクルを用いて)がPOSTには含まれてもよい。
【0120】
NEB2における他のハードウェアのオペレーションは、追加的なPOST検査によって直接判定することもできる。コネクタ202、203及び204の場合のようにマイクロプロセッサ216によってハードウェアのオペレーションを直接テストすることができない場合には、そのハードウェアの適正な動作は直接的なテスト処理から受信した結果コードによって示されてもよい。
【0121】
POSTの終了に際して、マイクロプロセッサ216によって、シリアル・ポート218上へチェックサムコードが置かれ、次いで、静止オペレーションウィンドウ(たとえば、1秒ウィンドウ)に入る。その間、マイクロプロセッサ216は、シリアル・ポート218を介してコマンド(例えば、後述の「5.検査」を参照)を受信することができる。シリアル・ポート218に接続された装置によってPOSTチェックサムコードを入手し、POST結果を判定してもよい。たとえば、エラーを示すPOSTチェックサムコードが、故障領域を示すゼロでない16進値によって示されるのに対して、エラーなし状態は、“0000h”というPOSTチェックサムコードで示される。故障の場合には、マイクロプロセッサ216によってNEB2のLED240が点灯され、エラーが検出されたことがユーザに信号で知らされる。好適には、LED240は電源投入の際に点灯され、POSTが成功した場合にのみ、切られることが望ましい。
【0122】
POSTが首尾よく完了した後で、1秒静止ウィンドウの実行中にシリアル・ポート218を介してコマンドが全く受信されない場合、マイクロプロセッサ216は、EPROM222に格納されているソフトウェアモジュールをDRAM220へロードし始める。マイクロプロセッサ216は、EPROM222から直接これらのソフトウェアモジュールを実行せず、むしろ、DRAM220にこれらのモジュールをロードし、DRAM220から実行する。このような構成によって、EPROM222から検索される特定モジュールを選択して、DRAM220から実行することが可能になり、その結果、NEB2の柔軟性のある構成が可能になる。(下記のセクション4dを参照)。たとえば、NVRAM228に格納された構成コマンドに従って、EPROM222から、マイクロプロセッサ216によってモジュールが選択的に検索され、DRAM220へロードされて、DRAMから実行される。
【0123】
異なるモジュールがEPROM222から検索され、DRAM220にロードされるシーケンスを、図6に示す。ステップS6001において、マイクロプロセッサ216によって、EPROM222からDRAM220へSCSIドライバがロードされる。SCSIドライバによって、オペレーションシーケンス及びSCSIコントローラ224に対する制御が与えられ、プリンタ4とのインタフェースが可能になる。この結果、プリンタ4に印刷データが送られ、プリンタ4へ、また、プリンタ4から、制御情報が送受信される。
【0124】
ステップS6002で、マイクロプロセッサ216によって、EPROM222からDRAM220へリンクサポートレイヤ(すなわち“LSL”)がロードされる。ステップS6003で、マイクロプロセッサ216によって、EPROM222からDRAM220へネットワークドライバ・ソフトウェアがロードされ、そこで、マイクロプロセッサ216は、リンクサポートレイヤとネットワークドライバをDRAM220から実行し始める。リンクサポートレイヤとネットワークドライバによって、LANバス6上でのLAN通信に共通のアクセスが与えられる。より詳細に述べれば、図7に示されるように、NEB2で使用されるネットワークコントローラ206のような電気的インタフェース301を介して、NEB2のような装置を含むすべてのネットワークされた装置がLANバス6とインタフェースで接続される。電気的インタフェース301は、リンクサポートレイヤソフトウェア304からLANフレームデータを順次受信するネットワークドライバ302によって駆動される。リンクサポートレイヤ304とネットワークドライバ302は両方とも、異なる種類のネットワークソフトウェアに共通である。たとえば、図7でさらに示されるように、ノーベル社のNetWareソフトウェアで提供されるようなネットワークアプリケーション・プログラム(矢印Aで例示されるような)は、インターネットワークパケット交換プログラム(即ちIPX305)と逐次パケット交換プログラム(即ちSPX306)とを介して、リンクサポートレイヤ及びネットワークドライバとインターフェースする。一方、AT&Tによって提供されるUnixからのネットワークアプリケーション・プログラム(矢印Bで例示されるような)は、“IP”モジュール315と“TCP”モジュール316を介してLSLにインタフェースで接続する。
【0125】
NEB2では、1回につきただ1つのタイプのネットワークアプリケーション・プログラムしか通常実行されない(但し、以下、セクション4fで解説するように、マルチプロトコルオペレーションは可能である)。この明細書で行なう説明は、NetWareネットワークアプリケーション・プログラムに対するものであるが、UNIXネットワークアプリケーション・プログラムも同様に実行することは可能ではある。
【0126】
ステップS6004で、マイクロプロセッサ216によって、EPROM222からPRESCANプログラムがロードされ、DRAM220へ格納され、そこで、DRAM220からのPRESCANプログラムの実行が始まる。PRESCANソフトウェアは、リンクサポートレイヤとインタフェースで接続し、LANバス6上を伝送されるフレームパケットのタイプを判定する。より詳細に述べれば、上述のように、イーサネットタイプのネットワークLANバス上には4つの異なる可能なフレームパケットタイプ、すなわち、イーサネット802.3、イーサネットII、イーサネット802.2及びイーサネットSNAPがある。以下、セクション4eでより詳細に説明するように、PRESCANソフトウェアモジュールによって、LANバス6上のネットワーク通信がモニタされ、フレームパケットタイプが判定される。フレームパケットタイプは、一度PRESCANによって判定されると、DRAM220の所定の共通ロケーションに格納され、NEBの他のネットワーク通信モジュールによって利用される。フレームパケットタイプが判定された後、PRESCANによって、マイクロプロセッサ216にそのタスクが完了した旨の信号が送られる。これにより、PRESCANプログラムによって占有されたメモリの領域をマイクロプロセッサ216が別のプログラム・モジュールで上書きすることが可能となる。
【0127】
ステップS6005で、マイクロプロセッサ216によって、EPROM222からIPX及びSPXプログラム・モジュールが検索され、DRAM220に格納され、そこで、DRAM220からのIPXとSPXモジュールの実行が開始される。IPXとSPXの双方は、PRESCANモジュールによって判定されたフレームパケットタイプを使用する。
【0128】
ステップS6006で、マイクロプロセッサ216によって、EPROM222からCNETXプログラム・モジュールが検索され、DRAM220へロードされ、DRAM220から実行が開始される。CNETXによって、局所化されたDOSのような機能がNEBに与えられる。
【0129】
ステップS6007で、マイクロプロセッサ216によって、EPROM222からDRAM220へSAPSERVERプログラム・モジュールがロードされ、DRAM220からSAPSERVERモジュールが実行され始める。以下、セクション4gでより詳細に説明するが、SAPSERVERとは、NEBボードに割当てられた単一ネットワーク・ノードから、CPSOCKETとCPSERVERのような2つのネットワークサーバエンティティが同時に公示を出すことを可能にするプログラム・モジュールである。これに対して、NetWareによって提供されるような従来のネットワークアプリケーション・プログラムは、各ネットワーク・ノードから単一ネットワークサーバエンティティを公示することしかできない。
【0130】
ステップS6008で、マイクロプロセッサ216によって、EPROM222から非強制排除マルチタスク処理MONITOR(後述のセクション4lを参照)が検索されて、DRAM220へ格納され、DRAM220からマルチタスク処理モニタの実行が開始される。
【0131】
ステップS6009で、マイクロプロセッサ216によって、EPROM222からCPSOCKETサーバソフトウェアモジュールが検索されて、DRAM220にロードされ、DRAM220からCPSOCKETサーバの実行が開始される。以下、セクション4jでより詳細に説明するが、CPSOCKETが、CPSOCKETに代わって公示を行うことをSAPSERVERに対して要求すると、SAPSERVERは、LANバス6上でSAP公示を開始する。
【0132】
ステップS6010で、マイクロプロセッサ216によって、CPSERVERやCRPRINTERのような印刷アプリケーションサーバがEPROM222から引き出され、この印刷アプリケーションサーバがDRAM222へロードされる。CPSERVERの場合には、マイクロプロセッサ216がロードされた印刷アプリケーションサーバの実行をDRAM220より開始する。そして、今度は、このプリントサーバの代わりにSAP公示を行なうようにという要求がSAPSERVERに対して出される。以下、セクション4gでより詳細に説明するが、SAPSERVERによって、CPSOCKETサーバ並びにプリント・サーバに対する公示が交互に出され、それによって、CPSOCKETサーバとプリント・サーバの双方に代わる代用SAPエンティティの役割が果たされる。
4b. ローカルエリアネットワーク(LAN)と周辺機器とのインタフェース
本発明の適用範囲の広い態様によって、プリンタのような周辺機器が、ソフトウェアプログラムが内蔵された対話型ネットワークボードを用いて、LANに接続される。好適には、プリンタとNEB間の接続はSCSIインタフェースで行われ、大量の印刷データ及び状態データがNEBとプリンタ間で双方向に伝送されることが望ましい。EPROM222によって、複数のソフトウェアモジュールが格納され、PSERVERやRPRINTERあるいはLPR機能構成で、NEBのオペレーション構成が行なわれる。EPROM222によって、いくつかの状態制御ソフトウェアモジュールも格納され、LAN上でプリンタから状態情報をエクスポートしたり、LANからプリンタへ制御情報をインポートする。EPROM常駐ファームウェアが、電源投入時にDRAM220へダウンロードされ(セクション4aで上述)、それによって、ランタイム割込みがLANあるいはSCSIインタフェースのいずれかから受信されるまで、マルチタスク処理プログラムMONITORがソフトタイムタスクを実行する。
【0133】
NVRAM228によって、EPROM222に格納されたどのモジュールをDRAM220へダウンロードすべきかを指定する構成ワードが格納される。これは、PSERVER機能あるいはRPRINTER機能のいずれかでNEBを構成するためである。マイクロプロセッサ216によってDRAM220からこのプログラムが実行され、印刷のために印刷ジョブをLANより受信し、これをプリンへ送ることが可能になるとともに、プリンタ状態を状態要求に応じてLAN上へ返すことが可能になる。
【0134】
ローカルエリアネットワーク(LAN)へ周辺機器を接続するための構造と機能に関する個々の詳細を、図4、図5A、図5B、図5Cを参考に上述したが、以下のセクションでも説明する。
4c. ローカルエリアネットワーク(LAN)とプリンタ間の双方向インタフェース
NEB2及びプリンタ間における双方向SCSIインタフェースの提供によって、プリンタに印刷データが送られている間に大量の状態情報をプリンタから抽出することが可能となる。さらに、双方向SCSIインタフェースを利用することによって、プリンタは、LAN上で遠隔地から送出された制御コマンドに応答することができる。たとえば、ネットワーク管理者は自分のPC14から、高イメージ密度で、複数回印刷され、次いで、ステープルで綴じるというような特定の印刷ジョブを要求する制御コマンドを送出することができる。このような制御コマンドが、LAN6によってNEB2へ送られる。そして、NEB2によって、SCSIバス102を介してプリンタにこれらの制御コマンドが伝送される。同時に、実際の印刷データがファイル・サーバ30からNEB2へ転送され、NEB2で、この印刷データはブロックにパッケージされ、SCSIバス102を通してプリンタへ転送される。好適には、プリンタに対してXPデータ・チャネルを開くことにより、“印刷ジョブの開始”がNEB2によって示される。同様に、プリンタに対してXPデータ・チャネルを閉じることにより、“印刷ジョブの終了”がNEB2によって示されることが望ましい。このようにして、NEB2は、プリンタへこのような指示を与えることができる。
【0135】
また、NEB2上で双方向SCSIインタフェースを使用することによって、他のタイプの周辺機器をLANに接続することが可能になる。たとえば、SCSIインタフェースによって、周辺機器からLANへ大量のデータを伝送することができるために、スキャナ(たとえば、プリンタ4が光学式文字認識(“OCR”)装置である場合)やファクシミリのようなイメージデータ生成装置にNEBを接続することが可能になる。このようにして、イメージ生成装置によって生成されたデータをSCSIインタフェースを通してNEBへ転送し、次いで、LAN上において任意のLANエンティティにより格納したりあるいは引き出したりすることができる。プリンタに対する場合と同様に、大量の詳細な制御/状態情報もイメージデータ生成装置へ、もしくはイメージデータ生成装置から提供され得る。
【0136】
NEB上の双方向SCSIインタフェースの詳細な構造上及び機能上の特徴を図4、図5A、図5B及び図5Cを参照しながら上述したが、以下のセクションでも説明する。
4d. ROMファームウェア構成
図5Aに関して先に説明したように、ステップS6においては、選択されたソフトウェアプログラムがEPROM222からDRAM220へダウンロードされ、実行される(図6及びセクション4aも参照)。EPROM222にはファームウェアモジュールが配されており、これらのモジュールによって、NEB2はRPRINTERあるいはPSERVER機能のいずれかで構成されることが可能になる。このようにして、NVRAM228に格納された構成コードに従って、EPROM222からDRAM220へ、格納されたプログラムの中のどれがダウンロードされるかによってNEB2の機能が決定される。
【0137】
NEB2ファームウェアが初期状態に構成され、ネットワーク管理者のPC14上でCPINITを実行することによって、後にこのファームウェアを再形成することができる(以下、セクション4hを参照)。しかしながら、非構成状態においてであっても、NEB2自身によっていつでも、LANと基本的な通信を実行するために必要とされるソフトウェアモジュールが起動される。CPINITを用いて、ネットワーク・マネージャは、遠隔地で、NEBの現在の構成を判定することができ、また、自分の要求通りに構成を変更することができる。その構成情報はNEBボード上のEPROMに格納されるので、構成情報は電源サイクルを通じて保持される。
【0138】
個々の構成を行なうためのソフトウェアプログラムがEPROM222からDRAM220へダウンロードされる処理については、図8を参照して以下説明する。
【0139】
ボードがステップS1で電源アップされた後、この処理はステップS8001へ進み、ここで、マイクロプロセッサ216は、EPROM222のEPROM常駐コードにアクセスし、NVRAM228から構成コード(典型的にワード)を読取る。この構成コードによって、NEBにPSERVER機能あるいはRPRINTER機能のいずれかを与えるることができるモジュールが指定される。本実施例には、RPRINTERあるいはPSERVERの機能構成しか含まれていないが、たとえば、NEB2が、スキャナあるいはファクシミリのような異なるLANエンティティにインストールされる場合、他の構成を利用してもよい。
【0140】
NVRAM228から構成コードが読取られた後、ステップS8002で、マイクロプロセッサによって、読取り構成コードに対応するビット・パターンを持つ構成マスクが形成される。ステップS8003で、EPROM222に常駐のローダモジュールによって、この構成マスクがEPROM222に格納された複数ファームウェアモジュールと比較される。
【0141】
詳細に述べるならば、ステップS8004で、処理が始まり、それによって、EPROM常駐ソフトウェアモジュールが、NVRAM228から読取られた2進数の構成コードに対応してビット的に選択される。ステップS8004で、現在検査されたビット・パターンのビットが格納されたモジュールとマッチすると判定された場合、そのモジュールが選択され(ステップS8005で)、DRAM220にダウンローディングされ、ステップS8006で処理は次のビットへスキップする。同様に、ビット・パターンのビットが格納されたモジュールに照合しないとステップS8004で判定された場合も、処理はステップS8006で次のビットにスキップする。
【0142】
ステップS8007で、ステップS8004でテストされたビットが構成マスク・ビットパターンの最終ビットかどうかということが判定される。このテストされたビットが最終ビットでない場合、処理はステップS8004へループ・バックし、ここで、ビット・パターンの次のビットが次に格納されたモジュールに関してテストされる。構成マスク・ビットパターンの最終ビットがテストされてしまうと、選択されたソフトウェアモジュールは、ステップS8008でEPROM222からDRAM220へダウンロードされる。
【0143】
本実施例において、ソフトウェアモジュールは次のシーケンスでロードされる。即ち、SCSIドライバ、リンクサポートレイヤ、ネットワークドライバ、プレスキャン(PRESCAN)、IPX/SPX、CNETX、SAPSERVER、MONITOR、CPSOCKET、そして、プリントアプリケーション(たとえばCPSERVER、CRPRINTER)(図6を参照)の順である。
【0144】
NVRAM228に格納された構成コードに対応するすべてのソフトウェアモジュールが、DRAM220にダウンロードされた後、ローダ機能によって、ステップS8009で、MONITORマルチタスク処理プログラムへプログラム実行制御が渡される。
【0145】
すでに解説したように、NVRAM228に格納された構成コードはCPINITを用いて遠隔地で変更することができる。これによって、CPSERVERやCRPRINTERへの小さな変更を行なうための、あるいは、全く新しい構成の設定を望む場合等の、より大きな柔軟性が与えられる。したがって、ステップS8010で、新しい構成がLAN6によって受信され、ステップS8011で、NVRAM228中へロードされる。好適には、古い構成コードが、消去されるか新しい構成コードで上書きされることが望ましい。次いで、NEBが自らリブ−トし、S1ステップへ戻る。
4e. PRESCANを用いる、フレームパケットタイプの判定
いかなるローカルエリアネットワークにおいても、データは、パケットあるいはフレームでネットワーク装置間を伝送される。しかし、イーサネットのような普通のネットワークアーキテクチャの関連においてさえ、フレーム用に2つ以上のフォーマットがサポートされている。したがって、たとえイーサネットアーキテクチャが使用されていることが分かっていても、イーサネットバスに関する、各物理的フレームあるいはパケットの情報内でデータの配置を判定することは不可能である。特に、上述のように、イーサネットにおいては、以下の4つのデータフォーマット、即ちイーサネット802.3、イーサネットII、イーサネット802.2及びイーサネットSNAPがサポートされている。
【0146】
従来のネットワーク装置(この装置によって、手動選択可能なオペレータインタフェースが提供される)では、イーサネットネットワークで使用されている特定のフレームタイプをネットワーク装置に知らせることが可能である。NEB2の関連においては、ネットワーク・インタフェース(あるいはテスト構成のシリアル・ポート218)を介してしかオペレータのアクセスは行なわれないが、当然のことながら、フレームパケットタイプの知識が必要とされるローカルエリアネットワーク(LAN)へのアクセスをオペレータに最初に行なわせずに、フレームパケットタイプを設定することは不可能である。。
【0147】
PRESCANソフトウェアモジュールによって、適切なフレームパケットタイプが認識されるまで、LANバス上の同報通信をモニタすることによって、LANバス上のLAN通信のために現在使用されている、フレームパケットタイプを、NEB2が自動的に判定することが可能になる。PRESCANは、イーサネット上で使用される4つのすべてのフレームパケットタイプに共通の、認識しうる構成部分に基いてこの判定を行なう。
【0148】
図9に、イーサネット上で使用される異なるフレームパケットの物理的構造をより詳細に示す。図9に示されるように、LANバス上で伝送されている物理的フレーム411には、宛先MACアドレスを格納するための6バイトのセクション412、及び、ソースMACアドレスを格納するための6バイトのセクション413が含まれる。LAN通信用に使用されるフレームタイプにかかわらず、これらの12バイトは、LANデータ・パケットの最初の12バイトを構成する。データセクション414がこれらの12バイトに続く。このデータセクションは可変数のバイトで構成されるが、この可変数のバイトは異なるフレームパケットタイプによって同じ目的に使用されず、また、異なるフレームパケットタイプに対して同じバイト数を持つものではない。
【0149】
不定領域414に続いて、LAN通信パケットには、最初の2バイトが値“FFFF”(16進表示)を常に持っているIPXヘッダー415が含まれる。パケット416の残りはIPXヘッダーの後に続き、各々異なるタイプのLAN通信パケットを特徴づけるデータ及び他のコマンドがこの部分に含まれる。
【0150】
共通領域(IPXヘッダー415のような)がそれらのパケットタイプの内の1つとして認識されるまで、各々の異なるパケットタイプに従ってLAN通信をモニタすることによって、PRESCANは作動する。次いで、PRESCANは、他のネットワーク通信プログラムによって使用すべくそのパケットタイプを格納する。
【0151】
図10はPRESCANモジュールのオペレーションを示すための詳細なフローチャートである。ステップS1001で、マイクロプロセッサ216はEPROM222からPRESCANモジュールを検索し、DRAM220にそれをロードし、そこで、PRESCANモジュールの実行が開始される。図10に示されるオペレーションシーケンスが完了する前に、マイクロプロセッサ216によって、EPROM222からその後のモジュールが検索され、DRAM220の中にそれらがロードされても、PRESCANモジュールはSPX及びIPXモジュールより先に実行される。より詳細に述べれば、SPXとIPXプログラム・モジュールの適切なオペレーションは、PRESCANによるフレームパケットタイプの識別に依存し、したがって、PRESCANによって適切なフレームパケットタイプが判定される後までSPXとIPXの実行は延期される。
【0152】
ステップS1002で、PRESCANは、4つのすべてのフレームパケットタイプ(すなわちイーサネット802.3、イーサネットII、イーサネット802.2、イーサネットSNAP)にLSLを介して同時に繋がる。すなわち、PRESCANはLAN通信の各パケットのためのLSLを構成する。そして、このLSLによって、各々の4つのフレームパケットタイプに対応するデータグループが提供される。その後、PRESCANは、ネットワークドライバからの割込みによる再起動まで不稼働状態となる。
【0153】
ステップS1003で、ネットワークドライバによって、同報通信のためにLANバス上の通信がモニタされる。同報通信とは、宛先MACアドレス412が特定されていないか、“FFFFFFFFFFFF”(16進表示)という全体的指定が与えられていることを意味する。ネットワークドライバは、同報通信が受信されるまで、同報通信のためにLANバス上の通信をモニタし続け(ステップS1004)、同法通信が受信されると処理はステップS1005へ進む。ステップS1005で、MACアドレス・フィールド412及び413は受信データパケットから分離され、データ・パケットの残りはLSLへ送られる。ステップS1006で、LSLによって、各々のフレームパケットタイプに従ってフレームパケットが解読され、各々のフレームパケットタイプに対応してデータグループが与えられる。ステップS1007で、ネットワークドライバによってPRESCANが再起動され、LSLによって与えられたどのデータグループがIPXヘッダー(すなわち“FFFF”(16進表示))としての正当な最初の2バイトを持つかが、このPERSCANによって判定される。すなわち、変数データ領域414(各々の異なるパケットタイプ(図9)に対応する変数データ領域414)があるために、LSLは、フレームパケットタイプの中の1つだけに従ってIPXヘッダー415を適切に識別することができる。即ち、ステップS1007においては、PRESCANによってIPXヘッダーが探索され、LSLによって得られた4つのデータグループの内のどれによって正しくIPXヘッダーが与えられたかに従って、LANバス上で現在使用されているフレームパケットタイプを判定することができる。
【0154】
ステップS1008で、PRESCANによって、対応するフレームパケットタイプがDRAM220の共通域に格納され、その結果、SPXとIPXのような他のネットワークアプリケーション・プログラムによってフレームパケットタイプを使用することができるようになる。その後、ステップS1009で、マイクロプロセッサ216が、もし所望であれば、他のソフトウェアモジュールでそのデータ領域を上書きできるように、PRESCANによってDRAM220のその格納領域が解放される。
4f. マルチプロトコルオペレーション
マルチプロトコルオペレーションにおいて、異なる2つのオペレーティング・システムによって、単一のローカルエリアネットワークバス上でLAN通信が遂行されるが、これはそれぞれ異なる作業プロトコルを使用することによって行なわれる。たとえば、ノーベル社の互換オペレーティング・システムではSPX/IPX作業プロトコルを用いてLANバス上で通信が行なわれるのに対して、UNIX互換オペレーティング・システムではTCP/IP作業プロトコルを用いてLANバス上での通信が行なわれる。アップル株式会社によって提供されるアップルトークオペレーティング・システム(商標)のような他のオペレーティング・システムでは、マルチプロトコルネットワーク環境の中で、単一ネットワークバス上のLAN通信用にそれぞれ異なる作業プロトコルが使用される。
【0155】
通常、単一ネットワーク・オペレーティング・システムへの通信を行なうためにNEB2は構成されるが、マルチプロトコルネットワーク環境(たとえばNovell/UNIX組合せマルチプロトコル環境)で作動するためにNEB2を構成してもよい。この構成においてNEB2に含まれるものとしては、ノーベル社オペレーティング・システムでファイル・サーバのジョブ待ち行列をチェックするための前記CPSERVERのようなノーベル互換周辺機器サーバ、及び、CPSERVERによって行なわれるチェックと同様にUNIXオペレーティング・システム用ファイル・サーバのジョブ待ち行列をチェックする前記CLPR(カスタムラインプリンタリモート)のようなUNIX互換周辺機器サーバ等である。双方のサーバ(ここではCPSERVERとCLPR)によって、共通の周辺機器リソース(ここでは、プリンタのような単一周辺機器)がサービスされる。また、共通のリソース制御のための回線争奪を回避するために、双方のサーバは、他のサーバを除外してこの周辺機器の制御を掌握し、他のサーバに制御を掌握したという信号を送り、ジョブ待ち行列が空いたときには周辺機器の制御を放棄することができる。また、他のサーバが周辺機器を使用するための保留中の要求を持っているかどうかを判定するために、他のサーバに対して、各サーバがチェックを行なうことも可能である。保留となっている要求がある場合には、たとえジョブ待ち行列に残っているジョブがあっても、サーバは、現在のジョブの終了時に周辺機器の制御を放棄することができ、各サーバによる周辺機器の交互使用が可能になる。
【0156】
図11に、マルチプロトコルネットワーク運用のために構成されたNEB2を示す。図11に、Novell/UNIX組合せマルチプロトコル環境を例示するが、これは、他の作業プロトコルを図11に示されたプロトコルで置き換えてもよいし、あるいはそれらと組合わせて使用してもよいことはいうまでもない。図11で、NEB2は、電気的インタフェース321、ネットワークドライバ322、及びリンクサポートレイヤ(“LSL”)324を介してLANバス6に接続している(上述の図7に示されたものとほぼ同じ)。ノーベル仕様作業プロトコルは、参照番号325、326及び327で示される。より明確に述べれば、325と326は、SPX/IPX作業プロトコルスタック(あるいはタワー)であり、これによって、ノーベル互換アプリケーションプログラムはLSLを介してLANバスと通信を行なう。ノーベル互換アプリケーションプログラム327は、CPSERVERのようなノーベル互換サーバを含む。ノーベル互換ソフトウェアによって、上述のように双方向SCSIバス102を介してプリンタ4が駆動される。
【0157】
UNIX互換作業プロトコルは、参照番号335、336及び337で示される。より明確に述べれば、335と336にはTCP/IP作業プロトコルスタック(あるいはタワー)が含まれ、これによって、UNIX互換アプリケーション・プログラムはLSLを介してLANバス6へ通信を行なう。UNIX互換ネットワークアプリケーションプログラム337は、CLPRのようなUNIX互換プリンタ・サーバを含む。プリント・サーバCLPRによって、上述のように、SCSIバス102を介してプリンタ4が駆動される。
【0158】
PRESCANモジュール339はLSL324とインタフェースで結ばれ、各々のオペレーティング・システムのためにLANバス6上で伝送されているフレームパケットタイプが判定される。より詳細に述べれば、UNIXオペレーティング・システムやノーベルオペレーティング・システムのような各オペレーティング・システムは、種々のフレームパケットタイプでLANバス6上で通信を行なうことができる。LANバス6がイーサネットタイプのLANバスである場合には、UNIXオペレーティング・システムは、3つのフレームパケットタイプ(すなわちイーサネット802.2、イーサネットII、イーサネットSNAP)のうちの任意のタイプによってイーサネット上で通信することができる。同様に、LANバス6がイーサネットタイプのバスである場合、ノーベル社オペレーティング・システムは、4つのフレームパケットタイプ(すなわちイーサネット802.2、イーサネット802.3、イーサネットII、イーサネットSNAP)のうちの任意のタイプによってLANバス上で通信することができる。ノーベルオペレーティング・システムとUNIXオペレーティング・システムの双方が、同じフレームパケットタイプを使用することが可能である。即ち、マルチプロトコル環境でオペレーティング・システムのどれがLANバス上で現在通信しているかを判定するのはオペレーティング・システムプロトコル(ノーベルではSPX/IPX、また、UNIXではTCP/IP)である。
【0159】
図11に示されたマルチプロトコル環境において、図10で示したステップを各々のオペレーティング・システムプロトコルに対して実行することによって、各オペレーティング・システムで使用されているフレームパケットタイプをPRESCANモジュール339が判定する(上述のセクション4eを参照)。たとえば、UNIX互換及びノーベル互換システムによってマルチプロトコル環境が構成される場合、PRESCANが、LSLを介してSPX/IPXプロトコルタワーに対するすべての4つのフレームパケットタイプに同時に繋がり、その結果LSLから返信された適切なIPXヘッダを持つデータグループに従ってフレームパケットタイプが判定される。次いで、PRESCANは、TCP/IPプロトコルタワーを持つ3つすべてののフレームパケットタイプを介してLSLを通じて同時に繋がる。適切なTCP/IPヘッダーを持つデータグループに従って、UNIX互換オペレーティング・システムによって使用されるフレームパケットタイプがPRESCANによって判定される。
【0160】
より詳細に述べるならば、適応的かつ自動的に、複数の所定のフレームパケットタイプのうちどれがマルチプロトコルネットワーク環境のLAN通信用に現在使用されているかを判定するために、PRESCANプログラム・モジュール339がEPROM222からDRAM220へダウンロードされ、ここで、マイクロプロセッサ216によってPRESCANモジュールが実行される。第1オペレーティング・システム用のフレームパケットタイプを判定するために、PRESCANは、まずノーベル互換オペレーティング・システム用SPX/IPX作業プロトコルのような第1オペレーティング・システムプロトコルに対応する複数のフレームパケットタイプに同時に繋がるようにLSLを構成する。ネットワークドライバ322によってLAN通信バスがモニタされ、第1オペレーティング・システムのための同報通信がキャッチされる。このような同報通信のキャッチに応じて、キャッチされた同報通信に対する複数のデータグループがLSLによって与えられ、これらのデータグループの各々は複数の異なるパケットタイプにそれぞれ対応している。PRESCANモジュール339が再起動され、SPX/IPXヘッダーのような所定のヘッダーの存在を求めて各データグループがプレスキャンされ、第1オペレーティングプロトコルタワーによって使用される所定のヘッダーを持つデータグループに対応するフレームパケットタイプが、PRESCANモジュール339によって格納される。
【0161】
UNIXオペレーティング・システムのような第2オペレーティング・システムのために使用されるフレームパケットタイプを判定するために、PRESCANは、UNIXオペレーティング・システム用のTCP/IPのような第2オペレーティング・システムプロトコルに対応する複数のフレームパケットタイプに同時に繋がるようにLSLを構成する。ネットワークドライバによってLAN通信バスがモニタされ、第2オペレーティング・システムに対する同報通信がキャッチされる。そして、このキャッチされた同報通信に対応して複数のデータグループがネットワークドライバによって提供され、これらのデータグループの各々はそれぞれ異なるパケットタイプに対応している。PRESCANモジュールによって、Unix用のTCP/IPヘッダーのような所定のヘッダーの存在を求めて各データグループがプレスキャンされ、所定のヘッダーを持つデータグループに対応するフレームパケットタイプが格納される。
【0162】
一度、マルチプロトコル環境において各々のオペレーティング・システムよって使用されるフレームパケットタイプの知識が得られたならば、CPSERVERのようなノーベル互換ネットワークアプリケーション・プログラム327、及びCLPRのようなUNIX互換ネットワークアプリケーション・プログラム337は、双方ともLANバス6上で通信することができる。概略的に示されているように、この2つのアプリケーション・プログラム327と337は信号線340によって相互通信を行なう。信号線340(プログラム327及び337によって共通にアクセスされるDRAMに格納された制御レジスタを用いて実現される)を用いて、プログラム327と337は相互通信を行なうことができ、このプログラムの一方がプリンタ4に対する排他的制御を掌握したという信号を送ったり、あるいは、このプログラムの一方がプリンタ4の使用に対する保留中の要求を持っているということを信号で送ることができる。このことに関しては、以下で、より詳細に説明する。
【0163】
オペレーションにおいて、CPSERVERのような第1サーバによって、そのオペレーティング・システムジョブ待ち行列がチェックされ、もし、ジョブ待ち行列に印刷情報がある場合、そのオペレーティング・システムから印刷情報が第1サーバによって受信される。第1サーバによるジョブ待ち行列チェックと調和して、CLPRのような第2サーバによってそのオペレーティング・システムジョブ待ち行列がチェックされ、もしジョブ待ち行列に印刷情報がある場合、オペレーティング・システムからジョブ情報が第2サーバによって受信される。これらサーバの1つがプリンタ周辺機器の使用を必要とする十分な情報を得た場合、プリンタの排他的制御がそのサーバによって掌握され、プリンタの排他的制御を掌握したという信号が信号線340を介して他のサーバへ送信される。これによって、他のサーバがプリンタ4に印刷ジョブを不注意に挿入しようとすることがある回線争奪問題が防止される。
【0164】
プリンタ4のジョブ待ち行列が空になるまで、プリンタ4に対する排他的制御が第1サーバによって保持される。このジョブ待ち行列が空になった場合、第1のサーバによってプリンタ4の制御が放棄されるが、この後は、他の任意のサーバによってこのプリンタを使用することができる。
【0165】
又、別の方法によれば、たとえ第1サーバのジョブ待ち行列がまだ空ではなくても、第1サーバが印刷ジョブの終了に達した場合、信号線340を介して他のサーバに対して問合せを行ない、他のサーバがプリンタ4の使用に対する保留中の要求を持っているかどうかが判定される。もし他のサーバが保留中の要求を持っている場合、第1サーバはプリンタに対する制御を一時的に放棄し、これにより各々のサーバによる周辺機器の交互使用が可能になる。この場合、第1サーバは、プリンタに対する制御を放棄しても、自分がプリンタの使用に対する保留中の要求を持っていることを信号で送信する。
4g. SAPSERVERを使用する単一ネットワーク・ノードからの複数サーバの公示
上述のように、NetWareは、各々の非ファイルサーバネットワーク・ノードからの単一ネットワークサーバがLANバス上でのそのサービスを公示することを可能にするだけである。しかしながら、非強制排除MONITORによって確立されたマルチタスク環境においては、NEB2によって2つ以上のネットワークサーバが与えられる。特に、NEB2は、ソケットサーバ(CPSOCKET)のサービスと同様にプリント・サーバ(CPSERVER、CRPRINTERあるいはCLPR)のサービスも提供する。SAPSERVERプログラム・モジュールによって、双方のネットワークサーバが、通常は各ノードからの単一ネットワークサーバだけの公示しかサポートされないLAN通信システムにおいて、単一ネットワーク・ノード(ここにでは、NEB)からのその諸サービスの公示をすることが可能になる。各々のクライアントサーバ(ここでは、CPSOCKETとCPSERVER)のサービスを交互に公示するNEB中の代用サーバ(すなわちSAPしているエンティティ)として動作することにより、SAPSERVERは上述の如き公示を遂行する。
【0166】
SAPSERVERは、そのクライアントの1つへ向けられたSAP同報通信要求を求めてネットワークを聴取し、そのクライアントのサーバタイプ、サーバ名、及び通信ソケット番号で応答を行なう。そしてこの応答によりクライアントは直接LAN通信を確立することができる、
図12はSAPSERVERのソフトウェア構造を説明するための図であり、図13はSAPSERVERのオペレーションを説明するフローチャートである。 図12に示されるように、SAPSERVERはソフトウェア階層において、ソフトウェアのアプリケーションレベルの位置されており、その結果、これは、ソフトウェアのSPXとIPXネットワークレベルと直接通信できる。SAPSERVERは、各々のクライアントの代用SAPエンティティとして働く。そして、本実施例のNEB2の場合には、SAPSERVERは、ボードの構成によって指定されるようなソケットサーバプログラムCPSOCKET及びプリント・サーバプログラムCPSERVERから成る。SAPSERVERは、また、“クライアント#N”で図示されているような、他のクライアントにも同様に機能するように構成することができる。
【0167】
図13に示されているように、マイクロプロセッサ216によってEPROM222からSAPSERVERプログラム・モジュールが引き出され、DRAM220に格納される。その後、マイクロプロセッサ216によってSAPSERVERプログラムのオペレーションが開始され、SAP独占同報を求めてSAP独占ソケットを聴取するためにこのプログラムが構成される(ステップS1301)。ステップS1302で、マイクロプロセッサ216によってEPROM222からCPSOCKETモジュールが引き出され、DRAM220に格納されて実行される。CPSOCKETプログラム・モジュールはCPSOCKETサービスの公示を行うべくSAPSERVERへ要求が発行する。これにより、標準SAPプロトコルに従って、SAPSERVERはCPSOCKETに対する周期的(たとえば1分間隔)な公示を開始する(ステップS1303)。
【0168】
ステップS1304で、マイクロプロセッサ216によってEPROM222からCPSOCKETモジュールが引き出され、DRAM220に格納され、実行される。CPSERVERは、CPSERVERサービスの公示をネットワーク上に行う要求をSAPSERVERに対して発行する。SAPSERVERによって、CPSERVERのサービスに対する周期的なSAP公示が開始され、且つCPSOCKETに対するサービスも公示され続ける。ステップS1305で示されるように、この公示は周期性を持って交互に行なわれる。
【0169】
ステップS1306によって、同報要求がSAP独占ソケットで受信されたかどうかが判定される(たとえばソケット番号453とする)。同報要求が独占ソケットで受信されてしまうまで、SAPSERVERは、CPSERVERとCPSOCKETのサービスの公示を単に周期的に且つ交互に出し続ける。しかしながら、同報要求が独占ソケットで受信された場合、次のステップS1307でSAPSERVERによって、その同報要求がそのクライアントのうちの1つのサービスに対する(ここではCPSOCKETまたはCPSERVERのサービスに対する)ものであるかどうかが判定される。同報要求がSAPSERVERのクライアントの1つに対するものではない場合、処理は単にステップS1305へ戻り、そこでSAPSERVERはそのクライアントに対する公示を間欠的に出し続ける。また一方で、同報要求がSAPSERVERのクライアントの1つに対するものである場合、処理はステップS1308へ進む。
【0170】
ステップS1308で、SAPSERVERは、独占ソケット番号453上でIPXパケットで応答する。このIPXパケットはそのクライアントのサーバタイプ、サーバ名及び通信ソケット番号を含む。また、このIPXパケットは、通信ソケットを指定し、その通信ソケットにより同報要求者がそのクライアントと直接的な通信を確立することができる。そして、SAPSERVERは、ステップS1305へもどり、その各々のクライアントに対する公示を周期的に交互に出し続ける。
【0171】
ステップS1309では、同報要求者は、ステップS1308で確立された通信ソケットを通して同報要求で指定されたクライアントとの直接的なSPX接続を確立する。本構成において、プリント・サーバCPSERVERのサービスが要求される場合、そのソケット番号は8060である。また一方で、CPSOCKETサーバのサービス要求が行なわれる場合、そのソケット番号は通信に対しては83B4であり、接続に対しては83B5である。次いで、下記により詳細に説明するように、直接通信が進行する。
4h. CPINITを用いる、ネットワークされたプリンタ構成
図14は、NEBが常駐するNEB2とプリンタ4の双方を初期化し構成しかつその後再構成するために、ネットワーク管理者がPC14からCPINITをどのように使用することができるか示すフローチャートである。
【0172】
ステップS1401で、CPINITユーティリティはネットワーク上でプロトコルを公示するサービス(SAP)を使用し、ネットワークされたプリンタ装置のうちどのプリンタがCPINITの問合せに応答可能であるかが判定される。各NEBボードにおいて、CPSOCKETは、サーバタイプ、各NEBを直接アクセスすることを可能とするためのサーバ名とユニークなソケット番号、及びNEBがモジュールの構成を必要とするかどうかの指示でもって応答する。
【0173】
ステップS1402で、CPINITによって、すべてのNEB及びそれらの関連装置のリストが構築され、システム管理者が選択できるメニュー形式でそれらは提示される。選択に続いて、CPINITにより、ターゲットNEBの現在の構成が要求される(ステップS1403)。より明確に述べれば、CPINITによって、LANインタフェースを介してターゲットNEBへ要求が送信される。NEBで、構成情報に対する要求がLANインタフェースからCPSOCKETによって受信される。必要とされる構成情報がCPSOCKETによって収集され、LANインタフェースを介してシステム管理者のPC14上のCPINITへこの情報が向けられる(ステップS1404)。ステップS1405で、ターゲットNEBの現在の構成のメニューがCPINITによって表示される。ステップS1406からS1408において、システム管理者は、ターゲットボードに対する所望の構成を指定する。より詳細に述べれば、メニュー表示のようなユーザ・インタフェースによってシステム管理者のPC14上で構成が指定される。例えば、以下の構成パラメータがオペレータによって選択され、構成情報がセットされる。即ち、(1)ロギング情報(ステップS1406)、(2)NEB名(ステップS1407)、及び(3)アプリケーションタイプ(CPSERVERのような)(ステップS1408)である。
【0174】
ロギング情報の下で、システム管理者は、4つの異なるレベルのロギングのうち1つを指定する。この4つのレベルとは例えば、
“NONE”(ロギング無効)
“AUTO”(基本的なプリンタ利用統計値を1日当たり1回経過記録)
“ERROR”(基本的なプリンタ利用統計値及びエラー事象を、それらが発生したとき、経過記録する)
“JOB”(基本的な利用率プリンタ統計値、エラー事象及びジョブ開始/終了情報をすべて、それらが発生したとき、経過記録する)である。
【0175】
ログ選択を行なった後、システム管理者は、ログ情報を格納するためにプリンタのディスク上に(あるいは、プリンタにディスクがない場合にはNVRAM111上に、もしくはNEBのNVRAM228上に)最大ログサイズのスペースをプリンタが確保することを可能とするべく最大ログサイズ(“NONE”が選択された場合を除いて)を設定しなければならない。
【0176】
NEB名情報において(ステップS1407)、システム管理者は、“2ndFloor Laser”のような記述名のように、NEBに英数字名を割当ててもよい。この記述名は、NEBによってそのNVRAMに格納され、識別を助けるためにNEB及び他のネットワーク装置によって利用される。
【0177】
アプリケーションタイプ選択において(ステップS1408)、システム管理者は、NEBをCPSERVERとして構成するかあるいはCRPRINTERとして構成するかを選択する。CPSERVERが選択された場合にはシステム管理者が次の項目を指定する必要がある。即ち、NEBに割当てられたプリント・サーバ名、パスワード、アプリケーションバッファサイズ、待ち行列サービスモード、型番号、NEBが常駐するプリンタのプリンタ番号、NEBによってサービスされる印刷待ち行列名、及び第1ファイルサーバ名である。一方、CRPRINTERが選択された場合には、NEBがその印刷情報を得るプリント・サーバ名、NEBが常駐するプリンタのプリンタ番号、NEBによってサービスされる印刷待ち行列名、及び第1ファイルサーバ名をシステム管理者が指定する必要がある。
【0178】
ステップS1409で、CPINITはネットワークLANを介してNEBに新しい構成を送る。ターゲットNEBで、CPSOCKETは新しい構成情報を受信し、NVRAM228にそれを格納する(ステップS1410)。
【0179】
NEBの構成を完成するために、NEBはリブートされなければならない。システム管理者によって、CPINITを介してコマンドが送出され、このコマンドによってターゲットNEBへLANを介してリブートコマンドが順次送られる(ステップS1411)。NEBで、CPSOCKETは、リブートコマンドを受信し、新しい構成でNEBがリブートされる(ステップS1412)。
4i. CPCONSOLを使用するネットワークされたプリンタのアクセス
CPCONSOLは、システム管理者のPC14から実行されるユーティリティ・プログラムであり、これによって、NEBを使用し、ネットワーク接続されたプリンタを最大限にかつ効率的に制御することができる。CPCONSOLを使用することで、ルーチンおよび進行中の保守パラメータを遠隔地から追跡することが可能である。例えば、この追跡によって、トナーが不足しているか、用紙トレーが空になっているか、用紙が詰まっているか、あるいはプリンタが全く応答しないかを判定することができる。CPCONSOLによって、印刷ページ数合計を記録し、日常保守および予防保守のスケジュールをたて、同時に、プリンタの最終的交換を計画することも可能である。
【0180】
CPCONSOLユーティリティによって、プリンタ操作に関する統計値へのアクセスがシステム管理者に与えられ、同時に、ネットワーク通信の効率も与えられる。CPCONSOLによって、印刷ページ数の合計が判定され、同時に、1分当たりの平均印刷ページ率、1日当たりの平均印刷ページ数、及び、プリンタの作業効率のモニタを可能にする他の統計値も判定することができる。
【0181】
ネットワーク統計値によって、再実行、オーバラン、およびアンダーランのエラーと同様、ネットワーク上の通信効率(すなわち送受信エラー頻度)測定が可能になる。
【0182】
複数のプリンタがインストールされると、CPCONSOLは、総ページ数と同様総ジョブ数に関する各プリンタの使用状態を遠隔地から記録することができる。この機能により、消耗紙費用のような項目に対する直接部門別勘定のようなジョブトラッキングを行なうことが可能となる。
【0183】
進行中の作業をモニタすることにより、CPCONSOLはよりよい効率をもたらすようにネットワークプリンタを再配置すべきか追加べきかの決定支援を行なうことができ、同時に、プリンタ交換の必要性をも予測することができる。
【0184】
CPCONSOLによって、デフォルト(安全)環境パラメータを設定することもでき、このパラメータにより、各印刷ジョブに先立って、同じ方法によるプリンタ構成が保証される(セクション4mに後述)。ユーザは、もちろん、その印刷ジョブ自身の範囲内でその構成を変更することもできる。
【0185】
図15A及び図15BはCPCONSOLの動作を示す詳細なフローチャートである。CPINITと同様に、CPCONSOLによって、まず、LAN上で同報通信が行なわれ、LANに接続されたすべてのNEB装置の識別が要求される(ステップS1501)。NEBの装置において、CPSOCKETは、NEBに割当てられたユニークなネットワークID及び通信ソケット番号で応答する(ステップS1502)。CPCONSOLによって、すべてのNEB装置に対する応答情報が収集され、管理者へ応答NEB装置のリストが表示される(ステップS1503)。管理者によってNEB装置の1つが選択され、そこで、ネットワークIDとソケット番号に応じたLAN同報通信によって、選択されたNEBとの直接ネットワーク通信がCPCONSOLにより確率される。
【0186】
一度、ターゲットNEBとの直接LAN通信が確率されると、CPCONSOLはメニュー表示のようなユーザ・インタフェースによって作動する(ステップS1504)。このメニューによって、CPCONSOLの機能は5つのグループ、すなわち、環境、ネットワーク、ロギング、アプリケーション制御、及びプリンタ状態に分割される。これらの機能グループを下記のセクションで詳述する。
【0187】
[環境グループ(ステップS1505)]
この環境選択により、CPCONSOLが選択されたプリンタの現在の環境を表示し(ステップS1506)、この新しい環境の変更と格納が可能となる(ステップS1507)。この環境は、共通環境、インタフェース、制御、及び、品質の4つのグループに細分される。
【0188】
共通環境が選択されると、CPCONSOLによりターゲットNEBに対するLAN要求が開始され、エミュレーション・モード、フィーダ及びページ総数が設定される。ターゲットNEBのCPSOCKETによって、LAN要求が受信され、双方向SCSIインタフェースを介して接続されたプリンタから所望の情報が取得され、LANインタフェースを介して管理者のPC14のCPCONSOLにこの情報が送られる。ここで、CPCONSOLによって、エミュレーション・モード、フィーダ及びページ総数を示すリストが表示される。
【0189】
インタフェースメニューが選択されると、インタフェース情報に対するLAN要求がCPCONSOLによってターゲットNEBへ向け開始される。NEBが応答すると、CPCONSOLにより、この選択されたプリンタに現在セットされているインタフェース表示がインタフェースリストにより行なわれる。
【0190】
制御メニューが選択され、同じ様に、CPCONSOLによって、ターゲットNEBに対してLAN要求が開始され、プリンタ設定を行なうために双方向SCSIバスを介してNEBのプリンタへさらに問合せが行なわれる。このプリンタ設定は、LANインタフェースを通ってCPCONSOLへ戻され、表3に従うプリンタの現在の設定状態が表示される。
【0191】
Figure 0003592323
Figure 0003592323
Figure 0003592323
品質グループが選択されると、LANインタフェースを介してターゲットNEBに情報が要求され受信された後、CPCONSOLによって、選択モード、高精細モード、メモリ使用状況及び低解像度モードの設定が表示される。
【0192】
[ネットワーク・グループ(ステップS1508)]
ネットワーク選択により、CPCONSOLが、ネットワーク上のネットワークされたプリンタの性能に関する、編集された統計値の表示(ステップS1509)、新しいネットワーク・グループの変更と格納(ステップS1510)を行なうことが可能になる。これらの統計値は、媒体依存及び媒体非依存関連送受信統計値にさらに区分される。CPCONSOLによって、すべての統計値をクリアすることも可能である。
【0193】
システム管理者がネットワーク・グループを選択すると、CPCONSOLによって、LANインタフェースを介するターゲットNEBへのネットワーク要求が開始される。NEBにおいて、CPSOCKETはこの要求に応答し、必要な性能情報が得られる。この情報はCPSOCKETによって収集され、LANインタフェースを介して管理者のPC14のCPCONSOLへ戻される。管理者のPC14において、CPCONSOLによって媒体依存及び媒体非依存関連送受信情報が表示される。
【0194】
表4及び表5に媒体依存送受信統計値がまとめられている。
【0195】
Figure 0003592323
Figure 0003592323
媒体非依存統計によって、送信媒体とは関連のないネットワーク統計値が表示される。このような統計値はネットワーク上のプリンタの全体的な動作をよく要約しており、それは表6のようにまとめられる。
【0196】
Figure 0003592323
[ロギンググループ(ステップS1511)]
ロギンググループ選択により、NEBによって編集された1セットのジョブ関連統計値の表示(ステップS1512)、新しいロギンググループの変更と格納(ステップS1573)をCPCONSOLが行なうことが可能になる。表示されたデータにはジョブ平均、ページ平均及び性能データが含まれている。CPCONSOLは、このメニューで合計値をゼロにリセットすることもまた可能である。統計値に加えて、CPINITによって構成されているように、すべての印刷ジョブ用のログを作成したり、ワークステーションディスクへログを書込んだり、あるいは、ログ・ファイルを消去することが、NEBによって可能である。システム管理者がロギンググループオプションを選択した場合、CPCONSOLによって、LANインタフェースを介してログ・ファイルを求めるLAN要求がターゲットNEBへなされる。NEBにおいて、CPSOCKETによってこの要求が受信され、また、CPSOCKETによってプリンタ上にログ・ファイルが格納されるため、双方向SCSIインタフェースを介しプリンタからログ・ファイルが要求される。ログ・ファイルが格納されているいかなる(ディスク114のような)場所からでも、NEBによってこのログ・ファイルが検索され、双方向SCSIインタフェースを介してCPSOCKETへこのファイルが送られる。次いで、CPSOCKETによってこのログ・ファイルはLANインタフェースを介してネットワーク上に置かれ、CPCONSOLによって受信される。
【0197】
このログ・ファイルには、1日値、累計値、及び、平均値の3つのカテゴリーに分割される統計値が含まれている。1日値とは、今日の値を示す。累計値とは、最終リセット以来、又は、ディスク・ドライブなしでプリンタの電源が投入されて以来の合計を示す。平均値とは、累計合計値を最終リセット以来の日数で割った値である。3つのカテゴリーの各々に対して、下記の値の合計がNEBによって保持される(CPINITがロギングレベルを「NONE」にセットしない限り)。即ち、日数(リセットが送出されるか、あるいは、電源が投入されて以来の日数)と、印刷ページ数と、印刷ジョブ処理数と、オフライン時刻、及び、印刷時刻である。
【0198】
目視による確認と印刷のために、格納ログ・ファイルがCPCONSOLによって画面上に取り出される。ログ・ファイルは時間を遡るように整理されており、以下のレコードタイプが含まれている。表7に要約されるように、ログ・ファイルの正確な内容はCPINITによってセットされるロギングレベルに従って異なる。
【0199】
Figure 0003592323
[アプリケーション制御(ステップS1514)]
アプリケーション制御により、ネットワーク(CPSERVERあるいはCRPRINTERのいずれか)内のNEBの現在の構成を視ること(ステップS1515)、及び、このアプリケーションの起動/停止又は変更と格納がCPCONSOLによって可能になる(ステップS1516)。ターゲットNEBへのアクセスは、結果コードをLANインタフェースに出力することによって、CPCONSOL要求に応答するLANインタフェースを介して行なわれる。
【0200】
[プリンタ状態(ステップS1517)]
このメニューによって、NEBに接続されたプリンタの現在の状態表示(ステップS1518)、新しいプリンタ状態の変更と格納をCPCONSOLが行なうことが可能になる(ステップS1519)。CPCONSOLは、LANインタフェースを介してターゲットNEBに対して状態要求を行なう。ターゲットNEBでは、CPSOCKETが、状態要求を受信し、プリンタに対して双方向SCSIインタフェースを介して必要な状態情報を求める要求を送信する。CPSOCKETは、双方向SCSIインタフェースを通してプリンタから状態情報を受信し、この情報をCPCONSOLに戻し、このCPCONSOLで、この情報はシステム管理者のPC14上に表示される。
【0201】
29の可能な状態状況があり、表8に要約されるように“NORMAL”が最も普通のものである。
【0202】
Figure 0003592323
Figure 0003592323
Figure 0003592323
Figure 0003592323
4j. CPSOCKETを用いた状態問合せへのNEB応答
CPSOCKETとは、非強制排除モニタによって提供されるマルチタスクのソフトタイム環境において、NEB2上のDRAM220から実行されるアプリケーション・プログラムである。CPSOCKETは、CPINIT、CPCONSOL及びDOWNLOADERのようなクライアントプログラムから同報通信を行なうために、SAPSERVERにLAN上の同報通信ソケットをモニタさせる。
【0203】
CPSOCKETは、PSERVER又はRPRINTERのいずれかのような構成のNEBの内部構成に対して応答可能である。上述のように、CPINITの要求に対して構成設定がなされるが、その構成コマンドを受信し、NVRAM228を物理的に変更するのは、CPSOCKETである。
【0204】
また、CPSOCKETよって、装置環境(すなわち保証された安全環境のことであり、セクション4mに後述)を示すデフォルト設定値の表が保持されており、装置の電源投入時にプリンタ及びNEBに対する基本的な構成情報(例えば、フォント及びエミュレーション)がダウンロードされ(セクション4d参照)、CPCONSOL要求に応じて装置状態情報、統計値及びログ情報を提供し、また、リセット、リブート及びファームウェアダウンロード能力が設けられている。
【0205】
図16Aと図16Bは、CPSOCKETプログラムの動作を示す詳細なフローチャートである。ステップS1601では、電源投入自己検査(POST)が首尾良く行なわれた後、マイクロプロセッサ216により、CPSOCKETプログラム・モジュールがEPROM222の中のその格納位置からDRAM220の適切な格納位置へと転送される。転送中、マイクロプロセッサ216によって、NVRAM228に格納されたCPSOCKETプログラムに対する構成情報に従い、CPSOCKETプログラムが構成される。したがって、例えば、所望のレベルの複雑度に従ってCPSOCKETプログラム・モジュールの一定部分を選択的に起動させることが可能となり、これら所望のレベルの複雑度の情報はNVRAM228に格納される。
【0206】
ステップS1602で、NEBは、DRAM220からCPSOCKETの実行を開始する。CPSOCKETは、マルチタスクのソフトタイム環境において非強制排除MONITORによって実行され、このMONITORにより、他のアプリケーション・プログラムの排他に対するマイクロプロセッサの制御を、1つのアプリケーション・プログラムに掌握させることなく、CPSERVERのような他のアプリケーション・プログラムを非強制排除的に実行させることができる。
【0207】
ステップS1603で、独占ソケット番号を含むサービス公示プロトコル同報通信(SAPSERVER)を介して、LANインタフェース上で、CPSOCKETによってその存在が同報される(セクション4g参照)。他のサーバがステップS1602で設定されたマルチタスク環境においてオペレーションを行なっているため、また、NetWare(商標)互換ソフトウェアのみによってただ一つの非ファイルサーバのサーバがNEBのような単一ネットワーク・ノードから公示することができるために、CPSOCKETによってSAPSERVERプログラムを介してそのSAP公示が同報通信される。上記パラグラフ4gで詳しく説明したように、ネットワークが各ネットワーク・ノードに対して1つのサーバしかサポートしていない場合であっても、2つのネットワークサーバが単一ネットワーク・ノードから同報通信を行なうことがSAPSERVERプログラムにより可能である。
【0208】
ステップS1604で、CPSOCKETによって、クライアント(例えば、独占ソケット453上のCPINITやCPCONSOL)から同報通信要求が受信される。CPSOCKETは、同じソケット上のIPXパケットでクライアントに応答する(ステップS1605)。
【0209】
ステップS1606で、クライアントによって、CPSOCKETに予め割り当てられるソケット番号を用いてCPSOCKETと直接SPX通信が確率される。ここでは、ソケット番号を通信用として83B4、接続用として83B5とする。この直接接続に従って、クライアント要求及び/またはLANインタフェースで受信されるコマンドが、CPSOCKETによって受信され、解釈され、双方向SCSIを通してプリンタ状態がモニタされ、双方向SCSIインタフェースを介して状態コマンド及び/またはプリンタに対する問合せが送受信され、NEB及びNEB構成パラメータが再構成され、要求情報がLANインタフェースを介してクライアントへ送られる。これらのステップを、図16A及び16BのステップS1607からS1620に関連して、以下更に詳しく説明する。
【0210】
即ち、ステップS1607において、CPSOCKETによって構成コマンドが受信されたと判定されると、処理はステップS1608へ進み、そこで、構成コマンドが実行され、その結果がLANを介してクライアントへ伝えられる。構成コマンドを表9に示すが、これらの構成コマンドは一般に、CPINITプログラムによって起動された構成コマンドに従うCPSERVER又はCRPRINTERのいずれかとしてNEBボードの構成に関係するものである。
【0211】
Figure 0003592323
ステップS1609で、CPSOCKETによって装置情報コマンドが受信されたと判定されると、処理はステップS1610へ進み、これらの装置情報コマンドが実行され、その結果がLANインタフェースへ伝えられる。一般に、装置情報はインタフェース、制御状態、フォント設定及びNEB2に接続されたプリンタ4の環境設定値に関係する。ステップS1610の装置情報コマンドにより、プリンタ装置情報の読取り、プリンタ装置情報の設定、その情報に対するデフォルト設定値の読取り、デフォルト設定値の所望値へのリセットを行なうことが可能になる。装置情報コマンドを表10に詳述する。
【0212】
Figure 0003592323
Figure 0003592323
Figure 0003592323
Figure 0003592323
ステップS1611で、CPSOCKETによって構成パラメータコマンドが受信されたと判定されると、次いでステップS1612に進み、CPSOCKETによって受信されたコマンドが実行され、その結果がLANを介してクライアントに提供される。表11に示されるように、構成パラメータコマンドは一般に、時刻、日付、安全プリンタ環境情報、ロギングオプション、ログ・ファイルサイズなどに関するNEBに格納されたパラメータ値に関係するものである。
【0213】
Figure 0003592323
ステップS1613で、CPSOCKETによってNEBアプリケーション・プログラムコマンドが受信されたと判定されると、処理はステップS1614へ進み、ここで、CPSOCKETにより現在のアプリケーションプログラム、即ち、RPRINTER、PSERVER又はLPR(Unix用)等についての情報が提供される。表12に詳述されるように、アプリケーション・プログラム情報には一般に、サーバ名、ファイル・サーバ待ち行列、装置ID等が含まれる。
【0214】
Figure 0003592323
ステップS1615(図16B)で、CPSOCKETにより、NEB/プリンタ統計コマンドが送出されたと判定されると、処理はステップS1616へ進み、CPSOCKETによって双方向SCSIインタフェースを介してプリンタに問合せが行なわれ、必要なプリンタ統計値が得られる。この統計値は、印刷総ページ数、ジョブ総数、オフライン時間合計等のような印刷ジョブ統計値と同様に、CPCONSOLと関連する上記ネットワーク・グループ表示に対応する。このジョブ統計値はCPCONSOLプログラムと関する上記ロギンググループに対応する。NEB/プリンタ統計コマンドで実行されるコマンドの具体的な例を、表13に記す。
【0215】
Figure 0003592323
ステップS1617で、CPSOCKETにより、ロギングコマンドが受信されたと判定されると、処理はステップS1618へ進み、CPSOCKETによって双方向SCSIインタフェースを介してプリンタディスク114からログ・ファイルが得られ、LANインタフェースを介してクライアントにこのログ・ファイルが送られる。ロギングコマンドを表14に要約する。
【0216】
Figure 0003592323
ステップS1619で、CPSOCKETによって、ダウンロードコマンドがLANインタフェースから受信されたと判定されると、処理はステップS1620へ進み、ここで、CPSOCKETによってダウンロード要求が実行される。この要求の実行は、例えば、ダウンロード可能なコードが受信され、それがDRAM220の特定のロケーションに格納され、ダウンロード可能なコードに対するチェックサムデータが提供され、ダウンロード可能なコードがEPROM222にフラッシュされることによって行なわれる。より重要なダウンロードコマンドのうちのいくつかを表15に要約する。
【0217】
Figure 0003592323
4k. ロギング周辺機器統計
図5Aを参照して先に説明したように、ステップS9からS12には、周辺機器統計値(例えば、一日当り印刷ページ数)とエラー事象を後の検索のために自動的にログ(格納)する自動ロギング機能を有し、また、ロギングレベル(統計的分析力)をネットワーク管理者が変更することができる。普通、ネットワーク管理者は、ロギングレベルを選択し、次いで、ログ・ファイルからいつでもプリンタ統計値及びエラー事象を引出すことができる。ネットワーク管理装置の機能部分をパラグラフ4iで説明したが、そこで述べられた議論及び表、特にCPINITによって設定されるロギングレベルに依拠するログ・ファイルの内容を示す表7、を参照する。
【0218】
背景を考えると、LAN周辺機器には自分の統計値がほとんど保持されていないが、NEB2は毎日午前0時にプリンタ4のカレント状態及び1日統計値をロギングする能力をもっている。この能力のおかげで、システム管理者は、忘れずに毎日ロギングを行なう必要から開放される。この状態及び統計データはプリンタのハードディスク114、プリンタのNVRAM111、NEBのDRAM220、あるいはNEBのNVRAM228に格納される。ネットワーク管理者は、各記憶装置の残存記憶容量によって、また、ネットワーク管理者が選択したロギングレベルによって必要とされる統計値によって、格納ログ・ファイルのロケーションを選択することができる。例えば、プリンタにハードディスクがある場合には、かなり詳細な“JOB”ロギングレベルを選択することで、ネットワーク管理者は多量の統計値を保持することができる。一方、プリンタにハードディスクがない場合は、それほど詳細でない“ERROR”ロギングレベルを選択することによって、多くの記憶空間を必要としなくて済む。ログ・ファイルが一杯になった場合は、古いエラー・データは新しいエラー・データに更新されることによって、新しいエラー・データが記憶装置の中で単に循環しているにすぎない。
【0219】
後でシステム管理者がアクセスできるように、印刷ページ数、印刷ジョブ数、オフライン時刻及び印刷時刻のようなプリンタ統計値は毎晩NEBによって自動的に格納される。この統計を用いることによって、トナーのようなプリンタ消耗品の交換を予測したり、長時間プリンタをオフラインのままにしておくというようなユーザの行動をモニタすることができる。
【0220】
一般に、ロギング機能は、常に時刻を知っているプリンタ制御ボードによって遂行される。プリンタ/制御ボードにまず電源が投入されると、ボードは最も近くのサーバを見つけ、その時の時刻を問合せる。ボードは1分毎にこの問合わせをし続ける。日付が変ると、ボードはプリンタにそのページ数を報告するよう自動的に要求する。次いで、ボードは1日の統計値を計算し、プリンタのハードディスク又はボードNVRAMのいずれかにその統計値を格納する。これらの統計値は格納され、外部ネットワークプログラムCPCONSOLで利用可能となって、これらの統計値の画面表示や外部ファイルへの保存が可能となる。
【0221】
パラグラフ4iにおいて説明したように、ネットワーク管理者は次の4つのロギングレベルを選択することができる。即ち、NONE、AUTO、ERROR、及びJOBである。まず、NONEレベルでは、ロギング統計値は保持されない(それでも、ロギング統計値を1分毎に計算し、一時的にNEBのDRAM220に保存することはできるが)。AUTOレベルでは、印刷の日付、ページ数、ジョブ数、オフライン時刻、及び印刷時刻のような1日の統計値が、プリンタ機能のために保持される。累計印刷ページ数はプリンタによって決定されるが、他の統計値はNEBにより決定される。
【0222】
ERRORロギングレベルでは、上述の1日の統計値、プリンタ内のエラー状態、またアプリケーション(つまりCPSERVER)内で発生するエラーも保持される。NEBは1分毎にこのようなエラー状態をプリンタに問合せる。このようなプリンタエラー状態の中には、オフライン、用紙切れ、プリンタカバーオープン、紙詰まり、トナーカートリッジなし、トナー不足、プリンタフィード及びロードエラー、トレーフル、ラインエラー、印刷ジョブ拒否、フォントフル、サービスコール等が含まれる。アプリケーションエラーには、ファイルサーバダウン、主ファイルサーバ利用不能、CPSERVERが他で実行中、IPX未インストール等が含まれる。
【0223】
JOBロギングレベルには、上記の1日の統計値及びエラー状態が保持され、また、NEBにより決定されるジョブ開始とジョブ終了情報も同様に保持される。もちろん、ロギングレベルの数とタイプ、及び、各ロギングレベルに保持されるデータを、特定の周辺機器及びNEBがインストールされている特定のLANに従って変更してもよい。
【0224】
図17Aと図17Bは、NEB内の自動ロギング機能の全体的な動作を示すフローチャートである。図5及び表7を参照して説明する。ステップS1でNEBに電源が投入され、ステップS8でタイマモジュールが最も近くのサーバを見つけ、時刻を問合せる。ステップS1701において、NONEロギングレベルが選択されているか否かが判定される。NONEロギングレベルが選択されている場合、処理はフローチャートの最後へスキップされ、図5A、5B、5Cの全フローチャートへ復帰が行なわれる。
【0225】
ステップS1701においてNONEロギングレベルが選択されていない場合、ステップS1702でAUTOロギングレベルが選択されているか否かが判定される。AUTOロギングレベルが選択されている場合、処理はS9へ進み午前0時になるのを待つ。しかし、AUTOロギングレベルが選択されていない場合、ステップS1703によってERRORロギングレベルが選択されているか否かが判定される。ERRORロギングレベルが選択されている場合、処理はステップS1706へ進み、ここで、一分間のタイムアウト待機が行なわれる。しかし、ERRORロギングレベルが選択されていない場合、ステップS1704でJOBロギングレベルが選択されたか否かが決定される。この場合、ステップS1705において、ジョブ開始とジョブ終了時刻がログ・ファイルへ格納される。ステップS1706で、一分間のタイムアウト待機が行なわれ、その後、ステップS1707で、エラー事象に対する問合せがプリンタに行なわれ、そのような事象がログ・ファイルへ保存される。したがって、ERROR又はJOBロギングレベルのいずれかが選択されている場合には、ボードは1分毎にエラー事象をプリンタに問合せ、このようなエラー事象はログ・ファイルは格納される。
【0226】
ステップS9では午前0時になるのを待ち、NEBはプリンタにステップS10(図15B)の1日の統計値を問合せる。ステップS9において、まだ午前0時に達していない場合、処理手順はステップS1702へ戻り、ここで、どのロギングレベルが選択されているかが判定される。
【0227】
ステップS11において、1日のプリンタ統計値が、ステップS10で受信したプリンタ統計値を利用して計算される。その後、ステップS12で、1日の統計値量及びエラー事象がプリンタのハードディスク114及び/又はプリンタNVRAM111、及び/又はNEBのNVRAM228に格納される。ここで、ネットワーク管理者が、任意の組合わせのメモリにロギング統計値及びエラー事象を格納するように選択でき、LANに一層の柔軟性が与えられることに注目されたい。
【0228】
プリンタをLANの対話型応答可能構成メンバとする際に、上述のロギング機能は極めて重要である。というのは、NEBとプリンタ間のSCSI接続によって、プリンタから多量の特定データを引き出すことが可能となるからである。
4l. マルチタスクで独立に実行可能なプログラム
図5BのステップS20に関して先に簡単に説明したように、NEBのEPROM222によってMONITORプログラムが格納され、このプログラムは、デバッグ環境において同期操作を可能にしながら、一方でランタイム環境においてマルチタスキングをサポートするメカニズムである。(CPSERVER又はCPSOCKETを求めて)LANからの実時間割込みをNEBが待つ間、あるいは、SCSIインタフェースを介する実時間割込みをNEBが待つ間(例えば、LANから以前に受信された状態要求に応じて、状態情報がプリンタからNEBに送られているとき)、非強制排除処理で現在呼出されているタスクを実行することがMONITORによって可能になる。このようにして、マイクロプロセッサ216の共用して、現在実行中のすべてのタスクを同時実行することがMONITORによって可能となる。もちろん、ソフトタイムアプリケーションはすべて(MONITOR自身を含めて)実時間事象により割込可能である。
【0229】
図18は、NEB内でのマルチタスキングオペレーションを示すために起こり得る事象シーケンスを概念的に示すフローチャートである。ステップS1で、NEBに電源が入り、ステップS1801で、EPROM222からDRAM220へMONITORプログラムがダウンロードされる。例えば、以下のモジュールがMONITORと共にダウンロードされる。即ち、SCSIドライバ、リンクサポートレイヤ、ネットワークドライバ、プレスキャン、IPX/SPX、カスタマイズされたNETX、SAPSERVER、CPSOCKET、及び、印刷アプリケーションである(図6を参照)。
【0230】
ステップS1802で、印刷データがファイルサーバ30から受信される場合、CPSERVERは、プリンタ4への転送のための準備として受信ジョブデータを処理し始める。このような印刷情報の処理はこのとき“ソフトタイム”環境で行なわれ、ステップS1803では、印刷データを処理するプログラムから割り込み放棄が受信されているか否かを判断する。ステップS1803で、割込み放棄になると現在実行中のモジュールの実行が中断され、ステップS1804で、制御はMONITORに返される。MONITORによってDRAM220で割込まれたタスクの状態が保存される。しかし、ステップS1803で、割込み放棄に達しなかった場合、処理はステップS1805へ進み、現在実行中のモジュールが終了したか否かが判断される。ステップS1805でこのモジュールが終了していない場合は、ステップS1803で、このプログラムは別の割込み放棄に達するのを待つ。
【0231】
ステップS1804で、現在実行中のモジュールが中断された場合、あるいはステップS1805で、現在実行中のモジュールが終了した場合、ステップS1806で、別のソフトウェアモジュールの実行を要求するデータが受信されたか否かが判断される。例えば、このデータは、これまで出されたプリンタ状態に対する要求に応じてSCSIインタフェースで受信される。ステップS1806で、このようなデータが受信されたと判断されると、ステップS1807では、新しく受信されたデータを用いて別のアプリケーションモジュールの実行を始める。
【0232】
ステップ1808で、第2アプリケーションモジュールにおいて割込み放棄に達したか否かが判断される。このような割込みに達した場合、ステップS1809において、第2アプリケーションは実行が中断され、制御はMONITORに移り、割込んだばかりの第2モジュールの状態がDRAM220に格納される。しかし、ステップS1808で、第2モジュールにおいて割込み放棄に達しない場合は、ステップS1810で、第2モジュールが終了したか否かが判断される。終了していない場合、ステップS1808でプログラムは割込み放棄を単に待つ。ステップS1810で、第2モジュールが終了されたことが判断される場合、ステップS1811で、第1モジュールが終了されたか否かを判断する。第1モジュールは終了していないが、第2モジュールが終了している場合、プロセスは、第1アプリケーションモジュールの割込み放棄を待機するステップS1803に戻る。ステップS1811で、第1及び第2モジュールが終了に達すると、別の新しく受信されたソフトタイムタスクを実行するために、制御はMONITORプログラムに戻される。
【0233】
第2アプリケーションモジュールで割込み放棄に達したためにその実行が中断された後、制御はMONITORに移され、MONITORでは割込まれたモジュールの状態をDRAM220に格納した(ステップS1809)後、ステップS1812で、実行を再び始め、ステップS1803で第1モジュール割込み放棄に達するまで、第1モジュールの実行を継続する。
【0234】
このように、マイクロプロセッサ資源の非強制排除マルチタスク割り当てにより、ほぼ実時間ベースで並行していくつかのタスクを処理することが可能となる。
4m. デフォルト構成でのプリンタ配置
図5CのステップS25に関して上述したように、印刷ジョブの開始時及び終了時には、NEBによりプリンタは、既知のデフォルト構成に設定されることが保証される。プリンタの不揮発性メモリ(ハードディスク114又はNVRAM111のいずれか)に、印刷ジョブ終了時にプリンタが置かれるデフォルト環境(例えば、ポートレートモード、10ポイントタイプ、ローマ字等)を示すデフォルト構成コードをダウンロードすることによって、NEBはこの設定を行なう。LANから印刷データストリームが受信されると、NEBによって、プリンタの不揮発性メモリから構成コードが検索され、1ブロックの印刷データにエスケープ・シーケンスとしてこの構成コードが追加され、次いで、追加されたエスケープ・シーケンスと共にこの印刷ジョブブロックがプリンタへダウンロードされる。次いで、プリンタによって印刷作業が処理され、(そのエスケープ・シーケンスに基いて)プリンタが所望のデフォルト構成に置かれる。
【0235】
ノーベル社のNetWare(商標)ソフトウェアは、全ての印刷ジョブ後に、ネットワークプリンタをデフォルト環境にリセットする機能を有している。このリセットは、印刷ジョブの先頭で結局は架空の印刷ジョブになるジョブをファイルサーバ30にインストールすることによって行なわれる。しかし、特定のプリンタデフォルト構成を設定するのに不可欠な正確なプリンタエスケープ・シーケンスは、ネットワークのデータベースに常駐し、プリンタ自体の内部にはない。したがって、LAN上で、あるいは、ファイル・サーバ自体に問題があるところでUNIXを動作させたい場合、既知の構成のプリンタで次の印刷ジョブを印刷すことを保証するデフォルト構成へプリンタを復元しなくてもよい。
【0236】
NEBを用いてプリンタデフォルト環境を保証する方法は、プリンタリセット状態構成及び必要エスケープ・シーケンス命令がプリンタ自体の中に常駐するという相違に基づいて行なわれ、プリンタ自体が印刷ジョブ内のプリンタ環境のリセットに責任を負うというものである。従って、このプリンタリセット機能はプリンタ外部のどんな装置にも依存せずに利用することができる。更に、初期デフォルト構成をロードし、それに続いて、NEBのシリアルあるいはパラレルインタフェースを介してLAN上で遠隔地からこの初期デフォルト値を変更してもよい。
【0237】
セクション4iで上述したように、この構成コードをCPCONSOLプログラムを介してNEBに送ってもよい。
【0238】
LAN上でプリンタを使用するための高い柔軟性をネットワーク管理者に与えるために、複数のデフォルト構成をプリンタの不揮発メモリーに格納させると便利であろう。例えば、技術部門から受信された印刷ジョブではプリンタがポートレートモードに省略値をとることが必要とされるのに対して、経理部門から受信された印刷ジョブではプリンタを帳票モードにしておくことが必要とされる場合もある。したがって、既知のデフォルト環境を保証することによって、いくつかのLANソースのうちのいずれであっても、その特定のジョブのためにこのプリンタを利用することができる。
【0239】
図19は、プリンタデフォルト構成を設定するためのより詳細なフローチャートを示す。ステップS1で、NEBに電源が投入され、ステップS22で、NEBは動作可能となった印刷待ち行列のためLANのファイル・サーバにアクセスし、DRAM220へ印刷データをダウンロードする。
【0240】
プリンタの不揮発性メモリに2つ以上のデフォルト構成コードが格納されている場合、プリンタが置かれるべきデフォルト構成がどれかを判定するために、どんなタイプのデータがLANから転送されているかをまず判定しなければならない。したがって、ステップS9101で印刷ジョブのLANソースを調べ、また、ステップS1902でプリンタから適切なデフォルト構成コードが検索される。このコードは判定されたLANソースに対応する。
【0241】
ステップS1903で、NEBによって数ブロックのイメージデータがアセンブルされ、各印刷ジョブに対して印刷ジョブの開始及び印刷ジョブの終了が指定される。ステップS1904で、NEBのマイクロプロセッサ216によって、検索された構成コードに対応するエスケープ・シーケンスが印刷ジョブに追加される。好適には、エスケープ・シーケンスは、印刷ジョブの開始時に追加されることが望ましいが、印刷ジョブの終了時、あるいはジョブの開始時と終了時の両方に追加されてもよい。次いで、ステップS1905で、エスケープ・シーケンスが追加されたこの印刷ジョブがプリンタへ転送され、次いで、プリンタは受信された印刷ジョブに従って印刷を行なう。ステップS24の後、印刷ジョブが完了すると、ステップS25で、プリンタはデフォルト環境にセットされる。この環境は、ステップS1902で検索されたデフォルト構成コードに対応する。その結果、既知の構成のプリンタで次の印刷ジョブが始まることを保証するデフォルト環境にこのプリンタは置かれることになる。
【0242】
このようにして、プリンタ自身がデフォルト構成を格納し、かつ、各印刷ジョブの終了時に、プリンタが自身をデフォルト状態にすることに責任を負うことを保証するため、強固で効率的なハードウェア及びソフトウェアによる解決策が得られる。
4n. 遠隔LANからNEBへの実行可能ファイルのダウンロード
LANからDRAM220への実行可能ファイルのダウンロードに関して、図20のフローチャートと図5CのステップS30の上記の説明に関連して、より詳細な説明を行なう。
【0243】
NEB2は出荷に先立ち最初に構成される。しかし、ネットワーク管理者のPC14からNEB2へLANを通して、最新の実行可能ファイルを送ることにより、その後NEB2を再構成することが可能である。更に、ネットワーク管理者は任意に、NEB2のDRAM220に格納された実行可能ファイルを遠隔地から変更することもできる。
【0244】
実行可能ファイルをDRAM220内で変更することができる処理を図20に関連して詳細に解説する。
【0245】
ステップS1でボードに電源が投入された後、処理はステップS2001へ進み、ここで、ネットワーク管理者はDOWNLOADERプログラムを起動し、特定の構成を持つすべてのNEB装置のIDを求める要求をLAN上で同報通信し、処理はステップS2002へ進む。
【0246】
ステップS2002において、なんらかのターゲットNEBから応答があったか否かがDOWNLOADプログラムによって判定される。ステップS2002で、ターゲットNEBから何も応答がないと判定されると、処理はステップS2001へ戻り、そこで、DOWNLOADプログラムによって新しいターゲット情報を持つ要求が再び同報通信され、次いで処理はステップS2002へ進む。ステップS2002で、ターゲットNEBから応答があった場合、処理はステップS2003へ進む。
【0247】
ステップS2003で、SAPSERVERプログラムは、各NEBに割当てられたユニークなネットワークID及びユニークなソケット番号を用いて応答する(セクション4gを参照)。このロケーション情報は収集され、ネットワーク管理者は特定のNEBを選択して実行可能ファイルをダウンロードし、ターゲットNEBとの通信が確率される。
【0248】
ターゲットNEBを選択すると、ステップS2004で、ネットワーク管理者は新しいオペレーションファイル、及び、チェックサム値が含まれている特定のパケットをLANを通してDRAM220へダウンロードし、そこで処理はステップS2005へ進む。
【0249】
ステップS2005で、マイクロプロセッサ216は新たにロードされたオペレーションファイル上でチェックサムオペレーションを実行し、このチェックサム値を特定のパケットで送られたチェックサム値(オペレーションファイルが格納された後、DRAM220に格納されたもの)と比較する。
【0250】
このチェックサム値が特定のパケット内のチェックサム値と等しくない場合、処理はステップS2006へ進み、ここで、新しいオペレーションファイルのためのチェックサム値が不正確であることがネットワーク管理者に通知され、マイクロプロセッサ216によりDRAM220からこのファイルが除去される。
【0251】
ステップS2006でチェックサム値が検査されると、処理はステップS2007へ進み、マイクロプロセッサ216によって実行可能ファイルが起動される。
【0252】
このように、ネットワーク管理者は、新しいオペレーションファイルを遠隔から送ってDRAM220に格納しそこから実行することによって、NEB2のオペレーションを変更することができる。
4o. 独立実行可能なモジュールのROMへのロード
ステップS32に関連して図5Cで説明したように、バイナリROMイメージがEPROM222にロードされるものであるなら、複数の独立実行可能モジュールがアセンブルされ、順序づけされて、EPROM222へフラッシュされる準備が行なわれる。モジュールのアセンブリ及び順序づけは、すぐにDOSのPC上で実施されるが、NEB自身の中で行なうこともできる。PC内で独立実行可能なモジュールをアセンブルする利点として、モジュールをDOS環境で構築でき、かつ/または、変更できる点がある。
【0253】
NEBファームウェアにはいくつかの別個にリンクしたモジュールが含まれているが、そのうちの1つには、電源投入時の制御受信、自己検査、DRAM220への他のモジュールのローディング、及び基本的入出力サービス(BIOS)を行なうROM常駐コードが恒久的に含まれている。EPROM222内に常駐する他のモジュールは、実行前にDRAM220にコピーされなければならない。このようなモジュールには2つのタイプがあり、そのうちの最初のものは、本質的にドライバであるプログラムが含まれる。これは、常駐のままで、ロードされたとき制御を受信し、初期化し、次いで、抜け出るプログラムである。このようなモジュールの2番目のタイプは、アプリケーション・プログラムであり、このアプリケーションプログラムのそれぞれは特定のセットの機能を実行する。
【0254】
図21において、ステップS1でNEBに電源が投入される。ステップS2101で、PC内に常駐するユーティリティによって、ROMイメージにセットされる全モジュール名を含む構成ファイルがPCのRAMから読取られる。ステップS2102で、EPROM222にフラッシュされることになる複数モジュールをRAMから選択するために、構成ファイルが使用される。
【0255】
ステップS2103で、最初のモジュールのためのヘッダがユーティリティによって書込まれる。このヘッダはこのモジュールを識別し、モジュール属性を記述し、すぐ後に続くモジュールを指定するポインタを含むものである。このポインタは、ローディングに先立ち、ある特定順序でモジュールの順序づけを行なう際の支援ポインタである。ステップS2104で、構成ファイルによって識別された最後のモジュールが選択されたか否かが判定される。最後のモジュールがまだ選択されていない場合、処理はステップS2103へ戻り、ヘッダが次のモジュールのために書込まれる。
【0256】
ステップS2104で、最後のモジュールが選択されと、ユーティリティによってイメージプログラムの最後にROM常駐コードが追加され(ステップS2105)、その結果、電源投入の際、初期化コードはマイクロプロセッサ216によって期待されるアドレスに常駐する。
【0257】
ROMバイナリイメージがこのように構築されると、このイメージはNEBのDRAM220の記憶領域の一部分にダウンロードされ、次いで、EPROM222にフラッシュされる。以下、セクション4qで、図5CのステップS36に関してより詳しく説明する。
4p. フラッシュオペレーション時のEPROMの保護
図22は、NEBに常駐のEPROMフラッシュ保護回路の機能構造を示すブロック図である。EPROMフラッシュ保護回路には、データ・バス250及びアドレス・バス251に接続されたマイクロプロセッサ216が含まれる。また、データ・バス250及びアドレス・バス251にはDRAM220が接続されている。DRAM220はその記憶領域の一部分に、遠隔のLAN装置からダウンロードされたROMファームウェアイメージを格納することが可能であり(セクション4oを参照)、アプリケーション・プロセスはDRAM220の記憶領域の別の部分へ進む。また、EPROM222、ラッチ252及びPAL253がデータ・バス250及びアドレス・バス251に接続されている。Dタイプフリップフロップ254はラッチ252及びPAL253に接続されている。オペレーション時に、フリップフロップ254は、そのクロック入力としてPAL253からの出力信号を、またそのデータ入力としてラッチ252からの出力信号を受信する。ラッチ252及びPAL253は、また、DC−DCコンバータ212に接続し、DC−DCコンバータ212はトランジスタスイッチ255に接続している。ラッチ252によって起動されると、DC−DCコンバータ212は、トランジスタスイッチ255の入力エミッタに+12V(ボルト)を送る。フリップフロップ254は、また、トランジスタスイッチ255にも接続され、開閉スイッチ255に不可欠な入力を供給する。
【0258】
EPROMフラッシュ保護回路のオペレーションについて、図22を参照してより詳細に説明する。電源が投入されると、ラッチ252の出力は低くなり、フリップフロップ254はリセットされる。このようにして、ラッチ252からの出力信号PROG1は低くなり、DC−DCコンバータ212からの電圧は、接地状態になるまで電流を低下するようにされる。電源投入時に、フリップフロップ254がリセットされ、その結果、その出力が低くセットされて、トランジスタスイッチ255が開く。
【0259】
トランジスタスイッチ255が開いた状態になって、EPROM222のVppピンが0Vに保たれ、データの受け入れやフラッシュオペレーションの実行が阻止される。すなわち、フラッシュオペレーションがEPROM222内で起こるためには、Vppピンは少なくとも+11.4Vのレベルに達していなければならない。なぜなら、このレベルは、EPROMメーカの仕様により設定された必要条件であるからである。しかしながら、この電圧レベルを達成するために、以下の2つのプログラミングステップが要求される。
【0260】
まず、DRAM220で新しいROMファームウェアパッケージが受信されると、データビット7をハイ“80(16進表示)”でアドレス“360(16進表示)”に入出力書込みを行なうことにより、EPROM222にフラッシュせよというコマンドがマイクロプロセッサ216によって受信される。このようにして、DC−DCコンバータ212に最初にスイッチを入れてもよい。
【0261】
表16と表17に示すように、アドレス“360(16進表示)”は、NVRAM228へのリードライトオペレーションを制御するために使用される制御レジスタ230に対応する。表17に示すように、アドレス“360(16進表示)”がビット7のハイ/ローで送られる場合、このアドレスはDC−DCコンバータ212のオペレーションに対応する。
【0262】
Figure 0003592323
Figure 0003592323
アドレス”360(16進表示)”が出力された後、マイクロプロセッサ216によって入出力書込みコマンドが生成され、書込み選択がPAL253へ送られる。PAL253によって有効アドレスが検出され、解読され、ラッチ252が起動される。アドレス”360(16進表示)”のビット7にハイがセットされているため、PROG1信号はハイでセットされ、ラッチ252からDC−DCコンバータ212へ出力される。PROG1信号がDC−DCコンバータ212で受信されると、DC−DCコンバータが作動され+12Vの電圧が生じる。DC−DCコンバータ212からの+12Vの電圧がトランジスタスイッチ255に送られる。この電圧はトランジスタスイッチ255が閉じられるまで、そのエミッタに残る。
【0263】
しかし、+12Vがトランジスタスイッチ255を通過できる前に、第2のステップが実行されなくてはならない。すなわち、マイクロプロセッサ216によって入出力リードコマンドが出力され、PALアドレスに対応するアドレス”366(16進表示)”が出力される。マイクロプロセッサ216がこのコマンドとアドレスの両方を生成すると、PAL253によってこのアドレスが解読されPROG2信号が生成される。PROG2信号がハイの場合、フリップフロップ254にクロック入力が送られる。
【0264】
クロック入力が受信されると、フリップフロップ254によってラッチ252からPROG1信号が入力され、次いで、フリップフロップ254の出力部においてTRANSON信号が生成される。TRANSON信号はトランジスタスイッチ255へ出力され、このスイッチ内のエミッタの+12V電圧がスイッチ内のコレクタを通過できるスイッチを閉ざすように、このスイッチは作動する。この時点で、+12V電圧はトランジスタスイッチ255のコレクタからEPROM222のVppピンへ送られる。
【0265】
EPROM222のVppピンへセットされた+12Vの電圧を用いて、マイクロプロセッサ216からEPROM選択信号が送信される。新しいファームウェアイメージの原形が損なわれることを防止するため、EPROM222は最初にクリアされ、消去されなければならない。次いで、EPROM222は、DRAM220に格納された新しいROMファームウェアイメージでフラッシュされる。ひとたび、新しいROMファームウェアイメージがEPROM222に格納されると、NEB2を新しいROMファームウェアイメージからリブートすることができる。
【0266】
図22と図23のフローチャートを参照しながらEPROM保護回路の動作について説明する。
【0267】
ステップS2301で、NEB2によって新しいROMファームウェアイメージがLANを介して受信され、DRAM220にロードされる。ステップS2302で、EPROM222をフラッシュせよというコマンドが、マイクロプロセッサ216によって受信される。ステップS2303で、マイクロプロセッサ216によってPAL253へ入出力ライトコマンドが送出され、ビット7がハイとなったアドレス”360(16進表示)”が出力される。処理はステップS2304へ進み、ビット7がハイとなることによってラッチ252が起動されPROG1信号が出力される。このPROG1信号によってDC−DCコンバータ212にスイッチが入り、+12Vの電圧がトランジスタスイッチ255へ出力される。ステップS2305で、PAL253へ入出力リードコマンドと、PALアドレスであるアドレス”366(16進表示)”の両方が、マイクロプロセッサ216によって送信される。これに応じて、PROG2信号が、PAL253によってフリップフロップ254のクロックへ出力され、このフリップフロップ254によって、そのデータ入力部でのPROG1信号の入力が可能となる。フリップフロップ254によってTRANSON信号がトランジスタスイッチ255に出力され、このスイッチ255によって、+12Vの電圧がトランジスタスイッチ255のコレクタからEPROM222のVppピンへ通過することが可能となる。ステップS2306で、マイクロプロセッサ216によってEPROM222がクリアされ次いで消去される。ステップS2307で、EPROM222が完全に消去されたか否かがマイクロプロセッサ216よって判定される。EPROM222が完全に消去されていない場合、処理はステップS2306へ戻る。
【0268】
EPROM222が完全に消去されたことが、マイクロプロセッサ216によって判定された後、ステップS2308で、ROMファームウェアイメージがDRAM220からEPROM222へダウンロードされる。ひとたびROMファームウェアイメージがうまくロードされると、ステップS2309で、マイクロプロセッサ216によって、ビット7がローとなったアドレス”360(16進表示)”が書込まれる。ラッチ252から送られるPROG1信号は低くなり、電圧レベルが電流を接地状態になるまで低下させることがDC−DCコンバータ212によってなされる。
【0269】
ステップS2310で、マイクロプロセッサ216によって、入出力リードコマンドとアドレス”366(16進表示)”がPAL253にへ送られ、このアドレス”366(16進表示)”によって、PROG2信号が低くすることができるので、スイッチ255を開くように作動するローTRANSON信号を出力するフリップフロップにクロックを入力する。
【0270】
このようにして、ステップS2309及びS2310で、+12Vの電圧がEPROM222のVppピンから取除かれ、フラッシュオペレーションが終了する。フラッシュオペレーションの後、ステップS2311で、リブートコマンドが受信されたか否かがマイクロプロセッサ216によって判定される。リブートコマンドが受信されると、ステップS2312で、EPROM222の新しいROMファームウェアイメージからNEB2がリブートされる。しかし、リブートコマンドが受信されなかった場合、処理は終了する。
4q. ファームウェアの遠隔的変更
以下、図24に示すフローチャート、図5CのステップS36、及びセクション4iを参照しながら、EPROM222内のファームウェアを遠隔地から変更する方法についてより詳細に説明する。
【0271】
利用者へNEBが出荷されるのに先立ち、NEBが必要な機能を実行できるように最低限の実行可能ファイルをもつようにNEBは構成される。しかしながら、利用者はその後NEBを再構成することも可能である。すなわち、ネットワーク管理者は、遠隔地のLAN装置からデータをダウンロードすることができるが、このデータには、パッチコードから製造テストルーチンまでの、EPROMへダウンロードされる全てのファームウェア更新データまでのいかなるデータをも含んでいる。
【0272】
即ち、ネットワーク管理者のPC14からNEB2へLANを介して実行可能ファイルを送ることによってNEB2を再構成することができる。ネットワーク管理者は、任意にEPROM222内のROMファームウェアイメージを遠隔地から変更することができる。
【0273】
ステップS2401で、特定のNEBをターゲットとするコマンドラインパラメータとしてMACアドレスを使用するCPFLASHプログラムが、ネットワーク管理者により起動される。NEB上で実行中のSAPSERVERによって応答が行なわれるSAP同報通信要求は、CPFLASHによって送出される。ステップS2402で、CPFLASHはターゲットNEBからの応答を待つ。ターゲットNEBからの応答が約15秒間ない場合、処理はステップS2401へ戻り同報の再送を行なう。しかし、ターゲットサーバから応答があった場合には、処理はステップS2403へ進む。
【0274】
ステップS2403で、ターゲットNEBのアドレスとロケーションが受信され、マッチするMACアドレスを持つNEBとの通信が確率され、新しいROMイメージファームウェアがLANを介してDRAM220へダウンロードされる。
【0275】
ステップS2404では、次のステップへ進む前に、ROMファームウェアイメージの妥当性がチェックされる。このROMファームウェアイメージの妥当性は、ステップS2403でのダウンロードオペレーションと一緒に、特定のパケットで送られるイメージチェックサムに対して検査される。このチェックサム値がROMイメージと一緒にダウンロードされたチェックサムと一致しなかった場合、ステップS2405で、オペレータにエラーが通知され、DRAM220内のROMファームウェアイメージは消去される。
【0276】
このチェックサム値が有効である場合、処理はステップS2406へ進み、ここで、MACアドレスのような保存されるべきすべてのデータがマイクロプロセッサ216によって検索され、DRAM220に格納された新しいファームウェアイメージの適切な場所にこのデータは格納される。このようにして、新しいROMファームウェアイメージに欠陥がある場合でも、所定部分の本質的なROMファームウェアは保持されるため、NEBは機能するできる。ひとたびROMファームウェアの本質的な部分が保存されると、処理はステップS2407へ進み、ここで、必要なら、EPROM222は複数回クリアされ、消去されるように制御される。EPROM222が消去された後、ステップS2408で、新しいROMイメージがEPROM222中へロードされる。
【0277】
フラッシュオペレーションの後、ステップS2409で、リブートコマンドが受信されたか否かがマイクロプロセッサ216によって判定される。リブートコマンドが受信された場合、NEB2はステップS2410においてリブートされる。しかし、リブートコマンドが受信されない場合、処理は終了する。
【0278】
ステップS2404で、EPROM222にそれまで格納されたデータと新しく受信されたファームウェアデータを比較することによって、ROMファームウェアイメージの妥当性もまた検査される。例えば、PROM232によってそれまで送られたハードウェアインジケータをEPROM222が格納する場合(例えば、ボード製造日、ボード改訂番号、製造設備など;詳細はセクション5で後述)、このようなインジケータが、新たに受信したROMファームウェアイメージの中の同一インジケータと比較される。この比較は、上で解説したチェックサム比較の代わりにあるいはチェックサム比較に追加して行なってもよい。
【0279】
ROMファームウェアイメージをフラッシュするのと同時に、新しいMACアドレスもEPROM222中へフラッシュできることに留意すべきである。しかしながら、NEBテストの完了時、出荷に先立って、MACアドレスをフラッシュすることが望ましい。この機能については、セクション5に関連してより詳細に説明する。
5. テスト
NEBをプリンタにインストールする前に、NEBハードウェア及びソフトウェアの構成要素の完全性を保証するために、NEBをテストすることができる。図25には、NEB2をテストするのに利用できる1つのテスト環境の構成が描かれている。図25において、NEB2は、NEBシリアルポート218に接続するケーブル302を介してPC1 (300)に接続している。テスト結果を印刷するためにプリンタ304をPC1(300)に接続してもよい。
【0280】
NEB2は、SCSIバス308、及びイーサネットLAN接続310、312を介してテストドライバPC2(306)に接続されている。PC2(306)にはSCSIボード314及びネットワーク制御ボード316が含まれているため、プリンタ及びLANエンティティ(ネットワーク管理者のPC14のような)をシミュレートすることができる。シリアルポート218を介してPC1(300)からNEBへ入力されるテストプログラムの命令にしたがって、PC2はトランスポンダとしての機能を果たし、NEB2からの、及び、NEB2への通信を送受信する。
【0281】
NEB2は電源が投入された後、電源投入自己検査オペレーションを実行する。NEB2がPOSTで各テストオペレーションを実行している間、PC1(300)はシリアルケーブル302を介してテストチェックポイント結果を受信する。
【0282】
NEB2によってPOSTが完全に終了したことが判定されると、NEB2は「ダウンロード準備OK」の状態になる。この状態で、NEB2は、入力ポートのうちどれか1つからさらに入力命令が入るのを約1秒間待つ。
【0283】
NEBがダウンロード状態になっている間、PC1(300)はシリアルポート218を介してNEBへテストプログラムをアップロードする。各テストプログラムの実行がNEB2によって完了すると、検査のためにPC1(300)に各テスト結果が送られる。次のチェックポイントがタイムアウト(例えば1秒)の間に受信されない場合、NEBのテストプログラム実行中にエラーが生じたとみなされ、エラー信号がPC1(300)によって出力される。このエラー信号はPC1(300)のディスプレイ上に表示してもよいし、プリンタ304で印刷することもできる。
【0284】
一方、PC1(300)によって受信された次のチェックポイントが検査されなかった場合、PC1(300)は受信された結果に従って、このテストプログラムを書直す(より詳細なテストモジュールをさらに加えることによって)。このようにして、PC1(300)は問題箇所をつきとめNEB2をデバッグすることができる。
【0285】
SCSIバス308あるいはLAN接続310、312のうちのいずれか1つを介して、PC2(306)と通信することをNEB2に要求するテストプログラムもある。例えば、テストプログラムに従って、NEB2は、LAN接続310を介してPC2にデータを要求してもよい。PC2(306)はNEB2から各々の通信に対して適切な応答を返すように構成されており、それによって、プリンタ及び他方のLAN構成要素が効果的にエミュレートされる。正確な通信がPC2(306)から返された場合、シリアルポート218を介してPC1(300)へ別のチェックポイントを通過させることによって、NEB2はテストが成功したことを示す。
【0286】
図26A及び図26Bに示されたフローチャートを参照し、図25に描かれたテスト構成に従って、以下、NEB2をテストするための方法について、より詳細に説明する。
【0287】
NEB2にまず電源が投入されると、ステップS2601において、EPROM222からNEB2によってPOSTプログラムが実行される。POSTプログラムには、構成要素のオペレーション及びソフトウェアのプログラミングをテストするための個々のプログラムが含まれる。POST内で個々のプログラムが実行された後、ステップS2602において、チェックポイントがPC1(300)へ送られ、検査される。個々のプログラムの実行後所定の時間チェックポイントが送られない場合、あるいは、戻されたチェックポイントが不正確である場合、ステップS2603において、PC1(300)からエラー信号が送られる。しかし、すべてのチェックポイントが正確で、所定の時間内に受信された場合は、処理はステップS2604へ進み、そこで、PC1(300)はNEBへテストプログラムを送る準備をする。
【0288】
ステップS2605で、POSTプログラムは完了し、NEB2はポートのいずれか(好適にはシリアルポート)を介して送られてくる命令を待つ。待機時間は約1秒で、この間に、PC1(300)は、用意したテストプログラムを用いて応答を行わなければならない。ステップS2606において、PC1(300)が、待機時間内にNEB2にテストプログラムを送って応答しない場合、処理はステップS2607へ進み、ここで、NEBはその正常のオペレーションモードに入る。
【0289】
ステップS2606において、PC1(300)からのテストプログラム命令セットが受信されると、更にテストプログラムが含まれているこの命令セットはDRAM220のNEB2に格納される(ステップS2608)。ステップS2609において、PC1(300)によって命令セットが起動され、NEB2によってこの命令セットの中の各テストプログラムが実行される。
【0290】
このテストプログラム命令セットには、PC2(306)をLAN周辺装置として構成することをNEB2に要求するプログラムや、PC2(306)をSCSI周辺装置として構成することをNEB2に要求するプログラムを、任意の順序で含むこともできる。いずれの場合においても、構成された後のPC2(306)は、NEBによって送られたデータ・ブロックを、通常、単に返信することによって、NEB2からのそれぞれの通信に対して応答する。
【0291】
簡潔に述べると、ステップS2610(図26B)において、NEB2はLAN周辺機器としてPC2(306)を構成し、PC2(306)はNEB2に対して応答を送ることによって応答し、この応答によって、NEB2が受信したデータが返信されることによってLANループバックテストが効果的に行なわれる。NEB2はPC2と通信し、シミュレートされた印刷ジョブ結果を受信する。ステップS2611において、各ブロックジョブの結果がPC1(300)へ送られ、このテスト結果が正確か否かがPC1(300)によって判定される。ステップS2611において、テスト結果が不正確であることがPC1(300)によって判定されると、ステップS2611で受信されたテスト結果に従って書直された分岐テストプログラムが、PC1(300)によって送られる(ステップS2612)。しかしながら、分岐テストプログラムがもはや存在しなくなると、ステップS2612において、PC1(300)はLANテストを停止し、エラー信号を出力する。
【0292】
このようにして、ステップS2611において、NEB2によってLAN通信テストが行なわれる。NEB2が各々のLAN通信テストをうまくパスしたならば、処理はステップS2613へ進み、ここで、PC2(306)はSCSI周辺装置として構成され、その受信データを返信することによって、SCSIループバックテストが行なわれる。ステップS2614において、このテスト結果はPC1(300)へ送られ、この結果が不正確である場合、ステップS2615において、このテスト結果に従って分岐テストがPC1(300)によって同様に送られる。もちろん、周辺機器との通信をさらにテストするための分岐テストがもはや存在しなくなれば、PC1(300)によってこのテストは停止され、エラー信号が出力される。
【0293】
ステップS2614において、NEB2が各SCSI通信テストをうまくパスしたならば、処理はステップS2616へ進み、ここで、NEB2はPC1(300)から更なる命令を要求する。PC1(300)が更なる命令を返信すると、処理はステップS2605へ戻るが、さらにテストを行なう必要がない場合は、NEBテストは終了する。
【0294】
要するに、LANインタフェース及びテストインタフェースを持つ対話型ネットワークボードをテストするための方法には、ボードに電源を投入し、テストインタフェースを介してボードROMから実行されたPOST結果を読取り、また、テストインタフェースを介してRAMボードへテストプログラムをダウンロードするという諸ステップが含まれる。次いで、テストプログラムが起動され、RAMボードから実行される。それから、ボードは、周辺装置をLANドライバあるいはSCSI周辺機器として構成するように(LANあるいはSCSIインタフェースのいずれかを介して)命令を受ける。次いで、ボードはテストプログラムに従って、LANドライバあるいはSCSI周辺機器と対話する。それから、テストプログラムの結果がテストインタフェースを介してテストコンピュータへ出力され、テストコンピュータではこれらのテスト結果を受信する。あるテストが失敗すると、その失敗のタイプに従って、補足テストプログラムが書かれる。新たに書かれたテストプログラムによって、故障検出と診断を行なうことができ、次いで、これらの補足的に書かれたテストプログラムをPC1からRAMボードにダウンロードすることもできる。
【0295】
ひとたびすべてのテストがうまく終了すれば、オペレーションファームウェアをEPROM222中にフラッシュすると便利であろう(工場試験環境においては)。特に、テストプログラムの最後のステップを利用して、引渡しに先立って、必要なファームウェアイメージをEPROM222のNEB中へロードしてもよい。(セクション4qを参照)。EPROM222へフラッシュされるファームウェアには、NEB2のためのユニークなMACアドレスも含まれる。
【0296】
従来、MACアドレスはPROM232のような専用PROMチップを用いて、回路基板に組み込まれていた。しかしながら、MACアドレスをEPROM中にフラッシュすればPROMチップの必要がなくなると同時に、MACアドレスを不揮発性の状態で格納しておくことができることが分かった。(もちろん、パラグラフ4qにおいて説明したように、NEB2をLANに接続した後、RAMファームウェアイメージを更新すると同時に、遠隔地からMACアドレスをEPROMへフラッシュさせることもできる。)
図26BのステップS2617において、NEBのテストが完了し、各ボードを、各ボード独自の個々の識別番号(一般にはMACアドレスを参照)で指定してもよい。このようにして、ステップS2617において、ROMファームウェアイメージがEPROM222に格納されるべきか否かが判定される。格納すべきイメージがない場合、テストは終了する。しかしながら、格納すべきイメージがある場合、処理はステップS2618へ進み、ここで、ROMイメージは(MACアドレスと共に)EPROM222中へフラッシュされる。ステップS2618で、PROM232に通常格納されるボードの改訂番号、製造データ、テスタ名等のような他のデータがMACアドレスと一緒に、EPROM222中へフラッシュされることが望ましい。
【0297】
ROMファームウェア及びMACアドレスをEPROM222へフラッシュするための2つの可能なシナリオを考察してきた。第1のケースでは、製造テストの際に用いられる高性能の診断セットでNEB2に予めロードされる。このアプローチによって、特定のテストをダウンロードするのに必要とされる時間が削減される。というのは、これらのテストはファームウェア中にすでに存在するからである。この場合、諸テストが成功した後、ファームウェアの最終製造版がボード中にロードされ、MACアドレス並びに、ボード改訂、製造データ、テスタのようなハードウェアに関する他の情報と共にフラッシュされる(ステップS2618)。第2のケースでは、ボードがファームウェアの最終製造版とともに組み立てられる。この場合、ボードの特定情報領域が空白にされ、ステップS2618においてテストがうまく実行された後、この領域のみがロードされ、フラッシュされる。
【0298】
要するに、LANインタフェースを持つ対話型ネットワークボード中へプログラム可能ファームウェアをテスト後ロードする方法としては、LANインタフェースを介してDRAM220へROMファームウェアイメージ(MACアドレスを含めて)をダウンロードするステップが含まれる。ROMイメージの完全性がここで確認され、ボードはEPROMを電子的に消去するように命じられる。次いで、EPROMは、MACアドレスが含まれるROMイメージでフラッシュされ、それから、ボードはEPROMからリブートされる。
【0299】
以上のように、上記の詳細な説明は、LANに周辺機器を接続するための構造及び機能を含んだ対話型ネットワーク回路基板に関するものであり、これによって、周辺機器がLANに応答する対話型構成要素となる。
【0300】
以上、本発明の好適な実施例と考えられるものに関して説明してきたが、本発明はこの開示した実施例に限定されるものではないことは言うまでもない。むしろ、本発明は、特許請求の範囲が示す思想とその範囲内に含まれる様々な変更及び同等物をカバーすることを意図するものである。特許請求の範囲は、このような変更及び同等の構造類及び機能をすべて含むように最も広い解釈が与えられるべきものである。
【0301】
【発明の効果】
以上説明したように本発明によれば、専用のパーソナルコンピュータを用いずとも、プリンタのような周辺装置をLANなどのネットワークの効果的でインテリジェントなメンバとして組み込むことができるという効果がある。
【図面の簡単な説明】
【図1】本発明の代表的な実施例であるローカルエリアネットワーク(LAN)のブロック図である。
【図2】相互に接続された複数のローカルエリアネットワーク(LAN)のブロック図である。
【図3】ローカルエリアネットワーク(LAN)とプリンタ間で接続された、本実施例によるネットワーク拡張ボードを示すブロック図である。
【図4】本実施例によるネットワーク拡張ボードのブロック図である。
【図5A】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図5B】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図5C】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図6】ソフトウェアモジュールがネットワーク拡張ボードROMからRAMへロードされる順序を示す図である。
【図7】LANとネットワーク拡張ボード間のハードウェア及びソフトウェアインタフェースを示すブロック図である。
【図8】ネットワーク拡張ボードをオペレーションモードに設定するためにEPROMファームウェアをどのように構成するかを示すフローチャートである。
【図9】イーサネットで使用される異なるフレームパケットの物理的構造を示す図である。
【図10】PRESCANソフトウェアモジュールの動作を示すフローチャートである。
【図11】PRESCANモジュールが他のソフトウェアプロトコルで使用される場合を示す図である。
【図12】SAPSERVERプログラムのソフトウェア構造を説明するための図である。
【図13】SAPSERVERの動作を示すフローチャートである。
【図14】CPINITプログラムの動作を示すフローチャートである。
【図15A】CPCONSOLプログラムの動作を示すフローチャートである。
【図15B】CPCONSOLプログラムの動作を示すフローチャートである。
【図16A】CPSOCKETプログラムの動作を示すフローチャートである。
【図16B】CPSOCKETプログラムの動作を示すフローチャートである。
【図17A】周辺装置の統計値の自動的ロギングを示すフローチャートである。
【図17B】周辺装置の統計値の自動的ロギングを示すフローチャートである。
【図18】マルチタスキング処理がどのように実行されるか示すフローチャートである。
【図19】安全なデフォルト機器構成にプリンタを設定する手順を示すフローチャートである。
【図20】ローカルエリアネットワーク(LAN)からネットワーク拡張ボードへの実行可能ファイルのダウンローディングを示すフローチャートである。
【図21】ネットワーク拡張ボードのEPROMで独立に実行可能なモジュールのローディングを示すフローチャートである。
【図22】ネットワーク拡張ボードEPROMフラッシュ保護回路を示すブロック図である。
【図23】図22に示す回路の動作を示すフローチャートである。
【図24】ネットワーク拡張ボードEPROMにファームウェアを遠隔操作でロードする動作を示すフローチャートである。
【図25】ネットワーク拡張ボードをテストするためのハードウェア機器構成を示すブロック図である。
【図26A】図25のテスト構成を用いたネットワーク拡張ボードテスト方法を示すフローチャートである。
【図26B】図25のテスト構成を用いたネットワーク拡張ボードテスト方法を示すフローチャートである。
【符号の説明】
2 ネットワーク拡張ボード(NEB)
4 プリンタ
6 LAN
8 LANインタフェース
10、12、18、22 PC
14 ネットワーク管理装置用PC
30 ファイルサーバ
206 イーサネットネットワークコントローラ
210、212 電源変換器
216 マイクロプロセッサ
218 シリアルポート
220 DRAM
222 EPROM
224 SCSIコントローラ
226 プリンタ拡張ボード
228 NVRAM
230 コントロールレジスタ
232 MACアドレス/ハードウェアID

Claims (7)

  1. プリンタをネットワークに接続するために、前記プリンタの拡張スロット或いはオプションスロットにインストールされるネットワーク基板であって、
    前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
    前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
    前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、
    実行中に一時的に前記アプリケーションモジュールと前記コントロールモジュールを記憶する一時記憶手段と、
    前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とするネットワーク基板
  2. 前記コントロールモジュールは、前記プリンタが印刷可能であるか否かに関する情報と前記プリンタの構成に関する情報とを含む前記状態情報が前記ネットワークに伝送されるようにすることを特徴とする請求項1に記載のネットワーク基板
  3. 前記アプリケーションモジュールと前記コントロールモジュールとはマルチタスク環境で実行されることを特徴とする請求項1又は2に記載のネットワーク基板
  4. プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
    前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
    前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
    前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、
    前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とする回路基板。
  5. プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
    プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
    前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
    前記回路基板に前記ネットワークを介し第1のプロトコルに従って送受信する情報を処理させる第一プログラムと、前記回路基板に前記ネットワークを介し第2のプロトコルに従って送受信する情報を処理させる第二プログラムとを記憶するプログラム記憶手段と、
    前記第一プログラム又は前記第二プログラムを実行するプロセッサとを有することを特徴とする回路基板。
  6. 前記第一プログラムと前記第二プログラムとはジョブ待ち行列をチェックするサーバプログラムであることを特徴とする請求項5に記載の回路基板。
  7. プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
    プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
    前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
    前記ネットワークを介し第1のプロトコルに従ってジョブを受信し処理する第一サーバプログラムと、前記ネットワークを介し第2のプロトコルに従ってジョブを受信し処理する第二サーバプログラムとを記憶するプログラム記憶手段と、
    前記第一サーバプログラムまたは前記第二サーバプログラムを実行するプロセッサとを有することを特徴とする回路基板。
JP2003089131A 1992-11-18 2003-03-27 ネットワーク基板、及び回路基板 Expired - Fee Related JP3592323B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/978,369 US5611046A (en) 1992-11-18 1992-11-18 Method and apparatus for interfacing a peripheral to a local area network

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP28459993A Division JP3431964B2 (ja) 1992-11-18 1993-11-15 ネットワーク装置、回路基板、及びインタフェース方法

Publications (2)

Publication Number Publication Date
JP2004030585A JP2004030585A (ja) 2004-01-29
JP3592323B2 true JP3592323B2 (ja) 2004-11-24

Family

ID=25526030

Family Applications (2)

Application Number Title Priority Date Filing Date
JP28459993A Expired - Lifetime JP3431964B2 (ja) 1992-11-18 1993-11-15 ネットワーク装置、回路基板、及びインタフェース方法
JP2003089131A Expired - Fee Related JP3592323B2 (ja) 1992-11-18 2003-03-27 ネットワーク基板、及び回路基板

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP28459993A Expired - Lifetime JP3431964B2 (ja) 1992-11-18 1993-11-15 ネットワーク装置、回路基板、及びインタフェース方法

Country Status (4)

Country Link
US (1) US5611046A (ja)
EP (1) EP0598513B1 (ja)
JP (2) JP3431964B2 (ja)
DE (1) DE69329818T2 (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819110A (en) * 1995-06-05 1998-10-06 Ricoh Company, Ltd. System for determining whether connection or connectionless modes of communication should be used to transmit information between devices in accordance with priorities of events
US6631247B1 (en) * 1999-09-29 2003-10-07 Ricoh Co., Ltd. Method and system for remote diagnostic, control and information collection based on various communication modes for sending messages to a resource manager
JPH07271699A (ja) * 1994-03-31 1995-10-20 Canon Inc ネットワークを介して接続される周辺処理装置と情報処理装置並びにその周辺処理装置における制御方法とその周辺処理装置の制御方法
US5909673A (en) * 1994-09-29 1999-06-01 Gregory; Edward M. Method and system for creating site specific coupons at a plurality of remote locations which are controlled by a central office
US5557783A (en) 1994-11-04 1996-09-17 Canon Information Systems, Inc. Arbitration device for arbitrating access requests from first and second processors having different first and second clocks
DE69516634T2 (de) * 1994-11-04 2000-09-21 Canon Information Systems, Inc. Intelligente Wiederprogrammierung eines Flash-Speichers
US5701411A (en) * 1994-11-04 1997-12-23 Canon Information Systems, Inc. Automatic detection of network hardware connection
US5724555A (en) * 1995-03-23 1998-03-03 Canon Kabushiki Kaisha Network interface board for digital copier
US5905906A (en) * 1995-03-31 1999-05-18 Lexmark International, Inc. Method and apparatus for configuring multiple printers on a network
US5961614A (en) 1995-05-08 1999-10-05 Apple Computer, Inc. System for data transfer through an I/O device using a memory access controller which receives and stores indication of a data status signal
US6334148B1 (en) 1995-12-21 2001-12-25 Axis Ab Method and a multiprotocol network CD-ROM server for sharing information on CD-ROM
US5745781A (en) * 1995-12-26 1998-04-28 International Business Machines Corporation Memoryless communications adapter including queueing and matching primitives for scalable distributed parallel computer systems
JP3706694B2 (ja) * 1996-01-09 2005-10-12 キヤノン株式会社 情報処理装置、プリンタ制御方法及び記憶媒体
US5854693A (en) * 1996-02-07 1998-12-29 Sharp Kabushiki Kaisha Image forming system
US6081342A (en) * 1996-07-22 2000-06-27 Sharp Kabushiki Kaisha Image forming system
JP3689502B2 (ja) * 1996-10-04 2005-08-31 キヤノン株式会社 印刷制御装置および印刷制御方法
KR100208033B1 (ko) * 1996-12-27 1999-07-15 윤종용 인쇄 속도를 최적으로 조절하는 방법
US6041372A (en) * 1996-12-30 2000-03-21 Intel Corporation Method and apparatus for providing a processor module for a computer system
JPH10228365A (ja) * 1997-02-14 1998-08-25 Canon Inc 印刷装置、印刷システム、及び、印刷方法
JP3768636B2 (ja) * 1997-03-05 2006-04-19 キヤノン株式会社 印刷制御方法及び装置
US5870589A (en) * 1997-07-23 1999-02-09 International Business Machines Corporation Method for enhanced broadcast and unknown server operation
US6321258B1 (en) * 1997-12-11 2001-11-20 Hewlett-Packard Company Administration of networked peripherals using particular file system
US6476927B1 (en) 1998-01-21 2002-11-05 Electronics For Imaging, Inc. Job token printer assignment system
US6954278B1 (en) 1998-02-13 2005-10-11 Lexmark International, Inc. Dynamic printer operating system
JP3788050B2 (ja) 1998-07-22 2006-06-21 セイコーエプソン株式会社 プリントシステム、プリンタ及びプリントサーバ
US6266150B1 (en) 1998-08-24 2001-07-24 International Business Machines Corporation Virtual printer
US6535295B1 (en) * 1998-08-24 2003-03-18 International Business Machines Corporation Virtual printer with asynchronous job and device status
US6498661B1 (en) 1999-03-26 2002-12-24 International Business Machines Corporation Method and apparatus for rendering grayscales at a facsimile presentation device using a calibrated threshold matrix
US6538773B1 (en) 1999-03-26 2003-03-25 International Business Machines Corporation Method and apparatus for rendering grayscales at a facsimile presentation device using a calibrated transform
WO2000063809A1 (en) * 1999-04-15 2000-10-26 Brian Von Herzen Electronically transmitted payment system
US6967728B1 (en) 1999-07-23 2005-11-22 Electronics For Imaging, Inc. Reusable and transferable printer driver preference system
US7058705B1 (en) * 1999-08-02 2006-06-06 Canon Kabushiki Kaisha Processing method of device information and network device in device information management system
EP1245137B1 (de) * 1999-09-30 2003-06-04 Siemens Aktiengesellschaft Verfahren und einrichtung zum laserbohren von organischen materialien
US6886050B2 (en) * 1999-10-29 2005-04-26 Seiko Epson Corporation Method for controlling a communication terminal device and rewritable storage medium having initialization setting data
US6681392B1 (en) 1999-12-15 2004-01-20 Lexmark International, Inc. Method and apparatus for remote peripheral software installation
US20020013828A1 (en) * 2000-05-31 2002-01-31 Taketoshi Kashiwabara Shop including multi-facility
US6366744B1 (en) 2000-06-22 2002-04-02 Hewlett-Packard Company Image forming systems and methods for determining whether an image job will be imaged
US7587468B2 (en) 2000-10-16 2009-09-08 Electronics For Imaging, Inc. Methods and systems for the provision of printing services
US6978299B1 (en) 2000-10-16 2005-12-20 Electronics For Imaging, Inc. Print driver apparatus and methods for forwarding a print job over a network
US6748471B1 (en) 2000-10-16 2004-06-08 Electronics For Imaging, Inc. Methods and apparatus for requesting and receiving a print job via a printer polling device associated with a printer
US7574545B2 (en) 2000-10-16 2009-08-11 Electronics For Imaging, Inc. Method and apparatus for controlling a document output device with a control request stored at a server
US7095518B1 (en) 2000-10-16 2006-08-22 Electronics For Imaging, Inc. Spooling server apparatus and methods for receiving, storing, and forwarding a print job over a network
US6859832B1 (en) 2000-10-16 2005-02-22 Electronics For Imaging, Inc. Methods and systems for the provision of remote printing services over a network
JP4378050B2 (ja) * 2000-12-27 2009-12-02 キヤノン株式会社 情報管理装置及び情報管理方法
US7552216B2 (en) 2001-03-27 2009-06-23 Lexmark International, Inc. Method of sharing a printer
US7383321B2 (en) 2002-07-09 2008-06-03 Moyer Alan L Method and system for communicating between a remote printer and a server
US6976084B2 (en) 2001-05-30 2005-12-13 Polaroid Corporation Method and apparatus for printing remote images using a network-enabled printer
JP2003114782A (ja) * 2001-07-30 2003-04-18 Fuji Photo Film Co Ltd プリントシステム
ES2315486T3 (es) * 2002-03-06 2009-04-01 Pharos Systems International, Inc. Sistema de procesamiento de documentos que incluye interfaz compatible con multiples dispositivos y metodos relacionados.
US7916322B2 (en) 2002-03-14 2011-03-29 Senshin Capital, Llc Method and apparatus for uploading content from a device to a remote network location
US7528974B2 (en) 2003-02-28 2009-05-05 Electronics For Imaging, Inc. Methods and apparatus for providing universal print services and asynchronous message services
US7162103B2 (en) * 2003-07-21 2007-01-09 Xerox Corporation Output job request electronic message notification system and method
JP4827388B2 (ja) * 2003-07-31 2011-11-30 キヤノン株式会社 通信システム、情報処理装置、印刷制御方法、及びプログラム
US7978260B2 (en) 2003-09-15 2011-07-12 Senshin Capital, Llc Electronic camera and method with fill flash function
JP4174411B2 (ja) * 2003-10-30 2008-10-29 キヤノン株式会社 ジョブ管理装置、ジョブ管理方法、及びジョブ管理用プログラム
JP4492251B2 (ja) * 2003-11-28 2010-06-30 セイコーエプソン株式会社 印刷システム、印刷要求装置、印刷装置管理装置、印刷装置、印刷装置管理プログラムおよび印刷制御プログラム、並びに印刷方法
JP4581404B2 (ja) * 2004-01-06 2010-11-17 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
KR100581523B1 (ko) * 2004-01-28 2006-05-22 삼성전자주식회사 로컬 프린터를 공통적으로 사용하는 네트워크 시스템 및그 방법
US8437020B2 (en) * 2004-05-13 2013-05-07 Sharp Laboratories Of America, Inc. System and method for printer emulation
SE0401530D0 (sv) * 2004-06-15 2004-06-15 Hms Ind Networks Ab Status indicator
JP4667281B2 (ja) * 2006-02-20 2011-04-06 キヤノン株式会社 周辺装置制御方法及びその情報処理装置と制御プログラム
JP4628326B2 (ja) * 2006-08-03 2011-02-09 シャープ株式会社 ネットワーク機器の管理装置及び管理プログラム
US9819436B2 (en) 2013-08-26 2017-11-14 Coriant Operations, Inc. Intranodal ROADM fiber management apparatuses, systems, and methods
JP5944034B2 (ja) * 2015-07-08 2016-07-05 キヤノン株式会社 画像処理装置、画像処理装置のデータ処理方法、及びプログラム
JP7119429B2 (ja) * 2018-03-02 2022-08-17 ブラザー工業株式会社 コンピュータプログラム、データ送信方法および端末装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4974199A (en) * 1984-06-28 1990-11-27 Westinghouse Electric Corp. Digital IC-microcomputer interface
US4648047A (en) * 1984-10-24 1987-03-03 International Business Machines Corporation Interactive operator selection of alternative implementations of printer functions
US4754428A (en) * 1985-04-15 1988-06-28 Express Communications, Inc. Apparatus and method of distributing documents to remote terminals with different formats
US4742483A (en) * 1985-05-14 1988-05-03 Minolta Camera Company, Ltd. Laser printer maintenance system
US5007013A (en) * 1986-04-01 1991-04-09 Westinghouse Electric Corp. Bidirectional communication and control network with programmable microcontroller interfacing digital ICS and controlled product
EP0255090A3 (en) * 1986-07-28 1990-02-07 Honeywell Bull Inc. Lan controller proprietary bus
JPS63172328A (ja) * 1987-01-09 1988-07-16 Sharp Corp コンピユ−タ装置を備える編集タイプライタ
US4866664A (en) * 1987-03-09 1989-09-12 Unisys Corporation Intercomputer communication control apparatus & method
US5220674A (en) * 1987-07-17 1993-06-15 Digital Equipment Corporation Local area print server for requesting and storing required resource data and forwarding printer status message to selected destination
US4829468A (en) * 1987-09-18 1989-05-09 Hitachi, Ltd. Print control system
CA1327851C (en) * 1988-06-22 1994-03-15 Amy S. Christopher Reconfigurable printer
US5047957A (en) * 1988-10-21 1991-09-10 Minolta Camera Kabushiki Kaisha Printer controller
JP2755622B2 (ja) * 1988-10-24 1998-05-20 株式会社東芝 画像形成装置
US5121113A (en) * 1990-04-02 1992-06-09 Eastman Kodak Company Printer status and control panel
US5075875A (en) * 1990-04-20 1991-12-24 Acuprint, Inc. Printer control system
US5303336A (en) * 1990-05-14 1994-04-12 Hitachi, Ltd. Printing system including print server
EP0476195A1 (en) * 1990-09-19 1992-03-25 International Business Machines Corporation Initial program load for computer workstation
US5428748A (en) * 1992-09-24 1995-06-27 National Semiconductor Corporation Method and apparatus for automatically configuring a computer peripheral
EP0674787B1 (en) * 1992-12-18 2001-03-07 Hitachi Koki Imaging Solutions, Inc. Virtual printer

Also Published As

Publication number Publication date
EP0598513A1 (en) 1994-05-25
US5611046A (en) 1997-03-11
JPH06214916A (ja) 1994-08-05
JP2004030585A (ja) 2004-01-29
JP3431964B2 (ja) 2003-07-28
DE69329818D1 (de) 2001-02-08
EP0598513B1 (en) 2001-01-03
DE69329818T2 (de) 2001-05-31

Similar Documents

Publication Publication Date Title
JP3592323B2 (ja) ネットワーク基板、及び回路基板
JP3563751B2 (ja) ファームウェア書き込み方法、ネットワーク接続装置、及び遠隔情報ロード装置
JP3548208B2 (ja) マルチプロトコル処理方法及び装置
JP4250535B2 (ja) 情報処理方法及び装置
JP3305069B2 (ja) 対話型ネットワーク基板の試験方法及びその試験装置
JP3368016B2 (ja) パケット形式判定方法及び装置
JP3423379B2 (ja) デフォルト設定装置、プリンタ及びプリンタ構成提供方法
JP3478576B2 (ja) インタフェース装置、対話型ネットワーク回路基板及びインタフェース方法
JP3450394B2 (ja) アクセス管理方法及び該方法を用いたローカルエリアネットワーク
JP3391865B2 (ja) 記録装置及び記録方法
JP3397395B2 (ja) メディアアクセス制御アドレスを遠隔から記憶するリモート記憶方法およびネットワーク接続装置
JP3412881B2 (ja) ファイル形成装置及びファイル形成方法
JP3503648B2 (ja) ネットワークサーバー管理方法及び装置
JP3548209B2 (ja) データロード方法及び装置及び該装置を用いた対話型ネットワーク基板
US5815722A (en) In an interactive network board, a method and apparatus for remotely downloading and executing files in a memory
EP0605091B1 (en) Method and apparatus for forming an operational configuration of an interface board
JPH06214810A (ja) マルチタスク処理方法及び装置及び対話型ネットワーク基板

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040305

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040824

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees