<$BlogRSDUrl$>

Tuesday, March 16, 2004

 
to be edited....

Apontamentos sobre o Serviço de notificação

Definição de notificação.
Envio de mensagens do servidor para o cliente, sem o cliente as requisitar.

Problema:
Devido às firewalls muitas vezes não é possivel que o servidor abra ligações com o cliente.

Uma solução possivel é o cliente abrir uma ligação com o servidor que este mantem aberta e utiliza para enviar mensagens para o cliente.Tem como problema manter uma ligação aberta.

Dado a nossa opção de utilizar uma aplicação Web como cliente dos nossos serviços, surgiram outros problemas:

Como manter uma ligação aberta com o browser?

Existem pelo menos duas soluções, uma frame escondida ou um componente(ou applet)

Conclusões sobre o prototipo implementado
Foi implementado um prototipo do serviço de notificação para utilização com o serviço de mensagens instantaneas.

A unica notificação suportada é a chegada de uma mensagem.

É util fazer testes de carga para ver se esta solução é viavel, ou como modo de argumentar em favor desta solução.

Limitações:
Apenas permite um tipo de noticação e para apenas um serviço.
Apenas permite notificações iniciadas por outro utilizador.
Exemplo: não permite notificações do genero
user xxx is typing a message.
porque não acontece na sequencia da activação de um controlo.

Evolução:
O serviço de notificação deve servir como multiplexer de notificações, ou seja suportar vários tipos de notificação de varios serviços.
Criação de mais um canal de comunicação com o servidor.

Problemas futuros:
Cada serviço necessita de varios tipos de notificações, alguns com impacto no cliente outros não.
Quem é que é responsavel por gerar o script responsavel por actualizar o cliente.( Elementos de visualização, que elementos actualizar, como encontra-los na pagina)

Funcionamento possivel:

Exemplo recepção de uma mensagem:
1 - O cliente X envia uma mensagem para o cliente Y (traduz-se numa chamada a um metodo de serviço de notificação)
2 - O serviço de notificação é responsavel pela criação do comando respondente à mensagem recebida(tabela de lookup, hashtable) e deposita-o na queue do cliente.
3 - A thread do cliente é desbloqueada e executa o comando( o comando tem de conhecer a instancia que é responsavel pela sua execução) e recebe um bloco de script em retorno.

Nota: o bloco de script pode ser um objecto composto pelo elemento de destino e pelo script a executar.

Nota 2 : dá para notar que as acções resultantes das notificações dependem em muito do modelo gráfico do cliente, por isso é necessário arranjar um modelo de objectos para representar a pagina.

Nota 3 :como guardar estado de visualização???? como identificar cada elemento da pagina????






This page is powered by Blogger. Isn't yours?