Post on 19-May-2015
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