Mini Curso Mashup Coreu

77
MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu 21 de maio de 2009 minicurso Mashup integrando Serviços na Web Marcelo Linhares – UOL

Transcript of Mini Curso Mashup Coreu

Page 1: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

minicurso

Mashup integrando Serviços

na WebMarcelo Linhares – UOL

Page 2: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Quem vos fala...

- 6 anos de experiência com webdevelopment- Webmaster @UOL S/A- marcelolinhares.com // pessoal- algumas brincadeiras:> vagasem.info // oportunidades em TI> marcelolinhares.com/bolsa // gestão de portfólio online

Page 3: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Sobre o minicurso...

Mashup? Que raios é isto?

?

Page 4: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Agenda

- Um pouco de história da WWW- WWW hoje! (vide Web 2.0 ou blá,blá,blá,blá...)- - Javascript, Json, CSS, EcmaScript, xHTML...- Hora do Café- Hands on code...- BrindesBrindes

Page 5: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Um detalhe...

Perguntas, dúvidas, sugestões, e comentários são SEMPRE bem vindos, a sua participação no mini-curso é fundamental

Page 6: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Um pouco de história...

- Um cara legal chamado Tim Berners

Lee criou a WWW em 1991

- Em 1993 o mesmo nerd criou o

HTML

- Ainda em 93, surge o Mosaic

Page 7: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Mosaic Browser (nostalgia)

Page 8: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Este é o “cara”....

Page 9: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Coleção de documentos

- A Web era nada mais que uma

coleção de documentos hipertexto

interligadas entre si

- Web como plataforma? Ainda não...

Page 10: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

10 anos depois

Page 11: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

10 anos depois

- Estouro da bolha,

- Espuelas enriqueceu ;-)

- A AOL Brasil fracassou!

- O Google apareceu

- Banda Larga, SOA, Mashups, Web

2.0, cloud computing....

Page 12: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Page 13: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Enfim....

10 anos depois, a

internet

se reiventou...

Page 14: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Page 15: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

A modinha da Web2.0- Sem especulação, internet

realmente começou a dar dinheiro

(Jeff Bezos, Marck Zuckerberg e Larry Page que o diga...)

- Usuário criando conteúdo

- Interfaces mais ricas

- Internet como plataforma

- Software como serviço (ASP)

Page 16: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

uma plataforma...??

- GMail/YahooMail x Outlook Express

- GoogleDocs x MsOffice

- Salesforce.com x RM Corpore

Page 17: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

uma plataforma...??

- Novo modelo de licenciamento de software:

- ASP (Application Service Provider)

Page 18: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Futuro? não..

presente!

Page 19: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

vamos ser sinceros...

Page 20: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

tudo isto seria possível, se ainda estivéssemos usando isto?

Page 21: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

E se nossa conexão dependesse do famigerado kit multmídia?

Page 22: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Isto só foi possível porquê:

A Lei de

Moore funcionou!

Page 23: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Perguntas ???

Page 24: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Mas o minicurso não é de Mashup?

Page 25: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Ok, onde Mashup entra nesta história?...

Usuário criando conteúdo

+ Interface mais rica

+ Internet como plataforma

+ Software como Serviço

x 10*2 / 0,333 = Mashup

Page 26: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Mashup....

Uma coleção de serviços e aplicativos http 'misturados' e (ou) integrados, formando assim uma nova aplicação.

Page 27: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Ou melhor.....

“Um mashup é um website ou uma aplicação web que usa conteúdo de mais de uma fonte para criar um novo serviço completo.”.

@wikipedia

Page 28: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

O quê?

Imagina um serviço que dado um endereço, ele calcularia o frete dos produtos mais baratos de várias lojas, e através de uma configuração, efetuaria compras automáticas?

Page 29: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Endereço – google maps

cálculo do frete – correios

produtos mais baratos (comparação

de preços) – buscapé / shopping

uol

compras – Paypal / PagSeguro /

F2b

Page 30: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Um site, mixando diversas APIs

Page 31: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Arquitetura de um Mashup

Page 32: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Content Provider.Sites que publicam conteúdo e disponibilizam o acesso através de APIs

Page 33: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

API?

Page 34: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Application Programming Interface (API) um conjunto de instruções e padrões de programação para acesso a um aplicativo de

software baseado na Web

Page 35: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

No site programmableweb.com, existem mais de 1000 APIs públicas disponíveis para sua criatividade!

Page 36: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Como?

Page 37: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

REST, Soap!Servindo XML (Atom, RSS) ou

JSON, ou Screen Scrapping (caso o site

não forneça uma API)

Page 38: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Aplicação

Page 39: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Pode ser server-side ou apenas client-side

Page 40: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Tecnologias envolvidas

Page 41: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

tecnologias

- xHTML e CSS

- DOM Document Object Model

- XML e JSON

- Javascript

- Linguagem server-side

Page 42: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

XHTML e CSS

Page 43: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

xHTML e CSS

- Web standards e CSS. Sites

preparados conforme os padrões da

w3c (World Wide Web Consortium),

utlizando xHTML para o conteúdo e

CSS para o comportamento visual

Page 44: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

xHTML

- linguagem de marcação (báh..)

- “evolução” da HTML...

- Objetivo? Aumentar a acessibilidade

Page 45: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

DOM

Page 46: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

DOM

- Document Object Model

- Interface para acessar/modificar a

estrutura de um documento

XML/xHTML

- exemplo?

document.getElementById(“curso-sg”)

Page 47: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

DOM

Page 48: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

XML e JSON

Page 49: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

XML

XML (Extensible Markup Language). Um padrão de linguagem para tornar mais fácil a transferência de dados entre aplicações.

Page 50: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

XML

<pessoa>

<nome>José</nome>

<idade>16</nome>

<emprego>Analista de

Sistemas</emprego>

<apelido>Zezé do Pagode</apelido>

</pessoa>

Page 51: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

JSON

"JavaScript Object Notation", é um formato para a transferência de dados entre aplicações.

Page 52: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

JSON

- Simples

- Tem a vantagem de ser mais leve

que o XML

- Normalmente utilizado quando os

dados trafegados entre as

aplicações são críticos

Page 53: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

JSON

{

"nome":"José",

"idade":"16",

"emprego":"Analista de Sistemas",

“apelido”:”Zezé do pagode”

}

Page 54: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

JSON

{

"nome":"José",

"idade":"16",

"emprego":"Analista de Sistemas",

“apelido”:”Zezé do pagode”

}

Page 55: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

JavaScript

Page 56: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Linguagem Client-Side

responsável por agilizar

interações entre o usuário

e a página, baseado no

padrão EcmaScript.

Page 57: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Page 58: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript- Linguagem interpretada

- Roda no cliente (client-side)

- Criada pela Netscape inicialmente

para fazer validações client-side nos

formulários HTML

- A intenção do JavaScript é prover

maior interatividade entre o sistema

e o usuário

document.getElementById(“curso-sg”)

Page 59: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript

- Todo comando javascript dentro do

HTML é delimitado pela tag

<script>

- <script>

alert("Janela do Javascript")

<script>

-

Page 60: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript/dom/css

- Atribuindo borda vermelha a um elemento xHTML cujo ID seja “curso-sg”

<script> document.getElementById(“curso-

sg”).style.border = “5px solid red”

<script>

Page 61: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript / XMLHttpRequest

- Objeto XMLHttpRequest

- Objeto responsável por fazer as

requisições assíncronas

Page 62: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript / XMLHttpRequest

- Primeiro problema! a criação do

Objeto é diferente no Internet

Explorer, neste (pseudo)browser o

objeto é criado através de um

ActiveX

Page 63: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript / XMLHttpRequest

var objeto = new

XMLHttpRequest(); // firefox /

ópera / konqueror / safari

var objeto = new

ActiveXObject("Msxml2.XMLHTTP");

// Internet Explorer

Page 64: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Javascript / XMLHttpRequest

function getXML() {

var objeto; // declara o objeto

try { // tenta criar objeto XMLHTTPRequest

objeto = new XMLHttpRequest()

}catch(e) { // caso dê erro, tenta criar o ActiveXObject

objeto = new ActiveXObject("Msxml2.XMLHTTP");

}

return objeto

}

Page 65: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Linguagem server side

Page 66: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

server-side

- linguagem de programação executada no servidor

- exemplo: php, ruby, python, asp, c,

c++, Java...

Page 67: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Produtividade sempre é legal!

Page 68: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Produtividade em JS

- existem frameworks JS que irão melhorar muito sua produtividade

- jquery, script.acu.lo.us,

mototools, dwr (Java), Spry

(Adobe)

- Fique atento ao uso de frameworks,

não deixem elas dominarem você!

Page 69: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Produtividade - Firefox

Firefox não é apenas um navegador,

ele é um poderoso ambiente de

desenvolvimento

Page 70: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Produtividade - Firefox- Console de Erros eficiente (Nativo)

- DOM Inspector - verifica Árvore de

Objetos DOM (Nativo)

- Extensão FireBug para Depurar

Scripts/CSS/HTML e verificar Árvore de

Objetos DOM

- Extensão WebDeveloper ( CSS/ JavaScript

/ xHTML / Validadores )

Page 71: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Quero saber mais, Como faço?

Page 72: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

- Não se esqueça, o Google é seu amigo ;-);

- Participe de listas de discussão, blogs,

fóruns, interaja;

- Já existem bons livros na área

- Qualquer dúvida, beba direto da fonte

W3C, Especificação EcmaScript

Page 73: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Só lembrandoAjax já virou commodity, para

quem trabalha com web, dominar Ajax é tão essencial quanto matemática para um

contador !

Page 74: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Hands-onMão na massa!

Page 75: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Sabia que tem muita gente divulgando vagas

no twitter? Que tal criarmos um mashup

que rastreia estas vagas?

Page 76: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

UtilizaremosHTML e CSS puro, Jquery (lib

para Javascript) e Twitter Search API

Page 77: Mini Curso Mashup Coreu

MiniCurso – Mashup, Integrando Serviços na Web – Ciência da Computação - Coreu21 de maio de 2009

Agradecimentos