Interação na Web - Tendências

Alberto Barbosa Raposo  RA 946152

Seminário de IA 368 F - Tópicos em Engenharia de Computação V
(Tecnologias da Infraestrutura de Informação em Ambientes Colaborativos de Ensino)
Profs.: Léo P. Magalhães e Ivan L. M. Ricarte


 
Resumo:

Atualmente a interação na Web ocorre basicamente através de formulários da linguagem HTML e/ou através de widgets em applets Java. Apesar do esforço de alguns desenvolvedores em implementar interfaces mais complexas com apenas estes recursos é nítida a carência de mecanismos mais sofisticados de interação na Web. Este trabalho pretende mostrar algumas tendências no sentido de aprimorar os mecanismos de interação na Web. Serão abordados temas como ambientes de trabalho compartilhados, ambientes virtuais compartilhados e o uso de multimedia nas interfaces. Esses temas tendem a se tornar cada vez mais frequentes em publicações da área e, se a tendências se confirmarem, constituirão parte essencial do futuro software para a Web.


1. Introdução
 
    A explosão de popularidade da Internet através da World Wide Web aliada às tecnologias que permitem maior dinamismo e flexibilidade de interação com a Web (por exemplo, CGI, Javascript e Java) têm levado muitos pesquisadores e desenvolvedores a utilizarem-na como meio de interação com as aplicações [Ibrahim 97], [Rice 96].
    As grandes vantagens em se desenvolver aplicações disponibilizadas via Web estão associadas à fácil acessibilidade: as aplicações ficam disponíveis à cada vez mais ampla gama de usuários da Web, e elas podem ser acessadas de praticamente qualquer lugar (de casa, do trabalho, ou mesmo em trânsito, através da computação móvel). Somada a estas vantagens, ainda existe a independência de plataforma das aplicações Web.
    No entanto, as tecnologias básicas da Web (HTTP e HTML) ainda impõem algumas limitações no que diz respeito à interação com as aplicações. Uma destas limitações está relacionada à falta de controle sobre a aparência da interface, já que a linguagem HTML deixa este tipo de decisão para os browsers (browsers diferentes podem gerar interfaces com disposições diferentes dos widgets) [Ibrahim 97]. Outro problema das interfaces Web está relacionado à lentidão de feedback. Uma aplicação que usa CGI só terá sua interface alterada e "desbloqueada" após entrar em contato com servidor e obter o resultado do processamento realizado. Esse processo geralmente demora bem mais do que o usuário está acostumado a esperar em interfaces fora da Web.
    O surgimento dos applets Java resolveu o problema de controle de aparência da aplicação, pois eles permitem que ela seja totalmente programada em Java (inclusive sua interface). Na página HTML é necessário apenas definir uma região para que a aplicação seja embutida na mesma. O problema da lentidão de feedback também foi em grande parte resolvido pelos applets: nem todas as tarefas exigem contato com o servidor (elas podem ser executadas localmente) e, mesmo as que exigem contato com o servidor (consulta a base de dados, por exemplo) podem ser beneficiadas pela capacidade multithreading da linguagem Java (a interface não precisa ficar "bloqueada" enquanto se realiza a consulta ao servidor).
    Apesar disso, ainda restam alguns problemas a serem superados pela Internet e pela Web antes delas se tornarem o meio de interação com a maior parte das futuras aplicações. As seções seguintes mostrarão algumas direções que podem ser seguidas para a superação desses problemas. A próxima seção trata dos espaços de trabalho compartilhados, que tentam tirar o usuário do "isolamento", permitindo a cooperação entre os vários usuários de uma aplicação na Web. A Seção 3 trata do uso de outras mídias (imagem, som, etc) como objetos de interação na Web. A Seção 4 estuda os ambientes virtuais compartilhados, que saem da metáfora de desktop das aplicações atuais e propõem verdadeiras "sociedades virtuais" onde as interações são modeladas a partir das interações do mundo real. As duas seções que se seguem mostram conceitos que poderão ser importantes no futuro das interfaces na Web: internetworked graphics e tele-imersão. Finalmente, a Seção 7 apresenta as conclusões.
 

2. Espaço de Trabalho Compartilhado

    A Web e sua estrutura hipermedia oferece a ilusão de uma grande base de informações. No entanto, ainda existem barreiras significativas à colaboração efetiva entre os usuários. Apesar da informação ser um recurso compartilhado, os Web browsers ainda são ferramentas para um único usuário, mantendo os usuários separados uns dos outros, já que oferecem pouco suporte para que um grupo de usuários trabalhe de maneira colaborativa sobre a informação compartilhada (Fig. 1).
 

Barreiras para a efetiva colaboração
Figura 1: A Web hoje em dia. A informação é compartilhada, mas ainda existem barreiras para a efetiva colaboração sobre essa informação [Greenberg 97].
 
    A idéia de espaço de trabalho compartilhado visa remover essa última barreira à colaboração na Web. Os browsers devem se tornar interfaces de groupware, que permitam aos usuários se contactar, discutir os documentos e interagir com seus displays em tempo-real (Fig. 2).
 
Espaço de trabalho compartilhado
Figura 2: Espaço de trabalho compartilhado. Usuários interagem entre si e com o objeto de trabalho em tempo-real [Greenberg 97].

    A criação de um espaço de trabalho compartilhado eletrônico requer conhecimento das propriedades dos espaços de trabalho do mundo real e também da maneira como as pessoas trabalham neles. Neste aspecto, os estudos de CSCW (Computer Supported Cooperative Work) são muito importantes, pois eles procuram entender como as tecnologias computacionais podem ser projetadas para suportar uma colaboração efetiva entre os usuários.
    Dentre as características mais importantes de um espaço de trabalho compartilhado podem ser citadas [Bentley 97a], [Greenberg 97]:

    O reconhecimento e a percepção das atividades dos outros usuários é uma questão muito importante para a interação entre os usuários, tanto que têm sido objeto de estudo de muitos pesquisadores [Benford 95], [Palfreyman 96]. Essa questão voltará a ser abordada na Seção 4, que trata dos ambientes virtuais compartilhados.
    Dentre as características da Web que dificultam a implementação de um espaço de trabalho compartilhado efetivo, criando as barreiras entre os usuários comentadas anteriormente, podem ser citadas [Bentley 97b]:     As tecnologias mais recentes de Java applets, servlets e objetos distribuídos (integração CORBA e Web) tendem a mudar essa situação desfavorável, mas não foi encontrada na literatura nenhuma aplicação de espaço de trabalho compartilhado que fizesse uso efetivo destas tecnologias. Até então, a Web tem sido mais utilizada para o desenvolvimento de sistemas CSCW centralizados, que não requerem interfaces altamente interativas, suporte adequado à colaboração e nem feedthrough (atualização de interface em resposta à interação de outros usuários). No entanto, dois sistemas de espaço de trabalho compartilhado serão aqui destacados.
    O BSCW (Basic Support for Cooperative Work) [Bentley 97a], [Bentley 97b] estende a capacidade da Web com recursos sofisticados de armazenagem de documentos, gerenciamento de versões, administração de membros e de grupos, edição colaborativa e conferências textuais. O sistema é baseado na noção de espaço de trabalho estabelecido por membros do grupo para coordenar e organizar o trabalho. Um espaço de trabalho pode conter vários tipos de objetos, tais como documentos, imagens e links para outras páginas. Estes objetos estão organizados em hierarquias de pastas (folders). Membros de um determinado grupo podem colocar objetos no espaço compartilhado e também transferir objetos de lá para o seu sistema local (para ler ou editar um documento, por exemplo). O sistema é implementado através de scripts CGI e não tem dependência de qualquer programa externo, sendo acessível pelos browsers convencionais.
    Outro sistema que merece destaque é o CBE (Collaboratory Builder's Environment) [Lee 96]. Sua arquitetura é baseada nos conceitos de salas, usuários, applets e grupos de applets. O conceito de sala é semelhante ao de espaço de trabalho do BSCW. Uma sala consiste de múltiplos applets e dados. Cada usuário que entra numa sala recebe em seu desktop uma cópia dos applets daquela sala, de modo que ele possa interagir com os outros usuários da sala, que também possuem os mesmos applets. O conjunto de applets do mesmo tipo constitui um grupo de applets e pertence a um mesmo grupo de comunicação multicast. Uma sala pode ter vários grupos de applets. Alguns protótipos desse ambiente já foram implementados em Java com applets de chat e whiteboard compartilhados. Outra característica interessante do CEB é atribuir diferentes papéis aos usuários. Há o administrador, que controla o acesso à cada sala, cria ou retira grupos de applets da sala e interage com os applets. Há o usuário membro, que só difere do administrador porque não pode alterar o controle de acesso à sala. Há também o observador, que pode apenas observar os estados dos applets da sala, sem poder alterá-los.
    Além do BSCW e do CBE, existem vários outros sistemas que implementam espaços de trabalho compartilhados [Dennis 97], [Kothari 97],[Woo 94], mas nenhum deles apresentam funcionalidades significativas além das presentes nos dois sistemas acima.
 

3. Uso de Recursos Multimedia Diretamente na Interface

    Esta seção apresentará dois exemplos de como a interação na Web pode ser beneficiada com o uso da multimedia. O primeiro exemplo mostra um mecanismo de busca na Web que integra texto e imagem [Mukherjea 97]. Nesse mesmo exemplo recursos multimedia também são usados para a visualização dos resultados das buscas. O segundo exemplo mostra uma implementação não convencional de serviços como quadro de avisos e mensagens broadcast utilizando metáforas do mundo real, realizada com o uso de recursos multimedia [Seligmann 97].

3.1. AMORE - Um Sistema de Pesquisa Multimedia

    O AMORE (Advanced Multimedia Oriented Retrieval Engine) [Mukherjea 97] visa superar três limitações básicas dos atuais mecanismos de busca na Web:

    O AMORE permite, assim como os outros mecanismos de busca, que sejam feitas pesquisas por palavras-chave. Porém, ele também permite pesquisa por imagens, retornando documentos com imagens semelhantes à que foi especificada pelo usuário.
    A implementação do sistema envolve duas fases: indexação e pesquisa. Na etapa de indexação os sites a serem pesquisados precisam ser indexados pelas suas palavras-chave, como normalmente é feito, e também pelas imagens que ele contém, usando as características de cor e forma das mesmas. Depois que o texto e imagens são indexados no servidor, usuários localizados em qualquer cliente podem realizar pesquisas. O resultado da pesquisa de imagens se baseia numa "taxa de semelhança", calculada a partir das taxas de semelhança da cor e da forma das imagens. É possível variar a relação de importância da cor e da forma na busca (i.e., é possível determinar se a semelhança de forma é mais importante que a semelhança de cor, por exemplo). Testes de desempenho indicam que a busca por semelhança de imagens é satisfatória (muitas vezes mais rápida que busca por texto).
    Alguns cenários possíveis para a busca por imagens seriam a procura da home page de uma pessoa usando sua foto, procura por classes de documentos (documentos que possuam um esquema de circuitos elétricos, por exemplo), procura por outros quadros de uma animação a partir de um quadro da mesma. A Fig. 3 mostra um outro cenário possível, onde um applet de desenho é usado para fazer um esboço da imagem que se deseja procurar.
 
Busca por imagem
Figura 3: Busca por imagem. À esquerda é mostrado o applet para desenhar o esboço da imagem que se deseja procurar num determinado site. À direita são mostradas as imagens resultantes da pesquisa [Mukherjea 97].

    Além da busca por imagens, o AMORE usa mecanismos multimedia para aprimorar a visualização dos resultados da pesquisa. A partir dos resultados, um script CGI é utilizado para a geração de um arquivo VRML (Virtual Reality Modeling Language) [VRML 97] que permite a visualização dos resultados de várias maneiras. Uma possível visualização é pelo gráfico scatterplot, onde o eixo x mapeia a similaridade de forma e o eixo y mapeia a similaridade de cor (quanto maior o valor, maior a similaridade). As imagens encontradas são representadas por cubos que serverm como links para as imagens desejadas. O eixo z serve para separar imagens iguais. A Fig. 4 mostra um exemplo de gráfico scatterplot construído em VRML.
 

Gráfico scatterplot
Figura 4: Visualização scatterplot dos resultados de uma pesquisa. Similaridade de forma e cor são mapeadas nos eixos x e y, respectivamente. Documentos com as mesmas imagens são alinhados no eixo z. A figura da direita mostra que as imagens são visualizadas quando se chega mais perto dos cubos [Mukherjea 97].

    Outro aspecto dos resultados de pesquisas tratado pelo AMORE é a localização da página dentro do seu Web site. A Fig. 5 ilustra a visão da página do autor do AMORE dentro do seu site. Cada objeto do gráfico é um link para a respectiva página e o tamanho do mesmo indica a importância da página (medida pela frequência de acesso, por exemplo).
 

Visão da página dentro do seu site
Figura 5: Visão da página dentro do seu site [Mukherjea 97].
 

3.2. Metáforas do Mundo Real

    O estudo aqui apresentado [Seligmann 97] tem três objetivos: estudar como as pessoas interagem na Web, criar sistemas adaptativos capazes de tornar esta interação o mais transparente possível e integrar conteúdo e controle na representação visual de interfaces multimedia para permitir uma interação mais natural.
    As metáforas comumente usadas em interfaces são baseadas em sistemas de controle industrial (botões, barras de rolagem, etc) e são eficientes na construção de interfaces genéricas, mas o seu uso deve vir acompanhado de algum texto explicativo (labels nos botões, por exemplo). Os autores do referido artigo alegam que a criação de interfaces baseadas em metáforas do mundo real aumentam a acessibilidade dos serviços oferecidos, diminuindo a distância entre forma e função na interface.
    Para ilustrar as idéias defendidas, foram desenvolvidos alguns serviços para a Web que usam metáforas do mundo real como base para a interface multimedia.
    Um dos serviços desenvolvidos é um quadro de avisos em que as mensagens têm um certo tempo de vida e estão associadas a uma região da superfície do quadro. Essa superfície é dividida em várias áreas e o usuário pode escrever uma mensagem em qualquer área livre e "navegar" por toda a superfície para ler as mensagens existentes. A metáfora encontrada para a interface deste serviço consiste em uma praia onde os usuários podem escrever mensagens na areia. A praia é circular, de modo que o usuário possa sempre visitar toda a costa, andando em qualquer direção. Após o tempo de vida da mensagem, ela é apagada por uma onda e aquela região passa a ficar livre (Fig. 6).
 

Quadro de avisos 1Quadro de avisos 2Quadro de avisos 3
Figura 6: Mensagem na areia sendo apagada do quadro de avisos por uma onda [Seligmann 97].

    A implementação é realizada por um applet cliente que possui várias "camadas" de animação que podem ser sobrepostas para gerar os efeitos desejados. Esse applet é controlado por um servidor que envia parâmetros necessários para a determinação da animação mostrada: texto escrito, texto a ser apagado, hora do dia (de acordo com este parâmetro a praia pode estar com o sol nascente, com o sol se pondo, escura, etc), condições climáticas, condições da maré, sons e outros efeitos visando tornar o ambiente mais realista e reforçar as metáforas do mundo real.
    Este quadro de avisos ainda apresenta algumas limitações. Um exemplo é o fato de não haver estruturação das mensagens. A resposta a uma determinada mensagem não estará necessariamente ao lado da mesma, pois pode não haver espaço disponível, além do ambiente não indicar o relacionamento entre as mensagens. Outro problema diz respeito à percepção dos usuários no ambiente. Os usuários presentes não são representados por objetos no ambiente; a única maneira de saber se há um usuário em determinado ponto da praia é quando ele está escrevendo uma mensagem e ela está aparecendo na areia. Apesar destas limitações, a ênfase do sistema é na estética e na interatividade, servindo como um exemplo motivador para novas experiências do gênero.
    Com uma pequena alteração, o ambiente do quadro de avisos pode ser usado para o envio de mensagens broadcast a todos os usuários. Para isso, a mensagem é escrita no céu, visível em todos os pontos da praia. A mensagem broadcast tem vida mais curta que a do quadro de avisos e é precedida por um barulho de avião para chamar a atenção dos usuários. A Fig. 7 mostra uma mensagem broadcast sendo enviada.
 

Mensagem broadcast 1Mensagem broadcast 2Mensagem broadcast 3
Figura 7: Mensagem broadcast no céu [Seligmann 97].
 

4. Ambiente Virtual Compartilhado

    Um ambiente virtual compartilhado (também chamado ambiente virtual distribuído ou DVE - Distributed Virtual Environment) é uma simulação em tempo-real de um mundo real ou imaginário, onde usuários estão simultaneamente presentes e podem navegar e interagir com objetos e outros usuários [Hagsand 96].
    Um DVE pode ser definido de acordo com as seguintes características [Waters 97]:

    Pesquisas relacionadas aos DVEs já existem há duas décadas, mas só o advento da Internet e da Web e, principalmente, a definição da VRML 2.0 [VRML 97] os tornaram disponíveis para o grande público. No entanto, limitações de banda de passagem e latência da Internet ainda são grandes empecilhos ao desenvolvimento de DVEs mais efetivos. Outro fator muito importante para o desenvolvimento de DVEs será o suporte direto à criação deste tipo de ambiente numa futura versão da VRML (a versão 2.0 tem potencial para isso através dos scripts Java associados a objetos do mundo modelado, mas faltam maiores facilidades nesse sentido).
    Alguns possíveis cenários de aplicação dos DVEs são citados a seguir [Waters 97]:     As pesquisas na área de DVEs até então vem sendo conduzidas por duas comunidades separadas: a comunidade da Internet e a comunidade militar. Estas duas comunidades tomaram caminhos diferentes no desenvolvimento de DVEs, discordando sobre quais aspectos são mais importantes para os DVEs hoje em dia. A comunidade da Internet, encabeçada por empresas comerciais e universidades, enfoca a disponibilidade para a grande massa de usuários. Para eles, DVEs devem ser executados nos tipos de computadores e conexões da maioria dos usuários. Até bem pouco tempo, isso exigia sacrifício da comunicação por voz, da imersão e do realismo. A comunidade militar, por sua vez, sempre se interessou mais por simulações realistas, imersivas e que suportassem milhares de usuários simultaneamente, com o objetivo de treinamento para situações de combate. Tipicamente, esse tipo de sistema exige hardware próprio e de elevado custo, impossibilitando seu uso pelo usuário comum [Waters 97].
    Além da divisão entre DVEs desenvolvidos para fins militares e os desenvolvidos pela comunidade da Internet, é possível definir uma taxonomia para DVEs de acordo com o local onde são armazenados os dados relevantes ao estado do ambiente e de seus objetos [Macedonia 97]:
  1. Ambiente homogêneo replicado

  2. Neste tipo de ambiente o estado de cada participante é inicializado a partir de uma base de dados homogênea contendo todas as informações do mundo virtual. Cada participante passa a ter cópia do estado inicial e só precisa ser comunicado das mudanças de estado (por exemplo, locomoção de objetos). A grande vantagem deste tipo de ambiente é que as mensagens transmitidas são pequenas. No entanto, este tipo de ambiente é relativamente pouco flexível e com o tempo tem uma forte tendência ao aparecimento de inconsistências entre os participantes devido à perda de mensagens (Fig. 8).
     
    Ambiente homogêneo replicado
    Figura 8: Ambiente homogêneo replicado.
     
  3. Ambiente com dados compartilhados centralizados

  4. Neste tipo de ambiente existe uma base de dados localizada num servidor central, compartilhada por todos os usuários. Todas as alterações de estado realizadas pelos usuários devem ser comunicadas apenas ao servidor, que redistribui a mensagem a todos os participantes. Como a base de dados é compartilhada, apenas um usuário pode alterá-la de cada vez. A vantagem com relação aos DVEs do tipo anterior é que estes estão menos sujeitos a inconsistências devido à base de dados ser centralizada. No entanto, o servidor é muito sobrecarregado e tende a se tornar o gargalo do sistema. Além disso, o tráfego de mensagens é muito grande (as mensagens são mandadas primeiro para o servidor e então distribuídas para os participantes - Fig. 9).
     
    Ambiente com dados compartilhados centralizados
    Figura 9: Ambiente com dados compartilhados centralizados.
     
  5. Ambiente com dados compartilhados distribuídos, atualização ponto-a-ponto

  6. Os dados são replicados parcial ou totalmente em cada participante deste tipo de ambiente. Não existe um servidor central, como nos casos anteriores e as alterações são comunicadas aos participantes via multicast. A grande vantagem deste tipo de ambiente é não ter o servidor como gargalo do sistema. No entanto, existem problemas de escalabilidade devido aos custos para a manutenção da confiabilidade e consistência de dados. Além do mais, a comunicação ponto-a-ponto é mais frágil no aspecto da segurança (todos os participantes têm os mesmos privilégios) e tende a sobrecarregar os participantes com mensagens (Fig. 10).
     
    Ambiente com dados compartilhados distribuídos com atualização ponto-a-ponto
    Figura 10: Ambiente com dados compartilhados distribuídos, atualização ponto-a-ponto.
     
  7. Ambiente com dados compartilhados distribuídos, cliente-servidor

  8. Uma variante do modelo cliente-servidor, onde os dados estão divididos entre os participantes e a comunicação é mediada por um servidor central. Este tipo de ambiente supera os problemas característicos da comunicação ponto-a-ponto (dificuldade de consistência, por exemplo). No entanto, a presença de um servidor pode servir como gargalo do sistema, especialmente em ambientes com número elevado de usuários (os sistemas existentes usam técnicas para reduzir a comunicação entre os participantes e consequentemente o uso deste servidor). A Fig. 11 ilustra este tipo de ambiente.
     
    Ambiente com dados compartilhados distribuídos cliente-servidor
    Figura 11: Ambiente com dados compartilhados distribuídos, cliente-servidor.
    Antes de se iniciar o estudo de alguns DVEs existentes, é interessante ressaltar a questão da percepção dos usuários (user awareness). Os participantes de ambientes virtuais colaborativos (e outros tipos de ambientes colaborativos) devem ser diretamente visíveis a si mesmos e aos demais participantes. A percepção dos usuários deve englobar os seguintes aspectos [Benford 95]:     Este último aspecto deixa claro que ainda não existe um DVE capaz de prover a percepção de usuários em toda a sua abrangência. Já existe um protocolo para a Web, em fase de desenvolvimento, com o objetivo de indicar a presença de usuários para outros usuários Web [Palfreyman 96].

4.1. DIVE

    O DIVE (Distributed Interactive Virtual Environment) [Carlsson 93], [Hagsand 96] é uma plataforma de software para VEs multi-usuários que tem sido usada como toolkit para a criação de várias aplicações. Ele foi desenvolvido pelo SICS (Swedish Institute of Computer Science) e se enquadra na categoria 3 da seção anterior (ambiente com dados compartilhados distribuídos, atualização ponto-a-ponto). Cada participante possui uma réplica do mundo compartilhado (nas primeiras versões esta réplica era total, nas versões mais recentes cada participante tem uma réplica parcial do mundo). As mudanças são propagadas aos outros participantes através de protocolo multicast confiável. O uso de multicast é essencial, pois utiliza melhor os recursos da rede, e assim reduz (indiretamente) a latência.
    A base de dados é particionada em mundos. Cada mundo representa um conjunto de objetos e parâmetros específicos, completamente distintos de outros mundos. Cada mundo está associado a um endereço multicast e o participante só pode estar em um mundo de cada vez, embora possa mudar de mundo dinamicamente.
    O problema de modificações concorrentes de objetos é solucionado com um algoritmo de passagem de token: se algum participante quiser modificar um objeto que está sendo modificado, ele fica bloqueado até receber o token. Os participantes podem se comunicar por texto e áudio.
    Quando um novo participante deseja entrar no mundo, ele contacta o endereço multicast daquele mundo e recebe réplica atualizada do mundo, vinda do participante que estiver mais perto.
    A questão da percepção dos usuários é bem tratada no DIVE. Usuários podem ser representados de várias maneiras, desde formas mais simples, que apenas informam presença, localização e orientação até formas mais complexas, que mapeiam uma foto estática do usuário na cabeça do avatar. A atividade do usuário também é identificada por meio de uma linha que liga o avatar ao ponto de manipulação e também pela mudança de cor dos objetos manipulados.
    O funcionamento do DIVE é semelhante ao VRML 2.0. O mundo é definido por uma linguagem baseada em hierarquias de nós; comportamentos podem ser associados aos objetos do mundo através de scripts Tcl e a visualização é feita por software específico que pode ser usado como helper application dos Web browsers convencionais.

4.2. NPSNET

    O NPSNET-IV foi o primeiro DVE que incorporou o protocolo DIS (Distributed Interactive Simulation) e o IP Multicast para simulações multi-usuários na Internet [Macedonia 94]. O DIS é um grupo de padrões, desenvolvido pelo Departamento de Defesa dos EUA e parceiros da indústria, que envolve arquitetura de comunicação, formato e conteúdo de dados, gerenciamento de simulação, medidas de desempenho, segurança, fidelidade, feedback, etc. O objetivo é prover uma estrutura básica capaz de unir as diferentes plataformas de hardware e software que compõem os DVEs com grande número de usuários.
    O NPSNET usa o paradigma de players e ghosts. Nesse paradigma, cada objeto do mundo virtual é controlado em seu próprio host por um objeto de software chamado player. Nas outras máquinas, o objeto do mundo é controlado por um objeto chamado ghost. O ghost calcula a posição do objeto através de um algoritmo de dead-reckoning. O player verifica a posição real do objeto e a calculada pelo dead-reckoning. Quando estas duas posições ultrapassarem uma diferença limite ou já se tenha passado um certo tempo desde a última atualização (geralmente 5 segundos), o player envia uma mensagem aos ghosts, corrigindo a posição do objeto. O objetivo do dead-reckoning é reduzir o tráfego na rede, ao preço de uma computação extra no host.
    Uma das características do DIS é não ter um servidor central, por isso todos os dados sobre um objeto devem ser transmitidos quando seu estado muda. Quando um novo usuário entra no ambiente, ele só vai ter conhecimento do estado atual do ambiente após um certo tempo, quando ele tiver recebido mensagens de atualização de todos os objetos. Isso exige que atualizações sejam enviadas de tempos em tempos mesmo para objetos que não mudaram de estado. Essa, aliás, é uma das grandes limitações do DIS, pois muitas vezes são enviadas informações redundantes (todos os dados sobre um objeto devem ser transmitidos) ou desnecessárias (informação sobre objetos muito distantes ou fora do campo de visualização). A alternativa encontrada para resolver esta limitação é a utilização de áreas de interesse, onde os participantes recebem atualizações apenas de objetos dentro de sua área de interesse [Macedonia 95].

4.3. Community Place

    O Community Place [Lea 97a], [Lea 97b] é um sistema VRML multi-usuário desenvolvido pela Sony, que consiste em um browser para VRML 2.0, uma arquitetura de servidor multi-usuário e um ambiente de suporte à aplicação. Este é um exemplo de sistema desenvolvido pela comunidade da Internet, com o objetivo de atingir um número elevado de usuários geograficamente dispersos e interconectados por links de baixa banda de passagem e alta latência. A arquitetura básica do sistema é mostrada na Fig. 12.

Arquitetura do Community Place
Figura 12: Arquitetura do Community Place [Lea 97b].
 
    Como observado na figura, o browser do Community Place atua em conjunto com um browser HTML. Ele recebe a descrição do ambiente (em VRML 2.0) e nesta descrição ele encontra a localização do servidor que será usado nesta cena. O servidor é então contactado via VSCP (Virtual Society Client Protocol), construído sobre o TCP. O servidor envia ao browser informações sobre os outros usuários do ambiente e as atualizações que foram feitas em relação à cena original, carregada pelo browser. A finalidade do VSCP é garantir comunicação eficiente das transformações da cena através de uma representação compacta das mesmas, e também permitir que aplicações estendam o formato básico dos pacotes para adequá-los a necessidades específicas.
    Quando o usuário navega pela cena, o browser informa ao servidor sua nova posição. O servidor então define quais outros usuários (browsers) devem ser comunicados desta mudança de posição. Esta decisão do servidor se baseia no conceito de área espacial de interesse, ou aura [Hagsand 97]. Segundo o conceito de aura, cada objeto tem um volume imaginário em torno dele (chamado aura) dentro do qual estão os objetos de interesse. Objetos fora da aura de um determinado objeto não podem interagir com ele. O objetivo da área espacial de interesse é reduzir o tráfego de mensagens.
    Quando uma mensagem é gerada devido a alguma ação do usuário, o servidor também realiza função semelhante, decidindo quais browsers a receberão.
    O Community Place apresenta dois modelos de programação de aplicações: o SSS (Simple Shared Scripts) e o AO (Application Object), esquematizados na Fig. 13.
SSS versus AO
Figura 13: SSS versus AO [Lea 97b].
 
    O SSS é um modelo mais simples, para aplicações pequenas. Ele é baseado no modelo de scripts replicados, onde cada browser tem cópia do script e o executa localmente. O fluxo de uma mensagem resultante de uma ação do usuário é mostrado do lado esquerdo da Fig. 13. A ação do usuário (1) leva à execução do script local (2) e converte o evento numa mensagem enviada ao servidor (3). O servidor repassa a mensagem aos outros browsers "interessados" (4), que convertem a mensagem em um evento que leva à execução de um script local (5). Apesar da presença do servidor, no modelo SSS a comunicação é basicamente ponto-a-ponto, pois o servidor tem apenas o papel de roteador (e eventualmente filtrador) de mensagens.
    O AO é um modelo para aplicações mais sofisticadas, e enquadra o Community Place mais adequadamente na categoria 4 da taxonomia anteriormente apresentada (dados compartilhados distribuídos, cliente-servidor). A diferença básica com relação ao SSS é que o AO define um "dono" para cada objeto do ambiente, que é quem controla suas atualizações (evitando problemas de acesso concorrente que poderiam existir com o SSS). Voltando à Fig. 13, do lado direito está esquematizado o fluxo da mensagem no modelo AO. O evento do usuário (1) faz com que a mensagem seja enviada ao servidor (2) que a repassa ao AO que gerencia o objeto que sofreu a ação do evento (3). O AO realiza o processamento necessário e envia uma mensagem de volta através do servidor (4) a todos os browsers "interessados" (5), que então executam seus scripts locais (6). A grande vantagem do modelo AO é que, através dos objetos de aplicação (AOs), é possível acrescentar dinamicamente objetos VRML e seus scripts associados a uma cena já existente. Um novo elemento da cena é acrescentado pela criação do AO para gerenciá-lo e pela utilização do protocolo VSAP (Virtual Society Application Protocol), que registra o AO no servidor.
    Com relação à escalabilidade, uma série de características do Community Place contribui para o objetivo de suportar centenas de usuários interagindo no mesmo ambiente:     Finalmente, com relação à percepção dos usuários, o Community Place é bastante abrangente. As pessoas podem ser representadas por algumas formas default (próximas à humana) ou por representações personalizadas, sempre fornecendo noção de presença, posição e orientação. A interação se dá por meio de texto, que aparece como balões de histórias em quadrinhos sobre a cabeça do usuário que "falou". A interação é ainda enriquecida por gestos e expressões faciais para reforçar as emoções. É também possível se tornar inativo quando, embora presente no ambiente, não se deseja ou não se pode interagir com os demais participantes.

4.4. Open Community

    O Open Community [Yerazunis 97] é um projeto desenvolvido pelo MEITCA (Mitsubishi Electric Information Technology Center America), baseado na tecnologia SPLINE (Scalable Platform for Large Interactive Networked Environments), implementada pela própria Mitsubishi. O Open Community é uma biblioteca de software, em C ou Java, projetada para prover os serviços necessários para a construção de ambientes cooperativos multi-usuários. A biblioteca se encarrega de tarefas como comunicação na rede, filtragem por região de interesse, transporte de áudio em tempo-real, transporte de objetos grandes ou complexos (modelos VRML, por exemplo) independentemente da aplicação, dentre outras. Do ponto de vista de uma aplicação executada sobre o Open Community, todos estes serviços são vistos como uma base de objetos compartilhados. A arquitetura do sistema é ilustrada na Fig. 14. A aplicação enxerga a base de dados (World Model) e os métodos de acesso da API; a biblioteca se encarrega da conexão com o protocolo UDP Multicast padrão da Internet.
 

Arquitetura do Open Community
Figura 14: Arquitetura do Open Community [Yerazunis 97].
 
    O mundo virtual criado com o Open Community é particionado em locales [Barrus 96], cada um associado a um endereço multicast. Informações sobre um determinado locale são propagadas apenas por aquele canal multicast. Assim, um usuário precisa apenas monitorar os endereços multicast do seu locale atual e dos locales adjacentes, para onde ele pode eventualmente se mover. Cada locale tem forma, tamanho e sistema de coordenadas próprios, podendo inclusive estar dentro de ou sobreposto a um outro locale. O locale tem também uma lista dos locales considerados adjacentes a ele (para efeito de monitoramento dos respectivos endereços multicast) e as transformações apropriadas para a mudança de sistema de coordenadas quando se move para um locale adjacente. A vantagem do sistema de coordenadas ser local é que é sempre possível obter alta precisão na localização dos objetos, já que nunca se estará muito distante da origem. Além disso, a combinação de locales projetados por pessoas diferentes fica mais fácil, visto que a consistência é local (apenas locales adjacentes precisam ser consistentes entre si; locales distantes são completamente independentes).
    O conceito de locales adjacentes permite inclusive extrapolar a geometria Euclideana, pois dois locales espacialmente distantes podem ser "intermediados" por um terceiro locale, adjacente a ambos, que não precisa representar a distância entre os dois primeiros. Considere, por exemplo, dois prédios localizados em pontos extremos de uma cidade virtual. Com o uso de um terceiro locale, é possível criar uma pequena sala cuja entrada seria em um prédio e a saída no outro. Assim, para se mover de um extremo a outro da cidade, bastaria andar a distância de uma sala.
    O avatar do usuário é uma classe específica da biblioteca, o que o difere dos outros objetos do ambiente. Além disso, há um objeto chamado VisualObserver que estabelece o ponto de vista do usuário. O avatar é definido como sendo a forma como os outros vêem o usuário e o VisualObserver como o local de onde o usuário vê o mundo. A situação normal é fazer com que o VisualObserver acompanhe a cabeça do avatar, mas isso não é obrigatório, podendo ser criadas situações que extrapolam a realidade.

4.5. DWTP

    O DWTP (Distributed Worlds Transfer and communication Protocol) [Broll 97a], [Broll 98] é um protocolo de camada de aplicação para DVEs na Internet, construído sobre protocolos padrões, tais como TCP/IP e UDP/IP (unicast e multicast). Ele surgiu a partir de uma proposta submetida ao VRML Architecture Group para a padronização do VRML 2.0 com suporte multi-usuário [Broll 96]. Como esta não foi a proposta escolhida para a padronização do VRML 2.0, os projetistas do DWTP tiveram de se adaptar e criaram um protocolo independente do conteúdo da aplicação (isto é, que não é limitado a uma versão específica da VRML). Além disso, assim como o Open Community, o DWTP tem por objetivo evitar com que os programadores de aplicações tenham que lidar com as camadas inferiores da rede.
    O DWTP usa o IP Multicast como protocolo de comunicação entre todos os participantes do mundo virtual. Todos os usuários são iguais e podem enviar eventos diretamente aos outros participantes (arquitetura ponto-a-ponto). No entanto, existe uma espécie de servidor, chamado multiuser daemon (MUD), que serve de referência para a conexão de novos usuários e reconexão de usuários que ficaram temporariamente desconectados. O MUD tem uma cópia sempre atualizada do mundo virtual e funciona como um home do mesmo (especificado por um URL). Além desta função, o MUD também é responsável pela supervisão da presença dos usuários conectados e por mecanismos de manutenção de consistência (bloqueio em acessos concorrentes a um objeto, por exemplo). A distribuição de mensagens no DWTP é ilustrada na Fig. 15.
 

distribuição de mensagens no DWTP
Figura 15: Distribuição de mensagens no DWTP [Broll 97c].

    Quando um novo participante deseja se conectar a um mundo virtual, especificado por um URL, ele primeiro se conecta ao MUD por meio de uma conexão TCP/IP, que é confiável (Fig. 16). A descrição atualizada do mundo (em VRML) é então transmitida ao novo participante. No entanto, durante esta fase de transmissão, novas mensagens podem ter chegado ao MUD para novas alterações no mundo. Para evitar inconsistências, o MUD cria uma fila de mensagens e espera até o final da transmissão para ser atualizado, quando então ele também as envia para o novo particpante, que fica consistente com o MUD e demais participantes. O novo participante também recebe do MUD o endereço e porta do grupo multicast onde ele deve se conectar para receber as mensagens de atualização do mundo. Quando ele se conecta a este endereço, a conexão TCP/IP com o MUD é fechada.
 

Conexão de novo participante
Figura 16:  Conexão de novo participante [Broll 97c].
 
    Para reduzir o tráfego na rede e a sobrecarga do MUD, são usados dois tipos de servidores: proxy e relay (Fig. 17).  Estes servidores auxiliares também servem como ponto de acesso para participantes que não possuem conexão IP Multicast. A diferença entre estes dois servidores, é que o proxy também tem uma cópia local do mundo, que assim como a do MUD, é sempre atualizada. Por essa razão, servidores proxy podem agir como servidores de backup do MUD.
 
Servidores Proxy e Relay
Figura 17: Servidores proxy e relay. Pontos de acesso para usuários unicast [Broll 97c].

    A transmissão de áudio e vídeo é feita por grupos multicast adicionais, de modo a não sobrecarregar os servidores (MUD, proxy e relay) e não diminuir a prioridade de mensagens de atualização dos objetos.
     Outro mecanismo usado para diminuir o tráfego de mensagens é dividir os mundos em zonas ou células, de modo que os participantes recebam apenas mensagens sobre o conteúdo de algumas células. O MUD é responsável pela determinação de grupos multicast e portas para as células. Em ambientes com grande número de usuários, diferentes células podem estar localizadas em hosts diferentes, cada um com seu próprio MUD (Fig. 18).
 

Mundo subdividido em células
Figura 18: Mundo virtual subdividido em células [Broll 97c].
 
    Além do seu conteúdo, cada célula deve definir seu hull, que é um volume maior que o da própria célula e serve para definir o local a partir do qual se tem interesse na célula. Em outras palavras, quando um usuário entrar no hull de uma determinada célula, ele deve se conectar ao servidor daquela célula, pois ele está a uma certa proximidade dela, e pode entrar na célula a qualquer momento. Além disso, a representação da célula pode definir a chamada representação externa, que é como os usuários verão o conteúdo da célula quando estiverem fora dela. Em geral, a representação externa é uma representação simplificada do conteúdo da célula (o chamado "ícone 3D").
    Cada usuário é representado por um único identificador para distingui-lo dos demais e está associado a um avatar, que informa presença, posição e orientação. O usuário também define seu estilo de navegação no ambiente e certos parâmetros de interação (por exemplo, área de interação - uma espécie de aura, que limita o número de objetos com os quais ele pode interagir - e área de percepção auditiva). O usuário pode também ter ítens e objetos pessoais. Ambos são objetos de propriedade do usuário, que ele carrega consigo, mas não fazem parte do avatar (compras feitas numa loja virtual, por exemplo). A diferença entre eles é que os ítens são visíveis aos demais usuários, enquanto os objetos pessoais são visíveis apenas ao dono (podem estar numa janela separada, por exemplo) [Broll 97b].

4.6. Outros

    Um DVE "clássico", frequentemente citado na literatura é o MASSIVE (Model, Architecture and System for Spatial Interaction in Virtual Environments) [Greenhalgh 95]. O mecanismo utilizado para facilitar a escalabilidade e controlar a interação entre os participantes é baseado no conceito de aura, o mesmo utilizado no Community Place (a arquitetura deste, por sinal, foi bastante influenciada pelo MASSIVE). Uma característica inovadora do MASSIVE foi a utilização de spatial traders para gerenciar a colisão de auras (indicando possibilidade de interação entre objetos). Para explicar o funcionamento do spatial trader, considere dois objetos de um mundo virtual. Ao entrar no mundo, o primeiro objeto contacta o trader (chamado gerenciador de aura) e declara suas interfaces como serviços que ele oferece (aqui interface é definida como uma combinação de RPCs, atributos e streams). O segundo objeto, entrando posteriormente no mundo, faz a mesma coisa. Cada gerenciador de aura monitora todas as auras de objetos que ele conhece e, detectando colisão, passa as referências das interfaces aos objetos envolvidos, o que permite a eles estabelecer a conexão ponto-a-ponto. Toda a comunicação no MASSIVE é feita via conexões entre pares de interfaces, que provêem um contexto no qual as mensagens podem ser interpretadas (há interface para áudio, texto e imagem). O modelo é, portanto, uma mistura de cliente-servidor (entre os objetos e o gerenciador de aura) e ponto-a-ponto (entre os objetos do mundo). Com relação à percepção dos usuários o MASSIVE é abrangente, permitindo aos usuários definir seus avatars, provendo também alguns padrões que indicam a capacidade de comunicação dos usuários, o que é muito importante em ambientes heterogêneos (usuários com capacidade de áudio tem ouvidos, por exemplo).
    O AVIARY [Snowdon 94] é outro DVE bastante citado na literatura. Ele é baseado na comunicação ponto-a-ponto e na orientação a objetos. Superficialmente, é possível dizer que um ambiente AVIARY é uma coleção de objetos autônomos executados concorrentemente. Todos esses objetos escondem sua implementação sob uma interface externa e dividem um meio de comunicação para troca de mensagens. A representação orientada a objetos tem algumas vantagens sobre a base de dados compartilhada usada no DIVE, por exemplo. Uma dessas vantagens é o fato de objetos proverem unidades convenientes de paralelismo, podendo ser distribuídos entre vários processadores além de possibilitarem balanceamento transparente de execução entre os vários processadores. Além dos objetos de software que implementam objetos do mundo virtual, há objetos especiais para os usuários, para dispositivos de entrada e saída,  para gerenciamento do mundo, detecção de colisão, e gerenciamento dos objetos distribuídos. Embora ainda não tenha aparecido na literatura, a arquitetura do AVIARY tem grande potencial para ser utilizada numa implementação de DVE via CORBA.
    Outro DVE orientado a objetos é o SpaceFusion [Sugano 97]. O SpaceFusion é baseado no modelo cliente-servidor, mas permitindo a existência de vários servidores. Para resolver o problema de sobrecarga dos servidores, uma filtragem de comunicação baseada em regiões é adotada. Os clientes podem se conectar a vários servidores simultaneamente, e as informações dos diferentes servidores são "fundidas" e apresentadas pelo browser. Um exemplo de fusão é ilustrado na Fig. 19: há um servidor com o mapa da cidade e outro servidor com informações sobre o trânsito; o resultado da fusão é a cidade virtual com o trânsito. Há dois elementos básicos no SpaceFusion: entidade e região. Entidades são praticamente todos os objetos da arquitetura e podem enviar e receber mensagens, ter seus próprios comportamentos e migrar para outras regiões. Entidade, portanto, é a unidade de comunicação, comportamento e distribuição do sistema. Apesar da arquitetura com múltiplos servidores, ainda há a necessidade de dividir o mundo em regiões para diminuir o tráfego de mensagens e sobrecarregar menos os servidores. Informações sobre objetos de uma determinada região são enviadas apenas para objetos localizados na mesma região. O interessante no conceito de região é que pode haver mais de uma região ocupando o mesmo lugar no espaço (nesse caso o usuário escolhe qual deseja visualizar) e também é possível implementar o conceito de aura, "colando" uma região a um usuário.

Fusão de duas regiões no SpaceFusion
Figura 19:  Fusão de duas regiões no SpaceFusion [Sugano 97].

   Caminhando em direção a uma futura extensão de VRML com suporte multi-usuário, o VSPLUS [Araki 98] é uma biblioteca de extensão que pretende facilitar a criação de ambientes multi-usuários a partir de ambientes padrões VRML (um único usuário) sem esforço extensivo de programação. Esta biblioteca é implementada para o sistema Community Place e se baseia no conceito de netnodes, que são extensões multi-usuários dos nós VRML. A extensão de um mundo VRML para suporte a vários usuários é feita em duas etapas. Na primeira etapa é escolhido o local na cadeia de eventos (ROUTEs) onde ele será transmitido aos outros usuários. Na segunda etapa, insere-se um netnode no local escolhido, e ele se encarrega de enviar o evento a todos os browsers que compartilham o mesmo mundo virtual (Fig. 20).

netnodes do VSPLUS
Figura 20: Netnode do VSPLUS envia evento aos outros browsers [Araki 98].

    Uma arquitetura em camadas para suporte geral a DVEs na Internet é apresentada em [Wray 98]. A camada inferior é a camada de rede, dividida em servidores de zonas. A zona é a unidade de construção dos mundos, e representa uma coleção de objetos de interesse para os participantes do DVE. Acima da camada de rede se encontra a camada do KNS (Keryx Notification System), usado como meio de comunicação em alternativa ao IP Multicast, usado comumente nos outros DVEs. Acima da camada KNS está o VRML browser, que pode ser dividido em três subcamadas de acordo com a proposta do Living Worlds [LW 97]: MUtech, Living Worlds e mundo VRML. A camada MUtech separa a tecnologia multi-usuário da descrição do mundo virtual. A proposta Living Worlds não se preocupa com a tecnologia utilizada para o suporte multi-usuário, desde que certas restrições semânticas sejam obedecidas. A camada  Living Worlds acrescenta os nós suplementares ao mundo VRML padrão (camada mais alta).
 

5. Internetworked Graphics

    O suporte à exploração colaborativa e visualização da Internet e da Web requer uma integração entre as áreas de computação gráfica e de redes de telecomunicações. O conceito de internetworked graphics [Rhyne 97] descreve a futura junção e dependências entre estas duas áreas de estudo, hoje consideradas disciplinas distintas.
    O conceito de internetworked graphics pode ser visto a partir de seis perspectivas:

    O desenvolvimento da próxima geração de software para a Web requer a implementação efetiva dos conceitos de internetworked graphics. Os desenvolvedores de protocolos de redes devem levar em conta o impacto que a VRML e a visualização interativa terão nos futuros requisitos de latência e banda de passagem. Os desenvolvedores de ferramentas gráficas interativas, por sua vez, precisam entender os padrões e infraestrutura das redes para construírem aplicações colaborativas 3D eficientes.
    Sem a integração dos conceitos proposta pela internetworked graphics, vai ser difícil evitar que surjam novos gargalos e obstáculos para a próxima geração de software para a Web.
 

6. Tele-imersão

    Tele-imersão é definida como uma efetiva combinação de [Tele-imersão 97]:

    As aplicações de tele-imersão exigem avanços na infraestrutura da Internet devido às suas características que requerem alta banda de passagem, baixa latência e comunicações síncronas. Também serão necessários avanços em áreas como processamento/construção de imagens, simulação sensorial (simular o tato, por exemplo) e sincronização de eventos gerados/enviados para participantes geograficamente distribuídos. A tele-imersão é uma das aplicações-alvo da Internet2 [Hanss 97], um projeto envolvendo mais de cem universidades americanas que pretende aprimorar a infraestrutura da Internet para atender as necessidades de uma série de aplicações.
    O objetivo da tele-imersão é tornar os pesquisadores mais produtivos, eliminando as barreiras de tempo e espaço, de modo que eles possam interagir com modelos computacionais e entre eles, síncrona ou assincronamente, sem os atrasos e despesas de viagens convencionais [DeFanti 97].
    A tele-imersão oferecerá um novo paradigma para a comunicação e colaboração entre usuários, estendendo o paradigma da interação "homem/máquina" para interação "homem/máquina/homem".
    À primeira vista, tele-imersão pode ser confundida com os ambientes virtuais compartilhados estudados na Seção 4, mas é um conceito mais avançado que este. Eis algumas diferenças:  
7. Conclusões

    Neste trabalho foram apresentadas algumas tendências que poderão aprimorar a eficiência da interação dos usuários com aplicações na Web. As cinco tendências aqui apresentadas foram escolhidas por aparecerem com cada vez maior frequência em publicações da área. No entanto, interação é um tema bastante abrangente e as tendências aqui apresentadas certamente não são as únicas existentes. Também não é possível afirmar com veemência que alguma(s) dessas tendências se tornará(ão) o padrão para a interação na Web. Tudo o que se pode afirmar é que baseado na tecnologia e na literatura atual, essas tendências têm boas possibilidades de se tornarem peças fundamentais nas futuras interfaces para a Web. Entretanto, até mesmo as tendências podem ser superadas por alguma tecnologia inovadora que nunca foi considerada tendência...
 

8. Referências

[Araki 98] Y. Araki. VSPLUS: A High-level Multi-user Extension Library For Interactive VRML Worlds. VRML 98 Conference. 1998. http://ece.uwaterloo.ca:80/vrml98/cdrom/papers/araki/araki.pdf

[Barrus 96] J. W. Barrus, R. C. Waters and D. B. Anderson. Locales: Supporting Large Multiuser Virtual Environments. IEEE Computer Graphics and Applications, 16(6): 50-57. November 1996.

[Benford 95] S. Benford, J. Bowers et al. User Embodiment in Collaborative Virtual Environments. Proc. of CHI'95 (ACM SIGCHI Conf. on Human Factors in Computing Systems). 1995. http://www.acm.org/sigchi/chi95/proceedings/papers/sdb_bdy.htm

[Bentley 97a] R. Bentley, W. Appelt et al. Basic support for cooperative work on the World Wide Web. Int. J. Human-Computer Studies Vol. 46, pp. 827-846. 1997.

[Bentley 97b] R. Bentley and W. Appelt. Designing a System for Cooperative Work on the World-Wide Web: Experiences with the BSCW System. Proc. of the 30th. Annual Hawaii Intl. Conf. on System Sciences - Vol. IV, pp. 297-306. 1997.

[Broll 96] W. Broll. VRML and the Web: A Basis for Multi-User Virtual Environments on the Internet. Proc. of WebNet'96 (World Conf. of the WWW, Internet & Intranet). 1996.  http://aace.virginia.edu/aace/conf/webnet/html/138/138.htm

[Broll 97a] W. Broll. Bringing People Together - An Infrastructure for Shared Virtual Worlds on the Internet. Proc. of the IEEE WE-TICE'97 (Sixth Intl. Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises), pp. 199-204. 1997.

[Broll 97b] W. Broll. Populating the Internet: Supporting Multiple Users and Shared Applications with VRML. VRML 97 Conference. 1997. http://www.stl.nps.navy.mil/vrml97cd/papers/broll.pdf

[Broll 97c] W. Broll. Distributed Virtual Reality for Everyone - a Framework for Networked VR on the Internet. Proc. of VRAIS'97 (IEEE Virtual Reality Annual Intl. Symposium), pp. 121-128. 1997. http://orgwis.gmd.de/~broll/papers/VRAIS97.ps.gz

[Broll 98] W. Broll. DWTP - An Internet Protocol For Shared Virtual Environments. VRML 98 Conference. 1998. http://ece.uwaterloo.ca:80/vrml98/cdrom/papers/broll/broll.pdf

[Carlsson 93] C. Carlsson and O. Hagsand. Dive - A Platform for Multi-User Virtual Environments. Computer & Graphics, 17(6): 663-669. 1993.

[DeFanti 97] T. DeFanti and M. Brown. Tele-Immersion eliminates the barriers of space and time. WICCS'97 (Workshop on International Collaboration in Computer Science). 1997. http://www.cse.ogi.edu/CSLU/wiccs97/brown_defanti.html

[Dennis 97] A. R. Dennis, S. K. Pootheri and V. Natarajan. TCBWorks: A First Generation Web-Groupware System. Proc. of the 30th. Annual Hawaii Intl. Conf. on System Sciences - Vol. II, pp. 167-176. 1997.

[Greenberg 97] S. Greenberg. Collaborative Interfaces for the Web. In "Human Factors and Web Development", C. Forsythe, E. Grose and J. Ratner (Eds.), LEA Press. 1997. http://www.cpsc.ucalgary.ca/grouplab/papers/97-HumanFactorsWeb.LeaPress/HumanFactors+Web.html

[Greenhalgh 95] C. Greenhalgh and S. Benford. MASSIVE: a Distributed Virtual Reality System Incorporating Spatial Trading. Proc. of the 15th  ICDCS'95 (Intl. Conf. on Distributed Computing Systems), pp. 27-34. 1995. ftp://ftp.crg.cs.nott.ac.uk/pub/papers/DCS95.ps.gz

[Hagsand 96] O. Hagsand. Interactive Multiuser VEs in the DIVE System. IEEE Multimedia, 3(1): 30-39. Spring 1996.

[Hagsand 97] O. Hagsand, R. Lea and M. Stenius. Using Spatial Techniques to Decrease Message Passing in a Distributed VE System. VRML 97 Conference. 1997. http://www.stl.nps.navy.mil/vrml97cd/papers/hagsand/hagsand.pdf

[Hanss 97] T. Hanss. Internet2: Building and Deploying Advanced, Networked Applications. Cause/Effect, 20(2). Summer 1997. http://www.cause.org/information-resources/ir-library/html/cem9722.html

[Ibrahim 97] B. Ibrahim. Use of HTML forms in complex user interfaces for server-side applications. Int. J. Human-Computer Studies Vol. 46, pp. 761-771. 1997.

[Kothari 97] J. Kothari, E. Grossman and S. Mehrotra. Neighborhoods: A Framework For Enabling Web Based Synchronous Collaboration And Hierarchical Navigation. Proc. of the 30th. Annual Hawaii Intl. Conf. on System Sciences - Vol I, pp. 666-675. 1997.

[Lea 97a] R. Lea, Y. Honda and K. Matsuda. Virtual Society: Collaboration in 3D Spaces on the Internet. Computer Supported Cooperative Work: The Journal of Collaborative Computing 6: 227-250. 1997.

[Lea 97b] R. Lea, Y. Honda et al. Community Place: Architecture and Performance. VRML 97 Conference. 1997. http://www.stl.nps.navy.mil/vrml97cd/papers/lea.pdf

[Lee 96] J. H. Lee, A. Prakash et al. Supporting Multi-User, Multi-Applet Workspaces in CBE. Proc. of CSCW'96 (ACM Conf. on Computer Supported Cooperative Work), pp. 344-353. 1996.

[LW 97] Living Worlds working group. Living Worlds specification, Draft 2. 1997. http://www.livingworlds.com/

[Macedonia 94] M. R. Macedonia, M. J. Zyda et al. NPSNET: A Network Software Architecture for Large Scale Virtual Environments. Presence, 3(4). Fall 1994. MIT Press. http://www.npsnet.nps.navy.mil/npsnet0/publications.html

[Macedonia 95] M. R. Macedonia, M. J. Zyda et al. Exploiting Reality with Multicast Groups. IEEE Computer Graphics and Applications, 15(5): 38-45. September 1995.

[Macedonia 97] M. R. Macedonia, M. J. Zyda. A Taxonomy for Networked Virtual Environments. IEEE Multimedia, 4(1): 48-56, Jan-Mar 1997. http://www.npsnet.nps.navy.mil/npsnet0/publications.html

[Mukherjea 97] S. Mukherjea, K. Hirata and Y. Hara. Towards a Multimedia World-Wide Web Information Retrieval Engine. Proc. of the Sixth Intl. World Wide Web Conf. 1997. http://www6.nttlabs.com/HyperNews/get/PAPER3.html

[Palfreyman 96] K. Palfreyman and T. Roden. A Protocol for User Awareness on the World Wide Web. Proc. of CSCW'96 (ACM Conf. on Computer Supported Cooperative Work), pp. 130-139. 1996.

[Rhyne 97] T. M. Rhyne, D. Brutzman and M. Macedonia. Internetworked Graphics and the Web. IEEE Computer, 30 (8): 99-101. Aug. 1997.

[Rice 96] J. Rice, A. Farquhar et al. Using the Web Instead of a Window System. Proc. of CHI'96 (ACM SIGCHI Conf. on Human Factors in Computing Systems), pp. 103-110. 1996.

[Seligmann 97] D. D. Seligmann, C. Laporte and S. V. Bugaj. The Message is the Medium. Proc. of the Sixth Intl. World Wide Web Conf. 1997. http://www6.nttlabs.com/HyperNews/get/PAPER119.html

[Snowdon 94] D. N. Snowdon and A. J. West. The AVIARY VR-system. A Prototype Implementation. 6th ERCIM Workshop, 1994. ftp://ftp.crg.cs.nott.ac.uk/pub/dns/aviary/aviary-ercim94.ps.gz

[Sugano 97] H. Sugano, K. Otani et al. SpaceFusion: A Multi-Server Architecture For Shared Virtual Environments. VRML 97 Conference. 1997. http://www.stl.nps.navy.mil/vrml97cd/papers/sugano.pdf

[Tele-imersão 97] Tele-Immersion - Internet2 Project. http://www.internet2.edu/html/tele-immersion.html

[VRML 97] VRML Consortium. The Virtual Reality Modeling Language Specification. International Standard ISO/IEC DIS 14772-1. 1997. http://www.vrml.org/Specifications/VRML97.

[Waters 97] R. C. Waters and J. Barrus. The Rise of Shared Virtual Environments. IEEE Spectrum, 34(3), March 1997. http://www.meitca.com/opencom/spectrum/

[Woo 94] T. K. Woo and M. J. Rees. A Synchronous Collaboration Tool for World-Wide Web. Proc. of the Second World Wide Web Conference: Mosaic and the Web. 1994. http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/CSCW/rees/SynColTol.html

[Wray 98] M. Wray and R. Hawkes. Distributed virtual environments and VRML: an event-based architecture. Proc. of the Seventh Intl. World Wide Web Conf. 1998. http://www7.conf.au/programme/fullpapers/1836/com1836.htm

[Yerazunis 97] B. Yerazunis and B. Perlman. High Level Overview of Open Community - Comforting Lies. Mitsubishi Electric Information Technology Center America (MEITCA). 1997. http://www.meitca.com/opencom/ov.html