WSD (Web Services on Devices)
WSDとは
W3Cで公開されているDevice Profile for Web Serviceの事です。Web ServiceとはXML書式で記述されたメッセージをデバイス間でやり取りし、様々なサービスを実現しようとするものです。
Microsoft 社の Windows Vista に標準装備されており、WSDを実装したデバイスがネットワークに接続すると、特別な設定をしなくともVistaのデスクトップ上に接続されたデバイスのアイコンが表示され、そのアイコンを介してデバイスを操作するような事が可能となります。
WSDの大きな特徴は、それに包括される技術でインターネットを越えられる事にあります。例えば自宅のネットワーク環境でPCと接続しているデバイスを地球の裏側まで持って行き、そこにLANのジャックやHotSpotがあれば、面倒な設定をする事なく自宅のPCと接続する事も可能になります。
現在USBでは特別な操作を必要とせずにデバイスが接続する事が可能となっていますが、将来的にはこのWSDの技術を利用して、現在のUSB接続と同様に、容易にネットワークに接続できるようになる事を目指しています。
イーソル製WSDスタック
概要
イーソル製のWSDスタック (以降、WSDスタック) は組込みデバイス向けに作成したもので、Embedded Linux上で動作し、以下に述べるWSDの基本的な4機能を実装しています。今回このWSDスタックのソースコードをリファレンスとして公開します。
今回実装したWSDの仕様書のバージョンは次のものです。
- Devices Profile for Web Service (February 2006)
機器構成
Device: Linksys社製 WRT54GL
OS: Embedded Linux
Client: DOS/V PC
OS: Windows Vista / Windows XP
開発環境: Fedora Core 4 (x86版)
実行環境: OpenWRT White Russian RC4

モジュール構成
オレンジ色のWSDスタックの部分が、今回公開するものとなります。青色の部分はEmbedded Linuxのものを使用し、紫色のアプリケーションはClient Test ProgramであるMicrosoftの相互接続性(Interoperability)テストと接続テストを行うための物です。

XML ParserとSOAP層は組込み用に作成しています。
WS-DiscoveryとMetadata Exchangeを使用してWS-Discoveryを実現します。
WS-EventingとAttachmentはWSDの基本機能です。
機能
WSDスタックは、Microsoft社のWSD相互接続性テストをパスする機能を実装しています。
Device Control Service
Execute received requests (One Way)
デバイスからクライアント(PC側)テストプログラムにデータ(数値)を送信し、クライアント側で受信したデータを表示します。
Execute received requests and return results (Two Way)
デバイスからクライアントに2つの数値を送信し、クライアント側で受信した数値を足して、デバイス側に送り返します。
Attachment Service
Receive attachment data (One Way)
デバイスからクライアントにJPEG画像ファイルを送信します。
Receive attachment data and Return attachment data (Two Way)
Eventing Service
Register / unregister event subscriptions from clients
クライアントからデバイスに対して、イベントの登録/削除を行います。
Notify event to clients
登録されたイベントをデバイスからクライアントに通知します。
Notify event expiries to clients
デバイスに登録されたイベントの期限切れをクライアントに通知します。
WSDスタックの入手方法・使用許諾
お問い合わせください。

