FeedSync para Atom y RSS , anteriormente conocido como Simple Sharing Extensions , son extensiones para los formatos de feed RSS y Atom diseñadas para permitir la sincronización bidireccional de información mediante diversas fuentes de datos. Desarrollado inicialmente por Ray Ozzie , arquitecto jefe de software en Microsoft , actualmente lo mantienen Jack Ozzie , George Moromisato , Matt Augustine , Paresh Suthar y Steven Lees . Dave Winer , diseñador de las variantes de la especificación RSS de UserLand Software , ha contribuido a la elaboración de las especificaciones.
La última versión de la especificación FeedSync para Atom y RSS es la 1.02. [ 1 ] FeedSync para Atom y RSS tiene licencia bajo la Licencia Creative Commons Atribución-CompartirIgual (versión 2.5) y la Promesa de Especificación Abierta de Microsoft .
El objetivo de FeedSync para Atom y RSS es definir las extensiones mínimas necesarias para permitir que las aplicaciones que cooperan de forma flexible utilicen las fuentes Atom y RSS como base para compartir elementos; es decir, la sincronización bidireccional y asíncrona de elementos nuevos y modificados entre dos o más fuentes suscritas de forma cruzada.
Tenga en cuenta que, si bien gran parte de FeedSync se define actualmente en términos de fuentes Atom y RSS, en esencia lo que FeedSync requiere estrictamente es:
- Una colección plana de elementos para sincronizar
- Un conjunto de metadatos de sincronización por elemento que se mantienen en todos los puntos finales.
- Un conjunto de algoritmos seguidos por todos los puntos finales para crear, actualizar, fusionar y resolver conflictos de todos los elementos.
Esto significa que FeedSync puede implementarse con casi cualquier lenguaje de programación y tener sus metadatos representados en muchos formatos de datos estructurados.
Ejemplos
Canal RSS
<?xml version="1.0" encoding="utf-8"?> <rss version= "2.0" xmlns:sx= "http://feedsync.org/2007/feedsync" > <channel> <title> Lista de tareas </title> <description> Una lista de elementos para hacer </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]{{enlace muerto|fecha=diciembre de 2016 |bot=InternetArchiveBot |intento de corrección=sí }}" tipo= "agregado" título= "Lista de tareas (copia de Jacks)" /> </sx:sharing> <item> < título> Comprar comestibles </título > <descripción> Conseguir leche, huevos, mantequilla y pan </descripción> <sx:sync id= "item_1_myapp_2005-05-21T11:43:33Z" actualizaciones= "3" > <sx:history secuencia= "3" cuando= "2005-05-21T11:43:33Z" por= "JEO2000" /> <sx:history secuencia= "2" cuando= "2005-05-21T10:43:33Z" por= "REO1750" /> <sx:history sequence= "1" when= "2005-05-21T09:43:33Z" by= "REO1750" /> </sx:sync> </item> </channel> </rss>Alimentación atómica
<?xml version="1.0" encoding="utf-8"?> <feed xmlns= "http://www.w3.org/2005/Atom" xmlns:sx= "http://feedsync.org/2007/feedsync" > <title> Lista de tareas </title> <subtitle> Una lista de elementos para hacer </subtitle> <link rel= "self" href= "http://example.com/partial.xml" /{{ enlace muerto| fecha= diciembre de 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]{{enlace muerto|fecha=diciembre de 2016 |bot=InternetArchiveBot |intento de corrección=sí }}" tipo= "agregado" título= "Lista de tareas (copia de Jacks)" /> </sx:sharing> <entrada> <título> Comprar comestibles </ título> <contenido> Conseguir leche, huevos, mantequilla y pan </contenido> <id> urn:uuid:60a76c80-d399-11d9-b93C-0003939e0aa0 </id> <autor> <nombre> Ray Ozzie </nombre> </autor> <actualizado> 2005-05-21T11:43:33Z </actualizado> <sx:sync id= "item_1_myapp_2005-05-21T11:43:33Z" actualizaciones= "3" > <sx:history sequence= "3" when= "2005-05-21T11:43:33Z" by= "JEO2000" /> <sx:history sequence= "2" when= "2005-05-21T10:43:33Z" por= "REO1750" /> <sx:history sequence= "1" when= "2005-05-21T09:43:33Z" por= "REO1750" /> </sx:sync> </entry> </feed>Artículo POX
<?xml version="1.0" encoding="utf-8"?> <item> <subject> Comprar comestibles </subject> <body> Conseguir leche y huevos </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>Elemento JSON
{ "título" : "Comprar comestibles" , "descripción" : "Obtener leche y huevos" , "sincronizar" : { "id" : "item_1_myapp_2005-05-21T11:43:33Z" , "actualizaciones" : "1" , "historial" : [ { "secuencia" : "1" , "cuándo" : "2005-05-21T09:43:33Z" , "por" : "REO1750" } ] } }![]()
Ejemplos de uso en el mundo real
Existen varios ejemplos de uso "en el mundo real" de las fuentes FeedSync para sincronizar datos entre aplicaciones.
Servicio FeedSync
Este prototipo de servicio para desarrolladores implementa un punto final de FeedSync basado en HTTP. Las aplicaciones pueden usar comandos HTTP GET y POST para sincronizar feeds; este último realiza la operación de fusión de FeedSync en el feed alojado por el servicio FeedSync. El servicio ya no está activo.
Ángel Fuerte III
Las fuentes de FeedSync se utilizaron ampliamente en el ejercicio Strong Angel III en agosto de 2006 como un software intermedio ligero para conectar aplicaciones de Microsoft , Google , ESRI y otras en ordenadores de escritorio y dispositivos móviles. El servicio ya no está activo.
Proyecto ROMA
El proyecto integral Java RSS, ROME , es una implementación de la especificación FeedSync, ya que crea una capa Java para que los desarrolladores creen aplicaciones que utilicen el servicio FeedSync.
Malla4x
Mesh4x , un conjunto de bibliotecas, herramientas, aplicaciones y servicios de código abierto para aplicaciones basadas en redes malladas, utiliza FeedSync como estándar de control de versiones e implementa un protocolo basado en paquetes inspirado en FeedSync para sincronizar datos a través de mensajes de texto SMS.
Véase también
Referencias
- ↑ "Especificación de FeedSync para Atom y RSS (v1.0)" . 3 de enero de 2011. Archivado del original el 24 de diciembre de 2017.
Enlaces externos
Presupuesto
- FeedSync para Atom y RSS en Wayback Machine (archivado el 24 de diciembre de 2017)
- FeedSync para colecciones en Wayback Machine (archivado el 24 de diciembre de 2017)
- Especificación RSS 2.0 por Dave Winer
- Especificación de Atom archivada el 25/12/2010 en Wayback Machine.
Código
- Archivo de Codeplex FeedSync con descarga del código fuente en Wayback Machine (archivado el 29 de junio de 2021).
- Ejemplos del servicio FeedSync
- Proyecto SSE para .NET en Codeplex
Artículos
- Entrada de blog obsoleta de Ray Ozzie en Really Simple Sharing .
- Visualización: Cómo las extensiones de uso compartido simples cambiarán la web .
- RSS
- formatos de sindicación web
- Estándares basados en XML