JP7353775B2 - 通信装置、通信装置の制御方法およびプログラム - Google Patents

通信装置、通信装置の制御方法およびプログラム Download PDF

Info

Publication number
JP7353775B2
JP7353775B2 JP2019056359A JP2019056359A JP7353775B2 JP 7353775 B2 JP7353775 B2 JP 7353775B2 JP 2019056359 A JP2019056359 A JP 2019056359A JP 2019056359 A JP2019056359 A JP 2019056359A JP 7353775 B2 JP7353775 B2 JP 7353775B2
Authority
JP
Japan
Prior art keywords
upnp
network
message
ssdp
communication device
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.)
Active
Application number
JP2019056359A
Other languages
English (en)
Other versions
JP2020161874A (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 JP2019056359A priority Critical patent/JP7353775B2/ja
Publication of JP2020161874A publication Critical patent/JP2020161874A/ja
Application granted granted Critical
Publication of JP7353775B2 publication Critical patent/JP7353775B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、ネットワーク参加および離脱が可能な通信装置、通信装置の制御方法およびプログラムに関する。
ネットワーク上で所定のサービスを提供するデバイスを探索して機能連携するためのネットワーク技術の1つにUPnP(Universal Plug and Play)がある。
UPnPにおいて、所定のサービスを提供する論理的な単位を「サービス」と、1つ以上のサービスを有する論理的な単位を「デバイス」と、1つ以上のサービスを制御する論理的な単位を「コントロールポイント」と、それぞれ称する。
UPnPで規定されたデバイス(以下、「UPnPデバイス」という)がサービスを提供する際、提供すべきサービスをNOTIFYメッセージにNLS(Network Location Signature)として設定して送信することができる。UPnPデバイスには、UPnPデバイスを一意に識別する識別子であるUUID(Universally Unique Identifier)が付与される。
UPnPで規定されたコントロールポイント(以下、「UPnPコントロールポイント」という。)は、同一のUUIDを有するUPnPデバイスからサービスを受信すると、受信されたサービスが同一か否かをNLSに基づき認識できる。
また、UPnPデバイスとUPnPコントロールポイントの間では、SSDP(Simple Service Discovery Protocol)を用いてメッセージが交換される。SSDP:ALIVEメッセージは、UPnPデバイスがUPnPネットワークに存在することを示すメッセージであり、SSDP:BYEBYEメッセージは、UPnPデバイスがUPnPネットワークから離脱することを示すメッセージである。
特許文献1は、UPnPデバイスがUPnPネットワークへ参加した際、まずSSDP:BYEBYEメッセージを送信し、その後、SSDP:ALIVEメッセージを送信する通信装置を開示する。SSDP:ALIVEメッセージに先立ってSSDP:BYEBYEメッセージを送信することで、前回ネットワークから離脱する際のSSDP:BYEBYEメッセージが正常に受信されなくても、UPnPコントロールポイントとの通信をリセットしてネットワークへ再参加できる。
特開2005-175724号公報
ところで、UPnPは、例えばIPv4とIPv6等、複数の異なるアドレス体系の併用を許容している。
しかしながら、複数の異なるアドレス体系を実装するUPnPデバイスが同一サービスをUPnPコントロールポイントへ送信する場合には、以下の課題が生じ得る。即ち、UPnPデバイスが、複数のアドレス体系で同一のサービスを送信すると、それぞれのアドレス体系でSSDP:BYEBYEメッセージと、後続するSSDP:ALIVEメッセージのシーケンスがそれぞれ実行される。ここで、最初のアドレス体系でのSSDP:ALIVEメッセージに後続して、次のアドレス体系でのSSDP:BYEBYEメッセージが送信されるシーケンスが実行されたものとする。この場合、後続する次のアドレス体系でのSSDP:BYEBYEメッセージによって、最初のアドレス体系で送信し利用可能となったサービスが利用できなくなってしまう。
このように、複数の異なるアドレス体系でサービスを提供する際に、サービスが不測に利用不可状態に遷移してしまい、ユーザの利便性が低下するおそれがあった。
本発明は上記課題に鑑みてなされたものであり、その目的は、複数の異なるアドレス体系でサービスを提供する場合に、サービスが意図せず利用不可能な状態となってしまう可能性を低減させることにある。
上記課題を解決するため、本発明に係る通信装置は、第1および第2のアドレス体系のうち1つ以上を設定してネットワークに参加する参加手段と、前記参加手段により参加した前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信する第1の送信手段と、前記ネットワークから離脱することを示す離脱メッセージを前記ネットワークへ送信する第2の送信手段と、前記第1および第2のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定する判定手段と、前記判定手段により、前記第1および第2のアドレス体系のうち双方が設定されたと判定された場合、前記第2の送信手段に、前記第1および第2のアドレス体系の双方で前記離脱メッセージを前記ネットワークへ送信させ前記第1および第2のアドレス体系の双方での前記離脱メッセージの送信が完了した後に、前記第1の送信手段に前記存在メッセージを前記ネットワークへ送信させるよう制御する送信制御手段とを備える。
本発明によれば、複数の異なるアドレス体系でサービスを提供する場合に、サービスが意図せず利用不可能な状態となってしまう可能性を低減させることができる。
本発明の実施形態に係るネットワークシステムのネットワーク構成の一例を示す図。 本実施形態に係るUPnPデバイスのハードウエアおよび機能構成の一例を示す図。 本実施形態に係るUPnPコントロールポイントのハードウエアおよび機能構成の一例を示す図。 UPnPコントロールポイントが管理するデバイス管理テーブルの一例を示す図 複数の異なるアドレス体系を有する場合のUPnPデバイスとUPnPコントロールポイントとの間のサービス提供のメッセージシーケンスを示す図。 本実施形態に係るUPnPデバイスが実行するサービス提供処理の処理手順の一例を示すフローチャート。 本実施形態に係るUPnPコントロールポイントが実行するサービスを制御する処理の処理手順の一例を示すフローチャート。 本実施形態におけるUPnPデバイスとUPnPコントロールポイントとの間のサービス提供のメッセージシーケンスを示す図。 本実施形態に係るSSDP:BYEBYEメッセージの記述例を示す図。 本実施形態に係るSSDP:ALIVEメッセージの記述例を示す図。
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
以下、通信装置が、UPnP(Universal Plug and Play)に準拠する通信装置であって、UPnPに規定されるネットワークに参加または離脱する例を説明するが、本実施形態が使用可能な通信プロトコルはUPnPに限定されない。例えば、通信装置は、ネットワークに参加または離脱して、他の通信装置との間で機能連携が可能である他の通信プロトコルを使用してもよい。
<本実施形態のネットワーク構成>
図1は、本実施形態に係るネットワークシステムのネットワーク構成の一例を示す図である。
図1のネットワークシステムは、UPnPデバイス1、UPnPコントロールポイント2、およびアクセスポイント3を備える。UPnPデバイス1、UPnPコントロールポイント2、およびアクセスポイント3は、それぞれ、Wi-Fi(登録商標)やBluetooth(登録商標)等に準拠したネットワークインタフェースを有する。
UPnPデバイス1は、アクセスポイント3を介して、UPnPコントロールポイント2に、UPnPで規定されるネットワーク(以下、「UPnPネットワーク」という。)4を介して相互に接続され通信可能である。
UPnPデバイス1は、UPnPで規定されるデバイスとして動作する機能を有するデバイスであり、本実施形態では、デジタルカメラ(Digital Still Camera:DSC)を例として説明する。ただし、本実施形態に適用可能なUPnPデバイス1は、デジタルカメラに限定されず、UPnPにおける1つ以上のサービスを有しUPnPネットワーク4へ接続可能なデバイスであればよい。UPnPデバイス1は、例えば、デジタルビデオカメラ、携帯電話、スマートフォン、PC(PersonalComputer)、ノートPC、サーバ等を含むがこれらに限定されない。
UPnPコントロールポイント2は、UPnPで規定されるコントロールポイントとして動作する機能を有するデバイスであり、本実施形態では、PC(PersonalComputer)を例として説明する。ただし、本実施形態に適用可能なUPnPコントロールポイント2は、PCに限定されず、UPnPにおける1つ以上のサービスを制御しUPnPネットワーク4へ接続可能なデバイスであればよい。
デジタルカメラであるUPnPデバイス1は、AV Working Committeeで規定されたメディアサーバ(Media Server)として動作してよい。UPnPデバイス1は、Connection Manager、Content Directory、およびAV Transport等のサービスを有し、UPnPコントロールポイント2や他のデバイスにこれらのサービスを提供可能である。
<UPnPデバイス1の構成>
図2は、本実施形態に係るUPnPデバイス1のハードウエアおよび機能構成の一例を示す図である。
図2のUPnPデバイス1は、CPU101、ROM102、RAM103、操作部104、ネットワークI/F105、ドライブ106、表示部107、光学部108、符号化・復号化部109、およびタイマ110を備える。図2のUPnPデバイス1の各部は、システムバス111により、通信可能に相互接続される。
なお、UPnPデバイス1は、上記のモジュール全てを備えなくともよく、また図2の構成に加えて追加のモジュール等を備えてもよい。
CPU(Central Processing Unit)101は、UPnPデバイス1における動作を統括的に制御するものであり、システムバス111を介して、各構成部(102~110)を制御する。すなわち、CPU101は、各種処理の実行に際してROM102や、HDD(Hard Disk Drive:不図示)等の記憶媒体から必要なプログラム等をRAM103にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
ROM(Read Only Memory)102は、CPU101が各種処理を実行するために必要となる、変更を必要としない制御プログラムやパラメータ等を記憶する不揮発性メモリである。なお、これら制御プログラム等は、外部メモリや着脱可能な記憶媒体(不図示)に記憶されていてもよい。
本実施形態において、ROM102は、UUID(Universally Unique Identifier)、各種ネットワーク設定パラメータ、デバイスディスクリプション、およびサービスディスクリプション等を記憶する。UUIDは、UPnPデバイス1を一意に識別する識別子(識別情報)である。デバイスディスクリプションは、UPnPデバイス1のデバイスに固有なデバイス情報を記述する。サービスディスクリプションは、UPnPデバイス1が有するサービスに固有なサービス情報を記述する。
RAM(Random Access Memory)103は、CPU101の主メモリ、ワークエリア等として機能し、プログラムやデータを一時的に記憶する。
操作部104は、撮像ボタン、ネットワーク参加ON/OFFを切り替えるボタン、UPnPサービス開始/終了を切り替えるボタン、およびネットワーク設定ボタン等を有する。
ネットワークI/F105は、UPnPデバイス1がUPnPネットワーク4に接続するためのネットワークインタフェースである。
ドライブ106は、記録媒体への書き込みや読み出しを行う。
表示部107は、操作部104の操作結果等、各種処理の処理結果を表示出力する。
光学部108は、光学レンズ、CCD等で構成され、静止画や動画等の画像を撮像する。
符号化・復号化部109は、光学部108により供給される画像に対して、圧縮符号化/復号化処理を実行する。
タイマ110は、CPU101により実行されるプログラムの処理等の時間の経過を計測し管理する。
なお、UPnPデバイス1がUPnPネットワーク4へ参加する際には、ユーザが明示的にネットワーク参加ボタンを押下してON状態とする。一方、UPnPデバイス1がUPnPネットワーク4から離脱する際には、ネットワーク参加ボタンを再押下してOFF状態としてもよく、または電源断ボタン等が操作された場合にUPnPネットワーク4から離脱するよう構成してもよい。
<UPnPコントロールポイント2の構成>
図3は、本実施形態に係るUPnPコントロールポイント2のハードウエアおよび機能構成の一例を示す図である。
図3のUPnPコントロールポイント2は、CPU201、ROM202、RAM203、外部記憶装置204、ネットワークI/F205、入力部206、表示制御部207、および表示部208を備える。図3のUPnPコントロールポイント2の各部は、システムバス209により、通信可能に相互接続される。
なお、UPnPコントロールポイント2は、上記のモジュール全てを備えなくともよく、また図3の構成に加えて追加のモジュール等を備えてもよい。
CPU201は、UPnPコントロールポイント2における動作を統括的に制御するものであり、システムバス209を介して、各構成部(202~208)を制御する。すなわち、CPU201は、各種処理の実行に際してROM202や、HDD等の記憶媒体から必要なプログラム等をRAM203にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
ROM202は、CPU201が各種処理を実行するために必要となる、変更を必要としない制御プログラムやパラメータ等を記憶する不揮発性メモリである。
本実施形態において、ROM202は、ブートプログラム、BIOS(Basic Input/Output System)、各種ネットワーク設定パラメータ、デバイスディスクリプション、およびデバイス管理テーブル等を記憶している。このデバイス管理テーブルの詳細は、図4を参照して後述する。
なお、これら制御プログラム等は、外部記憶装置204に記憶されていてもよい。
RAM203は、CPU201の主メモリ、ワークエリア等として機能し、プログラムやデータを一時的に記憶する。
外部記憶装置204は、OSや各種アプリケーション、UPnPコントロールポイントとして機能するためのXML(Extended Markup Language)を解釈して実行するプログラム、各種データファイル等を記憶する。
ネットワークI/F205は、UPnPコントロールポイント2がUPnPネットワーク4に接続するためのネットワークインタフェースである。
入力部206は、キーボードやマウス等のポインティングデバイスで構成される。
表示制御部207は、ビデオメモリを内蔵し、CPU201からの指示に従ってビデオメモリへの描画処理を実行し、ビデオメモリから描画データを読み出してビデオ信号として表示部208へ出力する。
表示部208は、表示制御部207からのビデオ信号を受信して、受信したビデオ信号に基づきビデオメモリに描画されたデータを画像として表示する。
なお、UPnPデバイス1とUPnPコントロールポイント2との間でUPnPネットワーク4の下位レイヤは、無線ネットワークで構成されてよい。この無線ネットワークは、Bluetooth(登録商標)、ZigBee(登録商標)、UWB(Ultra Wide Band)等の無線PAN(Personal Area Network)を含む。また、Wi-Fi(Wireless Fidelity)(登録商標)等の無線LAN(Local Area Network)や、WiMAX(登録商標)等の無線MAN(Metropolitan Area Network)を含む。さらに、LTE/3G等の無線WAN(Wide Area Network)を含む。
あるいは、UPNPネットワーク2の下位レイヤは、例えば、Ethernet(登録商標)等の通信規格に準拠する有線LAN(Local Area Network)等の有線ネットワークであってよい。また、無線LAN通信機能と有線LAN通信機能を組み合わせてもよい。
<デバイス管理テーブル>
本実施形態において、UPnPコントロールポイント2は、RAM203または外部記憶装置204に、デバイス管理テーブルを記憶する。デバイス管理テーブルは、UPnPコントロールポイント2が制御するサービスを有するUPnPデバイス1の情報を管理するために使用されるテーブルである。
図4は、UPnPデバイスの情報を記憶するデバイス管理テーブルの一例を示す。図4(a)のデバイス管理テーブル41は、IPアドレス42、UUID43、NLS44、デバイス固有情報45、およびサービス状態46のフィールドを含む。
IPアドレス42は、UPnPデバイス1に付与されたIPアドレスを示す。このIPアドレス42は、IPv4またはIPv6いずれかのアドレス体系のIPアドレス42が記述されてよい。UUID42は、UPnPデバイス1を一意に識別する識別子を示す。NLS(Network Location Signature)44は、UPnPデバイス1が提供するサービスを特定する。
デバイス固有情報45は、UPnPデバイス1のデバイスディスクリプションとサービスディスクリプションの内容を示す。サービス状態46は、UPnPデバイス1が提供するサービスの状態を示す。本実施形態では、サービス状態46は、「idle」または「busy」のいずれかの値を示す。
UPnPコントロールポイント2は、UPnPデバイス1から受信する各種メッセージに記述されるパラメータを抽出し、デバイス管理テーブル41の各フィールドに値を書き込む。
<複数の異なるアドレス体系でのUPnPサービスの提供>
図5は、複数の異なるアドレス体系で、UPnPデバイス1がUPnPコントロールポイント2に対してネットワーク参加してサービスを提供する際の、従来のメッセージシーケンスの一例を示す。図5の処理は、UPnPデバイス1の電源がON状態になったことを契機に開始されてよい。
S51で、UPnPデバイス1は、UPnPネットワーク4へ参加するためのネットワーク設定を行う。ここでは、IPv4とIPv6との双方のネットワーク設定を行うものとする。
S52で、UPnPデバイス1は、IPv4とIPv6のネットワークに参加する。
S53で、UPnPデバイス1は、操作部104のUPnPサービス開始ボタンの押下等により、UPnPサービスを開始する。ここでは、UPnPデバイス1は、IPv4とIPv6双方のアドレス体系でUPnPサービスを開始するものとする。
なお、図5において、メッセージの送信シーケンスは、IPv4でSSDP:BYEBYEメッセージに続いてSSDP:ALIVEメッセージを送信する。その後、IPv6でSSDP:BYEBYEメッセージに続いてSSDP:ALIVEメッセージを送信するものとして説明する。SSDP:ALIVEメッセージは、UPnPデバイスがUPnPネットワーク4に存在することを示すメッセージであり、SSDP:BYEBYEメッセージは、UPnPデバイスがUPnPネットワーク4から離脱することを示すSSDPメッセージである。
S54で、UPnPデバイス1は、まず、IPv4でSSDP:BYEBYEメッセージをUPnPコントロールポイント2へ送信する。
次に、S55で、UPnPデバイス1は、IPv4でSSDP:ALIVEメッセージをUPnPコントロールポイント2へ送信する。
S56で、UPnPコントロールポイント2は、S55で送信されたSSDP:ALIVEメッセージを参照して、UPnPデバイス1のデバイスディスクリプションを取得するためにHTTP GETコマンドをUPnPデバイス1へ送信する。
S57で、UPnPデバイス1は、HTTP GETコマンドに応答して、UPnPデバイス1のデバイスディスクリプションをUPnPコントロールポイント2へ送信する(ステータスコード:200 OK)。
S58で、デバイスディスクリプションを受信したUPnPコントロールポイント2は、IPv4のアドレス体系でのサービス利用可能状態になる。ここで、サービス利用可能状態とは、デバイスディスクリプションの内容に基づいて、UPnPデバイス1のサービスディスクリプションを取得できる状態であることをいう。
S58でUPnPコントロールポイント2がIPv4のアドレス体系でのサービス利用可能状態に遷移した後、S59で、UPnPデバイス1は、IPv6でSSDP:BYEBYEメッセージをUPnPコントロールポイント2へ送信する。
S59でIPv6でSSDP:BYEBYEメッセージを受信したことにより、S60で、UPnPコントロールポイント2は、IPv4のアドレス体系でのサービス利用不可状態に遷移してしまう。IPv6のSSDP:BYEBYEメッセージは、IPv4でのメッセージから取得されたUPnPデバイス1のUUIDやデバイス固有情報を関連している。このため、異なるアドレス体系のIPv6のSSDP:BYEBYEメッセージによってもIPv4でのサービスを利用不可状態に変更してしまうからである。
S61で、UPnPデバイス1は、IPv6でSSDP:ALIVEメッセージをUPnPコントロールポイント2へ送信する。なお、S61でUPnPデバイス1が送信するIPv6でのSSDP:ALIVEメッセージのNLSは、S55で送信されるIPv4でのSSDP:ALIVEメッセージのNLSと同じ値とする。本実施形態において、NLSが同じ値のサービスを同一サービスとして取り扱うものとする。
S62で、UPnPコントロールポイント2は、S61で受信されたSSDP:ALIVEメッセージを参照して、UPnPデバイス1のデバイスディスクリプションを取得するため、HTTP GETコマンドをUPnPデバイス1へ送信する。
S63で、UPnPデバイス101は、HTTP GETコマンドに応答して、UPnP デバイス1のデバイスディスクリプションをUPnPコントロールポイント2へ送信する(ステータスコード:200 OK)。
S64で、デバイスディスクリプションを受信したUPnPコントロールポイント2は、IPv6のアドレス体系でのサービス利用可能状態になる。なお、S64で利用可能となったサービスは、S58でIPv4のアドレス体系で一旦利用可能となったサービスと同一のサービスである。
このように、上記のメッセージシーケンスでは、S58でIPv4のアドレス体系で一旦利用可能となったサービスが、S59でUPnPデバイス1からIPv6のSSDP:BYEBYEメッセージを送信することにより、S60で利用不可状態になってしまう。
このため、S62でUPnPコントロールポイント2から再度HTTP GETコマンドをUPnPデバイス1へ送信し、S63でUPnPデバイス1からデバイスディスクリプションを応答して、サービスを利用可能な状態に復帰させなければならない。これにより、UPnPコントロールポイント2とUPnPデバイス1間で余分な通信を必要となり、サービス提供における通信効率が低下しかねない。
一旦利用可能となったサービスが利用不可状態に遷移するのは、S59でUPnPデバイス1からSSDP:BYEBYEメッセージがUPnPコントロールポイント2へ送信されたことに起因する。すなわち、S59でSSDP:BYEBYEメッセージが送信されなければ、S61でIPv6のSSDP:ALIVEメッセージを受信したUPnPコントロールポイント2は、S62でHTTP GETコマンドを送信せずに足りる。これにより、HTTP GETコマンドに関わるメッセージ送受信の回数を削減できる。これは、S55とS61でのIPv4とIPv6のSSDP:ALIVEメッセージ中でサービスを識別するNLSが同一であるためである。
そこで、本実施形態では、複数の異なるアドレス体系で、同一サービスをUPnPコントロールポイント2へ送信する場合、SSDP:BYEBYEメッセージを異なるアドレス体系のそれぞれで送信し終えるまで、SSDP:ALIVEメッセージを送信しない。なお、いずれのアドレス体系においても、SSDP:ALIVEメッセージの前にSSDP:BYEBYEメッセージを送信するものとする。
このようにメッセージシーケンスを制御することで、UPnPコントロールポイント2が最初のアドレス体系でサービス利用不可状態に不測に遷移することが防止され、また、その後のHTTP GETコマンドに関わるメッセージ送受信の回数を削減できる。
さらに、S59からS63の間でサービス利用不可状態になることも回避することができるため、UPnPコントロールポイント2の利便性が向上する。
<UPnPデバイス1のサービス提供処理の処理フロー>
図6は、UPnPデバイス1が実行するサービス提供処理の処理手順の一例を示すフローチャートである。図6に示す処理は、例えば、UPnPデバイス1の電源がONの状態になったことを契機に開始されてよい。
UPnPデバイス1はCPU101が必要なプログラムをROM102または外部メモリから読み出して実行することにより、図6に示す処理を実行することができる。ただし、図2に示す各要素のうち少なくとも一部が専用のハードウエアとして動作することで図6の処理が実現されるようにしてもよい。この場合、専用のハードウエアは、CPU101の制御に基づいて動作する。
S1で、UPnPデバイス1は、UPnPネットワーク4の設定を実行する。このネットワークの設定は、UPnPデバイス1の電源投入時や、物理的な接続の確立時に自動的に設定されてもく、操作部104からのネットワーク設定ボタン等の操作により設定されてもよい。
S1のネットワークの設定では、具体的に、UPnPデバイス1のIPアドレス、サブネットマスク、およびゲートウェイの設定を行う。ネットワーク設定は、IPv4アドレス体系またはIPv6アドレス体系どちらか一方のみの設定でもよいし、双方のアドレス体系を設定してもよい。S1で設定されたアドレス体系は、UPnPデバイス1のROM102に記憶される。
S2で、UPnPデバイス1は、ネットワークI/F105を介して、UPnPネットワーク4へ参加する。このUPnPネットワーク4の参加は、S1のネットワーク設定の完了後に自動的に実行されてもよく、あるいは操作部104のネットワーク参加ボタンが押下されることで実行されてもよい。なお、本実施形態では、UPnPデバイス1とUPnPコントロールポイント2とはTCP/IPプロトコルを用いて通信するものとするが、これに替えて他の通信プロトコルを用いてもよい。
S3で、操作部104のUPnPサービス開始ボタンの押下等により、UPnPデバイス1は、UPnPサービスを開始する。このとき、UPnPデバイス1のCPU101は、S1で設定されたアドレス体系を判定し、設定されたものと判定されたアドレス体系でUPnPサービスを開始する。
CPU101が、開始すべきサービスで使用されるアドレス体系を判定することにより、UPnPデバイス1のユーザに、どのアドレス体系でUPnPサービスを開始させるかを選択入力させる手間を省略することができる。S3で、判定されたアドレス体系がIPv4またはIPv6の一方のみの場合、S4に進み、判定されたアドレス体系がIPv4とIPv6との双方の場合、S6に進む。
なお、S3で、判定されたアドレス体系がIPv4のみの場合、UPnPデバイス1のCPU101は、UPnPサービス開始前に、他方のIPv6のネットワーク設定を促す警告画面やエラー画面を生成し、表示部107を介して表示させてもよい。このように警告やエラーを通知することで、UPnPデバイス1のユーザが、IPv4とIPv6双方でUPnPサービスを開始する意図で、実際は、IPv4でしかUPnPサービスを開始できていない等の不測の事態を防止できる。同様に、判定されたアドレス体系がIPv6のみの場合にも、CPU101は、UPnPサービス開始前に他方のIPv4のネットワーク設定を促す警告画面やエラー画面を生成し、表示部107を介して表示させてもよい。
判定されたアドレス体系がIPv4またはIPv6のいずれかのみである場合、S4で、UPnPデバイス1のネットワークI/F105は、まず、SSDP:BYEBYEメッセージを、UPnPコントロールポイント2へ送信する。S4では、S3で判定されたアドレス体系で、すなわちIPv4またはIPv6のみのアドレス体系で、ネットワークI/F105は、SSDP:BYEBYEメッセージを送信する。
UPnPコントロールポイント2は、SSDP:BYEBYEメッセージを受信すると、デバイス管理テーブル41に記憶されたUUID43と、S4でUPnPデバイス1から送信されたSSDP:BYEBYEメッセージのUUIDとを比較する。
比較の結果、S4で送信されたSSDP:BYEBYEメッセージのUUIDに一致するUUID43がデバイス管理テーブル41にあれば、UPnPコントロールポイント2は、デバイス管理テーブル41から当該エントリーを削除する。
本実施形態では、UPnPデバイス1は、S5でSSDP:ALIVEメッセージを送信することに先立って、S4でSSDP:BYEBYEメッセージを送信する。これにより、UPnPコントロールポイント2は、UUID、デバイス固有情報等の情報を保持し続ける期間であるキャッシュ期間が経過する前に、UPnPデバイス1のサービスのUPnPネットワーク4からの離脱を知ることができる。
なお、本実施形態では、一例として、キャッシュ期間を1800秒とするが、任意のキャッシュ期間が設定されてよい。キャッシュ期間が経過すると、UPnPコントロールポイント2は、デバイス管理テーブル41からキャッシュ期間の過ぎたUPnPデバイス1のエントリーを削除する。キャッシュ期間は、SSDP:ALIVEメッセージをUPnPデバイス1から受信することで更新される。なお、UPnPデバイス1は、SSDP:ALIVEメッセージを、S8~S10の間、周期的に送信してもよい。
S5で、UPnPデバイス1のネットワークI/F105は、SSDP:BYEBYEメッセージを送信した後、SSDP:ALIVEメッセージを送信する。S5では、S3で判定されたアドレス体系で、すなわちIPv4またはIPv6のみのアドレス体系で、ネットワークI/F105は、SSDP:ALIVEメッセージを送信する。
S3に戻り、一方、判定されたアドレス体系がIPv4およびIPv6の双方である場合、S6で、UPnPデバイス1のネットワークI/F105は、まず、SSDP:BYEBYEメッセージを、UPnPコントロールポイント2へ送信する。S6では、S3で判定されたアドレス体系で、すなわちIPv4およびIPv6の双方のアドレス体系で、ネットワークI/F105は、SSDP:BYEBYEメッセージをそれぞれ送信する。
このように、SSDP:ALIVEメッセージを送信するのに先立って、IPv4とIPv6の双方のアドレス体系でSSDP:BYEBYEをそれぞれ送信しておくことで、図5で説明した通信の負荷やサービス利用不可状態が解消される。
S7で、UPnPデバイス1のネットワークI/F105は、IPv4およびIPv6双方のアドレス体系でSSDP:BYEBYEメッセージをそれぞれ送信した後、SSDP:ALIVEメッセージを送信する。S7では、S3で判定されたアドレス体系で、すなわちIPv4およびIPv6双方のアドレス体系で、ネットワークI/F105は、SSDP:ALIVEメッセージをそれぞれ送信する。
なお、S6の後にS7の処理を実行する際、S6のSSDP:BYEBYEメッセージ送信処理が正常に動作したことをCPU101が確認してから、S7のSSDP:ALIVEメッセージ送信処理を開始するようにしてもよい。あるいは、S6の処理が十分に終了するであろう時間をあらかじめ設定し、S3の後に、タイマ110で計測した時間が設定値を過ぎたときにS7の処理を開始してもよい。
S8で、UPnPデバイス1のCPU101は、UPnPコントロールポイント2からHTTP GETコマンドを受信したか否かを判定する。HTTP GETコマンドを受信した場合(S8:Y)、S9に進み、一方、HTTP GETコマンドを受信しなかった場合(S8:N)、S9をスキップしてS10に進む。
HTTP GETコマンドを受信した場合、S9で、UPnPデバイス1のネットワークI/F105は、HTTP GETコマンドの送信元であるUPnPコントロールポイント2へ、サービス内容を送信する。本実施形態では、UPnPデバイス1のネットワークI/F105は、UPnPコントロールポイント2に対して、デバイスディスクリプションを送信する。
S10で、UPnPデバイス1のCPU101は、サービスを停止するか否かを判定する。サービスを停止しない場合(S10:でN)、S408に戻り、一方、サービスを停止する場合(S10:Y)、S411に進む。
S11で、UPnPデバイス1のネットワークI/F105は、SSDP:BYEBYEメッセージを、UPnPコントロールポイント2へ送信する。S11では、S3で判定された全てのアドレス体系で、ネットワークI/F105は、SSDP:BYEBYEメッセージを送信する。これにより、IPv4またはIPv6のみ受信するUPnPコントロールポイント2とIPv4とIPv6双方を受信するUPnPコントロールポイント2とで、サービス利用可能状態が異なるという事象を回避することができる。
このUPnPコントロールポイント2間でサービス利用可能状態が異なるという事象を、以下説明する。
UPnPデバイス1が、S7で、IPv4とIPv6の双方でSSDP:ALIVEメッセージを送信した場合に、S11で、IPv6のSSDP:BYEBYEメッセージのみしか送信しなかったと仮定する。
この場合、IPv4のみを受信するUPnPコントロールポイント2は、IPv4のアドレス体系でのサービス利用可能状態だが、IPv4とIPv6双方を受信するUPnPコントロールポイント2は、サービス利用不可状態となる。
同様に、S11でIPv4のSSDP:BYEBYEメッセージのみしか送信しない場合、IPv6のみを受信するUPnPコントロールポイント2は、IPv4のアドレス体系でのサービス利用可能状態となる。一方、IPv4とIPv6双方を受信するUPnPコントロールポイント2は、サービス利用不可状態となる。このようなUPNPコントロールポイント2間でSSDP:BYEBYEメッセージ送信後にサービス利用可能状態が異なるという齟齬を解消するため、本実施形態では、サービス停止時にすべてのアドレス体系について、SSDP:BYEBYEメッセージを送信する。
なお、本実施形態では、S11で、S3で判定されたアドレス体系のいずれかでSSDP:BYEBYEメッセージの送信に失敗した場合、エラー処理を実行してよい。このエラー処理では、例えば、送信に失敗したアドレス体系でSSDP:BYEBYEメッセージを再送してもよく、あるいは、UPnPデバイス1が、強制的にUPnPネットワーク4から離脱してもよい。
<UPnPコントロールポイント2のサービス受信処理の処理フロー>
図7は、UPnPコントロールポイント2が実行するサービス受信処理の処理手順の一例を示すフローチャートである。図7に示す処理は、例えば、UPnPコントロールポイント2の電源がONの状態になったことを契機に開始されてよい。
S71で、UPnPコントロールポイント2は、ネットワークの設定を実行する。このネットワークの設定は、UPnPコントロールポイント2の電源投入時や、物理的な接続の確立時に自動で設定されてもよく、入力部206からの操作により設定されてもよい。
S71のネットワークの設定では、具体的に、IPアドレス、サブネットマスク、およびゲートウェイの設定を行う。ネットワーク設定は、IPv4アドレス体系またはIPv6アドレス体系のどちらか一方で設定してもよいし、双方のアドレス体系を設定してもよい。
S72で、UPnPコントロールポイント2は、ネットワークI/F205を介して、UPnPネットワーク4へ参加する。このUPnPネットワーク4への参加は、S71のネットワーク設定の完了後に自動的に実行されてもよく、あるいは入力部206のネットワーク参加ボタンが押下されることで実行されてもよい。
S73で、UPnPコントロールポイント2のネットワークI/F205は、UPnPデバイス1からSSDP:ALIVEメッセージを受信したか否かを判定する。SSDP:ALIVEメッセージを受信した場合(S73:Y)、S74へ進む。一方、SSDP:ALIVEメッセージを受信しなかった場合(S73:N)、S78へ進む。
SSDP:ALIVEメッセージを受信した場合、S74で、UPnPコントロールポイント2のCPU201は、S73で受信されたSSDP:ALIVEメッセージが、HTTP GETコマンドを送信すべき対象か否かを判定する。
S74では、UPnPコントロールポイント2のCPU201は、デバイス管理テーブル41を参照することにより、HTTP GETコマンドを送信すべき対象か否かを判定する。具体的には、UPnPコントロールポイント2は、デバイス管理テーブル41のUUID43およびNLS44と、受信されたSSDP:ALIVEメッセージ中のUUIDおよびNLSとをそれぞれ比較する。
この比較の結果、受信されたSSDP:ALIVEメッセージ中のUUIDおよびNLSの双方とも一致するエントリーがデバイス管理テーブル41にある場合に、HTTP GETコマンドを送信すべき対象でないと判定し(S74:N)、S77へ進む。一方、受信されたSSDP:ALIVEメッセージ中のUUIDおよびNLSのいずれにも一致するエントリーがデバイス管理テーブル41になかった場合に、HTTP GETコマンドを送信すべき対象であると判定し(S74:N)、S75へ進む。
HTTP GETコマンドを送信すべき対象であると判定された場合、S75で、UPnPコントロールポイント2のネットワークI/F205は、HTTP GETコマンドをUPnPデバイス1へ送信する。
S76で、UPnPコントロールポイント2のネットワークI/F205は、S75でHTTP GETコマンドを送信したUPnPデバイス1から、応答として、UPnPデバイス1のデバイスディスクリプションを受信する。UPnPコントロールポイント2のCPU201は、S73、およびS75の応答として受信された情報で、デバイス管理テーブル41を更新する。
具体的には、UPnPコントロールポイント2のCPU201は、S73で受信されたSSDP:ALIVEメッセージから抽出されたUPnPデバイス1のIPアドレス、UUID、およびNLSで、デバイス管理テーブル41を更新する。また、UPnPコントロールポイント2のCPU201は、S75の応答として受信されたUPnPデバイス1のデバイスディスクリプションで、デバイス管理テーブル41を更新する。
一方、HTTP GETコマンドを送信すべき対象でないと判定された場合、S77で、UPnPコントロールポイント2のCPU201は、デバイス管理テーブル41を更新する。
具体的には、UPnPコントロールポイント2のCPU201は、S73で受信されたSSDP:ALIVEメッセージから抽出されたIPアドレス、UUID、およびNLSで、デバイス管理テーブル41を更新する。このとき、デバイス管理テーブル41のデバイス固有情報45およびサービス状態46は、NULL等の空白を表す文字を書き込んでもよく、あるいはS74での比較処理で一致したデバイス管理テーブル41の値に基づいて書き込んでもよい。
S73に戻り、SSDP:ALIVEメッセージを受信しない場合、S78で、UPnPコントロールポイント2のネットワークI/F205は、UPnPデバイス1から、SSDP:BYEBYEメッセージを受信したか否かを判定する。
SSDP:BYEBYEメッセージを受信した場合(S78:Y)、S79へ進み、一方、SSDP:BYEBYEメッセージを受信しない場合(S78:N)、S79をスキップしてS80へ進む。
S79で、UPnPコントロールポイント2のCPU201は、デバイス管理テーブル41を更新する。
具体的には、UPnPコントロールポイント2のCPU201は、S78で受信されたSSDP:BYEBYEメッセージから抽出されたUUIDと、デバイス管理テーブル41のUUID43とを比較する。比較の結果、受信されたSSDP:BYEBYEメッセージ中のUUIDに一致するUUID43がデバイス管理テーブル41中にあれば、当該エントリーをデバイス管理テーブル41から削除する。一方、受信されたSSDP:BYEBYEメッセージ中のUUIDに一致するUUID43がデバイス管理テーブル41中になければ、デバイス管理テーブル41を更新しない。
S80で、UPnPコントロールポイント2のCPU201は、UPnPネットワーク4から離脱するか否かを判定する。UPnPネットワーク4から離脱しないと判定された場合(S80:N)、S73に戻って、S73からS80までの処理を繰り返す。一方、UPnPネットワーク4から離脱すると判定された場合(S80:Y)、S81に進んで、UPnPネットワーク4から離脱して処理を終了する。
<本実施形態のUPnPサービス提供処理シーケンス>
以下、図8から図10を参照して、本実施形態におけるUPnPデバイス1からUPnPコントロールポイント2へのUPnPサービス提供の処理手順を説明する。
図8は、UPnPデバイス1とUPnPコントロールポイント2との間のUPnPサービス送信の際のメッセージシーケンスの一例を示す。なお、図8の各ステップにおいて、図5の従来のシーケンスと同様の処理については、同一の符号を付して説明する。
図5に示す従来のメッセージシーケンスと比較して、図8では、S55のIPv4でのSSDP:ALIVEメッセージの送信前に、IPv6でのSSDP:BYEBYEメッセージが送信され(S59)、S60、S62からS64までの各ステップが省略されている。
図8では、UPnPコントロールポイント2は、予め、図7のネットワーク設定(S71)およびネットワークへの参加(S72)を完了しているものとする。また、UPnPコントロールポイント2は、IPv4およびIPv6双方のアドレス体系でのメッセージおよびサービスを受信できるものとする。
S51で、UPnPデバイス1は、操作部104のネットワーク設定ボタンの押下等により、UPnPネットワーク4へ参加するためのネットワーク設定を行う。ここでは、IPv4とIPv6との双方のネットワーク設定を行うものとする。
具体的には、UPnPデバイス1は、IPv4のIPアドレスに192.168.1.10を設定し、IPv6のIPアドレスにfe80::4828:23c3:52de:5df8を設定したものとする。
S52で、UPnPデバイス1は、操作部104のネットワーク参加ボタンの押下等により、ネットワークI/F105を介して、IPv4とIPv6のUPnPネットワーク2に参加する。
S53で、UPnPデバイス1は、操作部104のUPnPサービス開始ボタンの押下等により、UPnPサービスを開始する。S51で、IPv4およびIPv6双方に対してネットワーク設定を行っているため、S53では、UPnPデバイス1は、IPv4とIPv6双方のアドレス体系でUPnPサービスを開始する。
S54で、UPnPデバイス1のネットワークI/F105は、IPv4のアドレス体系のネットワークでSSDP:BYEBYEメッセージをUPnPコントロールポイント2へ送信する。
図9(a)は、図8のS54でUPnPデバイス1のネットワークI/F105がIPv4で送信するSSDP:BYEBYEメッセージの記述内容を示す。
S54で送信されたSSDP:BYEBYEメッセージは、UPnPコントロールポイント2のネットワークI/F205により受信される。UPnPコントロールポイント2のCPU201は、受信されたSSDP:BYEBYEメッセージ中のUUIDとデバイス管理テーブル41に記録されたUUID43とを比較する(図7のS79)。
SSDP:BYEBYEメッセージに記述されるUPnPデバイス1のUUIDは、図9(a)の「USN:uuid:」に続く文字列「adcd・・・6bf6」で表される。一方、この時点で、デバイス管理テーブル41は初期状態でありエントリーが記録されていない。
このため、比較の結果、受信されたSSDP:BYEBYEメッセージ中のUUIDとデバイス管理テーブル41のUUID43とは一致しないため、デバイス管理テーブル41に削除すべきエントリーはなく、デバイス管理テーブル41は更新されない。
図8に戻り、S54に続きかつS55の前に、S59で、UPnPデバイス1のネットワークI/F105は、IPv6のアドレス体系のネットワークでSSDP:BYEBYEメッセージをUPnPコントロールポイント2へ送信する。
図9(b)は、図8のS59でUPnPデバイス1のネットワークI/F105がIPv6で送信するSSDP:BYEBYEメッセージの記述内容を示す。
S59で送信されたSSDP:BYEBYEメッセージは、UPnPコントロールポイント2のネットワークI/F205により受信される(図7のS73:N、S78:Y)。UPnPコントロールポイント2のCPU201は、受信されたSSDP:BYEBYEメッセージ中のUUIDとデバイス管理テーブル41に記録されたUUID43とを比較する(図7のS79)。
この時点でも、デバイス管理テーブル41は初期状態でありエントリーが記録されていない。このため、比較の結果、受信されたSSDP:BYEBYEメッセージ中のUUIDとデバイス管理テーブル41のUUID43とは一致しないため、デバイス管理テーブル41に削除すべきエントリーはなく、デバイス管理テーブル41は更新されない。
なお、図8において、S54とS59の順序は逆であってもよい。
S59の後、S55で、UPnPデバイス1のネットワークI/F105は、IPv4のアドレス体系のネットワークでSSDP:ALIVEメッセージをUPnPコントロールポイント2へ送信する。
図10(a)は、図8のS55でUPnPデバイス1のネットワークI/F105がIPv4で送信するSSDP:ALIVEメッセージの記述内容を示す。
S55で送信されたSSDP:ALIVEメッセージは、UPnPコントロールポイント2のネットワークI/F205により受信される(図7のS73:Y)。
UPnPコントロールポイント2のCPU201は、受信されたSSDP:ALIVEメッセージが、HTTP GETコマンドを送信する対象か否かを判定する(S74)。
S55で受信されたSSDP:ALIVEメッセージに記述されるUPnPデバイス1のUUIDは、図10(a)の「USN:uuid:」に続く文字列「adcd・・・6bf6」で表される。また、S55で受信されたSSDP:ALIVEメッセージに記述されるUPnPデバイス1のNLSは、図10(a)の「01-NLS:」に続く文字列「508e・・・5ae0」で表される。一方、この時点で、デバイス管理テーブル41は初期状態でありエントリーが記録されていない。
このため、UPnPコントロールポイント2のCPU201は、受信されたSSDP:ALIVEメッセージ中のUUIDおよびNLSの双方とも、デバイス管理テーブル41のUUID43とNLS44に一致しないと判定する(図7の74:Y)。
図8に戻り、S56で、UPnPコントロールポイント2のネットワークI/F205は、UPnPデバイス1へ、HTTP GETコマンドを送信する(図7のS75)。S56で送信されるHTTP GETコマンドは、S55で受信された図10(a)のSSDP:ALIVEメッセージ中の「Location:」に続く文字列「192.168.1.10」を宛先として送信される。
S56で送信されたHTTP GETコマンドは、UPnPデバイス1により受信されたと判定される(図6のS8:Y)。
S57で、UPnPデバイス1のネットワークI/F105は、HTTP GETコマンドに応答して、UPnPデバイス1のデバイスディスクリプションを、サービス内容として、UPnPコントロールポイント2へ送信する(図6のS9)。
UPnPコントロールポイント2のネットワークI/F205は、UPnPデバイス1からデバイスディスクリプションを受信し、UPnPコントロールポイント2のCPU201は、デバイス管理テーブル41を更新する(図7のS76)。
この段階で、デバイス管理テーブル41には、図4(a)に示すように、UPnPデバイス1のIPv4のアドレス体系のエントリーが追加される。
S58で、UPnPコントロールポイント2のCPU201は、デバイス管理テーブル41のデバイス固有情報45を参照して、IPv4のアドレス体系でUPnPデバイス1のサービスディスクリプションを取得可能な状態となっている。すなわち、S58で、UPnPコントロールポイント2は、IPv4のアドレス体系でのサービス利用可能状態に遷移する。
S61で、UPnPデバイス1のネットワークI/F105は、IPv6でSSDP:ALIVEメッセージをUPnPコントロールポイント2へ送信する。
図10(b)は、図8のS61でUPnPデバイス1のネットワークI/F105がIPv6で送信するSSDP:ALIVEメッセージの記述内容を示す。
UPnPコントロールポイント2のネットワークI/F205は、UPnPデバイス1からSSDP:ALIVEメッセージを受信する(図7のS73:Y)。UPnPコントロールポイント2のCPU201は、受信されたSSDP:ALIVEメッセージがHTTP GETコマンドの対象か否かを判定する(S74)。
S61で受信されたSSDP:ALIVEメッセージに記述されるUPnPデバイス1のUUIDは、図10(b)の「USN:uuid:」に続く文字列「adcd・・・6bf6」で表される。また、S61で受信されたSSDP:ALIVEメッセージに記述されるUPnPデバイス1のNLSは、図10(b)の「01-NLS:」に続く文字列「508e・・・5ae0」で表される。
一方、デバイス管理テーブル41には、図4(a)に示すように、図7のS76でUPnPデバイス1のエントリーが追加されている。このため、UPnPコントロールポイント2のCPU201は、受信されたSSDP:ALIVEメッセージのUUIDおよびNLS双方に一致するUUID43およびNLS44があると判定する。すなわち、UPnPコントロールポイント2のCPU201は、受信されたSSDP:ALIVEメッセージがHTTP GETコマンドの対象でないと判定する(図7のS74:N)。
次に、UPnPデバイス1のCPU201は、デバイス管理テーブル41に、IPv6のアドレス体系のエントリーを追加し、図4(a)に示すデバイス管理テーブル41から図4(b)に示すデバイス管理テーブル47に更新する。
本実施形態では、図8のS61でUPnPデバイス1からIPv6のSSDP:ALIVEメッセージを受信しても、UPnPコントロールポイント2は、これに続いて、HTTP GETコマンドをUPnPデバイス1に送信しない。したがって、UPnPデバイス1も、HTTP GETコマンドに応答してデバイスディスクリプションをUPnPコントロールポイント2に送信しない。UPnPコントロールポイント2のCPU201は、IPv4のアドレス体系で同一のサービスがすでに利用可能であることが、デバイス管理テーブル41から判定可能である。このため、IPv6で同一のサービスについて、HTTP GETコマンドを送信してデバイスディスクリプションを重ねて取得する必要がないからである。
以上説明したように、本実施形態では、UPnPデバイスは、複数の異なるアドレス体系で同一のサービスをUPnPコントロールポイントに送信する際に、存在メッセージ(ALIVE)に先だって全てのアドレス体系で不在メッセージ(BYEBYE)を送信する。また、UPnPコントロールポイントは、デバイス管理テーブルを参照して、同一UPnPデバイスからの同一サービスのエントリーがあるか否かを判定し、同一サービスのエントリーがある場合には、HTTP GETコマンドを送信しない。
これにより、最初のアドレス体系でUPnPデバイスから送信されたサービスについて、UPnPデバイスが他のアドレス体系についてネットワークから離脱することで、不測にサービス利用不可状態へ遷移してしまうことが有効に防止できる。また、最初のアドレス体系でUPnPデバイスから送信されたサービスが、一時的に利用不可状態に遷移してしまうことがないため、サービスの利便性が向上する。
さらに、複数の異なるアドレス体系のいずれかについて、同一サービスについてサービス受信のためのデバイスの情報が所得できている場合には、HTTP GETコマンドの送信を行わないため、サービス提供における通信効率が向上する。
また、本発明は、上述の実施形態の一部または1以上の機能を実現するプログラムによっても実現可能である。すなわち、そのプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)における1つ以上のプロセッサがプログラムを読出し実行する処理により実現可能である。また、そのプログラムをコンピュータ可読な記録媒体に記録して提供してもよい。
また、コンピュータが読みだしたプログラムを実行することにより、実施形態の機能が実現されるものに限定されない。例えば、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
1…UPnPデバイス、2…UPnPコントロールポイント、3…アクセスポイント、4…UPnPネットワーク、101…CPU、102…ROM、103…RAM、104…操作部、105…ネットワークI/F、106…ドライブ、107…表示部、108…光学部、109…符号化・復号化部、110…タイマ

Claims (12)

  1. 第1および第2のアドレス体系のうち1つ以上を設定してネットワークに参加する参加手段と、
    前記参加手段により参加した前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信する第1の送信手段と、
    前記ネットワークから離脱することを示す離脱メッセージを前記ネットワークへ送信する第2の送信手段と、
    前記第1および第2のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定する判定手段と、
    前記判定手段により、前記第1および第2のアドレス体系のうち双方が設定されたと判定された場合、前記第2の送信手段に、前記第1および第2のアドレス体系の双方で前記離脱メッセージを前記ネットワークへ送信させ前記第1および第2のアドレス体系の双方での前記離脱メッセージの送信が完了した後に、前記第1の送信手段に前記存在メッセージを前記ネットワークへ送信させるよう制御する送信制御手段と
    を備えることを特徴とする通信装置。
  2. 前記判定手段により設定されたと判定されたアドレス体系で、前記ネットワークへの所定のサービスを開始する開始手段をさらに備え、
    前記送信制御手段は、前記開始手段により前記所定のサービスが開始された際に、前記離脱メッセージおよび前記存在メッセージを前記ネットワークへ送信させるよう制御することを特徴とする請求項1に記載の通信装置。
  3. 前記判定手段により、前記第1および第2のアドレス体系のうち一方が設定されたと判定された場合、前記送信制御手段は、前記第1および第2のアドレス体系のうち他方が設定されていないことを示す通知を生成する
    ことを特徴とする請求項1または2に記載の通信装置。
  4. 前記送信制御手段は、前記第1および第2のアドレス体系のうち他方の設定を促す通知を生成する
    ことを特徴とする請求項3に記載の通信装置。
  5. 前記開始手段により開始された前記所定のサービスを停止する停止手段をさらに備え、
    前記送信制御手段は、前記停止手段により前記所定のサービスを停止する際に、前記第1および第2のアドレス体系の双方で前記離脱メッセージを前記ネットワークへ送信させるよう制御する
    ことを特徴とする請求項に記載の通信装置。
  6. 前記通信装置は、UPnP(Universal Plug and Play)で規定されるUPnPデバイスであり、
    前記参加手段により参加する前記ネットワークは、UPnPで規定されるUPnPネットワークである
    ことを特徴とする請求項1から5のいずれか1項に記載の通信装置。
  7. 前記存在メッセージは、SSDP(Simple Service Discovery Protocol):ALIVEメッセージであり、前記離脱メッセージは、SSDP:BYEBYEメッセージである
    ことを特徴とする請求項6に記載の通信装置。
  8. 前記第1の送信手段は、前記ネットワークへの所定のサービスを示す情報を、前記SSDP:ALIVEメッセージのNLS(Network Location Signature)に設定する
    ことを特徴とする請求項7に記載の通信装置。
  9. 前記通信装置は、メディアサーバとして動作し、前記所定のサービスは、当該メディアサーバに関するサービスであることを特徴とする請求項8に記載の通信装置。
  10. 前記通信装置は、撮像部と記憶部を有する通信装置であることを特徴とする請求項9に記載の通信装置。
  11. 第1および第2のアドレス体系のうち1つ以上を設定してネットワークに参加するステップと、
    前記第1および第2のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定するステップと、
    前記第1および第2のアドレス体系のうち双方が設定されたと判定された場合、前記第1および第2のアドレス体系の双方で、前記ネットワークから離脱することを示す離脱メッセージを前記ネットワークへ送信するステップと、
    前記第1および第2のアドレス体系の双方で、前記離脱メッセージを前記ネットワークへ送信し前記第1および第2のアドレス体系の双方での前記離脱メッセージの送信が完了した後に、前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信するステップと、
    を備えることを特徴とする通信装置の制御方法。
  12. コンピュータを、請求項1から10のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
JP2019056359A 2019-03-25 2019-03-25 通信装置、通信装置の制御方法およびプログラム Active JP7353775B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019056359A JP7353775B2 (ja) 2019-03-25 2019-03-25 通信装置、通信装置の制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019056359A JP7353775B2 (ja) 2019-03-25 2019-03-25 通信装置、通信装置の制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2020161874A JP2020161874A (ja) 2020-10-01
JP7353775B2 true JP7353775B2 (ja) 2023-10-02

Family

ID=72639942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019056359A Active JP7353775B2 (ja) 2019-03-25 2019-03-25 通信装置、通信装置の制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP7353775B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111494A1 (en) 2002-12-06 2004-06-10 Microsoft Corporation Network location signature for disambiguating multicast messages in dual-IP stack and/or multi-homed network environments
US20040267876A1 (en) 2003-06-30 2004-12-30 Microsoft Corporation Ad-hoc service discovery protocol
JP2005175724A (ja) 2003-12-09 2005-06-30 Canon Inc 通信装置及び撮像装置並びにその制御方法及びネットワークシステム
JP2006108803A (ja) 2004-09-30 2006-04-20 Brother Ind Ltd 管理システム及びプログラム
US20090080453A1 (en) 2007-09-21 2009-03-26 Nokia Corporation Context aware ipv6 connection activation in a upnp remote access environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040111494A1 (en) 2002-12-06 2004-06-10 Microsoft Corporation Network location signature for disambiguating multicast messages in dual-IP stack and/or multi-homed network environments
US20040267876A1 (en) 2003-06-30 2004-12-30 Microsoft Corporation Ad-hoc service discovery protocol
JP2005175724A (ja) 2003-12-09 2005-06-30 Canon Inc 通信装置及び撮像装置並びにその制御方法及びネットワークシステム
JP2006108803A (ja) 2004-09-30 2006-04-20 Brother Ind Ltd 管理システム及びプログラム
US20090080453A1 (en) 2007-09-21 2009-03-26 Nokia Corporation Context aware ipv6 connection activation in a upnp remote access environment

Also Published As

Publication number Publication date
JP2020161874A (ja) 2020-10-01

Similar Documents

Publication Publication Date Title
US8810669B2 (en) Image input device having different wireless communication states, control method and program therefor
US9974104B2 (en) Wireless communication apparatus and method for seamlessly communicating data by setting up and switching between multiple networks
JP6869746B2 (ja) 通信装置、その制御方法、プログラム
WO2013177001A1 (en) Devices and methods for facilitating direct pairing in a wireless docking system
JP2004318852A (ja) 被制御デバイスのリストを提供するネットワーク装置、システム及び方法
JP7549702B2 (ja) 通信装置、制御方法、およびプログラム
US10873784B2 (en) Communication apparatus, image capturing apparatus, control method, and storage medium
CN113382065B (zh) 文件下载方法、装置、系统、设备及存储介质
WO2018224040A1 (en) Method and device of information transmission
US20150092764A1 (en) Communication apparatus, data processing apparatus, control method thereof, and recording medium
CN107925940A (zh) 通信系统、通信装置和用于重新连接通信系统的方法
US20180213019A1 (en) Information processing apparatus, method for controlling same, and storage medium
WO2023273533A1 (zh) 网络管理方法及装置
WO2017166569A1 (zh) 一种终端控制方法及装置
CN113794996A (zh) 设备通信、设备控制方法、装置、电子设备和存储介质
JP7353775B2 (ja) 通信装置、通信装置の制御方法およびプログラム
JP5843634B2 (ja) 通信装置、および、その制御方法、プログラム
JP2013109521A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2017017594A (ja) 通信装置、制御方法、及びプログラム
US20200036763A1 (en) Information processing apparatus and control method
US20140334340A1 (en) Communication device, method for controlling the communication device, and program
CN106341252A (zh) 资源管理方法、装置及控制终端
US9602579B2 (en) Communication apparatus, method for controlling the same, and program
JP2014143660A (ja) 携帯端末、表示装置、テレビジョン受像機、無線通信システム
TW201947911A (zh) 自動建置雲端服務的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220302

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230809

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230920

R151 Written notification of patent or utility model registration

Ref document number: 7353775

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D03