Brad FitzpatrickGoogle, Inc.2007-12-19

Содержание

Слайд 2

Открытие Социального Графа или… “Интероперабельность: Прошлое, Настоящее и Светлое Будущее” День Google Code Москва, 2007-12-18

Brad

Открытие Социального Графа или… “Интероперабельность: Прошлое, Настоящее и Светлое Будущее” День Google
Fitzpatrick Google, Inc. 2007-12-19

Слайд 3

О докладчике

Автор и создатель …
LiveJournal
Блоггинг + социальная сеть
Система точных настроек безопасности для

О докладчике Автор и создатель … LiveJournal Блоггинг + социальная сеть Система
всего
RSS/Atom (публикация + потребление данных)
Агрегация каналов данных
Открытые, документированные API
OpenID
Децентрализованный протокол идентификации
Без определённой аварийной точки (авария в каком-либо месте не мешает работе системы)
Инфраструктурные компоненты для сайтов с высокой нагрузкой
Memcached, MogileFS, Perlbal, djabberd (XMPP сервер), …

Слайд 4

О докладчике

Вещи, которые меня вдохновляют…
Децентрализация
Интероперабельность, Кооперация
Открытые протоколы
Социальные сети

О докладчике Вещи, которые меня вдохновляют… Децентрализация Интероперабельность, Кооперация Открытые протоколы Социальные сети

Слайд 5

Сегодня мы обсудим…

Социальный Граф
Как мы все связаны друг с другом?
Социальные приложения
… делаем

Сегодня мы обсудим… Социальный Граф Как мы все связаны друг с другом?
полезные вещи с помощью Социального Графа
Интероперабельность
Единый Социальный Граф, или тысячи несвязанных друг с другом? Или и то и другое?
Как писать социальные приложения? И где их запускать?
Безопасность
Личные идентификаторы, личные отношения, персоны, …
Где находятся данные?
Светлое будущее
Проблески надежды на горизонте

Слайд 6

Социальный Граф

Как мы связаны друг с другом
В мире существует только один реальный

Социальный Граф Как мы связаны друг с другом В мире существует только
социальный граф
Каждый сайт представляет только свою собственную часть или реплику единого графа
Направленный граф
Некоторые сайты моделируют такой граф как симметричный (ненаправленный) по разным причинам (вирусное продвижение, меньше объяснений, проще код?)
“Гигантский Глобальный Граф”, Тим Бернерс-Ли
http://dig.csail.mit.edu/breadcrumbs/node/215
ГГГ, от изобретателя WWW
Связывает людей + отношения, не документы (как WWW)

Слайд 7

Социальные Приложения

Сообщение
Пихнуть (Poke) Идиоматическое выражение из Facebook: функция (приложение), которое позволяет быстро отправить

Социальные Приложения Сообщение Пихнуть (Poke) Идиоматическое выражение из Facebook: функция (приложение), которое
человеку прикольное напоминание что-нибудь сделать (или просто появиться)
Кинуть овцу (Throw sheep) Идиоматическое выражение из Facebook: функция (приложение), которое не просто отправляет человеку инвайт или напоминание, а картинку (в данном случае овцы. Есть варианты с пивом, впрочем). Модернизированный вариант «Пихнуть».
….
Dopplr.com:
Определяет дни путешествия и пункты назначения,
Потом сообщает, кто из ваших друзей будет в том же месте.
Система должна знать ваших друзей, чтобы это сделать
Это социальное приложение, потому что … оно зависит от ГГГ.
Должно ли оно заново спрашивать вас о друзьях? Или самостоятельно взять откуда-то эти сведения? Откуда?

Слайд 8

Безопасность, Персоны, …

Персоны
Пример:
Работа (Профессиональные)
Открытый Интернет (много не открываем)
Персональные (только для друзей)
Синхронизировать аккаунты

Безопасность, Персоны, … Персоны Пример: Работа (Профессиональные) Открытый Интернет (много не открываем)
только одной и той же персоны
Не позволяет открывать одной персоне другую, пока на то нет желания.
OK: открытый интернет --> работа (зависит от пользователя)
Не OK: работа --> открытый интернет (снова, зависит от пользователя)

Слайд 9

Безопасность, Персоны, …

Что может быть закрытым?
Идентификаторы могут быть закрытыми
Когда идентификатор является контактом

Безопасность, Персоны, … Что может быть закрытым? Идентификаторы могут быть закрытыми Когда
(email, IM, телефон)
Если открыть в общий доступ свою почтовую адресную книгу как сеть друзей… То у вас ещё долго не будет так много друзей, как было :-)
Вы можете открыть свою собственную контактную информацию:
… вы шпион. Звонки в 3 ночи в порядке вещей... Дополнительные деньги!
Отношения, даже без контактной информации, могут быть закрытыми.
Пожалуй, не очень разумно указывать отношения «Друг (френд)» одновременно с женой и с любовницей в рамках открытой социальной сети (сайта). (Справедливо для одной и той же персоны, впрочем :-))

Слайд 10

Разрастание Социальных Сетей

Мой личный опыт
LiveJournal
Я, и только я использовал и поддерживал свою

Разрастание Социальных Сетей Мой личный опыт LiveJournal Я, и только я использовал
сеть.
Там были все мои друзья.
Всё было просто.
Friendster, MySpace, Facebook, Orkut, Hi5, LinkedIn, Tribe, Meetup, Twitter, Jaiku, Dodgeball, Pownce, Digg, …
Рутина. Слишком сложно поддерживать. Стресс.
Где теперь мои друзья?
Везде. Кто ж их знает? Так много соц. сетей. И у меня нет аккуратного и актуального репозитория связей и отношений с ними.

Слайд 11

Проблемы

Разрастание неинтероперабельных социальных сетей и приложений
Острова друзей
Невозможно добавлять друзей через острова
Невозможно даже

Проблемы Разрастание неинтероперабельных социальных сетей и приложений Острова друзей Невозможно добавлять друзей
синхронизировать данные на каждом острове, если хотите
Невозможно кинуть овцу через острова
Сложно создавать социальные приложения
С нуля создавать? Или на существующей платформе? Если да, на какой?
Откуда взять социальный граф?
Попросить пользователей создать? Найти на дороге? Где?

Слайд 12

Проблемы

Пользователи разочарованы
Устали каждый раз заводить сеть друзей на каждом сайте
Устали получать инвайты

Проблемы Пользователи разочарованы Устали каждый раз заводить сеть друзей на каждом сайте
(приглашения).
Переживают по поводу безопасности и управления собственными данными
Разработчики разочарованы
Сложно создаваемый, неполный социальный граф, даже когда пользователям он очень нужен.
Попросить создать? Это всем надоело.
Привязаться к существующему? К какому? Почему к нему?

Слайд 13

Идеал

Идеальное, светлое(?) будущее,
Просто писать социальные приложения
Простой доступ к социальному графу
… в соответствии

Идеал Идеальное, светлое(?) будущее, Просто писать социальные приложения Простой доступ к социальному
с настройками доступа,
… и пользователи контролируют свои данные, и имеют возможность обновлять их глобально.
Это всё работает через открытые протоколы и без централизованного провайдера
Пользователи могут даже использовать собственного поставщика графа (так же, как сегодня это возможно для идентификации через OpenID), или делегировать управление провайдеру, которому доверяют.

Слайд 14

Но мы пока в настоящем

Но мы пока в настоящем

Слайд 15

Как приблизить будущее?

Множество маленьких шагов?
Кирпичики для создания системы, вроде бы, быстро развиваются

Как приблизить будущее? Множество маленьких шагов? Кирпичики для создания системы, вроде бы,
и «взрослеют»
Медленно стремясь к идеалу
Один большой шаг, который все делают одновременно?
Сомнительно.

Слайд 16

Сравнение с другими соц. системами

Электронная почта
Небольшой отрезок времени неинтероперабельна, главным образом до

Сравнение с другими соц. системами Электронная почта Небольшой отрезок времени неинтероперабельна, главным
существования глобальной сети.
Глобальные идентификаторы: brad@______.___ (точно указывает, какой именно “brad”)
Отлично работает, кроме момента с идентификацией отправителя
SPF/DomainKeys не используются широко
Со спамом бороться было бы гораздо проще, если бы мы знали, кто есть кто

Слайд 17

Сравнение с другими соц. системами

Мгновенный обмен сообщениями (IM)
Исторически, смесь из проприетарных, неинтероперабельных,

Сравнение с другими соц. системами Мгновенный обмен сообщениями (IM) Исторически, смесь из
отгороженных друг от друга решений
AOL не отправляет сообщения в Yahoo, которая не может отправить сообщение в MSN, который не может отправить в ICQ
Бизнесы сливаются и/или кооперируются, так возникают интероперабельные решения
AOL и ICQ. MSN и Yahoo.
Хаки позволяют приобрести иллюзию интероперабельности:
Gaim, Trillian, Miranda, AIM-in-GMail/GTalk
Объединение иллюзорно, глобальный идентификатор отсутствует (что печатаем на визитках?)
Шанс на будущее: Jabber (XMPP). Истинное объединение.
Earthlink, Google Talk, LiveJournal, SAPO.pt, ….
Свободное объединение (libre & gratis). Бизнес не вмешивается. Все могут пробовать и делать, как и с email (хотя в XMPP есть аутентификация пиров)
Глобальные идентификаторы (brad@___.__)

Слайд 18

Сравнение с другими соц. системами (таблица)

Сравнение с другими соц. системами (таблица)

Слайд 19

Как улучшить ситуацию?

Множество мелких проблем
Нет одного решения
Множество маленьких шагов для решения
Обсудим некоторые...

Как улучшить ситуацию? Множество мелких проблем Нет одного решения Множество маленьких шагов для решения Обсудим некоторые...

Слайд 20

OpenSocial

Предпосылки:
Будет множество социальных сетей (сайтов).
(так оно и есть уже)
Хотя на многих сайтах

OpenSocial Предпосылки: Будет множество социальных сетей (сайтов). (так оно и есть уже)
есть нишевые/региональные/сегментированные по рынку социальные приложения, многие из них полезны на всех сайтах.
Должно быть просто писать портируемые социальные приложения, которые встраиваются в любой сайт (контейнер)
OpenSocial
Пишем приложения на HTML+JavaScript, эти языки почти все знают, и развёртываем на контейнере OpenSocial (или на сайте с поддержкой).
Не зависит от Google. Это просто спецификация. Существует референсная реализация контейнера с открытым исходным кодом, так же можно сделать свою собственную.

Слайд 21

opensocial.* APIs

People
Информация о людях и их отношениях друг с другом
Activities
Возможность публиковать и

opensocial.* APIs People Информация о людях и их отношениях друг с другом
просматривать обновления активности людей
Persistence
Простое хранилище по типу ключ-значение, чтобы создавать приложения с персистентными данными без сервера приложений (БД)

Слайд 22

opensocial.people.*

Откуда контейнер OpenSocial берёт данные социального графа?
Зависит от контейнера.
Свой собственный граф.
Чужой граф?
Открытый

opensocial.people.* Откуда контейнер OpenSocial берёт данные социального графа? Зависит от контейнера. Свой
фрагмент “Гигантского Глобального Графа”, собранный через доступную XFN и FOAF разметку на сайтах?
Частные данные с установками прав доступа откуда-то ещё?
Всё перечисленное выше (или частично)?
На этом поле происходит масса интересного, и всё это очень ново…

Слайд 23

Из недавно найденного…

Diso-project.org
Распределённая социальная сеть:
XFN, hCard, OpenID, OAuth, и т.д.…
Plaxo.com, FriendFeed.com, Mugshot.org
Агрегация

Из недавно найденного… Diso-project.org Распределённая социальная сеть: XFN, hCard, OpenID, OAuth, и
из нескольких аккаунтов
SixApart’s http://updates.elsewhere.im/
XML-поток в реальном времени об изменениях отношений
Кто угодно может участвовать через OAuth
OSocial.net
“поддельная соц.сеть, мета-сеть, которая совмещает профили пользователей из нескольких.”, использует OpenSocial, FOAF, XFN

Слайд 24

Кидаем овец между островами

Немного для развёрнутого обсуждения, к несчастью
Пока просто рассуждения о

Кидаем овец между островами Немного для развёрнутого обсуждения, к несчастью Пока просто
том, что “было бы неплохо, если бы”
XMPP
Пожалуй, хороший кандидат
Проблема на старте: нужны по меньшей мере 1-2 крупных провайдера для начала, и/или множество небольших?
Собственно, это всё, что есть на ближайшее будущее

Слайд 25

Что сейчас может сделать сообщество разработчиков?

Кинуть овцу между островами?
XMPP? Сложно. Проблема холодного

Что сейчас может сделать сообщество разработчиков? Кинуть овцу между островами? XMPP? Сложно.
старта.
Синхронизировать друзей между островами, потом кидать овцу на каждом?
Более жизнеспособное короткосрочное «решение»
Когда пользователи хотят синхронизировать свои аккаунты (каждый аккаунт может быть для отдельной персоны)
Но где взять данные?
Опубликовать их!
Упростив пользователям возможность вывода данных из сервиса, мы повышаем их доверие к нему.

Слайд 26

Экспорт открытых данных об отношениях

FOAF (foaf-project.org)
“Friend Of A Friend” («Друг Друга»)
Файлы формата

Экспорт открытых данных об отношениях FOAF (foaf-project.org) “Friend Of A Friend” («Друг
XML RDF представляют профили, друзей, интересы, места учёбы и дайджест SHA1_hex (“mailto:” + адрес_email). Поддерживает расширения.
В HTML определяется с помощью:

Поддерживается LiveJournal, Tribe.net, et al
XFN (microformats.org)
Более простое решение:
Bob.
Поддерживается массой сайтов, каждый день количество растёт.

Слайд 27

Кто есть кто? Множественные аккаунты персоны

Пользователи могут связывать аккаунты между собой
С помощью

Кто есть кто? Множественные аккаунты персоны Пользователи могут связывать аккаунты между собой
XFN:
My other site.
С помощью FOAF:
foaf:mbox_sha1sum
foaf:homePage, etc

Слайд 28

Направленный граф с ветвями “Я заявляю, что это я!”

brad.
livejournal.com

myspace.com/bradfitz

bradfitz.com

Это я!

Это я!

Это я!

Направленный граф с ветвями “Я заявляю, что это я!” brad. livejournal.com myspace.com/bradfitz

Слайд 29

Нельзя доверять однонаправленным заявлениям «Это Я!»

Нельзя доверять однонаправленным заявлениям «Это Я!»

Слайд 30

Атака

brad.
livejournal.com

myspace.com/bradfitz

bradfitz.com

Это я!

Это я!

Это я!

attacker.com

Это я!

Атака brad. livejournal.com myspace.com/bradfitz bradfitz.com Это я! Это я! Это я! attacker.com Это я!

Слайд 31

От начального узла, следуем вперёд только по ветвям «Это я»…

brad.
livejournal.com

myspace.com/bradfitz

bradfitz.com

я!

я!

я!

attacker.com

я!

david.
livejournal.com

sergey.com

друг

друг

От начального узла, следуем вперёд только по ветвям «Это я»… brad. livejournal.com

Слайд 32

Синхронизация

Пример: что можно сделать с таким массивным направленным графом…
Идея:
Кластер аккаунтов

Синхронизация Пример: что можно сделать с таким массивным направленным графом… Идея: Кластер
одной персоны (ссылки rel=“me”, etc)
Поиск ссылок друзей
Поиск ситуации, когда двое пользователей друзья на сайте А, но не на сайте Б
Может, они просто не знают друг о друге на сате Б?

Слайд 33

Синхронизация

brad.
livejournal.com

myspace.com/bradfitz

bradfitz.com

я!

я!

я!

david.
livejournal.com

myspace.com/david

друг

Потерянный друг

я!

я!

Синхронизация brad. livejournal.com myspace.com/bradfitz bradfitz.com я! я! я! david. livejournal.com myspace.com/david друг Потерянный друг я! я!

Слайд 34

Резюме

Ситуация пока не блестящая,
Всё ещё масса проблем
Но я оптимист:
OpenID, OAuth, Yadis, XRDS
OpenSocial
FOAF,

Резюме Ситуация пока не блестящая, Всё ещё масса проблем Но я оптимист:
микроформаты (XFN, hCard)
XMPP
Все кирпичики складываются вместе в весьма интересное неплохое решение
Сообщество, вроде бы, хочет работать вместе, чтобы сложить все кирпичики вместе, при этом устраняя недостатки
Имя файла: Brad-FitzpatrickGoogle,-Inc.2007-12-19.pptx
Количество просмотров: 67
Количество скачиваний: 0