Nesta avaliação as mensagens enviadas pelo editor são compostas por um objecto do tipo ticker. A técnica utiliza consiste em programar o editor para debitar 100 mensagens sequencialmente suspendendo o processo entre cada mensagem durante períodos graduais de entre 1000 até 1 milisegundo e calculando no final o tempo médio para cada conjunto de 100 mensagens enviadas.
Idealmente, o editor, o arquivo e os assinantes volátil e persistente deverão ser executados em computadores separados, de modo a não degradarem o desempenho dos outros componentes.
O arquivo de mensagens recebe e grava todas as mensagens publicadas e, no caso de detectar o regresso ao canal de um assinante persistente, determina as mensagens em falta.
Protótipo
analise-debito-maximo.tar.gz
:
analise-debito-maximo |-- Archiver | |-- Archiver.class | |-- Archiver.java | |-- Makefile | |-- MembershipMan.class | |-- MembershipMon.class | |-- ObjectArchiver.class | |-- archiver-data/ | `-- run |-- Consumer | |-- Consumer.class | |-- Consumer.java | |-- Makefile | |-- ObjectReceiver.class | `-- run |-- ConsumerVolatile | |-- ConsumerVolatile.class | |-- ConsumerVolatile.java | |-- ConsumerVolatile.log | |-- Makefile | |-- ObjectReceiver.class | `-- run `-- Producer |-- GenerateTick.class |-- Makefile |-- Producer.class |-- Producer.java |-- Producer.log `-- run
Este prótotipo consiste em publicar no canal um conjunto de mensagens simples (news ticker) e um conjunto de mensagens compostas (financial ticker) utilizando o modelo pedido-resposta ao invés de difusão em grupo. Tal como no protótipo anterior, são publicadas 100 mensagens reduzindo gradualmente o intervalo de tempo entre cada mensagem.
Dado que o mecanismo de comunicação utilizado pressupõe uma resposta dos assinantes, pretendia-se calcular no editor a distância (em milisegundos) entre o envio e a recepção da mesma mensagem por, pelo menos, um dos assinantes activos. No entando, os resultados da simulação não foram conclusivos dado que, por limitações da própria linguagem Java, não foi possível calcular com uma precisão inferior a 1 segundo a referida distância, sendo os valores obtidos muito semelhantes quer no canal volátil, quer no canal persistente.
O protótipo serve, no entanto, para validar o funcionamento do arquivo de mensagens. Neste sentido, incluem-se as listagens de dois teste efectuados onde se simula a falha/recuperação de um assinante persistente, e a forma como o arquivo determina as mensagens não recebidas pelo assinante.
Protótipo
analise-latencia.tar.gz
:
analise-latencia |-- Archiver | |-- Archiver.class | |-- Archiver.java | |-- Makefile | |-- MembershipMan.class | |-- MembershipMon.class | |-- ObjectArchiver.class | |-- archiver-data/ | `-- run |-- Consumer | |-- Consumer.class | |-- Consumer.java | |-- GenerateTick.class | |-- Makefile | |-- ObjectReceiver.class | `-- run |-- ConsumerVolatile | |-- ConsumerVolatile.class | |-- ConsumerVolatile.java | |-- GenerateTick.class | |-- Makefile | |-- ObjectReceiver.class | `-- run |-- Producer | |-- GenerateTick.class | |-- Makefile | |-- Producer.class | |-- Producer.java | `-- run `-- resultados |-- teste1 | |-- Archiver.txt | |-- Consumer.txt | `-- Producer.txt `-- teste2 |-- Archiver.txt |-- Consumer.txt `-- Producer.txt