Objetos Distribuídos para WEB

32
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB

description

Objetos Distribuídos para WEB. Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB. Organização. Módulo 1: Conceitos de Sistemas Distrubídos; Módulo 2: Remote Procedure Call; Módulo 3: Java RMI; Módulo 4: CORBA ;. - PowerPoint PPT Presentation

Transcript of Objetos Distribuídos para WEB

Page 1: Objetos Distribuídos para WEB

Objetos Distribuídos para WEB

Prof. Paulo Fernando da SilvaFURB – Universidade Regional de Blumenau

Pós-Graduação em Desenvolvimento WEB

Page 2: Objetos Distribuídos para WEB

Organização• Módulo 1:

– Conceitos de Sistemas Distrubídos;• Módulo 2:

– Remote Procedure Call;• Módulo 3:

– Java RMI;• Módulo 4:

– CORBA;

Page 3: Objetos Distribuídos para WEB

Módulo 1 - Sumário

• Conceitos de Sistemas Distribuídos– Conceitos Básicos;– Arquiteturas Distribuídas;– Comunicação cliente-servidor;

Page 4: Objetos Distribuídos para WEB

Conceitos Básicos

• Conceito de Sistemas Distribuídos:– Sistema que executa em várias máquinas e

aparece para o usuário de maneira transparente (Tanenbaum);

– Sistema que executa tarefas coordenadas em várias máquinas e se comunica através de passagem de mensagens (Coulouris);

Page 5: Objetos Distribuídos para WEB

Conceitos Básicos

• Características básicas:– Concorrência:

• Compartilhamento de recursos;– Falta de relógio global:

• Diferentes máquinas não são sincronizadas;– Independência de falhas:

• Um ponto falho não paralisa todo o sistema;

Page 6: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Heterogeneidade;• Abertura;• Segurança;• Escalabilidade;• Tolerância a Falhas;• Concorrência;• Transparência;

Page 7: Objetos Distribuídos para WEB

Conceitos BásicosDesafios• Heterogeneidade:

– Diferentes Redes possuem diferentes protocolos;

– Hardwares diferentes representam dados de maneira diferente;

– Diferentes SOs fazer chamadas de função de maneira diferente;

– Linguagens possuem diferentes estruturas;– Programas de diferentes desenvolvedores não

se comunicam;

Page 8: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Solução: Middleware:– Camada adicional de software;– TCP/IP: rede;– Corba: linguagem;– Java: sistema operacional;

Page 9: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Abertura:– Possibilidade de alterar / estender o

middleware;– Padronização de funções e interfaces;– Internet: RFC do IETF;– Corba: documentos da OMG;

Page 10: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Segurança:– Confidencialidade;– Autenticidade;– Não repúdio;– Integridade;– Controle de acesso;– Disponibilidade;

Page 11: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Escalabilidade:– Funcionamento adequado em diferentes

escalas;– Internet é altamente escalável;

Date Computers Web servers Percentage

1993, July 1,776,000 130 0.008

1995, July 6,642,000 23,500 0.4

1997, July 19,540,000 1,203,096 6

1999, July 56,218,000 6,598,697 12

Page 12: Objetos Distribuídos para WEB

Conceitos BásicosDesafios• Deve implementar:

– Controle de custo de recursos físicos: se um recurso tem muito acesso precisa ser replicado;

– Controle de performance dos recursos: se um recurso começa a ficar lento, precisa ser re-estruturado;

– Prevenção contra esgotamento de recursos: tipos de dados, lista e tabelas devem ser extensíveis (Ex.: endereço IP);

– Prevenção contra gargalos: enviar algoritmos centralizados;

Page 13: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Tolerância a Falhas:– Detecção: checksum, votação de

processamento;– Mascaramento: retransmissão, redundância;– Recuperação: rollback;

Page 14: Objetos Distribuídos para WEB

Conceitos BásicosDesafios• Concorrência:

– Recursos podem ser acessados ao mesmo tempo;

– Serviços precisam gerenciar o acesso aos recursos;

– Operações concorrentes devem ser sincronizadas;

– Controle de transações;– Ex: movimentação em contas diferentes

concorrentemente;

Page 15: Objetos Distribuídos para WEB

Conceitos BásicosDesafios

• Transparência:– Ocultar do usuário a separação dos

componentes;– Ocultar do programador a separação dos

componentes;– É um requisito importante nos sistemas

distribuídos;

Page 16: Objetos Distribuídos para WEB

Integração de AplicaçõesTransparênciaTransparência Descrição

Acesso Esconde diferenças na representação de dados e como um recurso é acessado

Localização Esconde onde um recurso está localizado

Migração Esconde que um recurso pode mover-se para outra localização

Relocação Esconde que um recurso pode ser movido para outra localização enquanto esta sendo usado

Replicação Esconde que um recurso está distribuído por vários servidores.

Concorrência Esconde que um recurso pode ser compartilhado por vários usuários concorrentes

Falha Esconde a falha e recuperação de um recurso

Persistência Esconde quando um recurso (software) esta em memória ou em disco

Page 17: Objetos Distribuídos para WEB

Arquiteturas – Cliente / Servidor

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

Page 18: Objetos Distribuídos para WEB

Arquiteturas – Cliente / Vários Servidores

Server

Server

Server

Service

Client

Client

Page 19: Objetos Distribuídos para WEB

Arquiteturas – Servidor Proxy

Client

Proxy

Web

server

Web

server

serverClient

Page 20: Objetos Distribuídos para WEB

Arquiteturas – Peer-to-Peer

Coordination

Application

code

Coordination

Application

code

Coordination

Application

code

Page 21: Objetos Distribuídos para WEB

Arquiteturas – Código Móvel

a) client request results in the downloading of applet code

Web server

ClientWeb serverApplet

Applet codeClient

b) client interacts with the applet

Page 22: Objetos Distribuídos para WEB

Arquiteturas – Agente Móvel

• É um programa que viaja de um computador para outros;

• Inclui código e dados;• Geralmente realiza coleta de

informações;• Realiza acesso a recursos locais no

servidor em que executa;

Page 23: Objetos Distribuídos para WEB

Arquiteturas – Cliente Magro

Thin

ClientApplication

Process

Network computer or PCCompute server

network

Page 24: Objetos Distribuídos para WEB

Exemplo - Internet

the rest of

email server

Web server

Desktopcomputers

File server

router/firewall

print and other servers

other servers

print

Local areanetwork

email server

the Internet

Page 25: Objetos Distribuídos para WEB

Middleware

Applications, services

Middlewarelayers

request-reply protocol

marshalling and external data representation

UDP and TCP

Thischapter

RMI and RPC

Page 26: Objetos Distribuídos para WEB

Comunicação Cliente-Servidor

• Servidor: oferece serviços;• Cliente: requisita serviços;• Normalmente síncrono;• Premissas de comunicação:

– Request / Reply;– Send / Receive;

Page 27: Objetos Distribuídos para WEB

Cliente - ServidorComunicação Sockets

message

agreed portany port socketsocket

Internet address = 138.37.88.249Internet address = 138.37.94.248

other ports

client server

Page 28: Objetos Distribuídos para WEB

Cliente - ServidorArquitetura Client-Server

Request

ServerClient

doOperation

(wait)

(continuation)

Replymessage

getRequest

executemethod

messageselect object

sendReply

Page 29: Objetos Distribuídos para WEB

Cliente - ServidorArquitetura Client-Server

public byte[] doOperation (RemoteObjectRef o, int methodId, byte[] arguments)sends a request message to the remote object and returns the reply. The arguments specify the remote object, the method to be invoked and the arguments of that method.

public byte[] getRequest ();acquires a client request via the server port.

public void sendReply (byte[] reply, InetAddress clientHost, int clientPort); sends the reply message reply to the client at its Internet address and port.

Page 30: Objetos Distribuídos para WEB

Cliente - ServidorConfiabilidade

• UDP:– Time out;– Retransmissão;– Duplicatas (histórico);

• TCP:– Protocolo já é confiável;– Menos flexibilidade;

Page 31: Objetos Distribuídos para WEB

Cliente – ServidorMensagens

Name Messages sent byClient Server Client

R RequestRR Request Reply

RRA Request Reply Acknowledge reply

Page 32: Objetos Distribuídos para WEB

Cliente – ServidorExemplo

• Protocolo HTTP;• Implementado sobre TCP;• Cliente requisita páginas:

– operação / parâmetros;– get <arquivo.html>;

• Servidor atende requisição;