DAS 5315 - Sistemas Distribuídos
para Automação Industrial
Trabalho
2ª Semestre de 2010
Professor: Joni da Silva Fraga
Estagiário: Eduardo Alchieri
26/10/10
Sistemas Distribuídos
1
Enunciado
• Objetivo;
– Exercitar conceitos relacionados com SD;
• Concorrência;
• Threads;
• Comunicação entre processos.
26/10/10
Sistemas Distribuídos
2
Enunciado
• Implementação de uma aplicação utilizando
mecanismos de invocação remota de
métodos:
– Servidor de email.
• Fornecerá serviços dos protocolos SMTP, POP.
• Linguagem de programação Java;
• Comunicações através de chamadas a
métodos remotos (CORBA);
26/10/10
Sistemas Distribuídos
3
Enunciado
• O servidor deverá implementar um objeto
CORBA com os seguintes métodos:
– login:
• Invocado pelo cliente para efetuar o login;
• Parâmetro de entrada: o identificador do cliente;
• O servidor deverá criar um outro objeto CORBA
(chamaremos de ProxyCliente), que também é uma
thread, para atender cada cliente;
• Retorna uma IOR (referência CORBA) do
ProxyCliente criado para atender ao cliente em questão;
26/10/10
Sistemas Distribuídos
4
Enunciado
• Continuação...
– enviarSMTP:
• Invocado para comunicação entre servidores;
• Cada e-mail recebido pelos objetos ProxyCliente
deve ser colocado em uma fila onde uma thread
separada ficará encaminhando os e-mails
direcionados a outro servidor;
• Parâmetro de entrada: o e-mail a ser encaminhado;
• Quando um servidor recebe um e-mail através deste
método, coloca-o na caixa de entrada do destinatário.
26/10/10
Sistemas Distribuídos
5
Enunciado
• O objeto ProxyCliente deve implementar os
seguintes métodos:
– enviar:
• Invocado pelo cliente para enviar um e-mail;
• Parâmetro de entrada: o e-mail (tipo composto IDL);
• Retorna true ou false;
– listar:
• Invocado pelo cliente para listar e-mails;
• Retorna uma lista com os assuntos (“subject”) dos e-mails
destinados ao usuário em questão.
26/10/10
Sistemas Distribuídos
6
Enunciado
• Continuação...
– ler:
• Invocado pelo cliente pare receber um e-mail;
• Parâmetro de entrada: assunto do e-mail a ser lido;
• Retorna o e-mail em questão.
26/10/10
Sistemas Distribuídos
7
Enunciado
• Aplicação cliente:
– Deverá prover uma interface para escolher entre o envio ou o
recebimento de e-mail;
– Para envio, questionar: emissor, destinatário, assunto e corpo do email;
• Estes campos devem fazer parte da struct definida em IDL para
encapsular os dados do e-mail.
• Emissor é o próprio cliente em questão.
• O campo destinatário deve ser, por exemplo: destinatario@servidor1
(para um destinatario registrado no servidor1).
– Deverá indicar se o e-mail foi enviado com sucesso ou não;
26/10/10
Sistemas Distribuídos
8
Enunciado
• Aplicação cliente:
– Os e-mails lidos deverão ser apresentados no
dispositivo de saída padrão;
• Montar uma infra-estrutura com:
– 2 servidores e;
– 6 clientes, sendo 3 contas em cada servidor.
26/10/10
Sistemas Distribuídos
9
Visão Simplificada do
Funcionamento
NS
1 - registrar no NS
4 – buscar a IOR do Servidor 2
CORBA
CORBA
Servidor 1
5 – encaminhar
e-mail
Método: enviarSMTP
3 – enviar e-mail para Servidor 1
Método: enviar
Cliente 1
26/10/10
Servidor 2
7 – listar e-mails
Método: listar
Cliente 2
Sistemas Distribuídos
10
6 – buscar a IOR do Servidor 2
2 – buscar a IOR do Servidor 1
1 – registrar no NS
Enunciado
• Observações:
–
–
–
–
26/10/10
Grupos: 2 alunos;
Entrega;
Dúvidas: [email protected]
www.das.ufsc.br/~alchieri/das5315/
Sistemas Distribuídos
11
Perguntas
[email protected]
26/10/10
Sistemas Distribuídos
12
Download

Servidor 1