Atenção: esse artigo tem um vídeo complementar. Clique e assista!

De que se trata o artigo:

O artigo trata do Spring Social, uma extensão do Spring Framework para integração de aplicações Java a redes sociais ou, de maneira geral, qualquer provedor de serviços que siga a abordagem Software as a Service (Saas). Para demonstrar suas funcionalidades, o artigo apresenta a integração de uma aplicação Web que utiliza o Spring ao microblog Twitter.

Em que situação o tema é útil:

O tema é útil para equipes de desenvolvimento que desejam integrar suas aplicações a um dos provedores SaaS suportados pelo Spring Social, como Twitter, Facebook, LinkedIn, TripIt, etc. Dado o crescimento das redes sociais e dos serviços oferecidos “na nuvem”, estima-se que a integração de aplicações com tais provedores será cada vez mais importante e a extensão Spring Social facilita bastante o processo de autenticação e requisição de serviços para aplicações já integradas ao Spring Framework.

Resumo DevMan:

As redes sociais vêm cada vez mais fazendo parte da vida dos internautas. Integrar sua aplicação Java com elas pode trazer diversos benefícios, porém dominar todo o processo de autenticação e controlar as requisições e respostas aos provedores pode ser uma tarefa complexa e tediosa. Para aplicações já integradas com o Spring Framework, sua extensão Spring Social pode facilitar bastante o trabalho. Este artigo apresenta esta nova extensão do Spring e demonstra como conectar e utilizar o microblog Twitter a partir de uma aplicação Web Java. Em primeiro lugar é criada uma aplicação Web utilizando o Spring MVC, definindo suas dependências (Tabelas 1 e 2 e Listagem 1) e implementando um exemplo “Hello, World!” (Listagens 2 a 7 e Figura 1). Em seguida, é demonstrado o processo de autenticação com o Twitter (Figuras 2 a 4 e Listagens 8 a 15) e, por fim, a utilização da API do Spring Social para acessar dados e funcionalidades do microblog a partir da aplicação Java (Listagens 16 e 17 e Figuras 5 e 6).

As redes sociais já fazem parte da vida de muitas pessoas. De acordo com fontes citadas pela Wikipédia, o Facebook atingiu em setembro a marca de 800 milhões de usuários. Já o rival Google+, mesmo tendo sido lançado em julho e aberto a todos (sem necessidade de convite) em setembro, contava em outubro com 40 milhões de inscritos. Outra rede social do Google, o Orkut, conta com mais de 30 milhões de brasileiros em seus cadastros, enquanto a ferramenta de microblog Twitter possuía em março deste ano mais de 200 milhões de inscritos.

A reportagem de capa da revista VEJA, edição 2237 (outubro 2011, disponível em seu acervo digital – veja Links), destaca a ascensão do Facebook como uma profunda transformação da Internet: “a passagem definitiva da era das buscas para a era social”. Neste contexto, cada vez mais outros sites e aplicativos integram-se às redes sociais, pois entre um serviço encontrado por meio de uma pesquisa na Internet e um outro recomendado por um amigo confiável, o segundo geralmente é preferido.

Para facilitar esta integração, as redes sociais seguem o modelo SaaS, sigla que significa Software as a Service (em português, Software como um Serviço). O SaaS é um conceito da computação em nuvem (cloud computing) e consiste em um modelo de distribuição de software no qual as informações (ex.: sua lista de amigos no Facebook, seus seguidores no Twitter) e as funcionalidades (ex.: curtir algo publicado por um amigo no Facebook, publicar um texto de até 140 caracteres no Twitter) são centralizadas (na “nuvem”) e podem ser acessadas por diferentes clientes (chamados de thin clients ou “clientes magros” por conterem somente a interface com o usuário).

Tal conexão se dá por meio de Web Services SOAP ou RESTful oferecidos pelo serviço a quem quiser utilizar suas funcionalidades e acessar os dados ali presentes. Já que muitas vezes tais dados contêm informações privadas a seus donos, integrar uma aplicação com um provedor SaaS requer também conhecimento do protocolo de autenticação utilizado, em geral, o OAuth (Open Authorization – veja Links), que é um padrão aberto para autenticação e autorização.

SOAP (Simple Object Application Protocol) é um protocolo baseado em XML para troca de informações entre Web Services e clientes. REST (Representational State Transfer) é um estilo de arquitetura de software para sistemas hipermídia (por exemplo, aplicações Web) que consiste em um cliente e um servidor que se comunicam por meio de requisições e respostas, transferindo em tais comunicações representações do estado dos objetos. Uma aplicação que se comunica utilizando o estilo REST é chamada de RESTful.

O Spring Social (veja o site oficial do projeto em Links) é uma nova extensão do Spring Framework que facilita a integração entre aplicações Java e provedores SaaS, abstraindo os detalhes dos protocolos de autenticação e de acesso e oferecendo uma API Java por meio da qual as funcionalidades e informações oferecidas pelo serviço podem ser acessadas. Sua versão 1.0 foi lançada em setembro e, no momento da escrita do artigo, o Spring Social provê suporte aos seguintes provedores:

· Rede social Facebook;

· Microblog Twitter;

· Rede profissional LinkedIn;

· Serviço de organização de viagens TripIt;

· Repositório social de código-fonte GitHub;

· Rede social baseada em localização Gowalla.

Este artigo é uma introdução ao Spring Social e apresenta, por meio de um exemplo prático, como integrar uma aplicação Web ao Twitter. Antes, porém, é preciso criar uma aplicação que utilize o Spring Framework, o que será apresentado na seção a seguir.

Aplicação Web com Spring

Para utilizar o Spring Social é preciso ter uma aplicação que utilize o Spring Framework. Deste modo, esta seção apresenta instruções passo-a-passo para a criação de uma aplicação Web simples integrada com o Spring, que servirá de base para os demais exemplos deste artigo.

Nos exemplos foi utilizada a versão 3.1.0.BUILD-SNAPSHOT do Spring Framework e seu componente Spring MVC foi utilizado para separação das camadas de modelo, visão e controle da aplicação Web. Do Spring Social foi utilizada a versão 1.0.1.BUILD-SNAPSHOT. Versões de desenvolvimento foram adotadas por representarem melhor as funcionalidades mais atuais destes frameworks, porém para ambientes de produção recomenda-se aguardar o lançamento final (estável) destas versões. Detalhes sobre o Spring Framework e o Spring MVC estão fora do escopo deste artigo. Para isso, recomendamos o tutorial do Spring 3 MVC no site viralpatel.net (em inglês, veja Links). Foram ainda empregados o servidor Web Apache Tomcat 7.0.19 e a IDE Eclipse 3.7 (Indigo). Instruções para instalação e integração destas duas ferramentas também encontram-se fora do escopo deste artigo.

Além disso, por ser o Spring um framework bastante completo e cheio de dependências, explicar como gerenciar estas dependências manualmente no artigo seria mais complexo do que utilizar uma ferramenta de gerenciamento de dependências como o Maven (veja Links). Desta forma, as instruções a seguir assumem que o leitor possui o Maven instalado em sua máquina (foi utilizada a versão mais recente, 3.0.3) e o plug-in m2e – Maven Integration for Eclipse instalado na IDE (utilize o repositório Indigo - http://download.eclipse.org/releases/indigo para a instalação).

Instruções serão dadas para o uso do Maven integrado ao Eclipse, como mostrou a parte 2 da série “Além da IDE”, publicada na Edição 93 da Java Magazine. Porém, caso o leitor prefira não utilizar o Maven no projeto, pode utilizar o arquivo pom.xml da Listagem 1 somente para obter todos os JARs necessários utilizando o comando mvn compile.

Criação do projeto e definição das dependências

Para começar, crie um novo projeto no Eclipse do tipo Maven Project, selecionando o arquétipo (archetype) maven-archetype-webapp. Como parâmetros do projeto, neste exemplo foram utilizados os seguintes valores:

· Group Id: br.com.javamagazine;

· Artifact Id: exemplo-spring-social;

· Version: 0.0.1-SNAPSHOT;

· Package: br.com.javamagazine.springsocial.

Nas versões do Maven e do plug-in m2e utilizadas durante a escrita do artigo, a pasta que contém os arquivos de código-fonte Java – src/main/java – não é criada automaticamente pela IDE. Portanto, crie-a manualmente, clique nela com o botão direito do mouse e selecione Build Path > Use as source folder.

Depois de criado o projeto, o primeiro passo para integrá-lo ao Spring é a definição das dependências. Para já deixar esta aplicação preparada para os exemplos que serão apresentados ao longo do artigo, serão definidas todas as dependências necessárias ao Spring Social. Então, abra o arquivo pom.xml do projeto e, em primeiro lugar, defina como propriedades do projeto os números de versão que serão utilizados do Spring e de suas extensões, elencados na Tabela 1.

...

Nome

Valor

spring.version

3.1.0.BUILD-SNAPSHOT

Quer ler esse conteúdo completo? Tenha acesso completo