XML ウォッチ: 開発動向について

SyncML によるデータのモバイル利用

いつでもどこでもデータを活用できるようにする方法を追求してやまないXML開発者Edd Dumbillが、SyncMLの調査と実装の旅に出ます。

Edd Dumbill, Editor and publisher, xmlhack.com

Edd Dumbill氏はXML.com の編集長であり、XMLデベロッパーのためのニュース・サイトXMLhack の編集者兼発行者でもあります。Programming Web Services with XML-RPC (O'Reilly) の著者の1人であり、生命科学の知的財産を交換するPharmalicensing の共同設立者兼アドバイザーです。EddはXML Europe コンファレンスのプログラム司会者でもあります。



2003年 1月 01日

私にとってXMLの一番面白いところは、情報を処理プログラムから切り離して自由にできるという点です。コンピューターを使う人なら、自分と同じワープロ・ソフトを使っていない人とデータのやり取りができなかったり、自分の作ったデータでありながら4、5年後にはバージョンの違いのために開いて見ることができなかったりした経験があるものです。幸いにしてそのような問題を経験したことがないとしても、データが特定のソフトウェア・スイートの専用の形式になっているために、そのソフトウェア・スイートに縛られてしまうことを不便に感じた経験は、きっとある ことでしょう。

XMLが登場し、オープン・スタンダードの便利さが認識されてくるにつれて、単一のアプリケーションへの束縛状態からデータが解放されようとしています。現在のソフトウェア開発者は、さまざまな人や組織の間でデータが盛んにやり取りされることを認識しています。まもなく出るMicrosoft Office 11におけるXMLサポートは、データを1つのアプリケーションだけに縛らないことが実現する1つの確証となるものです。

それで、アプリケーション間のデータ移動がますます便利になりつつあるという朗報と共に、異なるデバイス間でのデータ転送がますます簡単になるのを見るのは、とてもうれしいことです。予定表や連絡先リストのような特定の一般的データの場合、既にその標準規格に関しては十分な合意が得られていますが、データを送信する便利な手段という点では、残念ながら十分な合意は得られていません。ここでSyncMLが登場することになります。SyncML は、データ同期化のためのXMLベースのプロトコルの1つであり、最近のモバイル・デバイスの間で急速に普及しつつあります。

Palm Pilot、デスクトップPC、ノートブックPC、および携帯電話の間で連絡先情報やスケジュール情報を同期化することは、現在の同期テクノロジーをもってしても困難です。私の場合、それをしようとしてもいらいらするばかりなので、実際のところ、もうあきらめてしまっています。個人用連絡先リストを見たいというだけの理由で、携帯電話のほかにPDAも持たなければならないのですが、実際はいつも忘れてしまいます。SyncMLはこの問題を解決するための優れた機会となりそうです。また、これはWireless Application Protocol (WAP) を利用するため、どこにいてもリモート・サーバーとの同期化が可能です。

残念ながら消費者向けのSyncML製品はまだなく、サポートするオープン・ソース・コードがわずかにあるだけのようです。そこで私は、携帯電話と個人情報管理ソフトウェアを統合したコードをリリースするため、SyncMLの実装には何が必要かを探ることにしました。このフォーラムでは、特にXMLテクノロジーに焦点を当てながら、今後何回かにわたってその過程を報告することにします。

SyncMLの紹介

トーク・バック

この「XMLウォッチ」コラムのシリーズでは、専用のフォーラムを設置しました。質問には私が回答します。さらに読者のディスカッションに私も参加します。このフォーラムをどんどん活用して、私の担当分野について質問したり、ディスカッションに参加したり、関連情報を入手したりしてください。

「SyncML」という名称は、ちょっと誤解を招くかもしれません。XMLベースのマークアップ言語には違いないのですが、それは単なるデータ・フォーマットではありません。それは、エージェントが互いにデータを同期化するための構造を提供する1つのプロトコルです。その中では、どんな形のデータ交換が許されるのかが定義され、その解釈方法が規定されています。

Chandandeep Pabla氏は、「SyncML intensive」という記事の中で (参考文献を参照)、SyncMLの基本的な概念のいくつかを紹介しています。このシリーズの中でも、それらの概念が登場した時点でその都度説明しますが、前もってChandandeep氏の記事を読んで、SyncMLのさまざまな概念を一通り頭に入れておくことをお勧めします。

SyncML 1.1の仕様書は、SyncMLのWebサイトの「Technology」セクションに、大量のPDFやDTDの形で用意されています (参考文献を参照)。SyncMLとは何をするものかについて知るには、まず「SyncML Sync Protocol」(PDF) をお読みになるのがよいでしょう。次の3つのXML言語について知っておく必要があります。

  • SyncML: 同期に関係したデータ交換を定義します。
  • SyncMLメタ情報 (MetInf): 日付、ID、サイズなど、SyncMLの中で使用されるさまざまなメタデータ項目を定義します。
  • SyncMLデバイス情報 (DevInf): 同期の対象となるデバイスを記述するためのものです (たとえば、どんなコンテンツがサポートされているか、どれだけのメモリーを利用できるか、など)。

SyncML仕様書では、デバイス管理のための第4のテクノロジーも定義されています。それは、デバイスに対する管理作業のリモート実行が可能な設計になっています。このプロトコルについて調べるのは、この記事の範囲を超えています。このプロトコルに興味のある方は、SyncMLサイトにある「SyncML Device Management Protocol」の文書をご覧ください。

SOAP 1.2と同じように、SyncMLで定義されているのはプロトコルに従ったデータ交換だけです。それ自体を特定のデータ転送に関係付けるものではありません。事実、複数のトランスポートとの関係付けは、HTTP、Wireless Session Protocol (HTTPを強化したようなもの)、およびObject Exchange (OBEX) の仕様の方で定義されています。OBEXは、Palm Pilot PDAなどのデバイスにおいて「ビーミング」によるデータ送受信のために使用されるプロトコルであり、HTTP自体のバイナリー版によく似たものです。


特許の状況

最近、「オープン」をうたい文句にしていながら、実際には特許で保護された技術から自由でない標準が数多く見受けられます。実装に取りかかる前に、だれがその標準規格を作成したか、そしてどんな条件下で利用できるのかを確認するのをお奨めします。

SyncMLは、大半がモバイル通信に興味のある会社で構成されるコンソーシアムによって開発されたものです。実際に仕様を開発するのはコンソーシアムのメンバーだけですが、仕様自体は利用可能なものとして一般に公開されています。仕様書の定形文面では仕様の作成者が実装に対して著作権使用料を課する権利が留保されているものの、SyncMLの中心人物であるDouglas Heintzmanの言葉によれば、そのような要求はあまりなされないようです。

「私たちはSyncMLに対する投資を回収したいと思います。そのための方法 (そしてそれは当初この作業を開始した理由でもある) は、できる限り多くの人々がそれを採用するということである、と考えています。そのための最善の方法は、現実の問題に対処するための優れた、質の高い、機能的に充実したテクノロジーを、フリーで提供することです。それが私たちの基本方針であり、ライセンスに関する記述から連想されることとは異なっています。」

顧問弁護士に相談できる場合にはさらに調査することもできるかもしれませんが、実装の奨励という点においては、ここに述べた情報で十分でしょう。


最初のSyncMLメッセージを受け取る

舞台が整ったところで、ありのままのSyncMLを見てみることにしましょう。仕様書を読むことは常に何らかの啓発をもたらすものではありますが、まずやってみて後で質問するという方法も、しばしば良い結果をもたらします。Webサーバーをセットアップし、携帯電話 (Ericsson R520m) からそこにアクセスし、何が表示されるかやってみました。サーバーのログには、HTTPのPOSTが示されています。そこで、簡単なCGIスクリプトを作成して、POSTの内容をダンプしてみました。それを図1 に示します。

図1. SyncMLメッセージの出力
図1. SyncMLメッセージの出力

最初にわかることは、これはXMLでないということです。モバイル・デバイスのメモリーや処理能力は限られているため、それらのデバイスのメーカーは、Wireless Binary XML (WBXML) という、XMLによく似たバイナリーのメタ言語を開発しました。WBXMLの基本的なアイデアは、DTDが前もってわかっているなら、タグを1バイトにまで小さくできる、ということです。もちろん、それによって読み易さは多少犠牲になります。

驚いたことに、以前は多くのXML開発者がWBXMLの仕様を受け入れなかったということです。開発者のさまざまなフォーラムでXMLのバイナリー・エンコードについて尋ねられることが珍しくないということを考えると、これはまったく奇妙なことと言うほかありません。携帯電話上でWAPブラウザーに配布されるWMLページのエンコード方式としては、今やWBXMLが最も広く使用されています。

実際、SyncMLの仕様では、プロトコルのXMLエンコードとWBXMLエンコードの両方が扱われています。SyncMLは、あらゆるデバイスで使用されることが意図されていますが、携帯電話クラスのデバイスをサポートするためには、SyncMLサーバーでXMLだけでなくWBXMLを送受信できる必要があります。この記事の添付ZIPアーカイブの中には、図1 に示したWBXMLファイルと、それをXMLに変換したものを含めてあります (参考文献を参照)。XMLへの変換には、SyncML WBXMLからXMLに変換するために私が作成したコードを使用しました。その詳細については、このコラムの次回の記事でご紹介します。

変換後のXMLを見るほうが、ずっと多くの情報を得られます。次の要素が含まれています。

  • R520m電話機のデバイス記述
  • 最後の同期以来の予定表の状態についての通知
  • 最後の同期以来の電話帳の状態についての通知

展望

この記事の目的は、SyncMLサーバーのうち、WebサーバーにもOBEXサーバー (Bluetooth対応のコンピューターの場合など) にも配置できる基本的なコンポーネントを作成することです。既に考慮したように、SyncML言語のセマンティクスを実装するだけでなく、XMLとWBXMLの両方を処理する必要があります。この分野のいくつかのオープン・ソース・プロジェクトについては、参考文献のセクションをご覧ください。SyncMLは、オープン・ソースの世界で注目を集め始めたばかりであり、独自の開発方法を追求する価値があります。ほかにも、調査するとよいパッケージがいくつかあります。

このコラムの次回の記事では、WBXMLについて述べ、正規のXMLとWBXMLの類似点について調べます。さらに、SyncMLサーバーにおけるWBXMLの基本的な要件についても説明します。


ダウンロード

内容ファイル名サイズ
x-synchml.zip---

参考文献

  • 添付のZIPファイルをダウンロードしてください。それには、 図1 に示したWBXMLファイルと、それをXMLに変換したものが含まれています。
  • SyncML仕様書は、SyncMLのWebサイトにあります。
  • Sync Congress には、SyncMLの他の開発者との交流の場があります。
  • Aashish Patil氏の記事、「Sync traps」もご覧ください。そこでは、パーベイシブ・コンピューティングにおいて同期の果たす重要な役割について説明されています。
  • WBXMLなどのWAPの各種仕様書については、Open Mobile Alliance のページをご覧ください。
  • オープン・ソース・プロジェクトについては、sync4j のページをご覧ください。そこでは、J2EEベースのSyncMLサーバーを開発中です。
  • C言語によるWBXMLパーサーは、WBXML Library から入手できます。これは、最近、オープン・ソース・プロジェクトとしてリリースされたものです。
  • Edd Dumbill's の、「XML ウォッチ」シリーズの記事 をご覧下さい。
  • developerWorks XMLゾーン には、XMLに関するさらに多くの記事があります。
  • Rational Application Developer for WebSphere Software は、Java デベロッパーが迅速な開発、デザイン、アセンブル、テスト、プロファイルおよび高品質の Java/J2EE、ポータル、Web、Web サービスと SOA アプリケーションをデプロイするのをお手伝いします。
  • XMLおよび関連テクノロジーにおいてIBM Certified Developer になる方法について調べてください。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=241346
ArticleTitle=XML ウォッチ: 開発動向について
publish-date=01012003