• No results found

A interação entre os multiusuários de um 3DCVE pode ser complexa, de modo que a espe- cificação de uma arquitetura conceitual pode ser de grande ajuda. Uma arquitetura conceitual é definida como sendo uma organização apropriada do sistema, que permita o desenvolvimento eficiente, apresentando os componentes ou partes do sistema sob a forma de unidade de desen- volvimento de software (PIMENTEL; FUKS, 2011).

A arquitetura conceitual foca o desenvolvimento e manutenção do sistema. No entanto, a implementação do sistema depende da arquitetura de distribuição, que é construída com base na arquitetura conceitual do 3DCVE. Como apresentado no Capítulo 2, foram encontradas al- gumas arquiteturas que utilizam diferentes modelos de distribuição. Os três tipos principais de arquitetura são: centralizada, descentralizada e híbrida.

A arquitetura centralizada é baseada no modelo lógico de cliente–servidor. Assim, todo o processamento existente é realizado no nodo servidor. Os nodos clientes são responsáveis apenas pela apresentação das primitivas gráficas aos usuários. Este tipo de arquitetura, apesar de ser um modelo simples, possui alguns problemas, tais como:

• Escalabilidade: o fato de o servidor ser o ponto central de sincronismo e distribuição de dados, podem ocorrer problemas com relação à quantidade de nodos clientes suportados pelo ambiente. A medida que a quantidade de usuários aumenta, o servidor pode não conseguir suprir a necessidade de processamento; e

• Baixa tolerância a falhas: devido o servidor ser considerado um ponto único de falha, todo o sistema é interrompido no caso de uma falha deste. Este tipo de falha pode ser contornado com o uso de técnicas de replicação, porém, prejudicando a simplicidade inicial provida pela arquitetura.

Apesar das desvantagens mencionadas, a arquitetura centralizada também possui algumas vantagens. A implementação da arquitetura centralizada é simples, visto que só existe uma

3.5 Comunicação e sincronização de dados em 3DCVEs 30

instância compartilhada entre todos os nodos. Esta característica elimina problemas de consis- tência e sincronismo de dados. A gerência de segurança também é facilitada neste modelo de arquitetura, pois o servidor gerencia todos os acessos aos recursos. Outro ponto está relacionado à conexão de nodos posteriormente ao início de execução do ambiente. Um 3DCVE totalmente centralizado permite a conexão de nodos facilmente durante o tempo de execução, devido ao forte sincronismos provido.

A arquitetura descentralizada realiza o processamento em todos os nodos do ambiente, re- plicando todos os dados distribuídos. Cada nodo possui uma instância completa do ambiente colaborativo. Por possuir replicação, este modelo de arquitetura possui maior tolerância a fa- lhas. A ausência de um servidor central também permite que a escalabilidade do ambiente seja maior, pois manter este ambiente síncrono e consistente não é uma tarefa trivial. Esta arquitetura é baseada no modelo mestre–escravo.

A escalabilidade alcançada em arquiteturas descentralizadas é alta, entretanto, a alta distri- buição causa uma maior troca de mensagens entre os nodos. O uso de protocolos e formatos otimizados de troca de mensagens são utilizados. O uso de outros recursos de hardware também são maiores, tais como processadores e memórias, devido a replicação dos dados. A gerência de dados também é uma tarefa complexa, visto que ambientes com esta arquitetura são, comu- mente, propícios a inconsistências temporárias. A inconsistência temporária causa problemas de interação entre os usuários e torna mais difícil a conexão de usuários durante a execução do ambiente (PIMENTEL; FUKS, 2011).

As arquiteturas híbridas são caracterizadas por combinar as centralizadas e descentraliza- das. Esta combinação permite que o ambiente se comporte de maneira distinta, dependendo da necessidade. Um modo de arquitetura híbrida bem difundido é o uso de um servidor para gerenciar o espaço de dados colaborativo, de modo que os nodos clientes gerenciam o espaço privado. Este modelo combina as vantagens dos dois modelos (centralizado e descentralizado), mantendo a simplicidade do modelo centralizado, mas ao mesmo tempo permitindo uma maior escalabilidade.

Existem ainda modelos baseados na topologia de rede ponto–a–ponto, que vêm sendo uti- lizados nos últimos anos em pesquisas relacionadas a 3DCVEs (vide seção 2). Na topologia ponto–a–ponto, todos os nodos são caracterizados como sendo clientes e servidores. Por pos- suir características de sincronismo fraco e alta escalabilidade, ele á altamente indicado para o desenvolvimento de 3DCVEs baseados em redes de dados sobre a Internet. Assim, este modelo é implementado sobre redes físicas existentes. No entanto, as redes não podem ser modificadas pelas aplicações que necessitam trocar mensagens sobre elas. As redes ponto–a–ponto se adap-

3.5 Comunicação e sincronização de dados em 3DCVEs 31

tam criando redes com uma topologia própria. As redes sobrepostas (overlay) são um tipo de rede criada sobre uma rede física existente. Na Figura 3.8 é apresentado um exemplo de rede ponto–a–ponto sobreposta. Os enlaces lógicos não correspondem, necessariamente, aos enlaces físicos, de modo que um enlace lógico pode ser, na verdade, um conjunto de enlaces físicos, ou até mesmo rotas entre vários enlaces físicos.

Camada de Rede

Peers

Conexão entre Roteadores e Peers Conexão entre Roteadores Conexão entre Peers

Figura 3.8: Rede ponto–a–ponto Overlay.

As redes ponto–a–ponto também são divididas em três diferentes modelos de arquitetura: centralizado, descentralizado e semicentralizado.

O modelo centralizado possui um servidor central que mantém um índice de busca. Quando um nodo realiza a busca de um recurso compartilhado na rede, este envia uma requisição ao ser- vidor central, o qual retorna a lista dos nodos que compartilham este recurso. A troca de dados posterior é realizada diretamente entre os nodos. Devido a existência deste nodo centralizado, o modelo apresenta baixa tolerância a falhas e pouca estabilidade (PIMENTEL; FUKS, 2011).

O modelo descentralizado e não estruturado não utiliza um servidor central para manter o índice de busca. A busca neste modelo é feita por inundação, ou seja, é realizada de forma colaborativa entre os nodos, que consultam seus vizinhos repassando aos outros o índice.

3.5 Comunicação e sincronização de dados em 3DCVEs 32

O modelo semicentralizado utiliza um modo misto, que combina as vantagens dos modelos centralizado e descentralizado. Os nodos possuem papéis distintos. Alguns nodos atuam como supernodo, responsável pelas tarefas administrativas, enquanto que outros são associados a um supernodo.