Escolar Documentos
Profissional Documentos
Cultura Documentos
__________________________________________
Prof. Alfredo Lanari de Aragão
Orientador
__________________________________________
Prof. Marco A. Álvares
Coordenador do Curso de Engenharia de Computação
Campo Grande, MS
Dezembro - 2003
Ambiente Colaborativo Utilizando
Realidade Virtual na WWW
2
Resumo
Este projeto tem como objetivo especificar e elaborar um protocolo que permita a
utilização de um Ambiente Virtual Colaborativo (AVC) através da WWW e, com isso, a
interação e colaboração em tempo real entre os usuários presentes no ambiente. Como uma
das principais características da Internet é permitir a comunicação de diferentes máquinas e
arquiteturas ao redor do mundo, tal sistema também deverá partilhar da capacidade
multiplataforma. Por isso será utilizado o modelo de Realidade Virtual (RV) Não-Imersivo,
que permite a utilização de periféricos comuns, baratos, e existentes na maioria dos
computadores atuais como monitores, teclados e mouses. Portanto, este projeto visa
especificar um protocolo para AVC na plataforma WWW, cujo objetivo é facilitar a
cooperação e interação entre pessoas envolvidas em uma mesma atividade.
3
Agradecimentos
Primeiramente, agradeço a Deus por permitir que eu ainda esteja aqui, seja qual for o
seu objetivo; à meus pais, que enquanto estiveram ao meu lado me mostraram o verdadeiro
valor da educação, e com certeza - onde quer que estejam - ainda me guiam de alguma
maneira; à meus familiares, que se tornarem meus segundos pais, me incentivando a continuar
estudando e que, sem os quais, eu talvez nem estaria escrevendo esta monografia; à meus
colegas de classe que muitas vezes me ajudaram a prosseguir com o curso; e à meu orientador
que, desde o começo deste projeto, também soube me guiar mostrando o melhor caminho para
a obtenção de um resultado mais significativo.
À todos vocês,
4
Índice
1 Introdução........................................................................................................................8
5
3.5.4 TCP (Transmission Control Protocol)..................................................45
3.5.5 Máquina de Estado Finito do TCP........................................................46
3.6 Considerações Finais...............................................................................................47
4 Especificação..................................................................................................................49
4.1 Objetivos do Projeto................................................................................................49
4.2 Especificação do Protocolo.....................................................................................49
4.3 Funcionalidades do Protocolo.................................................................................50
4.4 Características de Controle do Protocolo................................................................51
4.5 Mensagens de Controle do Protocolo......................................................................54
4.6 Máquina de Estados Finitos do Protocolo...............................................................58
4.6.1 Conclusão......................................................................................................................
..61
6
Lista de Figuras
7
1.Introdução
No mundo real, muitos tipos de trabalho, lazer ou qualquer interação social envolve
grupos de pessoas com objetivos comuns interagindo umas com as outras, com vários objetos
naturais ou artificiais e com o ambiente nas quais elas estão localizadas. Entretanto, estes
tipos de trabalho envolvem algumas dificuldades como reunir seus integrantes no mesmo
momento e local e a necessidade de visualização e manipulação de grandes volumes de
informações, dependendo da área de atividade do grupo.
Ainda hoje, poucos sistemas de computador são projetados com a finalidade de tornar
mais fácil os trabalhos colaborativos e, atualmente, ainda não existe nenhum protocolo ampla-
mente utilizado para o seu controle e gerenciamento. Sendo assim, a especificação de um pro-
tocolo padrão pode ser muito útil no suporte às mais variadas aplicações colaborativas, pou-
pando assim o tempo despendido pelos projetistas com a especificação dos requisitos de co-
municação individuais de cada aplicação. Além disso, os Trabalhos Colaborativos Auxiliados
por Computador podem ser enriquecidos e se tornar mais eficientes com a utilização de uma
das melhores Interações Homem-Computador atualmente existentes, a Realidade Virtual, que
fornece uma interface mais natural e em tempo real com seus usuários através de um Ambien-
te Virtual Colaborativo.
Portanto, o projeto de um protocolo padrão que forneça todos os requisitos para contro-
lar a comunicação e administração de Trabalhos Colaborativos Auxiliados por Computador
8
utilizando Realidade Virtual, em ambientes multi-plataforma (como a Internet), pode ser con-
siderado muito promissor.
Entretanto, como este tipo de protocolo não permitiria a construção de outras aplicações
colaborativas, o principal objetivo deste projeto se tornou a especificação e elaboração de um
protocolo padrão que forneça o gerenciamento e a comunicação necessária de um sistema co-
laborativo para o suporte às mais variadas aplicações utilizando Realidade Virtual na WWW.
Portanto, este projeto descreve detalhadamente sua especificação de requisitos funcionais,
contendo todo o fluxo de mensagens e a estrutura de controle necessária para o seu gerencia-
mento e funcionamento.
9
2.Interação Homem-Computador e
Realidade Virtual
2.1.Considerações Iniciais
10
2.2.Interação Homem-Computador
11
2.2.1.O Desafio da IHC
As metas da IHC são produzir sistemas funcionais que sejam úteis e seguros. Estas
metas podem ser resumidas como: “Desenvolver ou melhorar a segurança, utilidade,
efetividade, eficiência e usabilidade de sistemas, incluindo computadores” (Preece, 1994).
Neste contexto, o termo “sistema” deriva da teoria de sistemas e não se refere apenas ao
hardware e software, mas ao ambiente completo (incluindo os Ambientes Virtuais), seja isto
uma organização de pessoas no trabalho, em casa ou empenhando atividades de lazer, que
usam ou são afetados pela tecnologia computacional em questão.
12
Usabilidade refere-se à funcionalidade de um sistema ou, em outras palavras, as coisas
que ele pode fazer. Portanto, a usabilidade se torna um conceito chave em IHC, permitindo a
construção de sistemas fáceis de se aprender e utilizar. Melhorar a efetividade (efetuar uma
operação sempre com sucesso) e a eficiência (o quanto uma operação se torna mais veloz e
mais complexa em relação a anterior) são objetivos implícitos e onipresentes. Promover a
segurança em relação a sistemas de computador é de suprema importância no
desenvolvimento de sistemas críticos de segurança. Sistemas de computador fracamente
desenvolvidos podem ser extremamente aborrecedores para os usuários. Mas ao contrário do
que muitas pessoas podem pensar, oferecer diferentes tipos de funções não é necessariamente
o melhor caminho para se promover uma boa usabilidade.
Muitos tipos de trabalhos, lazer ou quaisquer interações sociais envolvem grupos de
pessoas interagindo umas com as outras, com vários objetos naturais ou artificiais e com o
ambiente nas quais elas estão localizadas. O Trabalho Colaborativo Auxiliado por
Computador é agora um importante tópico de pesquisa e existem muitos projetos examinando
o modo com que as pessoas utilizam o e-mail, a vídeo-conferência e outras formas de
sistemas colaborativos (Preece, 1994).
2.2.3.Mudanças Tecnológicas
Para que os computadores sejam completamente aceitáveis, eles precisam ser bem
projetados. Isto não quer dizer que os sistemas devam ser desenvolvidos para acomodar todas
as pessoas, mas que eles devem suprir as necessidades e capacidades das pessoas para as
quais eles são direcionados. Em última instância, os usuários não devem ter que pensar sobre
as complexidades de como usar um computador. O modo de utilização dos computadores
deve ser o mais natural possível para que se torne uma ferramenta útil e ágil no auxílio à
execução de uma determinada tarefa e não um empecilho que atrapalha, tornando mais
complexa, a sua conclusão. Por isso, esforços têm sido feitos para tornar o uso do computador
mais flexível e agradável às necessidades das pessoas.
Donald Norman apud Preece (1994), autor de “A Psicologia das Coisas Diárias” e
“Setas de Direção são as Expressões Faciais dos Automóveis”, catalogou muitos exemplos de
coisas do dia-a-dia que não apresentam uma imagem clara e óbvia para seus usuários. Se
pensarmos na complexidade da maioria dos sistemas de computadores, veremos que o
potencial para o desenvolvimento de IHC fracas é muito alto. Entretanto, Norman identificou
13
dois princípios chaves que ajudam no desenvolvimento de IHC: Visibilidade e
Disponibilidade. Os controles devem ser visíveis, com um bom mapeamento de seus efeitos e
devem também sugerir sua funcionalidade. Isto pode servir para diminuir a complexidade
inerente a grandes projetos, que possuem uma grande quantidade de funções, e permitir uma
segurança mais eficiente em sistemas críticos que podem colocar a vida humana em perigo.
2.2.4.Projeto de IHC
14
“uma linguagem de entrada para o usuário, uma linguagem de saída para a máquina e um
protocolo de interconexão” (Chi apud Preece, 1994).
Empresas de informática perceberam que se melhorassem de alguma forma os
aspectos físicos da interface com o usuário para seus empregados, elas poderiam melhorar
significativamente a sua produtividade. Para explorar esta nova dimensão, um clichê muito
utilizado foi chamar um sistema de “amigável”. Na prática, isto simplesmente significou um
embelezamento das telas para torná-las mais atrativas esteticamente. A maioria dos sistemas
continuava sem satisfazer as necessidades dos usuários e ainda necessitavam que o usuário se
adaptasse ao que mais se pareciam interfaces “hostis” aos usuários.
Por sua vez, pesquisas acadêmicas na área eram direcionadas a como utilizar os
computadores para enriquecer o trabalho e a vida pessoal das pessoas. Em particular, elas
focalizaram-se nas capacidades e limitações dos usuários, ou seja, entendendo o “lado
pessoal” das interações com sistemas de computador. O termo IHC foi adotado em meados da
década de 1980 como um meio descrever este novo campo de estudo. Este termo concorda
que o foco de interesse é maior do que apenas o desenvolvimento de interfaces e sim a todos
os aspectos envolvidos na interação entre usuários e computadores (Preece, 1994).
Um termo recente que caracteriza este campo segue a definição de Acmsigchi apud
Preece (1994): Interação Homem-Computador é uma disciplina direcionada ao
desenvolvimento, avaliação e implementação de sistemas de computador interativos para o
uso humano e para o estudo de todos os fenômenos que os rodeiam.
2.3.Realidade Virtual
A Realidade Virtual (RV) pode ser definida como uma técnica avançada de Interface Ho-
mem-Computador que permite ao usuário navegar e interagir em um ambiente sintético tridi-
mensional gerado por computador (Burdea, 1994). Ela classifica-se, quanto à forma de
interação, em dois tipos, segundo Machado e Waslawick apud Silveira et al. (2001): Imersiva
e Não-Imersiva. Na Realidade Virtual Imersiva são utilizados acessórios como luvas e HMDs
(Head-Mounted Displays – Capacete de Visualização) com sensores de posicionamento
tridimensionais de modo que o usuário seja completamente envolvido pelo Ambiente Virtual.
A Realidade Virtual Não-Imersiva, por sua vez, caracteriza-se pela utilização de
equipamentos interativos mais comuns e menos sofisticados. Monitores de vídeo são usados
15
para a visualização do Ambiente Virtual. Dispositivos tradicionais de entrada, como o mouse
e o teclado, servem para que o usuário possa interagir com este ambiente.
Segundo Costa (2001), vários autores como Pantelidis e Stuart acreditam que a explora-
ção da RV apresenta inúmeras vantagens de uso em relação a outras tecnologias: provê uma
interface que gera um alto nível de motivação; apresenta recursos que ilustram a compreen-
são de conceitos abstratos; permite a observação de cenas em diferentes distâncias e ângulos;
oferece oportunidade de vivência de situações de maneira individualizada; encoraja a partici-
pação ativa do usuário; permite a participação de pessoas com incapacidades físicas ou men-
tais; disponibiliza recursos para que o usuário pratique procedimentos que serão realizados
posteriormente no mundo real; propicia um ambiente motivador para a aquisição de conheci-
mentos e aprendizagem; oferece possibilidades de entretenimento e diversão; possui caracte-
rísticas que facilitam o estudo do desempenho humano e suas capacidades perceptuais e mo-
toras.
Em função do elevado potencial para o uso nas mais variadas atividades da sociedade
como pesquisa, treinamento, negócios e lazer, a RV pode ser considerada bastante promissora
(Silveira et al., 2001).
2.3.1.Ambientes Virtuais
Kalawsky apud Junior (2001) definiu Ambiente Virtual (AV) como sendo experiências
sensórias sintéticas em um ambiente diferente do ambiente físico. Com a RV é possível criar
uma interface ou um AV que permita a manipulação de objetos por computador da mesma
maneira que seriam manuseados no mundo real. Assim, o conhecimento intuitivo do usuário
a respeito do mundo físico pode ser transferido para manipular o AV (Meiguins et al., 2001).
Além disso, o AV pode ser uma réplica da realidade obedecendo todas as suas regras – as leis
da física, por exemplo; como pode ser, também, uma realidade alternativa construída para
facilitar determinadas ações e que não tem qualquer compromisso em obedecer as regras da
natureza.
Quando um AV é visitado, o participante é representado por um avatar, que é uma
manifestação visível do usuário no ambiente - Roehl apud Meiguins et al. (2001). A
utilização do avatar, com o qual o usuário possa interagir, é capaz de levá-lo a participar
melhor do AV tornando a experiência mais excitante e realista. Também aprimora a
16
capacidade de imersão do usuário no ambiente e o conduz a um melhor sentimento de
presença, ainda que não esteja utilizando um ambiente imersivo.
Os termos Ambiente Virtual e Realidade Virtual são atualmente usados para referenciar
uma variedade de estilos de interação. Os termos que são normalmente usados para referenci-
ar tais estilos devem seguir, segundo Preece (1994), três fatores em comum:
i. Senso de Presença Física Direta: Sugestões sensórias são criadas pela tecnologia
para dar ao usuário o forte senso subjetivo de “presença física” e “experiência
direta”. Estas sugestões podem ser visuais, auditivas, táteis (com o senso de to-
que ou força no corpo) ou alguma combinação entre eles.
ii. Sugestões Sensórias Tridimensionais: O sistema explora os sensos da visão, au-
dição e tato e a informação, em ao menos um destes canais, é usualmente apre-
sentada em três dimensões.
iii. Interação Natural: Tipicamente, sistemas de RV permitem que objetos criados
por computador sejam manipulados usando gestos similares àqueles que poderi-
am ser usados para manipular objetos reais: pegar, andar ao redor, jogar, etc.
De acordo com Preece (1994), uma das formas mais comuns de AVs atuais requerem
que o usuário vista uma ou mais datagloves (luvas com sensores 3D) e um par de displays
(HMD) construídos de forma especial para serem presos à cabeça. A Figura 1 mostra estes
dois tipos de dispositivos.
17
lizando-se o HMD em um sistema deste tipo, o usuário entra em um ambiente tridimensional
e colorido que ocupa todo o seu campo de visão (algumas versões mais caras oferecem dis-
plays de alta resolução).
Tipicamente, pode-se começar a investigar o ambiente gerado por computador girando
a cabeça e fisicamente movendo-se. Com a utilização do dataglove, uma mão virtual pode ser
vista no lugar onde sua mão real deveria estar e pode imitar todos os movimentos de sua mão
verdadeira. Dependendo da precisão do software de reconhecimento de gestos pode-se, mais
ou menos confiantemente, pegar objetos virtuais e manipulá-los no AV. Em muitos sistemas,
fazendo-se o gesto de uma arma na direção que se deseja ir permite que o usuário “voe” na-
quela direção. Muitos outros estilos de RV estão disponíveis, como por exemplo, interfaces de
auditórios virtuais tridimensionais.
Uma técnica recente e relativamente barata, de acordo com Wenzel apud Preece
(1994), permite a utilização de sons virtuais localizados precisamente no AV tridimensional.
A aparente posição da fonte de som estacionária parece fixa no espaço quando o usuário se
move ao redor. Sons virtuais 3D podem ser muito efetivos, particularmente com a combina-
ção do HMD e datagloves descritos anteriormente.
Tarefas onde sons virtuais podem ser particularmente efetivos incluem a localização
de objetos móveis, uso de fontes sonoras como meio de navegação e localização no AV, a to-
mada de consciência das atividades de outras pessoas no AV e a tomada de consciência dos
eventos que acontecem no AV fora do campo de visão e atenção imediata do usuário. Sons
virtuais 3D podem por eles mesmos, por exemplo, permitir que pilotos de aviões se tornem
diretamente conscientes da aproximação de outro avião de qualquer direção numa esfera ao
redor de suas cabeças.
Um dos poucos AV que tem sido utilizados sistematicamente e avaliados por um ex-
tenso período de tempo é o projeto GROPE (utilizado para se entender as interações molecu-
lares), associado a Fred Brooks da Universidade da Carolina do Norte. Ao contrário de muitos
sistemas de RV bem-conhecidos, este sistema se foca no senso do tato, ou seja, o senso relaci-
onado ao toque. O GROPE permite aos cientistas a sensação direta em três dimensões de for-
ças elétricas simuladas envolvidas na tentativa do ajuste das moléculas em espaços vazios de
outras moléculas. O encontro das soluções para estes problemas pode ser muito importante no
projeto de novas drogas e na resposta para muitas questões da biologia molecular.
18
Utilizando-se um Ambiente Virtual Colaborativo (AVC), com técnicas de Trabalho
Colaborativo Auxiliado por Computador (descritos no próximo capítulo), é possível que
usuários separados geograficamente se comuniquem e interajam um com o outro em um
ambiente compartilhado interconectado por redes de computadores. Estes AV multiusuários
podem ser classificados, segundo Kilmer apud Meiguins et al. (2001), em:
I. Centralizados: Os usuários compartilham exatamente a mesma cópia do AVC
que fica localizada no servidor, ou seja, eles recebem informações sobre o
ambiente através de um servidor central no qual o AVC está inserido;
II. Distribuídos: Os usuários compartilham o AVC através de cópias do ambiente em
suas próprias estações de trabalho, por isso não é necessária a contínua
comunicação com o servidor para o recebimento de informações sobre o AVC.
Pode ser dividido em:
i. Replicado (para pequenos ambientes): Cada usuário mantém uma
cópia exata de todo o AVC em sua estação de trabalho. Todas as
mudanças praticadas pelos usuários devem ser comunicadas aos
outros usuários através de broadcast.
ii. Particionado (para grandes ambientes): No modelo particionado,
cada estação de trabalho dos usuários se torna um servidor para o
AVC, mas fica responsável apenas por uma de suas partes. Como o
usuário pode navegar no AV, ele poderá penetrar em outras regiões,
de forma que o servidor deverá receber uma réplica da região onde
ele se encontra. Assim, cada máquina encontra-se também cuidando
de uma região fora da sua parcela, a parcela onde o usuário está
localizado no momento. Se existirem vários usuários em uma mesma
região, esse grupo de usuários receberá uma cópia dessa região, e
suas atualizações, através de multicast.
De acordo com Teixeira e Ipólito apud Meiguins et al. (2001), existem algumas técnicas
desenvolvidas para minimizar o tráfego de mensagens na rede sobre as atualizações do AV
que são as chamadas dead reckoning (no qual atualizações sobre o AVC são enviadas aos
usuários somente quando elas realmente existirem) e filtragem de dados (no qual as
atualizações sobre o AVC são enviadas somente aos usuários que realmente necessitam
visualizar tais alterações).
19
Podem ser produzidas muitas aplicações em AVCs, incluindo jogos, sistemas de
suporte à decisões em grupo, salas de encontro, conferências e treinamento remoto. Um
exemplo de projeto bastante influente na área de AVCs foi o DIVE (que provê um ambiente
de desenvolvimento geral), desenvolvido pelo Swedish Institute of Computer Science (SICS),
que resultou em um AVC disponível livremente e que foi utilizado muldialmente como base
para outros projetos (Junior, 2001).
Dado uma especificação de um AV e poder computacional suficiente, é possível a prin-
cípio visualizá-lo de qualquer ponto de vista a um nível de detalhamento quase fotográfico.
Entretanto, isto requer uma computação intensiva e pode tomar um bom tempo. Para possibi-
litar a visualização em tempo real de um AV, várias simplificações estilo cartoon são geral-
mente adotadas. Por exemplo, texturas e sombras podem ser ignoradas, polígonos podem ser
usados ao invés de curvas e o número de objetos pode ser mantido muito limitado.
Estudos tenderam a sugerir que a Latência de Visualização (tempo de atualização de
uma imagem em resposta a um movimento) é mais importante para o sentimento de presença
do usuário do que visualizações com altas resoluções e detalhes. Conseqüentemente, ele pode
aceitar uma resolução média, se este for o preço para uma rápida atualização da imagem.
Outra causa evitável da latência são os dispositivos de rastreamento tridimensionais len-
tos e sua quantidade. Devem ser utilizados no mínimo dois dispositivos de rastreamento 3D:
um para o HMD e outro para a luva. Conseqüentemente, a menos que alguns experimentos no
AV realmente necessitem das duas mãos, o sistema terá um melhor tempo de resposta usan-
do-se apenas um HMD e uma dataglove.
2.4.Considerações Finais
20
pode ser feito), para se adequar às necessidades dos usuários em um ambiente de trabalho na-
tural. No nível físico, isto significa selecionar os dispositivos de entrada mais apropriados
para tarefas de entrada (como teclado e mouse) e igualmente os dispositivos de saída mais
apropriados para tarefas de saída (como vídeo, som, texto e gráfico). Isto também significa
decidir pelo melhor estilo de interação (como formulários, linguagem natural, Multimídia e
Realidade Virtual).
Assim como são conhecidas as características da tecnologia, também são essenciais a
compreensão da psicologia humana e as características particulares dos usuários como habili-
dades e idades. Algumas decisões também podem ser tomadas em relação ao ambiente no
qual o sistema irá ser usado em termos de atributos físicos como espaço e luz; aspectos sociais
para fazer com que as pessoas interajam ou compartilhem tarefas; e aspectos organizacionais
como hierarquias e diferentes papéis de trabalho.
Por isso, a IHC é uma área de bastante influência em qualquer tipo de trabalho envol-
vendo seres humanos e computadores e, portanto, também é essencial para um bom projeto de
sistemas colaborativos que permitem a interação e comunicação entre diferentes usuários.
A RV, e seus benefícios, esta se tornando cada vez mais conhecida, porém sistemas
imersivos ainda têm custo elevado tornando sua utilização restrita. Se um produto é
tecnicamente viável, e satisfaz uma certa necessidade do consumidor, então ele irá se
proliferar inexoravelmente. Isto aconteceu com os computadores e é possível dizer que o
mesmo se aplicará aos sistemas de RV (Burdea, 1994).
Outro aspecto é que o progresso tecnológico é “neutro”, ou seja, cabe a nós aplicar as
descobertas para o benefício da humanidade ou para a sua destruição. Exemplos são
abundantes, mas o “duplo” uso da energia atômica parece ser bastante persuasivo. Portanto,
este é um motivo para analizar nossas responsabilidades com respeito às novas tecnologias
em RV.
Muitos sistemas colaborativos são destinados a plataformas e organizações particulares.
Em contraste, a Internet oferece uma infra-estrutura globalmente acessível e independente de
plataforma. Não surpreendentemente, muitas pessoas estão olhando em sua direção como uma
plataforma potencial para um trabalho colaborativo mais rico. Entretanto, ainda não está claro
qual tipo de protocolo, topologia e tecnologia deve ser usada para permitir sua utilização.
21
3.Trabalho Colaborativo Auxiliado por
Computador
3.1.Considerações Iniciais
22
Muitos tipos de trabalho envolvem pessoas trabalhando em conjunto e, portanto, se in-
tercomunicando. As organizações, por sua natureza comercial e empreendedora, acreditam na
cooperação entre as pessoas para que alcancem os melhores resultados possíveis. Ainda hoje,
poucos sistemas de computador são projetados com a finalidade de tornar mais fácil o traba-
lho colaborativo. Portanto, o projeto de computadores e interfaces para facilitar o trabalho em
grupo é bastante promissor.
A integração de textos, imagens, animações, áudio e vídeo sincronizados e interdepen-
dentes em sistemas computacionais interativos é comumente denominada Multimídia, que
configura, na verdade, uma nova mídia. A utilização da Multimídia vem se difundido rapida-
mente e tem sido objeto de estudo de diversas pesquisas (Chaves, 1991). Um exemplo do po-
der da Multimídia é a vídeo-conferência, que pode facilitar trabalhos colaborativos permitindo
que usuários remotos possam se comunicar de forma tão natural quanto usuários locais.
O processamento distribuído fornece um maior aprofundamento para o processamento
computacional. Computadores autônomos interligados por rede são amplamente utilizados
para o processamento local, para suportar a comunicação entre usuários e para promover aces-
so a facilidades como o compartilhamento de recursos. Entretanto, não existe nenhum sistema
único principal. A interação é mais uma forma de comunicação do que uma colaboração
(Sloman, 1994). Os Sistemas Distribuídos são essencialmente uma extensão destes sistemas
de rede. Eles também podem ser compostos por um número de processadores autônomos de
propósitos gerais interconectados por rede, mas é esperado que a interação inclua algum tipo
de colaboração. Além disso, os usuários de computadores, as informações que eles necessitam
e fornecem e as próprias aplicações estão, na maioria das vezes, fisicamente distribuídas.
Portanto, os Sistemas Distribuídos podem permitir a construção de um AVC distribuído
com recursos Multimídia (em conjunto com a RV) para permitir a visualização e manipulação
de grandes quantidades de informações à seus usuários remotos - recurso chave para o desen-
volvimento de aplicações de Trabalho Colaborativo Auxiliado por Computador.
23
é facilitar a comunicação e a produtividade em grupo. A atual infraestrutura de estações de
trabalho interconectadas, e sua disponibilidade de comunicação de áudio e vídeo, torna mais
fácil às pessoas cooperarem e atravessarem o tempo e espaço. Deste modo, a conectividade da
rede e a integração Multimídia das estações permitem que os usuários utilizem ambientes de
CSCW.
Em CSCW, é possível identificar quatro importantes características, segundo Steinmetz
(1995): o tempo, a distribuição geográfica dos usuários, a escala de usuários e o controle do
sistema. O modo de interação relacionado ao tempo pode ser: assíncrono (que ocorre em dife-
rentes momentos) ou síncrono (que ocorre no mesmo momento); a distribuição geográfica
pode ser: local, quando os usuários estão localizados no mesmo ambiente (como uma sala), ou
remota, quando eles estão em diferentes localizações (como diferentes salas ou prédios); a es-
cala de usuários refere-se à quantidade de usuários que o sistema suporta no mesmo instante;
e o controle do sistema refere-se a todas as regras utilizadas pelo sistema para controlar o
acesso ao ambiente colaborativo por mais de um usuário no mesmo instante. O controle du-
rante a colaboração pode ser dividido em:
i. Centralizado: Significa que há um administrador que controla o trabalho cola-
borativo e cada membro do grupo.
ii. Distribuído: Significa que cada membro do grupo tem o controle de suas pró-
prias tarefas em um trabalho colaborativo e existem protocolos de controle dis-
tribuídos para permitir uma colaboração consistente.
Os sistemas de comunicação em grupo também podem ser divididos em:
i. Sistemas de Colaboração Transparente: São aplicações existentes (como um
processador de texto) estendidas para a colaboração. Por exemplo, alguns novos
sistemas de edição de textos são sistemas de colaboração transparente porque
um único editor de texto foi expandido para edições simultâneas de um docu-
mento compartilhado entre vários usuários.
ii. Sistemas Exclusivos de Colaboração: São aplicações construídas exclusiva-
mente para o CSCW. Por exemplo, um sistema de conferência é um sistema ex-
clusivo de colaboração.
Na ausência de aplicações projetadas especificamente para serem usadas por várias pes-
soas no mesmo instante, sistemas de janelas compartilhadas permitem que aplicações monou-
suário, como os processadores de texto, sejam executadas em uma única estação de trabalho e
visualizadas por qualquer número de estações. Para permitir que os usuários tenham o contro-
24
le da aplicação, o sistema de janela compartilhada pode prover um mecanismo de controle de
acesso. Este mecanismo pode ser escolhido pelo grupo de usuários (Greenberg apud Preece,
1994), ou ser imposto pelo sistema.
25
Além disso, um crescente número de pesquisadores acredita que a comunicação espon-
tânea e informal é tão importante quanto à comunicação formal, se não for mais importante
(Preece, 1994). Por exemplo, pessoas no trabalho podem ter a chance de se encontrar casual-
mente e aproveitar para trocar informações, resolver problemas ou identificar oportunidades
de um modo não-planejado. Este tipo de comunicação acidental é agora reconhecido como
um aspecto importante do ambiente de trabalho. Portanto, o projeto de sistemas de CSCW,
utilizando RV, também deve oferecer recursos que permitam uma comunicação informal en-
tre seus participantes.
Quanto mais pessoas existirem, existirão mais oportunidades de encontros informais.
Entretanto, alguns pesquisadores estão desenvolvendo sistemas CSCW com a intenção de
promover oportunidades para encontros informais à distância. Por exemplo, o ambiente
RAVE, da Xerox (Boming e Travers apud Preece, 1994), permitem transmissões de áudio e
vídeo entre os trabalhadores de diferentes escritórios. A privacidade pode ser preservada pela
desabilitação de câmeras e microfones do escritório, pelos usuários, a qualquer momento.
26
em direção a componentes re-utilizáveis. O groupware deve ter uma arquitetura plug-and-
play (Steinmetz, 1995). Também, o suporte para o desenvolvimento colaborativo durante a
Engenharia de Software deve ser do mais alto nível.
As Abstrações compartilhadas e as Protocolos Padrões precisam ser desenvolvidos para
acomodar a heterogeneidade. A arquitetura Rendezvous, da Bellcore, promove uma solução
parcial para abstrações gráficas compartilhadas (Steinmetz, 1995). Ela é baseada em uma abs-
tração centralizada que coleta a informação comum a todos os usuários em um único espaço.
Cada usuário tem sua visão pessoal da informação. Há uma ponte de ligação entre cada visão
e a abstração. As ligações são responsáveis por manter a consistência entre cada visão e a abs-
tração. A Figura 2, de Steinmetz (1995), mostra a abstração compartilhada de diferentes vi-
sões pessoais em um gráfico.
27
especificada para descrever o objeto que é processado pelos serviços integrados na arquitetura
da Internet (Steinmetz, 1995).
3.3.Multimídia
Como uma disciplina que oferece subsídios para a construção de sistemas colaborativos
mais ricos e eficientes, como os AVC utilizando RV, a Multimídia deve ser estudada à parte.
O termo Multimídia refere-se à apresentação ou recuperação de informações que se faz, com
o auxílio do computador, de maneira multisensorial, integrada, intuitiva e interativa (Chaves,
1991). No aspecto multisensorial, mais de um sentido humano está envolvido no processo,
fato que pode exigir a utilização de meios de comunicação que, até há pouco tempo, raramen-
te eram empregados, como sons (voz humana, música, efeitos especiais), fotografias (ima-
gem estática), vídeos (imagens em movimento), animações (desenho animado), gráficos e tex-
tos (incluindo números, tabelas, etc.). Portanto, a RV, integrada com imagens (construídas a
partir da Computação Gráfica), sons, além de um rico meio de interação com o computador,
pode ser considerada pertencente à disciplina Multimídia.
No aspecto integrado, os meios de comunicação mencionados não são meramente justa-
postos, mas formam um conjunto orgânico sob a coordenação do computador. Na verdade, a
integração, hoje, é tal que não é necessário que tenhamos, ao lado do computador, um apare-
lho de televisão especial para vermos as imagens fotográficas e vídeos: elas são exibidas, em
cores e em alta resolução, na tela do monitor do próprio computador. O áudio, por sua vez,
também dispensa equipamento de amplificação mais sofisticado, podendo ser ouvido através
do alto-falante do próprio computador.
No aspecto intuitivo, existem pelo menos duas necessidades, segundo Chaves (1991):
i. Que a informação seja apresentada ou recuperada na forma mais adequada ao
seu conteúdo, usando-se, para isso, os meios de comunicação mais apropriados;
ii. Que a forma de contato entre o usuário e o material a ser apresentado ou recupe-
rado seja tão natural quanto possível, de modo a garantir a facilidade do uso, a
eficácia da apresentação ou recuperação da informação, a efetividade da sua
compreensão e a eficiência de todo o processo.
No aspecto interativo, a Multimídia não é apenas uma maneira de apresentar informa-
ções ao usuário, como se ele fosse seu mero recipiente passivo, mas sim uma forma de o
28
usuário interagir ativamente com as informações buscando-as, recuperando-as, interligando-as
e construindo com elas novas informações, como no uso da RV.
Em geral, o potencial do computador é sub-utilizado. Uma maneira mais eficiente de
sua utilização seria usar a Multimídia para permitir que o usuário se transforme de um simples
observador passivo da apresentação da informação em um participante ativo na sua busca e
recuperação, de um mero recebedor de sons, imagens e textos, em um manipulador e proces-
sador de informações, que segundo Chaves (1991), entre outras coisas:
i. Decide a seqüência em que a informação vai ser apresentada ou recuperada e o
seu próprio esquema de navegação pela informação;
ii. Determina o ritmo e a velocidade da apresentação ou recuperação da informa-
ção;
iii. Controla repetições, avanços, interrupções, sempre podendo retomar onde parou
da vez anterior;
iv. Estabelece associações e interligações entre informações diversas, mesmo que
de natureza diferente (textos, imagens e sons, por exemplo), progredindo de um
assunto ao outro, ou saltando de um meio ao outro, sem perder "o fio da meada";
v. Introduz marcações e anotações nos textos e imagens, bem como comentários ao
material lido, visto e ouvido, podendo também realizar cálculos com informa-
ções numéricas eventualmente inseridas nos textos;
vi. Define os momentos em que, se desejar, pode avaliar seu conhecimento, deter-
minando, assim, se já possui as informações de interesse.
É um conjunto de características como esse que normalmente identifica a interatividade
de uma experiência (Anderson apud Chaves, 1991). É desnecessário frisar que se pode ter
Multimídia com maior ou menor grau de interatividade. De qualquer forma, é a possibilidade
de interação com informações representadas por mídias que não são tradicionalmente interati-
vas (fotografia, vídeo, música, voz gravada) que vem atraindo as pessoas para a Multimídia. E
é o fato de que esses meios de comunicação estão agora associados ao computador que os tor-
na interativos, conforme Steinberg apud Chaves (1991).
Na maioria das aplicações, os usuários do sistema trabalham sem interação uns com os
outros. Entretanto, a Multimídia permite o desenvolvimento de aplicações na qual os usuários
29
podem interagir uns com os outros em um mundo simulado em 2D ou 3D, através da RV. Um
exemplo comum é a vídeo-conferência e os AVC, que permitem substituir encontros físicos
por “encontros virtuais”.
Um exemplo de um sistema colaborativo de vídeo-conferência é o Auditorium da Pla-
ceware Corporation. O sistema é escrito em Java e, portanto, é portável para muitos ambien-
tes. O Auditorium é acessado via um web browser equipado com Java e um plugin de áudio.
Os usuários podem acessar o encontro virtual tanto como palestrante como parte da platéia.
Os membros da platéia vêem um console que tem um gráfico mostrando os outros membros
da platéia. O console também tem áreas de texto para a escrita de comentários para outros
membros da platéia ou para o palestrante. O console do palestrante tem facilidades de apre-
sentação e de tomadas de decisões. As facilidades de apresentação incluem suporte como a
mostra de slides e desenhos à platéia. O suporte a tomada de decisões incluem facilidades
como apurar votos da platéia ou fazer perguntas de múltipla escolha e tabular os resultados de
forma on-line.
O Auditorium é um exemplo de sistema de vídeo conferência onde os usuários acessam
servidores de vídeo que controlam a conferência. Um projeto alternativo pode ser baseado na
adaptação da vídeo-conferência ponto-a-ponto, onde cada participante envia o vídeo a todos
os outros participantes da conferência (técnica chamada de broadcast) e escuta a todos os
participantes por meio de diferentes canais. Entretanto, a crescente complexidade de se utili-
zar múltiplos canais de comunicação e um controle distribuído da conferência torna o sistema
menos escalável do que sistemas de conferência que utilizam um servidor de vídeo centraliza-
do. Um servidor pode também fornecer características adicionais, como a manutenção de um
log da conferência, o que é difícil com sistemas puramente ponto-a-ponto.
A baixa latência (tempo de execução) é uma necessidade adicional significativa de apli-
cações de vídeo-conferência. Se a latência para a entrega do vídeo é alta, diferentes membros
da platéia podem ver o vídeo em tempos significativamente diferentes, levando à confusão.
Considere, por exemplo, o caso onde o usuário B recebe a apresentação significantemente de-
pois do usuário A. Durante a apresentação, o usuário A pode fazer um comentário da apresen-
tação para o usuário B. Se a latência de entrega do vídeo para o usuário B é alta, o usuário B
poderá ver o comentário do usuário A antes de ver a parte da apresentação que o comentário
diz respeito.
Para suportar a vasta diversidade de aplicações Multimídia, os servidores Multimídia
precisam satisfazer muitas exigências. Estas exigências são impostas não somente pela aplica-
30
ção, mas também pelos objetivos do negócio, para um desenvolvimento específico e com con-
figurações arquiteturais e carga de trabalho específica. Entretanto, para compilar uma lista
completa destas exigências, nós iremos considerar as exigências do ponto de vista do projeto
de aplicações Multimídia e negócios que operam servidores Multimídia com configurações
arquiteturais definidas pelos projetistas dos servidores.
Sensibilidade ao Tempo
31
para escalonamento eficiente de discos, buffers de memória e outros recursos do sistema (Si-
taran, 2000).
Algumas aplicações podem requerer a entrega de múltiplos fluxos de áudio e vídeo, o
que significa que a entrega dos vários fluxos deve ser sincronizada. Portanto, aplicações cola-
borativas podem requerer baixa latência de entrega.
Interfaces Abertas
32
dos. As capacidades do servidor incluem, em resposta as requisições dos clientes, composição
da apresentação e fluxos de segmentos de mídia via um ou múltiplos fluxos de recuperação.
3.4.Sistemas Distribuídos
33
O compartilhamento de recursos é a principal motivação para a construção de SD. Re-
cursos podem ser administrados por servidores a acessados por clientes ou podem ser encap-
sulados como objetos e acessados por outros objetos de clientes. A Internet é um bom exem-
plo de compartilhamento de recursos.
Os SD permitem uma estrutura mais geral e modular para emparelhar a estrutura da
aplicação e as necessidades dos usuários; e assim permitem também o uso de seu potencial
para construir extensões logo que as necessidades surgem. Esta flexibilidade gera benefícios
no custo; como foi mencionado anteriormente, um dos principais benefícios é a habilidade de
suportar o compartilhamento de recursos e serviços: recursos caros podem ser acessados pela
rede e compartilhados entre os usuários do sistema.
O principal desafio é promover esses benefícios de uma maneira transparente e robusta.
A transparência refere-se à capacidade que os recursos e serviços têm de permitir que o
usuário ou o programador da aplicação não fique ciente de sua distribuição. Outros desafios,
que surgem na construção de SD, são: a heterogeneidade de seus componentes, a abertura
(que permite que novos componentes sejam adicionados ou trocados), a segurança, a escalabi-
lidade (habilidade de trabalhar bem quando o número de usuários aumenta), a tolerância à fa-
lhas, a concorrência entre componentes e a transparência. A seguir são citados três exemplos
de SD:
i. A Internet (uma grande coleção de diferentes tipos de computadores interco-
nectados mundialmente);
ii. Uma Intranet (uma porção da Internet administrada por uma organização); e
iii. A computação móvel e ubíqua (por exemplo, laptops, telefoneis móveis e dis-
positivos vestíveis).
Os potenciais benefícios oferecidos pelos SD são muitos. Alguns procuram explorar seu
potencial para melhorar a disponibilidade do sistema pelo uso de replicação e remoção de
pontos de falhas. Outros procuram um ganho de performance melhorando o tempo de resposta
do processamento local e/ou o throughput pelo uso do processamento paralelo.
Para se utilizar uma simulação de RV em tempo real é necessário fazer uma distribuição
da carga de processamento, ou seja, dividir tarefas entre as várias estações-de-trabalho se co-
municando via rede (Burdea, 1994), como por exemplo, utilizar as próprias máquinas dos
34
usuários para o processamento das imagens locais de seu ponto de vista do AV, e não ficar
completamente dependente de que algum servidor central (máquina responsável pelo controle
da simulação) que lhe forneça estas imagens processadas, além de estar responsável pelo con-
trole da simulação distribuída. A distribuição em rede tem a vantagem de usar, na simulação,
os computadores existentes sem a necessidade de se adquirir novas estações-de-trabalho dedi-
cadas. Outra vantagem é a possibilidade de computadores remotos acessarem e participarem
da simulação. Isto, portanto, torna possível utilizar simulações multi-usuário, e portanto cola-
borativas, em RV.
Um problema relacionado aos SD e à RV é a necessidade da continuidade da simulação
caso a comunicação for interrompida. A simulação não deve ser completamente interrompida
se acontecer algum problema com uma das múltiplas máquinas do sistema de RV, mas deve
continuar nas outras máquinas remanescentes (Burdea, 1994). Tal problema foi enfrentado
pelo simulador do exército, chamado SIMNET, que tinha 200 servidores distribuídos mundi-
almente. A solução foi o “dead reckoning”, ou continuação local da simulação, baseada na
aproximação premeditada das ações e localizações dos outros participantes. A desvantagem,
neste caso, é a falta de precisão das posições.
Existem muitas similaridades entre os banco-de-dados “cliente-servidor” e a RV distri-
buída, sendo que os AV podem ser considerados como banco-de-dados, acessíveis em tempo
real (Pimentel e Blau apud Burdea, 1994). Ambos utilizam o conceito “cliente-servidor”. O
servidor é a máquina central que coordena a maioria das atividades da simulação. Ele tem a
responsabilidade de manter o controle de todos os objetos virtuais na simulação. Processos
clientes controlam a simulação local, a interação com ferramentas de Entrada/Saída e executa
a renderização (processo de construção de imagens) dos gráficos.
No caso onde os próprios servidores estão distribuídos, cada servidor coordena a simu-
lação (e seus clientes) em diferentes máquinas. A comunicação entre os servidores deve ser
minimizada para não sobrecarregar a rede, e para permitir uma simulação colaborativa em
tempo real. Isto significa que uma quantidade mínima de mensagens deve ser enviada (por ex-
emplo, apenas mudanças na posição ou criação/destruição de um objeto virtual).
Problemas adicionais surgem quando servidores não estão “emparelhados” em um mes-
mo poder computacional. Neste caso, o servidor mais rápido irá mandar muitas mensagens
(correspondendo às mudanças de estado da RV), e o servidor mais lento irá perder muito tem-
po lendo estas mensagens ao invés de coordenar a simulação local. Como resultado, as latên-
cias do servidor mais lento são aumentadas cada vez mais. Em um sistema de dois usuários,
35
os dois servidores podem ser configurados para reduzir o número de conjunto de dados envia-
dos pelo servidor mais rápido. Outra possibilidade para reduzir a latência na rede é simples-
mente escolher o mesmo tipo e modelo de máquinas como servidores em ambos os lados. In-
felizmente, isto não é prático em grandes sistemas multi-usuário.
Como os SD permitem a colaboração multi-usuário, eles são requisitos fundamentais
para a construção de sistemas colaborativos utilizando AVCs e, portanto, devem ser conside-
rados como base para a especificação do protocolo padrão para ambientes colaborativos utili-
zando Realidade Virtual na WWW.
Existem algumas características que são comuns aos softwares de um SD. A seguir es-
tão indicadas algumas preocupações de sua construção:
Nomeação
A nomeação é a identificação do que é visto. Isto pode ser contrastado com endereça-
mento (que indica a localização) e roteamento (que indica como chegar na localização) (Sho-
ch apud Sloman, 1994). É necessário que os nomes sejam únicos (ou que sejam arranjados de
modo a identificar qualquer componente ou objeto unicamente), sejam capazes de serem co-
municados eficientemente, sejam independente da localização (para permitir a migração) e
devam suportar o compartilhamento.
Esquemas de nomeação local suportam o uso de nomes concisos, mas que devem ser
mapeados para algum esquema de individualização e interação global. Esquemas de nomea-
ção global obrigam a singularidade e uniformidade, mas são difíceis de se usar e manter.
A maioria dos sistemas usa uma forma hierárquica de nomeação que é dividida de modo
a promover individualização com o contexto local, mas que podem ser estendida com o con-
texto de nomes para dar uma maior individualidade global quando requerida (por exemplo,
números de telefones que podem ser estendidos pelos códigos da área e país).
Sincronização
36
A administração e controle de SD e paralelos requerem a sincronização para, em ordem,
coordenar e obrigar a exclusão mútua durante o acesso a recursos compartilhados e, geral-
mente, para preservar estados consistentes (Sloman, 1994). Existem alguns algoritmos que
forçam a exclusão mútua por sincronização das atividades relacionadas.
Em geral, os aprofundamentos centralizados são mais simples e eficientes, mas menos
robustos e mais sucessíveis a gargalos. As técnicas descentralizadas superam esses proble-
mas, mas são mais complexas.
Controle de Erros
Administração de Recursos
37
Em muitos casos, um compromisso é necessário: a administração deve também atuar na
prevenção de deadlocks, congestionamentos e monopólio de um recurso por qualquer cliente.
O objetivo é promover alguma forma de justiça. Como antes, as técnicas variam desde sim-
ples aprofundamentos centralizados (que são mais eficientes, porém mais sucessíveis a garga-
los) a administradores de recursos descentralizados (que retém autonomia local, mas reque-
rem protocolos mais complexos).
38
conexão, como redes ATM, porque a decisão de admitir uma nova conexão pode ser feita ba-
seando-se no conhecimento do estado da rota proposta pela nova conexão.
39
Quando um cliente envia um pedido para que uma operação seja executada, dizemos
que o cliente “invocou” uma operação no servidor. A interação completa entre um cliente e
um servidor, do ponto onde o cliente envia um pedido até o recebimento de sua resposta envi-
ada pelo servidor, é chamada de invocação remota. Um mesmo processo pode ser tanto clien-
te como servidor, uma vez que servidores podem invocar operações em outros servidores oca-
sionalmente.
Muitos SD, mas certamente não todos, podem ser construídos inteiramente na forma de
interação entre clientes e servidores. A WWW, o e-mail e as impressoras em rede se ajustam à
este modelo. Um navegador Web é um exemplo de um cliente. Ele se comunica com um ser-
vidor Web para lhe solicitar páginas.
3.4.4.Comunicação em Grupo
40
dos são inseridas nos computadores dos usuários. Cada vez que os dados são al-
terados, o novo valor é enviado por multicast a todos os processos administrando
as réplicas.
iii. Propagação de eventos de notificação: O multicast para um grupo pode ser usa-
do para notificar processos quando algo ocorre. Por exemplo, um sistema de no-
tícia deve notificar usuários interassados quando uma nova mensagem foi posta-
da em um grupo de notícias específico.
Protocolos são os padrões que especificam como os dados são apresentados ao serem
transferidos de uma máquina para outra. Eles especificam como ocorrem as transferências,
como os erros são detectados e como as confirmações são transmitidas (Comer, 1998). Segun-
do Coulouris (2001), a definição de protocolo tem duas importantes características:
i. Uma especificação da seqüência de mensagens que devem ser trocadas;
ii. Uma especificação do formato dos dados nas mensagens.
A existência de protocolos bem-conhecidos permite que componentes de software se-
parados de um SD sejam desenvolvidos independentemente e implementados em diferentes
linguagens de programação em computadores que podem ter ordem de códigos e representa-
ções de dados diferentes.
Para simplificar o projeto de protocolos e de suas implementações, os problemas de
comunicação são separados em subproblemas que podem ser resolvidos de forma indepen-
dente. A cada subproblema é atribuído um protocolo à parte.
A idéia da divisão em camadas é fundamental porque fornece uma estrutura conceitual
para o projeto do protocolo. Em um modelo dividido em camadas, cada camada trata de uma
parte do problema de comunicações e geralmente corresponde a um protocolo.
Os protocolos seguem o princípio da divisão em camadas, que determina que o
software que está implementando a camada n na máquina de destino recebe exatamente aqui-
lo que o software que está implementando a camada n na máquina de origem envia.
Na prática, o software de protocolo usa multiplexação e demultiplexação para estabe-
lecer uma distinção entre os protocolos múltiplos situados em determinada camada, tornando
o software de protocolo mais complexo do que sugere o modelo da divisão em camadas.
41
3.5.1.IP (Internet Protocol)
3.5.2.Datagramas IP
42
i. Esquema de endereçamento simples e universal com facilidades para os
mecanismos de encaminhamento;
ii. Mecanismo de fragmentação e re-agrupamento que assegura uma passagem
eficiente dos datagramas IP através de infra-estruturas com tamanhos máximos
de pacote diversos;
iii. Definição de Qualidade do Serviço (QOS – Quality of Service) e Tempo de Vida
(TTL – Time to Live) dos pacotes.
iv. Notificação de alguns erros básicos via ICMP (Internet Control Message
Protocol).
43
der, ser duplicadas ou chegar com problemas. Mais ainda, os pacotes podem chegar mais rápi-
do do que podem ser processados pelo destinatário (Comer, 1998).
O cabeçalho UDP é muito reduzido, é constituído por 4 campos de 16 bits cada:
i. Porta de Origem;
ii. Porta de Destino;
iii. Comprimento do "datagrama" (Cabeçalho UDP + Dados);
iv. Checksum (Soma de Verificação) de todo o datagrama (Pseudocabeçalho IP +
Cabeçalho UDP + Dados).
Um programa aplicativo que usa UDP aceita a inteira responsabilidade para lidar com
o problema de confiabilidade, inclusive perda de mensagem, duplicação, retardo, transmissão
defeituosa e perda de conectividade. O protocolo IP não pode ser diretamente usado pelas
aplicações porque não utiliza números de porta. A funcionalidade acrescentada pelo UDP ao
IP limita-se à definição de números de Portas de Comunicação do Protocolo (identificada por
um número inteiro positivo) e Checksum sobre todo o datagrama (incluindo dados).
44
zador quando envia um pacote, e retransmite um pacote se esse temporizador se completar an-
tes que chegue uma confirmação (Comer, 1998).
O TCP define um serviço importante de transmissão confiável de stream (Fluxo) de
dados. Ele proporciona uma conexão full duplex entre duas máquinas, permitindo que
troquem grandes volumes de dados com eficiência.
Já que utiliza um protocolo de janela deslizante, o TCP pode usar uma rede com
eficiência. Como faz algumas suposições sobre o sistema básico de entrega, o TCP é
suficientemente flexível para operar em uma ampla variedade de sistemas de entrega. E como
oferece um controle de fluxo, permite que sistemas de velocidades amplamente variáveis se
comuniquem.
A unidade básica de transferência utilizada pelo TCP é o segmento. Os segmentos são
utilizados para transferir dados ou controlar informações (por exemplo, para permitir que o
software TCP de duas máquinas estabeleça conexões ou as interrompa). O formato do
segmento permite que uma máquina faça um piggyback de confirmação para os dados que
estão fluindo em uma direção, quando os inclui nos cabeçalhos do segmento de dados que
fluem na direção oposta.
O TCP implementa o controle de fluxo levando o receptor a informar a quantidade de
dados que espera aceitar. Ele também suporta mensagens urgentes, através de um mecanismo
de dados urgentes, e força a transmissão através de um mecanismo de push.
Portanto, considera-se uma conexão TCP como sendo um canal dedicado de comuni-
cação entre duas aplicações com as seguintes características:
i. Os dados são enviados e recebidos em stream, não existindo o conceito de
mensagem ou datagrama;
ii. Os eventuais erros de transmissão são corrigidos de forma transparente para as
aplicações;
iii. É implementado um controle de fluxo baseado no protocolo de Janela
Deslizante;
iv. Os dados chegam ao destino na mesma ordem em que foram emitidos;
v. Tal como acontecia para o UDP, são definidos números de Porta de
Comunicação de Protocolo para multiplexar o acesso ao TCP por várias
aplicações residentes na mesma máquina;
vi. Uma conexão é uma ligação privada entre duas aplicações. Uma conexão entre
duas aplicações A e B é identificada pelo conjunto (IP A, porta A; IP B, porta
45
B). Já que o TCP identifica uma conexão como um par de pontos terminais,
determinado número de portas TCP pode ser compartilhado por várias conexões
na mesma máquina (Comer, 1998).
Conceitualmente, o TCP usa uma máquina de estados finitos para controlar todas as
interações. Cada extremidade de uma conexão TCP implementa uma cópia da máquina de es-
tados e a utiliza para controlar ações efetuadas quando um segmento chega. A Figura 3 apre-
senta a máquina de estado finito do TCP e as transições entre estados.
Na teoria, a máquina de estados finitos especifica completamente o modo pelo qual o
TCP de uma máquina interage com o TCP de outra. Na prática, porém, a máquina de estados
finitos não especifica totalmente as interações. Em vez disso, a máquina especifica apenas o
estado macroscópico do TCP ao passo que variáveis adicionais dão prosseguimento à
especificação dos detalhes ou do estado microscópico. E, o mais importante, como as
transições macroscópicas especificadas pela máquina de estado finito não controlam saída ou
retransmissão, tais eventos precisam ser tratados separadamente.
46
3.6.Considerações Finais
47
4. Especificação
4.1.Objetivos do Projeto
48
levar em consideração esta característica. Por isso será utilizado o modelo de Realidade
Virtual não-imersiva utilizando a plataforma WWW, pois o mesmo permite a utilização da
RV através de diferentes sistemas operacionais e periféricos comuns, baratos, e existentes na
maioria dos computadores atuais como monitores, teclados e mouses.
4.2.Especificação do Protocolo
4.3.Funcionalidades do Protocolo
49
protocolo a ser criado deve dar suporte aos mais variados tipos de aplicações (cobrindo todas
as áreas de atividades da sociedade como pesquisa, treinamento e lazer) e conter algumas
características básicas como, segundo Pinho (2002):
50
Uma maior interação entre os usuários pode ser adquirida utilizando-se uma
combinação de um sistema síncrono e em tempo real (isto permite por exemplo, ao ocorrer
uma falha de comunicação, retirar o usuário da simulação e informar automaticamente todos
os outros usuários sobre tal retirada). Este tipo de sistema também necessita fornecer repostas
rápidas, ou seja, uma rápida troca de mensagens de controle pelo protocolo (para que o senso
de continuidade da simulação não seja perdido por motivo de interrupções); e confiáveis (para
que as simulações sejam corretamente executadas). Estas características podem ser
referenciadas como exigências da QoS de cada aplicação que utilizar o protocolo criado.
Portanto, será utilizado como base o protocolo TCP, que garante uma comunicação confiável
entre qualquer par de nós de uma rede de computadores.
51
Figura 4 – Diagrama de Classes do Protocolo
52
iii. Estado Atual do Usuário: Informa a capacidade de interação do usuário com o
sistema. Será alterada pelo administrador sempre que houver necessidade. O
Estado 0 é utilizado unicamente para a visualização, sem qualquer
possibilidade de navegação ou manipulação do AVC. O Estado 1 é utilizado
unicamente para a visualização e navegação, sem qualquer possibilidade de
manipulação dos objetos do AVC ou de interação com outros usuários da
Seção. Finalmente, o Estado 2 é utilizado para a visualização, navegação,
manipulação dos objetos do AVC e interação com os usuários da Seção,
respeitando as possíveis restrições que o administrador pode impor sobre
determinados objetos ou usuários através de áreas de controle fornecidas pela
aplicação.
iv. Primitivas de Objetos: Informa todas as primitivas de objetos que poderão ser
utilizadas. Estas primitivas (com as informações sobre seu modelo
tridimensional e comportamento) servem para especificar os objetos básicos do
AVC (como planos, cubos e esferas) e todos os outros objetos mais complexos
(como os criados para aplicações específicas) que poderão ser criados ou
apagados do AVC em tempo real durante a execução da simulação.
53
Para que vários usuários compartilhem o estado atual do AVC, ou seja, a configuração
das CCA do servidor, eles devem atualizar seus estados locais sempre que o estado do AVC
for modificado (ou seja, recebeu uma atualização). Esta atualização pode ser feita através de
trocas de mensagens com o servidor, que devem ocorrer muito freqüentemente para garantir
que o estado atual de cada usuário seja corretamente sincronizado. Além disso, como o
tráfego de mensagens de controle de um sistema síncrono é muito grande, o tráfego na rede
deve ser o menor possível para evitar congestionamentos e, conseqüentemente, perda de
informações. Entretanto, isto requer redes de alta velocidade com baixas latências, que é
contrastado com um alto custo.
Uma solução é fazer com que o protocolo envie somente atualizações do sistema para
os usuários (como atualizações das posições dos usuários e criação, destruição ou
modificação das propriedades dos objetos), e não constantemente o estado atual do sistema
como um todo. As requisições de atualização criadas pelos usuários deverão ser enviadas
primeiramente ao servidor, que as processará e enviará de volta a todos os usuários, caso a
requisição seja aceita.
i. Tipo 1: Operações que não afetam outros usuários (como ler o estado de um
objeto do AVC). Para estas operações, o cliente envia diretamente a solicitação
ao servidor, que responde somente ao cliente requisitante, sem a necessidade
de envio da informações para os demais usuários.
ii. Tipo 2: Operações que requerem uma sincronização rigorosa entre todos os
clientes (como acender uma luz no AVC). Para estas operações, o cliente
requisitante primeiro envia sua requisição para o servidor, que a processa
verificando sua validação: se a requisição for válida, é feita a atualização de
sua CCA, e o servidor envia a mensagem de atualização via broadcast a todos
os clientes, que então atualizam suas respectivas visualizações do AVC; se a
54
requisição for inválida, é retornada uma mensagem de erro somente para o
cliente requisitante, sem qualquer envio de mensagens para os demais usuários.
Seguindo este princípio, as mensagens podem ser divididas em vários tipos, como
mostrado a seguir: (OBS: Estas mensagens, pela utilização do conceito de classe, são
implementadas como funções e, portanto, estão especificadas como “Nome da Função
(Cabeçalho, Mensagem)”, sendo “Nome da Função” um dos tipos de mensagens à seguir)
Seção ( n )
Criar: n = 1, Excluir: n = 0
Retorno
OK: ID_S: ID da Seção
ERRO: Mensagem de Erro
ii. Mensagens de Log (Cliente para Servidor): Mensagens do Tipo 2; São usadas
para requerer a entrada ou saída de um usuário a uma Seção existente. A
seguir, é mostrado um exemplo deste tipo de mensagem:
55
Retorno
OK: ID_O: ID do Objeto
ERRO: Mensagem de Erro
Notificação ( ID , n )
ID do Usuário: n = 0, ID do Objeto: n = 1
Retorno
OK: Mensagem de OK
ERRO: Mensagem de Erro
56
vii. Mensagens de Texto (Cliente para Servidor ou Servidor para Cliente):
Mensagens do 2; São usadas para permitir a conversação entre os participantes
de uma Seção. A seguir, é mostrado um exemplo deste tipo de mensagem:
Assim como o TCP, este novo protocolo também utiliza uma máquina de estados fini-
tos para controlar todos os seus estados. A Figura 5 apresenta a máquina de estados finitos do
protocolo, suas transições entre estados e suas ações executadas por essas transições:
57
A máquina começa pelo estado Inicia, onde ocorre a inicialização do servidor e a
instanciação da classe CCS. Logo em seguida é passada para o estado Escuta, na qual o
servidor fica permanentemente esperando por requisições (Mensagens de Controle). Ao
receber uma mensagem, a mesma é identificada como mensagem do Tipo 1 ou 2. No caso de
uma mensagem do tipo 1, a máquina passa para o estado Recebe onde a mensagem é
analisada e se for uma Mensagem de Seção, passa para o estado Fin Sec, onde executa a
criação ou exclusão de uma seção no sistema, e retorna para o estado Escuta; se for uma
mensagem de Manipulação passa para o estado Fin Man, onde é feita a atualização da
respectiva CCA da Seção, e retorna para o estado Escuta.
No caso de uma mensagem do tipo 2, a máquina passa para o estado Envia onde a
mensagem é analisada. Se for uma Mensagem de Log, a máquina passa para o estado Fin
Log, onde executa a inserção ou exclusão de um usuário em uma Seção e a atualização de sua
respectiva CCA. Logo em seguida retorna para o estado Escuta enviando uma Mensagem de
Notificação para todos os usuários da Seção (ao se criar uma nova Seção, a máquina passa
automaticamente para o estado Fin Log, para a inserção do usuário como Administrador na
Seção criada). Se a máquina receber uma Mensagem de Objeto, ela passa para o estado Fin
Obj, onde executa a inserção ou exclusão de um objeto em uma Seção e a atualização de sua
respectiva CCA, e retorna para o estado Escuta, enviando uma Mensagem de Notificação para
todos os usuários da Seção. Ao receber uma Mensagem de Atualização, a máquina passa para
o estado Fin Atu, onde atualiza a respectiva CCA e retorna para o estado Escuta, enviando
uma Mensagem de Notificação para todos os usuários da respectiva Seção. Ao receber uma
Mensagem de Texto, a máquina passa para o estado Fin Tex, envia uma Mensagem de Texto
para todos os usuários da Seção e retorna para o estado Escuta.
58
59
Figura 6 – Diagrama de Seqüência.
60
5.Conclusão
Este projeto permitirá uma maior utilização das capacidades da informática e de redes
de computadores, como a Internet, na resolução de problemas, pois o mesmo facilitará a
execução de trabalhos colaborativos em tempo real utilizando todas as vantagens que a
Realidade Virtual pode oferecer em relação aos outros sistemas interativos.
Permitirá que um grupo de pessoas, que antes necessitariam se encontrar no mundo real
para realizar determinadas atividades, se encontrem em um Ambiente Virtual Colaborativo e
realizem estas atividades da mesma maneira que as realizavam anteriormente, ou até melhor e
mais rápido pois compartilharão de vários recursos computacionais existentes no momento.
Com isso, espero que este projeto se torne uma alternativa útil e amigável para os
trabalhos colaborativos atualmente executados somente no mundo real, ou que já haviam
sendo executados de forma virtual, mas que podem ter uma grande melhora em seu
desempenho a partir da utilização da Realidade Virtual.
A Realidade Virtual, assim como o próprio computador no início de sua existência, vem
crescendo consideravelmente e permitindo, assim, a disseminação de um modo de Interação
Homem-Computador mais rico e eficaz para muitos tipos de aplicações. Mas a mesma esbarra
na principal barreira que toda nova tecnologia deve superar para se tornar popular: o alto
custo inicial.
Com o tempo, a RV e seus dispositivos imersivos se tornarão mais baratos e, portanto,
serão acessíveis a uma parcela muito maior de usuários; além de alguns pesquisadores e
profissionais especializados que já fazem uso e se beneficiam desta atual tecnologia. Portanto,
ela se tornará mais comum e se fixará como uma das melhores e mais bem elaboradas
ferramentas de IHC, pois permitirá um modo mais amigável e eficaz de controle do que os
dispositivos utilizados atualmente pela maioria dos usuários de computadores.
A colaboração entre pessoas é extremamente importante para a obtenção de qualquer
meta comum. Qualquer recurso que facilite sua execução é facilmente aceito, se for bem
desenvolvido. Como a RV facilita a IHC, ela também pode oferecer o mesmo potencial para
Trabalhos Colaborativos Auxiliados por Computador, que também tendem a se tornar cada
vez mais populares, pois englobam muitos recursos que facilitam a execução de trabalhos em
grupo.
61
Algumas das dificuldades encontradas durante a especificação deste protocolo foram: a
multidisciplinaridade inerente a este tipo de projeto, que engloba conhecimentos de áreas dis-
tintas (e algumas vezes ainda pouco exploradas – atualmente - na região do Centro-Oeste,
como a Realidade Virtual) que cooperam mutuamente formando um sistema mais complexo;
a definição dos requisitos e funcionalidades gerais que o protocolo deve fornecer para supor-
tar uma ampla variedade de tipos de aplicações colaborativas; e a estrutura de dados utilizada
pelo protocolo (neste caso, a Programação Orientada a Objetos utilizando Classes) para o con-
trole e gerenciamento do sistema, que permite uma maior eficiência, robustez e expansibilida-
de ao protocolo fornecendo requisitos para a inserção de novos módulos de controle (criação
de novas classes de controle, caso haja necessidade), novos objetos e respectivos comporta-
mentos para que possam ser utilizados em qualquer tipo de aplicação colaborativa utilizando
RV na WWW.
Com a especificação do protocolo, o próximo passo será a sua real implementação (uti-
lizando uma linguagem de programação orientada à objetos, como o Java – que possui um
grande suporte à comunicação em rede) e a criação de uma aplicação colaborativa utilizando
RV para a demonstração e validação do mesmo. Além disso, novos características de controle
Multimídia poderão ser inseridas no protocolo, como a utilização de vídeo e voz em tempo
real, permitindo uma melhor comunicação entre seus usuários e melhorando ainda mais suas
interações.
62
6.Referências Bibliográficas
(Comer, 1999) COMER, Douglas E.; STEVENS, David L. "Interligação em Rede com
TCP/IP - Volume II - Projeto, Implementação e Detalhes Internos". 1999. Editora
Campos.
(Meiguins et al., 2001) MEIGUINS, B. S.; CARVALHO, S. R.; NETO, E. P. B.; NETO, N.
P. C.; MARTINS, S. L. O. ; ALVES, S. L.; MEIGUINS, B. S.; GUEDES, L. Afonso.
“Um Ambiente de Realidade Virtual Multi-Usuário Aplicado ao Setor de Turismo”.
63
Rosatelli, Marta Costa; Wazlawick, Raul Sidnei; Kirner, Tereza Gonçalves (eds.) In: 4º
SBC Symposium on Virtual Reality, Florianópolis, Santa Catarina, pp. 67-78, 2001.
(Silveira et al., 2001) SILVEIRA, A. P. B.; SILVEIRA, S. R.; GELLER, M.; PASSERINO,
L. M.; TAROUCO, L. M. R. “Construção de um Ambiente Interativo Utilizando VRML
e ASP/VBSCRIPT”. Rosatelli, Marta Costa; Wazlawick, Raul Sidnei; Kirner, Tereza
Gonçalves (eds.) In: 4º SBC Symposium on Virtual Reality, Florianópolis, Santa
Catarina, pp. 160-170, 2001.
64