JP5528124B2 - デバイス検索装置、デバイス検索方法並びにプログラム - Google Patents

デバイス検索装置、デバイス検索方法並びにプログラム Download PDF

Info

Publication number
JP5528124B2
JP5528124B2 JP2010001155A JP2010001155A JP5528124B2 JP 5528124 B2 JP5528124 B2 JP 5528124B2 JP 2010001155 A JP2010001155 A JP 2010001155A JP 2010001155 A JP2010001155 A JP 2010001155A JP 5528124 B2 JP5528124 B2 JP 5528124B2
Authority
JP
Japan
Prior art keywords
server
subnet
search
message
information
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
Application number
JP2010001155A
Other languages
English (en)
Other versions
JP2011141654A (ja
JP2011141654A5 (ja
Inventor
勇気 伊藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2010001155A priority Critical patent/JP5528124B2/ja
Priority to US12/985,647 priority patent/US8718058B2/en
Publication of JP2011141654A publication Critical patent/JP2011141654A/ja
Publication of JP2011141654A5 publication Critical patent/JP2011141654A5/ja
Application granted granted Critical
Publication of JP5528124B2 publication Critical patent/JP5528124B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Description

本発明は、ネットワークを介して画像形成装置等のデバイスを検索するデバイス検索装置、デバイス検索方法並びにプログラムに関する。
従来、クライアントPCからネットワークを介して画像形成装置等のデバイスを利用することが可能になっている。その際、クライアントPCは、ネットワーク上のデバイスを検索し、検索したデバイスを利用するためのドライバソフトウェアをインストールする必要がある。これら一連の処理を実行するための技術として、マイクロソフト社がWSD(Web Services on Devices)を提案している。WSDにおいて、ネットワーク上のデバイスを検索する際に、WS-Discovery仕様が使用されている。
また、クライアントPCが、マルチキャストによりDP(Discovery Proxy)サーバに対してデバイス検索を行い、DPサーバが保持しているデバイス情報を検索結果として返すデバイス検索システムが提案されている。また、OASISが提唱しているWS-Discovery仕様には、クライアントPCからDPサーバに対してDPサーバ検索を行い、DPサーバが保持しているDPサーバ情報を検索結果として返す方法がある(※OASIS:Organization for the Advancement of Structured Information Standards)。
ところで、ネットワーク技術の発展に伴い、ネットワーク同士がルータなどの接続機器により相互に接続され、大規模なネットワークを構築することが可能になっている。その中で、ブロードキャストやマルチキャストは、ネットワーク全体のトラフィックに影響を与えるため、一般にルータはこれらを通過させない設定で運用される。ルータによって区切られたそれぞれのネットワークはサブネットと呼ばれ、ブロードキャストやマルチキャストは一般にサブネット内のみで利用されている。
従来のネットワークデバイス検索技術では、マルチキャストを使用しているので、クライアントPCが送信した検索要求パケットがルータを通過できない場合が多い。そのため、複数のサブネットがルータによって接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを発見することは難しかった。こうした課題を解決するために、サブネットごとにサーバを設置し、サーバ間でデバイス情報や検索要求の交換を行う技術が提案されている(例えば、特許文献1参照)。
特開2007−97057号公報
しかしながら、上記従来の技術では、サーバが、異なるサブネット上のサーバにクライアントPCからのデバイス検索要求を転送する処理が必要である。デバイス検索要求に対する検索応答に対しても同様に、サーバがクライアントPCへ異なるサブネットのサーバからの検索応答を転送する処理が必要である。
また、サーバが自動で異なるサブネット上のサーバへ検索要求を転送するため、クライアントPCは、デバイスを検索したいサブネットのサーバを選択できないという問題がある。
本発明は、上記問題に鑑みてなされたものであり、その目的は、複数のサブネットがルータにより接続された大規模なネットワーク環境において、ユーザが、デバイス検索したいサブネットに存在するデバイスの情報を容易且つ速やか入手することを可能とする技術を提供することにある。
上記目的を達成するために、本発明のデバイス検索装置は、マルチキャストによる通信を各サブネット内でのみ可能とするルータを介して接続される、第1のサブネット及び第2のサブネットを含むネットワーク上の前記第1のサブネット上にあるデバイス検索装置であって、デバイス検索サーバの検索を要求する第1のメッセージを前記第1のサブネット上にある第1のデバイス検索サーバにマルチキャストで送信し、前記第1のデバイス検索サーバから受信した第2のメッセージの中から、前記前記第2のサブネット上にある第2のデバイス検索サーバを含むデバイス検索装置のURLを抽出し、当該URLが抽出されたデバイス検索サーバの名称をユーザ選択可能に表示する第1の制御手段と、前記第1の制御手段により表示された前記複数のデバイス検索サーバの名称の中から前記第2のデバイス検索サーバの名称がユーザ選択された場合、当該第2のデバイス検索サーバのURLに基づいて、前記第2のサブネット上にあるデバイスの検索を要求する第3のメッセージを前記第2のデバイス検索サーバにユニキャストで送信し、前記第2のデバイス検索サーバから受信した第4のメッセージの中から前記第2のサブネット上にある前記デバイスのURLを抽出する第2の制御手段と、前記第4のメッセージから抽出したURLに基づいて、前記第2のサブネット上にある前記デバイスのデバイス情報を要求する第5のメッセージを、当該デバイスにユニキャストで送信し、前記デバイスから返信された返信メッセージから前記デバイスのデバイス情報を取得する第3の制御手段と、を備えることを特徴とする。
本発明によれば、複数のサブネットがルータにより接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを容易に検索することを可能となる。
本発明の実施形態に係るデバイス検索システムの構成例を示す図である。 図1におけるデバイスのハードウェア構成を示すブロック図である。 図1におけるDPサーバ、クライアントPCのハードウェア構成を示すブロック図である。 デバイス、DPサーバ、クライアントPCのソフトウェア構成を示すブロック図である。 DPサーバにおける、他のサブネット上のDPサーバの情報を登録する際のUIの一例を示す図である。 クライアントPCにおける、デバイスを検索する際のUIの一例を示す図である。 クライアントPCにおける、デバイス検索要求を送信するDPサーバを選択する際のUIの一例を示す図である。 DPサーバ1のデバイス/DPサーバ情報保持部が保持するデバイス/DPサーバ情報の一例を示す図である。 デバイスがマルチキャストで送信するHelloメッセージの一例を示す図である。 デバイスが送信するGetResponseメッセージの一例を示す図である。 (a)はクライアントPCがマルチキャストで送信するProbeメッセージの一例を示す図、(b)はDPサーバからクライアントPCに送信されるProbeMatchメッセージの一例を示す図である。 (a)はクライアントPCがユニキャストで送信するProbeメッセージの一例を示す図、(b)はDPサーバからクライアントPCに送信されるProbeMatchメッセージの一例を示す図である。 デバイス検索時にDPサーバで実行される処理を示すフローチャートである。 デバイス検索時にクライアントPCで実行される処理を示すフローチャートである。 第2の実施形態においてクライアントPCからマルチキャストで送信されるProbeメッセージの一例を示す図である。 DPサーバから送信されるHelloメッセージの一例を示す図である。 第2の実施形態におけるデバイス検索時のDPサーバで実行される処理を示すフローチャートである。 第2の実施形態におけるデバイス検索時のクライアントPCで実行される処理を示すフローチャートである。 第3の実施形態において、DPサーバからクライアントPCに送信されるProbeMatchメッセージの一例を示す図である。 第3の実施形態におけるデバイス検索時のクライアントPCで実行される処理を示すフローチャートである。 第4の実施形態においてDPサーバからクライアントPCに送信されるProbeMatchメッセージの一例を示す図である。 第4の実施形態におけるデバイス検索時のDPサーバで実行される処理を示すフローチャートである。 第4の実施形態におけるデバイス検索時のクライアントPCで実行される処理を示すフローチャートである。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の実施形態に係るデバイス検索システムの構成例を示す図である。
図1において、デバイス101、Discovery Proxy(DP)サーバ102、クライアントPC103が接続されたサブネット1は、デバイス104、DPサーバ105が接続されたサブネット2とルータ108を介して相互に接続されている。また、サブネット1は、デバイス106、DPサーバ107が接続されたサブネット3とルータ109を介して相互に接続されている。全てのサブネットに接続された端末は、相互に通信が可能になっている。なお、ルータ108,109は、一方のサブネットから受信したブロードキャストやマルチキャストを他方のサブネットにそのまま転送することはしない。そのため、ブロードキャストやマルチキャストによる通信は各サブネット内でのみ可能である。
次に、画像形成装置等のデバイス101,104,106、デバイス検索サーバとしてのDPサーバ102,105,107、デバイス検索装置としてのクライアントPC103のハードウェア及びソフトウェア構成について説明する。なお、デバイス101,104,106は、同一のハードウェア及びソフトウェア構成を有することから、デバイス101を用いて説明する。DPサーバ102,105,107は、同一のハードウェア及びソフトウェア構成を有することから、DPサーバ102を用いて説明する。
図2は、図1におけるデバイス101のハードウェア構成を示すブロック図である。なお、ここでは、MFPを例にして説明する。
図2のデバイス101において、CPU201は、ROM203に確保されたプログラム用ROMに記憶された制御プログラムに基づいて、システムバス204に接続される各部とのアクセスを総括的に制御する。また、CPU201は、印刷インターフェース(I/F)207を介して接続される印刷部(プリンタエンジン)210に出力情報としての画像信号を出力したり、読取I/F212を介して接続される読取部(スキャナ)213から入力される画像信号を制御する。
また、ROM203に確保されたプログラム用ROMには、CPU201が実行可能な制御プログラム等が記憶されている。さらに、ROM203に確保されたフォント用ROMには、上記出力情報を生成する際に使用するフォントデータ(アウトラインフォントデータを含む)等が記憶されている。ROM203に確保されたデータ用ROMには、デバイス101上で利用される情報等が記憶されている。CPU201は、LANコントローラ206を介してネットワーク上の各装置との通信処理が可能となっている。
RAM202は、主としてCPU201の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張できるように構成されている。また、RAM202には、出力情報を展開するための出力情報展開領域や、環境データを格納するための環境データ格納領域等が設けられている。
外部記憶装置211は、ハードディスク(HDD)、ICカード等から成り、ディスクコントローラ(DKC)208によりアクセスが制御される。外部記憶装置211は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、プリントジョブを一時的にスプールし、スプールされたジョブを外部から制御するためのジョブ格納領域として使用される。また、外部記憶装置211は、スキャナ213から読み取った画像データやプリントジョブの画像データをBOXデータとして保持し、ネットワークから参照したり、印刷を行うBOXデータ格納領域としても使用される。なお、外部記憶装置211は、1個に限らず、複数個で構成されていてもよい。また、DKC208には、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。
操作パネル205は、ユーザがソフトウェアキーから各種情報を入力することが可能なタッチパネル等から成る。不揮発性メモリ209は、操作パネル205から設定される各種設定情報を記憶する。
なお、デバイス101には、オプションとして、ステープルやソート機能を行うフィニッシャや両面印刷機能を実現するための両面装置など各種拡張装置を装着することが可能となっており、それらの動作はCPU201から制御される。
図3は、図1におけるDPサーバ102、クライアントPC103のハードウェア構成を示すブロック図である。なお、DPサーバ102、クライアントPC103は、汎用のPC(パーソナルコンピュータ)で構成されていることから、図示例では、DPサーバ102を用いて説明する。
図3において、CPU301は、ROM302やハードディスク(HD)311に記憶されたプログラムに基づいて、後述する処理を実行する。RAM303は、CPU301の主記憶装置として使用される。キーボードコントローラ(KBC)305は、ポインティングデバイス(PD)309a、キーボード(KB)309bからの情報などの入力に係る処理を行う。表示制御部(CRTC)306は、内部にビデオメモリを有し、CPU301からの指示に従ってそのビデオメモリに描画すると共に、ビデオメモリに描画されたイメージデータをビデオ信号として表示装置(CRT)310に出力する。なお、表示装置としてCRT(Cathode Ray Tube)を例示しているが、液晶モニタであってもよく、表示装置の種類は問わない。
ディスクコントローラ(DKC)307は、HD311、フロッピー(登録商標)ディスク312へのアクセスを行う。なお、HD311には、OS(Operating System)やOS上で動作する各種アプリケーションプログラム等が格納される。
ネットワークインタフェースカード(NIC)308は、ネットワークに接続するためのインターフェースであり、ネットワーク上の他の装置との通信を制御する。
上記構成において、本装置の電源がONになると、CPU301が、ROM302に格納されたブートプログラムに従って、HD311からOSをRAM303に読み込み、情報処理装置として機能する。
図4は、デバイス101、DPサーバ102、クライアントPC103のソフトウェア構成を示すブロック図である。
デバイス101において、デバイス情報管理部411はデバイス101自身のデバイス情報を管理する。デバイス情報には、例えば、デバイス名やモデル名等が含まれる。具体的なデバイス情報の例は、図8を用いて後述する。
デバイス情報通知部412は、デバイス情報の通知が必要な場合にマルチキャストで参加/離脱通知を送信する。デバイス情報送信部413は、ネットワークを介してデバイス情報取得要求を受信し、デバイス情報管理部411が管理しているデバイス情報を要求元に送信する。デバイス検索処理部414は、マルチキャストでデバイス検索要求を受信し、デバイス検索要求に対する検索応答を送信する。
DPサーバ102において、デバイス情報通知受信部421はデバイス101からマルチキャストで送信される参加/離脱の通知を受信し、その通知の種類に基づきデバイス/DPサーバ情報保持部424が保持するデバイス情報の処理を行う。処理の結果、デバイス情報の取得が必要であると判断された場合は、デバイス情報取得部422は、デバイス101に対してデバイス情報取得要求を送信し、返されたデバイス情報をデバイス/DPサーバ情報保持部424に保持する。
デバイス情報検索処理部423は、クライアントPC103から送信されるデバイス/DPサーバ情報の検索要求を受信し、指定された検索条件に基づきデバイス/DPサーバ情報保持部424内のデバイス/DPサーバ情報を検索する。そして、その結果をクライアントPC103に送信する。
なお、クライアントPC103が送信する検索要求は、自サブネット宛の場合はマルチキャストであり、他のサブネット宛の検索要求はユニキャストである。なお、自サブネットとは、クライアントPC103が接続されたネットワークのうち、ルータで区切られた範囲内のネットワークのことである。DPサーバ情報については、DPサーバ登録処理部425より手動操作でデバイス/DPサーバ情報保持部424に登録される。また、デバイス/DPサーバ情報保持部424が保持するデバイス/DPサーバ情報については後述する。
クライアントPC103において、デバイス/DPサーバ検索処理部431は、検索要求を自サブネット宛の場合はマルチキャストで送信し、他のサブネット宛の場合はユニキャストで送信する。デバイス情報取得部433は、デバイス101に対してデバイス情報取得要求を送信し、返されたデバイス情報を検索情報表示部432に表示する。
図5は、DPサーバ102における、他のサブネット上のDPサーバの情報を登録する際のUIの一例を示す図である。図示のUI画面は、検索情報表示部432により表示される。
図5において、領域501は、登録するDPサーバのIPアドレス、名称を入力するための入力欄である。なお、名称の登録は省略可能である。登録ボタン502が押下されると、領域501に入力された情報がDPサーバ登録処理部425によりDPサーバ102に登録される。既にDPサーバ102に登録されている他のサブネットのDPサーバの情報は、領域503にリスト表示される。図5に示す領域503には、DPサーバ105に対応するDPサーバ情報503aと、DPサーバ107に対応するDPサーバ情報503bが表示されている。登録ボタン502が押下されると、DPサーバ102は、登録したDPサーバに向けてProbeメッセージをユニキャストで送信し、ProbeMatchメッセージを受信することでDPサーバの情報を取得する。
図6は、クライアントPC103における、デバイスを検索する際のUIの一例を示す図である。
図6において、領域601は、検索するデバイスのタイプを指定するための入力欄である。領域601では、「MFP」、「Printer」などのキーワードが指定可能である。領域601に何も入力されていない場合は、全てのデバイスが検索される。検索実行ボタン602が押下されると、DPサーバ102に対して検索が実行される。検索された結果は領域603に表示され、取得した情報から、デバイスのタイプやモデル名、デバイス名が同時に表示される。図6に示す領域603には、プリンタ「LBPXXXX」のデバイス情報603a、プリンタ「LBPYYYY」のデバイス情報603b、及びMFP「MFPXXXX」のデバイス情報603cが表示されている。
図7は、クライアントPC103における、デバイス検索要求を送信するDPサーバを選択する際のUIの一例を示す図である。
図6に示す画面上で検索条件が指定され、DPサーバ102に対して検索が実行されると、DPサーバ102が接続されたネットワーク以外の他のサブネットのDPサーバ情報が図7のように表示される。領域701には、図示例のように、DPサーバ情報701a,701b,701cが表示される。DPサーバ102が他のサブネットのDPサーバ情報に加えて、自身のDPサーバ情報も返す場合は、領域701にDPサーバ102の情報も表示される(701a)。
次に、領域701に表示されている中から任意のDPサーバ情報が選択され、検索実行ボタン702が押下されると、選択したDPサーバに向けてクライアントPC103がデバイス検索要求を送信する。なお、領域701に表示されているDPサーバ情報の中から同時に複数のDPサーバ情報を選択することも可能である。
上述したDPサーバ選択を行わない場合は、クライアントPC103は、DPサーバ102が返すDPサーバ情報の全てに対してデバイス検索要求を送信する。
図8は、DPサーバ102のデバイス/DPサーバ情報保持部424が保持するデバイス/DPサーバ情報の一例を示す図である。
それぞれのデバイス/DPサーバ情報800はレコードとして保持され、レコードはID801、UUID802、バージョン803、デバイスタイプ804、モデル名805、デバイス名806、URL807、IPアドレス808からなる。
ID801は、DPサーバ内でデバイス/DPサーバを識別するためのIDを示す。UUID802は、デバイスをグローバルに識別するUUIDを示す。バージョン803は、デバイス情報のバージョンを示す。デバイスタイプ804は、複合機を意味する「MFP」、プリンタを意味する「Printer」、Discovery Proxyを意味する「DiscoveryProxy」などのタイプを示す。モデル名805は、「LBPXXXX」のようなデバイスのモデル名を示す。デバイス名806は、デバイス管理者がデバイス/DPサーバに設定した名前を示す。URL807は、デバイス/DPサーバ情報を取得するためのURLを示す。IPアドレス808は、デバイス/DPサーバのIPアドレスを示す。
次に、デバイス104のデバイス情報をDPサーバ105に登録する方法について説明する。
デバイス104は、起動時やデバイス情報に変更があった場合に図9に示すようなXML形式のHelloメッセージをマルチキャストで送信することにより存在を通知する。図9に示すHelloメッセージは、<Header>タグで囲まれるheader部901と<Body>タグで囲まれるbody部902からなり、全体が<Envelope>タグで囲まれる構造になっている。この構造は、本実施形態において使用するメッセージ全てに共通である。
header部901は、メッセージの内容に依存しない共通ヘッダとしての役割を果たしており、<Action>タグ、<MessageID>タグ、<To>タグが存在する。<Action>タグは、メッセージの種類を識別するためのものである。<MessageID>タグは、メッセージを一意に識別するための識別子である。<To>タグは、このメッセージの送信先を識別するためのものである。
一方、body部902は、メッセージの内容に対応して構造が変化する。図9においては、<Body>タグの直下に<Hello>タグが存在し、このメッセージがHelloメッセージであることを示している。<Hello>タグの中には、<EndpointReference>タグ、<Types>タグ、<XAddrs>タグ、<MetadataVersion>タグが存在する。<EndpointReference>タグの中には<Address>タグが存在し、デバイスを識別するアドレス情報を持つ。<Types>タグはデバイスのタイプ情報を持つ。<XAddrs>タグはデバイス情報を取得するためのURLを持つ。<MetadataVersion>タグはデバイス情報のバージョンを持つ。
DPサーバ105は、Helloメッセージの中からデバイスをグローバルに識別するUUIDとして、<EndpointReference>タグの中の<Address>タグの値を抽出する。また、デバイスタイプとして<Types>タグの値を抽出する。また、デバイス情報のバージョンとして<MetadataVersion>タグの値を抽出する。また、デバイス情報を取得するためのURLとして<XAddrs>タグの値を抽出する。そして、これら抽出した情報をデバイス/DPサーバ情報保持部424に格納する。また同時に、Helloメッセージの送信元IPアドレスもデバイス/DPサーバ情報保持部424に格納する。その後、DPサーバ105は、<XAddrs>タグで記載されたURLに対し、XML形式のGetメッセージをユニキャストで送信する。Getメッセージは、header部のみを持つメッセージとなっている。header部の<Action>タグにおいて、このメッセージがGetメッセージであることを示している。
デバイス104のデバイス情報送信部413は、Getメッセージを受信すると、図10に示すようなGetResponseメッセージを送信する。図10のGetResponseメッセージにおいては、body部に<Metadata>タグで示されるデバイス情報を持つ構造となっている。<Metadata>タグの中には<MetadataSection>タグで示されるMetadataSection部1101,1102,1103が存在する。各MetadataSection部は直下のタグにより、その中に持つ情報の種類が指定される。
MetadataSection部1101は<ThisDevice>タグを持っており、デバイスごとに異なる情報が格納される。<FriendlyName>タグはこのデバイスにつけた名前、<FirmwareVersion>タグはこのデバイスのファームウェアバージョン、<SerialNumber>タグはこのデバイスのシリアル番号を示している。MetadataSection部1102は<ThisModel>タグを持っており、デバイスのモデルごとに異なる情報が格納される。
<Manufacturer>タグはデバイスの製造会社名、<Manufacturer>タグはデバイス製造会社のURL、<PresentationURL>はデバイスの情報を示すURL、<ModelName>タグはデバイスのモデル名を示している。MetadataSection部1103は<Relationship>タグを持っており、デバイスが持つ内部サービスの情報が格納される。本実施形態においては、内部サービスとはデバイスが提供するプリントサービスである。<Relationship>タグはさらにその直下に<Hosted>タグを持ち、その中に<EndpointReference>タグ、<Types>タグ、<ServiceId>タグが存在する。<EndpointReference>タグの中には<Address>タグが存在し、サービスを利用するためのアドレス情報を持つ。<Types>タグはサービスのタイプ情報を持つ。<ServiceId>タグはデバイス内でサービスを識別するための識別子を持つ。
DPサーバ105は、受信したデバイス情報からデバイス名として<FriendlyName>タグの値、モデル名として<ModelName>タグの値を抽出し、デバイス/DPサーバ情報保持部424に格納する。なお、デバイス106のデバイス情報をDPサーバ107に登録する方法についても上述の方法と同様である。
次に、DPサーバ105に登録されたデバイス情報をデバイス104が削除する方法について説明する。
デバイス104は、自機がSHUTDOWNする場合など、動作を停止する場合には、Byeメッセージをマルチキャストで送信する。Byeメッセージにおいては、body部に<Bye>タグが存在し、このメッセージがByeメッセージであることを示している。<Bye>タグの中には<EndpointReference>タグが存在する。<EndpointReference>タグの中には<Address>タグが存在し、デバイスを識別するアドレス情報を持つ。DPサーバ105はByeメッセージの中からUUID情報を抽出し、対応するデバイス情報をデバイス/DPサーバ情報保持部424から削除する。なお、DPサーバ107に登録されたデバイス情報をデバイス106が削除する方法についても上述の方法と同様である。
次に、クライアントPC103がDPサーバ102を使用して他のサブネット上のデバイス104,106を検索する方法について説明する。
クライアントPC103は、図11(a)に示すようなXML形式のProbeメッセージをマルチキャストで送信する。図11(a)に示すProbeメッセージにおいては、body部に<Probe>タグが存在し、このメッセージがProbeメッセージであることを示している。<Probe>タグの中には<Types>タグが存在する。<Types>タグではDiscoveryProxyを指定する。
DPサーバ102は、Probeメッセージを受信すると<Types>タグを抽出し、デバイス/DPサーバ情報保持部424の中からDPサーバを探し、図11(b)に示すようなProbeMatchメッセージをクライアントPC103に送信する。図11(b)に示すProbeMatchメッセージにおいては、body部に<ProbeMatches>タグが存在し、このメッセージがProbeMatchメッセージであることを示している。<ProbeMatches>タグの中には<ProbeMatch>タグで示されるProbeMatch部1401,1402,1403が存在する。それぞれのProbeMatch部が1個の検索結果に対応しており、図11(b)の例においては3個の検索結果が返されていることを示している。ProbeMatch部の中の構造は、図9のHelloメッセージにおける<Hello>タグの中と同一である。
クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載されたURLを抽出し、図7に示すようにDPサーバ102,105,107のIPアドレスと名称を表示する。例えば、DPサーバ105が選択されて検索実行ボタン702が押下されると、クライアントPC103は、図12(a)に示すようなProbeメッセージを他のサブネット上のDPサーバ105にユニキャストで送信する。<Types>タグでは、図6に示す画面上で入力された検索したいデバイスのタイプを指定する。なお、DPサーバ102,107が選択された場合も図12(a)のようなProbeメッセージをDPサーバ102,107に向けて送信する。
他のサブネット上のDPサーバ105は、Probeメッセージを受信すると、<Types>タグを抽出する。そして、デバイス/DPサーバ情報保持部424の中から検索条件に合致するデバイスを探し、図12(b)に示すようなProbeMatchメッセージをクライアントPC103に送信する。なお、DPサーバ102,107がProbeメッセージを受信した場合も、同様にProbeMatchメッセージを送信する。
クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載されたURLを抽出し、Getメッセージをユニキャストで送信する。本実施形態において、URLは他のサブネット上のデバイス104のIPアドレスからなっており、GetメッセージはDPサーバ105ではなく他のサブネット上のデバイス104に直接送信する。
デバイスは、図10に示すようなGetResponseメッセージを送信し、クライアントPC103は必要な情報を抽出する。ProbeMatchメッセージに複数の検索結果が存在している場合には、クライアントPC103はGetメッセージの送信を繰り返し、全てのデバイス情報を取得する。なお、クライアントPC103は、DPサーバ102,107から受信したProbeMatchメッセージのURLに対してもGetメッセージをユニキャストで送信する。
図13は、上述のデバイス検索時にDPサーバ102で実行される処理を示すフローチャートである。
まず、DPサーバ102は、Probeメッセージを受信する(ステップS1701)。次に、<Types>タグを抽出し(ステップS1702)、デバイス/DPサーバ情報800のレコードを検索し、抽出された値と同じデバイスタイプを持つかどうかを判定する(ステップS1703,検索手段。ステップS1703の判定の結果、レコードがDPサーバで一致した場合には、そのDPサーバ情報を設定した応答データを作成する(ステップS1704)。一方、レコードがDPサーバ以外(デバイス検索サーバ以外)のデバイスタイプで一致した場合には、そのデバイス情報を設定した応答データを作成する(ステップS1705)。レコードがいずれとも一致しなかった場合は、そのままステップS1706へ進む。
ステップS1706において、全てのレコードについて確認が終了したかどうかを判定する。全てのレコードの検索が終了するとステップS1707に進み、それまでに生成された応答データを1個にまとめ、図11(b)に示すようなProbeMatchメッセージを送信して、本処理を終了する。
図14は、上述のデバイス検索時にクライアントPC103で実行される処理を示すフローチャートである。
まず、クライアントPC103は、<Types>タグにDPサーバが設定されたProbeメッセージを作成し(ステップS1801)、Probeメッセージをマルチキャストで送信する(ステップS1802)。このProbeメッセージが第1のメッセージの一例である。次に、DPサーバからのProbeMatchメッセージを受信し(ステップS1803)、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のDPサーバのURLを抽出する(ステップS1804)。このProbeMatchメッセージが第2のメッセージの一例である。ステップS1801〜S1804が第1の制御工程の一例である。
次に、クライアントPC103は、<Types>タグに検索したいデバイスタイプが設定されたProbeメッセージを作成し(ステップS1805)、他のサブネット上のDPサーバにProbeメッセージをユニキャストで送信する(ステップS1806)。このProbeメッセージが第3のメッセージの一例である。
次に、クライアントPC103は、他のサブネット上のDPサーバからのProbeMatchメッセージを受信する(ステップS1807)。そして、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のデバイスのURLを抽出する(ステップS1808)。このProbeMatchメッセージが第4のメッセージの一例である。ステップS1805〜S1808が第2の制御工程の一例である。
次に、クライアントPC103は、他のサブネット上のデバイスにGetメッセージをユニキャストで送信し(ステップS1809)、他のサブネット上のデバイスからのGetResponseメッセージを受信して(ステップS1810)、本処理を終了する。このGetResponseメッセージが返信メッセージの一例である。
このように、クライアントPC103は、GetResponseメッセージから必要な情報を抽出することで他のサブネット上のデバイスのデバイス情報を取得することができる。上記ステップS1809〜S1809とデバイス情報の取得が第3の制御工程の一例である。
上記実施形態によれば、複数のサブネットがルータにより接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを容易に検索することを可能となる。
[第2の実施形態]
次に、第2の実施形態について説明する。
マイクロソフト社のWS-Discovery仕様には、DPサーバ102がクライアントPC103からProbeメッセージをマルチキャストで受信した際、DPサーバ102は<Types>タグにDiscoveryProxyを設定してHelloメッセージを返す仕様がある。本実施形態は、クライアントPC103がProbeに対してのHelloメッセージを受信した場合に、他のサブネット上のデバイスを検索する方法である。
第2の実施形態におけるクライアントPC103がDPサーバ102を使用して他のサブネット上のデバイス104,106を検索する方法について説明する。
クライアントPC103は、図15に示すようなProbeメッセージをマルチキャストで送信する。図15に示すProbeメッセージにおいて、<Types>タグではPrinterを指定する。
DPサーバ102はProbeメッセージを受信すると、Probeメッセージがマルチキャストかつ、<Types>タグがDPサーバでないかを判定し、その場合はHelloメッセージ作成処理を行う。もしProbeメッセージがユニキャストか、<Types>タグがDPサーバの場合は、上記第1の実施形態のようにProbeMatchメッセージ作成処理を行う。DPサーバ102は、<Types>タグを抽出し、デバイス/DPサーバ情報保持部424の中からDPサーバを探し、図16(a),図16(b),図16(c)に示すようなHelloメッセージをクライアントPC103に送信する。
図16(a)〜図16(c)に示すHelloメッセージには、それぞれのHelloメッセージが1個の検索結果に対応しており、図示例においては3個の検索結果が返される。なお、一つのHelloメッセージに3個のDPサーバ情報を含めることも可能である。クライアントPC103は、Helloメッセージの中から<XAddrs>タグで記載されたURLを抽出する。以降のデバイスの検索処理は、上記第1の実施形態と同じである。
図17は、第2の実施形態におけるデバイス検索時のDPサーバ102で実行される処理を示すフローチャートである。
まず、DPサーバ102は、Probeメッセージを受信し(ステップS2101)、Probeメッセージがマルチキャストかどうかを判定する(ステップS2102)。ステップS2102は第2の判定手段による判定の一例である。ステップS2102の判定の結果、マルチキャストでない場合は、ステップS2103以降のProbeMatchメッセージ作成処理に入る。一方、Probeメッセージがマルチキャストである判定された場合は、ステップS2109に進む。
ステップS2103では、DPサーバ102は、<Types>タグを抽出する。次に、デバイス/DPサーバ情報800のレコードを検索し、抽出された値と同じデバイスタイプを持つかどうかを判定する(ステップS2104)。この判定の結果、レコードがDPサーバで一致した場合、そのDPサーバ情報を設定した応答データを作成する(ステップS2105)。一方、レコードがDPサーバ以外のデバイスタイプで一致した場合には、そのデバイス情報を設定した応答データを作成する(ステップS2106)。レコードがいずれとも一致しなかった場合は、そのままステップS2107へ進む。
ステップS2107では、DPサーバ102は、全てのレコードについて確認が終了したかどうかを判定する。全てのレコードの検索が終了するとステップS2108に進み、それまでに生成された応答データを1個にまとめ、ProbeMatchメッセージを送信して、本処理を終了する。
ステップS2109では、DPサーバ102は、<Types>タグを抽出し、<Types>タグの値がDiscoveryProxyかどうかを判定する(ステップS2110)。ステップS2110は第3の判定手段による判定の一例である。ステップS2110の判定の結果、DiscoveryProxyの場合は、ステップS2104以降のProbeMatchメッセージ作成処理に入る。
一方、ステップS2110において、<Types>タグの値がDiscoveryProxyでないと判定された場合は、ステップS2110以降のHelloメッセージ作成処理に入る。ステップS2111では、DPサーバ102は、デバイス/DPサーバ情報800のレコードを検索し、デバイスタイプがDPサーバかどうかを判定する。レコードのデバイスタイプがDPサーバの場合は、DPサーバ102は、そのDPサーバ情報を設定した応答データを作成し(ステップS2112)、Helloメッセージを送信する(ステップS2113)。次に、ステップS2114では、全てのレコードについて確認が終了したかどうかを判定し、全てのレコードの検索が終了すると、本処理を終了する。
図18は、第2の実施形態におけるデバイス検索時のクライアントPC103で実行される処理を示すフローチャートである。
まず、クライアントPC103は、<Types>タグに検索したいデバイスタイプが設定されたProbeメッセージを作成し(ステップS2201)、Probeメッセージをマルチキャストで送信する(ステップS2202)。次に、DPサーバからのHelloメッセージを受信し(ステップS2203)、Helloメッセージの中から<XAddrs>タグで記載された他のサブネット上のDPサーバのURLを抽出する(ステップS2204)。
次に、クライアントPC103は、<Types>タグに検索したいデバイスタイプが設定されたProbeメッセージを作成し(ステップS2205)、他のサブネット上のDPサーバにProbeメッセージをユニキャストで送信する(ステップS2206)。次に、クライアントPC103は、他のサブネット上のDPサーバからのProbeMatchメッセージを受信する(ステップS2207)。そして、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のデバイスのURLを抽出する(ステップS2208)。
次に、クライアントPC103は、他のサブネット上のデバイスにGetメッセージをユニキャストで送信し(ステップS2209)、他のサブネット上のデバイスからのGetResponseメッセージを受信して(ステップS2210)、本処理を終了する。
このように、クライアントPC103は、GetResponseメッセージから必要な情報を抽出することで他のサブネット上のデバイスからデバイス情報を取得することができる。
上記実施形態によれば、複数のサブネットがルータにより接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを容易に検索することを可能となる。
[第3の実施形態]
次に、第3の実施形態について説明する。
第1の実施形態においては、クライアントPC103は、<Types>タグにDPサーバを設定してProbeメッセージを送信した後、ProbeMatchメッセージを受信する。しかし、ProbeMatchメッセージに含まれるDPサーバ情報が自サブネットのDPサーバであるか他のサブネット上のDPサーバであるか判断することはできない。クライアントPC103にとっては、自サブネットのDPサーバ情報はDPサーバが接続されたときのHelloメッセージで取得することができるため、他のサブネットのDPサーバ情報のみを取得することができればよい。そこで、本実施形態では、クライアントPC103は、自サブネットのDPサーバと他のサブネット上のDPサーバを区別して、他のサブネット上のDPサーバにのみデバイス検索のProbeメッセージを送信する。
第3の実施形態におけるクライアントPC103がDPサーバ102を使用して他のサブネット上のデバイス104,106を検索する方法について説明する。
クライアントPC103は、図11(a)に示すようなProbeメッセージをマルチキャストで送信する。図11(a)に示すProbeメッセージにおいて、<Types>タグではDiscoveryProxyを指定する。
DPサーバ102はProbeメッセージを受信すると、<Types>タグを抽出しデバイス/DPサーバ情報保持部424の中からDPサーバを探し、図19に示すようなProbeMatchメッセージをクライアントPC103に送信する。<ProbeMatches>タグの中には、<ProbeMatch>タグで示されるProbeMatch部2301,2302,2303が存在する。それぞれのProbeMatch部が1個の検索結果に対応しており、図19の例においては3個の検索結果が返されていることを示している。
DPサーバ102は、<ProbeMatch>タグの中で、自サブネットのDPサーバの場合は<Subnet>タグにInsideを指定し、他のサブネット上のDPサーバの場合は<Subnet>タグにOutsideを指定する。図19では、ProbeMatch部2301が自身のDPサーバ情報を示しており、<Subnet>タグにInsideを指定している。
クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載されたURLを抽出する。また、<Subnet>タグで記載されたサブネット情報(Inside/Outside)から他のサブネット上のDPサーバを判断し、他のサブネット上のDPサーバに対してのみ図12(a)のようなProbeメッセージを送信する。つまり、<Subnet>タグにOutsideが記載されたProbeMatch部に対応するDPサーバに対してのみ、図12(a)のようなProbeメッセージを送信する。
なお、クライアントPC103は、<Subnet>タグのサブネット情報をUI画面に表示してDPサーバの選択をさせてもよい。以降のデバイスの検索処理は第1の実施形態と同じである。
上述のデバイス検索の流れについて、DPサーバ102の処理を示すフローチャートは上記第1の実施形態と同じである。
図20は、第3の実施形態におけるデバイス検索時のクライアントPC103で実行される処理を示すフローチャートである。
まず、クライアントPC103は、<Types>タグにDPサーバを設定したProbeメッセージを作成し(ステップS2401)、Probeメッセージをマルチキャストで送信する(ステップS2402)。次に、クライアントPC103は、DPサーバからのProbeMatchメッセージを受信する(ステップS2403)。
クライアントPC103は、DPサーバから受信したProbeMatchメッセージの中から<Subnet>タグで記載されたサブネット情報を抽出し(ステップS2404)、他のサブネットのDPサーバ情報かどうかを判定する(ステップS2405)。この判定の結果、他のサブネットのDPサーバ情報である場合は、ステップS2406に進み、クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のDPサーバのURLを抽出する。
次に、クライアントPC103は、<Types>タグに検索したいデバイスタイプを設定したProbeメッセージを作成し(ステップS2407)、他のサブネット上のDPサーバにProbeメッセージをユニキャストで送信する(ステップS2408)。一方、ステップS2405において自サブネットのDPサーバ情報であると判断した場合は、クライアントPC103は、Probeメッセージの送信を行わずにステップS2409に進む。
ステップS2409では、クライアントPC103は、ProbeMatchメッセージの中にまだDPサーバ情報が存在するかを判定し、まだDPサーバ情報が存在する場合は、ステップS2404に戻る。一方、ステップS2409において、DPサーバ情報が存在しないと判断した場合は、ステップS2410に進む。
ステップS2410では、クライアントPC103は、他のサブネット上のDPサーバからのProbeMatchメッセージを受信する。つづいて、ステップS2411では、クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のデバイスのURLを抽出する。
次に、クライアントPC103は、他のサブネット上のデバイスにGetメッセージをユニキャストで送信し(ステップS2412)、他のサブネット上のデバイスからのGetResponseメッセージを受信し(ステップS2413)、本処理を終了する。
クライアントPC103は、GetResponseメッセージから必要な情報を抽出することで他のサブネット上のデバイスのデバイス情報を取得することができる。
なお、本第3の実施形態では、<Subnet>タグにより、自サブネットのDPサーバ情報か他のサブネットのDPサーバ情報かの判断を行ったが、<Xaddrs>タグによる判断を行ってもよい。クライアントPC103は、<Xaddrs>タグからDPサーバのIPアドレスを抽出し、そのIPアドレスが自身の所属するサブネットの範囲に含まれるかを判断する。含まれる場合は自サブネットのDPサーバであると判断し、含まれない場合は他のサブネット上のDPサーバであると判断する。
また、第2の実施形態のように、DPサーバ102がHelloメッセージを送信する場合でも、Helloメッセージに<Subnet>タグを付与することで、自サブネットのDPサーバ情報か他のサブネットのDPサーバ情報かの判断をさせてもよい。
上記実施形態によれば、複数のサブネットがルータにより接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを容易に検索することを可能となる。
[第4の実施形態]
次に、第4の実施形態について説明する。
上記第3の実施形態では、クライアントPC103がタグの解析やIPアドレスの解析処理を行わなければならず、クライアントPC103の処理負荷が増えてしまうという問題がある。
そこで、第4の実施形態では、DPサーバ102がProbeメッセージに対する応答方法を変更することで、クライアントPC103の処理負荷を減らす。
DPサーバ102は、クライアントPC103からの<Types>タグにDPサーバを設定したProbeメッセージを受信する。すると、自サブネットのDPサーバ情報はHelloメッセージで、他のサブネットのDPサーバ情報はProbeMatchメッセージで応答される。
第4の実施形態におけるクライアントPC103がDPサーバ102を使用して他のサブネット上のデバイス104,106を検索する方法について説明する。
クライアントPC103は、図11(a)に示すようなProbeメッセージをマルチキャストで送信する。図11(a)のProbeメッセージにおいて、<Types>タグではDiscoveryProxyを指定する。DPサーバ102は、Probeメッセージを受信すると、<Types>タグを抽出しデバイス/DPサーバ情報保持部424の中からDPサーバを探す。そして、図21(a)に示すようなHelloメッセージと図21(b)、図21(c)に示すようなProbeMatchメッセージをクライアントPC103に送信する。DPサーバ102は、自サブネットのDPサーバ情報であればDPサーバ情報をHelloメッセージで送信し、他のサブネットのDPサーバ情報であればDPサーバ情報をProbeMatchメッセージで送信する。図21(a)に示すHelloメッセージがDPサーバ102自身のDPサーバ情報を示しており、Helloメッセージで自サブネット情報であることを示している。
クライアントPC103は、受信したHelloメッセージとProbeMatchメッセージの<Action>タグからHelloメッセージかProbeMatchメッセージかを判断する。Helloメッセージの場合はメッセージを破棄し、ProbeMatchメッセージの場合はProbeMatchメッセージの中から<XAddrs>タグで記載されたURLを抽出する。
クライアントPC103は、図12(a)のようなProbeメッセージを他のサブネット上のDPサーバ105にユニキャストで送信する。なお、クライアントPC103は、自サブネットのDPサーバか他のサブネット上のDPサーバかを示すサブネット情報をUI画面に表示してDPサーバの選択をさせてもよい。以降のデバイスの検索処理は第1の実施形態と同じである。
図22は、第4の実施形態におけるデバイス検索時のDPサーバ102で実行される処理を示すフローチャートである。
まず、DPサーバ102は、Probeメッセージを受信する(ステップS2601)。次に、<Types>タグを抽出し(ステップS2602)、<Types>タグの値がDiscoveryProxyかを判定する(ステップS2603)。ステップS2603は第4の判定手段による判定の一例である。
ステップS2603の判定の結果、DiscoveryProxyでない場合はステップS2604に進み、DPサーバ102は、デバイス/DPサーバ情報800のレコードを検索し、抽出された値と同じデバイスタイプを持つかどうかを判定する。この判定の結果、レコードが一致した場合、DPサーバ102は、そのデバイス情報を設定した応答データを作成する(ステップS2605)。次に、ステップS2606において、DPサーバ102は、全てのレコードについて確認が終了したかどうかを判定する。この判定の結果、全てのレコードの検索が終了するとステップS2607に進み、それまでに生成された応答データを1個にまとめ、ProbeMatchメッセージを送信して本処理を終了する。
一方、ステップS2603で<Types>タグの値がDiscoveryProxyであると判定した場合、DPサーバ102は、デバイス/DPサーバ情報800のレコードを検索し、抽出された値と同じデバイスタイプを持つかどうかを判定する(ステップS2608)。この判定の結果、レコードが一致した場合には、DPサーバ102は、自サブネットのDPサーバ情報かどうかを判定する(ステップS2609)。ステップS2609は第5の判定手段による判定の一例である。自サブネットのDPサーバ情報であると判断した場合は、DPサーバ102は、そのDPサーバ情報を設定した応答データ(第2の応答データ)を作成し(ステップS2610)、Helloメッセージを送信する(ステップS2611)。
一方、ステップS2609で他のサブネットのDPサーバ情報であると判断した場合、DPサーバ102は、そのDPサーバ情報を設定した応答データ(第1の応答データ)を作成する(ステップS2612)。そして、ProbeMatchメッセージを送信する(ステップS2613)。
ステップS2614では、DPサーバ102は、全てのレコードについて確認が終了したかどうかを判定し、全てのレコードの検索が終了すると本処理を終了する。
図23は、第4の実施形態におけるデバイス検索時のクライアントPC103で実行される処理を示すフローチャートである。
まず、クライアントPC103は、<Types>タグにDPサーバを設定したProbeメッセージを作成し(ステップS2701)、Probeメッセージをマルチキャストで送信する(ステップS2702)。
次に、クライアントPC103は、DPサーバからメッセージを受信し(ステップS2703)、<Action>タグからメッセージ種別を判定する(ステップS2704)。この判定の結果、メッセージ種別がProbeMatchの場合はステップS2705に進み、クライアントPC103は、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のDPサーバのURLを抽出する。一方、ステップS2704において、メッセージ種別がHelloの場合はステップS2706に進み、クライアントPC103は、Helloメッセージを破棄する。
ステップS2707の判定により、まだ受信メッセージが残っていると判定した場合はステップS2704に戻る一方、受信メッセージを全て処理したと判定した場合はステップS2708に進む。ステップS2708では、クライアントPC103は、<Types>タグに検索したいデバイスタイプを設定したProbeメッセージを作成する。そして、クライアントPC103は、他のサブネット上のDPサーバにProbeメッセージをユニキャストで送信する(ステップS2709)。
次に、クライアントPC103は、他のサブネット上のDPサーバからのProbeMatchメッセージを受信する(ステップS2710)。そして、ProbeMatchメッセージの中から<XAddrs>タグで記載された他のサブネット上のデバイスのURLを抽出する(ステップS2711)。次に、クライアントPC103は、他のサブネット上のデバイスにGetメッセージをユニキャストで送信し(ステップS2712)、他のサブネット上のデバイスからのGetResponseメッセージを受信する(ステップS2713)。
このように、クライアントPC103はGetResponseメッセージから必要な情報を抽出することで他のサブネット上のデバイスのデバイス情報を取得することができる。
上記実施形態によれば、複数のサブネットがルータにより接続されたネットワーク環境において、クライアントPCが異なるサブネットに存在するデバイスを容易に検索することを可能となる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
101,104,106 デバイス
102,105,107 DPサーバ
103 クライアントPC
431 デバイス/DPサーバ検索処理部
433 デバイス情報取得部
421 デバイス情報通知受信部
422 デバイス情報取得部
423 デバイス情報検索処理部
424 デバイス/DPサーバ情報保持部
425 DPサーバ登録処理部

Claims (14)

  1. マルチキャストによる通信を各サブネット内でのみ可能とするルータを介して接続される、第1のサブネット及び第2のサブネットを含むネットワーク上の前記第1のサブネット上にあるデバイス検索装置であって、
    バイス検索サーバの検索を要求する第1のメッセージを前記第1のサブネット上にある第1のデバイス検索サーバにマルチキャストで送信し、前記第1のデバイス検索サーバから受信した第2のメッセージの中から、前記第2のサブネット上にある第2のデバイス検索サーバを含むデバイス検索サーバのURLを抽出し、当該URLが抽出されたデバイス検索サーバの名称をユーザ選択可能に表示する第1の制御手段と、
    前記第1の制御手段により表示されたデバイス検索サーバの名称の中から前記第2のデバイス検索サーバの名称がユーザ選択された場合、当該第2のデバイス検索サーバのURLに基づいて、前記第2のサブネット上にあるデバイスの検索を要求する第3のメッセージを前記第2のデバイス検索サーバにユニキャストで送信し、前記第2のデバイス検索サーバから受信した第4のメッセージの中から前記第2のサブネット上にあるデバイスのURLを抽出する第2の制御手段と、
    前記第4のメッセージから抽出したURLに基づいて、前記第2のサブネット上にある前記デバイスのデバイス情報を要求する第5のメッセージを、当該デバイスにユニキャストで送信し、前記デバイスから返信された返信メッセージから前記デバイスのデバイス情報を取得する第3の制御手段と、
    を備えることを特徴とするデバイス検索装置。
  2. 記第2のメッセージProbeMatchメッセージであることを特徴とする請求項1記載のデバイス検索装置。
  3. 記第2のメッセージHelloメッセージであることを特徴とする請求項1記載のデバイス検索装置。
  4. 前記第1の制御手段は、前記第1のデバイス検索サーバから前記第2のメッセージとして受信したProbeMatchメッセージの中からサブネット情報を抽出し、前記抽出したサブネット情報が前記第1のサブネット以外のサブネットを表すか否かを判定する判定手段と、
    前記判定手段により前記抽出されたサブネット情報が前記第1のサブネット以外のサブネットの情報を表す場合には、前記ProbeMatchメッセージの中から前記第1のサブネット以外のサブネット上のデバイス検索サーバのURLを抽出する抽出手段と、
    を備えることを特徴とする請求項1記載のデバイス検索装置。
  5. 前記第1の制御手段は、前記第1のデバイス検索サーバから受信した前記第2のメッセージの種別を判定する判定手段と、
    前記判定手段により前記第2のメッセージがProbeMatchメッセージであると判定された場合、前記ProbeMatchメッセージの中から前記第1のサブネット以外ののサブネット上のデバイス検索サーバのURLを抽出する抽出手段と、
    を備えることを特徴とする請求項1記載のデバイス検索装置。
  6. 前記第1の制御手段は、前記第1のデバイス検索サーバから受信した前記第2のメッセージに基づき、デバイス検索サーバの名称をリストとして表示する表示手段と、
    前記表示手段に表示されたリストから所望のデバイス検索サーバをユーザに選択させるための選択手段と、
    をさらに備えることを特徴とする請求項1乃至5のいずれか1項に記載のデバイス検索装置。
  7. マルチキャストによる通信を各サブネット内でのみ可能とするルータを介して接続される、第1のサブネット及び第2のサブネットを含むネットワーク上の、前記第1のサブネット上にあるデバイス検索サーバであって、
    前記第1のサブネット上のデバイスのデバイス/サーバタイプ及びURL、並びに前記ネットワーク上のデバイス検索サーバのデバイス/サーバタイプ及びURLを登録する登録手段と、
    前記第1のサブネット上にある第1のデバイス検索装置または前記第2のサブネット上にある第2のデバイス検索装置のいずれかを送信先とする検索要求を受信する受信手段と、
    前記受信手段により前記検索要求が受信されたとき、前記登録手段により登録された情報から、前記検索要求が表すデバイス/サーバタイプに合致する情報を検索する検索手段と、
    前記検索手段による検索結果に応じて応答データを作成する作成手段と、
    前記作成された応答データを、前記送信先に送信する送信手段と、
    を備えることを特徴とするデバイス検索サーバ。
  8. 前記検索要求が表すデバイス/サーバタイプがデバイス検索サーバであるとき、前記検索手段は、前記登録手段に登録された情報のうち、デバイス/サーバタイプがデバイス検索サーバのURLを検索し、前記作成手段は、当該検索されたURLを含むデータを前記応答データとして作成し、
    前記検索要求が表すデバイス/サーバタイプがデバイス検索サーバ以外のデバイスであるとき、前記検索手段は、前記登録手段に登録された情報のうち、デバイス/サーバタイプがデバイス検索サーバ以外のデバイスのURLを検索し、前記作成手段は、前記検索されたURLを含むデータを前記応答データとして作成し、
    前記送信手段は、当該作成された応答データをProbeMatchメッセージとして送信することを特徴とする請求項7記載のデバイス検索サーバ。
  9. 前記受信した検索要求がマルチキャストで送信されたか否かを判定する第2の判定手段と、
    前記第2の判定手段により前記検索要求がマルチキャストで送信されたと判定された場合、前記検索要求にDiscoveryProxyが指定されているか否かを判定する第の判定手段と、をさらに備え、
    記第3の判定手段により前記検索要求にDiscoveryProxyが指定されていないと判定された場合、記検索手段は、前記登録手段に登録された情報のうち、デバイス/サーバタイプがデバイス検索サーバのURLを検索し、前記作成手段は、当該検索されたURLを含むデータを前記応答データとして作成し、前記送信手段は、当該作成された応答データをHelloメッセージとして送信することを特徴とする請求項7記載のデバイス検索サーバ。
  10. 前記受信した検索要求にDiscoveryProxyが指定されているか否かを判定する第4の判定手段と、
    前記第4の判定手段により前記デバイス検索要求にDiscoveryProxyが指定されていると判定された場合、前記検索要求で指定されている情報が前記デバイス検索サーバ自身の情報のみであるか否かを判定する第5の判定手段と、をさらに備え、
    記第5の判定手段により、前記検索要求で指定されている情報が前記デバイス検索サーバ自身の情報のみでないと判定された場合、前記検索手段は、前記登録手段に登録された情報のうち、デバイス/サーバタイプがデバイス検索サーバのURLを検索し、前記作成手段は、当該検索されたURLを含むデータを前記応答データとして作成し、
    前記第5の判定手段により、前記検索要求で指定されている情報が前記デバイス検索サーバ自身の情報のみであると判定された場合、前記作成手段は、前記デバイス検索サーバ自身の情報に基づいての応答データを作成し、
    前記送信手段は、前記応答データについてはProbeMatchメッセージで送信し、前記の応答データについてはHelloメッセージで送信することを特徴とする請求項7記載のデバイス検索サーバ(第3の実施形態)。
  11. 請求項1乃至6のいずれか1項の記載のデバイス検索装置と、請求項7乃至10のいずれか1項に記載のデバイス検索サーバとを備えることを特徴とするデバイス検索システム。
  12. マルチキャストによる通信を各サブネット内でのみ可能とするルータを介して接続される、第1のサブネット及び第2のサブネットを含むネットワーク上の前記第1のサブネット上にあるデバイス検索装置のデバイス検索方法であって、
    バイス検索サーバの検索を要求する第1のメッセージを前記第1のサブネット上にある第1のデバイス検索サーバにマルチキャストで送信し、前記第1のデバイス検索サーバから受信した第2のメッセージの中から、前記第2のサブネット上にある第2のデバイス検索サーバを含むデバイス検索装置のURLを抽出し、当該URLが抽出されたデバイス検索サーバの名称をユーザ選択可能に表示する第1の制御工程と、
    前記第1の制御手段により表示されたデバイス検索サーバの名称の中から前記第2のデバイス検索サーバの名称がユーザ選択された場合、当該第2のデバイス検索サーバのURLに基づいて、前記第2のサブネット上にあるデバイスの検索を要求する第3のメッセージを前記第2のサブネット上のデバイス検索サーバにユニキャストで送信し、前記第2のデバイス検索サーバから受信した第4のメッセージの中から前記第2のサブネット上にあるデバイスのURLを抽出する第2の制御工程と、
    前記第4のメッセージから抽出したURLに基づいて、前記第2のサブネット上にある前記デバイスのデバイス情報を要求する第5のメッセージを、当該デバイスにユニキャストで送信し、前記デバイスから返信された返信メッセージから前記デバイスのデバイス情報を取得する第3の制御工程と、を備えることを特徴とするデバイス検索方法。
  13. マルチキャストによる通信を各サブネット内でのみ可能とするルータを介して接続される、第1のサブネット及び第2のサブネットを含むネットワーク上の、前記第1のサブネット上にあるデバイス検索サーバのデバイス検索方法であって、
    前記第1のサブネット上のデバイスのデバイス/サーバタイプ及びURL、並びに前記ネットワーク上のデバイス検索サーバのデバイス/サーバタイプ及びURLを登録する登録工程と
    前記第1のサブネット上にある第1のデバイス検索装置または前記第2のサブネット上にある第2のデバイス検索装置のいずれかを送信先とする検索要求を受信する受信工程と、
    前記受信工程で前記検索要求が受信されたとき、前記登録工程で登録された情報から、前記検索要求が表すデバイス/サーバタイプに合致する情報を検索する検索工程と、
    前記検索工程における検索結果に応じて応答データを作成する作成工程と、
    前記作成された応答データを、前記送信先に送信する送信工程と、
    を備えることを特徴とするデバイス検索方法。
  14. 請求項12または13記載のデバイス検索方法をコンピュータに実行させるためのコンピュータに読み取り可能なプログラム。
JP2010001155A 2010-01-06 2010-01-06 デバイス検索装置、デバイス検索方法並びにプログラム Expired - Fee Related JP5528124B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010001155A JP5528124B2 (ja) 2010-01-06 2010-01-06 デバイス検索装置、デバイス検索方法並びにプログラム
US12/985,647 US8718058B2 (en) 2010-01-06 2011-01-06 Device search apparatus and method, and device search server, device search system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010001155A JP5528124B2 (ja) 2010-01-06 2010-01-06 デバイス検索装置、デバイス検索方法並びにプログラム

Publications (3)

Publication Number Publication Date
JP2011141654A JP2011141654A (ja) 2011-07-21
JP2011141654A5 JP2011141654A5 (ja) 2013-02-14
JP5528124B2 true JP5528124B2 (ja) 2014-06-25

Family

ID=44224660

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010001155A Expired - Fee Related JP5528124B2 (ja) 2010-01-06 2010-01-06 デバイス検索装置、デバイス検索方法並びにプログラム

Country Status (2)

Country Link
US (1) US8718058B2 (ja)
JP (1) JP5528124B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5744796B2 (ja) * 2012-06-29 2015-07-08 京セラドキュメントソリューションズ株式会社 ネットワーク装置検索システム、ネットワーク装置、及び、ネットワーク検索プログラム
JP6720735B2 (ja) * 2016-07-04 2020-07-08 コニカミノルタ株式会社 印刷システム及び装置検索方法並びに装置検索プログラム
JP6794202B2 (ja) * 2016-09-20 2020-12-02 キヤノン株式会社 通信装置およびその制御方法
JP6822176B2 (ja) * 2017-01-30 2021-01-27 コニカミノルタ株式会社 通信中継装置、サーバー装置、画像処理ユニット及びプログラム
CN106791714B (zh) * 2017-02-23 2019-09-17 青岛海信电器股份有限公司 网络摄像头与服务端设备的匹配方法和设备
US10742512B2 (en) * 2017-07-24 2020-08-11 Singlewire Software, LLC System and method for multicast mapping

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
JP2003093341A (ja) * 2001-09-25 2003-04-02 Fuji Photo Optical Co Ltd 電子内視鏡装置
US7962605B2 (en) * 2001-11-20 2011-06-14 Microsoft Corporation Distributed device discovery framework for a network
JP2004272632A (ja) * 2003-03-10 2004-09-30 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7640329B2 (en) * 2005-02-15 2009-12-29 Microsoft Corporation Scaling and extending UPnP v1.0 device discovery using peer groups
US20060239190A1 (en) * 2005-04-25 2006-10-26 Matsushita Electric Industrial Co., Ltd. Policy-based device/service discovery and dissemination of device profile and capability information for P2P networking
US8117340B2 (en) * 2005-04-25 2012-02-14 Microsoft Corporation Trans-network roaming and resolution with web services for devices
JP2007097057A (ja) 2005-09-30 2007-04-12 Brother Ind Ltd サーバ装置、機器情報提供方法、プログラム、ネットワークシステム、及び、機器共用化方法
US20070250590A1 (en) * 2006-04-21 2007-10-25 Microsoft Corporation Ad-hoc proxy for discovery and retrieval of dynamic data such as a list of active devices
US8321546B2 (en) * 2007-01-10 2012-11-27 Ricoh Company, Ltd. Integrating discovery functionality within a device and facility manager
JP2008287674A (ja) * 2007-05-21 2008-11-27 Olympus Corp 情報処理装置、クライアント装置、情報処理システム及びサービス接続方法
TWI382717B (zh) * 2007-11-12 2013-01-11 D Link Corp A method of sharing resources by interconnecting a network terminal device of two private networks by a user agent
US8635341B2 (en) * 2008-02-14 2014-01-21 Microsoft Corporation Termination criteria in service discovery request
US8239376B2 (en) * 2008-04-03 2012-08-07 Clear Channel Management Services, Inc. Subsequent tailoring of a sign-up page based on a search engine query
JP5473248B2 (ja) * 2008-05-26 2014-04-16 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US8307093B2 (en) * 2008-06-25 2012-11-06 Microsoft Corporation Remote access between UPnP devices
US20100131582A1 (en) * 2008-11-21 2010-05-27 Microsoft Corporation Unified Proxy Location Selection Mechanism
US20100182438A1 (en) * 2009-01-20 2010-07-22 Soiba Mohammed Dynamic user interface for remote control of camera

Also Published As

Publication number Publication date
JP2011141654A (ja) 2011-07-21
US8718058B2 (en) 2014-05-06
US20110164615A1 (en) 2011-07-07

Similar Documents

Publication Publication Date Title
JP5528124B2 (ja) デバイス検索装置、デバイス検索方法並びにプログラム
JP4865299B2 (ja) 情報処理装置及び情報処理方法及びそのプログラム
US8261259B2 (en) Dynamic printing system, apparatus and method
JP2012155575A (ja) 印刷制御サーバーおよび印刷システム
JP2003216368A (ja) サービス提供システム、サービス提供方法、サービス提供装置、その制御方法、制御プログラム、及び、コンピュータ可読メモリ
JP2012048581A (ja) 印刷システム、中継装置、印刷サーバ、および印刷方法
JP2007114899A (ja) ネットワーク管理サーバ及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体、及び、ネットワークシステム
US20070183448A1 (en) Data processing apparatus and data processing system
JP2008210103A (ja) ドキュメント処理システム、ドキュメント処理方法、およびプログラム
US20090300176A1 (en) Information processing apparatus, control method therefor, and computer-readable storage medium
JP4542165B2 (ja) 情報処理装置、画像形成装置及びその制御方法
JP5558681B2 (ja) デバイス検索装置、デバイス検索装置の制御方法、及びコンピュータプログラム
US20030048303A1 (en) Destination direction for push scanning to at least one of multiple destinations
JP5863339B2 (ja) 印刷装置、印刷方法、コンピュータプログラム
JP2012243142A (ja) 画像形成システム、画像形成装置、コンピュータ装置、制御方法および制御プログラム
JP2009054139A (ja) 画像処理管理装置、画像処理システム、画像処理管理方法、画像処理管理プログラム及び記録媒体
JP5980040B2 (ja) 管理装置、管理装置の制御方法およびコンピュータプログラム
JP2018030352A (ja) 画像形成装置、印刷制御装置、印刷制御システム、印刷制御方法、及びプログラム
JP5975730B2 (ja) 管理システム、管理システムの制御方法、管理装置、及びプログラム
JP2004199515A (ja) サービス検索装置、サービス検索方法、クライアント装置
JP2008310472A (ja) サーバ装置、情報取得方法、情報取得プログラム、記録媒体、クライアント装置、および通信システム
JP7341765B2 (ja) 印刷装置、その制御方法およびプログラム
JP2012150548A (ja) プリントサーバ
US11533230B2 (en) Computer-readable medium, relay device, terminal management device, and system for managing terminal devices not directly communicable with terminal management device
JP6074923B2 (ja) 情報処理装置、ネットワークシステム、動作情報取込方法及び動作情報取込プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130827

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131023

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: 20140318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140415

LAPS Cancellation because of no payment of annual fees