JP4935027B2 - Network device corresponding to network type plug and play and control method thereof - Google Patents
Network device corresponding to network type plug and play and control method thereof Download PDFInfo
- Publication number
- JP4935027B2 JP4935027B2 JP2005259554A JP2005259554A JP4935027B2 JP 4935027 B2 JP4935027 B2 JP 4935027B2 JP 2005259554 A JP2005259554 A JP 2005259554A JP 2005259554 A JP2005259554 A JP 2005259554A JP 4935027 B2 JP4935027 B2 JP 4935027B2
- Authority
- JP
- Japan
- Prior art keywords
- network
- control unit
- service
- message
- 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.)
- Expired - Fee Related
Links
Images
Description
この発明は、ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御技術に関する。 The present invention relates to a technology for controlling a network device that supports network type plug and play.
プラグアンドプレイは、よく知られているように、コンピュータの起動後に、周辺装置を任意のタイミングでコンピュータに接続したり、コンピュータから切断したりすることができる技術である。近年では、プラグアンドプレイ技術をネットワークに適用したものとして、ユニバーサルプラグアンドプレイ(以下、「UPnP」と呼ぶ。UPnPは UPnP Implementers Corporationの商標)が開発されてきている。UPnPを用いると、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることができる。本明細書では、UPnPのように、ネットワークにおいてプラグアンドプレイを実現するアーキテクチャを、「ネットワーク型プラグアンドプレイ」と呼ぶ。 As is well known, plug and play is a technique that allows a peripheral device to be connected to or disconnected from a computer at an arbitrary timing after the computer is started. In recent years, Universal Plug and Play (hereinafter referred to as “UPnP”, UPnP is a trademark of UPnP Implementers Corporation) has been developed as an application of plug and play technology to a network. When UPnP is used, the network device can be connected to the network or disconnected from the network at an arbitrary timing. In this specification, an architecture that implements plug and play in a network, such as UPnP, is referred to as “network type plug and play”.
UPnP対応のネットワーク装置は、種々のサービスデバイスとして機能することが可能である。ここで、「サービスデバイス」とは、外部からの要求に応じてサービスを実行するデバイスを意味している。サービスデバイスは、プリンタや、スキャナ、ファクシミリ、コピー機、記憶装置、カメラ、時計などの種々の装置として実現可能である。また、1つの装置で複数のサービスデバイスの機能を実現することも可能である。 A UPnP-compatible network device can function as various service devices. Here, “service device” means a device that executes a service in response to an external request. The service device can be realized as various devices such as a printer, a scanner, a facsimile, a copier, a storage device, a camera, and a clock. It is also possible to realize the functions of a plurality of service devices with one apparatus.
このように、UPnP対応のネットワーク装置は多様な形態を採り得る。しかし、その反面、ネットワーク装置の制御が複雑になり易いという問題があった。 Thus, UPnP-compatible network devices can take various forms. On the other hand, however, there is a problem that the control of the network device tends to be complicated.
本発明は、ネットワーク型プラグアンドプレイに対応したネットワーク装置における制御を単純化することのできる技術を提供することを目的とする。 An object of this invention is to provide the technique which can simplify control in the network apparatus corresponding to network type | mold plug and play.
本発明は、ネットワーク型プラグアンドプレイに対応したネットワーク装置であって、
ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスと、
前記サービスデバイスの制御を行うデバイス制御部と、
メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部と、
を備え、
前記ネットワークプロトコル制御部と前記デバイス制御部とは、所定のインタフェースの論理チャネルであって、前記ネットワーク型プラグアンドプレイに対応した論理チャネルとして設定された複数の論理チャンネルで接続されており、
前記ネットワークプロトコル制御部は、前記クライアントから受信したメッセージの宛先であるパス名のうちの最上位層の名前である最上位パス名に応じて前記複数の論理チャンネルの1つを選択し、選択された論理チャンネルを用いて前記メッセージボディの内容を前記デバイス制御部に転送する。
The present invention is a network device compatible with network type plug and play,
One or more service devices that perform services in response to requests from clients on the network;
A device control unit for controlling the service device;
A network protocol control unit for receiving a message having a message header and a message body from a client on the network and transferring information of the message body to the device control unit;
With
The network protocol control unit and the device control unit are logical channels of a predetermined interface , and are connected by a plurality of logical channels set as logical channels corresponding to the network type plug and play ,
The network protocol control unit selects one of the plurality of logical channels according to a highest path name that is a name of a highest layer among path names that are destinations of a message received from the client. The content of the message body is transferred to the device controller using the logical channel.
このネットワーク装置によれば、ネットワークプロトコル制御部が、所定のインタフェースの論理チャネルであって、前記ネットワーク型プラグアンドプレイに対応した論理チャネルとして設定された複数の論理チャンネルから、最上位パス名に応じて論理チャンネルを選択してデバイス制御部にメッセージボディを送信するので、ネットワークプロトコル制御部における制御を単純化することができる。 According to this network device, the network protocol control unit responds to the highest level path name from a plurality of logical channels that are logical channels of a predetermined interface and are set as logical channels corresponding to the network type plug and play. Since the logical body is selected and the message body is transmitted to the device controller, the control in the network protocol controller can be simplified.
なお、前記デバイス制御部は、複数の前記サービスデバイスを含んでおり、
前記ネットワークプロトコル制御部は、前記メッセージボディの情報の他に前記メッセージのパス名も前記デバイス制御部に転送し、
前記デバイス制御部は、前記メッセージのパス名のうちの前記最上位層よりも下位の名前である下位パス名に応じて前記複数のサービスデバイスのうちの1つを選択し、選択されたサービスデバイスに前記メッセージボディの情報を供給するものとしてもよい。
The device control unit includes a plurality of the service devices,
The network protocol controller transfers the message path name in addition to the message body information to the device controller,
The device control unit selects one of the plurality of service devices according to a lower path name that is a name lower than the highest layer in the path name of the message, and selects the selected service device It is also possible to supply the message body information.
この構成によれば、下位パス名に応じて適切なサービスデバイスを容易に選択することができる。 According to this configuration, it is possible to easily select an appropriate service device according to the lower path name.
前記複数のサービスデバイスのうちの少なくとも1つの特定のサービスデバイスは、複数のサービスを実行するための複数のサービスモジュールを有しており、
前記デバイス制御部は、前記下位パス名が前記特定のサービスデバイスを示すデバイス名と、前記複数のサービスモジュールのうちの1つを示すサービス名とを含む場合に、前記サービス名に応じて前記複数のサービスモジュールのうちの1つを選択し、選択されたサービスモジュールに前記メッセージボディの情報を供給するようにしてもよい。
At least one specific service device of the plurality of service devices has a plurality of service modules for executing a plurality of services,
The device control unit, when the lower path name includes a device name indicating the specific service device and a service name indicating one of the plurality of service modules, according to the service name One of the service modules may be selected, and the message body information may be supplied to the selected service module.
この構成によれば、下位パス名に応じて適切なサービスモジュールを容易に選択することができる。 According to this configuration, it is possible to easily select an appropriate service module according to the lower path name.
前記複数の論理チャンネルは、プリンタインタフェースの論理チャンネルであって、D4パケットを利用したUSB転送用の論理チャンネルであることが好ましい。 The plurality of logical channels are printer interface logical channels, and are preferably USB transfer logical channels using D4 packets.
この構成によれば、D4パケットのヘッダ部を利用して多様な論理チャンネルをプリンタインタフェースで構成できるので、多様な論理チャンネルを用いて多様なデータ転送をプリンタインタフェースを介して実現することが可能である。 According to this configuration, since various logical channels can be configured by the printer interface using the header portion of the D4 packet, various data transfers can be realized through the printer interface using various logical channels. is there.
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワーク装置、ネットワークプロトコル制御装置、それらの装置の制御方法及び制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。 Note that the present invention can be realized in various forms, for example, a network device, a network protocol control device, a control method and control device for those devices, and a function of those methods or devices. The present invention can be realized in the form of a computer program, a recording medium recording the computer program, a data signal including the computer program and embodied in a carrier wave, and the like.
次に、本発明の実施の形態を以下の順序で説明する。
A.用語の説明:
B.システムの概要:
C.複合機のデバイス構成及びデバイスディスクリプション:
D.データ転送の概要:
E.各種のデータ転送シーケンス:
F.他の実施例:
G.変形例:
Next, embodiments of the present invention will be described in the following order.
A. Explanation of terms:
B. System overview:
C. Device configuration of device and device description:
D. Data transfer overview:
E. Various data transfer sequences:
F. Other examples:
G. Variations:
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):拡張マークアップ言語。
A. Explanation of terms:
The meanings of the terms used in the following description are as follows.
DHCP (Dynamic Host Configuration Protocol): Dynamic host configuration protocol. A protocol that dynamically assigns IP addresses.
GENA (General Event Notification Architecture): General event notification architecture. Used when issuing events in the UPnP architecture.
HTTP (HyperText Transfer Protocol): Hypertext transfer protocol.
HTTP MU (HTTP Multicast over UDP): HTTP multicast using UDP (User Datagram Protocol).
HTTPPU (HTTP (unicast) over UDP): HTTP unicast using UDP.
MFP (Multi Function Peripheral): A composite peripheral device having functions of a plurality of devices.
SOAP (Simple Object Access Protocol): Simple object access protocol. In UPnP architecture, it is used for requesting and responding to actions by RPC (Remote Procedure Call).
SSDP (Simple Service Discovery Protocol): Simple service discovery protocol. In the UPnP architecture, it is used for service discovery.
UPnP (Universal Plug and Play): Universal Plug and Play (UPnP is a trademark of UPnP Implementers Corporation).
URI (Uniform Resource Identifier): Uniform resource identifier. An identifier that is a superordinate concept of URL (Uniform Resource Locator) and indicates a unique position of a resource.
XHTML (eXtensible HyperText Markup Language): An extended hypertext markup language. It is a kind of document description language compatible with HTML, and is a form of XML implementation. XHTML-print described later is a specification for printing an XHTML document.
XML (eXtensible Markup Language): An extensible markup language.
なお、UPnPでは上述した多数のプロトコルが使用されるが、以下ではこれらを総称して「UPnPプロトコル」と呼ぶ。 Although many of the above-described protocols are used in UPnP, these are hereinafter collectively referred to as “UPnP protocol”.
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には対応していない。
B. System overview:
FIG. 1 is a conceptual diagram showing a configuration of a network system to which an embodiment of the present invention is applied. This network system has a configuration in which a
パーソナルコンピュータ100は、プリンタドライバ100Dを用いて画像の印刷データを作成し、LANを介してこの印刷データを複合機200に転送して印刷を実行させる機能を有している。この印刷処理の際には、複合機200はUPnPのプロトコルを使用せず、通常のネットワークプリンタとして機能する。一方、コントロールポイント(例えば110C)からの要求に従って印刷を行う場合には、複合機200はUPnP対応のプリンタデバイスとして機能する。
The
複合機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以外の他の物理的インタフェースで接続することも可能である。
The
UPnPは、ネットワーク装置を任意のタイミングでネットワークに接続したり、ネットワークから切断したりすることを実現するアーキテクチャである。UPnPネットワークは、コントロールポイント110C,120Cと、デバイス404,406,408とで構成される。ここで、「デバイス」とは、サービスを提供する装置を意味している。本明細書においては、特に断らない限り、「デバイス」と「サービスデバイス」は同義語として使用されている。「コントロールポイント」は、ネットワーク上の他のデバイスを検出したり制御したりするコントローラを意味しており、サービスデバイスに対するクライアントとして機能する。UPnP対応のネットワーク装置が有する各種の機能については後述する。
UPnP is an architecture that realizes connecting or disconnecting a network device to a network at an arbitrary timing. The UPnP network is composed of
図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ネットワークへ通信するための無線通信回路)を接続可能である。
FIG. 2 is a block diagram illustrating an internal configuration of the
MFPデバイスユニット400は、中央制御部(CPU)410と、RAM420と、ROM430と、印刷エンジン440と、スキャナエンジン450と、2つのUSBデバイス制御部460,470と、PCカードインタフェース480と、操作パネル制御部490と、ビューワ制御部500と、USBホスト制御部510とを有している。
The
印刷エンジン440は、与えられた印刷データに応じて印刷を実行する印刷機構である。本実施例では、コントロールポイント110C,120CがXHTMLデータに基づいて印刷を行う場合には、中央制御部410がXHTMLデータを解釈し、色変換やハーフトーン処理を実行して印刷データを作成し、この印刷データを印刷エンジン440に供給する。但し、中央制御部410の代わりに印刷エンジン440が色変換やハーフトーン処理の機能を有するように構成することも可能である。一方、パーソナルコンピュータ100から印刷を行う場合は、プリンタドライバ100Dが生成するページ記述言語を中央制御部410が解析して印刷データを作成し、印刷エンジン440に供給する。なお、本明細書において、「印刷データ」とは印刷媒体上におけるドットの形成状態を示すドットデータによって印刷物を表すデータを意味している。印刷データは、プリンタ固有の制御コマンドで構成されている。XHTMLは、印刷データには該当せず、文書を記述する文書記述言語である。スキャナエンジン450は、画像をスキャンして画像データを生成する機構である。
The
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デバイスを接続することが可能である。
The first USB
MFPサーバ300の中央制御部310とネットワーク制御部340とUSBホスト制御部350は、図1におけるネットワークプロトコル制御部302としての機能を実現する。より具体的には、ネットワーク制御部340は、各種のネットワークプロトコルに従ってメッセージの送受信を行う。また、中央制御部310は、UPnPのプロトコルを解釈して転送先を決定する。USBホスト制御部350は、MFPデバイスユニット400との間でメッセージを転送する。これらの制御部310,340,350は、メッセージボディの解釈や処理は行わずにメッセージを転送している。
The
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のハードウェア部分に相当する。
The USB
図3は、MFPサーバ300の各種のプロトコルの階層構造を示すブロック図である。MFPサーバ300は、各種のネットワークプロトコルを解釈するためのサービスプロトコル解釈部1000を備えている。このサービスプロトコル解釈部1000には、ネットワークアーキテクチャの下位層と、USBアーキテクチャの下位層とが存在する。ネットワークアーキテクチャの下位層としては、UPnPデバイスアーキテクチャ1100と、3つの非UPnPデバイス機能部1210,1220,1230が設けられている。これらのさらに下位には、UDP層又はTCP層と、インターネットプロトコル(IP)層と、ドライバ層と、ネットワークインタフェース層と、が存在する。
FIG. 3 is a block diagram illustrating a hierarchical structure of various protocols of the
サービスプロトコル解釈部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の標準となっているからである。
As a lower layer of the USB architecture of the service protocol interpreter 1000, a
UPnPデバイスアーキテクチャは、HTTPMUや、HTTPU,SOAP/HTTP,HTTPなどの各種のプロトコルに従って構成されている。UPnPは、これらのプロトコルを用いて、以下のような各種の処理を実現している。 The UPnP device architecture is configured according to various protocols such as HTTPMU, HTTPPU, SOAP / HTTP, and HTTP. UPnP uses these protocols to implement the following various processes.
(1)アドレッシング:
UPnPデバイス(以下、単に「デバイス」と呼ぶ)がネットワークに接続すると、アドレッシングによってネットワークアドレス(IPアドレス)を取得する。アドレッシングには、DHCPサーバまたはAuto-IPが利用される。ネットワークにDHCPサーバが設けられている場合には、デバイスはDHCPサーバによって割り当てられるIPアドレスを使用する。DHCPサーバが無い場合には、Auto-IPと呼ばれる自動IPアドレッシング機能を用いて、デバイスが自分のアドレスを決定する。なお、本実施例では、複合機200に対して1つのIPアドレスのみが割り当てられ、複合機200全体が単一のネットワーク装置として認識される。
(1) Addressing:
When a UPnP device (hereinafter simply referred to as “device”) is connected to a network, a network address (IP address) is acquired by addressing. For addressing, a DHCP server or Auto-IP is used. If a DHCP server is provided in the network, the device uses an IP address assigned by the DHCP server. If there is no DHCP server, the device determines its own address using an automatic IP addressing function called Auto-IP. In this embodiment, only one IP address is assigned to the
(2)ディスカバリ(検出):
ディスカバリは、コントロールポイントが、デバイスがどこにいるかを見つけ出す処理である。ディスカバリは、コントロールポイントがディスカバリメッセージをマルチキャストすることによって実現することができ、あるいは、デバイスがネットワークに参加したときに、その旨をコントロールポイントにアドバタイズすることによっても実現できる。ディスカバリは、HTTPMU/SSDPやHTTPU/SSDPを用いて行われる。ディスカバリの結果、コントロールポイントとデバイスがピアツーピアで処理を進められるようになる。
(2) Discovery (detection):
Discovery is a process in which the control point finds out where the device is. Discovery can be realized by the control point multicasting the discovery message, or can be realized by advertising the fact to the control point when the device joins the network. Discovery is performed using HTTPMU / SSDP or HTTPPU / SSDP. As a result of the discovery, the control point and the device can be processed peer-to-peer.
(3)ディスクリプション:
デバイスの構成の詳細は、デバイスディスクリプションとしてXMLで記述されている。また、デバイスのサービスの詳細は、サービスディスクリプションとしてXMLで記述されている。これらのディスクリプションは、デバイスによって所有されており、コントロールポイントに提供される。コントロールポイントは、これらのディスクリプションを参照することによって、デバイスやサービスの詳細を知ることができる。デバイスディスクリプションの例については後述する。
(3) Description:
Details of the device configuration are described in XML as a device description. The details of the device service are described in XML as a service description. These descriptions are owned by the device and provided to the control point. The control point can know the details of the device and service by referring to these descriptions. An example of the device description will be described later.
(4)コントロール:
コントロールは、コントロールポイントが、アクション要求を含む制御メッセージをデバイスに転送して、デバイスの制御を行う処理である。コントロールは、HTTP/SOAPを用いて行われる。
(4) Control:
Control is a process in which a control point controls a device by transferring a control message including an action request to the device. Control is performed using HTTP / SOAP.
(5)イベント:
所定のイベントが発生すると、デバイス内のサービスが、コントロールポイントにイベントの発生を通知する。イベント発生の通知を受けるコントロールポイントは、そのサービスに「サブスクライブ(購読)」する。イベントは、サブスクライブしているコントロールポイントに転送される。イベントの通知は、HTTP/GENAを用いて行われる。
(5) Event:
When a predetermined event occurs, a service in the device notifies the control point of the occurrence of the event. A control point that receives notification of an event occurrence “subscribes” to the service. Events are forwarded to subscribing control points. Notification of an event is performed using HTTP / GENA.
(6)プレゼンテーション:
プレゼンテーションは、デバイスディスクリプションに登録されているプレゼンテーション用のURLからコントロールポイントがHTMLで記述されたプレゼンテーション用ページを取得する処理である。このプレゼンテーションによって、例えばコントロールポイントがデバイスの各種の状態を表示することができる。
(6) Presentation:
The presentation is a process of acquiring a presentation page whose control point is described in HTML from the URL for presentation registered in the device description. With this presentation, for example, the control point can display various states of the device.
なお、本発明はUPnPの将来のバージョンにも適用可能である。また、ネットワーク型プラグアンドプレイとして、アドレッシング(自動的なIPアドレス決定)と、デバイスのディスカバリにより、任意のコントロールポイントとデバイスとがピアツーピアで通信が可能で、コントロールポイントとデバイスがメッセージの交換を行うアーキテクチャであれば、UPnP以外のネットワーク型プラグアンドプレイ仕様にも本発明を適用することが可能である。 The present invention can also be applied to future versions of UPnP. As network type plug and play, any control point and device can communicate peer-to-peer by addressing (automatic IP address determination) and device discovery, and the control point and device exchange messages. If it is an architecture, the present invention can be applied to network type plug and play specifications other than 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パケットを利用することができる。
FIG. 4 is a block diagram showing a hierarchical structure of various protocols of the
図4に示すように、MFPサーバ300のUSBプリンタクラスドライバ1310とMFPデバイスユニット400のUSBプリンタクラスドライバ2310の間には、7種類のUPnP用双方向通信チャンネルが設けられている。これらは、D4パケットを用いた論理チャンネルであり、複合機200がUPnPデバイスとして機能する場合に使用される。サービスプロトコル解釈部1000とUPnPデバイス機能部2400の間にも、プリンタクラスドライバ1310,2310の間の7種類の論理チャンネルに対応する7種類のUPnP用論理チャンネルが存在するが、図4では図示が省略されている。以下ではまず、D4パケットを用いた論理チャンネルについて説明する。
As shown in FIG. 4, seven types of UPnP bidirectional communication channels are provided between the USB
図5は、USBのインタフェース/エンドポイント構成と論理チャンネルの構成とを示す説明図である。一般に、USBデバイスは、インタフェースとエンドポイントとを有している。USBの転送は、USBのホストとエンドポイントとの間で行われる。すなわち、「エンドポイント」とは、ホストと通信を行う論理的なリソースである。図5(A)の例では、7つのエンドポイントEP#0〜EP#6が示されている。コントロールエンドポイントEP#0は、標準デバイスリクエストの送受信を行うためのエンドポイントである。「標準デバイスリクエスト」とは、すべてのUSBでサポートする必要がある基本的なリクエストである。従って、コントロールエンドポイントEP#0は、1つのUSBデバイスに必ず1つ設けられている。
FIG. 5 is an explanatory diagram showing a USB interface / endpoint configuration and a logical channel configuration. Generally, a USB device has an interface and an endpoint. USB transfer is performed between the USB host and the endpoint. In other words, the “end point” is a logical resource that communicates with the host. In the example of FIG. 5A, seven end
プリンタ用のバルクアウトエンドポイント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とが設けられている。
The printer bulk-out
本実施例では、図5(B)に示すように、プリンタインタフェースIF#0に9つの論理的なチャンネルが設けられている。これらの各チャンネルの機能は以下の通りである。 In this embodiment, as shown in FIG. 5B, nine logical channels are provided in the printer interface IF # 0. The function of each of these channels is as follows.
(1)PRINT-DATAチャンネルCH#11:
ネットワーク上のパーソナルコンピュータ100から、印刷ポート(LPRポートに従ったポート番号又はボート番号9100)を用いてプリンタドライバ100D(図1)から転送される印刷データの送受信を行うためのチャンネル。図4には図示されていない。
(1) PRINT-DATA channel CH # 11:
A channel for transmitting / receiving print data transferred from the
(2)PRINT-STATUSチャンネルCH#12:
MFPサーバ300が、印刷エンジン440の状態を示す情報を送受信するためのチャンネルであり、SNMP等のプロトコルにより、MFPサーバ300からネットワーク上のパーソナルコンピュータ100に対して提供される。図4には図示されていない。
(2) PRINT-STATUS channel CH # 12:
The
(3)UPNP-LOCALCONTROLチャンネルCH#21:
MFPサーバ300とMFPデバイスユニット400の間において、MFPサーバ300を要求者とし、MFPデバイスユニット400を応答者とする通信を行うためのUPnP用チャンネル。MFPサーバ300は、このチャンネルを用いて、MFPデバイスユニット400から各種の情報を取得することができる。
(3) UPNP-LOCALCONTROL channel CH # 21:
A UPnP channel for performing communication between the
(4)UPNP-LOCALEVENTチャンネルCH#22:
MFPサーバ300とMFPデバイスユニット400の間において、MFPデバイスユニット400を要求者とし、MFPサーバ300を応答者とする通信を行うためのUPnP用チャンネル。MFPデバイスユニット400は、このチャンネルを用いて、例えばユーザが行った設定変更の内容をMFPサーバ300に通知することができ、また、MFPデバイスユニット400が電源OFFしようとするときに、UPnPプロトコルの終了要求をMFPサーバ300に通知することができる。
(4) UPNP-LOCALEVENT channel CH # 22:
A UPnP channel for performing communication between the
(5)UPNP-PRESENTATIONチャンネルCH#23:
UPnPのプレゼンテーションデータ(Webページデータ)を送受信するためのチャンネル。なお、コントロールポイントの要求に応じてプレゼンテーションデータをMFPデバイスユニット400からコントロールポイントに送信するためのチャンネル(ダウンチャンネル)と、新たなプレゼンテーションデータをコントロールポイントからMFPデバイスユニット400にアップロードするためのチャンネル(アップチャンネル)とを別々に設けるようにしたもよい。
(5) UPNP-PRESENTATION channel CH # 23:
A channel for transmitting and receiving UPnP presentation data (Web page data). A channel (down channel) for transmitting presentation data from the
(6)UPNP-CONTROLチャンネルCH#24:
UPnPにおいて、コントロールポイントから発信されたアクションに関連するデータを送受信するためのチャンネル。なお、上述のUPNP-LOCALCONTROLチャンネルに”LOCAL”という接頭語が付されている理由は、UPNP-LOCALTONTROLチャンネルが、コントロールポイントからのアクションの内容の転送には使用されないからである。換言すれば、UPNP-CONTROLチャンネルCH#24は、コントロールポイントから発信されたアクションに関連するデータの送受信のためにのみ使用される。
(6) UPNP-CONTROL channel CH # 24:
In UPnP, a channel for transmitting and receiving data related to an action transmitted from a control point. The reason why the above-mentioned UPNP-LOCALCONTROL channel is prefixed with “LOCAL” is that the UPNP-LOCALTONTROL channel is not used for transferring action contents from the control point. In other words, the UPNP-CONTROL
(7)UPNP-EVENTチャンネルCH#25:
UPnPにおいて、イベントをサブスクライブしているコントロールポイントに送信するためのチャンネル。上述のUPNP-LOCALEVENTチャンネルに”LOCAL”という接頭語が付されている理由は、このUPNP-LOCALEVENTチャンネルが、コントロールポイントへのイベントの送信には使用されないからである。換言すれば、UPNP-EVENTチャンネルCH#25は、複合機200で発生したイベントをコントロールポイントに送信するためにのみ使用される。
(7) UPNP-EVENT channel CH # 25:
In UPnP, a channel for sending events to subscribing control points. The reason why the above-mentioned UPNP-LOCALEVENT channel is prefixed with “LOCAL” is that this UPNP-LOCALEVENT channel is not used for sending events to the control point. In other words, the UPNP-EVENT
(8)UPNP-DOWNCONTENTxチャンネルCH#26x:
UPnPにおいて、コンテンツデータをコントロールポイントからMFPデバイスユニット400にダウンロードする際に使用される送受信チャンネル。ここで、接尾辞”x”は、Ndown個(Ndownは2以上の整数)のUPNP-DOWNCONTENTチャンネルのうちのx番目のチャンネルを意味している。利用可能なUPNP-DOWNCONTENTxチャンネルの個数Ndownは、1以上の任意に設定可能であるが、2以上の値に設定することが好ましい。Ndownを2以上の値に設定すれば、複数のコントロールのコンテンツデータを並行して受信することが可能である。
(8) UPNP-DOWNCONTENTx
In UPnP, a transmission / reception channel used when downloading content data from a control point to the
(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)個となることが理解できる。
(9) UPNP-UPCONTENTx
In UPnP, a transmission / reception channel used when uploading content data from the
なお、各論理チャンネルは、いずれもバルクアウトエンドポイントEP#1とバルクインエンドポイントEP#2の両方を利用して双方向通信を行うことができる。論理チャンネルの識別情報は、USBパケットのヘッダに登録される。
Each logical channel can perform bidirectional communication using both the bulk-out
図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」とも呼ぶ。
FIG. 6 is an explanatory diagram showing the structure of a D4 packet used for USB transfer via the printer interface IF # 0. This is a packet structure conforming to IEEE1284.4. This D4 packet is composed of a header part of 12 bytes and a message part of 0 bytes or more. The header part has a 6-byte D4 standard header, a 4-byte ID field, and a 2-byte error code field. In the D4 standard header, socket IDs (logical channel IDs) for identifying nine types of (7 + 2N) logical channels shown in FIG. 5B are registered. A request ID is registered in the ID field. This request ID is used to identify packets constituting the same message in data transfer between the
D4パケットでは、ヘッダ部を利用して多様な論理チャンネルを構成できるので、多様な論理チャンネルを用いて多様なデータ転送を実現することが可能である。また、D4標準ヘッダ以外のヘッダ情報をある程度任意に設定することができるので、各種の制御を実行するための工夫の自由度が高いという利点がある。 In the D4 packet, since various logical channels can be configured using the header portion, various data transfers can be realized using various logical channels. In addition, since header information other than the D4 standard header can be set arbitrarily to some extent, there is an advantage that the degree of freedom of contrivance for executing various controls is high.
本実施例のD4パケットを用いてリクエストを転送する場合には、エラーフィールドの後のメッセージの先頭(「メッセージヘッダ」とも呼ぶ)には、メッセージの送り元から送り先(受け手)へ通知するURI(通常は相対URI)が付加される。メッセージの受け手は、このURIから、リクエストの内容や宛先を容易に判定することが可能である。なお、D4パケットのメッセージの具体的な内容については後述する。 When a request is transferred using the D4 packet according to the present embodiment, a URI (notice that the message is sent from the sender of the message to the receiver (receiver)) at the head of the message after the error field (also called “message header”) ( Usually, a relative URI) is added. The recipient of the message can easily determine the content and destination of the request from this URI. The specific content of the D4 packet message will be described later.
図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との間で通知される特定の情報とを容易に区別して、それぞれに適した処理を素早く実行することが可能である。
As shown in FIG. 5B, in this embodiment, as the logical channels for USB transfer, logical
図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アドレスと考えることも可能である。
FIG. 7 is a sequence diagram illustrating a typical example of processing using the UPnP architecture. Here, a case where a message is transferred among the
ステップ[2]では、MFPサーバ300が、リクエストメッセージF1を解析する。ここで解析(解釈)されるのは、メッセージF1のヘッダ部分だけであり、送信データ(すなわちメッセージボディ)の内容の解釈は行わない。より具体的には、ステップ[2]において、メッセージF1のURIが解析され、MFPデバイスユニット400に対してどの論理チャンネルを用いてメッセージを転送すべきかが判定される。なお、メッセージF1には、実質的なメッセージボディが無いものも存在する。
In step [2], the
ステップ[3]では、MFPサーバ300が、URIとメッセージボディ(存在する場合)とを含むメッセージF2を、USBでMFPデバイスユニット400に転送する。この転送の際には、URIに応じて選択された論理チャンネルが利用される。
In step [3], the
ステップ[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に転送される。
In step [4], the
このように、本実施例では、MFPサーバ300は、コントロールポイントから受信したリクエストメッセージのうちで、ヘッダの解析(解釈)は行うが、メッセージボディの内容の解釈は行わず、メッセージボディはMFPデバイスユニット400によって処理される。この構成には以下のような利点がある。第1の利点は、MFPサーバ300が、MFPデバイスユニット400のデバイス構成とサービスの内容を把握する必要が無く、任意の構成を有するデバイスユニット宛に送られたメッセージを転送するためのネットワークプロトコル制御部として機能することができる点である。第2の利点は、MFPデバイスユニット400のデバイス構成やサービスの内容が変更されても、MFPサーバ300の構成や機能を変更する必要が無い点である。第3の利点は、MFPサーバ300にメッセージボディの内容の解釈を行う解釈部(パーサ)を実装する必要が無いので、MFPサーバ300の構成が単純で済む点である。
As described above, in this embodiment, the
C.複合機のデバイス構成及びデバイスディスクリプション:
図8(A)は、複合機200のUPnPプロトコル上のデバイス構成を示す説明図である。本実施例の複合機200のUPnPデバイスとしての構成では、ルートデバイスとしてのプリンタ”Printer”の中に、スキャナデバイス”Scnanner”とストレージデバイス”Storage”とが包含されている。換言すれば、スキャナデバイス”Scnanner”とストレージデバイス”Storage”は、プリンタデバイス”Printer”内の埋込デバイスである。プリンタデバイス”Printer”は2つのプリントサービス”PrintBasic”,”PrintEnhanced”を有している。これらの2つのサービスは、UPnPで規格化されている標準的なプリントサービスである。スキャナデバイス”Scanner”はスキャンサービス”Scan”を有しており、ストレージデバイス”Storage”はストレージサービス”Storage”を有している。各サービスは、状態テーブルと、コントロールサーバと、イベントサーバとで構成されている。状態テーブルには、サービスの状態を示す状態変数が登録されている。コントロールサーバは、コントロールポイントからのアクション要求を受け付けて処理を実行する。イベントサーバは、状態変数の値が変更されると、その変更をイベントとしてコントロールポイントに通知する。通知対象となるのは、そのサービスに予めサブスクライブ(購読)しているコントロールポイントである。
C. Device configuration of device and device description:
FIG. 8A is an explanatory diagram showing a device configuration on the UPnP protocol of the
本明細書では、サービスを含むデバイスを「サービスデバイス」と呼んでいる。図8からも理解できるように、各サービスデバイスは、1つ以上の任意の数のサービスを含むことが可能である。また、あるサービスデバイスが、他のサービスデバイスを含むようにデバイス構成を構築することが可能である。 In this specification, a device including a service is called a “service device”. As can also be seen from FIG. 8, each service device may include any number of one or more services. It is also possible to construct a device configuration so that a certain service device includes other service devices.
なお、図8の構成の代わりに、ルートデバイスとしてUPnPで規格化されているベーシックデバイス”Basic”を使用し、このベーシックデバイス”Basic”の下位の同じ階層に3つのサービスデバイス”Printer”,”Scanner”,”Storage”が並置されるようなデバイス構成を採用することも可能である。ベーシックデバイス”Basic”は、1つ以上のサービスデバイスを含み、かつ、サービスデバイスが実行するサービスの他には自分自身が実行する固有のサービスを有さないデバイスである。この場合にも、複合機200が1つのルートデバイスによって代表されるので、複合機200に対して1つのIPアドレスを割り当てるだけで済むという利点が維持される。
Instead of the configuration of FIG. 8, a basic device “Basic” standardized by UPnP is used as a root device, and three service devices “Printer”, “” are provided in the same hierarchy below the basic device “Basic”. It is also possible to adopt a device configuration in which “Scanner” and “Storage” are juxtaposed. The basic device “Basic” is a device that includes one or more service devices and does not have a unique service executed by itself other than a service executed by the service device. Also in this case, since the
図8にも示したように、本実施例では、複合機200全体に対してIPアドレスが1つだけ割り当てられるので、コントロールポイントは、この1つのIPアドレスを用いて複合機200(MFPサーバ300)の種々のサービスデバイスにアクセスできるという利点がある。また、本実施例では、IPアドレスの数が比較例よりも少なくて済むので、ネットワーク内におけるIPアドレスの管理がより容易であるという利点がある。
As shown in FIG. 8, in this embodiment, only one IP address is assigned to the
UPnPの各デバイスは、自身の構成や機能をデバイスディスクリプションという形式で予め保持しており、コントロールポイントからの要求に応じてデバイスディスクリプションを提供する機能を有している。また、サービスの内容は、サービスディスクリプションとして形でデバイス内に保持され、コントロールポイントに提供される。図8の例では、3つのデバイスのデバイスディスクリプションと、4つのサービスのサービスディスクリプションとが、MFPデバイスユニット400内に予め保持されている。
Each UPnP device holds its configuration and functions in advance in the form of a device description, and has a function of providing a device description in response to a request from a control point. The contents of the service are held in the device in the form of a service description and provided to the control point. In the example of FIG. 8, device descriptions for three devices and service descriptions for four services are held in the
図9は、複合機200全体のデバイスディスクリプションの例を示している。デバイスディスクリプションは、XMLで記述されている。アンダーラインを付した部分は、本実施例に特有の設定を示している。要素<URLBase>の内容”http://169.254.100.100:80”は、複合機200のホスト名(ここではIPアドレス)と、HTTPを用いる場合のポート番号を含んでいる。ディスクリプション内の各種のURIは、このIPアドレスに対する相対アドレスとして記述されている。なお、本明細書において、「URI」(又はURL)という用語は、絶対アドレスで記述されている場合と、相対アドレスで記述されている場合の両方を含んでいる。以下では、IPアドレスに対する相対アドレスを「パス名」と呼ぶ。
FIG. 9 shows an example of the device description of the
要素<root>の下には一つの要素<device>が存在し、この要素の中にさらに2つの要素<device>が包含されている。1つ目の要素<device>はプリンタデバイス(ルートデバイス)であり、その下位にある2番目と3番目のデバイスはスキャナデバイスとストレージデバイスである。 One element <device> exists under the element <root>, and two more elements <device> are included in this element. The first element <device> is a printer device (root device), and the second and third devices below it are a scanner device and a storage device.
プリンタデバイス用のディスクリプションには、以下の内容が記述されている。
・<presentation URL>:コントロールポイントがプリンタデバイスのプレゼンテーション用のページを取得する際のURL。このURLは、パス名”/PRESENTATION/PRINTER”で構成されている。
・<serviceList> :プリンタデバイスが提供するサービスのリスト。
・<serviceType>:プリンタが提供するサービスのタイプ。”PrintBasic”,”PrintEnhanced”は、いずれもUPnPアーキテクチャの標準的なプリントサービスである。
・<SCPDURL>:プリンタのデバイスディスクリプションのパス名。
・<controlURL>:プリンタデバイス内のコントロールサーバのパス名。コントロールサーバは、コントロールポイントに対してコントロール(コントロールポイントがアクション要求を含む制御メッセージをデバイスに転送して、デバイスの制御を行う処理)の機能を提供するサーバであり、一般にUPnPデバイスのサービス内に設けられている。
・<eventSubURL>:プリンタデバイス内のイベントサーバのパス名。イベントサーバは、サブスクライブ(購読)しているコントロールポイントにイベントを発行するサーバであり、一般にデバイスのサービス内に設けられている。
The following contents are described in the description for the printer device.
<Presentation URL>: URL when the control point acquires a page for presentation of the printer device. This URL is composed of a path name “/ PRESENTATION / PRINTER”.
<ServiceList>: A list of services provided by the printer device.
<ServiceType>: Type of service provided by the printer. “PrintBasic” and “PrintEnhanced” are both standard print services of the UPnP architecture.
<SCPDURL>: The path name of the printer device description.
<ControlURL>: Control server path name in the printer device. The control server is a server that provides a control point function (a process in which the control point transfers a control message including an action request to the device to control the device), and is generally included in the service of the UPnP device. Is provided.
<EventSubURL>: Path name of the event server in the printer device. The event server is a server that issues events to subscribing (subscribing) control points, and is generally provided in a device service.
スキャナ用及びストレージ用のディスクリプションにも、プリンタ用のものと同様な項目が記述されている。なお、デバイスディスクリプションには、この他にデバイスのフレンドリ名や、製造者名、モデル名、アイコンなどの種々のプロパティが記述されているが、ここでは図示が省略されている。 In the descriptions for the scanner and the storage, items similar to those for the printer are described. In the device description, various other properties such as a friendly name of the device, a manufacturer name, a model name, and an icon are described, but the illustration is omitted here.
D.データ転送の概要:
図10は、コントロールポイントからリクエスト(HTTPリクエスト)を受けたときの複合機200内のデータ転送の流れを示す説明図である。ここでは、HTTPリエストの宛先のパス名が”/CONTROL/PRINTER/PRINTBASIC1”である場合を示している。一般に、パス名は、1つ以上の階層で構成されており、各階層はスラッシュ”/”で区切られている。本明細書では、パス名のうちの最上位層の部分を「最上位パス名」と呼ぶ。また、最上位パス名よりも下位の部分を「下位パス名」と呼ぶ。図10の例では、最上位パス名は”/CONTROL”であり、下位パス名は”/PRINTER/PRINTBASIC1”である。なお、この例では、下位パス名”/PRINTER/PRINTBASIC1”は、図9に示したデバイスディスクリプションで記述されているコントロールサーバのパス名(要素<controlURL>)の値と同じものに設定されている。
D. Data transfer overview:
FIG. 10 is an explanatory diagram showing a flow of data transfer in the
この下位パス名のうちの1番目の部分”/PRINTER”はデバイスモジュール”Printer”を示すデバイス名であり、2番目の部分”/PRINTBASIC1”はサービスモジュール”PrintEnhanced”を示すサービス名である。なお、パス名で使用されるデバイス名とサービス名は、デバイスディスクリプションの要素<deviceType>,<serviceType>と同じものである必要はない。但し、デバイス制御部402内のディスパッチャ401(振り分け処理部)には、パス名で使用されるデバイス名とデバイスモジュールとの対応関係、及び、パス名で使用されるサービス名とサービスモジュールとの対応関係が予め設定されていることが好ましい。
The first part “/ PRINTER” of the lower path name is a device name indicating the device module “Printer”, and the second part “/ PRINTBASIC1” is a service name indicating the service module “PrintEnhanced”. Note that the device name and service name used in the path name need not be the same as the device description elements <deviceType> and <serviceType>. However, the dispatcher 401 (distribution processing unit) in the
MFPサーバ300のネットワークプロトコル制御部302は、HTTPリクエストの最上位パス名に応じて、図5(B)に示したUPnP用の複数の論理チャンネルの中から1つを選択する。図10の例では、最上位パス名は”/CONTROL”なので、UPNP-CONTROLチャンネルが選択され、このチャンネル経由でリクエストのメッセージボディがMFPサーバ300からMFPデバイスユニット400に転送される。
The network
デバイス制御部402にディスパッチャ401は、下位パス名に応じてデータの転送先(デバイスモジュールとサービスモジュール)を切り換える。ここでは、下位パス名は”/PRINTER/PRINTBASIC1”なので、このうちの上位の階層名”/PRINTER”に応じてデバイスモジュール”Printer”が選択され、また、下位の階層名”/PRINTBASIC1”に応じてサービスモジュール”PrintBasic”が選択される。そして、このサービスモジュール”PrintBasic”にメッセージボディが供給される。図10においては、MFPデバイスユニット400内におけるデータ転送の経路が矢印で示されている。
The
なお、通常はサービスモジュールがメッセージボディの処理を実行する場合が多いが、サービスモジュールではなくデバイスモジュールが実行する処理(例えばデバイスディスクリプションの生成)も存在する。このような処理のリクエストを受けた場合には、そのリクエストのメッセージボディは、下位パス名に応じてデバイスモジュールに転送されて処理される。 Normally, a service module often executes message body processing, but there is also processing (for example, generation of a device description) executed by a device module instead of a service module. When a request for such processing is received, the message body of the request is transferred to the device module and processed according to the lower path name.
このように、本実施例では、ネットワークプロトコル制御部302がリクエストの宛先の最上位パス名に応じて論理チャンネルを選択するので、多数の論理チャンネルの中から適切な論理チャンネルを容易に選択することができる。この際、ネットワークプロトコル制御部302は、パス名の他の部分やメッセージボディの内容を解釈する必要がなく、最上位パス名のみを解釈すれば済むという利点がある。さらに、デバイス制御部402は、宛先の下位パス名に応じてデータの転送先(デバイスモジュールとサービスモジュール)を切り換えるので、リクエストを適切なデバイスモジュールやサービスモジュールに容易に供給することができる。この際、デバイス制御部402は、下位パス名のみを解釈すれば済むという利点がある。
As described above, in this embodiment, the network
E.各種のデータ転送シーケンス:
図11は、コントロールポイントから複合機200にアクション要求が発行された場合の手順を示すシーケンス図である。図11のステップ[1]では、コントロールポイント110Cが、アクション要求のリクエストメッセージF11をMFPサーバ300に転送する。このリクエストメッセージF11のヘッダには、宛先のパス名”/CONTROL/PRINTER/PRINTBASIC1”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。さらに、メッセージボディには、アクション要求の内容を示すSOAPエンベロープが含まれている。
E. Various data transfer sequences:
FIG. 11 is a sequence diagram illustrating a procedure when an action request is issued from the control point to the
アクション要求が、例えば、新たな印刷ジョブのIDを作成する要求(CreateJob命令)である場合には、SOAPエンベロープには、ジョブの属性として以下のような印刷仕様を設定することが可能である。
・コピー部数
・レイアウト(1頁/1枚,2頁/1枚,デバイス設定値等)
・印刷の向き(ポートレイト/ランドスケープ、デバイス設定値等)
・用紙サイズ(A4,B4,デバイス設定値等)
・印刷用紙の種類(普通紙、写真用紙、透明シート、封筒、デバイス設定値等)
・印刷品質(低画質、通常、高画質、デバイス設定値等)
なお、「デバイス設定値」とは、複合機200に設定されている設定値を使用することを意味している。CreateJob命令には、このような種々の印刷仕様を設定することができるので、コントロールポイントを操作しているユーザが、所望の印刷仕様で複合機200に印刷を実行させることができる。
When the action request is, for example, a request for creating a new print job ID (CreateJob instruction), the following print specifications can be set as job attributes in the SOAP envelope.
・ Number of copies and layout (1 page / 1 sheet, 2 pages / 1 sheet, device setting value, etc.)
・ Direction of printing (portrait / landscape, device settings, etc.)
-Paper size (A4, B4, device settings, etc.)
-Printing paper type (plain paper, photo paper, transparent sheet, envelope, device settings, etc.)
-Print quality (low image quality, normal, high image quality, device settings, etc.)
The “device setting value” means that a setting value set in the
図11のステップ[2]では、MFPサーバ300が、リクエストメッセージF11についてUPnPプロトコルの解析を行う。具体的には、MFPサーバ300は、宛先の最上位パス名”/CONTROL”を解釈してUPNP-CONTROLチャンネルを選択する。ステップ[3]では、MFPサーバ300が、UPNP-CONTROLチャンネルを用いて、宛先のパス名とSOAPエンベロープとを含むメッセージF12をMFPデバイスユニット400に転送する。このメッセージF12内のSOAPエンベロープは、コントロールポイントから送られてきたSOAPエンベロープをそのままコピーしたものである。
In step [2] of FIG. 11, the
図12のステップ[4]では、MFPデバイスユニット400が、受信したメッセージF12内のSOAPエンベロープに含まれているSOAPアクションを解析し、SOAPアクションに応じて処理を実行する。例えば、SOAPアクションが印刷ジョブの作成要求の場合には、印刷すべき文書を表す文書データ(XHTMLデータ)の送付先URIが設定された返信用のSOAPエンベロープが作成される。このSOAPアクションに応じた処理は、宛先の下位パス名”/PRINTER/PRINTBASIC1”で指定されたサービスモジュール”PrintBasic”(図10)によって実行される。
In step [4] of FIG. 12, the
ステップ[5]では、MFPデバイスユニット400が、このSOAPエンベロープを含むメッセージR11をMFPサーバ300に転送する。このときも、ステップ[4]で使用されたものと同じチャン論理チャンネル(UPNP-CONTROLチャンネル)が使用される。メッセージパケットR11のエラーコードフィールド(図6)には、MFPデバイスユニット400での処理が成功したか否かを示すエラーコード等が設定される。
In step [5], the
ステップ[6]では、MFPサーバ300がメッセージR11のエラーコードを参照し、これに応じてSOAPエンベロープにHTTPのヘッダを付加する。ステップ[7]では、こうして作成されたHTTPのレスポンスメッセージR12がMFPサーバ300からコントロールポイント110Cに転送される。
In step [6], the
なお、アクション要求が印刷ジョブ作成要求である場合には、図11のステップ[7]の後に、コントロールポイント110Cが、XHTMLデータをMFPサーバ300に送信し、これに応じて印刷が実行されるが、ここではその説明は省略する。
If the action request is a print job creation request, after step [7] in FIG. 11, the
図12は、アクション要求の他のシーケンスを示す図である。図12の例は、宛先のパス名が図11の例と異なる。すなわち、図12では、パス名が”/CONTROL/PRINTER/PRINTENHANCED1”である。最上位パス名”/CONTRL”は図11と同じなので、使用される論理チャンネルも図11と同じである。一方、下位パス名”/PRINTER/PRINTENHANCED1”のうちのサービス名に相当する部分”/PRINTENHANCED1”は図11の例と異なる。従って、図12のステップ[4]では、メッセージボディはサービスモジュール”PrintEnhanced”(図10)に転送されて、ここで処理される。なお、下位パス名”/PRINTER/PRINTENHANCED1”は、図9に示したデバイスディスクリプションで記述されているコントロールサーバのパス名(要素<controlURL>)の値と同じものに設定されている。図12における他の処理内容は、図11と同じである。 FIG. 12 is a diagram showing another sequence of action requests. The example of FIG. 12 is different from the example of FIG. 11 in the destination path name. That is, in FIG. 12, the path name is “/ CONTROL / PRINTER / PRINTENHANCED1”. Since the highest level path name “/ CONTRL” is the same as in FIG. 11, the logical channel used is also the same as in FIG. On the other hand, the part “/ PRINTENHANCED1” corresponding to the service name in the lower path name “/ PRINTER / PRINTENHANCED1” is different from the example of FIG. Accordingly, in step [4] of FIG. 12, the message body is transferred to the service module “PrintEnhanced” (FIG. 10) and processed there. The lower path name “/ PRINTER / PRINTENHANCED1” is set to the same value as the path name (element <controlURL>) of the control server described in the device description shown in FIG. Other processing contents in FIG. 12 are the same as those in FIG.
図13は、アクション要求のさらに他のシーケンスを示す図である。図13の例も、宛先のパス名が図11、図12の例と異なる。すなわち、図13ではパス名が”/CONTROL/SCANNER/SCAN1”である。最上位パス名”/CONTRL”は、図11、図12と同じなので、使用される論理チャンネルも図11、図12と同じである。一方、下位パス名”/SCANNER/SCAN1”は図11、図12の例と異なる。従って、図13のステップ[4]では、メッセージボディは、下位パス名”/SCANNER/SCAN1”に対応付けられたサービスモジュール”Scan”(図10)に転送されて、ここで処理される。図13における他の処理内容は、図11、図12と同じである。 FIG. 13 is a diagram showing still another sequence of action requests. The example in FIG. 13 is also different from the examples in FIGS. 11 and 12 in the destination path name. That is, in FIG. 13, the path name is “/ CONTROL / SCANNER / SCAN1”. Since the highest level path name “/ CONTRL” is the same as in FIGS. 11 and 12, the logical channel used is also the same as in FIGS. On the other hand, the lower path name “/ SCANNER / SCAN1” is different from the examples of FIGS. Accordingly, in step [4] of FIG. 13, the message body is transferred to the service module “Scan” (FIG. 10) associated with the lower path name “/ SCANNER / SCAN1” and processed there. Other processing contents in FIG. 13 are the same as those in FIGS. 11 and 12.
このように、図11ないし図13の例から、アクション要求の宛先の最上パス名”/CONTROL”に応じてUSB転送の論理チャンネルが選択され、また、下位パス名に応じてメッセージの宛先であるサービスモジュールが決定されていることが理解できる。 As described above, from the examples of FIGS. 11 to 13, the logical channel for USB transfer is selected according to the highest path name “/ CONTROL” of the destination of the action request, and the destination of the message according to the lower path name. It can be seen that the service module has been determined.
図14は、コントロールポイント110Cがイベント初期値を複合機200から取得する場合の手順を示すシーケンス図である。図14のステップ[1]では、コントロールポイント110Cが、イベント初期値要求のリクエストメッセージF21をMFPサーバ300に転送する。このリクエストメッセージF21のヘッダには、宛先のパス名”/EVENT/PRINTER/PRINTENHANCED1”と、複合機200のIPアドレス”169.254.100.100”とが記述されている。このパス名は、図9に示したデバイスディスクリプションで記述されているイベントサーバのパス名(要素<eventSubURL>)の値と同じものに設定されている。
FIG. 14 is a sequence diagram illustrating a procedure when the
図14のステップ[2]では、MFPサーバ300が、リクエストメッセージF21の宛先の最上位パス名"/EVENT"を解釈して論理チャンネルを選択する。図5で説明したように、イベントに関連して使用されるチャンネルとしては、UPNP-EVENTチャンネルがあるが、UPNP-EVENTチャンネルは、複合機200で発生したイベントをコントロールポイントに送信するためにのみ使用される。また、UPNP-LOCALEVENTチャンネルは、MFPデバイスユニット400を要求者としMFPサーバ300を応答者とする通信を行うためのチャンネルなので、イベント初期値のリクエストをMFPサーバ300からMFPデバイスユニット400に送信するには不適切である。そこで、図14の例では、UPNP-LOCALCONTROLチャンネルが利用される。このチャンネルは、MFPサーバ300とMFPデバイスユニット400の間において、MFPサーバ300を要求者とし、MFPデバイスユニット400を応答者とする通信を行う場合に使用されるチャンネルである。MFPサーバ300内のネットワークプロトコル制御部302内には、HTTPリクエストの宛先の最上位パス名”/EVENT”とUPNP-LOCALCONTROLチャンネルとの対応関係が予め設定されている。従って、図14のステップ[3]では、MFPサーバ300が、UPNP-LOCALCONTROLチャンネルを用いて、イベント初期値を要求するメッセージF22をMFPデバイスユニット400に転送する。このメッセージF22のボディには、宛先のパス名”/EVENT/PRINTER/PRINTENHANCED1”がそのまま記述される。このメッセージF22は、下位パス名”/PRINTER/PRINTENHANCED1”に従って、プリンタデバイスのサービスモジュール”PrintEnhanced”(図10)に送られる。
In step [2] in FIG. 14, the
図14のステップ[4]では、サービスモジュール”PrintEnhanced”が、イベント初期値を記述したXMLデータを生成する。図8に示したように、UPnPデバイスのサービスには、イベントサーバと状態テーブルとが設けられている。状態テーブルは、そのサービスの種々の状態を示す状態変数を格納したテーブルである。「イベント初期値」とは、状態テーブルの初期値(状態変数の初期値)を意味している。図14のステップ[5]では、MFPデバイスユニット400が、このXMLデータを含むメッセージR21をMFPサーバ300に転送する。このときも、ステップ[4]で使用されたものと同じUPNP-LOCALCONTROLチャンネルが使用される。ステップ[6]では、MFPサーバ300がメッセージR21のエラーコードを参照し、これに応じてHTTPのヘッダを付加する。ステップ[7]では、こうして作成されたHTTPのレスポンスメッセージR22がMFPサーバ300からコントロールポイント110Cに転送される。
In step [4] of FIG. 14, the service module “PrintEnhanced” generates XML data describing the event initial value. As shown in FIG. 8, the UPnP device service includes an event server and a status table. The state table is a table that stores state variables indicating various states of the service. The “event initial value” means an initial value of the state table (initial value of the state variable). In step [5] of FIG. 14, the
図14の例から理解できるように、コントロールポイント110Cからのメッセージの宛先の最上位パス名”/EVENT”と、使用される論理チャンネル”UPNP-LOCALCONTROL”とは、互いの文字が全く一致しない場合がある。しかしながら、この場合にも、最上位パス名と、使用される論理チャンネルとの関係はMFPサーバ300内に予め設定されており、これに応じて論理チャンネルが選択される。従って、最上位パス名のみから論理チャンネルを容易に選択することが可能である。
As can be understood from the example of FIG. 14, the top-level path name “/ EVENT” of the message destination from the
図15は、イベント発生時のシーケンスの一例を示す図である。「イベント」とは、いずれかのサービスの状態テーブル(図8)の値(状態変数)が変化したことを意味する。イベントサーバは、状態テーブルの値が変化すると、そのサービスにサブスクライブ(購読)しているコントロールポイントにイベントの発生を通知する。 FIG. 15 is a diagram illustrating an example of a sequence when an event occurs. “Event” means that the value (state variable) of the status table (FIG. 8) of any service has changed. When the value of the state table changes, the event server notifies the occurrence of the event to the control points subscribed to the service.
イベントが発生すると、まず図15のステップ[1]において、MFPデバイスユニット400が、発生したイベントを記述したXMLデータを作成する。ステップ[2]では、MFPデバイスユニット400が、イベント発生のメッセージF31をMFPサーバ300にUSBで転送する。図5でも説明したように、イベント発生時のメッセージのUSB転送にはUPNP-EVENTチャンネルが使用される。ステップ[3]では、MFPサーバ300が、メッセージF31にHTTPヘッダを追加して、コントロールポイントへのメッセージF32を作成する。このメッセージF32は、ステップ[4]において、イベントが発生したサービスにサブスクライブしているコントロールポイントに送信される。このとき、NOTIFYメソッドが使用されている。コントロールポイント110Cは、メッセージF32を受信すると、ステップ[5]においてレスポンスメッセージR31をMFPサーバ300に返信する。
When an event occurs, first, in step [1] of FIG. 15, the
このように、イベントの発生の際にも、MFPサーバ300は、メッセージを単に転送するだけであり、メッセージの内容の解析や解釈は行わない。従って、MFPサーバ300の構成を簡易なものとすることが可能である。
As described above, even when an event occurs, the
図16は、コントロールポイントから複合機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チャンネルが使用される。
FIG. 16 is a sequence diagram illustrating a procedure when service content is transmitted from the control point to the
ステップ[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チャンネルが使用される。
In step [4], the
こうしてリクエストIDとチャンネルIDがMFPサーバ300に通知され、また、ステップ[6]においてMFPサーバ300がコンテンツデータの受信を完了すると、ステップ[7]において、MFPサーバ300がコンテンツデータ(例えばXHTMLデータ)を含むメッセージF43をMFPデバイスユニット400に転送する。このメッセージF43の各パケットのヘッダには、ステップ[5]で通知されたリクエストIDが記入されている。また、論理チャンネルとしては、Ndown個のUPNP-DOWNCONTENTxチャンネルの中で、チャンネルIDで指定された1つのチャンネルが使用される。図16の例では、チャンネルIDの値が”1”なので、1番目のチャンネルUPNP-DOWNCONTENT1が使用されている。MFPデバイスユニット400は、メッセージF43のリクエストIDを参照することによって、これらのパケットがステップ[3]で要求された処理のためのパケットであることを容易に認識することができる。また、コンテンツデータの送信処理の際には、予め設けられたNdown個の論理チャンネルUPNP-DOWNCONTENTxのうちの1つを1つのコンテンツに割り当てるので、多数のコンテンツ送信処理を並行して行うことが可能である。
In this way, the request ID and the channel ID are notified to the
コンテンツデータの転送処理が終了すると、ステップ[8]において、処理が完了したことを示すレスポンスメッセージF42がMFPデバイスユニット400からMFPサーバ300に転送される。ステップ[9]では、MFPサーバ300がメッセージR42のエラーコードを参照し、これに応じてHTTPのヘッダを付加する。ステップ[10]では、こうして作成されたHTTPのレスポンスメッセージR43がMFPサーバ300からコントロールポイント110Cに転送される。
When the content data transfer process is completed, a response message F42 indicating that the process is completed is transferred from the
このように、サービスコンテンツの送信(ダウンロード)の際には、まずUPNP-LOCALCONTROLチャンネルを使用して、D4パケットを識別するためのリクエストIDと、使用する論理チャンネルを指定するためのチャンネルIDが取得される。従って、同一のコンテンツデータの転送処理に用いられるパケットを容易に識別することができる。また、複数のUPNP-DOWNCONTENTxチャンネルの中から、使用可能なチャンネルを容易に選択することができる。 As described above, when transmitting (downloading) service content, first, a UPNP-LOCALCONTROL channel is used to obtain a request ID for identifying a D4 packet and a channel ID for designating a logical channel to be used. Is done. Therefore, it is possible to easily identify packets used for the transfer processing of the same content data. Also, a usable channel can be easily selected from a plurality of UPNP-DOWNCONTENTx channels.
図17は、コントロールポイントが複合機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チャンネルが使用される。
FIG. 17 is a sequence diagram illustrating a procedure when the control point acquires service content from the
ステップ[4]では、MFPデバイスユニット400が、メッセージF52の要求に従ってリクエストIDを生成し、また、Nup個のUPNP-UPCONTENTxチャンネルのうちの1つを指定するためのチャンネルIDも生成する。チャンネルIDの値としては、その時点で使用されていないUPNP-UPCONTENTxチャンネルのチャンネルIDの中で最も小さな値が割り当てられる。ステップ[5]では、MFPデバイスユニット400からMFPサーバ300に、リクエストIDとチャンネルIDを含むメッセージR51が返信される。この際にも、UPNP-LOCALCONTROLチャンネルが使用される。
In step [4], the
こうしてリクエストIDとチャンネルIDがMFPサーバ300に通知された後、ステップ[6]においてコンテンツデータの生成が完了すると、ステップ[7]において、MFPデバイスユニット400がコンテンツデータを含むメッセージR52をMFPサーバ300に転送する。このメッセージR52の各パケットのヘッダには、ステップ[5]でMFPサーバ300に通知されたリクエストIDが記入されている。また、論理チャンネルとしては、Nup個のUPNP-UPCONTENTxチャンネルの中で、チャンネルIDで指定された1つのチャンネルが使用される。図17の例では、チャンネルIDの値が”1”なので、1番目のチャンネルUPNP-UPCONTENT1が使用されている。MFPデバイスユニット400は、メッセージR52のリクエストIDを参照することによって、これらのパケットがステップ[3]で要求された処理のためのパケットであることを容易に認識することができる。また、コンテンツデータのUSB転送の際には、予め設けられたNup個の論理チャンネルUPNP-UPCONTENTxのうちの1つを使用するので、多数のコンテンツ転送処理を並行して行うことが可能である。
After the request ID and the channel ID are notified to the
コンテンツデータのUSB転送が終了すると、ステップ[8]において、MFPサーバ300が、コンテンツデータにHTTPのヘッダを付加してメッセージR53を生成する。ステップ[9]では、こうして作成されたメッセージR53がMFPサーバ300からコントロールポイント110Cに転送される。
When the USB transfer of the content data is completed, in step [8], the
このように、コントロールポイントからの要求に応じてサービスコンテンツをコントロールポイントに転送する際には、まずUPNP-LOCALCONTROLチャンネルを使用して、転送処理用のパケットを識別するためのリクエストIDと、使用する論理チャンネルを指定するためのチャンネルIDが取得される。従って、1つのコンテンツの転送処理に用いられる複数のパケットを容易に識別することができる。また、複数のUPNP-UPCONTENTxチャンネルの中から、使用可能なチャンネルを容易に選択することができる。 As described above, when the service content is transferred to the control point in response to a request from the control point, first, the UPNP-LOCALCONTROL channel is used and the request ID for identifying the packet for transfer processing is used. A channel ID for designating a logical channel is acquired. Therefore, it is possible to easily identify a plurality of packets used for one content transfer process. In addition, a usable channel can be easily selected from a plurality of UPNP-UPCONTENTx channels.
F.他の実施例:
図18は、本発明の第2実施例における複合機システムの構成を示すブロック図である。この複合機システムは、中継ユニット600とデバイスユニット800とがUSB接続された構成を有している。中継ユニット600は、MFPサーバ300とMFPデバイス制御ユニット700とを有している。MFPサーバ300は、図2に示したものと同じである。MFPデバイス制御ユニット700は、図2に示したMFPデバイスユニット400から、USBデバイス制御部470と、PCカードインタフェース480と、操作パネル制御部490及び操作パネル492と、ビューワ制御部500及びビューワ502と、印刷エンジン440と、スキャナエンジン450とを省略したものである。USBホスト制御部510のルートハブ512には、デバイスユニット800が接続されている。
F. Other examples:
FIG. 18 is a block diagram showing the configuration of the multifunction machine system in the second embodiment of the present invention. This multi-function device system has a configuration in which a
デバイスユニット800は、印刷エンジン810と、スキャナエンジン820と、PCカードインタフェース830とを有している。また、図示は省略されているが、デバイスユニット800に操作パネルとビューワを設けておくことが好ましい。この複合機システムは、図2の複合機200から3つのデバイス(プリンタ、スキャナ、ストレージ)を分離して、デバイスユニット800として独立させたものであることが理解できる。
The
図19は、第2実施例において、コントロールポイントからリクエスト(HTTPリクエスト)を受けたときのデータ転送の流れを示す説明図である。MFPサーバ300(図18)はネットワークプロトコル制御部302としての機能を有しており、MFPデバイス制御ユニット700はディスパッチャ401としての機能を有している。ネットワークプロトコル制御部302とディスパッチャ401の機能は、図10に示したこれらの機能と同じである。すなわち、ネットワークプロトコル制御部302は、最上位パス名に応じて論理チャンネルを選択して、メッセージをMFPデバイス制御ユニット700に転送する。また、MFPデバイス制御ユニット700のディスパッチャ401は、下位パス名に応じてメッセージの転送先のデバイスモジュール及びサービスモジュールを切り換える。なお、デバイスモジュール及びサービスモジュールのソフトウェア部分は、MFPデバイス制御ユニット700内に設けておくようにしてもよい。
FIG. 19 is an explanatory diagram showing the flow of data transfer when a request (HTTP request) is received from the control point in the second embodiment. The MFP server 300 (FIG. 18) has a function as the network
なお、第2実施例では、MFPデバイス制御ユニット700とデバイスユニット800との間もUSB接続されているので、これらの間においても、図4に示したものと同じ論理チャンネルを設けるおくことが好ましい。こうすれば、2つのユニット700,800間の転送に用いる論理チャンネルを容易に選択できるので、MFPデバイス制御ユニット700の制御がより容易になる。
In the second embodiment, since the MFP
この第2実施例においても、ネットワークプロトコル制御部302がリクエストの宛先の最上位パス名に応じて論理チャンネルを選択するので、多数の論理チャンネルの中から適切な論理チャンネルを容易に選択することができる。また、MFPデバイス制御ユニット700は、下位パス名に応じてデータ転送先のサービスデバイスを切り換えるので、リクエストを適切なサービスデバイスに容易に供給することができる。
Also in the second embodiment, since the network
G.変形例:
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
G. Variations:
The present invention is not limited to the above-described examples and embodiments, and can be implemented in various modes without departing from the gist thereof. For example, the following modifications are possible.
G1.変形例1:
上記実施例では、UPnP対応のネットワーク装置として複数のデバイスを含む複合機200を用いていたが、この代わりに、1つのデバイス(例えばプリンタ)のみを含む単機能のネットワーク装置を採用することも可能である。換言すれば、ネットワーク装置は、少なくとも1つのデバイスを有していれば良い。
G1. Modification 1:
In the above embodiment, the
G2.変形例2:
上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
G2. Modification 2:
In the above embodiment, a part of the configuration realized by hardware may be replaced with software, and conversely, a part of the configuration realized by software may be replaced by hardware.
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コネクタ
600…中継ユニット
700…MFPデバイス制御ユニット
800…デバイスユニット
810…印刷エンジン
820…スキャナエンジン
830…PCカードインタフェース
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デバイス機能部
DESCRIPTION OF
330 ... ROM
340 ...
430 ... ROM
440 ...
Claims (5)
ネットワーク上のクライアントからの要求に応じてサービスを実行する1つ以上のサービスデバイスと、
前記サービスデバイスの制御を行うデバイス制御部と、
メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信するとともに、前記メッセージボディの情報を前記デバイス制御部に転送するネットワークプロトコル制御部と、
を備え、
前記ネットワークプロトコル制御部と前記デバイス制御部とは、所定のインタフェースの論理チャネルであって、前記ネットワーク型プラグアンドプレイに対応した論理チャネルとして設定された複数の論理チャンネルで接続されており、
前記ネットワークプロトコル制御部は、前記クライアントから受信したメッセージの宛先であるパス名のうちの最上位層の名前である最上位パス名に応じて前記複数の論理チャンネルの1つを選択し、選択された論理チャンネルを用いて前記メッセージボディの内容を前記デバイス制御部に転送する、ネットワーク装置。 A network device that supports network type plug and play,
One or more service devices that perform services in response to requests from clients on the network;
A device control unit for controlling the service device;
A network protocol control unit for receiving a message having a message header and a message body from a client on the network and transferring information of the message body to the device control unit;
With
The network protocol control unit and the device control unit are logical channels of a predetermined interface , and are connected by a plurality of logical channels set as logical channels corresponding to the network type plug and play ,
The network protocol control unit selects one of the plurality of logical channels according to a highest path name that is a name of a highest layer among path names that are destinations of a message received from the client. A network device that transfers the content of the message body to the device control unit using a logical channel.
前記デバイス制御部は、複数の前記サービスデバイスを含んでおり、
前記ネットワークプロトコル制御部は、前記メッセージボディの情報の他に前記メッセージのパス名も前記デバイス制御部に転送し、
前記デバイス制御部は、前記メッセージのパス名のうちの前記最上位層よりも下位の名前である下位パス名に応じて前記複数のサービスデバイスのうちの1つを選択し、選択されたサービスデバイスに前記メッセージボディの情報を供給する、ネットワーク装置。 The network device according to claim 1, wherein
The device control unit includes a plurality of the service devices,
The network protocol controller transfers the message path name in addition to the message body information to the device controller,
The device control unit selects one of the plurality of service devices according to a lower path name that is a name lower than the highest layer in the path name of the message, and selects the selected service device A network device for supplying the message body information to the network device.
前記複数のサービスデバイスのうちの少なくとも1つの特定のサービスデバイスは、複数のサービスを実行するための複数のサービスモジュールを有しており、
前記デバイス制御部は、前記下位パス名が前記特定のサービスデバイスを示すデバイス名と、前記複数のサービスモジュールのうちの1つを示すサービス名とを含む場合に、前記サービス名に応じて前記複数のサービスモジュールのうちの1つを選択し、選択されたサービスモジュールに前記メッセージボディの情報を供給する、ネットワーク装置。 The network device according to claim 2, wherein
At least one specific service device of the plurality of service devices has a plurality of service modules for executing a plurality of services,
The device control unit, when the lower path name includes a device name indicating the specific service device and a service name indicating one of the plurality of service modules, according to the service name A network device that selects one of the service modules and supplies the message body information to the selected service module.
前記複数の論理チャンネルは、プリンタインタフェースの論理チャンネルであって、D4パケットを利用したUSB転送用の論理チャンネルである、ネットワーク装置。 A network device according to any one of claims 1 to 3,
The network device, wherein the plurality of logical channels are logical channels for a printer interface, and are logical channels for USB transfer using D4 packets.
前記ネットワークプロトコル制御部と前記デバイス制御部とは、所定のインタフェースの論理チャネルであって、前記ネットワーク型プラグアンドプレイに対応した論理チャネルとして設定された複数の論理チャンネルで接続されており、
(a)メッセージヘッダとメッセージボディとを有するメッセージを前記ネットワーク上のクライアントから受信する工程と、
(b)前記クライアントから受信したメッセージの宛先であるパス名のうちの最上位層の名前である最上位パス名に応じて複数の論理チャンネルの1つを選択し、選択された論理チャンネルを用いて、前記メッセージボディの内容を前記ネットワークプロトコル制御部から前記デバイス制御部に転送する工程と、
を備える方法。 One or more service devices that execute a service in response to a request from a client on the network, a device control unit that controls the service device, and a message received from the client on the network is transferred to the device control unit Including a network protocol control unit for controlling a network device compatible with network-type plug and play,
The network protocol control unit and the device control unit are logical channels of a predetermined interface , and are connected by a plurality of logical channels set as logical channels corresponding to the network type plug and play ,
(A) receiving a message having a message header and a message body from a client on the network;
(B) One of a plurality of logical channels is selected according to the highest path name that is the name of the highest layer among the path names that are destinations of the message received from the client, and the selected logical channel is used. Transferring the content of the message body from the network protocol control unit to the device control unit;
A method comprising:
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005259554A JP4935027B2 (en) | 2005-09-07 | 2005-09-07 | Network device corresponding to network type plug and play and control method thereof |
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 |
---|---|---|---|
JP2005259554A JP4935027B2 (en) | 2005-09-07 | 2005-09-07 | Network device corresponding to network type plug and play and control method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007072793A JP2007072793A (en) | 2007-03-22 |
JP4935027B2 true JP4935027B2 (en) | 2012-05-23 |
Family
ID=37934176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005259554A Expired - Fee Related JP4935027B2 (en) | 2005-09-07 | 2005-09-07 | Network device corresponding to network type plug and play and control method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4935027B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4555926B2 (en) * | 2007-02-01 | 2010-10-06 | サイレックス・テクノロジー株式会社 | Scanner automatic connection program |
JP2009208430A (en) * | 2008-03-06 | 2009-09-17 | Ricoh Co Ltd | Image forming apparatus, system, method and program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6412022B1 (en) * | 1998-09-30 | 2002-06-25 | Hewlett-Packard Company | Simultaneous print and scan logical channel network multifunction peripheral |
JP2001094621A (en) * | 1999-09-21 | 2001-04-06 | Canon Inc | Communication control circuit and method |
JP2001222503A (en) * | 2000-02-08 | 2001-08-17 | Ricoh Co Ltd | Peripheral equipment control system |
US20020083143A1 (en) * | 2000-12-13 | 2002-06-27 | Philips Electronics North America Corporation | UPnP architecture for heterogeneous networks of slave devices |
US7058088B2 (en) * | 2001-03-28 | 2006-06-06 | Minolta Co., Ltd. | Data communication program product to rewrite simultaneously firmware of plurality of devices connected to network |
JP2003008610A (en) * | 2001-06-20 | 2003-01-10 | Sony Corp | Information processor and method, storage medium, and program for information processing |
JP2004164310A (en) * | 2002-11-13 | 2004-06-10 | Canon Inc | Image processor and control method therefor |
JP3842251B2 (en) * | 2003-07-08 | 2006-11-08 | 株式会社コナミデジタルエンタテインメント | Node device, communication system, node method, and program |
-
2005
- 2005-09-07 JP JP2005259554A patent/JP4935027B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007072793A (en) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4645164B2 (en) | Network device control for network type plug and play | |
US7664135B2 (en) | Control of network plug-and-play compliant device | |
JP4508114B2 (en) | Network relay control for network type plug and play | |
US20060150236A1 (en) | Control of network plug-and-play compliant device | |
US7594040B2 (en) | Network relay device having network plug-and-play compliant protocols for network relay | |
US7869073B2 (en) | Image forming system, image forming method and information terminal device | |
JP4710468B2 (en) | Print request apparatus, print system, and print request method | |
JP5729979B2 (en) | Print relay system, print system, image forming apparatus, control method for controlling print relay system, and program | |
JP4774973B2 (en) | Network relay control for network type plug and play | |
US8259332B2 (en) | Printing apparatus and printing system | |
JP4760425B2 (en) | Switching style sheets for printing using a printer | |
JP2007156691A (en) | Network relay compatible with network-type plug and play | |
JP4765496B2 (en) | Network device corresponding to network type plug and play and control method thereof | |
JP4935027B2 (en) | Network device corresponding to network type plug and play and control method thereof | |
JP4640147B2 (en) | Network relay control for network type plug and play | |
JP2007080126A (en) | Control of network device corresponding to network type plug and play | |
JP4791240B2 (en) | Print control apparatus and print control method | |
JP2007072795A (en) | Open control of usb logic channel | |
JP2007034886A (en) | Image output device, image output method, and network connection apparatus | |
JP2007128215A (en) | Information collection on network device | |
JP2005157540A (en) | Print protocol converting apparatus and data storage device | |
JP5072499B2 (en) | Image forming apparatus, data communication apparatus, data communication method, and data communication program | |
JP2009278336A (en) | Image forming apparatus, provided function control method, and provided function control program | |
JP2008193381A (en) | Order sheet, order sheet preparing method, processing method using order sheet, and apparatus for them | |
JP2007213156A (en) | Server offering multiple kinds of services |
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 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101101 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110715 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120124 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120206 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4935027 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |