Objetos Distribuídos para WEB

Post on 19-Mar-2016

41 views 2 download

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

Objetos Distribuídos para WEB

Prof. Paulo Fernando da SilvaFURB – 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;

Módulo 1 - Sumário

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

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

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;

Conceitos BásicosDesafios

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

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;

Conceitos BásicosDesafios

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

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;

Conceitos BásicosDesafios

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

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

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;

Conceitos BásicosDesafios

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

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

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;

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;

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

Arquiteturas – Cliente / Servidor

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

Arquiteturas – Cliente / Vários Servidores

Server

Server

Server

Service

Client

Client

Arquiteturas – Servidor Proxy

Client

Proxy

Web

server

Web

server

serverClient

Arquiteturas – Peer-to-Peer

Coordination

Application

code

Coordination

Application

code

Coordination

Application

code

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

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;

Arquiteturas – Cliente Magro

Thin

ClientApplication

Process

Network computer or PCCompute server

network

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

Middleware

Applications, services

Middlewarelayers

request-reply protocol

marshalling and external data representation

UDP and TCP

Thischapter

RMI and RPC

Comunicação Cliente-Servidor

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

– Request / Reply;– Send / Receive;

Cliente - ServidorComunicação Sockets

message

agreed portany port socketsocket

Internet address = 138.37.88.249Internet address = 138.37.94.248

other ports

client server

Cliente - ServidorArquitetura Client-Server

Request

ServerClient

doOperation

(wait)

(continuation)

Replymessage

getRequest

executemethod

messageselect object

sendReply

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.

Cliente - ServidorConfiabilidade

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

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

Cliente – ServidorMensagens

Name Messages sent byClient Server Client

R RequestRR Request Reply

RRA Request Reply Acknowledge reply

Cliente – ServidorExemplo

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

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

• Servidor atende requisição;