Professional Documents
Culture Documents
por
_____________________________
Dissertao Apresentada ao
Mestrado em Cincia da Computao
Universidade Federal do Cear
Orientadores:
Mauro Cavalcante Pequeno, Dr.
Miguel Franklin de Castro, Dr.
Setembro, 2006
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
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
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
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
15
16
17
18
disso, so criadas entidades de gerenciamento hbridas que ora atuam como gerente e ora
atuam como agente (Figura 2.3) (Leinwand & Fang, 1993).
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
CMIP/CMIS
Common
Management
Information
Protocol/Common
23
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.
25
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
29
30
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
Tempo
Informao
Comportamento
das personagens
Leis fsicas
Dispositivos
de entrada
Sistema
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
33
34
Atualmente, este projeto segue em sua quinta verso (NPSNET-V), onde foi
desenvolvida uma plataforma extensvel para desenvolvimento do sistema AVR (Capps et
35
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).
37
38
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.
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
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.
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).
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
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.
44
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.
46
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).
49
50
51
52
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
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
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.
58
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.
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
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.
63
64
65
66
67
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.
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.
70
71
confirmada a falha no Gerente o cenrio prossegue, seno o Agente volta ao seu estado
anterior, sem falhas de comunicao com o Gerente.
72
73
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.
75
Durante
desenvolvimento
da
arquitetura
CRAbCVE,
foram
definidos
77
78
79
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.
81
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
83
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
String
String
String
String
getGEAddress();
getGEPort();
getRMAddress();
getRMPort();
public
public
public
public
public
float
float
float
float
float
getMeanCPUUse();
getPhysicalTotalMemory();
getNotUsingPhysicalMemory();
getUsingPhysicalMemory();
getUsingPhysicalMemoryRatio();
a) WorldInstanceMBean interface.
b) SystemInformationMBean interface.
relativas
Fbricas
contidas
em
cada
Agente.
Portanto,
String
String
String
String
String
addScheduledWorldInstance(String
addScheduledWorldInstance(String
updScheduledWorldInstance(String
delScheduledWorldInstance(String
delWorldInstance(String idWorld,
85
86
87
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.
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.
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).
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
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
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
98
99
100
Disponvel
em:
WIDENIUS M. & AXMARK, D. MySQL Reference Manual, O'Reilly & Associates, 2002.
101
Apndices
102
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
105
106