以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。また、本実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
<<実施形態1>>
(ネットワーク構成)
本発明の第1の実施形態(実施形態1)について、図面を参照して説明する。図1は、本実施形態に係る情報処理システム(ネットワークシステム)のネットワーク構成図である。
LAN100は、情報の転送経路となるネットワークであり、第1通信路としてのLAN(Local Area Network)である。LAN100は、LANに限らず、WAN(Wide Area Network)、それらの複合でもよい。本実施形態では、LAN100は、Wireless LAN(無線LAN)を利用しているが、これに限られない。例えば、アドホックネットワーク、有線LAN、Bluetooth(登録商標)、Zigbee(登録商標)、UWBなどでもよい。
代理サービス装置101は、LAN100に接続したUPnPのサービスを代理(中継)する代理機能を持つ情報処理装置である。本実施形態では、サービスとしてUPnPを挙げたが、同様に遠隔操作を行うサービスおよびそれらの複合のサービスについても適用できることは、言うまでもない。
UPnPサービス提供装置102は、LAN100に接続し、UPnPのサービスを提供する機能を持つ装置である。UPnPコントロールポイント装置103は、LAN100に接続し、UPnPのサービスを受け取って操作する機能を持つ制御装置である。
Bluetooth104は、代理サービス装置101とUPnPサービス提供装置102のBluetooth接続のネットワークであり、本実施形態では第2通信路として機能する。Bluetooth104は、Bluetoothを利用しているがこれに限らず、例えば、アドホックネットワーク、有線LAN、Wireless LAN、Zigbee、UWBなどで構成してもよい。
本実施形態では、LAN100とBluetooth104は、異なる通信手段を用いているがこれに限られない。すなわち、同一の通信手段の異なるパラメータ、および、モードなどでも実施できることは言うまでもない。
本実施形態では、UPnPサービス提供装置102からLAN100経由でUPnPコントロールポイント装置103に直接提供していたUPnPサービスを、Bluetooth104と代理サービス装置101経由で提供するように切り替える。これにより、LAN100に接続された悪意のある装置からのUPnPサービス提供装置102に対する不正操作(スリープ解除など)を排除することができる。
(代理サービス装置のハードウェア構成)
図2は、本実施形態に係る代理サービス装置101のハードウェア構成図である。本実施形態では、代理サービス装置101は、PC(パーソナルコンピュータ)、ワークステーション、ノートブックPC、パームトップPCなどのコンピュータシステムにより実現される。ただし、代理サービス装置101は、コンピュータを内蔵したテレビ等の各種家電製品、通信機能を有するゲーム機、携帯電話、PHS等を含む他のネットワーク制御装置と通信するための通信機能を有する端末、または、これらの組合せによっても実現できる。
201はコンピュータシステムの制御をつかさどる中央演算装置(以下CPUと記す)である。202はランダムアクセスメモリ(書き込み可能メモリ、以下RAMと記す)であり、CPU201の主メモリ、実行プログラムの領域や該プログラムの実行エリア、並びにデータエリアとして機能する。
203は、CPU201の動作処理手順を記録しているリードオンリーメモリー(読み出し専用メモリ、以下ROMと記す)である。ROM203には、コンピュータシステムの機器制御を行うシステムプログラムである基本ソフト(OS)を記録したプログラムROMとシステムを稼動するために必要な情報などが記録されたデータROMがある。なお、RAM202やROM203の代わりに後述のHDD209を用いてもよい。後述する各種動作は、ROM203等のコンピュータ読取可能な記録媒体に格納されたプログラムをCPU201が実行することにより実行される。
204は、ネットワークインタフェース(以下NETIFと記す)である。NETIF204は、ネットワークを介してコンピュータシステム間のデータ転送を行うための制御や接続状況の診断を行う。NETIFはLAN100(第1通信路)に接続するための第1通信手段と、Bluetooth(第2通信路)に接続するための第2通信手段として機能する。
205は、ビデオRAM(以下VRAMと記す)であり、コンピュータシステムの稼動状態を示す後述するCRT206の画面に表示される画像を展開し、その表示の制御を行う。206は、コンピュータシステムの処理結果などを表示する表示装置であって、例えば、CRT(陰極線管)ディスプレイや液晶パネルディスプレイ等のディスプレイである。以下、CRTと記す。
207は、外部入力装置208からの入力信号を制御するコントローラである。以下、KBC(キーボードコントローラ)と記す。208は、コンピュータシステムの利用者がコンピュータシステムに対して行う操作を受け付けるための外部入力装置であり、例えば、キーボードなどである。以下、KBと記す。
209は、記憶装置を示し、例えば、ハードディスクなどである。アプリケーションプログラムや、画像情報などのデータ保存用に用いられる。以下、HDD209と記す。210は、外部入出力装置であって、例えばフレキシブルディスクドライブ(FDD)、CD−ROMドライブなどのリムーバブルを入出力するものであり、上述したアプリケーションプログラムの媒体からの読み出しなどに用いられる。以下、FDDと記す。なお、HDD209に格納するアプリケーションプログラムやデータをFDD210に格納して使用することも可能である。200は、上述した各ユニット間の接続するための入出力バス(アドレスバス、データバス、及び制御バス)である。
(UPnPサービス提供装置)
本実施形態では、UPnPサービス提供装置102をデジタルカメラとして説明する。図3は、UPnPサービス提供装置102の構成図を表している。UPnPサービス提供装置102は、デジタルカメラ以外に限られず、ネットワーク制御装置と通信するための通信機能を有するどのような端末でも実現可能である。例えば、PC、ワークステーション、ノートブックPC、パームトップPC、コンピュータを内蔵したテレビ等の各種家電製品、通信機能を有するゲーム機、携帯電話、PHS、または、これらの組合せによっても実現可能である。
UPnPサービス提供装置102において、300は被写体の光学像を撮像する撮像部である。301は画像処理部であり、撮像部300から出力された撮像画像を所定フォーマットの画像データに変換し、画像データに透かしデータを付与する。
302は符号化/復号化部であり、画像処理部301から出力された画像データに対して所定の高能率符号化(例えば、DCT変換、量子化後に可変長符号化)を行う。符号化/復号化部302はまた、記録再生部303から再生された圧縮画像データを伸長復号化し、その画像データを画像処理部301に供給する。
また、303は圧縮符号化された画像データを不図示の記録媒体に記録再生する記録再生部であり、304はUPnPサービス提供装置102における処理動作を指示する操作部である。305は制御部であり、UPnPサービス提供装置102を構成する各処理部の動作を制御する。制御部305は、マイクロコンピュータと所定のプログラムコードを記憶可能なメモリとを具備し、UPnPサービスに関する処理、後述の各種動作なども行う。
306は撮像部300にて撮像された画像をEVF(Electric View Finder)や液晶パネル等を用いて表示する表示部である。307は撮像部300にて撮像された画像データなどを通信するインタフェースである。
更に、308はUPnPサービス提供装置102の機能に関する情報が格納されているROMである。本実施形態のUPnPサービス提供装置102は、画像データを符号化する技術として、例えば、JPEG(Joint Photographic Experts Group)方式を用いて圧縮符号化する。
309はネットワークインタフェース(NETIF)である。NETIF309は、ネットワークを介して情報処理装置間のデータ転送を行うための制御や接続状況の診断を行う。
(代理サービス装置のモジュール構成)
図4(a)は、本実施形態の代理サービス装置101のモジュール構成図である。401は第1通信手段としてのWireless LAN制御部であり、LAN100に接続され、Wireless LANの通信処理、および、TCP/IPの通信処理を行う。402は第2通信手段としてのBluetooth制御部であり、Bluetooth104に接続され、Bluetoothの通信処理、および、TCP/IP通信処理を行う。
403はSSDP処理部であり、Wireless LAN制御部401、および、Bluetooth制御部402から、対応するパケットを受信し、SSDPの処理を行う。ここで、SSDPはSimple Service Discovery Protocolの略語であり、ネットワーク上のUPnPデバイスを探索・発見するプロトコルである。SSDP処理部403はまた、SSDPを利用して、サービスの発見、サービスの発見に対する応答、サービスの広告などを行う。本実施形態では、SSDPを利用しているが、これに限らず、ウェブサービスのWS−Discoveryなどの別の手段を利用しても実現できることは言うまでもない。
404はSOAP処理部であり、Wireless LAN制御部401、および、Bluetooth制御部402から、対応するパケットを受信し、SOAPの処理を行う。ここで、SOAPはSimple Object Access Protoclの略語であり、ソフトウェア同士がメッセージ(オブジェクト)を交換するためのプロトコルである。SOAP処理部404はまた、SOAPを利用して、サービスの実行、サービスの受け付けなどを行う。本実施形態では、SOAPを利用しているが、これに限らず、リモートプロシージャコール(RPC)など遠隔のオブジェクトを実行する別の手段を利用してもよいことは言うまでもない。
405は、Wireless LAN制御部401、および、Bluetooth制御部402から、対応するパケットを受信し、GENAの処理を行うGENA処理部である。ここで、GENAはGeneral Event Notification Architectureの略語であり、イベント情報のコントロールを行うためのプロトコルである。GENAを利用して、イベントの通知、イベントのサブスクライブなどを行う。本実施形態では、GENAを利用しているが、これに限らず、WS−Eventing、WS−Notificationなどの別の手段を利用しても実現できることは言うまでもない。
406は代理制御部である。代理制御部406は、SSDP処理部403、SOAP処理部404、および、GENA処理部405を管理して、サービスを代理するかの判断を行う。
407は代理処理部であり、発見したサービスを代理するためのメッセージ作成などを行う。本実施形態における代理処理部407はUPnP処理の代理を行うが、これに限らず、これまでに説明した様々な機能の複合の代理を行ってもよい。本実施形態における代理処理部407は、UPnPサービスを一度全て受信してから、再度送信する代理の方法であるが、これに限らず、メッセージの書き換え(IPアドレスなど)によって代理を行っても良い。また、代理処理部407は、UPnPサービス提供装置102のサービスの情報に関するキャッシュを保持しても良い。
408はUUID判断部であり、Wireless LAN制御部を通じて発見したサービスのUUIDが、Bluetooth制御部を通じて発見したサービスのUUIDと一致しているか判断する。なお、UUIDはUniversal Unique Identifier(汎用一意識別子)の略語である。本実施形態ではUPnPサービスを代理する構成を説明しているため、UUID判断部408はUUIDを判断しているが、これに限らず、他の一意の識別子でもよい。
409はUUID記憶部である。UUID記憶部409は、Wireless LAN制御部を通じて発見したサービスのUUID、および、Bluetooth制御部を通じて発見したサービスのUUIDを管理する。
(UPnPサービス提供装置のモジュール構成)
図5(a)は、本実施形態のUPnPサービス提供装置102のモジュール構成図である。501はWireless LAN制御部であり、LAN100に接続され、Wireless LANの通信処理、および、TCP/IPの通信処理を行う。502はBluetooth制御部であり、Bluetooth104に接続され、Bluetoothの通信処理、および、TCP/IP通信処理を行う。
503はSSDP処理部であり、Wireless LAN制御部501、および、Bluetooth制御部502から、対応するパケットを受信し、SSDPの処理を行う。SSDP処理部503はまた、SSDPを利用して、サービスの発見、サービスの発見に対する応答、サービスの広告などを行う。本実施形態では、SSDPを利用しているが、これに限らず、WS−Discoveryなどの別の手段を利用しても実現できることは言うまでもない。
504はSOAP処理部であり、Wireless LAN制御部501、および、Bluetooth制御部502から、対応するパケットを受信し、SOAPの処理を行う。SOAP処理部504は、SOAPを利用して、サービスの実行、サービスの受け付けなどを行う。本実施形態では、SOAPを利用しているが、これに限らず、リモートプロシージャコールなど遠隔のオブジェクトを実行する別の手段を利用しても実現できることは言うまでもない。
505はGENA処理部であり、Wireless LAN制御部501およびBluetooth制御部502から対応するパケットを受信し、GENAの処理を行う。GENA処理部505はまた、GENAを利用して、イベントの通知、イベントのサブスクライブなどを行う。本実施形態では、GENAを利用しているが、これに限らず、WS−Eventing、WS−Notificationなどの別の手段を利用しても実現できることは言うまでもない。
506はサービス制御部である。サービス制御部506は、SSDP処理部503、および、SOAP処理部504、および、GENA処理部505を管理して、UPnP処理を行う。
(代理サービス装置におけるサービス提供開始処理)
図6は、代理サービス装置101における代理サービスの開始処理の流れを示すフローチャートである。代理サービス装置101、および、UPnPサービス提供装置は、LAN100のみに接続している。
ステップS601において、代理制御部406は、UPnPサービス提供装置102を探索することを決定する。代理制御部406は、SSDP処理部403に対して、LAN100上で、UPnPサービス提供装置102を探索するように依頼する。SSDP処理部403は、Wireless LAN処理部401を通じて、LAN100上に、UPnPサービス提供装置102を探索するSSDPのm−searchメッセージを送信する。UPnPサービス提供装置102は、SSDPのm−searchメッセージを受け取ると、代理サービス装置101にSSDPのresponseメッセージを返信する。SSDP処理部403は、Wireless LAN制御部401を通じて、UPnPサービス提供装置102からSSDPのresponseメッセージを受信する。これにより、SSDP処理部403は、UPnPサービス提供装置102を発見できる。SSDP処理部403は、UPnPサービス提供装置102の探索の結果を代理制御部406に送信する。代理制御部406が、UPnPサービス提供装置102の探索の結果から、発見したと判断すると(ステップS601でYES)、UUID記憶部409にUPnPサービス提供装置102のUUIDを保存し、ステップS602に進む。代理制御部406が、UPnPサービス提供装置102の探索の結果から、未発見と判断すると(ステップS601でNO)、処理を終了する。SSDP処理部403は、UPnPサービス提供装置102から、SSDPのaliveメッセージを受信することで、UPnPサービス提供装置102を発見してもよい。
ステップS602において、代理制御部406は、SOAP処理部404に、UPnPサービス提供装置102宛にUPnPサービスの代理が必要か否かの確認メッセージの送信を依頼する。SOAP処理部404は、Wireless LAN制御部401を通じて、LAN100上のUPnPサービス提供装置102に確認メッセージを送信する。UPnPサービス提供装置102は、代理の必要があるか否かの判断を行い、結果を返信する。SOAP処理部404は、UPnPサービス提供装置102の結果を受信し、代理制御部406に送信する。代理制御部406は、結果に応じて、UPnPサービス提供装置102の代理が必要か否かの判断を行う。代理制御部406が、UPnPサービス提供装置102の代理が必要であると判断した場合(ステップS602でYES)、ステップS603に進む。代理制御部406が、UPnPサービス提供装置102の代理が必要でないと判断した場合(ステップS602でNO)、処理を終了する。
ステップS603において、代理制御部406は、SOAP処理部404にBluetooth104へ接続するためのパラメータを送信する。SOAP処理部404は、Wireless LAN制御部401を通じて、UPnPサービス提供装置102にパラメータを送信し、ステップS604に進む。
ステップS604において、代理制御部406は、Bluetooth制御部402を利用して、Bluetooth104の接続開始処理を行う。そしてステップS605に進む。
ステップS605において、代理制御部406は、Bluetooth制御部402を通じて、UPnPサービス提供装置102と接続できたか否かの判断を行う。代理制御部406は、接続できたと判断すると(ステップS605でYES)ステップS606に進む。代理制御部406は、接続できなかったと判断すると(ステップS605でNO)処理を終了する。
UPnPサービス提供装置102は、Bluetoothによる接続が確立すると、WirelessLANによる接続に対しては通信終了(LAN100からの離脱)を示すbyebyeメッセージを送信する。そこで、ステップS606において、代理サービス装置101の代理制御部406は、LAN100からWireless LAN制御部101を通じて、SSDP処理部403で受信したSSDPのbyebyeメッセージの判断を行う。代理制御部406は、UUID記憶部409に記憶されているUPnPサービス提供装置102のUUIDと合致するSSDPのbyebyeメッセージを受信したかの判断を行う。代理制御部406は、UPnPサービス提供装置102のbyebyeメッセージであると判断すると(ステップS606でYES)、ステップS607に進む。代理制御部406は、UPnPサービス提供装置102のbyebyeメッセージでないと判断すると(ステップS606でNO)、処理を終了する。なお、代理制御部406が処理を実行する前に、byebyeメッセージを受信している場合について説明する。この場合、SSDP処理部403は、UPnPサービス提供装置102のSSDPのalive/byebyeを管理しているので、byebyeメッセージを受信していることを判断することができる。
ステップS607において、代理制御部406は、SSDP処理部403に、Bluetooth104上でUPnPサービス提供装置102を探索するように依頼する。SSDP処理部403は、Bluetooth制御部102を通じて、SSDPのm−searchメッセージを利用して、UPnPサービス提供装置102を探索する。SSDP処理部403は、探索結果を代理制御部406に送信する。代理制御部406は、UUID判断部408を利用して、UUID記憶部409に記憶されたUUIDと同一のものがあるかの判断を行う。代理制御部406は、同一のものがあると判断すると、UPnPサービス提供装置102を発見したと判断する。代理制御部406は、UPnPサービス提供装置102を発見したと判断すると(ステップS607でYES)、ステップS608に進む。代理制御部406は、UPnPサービス提供装置102を発見できなかったと判断すると(ステップS607でNO)、処理を終了する。なお、SSDP処理部403は、UPnPサービス提供装置102から、SSDPのaliveメッセージを受信することで、UPnPサービス提供装置102を発見してもよい。また、代理制御部406は、SSDP処理部403にUUID記憶部409に記憶されたUUIDを鍵にSSDPのm−searchを実行させることで発見してもよい。
ステップS608において、代理制御部406は、代理処理部407にUPnPサービス提供装置102のUPnPサービスの代理を依頼し、処理を終了する。代理処理部407は、SSDP処理部403、SOAP処理部404、GENA処理部405を利用し、UUID記憶部409に記憶された代理がyesのもののみ、UPnPサービスの代理を実行する。この時のUUIDは、UPnPサービス提供装置のUUIDと同じものを利用する。代理処理部407は、Bluetooth104側にはUPnPのコントロールポイントとして、LAN100側にはUPnPサービスとして処理を行う。
なお、図6では、UPnPサービスの代理処理を行う際に、同じUUIDを使用する場合を説明したがこれに限られない。例えば、代理サービス装置101がマッピングを持つことで、異なるUUIDを利用することもできる。
図7(a)は、図6におけるステップS601におけるUUID記憶部409のエントリを例示する図である。図7(a)において、701は装置やサービスのUUIDであり、702は接続中のネットワークである。703はUUID701で識別される装置やサービスの状態であり、704は代理サービスをするか否かに関する情報である。図7(a)の例では、uuid:98765432-1234-abcd-1234-000011112222は、LAN100に接続されたUPnP機器であり、代理サービスを実行しない状態である。uuid:816c5df0-c2ed-11da-9216-0008741e9395は、UPnPサービス提供装置102であり、代理サービスをするか否か未定の状態である。
図7(b)は、図6におけるステップS602において、代理の必要がある場合のUUID記憶部409のエントリを例示する図である。UPnPサービス提供装置102を示すuuid:816c5df0-c2ed-11da-9216-0008741e9395の代理サービスの項目がyesになり、代理サービスを行う状態になる。
図7(c)は、図6におけるステップS606において、UPnPサービス提供装置102のbyebyeを受信した場合のUUID記憶部409のエントリを例示する図である。UPnPサービス提供装置102を示すuuid:816c5df0-c2ed-11da-9216-0008741e9395の状態の項目703がbyebyeになり、LAN100から離脱した状態になる。
図7(d)は、図6におけるステップS607において、UPnPサービス提供装置102のaliveを受信した場合のUUID記憶部409のエントリを例示する図である。UPnPサービス提供装置102を示すuuid:816c5df0-c2ed-11da-9216-0008741e9395が、Bluetooth104上で発見され、エントリに追加された状態になる(1001)。
このように、エントリを管理することで、LAN100に接続したUPnPサービス提供装置102とBluetooth104に接続したUPnPサービス提供装置102が同じものであることがわかる。byebye状態になったエントリは、一定時間後消去されても良い。
(UPnPサービス提供装置におけるサービス提供開始処理)
次に、UPnPサービス提供装置102におけるサービス提供開始処理について図8を参照して説明する。図8は、UPnPサービス提供装置102におけるサービス提供の開始処理の流れを示すフローチャートである。
ステップS1101において、サービス制御部506は、SOAP制御部503を利用し、Wireless LAN制御部501を通じて、代理サービス装置101からUPnPサービスの代理の提案を受信する。UPnPサービスの代理の提案は、代理サービス装置101におけるステップS602で送信されたものである。サービス制御部506は、代理サービス装置101にUPnPサービスの代理を依頼すると判断した場合(ステップS1101でYES)、ステップS1102に進む。サービス制御部506は、代理サービス装置101にUPnPサービスの代理を依頼しないと判断した場合(ステップS1101でNO)、処理を終了する。
ステップS1102において、サービス制御部506は、SOAP制御部503を利用し、Wireless LAN制御部を通じて、代理サービス装置101からBlutooth104のパラメータを受信する。サービス制御部506はBluetooth104のパラメータを記憶領域に保存し、ステップS1103に進む。Bluetooth104のパラメータは、図6のステップS603で代理サービス装置101により送信されたものである。
ステップS1103において、サービス制御部506は、Bluetooth制御部502を利用して、Bluetooth104へ接続を開始する。そして、ステップS1104に進む。
ステップS1104において、サービス制御部506は、Bluetooth制御部502を利用して、UPnPサービス提供装置102が代理サービス装置101とBluetooth104で接続されたか否かの確認を行う。サービス制御部506は、代理サービス装置101とBluetooth104で接続されたと判断すると(ステップS1104でYES)、ステップS1105に進む。サービス制御部506は、代理サービス装置101とBluetooth104で接続されていないと判断すると(ステップS1104でNO)処理を終了する。
ステップS1105において、サービス制御部506は、SSDP処理部503、SOAP処理部504、および、GENA処理部505に対して、LAN100に公開しているUPnPサービスに関連する機能の停止を要求する。SSDP処理部503は、Wireless LAN制御部501を通じて、LAN100にSSDPのbyebyeメッセージを送信する。SOAP処理部506は、Wireless LAN制御部501を通じたLAN100に対するSOAP処理を停止する。GENA処理部507は、Wireless LAN制御部501を通じたLAN100に対するGENA処理を停止する。サービス制御部506は、LAN100に公開しているUPnPサービスに関連する機能が停止したと判断すると、ステップS1106に進む。
ステップS1106において、サービス制御部506は、SSDP処理部503、SOAP処理部504、および、GENA処理部505に対して、Bluetooth104にUPnPサービスを公開するように要求する。要求を受けたSSDP処理部503は、Bluetooth制御部502を通じて、Bluetooth104にSSDPのaliveメッセージを送信する。SOAP処理部504は、Bluetooth制御部502を通じて、Bluetooth104にSOAP処理を開始する。GENA処理部505は、Bluetooth制御部502を通じて、Bluetooth104にGENA処理を開始する。サービス制御部506は、Bluetooth104上でUPnPサービスが起動したと判断すると、ステップS1107に進む。
ステップS1107において、サービス制御部506は、SSDP処理部503を利用し、Wireless LAN制御部101を通じて、LAN100上でSSDPのaliveメッセージを取得する。サービス制御部506は、取得したaliveメッセージに含まれるUUIDが、UPnPサービス提供装置102のUUIDと同一であるかの確認を行う。サービス制御部506が、一定時間内に同一のUUIDを確認できたと判断すると(ステップS1107でYES)、ステップS1108に進む。サービス制御部506が、一定時間内に同一のUUIDを確認できなかったと判断すると(ステップS1107でNO)、ステップS1109に進む。
ステップS1108において、サービス制御部506は、Wireless LAN制御部501を利用して、LAN100の切断を行う。そして、処理を終了する。
ステップS1109において、サービス制御部506は、SSDP処理部503、SOAP処理部504、および、GENA処理部505に対して、Bluetooth104に公開しているUPnPサービスに関連する機能の停止を要求する。SSDP処理部503は、Bluetooth制御部502を通じて、Bluetooth104にSSDPのbyebyeメッセージを送信する。SOAP処理部506は、Bluetooth制御部502を通じたBluetooth104に対するSOAP処理を停止する。GENA処理部507は、Bluetooth制御部502を通じたBluetooth104に対するGENA処理を停止する。サービス制御部506は、Bluetooth104に公開しているUPnPサービスに関連する機能が停止したと判断すると、ステップS1110に進む。
ステップS1110において、サービス制御部506は、SSDP処理部503、SOAP処理部504、および、GENA処理部505に対して、LAN100にUPnPサービスを公開するように要求する。要求を受けたSSDP処理部503は、Wireless LAN制御部501を通じて、LAN100にSSDPのaliveメッセージを送信する。SOAP処理部504は、Wireless LAN制御部501を通じて、LAN100にSOAP処理を開始する。GENA処理部505は、Wireless LAN制御部501を通じて、LAN100にGENA処理を開始する。サービス制御部506は、LAN100上でUPnPサービスが起動したと判断すると、ステップS1111に進む。
ステップS1111において、サービス制御部506は、Bluetooth制御部502を利用して、Bluetooth104の切断を行う。そして、処理を終了する。
(サービス提供開始処理のシーケンス)
次に、図6,図8のフローチャートを参照して説明した処理のシーケンスについて、図12を参照して説明する。図12は、実施形態1に係る代理サービス装置101とUPnPサービス提供装置102における代理サービス開始処理のシーケンスを示すシーケンスチャートである。
F1701において、代理サービス装置101がUPnPサービス提供装置102を発見する。F1702において、代理サービス装置101がUPnPサービス提供装置102にUPnPサービスの代理を行うかの確認を行う。F1703において、代理サービス装置101がUPnPサービス提供装置102にBluetooth104のパラメータを送信する。
F1704において、代理サービス装置101は、UPnPサービス提供装置102に送信したパラメータに応じて、Bluetooth104への接続を開始する。F1705において、UPnPサービス提供装置102は、代理サービス装置101から受信したパラメータに応じて、Bluetooth104への接続を開始する。F1706において、代理サービス装置101、および、UPnPサービス提供装置102は、Bluetooth104への接続を確認する。
F1707において、UPnPサービス提供装置102は、LAN100上のUPnPサービスを停止する。F1708において、UPnPサービス提供装置102は、LAN100上にSSDPのbyebyeメッセージを送信する。
F1709において、代理サービス装置101は、LAN100から受信したbyebyeメッセージがUPnPサービス提供装置102のUUIDを含むbyebyeメッセージであることを確認する。F1710において、UPnPサービス提供装置102は、Bluetooth104上で、UPnPサービスを起動する。F1711において、UPnPサービス提供装置102は、Bluetooth104上にSSDPのaliveメッセージを送信する。
F1712において、代理サービス装置101が、Bluetooth104から受信したaliveメッセージがUPnPサービス提供装置102のUUIDを含むbyebyeメッセージであることを確認する。F1713において、代理サービス装置101は、LAN100でUPnPサービス提供装置102の代理を行う代理サービスを開始する。
F1714において、代理サービス装置101は、LAN100上に、UPnPサービス提供装置102のUUIDを含むaliveメッセージを送信する。F1715において、代理サービス装置101は、UPnPサービス提供装置102は、LAN100上で、UPnPサービス提供装置102のUUIDを含むaliveメッセージを受信した事を確認する。F1716において、UPnPサービス提供装置102は、LAN100の切断を行う。
(代理サービス装置におけるサービス提供終了処理)
次に、代理サービス提供101におけるサービス提供の終了処理について図9を参照して説明する。図9は、代理サービス提供101におけるサービス提供の終了処理の流れを示すフローチャートである。
ステップS1201において、代理制御部406は、SSDP処理部403を利用して、Bluetooth制御部402を通じて、SSDPのbyebyeメッセージを受信し、ステップS1202に進む。
ステップS1202において、代理制御部406は、byebyeメッセージからUUIDを取り出し、取り出したUUIDをUUID判断部408に送信する。UUID判断部408は、UUID記憶部409と受信したUUIDの比較を行い、対応するUPnPサービスがあるかの判断を行う。UUID判断部408は、判断の結果を代理制御部406に送信する。代理制御部406が、受信した判断の結果から、UPnPサービスがあると判断する場合(ステップS1202でYES)、UUID記憶部409のエントリをbyebyeに変更し、ステップS1203に進む。代理制御部406が、受信した判断の結果から、UPnPサービスがないと判断すると(ステップS1202でNO)処理を終了する。
ステップS1203において、代理制御部406は、SSDP処理部403を利用して、Wireless LAN制御部401を通じて、SSDPのbyebyeメッセージを送信し、UPnPサービスを終了する。SSDPのbyebyeメッセージに含まれるUUIDは、サービス提供装置102のUUIDと同じである。
ステップS1204において、代理制御部406は、代理処理部407にUPnPサービス提供装置102のUPnPサービスの代理終了を指示し、ステップS1205に進む。代理制御部406は、UUID記憶部409に記憶されるUPnPサービス提供装置102に関連する情報を消去する。
ステップS1205において、代理制御部406は、UUID記憶部409からエントリを取得し、Bluetooth104のネットワークでaliveのものがあるかの判断を行う。代理制御部406は、Bluetooth制御部402から、Bluetooth接続された機器があるかの情報を取得してもよい。代理制御部406は、Bluetoothに接続された機器があると判断すると(ステップS1205でYES)、処理を終了する。代理制御部406は、Bluetoothに接続された機器がないと判断すると(ステップS1205でNO)、ステップS1206に進む。
ステップS1206において、代理制御部406は、Bluetooth制御部402にBluetooth104からの切断を指示する。Bluetooth制御部402は、Bluetooth104からの切断を行い、処理を終了する。
図10(a)は、ステップS1203におけてUPnPサービス提供装置102のbyebyeを受信した場合のUUID記憶部409のエントリを例示する図である。UPnPサービス提供装置102を示すuuid:816c5df0-c2ed-11da-9216-0008741e9395の状態の項目がbyebyeになり(1301)、Bluetooth104から離脱した状態になる。
図10(b)は、ステップS1204において、UUID記憶部409のエントリを例示する図である。UPnPサービス提供装置102(uuid:816c5df0-c2ed-11da-9216-0008741e9395)に関連する情報が消去された状態になる。
代理サービス装置101が、UPnPサービス提供装置102を再びLAN100に接続すると図6の処理を開始する。また、本実施形態において、UPnPサービス提供装置102に関連する情報を消去したが、UUID記憶部409に記憶されたままの状態にしてもよい。その場合、図9で示した状態からスタートすることもできることは言うまでもない。
(UPnPサービス提供装置におけるサービス提供終了処理)
次に、UPnPサービス提供装置102におけるサービス提供の終了処理について、図13を参照して説明する。図13は、UPnPサービス提供装置102におけるサービス提供の終了処理の流れを示すフローチャートである。
ステップS1801において、サービス制御部506は、SSDP処理部503を利用して、Bluetooth制御部502を通じてBluetooth104にSSDPのbyebyeメッセージを送信する。サービス制御部506は、UPnPサービスを停止するために、SSDP処理部503、SOAP処理部504、GENA処理部505に対して、処理の終了を指示し、ステップS1802に進む。
ステップS1802において、サービス制御部506は、Bluetooth制御部506にBluetooth104からの切断を指示する。Bluetooth制御部506は、Bluetooth104から切断し、処理を終了する。
(代理サービス提供終了処理のシーケンス)
次に、図9,図13のフローチャートを参照して説明した処理のシーケンスについて、図14を参照して説明する。図14は、代理サービス装置101とUPnPサービス提供装置102における代理サービス終了処理のシーケンスを示すシーケンスチャートである。
F1901において、UPnPサービス提供装置102は、Bluetooth104上に、SSDPのbyebyeメッセージを送信する。F1902において、代理サービス装置101は、受信したbyebyeメッセージに含まれるUUIDが代理を行っているUPnPサービスのUUIDのものであるかの判断を行う。F1903において、UPnPサービス提供装置102は、Bluetooth104上のUPnPサービスを停止する。F1904において、代理サービス装置101は、LAN100に、受信したUUIDを含むbyebyeメッセージを送信する。
F1905において、代理サービス装置101は、代理サービスを終了する。F1906において、代理サービス装置は、他の機器がBluetooth104に接続していないことを確認する。F1907において、代理サービス装置は、Bluetooth104から切断する。F1908において、UPnPサービス提供装置102は、Bluetooth104から切断する。
(通常のUPnPサービス)
次に、UPnPコントロールポイント装置103が、直接UPnPサービス提供装置102を利用する際の動作について図11(a)を参照して説明する。図11(a)は、UPnPコントロールポイント装置103が、直接UPnPサービス提供装置102を利用する際の動作概略を示す図である。
M1501において、UPnPコントロールポイント装置103は、UPnPサービス提供装置102にUPnPのSSDP、SOAP、GENAのメッセージを送信することができる。M1502において、UPnPコントロールポイント装置103は、UPnPサービス提供装置102からUPnPのSSDP、SOAP、GENAのメッセージを受信することができる。このように、UPnPサービス提供装置102が、LAN100し、代理サービス装置101を利用しない場合、UPnPの動作と同様になる。
(代理サービス装置を介したUPnPサービス)
次に、UPnPコントロールポイント装置103が、代理サービス装置101を介して、UPnPサービス装置102を利用する際の動作について図11(b)を参照して説明する。図11(b)は、UPnPコントロールポイント装置103が、代理サービス装置101を介して、UPnPサービス装置102を利用する際の動作概略を示す図である。
M1601において、UPnPコントロールポイント装置103は、代理サービス装置101にUPnPのSSDP、SOAP、GENAのメッセージを送信することができる。
M1602において、代理サービス装置101は、各種メッセージを受け取ると、SSDP処理部403、SOAP処理部404、GENA処理部405が処理を行い、代理処理部407が代理処理を行う。代理処理部407は、SSDP処理部403、SOAP処理部404、GENA処理部405を利用して、新たにUPnPサービス提供装置102宛てのSSDP、SOAP、GENAのメッセージを作成し、送信する。
M1603において、代理サービス装置101は、UPnPサービス提供装置102からSSDP、SOAP、GENAのメッセージを受信することができる。
M1604において、代理サービス装置101は、各種メッセージを受け取ると、SSDP処理部403、SOAP処理部404、GENA処理部405が処理を行い、代理処理部407が代理処理を行う。代理処理部407は、SSDP処理部403、SOAP処理部404、GENA処理部405を利用して、新たにUPnPコントロールポイント装置103に宛てたメッセージを作成し、送信する。
ここで、代理サービス装置101が、UPnPサービス提供装置102の代理を行う間の処理について説明する。これは、UPnPサービス提供装置102は、代理サービス101とBluetooth104によって接続している状態である。UPnPサービス提供装置102において、アクセスがないとき、サービス制御部506は、UPnP Low Power Deviceサービスなどの公知のスリープする機構を用いて、スリープすることができる。
代理サービス装置101において、UPnPサービス提供装置102へのアクセスがあった場合について説明する。この場合、代理制御部406は、UPnP Low Power Deviceコントロールポイントなどの公知のスリープを解除する機構を用いて、UPnPサービス提供装置102を起動させることができる。UPnP Low Power Deviceに限らず、WOL(Wake On LAN)と、それを広告、および、操作するメッセージの複合でも実現できる。
このように、UPnPサービス提供装置102は、スリープした際に代理サービス装置101とBluetooth104でのみ接続しているので、LAN100と隔離されている。そのため、LAN100に接続する悪意のあるUPnP Low Power Deviceコントロールポイントなどからのアクセスをネットワーク的に受け付けなくなり、安全になる。例えば、スリープへの移行やスリープの解除を悪意のある装置から受け付けることがなくなる。
更に、代理サービス装置101は、代理処理を行う際に、必要に応じてアクセス制限をしても良い。これにより、代理サービス装置101は、UPnPサービス提供装置102へのアクセスの種類を限定することができる。
以上のように、本実施形態の代理サービス装置101は、UPnPサービス提供装置102がLAN100に存在するか否かを判定し(第1判定)、存在する場合、Bluetooth104を介して該UPnPサービス提供装置102に接続する。そして、代理サービス装置101は、LAN100を介してUPnPコントロールポイント装置103と接続し、UPnPサービス提供装置102とUPnPコントロールポイント装置103との間のサービスを中継する。
従って、代理サービス装置101は、UPnPサービス提供装置をBluetooth104のネットワークに収容することができる。これにより、代理サービス装置101は、UPnPサービス提供装置102をLAN100から隠蔽することができる。このため、UPnPサービス提供装置102は、代理サービス装置101が代理したアクセスのみを受け付ければよくなり、安全になる。更に、本実施形態のように、Wireless LANからBluetoothに移動すると、電力消費を低減できる。
本実施形態の構成を利用することにより、代理サービス装置101は、UPnPサービス提供装置102がBluetooth104ネットワークに接続したことを確認してから、サービスを開始できる。UPnPサービス提供装置102は、途中でエラーが発生した場合、LAN100でサービスを再開することができる。UPnPコントロールポイント装置は、UPnPサービス提供装置102が一度ネットワークから離脱して、新たに参加したように見える。本実施形態によれば、UPnPコントロールポイント装置に既存のUPnPコントロールポイントの機能だけで、UPnPサービス提供装置102を隠蔽することができる。
また、本実施形態の代理サービス装置101は、UPnPサービス提供装置102がBluetooth104に存在するか否かを判定し(第2判定)、存在する場合に、Bluetooth104経由で該UPnPサービス提供装置102に接続する。このため、通信路を切り替えるべき状況を適切に判定して、代理サービスを提供することができる。
また、本実施形態の代理サービス装置101は、LAN100を介したサービスの提供をUPnPサービス提供装置102が停止したことを確認した後に、サービスを中継する。このため、LAN100を介したサービスの提供とBluetooth104を介したサービスの中継とが重複することを防止することができる。
また、本実施形態の代理サービス装置101は、Bluetooth104でUPnPサービス提供装置102に接続するために必要なパラメータを、LAN100を介してUPnPサービス提供装置102に送信する。このため、UPnPサービス提供装置102はBluetooth104に接続して代理サービスを利用するか否かを適切に決定することができる。
<<実施形態2>>
次に本発明の第2の実施形態(実施形態2)について、実施形態1との相違点を中心に図面を参照して説明する。実施形態2における代理サービス装置101は、UPnPサービスの代理を行う代理サービスを持っていることをLAN100上にUPnPを利用して公開する。本実施形態において、代理サービスの公開、および、利用はUPnPを利用して行うが、UPnPに限らず、WS−DiscoveryとSOAPといった別のプロトコルを利用してもよい。
実施形態2におけるUPnPサービス提供装置102は、UPnPサービスの代理を行う代理サービスをLAN100上でUPnPを利用して探索、利用する。代理サービス装置101において、代理制御部406は、代理サービスが可能だと判断すると、SSDP制御部403を利用して、LAN100上に代理サービスに関連するSSDPのaliveメッセージを送信する。更に、代理制御部406は、SSDP制御部403を利用して、LAN100に対し、代理サービスに関連するSSDP処理を開始する。なお、代理サービスの可否は、例えばBluetooth104のようなLAN100以外の通信経路を用いてUPnPサービス提供装置102と通信可能であるかに基づいて判断することができる。
代理制御部406は、代理サービスが不可能だと判断すると、SSDP制御部403を利用して、LAN100上に代理サービスに関連するSSDPのbyebyeメッセージを送信する。更に、代理制御部406は、SSDP制御部403を利用して、代理サービスに関連するSSDP処理を終了する。これにより、UPnP提供装置102は、代理サービスを利用可能な期間のみ、代理サービスを発見することが可能になる。
(代理サービス装置における代理サービス開始処理)
図15は、実施形態2に係る代理サービス装置101における代理サービスの開始処理の流れを示すフローチャートである。図6との差異は、ステップS601、ステップS602、ステップS603が削除され、ステップS2001、ステップS2002が追加されている点である。
ステップS2001において、代理制御部406は、SOAP制御部404を利用して、LAN100上のUPnPサービス提供装置102から、UPnPサービスの代理依頼を受け付ける。この代理依頼には、UPnPサービス提供装置102のUUIDが含まれている。代理制御部406は、UUID記憶部409にUPnPサービス提供装置102のUUIDを保存し、ステップS2002に進む。代理サービス装置101が既に別のUPnPサービス提供装置の代理サービスを行っている場合、代理サービスを拒否してもよい。
ステップS2002において、代理制御部406は、SOAP制御部404を利用して、LAN100上のUPnPサービス提供装置102から、Bluetooth104のパラメータの要求を受け付ける。代理制御部406は、Bluetooth制御部402からBluetooth104のパラメータを取得する。代理制御部404は、SOAP制御部404を利用して、Bluetooth104のパラメータをUPnPサービス提供装置102に返信し、ステップS604に進む。ステップS604以後の動作は、図6を参照して説明した実施形態1と同様であるため、説明を省略する。
(サービス提供装置における代理サービス開始処理)
図16は、実施形態2に係るサービス提供装置102における代理サービスの開始処理の流れを示すフローチャートである。図8との差異は、ステップS1101、ステップS1102が削除され、ステップS2101、ステップS2102、ステップS2103、ステップS2104が追加されている点である。
ステップS2101において、サービス制御部506は、代理サービスを利用するか否かの判断を行う。サービス制御部506が、代理サービスを利用すると判断すると(ステップS2101でYES)、ステップS2102に進む。サービス制御部506が、代理サービスを利用しないと判断すると(ステップS2101でNO)、処理を終了する。
ステップS2102において、サービス制御部506は、SSDP処理部503を利用して、LAN100上の代理サービスを探索する。SSDP処理部503は、Wireless LAN制御部501を通じて、LAN100上に、代理サービスを探索するためにm−searchメッセージを送信する。SSDP処理部503は、代理サービスからのresponseがあるか、または、一定時間内にaliveを受信したかの結果をサービス制御部506に返信する。サービス制御部506が代理サービスを発見したと判断すると(ステップS2102でYES)、ステップS2103に進む。サービス制御部506が代理サービスを発見しなかったと判断すると(ステップS2102でNO)、処理を終了する。
ステップS2103において、サービス制御部506は、SOAP処理部504を利用して、Wireless LAN制御部501を通じて、LAN100上の代理サービス装置101に代理の依頼を行い、ステップS2104に進む。代理依頼には、UPnPサービス提供装置102のUUIDが含まれる。
ステップS2104において、サービス制御部506は、SOAP処理部504を利用して、Wireless LAN制御部501を通じて、LAN100上の代理サービス装置101にLAN100以外の通信パラメータを要求する。代理サービス装置101から通信パラメータを取得すると、サービス制御部506はこの通信パラメータからBluetooth104のパラメータを取得し、ステップS1103に進む。ステップS1103以降の動作は、図8を参照して説明した実施形態1と同様であるため、説明を省略する。
(代理サービス装置とUPnPサービス提供装置における代理サービス開始処理)
図17は、実施形態2に係る代理サービス装置101とUPnPサービス提供装置102における代理サービス開始処理のシーケンスを示すシーケンスチャートである。図12との差異は、F1701、F1702、F1703が削除され、F2201、F2202、F2203が追加されている点である。
F2201において、UPnPサービス提供装置102が代理サービス装置101を発見する。F2202において、UPnPサービス提供装置102が代理サービス装置101にUPnPサービスの代理を依頼する。F2203において、UPnPサービス提供装置102がUPnPサービス提供装置102に通信パラメータを要求する。F1704以降の動作は、実施形態1と同様であるため説明を省略する。
上記のように、本実施形態の代理サービス装置101は、当該代理サービス装置101がサービスを中継する中継機能を有することをLAN100に対して公開する。また、UPnPサービス提供装置102は、中継機能が公開された場合、UPnPコントロールポイント装置103に対する直接のサービス提供をBluetooth104を介した代理サービス装置101に対するサービス提供に切り替える切替処理を行う。
このため、UPnPサービス提供装置102は、複数の代理サービス装置を発見し、その中から最も適した代理サービス装置を利用することができる。例えば、Bluetoothをサポートする通信手段の代理サービスでない場合、別の代理サービスを利用するといったことが可能になる。
また、本実施形態の代理サービス装置101は、中継機能を公開したことに応じてUPnPサービス提供装置102から中継の要求がなされた場合に、サービスを中継する。このため、サービスの中継(代理)を適切なタイミングで開始することができる。
<<実施形態3>>
以下に本発明の第3の実施形態(実施形態3)について、実施形態1、および、実施形態2との相違点を中心に図面を参照して説明する。DLNA(Digital Living Network Alliance)で規定されたDMS(Digital Media Server)は、UPnPをベースに規定されている。本実施形態における代理サービス装置101は、DMSの代理を行う機能を持つ。本実施形態におけるUPnPサービス提供装置102は、DMSを行う機能を持つ。本実施形態におけるUPnPコントロールポイント装置103は、DMP(Digital Media Player)の機能を持つ。
(代理サービス装置のモジュール構成)
図4(b)は、本実施形態の代理サービス装置101のモジュール構成図である。2301は、Wireless LAN制御部401からのコンテンツ要求に応じて、Bluetooth制御部402から、コンテンツを受信する機能を持つコンテンツ処理部である。コンテンツ要求の際に、常にオンデマンドで取得しても良いし、コンテンツ処理部が持つキャッシュを利用してもよい。
代理処理部407は、UPnPサービス提供装置102から提供されたDIDL−Liteに含まれるURLを、代理サービス装置101を表すURLに、書き換える機能を持つ。代理処理部407は、要求があった場合、URLを書き換えたDIDL−Liteを提供する。また、代理処理部407は、代理サービス装置101のコンテンツのURLを対応するUPnPサービス提供装置102のURLに書き換えて提供する。本実施形態では、DIDL−LiteのURLの書き換えを挙げたが、これに限らず、DIDL−Lite以外のメタデータのURLを書き換えても良い。
(サービス提供装置のモジュール構成)
図5(b)は、本実施形態のサービス提供装置102のモジュール構成図である。2401はコンテンツ提供処理部であり、Wireless LAN制御部501、および、Bluetooth制御部502からのコンテンツの要求に応じて、コンテンツを提供する機能を持つ。
実施形態3において、代理サービス装置101がUPnPサービス装置102の代理サービスを行っている場合の例を説明する。代理制御部406は、SOAP処理部404を利用して、Wireless LAN401を通じて、LAN100上のUPnPコントロールポイント装置103から、コンテンツの一覧の要求(Browse)を受信する。これに応じて代理制御部406は、SOAP処理部404を利用し、Bluetooth制御部402を通じて、Bluetooth104上のUPnPサービス提供装置102に、コンテンツ一覧の要求(Browse)を行い、DIDL−Liteを取得する。代理制御部406は、取得したDIDL−Liteを代理処理部407に送信し、DIDL−Liteの書き換えを依頼する。代理制御部406は、SOAP処理部404を利用して、Wireless LAN401を通じて、LAN100上のUPnPコントロールポイント装置103へ、コンテンツ一覧であるDIDL−Liteを返信する。
代理制御装置406は、コンテンツ処理部2301を利用して、Wireless LAN制御部401を通じて、LAN100上のUPnPコントロールポイント装置103から、コンテンツの取得要求を受け付ける。本実施形態における、コンテンツ取得要求は、HTTP GETである。代理制御部406は、代理処理部407にコンテンツのURLの変換を依頼する。代理処理部407は、代理サービス装置101のコンテンツのURLをUPnPサービス提供装置102のコンテンツのURLに変換し、代理制御部406に返信する。代理制御部406は、コンテンツ処理部2301を利用して、Bluetooth制御部402を通じて、Bluetooth104上のUPnPサービス提供装置102にコンテンツの取得要求を送信する。代理制御装置406はUPnPサービス提供装置102からコンテンツを取得すると、コンテンツ処理部2301を利用して、Wireless LAN制御部401を通じてLAN100上のUPnPコントロールポイント装置103にコンテンツを返信する。
UPnPサービス提供装置102は、代理サービス装置101からコンテンツの取得要求を受信する。サービス制御部506は、コンテンツ提供部2401を利用して、Bluetooth制御部402を通じて、Bluetooth104上の代理サービス装置102からのコンテンツの取得要求を受け付ける。サービス制御部506は、コンテンツ提供部2401を利用して、Bluetooth制御部402を通じて、Bluetooth104上の代理サービス装置101にコンテンツを返信する。
(コンテンツ提供処理)
図18は、実施形態3に係る代理サービス装置101とUPnPサービス提供装置102におけるコンテンツ提供処理のシーケンスを示すシーケンスチャートである。F2501において、UPnPコントロールポイント装置103は、LAN100を通じて、代理サービス装置101に、コンテンツ取得を要求する。F2502において、代理サービス装置101は、LAN100を通じて受信したコンテンツ取得に応じて、URLの書き換えなどの代理処理を実行する。F2503において、代理サービス装置101は、Bluetooth104を通じて、UPnPサービス装置102にコンテンツ取得を送信する。
F2504において、UPnPサービス提供装置102は、Bluetooth104を通じて、代理サービス装置101から、コンテンツ取得の要求を受信する。UPnPサービス提供装置102は、コンテンツ取得の要求に対応するコンテンツを提供する。F2505において、UPnPサービス提供装置102は、Bluetooth104を通じて、代理サービス装置101に、コンテンツを送信する。F2506において、代理サービス装置101は、Bluetooth104を通じて受信したコンテンツに応じて、URLの書き換えなどの代理処理を実行する。F2507において、代理サービス装置101は、LAN100を通じて、UPnPコントロールポイント装置103に、コンテンツを送信する。
なお、本実施形態における転送プロトコルは、HTTPによらず、例えばRTP等でもよい。その場合、代理サービス装置101におけるコンテンツ処理部2301がRTPプロキシの機能、および、UPnPサービス提供装置102におけるコンテンツ提供部2401がRTP配信機能を持つことで実現できる。
上記のように、本実施形態では、UPnP代理サービス装置101が中継(代理)するサービスが、UPnPサービスではなくコンテンツ配信サービスである場合の例を説明した。代理サービス装置101は、UPnPコントロールポイント装置103からLAN100を介してコンテンツ配信要求を受信した場合、コンテンツ配信先が代理サービス装置101となるようにこのコンテンツ配信要求を書き換える書換処理を行う。そして、書き換えたコンテンツ配信要求をBluetooth104を介してUPnPサービス提供装置102へ出力する。書き換えたコンテンツ配信要求を出力したことに応じてUPnPサービス提供装置102から配信されたコンテンツを受信すると、受信したコンテンツをUPnPコントロールポイント装置103へ配信する。
このため、コンテンツ配信のようなサービスであっても、UPnPサービス提供装置102とUPnPコントロールポイント装置103との間で提供されるサービスを適切に中継することができる。以上のように、本実施形態の構成は、サービスの提供、および、サービスで提供されているコンテンツの提供を行う事ができる。なお、本実施形態ではコンテンツの要求を転送する例を説明したが、転送に限らない。例えば、予めコンテンツのコピーを取得し、提供することで実施できることは言うまでもない。
上記構成によれば、代理サービス装置がサービス提供装置のネットワーク接続を変更させることによって、サービス提供装置を隠蔽することができる。更に、サービス提供装置は、代理サービス装置からのみのメッセージを受け付けるので安全になる。UPnPを利用すると、どのネットワークにおいても一様にサービスを公開するので、特に自宅外のネットワーク(例えば、友人宅のネットワーク)に接続した際に効果がある。