Home

Sistemas Distribuídos

image

Contents

1. Sistemas Distribu dos Relat rio dos Trabalhos 1 e 12 de Novembro de 2006 Relat rio Sistemas Distribu dos Quattro Informa o dos Autores Grupo Diogo Emanuel de Almeida Guerra 501041522 deag dstudent dei uc pt Hugo Andre Dias Pereira Vieira Cura 501041532 hcuraldstudent dei uc pt Bernardo Montezuma de Carvalho Planas Raposo 501021206 braposoldstudent dei uc pt Horas gastas no trabalho 1 Meta 30 Horas 2 Meta 10 Horas Introdu o O trabalho pedido consistia na implementa o do popular jogo quatro em linha em Java utilizando um dos ambientes gr ficos do mesmo Como se trata de uma cadeira de Sistemas Distribu dos o verdadeiro desafio deste trabalho era a liga o entre os v rios clientes e servidores isto atrav s de duas abordagens diferentes Para talo trabalho foi dividido em duas fases numa primeira etapa implement mos todo o ambiente gr fico e constru mos a aplica o para suportar apenas liga es por Sockets TCP e UDP de seguida foi nos pedido que desenvolvessemos uma nova vers o da aplica o desta vez suportando tamb m liga es RMI Este relat rio visa explicar um pouco mais detalhadamente os pormenores da nossa aplica o a que n s demos o nome de Quattro O documento inclui descri o da arquitectura da aplica o uma lista dos testes efectuados um pequeno manual e outros detalhes que consider mos relevantes ro La RSA GA 9 do 1 cura dea
2. AL Game Jo Lobby Options Statistics Help Quattro Como se pode observar o ambiente gr fico constitu do por um menu com diversas op es que ser o analisadas mais frente neste manual a rea de conte dos e a status bar ainda com a mensagem de boas vindas Comecemos ent o por explorar o menu Este constitu do por alguns sub menus nomeadamente lobby options statistics e help Segue se em detalhe cada um dos sub menos com algumas imagens ilustrativas dos mesmos Lobby 4 Game Hog Quattro No lobby podemos efectuar o login ou logout e ainda terminar a aplica o hcura deag braposo 9 de 15 Relat rio Sistemas Distribu dos Quattro Options Jobs nnection Q uattro O Sockets Connection Statistics Help Nas options podemos optar entre a utiliza o de uma liga o via Sockets ou RMI Stastistics SAL Game tog Lobby Options Quattro Nas statistics podemos consultar os resultados dos nossos jogos Help hcura deag braposo 10 de 15 Lobby Options Statistics E Quattro J Diogo Guerra 50106969 Hugi Bernardo Rapos O help apenas mostra a informa o dos autores Ap s explorarmos o menu vamos ent o ver como se inicia a liga o ao servidor Como j vimos anteriormente para fazermos o login basta ir ao lobby no menu e carregar em login Ao faze lo vamos t
3. at rio Sistemas Distribu dos Quattro Na implementa o baseada em RMI como os m todos s o chamados remotamente os objectos s o enviados por par metro n o sendo necess ria a utiliza o de objectos do tipo Packet Tratamento das Falhas O tratamento de falhas transit rias no cliente feito de duas maneiras de acordo com o sistema de comunica o utilizado Analisamos de seguida cada um dos casos Sockets Ao se ter estabelecido a liga o entre o cliente e o servidor ficamos com um socket de liga o entre ambos Todo o mecanismo de verifica o e controlo de falhas est dependente dessa mesma liga o Assim cada excep o que der nessa liga o por n s controlada de forma a que se torne perfeitamente transparente para o cliente efectuando tentativas de estabelecer uma nova liga o no m ximo 3 at se assumir que o servidor n o voltar a funcionar RMI No RMI processa se forma semelhante usando na mesma as excep es que ocorrerem para se restabelecer a liga o ao servidor mas em vez de sockets utiliza se a liga o RMI activa Mecanismo de Replica o O mecanismo de replica o diz respeito a como se lida com falhas do lado do servidor De seguida abordamos o seu funcionamento O primeiro servidor a ser inicializado fica como prim rio enquanto que outros servidores ao se tentarem ligar verificam que a porta j se encontra ocupada e ficam como watchdogs A partir daqui os watchdogs
4. e TCP ou RMI Existem v rias estruturas para guardar os dados todas elas baseadas em hashtables Existem 6 hashtables cuja chave o nome do utilizador excep o da hashtable games que tem como chave o id do jogo Clients cont m objectos PlayerInfo Toda a informa o dos clientes incluindo a thread ou o stub de RMI autenticados e Clients backup cont m objectos OnlineUser2 Backup do Playerlnfo da hashtable anterior mas sem os objectos n o serializ veis e Users cont m objectos User Registo de todos os users registados no servidor Games cont m objectos Game Registo de todos os jogos activos no momento e Busy cont m inteiro com o game id Registo de todos os utilizadores que est o ocupados a jogar e Old users cont m objectos OnLineUser2 Esta hashtable preenchida com uma c pia do clients backup este inicializado novamente quando um watchdog entra em modo servidor principal e serve como um buffer para users que fa am o retry ou seja quando um user se reconecta o servidor vai verificar se est neste sitio e se estiver aproveita a sua informa o e remove o de l Formato das Mensagens Para enviar mensagens entre o cliente e o servidor na vers o em que a comunica o se processa a partir de sockets utiliz mos objectos do tipo Packet Cada Packet constitu do por um c digo que identifica o tipo de mensagem e um objecto com o conte do que pode ser de diversos tipos Rel
5. em wait espera que a thread referida lhe fa a o notify Se for escolhido o modo socket a thread Pinger vai ligar se por UDP ao servidor principal thread Server4L Responder e pinga o todos os segundos para garantir que o servidor principal est sempre activo Se for escolhido o modo RMI a thread Pinger vai fazer o lookup do servidor e tamb m todos os segundos acede ao m todo ping Ao fim de 3 falhas a thread notifica a thread principal servidor em modo watchdog que passa a actuar como servidor principal Servidor Principal O servidor principal assim que estabelece o socket faz rebind inst ncia de si mesmo para poder aceitar liga es RMI Se anteriormente era watchdog faz load a todos os ficheiros de dados no disco e no fim fica espera de liga es TCP Criam se threads para envio e recep o de sockets UDP Server4LUdpSender e Server4LUdpListener respectivamente Para clientes RMI os m todos s o acedidos remotamente pelo cliente dependendo de cada ac o Para clientes TCP para cada socket que estabelecido criada uma Server4L Thread que gere toda a comunica o com esse cliente Esta thread cria tamb m uma Server4LThread2 que vai funcionar como thread que envia informa o para o cliente quando a thread que a cria est bloqueada espera de receber informa o dos clientes Assim que a thread recebe algum request processa o e executa na thread principal podendo aceder a outro client
6. er seguinte janela amp 4L Game E Lobby Options Statistics E Hot Login Server s IP v TocaThost Server s Port default Username Pasword Sign In a Aqui temos de preencher detalhes de liga o ao servidor nomeadamente o endere o e o porto valores que podem ser os default localhost e 7000 respectivamente Al m disso temos de preencher os campos com os dados da conta de utilizador Caso n o tenha uma ser lhe perguntado se quer registar um novo utilizador devendo dizer que sim de modo a poder usufruir da aplica o Efectuado que foi o Login temos agora a rea de conte dos com mais elementos como se pode ver na figura seguinte Relat rio Sistemas Distribu dos Quattro 2 Quattro dk E Lobby Options Statistics Help Quattro Uitilizado res a qr 3 ao Foca PA r as Agora podemos observar a janela de chat e o local para introduzir o texto assim como a lista de utilizadores dispon veis para jogar e ainda o Top 10 de utilizadores da aplica o Jogo Quattro dk Lobby Options Statistics Help Quattro Uitilizado res Para se jogar basta carregar no nome do advers rio pretendido da lista de utilizadores online Ap s o outro jogador ter aceite o desafio o jogo ser iniciado e aparecer o tabuleiro no ecr principal Caso contr rio voltar para o ecr anterior onde poder desafia
7. fectuada toda no servidor apenas tamb m verificado no cliente a vez de quem vai jogar No fim de cada jogo cada jogador recebe a mensagem se ganhou perdeu ou empatou e lhe perguntado automaticamente se quer come ar novo jogo ou n o Durante o jogo o cliente pode tamb m desistir do jogo Todas estas ac es s o enviadas para o servidor por TCP e processadas no mesmo excep o do envio de mensagens de chat globais RMI No cliente de RMI a aplica o constituida pela mesma classe gr fica Game4L e por uma ClientRmi que comunica com o servidor Foi criada uma thread TempThread que simplesmente auxilia o ClientRmi em janelas gr ficas para que o servidor quando executa remotamente m todos do cliente n o fique bloqueado espera Todas as ac es disponibilizadas no cliente baseado em sockets s o executadas no cliente RMI em que as threads Senders s o substitu das por m todos do servidor chamados pelo cliente e as threads Listeners s o substitu das por m todos do cliente chamados pelo servidor Servidor O servidor usado comum s duas implementa es e tanto recebe liga es de clientes por sockets como por RMI Cada servidor assim que iniciado tenta ligar se porta definida se esta tiver livre age como servidor principal se n o age como watchdog Watchdog criada uma thread Server4LPinger com uma flag a indicar se o watchdog tem que actuar em modo RMI ou em modo socket e fica
8. ficam com uma thread a pingar o servidor principal para saberem se este se encontra a funcionar sendo essa informa o processada no servidor principal por interm dio de uma thread que recebe os pings No caso de um ping enviado por um watchdog n o ser bem sucedido esse watchdog passa a ser o servidor principal retomando toda a actividade e dados que o servidor principal at ai vinha a utilizar O tratamento dos dados envolvidos explicada em detalhe na parte de arquitectura l gica Integra o de Sockets e RMI icura deag braposo 6 de 1 A integra o entre as duas possibilidades de comunica o Sockets e RMI feita de forma completamente transparente para o cliente sendo toda a informa o processada no servidor Assim sendo o servidor ao receber a informa o de um client verifica qual o tipo de liga o que este utiliza e responde lhe usando o mesmo tipo permitindo assim que clientes com diferentes liga es comuniquem entre si atrav s do servidor e sem qualquer altera o vis vel para o cliente Manual do Utilizador Servidor O primeiro passo para se inicializar o servidor efectuar o login 4L Server Login la 4L Server Port e max users A 47 oera watch Dogs e RMI UDP Log in DEI UC Dist 06 07 Esta imagem mostra a janela de login onde temos de preencher os campos de modo a entrar no servidor Os campos s o a password o portolport o n
9. g braposo de Arquitectura da Aplica o Cliente Sockets constituido pela classe gr fica Game4L que cria uma inst ncia da classe ClientSocket A partir da classe ClientSocket s o criadas quatro threads para recep o e envio de informa o atrav s de sockets UDP e TCP chamadas UdpListener UdpSender TcpListener e TcpSender Assim que feito o pedido de login estabelecido um socket TCP e se o login for feito com sucesso as threads acima referidas s o criadas assim como os sockets UDP nas respectivas threads No fim destas ac es s o recebidos alguns dados tais como rankings e online users ficando o client espera de novas instru es Neste momento podem ser feitas v rias ac es Envio de chat global que vai usar a thread UdpSender para enviar a mensagem In cio de jogo que usa a thread TcpSender para enviar o request Pedido de estat sticas pelo socket TCP Logout atrav s do socket TCP A n vel de receber informa o o cliente pode receber as seguintes informa es Na thread UdpListener Recec o de chat global Actualiza o de rankings Actualiza o de users Servidor desconectado Na thread TcpListener Recep o de convite de jogo Assim que est um jogo activo o utilizador n o pode convidar ningu m e n o pode ser convidado controlado no servidor Passa a poder enviar e receber chat privado socket TCP e a jogar A l gica de jogo e
10. mero m ximo de utilizadores max users e o modo em que queremos utilizar os watch dogs O campo port e max users tem tamb m valores default no caso de n o serem preenchidos Sendo que port tem um valor de 7000 e max users de 10 Ap s um login bem sucedido vamos ao encontro da seguinte janela amp 4L Server amp DELUC EJot Menu Log Online Users Users List DEI UC S Dist 06 07 Nesta janela temos uma vis o geral do interface que nos permite utilizar o servidor Para se inicializar o servidor temos de aceder op o start no Menu como nos indica a figura seguinte ga Server o DELUC Jo Db Start Server Ctil s Stop Server Cti F Online Users Users List DEI UC S Dist 06 07 Ap s o start temos um exemplo do servidor j em funcionamento D 4l um o DELUC MAX Menu Options Online Users Users List DEI UC Dist 06 07 Analisando a figura podemos ver algumas zonas distintas nomeadamente um log dos eventos realizados no servidor a lista de utilizadores registados bem como a lista de utilizadores online Cliente Ap s ter configurado e inicializado um servidor ou tendo conhecimento do endere o de um servidor pode ent o come ar a utilizar o nosso cliente Ao executar o cliente ir ter uma vista geral do ambiente gr fico da aplica o Relat rio Sistemas Distribu dos Quattro D
11. r novos jogadores Manual de Instala o 1 Compilar toda a source utilizando o comando javac java hcura deag braposo 12 de 15 Relat rio Sistemas Distribu dos Quattro 2 Criar os stubs utilizando os comandos rmic ClientRmi rmic Server4L 3 Para se poder utilizar o servidor necess rio iniciar o RMI Registry start rmiregistry 4 Finalmente j se pode correr os servidores e clientes Para isso basta java ServerFrame para o servidor java Game4L para o cliente Testes Efectuados Cliente Liga o RMI RMI e Conectar se ao servidor OK e Ver estat sticas pessoais OK e Desafiar jogador OK Jogar OK Desistir do jogo OK e Aceitar rematch OK e Rejeitar rematch OK e Utilizar o chat OK e Desconectar se do servidor OK e Terminar cliente RMI durante o jogo OK Liga o RMI Sockets e Conectar se ao servidor OK e Ver estat sticas pessoais OK e Desafiar jogador OK Jogar OK e Desistir do jogo OK Aceitar rematch OK Rejeitar rematch OK Utilizar o chat OK Desconectar se do servidor OK Terminar cliente RMI durante o jogo OK Terminar cliente Sockets durante o jogo OK Liga o Sockets Sockets Conectar se ao servidor OK Ver estat sticas pessoais OK Desafiar jogador OK Jogar OK Desistir do jogo OK Aceitar rematch OK Rejeitar rematch OK Utilizar o chat OK Desconectar se do servidor OK Terminar clien
12. te Sockets durante o jogo OK Servidor Servidor Principal Inicializar servidor OK Definir limite de utilizadores OK Desligar servidor OK Adicionar utilizador N o implementado Apagar utilizador N o implementado Editar utilizador N o implementado Watchdogs RMI Pingar servidor principal OK Entrar como servidor principal OK Relat rio Sistemas Distribu dos Quattro e Assumir todas as configura es do servidor principal OK Watchdogs Sockets e Pingar servidor principal OK Entrar como servidor principal OK e Assumir todas as configura es do servidor principal OK hcura deag braposo 19 de 15

Download Pdf Manuals

image

Related Search

Related Contents

  Simalube - Technogrues  A User's Manual for MetaPost  the great outdoors by Minka Lavery 73061-246 Instructions / Assembly  Massive Ceiling light 70836/01/67  

Copyright © All rights reserved.
Failed to retrieve file