mundos virtuais e interatividade através da webcristina/mundosvirtuais.pdf · nas diversas mídias...
TRANSCRIPT
Mundos Virtuais e Interatividade Através da Web
Trabalho de Conclusão de Curso apresentado à
UTFPR como requisito parcial para obtenção do
título de Tecnólogo em Informática.
Curitiba 2008
Márcio Dalle Lucca Freire de Carvalho
Mundos Virtuais e Interatividade Através da Web
Trabalho de Conclusão de Curso apresentado à
UTFPR como requisito parcial para obtenção do
título de Tecnólogo em Informática.
Orientadora:
Professora Ana Cristina Barreiras Kochem Vendramin, MSc.
Curitiba 2008
“Most of the trouble in this world has been
caused by folks who can't mind their own
business, because they have no business
of their own to mind, any more than a
smallpox virus has.”
William Burroughs
Dedico este trabalho à Azusa Watanabe.
Agradecimentos
Aos meus pais Márcio e Jussara, por tudo que fizeram por mim até
hoje.
À Professora Ana Cristina, pelo apoio e paciência na orientação do
trabalho.
Aos amigos que, acreditaram, ouviram e opinaram.
SUMÁRIO
RESUMO ..................................................................................................... 11
1. INTRODUÇÃO......................................................................................... 12
1.1 Apresentação ..................................................................................... 12
1.2 Justificativa da Escolha do Tema....................................................... 12
1.3 Objetivos do Trabalho ........................................................................ 13
1.4 Conteúdo do Trabalho........................................................................ 13
2. LEVANTAMENTO BILIOGRÁFICO E ESTADO DA ARTE...................... 14
2.1 Mundos Virtuais.................................................................................. 14
2.1.1 Comunicação .................................................................................. 14
2.1.2 Simulação........................................................................................ 15
2.1.3 Identidade .................................................................................... 15
2.2 Imersão Virtual ................................................................................... 16
2.2.1 Imersão Perceptiva ......................................................................... 16
2.2.2 Imersão Receptiva ou Sensorial .................................................. 17
2.2.3 Imersão e os Mundos Virtuais ..................................................... 17
2.3 Interface Web ..................................................................................... 18
2.4 Análise de Mundos Virtuais e Suas Propriedades.............................. 18
2.4.1 Achaea - Dreams of Divine Lands ............................................... 18
2.4.1.1 Interface ................................................................................ 20
2.4.1.2 Comunicação ........................................................................ 21
2.4.1.3 Simulação ............................................................................. 22
2.4.1.4 Identidade ............................................................................. 22
2.4.1.5 Imersão ................................................................................. 23
2.4.2 Second Life .................................................................................. 23
2.4.2.1 Interface ................................................................................ 23
2.4.2.2 Comunicação ........................................................................ 25
2.4.2.3 Simulação ............................................................................. 25
2.4.2.4 Identidade ............................................................................. 26
2.4.2.5 Imersão ................................................................................. 27
3. METODOLOGIA ...................................................................................... 28
3.1 Levantamento de Requisitos .............................................................. 28
3.2 Escolha das Ferramentas................................................................... 28
3.2.1 Plataforma Java ........................................................................... 28
3.2.2 Tecnologias de Interface Web ..................................................... 29
3.2.3 Ferramentas Adicionais ............................................................... 30
3.2.4 Recursos Empregados ................................................................ 30
3.3 Processo de Desenvolvimento ........................................................... 31
3.3.1 Elaboração da Camada de Persistência e Concorrência de Dados
.............................................................................................................. 31
3.3.1.1 Concorrência......................................................................... 32
3.3.2 Aplicação da Técnica AJAX......................................................... 32
3.3.2.1 Requisições Assíncronas para Comunicação Síncrona........ 32
4. RESULTADOS......................................................................................... 34
4.1 Descrição da Arquitetura.................................................................... 34
4.1.1 Nível de Centralização e Escalabilidade...................................... 34
4.1.2 Topologia ..................................................................................... 34
4.2 Requisitos Funcionais e não Funcionais ............................................ 34
4.3 Modelagem......................................................................................... 35
4.3.1 Casos de Uso .............................................................................. 35
4.3.1.1 Conversar.............................................................................. 36
4.3.1.2 Mover .................................................................................... 36
4.3.1.3 Criar Item .............................................................................. 37
4.3.1.4 Iniciar Troca de Item.............................................................. 37
4.3.1.5 Aceitar Troca de Item ............................................................ 37
4.3.1.6 Rejeitar Troca de Item........................................................... 37
4.3.2 Diagrama de Classes................................................................... 38
4.3.3 Diagramas de Seqüência............................................................. 39
4.3.4 Diagrama Entidade-Relacionamento (DER) ................................ 40
4.3.5 Fluxograma.................................................................................. 41
4.4 Interface ............................................................................................. 42
4.5 Testes................................................................................................. 45
5. DISCUSSÃO............................................................................................ 46
5.1 Comparação Entre os Sistemas......................................................... 46
6. CONCLUSÕES........................................................................................ 49
6.1 Contribuições ..................................................................................... 49
6.2 Trabalhos Futuros .............................................................................. 49
6.2.1 Implementações Futuras ............................................................. 50
7. REFERÊNCIAS ....................................................................................... 51
LISTA DE FIGURAS
Figura 1. Cidade de Cyrene, em Achaea (ACHAEA, 2008). ....................... 20
Figura 2. Interface de Achaea. .................................................................... 21
Figura 3. Interface com menu de ações do Second Life. ............................ 24
Figura 4. Edição da aparência do avatar no Second Life............................ 26
Figura 5. Diagrama geral de casos de uso. ................................................ 36
Figura 6. Diagrama de classes.................................................................... 38
Figura 7. Diagrama de seqüência 1. ........................................................... 39
Figura 8. Diagrama de seqüência 2. ........................................................... 40
Figura 9. Diagrama de seqüência 3. ........................................................... 40
Figura 10. DER. .......................................................................................... 41
Figura 11. Fluxograma de páginas do sistema. .......................................... 42
Figura 12. Visualização da página Index. ................................................... 42
Figura 13. Visualização da página Home.................................................... 43
LISTA DE SIGLAS
AJAX: Asynchronous Javascript And XML.
API: Application Programming Interface.
CMC: Comunicação Mediada por Computador.
CMC-S: Comunicação Mediada por Computador Síncrona.
CSS: Cascading Style Sheets.
DER: Diagrama Entidade-Relacionamento.
HTML: HiperText Markup Language.
HTTP: HiperText Transfer Protocol.
IDE: Integrated Development Environment.
JDBC: Java Database Conectivity.
JEE: Java Enterprise Edition.
JPA: Java Persistence API.
JSP: JavaServer Pages.
JSTL: JSP Standard Tag Library.
MUD: Multi-User Dungeons.
MVC: Model-View-Controler.
W3C: World Wide Web Consortium.
XHTML: eXtensible HiperText Markup Language.
RESUMO
Este projeto tem o objetivo de criar um novo padrão para a aplicação
de tecnologias de sistemas web no desenvolvimento de mundos virtuais.
Levantando os paradigmas que compõem tais ambientes e analisando
mundos virtuais existentes, é mostrado como é possível associar a
acessibilidade de uma interface web aos conceitos que tornam um sistema
um mundo virtual. Por fim, o projeto aplica as técnicas necessárias na
criação do modelo de um ambiente virtual interativo, multiusuários e que
pode ser acessado por um navegador web, ou seja, um protótipo de um
mundo virtual web.
Palavras-chave: Mundo virtual, Web, Interatividade, Acessibilidade,
Imersão.
Capítulo 1 – Introdução 12
1. INTRODUÇÃO
1.1 Apresentação
É notável a popularização da Internet como meio de comunicação.
Com a capacidade de transmissão e de armazenamento de dados
aumentando a cada dia, a comunicação passa a ter maior dinamismo e mais
informação é compartilhada. Junto com seu surgimento, como causa e
conseqüência da comunicação gerada pela rede, foram criados os mundos
virtuais (BARTLE, 2003). Hoje, tais sistemas se diferenciam por proporcionar
aos seus usuários um alto grau de imersão, sendo palco para novos
conceitos, como o da “vida virtual”.
A partir da análise das principais características dos mundos virtuais,
o trabalho faz um estudo das tecnologias que tornam possível reproduzir os
paradigmas de tais sistemas em interfaces web1, estas que são mais
acessíveis, porém com recursos de interface limitados.
É também realizado um estudo sobre a imersão, fator crítico presente
nas diversas mídias e ao mesmo tempo atrativo fundamental em ambientes
virtuais. Com os conceitos levantados por McCloud (1994) sobre a forma da
informação, são construídas as definições de Imersão Receptiva e Imersão
Perceptiva, sendo ambas posteriormente associadas à Interatividade e à
comunicação através da interface web.
Por fim, a partir do estudo realizado e da análise de sistemas notáveis
do ponto de vista teórico em questão, é desenvolvido um protótipo de um
mundo virtual web, mostrando como é possível aplicar o novo conceito de
sistema interativo.
1.2 Justificativa da Escolha do Tema
Historicamente, os mundos virtuais foram desenvolvidos com variadas
interfaces. Desde puro texto até três dimensões, sua essência imersiva se
manteve, mas com um fator pouco explorado, o da ampla acessibilidade.
1 No presente trabalho, uma interface web é aquela composta pelas linguagens e padrões determinados pela W3C (World Wide Web Consortium) (W3C, 2008).
Capítulo 1 – Introdução 13
Através de uma interface web é possível alcançar grande parte dos sistemas
conectados à Internet e, com os recursos e técnicas disponíveis, reproduzir
a imersão proporcionada pelos mundos virtuais.
A interface web evolui, mas ainda pode ser melhor explorada em suas
definições atuais, assim como podem ser explorados novos caminhos para a
construção de mundos virtuais.
1.3 Objetivos do Trabalho
Este projeto tem como objetivo utilizar as tecnologias web para criar
uma nova possibilidade no desenvolvimento de mundos virtuais. Analisando
e implementando elementos que caracterizam um mundo virtual, o projeto
visa aplicar o equilíbrio entre Imersão Virtual e interface web, mostrando que
os recursos atuais disponíveis para criação de páginas web podem ser
usados de maneira inovadora, garantindo que um sistema interativo,
persistente e imersivo seja acessível de um navegador web padrão.
1.4 Conteúdo do Trabalho
O presente trabalho é dividido em 6 capítulos. O primeiro capítulo é a
introdução, que inclui a apresentação do tema, sua justificativa e os objetivos
do trabalho. O segundo capítulo traz as definições dos conceitos que
formam um mundo virtual, a análise de dois sistemas existentes que aplicam
tais conceitos e uma tabela comparativa entre os sistemas analisados e o
novo sistema desenvolvido. Os capítulos 3 e 4 abrangem respectivamente o
processo de desenvolvimento e os resultados atingidos. Por fim, os capítulos
5 e 6 trazem as conclusões do projeto com as devidas recomendações para
trabalhos futuros.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 14
2. LEVANTAMENTO BILIOGRÁFICO E ESTADO DA ARTE
2.1 Mundos Virtuais
Mundos virtuais são sistemas multiusuários implementados em
computador e que simulam um ambiente (BARTLE, 2003). Cada usuário
interage com o ambiente e com outros usuários através de avatares, isto é,
através da incorporação visual2 de um usuário em um ambiente virtual
(VILHJÁLMSSON, 1996). Considerando que toda sala de bate-papo, página
de um website ou ambiente do ciberespaço é um local psicológico para o
usuário (SULER, 2008), mundos virtuais tendem a ser locais complexos,
pois simulam um ambiente ao mesmo tempo em que permitem a troca de
informações entre seus participantes.
Partindo destes conceitos, três paradigmas podem ser levantados
como requisitos para que um sistema seja considerado um mundo virtual:
comunicação, simulação e, como conseqüência das anteriores, identidade.
2.1.1 Comunicação
Por se tratar de um sistema multiusuário, um mundo virtual permite a
comunicação humano-humano mediada pelo próprio sistema. Como a
interatividade proporcionada por um aplicativo de simulação tende a ser
dinâmica, a comunicação é em tempo real. Esta característica é definida
pela Comunicação Mediada por Computador Síncrona (CMC-S), que está
sempre presente em mundos virtuais e é definida pela:
“(...) presença simultânea dos interlocutores para que a troca de mensagens ocorra em tempo real, isto é, sejam recebidas e respondidas numa seqüência contínua, durante uma mesma sessão.” (OEIRAS & ROCHA, 2000).
2 No presente trabalho, a incorporação visual de um usuário é considerada desde um apelido ou perfil em modo texto até um modelo gráfico em três dimensões.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 15
2.1.2 Simulação
A simulação em mundos virtuais não é a mesma almejada pelos
sistemas de realidade virtual, pois não são desenvolvidos equipamentos de
hardware específicos e nem sempre é visada a simulação de elementos,
situações ou ambientes do mundo real. Nos mundos virtuais, a simulação
consiste basicamente em armazenar estados de objetos que podem ser
afetados pelos usuários. Tanto para um único usuário, quanto para usuários
distintos, os objetos de simulação preservam seu estado de forma
consistente, mesmo quando o sistema não está sendo acessado. Estes
elementos icônicos respondem de maneira semelhante às ações
semelhantes dos usuários. Assim é criada a credibilidade de um ambiente.
Um fator importante a ser ressaltado é o da aleatoriedade. Em muitos
casos ela também faz parte da simulação. Uma resposta aleatória pode ser
um tipo de resposta esperada e consistente, mesmo gerando resultados
diversos para ações semelhantes.
Portanto, a importância da simulação está na consistência do sistema
dentro do objetivo proposto, acontecendo muitas vezes de forma abstrata
por não estar diretamente associada a elementos do mundo real. Também
por este e outros motivos mostrados a seguir, os mundos virtuais trabalham
com dados persistentes.
2.1.3 Identidade
A identidade de um usuário dentro de um mundo virtual é dada por
diversos fatores. O primeiro deles é o das escolhas que o usuário faz quanto
à personalização de seu avatar, podendo ser apenas a escolha de um
apelido em texto ou a escolha das roupas de um avatar humanóide em três
dimensões. Existem também as escolhas que se referem às regras de
interação e simulação, onde modelos de avatares possuem atributos
específicos perante o sistema.
Outro fator é o das ações que o usuário executa através de seu
avatar. No decorrer do uso de um mundo virtual, o usuário pode fazer
amizades e inimizades, afetar o ambiente, evoluir seu avatar, tomar posse
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 16
de objetos, participar de comunidades, entre outras atividades. Isso afeta a
maneira de como os outros usuários identificam o usuário em questão,
influenciando diretamente em sua identidade. Suler (2008) afirma em relação
ao ciberespaço em geral, o que pode ser aplicado aos mundos virtuais:
“O nome de usuário que você escolhe, os detalhes que você indica ou não sobre você mesmo, a informação presente na sua página web, a persona3 ou avatar que você assume em uma comunidade online – todos são aspectos importantes de como as pessoas gerenciam suas identidades no ciberespaço”.
Esta também é mais uma característica que implica no
armazenamento de dados persistentes em mundos virtuais.
2.2 Imersão Virtual
A imersão consiste no grau de concentração que um indivíduo aplica
na realização de uma determinada tarefa (SULER, 2008). Assim, a imersão
virtual se refere à realização de atividades virtuais, ou seja, no contexto da
Informática, atividades mediadas por hardware e software, como a CMC.
A forma da informação transmitida na CMC, assim como em qualquer
tipo de comunicação, pode ser classificada como Perceptiva ou Receptiva
(MCCLOUD, 1994). Com foco na imersão virtual, é possível agregar tal
classificação ao conceito de imersão.
2.2.1 Imersão Perceptiva
A Imersão Perceptiva é a imersão experimentada através de
estímulos de linguagem. A partir de ícones que compõem uma mensagem, o
receptor interpreta tais elementos e, com base no conhecimento individual,
compreende a informação transmitida.
3 Persona é um termo utilizado em áreas como a da Psicologia para expressar as atitudes do indivíduo para com o mundo exterior (WIKIPEDIA, 2008).
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 17
A principal qualidade da Imersão Perceptiva se deve ao fato de que
quando o receptor utiliza o raciocínio e a imaginação para interpretar os
elementos transmitidos na mensagem, ele o faz com referência a uma
biblioteca própria, construída por experiências individuais.
Consequentemente, tudo se torna mais familiar e particular, facilitando a
imersão. Em contrapartida, é exigido do receptor o “(...) conhecimento
especializado para decodificar os símbolos abstratos da linguagem.”
(MCCLOUD, 1994).
O maior exemplo onde se utiliza a linguagem como forma de
comunicação, o que, como conseqüência, ocasiona a Imersão Perceptiva,
se encontra na literatura. Nela, a linguagem verbal é explorada e, mesmo
esta podendo ser rica e detalhada, será interpretada de maneira diferente
por cada indivíduo.
2.2.2 Imersão Receptiva ou Sensorial
A Imersão Sensorial é a imersão experimentada através de estímulos
sensoriais. Nela, a representação da mensagem atua diretamente nos
sentidos do receptor de maneira realista e convincente, imitando a realidade
nos aspectos da visão, audição, tato, olfato e paladar. O cinema é o principal
exemplo de utilização da Imersão Sensorial, geralmente tornando as
informações de imagem e som extremamente receptivas.
A Imersão Sensorial tem a dificuldade técnica como fator principal na
sua aplicação, pois para que a imersão seja maior, a construção dos
estímulos exige recursos muitas vezes não disponíveis. A característica
positiva da Imersão Sensorial é a de proporcionar maior receptividade para a
imersão, exigindo que o receptor trabalhe menos a imaginação e o raciocínio
na interpretação da forma das mensagens.
2.2.3 Imersão e os Mundos Virtuais
A análise anterior considerou os extremos da forma de comunicação
adotada por cada tipo de imersão. Na prática, é observado que as duas
imersões podem trabalhar juntas, numa espécie de equilíbrio imersivo.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 18
A CMC-S tem sido tema de estudos que, em sua maioria, visam
torná-la tão receptiva quanto à comunicação face-a-face (VILHJÁLMSSON,
2003). O que acontece é que o grau de informações receptivas aumenta ou
diminui de acordo com os recursos utilizados e a imersão em si independe
da forma que a informação é apresentada. Nos mundos virtuais, a imersão é
acentuada devido à natureza das propriedades destes sistemas. Os três
paradigmas comunicação, simulação e identidade, formam uma combinação
altamente imersiva. Nela, os usuários têm experiências convincentes, onde o
fator humano, agregado pela comunicação, aumenta o dinamismo da
simulação projetada e exige constante manutenção da identidade
estabelecida (SULER, 2008).
2.3 Interface Web
Com a popularização da Internet, os navegadores web se
consolidaram como aplicativo indispensável em todos os sistemas
conectados à rede. Dos mais simples aos mais avançados, todos são
capazes de interpretar HTML (HyperText Markup Language), CSS
(Cascading Style Sheets), e a grande maioria, Javascript. Com as novas
técnicas de desenvolvimento, como o AJAX (Asynchronous Javascript And
XML), e a aplicação das tecnologias conhecidas para persistência de dados,
uma interface web tem a disposição recursos que permitem associar
interatividade e complexidade à acessibilidade.
2.4 Análise de Mundos Virtuais e Suas Propriedades
A seguir, são avaliados dois mundos virtuais, os quais diferem entre si
principalmente por suas interfaces e acessibilidade. A análise é feita com
referência aos paradigmas levantados anteriormente e com destaque ao
ponto crítico da interface e sua respectiva acessibilidade.
2.4.1 Achaea - Dreams of Divine Lands
Achaea é um mundo virtual inteiramente em modo texto publicado em
1997 pela produtora Iron Realms Entertainment (IRON REALMS
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 19
ENTERTAINMENT, 2008). É acessado através de conexão telnet e sua
estrutura é herdada dos primeiros mundos virtuais, os MUDs (Multi-User
Dungeons ou Masmorras Multiusuários). O primeiro MUD foi criado e escrito
por Roy Trubshaw e Richard Bartle na Universidade Essex, Inglaterra, em
1978, se tornando o primeiro mundo virtual público (BARTLE, 2003)
(KOSTER, 2008). A relevância de Achaea para análise se dá devido ao fato
deste ainda estar ativo e ser baseado nas principais características dos
primeiros mundos virtuais existentes.
O objetivo de Achaea é simular um mundo de fantasia medieval. Cada
usuário tem o papel de um personagem e pode ser uma espécie de cidadão
na nova realidade. Sua arquitetura interna é simplificada por três tipos de
elementos: jogador (usuário), sala e objeto. Jogadores e objetos estão
sempre contidos em salas, estas por sua vez são interligadas formando um
mapa persistente. Através de comandos como north, south, east, west,
northeast, northwest, southeast, southwest, up, down, in e out, os jogadores
podem se deslocar pelas salas navegando pela direção indicada no
comando. Com isso, é possível notar que a topologia do mundo é formada a
partir de um mapa lógico, conforme é observado na Figura 1, que mostra
uma das cidades, ou conjunto de salas, do sistema.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 20
Figura 1. Cidade de Cyrene, em Achaea (ACHAEA, 2008).
Cada quadrado representa uma sala e cada linha mostra como, ou
em qual direção, uma sala se liga às suas próximas. Esta estrutura básica
do sistema e suas regras de interação possibilitam a simulação de um
ambiente consistente.
2.4.1.1 Interface
A interface para acesso ao sistema de Achaea é composta
unicamente de caracteres ASCII coloridos transmitidos através da conexão
telnet. Portanto, é possível se conectar a ele a partir de qualquer cliente
telnet, e toda a interação que o usuário tem com o sistema é feita através da
entrada de texto. Assim são dados, por exemplo, os comandos de
movimentação pelas salas, exemplificados anteriormente. Existe uma vasta
gama de comandos possíveis, todos intuitivos imitando a língua inglesa.
Para dizer ‘oi’ em uma sala, o comando é: say oi. Assim, o sistema
prontamente exibe para todos os presentes na sala uma mensagem como:
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 21
Fulano says “oi”. A Figura 2 mostra a interface do sistema acessado pelo
cliente PuTTY.
Figura 2. Interface de Achaea.
2.4.1.2 Comunicação
A comunicação em Achaea acontece de duas formas principais. A
primeira delas é a comunicação presencial, onde é possível se comunicar
com quem está presente na mesma sala. A segunda é a comunicação à
distância, fantasiada pelo sistema como uma comunicação telepática entre
os personagens, tornando possível se comunicar por canais ou diretamente
com outros jogadores em salas distintas. Um jogador novato logo é induzido
a utilizar o canal newbie onde somente novatos e guias (usuários
administradores no papel de personagens tutores) terão acesso, para tirar
dúvidas ou responder perguntas pertinentes ao sistema.
Por simular um ambiente de fantasia, incentiva-se que os jogadores
sempre se comuniquem interpretando seus personagens. Por isso, qualquer
fala deve ser condizente com os conhecimentos do personagem (não do
jogador) e sua relação com os ouvintes, utilizando corretamente a língua
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 22
inglesa, seus pronomes de tratamento e os termos do mundo virtual. Neste
sistema, os jogadores aderem naturalmente à interpretação sabendo que
esta dará mais credibilidade à fantasia proposta.
2.4.1.3 Simulação
A simulação deste ambiente de fantasia medieval é dada pela
estrutura de jogadores, salas e objetos e suas regras de interação. Em
primeira instância, um personagem não pode estar presente, ou seja,
interagir de forma consistente, em mais de uma sala ao mesmo tempo.
Algumas salas são consideradas apenas passagem de ligação para simular
longas distâncias, já outras podem reunir vários usuários, como em uma
taverna ou templo religioso. Objetos como armas, roupas e outros itens
também são persistentes. É possível vender e comprar, o que faz com que
exista uma economia interna própria baseada numa moeda padrão, as
peças de ouro. Existe ainda um sistema de passagem do tempo. Dia e noite,
semanas, meses e anos passam em uma escala menor e com calendário
próprio. Assim é possível simular eventos importantes, que afetam a alguns
ou a todos os jogadores. Também o clima, como sol, chuva e nuvens, é
alterado em tempo real e descrito em detalhes.
2.4.1.4 Identidade
A formação de identidade em Achaea é iniciada pelas escolhas do
jogador ao criar seu personagem. Nome, raça e classe são as três principais
escolhas, que darão forma ao avatar do jogador. A partir de então, o jogador
pode executar ações diversas e livres, assim como é imaginado um cidadão
de um mundo de fantasia medieval. O jogador poderá buscar riquezas, ser
forte ou apenas se relacionar ou ter influência no ambiente. A identidade
será formada pela descrição do personagem, pelas roupas e itens que
carrega e por sua posição na sociedade simulada, que será de acordo com
suas atividades e relacionamentos dentro do sistema.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 23
2.4.1.5 Imersão
Por ser um mundo virtual, Achaea aplica todos os paradigmas a favor
da imersão. A comunicação é feita em tempo real, a simulação do ambiente
é consistente e cada usuário possui uma identidade rica, detalhada e única.
Devido à sua interface, é explorada somente a Imersão Perceptiva
exclusivamente através da linguagem verbal. Com isso, e devido à origem
do sistema, todo o conteúdo do ambiente é descrito pela língua inglesa.
Salas, personagens e eventos são detalhados minuciosamente, estimulando
com precisão a imaginação de seus usuários.
2.4.2 Second Life
Second Life é um mundo virtual em três dimensões inteiramente
imaginado e criado por seus residentes (usuários). Foi aberto ao público em
2003 e hoje é habitado por milhões de residentes do mundo todo (SECOND
LIFE, 2007). Nele, cada usuário pode manufaturar objetos digitais e deter os
direitos de propriedade intelectual sobre suas criações. Além disso, os
residentes contam com uma linguagem de script para personalizar o
comportamento de objetos e avatares.
No Second Life, o usuário pode comprar terrenos para criar
construções, como uma casa para seu avatar, ou abrir o próprio negócio,
pois a moeda de simulação econômica interna chamada dólar Linden tem
valor monetário real, sendo intercambiável com dólares americanos. Assim,
o usuário é incentivado a comercializar diversos serviços que envolvem o
trabalho manual de criação de objetos e locação de construções ou locais
para eventos, além de desfrutar de outras oportunidades de negócio, como a
publicidade.
2.4.2.1 Interface
O Second Life possui a interface que simula objetos e ambientes em
três dimensões. Para acesso ao sistema é necessária a instalação do
software cliente em um computador pessoal, o qual renderiza a interface e
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 24
faz o gerenciamento do cache4 local de arquivos. O cache tem a função de
armazenar informações de objetos e texturas visualizadas recentemente ou
próximas ao avatar, para que não sejam retransmitidos e estejam prontos
para a próxima renderização.
As ações do usuário são executadas pelo conjunto teclado e mouse,
por menus diretos na interface e pelo “menu de ações”. O menu de ações é
acessível através do clique do botão direito do mouse e, dependendo de
onde o mouse aponta, ele demonstra as possíveis ações. Cada objeto pode
estar associado a um ou mais scripts que determinarão ações tanto para o
avatar quanto para o sistema ou o próprio objeto. Como exemplo, para
comprar um objeto disponível, geralmente é usado um script no qual faz com
que o objeto, ao ser tocado, mostre a opção de compra.
A Figura 3 mostra a interface e o menu de ações referente a um
objeto (uma almofada) onde é possível executar a ação “sentar-se”.
Figura 3. Interface com menu de ações do Second Life.
4 Cache consiste em evitar o acesso a um dispositivo ou servidor armazenando dados temporariamente em meios de acesso mais rápidos.
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 25
2.4.2.2 Comunicação
A comunicação no Second Life acontece de maneira semelhante aos
aplicativos de mensagem instantânea. Existe um chat público em cada
localidade, mas é possível falar em particular com cada usuário e manter
uma lista de amigos, útil para a troca de mensagens à distância, ou seja,
quando os avatares se encontram em localidades diferentes do sistema.
Existe ainda a possibilidade de utilizar o Voice Chat, um sistema de
transmissão de som que faz com que a voz do avatar seja a mesma do
usuário ao falar em um microfone conectado ao computador cliente. O som é
transmitido e reproduzido a partir da coordenada do avatar no campo 3D,
fazendo com que somente avatares próximos ao do locutor ouçam sua voz.
2.4.2.3 Simulação
O Second Life simula apenas um ambiente virtual compartilhado em
três dimensões, mas através do sistema de criação de objetos e scripts, os
usuários geram no sistema diversos elementos figurativos do mundo real.
Não existe um objetivo pressuposto para simulação, pois são os
residentes que criam as simulações desejadas utilizando os recursos do
sistema. Como exemplos, existem simulações de casamento entre avatares,
festas, palestras, apresentações musicais e outros eventos, além da
simulação de localidades como o Jardim Botânico de Curitiba ou a Estátua
da Liberdade. Tudo é feito conforme a vontade e dedicação dos usuários,
que desfrutam das ferramentas de criação de objetos e scripts e dos tutoriais
muitas vezes disponíveis no próprio ambiente.
Dentro do conceito de propriedades intelectuais e dos possíveis
modelos de negócio, é gerada uma economia própria. Embora internamente
possa ser considerada uma economia simulada, ela deixa de ser uma
simulação a partir do momento que entra em contato com a economia real.
Isso acontece através do LindeX Exchange, o sistema que permite troca de
dólares Linden por dólares americanos e vice-versa.
Além de ser um ambiente em três dimensões, o Second Life conta
com simulações simples de física mecânica e de passagem do tempo, tendo
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 26
o ciclo de dias e noites e um fuso-horário próprio. Estes são alguns fatores
que dão maior credibilidade ao ambiente.
2.4.2.4 Identidade
A identidade de um usuário no Second Life é formada principalmente
pelos recursos visuais que o sistema dispõe. As mesmas ferramentas que
permitem a criação de objetos 3D são utilizadas para determinar a aparência
do avatar. Assim, cada usuário pode customizar a aparência de seu avatar
de maneira única e praticamente infinita, com peças de vestimenta como
roupas e máscaras, forma do corpo e rosto humanóides, cabelo e cores e
texturas para cada um destes elementos. A Figura 4 mostra o menu de
edição de aparência do avatar.
Figura 4. Edição da aparência do avatar no Second Life.
Além da aparência do avatar e de um perfil de usuário, a identidade é
influenciada pelo posicionamento que o usuário assume nas diversas
Capítulo 2 - Levantamento Bibliográfico e Estado da Arte 27
simulações. Em muitos casos, o usuário cumpre um papel semelhante ao
que tem na sociedade real. Em um evento como um congresso com
palestras, os avatares dos palestrantes são controlados por indivíduos
capacitados que já exerceram a mesma função no mundo real. Com isso,
suas identidades são muito próximas às do mundo real.
2.4.2.5 Imersão
O Second Life aplica os paradigmas de comunicação, simulação e
identidade dos mundos virtuais na composição da experiência imersiva. É
ainda somada à experiência a Imersão Receptiva para imagem e som,
proporcionada por sua interface 3D e simulação de propagação sonora.
Apesar de contar com recursos gráficos e sonoros, a imersão
costuma ser fragmentada, pois ficam a cargo dos usuários a objetividade na
utilização do sistema e a criação das simulações dentro do ambiente.
Também a topologia do ambiente como um todo não é consistente,
obrigando que avatares se desloquem pelo espaço virtual através de tele
transporte quando mudam de cenário, a fim de favorecer a manutenção e
estrutura dos servidores.
Este mundo virtual oferece as ferramentas e recursos para que seus
usuários criem as experiências imersivas customizando e manufaturando
elementos, mas não é capaz de proporcionar alta imersão por si só.
Capítulo 3 - Metodologia 28
3. METODOLOGIA
3.1 Levantamento de Requisitos
O levantamento de requisitos foi efetuado a partir da definição dos
paradigmas que formam os mundos virtuais e dos pré-requisitos que
envolvem os objetivos deste trabalho.
3.2 Escolha das Ferramentas
As ferramentas selecionadas para o desenvolvimento do protótipo
abrangem os recursos aplicados em sistemas web baseados na plataforma
Java.
3.2.1 Plataforma Java
A plataforma Java é um conjunto de recursos para desenvolvimento
de aplicações. Os recursos envolvem uma linguagem de programação
padrão chamada Java, uma máquina virtual capaz de abstrair o Sistema
Operacional em que rodam seus aplicativos e uma série de API’s
(Application Programming Interface ou Interface de Programação de
Aplicativos) (SUN, 2008).
A escolha da plataforma Java como base para desenvolvimento
ocorre devido aos recursos e formas de integração com as interfaces web
que esta disponibiliza, além de não gerar custos com licenciamento e ter
flexibilidade quanto à exigência de um Sistema Operacional específico.
Os elementos da plataforma utilizados no projeto são:
• Java Enterprise Edition (JEE): O JEE é uma plataforma
componente da plataforma Java e consiste em especificações e
bibliotecas para implementação de recursos corporativos como
JSP (JavaServer Pages), Java Servlets, JPA (Java Persistence
API) e JDBC (Java Database Conectivity);
• Java Servlet: É uma tecnologia cujo conceito é inserir novos
recursos a um servidor web. Através de sua API, é possível gerar
Capítulo 3 - Metodologia 29
uma interface web dinâmica utilizando todos os recursos da
plataforma Java;
• JavaServer Pages: O JSP é uma API construída com base na
tecnologia das Servlets. Dispondo de todos os seus recursos, ela
agrega a capacidade de ser implementada como um código de
interface através do uso da JSTL (JSP Standard Tag Library), o
que agiliza o desenvolvimento e a manutenção de interfaces web
dinâmicas;
• Java Database Conectivity: O JDBC é uma API que visa tornar
transparente o acesso ao banco de dados em uma aplicação
Java.
• Java Persistence API: É a especificação de como deve ser
implementada uma API de persistência em aplicações JEE. Como
exemplos de implementação da JPA existem o Hibernate
(HIBERNATE, 2008) e o Toplink (ORACLE, 2008).
3.2.2 Tecnologias de Interface Web
Seguindo a premissa de que o novo sistema deve ser acessado por
navegadores web, este deve contar com uma interface construída nas
linguagens HTML e CSS. Tais tecnologias devem ser aplicadas de acordo
com as recomendações da W3C5, garantindo a compatibilidade da interface
com a maior quantidade de navegadores possível. É também utilizada a
linguagem Javascript na aplicação da técnica AJAX (OLSON, 2007), essa
que foi capaz de suprir os requisitos da comunicação full-duplex, geralmente
presentes em aplicações de CMC-S, na estrutura de requisições HTTP
(HyperText Transfer Protocol).
As tecnologias de interface web utilizadas no projeto são:
• XHTML (eXtensible HyperText Markup Language) 1.0: É a
mais recente recomendação da W3C para construção de
5 World Wide Web Consortium é um consórcio internacional onde organizações e o público trabalham juntos para desenvolver os padrões web (W3C, 2008).
Capítulo 3 - Metodologia 30
documentos estruturados cuja apresentação é controlada por
CSS (W3C, 2008);
• CSS 2: É a linguagem utilizada para adicionar estilos, como tipos
de fonte e cores, a documentos estruturados, como o XHTML
(W3C, 2008);
• Javascript: É uma linguagem de script que pode ser interpretada
por navegadores web, adicionando diversas funcionalidades a
estes aplicativos.
• AJAX: Técnica de utilização da linguagem Javascript para efetuar
requisições assíncronas, ou seja, independentes de ações do
software cliente, a um servidor web. Permite assim que o
conteúdo dinâmico seja atualizado e informações sobre o cliente
sejam enviadas transparentemente do ponto de vista do usuário.
3.2.3 Ferramentas Adicionais
• Netbeans 6.0: O Netbeans é um IDE (Integrated Development
Environment, ou Ambiente de Desenvolvimento Integrado)
multiplataforma com todos os recursos necessários para
modelagem, desenvolvimento e testes na plataforma Java. O seu
pacote de ferramentas inclui o Tomcat, servidor de aplicações
Java para web (NETBEANS, 2008);
• PostgreSQL 8.2: É um sistema gerenciador de banco de dados
relacional, gratuito e multiplataforma, utilizado para persistência
de dados em conjunto com a API JDBC (POSTGRESQL, 2008).
3.2.4 Recursos Empregados
Os recursos empregados no desenvolvimento do sistema envolvem
ferramentas de software de licença gratuita, um computador e um
programador capaz de utilizar tais tecnologias. Foi necessária ainda, para a
fase final de testes, uma conexão de banda larga com a Internet, para que
fossem feitos acessos simultâneos ao servidor sem a interferência do
desempenho de banda.
Capítulo 3 - Metodologia 31
Os equipamentos e serviços empregados são descritos a seguir:
• Um computador com arquitetura x86 e configurações mínimas de:
o Processador: 2 Gigahertz;
o RAM (Random Access Memory): 1 Gigabyte;
o Disco rígido: 10 Gigabytes;
o Interface de rede: Ethernet.
• Serviço de conexão com Internet banda larga.
3.3 Processo de Desenvolvimento
Duas etapas do desenvolvimento foram críticas para atender aos
requisitos do sistema. Estas etapas abrangem a elaboração de uma camada
para persistência e concorrência de dados e a aplicação da técnica AJAX.
As demais etapas são comuns no desenvolvimento de sistemas web
utilizando a plataforma Java.
3.3.1 Elaboração da Camada de Persistência e Concor rência de Dados
Em sua maioria, os requisitos do sistema implicam na persistência e
concorrência de dados. Para a elaboração dessa camada da aplicação
foram analisadas as tecnologias referentes à plataforma Java,
especificamente a JPA. A partir do estudo das definições da API JPA e suas
implementações, foi necessário elaborar uma camada própria de
persistência e concorrência, pois a complexidade das implementações da
JPA não se mostrou facilmente adaptável às exigências do protótipo.
Ao analisar a alta troca de informações que ocorre em mundos
virtuais, foi observado que os dados, classificados como persistentes6 ou
transientes7, possuem alta concorrência. Também foi observada a questão
do desempenho no acesso aos dados, sendo necessária uma estratégia
6 Dados persistentes são todas as informações que necessitam persistir na base de dados. Apesar de serem persistentes, para diminuir o acesso simultâneo a base de dados, essas informações devem ser capazes de residir temporariamente na RAM do servidor. 7 Dados transientes são as informações que nunca precisam ser persistidas, por isso sempre residem em memória e quando deixam de ser relevantes são apagadas.
Capítulo 3 - Metodologia 32
onde os dados são mantidos em memória conforme a necessidade,
minimizando consultas simultâneas à base.
3.3.1.1 Concorrência
Para controlar o acesso concorrente aos dados foi utilizada a
instrução synchronized da linguagem Java. Essa instrução permite que
blocos de código sejam executados somente quando possuem a chave de
execução. Assim são colocadas chaves de maneira que determinadas
operações de leitura e escrita de dados não sejam executadas ao mesmo
tempo, impedindo que as informações se tornem inconsistentes. Este
recurso foi implementado em toda a camada de persistência e concorrência
de dados.
3.3.2 Aplicação da Técnica AJAX
A técnica AJAX foi a solução encontrada para a troca dinâmica de
informações que ocorre nos mundos virtuais. Com ela foi possível
desenvolver um método de verificação de estado8 do usuário, independente
do controle de sessão HTTP das Servlets. Foi possível também fazer com
que as informações transmitidas entre usuários fossem atualizadas com o
mínimo de atraso e transparentemente, o que possibilitou a comunicação em
tempo real através do sistema.
3.3.2.1 Requisições Assíncronas para Comunicação Sí ncrona
Dentro da arquitetura cliente-servidor do protocolo HTTP não é
possível fazer com que o servidor envie informações ao cliente, no caso um
navegador web, sem que este às tenha requisitado. É a técnica AJAX que,
através de requisições assíncronas, ou seja, requisições que não dependem
da ação do navegador, torna possível manter os clientes atualizados quanto
às informações do servidor. Com o AJAX podem ser feitas várias requisições
em espaços curtos de tempo e é desta maneira que os interlocutores de
8 Os estados do usuário implementados no protótipo são online e offline.
Capítulo 3 - Metodologia 33
uma comunicação síncrona se mantêm atualizados através da arquitetura
cliente-servidor do HTTP.
Capítulo 4 - Resultados 34
4. RESULTADOS
4.1 Descrição da Arquitetura
A arquitetura do sistema segue o modelo cliente-servidor. Além disso,
é aplicado o padrão de design de software MVC9 (Model-View-Controler ou
Modelo-Apresentação-Controle), onde a camada de persistência de dados é
o Modelo, as Servlets compõem o Controle e as JSP’s, empregadas com
XHTML e CSS, fazem a Apresentação.
4.1.1 Nível de Centralização e Escalabilidade
O sistema é totalmente centralizado, sendo que todas as operações
ocorrem através de um mesmo servidor web e com uma única base de
dados para a camada de persistência. Já sua escalabilidade não pode ser
medida com precisão no nível de implementação apresentado.
4.1.2 Topologia
O ambiente simulado apresenta salas entre as quais os usuários
podem se mover. Elas formam uma topologia semelhante ao mapa lógico de
Achaea. Cada sala é uma entidade na camada de persistência e está
relacionada ao mapa de salas por seus atributos de coordenada XY. Assim,
uma sala na posição x=50 e y=50 estará ao norte da sala de posição x=50 e
y=49, formando uma topologia consistente. Mais detalhes sobre as
entidades e seus atributos são mostrados nas seções a seguir.
4.2 Requisitos Funcionais e não Funcionais
Os requisitos levantados para o sistema são:
• Promover a comunicação em tempo real entre seus usuários
(CMC-S);
9 O padrão de design MVC foi descrito pela primeira vez pela Xerox no fim dos anos 80. Seu objetivo principal é separar a lógica de um sistema em três partes: regras de negócio, apresentação, ou interface, e processamento de requisições (no caso de uma aplicação cliente-servidor).
Capítulo 4 - Resultados 35
• Apresentar simulações de ambiente consistentes;
• Dar condições para que os usuários criem identidade perante os
outros usuários do sistema;
• Contribuir para a imersão virtual a partir dos recursos de interface
disponíveis;
• Possuir interface acessível por navegadores web.
Tais requisitos implicam em características funcionais que tornam
cada usuário do sistema capaz de:
• Personalizar sua representação no sistema através da escolha do
seu apelido;
• Criar itens pessoais;
• Movimentar-se através do ambiente;
• Conversar com outros usuários presentes em uma mesma área
do ambiente;
• Propor uma troca de item para um usuário presente em uma
mesma área do ambiente;
• Aceitar ou rejeitar uma proposta de troca de item feita por um
usuário presente mesma área do ambiente.
4.3 Modelagem
A modelagem do sistema segue os requisitos da Análise Orientada a
Objetos. Nos tópicos a seguir são mostrados os diagramas gerados pela
análise seguidos de explicações sobre o funcionamento do sistema.
4.3.1 Casos de Uso
A partir dos requisitos funcionais foram determinados os casos de uso
do sistema. A Figura 5 representa todos os casos de uso, sendo cada caso
detalhado nos tópicos seguintes.
Capítulo 4 - Resultados 36
Figura 5. Diagrama geral de casos de uso.
Para executar qualquer ação no sistema, o usuário deve estar
previamente cadastrado e logado no mesmo, sendo estas ações definidas
como Signup e Login.
4.3.1.1 Conversar
Descrição: Esta ação permite que os usuários se comuniquem entre
si.
Pré-condições: O usuário deve se localizar em uma parte
compartilhada do ambiente que esteja sendo acessada por outros usuários.
Pós-condições: O usuário poderá receber respostas imprevisíveis de
qualquer outro usuário presente.
4.3.1.2 Mover
Descrição: Está ação permite que os usuários se locomovam pela
estrutura lógica do ambiente.
Pré-condições: Não há pré-condição específica.
Capítulo 4 - Resultados 37
Pós-condições: Ao se mover, o usuário mudará sua localização no
ambiente do sistema.
4.3.1.3 Criar Item
Descrição: Esta ação permite que os usuários criem itens
personalizados que se tornam posses pessoais.
Pré-condições: Se localizar na área pessoal não compartilhada do
sistema.
Pós-condições: Após criar itens, um usuário poderá trocá-los por itens
de outros usuários.
4.3.1.4 Iniciar Troca de Item
Descrição: Esta ação permite que cada usuário inicie um processo de
troca de item com outro usuário.
Pré-condições: Possuir item próprio (executando pelo menos uma vez
a ação Criar Item) e se localizar em uma parte compartilhada do ambiente
que esteja sendo acessada por pelo menos um usuário com itens
disponíveis.
Pós-condições: O usuário que recebe a proposta de troca poderá
aceitar ou rejeitar a troca dos itens.
4.3.1.5 Aceitar Troca de Item
Descrição: Esta ação permite que um usuário aceite uma proposta de
troca de item feita por outro usuário.
Pré-condições: É necessário que qualquer outro usuário tenha
iniciado uma troca de item com o usuário em questão.
Pós-condições: A proposta de troca de item é aceita e a troca é
efetuada.
4.3.1.6 Rejeitar Troca de Item
Descrição: Esta ação permite que um usuário rejeite uma proposta de
troca de item feita por outro usuário.
Capítulo 4 - Resultados 38
Pré-condições: É necessário que qualquer outro usuário tenha
iniciado uma troca de item com o usuário em questão.
Pós-condições: A proposta de troca de item é rejeitada e a troca não é
efetuada.
4.3.2 Diagrama de Classes
A Figura 6 mostra o diagrama de classes do sistema. Para cada caso
de uso existe uma respectiva função, estas somadas às funções
processLogin(), processSignup() e processPing().
Figura 6. Diagrama de classes.
As classes UserActions e UserSession recebem requisições de ações
diretas da interface. Após serem processadas, as requisições são
executadas por uma instância, em escopo de aplicação, da classe
ApplicationControl, essa que, por sua vez, acessa a camada de persistência
de dados através das instâncias das classes EntityManagers. Cada
EntityManager fornece uma interface de controle para a persistência de
dados, podendo mapear sua respectiva classe de entidade (no caso, uma
JavaBean10) para uma tabela na base de dados, sendo ainda capaz de
controlar a transição dos dados da memória para a base e vice-versa.
10 JavaBeans são classes Java que seguem um padrão de estrutura e de acesso aos atributos, facilitando a modularização no armazenamento de informações em sistemas orientados à objetos.
Capítulo 4 - Resultados 39
A classe UserSession inicia uma thread com loop assim que o usuário
loga no sistema. A thread verifica a freqüência de envio de pings, que são
pequenas requisições enviadas da interface por AJAX e que chamam o
método processPing() da classe. O usuário não enviará pings caso perca a
conexão com o servidor, o que será detectado pela thread, que poderá então
mudar o status do usuário para offline.
4.3.3 Diagramas de Seqüência
Cada conjunto de atividades no sistema pode ser resumido a um
único diagrama de seqüência.
A Figura 7 mostra o diagrama de seqüência para o conjunto de ações
Login e Signup.
Figura 7. Diagrama de seqüência 1.
A Figura 8 mostra o diagrama de seqüência para o conjunto de ações
Conversar, Mover, Criar Item, Iniciar Troca de Item, Aceitar Troca de Item e
Rejeitar Troca de Item.
Capítulo 4 - Resultados 40
Figura 8. Diagrama de seqüência 2.
A Figura 9 mostra o diagrama de seqüência para a ação Ping.
Figura 9. Diagrama de seqüência 3.
A ação Ping não exige interferência do usuário e durante o seu
processo não é acessada a base de dados, pois as informações referentes à
ação, como a contagem de pings, são mantidas em memória até que o
usuário seja considerado offline, quando tais informações serão apagadas.
4.3.4 Diagrama Entidade-Relacionamento (DER)
A Figura 10 mostra o relacionamento entre as entidades do sistema.
Algumas dessas entidades e alguns atributos de entidades não possuem
valor correspondente na base de dados por apenas residirem
temporariamente em memória.
Capítulo 4 - Resultados 41
Figura 10. DER.
As entidades Trade e RoomUser não são mapeadas na base de
dados, sendo que cada instância da entidade existirá temporariamente em
memória e não terá informações persistidas. O mesmo é válido para o
atributo chat da entidade Room, onde seu valor só é relevante enquanto a
sala correspondente está sendo acessada.
4.3.5 Fluxograma
Um sistema web exige uma estrutura de navegação através de suas
páginas, como é mostrado na Figura 11.
Capítulo 4 - Resultados 42
Figura 11. Fluxograma de páginas do sistema.
A navegação do usuário consiste em se cadastrar e logar no sistema
para então ter acesso às páginas Home e Room. A partir da página Home, o
usuário é capaz de executar as ações Criar Items e Mover. Ao se Mover o
usuário acessará a página Room, gerada dinamicamente de acordo com a
posição do usuário do sistema. Na página Room é permitido ao usuário
executar as ações Conversar, Mover, Iniciar Troca de Item, Aceitar Troca de
Item e Rejeitar Troca de Item de acordo com seus respectivos pré-requisitos.
4.4 Interface
A interface do sistema foi escrita nas especificações do XHTML 1.0 e
CSS. Seu conteúdo dinâmico é gerado através da JSTL e atualizado com
funções Javascript que implementam a técnica AJAX.
A Figura 12 mostra a tela inicial do sistema.
Figura 12. Visualização da página Index.
Capítulo 4 - Resultados 43
A Figura 13 mostra a página Home sendo acessada por um usuário
após ter efetuado o Login. Nessa página é possível Criar Items e visualizar a
lista completa dos itens pessoais. O acesso a essa parte do sistema não é
compartilhado. Cada usuário acessa uma Home própria sem interferência de
outros usuários.
Figura 13. Visualização da página Home.
A Figura 14 mostra a página Room sendo acessada pelo mesmo
usuário. Sua localização no sistema se dá na sala chamada City Square,
que está sendo acessada por mais um usuário no momento registrado. Na
página Room é possível se Mover, Conversar e efetuar as ações referentes
à troca de items. O menu de opções para efetuar a ação Mover é gerado de
acordo com a posição das salas no sistema. Os atributos x e y de uma
entidade Room definem sua posição num sistema de coordenadas XY. No
menu de movimento são mostradas somente as salas próximas a sala
acessada, ou seja, somente as salas com coordenada de x+1, x-1, y+1 ou y-
Capítulo 4 - Resultados 44
1. O link para movimento com o nome da sala é mostrado ao lado da sua
respectiva direção de movimento: East, West, North ou South.
Figura 14. Visualização da página Room.
Na página Room são utilizadas quatro funções Javascript aplicando a
técnica AJAX. Uma função, também presente nas outras páginas, é a ping()
que, a cada meio segundo, envia para o servidor as informações do usuário,
o que o mantém com status online. Já as outras funções fazem requisições a
cada dois segundos: uma verifica se há mensagens novas no chat, outra
verifica os usuários presentes na sala e a última verifica se existem novas
propostas de troca de item para o usuário ativo. Este conjunto de requisições
assíncronas (não sincronizadas com as ações do cliente) mantém a interface
atualizada, mas ainda com um pequeno atraso.
Capítulo 4 - Resultados 45
4.5 Testes
Pelo falo do sistema desenvolvido ser um protótipo, foram realizados
somente testes em pequena escala.
O teste realizado se constituiu no acesso simultâneo ao sistema por
cinco usuários. Sem instruções iniciais, todos foram capazes de realizar as
ações que desejavam com sucesso, experimentando o ambiente e
interagindo entre si de forma natural.
O sistema mostrou-se compatível com três dos navegadores web
mais populares: Internet Explorer 7 (MICROSOFT, 2008), Mozilla Firefox 2
(MOZILLA, 2008) e Opera 9 (OPERA SOFTWARE, 2008). Todos os
recursos funcionaram corretamente, salvo alguns pequenos detalhes de
renderização dos documentos XHTML, que não podem ser considerados
erros, mas sim peculiaridades de cada navegador.
Capítulo 5 - Discussão 46
5. DISCUSSÃO
As características do novo sistema garantem que este seja
considerado um mundo virtual. Todos os requisitos foram implementados
permitindo que o mundo virtual seja acessado por uma interface web
compatível com os padrões e recomendações da W3C.
A comunicação em tempo real não é uma propriedade comum em
sistemas web, sendo o maior fator complicador na geração de uma
simulação. Ainda, por ser um protótipo, não há uma simulação específica
almejada, tendo destaque apenas para a simulação de localização espacial,
proporcionada pelo mapeamento lógico das salas do ambiente no sistema
de coordenadas XY.
A identidade do usuário é formada por seu apelido, pelos itens que
carrega e por suas atitudes nas conversas com outros usuários, mas devido
à falta de objetividade na simulação, esta também se tornou uma
característica genérica.
Os recursos de interface permitem utilização de imagens além do que
foi utilizado do protótipo. Tais recursos influenciam de maneira positiva na
imersão proporcionada pelo sistema.
5.1 Comparação Entre os Sistemas
A Tabela 1 mostra a comparação entre as propriedades dos sistemas
analisados e do novo sistema desenvolvido.
Capítulo 5 - Discussão 47
Tabela 1. Comparação entre sistemas.
Achaea Second Life Mundo Virtual Web
Interface Interface simples e facilmente acessível. Por ser em modo texto, a interação é menos intuitiva. Exige utilização de aplicativo não comum a usuários leigos em informática.
Interface 3D complexa e de difícil acesso. Exige hardware de custo caro e o aplicativo cliente é limitado aos três sistemas operacionais mais conhecidos (Windows, Mac OS X e Linux). Permite interação dinâmica e intuitiva.
Interface de complexidade baixa e alta acessibilidade. É em grande parte composta por modo texto, mas através dos estilos de formatação e da estrutura HTML, se torna mais intuitiva. Permite a utilização de imagens estáticas e até pequenas animações e efeitos visuais através de Javascript.
Comunicação A comunicação ocorre em tempo real.
A comunicação ocorre em tempo real e, devido ao Voice Chat, faz parte da simulação do ambiente 3D.
A comunicação ocorre em tempo real.
Simulação Simula um ambiente de fantasia medieval com uma topologia consistente.
Simula um ambiente genérico em 3D, sem topologia na interligação dos ambientes e com consistência fragmentada.
Simula um ambiente genérico com topologia consistente.
Identidade Permite a criação de identidade detalhada desde que associada à simulação.
Permite a criação de identidade detalhada visualmente e sem restrições quanto a uma simulação específica, ou seja, cada usuário pode criar uma identidade diferente para cada evento dentro do ambiente.
Permite a criação de uma identidade simples.
Imersão Associa os fatores imersivos dos mundos virtuais à Imersão Perceptiva.
Associa os fatores imersivos dos mundos virtuais à Imersão Perceptiva e a muitos elementos da Imersão Receptiva.
Associa os fatores imersivos dos mundos virtuais à Imersão Perceptiva e a alguns elementos da Imersão Receptiva.
Comparando o Mundo Virtual Web com Achaea, pode-se perceber
que a reprodução de todas as características de um mundo virtual em modo
texto é viável em uma interface web. Já a análise do Second Life demonstra
que recursos de interface sacrificam a acessibilidade e nem sempre tornam
Capítulo 5 - Discussão 48
o ambiente mais imersivo, o que confirma a vantagem do sistema
desenvolvido ter acesso por navegadores web.
Capítulo 6 - Conclusões 49
6. CONCLUSÕES
A realização do projeto mostra que as tecnologias de
desenvolvimento de sistemas web podem ser utilizadas para o
desenvolvimento de mundos virtuais. Os recursos disponíveis em uma
interface web podem contribuir para a imersão virtual, tornando possível
acrescentar imagens e até mesmo pequenas animações à estrutura de um
mundo virtual em modo texto.
O Mundo Virtual Web é mais acessível que um mundo virtual de
interface 3D e mais interativo que os sistemas em modo texto. Com ele é
possível proporcionar alto grau de imersão aliado a um maior nível de
acessibilidade.
6.1 Contribuições
Este trabalho contribui para a ampliação do uso das tecnologias de
sistemas web, mostrando que tais recursos podem ser empregados de
maneira inédita. O trabalho ainda contribui para uma nova visão no
desenvolvimento de mundos virtuais, mostrando que é possível proporcionar
alto grau de imersão desde que os conceitos de composição dos mundos
virtuais, mostrados neste trabalho, sejam aplicados.
6.2 Trabalhos Futuros
Para a continuação das pesquisas e contribuições presentes neste
trabalho, é recomendado recorrer aos seguintes temas:
• Aplicação das recomendações da W3C e suas relações com a
acessibilidade através da web;
• Desenvolvimento de Sistemas Distribuídos, com foco no
desempenho da persistência e concorrência de dados em
sistemas web;
• Semiótica, na contribuição para os estudos de interface e
usabilidade em conjunto com os conceitos de imersão e
interatividade.
Capítulo 6 - Conclusões 50
6.2.1 Implementações Futuras
Como o sistema desenvolvido é um protótipo, todas as áreas de
implementação podem ser aprimoradas. Abaixo seguem as principais
sugestões para:
• Persistência de dados: Utilização de APIs de persistência como
o Hibernate, aumentando a maleabilidade, independência e
agilidade no desenvolvimento de entidades;
• Interface: Utilização de bibliotecas Javascript como a Prototype
(PROTOTYPE, 2008) para facilitar o gerenciamento e criação de
requisições AJAX e manipulação de dados no lado do cliente;
• Simulação: Aplicação de um tema/objetivo para a simulação, a
fim de verificar, ou até mesmo ampliar, os limites de
escalabilidade, concorrência e centralização que este tipo de
sistema possui. É possível tirar vantagem do ambiente de
desenvolvimento Java EE implementando suas outras APIs, como
a de gerenciamento de entidades EJB (Enterprise JavaBeans).
7. REFERÊNCIAS
ACHAEA. Disponível em: <http://www.achaea.com/>. Acessado em 2 de abril de 2008. BARTLE, Richard A. Designing Virtual Worlds . Indianapolis: New Riders Publishing, 2003. 768 p. HIBERNATE. Disponível em: <http://www.hibernate.org/>. Acessado em 2 de abril de 2008. IROM REALMS ENTERTAINMENT. Disponível em: <http://www.ironrealms.com/>. Acessado em 2 de abril de 2008. KOSTER, Raph. Online World Timeline . Disponível em: <http://www.raphkoster.com/gaming/mudtimeline.shtml>. Acessado em 2 de abril de 2008. MCCLOUD, Scott. Understanding Comics . Estados Unidos da América: Harper Paperbacks, 1994. 224p. MICROSOFT. Internet Explorer: Home Page . Disponível em: <http://www.microsoft.com/brasil/windows/products/winfamily/ie/default.mspx>. Acessado em 2 de abril de 2008. MOZILLA. Firefox . Disponível em: <http://www.mozilla.com/>. Acessado em 2 de abril de 2008. NETBEANS. Disponível em: <http://www.netbeans.org/>. Acessado em 2 de abril de 2008. OEIRAS, Janne Yukiko Y.; ROCHA, Heloísa Vieira. Uma modalidade de comunicação mediada por computador e suas várias in terfaces . Campinas, SP: UNICAMP, 2000. OLSON, Steven Douglas. AJAX on Java . Estados Unidos da América: O’Reilly, 2007. 228p. OPERA SOFTWARE. Opera Browser: Home Page . Disponível em <http://www.opera.com/>. Acessado em 2 de abril de 2008. ORACLE. TopLink . Disponível em: <http://www.oracle.com/technology/products/ias/toplink/index.html>. Acessado em 2 de abril de 2008. POSTGRESQL. Disponível em: <http://www.postgresql.org/>. Acessado em 2 de abril de 2008.
PROTOTYPE. Disponível em: <http://www.prototypejs.org/>. Acessado em 2 de abril de 2008. SECOND LIFE. Disponível em: <http://secondlife.com/>. Acessado em 2 de abril de 2008. SULER, John. The Psychology of Cyberspace . Disponível em: <http://www.rider.edu/~suler/psycyber/psycyber.html>. Acessado em 2 de abril de 2008. SUN. Java Technology . Disponível em: <http://www.sun.com/java/>. Acessado em 2 de abril de 2008. WIKIPEDIA. Persona . Disponível em: <http://en.wikipedia.org/wiki/Persona>. Acessado em 2 de abril de 2008. W3C. World Wide Web Consortium . Disponível em: <http://www.w3c.org>. Acessado em 2 de abril de 2008. VILHJÁLMSSON, Hannes Högni. Final Project - Avatar Interaction , 1996. Disponível em: <http://alumni.media.mit.edu/~hannes/project/>. Acessado em 2 de abril de 2008. VILHJÁLMSSON, Hannes Högni. Avatar Augmented Online Conversation . Estados Unidos da América: MIT, 2003.
Autorização
Autorizo a reprodução e/ou divulgação total ou parcial da presente
obra, por qualquer meio convencional ou eletrônico, desde que citada a
fonte.
Nome do autor: Márcio Dalle Lucca Freire de Carvalho
Assinatura do autor: ____________________________
Instituição: Universidade Tecnológica Federal do Paraná
Local: Curitiba, Paraná.
Endereço: Avenida Sete de Setembro, 3165. Rebouças.
E-mail: [email protected]