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は、 Creative Commons Attribution-ShareAlike License(バージョン2.5)およびMicrosoft Open Specific 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=December 2016 |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シーケンス = "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=December 2016 |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シーケンス= "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サービス
このプロトタイプ開発者サービスは、HTTP ベースの FeedSync エンドポイントの実装です。アプリケーションは HTTP GET および POST コマンドを使用してフィードを同期できます。後者は FeedSync サービスによってホストされているフィードに対して FeedSync マージ操作を実行します。このサービスは現在アクティブではありません。
強い天使III
FeedSync フィードは、2006 年 8 月の Strong Angel III 演習で、デスクトップやモバイル デバイス上のMicrosoft、Google、ESRIなどのアプリケーションをリンクするための軽量ミドルウェアとして広く使用されました。このサービスは現在はアクティブではありません。
ROMEプロジェクト
包括的な Java RSS プロジェクトである ROME は、開発者が FeedSync サービスを使用するアプリを作成するための Javaレイヤーを作成するため、FeedSync 仕様の実装となります。
メッシュ4x
Mesh4x は、メッシュベースのアプリケーション向けのライブラリ、ツール、アプリケーション、サービスのオープンソース セットであり、バージョン管理標準として FeedSync を使用し、SMS テキスト メッセージを介してデータを同期するための Feedsync にヒントを得たパケットベースのプロトコルを実装します。
参照
参考文献
- ^ 「FeedSync for Atom and RSS (v1.0) 仕様」。2011年1月3日。2017年12月24日時点のオリジナルよりアーカイブ。
外部リンク
仕様
- Wayback Machineの Atom および RSS の FeedSync (2017 年 12 月 24 日アーカイブ)
- Wayback Machineのコレクションの FeedSync (2017 年 12 月 24 日アーカイブ)
- Dave Winer による RSS 2.0 仕様
- Atom 仕様は 2010-12-25 にWayback Machineにアーカイブされています
コード
- Codeplex FeedSync アーカイブとWayback Machineでのソースコードのダウンロード(2021 年 6 月 29 日アーカイブ)
- FeedSync サービス サンプル
- SSE for .NET Codeplex プロジェクト
記事
- Really Simple Sharing の Ray Ozzie による非推奨のブログ エントリ。
- 視覚化 シンプルな共有拡張機能が Web をどのように変えるか[永久リンク切れ ]。
