JP2007080126A - ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御 - Google Patents

ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御 Download PDF

Info

Publication number
JP2007080126A
JP2007080126A JP2005269487A JP2005269487A JP2007080126A JP 2007080126 A JP2007080126 A JP 2007080126A JP 2005269487 A JP2005269487 A JP 2005269487A JP 2005269487 A JP2005269487 A JP 2005269487A JP 2007080126 A JP2007080126 A JP 2007080126A
Authority
JP
Japan
Prior art keywords
network
message
control unit
content data
mfp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005269487A
Other languages
English (en)
Inventor
Tsutomu Mogi
努 茂木
Yasuhiro Oshima
康裕 大島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005269487A priority Critical patent/JP2007080126A/ja
Publication of JP2007080126A publication Critical patent/JP2007080126A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Abstract


【課題】 ネットワーク型プラグアンドプレイに対応したネットワーク装置における制御を単純化できる技術を提供する。
【解決手段】 デバイス制御部402は、コンテンツデータと参照ファイルを異なる受信バッファに格納する。一実施例では、コンテンツデータと参照ファイルは、異なる論理チャンネルを介して転送され、論理チャンネルに対応付けられた受信バッファにそれぞれ格納される。他の実施例では、コンテンツデータと参照ファイルは異なる識別子が付与されて転送され、識別子に応じて異なる受信バッファにそれぞれ格納されることが判断される。
【選択図】 図8

Description

この発明は、ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御技術に関する。
プラグアンドプレイは、よく知られているように、コンピュータの起動後に、周辺装置を任意のタイミングでコンピュータに接続したり、コンピュータから切断したりすることができる技術である。近年では、プラグアンドプレイ技術をネットワークに適用したものとして、ユニバーサルプラグアンドプレイ(以下、「UPnP」と呼ぶ。UPnPは UPnP Implementers Corporationの商標)が開発されてきている。UPnPを用いると、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることができる。本明細書では、UPnPのように、ネットワークにおいてプラグアンドプレイを実現するアーキテクチャを、「ネットワーク型プラグアンドプレイ」と呼ぶ。
特開2001−290724
UPnPプロトコルでは、クライアントからネットワーク装置に対してXHTMLデータなどのマークアップ言語で記述されたコンテンツデータを送付することができる。このようなコンテンツデータには、画像ファイルなどのファイルの参照が含まれている場合がある。以下では、コンテンツデータの中で参照されているファイルを「参照ファイル」と呼ぶ。
コンテンツデータと参照ファイルは、別のセッションでネットワーク装置に供給されるが、ネットワーク装置内の同じ受信バッファに受信される。しかし、コンテンツデータと参照ファイルに対しては、全く異なる処理が実行される場合が多い。例えば、XHTMLデータでは、XHTMLパーサが解釈を行って描画を行なう必要があるが、参照ファイルが画像データである場合にはこれらの処理を実行する必要は無い。このため、従来は、ネットワーク装置内におけるコンテンツデータと参照ファイルの処理の制御が複雑になるという問題があった。
本発明は、ネットワーク型プラグアンドプレイに対応したネットワーク装置における制御を単純化することのできる技術を提供することを目的とする。
本発明による装置は、ネットワーク型プラグアンドプレイに対応したネットワーク装置であって、
ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスと、
前記サービスデバイスの制御を行うデバイス制御部と、
メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの内容を前記デバイス制御部に転送するネットワークプロトコル制御部と、
を備え、
前記デバイス制御部は、前記メッセージボディがマークアップ言語で記述されたコンテンツデータであってファイルの参照を含むコンテンツデータである場合には、前記コンテンツデータと前記参照されたファイルとを異なる受信バッファ内に格納する。
このネットワーク装置によれば、コンテンツデータと参照ファイルとを異なる受信バッファ内に格納するので、コンテンツデータと参照ファイルとに対して異なる処理をそれぞれ別個に実行することができる。この結果、コンテンツデータと参照ファイルの処理に関する制御を単純化することが可能である。
前記ネットワークプロトコル制御部と前記デバイス制御部とは、コンテンツデータを転送するための第1と第2の論理チャンネルを有しており、
前記デバイス制御部は、前記第1と第2の論理チャンネルに対応付けられた第1と第2の受信バッファを有しており、
前記コンテンツデータと前記参照されたファイルは、前記第1と第2の論理チャンネルによってそれぞれ転送されて前記第1と第2の受信バッファ内にそれぞれ格納されるようにしてもよい。
この構成によれば、コンテンツデータと参照ファイルの転送に使用する論理チャンネルを分けるので、転送処理を含む全体の処理の制御がより容易になる。
前記ネットワークプロトコル制御部と前記デバイス制御部とは、コンテンツデータを転送するための少なくとも1つの論理チャンネルを有しており、
前記ネットワークプロトコル制御部は、前記論理チャンネルを介して前記前記コンテンツデータと前記参照されたファイルを前記デバイス制御部に転送する際に、前記コンテンツデータと前記参照されたファイルに対して異なる識別子を付与して転送し、
前記デバイス制御部は、前記識別子に応じて、前記コンテンツデータと前記参照されたファイルとを異なる受信バッファ内に格納することを判断するようにしてもよい。
この構成によれば、同じ論理チャンネルを用いた場合にも、識別子に応じて、コンテンツデータと参照ファイルとを別々の受信バッファにそれぞれ格納することが可能である。
前記コンテンツデータが複数の参照ファイルを含む場合には、個々の参照ファイルを異なる受信バッファ内に格納することが好ましい。
この構成によれば、個々の参照ファイルに関する処理を別個に実行できるので、処理の制御がさらに容易になる。
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク装置、ネットワークプロトコル制御装置、それらの装置の制御方法及び制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、本発明の実施の形態を以下の順序で説明する。
A.用語の説明:
B.システムの概要:
C.コンテンツデータ転送の第1実施例:
D.コンテンツデータ転送の第2実施例:
E.変形例:
A.用語の説明:
以下の説明で使用する用語の意味は以下の通りである。
・DHCP(Dynamic Host Configuration Protocol):ダイナミックホストコンフィギュレーションプロトコル。動的にIPアドレスを割り当てるプロトコル。
・GENA(General Event Notification Architecture):一般イベント通知アーキテクチャ。UPnPアーキテクチャにおいてイベントを発行する際に使用される。
・HTTP(HyperText Transfer Protocol):ハイパーテキスト転送プロトコル。
・HTTPMU(HTTP Multicast over UDP):UDP(User Datagram Protocol)を用いたHTTPマルチキャスト。
・HTTPU(HTTP(unicast) over UDP):UDPを用いたHTTPユニキャスト。
・MFP(Multi Function Peripheral):複数のデバイスの機能を有する複合周辺装置。
・SOAP(Simple Object Access Protocol):シンプルオブジェクトアクセスプロトコル。UPnPアーキテクチャにおいて、RPC(リモートプロシージャコール)によるアクションの要求とレスポンスとに使用される。
・SSDP(Simple Service Discovery Protocol):シンプルサービス検出プロトコル。UPnPアーキテクチャにおいて、サービスのディスカバリ(検出)に使用される。
・UPnP(Universal Plug and Play):ユニバーサルプラグアンドプレイ(UPnPは UPnP Implementers Corporationの商標)。
・URI(Uniform Resource Identifier):ユニフォームリソース識別子。URL(Uniform Resouce Locator)の上位概念であり、リソースの固有の位置を示す識別子。
・XHTML(eXtensible HyperText Markup Language):拡張ハイパーテキストマークアップ言語。HTMLと互換性を有する文書記述言語の一種であり、XMLの実装の一形態である。後述するXHTML−printは、XHTML文書を印刷するための仕様である。
・XML(eXtensible Markup Language):拡張マークアップ言語。
なお、UPnPでは上述した多数のプロトコルが使用されるが、以下ではこれらを総称して「UPnPプロトコル」と呼ぶ。
B.システムの概要:
図1は、本発明の実施例を適用するネットワークシステムの構成を示す概念図である。このネットワークシステムは、パーソナルコンピュータ100と、デジタルカメラ110と、TVセット120と、画像サーバ130と、複合機200とがLANを介して相互に接続された構成を有している。LANは、IEEE802.3のような有線ネットワークでも、IEEE802.11b/g/aなどの無線ネットワークでもよい。デジタルカメラ110と、TVセット120と、複合機200とは、UPnP対応のネットワーク装置である。デジタルカメラ110とTVセット120は、UPnPアーキテクチャにおけるコントロールポイント110C,120Cを備えている。UPnPアーキテクチャ及びコントロールポイントについては後述する。パーソナルコンピュータ100と画像サーバ130もこのネットワークシステムの構成要素の1つであるが、UPnPには対応していない。
パーソナルコンピュータ100は、プリンタドライバ100Dを用いて画像の印刷データを作成し、LANを介してこの印刷データを複合機200に転送して印刷を実行させる機能を有している。この印刷処理の際には、複合機200はUPnPのプロトコルを使用せず、通常のネットワークプリンタとして機能する。一方、コントロールポイント(例えば110C)からの要求に従って印刷を行う場合には、複合機200はUPnP対応のプリンタデバイスとして機能する。
複合機200は、MFPサーバ300と、MFPデバイスユニット400とを有している。MFPサーバ300は、LAN上の他の装置とMFPデバイスユニット400との間で交換されるメッセージを仲介するネットワークプロトコル制御部302としての機能を有している。後述するように、MFPサーバ300は、典型的な場合において、メッセージの転送の際にメッセージヘッダに関してUPnPのプロトコルを解釈するが、メッセージボディの解釈や処理は行わない。MFPデバイスユニット400は、3つのサービスデバイス(プリンタ404,スキャナ406,ストレージ408)と、これらを制御するデバイス制御部402とを備えている。なお、プリンタ404,スキャナ406,ストレージ408以外のサービスデバイスを追加することも可能である。MFPサーバ300とMFPデバイスユニット400との間は、USB(Universal Serial Bus)で接続されている。但し、両者の間をUSB以外の他の物理的インタフェースで接続することも可能である。
UPnPは、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることを実現するアーキテクチャである。UPnPネットワークは、コントロールポイント110C,120Cと、デバイス404,406,408とで構成される。ここで、「デバイス」とは、サービスを提供する装置を意味している。本明細書においては、特に断らない限り、「デバイス」と「サービスデバイス」は同義語として使用されている。「コントロールポイント」は、ネットワーク上の他のデバイスを検出したり制御したりするコントローラを意味しており、サービスデバイスに対するクライアントとして機能する。UPnP対応のネットワーク装置が有する各種の機能については後述する。
図2は、複合機200の内部構成を示すブロック図である。MFPサーバ300は、中央制御部(CPU)310と、RAM320と、ROM330と、ネットワーク制御部340と、USBホスト制御部350とを有している。ネットワーク制御部340は、コネクタ342を介して有線ネットワークに接続される。USBホスト制御部350は、ルートハブ352を有しており、ルートハブ352には2つのUSBコネクタ354,356が設けられている。第1のUSBコネクタ354は、USBケーブルを介してMFPデバイスユニット400のUSBコネクタ462に接続されている。第2のUSBコネクタ356には、追加のデバイス(例えば無線LANネットワークへ通信するための無線通信回路)を接続可能である。
MFPデバイスユニット400は、中央制御部(CPU)410と、RAM420と、ROM430と、印刷エンジン440と、スキャナエンジン450と、2つのUSBデバイス制御部460,470と、PCカードインタフェース480と、操作パネル制御部490と、ビューワ制御部500と、USBホスト制御部510とを有している。
印刷エンジン440は、与えられた印刷データに応じて印刷を実行する印刷機構である。本実施例では、コントロールポイント110C,120CがXHTMLデータに基づいて印刷を行う場合には、中央制御部410がXHTMLデータを解釈し、色変換やハーフトーン処理を実行して印刷データを作成し、この印刷データを印刷エンジン440に供給する。但し、中央制御部410の代わりに印刷エンジン440が色変換やハーフトーン処理の機能を有するように構成することも可能である。一方、パーソナルコンピュータ100から印刷を行う場合は、プリンタドライバ100Dが生成するページ記述言語を中央制御部410が解析して印刷データを作成し、印刷エンジン440に供給する。なお、本明細書において、「印刷データ」とは印刷媒体上におけるドットの形成状態を示すドットデータによって印刷物を表すデータを意味している。印刷データは、プリンタ固有の制御コマンドで構成されている。XHTMLは、印刷データには該当せず、文書を記述する文書記述言語である。スキャナエンジン450は、画像をスキャンして画像データを生成する機構である。
MFPデバイスユニット400の第1のUSBデバイス制御部460は、USBコネクタ462を介してMFPサーバ300のUSBホスト制御部350に接続されている。第2のUSBデバイス制御部470は、USBコネクタ472を有しており、ここにパーソナルコンピュータなどの任意のUSBホストを接続することが可能である。PCカードインタフェース480は、PCカード用のスロット482を有している。操作パネル制御部490には、入力手段としての操作パネル492が接続されている。ビューワ制御部500には、画像表示手段としてのビューワ502が接続されている。ユーザは、ビューワ502上に表示された画像やメニューを観察しながら、操作パネル492を用いて種々の指示を入力することができる。USBホスト制御部510は、ルートハブ512を有しており、ルートハブ512にはUSBコネクタ514が設けられている。このコネクタ514には、有限責任中間法人カメラ映像機器工業会が策定したCIPA DC−001−2003などに準拠したデジタルカメラなどのUSBデバイスを接続することが可能である。
MFPサーバ300の中央制御部310とネットワーク制御部340とUSBホスト制御部350は、図1におけるネットワークプロトコル制御部302としての機能を実現する。より具体的には、ネットワーク制御部340は、各種のネットワークプロトコルに従ってメッセージの送受信を行う。また、中央制御部310は、UPnPのプロトコルを解釈して転送先を決定する。USBホスト制御部350は、MFPデバイスユニット400との間でメッセージを転送する。これらの制御部310,340,350は、メッセージボディの解釈や処理は行わずにメッセージを転送している。
MFPデバイスユニット400のUSBデバイス制御部460及び中央制御部410は、図1におけるデバイス制御部402としての機能を実現する。より具体的には、USBデバイス制御部460は、USBの転送プロトコルに従ってメッセージの送受信を行う。また、中央制御部410は、MFPサーバ300を介して転送されたメッセージの内容を解釈し、メッセージの内容に応じた処理を実行して、印刷エンジン440やスキャナエンジン450を動作させる。印刷エンジン440は図1のプリンタ404のハードウェア部分に相当し、スキャナエンジン450は図1のスキャナ406のハードウェア部分に対応する。また、PCカードインタフェース480のスロット482に挿入されたメモリカードは、図1のストレージ408のハードウェア部分に相当する。
図3は、MFPサーバ300の各種のプロトコルの階層構造を示すブロック図である。MFPサーバ300は、各種のネットワークプロトコルを解釈するためのサービスプロトコル解釈部1000を備えている。このサービスプロトコル解釈部1000には、ネットワークアーキテクチャの下位層と、USBアーキテクチャの下位層とが存在する。ネットワークアーキテクチャの下位層としては、UPnPデバイスアーキテクチャ1100と、3つの非UPnPデバイス機能部1210,1220,1230が設けられている。これらのさらに下位には、UDP層又はTCP層と、インターネットプロトコル(IP)層と、ドライバ層と、ネットワークインタフェース層と、が存在する。
サービスプロトコル解釈部1000のUSBアーキテクチャの下位層としては、D4パケット処理部1300及びUSBプリンタクラスドライバ1310と、USBスキャナクラスドライバ1320と、USBストレージクラスドライバ1330とが設けられている。これらの3つのデバイスドライバ1310,1320,1330の下位には、USBシステムソフトウェアとUSBホストインタフェース(ハードウェア)とが存在する。なお、この図からも理解できるように、USBのプリンタクラスドライバ1310は、いわゆる「D4パケット」(IEEE1284.4に即したパケット構造)を利用してデータ転送を行うのに対して、スキャナクラスドライバ1320やストレージクラスドライバ1330ではD4パケットは利用されていない。この理由は、標準的なUSBのデバイスクラスのうちで、プリンタクラスではD4パケットが上位プロトコルとして採用されているが、スキャナクラス及びストレージクラスでは、D4パケットを用いない制御スタック(アプリケーション層から物理層に至るまでのアーキテクチャ)がOSの標準となっているからである。
UPnPデバイスアーキテクチャは、HTTPMUや、HTTPU,SOAP/HTTP,HTTPなどの各種のプロトコルに従って構成されている。UPnPは、これらのプロトコルを用いて、以下のような各種の処理を実現している。
(1)アドレッシング:
UPnPデバイス(以下、単に「デバイス」と呼ぶ)がネットワークに接続すると、アドレッシングによってネットワークアドレス(IPアドレス)を取得する。アドレッシングには、DHCPサーバまたはAuto-IPが利用される。ネットワークにDHCPサーバが設けられている場合には、デバイスはDHCPサーバによって割り当てられるIPアドレスを使用する。DHCPサーバが無い場合には、Auto-IPと呼ばれる自動IPアドレッシング機能を用いて、デバイスが自分のアドレスを決定する。なお、本実施例では、複合機200に対して1つのIPアドレスのみが割り当てられ、複合機200全体が単一のネットワーク装置として認識される。
(2)ディスカバリ(検出):
ディスカバリは、コントロールポイントが、デバイスがどこにいるかを見つけ出す処理である。ディスカバリは、コントロールポイントがディスカバリメッセージをマルチキャストすることによって実現することができ、あるいは、デバイスがネットワークに参加したときに、その旨をコントロールポイントにアドバタイズすることによっても実現できる。ディスカバリは、HTTPMU/SSDPやHTTPU/SSDPを用いて行われる。ディスカバリの結果、コントロールポイントとデバイスがピアツーピアで処理を進められるようになる。
(3)ディスクリプション:
デバイスの構成の詳細は、デバイスディスクリプションとしてXMLで記述されている。また、デバイスのサービスの詳細は、サービスディスクリプションとしてXMLで記述されている。これらのディスクリプションは、デバイスによって所有されており、コントロールポイントに提供される。コントロールポイントは、これらのディスクリプションを参照することによって、デバイスやサービスの詳細を知ることができる。デバイスディスクリプションの例については後述する。
(4)コントロール:
コントロールは、コントロールポイントが、アクション要求を含む制御メッセージをデバイスに転送して、デバイスの制御を行う処理である。コントロールは、HTTP/SOAPを用いて行われる。
(5)イベント:
所定のイベントが発生すると、デバイス内のサービスが、コントロールポイントにイベントの発生を通知する。イベント発生の通知を受けるコントロールポイントは、そのサービスに「サブスクライブ(購読)」する。イベントは、サブスクライブしているコントロールポイントに転送される。イベントの通知は、HTTP/GENAを用いて行われる。
(6)プレゼンテーション:
プレゼンテーションは、デバイスディスクリプションに登録されているプレゼンテーション用のURLからコントロールポイントがHTMLで記述されたプレゼンテーション用ページを取得する処理である。このプレゼンテーションによって、例えばコントロールポイントがデバイスの各種の状態を表示することができる。
なお、本発明はUPnPの将来のバージョンにも適用可能である。また、ネットワーク型プラグアンドプレイとして、アドレッシング(自動的なIPアドレス決定)と、デバイスのディスカバリにより、任意のコントロールポイントとデバイスとがピアツーピアで通信が可能で、コントロールポイントとデバイスがメッセージの交換を行うアーキテクチャであれば、UPnP以外のネットワーク型プラグアンドプレイ仕様にも本発明を適用することが可能である。
図4は、MFPデバイスユニット400の各種プロトコルの階層構造を示すブロック図である。MFPデバイスユニット400は、UPnPデバイス機能部2400と、3つの非UPnPデバイス機能部2210,2220,2230とを有している。UPnPデバイス機能部2400は、3つのUPnPデバイスモジュール(図1のプリンタ404,スキャナ406,ストレージ408)を含んでいる。各デバイスモジュール内には、サービスを実行するサービスモジュールが含まれているが、ここでは図示が省略されている。UPnPデバイス機能部2400と非UPnPプリンタ機能部2210の下位には、D4パケット処理部2300及びUSBプリンタクラスドライバ2310が存在する。非UPnPスキャナ機能部2220及び非UPnPストレージ機能部2230の下位には、USBスキャナクラスドライバ2320とUSBストレージクラスドライバ2330が存在する。3つのデバイスドライバ2310,2320,2330の下位には、USB論理デバイスとUSBデバイスインタフェース(ハードウェア)とが存在する。この階層構造からも理解できるように、UPnPスキャナデバイスやUPnPストレージデバイスがコントロールポイントに対してサービスを行う場合には、MFPサーバ300とMFPデバイスユニット400間では、USBプリンタクラスドライバ2310を利用してデータ転送が行われる。従って、UPnPスキャナデバイスやUPnPストレージデバイス用のデータ転送の際にも、D4パケットを利用することができる。
図4に示すように、MFPサーバ300のUSBプリンタクラスドライバ1310とMFPデバイスユニット400のUSBプリンタクラスドライバ2310の間には、7種類のUPnP用双方向通信チャンネルが設けられている。これらは、D4パケットを用いた論理チャンネルであり、複合機200がUPnPデバイスとして機能する場合に使用される。サービスプロトコル解釈部1000とUPnPデバイス機能部2400の間にも、プリンタクラスドライバ1310,2310の間の7種類の論理チャンネルに対応する7種類のUPnP用論理チャンネルが存在するが、図4では図示が省略されている。以下ではまず、D4パケットを用いた論理チャンネルについて説明する。
図5は、USBのインタフェース/エンドポイント構成と論理チャンネルの構成とを示す説明図である。一般に、USBデバイスは、インタフェースとエンドポイントとを有している。USBの転送は、USBのホストとエンドポイントとの間で行われる。すなわち、「エンドポイント」とは、ホストと通信を行う論理的なリソースである。図5(A)の例では、7つのエンドポイントEP#0〜EP#6が示されている。コントロールエンドポイントEP#0は、標準デバイスリクエストの送受信を行うためのエンドポイントである。「標準デバイスリクエスト」とは、すべてのUSBでサポートする必要がある基本的なリクエストである。従って、コントロールエンドポイントEP#0は、1つのUSBデバイスに必ず1つ設けられている。
プリンタ用のバルクアウトエンドポイントEP#1とバルクインエンドポイントEP#2は、印刷エンジン440用のメッセージの受信と送信を行うためのエンドポイントである。同様に、スキャナ用のバルクアウトエンドポイントEP#3とバルクインエンドポイントEP#4は、スキャナエンジン450用のメッセージの受信と送信を行うためのエンドポイントである。また、ストレージ用のエンドポイントEP#5,EP#6は、メモリーカード用のメッセージの受信と送信を行うためのエンドポイントである。一般に、USBデバイスでは、コントロールエンドポイントEP#0以外のエンドポイントは、論理的なインタフェースによって区分されている。図5(A)の例では、論理的なインタフェースとして、プリンタインタフェースIF#0とスキャナインタフェースIF#1とストレージインタフェースIF#2とが設けられている。
本実施例では、図5(B)に示すように、プリンタインタフェースIF#0に9つの論理的なチャンネルが設けられている。これらの各チャンネルの機能は以下の通りである。
(1)PRINT-DATAチャンネルCH#11:
ネットワーク上のパーソナルコンピュータ100から、印刷ポート(LPRポートに従ったポート番号又はボート番号9100)を用いてプリンタドライバ100D(図1)から転送される印刷データの送受信を行うためのチャンネル。図4には図示されていない。
(2)PRINT-STATUSチャンネルCH#12:
MFPサーバ300が、印刷エンジン440の状態を示す情報を送受信するためのチャンネルであり、SNMP等のプロトコルにより、MFPサーバ300からネットワーク上のパーソナルコンピュータ100に対して提供される。図4には図示されていない。
(3)UPNP-LOCALCONTROLチャンネルCH#21:
MFPサーバ300とMFPデバイスユニット400の間において、MFPサーバ300を要求者とし、MFPデバイスユニット400を応答者とする通信を行うためのUPnP用チャンネル。MFPサーバ300は、このチャンネルを用いて、MFPデバイスユニット400から各種の情報を取得することができる。
(4)UPNP-LOCALEVENTチャンネルCH#22:
MFPサーバ300とMFPデバイスユニット400の間において、MFPデバイスユニット400を要求者とし、MFPサーバ300を応答者とする通信を行うためのUPnP用チャンネル。MFPデバイスユニット400は、このチャンネルを用いて、例えばユーザが行った設定変更の内容をMFPサーバ300に通知することができ、また、MFPデバイスユニット400が電源OFFしようとするときに、UPnPプロトコルの終了要求をMFPサーバ300に通知することができる。
(5)UPNP-PRESENTATIONチャンネルCH#23:
UPnPのプレゼンテーションデータ(Webページデータ)を送受信するためのチャンネル。なお、コントロールポイントの要求に応じてプレゼンテーションデータをMFPデバイスユニット400からコントロールポイントに送信するためのチャンネル(ダウンチャンネル)と、新たなプレゼンテーションデータをコントロールポイントからMFPデバイスユニット400にアップロードするためのチャンネル(アップチャンネル)とを別々に設けるようにしたもよい。
(6)UPNP-CONTROLチャンネルCH#24:
UPnPにおいて、コントロールポイントから発信されたアクションに関連するデータを送受信するためのチャンネル。なお、上述のUPNP-LOCALCONTROLチャンネルに”LOCAL”という接頭語が付されている理由は、UPNP-LOCALTONTROLチャンネルが、コントロールポイントからのアクションの内容の転送には使用されないからである。換言すれば、UPNP-CONTROLチャンネルCH#24は、コントロールポイントから発信されたアクションに関連するデータの送受信のためにのみ使用される。
(7)UPNP-EVENTチャンネルCH#25:
UPnPにおいて、イベントをサブスクライブしているコントロールポイントに送信するためのチャンネル。上述のUPNP-LOCALEVENTチャンネルに”LOCAL”という接頭語が付されている理由は、このUPNP-LOCALEVENTチャンネルが、コントロールポイントへのイベントの送信には使用されないからである。換言すれば、UPNP-EVENTチャンネルCH#25は、複合機200で発生したイベントをコントロールポイントに送信するためにのみ使用される。
(8)UPNP-DOWNCONTENTxチャンネルCH#26x:
UPnPにおいて、コンテンツデータをコントロールポイントからMFPデバイスユニット400にダウンロードする際に使用される送受信チャンネル。ここで、接尾辞”x”は、Ndown個(Ndownは2以上の整数)のUPNP-DOWNCONTENTチャンネルのうちのx番目のチャンネルを意味している。利用可能なUPNP-DOWNCONTENTチャンネルの個数Ndownは、1以上の任意に設定可能であるが、2以上の値に設定することが好ましい。Ndownを2以上の値に設定すれば、複数のコントロールのコンテンツデータを並行して受信することが可能である。
(9)UPNP-UPCONTENTxチャンネルCH#27x:
UPnPにおいて、コンテンツデータをMFPデバイスユニット400からコントロールポイントにアップロードする際に使用される送受信チャンネル。接尾辞”x”は、Nup個(Nupは2以上の整数)のUPNP-UPCONTENTチャンネルのうちのx番目のチャンネルを意味している。UPNP-DOWNCONTENTxチャンネルの個数NdownとUPNP-UPCONTENTxチャンネルの個数Nupは、同じでも良く、また、異なっていてもよい。なお、実際の図5(B)のUPnP用の論理チャンネルの数は、(5+Ndown+Nup)個となることが理解できる。
なお、各論理チャンネルは、いずれもバルクアウトエンドポイントEP#1とバルクインエンドポイントEP#2の両方を利用して双方向通信を行うことができる。論理チャンネルの識別情報は、USBパケットのヘッダに登録される。
図6は、プリンタインタフェースIF#0を介したUSB転送に用いられるD4パケットの構成を示す説明図である。これは、IEEE1284.4に即したパケット構造である。このD4パケットは、12バイトのヘッダ部と、0バイト以上のメッセージ部から構成されている。ヘッダ部は、6バイトのD4標準ヘッダと、4バイトのIDフィールドと、2バイトのエラーコードフィールドとを有している。D4標準ヘッダには、図5(B)に示した9種類の(7+2N)個の論理チャンネルを識別するためのソケットID(論理チャンネルID)が登録される。IDフィールドには、リクエストIDが登録される。このリクエストIDは、MFPサーバ300とMFPデバイスユニット400との間のデータ転送(特にUPNP-DOWNCONTENTxやUPNP-UPCONTENTxチャンネル)において、同じメッセージを構成するパケットを識別するために使用される。なお、リクエストIDは、MFPサーバ300が割り当てる場合と、MFPデバイスユニット400が割り当てる場合とが存在する。従って、リクエストIDには、MFPサーバ300とMFPデバイスユニット400のいずれが割当てたかを一意に識別できるビット(例えば最上位ビット)を設けておくことが好ましい。
D4パケットでは、ヘッダ部を利用して多様な論理チャンネルを構成できるので、多様な論理チャンネルを用いて多様なデータ転送を実現することが可能である。また、D4標準ヘッダ以外のヘッダ情報をある程度任意に設定することができるので、各種の制御を実行するための工夫の自由度が高いという利点がある。
本実施例のD4パケットを用いてリクエストを転送する場合には、エラーフィールドの後のメッセージの先頭(「メッセージヘッダ」とも呼ぶ)には、メッセージの送り元から送り先(受け手)へ通知するURI(通常は相対URI)が付加される。メッセージの受け手は、このURIから、リクエストの内容や宛先を容易に判定することが可能である。なお、D4パケットのメッセージの具体的な内容については後述する。
図5(B)に示したように、本実施例では、USB転送用の論理チャンネルとして、印刷ポート用の論理チャンネルCH#11〜CH#12と、UPnP用の論理チャンネルCH#21〜CH#27xとを別個に設けている。従って、ネットワーク印刷ポートを介してMFPデバイスユニット400に転送されてくる印刷データと、UPnP用のポートを介してMFPデバイスユニット400に転送されてくるコンテンツデータ(例えば印刷用のXHTMLデータ)とを容易に識別することができる。また、本実施例では、UPnPプロトコルによるメッセージのUSB転送のために、用途の異なる複数の論理チャンネルCH#21〜CH#27xを設けているので、メッセージの受信側において、メッセージの内容の処理をより高速に処理することが可能である。特に、本実施例ではコントロールポイントとの間の通信の際に利用される論理チャンネルCH#23〜CH#27xの他に、MFPサーバ300とMFPデバイスユニット400との間のローカルな情報の転送に使用される論理チャンネルCH#21,CH#22が別個に設けられている。従って、例えばクライアント(コントロール)から送られたメッセージと、MFPサーバ300とMFPデバイスユニット400との間で通知される特定の情報とを容易に区別して、それぞれに適した処理を素早く実行することが可能である。
図7は、UPnPアーキテクチャを利用した処理の典型例を示すシーケンス図である。ここでは、コントロールポイント110Cと、MFPサーバ300と、MFPデバイスユニット400の間でメッセージが転送される場合を示している。ステップ[1]では、コントロールポイント110CがHTTPのリクエストメッセージF1をMFPサーバ300に転送する。メッセージF1のヘッダには、リクエスト命令のメソッド(POSTやGETなど)と、MFPデバイスユニット400内の宛先を示すURIと、複合機200のホスト名(この例ではIPアドレス”169.254.100.100”)とが記述されている。なお、IPアドレスは、複合機200に1つだけば割り当てられるので、このIPアドレスは、MFPサーバ300のIPアドレス又はMFPデバイスユニット400のIPアドレスと考えることも可能である。
ステップ[2]では、MFPサーバ300が、リクエストメッセージF1を解析する。ここで解析(解釈)されるのは、メッセージF1のヘッダ部分だけであり、送信データ(すなわちメッセージボディ)の内容の解釈は行わない。より具体的には、ステップ[2]において、メッセージF1のURIが解析され、MFPデバイスユニット400に対してどの論理チャンネルを用いてメッセージを転送すべきかが判定される。なお、メッセージF1には、実質的なメッセージボディが無いものも存在する。
ステップ[3]では、MFPサーバ300が、URIとメッセージボディ(存在する場合)とを含むメッセージF2を、USBでMFPデバイスユニット400に転送する。この転送の際には、URIに応じて選択された論理チャンネルが利用される。
ステップ[4]では、MFPデバイスユニット400が、受信したメッセージF2内のURI及びメッセージボディ(存在する場合)に応じて処理を実行する。この例については後述する。ステップ[5]では、MFPデバイスユニット400が、レスポンスデータを含むメッセージR1をUSBでMFPサーバ300に転送する。ステップ[6]では、MFPサーバ300が送信データにHTTPヘッダを付加する。このHTTPヘッダは、HTTPリクエストの処理結果を示すステータスコードを含んでいる。例えば、処理結果がOKであればステータスコードが”200”に設定され、エラーであれば”500”に設定される。ステップ[7]では、こうして作成されたHTTPのレスポンスメッセージR2がMFPサーバ300からコントロールポイント110Cに転送される。
このように、本実施例では、MFPサーバ300は、コントロールポイントから受信したリクエストメッセージのうちで、ヘッダの解析(解釈)は行うが、メッセージボディの内容の解釈は行わず、メッセージボディはMFPデバイスユニット400によって処理される。この構成には以下のような利点がある。第1の利点は、MFPサーバ300が、MFPデバイスユニット400のデバイス構成とサービスの内容を把握する必要が無く、任意の構成を有するデバイスユニット宛に送られたメッセージを転送するためのネットワークプロトコル制御部として機能することができる点である。第2の利点は、MFPデバイスユニット400のデバイス構成やサービスの内容が変更されても、MFPサーバ300の構成や機能を変更する必要が無い点である。第3の利点は、MFPサーバ300にメッセージボディの内容の解釈を行う解釈部(パーサ)を実装する必要が無いので、MFPサーバ300の構成が単純で済む点である。
C.コンテンツデータ転送の第1実施例:
図8は、第1実施例においてコントロールポイントからコンテンツデータを受けたときの複合機200内のデータ転送の流れを示す説明図である。ここでは、コンテンツデータがマークアップ言語(具体的にはXHTML)で記述されており、また、画像ファイルの参照を含んでいると仮定している。ネットワークプロトコル制御部302は、コンテンツデータと参照ファイルとを異なる論理チャンネルを介してデバイス制御部402に転送する。デバイス制御部402は、各論理チャンネルに対応付けられた受信バッファを有している。図8では、UPNP-DOWNCONTENT1チャンネルとUPNP-DOWNCONTENT2チャンネルとに対応付けられた2つの受信バッファ4100,4200が例示されている。
2つの受信バッファ4100,4200に格納されたコンテンツデータと参照ファイルは、同じ宛先のサービスデバイスによって処理される。例えば、コンテンツデータが印刷データである場合には、コンテンツデータと参照ファイルは両方ともにプリンタ404に供給され、コンテンツデータと参照ファイルによって表現されたページが印刷される。
図9〜図11は、第1実施例におけるコンテンツデータの転送手順を示すシーケンス図である。図9のステップ[1]では、コントロールポイント110Cが、アクション要求のリクエストメッセージF11をMFPサーバ300に転送する。このリクエストメッセージF11のヘッダには、宛先のパス名”/CONTROL/PRINTER/PRINTENHANCED”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。さらに、メッセージボディには、アクション要求の内容を示すSOAPエンベロープが含まれている。
アクション要求は、例えば新たな印刷ジョブのIDを作成する要求(CreateJob命令)である。この場合には、SOAPエンベロープには、ジョブの属性として以下のような印刷仕様を設定することが可能である。
・コピー部数
・レイアウト(1頁/1枚,2頁/1枚,デバイス設定値等)
・印刷の向き(ポートレイト/ランドスケープ、デバイス設定値等)
・用紙サイズ(A4,B4,デバイス設定値等)
・印刷用紙の種類(普通紙、写真用紙、透明シート、封筒、デバイス設定値等)
・印刷品質(低画質、通常、高画質、デバイス設定値等)
なお、「デバイス設定値」とは、複合機200に設定されている設定値を使用することを意味している。CreateJob命令には、このような種々の印刷仕様を設定することができるので、コントロールポイントを操作しているユーザが、所望の印刷仕様で複合機200に印刷を実行させることができる。
図9のステップ[2]では、MFPサーバ300が、リクエストメッセージF11についてUPnPプロトコルの解析を行う。具体的には、MFPサーバ300は、宛先のパス名のうちの最上位層の名前”/CONTROL”(以下、「最上位パス名」と呼ぶ)を解釈してUPNP-CONTROLチャンネルを選択する。ステップ[3]では、MFPサーバ300が、選択されたUPNP-CONTROLチャンネルを用いて、宛先のパス名とSOAPエンベロープとを含むメッセージF12をMFPデバイスユニット400に転送する。このメッセージF12内のSOAPエンベロープは、コントロールポイントから送られてきたSOAPエンベロープをそのままコピーしたものである。
図9のステップ[4]では、MFPデバイスユニット400が、受信したメッセージF12内のSOAPエンベロープに含まれているSOAPアクションを解析し、SOAPアクションに応じて処理を実行する。例えば、SOAPアクションが印刷ジョブの作成要求の場合には、印刷すべき文書を表す文書データ(XHTMLデータ)の送付先URIが設定された返信用のSOAPエンベロープが作成される。図9の例では、メッセージR11に示されているように、送付先URI(DataSinkURI)として”/DOWN/PRINTER/PRINTENHANCED”が設定されている。
ステップ[5]では、MFPデバイスユニット400が、このSOAPエンベロープを含むメッセージR11をMFPサーバ300に転送する。このときも、ステップ[4]で使用されたものと同じ論理チャンネル(UPNP-CONTROLチャンネル)が使用される。メッセージパケットR11のエラーコードフィールド(図6)には、MFPデバイスユニット400での処理が成功したか否かを示すエラーコード等が設定される。
ステップ[6]では、MFPサーバ300がメッセージR11のエラーコードを参照し、これに応じてSOAPエンベロープにHTTPのヘッダを付加する。ステップ[7]では、こうして作成されたHTTPのレスポンスメッセージR12がMFPサーバ300からコントロールポイント110Cに転送される。
続いて、図10のステップ[8]では、コントロールポイント110CがMFPサーバ300に対してコンテンツデータ(XHTMLデータ)を含むリクエストメッセージF13を転送する。このメッセージF13のヘッダには、リクエスト命令のメソッド(POSTメソッド)と、宛先のパス名”/DOWN/PRINTER/PRINTENHANCED”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。なお、宛先のパス名は、図9のステップ[7]で通知されたものである。
ステップ[9]では、MFPサーバ300が、このメッセージF13のヘッダを解析し、POST処理のデータ転送に使用するリクエストIDをMFPデバイスユニット400から取得する必要があることを判断する。リクエストIDは、コンテンツデータをMFPサーバ300からMFPデバイスユニット400に転送する際に、すべてのD4パケットのヘッダ(図6)に付して、他のメッセージと区別するために使用されるIDである。ステップ[10]では、MFPサーバ300が、リクエストIDを要求するメッセージF14をMFPデバイスユニット400に転送する。このメッセージF14のボディには、リクエスト命令のメソッド(POSTメソッド)と、宛先のパス名”/DOWN/PRINTER/PRINTENHANCED”とが記述されている。また、メッセージF14の転送には、UPNP-LOCALCONTROLチャンネルが使用される。図5で説明したように、コンテンツデータの転送に使用されるチャンネルとしては、コンテンツチャンネル(UPNP-DOWNCONTENTxチャンネルとUPNP-UPCONTENTxチャンネル)があるが、これらのコンテンツチャンネルは、コンテンツデータそのものを転送するためにのみ使用される。そこで、図10の例では、リクエストIDの取得要求のメッセージF14の転送には、UPNP-LOCALCONTROLチャンネルが利用される。このチャンネルは、MFPサーバ300とMFPデバイスユニット400の間において、MFPサーバ300を要求者とし、MFPデバイスユニット400を応答者とする通信を行う場合に使用されるチャンネルである。MFPサーバ300のネットワークプロトコル制御部302内には、HTTPリクエストの宛先の最上位パス名”/DOWN”とUPNP-LOCALCONTROLチャンネルとの対応関係が予め設定されている。図10のステップ[10]では、MFPサーバ300がこの対応関係を参照してUPNP-LOCALCONTROLチャンネルを用いることを決定し、リクエストIDを要求するメッセージF14をMFPデバイスユニット400に転送する。
ステップ[11]では、MFPデバイスユニット400が、このメッセージF14の要求に従ってリクエストIDを生成し、また、Ndown個のUPNP-DOWNCONTENTxチャンネルのうちの1つを指定するためのチャンネルIDも生成する。チャンネルIDの値としては、例えば、その時点で使用されていないUPNP-DOWNCONTENTxチャンネルのチャンネルIDの中で最も小さな値が割り当てられる。なお、リクエストIDとチャンネルIDの生成は、デバイス制御部402(図1)によって行われる。ステップ[12]では、MFPデバイスユニット400からMFPサーバ300に、リクエストIDとチャンネルIDを含むメッセージR13が返信される。この例では、リクエストIDは”0010”であり、チャンネルIDは”1”である。このレスポンスにも、UPNP-LOCALCONTROLチャンネルが使用される。
こうしてリクエストIDとチャンネルIDがMFPサーバ300に通知され、また、ステップ[13]においてMFPサーバ300がコンテンツデータの受信を完了すると、ステップ[14]において、MFPサーバ300がコンテンツデータ(XHTMLデータ)を含むメッセージF15をMFPデバイスユニット400に転送する。XHTMLデータには、参照される画像データのURI”ImageURI”が記述されている。このメッセージF15の各パケットのヘッダには、ステップ[12]で通知されたリクエストIDが記入されている。また、論理チャンネルとしては、Ndown個のUPNP-DOWNCONTENTxチャンネルの中で、チャンネルIDで指定された1つのチャンネルが使用される。図10の例では、チャンネルIDの値が”1”なので、1番目のチャンネルUPNP-DOWNCONTENT1が使用されている。MFPデバイスユニット400は、メッセージF15のリクエストIDを参照することによって、これらのパケットがステップ[10]で要求された処理のためのパケットであることを容易に認識することができる。また、コンテンツデータの送信処理の際には、予め設けられたNdown個の論理チャンネルUPNP-DOWNCONTENTxのうちの1つを1つのコンテンツに割り当てるので、多数のコンテンツ送信処理を並行して行うことが可能である。転送されたコンテンツデータは、第1の受信バッファ4100(図8)に格納される。
コンテンツデータの転送処理が終了すると、ステップ[15]において、処理が完了したことを示すレスポンスメッセージR14がMFPデバイスユニット400からMFPサーバ300に転送される。ステップ[16]では、MFPサーバ300がメッセージR14のエラーコードを参照し、これに応じてHTTPのヘッダを付加する。ステップ[17]では、こうして作成されたHTTPのレスポンスメッセージR15がMFPサーバ300からコントロールポイント110Cに転送される。
続いて、図11のステップ[18]において、MFPデバイスユニット400内のパーサがXHTMLを解釈し、コンテンツデータに画像データの参照が含まれていることが検出されると、ステップ[19]において、MFPデバイスユニット400からMFPサーバ300に対して参照ファイルの取得要求を含むメッセージR16が転送される。このメッセージR16のボディには、リクエスト命令のメソッド(GETメソッド)と、宛先のURI”ImageURI”とが記述されている。また、参照ファイルの転送で使用されるべきUPNP-DOWNCONTENTxチャンネルのチャンネルIDの値も記述されている。この例では、図10のステップ[14]で使用されたチャンネルID=1の次のチャンネルID=2が使用されている。このメッセージR16はUPNP-LOCALEVENTチャンネルを用いて行われる。このチャンネルは、前述したように、MFPサーバ300とMFPデバイスユニット400の間において、MFPデバイスユニット400を要求者とし、MFPサーバ300を応答者とする通信を行う場合に使用されるチャンネルである。
ステップ[20]では、MFPサーバ300がこのメッセージR16を解析して、参照ファイル転送用のリクエストIDを作成する。そして、この新たなリクエストIDを含むメッセージF16が、ステップ[21]でMFPデバイスユニット400に返信される。図11の例では、リクエストIDは、”0011”に設定されている。MFPサーバ300は、さらに、ステップ[22]において、参照ファイルをそのURI(=”ImageURI”)に従って取得するためのHTTPリクエストメッセージR17をネットワークを介して発信する。得11では、参照ファイルがコントロールポイント110Cから取得されるものと仮定しているが、他の任意のネットワーク装置(例えば図1の画像サーバ130)から参照ファイルを取得することが可能である。
ステップ[23]では、参照ファイルとしての画像データを含むレスポンスメッセージF17がMFPサーバ300に返信される。ステップ[24]では、MFPサーバ300が、この画像データを含むメッセージF18をMFPデバイスユニット400に転送する。このメッセージF18のヘッダには、ステップ[14]で通知されたリクエストIDが記述されている。また、論理チャンネルとしては、Ndown個のUPNP-DOWNCONTENTxチャンネルの中で、ステップ[19]で通知されたチャンネルIDに対応する1つのチャンネル(UPNP-DOWNCONTENT2)が使用される。こうしてMFPデバイスユニット400に転送された参照ファイル(画像データファイル)は、第2の受信バッファ4200(図8)に格納される。ステップ[25]では、MFPデバイスユニット400のプリンタ404が、XHTMLデータ及び画像データを用いて、XHTMLデータで記述された画像の印刷を実行する。
このように、コンテンツデータと参照ファイルとを異なる受信バッファに格納することの利点は以下の通りである。従来のように、同じ受信バッファ内にコンテンツデータと参照ファイルとを格納すると、これらを組み合わせたコンテンツ(通常は画像)を再現するために複雑な制御が必要になる。例えば、XHTMLデータ(「XHTML文書」とも呼ぶ)は、パーサによって解析された後、描画処理が実行される。一方、参照ファイルとしての画像データは、圧縮データの伸長処理と、XHTML文書の画像に貼り付ける処理とが実行される。このように、コンテンツデータと参照ファイルに対しては全く異なる処理が実行されるのが普通なので、これらを同じ受信バッファ内に同時に格納すると、それぞれの格納位置を厳密に管理しておく必要が生じる。また、仮に、コンテンツデータの処理完了後に参照ファイルを受信するようにした場合には、コンテンツデータの処理完了によって受信バッファが空くまで参照ファイルを取得できないので、全体の処理速度が低下する。これに対して、本実施例では、コンテンツデータと参照ファイルを別個の受信バッファに格納するので、両者を並行してそれぞれ処理することが可能であり、制御がより単純になるという利点がある。
また、本実施例では、複数のコンテンツ転送用チャンネル(UPNP-DOWNCONTENTxチャンネル)の各チャンネルに受信バッファがそれぞれ1つずつ対応付けられているので、コンテンツデータ及び参照ファイルの転送とその後の処理をそれぞれ容易に制御することができる。
なお、参照ファイルが複数存在する場合には、複数の参照ファイルを互いに異なる論理チャンネルを介して転送し、異なる受信バッファに格納するようにしてもよい。こうすれば、個々の参照ファイルの格納や処理を別個に行えるので、それぞれの処理の制御が容易になる。また、1つの参照ファイル(例えば画像ファイル)を、レンジ指定付きのGETメソッドによって複数回のセッションで取得する場合がある。このような場合にも、各レンジの参照ファイルを異なる論理チャンネルで転送して異なる受信バッファに格納するようにしてもよい。但し、複数の参照ファイルや、レンジ指定されて複数個に分割された参照ファイルを、1つの受信バッファに格納することも可能である。
D.コンテンツデータ転送の第2実施例:
図12は、第2実施例におけるデータ転送の流れを示す説明図である。第2実施例では、コンテンツデータと参照ファイルが同じ論地チャンネル(UPNP-DOWNCONTENT)を使用する。なお、第2実施例では、ダウンロード用のコンテンツチャンネルUPNP-DOWNCONTENTが1つだけしか設けられていないものと仮定している。但し、第1実施例で説明した複数のコンテンツチャンネルUPNP-DOWNCONTENTxのうちの1つを用いてコンテンツデータと参照ファイルの両方を転送するものとしてもよい。
第2実施例においても、コンテンツデータと参照ファイルが異なる受信バッファ4100,4200に格納される点は図8に示した第1実施例と同じである。デバイス制御部402は、D4パケットのヘッダ部に付与される識別子に応じて、コンテンツデータと参照ファイルを異なる受信バッファに格納すべきであることを判定する。
図13は、第2実施例で使用するD4パケットの構成を示す説明図である。前述した図6のD4パケットとの違いは、IDフィールドにおいてリクエストIDの代わりにジョブIDを格納する点である。第1実施例で使用したリクエストIDは、MFPサーバ300とMFPデバイスユニット400の一方が他方の要求に応じて付与していた。第2実施例で使用されるジョブIDは、MFPサーバ300とMFPデバイスユニット400の一方が自ら付与する点でリクエストIDと異なっている。但し、リクエストIDもジョブIDも、転送されるメッセージを識別するために使用する識別子(「転送識別子」とも呼ぶ)としての機能は同じである。従って、第2実施例においても、ジョブIDの代わりにリクエストIDを用いても良い。
図14〜図16は、第2実施例におけるコンテンツデータの転送手順を示すシーケンス図である。図14のステップ[1]では、コントロールポイント110Cが、印刷ジョブの作成を要求するリクエストメッセージF21をMFPサーバ300に転送する。このリクエストメッセージF21は、図9のメッセージF11と同じものである。
図14のステップ[2]では、MFPサーバ300が、リクエストメッセージF21についてUPnPプロトコルの解析を行う。この解析の結果、このメッセージF21がプリンタデバイスのコントロールサーバに転送すべきものであることが認識され、また、印刷ジョブ作成要求であることを認識されてジョブIDが割り当てられる。各印刷ジョブにはそれぞれ固有のジョブIDが割り当てられるので、複数の印刷ジョブを複合機200が並行して受信し、それぞれの印刷処理を実行することができる。
ステップ[3]では、MFPサーバ300が、ジョブIDと、宛先のパス名と、SOAPエンベロープとを含むメッセージF22をMFPデバイスユニット400に転送する。このメッセージF22は、IDフィールドにジョブIDが設定されている点で図9に示した第1実施例のメッセージF12と異なっている。
図14のステップ[4]では、MFPデバイスユニット400が、受信したメッセージF22内のSOAPアクションを処理し、返信用のSOAPエンベロープを作成する。ステップ[5]では、MFPデバイスユニット400が、このSOAPエンベロープを含むメッセージR21をMFPサーバ300に転送する。このメッセージR21のSOAPエンベロープには、XHTMLデータの送付先URI(DataSinkURI)が含まれている。このURIのパス名”/DOWN/PRINTER/PRINTENHANCED/00000001”の最下層の部分”/00000001”は、ステップ[3]で通知されたジョブIDである。また、ジョブIDを除いたパス名”/DOWN/PRINTER/PRINTENHANCED”は、XHTMLデータの真の送付先URIである。図9と比較すれば理解できるように、このメッセージR21と図9のメッセージR11との差違は、このジョブIDの部分だけである。
ステップ[6]では、MFPサーバ300がメッセージR21にHTTPのヘッダを付加する。ステップ[7]では、こうして作成されたHTTPのレスポンスメッセージR22がMFPサーバ300からコントロールポイント110Cに転送される。
続いて、図15のステップ[8]では、コントロールポイント110Cが、MFPサーバ300に対してコンテンツデータ(XHTMLデータ)を含むリクエストメッセージF23を転送する。このメッセージF23の宛先のパス名は、図14のステップ[7]で通知されたものである。
ステップ[9]では、MFPサーバ300が、リクエストメッセージF23についてUPnPプロトコルの解析を実行する。この解析の結果、このメッセージF23の宛先の真のURI”/DOWN/PRINTER/PRINTENHANCED”が認識され、またジョブID”00000001”が抽出される。
ステップ[10]では、MFPサーバ300が、宛先のパス名”/DOWN/PRINTER/PRINTENHANCED”とXHTMLデータとを含むメッセージF24をMFPデバイスユニット400に転送する。このとき、D4パケットのIDフィールド(図13)にはジョブIDが設定される。この転送にはUPNP-DOWNCONTENTチャンネルが利用される。転送されたXHTMLデータは、第1の受信バッファ4100(図12)に格納される。
コンテンツデータの転送処理が終了すると、ステップ[12]において、処理が完了したことを示すレスポンスメッセージR23がMFPデバイスユニット400からMFPサーバ300に転送される。このメッセージR23にもジョブIDが付されている。従って、MFPサーバ300は、このジョブIDのジョブ(XHTMLデータの転送)が終了したことを認識することができる。ステップ[13]では、MFPサーバ300がメッセージR23のエラーコードを参照し、これに応じてHTTPのヘッダを付加する。ステップ[14]では、こうして作成されたHTTPのレスポンスメッセージR24がMFPサーバ300からコントロールポイント110Cに転送される。
続いて、図16のステップ[15]において、MFPデバイスユニット400内のパーサがXHTMLを解釈し、コンテンツデータに画像データの参照が含まれていることが検出されると、ステップ[16]において、MFPデバイスユニット400からMFPサーバ300に対して参照ファイルの取得要求を含むメッセージR25が転送される。このメッセージR16のヘッダには、参照ファイル転送のための新たなジョブID”10000001”が付加されている。このジョブIDは、そのMSBがコンテンツデータ転送用のジョブID(図15のメッセージF24参照)と異なるだけであり、他のビットはコンテンツデータ転送用のジョブIDと同じ値に設定されていることが好ましい。こうすれば、両者が同じコンテンツの再現に使用されるものであることを容易に認識することができる。メッセージR25のボディには、リクエスト命令のメソッド(GETメソッド)と、宛先のURI”ImageURI”とが記述されている。なお、このメッセージR25と、図11のメッセージR16との差違は、メッセージR25ではヘッダにジョブIDが設定されている点と、ボディにチャンネルIDが設定されていない点だけである。
ステップ[17]では、MFPサーバ300がこのメッセージR16を解釈し、ステップ[18]ではMFPデバイスユニット400にそのレスポンスメッセージF25を返信する。MFPサーバ300は、さらに、ステップ[19]において、参照ファイルをそのURI(=”ImageURI”)に従って取得するためのHTTPリクエストメッセージR26をネットワークに対して発信する。このメッセージR26は、図11のメッセージR17と同じものである。
ステップ[20]では、参照ファイルとしての画像データを含むレスポンスメッセージF26がMFPサーバ300に返信される。ステップ[21]では、MFPサーバ300が、この画像データを含むメッセージF27をMFPデバイスユニット400に転送する。このメッセージF27のヘッダには、ステップ[16]で通知されたジョブIDが記述されている。また、論理チャンネルとしては、XHTMLデータの転送時と同じ論理チャンネルUPNP-DOWNCONTENTが使用される。こうしてMFPデバイスユニット400に転送された参照ファイル(画像データファイル)は、第2の受信バッファ4200(図12)に格納される。ステップ[22]では、MFPデバイスユニット400のプリンタ404が、XHTMLデータ及び画像データを用いて、XHTMLデータで記述された画像の印刷を実行する。
このように、第2実施例では、コンテンツデータと参照ファイルの両方を同一の論理チャンネルを介して転送おり、論理チャンネルで用いられるパケットの識別子(ジョブID)を用いてコンテンツデータと参照ファイルとを区別している。そして、それぞれの識別子に応じて、コンテンツデータと参照ファイルを異なる受信バッファに格納する。この結果、第1実施例と同様に、コンテンツデータ及び参照ファイルの転送とその後の処理を容易に制御することができる。
なお、第2実施例においても、参照ファイルが複数存在する場合に、個々の参照ファイルを異なる受信バッファに格納するようにしてもよい。この場合には、個々の参照ファイルに対して固有の識別子を付与すれば良い。
E.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
E1.変形例1:
上記実施例では、UPnP対応のネットワーク装置として複数のデバイスを含む複合機200を用いていたが、この代わりに、1つのデバイス(例えばプリンタ)のみを含む単機能のネットワーク装置を採用することも可能である。換言すれば、ネットワーク装置は、少なくとも1つのデバイスを有していれば良い。
E2.変形例2:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
本発明の実施例を適用するネットワークシステムの構成を示す概念図である。 複合機の内部構成を示すブロック図である。 MFPサーバの各種プロトコルの階層構造を示すブロック図である。 MFPデバイスユニットの各種プロトコルの階層構造を示すブロック図である。 USBのインタフェース/エンドポイント構成と論理チャンネルの構成とを示す説明図である。 プリンタインタフェースを介したUSB転送に用いられるパケットの構成を示す説明図である。 UPnPアーキテクチャを利用した処理の典型例を示すシーケンス図である。 第1実施例においてコントロールポイントからコンテンツを受けたときの複合機内のデータ転送の流れを示す説明図である。 第1実施例におけるコンテンツデータの転送手順を示すシーケンス図である。 第1実施例におけるコンテンツデータの転送手順を示すシーケンス図である。 第1実施例におけるコンテンツデータの転送手順を示すシーケンス図である。 第2実施例においてコントロールポイントからコンテンツを受けたときの複合機内のデータ転送の流れを示す説明図である。 第2実施例で使用されるパケットの構成を示す説明図である。 第2実施例におけるコンテンツデータの転送手順を示すシーケンス図である。 第2実施例におけるコンテンツデータの転送手順を示すシーケンス図である。 第2実施例におけるコンテンツデータの転送手順を示すシーケンス図である。
符号の説明
100…パーソナルコンピュータ
100D…プリンタドライバ
110…デジタルカメラ
110C,120C…コントロールポイント
120…TVセット
130…画像サーバ
200…複合機
300…MFPサーバ
302…ネットワークプロトコル制御部
310…中央制御部
320…RAM
330…ROM
340…ネットワーク制御部
342…コネクタ
350…USBホスト制御部
352…ルートハブ
354,356…USBコネクタ
400…MFPデバイスユニット
401…ディスパッチャ
402…デバイス制御部
404…プリンタデバイス
406…スキャナデバイス
408…ストレージデバイス
410…中央制御部
420…RAM
430…ROM
440…印刷エンジン
450…スキャナエンジン
460…USBデバイス制御部
462…USBコネクタ
470…USBデバイス制御部
472…USBコネクタ
480…PCカードインタフェース
482…スロット
490…操作パネル制御部
492…操作パネル
500…ビューワ制御部
502…ビューワ
510…USBホスト制御部
512…ルートハブ
514…USBコネクタ
1000…サービスプロトコル解釈部
1100…UPnPデバイスアーキテクチャ
1210…非UPnPプリンタ機能部
1220…非UPnPスキャナ機能部
1230…非UPnPストレージ機能部
1310…USBプリンタクラスドライバ
1320…USBスキャナクラスドライバ
1330…USBストレージクラスドライバ
2210…非UPnPプリンタ機能部
2220…非UPnPスキャナ機能部
2230…非UPnPストレージ機能部
2310…USBプリンタクラスドライバ
2320…USBスキャナクラスドライバ
2330…USBストレージクラスドライバ
2400…UPnPデバイス機能部

Claims (5)

  1. ネットワーク型プラグアンドプレイに対応したネットワーク装置であって、
    ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスと、
    前記サービスデバイスの制御を行うデバイス制御部と、
    メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの内容を前記デバイス制御部に転送するネットワークプロトコル制御部と、
    を備え、
    前記デバイス制御部は、前記メッセージボディがマークアップ言語で記述されたコンテンツデータであってファイルの参照を含むコンテンツデータである場合には、前記コンテンツデータと前記参照されたファイルとを異なる受信バッファ内に格納する、ネットワーク装置。
  2. 請求項1記載のネットワーク装置であって、
    前記ネットワークプロトコル制御部と前記デバイス制御部とは、コンテンツデータを転送するための第1と第2の論理チャンネルを有しており、
    前記デバイス制御部は、前記第1と第2の論理チャンネルに対応付けられた第1と第2の受信バッファを有しており、
    前記コンテンツデータと前記参照されたファイルは、前記第1と第2の論理チャンネルによってそれぞれ転送されて前記第1と第2の受信バッファ内にそれぞれ格納される、ネットワーク装置。
  3. 請求項1記載のネットワーク装置であって、
    前記ネットワークプロトコル制御部と前記デバイス制御部とは、コンテンツデータを転送するための少なくとも1つの論理チャンネルを有しており、
    前記ネットワークプロトコル制御部は、前記論理チャンネルを介して前記前記コンテンツデータと前記参照されたファイルを前記デバイス制御部に転送する際に、前記コンテンツデータと前記参照されたファイルに対して異なる識別子を付与して転送し、
    前記デバイス制御部は、前記識別子に応じて、前記コンテンツデータと前記参照されたファイルとを異なる受信バッファ内に格納することを判断する、ネットワーク装置。
  4. 請求項1ないし3のいずれかに記載のネットワーク装置であって、
    前記コンテンツデータが複数の参照ファイルを含む場合には、個々の参照ファイルを異なる受信バッファ内に格納する、ネットワーク装置。
  5. ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスと、前記サービスデバイスの制御を行うデバイス制御部と、前記ネットワーク上のクライアントから受信したメッセージを前記デバイス制御部に転送するネットワークプロトコル制御部とを含むネットワーク型プラグアンドプレイに対応したネットワーク装置を制御する方法であって、
    (a)メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信する工程と、
    (b)前記メッセージボディがマークアップ言語で記述されたコンテンツデータであってファイルの参照を含むコンテンツデータである場合には、前記コンテンツデータと前記参照されたファイルとを異なる受信バッファ内に格納する工程と、
    を備える方法。
JP2005269487A 2005-09-16 2005-09-16 ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御 Pending JP2007080126A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005269487A JP2007080126A (ja) 2005-09-16 2005-09-16 ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005269487A JP2007080126A (ja) 2005-09-16 2005-09-16 ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御

Publications (1)

Publication Number Publication Date
JP2007080126A true JP2007080126A (ja) 2007-03-29

Family

ID=37940347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005269487A Pending JP2007080126A (ja) 2005-09-16 2005-09-16 ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御

Country Status (1)

Country Link
JP (1) JP2007080126A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046091A (ja) * 2013-08-29 2015-03-12 セイコーエプソン株式会社 受信装置、送信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046091A (ja) * 2013-08-29 2015-03-12 セイコーエプソン株式会社 受信装置、送信装置

Similar Documents

Publication Publication Date Title
JP4645164B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御
US7664135B2 (en) Control of network plug-and-play compliant device
US20060150236A1 (en) Control of network plug-and-play compliant device
JP4508114B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
US7869073B2 (en) Image forming system, image forming method and information terminal device
US7594040B2 (en) Network relay device having network plug-and-play compliant protocols for network relay
JP4464029B2 (ja) 情報処理方法および制御プログラムおよび情報処理装置および周辺装置および応答方法および代理応答装置およびネットワークシステム
JP4774973B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP5063253B2 (ja) ネットワークシステムおよび通信方法
JP5127314B2 (ja) 通信装置、通信装置の制御方法及びプログラム
JP4760425B2 (ja) プリンタを用いた印刷におけるスタイルシートの切替
JP3876588B2 (ja) プリンタ、プリンタの制御方法およびプリントシステム並びに記録媒体
JP4827943B2 (ja) 情報処理装置、ネットワークシステム、クライアント装置、情報処理方法、及び記憶媒体
JP4765496B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
JP2007156691A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP4935027B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
JP4045800B2 (ja) プリントシステム及び方法
JP2007080126A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御
JP4640147B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP4378372B2 (ja) 情報処理方法、情報処理装置、及び記憶媒体
JP4791240B2 (ja) 印刷制御装置および印刷制御方法
JP2007128215A (ja) ネットワークデバイスに関する情報収集
JP2005157540A (ja) 印刷プロトコル変換装置及びデータ蓄積デバイス
JP2007072795A (ja) Usb論理チャンネルのオープン制御
JP4720708B2 (ja) 印刷装置及び印刷方法