P ROGRAMAÇÃO D ISTRIBUÍDA Primeira Fase da Aplicação Distribuída: Gestão de Salas João Gomes Nº 21150324 Marco AndradeNº 21190335 1.

Slides:



Advertisements
Apresentações semelhantes
Instalação e Configuração
Advertisements

Construção de Algoritmos 2
Programação em Java Prof. Maurício Braga
Orientação – acesso ambiente virtual
Personalização Objecto Profile. 1 O objecto Profile O objecto Profile permite armazenar informação única de um utilizador. Quando o utilizador visita.
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Análise de Casos de Uso.
Geodatabases no ArcGIS 9.x
Ferramenta de aprovisionamento de redes de cliente
Escola Secundária da Ramada
Laurent Baduel Françoise Baude Denis Caromel 1 Efficient, Flexible, and Typed Group Comunications in Java Por: Adriano Andrade53811 Susana Rijo José
Excel Profa. Cristina M. Nunes.
Diagramas de Seqüência
Orientação a Objetos: Encapsulamento e Classificação
Série de Exercícios.
Comunicação Distribuída
Administrando usuários 1 Controle de contas de usuários 1.
Interação Cliente Servidor
DNS Introdução.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Simple Network Management Protocol (SNMP)
Grupo 9 Leone Mendonça de Sena Patrícia Lima de Souza e Silva
Programa Chat Programação com RMI
Tratamento de Ficheiros
Internet e Informação Electrónica INTERNET EXPLORER
1 ua. deca. ntc. projecto. 3 de junho 2009 ana parada. raquel gonçalves. catarina garcia. maria henriques 1.Áreas desenvolvidas na versão beta 1.1. Áreas.
Mobilidade na Internet
MetaLib - Visão Geral 1º Encontro de Usuários ALEPH 30 Nov. e 1º Dez. de 2006 Caio Pellegatti.
Prontuário Eletrônico do Paciente
Análise de Casos de Uso Alexandre Motnteiro.
Biblioteca do Conhecimento Online – b-on FONTES DE INFORMAÇÃO SOCIOLÓGICA.
Timken Store Brasil Denis Guimarães.
Diagramas de Seqüência
Introdução à Programação Distribuída em Java
Parte I - Âmbito e Arquitectura
Utilitários de Redes Prof. Andréa Chicri Torga Adaptações
EBSCOhost Acesso móvel.
Ofício - Resposta Negativa
Microsoft Access Carlos Sebastião.
Sistemas e Tecnologias de Middleware TP3. Foco Sistema de comunicação – Sistema de Message Queuing – Abstracção do substracto de comunicação Adaptação.
Apresentação executiva.
Programação Orientada à Objetos
Compras – Cadastro de Cotação de Produtos
1 TUTORIAL DO CATÁLOGO DA EGP-UPBS. 2 O catálogo da EGP-UPBS encontra-se em e está integrado no catálogo da Universidade do Porto.
Extranet GRD – Guia de Remessa de Documentos
P ROGRAMAÇÃO D ISTRIBUÍDA Primeira Fase da Aplicação Distribuída: Gestão de Salas João Gomes Nº Marco AndradeNº
Tarefa 02 Visual Studio 2005 Visual C# Programa Hello World.
Resposta penhora Online
FTP (File Transfer Protocol) Protocolo de Transferencia de Arquivos
Módulo: Gerenciamento de Incidentes e
1- Acessar o site: 2- Realizar o cadastro.
Del Grande Informática
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Concorrência e Java RMI
Compras - Controle de estoque com dois ou mais depósitos
7 - Criação de Páginas Web
Clínica Online e TISS
Fiscal - Regra de imposto IdentificaçãoFIS_003 Data Revisão18/10/2013.
GESTÃO DE FICHEIROS ÍNDICE Pág. I.Instalação do Software 2 II.Selecção de Empresas / Manutenção de Empresas 5 III.Criação da Base de Dados (Clientes,
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
1 Site do Turismo de Portugal, IP Site do Turismo de Portugal, IP
Arquitetura das JSP - Aula 2
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Contagem Sequencial do Estoque
26/10/10 Sistemas Distribuídos 1 DAS Sistemas Distribuídos para Automação Industrial Trabalho 2ª Semestre de 2010 Professor: Joni da Silva Fraga.
REDE SOCIAL BASE DE DADOS dos CLAS
PROJETO PILOTO Outubro/Novembro 2015
© Todos os direitos reservados para Icatu Seguros S/A Nenhuma parte desta publicação pode ser reproduzida, arquivada ou transmitida de nenhuma.
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Maio 2014 Descritivo da Solução. Projecto CSRTarget O CSRTarget é uma ferramenta inovadora, rápida, e adequada às necessidades das Empresas/Organizações.
Transcrição da apresentação:

P ROGRAMAÇÃO D ISTRIBUÍDA Primeira Fase da Aplicação Distribuída: Gestão de Salas João Gomes Nº Marco AndradeNº

E STRUTURA DE COMUNICAÇÃO Int code, inteiro que transporta o código referente a operação que se pretende efectuar. T Message, campo genérico que encapsula os dados necessários para processar a operação descrita pelo campo code. 2

C ÓDIGOS DE COMUNICAÇÃO Códigos 0->50, cliente para servidor 1 -> Login 2 -> Pedir listagem de salas 3 -> Pedir Listagem de reservas de salas do utilizador actual 4 -> Pedir para registar reserva 5 -> Logout 6 -> Pedir para cancelar reserva 7 -> Pedir listagem de todas as reservas 3

C ÓDIGOS DE COMUNICAÇÃO C ONT. Códigos 50->100 servidor para o cliente sucesso 99 -> Login efectuado com sucesso 98 -> Preparar para receber listagem de salas 97 -> Preparar para receber listagem de reservas de salas do utilizador actual 96 -> Sala reservada com sucesso 95 -> Listagem de todas as reservas 4

C ÓDIGOS DE COMUNICAÇÃO C ONT. Códigos 50->100 servidor para o cliente, falha 50 -> Login inválido 51 -> Utilizador sem salas reservadas 52 -> Sala já reservada 53 -> Falhou pedido para cancelar reserva 5

C ÓDIGOS DE COMUNICAÇÃO C ONT. Códigos enviados quando há alterações 70 ->Alterações nas reservas 71 -> Alterações nas salas 6

L IGAÇÃO Servidor aceita ligação e lança thread User: Username, password Cliente Estabelece Ligação via TCP Cliente envia pedido de autenticação Code 1, message: User Code: 50/51 Login ok=50 Login fail=51 Login ok, cliente lança thread ligação Login Fail, mostra mensagem ao utilizador Cliente Servidor 7

L IGAÇÃO Após verificação das credenciais do utilizador, o programa cliente lança uma Thread que vai receber todas respostas do Servidor. O cliente Gráfico é responsável por enviar todos os pedidos para obter a informação que necessita. 8

Cliente Gráfico Thread Ligação Invoca método Actualiza, passando o código que recebeu do servidor Servidor Thread Multicast Thread ClientConn ection ThreadCl ient Pedidos Respostas Pedido IP/Porto via Multicast Resposta via UDP

S ERVIDOR O servidor está implementado da seguinte forma: 10 Servidor Thread Principal Thread Multicast Thread ClientConnection Thread TheadClient 1 … Thread TheadClient N

T HREADS NO S ERVIDOR Thread Principal: Esta thread é responsável por lançar duas threads: a thread ClientConnection e threadMulticast, esta é ainda responsável pela gestão da consola onde é possível efectuar operações de gestão de salas, utilizadores e reservas. Thread Multicast: Esta thread é responsável por ficar à escuta de pedidos multicast de modo a dar suporte a resolução do IP do servidor via multicast, no IP porto Esta thread responde apenas a mensagens com o conteúdo IP 11

T HREADS NO S ERVIDOR CONT. Thread ClientConnection : Esta thread é responsável por aceitar os pedidos de ligação de clientes e pedir a classe Data para registar o socket do cliente e o ID da thread que o vai atender. Thread ThreadClient : Esta thread é responsável por atender todos os pedidos de clientes bem como responder a esses pedidos. Esta thread serve apenas para descodificar as mensagens vindas do cliente e fazer os respectivos pedidos à classe Data que é quem trata de toda a informação. Após obter a informação de Data codifica a informação obtida e envia ao cliente. 12

C LIENTE O cliente está implementado da seguinte forma: 13 Cliente Janela Login Cliente Gráfico Thread Cliente

J ANELA DE L OGIN Quando o programa é iniciado é lançada uma janela modal que permite ao utilizador procurar por um servidor através de multicast fazer e fazer Login. Após um Login com sucesso esta janela é fechada e é lançada uma Thread (ligação) que vai receber todas as mensagens enviadas do cliente para o servidor. É ainda disponibilizado ao utilizador uma janela gráfica para efectuar as operações que desejar. 14

C OMUNICAÇÃO T HREAD L IGACAO - > CLIENTE GRÁFICO Quando a Thread ligação recebe uma mensagem vindo do cliente invoca o método Actualiza(int code) que actualiza os dados conforme o código que recebeu por parâmetro. 15

A RMAZENAMENTO DE DADOS Os dados são armazenados de forma serializada, em três.txt, estes ficheiros são: Reserves.txt, armazena os dados referentes às reservas; Rooms.txt, armazena os dados das salas disponíveis no sistema; Users.txt, armazena os dados dos utilizadores que podem aceder ao sistema. 16

S ERVIÇO DE C ONSULTA DE S ALAS EM JAVA RMI 17

I MPLEMENTAÇÃO DO SERVIDOR COM JAVA-RMI 18 Servidor Thread Principal Thread Multicast Thread ClientConnecti on Thread TheadClient 1 … Thread TheadClie nt N Serviço JAVA- RMI server_observer

F UNCIONAMENTO 19 Lookup ao JAVA-RMI Cliente Regista-se para receber notificações Serviço notifica o cliente sempre que ocorre uma alteração de salas no período requerido List de Strings com os períodos em que as salas estão reservadas Cliente Pede Lista de salas Disponíveis Retorno com o resultado da pesquisa Cliente remove-se de recepção de notificações

C LIENTE O cliente dispõe de duas opções de pesquisa: A primeira Consultar salas disponíveis devolve um ArrayList com as salas disponíveis num determinado período de um dia. A segunda Registar para receber notificação, regista-se no serviço para ser notificado sempre que há uma alteração na reserva de salas num determinado período. Este apresenta uma lista com uma entrada para cada tempo em que uma sala se encontra indisponível. 20

S ERVIÇO O serviço é lançado pelo servidor, e recebe uma referencia para a classe data para poder invocar as funções nela contida, bem como ter acesso aos dados das salas. Por outro lado a classe data recebe também um referencia para o serviço JAVA-RMI para o poder notificar sempre que há uma alteração nas reservas de salas. 21

M ANUAL DO UTILIZADOR Servidor Cliente

I NICIAR APLICAÇÃO Para inicial servidor ou um cliente basta executar o batch files RunServer.bat e RunClient.bat respectivamente que se encontram na pasta do projecto.

S ERVIDOR A aplicação servidora trabalha em modo consola e assim teremos que ter uma noção acerca dos comandos das seguintes acções: Adicionar utilizadores e salas Listar utilizadores, salas e reservas Remover utilizadores, salas e reservas Em caso de alguma dúvida persistir basta inserir um comando inválido e será aprensentado um help.

A DICIONAR Utilizadores Salas

L ISTAR Utilizadores Salas Reservas

R EMOVER Utilizadores Salas Reservas

C LIENTE A aplicação cliente trabalha em modo gráfico e assim teremos que ter uma noção acerca de alguns passos de modo a conseguir executar as acções mais importantes.

C ONECÇÃO AO SERVIDOR Como podemos observar na figura verificamos que existem 3 campos a preencher, assim: a – ip do servidor; b – porto do servidor; c – ip multicast onde automáticamente poderemos preencher os campos a e b. a b c

L OGIN Após uma conecção válida poderemos efectuar o login. d – nome do utilizador; e – password correspondente ao utilizador. d e

R ESERVAR SALA Nesta aba é onde podemos efectuar a reserva de uma sala ao inserir os seguintes campos: f – identificador da sala; g – dia a reservar; h – horário da reserva. f g h

C ONSULTAR SALAS Nesta aba é onde podemos consultar uma sala e assim teremos de inserir os seguintes campos: i – podemos optar por 2 métodos para consulta, por sala ou dia/hora; j – preencher campos acerca da consulta que se pretende. i j

C ONSULTAR R ESERVAS Nesta aba é onde podemos consultar as nossas reservas e cancelar e assim teremos de inserir os seguintes campos: k – preencher campos acerca da reserva que se pretende. k