Shob Logo Última Atualização: 8 de dezembro de 2002 18:34 BRST

Visão Geral

    O pricipal conceito por traz do funcionamento do SHOB é o compartilhamento de objetos. Ao ser compartilhado, um objeto se torna acessível a diversas aplicações, de forma totalmente transparente para o programador.

    Para tornar isso possível o SHOB cria réplicas do objeto em cada uma das aplicações que o utiliza. A sincronia entre cada uma das réplicas é mantida através de técnicas conhecidas como transações de escrita e leases para atualização.

    Outros middlewares como RMI ou CORBA, utilizam chamadas remotas para permitir que objetos sejam utilizados por diversas aplicações. Com isso cada acesso ao objeto exige comunicação através da rede. Já o SHOB permite que acessos de leitura sejam feitos localmente, utilizando o objeto replicado, causando um grande aumento de performance em muitos casos.

Funcionamento

    O SHOB utiliza um servidor que representa um espaço global, onde são inseridos objetos acessíveis a todas as aplicações conectadas a ele. Dessa forma para utlizar ou compartilhar um objeto, uma aplicação deve se conectar ao espaço global. A partir desse ponto toda a comunicação é assinada digitalmente, o que garante a autenticidade dos dados trocados entre as aplicações.

    Para se conectar ao espaço global a aplicação utiliza um objeto da classe br.shob.SharedSpace, Esse objeto encapsula toda a funcionalidade necessária na comunicação com o espaço global.

    Após a conexão a aplicação pode compartilhar ou utilizar objetos através de um nome. A única restrição para se compartilhar um objeto é que ele deve implementar a interface java.io.Serializable. Um objeto compartilhado é acessado através de uma referência, que se encarrega de iniciar e terminar transações de escrita, e de atualizar os dados de tempos em tempos.

    Para criar essa referência são distribuídas junto com o pacote duas ferramentas: o Configurator e o shobc. A utilização dessas ferramentas é explicada no tutorial.

    As aplicações que forem utilizar objetos compartilhados por outros não precisa ter a classe desse objeto e nem mesmo da casse da referência, esses são obtidos dinâmicamente pelo SHOB, o que permite que atualizações na versão de um objeto podem ser feitas apenas na aplicação que o compartilha, facilitando a evolução do sistema.

    A partir do ponto em que a aplicação possuí uma referência para objeto ela pode ser utilizada normalmente, como se ele fosse o próprio objeto, sem preocupações com métodos de escrita ou leitura, ou com a sincronia dos dados, ou seja, a aplicação pode ser desenvolvida normalmente, como uma aplicação local.

 

Para conhecer mais sobre o funcionamento interno do SHOB leia arquitetura interna.