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