Mini Curso Mashup Coreu

Post on 19-May-2015

956 views 0 download

Transcript of 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

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

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

Sobre o minicurso...

Mashup? Que raios é isto?

?

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

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

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

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

Mosaic Browser (nostalgia)

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

Este é o “cara”....

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...

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

10 anos depois

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....

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

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...

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

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)

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

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)

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

Futuro? não..

presente!

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

vamos ser sinceros...

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?

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?

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!

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

Perguntas ???

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

Mas o minicurso não é de Mashup?

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

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.

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

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?

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

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

Um site, mixando diversas APIs

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

Arquitetura de um Mashup

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

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

API?

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

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!

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

Como?

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)

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

Aplicação

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

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

Tecnologias envolvidas

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

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

XHTML e CSS

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

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

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

DOM

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”)

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

DOM

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

XML e JSON

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.

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>

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.

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

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”

}

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”

}

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

JavaScript

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.

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

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”)

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>

-

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>

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

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

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

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

}

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

Linguagem server side

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...

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

Produtividade sempre é legal!

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ê!

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

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 )

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

Quero saber mais, Como faço?

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

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 !

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

Hands-onMão na massa!

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?

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

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

Agradecimentos