54
Mashups: Criando Valor na Web 2.0 Carlos Duarte do Nascimento [email protected] @chesterbr http://chester.blog.br

Mashups: Criando Valor na Web 2.0

Embed Size (px)

DESCRIPTION

Slides do mini-curso ministrado durante a SECCOMP 2010 (XVIII Semana da Ciência da Computação) no campus de Rio Claro da UNESP, na qual alunos de Ciência da Computação foram apresentados ao universo da criação de mashups, viram alguns cases e tecnologias relacionadas e fizeram exercícios usando Yahoo! Pipes (para integrar feeds RSS) e JavaScript (integrando a Apontador API com o Google Maps).

Citation preview

Page 1: Mashups: Criando Valor na Web 2.0

Mashups: CriandoValor na Web 2.0

Carlos Duarte do [email protected]

@chesterbr http://chester.blog.br

Page 2: Mashups: Criando Valor na Web 2.0

O que vamos ver

● O que é um Mashup? (e por que isso me interessa?)

● Exemplos● Tecnologia● Prática (exercício(s?) - aprenda fazendo!)

Page 3: Mashups: Criando Valor na Web 2.0

Palestrante(quem é esse cara?)

● Bacharel em Matemática Aplicada e Computacional (IME/USP)

● Desenvolvedor de Software (20 anos) ● Entusiasta do Software Livre● Arquiteto de Produtos no Apontador● Twitter: @chesterbr● Mais informações: http://chester.me

Page 4: Mashups: Criando Valor na Web 2.0

O que é Mashup?

Page 5: Mashups: Criando Valor na Web 2.0

O que é Mashup?

Page 6: Mashups: Criando Valor na Web 2.0

O que é Mashup?

Page 7: Mashups: Criando Valor na Web 2.0

O que é Mashup?

Page 8: Mashups: Criando Valor na Web 2.0

O que é Mashup?

Page 9: Mashups: Criando Valor na Web 2.0

Mashup

“uma composição incomum ou inovadora de conteúdo (tipicamente vindo de origens não-relacionadas)

feita para consumo humano”

Page 10: Mashups: Criando Valor na Web 2.0

Mashup

“uma composição incomum ou inovadora de conteúdo (tipicamente vindo de origens não-relacionadas)

feita para consumo humano”

Mashups: A nova raça de aplicações WebDuane Merril, 2006/2009

Page 11: Mashups: Criando Valor na Web 2.0

Web 2.0

Page 12: Mashups: Criando Valor na Web 2.0

Web 2.0

Page 13: Mashups: Criando Valor na Web 2.0

Web 2.0● Web como plataforma● Sempre em beta● Múltiplas plataformas● Experiência rica● Cavalgando a inteligência coletiva

O'Reilly, 2005

Page 14: Mashups: Criando Valor na Web 2.0

Mashup

“uma composição incomum ou inovadora de conteúdo (tipicamente vindo de origens não-relacionadas)

feita para consumo humano”

Mashups: A nova raça de aplicações WebDuane Merril, 2006/2009

Page 15: Mashups: Criando Valor na Web 2.0

Tipos de Mashup

● Mapas ● Fotos e Vídeos● Busca e compras● Notícias

Page 16: Mashups: Criando Valor na Web 2.0

Exemplos

Page 17: Mashups: Criando Valor na Web 2.0

Flickr + Google Maps = http://flickrvision.com

Page 18: Mashups: Criando Valor na Web 2.0

cruzalinhas.appspot.com

Page 19: Mashups: Criando Valor na Web 2.0
Page 20: Mashups: Criando Valor na Web 2.0

Lojas Online => http://buscape.com.br

Page 21: Mashups: Criando Valor na Web 2.0

Sites de Notícias => http://news.google.com.br

Page 22: Mashups: Criando Valor na Web 2.0
Page 23: Mashups: Criando Valor na Web 2.0

Tecnologia

Page 24: Mashups: Criando Valor na Web 2.0

Tecnologia

● Arquitetura (APIs/sites/browsers) ● AJAX● REST● Crawling / Scraping● Web Semântica/ RDF● RSS e ATOM

Page 25: Mashups: Criando Valor na Web 2.0

Arquitetura

● Provedores de Conteúdo/APIs ● Site de Mashup● Navegador (browser)

(os atores)

Page 26: Mashups: Criando Valor na Web 2.0

APIsApplication Programming Interface

Page 27: Mashups: Criando Valor na Web 2.0

APIs● Funcionalidades (métodos, funções)● Protocolos (como eu chamo?)● Autenticação (quem pode chamar?)

Uma API é um contrato!

Page 28: Mashups: Criando Valor na Web 2.0
Page 29: Mashups: Criando Valor na Web 2.0

APIs no Brasil

Fonte:

Page 30: Mashups: Criando Valor na Web 2.0

AJAX

Page 31: Mashups: Criando Valor na Web 2.0

AJAX

Page 32: Mashups: Criando Valor na Web 2.0

AJAX

Asynchronous JavaScript + XML

Page 33: Mashups: Criando Valor na Web 2.0

AJAX

Asynchronous JavaScript + XML

Chamadas em segundo plano(sem o “reload)

Page 34: Mashups: Criando Valor na Web 2.0

AJAX

Asynchronous JavaScript + XML

Lógica de apresentação e navegação no browser

Page 35: Mashups: Criando Valor na Web 2.0

AJAX

Asynchronous JavaScript + XML

...ou não(JSON)

Page 36: Mashups: Criando Valor na Web 2.0

AJAX● Navegador chama HTML principal● Usuário clica/interage● Cada interação gera uma chamada ao

servidor (em background)● Respostas do servidor acionam eventos

(JavaScript), que redesenham partes daPágina (usando DOM)

Page 37: Mashups: Criando Valor na Web 2.0

AJAXImplementações possíveis:‒Tag <iframe>‒Objeto XMLHttpRequest

Conselho de amigo:jQuery (http://jquery.com)

Page 38: Mashups: Criando Valor na Web 2.0

AJAX com jQuery<script type=”text/javascript”> $.getJSON("http://api.flickr.com/services ↵ /feeds/photos_public.gne?tags= ↵ cat&tagmode=any&format=json& ↵ jsoncallback=?", function(data){ $.each(data.items, function(i,item){ $("<img/>").attr("src", item.media.m).appendTo("#images"); if ( i == 3 ) return false; }); });</script>

Page 39: Mashups: Criando Valor na Web 2.0

REST

● Representational State Transfer ● Usa apenas HTTP (RFC 2616)● Entidades são caminhos, ex.:

/clientes/empresaX/pedidos/32● Verbos HTTP: GET, PUT, DELETE...

Page 40: Mashups: Criando Valor na Web 2.0

Crawling / Scraping

● Extrair dados “na marra” ● Último recurso (sujeito a quebra e problemas legais)● Cuidados: não sobrecarregar o servidor, obedecer ROBOTS.TXT● Sugestão: XPath

Page 41: Mashups: Criando Valor na Web 2.0

XPath<html> <head>...</head> <body> <div>nome da pagina</div> <div>campo1</div> <p>campo2</p> ... <p id=”xyz”>campo3</p> </body></html>

campo1: /html/body/div[2]campo2: /html/body/pcampo3: //p[@id=”xyz”]

Page 42: Mashups: Criando Valor na Web 2.0

XPath<html> <head>...</head> <body> <div>nome da pagina</div> <div>campo1</div> <p>campo2</p> ... <p id=”xyz”>campo3</p> </body></html>

campo1: /html/body/div[2]campo2: /html/body/pcampo3: //p[@id=”xyz”]

Page 43: Mashups: Criando Valor na Web 2.0

Web Semântica/RDF

● Grosso modo: “descrever o significado do conteúdo”● RDF (Resource Description Framework) é um meta-formato● Pode ser embutido no próprio HTML

● Dica: pesquise “microformats”

Page 44: Mashups: Criando Valor na Web 2.0

RDF (FOAF) embutido<html> <head>

</head> <body> <p >Oi, eu sou o

Carlos Nascimento . <img src="chester.jpg" /> </p> </body></html>

Page 45: Mashups: Criando Valor na Web 2.0

RDF (FOAF) embutido<html> <head> <link rel="schema.foaf" href="http://xmlns.com/foaf/0.1/" /> <link href="#chester" rev="foaf-homepage foaf-made" rel="foaf-maker" /> </head> <body> <p id=”chester”>Oi, eu sou o <span class="foaf-name"><span class="foaf-firstName">Carlos</span> <span class="foaf-surname">Nascimento</span></span>. <img src="chester.jpg" class="foaf-depiction" /> </p> </body></html>

Page 46: Mashups: Criando Valor na Web 2.0

RSS● Sigla com vários significados (dica: Really Simple Sindication)● Descreve / agrega conteúdo (web syndication) em uma timeline● Publish / Subscribe● É só um XML! (1.0 era RDF)

Page 47: Mashups: Criando Valor na Web 2.0

KML● Keyhole Markup Language (Keyhole Earth Viewer Google Earth)⇒● Descreve pontos geográficos● É um XML● Extensível e tem subsets, ex.: ARML (Augmented Reality ML)

Page 48: Mashups: Criando Valor na Web 2.0

KML<?xml version="1.0" encoding="UTF-8"?><kml xmlns="http://www.opengis.net/kml/2.2"><Document><Placemark> <name>New York City</name> <description>New York City</description> <Point> <coordinates> -74.006393,40.714172,0 </coordinates> </Point></Placemark></Document></kml>

Page 49: Mashups: Criando Valor na Web 2.0

Prática

Page 50: Mashups: Criando Valor na Web 2.0

Exercício: Yahoo! Pipes

● Y! Pipes: programação visual http://pipes.yahoo.com

● Idéia: misturar dois jornais diferentes: http://jornalcidade.uol.com.br http://www.nytimes.com

Page 51: Mashups: Criando Valor na Web 2.0

Exercício: Mashup em PHP

● Apontador + Google Maps ● Idéia: mapear bares em Rio Claro● Cadastro no Apontador: http://www.apontador.com.br ● Cadastrar aplicativo, anotar key e secret

Page 52: Mashups: Criando Valor na Web 2.0

Exercício: Mashup em PHP

● Crie o mapa.html● Crie o locais.php● Altere o mapa.html para mostrar os locais do locais.php

Page 53: Mashups: Criando Valor na Web 2.0

Obrigado!

[email protected]@chesterbr http://chester.blog.br

Page 54: Mashups: Criando Valor na Web 2.0

Links Úteis

Textos● What is Web 2.0, Tim O'Reily: http://aponta.me/2F9q● Mashups: The new breed of Web app: http://aponta.me/11tYX

Documentação● Apontador API: http://api.apontador.com.br● Google Maps API “Hello World”: http://aponta.me/4Dbf

Mídia● Vídeo do Girl Talk: http://aponta.me/AA8 ● Grey Album (DJ Danger Mouse): http://aponta.me/1CV