フィードシンク

FeedSync for Atom and RSS(旧称Simple Sharing Extensions)は、 RSSおよびAtomフィード形式の拡張機能であり、様々なデータソースを用いて情報の双方向同期を可能にするように設計されています。当初はMicrosoftチーフソフトウェアアーキテクトであるRay Ozzie氏によって開発され、現在はJack Ozzie氏George Moromisato氏Matt Augustine氏Paresh Suthar氏Steven Lees氏によってメンテナンスされています。UserLand Software RSS仕様バリアントの設計者であるDave Winer氏が、これらの仕様に意見を提供しています。

FeedSync for Atom and RSS仕様の最新バージョンは1.02です。[ 1 ] FeedSync for Atom and RSSは、クリエイティブ・コモンズ表示-継承ライセンス(バージョン2.5)およびMicrosoft Open Specification Promise に基づいてライセンスされています。

FeedSync for Atom および RSS の範囲は、緩やかに連携するアプリケーションが Atom フィードと RSS フィードをアイテム共有の基盤として使用できるようにするために必要な最小限の拡張機能を定義することです。つまり、相互にサブスクライブされた 2 つ以上のフィード間で新規アイテムと変更されたアイテムを双方向で非同期に同期することです。

FeedSync の多くは現在 Atom フィードと RSS フィードに基づいて定義されていますが、本質的に FeedSync が厳密に要求するものは次のとおりです。

  • 同期するアイテムのフラットなコレクション
  • すべてのエンドポイントで維持されるアイテムごとの同期メタデータのセット
  • すべてのエンドポイントがすべてのアイテムを作成、更新、マージ、競合解決するために使用する一連のアルゴリズム

つまり、FeedSync は、メタデータをさまざまな構造化データ形式で表現できるほぼすべてのプログラミング言語で実装できます。

RSSフィード

<?xml version="1.0" encoding="utf-8"?> <rss version= "2.0" xmlns:sx= "http://feedsync.org/2007/feedsync" > <channel> <title> To Do List </title> <description>やるべきことのリスト</description> <link> https://www.example.com/something/foo/bar/ </link> < sx :sharing since= " 2005-02-13T18:30:02Z" until= "2005-05-23T18:30:02Z" > <sx:related link= "[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}" type= "complete" /> <sx:related link= "[http://example.com/B.xml]{{dead link|date=2016年12月 |bot=InternetArchiveBot |fix-attempted=yes }}" type= "aggregated" title= "To Do List (Jacks Copy)" /> </sx:sharing> <item> <title>食料品を買う</title> <description>牛乳、卵、バター、パンを買う</description> <sx:sync id= "item_1_myapp_2005-05-21T11:43:33Z" updates= "3" > <sx:history sequence= "3" when= "2005-05-21T11:43:33Z" by= "JEO2000" /> <sx:history sequence= "2" when= "2005-05-21T10:43:33Z" by= "REO1750" /> <sx:history sequence= "1" when= "2005-05-21T09:43:33Z" by= "REO1750" /> </sx:sync> </item> </channel> </rss>

Atomフィード

 <?xml version=" 1.0 " encoding="utf-8"?> <feed xmlns= "http://www.w3.org/2005/Atom" xmlns:sx= "http://feedsync.org/2007/feedsync" > <title> To Doリスト</title> <subtitle>実行する項目のリスト</subtitle> < link rel= "self" href= "http://example.com/partial.xml" /{{dead link| date= December 2016 | bot= InternetArchiveBot | fix-attempted= yes }} > <author> <name> Ray Ozzie </name> </author> <updated> 2005-05-21T11:43:33Z </updated> <id> urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aaa </id> <sx:sharing since= "2005-02-13T18:30:02Z" until= "2005-05-23T18:30:02Z" > <sx:related link= "[http://example.com/all.xml]{{dead link|date=December 2016 |bot=InternetArchiveBot |fix-attempted=yes }}" type= "complete" /> <sx:related link= "[http://example.com/B.xml]{{dead link|date=2016年12月 |bot=InternetArchiveBot |fix-attempted=yes }}" type= "aggregated" title= "To Do List (Jacks Copy)" /> </sx:sharing> <entry> <title>食料品を買う</title> <content>牛乳、卵、バター、パンを買う</content> <id> urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aa0 </id> <author> <name> Ray Ozzie </name> </author> <updated> 2005-05-21T11:43:33Z </updated> <sx:sync id= "item_1_myapp_2005-05-21T11:43:33Z"更新 = "3" > <sx:historyシーケンス = "3" when = "2005-05-21T11:43:33Z" by = "JEO2000" /> <sx:historyシーケンス = "2" when = "2005-05-21T10:43:33Z" by= "REO1750" /> <sx:history sequence= "1" when= "2005-05-21T09:43:33Z" by= "REO1750" /> </sx:sync> </entry> </feed>

POXアイテム

<?xml version="1.0" encoding="utf-8"?> <item> <subject>食料品を買う</subject> <body>牛乳と卵を買う</body> <sx:sync id= "item_1_myapp_2005-05-21T11:43:33Z" updates= "1" > <sx:history sequence= "1" when= "2005-05-21T09:43:33Z" by= "REO1750" /> </sx:sync> </item>

JSONアイテム

{ "title" : "食料品を買う" , "description" : "牛乳と卵を買う" , "sync" : { "id" : "item_1_myapp_2005-05-21T11:43:33Z" , "updates" : "1" , "history" : [ { "sequence" : "1" , "when" : "2005-05-21T09:43:33Z" , "by" : "REO1750" } ] } }

FeedSync オブジェクトの例。

実際の使用例

FeedSync フィードを使用してアプリケーション間でデータを同期する「実際の」使用例がいくつかあります。

FeedSyncサービス

このプロトタイプ開発者サービスは、HTTPベースのFeedSyncエンドポイントの実装です。アプリケーションはHTTP GETコマンドとPOSTコマンドを使用してフィードを同期できます。POSTコマンドは、FeedSyncサービスによってホストされているフィードに対してFeedSyncマージ操作を実行します。このサービスは既にアクティブではありません。

ストロングエンジェルIII

FeedSyncフィードは、2006年8月に行われたStrong Angel III演習において、デスクトップおよびモバイルデバイス上のMicrosoftGoogleESRIなどのアプリケーションを連携させる軽量ミドルウェアとして広く利用されました。このサービスは現在は利用されていません。

ROMEプロジェクト

包括的な Java RSS プロジェクトであるROME は、開発者が FeedSync サービスを使用するアプリを作成するための Javaレイヤーを作成するため、FeedSync 仕様の実装となります。

メッシュ4x

Mesh4x は、メッシュベースのアプリケーション用のライブラリ、ツール、アプリケーション、サービスのオープンソース セットであり、バージョン管理標準として FeedSync を使用し、SMS テキスト メッセージを介してデータを同期するための Feedsync にヒントを得たパケットベースのプロトコルを実装しています。

参照

参考文献

  1. ^ 「FeedSync for Atom and RSS (v1.0) specification」 2011年1月3日。 2017年12月24日時点のオリジナルよりアーカイブ。

仕様

コード

記事