Salmon
Salmon je protokol pro výměnu zpráv skrze HTTP navržený tak, že umožňuje decentralizované komentáře a oznámení k článkům z newsfeed jako jsou příspěvky na blogu. Umožňuje vznik jednoho společného diskusního vlákna, pro zprávu z původního zdroje a jakéhokoli agregátoru, který zprávy odebírá. Tedy, pokud se článek objevil na 3 stránkách A (zdroj), B a C (agregátory), tak uživatelé na všech 3 stránkách mohou číst a přispívat do jediného diskusního vlákna bez ohledu na to, z jaké stránky se dívají.
Příklad
Zdroj poskytuje koncový bod protokolu Salmon - URL v metadatech RSS odběru. Agregující stránka si zaznamená tento koncový bod.
<link rel="salmon" href="http://example.org/salmon-endpoint"/>
Pokud uživatel agregátoru napíše komentář, agregátor vytvoří komentář v původním zdroji.
<?xml version='1.0' encoding='UTF-8'?>
<entry xmlns='http://www.w3.org/2005/Atom'>
<id>tag:example.com,2009:cmt-0.44775718</id>
<author><name>test@example.com</name><uri>bob@example.com</uri></author>
<thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0'
ref='tag:blogger.com,1999:blog-893591374313312737.post-3861663258538857954'>
tag:blogger.com,1999:blog-893591374313312737.post-3861663258538857954
</thr:in-reply-to>
<content>Salmon swim upstream!</content>
<title>Salmon swim upstream!</title>
<updated>2009-12-18T20:04:03Z</updated>
</entry>
Komentář bude kódován pomocí Base64, digitálně podepsán, a odeslán pomocí POST na koncový bod původního zdroje.
POST /salmon-endpoint HTTP/1.1
Host: example.org
Content-Type: application/atom+xml
<?xml version='1.0' encoding='UTF-8'?>
<me:env xmlns:me="http://salmon-protocol.org/ns/magic-env">
<me:data type='application/atom+xml'>
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxlbnRyeSB4bWxucz0naHR0
cDovL3d3dy53My5vcmcvMjAwNS9BdG9tJz4NCiAgPGlkPnRhZzpleGFtcGxlLmNvbSwyMDA5OmNt
dC0wLjQ0Nzc1NzE4PC9pZD4NCiAgPGF1dGhvcj48bmFtZT50ZXN0QGV4YW1wbGUuY29tPC9uYW1l
Pjx1cmk+Ym9iQGV4YW1wbGUuY29tPC91cmk+PC9hdXRob3I+DQogIDx0aHI6aW4tcmVwbHktdG8g
eG1sbnM6dGhyPSdodHRwOi8vcHVybC5vcmcvc3luZGljYXRpb24vdGhyZWFkLzEuMCcNCiAgICBy
ZWY9J3RhZzpibG9nZ2VyLmNvbSwxOTk5OmJsb2ctODkzNTkxMzc0MzEzMzEyNzM3LnBvc3QtMzg2
MTY2MzI1ODUzODg1Nzk1NCc+DQogICAgdGFnOmJsb2dnZXIuY29tLDE5OTk6YmxvZy04OTM1OTEz
NzQzMTMzMTI3MzcucG9zdC0zODYxNjYzMjU4NTM4ODU3OTU0DQogIDwvdGhyOmluLXJlcGx5LXRv
Pg0KICA8Y29udGVudD5TYWxtb24gc3dpbSB1cHN0cmVhbSE8L2NvbnRlbnQ+DQogIDx0aXRsZT5T
YWxtb24gc3dpbSB1cHN0cmVhbSE8L3RpdGxlPg0KICA8dXBkYXRlZD4yMDA5LTEyLTE4VDIwOjA0
OjAzWjwvdXBkYXRlZD4NCjwvZW50cnk+
</me:data>
<me:encoding>base64url</me:encoding>
<me:alg>RSA-SHA256</me:alg>
<me:sig>
EvGSD2vi8qYcveHnb-rrlok07qnCXjn8YSeCDDXlbhILSabgvNsPpbe76up8w63i2f
WHvLKJzeGLKfyHg8ZomQ
</me:sig>
</me:env>
Komentář je poté zveřejněn původním zdrojem, takže odběratelé mohou aktualizovat stav konverzace. Protokol je zabezpečen tak, že každý agregátor a odběratel je jednoznačně identifikován, takže zdroj může použít filtry nebo ban na nepřátelské servery nebo uživatele dle svého uvážení.
Použití
Distribuované sociální sítě jako GNU social a Diaspora používají Salmon tak, jak je definováno ve specifikaci OStatus ke koordinaci diskuse mezi uživateli na různých serverech. Člen jednoho serveru může publikovat příspěvek, který je šířen ostatním uživatelům v síti pomocí protokolu Salmon, kteří na příspěvek mohou obdobným způsobem reagovat.
Související články
- RSS
- Atom (standard)
- Publish Subscribe
- OStatus
Reference
V tomto článku byl použit překlad textu z článku Salmon (protocol) na anglické Wikipedii.
Externí odkazy
- Salmon Protocol Archivováno 29. 7. 2016 na Wayback Machine. - Domovská stránka a technické informace k protokolu