58
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 (BandTec)

Embed Size (px)

DESCRIPTION

Palestra apresentada aos alunos da Faculdade BandTec em 30/Abr/2011

Citation preview

Page 1: Mashups: Criando Valor na Web 2.0 (BandTec)

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 (BandTec)

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 (BandTec)

Palestrante(quem é esse cara?)

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

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

Page 4: Mashups: Criando Valor na Web 2.0 (BandTec)

O que é Mashup?

Page 5: Mashups: Criando Valor na Web 2.0 (BandTec)

Mashup

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

feita para consumo humano”

Page 6: Mashups: Criando Valor na Web 2.0 (BandTec)

O que é Mashup?

Page 7: Mashups: Criando Valor na Web 2.0 (BandTec)

O que é Mashup?

Page 8: Mashups: Criando Valor na Web 2.0 (BandTec)

O que é Mashup?

Page 9: Mashups: Criando Valor na Web 2.0 (BandTec)

O que é Mashup?

Page 10: Mashups: Criando Valor na Web 2.0 (BandTec)

Mashup

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

feita para consumo humano”

Page 11: Mashups: Criando Valor na Web 2.0 (BandTec)

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 12: Mashups: Criando Valor na Web 2.0 (BandTec)

Web 2.0

Page 13: Mashups: Criando Valor na Web 2.0 (BandTec)

Web 2.0

Page 14: Mashups: Criando Valor na Web 2.0 (BandTec)

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

O'Reilly, 2005

Page 15: Mashups: Criando Valor na Web 2.0 (BandTec)

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 16: Mashups: Criando Valor na Web 2.0 (BandTec)

Tipos de Mashup

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

Page 17: Mashups: Criando Valor na Web 2.0 (BandTec)

Exemplos

Page 18: Mashups: Criando Valor na Web 2.0 (BandTec)

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

Page 19: Mashups: Criando Valor na Web 2.0 (BandTec)

cruzalinhas.appspot.com

Page 20: Mashups: Criando Valor na Web 2.0 (BandTec)
Page 21: Mashups: Criando Valor na Web 2.0 (BandTec)

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

Page 22: Mashups: Criando Valor na Web 2.0 (BandTec)

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

Page 23: Mashups: Criando Valor na Web 2.0 (BandTec)
Page 24: Mashups: Criando Valor na Web 2.0 (BandTec)

Tecnologia

Page 25: Mashups: Criando Valor na Web 2.0 (BandTec)

Tecnologia

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

Page 26: Mashups: Criando Valor na Web 2.0 (BandTec)

Arquitetura

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

(os atores)

Page 27: Mashups: Criando Valor na Web 2.0 (BandTec)

APIsApplication Programming Interface

Page 28: Mashups: Criando Valor na Web 2.0 (BandTec)

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

Uma API é um contrato!

Page 29: Mashups: Criando Valor na Web 2.0 (BandTec)
Page 30: Mashups: Criando Valor na Web 2.0 (BandTec)

APIs no Brasil

Fonte:

Page 31: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Page 32: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Page 33: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Asynchronous JavaScript + XML

Page 34: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Asynchronous JavaScript + XML

Chamadas em segundo plano(sem o “reload)

Page 35: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Asynchronous JavaScript + XML

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

Page 36: Mashups: Criando Valor na Web 2.0 (BandTec)

AJAX

Asynchronous JavaScript + XML

...ou não(JSON)

Page 37: Mashups: Criando Valor na Web 2.0 (BandTec)

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 38: Mashups: Criando Valor na Web 2.0 (BandTec)

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

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

Page 39: Mashups: Criando Valor na Web 2.0 (BandTec)

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 40: Mashups: Criando Valor na Web 2.0 (BandTec)

REST

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

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

Page 41: Mashups: Criando Valor na Web 2.0 (BandTec)

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 42: Mashups: Criando Valor na Web 2.0 (BandTec)

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 (BandTec)

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 44: Mashups: Criando Valor na Web 2.0 (BandTec)

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 45: Mashups: Criando Valor na Web 2.0 (BandTec)

RDF (FOAF) embutido<html> <head>

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

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

Page 46: Mashups: Criando Valor na Web 2.0 (BandTec)

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 47: Mashups: Criando Valor na Web 2.0 (BandTec)

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 48: Mashups: Criando Valor na Web 2.0 (BandTec)

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 49: Mashups: Criando Valor na Web 2.0 (BandTec)

KML<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 50: Mashups: Criando Valor na Web 2.0 (BandTec)

Prática

Page 51: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Yahoo! Pipes

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

● Idéia: misturar dois jornais diferentes: http://estadao.com.br/ http://folha.com.br/

Page 52: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Mashup JavaScript

● Mapear museus em São Paulo ● Museus: Apontador● Mapas: Google Maps

Page 53: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Mashup JavaScript● Cadastre-se: http://www.apontador.com.br

● Crie o aplicativo, anote o key e o secret ● Aprenda sobre a API Apontador: http://api.apontador.com.br

● Faça uma busca no navegador: http://api.apontador.com.br/v1/ search/places/byaddress ?state=sp&city=Sao+Paulo&term=museu

Page 54: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Mashup JavaScript● Exemplo da API do Google Maps: http://aponta.me/1yr

● Crie o mapa.html copiando e colando o exemplo● Mude o local e o zoom: var latlng = new google.maps.LatLng(

-23.57775, -46.64326); var myOptions = { zoom: 15,

Page 55: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Mashup JavaScript

+

O ideal seria criar uma página no servidor (museus.php), ex.: <?php header("Content-Type: application/vnd.google- earth.kml+xml") echo file_get_contents( “http://$key:$secret@ api.apontador.com.br/v1/search/places...”)

(e na real, usaríamos libcurl no lugar de file_get_contents)

Page 56: Mashups: Criando Valor na Web 2.0 (BandTec)

Exercício: Mashup JavaScript

+

mas vamos ganhar tempo e chamar uma página já pronta: var layer = new google.maps.KmlLayer( "http://chester.blog.br/museus.php", {preserveViewport: true}); layer.setMap(map);

Page 57: Mashups: Criando Valor na Web 2.0 (BandTec)

Obrigado!

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

Page 58: Mashups: Criando Valor na Web 2.0 (BandTec)

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