<$BlogRSDUrl$>

Tuesday, October 19, 2004

 
Mais achas para a fogueira ( ou mais um belo conjunto de barbaridades)

Tipos de notificação

Directa - quando esta é resultante directa de uma interação entre clientes( ex. envio de mensagem instantanea)

Efeito Lateral - quando a notificação é causada por algo que não tem directamente a ver comu ma acção do cliente (ex: a recepção de uma mensagem de mail gerar uma notificação de quota quase preenchida, a notificação directa é "recebeu um novo e-mail", o efeito lateral é"a sua cota está 75% cheia")

O conceito a conter é que as notificações podem gerar novas notificações, ou de outra forma cada notificação tem um conjunto de efeitos laterais, sejam eles novas notificações ou não.

Exemplos de efeitos laterais
Actualizações da user interface.
Geração de novas notificações.
Alteração de estado da aplicação.

Generalizando tem-se que cada acção despoleta um conjunto de um mais efeitos.
Partindo do principio que uma acção sem efeitos não é muito interessante)


 
Bem de volta ao trabalho.

Problemas a resolver.

Serviço de notificações
Criar um serviço que funcione como multiplexer de notificações, ou seja que distribua diferentes tipos de notificações de varios serviços pelo mesmo canal.

Diferentes clientes têm diferentes capacidades
Existem limitações nas clientes que correm atrás uma firewall, sendo necessário encontrar um um conjunto minimo de funcionalidades que o serviço tem que ter.

A criação de duas versões do serviço, uma para clientes atrás de firewall's e outra para clientes com acesso directo tem como vantagem não limitar as potencialidades dos clientes ao minimo denominador comum.

Um cliente fraco, é um cliente com capacidades reduzidas de comunicação, seja por estar atrás de uma firewall ou por ter apenas disponivel um browser.

Um cliente forte ou peer, é um cliente que pode utilizar vários portos de comunicação e que pode ser acedido directamente por outro cliente.

O serviço de notificações tem que conseguir enviar notificações para clientes com capacidades diferentes.

O canal
Como forma de simplificar a implementação do serviço de notificações é util que este consiga enviar notificações da forma mais homogenea possivél.

Surge assim o conceito de canal.

A entidade canal dá ao serviço de notificações uma abstração sobre as capacidades dos clientes.

Tipos de canal identificados, suas necessidades e limitações:
Entre peers:
É necessário a existencia de alguma entidade que saiba a localização dos peers (serviço de localização).

Entre um peer e um cliente fraco :
Como a comunicação não se pode efectuar directamente entre os clientes é necessário que exista alguma entidade que faça a ponte entre os clientes (serviço de relay)

Nota: O "canal" entre o relay e o peer tem as mesmas capacidades que o canal entre peers.

Entre clientes fracos existem 2 canais de capacidade limitados entre os clientes e o relay

Nota: A limitação dos canais advém do facto de os clientes fracos terem como unica capacidade de comunição poderem fazer pedidos HTTP.

Canais entre peers têm como nome canal completo, quando um dos extremos do canal é um cliente fraco o canal designa-se por limitado,

Hipótese para implementação dos vários canais :

Para implementação dos canais limitados existem 2 hipotese:
Polling por parte do cliente ao serviço de relay como modo de receber mensagems.

Dependendo do ritmo em que o polling é efectuado, esta solução tem como problema uma perda da "sensação interactividade" entre clientes, caso o ritmo seja baixo.
À medida que o ritmo é aumentado, esta solução sofre por sobrecarregar o serviço de relay com um elevado número de pedidos que não trazem mensagems para o cliente.

Manutenção de uma ligação aberta (por iniciativa/pedido do cliente) entre o cliente e o serviço de relay, que este utiliza como forma de enviar mensagens para o cliente.
Esta solução tem como desvantagem a necessidade de manter uma ligação aberta com o serviço de relay, no entanto permite reduzir o trafego na rede ao estritamente necessário, quer para recepção de mensagens quer para manter a ligação aberta.

Na implementação dos canais completos é possivel escolher entre várias tecnologias, entre as quais .net remoting, web services, sendo que a sua escolha está mais ligada a caracteristicas como o desempenho ou compatibilidade do que com as capacidades que se pretendem fornecer.

Componentes de um canal

Extremos da ligação
Capacidades dos extremos do canal
Conjunto de relays

Nota:o estabelecimento de uma ligação entre 2 pontos pode conter varios canais
(não tenho a certeza sobre isto)

Quem é o responsavél pelo estabelecimento das ligações ???

Um cliente fraco só pode ser considerado online quando estiver ligado a um relay.

 
Ideia para um serviço de comunicação novo, um agregador de feeds de rss.

A ideia é que este serviço............

http://www.kbcafe.com/rss/rssfeedstate.html

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