Última Atualização: 8 de dezembro de 2002 18:34 BRST | |||||||||||||||||||||||||||
|
Arquitetura internaUma aplicação acessa objetos compartilhados através de referências. Uma referência é usada da mesma forma que o objeto inicial, isto é, chamando métodos. De modo geral, os métodos que uma referência possui são os mesmos que a interface usada para criá-la possui. Durante uma chamada de método, a referência encarrega-se de chamar o método correspondente na cópia local. Quando o estado da cópia muda, o SharedSpace precisa replicar a alteração em todos as outras referências ao objeto - nesta e nas outras máquinas. Como garantir que apenas uma alteração é executada de cada vez? SharedObjects utiliza-se de um mecanismo de replicação que prevê a existência de um objeto original, isto é, uma versão do objeto que é considerada válida o tempo todo e cujo estado deve ser replicado para cada aplicação.
Por simplicidade, assumiremos por enquanto que um sistema distribuído utiliza apenas um Global Space. Além disso, o sistema roda com uma JVM em cada máquina, e cada JVM utiliza um único SharedSpace para se comunicar ao espaço global. Desta forma, termos como "dono" podem ser aplicados tanto a uma máquina quanto a um SharedSpace. Quando um objeto é compartilhado pela primeira vez, a aplicação perde o controle daquele objeto e ele passa a pertencer ao Global Space. No tutorial, temos o seguinte trecho de código:
Neste momento, a instância de SharedSpace shob passa a controlar a versão original do objeto e por isso é chamada dono do objeto. A aplicação, embora rode na mesma máquina, tem os mesmos direitos sobre ele que uma aplicação remota. Como isso é feito? Cada instância de SharedSpace tem um conjunto de objetos próprios, dos quais ela é dona. Além disso, ela tem um conjunto de cópias de todos os objetos que foram requisitados a ela, a que chamamos cache. Operações chamadas nas referências são executadas sempre nas cópias do cache, mesmo que a SharedSpace seja a dona do objeto em questão.
|