sistema de bate-bapo | JMS |
---|---|
sala de bate-papo | tópico |
entrar numa sala de bate-papo | fazer uma assinatura (subscription) de um tópico |
usuário do sistema de bate-papo | fila de mensagens |
enviar uma mensagem específica para um usuário | enviar uma mensagem para a fila associada ao usuário |
MessageListener
(que recebe chamadas assíncronas) não deve
ser usada por uma thread que fica enviando mensagens. Para fazer
a recepção (via MessageListener
) e o envio de mensagens
concorrentemente são necessárias duas sessões separadas: uma com o
MessageListener
e a outra empregada pela thread
enviadora de mensagens.
O JMS não inclui interfaces para criação de filas ou tópicos por
programas. Filas e tópicos são "objetos administrados", que (no JMS
padrão) devem ser criados pelo administrador do sistema, usando
ferramentas ou procedimentos específicos da implementação de JMS
utilizada. Algumas implementações de JMS oferecem, entretanto, APIs não
padronizadas que permitem a criação de filas ou tópicos por programas. A
funcionalidade de registro dinâmico de novos usuários e de novas salas
de bate-papo requer uma API assim. Essa funcionalidade não pode ser
implementada empregando-se apenas as interfaces "oficiais" do JMS.
O sistema deve ser implementado em Java, com o
JBoss Messaging versão
1.4.0.GA rodando no JBoss Application Server, versão
4.2.1.GA (ou 4.2.2.GA -- esta versão ainda não saiu, mas deve aparecer
nos próximos dias). Atenção: Como a implementação default de
JMS no JBoss Application Server 4.2.x não é o JBoss Messaging, você
precisará baixar os dois sistemas, desempacotar o servidor de aplicações
e depois instalar
o JBoss Messaging sobre o servidor de aplicações. Siga as instruções
para instalação
automatizada e (a menos que você tenha um cluster de
servidores) ignore todos os ítens relacionados com clustering. Ou
seja, é só rodar "ant -f release-admin.xml
"
(Neste ponto das instruções há um errinho tipográfico:
"aml"
em vez de "xml"
). Depois de fazer isso,
vá direto para os passos
adicionais para completar a instalação, ponha
o servidor de aplicações no ar, verifique
se o JBoss Messaging funciona corretamente e olhe/rode
os exemplos incluídos na distribuição do JBoss Messaging.
Bom trabalho!
ep2-
<nomes-dos-membros-do-grupo>.tar.gz
ou
ep2-
<nomes-dos-membros-do-grupo>.zip
.
Por exemplo:
ep2-joao-maria.zip
. No nome do arquivo devem ser
omitidos os acentos dos nomes dos
membros do grupo. Além disso, a separação entre
palavras não deve ser feita com espaços. Ou seja,
o arquivo não deve se chamar "ep2-joão-maria.tar.gz
"
nem "ep2 joao maria.tar.gz
".ep2-joao-maria
.) Todos os arquivos
desempacotados devem estar dentro desse diretório.build.xml
para a ferramenta
ant
. O build.xml
deve incluir as
seguintes funções (targets, ou alvos):
compile
" - Este deve ser o alvo default,
que automatiza a geração do programa cliente.deploy
" - Este alvo implanta o sistema
de bate-papo na configuração "messaging" do servidor de
aplicações. Implantar o sistema de bate-papo significa
copiar para o diretório
${JBOSS_HOME}/server/messaging/deploy
todos os arquivos necessários para o funcionamento do
sistema.run
" - Roda o programa cliente.undeploy
" - Este alvo desimplanta o
sistema de bate-papo da configuração "messaging" do
servidor de aplicações. Desimplantar o sistema de
bate-papo significa remover do diretório
${JBOSS_HOME}/server/messaging/deploy
todos os arquivos copiados pelo alvo deploy
.
sistema.ant compile
" e "ant
deploy
", deve ser possível rodar (via "ant
run
") múltiplas instâncias do cliente, possívelmente
em máquinas diferentes. O "ant undeploy
"
restaura o estado original da configuração "messaging" do
servidor de aplicações.
README
, com as seguintes informações:
ant
, esta parte deve
detalhar o que precisa ser feito.README
deve ser de texto puro
(ASCII). Quem preferir, pode colocar num documento separado
a explicação sobre a estrutura dos programas e deixar no
README
só o receituário para geração e
execução. Esse documento separado, se existir, tanto pode
ser um arquivo de texto ASCII como um arquivo pdf. (Não
quero arquivos doc em formato MS-Word.)