(57)【特許請求の範囲】
【請求項１】
ネットワーク上のクライアントからの要求に応じて印刷サービスを提供するプリンタとしての機能を有するデバイスユニットと、前記ネットワークとの間を中継するためのネットワーク型プラグアンドプレイに対応したネットワーク中継装置であって、
マークアップ言語を用いて印刷対象画像が記述された印刷要求メッセージをクライアントから受け取ったときに、前記印刷要求メッセージをデバイスユニット用データに変換して前記デバイスユニットに供給するデータ変換モジュールを備え、
ＵＳＢホストとして機能するプリンタであるデバイスユニットが前記ネットワーク中継装置に接続されている場合には、前記ネットワーク中継装置はＵＳＢ規格上の静止画取り込み装置として機能して、前記デバイスユニットにデジタルカメラが接続されているものと認識させ、
前記データ変換モジュールは、前記印刷要求メッセージをクライアントから受け取ったときに、前記デバイスユニット用データとして、静止画取り込み装置からプリンタに送信するための汎用規格に従ったプリンタ用データを作成する、ネットワーク中継装置。
【請求項２】
請求項１記載のネットワーク中継装置であって、さらに、
ＵＳＢデバイスとして機能する第１種のプリンタが接続されるＵＳＢホスト端子と、ＵＳＢホストとして機能する第２種のプリンタが接続されるＵＳＢデバイス端子と、を備え、
前記データ変換モジュールは、
（ｉ）前記ＵＳＢホスト端子とＵＳＢデバイス端子のいずれにプリンタが接続されているかに応じて、前記第１種と第２種のプリンタのいずれが前記ネットワーク中継装置に接続されているかを判別し、
（ｉｉ）前記ネットワーク中継装置に前記第１種プリンタが接続されているときには第１の汎用規格に従ったプリンタ用データを作成し、前記第２種プリンタが接続されているときには前記第１の汎用規格とは異なる第２の汎用規格に従ったプリンタ用データを作成する、ネットワーク中継装置。
【請求項３】
請求項２記載のネットワーク中継装置であって、
前記第１の汎用規格に従ったプリンタ用データは、ＲＧＢデータを含み、
前記第２の汎用規格に従ったプリンタ用データは、ＪＰＥＧデータを含む、ネットワーク中継装置。
【請求項４】
請求項１ないし３のいずれか一項に記載のネットワーク中継装置であって、
前記データ変換モジュールを含み、前記デバイスユニットとの間で情報を交換することによって前記デバイスユニットを動作させるデバイス制御部と、
前記ネットワークと前記デバイス制御部との間に接続され、メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部と、
を備え、
前記ネットワークプロトコル制御部は、前記クライアントから受信した前記メッセージボディの内容を解釈すること無く前記ネットワーク型プラグアンドプレイのプロトコルに従って前記メッセージヘッダを解釈するとともに、前記ネットワーク型プラグアンドプレイのプロトコルとは異なる通信プロトコルに従って前記メッセージボディを前記デバイス制御部に送信し、
前記デバイス制御部は、前記ネットワークプロトコル制御部から受信した前記メッセージボディの内容を解釈するとともに、前記解釈の結果に応じて前記サービスデバイスにサービスを実行させる、ネットワーク中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワーク型プラグアンドプレイに対応したネットワーク中継装置の制御技術に関する。
【背景技術】
【０００２】
プラグアンドプレイは、よく知られているように、コンピュータの起動後に、周辺装置を任意のタイミングでコンピュータに接続したり、コンピュータから切断したりすることができる技術である。近年では、プラグアンドプレイ技術をネットワークに適用したものとして、ユニバーサルプラグアンドプレイ（以下、「ＵＰｎＰ」と呼ぶ。ＵＰｎＰは UPnP Implementers Corporationの商標）が開発されてきている。ＵＰｎＰを用いると、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることができる。本明細書では、ＵＰｎＰのように、ネットワークにおいてプラグアンドプレイを実現するアーキテクチャを、「ネットワーク型プラグアンドプレイ」と呼ぶ。
【０００３】
【特許文献１】特開２００１−２９０７２４
【０００４】
ＵＰｎＰ対応のネットワーク装置は、種々のサービスデバイスとして機能することが可能である。ここで、「サービスデバイス」とは、外部からの要求に応じてサービスを提供するデバイスを意味している。サービスデバイスは、プリンタや、スキャナ、ファクシミリ、コピー機、記憶装置、カメラ、時計などの種々の装置（「デバイスユニット」と呼ぶ）として実現可能である。また、１つのデバイスユニットで複数のサービスデバイスの機能を実現することも可能である。
【０００５】
ところで、ＵＰｎＰ非対応のデバイスユニットも、ＵＰｎＰプロトコルに対応したネットワーク中継装置を用いることによって、ＵＰｎＰプロトコル対応のデバイスとして利用したいという要望がある。しかし、従来は、このような中継装置をどのように実現すべきかについては検討が十分になされていないのが実情であった。特に、中継装置には多様な能力を有するデバイスユニットが接続される可能性があり、クライアントから印刷要求メッセージを受けたときに、デバイスユニットをどのように動作させるかについては十分に工夫されていないのが実情であった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、ネットワーク型プラグアンドプレイに対応したネットワークにおいて、クライアントから供給された印刷要求メッセージをデバイスユニットに適切に中継するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の装置は、ネットワーク上のクライアントからの要求に応じて印刷サービスを提供するプリンタとしての機能を有するデバイスユニットと、前記ネットワークとの間を中継するためのネットワーク型プラグアンドプレイに対応したネットワーク中継装置であって、
マークアップ言語を用いて印刷対象画像が記述された印刷要求メッセージをクライアントから受け取ったときに、前記印刷要求メッセージをデバイスユニット用データに変換して前記デバイスユニットに供給するデータ変換モジュールを備え、
ＵＳＢホストとして機能するプリンタであるデバイスユニットが前記ネットワーク中継装置に接続されている場合には、前記ネットワーク中継装置はＵＳＢ規格上の静止画取り込み装置として機能して、前記デバイスユニットにデジタルカメラが接続されているものと認識させ、
前記データ変換モジュールは、前記印刷要求メッセージをクライアントから受け取ったときに、前記デバイスユニット用データとして、静止画取り込み装置からプリンタに送信するための汎用規格に従ったプリンタ用データを作成することを特徴とする。
【０００８】
この中継装置によれば、印刷要求メッセージを、中継装置に現実に接続されているデバイスユニットが受入可能な汎用規格に従ったプリンタ用データに変換してデバイスユニットに供給するので、印刷要求メッセージをデバイスユニットに適切に中継することが可能である。また、プリンタ用データは汎用規格に従っているので、個々のプリンタ固有のフォーマットのデータを作成するように中継装置を構成する必要が無く、中継装置の実装が容易である。また、ＵＳＢホストとして機能するプリンタであるデバイスユニットがネットワーク中継装置に接続されている場合には、ネットワーク中継装置はＵＳＢ規格上の静止画取り込み装置として機能して、デバイスユニットにデジタルカメラが接続されているものと認識させるので、このデバイスユニットにこの認識に応じた印刷処理を実行させることができる。すなわち、静止画取り込み装置からプリンタに送信するための汎用規格に従ったプリンタ用データをデバイスユニットに供給することによって、プリンタとして機能するデバイスユニットに印刷を実行させることができる。
【００１１】
上記ネットワーク中継装置は、さらに、
ＵＳＢデバイスとして機能する第１種のプリンタが接続されるＵＳＢホスト端子と、ＵＳＢホストとして機能する第２種のプリンタが接続されるＵＳＢデバイス端子と、を備え、
前記データ変換モジュールは、
（ｉ）前記ＵＳＢホスト端子とＵＳＢデバイス端子のいずれにプリンタが接続されているかに応じて、前記第１種と第２種のプリンタのいずれが前記ネットワーク中継装置に接続されているかを判別し、
（ｉｉ）前記ネットワーク中継装置に前記第１種プリンタが接続されているときには第１の汎用規格に従ったプリンタ用データを作成し、前記第２種プリンタが接続されているときには前記第１の汎用規格とは異なる第２の汎用規格に従ったプリンタ用データを作成するように構成されていても良い。
【００１２】
この構成によれば、プリンタが接続されているＵＳＢ端子に応じて、プリンタの種別を判別することができ、また、プリンタの種別に適合した汎用規格を用いてプリンタ用データを作成することが可能である。
【００１３】
なお、前記第１の汎用規格に従ったプリンタ用データは、ＲＧＢデータを含み、
前記第２の汎用規格に従ったプリンタ用データは、ＪＰＥＧデータを含むものとしてもよい。
【００１５】
上記ネットワーク中継装置は、
前記データ変換モジュールを含み、前記デバイスユニットとの間で情報を交換することによって前記デバイスユニットを動作させるデバイス制御部と、
前記ネットワークと前記デバイス制御部との間に接続され、メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部と、
を備え、
前記ネットワークプロトコル制御部は、前記クライアントから受信した前記メッセージボディの内容を解釈すること無く前記ネットワーク型プラグアンドプレイのプロトコルに従って前記メッセージヘッダを解釈するとともに、前記ネットワーク型プラグアンドプレイのプロトコルとは異なる通信プロトコルに従って前記メッセージボディを前記デバイス制御部に送信し、
前記デバイス制御部は、前記ネットワークプロトコル制御部から受信した前記メッセージボディの内容を解釈するとともに、前記解釈の結果に応じて前記サービスデバイスにサービスを実行させるように構成されていても良い。
【００１６】
この構成によれば、ネットワークプロトコル制御部がメッセージボディの内容を解釈すること無くヘッダを解釈してメッセージボディをデバイス制御部に送信するので、ネットワークプロトコル制御部における制御が、デバイスユニットに実装されているサービスデバイスの種類や数に依存しない。この結果、ネットワークプロトコル制御部における制御を単純化することができる。
【００１７】
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク装置、ネットワークプロトコル制御装置、それらの装置の制御方法及び制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の実施の形態を以下の順序で説明する。
A．用語の説明：
B．システムの概要：
C．プリンタ用データ変換モジュールの構成と処理シーケンス：
D．変形例：
【００１９】
A．用語の説明：
以下の説明で使用する用語の意味は以下の通りである。
・ＤＨＣＰ（Dynamic Host Configuration Protocol）：ダイナミックホストコンフィギュレーションプロトコル。動的にＩＰアドレスを割り当てるプロトコル。
・ＧＥＮＡ（General Event Notification Architecture）：一般イベント通知アーキテクチャ。ＵＰｎＰアーキテクチャにおいてイベントを発行する際に使用される。
・ＨＴＴＰ（HyperText Transfer Protocol）：ハイパーテキスト転送プロトコル。
・ＨＴＴＰＭＵ（HTTP Multicast over UDP）：ＵＤＰ（User Datagram Protocol）を用いたＨＴＴＰマルチキャスト。
・ＨＴＴＰＵ（HTTP(unicast) over UDP）：ＵＤＰを用いたＨＴＴＰユニキャスト。
・ＭＦＰ（Multi Function Peripheral）：複数のデバイスの機能を有する複合周辺装置。
・ＳＯＡＰ（Simple Object Access Protocol）：シンプルオブジェクトアクセスプロトコル。ＵＰｎＰアーキテクチャにおいて、ＲＰＣ（リモートプロシージャコール）によるアクションの要求とレスポンスとに使用される。
・ＳＳＤＰ（Simple Service Discovery Protocol）：シンプルサービス検出プロトコル。ＵＰｎＰアーキテクチャにおいて、サービスのディスカバリ（検出）に使用される。
・ＵＰｎＰ（Universal Plug and Play）：ユニバーサルプラグアンドプレイ（ＵＰｎＰは UPnP Implementers Corporationの商標）。
・ＵＲＩ（Uniform Resource Identifier）：ユニフォームリソース識別子。ＵＲＬ（Uniform Resouce Locator）の上位概念であり、リソースの固有の位置を示す識別子。
・ＸＨＴＭＬ（eXtensible HyperText Markup Language）：拡張ハイパーテキストマークアップ言語。ＨＴＭＬと互換性を有する文書記述言語の一種であり、ＸＭＬの実装の一形態である。後述するＸＨＴＭＬ−ｐｒｉｎｔは、ＸＨＴＭＬ文書を印刷するための仕様である。
・ＸＭＬ（eXtensible Markup Language）：拡張マークアップ言語。
【００２０】
なお、ＵＰｎＰでは上述した多数のプロトコルが使用されるが、以下ではこれらを総称して「ＵＰｎＰプロトコル」と呼ぶ。
【００２１】
B．システムの概要：
図１は、本発明の実施例を適用するネットワークシステムの構成を示す概念図である。このネットワークシステムは、パーソナルコンピュータ１００と、デジタルカメラ１１０と、デジタルＴＶセット１２０と、画像サーバ１３０と、中継ユニット６００とがＬＡＮを介して相互に接続された構成を有している。中継ユニット６００は、第１種プリンタ８１０と第２種プリンタ８２０を選択的に接続可能である。第１種プリンタ８１０はＵＳＢデバイスとして機能するプリンタであり、第２種プリンタ８２０はＵＳＢホストとして機能するプリンタである。ＵＳＢ端子を示す矩形内に記載された文字「Ｈ」はホスト端子を意味し、「Ｄ」はデバイス端子を意味する。これらのプリンタ８１０，８２０自体はＵＰｎＰプロトコルに非対応であるが、中継ユニット６００がＵＰｎＰプロトコルに従った処理を実行する。従って、中継ユニット６００とプリンタ８１０又は８２０とで構成される装置９００は、ＵＰｎＰ対応のネットワーク装置として機能することができる。ＬＡＮは、ＩＥＥＥ８０２．３のような有線ネットワークでも、ＩＥＥＥ８０２．１１ｂ／ｇ／ａなどの無線ネットワークでもよい。デジタルカメラ１１０と、デジタルＴＶセット１２０とは、ＵＰｎＰ対応のネットワーク装置である。デジタルカメラ１１０とＴＶセット１２０は、ＵＰｎＰアーキテクチャにおけるコントロールポイント１１０Ｃ，１２０Ｃを備えている。ＵＰｎＰアーキテクチャ及びコントロールポイントについては後述する。パーソナルコンピュータ１００と画像サーバ１３０もこのネットワークシステムの構成要素の１つであるが、ＵＰｎＰには対応していない。
【００２２】
パーソナルコンピュータ１００は、プリンタドライバ１００Ｄを用いて画像の印刷データを作成し、ＬＡＮを介してこの印刷データを中継ユニット６００を介してプリンタ８１０又は８２０に転送して印刷を実行させる機能を有している。この印刷処理の際には、プリンタ８１０又は８２０は通常のネットワークプリンタとして機能する。一方、コントロールポイント（例えば１１０Ｃ）からの要求に従って印刷を行う場合には、プリンタ８１０又は８２０と中継ユニット６００とで構成されるネットワーク装置９００がＵＰｎＰ対応のプリンタデバイスとして機能する。
【００２３】
中継ユニットは、ＭＦＰサーバ３００と、ＭＦＰデバイス制御ユニット７００とを有している。ＭＦＰサーバ３００は、ＬＡＮ上の他の装置とＭＦＰデバイス制御ユニット７００との間で交換されるメッセージを仲介するネットワークプロトコル制御部３０２としての機能を有している。後述するように、ＭＦＰサーバ３００は、典型的な場合において、メッセージの転送の際にメッセージヘッダに関してＵＰｎＰのプロトコルを解釈するが、メッセージボディの解釈や処理は行わない。
【００２４】
ＭＦＰデバイス制御ユニット７００は、クライアントからの要求に従ってプリンタ８１０又は８２０を制御するデバイス制御部７０２としての機能を有している。
【００２５】
ＭＦＰサーバ３００とＭＦＰデバイス制御ユニット７００との間は、ＵＳＢ（Universal Serial Bus）で接続されており、また、ＭＦＰデバイス制御ユニット７００とプリンタ８１０又は８２０との間もＵＳＢで接続されている。但し、ＵＳＢ以外の他の各種の物理的インタフェースを利用することも可能である。また、ＭＦＰサーバ３００とＭＦＰデバイス制御ユニット７００との間は、ＵＰｎＰプロトコルとは異なる通信プロトコルで接続することが可能である。
【００２６】
プリンタ８１０又は８２０は、プリンタ以外のサービスを提供する複合機として構成することも可能である。一般に、中継ユニット６００に接続されるユニットを「デバイスユニット」と呼ぶ。デバイスユニットは、少なくとも１つのサービスデバイスを有していれば良く、一般には、Ｎ個（Ｎは１以上の整数）のサービスデバイスを有するものとして構成される。
【００２７】
コントロールポイント１１０Ｃ，１２０ＣがＵＰｎＰプロトコルに従って印刷要求メッセージ（例えばXHTML-printデータ）をネットワーク装置９００に送信すると、ＭＦＰデバイス制御ユニット７００がこの印刷要求メッセージを解釈し、現実に接続されているプリンタが適合する汎用規格に従ったプリンタ用データに変換して、プリンタ８１０又は８２０に送信する。プリンタ用データは、ＲＧＢデータやＪＰＥＧデータのような画像表示に用いられるデータを含んでいることが好ましい。プリンタ８１０又は８２０は、受け取ったプリンタ用データに対して色変換やハーフトーン処理を実行して印刷データを作成し、この印刷データに従って印刷を実行する。「印刷データ」とは、プリンタで使用される各インク毎にインクドットの形成状態を表すデータであり、画像表示に用いられるデータ（ＲＧＢデータやＪＰＥＧデータ）とは明確に区別される。なお、印刷要求メッセージとしては、XHTML-printデータ以外のフォーマットのメッセージを使用するようにしてもよい。一般には、マークアップ言語を用いて印刷対象画像が記述された印刷要求メッセージを使用することが可能である。
【００２８】
ＵＰｎＰは、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることを実現するアーキテクチャである。ＵＰｎＰネットワークは、コントロールポイント１１０Ｃ，１２０Ｃと、サービスデバイス８１０又は８２０とで構成される。ここで、「サービスデバイス」とは、サービスを提供する装置を意味している。本明細書においては、特に断らない限り、「デバイス」と「サービスデバイス」は同義語として使用されている。「コントロールポイント」は、ネットワーク上の他のデバイスを検出したり制御したりするコントローラを意味しており、サービスデバイスに対するクライアントとして機能する。ＵＰｎＰ対応のネットワーク装置が有する各種の機能については後述する。
【００２９】
図２は、中継ユニット６００内のＭＦＰサーバ３００とＭＦＰデバイス制御ユニット７００の内部構成を示すブロック図である。ＭＦＰサーバ３００は、中央制御部（ＣＰＵ）３１０と、ＲＡＭ３２０と、ＲＯＭ３３０と、ネットワーク制御部３４０と、ＵＳＢホスト制御部３５０とを有している。ネットワーク制御部３４０は、コネクタ３４２を介して有線ネットワークに接続される。ＵＳＢホスト制御部３５０は、ルートハブ３５２を有しており、ルートハブ３５２には２つのＵＳＢコネクタ３５４，３５６が設けられている。第１のＵＳＢコネクタ３５４は、ＵＳＢケーブルを介してＭＦＰデバイス制御ユニット７００のＵＳＢコネクタ４６２に接続されている。第２のＵＳＢコネクタ３５６には、追加のデバイス（例えば無線ＬＡＮネットワークへ通信するための無線通信回路）を接続可能である。
【００３０】
ＭＦＰデバイス制御ユニット７００は、中央制御部（ＣＰＵ）４１０と、ＲＡＭ４２０と、ＲＯＭ４３０と、第１のＵＳＢデバイス制御部４６０と、ＵＳＢホスト制御部５１０と、第２のＵＳＢデバイス制御部５２０とを有している。第１のＵＳＢデバイス制御部４６０は、ＵＳＢコネクタ４６２を介してＭＦＰサーバ３００のＵＳＢホスト制御部３５０に接続されている。ＵＳＢホスト制御部５１０は、ルートハブ５１２を有しており、ルートハブ５１２にはＵＳＢコネクタ５１４（ＵＳＢホスト端子）が設けられている。このコネクタ５１４には、第１種プリンタ８１０がが接続可能である。第２のＵＳＢデバイス制御部５２０はコネクタ５２４（ＵＳＢデバイス端子）を有しており、このコネクタ５２４には第２種プリンタ８２０が接続可能である。なお、中継ユニット６００は、第１種プリンタ８１０と第２種プリンタ８２０のいずれか一方のみが選択的に接続できるようにするための機構（例えば移動可能な端子カバー）を有することが好ましい。中継ユニット６００とデバイスユニット８１０又は８２０の間は、複数の用途のために複数の論理チャンネルで接続されることが好ましい。但し、論理チャンネルの詳細については説明を省略する。
【００３１】
ＭＦＰサーバ３００の中央制御部３１０とネットワーク制御部３４０とＵＳＢホスト制御部３５０は、図１におけるネットワークプロトコル制御部３０２としての機能を実現する。より具体的には、ネットワーク制御部３４０は、各種のネットワークプロトコルに従ってメッセージの送受信を行う。また、中央制御部３１０は、ＵＰｎＰのプロトコルを解釈して転送先を決定する。ＵＳＢホスト制御部３５０は、ＭＦＰデバイス制御ユニット７００との間でメッセージを転送する。これらの制御部３１０，３４０，３５０は、メッセージボディの解釈や処理は行わずにメッセージを転送している。
【００３２】
ＭＦＰデバイス制御ユニット７００のＵＳＢデバイス制御部４６０は、ＵＳＢの転送プロトコルに従ってメッセージの送受信を行う。また、中央制御部４１０は、ＭＦＰサーバ３００を介して転送されたメッセージの内容を解釈し、メッセージの内容に応じた処理を実行して制御データを作成し、その制御データをデバイスユニット８１０又は８２０に転送するデバイス制御部７０２（図１）としての機能を実現する。デバイスユニット８１０，８２０の動作は、この制御データに従って制御される。なお、ＭＦＰサーバ３００とＭＦＰデバイス制御ユニット７００を分離せずに、１つのユニットによってＭＦＰサーバ３００とＭＦＰデバイス制御ユニット７００の両方の機能を実現するようにしてもよい。
【００３３】
ところで、ＵＰｎＰデバイスアーキテクチャは、ＨＴＴＰＭＵや、ＨＴＴＰＵ，ＳＯＡＰ／ＨＴＴＰ，ＨＴＴＰなどの各種のプロトコルに従って構成されている。ＵＰｎＰは、これらのプロトコルを用いて、以下のような各種の処理を実現している。
【００３４】
（１）アドレッシング：
ＵＰｎＰデバイス（以下、単に「デバイス」と呼ぶ）がネットワークに接続すると、アドレッシングによってネットワークアドレス（ＩＰアドレス）を取得する。アドレッシングには、ＤＨＣＰサーバまたはAuto-IPが利用される。ネットワークにＤＨＣＰサーバが設けられている場合には、デバイスはＤＨＣＰサーバによって割り当てられるＩＰアドレスを使用する。ＤＨＣＰサーバが無い場合には、Auto-IPと呼ばれる自動ＩＰアドレッシング機能を用いて、デバイスが自分のアドレスを決定する。なお、本実施例では、中継ユニット６００とデバイスユニット８１０又は８２０とで構成されるネットワーク装置９００に対して１つのＩＰアドレスのみが割り当てられ、この装置９００全体が単一のネットワーク装置として認識される。
【００３５】
（２）ディスカバリ（検出）：
ディスカバリは、コントロールポイントが、デバイスがどこにいるかを見つけ出す処理である。ディスカバリは、コントロールポイントがディスカバリメッセージをマルチキャストすることによって実現することができ、あるいは、デバイスがネットワークに参加したときに、その旨をコントロールポイントにアドバタイズすることによっても実現できる。ディスカバリは、ＨＴＴＰＭＵ／ＳＳＤＰやＨＴＴＰＵ／ＳＳＤＰを用いて行われる。ディスカバリの結果、コントロールポイントとデバイスがピアツーピアで処理を進められるようになる。
【００３６】
（３）ディスクリプション：
デバイスの構成の詳細は、デバイスディスクリプションとしてＸＭＬで記述されている。また、デバイスのサービスの詳細は、サービスディスクリプションとしてＸＭＬで記述されている。これらのディスクリプションは、デバイスによって所有されており、コントロールポイントに提供される。コントロールポイントは、これらのディスクリプションを参照することによって、デバイスやサービスの詳細を知ることができる。
【００３７】
（４）コントロール：
コントロールは、コントロールポイントが、アクション要求を含む制御メッセージをデバイスに転送して、デバイスの制御を行う処理である。コントロールは、ＨＴＴＰ／ＳＯＡＰを用いて行われる。
【００３８】
（５）イベント：
所定のイベントが発生すると、デバイス内のサービスが、コントロールポイントにイベントの発生を通知する。イベント発生の通知を受けるコントロールポイントは、そのサービスに「サブスクライブ（購読）」する。イベントは、サブスクライブしているコントロールポイントに転送される。イベントの通知は、ＨＴＴＰ／ＧＥＮＡを用いて行われる。
【００３９】
（６）プレゼンテーション：
プレゼンテーションは、デバイスディスクリプションに登録されているプレゼンテーション用のＵＲＬからコントロールポイントがＨＴＭＬで記述されたプレゼンテーション用ページを取得する処理である。このプレゼンテーションによって、例えばコントロールポイントがデバイスの各種の状態を表示することができる。
【００４０】
なお、本発明はＵＰｎＰの将来のバージョンにも適用可能である。また、ネットワーク型プラグアンドプレイとして、アドレッシング（自動的なＩＰアドレス決定）と、デバイスのディスカバリにより、任意のコントロールポイントとデバイスとがピアツーピアで通信が可能で、コントロールポイントとデバイスがメッセージの交換を行うアーキテクチャであれば、ＵＰｎＰ以外のネットワーク型プラグアンドプレイ仕様にも本発明を適用することが可能である。
【００４１】
図３は、ＵＰｎＰアーキテクチャを利用した処理の典型例を示すシーケンス図である。ここでは、コントロールポイント１１０Ｃと、ＭＦＰサーバ３００と、ＭＦＰデバイス制御ユニット７００の間でメッセージが転送される場合を示している。実際には、ＭＦＰデバイス制御ユニット７００とデバイスユニット８１０又は８２０との間において、制御データやステータス情報が交換されているが、図３では便宜上、図示が省略されている。ステップ[1]では、コントロールポイント１１０ＣがＨＴＴＰのリクエストメッセージＦ１をＭＦＰサーバ３００に転送する。メッセージＦ１のヘッダには、リクエスト命令のメソッド（ＰＯＳＴやＧＥＴなど）と、ネットワーク装置９００（図１）内の宛先を示すＵＲＩと、ネットワーク装置９００のホスト名（この例ではＩＰアドレス”169.254.100.100”）とが記述されている。なお、ＩＰアドレスは、ネットワーク装置９００に１つだけが割り当てられるので、このＩＰアドレスは、ＭＦＰサーバ３００のＩＰアドレス、又は、ＭＦＰデバイス制御ユニット７００のＩＰアドレス、又は、デバイスユニット８１０又は８２０のＩＰアドレスと考えることも可能である。
【００４２】
ステップ[2]では、ＭＦＰサーバ３００が、リクエストメッセージＦ１を解析する。ここで解析（解釈）されるのは、メッセージＦ１のヘッダ部分だけであり、送信データ（すなわちメッセージボディ）の内容の解釈は行わない。より具体的には、ステップ[2]において、メッセージＦ１のＵＲＩが解析され、ＭＦＰデバイス制御ユニット７００に対してどの論理チャンネルを用いてメッセージを転送すべきかが判定される。なお、メッセージＦ１には、実質的なメッセージボディが無いものも存在する。
【００４３】
ステップ[3]では、ＭＦＰサーバ３００が、ＵＲＩとメッセージボディ（存在する場合）とを含むメッセージＦ２を、ＵＳＢでＭＦＰデバイス制御ユニット７００に転送する。この転送の際には、ＵＲＩに応じて選択された論理チャンネルが利用される。
【００４４】
ステップ[4]では、ＭＦＰデバイス制御ユニット７００が、受信したメッセージＦ２内のＵＲＩ及びメッセージボディ（存在する場合）に応じて処理を実行する。具体的には、例えば、ＭＦＰデバイス制御ユニット７００が、メッセージボディの内容を解釈してデバイスユニット８１０又は８２０の制御データを作成し、この制御データをデバイスユニット８１０又は８２０に転送して動作させる。ステップ[5]では、ＭＦＰデバイス制御ユニット７００が、レスポンスデータを含むメッセージＲ１をＵＳＢでＭＦＰサーバ３００に転送する。ステップ[6]では、ＭＦＰサーバ３００が送信データにＨＴＴＰヘッダを付加する。このＨＴＴＰヘッダは、ＨＴＴＰリクエストの処理結果を示すステータスコードを含んでいる。例えば、処理結果がＯＫであればステータスコードが”２００”に設定され、エラーであれば”５００”に設定される。ステップ[7]では、こうして作成されたＨＴＴＰのレスポンスメッセージＲ２がＭＦＰサーバ３００からコントロールポイント１１０Ｃに転送される。
【００４５】
このように、本実施例では、ＭＦＰサーバ３００は、コントロールポイントから受信したリクエストメッセージのうちで、ヘッダの解析（解釈）は行うが、メッセージボディの内容の解釈は行わず、メッセージボディはＭＦＰデバイス制御ユニット７００によって処理される。この構成には以下のような利点がある。第１の利点は、ＭＦＰサーバ３００が、デバイスユニットのデバイス構成とサービスの内容を把握する必要が無く、任意の構成を有するデバイスユニット宛に送られたメッセージを転送するためのネットワークプロトコル制御部として機能することができる点である。第２の利点は、デバイスユニットのデバイス構成やサービスの内容が変更されても、ＭＦＰサーバ３００の構成や機能を変更する必要が無い点である。第３の利点は、ＭＦＰサーバ３００にメッセージボディの内容の解釈を行う解釈部（パーサ）を実装する必要が無いので、ＭＦＰサーバ３００の構成が単純で済む点である。
【００４６】
C．プリンタ用データ変換モジュールの構成と処理シーケンス：
図４は、デバイス制御部７０２内に実装される２つのデータ変換モジュール７１０，７２０の構成を示す説明図である。図３（Ａ）に示す第１のデータ変換モジュール７１０は第１種プリンタ８１０用であり、図３（Ｂ）に示す第２のデータ変換モジュール７２０は第２種プリンタ８２０用である。なお、２つのモジュール７１０，７２０の機能を１つのモジュールで実現するようにしてもよい。
【００４７】
第１のデータ変換モジュール７１０は、印刷要求メッセージ受信部７１２と、ＲＧＢデータ生成部７１４と、プリンタ用ＲＧＢデータエンコーダ７１６と、データ送信部７１８とを有している。印刷要求メッセージ受信部７１２は、クライアント（すなわちコントロールポイント）から供給されたXHTML-printデータを受信する。ＲＧＢデータ生成部７１４は、このXHTML-printデータを解析し、印刷対象画像のレイアウトを行い、印刷対象画像をページ毎に表すＲＧＢデータを生成する。なお、XHTML-printデータ内で画像データが参照されている場合には、ＲＧＢデータ生成部７１４がその参照先から画像データを取得する処理も実行する。エンコーダ７１６は、このＲＧＢデータを、第１種プリンタ８１０に適したフォーマットのプリンタ用ＲＧＢデータに変換する。なお、第１種プリンタ８１０としては、汎用規格であるＥＳＣ／Ｐ−Ｒ規格に適合したプリンタを使用することができる。すなわち、ＥＳＣ／Ｐ−Ｒ規格に適合したプリンタは、ＲＧＢデータを含むプリンタ用データ（ＥＳＣ／Ｐ−Ｒデータ）を受信し、これに応じて印刷を実行することが可能である。
【００４８】
第２のデータ変換モジュール７２０は、印刷要求メッセージ受信部７２２と、ＲＧＢデータ生成部７２４と、プリンタ用ＪＰＥＧデータエンコーダ７２６と、データ送信部７２８とを有している。なお、印刷要求メッセージ受信部７２２とＲＧＢデータ生成部７２４は、第１のデータ変換モジュール７１０におけるものと同じものを使用することができる。エンコーダ７２６は、ＲＧＢデータを、第２種プリンタ８２０に適したフォーマットのプリンタ用ＪＰＥＧデータに変換する。なお、第２種プリンタ８２０としては、汎用規格であるPictBridge規格（PictBridgeはカメラ映像機器工業会（ＣＩＰＡ）の商標）に適合したプリンタを使用することができる。すなわち、PictBridge規格に適合したプリンタは、ＪＰＥＧデータを含むプリンタ用データを受信し、これに応じて印刷を実行することが可能である。
【００４９】
図５は、中継ユニット６００へのプリンタの接続と印刷実行のシーケンスを示すシーケンス図である。
【００５０】
ステップ[1]では、プリンタ８１０又は８２０と中継ユニット６００との接続が確立されたことがＭＦＰデバイス制御ユニット７００によって検出される。ここで、「接続の確立」とは、ケーブルやコネクタの物理的な接続が開始される場合のみでなく、ケーブルの物理的な接続が維持された状態で両方の装置７００，８１０（又は８２０）が起動した場合も含む広い意味を有している。また、無線接続の場合の「接続の確立」とは、２つの装置７００，８１０（又は８２０）間の認証が終了して実体データの交換が可能になったことを意味する。なお、接続時には、プリンタからＭＦＰデバイス制御ユニット７００にデバイスＩＤが供給される。
【００５１】
ステップ[2]では、ＭＦＰデバイス制御ユニット７００が、第１種プリンタ８１０と第２種プリンタ８２０のいずれが接続されたかを判定する。この判定は、プリンタの接続に使用されたＵＳＢ端子のタイプ（ホスト端子かデバイス端子か）に応じて行うことができる。また、第１種プリンタ８１０が接続されている場合には、ステップ[1]で供給されたデバイスＩＤの中に第１種プリンタ用の規格（例えばESC/P-R規格）に適合するものであることを示す文字列が含まれていることが好ましい。このときには、このデバイスＩＤから、第１種プリンタ用の規格に準拠していることを判別することができる。第２種プリンタ８２０が接続されている場合には、ＭＦＰデバイス制御ユニット７００は、ステップ[3]において、中継ユニット６００がＵＳＢ規格のＳＩＣＤクラス（静止画取り込み装置）として機能することをプリンタ８２０に通知する。この場合には、第２種プリンタ８２０は、プリンタ８２０にデジタルカメラが接続されているものと認識し、これに応じた印刷処理を実行する。すなわち、第２種プリンタ８２０は、ＪＰＥＧデータなどの表示用画像データを受け取ると、これに応じて印刷を実行する。
【００５２】
プリンタが接続されると、ＭＦＰデバイス制御ユニット７００は、ステップ[4]において、ＭＦＰサーバ３００にリセット要求を送信する。ＭＦＰサーバ３００は、ステップ[5]において、リセット要求のレスポンスとしてシャットダウン通知をＭＦＰデバイス制御ユニット７００に送信する。ステップ[6]では、ＭＦＰサーバ３００がByeBye通知をコントロールポイントにマルチキャストする。シャットダウン通知は、ＭＦＰサーバ３００が再起動を行う旨を通知するための通知である。また、ByeBye通知は、ＵＰｎＰプロトコルにおいて、ＭＦＰデバイスがネットワークから離脱することをすべてのコントロールポイントに通知するための通知である。ＭＦＰサーバ３００がByeBye通知をマルチキャストして再起動を行う理由は、ＵＰｎＰ規格において、デバイスディスクリプションを再作成する際にこれらの動作を行うものと定められているからである。この後、ＭＦＰサーバ３００が再起動する。なお、ＭＦＰサーバ３００とともにＭＦＰデバイス制御ユニット７００も再起動するものとしてもい。なお、ステップ[4]〜[6]及びＭＦＰサーバ３００の再起動は省略することも可能である。
【００５３】
図５のステップ[7]では、ＭＦＰサーバ３００がＭＦＰデバイス制御ユニット７００にデバイス情報を要求する。このデバイス情報の要求は、ＭＦＰサーバ３００の起動時に行われる処理であり、ＵＰｎＰ対応のネットワーク装置９００が有するデバイスの個数と、サービスの個数と、各デバイスのデバイスタイプと、各サービスのサービスタイプと、提供可能なサービスの内容（すなわちデバイス能力）とを含む各種のデバイス情報を、ＭＦＰサーバ３００が取得するために行われる。ステップ[8]では、ＭＦＰデバイス制御ユニット７００が、このデバイス情報要求をプリンタ８１０（又は８２０）に転送する。プリンタ８１０又は８２０は、この要求に応じてデバイス能力情報を含む各種のデバイス情報を返信し（ステップ[9]）、ＭＦＰデバイス制御ユニット７００はこのデバイス情報をＭＦＰサーバ３００に転送する（ステップ[10]）。
【００５４】
図５の例では、その後のステップ[11]において、コントロールポイント１２０ＣからM-Search要求がマルチキャストされている。M-Search要求は、ＵＰｎＰプロトコルにおいてコントロールポイントがデバイスを検索するために発行するものである。この要求に対しては、ネットワークに接続されている全てのＵＰｎＰ対応ネットワーク装置が、要求発行元のコントロールポイント１２０Ｃにレスポンスを返す（ステップ[12]）。
【００５５】
ステップ[13]では、コントロールポイント１２０Ｃが、ネットワーク装置９００に対して印刷ジョブメッセージを送信する。この印刷ジョブメッセージは、XHTML-printデータで構成されている。なお、印刷ジョブメッセージを「印刷要求メッセージ」とも呼ぶ。ＭＦＰサーバ３００がこの印刷ジョブメッセージをＭＦＰデバイス制御ユニット７００に転送すると（ステップ[14]）、ＭＦＰデバイス制御ユニット７００内でデータ変換が行われる（ステップ[15]）。すなわち、中継ユニット６００に第１種プリンタ８１０が接続されている場合には、第１種プリンタ用のデータ変換モジュール７１０（図４（Ａ））が、XHTML-printデータを解析してプリンタ用ＲＧＢデータを作成する。一方、中継ユニット６００に第２種プリンタ８２０が接続されている場合には、第２種プリンタ用のデータ変換モジュール７２０（図４（Ｂ））が、XHTML-printデータを解析してプリンタ用ＪＰＥＧデータを作成する。こうして作成されたプリンタ用データは、プリンタ８１０又は８２０に送信され（ステップ[16]）、このプリンタ用データに従って印刷が実行される（ステップ[17]）。
【００５６】
印刷が終了すると、その旨がプリンタ８１０（又は８２０）からＭＦＰデバイス制御ユニット７００に返信され（ステップ[18]）、ＭＦＰサーバ３００を経由して印刷要求元のコントロールポイント１２０Ｃまでレスポンスが返信される（ステップ[19]，[20]）。なお、印刷の終了を待たずに、ステップ[18]〜[20]のレスポンスが返されるようにしてもよい。
【００５７】
このように、本実施例では、中継ユニット６００とプリンタとの接続時に、第１種プリンタ８１０と第２種プリンタ８２０のいずれが接続されたかを判定し、現実に接続されたプリンタが適合する汎用規格に従ったプリンタ用データがXHTMLデータから作成される。従って、第１種プリンタ８１０と第２種プリンタ８２０のどちらが接続されている場合にも、それぞれに適したプリンタ用データをプリンタに供給して印刷を実行することが可能である。また、第１種プリンタ８１０と第２種プリンタ８２０は、いずれも汎用規格に従ったプリンタ用データを受入可能なので、中継ユニット６００内において、個々のプリンタ機種に依存する印刷データ（インク色毎のドットデータ）に変換する必要が無い。このため、中継ユニット６００としては、汎用規格に従ったプリンタ用データを作成するモジュール７１０，７２０（図４）を実装するだけで良いので、中継ユニット６００の実装が容易であるという利点がある。
【００５８】
D．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００５９】
D１．変形例１：
中継ユニット６００に接続されるデバイスユニットとしては、複数のデバイスを含むデバイスユニットを用いることも可能である。また、プリンタ以外の１つのデバイス（例えばマスストレージ）のみを含むデバイスユニットを使用することも可能である。例えば、マスストレージクラスのデバイスのみを有するデバイスユニットが中継ユニット６００に接続されている場合に、印刷要求メッセージを、所定の汎用規格に従ったプリンタ用データ（例えばＪＰＥＧデータ）に変換し、このプリンタ用データを中継ユニット６００からマスストレージデバイスに送信して格納するようにしてもよい。この説明からも理解できるように、中継ユニット６００は、マークアップ言語を用いて印刷対象画像が記述された印刷要求メッセージをクライアントから受け取ったときに、現実に接続されているデバイスユニットが受入可能な汎用規格に従ったプリンタ用データを作成してそのデバイスユニットに供給するように構成されていることが好ましい。なお、本明細書において、「汎用規格」とは、製造者独自の規格でなく、複数の製造者が共通に採用している規格（又は標準）を意味している。汎用規格としては、公的規格のみでなく、業界標準（デファクト・スタンダード）も含まれている。
【００６０】
D２．変形例２：
上記実施例では、中継ユニット６００に２種類のデバイスユニット８１０，８２０のいずれでも選択的に接続できるものとしたが、１種類のデバイスユニット（例えば第１種プリンタ８１０）のみが接続できるものとして中継ユニット６００を構成してもよい。この場合にも、現実に接続されるデバイスユニットが受入可能なプリンタ用データを中継ユニット６００内で作成できるようにすれば、接続されるデバイスユニットの種別に応じてＭＦＰデバイス制御ユニット７００の実装を変更しないで済むという利点がある。
【００６１】
D３．変形例３：
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施例を適用するネットワークシステムの構成を示す概念図である。
【図２】中継ユニット内のＭＦＰサーバとＭＦＰデバイス制御ユニットの内部構成を示すブロック図である。
【図３】ＵＰｎＰアーキテクチャを利用した処理の典型例を示すシーケンス図である。
【図４】デバイス制御部内に実装される２つのデータ変換モジュールの構成を示す説明図である。
【図５】中継ユニットへのプリンタの接続と印刷実行のシーケンスを示すシーケンス図である。
【符号の説明】
【００６３】
１００…パーソナルコンピュータ
１００Ｄ…プリンタドライバ
１１０…デジタルカメラ
１１０Ｃ…コントロールポイント
１２０…デジタルＴＶセット
１２０Ｃ…コントロールポイント
１３０…画像サーバ
３００…ＭＦＰサーバ
３０２…ネットワークプロトコル制御部
３１０…中央制御部
３２０…ＲＡＭ
３３０…ＲＯＭ
３４０…ネットワーク制御部
３４２…コネクタ
３５０…ＵＳＢホスト制御部
３５２…ルートハブ
３５４，３５６…ＵＳＢコネクタ
４００…ＭＦＰデバイスユニット
４１０…中央制御部
４２０…ＲＡＭ
４３０…ＲＯＭ
４６０…ＵＳＢデバイス制御部
４６２…ＵＳＢコネクタ（デバイス端子）
５１０…ＵＳＢホスト制御部
５１２…ルートハブ
５１４…ＵＳＢコネクタ（ホスト端子）
５２０…ＵＳＢデバイス制御部
５２４…コネクタ（デバイス端子）
６００…中継ユニット
７００…ＭＦＰデバイス制御ユニット
７０２…デバイス制御部
７１０…データ変換モジュール
７１２…印刷要求メッセージ受信部
７１４…ＲＧＢデータ生成部
７１６…プリンタ用ＲＧＢデータエンコーダ
７１８…データ送信部
７２０…データ変換モジュール
７２２…印刷要求メッセージ受信部
７２４…ＲＧＢデータ生成部
７２６…プリンタ用ＪＰＥＧデータエンコーダ
７２８…データ送信部
８１０…第１種プリンタ
８２０…第２種プリンタ
９００…ネットワーク装置
【図１】
0004508114.tif 000002
【図２】
0004508114.tif 000003
【図３】
0004508114.tif 000004
【図４】
0004508114.tif 000005
【図５】
0004508114.tif 000006