Última Atualização: 8 de dezembro de 2002 18:34 BRST | |||||||||||
|
Arquitetura interna - Storage plugável e eventosUm sistema distribuído pode precisar manipular um grande volume de dados, mas poucos dados de cada vez. Além disso, ele deve ser tolerante a falhas na comunicação, bem como nas máquinas que utiliza. Ao utilizar SharedObjects para desenvolver um sistema distribuído, a comunicação torna-se totalmente transparente, mas não há, no momento, um suporte robusto a falhas nas máquinas. Por exemplo, cada SharedSpace é identificada por um url que inclui a porta em que ela escuta. Se a máquina onde ela roda perde a conexão ou é desligada, esta SharedSpace, bem como os dados que ela guarda, são perdidos. O suporte à reconexão está previsto desde a concepção, e na versão 0.5 direcionamos o pacote no sentido de permitir, futuramente, a existência de objetos persistentes que possam ser recuperados após uma reinicialização. Esse suporte é chamado de Armazenamento Plugável (Pluggable Storage). A idéia é de que o mapa de objetos de um SharedSpace possa ser implementado de diferentes formas e múltiplos mecanismos de armazenamento podem coexistir. Nessa visão, o armazenamento de objetos deixa de ser limitado a um HashMap na memória. Atualmente, esta continua sendo a implementação default e a única presente, mas o desenvolvedor poderia, com pouca reescrita, implementar seu próprio mecanismo. No futuro, isso será configurável durante a inicialização.
Além disso, foi adicionado ao mecanismo de armazenamento uma série de eventos (veja o pacote br.shob.event) disparados pelo Storage:
Além de uma séria revisão, esta parte da arquitetura sofrerá grande expansão nas próximas versões, inclusive com suporte a Storages externos fornecidos pelo desenvolvedor, na linha do que acontece com drivers JDBC.
|