(57)【要約】【課題】複数の異なるアドレス体系でサービスを提供する場合であっても、サービスがネットワークから離脱することを防止して、ネットワーク上のサービス提供を効率的に実行する。【解決手段】通信装置は、第１および第２のアドレス体系のうち１つ以上を設定してネットワークに参加し、第１および第２のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定し、第１および第２のアドレス体系のうち双方が設定されたと判定された場合、第１および第２のアドレス体系の双方で、ネットワークから離脱することを示す不在メッセージをネットワークへ送信し、その後、ネットワーク上に存在していることを示す存在メッセージをネットワークへ送信する。【選択図】図６
2020161874.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のアドレス体系のうち１つ以上を設定してネットワークに参加する参加手段と、
前記参加手段により参加した前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信する第１の送信手段と、
前記ネットワークから離脱することを示す不在メッセージを前記ネットワークへ送信する第２の送信手段と、
前記第１および第２のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定する判定手段と、
前記判定手段により、前記第１および第２のアドレス体系のうち双方が設定されたと判定された場合、前記第２の送信手段に、前記第１および第２のアドレス体系の双方で前記不在メッセージを前記ネットワークへ送信させ、その後、前記第１の送信手段に前記存在メッセージを前記ネットワークへ送信させるよう制御する制御手段と
を備えることを特徴とする通信装置。
【請求項２】
前記判定手段により設定されたと判定されたアドレス体系で、前記ネットワークへの所定のサービスを開始する開始手段をさらに備え、
前記制御手段は、前記開始手段により前記所定のサービスが開始された際に、前記不在メッセージおよび前記存在メッセージを前記ネットワークへ送信させるよう制御する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判定手段により、前記第１および第２のアドレス体系のうち一方が設定されたと判定された場合、前記制御手段は、前記第１および第２のアドレス体系のうち他方が設定されていないことを示す通知を生成する
ことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記制御手段は、前記第１および第２のアドレス体系のうち他方の設定を促す通知を生成する
ことを特徴とする請求項３に記載の通信装置。
【請求項５】
前記開始手段により開始された前記所定のサービスを停止する停止手段をさらに備え、
前記制御手段は、前記停止手段により前記所定のサービスを停止する際に、前記第１および第２のアドレス体系の双方で前記不在メッセージを前記ネットワークへ送信させるよう制御する
ことを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記通信装置は、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）で規定されるＵＰｎＰデバイスであり、
前記参加手段により参加する前記ネットワークは、ＵＰｎＰで規定されるＵＰｎＰネットワークである
ことを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記存在メッセージは、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）：ＡＬＩＶＥメッセージであり、前記不在メッセージは、ＳＳＤＰ：ＢＹＥＢＹＥメッセージである
ことを特徴とする請求項６に記載の通信装置。
【請求項８】
前記第１の送信手段は、前記ネットワークへの所定のサービスを示す情報を、前記ＳＳＤＰ：ＡＬＩＶＥメッセージのＮＬＳ（Ｎｅｔｗｏｒｋ  Ｌｏｃａｔｉｏｎ  Ｓｉｇｎａｔｕｒｅ）に設定する
ことを特徴とする請求項７に記載の通信装置。
【請求項９】
第１および第２のアドレス体系のうち１つ以上を設定してネットワークに参加するステップと、
前記第１および第２のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定するステップと、
前記第１および第２のアドレス体系のうち双方が設定されたと判定された場合、前記第１および第２のアドレス体系の双方で、前記ネットワークから離脱することを示す不在メッセージを前記ネットワークへ送信するステップと、
前記第１および第２のアドレス体系の双方で、前記不在メッセージを前記ネットワークへ送信した後、前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信するステップと、
を備えることを特徴とする通信装置の制御方法。
【請求項１０】
コンピュータを、請求項１から８のいずれか１項に記載の通信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク参加および離脱が可能な通信装置、通信装置の制御方法およびプログラムに関する。
【背景技術】
【０００２】
ネットワーク上で所定のサービスを提供するデバイスを探索して機能連携するためのネットワーク技術の１つにＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）がある。
ＵＰｎＰにおいて、所定のサービスを提供する論理的な単位を「サービス」と、１つ以上のサービスを有する論理的な単位を「デバイス」と、１つ以上のサービスを制御する論理的な単位を「コントロールポイント」と、それぞれ称する。
【０００３】
ＵＰｎＰで規定されたデバイス（以下、「ＵＰｎＰデバイス」という）がサービスを提供する際、提供すべきサービスをＮＯＴＩＦＹメッセージにＮＬＳ（Ｎｅｔｗｏｒｋ  Ｌｏｃａｔｉｏｎ  Ｓｉｇｎａｔｕｒｅ）として設定して送信することができる。ＵＰｎＰデバイスには、ＵＰｎＰデバイスを一意に識別する識別子であるＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）が付与される。
ＵＰｎＰで規定されたコントロールポイント（以下、「ＵＰｎＰコントロールポイント」という。）は、同一のＵＵＩＤを有するＵＰｎＰデバイスからサービスを受信すると、受信されたサービスが同一か否かをＮＬＳに基づき認識できる。
【０００４】
また、ＵＰｎＰデバイスとＵＰｎＰコントロールポイントの間では、ＳＳＤＰ（Ｓｉｍｐｌｅ  Ｓｅｒｖｉｃｅ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）を用いてメッセージが交換される。SSDP:ALIVEメッセージは、ＵＰｎＰデバイスがＵＰｎＰネットワークに存在することを示すメッセージであり、SSDP:BYEBYEメッセージは、ＵＰｎＰデバイスがＵＰｎＰネットワークから離脱することを示すメッセージである。
【０００５】
特許文献１は、ＵＰｎＰデバイスがＵＰｎＰネットワークへ参加した際、まずＳＳＤＰ：ＢＹＥＢＹＥメッセージを送信し、その後、SSDP:ALIVEメッセージを送信する通信装置を開示する。SSDP:ALIVEメッセージに先立ってSSDP:BYEBYEメッセージを送信することで、前回ネットワークから離脱する際のSSDP:BYEBYEメッセージが正常に受信されなくても、ＵＰｎＰコントロールポイントとの通信をリセットしてネットワークへ再参加できる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１７５７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、ＵＰｎＰは、例えばＩＰｖ４とＩＰｖ６等、複数の異なるアドレス体系の併用を許容している。
しかしながら、複数の異なるアドレス体系を実装するＵＰｎＰデバイスが同一サービスをＵＰｎＰコントロールポイントへ送信する場合には、以下の課題が生じ得る。即ち、ＵＰｎＰデバイスが、複数のアドレス体系で同一のサービスを送信すると、それぞれのアドレス体系でSSDP:BYEBYEメッセージと、後続するSSDP:ALIVEメッセージのシーケンスがそれぞれ実行される。ここで、最初のアドレス体系でのSSDP:ALIVEメッセージに後続して、次のアドレス体系でのSSDP:BYEBYEメッセージが送信されるシーケンスが実行されたものとする。この場合、後続する次のアドレス体系でのSSDP:BYEBYEメッセージによって、最初のアドレス体系で送信し利用可能となったサービスが利用できなくなってしまう。
このように、複数の異なるアドレス体系でサービスを提供する際に、サービスが不測に利用不可状態に遷移してしまい、ユーザの利便性が低下するおそれがあった。
【０００８】
本発明は上記課題に鑑みてなされたものであり、その目的は、複数の異なるアドレス体系でサービスを提供する場合に、サービスが意図せず利用不可能な状態となってしまう可能性を低減させることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明に係る通信装置は、第１および第２のアドレス体系のうち１つ以上を設定してネットワークに参加する参加手段と、前記参加手段により参加した前記ネットワーク上に存在していることを示す存在メッセージを前記ネットワークへ送信する第１の送信手段と、前記ネットワークから離脱することを示す不在メッセージを前記ネットワークへ送信する第２の送信手段と、前記第１および第２のアドレス体系のうち、いずれのアドレス体系が設定されたかを判定する判定手段と、前記判定手段により、前記第１および第２のアドレス体系のうち双方が設定されたと判定された場合、前記第２の送信手段に、前記第１および第２のアドレス体系の双方で前記不在メッセージを前記ネットワークへ送信させ、その後、前記第１の送信手段に前記存在メッセージを前記ネットワークへ送信させるよう制御する制御手段とを備える。
【発明の効果】
【００１０】
本発明によれば、複数の異なるアドレス体系でサービスを提供する場合に、サービスが意図せず利用不可能な状態となってしまう可能性を低減させることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るネットワークシステムのネットワーク構成の一例を示す図。
【図２】本実施形態に係るＵＰｎＰデバイスのハードウエアおよび機能構成の一例を示す図。
【図３】本実施形態に係るＵＰｎＰコントロールポイントのハードウエアおよび機能構成の一例を示す図。
【図４】ＵＰｎＰコントロールポイントが管理するデバイス管理テーブルの一例を示す図
【図５】複数の異なるアドレス体系を有する場合のＵＰｎＰデバイスとＵＰｎＰコントロールポイントとの間のサービス提供のメッセージシーケンスを示す図。
【図６】本実施形態に係るＵＰｎＰデバイスが実行するサービス提供処理の処理手順の一例を示すフローチャート。
【図７】本実施形態に係るＵＰｎＰコントロールポイントが実行するサービスを制御する処理の処理手順の一例を示すフローチャート。
【図８】本実施形態におけるＵＰｎＰデバイスとＵＰｎＰコントロールポイントとの間のサービス提供のメッセージシーケンスを示す図。
【図９】本実施形態に係るSSDP:BYEBYEメッセージの記述例を示す図。
【図１０】本実施形態に係るSSDP:ALIVEメッセージの記述例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正または変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
以下、通信装置が、ＵＰｎＰ（Ｕｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）に準拠する通信装置であって、ＵＰｎＰに規定されるネットワークに参加または離脱する例を説明するが、本実施形態が使用可能な通信プロトコルはＵＰｎＰに限定されない。例えば、通信装置は、ネットワークに参加または離脱して、他の通信装置との間で機能連携が可能である他の通信プロトコルを使用してもよい。
【００１４】
＜本実施形態のネットワーク構成＞
図１は、本実施形態に係るネットワークシステムのネットワーク構成の一例を示す図である。
図１のネットワークシステムは、ＵＰｎＰデバイス１、ＵＰｎＰコントロールポイント２、およびアクセスポイント３を備える。ＵＰｎＰデバイス１、ＵＰｎＰコントロールポイント２、およびアクセスポイント３は、それぞれ、Ｗｉ−Ｆｉ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）等に準拠したネットワークインタフェースを有する。
ＵＰｎＰデバイス１は、アクセスポイント３を介して、ＵＰｎＰコントロールポイント２に、ＵＰｎＰで規定されるネットワーク（以下、「ＵＰｎＰネットワーク」という。）４を介して相互に接続され通信可能である。
【００１５】
ＵＰｎＰデバイス１は、ＵＰｎＰで規定されるデバイスとして動作する機能を有するデバイスであり、本実施形態では、デジタルカメラ（Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ：ＤＳＣ）を例として説明する。ただし、本実施形態に適用可能なＵＰｎＰデバイス１は、デジタルカメラに限定されず、ＵＰｎＰにおける１つ以上のサービスを有しＵＰｎＰネットワーク４へ接続可能なデバイスであればよい。ＵＰｎＰデバイス１は、例えば、デジタルビデオカメラ、携帯電話、スマートフォン、ＰＣ（ＰｅｒｓｏｎａｌＣｏｍｐｕｔｅｒ）、ノートＰＣ、サーバ等を含むがこれらに限定されない。
ＵＰｎＰコントロールポイント２は、ＵＰｎＰで規定されるコントロールポイントとして動作する機能を有するデバイスであり、本実施形態では、ＰＣ（ＰｅｒｓｏｎａｌＣｏｍｐｕｔｅｒ）を例として説明する。ただし、本実施形態に適用可能なＵＰｎＰコントロールポイント２は、ＰＣに限定されず、ＵＰｎＰにおける１つ以上のサービスを制御しＵＰｎＰネットワーク４へ接続可能なデバイスであればよい。
【００１６】
デジタルカメラであるＵＰｎＰデバイス１は、ＡＶ  Ｗｏｒｋｉｎｇ  Ｃｏｍｍｉｔｔｅｅで規定されたメディアサーバ（Ｍｅｄｉａ  Ｓｅｒｖｅｒ）として動作してよい。ＵＰｎＰデバイス１は、Ｃｏｎｎｅｃｔｉｏｎ  Ｍａｎａｇｅｒ、Ｃｏｎｔｅｎｔ  Ｄｉｒｅｃｔｏｒｙ、およびＡＶ  Ｔｒａｎｓｐｏｒｔ等のサービスを有し、ＵＰｎＰコントロールポイント２や他のデバイスにこれらのサービスを提供可能である。
【００１７】
＜ＵＰｎＰデバイス１の構成＞
図２は、本実施形態に係るＵＰｎＰデバイス１のハードウエアおよび機能構成の一例を示す図である。
図２のＵＰｎＰデバイス１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、操作部１０４、ネットワークＩ／Ｆ１０５、ドライブ１０６、表示部１０７、光学部１０８、符号化・復号化部１０９、およびタイマ１１０を備える。図２のＵＰｎＰデバイス１の各部は、システムバス１１１により、通信可能に相互接続される。
なお、ＵＰｎＰデバイス１は、上記のモジュール全てを備えなくともよく、また図２の構成に加えて追加のモジュール等を備えてもよい。
【００１８】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、ＵＰｎＰデバイス１における動作を統括的に制御するものであり、システムバス１１１を介して、各構成部（１０２〜１１０）を制御する。すなわち、ＣＰＵ１０１は、各種処理の実行に際してＲＯＭ１０２や、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ：不図示）等の記憶媒体から必要なプログラム等をＲＡＭ１０３にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が各種処理を実行するために必要となる、変更を必要としない制御プログラムやパラメータ等を記憶する不揮発性メモリである。なお、これら制御プログラム等は、外部メモリや着脱可能な記憶媒体（不図示）に記憶されていてもよい。
【００１９】
本実施形態において、ＲＯＭ１０２は、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）、各種ネットワーク設定パラメータ、デバイスディスクリプション、およびサービスディスクリプション等を記憶する。ＵＵＩＤは、ＵＰｎＰデバイス１を一意に識別する識別子（識別情報）である。デバイスディスクリプションは、ＵＰｎＰデバイス１のデバイスに固有なデバイス情報を記述する。サービスディスクリプションは、ＵＰｎＰデバイス１が有するサービスに固有なサービス情報を記述する。
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能し、プログラムやデータを一時的に記憶する。
【００２０】
操作部１０４は、撮像ボタン、ネットワーク参加ＯＮ／ＯＦＦを切り替えるボタン、ＵＰｎＰサービス開始／終了を切り替えるボタン、およびネットワーク設定ボタン等を有する。
ネットワークＩ／Ｆ１０５は、ＵＰｎＰデバイス１がＵＰｎＰネットワーク４に接続するためのネットワークインタフェースである。
ドライブ１０６は、記録媒体への書き込みや読み出しを行う。
表示部１０７は、操作部１０４の操作結果等、各種処理の処理結果を表示出力する。
光学部１０８は、光学レンズ、ＣＣＤ等で構成され、静止画や動画等の画像を撮像する。
【００２１】
符号化・復号化部１０９は、光学部１０８により供給される画像に対して、圧縮符号化／復号化処理を実行する。
タイマ１１０は、ＣＰＵ１０１により実行されるプログラムの処理等の時間の経過を計測し管理する。
なお、ＵＰｎＰデバイス１がＵＰｎＰネットワーク４へ参加する際には、ユーザが明示的にネットワーク参加ボタンを押下してＯＮ状態とする。一方、ＵＰｎＰデバイス１がＵＰｎＰネットワーク４から離脱する際には、ネットワーク参加ボタンを再押下してＯＦＦ状態としてもよく、または電源断ボタン等が操作された場合にＵＰｎＰネットワーク４から離脱するよう構成してもよい。
【００２２】
＜ＵＰｎＰコントロールポイント２の構成＞
図３は、本実施形態に係るＵＰｎＰコントロールポイント２のハードウエアおよび機能構成の一例を示す図である。
図３のＵＰｎＰコントロールポイント２は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、外部記憶装置２０４、ネットワークＩ／Ｆ２０５、入力部２０６、表示制御部２０７、および表示部２０８を備える。図３のＵＰｎＰコントロールポイント２の各部は、システムバス２０９により、通信可能に相互接続される。
なお、ＵＰｎＰコントロールポイント２は、上記のモジュール全てを備えなくともよく、また図３の構成に加えて追加のモジュール等を備えてもよい。
【００２３】
ＣＰＵ２０１は、ＵＰｎＰコントロールポイント２における動作を統括的に制御するものであり、システムバス２０９を介して、各構成部（２０２〜２０８）を制御する。すなわち、ＣＰＵ２０１は、各種処理の実行に際してＲＯＭ２０２や、ＨＤＤ等の記憶媒体から必要なプログラム等をＲＡＭ２０３にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
ＲＯＭ２０２は、ＣＰＵ２０１が各種処理を実行するために必要となる、変更を必要としない制御プログラムやパラメータ等を記憶する不揮発性メモリである。
本実施形態において、ＲＯＭ２０２は、ブートプログラム、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）、各種ネットワーク設定パラメータ、デバイスディスクリプション、およびデバイス管理テーブル等を記憶している。このデバイス管理テーブルの詳細は、図４を参照して後述する。
なお、これら制御プログラム等は、外部記憶装置２０４に記憶されていてもよい。
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能し、プログラムやデータを一時的に記憶する。  
【００２４】
外部記憶装置２０４は、ＯＳや各種アプリケーション、ＵＰｎＰコントロールポイントとして機能するためのＸＭＬ（Ｅｘｔｅｎｄｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）を解釈して実行するプログラム、各種データファイル等を記憶する。
ネットワークＩ／Ｆ２０５は、ＵＰｎＰコントロールポイント２がＵＰｎＰネットワーク４に接続するためのネットワークインタフェースである。
入力部２０６は、キーボードやマウス等のポインティングデバイスで構成される。
表示制御部２０７は、ビデオメモリを内蔵し、ＣＰＵ２０１からの指示に従ってビデオメモリへの描画処理を実行し、ビデオメモリから描画データを読み出してビデオ信号として表示部２０８へ出力する。
表示部２０８は、表示制御部２０７からのビデオ信号を受信して、受信したビデオ信号に基づきビデオメモリに描画されたデータを画像として表示する。
【００２５】
なお、ＵＰｎＰデバイス１とＵＰｎＰコントロールポイント２との間でＵＰｎＰネットワーク４の下位レイヤは、無線ネットワークで構成されてよい。この無線ネットワークは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＺｉｇＢｅｅ（登録商標）、ＵＷＢ（Ｕｌｔｒａ  Ｗｉｄｅ  Ｂａｎｄ）等の無線ＰＡＮ（Ｐｅｒｓｏｎａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。また、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）（登録商標）等の無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）や、ＷｉＭＡＸ（登録商標）等の無線ＭＡＮ（Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。さらに、ＬＴＥ／３Ｇ等の無線ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を含む。
あるいは、ＵＰＮＰネットワーク２の下位レイヤは、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）等の通信規格に準拠する有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の有線ネットワークであってよい。また、無線ＬＡＮ通信機能と有線ＬＡＮ通信機能を組み合わせてもよい。
【００２６】
＜デバイス管理テーブル＞
本実施形態において、ＵＰｎＰコントロールポイント２は、ＲＡＭ２０３または外部記憶装置２０４に、デバイス管理テーブルを記憶する。デバイス管理テーブルは、ＵＰｎＰコントロールポイント２が制御するサービスを有するＵＰｎＰデバイス１の情報を管理するために使用されるテーブルである。
図４は、ＵＰｎＰデバイスの情報を記憶するデバイス管理テーブルの一例を示す。図４（ａ）のデバイス管理テーブル４１は、ＩＰアドレス４２、ＵＵＩＤ４３、ＮＬＳ４４、デバイス固有情報４５、およびサービス状態４６のフィールドを含む。
【００２７】
ＩＰアドレス４２は、ＵＰｎＰデバイス１に付与されたＩＰアドレスを示す。このＩＰアドレス４２は、ＩＰｖ４またはＩＰｖ６いずれかのアドレス体系のＩＰアドレス４２が記述されてよい。ＵＵＩＤ４２は、ＵＰｎＰデバイス１を一意に識別する識別子を示す。ＮＬＳ（Ｎｅｔｗｏｒｋ  Ｌｏｃａｔｉｏｎ  Ｓｉｇｎａｔｕｒｅ）４４は、ＵＰｎＰデバイス１が提供するサービスを特定する。
デバイス固有情報４５は、ＵＰｎＰデバイス１のデバイスディスクリプションとサービスディスクリプションの内容を示す。サービス状態４６は、ＵＰｎＰデバイス１が提供するサービスの状態を示す。本実施形態では、サービス状態４６は、「ｉｄｌｅ」または「ｂｕｓｙ」のいずれかの値を示す。
ＵＰｎＰコントロールポイント２は、ＵＰｎＰデバイス１から受信する各種メッセージに記述されるパラメータを抽出し、デバイス管理テーブル４１の各フィールドに値を書き込む。
【００２８】
＜複数の異なるアドレス体系でのＵＰｎＰサービスの提供＞
図５は、複数の異なるアドレス体系で、ＵＰｎＰデバイス１がＵＰｎＰコントロールポイント２に対してネットワーク参加してサービスを提供する際の、従来のメッセージシーケンスの一例を示す。図５の処理は、ＵＰｎＰデバイス１の電源がＯＮ状態になったことを契機に開始されてよい。
Ｓ５１で、ＵＰｎＰデバイス１は、ＵＰｎＰネットワーク４へ参加するためのネットワーク設定を行う。ここでは、ＩＰｖ４とＩＰｖ６との双方のネットワーク設定を行うものとする。
Ｓ５２で、ＵＰｎＰデバイス１は、ＩＰｖ４とＩＰｖ６のネットワークに参加する。
【００２９】
Ｓ５３で、ＵＰｎＰデバイス１は、操作部１０４のＵＰｎＰサービス開始ボタンの押下等により、ＵＰｎＰサービスを開始する。ここでは、ＵＰｎＰデバイス１は、ＩＰｖ４とＩＰｖ６双方のアドレス体系でＵＰｎＰサービスを開始するものとする。
なお、図５において、メッセージの送信シーケンスは、ＩＰｖ４でSSDP:BYEBYEメッセージに続いてSSDP:ALIVEメッセージを送信する。その後、ＩＰｖ６でSSDP:BYEBYEメッセージに続いてSSDP:ALIVEメッセージを送信するものとして説明する。SSDP:ALIVEメッセージは、ＵＰｎＰデバイスがＵＰｎＰネットワーク４に存在することを示すメッセージであり、SSDP:BYEBYEメッセージは、ＵＰｎＰデバイスがＵＰｎＰネットワーク４から離脱することを示すＳＳＤＰメッセージである。
【００３０】
Ｓ５４で、ＵＰｎＰデバイス１は、まず、ＩＰｖ４でSSDP:BYEBYEメッセージをＵＰｎＰコントロールポイント２へ送信する。
次に、Ｓ５５で、ＵＰｎＰデバイス１は、ＩＰｖ４でSSDP:ALIVEメッセージをＵＰｎＰコントロールポイント２へ送信する。
Ｓ５６で、ＵＰｎＰコントロールポイント２は、Ｓ５５で送信されたSSDP:ALIVEメッセージを参照して、ＵＰｎＰデバイス１のデバイスディスクリプションを取得するためにＨＴＴＰ  ＧＥＴコマンドをＵＰｎＰデバイス１へ送信する。
Ｓ５７で、ＵＰｎＰデバイス１は、ＨＴＴＰ  ＧＥＴコマンドに応答して、ＵＰｎＰデバイス１のデバイスディスクリプションをＵＰｎＰコントロールポイント２へ送信する（ステータスコード：２００  ＯＫ）。
【００３１】
Ｓ５８で、デバイスディスクリプションを受信したＵＰｎＰコントロールポイント２は、ＩＰｖ４のアドレス体系でのサービス利用可能状態になる。ここで、サービス利用可能状態とは、デバイスディスクリプションの内容に基づいて、ＵＰｎＰデバイス１のサービスディスクリプションを取得できる状態であることをいう。
Ｓ５８でＵＰｎＰコントロールポイント２がＩＰｖ４のアドレス体系でのサービス利用可能状態に遷移した後、Ｓ５９で、ＵＰｎＰデバイス１は、ＩＰｖ６でSSDP:BYEBYEメッセージをＵＰｎＰコントロールポイント２へ送信する。
【００３２】
Ｓ５９でＩＰｖ６でSSDP:BYEBYEメッセージを受信したことにより、Ｓ６０で、ＵＰｎＰコントロールポイント２は、ＩＰｖ４のアドレス体系でのサービス利用不可状態に遷移してしまう。ＩＰｖ６のSSDP:BYEBYEメッセージは、ＩＰｖ４でのメッセージから取得されたＵＰｎＰデバイス１のＵＵＩＤやデバイス固有情報を関連している。このため、異なるアドレス体系のＩＰｖ６のSSDP:BYEBYEメッセージによってもＩＰｖ４でのサービスを利用不可状態に変更してしまうからである。
【００３３】
Ｓ６１で、ＵＰｎＰデバイス１は、ＩＰｖ６でSSDP:ALIVEメッセージをＵＰｎＰコントロールポイント２へ送信する。なお、Ｓ６１でＵＰｎＰデバイス１が送信するＩＰｖ６でのSSDP:ALIVEメッセージのＮＬＳは、Ｓ５５で送信されるＩＰｖ４でのSSDP:ALIVEメッセージのＮＬＳと同じ値とする。本実施形態において、ＮＬＳが同じ値のサービスを同一サービスとして取り扱うものとする。
【００３４】
Ｓ６２で、ＵＰｎＰコントロールポイント２は、Ｓ６１で受信されたSSDP:ALIVEメッセージを参照して、ＵＰｎＰデバイス１のデバイスディスクリプションを取得するため、ＨＴＴＰ  ＧＥＴコマンドをＵＰｎＰデバイス１へ送信する。
Ｓ６３で、ＵＰｎＰデバイス１０１は、ＨＴＴＰ  ＧＥＴコマンドに応答して、ＵＰｎＰ  デバイス１のデバイスディスクリプションをＵＰｎＰコントロールポイント２へ送信する（ステータスコード：２００  ＯＫ）。
Ｓ６４で、デバイスディスクリプションを受信したＵＰｎＰコントロールポイント２は、ＩＰｖ６のアドレス体系でのサービス利用可能状態になる。なお、Ｓ６４で利用可能となったサービスは、Ｓ５８でＩＰｖ４のアドレス体系で一旦利用可能となったサービスと同一のサービスである。
【００３５】
このように、上記のメッセージシーケンスでは、Ｓ５８でＩＰｖ４のアドレス体系で一旦利用可能となったサービスが、Ｓ５９でＵＰｎＰデバイス１からＩＰｖ６のSSDP:BYEBYEメッセージを送信することにより、Ｓ６０で利用不可状態になってしまう。
このため、Ｓ６２でＵＰｎＰコントロールポイント２から再度ＨＴＴＰ  ＧＥＴコマンドをＵＰｎＰデバイス１へ送信し、Ｓ６３でＵＰｎＰデバイス１からデバイスディスクリプションを応答して、サービスを利用可能な状態に復帰させなければならない。これにより、ＵＰｎＰコントロールポイント２とＵＰｎＰデバイス１間で余分な通信を必要となり、サービス提供における通信効率が低下しかねない。
【００３６】
一旦利用可能となったサービスが利用不可状態に遷移するのは、Ｓ５９でＵＰｎＰデバイス１からSSDP:BYEBYEメッセージがＵＰｎＰコントロールポイント２へ送信されたことに起因する。すなわち、Ｓ５９でSSDP:BYEBYEメッセージが送信されなければ、Ｓ６１でＩＰｖ６のSSDP:ALIVEメッセージを受信したＵＰｎＰコントロールポイント２は、Ｓ６２でＨＴＴＰ  ＧＥＴコマンドを送信せずに足りる。これにより、ＨＴＴＰ  ＧＥＴコマンドに関わるメッセージ送受信の回数を削減できる。これは、Ｓ５５とＳ６１でのＩＰｖ４とＩＰｖ６のSSDP:ALIVEメッセージ中でサービスを識別するＮＬＳが同一であるためである。
【００３７】
そこで、本実施形態では、複数の異なるアドレス体系で、同一サービスをＵＰｎＰコントロールポイント２へ送信する場合、SSDP:BYEBYEメッセージを異なるアドレス体系のそれぞれで送信し終えるまで、SSDP:ALIVEメッセージを送信しない。なお、いずれのアドレス体系においても、SSDP:ALIVEメッセージの前にSSDP:BYEBYEメッセージを送信するものとする。
このようにメッセージシーケンスを制御することで、ＵＰｎＰコントロールポイント２が最初のアドレス体系でサービス利用不可状態に不測に遷移することが防止され、また、その後のＨＴＴＰ  ＧＥＴコマンドに関わるメッセージ送受信の回数を削減できる。
さらに、Ｓ５９からＳ６３の間でサービス利用不可状態になることも回避することができるため、ＵＰｎＰコントロールポイント２の利便性が向上する。
【００３８】
＜ＵＰｎＰデバイス１のサービス提供処理の処理フロー＞
図６は、ＵＰｎＰデバイス１が実行するサービス提供処理の処理手順の一例を示すフローチャートである。図６に示す処理は、例えば、ＵＰｎＰデバイス１の電源がＯＮの状態になったことを契機に開始されてよい。
ＵＰｎＰデバイス１はＣＰＵ１０１が必要なプログラムをＲＯＭ１０２または外部メモリから読み出して実行することにより、図６に示す処理を実行することができる。ただし、図２に示す各要素のうち少なくとも一部が専用のハードウエアとして動作することで図６の処理が実現されるようにしてもよい。この場合、専用のハードウエアは、ＣＰＵ１０１の制御に基づいて動作する。
【００３９】
Ｓ１で、ＵＰｎＰデバイス１は、ＵＰｎＰネットワーク４の設定を実行する。このネットワークの設定は、ＵＰｎＰデバイス１の電源投入時や、物理的な接続の確立時に自動的に設定されてもく、操作部１０４からのネットワーク設定ボタン等の操作により設定されてもよい。
Ｓ１のネットワークの設定では、具体的に、ＵＰｎＰデバイス１のＩＰアドレス、サブネットマスク、およびゲートウェイの設定を行う。ネットワーク設定は、ＩＰｖ４アドレス体系またはＩＰｖ６アドレス体系どちらか一方のみの設定でもよいし、双方のアドレス体系を設定してもよい。Ｓ１で設定されたアドレス体系は、ＵＰｎＰデバイス１のＲＯＭ１０２に記憶される。
【００４０】
Ｓ２で、ＵＰｎＰデバイス１は、ネットワークＩ／Ｆ１０５を介して、ＵＰｎＰネットワーク４へ参加する。このＵＰｎＰネットワーク４の参加は、Ｓ１のネットワーク設定の完了後に自動的に実行されてもよく、あるいは操作部１０４のネットワーク参加ボタンが押下されることで実行されてもよい。なお、本実施形態では、ＵＰｎＰデバイス１とＵＰｎＰコントロールポイント２とはＴＣＰ／ＩＰプロトコルを用いて通信するものとするが、これに替えて他の通信プロトコルを用いてもよい。
【００４１】
Ｓ３で、操作部１０４のＵＰｎＰサービス開始ボタンの押下等により、ＵＰｎＰデバイス１は、ＵＰｎＰサービスを開始する。このとき、ＵＰｎＰデバイス１のＣＰＵ１０１は、Ｓ１で設定されたアドレス体系を判定し、設定されたものと判定されたアドレス体系でＵＰｎＰサービスを開始する。
ＣＰＵ１０１が、開始すべきサービスで使用されるアドレス体系を判定することにより、ＵＰｎＰデバイス１のユーザに、どのアドレス体系でＵＰｎＰサービスを開始させるかを選択入力させる手間を省略することができる。Ｓ３で、判定されたアドレス体系がＩＰｖ４またはＩＰｖ６の一方のみの場合、Ｓ４に進み、判定されたアドレス体系がＩＰｖ４とＩＰｖ６との双方の場合、Ｓ６に進む。
【００４２】
なお、Ｓ３で、判定されたアドレス体系がＩＰｖ４のみの場合、ＵＰｎＰデバイス１のＣＰＵ１０１は、ＵＰｎＰサービス開始前に、他方のＩＰｖ６のネットワーク設定を促す警告画面やエラー画面を生成し、表示部１０７を介して表示させてもよい。このように警告やエラーを通知することで、ＵＰｎＰデバイス１のユーザが、ＩＰｖ４とＩＰｖ６双方でＵＰｎＰサービスを開始する意図で、実際は、ＩＰｖ４でしかＵＰｎＰサービスを開始できていない等の不測の事態を防止できる。同様に、判定されたアドレス体系がＩＰｖ６のみの場合にも、ＣＰＵ１０１は、ＵＰｎＰサービス開始前に他方のＩＰｖ４のネットワーク設定を促す警告画面やエラー画面を生成し、表示部１０７を介して表示させてもよい。
【００４３】
判定されたアドレス体系がＩＰｖ４またはＩＰｖ６のいずれかのみである場合、Ｓ４で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、まず、SSDP:BYEBYEメッセージを、ＵＰｎＰコントロールポイント２へ送信する。Ｓ４では、Ｓ３で判定されたアドレス体系で、すなわちＩＰｖ４またはＩＰｖ６のみのアドレス体系で、ネットワークＩ／Ｆ１０５は、SSDP:BYEBYEメッセージを送信する。
【００４４】
ＵＰｎＰコントロールポイント２は、ＳＳＤＰ：ＢＹＥＢＹＥメッセージを受信すると、デバイス管理テーブル４１に記憶されたＵＵＩＤ４３と、Ｓ４でＵＰｎＰデバイス１から送信されたSSDP:BYEBYEメッセージのＵＵＩＤとを比較する。
比較の結果、Ｓ４で送信されたSSDP:BYEBYEメッセージのＵＵＩＤに一致するＵＵＩＤ４３がデバイス管理テーブル４１にあれば、ＵＰｎＰコントロールポイント２は、デバイス管理テーブル４１から当該エントリーを削除する。
【００４５】
本実施形態では、ＵＰｎＰデバイス１は、Ｓ５でSSDP:ALIVEメッセージを送信することに先立って、Ｓ４でSSDP:BYEBYEメッセージを送信する。これにより、ＵＰｎＰコントロールポイント２は、ＵＵＩＤ、デバイス固有情報等の情報を保持し続ける期間であるキャッシュ期間が経過する前に、ＵＰｎＰデバイス１のサービスのＵＰｎＰネットワーク４からの離脱を知ることができる。
なお、本実施形態では、一例として、キャッシュ期間を１８００秒とするが、任意のキャッシュ期間が設定されてよい。キャッシュ期間が経過すると、ＵＰｎＰコントロールポイント２は、デバイス管理テーブル４１からキャッシュ期間の過ぎたＵＰｎＰデバイス１のエントリーを削除する。キャッシュ期間は、SSDP:ALIVEメッセージをＵＰｎＰデバイス１から受信することで更新される。なお、ＵＰｎＰデバイス１は、SSDP:ALIVEメッセージを、Ｓ８〜Ｓ１０の間、周期的に送信してもよい。
【００４６】
Ｓ５で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、SSDP:BYEBYEメッセージを送信した後、SSDP:ALIVEメッセージを送信する。Ｓ５では、Ｓ３で判定されたアドレス体系で、すなわちＩＰｖ４またはＩＰｖ６のみのアドレス体系で、ネットワークＩ／Ｆ１０５は、SSDP:ALIVEメッセージを送信する。
Ｓ３に戻り、一方、判定されたアドレス体系がＩＰｖ４およびＩＰｖ６の双方である場合、Ｓ６で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、まず、SSDP:BYEBYEメッセージを、ＵＰｎＰコントロールポイント２へ送信する。Ｓ６では、Ｓ３で判定されたアドレス体系で、すなわちＩＰｖ４およびＩＰｖ６の双方のアドレス体系で、ネットワークＩ／Ｆ１０５は、SSDP:BYEBYEメッセージをそれぞれ送信する。
このように、SSDP:ALIVEメッセージを送信するのに先立って、ＩＰｖ４とＩＰｖ６の双方のアドレス体系でSSDP:BYEBYEをそれぞれ送信しておくことで、図５で説明した通信の負荷やサービス利用不可状態が解消される。
【００４７】
Ｓ７で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＩＰｖ４およびＩＰｖ６双方のアドレス体系でSSDP:BYEBYEメッセージをそれぞれ送信した後、SSDP:ALIVEメッセージを送信する。Ｓ７では、Ｓ３で判定されたアドレス体系で、すなわちＩＰｖ４およびＩＰｖ６双方のアドレス体系で、ネットワークＩ／Ｆ１０５は、SSDP:ALIVEメッセージをそれぞれ送信する。
なお、Ｓ６の後にＳ７の処理を実行する際、Ｓ６のSSDP:BYEBYEメッセージ送信処理が正常に動作したことをＣＰＵ１０１が確認してから、Ｓ７のSSDP:ALIVEメッセージ送信処理を開始するようにしてもよい。あるいは、Ｓ６の処理が十分に終了するであろう時間をあらかじめ設定し、Ｓ３の後に、タイマ１１０で計測した時間が設定値を過ぎたときにＳ７の処理を開始してもよい。
【００４８】
Ｓ８で、ＵＰｎＰデバイス１のＣＰＵ１０１は、ＵＰｎＰコントロールポイント２からＨＴＴＰ  ＧＥＴコマンドを受信したか否かを判定する。ＨＴＴＰ  ＧＥＴコマンドを受信した場合（Ｓ８：Ｙ）、Ｓ９に進み、一方、ＨＴＴＰ  ＧＥＴコマンドを受信しなかった場合（Ｓ８：Ｎ）、Ｓ９をスキップしてＳ１０に進む。
ＨＴＴＰ  ＧＥＴコマンドを受信した場合、Ｓ９で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＨＴＴＰ  ＧＥＴコマンドの送信元であるＵＰｎＰコントロールポイント２へ、サービス内容を送信する。本実施形態では、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＵＰｎＰコントロールポイント２に対して、デバイスディスクリプションを送信する。
【００４９】
Ｓ１０で、ＵＰｎＰデバイス１のＣＰＵ１０１は、サービスを停止するか否かを判定する。サービスを停止しない場合（Ｓ１０：でＮ）、Ｓ４０８に戻り、一方、サービスを停止する場合（Ｓ１０：Ｙ）、Ｓ４１１に進む。
Ｓ１１で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、SSDP:BYEBYEメッセージを、ＵＰｎＰコントロールポイント２へ送信する。Ｓ１１では、Ｓ３で判定された全てのアドレス体系で、ネットワークＩ／Ｆ１０５は、SSDP:BYEBYEメッセージを送信する。これにより、ＩＰｖ４またはＩＰｖ６のみ受信するＵＰｎＰコントロールポイント２とＩＰｖ４とＩＰｖ６双方を受信するＵＰｎＰコントロールポイント２とで、サービス利用可能状態が異なるという事象を回避することができる。
【００５０】
このＵＰｎＰコントロールポイント２間でサービス利用可能状態が異なるという事象を、以下説明する。
ＵＰｎＰデバイス１が、Ｓ７で、ＩＰｖ４とＩＰｖ６の双方でSSDP:ALIVEメッセージを送信した場合に、Ｓ１１で、ＩＰｖ６のSSDP:BYEBYEメッセージのみしか送信しなかったと仮定する。
この場合、ＩＰｖ４のみを受信するＵＰｎＰコントロールポイント２は、ＩＰｖ４のアドレス体系でのサービス利用可能状態だが、ＩＰｖ４とＩＰｖ６双方を受信するＵＰｎＰコントロールポイント２は、サービス利用不可状態となる。
【００５１】
同様に、Ｓ１１でＩＰｖ４のSSDP:BYEBYEメッセージのみしか送信しない場合、ＩＰｖ６のみを受信するＵＰｎＰコントロールポイント２は、ＩＰｖ４のアドレス体系でのサービス利用可能状態となる。一方、ＩＰｖ４とＩＰｖ６双方を受信するＵＰｎＰコントロールポイント２は、サービス利用不可状態となる。このようなＵＰＮＰコントロールポイント２間でSSDP:BYEBYEメッセージ送信後にサービス利用可能状態が異なるという齟齬を解消するため、本実施形態では、サービス停止時にすべてのアドレス体系について、SSDP:BYEBYEメッセージを送信する。
なお、本実施形態では、Ｓ１１で、Ｓ３で判定されたアドレス体系のいずれかでSSDP:BYEBYEメッセージの送信に失敗した場合、エラー処理を実行してよい。このエラー処理では、例えば、送信に失敗したアドレス体系でSSDP:BYEBYEメッセージを再送してもよく、あるいは、ＵＰｎＰデバイス１が、強制的にＵＰｎＰネットワーク４から離脱してもよい。
【００５２】
＜ＵＰｎＰコントロールポイント２のサービス受信処理の処理フロー＞
図７は、ＵＰｎＰコントロールポイント２が実行するサービス受信処理の処理手順の一例を示すフローチャートである。図７に示す処理は、例えば、ＵＰｎＰコントロールポイント２の電源がＯＮの状態になったことを契機に開始されてよい。
Ｓ７１で、ＵＰｎＰコントロールポイント２は、ネットワークの設定を実行する。このネットワークの設定は、ＵＰｎＰコントロールポイント２の電源投入時や、物理的な接続の確立時に自動で設定されてもよく、入力部２０６からの操作により設定されてもよい。
Ｓ７１のネットワークの設定では、具体的に、ＩＰアドレス、サブネットマスク、およびゲートウェイの設定を行う。ネットワーク設定は、ＩＰｖ４アドレス体系またはＩＰｖ６アドレス体系のどちらか一方で設定してもよいし、双方のアドレス体系を設定してもよい。
【００５３】
Ｓ７２で、ＵＰｎＰコントロールポイント２は、ネットワークＩ／Ｆ２０５を介して、ＵＰｎＰネットワーク４へ参加する。このＵＰｎＰネットワーク４への参加は、Ｓ７１のネットワーク設定の完了後に自動的に実行されてもよく、あるいは入力部２０６のネットワーク参加ボタンが押下されることで実行されてもよい。
Ｓ７３で、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＵＰｎＰデバイス１からSSDP:ALIVEメッセージを受信したか否かを判定する。SSDP:ALIVEメッセージを受信した場合（Ｓ７３：Ｙ）、Ｓ７４へ進む。一方、SSDP:ALIVEメッセージを受信しなかった場合（Ｓ７３：Ｎ）、Ｓ７８へ進む。
【００５４】
SSDP:ALIVEメッセージを受信した場合、Ｓ７４で、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７３で受信されたSSDP:ALIVEメッセージが、ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象か否かを判定する。
Ｓ７４では、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、デバイス管理テーブル４１を参照することにより、ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象か否かを判定する。具体的には、ＵＰｎＰコントロールポイント２は、デバイス管理テーブル４１のＵＵＩＤ４３およびＮＬＳ４４と、受信されたSSDP:ALIVEメッセージ中のＵＵＩＤおよびＮＬＳとをそれぞれ比較する。
【００５５】
この比較の結果、受信されたSSDP:ALIVEメッセージ中のＵＵＩＤおよびＮＬＳの双方とも一致するエントリーがデバイス管理テーブル４１にある場合に、ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象でないと判定し（Ｓ７４：Ｎ）、Ｓ７７へ進む。一方、受信されたSSDP:ALIVEメッセージ中のＵＵＩＤおよびＮＬＳのいずれにも一致するエントリーがデバイス管理テーブル４１になかった場合に、ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象であると判定し（Ｓ７４：Ｎ）、Ｓ７５へ進む。
ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象であると判定された場合、Ｓ７５で、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＨＴＴＰ  ＧＥＴコマンドをＵＰｎＰデバイス１へ送信する。
【００５６】
Ｓ７６で、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、Ｓ７５でＨＴＴＰ  ＧＥＴコマンドを送信したＵＰｎＰデバイス１から、応答として、ＵＰｎＰデバイス１のデバイスディスクリプションを受信する。ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７３、およびＳ７５の応答として受信された情報で、デバイス管理テーブル４１を更新する。
具体的には、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７３で受信されたSSDP:ALIVEメッセージから抽出されたＵＰｎＰデバイス１のＩＰアドレス、ＵＵＩＤ、およびＮＬＳで、デバイス管理テーブル４１を更新する。また、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７５の応答として受信されたＵＰｎＰデバイス１のデバイスディスクリプションで、デバイス管理テーブル４１を更新する。
【００５７】
一方、ＨＴＴＰ  ＧＥＴコマンドを送信すべき対象でないと判定された場合、Ｓ７７で、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、デバイス管理テーブル４１を更新する。
具体的には、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７３で受信されたSSDP:ALIVEメッセージから抽出されたＩＰアドレス、ＵＵＩＤ、およびＮＬＳで、デバイス管理テーブル４１を更新する。このとき、デバイス管理テーブル４１のデバイス固有情報４５およびサービス状態４６は、ＮＵＬＬ等の空白を表す文字を書き込んでもよく、あるいはＳ７４での比較処理で一致したデバイス管理テーブル４１の値に基づいて書き込んでもよい。
【００５８】
Ｓ７３に戻り、SSDP:ALIVEメッセージを受信しない場合、Ｓ７８で、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＵＰｎＰデバイス１から、SSDP:BYEBYEメッセージを受信したか否かを判定する。
SSDP:BYEBYEメッセージを受信した場合（Ｓ７８：Ｙ）、Ｓ７９へ進み、一方、SSDP:BYEBYEメッセージを受信しない場合（Ｓ７８：Ｎ）、Ｓ７９をスキップしてＳ８０へ進む。
【００５９】
Ｓ７９で、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、デバイス管理テーブル４１を更新する。
具体的には、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、Ｓ７８で受信されたSSDP:BYEBYEメッセージから抽出されたＵＵＩＤと、デバイス管理テーブル４１のＵＵＩＤ４３とを比較する。比較の結果、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤに一致するＵＵＩＤ４３がデバイス管理テーブル４１中にあれば、当該エントリーをデバイス管理テーブル４１から削除する。一方、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤに一致するＵＵＩＤ４３がデバイス管理テーブル４１中になければ、デバイス管理テーブル４１を更新しない。
Ｓ８０で、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、ＵＰｎＰネットワーク４から離脱するか否かを判定する。ＵＰｎＰネットワーク４から離脱しないと判定された場合（Ｓ８０：Ｎ）、Ｓ７３に戻って、Ｓ７３からＳ８０までの処理を繰り返す。一方、ＵＰｎＰネットワーク４から離脱すると判定された場合（Ｓ８０：Ｙ）、Ｓ８１に進んで、ＵＰｎＰネットワーク４から離脱して処理を終了する。
【００６０】
＜本実施形態のＵＰｎＰサービス提供処理シーケンス＞
以下、図８から図１０を参照して、本実施形態におけるＵＰｎＰデバイス１からＵＰｎＰコントロールポイント２へのＵＰｎＰサービス提供の処理手順を説明する。
図８は、ＵＰｎＰデバイス１とＵＰｎＰコントロールポイント２との間のＵＰｎＰサービス送信の際のメッセージシーケンスの一例を示す。なお、図８の各ステップにおいて、図５の従来のシーケンスと同様の処理については、同一の符号を付して説明する。
【００６１】
図５に示す従来のメッセージシーケンスと比較して、図８では、Ｓ５５のＩＰｖ４でのＳＳＤＰ：ＡＬＩＶＥメッセージの送信前に、ＩＰｖ６でのSSDP:BYEBYEメッセージが送信され（Ｓ５９）、Ｓ６０、Ｓ６２からＳ６４までの各ステップが省略されている。
図８では、ＵＰｎＰコントロールポイント２は、予め、図７のネットワーク設定（Ｓ７１）およびネットワークへの参加（Ｓ７２）を完了しているものとする。また、ＵＰｎＰコントロールポイント２は、ＩＰｖ４およびＩＰｖ６双方のアドレス体系でのメッセージおよびサービスを受信できるものとする。
【００６２】
Ｓ５１で、ＵＰｎＰデバイス１は、操作部１０４のネットワーク設定ボタンの押下等により、ＵＰｎＰネットワーク４へ参加するためのネットワーク設定を行う。ここでは、ＩＰｖ４とＩＰｖ６との双方のネットワーク設定を行うものとする。
具体的には、ＵＰｎＰデバイス１は、ＩＰｖ４のＩＰアドレスに１９２．１６８．１．１０を設定し、ＩＰｖ６のＩＰアドレスにｆｅ８０：：４８２８：２３ｃ３：５２ｄｅ：５ｄｆ８を設定したものとする。
Ｓ５２で、ＵＰｎＰデバイス１は、操作部１０４のネットワーク参加ボタンの押下等により、ネットワークＩ／Ｆ１０５を介して、ＩＰｖ４とＩＰｖ６のＵＰｎＰネットワーク２に参加する。
【００６３】
Ｓ５３で、ＵＰｎＰデバイス１は、操作部１０４のＵＰｎＰサービス開始ボタンの押下等により、ＵＰｎＰサービスを開始する。Ｓ５１で、ＩＰｖ４およびＩＰｖ６双方に対してネットワーク設定を行っているため、Ｓ５３では、ＵＰｎＰデバイス１は、ＩＰｖ４とＩＰｖ６双方のアドレス体系でＵＰｎＰサービスを開始する。
Ｓ５４で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＩＰｖ４のアドレス体系のネットワークでSSDP:BYEBYEメッセージをＵＰｎＰコントロールポイント２へ送信する。
【００６４】
図９（ａ）は、図８のＳ５４でＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５がＩＰｖ４で送信するSSDP:BYEBYEメッセージの記述内容を示す。
Ｓ５４で送信されたSSDP:BYEBYEメッセージは、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５により受信される。ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤとデバイス管理テーブル４１に記録されたＵＵＩＤ４３とを比較する（図７のＳ７９）。
SSDP:BYEBYEメッセージに記述されるＵＰｎＰデバイス１のＵＵＩＤは、図９（ａ）の「ＵＳＮ：ｕｕｉｄ：」に続く文字列「ａｄｃｄ・・・６ｂｆ６」で表される。一方、この時点で、デバイス管理テーブル４１は初期状態でありエントリーが記録されていない。
このため、比較の結果、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤとデバイス管理テーブル４１のＵＵＩＤ４３とは一致しないため、デバイス管理テーブル４１に削除すべきエントリーはなく、デバイス管理テーブル４１は更新されない。
【００６５】
図８に戻り、Ｓ５４に続きかつＳ５５の前に、Ｓ５９で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＩＰｖ６のアドレス体系のネットワークでSSDP:BYEBYEメッセージをＵＰｎＰコントロールポイント２へ送信する。
図９（ｂ）は、図８のＳ５９でＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５がＩＰｖ６で送信するSSDP:BYEBYEメッセージの記述内容を示す。
Ｓ５９で送信されたSSDP:BYEBYEメッセージは、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５により受信される（図７のＳ７３：Ｎ、Ｓ７８：Ｙ）。ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤとデバイス管理テーブル４１に記録されたＵＵＩＤ４３とを比較する（図７のＳ７９）。
この時点でも、デバイス管理テーブル４１は初期状態でありエントリーが記録されていない。このため、比較の結果、受信されたSSDP:BYEBYEメッセージ中のＵＵＩＤとデバイス管理テーブル４１のＵＵＩＤ４３とは一致しないため、デバイス管理テーブル４１に削除すべきエントリーはなく、デバイス管理テーブル４１は更新されない。
なお、図８において、Ｓ５４とＳ５９の順序は逆であってもよい。
【００６６】
Ｓ５９の後、Ｓ５５で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＩＰｖ４のアドレス体系のネットワークでSSDP:ALIVEメッセージをＵＰｎＰコントロールポイント２へ送信する。
図１０（ａ）は、図８のＳ５５でＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５がＩＰｖ４で送信するSSDP:ALIVEメッセージの記述内容を示す。
Ｓ５５で送信されたSSDP:ALIVEメッセージは、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５により受信される（図７のＳ７３：Ｙ）。
ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:ALIVEメッセージが、ＨＴＴＰ  ＧＥＴコマンドを送信する対象か否かを判定する（Ｓ７４）。
【００６７】
Ｓ５５で受信されたSSDP:ALIVEメッセージに記述されるＵＰｎＰデバイス１のＵＵＩＤは、図１０（ａ）の「ＵＳＮ：ｕｕｉｄ：」に続く文字列「ａｄｃｄ・・・６ｂｆ６」で表される。また、Ｓ５５で受信されたSSDP:ALIVEメッセージに記述されるＵＰｎＰデバイス１のＮＬＳは、図１０（ａ）の「０１−ＮＬＳ：」に続く文字列「５０８ｅ・・・５ａｅ０」で表される。一方、この時点で、デバイス管理テーブル４１は初期状態でありエントリーが記録されていない。
このため、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:ALIVEメッセージ中のＵＵＩＤおよびＮＬＳの双方とも、デバイス管理テーブル４１のＵＵＩＤ４３とＮＬＳ４４に一致しないと判定する（図７の７４：Ｙ）。
図８に戻り、Ｓ５６で、ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＵＰｎＰデバイス１へ、ＨＴＴＰ  ＧＥＴコマンドを送信する（図７のＳ７５）。Ｓ５６で送信されるＨＴＴＰ  ＧＥＴコマンドは、Ｓ５５で受信された図１０（ａ）のSSDP:ALIVEメッセージ中の「Ｌｏｃａｔｉｏｎ：」に続く文字列「１９２．１６８．１．１０」を宛先として送信される。
Ｓ５６で送信されたＨＴＴＰ  ＧＥＴコマンドは、ＵＰｎＰデバイス１により受信されたと判定される（図６のＳ８：Ｙ）。
【００６８】
Ｓ５７で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＨＴＴＰ  ＧＥＴコマンドに応答して、ＵＰｎＰデバイス１のデバイスディスクリプションを、サービス内容として、ＵＰｎＰコントロールポイント２へ送信する（図６のＳ９）。
ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＵＰｎＰデバイス１からデバイスディスクリプションを受信し、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、デバイス管理テーブル４１を更新する（図７のＳ７６）。
この段階で、デバイス管理テーブル４１には、図４（ａ）に示すように、ＵＰｎＰデバイス１のＩＰｖ４のアドレス体系のエントリーが追加される。
Ｓ５８で、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、デバイス管理テーブル４１のデバイス固有情報４５を参照して、ＩＰｖ４のアドレス体系でＵＰｎＰデバイス１のサービスディスクリプションを取得可能な状態となっている。すなわち、Ｓ５８で、ＵＰｎＰコントロールポイント２は、ＩＰｖ４のアドレス体系でのサービス利用可能状態に遷移する。
【００６９】
Ｓ６１で、ＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５は、ＩＰｖ６でSSDP:ALIVEメッセージをＵＰｎＰコントロールポイント２へ送信する。
図１０（ｂ）は、図８のＳ６１でＵＰｎＰデバイス１のネットワークＩ／Ｆ１０５がＩＰｖ６で送信するSSDP:ALIVEメッセージの記述内容を示す。
ＵＰｎＰコントロールポイント２のネットワークＩ／Ｆ２０５は、ＵＰｎＰデバイス１からSSDP:ALIVEメッセージを受信する（図７のＳ７３：Ｙ）。ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:ALIVEメッセージがＨＴＴＰ  ＧＥＴコマンドの対象か否かを判定する（Ｓ７４）。
【００７０】
Ｓ６１で受信されたSSDP:ALIVEメッセージに記述されるＵＰｎＰデバイス１のＵＵＩＤは、図１０（ｂ）の「ＵＳＮ：ｕｕｉｄ：」に続く文字列「ａｄｃｄ・・・６ｂｆ６」で表される。また、Ｓ６１で受信されたＳＳＤＰ：ＡＬＩＶＥメッセージに記述されるＵＰｎＰデバイス１のＮＬＳは、図１０（ｂ）の「０１−ＮＬＳ：」に続く文字列「５０８ｅ・・・５ａｅ０」で表される。
【００７１】
一方、デバイス管理テーブル４１には、図４（ａ）に示すように、図７のＳ７６でＵＰｎＰデバイス１のエントリーが追加されている。このため、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:ALIVEメッセージのＵＵＩＤおよびＮＬＳ双方に一致するＵＵＩＤ４３およびＮＬＳ４４があると判定する。すなわち、ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、受信されたSSDP:ALIVEメッセージがＨＴＴＰ  ＧＥＴコマンドの対象でないと判定する（図７のＳ７４：Ｎ）。
次に、ＵＰｎＰデバイス１のＣＰＵ２０１は、デバイス管理テーブル４１に、ＩＰｖ６のアドレス体系のエントリーを追加し、図４（ａ）に示すデバイス管理テーブル４１から図４（ｂ）に示すデバイス管理テーブル４７に更新する。
【００７２】
本実施形態では、図８のＳ６１でＵＰｎＰデバイス１からＩＰｖ６のSSDP:ALIVEメッセージを受信しても、ＵＰｎＰコントロールポイント２は、これに続いて、ＨＴＴＰ  ＧＥＴコマンドをＵＰｎＰデバイス１に送信しない。したがって、ＵＰｎＰデバイス１も、ＨＴＴＰ  ＧＥＴコマンドに応答してデバイスディスクリプションをＵＰｎＰコントロールポイント２に送信しない。ＵＰｎＰコントロールポイント２のＣＰＵ２０１は、ＩＰｖ４のアドレス体系で同一のサービスがすでに利用可能であることが、デバイス管理テーブル４１から判定可能である。このため、ＩＰｖ６で同一のサービスについて、ＨＴＴＰ  ＧＥＴコマンドを送信してデバイスディスクリプションを重ねて取得する必要がないからである。
【００７３】
以上説明したように、本実施形態では、ＵＰｎＰデバイスは、複数の異なるアドレス体系で同一のサービスをＵＰｎＰコントロールポイントに送信する際に、存在メッセージ（ALIVE）に先だって全てのアドレス体系で不在メッセージ（BYEBYE）を送信する。また、ＵＰｎＰコントロールポイントは、デバイス管理テーブルを参照して、同一ＵＰｎＰデバイスからの同一サービスのエントリーがあるか否かを判定し、同一サービスのエントリーがある場合には、ＨＴＴＰ  ＧＥＴコマンドを送信しない。
これにより、最初のアドレス体系でＵＰｎＰデバイスから送信されたサービスについて、ＵＰｎＰデバイスが他のアドレス体系についてネットワークから離脱することで、不測にサービス利用不可状態へ遷移してしまうことが有効に防止できる。また、最初のアドレス体系でＵＰｎＰデバイスから送信されたサービスが、一時的に利用不可状態に遷移してしまうことがないため、サービスの利便性が向上する。
さらに、複数の異なるアドレス体系のいずれかについて、同一サービスについてサービス受信のためのデバイスの情報が所得できている場合には、ＨＴＴＰ  ＧＥＴコマンドの送信を行わないため、サービス提供における通信効率が向上する。
【００７４】
また、本発明は、上述の実施形態の一部または１以上の機能を実現するプログラムによっても実現可能である。すなわち、そのプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ（またはＣＰＵやＭＰＵ等）における１つ以上のプロセッサがプログラムを読出し実行する処理により実現可能である。また、そのプログラムをコンピュータ可読な記録媒体に記録して提供してもよい。
また、コンピュータが読みだしたプログラムを実行することにより、実施形態の機能が実現されるものに限定されない。例えば、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
【符号の説明】
【００７５】
１…ＵＰｎＰデバイス、２…ＵＰｎＰコントロールポイント、３…アクセスポイント、４…ＵＰｎＰネットワーク、１０１…ＣＰＵ、１０２…ＲＯＭ、１０３…ＲＡＭ、１０４…操作部、１０５…ネットワークＩ／Ｆ、１０６…ドライブ、１０７…表示部、１０８…光学部、１０９…符号化・復号化部、１１０…タイマ
【図１】
2020161874.tif 000003
【図２】
2020161874.tif 000004
【図３】
2020161874.tif 000005
【図４】
2020161874.tif 000006
【図５】
2020161874.tif 000007
【図６】
2020161874.tif 000008
【図７】
2020161874.tif 000009
【図８】
2020161874.tif 000010
【図９】
2020161874.tif 000011
【図１０】
2020161874.tif 000012