SyncMLSyncML (Synchronization Markup Language)は、クロスプラットフォームで使えるXMLを基にしたデータ同期のオープン規格の以前の名前である。2000年12月17日にSyncML 1.0がリリース[1]、1.1は2002年2月26日にリリースされた[2]。このプロジェクトは現在、 オープン・モバイル・アライアンス (Open Mobile Alliance、OMA)で Data Synchronization (データ同期) プロジェクトとDevice Management (デバイス管理) プロジェクトとなっている。 SyncMLの目的は、既存のデータ同期ソリューションの代わりとなるオープン標準を提供することである。既存のデータ同期ソリューションは、ほとんどがベンダー、アプリケーション、オペレーティングシステムに固有となっている。 詳細SyncMLは、以下のように要求と応答のコマンドを交換することで機能する。
コマンド(
コマンドの前に、メッセージにはトランザクションに関するさまざまなデータを指定するヘッダーが含まれる。前の例のように、更新同期を開始するため <?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML xmlns="SYNCML:SYNCML1.2">
<SyncHdr>
<VerDTD>1.1</VerDTD>
<VerProto>SyncML/1.1</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target><LocURI>PC Suite</LocURI></Target>
<Source><LocURI>IMEI:3405623856456</LocURI></Source>
<Meta><MaxMsgSize xmlns="syncml:metinf">8000</MaxMsgSize></Meta>
</SyncHdr>
<SyncBody>
<Alert>
<CmdID>1</CmdID>
<Data>203</Data> <!-- 203 = mobile signals a refresh from it to computer -->
<Item>
<Target><LocURI>Events</LocURI></Target>
<Source><LocURI>/telecom/cal.vcs</LocURI></Source>
<Meta><Anchor xmlns="syncml:metinf"><Last>42</Last><Next>42</Next></Anchor></Meta>
</Item>
</Alert>
<Final/>
</SyncBody>
</SyncML>
コンピュータからの応答は、次のようなxmlドキュメントとなる(説明のためにコメントが追加されている)。 <?xml version="1.0"?>
<!DOCTYPE SyncML PUBLIC "-//SYNCML//DTD SyncML 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/OMA-TS-SyncML_RepPro_DTD-V1_2.dtd">
<SyncML>
<SyncHdr>
<VerDTD>1.1</VerDTD>
<VerProto>SyncML/1.1</VerProto>
<SessionID>1</SessionID>
<MsgID>1</MsgID>
<Target><LocURI>IMEI:3405623856456</LocURI></Target>
<Source><LocURI>PC Suite</LocURI></Source>
</SyncHdr>
<SyncBody>
<!-- accept the header of the last message from the client -->
<Status>
<CmdID>1</CmdID>
<MsgRef>1</MsgRef>
<CmdRef>0</CmdRef> <!-- 0 = header of the message -->
<Cmd>SyncHdr</Cmd>
<TargetRef>PC Suite</TargetRef>
<SourceRef>IMEI:3405623856456</SourceRef>
<Data>200</Data> <!-- 200 = ok, accepted -->
</Status>
<!-- accept the request of the mobile for a sync -->
<Status>
<CmdID>2</CmdID> <!-- this is command #2 -->
<MsgRef>1</MsgRef>
<CmdRef>1</CmdRef> <!-- it respond to command msg=1,cmd=1 -->
<Cmd>Alert</Cmd>
<TargetRef>Events</TargetRef>
<SourceRef>/telecom/cal.vcs</SourceRef>
<Meta><Anchor xmlns="syncml:metinf"><Next>0</Next><Last>0</Last></Anchor></Meta>
<Data>200</Data> <!-- 200 = ok, accepted -->
</Status>
<Final/>
</SyncBody>
</SyncML>
このトランザクションでは、その後、 この例は、携帯機器がすべてのデータをコンピュータに送信し、その逆は何も送信しない更新である。
アンカーは同期の喪失を検出するためにのみ使用され、送信されるデータを示すものではない。同期が失われた場合を除いて、通常の(更新されない)同期では、各デバイスは最後の同期以降のすべての変更を送信する。 関連項目脚注
外部リンク
|
Portal di Ensiklopedia Dunia