OpenSocial

Публичная спецификация, предназначенная для приложений социальных сетей

OpenSocial
Первоначальный выпуск1 ноября 2007 г. ; 17 лет назад ( 2007-11-01 )
Стабильный релиз
2.5.1 / 30 августа 2013 г. ( 2013-08-30 )
Написано вJava , PHP , C# , JavaScript , HTML
ТипФреймворк веб-приложений
ЛицензияЛицензия Apache 2.0
Веб-сайтopensocial.org

OpenSocial — это общедоступная спецификация, описывающая набор общих интерфейсов прикладного программирования (API) для веб-приложений . Первоначально разработанный для приложений социальных сетей , он был разработан совместно Google , MySpace и другими социальными сетями. С тех пор он превратился в среду выполнения , которая позволяет сторонним компонентам, независимо от их уровня доверия, работать в рамках существующего веб-приложения.

OpenSocial Foundation интегрировал или поддерживал различные технологии Open Web , включая OAuth и OAuth 2.0 , Activity Streams и Portable Contacts . С момента своего создания 1 ноября 2007 года [1] приложения, реализующие API OpenSocial, могут взаимодействовать с любой системой социальных сетей, которая их поддерживает.

OpenSocial изначально принял универсальный подход к разработке. По мере развития платформы и расширения пользовательской базы она была модульной, что позволило разработчикам включать только необходимые компоненты платформы. [2] Orkut , клиент Google, был первым, кто поддержал OpenSocial. [3]

16 декабря 2014 года Консорциум Всемирной паутины (W3C) объявил, что Фонд OpenSocial передаст свою работу по стандартам в W3C Social Web Activity. [4] Это фактически интегрировало OpenSocial в Рабочую группу W3C по социальным сетям и Группу социальных интересов, тем самым распустив OpenSocial как отдельную организацию.

Структура

Структура OpenSocial [5]

В версии 0.9 OpenSocial включил поддержку языка на основе тегов . [6] известного как OSML. Этот язык облегчает доступ на основе тегов к данным из API OpenSocial , который ранее требовал асинхронного запроса на стороне клиента. Кроме того, он создал комплексную систему шаблонов тегов и принял язык выражений, который в некоторой степени основан на языке выражений Java .

Начиная с версии 2.0, OpenSocial начал поддерживать формат Activity Streams . [6]

История

Фон

OpenSocial обычно описывается как более открытая кроссплатформенная альтернатива Facebook Platform , фирменному сервису популярной социальной сети Facebook . [7]

Разработка

Ходили слухи, что OpenSocial является частью более крупной социальной сетевой инициативы Google под кодовым названием «Maka-Maka», [8] [9] , что на гавайском языке означает «близкий друг, с которым можно свободно получать и отдавать» . [10]

Выполнение

Проект с открытым исходным кодом Shindig был запущен в декабре 2007 года для предоставления эталонной реализации стандартов OpenSocial. Он пользуется поддержкой Google, Ning и других компаний, разрабатывающих программное обеспечение, связанное с OpenSocial. Парсер Myspace OpenSocial был выпущен как проект Negroni в январе 2011 года и предоставляет реализацию OpenSocial на языке C# .

Apache Rave — это легкая и основанная на открытых стандартах расширяемая платформа для использования, интеграции и размещения технологий и сервисов OpenSocial и W3C Widget. Она также обеспечит мощные возможности контекстно-зависимой персонализации, совместной работы и интеграции контента, а также высококачественную установку «из коробки», а также будет легко интегрироваться в другие платформы и решения. [11]

Shindig и Apache Rave больше не находятся в разработке и были прекращены Apache Foundation.

Использование

Корпоративные веб-сайты, такие как Friendster , hi5 , LinkedIn , MySpace , Orkut и Salesforce.com , являются основными пользователями OpenSocial. [12]

Friendster

Friendster развернул API из версии 0.7 спецификации OpenSocial, что упрощает запуск существующих приложений OpenSocial, использующих версию 0.7, на Friendster и позволяет охватить более 75 миллионов пользователей Friendster. Friendster также планирует поддерживать дополнительные API OpenSocial в ближайшие месяцы, включая новые API 0.8. [13]

привет5

hi5 использует поддержку Widgetbox для OpenSocial, чтобы получить доступ к выбору веб-виджетов, предоставляемых Widgetbox. [14]

МоеПространство

Myspace Developer Platform (MDP) основана на OpenSocial API. Она поддерживает социальные сети для разработки социальных и интерактивных виджетов. Ее можно рассматривать как ответ на платформу разработчиков Facebook. [15]

Проблемы безопасности

Первоначальная поддержка OpenSocial столкнулась с уязвимостями в безопасности, когда самопровозглашенный разработчик-любитель продемонстрировал эксплойты гаджета RockYou на Plaxo , а социальные сети Ning использовали гаджет iLike . [16] Как сообщил TechCrunch 5 ноября 2007 года, OpenSocial был быстро взломан. Общее время взлома iLike на основе OpenSocial на Ning составило 20 минут, при этом злоумышленник мог добавлять и удалять песни в плейлисте пользователя и получать доступ к информации о друзьях пользователя. [17]

Хезель и Иаконо показали, что «спецификации OpenSocial далеки от всеобъемлющих в отношении безопасности». [18] Они обсудили различные последствия безопасности в контексте OpenSocial. Они представили возможные уязвимости в целостности и аутентификации сообщений, конфиденциальности сообщений, управлении идентификацией и контроле доступа.

Выпуск версий

Критика первоначального выпуска

Несмотря на первоначальную шумиху и освещение в новостях, OpenSocial изначально столкнулся со множеством проблем; он работал только на Orkut , принадлежащем Google , и только с ограниченным количеством устройств, с многочисленными ошибками, сообщенными на других устройствах. Другие сети все еще рассматривали возможность внедрения фреймворка.

6 декабря TechCrunch опубликовал отчет основателя MediaPops Расса Уитмена, который сказал: «Хотя [они] изначально были очень воодушевлены, [они] на собственном горьком опыте узнали, насколько ограниченным на самом деле является релиз». Расс добавил, что «компоненты основной функциональности» отсутствуют, а фраза «написать один раз, распространить широко» неверна. [19]

Легенда:  Прекращено  Текущий

ВерсияДата выпускаЗаметки о выпуске
2.5.1 [20]30 августа 2013 г. ( 2013-08-30 )Просмотреть заметки о выпуске
2.5.0 [21]28 августа 2012 г. ( 2012-08-28 )Просмотреть заметки о выпуске
2.0.1 [22]23 ноября 2011 г. ( 2011-11-23 )Просмотреть заметки о выпуске
2.0.0 [23]18 августа 2011 г. ( 2011-08-18 )Просмотреть заметки о выпуске
1.1.0 [24]18 ноября 2010 г. ( 2010-11-18 )Просмотреть заметки о выпуске
1.0.0 [2]9 марта 2010 г. ( 2010-03-09 )Просмотреть заметки о выпуске
0.9.0 [25]15 апреля 2009 г. ( 2009-04-15 )Просмотреть заметки о выпуске
0.8.1 [26]25 сентября 2008 г. ( 2008-09-25 )Просмотреть заметки о выпуске
0.8.0 [27]27 мая 2008 г. ( 2008-05-27 )Просмотреть заметки о выпуске
0.7.0 [28]25 января 2008 г. ( 2008-01-25 )Просмотреть заметки о выпуске
0.6.0 [29]21 декабря 2007 г. ( 2007-12-21 )Просмотреть заметки о выпуске
0.5.0 [30]9 ноября 2007 г. ( 2007-11-09 )Просмотреть заметки о выпуске

Версия 2.5.1

Изменения в REST API были внесены для решения нескольких проблем, требовавших внесения изменений в спецификации OpenSocial, чтобы Open Mobile Alliance мог его использовать. [20]

Версия 2.5.0

Были добавлены общие контейнеры, которые предоставили «набор общих служб, которые разработчики контейнеров могут использовать для таких функций, как обратные вызовы событий жизненного цикла гаджета в браузере, встроенные возможности, обработчики выбора и обработчики действий». [21] Новый API метаданных дает приложениям OpenSocial возможность адаптироваться к возможностям различных контейнеров OpenSocial. Расширение аутентификации WAP было устарело.

Версия 2.0.1

Поддержка OAuth 2.0 была завершена в этой версии OpenSocial. [22]

Версия 2.0.0

OpenSocial представила поддержку Activity Streams . JSON стал предпочтительным форматом данных, а поддержка ATOM была прекращена. Формат Gadget был упрощен, чтобы дать возможность определять библиотеку шаблонов в спецификации Gadget. [23] Хотя это и не было завершено, была заложена основа для поддержки OAuth 2.0.

Версия 1.1.0

В ответ на потребности корпоративной среды OpenSocial добавил поддержку расширенных сценариев mashup. Это позволило гаджетам «безопасно отправлять сообщения друг другу в слабосвязанной манере». [24] Эта новая функция была названа Inter-Gadget Communication.

Версия 1.0.0

OpenSocial признала, что подход «один размер подходит всем» не будет работать для различных типов веб-сайтов, которые приняли платформу. Чтобы решить эту проблему, OpenSocial разделен на четыре модуля соответствия: Core API Server, Core Gadget Server, Social API Server и Social Gadget Server. [2] Это позволило разработчику выбирать модули, которые он хотел использовать, при использовании других служб, не являющихся частью OpenSocial. Были введены расширения, позволяющие разработчикам расширять контейнеры OpenSocial.

Версия 0.9.0

В ответ на отзывы и наблюдения за тем, как разработчики используют API, эта версия была сосредоточена на том, чтобы сделать «разработку, тестирование и развертывание приложений проще и быстрее, одновременно сокращая кривую обучения для новых разработчиков приложений». [25] OpenSocial Javascript API был оптимизирован, чтобы сделать его легким, сохранив при этом мощь старого Javascript API. Прокси-контент был введен, чтобы исключить необходимость для разработчиков обходить предыдущие ограничения AJAX . Прокси-контент позволяет извлекать контент из URL и отображать его в теге <Content>. В ответ на распространенное использование отправки данных на удаленный сервер сразу после запроса, OpenSocial 0.9.0 представил конвейеризацию данных. Конвейеризация данных позволяет разработчику указывать социальные данные, которые потребуются приложению, и немедленно делать эти данные доступными. Шаблоны OpenSocial были введены для создания управляемого данными пользовательского интерфейса с разделением разметки и программной логики. OpenSocial Markup Language (OSML Markup) — это новый набор стандартизированных тегов для выполнения общих задач или безопасного выполнения обычно небезопасных операций в шаблонах. OSML расширяем. Разработчики могут создавать библиотеку своих собственных тегов.

Версия 0.8.1

В этом второстепенном релизе основное внимание уделено протоколам «сервер-сервер», поскольку «схема Person была согласована с усилиями Portable Contacts, и было добавлено необязательное предложение RPC». [26] Протокол JSON-RPC был добавлен для увеличения функциональности «сервер-сервер». Протокол RESTful, представленный в v0.8.0, подвергся значительной переработке, в ходе которой было добавлено, изменено и удалено несколько полей.

Версия 0.8.0

OpenSocial изменил спецификации для контейнеров для реализации RESTful API . Многие изменения OpenSocial Javascript API сделали эту версию несовместимой с предыдущими версиями. Существующие гаджеты продолжали использовать v0.7.0. После обновления гаджета он будет использовать v0.8.0. Безопасность улучшилась с введением авторизации OAuth и HTML- санации, а также событий жизненного цикла контейнера. [27] Данные о персистентности хранились в JSON .

Версия 0.7.0

Выпущен как «первая итерация, которая может полностью поддерживать насыщенные социальные приложения». [28] Он добавил несколько стандартных полей для информации профиля, возможность отправлять сообщение для установки приложения, шаблон Activity для управления уведомлениями о действиях пользователей и упрощенный API сохранения для использования каналов вместо глобальных и ограниченных экземпляром данных приложения. Еще одно важное объявление поступило от Apache Shindig. Гаджеты, созданные Apache Shindig, имеют открытый исходный код. В координации с этим объявлением OpenSocial 0.7.0 представил спецификации гаджетов для разработчиков, чтобы иметь возможность определять свои гаджеты с помощью API гаджетов.

Версия 0.6.0

Безопасность была в центре внимания в версии 0.6.0. Контроль разрешений был ужесточен, чтобы предотвратить возврат информации гаджетом, если он не авторизован на это. Были добавлены новые классы, такие как класс Environment, позволяющий гаджету реагировать по-разному в зависимости от его среды, и класс Surface для поддержки навигации с одной поверхности на другую. Класс Activities был упрощен на основе потребностей разработчиков, а класс Stream был объявлен устаревшим. [29]

Версия 0.5.0

Google объявила о запуске OpenSocial с предварительным релизом версии 0.5.0. Хотя этот API был нестабилен, он представил «различные XML DTD, интерфейсы Javascript и другие структуры данных» [30] для платформы OpenSocial.

Ссылки

  1. ^ "Google запускает OpenSocial для распространения социальных приложений по всему Интернету – Новостные объявления – Новости от Google – Google". googlepress.blogspot.com . Получено 23 ноября 2015 г.
  2. ^ abc Mark Marum (1 января 2013 г.). "OpenSocial Specification 1.0.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  3. ^ "OpenSocial открывает новую банку с червями". CNET . Получено 8 ноября 2023 г. .
  4. ^ "OpenSocial Foundation Moving Standards Work to W3C Social Web Activity". W3C . 16 декабря 2014 г. Получено 17 декабря 2014 г.
  5. ^ Хезель, Маттиас (1 января 2011 г.). «Opensocial: средство для социальных приложений в Интернете». Commun. ACM . 54 (1): 139– 144. doi :10.1145/1866739.1866765. ISSN  0001-0782. S2CID  52805577.
  6. ^ ab "Заметки о выпуске спецификации OpenSocial". opensocial-resources.googlecode.com . Архивировано из оригинала 11 августа 2011 г. Получено 23 ноября 2015 г.
  7. Helft, Miguel; Brad Stone (31 октября 2007 г.). «Google и друзья объединяются в Facebook». The New York Times . Получено 31 октября 2007 г.
  8. Шонфельд, Эрик (29 октября 2007 г.). «Ответ Google Facebook: «Мака-Мака»». ТехКранч . Проверено 31 октября 2007 г.
  9. ^ Слоан, Джули. «Превратит ли «Мака-Мака» от Google Интернет в социальную сеть?». Wired . ISSN  1059-1028 . Получено 20 мая 2024 г.
  10. ^ "мака.мака". На Пуке Вехевехе Олело Гавайи . Улукау: Гавайская электронная библиотека. Архивировано из оригинала 18 сентября 2013 года . Проверено 1 ноября 2007 г.
  11. ^ "Open Social Foundation Moves Standards Work to W3C Social Web Activity". 16 декабря 2014 г. Получено 2 декабря 2015 г.
  12. ^ "Что такое OpenSocial? Определение Webopedia". www.webopedia.com . Получено 23 ноября 2015 г. .
  13. ^ «Friendster открывает платформу для разработчиков». PCWorld . 28 октября 2007 г. Получено 2 декабря 2015 г.
  14. ^ ""hi5 Taps Widgetbox for OpenSocial Support and Access to the World's Wideth Selection of Widgets." Science Letter 9 сентября 2008 г.: 4265. Academic OneFile. Web". go.galegroup.com . Получено 9 сентября 2015 г. .
  15. ^ "Let me see my app!". 5 февраля 2008 г. Архивировано из оригинала 9 февраля 2008 г. Получено 5 февраля 2008 г.
  16. Аррингтон, Майкл (5 ноября 2007 г.). «OpenSocial снова взломан». TechCrunch . Получено 6 ноября 2007 г.
  17. Аррингтон, Майкл (5 ноября 2007 г.). «OpenSocial снова взломан». TechCrunch . Получено 24 июля 2010 г.
  18. ^ Häsel, Matthias; Iacono, Luigi Lo (31 мая 2010 г.). Decker, Bart De; Schaumüller-Bichl, Ingrid (ред.). Security in OpenSocial-Instrumented Social Networking Services . Lecture Notes in Computer Science. Springer Berlin Heidelberg. стр.  40–52 . doi :10.1007/978-3-642-13241-4_5. ISBN 978-3-642-13240-7.
  19. ^ Шонфельд, Эрик (6 декабря 2007 г.). "OpenSocial по-прежнему "не открыт для бизнеса"". TechCrunch . Получено 24 июля 2010 г.
  20. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 2.5.1 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  21. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 2.5.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  22. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 2.0.1 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  23. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 2.0.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  24. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 1.1.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  25. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 0.9.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  26. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 1.8.1 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  27. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 0.8.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  28. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 0.7.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  29. ^ ab Mark Marum (1 января 2013 г.). "OpenSocial Specification 0.6.0 Release Notes". GitHub . Получено 28 ноября 2015 г. .
  30. ^ ab Mark Hopkins (9 ноября 2007 г.). "OpenSocial Container Pre-Release". Mashable . Получено 28 ноября 2015 г. .
Взято с "https://en.wikipedia.org/w/index.php?title=OpenSocial&oldid=1258659015"