320 likes | 449 Views
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 ;.
E N D
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á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;
Date Computers Web servers Percentage 1,776,000 130 0.008 1993, July 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 • Escalabilidade: • Funcionamento adequado em diferentes escalas; • Internet é altamente escalável;
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;
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 Application network Thin Process Client
Comunicação Cliente-Servidor • Servidor: oferece serviços; • Cliente: requisita serviços; • Normalmente síncrono; • Premissas de comunicação: • Request / Reply; • Send / Receive;
agreed port any port socket socket message client server other ports Internet address = 138.37.94.248 Internet address = 138.37.88.249 Cliente - ServidorComunicação Sockets
Cliente - ServidorArquitetura Client-Server Client Server Request doOperation getRequest message select object execute (wait) method Reply sendReply message (continuation)
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;
N a m e M es sag es s e nt b y C li e nt S e r ve r C li e nt R R e qu es t R R R e pl y R e qu es t R R A R e pl y A ck no w ledg e re ply R e qu es t Cliente – ServidorMensagens
Cliente – ServidorExemplo • Protocolo HTTP; • Implementado sobre TCP; • Cliente requisita páginas: • operação / parâmetros; • get <arquivo.html>; • Servidor atende requisição;