(57)【特許請求の範囲】
【請求項１】
プリンタをネットワークに接続するために、前記プリンタの拡張スロット或いはオプションスロットにインストールされるネットワーク基板であって、
前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、
実行中に一時的に前記アプリケーションモジュールと前記コントロールモジュールを記憶する一時記憶手段と、
前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とするネットワーク基板。
【請求項２】
前記コントロールモジュールは、前記プリンタが印刷可能であるか否かに関する情報と前記プリンタの構成に関する情報とを含む前記状態情報が前記ネットワークに伝送されるようにすることを特徴とする請求項１に記載のネットワーク基板。
【請求項３】
前記アプリケーションモジュールと前記コントロールモジュールとはマルチタスク環境で実行されることを特徴とする請求項１又は２に記載のネットワーク基板。
【請求項４】
プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、
前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とする回路基板。
【請求項５】
プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
前記回路基板に前記ネットワークを介し第１のプロトコルに従って送受信する情報を処理させる第一プログラムと、前記回路基板に前記ネットワークを介し第２のプロトコルに従って送受信する情報を処理させる第二プログラムとを記憶するプログラム記憶手段と、
前記第一プログラム又は前記第二プログラムを実行するプロセッサとを有することを特徴とする回路基板。
【請求項６】
前記第一プログラムと前記第二プログラムとはジョブ待ち行列をチェックするサーバプログラムであることを特徴とする請求項５に記載の回路基板。
【請求項７】
プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、
プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、
前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、
前記ネットワークを介し第１のプロトコルに従ってジョブを受信し処理する第一サーバプログラムと、前記ネットワークを介し第２のプロトコルに従ってジョブを受信し処理する第二サーバプログラムとを記憶するプログラム記憶手段と、
前記第一サーバプログラムまたは前記第二サーバプログラムを実行するプロセッサとを有することを特徴とする回路基板。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はネットワーク基板、及び回路基板に関し、特に、ローカルエリアネットワークの周辺装置（例えば、プリンタ）に結合され、且つパーソナルコンピュータを周辺装置管理専用にすることなく前記周辺装置をインテリジェントな対話型ネットワークのメンバに構成できる、更に詳細には、応答性のある周辺装置とローカルエリアネットワークとの間に結合されたネットワーク基板、及び回路基板に関する。
【０００２】
【従来の技術】
構内情報通信網（“ＬＡＮ”）は、複数のパーソナルコンピューターを、プリンタ、コピー機等のような周辺装置に結合して、通信機能拡張と資源共有を図るものとして知られている。従来、ＬＡＮに結合されるプリンタのような周辺装置は、どちらかといえばインテリジェント性がなく、ＬＡＮからの情報を受け入れて、そのような情報をハードコピーにプリントするだけであった。また、かかるプリンタは、通常、プリンタへのデータの流れを効率的に管理するための、即ち、そのプリンタの「サーバー」として働くホストパーソナルコンピュータ（“ＰＣ”）を要した。これにより、ホストＰＣは、ほとんど常時、プリンタのサーバータスク専用である必要があった。
【０００３】
近年、限られたサーバー機能を実行するために、周辺装置に結合できる回路基板に、ハードウェアとソフトウェアを組み込むことによって、表面上、かかる専用ＰＣの必要を廃した製品が数多く出回ってきた。例えば、ＡＳＰコンピュータプロダクト社では、ノベルネットワーク用の独立型プリントサーバーとして働く「ジェットＬＡＮ／Ｐ（ＪｅｔＬＡＮ／Ｐ）」という装置を出している。ジェットＬＡＮ／Ｐ（商標）装置は、１０Ｂａｓｅ−２の細芯同軸ケーブルまたは１０Ｂａｓｅ−Ｔのより対線ケーブルを使ってＬＡＮに接続する。しかし、ジェットＬＡＮ／Ｐ（商標）は、プリンタのパラレルポートからしかプリンタに結合できない。従って、プリント情報をプリンタに送ることができても、プリンタから戻ってくるプリンタ状態情報量が厳しく制限される。例えば、このような装置がプリンタから受信できるのは、「オフライン」および「用紙切れ」程度の情報である。このような装置では、プリンタを、ネットワークの真にインテリジェント性をもって応答するメンバにすることは不可能に近い。
【０００４】
プリンタをＬＡＮに結合するための他の周知の装置は、ヒューレットパッカード社のジェットディレクト（ＪｅｔＤｉｒｅｃｔ（商標））Ｃ２０７１Ａ／ＢとＣ２０５９Ａ、エクステンデッドシステムズ社のイーサフレックス（ＥｔｈｅｒＦｌｅｘ（商標））、インテル社のネットポート（ＮｅｔＰｏｒｔ（商標））とネットポートＩＩ（ＮｅｔＰｏｒｔＩＩ（商標））、キャステレ社のＬＡＮプレス（ＬＡＮＰｒｅｓｓ（商標））とジェットプレス（ＪｅｔＰｒｅｓｓ（商標））、ミラン社のファストポート（ＦａｓｔＰｏｒｔ（商標））などがある。
【０００５】
【発明が解決しようとする課題】
しかしながら上記の装置はいずれも、プリンタがＬＡＮへ十分の量のデータを送信出来ないため、プリンタがネットワークの効果的でインテリジェントなメンバになり得ない、という弱点がある点でＡＳＰ社のジェットＬＡＮと同じである。
【０００６】
【発明の概要】
本発明は、周辺装置に結合され、且つ前記周辺装置を応答性のあるインテリジェントなネットワークメンバーに構成できるネットワーク基板、及び回路基板を提供することにより、上述の欠点を克服するものである。
【０００７】
本発明の一態様によれば、周辺装置を構内情報通信網に接続するための装置に、周辺装置に結合される回路基板を含んでいる。ＬＡＮインタフェースは、前記回路基板に結合され、且つＬＡＮから周辺装置のジョブ情報を受信し、ＬＡＮから周辺装置状態要求を受信し、周辺装置状態情報をＬＡＮに送信する。周辺装置インタフェースは、前記回路基板に結合され、且つ、周辺装置ジョブデータを周辺装置に送信し、周辺装置状態問合わせを周辺装置に送信し、周辺装置から周辺装置状態データを受信する。ＰＲＯＭは、前記回路基板に結合され、且つ、ＬＡＮを介して受信する周辺装置ジョブ情報を、周辺装置ジョブデータとして周辺装置に送信させるアプリケーションモジュールを記憶する。ＰＲＯＭは、ＬＡＮを介して受信する周辺装置状態要求を、周辺装置状態問合わせとして周辺装置に送信させ、且つ周辺装置機器から受信する周辺装置状態データを周辺装置状態情報としてＬＡＮに送信させる制御モジュールも記憶する。ＲＡＭは、前記基板に結合され、且つ実行時にアプリケーションモジュールと制御モジュールを一時記憶する。そして、アプリケーションモジュールと制御モジュール実行するために、プロセッサが前記基板に結合される。
【０００８】
本発明の別の態様によれば、周辺装置をＬＡＮに接続する方法は、対話型ネットワーク基板を周辺装置とＬＡＮに結合する工程と、前記基板にてＬＡＮから周辺装置ジョブ情報と周辺装置状態要求を受信する工程と、から構成される。次に、周辺装置ジョブデータは基板から周辺装置に送信され、周辺装置からの周辺装置状態データは基板にて受信される。基板は、ＬＡＮに周辺装置状態情報も送信する。基板上のＰＲＯＭは、ジョブアプリケーションモジュールと状態モジュールを記憶する。ボード上のプロセッサは、ジョブアプリケーションモジュールを実行して周辺装置ジョブデータを周辺装置に提供し、且つ状態モジュールを実行して周辺装置状態情報をＬＡＮに提供する。
【０００９】
【課題を解決するための手段】及び【作用】
上記目的を達成するために本発明のネットワーク基板は、以下の様な構成からなる。即ち、プリンタをネットワークに接続するために、前記プリンタの拡張スロット或いはオプションスロットにインストールされるネットワーク基板であって、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、実行中に一時的に前記アプリケーションモジュールと前記コントロールモジュールを記憶する一時記憶手段と、前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とするネットワーク基板を備える。
【００１０】
また他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記プリンタにプリンタのジョブデータとプリンタの状態問い合わせとを伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークから受け取られた前記プリンタジョブ情報が前記ジョブデータとして前記プリンタに伝送されるようにするアプリケーションモジュールと、前記ネットワークから受け取られた前記プリンタ状態要求を前記状態問い合わせとして前記プリンタに伝送し、且つ前記プリンタから受け取られた前記プリンタ状態データを前記プリンタ状態情報として前記ネットワークに伝送されるようにするコントロールモジュールとを記憶するモジュール記憶手段と、前記アプリケーションモジュールと前記コントロールモジュールとを実行するプロセッサとを有することを特徴とする回路基板を備える。
【００１１】
さらに他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記回路基板に前記ネットワークを介し第１のプロトコルに従って送受信する情報を処理させる第一プログラムと、前記回路基板に前記ネットワークを介し第２のプロトコルに従って送受信する情報を処理させる第二プログラムとを記憶するプログラム記憶手段と、前記第一プログラム又は前記第二プログラムを実行するプロセッサとを有することを特徴とする回路基板を備える。
【００１２】
またさらに他の発明によれば、プリンタをネットワークに接続するために前記プリンタの拡張スロットあるいはオプションスロットにインストールされる回路基板であって、プリントデータと前記プリンタの状態問い合わせとを前記プリンタに伝送し、前記プリンタからプリンタ状態データを受け取るプリンタインタフェースと、前記ネットワークからプリンタジョブ情報とプリンタ状態要求とを受け取り、前記ネットワークにプリンタ状態情報を伝送するネットワークインタフェースと、前記ネットワークを介し第１のプロトコルに従ってジョブを受信し処理する第一サーバプログラムと、前記ネットワークを介し第２のプロトコルに従ってジョブを受信し処理する第二サーバプログラムとを記憶するプログラム記憶手段と、前記第一サーバプログラムまたは前記第二サーバプログラムを実行するプロセッサとを有することを特徴とする回路基板を備える。
【００１６】
【実施例】
以下添付図面を参照して本発明の好適な実施例を詳細に説明する。
【００１７】
本発明を適用した実施例では、ネットワークから受信されたデータを受信し処理することができるだけでなく、詳細な状態情報、オペレーションパラメータや、更には、スキャナ入力、ファクシミリ受信などのような他の形態によって周辺機器へ入力されるデータのような相当量のデータまでも、ネットワークに伝送する能力を持つ対話型ネットワーク構成要素，例えばプリンタ，のようなネットワーク周辺機器を構成するためのハードウェア及びソフトウェア的解決法を提供するものである。そして、周辺機器にこのようなハードウェア及びソフトウェアを組み込むことによって、周辺機器へのサーバの役を果たす専用パーソナル・コンピュータをなくすことが可能になる。
【００１８】
１．  アーキテクチャ
図１は、以下に解説するオープンアーキテクチャを持つ、プリンタ４に接続されたネットワーク拡張ボード（“ＮＥＢ”）２に組み込まれた本実施例を示すブロック・ダイヤグラムである。ＮＥＢ２は、ＬＡＮインタフェース８（たとえば、同軸コネクタ、ＲＪ４５コネクタあるいはＤＢ１５コネクタ（ＡＵＩ）とそれぞれ接続されている、１０ｂａｓｅ−２、１０ｂａｓｅ−Ｔ、あるいは１０ｂａｓｅ−５のようなイーサネットインタフェース）を介して、ＬＡＮバス６に接続している。ＬＡＮ６にはまた、ＰＣ１０、ＰＣ１２、ＰＣ１４（この場合、管理者がこのＰＣ１４に記録をとるならば、ＰＣ１４がネットワーク管理装置として機能する。；詳細は後述）のようなネットワーク構成要素、及び、プリンタ１６（内蔵型ＱＳＥＲＶＥＲ機能を持つ；詳細は後述）とが接続されていてもよい。他のＬＡＮ構成要素として、付属プリンタ２０を持つＰＣ１８（プリント・サーバの役をする；詳細は後述）、付属プリンタ２４を持つＰＣ２２（ＲＰＲＩＮＴＥＲの役をする；詳細は後述）、及びＮｅｔＰｏｒｔ装置２８（上記発明の背景において、解説）を介してＬＡＮ６に接続されるプリンタ２６が含まれてもよい。ファイル・サーバ３０は、ＬＡＮ６に接続され、ファイルをＬＡＮ上で伝送し処理するための“ライブラリ”として機能する。ファイル・サーバ３０には、付属プリンタ３２及び３４がついていてもよい。
【００１９】
より詳細に述べると、種々のネットワーク構成要素間での交信を行なうために、図１に描写されたネットワークで、ノーベル社あるいはＵｎｉｘソフトウェアのような任意のネットワークソフトウェアを利用してもよい。本発明の適用はどんなネットワークソフトウェアに対しても可能であるが、本実施例ではノーベル社のＮｅｔＷａｒｅソフトウェア（下記、セクション３ａでより詳細に解説）を利用するＬＡＮに関して説明する。このソフトウェア・パッケージについての詳細な説明については、“ＮｅｔＷａｒｅ（商標）ユーザーガイド”及び“ＮｅｔＷａｒｅ（商標）スーパーバイザ・ガイド”（Ｍ＆Ｔブック社、１９９０年版権取得）にあるのでそれを参照されたい。又、“ＮｅｔＷａｒｅプリントサーバ”（ノーベル社刊、１９９１年３月版、ノーベル部品番号１００−０００８９２−００１）も参照されたい。簡潔に述べれば、ファイル・サーバ３０はファイルマネジャとして機能し、ＬＡＮ構成要素間のデータのファイルを受信し、格納し、待ち行列に登録し、キャッシングし、伝送する。たとえば、ＰＣ１０及び１２でそれぞれ作成されたデータ・ファイルは、ファイル・サーバ３０へまず運ばれて、ファイル・サーバ３０はそれらのデータ・ファイルを順序付けした後、ＰＣ１８のプリント・サーバからのコマンドでプリンタ２４へこの順序付けされたデータ・ファイルを転送することができる。ファイル・サーバ３０には、１０ギガバイトのハードディスク（ＨＤ）サブシステムのような大容量記憶装置（ＬＣＳ）構成要素を含めることもできるし、あるいはそのような大容量記憶装置（ＬＣＳ）構成要素に接続されたものであってもよい。もし所望であれば、更に、プリンタ３２及び３４をファイル・サーバ３０に接続して、追加的印刷ステーションを備えることもできる。
【００２０】
パーソナル・コンピュータ装置が図１に例示されているが、実行されているネットワークソフトウェアにとって適切なものとして、他のコンピュータ装置も含むことができる。たとえば、Ｕｎｉｘソフトウェアが使用される場合、Ｕｎｉｘワークステーションをネットワークに含んでいてもよい。また、これらのワークステーションを、適切な環境の下で、例示された複数ＰＣとともに使用してもよい。
【００２１】
ＰＣ１０及び１２としては、各々、データ・ファイルを生成し、ＬＡＮ上へそれらを伝送し、ＬＡＮからファイルを受信し、ワークステーションでこのようなファイルを表示及び／若しくは処理することができる、標準的ワークステーションＰＣを含むことができる。しかしながら、ＰＣ１０及び１２は、ＬＡＮ周辺機器に対する制御を行なうことはできない（ネットワーク管理者がそのＰＣに記録されていない限り）。
【００２２】
ＬＡＮ周辺機器に対して限定的制御を行なうことができるＰＣとは、内蔵型ＲＰＲＩＮＴＥＲプログラムが含まれるＰＣ２２である。ＲＰＲＩＮＴＥＲプログラムとは、ＭＳ−ＤＯＳＴｅｒｍｉｎａｔｅ＆ＳｔａｙＲｅｓｉｄｅｎｔ（以下ＴＳＲという）プログラムのことで、ワークステーション上で実行され、このプログラムで、ユーザはワークステーションに接続されたプリンタ２４を共用することが可能になる。ＲＰＲＩＮＴＥＲは、作業を求めるプリンタ待ち行列を探索する能力を持っていない、どちらかといえばインテリジェント性のないプログラムである。ＲＰＲＩＮＴＥＲは、ネットワークの別の場所で実行しているＰＳＥＲＶＥＲ（詳細は後述）からその作業を得る。プリンタのパラレルポートを通じて付属プリンタと通信しているために、ＲＰＲＩＮＴＥＲは、限定された状態しか得られず、また、その状態情報を応答可能なＰＳＥＲＶＥＲにＬＡＮ６を通じて返すことしかできない。制御という見地から見ると、ＲＰＲＩＮＴＥＲは印刷ジョブの停止くらいのことしかできない。パーソナル・コンピュータで実行するＲＰＲＩＮＴＥＲのＴＳＲプログラムと同じ限定された機能しか与えられていない内部若しくは外部回路基板を装着することによって得られるＲＰＲＩＮＴＥＲ機能が含まれているものも、プリンタの中にはある。
【００２３】
ＬＡＮ周辺機器に対して限定された制御しか実行できない、もう一つのネットワークエンティティは、内蔵型ＱＳＥＲＶＥＲプログラムを持っている付属回路基板３６を備えたプリンタ１６である。現在、ＱＳＥＲＶＥＲプログラムはＨＰのＬａｓｅｒＪｅｔＩＩＩ（商標）ＳＩプリンタ内で実行され、適格の印刷ファイルを求めてファイル・サーバ３０の印刷待ち行列を探索する能力を持っている。ＱＳＥＲＶＥＲの探索待ち行列を動的に変更することはできないし、また、ＱＳＥＲＶＥＲは、いかなる形の状態照会にも応答しない。ＱＳＥＲＶＥＲの利点は作業を求めて自律的に探索するその能力である。ＱＳＥＲＶＥＲは、システムを動かすために、別の場所で実行中のＰＳＥＲＶＥＲを必要としない。ＱＳＥＲＶＥＲには対応するＰＳＥＲＶＥＲがなく、また、いかなる状態及び制御能力もそれ自身が持っていないために、ＲＰＲＩＮＴＥＲ自身よりも少ない制御しか行なわれない。また、ＱＳＥＲＶＥＲは、非常に限定された通知機能しか持っておらず、かつ、各印刷ジョブの初めにバナーを印刷することができないという点で、ＰＳＥＲＶＥＲとは異なる。
【００２４】
ＱＳＥＲＶＥＲ能力を持っているもう一つのネットワーク構成要素としては、外部ＮｅｔＰｏｒｔ装置２８を介してＬＡＮ６に接続されるプリンタ２６がある。
【００２５】
スキャナ、複写機、ファクシミリなどのような種々の周辺機器を使用するために他の周辺機器サーバプログラムを実行したり、Ｕｎｉｘ互換ライン・プリンタ・リモートサーバ（“ＬＰＲ”）のようなネットワークソフトウェアプロトコルに基いてサーバを提供することもできる。
【００２６】
ＬＡＮ周辺機器に対して重要な制御を実行することができるＬＡＮ構成要素として、内蔵されたＰＳＥＲＶＥＲプログラムを持っているＰＣ１８がある。ＰＳＥＲＶＥＲは、複数のユーザ定義の印刷待ち行列を発信したり、動的に探索待ち行列変更を実行したり、例外的（故障）条件及び状態や制御能力のための定義された通知手順を提供する能力を持っている。ＰＳＥＲＶＥＲはいくつかの形で提供される。ＰＳＥＲＶＥＲ．ＥＸＥは、ワークステーション上で専用プログラムとして実行し、ローカル及びリモート両方のプリンタを制御するプログラムである。ローカルプリンタはシリアルあるいはパラレルポートのいずれかに接続することができ、また、リモート・プリンタはシステムの別の場所で実行するプリンタである。ＰＳＥＲＶＥＲプログラムの他の２つの形としては、ＰＳＥＲＶＥＲ．ＶＡＰ及びＰＳＥＲＶＥＲ．ＮＬＭがある。これらはファイル・サーバ３０それ自身の上で実行するＰＳＥＲＶＥＲバージョンである。．ＶＡＰバージョンはＮｅｔＷａｒｅ２８６（商標）用であり、．ＮＬＭバージョンはＮｅｔＷａｒｅ３８６（商標）用である。ＰＳＥＲＶＥＲの方が、ＲＰＲＩＮＴＥＲ及びＱＳＥＲＶＥＲよりもはるかに多くの能力を備えてはいるものの、その欠点の１つとしては、ＥＸＥバージョンは専用パーソナル・コンピュータを必要とするということがある。
【００２７】
ＰＳＥＲＶＥＲ．ＥＸＥを実行する専用パーソナル・コンピュータは１６ものローカル／リモートプリンタを制御することができ、多くのファイル・サーバ待ち行列から印刷情報を要求することができる。しかしながら、ネットワーク印刷サービスの制御をＰＳＥＲＶＥＲに依存するにはいくつかの欠点がある。その第１の欠点は、単一ネットワーク・ノード及びパーソナル・コンピュータプロセッサを介して複数のプリンタストリームをすべて１ヶ所に集めなければならないことである。これが作業を妨げる原因となりうる。第２の欠点は、最も効率的なオペレーションのためには、プリンタ２０のように、プリンタをコンピュータにローカルに接続しなければならないということである。これはユーザにとって不便な場合がある。なぜなら、ＰＣ１８の周囲にプリンタを集合させる必要があるからである。第３の欠点としては、ＲＰＲＩＮＴＥＲによって使用されるプリンタ２４の場合のように、制御されたプリンタがリモートの場合、印刷データが、ファイル・サーバ３０からＰＳＥＲＶＥＲのＰＣ１８まで転送され、次いで、ＲＰＲＩＮＴＥＲを実行するプリンタへ再伝送されなければならないということである。これは非能率的である。
【００２８】
第４の欠点は、ＰＳＥＲＶＥＲを介して提供されるプリンタ状態及び制御情報の量が限られていることである。ＲＰＲＩＮＴＥＲでは、「用紙切れ」や「オフライン」のような不完全状態よりもっと重大な不完全状態はあまり容認されないということは既に述べた。ローカルにまたリモートに接続されたプリンタのためのＰＳＥＲＶＥＲ自身も、これ以上の状態をあまり提供しない。なぜなら、ＰＳＥＲＶＥＲはパーソナル・コンピュータのパラレルポートの限界を考慮して設計されているためである。ＰＳＥＲＶＥＲプログラムはまた、それ自身の状態及び制御をも考慮に入れる。
【００２９】
プリンタ４にインストールされたネットワーク拡張ボード（ＮＥＢ）２によって、上記解説されたネットワーク周辺機器制御エンティティ上で、多くの利点がもたらされ、柔軟性更に強化される。特に、ＮＥＢ内蔵型制御装置によって、ＲＰＲＩＮＴＥＲ、ＰＳＥＲＶＥＲ、及びＬＰＲ（ライン・プリンタリモート）機能（以下、セクション３ｄで解説するＣＲＰＲＩＮＴＥＲ、ＣＰＳＥＲＶＥＲ及びＣＬＰＲプログラムを介して）が提供される。ＣＰＩＮＩＴ（以下、セクション４ｈで解説）という名の初期化プログラムがあり、このプログラムによって、ネットワーク管理者のＰＣ１４によるＮＥＢ機能の構成に対する完全な制御が可能になる。ＮＥＢに内蔵された性質及びプリンタ４のオープンアーキテクチャのために、ＮＥＢは、幅広い様々な状態及び制御機能をネットワークに提供する能力を持つことになる。すなわち、冗長な量の状態情報をプリンタ４からＬＡＮ６に提供し、多くの制御情報をＬＡＮ６からプリンタ４へ提供することができる（たとえばＰＣ１４からプリンタフロント・パネル機能を実行して）。
【００３０】
ＮＥＢで使用可能な広範な情報量をアクセスするために、ＣＰＣＯＮＳＯＬと呼ばれるプログラムがネットワーク管理者のＰＣ１４に常駐し、このプログラムによって、ＮＥＢ２がプリンタ４からエクスポートするすべてのプリンタ情報を、システム管理者がみることが可能になる。ＮＥＢ２のＲＰＲＩＮＴＥＲ機能構成（ＣＲＰＲＩＮＴＥＲ）が選択された場合であっても、このプリンタ情報は使用可能である。ＮＥＢ２のＰＳＥＲＶＥＲ機能構成（ＣＰＳＥＲＶＥＲ）によって、ボードを含むプリンタ４が制御される。このオプションには、通知及び状態機能に加えて、すべての標準的ＰＳＥＲＶＥＲ待ち行列探索能力が備わっている。これらすべての機能は遠隔地のワークステーションから動的に制御することができる。ＮＥＢ環境、及び、広範な状態及び制御情報をプリンタ４からエクスポートするその能力によって、ＮＥＢ２とプリンタ４の組合せは、現在使用可能な標準的ＲＰＲＩＮＴＥＲ、ＱＳＥＲＶＥＲあるいはＰＳＥＲＶＥＲ印刷手法よりもはるかに強力なものになっている。
【００３１】
ネットワーク管理者のＰＣ１４で提供されるＣＰＣＯＮＳＯＬプログラム（以下、セクション４ｉでより詳細に解説）は、ＮＥＢ２（及び他のネットワーク構成要素）と接続され、選択されたネットワーク装置に対して現在の情報（インタフェース情報、制御情報、フォント情報、レイアウト情報、品質及び共通環境情報、二重情報及び雑情報）を表示するような機能を実行することができる。ＣＰＣＯＮＳＯＬは、また、ネットワーク装置の安全（デフォルト）条件を設定したり、変更することができる。ＣＰＣＯＮＳＯＬは、また、ＣＰＳＥＲＶＥＲあるいはＣＲＰＲＩＮＴＥＲ（詳細は後述するが、一般に、上記に解説したＰＳＥＲＶＥＲ及びＲＰＲＩＮＴＥＲソフトウェア・パッケージに類似している）のようなＮＥＢ２のアプリケーションを起動させたり、停止させたりすることもできる。更に、ＣＰＣＯＮＳＯＬによってＰＣ１４は、ログ・ファイルを表示したり、ログ・ファイルを消去したり、ローカルあるいはファイル・システムディスクのような記憶装置にログ・ファイルを書込むことができる。ＣＰＣＯＮＳＯＬは、また、ジョブ数、１つのジョブ当たりページ数、１分当たりページ数、１つのジョブ当たり時間、１日当たりページの合計数、１日当たりジョブの合計数、及び日数のようなＰＣ１４に関するプリンタ関連情報を表示することができる。ＣＰＣＯＮＳＯＬプログラムは、また、媒体関連情報及び非媒体関連情報のようなネットワーク関連情報をＰＣ１４上に表示することができ、また、このようなネットワーク統計値を消去することができる。
【００３２】
ネットワーク管理者のＰＣ１４に常駐するＣＰＩＮＩＴプログラム（以下、セクション４ｈでより詳細に解説）によって、ＣＰＳＥＲＶＥＲとＣＲＰＲＩＮＴＥＲのようなアプリケーション情報印刷サービスをセットアップすることができ、またそれらのアプリケーションを構成することができる。ＣＰＩＮＩＴは、また、時間／日付／時間帯、バッファ・サイズ、ディスクサイズ、ロギングフラッグ、ログ制限、及び安全（デフォルト）環境フラッグのような装置情報を設定及び／若しくは表示することができる。ＣＰＩＮＩＴは、また、デフォルトサービスヘッディングを復元し、ＮＥＢ２をリセットし、ＮＥＢ２をリブ−トし、フォントダウンロードを命じ、エミュレーションダウンロードを命じ、ＮＥＢ電源投入自己検査（“ＰＯＳＴ”）エラーを表示し、ＮＥＢ２ファームウェアレベルを表示し、現在のログ・ファイルサイズを表示するなどのことができる。
【００３３】
ＮＥＢ２にＰＳＥＲＶＥＲ及びＲＰＲＩＮＴＥＲ能力を設けることで、本実施例によって、ＬＡＮ６に関してプリンタ４の強化された機能が単一回路基板で達成される。したがって、プリンタ４は本当の意味で“ネットワークされた”プリンタであって、ネットワークに接続された単なるプリンタではない。
【００３４】
本実施例はＬＡＮ６上で独自の利点を提供するものであるが、これらの利点は、ＬＡＮ６が広域ネットワーク（“ＷＡＮ”）において他の１つ以上のＬＡＮに接続されている場合にも実現される。図２に、サーバＳ１  ４０、ＰＣ４２、４４及び４６、ならびにプリンタ４８が含まれる第１ＬＡＮ４１を含むようなＷＡＮが描写されている。サーバＳ１  ４０は、バス５２によってバックボーン５０に接続される。バックボーン５０は複数のバス間の電気接続にすぎない。また、このＷＡＮには、サーバＳ２  ６０、ＰＣ６２、６４及び６６、ならびにプリンタ６８からなる第２ＬＡＮ６１が接続されている。サーバＳ２  ６０は、バス５４によってバックボーン５０に接続されている。
【００３５】
このＷＡＮには、また、サーバＳ３  ７０、ＰＣ７２、７４及び７６、ならびにプリンタ７８からなる遠隔ＬＡＮ７１が含まれる場合もある。ＬＡＮ７１はシステムの他の部分から遠隔地にあるため、バス５６、トランスポンダ（これにはモデムが含まれる場合もある）５８、及び通信回線５９を介してバックボーン５０に接続されている。
【００３６】
このようなＷＡＮにおいて、ＰＣ４２がプリンタ７８の使用を要求するＰＳＥＲＶＥＲであると想定する。プリンタ７８が本実施例によるＮＥＢを装備している場合、直接のデータリンクを、ＰＣ４２とプリンタ７８との間に設定することができ、それによプリンタ７８にジョブ情報を送ることができ、プリンタ７８からＬＡＮ４１に状態と制御情報を送ることができる。したがって、ＷＡＮに接続された周辺機器にインストールされた場合であっても、本実施例によるＮＥＢはその強化された機能を成し遂げることができる。
【００３７】
図３は、本実施例によるＮＥＢ２の、プリンタ４及びＬＡＮ６との接続を描写するブロック・ダイヤグラムである。ＮＥＢ２は、ＬＡＮインタフェース１０１を介してＬＡＮ６に直接接続され、また、両方向インタフェース（ここでは、小型コンピュータ用周辺機器インタフェース（“ＳＣＳＩ”）１００）を介してプリンタ４にも直接接続されている。ＳＣＳＩインタフェース１００は、プリンタ４のＳＣＳＩバス１０２に接続されている。
【００３８】
ＮＥＢは、また、標準ＳＣＳＩ連結プロトコルを用いてＳＣＳＩバス上でデージーチェーンされた、他のプリンタ（ＲＰＲＩＮＴＥＲ）あるいは他の周辺機器のような付加的ＳＣＳＩ装置を使用することもできる。また、ＬＡＮ自体を介して他の周辺機器を駆動せるためにＮＥＢを使用してもよい。
【００３９】
プリンタ４は好適にはＳＣＳＩバス１０２、ＳＣＳＩインタフェース１０４及び１０６が含まれるオープンアーキテクチャプリンタである。プリンタ４には、ＲＡＭ１１０と通信し、また、印刷のメカニズムを実際に駆動させるプリンタエンジン１１２と通信する簡略命令セット・コンピュータ（“ＲＩＳＣ”）のようなプロセッサ１０８もまた含まれる。また、ＲＩＳＣプロセッサ１０８は、ユーザ定義情報のようなパワーサイクル間で保持する必要のある情報を格納するために、ＮＶＲＡＭ１１１と通信する。また、ＲＩＳＣプロセッサ１０８は印刷制御機構を実行するためにＲＯＭ１１３と通信する。プリンタ４には、また、不揮発的に大量のデータを保持することができるハードディスク１１４が含まれていてもよい。プリンタ４は、また、フロント・パネルディプレイ１１６、及びプリンタへ制御コマンドを入力するためのキーボード１１５を持っている。
【００４０】
好適には、プリンタ４には、ＳＣＳＩインタフェース１００の双方向性質を利用するオープンアーキテクチャが含まれていることが望ましく、これによって、ＮＥＢを介してＬＡＮ６にプリンタ４から多くの状態情報（もしくは他の情報）が送られ、また、遠隔地からプリンタの細かい制御も可能になる。たとえば、このようなオープンアーキテクチャが双方向ＳＣＳＩインタフェースを用いて使用された場合、プリンタ４のフロント・パネルディプレイ１１６に関する情報の大部分あるいはすべてを遠隔地へエクスポートすることが可能になり、また、プリンタフロント・パネルキーボード１１５の制御機能の大部分あるいはすべてを遠隔地から起動することも可能になる。
【００４１】
簡潔に述べれば、オープンアーキテクチャを有するプリンタ４には、４つの主要なサブシステム、すなわち、通信、ジョブパイプ、ページレイアウトとラスター機能、及びシステムサービスが含まれる。通信サブシステムでは異なる通信装置が処理され、ジョブアプリケーションの始動が行なわれる。プリンタがデータを受信し始めると、通信サブシステムは、検査のために各エミュレータに着信データの最初の部分を送る。データを処理することができる第１エミュレータがジョブパイプドライバになる。次いで、システムはジョブパイプを構築し、データを処理する。（パイプの一端にデータが入り込み、ページイメージが他端から流れ出る）。このジョブパイプには多くのセグメントが含まれ、その中の１つがジョブパイプドライバである。
【００４２】
ジョブパイプサブシステムは、パイプドライバセグメント（エミュレータ用アプリケーション）と入出力セグメントを持っている。入出力パイプセグメントは、他の少なくとも２つのセグメント（入力用として、ソース及びソースフィルタセグメント、及び、出力用として、出力フィルタ及びデータシンク）を持っている。通信サブシステムの入力セグメントによって、ファイル・システムからの情報で補足し得る入力データが伝達される。パイプドライバによって入力及び補足データが処理される。また、出力セグメントに送られるイメージングコマンドとページレイアウト情報もパイプドライバによって生成される。パイプドライバによって、プリンタディスク（もし存在すれば）へこの情報を格納してもよい。出力セグメントによって、このデータはページレイアウト及びラスターサブシステムへ送信される。
【００４３】
ページレイアウト及びラスターサブシステムによって、イメージング情報及びページレイアウト情報が受取られ、この情報はプリンタエンジン１１２のためにラスタ・イメージに変換される。このセクションは、ジョブパイプから完全に分離して作動する。
【００４４】
システムサービスサブシステムによって、ファイル・システムアクセス、コンソールアクセス、フォントサービス、基本システムサービス及びイメージ生成サービスが提供される。したがって、このようなオープンアーキテクチャを持つプリンタ４によって、インテリジェント性を備えた対話型ＮＥＢ２が十分に利用され、プリンタ４及びネットワーク全体に強化された機能が提供される。
２．  ハードウェア
図４はＮＥＢ２の主要構成要素を示すブロック・ダイヤグラムである。ＮＥＢ２は、ネットワークコネクタ２０２、２０３及び２０４を介してＬＡＮ６に接続されている。好適には、コネクタ２０２は１０ｂａｓｅ−Ｔ接続が可能なＲＪ４５であることが望ましい。１０ｂａｓｅ−５接続を可能とするために、コネクタ２０３はＤＢ１５コネクタを有するのに対して、コネクタ２０４は、１０ｂａｓｅ−２を接続可能な単純な同軸コネクタであってもよい。コネクタ２０２、２０３及び２０４のすべては、ネットワークコントローラ２０６（好適にはイーサネットネットワークコントローラ）に接続されている。しかし、コネクタ２０４は、まずトランシーバ２０８を介して接続される。
【００４５】
電源は、プリンタ拡張ポート２２６を介して、プリンタ４の＋５Ｖ電源からＮＥＢ２へ供給される。この＋５Ｖ電源は、また、電力変換器２１０及び２１２へも供給される。ＥＰＲＯＭ２２２を“フラッシング”（ローディング；以下、セクション４ｑで解説）させるために、この電力変換器２１２によって＋１２Ｖの電源が供給されているのに対して、電力変換器２１０によってトランシーバ２０８に−９Ｖ電源が供給されている。また、ネットワークコントローラ２０６は８キロバイトＳＲＡＭ２１４に接続されている。
【００４６】
ＮＥＢ２の心臓部はマイクロプロセッサ２１６であり、好適にはＮＥＣＶ５３が望ましい。マイクロプロセッサ２１６は、テストのために現在使用されているシリアル・ポート２１８に接続されている。また、マイクロプロセッサ２１６に接続されているものとして、５１２キロバイトＤＲＡＭ２２０、２５６キロバイトフラッシュＥＰＲＯＭ２２２、ＳＣＳＩコントローラ２２４（図３のＳＣＳＩインタフェース１００に対応）、プリンタ拡張ポート２２６、故障診断ＬＥＤ２４０、２５６バイト不揮発性ＲＡＭ２２８（以下ＮＶＲＡＭ２２８）、制御レジスタ２３０、及び、すべてのイーサネットボードに対してつけられているユニークな名称であるメディア・アクセス制御（“ＭＡＣ”）アドレスを格納するＰＲＯＭ２３２がある。
【００４７】
ＮＥＢ２のアーキテクチャには、広範なマルチエリアネットワークの運用と管理のための独自のサポート機能をこのアーキテクチャが持っているという利点がある。これらのサポート機能に含まれるものとして、たとえば、ネットワーク上の遠隔地（つまりネットワーク管理者のオフィス）からの、印刷制御と印刷状態のモニタ、次のユーザのために保証された初期環境を提供するための、各印刷ジョブ後のプリンタ構成の自動管理、及び、プリンタ作業量を特徴づけ、トナーカートリッジ取替えをスケジューリングするための、ネットワーク全体でアクセス可能なプリンタ使用統計値のログなどがある。ＮＥＢ設計における重要なパラメータは、双方向インタフェース（ここでは、ＳＣＳＩインタフェース１００）を介してＮＥＢ２から印刷制御状態をアクセスする能力である。これによって、プリンタコンソール情報が、ＮＥＢに、あるいは多くの有用な印刷サポート機能のプログラミングのための外部ネットワーク・ノードにエクスポートされることが可能になる。
【００４８】
表１に、ＮＥＢ２の主要なハードウェア構成要素に関する機能、インプリメンテーション、及び注釈を記述する。
【００４９】
0003592323.tif 000002
0003592323.tif 000003
好適には、ＮＥＢ２はプリンタ４内の拡張あるいはオプションスロットにインストールされることが望ましい。ＮＥＢ２は、したがって、上に説明された処理及びデータ記憶装置機能を備えた内蔵型ネットワーク・ノードである。
【００５０】
マイクロプロセッサ２１６によって、ネットワークパケット伝送及び受信のデータ・リンクレイヤが実現される。ネットワークデータ転送オーバヘッドは、ネットワークコントローラ２０６によって直接管理された専用ＳＲＡＭパケットバッファ２１４を用いることによって最小化される。マイクロプロセッサ２１６によって、ネットワークコントローラ２０６を介してＳＲＡＭパケットデータ及びネットワークメッセージのブロックがアクセスされ、大容量ＤＲＡＭ２２０へそのブロックが移される。
【００５１】
印刷イメージデータ及び制御情報のブロックはマイクロプロセッサ２１６によってアセンブルされ、プリンタ拡張ポートのＳＣＳＩ転送プロトコルを用いて、ＳＣＳＩコントローラ２２４によりプリンタ４へ転送される。同様に、プリンタ状態情報は、プリンタ４からＳＣＳＩブロックフォーマットのＮＥＢ２へ転送される。ＳＣＳＩコントローラ２２４は、増加したデータ処理量に対してＮＥＢがフルに能力を発揮するために、ネットワークコントローラ２０６と並行して作動する。
【００５２】
マイクロプロセッサ２１６は、好適にはＮＥＣＶ５３チップであることが望ましい。このチップは、ダイレクト・メモリ・アクセス（“ＤＭＡ”）、割込み、タイマ及びＤＲＡＭリフレッシュ制御をサポートする１６ビットインテル互換性プロセッサを備えた、高速、高集積マイクロプロセッサである。ＮＥＢ２上のデータ・バス構造は、マイクロプロセッサ入出力転送時に８ビット／１６ビットダイナミックバスサイジングを利用するため、１６ビット長で実現されている。マイクロプロセッサ２１６用の制御ファームウェア及びアプリケーション・ソフトウェアは、ＮＥＢ２上のＥＰＲＯＭ２２２に格納される。電源投入自己検査後、ファームウェアコードは高性能ＤＲＡＭ２２０に選択的に移され、実際に実行される。プリンタがネットワーク上に最初にインストールされると、ネットワーク及びプリンタの構成パラメータがＮＶＲＡＭ２２８に書込まれる。このようにして、プリンタの電源のオンオフが繰り返されたとき、ＮＥＢソフトウェアがインストールパラメータを回復することがＮＶＲＡＭ２２８によって可能になる。
３．  ソフトウェア
ＬＡＮ用ソフトウェアに含まれるものとして、ネットワークソフトウェアと、ＮＥＢ内蔵型ソフトウェアやネットワーク管理者のＰＣに常駐するソフトウェアのようなＮＥＢにカスタマイズされたソフトウェアとが組合わされたものがある。
３ａ．  ネットワークソフトウェア
本実施例において、ＮｅｔＷａｒｅネットワーク用ソフトウェアはネットワークのノード間の相互作用を管理するために使用される。その結果、クライアントワークステーションは、ディスク・ファイルサーバ、データｂａｓｅサーバ、プリント・サーバなどのようなサーバノードからのサービスを共用し、受信することができる。ＮｅｔＷａｒｅそれ自身は、これらのサーバノード及び各ワークステーションノード上で実行するソフトウェアモジュールの組合わさったものである。少なくとも１つのファイル・サーバがノーベル社ネットワークで提供される。ＮｅｔＷａｒｅ（商標）は、ファイル・サーバのＰＣ用オペレーティング・システムとして実行され、基本的なネットワークの中心機能及びユーティリティを提供する。４つまでのネットワーク・インタフェースカード（好適にはイーサネットあるいはトークン・リング接続）を用いて、ファイル・サーバを１種以上のＬＡＮに接続することができる。これらの構成において、図２に示すように、“ブリッジ”あるいは“バックボーン”サービスが複数のＬＡＮ間で提供され、その結果、プリンタを含むリソースは共用“インタネット”（すなわち、１つのＬＡＮから別のＬＡＮへの）となり得る。
【００５３】
ワークステーション上で、ＮｅｔＷａｒｅは、制御ソフトウェアのＮｅｔＷａｒｅ“シェル”として、ワークステーションオペレーティング・システム（ＤＯＳあるいはＯＳ／２）と協動して実行する。このシェルには、ネットワーク上へワークステーションオペレーティング・システムのサービスを拡張する効果があり、このため、ネットワークリソースはワークステーションに対してローカルとなる。
【００５４】
ノーベル社ＰＳＥＲＶＥＲソフトウェアには、ネットワーク・ノードから印刷要求を出すために、（１６台までの）プリンタの１グループを制御するジョブがある。要求は、ネットワーク待ち行列管理サービスを用いて、ネットワークファイル・サーバに保持される印刷待ち行列という形で構造化される。待ち行列項目には、印刷されるファイルのリストが含まれている。このファイルには、タブ、書式送りのような印刷データ、及び他のプリンタ記述言語（“ＰＤＬ”）コマンドが含まれる。単一ＰＳＥＲＶＥＲによっていくつかの待ち行列を出すことができる。
【００５５】
標準的なノーベル社サーバは、実行するネットワーク・ノードのタイプに依って異なるバージョンで使用可能である。プリント・サーバプログラムは、ファイル・サーバ自体に常駐することができる。また、プリント・サーバソフトウェアのバージョンをスタンド・アロン型ＤＯＳステーションノードにロードして、そのノードを専用プリント・サーバにしてもよい。
【００５６】
本実施例のＮＥＢ２にプリント・サーバ機能（ＣＰＳＥＲＶＥＲ）を設けることによって、付属ＰＣを必要とせずに標準的なノーベル社プリント・サーバの印刷サービスがすべて、ＮＥＢ及び付属プリンタから提供される。
【００５７】
プリンタはそれ自身“ローカル”あるいは“リモート”のいずれかであると考えられる。ローカルプリンタとはプリント・サーバノードに物理的に接続されているものである。ＮＥＢ２の場合、ローカルプリンタはＮＥＢを格納しているプリンタである。リモート・プリンタは、それらが接続されているＰＣで実行するＲＰＲＩＮＴＥＲプログラムによって管理される。ＲＰＲＩＮＴＥＲはＬＡＮ上の別の場所で実行するＰＲＩＮＴＳＥＲＶＥＲＳから印刷データを受信する。本実施例のＮＥＢ２は、ＲＰＲＩＮＴＥＲ機能（ＣＲＰＲＩＮＴＥＲ）を備えることができ、ネットワークリモート・プリンタとしてＮＥＢ２のプリンタが提供される。このモードで、ＮＥＢ２は、ノーベル社プリント・サーバの標準的なバージョンと完全に互換性をもつ。
【００５８】
ノーベル社ＮｅｔＷａｒｅ（商標）によって、いくつかの印刷ユーティリティが提供され、制御ファイルサーバ、あるいは、ワークステーションｂａｓｅプリント・サーバ及びその付属プリンタを構成し、制御する。ノーベル社プログラムＰＣＯＮＳＯＬＥは、メニュー方式ユーティリティであり、このユーティリティによって、ユーザ（プリンタコンソールオペレータ）は、新しいプリント・サーバを作成し、１６台までのローカルまたはリモート印刷ポートを構成し、印刷待ち行列を作成し、プリンタに待ち行列を割当て、そしてプリンタ及びサーバオペレーションを始動／停止することができる。
３ｂ．  ＮＥＢカスタマイズソフトウェア
ＮＥＢ２には、ＮｅｔＷａｒｅによって提供される全範囲の印刷サービスが実現されるソフトウェアモジュールが組み込まれている。これには、プリンタ内のＮＥＢ２で実行する、内部ＮｅｔＷａｒｅ互換モジュールに加えて、ネットワークのワークステーションノード上で実行する外部ＮｅｔＷａｒｅ互換モジュールも含まれている。ＮＥＢ２で使用するために開発された、ＮｅｔＷａｒｅと互換性をもつ特定プログラム（たとえば、後述するカスタマイズされたＣＰＳＥＲＶＥＲ及びＣＲＰＲＩＮＴＥＲプログラム）に、ノーベル社から標準的印刷モジュールと同じ汎用オペレーションインタフェースが提供されるため、ノーベルユーザ及びネットワーク管理者が親しみやすい。カスタマイズされたバージョンには、プリンタ４のオープンアーキテクチャを利用する拡張機能が含まれ、ネットワーク全体に渡って印刷サービスの管理が強化されている。
【００５９】
表２に、ＮＥＢ用に開発されたカスタマイズソフトウェアの機能、インプリメンテーション、及び、注釈を示す。
【００６０】
0003592323.tif 000004
３ｃ．  ＮＥＢ内蔵型ソフトウェア
ＮＥＢ２用に開発されたこのソフトウェアには、ＮＥＢに内蔵されたソフトウェア、及びネットワーク管理者のＰＣ１４にロードされたソフトウェアが含まれる。ワークステーションＰＣ及びそのＤＯＳオペレーティング・システムのオーバヘッドなしで、プリンタ４内部に直接、ＮｅｔＷａｒｅ（商標）と互換性をもつノード及びＮｅｔＷａｒｅと互換性をもつ印刷サービスの両方が、このＮＥＢ内蔵型ソフトウェアによって提供される。ＮＥＢ内蔵型ソフトウェアに含まれるものとしては、複数のアプリケーションモジュール（ＣＰＳＥＲＶＥＲ、ＣＲＰＲＩＮＴＥＲなど）、実時間サービスモジュール、ネットワークプロトコルスタック、及び、アプリケーション交換、拡張処理、装置セマフォを行ない、バッファプール管理を共用するモニタ・プログラムがある。ＮＥＢの機能は、アプリケーションモジュールのタイプ、及びＮＥＢ２内に構成されたネットワークレイヤ通信ソフトウェアのプロトコルスタックの数によって決定される。マルチタスク処理で各アプリケーションモジュールにＮＥＢ処理時間が割当てられるのに対して、プリンタ４とネットワーク間の相互作用は、実時間事象に応答するモニタ・プログラムによって調整される。
【００６１】
ＮＥＢソフトウェアは２つのレイヤ（“ランタイム”すなわち実時間レイヤ、及び、“ソフトタイム”すなわちアプリケーションレイヤ）で機能する。ランタイムレイヤは、マイクロプロセッサ割込みに応答するＮＥＢソフトウェアの要素で構成される。タイマ、ＳＣＳＩポートからの待機データ転送要求あるいはプロトコルスタックルーチンを介したＬＡＮデータ、及び、ＣＰＳＯＣＫＥＴ（以下、セクション４ｊで解説）通信メカニズムのような機能がこのレイヤによって提供される。
【００６２】
このソフトタイムレイヤは、実時間事象がすべて発生した後、ＮＥＢのマイクロプロセッサ２１６の制御を行なうモニタ・プログラム（以下、セクション４ｌで解説）によって調停され、制御される。非強制排除（連動マルチタスク）手法を用いて、ロードされる種々のアプリケーションモジュール間でプロセッサ資源を分割し、その結果、マイクロプロセッサ資源を確保することにより、どんなアプリケーションモジュールも他のモジュールを強制排除できないようにロードされる。
【００６３】
ＮＥＢのＥＰＲＯＭ２２２には、２５６キロバイトまでのアプリケーションモジュールプログラム及びＮＥＢ初期化コードが含まれている。電源投入時あるいはプログラムされたリセット時に、ＮＥＢのＥＰＲＯＭコードがＮＥＢのＤＲＡＭ２２０へ選択的に転送されないうちに、ＮＥＢ２によって、ＥＰＲＯＭ２２２からＰＯＳＴが実行される。ＰＯＳＴが成功した場合、ＮＥＢ２によって、そのプロトコルスタック及びアプリケーションモジュールがＤＲＡＭ中にロードされ、そのアプリケーションモジュールの実行が開始される。
【００６４】
その基本的な構成において、ＮＥＢ２には、２つの内蔵された構成をもつＮｅｔＷａｒｅ互換性アプリケーションモジュールが含まれている。即ち、カスタマイズされたリモート・プリンタ（“ＣＲＰＲＩＮＴＥＲ”）とカスタマイズされたプリント・サーバ（“ＣＰＳＥＲＶＥＲ”）である。好適には、ＮＥＢは、１回に、これらの構成の１つだけにおいて実行されることが望ましい。さらに、ＮＥＢの範囲内において、ネットワークプロトコルスタックがロードされ、機能することが、これらのアプリケーションモジュールによって要求される。
【００６５】
ＲＰＲＩＮＴＥＲ機能を備えて構成された時、ＮＥＢは、ＣＲＰＲＩＮＴＥＲモジュールを用いて、外部プリント・サーバへのスレーブ（ユニット）としてのそのプリンタを操作する。この構成では、標準的ノーベルプリント・サーバが標準的ノーベルＲＰＲＩＮＴＥＲから予期されるものをエミュレートして、限定されたプリンタ状態情報のみがＬＡＮへエクスポートされる。しかし、ＣＰＣＯＮＳＯＬユーティリティ（上述）がネットワーク管理者のＰＣ１４で実行される場合は、プリンタに関する拡張された状態情報はなお使用可能である。
【００６６】
上述のように、ＮＥＢ２には内蔵型ソフトウェアプログラムＣＰＳＥＲＶＥＲ及びＣＲＰＲＩＮＴＥＲが含まれ、このプログラムによって、ＮＥＢはＰＳＥＲＶＥＲあるいはＲＰＲＩＮＴＥＲのいずれかの機能性を備えて、ネットワーク上で実行することが可能になる。ＬＡＮ上で、周辺機器状態及び制御情報を使用可能にするカスタマイズされたＮＥＢ内蔵型ソフトウェアは、ＣＰＳＯＣＫＥＴ（以下、セクション４ｊで解説）である。ＣＰＳＯＣＫＥＴは、ＮＥＢ上で実行され、ＮＥＢ２及び付属プリンタ４の両方にアドレス指定されたＬＡＮの通信をモニタする。さらに、ＣＰＩＮＩＴとＣＰＣＯＮＳＯＬが実行しているとき、ＣＰＳＯＣＫＥＴはそれらと通信する。ＣＰＳＯＣＫＥＴには、装置環境用デフォルト設定値表を保持し、電源投入時の基本的構成情報（フォントとエミュレーション）をダウンロードし、ＣＰＣＯＮＳＯＬディスプレイに装置情報、統計値及びログ情報を送り、リセット、リブート及びダウンロードする能力が備わっている。ＣＰＳＯＣＫＥＴは、また、ＮＥＢ２の構成に責任を負う。さらに、ＣＰＳＯＣＫＥＴは、ＣＰＩＮＩＴの要求を受けてＮＥＢ上でアプリケーションを構成し起動する。また、ＣＰＳＯＣＫＥＴによって、正確なプロトコルスタックが各々の構成されたアプリケーションに対して使用可能となることが保証される。ＣＰＳＯＣＫＥＴは、ＣＰＩＮＩＴとＣＰＣＯＮＳＯＬの両方の要求を受けてＮＥＢ２の設定値及びプリンタ変数を扱う。最終的に、ダウンロード設備（たとえばネットワーク管理者のＰＣ１４）はＣＰＳＯＣＫＥＴと連絡をとり、要求されるいかなるファームウェアのダウンローディング（ＥＰＲＯＭ２２２をフラッシュするような）をも遂行する。
【００６７】
初期化に際して、ＣＰＩＮＩＴとＣＰＣＯＮＳＯＬのようなプログラムによって、ＮＥＢ２のカスタマイズされたソフトウェアを持つすべてのネットワーク装置を捜すＬＡＮ上のサービス公示プロトコル（“ＳＡＰ”）が発行される。ＣＰＳＯＣＫＥＴによってこの同報信号が受信され、応答が行われる。次いで、ＣＰＩＮＩＴまたはＣＰＣＯＮＳＯＬは、カスタマイズされたクライアントソケットを用いて、ＣＰＳＯＣＫＥＴとの特別の接続を設定する。次いで、ＣＰＳＯＣＫＥＴによって、多重受信が通知され、ＮＥＢ制御、装置情報、基本的構成情報、アプリケーション情報、統計値及びロギングのようなクライアントサービストランザクションが提供される。たとえば、ＣＰＩＮＩＴによって、アプリケーションの構成を要求することができ、また、ＣＰＣＯＮＳＯＬによって、すでに構成されたアプリケーションの起動あるいは停止を要求することができる。適切なオプション（プロトコルスタック）が使用可能になり、アプリケーションそれ自身が構成を許される前に、アプリケーションのために適切なオプションが構成されることが、ＣＰＳＯＣＫＥＴによって保証される。ＮＥＢ内部で、ＣＰＳＯＣＫＥＴオペレーションモジュールは常に起動されている。
【００６８】
ＮＥＢ中にさらにアプリケーションモジュール（たとえばＵＮＩＸ印刷サービスや関連するプロトコルインプリメンテーション）をロードした後、付加的な印刷サービスアプリケーションを利用してもよい。
３ｄ．  ＰＣ常駐カスタマイズソフトウェア
ＮＥＢ２の機能をさらに強化するために、カスタマイズされたソフトウェアもまたネットワーク管理者のＰＣ１４に提供される。たとえば、カスタマイズされたＰＣＯＮＳＯＬＥ（“ＣＰＣＯＮＳＯＬ”；以下、セクション４ｉでより詳細に解説）ユーティリティによってノーベル社のＰＣＯＮＳＯＬＥプリンタユーティリティに拡張機能が提供され、オープンアーキテクチャプリンタ４に対する強力な制御機能及びモニタ機能へのアクセスが可能になる。たとえば、ＣＰＣＯＮＳＯＬを用いることによってプリンタからネットワークに対して使用可能な典型的な状態制御情報として、以下のものがある。：（Ａ）オンライン／オフライン、無応答、時間／日付／時間帯、言語、オフセット、エラースキップ設定値、タイマ、ブザーイネーブル、トナー不足、用紙フル、用紙カウント、最終サービスからのカウント、用紙切れ、紙づまりのような状態及び制御情報；（Ｂ）１次、２次、グラフィックセット、スケーリング、回転、エリートのようなフォント情報；（Ｃ）用紙方向、行ピッチ、文字ピッチのようなレイアウト情報；（Ｄ）コピー枚数、オーバレイ、ジョブ完了、コマンド・モード、デフォルト用紙サイズ、現在の用紙サイズのような品質及び共通環境情報、及び（Ｅ）インタフェース、バッファ・サイズ、フィーダ選択、両面印刷、ページスタックオーダ、などのような構成情報。
【００６９】
更に、ＣＰＣＯＮＳＯＬを用いることによってネットワークにアクセスできるプリンタ用構成データには、以下のものが含まれる：（Ａ）プロトコルタイプ、ノード名、ファイル・サーバ名、ルーティング、ＰＯＳＴエラーコード、ＮＥＢファームウェアレベル、ＭＡＣアドレス、サーバモードのようなネットワーク・グループ情報；及び（Ｂ）安全（デフォルト）環境、フォント、現在のディスク、ディスクサイズ、初期環境、ロギングオン−オフ、ログ・ファイルサイズ、構成／非構成、及びネットワーク名のようなプリンタグループ情報。さらに、印刷ジョブフロー、プリンタエンジンの使用法及びネットワークの作動状態のログを記録することができる。このような使用法及び統計値ログエントリの例として以下のものが含まれる：（Ａ）受信統計値、転送統計値、及び非媒体関連情報のようなネットワーク・グループ情報；（Ｂ）日付／時間／時間帯、ログイン（ユーザ名）、ジョブ名、ページ、コピーカウント、及び印刷状態のようなジョブ・エントリ情報；（Ｃ）初期化エントリ情報；（Ｄ）エラー状態エントリ情報；（Ｅ）クリアログエントリ情報；及び、（Ｆ）ジョブ数、ページ／ジョブ、ページ／分、時間／ジョブ、ページ合計／日、ジョブ合計／日、日数及びリセット合計のようなプリンタグループ情報。
【００７０】
ＣＰＣＯＮＳＯＬは、メニュー方式のＤＯＳ実行可能プログラムであり、その機能はノーベル社ＰＣＯＮＳＯＬＥプリンタユーティリティに拡張機能を与えるものである。ＣＰＣＯＮＳＯＬ拡張機能によって、オープンアーキテクチャプリンタ４に対する追加的制御機能及びモニタ機能へのアクセスが可能になる。これらの機能によって、ネットワーク管理者のＰＣ１４が遠隔地からプリンタを制御し保守することが可能になり、ネットワーク全体の印刷サービス管理が強化される。要するに、ＣＰＣＯＮＳＯＬとは、ネットワーク管理者へ印刷制御機能をエクスポートし、安全（デフォルト）環境の再構成を許可し、ネットワーク管理者が、ネットワーク及びプリンタ状態、ジョブ統計値、及び、これまで処理したジョブ及びエラー状態のログをみることを可能にするユーティリティである。ＮＥＢ内蔵型ソフトウェアプログラム・モジュールＣＰＳＯＣＫＥＴと通信することによって、ＣＰＣＯＮＳＯＬは要求された情報を収集する。
【００７１】
ネットワーク管理者のＰＣ１４に常駐するもう１つのカスタマイズソフトウェアプログラムとして、カスタマイズされた周辺機器初期化プログラム（“ＣＰＩＮＩＴ”；以下、セクション４ｈで解説）があり、このプログラムもメニュー方式ＤＯＳ実行可能プログラムである。このプログラムの機能は、ＮＥＢ２に付属のプリンタ４を構成し、再構成し、初期化することである。
【００７２】
ＣＰＩＮＩＴモジュールによってＮＥＢが構成され、ＮＥＢは、１つの付属プリンタを備えたプリント・サーバとして働く。また、このモジュールはその一次ファイルサーバを指定し、このサーバによって、ＮＥＢはどの待ち行列を使うべきかを決定する。ＣＰＩＮＩＴはＬＡＮ上で同じようにカスタマイズされたすべての装置（たとえば他のオープンアーキテクチャプリンタにインストールされた他のＮＥＢ）を管理するプログラムである。ＣＰＩＮＩＴは、オープンアーキテクチャ周辺装置内に常駐する他のＮＥＢとネットワーク上で交信することによってこのタスクを遂行する。ＣＰＩＮＩＴを用いて、ＣＰＳＥＲＶＥＲまたはＣＲＰＲＩＮＴＥＲとしてＮＥＢを構成するような適切な基本的構成情報で各々のＮＥＢが構成される。基本的構成情報に含まれるものとして、ＮＥＢ環境設定値（どのプリント・サーバアプリケーションが実行中であるかを含めて）があり、また同様に、装置環境オプション（たとえばプリンタ初期化時刻をダウンロードするための、フォント及びエミュレーションのリスト）、及び、装置デフォルト設定値（内部装置時間／日付／時間帯、バッファ・サイズ、ディスク及びロギング情報、及びプリンタ名のような）もある。ＣＰＩＮＩＴプログラムは、ＮＥＢに関する状態情報（ＮＥＢにロードされたファームウェアレベル）も表示し、また、潜在的ＰＯＳＴエラーを報告する。
【００７３】
他のどのカスタマイズされた装置がＬＡＮで使用可能かを調べるために、ＣＰＩＮＩＴプログラムはネットワーク全体に渡って同報通信を行なう。このような他のカスタマイズされた装置に付属したＮＥＢが、その識別番号、そのデバイス・タイプ及びその構成状態を用いて応答する。ネットワーク管理者に提示される、これらのＮＥＢと装置のリストがＣＰＩＮＩＴによって構成され、それらの構成あるいは再構成が可能になる。
【００７４】
また、ダウンローダプログラムをネットワーク管理者のＰＣ１４にロードし、ネットワークを介して実行可能ファイルをＮＥＢへダウンロードしてもよい（以下、セクション４ｈでより詳細に解説）。
【００７５】
ネットワーク管理者のＰＣ１４で実行できる、もう一つのカスタマイズされたプログラムとして、ＣＰＦＬＡＳＨがある。これは、ＥＰＲＯＭ２２２内へ新しいファームウェアを遠隔からフラッシュするために使用されるが、これについては、以下、セクション４ｑでより詳細に解説する。
４．  オペレーション
最初に、図５Ａ、図５Ｂ及び図５Ｃのフローチャートに関して、ＮＥＢの構造及び機能についての概論を行なう。その後、ＮＥＢのハードウェア及びソフトウェアの種々の態様のより詳細な説明をセクション４ａから４ｑに関して行なう。
【００７６】
本実施例では、プリンタとＮＥＢ間の通信の双方向的性質、及び、マルチタスク処理によるＮＥＢの情報処理能力が利用される。すなわち、双方向ＳＣＳＩバスによって大量のデータをプリンタへ、かつ、プリンタから双方向へ伝送することができ、ＮＥＢによって大量の特定状態データをプリンタから受信したり、周辺機器から入力されたデータ（スキャナから入力されたイメージデータのような）までも受信することが可能である。ＮＥＢマイクロプロセッサは、マルチタスク方式によって（シーケンシャルであるが分割処理を行う）情報を処理し、ネットワークから受信される情報及びプリンタから受信される情報を効率的に並行処理する。このようにして、近実時間方式でネットワークとプリンタ双方にＮＥＢが応答することが、このマルチタスク処理によって保証される。
【００７７】
図５Ａ、図５Ｂ及び図５Ｃには、ＮＥＢ及びそれに関連するソフトウェアがローカルエリアネットワーク（ＬＡＮ）に接続されたプリンタにインストールされる場合に発生し得る事象の概念的シーケンスを描写する、概念フローチャートが含まれる。全体として、プリンタによって印刷情報が伝えられ、プリンタは双方向ＳＣＳＩインタフェースを介してＮＥＢに接続されている。プリンタは、また、他のソースから印刷情報を受信するためのパラレルポート及び／又はシリアルポートを持っていてもよい。ＮＥＢは、双方向ＳＣＳＩインタフェースを介してプリンタに接続されており、ボードによって、ローカルエリアネットワーク（ＬＡＮ）からプリンタ情報が受信される。このボードによって、ＳＣＳＩインタフェースを通してプリンタへ印刷ジョブ、及び、プリンタ状態の照会が送信される。そして、ＳＣＳＩインタフェースを通してプリンタからプリンタ状態が受信され、ネットワークを通してプリンタ状態が報告される。
【００７８】
ＮＥＢが、スキャナのようなデータ生成装置に接続されている場合、このボードは双方向ＳＣＳＩインタフェースを介してスキャナに接続され、ＬＡＮインタフェースを介してネットワークに接続される。ボードによって、ネットワークから状態要求情報が受信され、この情報は双方向インタフェースを通してスキャナへ渡される。このボードは、また、双方向インタフェースを通して、スキャナによって生成されたデータを受信し、ＬＡＮインタフェースを通してネットワーク上へそのデータを渡す。
【００７９】
ＮＥＢがプリンタにインストールされる場合に起り得る事象のシーケンスを説明する。図５Ａにおいては、まず、ステップＳ１において、電源がＮＥＢに印加される。ステップＳ２で、ＮＥＢによって、ＥＰＲＯＭ２２０から電源投入自己検査（“ＰＯＳＴ”）が実行される。ステップＳ３で、ＰＯＳＴが無事完了した場合、処理はステップＳ５へ移り、このステップで、ＮＥＢのＥＰＲＯＭ２２２オペレーションコードによって、ＮＶＲＡＭ２２８からネットワーク及びプリンタ構成コードが読取られる。ＰＯＳＴがステップＳ３で成功裡に遂行されなかった場合、故障表示がステップＳ４で経過記録される。また、この情報は、ＬＡＮインタフェースを通してネットワークに伝送されてもよい。ＮＥＢあるいはプリンタの故障／診断ライトが点灯されてもよい。
【００８０】
ネットワーク及び構成コードがＮＶＲＡＭ２２８から読取られた後、処理はステップＳ６へ進む。このステップにおいて、ＮＥＢのＥＰＲＯＭオペレーションコードによって、選択された構成モジュール、プロトコルスタック、ハウスキーピングモジュール、など（たとえばマルチタスク処理モジュールＭＯＮＩＴＯＲ、ＣＰＳＯＣＫＥＴ、ＣＰＳＥＲＶＥＲなど）が、ＥＰＲＯＭ２２２から読取られ、こうして選択されたモジュールがＤＲＡＭ２２０へダウンロードされる。即ち、ステップＳ６において、対話型ネットワークボードのオペレーションモード（たとえばＣＰＳＥＲＶＥＲあるいはＣＲＰＲＩＮＴＥＲ）を定義する構成が選択される（ＣＰＩＮＩＴによって設定された構成に従って）。以下、セクション４ｄでより詳細に解説されるように、バイナリの構成コードがＬＡＮを通して送られ、ＮＶＲＡＭ２２８に格納される。ＮＥＢがブートアップされた後、この構成コードはＲＯＭ常駐の電源投入処理ステップを用いてＮＶＲＡＭから読取られる。このＲＯＭ常駐処理ステップを用いて、ＮＶＲＡＭから読取られた構成コードに従ってＲＯＭ常駐実行可能モジュールが選択される。これらのモジュールは、ＮＶＲＡＭの構成コードの２進数字へのビット的対応で選択される。次いで、これらの選択されたモジュールは、ＤＲＡＭ中へ格納され、これらのモジュールに対する実行制御はＤＲＡＭへ渡され、ここで、これらの選択モジュールが実行される。このようにして、複数の構成を定義し、選択的に変更することができる。
【００８１】
ステップＳ７で、ＬＡＮ上に伝送されたイーサネットフレームタイプの情報パケットが判定される（以下、セクション４ｅでより詳細に解説）。すなわち、イーサネットによって、異なる４つのフレームタイプ（イーサネット８０２．３；イーサネットＩＩ；イーサネット８０２．２；及びイーサネットＳＮＡＰ）がサポートされている。イーサネットフレームタイプを判定するために、プレスキャン処理（“ＰＲＥＳＣＡＮ”）によって、どんなフレームタイプが、ＬＡＮ上に常駐しているかが（任意のＬＡＮ同報通信データから）判定され、そのデータに対して適切なＮＥＢ常駐プロトコルスタックが構成される。フレームタイプを示すバイトに到達するまで、プレスキャン処理によって、受信ＬＡＮパケットからバイトのデータが分離される。簡潔に述べれば、ステップＳ７においては、複数の異なる種類のフレームタイプのＬＡＮパケットを処理する能力がＮＥＢに提供される。この能力は、ＬＡＮからデータのフレームを受信し、フレームタイプを判定するためにこのフレームをプレスキャンし、適切な処理プログラムを用いて、識別されたフレームをＮＥＢ上で処理することにより、ＮＥＢに提供される。プレスキャンオペレーションには、フレームのヘッドから所定のバイト数を剥ぎ取り、フレームタイプを示す識別コードを識別するために剥ぎ取られたフレームを処理し、識別されたフレームを処理プログラムに伝送するサブステップが含まれる。
【００８２】
ステップＳ８で、ステップＳ６でダウンロードされたタイマモジュールによって、最も近いＬＡＮサーバが見つけられ、現在の時間が要求される。現在の時間を受信した後、処理はステップＳ９へ進み、そこで、時刻が午前０時かどうか、すなわち返信された時間が新しい日付を示すかどうかが判定される。
【００８３】
ステップＳ９からＳ１２にはＣＰＳＯＣＫＥＴプログラムによってＮＥＢで行われる、いわゆる“オートログイン”機能が含まれる。これは、自動的にかつ系統的にプリンタからＬＡＮへ状態情報を送るためである（オートログインについては、以下、セクション４ｋでより詳細に解説）。ステップＳ９で、午前０時に達していない場合、処理はステップＳ１３へ進む。しかし、午前０時に達していた場合、ＮＥＢマイクロプロセッサ２１６によって、ＳＣＳＩバスを通してプリンタに要求が伝送され、プリンタはＮＥＢに現在の状態を返信する。たとえば、プリンタによって、印刷累計ページ数がＮＥＢに返信される。ステップＳ１１で、ＮＥＢマイクロプロセッサ２１６によって、１ジョブ当たりページ数あるいは１日当りページ数のようなプリンタ統計値が計算され、ＮＥＢによって、プリンタに送られたジョブ数及び日付の記録が取られる。ステップＳ１２で、プリンタ統計値は、プリンタのハードディスク１１４あるいはＮＶＲＡＭ１１１のような不揮発性メモリあるいはＮＥＢのＮＶＲＡＭ２２８に転送される。もしくは、ステップＳ１０、Ｓ１１、Ｓ１２はステップＳ９より前に実行してもよく、それによって統計値は分毎に格納される。
【００８４】
ステップＳ９からＳ１２を要約すれば、双方向インタフェースを介してＬＡＮ通信用対話型ネットワークボードに接続されたプリンタのシステム統計値を記録する方法には、印刷したページ数をプリンタ中で数えるステップと、印刷されたジョブ数をボード上で数えるステップとが含まれる。プリンタが、双方向インタフェースを通じて、日毎の印刷ページ数の問合わせを受けると、ボードはこのページ数、ジョブ数及び他の状態情報を用いて、１日毎の統計値を計算する。次いで、この１日毎の統計値が格納され、ネットワーク管理者のＰＣ１４からＣＰＣＯＮＳＯＬを用いてこれをアクセスすることができ、また、遠隔地で表示することもできる。“オートログイン”機能の追加的特徴として、異なるレベルの統計値を経過記録することができるということがある。たとえば、基本的なレベルで、各ジョブに対するページ数だけを経過記録してもよい。より高度のレベルでは、ジョブ当たりページ数に障害状態のログを加えたものを記録したり、ジョブ開始及び終了時刻を、障害状態及び１ジョブ当たりページ数に加えて記録することもできる。ロギングレベルはＣＰＩＮＩＴによって設定される。
【００８５】
図５ＢのステップＳ１３で、ＳＡＰＳＥＲＶＥＲプログラム（以下、セクション４ｇでより詳細に解説）によって、ＮＥＢがＣＰＳＥＲＶＥＲ及びＣＰＳＯＣＫＥＴ双方のアイデンティティを持っているものとして公示される。このようにして、ＮＥＢ及び付属プリンタは、ＰＳＥＲＶＥＲ及びカスタマイズされたエンティティ（ＣＰＳＯＣＫＥＴ；すなわち、インストールされたＮＥＢを持つ他のＬＡＮ周辺機器に類似）の対をなす役割で機能を果たすことができる。ＳＡＰＳＥＲＶＥＲはＮＥＢ常駐ＴＳＲプログラムであり、このプログラムによって、２つ以上のサーバが同一ノード上で同時にネットワーク・サービスを公示することが可能である。このようにして、ＣＰＳＯＣＫＥＴとＣＰＳＥＲＶＥＲは、ＳＡＰＳＥＲＶＥＲを介してそのサービスを通知し、他のネットワークアプリケーションからの問合せに応答する。各イーサネットボードは１つのＳＡＰソケット番号しか持ち得ないため、ＳＡＰＳＥＲＶＥＲが機能し、混乱なく双方のＮＥＢアイデンティティがＬＡＮへ公示される。
【００８６】
要するに、ステップＳ１３は、単一の対話型ネットワークボードを２つのネットワークサーバ（たとえばＣＰＳＥＲＶＥＲとＣＰＳＯＣＫＥＴ）としてみなす方法であり、この方法には、そのボードが第１タイプのネットワークエンティティであることを示す信号（そのボードにユニークな識別信号を含む信号）を所定の時間間隔でネットワークへ伝送するステップと、次いで、そのボードが第２タイプのネットワークエンティティであることを示す第２の信号（同様に、同一のユニークな識別信号を含む）を所定の時間間隔でネットワークへ伝送するステップとが含まれる。ひとたびネットワークエンティティのタイプの１つの機能をこのボードが果たすように要求するネットワークからの信号が受信されると、ボードと（本ボードは要求されたタイプのネットワークエンティティとして機能する）この要求を生成したネットワークエンティティとの間で直接の通信が確率される。このように直接の通信が確率されると、ＮＥＢは新しいユニークな識別信号を利用する。
【００８７】
ステップＳ１４で、ＬＡＮ及びＳＣＳＩインタフェースの双方は、ＣＰＳＯＣＫＥＴ（以下、セクション４ｊでより詳細に解説）へ向けられるデータのためにチェックされる。ＳＣＳＩインタフェースは、典型的には、それまで受信された状態要求に応じてＬＡＮに渡されるプリンタ状態データを持つことになる。ＣＰＳＯＣＫＥＴはＮＥＢ常駐ＴＳＲプログラムであり、このプログラムは、このような接続要求、データダウンロード要求あるいはリモートユーティリティからのサービス要求などに応答する。ＣＰＳＯＣＫＥＴによって、ＮＥＢ又はプリンタから情報が収集され、また、必要な場合には、ログ・ファイルへの書込み要求がモニタされ、装置の状態に対するアプリケーション要求がモニタされ、また上に記載のように、ジョブ統計値が保持される。
【００８８】
簡潔に述べれば、ＣＰＳＯＣＫＥＴプログラムはネットワークと周辺装置間で対話型ネットワークボードを接続する方法であり、この方法には、ＲＡＭから実行するためにボードＲＯＭからボードＲＡＭへプログラムを転送するステップが含まれる。また、このプログラムで、周辺装置へ向けられたネットワーク通信を検出するためのボードネットワーク・インタフェースをモニタするステップも含まれる。次いで、このプログラムによって、ネットワーク通信に応答する機能の実行が周辺装置に命じられ、ボード双方向周辺機器インタフェースによる周辺装置の状態情報の検出と格納がモニタされる。最終的に、このプログラムは、別のネットワーク通信に応答して、ネットワーク・インタフェースを介してネットワーク上へ周辺装置状態情報を出力する。
【００８９】
図５ＢのステップＳ１５及びＳ１７は、“ランタイム”レイヤ機能を示し、ステップＳ２０は“ソフトタイム”アプリケーションレイヤを表わす。最初に、ステップＳ１５によって、データがＬＡＮ上で受信されているかどうかが判定される。ＬＡＮデータが受信されている場合、処理はステップＳ１６へ進み、ソフトウェアプロトコルタイプが判定される（以下、セクション４ｆでより詳細に解説）。たとえば、ＬＡＮ上で受信されるイーサネットデータは次のソフトウェアプロトコルのどの１つであってもよい。ＳＰＸ／ＩＰＸ上のＮｅｔＷａｒｅ、ＴＣＰ／ＩＰ上のＵＮＩＸ、あるいはＡｐｐｌｅＴａｌｋ上のＭＡＣシステム７。基本的には、ソフトウェアプロトコルタイプは、上記のステップＳ７で検知されたフレームパケットタイプに従って判定することができる。
【００９０】
ＬＡＮデータがステップＳ１５で受信されていないとＣＰＳＯＣＫＥＴによって判定された場合、ステップＳ１７において、ＳＣＳＩデータが受信されているかどうかが判定される。ＳＣＳＩデータが受信されている場合、ステップＳ１８でそのデータはプリンタから入力され、次いで、ステップＳ１９でＤＲＡＭ２２０に格納される。
【００９１】
ステップＳ１９において、プリンタデータが格納された後、あるいは、ＳＣＳＩデータがステップＳ１７で受信されていない場合、処理はステップＳ２０へ進る。ここで、“ＭＯＮＩＴＯＲ”と呼ばれるマルチタスク処理ソフトウェアプログラムによって制御されるようなマルチタスク方式により、“ソフトタイム”タスクが実行される（以下、セクション４ｌでより詳細に解説）。ステップＳ２０はしたがって、図５Ａ、図５Ｂ及び図５Ｃで描写されるフローチャートを通じて平行的に実行される“バックグラウンド”処理である。すなわち、“ソフトタイム”タスクが実行されているときはいつでも、マイクロプロセッサ２１６によって、“ソフトタイム”タスクの時分割、並列、非強制排除処理が保証される。
【００９２】
より詳細に述べれば、ＭＯＮＩＴＯＲは、ステップＳ６でＥＰＲＯＭ２２２からＤＲＡＭ２２０へダウンロードされるソフトウェアモジュールである。ＭＯＮＩＴＯＲは、現在実行中のいくつかのアプリケーションタスク間でプロセッサ利用率を配分する非強制排除マルチタスクモニタである。このモニタの非強制排除的性質によって、各アプリケーションタスクが制御を周期的に放棄することが要求され、その結果、他のタスクを実行する機会が得られる。この制御放棄メカニズムは、制御をＭＯＮＩＴＯＲへ渡すソフトウェア割込みを用いて実現される。割込み時に、ＭＯＮＩＴＯＲによって、現在実行中のタスクの状態は保存され、別の動作途中のタスクの状態が復元され、この新しいタスクの実行が再開（あるいは開始）される。最初制御を放棄されたタスクが、割込み時点の制御を最終的に回復する（すなわち、制御が放棄されたときと同じ状態までその関連情報が復元される）。
【００９３】
要するに、ステップＳ２０には、プロセッサリソースを配分するために、マルチタスク処理対話型ネットワークボードの複数のアプリケーションタスクをモニタするステップが含まれる。第１のアプリケーションタスクがメモリに格納される。この第１のアプリケーションタスクは、印刷すべき印刷ファイルの待ち行列を得るべくネットワーク・インタフェースを獲得するためにファイル・サーバを待ち行列に加え、ボードに接続されたプリンタへインタフェースを介してその印刷ファイルを伝える。第２のアプリケーションタスクもそのメモリに格納される。この第２のアプリケーションタスクはＬＡＮインタフェースを通して遠隔地の状態照会を受信し、プリンタ状態や受信した状態照会への応答を得るために双方向インタフェースを通じてプリンタに問合せ、状態要求者にＬＡＮインタフェースを通して状態情報を提供することができる。第１と第２のアプリケーションタスクは各々放棄コマンドを含む。これにより、現在実行中のアプリケーションタスクの制御が周期的にＭＯＮＩＴＯＲに対して放棄される。このＭＯＮＩＴＯＲによって、放棄タスクの状態が保存され、非放棄タスクの状態が復元され、非放棄タスクの実行が再開される。
【００９４】
図５Ｃで、データがステップＳ１５においてＬＡＮ上で受信された場合、ステップＳ２１によって、受信データが印刷ジョブ用であるかどうか判定される。もし、このデータが印刷ジョブ用である場合には、マイクロプロセッサ２１６はアクティブな印刷ファイルのためのＬＡＮファイル・サーバとして働き、印刷ジョブブロックがステップＳ２２でＤＲＡＭ２２０へ転送される。
【００９５】
ステップＳ２３で、マイクロプロセッサ２１６によって、イメージデータ及び制御情報のブロックがアセンブルされ、ＳＣＳＩインタフェースを介してプリンタへこのブロックが送られる。このステップにおいて、マイクロプロセッサ２１６によって、ＬＡＮ上で受信されたデータ・ストリームに対して“ジョブ開始”と“ジョブ終了”表示が有効に加えられる。これは、印刷ジョブの開始時にＸＰ（データ）チャネルを開くことによって、また、印刷ジョブの終了時にＸＰチャネルを閉じることによって行なわれる。
【００９６】
ステップＳ２４で、印刷ジョブが完了するまで、この処理は待機する。ひとたび印刷ジョブが完了すると、ステップＳ２５で、プリンタはデフォルト環境に確実に設定される。印刷ジョブ前（あるいは印刷ジョブ時）にデフォルト構成を設定することもまた可能である。すなわち、ＮＥＢ自身が、例えば、デフォルトフォント、用紙トレイ、照合、分類などを指定するデフォルト環境に付属プリンタを設定することを確実に行う。これにより、次の印刷ジョブが既知のプリンタ構成にて開始されることが保証される（以下、セクション４ｍでより詳細に解説）。
【００９７】
ステップＳ２５によって、プリンタ設定（たとえばポートレートモード、両面など）を論理的な印刷ジョブ間へ返すことを保証することによって、プリンタのためのデフォルト環境が保証されると考えてよい。たとえば、ノーベル社ＮｅｔＷａｒｅには、プリンタ環境をリセットするためにプリンタエスケープ・シーケンスをすべてのジョブの前に付ける能力が含まれているが、このようなエスケープ・シーケンスは、ネットワークファイル・サーバ上のデータベースに常駐しており、問題の印刷ジョブはそのファイル・サーバからは起動しないかもしれない。デフォルト環境の保証を確実なものにするために、必要な構成パラメータがＮＥＢによって格納され、また、ＮＥＢは印刷ジョブの間でプリンタ環境をリセットすることを担う。
【００９８】
要するに、ネットワークに接続された対話型ネットワークボードを持つＬＡＮプリンタにデフォルト構成を提供する方法には、対話型ネットワークボードでＬＡＮインタフェースを通してデフォルト構成を受信するステップが含まれる。デフォルト構成は、ＮＥＢのＮＶＲＡＭ２２８に格納するか、あるいは、ボードとプリンタ間の双方向インタフェースを介してプリンタのＮＶＲＡＭもしくはディスクに格納してもよい。次いで、デフォルト構成は、双方向インタフェースを通してプリンタのＮＶＲＡＭからボード上のＤＲＡＭ２２０へダウンロードされる。ボードによってＬＡＮインタフェースを通して印刷情報が受信され、双方向インタフェースを通してプリンタに印刷情報が伝えられると、ボードは印刷ジョブの終了を検出する。この検出に応じてデフォルト構成がプリンタに送られ、これによってプリンタはそのデフォルト構成に設定される。
【００９９】
さらに、複数のデフォルト構成が格納されてもよく、また、適切なデフォルト構成を別のＬＡＮエンティティから遠隔地で選択するようにしてもよい。たとえば、複数のデフォルト構成のうちの１つを設定する方法として、印刷ジョブの開始をボードで検出し、ジョブのソースを識別するステップが含まれてもよい。その後に、適切なデフォルト構成が格納された構成の中から選択され、次いで、選択されたデフォルト構成が、印刷ジョブの開始あるいは終了時にプリンタへ送られる。
【０１００】
図５Ｃで、ステップＳ２１で印刷ジョブが要求されていないと判定された場合、付属プリンタの状態を求める状態要求がＬＡＮ上でなされているかどうかが、ステップＳ２６によって判定される。状態要求が受信されたと判定された場合、ステップＳ２７によって、状態要求のタイプが判定される。たとえば、エラーコード、印刷ページ数、トナー状態などのようなプリンタ状態を要求することができる。
【０１０１】
ステップＳ２８で、ＤＲＡＭ２２０から要求された状態データがマイクロプロセッサ２１６によって引き出され、この状態データはアセンブルされて、ＬＡＮインタフェースを介してＬＡＮに送られる（以下、セクション４ｉでより詳細に解説）。このようにして、ステップＳ２８で、単純な「オン・オフ」以上の情報がＬＡＮに伝送され、ＬＡＮにプリンタの詳細な状態が通知される。適用範囲の広いアプリケーションでは、ＬＡＮ上でのプリンタフロント・パネル状態のエクスポート、及び、ＬＡＮからのフロント・パネル制御コマンドのインポートがステップＳ２８の中に含まれる。すなわち、ＰＣ１４のネットワーク管理者は、プリンタフロント・パネルディプレイ１１６上に含まれる、すべてのプリンタ情報を示す表示を要求し、受信することができる。次いで、ネットワーク管理者は異なるプリンタフロント・パネル機能を自分のＰＣで起動でき、これらの機能はプリンタへ伝送され、選択された制御が実行される。
【０１０２】
要するに、ステップＳ２８においては、ＬＡＮ通信用ＬＡＮインタフェースを持つ対話型ネットワークボードを介してネットワークされたプリンタの手動操作可能な機能を遠隔地で制御する方法として、遠隔地で、ボードへコマンドを送出し、そのコマンドによって、ボードがプリンタ状態情報をボードを通じて遠隔地へＬＡＮインタフェースを介して転送するステップが含まれる。遠隔地で、プリンタ状態を表示してもよいし、また、遠隔地でＬＡＮインタフェースを介してボードへ第２コマンドを送出し、手動操作可能な機能をボードに実行させることもできる。
【０１０３】
受信ＬＡＮデータが印刷ジョブでも状態要求でもない場合、この受信データはダウンロードオペレーションであるとステップＳ２９で判定される。つまり、ＲＯＭあるいはＲＡＭアプリケーションを更新するためにデータがＮＥＢ中へ転送され、たとえば、ＮＥＢで実行される非常駐診断のためにダウンロードが利用される場合があるからである。
【０１０４】
最初に、ステップＳ３０で、このデータは、ＬＡＮからＤＲＡＭ２２０までダウンロードされる（以下、セクション４ｎでより詳細に解説）。すなわち、このダウンロードは、データをネットワーク・ノードにロードし、次いで、行動、すなわち、実行させる処理である。たとえば、パッチコードから、製造テストルーチンまで、あるいは、ＥＰＲＯＭ用ファームウェアの更新までのすべてがダウンロードされる場合もある。また、アプリケーションモジュールをＬＡＮファイル・サーバに格納し、次いで、ＮＥＢへ毎朝ダウンロードする場合もある。
【０１０５】
要するに、ＬＡＮからＤＲＡＭへのデータのダウンロードは、ＬＡＮインタフェースを持つ対話型ネットワークボードのオペレーションモードを変更する方法を含む。そして、この方法は、ＤＲＡＭから実行されるＬＡＮ通信プログラム（ＬＡＮに関する印刷情報を周辺プリンタへ伝送する通信プログラム）を起動するステップを含む。次に、変更されたオペレーションモードに対応する実行可能命令がＬＡＮインタフェースを介してＤＲＡＭ中へダウンロードされる。そして、ボードは、変更されたオペレーションモードの実行を始めるようにＬＡＮインタフェースを介して命じられる。
【０１０６】
ステップＳ３１で、ダウンロードされた情報がＥＰＲＯＭ２２２のために指定されたものかあるいはＤＲＡＭ２２０に対して指定されたものかが判定される。この情報がＥＰＲＯＭに対して指定されている場合、ＲＯＭイメージがステップＳ３２でアセンブルされる（以下、セクション４ｏでより詳細に解説）。たとえば、遠隔地からＥＰＲＯＭファームウェアをダウンロードすることによって、ユニークな柔軟性が与えられる。特に、プリンタにボードをインストールした後、オンボードテストルーチンのダウンロード、及び、ＥＰＲＯＭ構成ファームウェアの変更を遠隔地から行なうことができる。
【０１０７】
ステップＳ３２は、ＥＰＲＯＭ２２２中へプログラムされるバイナリイメージファイルを構築する処理である。ＥＰＲＯＭのために指定されたデータは、最初、ＤＲＡＭ２２０にダウンロードされ、ここで、ＲＯＭイメージにセットされているモジュール名を含む構成ファイルがユーティリティによって読取られる。次いで、すべての指定モジュールを含む完全なバイナリイメージファイルが構築される。ヘッダーがイメージファイルの各モジュールの先頭に置かれる。このヘッダーは、モジュールを識別し、その属性を記述し、そして、ローディング中におけるモジュール配置のために次のヘッダーの位置指定を行う。ＥＰＲＯＭにロードされる最後のモジュールはＥＰＲＯＭ常駐コードである。これは、ＲＯＭイメージの最後に置かれるため、電源投入初期化コードはマイクロプロセッサ２１６によって予想されるアドレスに常駐する。
【０１０８】
要するに、ＥＰＲＯＭに格納する実行可能コードモジュールを含むバイナリイメージファイルをフォーマットする処理がステップＳ３２には含まれる。最初に、バイナリイメージを形成するコードモジュールを指定する構成ファイルが読取られる。次に、構成ファイルの中で指定された各モジュールのためにヘッダーが形成され、そのヘッダーには、そのモジュールの識別番号、そのモジュールの属性定義、及び次のモジュール用ヘッダーへのポインタが含まれる。次いで、指定モジュール及びそれらに関連するヘッダーを含むバイナリイメージファイルが構築される。最終的に、ＲＯＭ常駐コードのモジュールがバイナリイメージに追加され、このＲＯＭ常駐コードによって電源投入時に制御信号が受信され、ＰＯＳＴが送られ、モジュールの少なくとも一つが、バイナリイメージファイルからＤＲＡＭ２２０へロードされ、基本的なボード入出力サービスが提供される。
【０１０９】
ＥＰＲＯＭ２２２に新しいデータが書込まれる前に、まず第一に書込み操作が事実上意図されていることを明白に保証する必要がある。明らかに、ＥＰＲＯＭ２２２へのいかなる偶発的な書込も、ＮＥＢを使用不能としてしまう。したがって、情報がＥＰＲＯＭ２２２へ“フラッシュされる”前に、ステップＳ３３において特定の一連の事象がＥＰＲＯＭをアクセスするために発生する（以下、セクション４ｐでより詳細に解説）。本実施例においては、２つのデータ・ビットが別個の２つの入出力ロケーションで変更されない限り、ＥＰＲＯＭに書込むのに必要な＋１２ボルトは供給されない。
【０１１０】
簡潔に述べれば、ＥＰＲＯＭが偶発的に書込まれないことを保証する方法は、プロセッサ及びメモリを持つ対話型ネットワークボード上に常駐するＥＰＲＯＭ上でフラッシュオペレーションを行なう方法を含み、プロセッサに入出力書込み信号を送るステップを有する。次いで、プロセッサによってメモリに第１アドレスが生成され、入出力信号に応じて第１ビットが所定の状態にセットされる。次いで、電源ユニットによって、所定の状態にセットされている第１ビットに応じてトランジスタに＋１２Ｖが供給される。次いで、入出力受信信号がプロセッサに送られ、このプロセッサによって、記憶装置に第２アドレスが生成され、入出力受信信号に応じてあらかじめ選ばれた状態に第２ビットがセットされる。次いで、あらかじめ選ばれた状態にセットされている第２ビットに応じてトランジスタがオンし、ＥＰＲＯＭの電源ターミナルへ＋１２Ｖが印加され、書込み操作の発生を可能にする。
【０１１１】
新しいＲＯＭイメージがＥＰＲＯＭ２２２に実際に格納される前に、ステップＳ３４で、この新しいＲＯＭイメージは、ＲＯＭイメージが受信された後で送られるチェックサム値でもってチェックサムされ、照合されなければならない。そして、ＥＰＲＯＭ２２２を消去する前に、ＭＡＣアドレスのような保存データ及びモジュールはＤＲＡＭ２２０上の新たなＲＯＭイメージ内にロードされねばならない。
【０１１２】
ＲＯＭイメージが検査されたと判定された後、かつ、ＤＲＡＭ２２０に格納された新しいＲＯＭイメージ中へ必要データがすべて保存された後、新しいＲＯＭイメージをロードする際データの破損がないことを保証するために、ＥＰＲＯＭ２２２をクリアし、消去する必要がある。従って、新しいＲＯＭイメージがＥＰＲＯＭ２２２に格納される前に、ステップＳ３５で、ＥＰＲＯＭ２２２は複数回消去されることもある。
【０１１３】
ステップＳ３５で  ＥＰＲＯＭ２２２が消去された後、この新しいＲＯＭイメージがステップＳ３６でＥＰＲＯＭ２２２中へ“フラッシュされ”る（以下、セクション４ｑでより詳細に解説）。
【０１１４】
要するに、ステップＳ３６は、ＬＡＮインタフェースを持つ対話型ネットワークボード上でプログラム可能なファームウェアを遠隔地で変更する方法に関するものであり、この方法には、ボードのＤＲＡＭから実行されるＬＡＮ通信プログラム（ＬＡＮに関する印刷情報を周辺プリンタへ伝送する通信プログラム）を起動するステップが含まれる。次いで、ＲＯＭファームウェアイメージが、ＬＡＮインタフェースを介してボード上のＤＲＡＭへダウンロードされる。ＲＯＭイメージがターゲットボードにダウンロードされたことが次に確認され、また、ＲＯＭイメージの正当性が確認される。次いで、ボードは、ＥＰＲＯＭを電子的に消去するように命じられ、それから、ＥＰＲＯＭは新しいＲＯＭイメージでフラッシュされる。さらに、もし所望であれば、“フラッシュ完了”信号をフラッシュオペレーション後にＬＡＮへ送ってもよい。
【０１１５】
次いで、この情報がＥＰＲＯＭ２２２へフラッシュされた後、ＮＥＢは、ステップＳ３７で、ＥＰＲＯＭ２２２の新しいＲＯＭファームウェアイメージからリブートされ、処理はステップＳ１へ戻る。
【０１１６】
図５Ｃで、ＲＡＭ情報がダウンロードされていると、ステップＳ３１によって判定された場合、そのような情報は、ステップＳ３８を介してＤＲＡＭ２２０でまずアセンブルされる。続いて、ステップＳ３９によってＲＡＭプログラムが実行され、処理はステップ１３へ戻り、そこでＳＡＰＳＥＲＶＥＲによってＰＳＥＲＶＥＲ及びＣＰＳＯＣＫＥＴエンティティが公示される。
【０１１７】
ＮＥＢをＬＡＮネットワークプリンタにインストールした場合のＮＥＢの構造及び機能の概説を、以上の解説によって終了する。ＮＥＢのハードウェア及びソフトウェアの種々の態様のオペレーションのより詳細な説明を今から行なう。
４ａ．  電源投入シーケンス
電源投入に続いて直ちに、電源オン自己検査（ＰＯＳＴ）がＮＥＢ２によって実行され、それに続いて、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へオペレーションソフトウェアがＮＥＢによってロードされ実行される。
【０１１８】
より明確に述べれば、電源投入直後、マイクロプロセッサ２１６が、ＥＰＲＯＭ２２２に位置するＰＯＳＴプログラム・モジュールをアクセスする。マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２から直接ＰＯＳＴが実行され、以下のテストを実行する。即ち、マイクロプロセッサの機能、ＥＰＲＯＭ２２２に格納されたプログラムの正当性（たとえばチェックサムによる照合による）、ＤＲＡＭ２２０の動作（たとえば読み出し書き込みサイクルを用いて）、ＳＣＳＩコントローラ２２４の動作、ＮＶＲＡＭ２２８のデータの正当性及び制御レジスタ２３０の動作がテストされる。ＰＯＳＴには、また、ＥＰＲＯＭ２２２中へダウンロードされたＭＡＣアドレスとＰＲＯＭ２３２に格納されているＭＡＣアドレスの比較が含まれることもある。
【０１１９】
ＰＯＳＴには、さらに、ネットワークに関連するハードウェアのオペレーションチェックが含まれる。より明確に述べれば、ネットワークコントローラ２０６のオペレーションを検査するための、ネットワークアクティビティのチェックと同様、ＳＲＡＭ２１４に対する動作チェック（たとえば読み出し書き込みサイクルを用いて）がＰＯＳＴには含まれてもよい。
【０１２０】
ＮＥＢ２における他のハードウェアのオペレーションは、追加的なＰＯＳＴ検査によって直接判定することもできる。コネクタ２０２、２０３及び２０４の場合のようにマイクロプロセッサ２１６によってハードウェアのオペレーションを直接テストすることができない場合には、そのハードウェアの適正な動作は直接的なテスト処理から受信した結果コードによって示されてもよい。
【０１２１】
ＰＯＳＴの終了に際して、マイクロプロセッサ２１６によって、シリアル・ポート２１８上へチェックサムコードが置かれ、次いで、静止オペレーションウィンドウ（たとえば、１秒ウィンドウ）に入る。その間、マイクロプロセッサ２１６は、シリアル・ポート２１８を介してコマンド（例えば、後述の「５．検査」を参照）を受信することができる。シリアル・ポート２１８に接続された装置によってＰＯＳＴチェックサムコードを入手し、ＰＯＳＴ結果を判定してもよい。たとえば、エラーを示すＰＯＳＴチェックサムコードが、故障領域を示すゼロでない１６進値によって示されるのに対して、エラーなし状態は、“００００ｈ”というＰＯＳＴチェックサムコードで示される。故障の場合には、マイクロプロセッサ２１６によってＮＥＢ２のＬＥＤ２４０が点灯され、エラーが検出されたことがユーザに信号で知らされる。好適には、ＬＥＤ２４０は電源投入の際に点灯され、ＰＯＳＴが成功した場合にのみ、切られることが望ましい。
【０１２２】
ＰＯＳＴが首尾よく完了した後で、１秒静止ウィンドウの実行中にシリアル・ポート２１８を介してコマンドが全く受信されない場合、マイクロプロセッサ２１６は、ＥＰＲＯＭ２２２に格納されているソフトウェアモジュールをＤＲＡＭ２２０へロードし始める。マイクロプロセッサ２１６は、ＥＰＲＯＭ２２２から直接これらのソフトウェアモジュールを実行せず、むしろ、ＤＲＡＭ２２０にこれらのモジュールをロードし、ＤＲＡＭ２２０から実行する。このような構成によって、ＥＰＲＯＭ２２２から検索される特定モジュールを選択して、ＤＲＡＭ２２０から実行することが可能になり、その結果、ＮＥＢ２の柔軟性のある構成が可能になる。（下記のセクション４ｄを参照）。たとえば、ＮＶＲＡＭ２２８に格納された構成コマンドに従って、ＥＰＲＯＭ２２２から、マイクロプロセッサ２１６によってモジュールが選択的に検索され、ＤＲＡＭ２２０へロードされて、ＤＲＡＭから実行される。
【０１２３】
異なるモジュールがＥＰＲＯＭ２２２から検索され、ＤＲＡＭ２２０にロードされるシーケンスを、図６に示す。ステップＳ６００１において、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へＳＣＳＩドライバがロードされる。ＳＣＳＩドライバによって、オペレーションシーケンス及びＳＣＳＩコントローラ２２４に対する制御が与えられ、プリンタ４とのインタフェースが可能になる。この結果、プリンタ４に印刷データが送られ、プリンタ４へ、また、プリンタ４から、制御情報が送受信される。
【０１２４】
ステップＳ６００２で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へリンクサポートレイヤ（すなわち“ＬＳＬ”）がロードされる。ステップＳ６００３で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へネットワークドライバ・ソフトウェアがロードされ、そこで、マイクロプロセッサ２１６は、リンクサポートレイヤとネットワークドライバをＤＲＡＭ２２０から実行し始める。リンクサポートレイヤとネットワークドライバによって、ＬＡＮバス６上でのＬＡＮ通信に共通のアクセスが与えられる。より詳細に述べれば、図７に示されるように、ＮＥＢ２で使用されるネットワークコントローラ２０６のような電気的インタフェース３０１を介して、ＮＥＢ２のような装置を含むすべてのネットワークされた装置がＬＡＮバス６とインタフェースで接続される。電気的インタフェース３０１は、リンクサポートレイヤソフトウェア３０４からＬＡＮフレームデータを順次受信するネットワークドライバ３０２によって駆動される。リンクサポートレイヤ３０４とネットワークドライバ３０２は両方とも、異なる種類のネットワークソフトウェアに共通である。たとえば、図７でさらに示されるように、ノーベル社のＮｅｔＷａｒｅソフトウェアで提供されるようなネットワークアプリケーション・プログラム（矢印Ａで例示されるような）は、インターネットワークパケット交換プログラム（即ちＩＰＸ３０５）と逐次パケット交換プログラム（即ちＳＰＸ３０６）とを介して、リンクサポートレイヤ及びネットワークドライバとインターフェースする。一方、ＡＴ＆Ｔによって提供されるＵｎｉｘからのネットワークアプリケーション・プログラム（矢印Ｂで例示されるような）は、“ＩＰ”モジュール３１５と“ＴＣＰ”モジュール３１６を介してＬＳＬにインタフェースで接続する。
【０１２５】
ＮＥＢ２では、１回につきただ１つのタイプのネットワークアプリケーション・プログラムしか通常実行されない（但し、以下、セクション４ｆで解説するように、マルチプロトコルオペレーションは可能である）。この明細書で行なう説明は、ＮｅｔＷａｒｅネットワークアプリケーション・プログラムに対するものであるが、ＵＮＩＸネットワークアプリケーション・プログラムも同様に実行することは可能ではある。
【０１２６】
ステップＳ６００４で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＰＲＥＳＣＡＮプログラムがロードされ、ＤＲＡＭ２２０へ格納され、そこで、ＤＲＡＭ２２０からのＰＲＥＳＣＡＮプログラムの実行が始まる。ＰＲＥＳＣＡＮソフトウェアは、リンクサポートレイヤとインタフェースで接続し、ＬＡＮバス６上を伝送されるフレームパケットのタイプを判定する。より詳細に述べれば、上述のように、イーサネットタイプのネットワークＬＡＮバス上には４つの異なる可能なフレームパケットタイプ、すなわち、イーサネット８０２．３、イーサネットＩＩ、イーサネット８０２．２及びイーサネットＳＮＡＰがある。以下、セクション４ｅでより詳細に説明するように、ＰＲＥＳＣＡＮソフトウェアモジュールによって、ＬＡＮバス６上のネットワーク通信がモニタされ、フレームパケットタイプが判定される。フレームパケットタイプは、一度ＰＲＥＳＣＡＮによって判定されると、ＤＲＡＭ２２０の所定の共通ロケーションに格納され、ＮＥＢの他のネットワーク通信モジュールによって利用される。フレームパケットタイプが判定された後、ＰＲＥＳＣＡＮによって、マイクロプロセッサ２１６にそのタスクが完了した旨の信号が送られる。これにより、ＰＲＥＳＣＡＮプログラムによって占有されたメモリの領域をマイクロプロセッサ２１６が別のプログラム・モジュールで上書きすることが可能となる。
【０１２７】
ステップＳ６００５で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＩＰＸ及びＳＰＸプログラム・モジュールが検索され、ＤＲＡＭ２２０に格納され、そこで、ＤＲＡＭ２２０からのＩＰＸとＳＰＸモジュールの実行が開始される。ＩＰＸとＳＰＸの双方は、ＰＲＥＳＣＡＮモジュールによって判定されたフレームパケットタイプを使用する。
【０１２８】
ステップＳ６００６で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＣＮＥＴＸプログラム・モジュールが検索され、ＤＲＡＭ２２０へロードされ、ＤＲＡＭ２２０から実行が開始される。ＣＮＥＴＸによって、局所化されたＤＯＳのような機能がＮＥＢに与えられる。
【０１２９】
ステップＳ６００７で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へＳＡＰＳＥＲＶＥＲプログラム・モジュールがロードされ、ＤＲＡＭ２２０からＳＡＰＳＥＲＶＥＲモジュールが実行され始める。以下、セクション４ｇでより詳細に説明するが、ＳＡＰＳＥＲＶＥＲとは、ＮＥＢボードに割当てられた単一ネットワーク・ノードから、ＣＰＳＯＣＫＥＴとＣＰＳＥＲＶＥＲのような２つのネットワークサーバエンティティが同時に公示を出すことを可能にするプログラム・モジュールである。これに対して、ＮｅｔＷａｒｅによって提供されるような従来のネットワークアプリケーション・プログラムは、各ネットワーク・ノードから単一ネットワークサーバエンティティを公示することしかできない。
【０１３０】
ステップＳ６００８で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２から非強制排除マルチタスク処理ＭＯＮＩＴＯＲ（後述のセクション４ｌを参照）が検索されて、ＤＲＡＭ２２０へ格納され、ＤＲＡＭ２２０からマルチタスク処理モニタの実行が開始される。
【０１３１】
ステップＳ６００９で、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からＣＰＳＯＣＫＥＴサーバソフトウェアモジュールが検索されて、ＤＲＡＭ２２０にロードされ、ＤＲＡＭ２２０からＣＰＳＯＣＫＥＴサーバの実行が開始される。以下、セクション４ｊでより詳細に説明するが、ＣＰＳＯＣＫＥＴが、ＣＰＳＯＣＫＥＴに代わって公示を行うことをＳＡＰＳＥＲＶＥＲに対して要求すると、ＳＡＰＳＥＲＶＥＲは、ＬＡＮバス６上でＳＡＰ公示を開始する。
【０１３２】
ステップＳ６０１０で、マイクロプロセッサ２１６によって、ＣＰＳＥＲＶＥＲやＣＲＰＲＩＮＴＥＲのような印刷アプリケーションサーバがＥＰＲＯＭ２２２から引き出され、この印刷アプリケーションサーバがＤＲＡＭ２２２へロードされる。ＣＰＳＥＲＶＥＲの場合には、マイクロプロセッサ２１６がロードされた印刷アプリケーションサーバの実行をＤＲＡＭ２２０より開始する。そして、今度は、このプリントサーバの代わりにＳＡＰ公示を行なうようにという要求がＳＡＰＳＥＲＶＥＲに対して出される。以下、セクション４ｇでより詳細に説明するが、ＳＡＰＳＥＲＶＥＲによって、ＣＰＳＯＣＫＥＴサーバ並びにプリント・サーバに対する公示が交互に出され、それによって、ＣＰＳＯＣＫＥＴサーバとプリント・サーバの双方に代わる代用ＳＡＰエンティティの役割が果たされる。
４ｂ．  ローカルエリアネットワーク（ＬＡＮ）と周辺機器とのインタフェース
本発明の適用範囲の広い態様によって、プリンタのような周辺機器が、ソフトウェアプログラムが内蔵された対話型ネットワークボードを用いて、ＬＡＮに接続される。好適には、プリンタとＮＥＢ間の接続はＳＣＳＩインタフェースで行われ、大量の印刷データ及び状態データがＮＥＢとプリンタ間で双方向に伝送されることが望ましい。ＥＰＲＯＭ２２２によって、複数のソフトウェアモジュールが格納され、ＰＳＥＲＶＥＲやＲＰＲＩＮＴＥＲあるいはＬＰＲ機能構成で、ＮＥＢのオペレーション構成が行なわれる。ＥＰＲＯＭ２２２によって、いくつかの状態制御ソフトウェアモジュールも格納され、ＬＡＮ上でプリンタから状態情報をエクスポートしたり、ＬＡＮからプリンタへ制御情報をインポートする。ＥＰＲＯＭ常駐ファームウェアが、電源投入時にＤＲＡＭ２２０へダウンロードされ（セクション４ａで上述）、それによって、ランタイム割込みがＬＡＮあるいはＳＣＳＩインタフェースのいずれかから受信されるまで、マルチタスク処理プログラムＭＯＮＩＴＯＲがソフトタイムタスクを実行する。
【０１３３】
ＮＶＲＡＭ２２８によって、ＥＰＲＯＭ２２２に格納されたどのモジュールをＤＲＡＭ２２０へダウンロードすべきかを指定する構成ワードが格納される。これは、ＰＳＥＲＶＥＲ機能あるいはＲＰＲＩＮＴＥＲ機能のいずれかでＮＥＢを構成するためである。マイクロプロセッサ２１６によってＤＲＡＭ２２０からこのプログラムが実行され、印刷のために印刷ジョブをＬＡＮより受信し、これをプリンへ送ることが可能になるとともに、プリンタ状態を状態要求に応じてＬＡＮ上へ返すことが可能になる。
【０１３４】
ローカルエリアネットワーク（ＬＡＮ）へ周辺機器を接続するための構造と機能に関する個々の詳細を、図４、図５Ａ、図５Ｂ、図５Ｃを参考に上述したが、以下のセクションでも説明する。
４ｃ．  ローカルエリアネットワーク（ＬＡＮ）とプリンタ間の双方向インタフェース
ＮＥＢ２及びプリンタ間における双方向ＳＣＳＩインタフェースの提供によって、プリンタに印刷データが送られている間に大量の状態情報をプリンタから抽出することが可能となる。さらに、双方向ＳＣＳＩインタフェースを利用することによって、プリンタは、ＬＡＮ上で遠隔地から送出された制御コマンドに応答することができる。たとえば、ネットワーク管理者は自分のＰＣ１４から、高イメージ密度で、複数回印刷され、次いで、ステープルで綴じるというような特定の印刷ジョブを要求する制御コマンドを送出することができる。このような制御コマンドが、ＬＡＮ６によってＮＥＢ２へ送られる。そして、ＮＥＢ２によって、ＳＣＳＩバス１０２を介してプリンタにこれらの制御コマンドが伝送される。同時に、実際の印刷データがファイル・サーバ３０からＮＥＢ２へ転送され、ＮＥＢ２で、この印刷データはブロックにパッケージされ、ＳＣＳＩバス１０２を通してプリンタへ転送される。好適には、プリンタに対してＸＰデータ・チャネルを開くことにより、“印刷ジョブの開始”がＮＥＢ２によって示される。同様に、プリンタに対してＸＰデータ・チャネルを閉じることにより、“印刷ジョブの終了”がＮＥＢ２によって示されることが望ましい。このようにして、ＮＥＢ２は、プリンタへこのような指示を与えることができる。
【０１３５】
また、ＮＥＢ２上で双方向ＳＣＳＩインタフェースを使用することによって、他のタイプの周辺機器をＬＡＮに接続することが可能になる。たとえば、ＳＣＳＩインタフェースによって、周辺機器からＬＡＮへ大量のデータを伝送することができるために、スキャナ（たとえば、プリンタ４が光学式文字認識（“ＯＣＲ”）装置である場合）やファクシミリのようなイメージデータ生成装置にＮＥＢを接続することが可能になる。このようにして、イメージ生成装置によって生成されたデータをＳＣＳＩインタフェースを通してＮＥＢへ転送し、次いで、ＬＡＮ上において任意のＬＡＮエンティティにより格納したりあるいは引き出したりすることができる。プリンタに対する場合と同様に、大量の詳細な制御／状態情報もイメージデータ生成装置へ、もしくはイメージデータ生成装置から提供され得る。
【０１３６】
ＮＥＢ上の双方向ＳＣＳＩインタフェースの詳細な構造上及び機能上の特徴を図４、図５Ａ、図５Ｂ及び図５Ｃを参照しながら上述したが、以下のセクションでも説明する。
４ｄ．  ＲＯＭファームウェア構成
図５Ａに関して先に説明したように、ステップＳ６においては、選択されたソフトウェアプログラムがＥＰＲＯＭ２２２からＤＲＡＭ２２０へダウンロードされ、実行される（図６及びセクション４ａも参照）。ＥＰＲＯＭ２２２にはファームウェアモジュールが配されており、これらのモジュールによって、ＮＥＢ２はＲＰＲＩＮＴＥＲあるいはＰＳＥＲＶＥＲ機能のいずれかで構成されることが可能になる。このようにして、ＮＶＲＡＭ２２８に格納された構成コードに従って、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へ、格納されたプログラムの中のどれがダウンロードされるかによってＮＥＢ２の機能が決定される。
【０１３７】
ＮＥＢ２ファームウェアが初期状態に構成され、ネットワーク管理者のＰＣ１４上でＣＰＩＮＩＴを実行することによって、後にこのファームウェアを再形成することができる（以下、セクション４ｈを参照）。しかしながら、非構成状態においてであっても、ＮＥＢ２自身によっていつでも、ＬＡＮと基本的な通信を実行するために必要とされるソフトウェアモジュールが起動される。ＣＰＩＮＩＴを用いて、ネットワーク・マネージャは、遠隔地で、ＮＥＢの現在の構成を判定することができ、また、自分の要求通りに構成を変更することができる。その構成情報はＮＥＢボード上のＥＰＲＯＭに格納されるので、構成情報は電源サイクルを通じて保持される。
【０１３８】
個々の構成を行なうためのソフトウェアプログラムがＥＰＲＯＭ２２２からＤＲＡＭ２２０へダウンロードされる処理については、図８を参照して以下説明する。
【０１３９】
ボードがステップＳ１で電源アップされた後、この処理はステップＳ８００１へ進み、ここで、マイクロプロセッサ２１６は、ＥＰＲＯＭ２２２のＥＰＲＯＭ常駐コードにアクセスし、ＮＶＲＡＭ２２８から構成コード（典型的にワード）を読取る。この構成コードによって、ＮＥＢにＰＳＥＲＶＥＲ機能あるいはＲＰＲＩＮＴＥＲ機能のいずれかを与えるることができるモジュールが指定される。本実施例には、ＲＰＲＩＮＴＥＲあるいはＰＳＥＲＶＥＲの機能構成しか含まれていないが、たとえば、ＮＥＢ２が、スキャナあるいはファクシミリのような異なるＬＡＮエンティティにインストールされる場合、他の構成を利用してもよい。
【０１４０】
ＮＶＲＡＭ２２８から構成コードが読取られた後、ステップＳ８００２で、マイクロプロセッサによって、読取り構成コードに対応するビット・パターンを持つ構成マスクが形成される。ステップＳ８００３で、ＥＰＲＯＭ２２２に常駐のローダモジュールによって、この構成マスクがＥＰＲＯＭ２２２に格納された複数ファームウェアモジュールと比較される。
【０１４１】
詳細に述べるならば、ステップＳ８００４で、処理が始まり、それによって、ＥＰＲＯＭ常駐ソフトウェアモジュールが、ＮＶＲＡＭ２２８から読取られた２進数の構成コードに対応してビット的に選択される。ステップＳ８００４で、現在検査されたビット・パターンのビットが格納されたモジュールとマッチすると判定された場合、そのモジュールが選択され（ステップＳ８００５で）、ＤＲＡＭ２２０にダウンローディングされ、ステップＳ８００６で処理は次のビットへスキップする。同様に、ビット・パターンのビットが格納されたモジュールに照合しないとステップＳ８００４で判定された場合も、処理はステップＳ８００６で次のビットにスキップする。
【０１４２】
ステップＳ８００７で、ステップＳ８００４でテストされたビットが構成マスク・ビットパターンの最終ビットかどうかということが判定される。このテストされたビットが最終ビットでない場合、処理はステップＳ８００４へループ・バックし、ここで、ビット・パターンの次のビットが次に格納されたモジュールに関してテストされる。構成マスク・ビットパターンの最終ビットがテストされてしまうと、選択されたソフトウェアモジュールは、ステップＳ８００８でＥＰＲＯＭ２２２からＤＲＡＭ２２０へダウンロードされる。
【０１４３】
本実施例において、ソフトウェアモジュールは次のシーケンスでロードされる。即ち、ＳＣＳＩドライバ、リンクサポートレイヤ、ネットワークドライバ、プレスキャン（ＰＲＥＳＣＡＮ）、ＩＰＸ／ＳＰＸ、ＣＮＥＴＸ、ＳＡＰＳＥＲＶＥＲ、ＭＯＮＩＴＯＲ、ＣＰＳＯＣＫＥＴ、そして、プリントアプリケーション（たとえばＣＰＳＥＲＶＥＲ、ＣＲＰＲＩＮＴＥＲ）（図６を参照）の順である。
【０１４４】
ＮＶＲＡＭ２２８に格納された構成コードに対応するすべてのソフトウェアモジュールが、ＤＲＡＭ２２０にダウンロードされた後、ローダ機能によって、ステップＳ８００９で、ＭＯＮＩＴＯＲマルチタスク処理プログラムへプログラム実行制御が渡される。
【０１４５】
すでに解説したように、ＮＶＲＡＭ２２８に格納された構成コードはＣＰＩＮＩＴを用いて遠隔地で変更することができる。これによって、ＣＰＳＥＲＶＥＲやＣＲＰＲＩＮＴＥＲへの小さな変更を行なうための、あるいは、全く新しい構成の設定を望む場合等の、より大きな柔軟性が与えられる。したがって、ステップＳ８０１０で、新しい構成がＬＡＮ６によって受信され、ステップＳ８０１１で、ＮＶＲＡＭ２２８中へロードされる。好適には、古い構成コードが、消去されるか新しい構成コードで上書きされることが望ましい。次いで、ＮＥＢが自らリブ−トし、Ｓ１ステップへ戻る。
４ｅ．  ＰＲＥＳＣＡＮを用いる、フレームパケットタイプの判定
いかなるローカルエリアネットワークにおいても、データは、パケットあるいはフレームでネットワーク装置間を伝送される。しかし、イーサネットのような普通のネットワークアーキテクチャの関連においてさえ、フレーム用に２つ以上のフォーマットがサポートされている。したがって、たとえイーサネットアーキテクチャが使用されていることが分かっていても、イーサネットバスに関する、各物理的フレームあるいはパケットの情報内でデータの配置を判定することは不可能である。特に、上述のように、イーサネットにおいては、以下の４つのデータフォーマット、即ちイーサネット８０２．３、イーサネットＩＩ、イーサネット８０２．２及びイーサネットＳＮＡＰがサポートされている。
【０１４６】
従来のネットワーク装置（この装置によって、手動選択可能なオペレータインタフェースが提供される）では、イーサネットネットワークで使用されている特定のフレームタイプをネットワーク装置に知らせることが可能である。ＮＥＢ２の関連においては、ネットワーク・インタフェース（あるいはテスト構成のシリアル・ポート２１８）を介してしかオペレータのアクセスは行なわれないが、当然のことながら、フレームパケットタイプの知識が必要とされるローカルエリアネットワーク（ＬＡＮ）へのアクセスをオペレータに最初に行なわせずに、フレームパケットタイプを設定することは不可能である。。
【０１４７】
ＰＲＥＳＣＡＮソフトウェアモジュールによって、適切なフレームパケットタイプが認識されるまで、ＬＡＮバス上の同報通信をモニタすることによって、ＬＡＮバス上のＬＡＮ通信のために現在使用されている、フレームパケットタイプを、ＮＥＢ２が自動的に判定することが可能になる。ＰＲＥＳＣＡＮは、イーサネット上で使用される４つのすべてのフレームパケットタイプに共通の、認識しうる構成部分に基いてこの判定を行なう。
【０１４８】
図９に、イーサネット上で使用される異なるフレームパケットの物理的構造をより詳細に示す。図９に示されるように、ＬＡＮバス上で伝送されている物理的フレーム４１１には、宛先ＭＡＣアドレスを格納するための６バイトのセクション４１２、及び、ソースＭＡＣアドレスを格納するための６バイトのセクション４１３が含まれる。ＬＡＮ通信用に使用されるフレームタイプにかかわらず、これらの１２バイトは、ＬＡＮデータ・パケットの最初の１２バイトを構成する。データセクション４１４がこれらの１２バイトに続く。このデータセクションは可変数のバイトで構成されるが、この可変数のバイトは異なるフレームパケットタイプによって同じ目的に使用されず、また、異なるフレームパケットタイプに対して同じバイト数を持つものではない。
【０１４９】
不定領域４１４に続いて、ＬＡＮ通信パケットには、最初の２バイトが値“ＦＦＦＦ”（１６進表示）を常に持っているＩＰＸヘッダー４１５が含まれる。パケット４１６の残りはＩＰＸヘッダーの後に続き、各々異なるタイプのＬＡＮ通信パケットを特徴づけるデータ及び他のコマンドがこの部分に含まれる。
【０１５０】
共通領域（ＩＰＸヘッダー４１５のような）がそれらのパケットタイプの内の１つとして認識されるまで、各々の異なるパケットタイプに従ってＬＡＮ通信をモニタすることによって、ＰＲＥＳＣＡＮは作動する。次いで、ＰＲＥＳＣＡＮは、他のネットワーク通信プログラムによって使用すべくそのパケットタイプを格納する。
【０１５１】
図１０はＰＲＥＳＣＡＮモジュールのオペレーションを示すための詳細なフローチャートである。ステップＳ１００１で、マイクロプロセッサ２１６はＥＰＲＯＭ２２２からＰＲＥＳＣＡＮモジュールを検索し、ＤＲＡＭ２２０にそれをロードし、そこで、ＰＲＥＳＣＡＮモジュールの実行が開始される。図１０に示されるオペレーションシーケンスが完了する前に、マイクロプロセッサ２１６によって、ＥＰＲＯＭ２２２からその後のモジュールが検索され、ＤＲＡＭ２２０の中にそれらがロードされても、ＰＲＥＳＣＡＮモジュールはＳＰＸ及びＩＰＸモジュールより先に実行される。より詳細に述べれば、ＳＰＸとＩＰＸプログラム・モジュールの適切なオペレーションは、ＰＲＥＳＣＡＮによるフレームパケットタイプの識別に依存し、したがって、ＰＲＥＳＣＡＮによって適切なフレームパケットタイプが判定される後までＳＰＸとＩＰＸの実行は延期される。
【０１５２】
ステップＳ１００２で、ＰＲＥＳＣＡＮは、４つのすべてのフレームパケットタイプ（すなわちイーサネット８０２．３、イーサネットＩＩ、イーサネット８０２．２、イーサネットＳＮＡＰ）にＬＳＬを介して同時に繋がる。すなわち、ＰＲＥＳＣＡＮはＬＡＮ通信の各パケットのためのＬＳＬを構成する。そして、このＬＳＬによって、各々の４つのフレームパケットタイプに対応するデータグループが提供される。その後、ＰＲＥＳＣＡＮは、ネットワークドライバからの割込みによる再起動まで不稼働状態となる。
【０１５３】
ステップＳ１００３で、ネットワークドライバによって、同報通信のためにＬＡＮバス上の通信がモニタされる。同報通信とは、宛先ＭＡＣアドレス４１２が特定されていないか、“ＦＦＦＦＦＦＦＦＦＦＦＦ”（１６進表示）という全体的指定が与えられていることを意味する。ネットワークドライバは、同報通信が受信されるまで、同報通信のためにＬＡＮバス上の通信をモニタし続け（ステップＳ１００４）、同法通信が受信されると処理はステップＳ１００５へ進む。ステップＳ１００５で、ＭＡＣアドレス・フィールド４１２及び４１３は受信データパケットから分離され、データ・パケットの残りはＬＳＬへ送られる。ステップＳ１００６で、ＬＳＬによって、各々のフレームパケットタイプに従ってフレームパケットが解読され、各々のフレームパケットタイプに対応してデータグループが与えられる。ステップＳ１００７で、ネットワークドライバによってＰＲＥＳＣＡＮが再起動され、ＬＳＬによって与えられたどのデータグループがＩＰＸヘッダー（すなわち“ＦＦＦＦ”（１６進表示））としての正当な最初の２バイトを持つかが、このＰＥＲＳＣＡＮによって判定される。すなわち、変数データ領域４１４（各々の異なるパケットタイプ（図９）に対応する変数データ領域４１４）があるために、ＬＳＬは、フレームパケットタイプの中の１つだけに従ってＩＰＸヘッダー４１５を適切に識別することができる。即ち、ステップＳ１００７においては、ＰＲＥＳＣＡＮによってＩＰＸヘッダーが探索され、ＬＳＬによって得られた４つのデータグループの内のどれによって正しくＩＰＸヘッダーが与えられたかに従って、ＬＡＮバス上で現在使用されているフレームパケットタイプを判定することができる。
【０１５４】
ステップＳ１００８で、ＰＲＥＳＣＡＮによって、対応するフレームパケットタイプがＤＲＡＭ２２０の共通域に格納され、その結果、ＳＰＸとＩＰＸのような他のネットワークアプリケーション・プログラムによってフレームパケットタイプを使用することができるようになる。その後、ステップＳ１００９で、マイクロプロセッサ２１６が、もし所望であれば、他のソフトウェアモジュールでそのデータ領域を上書きできるように、ＰＲＥＳＣＡＮによってＤＲＡＭ２２０のその格納領域が解放される。
４ｆ．  マルチプロトコルオペレーション
マルチプロトコルオペレーションにおいて、異なる２つのオペレーティング・システムによって、単一のローカルエリアネットワークバス上でＬＡＮ通信が遂行されるが、これはそれぞれ異なる作業プロトコルを使用することによって行なわれる。たとえば、ノーベル社の互換オペレーティング・システムではＳＰＸ／ＩＰＸ作業プロトコルを用いてＬＡＮバス上で通信が行なわれるのに対して、ＵＮＩＸ互換オペレーティング・システムではＴＣＰ／ＩＰ作業プロトコルを用いてＬＡＮバス上での通信が行なわれる。アップル株式会社によって提供されるアップルトークオペレーティング・システム（商標）のような他のオペレーティング・システムでは、マルチプロトコルネットワーク環境の中で、単一ネットワークバス上のＬＡＮ通信用にそれぞれ異なる作業プロトコルが使用される。
【０１５５】
通常、単一ネットワーク・オペレーティング・システムへの通信を行なうためにＮＥＢ２は構成されるが、マルチプロトコルネットワーク環境（たとえばＮｏｖｅｌｌ／ＵＮＩＸ組合せマルチプロトコル環境）で作動するためにＮＥＢ２を構成してもよい。この構成においてＮＥＢ２に含まれるものとしては、ノーベル社オペレーティング・システムでファイル・サーバのジョブ待ち行列をチェックするための前記ＣＰＳＥＲＶＥＲのようなノーベル互換周辺機器サーバ、及び、ＣＰＳＥＲＶＥＲによって行なわれるチェックと同様にＵＮＩＸオペレーティング・システム用ファイル・サーバのジョブ待ち行列をチェックする前記ＣＬＰＲ（カスタムラインプリンタリモート）のようなＵＮＩＸ互換周辺機器サーバ等である。双方のサーバ（ここではＣＰＳＥＲＶＥＲとＣＬＰＲ）によって、共通の周辺機器リソース（ここでは、プリンタのような単一周辺機器）がサービスされる。また、共通のリソース制御のための回線争奪を回避するために、双方のサーバは、他のサーバを除外してこの周辺機器の制御を掌握し、他のサーバに制御を掌握したという信号を送り、ジョブ待ち行列が空いたときには周辺機器の制御を放棄することができる。また、他のサーバが周辺機器を使用するための保留中の要求を持っているかどうかを判定するために、他のサーバに対して、各サーバがチェックを行なうことも可能である。保留となっている要求がある場合には、たとえジョブ待ち行列に残っているジョブがあっても、サーバは、現在のジョブの終了時に周辺機器の制御を放棄することができ、各サーバによる周辺機器の交互使用が可能になる。
【０１５６】
図１１に、マルチプロトコルネットワーク運用のために構成されたＮＥＢ２を示す。図１１に、Ｎｏｖｅｌｌ／ＵＮＩＸ組合せマルチプロトコル環境を例示するが、これは、他の作業プロトコルを図１１に示されたプロトコルで置き換えてもよいし、あるいはそれらと組合わせて使用してもよいことはいうまでもない。図１１で、ＮＥＢ２は、電気的インタフェース３２１、ネットワークドライバ３２２、及びリンクサポートレイヤ（“ＬＳＬ”）３２４を介してＬＡＮバス６に接続している（上述の図７に示されたものとほぼ同じ）。ノーベル仕様作業プロトコルは、参照番号３２５、３２６及び３２７で示される。より明確に述べれば、３２５と３２６は、ＳＰＸ／ＩＰＸ作業プロトコルスタック（あるいはタワー）であり、これによって、ノーベル互換アプリケーションプログラムはＬＳＬを介してＬＡＮバスと通信を行なう。ノーベル互換アプリケーションプログラム３２７は、ＣＰＳＥＲＶＥＲのようなノーベル互換サーバを含む。ノーベル互換ソフトウェアによって、上述のように双方向ＳＣＳＩバス１０２を介してプリンタ４が駆動される。
【０１５７】
ＵＮＩＸ互換作業プロトコルは、参照番号３３５、３３６及び３３７で示される。より明確に述べれば、３３５と３３６にはＴＣＰ／ＩＰ作業プロトコルスタック（あるいはタワー）が含まれ、これによって、ＵＮＩＸ互換アプリケーション・プログラムはＬＳＬを介してＬＡＮバス６へ通信を行なう。ＵＮＩＸ互換ネットワークアプリケーションプログラム３３７は、ＣＬＰＲのようなＵＮＩＸ互換プリンタ・サーバを含む。プリント・サーバＣＬＰＲによって、上述のように、ＳＣＳＩバス１０２を介してプリンタ４が駆動される。
【０１５８】
ＰＲＥＳＣＡＮモジュール３３９はＬＳＬ３２４とインタフェースで結ばれ、各々のオペレーティング・システムのためにＬＡＮバス６上で伝送されているフレームパケットタイプが判定される。より詳細に述べれば、ＵＮＩＸオペレーティング・システムやノーベルオペレーティング・システムのような各オペレーティング・システムは、種々のフレームパケットタイプでＬＡＮバス６上で通信を行なうことができる。ＬＡＮバス６がイーサネットタイプのＬＡＮバスである場合には、ＵＮＩＸオペレーティング・システムは、３つのフレームパケットタイプ（すなわちイーサネット８０２．２、イーサネットＩＩ、イーサネットＳＮＡＰ）のうちの任意のタイプによってイーサネット上で通信することができる。同様に、ＬＡＮバス６がイーサネットタイプのバスである場合、ノーベル社オペレーティング・システムは、４つのフレームパケットタイプ（すなわちイーサネット８０２．２、イーサネット８０２．３、イーサネットＩＩ、イーサネットＳＮＡＰ）のうちの任意のタイプによってＬＡＮバス上で通信することができる。ノーベルオペレーティング・システムとＵＮＩＸオペレーティング・システムの双方が、同じフレームパケットタイプを使用することが可能である。即ち、マルチプロトコル環境でオペレーティング・システムのどれがＬＡＮバス上で現在通信しているかを判定するのはオペレーティング・システムプロトコル（ノーベルではＳＰＸ／ＩＰＸ、また、ＵＮＩＸではＴＣＰ／ＩＰ）である。
【０１５９】
図１１に示されたマルチプロトコル環境において、図１０で示したステップを各々のオペレーティング・システムプロトコルに対して実行することによって、各オペレーティング・システムで使用されているフレームパケットタイプをＰＲＥＳＣＡＮモジュール３３９が判定する（上述のセクション４ｅを参照）。たとえば、ＵＮＩＸ互換及びノーベル互換システムによってマルチプロトコル環境が構成される場合、ＰＲＥＳＣＡＮが、ＬＳＬを介してＳＰＸ／ＩＰＸプロトコルタワーに対するすべての４つのフレームパケットタイプに同時に繋がり、その結果ＬＳＬから返信された適切なＩＰＸヘッダを持つデータグループに従ってフレームパケットタイプが判定される。次いで、ＰＲＥＳＣＡＮは、ＴＣＰ／ＩＰプロトコルタワーを持つ３つすべてののフレームパケットタイプを介してＬＳＬを通じて同時に繋がる。適切なＴＣＰ／ＩＰヘッダーを持つデータグループに従って、ＵＮＩＸ互換オペレーティング・システムによって使用されるフレームパケットタイプがＰＲＥＳＣＡＮによって判定される。
【０１６０】
より詳細に述べるならば、適応的かつ自動的に、複数の所定のフレームパケットタイプのうちどれがマルチプロトコルネットワーク環境のＬＡＮ通信用に現在使用されているかを判定するために、ＰＲＥＳＣＡＮプログラム・モジュール３３９がＥＰＲＯＭ２２２からＤＲＡＭ２２０へダウンロードされ、ここで、マイクロプロセッサ２１６によってＰＲＥＳＣＡＮモジュールが実行される。第１オペレーティング・システム用のフレームパケットタイプを判定するために、ＰＲＥＳＣＡＮは、まずノーベル互換オペレーティング・システム用ＳＰＸ／ＩＰＸ作業プロトコルのような第１オペレーティング・システムプロトコルに対応する複数のフレームパケットタイプに同時に繋がるようにＬＳＬを構成する。ネットワークドライバ３２２によってＬＡＮ通信バスがモニタされ、第１オペレーティング・システムのための同報通信がキャッチされる。このような同報通信のキャッチに応じて、キャッチされた同報通信に対する複数のデータグループがＬＳＬによって与えられ、これらのデータグループの各々は複数の異なるパケットタイプにそれぞれ対応している。ＰＲＥＳＣＡＮモジュール３３９が再起動され、ＳＰＸ／ＩＰＸヘッダーのような所定のヘッダーの存在を求めて各データグループがプレスキャンされ、第１オペレーティングプロトコルタワーによって使用される所定のヘッダーを持つデータグループに対応するフレームパケットタイプが、ＰＲＥＳＣＡＮモジュール３３９によって格納される。
【０１６１】
ＵＮＩＸオペレーティング・システムのような第２オペレーティング・システムのために使用されるフレームパケットタイプを判定するために、ＰＲＥＳＣＡＮは、ＵＮＩＸオペレーティング・システム用のＴＣＰ／ＩＰのような第２オペレーティング・システムプロトコルに対応する複数のフレームパケットタイプに同時に繋がるようにＬＳＬを構成する。ネットワークドライバによってＬＡＮ通信バスがモニタされ、第２オペレーティング・システムに対する同報通信がキャッチされる。そして、このキャッチされた同報通信に対応して複数のデータグループがネットワークドライバによって提供され、これらのデータグループの各々はそれぞれ異なるパケットタイプに対応している。ＰＲＥＳＣＡＮモジュールによって、Ｕｎｉｘ用のＴＣＰ／ＩＰヘッダーのような所定のヘッダーの存在を求めて各データグループがプレスキャンされ、所定のヘッダーを持つデータグループに対応するフレームパケットタイプが格納される。
【０１６２】
一度、マルチプロトコル環境において各々のオペレーティング・システムよって使用されるフレームパケットタイプの知識が得られたならば、ＣＰＳＥＲＶＥＲのようなノーベル互換ネットワークアプリケーション・プログラム３２７、及びＣＬＰＲのようなＵＮＩＸ互換ネットワークアプリケーション・プログラム３３７は、双方ともＬＡＮバス６上で通信することができる。概略的に示されているように、この２つのアプリケーション・プログラム３２７と３３７は信号線３４０によって相互通信を行なう。信号線３４０（プログラム３２７及び３３７によって共通にアクセスされるＤＲＡＭに格納された制御レジスタを用いて実現される）を用いて、プログラム３２７と３３７は相互通信を行なうことができ、このプログラムの一方がプリンタ４に対する排他的制御を掌握したという信号を送ったり、あるいは、このプログラムの一方がプリンタ４の使用に対する保留中の要求を持っているということを信号で送ることができる。このことに関しては、以下で、より詳細に説明する。
【０１６３】
オペレーションにおいて、ＣＰＳＥＲＶＥＲのような第１サーバによって、そのオペレーティング・システムジョブ待ち行列がチェックされ、もし、ジョブ待ち行列に印刷情報がある場合、そのオペレーティング・システムから印刷情報が第１サーバによって受信される。第１サーバによるジョブ待ち行列チェックと調和して、ＣＬＰＲのような第２サーバによってそのオペレーティング・システムジョブ待ち行列がチェックされ、もしジョブ待ち行列に印刷情報がある場合、オペレーティング・システムからジョブ情報が第２サーバによって受信される。これらサーバの１つがプリンタ周辺機器の使用を必要とする十分な情報を得た場合、プリンタの排他的制御がそのサーバによって掌握され、プリンタの排他的制御を掌握したという信号が信号線３４０を介して他のサーバへ送信される。これによって、他のサーバがプリンタ４に印刷ジョブを不注意に挿入しようとすることがある回線争奪問題が防止される。
【０１６４】
プリンタ４のジョブ待ち行列が空になるまで、プリンタ４に対する排他的制御が第１サーバによって保持される。このジョブ待ち行列が空になった場合、第１のサーバによってプリンタ４の制御が放棄されるが、この後は、他の任意のサーバによってこのプリンタを使用することができる。
【０１６５】
又、別の方法によれば、たとえ第１サーバのジョブ待ち行列がまだ空ではなくても、第１サーバが印刷ジョブの終了に達した場合、信号線３４０を介して他のサーバに対して問合せを行ない、他のサーバがプリンタ４の使用に対する保留中の要求を持っているかどうかが判定される。もし他のサーバが保留中の要求を持っている場合、第１サーバはプリンタに対する制御を一時的に放棄し、これにより各々のサーバによる周辺機器の交互使用が可能になる。この場合、第１サーバは、プリンタに対する制御を放棄しても、自分がプリンタの使用に対する保留中の要求を持っていることを信号で送信する。
４ｇ．  ＳＡＰＳＥＲＶＥＲを使用する単一ネットワーク・ノードからの複数サーバの公示
上述のように、ＮｅｔＷａｒｅは、各々の非ファイルサーバネットワーク・ノードからの単一ネットワークサーバがＬＡＮバス上でのそのサービスを公示することを可能にするだけである。しかしながら、非強制排除ＭＯＮＩＴＯＲによって確立されたマルチタスク環境においては、ＮＥＢ２によって２つ以上のネットワークサーバが与えられる。特に、ＮＥＢ２は、ソケットサーバ（ＣＰＳＯＣＫＥＴ）のサービスと同様にプリント・サーバ（ＣＰＳＥＲＶＥＲ、ＣＲＰＲＩＮＴＥＲあるいはＣＬＰＲ）のサービスも提供する。ＳＡＰＳＥＲＶＥＲプログラム・モジュールによって、双方のネットワークサーバが、通常は各ノードからの単一ネットワークサーバだけの公示しかサポートされないＬＡＮ通信システムにおいて、単一ネットワーク・ノード（ここにでは、ＮＥＢ）からのその諸サービスの公示をすることが可能になる。各々のクライアントサーバ（ここでは、ＣＰＳＯＣＫＥＴとＣＰＳＥＲＶＥＲ）のサービスを交互に公示するＮＥＢ中の代用サーバ（すなわちＳＡＰしているエンティティ）として動作することにより、ＳＡＰＳＥＲＶＥＲは上述の如き公示を遂行する。
【０１６６】
ＳＡＰＳＥＲＶＥＲは、そのクライアントの１つへ向けられたＳＡＰ同報通信要求を求めてネットワークを聴取し、そのクライアントのサーバタイプ、サーバ名、及び通信ソケット番号で応答を行なう。そしてこの応答によりクライアントは直接ＬＡＮ通信を確立することができる、
図１２はＳＡＰＳＥＲＶＥＲのソフトウェア構造を説明するための図であり、図１３はＳＡＰＳＥＲＶＥＲのオペレーションを説明するフローチャートである。  図１２に示されるように、ＳＡＰＳＥＲＶＥＲはソフトウェア階層において、ソフトウェアのアプリケーションレベルの位置されており、その結果、これは、ソフトウェアのＳＰＸとＩＰＸネットワークレベルと直接通信できる。ＳＡＰＳＥＲＶＥＲは、各々のクライアントの代用ＳＡＰエンティティとして働く。そして、本実施例のＮＥＢ２の場合には、ＳＡＰＳＥＲＶＥＲは、ボードの構成によって指定されるようなソケットサーバプログラムＣＰＳＯＣＫＥＴ及びプリント・サーバプログラムＣＰＳＥＲＶＥＲから成る。ＳＡＰＳＥＲＶＥＲは、また、“クライアント＃Ｎ”で図示されているような、他のクライアントにも同様に機能するように構成することができる。
【０１６７】
図１３に示されているように、マイクロプロセッサ２１６によってＥＰＲＯＭ２２２からＳＡＰＳＥＲＶＥＲプログラム・モジュールが引き出され、ＤＲＡＭ２２０に格納される。その後、マイクロプロセッサ２１６によってＳＡＰＳＥＲＶＥＲプログラムのオペレーションが開始され、ＳＡＰ独占同報を求めてＳＡＰ独占ソケットを聴取するためにこのプログラムが構成される（ステップＳ１３０１）。ステップＳ１３０２で、マイクロプロセッサ２１６によってＥＰＲＯＭ２２２からＣＰＳＯＣＫＥＴモジュールが引き出され、ＤＲＡＭ２２０に格納されて実行される。ＣＰＳＯＣＫＥＴプログラム・モジュールはＣＰＳＯＣＫＥＴサービスの公示を行うべくＳＡＰＳＥＲＶＥＲへ要求が発行する。これにより、標準ＳＡＰプロトコルに従って、ＳＡＰＳＥＲＶＥＲはＣＰＳＯＣＫＥＴに対する周期的（たとえば１分間隔）な公示を開始する（ステップＳ１３０３）。
【０１６８】
ステップＳ１３０４で、マイクロプロセッサ２１６によってＥＰＲＯＭ２２２からＣＰＳＯＣＫＥＴモジュールが引き出され、ＤＲＡＭ２２０に格納され、実行される。ＣＰＳＥＲＶＥＲは、ＣＰＳＥＲＶＥＲサービスの公示をネットワーク上に行う要求をＳＡＰＳＥＲＶＥＲに対して発行する。ＳＡＰＳＥＲＶＥＲによって、ＣＰＳＥＲＶＥＲのサービスに対する周期的なＳＡＰ公示が開始され、且つＣＰＳＯＣＫＥＴに対するサービスも公示され続ける。ステップＳ１３０５で示されるように、この公示は周期性を持って交互に行なわれる。
【０１６９】
ステップＳ１３０６によって、同報要求がＳＡＰ独占ソケットで受信されたかどうかが判定される（たとえばソケット番号４５３とする）。同報要求が独占ソケットで受信されてしまうまで、ＳＡＰＳＥＲＶＥＲは、ＣＰＳＥＲＶＥＲとＣＰＳＯＣＫＥＴのサービスの公示を単に周期的に且つ交互に出し続ける。しかしながら、同報要求が独占ソケットで受信された場合、次のステップＳ１３０７でＳＡＰＳＥＲＶＥＲによって、その同報要求がそのクライアントのうちの１つのサービスに対する（ここではＣＰＳＯＣＫＥＴまたはＣＰＳＥＲＶＥＲのサービスに対する）ものであるかどうかが判定される。同報要求がＳＡＰＳＥＲＶＥＲのクライアントの１つに対するものではない場合、処理は単にステップＳ１３０５へ戻り、そこでＳＡＰＳＥＲＶＥＲはそのクライアントに対する公示を間欠的に出し続ける。また一方で、同報要求がＳＡＰＳＥＲＶＥＲのクライアントの１つに対するものである場合、処理はステップＳ１３０８へ進む。
【０１７０】
ステップＳ１３０８で、ＳＡＰＳＥＲＶＥＲは、独占ソケット番号４５３上でＩＰＸパケットで応答する。このＩＰＸパケットはそのクライアントのサーバタイプ、サーバ名及び通信ソケット番号を含む。また、このＩＰＸパケットは、通信ソケットを指定し、その通信ソケットにより同報要求者がそのクライアントと直接的な通信を確立することができる。そして、ＳＡＰＳＥＲＶＥＲは、ステップＳ１３０５へもどり、その各々のクライアントに対する公示を周期的に交互に出し続ける。
【０１７１】
ステップＳ１３０９では、同報要求者は、ステップＳ１３０８で確立された通信ソケットを通して同報要求で指定されたクライアントとの直接的なＳＰＸ接続を確立する。本構成において、プリント・サーバＣＰＳＥＲＶＥＲのサービスが要求される場合、そのソケット番号は８０６０である。また一方で、ＣＰＳＯＣＫＥＴサーバのサービス要求が行なわれる場合、そのソケット番号は通信に対しては８３Ｂ４であり、接続に対しては８３Ｂ５である。次いで、下記により詳細に説明するように、直接通信が進行する。
４ｈ．  ＣＰＩＮＩＴを用いる、ネットワークされたプリンタ構成
図１４は、ＮＥＢが常駐するＮＥＢ２とプリンタ４の双方を初期化し構成しかつその後再構成するために、ネットワーク管理者がＰＣ１４からＣＰＩＮＩＴをどのように使用することができるか示すフローチャートである。
【０１７２】
ステップＳ１４０１で、ＣＰＩＮＩＴユーティリティはネットワーク上でプロトコルを公示するサービス（ＳＡＰ）を使用し、ネットワークされたプリンタ装置のうちどのプリンタがＣＰＩＮＩＴの問合せに応答可能であるかが判定される。各ＮＥＢボードにおいて、ＣＰＳＯＣＫＥＴは、サーバタイプ、各ＮＥＢを直接アクセスすることを可能とするためのサーバ名とユニークなソケット番号、及びＮＥＢがモジュールの構成を必要とするかどうかの指示でもって応答する。
【０１７３】
ステップＳ１４０２で、ＣＰＩＮＩＴによって、すべてのＮＥＢ及びそれらの関連装置のリストが構築され、システム管理者が選択できるメニュー形式でそれらは提示される。選択に続いて、ＣＰＩＮＩＴにより、ターゲットＮＥＢの現在の構成が要求される（ステップＳ１４０３）。より明確に述べれば、ＣＰＩＮＩＴによって、ＬＡＮインタフェースを介してターゲットＮＥＢへ要求が送信される。ＮＥＢで、構成情報に対する要求がＬＡＮインタフェースからＣＰＳＯＣＫＥＴによって受信される。必要とされる構成情報がＣＰＳＯＣＫＥＴによって収集され、ＬＡＮインタフェースを介してシステム管理者のＰＣ１４上のＣＰＩＮＩＴへこの情報が向けられる（ステップＳ１４０４）。ステップＳ１４０５で、ターゲットＮＥＢの現在の構成のメニューがＣＰＩＮＩＴによって表示される。ステップＳ１４０６からＳ１４０８において、システム管理者は、ターゲットボードに対する所望の構成を指定する。より詳細に述べれば、メニュー表示のようなユーザ・インタフェースによってシステム管理者のＰＣ１４上で構成が指定される。例えば、以下の構成パラメータがオペレータによって選択され、構成情報がセットされる。即ち、（１）ロギング情報（ステップＳ１４０６）、（２）ＮＥＢ名（ステップＳ１４０７）、及び（３）アプリケーションタイプ（ＣＰＳＥＲＶＥＲのような）（ステップＳ１４０８）である。
【０１７４】
ロギング情報の下で、システム管理者は、４つの異なるレベルのロギングのうち１つを指定する。この４つのレベルとは例えば、
“ＮＯＮＥ”（ロギング無効）
“ＡＵＴＯ”（基本的なプリンタ利用統計値を１日当たり１回経過記録）
“ＥＲＲＯＲ”（基本的なプリンタ利用統計値及びエラー事象を、それらが発生したとき、経過記録する）
“ＪＯＢ”（基本的な利用率プリンタ統計値、エラー事象及びジョブ開始／終了情報をすべて、それらが発生したとき、経過記録する）である。
【０１７５】
ログ選択を行なった後、システム管理者は、ログ情報を格納するためにプリンタのディスク上に（あるいは、プリンタにディスクがない場合にはＮＶＲＡＭ１１１上に、もしくはＮＥＢのＮＶＲＡＭ２２８上に）最大ログサイズのスペースをプリンタが確保することを可能とするべく最大ログサイズ（“ＮＯＮＥ”が選択された場合を除いて）を設定しなければならない。
【０１７６】
ＮＥＢ名情報において（ステップＳ１４０７）、システム管理者は、“２ｎｄＦｌｏｏｒ  Ｌａｓｅｒ”のような記述名のように、ＮＥＢに英数字名を割当ててもよい。この記述名は、ＮＥＢによってそのＮＶＲＡＭに格納され、識別を助けるためにＮＥＢ及び他のネットワーク装置によって利用される。
【０１７７】
アプリケーションタイプ選択において（ステップＳ１４０８）、システム管理者は、ＮＥＢをＣＰＳＥＲＶＥＲとして構成するかあるいはＣＲＰＲＩＮＴＥＲとして構成するかを選択する。ＣＰＳＥＲＶＥＲが選択された場合にはシステム管理者が次の項目を指定する必要がある。即ち、ＮＥＢに割当てられたプリント・サーバ名、パスワード、アプリケーションバッファサイズ、待ち行列サービスモード、型番号、ＮＥＢが常駐するプリンタのプリンタ番号、ＮＥＢによってサービスされる印刷待ち行列名、及び第１ファイルサーバ名である。一方、ＣＲＰＲＩＮＴＥＲが選択された場合には、ＮＥＢがその印刷情報を得るプリント・サーバ名、ＮＥＢが常駐するプリンタのプリンタ番号、ＮＥＢによってサービスされる印刷待ち行列名、及び第１ファイルサーバ名をシステム管理者が指定する必要がある。
【０１７８】
ステップＳ１４０９で、ＣＰＩＮＩＴはネットワークＬＡＮを介してＮＥＢに新しい構成を送る。ターゲットＮＥＢで、ＣＰＳＯＣＫＥＴは新しい構成情報を受信し、ＮＶＲＡＭ２２８にそれを格納する（ステップＳ１４１０）。
【０１７９】
ＮＥＢの構成を完成するために、ＮＥＢはリブートされなければならない。システム管理者によって、ＣＰＩＮＩＴを介してコマンドが送出され、このコマンドによってターゲットＮＥＢへＬＡＮを介してリブートコマンドが順次送られる（ステップＳ１４１１）。ＮＥＢで、ＣＰＳＯＣＫＥＴは、リブートコマンドを受信し、新しい構成でＮＥＢがリブートされる（ステップＳ１４１２）。
４ｉ．  ＣＰＣＯＮＳＯＬを使用するネットワークされたプリンタのアクセス
ＣＰＣＯＮＳＯＬは、システム管理者のＰＣ１４から実行されるユーティリティ・プログラムであり、これによって、ＮＥＢを使用し、ネットワーク接続されたプリンタを最大限にかつ効率的に制御することができる。ＣＰＣＯＮＳＯＬを使用することで、ルーチンおよび進行中の保守パラメータを遠隔地から追跡することが可能である。例えば、この追跡によって、トナーが不足しているか、用紙トレーが空になっているか、用紙が詰まっているか、あるいはプリンタが全く応答しないかを判定することができる。ＣＰＣＯＮＳＯＬによって、印刷ページ数合計を記録し、日常保守および予防保守のスケジュールをたて、同時に、プリンタの最終的交換を計画することも可能である。
【０１８０】
ＣＰＣＯＮＳＯＬユーティリティによって、プリンタ操作に関する統計値へのアクセスがシステム管理者に与えられ、同時に、ネットワーク通信の効率も与えられる。ＣＰＣＯＮＳＯＬによって、印刷ページ数の合計が判定され、同時に、１分当たりの平均印刷ページ率、１日当たりの平均印刷ページ数、及び、プリンタの作業効率のモニタを可能にする他の統計値も判定することができる。
【０１８１】
ネットワーク統計値によって、再実行、オーバラン、およびアンダーランのエラーと同様、ネットワーク上の通信効率（すなわち送受信エラー頻度）測定が可能になる。
【０１８２】
複数のプリンタがインストールされると、ＣＰＣＯＮＳＯＬは、総ページ数と同様総ジョブ数に関する各プリンタの使用状態を遠隔地から記録することができる。この機能により、消耗紙費用のような項目に対する直接部門別勘定のようなジョブトラッキングを行なうことが可能となる。
【０１８３】
進行中の作業をモニタすることにより、ＣＰＣＯＮＳＯＬはよりよい効率をもたらすようにネットワークプリンタを再配置すべきか追加べきかの決定支援を行なうことができ、同時に、プリンタ交換の必要性をも予測することができる。
【０１８４】
ＣＰＣＯＮＳＯＬによって、デフォルト（安全）環境パラメータを設定することもでき、このパラメータにより、各印刷ジョブに先立って、同じ方法によるプリンタ構成が保証される（セクション４ｍに後述）。ユーザは、もちろん、その印刷ジョブ自身の範囲内でその構成を変更することもできる。
【０１８５】
図１５Ａ及び図１５ＢはＣＰＣＯＮＳＯＬの動作を示す詳細なフローチャートである。ＣＰＩＮＩＴと同様に、ＣＰＣＯＮＳＯＬによって、まず、ＬＡＮ上で同報通信が行なわれ、ＬＡＮに接続されたすべてのＮＥＢ装置の識別が要求される（ステップＳ１５０１）。ＮＥＢの装置において、ＣＰＳＯＣＫＥＴは、ＮＥＢに割当てられたユニークなネットワークＩＤ及び通信ソケット番号で応答する（ステップＳ１５０２）。ＣＰＣＯＮＳＯＬによって、すべてのＮＥＢ装置に対する応答情報が収集され、管理者へ応答ＮＥＢ装置のリストが表示される（ステップＳ１５０３）。管理者によってＮＥＢ装置の１つが選択され、そこで、ネットワークＩＤとソケット番号に応じたＬＡＮ同報通信によって、選択されたＮＥＢとの直接ネットワーク通信がＣＰＣＯＮＳＯＬにより確率される。
【０１８６】
一度、ターゲットＮＥＢとの直接ＬＡＮ通信が確率されると、ＣＰＣＯＮＳＯＬはメニュー表示のようなユーザ・インタフェースによって作動する（ステップＳ１５０４）。このメニューによって、ＣＰＣＯＮＳＯＬの機能は５つのグループ、すなわち、環境、ネットワーク、ロギング、アプリケーション制御、及びプリンタ状態に分割される。これらの機能グループを下記のセクションで詳述する。
【０１８７】
［環境グループ（ステップＳ１５０５）］
この環境選択により、ＣＰＣＯＮＳＯＬが選択されたプリンタの現在の環境を表示し（ステップＳ１５０６）、この新しい環境の変更と格納が可能となる（ステップＳ１５０７）。この環境は、共通環境、インタフェース、制御、及び、品質の４つのグループに細分される。
【０１８８】
共通環境が選択されると、ＣＰＣＯＮＳＯＬによりターゲットＮＥＢに対するＬＡＮ要求が開始され、エミュレーション・モード、フィーダ及びページ総数が設定される。ターゲットＮＥＢのＣＰＳＯＣＫＥＴによって、ＬＡＮ要求が受信され、双方向ＳＣＳＩインタフェースを介して接続されたプリンタから所望の情報が取得され、ＬＡＮインタフェースを介して管理者のＰＣ１４のＣＰＣＯＮＳＯＬにこの情報が送られる。ここで、ＣＰＣＯＮＳＯＬによって、エミュレーション・モード、フィーダ及びページ総数を示すリストが表示される。
【０１８９】
インタフェースメニューが選択されると、インタフェース情報に対するＬＡＮ要求がＣＰＣＯＮＳＯＬによってターゲットＮＥＢへ向け開始される。ＮＥＢが応答すると、ＣＰＣＯＮＳＯＬにより、この選択されたプリンタに現在セットされているインタフェース表示がインタフェースリストにより行なわれる。
【０１９０】
制御メニューが選択され、同じ様に、ＣＰＣＯＮＳＯＬによって、ターゲットＮＥＢに対してＬＡＮ要求が開始され、プリンタ設定を行なうために双方向ＳＣＳＩバスを介してＮＥＢのプリンタへさらに問合せが行なわれる。このプリンタ設定は、ＬＡＮインタフェースを通ってＣＰＣＯＮＳＯＬへ戻され、表３に従うプリンタの現在の設定状態が表示される。
【０１９１】
0003592323.tif 000005
0003592323.tif 000006
0003592323.tif 000007
品質グループが選択されると、ＬＡＮインタフェースを介してターゲットＮＥＢに情報が要求され受信された後、ＣＰＣＯＮＳＯＬによって、選択モード、高精細モード、メモリ使用状況及び低解像度モードの設定が表示される。
【０１９２】
［ネットワーク・グループ（ステップＳ１５０８）］
ネットワーク選択により、ＣＰＣＯＮＳＯＬが、ネットワーク上のネットワークされたプリンタの性能に関する、編集された統計値の表示（ステップＳ１５０９）、新しいネットワーク・グループの変更と格納（ステップＳ１５１０）を行なうことが可能になる。これらの統計値は、媒体依存及び媒体非依存関連送受信統計値にさらに区分される。ＣＰＣＯＮＳＯＬによって、すべての統計値をクリアすることも可能である。
【０１９３】
システム管理者がネットワーク・グループを選択すると、ＣＰＣＯＮＳＯＬによって、ＬＡＮインタフェースを介するターゲットＮＥＢへのネットワーク要求が開始される。ＮＥＢにおいて、ＣＰＳＯＣＫＥＴはこの要求に応答し、必要な性能情報が得られる。この情報はＣＰＳＯＣＫＥＴによって収集され、ＬＡＮインタフェースを介して管理者のＰＣ１４のＣＰＣＯＮＳＯＬへ戻される。管理者のＰＣ１４において、ＣＰＣＯＮＳＯＬによって媒体依存及び媒体非依存関連送受信情報が表示される。
【０１９４】
表４及び表５に媒体依存送受信統計値がまとめられている。
【０１９５】
0003592323.tif 000008
0003592323.tif 000009
媒体非依存統計によって、送信媒体とは関連のないネットワーク統計値が表示される。このような統計値はネットワーク上のプリンタの全体的な動作をよく要約しており、それは表６のようにまとめられる。
【０１９６】
0003592323.tif 000010
［ロギンググループ（ステップＳ１５１１）］
ロギンググループ選択により、ＮＥＢによって編集された１セットのジョブ関連統計値の表示（ステップＳ１５１２）、新しいロギンググループの変更と格納（ステップＳ１５７３）をＣＰＣＯＮＳＯＬが行なうことが可能になる。表示されたデータにはジョブ平均、ページ平均及び性能データが含まれている。ＣＰＣＯＮＳＯＬは、このメニューで合計値をゼロにリセットすることもまた可能である。統計値に加えて、ＣＰＩＮＩＴによって構成されているように、すべての印刷ジョブ用のログを作成したり、ワークステーションディスクへログを書込んだり、あるいは、ログ・ファイルを消去することが、ＮＥＢによって可能である。システム管理者がロギンググループオプションを選択した場合、ＣＰＣＯＮＳＯＬによって、ＬＡＮインタフェースを介してログ・ファイルを求めるＬＡＮ要求がターゲットＮＥＢへなされる。ＮＥＢにおいて、ＣＰＳＯＣＫＥＴによってこの要求が受信され、また、ＣＰＳＯＣＫＥＴによってプリンタ上にログ・ファイルが格納されるため、双方向ＳＣＳＩインタフェースを介しプリンタからログ・ファイルが要求される。ログ・ファイルが格納されているいかなる（ディスク１１４のような）場所からでも、ＮＥＢによってこのログ・ファイルが検索され、双方向ＳＣＳＩインタフェースを介してＣＰＳＯＣＫＥＴへこのファイルが送られる。次いで、ＣＰＳＯＣＫＥＴによってこのログ・ファイルはＬＡＮインタフェースを介してネットワーク上に置かれ、ＣＰＣＯＮＳＯＬによって受信される。
【０１９７】
このログ・ファイルには、１日値、累計値、及び、平均値の３つのカテゴリーに分割される統計値が含まれている。１日値とは、今日の値を示す。累計値とは、最終リセット以来、又は、ディスク・ドライブなしでプリンタの電源が投入されて以来の合計を示す。平均値とは、累計合計値を最終リセット以来の日数で割った値である。３つのカテゴリーの各々に対して、下記の値の合計がＮＥＢによって保持される（ＣＰＩＮＩＴがロギングレベルを「ＮＯＮＥ」にセットしない限り）。即ち、日数（リセットが送出されるか、あるいは、電源が投入されて以来の日数）と、印刷ページ数と、印刷ジョブ処理数と、オフライン時刻、及び、印刷時刻である。
【０１９８】
目視による確認と印刷のために、格納ログ・ファイルがＣＰＣＯＮＳＯＬによって画面上に取り出される。ログ・ファイルは時間を遡るように整理されており、以下のレコードタイプが含まれている。表７に要約されるように、ログ・ファイルの正確な内容はＣＰＩＮＩＴによってセットされるロギングレベルに従って異なる。
【０１９９】
0003592323.tif 000011
［アプリケーション制御（ステップＳ１５１４）］
アプリケーション制御により、ネットワーク（ＣＰＳＥＲＶＥＲあるいはＣＲＰＲＩＮＴＥＲのいずれか）内のＮＥＢの現在の構成を視ること（ステップＳ１５１５）、及び、このアプリケーションの起動／停止又は変更と格納がＣＰＣＯＮＳＯＬによって可能になる（ステップＳ１５１６）。ターゲットＮＥＢへのアクセスは、結果コードをＬＡＮインタフェースに出力することによって、ＣＰＣＯＮＳＯＬ要求に応答するＬＡＮインタフェースを介して行なわれる。
【０２００】
［プリンタ状態（ステップＳ１５１７）］
このメニューによって、ＮＥＢに接続されたプリンタの現在の状態表示（ステップＳ１５１８）、新しいプリンタ状態の変更と格納をＣＰＣＯＮＳＯＬが行なうことが可能になる（ステップＳ１５１９）。ＣＰＣＯＮＳＯＬは、ＬＡＮインタフェースを介してターゲットＮＥＢに対して状態要求を行なう。ターゲットＮＥＢでは、ＣＰＳＯＣＫＥＴが、状態要求を受信し、プリンタに対して双方向ＳＣＳＩインタフェースを介して必要な状態情報を求める要求を送信する。ＣＰＳＯＣＫＥＴは、双方向ＳＣＳＩインタフェースを通してプリンタから状態情報を受信し、この情報をＣＰＣＯＮＳＯＬに戻し、このＣＰＣＯＮＳＯＬで、この情報はシステム管理者のＰＣ１４上に表示される。
【０２０１】
２９の可能な状態状況があり、表８に要約されるように“ＮＯＲＭＡＬ”が最も普通のものである。
【０２０２】
0003592323.tif 000012
0003592323.tif 000013
0003592323.tif 000014
0003592323.tif 000015
４ｊ．  ＣＰＳＯＣＫＥＴを用いた状態問合せへのＮＥＢ応答
ＣＰＳＯＣＫＥＴとは、非強制排除モニタによって提供されるマルチタスクのソフトタイム環境において、ＮＥＢ２上のＤＲＡＭ２２０から実行されるアプリケーション・プログラムである。ＣＰＳＯＣＫＥＴは、ＣＰＩＮＩＴ、ＣＰＣＯＮＳＯＬ及びＤＯＷＮＬＯＡＤＥＲのようなクライアントプログラムから同報通信を行なうために、ＳＡＰＳＥＲＶＥＲにＬＡＮ上の同報通信ソケットをモニタさせる。
【０２０３】
ＣＰＳＯＣＫＥＴは、ＰＳＥＲＶＥＲ又はＲＰＲＩＮＴＥＲのいずれかのような構成のＮＥＢの内部構成に対して応答可能である。上述のように、ＣＰＩＮＩＴの要求に対して構成設定がなされるが、その構成コマンドを受信し、ＮＶＲＡＭ２２８を物理的に変更するのは、ＣＰＳＯＣＫＥＴである。
【０２０４】
また、ＣＰＳＯＣＫＥＴよって、装置環境（すなわち保証された安全環境のことであり、セクション４ｍに後述）を示すデフォルト設定値の表が保持されており、装置の電源投入時にプリンタ及びＮＥＢに対する基本的な構成情報（例えば、フォント及びエミュレーション）がダウンロードされ（セクション４ｄ参照）、ＣＰＣＯＮＳＯＬ要求に応じて装置状態情報、統計値及びログ情報を提供し、また、リセット、リブート及びファームウェアダウンロード能力が設けられている。
【０２０５】
図１６Ａと図１６Ｂは、ＣＰＳＯＣＫＥＴプログラムの動作を示す詳細なフローチャートである。ステップＳ１６０１では、電源投入自己検査（ＰＯＳＴ）が首尾良く行なわれた後、マイクロプロセッサ２１６により、ＣＰＳＯＣＫＥＴプログラム・モジュールがＥＰＲＯＭ２２２の中のその格納位置からＤＲＡＭ２２０の適切な格納位置へと転送される。転送中、マイクロプロセッサ２１６によって、ＮＶＲＡＭ２２８に格納されたＣＰＳＯＣＫＥＴプログラムに対する構成情報に従い、ＣＰＳＯＣＫＥＴプログラムが構成される。したがって、例えば、所望のレベルの複雑度に従ってＣＰＳＯＣＫＥＴプログラム・モジュールの一定部分を選択的に起動させることが可能となり、これら所望のレベルの複雑度の情報はＮＶＲＡＭ２２８に格納される。
【０２０６】
ステップＳ１６０２で、ＮＥＢは、ＤＲＡＭ２２０からＣＰＳＯＣＫＥＴの実行を開始する。ＣＰＳＯＣＫＥＴは、マルチタスクのソフトタイム環境において非強制排除ＭＯＮＩＴＯＲによって実行され、このＭＯＮＩＴＯＲにより、他のアプリケーション・プログラムの排他に対するマイクロプロセッサの制御を、１つのアプリケーション・プログラムに掌握させることなく、ＣＰＳＥＲＶＥＲのような他のアプリケーション・プログラムを非強制排除的に実行させることができる。
【０２０７】
ステップＳ１６０３で、独占ソケット番号を含むサービス公示プロトコル同報通信（ＳＡＰＳＥＲＶＥＲ）を介して、ＬＡＮインタフェース上で、ＣＰＳＯＣＫＥＴによってその存在が同報される（セクション４ｇ参照）。他のサーバがステップＳ１６０２で設定されたマルチタスク環境においてオペレーションを行なっているため、また、ＮｅｔＷａｒｅ（商標）互換ソフトウェアのみによってただ一つの非ファイルサーバのサーバがＮＥＢのような単一ネットワーク・ノードから公示することができるために、ＣＰＳＯＣＫＥＴによってＳＡＰＳＥＲＶＥＲプログラムを介してそのＳＡＰ公示が同報通信される。上記パラグラフ４ｇで詳しく説明したように、ネットワークが各ネットワーク・ノードに対して１つのサーバしかサポートしていない場合であっても、２つのネットワークサーバが単一ネットワーク・ノードから同報通信を行なうことがＳＡＰＳＥＲＶＥＲプログラムにより可能である。
【０２０８】
ステップＳ１６０４で、ＣＰＳＯＣＫＥＴによって、クライアント（例えば、独占ソケット４５３上のＣＰＩＮＩＴやＣＰＣＯＮＳＯＬ）から同報通信要求が受信される。ＣＰＳＯＣＫＥＴは、同じソケット上のＩＰＸパケットでクライアントに応答する（ステップＳ１６０５）。
【０２０９】
ステップＳ１６０６で、クライアントによって、ＣＰＳＯＣＫＥＴに予め割り当てられるソケット番号を用いてＣＰＳＯＣＫＥＴと直接ＳＰＸ通信が確率される。ここでは、ソケット番号を通信用として８３Ｂ４、接続用として８３Ｂ５とする。この直接接続に従って、クライアント要求及び／またはＬＡＮインタフェースで受信されるコマンドが、ＣＰＳＯＣＫＥＴによって受信され、解釈され、双方向ＳＣＳＩを通してプリンタ状態がモニタされ、双方向ＳＣＳＩインタフェースを介して状態コマンド及び／またはプリンタに対する問合せが送受信され、ＮＥＢ及びＮＥＢ構成パラメータが再構成され、要求情報がＬＡＮインタフェースを介してクライアントへ送られる。これらのステップを、図１６Ａ及び１６ＢのステップＳ１６０７からＳ１６２０に関連して、以下更に詳しく説明する。
【０２１０】
即ち、ステップＳ１６０７において、ＣＰＳＯＣＫＥＴによって構成コマンドが受信されたと判定されると、処理はステップＳ１６０８へ進み、そこで、構成コマンドが実行され、その結果がＬＡＮを介してクライアントへ伝えられる。構成コマンドを表９に示すが、これらの構成コマンドは一般に、ＣＰＩＮＩＴプログラムによって起動された構成コマンドに従うＣＰＳＥＲＶＥＲ又はＣＲＰＲＩＮＴＥＲのいずれかとしてＮＥＢボードの構成に関係するものである。
【０２１１】
0003592323.tif 000016
ステップＳ１６０９で、ＣＰＳＯＣＫＥＴによって装置情報コマンドが受信されたと判定されると、処理はステップＳ１６１０へ進み、これらの装置情報コマンドが実行され、その結果がＬＡＮインタフェースへ伝えられる。一般に、装置情報はインタフェース、制御状態、フォント設定及びＮＥＢ２に接続されたプリンタ４の環境設定値に関係する。ステップＳ１６１０の装置情報コマンドにより、プリンタ装置情報の読取り、プリンタ装置情報の設定、その情報に対するデフォルト設定値の読取り、デフォルト設定値の所望値へのリセットを行なうことが可能になる。装置情報コマンドを表１０に詳述する。
【０２１２】
0003592323.tif 000017
0003592323.tif 000018
0003592323.tif 000019
0003592323.tif 000020
ステップＳ１６１１で、ＣＰＳＯＣＫＥＴによって構成パラメータコマンドが受信されたと判定されると、次いでステップＳ１６１２に進み、ＣＰＳＯＣＫＥＴによって受信されたコマンドが実行され、その結果がＬＡＮを介してクライアントに提供される。表１１に示されるように、構成パラメータコマンドは一般に、時刻、日付、安全プリンタ環境情報、ロギングオプション、ログ・ファイルサイズなどに関するＮＥＢに格納されたパラメータ値に関係するものである。
【０２１３】
0003592323.tif 000021
ステップＳ１６１３で、ＣＰＳＯＣＫＥＴによってＮＥＢアプリケーション・プログラムコマンドが受信されたと判定されると、処理はステップＳ１６１４へ進み、ここで、ＣＰＳＯＣＫＥＴにより現在のアプリケーションプログラム、即ち、ＲＰＲＩＮＴＥＲ、ＰＳＥＲＶＥＲ又はＬＰＲ（Ｕｎｉｘ用）等についての情報が提供される。表１２に詳述されるように、アプリケーション・プログラム情報には一般に、サーバ名、ファイル・サーバ待ち行列、装置ＩＤ等が含まれる。
【０２１４】
0003592323.tif 000022
ステップＳ１６１５（図１６Ｂ）で、ＣＰＳＯＣＫＥＴにより、ＮＥＢ／プリンタ統計コマンドが送出されたと判定されると、処理はステップＳ１６１６へ進み、ＣＰＳＯＣＫＥＴによって双方向ＳＣＳＩインタフェースを介してプリンタに問合せが行なわれ、必要なプリンタ統計値が得られる。この統計値は、印刷総ページ数、ジョブ総数、オフライン時間合計等のような印刷ジョブ統計値と同様に、ＣＰＣＯＮＳＯＬと関連する上記ネットワーク・グループ表示に対応する。このジョブ統計値はＣＰＣＯＮＳＯＬプログラムと関する上記ロギンググループに対応する。ＮＥＢ／プリンタ統計コマンドで実行されるコマンドの具体的な例を、表１３に記す。
【０２１５】
0003592323.tif 000023
ステップＳ１６１７で、ＣＰＳＯＣＫＥＴにより、ロギングコマンドが受信されたと判定されると、処理はステップＳ１６１８へ進み、ＣＰＳＯＣＫＥＴによって双方向ＳＣＳＩインタフェースを介してプリンタディスク１１４からログ・ファイルが得られ、ＬＡＮインタフェースを介してクライアントにこのログ・ファイルが送られる。ロギングコマンドを表１４に要約する。
【０２１６】
0003592323.tif 000024
ステップＳ１６１９で、ＣＰＳＯＣＫＥＴによって、ダウンロードコマンドがＬＡＮインタフェースから受信されたと判定されると、処理はステップＳ１６２０へ進み、ここで、ＣＰＳＯＣＫＥＴによってダウンロード要求が実行される。この要求の実行は、例えば、ダウンロード可能なコードが受信され、それがＤＲＡＭ２２０の特定のロケーションに格納され、ダウンロード可能なコードに対するチェックサムデータが提供され、ダウンロード可能なコードがＥＰＲＯＭ２２２にフラッシュされることによって行なわれる。より重要なダウンロードコマンドのうちのいくつかを表１５に要約する。
【０２１７】
0003592323.tif 000025
４ｋ．  ロギング周辺機器統計
図５Ａを参照して先に説明したように、ステップＳ９からＳ１２には、周辺機器統計値（例えば、一日当り印刷ページ数）とエラー事象を後の検索のために自動的にログ（格納）する自動ロギング機能を有し、また、ロギングレベル（統計的分析力）をネットワーク管理者が変更することができる。普通、ネットワーク管理者は、ロギングレベルを選択し、次いで、ログ・ファイルからいつでもプリンタ統計値及びエラー事象を引出すことができる。ネットワーク管理装置の機能部分をパラグラフ４ｉで説明したが、そこで述べられた議論及び表、特にＣＰＩＮＩＴによって設定されるロギングレベルに依拠するログ・ファイルの内容を示す表７、を参照する。
【０２１８】
背景を考えると、ＬＡＮ周辺機器には自分の統計値がほとんど保持されていないが、ＮＥＢ２は毎日午前０時にプリンタ４のカレント状態及び１日統計値をロギングする能力をもっている。この能力のおかげで、システム管理者は、忘れずに毎日ロギングを行なう必要から開放される。この状態及び統計データはプリンタのハードディスク１１４、プリンタのＮＶＲＡＭ１１１、ＮＥＢのＤＲＡＭ２２０、あるいはＮＥＢのＮＶＲＡＭ２２８に格納される。ネットワーク管理者は、各記憶装置の残存記憶容量によって、また、ネットワーク管理者が選択したロギングレベルによって必要とされる統計値によって、格納ログ・ファイルのロケーションを選択することができる。例えば、プリンタにハードディスクがある場合には、かなり詳細な“ＪＯＢ”ロギングレベルを選択することで、ネットワーク管理者は多量の統計値を保持することができる。一方、プリンタにハードディスクがない場合は、それほど詳細でない“ＥＲＲＯＲ”ロギングレベルを選択することによって、多くの記憶空間を必要としなくて済む。ログ・ファイルが一杯になった場合は、古いエラー・データは新しいエラー・データに更新されることによって、新しいエラー・データが記憶装置の中で単に循環しているにすぎない。
【０２１９】
後でシステム管理者がアクセスできるように、印刷ページ数、印刷ジョブ数、オフライン時刻及び印刷時刻のようなプリンタ統計値は毎晩ＮＥＢによって自動的に格納される。この統計を用いることによって、トナーのようなプリンタ消耗品の交換を予測したり、長時間プリンタをオフラインのままにしておくというようなユーザの行動をモニタすることができる。
【０２２０】
一般に、ロギング機能は、常に時刻を知っているプリンタ制御ボードによって遂行される。プリンタ／制御ボードにまず電源が投入されると、ボードは最も近くのサーバを見つけ、その時の時刻を問合せる。ボードは１分毎にこの問合わせをし続ける。日付が変ると、ボードはプリンタにそのページ数を報告するよう自動的に要求する。次いで、ボードは１日の統計値を計算し、プリンタのハードディスク又はボードＮＶＲＡＭのいずれかにその統計値を格納する。これらの統計値は格納され、外部ネットワークプログラムＣＰＣＯＮＳＯＬで利用可能となって、これらの統計値の画面表示や外部ファイルへの保存が可能となる。
【０２２１】
パラグラフ４ｉにおいて説明したように、ネットワーク管理者は次の４つのロギングレベルを選択することができる。即ち、ＮＯＮＥ、ＡＵＴＯ、ＥＲＲＯＲ、及びＪＯＢである。まず、ＮＯＮＥレベルでは、ロギング統計値は保持されない（それでも、ロギング統計値を１分毎に計算し、一時的にＮＥＢのＤＲＡＭ２２０に保存することはできるが）。ＡＵＴＯレベルでは、印刷の日付、ページ数、ジョブ数、オフライン時刻、及び印刷時刻のような１日の統計値が、プリンタ機能のために保持される。累計印刷ページ数はプリンタによって決定されるが、他の統計値はＮＥＢにより決定される。
【０２２２】
ＥＲＲＯＲロギングレベルでは、上述の１日の統計値、プリンタ内のエラー状態、またアプリケーション（つまりＣＰＳＥＲＶＥＲ）内で発生するエラーも保持される。ＮＥＢは１分毎にこのようなエラー状態をプリンタに問合せる。このようなプリンタエラー状態の中には、オフライン、用紙切れ、プリンタカバーオープン、紙詰まり、トナーカートリッジなし、トナー不足、プリンタフィード及びロードエラー、トレーフル、ラインエラー、印刷ジョブ拒否、フォントフル、サービスコール等が含まれる。アプリケーションエラーには、ファイルサーバダウン、主ファイルサーバ利用不能、ＣＰＳＥＲＶＥＲが他で実行中、ＩＰＸ未インストール等が含まれる。
【０２２３】
ＪＯＢロギングレベルには、上記の１日の統計値及びエラー状態が保持され、また、ＮＥＢにより決定されるジョブ開始とジョブ終了情報も同様に保持される。もちろん、ロギングレベルの数とタイプ、及び、各ロギングレベルに保持されるデータを、特定の周辺機器及びＮＥＢがインストールされている特定のＬＡＮに従って変更してもよい。
【０２２４】
図１７Ａと図１７Ｂは、ＮＥＢ内の自動ロギング機能の全体的な動作を示すフローチャートである。図５及び表７を参照して説明する。ステップＳ１でＮＥＢに電源が投入され、ステップＳ８でタイマモジュールが最も近くのサーバを見つけ、時刻を問合せる。ステップＳ１７０１において、ＮＯＮＥロギングレベルが選択されているか否かが判定される。ＮＯＮＥロギングレベルが選択されている場合、処理はフローチャートの最後へスキップされ、図５Ａ、５Ｂ、５Ｃの全フローチャートへ復帰が行なわれる。
【０２２５】
ステップＳ１７０１においてＮＯＮＥロギングレベルが選択されていない場合、ステップＳ１７０２でＡＵＴＯロギングレベルが選択されているか否かが判定される。ＡＵＴＯロギングレベルが選択されている場合、処理はＳ９へ進み午前０時になるのを待つ。しかし、ＡＵＴＯロギングレベルが選択されていない場合、ステップＳ１７０３によってＥＲＲＯＲロギングレベルが選択されているか否かが判定される。ＥＲＲＯＲロギングレベルが選択されている場合、処理はステップＳ１７０６へ進み、ここで、一分間のタイムアウト待機が行なわれる。しかし、ＥＲＲＯＲロギングレベルが選択されていない場合、ステップＳ１７０４でＪＯＢロギングレベルが選択されたか否かが決定される。この場合、ステップＳ１７０５において、ジョブ開始とジョブ終了時刻がログ・ファイルへ格納される。ステップＳ１７０６で、一分間のタイムアウト待機が行なわれ、その後、ステップＳ１７０７で、エラー事象に対する問合せがプリンタに行なわれ、そのような事象がログ・ファイルへ保存される。したがって、ＥＲＲＯＲ又はＪＯＢロギングレベルのいずれかが選択されている場合には、ボードは１分毎にエラー事象をプリンタに問合せ、このようなエラー事象はログ・ファイルは格納される。
【０２２６】
ステップＳ９では午前０時になるのを待ち、ＮＥＢはプリンタにステップＳ１０（図１５Ｂ）の１日の統計値を問合せる。ステップＳ９において、まだ午前０時に達していない場合、処理手順はステップＳ１７０２へ戻り、ここで、どのロギングレベルが選択されているかが判定される。
【０２２７】
ステップＳ１１において、１日のプリンタ統計値が、ステップＳ１０で受信したプリンタ統計値を利用して計算される。その後、ステップＳ１２で、１日の統計値量及びエラー事象がプリンタのハードディスク１１４及び／又はプリンタＮＶＲＡＭ１１１、及び／又はＮＥＢのＮＶＲＡＭ２２８に格納される。ここで、ネットワーク管理者が、任意の組合わせのメモリにロギング統計値及びエラー事象を格納するように選択でき、ＬＡＮに一層の柔軟性が与えられることに注目されたい。
【０２２８】
プリンタをＬＡＮの対話型応答可能構成メンバとする際に、上述のロギング機能は極めて重要である。というのは、ＮＥＢとプリンタ間のＳＣＳＩ接続によって、プリンタから多量の特定データを引き出すことが可能となるからである。
４ｌ．  マルチタスクで独立に実行可能なプログラム
図５ＢのステップＳ２０に関して先に簡単に説明したように、ＮＥＢのＥＰＲＯＭ２２２によってＭＯＮＩＴＯＲプログラムが格納され、このプログラムは、デバッグ環境において同期操作を可能にしながら、一方でランタイム環境においてマルチタスキングをサポートするメカニズムである。（ＣＰＳＥＲＶＥＲ又はＣＰＳＯＣＫＥＴを求めて）ＬＡＮからの実時間割込みをＮＥＢが待つ間、あるいは、ＳＣＳＩインタフェースを介する実時間割込みをＮＥＢが待つ間（例えば、ＬＡＮから以前に受信された状態要求に応じて、状態情報がプリンタからＮＥＢに送られているとき）、非強制排除処理で現在呼出されているタスクを実行することがＭＯＮＩＴＯＲによって可能になる。このようにして、マイクロプロセッサ２１６の共用して、現在実行中のすべてのタスクを同時実行することがＭＯＮＩＴＯＲによって可能となる。もちろん、ソフトタイムアプリケーションはすべて（ＭＯＮＩＴＯＲ自身を含めて）実時間事象により割込可能である。
【０２２９】
図１８は、ＮＥＢ内でのマルチタスキングオペレーションを示すために起こり得る事象シーケンスを概念的に示すフローチャートである。ステップＳ１で、ＮＥＢに電源が入り、ステップＳ１８０１で、ＥＰＲＯＭ２２２からＤＲＡＭ２２０へＭＯＮＩＴＯＲプログラムがダウンロードされる。例えば、以下のモジュールがＭＯＮＩＴＯＲと共にダウンロードされる。即ち、ＳＣＳＩドライバ、リンクサポートレイヤ、ネットワークドライバ、プレスキャン、ＩＰＸ／ＳＰＸ、カスタマイズされたＮＥＴＸ、ＳＡＰＳＥＲＶＥＲ、ＣＰＳＯＣＫＥＴ、及び、印刷アプリケーションである（図６を参照）。
【０２３０】
ステップＳ１８０２で、印刷データがファイルサーバ３０から受信される場合、ＣＰＳＥＲＶＥＲは、プリンタ４への転送のための準備として受信ジョブデータを処理し始める。このような印刷情報の処理はこのとき“ソフトタイム”環境で行なわれ、ステップＳ１８０３では、印刷データを処理するプログラムから割り込み放棄が受信されているか否かを判断する。ステップＳ１８０３で、割込み放棄になると現在実行中のモジュールの実行が中断され、ステップＳ１８０４で、制御はＭＯＮＩＴＯＲに返される。ＭＯＮＩＴＯＲによってＤＲＡＭ２２０で割込まれたタスクの状態が保存される。しかし、ステップＳ１８０３で、割込み放棄に達しなかった場合、処理はステップＳ１８０５へ進み、現在実行中のモジュールが終了したか否かが判断される。ステップＳ１８０５でこのモジュールが終了していない場合は、ステップＳ１８０３で、このプログラムは別の割込み放棄に達するのを待つ。
【０２３１】
ステップＳ１８０４で、現在実行中のモジュールが中断された場合、あるいはステップＳ１８０５で、現在実行中のモジュールが終了した場合、ステップＳ１８０６で、別のソフトウェアモジュールの実行を要求するデータが受信されたか否かが判断される。例えば、このデータは、これまで出されたプリンタ状態に対する要求に応じてＳＣＳＩインタフェースで受信される。ステップＳ１８０６で、このようなデータが受信されたと判断されると、ステップＳ１８０７では、新しく受信されたデータを用いて別のアプリケーションモジュールの実行を始める。
【０２３２】
ステップ１８０８で、第２アプリケーションモジュールにおいて割込み放棄に達したか否かが判断される。このような割込みに達した場合、ステップＳ１８０９において、第２アプリケーションは実行が中断され、制御はＭＯＮＩＴＯＲに移り、割込んだばかりの第２モジュールの状態がＤＲＡＭ２２０に格納される。しかし、ステップＳ１８０８で、第２モジュールにおいて割込み放棄に達しない場合は、ステップＳ１８１０で、第２モジュールが終了したか否かが判断される。終了していない場合、ステップＳ１８０８でプログラムは割込み放棄を単に待つ。ステップＳ１８１０で、第２モジュールが終了されたことが判断される場合、ステップＳ１８１１で、第１モジュールが終了されたか否かを判断する。第１モジュールは終了していないが、第２モジュールが終了している場合、プロセスは、第１アプリケーションモジュールの割込み放棄を待機するステップＳ１８０３に戻る。ステップＳ１８１１で、第１及び第２モジュールが終了に達すると、別の新しく受信されたソフトタイムタスクを実行するために、制御はＭＯＮＩＴＯＲプログラムに戻される。
【０２３３】
第２アプリケーションモジュールで割込み放棄に達したためにその実行が中断された後、制御はＭＯＮＩＴＯＲに移され、ＭＯＮＩＴＯＲでは割込まれたモジュールの状態をＤＲＡＭ２２０に格納した（ステップＳ１８０９）後、ステップＳ１８１２で、実行を再び始め、ステップＳ１８０３で第１モジュール割込み放棄に達するまで、第１モジュールの実行を継続する。
【０２３４】
このように、マイクロプロセッサ資源の非強制排除マルチタスク割り当てにより、ほぼ実時間ベースで並行していくつかのタスクを処理することが可能となる。
４ｍ．  デフォルト構成でのプリンタ配置
図５ＣのステップＳ２５に関して上述したように、印刷ジョブの開始時及び終了時には、ＮＥＢによりプリンタは、既知のデフォルト構成に設定されることが保証される。プリンタの不揮発性メモリ（ハードディスク１１４又はＮＶＲＡＭ１１１のいずれか）に、印刷ジョブ終了時にプリンタが置かれるデフォルト環境（例えば、ポートレートモード、１０ポイントタイプ、ローマ字等）を示すデフォルト構成コードをダウンロードすることによって、ＮＥＢはこの設定を行なう。ＬＡＮから印刷データストリームが受信されると、ＮＥＢによって、プリンタの不揮発性メモリから構成コードが検索され、１ブロックの印刷データにエスケープ・シーケンスとしてこの構成コードが追加され、次いで、追加されたエスケープ・シーケンスと共にこの印刷ジョブブロックがプリンタへダウンロードされる。次いで、プリンタによって印刷作業が処理され、（そのエスケープ・シーケンスに基いて）プリンタが所望のデフォルト構成に置かれる。
【０２３５】
ノーベル社のＮｅｔＷａｒｅ（商標）ソフトウェアは、全ての印刷ジョブ後に、ネットワークプリンタをデフォルト環境にリセットする機能を有している。このリセットは、印刷ジョブの先頭で結局は架空の印刷ジョブになるジョブをファイルサーバ３０にインストールすることによって行なわれる。しかし、特定のプリンタデフォルト構成を設定するのに不可欠な正確なプリンタエスケープ・シーケンスは、ネットワークのデータベースに常駐し、プリンタ自体の内部にはない。したがって、ＬＡＮ上で、あるいは、ファイル・サーバ自体に問題があるところでＵＮＩＸを動作させたい場合、既知の構成のプリンタで次の印刷ジョブを印刷すことを保証するデフォルト構成へプリンタを復元しなくてもよい。
【０２３６】
ＮＥＢを用いてプリンタデフォルト環境を保証する方法は、プリンタリセット状態構成及び必要エスケープ・シーケンス命令がプリンタ自体の中に常駐するという相違に基づいて行なわれ、プリンタ自体が印刷ジョブ内のプリンタ環境のリセットに責任を負うというものである。従って、このプリンタリセット機能はプリンタ外部のどんな装置にも依存せずに利用することができる。更に、初期デフォルト構成をロードし、それに続いて、ＮＥＢのシリアルあるいはパラレルインタフェースを介してＬＡＮ上で遠隔地からこの初期デフォルト値を変更してもよい。
【０２３７】
セクション４ｉで上述したように、この構成コードをＣＰＣＯＮＳＯＬプログラムを介してＮＥＢに送ってもよい。
【０２３８】
ＬＡＮ上でプリンタを使用するための高い柔軟性をネットワーク管理者に与えるために、複数のデフォルト構成をプリンタの不揮発メモリーに格納させると便利であろう。例えば、技術部門から受信された印刷ジョブではプリンタがポートレートモードに省略値をとることが必要とされるのに対して、経理部門から受信された印刷ジョブではプリンタを帳票モードにしておくことが必要とされる場合もある。したがって、既知のデフォルト環境を保証することによって、いくつかのＬＡＮソースのうちのいずれであっても、その特定のジョブのためにこのプリンタを利用することができる。
【０２３９】
図１９は、プリンタデフォルト構成を設定するためのより詳細なフローチャートを示す。ステップＳ１で、ＮＥＢに電源が投入され、ステップＳ２２で、ＮＥＢは動作可能となった印刷待ち行列のためＬＡＮのファイル・サーバにアクセスし、ＤＲＡＭ２２０へ印刷データをダウンロードする。
【０２４０】
プリンタの不揮発性メモリに２つ以上のデフォルト構成コードが格納されている場合、プリンタが置かれるべきデフォルト構成がどれかを判定するために、どんなタイプのデータがＬＡＮから転送されているかをまず判定しなければならない。したがって、ステップＳ９１０１で印刷ジョブのＬＡＮソースを調べ、また、ステップＳ１９０２でプリンタから適切なデフォルト構成コードが検索される。このコードは判定されたＬＡＮソースに対応する。
【０２４１】
ステップＳ１９０３で、ＮＥＢによって数ブロックのイメージデータがアセンブルされ、各印刷ジョブに対して印刷ジョブの開始及び印刷ジョブの終了が指定される。ステップＳ１９０４で、ＮＥＢのマイクロプロセッサ２１６によって、検索された構成コードに対応するエスケープ・シーケンスが印刷ジョブに追加される。好適には、エスケープ・シーケンスは、印刷ジョブの開始時に追加されることが望ましいが、印刷ジョブの終了時、あるいはジョブの開始時と終了時の両方に追加されてもよい。次いで、ステップＳ１９０５で、エスケープ・シーケンスが追加されたこの印刷ジョブがプリンタへ転送され、次いで、プリンタは受信された印刷ジョブに従って印刷を行なう。ステップＳ２４の後、印刷ジョブが完了すると、ステップＳ２５で、プリンタはデフォルト環境にセットされる。この環境は、ステップＳ１９０２で検索されたデフォルト構成コードに対応する。その結果、既知の構成のプリンタで次の印刷ジョブが始まることを保証するデフォルト環境にこのプリンタは置かれることになる。
【０２４２】
このようにして、プリンタ自身がデフォルト構成を格納し、かつ、各印刷ジョブの終了時に、プリンタが自身をデフォルト状態にすることに責任を負うことを保証するため、強固で効率的なハードウェア及びソフトウェアによる解決策が得られる。
４ｎ．  遠隔ＬＡＮからＮＥＢへの実行可能ファイルのダウンロード
ＬＡＮからＤＲＡＭ２２０への実行可能ファイルのダウンロードに関して、図２０のフローチャートと図５ＣのステップＳ３０の上記の説明に関連して、より詳細な説明を行なう。
【０２４３】
ＮＥＢ２は出荷に先立ち最初に構成される。しかし、ネットワーク管理者のＰＣ１４からＮＥＢ２へＬＡＮを通して、最新の実行可能ファイルを送ることにより、その後ＮＥＢ２を再構成することが可能である。更に、ネットワーク管理者は任意に、ＮＥＢ２のＤＲＡＭ２２０に格納された実行可能ファイルを遠隔地から変更することもできる。
【０２４４】
実行可能ファイルをＤＲＡＭ２２０内で変更することができる処理を図２０に関連して詳細に解説する。
【０２４５】
ステップＳ１でボードに電源が投入された後、処理はステップＳ２００１へ進み、ここで、ネットワーク管理者はＤＯＷＮＬＯＡＤＥＲプログラムを起動し、特定の構成を持つすべてのＮＥＢ装置のＩＤを求める要求をＬＡＮ上で同報通信し、処理はステップＳ２００２へ進む。
【０２４６】
ステップＳ２００２において、なんらかのターゲットＮＥＢから応答があったか否かがＤＯＷＮＬＯＡＤプログラムによって判定される。ステップＳ２００２で、ターゲットＮＥＢから何も応答がないと判定されると、処理はステップＳ２００１へ戻り、そこで、ＤＯＷＮＬＯＡＤプログラムによって新しいターゲット情報を持つ要求が再び同報通信され、次いで処理はステップＳ２００２へ進む。ステップＳ２００２で、ターゲットＮＥＢから応答があった場合、処理はステップＳ２００３へ進む。
【０２４７】
ステップＳ２００３で、ＳＡＰＳＥＲＶＥＲプログラムは、各ＮＥＢに割当てられたユニークなネットワークＩＤ及びユニークなソケット番号を用いて応答する（セクション４ｇを参照）。このロケーション情報は収集され、ネットワーク管理者は特定のＮＥＢを選択して実行可能ファイルをダウンロードし、ターゲットＮＥＢとの通信が確率される。
【０２４８】
ターゲットＮＥＢを選択すると、ステップＳ２００４で、ネットワーク管理者は新しいオペレーションファイル、及び、チェックサム値が含まれている特定のパケットをＬＡＮを通してＤＲＡＭ２２０へダウンロードし、そこで処理はステップＳ２００５へ進む。
【０２４９】
ステップＳ２００５で、マイクロプロセッサ２１６は新たにロードされたオペレーションファイル上でチェックサムオペレーションを実行し、このチェックサム値を特定のパケットで送られたチェックサム値（オペレーションファイルが格納された後、ＤＲＡＭ２２０に格納されたもの）と比較する。
【０２５０】
このチェックサム値が特定のパケット内のチェックサム値と等しくない場合、処理はステップＳ２００６へ進み、ここで、新しいオペレーションファイルのためのチェックサム値が不正確であることがネットワーク管理者に通知され、マイクロプロセッサ２１６によりＤＲＡＭ２２０からこのファイルが除去される。
【０２５１】
ステップＳ２００６でチェックサム値が検査されると、処理はステップＳ２００７へ進み、マイクロプロセッサ２１６によって実行可能ファイルが起動される。
【０２５２】
このように、ネットワーク管理者は、新しいオペレーションファイルを遠隔から送ってＤＲＡＭ２２０に格納しそこから実行することによって、ＮＥＢ２のオペレーションを変更することができる。
４ｏ．  独立実行可能なモジュールのＲＯＭへのロード
ステップＳ３２に関連して図５Ｃで説明したように、バイナリＲＯＭイメージがＥＰＲＯＭ２２２にロードされるものであるなら、複数の独立実行可能モジュールがアセンブルされ、順序づけされて、ＥＰＲＯＭ２２２へフラッシュされる準備が行なわれる。モジュールのアセンブリ及び順序づけは、すぐにＤＯＳのＰＣ上で実施されるが、ＮＥＢ自身の中で行なうこともできる。ＰＣ内で独立実行可能なモジュールをアセンブルする利点として、モジュールをＤＯＳ環境で構築でき、かつ／または、変更できる点がある。
【０２５３】
ＮＥＢファームウェアにはいくつかの別個にリンクしたモジュールが含まれているが、そのうちの１つには、電源投入時の制御受信、自己検査、ＤＲＡＭ２２０への他のモジュールのローディング、及び基本的入出力サービス（ＢＩＯＳ）を行なうＲＯＭ常駐コードが恒久的に含まれている。ＥＰＲＯＭ２２２内に常駐する他のモジュールは、実行前にＤＲＡＭ２２０にコピーされなければならない。このようなモジュールには２つのタイプがあり、そのうちの最初のものは、本質的にドライバであるプログラムが含まれる。これは、常駐のままで、ロードされたとき制御を受信し、初期化し、次いで、抜け出るプログラムである。このようなモジュールの２番目のタイプは、アプリケーション・プログラムであり、このアプリケーションプログラムのそれぞれは特定のセットの機能を実行する。
【０２５４】
図２１において、ステップＳ１でＮＥＢに電源が投入される。ステップＳ２１０１で、ＰＣ内に常駐するユーティリティによって、ＲＯＭイメージにセットされる全モジュール名を含む構成ファイルがＰＣのＲＡＭから読取られる。ステップＳ２１０２で、ＥＰＲＯＭ２２２にフラッシュされることになる複数モジュールをＲＡＭから選択するために、構成ファイルが使用される。
【０２５５】
ステップＳ２１０３で、最初のモジュールのためのヘッダがユーティリティによって書込まれる。このヘッダはこのモジュールを識別し、モジュール属性を記述し、すぐ後に続くモジュールを指定するポインタを含むものである。このポインタは、ローディングに先立ち、ある特定順序でモジュールの順序づけを行なう際の支援ポインタである。ステップＳ２１０４で、構成ファイルによって識別された最後のモジュールが選択されたか否かが判定される。最後のモジュールがまだ選択されていない場合、処理はステップＳ２１０３へ戻り、ヘッダが次のモジュールのために書込まれる。
【０２５６】
ステップＳ２１０４で、最後のモジュールが選択されと、ユーティリティによってイメージプログラムの最後にＲＯＭ常駐コードが追加され（ステップＳ２１０５）、その結果、電源投入の際、初期化コードはマイクロプロセッサ２１６によって期待されるアドレスに常駐する。
【０２５７】
ＲＯＭバイナリイメージがこのように構築されると、このイメージはＮＥＢのＤＲＡＭ２２０の記憶領域の一部分にダウンロードされ、次いで、ＥＰＲＯＭ２２２にフラッシュされる。以下、セクション４ｑで、図５ＣのステップＳ３６に関してより詳しく説明する。
４ｐ．  フラッシュオペレーション時のＥＰＲＯＭの保護
図２２は、ＮＥＢに常駐のＥＰＲＯＭフラッシュ保護回路の機能構造を示すブロック図である。ＥＰＲＯＭフラッシュ保護回路には、データ・バス２５０及びアドレス・バス２５１に接続されたマイクロプロセッサ２１６が含まれる。また、データ・バス２５０及びアドレス・バス２５１にはＤＲＡＭ２２０が接続されている。ＤＲＡＭ２２０はその記憶領域の一部分に、遠隔のＬＡＮ装置からダウンロードされたＲＯＭファームウェアイメージを格納することが可能であり（セクション４ｏを参照）、アプリケーション・プロセスはＤＲＡＭ２２０の記憶領域の別の部分へ進む。また、ＥＰＲＯＭ２２２、ラッチ２５２及びＰＡＬ２５３がデータ・バス２５０及びアドレス・バス２５１に接続されている。Ｄタイプフリップフロップ２５４はラッチ２５２及びＰＡＬ２５３に接続されている。オペレーション時に、フリップフロップ２５４は、そのクロック入力としてＰＡＬ２５３からの出力信号を、またそのデータ入力としてラッチ２５２からの出力信号を受信する。ラッチ２５２及びＰＡＬ２５３は、また、ＤＣ−ＤＣコンバータ２１２に接続し、ＤＣ−ＤＣコンバータ２１２はトランジスタスイッチ２５５に接続している。ラッチ２５２によって起動されると、ＤＣ−ＤＣコンバータ２１２は、トランジスタスイッチ２５５の入力エミッタに＋１２Ｖ（ボルト）を送る。フリップフロップ２５４は、また、トランジスタスイッチ２５５にも接続され、開閉スイッチ２５５に不可欠な入力を供給する。
【０２５８】
ＥＰＲＯＭフラッシュ保護回路のオペレーションについて、図２２を参照してより詳細に説明する。電源が投入されると、ラッチ２５２の出力は低くなり、フリップフロップ２５４はリセットされる。このようにして、ラッチ２５２からの出力信号ＰＲＯＧ１は低くなり、ＤＣ−ＤＣコンバータ２１２からの電圧は、接地状態になるまで電流を低下するようにされる。電源投入時に、フリップフロップ２５４がリセットされ、その結果、その出力が低くセットされて、トランジスタスイッチ２５５が開く。
【０２５９】
トランジスタスイッチ２５５が開いた状態になって、ＥＰＲＯＭ２２２のＶｐｐピンが０Ｖに保たれ、データの受け入れやフラッシュオペレーションの実行が阻止される。すなわち、フラッシュオペレーションがＥＰＲＯＭ２２２内で起こるためには、Ｖｐｐピンは少なくとも＋１１．４Ｖのレベルに達していなければならない。なぜなら、このレベルは、ＥＰＲＯＭメーカの仕様により設定された必要条件であるからである。しかしながら、この電圧レベルを達成するために、以下の２つのプログラミングステップが要求される。
【０２６０】
まず、ＤＲＡＭ２２０で新しいＲＯＭファームウェアパッケージが受信されると、データビット７をハイ“８０（１６進表示）”でアドレス“３６０（１６進表示）”に入出力書込みを行なうことにより、ＥＰＲＯＭ２２２にフラッシュせよというコマンドがマイクロプロセッサ２１６によって受信される。このようにして、ＤＣ−ＤＣコンバータ２１２に最初にスイッチを入れてもよい。
【０２６１】
表１６と表１７に示すように、アドレス“３６０（１６進表示）”は、ＮＶＲＡＭ２２８へのリードライトオペレーションを制御するために使用される制御レジスタ２３０に対応する。表１７に示すように、アドレス“３６０（１６進表示）”がビット７のハイ／ローで送られる場合、このアドレスはＤＣ−ＤＣコンバータ２１２のオペレーションに対応する。
【０２６２】
0003592323.tif 000026
0003592323.tif 000027
アドレス”３６０（１６進表示）”が出力された後、マイクロプロセッサ２１６によって入出力書込みコマンドが生成され、書込み選択がＰＡＬ２５３へ送られる。ＰＡＬ２５３によって有効アドレスが検出され、解読され、ラッチ２５２が起動される。アドレス”３６０（１６進表示）”のビット７にハイがセットされているため、ＰＲＯＧ１信号はハイでセットされ、ラッチ２５２からＤＣ−ＤＣコンバータ２１２へ出力される。ＰＲＯＧ１信号がＤＣ−ＤＣコンバータ２１２で受信されると、ＤＣ−ＤＣコンバータが作動され＋１２Ｖの電圧が生じる。ＤＣ−ＤＣコンバータ２１２からの＋１２Ｖの電圧がトランジスタスイッチ２５５に送られる。この電圧はトランジスタスイッチ２５５が閉じられるまで、そのエミッタに残る。
【０２６３】
しかし、＋１２Ｖがトランジスタスイッチ２５５を通過できる前に、第２のステップが実行されなくてはならない。すなわち、マイクロプロセッサ２１６によって入出力リードコマンドが出力され、ＰＡＬアドレスに対応するアドレス”３６６（１６進表示）”が出力される。マイクロプロセッサ２１６がこのコマンドとアドレスの両方を生成すると、ＰＡＬ２５３によってこのアドレスが解読されＰＲＯＧ２信号が生成される。ＰＲＯＧ２信号がハイの場合、フリップフロップ２５４にクロック入力が送られる。
【０２６４】
クロック入力が受信されると、フリップフロップ２５４によってラッチ２５２からＰＲＯＧ１信号が入力され、次いで、フリップフロップ２５４の出力部においてＴＲＡＮＳＯＮ信号が生成される。ＴＲＡＮＳＯＮ信号はトランジスタスイッチ２５５へ出力され、このスイッチ内のエミッタの＋１２Ｖ電圧がスイッチ内のコレクタを通過できるスイッチを閉ざすように、このスイッチは作動する。この時点で、＋１２Ｖ電圧はトランジスタスイッチ２５５のコレクタからＥＰＲＯＭ２２２のＶｐｐピンへ送られる。
【０２６５】
ＥＰＲＯＭ２２２のＶｐｐピンへセットされた＋１２Ｖの電圧を用いて、マイクロプロセッサ２１６からＥＰＲＯＭ選択信号が送信される。新しいファームウェアイメージの原形が損なわれることを防止するため、ＥＰＲＯＭ２２２は最初にクリアされ、消去されなければならない。次いで、ＥＰＲＯＭ２２２は、ＤＲＡＭ２２０に格納された新しいＲＯＭファームウェアイメージでフラッシュされる。ひとたび、新しいＲＯＭファームウェアイメージがＥＰＲＯＭ２２２に格納されると、ＮＥＢ２を新しいＲＯＭファームウェアイメージからリブートすることができる。
【０２６６】
図２２と図２３のフローチャートを参照しながらＥＰＲＯＭ保護回路の動作について説明する。
【０２６７】
ステップＳ２３０１で、ＮＥＢ２によって新しいＲＯＭファームウェアイメージがＬＡＮを介して受信され、ＤＲＡＭ２２０にロードされる。ステップＳ２３０２で、ＥＰＲＯＭ２２２をフラッシュせよというコマンドが、マイクロプロセッサ２１６によって受信される。ステップＳ２３０３で、マイクロプロセッサ２１６によってＰＡＬ２５３へ入出力ライトコマンドが送出され、ビット７がハイとなったアドレス”３６０（１６進表示）”が出力される。処理はステップＳ２３０４へ進み、ビット７がハイとなることによってラッチ２５２が起動されＰＲＯＧ１信号が出力される。このＰＲＯＧ１信号によってＤＣ−ＤＣコンバータ２１２にスイッチが入り、＋１２Ｖの電圧がトランジスタスイッチ２５５へ出力される。ステップＳ２３０５で、ＰＡＬ２５３へ入出力リードコマンドと、ＰＡＬアドレスであるアドレス”３６６（１６進表示）”の両方が、マイクロプロセッサ２１６によって送信される。これに応じて、ＰＲＯＧ２信号が、ＰＡＬ２５３によってフリップフロップ２５４のクロックへ出力され、このフリップフロップ２５４によって、そのデータ入力部でのＰＲＯＧ１信号の入力が可能となる。フリップフロップ２５４によってＴＲＡＮＳＯＮ信号がトランジスタスイッチ２５５に出力され、このスイッチ２５５によって、＋１２Ｖの電圧がトランジスタスイッチ２５５のコレクタからＥＰＲＯＭ２２２のＶｐｐピンへ通過することが可能となる。ステップＳ２３０６で、マイクロプロセッサ２１６によってＥＰＲＯＭ２２２がクリアされ次いで消去される。ステップＳ２３０７で、ＥＰＲＯＭ２２２が完全に消去されたか否かがマイクロプロセッサ２１６よって判定される。ＥＰＲＯＭ２２２が完全に消去されていない場合、処理はステップＳ２３０６へ戻る。
【０２６８】
ＥＰＲＯＭ２２２が完全に消去されたことが、マイクロプロセッサ２１６によって判定された後、ステップＳ２３０８で、ＲＯＭファームウェアイメージがＤＲＡＭ２２０からＥＰＲＯＭ２２２へダウンロードされる。ひとたびＲＯＭファームウェアイメージがうまくロードされると、ステップＳ２３０９で、マイクロプロセッサ２１６によって、ビット７がローとなったアドレス”３６０（１６進表示）”が書込まれる。ラッチ２５２から送られるＰＲＯＧ１信号は低くなり、電圧レベルが電流を接地状態になるまで低下させることがＤＣ−ＤＣコンバータ２１２によってなされる。
【０２６９】
ステップＳ２３１０で、マイクロプロセッサ２１６によって、入出力リードコマンドとアドレス”３６６（１６進表示）”がＰＡＬ２５３にへ送られ、このアドレス”３６６（１６進表示）”によって、ＰＲＯＧ２信号が低くすることができるので、スイッチ２５５を開くように作動するローＴＲＡＮＳＯＮ信号を出力するフリップフロップにクロックを入力する。
【０２７０】
このようにして、ステップＳ２３０９及びＳ２３１０で、＋１２Ｖの電圧がＥＰＲＯＭ２２２のＶｐｐピンから取除かれ、フラッシュオペレーションが終了する。フラッシュオペレーションの後、ステップＳ２３１１で、リブートコマンドが受信されたか否かがマイクロプロセッサ２１６によって判定される。リブートコマンドが受信されると、ステップＳ２３１２で、ＥＰＲＯＭ２２２の新しいＲＯＭファームウェアイメージからＮＥＢ２がリブートされる。しかし、リブートコマンドが受信されなかった場合、処理は終了する。
４ｑ．  ファームウェアの遠隔的変更
以下、図２４に示すフローチャート、図５ＣのステップＳ３６、及びセクション４ｉを参照しながら、ＥＰＲＯＭ２２２内のファームウェアを遠隔地から変更する方法についてより詳細に説明する。
【０２７１】
利用者へＮＥＢが出荷されるのに先立ち、ＮＥＢが必要な機能を実行できるように最低限の実行可能ファイルをもつようにＮＥＢは構成される。しかしながら、利用者はその後ＮＥＢを再構成することも可能である。すなわち、ネットワーク管理者は、遠隔地のＬＡＮ装置からデータをダウンロードすることができるが、このデータには、パッチコードから製造テストルーチンまでの、ＥＰＲＯＭへダウンロードされる全てのファームウェア更新データまでのいかなるデータをも含んでいる。
【０２７２】
即ち、ネットワーク管理者のＰＣ１４からＮＥＢ２へＬＡＮを介して実行可能ファイルを送ることによってＮＥＢ２を再構成することができる。ネットワーク管理者は、任意にＥＰＲＯＭ２２２内のＲＯＭファームウェアイメージを遠隔地から変更することができる。
【０２７３】
ステップＳ２４０１で、特定のＮＥＢをターゲットとするコマンドラインパラメータとしてＭＡＣアドレスを使用するＣＰＦＬＡＳＨプログラムが、ネットワーク管理者により起動される。ＮＥＢ上で実行中のＳＡＰＳＥＲＶＥＲによって応答が行なわれるＳＡＰ同報通信要求は、ＣＰＦＬＡＳＨによって送出される。ステップＳ２４０２で、ＣＰＦＬＡＳＨはターゲットＮＥＢからの応答を待つ。ターゲットＮＥＢからの応答が約１５秒間ない場合、処理はステップＳ２４０１へ戻り同報の再送を行なう。しかし、ターゲットサーバから応答があった場合には、処理はステップＳ２４０３へ進む。
【０２７４】
ステップＳ２４０３で、ターゲットＮＥＢのアドレスとロケーションが受信され、マッチするＭＡＣアドレスを持つＮＥＢとの通信が確率され、新しいＲＯＭイメージファームウェアがＬＡＮを介してＤＲＡＭ２２０へダウンロードされる。
【０２７５】
ステップＳ２４０４では、次のステップへ進む前に、ＲＯＭファームウェアイメージの妥当性がチェックされる。このＲＯＭファームウェアイメージの妥当性は、ステップＳ２４０３でのダウンロードオペレーションと一緒に、特定のパケットで送られるイメージチェックサムに対して検査される。このチェックサム値がＲＯＭイメージと一緒にダウンロードされたチェックサムと一致しなかった場合、ステップＳ２４０５で、オペレータにエラーが通知され、ＤＲＡＭ２２０内のＲＯＭファームウェアイメージは消去される。
【０２７６】
このチェックサム値が有効である場合、処理はステップＳ２４０６へ進み、ここで、ＭＡＣアドレスのような保存されるべきすべてのデータがマイクロプロセッサ２１６によって検索され、ＤＲＡＭ２２０に格納された新しいファームウェアイメージの適切な場所にこのデータは格納される。このようにして、新しいＲＯＭファームウェアイメージに欠陥がある場合でも、所定部分の本質的なＲＯＭファームウェアは保持されるため、ＮＥＢは機能するできる。ひとたびＲＯＭファームウェアの本質的な部分が保存されると、処理はステップＳ２４０７へ進み、ここで、必要なら、ＥＰＲＯＭ２２２は複数回クリアされ、消去されるように制御される。ＥＰＲＯＭ２２２が消去された後、ステップＳ２４０８で、新しいＲＯＭイメージがＥＰＲＯＭ２２２中へロードされる。
【０２７７】
フラッシュオペレーションの後、ステップＳ２４０９で、リブートコマンドが受信されたか否かがマイクロプロセッサ２１６によって判定される。リブートコマンドが受信された場合、ＮＥＢ２はステップＳ２４１０においてリブートされる。しかし、リブートコマンドが受信されない場合、処理は終了する。
【０２７８】
ステップＳ２４０４で、ＥＰＲＯＭ２２２にそれまで格納されたデータと新しく受信されたファームウェアデータを比較することによって、ＲＯＭファームウェアイメージの妥当性もまた検査される。例えば、ＰＲＯＭ２３２によってそれまで送られたハードウェアインジケータをＥＰＲＯＭ２２２が格納する場合（例えば、ボード製造日、ボード改訂番号、製造設備など；詳細はセクション５で後述）、このようなインジケータが、新たに受信したＲＯＭファームウェアイメージの中の同一インジケータと比較される。この比較は、上で解説したチェックサム比較の代わりにあるいはチェックサム比較に追加して行なってもよい。
【０２７９】
ＲＯＭファームウェアイメージをフラッシュするのと同時に、新しいＭＡＣアドレスもＥＰＲＯＭ２２２中へフラッシュできることに留意すべきである。しかしながら、ＮＥＢテストの完了時、出荷に先立って、ＭＡＣアドレスをフラッシュすることが望ましい。この機能については、セクション５に関連してより詳細に説明する。
５．  テスト
ＮＥＢをプリンタにインストールする前に、ＮＥＢハードウェア及びソフトウェアの構成要素の完全性を保証するために、ＮＥＢをテストすることができる。図２５には、ＮＥＢ２をテストするのに利用できる１つのテスト環境の構成が描かれている。図２５において、ＮＥＢ２は、ＮＥＢシリアルポート２１８に接続するケーブル３０２を介してＰＣ１  （３００）に接続している。テスト結果を印刷するためにプリンタ３０４をＰＣ１（３００）に接続してもよい。
【０２８０】
ＮＥＢ２は、ＳＣＳＩバス３０８、及びイーサネットＬＡＮ接続３１０、３１２を介してテストドライバＰＣ２（３０６）に接続されている。ＰＣ２（３０６）にはＳＣＳＩボード３１４及びネットワーク制御ボード３１６が含まれているため、プリンタ及びＬＡＮエンティティ（ネットワーク管理者のＰＣ１４のような）をシミュレートすることができる。シリアルポート２１８を介してＰＣ１（３００）からＮＥＢへ入力されるテストプログラムの命令にしたがって、ＰＣ２はトランスポンダとしての機能を果たし、ＮＥＢ２からの、及び、ＮＥＢ２への通信を送受信する。
【０２８１】
ＮＥＢ２は電源が投入された後、電源投入自己検査オペレーションを実行する。ＮＥＢ２がＰＯＳＴで各テストオペレーションを実行している間、ＰＣ１（３００）はシリアルケーブル３０２を介してテストチェックポイント結果を受信する。
【０２８２】
ＮＥＢ２によってＰＯＳＴが完全に終了したことが判定されると、ＮＥＢ２は「ダウンロード準備ＯＫ」の状態になる。この状態で、ＮＥＢ２は、入力ポートのうちどれか１つからさらに入力命令が入るのを約１秒間待つ。
【０２８３】
ＮＥＢがダウンロード状態になっている間、ＰＣ１（３００）はシリアルポート２１８を介してＮＥＢへテストプログラムをアップロードする。各テストプログラムの実行がＮＥＢ２によって完了すると、検査のためにＰＣ１（３００）に各テスト結果が送られる。次のチェックポイントがタイムアウト（例えば１秒）の間に受信されない場合、ＮＥＢのテストプログラム実行中にエラーが生じたとみなされ、エラー信号がＰＣ１（３００）によって出力される。このエラー信号はＰＣ１（３００）のディスプレイ上に表示してもよいし、プリンタ３０４で印刷することもできる。
【０２８４】
一方、ＰＣ１（３００）によって受信された次のチェックポイントが検査されなかった場合、ＰＣ１（３００）は受信された結果に従って、このテストプログラムを書直す（より詳細なテストモジュールをさらに加えることによって）。このようにして、ＰＣ１（３００）は問題箇所をつきとめＮＥＢ２をデバッグすることができる。
【０２８５】
ＳＣＳＩバス３０８あるいはＬＡＮ接続３１０、３１２のうちのいずれか１つを介して、ＰＣ２（３０６）と通信することをＮＥＢ２に要求するテストプログラムもある。例えば、テストプログラムに従って、ＮＥＢ２は、ＬＡＮ接続３１０を介してＰＣ２にデータを要求してもよい。ＰＣ２（３０６）はＮＥＢ２から各々の通信に対して適切な応答を返すように構成されており、それによって、プリンタ及び他方のＬＡＮ構成要素が効果的にエミュレートされる。正確な通信がＰＣ２（３０６）から返された場合、シリアルポート２１８を介してＰＣ１（３００）へ別のチェックポイントを通過させることによって、ＮＥＢ２はテストが成功したことを示す。
【０２８６】
図２６Ａ及び図２６Ｂに示されたフローチャートを参照し、図２５に描かれたテスト構成に従って、以下、ＮＥＢ２をテストするための方法について、より詳細に説明する。
【０２８７】
ＮＥＢ２にまず電源が投入されると、ステップＳ２６０１において、ＥＰＲＯＭ２２２からＮＥＢ２によってＰＯＳＴプログラムが実行される。ＰＯＳＴプログラムには、構成要素のオペレーション及びソフトウェアのプログラミングをテストするための個々のプログラムが含まれる。ＰＯＳＴ内で個々のプログラムが実行された後、ステップＳ２６０２において、チェックポイントがＰＣ１（３００）へ送られ、検査される。個々のプログラムの実行後所定の時間チェックポイントが送られない場合、あるいは、戻されたチェックポイントが不正確である場合、ステップＳ２６０３において、ＰＣ１（３００）からエラー信号が送られる。しかし、すべてのチェックポイントが正確で、所定の時間内に受信された場合は、処理はステップＳ２６０４へ進み、そこで、ＰＣ１（３００）はＮＥＢへテストプログラムを送る準備をする。
【０２８８】
ステップＳ２６０５で、ＰＯＳＴプログラムは完了し、ＮＥＢ２はポートのいずれか（好適にはシリアルポート）を介して送られてくる命令を待つ。待機時間は約１秒で、この間に、ＰＣ１（３００）は、用意したテストプログラムを用いて応答を行わなければならない。ステップＳ２６０６において、ＰＣ１（３００）が、待機時間内にＮＥＢ２にテストプログラムを送って応答しない場合、処理はステップＳ２６０７へ進み、ここで、ＮＥＢはその正常のオペレーションモードに入る。
【０２８９】
ステップＳ２６０６において、ＰＣ１（３００）からのテストプログラム命令セットが受信されると、更にテストプログラムが含まれているこの命令セットはＤＲＡＭ２２０のＮＥＢ２に格納される（ステップＳ２６０８）。ステップＳ２６０９において、ＰＣ１（３００）によって命令セットが起動され、ＮＥＢ２によってこの命令セットの中の各テストプログラムが実行される。
【０２９０】
このテストプログラム命令セットには、ＰＣ２（３０６）をＬＡＮ周辺装置として構成することをＮＥＢ２に要求するプログラムや、ＰＣ２（３０６）をＳＣＳＩ周辺装置として構成することをＮＥＢ２に要求するプログラムを、任意の順序で含むこともできる。いずれの場合においても、構成された後のＰＣ２（３０６）は、ＮＥＢによって送られたデータ・ブロックを、通常、単に返信することによって、ＮＥＢ２からのそれぞれの通信に対して応答する。
【０２９１】
簡潔に述べると、ステップＳ２６１０（図２６Ｂ）において、ＮＥＢ２はＬＡＮ周辺機器としてＰＣ２（３０６）を構成し、ＰＣ２（３０６）はＮＥＢ２に対して応答を送ることによって応答し、この応答によって、ＮＥＢ２が受信したデータが返信されることによってＬＡＮループバックテストが効果的に行なわれる。ＮＥＢ２はＰＣ２と通信し、シミュレートされた印刷ジョブ結果を受信する。ステップＳ２６１１において、各ブロックジョブの結果がＰＣ１（３００）へ送られ、このテスト結果が正確か否かがＰＣ１（３００）によって判定される。ステップＳ２６１１において、テスト結果が不正確であることがＰＣ１（３００）によって判定されると、ステップＳ２６１１で受信されたテスト結果に従って書直された分岐テストプログラムが、ＰＣ１（３００）によって送られる（ステップＳ２６１２）。しかしながら、分岐テストプログラムがもはや存在しなくなると、ステップＳ２６１２において、ＰＣ１（３００）はＬＡＮテストを停止し、エラー信号を出力する。
【０２９２】
このようにして、ステップＳ２６１１において、ＮＥＢ２によってＬＡＮ通信テストが行なわれる。ＮＥＢ２が各々のＬＡＮ通信テストをうまくパスしたならば、処理はステップＳ２６１３へ進み、ここで、ＰＣ２（３０６）はＳＣＳＩ周辺装置として構成され、その受信データを返信することによって、ＳＣＳＩループバックテストが行なわれる。ステップＳ２６１４において、このテスト結果はＰＣ１（３００）へ送られ、この結果が不正確である場合、ステップＳ２６１５において、このテスト結果に従って分岐テストがＰＣ１（３００）によって同様に送られる。もちろん、周辺機器との通信をさらにテストするための分岐テストがもはや存在しなくなれば、ＰＣ１（３００）によってこのテストは停止され、エラー信号が出力される。
【０２９３】
ステップＳ２６１４において、ＮＥＢ２が各ＳＣＳＩ通信テストをうまくパスしたならば、処理はステップＳ２６１６へ進み、ここで、ＮＥＢ２はＰＣ１（３００）から更なる命令を要求する。ＰＣ１（３００）が更なる命令を返信すると、処理はステップＳ２６０５へ戻るが、さらにテストを行なう必要がない場合は、ＮＥＢテストは終了する。
【０２９４】
要するに、ＬＡＮインタフェース及びテストインタフェースを持つ対話型ネットワークボードをテストするための方法には、ボードに電源を投入し、テストインタフェースを介してボードＲＯＭから実行されたＰＯＳＴ結果を読取り、また、テストインタフェースを介してＲＡＭボードへテストプログラムをダウンロードするという諸ステップが含まれる。次いで、テストプログラムが起動され、ＲＡＭボードから実行される。それから、ボードは、周辺装置をＬＡＮドライバあるいはＳＣＳＩ周辺機器として構成するように（ＬＡＮあるいはＳＣＳＩインタフェースのいずれかを介して）命令を受ける。次いで、ボードはテストプログラムに従って、ＬＡＮドライバあるいはＳＣＳＩ周辺機器と対話する。それから、テストプログラムの結果がテストインタフェースを介してテストコンピュータへ出力され、テストコンピュータではこれらのテスト結果を受信する。あるテストが失敗すると、その失敗のタイプに従って、補足テストプログラムが書かれる。新たに書かれたテストプログラムによって、故障検出と診断を行なうことができ、次いで、これらの補足的に書かれたテストプログラムをＰＣ１からＲＡＭボードにダウンロードすることもできる。
【０２９５】
ひとたびすべてのテストがうまく終了すれば、オペレーションファームウェアをＥＰＲＯＭ２２２中にフラッシュすると便利であろう（工場試験環境においては）。特に、テストプログラムの最後のステップを利用して、引渡しに先立って、必要なファームウェアイメージをＥＰＲＯＭ２２２のＮＥＢ中へロードしてもよい。（セクション４ｑを参照）。ＥＰＲＯＭ２２２へフラッシュされるファームウェアには、ＮＥＢ２のためのユニークなＭＡＣアドレスも含まれる。
【０２９６】
従来、ＭＡＣアドレスはＰＲＯＭ２３２のような専用ＰＲＯＭチップを用いて、回路基板に組み込まれていた。しかしながら、ＭＡＣアドレスをＥＰＲＯＭ中にフラッシュすればＰＲＯＭチップの必要がなくなると同時に、ＭＡＣアドレスを不揮発性の状態で格納しておくことができることが分かった。（もちろん、パラグラフ４ｑにおいて説明したように、ＮＥＢ２をＬＡＮに接続した後、ＲＡＭファームウェアイメージを更新すると同時に、遠隔地からＭＡＣアドレスをＥＰＲＯＭへフラッシュさせることもできる。）
図２６ＢのステップＳ２６１７において、ＮＥＢのテストが完了し、各ボードを、各ボード独自の個々の識別番号（一般にはＭＡＣアドレスを参照）で指定してもよい。このようにして、ステップＳ２６１７において、ＲＯＭファームウェアイメージがＥＰＲＯＭ２２２に格納されるべきか否かが判定される。格納すべきイメージがない場合、テストは終了する。しかしながら、格納すべきイメージがある場合、処理はステップＳ２６１８へ進み、ここで、ＲＯＭイメージは（ＭＡＣアドレスと共に）ＥＰＲＯＭ２２２中へフラッシュされる。ステップＳ２６１８で、ＰＲＯＭ２３２に通常格納されるボードの改訂番号、製造データ、テスタ名等のような他のデータがＭＡＣアドレスと一緒に、ＥＰＲＯＭ２２２中へフラッシュされることが望ましい。
【０２９７】
ＲＯＭファームウェア及びＭＡＣアドレスをＥＰＲＯＭ２２２へフラッシュするための２つの可能なシナリオを考察してきた。第１のケースでは、製造テストの際に用いられる高性能の診断セットでＮＥＢ２に予めロードされる。このアプローチによって、特定のテストをダウンロードするのに必要とされる時間が削減される。というのは、これらのテストはファームウェア中にすでに存在するからである。この場合、諸テストが成功した後、ファームウェアの最終製造版がボード中にロードされ、ＭＡＣアドレス並びに、ボード改訂、製造データ、テスタのようなハードウェアに関する他の情報と共にフラッシュされる（ステップＳ２６１８）。第２のケースでは、ボードがファームウェアの最終製造版とともに組み立てられる。この場合、ボードの特定情報領域が空白にされ、ステップＳ２６１８においてテストがうまく実行された後、この領域のみがロードされ、フラッシュされる。
【０２９８】
要するに、ＬＡＮインタフェースを持つ対話型ネットワークボード中へプログラム可能ファームウェアをテスト後ロードする方法としては、ＬＡＮインタフェースを介してＤＲＡＭ２２０へＲＯＭファームウェアイメージ（ＭＡＣアドレスを含めて）をダウンロードするステップが含まれる。ＲＯＭイメージの完全性がここで確認され、ボードはＥＰＲＯＭを電子的に消去するように命じられる。次いで、ＥＰＲＯＭは、ＭＡＣアドレスが含まれるＲＯＭイメージでフラッシュされ、それから、ボードはＥＰＲＯＭからリブートされる。
【０２９９】
以上のように、上記の詳細な説明は、ＬＡＮに周辺機器を接続するための構造及び機能を含んだ対話型ネットワーク回路基板に関するものであり、これによって、周辺機器がＬＡＮに応答する対話型構成要素となる。
【０３００】
以上、本発明の好適な実施例と考えられるものに関して説明してきたが、本発明はこの開示した実施例に限定されるものではないことは言うまでもない。むしろ、本発明は、特許請求の範囲が示す思想とその範囲内に含まれる様々な変更及び同等物をカバーすることを意図するものである。特許請求の範囲は、このような変更及び同等の構造類及び機能をすべて含むように最も広い解釈が与えられるべきものである。
【０３０１】
【発明の効果】
以上説明したように本発明によれば、専用のパーソナルコンピュータを用いずとも、プリンタのような周辺装置をＬＡＮなどのネットワークの効果的でインテリジェントなメンバとして組み込むことができるという効果がある。
【図面の簡単な説明】
【図１】本発明の代表的な実施例であるローカルエリアネットワーク（ＬＡＮ）のブロック図である。
【図２】相互に接続された複数のローカルエリアネットワーク（ＬＡＮ）のブロック図である。
【図３】ローカルエリアネットワーク（ＬＡＮ）とプリンタ間で接続された、本実施例によるネットワーク拡張ボードを示すブロック図である。
【図４】本実施例によるネットワーク拡張ボードのブロック図である。
【図５Ａ】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図５Ｂ】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図５Ｃ】本実施例によるネットワーク拡張ボードの基本的機能を示す概要フローチャートである。
【図６】ソフトウェアモジュールがネットワーク拡張ボードＲＯＭからＲＡＭへロードされる順序を示す図である。
【図７】ＬＡＮとネットワーク拡張ボード間のハードウェア及びソフトウェアインタフェースを示すブロック図である。
【図８】ネットワーク拡張ボードをオペレーションモードに設定するためにＥＰＲＯＭファームウェアをどのように構成するかを示すフローチャートである。
【図９】イーサネットで使用される異なるフレームパケットの物理的構造を示す図である。
【図１０】ＰＲＥＳＣＡＮソフトウェアモジュールの動作を示すフローチャートである。
【図１１】ＰＲＥＳＣＡＮモジュールが他のソフトウェアプロトコルで使用される場合を示す図である。
【図１２】ＳＡＰＳＥＲＶＥＲプログラムのソフトウェア構造を説明するための図である。
【図１３】ＳＡＰＳＥＲＶＥＲの動作を示すフローチャートである。
【図１４】ＣＰＩＮＩＴプログラムの動作を示すフローチャートである。
【図１５Ａ】ＣＰＣＯＮＳＯＬプログラムの動作を示すフローチャートである。
【図１５Ｂ】ＣＰＣＯＮＳＯＬプログラムの動作を示すフローチャートである。
【図１６Ａ】ＣＰＳＯＣＫＥＴプログラムの動作を示すフローチャートである。
【図１６Ｂ】ＣＰＳＯＣＫＥＴプログラムの動作を示すフローチャートである。
【図１７Ａ】周辺装置の統計値の自動的ロギングを示すフローチャートである。
【図１７Ｂ】周辺装置の統計値の自動的ロギングを示すフローチャートである。
【図１８】マルチタスキング処理がどのように実行されるか示すフローチャートである。
【図１９】安全なデフォルト機器構成にプリンタを設定する手順を示すフローチャートである。
【図２０】ローカルエリアネットワーク（ＬＡＮ）からネットワーク拡張ボードへの実行可能ファイルのダウンローディングを示すフローチャートである。
【図２１】ネットワーク拡張ボードのＥＰＲＯＭで独立に実行可能なモジュールのローディングを示すフローチャートである。
【図２２】ネットワーク拡張ボードＥＰＲＯＭフラッシュ保護回路を示すブロック図である。
【図２３】図２２に示す回路の動作を示すフローチャートである。
【図２４】ネットワーク拡張ボードＥＰＲＯＭにファームウェアを遠隔操作でロードする動作を示すフローチャートである。
【図２５】ネットワーク拡張ボードをテストするためのハードウェア機器構成を示すブロック図である。
【図２６Ａ】図２５のテスト構成を用いたネットワーク拡張ボードテスト方法を示すフローチャートである。
【図２６Ｂ】図２５のテスト構成を用いたネットワーク拡張ボードテスト方法を示すフローチャートである。
【符号の説明】
２  ネットワーク拡張ボード（ＮＥＢ）
４  プリンタ
６  ＬＡＮ
８  ＬＡＮインタフェース
１０、１２、１８、２２  ＰＣ
１４  ネットワーク管理装置用ＰＣ
３０  ファイルサーバ
２０６  イーサネットネットワークコントローラ
２１０、２１２  電源変換器
２１６  マイクロプロセッサ
２１８  シリアルポート
２２０  ＤＲＡＭ
２２２  ＥＰＲＯＭ
２２４  ＳＣＳＩコントローラ
２２６  プリンタ拡張ボード
２２８  ＮＶＲＡＭ
２３０  コントロールレジスタ
２３２  ＭＡＣアドレス／ハードウェアＩＤ
【図１】
0003592323.tif 000028
【図２】
0003592323.tif 000029
【図３】
0003592323.tif 000030
【図４】
0003592323.tif 000031
【図５Ａ】
0003592323.tif 000032
【図５Ｂ】
0003592323.tif 000033
【図５Ｃ】
0003592323.tif 000034
【図６】
0003592323.tif 000035
【図７】
0003592323.tif 000036
【図８】
0003592323.tif 000037
【図９】
0003592323.tif 000038
【図１０】
0003592323.tif 000039
【図１１】
0003592323.tif 000040
【図１２】
0003592323.tif 000041
【図１３】
0003592323.tif 000042
【図１４】
0003592323.tif 000043
【図１５Ａ】
0003592323.tif 000044
【図１５Ｂ】
0003592323.tif 000045
【図１６Ａ】
0003592323.tif 000046
【図１６Ｂ】
0003592323.tif 000047
【図１７Ａ】
0003592323.tif 000048
【図１７Ｂ】
0003592323.tif 000049
【図１８】
0003592323.tif 000050
【図１９】
0003592323.tif 000051
【図２０】
0003592323.tif 000052
【図２１】
0003592323.tif 000053
【図２２】
0003592323.tif 000054
【図２３】
0003592323.tif 000055
【図２４】
0003592323.tif 000056
【図２５】
0003592323.tif 000057
【図２６Ａ】
0003592323.tif 000058
【図２６Ｂ】
0003592323.tif 000059