distributed nets

41
Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий lvee

Upload: zagru

Post on 22-May-2015

611 views

Category:

Technology


1 download

DESCRIPTION

Distributed networks help control yourself online identity in the Internet.A characteristic feature of them is absence of a central server. Nodesin the network belong to each of itsparticipants, and the software runs on your computeruser or a trusted server. The user determines the distribution policyof its data.Distributed social networks built on open technologies: Atom,WebFinder, OpenID/OAuth, Salmon, ActivityStreams and i.e.Most of developing distributed networks is opensourced and underdevelopment. Some of them is available for usage. For example:SatausNet . StatusNet is the open source microblogging platform thathelps you share and connect in real-time within your own domain. Yetanother distibuted social network OneSocialWeb dream of a world whereall social networks are connected and work together in a way similarto email.

TRANSCRIPT

Page 1: Distributed nets

Открытые протоколы - основа распеределеннхсоциальных сетей.

Александр Загацкий

lvee

Page 2: Distributed nets

11 апреля - судный день

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 3: Distributed nets

SkyNet Goes Online

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 4: Distributed nets

11 апреля

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 5: Distributed nets

11 апреля

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 6: Distributed nets

foursquare - down

социальная сеть с функцией геопозиционирования

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 7: Distributed nets

hotsuite - down

"панель управления" социальными сервисами

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 8: Distributed nets

quora - down

социальный сервис обмена знаниями

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 9: Distributed nets

reddit - down

социальный новостной сайт

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 10: Distributed nets

FriendFeed - down

агрегатор информации из различных социальных сетей

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 11: Distributed nets

Тут были мои заметки

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 12: Distributed nets

Так сохранился сайт в кэше

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 13: Distributed nets

Интернет не работает

В ожидании когда заработает Internet

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 14: Distributed nets

Сервисы могут быть куплены

Письмо от Yahoo! о продаже Delicious

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 15: Distributed nets

Сервисы могут неожиданно закрыться

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 16: Distributed nets

Распределенные сети

Основные черты

программное обспечение установлено на доверенномсервереконтроль над распространением информациибезопасный обмен информацией между узламиданные сохраняются на персональном сервересобственные группы пользователей и политикараспространения информацииникаких пользовательских соглашений. Ваша информацияостается вашей :-)

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 17: Distributed nets

Протоколы и форматы

О чем пойдет речь:

Atom/RSSWebFingerOpenID/OAuthPubsubhubbubActivityStreamsSalmonXMPPPortable Contacts

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 18: Distributed nets

Atom

Формат синдикации Atom позволяет описывать наборывеб-ресурсов

основан на XML и расширяемсовременная замена RSSявляется контейнером для других форматов

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 19: Distributed nets

Пример Atom

� �1 <?xml version="1.0" encoding="utf-8"?>2 <feed xmlns="http://www.w3.org/2005/Atom">3 <title>Example Feed</title>4 <link href="http://example.org/"/>5 <updated>2003-12-13T18:30:02Z</updated>6 <author>7 <name>John Doe</name>8 </author>9 <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</

id>10 <entry>11 <title>Atom-Powered Robots Run Amok</title>12 <link href="http://example.org/2003/12/13/atom03"

/>13 <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a

</id>14 <updated>2003-12-13T18:30:02Z</updated>15 <summary>Some text.</summary>16 </entry>17 </feed>� �

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 20: Distributed nets

ActivityStreams - cоциальная активность

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 21: Distributed nets

Иван Васильевич меняет профессию

Verb Object

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 22: Distributed nets

WebFinger

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 23: Distributed nets

WebFinger - набор технологий и форматов

The Hammer Stack

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 24: Distributed nets

Webfinger - цель профиль пользователя

LRRD - Link-based Resource Descriptor Discovery protocolНачнем с адреса:

[email protected]

Определяем LRDD адрес:

http://status.net/.well-known/host-meta

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 25: Distributed nets

Webfinger - цель профиль пользователя

curl http://status.net/.well-known/host-meta� �1 <?xml version="1.0" encoding="UTF-8"?>2 <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0"3 xmlns:hm="http://host-meta.net/xrd/1.0">4 <hm:Host>status.net</hm:Host>5 <Link rel="lrdd" template="http://status.net/xrd?uri

={uri}">6 <Title>Resource Descriptor</Title>7 </Link>8 </XRD>� �

Интерес представляет:

http://status.net/xrd?uri=\{uri\}

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 26: Distributed nets

Webfinger - цель профиль пользователя

Берем:

[email protected]

Добавляем acct:

acct:[email protected]

Адрес для запроса XRD:

http://status.net/xrd?uri=acct:[email protected]

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 27: Distributed nets

Extensible Resource Descriptor (XRD)

curl http://status.net/xrd?uri=acct:[email protected]� �1 <?xml version="1.0" encoding="UTF-8"?>2 <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">3 <Subject>acct:[email protected]</Subject>4 <Link rel="http://webfinger.net/rel/profile-page"5 type="text/html" href="http://zag.status.net/zag"/>6 <Link rel="http://microformats.org/profile/hcard"7 type="text/html" href="http://zag.status.net/hcard"/>8 <Link rel="salmon" href="http://zag.status.net/main/

salmon/user/1"/>9 <Link rel="http://salmon-protocol.org/ns/salmon-

replies"10 href="http://zag.status.net/main/salmon/user/1"/>11 <Link rel="magic-public-key"12 href="data:application/magic-public-key,RSA.(...)c=.

AQAB"/>13 <Link rel="http://ostatus.org/schema/1.0/subscribe"14 template="http://zag.status.net/main/ostatussub?

profile={uri}"/>15 <Link rel="http://specs.openid.net/auth/2.0/provider"16 href="http://zag.status.net/zag"/>17 </XRD>� �

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 28: Distributed nets

XRD

XRD содержит много полезной информации о пользователе:

адрес openid серверапубличный ключданные для других протоколов

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 29: Distributed nets

OpenID/OAuth - протоколы аутентификации и авторизации

Позволяют повысить безопасность при взаимодействиинескольких независимых сервисов.

Пример openid адреса:http://zag.myopenid.com/

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 30: Distributed nets

Адрес OpenID сервера в профиле XRD

� �1 <?xml version="1.0" encoding="UTF-8"?>2 <XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0">3 <Subject>acct:[email protected]</Subject>4 <Link rel="http://microformats.org/profile/hcard"5 type="text/html" href="http://zag.status.net/hcard"/>6 <Link rel="salmon" href="http://zag.status.net/main/

salmon/user/1"/>7 <Link rel="http://salmon-protocol.org/ns/salmon-

replies"8 href="http://zag.status.net/main/salmon/user/1"/>9 <Link rel="http://specs.openid.net/auth/2.0/provider"

10 href="http://zag.status.net/zag"/>11 </XRD>� �

Адрес OpenID сервера:� �1 <Link rel="http://specs.openid.net/auth/2.0/provider"2 href="http://zag.status.net/zag"/>� �

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 31: Distributed nets

Простой способ ввода OpenID

Из исходного:

[email protected]

Получили адрес OpenID сервера:http://zag.status.net/zag

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 32: Distributed nets

pubsubhubbub - протокол подписки/публикации обновлений

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 33: Distributed nets

Опрос ресурсов для обновлений

Обычная структура

Hot Day

Hot Day

Недостаток: излишняя нагрузка на источник

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 34: Distributed nets

Снижение нагрузки на исходный сайт

Уведомления о новых записях

Hot Day

Hot Day

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 35: Distributed nets

Возможные схемы распределенных структур

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 36: Distributed nets

Salmon protocol

Salmon - протокол обмена сообщениями с проверкойподлинности отправителя

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 37: Distributed nets

Определение salmon-endpoint

Atom/RSS ссылка:� �1 <link rel="salmon" href="http://example.org/salmon-

endpoint"/>� �XRD:� �

1 <Link rel="salmon" href="http://zag.status.net/main/salmon/user/1"/>

2 <Link rel="http://salmon-protocol.org/ns/salmon-replies"

3 href="http://zag.status.net/main/salmon/user/1"/>� �

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 38: Distributed nets

Salmon - алгоритм взаимодействия

Atom entry

Salmon

endpoint

XRDrel="magic-public-key"

verifyMagicSig

200 OK

ActivityStreams

+

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 39: Distributed nets

XMPP и Portable Contacts

Также:

XMPP

Выступает в качестве транспорта

Portable Contacts

Сервис доступа к адресной книге ( OAuth )

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 40: Distributed nets

Открытые распределенные сети

С чего начать знакомство ?

StatusNet

Платформа для микроблоггинга StatusNet. http://status.net/

Diaspora

Социальная сеть Diaspora. http://www.joindiaspora.com/

OneSocialWeb

Социальная сеть OneSocialWeb, построенная на основепротокола XMPP. http://onesocialweb.org/

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий

Page 41: Distributed nets

Вопросы

Вопросы ?

The Hammer Stack http://hueniverse.com/2009/11/the-discovery-protocol-stack-redux/"Социальные API и протоколы". Загацкий А.http://writeat.com/zag/social-book/home page, mail http://zag.ru, zag(at)cpan.org

Открытые протоколы - основа распеределеннх социальных сетей. Александр Загацкий