Este artículo contiene contenido promocional . ( Octubre de 2019 ) |
Lanzamiento inicial | 1 de noviembre de 2007 ( 01/11/2007 ) |
---|---|
Versión estable | 2.5.1 / 30 de agosto de 2013 ( 30-08-2013 ) |
Escrito en | Java , PHP , C# , JavaScript , HTML |
Tipo | Marco de aplicación web |
Licencia | Licencia Apache 2.0 |
Sitio web | opensocial.org |
OpenSocial es una especificación pública que describe un conjunto de interfaces de programación de aplicaciones (API) comunes para aplicaciones web . Inicialmente diseñada para aplicaciones de redes sociales , fue desarrollada en colaboración por Google , MySpace y otras redes sociales. Desde entonces, ha evolucionado hasta convertirse en un entorno de ejecución que permite que los componentes de terceros, independientemente de su nivel de confianza, funcionen dentro de una aplicación web existente.
La OpenSocial Foundation ha integrado o respaldado varias tecnologías de la Web abierta , incluidas OAuth y OAuth 2.0 , Activity Streams y Portable Contacts . Desde su creación el 1 de noviembre de 2007, [1] las aplicaciones que implementan las API de OpenSocial pueden interoperar con cualquier sistema de red social que las admita.
OpenSocial adoptó inicialmente un enfoque universal para el desarrollo. A medida que la plataforma maduró y la base de usuarios se expandió, se la modularizó, lo que permitió a los desarrolladores incluir solo los componentes necesarios de la plataforma. [2] Orkut , un cliente de Google, fue el primero en admitir OpenSocial. [3]
El 16 de diciembre de 2014, el Consorcio World Wide Web (W3C) anunció que la Fundación OpenSocial trasladaría su trabajo de normalización a la Actividad de Web Social del W3C. [4] Esto integró efectivamente a OpenSocial en el Grupo de Trabajo de Web Social y el Grupo de Interés Social del W3C, disolviendo así a OpenSocial como entidad separada.
En su versión 0.9, OpenSocial incorporó soporte para un lenguaje basado en etiquetas [6] conocido como OSML. Este lenguaje facilita el acceso basado en etiquetas a los datos de las API de OpenSocial , que anteriormente requerían una solicitud asincrónica del lado del cliente. Además, estableció un sistema integral de plantillas de etiquetas y adoptó un lenguaje de expresión que se basa libremente en el lenguaje de expresión de Java .
A partir de la versión 2.0, OpenSocial comenzó a admitir el formato de flujos de actividad . [6]
OpenSocial se describe comúnmente como una alternativa multiplataforma más abierta a la Plataforma Facebook , un servicio propietario del popular servicio de red social Facebook . [7]
Se rumoreaba que OpenSocial era parte de una iniciativa de redes sociales más grande de Google llamada en código "Maka-Maka", [8] [9] que se define como un "amigo íntimo con quien uno está en términos de recibir y dar libremente" en hawaiano . [10]
En diciembre de 2007 se lanzó un proyecto de código abierto , Shindig, para proporcionar una implementación de referencia de los estándares OpenSocial. Cuenta con el apoyo de Google, Ning y otras empresas que desarrollan software relacionado con OpenSocial. El analizador OpenSocial de Myspace se lanzó como proyecto Negroni en enero de 2011 y proporciona una implementación de OpenSocial basada en C# .
Apache Rave es una plataforma extensible, ligera y basada en estándares abiertos para utilizar, integrar y alojar funciones, tecnologías y servicios relacionados con OpenSocial y W3C Widget. También proporcionará sólidas capacidades de personalización, colaboración e integración de contenido según el contexto y una instalación lista para usar de alta calidad, además de ser fácil de integrar en otras plataformas y soluciones. [11]
Tanto Shindig como Apache Rave ya no están en desarrollo y han sido retirados por la Fundación Apache.
Los sitios web empresariales, como Friendster , hi5 , LinkedIn , MySpace , Orkut y Salesforce.com son los principales usuarios de OpenSocial. [12]
Friendster ha implementado APIs de la versión 0.7 de la especificación OpenSocial, lo que facilita el lanzamiento en Friendster de aplicaciones OpenSocial existentes que utilizan la versión 0.7 y que llegan a más de 75 millones de usuarios. Friendster también tiene previsto ofrecer soporte para APIs OpenSocial adicionales en los próximos meses, incluidas las nuevas API 0.8. [13]
hi5 aprovecha el soporte de Widgetbox para OpenSocial para obtener acceso a la selección de widgets web que ofrece Widgetbox. [14]
La plataforma para desarrolladores de Myspace (MDP) se basa en la API de OpenSocial. Permite que las redes sociales desarrollen widgets sociales e interactivos. Puede considerarse una respuesta a la plataforma para desarrolladores de Facebook. [15]
El soporte inicial de OpenSocial experimentó vulnerabilidades de seguridad, con un desarrollador autodenominado amateur demostrando exploits del gadget RockYou en Plaxo , y las redes sociales Ning usando el gadget iLike . [16] Como informó TechCrunch el 5 de noviembre de 2007, OpenSocial fue hackeado rápidamente. El tiempo total para hackear iLike basado en OpenSocial en Ning fue de 20 minutos, y el atacante pudo agregar y eliminar canciones en la lista de reproducción de un usuario y acceder a la información de amigos del usuario. [17]
Häsel e Iacono demostraron que “las especificaciones de OpenSocial estaban lejos de ser exhaustivas en lo que respecta a la seguridad”. [18] Analizaron diferentes implicaciones de seguridad en el contexto de OpenSocial. Introdujeron posibles vulnerabilidades en la integridad y autenticación de mensajes, la confidencialidad de mensajes y la gestión de identidad y el control de acceso.
A pesar de la fanfarria inicial y la cobertura de las noticias, OpenSocial tuvo muchos problemas al principio; solo funcionaba en Orkut , propiedad de Google , y solo con una cantidad limitada de dispositivos, y se informaron múltiples errores en otros dispositivos. Otras redes aún estaban estudiando la posibilidad de implementar el marco.
El 6 de diciembre, TechCrunch publicó un informe del fundador de MediaPops, Russ Whitman, que decía: "Si bien al principio [estaban] muy entusiasmados, [han] aprendido a las malas lo limitada que es realmente la versión". Russ añadió que faltan "componentes de funcionalidad básica" y que "escribir una vez, distribuir ampliamente" no era exacto. [19]
Leyenda: Interrumpido Actual
Versión | Fecha de lanzamiento | Notas de la versión |
---|---|---|
2.5.1 [20] | 30 de agosto de 2013 ( 30-08-2013 ) | Ver notas de la versión |
2.5.0 [21] | 28 de agosto de 2012 ( 28-08-2012 ) | Ver notas de la versión |
2.0.1 [22] | 23 de noviembre de 2011 ( 23 de noviembre de 2011 ) | Ver notas de la versión |
2.0.0 [23] | 18 de agosto de 2011 ( 18-08-2011 ) | Ver notas de la versión |
1.1.0 [24] | 18 de noviembre de 2010 ( 18 de noviembre de 2010 ) | Ver notas de la versión |
1.0.0 [2] | 9 de marzo de 2010 ( 09-03-2010 ) | Ver notas de la versión |
0.9.0 [25] | 15 de abril de 2009 ( 15 de abril de 2009 ) | Ver notas de la versión |
0.8.1 [26] | 25 de septiembre de 2008 ( 25 de septiembre de 2008 ) | Ver notas de la versión |
0.8.0 [27] | 27 de mayo de 2008 ( 27-05-2008 ) | Ver notas de la versión |
0.7.0 [28] | 25 de enero de 2008 ( 25 de enero de 2008 ) | Ver notas de la versión |
0.6.0 [29] | 21 de diciembre de 2007 ( 21 de diciembre de 2007 ) | Ver notas de la versión |
0.5.0 [30] | 9 de noviembre de 2007 ( 09/11/2007 ) | Ver notas de la versión |
Se realizaron cambios en la API REST para abordar varios problemas que requerían cambios en las especificaciones de OpenSocial para que la Open Mobile Alliance pudiera usarla. [20]
Se agregaron contenedores comunes que proporcionaron "un conjunto de servicios comunes que los desarrolladores de contenedores pueden aprovechar para funciones como devoluciones de llamadas de eventos del ciclo de vida de gadgets en el navegador, experiencias integradas, controladores de selección y controladores de acciones". [21] Una nueva API de metadatos brinda a las aplicaciones OpenSocial la capacidad de adaptarse a las capacidades de diferentes contenedores OpenSocial. La extensión de autenticación WAP quedó obsoleta.
La compatibilidad con OAuth 2.0 se finalizó en esta versión de OpenSocial. [22]
OpenSocial introdujo soporte para flujos de actividad . JSON había surgido como el formato de datos preferido y el soporte para ATOM quedó obsoleto. El formato Gadget se simplificó para brindar la capacidad de definir una biblioteca de plantillas dentro de una especificación Gadget. [23] Si bien no se finalizó, se sentaron las bases para el soporte de OAuth 2.0.
En respuesta a las necesidades del entorno empresarial, OpenSocial agregó compatibilidad con escenarios avanzados de mashup. Permitió que los dispositivos "se enviaran mensajes entre sí de forma segura de manera flexible". [24] Esta nueva característica se denominó comunicación entre dispositivos.
OpenSocial reconoció que el enfoque de "talla única" que estaba adoptando no iba a funcionar para los diversos tipos de sitios web que habían adoptado la plataforma. Para abordar este problema, OpenSocial se ha modularizado en cuatro módulos de cumplimiento: Core API Server, Core Gadget Server, Social API Server y Social Gadget Server. [2] Esto permitió que un desarrollador eligiera los módulos que quería utilizar mientras utilizaba otros servicios que no forman parte de OpenSocial. Se introdujeron extensiones para permitir a los desarrolladores ampliar los contenedores de OpenSocial.
En respuesta a los comentarios y la observación de cómo los desarrolladores usaban la API, esta versión se centró en hacer que "el desarrollo, las pruebas y la implementación de aplicaciones sean más fáciles y rápidos, al tiempo que se reduce la curva de aprendizaje para los nuevos desarrolladores de aplicaciones". [25] La API de Javascript de OpenSocial se optimizó para hacerla liviana y conservar la potencia de la antigua API de Javascript. Se introdujo contenido proxy para eliminar la necesidad de que los desarrolladores sortearan las limitaciones anteriores de AJAX . El contenido proxy permite obtener contenido de una URL y mostrarlo en una etiqueta <Content>. En respuesta a un uso común de enviar datos a un servidor remoto inmediatamente después de una solicitud, OpenSocial 0.9.0 introdujo la canalización de datos. La canalización de datos permite al desarrollador especificar los datos sociales que necesitará la aplicación y hacer que los datos estén disponibles de inmediato. Se introdujeron las plantillas OpenSocial para crear una interfaz de usuario basada en datos con una separación de marcado y lógica programática. El lenguaje de marcado OpenSocial (OSML Markup) es un nuevo conjunto de etiquetas estandarizadas para realizar tareas comunes o realizar de forma segura operaciones normalmente inseguras dentro de las plantillas. OSML es extensible. Los desarrolladores pueden crear una biblioteca de sus etiquetas personalizadas.
Esta versión menor se centró principalmente en los protocolos de servidor a servidor, ya que "el esquema de Persona se ha alineado con el esfuerzo de Contactos portátiles y se ha añadido una propuesta de RPC opcional". [26] Se añadió el protocolo JSON-RPC para aumentar la funcionalidad de servidor a servidor. El protocolo RESTful que se introdujo en la versión 0.8.0 sufrió una gran revisión en la que se añadieron, modificaron y eliminaron varios campos.
OpenSocial cambió las especificaciones de los contenedores para implementar una API RESTful . Muchos de los cambios en la API Javascript de OpenSocial hicieron que esta versión fuera incompatible con las versiones anteriores. Los gadgets existentes continuaron usando la versión v0.7.0. Después de actualizar el gadget, usaría la versión v0.8.0. La seguridad mejoró con la introducción de la autorización OAuth y el saneamiento de HTML , y los eventos del ciclo de vida del contenedor. [27] Los datos de persistencia se almacenaron en JSON .
Lanzado como la "primera iteración que puede soportar completamente aplicaciones sociales enriquecidas". [28] Añadió varios campos estándar para información de perfil, la capacidad de enviar un mensaje para instalar una aplicación, una plantilla de Actividad para controlar las notificaciones de actividad sobre lo que han estado haciendo los usuarios y una API de persistencia simplificada para usar feeds en lugar de datos de aplicaciones globales y de ámbito de instancia. Otro anuncio importante vino de Apache Shindig. Los gadgets creados por Apache Shindig son de código abierto. En coordinación con este anuncio, OpenSocial 0.7.0 introdujo las Especificaciones de Gadgets para que los desarrolladores puedan definir sus gadgets usando la API de Gadgets.
La seguridad fue un tema central en la versión 0.6.0. Se reforzaron los controles de permisos para evitar que un dispositivo devuelva información si no está autorizado para hacerlo. Se agregaron nuevas clases, como la clase Environment para permitir que un dispositivo responda de manera diferente según su entorno y la clase Surface para admitir la navegación de una superficie a otra. La clase Activities se simplificó en función de las necesidades de los desarrolladores y la clase Stream quedó obsoleta. [29]
Google anunció el lanzamiento de OpenSocial con una versión preliminar 0.5.0. Si bien es inestable, esta API introdujo "varias DTD XML, interfaces Javascript y otras estructuras de datos" [30] a la plataforma OpenSocial.