Agosto 31, 2007
Mashups: O Que São? Conheça Os Seus Tipos E Tecnologias De Suporte - Parte 1
Mashups são um novo género de aplicações Web interactivas que tiram partido de conteúdos recolhidos de fontes de dados externos para criar serviços inteiramente novos e inovadores. São um marco da segunda geração de aplicações Web informalmente conhecida como Web 2.0.

Crédito da Imagem: (c) Quasimondo - (c) Design porJasmine T.
A combinação de tecnologias de modelação de dados surgindo do domínio da Web Semântica e a maturação dos protocolos de comunicação fracamente emparelhados, orientados para serviço e independentes de plataforma estão finalmente a oferecer a infra-estrutura necessária para a criação de aplicações que podem tirar partido e integrar o gigantesco volume de informação que está disponível na Web.
À medida que as aplicações mashup ganham visibilidade acrescida, será interessante ver como o género afecta as questões de propriedade intelectual para além de outros domínios de aplicação que integram dados através de limites organizacionais, tais como computação em rede e gestão de workflows business-to-business.
Para uma mais aprofundada aproximação ao desenvolvimento de mashups, esteja atento à série de tutoriais existente no developerWorks que lhe ensinam como criar as suas próprias mashups. Na realidade, a série ensinar-lhe-á como utilizar a tecnologia e ontologias da Web Semântica para permitir que outros criem as suas próprias mashups.
Este artigo introdutório explora:
a) o que significa ser um mashup,
b) as diferentes classes de mashups populares existentes e
c) as tecnologias permissivas das quais os criadores de mashups tiram partido para criarem as suas aplicações. Adicionalmente, irá ver muitos dos desafios técnicos e sociais que os criadores de mashups enfrentam.
Eis os detalhes:
Mashups: A Nova Espécie de Aplicação Web
por Duane Merrill
Crédito da Imagem: (c) Dion Hinchcliffe - via RemixTheory.net
Apresentação
Uma nova espécie de aplicações Web de integração de dados está a surgir em toda a Internet.
Coloquialmente chamadas de mashups, a sua popularidade nasce da ênfase na participação dos utilizadores e na forma grotesca como agregam e reúnem os dados de terceiros.
A nova metáfora é razoável; o sítio Web de mashup é caracterizado pela forma em que espalha as suas raízes por toda a Web, tirando partido de conteúdos e funcionalidades recolhidas de fontes de dados que se encontram fora das suas fronteiras organizacionais.
Esta vaga definição de integração de dados de uma mashup não é certamente rigorosa.
Uma boa análise do que faz uma boa mashup é ver a etimologia do termo: foi adaptado da música pop, onde o mashup é uma nova música que é misturada a partir das faixas vocais e instrumentais de duas músicas diferentes (geralmente pertencentes a diferentes géneros). Tal como estas músicas "pop bastardas", uma mashup é uma composição de conteúdos incomum e inovadora (com frequência de fontes de dados não relacionadas), criadas para consumo humano (e não criadas para computador).
E então, qual pode ser o aspecto de uma mashup? O sítio Web The ChicagoCrime.org é um excelente exemplo intuitivo do que é chamado mashup de mapeamento. Uma das primeiras mashups a gozar grande popularidade na imprensa, o sítio Web reúne dados de crimes da base de dados on-line do Departamento Policial de Chicago com dados cartográficos do Google Maps.
Os utilizadores podem interagir com o sítio Web, tal como instruí-lo a mostrar um mapa gráfico com marcadores, que revelam os detalhes de todos os crimes de roubo no Sul de Chicago. O conceito e apresentação são simples e a composição dos dados de crimes e mapas é visualmente poderosa.
Nesta primeira parte deste relatório a atenção recai sobre os géneros de Mashup, pois vou orientá-lo na análise de géneros populares de mashups incluindo mashups de mapas. Também nesta parte, Tecnologias relacionadas analisa o panorama tecnológico referente à construção e operação de mashups.
Na segunda parte deste relatório, a ser publicada na próxima semana, irei analisar os desafios Técnicos e Sociais que afectam os mashups.
Classes de Mashups
Nesta secção faço uma ligeira análise sobre os tipos mais proeminentes de mashups.
Mapeando mashups
Nesta era da tecnologia de informação, o ser humano está a recolher um volume dados prodigioso sobre assuntos e actividades.
Todos estes conjuntos de dados, que contêm informação sobre o seu local de focus, estão a pedir para serem apresentados graficamente através de mapas. Um dos grandes catalisadores para a invasão de mashups foi o lançamento por parte do Google da sua API do Google Maps.
Isto abriu o caminho, permitindo que programadores Web (e entusiastas, pensadores e outros) reunissem todos os tipos de dados (tudo, deste desastres nucleares às vacas da CowParade de Boston) em mapas. De realçar também as as APIs da Microsoft (Virtual Earth), Yahoo (Yahoo Maps), e AOL (MapQuest).
Mashups de vídeo e fotos
A emergência do alojamento de fotografias e sítios Web de rede social como o Flickr com APIs que expõem a partilha de fotografias levou a uma variedade de mashups interessantes.
Porque estes fornecedores de conteúdos têm metadados associados às imagens que alojam (como quem tirou a fotografia, que fotografia é, onde e quando foi tirada, entre outros), os criadores de mashups podem misturar (mash) fotografias com outra informação que pode ser associada aos metadados.
Por exemplo, as mashups podem analisar letras de música e poemas e criar um mosaico ou colagem de fotos relevantes como mostrar gráficos de rede social baseados em metadados comuns em imagens (assunto, hora e data e outros metadados).
Outro exemplo pode ter como fonte um sítio Web (como um sítio Web de notícias como a CNN) e misturar o texto nas fotos, fazendo corresponder as tags das imagens com as palavras das notícias.
Mashups de Pesquisa e Compras
Mashups de pesquisa e de compras já existiam antes do termo mashup ser criado. Antes do tempo das APIs Web, ferramentas de comparação de compras como BizRate, PriceGrabber, MySimon, e Froogle da Google utilizavam combinações de tecnologias business-to-business (b2b) para reunir dados comparativos de preços.
Para facilitar mashups e outras aplicações Web interessantes, mercados de consumidores como o eBay e a Amazon lançaram APIs para providenciarem o acesso ao seu conteúdo através de programação.
Mashups de Notícias
Fontes de notícias (como o New York Times, a BBC ou a Reuters) utilizaram tecnologias de sindicação como RSS e Atom (descrito na secção seguinte) desde 2002 para disseminar feeds noticiosos relativos a vários assuntos.
Mashups de feeds de sindicação podem reunir os feeds de um utilizador e apresentá-los na Web, criando um jornal personalizado que responde aos interesses particulares do leitor.
Um exemplo é Diggdot.us, que combina feeds das fontes orientadas para as tecnologias como Digg.com, Slashdot.org e Del.icio.us.
Tecnologias relacionadas
Esta secção dá-lhe uma visão geral das tecnologias que estão a facilitar o desenvolvimento de mashups. Para mais informação sobre qualquer uma destas tecnologias consulte a secção de Recursos no fim deste artigo.
A Arquitectura
Uma aplicação mashup é composta por três participantes que estão lógica e fisicamente separados (estão provavelmente separados por limitações de rede ou organizacionais):
1) fornecedores de API/conteúdos,
2) o sítio Web do mashup e
3) o browser Web do cliente.
- Os fornecedores de API/conteúdos.
Estes são os (por vezes acidentais) fornecedores do conteúdo a ser misturado. No exemplo de mashup do ChicagoCrime.org, os fornecedores são a Google e o Departamento de Polícia de Chicago. Para facilitar a recolha de dados, os fornecedores frequentemente expõem o seu conteúdo através de protocolos Web tais como REST, Web Services e RSS/Atom (descrito em baixo).
No entanto, muitas fontes de dados potencialmente interessantes (ainda) não revelam convenientemente as suas APIs.
Mashups que extraem conteúdo de sítios Web como a Wikipédia, TV Guide, e praticamente todos os sítios Web governamentais e de domínio público fazem-no através de uma técnica conhecida como leitura de ecrã. Neste contexto, a leitura de ecrã representa o processo pelo qual uma ferramenta tenta extrair informação do fornecedor de conteúdos tentando ler as suas páginas Web, inicialmente concebidas para consumo humano.
- O Sítio Web de mashup.
É aqui onde a mashup é alojada. Curiosamente, sendo aqui que a lógica de mashup reside não é necessariamente onde é executada.
Por outro lado, as mashups podem ser implementadas de forma similar às aplicações Web tradicionais utilizando tecnologias de criação de conteúdos dinâmicas no servidor, como servlets Java, CGI, PHP ou ASP.
Em alternativa, o conteúdo misturado pode ser criado directamente no browser do cliente através de scripts (isto é, JavaScript) ou applets. Esta lógica de cliente é frequentemente a combinação de código directamente incluído na página Web de mashup e da programação de bibliotecas ou applets de APIs (fornecidas pelos fornecedores de conteúdos) referenciadas por essas páginas Web.
Mashups que utilizam esta abordagem podem ser chamadas de "rich internet applications" (RIAs), significando que elas estão muito voltadas para a experiência interactiva do utilizador. ("rich internet applications" são um dos marcos do que agora é chamado de "Web 2.0", a nova geração de serviços disponíveis na World Wide Web.)
Os benefícios de mashing no cliente incluem menos carga no servidor de mashup (os dados podem ser obtidos directamente a partir do fornecedor de conteúdos) e uma experiência de utilizador mais transparente (as páginas podem pedir autorizações para partes do seu conteúdo sem terem que refrescar toda a página). A API do Google Maps foi concebida para ser acedida através de Javascript no browser de cliente e é um exemplo de tecnologia de cliente.
É frequente que as mashups utilizem uma combinação de lógica tanto de servidor como de cliente para conseguirem a sua recolha de dados.
Muitas aplicações de mashup utilizam dados que lhes são fornecidos directamente pela sua base de utilizadores tornando locais (pelo menos) um dos conjuntos de dados. Além disso, efectuar pesquisas complexas em dados de várias fontes (tal como "Mostra-me valor médio para propriedades compradas por actores que contracenaram em filmes com o Kevin Bacon") requer processamento que seria impossível de realizar no browser do cliente.
- O browser Web do cliente.
É aqui onde a aplicação é criada graficamente e a interacção dos utilizadores tem lugar. Como descrito anteriormente, os mashups utilizam frequentemente a lógica de cliente para reunir e apresentar o conteúdo recolhido.
Ajax
Há alguma discussão sobre se o termo Ajax é ou não um acrónimo (alguns aceitam-no como representando "Asynchronous JavaScript + XML"). De qualquer forma, Ajax é um modelo de aplicação Web em vez de uma tecnologia específica. É composta de várias tecnologias centradas no carregamento e apresentação assíncrona de conteúdos:
- XHTML e CSS para apresentação com estilo
- A API Document Object Model (DOM) exposta pelo browser para apresentação e interacção dinâmicas
- Partilha assíncrona de dados, geralmente de dados XML
- Script de browser, principalmente Javascript
Quando utilizado em conjunto, o objectivo destas tecnologias é criar uma experiência Web suave e coesa para os utilizadores, partilhando pequenos volumes de dados com os servidores de conteúdos em vez de recarregar e recriar a toda a página após alguma acção do utilizador.
Pode criar motores Ajax para mashups com vários toolkits e bibliotecas Ajax (tais como Sajax ou Zimbra), geralmente implementadas em Javascript. A API do Google Maps inclui um motor Ajax proprietário, e o efeito que tem sobre a experiência de utilizador é poderosa: comporta-se como uma aplicação verdadeiramente local onde não existem barras de deslocamento para manipular ou carregamentos de página forçados.
Protocolos Web: SOAP e REST
Tanto SOAP como REST são protocolos de comunicação com serviços remotos independentes de plataformas. Como parte do paradigma de arquitecturas orientado para serviços, os clientes podem utilizar tanto SOAP como REST para interagir com serviços remotos sem o conhecimento da implementação das plataformas subjacentes: a funcionalidade de um serviço é percebida pela descrição das mensagens que pede e pelas quais responde.
SOAP é uma tecnologia fundamental do paradigma Web Services. Originalmente um acrónimo para Simple Object Access Protocol, SOAP foi rebaptizado como Services-Oriented Access Protocol (ou só SOAP) porque a seu núcleo afastou-se dos sistemas baseados em objectos para a interoperabilidade da troca de mensagens.
Existem dois componentes fundamentais na especificação SOAP. O primeiro é o uso de um formato de mensagens em XML para a codificação independente de plataformas, e a segunda, a estrutura da mensagem, que consiste num cabeçalho e um corpo.
O cabeçalho é utilizado para partilhar informação contextual que não é específica à carga da aplicação (o corpo), tal como a informação de autenticação. O corpo da mensagem SOAP engloba a carga específica da aplicação.
As APIs da SOAP para serviços Web são descritos por documentos WSDL que descrevem as operações que o serviço expõe, o formato de mensagens que aceita (utilizando XML Schema), e como o abordar. As mensagens SOAP são transmitidas geralmente através de HTTP, embora outros transportes (tais como JMS ou e-mail) são igualmente viáveis.
REST é um acrónimo para Representational State Transfer, uma técnica de Comunicação Web utilizando apenas HTTP e XML. A sua simplicidade e falta de perfis rigorosos afastam-na da SOAP e tornam-na mais apetecível.
Ao contrário das interfaces verbais normais encontradas nas linguagens de programação modernas (que são compostas por diversos métodos tais comog etEmployee(), addEmployee(), listEmployees() e mais), o REST basicamente suporta apenas algumas operações (que são POST, GET, PUT, DELETE) que são aplicáveis a todas as peças de informação. O destaque do REST é as próprias peças de informação, chamadas recursos.
Por exemplo, uma entrada de recursos para um funcionário é identificada por um URI, obtida através de uma operação GET, actualizada por uma operação PUT, e assim por diante. Desta forma, REST é semelhante ao estilo literal dos documentos dos serviços SOAP.
Leitura de ecrã
Como referido anteriormente, a falta de APIs de fornecedores de conteúdos geralmente obriga a que os criadores de mashups tenham que recorrer à leitura de ecrã para poderem recolher a informação que pretendem reunir.
A leitura é o processo de utilizar ferramentas de software para analisarem conteúdos que foram originalmente escritos para consumo humano para extrair estruturas de dados semânticos representativas dessa informação que possam ser utilizados e manipulados através de programação.
Algumas mashups utilizam tecnologia de leitura de ecrã para aquisição de dados, especialmente quando extraem dados de sectores públicos.
Por exemplo, mashups de mapeamento de propriedades podem combinar listagens de venda ou arrendamento, com mapas de um fornecedor de cartografia com dados "comp" recolhidos dos registos distritais. Outro projecto de mashup que lê dados é o XMLTV, uma colecção de ferramentas que recolhem listagens televisivas de todo mundo.
A leitura de ecrã é frequentemente considerada uma solução pouco elegante, e por boas razões.
Tem dois defeitos principais.
1) A primeira é que, ao contrário de APIs com uma interface, a leitura não tem um contrato programático específico entre o fornecedor de conteúdos e o consumidor desses conteúdos. Os scrapers têm que conceber as suas ferramentas sob um modelo do conteúdo fonte e esperar que o fornecedor adira consistentemente a este modelo de apresentação. Os sítios Web têm a tendência de alterar o seu aspecto periodicamente para se manterem actuais e com estilo, o que representa grandes dores de cabeça em termos de manutenção para os scrapers porque as suas ferramentas provavelmente irão falhar.
2) O segundo problema é a falta de software de leitura de ecrã sofisticado e reutilizável, normalmente conhecidos como scrAPIs. A falta de tais APIs e toolkits é em grande parte devida às necessidades específicas de cada ferramenta de leitura. Isto leva a grandes demoras de desenvolvimento, pois os designers são obrigados a reutilizar conteúdos, desenvolver modelos de dados e a separar e reunir dados em bruto do sítio Web do fornecedor.
Web Semântica e RDF
Os aspectos pouco elegantes da leitura do ecrã levam directamente à conclusão que os conteúdos criados para consumo humano não são conteúdos para consumo automático por máquinas.
Que entre a Web Semântica, que é a visão de que a Web existente pode ser aumentada para suplementar os conteúdos concebidos pelo ser humano por informação legível por máquinas. No contexto da Web Semântica, o termo informação é diferente de dados; os dados tornam-se informação quando transmitem significado (isto é, são compreensíveis).
A Web Semântica tem o objectivo de criar uma infra-estrutura Web que complemente dados com metadados para lhes dar significado, tornando-os próprios para automatização, integração, compreensão e reutilização.
A família de especificações W3C, colectivamente conhecida como Resource Description Framework (RDF), serve este propósito de oferecer metodologias para estabelecer estruturas sintácticas que descrevem dados.
O próprio XML não é suficiente; é demasiado arbitrário pois pode ser codificado de muitas formas diferentes para descrever os mesmos dados. RDF-Schema expande a capacidade do RDF de codificar conceitos de uma forma legível por máquinas. Logo que os modelos de dados possam ser descritos num modelo de dados, o RDF encarrega-se da construção de relações entre objectos de dados através de triplos sujeito-predicado-objecto ("sujeito S tem relação R com objecto O").
A combinação de modelos de dados e gráfico de relações permite a criação de ontologias, que são estruturas hierárquicas de conhecimento que podem ser pesquisadas e formalmente debatidas.
Por exemplo, pode definir um modelo onde um "tipo-carnívoro" com uma subclasse de "tipo-animal" com a limitação que "come" outros "tipo-animal", e cria duas ocorrências: uma com dados referentes a chitas e ursos polares e os seus habitats, outro referindo-se a gazelas e pinguins e seus respectivos habitats.
Motores de inferência podem então "misturar" estas ocorrências de modelos separados e concluir que as chitas podem predar gazelas mas não pinguins.
Os dados RDF estão a ser rapidamente adoptados numa variedade de domínios, incluindo aplicações de rede social (tal como FOAF -- Friend of a Friend) e sindicação (tal como RSS, que descrevo a seguir).
Adicionalmente, os componentes e tecnologia do software RDF estão a atingir um nível de maturidade, especialmente nas áreas da linguagem de pesquisa RDF (como RDQL e SPARQL) e estruturas programáticas e motores de inferência (como os Jena e Redland).
RSS e ATOM
RSS é uma família de formatos de sindicação baseado em XML. Neste contexto, a sindicação implica que um sítio Web que pretenda distribuir conteúdo crie um documento RSS e o registe com um editor de RSS.
Um cliente RSS pode então pesquisar o feed RSS do editor por novos conteúdos e reagir de uma forma apropriada.
RSS foi adoptado para sindicar uma grande variedade de conteúdos, indo desde artigos de notícias a títulos, changelogs para CVS, verificação para páginas Wiki, actualizações de projectos e até em dados audiovisuais como programas de rádio. A versão 1.0 é baseada em RDF, mas a mais recente, a versão 2.0, não é.
Atom é um protocolo de sindicação novo, mas semelhante. É um padrão proposto no Internet Engineering Task Force (IETF) e procura manter melhores meta dados do que o RSS, oferecer documentação melhor e mais rigorosa e incorpora a noção de construções para a representação de dados comuns.
Estas tecnologias de sindicação são excelentes para mashups que recolhem conteúdo baseado em eventos ou actualizações, tal como notícias e agregadores de blogues.
Fim da Parte 1
Na segunda parte: Desafios Técnicos e Sociais de Mashups.
Recursos
Saiba
- Programmable Web: Mantenha-se a par dos mais recentes mashups e APIs da Web 2.0.
- Considering Ajax, Part 1: Cut through the hype(Chris Laffra, developerWorks, May 2006): Considere-os um ponto de discussão para cada desenvolvedor antes de utilizar técnicas Ajax para um sítio Web.
- Página Ajax: Visite esta página patrocinada pelo Mozilla Development Center
- The Interplay of Web Aggregation and Regulations (LawTech): Assegure-se que lê esta boa análise das regulamentações e agregações Web (ficheiro PDF).
- DB2 and open source: Put yourself on the map with Google Maps API, DB2/Informix, and PHP on Linux (Marty Lurie e Aron Y. Lurie, developerWorks, Março 2006): Crie um mapa de simples utilização com o seus dados.
- Building Web service applications with the Google API (Nicholas Chase, developerWorks, Maio 2002): Saiba como incluir resultados de pesquisas Google e outras informações nas suas aplicações Java com este tutorial.
- The ultimate mashup -- Web services and the semantic Web - série de tutoriais: Siga todos os tutoriais nesta série e crie uma mashup personalizada.
- Second Generation Web Services: Leia este artigo da XML.com para cobertura sobre a arquitectura da REST.
- REST and the Real World: Leia mais sobre a REST no XML.com.
- O sítio Web W3C Semantic Web Activity: Leia sobre a Web Semântica.
- W3C RDF Activity: Visite este sítio Web para as notícias mais recentes sobre Resource Description Framework.
- W3C RDF Activity: Visite este sítio Web para as notícias mais recentes sobre Resource Description Framework.
- Introdução a Jena: Utilize modelos RDF nas suas aplicações Java com a Jena Semantic Web Framework (Philip McCarthy, developerWorks, Junho 2004): Saiba como utilizar o Jena Semantic Web Toolkit para tirar partido dos modelos de dados RDF nas suas aplicações Java.
- O que é o RSS: Do XML.com, saiba mais sobre este formato de sindicação para notícias, conteúdos e blogues pessoais.
- Atom Overview: Leia sobre o formato de conteúdos Web em XML e sindicação de meta dados e protocolo ao nível de aplicação no AtomEnabled.org
- Certificação IBM XML 1.1: Descubra como pode ser um IBM Certified Developer em XML 1.1 e tecnologias relacionadas.
- XML: Veja o developerWorks XML Zone para um grande conjunto de artigos técnicos e dicas, tutoriais, padrões e Redbooks da IBM.
- Webcasts e eventos técnicos da developerWorks : Esteja a par com a tecnologia nestas sessões.
Obtenha produtos e tecnologias
- W3C SOAP Specification: Obtenha a versão mais recente.
- Scraping com estilo: scrAPI toolkit para Ruby: Teste esta tecnologia para os seus mashups
Debata
- Fóruns de discussão XML Zone: Participe em muitos dos fóruns sobre XML.
Sobre o autor
Duane Merrill desenvolveu computação distribuída e plataformas de integração de dados distribuídos por mais de cinco anos. Tem sido um colaborador no Legion Project na Universidade da Virgínia e um desenvolvedor interino no produto de integração de dados empresariais distribuídos Avaki da Avaki Corporation. Está de momento a obter o seu Ph.D. em Ciências Informáticas na Universidade da Virgínia.
Este artigo és protegido sob copyright 2006, Backstop Media e foi reproduzido com permissão.
Duane Merrill -
Reference: IBM [ Ler mais ]
Actualizado em Sãbado, Outubro 13 2007
Junho 26, 2007
Remix, Mashup E Ganhe Dinheiro Com Os Seus Conteúdos Media Utilizando Conteúdo Licenciado: MixerCast
Junho 6, 2007
Edit, Remix, Mash Up: Partilhe O Seu Conteúdo On-line Com O Flektor
Outubro 17, 2006
Web 2.0: What Is A Mash Up? Marshall Kirkpatrick Video Interview


