JP2007072795A - Usb論理チャンネルのオープン制御 - Google Patents

Usb論理チャンネルのオープン制御 Download PDF

Info

Publication number
JP2007072795A
JP2007072795A JP2005259561A JP2005259561A JP2007072795A JP 2007072795 A JP2007072795 A JP 2007072795A JP 2005259561 A JP2005259561 A JP 2005259561A JP 2005259561 A JP2005259561 A JP 2005259561A JP 2007072795 A JP2007072795 A JP 2007072795A
Authority
JP
Japan
Prior art keywords
usb
upnp
mfp
channel
channels
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
JP2005259561A
Other languages
English (en)
Inventor
Yasuhiro Oshima
康裕 大島
Tsutomu Mogi
努 茂木
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 JP2005259561A priority Critical patent/JP2007072795A/ja
Priority to EP06254584A priority patent/EP1763198A3/en
Priority to US11/517,439 priority patent/US7664135B2/en
Publication of JP2007072795A publication Critical patent/JP2007072795A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract


【課題】 USB接続において多様な論理チャンネルを必要な数だけ使用することを可能にする技術を提供する。
【解決手段】 装置のUSBホストが、USBデバイスに対して特定用途の論理チャンネルのチャンネル数の問い合わせを送信し、USBデバイスが、問い合わせに応じて特定用途の論理チャンネルのチャンネル数をUSBホストに返信する。そして、USBホストが、応答されたチャンネル数だけ特定用途の論理チャンネルをオープンする。
【選択図】 図7

Description

この発明は、USBの論理チャンネルをオープンを制御する技術に関する。
近年のコンピュータでは、プラグアンドプレイに対応した各種の周辺装置が利用されている。プラグアンドプレイは、よく知られているように、コンピュータの起動後に、周辺装置を任意のタイミングでコンピュータに接続したり、コンピュータから切断したりすることができる技術である。
USB(Universal Serial Bus)は、プラグアンドプレイ対応の装置に頻繁に用いられている(特許文献1)。USB接続は、USBホストとUSBデバイスとの間で論理チャンネルをオープンし、この論理チャンネルを用いてデータ転送が行われる。通常は、論理チャンネルとして、コントロープパイプ、バルクパイプ、インタラクトパイプという3つの論理チャンネルが使用される。
特開2004−112078
しかし、装置によっては、これらとは異なる多様な論理チャンネルを利用したい場合がある。しかし、従来は、多様な論理チャンネルを使用するのは困難な場合があった。特に、USBデバイスの実装に応じて論理チャンネルの数を変更するのは困難であるという問題があった。
ところで、近年では、プラグアンドプレイ技術をネットワークに適用したものとして、ユニバーサルプラグアンドプレイ(以下、「UPnP」と呼ぶ。UPnPは UPnP Implementers Corporationの商標)が開発されてきている。UPnPを用いると、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることができる。本明細書では、UPnPのように、ネットワークにおいてプラグアンドプレイを実現するアーキテクチャを、「ネットワーク型プラグアンドプレイ」と呼ぶ。
特開2001−290724
UPnP対応のネットワーク装置は、種々のサービスデバイスとして機能することが可能である。ここで、「サービスデバイス」とは、外部からの要求に応じてサービスを実行するデバイスを意味している。サービスデバイスは、プリンタや、スキャナ、ファクシミリ、コピー機、記憶装置、カメラ、時計などの種々の装置として実現可能である。また、1つの装置で複数のサービスデバイスの機能を実現することも可能である。
このように、UPnP対応のネットワーク装置は多様な形態を採り得る。しかし、その反面、ネットワーク装置の実装が複雑になり易いという問題があった。
本発明は、USB接続において多様な論理チャンネルを必要な数だけ使用することを可能にする技術を提供することを目的とする。また、ネットワーク型プラグアンドプレイ対応のネットワーク装置の実装を容易にする技術を提供することを他の目的とする。
本発明の装置は、USBホストとUSBデバイスとを備えた装置であって、
前記USBホストが、前記USBデバイスに対して特定用途の論理チャンネルのチャンネル数の問い合わせを送信し、
前記USBデバイスが、前記問い合わせに応じて前記特定用途の論理チャンネルのチャンネル数を前記USBホストに返信し、
前記USBホストが、前記応答されたチャンネル数だけ前記特定用途の論理チャンネルをオープンすることを特徴とする。
この装置によれば、不要な論理チャンネルをオープンすることなく、多様な論理チャンネルを必要な数だけ使用することができる。
前記装置は、ネットワーク型プラグアンドプレイに対応したネットワーク装置であって、ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスを備えており、
前記USBデバイスは、前記サービスデバイスの制御を行うデバイス制御部を含み、
前記USBホストは、メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部を含むようにしてもよい。
この構成によれば、デバイス制御部の実装に応じた必要な数の論理チャンネルをオープンできるので、ネットワーク装置全体の実装も容易になる。
また、前記特定用途の論理チャンネルは、コンテンツデータを送信又は受信するための論理チャンネルであるものとしてもよい。
この構成によれば、複数のコンテンツデータを並行して送信又は受信することができる。
前記USBホストから前記USBデバイスに対する論理チャンネル数の問い合わせは、前記装置の起動時に実行されるものとしてもよい。
この構成によれば、起動時に必要な数の論理チャンネルをオープンするので、その後はいつでもそれらの論理チャンネルを使用して多様なデータ転送を実行することができる。
前記特定用途の論理チャンネルは、D4パケットを利用した論理チャンネルとすることが好ましい。
この構成によれば、D4パケットのヘッダ部を利用して多様な論理チャンネルを構成できるので、多様な論理チャンネルを用いて多様なデータ転送を実現することが可能である。
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク装置、ネットワークプロトコル制御装置、それらの装置の制御方法及び制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、本発明の実施の形態を以下の順序で説明する。
A.用語の説明:
B.システムの概要:
C.コンテンツチャンネルのオープンシーケンス:
D.各種のデータ転送シーケンス:
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-DOWNCONTENTxチャンネルの個数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のいずれが割当てたかを一意に識別できるビット(例えば最上位ビット)を設けておくことが好ましい。なお、リクエストIDを「ジョブID」とも呼ぶ。
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.コンテンツチャンネルのオープンシーケンス:
図8は、コンテンツチャンネルのオープン手順を示すシーケンス図である。複合機200が起動すると、ステップ[1]では、MFPサーバ300が、MFPデバイスユニット400に対してコンテンツチャンネル(UPNP-DOWNCONTENTx, UPNP-UPCONTENTx)以外の論理チャンネルのオープンを指示する。この指示は、コントロールパイプ(すなわち図5(A)のコントロールエンドポイントEP#0)を用いて行われる。なお、コンテンツチャンネル以外の論理チャンネルの用途と数は予め決まっているので、起動時にMFPサーバ300からこれらの論理チャンネルをすべてオープンすることができる。ステップ[2]では、MFPデバイスユニット400が指示された論理チャンネルをすべてオープンする。
なお、MFPサーバ300からの指示に応じてMFPデバイスユニット400をオープンする理由は、USB接続に関してはMFPサーバ300がUSBホストとして構成され、MFPデバイスユニットがUSBデバイスとして構成されているからである(図2)。
ステップ[3]では、MFPサーバ300が、MFPデバイスユニット400に対してコンテンツチャンネルのチャンネル数の問い合わせを送信する。具体的には、”GetChannelInfo”というローカル要求を発信する。なお、この問い合わせは、例えばUPNP-LOCALCONTROLチャンネルを用いて行われる。ステップ[4]では、MFPデバイスユニット400が、MFPデバイスユニット400の実装に応じて、必要なチャンネル数を取得する。例えば、3つのサービスデバイスで必要なチャンネル数を以下の通りと仮定する。
(1)プリンタ:DOWNCONTENTxチャンネル=2,UPNCONTENTxチャンネル=1。
(2)スキャナ:DOWNCONTENTxチャンネル=1,UPNCONTENTxチャンネル=1。
(3)ストレージ:DOWNCONTENTxチャンネル=1,UPNCONTENTxチャンネル=1。
このとき、必要なチャンネル数は、UPNP-DOWNCONTENTxチャンネルが4、UPNP-UPCONTENTxチャンネルが3となる。従って、MFPデバイスユニット400は、Ndown=4、Nup=3を取得する。なお、これらのチャンネル数Ndown,Nupは、MFPデバイスユニット400内のROM430(図2)内に格納されており、ステップ[4]ではそれらの値が読み出される。
ステップ[5]では、MFPデバイスユニット400が、チャンネル数Ndown、NupをMFPサーバ300に応答する。MFPサーバ300は、ステップ[6]でチャンネル数Ndown、Nupを登録し、ステップ[7],[8] でこれらの数Ndown、NupだけUPNP-DOWNCONTENTxチャンネルと UPNP-UPCONTENTxチャンネルをそれぞれオープンする。
このように、本実施例では、MFPサーバ300がMFPデバイスユニット400の実装に関する各種の情報を要求できるようにUPNP-LOCALCONTROLチャンネルを構成しているので、MFPサーバ300がコンテンツチャンネルの必要数をMFPデバイスユニット400に要求することが可能である。また、MFPサーバ300は、応答された数Ndown、NupだけUPNP-DOWNCONTENTxチャンネルと UPNP-UPCONTENTxチャンネルをそれぞれオープンするので、MFPデバイスユニット400の実装に適した必要な数のコンテンツチャンネルをオープンすることが可能である。また、不要に多数のコンテンツチャンネルをオープンすることを防止できる。
なお、コンテンツチャンネルのオープンは、複合機200の起動時に実行し、その後は、オープン状態を維持することが好ましい。こうすれば、いつでも複数のコンテンツチャンネルを利用して直ちにコンテンツデータの転送を行うことが可能である。但し、複合機の起動時にすべてのコンテンツチャンネルをオープンする代わりに、必要な場合にMFPサーバ300又はMFPデバイスユニット400からの要求に応じてコンテンツチャンネルをオープンするようにしてもよい。
なお、図8では、コンテンツチャンネルを必要な数だけオープンする例を説明したが、この手順は他の用途の論理チャンネルのオープンにも利用可能であり、一般に、特定用途のために使用される論理チャンネルを必要な数だけオープンする際に利用可能である。なお、「特定用途の論理チャンネル」とは、転送対象のデータの種類が予め決まっている論理チャンネルを意味する。
D:各種のデータ転送シーケンス:
図9は、コントロールポイントから複合機200にサービスコンテンツを送信する場合の手順を示すシーケンス図である。ステップ[1]では、コントロールポイント110CからMFPサーバ300に、リクエストメッセージF41が転送される。このメッセージF41には、リクエスト命令のメソッド(POSTメソッド)と、宛先のパス名”/DOWN/PRINTER/PRINTENHANCED1”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。ステップ[2]では、MFPサーバ300が、このメッセージF41のヘッダを解析し、POST処理のデータ転送に使用するリクエストIDをMFPデバイスユニット400から取得する必要があることを判断する。リクエストIDは、コンテンツデータをMFPサーバ300からMFPデバイスユニット400に転送する際に、すべてのD4パケットのヘッダ(図6)に付して、他のパケットと区別するために使用されるIDである。ステップ[3]では、MFPサーバ300が、リクエストIDを要求するメッセージF42をMFPデバイスユニット400に転送する。このメッセージF42のボディには、リクエスト命令のメソッド(POSTメソッド)と、宛先のパス名”/DOWN/PRINTER/PRINTENHANCED1”とが記述されている。また、メッセージF42の転送には、UPNP-LOCALCONTROLチャンネルが使用される。
ステップ[4]では、MFPデバイスユニット400が、このメッセージF42の要求に従ってリクエストIDを生成し、また、Ndown個のUPNP-DOWNCONTENTxチャンネルのうちの1つを指定するためのチャンネルIDも生成する。チャンネルIDの値としては、例えば、その時点で使用されていないUPNP-DOWNCONTENTxチャンネルのチャンネルIDの中で最も小さな値が割り当てられる。なお、リクエストIDとチャンネルIDの生成は、デバイス制御部402(図1)によって行われる。ステップ[5]では、MFPデバイスユニット400からMFPサーバ300に、リクエストIDとチャンネルIDを含むメッセージR41が返信される。この際にも、UPNP-LOCALCONTROLチャンネルが使用される。
こうしてリクエストIDとチャンネルIDがMFPサーバ300に通知され、また、ステップ[6]においてMFPサーバ300がコンテンツデータの受信を完了すると、ステップ[7]において、MFPサーバ300がコンテンツデータ(例えばXHTMLデータ)を含むメッセージF43をMFPデバイスユニット400に転送する。このメッセージF43の各パケットのヘッダには、ステップ[5]で通知されたリクエストIDが記入されている。また、論理チャンネルとしては、Ndown個のUPNP-DOWNCONTENTxチャンネルの中で、チャンネルIDで指定された1つのチャンネルが使用される。図9の例では、チャンネルIDの値が”1”なので、1番目のチャンネルUPNP-DOWNCONTENT1が使用されている。MFPデバイスユニット400は、メッセージF43のリクエストIDを参照することによって、これらのパケットがステップ[3]で要求された処理のためのパケットであることを容易に認識することができる。また、コンテンツデータの送信処理の際には、予め設けられたNdown個の論理チャンネルUPNP-DOWNCONTENTxのうちの1つを1つのコンテンツに割り当てるので、多数のコンテンツ送信処理を並行して行うことが可能である。
コンテンツデータの転送処理が終了すると、ステップ[8]において、処理が完了したことを示すレスポンスメッセージF42がMFPデバイスユニット400からMFPサーバ300に転送される。ステップ[9]では、MFPサーバ300がメッセージR42のエラーコードを参照し、これに応じてHTTPのヘッダを付加する。ステップ[10]では、こうして作成されたHTTPのレスポンスメッセージR43がMFPサーバ300からコントロールポイント110Cに転送される。
このように、サービスコンテンツの送信(ダウンロード)の際には、まずUPNP-LOCALCONTROLチャンネルを使用して、D4パケットを識別するためのリクエストIDと、使用する論理チャンネルを指定するためのチャンネルIDが取得される。従って、同一のコンテンツデータの転送処理に用いられるパケットを容易に識別することができる。また、複数のUPNP-DOWNCONTENTxチャンネルの中から、使用可能なチャンネルを容易に選択することができる。
図10は、コントロールポイントが複合機200からサービスコンテンツを取得する場合の手順を示すシーケンス図である。ステップ[1]では、コントロールポイント110CからMFPサーバ300に、リクエストメッセージF51が転送される。このメッセージF51には、リクエスト命令のメソッド(GETメソッド)と、宛先のパス名”/UP/PRINTER/PRINTENHANCED1”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。ステップ[2]では、MFPサーバ300が、このメッセージF51のヘッダを解析し、GET処理のデータ転送に使用するリクエストIDをMFPデバイスユニット400から取得する必要があることを判断する。ステップ[3]では、MFPサーバ300が、リクエストIDを要求するメッセージF52をMFPデバイスユニット400に転送する。このメッセージF52のボディには、リクエスト命令のメソッド(GETメソッド)と、宛先のパス名”/UP/PRINTER/PRINTENHANCED1”とが記述されている。このときの転送には、UPNP-LOCALCONTROLチャンネルが使用される。
ステップ[4]では、MFPデバイスユニット400が、メッセージF52の要求に従ってリクエストIDを生成し、また、Nup個のUPNP-UPCONTENTxチャンネルのうちの1つを指定するためのチャンネルIDも生成する。チャンネルIDの値としては、その時点で使用されていないUPNP-UPCONTENTxチャンネルのチャンネルIDの中で最も小さな値が割り当てられる。ステップ[5]では、MFPデバイスユニット400からMFPサーバ300に、リクエストIDとチャンネルIDを含むメッセージR51が返信される。この際にも、UPNP-LOCALCONTROLチャンネルが使用される。
こうしてリクエストIDとチャンネルIDがMFPサーバ300に通知された後、ステップ[6]においてコンテンツデータの生成が完了すると、ステップ[7]において、MFPデバイスユニット400がコンテンツデータを含むメッセージR52をMFPサーバ300に転送する。このメッセージR52の各パケットのヘッダには、ステップ[5]でMFPサーバ300に通知されたリクエストIDが記入されている。また、論理チャンネルとしては、Nup個のUPNP-UPCONTENTxチャンネルの中で、チャンネルIDで指定された1つのチャンネルが使用される。図10の例では、チャンネルIDの値が”1”なので、1番目のチャンネルUPNP-UPCONTENT1が使用されている。MFPデバイスユニット400は、メッセージR52のリクエストIDを参照することによって、これらのパケットがステップ[3]で要求された処理のためのパケットであることを容易に認識することができる。また、コンテンツデータのUSB転送の際には、予め設けられたNup個の論理チャンネルUPNP-UPCONTENTxのうちの1つを使用するので、多数のコンテンツ転送処理を並行して行うことが可能である。
コンテンツデータのUSB転送が終了すると、ステップ[8]において、MFPサーバ300が、コンテンツデータにHTTPのヘッダを付加してメッセージR53を生成する。ステップ[9]では、こうして作成されたメッセージR53がMFPサーバ300からコントロールポイント110Cに転送される。
このように、コントロールポイントからの要求に応じてサービスコンテンツをコントロールポイントに転送する際には、まずUPNP-LOCALCONTROLチャンネルを使用して、転送処理用のパケットを識別するためのリクエストIDと、使用する論理チャンネルを指定するためのチャンネルIDが取得される。従って、1つのコンテンツの転送処理に用いられる複数のパケットを容易に識別することができる。また、複数のUPNP-UPCONTENTxチャンネルの中から、使用可能なチャンネルを容易に選択することができる。
E.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
E1.変形例1:
上記実施例では、UPnP対応のネットワーク装置として複数のデバイスを含む複合機200を用いていたが、この代わりに、1つのデバイス(例えばプリンタ)のみを含む単機能のネットワーク装置を採用することも可能である。換言すれば、ネットワーク装置は、少なくとも1つのデバイスを有していれば良い。
E2.変形例2:
上記実施例では、USBホストとUSBデバイスとを備えるネットワーク装置について説明したが、本発明は、ネットワーク装置に限らず、一般にUSBホストとUSBデバイスとを備える装置に適用可能である。
E3.変形例3:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
本発明の実施例を適用するネットワークシステムの構成を示す概念図である。 複合機の内部構成を示すブロック図である。 MFPサーバの各種プロトコルの階層構造を示すブロック図である。 MFPデバイスユニットの各種プロトコルの階層構造を示すブロック図である。 USBのインタフェース/エンドポイント構成と論理チャンネルの構成とを示す説明図である。 プリンタインタフェースを介したUSB転送に用いられるパケットの構成を示す説明図である。 UPnPアーキテクチャを利用した処理の典型例を示すシーケンス図である。 コンテンツチャンネルのオープン手順を示すシーケンス図である。 コントロールポイントから複合機にサービスコンテンツを送信する場合の手順を示すシーケンス図である。 コントロールポイントが複合機からサービスコンテンツを取得する場合の手順を示すシーケンス図である。
符号の説明
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デバイスユニット
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 (6)

  1. USBホストとUSBデバイスとを備えた装置であって、
    前記USBホストが、前記USBデバイスに対して特定用途の論理チャンネルのチャンネル数の問い合わせを送信し、
    前記USBデバイスが、前記問い合わせに応じて前記特定用途の論理チャンネルのチャンネル数を前記USBホストに返信し、
    前記USBホストが、前記応答されたチャンネル数だけ前記特定用途の論理チャンネルをオープンすることを特徴とする装置。
  2. 請求項1記載の装置であって、
    前記装置は、ネットワーク型プラグアンドプレイに対応したネットワーク装置であって、ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスを備えており、
    前記USBデバイスは、前記サービスデバイスの制御を行うデバイス制御部を含み、
    前記USBホストは、メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部を含む、装置。
  3. 請求項2記載の装置であって、
    前記特定用途の論理チャンネルは、コンテンツデータを送信又は受信するための論理チャンネルである、装置。
  4. 請求項1ないし3のいずれかに記載の装置であって、
    前記USBホストから前記USBデバイスに対する論理チャンネル数の問い合わせは、前記装置の起動時に実行される、装置。
  5. 請求項1ないし4のいずれかに記載の装置であって、
    前記特定用途の論理チャンネルは、D4パケットを利用したUSB論理チャンネルである、装置。
  6. USBホストとUSBデバイスとの間の特定用途の論理チャンネルをオープンする方法であって、
    (a)前記USBホストが、前記USBデバイスに対して前記特定用途の論理チャンネルのチャンネル数の問い合わせを送信する工程と、
    (b)前記USBデバイスが、前記問い合わせに応じて前記特定用途の論理チャンネルのチャンネル数を前記USBホストに返信する工程と、
    (c)前記USBホストが、前記応答されたチャンネル数だけ前記特定用途の論理チャンネルをオープンする工程と、
    を備える方法。
JP2005259561A 2005-09-07 2005-09-07 Usb論理チャンネルのオープン制御 Pending JP2007072795A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005259561A JP2007072795A (ja) 2005-09-07 2005-09-07 Usb論理チャンネルのオープン制御
EP06254584A EP1763198A3 (en) 2005-09-07 2006-09-04 Control of network plug-and-play compliant device
US11/517,439 US7664135B2 (en) 2005-09-07 2006-09-06 Control of network plug-and-play compliant device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005259561A JP2007072795A (ja) 2005-09-07 2005-09-07 Usb論理チャンネルのオープン制御

Publications (1)

Publication Number Publication Date
JP2007072795A true JP2007072795A (ja) 2007-03-22

Family

ID=37934178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005259561A Pending JP2007072795A (ja) 2005-09-07 2005-09-07 Usb論理チャンネルのオープン制御

Country Status (1)

Country Link
JP (1) JP2007072795A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076024A (ja) * 1998-08-28 2000-03-14 Canon Inc 通信システム、情報処理装置、出力装置、制御方法、及び、記憶媒体
JP2001222503A (ja) * 2000-02-08 2001-08-17 Ricoh Co Ltd 周辺機器制御システム
JP2002055936A (ja) * 2000-08-08 2002-02-20 Toshiba Corp Usbデバイス機器、usbデバイス機器間の通信システムおよび通信方法
US20020141419A1 (en) * 2001-03-28 2002-10-03 Atsushi Tomita Data communication program product to rewrite simultaneously firmware of plurality of devices connected to network
JP2004516711A (ja) * 2000-12-13 2004-06-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スレーブデバイスの異種ネットワーク用UPnP構造

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000076024A (ja) * 1998-08-28 2000-03-14 Canon Inc 通信システム、情報処理装置、出力装置、制御方法、及び、記憶媒体
JP2001222503A (ja) * 2000-02-08 2001-08-17 Ricoh Co Ltd 周辺機器制御システム
JP2002055936A (ja) * 2000-08-08 2002-02-20 Toshiba Corp Usbデバイス機器、usbデバイス機器間の通信システムおよび通信方法
JP2004516711A (ja) * 2000-12-13 2004-06-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ スレーブデバイスの異種ネットワーク用UPnP構造
US20020141419A1 (en) * 2001-03-28 2002-10-03 Atsushi Tomita Data communication program product to rewrite simultaneously firmware of plurality of devices connected to network

Similar Documents

Publication Publication Date Title
JP4645164B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御
JP4508114B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
US7664135B2 (en) Control of network plug-and-play compliant device
US7594040B2 (en) Network relay device having network plug-and-play compliant protocols for network relay
US20060150236A1 (en) Control of network plug-and-play compliant device
US7869073B2 (en) Image forming system, image forming method and information terminal device
KR100886074B1 (ko) 네트워크 서비스 시스템, 서비스 대행 처리 방법, 및 그 프로그램을 저장한 컴퓨터 판독가능 기억 매체
JP4774973B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
US6431772B1 (en) Broadcast printing system and method
JP5063253B2 (ja) ネットワークシステムおよび通信方法
WO2006064650A1 (ja) プロファイル取得方法、装置、プログラム、及び、記録媒体
US8259332B2 (en) Printing apparatus and printing system
JP4760425B2 (ja) プリンタを用いた印刷におけるスタイルシートの切替
JP2007156691A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP4765496B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
JP4935027B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
JP4640147B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP2007072795A (ja) Usb論理チャンネルのオープン制御
JP4378372B2 (ja) 情報処理方法、情報処理装置、及び記憶媒体
JP2007080126A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御
JP2007128215A (ja) ネットワークデバイスに関する情報収集
JP2007034886A (ja) 画像出力装置、画像出力方法およびネットワーク接続機器
JP2009020916A (ja) 制御装置、制御プログラム、制御方法
JP4665705B2 (ja) ネットワークプリンタにおけるデータ通信用クレジットの取得
JP2008193381A (ja) オーダーシート、オーダーシートの作成方法、オーダーシートを用いた処理方法、及び、それらのための装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110517