DLNA を一言で説明するなら UPnP のお作法
掲題は、DLNAガイドラインを何度読んでもDLNAがわかったような気がしてこない、そんなエンジニアへのアドバイスです。
あなたがこの巨大なガイドラインを一生懸命に読んでいるのは、以下のようなことがしりたいからではないでしょうか?
- DMS やDMP といったサービスをどのようにネットワークのなかでみつけるのか
- みつけたサービスが持っているコンテンツをどのように問い合わせるのか
- どのようなプロトコルでみつけたコンテンツをストリーミングするのか
そして、何度よんでもその疑問の答えを見つけることができずに強いフラストレーションを感じているのではないでしょうか?
なぜ、答えを見つけることができないのか。理由は全く単純で、ガイドラインにはそんなことは書いていないからです。
あなたがいま、読むべき仕様書はガイドラインではなく実は UPnP の "MediaServer & MediaRenderer" の仕様書だと思います。DLNA は基本的な仕様を UPnP にまかせているからです。それでもなにか疑問が残るとしたら、その回答は UPnP が前提としている SSDP, GENA, SOAP もしくはさらにその前提である HTTP, HTTPMU, XML をまず参照すべきと思います。
尚、SSDP, GENA, HTTPMU についてUPnP以外のメジャーな応用ないため、あなたはこれらの仕様に詳しくないかもしれません。もしそうならUPnPの仕様書を読む前にこれらを規定する internet-draft を読むことをお勧めします。この3つはみなとても短く、理解し易いドラフトです。
では、ガイドラインはなにを規定しているのかと言うというと、UPnP の規定で自由度がのこる部分についてお作法をきめている、というのが私の理解です。これは相互接続性のため、サービスの詳細化のために必要なお作法だと理解しております。
以前、ガイドラインのある条項の解釈を間違えて、UPnP の規定に矛盾するような解釈をされていたお客様がいらっしゃいました。そんなことはあり得ない旨を説明させて頂きました。
言及した仕様へのリンクは以下です
- DLNA ガイドライン: 非公開
- UPnP MediaServer & MediaRenderer: http://upnp.org/specs/av/av1
- SSDP: http://tools.ietf.org/html/draft-cai-ssdp-v1-00
- GENA: http://tools.ietf.org/html/draft-cohen-gena-client-00
- HTTPMU: http://tools.ietf.org/html/draft-goland-http-udp-00