OpenSocial - OpenSocial

OpenSocial
Open Social Logo.png
lançamento inicial 1 ° de novembro de 2007 ; 13 anos atrás  ( 01-11-2007 )
Versão estável
2.5.1 / 30 de agosto de 2013  ( 30/08/2013 )
Escrito em Java , PHP , C # , JavaScript , HTML
Modelo Estrutura de aplicativo da web
Licença Licença Apache 2.0
Local na rede Internet opensocial .org

OpenSocial é uma especificação pública que define um ambiente componente hospedagem (recipiente) e um conjunto de comuns interfaces de programação de aplicativo (APIs) para Web baseados em aplicações. Inicialmente, ele foi projetado para aplicativos de redes sociais e desenvolvido pelo Google junto com o MySpace e uma série de outras redes sociais. Mais recentemente, ele foi adotado como um ambiente de tempo de execução de uso geral para permitir que componentes não confiáveis ​​e parcialmente confiáveis ​​de terceiros sejam executados em um aplicativo da web existente. A OpenSocial Foundation mudou para integrar ou oferecer suporte a várias outras tecnologias da Web aberta . Isso inclui OAuth e OAuth 2.0, streams de atividades e contatos portáteis , entre outros.

Foi lançado em 1 de novembro de 2007. Os aplicativos que implementam as APIs OpenSocial são interoperáveis com qualquer sistema de rede social que os suporte. No lançamento, o OpenSocial adotou uma abordagem de desenvolvimento de tamanho único. À medida que se tornou mais robusto e a base de usuários se expandiu, o OpenSocial modularizou a plataforma para permitir que os desenvolvedores incluíssem apenas as partes da plataforma necessárias.

Em 16 de dezembro de 2014, o W3C emitiu um comunicado à imprensa, "OpenSocial Foundation Moving Standards Work to W3C Social Web Activity", declarando que o OpenSocial não existiria mais como uma entidade separada e encorajou a comunidade OpenSocial a continuar o trabalho de desenvolvimento por meio da Web social do W3C Actividade no Grupo de Trabalho Web Social e Grupo de Interesse Social . A OpenSocial Foundation declarou que "a comunidade terá uma chance melhor de realizar uma web social aberta por meio de discussões em uma única organização, e o conselho da OpenSocial Foundation acredita que trabalhar como uma parte integrada do W3C ajudará a alcançar mais comunidades que se beneficiarão do openSocial Foundation padrões sociais. " Em 1 de janeiro de 2015, o opensocial.org começou a redirecionar todas as solicitações de página para https://www.w3.org/blog/2014/12/opensocial-foundation-moves-standards-work-to-w3c-social-web-activity / .

Estrutura

Estrutura do OpenSocial

Com base em HTML e JavaScript , bem como na estrutura do Google Gadgets , o OpenSocial inclui várias APIs para aplicativos de software social para acessar dados e funções básicas nas redes sociais participantes . Cada API aborda um aspecto diferente. Também inclui APIs para entrar em contato com serviços de terceiros arbitrários na web usando um sistema proxy e OAuth para segurança.

Na versão 0.9, o OpenSocial adicionou suporte para uma linguagem baseada em tag . Essa linguagem é conhecida como OSML e permite acesso baseado em tag a dados das APIs OpenSocial que anteriormente exigiam uma solicitação assíncrona do lado do cliente. Ele também definiu um sistema de modelo de tag rico e adotou uma linguagem de expressão vagamente baseada na Java Expression Language .

A partir da versão 2.0, o OpenSocial adotou o suporte para o formato Activity Streams .

História

Fundo

O OpenSocial é comumente descrito como uma alternativa de plataforma cruzada mais aberta para a plataforma do Facebook , um serviço proprietário do popular serviço de rede social Facebook .

Desenvolvimento

Dizia-se que o OpenSocial fazia parte de uma iniciativa de rede social maior do Google com o codinome "Maka-Maka", que é definido como "amigo íntimo com quem se está recebendo e doando gratuitamente" em havaiano .

Implementação

Um projeto de código aberto, Shindig , foi lançado em dezembro de 2007, para fornecer uma implementação de referência dos padrões OpenSocial. Ele tem o suporte do Google, Ning e outras empresas que desenvolvem software relacionado ao OpenSocial. O analisador OpenSocial do MySpace foi lançado como projeto Negroni em janeiro de 2011 e fornece uma implementação baseada em C # do OpenSocial.

Apache Rave é uma plataforma extensível leve e baseada em padrões abertos para usar, integrar e hospedar recursos, tecnologias e serviços relacionados a OpenSocial e W3C Widget. Ele também fornecerá fortes recursos de personalização, colaboração e integração de conteúdo com base no contexto e uma instalação pronta para uso de alta qualidade, além de ser fácil de integrar em outras plataformas e soluções.

Tanto o Shindig quanto o Apache Rave não estão mais em desenvolvimento e foram retirados pela fundação Apache.

Uso

Sites corporativos, como Friendster , hi5 , LinkedIn , MySpace , Orkut e Salesforce.com são os principais usuários do OpenSocial.

Friendster

O Friendster implantou APIs da versão 0.7 da especificação OpenSocial, tornando mais fácil para os aplicativos OpenSocial existentes usando a versão 0.7 para serem lançados no Friendster e atingir os mais de 75 milhões de usuários do Friendster. O Friendster também planeja oferecer suporte a APIs OpenSocial adicionais nos próximos meses, incluindo as novas APIs 0.8.

hi5

hi5 torneiras Widgetbox suporte 's para OpenSocial para obter acesso à escolha de Web Widgets Widgetbox fornece.

Meu espaço

O MySpace Developer Platform (MDP) é baseado na API OpenSocial. Ele suporta redes sociais para desenvolver widgets sociais e de interação. Pode ser visto como uma resposta à plataforma de desenvolvedores do Facebook.

Problemas de segurança

O suporte inicial do OpenSocial apresentou vulnerabilidades de segurança, com um desenvolvedor amador autodescrito demonstrando explorações do gadget RockYou no Plaxo e das redes sociais Ning usando o gadget iLike . Conforme relatado pelo TechCrunch em 5 de novembro de 2007, o OpenSocial foi rapidamente quebrado. O tempo total para crackear o iLike baseado em OpenSocial no Ning foi de apenas 20 minutos, com o invasor sendo capaz de adicionar e remover músicas na lista de reprodução de um usuário e acessar as informações de amigo do usuário.

Hasel e Iacono mostraram que “a especificação do OpenSocial estava longe de ser abrangente no que diz respeito à segurança”. Eles discutiram diferentes implicações de segurança no contexto do OpenSocial. Eles introduziram possíveis vulnerabilidades em Message Integrity and Authentication, Message Confidentiality e Identity Management and Access Control.

Versões de lançamento

Críticas ao lançamento inicial

Aberto a muito alarde na cobertura de notícias, o OpenSocial não funcionou bem no início; ele só funcionava no Orkut do Google , e apenas com um número limitado de gadgets, retornando erros para outros gadgets. Outras redes ainda estavam procurando implementar a estrutura.

Em 6 de dezembro, o TechCrunch deu sequência a um relatório do fundador do MediaPops, Russ Whitman, que disse: "Embora estivéssemos inicialmente muito animados, aprendemos da maneira mais difícil como o lançamento realmente é limitado." Russ acrescentou que "componentes essenciais da funcionalidade" estão faltando e que "escrever uma vez, distribuir amplamente" não era preciso.

Lenda:    Interrompido    Atual

Versão Data de lançamento Notas de lançamento
2.5.1 30 de agosto de 2013  ( 30/08/2013 ) Ver notas de lançamento
2.5.0 28 de agosto de 2012  ( 28/08/2012 ) Ver notas de lançamento
2.0.1 23 de novembro de 2011  ( 2011-11-23 ) Ver notas de lançamento
2.0.0 18 de agosto de 2011  ( 18/08/2011 ) Ver notas de lançamento
1.1.0 18 de novembro de 2010  ( 2010-11-18 ) Ver notas de lançamento
1.0.0 9 de março de 2010  ( 09/03/2010 ) Ver notas de lançamento
0.9.0 15 de abril de 2009  ( 15/04/2009 ) Ver notas de lançamento
0.8.1 25 de setembro de 2008  ( 25/09/2008 ) Ver notas de lançamento
0.8.0 27 de maio de 2008  ( 27/05/2008 ) Ver notas de lançamento
0.7.0 25 de janeiro de 2008  ( 2008-01-25 ) Ver notas de lançamento
0,6.0 21 de dezembro de 2007  ( 21/12/2007 ) Ver notas de lançamento
0,5,0 9 de novembro de 2007  ( 09-11-2007 ) Ver notas de lançamento

Versão 2.5.1

Mudanças na API REST foram feitas para resolver vários problemas que exigiam mudanças nas especificações do OpenSocial para que pudesse ser usado pela Open Mobile Alliance .

Versão 2.5.0

Contêineres comuns foram adicionados, fornecendo "um conjunto de serviços comuns que os desenvolvedores de contêineres podem aproveitar para recursos como callbacks de eventos de ciclo de vida de gadgets no navegador, experiências incorporadas, manipuladores de seleção e manipuladores de ação". Uma nova API de metadados oferece aos aplicativos OpenSocial a capacidade de se adaptar aos recursos de diferentes contêineres OpenSocial. A extensão de autenticação WAP foi preterida.

Versão 2.0.1

O suporte OAuth 2.0 foi finalizado nesta versão do OpenSocial.

Versão 2.0.0

OpenSocial introduziu suporte para Activity Streams . JSON surgiu como o formato de dados preferido e o suporte para ATOM foi descontinuado. O formato do Gadget foi simplificado para permitir a definição de uma biblioteca de modelos dentro de uma especificação do Gadget. Embora não tenha sido finalizado, a base para o suporte do OAuth 2.0 foi estabelecida.

Versão 1.1.0

Em resposta às necessidades do ambiente corporativo, o OpenSocial adicionou suporte para cenários avançados de mashup. Ele permitiu que os gadgets "enviassem mensagens uns aos outros de maneira segura". Esse novo recurso foi chamado de Comunicação entre Gadgets.

Versão 1.0.0

A OpenSocial reconheceu que a abordagem "tamanho único" que estava adotando não funcionaria para os diversos tipos de sites que adotaram a plataforma. Para resolver esse problema, o OpenSocial foi modularizado em quatro módulos de conformidade: Core API Server, Core Gadget Server, Social API Server e Social Gadget Server. Isso permitiu que um desenvolvedor escolhesse os módulos que desejava usar ao usar outros serviços que não fazem parte do OpenSocial. As extensões foram introduzidas para permitir que os desenvolvedores estendam os contêineres do OpenSocial.

Versão 0.9.0

Em resposta ao feedback e observação de como os desenvolvedores estavam usando a API, esta versão se concentrou em tornar "o desenvolvimento, teste e implantação de aplicativos mais fáceis e rápidos, enquanto reduzia a curva de aprendizado para novos desenvolvedores de aplicativos". A API Javascript OpenSocial foi simplificada para torná-la leve, mantendo o poder da API Javascript antiga. O conteúdo com proxy foi introduzido para eliminar a necessidade dos desenvolvedores de contornar as limitações anteriores do AJAX. O conteúdo com proxy permite que um conteúdo seja obtido de um URL e exibido em uma tag <Content>. Em resposta a um uso comum de envio de dados a um servidor remoto imediatamente após uma solicitação, o OpenSocial 0.9.0 introduziu o pipelining de dados. O pipelining de dados permite que o desenvolvedor especifique os dados sociais de que o aplicativo precisará e os disponibilize imediatamente. Os modelos OpenSocial foram introduzidos para criar IU orientada a dados com uma separação de marcação e lógica programática. OpenSocial Markup Language (OSML Markup) é um novo conjunto de tags padronizadas para realizar tarefas comuns ou realizar operações normalmente inseguras dentro de modelos. OSML é extensível. Os desenvolvedores podem criar uma biblioteca de suas próprias tags personalizadas.

Versão 0.8.1

Esta versão secundária colocou um foco principal nos protocolos de servidor para servidor, pois "o esquema Person foi alinhado com o esforço de Contatos Portáteis e uma proposta RPC opcional foi adicionada." O protocolo JSON-RPC foi adicionado para aumentar a funcionalidade de servidor para servidor. O protocolo RESTful que foi introduzido na v0.8.0 passou por uma grande revisão com vários campos sendo adicionados, modificados e excluídos.

Versão 0.8.0

O OpenSocial alterou as especificações de contêineres para implementar uma API RESTful . Muitas das alterações da API Javascript OpenSocial tornaram esta versão incompatível com as versões anteriores. Os gadgets existentes continuaram usando a v0.7.0. Depois de atualizar o gadget, ele usaria a v0.8.0. A segurança melhorou com a introdução da autorização OAuth e saneamento de HTML e eventos de ciclo de vida do contêiner. Os dados de persistência foram armazenados em JSON .

Versão 0.7.0

Lançado como a "primeira iteração que pode oferecer suporte total a aplicativos sociais ricos". Ele adicionou vários campos padrão para informações de perfil, a capacidade de enviar uma mensagem para instalar um aplicativo, um modelo de atividade para controlar notificações de atividade sobre o que os usuários têm feito e uma API de persistência simplificada para usar feeds em vez de aplicativo global e com escopo de instância dados. Outro grande anúncio veio do Apache Shindig . O Apache Shindig tornou os gadgets de código aberto. Em coordenação com este anúncio, o OpenSocial 0.7.0 introduziu as Especificações de Gadget para que os desenvolvedores pudessem definir seus gadgets usando a API Gadget.

Versão 0.6.0

A segurança foi um grande foco na versão 0.6.0. Os controles de permissão foram reforçados para evitar que um gadget retorne informações se não estiver autorizado a fazê-lo. Novas classes foram adicionadas, como a classe Environment para permitir que um gadget responda de forma diferente de acordo com seu ambiente e a classe Surface para oferecer suporte à navegação de uma superfície para outra. A classe Activities foi simplificada com base nas necessidades do desenvolvedor e a classe Stream foi descontinuada.

Versão 0.5.0

O Google anunciou o lançamento do OpenSocial com um pré-lançamento da versão 0.5.0. Embora instável, esta API introduziu "vários XML DTDs, interfaces Javascript e outras estruturas de dados" à plataforma OpenSocial.

Referências

links externos

  • Shindig Shindig foi uma implementação de código aberto da especificação OpenSocial e especificação de gadgets.