1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina:...

54
1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Di Professor: Marcos José Santana Aluno: Roberto Rigolin Ferreira Lopes [email protected] São Carlos, 01 de novembro de 2007 Presente e Futuro

Transcript of 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina:...

Page 1: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 2: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

2/54

Sistemas Computacionais Distribuídos e a Web

Objetivo do Seminário

Discutir as principais tecnologias e protocolos empregados 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)

Page 3: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

3/54

Sistemas Computacionais Distribuídos e a Web

Agenda

Sistemas Distribuídos

Web

Conectividade: Passado, Presente e Futuro

Tecnologias e Protocolos da Web Ajax, Feeds RSS, Mashup

Sistemas Web-based Online e Hibrido

Computação Móvel

Pocket Switched Networks - PSNs

Talk low, talk slow, and don't talk too much. (John Wayne)

Page 4: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 5: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 6: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 7: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

7/54

Sistemas Computacionais Distribuídos e a Web

Conectividade - Passado

Telefonia – Chaveamento de circuito

Os militares queriam tolerância a falhas.

Page 8: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 9: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

9/54

Sistemas Computacionais Distribuídos e a Web

Conectividade - Presente

Page 10: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

10/54

Sistemas Computacionais Distribuídos e a Web

Conectividade - Presente

Sistema tolerante a falhas!

Page 11: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

11/54

Sistemas Computacionais Distribuídos e a Web

Pilha TCP/IP

IP

UDP

HTTP SMTP FTP

TCP SSLTransporte

SOAPAplicação

Rede

Page 12: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 13: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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)

Page 14: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 15: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

15/54

Sistemas Computacionais Distribuídos e a Web

Primeira página Web

Foi colocada online em 7 de agosto de 1991

Page 16: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 17: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 18: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

Page 19: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 20: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

20/54

Sistemas Computacionais Distribuídos e a Web

Mashup

Mapas mais fotos ou vídeos.

Page 21: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

21/54

Sistemas Computacionais Distribuídos e a Web

Mashup

Notícias

Page 22: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

22/54

Sistemas Computacionais Distribuídos e a Web

Page 23: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 24: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 25: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 26: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 27: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 28: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 29: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

29/54

Sistemas Computacionais Distribuídos e a Web

Construindo Apps Híbridas

Google Gears

Page 30: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

30/54

Sistemas Computacionais Distribuídos e a Web

Google Gears

Um exemplo: http://code.google.com/apis/gears/samples/hello_world_database.html

Page 31: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 32: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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();

Page 33: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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();

Page 34: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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)

Page 35: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 36: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 37: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

37/54

Sistemas Computacionais Distribuídos e a Web

Colaboração com Peer-to-Peer

Exemplos:

Page 38: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

38/54

Sistemas Computacionais Distribuídos e a Web

Conectividade - Futuro

O problema mudou!

Projetos:

FIND (USA)FIRE (Europa)

Page 39: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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>

Page 40: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

Page 41: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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

Page 42: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

42/54

Sistemas Computacionais Distribuídos e a Web

Computação Móvel

Tem o objetivo de atender a necessidade de computação e comunicação de usuários nômades, enquanto eles se movem de um lugar para outro de forma:

Transparente; Integrada; Conveniente.

Paradigma parcialmente implementado.

Page 43: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

Page 44: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

44/54

Sistemas Computacionais Distribuídos e a Web

Exemplo de Mobilidade

Sala de Reuniões

Page 45: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

45/54

Sistemas Computacionais Distribuídos e a Web

Exemplo de Mobilidade

Sala de Reuniões > Escritório

Page 46: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

46/54

Sistemas Computacionais Distribuídos e a Web

Exemplo de Mobilidade

Sala de Reuniões > Escritório > Em trânsito

Page 47: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

47/54

Sistemas Computacionais Distribuídos e a Web

Exemplo de Mobilidade

Sala de Reuniões > Escritório > Em trânsito > Empresa do cliente

Page 48: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

Page 49: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

C ellu lar

P 2 P

AP

Page 50: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

50/54

Sistemas Computacionais Distribuídos e a Web

Pocket Switched Networks - PSN

Page 51: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

51/54

Sistemas Computacionais Distribuídos e a Web

Pocket Switched Networks - PSN

Page 52: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

52/54

Sistemas Computacionais Distribuídos e a Web

Haggle

Page 53: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

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.

Page 54: 1/54 Sistemas Computacionais Distribuídos e a Web Sistemas Distribuídos e a WEB Disciplina: Sistemas Computacionais Distribuídos Professor: Marcos José

54/54

Sistemas Computacionais Distribuídos e a Web

Obrigado pela atenção!

Roberto Rigolin Ferreira [email protected]

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)