• Nenhum resultado encontrado

3. Infra-estrutura para Representação e Personalização de Ambientes Virtuais

4.7 Interface de Comunicação Cliente/Servidor

O VEPersonal utiliza um ambiente Web para a comunicação com o usuário que está conectado remotamente. Uma interface de comunicação entre o usuário e o sistema foi desenvolvida para realizar a sincronização da informação, tendo em vista ser um ambiente dinâmico.

A função da interface é comunicar as ações do usuário ao Agente Gerente, além de receber os objetos para atualização do mundo virtual. Essa atualização pode ser através de um ambiente X3D completo, inserção de objetos (tags X3D) ou remoção de objetos (por nome). A interface deve disponibilizar meios para que o Agente Gerente possa realizar essas operações.

A visualização de mundos virtuais pelo usuário é realizada pelo browser Xj3D [Xj3D, 2007]. Este browser é open source, desenvolvido em Java pela Web3D Consortium, e permite visualizar ambientes X3D e VRML. Aplicações usando Xj3D têm sido desenvolvidas para simulação, treinamento e ensino, bem como para visualização médica, jogos e projetos envolvendo sensores de visualização [Matsuba, 2006].

Além desse browser, foi utilizado a API Scene Access Interface (SAI) [SAI, 2007] para fazer a comunicação entre os ambientes X3D e Java. Esta API permite a inserção, remoção e modificação dos objetos no browser Xj3D em tempo real.

É possível realizar um acesso externo ao ambiente virtual através de uma classe Java que chama uma instância do browser e carrega um arquivo X3D. Em seguida, SAI é utilizada para receber as informações do browser ou efetuar alguma ação na cena (por exemplo, inserir ou remover objetos) [Martins, 2007].

A integração desses recursos no ambiente Web utilizou a tecnologia Java Web Start (JWS) [JWS, 2007] com o objetivo de possibilitar a execução de aplicativos Web,

controlando os serviços e os protocolos de comunicação. O Java Web Start é iniciado automaticamente quando é feito o primeiro download da aplicação do VEPersonal.

O JWS armazena o aplicativo localmente, assim, todas as inicializações subseqüentes são quase instantâneas, pois todos os recursos necessários já estão disponíveis.

No lado do cliente, o usuário acessa o sistema via browser e pode realizar funcionalidades como cadastro e autenticação. Quando ele solicita a geração do mundo 3D, uma aplicação Java é iniciada para monitorar as ações do usuário no ambiente e informar ao servidor a execução de uma ação (como clique do mouse ou proximidade a objetos). Esta aplicação também é responsável por receber o mundo a ser carregado ou os objetos a serem incluídos e/ou excluídos no mundo virtual (Figura 4.14).

Figura 4.14 Interface cliente-servidor do VEPersonal utilizando Java Web Start

No lado do servidor, quando uma ação do usuário é recebida, o Agente Gerente se encarrega de determinar quais devem ser as ações a executar. Estas ações são transformadas em mensagens do protocolo e enviadas aos demais agentes. A sociedade de agentes toma as decisões necessárias e retorna à interface, a atualização do mundo virtual, caso necessário.

Os Casos de Uso apresentados na Figura 4.15 representam as ações realizadas pelo Agente Gerente, pela Interface do VEPersonal e pelo Usuário e são detalhados a seguir.

Figura 4.15 Diagrama de Casos de Uso da comunicação com o usuário

A comunicação do Agente Gerente com a Interface é realizada pelas seguintes ações:

• Cadastrar Usuário – o Agente Gerente recebe da Interface o cadastro do usuário que está se conectando pela primeira vez no sistema. Retorna o ID_Usuario (código de identificação) e o userLevel deste usuário;

• Confirmar Login Usuário – responsável por gerar o ambiente para um usuário já cadastrado, após este ter realizado a autenticação no sistema. Fornece ao sistema, o ID_Usuario e o userLevel;

• Carregar Ambiente – esse caso de uso é chamado após a confirmação do login do usuário ou do cadastramento de um novo usuário. O Agente Gerente envia para a Interface o ambiente a ser apresentado ao usuário. Este caso de uso também é executado quando o usuário muda de ambiente;

• Enviar Objetos – é um requisito fundamental para a adaptação em tempo real. Envia um conjunto de objetos à Interface, associados a uma ação para cada um. Essa ação pode ser inserção, remoção ou modificação desses objetos no ambiente. Este caso de

uso permite que se faça uma série de alterações no ambiente com apenas um comando;

• Inserir Objeto – este caso de uso é responsável pela inserção de objetos na cena; • Remover Objeto – é responsável por remover objetos da cena. Esta remoção é

realizada fornecendo o nome do objeto a ser removido; e

• Modificar Objeto – para que um objeto seja modificado, remove-se do ambiente o objeto e insere-se o objeto atualizado.

A seguir, serão discutidos os casos de uso relativos às chamadas da Interface ao Gerente:

• Solicitar Ambiente – esse caso de uso é chamado após a confirmação de um login. Deverá solicitar ao Agente Gerente o ambiente correspondente ao usuário recém- admitido pelo sistema, que será então enviado por meio do caso de uso Carregar Ambiente;

• Enviar Evento de Sensor – sempre que o usuário interagir com algum tipo de sensor no ambiente (sensores de toque e de proximidade), a interface deverá comunicar ao Agente Gerente o id do usuário e o nome do sensor ativado;

• Confirmar/Negar Mudança de userLevel – este caso de uso prevê a consulta ao usuário sobre a mudança de userLevel (e conseqüente atualização do ambiente virtual); e

• Atualizar ambiente – um dos principais requisitos da Interface é a inserção e remoção de objetos sem que seja necessário recarregar toda a cena (requisito fundamental da adaptação dos ambientes em tempo real). Portanto, a Interface deverá fornecer esse serviço ao Agente Gerente, que será realizado pelo caso de uso Enviar Objetos.

Os Casos de Uso relacionados ao usuário são navegar no ambiente e sair do sistema. Estas ações requerem apenas a interação do usuário através de clique de mouse nos objetos e resposta às perguntas realizadas (também realizada pela interação com

objetos 3D), além de deslocamento pelo ambiente. A saída do sistema é realizada pelo deslocamento do usuário em direção à porta indicada por SAÍDA.

4.8 Considerações Finais

Ambientes Virtuais Adaptativos têm sido propostos com o objetivo de personalizar o ambiente em função das necessidades e do conhecimento do usuário, bem como determinar níveis de acesso a ambientes específicos. Esta adaptação visa aumentar a satisfação e produtividade do usuário em ambientes tridimensionais.

Neste capítulo, foi proposta uma arquitetura para a implementação de Ambientes Virtuais Adaptativos, atendendo às premissas discutidas no início deste capítulo: (i) uma aplicação cliente-servidor contribui para a performance da interface de comunicação com o usuário via Web; (ii) o SGBD com suporte a XML armazena tanto os dados do usuário e do estado atual do ambiente (que possuem estrutura relacional), bem como os objetos tridimensionais (que possuem estrutura XML). Neste caso, uma única interface com o SGBD é utilizada, facilitando o gerenciamento e a recuperação desses dados; (iii) uma sociedade de agentes é responsável pelo acesso às informações armazenadas no SGBD e pelo processo de análise e tomada de decisão. Por ser um ambiente multi- agentes, a distribuição de tarefas agiliza esse processo e realiza, em tempo real, as atualizações necessárias no ambiente do usuário.

A implementação da arquitetura inclui alguns requisitos necessários à adaptativdade, não encontrados nos sistemas descritos na literatura. Tais requisitos são: a apresentação de conteúdos em níveis de complexidade diferentes; reuso de objetos; e adaptação em tempo real.

A geração de ambientes virtuais com diversos níveis de complexidade foi realizada com a introdução do atributo userLevel, que representa o estereótipo do usuário. Isto permite construir ambientes virtuais em que é possível realizar uma projeção gradativa de informações à medida que é alterado o perfil do usuário. Uma das vantagens, neste caso, é a possibilidade de se ter um mesmo modelo do ambiente para níveis de usuários diferentes, além de facilitar a atualização do ambiente virtual com a mudança do perfil do usuário.

O reuso de um mesmo objeto em vários AV pôde ser realizado a partir do armazenamento dos objetos 3D em um SGBD com suporte a XML. O processo de construção do AV é realizado através da recuperação apenas dos objetos necessários ao ambiente. Desta forma, novos ambientes podem utilizar objetos que foram inicialmente concebidos para outros AV.

O SGBD PostgreSQL foi escolhido para ser utilizado no VEPersonal porque satisfaz tanto as necessidades de armazenamento e recuperação de objetos 3D quanto de dados relacionais. Além disso, a integração com os agentes é facilitada com o uso da interface JDBC. Assim, cada agente pode acessar o SGBD de acordo com o tipo de dados que ele deseja armazenar ou recuperar.

O Modelo do Usuário permite armazenar o perfil dos usuários cadastrados no VEPersonal, facilitando a recuperação desses dados para geração de um ambiente virtual personalizado. Esta estrutura possibilita o gerenciamento de vários ambientes simultaneamente, tendo em vista o armazenamento dos dados de cada usuário no SGBD com uma identificação única. A manutenção do MU, representada por regras de geração e atualização do perfil do usuário são realizadas por agentes, facilitando o acompanhamento e a monitoração das ações do usuário e de sua evolução cognitiva.

O Modelo do Ambiente foi incluído na arquitetura devido à necessidade de armazenar o estado atual do AV durante a conexão do usuário e realizar um histórico das suas modificações. Isto permite recuperar o AV caso ocorra uma interrupção de comunicação ou queda do sistema. Armazenar o estado do mundo virtual também possibilita recuperar a situação desse mundo quando da última visita do usuário, ou seja, em uma nova conexão, o usuário pode recomeçar de onde havia parado.

A utilização de agentes para gerenciar as ações de um ambiente tridimensional adaptativo é uma proposta inovadora no sentido de colocar as decisões do sistema em entidades autônomas e portadoras de inteligência. Os agentes têm capacidade de avaliar o ambiente e tomar decisões, o que possibilita construir um sistema capaz de acompanhar as ações do usuário (através de sensores), inferir sobre o usuário e as condições do ambiente, e gerar a adaptação necessária (através de atuadores). As regras de personalização e adaptatividade, necessárias para o ambiente proposto, foram inseridas na base de conhecimento dos agentes, gerando maior autonomia às suas ações.

O uso de um sistema multi-agentes permite a distribuição de tarefas e conseqüentemente a modularização das atividades de consulta aos dados, impedindo que mais de um agente acesse os mesmos dados. O ambiente JADE, por sua vez, possibilitou a comunicação dos agentes de forma padronizada e autônoma, facilitando a troca de informações entre eles.

As interfaces para ambientes 3D têm sido aprimoradas nos últimos anos. Novos recursos surgiram com a padronização da linguagem X3D, como por exemplo, a criação de browsers específicos para tais ambientes (Xj3D) e uma interface de programação (SAI) para inserção e remoção de objetos nesse browser. Tais interfaces geram condições favoráveis ao gerenciamento de AV Adaptativos em tempo real.

Desta forma, a interface da arquitetura proposta utiliza tais recursos com o objetivo de capturar as ações do usuário (aproximação ou seleção de objetos) e modificar o ambiente (inserção de novos objetos, por exemplo). Considerando que esta interface é usada em ambiente Web, é necessário adicionar um novo recurso para o seu funcionamento, o Java Web Start (JWS). Esta tecnologia permite que aplicações possam ser iniciadas diretamente da Internet utilizando o browser Xj3D7.

No próximo capítulo, são apresentados os resultados obtidos na aplicação do VEPersonal em um ambiente de ensino de Física. Uma avaliação do desempenho do sistema é realizada em função das tecnologias utilizadas.

7 O browser Xj3D foi implementado em Java e pode ser integrado com outras aplicações Java, inclusive o

5. VEPersonal: Metodologia de Desenvolvi-