You are on page 1of 106

MODELO PARA GERENCIAMENTO REMOTO DE FALHAS EM

ARQUITETURAS DE AMBIENTES VIRTUAIS EM REDES

por

Luiz David S. de P. Camplo

_____________________________

Dissertao Apresentada ao
Mestrado em Cincia da Computao
Universidade Federal do Cear

Orientadores:
Mauro Cavalcante Pequeno, Dr.
Miguel Franklin de Castro, Dr.

Setembro, 2006

At mesmo uma jornada de mil quilmetros


comea com um primeiro passo.
Lao Tse

ii

Agradecimentos
Agradeo, primeiramente, a Deus, o primeiro e maior de todos os seres virtuais. A
meus pais, Jos Maria e Marta, e familiares, pelo enorme incentivo recebido; minha
amiga e namorada, Lediana, por todo o carinho, ateno e todos os momentos preciosos
que tivemos juntos mesmo em pocas to difceis.
Agradeo tambm ao professor Mauro Pequeno, que me confiou a difcil misso de
concluir este curso, e aos professores Miguel Franklin e Fernando Carvalho, por todo o
conhecimento transmitido nos ltimos meses. Certamente, este trabalho no seria possvel
sem o apoio de tantos outros companheiros de laboratrio, como Camilo, Melo Jr.,
W@nder, George, Glaudiney, Humberto, Gilvan, Palcio, Ricardo e tantos outros, que
sempre indicaram boas solues para os mais variados problemas.
H tambm a quota de participao dos amigos distantes de Natal, Joo Pessoa,
Recife e, especialmente, So Paulo, que sempre me abrigaram durante as mais divertidas
viagens. Amigos de verdade s estes mesmo...
Aos amigos alvinegros, que nos momentos mais difceis me mostraram que
preciso sempre seguir em frente e acreditar.
Por fim, ento, agradeo aos que sempre acreditaram neste trabalho, que mesmo a
distncia estiveram virtualmente sempre ao meu lado com bons pensamentos.

Sumrio
O uso das tcnicas de Realidade Virtual para interao e colaborao entre usurios
atravs das redes de computadores induz a criao dos Ambientes Virtuais em Redes
(AVR). A crescente utilizao e expanso das arquiteturas de AVR torna indispensvel o
gerenciamento dos recursos distribudos utilizados por esses ambientes de modo que seja
garantida uma boa qualidade nos servios providos aos seus usurios. Esse gerenciamento
envolve o monitoramento (superviso) e o controle de aplicaes distribudas em mquinas
conectadas rede.
Especificamente para sistemas de ambientes virtuais voltados para trabalhos
colaborativos, falhas tem conseqncias maiores. Nesses sistemas, usurios conduzem, em
tempo real, tarefas pr-estabelecidas e direcionadas a um objetivo comum. Uma pane de
sistema representaria a perda parcial ou total do trabalho colaborativo realizado (Gomes,
2005). Logo, necessrio um contnuo monitoramento e controle do sistema de ambientes
virtuais de modo que as conseqncias de quaisquer falhas ocorridas sejam minimizadas.
Os altos nveis de confiabilidade e disponibilidade exigidos podem ser alcanados com o
emprego de tcnicas de tolerncia a falhas.
O gerenciamento do sistema AVR consiste no gerenciamento do ciclo de vida dos
mundos virtuais instanciados neste sistema. Os principais requisitos para gerenciamento
das instncias dos mundos virtuais no sistema so mecanismos para criao, configurao,
migrao e excluso dos mundos.
O principal objetivo dessa dissertao a definio de um modelo para
gerenciamento de uma arquitetura de ambientes virtuais em rede onde so usadas tcnicas
previstas na rea de Gerncia de Redes para fins de anlise e resoluo de falhas em
componentes crticos do sistema. Por fim, descrito um estudo de caso onde o modelo de
gerenciamento de falhas integrado a uma arquitetura de AVR.

ndice
Lista de Apndices......................................................................................................................7
Lista de Figuras ..........................................................................................................................8
Lista de Tabelas ..........................................................................................................................9
Captulo 1 .................................................................................................................................10
Introduo.................................................................................................................................10
1.1 Contexto e Motivao.................................................................................................10
1.2 Objetivos.....................................................................................................................11
1.3 Estrutura do trabalho ..................................................................................................12
Captulo 2 .................................................................................................................................13
Gerenciamento de Redes ..........................................................................................................13
2.1 Introduo...................................................................................................................13
2.2 Motivao ...................................................................................................................14
2.3 Arquitetura de gerenciamento de redes ......................................................................16
2.4 reas funcionais .........................................................................................................19
2.5 Padres de gerenciamento ..........................................................................................22
2.6 Consideraes Finais ..................................................................................................25
Captulo 3 .................................................................................................................................27
Ambientes Virtuais em Redes ..................................................................................................27
3.1 Introduo...................................................................................................................27
3.2 Caractersticas e Requisitos........................................................................................29
3.3 Aplicaes educacionais.............................................................................................33
3.5 Outras Aplicaes.......................................................................................................39
3.6 Consideraes finais ...................................................................................................42
Captulo 4 .................................................................................................................................43
Aspectos de desenvolvimento de Ambientes Virtuais em Redes.............................................43
4.1 Viso geral..................................................................................................................43
4.2 Escalabilidade.............................................................................................................44
4.3 Comunicao em redes...............................................................................................46
4.4 Tcnicas compensatrias ............................................................................................52
4.5 Gerncia de falhas em AVR .......................................................................................55
4.6 Consideraes finais ...................................................................................................58
5

Captulo 5 .................................................................................................................................60
NuVEM Um modelo para gerenciamento de AVR...............................................................60
5.1 Viso geral..................................................................................................................60
5.2 Requisitos para gerncia remota de AVR ..................................................................60
5.3 Funcionamento do NuVEM .......................................................................................63
5.4 Trabalhos relacionados ...............................................................................................73
5.5 Consideraes Finais ..................................................................................................74
Captulo 6 .................................................................................................................................75
Gerenciamento Remoto de Falhas em uma arquitetura de AVR..............................................75
6.1 Introduo...................................................................................................................75
6.2 Arquitetura CRAbCVE ..............................................................................................75
6.3 Integrao do NuVEM arquitetura CRAbCVE .......................................................79
6.4 Testes de funcionalidade ............................................................................................86
Captulo 7 .................................................................................................................................91
Concluses e Trabalhos Futuros...............................................................................................91
7.1 Principais contribuies..............................................................................................92
7.2 Trabalhos futuros........................................................................................................92
Referncias Bibliogrficas........................................................................................................95
Apndices ...............................................................................................................................102

Lista de Apndices
Apndice A Cdigo da interface JNI.............................................................................. 103
Apndice B Diagrama de seqncia do teste de validao ............................................ 105

Lista de Figuras
Figura 2.1. Camadas de uma arquitetura de gerenciamento (Stallings, 1999). ................... 16
Figura 2.2. Arquitetura bsica para gerenciamento de redes............................................... 18
Figura 2.3. Modelo de gerenciamento distribudo............................................................... 18
Figura 3.1. Simulao de batalha area no NPSNET-V...................................................... 35
Figura 3.2. Centro de Turismo Virtual ................................................................................ 36
Figura 3.3. Interface inicial do Laboratrio de Qumica ..................................................... 37
Figura 3.4. Mdulo de visualizao de Molculas. ............................................................. 37
Figura 3.5 Interface da ferramenta de autoria...................................................................... 38
Figura 3.6. Alguns ngulos de viso de um treinamento..................................................... 39
Figura 3.7. Viso do ambiente virtual AlphaWorlds........................................................... 40
Figura 3.8. Interface do ambiente Blaxxun. ........................................................................ 41
Figura 3.9. Mundos virtuais disponveis no Papo3D. ......................................................... 41
Figura 4.1. Modelo centralizado.......................................................................................... 46
Figura 4.2. Modelo distribudo. ........................................................................................... 47
Figura 4.3. Unicast (trs mensagens enviadas, uma para cada usurio).............................. 49
Figura 4.4. Broadcast (apenas uma mensagem enviada, todos recebem)............................ 49
Figura 4.5. Multicast (uma mensagem enviada somente para o Grupo 3) .......................... 50
Figura 5.1. Iniciao do Gerente. ........................................................................................ 66
Figura 5.2. Iniciao do Agente. ......................................................................................... 67
Figura 5.3. Instanciao remota........................................................................................... 68
Figura 5.4. Resoluo de falha em Mundo Virtual.............................................................. 70
Figura 5.5. Resoluo de falha em Agente.......................................................................... 71
Figura 5.6. Resoluo de falha no Gerente.......................................................................... 72
Figura 6.1. Componentes da arquitetura CRAbCVE. ......................................................... 76
Figura 6.2. Integrao do Gerente ao componente GPS...................................................... 80
Figura 6.3. Integrao do Agente aos componentes do sistema CRAbCVE....................... 81
Figura 6.4. Integrao dos componentes do NuVEM ao sistema CRAbCVE. ................... 83
Figura 6.5. Interfaces web e Java do Gerente. ..................................................................... 84
Figura 6.6. MBeans implementados pelo Agente. .............................................................. 85
Figura 6.7. Interface AgentConnectionsMBean. ................................................................. 85
Figura 6.8. Mtrica simples para Instanciao remota. ....................................................... 86
Figura 6.9 Aplicao emuladora de mundo virtual. ............................................................ 87
Figura 6.10. Gerente iniciado em modo passivo (espera). .................................................. 88
Figura 6.11. Agente conectando ao Gerente BONO depois de receber notificao de falha
no Gerente ENGHAW. Em seguida, o Agente recebe uma instncia de Mundo Virtual 5.88
Figura 6.12. Agentes conectando ao Gerente reserva. ........................................................ 89
Figura 6.13. Gerente recebendo notificao de falha em mundo virtual e repassando para
nova instanciao................................................................................................................. 89
Figura 6.14. Gerente recuperando mundos virtuais aps falha em Agente......................... 90

Lista de Tabelas
Tabela 3.1. Requisitos de fidelidade com o mundo real em ambientes virtuais. ................ 31
Tabela 4.1. Vantagens e desvantagens dos principais protocolos e tcnicas. ................Erro!
Indicador no definido.

Captulo 1
Introduo
1.1 Contexto e Motivao
Nos ltimos anos, a evoluo das redes de computadores, representadas tanto pelas
intranets quanto pela Internet, aumentou sensivelmente as possibilidades de interao entre
indivduos. A variedade de informaes e as possibilidades de interao encontradas
especialmente na World-Wide Web levaram pesquisadores a procurar novos meios para
auxiliar a interao entre indivduos de forma distribuda. Nesse contexto, houve um
grande aumento de ambientes computacionais que suportam a realizao de atividades
cooperativas bem estruturadas entre pessoas geograficamente dispersas.
Em conseqncia dessa crescente utilizao e expanso das redes de computadores
e sistemas distribudos, torna-se indispensvel o gerenciamento do sistema para que seja
garantida uma boa qualidade nos servios providos aos seus usurios. Esse gerenciamento
envolve o monitoramento (superviso) e o controle de recursos distribudos das mquinas
conectadas rede.
Nos ltimos anos, a significativa evoluo do poder de processamento grfico dos
computadores e o grande aumento da capacidade de transmisso de dados em redes de
computadores tm viabilizado o uso de aplicaes de Realidade Virtual (RV), tornando-as
cada vez mais atrativas (Leite Jr, 2000).
Os Ambientes Virtuais em Rede (AVR) representam uso de tecnologias de RV para
interao e colaborao entre usurios atravs das redes de computadores, possibilitando
que mltiplos usurios localizados em diferentes partes do planeta interajam em tempo
real, buscando, de modo geral, a criao de experincias imersivas por meio de imagens
tridimensionais realistas e som estreo (Singhal & Zyda, 1999; apin et. al, 1999).
No entanto, comum haver simultaneamente um grande nmero de usurios
inseridos no ambiente virtual, o que pode causar situaes de comprometimento de
desempenho do sistema, tendo em vista a crescente utilizao dos recursos
disponibilizados (Gomes, 2005). Alm disso, devido instabilidade das redes de
comunicao e at mesmo dos prprios dispositivos fsicos (discos rgidos, memrias,

10

processadores, placas-me, etc.), bastante comum a ocorrncia de perdas de dados


momentneas ou at mesmo panes gerais de sistema (Tanenbaum, 2002; Jalote, 1994).
Os altos nveis de confiabilidade e disponibilidade exigidos em sistemas de tempo
real podem ser alcanados com o emprego de tcnicas de tolerncia a falhas. No entanto, a
aplicao de tais tcnicas apresenta vrios desafios, ficando sua aplicao quase sempre
restrita a sistemas de ultra confiabilidade, como computadores de bordo e controle de
plantas nucleares, e a sistemas de alta disponibilidade, como centrais telefnicas e
servidores web. Empregando sempre algum tipo de redundncia, geralmente de
componente de hardware, aplicaes de tolerncia a falhas aumentam tanto o custo de
desenvolvimento como de fabricao do sistema (Tanenbaum, 2002).
Especificamente para sistemas de ambientes virtuais voltados para trabalhos
colaborativos, falhas tm conseqncias maiores. Nesses sistemas, usurios conduzem, em
tempo real, tarefas pr-estabelecidas e direcionadas a um objetivo comum. Uma pane de
sistema representaria a perda parcial ou total do trabalho colaborativo realizado (Gomes,
2005). Assim, necessrio um contnuo monitoramento e controle do sistema de ambientes
virtuais de modo que as conseqncias de quaisquer falhas ocorridas sejam minimizadas.
O gerenciamento do sistema de AVR consiste no gerenciamento do ciclo de vida
dos mundos virtuais instanciados neste sistema. Os principais requisitos para
gerenciamento das instncias dos mundos virtuais no sistema so mecanismos para criao,
configurao, migrao e excluso dos mundos. Para este fim, importante que o
administrador tenha ferramentas especializadas de gerenciamento que dem uma viso
ampla e transparente da localizao das instncias de mundos virtuais na rede (Almendra et
al., 2003).

1.2 Objetivos
O presente trabalho objetiva explorar o uso de tecnologias de gerenciamento de
redes para o desenvolvimento de um modelo que possibilita administrar de modo mais
otimizado uma arquitetura de AVR, provendo mecanismos para deteco e resoluo de
falhas no sistema. Alm disso, o modelo prover ao administrador do sistema ferramentas
simples e portveis para gerenciamento de maneira unificada.
Para isso, sero observados os impactos da utilizao dos componentes da
arquitetura em tempo de execuo, verificando possveis falhas a serem resolvidas. Por
conseguinte, so pesquisados meios para adicionar arquitetura mecanismos para

11

automatizar e simplificar o processo de disponibilizao e recuperao (em caso de falha)


de ambientes virtuais.
Com base nessas observaes, ser definido um modelo para gerncia de falhas em
mundos virtuais de sistemas AVR, o NuVEM1. De modo geral, este modelo consiste na
utilizao de mecanismos de gerncia (e, em especial, mecanismos de tolerncia a falhas)
em uma arquitetura de AVR. Desde j, prevista a implementao de aplicaes
responsveis pelo controle e monitoramento do sistema.
Como estudo de caso, o NuVEM ser incorporado arquitetura CRAbCVE
(Gomes, 2005), que uma arquitetura de AVR com propsitos educacionais.

1.3 Estrutura do trabalho


O presente trabalho encontra-se organizado em sete captulos, cujos contedos esto
resumidos a seguir.
No Captulo 2, apresentam-se os conceitos pertinentes rea de Gerenciamento de
Redes, discutindo-se seus aspectos motivacionais, funes de gerenciamento, padres, etc.
No Captulo 3, a tecnologia de AVR apresentada, verificando-se seus conceitos e
requisitos necessrios para disponibiliz-los atravs de redes de computadores. Ainda no
Captulo 3 so detalhados alguns exemplos de AVR. No Captulo 4, discutem-se os
aspectos de desenvolvimento e gerncia de AVR, relatando-se principalmente aspectos de
comunicao em redes, como modelos de transmisso e protocolos. Alm disso, no
Captulo 4, expem-se conceitos de tolerncia a falhas voltados para sistemas distribudos.
O Captulo 5 apresenta o NuVEM, um modelo para gerenciamento de falhas para uma
arquitetura de AVR, detalhando cenrios de utilizao e componentes envolvidos. O
Captulo 6 apresenta os detalhes do estudo de caso realizado utilizando a arquitetura de
ambientes virtuais CRAbCVE (Gomes, 2005). Por fim, no Captulo 7, so apresentadas as
concluses deste trabalho e indicadas algumas sugestes de trabalhos futuros.

Do ingls, Networked Virtual Environment Management model.

12

Captulo 2
Gerenciamento de Redes
2.1 Introduo
Devido popularizao do computador nas ltimas dcadas, tornou-se muito
comum o uso de redes de computadores em residncias, instituies acadmicas e
estabelecimentos comerciais e governamentais. Tais redes so muitas vezes conectadas
Internet e oferecem vrios tipos de recursos interativos e servios aos seus usurios. No
entanto, apesar de quase duas dcadas de pesquisas nas reas de processamento distribudo
e balanceamento de cargas, ainda comum a implementao de redes de computadores de
forma simplista e ineficiente (Kon & Marques, 2002).
As facilidades alcanadas com o uso das redes de computadores tendem a estimular
seu crescimento, o que exige um maior planejamento e manuteno. Ao se considerar uma
rede distribuda por vrios lugares fisicamente dispersos, a tarefa de gerenciamento tornase complexa e indispensvel. Alm disso, com a grande utilizao de dispositivos
heterogneos ligados rede, necessrio haver um esquema que oferea solues de
gerenciamento adaptveis e estruturadas, permitindo a monitorao de equipamentos
compatveis ou no (Pereira, 2001).
Portanto, com o crescimento das redes, devido ao nmero tanto de usurios quanto
de dispositivos conectados, motivaram o desenvolvimento de ferramentas de gerncia de
redes. A rea de gerncia de redes foi inicialmente impulsionada pela necessidade de
monitorao e controle do universo de dispositivos que compem as redes de
comunicao. Contudo, no foi preciso muito tempo at que os mecanismos de gerncia de
redes fossem aplicados tambm gerncia de aplicaes distribudas ao longo das redes.
De acordo com Oliveira e seus co-autores (1998), Gerenciamento de Redes uma
rea de estudo conceituada como a coordenao tanto de recursos materiais (dispositivos
fsicos) como de recursos lgicos (aplicaes, protocolos e servios), ambos distribudos
pela rede. Assim, gerenciar uma rede significa adicionar ferramentas especficas para
inicializao, monitorao e controle de recursos de modo a permitir o funcionamento da
rede dentro de um patamar de Qualidade de Servio (QoS) aceitvel para os usurios e
garantido, na medida do possvel, confiabilidade e segurana na transao de informaes.

13

Com o intuito de resolver os problemas de gerenciamento de redes de grande


heterogeneidade foram desenvolvidos os padres OSI e SNMP, que fornecem solues
coerentes e estruturadas, permitindo a administrao de recursos independente de suas
compatibilidades (Carvalho, 1993). No entanto, na prtica estes padres se mostraram
ineficientes para o gerenciamento de grandes redes, o que proporcionou a criao de
padres de gerncia baseados em tecnologias web.
Ademais, o desenvolvimento de um sistema de gerncia deve ser guiado pelo fluxo
de servios de cada organizao, levando sempre em considerao suas peculiaridades. Se
as facilidades de gerenciamento no resolvem direta ou indiretamente os problemas de uma
rede, o sistema de gerncia torna-se intil.
So atividades comuns do gerenciamento de redes registrar a ocorrncia de eventos
especficos, detectar e solucionar falhas na rede, acompanhar o desempenho da rede,
contabilizar e garantir a segurana fsica e lgica dos recursos.
So vrios os aspectos motivacionais para o uso de mecanismo de gerncia de
redes. Alguns dos principais aspectos so discutidos na seo 2.2.
Basicamente, a tarefa de gerncia consiste em trs etapas, a de coleta de dados
(oriundos dos recursos gerenciados), diagnstico (tratamento e anlise a partir dos dados
coletados) e ao (a ser realizada sobre os recursos). Para isso foram desenvolvidos os
modelos centralizado e distribudo de arquitetura de gerenciamento, vistos com mais
detalhes na seo 2.3.
Com o objetivo de modelar os requisitos de gerncia, a rea de Gerenciamento de
Redes foi dividida em 5 (cinco) reas funcionais, as quais sero abordadas na seo 2.4.
Em seguida, na seo 2.5, so mostrados alguns dos padres de gerenciamento mais
utilizados, como o SNMP e o OSI, alm de outros novos padres que esto se firmando
nos ltimos anos. Por fim, na seo 2.6, tecem-se algumas consideraes finais.

2.2 Motivao
Usualmente, numa grande organizao so estipuladas metas com o intuito de
torn-la cada vez maior. Assim, medida que essa organizao cresce, comum haver
uma dependncia funcional em seu sistema de comunicao. O crescimento da organizao
implica no crescimento do sistema de comunicao, aumentando o nmero de usurios e
recursos inseridos. Como conseqncia disso, surge a importncia do uso de mecanismos
de gerncia eficientes (Carvalho, 1993).

14

Assim, as redes de computadores e os seus recursos associados tm tido tanta


importncia para uma organizao que elas basicamente "no podem falhar", fazendo com
que os nveis de ocorrncia de falhas e de degradao de desempenho considerados
aceitveis diminuam cada vez mais. Em alguns casos, estes nveis podem tender a quase
zero, dependendo da organizao e do tipo de aplicaes utilizadas (Stallings, 1999).
No entanto, a tarefa de gerenciamento de redes por si s complexa. Na proporo
em que as redes tornam-se complexas (em tecnologias), maiores (em extenso) e
heterogneas (em elementos utilizados, tanto hardware como software), mais complicado
torna-se o gerenciamento. Logo, o gerenciamento no deve ser realizado somente por
recursos humanos especializados, preciso ter ferramentas automatizadas, pois estas
permitem simplificar o processo de gerncia. Alm disso, possibilitam a concentrao das
funes de monitoramento e controle do funcionamento da rede em um ou mais pontos,
viabilizando que um nico operador exera efetivo controle sobre uma infra-estrutura
distribuda, independente das distncias entre os recursos envolvidos.
So vrios os benefcios provenientes do uso de mecanismos para gerenciamento de
redes. Como exemplo, a seguir so expostos alguns destes benefcios. Esta lista de
benefcios baseada nos estudos feitos por Pras (1995), Sharda e seus co-autores (1997) e
Gupta e seus co-autores (1999):
Reduo de custos - atravs do uso de mecanismos de gerncia possvel reduzir
os custos totais de propriedade do sistema de comunicao. Dentre os custos esto
desde recursos humanos especializados para manuteno do sistema at recursos
fsicos e/ou lgicos utilizados.
Melhoria no desempenho e aumento de disponibilidade do sistema atravs do
acompanhamento dos nveis de utilizao da rede possvel reduzir gargalos no
sistema de forma pr-ativa. Alm disso, possvel detectar e solucionar falhas nas
redes rapidamente por meio do uso de ferramentas de monitorao, aumentando o
grau de disponibilidade dos servios providos pelo sistema.
Maior controle no acesso a recursos dada a alta demanda de recursos durante a
fase de execuo do sistema, torna-se complicada a contabilizao da utilizao dos
mesmos. Logo, atravs de mecanismos de bilhetagem possvel cobrar por
utilizao de recursos. Alm disso, simplifica um possvel planejamento de
expanso do sistema atravs da verificao dos pontos de grande utilizao ou
gargalos na rede.

15

Aumento dos nveis de segurana dependendo do tipo de aplicao, pode ser


requisito de alta prioridade a segurana dos recursos ligados ao sistema. Logo,
atravs do uso de mecanismos de segurana torna-se possvel um maior controle
sobre os recursos gerenciados.
Aumento da flexibilidade dos procedimentos operacionais atravs da
simplificao da execuo de procedimentos e tarefas de manuteno usuais como
automao de tarefas, realizao de inventrios, distribuio de softwares entre
outras.
Maior adaptao mediante mudanas de requisitos do sistema bastante
comum haver mudanas nos requisitos de usurios durante a fase operacional do
sistema. Logo, atravs do uso de ferramentas de gerenciamento possvel adaptar o
sistema, de maneira efetiva, s mudanas decorrentes, reaproveitando ao mximo a
estrutura do sistema, bem como seus recursos gerenciados.
Como conseqncia dos benefcios supracitados, tem-se a melhoria na qualidade de
servios providos aos usurios do sistema, bem como o aumento na facilidade de
administrao do sistema como um todo.

2.3 Arquitetura de gerenciamento de redes


Uma arquitetura para um sistema de gerncia consiste numa coleo de ferramentas
para monitorar e controlar recursos e servios contidos na rede. Esta arquitetura
composta por quatro camadas de funcionalidades e uma camada de dados, alm do
protocolo de gerenciamento (Figura 2.1).

Figura 2.1. Camadas de uma arquitetura de gerenciamento (Stallings, 1999).

16

Base de informaes gerenciadas compreende um conjunto de variveis usadas


para representar informaes estticas ou dinmicas vinculadas a um determinado
recurso ou servios gerenciado. Grande parte das funcionalidades da arquitetura
destina-se troca de dados existente na base de informaes gerenciadas. mais
conhecida na literatura como MIB (Management Information Base).
Objetos gerenciados so dispositivos, aplicaes ou quaisquer outros recursos e
servios a serem monitorados/controlados pela arquitetura.
Entidades de gerenciamento aplicaes contidas nas estaes do sistema com o
objetivo de coletar e armazenar dados acerca dos objetos locais gerenciados, alm
de responder s requisies feitas pelos gerentes do sistema. Geralmente, so mais
conhecidas como agentes.
Gerentes do sistema uma ou mais entidades de gerenciamento designadas para
reunir informaes provenientes de outras entidades, formando uma base de dados
para anlise e gerao de relatrios gerais. Adicionalmente, podem programar
outras entidades de gerenciamento (agentes) para enviarem notificaes de modo
automtico mediante regras pr-estabelecidas.
Interface administrativa interface (grfica) pela qual o administrador controla e
monitora o sistema, configurando, requisitando e recebendo informaes ou
parmetros especficos.
O modelo mais utilizado para desenvolvimento de uma arquitetura de
gerenciamento o centralizado, onde so implementados um gerente e vrios agentes. A
comunicao do gerente com os agentes se d por meio de um protocolo de gerenciamento
e todas as informaes relacionadas ao sistema so armazenadas em uma base de dados
central (Figura 2.2) (Stallings, 1999). Como conseqncia da centralizao, neste modelo
alta a probabilidade de sobrecarga do gerente, o que poderia causar uma parada geral do
sistema.

17

Figura 2.2. Arquitetura bsica para gerenciamento de redes.

Figura 2.3. Modelo de gerenciamento distribudo.

Alternativamente, para grandes redes pode ser implementado um modelo


distribudo de gerenciamento, onde se tem vrios subsistemas de gerenciamento
independentes entre si.
H ainda a possibilidade de distribuir o processamento do gerente do sistema
dividindo a arquitetura em uma hierarquia de gerentes e agentes. Como conseqncia

18

disso, so criadas entidades de gerenciamento hbridas que ora atuam como gerente e ora
atuam como agente (Figura 2.3) (Leinwand & Fang, 1993).

2.4 reas funcionais


De acordo com o modelo de gerenciamento OSI (Open Systems Interconnect), a
tarefa de gerenciamento de redes foi definida em 5 (cinco) reas funcionais. Embora essa
classificao funcional tenha sido desenvolvida para um ambiente especfico, grande sua
aceitao por vrios fabricantes de equipamentos e desenvolvedores de padres de
gerncia. Atravs dessa diviso possvel definir requisitos de usurios e de sistema. As
reas funcionais consistem em (Stallings, 1999; Stallings, 1993; Oliveira, 1998; Pras,
1995; Carvalho, 1993):
Gerenciamento de Falhas
Gerenciamento de Contabilizao
Gerenciamento de Desempenho
Gerenciamento de Configurao
Gerenciamento de Segurana
Muitas vezes, as reas funcionais possuem funes de gerenciamento que se
sobrepem, isto , so utilizadas no somente em uma, mas at mesmo em vrias reas
funcionais, apesar de terem finalidades diferentes em cada uma. H tambm casos em que
uma funo serve de suporte para uma outra funo em outra rea.
2.4.1 Gerenciamento de Falhas
Consiste num conjunto de instrumentos para deteco, localizao, isolamento e
correo de falhas, bem como para gerao de relatrios acerca de anormalidades na
operao da rede. de responsabilidade desta rea coletar continuamente informaes
sobre o estado dos recursos gerenciados e assegurar o bom funcionamento dos
componentes do sistema. Em caso de ocorrncia de uma falha no sistema, necessrio que
o mecanismo de gerncia de falhas opere de modo rpido e eficaz, tomando decises de
acordo com regras pr-estabelecidas.
Alternativamente, pode-se gerar um registro completo das falhas ocorridas,
diagnsticos e suas respectivas solues, resolvendo a falha com maior rapidez em caso de
reincidncia.
Apesar de exigir processamento adicional, recomendado que o sistema detecte
problemas na rede de modo que as falhas sejam solucionadas antes que seus efeitos sejam
19

percebidos. Para este fim, podem ser usados mecanismos de monitorao de taxas de erros
e notificaes de eventos indesejados, gerando alarmes para o gerente do sistema, que,
ento, poder definir aes necessrias para corrigir o problema e evitar danos crticos.
Dentre as funes do Gerenciamento de Falhas, esto:
Procurar e identificar problemas;
Receber e resolver notificaes de deteco de erros;
Desencadear seqncias de testes de diagnstico;
Isolar os pontos de falhas;
Corrigir os problemas; e
Manter e examinar o histrico de erros.
Maiores detalhes acerca do desenvolvimento de sistemas voltados para tolerncia a
falhas sero expostos no captulo 4.
2.4.2 Gerenciamento de Contabilizao
Tem como objetivo medir os nveis de utilizao dos recursos do sistema por parte
de um usurio ou de um grupo de usurios para posterior tarifao. Alternativamente,
podem ser registrados no sistema, dados acerca dos limites de utilizao especficos de
cada usurio ou grupo de usurios, bem como tarifas personalizadas.
A partir dos registros de utilizao do sistema possvel desenvolver um
planejamento para um crescimento mais adequado do sistema, minimizando custos de
expanso e maximizando o grau de confiabilidade do sistema.
So funes do Gerenciamento de Contabilizao:
Estipular tarifas especficas para utilizao os recursos do sistema;
Registrar nveis de utilizao por usurios ou grupos de usurios;
Gerar relatrios de utilizao para planejamento de possveis expanses do sistema.
2.4.3 Gerenciamento de Desempenho
de responsabilidade desta rea do gerenciamento de redes coletar e analisar dados
sobre o funcionamento e a eficcia dos servios dispostos no sistema, verificando o
desempenho corrente da rede atravs de parmetros estatsticos, como atraso, vazo,
disponibilidade e nmero de conexes e retransmisses realizadas.
Com o objetivo de manter o sistema com desempenho em nvel adequado, o sistema
de gerncia determina taxas mnimas de desempenho aceitvel. Caso seja percebida uma
situao em que o sistema tenha um desempenho inferior s taxas calculadas, ser
20

disparada uma notificao para o gerente do sistema, que, de posse desta notificao,
poder tomar decises cabveis para solucionar o problema, possivelmente em conjunto
com as ferramentas de Gerenciamento de Falhas.
De modo adicional, podem ser registrados os eventos relativos ao desempenho dos
servios disponveis no sistema de modo a detectar pontos de grande utilizao ou excesso
de carga computacional. Logo, de modo similar ao Gerenciamento de Contabilizao, estes
registros podem ser usados para planejar adequadamente o crescimento do sistema.
A seguir, as funes do Gerenciamento de Desempenho:
Monitorar os recursos do sistema;
Determinar nveis de desempenho aceitvel;
Detectar pontos de desempenho abaixo do esperado;
Garantir o desempenho adequado;
Registrar eventos relativos ao desempenho dos recursos.
2.4.4 Gerenciamento de Configurao
formado por um conjunto de ferramentas responsveis pela preparao,
inicializao e manuteno dos diversos servios e recursos contidos no sistema. Para isso,
o sistema deve registrar informaes concernentes a estes servios e recursos, como
localizao, estado, tempo de vida, carga, dentre outros. Para fins de manuteno do
sistema em tempo de execuo, deve haver meios para alterar atributos dos servios e
recursos gerenciados.
Assim, a rea de Gerenciamento de Configurao tem basicamente o dever de
controlar os servios e recursos dispostos na rede, identificando, coletando e alterando suas
informaes. So suas as seguintes funes:
Gerenciar os parmetros relativos a servios e recursos contidos na rede;
Preparar, iniciar e encerrar a execuo de servios e recursos gerenciados; e
Prover meios de modificar configuraes em tempo de execuo.
2.4.5 Gerenciamento de Segurana
Consiste em um conjunto de mecanismos para controlar o acesso aos recursos
gerenciados de acordo com regras pr-estabelecidas, garantindo que somente usurios
autenticados e autorizados faro uso destes recursos. Para isso, o sistema de gerncia deve
manter controle sobre o cadastramento de usurios e suas respectivas permisses
(Stallings, 2000).
21

So requisitos bsicos de um sistema de segurana assegurar a integridade,


confidencialidade e autenticidade das informaes enviadas e recebidas. Para isso, o
sistema de gerncia deve utilizar protocolos seguros de comunicao usados com a
finalidade de prover comunicao segura, bem como utilizar firewalls (Cheswick &
Bellovin, 1994; Carl-Mitchell & Quarterman, 1992).
Assim como em outras reas do gerenciamento, recomendvel que sejam
gravados registros de eventos ocorridos no sistema para posterior verificao.
Dentre as funes do Gerenciamento de Segurana, esto:
Controlar cadastros de usurios;
Autenticar usurios;
Autorizar (ou no) o acesso a recursos do sistema;
Assegurar a integridade, a confidencialidade e a autenticidade das informaes;
Utilizar protocolos de comunicao segura e firewalls; e
Registrar eventos do sistema.

2.5 Padres de gerenciamento


O desenvolvimento de arquiteturas distribudas e heterogneas bem como sua
integrao tm tornado cada vez mais complexa a tarefa de gerncia de redes. Uma soluo
para a questo da heterogeneidade a adoo de padres de gerenciamento.
Nas dcadas passadas, vrios padres foram desenvolvidos, dentre eles os principais
foram

CMIP/CMIS

Common

Management

Information

Protocol/Common

Management Information Service (OSI, 1991) e o SNMP Simple Network Management


Protocol (McCloghrie & Rose, 1991; Davin & McCloghie, 1993; Case et al., 1993). Alm
disso, nos ltimos anos tem-se destacado uma iniciativa para padronizao do
gerenciamento com enfoque em tecnologias Web, como o WBEM.
Em geral, cada padro especifica uma estrutura de informaes gerenciadas e um
protocolo para comunicao entre as entidades de gerenciamento. A seguir, so descritos
em detalhes cada um desses padres de gerenciamento.
2.5.1 Padro SNMP
O padro SNMP foi desenvolvido pela IETF (Internet Engeneering Task Force)
com o propsito de gerenciar dispositivos e servios em redes TCP/IP.
Este padro composto por um protocolo de gerenciamento, o SNMP, e uma
especificao de uma estrutura de informaes gerenciadas, a SMI (Strutcture of
22

Management Information), que compor a MIB do sistema de gerncia. Atualmente, trs


verses foram especificadas, SNMPv1 e SNMPv2 e SNMPv3.
O protocolo SNMP baseado em poucos tipos mensagens (PDUs Protocol Data
Units) trocadas entre elementos gerenciadores (gerentes) e gerenciados (agentes). Ao
definir poucas PDUs, os criadores do SNMP procuraram simplificar ao mximo o
protocolo SNMP, limitando as restries impostas s antigas ferramentas de
gerenciamento, pois, na medida em que se aumenta a complexidade do protocolo e as
possibilidades de suas mensagens, dificulta-se a criao das ferramentas de gerenciamento
devido ao uso de operaes complicadas (Stallings, 1999).
A flexibilidade oferecida por todas estas caractersticas possibilitou a criao de um
maior nmero de funes de gerenciamento suportadas remotamente nos elementos de
rede, tornando a arquitetura de gerncia SNMP extensvel para acomodar funcionalidades
adicionais, de forma independente da plataforma onde est sendo executada.
Projetado inicialmente para aplicaes de gerncia de redes simples, o padro
SNMP firmou-se no mercado e atualmente o mais utilizado em redes de comunicao de
dados devido a sua interoperabilidade e simplicidade.
2.5.2 Padro CMIP/CMIS
Em 1979, a ISO (International Organization for Standardization) em atividade com
a atual ITU-T (International Telecommunication Union) desenvolveu um modelo OSI
(Open Systems Interconnection) para comunicao entre sistemas abertos. Esses sistemas
apresentam intercmbio com o ambiente atravs de entradas e sadas, alm de ter uma
grande capacidade de adaptao e crescimento escalar (Rose, 1991). O padro OSI fornece
um modelo mais complexo e poderoso (abrangente) de gerncia que o SNMP. Por ser um
padro internacional definido pela ISO, permite que os fabricantes testem suas
implementaes atravs de testes de conformidade e de interoperabilidade.
O padro OSI composto por um conjunto de aplicaes de propsito geral para
gerncia de redes, um servio de gerenciamento e protocolo (CMIP - Common
Management Information Protocol), uma especificao de estrutura de dados, e um
conjunto de objetos de dados (OSI, 1991). Pela sua complexidade, e pela lentido do
processo de padronizao, este sistema de gerenciamento no muito popular.

23

2.5.3 Gerenciamento baseado em tecnologias web


Desde os anos 80 at o incio da dcada atual, o padro SNMP tem dominado o
mercado de gerncia. No entanto, nos ltimos anos as redes tm contado com recursos e
servios cada vez mais complexos e heterogneos, o que tornou a simplicidade do SNMP
extremamente limitante no processo de gerncia de grandes redes. Para resolver estas
limitaes do SNMP surgiram vrias pesquisas na rea de gerenciamento de redes atravs
de tecnologias Web (Ju et al., 2002; Martin-Flatin, 2000).
No entanto, devido grande aceitao do SNMP pelo mercado, h muitos sistemas
de comunicao que j utilizam o padro SNMP. Logo, com o intuito de reaproveitar ao
mximo os dispositivos que implementam o SNMP, esto sendo desenvolvidas alternativas
onde prevista uma integrao das tecnologias Web de gerncia com este ambiente (Choi
et al., 2003). Especificamente, esta integrao consiste no desenvolvimento de um
protocolo e uma base de informaes com o poder de traduzir informaes de um padro
para o outro.
Basicamente, as plataformas de gerenciamento baseadas em tecnologias web fazem
uso do protocolo HTTP (onde o contedo das mensagens XML2) para comunicao entre
as entidades do sistema. Alm disso, a base de informaes tambm construda de acordo
com padres de descrio de dados em XML e utilizado como interface administrativa
um simples navegador (browser) Internet.
Ao permitirem a monitorao e o controle da rede a partir de navegadores, estas
plataformas tm-se mostrado bastante atrativas. Dentre suas principais vantagens
destacam-se a grande portabilidade do sistema de gerncia, pois torna-se possvel
monitorar e controlar os elementos da rede usando qualquer navegador em qualquer n da
rede. Antes, nas plataformas mais comuns, os administradores da rede s podiam usar as
ferramentas de gerncia em mquinas onde estivessem previamente instaladas e
configuradas (Hyde, 1997).
Alm disso, no preciso usar ferramentas diferentes para gerenciar os diversos
elementos da infra-estrutura de TI, inclusive servios e aplicaes em execuo. Alguns
padres para gerncia baseada em web j esto se firmando. Dentre eles, destaca-se o
WBEM Web-Based Enterprise Management (WBEM, 2005), que um padro

XML (eXtensible Markup Language) uma liguagem de marcao capaz de descrever diversos tipos de
dados. Seu propsito principal a facilidade de compartilhamento de informaes atravs da Internet
(Graham & Quim, 2005).

24

totalmente orientado a objetos que prope a definio de um modelo de dados padro que
possa ser utilizado como repositrio de dados de gerncia, e que seja possvel acessar estes
dados gerenciados via web, com HTTP, XML e um gerenciador de objetos, o CIMOM, que
responsvel por fornecer e gerenciar o acesso a esta base de objetos denominada de CIM
e fornecer a comunicao com os provedores (providers) de instncias das classes (Job &
Simes, 2002).
Alm do WBEM, existe uma alternativa da Sun Microsystems, que o JMX
(Kreger, 2001; Sun Microsystems, 1999) Java Management Extensions. O JMX consiste
em um framework de componentes para construir um ambiente de gerenciamento completo
e flexvel. JMX contm componentes especializados para gerenciar aplicaes,
dispositivos ou recursos especficos, provendo acesso instrumentao e ao controle dos
sistemas gerenciados. Para isso, o JMX define um conjunto de componentes acessveis por
meio de mltiplos protocolos, como SNMP, HTTP ou SOAP. Com JMX, uma mesma
aplicao pode ser implementada um s vez e acessada por vrios protocolos diferentes, o
que diminui bastante o tempo de manuteno do sistema de gerncia em caso de mudana
no protocolo de comunicao. Cada um dos protocolos utilizados pelo JMX chamado de
conector (JMXConnector).
Em JMX, cada recurso gerenciado chamado de MBean, que uma interface Java
com mtodos para acesso aos dados gerenciados. Estas interfaces devem ser
implementadas por classes de objetos destinados ao gerenciamento da aplicao. Estes
objetos so agrupados em um MBeanServer, que um repositrio de objetos gerenciados
acessado por meio dos conectores.

2.6 Consideraes Finais


A grande demanda por qualidade de servio tem impulsionado o desenvolvimento
da rea de gerenciamento de redes. Esta rea da Cincia da Computao consiste em
mecanismos para monitorao e controle de recursos e servios distribudos ao longo dos
sistemas de redes de comunicao. Com base no grande crescimento e heterogeneidade
destes sistemas que os mecanismos de gerncia devem ser implementados.
Este captulo apresentou uma fundamentao terica sobre sistemas de
gerenciamento, arquiteturas e padres mais conhecidos, bem como requisitos de suas reas
funcionais. Com bases nas anlises apresentadas neste captulo foi possvel a identificao
de estratgias a serem usadas durante o desenvolvimento do modelo de gerenciamento de
Ambientes Virtuais em Redes, o NuVEM.

25

Assim, tanto as estratgias de gerenciamento de dispositivos e aplicaes previstas


nos padres de gerenciamento SNMP, OSI e Web, quanto os modelo de arquitetura
gerente-agentes podem ser adequados para o gerenciamento de aplicaes de Realidade
Virtual distribudas. Estas estratgias consistem em mecanismos para de deteco e
recuperao de falhas, configurao automtica do sistema, monitoramento de desempenho
e segurana de dados.

26

Captulo 3
Ambientes Virtuais em Redes
3.1 Introduo
De acordo com apin e seus co-autores (1999), Realidade Virtual (RV) pode ser
definida como uma tecnologia capaz de transportar um indivduo para um ambiente
diferente do real, sem mov-lo fisicamente, manipulando as informaes destinadas aos
rgos sensoriais humanos de tal maneira que o ambiente percebido seja associado ao
ambiente virtual desejado e no ao ambiente real.
Por meio de dispositivos de interao, as aplicaes de RV proporcionam ao
usurio sensaes de imerso, no ambiente virtual, compatveis com aquelas que ele
experimenta no mundo real. Um ambiente imersivo ideal aquele onde os rgos
sensoriais do usurio so estimulados de maneira contnua pelo sistema computacional
(Slater et al., 1994).
Os sistemas de RV mais especializados demandam uso de dispositivos de interao
e visualizao de custo ainda muito elevado, como luvas, capacetes, etc. J os sistemas
chamados semi-imersivos (Desktop Virtual Reality3) utilizam dispositivos comuns, como
teclado, mouse e fones de ouvidos, ligados a computadores domsticos e no necessitam
de hardware especial. No entanto, proporcionam ao usurio um nvel de imerso mais
limitado.
Para prover uma maior interatividade entre usurios dispersos fisicamente, as
aplicaes de RV convencionais foram dotadas de ferramentas de comunicao por meio
das redes de computadores, resultando na criao dos Ambientes Virtuais em Redes (AVR
ou net-VEs4) ou Ambientes Virtuais Distribudos (AVDs).
Ambientes Virtuais em Redes possibilitam a mltiplos usurios localizados em
diferentes partes do planeta interagirem em tempo real, buscando, de modo geral, a criao
de experincias imersivas por meio de imagens tridimensionais realsticas e som estreo
(Singhal & Zyda, 1999). Nos ltimos anos, a significativa evoluo do poder de
3

Modalidade de realidade virtual semi-imersiva que faz uso de equipamentos comuns, como monitores de
vdeo, mouse, teclado e joysticks (Machado, 1995).
4
Do ingls Networked Virtual Environments.

27

processamento grfico dos computadores e o grande aumento da capacidade de


transmisso de dados em redes de computadores tm viabilizado estas aplicaes,
tornando-as cada vez mais atrativas (Leite Jr, 2000).
Trabalhos em torno de AVR foram iniciados na dcada de 80 com o
desenvolvimento de ambientes virtuais para uso em treinamentos militares do
Departamento de Defesa dos EUA (Matijasevic, 1997). Durante esses trabalhos pioneiros
foi criado o SIMNET, que foi posteriormente estendido e rebatizado de protocolo DIS. Em
seguida, veio o NPSNET, outra continuao dos trabalhos do SIMNET, mas dessa vez por
parte da Naval Postgraduate School (Macedonia et al., 1995). Desde ento, o uso de
ambientes virtuais tem formado uma nova base para a criao de aplicaes interativas em
diversas reas, tais como entretenimento (Leite Junior et al., 2002; Cardoso et al., 2003),
medicina (Freitas et al., 2003), arquitetura (Silva et al., 2003), teleconferncia, comrcio,
entre outras.
Particularmente, para propsitos educacionais, estes sistemas AVR tm tido grande
destaque, propiciando interao e colaborao entre seus usurios em tempo real. Em
(Vidal et al., 2003; Wazlawick et al., 1999; Leite Junior et al., 2001; Gomes, 2005) so
encontrados alguns trabalhos em torno do desenvolvimento e uso de AVR voltados para a
rea de educao. A principal motivao para o uso em aplicaes com fins educacionais
advm da possibilidade de apresentar a complexidade de situaes do mundo real de tal
maneira que usurios possam observar diretamente os resultados de suas prprias decises,
alm de melhorar o desempenho coletivo atravs da troca de informaes (Leite Junior et
al., 2000).
Os AVR so considerados os sistemas de software mais complexos j
desenvolvidos (Stytz, 1996), pois apresentam caractersticas de vrios outros tipos de
sistemas computacionais. Logo, exigem conhecimento em diversas reas durante seu
desenvolvimento, como protocolos de rede, processamento paralelo e distribudo,
modelagem de ambientes grficos (tridimensionais), bancos de dados, interface homemcomputador, etc.
Segundo Singhal & Zyda (1999), um sistema AVR composto basicamente de
quatro componentes:
motor grfico e dispositivos de apresentao, para gerao e visualizao de
imagens tridimensionais;
dispositivos de interao e comunicao, para possibilitar o relacionamento dos
usurios com outros usurios e com o prprio ambiente virtual;
28

sistema de processamento, que recebe e trata eventos oriundos dos dispositivos de


interao e da rede de comunicao;
rede de comunicao, usada para troca de informaes entre os usurios e o
sistema, proporcionando a interao no sistema.
Na Seo 3.2, so discutidos alguns requisitos funcionais e no-funcionais, bem
como caractersticas que definem os AVR. Alguns exemplos de aplicaes de ambientes
virtuais com propsitos educacionais e com propsitos gerais so expostos nas Sees 3.4
e 3.5, respectivamente; e, por fim, na Seo 3.6, so feitas algumas consideraes finais.

3.2 Caractersticas e Requisitos


Imerso o principal requisito de uma simulao em ambientes virtuais. Quanto
maior o grau de imerso, maior a sensao de realidade percebida pelo usurio. Para isso,
preciso que os usurios tenham uma representao fsica no ambiente virtual de forma que
sejam percebidos por outros usurios dentro de um espao compartilhado. Ademais, os
usurios devem ser livres para se movimentarem dentro desse espao, encontrando-se e
interagindo com outros usurios, alm de manipular entidades e informaes de interesse
comum.
Assim, sempre que um evento provocar alterao no estado do ambiente virtual
compartilhado, o mesmo deve ser transmitido automaticamente a todos os usurios
inseridos no sistema. Dessa forma, a consistncia do ambiente virtual garantida,
mantendo nos participantes a impresso de estarem compartilhando um nico ambiente
virtual (apin et al., 1999).
3.2.1 Requisitos funcionais
Singhal e Zyda (1999) definiram em seus estudos cinco requisitos comuns em
sistemas AVR. Tais requisitos equivalem a caractersticas percebidas pelos usurios do
sistema:
Sensao de espao compartilhado
imprescindvel que seja criada nos participantes a iluso de estarem situados no
mesmo lugar, mesmo que estejam fisicamente dispersos. Nesses espaos, as interaes que
os usurios realizam com o mundo virtual e seus objetos, bem como as mudanas
resultantes nos seus estados, devem ser percebidas pelos outros participantes.

29

Logo, um sistema AVR mantm a coerncia do espao compartilhado, apresentando


as mesmas caractersticas a todos os seus participantes em tempo real. Por exemplo, todos
os participantes devem perceber as condies climticas, assim como a mesma acstica.
Sensao de presena compartilhada
O conceito de presena compartilhada foi introduzido por Slater e seus co-autores
(1996) e consiste em dois aspectos: o senso de presena de outros indivduos no mesmo
ambiente (perceber) e o senso de ser parte de um grupo (ser percebido).
Ao entrar no ambiente virtual, cada participante assume o controle de um
personagem virtual (avatar), e atravs dele que o participante estabelece relaes
interativas com o prprio ambiente e com outros participantes, proporcionando
funcionalidades importantes alm daquelas encontradas nos ambientes mono-usurios,
como percepo, senso de localizao e orientao, identificao de usurios, comunicao
gestual, dentre outras (apin et al., 1999).
Sensao de tempo
Com o objetivo de proporcionar um alto nvel de realismo e interatividade, os
usurios do ambiente virtual devem perceber as aes, interaes, mtuas ao mesmo tempo
em que elas ocorrem, ou seja, em tempo real.
Para isso, o sistema deve informar quaisquer eventos relativos ao ambiente virtual
de modo sncrono, isto , no momento em que estes ocorrem.
Meio de comunicao
Os canais de comunicao entre os usurios so recursos primordiais em um
sistema AVR, pois atravs desses canais os usurios podem estabelecer dilogos a fim de
interagir com outros usurios. A maioria dos AVR possibilita a comunicao entre seus
participantes atravs de gestos, texto ou voz. A comunicao adiciona um sentimento
necessrio de realismo a qualquer ambiente simulado.
Apesar de no ser uma forma usual de comunicao em situaes reais, o uso de
mensagens de texto bastante natural para os usurios domsticos, dado que o teclado
um perifrico bastante familiar. Por isso, esta a forma de comunicao encontrada em
praticamente todos os AVR semi-imersivos (Almendra, 2003). possvel tambm utilizar
personagens com animaes pr-programadas ou mesmo com corpos articulados para
representar gestos. J o canal de comunicao mais natural no mundo real, o canal de

30

comunicao via voz, apresenta problemas com relao disponibilidade de recursos de


rede, pois os canais de udio so grandes consumidores de largura de banda.
Um modo de compartilhar
Segundo Singhal e Zyda (1999), o grande crescimento dos sistemas AVR advm da
habilidade dos usurios interagirem realisticamente tanto entre si quanto com o prprio
ambiente virtual. Na simulao de uma batalha ou de um jogo, por exemplo, os usurios
podem atirar uns nos outros, ou podem colidir uns com os outros. Para isso, os usurios
devem ser capazes de manipular objetos que existem no ambiente virtual, assim como
repass-los a outros participantes.
Em suma, ambientes virtuais imersivos proporcionam aos seus usurios a
habilidade de interagirem uns com os outros, partilhando informaes e manipulando
objetos atravs de imagens grficas imersivas. A presena de mltiplos usurios
independentes diferencia esses sistemas de jogos de realidade virtual mono-usurio. Alm
disso, a possibilidade de partilhar objetos diferencia esses ambientes das tradicionais salas
de bate-papo e a interatividade em tempo real o diferencial desses ambientes em relao
aos navegadores ou correio eletrnico (Singhal & Zyda, 1999). Assim, os ambientes
virtuais interativos so mais apropriados para aplicaes que demandam a criao de
telepresena5, onde criada a iluso de estar fisicamente em um espao ou tempo tanto real
como imaginrio atravs da transmisso de imagens e sons, criando um espao de
reciprocidade ausente dos meios de comunicao de massas comuns (Goldberg, 1998).
Stytz (1996) tambm compilou um conjunto de requisitos que, a seu ver, deveriam
ser atendidos para a manuteno de um nvel aceitvel de fidelidade entre o mundo virtual
e o mundo real. Cada requisito diz respeito a uma caracterstica do mundo real que deve
ser respeitada durante a simulao no ambiente virtual. Os requisitos esto descritos na
Tabela 3.1:
Tabela 3.1. Requisitos de fidelidade com o mundo real em ambientes virtuais.

Requisito
Modelagem

Descrio
Os objetos presentes no ambiente virtual devem apresentar
propores corretas entre si, alm de serem movimentados em
velocidades compatveis com as do mundo real.

Segundo Goldberg (1998), telepresena pode ser definida como a apresentao de uma informao
perceptiva que reivindica corresponder a uma realidade fsica distante.

31

Sensorial

Informaes relativas aos sentidos humanos devem ser apresentadas


aos usurios da forma mais realista possvel.

Tempo

Deve haver um atraso mnimo entre a ao de uma determinada


entidade virtual (artefatos, objetos, personagens, etc.) e a notificao
desta ao aos participantes.

Informao

A quantidade e consistncia das informaes contidas no ambiente


virtual devem ser suficientes para o desenvolvimento de todas as
situaes previstas e para o suporte tomada de decises.

Comportamento

O comportamento das personagens controladas por computadores

das personagens

deve ser semelhante ao desempenhado pelas personagens controladas


por humanos face s mesmas circunstncias.

Leis fsicas

O ambiente virtual deve levar em considerao eventos fsicos


existentes no mundo real, como gravidade, eletromagnetismo,
propagao de sons, etc.

Dispositivos

Os dispositivos utilizados para interao devem ser condizentes com

de entrada

as simulaes previstas para o ambiente virtual. Por exemplo, numa


simulao de corrida de carros desejvel que o usurio possa
interagir atravs de um volante, pedais e caixa de marcha, etc.

Sistema

As atividades e respostas dos diversos participantes do ambiente


virtual (humanos ou simuladores) devem, quando consideradas como
um todo, apresentar um comportamento geral prximo quele do
mundo real.

Em resumo, os requisitos propostos por Stytz (1996) indicam que ambiente deve ser
o mais realista possvel, induzindo usurios humanos a aceitarem imagens e informaes
como se fossem reais.
Dependendo dos objetivos da simulao, alguns dos requisitos supracitados podem
ser relaxados ou at mesmo desconsiderados. Geralmente, relaxado um requisito em
benefcio de um outro.
3.2.2 Requisitos no funcionais
Requisitos no-funcionais relacionados a aspectos de software, hardware e fatores
externos so to importantes para a construo de sistemas de ambientes virtuais quanto
para a construo de qualquer software. Os tpicos a seguir relacionam os principais

32

requisitos no-funcionais ligados ao projeto e desenvolvimento de um sistema AVR


(Kirner & Davis, 1996; Sommerville, 1997):
Desempenho trata-se do atendimento s exigncias de processamento, tempo de
resposta, consumo de recursos, eficincia e processos contidos no escopo do
sistema;
Usabilidade compreende o atendimento de critrios relacionados ao
entendimento e facilidade de uso do sistema e nvel e satisfao dos usurios em
suas interaes com o sistema;
Segurana trata-se da habilidade do sistema em defender-se ou mesmo de
reabilitar-se de ataques acidentais ou intencionais que possam ocorrer por conta de
acesso ou uso indevido de recursos contidos no sistema;
Portabilidade refere-se capacidade do sistema ser executado atravs de
diferentes plataformas e/ou sistemas operacionais;
Confiabilidade est relacionado habilidade do sistema em comportar-se de
acordo com o que foi especificado na definio prvia do ambiente e com a
utilizao dos recursos previstos. necessrio garantir que alguns dados crticos,
como modelos, comportamentos, controles, etc., sero percebidos pelos usurios
sem perda ou dano.
Assim como pode ocorrer com os requisitos de fidelidades apresentados no tpico
anterior, possvel que haja um relaxamento em um dos requisitos no-funcionais em prol
do fortalecimento de um outro requisito. Por exemplo, possvel que sejam usados
mtodos de codificao bastante avanados nas mensagens trocadas entre os componentes
do sistema, o que resultar na degradao de desempenho do sistema, pois a codificao de
mensagens demanda um maior processamento no sistema. No entanto, ser aumentado o
nvel de segurana do sistema.

3.3 Aplicaes educacionais


O uso de tecnologias de RV na educao consiste na construo de ambientes
tridimensionais que permitem a interao e o envolvimento de alunos com objetos
disponveis no ambiente virtual (Kubo et al., 1999). Por utilizar-se de alguns recursos no
disponveis em outras mdias educacionais, o uso de sistemas AVR para treinamento de
usurios pode atingir objetivos de aprendizagem mais facilmente e de um modo mais
eficiente e estimulante para o aluno. Assim, os alunos podem controlar ativamente o

33

ambiente e observar diretamente o comportamento de objetos no interior do mundo virtual,


interagindo e colaborando com outros alunos em tempo real. Alm disso, a RV no limita
o aluno a apenas alguns ngulos de visualizao como acontece na observao de fotos ou
vdeos. Dentro do ambiente virtual, o aprendiz pode explorar os objetos disponveis sob
diferentes perspectivas, de acordo com sua vontade (Rodello et al., 2002).
Algumas vantagens da utilizao de RV para propsitos educacionais foram
observadas por Pantelides (1995) e Kalawsky (1996) em seus estudos, as quais seguem:
Possibilita a visualizao e explorao de lugares inexistentes ou de difcil acesso
no mundo real;
Promove a motivao do estudante, pois possibilita novas formas de visualizao de
informaes, ilustrando tambm caractersticas, processos, etc.;
Estimula estudantes a serem aprendizes mais ativos, pois requer e promove maior
interatividade;
No restringe o aprendizado ao perodo regular de aula, possibilitando a realizao
de atividades educacionais atravs da Internet;
Permite que o estudante tenha seu prprio ritmo de aprendizado, o que tambm ir
determinar o seu rendimento;
Oferece muitas possibilidades para aprendizes no tradicionais, incluindo os alunos
com problemas fsicos;
Prov mltiplas vises de objetos dentro do ambiente (sob diferentes ngulos),
fornecendo oportunidade de melhor compreenso do assunto de estudo;
Pode ser usada como uma poderosa ferramenta de treinamento e de simulao.
Atualmente, com o crescente desenvolvimento da Internet, a RV tambm tem
auxiliado muito no processo de ensino, sendo aplicada em Educao a Distncia (EaD).
Entre os principais motivos para a utilizao de interfaces de RV em sistemas de EaD,
destaca-se o alto grau de interao que tais interfaces proporcionam, ou seja, possibilitam
que alunos e professores, mesmo que distantes fisicamente, se inter-relacionem dentro de
uma aplicao educacional (Rodello et al., 2002).
A seguir, so apresentados exemplos de sistemas com fins educacionais:
NPSNET
O NPSNET (Naval Postgraduate School Network Vehicle Simulator) foi um projeto
iniciado em meados da dcada de 1980 e um dos sistemas AVR mais antigos encontrados

34

na literatura. Foi desenvolvido pelo Departamento de Computao da U.S. Naval


Postgraduate School para o treinamento militar em larga escala com simulao de
exerccios de guerra (Macedonia et al., 1994; Macedonia et al., 1995; Macedonia et al.,
1995b).
Este projeto uma continuao dos trabalhos em torno do SIMNET (Calvin et al.,
1993). Um dos focos desse sistema estender o protocolo de comunicao do SIMNET de
forma a dar suporte representao dos mais variados tipos de jogadores (soldados,
carros, avies e tanques) presentes nas simulaes militares. Alm disso, o sistema permite
que cada participante controle um veculo militar ou um soldado da infantaria, e d suporte
para que milhares dessas entidades interajam durante a simulao.
Segundo Macednia e seus co-autores (Macedonia et al., 1995), o desenvolvimento
do NPSNET envolve temas de pesquisa em diversas reas, tais como:
O suporte simulao distribuda em larga escala atravs da Internet;
O treinamento mdico com personagens humanos;
O desenvolvimento de protocolo de comunicao (DIS) para integrao entre
diversos simuladores (avies, veculos, etc.);
O uso de hipermdia (udio e vdeo) distribuda em tempo real dentro de
ambientes tridimensionais;
O uso de entidades virtuais (entidades ou usurios autnomos) como elementos
de povoamento de mundos virtuais; e
O uso de som tridimensional de baixo custo.

Figura 3.1. Simulao de batalha area no NPSNET-V.

Atualmente, este projeto segue em sua quinta verso (NPSNET-V), onde foi
desenvolvida uma plataforma extensvel para desenvolvimento do sistema AVR (Capps et

35

al., 2000). Desse modo, o NPSNET-V implementa a adio dinmica de novos


comportamentos de entidades contidas no ambiente virtual atravs do carregamento de
novas definies recebidas em tempo de execuo. Alm disso, provida tambm uma
infra-estrutura de componentes onde so usadas definies de acordo com padres de
codificao XML. Por fim, o sistema possibilita um crescimento escalar por meio de
mtodos de particionamento de responsabilidades.
AVAL
O Projeto AVAL Ambientes Virtuais para o Aprendizado de Lnguas (Borges,
2001; Vidal et al., 2001), visou oferecer a guias de turismo capacitao na lngua inglesa,
especialmente em situaes do cotidiano de suas profisses, como visitas a centros de
turismo e recepo de turistas em aeroportos. O treinamento dos guias baseou-se em
tarefas a serem realizadas dentro dos ambientes virtuais, tais como ajudar turistas a
comprar produtos de artesanato ou orient-los sobre a localizao de servios.
Para a simulao, foram utilizados ambientes virtuais semelhantes aos pontos
tursticos reais. O treinamento era feito em grupo, onde os alunos alternavam-se nas
condies de guias ou de turistas, tendo que realizar as tarefas especficas de seus papis
dentro do ambiente a cada turno. A Figura 3.2 mostra a parte externa do Centro de Turismo
( direita) e dois usurios interagindo na parte interna do Centro de Turismo ( esquerda).

Figura 3.2. Centro de Turismo Virtual

Laboratrio Virtual de Qumica


O Laboratrio Virtual de Qumica (Rodello et al., 2002) um projeto direcionado
aos alunos do ensino mdio onde so usadas tcnicas de RV para aprimorar conhecimentos
de qumica. Para isso, o aluno tem a capacidade de explorar um laboratrio virtual
tridimensionalmente modelado, interagindo com seus objetos. A Figura 3.3 mostra a tela
de abertura do Laboratrio.

36

Este sistema foi desenvolvido em HTML (Hiper Text Markup Language) e VRML
(Virtual Reality Modeling Language), o que permite seu fcil acesso via Internet por meio
de um navegador web. Atravs dos dispositivos de interao (teclado e mouse), o aluno
pode mover-se no ambiente e explorar vrias funcionalidades.
O sistema dividido em mdulos, onde cada mdulo diz respeito a uma atividade
especfica. Um dos mdulos deste sistema o Molculas, onde o aluno pode visualizar
algumas das molculas mais comuns com todos os seus tomos e ligaes qumicas
(Figura 3.4).

Figura 3.3. Interface inicial do Laboratrio de Qumica

Figura 3.4. Mdulo de visualizao de Molculas.

Projeto Museu Virtual


O sistema AVC-MV (Ambiente Virtual Colaborativo Museu Virtual) foi
desenvolvido como parte do Projeto Museu Virtual, por pesquisadores do Centro de
Pesquisas de So Carlos, da Fundao Eurpedes de Marlia e da Universidade Federal de
Santa Catarina (Kawamoto et al., 2001).
Dentre os objetivos do Projeto Museu Virtual (Wazlawick et al., 2001; Kirner et al.,
2001), est includo o desenvolvimento de uma ferramenta de autoria, que possibilite a
criao de museus virtuais por estudantes, de forma colaborativa e de acordo com os
princpios do construtivismo. Os museus virtuais criados por essa ferramenta de autoria
podem ser organizados em salas com diferentes exposies onde os objetos tridimensionais
em exibio esto disponveis para serem diretamente explorados.
Essa ferramenta de autoria colaborativa e possibilita a criao de museus, nos
quais os usurios podem caminhar livremente dentro do espao tridimensional e explor-lo
segundo as caractersticas de navegao, imerso e interao propiciadas pela realidade
virtual. Cada usurio (estudante ou visitante) pode escolher o seu avatar, passear pelo

37

mundo virtual, observar as atividades e aes realizadas e participar da criao ou


modificao do museu virtual. Os usurios podem interagir entre si ou com guias virtuais
atravs de texto e tambm podem visualizar informaes relevantes para o contexto do
museu apresentadas em forma tridimensional.

Figura 3.5 Interface da ferramenta de autoria.

possvel tambm a criao de simulides6 ou guias virtuais, os quais possuem


conhecimento sobre os objetos que so exibidos e sobre os visitantes do museu. Os
simulides guiam os usurios nas suas interaes com objetos e avatares. Esses guias esto
aptos a responder perguntas, apresentar sugestes para os visitantes do museu, realizar
aes tais como caminhar de uma sala para outra e mover objetos. Eles tambm aprendem
com os visitantes, isto , descobrem seus nomes, seus interesses, suas localizaes
correntes no mundo virtual, etc.
COVET
COVET foi um projeto desenvolvido no Multimedia Communications Research
Laboratory, Universidade de Ottawa, Canad, e trata-se de um ambiente virtual
colaborativo para o treinamento industrial (Hosseini & Georganas, 2001).
uma aplicao de tele-treinamento multi-usurio onde os usurios, representados
no ambiente por seus respectivos avatares, podem treinar procedimentos de reparo de um
switch ATM.
Este ambiente virtual foi desenvolvido com o intuito de diminuir os custos dos
treinamentos nas indstrias, principalmente em casos onde operrios e clientes de algumas
indstrias precisam se familiarizar com equipamentos e aparelhos de difcil manuteno.

Entidade virtual controlada por computador.

38

Os usurios podem interagir com o ambiente tridimensional clicando em vrios


objetos, visualizando funes relacionadas ao cenrio do treinamento. As aes dos
usurios so comunicadas a outros participantes de modo que eles tenham a impresso de
estarem envolvidos no treinamento.
O sistema virtual dispe de vrios ngulos de viso. Uma simples tarefa onde um
usurio ensina outros como efetuar a retirada segura de uma placa defeituosa de um switch
ATM demonstrada na Figura 3.6.

Figura 3.6. Alguns ngulos de viso de um treinamento.

3.5 Outras Aplicaes


Por oferecerem um sistema natural de compartilhamento baseado em modelos de
interao da prpria natureza humana , os AVR podem ser aplicados aos mais diversos
fins. Alm de aplicaes voltadas para fins educacionais, h outras reas onde so
encontradas vrias aplicaes, por exemplo (apin et al., 1999):
telemedicina (experimentos a distncia);
terapia de fobias (Rothbaum et al., 1995);
jogos multiusurios;
escoamento de fluidos (Bryson & Levit, 1992);
entretenimento (Pausch et al., 1996);
teleconferncia;
telecompras;
turismo virtual.
A seguir, so apresentados em detalhes alguns exemplos de outras aplicaes de
sistemas AVR:

39

AlphaWorld
Ao contrrio de outras comunidades virtuais, os usurios do AlphaWorld (Dodge,
1999; Ryan, 2004) podem, alm de comunicar-se com outros membros da comunidade,
estabelecer residncias, decorar jardins e realizar diversas outras atividades relacionadas ao
convvio em comunidade (Figura 3.7). No ambiente virtual do AlphaWorld, os
participantes so motivados a partilharem da urbanizao da cidade virtual. No entanto, a
urbanizao nessa cidade difere substancialmente das cidades do mundo real, onde h
restries populacionais, de custos ou mesmo de transportes. Todas as modificaes feitas
pelos usurios so acumulativas, de modo que os usurios que entram no ambiente virtual
percebem todas as mudanas feitas pelos usurios que ali entraram anteriormente.
O AlphaWorlds faz parte de uma das maiores comunidades virtuais presentes na
web, a comunidade virtual ActiveWorlds7, que possui tambm vrios outros ambientes
virtuais disponveis para edio e navegao.

Figura 3.7. Viso do ambiente virtual AlphaWorlds.

Blaxxun
O Blaxxun Community Platform (Blaxxun, 2005) um sistema modular que
fornece um amplo conjunto de funes para desenvolvimento de comunidades virtuais para
web (Figura 3.8).
usado para a criao on-line de comunidade virtuais onde os participantes podem
se conhecer, conversar e trocar experincias. Alm dos servios de gerncia de usurios e

http://www.activeworlds.com

40

mundos virtuais e comunicao entre os participantes, o sistema disponibiliza tambm uma


variedade de mdulos que oferecem interfaces para banco de dados externos e para outros
sistemas, como por exemplo, os de comrcio eletrnico.

Figura 3.8. Interface do ambiente Blaxxun.

Papo3D
O Papo3D (Leite Junior et al., 2002) um ambiente virtual multi-usurio voltado
para o entretenimento que pode ser usado atravs da Internet. O projeto desse ambiente
visou tornar disponvel, atravs do uso de microcomputadores comuns e de redes de baixa
velocidade, ambientes virtuais interativos voltados para o entretenimento e que podem ser
facilmente estendidos para outras reas.

Figura 3.9. Mundos virtuais disponveis no Papo3D.

41

Nesse sistema, o usurio pode interagir com outros usurios em tempo real, bem
como com entidades contidas no mundo virtual. H vrios ambientes e avatares diferentes
que podem ser escolhidos pelos usurios (Figura 3.9).

3.6 Consideraes finais


Os sistemas distribudos de RV esto se tornando cada vez mais utilizados e tm
comprovado o potencial deste tipo de aplicao. Um ambiente virtual distribudo um
sistema que possibilita que usurios interajam entre si atravs do mesmo ambiente virtual,
mesmo que estejam geograficamente dispersos.
As primeiras aplicaes de AVR foram desenvolvidas nos Estados Unidos para fins
de treinamento militar. Contudo, atualmente, as aplicaes distribudas de RV podem ser
utilizadas com foco em outras reas, tais como educao, visualizao cientfica, jogos,
turismo virtual, entretenimento, etc.
Apesar da crescente popularidade, os sistemas AVR ainda apresentam uma srie de
desafios em seu desenvolvimento tais como os relacionados aos requisitos no-funcionais
listados neste captulo, onde pode-se destacar o requisito de desempenho (vide 3.2.2). Estes
requisitos devero ser retomados no prximo captulo, quando sero discutidos alguns
aspectos de desenvolvimento de sistemas AVR. Posteriormente, sero apresentadas
estratgias para atender a estes requisitos.

42

Captulo 4
Aspectos de desenvolvimento de Ambientes Virtuais em Redes
4.1 Viso geral
Ao mesmo tempo em que os ambientes virtuais podem ser aplicados nas mais
variadas reas (educao, entretenimento, visualizao cientfica, etc.), tambm a sua
forma de desenvolvimento pode variar bastante. Logo, dependendo dos objetivos da
simulao, pode-se exigir uma implementao mais fiel ou relaxada de alguns dos
requisitos funcionais ou no-funcionais descritos anteriormente.
Geralmente, os sistemas AVR se distinguem pelas suas capacidades de agregao
de novos recursos, como usurios e entidades virtuais, onde possvel encontrar desde
ambientes virtuais que suportam apenas um nico usurio at ambientes que,
potencilmente, suportariam um nmero infinito de usurios e entidades interagindo entre
si.
Um dos aspectos fundamentais de um sistema AVR a rede de comunicao, pois
atravs desta rede que sero trocadas informaes entre os usurios do sistema e o prprio
ambiente virtual. Na medida em que o sistema vai crescendo, em nmero de participantes e
de entidades virtuais, mais recursos de redes so necessrios. Portanto, o uso dessas redes
traz uma srie de implicaes para o desenvolvimento e crescimento do sistema como um
todo.
Conforme mencionado anteriormente, o desenvolvimento de sistemas AVR uma
tarefa complexa e exige a considerao de uma srie de requisitos de software e hardware,
sendo alguns dos quais essenciais. Neste captulo, feito um levantamento dos principais
aspectos relativos ao desenvolvimento e uso otimizado do sistema AVR a partir da anlise
de trabalhos encontrados na literatura. Os vrios aspectos pesquisados so concernentes ao
atendimento dos requisitos funcionais e no-funcionais descritos no captulo anterior. Com
base nos tpicos apresentados neste captulo ser justificado o Modelo NuVEM proposto
no presente trabalho.
Na Seo 4.2, sero discutidos alguns aspectos relativos escalabilidade dos
sistemas AVR; na Seo 4.3 so apresentadas algumas consideraes sobre a utilizao de
redes de comunicao, onde foram observados mtodos de transmisso, modelos de

43

distribuio, protocolos e peculiaridades da prpria rede de comunicao. Ainda na Seo


4.3 so previstos impactos da utilizao da rede de comunicao na qualidade de servio
provida aos usurios do ambiente virtual. Em seguida, na Seo 4.4, so descritas algumas
tcnicas compensatrias criadas com o objetivo de amenizar os impactos da utilizao das
redes de comunicao; na Seo 2.5, so considerados a aplicao de cada uma das reas
funcionais de gerncia de redes (descritas em detalhes no Captulo 2) em ambientes
virtuais. Por fim, na Seo 4.6, tecem-se algumas consideraes finais.

4.2 Escalabilidade
A escalabilidade um dos requisitos mais importantes para o desenvolvimento de
um sistema AVR. Isto se deve ao fato de que ele possivelmente contar com recursos
limitados, como quantidade de memria de cada mquina, poder de processamento
numrico/grfico e velocidade de transmisso da rede.
Em geral, a escalabilidade de um sistema pode ser medida por sua capacidade de
aceitao de novas entidades participantes como usurios, simulides e objetos
interativos e depende de fatores tais como: a capacidade da rede de dados, o desempenho
e o poder de processamento e renderizao8 das mquinas dos usurios.
De acordo com Singhal e Zyda (1999), a complexidade do sistema aumenta
exponencialmente com o nmero das entidades participantes, em virtude do nmero de
possveis interaes entre essas entidades, ou seja, 2 (nmero de entidades) possveis interaes.
Entretanto, na prtica, uma entidade no interage com todas as outras entidades, o que
reduz significativamente essa complexidade. Outro fator que deve ser considerado na
complexidade dos AVR o comportamento das entidades. Entidades que podem apenas
ser observadas pelo usurio implicam em um nvel de complexidade menor do que aquelas
com os quais o usurio pode interagir, modificando-as, ajustando-as, etc. (Rodello et al.,
2001).
A escalabilidade do sistema tambm pode ser medida com base na quantidade de
ambientes compartilhados distintos ativos simultaneamente. A partir dessa segunda forma
de medir escalabilidade, possvel analisar a primeira sob dois aspectos: a capacidade de
aceitao de entidades em um nico ambiente compartilhado do sistema e a capacidade
total de aceitao de entidades no sistema.

Gerao e processamento de imagens, possivelmente tridimensionais, do ambiente virtual.

44

Limitaes na escalabilidade so provocadas por uma variedade de pontos crticos


(gargalos). Quando o nmero de entidades ativas elevado, ocorre um grande volume de
trfego na rede, especialmente pela movimentao de pacotes de atualizaes (estados das
entidades virtuais) e udio. Assim, o computador local de um usurio deve ser capaz de
processar as informaes que chegam a ele e renderizar o mundo virtual compartilhado
com qualidade satisfatria enquanto mantm uma resposta suficientemente rpida aos
movimentos e aes dos outros participantes. A seguir, so listadas algumas situaes que
podem originar limitaes na escalabilidade de um sistema AVR, sejam elas de
processamento ou de utilizao da rede (Ferreira, 1999):
A presena de muitas entidades no ambiente virtual pode implicar em uma elevada
utilizao de tempo de processamento dedicado atualizao e predio dos
comportamentos;
O uso de geometrias altamente detalhadas tambm pode implicar em uma elevada
utilizao de tempo de processamento grfico necessrio para renderizar uma
entidade dentro de uma cena;
O uso excessivo de texturas pode comprometer o desempenho quando a memria
destinada a elas for insuficiente, acarretando acessos indesejados memria
secundria;
A existncia de entidades com comportamentos no-determinsticos ou pouco
comportados pode implicar na necessidade de atualizaes excessivas, gerando
trfego excessivo na rede;
O compartilhamento da rede com outras mquinas que no estejam participando da
simulao pode degradar o sistema;
A presena de roteadores e switches na interligao entre as redes conectadas s
mquinas pode exigir a utilizao de algoritmos mais complexos para o sincronismo
e implicar em maiores retardos na rede.
Segundo Macedonia (1995), no bastam computadores e sistemas de comunicao
mais rpidos para resolver problemas de escabilidade de um sistema. necessrio que
sejam previstos vrios outros fatores durante o desenvolvimento, como algoritmos de
distribuio de servios, gerao de grficos tridimensionais e coliso de entidades
virtuais, serializao de tarefas, protocolos de comunicao, mecanismos de transmisso,
dentre outros.

45

Nas prximas sesses, sero vistos alguns destes fatores que influenciam a
escalabilidade dos sistemas AVR, bem como possveis solues para uma utilizao mais
otimizada dos recursos computacionais do sistema.

4.3 Comunicao em redes


4.3.1 Modelos de comunicao
De acordo com Gossweiler e seus co-autores (1994), existem dois modelos de
comunicao que podem ser implementados por um sistema de AVR: o modelo
centralizado e o modelo distribudo.
No modelo centralizado, um computador principal recebe todos os dados
provenientes dos usurios conectados ao mundo virtual, aplica essas informaes ao
ambiente virtual armazenado no computador central e devolve, para cada um dos usurios
conectados o resultado das alteraes feitas sobre o mundo virtual, atualizando-os (Figura
4.1).

Figura 4.1. Modelo centralizado

Apesar de apresentar facilidades com relao implementao dos mecanismos de


comunicao e controle de usurios e recursos computacionais dispostos no sistema, este
modelo traz srias desvantagens com relao escalabilidade, pois na medida em que os
nmeros de usurios e de recursos crescem, maior o trfego de mensagens com o
computador central. Alm disso, h tambm um demasiado processamento no computador
central, o que poder prejudicar o desempenho do sistema como um todo, fazendo com que

46

a velocidade de acesso caia devido ao excesso de mensagens as quais o computador central


precisa receber, processar e enviar.
Como forma de resolver essa limitao de escalabilidade do modelo de
comunicao centralizado, foi desenvolvido o modelo distribudo. Nesse modelo, cada
usurio do sistema mantm em seu host uma cpia prpria completa do ambiente virtual,
realizando, alm das tarefas de renderizao, computao e animao dos objetos do
ambiente virtual, a distribuio de mensagens para os outros usurios conectados ao
sistema. Dessa forma, quando um usurio realiza alguma modificao sobre o ambiente
virtual, ele se encarrega de comunicar a todos os outros usurios sobre as alteraes
realizadas (Figura 4.2).

Figura 4.2. Modelo distribudo.

No entanto, nessa soluo o nmero de conexes cresce muito rapidamente, pois


cada usurio precisa estabelecer um canal de comunicao com cada um dos demais
usurios. Alm disso, percebe-se que gerado um nmero maior de mensagens trocadas no
sistema.
Com o intuito de reduzir o nmero de conexes e mensagens do modelo distribudo
foram desenvolvidos mtodos de transmisso de mensagens, como o broadcast e o
multicast, os quais sero vistos a seguir.
4.3.2 Mtodos de transmisso
De acordo com Stytz (1996) e FunkHouse (1996), o controle da comunicao em
redes corresponde criao de canais de comunicao e ao modo como as mensagens
47

sero transmitidas pela rede. A seguir, sero descritos alguns dos mtodos de transmisso
mais utilizados em sistemas AVR. Como j de se esperar, cada um dos mtodos traz
vantagens e desvantagens, as quais tambm sero descritas.
Unicast
Neste mtodo, quando um usurio do ambiente virtual faz alguma modificao, ele
precisa mandar uma mensagem correspondente a esta modificao para cada um dos outros
usurios do ambiente virtual. Pelo fato de ser necessrio que cada usurio estabelea uma
conexo com os demais usurios, a sincronia das atualizaes entre os usurios ser alta.
No entanto, um nmero elevado de usurios demandaria um nmero muito alto de
conexes, tornando difcil o gerenciamento das mesmas. Alm disso, gerado um nmero
elevado de mensagens, pois cada atualizao no ambiente virtual resulta no envio de cpias
de uma mesma mensagem para cada um dos outros usurios (Figura 4.3).
Este mtodo de transmisso usado na implementao do modelo de comunicao
distribuda simples visto no tpico anterior.
Broadcast
Foi desenvolvido com o objetivo de solucionar os problemas decorrentes do uso do
Unicast. No caso do Broadcast, no necessrio que haja uma conexo entre cada um dos
usurios do ambiente virtual. Basta que todos os usurios comuniquem-se por meio de um
canal comum. Com isso, o problema do alto nmero de mensagens geradas resolvido,
pois a cada atualizao no ambiente virtual o usurio envia somente uma mensagem para a
rede, que ser recebida por todos os demais usurios (Figura 4.4).
Nesse mtodo de comunicao geralmente utilizado UDP Broadcast, onde as
mensagens so enviadas para um endereo de broadcast da rede local atravs do protocolo
UDP (Gossweiler et al., 1994; Singhal & Zyda, 1999), o que torna bastante til o seu uso
principalmente em redes locais (LAN). No entanto, por enviar a mensagem original a todos
os endereos da rede, o UDP Broadcast pode gerar uma quantidade alta de mensagens
desnecessrias, o que torna invivel sua utilizao em redes maiores. Logo, para AVR
sobre grandes redes (WAN) a utilizao de tal mtodo no seria possvel. Nesse caso, temse como opo o Multicast, que visto a seguir.

48

Multicast
Neste mtodo, um conceito de canal de comunicao adotado. Cada usurio do
ambiente virtual recebe mensagens de um ou mais canais do ambiente virtual, onde cada
canal corresponde a um grupo multicast representado por dois ou mais usurios. Dessa
forma, quando um usurio envia uma mensagem, ele a envia para um canal especfico do
qual faz parte e somente os usurios que estiverem participando do mesmo canal (mesmo
grupo) recebero a mensagem (Figura 4.5).
Conforme Brutzmann e seus co-autores (1995), no IP Multicast a transmisso de
datagramas IP pode ser feita para um nmero ilimitado de hosts conectados Internet
atravs de roteadores compatveis com Multicast.
Os usurios de um sistema AVR podem ser distribudos atravs da vrios canais
com a utilizao de um endereo IP classe D correspondente aos endereos de 224.0.0.0
at 239.255.255.255. Dessa forma, um host pode escolher entrar ou sair de um grupo
Multicast apenas informando ao roteador (ao qual este host se conecta Internet) em quais
grupos Multicast ele tem interesse. A partir da, esse roteador somente repassaria as
mensagens dos grupos aos quais h algum host cadastrado (Comer, 1995; Singhal & Zyda,
1999).

Figura 4.3. Unicast (trs mensagens enviadas, uma


para cada usurio)

Figura 4.4. Broadcast (apenas uma mensagem


enviada, todos recebem)

49

Figura 4.5. Multicast (uma mensagem enviada somente para o Grupo 3)

Um caminho natural de ambientes virtuais distribudos , portanto, buscar modos de


se livrar de atualizaes desnecessrias. A extenso natural para sistemas utilizando
Broadcast tentar remediar o excesso de mensagens por meio de comunicao Multicast.
A idia de se utilizar grupos de IP Multicast torna-se ainda mais interessante caso
sejam usadas tcnicas compensatrias para se dividir o ambiente virtual, distribuindo seu
processamento. Estas tcnicas sero vistas mais frente com detalhes.
4.3.3 Caractersticas da rede de comunicao
importante perceber que, independente do modelo de comunicao ou mtodo de
transmisso utilizados, preciso levar em considerao tambm fatores inerentes prpria
rede de dados. Infelizmente, esses fatores geralmente representam limitaes fsicas das
quais o projetista do sistema AVR deve ter conhecimento prvio de modo a evitar
situaes inesperadas em tempo de execuo.
Largura de banda
A largura de banda de uma rede pode ser definida como a capacidade mxima de se
transferir uma quantidade determinada de informaes num determinado perodo,
geralmente expressa em bits por segundo bps (Szwarcman, et al., 1999).
Num sistema AVR a largura de banda da rede utilizada para interconectar os
usurios que determinar o tamanho e a riqueza de detalhes do ambiente virtual. medida
que cresce o nmero de entidades virtuais, aumenta a necessidade de transferncia dessas
informaes entre os diversos componentes do sistema. A largura de banda disponvel para
o sistema , portanto, fator determinante no projeto da arquitetura de comunicao e das

50

funcionalidades que estaro disponveis no sistema. Portanto, o nmero de entidades que


ir exercer maior influncia com relao utilizao da largura de banda.
De acordo com Macednia e Zyda (1997), em redes locais (LANs), que geralmente
dispem de uma banda de 100 Mbps, o nmero de usurios relativamente limitado e a
largura de banda disponvel geralmente suficiente. No entanto, a partir do momento em
que estendido o uso do sistema sobre uma rede de longa distncia (WAN) para
interconectar os usurios do ambiente virtual, geralmente larguras de banda bem mais
modestas esto disponveis. Levando-se em considerao que numa WAN o nmero de
usurios interconectados pode ser bem maior, nem sempre essa largura de banda
suficiente para garantir um desempenho satisfatrio do ambiente virtual. Num modelo de
comunicao distribudo no difcil perceber como o aumento do nmero de usurios
aumenta consideravelmente o uso da largura de banda.
Assim, largura de banda e escalabilidade so fatores intimamente relacionados, pois
quanto maior for a escalabilidade do sistema, maior dever ser a largura de banda
disponvel. Logo, a adoo de solues para minimizar a carga de dados a ser transmitida
na rede sem que os usurios percam detalhes importantes da simulao um requisito
fundamental para o desenvolvimento de um sistema escalvel.
Latncia
Em sistemas de comunicao, a latncia definida pelo tempo decorrido entre o
envio de um pacote de dados e o recebimento do mesmo no endereo de destino.
Se o objetivo do ambiente virtual simular um mundo real, este precisa operar em
tempo real, considerando-se a percepo humana. Conforme Macednia e Zyda (1997), o
controle da latncia que determinar se a interao e a dinmica do ambiente virtual so
satisfatrias para os usurios do ambiente virtual. preciso garantir que a entrega de
pacotes tenha uma latncia mnima para permitir que as imagens do ambiente virtual sejam
geradas, para cada um dos usurios, numa freqncia suficiente para garantir a iluso de
realidade. Os valores ideais dessa freqncia variam numa faixa de 30 a 60 quadros por
segundo (30-60 Hz).
De modo semelhante largura de banda, a latncia no apresenta maiores
problemas em redes locais (LANs). No entanto, em redes maiores (WANs), o longo
caminho que um pacote precisa percorrer at chegar ao seu destino, passando por vrios
equipamentos que interconectam redes, contribui significativamente para o aumento da
latncia.

51

Alm disso, importante perceber que no s a latncia pode comprometer a iluso


de realidade de um ambiente virtual. Para garantir uma freqncia satisfatria de quadros
por segundo, possibilitando uma boa iluso de realidade, itens como a interface de rede,
memria e capacidade de processamento grfico de cada um dos computadores conectados
ao ambiente virtual tambm so relevantes.
Confiabilidade
Em sistemas de comunicao, a confiabilidade est relacionada garantia de que
uma mensagem enviada por um usurio chegar de modo integral no destino desejado.
Assim, o conceito de confiabilidade aplicado a AVR consiste na garantia de que as
alteraes feitas no ambiente virtual por algum usurio sejam transmitidas aos outros
usurios do sistema de modo que todos mantenham a iluso do espao compartilhado.
Segundo Macedonia & Zyda (1997), confiabilidade em comunicaes de AVR
pode ser alcanada com o uso de protocolos de comunicao orientados a conexo, que
utilizam mecanismos de confirmao de recebimento e recuperao quando da ocorrncia
de erros ou no recebimento de algum pacote. No entanto, o uso desse tipo de protocolo
pode resultar em uma maior latncia. Logo, o uso ou no destes protocolos depende
diretamente do nvel de confiabilidade exigido para uma simulao e dos nveis de latncia
aceitveis.
A seguir, sero descritos alguns aspectos relativos ao projeto e uso de protocolos em
sistemas AVR.

4.4 Tcnicas compensatrias


So mtodos para diminuir os efeitos negativos produzidos pelas limitaes da rede
de comunicao citadas anteriormente, como latncia, largura de banda e confiabilidade,
reduzindo de forma coerente o trfego de informaes entre os pontos do sistema.
Os processadores tm evoludo mais rapidamente que as redes de comunicao.
Logo, algumas das tcnicas descritas nesta sesso consistem em poupar largura de banda
em troca de um processamento computacional extra (Smed et al., 2001; Singhal & Zyda,
1999).
4.4.1 Compactao de mensagens
Por meio da compactao de mensagens possvel economizar parte da largura de
banda disponvel em um sistema de comunicao. No entanto, o processo de compactao

52

e descompactao demanda um custo computacional adicional no momento de envio e


recebimento de mensagens.
A escolha do algoritmo de compactao (ou combinao de algoritmos) depende da
arquitetura do sistema. Vrios fatores devem ser analisados no momento de escolha deste
algoritmo, como a freqncia com que os clientes enviam e recebem mensagens, os tipos
de mensagens e os mtodos de transmisso implementados pelo sistema. O algoritmo de
compactao pode ser implementado diretamente ao protocolo usado pelo sistema.
4.4.2 Agregao de mensagens
Consiste em reduzir a freqncia de transmisso de mensagens por meio da juno
de vrias mensagens em uma s. Assim, em vez de enviar vrias mensagens pequenas
enviada apenas uma mensagem maior por vez. Assim como a tcnica de compresso, esta
tcnica demanda um processamento adicional durante o envio e o recebimento de
mensagens. Segundo Singhal e Zyda (1999), esta tcnica pode reduzir em at 50% o uso de
largura de banda em um sistema distribudo.
Infelizmente, por ter que acumular um nmero mnimo de mensagens para
transmitir, esta tcnica pode artificialmente aumentar a latncia da rede, forando os
destinatrios a esperarem mais tempo pelas atualizaes do ambiente virtual. Para resolver
esse problema, foram desenvolvidas polticas de atualizao baseadas em timestamps, onde
h um tempo mximo para descarregar as mensagens para a rede.
4.4.3 Gerenciamento de interesses
So tcnicas que utilizam mecanismos de filtragem de mensagens baseadas em
Expresses de Interesses (IE Interest Expressions) para enviar aos processos contidos na
simulao do ambiente virtual apenas as informaes as quais lhes so pertinentes
(baseado em atributos relativos ao ambiente virtual). Os dados referentes a cada processo
constituem o Domnio de Interesses (DoI Domain of Interest) de cada processo.
Entidades especiais conhecidas como Gerentes de Interesses (IM - Interest Managers) so
responsveis por filtrar os dados gerados e encaminh-los aos demais processos com base
em suas IE (Morse, 1996).
Dentre os mais conhecidos esquemas de Gerenciamento de Interesses est o
gerenciamento baseado em IP Multicasting, onde as mensagens so enviadas apenas para
um subgrupo de participantes de ambiente virtual atravs de estratgias de Multicast
(Zyda, 1995). No caso da diviso do ambiente virtual, pode-se atribuir um endereo IP

53

Multicast para cada uma das reas divididas. Nesse caso, ao entrar em uma determinada
rea, um usurio passaria a fazer parte de um grupo Multicast especfico, enviando e
recebendo somente as mensagens referentes quele grupo.
Logo, por meio de tcnicas de gerenciamento de interesses pode-se especificar
quais informaes sero recebidas por cada participante do ambiente virtual. Com isso,
possvel reduzir o nmero de mensagens na rede ao custo de um processamento
computacional usado na filtragem das mensagens.
4.4.4 Predio de movimento
O uso de tcnicas de dead-reckoning9 promove uma grande reduo no trfego de
mensagens necessrias para a correta atualizao do posicionamento das entidades contidas
nos ambientes virtuais (Gutmann et al., 1998). Consistem na previso da trajetria da
entidade virtual com base na sua posio inicial e nos vetores velocidade e acelerao.
Na prtica, algoritmos de predio de movimento funcionam da seguinte maneira:
quando um usurio se movimenta no ambiente virtual, ao invs de serem enviadas vrias
mensagens informando as posies que o usurio vai ocupando, apenas, por exemplo, a
direo, a velocidade e a acelerao do mesmo so informadas. Estando de posse dessa
informao, cada computador conectado ao ambiente virtual capaz de calcular a nova
posio que o usurio vai ocupar.
4.4.5 Partio de ambientes virtuais
A partio de um AVR consiste na diviso de todo o ambiente compartilhado em
determinadas reas, que podem ser processadas independentemente em paralelo. Os
participantes que se encontrarem nas mesmas partes do mundo virtual podem interagir
entre si, sendo, dessa forma, necessria a troca de mensagens somente entre um
subconjunto de participantes remotos. Esse tipo de distribuio auxilia tanto na diminuio
da utilizao da rede de comunicao quanto na carga computacional necessria ao
processamento de todo o AVR, incluindo at mesmo o processo de gerao grfica e as
simulaes envolvidas (Macedonia et al., 1995; Singhal & Zyda, 1999).

O termo dead-reckoning (abreviao de deduced reckoning) tem suas origens em uma tcnica de navegao
utilizada at mesmo por Colombo, que consiste em marcar a posio corrente da embarcao com base nas
medidas de direo e tempo gasto no ltimo trecho conhecido percorrido. Ainda hoje, esta tcnica pode ser
utilizada em navegao, e existem programas feitos para isto, caso haja problemas com equipamentos de
GPS.

54

Logo, por meio desta tcnica possvel dividir o processamento de um ambiente


virtual em diversos pontos da rede. Conforme os trabalhos de apin e seus co-autores
(1999), as parties devem ser ligadas por meio de portais e a transio entre as mesmas
deve ser transparente ao usurio do ambiente virtual.
4.4.6 Nveis de detalhes
Em seu trabalho, Clark (1976) discute a necessidade da adequao do nvel de
detalhe (LoD Level of Detail) em relao distncia entre o objeto sendo desenhado e o
observador. Isso decorre do fato de que, por exemplo, desenhar uma entidade dotada de
10.000 polgonos a uma grande distncia do observador no acrescenta nenhum ganho
efetivo de qualidade visual. Uma verso simplificada da entidade, contendo cerca de 500
polgonos, poderia ser desenhada caso o resultado final ocupasse apenas uma pequena
poro da tela, alcanando o mesmo efeito visual.
Assim, possvel processar de modo diferenciado as vrias entidades contidas no
ambiente virtual, economizando poder computacional e simplificando o processo de
gerao de grficos tridimensionais.

4.5 Gerncia de falhas em AVR


Apesar do escopo deste trabalho se restringir aplicao de uma rea especfica de
Gerenciamento de Redes em AVR, foi necessria a compreenso acerca de todas as outras
reas para que o modelo especificado no captulo 5 fosse viabilizado. Para isso, so
descritas a seguir algumas consideraes relativas implantao de estratgias para
Gerenciamento de Redes em sistemas AVR em geral e, em seguida, so definidos alguns
aspectos relativos ao gerenciamento de falhas em sistemas distribudos.
Infelizmente, na literatura no so encontrados muitos exemplos de aplicaes
diretas de estratgias de gerncia de redes em ambientes virtuais. No entanto, para algumas
reas, como gerenciamento de desempenho ou segurana, podem ser encontrados trabalhos
correlatos, principalmente no desenvolvimento de sistemas de realidade virtual voltados
para o entretenimento (jogos multi-usurio).
4.5.1 Gerncia em sistemas AVR
O gerenciamento de entidades dos ambientes virtuais est diretamente ligado ao
gerenciamento de desempenho do sistema como um todo. As interaes em tempo real
definem um conjunto de processos (threads) que compe a aplicao de realidade virtual.

55

Cada processo pode ser representado por uma entidade contida no ambiente virtual
(usurios, objetos, simulides, etc). Assim, dentro do escopo da aplicao interativa, vrios
processos concorrem por processamento (Singhal & Zyda, 1999).
Logo, o gerenciamento do desempenho do sistema consiste no escalonamento da
execuo de cada um dos processos contidos na simulao em tempo real. O projetista do
sistema deve aplicar tcnicas para gerenciamento provendo a execuo de cada um dos
processos que demandam tempo de processamento. Em (Lee et. al, 2002; Rodrigues et. al,
2004) so descritas arquitetura escalveis de AVR por meio do gerenciamento de
interesses e particionamento de ambientes. Alm disso, h tambm trabalhos envolvendo
balanceamento de carga processada no sistema com o objetivo de melhorar o desempenho
(Carlsson & Hangsand, 1993; Capps et al., 2000).
J o gerenciamento de configurao consiste na habilidade de configurar os
ambientes virtuais em tempo de execuo, adequando seus requisitos de acordo com a
capacidade fsica (hardware) dos componentes do sistema. Dentre os principais parmetros
que devem ser configurados esto as caractersticas das entidades que denotam o
crescimento do sistema, como usurios, objetos dinmicos, etc., contidos nos ambientes
virtuais (Singhal & Zyda, 1999). Para cada recurso a ser gerenciado, deve-se armazenar
suas peculiaridades de acordo com os fatores de escalabilidade do sistema.
Alm destas caractersticas, preciso armazenar informaes acerca de todos os
componentes fsicos do sistema, como capacidade de processamento e memria dos
servidores, capacidade de transmisso de dados, etc. Estes atributos sero necessrios
durante a avaliao de recursos fsicos (hardware) livres no sistema.
Nos ltimos anos, tm sido cada vez mais comuns os ataques a servidores nas
grandes redes, o que tem feito com que o gerenciamento de segurana tenha um papel
fundamental durante o desenvolvimento do sistema AVR (Cecin et. al, 2003). Assim, so
tpicos importantes para o gerenciamento de segurana (Smed et al., 2001): proteger
informaes sensveis (como nmeros de cartes de crdito) e assegurar os requisitos de
consistncia do mundo virtual, evitando trapaas e situaes inesperadas pelos usurios.
Em (Cecin et. al, 2003), prevista um modelo centralizado para suporte de AVR massivos
voltados para o entretenimento e imunes s trapaas dos usurios.

56

4.5.2 Tolerncia a falhas em sistemas distribudos


Tolerncia a falhas a habilidade de um sistema de funcionar corretamente ainda
que ocorra uma falha em algum de seus componentes (Jalote, 1994). O uso de tcnicas de
tolerncia a falhas visa principalmente o aumento do grau de dependabilidade10 do sistema.
Em geral, o processo de tratar falhas em sistemas de computao envolve quatro
fases (Stallings, 1999): deteco, isolamento, restaurao. Para detectar falhas, pode-se
instaurar mecanismos de replicao de componentes, checagens peridicas, diagnsticos
ou mecanismos de exceo. Aps a deteco, deve-se estipular a abrangncia das
conseqncias da falha, isolando a falha.
Na fase de restaurao o sistema precisa retornar a um estado vlido. H duas
abordagens para viabilizar a restaurao: recuperao de estado vlido anterior11 e
recuperao de estado vlido posterior12. A abordagem mais utilizada em sistemas de
tempo real a de estado vlido anterior e consiste na gravao peridica de estados vlidos
do sistema para posterior restaurao. Evidentemente, esta abordagem envolve o uso de um
servio de persistncia para manuteno dos estados vlidos, bem como exige a capacidade
de restaurao com base em um destes estados. Analogamente, a abordagem de
recuperao de estado vlido posterior consiste na restaurao do sistema com base em
estimativas de processamento onde estimado um novo estado vlido.
Por fim, h casos onde h falha permanente em componentes do sistema de modo
que a restaurao no possvel. Assim, devem ser utilizados componentes redundantes
para substituio de componentes falhos em tempo de execuo.
Sistemas distribudos so constitudos de vrios processadores independentes e
diferenciam-se de computadores paralelos pelo acoplamento fraco entre seus
processadores, ou seja, os elementos de um sistema distribudo no tm acesso a uma
memria comum (Tanenbaum, 2002). Desse modo, toda interao feita por troca de
mensagens atravs de uma rede de comunicao. Por isso, estes sistemas apresentam um
problema bastante peculiar, que garantir a integridade e a consistncia dos dados
distribudos pelos vrios processadores. Esse problema fora a aplicao de tcnicas de

10

Dependabilidade significa que um sistema confivel na execuo de uma tarefa qual foi designado.
Dependabilidade pode ser decomposta em aspectos especficos: confiabilidade (habilidade de o sistema de
executar corretamente a tarefa), disponibilidade (habilidade de o sistema estar disponvel quando necessrio)
e segurana (habilidade de o sistema prevenir acesso no-autorizado ao sistema).
11
Do ingls, backward error recovery.
12
Do ingls, forward error recovery.

57

tolerncia a falhas, mesmo quando no existe qualquer outra exigncia mais forte quanto
confiabilidade imposta pela aplicao.
Em geral, sistemas distribudos devem operar sabendo que, a qualquer momento,
um dos componentes do sistema pode falhar (Blanke et. al, 2001). Assim, o projetista do
sistema deve prever, em tempo de desenvolvimento, potenciais falhas do sistema, bem
como desenvolver solues para eliminar (ou pelo menos amenizar) suas conseqncias.
Assim como em arquiteturas paralelas, sistemas distribudos apresentam uma
redundncia natural, extremamente proveitosa para o emprego de tcnicas de tolerncia a
falhas. Defeito em um n da rede no precisa provocar necessariamente a queda de todo o
sistema, e o sistema pode ser facilmente reconfigurado usando apenas os ns disponveis
(Mullender, 1993).
Geralmente, a maioria das falhas decorrente da interrupo do funcionamento de
algum dos recursos fsicos do sistema, como servidores de mdias, servidores de
autenticao, inativao do enlace de comunicao, dentre outros. Logo, uma alternativa
para resolver estas falhas seria por meio do uso de redundncia de componentes fsicos.
Assim, devido instabilidade das redes de comunicao e at mesmo dos prprios
dispositivos fsicos bastante comum a ocorrncia de perdas de dados momentneos ou at
mesmo panes gerais de sistema (Tanenbaum, 2002; Jalote, 1994).
Caso haja uma falha em um servidor, podem ser aplicadas tcnicas de migrao de
processos entre os servidores do sistema.

4.6 Consideraes finais


Neste captulo, foram apresentados os principais aspectos relativos ao projeto e
implementao de sistemas AVR, bem como alguns tpicos relativos gerncia de falhas
em sistemas distribudos. Os vrios aspectos pesquisados so referentes ao atendimento
dos requisitos funcionais e no-funcionais descritos no captulo anterior.
Com o objetivo de prover uma melhor qualidade de servio aos usurios dos AVR,
os aspectos relativos escalabilidade devero ser sempre previstos. Para isso, de suma
importncia o gerenciamento de entidades que podem afetar a escalabilidade do sistema,
como conexes com usurios, processamento de entidades virtuais, capacidade de
processamento dos servidores, largura de banda utilizada e total, dentre outros.
Durante a fase projeto do sistema, preciso ainda prever os impactos decorrentes da
utilizao do sistema de comunicao, como utilizao da largura de banda, latncia e

58

confiabilidade. Com o objetivo de amenizar esses impactos podem ser implementadas


algumas tcnicas compensatrias.
Como resultado dos fatores analisados neste captulo, foi desenvolvido o NuVEM,
um modelo de gerenciamento do sistema AVR contendo algumas estratgias para otimizar
o uso dos recursos contidos no sistema. Em especial, o modelo descrito a seguir adiciona
arquitetura de AVR mecanismos para deteco e resoluo de falhas em componentes
crticos do sistema.

59

Captulo 5
NuVEM Um modelo para gerenciamento de AVR
5.1 Viso geral
Neste captulo, apresentado o NuVEM Modelo para gerenciamento de
ambientes virtuais em rede , definido para prover mecanismos de controle e
monitoramento de sistemas AVR. Este modelo consiste na aplicao de tecnologias de
gerenciamento de redes voltadas para a rea de AVR e, especificamente, gerenciamento de
falhas.
O objetivo principal da criao do modelo descrito neste trabalho consiste na
adoo de mtodos para deteco e resoluo de falhas em sistemas AVR. Apesar de
focado em uma rea particular do Gerenciamento de Redes (descrito no captulo 2), o
NuVEM fornece um arcabouo que poder ser usado em trabalhos futuros para a gerncia
completa do sistema, abrangendo todas as reas previstas no Gerenciamento de Redes.
O restante deste captulo est dividido da seguinte forma: na Seo 5.2, so
discutidos requisitos para o modelo de gerncia; na Seo 5.3, apresentado o
funcionamento do NuVEM, onde so destacados seus componentes, suas interfaces com o
sistema AVR e os cenrios de utilizao previstos. Por fim, nas sees 5.4 e 5.5, so
apresentados

alguns

trabalhos

relacionados

algumas

consideraes

finais,

respectivamente.

5.2 Requisitos para gerncia remota de AVR


O gerenciamento de um sistema AVR fundamenta-se no gerenciamento do ciclo de
vida dos mundos virtuais instanciados neste sistema, que consiste em manipular as
entidades ligadas a estes mundos (conexes com usurios, processamento de entidades
virtuais, capacidade de processamento no servidor hospedeiro, largura de banda utilizada,
etc.). Os principais requisitos para gerenciamento dessas instncias so mecanismos para
criao, configurao, migrao e excluso dos mundos. Para este fim, importante que o
administrador tenha ferramentas de gerenciamento que dem uma viso ampla e
transparente da localizao das instncias de mundos virtuais na rede (Almendra et al.,
2003).
60

Um dos aspectos da gerncia remota, que tambm pode ser considerado um dos
principais aspectos de sistemas distribudos, a instanciao e localizao de servios
(Almendra, 2003). Assim, uma estratgia de instanciao remota tem que ser definida.
Outro detalhe importante consiste na disponibilidade dos mundos virtuais contidos
nos sistema em um determinado momento. Com o propsito de fornecer uma maior
disponibilidade do sistema aos usurios que devem ser adotadas estratgias para
resolues de falhas assim como polticas de segurana para garantir uma maior
confiabilidade ao sistema.
A seguir, so discutidas estratgias para gerenciamento dos servidores dispostos na
rede, para instanciao remota e para resoluo em caso de falhas.
5.2.1 Gerenciamento de servidores e mundos virtuais
Uma arquitetura de AVR geralmente possui vrios servidores distribudos
fisicamente para processamento dos mundos virtuais. Aes para instanciao,
configurao e desinstanciao de mundos virtuais remotos so suportadas atravs de
mensagens de controle trocadas entre os servidores da arquitetura.
Para fins de gerenciamento dos servidores de mundos virtuais, necessria a
instalao de um agente em cada servidor de modo que este monitore localmente seus
recursos e envie suas estatsticas para o gerente do sistema. O agente deve se autenticar
com o gerente no momento de sua entrada no sistema. No instante seguinte, o agente j
estar habilitado a responder qualquer requisio proveniente do gerente. Estas requisies
vo desde comandos para instanciao de mundos at monitorao de caractersticas do
servidor, como trfego de rede, taxas de uso de memria e processamento, disponibilidade,
etc.
Com o propsito de gerenciar aspectos relativos aos mundos virtuais instanciados,
so utilizadas peculiaridades do mundo virtual. Desse modo, algumas caractersticas
especficas dos ambientes virtuais devem ser compartilhadas com o sistema de
gerenciamento. Dentre estas caractersticas destacam-se: quantidades de conexes de
entidades virtuais (usurios, simulides e objetos interativos), estrutura arquitetnica,
cargas de processamento, uso de memria, etc.

61

5.2.2 Instanciao remota


A instanciao de mundos virtuais em servidores da rede significa a inicializao de
um processo na mquina servidora. Este processo ser responsvel pela manuteno da
consistncia e das peculiaridades do mundo virtual.
No entanto, a instanciao de processos em estaes remotas envolve o uso de
estruturas mais complexas que as tradicionais, como mtodos construtores e carregamento
dinmico, disponveis na maioria das linguagens. Estas estruturas tradicionais de criao
podem instanciar novos processos somente no espao de memria nas quais esto
alocadas. No caso especfico de instanciao remota necessrio que seja possvel
implementar um processo em um outro espao de memria ou at mesmo em mquinas
diferentes (Emmerich, 2000).
Com o propsito de viabilizar a instanciao remota, deve ser implementado nos
agentes um mdulo que possua a capacidade de instanciar mundos virtuais. Este mdulo,
chamado de Fbrica, encapsula os detalhes de instanciao e execuo de mundos a partir
de requisies feitas pelo administrador do sistema por meio do agente. Esta estratgia de
fabricao de processos uma extenso do padro de projeto "Abstract Factory" (Gamma
et al., 1995), onde se tem uma interface padro para criao de famlias de objetos
relacionados ou no.
No momento de instanciao de um novo mundo virtual no sistema, altamente
recomendvel que o administrador no precise especificar exatamente qual agente seria
responsvel pela instanciao. O gerente deve decidir, atravs de consultas aos agentes,
qual servidor (equipado de um agente) estaria com maior quantidade de recursos
computacionais livres para alocao de uma nova instncia de mundo virtual. Logo, a fim
de evitar a instanciao de um mundo virtual em um servidor com recursos computacionais
insuficientes para seu processamento, o gerente deve decidir atravs de estatsticas colhidas
pelos agentes qual servidor estaria com maior aptido. Apesar de no fazer parte do escopo
deste trabalho, previsto que seja feita uma anlise de carga nos servidores de modo a
viabilizar a instanciao remota.
5.2.3 Recuperao de estado de falha
Em sistemas de computao, as aplicaes podem terminar sua execuo de forma
abrupta por vrios motivos: erro na execuo de uma transao, insuficincia de recursos
(memria, CPU), falha interna (ou no prprio sistema operacional), queda da rede de
comunicao, etc (Mullender, 1993). Nesses casos, os sistemas de gerncia devem ser
62

capazes de se recuperar dessas falhas. Isso pode ser realizado, por exemplo, atravs da
definio de estados de execuo e da criao de logs para a realizao de operaes de
recuperao de falhas (Jalote, 1994).
So requisitos de um sistema de gerenciamento de falhas detectar (ou perceber),
reportar e solucionar falhas (Stallings, 1999). O sistema deve ter habilidades para manter
registros de eventos significantes e erros. Estes registros sero necessrios no momento de
restaurao do estado funcional do componente que provocou a falha. No sistema de
gerenciamento da arquitetura de AVR, cada servidor de recursos deve estar em contato
com um outro servidor, o servidor de persistncia compartilhado, que guardar os estados
intermedirios dos mundos virtuais.
O gerente deve efetuar a migrao das instncias de mundos presentes no servidor
falho para outro servidor. Ao mesmo tempo, o gerente entra em contato com o servidor de
persistncia compartilhado para saber quais instncias de mundos foram afetadas pela falha
ocorrida. A partir da, o gerente poder requisitar a re-instanciao destes mundos virtuais.
Existe tambm o caso do gerente do sistema falhar. Para resolver este problema
pode-se criar um outro servidor gerente, chamado de reserva, que, em intervalos de tempo
pr-definidos, verifica a disponibilidade do gerente. Assim, se o gerente falhar, o reserva
toma posse de sua posio, evitando que o sistema de gerenciamento pare.
Para os casos acima, a tolerncia a falhas pode ser viabilizada por meio de
tratamentos de excees (Cristian, 1995). Um dos conceitos mais utilizados acerca de
tolerncia a falhas por meio de tratamento de excees o Idealized Fault Tolerance
Components (IFTC) (Lee & Anderson, 1991). Este conceito isola os comportamentos
normal e anormal de cada componente do sistema de modo que quando uma falha ocorre o
componente dispara uma exceo.
Em conjunto com as estratgias previstas pelo IFTC, o gerente do sistema deve
utilizar a abordagem de recuperao de estado vlido anterior backward error recovery
(Captulo 4) para resoluo de falhas. Nessa abordagem utilizado o ltimo estado vlido
do mundo virtual gravado de acordo com regras pr-estabelecidas entre o servidor de
persistncia e os agentes como ponto de restaurao.

5.3 Funcionamento do NuVEM


O NuVEM define um modelo de comunicao centralizado, onde deve haver
apenas um nico gerente ativo por vez em contato com vrios agentes subordinados
(Captulo 2; Captulo 4). Este modelo simplifica a implementao do sistema, facilitando o

63

controle por reunir as estratgias de gerncia em um s componente. Alm de centralizado,


o NuVEM utiliza o mtodo Unicast de transmisso de dados, pois este mtodo possibilita
que os componentes do sistema mantenham uma alta sincronia de seus estados (Captulo
4).
A seguir, so descritos detalhes referentes ao funcionamento do NuVEM: seus
componentes, os cenrios de utilizao previstos e suas interfaces de comunicao com o
sistema AVR.
5.3.1 Componentes
Os componentes decorrentes dos requisitos expostos na seo anterior so utilizados
para disponibilizar, simultaneamente, um ou mais mundos virtuais. Alm disso, estes
componentes representam um arcabouo para a implementao de tcnicas de
gerenciamento de redes e, especificamente, gerenciamento de falhas. Para isso, foram
definidos 3 (trs) componentes (Figura 5.1):

Figura 5.1. Componentes do NuVEM.

Servidor compartilhado o responsvel pela manuteno dos estados


intermedirios dos mundos virtuais cadastrados no sistema AVR. um ponto de
interseo entre o sistema de gerncia e o sistema AVR e ser utilizado para
registrar dados provenientes das interaes nos mundos virtuais para uso durante as
rotinas de recuperao de falhas. Basicamente, consiste em uma aplicao servidora

64

de mdias possivelmente um banco de dados com uma interface (de


comunicao) padro para consultas por parte dos Agentes implantados no sistema.
Agente a aplicao contida nos servidores de recursos com o objetivo de coletar
e armazenar dados do sistema local e dos mundos instanciados, alm de responder
s requisies feitas pelo Gerente do sistema. Faz parte da aplicao Agente o
mdulo para instanciao de mundos virtuais (Fbrica).
Gerente a aplicao centralizadora responsvel pela manuteno de registros
gerais de todo o sistema de gerncia, como conexes com Agentes, dados de
usurios e mundos virtuais do sistema AVR, mtodos para resoluo de falhas, etc.
Estes registros devem persistir em uma base de informaes gerenciadas de uso
exclusivo do Gerente.
Alm dos componentes supracitados, existe um outro componente que intrnseco
aos propsitos do NuVEM: o mundo virtual (Figura 5.1). O mundo virtual o componente
do sistema AVR mais importante para o sistema de gerenciamento. Alm dos componentes
j descritos previsto que o NuVEM seja integrado aos componentes do pro AVR. Essa
integrao constituda com base nas interfaces de comunicao presentes nos
componentes Gerente e Agente (ver seo 5.3.2).
Esses componentes podem ser executados em um nmero ilimitado de computadores
de modo a prover um nmero tambm ilimitado de mundos virtuais. Para isso, previsto
que sejam ativados apenas um Servidor compartilhado e dois Gerentes (um titular e um
reserva). O nmero de Agentes contidos no sistema fica a cargo do seu administrador. No
entanto, no h necessidade de iniciar mais de um Agente por servidor de recursos.
Como usurio do sistema destacado o Administrador, que o responsvel pela
manipulao do sistema. Dependendo da flexibilidade das interfaces grficas dos
componentes, o Administrador pode ser desde um especialista em informtica at um
usurio leigo ou operador de sistemas.
A seguir, so apresentados os principais cenrios de utilizao do NuVEM para ilustrar
seu funcionamento.
5.3.2 Cenrios de Utilizao
Nessa seo, so apresentados os cenrios encontrados durante a utilizao do
NuVEM. Para cada cenrio, ser detalhado o conjunto de aes realizadas por cada
componente do sistema envolvido.

65

Cenrio 1: Iniciao do Gerente


Este cenrio, por sinal o mais simples, consiste basicamente da ativao de uma
aplicao Gerente em um servidor da rede. Desse modo, o Gerente inicia sua base de
objetos gerenciados e fica em modo passivo (Figura 5.2 a-b). A partir da, espera por
conexes de Agentes para mudar para o modo ativo (Figura 5.2 c). A distino entre os
modos passivo e ativo utilizada para dissociar os Gerentes titular e reserva, onde o
reserva fica em modo passivo at o momento em que for necessria sua interveno diante
de uma falha do Gerente titular. Aps iniciao do Gerente o administrador do sistema
deve iniciar o Servidor compartilhado.
Conforme dito anteriormente, de incio devem ser instanciados no sistema apenas 2
(dois) Gerentes. A partir da, os Agentes devero fazer conexo com um dos Gerentes, que
passa para o modo ativo e mantm uma referncia para o seu reserva (que deve ser passada
aos Agentes no momento do pedido de conexo). Para que o sistema funcione em
condies mnimas, necessria a ativao de apenas um Gerente. No entanto, em caso de
falha do Gerente, possvel que o sistema inteiro pare.

Figura 5.2. Iniciao do Gerente.

Juntamente com o Gerente do sistema deve ser iniciado o componente Servidor


compartilhado (Figura 5.2 d).
O Gerente deve ter uma interface (GUI) padro para monitorao e controle do
sistema por parte do Administrador. Esta interface ser acessada durante o processo de
instanciao remota.

66

Cenrio 2: Instalao e iniciao do Agente


Antes de um iniciar qualquer agente no sistema, ambos os Gerentes, titular e
reserva, devem ser iniciados, assim como o Servidor compartilhado. Por incluir um
mdulo especfico para instanciao de mundos virtuais (Fbrica), necessrio que a
aplicao Agente tenha permisses de sistema suficientes para iniciar aplicativos em tempo
de execuo. Alm disso, a Fbrica precisa ser equipada com dados especficos dos
mundos virtuais os quais ela pode instanciar. Estes dados so provenientes do prprio
sistema AVR e no devem ser alterados pelo sistema de gerncia.
A instalao de Agentes envolve uma simples carga do programa executvel ou
ainda, dependendo dos recursos disponveis, como um servio persistente no sistema
operacional (Figura 5.3 a). Sempre que um Agente iniciado, feita sua autenticao com
o Gerente (Figura 5.3 b) e, a partir de ento, o Gerente contabiliza o novo Agente,
passando a contar com os recursos de seu servidor hospedeiro para instanciar mundos
virtuais no servidor hospedeiro (Figura 5.3 d). Durante a fase de autenticao do Agente, o
Gerente envia dados relativos ao Gerente reserva e requisita dados de sistema do Agente.
Caso o Gerente esteja em modo passivo antes da autenticao, isto , este o primeiro
Agente a fazer autenticao, o mesmo dever mudar para o modo ativo (Figura 5.3 c).
Nesse novo modo, o Gerente deve monitorar periodicamente os Agentes, bem como
responder s requisies do administrador do sistema e receber notificaes de eventos
previamente configurados (como eventos de notificao de falhas).

Figura 5.3. Iniciao do Agente.

67

Cenrio 3: Utilizando a Instanciao remota


Logo aps a iniciao dos componentes de gerncia (Gerente, Servidor
compartilhado e Agente), j possvel instanciar mundos virtuais nos servidores da rede.
Por meio de uma interface disponibilizada pelo Gerente, o administrador do sistema pode
instanciar mundos virtuais.
Para isso, o administrador faz uma requisio diretamente ao Gerente ativo no
sistema para que este encaminhe um comando de instanciao (Figura 5.4 a). Apesar de
no fazer parte do escopo deste trabalho, prevista uma anlise de carga dos Agentes para
que o Gerente escolha qual servidor dever processar a nova instncia (Figura 5.4 b). De
posse do servidor escolhido, o Gerente envia uma requisio ao Agente respectivo (Figura
5.4 c), que contata o Servidor compartilhado para pegar informaes do mundo virtual
(Figura 5.4 d) e inicia seu processamento (Figura 5.4 e).

Figura 5.4. Instanciao remota.

Cenrio 4: Gravao no Servidor compartilhado


A partir da instanciao do mundo virtual, o Agente passa a monitorar seus estados,
que consistem em dados relativos s interaes dos participantes do ambiente virtual entre
si e dos participantes com o prprio ambiente virtual. O estado de um mundo virtual
consiste no estado de seus componentes estticos e dinmicos. Componentes estticos so
componentes que no apresentam mudana em suas caractersticas ao longo do tempo. Em
geral, esses componentes so relativos estrutura arquitetnica do mundo virtual.
Ao contrrio dos componentes estticos, os componentes dinmicos podem sofrer
mudanas em suas caractersticas. Essas mudanas podem ser provocadas, ou no, por

68

usurios atravs de interaes no prprio mundo virtual, isto , as mudanas nos estados
dos componentes dinmicos ocorrem de modo pr-ativo ou reativo. Em geral, so
componentes dinmicos do mundo virtual os simulides, usurios, objetos interativos, etc.
Por questes otimizao, dados estticos do mundo virtual no so gravados no
Servidor Compartilhado, apenas a parte dinmica (mutvel) do mundo virtual deve ser
gravada. Desse modo, configurada pelo administrador do sistema a freqncia com que o
Agente colher (Figura 5.5 a) e gravar no Servidor Compartilhado (Figura 5.5 b) os
estados dos mundos virtuais que esto sob sua responsabilidade. Esses estados sero
utilizados durante os processos de recuperao de falhas no sistema.

Figura 5.5. Gravao no Servidor compartilhado.

Ainda por questes de otimizao, possvel que sejam estabelecidas freqncias


de gravao variveis para que mundos virtuais com maiores modificaes em seus estados
tenham maiores freqncias de gravao que mundos virtuais com menores modificaes
em seus estados ao longo do tempo. A operao de gravao no Servidor Compartilhado
deve ser atmica e, evidentemente, quanto maior a quantidade de dados a serem enviados,
maior o tempo necessrio para concluso da mesma.
Cenrio 5: Resoluo de falhas Caso 1: Falha em um dos mundos virtuais
Mesmo aps o processo de autenticao do Agente, mantida a sua conexo com o
Gerente. Esta conexo permite que o Gerente receba notificaes oriundas do Agente, e
vice-versa. Desse modo, possvel que o Agente envie notificaes (traps) acerca do
funcionamento de seus mundos virtuais instanciados localmente. Caso haja alguma
situao que caracterize falha em alguma instncia, o Agente dispara uma notificao para
o Gerente. As situaes que caracterizam falhas so previstas em tempo de
desenvolvimento do sistema e no podem ser alteradas em tempo de execuo. Em verses
posteriores do NuVEM possvel que sejam utilizadas tcnicas de plugins para adicionar
ou remover tipos de falhas a serem monitoradas em tempo de execuo.
O processo de resoluo de falhas em Mundos Virtuais consiste basicamente de trs
etapas: a deteco da falha por parte do Agente (Figura 5.6 a), o envio da notificao ao

69

Gerente (Figura 5.6 b) e a re-instanciao do mundo virtual (Figura 5.6 c-f), se necessrio.
Dependendo do estado do Agente que enviou a notificao, o Mundo Virtual pode ser reinstanciado ou instanciado por outro Agente.

Figura 5.6. Resoluo de falha em Mundo Virtual.

Cenrio 6: Resoluo de falhas Caso 2: Um Agente falha


Em sistemas de comunicao, falhas ocasionalmente provocam a parada total (failstop) da estao servidora (Mullender, 1993). Falhas desse tipo consistem em perda de
comunicao com quaisquer outras estaes do sistema.
Em perodos de tempo fixos e pr-estabelecidos, o Gerente deve fazer comunicao
com o Agente de modo uma falha de conexo seja rapidamente percebida. Caso o Gerente
constate a falha, segue-se um perodo de testes de conexo para que a falha seja
confirmada e ento so tomadas as devidas providncias para recuperao. Os perodos de
tempo utilizados para confirmar a falha nos Agentes devem ser definidos em tempo de
implantao e integrao do NuVEM ao sistema de ambientes virtuais.
Diante de uma falha na conexo (Figura 5.7 a), disparada uma exceo no Gerente
(Figura 5.7 b) indicando os dados do Agente falho. So feitos alguns testes de conexo
com o Agente de modo a confirmar a queda de comunicao (Figura 5.7 c). Caso seja
confirmada a falha o cenrio prossegue, seno o sistema volta ao seu estado anterior, sem
falhas.

70

Figura 5.7. Resoluo de falha em Agente.

Desse modo, ao ratificar a falha no Agente o Gerente busca informaes detalhadas


acerca dos mundos virtuais afetados (Figura 5.7 d), instanciando-os novamente em outros
servidores remotos (Figura 5.7 e-g). Logo, a ltima etapa deste cenrio consiste na
execuo de vrios comandos de instanciao remota.
Cenrio 7: Resoluo de falhas Caso 3: O Gerente do sistema falha
De forma anloga ao cenrio anterior, possvel que ocorra uma falha no Gerente.
Com o intuito de solucionar esta falha, utilizado um mecanismo de redundncia de
componentes onde utilizado um Gerente reserva, que fica em estado passivo at o
momento em que chamado por algum Agente. O processo de recuperao neste cenrio
consiste em fazer com que os Agentes conectem-se ao Gerente reserva.
Ainda de forma semelhante ao cenrio anterior, neste cenrio previsto que haja
um perodo de testes onde os agentes deveriam confirmar a falha no Gerente. Este passo
muito importante e evita, principalmente, que existam dois gerentes ativos no sistema ao
mesmo tempo, o que contraria o fato de o Gerente se um componente centralizador no
NuVEM. Assim, caso a falha no Gerente seja intermitente, o Gerente reserva no
necessariamente ativado.
Diante de uma falha na conexo (Figura 5.8 a), disparada uma exceo em cada
Agente autenticado (Figura 5.8 b) indicando que o Gerente est inacessvel. A partir da,
cada Agente efetua alguns testes de conexo com o Gerente durante um perodo de tempo
pr-estabelecido de modo a confirmar a queda de comunicao (Figura 5.8 c). Caso seja

71

confirmada a falha no Gerente o cenrio prossegue, seno o Agente volta ao seu estado
anterior, sem falhas de comunicao com o Gerente.

Figura 5.8. Resoluo de falha no Gerente.

Ao comprovar a falha cada Agente deve utilizar as informaes sobre o Gerente


reserva concedidas pelo Gerente falho durante a fase de autenticao. Com base nessas
informaes o Agente se autentica junto ao Gerente reserva (Figura 5.8 d), que, por sua
vez, o muda seu estado para o modo ativo (Figura 5.8 e), contabilizando o Agente recm
autenticado (Figura 5.8 f) e assumindo o papel de Gerente nico do sistema.
Opcionalmente, o administrador do sistema poderia ser notificado por e-mail ou
alguma outra ferramenta de comunicao no momento da falha no Gerente. Desse modo, o
administrador poderia ser notificado no momento em que o Gerente reserva mudasse para
o estado ativo.
5.3.3 Interfaces com o sistema AVR
Ao gerenciar o ciclo de vida dos mundos virtuais contidos no sistema AVR,
algumas caractersticas particulares aos ambientes virtuais devem ser compartilhadas com
o NuVEM. Atributos como quantidade de entidades virtuais conectadas, estados das
entidades, cargas de processamento, uso de memria, taxas de transmisso, etc, devem ser
acessveis a ambos os sistemas.
Logo, para que o NuVEM funcione corretamente quando aplicado a um sistema
AVR previamente construdo, preciso que sejam implementadas algumas interfaces de
comunicao entre os dois sistemas.

72

Primeiramente, preciso que o componente Gerente tenha acesso s informaes de


permisses dos usurios e mundos virtuais do sistema AVR. Estas informaes sero
necessrias durante processos de instanciao automtica (Cenrio 3) e autenticao de
usurios. Em verses posteriores do NuVEM possvel que sejam utilizados mecanismos
de gerncia de segurana para fornecer ao sistema AVR maior confiabilidade.
Para que os Agentes tenham acesso aos estados de cada mundo virtual necessrio
que haja uma interface de comunicao entre os Agentes e o componente do sistema AVR
onde ficam armazenadas informaes relativas aos estados das estruturas estticas e
dinmicas de cada mundo virtual. Essa informaes sero utilizadas tanto durante o
processo de gravao no Servidor Compartilhado (Cenrio 4) como durante o processo de
Instanciao remota (Cenrio 3).
Existe ainda a possibilidade de o administrador do sistema requisitar informaes
dos mundos virtuais instanciados. Para isso, preciso que o Agente tenha uma interface de
comunicao com o componente mundo virtual do sistema AVR. Essas informaes vo
desde caractersticas dos mundos virtuais at caractersticas do prprio servidor de recursos
onde foi alocado o Agente.

5.4 Trabalhos relacionados


Alguns trabalhos na rea de desenvolvimento e implementao de arquiteturas de
AVR podem ser encontrados na literatura. A arquitetura DIVE (Carlsson & Hangsand,
1993) tenta aumentar sua escalabilidade por meio do uso de protocolos multicast para
distribuir mensagens entre seus participantes. J a arquitetura NPSNET-IV (Capps et al.,
2000) especifica mecanismos de componentes dinamicamente extensveis para alcanar
maior escalabilidade. A arquitetura VELVET (Oliveira & Georganas, 2002) tambm usa
tcnicas de multicast, mas aliadas a tcnicas de gerenciamento de interesses relativos aos
espaos geogrficos do ambientes virtual para aumentar a escalabilidade do sistema. Todos
estes sistemas definem estruturas para criar e distribuir mundos virtuais pela rede, no
entanto, nenhum deles especifica mtodos para tolerncia ou recuperao em caso de
falhas.
Alguns outros sistemas como o AlphaWorlds (Dodge, 1999; Ryan, 2004) ou
COVET (Hosseini & Georganas, 2001) nem ao menos citam aspectos de escalabilidade ou
gerenciamento de seus ambientes virtuais.

73

5.5 Consideraes Finais


As estratgias definidas pelo NuVEM neste captulo fornecem meios para a
administrao e o uso otimizado de um sistema AVR, pois viabiliza a monitorao e o
controle das instncias de mundos virtuais contidas no sistema. Funcionalidades como
criao, configurao, migrao e excluso de mundos so suportadas. Ademais, o
NuVEM fornece um arcabouo para gerenciamento de toda arquitetura de ambientes
virtuais.
Dentre os detalhes de funcionamento do NuVEM descritos anteriormente,
destacam-se os cenrios onde so previstas falhas em componentes crticos do sistema.
Desse modo, esto previstas falhas nos componentes: Mundo Virtual, Agente e Gerente.
Como o componente Servidor Compartilhado consiste em uma aplicao servidora de
mdias, sua implementao pode ser completamente reutilizada de terceiros. Caso durante
a implementao seja escolhido utilizar um sistema de gerenciamento de banco de dados
(SGBD), poder-se-ia utilizar o prprio mecanismo de resoluo de falhas desse sistema.
Caso necessrio, pode-se usar uma interface de acesso ao Gerente que seja
independente do componente Gerente. Assim, para o cenrio onde h falha do Gerente
(Figura 5.8 a-f), o administrador do sistema poderia acessar o Gerente de modo
transparente com relao sua localizao na rede ou mesmo com relao a qual dos
gerentes ele esteja acessando, se o titular ou o reserva.
A seguir, ser descrito um estudo de caso da integrao do NuVEM a um sistema
AVR, o CRAbCVE (Gomes, 2005). Esta integrao consiste na implementao dos
componentes descritos anteriormente, bem como de suas funcionalidades de resoluo de
falhas e interfaces com o prprio sistema AVR.

74

Captulo 6
Gerenciamento Remoto de Falhas em uma arquitetura de AVR
6.1 Introduo
Este captulo descreve a implementao das estratgias previstas no NuVEM
descrito no captulo anterior aplicadas a uma arquitetura de ambientes virtuais, a
arquitetura CRAbCVE (Gomes, 2005). As implementaes esto relacionadas ao projeto
Sintegra Sistema integrado de Educao a Distncia com suporte a Avaliao de
Competncias (Sintegra, 2006), que um projeto conseqente de uma parceria entre
SENAC/CE e a Universidade Federal do Cear (UFC).
Na Seo 6.2 apresentada a arquitetura CRAbCVE. Na Seo 6.3, apresentam-se
as implementaes do Gerente e do Agente do sistema de gerncia, bem como sua
integrao aos componentes da arquitetura CRAbCVE. Na seo 6.4 so descritos alguns
testes de funcionalidade e alguns resultados decorrentes da integrao, alm de algumas
consideraes finais.

6.2 Arquitetura CRAbCVE


A arquitetura CRAbCVE (Gomes, 2005) foi projetada para viabilizar CVEs de
baixo custo (utilizando computadores comuns) atravs da Internet. A CRAbCVE uma
evoluo da arquitetura Ataxia (Leite-Junior, 2000) que inclui elementos para permitir o
trabalho colaborativo.
A concepo de ambientes virtuais de baixo custo requer a adoo de uma
estratgia que divida as funes de sustentao do sistema AVR entre diversos
componentes, que podem ento ser alocados em mquinas separadas. Essa abordagem,
baseada no processamento distribudo em sistemas de baixo custo, apresenta uma relao
custo/benefcio superior ao uso de poderosos e caros sistemas para processamento
centralizado (Tanenbaum, 2002). A CRAbCVE define, ento, um conjunto de
componentes que podem ser executados em diversos microcomputadores comuns, de
maneira simultnea, sendo cada um responsvel por prover servios especficos para o
sistema.

75

Durante

desenvolvimento

da

arquitetura

CRAbCVE,

foram

definidos

componentes especializados (Figura 6.1) de modo a prover suporte aos processos de


colaborao (Borges et al., 1995) e permitir a publicao de mundos virtuais, garantindo
uma maior acessibilidade e tornando a CRAbCVE uma arqitetura de uso genrico e
extensvel.

Figura 6.1. Componentes da arquitetura CRAbCVE.

A publicao de mundos virtuais uma funcionalidade muito importante, pois


permite que mundos virtuais construdos pelos participantes a partir de bibliotecas de
modelos pr-fabricados fiquem automaticamente disponveis para a explorao por outros
usurios do sistema. Assim, a criao de mundos virtuais deixa de ser uma tarefa exclusiva
de especialistas para se tornar uma atividade de autoria, ao alcance de usurios das mais
diversas reas. Isso possibilita um aumento no nmero de mundos virtuais disponveis,
despertando um maior interesse nos usurios do sistema. Para viabilizar a publicao de
novos mundos virtuais, preciso que o sistema inclua mecanismos para persistncia dos
estados dos ambientes virtuais, bem como instanciao dos mesmos na rede.
A seguir, so apresentados os componentes da arquitetura CRAbCVE e discutido
como esses componentes so empregados na disponibilizao de mundos virtuais
76

compartilhados. Esta arquitetura, ilustrada na Figura 6.1, composta de oito componentes


cujas funcionalidades esto descritas a seguir.
6.21 Gerenciador de Polticas do Sistema
O Gerenciador de Polticas do Sistema (GPS) o componente responsvel pelo
cadastro de usurios e mundos virtuais, alm das permisses de uso e edio nestes
ambientes virtuais. Para isso, o GPS mantm uma base de dados com conjuntos de direitos
de acesso detalhados por usurios e mundos virtuais.
Assim, para ter acesso ao sistema, todos os participantes precisam, antes de tudo,
autenticar-se no GPS. Por agrupar funes de localizao e autenticao, este componente
o ponto de convergncia do sistema. Assim, deve existir uma nica instncia do GPS
ativa no sistema, ao contrrio dos outros componentes que podem ter vrias instncias.
6.2.2 Fornecedor de Mdias
O Fornecedor de Mdias (FM) torna disponvel aos participantes do CVE o conjunto
de arquivos utilizados em interaes no interior do ambiente. O FM bastante simples,
funcionando basicamente como um sistema de armazenamento de arquivos de mdias
especficas. Entre essas mdias, esto presentes todos os elementos tridimensionais do
ambiente virtual, incluindo sua prpria estrutura arquitetnica, imagens, sons, vdeos, etc.
O FM armazena ainda arquivos que descrevem a formao dos mundos virtuais e artefatos,
e listas de permisses dos elementos RV em cada mundo virtual.
6.2.3 Gerenciador de Eventos
O Gerenciador de Eventos (GE) o componente responsvel por iniciar o
funcionamento do ambiente virtual e por tratar todos os eventos oriundos das interaes de
seus participantes, gerando, sempre que necessrio, mensagens de atualizao do estado do
mundo virtual que so distribudas aos participantes atravs do Roteador de Mensagens.
Para o tratamento desses eventos, o Gerenciador de Eventos armazena o estado do
mundo virtual e de todas as suas entidades. Isso permite que o estado atual seja facilmente
informado aos usurios recm-conectados ao ambiente virtual. Para otimizar o acesso ao
estado do mundo virtual, adotou-se uma estrutura de banco de dados que concentra todas
as informaes do mundo virtual.

77

6.2.4 Gerenciador de Polticas do Mundo Virtual


O Gerenciador de Polticas do Mundo Virtual (GPMV) o componente
especializado no armazenamento das restries de aes de participantes do CVE. O
conjunto de direitos de acesso permitir ou no que um usurio interaja com determinados
artefatos do CVE, ou tenha acesso a determinados sub-ambientes. As restries podem ser
atribudas diretamente pela equipe de administrao, ou pelos prprios participantes
durante a autoria do ambiente virtual. Junto ao Roteador de Mensagens e ao Gerenciador
de Eventos, o GMPV um dos trs componentes essenciais para o funcionamento de um
CVE.
6.2.5 Roteador de Mensagens
O Roteador de Mensagens (RM) o componente responsvel por tornar as
conexes de um determinado AVR disponveis aos seus diversos participantes (humanos
ou simuladores). Esse componente empregado no repasse de informaes a outros
elementos da arquitetura, a fim de manter o estado compartilhado do mundo virtual
(posicionamento e velocidade de deslocamento das entidades, por exemplo) e viabilizar a
comunicao entre participantes (mensagens de texto, requisio de mdias, etc.).
Juntos, os componentes RM, GE e GPMV fazem o processamento de um mundo
virtual. possvel ainda o uso destes componentes para processamento de duas ou mais
instncias de mundos virtuais.
6.2.6 Cliente de Interao e Edio em Realidade Virtual
Os recursos do ambiente virtual esto disponveis para os usurios humanos atravs
Cliente de Interao e Edio em Realidade Virtual (CIERV), que se conecta diretamente
ao RM. Essa aplicao cliente faz uso de diferentes ferramentas necessrias apresentao
dos diversos tipos de mdias disponveis no ambiente virtual e uma interface grfica
tridimensional para apresentao desse mundo virtual. O CIERV tambm torna os recursos
de comunicao disponveis aos usurios.
O CIERV mantm uma cache local de mdias para o armazenamento persistente de
todas as mdias utilizadas, inclusive a prpria arquitetura tridimensional do ambiente
virtual. Essas mdias so replicadas sob demanda atravs de uma conexo direta com o
componente FM.

78

6.2.7 Controlador de Simulides


Personagens virtuais controlados pelo computador podem desempenhar diversos
papis dentro do ambiente virtual, inclusive o de interface de acesso a recursos
originalmente externos ao AVR. O componente Controlador de Simulide (CS) deve
conectar-se diretamente ao Roteador de Mensagens, da mesma maneira como um CIERV
se conecta. Um modelo de construo detalhado desse componente encontra-se em
(Santos, 2001; Vidal et al., 2000).
6.2.8 Cliente de Administrao
O Cliente de Administrao (CA) a uma ferramenta utilizada para realizao de
diversas tarefas relacionadas manuteno simplificada da arquitetura. Esse cliente atua
conectando-se diretamente a cada componente definido na arquitetura ou a controladores
de simulides. Uma vez conectado, o Cliente de Administrao tanto pode realizar diversas
alteraes nas configuraes do componente, quanto acessar as informaes armazenadas
por esse, a fim de realizar anlise de funcionamento do sistema.

6.3 Integrao do NuVEM arquitetura CRAbCVE


Atualmente, um sistema baseado na arquitetura CRAbCVE est implementado
(Gomes, 2005). Nesse sistema, os componentes CS e CA no esto presentes e o
componente GPMV foi implementado de modo rudimentar como um mdulo do
componente GE. No entanto, nesta verso os componentes GE e RM no foram
devidamente e completamente implementados, sendo utilizados apenas com parmetros
fixos, o que impossibilita a alocao dinmica de mundos virtuais. Para contornar esse
problema foi implementado um emulador de mundo virtual que ser utilizado durante a
fase de testes (seo 6.5).
A fim de possibilitar a gerncia de falhas dos mundos virtuais disponibilizados
atravs da arquitetura CRAbCVE, foram-lhe incorporados os componentes do modelo
NuVEM discutidos no captulo anterior.
Para implementao dos componentes de gerncia foi utilizada a tecnologia JMX
descrita no captulo 2. Esta escolha justificada pelo fato de que JMX uma tecnologia
aberta e expansvel. Apesar de tambm ser uma tima alternativa, o WBEM foi descartado
por conta da dificuldade na utilizao dos provedores de acesso a dados do sistema
operacional (Job & Simes, 2002).

79

A seguir, so apresentados os passos seguidos para integrao dos componentes de


gerncia aos componentes do sistema AVR escolhido para o estudo de caso.
6.3.1 Integrao do Gerente do sistema
Para ter acesso aos ambientes virtuais do sistema CRAbCVE, todos os participantes
precisam se autenticar antes junto ao componente GPS (descrito na seo 6.3.1), que pode
ser considerado um componente centralizador. Logo, s deve existir uma nica instncia
do GPS no sistema, ao contrrio dos outros componentes, que podem ter vrias instncias
(Gomes, 2005). Alm disso, o GPS responsvel pelo controle e administrao de
permisses dos usurios e mundos virtuais, sendo o ponto de convergncia de todo o
sistema. Por outro lado, o Gerente do sistema o responsvel pela catalogao dos
ambientes virtuais instanciados.
Foi ento criada uma interface de comunicao entre o GPS e o Gerente (ver seo
5.3.3), possibilitando a troca de comandos relativos aos mundos virtuais instanciados.
Dentre esses comandos destacam-se tambm requisies de instanciao de mundos
virtuais, monitoramento e controle. Portanto, o GPS repassar as requisies de
instanciao para o Gerente, que aplicar o mecanismo de instanciao remota introduzido
na seo 5.2.2 (Figura 6.2).

Figura 6.2. Integrao do Gerente ao componente GPS.

Durante a implementao do Gerente foram utilizados os protocolos HTTP com


suporte a autenticao e JMXMP (Sun Microsystems, 1999). Para comunicao entre o
Gerente e o GPS foi usado o HTTP, que tambm fornece uma interface amigvel atravs
de navegadores web. J o JMXMP foi usado para comunicao do Gerente com os Agentes
do sistema (Figura 6.2).
A aplicao Gerente demanda a implantao de uma base de dados para
armazenamento de informaes relativas ao sistema de gerncia como um todo. Logo, foi

80

utilizado o banco de dados MySQL (Widenius & Axmark, 2002) devido sua
simplicidade, gratuidade e velocidade (Figura 6.2). Maiores detalhes sobre a
implementao do Gerente sero vistos na seo 6.4.3.
6.3.2 Integrao do Agente do sistema
Conforme dito anteriormente, o gerenciamento do sistema de ambientes virtuais
consiste no gerenciamento do ciclo de vida dos mundos virtuais instanciados. Com base
nisso, os componentes RM, GE e GPMV (descritos na seo 6.3) devem ter seus
processamentos controlados pelo sistema de gerncia.

Figura 6.3. Integrao do Agente aos componentes do sistema CRAbCVE.

Em (Almendra et. al, 2003) descrito um mecanismo de fbricas para mundos


virtuais usando a tecnologia CORBA (OMG, 1995) - no entanto, o uso desta tecnologia
dificulta bastante a integrao a outras tecnologias ou servios, como portais web, por
exemplo. Desse modo, para o desenvolvimento do Agente foi utilizado o conceito de
Fbrica de Mundos descrito em (Almendra et. al, 2003). A Fbrica foi implementada como
um mdulo do Agente, que expe ao Gerente uma interface para instanciao de mundos
virtuais. Alm disso, cada Agente deve manter um registro local de seus recursos
computacionais utilizados. Estes dados sero necessrios durante o processo de
instanciao remota (descrito na seo 5.2.2), onde ser escolhido o servidor com maior
aptido para processar uma nova instncia de mundo virtual. Apesar de no fazer parte do
escopo deste trabalho, foi idealizada uma mtrica simples para esta escolha utilizando
apenas dados como memria e processamento utilizados pelo sistema hospedeiro.
De acordo com especificao da arquitetura CRAbCVE, o componente FM
(descrito em 6.3.2) responsvel pela manuteno de todas as mdias utilizadas nos
ambientes virtuais do CRAbCVE, inclusive mdias de estado dos mundos virtuais, que

81

consistem em arquivos XML contendo informaes relativas estrutura e s permisses de


usurios especficas para cada mundo virtual. O XML do mundo virtual processado pelo
componente GE (descrito na seo 6.3.3), que recebe eventos decorrentes das interaes no
mundo virtual, armazenando o estado do mundo virtual e de todas as suas entidades neste
XML.
Para que as Fbricas tenha acesso s informaes de mdias dos mundos virtuais
preciso que haja uma interface de comunicao entre o FM e os Agentes (ver seo 5.3.3).
Cada Agente mantm uma referncia para o FM para uso sempre que o Gerente enviar um
comando de instanciao remota (Figura 6.3). Assim, de posse do XML do mundo virtual,
a Fbrica poder criar localmente a nova instncia.
Ademais, por ser um componente para persistncia de mdias, o FM foi escolhido
para incorporar as funes do Servidor compartilhado (descrito na seo 5.3). Logo,
periodicamente os Agentes podero usar o componente FM como servidor para
compartilhar os estados intermedirios de suas instncias de mundos virtuais. Para que o
Agente tenha acesso aos estados intermedirios dos mundos virtuais, faz-se necessria a
gravao peridica do arquivo XML pelo componente GE.
6.3.4 Detalhes de implementao
A implementao mais recente da arquitetura CRAbCVE usa a tecnologia C#.NET
web services13 para o codificao do GPS e do FM, enquanto CIERV, RM e GE esto
codificados em C/C++. Para comunicao entre o GPS e o Gerente foi usado o
JMXConnector HTTP com suporte a autenticao Basic. Para comunicao entre o
Gerente e o Agente ambos utilizaram o JMXConnector JMXMP, que um protocolo
simples e firewall-friendly. Por fim, para comunicao entre o Agente e o FM foram
usados os pacotes Java para SOAP14 (Figura 6.4).
Conforme citado anteriormente, foi utilizada tambm uma base de dados MySQL
para persistncia de dados do sistema de gerenciamento. A Figura 6.4 ilustra a nova
disposio dos componentes do sistema CRAbCVE depois da integrao dos componentes
de gerncia, bem como os protocolos de comunicao utilizados.

13

A tecnologia de web services consiste em uma coleo de protocolos e padres usados para a troca de
informaes entre aplicaes ou sistemas. Aplicaes desenvolvidas em vrias linguagens de programao e
rodando em diferentes plataformas podem trocar dados atravs de uma rede de computadores como a Internet
de maneira similar a comunicao entre processos de um computador comum.
14
SOAP (Simple Object Access Protocol) um padro para troca de mensagens baseadas em XML de um
sistema distribudo em uma rede de computadores, normalmente utilizando o protocolo HTTP (Irani &
Basha, 2001; Box et. al, 2000).

82

Figura 6.4. Integrao dos componentes do NuVEM ao sistema CRAbCVE.

Visando uma maior portabilidade e maior facilidade no momento de integrao com


outros sistemas, a aplicao Gerente deve possuir tambm uma interface multi-plataforma
e de fcil acesso. preciso que esta interface contemple vrios nveis de abstrao de
detalhes tcnicos, no exigindo conhecimentos especficos de informtica. Com isso,
detalhes como a localizao fsica dos espaos virtuais, portas de comunicao, dados
estatsticos, etc., usualmente devem ser ocultados.
Para implementao desta interface multi-plataforma foi utilizado o componente
JMX HtmlAdaptorServer, que um conector para protocolo HTTP (Figura 6.4). Atravs
deste conector possvel criar manipuladores (parsers) HTML para exibio de pginas
web (Figura 6.5). Alm da interface web, os administradores do sistema de gerncia
dispem tambm da interface da prpria aplicao Java (Figura 6.5).

83

Figura 6.5. Interfaces web e Java do Gerente.

Para implementar cada um dos aspectos gerenciados pelo sistema foi utilizado o
prprio paradigma do JMX, o MBean (descrito na seo 2.5.3). Dentre os objetos
gerenciados, destacam-se os mundos virtuais, as fbricas e as informaes de sistema de
cada Agente.
Para representar os mundos virtuais em cada Agente, implementada a interface
WorldInstanceMBean, que define um conjunto de mtodos para iniciar e parar o
processamento do mundo virtual, bem como modificar parmetros de conexes (Figura
6.6a). Cada instncia de mundo virtual tem um agendamento correspondente, onde so
definidas as datas inicial e final nas quais a instncia estar disponvel.
Alm do WorldInstanceMBean, o Agente implementa tambm um MBean para
monitoramento de informaes do sistema hospedeiro, o SystemInformationMBean. Este
MBean expe vrios parmetros relativos maquina servidora, como memria em uso,
endereo IP, uso mdio de CPU, dentre outros (Figura 6.6b). Estas informaes de sistema
so coletadas pelo Agente por meio de JNI15 (cdigo da interface JNI no Apndice A).

15

O JNI uma interface de comunicao (API) desenvolvida pela Sun que permitem aos cdigos executados
pela VM (Java Virtual Machine) interoperarem de forma bidirecional com aplicaes e bibliotecas
desenvolvidas de outras linguagens, como C/C++, assembly ou Delphi (Gordon, 1998).

84

public interface WorldInstanceMBean {


public int getNumUsers();
public String getUpTime();
public String getScheduleId();
public String getWorldId();
public
public
public
public

String
String
String
String

public interface SystemInformationMBean {


public String getVersion();
public String getContact();
public String getName();
public String getPlatform();

getGEAddress();
getGEPort();
getRMAddress();
getRMPort();

public
public
public
public
public

public void stop();


public void start();
public boolean isRunning();
}

float
float
float
float
float

getMeanCPUUse();
getPhysicalTotalMemory();
getNotUsingPhysicalMemory();
getUsingPhysicalMemory();
getUsingPhysicalMemoryRatio();

public String getIp();


public String getUpTime();
}

a) WorldInstanceMBean interface.

b) SystemInformationMBean interface.

Figura 6.6. MBeans implementados pelo Agente.

Para administrar os mundos virtuais contidos na arquitetura, o Gerente implementa


o AgentConnectionsMBean (Figura 6.7), onde so catalogadas todas as informaes
relativas aos Agentes e mundos virtuais instanciados no sistema. Este MBean agrupa
funes

relativas

Fbricas

contidas

em

cada

Agente.

Portanto,

AgentConnectionsMBean define mtodos para criao, destruio e agendamento de


instncias.
public interface AgentConnectionsMBean {
public String[] getAgentIPList();
public String getWorldInstancesListByAgent(String ipAddr);
public String getSystemInformationByAgent(String ipAddr);
public String addWorldInstance(String idWorld);
public
public
public
public
public

String
String
String
String
String

addScheduledWorldInstance(String
addScheduledWorldInstance(String
updScheduledWorldInstance(String
delScheduledWorldInstance(String
delWorldInstance(String idWorld,

idWorld, String dtEnd);


idWorld, String dtStart, String dtEnd);
idSched, String dtStart, String dtEnd);
idSched);
String idSched);

Figura 6.7. Interface AgentConnectionsMBean.

O processo de instanciao remota utiliza as informaes contidas nos objetos


SystemInformationMBean de cada Agente. Cada vez que o for requisitada uma
instanciao, o Gerente busca o Agente com mais recursos livres para processar a nova
instncia de mundo. Foi especificada uma mtrica simples para calcular qual dos agentes
deve processar a nova instncia. Assim, esta escolha leva em considerao somente o uso
mdio de CPU e memria RAM utilizados no servidor hospedeiro (Figura 6.8). Apesar de
rudimentar, essa mtrica suficiente para testar a funcionalidade de instanciao remota de
modo a garantir o balanceamento de cargas nos servidores.
Agente = min(CPU + MEM )
CPU = Percentual mdio de uso de CPU.
MEM = Percentual mdio de uso de memria RAM.

85

Figura 6.8. Mtrica simples para Instanciao remota.

O framework JMX no define em sua API mecanismos para implementao de


gerentes remotos. Isto , no existem classes especficas para criao de aplicaes
gerentes. Foi necessria a implementao de conexes cliente e servidor tanto no Gerente
como no Agente.
Inicialmente, o Gerente carregado e inicia um socket servidor para esperar
conexes. A partir da, o Agente abre um socket cliente e requisita sua entrada no sistema
de gerncia. A autenticao feita com base em um ticket estabelecido previamente pelo
administrador do sistema. Esta conexo permanece mesmo depois do trmino da
autenticao (esta conexo constitui uma ligao necessria para que seja detectada pelo
Agente uma possvel falha no Gerente). Caso a autenticao seja bem sucedida, o Gerente
estabelece uma conexo com o Agente, catalogando suas caractersticas de sistema na base
MySQL. por meio desta segunda conexo que o Gerente recebe notificaes do Agente.
Desse modo, existe um par de conexes para cada Agente do sistema. Desse modo,
notvel que para cada Agente no sistema estabelecido um par de conexes JMX.
A funcionalidade de tolerncia a falhas garantida pelo uso da base de dados para
guardar informaes a respeito das instncias e agentes ativos em um dado momento.
usado o componente FM como servidor compartilhado entre os Agentes para guardar os
estados intermedirios das instncias. Caso haja falha em algum Agente ou mesmo em
alguma instncia, uma notificao de conexo - JMXConnectionNotification - enviada
automaticamente para o Gerente. A partir da, o Gerente dever re-instanciar cada um dos
mundos afetados pela falha.
Alternativamente, caso o Gerente falhe, disparada (em forma de exceo) em
todos os Agentes uma notificao de conexo (JMXConnectionNotification). Desse modo,
cada Agente dever autenticar-se novamente com o Gerente reserva previamente carregado
no sistema. As informaes necessrias para conexo com o Gerente reserva foram obtidas
durante a fase de autenticao com o Gerente titular. Ainda, estes dados de conexo podem
ser modificados a qualquer momento. Logo, preciso que o Gerente envie estas
modificaes de modo automtico a todos os Agentes os quais lhe so subordinados.

6.4 Testes de funcionalidade


Nesta seo so demonstrados alguns dos resultados obtidos atravs de testes com o
sistema resultante da integrao (Figura 6.4). Para propsitos de testes, foram usadas seis
estaes servidoras, onde duas continham Gerentes (titular e reserva) e cinco continham

86

Agentes. Alm disso, os webservices GPS e FM permaneceram em outra rede executando


normalmente.
No entanto, na verso mais recente da arquitetura CRAbCVE os componentes RM e
GE no esto completamente e devidamente implementados. Nesta verso, os
componentes RM e GE no recebem parmetros relativos a novas instncias em tempo de
execuo, o que impossibilita a instanciao remota de mundos virtuais. Porm, esta
carncia foi suprida por meio de uma aplicao emuladora (Figura 6.9) que faz a funo de
carregar o arquivo descritor do mundo virtual (arquivo XML) e, em perodos de tempo
fixo, descarregar modificaes estruturais ocorridas no mundo virtual de volta para o
arquivo descritor. Ainda, tambm em perodos fixos de tempo, o arquivo gravado de
volta no servidor compartilhado (FM) pelo Agente. A implementao desta aplicao
serviu para validar os conceitos referentes s aplicaes GE e RM: instanciao remota e
gravao peridica do arquivo descritor do mundo virtual. As funcionalidades
implementadas nesta aplicao emuladora consistem apenas em funcionalidades
necessrias a qualquer arquitetura de ambientes virtuais que deseje utilizar o NuVEM.

Figura 6.9 Aplicao emuladora de mundo virtual.

Foram utilizadas estratgias de injeo falhas em pontos do sistema de modo a


validar os cenrios expostos na seo 5.3.1. O diagrama de seqncia correspondente aos
testes que se sucedem est, na ntegra, no Apndice B.
Inicialmente, foram instanciados os 2 Gerentes (cenrio 1). Sempre que iniciado,
o Gerente fica em modo passivo, i.e., espera de conexes (Figura 6.10). A partir da, so
iniciados os 4 Agentes (cenrio 2) em estaes distintas de uma rede. Ao ser iniciado, cada

87

Agente tratou de se conectar ao Gerente titular previamente configurado (Figura 6.11). Ao


longo de alguns minutos, mundos virtuais foram instanciados (cenrio 3).

Figura 6.10. Gerente iniciado em modo passivo (espera).

Figura 6.11. Agente conectando ao Gerente BONO depois de receber notificao de falha no Gerente
ENGHAW. Em seguida, o Agente recebe uma instncia de Mundo Virtual 5.

Foi injetada uma falha no Gerente titular de modo que ele parasse imediatamente.
Durante um perodo arbitrrio de 30 segundos os Agentes tentaram re-estabelecer conexo
com o Gerente titular. Passados os 30 segundos, os Agentes confirmaram a falha na
conexo e conectaram imediatamente ao Gerente reserva (cenrio 7). Apesar de tantos
pedidos simultneos de conexo, o Gerente reserva conseguiu autenticar todos os Agentes
e todos os seus dados foram coletados corretamente (Figura 6.12). Foi percebido que, no
momento em que o Gerente recebia muitas conexes simultaneamente a aplicao travava
por alguns instantes e, possivelmente para um nmero de maior de conexes, o Gerente
poderia travar indefinidamente. Foi testado ento o uso de uma diretiva do Java, a
synchronized (Gosling et al., 1996), para os mtodos nas classes envolvidas no processo de

88

autenticao do Agente. Esta diretiva evita que dois ou mais mtodos sejam executados de
maneira concorrente, enfileirando requisies, fazendo com que as chamadas sejam
executadas de modo completamente seqencial.

Figura 6.12. Agentes conectando ao Gerente reserva.

Foi injetada uma falha na aplicao emuladora, que parava diante de um comando
pr-estabelecido. Esta falha serviu para testar a tolerncia a falhas das instncias de
mundos virtuais (Figura 2.1). Desse modo, cada vez que um mundo falhava, o Agente
enviava uma notificao ao Gerente, que re-instanciava o mundo virtual, descartando a
instncia com problemas (cenrio 5).

Figura 6.13. Gerente recebendo notificao de falha em mundo virtual e repassando para nova instanciao.

Foi configurado para que os agentes gravassem no Servidor compartilhado os


estados dos mundos virtuais (arquivo XML) em perodos fixos arbitrrios de 20 segundos
(cenrio 4). Com isso, as modificaes resultantes das interaes nos mundos virtuais s
seriam perdidas se ocorridas, no mximo, nos ltimos 20 segundos. Para que o Agente
dispusesse sempre da verso mais recente do arquivo descritor, a aplicao emuladora

89

tambm foi configurada para persistir o arquivo XML sempre em perodos fixos arbitrrios
de 20 segundos. Vale ressaltar que o valor de 20 segundos foi estipulado apenas para
efeitos de testes e pode ser alterado a qualquer momento nas configuraes de sistema da
aplicao Agente.
Foi injetada uma falha na estao servidora de um Agente de modo que a mesma se
parou (cenrio 6). Com isso, o Gerente recebia imediatamente uma notificao de falha de
comunicao. Durante um perodo arbitrrio de 30 segundos o Gerente tentou reestabelecer conexo com o Agente. Aps os 30 segundos o Gerente confirmou a falha e
buscou em sua base local a lista de instncias alocadas pelo Agente. De posse dessa lista, o
Gerente re-instanciou cada mundo virtual de acordo com o procedimento de Instanciao
remota (Figura 6.14).

Figura 6.14. Gerente recuperando mundos virtuais aps falha em Agente.

Por fim, preciso salientar que quanto maior a freqncia em que o arquivo XML
do mundo virtual atualizado, menor sero as perdas em termos de modificaes
realizadas no mesmo devido a falhas. Por outro lado, com uma alta freqncia de
atualizaes pode gerar situaes de sobrecarga de mensagem na rede (ainda mais para o
caso de os pacotes conterem arquivos grandes). Assim, para testes com quantidades
maiores de Agentes e mundos virtuais instanciados altamente recomendvel que sejam
utilizados perodos maiores que os utilizados nos testes supracitados.

90

Captulo 7
Concluses e Trabalhos Futuros
Gerenciamento de Redes uma rea j bem estudada e bastante desenvolvida.
Porm, nos ltimos anos, a aplicao de tcnicas de gerenciamento de aplicaes
distribudas e, em especial, tolerncia a falhas em sistemas distribudos ainda tm se
restringido a sistemas de ultra confiabilidade, como computadores de bordo e controle de
plantas nucleares, e a sistemas de alta disponibilidade, como centrais telefnicas e
servidores web (webfarms). No entanto, o crescimento das redes de computadores,
fornecendo os mais variados servios, aumentou a dependncia tecnolgica de uma grande
parcela da populao nos servios oferecidos. Falhas nesses servios podem ser
catastrficas para a segurana da populao ou para a imagem e reputao de empresas.
Aplicaes distribudas em redes de computadores devem ser mais confiveis na
medida em que se tornam mais populares e que mais pessoas utilizam seus recursos em
tarefas do dia-a-dia. Logo, necessria a utilizao de mecanismos para lidar com
problemas que possam afetar o funcionamento destes sistemas.
Sistemas AVR fornecem condies adequadas para que os usurios experimentem
sentimentos de imerso e presena dentro de ambientes virtuais e possam interagir com
outros usurios e com elementos do prprio ambiente.
Aplicar mecanismos de gerenciamento de falhas a sistemas de ambientes virtuais
em redes mostra-se como uma tarefa bastante complexa, mas que pode tornar possvel o
aumento da disponibilidade dos recursos do sistema. O desenvolvimento de um modelo
que viabilize o controle sobre estas falhas constituiu o objetivo principal dessa dissertao.
Para atingir esse objetivo, foram executadas anlises de algumas aplicaes de
Ambientes Virtuais em Redes, levando em considerao detalhes sobre suas
implementaes e requisitos. Tambm foi realizado um levantamento sobre estratgias
para gerenciamento em redes e tolerncia a falhas.
A partir de todas as informaes obtidas, foi proposto o modelo NuVEM modelo
para gerenciamento de uma arquitetura de ambientes virtuais. Para comprovar a viabilidade
do modelo foi desenvolvido um estudo de caso onde o NuVEM foi integrado a uma
arquitetura de AVR, a CRAbCVE.

91

O estudo de caso do NuVEm integrado arquitetura CRAbCVE possibilitou que


vrios mecanismos de gerncia de sistemas AVR fossem testados. Aps uma srie de
testes, ficou evidenciado que ainda que ocorram falhas em ambientes virtuais possvel
recuperar de modo efetivo os dados referentes s interaes j realizadas. Alm disso,
durante os testes foi constatado que os mecanismos de resoluo de falha implementados
poderiam recuperar mundos virtuais em cerca de 10 segundos, dependendo da velocidade
de processamento do servidor que aloca o Agente.

7.1 Principais contribuies


A principal contribuio desse trabalho a definio de um modelo genrico, o
NuVEM, projetado para viabilizar o gerenciamento de falhas em uma arquitetura de AVR.
Baseado em conceitos de Gerenciamento de Redes, o NuVEM fornece um arcabouo para
gerncia remota de uma arquitetura de AVR.
Para a concepo do NuVEM foram consideradas os mais variadas funes de
gerncia de redes, como configurao, desempenho, segurana, falhas e contabilizao de
acessos (Captulo 2). No entanto, para delimitar melhor o escopo do trabalho foi definido
que o modelo contemplaria, inicialmente, apenas mecanismos para gerncia remota de
falhas em tempo real. Assim, foram definidas estratgias para deteco e resoluo de
falhas em determinados pontos do sistema, bem como administrao remota de recursos.
Utilizando-se deste modelo de gerenciamento, inmeras arquiteturas de AVR podem ser
gerenciadas de modo a adquirirem maior disponibilidade e confiabilidade.
Por fornecer estratgias que levem em considerao aspectos que interferem na
escalabilidade, disponibilidade e confiabilidade do sistema, o NuVEM representa uma
tima soluo para otimizar o uso de recursos computacionais contidos em um sistema
AVR, alm de prover meios de controle e monitorao dos mesmos.
Por ltimo, o prottipo desenvolvido como estudo de caso do NuVEM pde ser
utilizado com o objetivo de aumentar a qualidade de servio de um sistema de ambientes
virtuais com fins educativos, o CRAbCVE.

7.2 Trabalhos futuros


O gerenciamento de entidades dos ambientes virtuais est diretamente ligado ao
gerenciamento de desempenho do sistema como um todo. As interaes em tempo real
definem um conjunto de processos (threads) que compe a aplicao de realidade virtual.
Cada processo pode ser representado por uma entidade contida no ambiente virtual
92

usurios, objetos, simulides, etc. (Singhal & Zyda, 1999). Logo, o gerenciamento do
desempenho do sistema consiste no escalonamento da execuo de cada um dos
componentes envolvidos na interao. O projetista do sistema deve aplicar tcnicas para
balanceamento de cargas no sistema de modo a evitar pontos de consumo excessivo de
recursos computacionais, distribuindo processamento no sistema.
Alguns sistemas AVR, como o VELVET (Oliveira & Georganas, 2002), utilizam
mecanismos de particionamento dinmico dos ambientes virtuais de modo a distribuir o
processamento na rede. Aliado s tcnicas compensatrias vistas no Captulo 4, o
particionamento dinmico dos ambientes virtuais tambm poderia diminuir a quantidade de
mensagens na rede, aumentando a escalabilidade do sistema como um todo.
Para que o sistema possa contabilizar e configurar recursos em tempo de execuo,
preciso que seja refinada a base de informaes gerenciadas. Dentre os principais
parmetros que devem ser configurados esto as caractersticas das entidades que denotam
o crescimento do sistema, como usurios, objetos dinmicos, etc., contidos nos ambientes
virtuais. Para cada recurso a ser gerenciado, deve-se armazenar suas peculiaridades de
acordo com os fatores de escalabilidade do sistema. Ademais, preciso armazenar
informaes acerca de todos os componentes fsicos do sistema, como capacidade de
processamento e memria dos servidores, capacidade de transmisso de dados, etc. Estes
atributos sero necessrios durante a avaliao de recursos fsicos (hardware) livres no
sistema e at mesmo durante o planejamento de expanso fsica do sistema (adio de
novos componentes de hardware).
Nos ltimos anos, tm sido cada vez mais comuns os ataques a servidores nas
grandes redes, o que tem feito com que o gerenciamento de segurana tenha um papel
fundamental durante o projeto do sistema AVR. Em particular, preciso levar em
considerao os seguintes tpicos de segurana (Smed et al., 2001): proteger informaes
sensveis (como nmeros de cartes de crdito e configuraes de sistema) e assegurar os
requisitos de consistncia do mundo virtual, evitando trapaas e situaes inesperadas
pelos usurios. preciso adicionar ao modelo de gerncia mecanismos que viabilizem a
comunicao segura entre os componentes do sistema, possibilitando a confidencialidade,
integridade e autenticidade de informaes sensveis. Assim, podem ser usadas tcnicas de
codificao das mensagens aliadas a uma estratgia de autenticao distribuda, onde so
compartilhadas credenciais para autenticao de requisies de servios providos pelo
sistema AVR.

93

Por ltimo, previsto como trabalho futuro uma extenso do estudo de caso
realizado no captulo anterior. A extenso consiste na criao de uma interface web
personalizada para integrao do sistema AVR (j completamente integrado ao NuVEM) a
um Ambiente Virtual de Aprendizado na web (AVA).

94

Referncias Bibliogrficas
ALISON, D.; WILLS, B.; HODGES, F. & WINEMAN, J. Gorillas in the Bits.
Proceedings of IEEE Virtual Reality Annual International Symposium, pp. 69-76. 1997.
ALMENDRA, C. C.; VIDAL, C. A.; LEITE-JUNIOR, A. J. M.; SANTOS, E.M. &
CAMPLO, L. D. S. P. A Web System for Managing and Accessing NVEs Using
CORBA. Proceedings of the 6th Symposium on Virtual Reality, Ribeiro Preto-SP,
Brasil, p. 297-308. 2003.
ALMENDRA, C. C. Administrao Remota de Ambientes Virtuais em Rede para
Integrao com Sistemas de Gerenciamento de Aprendizado. Dissertao de Mestrado,
Universidade Federal do Cear, Brasil. 2003.
BENFORD, S. D. & GREENHALGH, C. Collaborative Virtual Environments.
Proceedings of Communications of the ACM, Vol. 44, No. 7 p. 79. ACM Press, 2001.
BLANKE, M.; STAROSWIECKI, M. & WU, N. E. Concepts and Methods in Faulttolerant Control. Proceedings of the Invited tutorial lecture at American Control
Conference. Arlington, VA,Washington, USA, 22-24. 2001.
BLAXXUN. Technology and content solutions for Web 3D visualization, collaboration
and community. 2005.
CAMPOS, M. L. & CAVALCANTI, M. C. R. Suporte por computador ao trabalho
cooperativo. Anais do XV Congresso Brasileiro da Sociedade Brasileira de
Computao. XIV Jornada de Atualizao em Informtica. Canela, RS. Agosto, 1995.
BOX, D., EHNEBUSKE, D.; KAKIVAYA, G.; LAYMAN, A.; MENDELSOHN, N.;
NIELSEN, H. F.; THATTE, S. & WINER, D. Simple Object Access Protocol (SOAP)
1.1. World Wide Web Consortium. 2000.
BRUTZMAN, D. P.; MACEDONIA, M. R., & ZYDA, M. J. Internetwork Infrastructure
Requirements for Virtual Environments. Proceedings of the VRML'95VRML'95
Symposium. San Diego, USA. 1995.
BRYSON, S. & LEVIT, C. The Virtual Wind Tunnel. IEEE Computer Graphics and
Applications, Vol. 2, No. 4. 1992.
CALVIN, J.; DICKENS, A.; GAINES, B.; METZGER, P.; MILLER, D. & OWEN, D.
The SIMNET Virtual World Architecture. Proceedings of the IEEE Virtual Reality
Annual International Symposium, p. 450-455. 1993
APIN, T. K.; PANDZIC, I. S.; MAGNENAT-THALMAN, N. e THALMAN, D. Avatars
in Networked Virtual Environment. John Wiley & Sons. 1999.
CAPPS, M.; D. MCGREGOR; D. BRUTZMAN; & M. ZYDA. NPSNET-V: A New
Beginning for Virtual Environments. IEEE Computer Graphics & Applications. 2000.
CARDOSO, F.; ROCHA, F.; LIMA, L.; COSTA, M.; SOUZA T.; FERREIRA, L.;
CARDOSO, A. & LAMOUNIER JR., E. Jogo: Fogo Amigo - Uso de Tcnicas de
Realidade Virtual no Desenvolvimento de Jogos Interativos. Proceedings of the 6th
Symposium on Virtual Reality, p. 431, Ribeiro Preto, SP. 2003.
CARL-MITCHELL, S. & QUARTERMAN, J. Building Internet Firewalls - UnixWorld, p.
93-102, Fevereiro de 1992. ISSN 0739-5922. 1992.
95

CARLSSON, C. & HAGSAND, O. DIVE - a platform for multi-user virtual environments.


Computers & Graphics (Pergamon). Vol. 17, no. 6, pp. 663-669. 1993.
CARVALHO, T. C. M. Gerenciamento de redes - Uma Abordagem de Sistemas Abertos.
So Paulo, Makron Books, 1993.
CASE, J.; MCCLOGHRIE, K.; ROSE, M., & WALDBUSSER, S. Protocol Operations for
version 2 of the Simple Network Management Protocol (SNMPv2). RFC 1448. Internet
Engineering Task Force, Network Working Group, 1993.
CECIN, F. R.; BARBOSA, J. L. V.; GEYER, C. F. R. (2003) FreeMMG: An hybrid peerto-peer, client-server, and distributed massively multiplayer game simulation model.
Proceedings of the 2nd Brazilian Workshop on Games and Digital Entertainment
(WJogos'03WJogos'03), 2003.
CHESWICK, W.R. & BELLOVIN, S. Firewalls and Internet Security. Addison-Wesley.
1994.
CHOI, M. J.; HONG, J. W. & JU, H. T. XML-based Network Management for IP
Networks. ETRI Journal, Vol. 25, No. 6, pp. 445-263. 2003.
CLARK, J. H. Hierarchical geometric models for visiblesurface algorithms. The California
Association of Community Managers (CACM), October, 1976.
COMER, E. D. Internetworking with TCPIP, Volume 1: Principles, Protocols, and
Architecture. PrenticeHall, Engelwood Clis, New Jersey, 1995.
CRISTIAN, F. Exception Handling and Tolerance of Software Faults. John Wiley & Sons,
p. 81-108, 1995.
DAVIN, J. & McCloghie, K. Administrative Model for version 2 of the Simple Network
Management Protocol (SNMPv2). RFC 1445. Internet Engineering Task Force, Network
Working Group, 1993.
DODGE, M. Exploration in AlphaWorld: the geography of 3-D virtual worlds on the
Internet. iVirtual Reality in Geography, RGS-IBG Conference, Leicester, 1999.
EMMERICH, W. Engineering Distributed Objects. John Wiley & Sons, USA, 2000.
FERREIRA, A. G. Uma arquitetura para visualizao distribuda de ambientes virtuais.
Dissertao de Mestrado, Pontifcia Universidade Catlica do Rio de Janeiro, Brasil,
1999.
FREITAS, C. M. D. S.; MANSSOUR, I. H.; NEDEL, L. P.; GAVIO, J. K.; PAIM, T. C.
& MACIEL, A. Framework para Construo de Pacientes Virtuais: Uma Aplicao em
Laparoscopia. Proceedings of the 6th Symposium on Virtual Reality, p. 117-128,
Ribeiro Preto, SP, October 15-18, 2003.
GAMMA, E., HELM, R., JOHNSON, R. & VLISSIDES, J. Design Patterns: Elements of
Reusable Software. Addison Wesley, USA, 1995.
GOLDBERG, K. Virtual Reality in the Age of Telepresence. Convergence: The Journal of
Research into New Media Technologies, vol.4, n.1, University of Luton Press, 1998.
GOMES, G. A. M. CRAbCVE -- Uma Arquitetura para Viabilizao de caves atravs da
Internet. Dissertao de Mestrado, Universidade Federal do Cear, 2005.
GORDON. H. Essential JNI: Java Native Interface. Prentice Hall, USA, 1998.

96

GOSLING, J.; BILL, J. G. & STEELE. L. The Java Language Specification. AddisonWesley, 1996.
GOSSWEILER, R.; LAFERRIERE, R. J.; KELLER, M. L.; PAUSCH, R. An Introductory
Tutorial for Developing Multiuser Virtual Environments. Presence: Teleoperators and
Virtual Environments, Vol. 3, No. 4, 1994.
GRAHAM, I. & QUIN, L. XML Specification Guide, John Wiley & Sons, USA, 1999.
GUPTA, A.; STAHL, D. O. & WHINSTON, A. B., The Economics of Network
Management, Communications of the ACM, p. 57-63, 1999.
GUTMANN, S.; BURGARD, W.; FOX, D. & KONOLIGE, K. An experimental
comparison of localization methods. Proceedings of the IEEE/RSJ International
Conference on Intelligent Robots and Systems (IROS'98), EUA, 1998.
HOSSEINI, M. & GEORGANAS, N. D. Collaborative virtual environments for training.
MULTIMEDIA '01: Proceedings of the nineth ACM international conference on
Multimedia, p. 621-622, New York, NY, USA, 2001.
HYDE, D. Web-Based Management: The New Paradigm for Network Management.
3COM Technical Papers. Disponvel em: http://www.3com.de/pdf/50062701.pdf.
Acesso em: 12/08/2005.
IRANI, R. & BASHA, S. J. AXIS: The Next Generation of Java Soap, 1st edition. Wrox
Press Ltd., Birmingham, UK, 2002.
JALOTE, P. (1994) Fault tolerance in distributed systems. Prentice Hall, Englewood
Cliffs, New Jersey, 1994.
JOB, J. C. C. & SIMES, M. A. C. Gerenciamento de Sistemas Baseado no Padro
WBEM. Revista Eletrnica de Iniciao Cientfica (SBC). Ano 2, volume 2, nmero 4.
Dezembro de 2002.
JOHNSON, A.; Roussos, M.; LEIGH, J.; BARNES, C.; VASILAKIS, C. and MOHER, T.
The NICE Project: Learning Together in a Virtual World. Proceedings of IEEE Virtual
Reality Annual International Symposium, Atlanta, Georgia, 1998, pp. 176-183.
JU, H. T.; CHOI, M. J.; HAN, S. H.; OH, Y.J.; YOON, J.H.; LEE, H. J. & HONG, J. W.
K. An Embedded Web Server Architecture for XML-based Network Management.
Proceedings of IEEE/IFIP Network Operations and Management Symposium (NOMS
2002), p.1-14. Florence, Italy, April 2002.
KALAWSKY, R. S. Exploiting Virtual Reality Techniques in Education and Training:
Technological Issues. SIMA (Support Initiative for Multimedia Applications) Report
Series. Disponvel em http://www.agocg.ac.uk/reports/virtual/vrtech/toc.htm. Acesso
em: 02/09/2005.
KAWAMOTO, A. L. S.; Canto, J.; Pinto, A.; Aquino, P. T.; lvares, J. V.; Kirner, T. G.,
Kirner, C. & Wazlawick, R. S. AVC-MV: Um Ambiente Colaborativo para Aplicaes
Educacionais. Proceedings of the 4o SBC Symposium on Virtual Reality, p. 226-237.
Florianpolis, 2001.
KIRNER, T. G. & DAVIS, A. M. Nonfunctional Requirements of Real-Time Systems.
Advances in Computers (Zelkowitz, M., Ed.), Volume 42, pp. 1-37. Academic Press,
1996.
KIRNER, T. G.; KIRNER, C.; KAWAMOTO, A. L. S.; CANTAO, J.; PINTO, A. &
WAZLAWICK, R. S. Development of a Collaborative Virtual Environment for

97

Educational Applications. Proceedings of WEB3D 2001, pp. 61-68. Paderborn,


Germany, 2001.
KON, F. & MARQUES, J. R. Gerenciamento de recursos distribudos em sistemas de
grande escala. XX Simpsio Brasileiro de Redes de Computadores (SBRC2002), Bzios,
RJ, Brasil, 2002.
KREGER, H. Java Management Extensions for application management. IBM Systems
Journal.
Volume
40,
No.
1,
pp.
104-129.
Disponvel
em:
http://www.research.ibm.com/journal/sj/401/kregeaut.html. Acessado em: 17/08/2005.
KUBO, M. M.; VICENTIN, V. J.; DERIGGI Jr., F. V. & KIRNER, C. Educao e
Treinamento a Distncia Baseada na Tecnologia de Realidade Virtual, V Workshop de
Informtica na Educao - WIE'99/SBC'99, p. 669-680. Rio de Janeiro/Brasil, 1999.
LAU, F. C. M. & XU, C. Load balancing in Parallel Computers: Theory and Practice.
Kluwer Academic Publishers, p. 232, 1997.
LEE, P.A. LEE & ANDERSON, T. Fault Tolerance: Principles and Practice. SpringerVerlag. 1991.
LEINWAND, A. & FANG, K. Network Management A Practical Perspective, AddisonWesley Publishing Company, USA, 1993.
LEITE-JUNIOR, A. J. M., VIDAL, C. A., ALMENDRA, C. C. & SANTOS, E. M.,
(2001). Construo de Sistemas de Realidade Virtual Semi-Imersivos voltados para
Educao a Distncia. Anais do IV Simpsio de Realidade Virtual. Sociedade Brasileira
de Computao. Florianpolis/SC, 2001.
LEITE-JUNIOR, A. J. M.; VIDAL, C. A.; ALMENDRA, C. C.; SANTOS, E. M.;
GOMES, H. O. O. & MENDONa-JUNIOR, G. M. (2002). Um ambiente virtual
compartilhado voltado para entretenimento. Proceedings of the 5th Symposium on
Virtual Reality, p. 138-149, Fortaleza, CE, 2002.
LEITE JUNIOR, A. J. M. Ataxia: Uma Arquitetura para a Viabilizao de CVEs voltados
para a educao a distncia atravs da Internet. Dissertao de Mestrado, Universidade
Federal do Cear, Brasil, 2000.
MACEDONIA, M. R., ZYDA, M. J. A Taxonomy for Networked Virtual Environments,
IEEE Multimedia, Vol. 4, No. 1, p. 48-56. 2000.
MACEDONIA, M. R. & ZYDA, M. J. NPSNET: A Network Software Architecture for
Large-Scale Virtual Environments. Presence: Teleoperators and Virtual Environments,
p. 265-287, 1994.
MACEDONIA, M. R. & ZYDA, M. JExploiting Reality with Multicast Groups: A
Network Architecture for Large-scale Virtual Environments. Proceedings of the IEEE
Virtual Reality Annual International Symposium, p. 2-9. 1995.
MACEDONIA, M. R.; BRUTZMANN, D. P.; Zyda, M. J.; Pratt, D. R. ; Barham, P. T.;
Falby, J. & Locke, J. NPSNET: A multi-player 3D virtual environment over the Internet.
Proceedings of the 1995 Symposium on Interactive 3D Graphics, p. 93--94. ACM
SIGGRAPH, Monterey, CA.1995.
MACEDONIA, M. R. & ZYDA, M. J. Exploiting Reality with Multicast Groups: A
Network Architecture for Large-scale Virtual Environments. Proceedings of the IEEE
Virtual Reality Annual International Symposium, pp: 2-9. 1995.

98

MACHADO, L. S. Conceitos Bsicos da Realidade Virtual. Instituto Nacional de


Pesquisas Espaciais, 1995.
MARTIN-FLATIN, J.P. Web-Based Management of IP Networks and Systems. Ph.D.
thesis, Swiss Fed. Inst. of Technology, Lausanne (EPFL), 2000.
MATIJASEVIC, M. A review of networked multi-user virtual environments. Technical
Report TR97-8-1, Center for Advanced Computer Studies, Virtual Reality and
Multimedia Laboratory, University of Southwestern Lousiana, USA. 1997.
MCCLOGHRIE, K. & ROSE, M. Management Information Base for Network
Management of TCP/IP-based Internets: MIB-II. RFC 1213, Internet Engineering Task
Force, Network Working Group, 1991.
MORSE, K. L. Interest management in large scale distributed simulations. Technical
Report pp. 96-27, Department of Information and Computer Science, University of
California, Irvine. 1996.
MULLENDER, S. Distributed Systems (2nd edition). Addison Wesley, ACM Press, New
York. 1993.
OLIVEIRA, J. C. & GEORGANAS, N. D. VELVET: An adaptive hybrid architecture for
very large virtual environments. Proceedings of IEEE International Conference on
Communications. New York, USA, 2002.
OLIVEIRA, M., CASTRO, M. F., NASCIMENTO, A. & VIDAL, M. Introduo
Gerncia de Redes ATM. XVI Simpsio Brasileiro de Redes de Computadores
(SBRC1998). Rio de Janeiro, RJ, 1998.
OMG. CORBA services: Common Object Services Specification, OMG Group Document
95-3-31, Revised ed. 2.0, Framingham, Massachusetts, 1995.
OSI. Information Technology Open Systems Interconnection, Common Management
Information Protocol Specification. Technical Report IS 9596, International
Organization for Standardization, 1991.
PANDZIC, I. S.; APIN, T. K.; THALMANN, N. & MAGNENAT-THALMANN, D.
VLNET: A Networked Multimedia 3D Environment with Virtual Humans. Proceedings
of Multi-Media Modeling MMM '95, 1995.
PANDZIC, I. S.; APIN, T. K.; THALMANN, N. M., THALMANN, D. VLNET: A
Networked Multimedia 3D Environment with Virtual Humans. Proceedings of MultiMedia Modeling MMM `95. p.21-32. Singapore, 1995.
PANDZIC, I.S.; CAPIN, T.K.; THALMANN, N. M. & THALMANN, D. Motor functions
in the VLNET Body-Centered Networked Virtual Environment. Proceedings of 3rd
Eurographics Workshop on Virtual Environments, Monte Carlo, 1996.
PANTELIDES, V. Reasons to Use Virtual Reality in Education. VR in schools. Vol 1,
Issue 1. p. 9, 1995.
PAUSCH, R.; SNOODY, J.; TAYLOR, R.; WATSON, S. & HASELTINE, E. Disney's
Alladin: First Steps Toward Storytelling in Virtual Reality. Proceedings of
SIGGRAPH'96. 1996.
PEREIRA, M. C. Administrao e Gerncia de Redes de Computadores. Ps-graduao
em Cincia da Computao - CPGCC. Universidade Federal de Santa Catarina - UFSC,
Florianpolis - SC.

99

PRADO, G. Desertesejo: um projeto de ambiente virtual de multi-usurio na Web.


Catlogo Eletronic Art Exhibition. 13th SIBGRAPI 2000. Brazilian Symposium on
Computer Graphics and Image Processing. Caxias do Sul, 2000.
PRAS, A. Network management architectures. PhD thesis, University of Twente,
Enschede, The Netherlands, 1995.
RODELLO, I. A.; KUBO, M. M.; KIRNER, C. & Tori, R. Anlise dos Principais Fatores
para o Desenvolvimento de Sistemas Distribudos de Realidade Virtual. Proceedings of
the 4o SBC Symposium on Virtual Reality, Florinopolis, 314- 323. 2001.
RODELLO, I. A., SAKAI, R. K. & MANOEL, E. F. Um Ambiente Virtual para Auxiliar o
Ensino de Qumica em Escolas de Ensino Fundamental. XXII Congresso da Sociedade
Brasileira de Computao. Anais do VIII WIE. Florianpolis, SC. 2002.
RODRIGUES, L. C. R.; SEMENTILLE, A. C.; BREGA, J. R. F. & RODELLO, I. A.
Gerenciamento de Ambientes Virtuais de Grande Escala Utilizando Portais. I Workshop
de Computao. Florianpolis (WORKCOMP-SUL). UNISUL, 2004.
ROSE, M.T. The Simple Book: an introduction to management of TCP/IP- based Internets.
Englewood Cliffs, USA. Prentice-Hall, 1991
ROTHBAUM, B.; HODGES, L.; KOOPER, R.; OPDYKE, D.; WILLIFORD, J. &
NORTH, M. Effectiveness of computer-generated (virtual reality) graded exposure in
the treatment of acrophobia. American Journal of Psychiatry, Vol. 152, No. 4. 1995.
RYAN, B. D. Alphaworld: the urban design of a digital city. Journal of Urban Design,
Volume 9, Number 3, pp. 287-309, 2004.
SANTOS, E.M. VEGA - Um modelo de integrao de aplicaes externas a ambientes
virtuais atravs do uso de aplicaes mediadoras e de simulides. Dissertao de
Mestrado, Mestrado em Cincia da Computao, UFC, Brasil. 2001.
SHARDA, N.; FATRI, R. & ABID, M. Applying deductive database technology to
network management. ACM SIGCOMM Computer Communication Review, 1997.
SILVA, R. J. M.; WAGNER, G. N.; RAPOSO, A. B. & GATTAS, M. Experincia de
Portais em Ambientes Arquitetnicos Virtuais. Proceedings of the 6th Symposium on
Virtual Reality, p. 117-128, Ribeiro Preto, SP. 2003.
SILVA, M. C. O. Projeto e Implementao de uma ferramenta para deteco de hardware
em ambientes heterogneos. Trabalho de Concluso de Curso (Graduao em
Engenharia de Computao). Universidade Catlica Dom Bosco, Campo Grande - MS.
2003.
SINGHAL, S. & ZYDA, M. Networked Virtual Environments: Design and
Implementation. ACM Press/Addison-Wesley Publishing Co., New York/NY, USA.
1999.
SINTEGRA. Sistema integrado de Educao a Distncia com suporte a Avaliao de
Competncias. Disponvel em: http://www.vdl.ufc.br/sintegra. Acesso em: 01/06/2006.
SLATER, M.; Ush, M. & Steed, A. Depth of Presence in Virtual Environments. Presence:
Teleoperators and Virtual Environments, Vol. 3, No. 2. 1994.
SLATER, M.; USOH, M.; BENFORD, S.; BROWN, C.; RODDEN, T.; SMITH, G. &
WILBUR, S. Distributed extensible virtual reality laboratory, Virtual Environments and
Scientific Visualization. Nova York: Springer. 1996.

100

SMED, J.; Kaukoranta, T. & HAKONEN, H. Aspects of Networking in Multiplayer


Computer Games. Proceedings of International Conference on Application and
Development of Computer Games in the 21st Century, p.74-81, Hong Kong, China,
2001.
SOMMERVILLE, I. & SAWER, P. Requirements Engineering: A Good Practice Guide.
John Wiley & Sons, England, 1997.
SOUZA, P.C., WAZLAWICK, R. S.,& HOFFMANN, A. Uma ferramenta de autoria para
o desenvolvimento de adventures educacionais. Congreso Argentino de Ciencia de la
Computacion, p. 959-969.
STALLINGS, W. SNMP, SNMPv2, and CMIP The Practical Guide to NetworkManagement Standards, Addison Wesley. 1993.
STALLINGS, W. SNMP, SNMPv2, SNMPv3, and RMON 1 and 2. Prentice Hall. 1999.
STYTZ, M.R. Distributed Virtual Environments. IEEE Computer Graphics and
Applications, Vol. 16, No. 33, pp. 19-31. 1996.
SUN MICROSYSTEMS. JMX: Java Management Extensions, First Public Specification,
v1.9, USA, 1999.
SZWARCMAN, D.; Feij, B. & Costa, M. A framework for networked emotional
characters, Monografia de Cincia da Computao, MCC 23/99, Dept. Informtica,
PUC-Rio, 1999.
TANENBAUM, A. S. (2002). Distributed Systems: Principles and Paradigms. Prentice
Hall, Upper Saddle River, New Jersey 07458, 2002.
VALLE FILHO, A. M.; SOUZA, P. C.; ALVES, J. B. M.; WAZLAWICK, R. S., & LUZ,
R. P. Ferramentas de autoria de realidade virtual - um estudo comparativo. Anais do
Congresso Internacional de Engenharia Informtica. 2000.
VIDAL, C. A.; LEITE JNIOR, A. J. M.; ALMENDRA, C. C.; SANTOS, E. M.;
OLIVEIRA, J. P. C. & COSTA FILHO, J. C. S. A Virtual Environment for Distance
Learning. Proceedings of the 7th World Conference on Computers in Education Networking the Learner, p. 95-103. Copenhagen: Kluwer Academic Publishers and
IFIP. 2001.
VIDAL, C. A.; SANTOS, E. M.; LEITE-JNIOR, A. J. M.; ALMENDRA, C. C. &
BORGES, V. M. C. Collaborative Virtual Environments for Language Learning.
Proceedings of the 6th Symposium on Virtual Reality, p.309-320, Ribeiro Preto-SP.
2001.
WAZLAWICK, R. S.; Fagundes, L. C. & Kirner, T. G. Museu Virtual - Ferramenta de
Autoria para Criao de Museus de Realidade Virtual para Apoio Aprendizagem
Colaborativa via Internet. Projeto ProTeM PTI/PEDU, Brasil. 1999.
WAZLAWICK, R. S.; ROSATELLI, M. C.; RAMOS, E. M. F., Cybis, W. A., Storb, B.
H., Schuhmacher, V. R. N., Mariani, A. C., Kirner, T., Kirner, C. & Fagundes, L. C.
Providing More Interactivity to Virtual Museums: A Proposal for a VR Authoring Tool.
Presence: Teleoperators and Virtual Environments, Vol.10, Issue 6.
WBEM.
Web-Based
Enterprise
Management
Initiative.
http://www.dmtf.org/standards/wbem/. Acesso em: 12/08/2005.

Disponvel

em:

WIDENIUS M. & AXMARK, D. MySQL Reference Manual, O'Reilly & Associates, 2002.

101

Apndices

102

Apndice A Cdigo da interface JNI

103

#include <jni.h>
/* Header for class br_crabcve_utils_SystemCall */
#ifndef _Included_br_crabcve_utils_SystemCall
#define _Included_br_crabcve_utils_SystemCall
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:
br_crabcve_utils_SystemCall
* Method:
getPhysicalTotalMemory
* Signature: ()F
*/
JNIEXPORT jfloat JNICALL Java_br_crabcve_utils_SystemCall_getPhysicalTotalMemory
(JNIEnv *, jclass);
/*
* Class:
br_crabcve_utils_SystemCall
* Method:
getNotUsingPhysicalMemory
* Signature: ()F
*/
JNIEXPORT jfloat JNICALL Java_br_crabcve_utils_SystemCall_getNotUsingPhysicalMemory
(JNIEnv *, jclass);
/*
* Class:
br_crabcve_utils_SystemCall
* Method:
getUsingPhysicalMemory
* Signature: ()F
*/
JNIEXPORT jfloat JNICALL Java_br_crabcve_utils_SystemCall_getUsingPhysicalMemory
(JNIEnv *, jclass);
/*
* Class:
br_crabcve_utils_SystemCall
* Method:
getUsingPhysicalMemoryRatio
* Signature: ()F
*/
JNIEXPORT jfloat JNICALL Java_br_crabcve_utils_SystemCall_getUsingPhysicalMemoryRatio
(JNIEnv *, jclass);
/*
* Class:
br_crabcve_utils_SystemCall
* Method:
getMeanCPUUsing
* Signature: ()F
*/
JNIEXPORT jfloat JNICALL Java_br_crabcve_utils_SystemCall_getMeanCPUUsing
(JNIEnv *, jclass);
#ifdef __cplusplus
}
#endif
#endif

104

Apndice B Diagrama de seqncia do teste de validao

105

106

You might also like