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;
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ásicos
Desafios
•
•
•
•
•
•
•
Heterogeneidade;
Abertura;
Segurança;
Escalabilidade;
Tolerância a Falhas;
Concorrência;
Transparência;
Conceitos Básicos
Desafios
• 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ásicos
Desafios
• Solução: Middleware:
–
–
–
–
Camada adicional de software;
TCP/IP: rede;
Corba: linguagem;
Java: sistema operacional;
Conceitos Básicos
Desafios
• Abertura:
– Possibilidade de alterar / estender o
middleware;
– Padronização de funções e interfaces;
– Internet: RFC do IETF;
– Corba: documentos da OMG;
Conceitos Básicos
Desafios
• Segurança:
–
–
–
–
–
–
Confidencialidade;
Autenticidade;
Não repúdio;
Integridade;
Controle de acesso;
Disponibilidade;
Conceitos Básicos
Desafios
• Escalabilidade:
– Funcionamento adequado em diferentes
escalas;
– Internet é altamente escalável;
Date
1993, July
1995, July
Computers
Web servers
Percentage
1,776,000
6,642,000
130
23,500
1997, July
19,540,000
1,203,096
1999, July
56,218,000
6,598,697
0.008
0.4
6
12
Conceitos Básicos
Desafios
• 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ásicos
Desafios
• Tolerância a Falhas:
– Detecção: checksum, votação de
processamento;
– Mascaramento: retransmissão, redundância;
– Recuperação: rollback;
Conceitos Básicos
Desafios
• 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ásicos
Desafios
• 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ções
Transparência
Transparência
Acesso
Localização
Descrição
Esconde diferenças na representação de dados e como um
recurso é acessado
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
Falha
Persistência
Esconde que um recurso pode ser compartilhado por vários
usuários concorrentes
Esconde a falha e recuperação de um recurso
Esconde quando um recurso (software) esta em memória ou em
disco
Arquiteturas – Cliente / Servidor
Client
invocation
result
invocation
Server
result
Server
Client
Key:
Proc ess :
Computer:
Arquiteturas – Cliente / Vários Servidores
Servic e
Server
Client
Server
Client
Server
Arquiteturas – Servidor Proxy
Web
s erver
Client
Proxy
s erver
Client
Web
s erver
Arquiteturas – Peer-to-Peer
Applic ation
Applic ation
Coordination
c ode
Coordination
c ode
Applic ation
Coordination
c ode
Arquiteturas – Código Móvel
a) c lient reques t res ults in the downl oadi ng of applet c ode
Client
Applet c ode
Web
s erver
b) c lient interac ts with the appl et
Client
Applet
Web
s erver
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
Compute server
Network computer or PC
Thin
network
Client
Application
Process
Exemplo - Internet
email server
Desktop
c om pute rs
print and other servers
Loc al area
network
Web s erver
email server
File server
print
other s ervers
the res t of
the Internet
router/firewal l
Middleware
Applic ations , s ervic es
RMI and RPC
T his
c hapter
reques t-reply protocol
marshall ing and external data repres entation
UDP and T CP
Middleware
layers
Comunicação Cliente-Servidor
•
•
•
•
Servidor: oferece serviços;
Cliente: requisita serviços;
Normalmente síncrono;
Premissas de comunicação:
– Request / Reply;
– Send / Receive;
Cliente - Servidor
Comunicação Sockets
socket
any port
agreed port
socket
message
client
server
other ports
Internet address = 138.37.94.248
Internet address = 138.37.88.249
Cliente - Servidor
Arquitetura Client-Server
Client
doOperation
Server
Request
message
(wait)
Reply
message
(continuation)
getRequest
select object
execute
method
sendReply
Cliente - Servidor
Arquitetura 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 - Servidor
Confiabilidade
• UDP:
– Time out;
– Retransmissão;
– Duplicatas (histórico);
• TCP:
– Protocolo já é confiável;
– Menos flexibilidade;
Cliente – Servidor
Mensagens
Name
Client
Messages sent by
Server
Client
R
Request
RR
Request
Reply
RRA
Request
Reply
Acknowledge reply
Cliente – Servidor
Exemplo
• Protocolo HTTP;
• Implementado sobre TCP;
• Cliente requisita páginas:
– operação / parâmetros;
– get <arquivo.html>;
• Servidor atende requisição;
Download

TMN baseado em CORBA - Departamento de Sistemas e