(57)【要約】【課題】システム更新プロトコルおよび埋込みオペレーティングシステムを備えたブータト可能なＣＤコントローラ【解決手段】システム更新プロトコルである。ソフトウェア更新は、パックファイルにパックされ、そのパックファイルは、固有の署名を含む。パックファイルは、信頼できるクライアントコンピュータからネットワークプリンタへアップロードされる。パックファイルが正しく送信されたことを保証するために、パックファイルの保全性は、チェックサムおよび署名比較を実行することによって、ネットワークプリンタにおいて自動的に検査される。パックファイルが破損していると判定された場合、パックファイルは、再送される。パックファイルは、アンパックファイルの予め定められたディレクトリ構造にアンパックされる。そして、クライアントコンピュータは、ネットワークプリンタへ通知し、ネットワークプリンタにおいて、ソフトウェア更新をインストールさせる。別の実施形態においては、プリンタコントローラは、印刷／ファックス／スキャンデータおよびプリンタコントローラシステムパラメータを記憶するための１つまたは複数の不揮発性メモリ要素を含む。プリンタコントローラは、ＣＤ−ＲＯＭまたはその他の着脱可能な種類のデータディスクのような不揮発性記憶媒体からブート可能である。
2005527908.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上に配置された周辺出力装置のソフトウェアを更新する方法であって、
ソフトウェア更新データをクライアントから前記周辺出力装置へ送信するステップと、
前記ソフトウェア更新データを前記周辺出力装置にインストールするステップと、
を備えた方法。
【請求項２】
前記送信するステップにおける前記ソフトウェア更新データは、パックファイルの形態であり、前記パックファイルは、それの先頭に付加された固有の署名を含み、前記署名は、前記周辺出力装置によってのみ認識することができる請求項１に記載の方法。
【請求項３】
前記ソフトウェア更新データが前記周辺出力装置において受信されたとき、前記ソフトウェア更新データの固有の署名およびチェックサムを検査するステップをさらに備えた請求項１に記載の方法。
【請求項４】
前記周辺出力装置において、前記ソフトウェア更新データを予め定められたディレクトリ構造に組み立てるステップをさらに備えた請求項１に記載の方法。
【請求項５】
前記周辺出力装置は、ＴＣＰ／ＩＰトラフィックを受信するためのＴＣＰ／ＩＰソケットおよびＩＰＸ／ＳＰＸトラフィックを受信するためのＩＰＸ／ＳＰＸソケットの少なくとも一方をオープンする請求項１に記載の方法。
【請求項６】
前記クライアントは、前記インストールするステップにおいて、命令を前記周辺出力装置へ送信し、前記命令は、パッチファイルを実行するステップ、システムパラメータを設定するステップ、およびコントローラソフトウェア更新をインストールするステップのうち少なくとも１つを前記周辺出力装置に実行させる請求項１に記載の方法。
【請求項７】
前記クライアントが、前記ソフトウェア更新データを送信するステップおよび前記ソフトウェア更新データをインストールするステップの少なくとも一方を実行した後、前記周辺出力装置は、前記クライアントからの問い合わせに応答して、返答信号を前記クライアントへ送信する請求項１に記載の方法。
【請求項８】
前記周辺出力装置は、返答信号を前記クライアントへ送信し、
前記返答信号は、
前記ソフトウェア更新データを含むパックファイルのサニティ検査を実行するステップと、
前記パックファイルを認証するステップと、
前記ソフトウェア更新データの前記パックファイルを予め定義されたファイル構造にアンパックするステップと、
前記ソフトウェア更新データをインストールするために、前記クライアントから受信された命令を処理するステップのうち少なくとも１つに対応する請求項１に記載の方法。
【請求項９】
前記ソフトウェア更新データが前記周辺出力装置において受信されたとき、前記ソフトウェア更新データの固有の署名およびチェックサムを検査するステップと、
前記検査するステップが不合格である場合、前記周辺出力装置において前記ソフトウェア更新データを削除するステップと、
前記検査するステップにおいて検査された前記ソフトウェア更新データが不合格であったことを指示する信号を前記周辺出力装置から前記クライアントへ送信するステップと、
それに応答して、前記クライアントから前記周辺出力装置へ前記ソフトウェア更新データを再送するステップと、
をさらに備えた請求項１に記載の方法。
【請求項１０】
ネットワーク上に配置された周辺出力装置のソフトウェアを更新する方法であって、
クライアントにおいて、ソフトウェア更新データを、固有の署名を含むパックファイルにパックするステップと、
前記パックファイルを前記クライアントから前記周辺出力装置へ送信するステップと、
前記パックファイルが正しく送信されたことを保証するために、前記周辺出力装置において前記パックファイルの保全性を検査するステップと、
前記パックファイルを予め定められたディレクトリ構造にアンパックするステップと、
前記ソフトウェア更新データを前記周辺出力装置にインストールするステップと、
を備えた方法。
【請求項１１】
前記パックするステップにおける前記パックファイルの前記固有の署名は、前記パックファイルの先頭に付加され、かつ、前記周辺出力装置によってのみ認識することができる請求項１０に記載の方法。
【請求項１２】
前記クライアントが、前記パックファイルを送信するステップおよび前記ソフトウェア更新データを前記周辺出力装置にインストールするステップの少なくとも一方を実行した後、前記周辺出力装置は、前記クライアントからの問い合わせに応答して、返答信号を前記クライアントへ送信する請求項１０に記載の方法。
【請求項１３】
前記パックファイルをアンパックするステップと、
前記パックファイルのサニティ検査を実行するステップと、
前記パックファイルを認証するステップと、
前記クライアントから受信された命令を処理し、前記ソフトウェア更新データをインストールするステップのうち少なくとも１つを実行したことに応答して、前記返答信号が、生成される請求項１２に記載の方法。
【請求項１４】
ネットワークプリンタのソフトウェアを更新する方法であって、
ソフトウェア更新データを、固有の署名を含むパックファイルにパックするステップと、
前記パックファイルをクライアントコンピュータから前記ネットワークプリンタへ送信するステップと、
前記パックファイルが正しく送信されたことを保証するために、前記パックファイルの保全性を前記ネットワークプリンタにおいて自動的に検査するステップと、
前記検査するステップのステータスについて前記ネットワークプリンタに前記クライアントが問い合わせしたことに応答して、返答信号によって前記クライアントに返答するステップと、
前記パックファイルをアンパックファイルの予め定められたディレクトリ構造にアンパックするステップと、
前記ネットワークプリンタに前記ソフトウェア更新データをインストールするために、前記クライアントコンピュータから前記ネットワークプリンタを制御するステップと、
前記制御するステップのステータスについて前記ネットワークプリンタに前記クライアントが問い合わせしたことに応答して、前記ネットワークプリンタから前記クライアントへ返答を送信するステップと、
を備えた方法。
【請求項１５】
前記送信するステップにおいて、前記パックファイルの送信を完了したとき、前記クライアントは、前記ネットワークプリンタへ通知する請求項１４に記載の方法。
【請求項１６】
ネットワーク上に配置された周辺出力装置のソフトウェアを更新するためのアーキテクチャであって、
クライアントから前記周辺出力装置へ送信されるソフトウェア更新データを備え、
前記ソフトウェア更新データをインストールするために、前記周辺出力装置が、前記クライアントによって制御される、アーキテクチャ。
【請求項１７】
前記ソフトウェア更新データは、パックファイル形式であり、前記パックファイルは、前記パックファイルの先頭に付加された固有の署名を含み、前記署名は、前記周辺出力装置によってのみ認識することができる請求項１６に記載のアーキテクチャ。
【請求項１８】
前記ソフトウェア更新データが前記周辺出力装置において受信されたとき、前記ソフトウェア更新データの固有の署名およびチェックサムが検査される請求項１６に記載のアーキテクチャ。
【請求項１９】
前記周辺出力装置において、前記ソフトウェア更新データは、予め定められたディレクトリ構造に組み立てられる請求項１６に記載のアーキテクチャ。
【請求項２０】
前記周辺出力装置は、ＴＣＰ／ＩＰトラフィックを受信するためのＴＣＰ／ＩＰソケットおよびＩＰＸ／ＳＰＸトラフィックを受信するためのＩＰＸ／ＳＰＸソケットの少なくとも一方をオープンする請求項１６に記載のアーキテクチャ。
【請求項２１】
前記クライアントは、命令を前記周辺出力装置へ送信し、前記命令は、パッチファイルの実行、システムパラメータの設定、コントローラソフトウェア更新のインストールの少なくとも１つを前記周辺出力装置に実行させる請求項１６に記載のアーキテクチャ。
【請求項２２】
前記クライアントが、前記パックファイルの送信および前記前記周辺出力装置の制御の少なくとも一方を実行した後、前記周辺出力装置は、前記クライアントからの問い合わせに応答して、返答信号を前記クライアントへ送信する請求項１６に記載のアーキテクチャ。
【請求項２３】
前記返答信号は、前記パックファイルのサニティ検査、前記パックファイルの認証、前記ソフトウェア更新データの前記パックファイルのアンパック、前記ソフトウェア更新データをインストールさせるための前記クライアントから受信された命令の処理の少なくとも１つに対応する請求項２２に記載のアーキテクチャ。
【請求項２４】
前記ソフトウェア更新データが、前記周辺出力装置において受信されたとき、前記ソフトウェア更新データの固有の署名およびチェックサムの両方が検査され、前記検査が不合格であれば、前記ソフトウェア更新データは、前記周辺出力装置において削除され、前記ソフトウェア更新データが不合格であったことを指示する信号が、前記周辺出力装置から前記クライアントへ送信され、前記信号に応答して、前記ソフトウェア更新データが、前記クライアントから前記周辺出力装置へ再送される請求項１６に記載のアーキテクチャ。
【請求項２５】
ネットワーク上に配置された周辺出力装置のソフトウェアを更新するためのアーキテクチャであって、
固有の署名を含むパックファイルにパックされ、かつ、クライアントから前記周辺出力装置へ送信されるソフトウェア更新データを備え、
前記パックファイルが正しく送信されたことを保証するために、前記パックファイルの保全性が、前記周辺出力装置において自動的に検査され、
前記パックファイルが、アンパックファイルの予め定められたディレクトリ構造にアンパックされ、
前記ソフトウェア更新データをインストールさせるために、前記周辺出力装置が、前記クライアントによって制御される、アーキテクチャ。
【請求項２６】
前記パックファイルの前記固有の署名は、前記パックファイルの先頭に付加され、かつ、前記周辺出力装置によってのみ認識することができる請求項２５に記載のアーキテクチャ。
【請求項２７】
前記クライアントが、前記パックファイルの送信および前記前記周辺出力装置の制御の少なくとも一方を実行したことに応答して、前記周辺出力装置は、返答信号を前記クライアントへ送信する請求項２５に記載のアーキテクチャ。
【請求項２８】
前記パックファイルをアンパックするステップ、
前記パックファイルのサニティ検査を実行するステップ、
前記パックファイルを認証するステップ、
前記ソフトウェア更新データをインストールさせるためにクライアントから受信された命令を処理するステップ、
の少なくとも１つを前記周辺出力装置が実行したことに応答して、前記返答信号が生成される請求項２７に記載のアーキテクチャ。
【請求項２９】
ネットワーク上に配置された周辺出力装置のソフトウェアを更新するためのアーキテクチャであって、
固有の署名を含むパックファイルにパックされ、かつ、前記ネットワークを介してクライアントから前記周辺出力装置へ送信されるソフトウェア更新データを備え、
前記パックファイルが正しく送信されたことを保証するために、前記パックファイルの保全性が、前記周辺出力装置において自動的に検査され、
前記保全性検査のステータスについて前記ネットワークプリンタに前記クライアントが問い合わせしたことに応答して、返答信号が、前記クライアントへ送信され、
前記パックファイルが、アンパックファイルの予め定められたディレクトリ構造にアンパックされ、
前記ソフトウェア更新データをインストールさせるために、前記周辺出力装置が、前記クライアントによって制御され、
制御されたネットワークプリンタのステータスについて前記ネットワークプリンタに前記クライアントが問い合わせしたことに応答して、返答が、前記ネットワークプリンタから前記クライアントへ送信される、アーキテクチャ。
【請求項３０】
前記パックファイルの送信を完了したとき、前記クライアントは、前記ネットワークプリンタへ通知する請求項２９に記載のアーキテクチャ。
【請求項３１】
前記ネットワークは、グローバル通信ネットワークである請求項２９に記載のアーキテクチャ。
【請求項３２】
プリンタコントローラであって、
印刷／ファックス／スキャンデータおよびプリンタコントローラシステムパラメータを記憶するための少なくとも１つの不揮発性メモリ要素と、
オペレーティングシステムを保存するための不揮発性記憶媒体であり、前記オペレーティングシステムが、前記不揮発性記憶媒体からブート可能である、前記不揮発性記憶媒体と、
を備えたプリンタコントローラ。
【請求項３３】
前記不揮発性記憶媒体は、不揮発性記憶ディスクである請求項３２に記載のプリンタコントローラ。
【請求項３４】
前記不揮発性記憶ディスクは、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭのいずれか一方である請求項３３に記載のプリンタコントローラ。
【請求項３５】
前記オペレーティングシステムは、埋込みオペレーティングシステムである請求項３２に記載のプリンタコントローラ。
【請求項３６】
前記少なくとも１つの不揮発性メモリ要素は、少なくとも１つのフラッシュメモリＰＣＭＣＩＡカードを備えた請求項３２に記載のプリンタコントローラ。
【請求項３７】
前記不揮発性記憶媒体は、ブート可能パーティション、埋込みオペレーティングシステムファイル、デバイスドライバ、「印刷」機能、「ファックス」機能、「スキャン」機能、および、「ネットワーク」機能のためのコントローラサービスファイル、および、ウェブページファイルの少なくとも１つを含むＣＤ−ＲＯＭを備えた請求項３２に記載のプリンタコントローラ。
【請求項３８】
前記不揮発性記憶媒体は、システムパラメータ、埋込みＯＳからのメモリスワップファイル、印刷スプーラ、および、システムイベントログの少なくとも１つを記憶するためのシステムメモリカードを備えた請求項３２に記載のプリンタコントローラ。
【請求項３９】
前記不揮発性記憶媒体は、印刷ジョブデータ、ファックスジョブデータ、スキャンデータ、電子メールデータ、ジョブログ、および、メッセージログの少なくとも１つを記憶するためのデータメモリカードを備えた請求項３２に記載のプリンタコントローラ。
【請求項４０】
メモリカード記憶容量を監視し、パーティションの使用を制限し、最大データ限界値を超えるのを防止するために、記憶容量制御ユーティリティプログラムをさらに備えた請求項３２に記載のプリンタコントローラ。
【請求項４１】
印刷／ファックス／スキャンデータおよびプリンタコントローラシステムパラメータを少なくとも１つの不揮発性メモリ要素に記憶し、
オペレーティングシステムを不揮発性記憶媒体に保存し、
前記オペレーティングシステムを前記不揮発性記憶媒体からブートする、
ことを備えた方法。
【請求項４２】
前記保存するステップおよび前記ブートするステップは、不揮発性記憶ディスクから実行される請求項１４に記載の方法。
【請求項４３】
前記保存するステップおよびブートするステップは、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭのいずれか一方から実行される請求項４２に記載の方法。
【請求項４４】
前記オペレーティングシステムを保存するステップおよびオペレーティングシステムをブートするステップは、埋込みオペレーティングシステムを保存およびブートすることを含む請求項４１に記載の方法。
【請求項４５】
前記少なくとも１つの不揮発性メモリ要素に記憶するステップは、少なくとも１つのフラッシュメモリＰＣＭＣＩＡカードに記憶することを含む請求項４１に記載の方法。
【請求項４６】
ブート可能なパーティション、埋込みオペレーティングシステムファイル、デバイスドライバ、「印刷」機能、「ファックス」機能、「スキャン」機能、および、「ネットワーク」機能のためのコントローラサービスファイル、および、ウェブページファイルの少なくとも１つを前記不揮発性記憶媒体に保存する付加的なステップをさらに備えた請求項４１に記載の方法。
【請求項４７】
前記不揮発性記憶媒体に記憶するステップは、システムパラメータ、埋込みＯＳからのメモリスワップファイル、印刷スプーラ、および、システムイベントログの少なくとも１つをシステムメモリカードに記憶することをさらに含む請求項４１に記載の方法。
【請求項４８】
前記不揮発性記憶媒体に記憶するステップは、印刷ジョブデータ、ファックスジョブデータ、スキャンデータ、電子メールデータ、ジョブログ、および、メッセージログの少なくとも１つをデータメモリカードに記憶することをさらに含む請求項４１に記載の方法。
【請求項４９】
パーティションの使用を制限し、最大データ限界値を超えるのを防止するために、メモリカード記憶容量を監視するステップをさらに備えた請求項４１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタコントローラのファイルを更新するための通信プロトコルに関し、また、オペレーティングシステム、とりわけ、ネットワークプリンタのような出力周辺装置のコントローラに使用されるような種類のオペレーティングシステムをブートする分野に関する。
【背景技術】
【０００２】
プリンタコントローラ（または、プリンタ）は、それの機能は関連する周辺出力装置のすべての印刷機能を制御することであるが、ソフトウェアをアップグレードし、新しいソフトウェアをインストールし、および／または、一括にシステム設定するには、外部配信手段からファイルをロードしなければならない場合がある。プリンタの中には、ファイルを記憶配信装置（例えば、ＣＤ−ＲＯＭ、フロッピードライブ、など）を介してプリンタコントローラに物理的にコピーし、そして、セットアップおよびシステム設定するための対応するコマンドを一般的な入力装置（例えば、マウスおよびキーボード）およびビデオ表示パネルを介して実行することによって、これらのタスクを実行させるものもある。
【０００３】
アドミニストレータが、複数の建物のような多くの様々なサイト（または、ネットワークノード）に、あるいは、それどころか全国に遠く離れて配置された多くのそのようなプリンタを管理しなければならない場合、この作業は、実用的なものではなく、かつ、時間がかかることがわかる。
【０００４】
ワークステーションユーザは、ベンダー（ｖｅｎｄｏｒ）から提供された自己解凍パッチファイルおよび自己インストールパッチファイルを実行することによって、特定の構成要件にパッチを容易に施すことができる。また、同じパッチが、同じ構成要件を備えたプリンタコントローラに実施されてもよい。しかしながら、プリンタは、入力装置収容能力（例えば、モニター、キーボード）がないので、そのようなソフトウェア更新のインストールプロセスを開始するのは容易なことではない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
必要とされていることは、必要な１つまたは複数のファイルをプリンタコントローラにアップロードし、かつ、インストールするのに必要なあらゆるコマンドを発行するのを容易にするクライアントサーバネットワーク化プロトコルである。
【０００６】
また、場合によっては、コントローラのオペレーティングシステムを更新することが望ましいこともある。東芝（登録商標）から市販されているモデルＳＣ−２コントローラおよびモデルＧＬ−１０１０コントローラのようなネットワークプリンタのコントローラは、Ｍｉｃｒｏｓｏｆｔ  Ｅｍｂｅｄｄｅｄ  ＮＴオペレーティングシステム（ＯＳ）を使用する。これらのソフトウェア更新を実行するために、コントローラＣＤ−ＲＯＭが、挿入される。このＣＤ−ＲＯＭは、システムをブートアップするのに使用され、その後に、コントローラハードディスクのＯＳソフトウェアが更新される。ソフトウェア更新が完了した後、ユーザは、ＣＤ−ＲＯＭを取り出し、かつ、ハードディスクからコントローラを再起動（ｒｅｂｏｏｔ）しなければならない。コントローラが、ブートアップし、そして、動作し始めた後、コントローラは、クライアントから印刷ジョブを受け入れる。また、コントローラは、システムおよびユーザパラメータをセットアップするために、クライアントとネットワーク接続することができ、かつ、印刷／スキャンジョブをコントローラハードディスクに記憶することができる。
【０００７】
オペレーティングシステムを頻繁にソフトウェア更新する可能性のある状況においては、ＣＤからブートし、そして、ハードディスクから再起動する上述したステップは、煩わしく、かつ、時間がかかることがある。また、しばしば、ソフトウェア更新後のＯＳ問題の診断およびトラブルシューティングに、余計な時間および労力が、費やされることがある。さらに、ハードディスクは、信頼性のない記憶媒体であり、コンピュータウィルスおよびデータの誤りまたは紛失のその他の発生源に対して無防備である。また、ハードディスクは、付加的な構成要件であり、コントローラの寸法およびコストを増大させる。
【課題を解決するための手段】
【０００８】
従来型システムに関連する問題および欠点は、本発明の方法および装置によって解決される。
【０００９】
ここに開示されかつ請求されている本発明は、それの１つの態様において、システム更新プロトコルを備える。ソフトウェア更新は、パックファイルにパックされ、そのパックファイルは、固有の署名を含む。パックファイルは、信頼できるクライアントコンピュータからネットワークプリンタへアップロードされる。パックファイルが正しく送信されたことを保証するために、パックファイルの保全性は、チェックサムおよび署名比較を実行することによって、ネットワークプリンタにおいて自動的に検査される。パックファイルが破損していると判定された場合、パックファイルは、クライアントから再送される。パックファイルは、アンパックファイルの予め定められたディレクトリ構造にアンパックされる。そして、クライアントコンピュータは、ネットワークプリンタへ通知し、ネットワークプリンタにおいて、ソフトウェア更新をインストールさせる。
【００１０】
本発明の別の態様は、プリンタコントローラであり、そのプリンタコントローラは、印刷／ファックス／スキャンデータおよびプリンタコントローラシステムパラメータを記憶するための１つまたは複数の不揮発性メモリ要素を含む。不揮発性メモリ要素は、フラッシュメモリＰＣＭＣＩＡカードを含んでもよい。また、オペレーティングシステムを保存するために、不揮発性記憶媒体が、提供され、プリンタコントローラは、その不揮発性記憶媒体からブート可能である。不揮発性記憶媒体は、好ましくは、ＣＤ−ＲＯＭまたはその他の着脱可能な種類のデータディスクである。
【００１１】
以下から明らかとなるように、本発明は、その他の様々な実施形態が可能であり、それのいくつかの細部は、本発明からまったく逸脱することなく、様々に変更することができる。したがって、図面および説明は、説明のためのものであり、限定するものではない。
【００１２】
本発明および本発明の利点をより完全に理解するために、ここで、添付の図面を参照して、本発明を説明する。
【発明を実施するための最良の形態】
【００１３】
開示されたプロトコルアーキテクチャは、ファイルを正しく受信した後にインストレーションコマンドを印刷コントローラに実行させる能力を提供する。
【００１４】
多くの広く普及しているファイル転送プロトコルと異なり、開示されたシステム更新プロトコルは、単一下層トランスポートに限定されない。それは、例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ−Ｍｉｃｒｏｓｏｆｔ（登録商標）プロトコルスイート）およびＩＰＸ／ＳＰＸ（Ｉｎｔｅｒｎｅｔ  Ｐａｃｋｅｔ  ｅＸｃｈａｎｇｅ／Ｓｅｑｕｅｎｃｅｄ  Ｐａｃｋｅｔ  ｅＸｃｈａｎｇｅ−Ｎｏｖｅｌｌ（登録商標）通信プロトコル）で動作するように設計されたものである。したがって、クライアントユーザは、印刷コントローラで動作するサーバプログラムに応答能力を提供するどちらのトランスポートプロトコルを選択してもよい。
【００１５】
本発明によるプロトコルは、１組のわずかな数のコマンドから構成される。１つまたは複数のターゲットファイルが、パックファイルにパックされ（すなわち、単一の大きなファイルに圧縮される）、セキュリティ上の理由から、署名が、パックファイルの先頭に付加される。オプションとして、パックファイルは、セキュリティを強化するために、固有合意キーによって暗号化されてもよい。
【００１６】
ここで、図１を参照すると、本発明によるプロトコルのクライアント／サーバプロトコル交換フロー図が、示される。クライアントプログラムフロー図１００とサーバプログラムフロー図１０２との間の水平線は、クライアントのクライアントプログラムと印刷コントローラ（周辺出力装置として示されてもよい）のサーバプログラムとの間で交換されるネットワークパケットのコンテンツの方向および種類を示し、フロー図のブロック間の垂直線は、制御のフローを示す。
【００１７】
開示されたプロトコルは、以下のコマンドからなる。ＳＥＮＤ：大きな塊のターゲットファイルを転送する。ＳＥＮＤＥＮＤ：転送の終了を通知する。ＡＣＴＩＯＮ：ファイルにどのような処理をするかをサーバに指示する。ＳＴＡＴＵＳ：アクションのステータスを検査する。ＳＴＡＴＵＳＲＥＰＬＹ：転送またはアクションのステータスを戻す。
【００１８】
プリンタコントローラで動作するサーバプログラム１０２は、これらのコマンドを提供する役割を担当している。ワークステーション（または、クライアント）で動作するクライアントプログラム１００は、タスクのドライバである。すなわち、クライアントは、プリンタコントローラにおけるプロセスを制御する。フローは、機能ブロック１０４から開始し、その機能ブロック１０４において、クライアントプログラム１００は、まず最初に、しかるべきすべてのファイルを単一パックファイルに「パック」し、その単一パックファイルは、ファイルヘッダーを含み、そのファイルヘッダーは、プリンタコントローラ（すなわち、サーバプログラム）および信頼できるクライアントプログラムによってのみ認識される固有署名を含む。署名は、それを別のファイルヘッダーに簡単にコピーできないように、可変キー（例えば、ファイルサイズに基づいた）によって暗号化されてもよい。また、クライアントプログラム１００は、パックファイルの最後にチェックサムを付加する。したがって、固有署名およびチェックサムの両方を検査することによって、パックファイルの保全性を確認することができる。
【００１９】
現時点において、サーバプログラム１０２は、機能ブロック１０６に示されるように、「リッスン」モードであり、クライアントから入力するコマンドを待つ。そして、フローは、機能ブロック１０８へ進み、そこで、クライアントプログラム１００は、プリンタコントローラへの信頼性のある接続を確立するために、サーバプログラム１０２の機能ブロック１０６へのフローライン１１０に沿って、同期化（すなわち、「ｓｙｎｃｈ」としても示される）処理を開始することによって、接続機能を実行する。サーバプログラム１０２は、機能ブロック１０８へのフローライン１１２に沿って、ｓｙｎｃｈコマンドで応答する。サーバ側においては、２つのリスニングソケットが、オープンされ、一方は、ＴＣＰ／ＩＰトラフィックに使用され、他方は、ＩＰＸ／ＳＰＸトラフィックに使用される。
【００２０】
そして、クライアントプログラム１００におけるフローは、機能ブロック１１４へ進み、そこで、パックファイルが、ＳＥＮＤコマンドのシーケンスを通して、プリンタコントローラへ送信される。そして、パックファイルをプリンタコントローラへ転送するために、クライアントプログラム１００は、信号フローライン１１６によって示されるように、ＳＥＮＤコマンドシーケンスをサーバプログラム１０２に発する。サーバプログラム１０２におけるフローは、機能ブロック１１８へ進み、そこで、ＳＥＮＤコマンドは、受信され、ＳＥＮＤコマンドシーケンスに対応する受信されたファイルセグメントが、単一データファイルセットとして書き込まれる。
【００２１】
クライアントプログラム１００からのファイル転送が終了すると、クライアントプログラム１００におけるフローは、機能ブロック１２０へ進み、そこで、クライアントプログラム１００は、機能ブロック１２４への信号フローライン１２２によって示されるように、ＳＥＮＤＥＮＤコマンドをサーバプログラム１０２へ送信する。サーバプログラム１０２におけるフローは、機能ブロック１２４へ進み、そこで、最後のファイルセグメントが受信されると、サーバプログラム１０２は、データファイルを閉じる。サーバプログラム１０２が、ＳＥＮＤＥＮＤコマンドを受信すれば、ファイル全体を受信したことになる。
【００２２】
そして、クライアントプログラム１００におけるフローは、機能ブロック１２６へ進み、そこで、クライアントプログラム１００は、機能ブロック１３０への信号フローライン１２８によって示されるように、ＳＴＡＴＵＳコマンドを送信することによって、ファイル送信のステータスをサーバプログラム１０２に問い合わせる。サーバプログラム１０２におけるフローは、機能ブロック１３０へ進み、そこで、データファイルが、アンパックされ、ファイルが正しく送信されたかどうかを判定するために、すなわち、署名を認証すること、チェックサムを再計算することなどによって、「サニティ（ｓａｎｉｔｙ）」検査が、実行される。
【００２３】
サニティ検査が実行されているとき、サーバプログラム１０２におけるフローは、機能ブロック１３２へ進み、そこで、プリンタコントローラは、機能ブロック１３６への信号フローライン１３４によって示されるように、「処理中」返答信号をクライアントプログラム１００へ返送する。サーバプログラム１０２において、フローは、判断ブロック１３８へ進み、受信されたパックファイルがサニティ検査に合格したかどうかが判定される。合格していなければ、フローは、「Ｎ」経路から機能ブロック１４０へ進み、そこで、パックファイルが、削除される。そして、フローは、機能ブロック１１８の入力へループバックし、次に送信されるパックファイルを受信する。
【００２４】
また、サーバプログラム１０２は、パックファイルがサニティ検査に合格しなかったこと（すなわち、「破損」ファイルであること）を返答信号によってクライアントプログラム１００に通知する。クライアントプログラム１００におけるフローは、機能ブロック１３６へ進み、そこで、ステータス返答が、受信される。そして、クライアントプログラム１００は、判断ブロック１４２に示されるように、受信されたステータス返答信号を調べる。返答信号が、サーバプログラム１０２が「処理中」の状態であることを指示していれば、フローは、「Ｐ」経路から機能ブロック１２６の入力へ戻り、サーバプログラム１０２への問い合わせを続ける。あるいは、返答信号が、サニティ検査に「不合格」または「不可」であることを指示していれば、フローは、判断ブロック１４２の「Ｂ」経路から機能ブロック１１４の入力へ戻り、そこで、クライアントプログラム１００は、ＳＥＮＤコマンドシーケンスを通して、パックファイルをサーバプログラム１０２へ再送する。
【００２５】
サーバプログラム１０２によるサニティ検査が、「合格」であれば、クライアントプログラム１００の機能ブロック１３６への返答信号は、「合格」であることを指示し、フローは、判断ブロック１４２の「Ｏ」経路から機能ブロック１４４へ進み、そこで、クライアントプログラム１００は、ＡＣＴＩＯＮコマンドをサーバプログラム１０２へ送信し、ファイルセットをアンパックし、それに対応するディレクトリ構造を復元するようにサーバプログラム１０２に命令する（当然ながら、このディレクトリ構造の復元を容易にするために、プリンタコントローラは、例えば、ハードディスクドライブ、または、アンパックファイルを収容するのに十分な量のＲＡＭメモリのような可読記憶媒体を含む）。これは、クライアントプログラム１００の機能ブロック１４４からサーバプログラム１０２の機能ブロック１４８への信号フローライン１４６によって示される。ＡＣＴＩＯＮ命令は、さらに、「コントローラソフトウェア更新」アクション、「実行」アクション、または、「システム設定」アクションを含んでもよい。
【００２６】
サーバプログラム１０２におけるフローは、機能ブロック１４８へ進み、そこで、ＡＣＴＩＯＮ信号が、受信および処理される。サーバプログラム１０２におけるフローは、機能ブロック１５０へ進み、そこで、受信されたＡＣＴＩＯＮが、実行される。「コントローラソフトウェア更新」アクションは、既存のソフトウェアをアップグレードするために、プリンタコントローラにおいて、予め定義されたインストレーションプロセスを開始する。「実行」コマンドを用いてインストールされるソフトウェアの場合、パックファイルは、少なくとも１つの実行可能なファイルを含む。「実行」アクションは、ただ単に、アンパックファイルセットの１つまたは複数の実行可能なファイルを実行する原因となるだけであり、これは、単一モジュールにパッチをインストールするのに適している。「システム設定」アクションは、アンパックファイルセットに指定されるようにプリンタコントローラのいくつかのシステムパラメータを付加／変更するために、例えば、ＲｅｇＥｄｉｔに対応するシステムコマンドのような特殊なオペレーティングシステムプロセスを開始する。
【００２７】
オプションとして、クライアントプログラム１００は、サーバプログラム１０２におけるＡＣＴＩＯＮの実行状況を検査してもよい。したがって、フローは、クライアントプログラム１００の機能ブロック１５２へ進み、そこで、ＳＴＡＴＵＳ信号が、機能ブロック１５２から機能ブロック１５０への信号フローライン１５４によって示されるように、サーバプログラム１０２へ送信される。サーバプログラム１０２が、ＡＣＴＩＯＮ命令を実行中の状態であれば、フローは、機能ブロック１５６へ進み、そこで、サーバプログラム１０２は、クライアントプログラム１００のステータス機能ブロック１６０への返答信号フローライン１５８によって示されるように、「処理中」返答信号をクライアントプログラム１００へ送信する。印刷コントローラが更新中であれば、処理時間はより長くなるかもしれないことに注意されたい。
【００２８】
ＡＣＴＩＯＮ命令が完了すると、サーバプログラム１０２は、再起動される必要があるかもしれない。したがって、フローは、サーバプログラム１０２が特定のＡＣＴＩＯＮ命令に基づいて再起動される必要があるかどうかを判定するために、判断ブロック１６２へ進む。必要がなければ、フローは、判断ブロック１６２の「Ｎ」経路からサーバの継続端子１６４へ進み、そこから、再起動することなくＡＣＴＩＯＮを完了したことを指示するために、「ＯＫ」ステータスを信号ライン１６６を介してクライアントプログラム１００のステータス機能ブロック１６０に通知する。再起動が必要な場合、再起動処理中にクライアントプログラム１００への接続を終了するために、フローは、サーバプログラム１０２の判断ブロック１６２の「Ｙ」経路から機能ブロック１６８へ進む。そして、「リセット」信号が、ステータス機能ブロック１６０への信号フローライン１７０によって示されるように、サーバプログラム１０２からクライアントプログラム１００のステータス機能ブロック１６０へ送信される。そして、フローは、再起動端子１７２へ進み、そこで、ソフトウェア更新を実施するために、サーバプログラムが、再起動される。プリンタコントローラが、リスタートした後、クライアントとサーバとの間の接続は、自動的に復旧しないことに注意されたい。
【００２９】
そして、クライアントプログラム１００は、ステータス機能ブロック１６０内に受信された信号に対応して、適切な動作を実行する。したがって、フローは、判断ブロック１７４へ進み、そこで、クライアントプログラム１００は、サーバプログラム１０２から受信されたステータス信号を調べる。ステータスが、「処理中」であれば、フローは、「Ｐ」経路から機能ブロック１５２の入力へ戻り、サーバプログラム１０２への問い合わせを続行する。ステータスが、「ＯＫ」かまたは「リセット」のいずれかであれば、フローは、「Ｏ」経路からクライアントの継続端子１７６へ進む。
【００３０】
クライアントの継続端子１７６の詳細は、図１には示されない。クライアントプログラム１００は、同じ接続におけるさらなる転送、すなわち、機能ブロック１１４における新しいＳＥＮＤコマンドのシーケンスと対応する処理を開始することを選択してもよく、あるいは、サーバプログラム１０２（プリンタコントローラ）から切断され、かつ、別のプリンタコントローラへの新しい接続を開始することを選択してもよい。
【００３１】
サーバ側における継続端子１６４の詳細は、図１には示されない。サーバプログラム１０２（プリンタコントローラ）は、受信されたファイルを削除し、機能ブロック１１８に対応するような新しいＳＥＮＤコマンドのシーケンスを待つ状態に戻る。クライアントによって接続が終了させられると、コントローラは、機能ブロック１０２に対応するようなリスニングモードに戻り、新しい接続を待つ。
【００３２】
開示されたプロトコルは、ネットワーク化をサポートするオペレーティングシステムの上位で実行される特殊用途プリンタコントローラに対して良好に機能する。汎用ファイル転送プロトコル（例えば、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ））は、特殊なコマンドを発するという要求に適していない。Ｂｅｒｋｅｌｅｙソケットインタフェースが、クライアントプログラム１００およびサーバプログラム１０２の両方を実現するのに使用されてもよい。
【００３３】
ＳＴＡＴＵＳコマンドを除いて、その他のすべてのコマンドは、サーバからの明示的肯定応答型返答（ａｎ  ｅｘｐｌｉｃｉｔ  ａｃｋｎｏｗｌｅｄｇｍｅｎｔ−ｔｙｐｅ  ｏｆ  ｒｅｐｌｙ）を必要としない。下層トランスポートは、データの正しい配信を保証する。
【００３４】
ここで、図２を参照すると、開示されたプロトコルアーキテクチャを用いたクライアント／サーバシステムのブロック構成図が示される。クライアントコンピュータ２００が、この特定の実施形態においてはプリンタコントローラである第１のネットワーク周辺出力装置２０４と通信できる状態で、例えば、ＬＡＮ、ＷＡＮ、等のネットワーク２０２上に配置される。第１のネットワーク周辺出力装置２０４は、プリンタコントローラに限定されるのではなく、開示されたプロトコルアーキテクチャを実行するように適切に構成された、例えば、多機能出力装置（ファックス送受信、スキャンニング、印刷、等の能力を含む）等の様々なネットワーク型装置であってもよいことに注意されたい。クライアントコンピュータ２００は、クライアントプロトコルプログラム１００を含み、第１の周辺出力装置２０４は、サーバプログラム１０２を含む。クライアントプロトコルプログラムおよびサーバプロトコルプログラム（１００および１０２）の両方は、クライアントコンピュータ２００および第１の周辺出力装置２０４の一方または両方において、ファームウェア（例えば、ＥＥＰＲＯＭ）として実施されてもよい。
【００３５】
上述したように、第１の周辺出力装置２０４は、ネットワーク２０２を介して通信されるＴＣＰ／ＩＰトラフィックおよびＩＰＸ／ＳＰＸトラフィックの一方または両方に対応するために、２つのリスニングソケットをオープンする。したがって、クライアントコンピュータ２００が、比較的に局所的なネットワーク２０２上においてＩＰＸ／ＳＰＸトラフィックだけを送信したとしても、第１の周辺出力装置２０４は、更新されたソフトウェアを受信するために、クライアントコンピュータ２００と通信することができ、かつ、ソフトウェアのインストール（ｉｎｓｔａｌｌａｔｉｏｎ）を容易にするために、また、第１の周辺出力装置２０４における更新プロセスのステータスを確認するために、開示されたプロトコルを実行することができる。
【００３６】
ネットワークは、ＴＣＰ／ＩＰプロトコルスーツ（ｓｕｉｔｅ）を用いて通信を容易にする、例えば、インターネットのようなグローバル通信ネットワーク（ＧＣＮ）２０６を用いて、広い範囲に及んでもよいことがわかる。したがって、ＧＣＮ２０６上に配置されかつ開示されたサーバプロトコル１０２を実行する第２の周辺出力装置２０８が、同様に、ＧＣＮ２０６を介して通信されるＴＣＰ／ＩＰトラフィックおよびＩＰＸ／ＳＰＸトラフィックの一方または両方に対応するために、２つのリスニングソケットをオープンしてもよい。したがって、クライアントコンピュータ２００は、第２の周辺出力装置２０８へソフトウェアをアップロードしかつソフトウェアのインストール処理を監視するのに使用されてもよい。
【００３７】
本発明の別の態様は、上述した２つのステップからなるブート処理を簡略化することである。好ましい実施形態においては、本発明のコントローラは、不揮発性記憶ディスク、好ましくは、ＣＤ−ＲＯＭまたはＤＶＤ−ＲＯＭからのＯＳおよびコントローラコードを使用する。コントローラは、ハードディスクに記憶されていたユーザデータおよびシステムパラメータを保存するのに外部メモリカード（不揮発性フラッシュメモリ）を使用する。ＯＳおよびコントローラの静的オブジェクトコードは、可変のユーザデータおよびパラメータの媒体とは異なる媒体に存在するので、ＯＳおよびコントローラの更新（または、アップグレード）は、きわめて容易なことになる。アドミニストレータは、ただ単に、システムをシャットダウンし、ＣＤを新しいバージョンのＣＤに取り替え、システムを再起動するだけである。システムを再起動したとき、データおよびシステムパラメータは、変化していない。
【００３８】
好ましい実施形態においては、本発明によるブート可能なＣＤコントローラは、埋込みオペレーティングシステム、好ましくは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから市販されている「Ｗｉｎｄｏｗｓ  ＮＴ  Ｅｍｂｅｄｄｅｄ」を使用する。埋込みＯＳは、この種のインプリメンテーションにいくつかの利点を提供する。例えば、このＯＳは、キーボード、マウス、または、ＶＧＡモニタを使用しなくてもよい。また、選択可能なモジュールを、ハードディスク、ＲＯＭ、および、ＣＤ−ＲＯＭを含む様々な宛先媒体にインストールすることができる。埋込みＯＳは、システムシャットダウン、再起動、および、ブートアップ状態において、信頼性がある。
【００３９】
図３に示されるように、ＣＤ−ＲＯＭ３０６は、ハードディスク３１８のそれまでの機能に取って代わり、ＯＳおよびシステムサービスは、ＣＤ−ＲＯＭ３０６に残り、それによって、ＣＤ−ＲＯＭ３０６をブート可能にする。システムパラメータ３１４および印刷／ファックス／スキャンデータ３１６のための記憶は、フラッシュメモリカード（図示しない）に記憶される。この実施形態においては、ＰＣＭＣＩＡカードの２つのスロットが、使用され、一方は、システムに使用され、他方は、データに使用される。ハードディスクに予め記憶されているようなデータが、ここで、メモリカードパーティションに保存される。
【００４０】
図３に示される多機能周辺装置３０２は、複写機／印刷装置を備える。多機能周辺装置３０２は、その他のコンピュータ、プリンタ、クライアント、および、サーバのようなその他の装置とネットワークを介して通信するためのネットワークカード３０４を有する。ＣＰＵ３０８は、多機能周辺装置３０２の動作を制御し、また、様々な動作パラメータを記憶するためのシステムメモリを有する。フラッシュメモリカード、ＰＣＭＣＩＡカード、または、この分野において良く知られているその他の種類の不揮発性ＲＡＭであってもよいメモリカード（図示しない）が、記憶メモリコントロール３１２、メモリカードシステムパラメータ３１４、および、印刷／ファックス／スキャンデータ３１６を備える。
【００４１】
ＣＤ−ＲＯＭは、ブート可能なパーティション（ｂｏｏｔａｂｌｅ  ｐａｒｔｉｔｉｏｎ）、Ｗｉｎｄｏｗｓ  ＮＴ埋込みオペレーティングシステム（Ｗｉｎｄｏｗｓ  ＮＴ  Ｅｍｂｅｄｄｅｄ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍファイル、基本ＮＴサービス、および、デバイスドライバを含む。また、ＣＤ−ＲＯＭは、「印刷」機能、「ファックス」機能、「スキャン」機能、および、「ネットワーク」機能のためのコントローラサービスファイルをウェブページファイルとともに含む。
【００４２】
システムパラメータは、システムメモリカードに含まれる。これは、好ましくは、「ターゲットデザイナー（Ｔａｒｇｅｔ  Ｄｅｓｉｇｎｅｒ）」と呼ばれる埋込みＯＳツールを用いて実施される。当然ながら、これは、その他の類似するツールを用いて実施されてもよい。また、システムメモリカードは、埋込みＯＳからの「割込み禁止ページ（Ｄｉｓａｂｌｅ  Ｐａｇｅ）」ファイル（すなわち、メモリスワップファイル）およびＷｉｎｄｏｗｓ  ＮＴ動作設定値（ネットワークセットアップパラメータのような）を含む。システムメモリカードは、「プリントスプーラ（Ｐｒｉｎｔ  Ｓｐｏｏｌｅｒ）」一時ファイル記憶およびシステムイベントログのようなその他の可変データを保存してもよい。
【００４３】
データは、データメモリカードに含まれ、印刷ジョブデータを含んでもよい。この印刷ジョブデータは、ＮＴレジストリに予め記憶されている「ジョブレコード」の機能を実現するファイル形式である。また、データメモリカードは、ファックスジョブデータ、スキャンデータ、および、電子メールデータをあらゆるジョブログまたはメッセージログとともに含む。
【００４４】
「記憶容量制御（Ｓｔｏｒａｇｅ  Ｖｏｌｕｍｅ  Ｃｏｎｔｒｏｌ）」ユーティリティプログラムが、好ましくは、実行され、メモリカード記憶容量を監視する。このユーティリティプログラムは、最大データ限界値を超えるのを防止するために、パーティションの使用を制限するためのソフトウェア設定値を含む。
【００４５】
ここで説明したように、本発明のブート可能なＣＤコントローラは、ハードディスクコントローラモデルの段階的廃止および廃絶を含む多くの利点を提供し、その結果として、ハードウェアの大きさおよび配信のコストを減少させる。また、記憶媒体の信頼性が、揮発性ハードディスクをＣＤ−ＲＯＭと取り替えることによって改善される。また、ブート可能なＣＤは、ソフトウェアバージョンのアップグレード、および、ＯＳのトラブルシューティングおよび診断のための時間および労力を節減する。また、本発明は、読み出し専用媒体を使用することによって、ウィルスからの保護を提供する。
【００４６】
上述したように、本発明は、従来型システムに関連する多くの問題を解決する。しかしながら、この分野に精通する者は、添付の特許請求の範囲に記載される本発明の原理および範囲内において、本発明の特徴を説明するためにここで説明されかつ図示された構成要素の細部、材料、および、配置に様々な変更を施すことができることがわかる。
【図面の簡単な説明】
【００４７】
【図１】本発明によるプロトコルのクライアント／サーバプロトコル交換フロー図である。
【図２】開示されたプロトコルアーキテクチャを用いたクライアント／サーバシステムのブロック構成図である。
【図３】本発明によるブート可能なＣＤを示す図である。
【符号の説明】
【００４８】
１００…クライアントプログラム、１０２…サーバプログラム、２００…クライアント、２０４…プリンタコントローラ、３０２…複写機／印刷装置、３０４…ネットワークカード、３０６…ＣＤ−ＲＯＭ、３０８…ＣＰＵ、３１０…システムメモリ、３１２…記憶メモリコントロール、３１４…メモリカードシステムパラメータ、３１６…印刷／ファックス／スキャンデータ、３１８…ハードディスク。
【図１】
2005527908.tif 000003
【図２】
2005527908.tif 000004
【図３】
2005527908.tif 000005
【国際調査報告】
2005527908.tif 000006