Post on 19-Mar-2016
description
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
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;