Sistemas Distribuídos e a WEB - walderson.com e a Web.pdf · 26/54 Sistemas Computacionais...

Post on 14-Aug-2020

1 views 0 download

Transcript of Sistemas Distribuídos e a WEB - walderson.com e a Web.pdf · 26/54 Sistemas Computacionais...

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 robertorigolin@gmail.com

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

robertorigolin@gmail.com

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)