Prot ótipo de um ambiente virtual distribu ído multiusu...

34
Prot Prot ó ó tipo de um tipo de um ambiente virtual distribu ambiente virtual distribu í í do do multiusu multiusu á á rio rio Acadêmico: Leonardo Willrich Prof. orientador: Dalton Solano dos Reis Universidade Regional de Blumenau Centro de Ciências Exatas e Naturais Departamento de Sistemas e Computação Apresentação para defesa em banca do Trabalho de Conclusão de Curso da primeira fase do ano de 2002, para obtenção do título de Bacharel em Ciências da Computação

Transcript of Prot ótipo de um ambiente virtual distribu ído multiusu...

Page 1: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

ProtProt óótipo de umtipo de umambiente virtual distribuambiente virtual distribu íído do

multiusumultiusu ááriorio

Acadêmico: Leonardo WillrichProf. orientador: Dalton Solano dos Reis

Universidade Regional de BlumenauCentro de Ciências Exatas e Naturais

Departamento de Sistemas e Computação

Apresentação para defesa em banca do Trabalho de Co nclusão de Curso da primeira fase do ano de 2002, para obtenção do título de Bacharel em Ciências da Computação

Page 2: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

2

TTóópicos abordadospicos abordados

• Introdução• Contextualização / objetivos

• Fundamentação teórica• Ambientes virtuais distribuídos• Modelos/Protocolos de comunicação• OpenGL• DIS-Java-VRML• Objetos Distribuídos/CORBA

• Desenvolvimento do trabalho• Ferramentas utilizadas• Especificação e implementação• Operacionalidade do Protótipo

• Considerações finais• Conclusões e extensões

Page 3: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

3

IntroduIntrodu çção ão -- ContextualizaContextualiza ççãoão

• Imagens em 3D torna a interface com o usuáriomais próxima da realidade

• Surgimento dos ambientes virtuais (imersivos,não imersivos, mono ou multiusuário)

• Necessidade de apoio de outras ferramentas(Biblioteca gráfica OpenGL e DIS-Java-VRML)

• Necessidade comunicação entre objetos distribuídos (Padrão CORBA)

Page 4: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

4

IntroduIntrodu çção ão -- ObjetivosObjetivos

• Implementar um protótipo de ambientevirtual distribuído sobre uma rede local, comsuporte a multiusuários e com uma interfacenão imersiva

• Mais especificamente:

• Composto por um cenário e objetos simples• Permitir interação dos usuários com o ambiente virtual

Page 5: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

5

FundamentaFundamenta çção ão –– AVDAVD’’ss

• São simulações de computador interativas que submergem os usuários a uma realidade

• Primeiras experiências estão relacionadas aaplicações para simulações militares

• Projetos que servem como referência:SIMNET e NPSNET

• Resultaram como referência nos seguintesaspectos de construção de um AVD:

• modelo geral de comunicação• técnicas (heartbeats) e protolocos (broadcast e DIS) mais indicados

Page 6: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

6

Modelos de ComunicaModelos de Comunica ççãoão

Basicamente existem dois modelos de comunicação: o modelo centralizado e o distribuído.

Page 7: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

7

Modelos de ComunicaModelos de Comunica ççãoão

• Problema de geraçãoexcessiva de mensagens

• Mais vunerável a falhas• Problema de

escalabilidade• Sobrecarga de

mensagens parao computador central

Negativo

• Cada usuário usa seuspróprios recursoscomputacionais

• Mais tolerante a falhas, evitacongestionamento demensagens sobre um únicocomputador

• Simplifica o mecanismode controle da

comunicação

Positivo

DistribuídoCentralizadoModelo/Aspecto

Page 8: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

8

Protocolos de comunicaProtocolos de comunica ççãoão

Rede

Broacast (apenas uma mensagem enviada,todos recebem)

Protocolo de rede Broadcast:

• Não é necessário umaconexão para cada usuário

• Uma mensagem enviada,todos recebem

• Útil principalmente sobreLAN’s

• Não aplicável a WAN’s: UDPbroadcast não roteável

• Não existe a garantia da entrega dos pacotes

Page 9: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

9

Protocolos de comunicaProtocolos de comunica ççãoão

Distributed Interaction Simulation (DIS)

• É um grupo de padrões definido pelo Departamento de Defesa dos Estados Unidas e indústrias interessadas

• Sua origem está ligada ao SIMNET

• Visa determinar uma arquitetura de comunicaçãocomum para AVD’s

• Consiste de PDU’s (originalmente 27 tipos) paracomunicar eventos e estados do AVD

• Originalmente definido no padrão IEEE 1278-1993

Page 10: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

10

TTéécnica Associadacnica Associada

• Heartbeat

• Consiste em enviar PDU’s de atualização de estado do usuário periodicamente para os outros usuários

• Importante para objetos com baixa ou nenhumafreqüência de atualização no AVD (estáticos)

• Essencial para manter novos usuários queentram no AVD atualizados

• Causa um aumento na utilização da largura debanda

Page 11: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

11

OpenGLOpenGL

• Características

• Significa Open Graphics Library

• É uma biblioteca gráfica e de modelagem 3D

• Desenvolvida pela Silicon Graphics para suas estações gráficas de trabalho - 1992

• Portável: Independente de plataforma e de sistema operacional

• Consistem em 150 comandos aproximadamente

• Possibilita aos desenvolvedores produzirem animações 3D com simples linhas de comando

Page 12: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

12

OpenGLOpenGL

Vários jogos: QUAKE I, II, e III, Half-Life, Soldier of Fortune, e outros

Imagens do Jogo Half-Life (fonte: www.amazon.com)

Page 13: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

13

DISDIS--JavaJava --VRMLVRML

• Características

• Resultado de um dos grupos de trabalho doconsórcio Web3D

• API visa facilitar a construção de AVD’s portáveis,oferecendo uma interface entre a linguagem Javae o ambiente virtual feito em VRML

• Nelas estão contidas várias classes queimplementam a maioria dos PDU’s do protocoloDIS, bem como classes que controlam o processode envio e recebimento dos mesmos

Page 14: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

14

VRML VRML -- OpenGLOpenGL

• Classes que interfaceiam Java eVRML foram desconsideradas

• Uso somente das classes que implementam os PDU’s emecanismos de controle de envioe recebimento dos mesmos

• Necessidade de objetos distribuídos em duas aplicações desenvolvidas em linguagens diferentes

SubstituiçãoVRML – OpenGL

Page 15: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

15

Objetos DistribuObjetos Distribu íídosdos

• Características

• Localização: Podem estar todos em uma máquina ou em máquinas distintas de uma rede

• São capazes de executar funções para um sistema distribuído

• Teve sua origem com a orientação a objetos e as aplicações distribuídas

• Os padrões mais conhecidos são o DCOM e o CORBA

Page 16: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

16

CORBACORBA

• Características

• Padrão que define como objetos devem interoperar em um ambiente distribuído

• Define e implementa a estrutura necessária para comunicação entre aplicações distribuídas em diferentes plataformas, sistemas operacionais e linguagens de programação.

• Desenvolvido pela OMG

• É um padrão aberto

• Duas maneiras de implementar objetos:

• SSI (Static Invocation Interface)

• DII (Dynamic Invocation Interface)

Page 17: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

17

Desenvolvimento do protDesenvolvimento do prot óótipotipo

• Objetivo:

• Ambiente virtual distribuído sobre uma rede local, com suporte a multiusuários e com uma interface não imersiva

• Requisitos identificados:

• Modelo de comunicação distribuído

• Envio de mensagens através de broadcast UDP

• Protocolo de comunicação baseado no DIS

• Comunicação entre objetos distribuídos através do CORBA

• Criação de cenário e dos personagens com OpenGL

• Entrada de dados no AVD

• Utilização da técnica de heartbeat

Page 18: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

18

• Técnicas de especificação:

• Para representar as classes: Diagrama de Classes• Para lógica dos processos: fluxogramas

• Linguagens de programação:

• Java• Object Pascal

• Ferramentas:

• API J2SDK 1.3• API OpenGL 1.2• API DIS-Java-VRML• VisiBroker for Java 4.5.1

Desenvolvimento do protDesenvolvimento do prot óótipotipo

Page 19: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

19

Diagrama de classesDiagrama de classes

PersonagemBoneco PersonagemCubo

PersonagemPiramide

PersonagemTriangulo

PersonagemCirculo

PersonagemCone

PersonagemCilindro

1 DIS0

1

1 0 TratarMovimentosCenario

1InterfaceCorbaCenario 10

1

0

0

10Teclado

1

0

HeartBeat

1

0

InterfaceCorbaDisCenario1 01

OpenGL

0..*

Personagem

0

1

InfoAVD

0

Cenario10

10

1

0

1

0

1

0..*

0

1

00

Page 20: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

20

Classe Classe CenarioCenario

Cenario

DesenharCenario( )DesenharPersonagens( )CalculaY( )CriaCenario( )DestroiCenario( )Desenhar( )MoveuParaFrente( )MoveuParaTras( )MoveuParaEsquerda( )MoveuParaDireita( )OlhouparaCima( )OlhouParaBaixo( )AdicionarPersonagem( )ExcluirPersonagem( )AtualizarPersonagem( )AtualizaCenarioDistribuido( )InfoShow( )

• Responsável pelo gerenciamento do cenário

• Agrega lista de personagens pertencentes ao cenário

• Contém informações do estado atual do usuário

• Atualiza a janela de informações

• Cada usuário terá instanciado um objeto desta classe ao entrar no AVD ou ao consultar informações do mesmo

Page 21: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

21

Classe Classe Cenario Cenario -- MMéétodostodos

• Método CalculaY():

• Composto de dois pisos com uma rampa de acesso

• Se usuário está no piso superior ou inferior então Y será fixo

• Se usuário está na rampa existe a necessidade de um calculo

Page 22: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

22

Classe Classe Cenario Cenario -- MMéétodostodos

• Método CriaCenario():

• Este método é um construtor desta classe

• Duas maneiras: com interface e sem interface

Inicializa variáveis do

ambiente

Carrega as Texturas

necessárias

Se existe Interface

Cria lista de visualização do cenário

Cria janela de informações

Inicializa dados da janela de

informações

Cria a lista de Personagens

Vazia

Alinha a janela de informação

conforme a janela de interface

Se existir uma janela de interface

Mostra a janela de

informações

Fim

N

N

S

S

Page 23: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

23

Classe Classe Cenario Cenario -- MMéétodostodos

• Método Desenhar():

• Desenha o cenário por completo

• Utilizado quando o cenário sofre alguma alteração

Limpar a Janela

Carregar a Matriz

Identidade

Rotacionar cabeça

Rotacionar corpo

Aplicar translação no cenário para

mover o ponto de visão do usuário

Desenhar cenário

Desenha Personagens

Fim

Page 24: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

24

Classe Classe Cenario Cenario -- MMéétodostodos

• Métodos MoveuParaFrente() e MoveuParaTraz():

• Calcula-se novas coordenadas através da rotação do corpo

Page 25: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

25

Classe Personagem/herdadasClasse Personagem/herdadas

PersonagemBoneco

DesenharPersonagem( )

PersonagemCubo

DesenharPersonagem( )

PersonagemPiramide

DesenharPersonagem( )

PersonagemTriangulo

DesenharPersonagem( )

PersonagemCirculo

Circulo( )

PersonagemCone

DesenharPersonagem( )

PersonagemCilindro

DesenharPersonagem( )

Personagem

Create( )Destroy( )Desenhar( )DesenharPersonagem( )

Page 26: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

26

Classe TecladoClasse Teclado

Enquanto a aplicação está ativa

Leitura do Tempo Inicial

Enquanto (Tempo Atual - Tempo Inicial) < 100

Fim

Faz a leitura e o tratamento se alguma

tecla foi pressionada

• Método execute():

• Laço de repetição

• Processamento paralelo

• Processamento em tempo real

Page 27: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

27

Classe Classe HeartBeatHeartBeat

Espera 5 segundos

Aplicação está ativa?

Envia Mensagem para o cenário para

atualizar os cenários

distribuídos

Fim

N

S

• Método execute():

• Laço de repetição

• Processamento paralelo

• Envia estado do usuário para demais usuários

Page 28: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

28

Classes de InterfaceClasses de Interface

Objeto Cenario

Objeto InfoAVD

Objeto InterfaceCorbaDisCenario

Objeto DIS

Objeto TratarMovimentosCenario

Objeto InterfaceCorbaCenario

REDE

Aplicação desenvolvida em Object Pascal

Aplicação desenvolvida em Java

Page 29: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

29

FuncionamentoFuncionamento

Visibroker Smart Agent

Interface Repository

DIS Protótipo

Page 30: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

30

DemonstraDemonstra çção do protão do prot óótipotipo

Page 31: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

31

Resultados e discussãoResultados e discussão

Resultados alcançados e restrições encontradas:

• Abstração na criação do cenário através da OpenGL

• Devido a utilização da linguagem Object Pascal, OpenGL ficou vinculada ao sistema operacional Windows

• OpenGL não tem objetos pré definidos, exisitiu a necessidade de cria-los através de primitivas gráficas

• A API DIS-Java-VRML abstraiu a implementação de mecanismos para enviar PDU´s e os próprios PDU´s

• A utilização do protocolo UDP facilitou a implementação, pois não ele é um protocolo não orientado a conexão

• Porém, pode exisitir o não recebimento de algum usuário de algum pacote enviado e seu funcionamento esta limitado a uma rede local

Page 32: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

32

Resultados e discussãoResultados e discussão

Resultados alcançados e restrições encontradas:

• Técnica de HeartBeat foi essencial para o funcionamento, apesar do tráfego gerado na rede

• a API do DIS-Java-VRML é mais especifica para simulações militares, dessa forma, ela não seria bem aproveitada em qualquer AVD

• CORBA atendeu plenamente a comunicação entre objetos distribuídos

• Com um sistema distribuído desta forma, o custo de processamento aumentou muito, o que é ruim para a geração das imagens gráficas

• Ideal ter todas as técnicas encapsulados em uma aplicação somente

Page 33: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

33

ConsideraConsidera çções Finaisões Finais

Conclusões:

• É viável a construção de AVD utilizando-se OpenGL, DIS-Java-VRML e CORBA

• Trouxe experiência na criação da interface gráficapara AVD´s com OpenGL e na utilização de objetos distribuídos para criar um protótipo na área de realidade virtual

• A API do DIS-Java-VRML não foi tão relevante ao trabalho, pois com a conclusões de outros trabalhos sua definição passou a ser mais compreendida

Page 34: Prot ótipo de um ambiente virtual distribu ído multiusu áriocampeche.inf.furb.br/tccs/2002-I/2002-1leonardowillrichap.pdfImagens do Jogo Half-Life (fonte: ) 13 ... mecanismos de

34

ConsideraConsidera çções Finaisões Finais

Extensões:

• Melhorar a aparência do ambiente virtual, utilizando-se técnica de realismo para isso

• Permitir interação dos usuários com os objetos do AVD

• Melhorar o processo de comunicação do AVD, fazendouso de mais tipos de PDU’s do protocolo DIS

• Fazer com que o ambiente funcione em WAN´s

• Implantar técnicas de colisão entre usuários e, se existir, com objetos do cenário

• Melhorar a performance do AVD, como por exemplo, utilizando-se a técnica de Dead Reckoning

• Implementar a especificação do protocolo DIS, conforme a IEEE, na linguagem Object Pascal