Articulo de referencia

OpenSocial

OpenSocial es una especificación pública que define un conjunto de interfaces de programación de aplicaciones (API) comunes para aplicaciones web . Diseñada inicialmente para ap...

OpenSocial es una especificación pública que define un conjunto de interfaces de programación de aplicaciones (API) comunes para aplicaciones web . Diseñada inicialmente para aplicaciones de redes sociales , fue desarrollada en colaboración por Google , MySpace y otras redes sociales. Posteriormente, evolucionó hasta convertirse en un entorno de ejecución que permite que componentes de terceros, independientemente de su nivel de confianza, operen dentro de una aplicación web existente.

La Fundación OpenSocial ha integrado o apoyado varias tecnologías web abiertas , 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 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 ser compatible con OpenSocial. [ 3 ]

El 16 de diciembre de 2014, el Consorcio World Wide Web (W3C) anunció que la Fundación OpenSocial transferiría su trabajo de estandarizació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.

Estructura

Estructura de OpenSocial [ 5 ]

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 , lo que anteriormente requería una solicitud asíncrona del lado del cliente. Además, estableció un sistema integral de plantillas de etiquetas y adoptó un lenguaje de expresiones que se basa libremente en el lenguaje de expresiones de Java .

A partir de la versión 2.0, OpenSocial comenzó a admitir el formato de flujos de actividad . [ 6 ]

Historia

Fondo

OpenSocial se describe comúnmente como una alternativa multiplataforma más abierta a la Plataforma de Facebook , un servicio propietario del popular servicio de red social Facebook . [ 7 ]

Desarrollo

Se rumoreaba que OpenSocial formaba parte de una iniciativa de redes sociales más amplia de Google con nombre en clave "Maka-Maka", [ 8 ] [ 9 ] que se define como "un amigo íntimo con quien uno tiene una relación de dar y recibir libremente" en hawaiano . [ 10 ]

Implementación

El proyecto de código abierto Shindig se lanzó en diciembre de 2007 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 de OpenSocial para Myspace se publicó 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 usar, integrar y alojar tecnologías y servicios relacionados con OpenSocial y los widgets del W3C. También proporcionará sólidas capacidades de personalización, colaboración e integración de contenido sensibles al contexto, así como una instalación lista para usar de alta calidad y una fácil integración con 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.

Uso

Los sitios web empresariales, como Friendster , hi5 , LinkedIn , MySpace , Orkut y Salesforce.com, son usuarios importantes de OpenSocial. [ 12 ]

Friendster

Friendster ha implementado APIs de la versión 0.7 de la especificación OpenSocial, lo que facilita que las aplicaciones OpenSocial existentes que utilizan la versión 0.7 se lancen en Friendster y lleguen a sus más de 75 millones de usuarios. Friendster también planea admitir APIs OpenSocial adicionales en los próximos meses, incluidas las nuevas APIs de la versión 0.8. [ 13 ]

Hola5

hi5 aprovecha el soporte de Widgetbox para OpenSocial para acceder a la variedad de widgets web que ofrece Widgetbox. [ 14 ]

MySpace

La plataforma para desarrolladores de Myspace (MDP) se basa en la API OpenSocial. Permite a las redes sociales desarrollar widgets sociales e interactivos. Puede considerarse una respuesta a la plataforma para desarrolladores de Facebook. [ 15 ]

Problemas de seguridad

El soporte inicial de OpenSocial experimentó vulnerabilidades de seguridad, con un desarrollador autodenominado aficionado que demostró exploits del gadget RockYou en Plaxo y de la red social Ning usando el gadget iLike . [ 16 ] Como informó TechCrunch el 5 de noviembre de 2007, OpenSocial fue rápidamente vulnerado. El tiempo total para vulnerar iLike en Ning, basado en OpenSocial, fue de 20 minutos, y el atacante pudo agregar y eliminar canciones de la lista de reproducción de un usuario y acceder a la información de sus amigos. [ 17 ]

Häsel e Iacono demostraron que “las especificaciones de OpenSocial distaban mucho de ser exhaustivas en lo que respecta a la seguridad”. [ 18 ] Analizaron diferentes implicaciones de seguridad en el contexto de OpenSocial. Presentaron posibles vulnerabilidades en la integridad y autenticación de mensajes, la confidencialidad de mensajes y la gestión de identidades y el control de acceso.

Versiones de lanzamiento

Críticas al lanzamiento inicial

A pesar de la expectación inicial y la amplia cobertura mediática, OpenSocial se topó con numerosos problemas al principio; solo funcionaba en Orkut , propiedad de Google , y únicamente en un número limitado de dispositivos, registrándose múltiples errores en otros. Otras redes aún estaban estudiando la posibilidad de implementar la plataforma.

El 6 de diciembre, TechCrunch publicó un informe del fundador de MediaPops, Russ Whitman, quien afirmó: «Si bien inicialmente estaban muy entusiasmados, han aprendido por las malas lo limitada que es realmente la versión». Russ añadió que faltan «componentes de funcionalidad básica» y que la frase «escribe una vez, distribuye ampliamente» no era precisa. [ 19 ]

Leyenda: Producto descontinuado    

Versión 2.5.1

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 utilizarla. [ 20 ]

Versión 2.5.0

Se añadieron contenedores comunes que proporcionaban "un conjunto de servicios comunes que los desarrolladores de contenedores pueden aprovechar para funciones como devoluciones de llamada 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 permite que las aplicaciones OpenSocial se adapten a las capacidades de los diferentes contenedores OpenSocial. La extensión de autenticación WAP quedó obsoleta.

Versión 2.0.1

En esta versión de OpenSocial se finalizó la compatibilidad con OAuth 2.0. [ 22 ]

Versión 2.0.0

OpenSocial introdujo soporte para Activity Streams . JSON se había consolidado como el formato de datos preferido y se dejó de dar soporte a ATOM . El formato Gadget se simplificó para permitir definir una biblioteca de plantillas dentro de una especificación Gadget. [ 23 ] Aunque no se finalizó, se sentaron las bases para el soporte de OAuth 2.0.

Versión 1.1.0

En respuesta a las necesidades del entorno empresarial, OpenSocial añadió soporte para escenarios de mashup avanzados. Esto permitió que los gadgets se enviaran mensajes de forma segura entre sí de manera poco acoplada. [ 24 ] Esta nueva función se denominó Comunicación entre Gadgets.

Versión 1.0.0

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 modularizó en cuatro módulos de cumplimiento: Core API Server, Core Gadget Server, Social API Server y Social Gadget Server. [ 2 ] Esto permitió a un desarrollador seleccionar los módulos que quería usar al utilizar otros servicios que no forman parte de OpenSocial. Se introdujeron extensiones para permitir a los desarrolladores ampliar los contenedores de OpenSocial.

Versión 0.9.0

En respuesta a los comentarios y observaciones sobre 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 simplificó para hacerla ligera sin perder la potencia de la antigua API de JavaScript. Se introdujo el contenido proxy para eliminar la necesidad de que los desarrolladores sortearan las limitaciones anteriores de AJAX . El contenido proxy permite que el contenido se obtenga de una URL y se muestre en una etiqueta <Content>. En respuesta al uso común de enviar datos a un servidor remoto inmediatamente después de una solicitud, OpenSocial 0.9.0 introdujo el procesamiento en paralelo de datos. El procesamiento en paralelo de datos permite al desarrollador especificar los datos sociales que la aplicación necesitará y hacer que los datos estén disponibles de inmediato. Se introdujeron las plantillas de OpenSocial para crear interfaces de usuario basadas en datos con una separación entre el marcado y la lógica programática. El lenguaje de marcado de OpenSocial (OSML Markup) es un nuevo conjunto de etiquetas estandarizadas para realizar tareas comunes o ejecutar de forma segura operaciones normalmente inseguras dentro de las plantillas. OSML es extensible. Los desarrolladores pueden crear una biblioteca de etiquetas personalizadas.

Versión 0.8.1

Esta versión menor puso un énfasis importante en los protocolos de servidor a servidor, ya que "el esquema Person se ha alineado con el esfuerzo de Portable Contacts y se ha añadido una propuesta 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 v0.8.0 sufrió una revisión importante con la adición, modificación y eliminación de varios campos.

Versión 0.8.0

OpenSocial cambió las especificaciones de los contenedores para implementar una API RESTful . Muchos de los cambios en la API de JavaScript de OpenSocial hicieron que esta versión fuera incompatible con versiones anteriores. Los gadgets existentes continuaron usando v0.7.0. Después de actualizar el gadget, usaría v0.8.0. La seguridad mejoró con la introducción de la autorización OAuth y el saneamiento de HTML , y eventos del ciclo de vida del contenedor. [ 27 ] Los datos de persistencia se almacenaron en JSON .

Versión 0.7.0

Lanzada como la "primera iteración que puede soportar completamente aplicaciones sociales ricas". [ 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 los usuarios han estado haciendo y una API de persistencia simplificada para usar feeds en lugar de datos de aplicación globales y de ámbito de instancia. Otro anuncio importante provino 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.

Versión 0.6.0

La seguridad fue un aspecto fundamental en la versión 0.6.0. Se reforzaron los controles de permisos para evitar que un gadget devolviera información si no estaba autorizado a hacerlo. Se añadieron nuevas clases, como la clase Environment, que permite que un gadget responda de forma diferente según su entorno, y la clase Surface, que admite la navegación entre superficies. La clase Activities se simplificó según las necesidades de los desarrolladores y la clase Stream quedó obsoleta. [ 29 ]

Versión 0.5.0

Google anunció el lanzamiento de OpenSocial con una versión preliminar de la versión 0.5.0. Aunque inestable, esta API introdujo "varios DTD XML, interfaces JavaScript y otras estructuras de datos" [ 30 ] a la plataforma OpenSocial.

Referencias

  1. "Google lanza OpenSocial para extender las aplicaciones sociales por la web – Anuncios de noticias – Noticias de Google – Google" . googlepress.blogspot.com . Consultado el 23 de noviembre de 2015 .
  2. 1 2 3 Mark Marum (1 de enero de 2013). "Notas de la versión 1.0.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  3. "OpenSocial abre la caja de Pandora" . CNET . Consultado el 8 de noviembre de 2023 .
  4. "La Fundación OpenSocial traslada el trabajo de estandarización a la actividad de la web social del W3C" . W3C . 16 de diciembre de 2014. Consultado el 17 de diciembre de 2014 .
  5. Häsel, Matthias (1 de enero de 2011). "Opensocial: Un facilitador para aplicaciones sociales en la web". Commun. ACM . 54 (1): 139– 144. doi : 10.1145/1866739.1866765 . ISSN 0001-0782 . S2CID 52805577 .  
  6. 1 2 "Notas de la versión de la especificación OpenSocial" . opensocial-resources.googlecode.com . Archivado del original el 11 de agosto de 2011. Recuperado el 23 de noviembre de 2015 .
  7. Helft, Miguel; Brad Stone (31 de octubre de 2007). "Google y sus amigos se unen en Facebook" . The New York Times . Consultado el 31 de octubre de 2007 .
  8. Schonfeld, Erick (29 de octubre de 2007). "La respuesta de Google a Facebook: "Maka-Maka"" . TechCrunch . Consultado el 31 de octubre de 2007 .
  9. Sloane, Julie. "¿Convertirá "Maka-Maka" de Google la web en una red social?" . Wired . ISSN 1059-1028 . Consultado el 20 de mayo de 2024 . 
  10. «maka.maka» . Nā Puke Wehewehe ʻŌlelo Hawaiʻi . Ulukau: la biblioteca electrónica hawaiana. Archivado desde el original el 18 de septiembre de 2013 . Consultado el 1 de noviembre de 2007 .
  11. "La Open Social Foundation traslada el trabajo de estandarización a la actividad de la web social del W3C" . 16 de diciembre de 2014. Consultado el 2 de diciembre de 2015 .
  12. "¿Qué es OpenSocial? Una definición de Webopedia" . www.webopedia.com . 14 de mayo de 2008. Consultado el 23 de noviembre de 2015 .
  13. "Friendster abre su plataforma a los desarrolladores" . PCWorld . 28 de octubre de 2007. Archivado del original el 8 de diciembre de 2015. Consultado el 2 de diciembre de 2015 .
  14. ""hi5 recurre a Widgetbox para obtener soporte de OpenSocial y acceso a la selección más amplia de widgets del mundo." Science Letter, 9 de septiembre de 2008: 4265. Academic OneFile. Web." . go.galegroup.com . Consultado el 9 de septiembre de 2015 .
  15. "¡Déjame ver mi aplicación!" . 5 de febrero de 2008. Archivado del original el 9 de febrero de 2008. Recuperado el 5 de febrero de 2008 .
  16. Arrington, Michael (5 de noviembre de 2007). "OpenSocial hackeado de nuevo" . TechCrunch . Consultado el 6 de noviembre de 2007 .
  17. Arrington, Michael (5 de noviembre de 2007). "OpenSocial hackeado de nuevo" . TechCrunch . Recuperado el 24 de julio de 2010 .
  18. Häsel, Matthias; Iacono, Luigi Lo (31 de mayo de 2010). Decker, Bart De; Schaumüller-Bichl, Ingrid (eds.). Seguridad en servicios de redes sociales instrumentados con OpenSocial . Lecture Notes in Computer Science. Springer Berlin Heidelberg. pp. 40–52 . doi : 10.1007/978-3-642-13241-4_5 . ISBN  978-3-642-13240-7.
  19. Schonfeld, Erick (6 de diciembre de 2007). "OpenSocial todavía no está abierto al público"" . TechCrunch . Consultado el 24 de julio de 2010 .
  20. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 2.5.1 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  21. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 2.5.0 de la especificación OpenSocial" . GitHub . Consultado el 28 de noviembre de 2015 .
  22. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 2.0.1 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  23. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 2.0.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  24. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 1.1.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  25. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 0.9.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  26. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 1.8.1 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  27. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 0.8.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  28. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 0.7.0 de la especificación OpenSocial" . GitHub . Consultado el 28 de noviembre de 2015 .
  29. 1 2 Mark Marum (1 de enero de 2013). "Notas de la versión 0.6.0 de la especificación OpenSocial" . GitHub . Recuperado el 28 de noviembre de 2015 .
  30. 1 2 Mark Hopkins (9 de noviembre de 2007). "OpenSocial Container Pre-Release" . Mashable . Recuperado el 28 de noviembre de 2015 .