Эта статья содержит рекламный контент . ( Октябрь 2019 ) |
Первоначальный выпуск | 1 ноября 2007 г. ( 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 как отдельную организацию.
В версии 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 развернул API из версии 0.7 спецификации OpenSocial, что упрощает запуск существующих приложений OpenSocial, использующих версию 0.7, на Friendster и позволяет охватить более 75 миллионов пользователей Friendster. Friendster также планирует поддерживать дополнительные API OpenSocial в ближайшие месяцы, включая новые API 0.8. [13]
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 ) | Просмотреть заметки о выпуске |
Изменения в REST API были внесены для решения нескольких проблем, требовавших внесения изменений в спецификации OpenSocial, чтобы Open Mobile Alliance мог его использовать. [20]
Были добавлены общие контейнеры, которые предоставили «набор общих служб, которые разработчики контейнеров могут использовать для таких функций, как обратные вызовы событий жизненного цикла гаджета в браузере, встроенные возможности, обработчики выбора и обработчики действий». [21] Новый API метаданных дает приложениям OpenSocial возможность адаптироваться к возможностям различных контейнеров OpenSocial. Расширение аутентификации WAP было устарело.
Поддержка OAuth 2.0 была завершена в этой версии OpenSocial. [22]
OpenSocial представила поддержку Activity Streams . JSON стал предпочтительным форматом данных, а поддержка ATOM была прекращена. Формат Gadget был упрощен, чтобы дать возможность определять библиотеку шаблонов в спецификации Gadget. [23] Хотя это и не было завершено, была заложена основа для поддержки OAuth 2.0.
В ответ на потребности корпоративной среды OpenSocial добавил поддержку расширенных сценариев mashup. Это позволило гаджетам «безопасно отправлять сообщения друг другу в слабосвязанной манере». [24] Эта новая функция была названа Inter-Gadget Communication.
OpenSocial признала, что подход «один размер подходит всем» не будет работать для различных типов веб-сайтов, которые приняли платформу. Чтобы решить эту проблему, OpenSocial разделен на четыре модуля соответствия: Core API Server, Core Gadget Server, Social API Server и Social Gadget Server. [2] Это позволило разработчику выбирать модули, которые он хотел использовать, при использовании других служб, не являющихся частью OpenSocial. Были введены расширения, позволяющие разработчикам расширять контейнеры OpenSocial.
В ответ на отзывы и наблюдения за тем, как разработчики используют API, эта версия была сосредоточена на том, чтобы сделать «разработку, тестирование и развертывание приложений проще и быстрее, одновременно сокращая кривую обучения для новых разработчиков приложений». [25] OpenSocial Javascript API был оптимизирован, чтобы сделать его легким, сохранив при этом мощь старого Javascript API. Прокси-контент был введен, чтобы исключить необходимость для разработчиков обходить предыдущие ограничения AJAX . Прокси-контент позволяет извлекать контент из URL и отображать его в теге <Content>. В ответ на распространенное использование отправки данных на удаленный сервер сразу после запроса, OpenSocial 0.9.0 представил конвейеризацию данных. Конвейеризация данных позволяет разработчику указывать социальные данные, которые потребуются приложению, и немедленно делать эти данные доступными. Шаблоны OpenSocial были введены для создания управляемого данными пользовательского интерфейса с разделением разметки и программной логики. OpenSocial Markup Language (OSML Markup) — это новый набор стандартизированных тегов для выполнения общих задач или безопасного выполнения обычно небезопасных операций в шаблонах. OSML расширяем. Разработчики могут создавать библиотеку своих собственных тегов.
В этом второстепенном релизе основное внимание уделено протоколам «сервер-сервер», поскольку «схема Person была согласована с усилиями Portable Contacts, и было добавлено необязательное предложение RPC». [26] Протокол JSON-RPC был добавлен для увеличения функциональности «сервер-сервер». Протокол RESTful, представленный в v0.8.0, подвергся значительной переработке, в ходе которой было добавлено, изменено и удалено несколько полей.
OpenSocial изменил спецификации для контейнеров для реализации RESTful API . Многие изменения OpenSocial Javascript API сделали эту версию несовместимой с предыдущими версиями. Существующие гаджеты продолжали использовать v0.7.0. После обновления гаджета он будет использовать v0.8.0. Безопасность улучшилась с введением авторизации OAuth и HTML- санации, а также событий жизненного цикла контейнера. [27] Данные о персистентности хранились в JSON .
Выпущен как «первая итерация, которая может полностью поддерживать насыщенные социальные приложения». [28] Он добавил несколько стандартных полей для информации профиля, возможность отправлять сообщение для установки приложения, шаблон Activity для управления уведомлениями о действиях пользователей и упрощенный API сохранения для использования каналов вместо глобальных и ограниченных экземпляром данных приложения. Еще одно важное объявление поступило от Apache Shindig. Гаджеты, созданные Apache Shindig, имеют открытый исходный код. В координации с этим объявлением OpenSocial 0.7.0 представил спецификации гаджетов для разработчиков, чтобы иметь возможность определять свои гаджеты с помощью API гаджетов.
Безопасность была в центре внимания в версии 0.6.0. Контроль разрешений был ужесточен, чтобы предотвратить возврат информации гаджетом, если он не авторизован на это. Были добавлены новые классы, такие как класс Environment, позволяющий гаджету реагировать по-разному в зависимости от его среды, и класс Surface для поддержки навигации с одной поверхности на другую. Класс Activities был упрощен на основе потребностей разработчиков, а класс Stream был объявлен устаревшим. [29]
Google объявила о запуске OpenSocial с предварительным релизом версии 0.5.0. Хотя этот API был нестабилен, он представил «различные XML DTD, интерфейсы Javascript и другие структуры данных» [30] для платформы OpenSocial.