Programa Chat Programação com RMI

Slides:



Advertisements
Apresentações semelhantes
Maria da Conceição Neves
Advertisements

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.
Programa de Pós-Graduação Lato Sensu MBA em Gestão de Software
Escola Secundária da Ramada
Comunicação Distribuída
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
PROGRAMAÇÃO DISTRIBUÍDA EM JAVA Verão/2001
Tutorial I: Criando a interface de uma aplicação em Java
Remoting 3 a aula prática de PADI 2004/05 Rodrigo Miragaia.
Diagramas de Componentes
Sistema Operativo em Ambiente Gráfico
Biblioteca do Conhecimento Online – b-on FONTES DE INFORMAÇÃO SOCIOLÓGICA.
JAVA: Conceitos Iniciais
Sistemas e Tecnologias de Middleware TP3. Foco Sistema de comunicação – Sistema de Message Queuing – Abstracção do substracto de comunicação Adaptação.
Araucaria DX Group & Jose Carlos N4IS
Classes Revisando: –Forma de implementação de estruturas específicas –Atributos (grupos de dados) –Métodos (conjuntos de procedimentos)
P ROGRAMAÇÃO D ISTRIBUÍDA Primeira Fase da Aplicação Distribuída: Gestão de Salas João Gomes Nº Marco AndradeNº
Base de Dados para a Gestão de Informação de Natureza Pedagógica
Arquitetura CORBA e Objetos Distribuídos
Biblioteca do Conhecimento Online – b-on. Agenda Histórico da b-on –Motivação –Visão, missão e objectivos –Estrutura administrativa –Conteúdos Portal.
Web Services Uninorte Semana de Tecnologia da Informação
Atributos, Encapsulamento e Interface em Java
Criar e editar conteúdos para a Plataforma Moodle
P ROGRAMAÇÃO D ISTRIBUÍDA Primeira Fase da Aplicação Distribuída: Gestão de Salas João Gomes Nº Marco AndradeNº
Chamada Remota de Procedimentos
Soluções de CTI • CRM • Contact Center • Call Center
Concorrência e Java RMI
Referência rápida para © 2013 Microsoft Corporation. Todos os direitos reservados. Tela inicial do Lync A tela inicial do Lync tem blocos no hub à esquerda.
7 - Criação de Páginas Web
Orientação a Objetos e Java Graduação em Ciência da Computação
Pilhas Profa. Nádia Félix.
Laboratório I Mateus Raeder. Mateus Raeder – fevereiro de 2009 Associação entre classes  Um objeto é a representação de uma entidade do mundo real 
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
JSP e Servlets ISEP – LP2 Filipe Costa – /2004.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Herança em POO Importante:
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Referência Rápida para © 2013 Microsoft Corporation. Todos os direitos reservados. O ecrã principal do Lync O ecrã principal do Lync tem mosaicos no lado.
CORBA Apresentação do Padrão CORBA Maurício Maron Mendes Ramiro Pereira de Magalhães
Introdução à aplicação Lync da Loja Windows
CONFIDENCIAL. Distribuição apenas para parceiros sob acordo de confidencialidade. A Microsoft não oferece garantias, expressas ou implícitas. © 2012 Microsoft.
Unidade 6 – Formulários HTML Prof.: Henrique Santos
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
RMI - JAVA.
© 2012 Microsoft Corporation. Todos os direitos reservados. Adicionar um contacto A sua Lista de contactos facilita as suas comunicações e permite-lhe.
Objetos Distribuídos para WEB Prof. Paulo Fernando da Silva FURB – Universidade Regional de Blumenau Pós-Graduação em Desenvolvimento WEB.
CONFIDENCIAL. Distribuição Apenas a Parceiros Sem Divulgação. A Microsoft não faz garantias, explícitas ou implícitas. © 2012 Microsoft. Todos os Direitos.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Criar uma sala de chat Se o administrador do seu servidor lhe tiver dado autorização, pode criar e gerir as suas próprias salas de chat. 1.Na janela principal.
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Coleções em Java - Parte 2
Aglets.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Disciplina: Comunicação de Dados Ricardo Bento 12ºL nº11.
Profª Maria Alessandra Protocolos de Comunicação 3º Termo.
Modificadores Programação II.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
CS Dentro da disciplina e no bloco “Administração”, seleccionar a opção “Atribuir papeis”. Como remover/adicionar utilizadores na disciplina?
Leonardo de Souza Brasil Orientador: Ricardo Pereira e Silva, Dr
Professor: Pedro Lopes Gestão de Base de dados Ano Lectivo 2010/2011.
Cenário / Maquete Web Site CPAuto Trabalho elaborado por: Cecília Melo (ci08004) António Castro (ci08045) Pedro Seabra (ci08001)
Laboratório de Programação II Método main Dados e Métodos de Classes.
Personal Cred Análise Protótipo Sistema e Funcionalidades.
Algoritmos de Pesquisa
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
SOCKET - É um canal de comunicação entre processos que estabelece uma conexão entre eles na forma de cliente-servidor. Por meio de sockets, os computadores.
A Intel e o respectivo logótipo são marcas ou marcas registadas da Intel Corporation ou das respectivas subsidiárias nos Estados Unidos e noutros países.
INTRODUÇÃO AO AMBIENTE DE TRABALHO WINDOWS VISTA
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Transcrição da apresentação:

Programa Chat Programação com RMI

Programa Chat Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Suporta múltiplas janelas de chat É constituído por dois programas separados: O servidor, contem os métodos para fazer a gestão da lista de utilizadores ligados. O cliente, que contem os métodos para receber mensagens de outros utilizadores e do servidor.

Servidor User.java ClientInterface.java Main.java ServerInterface.java Definição Implementação Definição ServerInterface.java

Servidor – Main.java É o executável do lado do servidor. Tem a tabela users de utilizadores online. Implementa as funções definidas em ServerInterface.Java: boolean addUser(User user) – Adiciona o utilizador á lista de utilizadores online (Hastable users), chama os métodos remotos sendSysMessage e listBoxUpdate de ClientInterface.java para informar que o utilizador ligou-se e enviar a lista actualizada de utilizadores ligados. boolean removeUser(User user) – Remove o utilizador da lista, chama os métodos anteriores para informar que o utilizador desligou-se e enviar a lista actualizada de utilizadores ligados. Hashtable getUserList() – Retorna a lista de utilizadores online User getUser(String user) – Retorna o utilizador sabendo o seu nome void setUser(User user) – Utilizado pelo addUser() para adicionar o utilizador boolean hasUser(User user) - Utilizado pelo removeUser() Contem o método Main() que cria um objecto do tipo Main, cria um registo no porto 10000 e faz o rebind desse objecto com o nome “ServerInterface”

Servidor – ServerInterface.java Faz a definição dos métodos descritos anteriormente: boolean addUser(User user) boolean removeUser(User user) Hashtable getUserList() User getUser(String user) void setUser(User user) boolean hasUser(User user) Os dois primeiros métodos são chamados remotamente pelo cliente para este se adicionar ou remover da lista de utilizadores ligados e informar os outros utilizadores do seu estado (online ou offline). Os restantes métodos são chamados pelos primeiros.

Servidor – User.java Permite criar utilizadores, contendo não só o seu nome mas também outros atributos, dois deles bastante importantes: IP – endereço ip do utilizador Port – porto de escuta Os restantes dados são: Email e avatar. Contem procedimentos para retornar e definir os dados anteriores.

Servidor – ClientInterface.java Contem a definição dos métodos para o envio de texto para uma janela de chat, envio de mensagens para a janela Log e actualização da ListBox do programa. void sendMessage(User user, String msg) – Executado remotamente pelo cliente “user” para enviar a mensagem “msg” ao cliente local void sendSysMessage(User user, String msg) – Utilizado remotamente pelo servidor para enviar uma mensagem para a janela principal do cliente local. void listBoxUpdate(Hashtable si) – Utilizado remotamente pelo servidor para actualizar a lista de utilizadores contida na janela chat principal do cliente local. void blockUser(User user) – Executado remotamente pelo cliente para bloquear o utilizador local “user”

Cliente ClientInterface.java ServerInterface.java Definição ServerInterface.java Implementação ClientInterfaceImplem.java Definição ChatFrame.java User.java MainFrame.java

Cliente – ClientInterfaceImplem.java Implementação dos procedimentos declarados em ClientInterface.java. Contem a tabela UsersInChat com a lista de utilizadores que estão a falar com o utilizador local e em que janela chat. Contem a tabela BlockedUsers que contem a lista de utilizadores bloqueados. void sendMessage(User user, String msg) –Envia a mensagem “msg” do utilizador “user” ao utilizador local. Se o utilizador não existe em UsersInChat, adiciona-o e abre uma nova janela chat. Caso contrário envia o texto para a janela correspondente. void sendSysMessage(User user, String msg) void listBoxUpdate(Hashtable si) void blockUser(User user)

Cliente – MainFrame.java É o executável do lado do cliente. Abre a janela principal do programa. Usa a tabela UsersInChat que contem a lista de utilizadores que estão a falar com o utilizador local e em que janela chat e a tabela BlockedUsers Cria um utilizador com o nome e avatar indicados no interface, com o IP local e porto disponível a partir do porto 10001 Executa remotamente o método addUser() Se o utilizador seleccionado na lista “Users Online” existir em UsersInChat, foca a janela chat correspondente, caso contrário adiciona o utilizador á tabela e abre uma nova janela chat

Cliente - MainFrame.java Avatar. Pode ser alterado fazendo um click com o botão esquerdo do rato. Indicador do estado dos utilizadores (ligados ou desligados do servidor). É alterado pelo servidor usando o SendSysMessage() Lista de utilizadores ligados. É alterada pelo servidor através do método ListBoxUpdate() Adiciona o utilizador seleccionado á lista BlockedUsers com o método blockUser() e envia uma mensagem para a caixa “System Log”

Cliente - ChatFrame Janela que mostra as mensagens recebidas e envia mensagens a outros utilizadores Texto adicionado pelo SendMessage() Avatar dos dois utilizadores Envia o texto utilizando o método SendMessage() do outro cliente

Feito por: Hugo Lobo, nº 7137 Pedro Mateus, nº 8770