Transmissão de estados em ambientes de realidade virtual distribuídos e colaborativos Tese de...
-
Upload
joao-gabriel-coimbra-amorim -
Category
Documents
-
view
214 -
download
0
Transcript of Transmissão de estados em ambientes de realidade virtual distribuídos e colaborativos Tese de...
Transmissão de estados em ambientes de realidade virtual
distribuídos e colaborativosTese de Mestrado em Engenharia Informática
Elaborada por:Elaborada por:
Lic. Pedro Miguel da Fonseca Marques FerreiraLic. Pedro Miguel da Fonseca Marques FerreiraEscola Superior de Tecnologia de TomarEscola Superior de Tecnologia de TomarInstituto Politécnico de TomarInstituto Politécnico de [email protected] / [email protected]@ipt.pt / [email protected]
Sob orientação de:Sob orientação de:
Prof. Doutor Fernando P.L. Boavida FernandesProf. Doutor Fernando P.L. Boavida FernandesDep. Eng. Informática, FCTUCDep. Eng. Informática, [email protected]@dei.uc.pt
Co-orientação de:Co-orientação de:
Prof. Doutor João Gilberto de Matos OrvalhoProf. Doutor João Gilberto de Matos OrvalhoEscola Superior de Educação de CoimbraEscola Superior de Educação de [email protected]@dei.uc.pt
DEI:DEI: http://tejo.dei.uc.pt/http://tejo.dei.uc.pt/ESTT:ESTT: http://193.137.5.227/stf/http://193.137.5.227/stf/
2002 STF 2
Estrutura da apresentação
Realidade virtualTransmissão de estadosEnquadramento anteriorCONCHA 2.0STF: Status Transmission FrameworkTestes à STF e resultados obtidosConclusõesTrabalho futuro
2002 STF 3
Realidade VirtualTecnologias e protocolos
Tecnologias de visualização: VRML Java3D 3DML OpenGL DirectX / Direct3D MPEG-4 QuickTime VR MetaStream
Protocolos de comunicação: TCP/IP
TCP UDP
RTP/I CORBA JSDT Protocolos específicos
DVW: VRTP DWTP DIS Mu3D
2002 STF 4
Realidade VirtualVRML/WEB3D: Investigação
BIOTA Formato binário comprimido Interoperabilidade e
conformância Tecnologias para empresas
e bases de dados Simulação distribuída e
interactiva EAI Animação humanóide Input via teclado Living Worlds VRTP
Streaming VRML Conteúdos GeoVRML Extensões orientadas a
objectos NLP e animações Bibliotecas multimédia
universais Scripts VRML Interacção multimédia / 3D VRML - MPEG4 X3D / VRML-NG
2002 STF 5
Realidade VirtualÁreas de aplicação
Edição colaborativaVisualização colaborativaMundos virtuaisJogos interactivosTelemedicinaSimulações do mundo realEngenharia de processos de fabricoComércio electrónico
2002 STF 6
Transmissão de estadosProblemas, requisitos
Tipo de média: Interactivo distribuído:
Contínuo Discreto
Problemas: Transmissão e recepção Replicação Consistência Particionamento Junção tardia Sincronização temporal
Requisitos CVE/DVW: Requisitos técnicos Requisitos de segurança Partilha de dados Baixa largura de banda e
latência Heterogeneidade da rede Interacções distribuídas Tolerância a falhas Escalabilidade
2002 STF 7
Transmissão de estadosParticionamento, sincronização
Particionamento: Espacial:
GRID LOD BSP Células e portais Caixas limite (Bounding
boxes) Técnicas específicas para
mundos virtuais multiutilizador:
Filtragem Locales e Beacons Aura
Sincronização temporal: Características
Sincronização absoluta impossível
Fonte de tempo externa Atrasos de rede Mecanismos e algoritmos
normalmente complexos Requisitos
Concordância Precisão
Protocolos e algoritmos Software (NTP,SNTP) Hardware
2002 STF 8
Transmissão de estadosConsistência, local lag
Consistência: Aproximações:
Pessimistas Floor control Locking
Optimistas Dead reckoning Local lag
Reparação de inconsistências de curto prazo:
Previsão e transmissão de estados
Requisição de estados O algoritmo de timewarp
Local lag: Redução de inconsistências
de curto prazo A execução da operação é
atrasada por um determinado período de tempo T
T = Tempo de lag local (local lag)
Marca de tempo da mensagem > Tempo em que esta é emitida pelo utilizador
Problema: Estimar o valor correcto para
o lag local (T)
2002 STF 9
Transmissão de estadosDead reckoning
A aplicação conhece o comportamento do objecto “por defeito”, na ausência de mensagens
A aplicação prevê o estado do objecto, caso não receba mensagens sobre este
Caso uma mensagem seja recebida que altere o estado do objecto, este é corrigido
Algumas desvantagens:Não permite verdadeira colaboraçãoPode causar bastantes inconsistências
de curto prazoNecessita de largura de banda
2002 STF 10
Transmissão de estadosTimewarp
Cada participante:Grava o estado do mundo virtual de tempos a temposRegista todas as alterações efectuadas desde aí
Caso exista uma inconsistência de curto prazo, esta é corrigida:O estado do mundo virtual é recuperado do último gravadoTodas as operações são repetidas até à operação
imediatamente anterior à que causou a inconsistênciaAlgumas desvantagens:
Gasta bastante memória e espaço em discoNecessita de lógica aplicacional complexa
2002 STF 11
Enquadramento anteriorCONCHA 1.0
Sistema de gestão de conferências baseado em Java, JSDT e CORBA
Baseado em dois serviços nucleares:Gestão de conferências
Baseado nas recomendações ITU T.124 (através do uso do JSDT)
Comunicação multiponto para as aplicações Baseado na norma ITU T.122
Baseado numa topologia em árvore, com nós proxy e nós terminais
Utiliza canais JSDT ou CORBA
2002 STF 12
Enquadramento anteriorARMS
Plataforma de middleware para difusão de eventosCompatível com o serviço de eventos CORBA padrãoSuporta comunicação multicast de eventos
Utiliza o protocolo LRMP Suporta parametrização de QoS - Quality of Service
Possibilita comunicação com diferentes níveis de QoS por mensagem:
Não fiável Não fiável com notificação de perdas Não fiável com notificação de perdas e ordenação Fiável
2002 STF 13
O novo sistemaCONCHA 2.0
Evolui o CONCHA 1.0 nos seguintes pontos:Arquitectura mais modularSistema mais extensívelUtilização de Java 2 (1.3) e a API Swing Interface para aplicações transparente em relação ás
tecnologias de comunicaçãoAdicionado suporte para appletsAdicionado servidor dedicado Integração ARMS transparente para as aplicaçõesSuporte a JDBC mais transparenteEvolução para JSDT 2.0
2002 STF 14
Status Transmission FrameworkAPI para transmissão de estadosA API fornece interfaces para mecanismos de:
Transmissão de estadosRecepção de estadosSuporte a junção tardiaParticionamento do mundo virtualDefinição de chavesDefinição e classificação de estadosSincronização temporal internaTratamento e sinalização de timewarpsGeração de dados estatísticos para
testes
2002 STF 15
Status Transmission FrameworkTransmissão de estados
Streams de interacção: Sequências de
STFStateMessage (mensagens de estado), que inclui, entre outros:
Chave do estado Estado propriamente dito Marca de tempo Prioridade
Key
State
Timestamp
Priority
STF
Sta
teM
essa
ge
IN OUT
Classificação de estados: Quanto a redundância
Redundantes Essenciais
Quanto a volatilidade Volátil Não volátil
Quanto a junção tardia Cumulativos Independentes
2002 STF 16
Status Transmission FrameworkTransmissão de estados
ReceiverTransmiiter
Messagetransmitted
byapplication
to STF
Messagereceived
byapplicationfrom STF
Messagetransmiitedto network
by STF
Messagereceived
fromnetwork by
STF
Transmission lag Network delay
Reception lag
Lags de recepção e transmissão
2002 STF 17
Status Transmission FrameworkSincronização temporal
Time client 1 Primary time server Time client 2
STFTimeHeartBeatMessage()STFTimeHeartBeatMessage()
STFTimePingMessage()
STFTimePongMessage()
STFTimePingMessage()
STFTimePongMessage()
STFTimeHeartBeatMessage() STFTimeHeartBeatMessage()Now we know whois the primary time
server
Now we canestimate the
network delay
Now we cancalculate thevirtual clock
Sincronização temporal:Exemplo para 3 nós:•2 clientes•1 servidor
Voting Participant 1 Voting initiator Voting participant 2
STFTimeVoteRequestMessage()STFTimeVoteRequestMessage()
STFTimeVoteMessage()
STFTimeVoteMessage()
STFTimeVoteDecidedMessage()STFTimeVoteDecidedMessage()
Processo de votação:Exemplo para 3 nós:•2 participantes•1 candidato (iniciador)
2002 STF 18
Status Transmission FrameworkJunção tardia
Arquitectura:DistribuídaReplicadaTolerante a falhas
MecanismoActivado se
necessárioAutomático
Nó de conferência STF
Aplicação de conferência
Canal de comunicação aplicacional
Arquivo localde estados
Nó de conferência STF
Aplicação de conferência
Arquivo localde estados
Nó de conferência STF
Aplicação de conferência
Arquivo localde estados
Nó de conferência STF
Aplicação de conferência
Arquivo localde estados
2002 STF 19
Status Transmission FrameworkJunção tardia
LateJoin server 1 LateJoin server 2LateJoin client
STFLateJoinRequestMessage()STFLateJoinRequestMessage()
STFLateJoinBeginMessage()
STFLateJoinBeginMessage()
STFLateJoinStreamMessage()
STFLateJoinStreamMessage()
STFLateJoinEndMessage()
STFLateJoinEndMessage()
STFLateJoinPartMessage()
STFLateJoinPartMessage()
STFLateJoinPartMessage()
STFLateJoinPartMessage()
... ...
STFLateJoinPartMessage()
STFLateJoinPartMessage()
STFLateJoinPartMessage()
STFLateJoinPartMessage()
Processo de junção tardia:Exemplo para 3 nós:•2 servidores•1 cliente (Nó que se junta)
2002 STF 20
Status Transmission FrameworkJunção tardia
Identificação única de mensagens previne repetição da mesma mensagem no mesmo servidor replicado
Identificador único de mensagem de estado:Nó de origemTempo de início de sessão no nó de origemNúmero de sequência da mensagem no nó de origem
Identificador único de uma mensagem de estado
Origem Tempo inicial Número de sequencia
2002 STF 21
Status Transmission FrameworkAplicações desenvolvidas
Aplicações exemplo com suporte a junção tardia:ChatWhiteboard
Aplicação de testes intensivosPermite controlar parâmetros de:
Streams de interacção Transmissão Recepção Sincronização temporal Junção tardia
2002 STF 22
Status Transmission FrameworkSincronização dos testes
Receiver 1 Transmitter Receiver 2
STFTestSignal()STFTestSignal()
STFTestACK()
STFTestACK()
STFTestSignal()STFTestSignal()
STFTestACK()
STFTestACK()
Start channelmanager
Stop channelmanager
Write results
•Sincronização distribuída dos testes intensivos•Funciona para qualquer número de nós em teste maior do que dois•Diagrama de sequência UML para três nós em teste:
2002 STF 23
Status Transmission FrameworkTestes efectuados
Testes funcionaisAplicações exemplo
Chat Whiteboard
Testes de desempenhoAplicação de testes intensivosTestes intensivos à:
Transmissão e recepção de estados Junção tardia Sincronização temporal
2002 STF 24
Testes à STFPlataforma de testes
CISCOSYSTEMS Ethernet Switch
TEJO CONCHASADO
ntp1.dei.uc.pt
Software instalado:
Windows 2000 Professional Java Software Development Kit 1.3, da Sun Microsystems e o Java Shared Data Toolkit 2.0NTPTime
Hardware:A- Tejo e B-Sado:Pentium III 733Mhz 128 MB de memória RAMC-ConchaPentium III 500Mhz 128 MB de memória RAM
Rede:Ligações ethernet full-duplex a 100MbitComputadores interligados por um switch
2002 STF 25
Testes à STFPontos de recolha de dados
ReceiverTransmitter
Application
STF
Application
STF
ARMS/JSDTARMS/JSDT
Network
A
B C
D
Nº de mensagens em (B)=
Nº de mensagens em (C)
A: ProcessadasB (=C): Transmitidas
D: Recebidas
2002 STF 26
Testes à STFTestes de transmissão
3 Streams de interacção simultâneas: Stream 1: Estados redundantes, voláteis e independentes. Stream 2: Estados redundantes, não voláteis e
independentes. Stream 3: Estados essenciais, não voláteis e independentes.
Prioridade de mensagens: Highest2 séries de testes
Testes de ritmo de transmissão Fixa tamanho do estado, varia ritmo de transmissão
Testes de tamanho do estado Fixa ritmo de transmissão,
varia tamanho do estado
2002 STF 27
Testes à STFTestes de transmissão
Teste de ritmo de transmissãoTamanho do estado 22 bytes, chave 6 bytes (total 28 bytes)Ritmo inicial 5 m/s por cada streamPassos de 5 m/s por cada streamParagem a 400 m/s por cada stream = 1200 m/s totalParagem forçada se atingido atraso superior a 1 segundo
Teste do tamanho do estadoRitmo fixo a 200 m/s por cada stream = 600 m/s totalTamanho inicial do estado = 22 bytesPassos de 100 bytesParagem forçada se atraso superior a 1 segundo
2002 STF 28
Testes à STFTestes de transmissão
Cada teste individual correu durante 20 segundosLags de recepção e transmissão foram desactivadosSincronização temporal interna desactivadaMecanismo de suporte a junção tardia desactivadoOs computadores foram externamente sincronizados
via NTP
2002 STF 29
Testes à STFTestes de transmissão
General total message delay ARMS
0
5
10
15
20
25
5 15 25 35 45 55 65 75 85 95 105
115
125
135
145
155
165
175
185
195
205
215
225
235
245
255
265
275
285
295
305
315
325
335
345
355
365
375
385
395
Messages / second
Ave
rage
tota
l mes
sage
del
ay
Total delay
2002 STF 30
Testes à STFTestes de transmissão
General message delay with size ARMS
0
100
200
300
400
500
600
22 1422 2822 4222 5622 7022 8422 9822 11222 12622 14022 15422 16822 18222 19622 21022 22422 23822 25222 26622 28022 29422
State size
Aver
age
tota
l mes
sage
del
ay
Total delay
2002 STF 31
Testes à STFTestes de transmissão
General message throughput ARMS
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
20000
5 20 35 50 65 80 95 110
125
140
155
170
185
200
215
230
245
260
275
290
305
320
335
350
365
380
395
Messages / second
Mes
sage
s in
20
seco
nds
ProcessedTransmittedReceived
2002 STF 32
Testes à STFTestes de transmissão
Resultados sobre JSDT e sobre ARMS semelhantesAtraso de recepção médio sempre menor que 25 msAtraso de recepção médio normalmente menor que 20
msAlvo de 400 m/s atingido sem dificuldadesTamanho do estado não prejudica gravemente o ritmo
de transmissãoMensagens descartadas da forma previstaEficiente utilização dos recursos
de rede
2002 STF 33
Testes à STFTestes de junção tardia
3 Streams de interacção simultâneas:Stream 1: Estados redundantes, voláteis e independentes.Stream 2: Estados redundantes, não voláteis e
independentes.Stream 3: Estados essenciais, não voláteis e independentes.
Prioridade de mensagens: Highest2 séries de testes (tamanho do estado fixo)
Testes de ritmo de transmissão Fixa ritmo de checkpointing, varia ritmo de transmissão
Testes do ritmo de checkpointing Fixa ritmo de transmissão,
varia ritmo de checkpointing
2002 STF 34
Testes à STFTestes de junção tardia
Teste de ritmo de transmissãoRitmo inicial 5 m/s por cada streamPassos de 5 m/s por cada streamParagem a 400 m/s por cada stream = 1200 m/s total
Teste do tamanho do estadoRitmo fixo a 200 m/s por cada stream = 600 m/s totalRitmo de checkpointing:
Inicialmente 1 segundo Terminou em 20 segundos Incrementos de 1 segundo
2002 STF 35
Testes à STFTestes de junção tardia
Tamanho do estado 22 bytes, chave 6 bytes (total 28 bytes)
Cada teste individual correu durante 20 segundosLags de recepção e transmissão foram desactivadosSincronização temporal interna desactivadaOs computadores foram externamente sincronizados
via NTPCheckpointing localTimeout de junção tardia:
2 segundos
2002 STF 36
Testes à STFTestes de junção tardia
Avg. Delay by message throughput
0
200
400
600
800
1000
1200
5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90
Messages / second
Avg
. Del
ay (M
illis
econ
ds)
Delay
2002 STF 37
Testes à STFTestes de junção tardia
Avg. delay by checkpointing interval
0
5
10
15
20
25
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000
Checkpointing interval
Avg.
Del
ay (M
illis
econ
ds)
Delay
2002 STF 38
Testes à STFTestes de junção tardia
Mecanismo de suporte a junção tardia possui um efeito na eficiência da STF:Não negligenciávelNegativo
Mais negativo com o aumento do ritmo de transmissão Menos negativo quanto maior for o ritmo de checkpointing
Os resultados são semelhantes sobre JSDT e sobre ARMS
2002 STF 39
Testes à STFTestes de sincronização
3 Streams de interacção simultâneas:Stream 1: Estados redundantes, voláteis e independentes.Stream 2: Estados redundantes, não voláteis e
independentes.Stream 3: Estados essenciais, não voláteis e independentes.
Prioridade de mensagens: Highest3 séries de testes (tamanho do estado fixo)
Testes de ritmo de transmissãoTestes do ritmo de heart beatTeste do mecanismo de cálculo do
atraso de rede
2002 STF 40
Testes à STFTestes de sincronização
Tamanho do estado 22 bytes, chave 6 bytes (total 28 bytes)
Cada teste individual correu durante 5 minutosLags de recepção e transmissão foram desactivadosMecanismo de suporte a junção tardia desactivado
2002 STF 41
Testes à STFTestes de sincronização
Average adjustment by message throughput
0
0,5
1
1,5
2
2,5
100
300
500
700
900
1100
1300
1500
1700
1900
2100
2300
2500
2700
2900
3100
3300
3500
3700
3900
4100
4300
4500
4700
4900
Messages / second
Mill
isec
onds
Adjustment
2002 STF 42
Testes à STFTestes de sincronização
Avg. Adjustment by heartbeat interval
0
5
10
15
20
25
1000
3000
5000
7000
9000
1100
013
000
1500
017
000
1900
021
000
2300
025
000
2700
029
000
3100
033
000
3500
037
000
3900
041
000
4300
045
000
4700
049
000
5100
053
000
5500
057
000
5900
0
Heartbeat interval (milliseconds)
Avg
. Adj
ustm
ent (
Mill
isec
onds
)
Adjustment
2002 STF 43
Testes à STFTestes de sincronização
Avg. Adjustment by delay calculation interval
0
5
10
15
20
25
30
1000
2000
3000
4000
5000
6000
7000
8000
9000
1000
011
000
1200
013
000
1400
015
000
1600
017
000
1800
019
000
2000
021
000
2200
023
000
Delay calculation interval
Avg
. Adj
ustm
ent (
Mill
isec
onds
)
Adjustment
2002 STF 44
Testes à STFTestes de sincronização
Os resultados são semelhantes sobre JSDT e sobre ARMS
O relógio virtual mantém sincronizado, com ajustes abaixo dos 4 msCom um ritmo de transmissão de até 5000 m/s
Outras conclusões:Quanto maior o intervalo de heartbeat, maiores os ajustes Intervalo de cálculo de atraso de rede não influencia grandemente
o mecanismoNúmero de processos de votação
baixo, servidor de tempo muda bastante raramente
2002 STF 45
Conclusões
A camada de middleware STF funciona adequadamente
A STF resolve os seguintes problemas de manuseamento de estados:Transmissão e recepção mantendo consistênciaParticionamento do mundo virtualJunção tardia distribuídaSincronização temporal
A STF encontra-se preparada para ser utilizada em aplicações reais
2002 STF 46
Trabalho futuro
Novos testesNovas optimizações Integração com novas versões do ARMSSuporte a outros tipos de médiaMaior suporte ao algoritmo de timewarpDesenvolvimento de mais aplicações Implementação da STF em C++ Integração Java3D / OpenGL / Direct3D Investigação e teste: Novos algoritmos, etc.