4.1 Modelagem
4.1.3 Modelo de Aplicação Web
4.1.3.1 Gadgets
A proposta da modelagem da ferramenta Semanticpad visa prover um serviço de edição de RDF reutilizável em qualquer lugar da web sem necessidade de modificação. Uma forma simples e adequada de atender este requisito é disponibilizá-la como um gadget (ou widget) que pode ser reutilizados em qualquer aplicação, página na web ou em outros gadgets (GOOGLE-CODES, 2009).
Gadgets (ou widgets) geralmente são aplicações simples que atendem a necessidades específicas e bem definidas como apresentação de notícias, música, agenda, álbum de fotos, jogos, bloco de notas, calculadora (MICROSOFT, 2009), mas também podem ser aplicativos complexos interagindo com vários outros gadgets e utilizando recursos bem mais elaborados (GOOGLE-CODES, 2009).
Gadgets da Google (www.google.com) na web são aplicações geralmente baseadas em XML, HTML, CSS e Javascript, são independentes de plataforma ou aplicação (WIKIPÉDIA, 2009). Por meio de tags e bibliotecas, funcionam em lugares diferentes com extensões da Application Programming Interface (API) principal dos gadgets (GOOGLE- GADGETS, 2009).
4.1.3.1.1 Características dos Gadgets
Gadgets são mini-aplicações que podem ser desenvolvidas por amadores ou por profissionais, são implementadas em uma Application Programming Interface (API) como a Gadgets do Google e são armazenados num repositório de gadgets. Gadgets podem ser inseridos, a partir do repositório, em qualquer lugar da web, geralmente por meio de iframes (janelas) individuais dentro de outra página chamada de página recipiente (GOOGLE- CODE, 2009).
Qualquer site ou aplicativo que execute gadgets é chamado de recipiente (GOOGLE-GADGETS, 2009), podem ser sites comerciais, aplicações web, blogs ou perfis em redes sociais. Um recipiente pode definir o layout que o gadget será exibido em sua página e também outras funcionalidades (GOOGLE-CODES, 2009).
Além de páginas, gadgets podem ser inseridos em vários outros locais como barras laterais na área de trabalho, desktops on-line como o iGoogle ou Dashboard do Mac (GOOGLE-DESKTOP, 2009).
A Figura 41 mostra um exemplo de gadget inserido em dois contextos:
Figura 41 - Gadget inserido em páginas recipientes
Para inserir um gadget em uma página na web, a página recipiente deve apenas recortar uma linha de código fonte que chama o gadget do repositório para sua página no local onde este deverá aparecer. Esta linha de código é fornecida automaticamente pelo provedor de gadgets. A Figura 42 mostra um exemplo de linha de código que insere um gadget:
Figura 42 - Linha de código para inserção de um gadget
Segundo o GOOGLE-GADGETS, 2009, não existem gadgets privados, todos os gadgets são de domínio público, seja para uso ou reaproveitamento de código fonte. A
visibilidade pública do código fonte dos gadgets permite que a lógica seja reaproveitada para a produção de outros gadgets similares.
Gadgets podem ser personalizáveis e também permitem sistemas de alimentação de conteúdo como Really Simple Syndication (RSS). Gadgets também podem ser compartilhados e editados de forma colaborativa (GOOGLE-GADGETS, 2009).
Os gadgets usam codificação UTF-8 e possuem um sistema que facilita a internacionalização, adaptação a idiomas e configurações locais (GOOGLE-CODE, 2009). O Google Gadget (http://www.google.com/webmasters/gadgets/) fornece uma API e diversos outros recursos gratuitos para a produção de gadgets. Boa parte desses recursos dará suporte ao desenvolvimento do protótipo. Alguns desses recursos são apresentados na próxima seção.
4.1.3.1.2 Recursos do Google Gadgets
O Google Gadgets disponibiliza recursos para que qualquer desenvolvedor possa criar e disponibilizar seus gadgets. Esses gadgets podem ser publicados no diretório de gadgets do Google (http://www.google.com/ig/directory?synd=open) e passa a estar disponível para toda comunidade web. O Google Gadgets também fornece uma API que provê uma série de recursos e um editor simples para o desenvolvimento de gadgets (GOOGLE-GADGETS, 2009).
O Google Code (http://code.google.com/intl/en/) também oferece um repositório no Google Project Hosting (http://code.google.com/intl/en/projecthosting/) que fornece um domínio e uma hospedagem gratuita para projetos, ainda oferece uma interface de gerenciamento com recursos de controle de versão pelo TurtoiseSVN (GOOGLE-CODE, 2009). A Figura 43 ilustra a interface de gerenciamento do desenvolvimento da Semanticpad fornecida pelo Google Project Hosting:
Figura 43 - Interface de gerenciamento do Google Project Hosting
Os gadgets do Google podem ser testados na página do (IGOOGLE, 2009), um desktop on-line disponibilizado gratuitamente, ou no (GOOGLE-DESKTOP, 2009), uma barra lateral instalada na área de trabalho que agrega e gerencia gadgets off-line (GOOGLE- GADGETS, 2009).
Qualquer pessoa pode adicionar um gadget disponibilizado no diretório de gadgets do Google em seu iGoogle, Google-Desktop ou em qualquer outro lugar da web (GOOGLE-GADGETS, 2009).
Estes gadgets são suportados pela API Gadgets desenvolvida pela Google. Esta API é responsável por responder as requisições de gadgets e prover suporte a várias outras funcionalidades que veremos com mais detalhes na próxima seção.
4.1.3.1.3 API Gadgets
A API Gadgets do Google oferece vários recursos para fornecer suporte aos gadgets. Abaixo estão listados alguns dos recursos fornecidos pela API Gadgets (GOOGLE- CODE, 2009):
a) permite que gadgets obtenham recursos de outras URL’s, deixando-os extensíveis a diversas outras tecnologias como Flash ou Silverlight;
b) fácil implementação de suporte para vários idiomas e localidades; c) conjunto amplo de APIs sociais (no caso do OpenSocial);
d) permite que os gadgets sejam redimensionáveis em altura tanto em nível de recipiente como em nível de usuário;
e) permite uma biblioteca de componentes de interface com várias funcionalidades como navegação por guias;
f) configuração dos gadgets por preferências dos usuários;
g) internacionalização de gadgets por meio de mapeamento de mensagens em qualquer idioma;
h) permite que um gadget seja exibido de forma diferente dependendo do contexto e localidade no qual ele é renderizado por meio de Seções de conteúdo múltiplo.
A maior parte destes recursos listados será utilizada no desenvolvimento do protótipo para garantir sua disponibilidade da ferramenta. A API de gadgets do Google será o principal suporte ao Semanticpad.
4.1.3.1.4 OpenSocial.
O OpenSocial é uma iniciativa para desenvolver aplicativos que tem principalmente a atuação em redes sociais. Foi implementado com a tecnologia de gadgets. Tem características especiais para interações nas redes sociais e atualização de RSS (GOOGLE-CODE, 2009).
A proposta do OpenSocial é que as atividades sejam executadas no perfil do usuário em uma rede social, e tem a vantagem de possibilitar recursos de interação com os demais usuários da rede (WIKIPÉDIA, 2009).
OpenSocial é um conjunto de API’s mantida por vários sites que permitem que qualquer desenvolvedor crie gadgets para rodar em redes sociais. Dentre as redes que fornecem suporte as API’s do OpenSocial estão: HI5, 2009, MYSPACE, 2009, ORKUT, 2009, NETLOG, 2009, SONICO, 2009, FRIENDSTER, 2009, NING, 2009 e YAHOO, 2009, entre outras (JQUERYUI, 2009).