DigiOn|株式会社デジオン

PRODUCTS|製品情報

DiXiM Home Network SDK

製品に関するお問い合わせ

DiXiM Home Network SDK全体の特徴

  • すべてC言語で記述されています。
  • 組み込みシステム向けに、少ないメモリ使用量で動作するよう設計されています。
  • コンパクトなモジュールサイズ。
  • 基本部分はシングルスレッドモデルで設計されています。必要に応じてマルチスレッドと組み合わせることもできます。
  • 一つのUPnPスタック上で、複数のコントロールポイントと複数のデバイスを同時に動かすことができます。
  • 高い相互接続性と多くの採用実績があります。
  • DiXiM SDKには、下記のようなCPUに依存する処理は含まれておりません。
    • エンディアン依存の処理
    • サイズが不明な型(intなど) を特定のサイズ(32bitなど) と仮定する処理
    • 構造体のメンバのアラインメントやオフセット依存の処理
    • アセンブラの使用
    • 割り込みに関する処理

DiXiM Home Network SDKの構成

OSの上にプラットフォームの差異を吸収するためのPorting Layerがあり、その上にUPnP Stackが存在します。様々なControl PointやDeviceは、このUPnP Stack上で動作します。

DiXiM SDK Structure

UPnP Stackの構成

UPnP Stackはイベントドリブンで動作します。イベントはNetworkとTimerから発生します。またアプリケーションからの関数コールによってもUPnP Stackに対する処理が発生します。 上位層のコンポーネントは、下位層に対してコールバック関数を登録し、イベントが発生した場合にその通知を受け処理します。 例えばネットワークにパケットが到着した場合、Network Task Managerがそれを検出し、SSDPであればSSDP Listenerがそれを処理し、HTTPであればHTTP Serverがそれを処理します。

SSDPパケットが、Control Pointが送信したSSDP Searchであれば、DeviceのDescription Managerがコールバックを受け、レスポンスを返します。 SSDPパケットが、Deviceが送信したSSDP Searchのレスポンスであれば、Control PointのDevice Managerがコールバックを受け、処理します。
このようにイベント処理は下位層から上位層に向かってコールバックされていきます。
NetworkとTimerからのイベント処理はすべてシングルスレッドで行われます。

DiXiM UPnP Stack の構成

Control Point

Control Pointの主な仕事は、SSDPを用いてネットワーク内に存在するデバイスを把握し、SOAPを用いてサービスに対して処理の要求を行うことです。

UPnP Control Point Structure

Device Managerは、SSDPの受信とDevice Descriptionの取得により、ネットワーク内に存在するデバイスの一覧を管理します。フィルターを設定することにより、Control Pointが興味を持っているタイプのデバイスのみ管理することができます。Control Pointは、それぞれのデバイスが持つサービスに対して、SOAPリクエストを行います。サービスに対してサブスクライブすることで、サービスの状態が変わった場合にイベントを受け取ることができます。

Event Managerは、サービスに対するイベントのサブスクリプションの状態を管理します。Event Managerはサブスクリプションの期限が切れる前に、自動的にそのサブスクリプションをリニューアルします。ネットワークケーブルの抜き差しや、AutoIPからDHCPへの変更など、何らかの要因でControl Pointが使用しているネットワークの状態が変更されることがあります。ネットワーク状態の変更はNetwork Interface Monitorにより監視されており、変更があった場合はDevice ManagerやEvent Managerに通知され、適切な処理が自動的に行われます。

Device

DeviceはControl Pointに対してサービスを提供します。

UPnP Device Structure

Deviceがどのような種類のデバイスでどのようなサービスを提供するかをデバイスディスクリプションドキュメントに記述します。これはXMLフォーマットのファイルでDescription Managerによって管理されます。 Control PointからSSDP Searchによる検索が行われた場合、デバイスはこのデバイスディスクリプションの内容に応じて応答を返します。またDevice起動時、および一定周期毎にSSDP aliveを送信し、Device終了時にSSDP byebyeを送信します。 HTTP ServerにはUPnP Service、Description Service、Document Serviceがあります。ユーザーはUPnP ServiceやDocument Serviceに独自のサービスを登録することが可能です。 Description Serviceは、SSDPのLocationに記述されているURLに対して要求があった場合に、デバイスディスクリプションドキュメントを返すサービスです。DiXiM SDKではデバイスディスクリプションにサービスのための設定情報を記述可能ですが、これらはDescription Serviceによって取り除かれた状態で配信されます。

Document Serviceには、特定のURLに対する要求を処理し応答を返すHTTPサービスを登録することができます。デフォルトでは特定のフォルダ以下のファイルを配信するサービスがDocument Serviceの一つとして実装されています。デバイスアイコンの配信にはこのサービスが用いられます。ブラウザベースのデバイスの設定ツールなども Document Serviceを用いて実装可能です。このDescription ServiceもDocument Serviceの一つとして実装されています。
UPnP Serviceには、SOAPリクエストを処理するサービスを登録することができます。通常Deviceの開発はこのUPnP Serviceを開発することが中心になります。 Document ServiceもUPnP Serviceも登録する場合はデバイスディスクリプションドキュメントに記述する必要があります。 Event Managerは、サービスに対してイベントをSubscribeしているControl Pointの管理を行います。 各Serviceは、状態が変わった場合にEvent Managerに通知することで、イベントをSubscribeしている各Control Pointにイベントが送信されます。

DiXiM Porting Layer SDKの特徴(一個一個のモジュールの特徴)

DiXiM Porting Layer SDK (略称:DiXiM PL SDK)はプラットフォームの違いを吸収する抽象化レイヤーの働きを持つと同時に、DiXiM Home Network SDK内の他SDKから共通して利用されるユーティリティを含んでいます。 DiXiM Porting Layer SDKが抽象化しているのは次のものです。

  • メモリ管理
  • ネットワーク
  • 時間
  • ファイルシステム
  • スレッドと同期
  • 乱数
  • シグナル
  • ログ出力
  • 共有ライブラリ
  • プラットフォーム情報

DiXiM UPnP SDKの特徴

DiXiM UPnP SDKは、SSDPを用いたデバイスのDiscoveryや、SOAPを用いたデバイスのControlなど、UPnPで必要とされるプロトコルスタックを提供します。一つのUPnPスタックのインスタンス上で、複数のControl PointとDeviceを同時に動作させることが可能です。また、DMS、HDRL、DMR、IGD、Printerなどの特定のデバイスと通信するためのインタフェースも用意しています。 これらの特徴から、UPnP AVのControl Pointを内蔵したホーム・ネットワーク・クライアント機器や、UPnP Deviceを内蔵した機器を開発する用途に適しています。UPnP AV規格で定義されたMedia Server Control PointおよびMedia Renderer Control Pointの機能を提供し、DLNAガイドラインに対応したDMPおよびM-DMP、DMCやM-DMCをはじめ、+DN+, +PR1+, +PR2+ などの開発に威力を発揮します。

DLNAガイドラインで定義されたこれらのデバイスクラスおよびデバイスケイパビリティについては、サンプルソースコードも SDKの一部として提供しています。したがって、ネットワークプロトコル部分の実装はDiXiM UPnP SDKに任せ、UIのカスタマイズなどの差別化要因に多くの開発リソースを割り当てることが可能になります。 また、UPnP AV MediaRenderer Device:1の機能を実装したライブラリも提供しており、DLNA DMRの開発にも利用することができます。 さらに、Basic Device, Internet Gateway Device (IGD)、Low Power、Printer BasicおよびPrinter EnhancedといったUPnP AV以外のUPnP規格、そしてHDRLにも対応しており、各種ホームネットワーク対応機器の開発にもご利用いただけます。

DiXiM UPnP Advanced SDKの特徴

UPnP AV Control Pointの機能をベースに、クライアント機器に求められる実用性の高い機能を実現するためのライブラリおよびサンプルソースコードを提供します。以下のリストに示されるような付加価値の高い機能が実現できます。

  • ホームネットワーク上の複数のサーバ機器上のすべてのコンテンツを一元的にデータベース化し、カテゴライズするCDSクローラー機能
  • ローカルストレージデバイス上のコンテンツファイルを、ホームネットワークにある他サーバ機器のコンテンツと統合し、一元的に扱うファイルクローラー機能
  • YouTubeやFlickrなどのインターネットコンテンツを、ホームネットワーク上のコンテンツと同様に取り扱う機能
  • いろいろなファイルフォーマットのコンテンツファイルから、タイトル、アーティスト名、durationや解像度といった様々なメタデータを抽出する機能

DiXiM DMS SDKの特徴

DiXiM DMS SDKは、UPnP AV規格のMediaServer Deviceを内蔵したホームネットワーク用サーバ機器を開発する目的で用いられ、コンテンツファイルをHTTPで配信する機能を提供します。DiXiM DMS SDKのAPIを用いることで、ファイルをDMSのCDSに登録することができます。また、AutoSync機能を利用することにより、ファイルシステム上のファイルを自動的にCDSに登録し、DMSから配信することが可能です。ビデオおよびイメージコンテンツのサムネイル生成機能やオーディオおよびイメージコンテンツのトランスコーディング機能も提供しており、リッチなDMSを構築することができます。

さらに、UPnP AV MediaServerDevice:1に対応したContentDirectoryService:1および Connection ManagementService:1を実装し、また、DLNAガイドラインv1.5のアップロード受信に対応したDMSとして動作するソースコードを提供しています。このソースコードは、DiXiM Media Serverリファレンス版と同等となっています。すなわち、デジオンがDLNA CertifiedTMロゴ認証を取得した際に用いたソースコードそのものをベースに、継続的に機能アップが図られているものです。このソースコードをビルドして得られたDMSでは、DLNA CTT v1.5の最新版をPassすることを保証しています。