Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Distribuídos e a WEB
Disciplina: Sistemas Computacionais Distribuídos
Professor: Marcos José Santana
Aluno: Roberto Rigolin Ferreira Lopes [email protected]
São Carlos, 01 de novembro de 2007
Presente e Futuro
2/54
Sistemas Computacionais Distribuídos e a Web
Objetivo do Seminário
Discutir as principais tecnologias e protocolosempregados no desenvolvimento de sistemas distribuídos que utilizam a Web.
A good plan, violently executed now, is better than a perfect plan next week. (George S. Patton, 1885 - 1945)
3/54
Sistemas Computacionais Distribuídos e a Web
Agenda
Sistemas DistribuídosWebConectividade: Passado, Presente e FuturoTecnologias e Protocolos da Web
– Ajax, Feeds RSS, MashupSistemas Web-based
– Online e HibridoComputação Móvel
Pocket Switched Networks - PSNs
Talk low, talk slow, and don't talk too much. (John Wayne)
4/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Computacionais Distribuídos
Grupo de computadores com capacidade de processamento autônomo, interconectado por uma rede. Em caso de falha em um dos computadores o sistema não é totalmente comprometido.
Características:– S.O. para unificar e integrar– Autonomia cooperativa– Compartilhamento de recursos– Distribuição geográfica – Tolerância a falhas– Escalabilidade
5/54
Sistemas Computacionais Distribuídos e a Web
Web
Conjunto de serviços disponibilizados na Internet– Páginas Web, email, Feeds RSS, Web Services e
etc...
Foi concebida a partir de protocolos e tecnologias suportadas e/ou viabilizadas pela pilha de protocolos TCP/IP
6/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Passado
Telefonia– Necessidade de cabos ubíquos– Diversas tentativas de transmissão de dados– A necessidade de chaveamento de canais físicos não
atendiam as exigências militares● Não era tolerante a falhas
7/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Passado
Telefonia – Chaveamento de circuito
Os militares queriam tolerância a falhas.
8/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Presente
Comutação de pacotes IP– Cada pacote carrega as informações necessárias
para sua entrega– Mecanismos de roteamento são empregados
9/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Presente
10/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Presente
Sistema tolerante a falhas!
11/54
Sistemas Computacionais Distribuídos e a Web
Pilha TCP/IP
IP
UDP
HTTP SMTP FTP
TCP SSLTransporte
SOAPAplicação
Rede
12/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Presente
ARPANET no início de 1970
A pilha TCP/IP foi projetada e implementada neste contexto
O endereço IP indicava localização física
13/54
Sistemas Computacionais Distribuídos e a Web
Internet? ou Web?
IP
UDP
HTTP SMTP FTP
TCP SSLInternet
SOAPWeb
Web – camada 5 (Aplicação)Internet – camadas 3 e 4 (Rede e Transporte)
14/54
Sistemas Computacionais Distribuídos e a Web
Web
Foi criada por Timothy John Berners-Lee no CERN (Conseil Européen pour la Recherche Nucléaire)
– 1989 Proposta de um projeto de hipertexto– 1991 a Web foi disponibilizada mundialmente– 1993 Nasce o Mosaic– 1994 criação do W3C
O modelo de desenvolvimento da Web é baseado na especificação de padrões de domínio público
15/54
Sistemas Computacionais Distribuídos e a Web
Primeira página Web
Foi colocada online em 7 de agosto de 1991
16/54
Sistemas Computacionais Distribuídos e a Web
Tecnologias e Protocolos da Web
Protocolos:– HTTP, HTTPS, IMAP, SMTP, POP, SOAP, XHTTP e
etc...
Tecnologias:– AJAX, Feeds RSS, REST, DHTML, Java Script, DOM,
XSLT, RDF, Atom e etc...
17/54
Sistemas Computacionais Distribuídos e a Web
AJAX (Asynchronous Javascript And XML)
Permite a criação de requisições assíncronas por meio de um conjunto de tecnologias:
– XHTML e CSS - Apresentação – DOM - Interação Dinâmica – XML e XSLT - Intercâmbio e manipulação de dados– XMLHttpRequest – Recuperação assíncrona– Java Script – Para permitir o uso das supracitadas
18/54
Sistemas Computacionais Distribuídos e a Web
Feeds RSS (Really Simple Syndication)
É utilizado para disponibilizar o conteúdo de sites e aplicações dinâmicas.– Disponibiliza o conteúdo em XML– Atualizações no conteúdo podem ser facilmente
recuperadas e apresentadas – Permite a agregação de conteúdo entre sites e
aplicações– Facilita o acompanhamento de conteúdos dinâmicos
Amplamente utilizado em blogs e sites de notícias.
19/54
Sistemas Computacionais Distribuídos e a Web
Mashup
Consiste na utilização de conteúdo disponibilizado por mais de uma fonte com objetivo de criar um novo serviço completo
Faz uso de RSS e AJAX
Mashup típicos nos dias atuais:– Mapas– Video e Foto– Busca e Compras– Notícias
20/54
Sistemas Computacionais Distribuídos e a Web
Mashup
Mapas mais fotos ou vídeos.
21/54
Sistemas Computacionais Distribuídos e a Web
Mashup
Notícias
22/54
Sistemas Computacionais Distribuídos e a Web
23/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web-based
Online– O navegador é a plataforma– Depende da rede de comunicação– Interface Web
Híbrido Online/Offline– Mescla as vantagens e desvantagens das suas
abordagens– Projeto mais complexo– Interface de Desktop e/ou Web
24/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web online
Todos os dados requisitados devem ser recuperados em um servidor na Internet– Projeto simples– Fácil programação– Utilização ineficiente da rede
IMG SRC: http://code.google.com/apis/gears/architecture.html
25/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web online – Data Layer
Data Layer permite que os dados recuperados pela aplicação sejam persistidos localmente– Permite o uso mais eficiente da rede
IMG SRC: http://code.google.com/apis/gears/architecture.html
26/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web online – Data Layer e Switch
Data Switch implementa a mesma interface da Data Layer, contudo pode encaminhar ou não as requisições para a Data Layer– O usuário pode não desejar consultar os dados
persistidos– Essencial para chavear do modo online para offline e
vice-e-versa
IMG SRC: http://code.google.com/apis/gears/architecture.html
27/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web Híbrido online/offline
Utiliza uma camada de dados para o servidor e para a base de dados local– Permite o uso da aplicação em modo offline– O usuário escolhe o modo de funcionamento
IMG SRC: http://code.google.com/apis/gears/architecture.html
28/54
Sistemas Computacionais Distribuídos e a Web
Sistemas Web Híbrido online/offline/sync
Permite que dados gerados em modo offline sejam sincronizados com um servidor na Internet– Viabiliza o desenvolvimento de aplicações que
necessitam da entrada de dados do usuário
IMG SRC: http://code.google.com/apis/gears/architecture.html
29/54
Sistemas Computacionais Distribuídos e a Web
Construindo Apps HíbridasGoogle Gears
30/54
Sistemas Computacionais Distribuídos e a Web
Google Gears
Um exemplo:– http://code.google.com/apis/gears/samples/hello_world_database.html
31/54
Sistemas Computacionais Distribuídos e a Web
Google Gears
db = google.gears.factory.create('beta.database', '1.0'); if (db) { // Abre o banco e cria a tabela se nao existir db.open('database-demo'); db.execute('create table if not exists Demo' + ' (Phrase varchar(255), Timestamp int)'); // Apresenta as as frases persistidas displayRecentPhrases(); }
Abre o banco de dados e cria tabela
32/54
Sistemas Computacionais Distribuídos e a Web
Google Gears
Insere a frase na base de dados local:
var elm = document.getElementById('submitValue');var phrase = elm.value;var currTime = new Date().getTime();// Insere o novo item.db.execute('insert into Demo values(?, ?)',[phrase, curTime]);
// Atualiza interface.elm.value = '';displayRecentPhrases();
33/54
Sistemas Computacionais Distribuídos e a Web
Google Gears
Recupera as frases na base de dados local:
// Recupera as 3 entradas mais recentes e apaga as outrasrs = db.execute('select * from Demo order by Timestamp desc'); var index = 0; while (rs.isValidRow()) { if (index < 3) { recentPhrases[index] = rs.field(0); } else { db.execute('delete from Demo where Timestamp=?', [rs.field(1)]); } ++index; rs.next(); } rs.close();
34/54
Sistemas Computacionais Distribuídos e a Web
Adobe Integrated Runtime (AIR)
Funcionalidades semelhantes ao Google Gears:– Persistência de dados local– Permite a criação de aplicações com interface rica– SDK free– Necessita de um runtime instalado– Não tem suporte para Linux (em desenvolvimento)
35/54
Sistemas Computacionais Distribuídos e a Web
Mozilla Prism
Proxy: HTTP, SMTP e POP– Permite o uso de aplicações Web em modo offline
36/54
Sistemas Computacionais Distribuídos e a Web
Colaboração com Peer-to-Peer
Tem promovido uma grande mudança nos padrões de uso da Internet
Vantagens sobre o modelo Cliente/Servidor:– Não depende de servidores administrados por terceiros– Colaboração direta entre os usuários– Permite que recursos sejam compartilhados na
Internet
37/54
Sistemas Computacionais Distribuídos e a Web
Colaboração com Peer-to-Peer
Exemplos:
38/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Futuro
O problema mudou!
Projetos:
FIND (USA)FIRE (Europa)
39/54
Sistemas Computacionais Distribuídos e a Web
Conectividade - Futuro
Redes centradas em conteúdo– Também chamadas redes de disseminação– Não é necessário saber o IP da máquina onde o
conteúdo está disponível
REQ http://sohand.icmc.usp.br
RESP http://sohand.icmc.usp.br http://sohand.icmc.usp.br/20071008/ <NameMAC 2fde...> <DataMAC 31a2...> <html> ... </html>
40/54
Sistemas Computacionais Distribuídos e a Web
Conectividade
Em suma,– Passado: alocação de um canal físico– Atualmente: comutação de pacotes + redes overlay– Futuro: redes centradas em conteúdo
A conectividade está se tornando ubíqua.
41/54
Sistemas Computacionais Distribuídos e a Web
Computação Ubíqua
Universo da Computação Ubíqua Computação Móvel
Nothing shocks me. I'm a scientist.Harrison Ford (1942 - ), as Indiana Jones
42/54
Sistemas Computacionais Distribuídos e a Web
Computação Móvel
Tem o objetivo de atender a necessidade de computaçãoe comunicação de usuários nômades, enquanto eles se movem de um lugar para outro de forma:
– Transparente;– Integrada; – Conveniente.
Paradigma parcialmente implementado.
43/54
Sistemas Computacionais Distribuídos e a Web
Exemplo de Mobilidade
Imaginemos um CIO (Chief Information Officer) que tem as seguintes atividades programadas: i) reunião com a diretoria da empresa; ii) visita a um cliente.
44/54
Sistemas Computacionais Distribuídos e a Web
Exemplo de Mobilidade
Sala de Reuniões
45/54
Sistemas Computacionais Distribuídos e a Web
Exemplo de Mobilidade
Sala de Reuniões > Escritório
46/54
Sistemas Computacionais Distribuídos e a Web
Exemplo de Mobilidade
Sala de Reuniões > Escritório > Em trânsito
47/54
Sistemas Computacionais Distribuídos e a Web
Exemplo de Mobilidade
Sala de Reuniões > Escritório > Em trânsito > Empresa do cliente
48/54
Sistemas Computacionais Distribuídos e a Web
Computação Móvel
Este paradigma está mudando nosso dia-a-dia, devido a possibilidade de acesso à serviços de rede em qualquer lugar e a qualquer hora.
Viabilizado pela disponibilidade de:– Dispositivos portáteis;– Redes de acesso sem fio.
49/54
Sistemas Computacionais Distribuídos e a Web
Pocket Switched Networks - PSNs
São redes tolerantes a atrasos que utilizam encontros oportunísticos para permitir a comunicação em ambientes sem infra-estrutura ou onde não é necessário o uso de uma.
Cellular
P2P
AP
50/54
Sistemas Computacionais Distribuídos e a Web
Pocket Switched Networks - PSN
51/54
Sistemas Computacionais Distribuídos e a Web
Pocket Switched Networks - PSN
52/54
Sistemas Computacionais Distribuídos e a Web
Haggle
53/54
Sistemas Computacionais Distribuídos e a Web
Conclusões
● A Web é um grande Sistema Distribuído ● Existe um significativo esforço para tornar as
aplicações Web-based similares às aplicações Desktop-based. Com isso, as aplicações poderão usufruir do melhor dos dois mundos
● A Computação Móvel em breve será o paradigma predominante
● Neste contexto, os SDs serão acessados por meio de dispositivos e redes limitadas.
54/54
Sistemas Computacionais Distribuídos e a Web
Obrigado pela atenção!Roberto Rigolin Ferreira Lopes
All progress is based upon a universal innate desire on the part of every organism to live beyond its income.Everything you can imagine is real.(Samuel Butler, 1835 - 1902)