Anda di halaman 1dari 146

UNIVERSIDADE FEDERAL DE SO CARLOS

CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA


PROGRAMA DE PS-GRADUAO EM BIOTECNOLOGIA

ARQUITETURA COMPUTACIONAL DE
ALTO DESEMPENHO PARA INTEGRAO
DE AMBIENTES INTERATIVOS E
IMERSIVOS REMOTOS PARA
VISUALIZAO MOLECULAR

Moacyr Francischetti Correa

Orientador: Prof. Dr. Luis Carlos Trevelin


Orientador: Prof. Dr. Julio Zukerman Schpector

So Carlos SP
Outubro/2010
UNIVERSIDADE FEDERAL DE SO CARLOS
CENTRO DE CINCIAS EXATAS E DE TECNOLOGIA
PROGRAMA DE PS-GRADUAO EM BIOTECNOLOGIA

ARQUITETURA COMPUTACIONAL DE
ALTO DESEMPENHO PARA INTEGRAO
DE AMBIENTES INTERATIVOS E
IMERSIVOS REMOTOS PARA
VISUALIZAO MOLECULAR

Moacyr Francischetti Correa

Tese apresentada ao Programa de Ps-Graduao


em Biotecnologia da Universidade Federal de So
Carlos, como parte dos requisitos para a obteno
do ttulo de Doutor em Biotecnologia
Orientador: Prof. Dr. Luis Carlos Trevelin
Orientador: Prof. Dr. Julio Zukerman Schpector

So Carlos SP
Outubro/2010
Dedico este trabalho a todos aqueles que acreditam que possvel realizar um sonho e lutam
at o fim por um ideal, dando certo ou no! Dedico, tambm, aos que no acreditam, com a
esperana de que possam mudar de ideia. Quem sabe...
melhor tentar e no conseguir do que passar a vida toda se lamentando por no ter
tentado
Agradecimentos

Dificilmente conseguirei ser justo com todos que participaram, direta ou indireta-
mente, ativamente ou no, da realizao deste trabalho. Mais difcil, ainda, seria colocar
os agradecimentos em ordem de importncia. Nem pensar! melhor faz-los em ordem
cronolgica. Sendo assim, e no aumentando nenhum fato, vamos pela ordem em que
cada um entrou na minha vida.

Agradeo a meus pais Moacyr e Martha, que nunca mediram esforos na tentativa de
dar a melhor educao possvel aos filhos. Sempre me apoiaram nos momentos de tomar
decises difceis e sempre estavam l naquela hora em que no tinha pra onde correr.

Daniela, minha querida esposa, que sempre esteve ao meu lado pro que der e vier.
Viveu, como eu e junto comigo, as alegrias das horas em que tudo caminhava para um
final feliz e as angstias dos momentos difceis... Companheira sem igual! Obrigado!

Aos meus filhos Beatriz e Gustavo, que nasceram no perodo em que este trabalho
estava sendo realizado. Razes da minha vida!

Agradeo ao amor incondicional de todos eles. Sem isso eu no seria o que sou e no
chegaria aonde cheguei. No tenho dvida disso.

Ao Arnaldo Andrade, meu amigo e guru empresarial de longa data, por me apoiar e
incentivar no final do trabalho.

Meus orientadores, Julio e Trevelin, tambm foram muito importantes. Sempre foi
gratificante conversar com eles. Nas reunies e em conversas informais aprendi muita
coisa que no podia aprender com livros e artigos. Poos de conhecimento, bom senso e
pacincia!

Agradeo ao Marcelo de Paiva Guimares, que me deu muitas dicas e nimo para
terminar o trabalho a tempo, especialmente na reta final.

Portanto, conclui-se que este doutorado no s meu. Quero dividi-lo com todos que
me ajudaram nesse perodo que no foi fcil!
Resumo

Na pesquisa para descoberta de novos frmacos e medicamentos, especialmente re-


lacionada interao frmaco-receptor, a importncia da interao entre pesqui-
sadores fundamental, seja dentro de uma mesma sala ou dispersos pelo mundo.
A interao em um ambiente online atravs da visualizao compartilhada de uma
molcula e a troca de informaes e ideias via texto e/ou voz permitem que os pes-
quisadores discutam sobre aspectos da molcula em estudo, aumentando as chances
de se chegar identificao de novos compostos. A arquitetura desenvolvida neste
trabalho utiliza conceitos de Sistemas de Realidade Virtual Multiusurios Distri-
budos, Trabalho Colaborativo e tcnicas de comunicao em rede de abrangncia
mundial para criao de um sistema de alto desempenho que permite a interao
em tempo real entre vrios grupos de pesquisa na rea de visualizao molecular
dispersos geograficamente, utilizando sistemas de hardware que vo desde computa-
dores desktop at sistemas imersivos como CAVEs. Isso se tornou possvel atravs
da definio de uma estrutura baseada em servidores locais a cada grupo, que se
comunicam entre si numa rede Peer-to-peer, e da criao de um protocolo de comu-
nicao entre esses servidores que busca agilidade ao minimizar os efeitos negativos
do atraso na entrega e da perda de pacotes, problemas caractersticos da internet.

Palavras-chave: RTEP, protocolo de comunicao, arquitetura de comunicao, grupos de


pesquisa, realidade virtual
Abstract

On the research for the new drugs and medicines, especially for those related to
the drug-receptor interaction, the importance of the researchers interaction is es-
sential, being inside the same room or spread in the world. The interaction in an
online environment, through shared visualization of a molecule, and the exchange
of the information and ideas thru text and/or voice allow the researchers to discuss
about aspects of the sharing molecule, increasing the new compound identification
chances. The architecture developed in this work uses the following concepts: dis-
tributed multiuser virtual reality systems, collaborative work and worldwide scope
network communication techniques for a high-performance system creation that al-
low it real-time interaction among various geographically spread molecules visuali-
zation research groups, using hardware system that goes from desktop computers to
immersive systems like CAVEs. This became possible thru each group local servers
based structure that communicate among themselves on a peer-to-peer network and
an inter server communication protocol creation that seek for the agility when mi-
nimizing the negative effects of the delay on the packet delivery and loss, typical
internet problem.

Keywords: RTEP, communication protocol, communication architecture, research groups, vir-


tual reality
Lista de Figuras

2.1 Sensorama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 Os 6 graus de liberdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3 RV No Imersiva com Montor . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.4 RV Imersiva com HMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5 Esquema do sistema para estreo ativo . . . . . . . . . . . . . . . . . . . . 26

2.6 Estreo anglifo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.7 Esquema do sistema para estreo passivo por polarizador . . . . . . . . . . 27

4.1 Protenas de membrana agindo como receptores . . . . . . . . . . . . . . . 43

4.2 Diagrama de fora das ligaes qumicas . . . . . . . . . . . . . . . . . . . 44

5.1 Exemplos de visualizao com Jmol . . . . . . . . . . . . . . . . . . . . . . 51

5.2 Exemplos de visualizao com MarvinSpace . . . . . . . . . . . . . . . . . 53

5.3 Exemplos de visualizao com VMD . . . . . . . . . . . . . . . . . . . . . 55

5.4 Exemplos de visualizao com PyMol . . . . . . . . . . . . . . . . . . . . . 56

5.5 Exemplos de visualizao com Chimera . . . . . . . . . . . . . . . . . . . . 57

5.6 Exemplos de visualizao com SwissPDBViewer . . . . . . . . . . . . . . . 58

5.7 Tela do Discovery Studio Visualization . . . . . . . . . . . . . . . . . . . . 60

5.8 Estrutura de mdulos do SYBYL-X Suite . . . . . . . . . . . . . . . . . . 61

5.9 Visao superior do Sistema Chines . . . . . . . . . . . . . . . . . . . . . . . 64

5.10 Configurao do sistema patrocinado pela National Natural Science Foun-


dation of China . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.11 Viso Lateral do Sistema Chins . . . . . . . . . . . . . . . . . . . . . . . 65


5.12 Dispositivo de Interao 6DOF . . . . . . . . . . . . . . . . . . . . . . . . 66

5.13 Imagem gerada pelo sistema de Anderson e Weng . . . . . . . . . . . . . . 67

5.14 Configurao fsica do DiVE . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.15 Viso obtida com o sistema de Moritz . . . . . . . . . . . . . . . . . . . . 69

5.16 Exemplos de gestos (A e B) e tracking devices (C) . . . . . . . . . . . . . . 70

5.17 Wiki de visualizao molecular . . . . . . . . . . . . . . . . . . . . . . . . 71

5.18 rea de foco no AMMP-Vis . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.19 Esquema do AMMP-Vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.20 Jmol Colaborativo buscando novos pares . . . . . . . . . . . . . . . . . . . 74

5.21 Bancada e Polhemus Fastrack utilizados no Distributed PaulingWorld . . . 74

6.1 Os 6 graus de liberdade . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

7.1 Exemplo de sada do comando traceroute . . . . . . . . . . . . . . . . . . . 88

8.1 Ambientes Global e Local . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

8.2 Exemplo de um Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

8.3 Modelo do Ambiente Local . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8.4 Trecho de cdigo original do Jmol . . . . . . . . . . . . . . . . . . . . . . . 103

8.5 Trecho de cdigo modificado do Jmol . . . . . . . . . . . . . . . . . . . . . 103

8.6 Trecho de cdigo adicionado ao Jmol . . . . . . . . . . . . . . . . . . . . . 104

8.7 Modelo do Ambiente Imersivo com Multiprojeo . . . . . . . . . . . . . . 105

8.8 Modelo do Ambiente Global . . . . . . . . . . . . . . . . . . . . . . . . . . 106

8.9 Estrutura de um evento do pacote RTEP . . . . . . . . . . . . . . . . . . . 108

8.10 Estrutura do pacote RTEP . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

8.11 Valores de Latncia hipotticos do exemplo . . . . . . . . . . . . . . . . . . 109

8.12 Exemplo da variao SmartBeat em funo do jitter . . . . . . . . . . . . . 111

9.1 Cenrio de testes com conexes lgicas . . . . . . . . . . . . . . . . . . . . 116

9.2 Cenrio de testes com conexes fsicas . . . . . . . . . . . . . . . . . . . . 117


9.3 Configurao do ipfw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

9.4 Tempo Mdio de Entrega - RMI . . . . . . . . . . . . . . . . . . . . . . . . 123

9.5 Tempos de Entrega em Funo da Latncia para RMI . . . . . . . . . . . . 124

9.6 Tempo Mdio de Entrega - Sockets . . . . . . . . . . . . . . . . . . . . . . 125

9.7 Tempos de Entrega em Funo da Latncia para Sockets . . . . . . . . . . 125

9.8 Tempo Mdio de Entrega - RTEP . . . . . . . . . . . . . . . . . . . . . . . 126

9.9 Grafo gerado pelo Servidor 4 durante o teste . . . . . . . . . . . . . . . . . 127

9.10 Tempos de Entrega em Funo da Latncia para RTEP . . . . . . . . . . . 128

9.11 Tempo Mdio de Entrega . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

9.12 Quantidade de Eventos Entregues em Menos de 100ms . . . . . . . . . . . 130

9.13 Porcentagem de Eventos Entregues em Menos de 100ms . . . . . . . . . . 130


Lista de Tabelas

7.1 Comparativo entre Softwares de Visualizao Molecular . . . . . . . . . . . 91

8.1 Comparativo de Recursos dos Protocolos de Transporte . . . . . . . . . . . 106

8.2 Formas de comunicao entre usurios . . . . . . . . . . . . . . . . . . . . 113

9.1 Latncias entre servidores durantes os testes . . . . . . . . . . . . . . . . . 119

9.2 Vazo entre os servidores durante os testes . . . . . . . . . . . . . . . . . . 120


Sumrio

CAPTULO 1 INTRODUO 16

1.1 Contexto e Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.2 Problemas e Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3 Solues e Contribuies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.4 Publicaes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1.5 Organizao da Tese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

CAPTULO 2 REALIDADE VIRTUAL 21

2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2 Histria da Realidade Virtual . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 Definio de Realidade Virtual . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.1 Realidade Aumentada . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.3.2 Multiprojeo Estereoscpica . . . . . . . . . . . . . . . . . . . . . 26

2.4 Elementos de um Sistema de Realidade Virtual . . . . . . . . . . . . . . . 27

2.4.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.4.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

CAPTULO 3 SISTEMAS DE REALIDADE VIRTUAL MULTIUSU-


RIOS DISTRIBUDOS E TRABALHO COLABORATIVO 30

3.1 Ambientes Virtuais Distribudos . . . . . . . . . . . . . . . . . . . . . . . . 30

3.1.1 Componentes dos AVDs . . . . . . . . . . . . . . . . . . . . . . . . 31


3.1.2 Adversidades Inerentes do Projeto de AVDs . . . . . . . . . . . . . 32

3.1.3 Arquiteturas de Comunicao . . . . . . . . . . . . . . . . . . . . . 33

3.1.4 Arquiteturas de Armazenamento de Dados . . . . . . . . . . . . . . 34

3.1.5 Arquiteturas para Construo de AVDs . . . . . . . . . . . . . . . 35

3.2 Trabalho Colaborativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2.1 Adversidades do Projeto de Aplicaes Colaborativas . . . . . . . . 37

CAPTULO 4 A IMPORTNCIA DA VISUALIZAO MOLECULAR


INTERATIVA E IMERSIVA PARA A BIOTECNOLOGIA E MECA-
NISMOS DE AO DOS FRMACOS 39

4.1 A Biotecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4.2 Biotecnologia Farmacutica . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 A Importncia da Realidade Virtual na Visualizao Molecular . . . . . . 41

4.4 Mecanismos de Ao dos Frmacos: uma Breve Introduo . . . . . . . . . 41

CAPTULO 5 VISUALIZAO MOLECULAR INTERATIVA E FER-


RAMENTAS COMPUTACIONAIS AVANADAS PARA MODELA-
GEM MOLECULAR 45

5.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2 Visualizadores Moleculares . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2.1 Jmol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2.2 VRMol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.2.3 ChemAxon Marvin Space . . . . . . . . . . . . . . . . . . . . . . . 52

5.2.4 VMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.2.5 PyMol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.2.6 Chimera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.2.7 SwissPDBViewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.3 Editores/Construtores de Molculas . . . . . . . . . . . . . . . . . . . . . . 58


5.3.1 Discovery Studio Visualization . . . . . . . . . . . . . . . . . . . . 59

5.3.2 Certara SYBYL-X Suite . . . . . . . . . . . . . . . . . . . . . . . . 60

5.3.3 Scigress Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.3.4 ECCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.4 Visualizadores Moleculares com Tecnologias Imersivas . . . . . . . . . . . . 63

5.4.1 IMVSE - An Interactive Molecular Visualization System for Edu-


cation in Immersive Multi-Projection Virtual Environment . . . . . 64

5.4.2 VRDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

5.4.3 Kinimmerse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

5.4.4 Molscript com VR . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4.5 Uma Ferramenta de Visualizao Baseada em Gestos . . . . . . . . 69

5.5 Visualizadores Moleculares com Tecnologias Colaborativas . . . . . . . . . 70

5.5.1 Jmol - Wiki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.5.2 AMMP-Vis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.5.3 Jmol Colaborativo . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.5.4 Distributed Pauling World . . . . . . . . . . . . . . . . . . . . . . . 74

5.5.5 MICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

CAPTULO 6 COMPUTAO DISTRIBUDA E A PLATAFORMA JAMP 76

6.1 Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.2 Object Request Brokers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.3 Corba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.4 Java RMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.5 A Plataforma JAMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

CAPTULO 7 CONSTRUO DA ARQUITETURA: ANLISES PRE-


LIMINARES 85

7.1 O Problema da Comunicao em Tempo Real Via Internet . . . . . . . . . 85


7.2 Anlise do Estado da Arte em Visualizao Molecular . . . . . . . . . . . . 88

7.3 Anlise dos Protocolos de Transporte . . . . . . . . . . . . . . . . . . . . . 92

7.3.1 UDP - User Datagram Protocol . . . . . . . . . . . . . . . . . . . . 92

7.3.2 TCP - Transmission Control Protocol . . . . . . . . . . . . . . . . 92

7.3.3 RTP/RTCP - Realtime Protocol / Realtime Control Protocol . . . 93

7.3.4 SCTP - Stream Control Transmission Protocol . . . . . . . . . . . 94

7.3.5 DCCP - Datagram Congestion Control Protocol . . . . . . . . . . . 95

CAPTULO 8 A ARQUITETURA DESENVOLVIDA 97

8.1 Funcionamento Geral da Arquitetura . . . . . . . . . . . . . . . . . . . . . 97

8.2 Modelo do Ambiente Local . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8.2.1 Jmol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

8.2.2 O Framework Comunicador . . . . . . . . . . . . . . . . . . . . . . 104

8.3 Modelo do Ambiente Imersivo com Multiprojeo . . . . . . . . . . . . . . 104

8.4 Modelo do Ambiente Global . . . . . . . . . . . . . . . . . . . . . . . . . . 105

8.4.1 Escolha dos Protocolos de Transporte . . . . . . . . . . . . . . . . 106

8.4.2 RTEP - O Protocolo de Comunicao entre Servidores . . . . . . . 108

8.4.2.1 O Mecanismo MessageRouting . . . . . . . . . . . . . . . 109

8.4.2.2 O Mecanismo SmartBeat . . . . . . . . . . . . . . . . . . 110

8.4.2.3 O Mecanismo EvPack . . . . . . . . . . . . . . . . . . . . 112

8.4.3 O Sistema Colaborativo . . . . . . . . . . . . . . . . . . . . . . . . 112

8.4.4 Discusso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

CAPTULO 9 TESTES E RESULTADOS 115

9.1 Metodologia de Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

9.1.1 Sincronismo de Tempo . . . . . . . . . . . . . . . . . . . . . . . . . 117

9.1.2 Configurao do Ambiente de Testes . . . . . . . . . . . . . . . . . 118


9.1.3 Variveis Medidas . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

9.1.3.1 Tempo Mdio de Entrega de Evento . . . . . . . . . . . . 120

9.1.3.2 Perda de Eventos . . . . . . . . . . . . . . . . . . . . . . 121

9.1.3.3 Quantidade de Eventos que Chegaram ao Destino em Me-


nos de 100ms . . . . . . . . . . . . . . . . . . . . . . . . . 122

9.1.4 Resultados Obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

9.1.4.1 Resultados para RMI . . . . . . . . . . . . . . . . . . . . 122

9.1.4.2 Resultados para Sockets TCP . . . . . . . . . . . . . . . . 124

9.1.4.3 Resultados para RTEP . . . . . . . . . . . . . . . . . . . 126

9.1.4.4 Anlise e Comparao . . . . . . . . . . . . . . . . . . . . 128

Tempo Mdio de Entrega dos Eventos . . . . . . . . . . . . 128

Perda de Eventos . . . . . . . . . . . . . . . . . . . . . . . . 129

Latncias entre servidores efetivamente enfrentadas durante


os envios de eventos . . . . . . . . . . . . . . . . 129

Quantidade de eventos que chegaram ao destino em menos


de 100ms . . . . . . . . . . . . . . . . . . . . . . 129

CAPTULO 10 CONCLUSES E TRABALHOS FUTUROS 131

10.0.1 Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

10.0.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

REFERNCIAS 134
Captulo 1
Introduo

1.1 Contexto e Motivao

Em qumica medicinal, principal foco dos pesquisadores que utilizaro a arquitetura


descrita neste trabalho, h necessidade de profundo conhecimento em qumica orgnica,
farmacologia, fsica, biologia, medicina e estudos de Docking (1) auxiliados por computa-
dor, tudo ao mesmo tempo. Isso implica na existncia de um ambiente multidisciplinar,
o que quase nunca ocorre num nico departamento, campus ou at mesmo cidade. Por-
tanto, grande a necessidade de criao de um ambiente de colaborao entre grupos de
pesquisa geograficamente dispersos para que esses possam investigar estruturas, proprie-
dades e dinmica moleculares, de maneira gil, sem que necessariamente precisem estar
presencialmente reunidos.

Este trabalho descreve uma arquitetura de alto desempenho criada para viabilizar a
colaborao entre pesquisadores geograficamente dispersos, no contexto de visualizao
molecular. O diferencial dessa arquitetura, quando comparada s demais existentes,
que ela deu importncia aos problemas de comunicao via internet e buscou melhorar a
experincia colaborativa entre usurios conectados por esse meio, de maneira que possam
interagir entre si num mesmo ambiente em tempo compatvel com a aplicao, com a
possibilidade de utilizao do recurso de Realidade Virtual com multiprojeo. Considere,
por exemplo, um usurio com um computador pessoal, monitor comum, mouse e teclado;
ele pode interagir transparentemente com um grupo de pesquisadores que fazem uso de
um ambiente altamente imersivo como uma CAVE (2) localizada em qualquer outro local
do mundo. A arquitetura no limitada a dois grupos apenas; possvel a interao entre
diversos grupos.
1.2 Problemas e Objetivos 17

No se pode ignorar as diversas possibilidades de uso dessa arquitetura na rea edu-


cacional. Tanto local como remotamente ela pode ser utilizada em salas de aulas, labo-
ratrios, empresas, ensino a distncia e outras situaes envolvendo professores e alunos
dispersos geograficamente.

1.2 Problemas e Objetivos

Os sistemas de visualizao molecular disponveis atualmente possuem caractersticas


e funcionalidades interessantes, porm isoladamente. Alguns somente permitem visua-
lizao, outros tm elementos de realidade virtual e poucos oferecem alguma forma de
colaborao entre pesquisadores.

Considerando o assunto colaborao, a situao crtica. Os softwares que oferecem


esse recurso o fazem sem dar a devida ateno aos problemas inerentes comunicao
em tempo real via internet, isto , no so voltados colaborao entre pesquisadores
dispersos geograficamente. Alm disso, nenhum software oferece colaborao entre grupos
de pesquisa (suportam apenas usurios isolados).

Em resumo, no foi encontrado na literarura um sistema que oferea visualizao


interativa com realidade virtual e colaborao entre grupos de pesquisa dispersos geogra-
ficamente.

O objetivo deste trabalho criar um ambiente para suprir essas necessidades com
desempenho compatvel.

1.3 Solues e Contribuies

Para alcanar o objetivo apontado no item anterior, foi projetada uma arquitetura
composta por mltiplos servidores organizados de maneira que cada grupo de pesquisa
conte com um servidor localmente. Portanto, criou-se uma rede de servidores interligados
via internet, que trocam mensagens entre si e com seus respectivos clientes (usu-
rios) para manter o ambiente virtual sincronizado. O sistema foi desenvolvido sobre a
plataforma JAMP (Java Architecture for Multimedia Processing) (3) (4) (5) (6) (7) de
computao distribuda, qual foram feitas atualizaes para comportar tal estrutura.
A infraestrutura de multiprojeo flexvel, isto , pode ter de 1 a 5 telas de projeo
(como em uma Cave (2)), com projeo estereoscpica ou no, cada uma controlada por
um computador; todos eles so sincronizados via JAMP.
1.4 Publicaes 18

Como consequncia, vrias reas do conhecimento, incluindo educao, qumica, fsica,


biologia, farmacologia, computao e outras, podem usufruir das seguintes contribuies
deste trabalho:

Criao de um ambiente imersivo e colaborativo para visualizao molecular por


grupos de pesquisa remotamente dispostos

Desenvolvimento do protocolo de comunicao RTEP (Real Time Event Protocol)


na camada de aplicao do modelo OSI/ISO que busca minimizar os efeitos negativos
do atraso, jitter e/ou baixa vazo naturalmente presentes em redes best-effort como
a internet

Extenso da Plataforma JAMP com a incorporao do RTEP + RTP/RTCP sobre


UDP sua camada de infraestrutura

Desenvolvimento e incorporao JAMP de um Framework denominado Comu-


nicador (item 1.3), que funciona como ponte entre Ambiente Local (item 8.2),
Ambiente Imersivo com Multiprojeo (item 8.3) e Ambiente Global (8.4)

Essa arquitetura tem grande utilidade na rea educacional. Uma primeira aplicao
seria o ensino de qumica num ambiente com multiprojeo. Outro caso seria o
ensino a distncia pela internet com ambientes remotos interconectados.

1.4 Publicaes

Este trabalho gerou as seguintes publicaes at o presente momento:

Francischetti-Corra, Moacyr; Zukerman-Schpector, Julio; Trevelin, Luis C. Ambi-


ente Distribudo Colaborativo para Visualizao de Molculas. In: XIV Reunio da
Sociedade Brasileira de Qumica Terica (SBQT). Poos de Caldas. 2007

Corra,M.F. ; Schpector,J.Z. ; TREVELIN, L. C. ; GUIMARES, M. P. . Ambi-


ente Virtual Imersivo e Colaborativo para Visualizao de Biomolculas. In: XII
Symposium on Virtual and Augmented Reality - SVR 2010, 2010, Natal. Anais do
XII Symposium on Virtual and Augmented Reality. Natal, 2010. p. 1-4

Corra,M.F. ; Schpector,J.Z. ; TREVELIN, L. C. ; GUIMARES, M. P. . Visualiza-


dor Molecular Colaborativo e Imersivo. In: XXXVI - Conferncia Latino-Americana
1.5 Organizao da Tese 19

de Informtica, 2010, Paraguay. XXXVI - Conferncia Latino-Americana de Infor-


mtica. Paraguay, 2010. p. 1-14

Francischetti Corra, Moacyr; Zukerman-Schpector, Julio; Trevelin, Luis C.; Gui-


mares, Marcelo de P. Arquitetura para Minimizao dos Efeitos da Latncia na
Internet em Ambientes Imersivos e Interativos Remotos para Visualizao Molecu-
lar. In: The 7th International Conference on Cooperative Design, Visualization and
Engeneering, Mallorca, Spain. 2010

Corra,M.F. ; Schpector,J.Z. ; TREVELIN, L. C. ; GUIMARES, M. P. . Immersive


Environment for Molecular Visualization to Interaction between Research Groups
Geographically Dispersed. In: ISABEL 2010 - The 3rd International Symposium
on Applied Sciences in Biomedical and Communication Technologies, 2010, Roma.
Isabel 2010 - The 3rd International Symposium on Applied Sciences in Biomedical
and Communication Technologies, 2010. p. 1-5

1.5 Organizao da Tese

O trabalho est dividido em onze captulos assim organizados:

O Captulo 2 apresenta histria, definio e usos da tecnologia de Realidade Virtual.

Os Sistemas de Realidade Virtual Multiusurios Distribudos, seus componentes e


arquiteturas e Trabalho Colaborativo so descritos no Captulo 3.

O Captulo 4 discorre de maneira sucinta sobre biotecnologia farmacutica e os meca-


nismos de ao dos frmacos, em especial a interao frmaco-receptor, alm da impor-
tncia da visualizao interativa de molculas nesse contexto.

Ferramentas de visualizao e modelagem molecular existentes atualmente so abor-


dadas no Captulo 5. As descries das funcionalidades e caractersticas mais importantes
de alguns softwares so mostradas.

No Captulo 6 feita uma introduo ao tema Computao Distribuda e detalhado


o funcionamento da plataforma JAMP.

O Captulo 7 faz anlises do estado da arte sobre visualizao molecular e de alguns


protocolos de transporte.

A descrio completa da arquitetura desenvolvida est no Captulo 8.


1.5 Organizao da Tese 20

Em seguida so mostrados os resultados de testes e comparaes no Captulo 9.

Concluses e sugestes de trabalhos futuros esto no Captulo 10.


Captulo 2
Realidade Virtual

Neste captulo so apresentados os conceitos de Realidade Virtual, sua importncia,


dispositivos de hardware associados e tecnologias de software utilizadas.

2.1 Introduo

Embora haja forte tendncia em representar o mundo real nos sistemas de Realidade
Virtual, na simulao do imaginrio ou de situaes que vo alm dos limites humanos
que a Realidade Virtual se destaca, extrapolando o conceito de tempo e/ou de espao.

Com a Realidade Virtual possvel ver uma reao qumica acontecendo em tempo
confortvel, pode-se manipular uma molcula invisvel a olho nu ou navegar pela galxia
a uma velocidade maior que a da luz. Assim, a Realidade Virtual permite a interao
humana com situaes imaginrias ou com a reproduo fiel de ambientes da vida real,
atravs de dispositivos especficos, como culos especiais, luvas eletrnicas e outros tipos
de sensores e atuadores. A grande vantagem desse tipo de interface est no fato de as ha-
bilidades e conhecimentos intuitivos do usurio poderem ser utilizados para a manipulao
dos objetos virtuais (8).

2.2 Histria da Realidade Virtual

O termo Realidade Virtual (RV) foi cunhado no final da dcada de 1980 por Jaron
Lanier (9), artista e cientista da computao que conseguiu convergir dois conceitos an-
tagnicos em um novo e vibrante conceito, capaz de captar a essncia dessa tecnologia:
a busca pela fuso do real com o virtual. Apesar de parecer um assunto novo ou at
2.2 Histria da Realidade Virtual 22

mesmo do futuro, a realidade virtual teve incio logo aps a Segunda Guerra Mundial,
impulsionada pelas indstrias de simuladores de voo e cinematogrfica. Em 1962 Morton
Heilig criou e patenteou um equipamento denominado Sensorama, ilustrado na Figura 2.1
(10). Ele era utilizado por apenas um espectador, que era exposto a uma combinao de
viso tridimensional, som estreo, vibraes, sensaes de vento e aromas (11).

Figura 2.1: Sensorama

Nessa mesma dcada surgiu o (Head Mounted Display (HMD), um dispositivo posi-
cionado na cabea do usurio com um visor acoplado, utilizado num circuito fechado de
televiso. No demorou a ser criado por Ivan Sutherland o primeiro capacete de visua-
lizao de imagens geradas por computador totalmente funcional (12). Esse sistema era
capaz de exibir 20 cenas por segundo e considerado o precursor da imerso em ambiente
virtual.

O prximo passo foi reproduzir a sensao de pegar ou tocar um objeto virtual.


Com a ajuda de um brao robtico foi possvel simular foras de coliso tridimensionais.
Se o usurio empurrasse uma parede virtual, o brao robtico exercia fora contrria
tridimensional idntica realizada (force feedback).

Na dcada de 1970 foi criada a Realidade Virtual de Projeo, que consiste de uma
cmera de vdeo (responsvel por capturar imagens dos participantes) e projees feitas
numa tela grande em 2D. Cada usurio pode interagir com os outros ou com os objetos
projetados. Seus movimentos so capturados e processados.

Pouco mais tarde a viso estereoscpica foi adicionada ao head mounted display, o que
aumentou consideravelmente a sensao de profundidade que, aliada ao rastreamento dos
movimentos da cabea do utilizador, aumentou a sensao de imerso.

O conceito de 6DOF foi introduzido em 1982 com o simulador de vo Visually Coupled


2.3 Definio de Realidade Virtual 23

Airbone Systems Simulator. 6DOF significa seis graus de liberdade, caracterizado pelos
movimentos de translao e rotao nos 3 eixos cartesianos (x, y e z), conforme ilustra a
Figura 2.2 (11).

Figura 2.2: Os 6 graus de liberdade

Com o passar dos anos, mais equipamentos e tecnologias foram aperfeioados ou


desenvolvidos e agregados realidade virtual, como visores de cristal lquido (LCD),
reconhecimento de voz, sntese de som 3D, dispositivos de (Feedback ttil, luvas de dados
capazes de captar a movimentao e inclinao dos dedos da mo.

A partir da, a RV comeou a ser utilizada nas reas educacional, mdica e comercial,
incluindo a utilizao da CAVE (2), composta por uma pequena sala, cujas paredes,
teto e cho servem para projetar imagens estereoscpicas. Nesse caso, o utilizador fica
completamente imerso nas imagens de alta resoluo.

2.3 Definio de Realidade Virtual

H muitas definies de Realidade Virtual, que variam de acordo com a experin-


cia de cada autor e as diferentes perspectivas sobre determinados conceitos tecnolgicos.
Realidade Virtual uma interface para aplicaes computacionais, na qual o utilizador
faz uso de seus prprios sentidos para visualizar, manipular, explorar e interagir com as
informaes do sistema em tempo real num ambiente tridimensional (13).

Algumas caractersticas fundamentais so necessrias para caracterizar um sistema


de Realidade Virtual: interface de alta qualidade, alta interatividade, imerso, analogia
com o mundo real e adio de aspectos inexistentes no mundo real. A ausncia total de
2.3 Definio de Realidade Virtual 24

um desses itens pode comprometer a classificao do sistema como sendo de Realidade


Virtual, embora no seja necessrio explorar ao mximo todas as caractersticas (14).
Quanto mais o utilizador se sente como parte integrante do mundo virtual, mais imersivo
este . Interao a capacidade de resposta do computador s aes exercidas pelo
utilizador.

possvel, ainda, classificar a Realidade Virtual em Imersiva e No-Imersiva.

No primeiro caso o utilizador tem a sensao de estar dentro do ambiente podendo


contar com alto grau de interao com o meio atravs de dispositivos multissensoriais
(HMD, culos e luvas, por exemplo) que captam as aes e do respostas a ele. Utilizando-
se de dispositivos que reforam as sensaes de tato, calor, fora, peso e viso e som
estreos, o grau de realidade pode ser aumentado. Usando culos estereoscpicos ou
entrando numa CAVE, o usurio, ao mover a cabea para os lados, para cima ou para
baixo, ver todo o cenrio virtual como se estivesse dentro dele.

A Realidade Virtual No-Imersiva caracteriza-se pela presena parcial do utilizador


no ambiente virtual. O usurio no deixa de se sentir dentro do mundo criado, podendo
ainda interagir e comandar aes, mas a sensao de imerso no to rica. Um exemplo
tpico o uso de monitores (independente de uso de culos). Nesse caso, ao desviar o
olhar do monitor, o utilizador perde contato com o mundo virtual.

No se pode julgar qual caso melhor, uma vez que se deve considerar o contexto
em que a avaliao feita. A Realidade Virtual No-Imersiva mais vantajosa quando se
leva em conta: i) os custos reduzidos devido a no haver necessidade de ter uma grande
estrutura apropriada como acontece com as CAVEs; ii) facilidade de uso e consequente
facilidade de disseminao; iii) possvel eliminao do desconforto de se utilizar um culos.

Figura 2.3: RV No Imersiva com Montor


2.3 Definio de Realidade Virtual 25

Figura 2.4: RV Imersiva com HMD

2.3.1 Realidade Aumentada

A Realidade Aumentada (RA) permite que o usurio veja o mundo real com objetos
virtuais superpostos ou combinados com ele. Portanto, a RA suplementa a realidade,
ao invs de substitu-la completamente. Para o usurio, os objetos reais e os virtuais
coexistem no mesmo espao.

A possibilidade de combinar representaes virtuais com o mundo real permite dar


ao usurio informaes adicionais sobre o mundo real que no podem ser obtidas pelos
sentidos humanos. As aplicaes possveis para a RA envolvem, por exemplo, o conserto
de componentes internos de um sistema mecnico, cujas informaes de manuteno so
virtualmente mostradas sobre as peas a serem reparadas. Na medicina, a RA tambm
pode ser bastante til, ao indicar, por exemplo, onde o cirurgio deve fazer a inciso
em um paciente. Os militares tambm tm empregado a RA no intuito de prover
tropa informaes vitais sobre seus arredores. A RA tem, tambm, grande aplicao na
educao e entretenimento (15).

Os componentes mais utilizados em ambiente de RA so os capacetes de RA e os


equipamentos de rastreamento. Os ambientes de RA tambm podem ser executados
em sistemas baseados em monitor ou em projeo, atravs da combinao da imagem
virtual e da imagem real capturada por uma cmera de vdeo. Os capacetes de RA com
tecnologia ptica funcionam atravs da colocao de combinadores pticos na frente dos
olhos do usurio. Esses combinadores so translcidos, de tal maneira que o usurio
consiga enxergar o mundo real atravs dele. Eles tambm so parcialmente reflexivos
para que o usurio possa ver imagens virtuais geradas por sadas de vdeo acopladas ao
2.3 Definio de Realidade Virtual 26

capacete e refletidas nos combinadores. Os capacetes de RA com tecnologia de vdeo


funcionam atravs da combinao de um capacete fechado (como um capacete de RV)
e uma ou duas cmeras de vdeo montadas na cabea do usurio. As cmeras de vdeo
iro prover ao usurio a viso do mundo real. A imagem das cmeras combinada com
o grfico virtual e o resultado enviado para o visor.

2.3.2 Multiprojeo Estereoscpica

Multiprojeo estereoscpica uma forma de aumentar a sensao de imerso num


ambiente de Realidade Virtual. Diversos equipamentos podem ser utilizados para esse
fim, desde vrios monitores comuns at uma CAVE (15).

A estereoscopia baseia-se na ligeira diferena com que cada olho do observador percebe
uma cena. A sobreposio das duas vises feita pelo crebro e isso confere noo de
tridimensionalidade. A estereoscopia pode ser classificada em ativa ou passiva. Ambas
utilizam culos para separar as imagens direcionadas para cada olho do observador.

Na estereoscopia ativa os culos so sincronizados com o(s) projetor(es) ou monitor e


so compostos por lentes capazes de fechar a viso dos olhos; quando uma viso fechada,
a outra aberta, isto , quando projetada a imagem destinada ao olho direito, o projetor
emite um sinal de sincronizao que chega aos culos e este fecha a viso do olho esquerdo,
mantendo aberta a do olho direito (15). Um possvel esquema pode ser visto na figura
2.5 (15).

Figura 2.5: Esquema do sistema para estreo ativo

Na estereoscopia passiva, duas imagens so exibidas simultaneamente e os culos


funcionam como filtros. O estreo anglifo (figura 2.6) (15)) o exemplo mais simples,
no qual so geradas imagens com componentes azul, vermelho e, opcionalmente, verde.
Outra alternativa a filtragem por espectro de cores. Porm, o mtodo mais eficiente
a utilizao de filtros polarizadores, que so instalados nos projetores. Nesse caso,
so utilizados dois projetores para exibir imagens para cada tela, cada um tendo uma
2.4 Elementos de um Sistema de Realidade Virtual 27

lente polarizadora na frente. Essas lentes tm a propriedade de polarizar horizontal ou


verticalmente a luz emitida pelo projetor. Os culos fazem com que o olho esquerdo
veja somente a imagem gerada com polarizao vertical e o direito com a horizontal, ou
vice-versa. Esquema na figura 2.7 (15).

Figura 2.6: Estreo anglifo

Figura 2.7: Esquema do sistema para estreo passivo por polarizador

2.4 Elementos de um Sistema de Realidade Virtual

H uma variedade de configuraes possveis para um sistema computacional voltado


Realidade Virtual. Pode-se utilizar desde computadores pessoais at estaes de tra-
balho com multiprocessamento ou redes de computadores trabalhando como Grids. O
parmetro para dimensionamento adequado do ambiente computacional simples: ele
deve ser capaz de coordenar a visualizao e os sinais de entrada e sada em tempo real
com uma degradao aceitvel. Deve possuir canais de entrada e sada para estabelecer a
interao com o usurio, alm de gerenciar adequadamente o banco de dados do sistema.

O mais importante requisito de um ambiente computacional em Realidade Virtual


so os servios em tempo real, que tm a funo de coordenar os outros componentes e
faz-los se comportar coerentemente.

Um sistema de realidade virtual possui dois componentes bsicos: (hardware (que


2.4 Elementos de um Sistema de Realidade Virtual 28

engloba dispositivos especficos para realidade virtual, processadores e redes) e (software.

2.4.1 Hardware

A funo dos dispositivos para Realidade Virtual melhorar o grau de envolvimento


do usurio com o ambiente virtual. Associados a aspectos cognitivos, eles funcionam como
estmulos tteis, auditivos, visuais, olfativos ou motores.

Processadores so parte importante num ambiente computacional - processadores cen-


trais, processadores de apoio encontrados em placas grficas ou sonoras - podendo apre-
sentar configuraes de processamento paralelo e/ou supercomputadores.

Dispositivos de entrada:

Dispositivos com 2DOF: fceis de utilizar e baratos, como mouse e joystick;

Dispositivos com 6DOF: como j descrito anteriormente, possibilitam 3 movimentos


de rotao e 3 de translao.

Sensores biolgicos: funcionam com comandos de voz ou sinais eltricos musculares,


como um piscar de olhos.

Luvas de dados: reconhecem os movimentos das mos.

Dispositivos de (Tracking: detectam ou rastreiam uma trajetria por meio da dife-


rena de posio relativa a um ponto de referncia.

atravs dos dispositivos de sada que o sistema devolve ao usurio o resultado da


interao:

HMD (head-mounted display: exibe imagens do mundo virtual em duas telas, uma
para cada olho.

(Head-coupled display: caixa suspensa num brao mecnico, contendo dois monitores
para o qual o utilizador olha. Tem a vantagem de no apresentar o desconforto
causado pelo peso do capacete, mas o usurio deve ficar praticamente imvel.

Monitores: no so o tipo de dispositivo ideal para visualizao do mundo virtual e


acabam por descaracterizar a imerso no ambiente. Por outro lado, permitem que
mais de uma pessoa esteja presente no ambiente virtual e no exigem habituao a
equipamentos desconhecidos.
2.4 Elementos de um Sistema de Realidade Virtual 29

Sistemas de multiprojeo: so utilizados projetores que mostram em telas ou pa-


redes diferentes ngulos de viso do ambiente, criando grande sensao de imerso.
H variantes de acordo com a posio dos projetores; pode-se criar uma CAVE ou
uma tela cncava, por exemplo.

Dispositivos auditivos: em alguns ambientes virtuais de grande importncia poder


ouvir o som, o que aumenta consideravelmente a experincia de imerso. Os sistemas
de som 3D so os responsveis por essa tarefa.

Dispositivos tteis: fazem chegar ao usurio as respostas do ambiente a estmulos


de fora, temperatura, textura. Geralmente so instalados juntos aos sensores.

2.4.2 Software

O software de um ambiente computacional para realidade virtual o principal ca-


racterizador do domnio da aplicao, isto , ele que apresenta o motivo da criao
do ambiente virtual (se foi, por exemplo, para visualizao de molculas ou para um
jogo avanado). Ele atua na fase de preparao do sistema, como software de autoria de
ambientes 3D, e na fase de execuo, como suporte a tempo real.

(Softwares de autoria englobam linguagens (como VRML (16), X3D (17), 3DMLW
(18), Collada (19), O3D (20)), bibliotecas grficas (como OpenGL (21), Java 3D (22)),
Toolkits, (como VizX3D, Eon Studio (23)). A programao envolve modelagem 3D,
preparao e manipulao de texturas, manipulao de som, elaborao de animaes e
o que mais for necessrio para o contexto do domnio explorado pela Realidade virtual.

Na parte de suporte a tempo real, o software responsvel pelas funes mais crticas
num ambiente de Realidade Virtual: interao com dispositivos especiais; processamento
da interface com o usurio; tratamento de visualizao e interao.
Captulo 3
Sistemas de Realidade Virtual Multiusurios
Distribudos e Trabalho Colaborativo

Neste captulo so discutidos os principais conceitos envolvidos nos Sistemas de Rea-


lidade Virtual multiusurios, ou Ambientes Virtuais Distribudos. So apresentados
os componentes dos AVDs, as dificuldades encontradas no planejamento desses am-
bientes, arquiteturas de comunicao entre os participantes e algumas arquiteturas
completas para criao de AVDs.

3.1 Ambientes Virtuais Distribudos

Ambientes Virtuais Distribudos so (softwares que criam um ambiente real ou fictcio


atravs do qual vrios usurios podem interagir entre si em tempo real independentemente
de sua real posio geogrfica. Para isso, os AVDs utilizam tcnicas avanadas de sinte-
tizao de udio, comunicao e computao grfica (24).

Num AVD os participantes tm a sensao de compartilhar o mesmo espao e tm


viso muito semelhante desse espao compartilhado, alm de poderem notar as presenas
uns dos outros. Outra caracterstica importante que os participantes devem sentir o
tempo passar da mesma forma.

A comunicao entre os participantes varia desde texto digitado e comunicao por


voz at gestos. Uma das diferenas entre um AVD e outros sistemas de comunicao a
forma de interao entre os participantes. Num AVD os participantes interagem entre si
e com o ambiente.
3.1 Ambientes Virtuais Distribudos 31

3.1.1 Componentes dos AVDs

So quatro os componentes principais de um AVD: sistemas de processamento; re-


des de dados; dispositivos de comunicao e controle; motores grficos e dispositivos de
exibio (25).

O motor grfico transforma as estruturas de dados internas do ambiente em imagens


sintetizadas tridimensionais que so enviadas ao dispositivo de exibio. As APIs grficas
de baixo nvel OpenGL e DirectX so padronizadas. Isso, aliado utilizao de tcnicas
de reduo de informao visual redundante, contribui para a criao de motores grficos
complexos, portveis e eficientes. O dispositivo de exibio mais utilizado o monitor,
embora possam ser empregados, ainda, os dispositivos utilizados em realidade virtual,
como culos especiais, (head-mounted displays com sensores de posicionamento, CAVES.
Vide item 2.4.1 (24).

As formas mais comuns de dispositivos de controle ainda so mouse e teclado. Es-


ses dispositivos so responsveis pela traduo dos movimentos e comandos executados
pelos participantes em informaes que sero tratadas pelo AVD e convertidas em res-
postas correspondentes no ambiente virtual. Existem, tambm, luvas de dados, sensores
de movimentos, microfones, fones de ouvido, que tambm so empregados em realidade
virtual.

Os sistemas de processamento executam tarefas pesadas como analisar os dispositivos


de entrada, verificar se houve comandos ou movimentao do participante local, refletir
essas mudanas nas estruturas internas responsveis pela representao do ambiente, ve-
rificar se essas alteraes afetam participantes remotos, enviar notificaes de mudanas,
receber e calcular mudanas vindas de outros participantes, remover informao tridi-
mensional redundante da cena e acionar o motor grfico (24).

De grande importncia so as redes de dados para os AVDs, pois toda informao que
afete o ambiente virtual deve passar por elas. Elas influenciam dramaticamente na sen-
sao de realidade do AVD, uma vez que redes lentas inviabilizam a sensao de compar-
tilhamento de tempo. Para que o ambiente virtual possa ser sintetizado necessrio que
vrias mquinas participantes mantenham um conjunto de informaes variveis sobre o
ambiente: o conceito de estado compartilhado. Outra tcnica possvel de ser empregada
a regenerao frequente de estado, um modelo de distribuio de informaes no qual
cada entidade do AVD est sob controle de uma mquina participante especfica. Cada
mquina responsvel por enviar periodicamente a todos os participantes informaes
3.1 Ambientes Virtuais Distribudos 32

sobre o estado das entidades sob seu controle. Pode-se utilizar, ainda, o (Dead-Reckoning
que, alm de minimizar a troca de mensagens, suporta atrasos de comunicao, traba-
lhando com a previso da posio de um elemento, levando em conta o seu trajeto, velo-
cidade e posio anterior, decorrido um certo tempo. Todas as mquinas fazem o mesmo
clculo de previso e reposicionam o elemento; aquele que estiver gerenciando o elemento
conseguir verificar a diferena da trajetria real com a trajetria calculada. Sempre que
essa diferena atingir um valor mximo, o valor real da posio ser, ento, comunicado s
outras mquinas para devida correo. Dessa forma, no haver necessidade de informar
continuamente a posio de um elemento para outras mquinas, o que diminuir bastante
a comunicao pela rede (24).

3.1.2 Adversidades Inerentes do Projeto de AVDs

Por serem aplicaes distribudas, grficas e interativas, os AVDs so de grande com-


plexidade e devem ser cuidadosamente projetados para conseguir equilbrio de foras (26),
proporcionando nveis aceitveis de imerso e interatividade.

Qualquer informao de alterao de estado do ambiente deve estar disponvel aos


participantes de um AVD. Quanto mais complexo o ambiente e quanto maior o nmero
de participantes, maior a utilizao de largura de banda, recurso que limitado nas
redes de comunicao. O projeto do AVD deve considerar a quantidade de informaes
que trafegaro pela rede para que os objetivos do AVD sejam alcanados.

A heterogeneidade de recursos de (hardware, (software e velocidade de conexo dos


participantes de AVDs tambm um assunto a ser considerado no projeto, pois um
fator decisivo na sensao de imerso dos participantes.

Devido ao fato de os AVDs serem aplicaes interativas e essencialmente distribu-


das, precisam resolver problemas praticamente em tempo real para manter a iluso de
interatividade, presena e imerso.

Os AVDs so compostos por vrios subsistemas, como de entrada, comunicao, mo-


delagem fsica, coliso e animao. Todos eles requerem extensivamente tempo real. Esse
outro fator que deve ser considerado no projeto do AVD.

O sistema deve ser capaz de lidar com falhas, como resolver situaes em que mquinas
travam, so desligadas ou quando ocorrem erros nas redes de comunicao. Porm, esse
gerenciamento acrescenta mais um fator de carga e atraso nesses ambientes, exigindo,
tambm, um bom projeto do AVD.
3.1 Ambientes Virtuais Distribudos 33

O ltimo fator a considerar a escalabilidade, que normalmente medida atravs da


quantidade de entidades objetos modelados por mquinas diferentes na rede - que fazem
parte do ambiente virtual. Quanto mais participantes ativos, maior a possibilidade de
interao entre entidades, o que gera maior demanda para o sistema (26).

3.1.3 Arquiteturas de Comunicao

A comunicao entre os participantes se d, como dito anteriormente, pela rede de


dados, seja ela local ou pela internet. A organizao lgica da estrutura de comunicao
pode ser feita utilizando arquiteturas cliente-servidor (27), peer-to-peer (28), hbridas ou
Computao Distribuda Orientada a Objetos (3).

A arquitetura cliente-servidor caracteriza-se por ter um ou mais servidores respon-


sveis pela manuteno e organizao das informaes de estado do ambiente virtual,
tornando-se o centro de comunicao entre os participantes. Cada participante comunica-
se apenas com o servidor ao qual est conectado. A propagao das mudanas de estado
do ambiente feita pelos servidores. Essa arquitetura permite, atravs de tcnicas espe-
cficas, economizar largura de banda. Por outro lado, os prprios servidores podem ser o
gargalo do sistema e torn-lo mais lento.

A arquitetura (peer-to-peer no centraliza a organizao; os participantes so capazes


de comunicar-se entre si para manter a coerncia do ambiente virtual. Utilizando a tcnica
de Multicast pode-se diminuir o trfego na rede e economizar banda, embora a grande
maioria dos roteadores no d suporte a esse recurso.

O modelo de Computao Distribuda Orientada a Objetos consiste na disponibiliza-


o de servios e objetos intermediada por um agente (Broker). Exemplos desse modelo
so CORBA (29) e Java RMI (30).

possvel, ainda, combinar os modelos cliente/servidor com o (peer-to-peer, criando


o paradigma hbrido.

Quaisquer dos modelos de comunicao citados seguem as estruturas bsicas de co-


municao, que so Unicast, Broadcast e multicast. Na estrutura unicast, a comunicao
de dados conhecida como um-para-um, sendo realizada somente entre dois Hosts.
Broadcast (difuso) o mecanismo de comunicao de dados conhecido como um-para-
vrios, em que um host envia um dado para todos os outros (hosts da mesma rede lgica
sem conhecer os destinatrios. Multicast o mecanismo de comunicao de dados co-
nhecido como um-para-vrios ou vrios-para-vrios em uma nica operao onde os
3.1 Ambientes Virtuais Distribudos 34

destinatrios so explicitamente especificados (31).

Conforme detalhado no Captulo 7, este trabalho utiliza um paradigma hbrido, uti-


lizando (peer-to-peer, cliente/servidor e Computao Distribuda Orientada a Objetos.

3.1.4 Arquiteturas de Armazenamento de Dados

Outro fator importante em um AVD o armazenamento de dados. A deciso de


onde as informaes sero armazenadas pode afetar os requisitos de comunicao e a
confiabilidade do sistema de maneira geral. Pelos mecanismos atuais, a escolha da forma
de distribuio e armazenamento de dados definida pelo objetivo da aplicao. H
alguns modelos de armazenamento de dados (26):

Banco de Dados Centralizado e Compartilhado: os dados esto centralizados em


uma nica mquina, que atua como servidor, permitindo melhor consistncia do
AVD, uma vez que os clientes mantm somente os dados pertinentes cena em
memria e apenas um usurio pode modificar o banco de dados em um determinado
momento. As desvantagens desse modelo comeam com a limitao do nmero de
participantes no ambiente: quanto maior a quantidade de usurios, maior ser a
dificuldade em manter a consistncia do banco de dados dos objetos em tempo real,
tornando o servidor o gargalo da aplicao;

Banco de Dados Replicados de Mundos Homogneos: cada host conectado aplica-


o possui uma rplica completa dos dados do ambiente, sendo que a consistncia
de todos os mundos alcanada pela utilizao de mecanismos como (Heartbeat
(o (host envia periodicamente mensagens informando o seu estado). A vantagem
desse modelo que as mensagens so relativamente pequenas por serem somente de
atualizao. As desvantagens esto diretamente relacionadas com a inflexibilidade
e o aumento das informaes do ambiente virtual. Assim, todas as informaes do
banco de dados devem estar em todos os (hosts, o que aumenta a possibilidade de
o sistema tornar-se inconsistente medida que o nmero de participantes aumenta;

Banco de Dados Distribudo e Compartilhado com Alteraes Ponto-a-Ponto: cada


(host possui apenas uma parte do ambiente em sua base de dados. Logo de incio
percebe-se que existe um maior nmero de mensagens, mas usa-se a tcnica de
multicast para diminuir o trfego. Esse modelo apropriado para a construo de
ambientes distribudos de larga escala e tem como desvantagem a dificuldade de
3.1 Ambientes Virtuais Distribudos 35

escalabilidade devido ao custo da comunicao associada com a confiabilidade e a


consistncia de dados atravs da rede;

Banco de Dados Distribudo e Compartilhado cliente/Servidor: baseia-se na tcnica


cliente/servidor e no particionamento do banco de dados entre os clientes. Um
agente chamado broker responsvel pelo conhecimento do servidor para manter o
mundo atualizado. Um cliente no precisa saber onde (em qual outro cliente) est
determinada informao ao requisit-la.

3.1.5 Arquiteturas para Construo de AVDs

A seguir so apresentadas as arquiteturas SIMNET (32), NPSNET (33), DIVE (34),


BrickNet (27) e CAVERNsoft (35), bem como uma breve comparao entre elas.

A arquitetura SIMNET (32) foi criada para ser um ambiente distribudo de simulao
de tticas de combate e batalha. O projeto foi baseado em trs caractersticas principais:
arquitetura orientada a eventos de objetos; noo de ns de simulao autnomos; con-
junto de algoritmos de modelagem preditiva conhecidos como (Dead-Reckoning. Todas as
interaes entre as entidades so feitas por notificaes de eventos, descrevendo o estado
instantneo da entidade. Essa arquitetura evoluiu para um padro chamado DIS, sendo
mais genrico e flexvel quanto aos tipos de entidades, alm de permitir um nmero maior
de entidades e efeitos de ambiente.

Naval Postgraduate School Networked Vehicle Simulator, ou NPSNET (33), o pri-


meiro AVD a utilizar o padro DIS e possuir capacidade de multicast. capaz de simular
humanos articulados, objetos invisveis, veculos terrestres, areos e martimos e permite
a incluso de novos modelos de entidades. Utiliza regenerao frequente de estado e
(dead-reckoning.

A arquitetura DIVE (34) foi desenvolvida no Swedish Institute of Computer Science


e tem como objetivo principal suportar ambientes com grande nmero de participantes
e grande sensao de interatividade. Utiliza banco de dados de mundo distribudo entre
os participantes, isto , no existe um servidor central do mundo. DIVE aceita que as
cpias do mundo estejam ligeiramente diferentes e implementa servios para garantir a
consistncia ao longo do tempo. A comunicao entre os participantes feita atravs da
organizao (peer-to-peer.

No Institute of Systems Science da Universidade Nacional de Singapura nasceu a ar-


quitetura BrickNet (27). um (toolkit que permite ao desenvolvedor construir ambientes
3.2 Trabalho Colaborativo 36

virtuais bsicos com a caracterstica de no serem totalmente idnticos aos seus parti-
cipantes. A arquitetura composta por alguns servidores e clientes. De maneira geral
os ambientes virtuais construdos com BrickNet tm algumas caractersticas em comum:
orientados a objeto (os objetos encapsulam suas propriedades grficas, comportamentais
e de comunicao), contedos diferentes do ambiente virtual (cada participante gerencia
seu prprio ambiente virtual e seu conjunto de objetos).

A arquitetura CAVERNsoft (35) tambm um (toolkit. Desenvolvida pelo grupo


CAVERN (CAVE Research Network) formado por empresas e instituies de pesquisa
equipadas com CAVEs e recursos computacionais de alto desempenho. CAVERNsoft
utiliza uma interface chamada IRB ((Information Request Broker) repositrio de dados
persistentes que oferece capacidades bsicas de comunicao e banco de dados. Atravs
dessa interface, a aplicao CAVERNsoft automaticamente cliente e servidora, utilizando
a tcnica hbrida de memria compartilhada e banco de dados distribudo para construo
de AVDs.

As arquiteturas apresentadas so boas ferramentas para construo de Ambientes


Virtuais Distribudos. Entretanto, como ser descrito no Captulo 7, na elaborao deste
trabalho no houve utilizao de uma arquitetura especfica. Foram utilizados alguns
recursos isolados de cada arquitetura, como orientao a eventos de objetos (da SIMNET),
multicast (NPSNET) e conceitos comuns a todas elas j descritos anteriormente neste
Captulo.

Essas plataformas foram desenvolvidas abordando dois aspectos: ambientes virtuais e


interao entre os participantes, elementos obrigatoriamente presentes na proposta desta
tese. Porm, nenhuma delas foi projetada considerando especificamente as necessidades
de interao num ambiente de visualizao molecular, o que requer maior preocupao
com a disperso geogrfica dos grupos de pesquisa possivelmente envolvidos no ambiente,
o que leva ao problema do efeito negativo que a latncia exerce na comunicao. Este
trabalho, portanto, busca minimizar uma caracterstica inerente internet propondo um
protocolo de comunicao orientado a eventos, conforme detalhado no item 8.4.2.

3.2 Trabalho Colaborativo

Trabalho Colaborativo vem se tornando uma realidade cada vez maior no mundo
atual, onde vrias pessoas necessitam interagir entre si estando geograficamente em lugares
diferentes ligados por redes de computadores. O advento da internet, o aprimoramento
3.2 Trabalho Colaborativo 37

das tecnologias de aplicaes multimdia e dos sistemas distribudos, aliado s mudanas


nas formas de trabalho de organizaes e at mesmo ocorridas na sociedade, levam ao
trabalho colaborativo (4).

O termo Trabalho Colaborativo Suportado por Computador (CSCW Computer-


Supported Collaborative Work) define alguns conceitos sobre trabalho colaborativo e/ou
cooperativo com ajuda computacional. CSCW tornou-se uma rea do conhecimento que
rende muita confuso na definio do foco real de interesse. Um bom exemplo disso a
indefinio sobre o real significado da sigla: Trabalho Colaborativo ou Trabalho Coope-
rativo. Alguns autores dizem que, na realidade, os dois termos tm mesmo significado;
outros dizem que trabalho cooperativo exige que o sistema computacional seja organi-
zado na forma de mestre-escravo, isto , um usurio do sistema mestre e os outros so
escravos, enquanto trabalho colaborativo uma maneira verdadeiramente distribuda de
trabalho, onde todos os usurios podem manipular, editar, enfim, alterar de alguma forma
o trabalho simultaneamente (4).

Esta tese no depende de CSCW em si, uma vez que CSCW uma rea interdis-
ciplinar que envolve, entre outras, sociologia e psicologia, que no esto no contexto.
Especificamente na rea de computao, CSCW define diversos conceitos e formas de
desenvolvimento de softwares voltados ao trabalho cooperativo/colaborativo. Porm, a
escolha por utilizar tcnicas de AVDs (veja item 3.1) e no os tipos de sistemas definidos
por CSCW dispensa a discusso desse ltimo.

A seguir so abordados alguns aspectos importantes que devem ser considerados para
o desenvolvimento de aplicaes colaborativas.

3.2.1 Adversidades do Projeto de Aplicaes Colaborativas

Alm das qualidades inerentes a qualquer bom software, como confiabilidade, robustez,
compatibilidade e reusabilidade, as aplicaes colaborativas requerem algo mais.

O ambiente de trabalho colaborativo dinmico, desenvolve-se de acordo com as mu-


danas nos relacionamentos dos indivduos, dos processos de trabalho e das modificaes
do ambiente. Um simples exemplo a entrada e sada de participantes no ambiente.
A escolha do uso de tcnicas de AVDs na implementao da arquitetura descrita neste
trabalho busca suprir essa necessidade.

Outro aspecto importante a considerar a grande troca de informaes entre os


participantes. necessrio que elas sejam armazenadas de forma que a recuperao,
3.2 Trabalho Colaborativo 38

atualizao, acesso e qualquer outra atividade que as envolva possa se dar da maneira mais
eficaz possvel. As aplicaes colaborativas devem ter ferramentas para a manipulao de
textos, grficos, sons, imagens ou animaes. No contexto deste trabalho, esses requisitos
so contemplados com o uso de tcnicas de AVDs.
Captulo 4
A Importncia da Visualizao Molecular
Interativa e Imersiva para a Biotecnologia e
Mecanismos de Ao dos Frmacos

Neste captulo so apresentados alguns conceitos de biotecnologia e, em linhas gerais,


o mecanismo de funcionamento dos frmacos, com especial ateno interao
frmaco-receptor para que se entenda a importncia da visualizao interativa de
molculas aplicada nesse contexto.

4.1 A Biotecnologia

O termo biotecnologia tem sido definido de vrias formas, mas nenhuma delas conse-
gue descrever exatamente seu significado (36). Algumas tentativas so: Qualquer tcnica
utilizada em organismos vivos, ou substncias oriundas deles, para fazer ou modificar um
produto, para melhorar plantas ou animais, ou para desenvolver micro-organismos para
fins especficos United States Congresss Office of Technology Assessment.

Uso integrado de bioqumica, microbiologia e engenharia para determinar aplicaes


tecnolgicas de micro-organismos European Federation of Biotechnology.

Biotecnlogos japoneses definem biotecnologia como uma tecnologia que utiliza fen-
menos biolgicos para copiar e manufaturar vrios tipos de substncias.

Biotecnologia um processo de uso controlado de agentes biolgicos como micro-


organismos ou componentes celulares para uso benfico National Science Foundation.

Conveno sobre Diversidade Biolgica da ONU: Biotecnologia define-se pelo uso de


4.1 A Biotecnologia 40

conhecimentos sobre os processos biolgicos e sobre as propriedades dos seres vivos, com
o fim de resolver problemas e criar produtos de utilidade.

H diversas reas, entre outras, em que a biotecnologia tem papel importante (37):

Todas as civilizaes de que se tm registros histricos utilizavam medicamentos de


origem vegetal ou animal na preveno ou cura de doenas. A grande maioria das substn-
cias utilizadas na medicina moderna so produtos do avano da qumica orgnica sinttica
e, em especial, da biotecnologia, ocorrido mais fortemente aps a segunda guerra mundial.
Atualmente, na rea farmacutica, a biotecnologia tem grande importncia no desenvol-
vimento de novos produtos ou na produo de maneira diferente do que j existe. Muitos
produtos farmacuticos so produzidos pela biotecnologia para preveno e tratamento de
doenas, para diagnsticos, para melhoramento gentico de vegetais e de alguns animais
(37).

Indstrias farmacuticas;

Indstrias alimentcias;

Indstrias qumicas;

Medicina;

Agricultura;

Proteo ambiental;

Controle de poluio;

Purificao de gua;

Tratamento de resduos

Na prtica, biotecnologia uma cincia multidisciplinar, desenvolvida por pessoas das


mais variadas reas do conhecimento, como bioqumica, microbiologia, gentica, biologia
molecular, biologia celular, botnica, cincias da agricultura, virologia, qumica anal-
tica, engenharia biomdica, engenharia qumica, engenharia eletrnica, fsica e cincia da
computao (37).
4.2 Biotecnologia Farmacutica 41

4.2 Biotecnologia Farmacutica

Todas as civilizaes de que se tm registros histricos utilizavam medicamentos de


origem vegetal ou animal na preveno ou cura de doenas. A grande maioria das substn-
cias utilizadas na medicina moderna so produtos do avano da qumica orgnica sinttica
e, em especial, da biotecnologia, ocorrido mais fortemente aps a segunda guerra mundial.
Atualmente, na rea farmacutica, a biotecnologia tem grande importncia no desenvol-
vimento de novos produtos ou na produo de maneira diferente do que j existe. Muitos
produtos farmacuticos so produzidos pela biotecnologia para preveno e tratamento de
doenas, para diagnsticos, para melhoramento gentico de vegetais e de alguns animais
(37).

4.3 A Importncia da Realidade Virtual na Visuali-


zao Molecular

A Realidade Virtual exerce grande impacto na visualizao de molculas ao fornecer


uma interface para explorao visual e interativa de dados, facilitando muito os proces-
sos de investigao e pesquisa. Atravs da representao molecular em um ambiente de
realidade virtual possvel estudar estruturas tridimensionais do DNA, protenas, nano-
estruturas e qualquer outro tipo de molcula. Essa aplicao est voltada para o ensino
nas reas de qumica, biologia, biotecnologia, fsica e reas relacionadas (38).

A visualizao molecular com o emprego e Realidade Virtual tem grande utilidade,


tambm, na busca de novos compostos que podero se tornar frmacos; uma viso en-
volvente e imersiva tem a capacidade de fazer com que pesquisadores tenham (insights e,
porque no dizer, vejam o que no conseguiam ver numa tela simples de computador.
Acrescentando a interao entre pesquisadores no prprio ambiente virtual, ainda que
remotamente distantes, cria-se um mundo fascinante de possibilidades e oportunidades
de novas inferncias sobre cada molcula estudada.

4.4 Mecanismos de Ao dos Frmacos: uma Breve


Introduo

Segundo a OMS (Organizao Mundial da Sade), frmacos so substncias usadas


em organismos para diagnstico, preveno e tratamento de doenas. A descoberta de
4.4 Mecanismos de Ao dos Frmacos: uma Breve Introduo 42

novos frmacos , portanto, de grande importncia para o controle de doenas ou para a


cura delas, e est intimamente ligada a processos biotecnolgicos (39).

A maioria dos frmacos age com base em suas estruturas qumicas e propriedades
fsico-qumicas, a partir da sua interao com os componentes macromoleculares do orga-
nismo. Essas interaes alteram a funo do componente envolvido, produzindo alteraes
bioqumicas e fisiolgicas que caracterizam a resposta ao frmaco. Ao componente do or-
ganismo com o qual o frmaco interage d-se o nome de receptor farmacolgico. Daqui
em diante o termo receptor1 ser usado como referncia a receptor farmacolgico, exceto
em ocasies com indicao contrria.

Para que o frmaco produza seu efeito teraputico ou cientfico, ele deve atuar se-
letivamente sobre determinadas clulas ou tecidos, isto , deve possuir um alto grau de
especificidade de stio de ligao. O mesmo ocorre com as protenas-alvo dos frmacos, que
apresentam elevado grau de especificidade de ligante, reconhecendo precisamente apenas
os ligantes de determinado tipo e ignorando outras molculas (1).

importante citar que algumas drogas, como por exemplo diurticos osmticos, po-
dem no envolver receptores da maneira como estes normalmente so definidos (40).
Porm, o contexto desse trabalho situa-se na interao frmaco-receptor e, por isso,
dada nfase nesse caso.

Receptores podem ser de vrias classes, mas dois tipos predominam (41):

Molculas consideradas como receptores gerais, como enzimas, lipdios e cidos nu-
clicos

Receptores especializados que se desenvolveram especificamente para comunicao


intercelular, como canais inicos e protenas de membrana plasmtica, que detectam
sinais qumicos e iniciam uma resposta celular atravs da ativao dos sinais de
transduo. Sua funo biolgica responder a, principalmente, neurotransmissores
e hormnios. So os alvos primrios da maioria dos frmacos atualmente.Molculas
consideradas como receptores gerais, como enzimas, lipdios e cidos nucleicos;

Quantitativamente, as protenas formam o grupo mais importante de receptores, como


os receptores dos hormnios, dos fatores de crescimento, de transcrio e os neurotrans-
1 Nesta tese, o termo receptor refere-se a receptor farmacolgico. Alguns autores utilizam re-
ceptor para referir-se a qualquer molcula-alvo com a qual o frmaco interage para produzir seu efeito
especfico. Porm, aceitvel considerar receptor como sendo uma classe mais genrica de substncias
s quais molculas se ligam com algum propsito como, por exemplo, receptores de neurotransmissores,
de insulina e outros
4.4 Mecanismos de Ao dos Frmacos: uma Breve Introduo 43

missores, enzimas das vias metablicas, protenas envolvidas nos processos de transporte,
protenas estruturais, protenas de membrana, etc. A Figura 5 mostra algumas prote-
nas de membrana celular agindo como receptores. Protenas so importantes receptores
farmacolgicos porque atuam como receptores de ligantes reguladores endgenos. Alguns
frmacos atuam nesses receptores fisiolgicos e, geralmente, so seletivos porque os recep-
tores fisiolgicos so especializados em reconhecer e responder com grande seletividade s
molculas sinalizadoras especficas. Por outro lado, outros componentes celulares tam-
bm podem ser receptores farmacolgicos, como os cidos nucleicos, especialmente para
frmacos quimioterpicos usados no tratamento de cncer (41).

Figura 4.1: Protenas de membrana agindo como receptores

A maioria das ligaes frmaco-receptor relativamente fraca - ligaes de hidrognio,


foras de Van der Waals ou interaes hidrofbicas, de modo que em certos casos a
velocidade de dissociao pode ser grande. A Figura 4.2 mostra uma classificao das
ligaes qumicas de acordo com suas foras para cada tipo de ligao. Os efeitos causados
na conformao da molcula do receptor permitem classificar as molculas ligantes em
duas principais classes: agonistas e antagonistas.
4.4 Mecanismos de Ao dos Frmacos: uma Breve Introduo 44

Figura 4.2: Diagrama de fora das ligaes qumicas

Os avanos mais recentes no desenvolvimento de novos frmacos, mais efetivos e com


menos efeitos colaterais, tm sido possveis graas ao conhecimento sobre a estrutura
molecular dos receptores moleculares, bem como dos mecanismos envolvidos na ao de
substncias qumicas capazes de modificar funes biolgicas.

O progresso no entendimento da funo do receptor, em termos moleculares, tem


revelado um grande nmero de alvos possveis para o tratamento das mais diversas do-
enas ligadas ao funcionamento anormal do receptor, como, por exemplo, os defeitos nos
receptores do hormnio luteinizante, que levam puberdade precoce.

O importante notar que o alvo de estudo da interao frmaco-receptor se d exa-


tamente no encaixe entre essas molculas. Da a importncia da visualizao molecular,
tanto dos receptores quanto de ligantes. Visualmente possvel analisar stios de ligao e
inferir possveis ligantes com encaixe perfeito. Ao visualizar quais grupos funcionais es-
to no stio de ligao do receptor, pesquisadores experientes podem propor novos ligantes
com base em sua intuio.
Captulo 5
Visualizao Molecular Interativa e
Ferramentas Computacionais Avanadas
para Modelagem Molecular

Neste captulo so apresentados os sistemas disponveis atualmente na rea de visu-


alizao molecular interativa e ferramentas computacionais para modelagem mole-
cular o estado da arte. So trs classes de (softwares:

Sistemas de visualizao molecular;

Sistemas de edio/construo molecular;

Sistemas que incluem visualizao e construo de molculas e ferramentas


avanadas

5.1 Introduo

Em 1965 Cyrus Levinthal (42) criou o primeiro sistema de visualizao molecular inte-
rativo (SVMI). Esse programa permitia a um usurio alterar velocidade de movimentao
e orientao da molcula utilizando um dispositivo primitivo precursor do (track-ball. Era
possvel selecionar itens de menu, escolher um objeto e dar zoom em partes importantes
da molcula.

Daquela poca at os dias atuais, muitos outros sistemas de visualizao molecular in-
terativos foram desenvolvidos, alguns utilizando tecnologias imersivas e/ou colaborativas.
medida que foi surgindo cada avano tecnolgico da computao, este era incorporado
por algum SVMI.

Atualmente as inovaes dos sistemas de visualizao molecular interativos esto vol-


5.2 Visualizadores Moleculares 46

tadas i) interface entre cientistas e o modelo molecular e ii) interface entre o software
e os dados. No primeiro caso, a realidade virtual usada para fazer uma forte ligao
entre o usurio e o modelo molecular (43).

Modelos moleculares materiais, ou fsicos, e computacionais so instrumentos que


auxiliam pesquisadores e o processo de educao em qumica. Os modelos materiais tm
sido usados por 125 anos para representar as leis da fsica que governam a estrutura
e processos qumicos. Atualmente, modelos computacionais e simulaes praticamente
substituram em sua totalidade os modelos materiais como ferramentas essenciais para
o refino e anlise de dados experimentais. possvel investigar estrutura, propriedades
e dinmicas de sistemas moleculares extremamente complexos que incluem milhes ou
bilhes de tomos.

Alm de softwares concebidos para visualizao de molculas, h, ainda, os desti-


nados a modelagem molecular, com duas abordagens gerais: aplicao das teorias da
mecnica quntica e da mecnica molecular. A teoria da mecnica quntica rigorosa
e computacionalmente intensiva. A mecnica molecular aplica a mecnica Newtoniana e
eletrosttica clssica para descrever a base fsica por trs dos modelos moleculares em que
tomos so definidos como pontos de carga com massas associadas. Os mtodos de me-
cnica molecular podem ser aplicados para o clculo de estruturas moleculares estticas
que representam a energia mnima definida pelas distncias atmicas, ngulos de ligao
e ngulos de toro. O processo de modelagem molecular definido pela complexidade
do problema a ser resolvido e pela disponibilidade de recursos computacionais necessrios
para executar essa tarefa.

5.2 Visualizadores Moleculares

Visualizadores Moleculares so programas que leem a estrutura molecular e suas pro-


priedades de arquivos criados por experimentos e/ou teoria, exibindo-os em modelos tri-
dimensionais. possvel visualizar estruturas em diferentes estilos. Os mais comuns so
Ball and stick e Space filling spheres e cartoon. Pode-se interativamente rotacionar a
molcula, aplicar zoom, calcular distncias entre tomos, calcular ngulos, ajustar par-
metros de renderizao, alm de permitir exibio estereoscpica, clculo e exibio de
propriedades moleculares, de interaes eletrostticas, de volumes atmicos e de orbitais
moleculares, dentre outros recursos.

H muitos visualizadores moleculares disponveis atualmente. Os mais conhecidos e


5.2 Visualizadores Moleculares 47

difundidos no meio acadmico so Jmol ( (44), (45)), VMD (46), PyMol (47), Chimera
(48), SwissPDBViewer (49) e RasMol (50). Este ltimo j est obsoleto, tendo sido
substitudo pelo OpenRasMol, este pelo Chime e este pelo Jmol. A tarefa de relacionar
todos os visualizadores sem correr o risco de ignorar algum difcil, mas a maior parte
deles est listada abaixo:

Jmol ( (44), (45))

VRMol (51)

VMD (46)

PyMol (47)

Chimera (48)

SwissPDBViewer (49)

RasMol (50)

BALLView: a tool for research and education in molecular modeling (52)

BioEditor - simplifying macromolecular structure annotation (53)

Symbiosys Chevi (54)

Symys Chime Pro (55)

Cn3D (56)

Dino3D (57)

FPV: Fast Protein Visualization Using Java 3D (58)

Garlic, Free Molecular Visualization Program (59)

iMol Molecular Visualization Program (60)

Molegro Molecular Viewer (61)

MollyCule (62)

MOLMOL: A program for display and analysis of macromolecular structures (63)

MolScript (64)
5.2 Visualizadores Moleculares 48

ZMM (65)

ProCreate (66)

Protein Data Bank Viewer (67)

ProteinShader: illustrative rendering of macromolecules (68)

ProteinShop: A tool for interactive protein manipulation and steering (69)

Qmol: a program for molecular visualization on Windows-based PCs (70)

QuteMol (71)

The Ramachandran Plot Explorer (72)

Raster3D (73)

Santorini A Molecular Viewer (74)

SweetMollyGrace (75)

Unipro UGENE (76)

Vida (77)

ViewMol (78)

Amira Molecular (79)

5.2.1 Jmol

Jmol: an open-source Java viewer for chemical structures in 3D. http://www.jmol.org/


( (44), (45) ) um visualizador escrito em linguagem Java para estruturas qumicas tridi-
mensionais. Sua distribuio gratuita e seu cdigo-fonte aberto. Est disponvel como
Applet (para ser executado em navegador, integrado pgina Web) ou aplicao. Dentre
outras funcionalidades, o Jmol oferece:

Suporte s plataformas Windows, Mac, Linux/Unix;

Suporte a diversos navegadores, incluindo Internet Explorer e Mozilla Firefox;

Apresenta alto desempenho grfico tridimensional sem a necessidade de hardware


especfico;
5.2 Visualizadores Moleculares 49

Compreende os seguintes formatos de arquivos:

CIF/mmCIF (80) - Crystallographic Information File and Macromolecular


Crystallographic Information File, the standards from the International Union
of Crystallography

CML (81) - Chemical Markup Language

CSF - Fujitsu CAChe chemical structure, now Sygress

CTFile - Elsevier MDL chemical table

GAMESS (82) - General Atomic and Molecular Electronic Structure System


output, Gordon Research Group, Iowa State University

Gaussian 94/98/03 output - Gaussian, Inc.

Ghemical

HIN - HyperChem from Hypercube, Inc.

Jaguar - Schrodinger, LLC

MM1GP - Ghemical molecular mechanics

MOL - Elsevier MDL structure

MOLPRO - Molpro output

MOPAC - MOPAC 93/97/2002 output (public domain)

MOPAC 2007 (v.7.101) graphf output (.mgf files) (public domain)

NWCHEM - NWChem output, Pacific Northwest National Laboratory

odydata - Odyssey data, WaveFunction, Inc.

PDB (83) - Protein Data Bank, Research Collaboratory for Structural Bioin-
formatics

QOUT - Q-Chem, Inc.

SDF - Elsevier MDL structure

SHELX - Structural Chemistry Department, University of Gttingen (Ger-


many)

SMOL - Spartan data, Wavefunction, Inc.

xodydata - Odyssey XML data, WaveFunction, Inc.

XYZ+vib - XYZ format files with added vibrational vector information

XYZ-FAH - Folding@home XYZ file


5.2 Visualizadores Moleculares 50

Animaes

Vibraes

Medidas de distncia entre tomos, ngulos entre tomos e ngulo de toro;

Suporte a scripts RasMol/Chime;

Exporta imagens nos formatos jpg, png, ppm, pdf e PovRay.

Seu motor grfico completamente escrito em Java, sem utilizao de Java3D, OpenGL,
DirectX ou qualquer tipo de acelerao por hardware. O mecanismo de renderizao foi
construdo especialmente para exibir molculas, fazendo um timo trabalho ao desenhar
esferas e cilindros. Jmol implementa completamente a tecnologia z-buffer, separando a
representao de cada pixel de maneira que os valores RGB sejam armazenados numa es-
trutura e a profundidade dos pontos armazenada em outra. Durante o ciclo de repintura,
a cena completa renderizada na primeira estrutura; ento, a cena desenhada como
imagem numa simples operao (Figura 5.1).
5.2 Visualizadores Moleculares 51

(a) A (b) B

(c) C (d) D

(e) E (f) F

Figura 5.1: Exemplos de visualizao com Jmol

Jmol no faz nenhuma alocao de pilha de memria durante o ciclo de repintura


para otimizar performance. Caso contrrio, uma lentido aconteceria no momento de
dispensar a memria alocada: quando o mecanismo de limpeza ((Garbage collector)
fosse executado automaticamente para limpar a memria, pausas indesejveis ocorreriam
no sistema at que a carga imposta pela operao terminasse. Para solucionar o problema,
os objetos alocados so dispensados imediatamente aps seu uso.
5.2 Visualizadores Moleculares 52

5.2.2 VRMol

Este sistema (51) utiliza conceitos de realidade virtual e sistemas distribudos na cria-
o de um ambiente virtual distribudo para visualizao de protenas. Foi implementado
com a linguagem Java, incluindo as APIs Java 3D e Java RMI, visando permitir que
diversos pesquisadores troquem informaes de uma maneira rpida e eficiente.

Foram desenvolvidos uma interface grfica com Java 3D e um conjunto de mtodos


para troca de mensagens de acordo com o modelo de comunicao cliente/servidor, com
Java RMI. Alm disso, o sistema permite a utilizao de alguns dispositivos de entrada
no convencionais, como joystick e luvas.

5.2.3 ChemAxon Marvin Space

Marvin Space (84) faz parte da sute de aplicativos Marvin, criada pela ChemAxon,
empresa especializada no desenvolvimento de softwares para a indstria farmacutica e
de biotecnologia (Figura 5.2).
5.2 Visualizadores Moleculares 53

Figura 5.2: Exemplos de visualizao com MarvinSpace

O software foi desenvolvido na linguagem Java, o que permite sua utilizao em qual-
quer sistema operacional compatvel com essa tecnologia. Caracteriza-se por proporcionar
ao usurio:

Visualizao em 3D de qualquer molcula;

Possibilidade de rotao em qualquer um dos trs eixos;

Recurso de zoom;

Medio de distncia entre tomos;

Manipulao de complexos muito grandes;

Possibilidade de ocultar determinados grupos da estrutura que no tm grande


importncia para estudo;
5.2 Visualizadores Moleculares 54

Recurso de exibio de vrias janelas de visualizao. Cada janela pode exibir uma
estrutura diferente;

Definio de rtulos para qualquer elemento visvel; podem ser coloridos para faci-
litar a identificao;

Exibio da superfcie da molcula de maneira completa ou simplificada (para me-


lhorar o desempenho)

5.2.4 VMD

(46)Software grtis, cujos exemplos de visualizao podem ser vistos na Figura 5.3,
e de cdigo aberto que se prope a resolver desafios na rea de visualizao molecular,
incluindo:

Interao direta com aplicativos de dinmica molecular para que possa exibir os
resultados obtidos por eles;

Uso de dispositivos imersivos tridimensionais, como projeo estreo em tela grande;

Interface do usurio controlada pelo mouse ou por texto;

Exibio de molculas em vrios estilos de visualizao, de acordo com a escolha do


usurio;

Exportao da visualizao em imagens estticas de alta qualidade.


5.2 Visualizadores Moleculares 55

Figura 5.3: Exemplos de visualizao com VMD

Foi utilizada a linguagem C++ para o desenvolvimento do VMD baseado no pa-


radigma de programao orientada a objeto. Requer OpenGL para renderizar grficos
tridimensionais.

5.2.5 PyMol

Este software apresenta basicamente os mesmos recursos de todos os outros programas


j citados. desenvolvido utilizando a linguagem Python, o que complica um pouco sua
instalao devido necessidade de instalao de vrias bibliotecas no computador do
usurio; faz uso de OpenGL e apresenta grficos excepcionais, tanto que muito utilizado
por revistas para estampar em suas capas imagens de molculas muito bem produzidas
(Figura 5.4).
5.2 Visualizadores Moleculares 56

Figura 5.4: Exemplos de visualizao com PyMol

5.2.6 Chimera

Software de uso livre para a comunidade acadmica ou para entidades sem fins lu-
crativos. composto por um ncleo dividido em duas camadas (a primeira escrita em
C++ e a segunda em Python), que oferece servios bsicos de visualizao (transparn-
cia, ball-and-stick, space-filling, solid surface) e por extenses (tambm escritas em C++
ou Python) para aumentar suas funcionalidades. Aceita comandos por mouse e teclado
(interface grfica) ou por texto atravs de comandos (Figura 5.5).
5.2 Visualizadores Moleculares 57

Figura 5.5: Exemplos de visualizao com Chimera

Merece especial destaque o mdulo colaborativo. Ele possibilita que vrios pesqui-
sadores compartilhem a sesso de modelagem molecular em tempo real. Esse mdulo
trabalha em baixo nvel, transmitindo pequenas mensagens (atravs de CORBA (Com-
mom Object Request Broker Architecture) (29)) que descrevem apenas os dados que foram
modificados. utilizada arquitetura em estrela, em que, por definio, um computador
central conectado a vrios nodos (usurios executando o software).
5.3 Editores/Construtores de Molculas 58

5.2.7 SwissPDBViewer

SwissPDBViewer uma interface com o usurio para o servidor Swiss-Model (um


sistema para modelagem molecular comparativa, sem interface com o usurio) (Figura
5.6).

Foi concebido para maximizar a interatividade. Permite navegar pelas estruturas


proteicas, com facilidade de alternar entre partes selecionadas da molcula, alm de medir
distncias e ngulos entre tomos.

Figura 5.6: Exemplos de visualizao com SwissPDBViewer

5.3 Editores/Construtores de Molculas

Construtores moleculares incluem todas as funcionalidades dos visualizadores. Adici-


onalmente, possuem recursos de construo interativa de molculas. Geralmente o usurio
seleciona tomos, grupos funcionais e fragmentos moleculares em um menu e os posiciona
em local desejado na tela. Os parmetros geomtricos como ngulos e distncias entre
tomos so configurados pelo usurio ou atribudos pelo software a partir de parmetros
padro.

Alguns exemplos dessa classe de software so:

Discovery Studio Visualization (85)


5.3 Editores/Construtores de Molculas 59

Certara SYBYL-X Suite (86)

Scigress Explorer (87)

ECCE (88)

ArgusLab (89)

ChemCraft (90)

ChemBioDraw (91)

GABEDIT: A Graphical User Interface for Gamess-US, Gaussian, Molcas, Molpro,


MPQC and Q-Chem computational chemistry

packages (92)

Ghemical (93)

gOpenMol (94)

Jamberoo Cross-Platform Molecular Editor (95)

Yasara (96)

Ascalaph (97)

Prochemist (98)

Merecem destaque: DS Visualization, SYBYL-X Suite, Scigress Explorer e ECCE,


cujas descries so dadas a seguir.

5.3.1 Discovery Studio Visualization

DS Visualization um componente da sute de aplicativos Discovery Studio, desen-


volvida pela empresa Accelrys. O software permite visualizao simultnea de dados
(estruturas 3D, sequncias, grficos, tabelas), oferece o recurso de construo e edio
de estruturas e anlises de funcionalidades. Tem renderizao grfica de alta qualidade.
Possui muitas opes configurveis para ajustar a forma como as informaes so vistas
na tela (Figura 5.7).
5.3 Editores/Construtores de Molculas 60

Figura 5.7: Tela do Discovery Studio Visualization

5.3.2 Certara SYBYL-X Suite

SYBYL-X Suite (86) um software comercial concebido para modelagem molecular.


Seu propsito melhorar o trabalho de descobrimento de novos frmacos e tomada de
deciso para qumicos e modeladores moleculares. Sua estrutura dividida em mdulos,
como apresentado na Figura 5.8
5.3 Editores/Construtores de Molculas 61

Figura 5.8: Estrutura de mdulos do SYBYL-X Suite

Sybyl uma sute de aplicativos. O mdulo Base fornece recursos como construo,
edio e visualizao de pequenas e grandes molculas.

5.3.3 Scigress Explorer

Scigress (87) um pacote de modelagem grfica equipado com diversos recursos que
auxiliam a diminuir o tempo necessrio descoberta de compostos teis. Assim como o
Sybyl, o Scigress tambm um software proprietrio.

Em um de seus mdulos, oferece organizao molecular em forma de tabela, pare-


cida com uma planilha, onde possvel visualizar todas as propriedades da molcula em
estudo; trabalha com molculas e colees ou bibliotecas de molculas com a finalidade
de entender porque suas propriedades diferem e como essas diferenas esto relacionadas
a caractersticas estruturais. Faz clculos automaticamente (incluindo QSAR) e permite
que computaes com alto grau de complexidade sejam realizadas no servidor BioServer
da Fujitsu.

No mdulo de modelagem proteica, a construo facilitada pela edio de sequncias,


insero e mutao, com exibio tridimensional automtica. possvel fazer (docking
manual ou automtico.

O software tambm prediz estabilidade de polmeros, e possui a interessante capa-


5.3 Editores/Construtores de Molculas 62

cidade de prever o impacto ambiental de novos agrotxicos, com anlise de poluio do


meio antes mesmo que os poluentes tenham sido sintetizados.

5.3.4 ECCE

ECCE (85) composto por aplicaes cliente/servidor distribudas baseadas em Unix.


O ambiente permite que cientistas utilizem transparentemente software de modelagem
complexo acessando, de seus PCs, recursos computacionais de alto desempenho. Apre-
senta as seguintes caractersticas:

Suporte para construo de modelos moleculares

Manipulao tridimensional direta

Operaes de construo simtricas e reconhecimento simtrico

Interface com tabela peridica

Manipulao e preparao de grandes sistemas moleculares para clculos de


dinmica molecular

Importa e exporta estruturas em vrios formatos

Bibliotecas de estruturas moleculares criadas pelo usurio mantidas em banco


de dados

Aproximadamente 7000 estruturas contidas na Biblioteca de estruturas, in-


cluindo conjuntos completos de aminocidos, DNA e RNA.

Submisso remota de clculos para estaes Unix e Linux, Clusters Linux e super-
computadores. Sistemas de gerenciamento de filas suportados:

LSF

PBS

NQE/NQS

LoadLeveler

Maui Scheduler.

Comunicao remota suportada pelos seguintes protocolos:

ssh/scp

telnet/ftp
5.4 Visualizadores Moleculares com Tecnologias Imersivas 63

rsh/rcp

Globus.

Nenhuma instalao alm do cdigo computacional e do script escrito em linguagem


Perl so necessrios nos servidores remotos.

5.4 Visualizadores Moleculares com Tecnologias Imer-


sivas

Obviamente no possvel enxergar uma molcula a olho nu, mas mesmo quando
observada na tela de um computador, a geometria tridimensional complexa e irregular
das grandes biomolculas de difcil compreenso visual. Para melhor entendimento
emprega-se a realidade virtual que, por sua vez, faz uso de tcnicas imersivas para criar a
sensao de o usurio fazer parte da molcula, apresentando ideias abstratas de maneira
intuitiva, como descrito no Captulo 2.

Sistemas de visualizao interativos no-imersivos implementados para um computa-


dor pessoal com interao via mouse so eficazes somente para problemas pouco comple-
xos. A Realidade virtual proporciona um rico conjunto de efeitos espaciais e profundidade
(tridimensionalidade) com interatividade, permitindo que as propriedades moleculares se-
jam minuciosamente exploradas.

A combinao de visualizao e de dinmica molecular muito comum e encontrada


na maior parte do estado-da-arte das configuraes de realidade virtual imersivas no
domnio da qumica. A lgica que estes sistemas permitem que os cientistas moleculares
tenham uma experincia visual de um sistema qumico. Como resultado, os cientistas
esto imersos em uma representao realista de um sistema qumico. A maioria dos
ambientes tradicionais de modelagem molecular limitada informao qualitativa, que
obtida a partir de modelos 3D estticos. No entanto, um entendimento completo das
interaes moleculares requer o conhecimento das caractersticas dinmicas e estticas de
sistemas moleculares.
5.4 Visualizadores Moleculares com Tecnologias Imersivas 64

5.4.1 IMVSE - An Interactive Molecular Visualization System


for Education in Immersive Multi-Projection Virtual En-
vironment

Um trabalho patrocinado pela National Natural Science Foundation of China desen-


volveu um sistema (99) de visualizao molecular interativa com propsito educacional
(para estudantes dos ensinos mdio e superior) baseado num sistema de multiprojeo
imersiva desenvolvido pelos mesmos autores no qual foi utilizado um dispositivo de in-
terao 6DOF. Esse sistema composto por uma tela hbrida (tela central plana e na
viso perifrica uma tela curvada garante viso ampla, o que ajuda muito na sensao de
imerso), multiprojetores e um (cluster de PCs. Cada projetor ligado a um PC, que
gera a imagem correspondente a determinada rea da tela hbrida. A cena dividida em
16 reas perifricas, cada uma processada por um computador e exibida por um projetor.
Fato semelhante ocorre com a projeo na rea central da tela; a diferena aqui que
so usados 16 computadores para 8 reas, obtendo viso estereoscpica. At dez pessoas
podem participar da experincia de visualizao imersiva, mas apenas uma delas tem o
controle do dispositivo de interao. O sistema exibe molculas descritas em arquivos
com formato PDB (Figuras 5.9, 5.10, 5.11 e 5.12).

Figura 5.9: Visao superior do Sistema Chines


5.4 Visualizadores Moleculares com Tecnologias Imersivas 65

Figura 5.10: Configurao do sistema patrocinado pela National Natural Science


Foundation of China

Figura 5.11: Viso Lateral do Sistema Chins


5.4 Visualizadores Moleculares com Tecnologias Imersivas 66

Figura 5.12: Dispositivo de Interao 6DOF

5.4.2 VRDD

Em 1999, Anderson e Weng, da Universidade de Boston, desenvolveram o programa


de (docking interativo VRDD (100) utilizando realidade virtual com exibio tridimen-
sional em ambiente imersivo, permitindo ao usurio executar interativamente o (docking
molecular auxiliado por docking automtico. O sistema oferece (feedback visual e auditivo
durante o (docking, indicando os nveis de sobreposio de tomos e energia da interao.
O ambiente audiovisual mergulha o usurio na cena, estimulando ao mximo sua intui-
o. O hardware utilizado um Pyramid Systems Immersadesk (101). A cena projetada
numa tela de 122cm x 152cm. Emissores CrystalEyes (102) e culos estreo so utilizados
para visualizao. As posies e orientaes da cabea e de um pequeno basto segurado
pelo usurio so monitoradas pelo computador (Figura 5.13).
5.4 Visualizadores Moleculares com Tecnologias Imersivas 67

Figura 5.13: Imagem gerada pelo sistema de Anderson e Weng

5.4.3 Kinimmerse

O projeto KinImmerse, iniciado em 2008 para visualizao molecular imersiva, utiliza


o DiVE (103) (Duke Immersive Virtual Environment) um sistema de realidade virtual
completamente imersivo, contendo 6 lados de aproximadamente 2,9m x 2,9m x 2,9m, no
qual as paredes so telas flexveis pretas com molduras de madeira e acrlico e podem
ser removidas para eventuais trocas, conforme ilustrado na Figura 5.14. As imagens so
geradas por 6 projetores (um para cada lado do ambiente com viso estreo e resoluo
1056x1056). utilizado um conjunto de 7 computadores, sendo um computador central
e outros 6 ligados a cada um dos projetores, todos ligados por uma rede ethernet de 1Gi-
gabit. A viso estereoscpica possvel atravs do sistema CrystalEyes (102), incluindo
um sensor de posio e direo instalado na cabea do usurio. O programa utiliza o
toolkit Syzygy (104) como base para desenvolvimento de aplicativo de realidade virtual
para (cluster de computadores.
5.4 Visualizadores Moleculares com Tecnologias Imersivas 68

Figura 5.14: Configurao fsica do DiVE

5.4.4 Molscript com VR

Moritz e colaboradores realizaram um estudo (105) em 2004 para comparar estrutu-


ras moleculares e demonstraram que as ferramentas de navegao interativas e a viso
estereoscpica em um ambiente virtual adicionaram uma nova qualidade para anlise de
protenas estruturais. Por inspeo visual de uma molcula grande, o grupo foi capaz de
detectar caractersticas que foram reveladas num ambiente dinmico, imersivo e tridimen-
sional, impossveis de serem vistas numa representao 2D. Foi um indicador para o fato
de que uma anlise funcional pode ser executada muito mais facilmente num ambiente
virtual do que em projees 2D (Figura 5.15).
5.4 Visualizadores Moleculares com Tecnologias Imersivas 69

Figura 5.15: Viso obtida com o sistema de Moritz

O prottipo usou como base o software MolScript (64), melhorando algumas carac-
tersticas. Tornou possvel a explorao de at quatro estruturas moleculares complexas
num ambiente virtual como uma CAVE (15). Foram adicionados recursos como nave-
gao interativa utilizando um controlador parecido com um pequeno basto 6DOF, um
sensor eletromagntico para monitoramento de posio da cabea e mo do usurio e viso
estereoscpica.

5.4.5 Uma Ferramenta de Visualizao Baseada em Gestos

Ainda em 2004, Kim ET AL desenvolveram uma ferramenta (106) baseada em gestos


utilizando realidade virtual para (docking molecular com objetivo de empregar a intuio
humana, aliada interface tridimensional interativa, para otimizar o processo de busca em
(docking. Esse sistema foi projetado para exibir imagens estereoscpicas em tela grande e
encorajar pesquisadores a utilizar gestos das mos e braos para manipular, aplicar zoom,
rotacionar, combinar e separar modelos moleculares de maneira mais natural. Os dispo-
sitivos utilizados foram luvas de dados, (head-mounted display e sensores de movimento e
posio (Figure 5.16.
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 70

Figura 5.16: Exemplos de gestos (A e B) e tracking devices (C)

5.5 Visualizadores Moleculares com Tecnologias Co-


laborativas

5.5.1 Jmol - Wiki

Um sistema assncrono de visualizao colaborativa (107) foi desenvolvido em 2007.


Ele combina a visualizao molecular com um sistema wiki1 . A forma de (applet do
software Jmol foi utilizada para visualizao (Figura 5.17), enquanto que o sistema wiki
ficou sob responsabilidade do JSPWiki (108). A mecnica de uso do sistema a seguinte:

1. Um cientista cria uma entrada wiki no sistema contendo uma molcula e um texto
descritivo no qual so incorporados comandos do Jmol ligados a botes;

2. Com o documento criado, Jmol usado diretamente para interagir com os dados gra-
vados, exibindo a molcula e respondendo a comandos do mouse sobre a imagem. Ao
clicar com o boto direito do mouse, todos os recursos do Jmol so disponibilizados
1 Sistema em formato de site web no qual as pessoas podem colaborar e construir juntas um contedo
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 71

por meio de um menu suspenso. Alternativamente, o pesquisador pode selecionar


algum boto no texto descritivo (atrelado a um (script) para que o Jmol apresente
exatamente o que foi pedido;

3. Em algum momento um segundo usurio acessa a pgina criada pelo primeiro ci-
entista. Ele pode, por exemplo, inserir um novo (script diretamente no Jmol. Ele
pode criar um comentrio, editar a pgina para incluir o novo (script ou somente
baixar para seu computador o arquivo que define a molcula;

4. Ao longo do tempo, cada cientista pode revisar o histrico do documento, com suas
vrias verses.

Figura 5.17: Wiki de visualizao molecular

5.5.2 AMMP-Vis

Chastine et al (109) descreveu um ambiente virtual AMMP-Vis cuja finalidade era


criar uma forma imersiva para visualizao molecular dando nfase colaborao com
mltiplas visualizaes. Nesse sistema os usurios so capazes de visualizar estruturas mo-
leculares complexas em tempo real, de criar suas prprias visualizaes ou compartilh-las
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 72

com outros no sistema. A interao e manipulao so feitas atravs de gestos das mos.
Cada usurio pode criar sua prpria rea de interesse definindo uma caixa delimitadora;
objetos fora dessa rea so obscurecidos de forma a deixar enfatizada apenas a seleo.
Essa rea visvel aos outros participantes. Alm disso, o ambiente integrado a um
software de simulao de dinmica molecular chamado AMMP. O sistema composto
por um servidor AMMP ( responsvel pela mecnica molecular do sistema, mantm o
estado atual da molcula e recebe/transmite as atualizaes de cada cliente), um servidor
de orientao (monitora os dados do cliente, incluindo localizao e orientao, sua rea
de foco, escala e informaes de rastreamento da mo) e um servidor de comunicao.
Cada cliente se comunica com os servidores atravs de soquetes UDP e TCP. A interao
entre usurios feita pelo Skype (110). O sistema flexvel, permitindo uso de luvas e
(head-mounted display ou de apenas um monitor simples com manipulao via teclado e
mouse. Usurios podem entrar, sair e retornar ao sistema quando desejarem, voltando ao
mesmo estado de quando deixaram o ambiente (Figuras 5.18 e 5.19).

Figura 5.18: rea de foco no AMMP-Vis

Esse sistema apresenta limitaes. Uma delas a escalabilidade da rede. Conforme as


informaes de orientao da molcula se alteram, as atualizaes devem ser espalhadas
para os clientes. Nota-se uma queda de (frame rate quando se trabalha com molculas
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 73

grandes, embora no se saiba se o gargalo do sistema a rede (por causa do grande nmero
de atualizaes), a placa grfica (devido ao grande nmero de polgonos do modelo) ou o
servidor AMMP (por causa das interaes entre tantos tomos).

Figura 5.19: Esquema do AMMP-Vis

5.5.3 Jmol Colaborativo

Em 2003, o software Jmol foi adaptado para uso colaborativo utilizando a API ((ap-
plication program interface) JXTA (111). Esse sistema (112) baseou-se na interceptao
e transmisso de eventos do Jmol a outros usurios por uma rede (peer-to-peer formada
com o auxlio de JXTA. Porm, como no fazia parte do escopo do trabalho, no houve
preocupao com o desempenho devido complexidade que a comunicao representa,
especialmente no tocante latncia da rede (no caso, internet) (Figura 5.20).
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 74

Figura 5.20: Jmol Colaborativo buscando novos pares

5.5.4 Distributed Pauling World

Um outro exemplo de visualizao molecular colaborativa o software Distributed


PaulingWorld (113), criado em 2000. Ele utiliza uma bancada com um dispositivo de
rastreamento chamado Polhemus Fastrack (Figura 5.21).

Figura 5.21: Bancada e Polhemus Fastrack utilizados no Distributed PaulingWorld

O sistema foi desenvolvido com o (toolkit VrTool. Cada usurio tem seu prprio ponto
5.5 Visualizadores Moleculares com Tecnologias Colaborativas 75

de vista, mas este pode ser sincronizado com todos os outros utilizadores pelo operador
principal, permitindo haver discusso sobre a mesma viso. Esse software permite apenas
2 usurios simultaneamente no ambiente virtual, embora os autores digam que a nica
limitao terica para o nmero de usurios seria a largura de banda da rede.

5.5.5 MICE

O projeto MICE (Molecular Interactive Collaborative Environment) (114) foi, talvez,


a primeira tentativa de promover colaborao online na visualizao molecular. O ponto
principal do projeto um mecanismo pelo qual os mltiplos observadores podem ver e
manipular uma cena molecular (uma representao VRML de uma estrutura) e, atravs
de um servidor intermedirio, distribuir a cena e ponto de viso de um usurio para outros
espectadores em uma rede. A criao de uma estrutura para a visualizao colaborativa
no MICE um processo simples dividido em duas fases: Primeiro, o contedo da cena
molecular deve ser carregado em um visualizador MICE. A cena (um arquivo VRML)
pode estar em qualquer mquina local de algum usurio ou em um site remoto ou, ainda,
ser gerada online utilizando o Molecular Scene Generator (MSG) a partir de um arquivo
PDB carregado para o servidor MSG. Depois que o usurio tenha carregado uma cena
molecular em seu visualizador MICE local, ele pode optar por distribuir a cena para
outros usurios. Cada aplicao MICE pode trivialmente se conectar ao servidor de
colaborao e publicar o contedo de sua cena e seu ponto de vista atual. Atravs do
servio de colaborao, outros usurios podem se conectar a essa sesso e ver a cena
em tempo real. O controle da cena pode ser passada para qualquer usurio conectado, e
os usurios podem sair e entrar na sesso a qualquer momento.
Captulo 6
Computao Distribuda e a Plataforma
JAMP

Uma aplicao distribuda aquela na qual os componentes de software residem em


mais de um computador numa rede, podendo esta ser heterognea ou no. Essa definio
importante para o entendimento de vrios conceitos apresentados neste e nos prximos
captulos (115).

A evoluo da computao distribuda passou por 3 fases distintas (4):

1. Sistemas monolticos ou centralizados: caracterizado pela existncia de computado-


res de grande porte (mainframes), onde todos os programas e dados eram fortemente
interdependentes, o que tornava muito difcil a modelagem e a reutilizao dos cdi-
gos e das informaes corporativas. No existia a possibilidade de se compartilhar
dados com outros sistemas de hardware e software, exceto os pertencentes quele
prprio mainframe;

2. Arquitetura cliente/servidor: era possvel modelar as informaes e criar repositrios


de dados, passveis de serem acessados por mltiplos programas, simplificando o
desenvolvimento e a manuteno de sistemas mais complexos, isto , as aplicaes
podiam ser particionadas ou divididas em componentes do lado cliente, os quais
implementavam a lgica de apresentao e continham grande parte da lgica de
negcio, e componentes do lado servidor, contendo a lgica de negcio. uma
estrutura verstil, modular e baseada em mensagens que se destina a melhorar
a flexibilidade, a interoperabilidade e a escalabilidade quando comparada com a
computao centralizada dos mainframes. Um cliente definido como solicitador de
servios e um servidor definido como fornecedor. Porm, a reutilizao de cdigo
6.1 Middleware 77

ainda era difcil;

3. Objetos distribudos: a unio da orientao a objetos com sistemas distribudos


originou a rea de objetos distribudos. A base para esse modelo o conceito funda-
mental de objetos, que so definidos como entidades que possuem comportamentos
especficos e atributos, fornecendo uma maneira simples de combin-los. Os atribu-
tos permitem que se recuperem ou definam dados para um objeto, que podem conter
operaes e invocaes. Uma operao identifica uma ao que pode ser executada
em um objeto, dado um conjunto especificado de argumentos. Os objetos podem
ser clientes, servidores ou ambos.

6.1 Middleware

(Middleware uma interface de programao de fcil utilizao que se localiza entre


a aplicao e os recursos que ela necessita. Ele prov acesso transparente para sistemas
e servios sem exigir do programador o conhecimento de como os sistemas so e onde
eles esto. A camada de (middleware pode encontrar o sistema utilizando algum tipo de
servio, invocar um processo remoto e retornar uma resposta para o processo requisitante
(5).

Os middlewares podem ser classificados em quatro categorias:

1. Transaction Processing Monitors: controlam aplicaes de transaes e executam


computaes de negcios e atualizaes em bancos de dados;

2. Remote Procedure Calls: permitem que clientes em uma aplicao chamem funes
para acessar servidores em sistemas remotos;

3. Message Oriented Middlewares: residem em ambas as partes de uma arquitetura


cliente/servidor e suportam chamadas assncronas entre as aplicaes;

4. Object Request Broquers: permitem que objetos que compem uma aplicao sejam
distribudos em redes heterogneas.

6.2 Object Request Brokers

Object Request Broker (ORB) uma tecnologia que gerencia a comunicao e a troca
de dados entre objetos, provendo interoperabilidade em sistemas de objetos distribudo
6.3 Corba 78

(6).

ORB permite a comunicao de objetos entre diferentes mquinas, diferentes softwa-


res e diferentes fornecedores, provendo um diretrio de servios que auxilia o processo de
busca por servios, fornecendo transparncia de localidade, isto , faz com que o objeto
requisitado parea ser local para o cliente, mesmo que ele se localize em um processo ou
mquina diferente. Um ORB permite aos objetos esconder seus detalhes de implementa-
o de seus clientes. Ele age como um intermedirio para as requisies que os clientes
enviam para os servidores, alm de ser responsvel por todos os mecanismos necessrios
para encontrar a implementao de um objeto, preparar a implementao para receber
requisies e comunicar os dados nas requisies. Ele tambm utiliza as informaes das
requisies para determinar a melhor implementao que satisfaa o pedido.

Os principais padres para computao distribuda que utilizam a tecnologia ORB


so:

Common Object Request Broker Architecture (CORBA) (116);

Java Remote Method Invocation (Java RMI) (117).

A plataforma JAMP utiliza RMI em sua implementao, pois nativa do Java e apre-
senta a vantagem de possibilitar a passagem de qualquer tipo de informao serializvel
por parmetro, incluindo objetos e classes. Por esses motivos, importante apresentar o
padro RMI.

6.3 Corba

A proposta da arquitetura CORBA que um software baseado nela, escrito em qual-


quer linguagem de programao e em qualquer sistema operacional, seja capaz de intero-
perar com outro software utilizando linguagens e SOs diversos. Uma das mais frequentes
aplicaes em servidores que lidam com grande nmero de clientes, com alta confiabili-
dade.

As aplicaes CORBA so compostas por objetos. Para cada tipo de objeto definida
uma interface, que parte do contrato que o objeto servidor oferece aos clientes que o
invocam. Qualquer cliente que deseja invocar uma operao no servidor necessita dessa
interface para especificar a operao que quer executar e serializar as propriedades envia-
das como parmetros. Quando a invocao encontra o objeto destino, a mesma interface
6.4 Java RMI 79

usada para desserializar as informaes recebidas para que o objeto possa processa-las.
A definio dessas interfaces independente da linguagem de programao. A separao
entre interface e implementao a essncia de CORBA. A interface para cada objeto
definida muito estritamente. Porm, a implementao de um objeto - seu cdigo de
execuo e seus dados - encapsulada. Os clientes acessam objetos somente atravs de
sua interface anunciada, invocando somente as operaes que o objeto expe atravs de
sua interface, com apenas os parmetros (entrada e sada) includos na invocao. Em
CORBA, cada instncia de objeto tem sua prpria referncia de objeto nica, um (token
eletrnico de identificao. Os clientes usam as referncias de objeto para direcionar suas
invocaes, identificando para o ORB a instncia exata que eles querem invocar. Quando
ele est invocando uma operao na instncia do objeto, na verdade est invocando o (stub
que atua como um (proxy. Passando pelo (stub no lado do cliente, a invocao continua
atravs do ORB e do esqueleto no lado da implementao, para chegar ao objeto onde ele
executado.

Para chamar a instncia de objeto remoto, o cliente primeiro obtm sua referncia de
objeto. Para fazer a chamada remota, o cliente usa o mesmo cdigo que ele usaria como
se estivesse acessando o programa localmente, porm substituindo a referncia de objeto
para a instncia remota. Quando o ORB examina a referncia de objeto e descobre que o
objeto de destino remoto, roteia a invocao at o objeto remoto do ORB. Esse processo
padronizado em dois nveis principais: Primeiro, o cliente sabe o tipo de objeto que est
invocando e os esqueletos do cliente e do servidor so gerados a partir da mesma definio.
Isso significa que o cliente sabe exatamente quais operaes ele pode invocar, quais so os
parmetros de entrada e onde eles tm que ir na invocao; Quando a invocao atinge o
alvo, tudo est l e no lugar certo. Em segundo lugar, ORB do cliente e ORB do objeto
deve concordar com um protocolo comum - ou seja, uma representao para especificar o
objeto de destino, operao, todos os parmetros (entrada e sada) de cada tipo que eles
podem usar, e como tudo isso representado.

6.4 Java RMI

RMI um modelo de objetos distribudos para a plataforma Java. A principal fun-


cionalidade deste modelo permitir a invocao de um mtodo de uma interface remota
em um objeto remoto. A especificao Java RMI define objeto remoto como um objeto
no qual seus mtodos podem ser invocados por outra mquina virtual Java (JVM), geral-
mente localizada em um computador diferente. Um objeto desse tipo descrito por uma
6.4 Java RMI 80

ou mais interfaces remotas, que declaram os mtodos do objeto remoto. Uma invocao
de um mtodo de um objeto remoto possui a mesma sintaxe de uma invocao de um
mtodo de objeto local. O modelo RMI utiliza serializao de objetos para convert-los em
(streams de bytes para a transmisso. Qualquer tipo de objeto pode ser passado durante
a invocao, incluindo, mas no se limitando a, tipos primitivos, classes bsicas e classes
definidas pelo usurio.

Figura 6.1: Os 6 graus de liberdade

RMI utiliza um mecanismo padro para comunicao com objetos remotos: (stubs e
(skeletons(Figura 6.1)((118)). Um (stub para um objeto remoto atua como representante
local de um cliente ou (proxy para o objeto remoto. O chamador invoca um mtodo no
(stub, que responsvel pela realizao da chamada do mtodo no objeto remoto. Em
RMI, um (stub para um objeto remoto implementa o mesmo conjunto de interfaces que
um objeto remoto implementa. Quando um mtodo (stub invocado, ele faz o seguinte:

Inicia uma conexo com a JVM remota que contm o objeto remoto;

Transmite os parmetros para a JVM remota (utilizando passagem por valor, no


por referncia como ocorre numa chamada local);

Aguarda o resultado da invocao do mtodo;

L o valor de retorno ou exceo retornada;

Retorna o valor para o chamador.

O (stub oculta a serializao dos parmetros e a comunicao em nvel de rede, a fim


de apresentar um mecanismo de invocao simples para o chamador.
6.5 A Plataforma JAMP 81

Na JVM remota, cada objeto remoto pode ter um (skeleton correspondente. O (skele-
ton responsvel por despachar a chamada para a implementao real do objeto remoto.
Quando um (skeleton recebe uma chamada de mtodo, ele faz o seguinte:

L os parmetros para o mtodo,

Chama o mtodo real na implementao do objeto, e

Transmite o resultado (valor de retorno ou exceo) ao chamador.

Antes da invocao de um mtodo em um objeto remoto, o cliente deve primeiro obter


uma referncia para esse objeto. O modelo RMI fornece um servio simples de nomeao,
conhecido como RMI Registry, que permite a obteno das referncias dos objetos atravs
de nomes.

6.5 A Plataforma JAMP

JAMP (Java Architecture for Media Processing) (3) (4) (5) (6) (7) foi inicialmente
concebida para auxiliar no desenvolvimento de aplicaes multimdia cooperativas em
ambientes distribudos. Porm, sua evoluo a tornou um (middleware para computao
distribuda.

A plataforma JAMP formada basicamente por servidores, um (broker e um conjunto


de (frameworks utilizados pelas aplicaes nela baseadas. Ela segue o paradigma da orien-
tao a objetos e tem como base a linguagem Java e o modelo RMI, por sua simplicidade
e facilidade de uso na distribuio de objetos. A arquitetura divide a plataforma em trs
camadas:

Camada de Aplicao: onde ficam as aplicaes que fazem uso dos servios dispo-
nveis na plataforma atravs dos (frameworks de acesso. Essas aplicaes utilizam
a JAMP como plataforma de distribuio;

Camada de Servios: compreende todos os servios acessados pelas aplicaes.


composta por frameworks, que definem APIs que possibilitam a interao entre as
aplicaes e os servios da plataforma; Os servios disponveis so:

JavaBroker: O (framework JavaBroker oferece importantes funcionalidades


para a plataforma. Ele prov acesso ao Servio de Nomeao e fornece acesso
6.5 A Plataforma JAMP 82

ao servidor JBroker, que um programa que contm uma base de dados dos
servidores/servios disponveis no ambiente. Por intermdio do JBroker, os cli-
entes JAMP podem invocar mtodos em objetos remotos na rede sem conhecer
detalhes da localizao, implementao e protocolos dos objetos invocados.
Possui os seguintes servios:

* Nomeao: permite a localizao de objetos na rede atravs de seus nomes.


A identificao dos objetos realizada atravs de palavras humanamente
reconhecidas, os nomes. Esse servio relaciona esses nomes com as refe-
rncias dos objetos. Essa associao chamada de (name binding. Um
contexto de nomes um espao lgico onde o nome do objeto nico;
* Negociao (Trading Object Service): Um (trader pode ser definido como
um objeto atravs do qual outros objetos podem anunciar suas caracte-
rsticas e capacidades e ainda requisitar outros objetos baseados nas suas
necessidades. Anunciar uma caracterstica ou oferecer um servio conhe-
cido como exportao. Localizar um ou mais servios conhecido como
importao. Exportao e importao facilitam a localizao dinmica de
servios em um ambiente distribudo. Para exportar, um objeto fornece ao
(trader uma descrio de um servio. Para importar, um objeto requisita
ao (trader um servio com dadas caractersticas. O (trader ento localiza
em sua base de dados os servios que correspondem s caractersticas envi-
adas pelo objeto cliente retornando as referncias dos servios encontrados.
Assim, o cliente pode comunicar-se com o servio diretamente;
* Notificao e Eventos: Define um protocolo simples de comunicao utili-
zado para que objetos registrem seus interesses pela ocorrncia de eventos
iniciados em outros objetos e para notificao da ocorrncia desses eventos,
direta ou indiretamente. As garantias de confiabilidade e de comunicao
devem ser implementadas pelos objetos envolvidos;

Segurana: Implementa segurana na comunicao de dados via protocolo SSL


entre os objetos do ambiente;

Multicast: Torna possvel a utilizao do modelo multicast de comunicao,


muito utilizado na transmisso de mdias como vdeo e udio. Multicast
um modo otimizado de enviar e receber dados pela rede. O servido Multicast
est disponvel atravs de um framework e um servidor. O servidor, chamado
de Servidor Multicast, gerencia todos os grupos de aplicaes JAMP. O (fra-
mework Multicast consiste de um conjunto de classes que possibilita o acesso s
6.5 A Plataforma JAMP 83

funcionalidades do servidor Multicast. Entre as funcionalidades deste servio


encontram-se: gerenciamento de conexes, distribuio de pacotes e criao e
administrao de grupos.

Servios de udio e Vdeo:

* Media Database Server: responsvel pelo armazenamento e recuperao


de arquivos de mdias distribudos. Ele gerencia esses arquivos de maneira
nica e indexada, permitindo a criao de bibliotecas para cada tipo de
mdia. Diversos servidores podem montar uma federao de bancos de
dados tornando possvel a localizao e a recuperao de arquivos de outros
servidores;
* Media Rope Server: Um rope uma sequncia de mdias contnuas arma-
zenadas com um significado lgico, podendo conter qualquer tipo de mdia,
incluindo udio e vdeo. Ele utiliza o Media o Media Database Server para
armazenamento, edio e remoo de segmentos de mdia;
* Media Streaming Server: fornece suporte para o gerenciamento de conexes
e para o recebimento de (streams de vdeo e udio;

Colaborao: A plataforma JAMP implementa um servio de colaborao que


consiste de um (framework chamado Collaborative e um servidor chamado Co-
operative Work Server. A principal funcionalidade do servidor o controle
de concorrncia, provendo facilidades para o compartilhamento de objetos no
ambiente. O (framework Collaborative funciona como uma ponte entre as apli-
caes clientes. Ele possui diversos mtodos para manipulao de aplicaes
multimdia colaborativas distribudas. O Cooperative Work Server age como
um repositrio central que armazena e manipula todos os dados relevantes
para as aplicaes. Tambm possui mtodos para controle de concorrncia e
controle de usurios;

Storage: responsvel pelo armazenamento, recuperao e manipulao de um


repositrio persistente de objetos;

ECommerce: (Framework desenvolvido para comrcio eletrnico. Conta com


os seguintes servios:

* Gerenciamento de pedidos: gera, manipula e cancela pedidos em uma loja


virtual;
* Transao: Faz o gerenciamento de transaes de pagamento entre o com-
prador e o vendedor;
6.5 A Plataforma JAMP 84

* Controle de atividades: responsvel pelo controle de frequncia de com-


pradores na loja, cadastramento e identificao do comprador, e pela ge-
rao de relatrios de atividades para o vendedor;

Balanceamento de Carga: Permite que a invocao de mtodos seja redirecio-


nada para diferentes objetos para reduzir a sobrecarga na comunicao quando
um nico objeto exaustivamente acessado;

BConn - Conectividade para Dispositivos Mveis: Prov acesso, a partir de


dispositivos com interface de rede Bluetooth, a servios remotos disponveis
na Internet. Esses servios so requisitados por dispositivos mveis, tais como
PDAs, celulares ou (smartphones, que acessam a rede via pontos de acesso
Bluetooth. Os pontos de acesso consultam o JBroker que retorna uma refern-
cia para o servio a ser consumido. Os pontos de acesso ento encaminham o
resultado aos dispositivos mveis.

JNDS JAMP Networked Directory System: Disponibiliza gerenciamento e


controle de sistemas de diretrios distribudos;

Camada de infraestrutura: prov transparncia de comunicao para as aplicaes


distribudas e para os servios disponveis atravs de RMI.

Utilizando a plataforma JAMP, o processo de invocao se inicia com o servidor se


registrando no JBroker. Atravs desse registro, o objeto est disponibilizando seus servios
(mtodos e implementaes) para que outros objetos possam invoc-los. Aps o registro,
qualquer cliente JAMP pode fazer acessos ao JBroker e procurar pelos servios de objetos
remotos. O cliente, ento, recebe uma referncia do objeto remoto que contm o servio
requisitado e, assim, pode fazer a invocao dos mtodos disponveis no objeto servidor.
Este processo conhecido como Trading Process.
Captulo 7
Construo da Arquitetura: Anlises
Preliminares

Uma srie de estudos e anlises foi realizada para que a arquitetura pudesse ser pro-
jetada e construda, incluindo estado da arte em visualizao molecular, protocolos
de transportes de pacotes em redes de computadores e o problema da comunicao
em redes (best-effort.

7.1 O Problema da Comunicao em Tempo Real Via


Internet

A Internet de hoje , talvez, um dos principais gargalos quando se trata de quali-


dade na comunicao de dados. Atingir nveis adequados e/ou desejados de qualidade de
Servio (QoS) no tarefa trivial. Os principais parmetros que podem ser usados para
determinar QoS solicitada por um aplicativo, na internet, so vazo ((throughput) (119),
atraso ou latncia ((delay) (119), variao de atraso ((jitter) (120) e descarte/perda de
pacotes IP.

Um dos componentes-chave que determinam QoS das redes de pacotes o controle


de carga, que tem impacto direto na vazo. Quando a capacidade disponvel menor do
que a demanda, o controle de carga o elemento fundamental para determinar quantos
pacotes so permitidos em cada enlace da rede, quem e quando os envia. Isto controla
vazo e influencia no atraso experimentado pelos usurios. H uma srie de mecanismos
de controle de carga, e estes podem ser classificados pelo tipo de garantias de QoS que
podem entregar.

Num extremo desse espectro esto os esquemas de controle de admisso de conexo


7.1 O Problema da Comunicao em Tempo Real Via Internet 86

(CAC), como o Resource Reservation Protocol (RSVP) (121). Esses esquemas exigem que
a rede mantenha informaes sobre cada conexo e decida se as conexes so admitidas
ou rejeitadas, de modo que seja absolutamente garantida a largura de banda para as
conexes admitidas, do princpio ao fim. Quando a carga das conexes solicitadas
superior capacidade da rede, alguns novos usurios sero rejeitados, a fim de manter as
garantias de banda reservadas para os usurios j admitidos. Infelizmente, muito poucos
pontos na internet funcionam assim. A grande maioria das redes est estabelecida sob
o esquema de best-effort (melhor-esforo), no qual as informaes sobre cada conexo ao
longo do caminho percorrido pelos dados no so armazenadas em roteadores e switches,
uma vez que no h nenhuma reserva de recursos para uma conexo. Os remetentes
decidem por si s se e quanto devem enviar. A se inicia o problema da comunicao em
tempo real na internet.

H dois objetivos em uma rede best-effort. O primeiro garantir que a capacidade


disponvel da rede esteja sendo completamente utilizada; o segundo maximizar a QoS
percebida pelos usurios. Para atingir estes objetivos, a estrutura por trs de uma rede
best-effort necessita de apenas dois elementos fundamentais: um algoritmo de controle
de fluxo no remetente e um algoritmo de gerenciamento ativo de filas (AQM) no enlace.
O algoritmo de controle de fluxo reside no sistema operacional do host que transmite
informaes (por exemplo, um servidor Web ou PC), e decide quanta informao pode
transmitir com base no nvel de congestionamento da rede. O algoritmo AQM est pre-
sente em roteadores e switches, e monitora as filas que bufferizam pacotes aguardando
transmisso nos enlaces de sada. O algoritmo AQM estima o nvel de congestionamento
que o enlace est enfrentando e gera um sinal de congestionamento, que comunica o nvel
de congestionamento para o remetente. Cada AQM no caminho do remetente ao des-
tinatrio contribui para o sinal de congestionamento total. A forma mais comum com
que o sinal comunicado na Internet o descarte de pacotes. Dependendo do nvel de
congestionamento do enlace, o AQM descarta pacotes a uma taxa que reflete a gravidade
do congestionamento. Quando um pacote descartado de um fluxo de pacotes na cone-
xo TCP, o host destino pode detectar isso e comunicar a perda de pacotes para o host
de origem, que far os clculos para limitar a taxa com que os dados so enviados (31).
Existem outros modos de comunicar o sinal de feedback. Um deles o Explicit Congestion
Notification (ECN) (122). Com o ECN, para evitar o descarte, os pacotes so marcados
com um nico bit em seu cabealho para comunicar a presena de congestionamento.

Uma das contribuies desta tese a minimizao dos efeitos da latncia na internet
para comunicao entre grupos de pesquisa que utilizam visualizao molecular em seus
7.1 O Problema da Comunicao em Tempo Real Via Internet 87

estudos. Portanto, torna-se importante a compreenso da definio de latncia. Cada


pacote de dados que trafega em uma rede, seja local ou remota como a internet, parte
de um equipamento emissor e chega at o destino. Nesse caminho, ele processado por
equipamentos como switches e roteadores. A latncia composta pela soma de duas
variveis:

Tempo de processamento e de codificao dos dados do pacote : a soma do tempo


que cada equipamento leva para processar o pacote. Se o pacote passa por vrios
roteadores (o que previsto ocorrer no ambiente descrito nesta tese), cada roteador
soma sua parcela de tempo;

Tempo de propagao: o tempo que o pacote demora para percorrer todo o caminho
entre remetente e destino. Como tambm esperado que os grupos estejam dispersos
geograficamente, essa varivel tem grande peso no valor total da latncia.

A figura 7.1 mostra a sada do comando traceroute partindo do host 187.45.128.13 at o


131.111.8.46. A anlise dessa figura permite concluir alguns fatos:

Nota-se dois saltos nos tempos de resposta. O primeiro varia de menos de 10 mi-
lissegundos para pouco mais de 100 milissegundos (entre os roteadores 6 e 7). No
segundo salto os tempos passam para mais de 200 milissegundos (entre os roteadores
9 e 10). Considerando que a mquina origem est situada no Brasil e a destino est
no Reino Unido, os saltos de tempo ocorrem, respectivamente, na sada do Brasil
para os Estados Unidos e na sada deste para a Europa;

O pacote passou por 18 roteadores at chegar ao destino; alm disso, possvel que
haja switches envolvidos no caminho do pacote que no aparecem nessa lista. Cada
um desses equipamentos adiciona seu tempo de processamento soma que define o
tempo total de latncia;

O valor total mdio da latncia entre os dois pontos testados de 232 milissegun-
dos. Isso significa que nenhum pacote trafegado entre eles ter tempo inferior a
aproximadamente esse valor.
7.2 Anlise do Estado da Arte em Visualizao Molecular 88

Figura 7.1: Exemplo de sada do comando traceroute

H, ainda, outro fator que impacta negativamente a QoS na rede: a retransmisso de


pacotes perdidos ou corrompidos. Esse um mecanismo muito utilizado para garantir a
confiabilidade da entrega de pacotes. No entanto, ele aumenta o nmero de transmisses
necessrias para a entrega da mensagem, consequentemente aumentando a sensao de
atraso, que crucial para a maioria das comunicaes em tempo real.

7.2 Anlise do Estado da Arte em Visualizao Mo-


lecular

Depois de realizado estudo sobre os softwares de visualizao molecular existentes


na atualidade, cujas caractersticas foram descritas no Captulo 4, possvel destacar os
pontos fortes e os aspectos ausentes e/ou pouco explorados desses softwares. Segue uma
breve discusso:

De maneira geral, os softwares apresentam caractersticas semelhantes quando o as-


sunto visualizao molecular. Todos eles oferecem visualizao com praticamente os
mesmos recursos; a maioria pode ser executada em vrias plataformas de hardware e
sistema operacional. Porm, alguns aspectos merecem destaque no escopo deste captulo:

Jmol tem as vantagens de oferecer a possibilidade de viso estereoscpica (impli-


cando no uso de culos) nativamente e suportar vrios formatos de arquivos de
dados moleculares. Porm, ele um software que no apresenta recursos de reali-
dade virtual e no colaborativo.
7.2 Anlise do Estado da Arte em Visualizao Molecular 89

Marvin Space no colaborativo e no dispe de recursos para realidade virtual.

PyMol exporta imagens moleculares com altssima qualidade, mas tambm no tem
recursos para colaborao e nem de realidade virtual;

Chimera possui um mdulo para permitir a colaborao (123) entre pesquisadores.


Utilizando CORBA, o software no se preocupa se os usurios esto dispostos local-
mente ou dispersos geograficamente. Portanto, no utiliza meios para aperfeioar a
comunicao remota, o que, de certo modo, representa uma limitao.

Os desenvolvedores do VMD esto testando a manipulao do software utilizando


diferentes meios (que no mouse e teclado) de interao homem-mquina, como
rastreadores 6DOF (124). No apresenta recursos para colaborao;

VRMol utiliza conceitos de realidade virtual e Java RMI para a criao de um am-
biente virtual colaborativo. Porm, como acontece com outros softwares do gnero,
no foi abordado o problema de comunicao via internet; apenas discutido o tema
comunicao de maneira geral. Outra limitao importante do VRMol o fato de
ele ter sido desenvolvido para exibir somente molculas de protenas descritas em
arquivos com formato PDB.

Os sistemas DS Visualization, Sybyl, Scigress Explorer e ECCE apresentam recursos


avanados que vo alm da simples visualizao de estruturas. Porm, no so
equipados para trabalhar com realidade virtual nem com colaborao.

O IMVSE um sistema que utiliza um recurso de multiprojeo sofisticado para


visualizao molecular. Porm, ele no colaborativo;

VRDD utiliza realidade virtual com exibio tridimensional em ambiente imersivo,


mas tambm no apresenta ferramentas para colaborao entre pesquisadores;

Kinimmerse um ambiente altamente imersivo para visualizao molecular. No


prev nenhuma forma de colaborao;

O MolScript com RV e a ferramenta descrita no item 5.4.5 seguem a mesma linha


dos ltimos trs sistemas, isto , tem recursos de realidade virtual mas no de
colaborao;

Jmol-Wiki um sistema que apresenta um baixo nvel de colaborao de forma


desconectada, no necessariamente em tempo real;
7.2 Anlise do Estado da Arte em Visualizao Molecular 90

AMMP-Vis tem caractersticas de realidade virtual imersiva e de colaborao, mas


apresenta duas limitaes: 1) no dedicou estudos para minimizar o problema de
atraso/perda de pacotes quando a comunicao feita via internet e 2) segundo os
prprios autores, h um problema de escalabilidade no sistema;

Jmol Colaborativo apresenta a mesma limitao dos outros softwares quando o


assunto colaborao via internet. No utiliza realidade virtual;

O Distributed Paulling World, como os prprios autores afirmam, tem limitao


imposta pelas caractersticas da rede quando se tenta realizar colaborao entre
pesquisadores, evidenciando que no houve tratamento para esse problema. Apre-
senta recursos de realidade virtual;

MICE no apresenta qualquer forma de realidade virtual e, assim como os outros sis-
temas, oferece recurso para colaborao sem o devido tratamento quando os usurios
esto interligados via internet.

Em resumo, pode-se concluir que os sistemas analisados no apresentam uma soluo


para visualizao molecular utilizando simultaneamente algum recurso de realidade vir-
tual e colaborao entre pesquisadores distantes geograficamente com devido estudo dos
problemas decorrentes da comunicao feita atravs da internet.

Agrupando e organizando todas as caratersticas e sistemas, a Tabela 7.1 sintetiza os


pontos fortes e fracos de cada software:
7.2 Anlise do Estado da Arte em Visualizao Molecular 91

Tabela 7.1: Comparativo entre Softwares de Visualizao Molecular

Realidade Colaborao Colaborao


Sistema
Virtual Local via Internet
Jmol NO NO NO
VRMol SIM SIM POBRE
Marvin Space NO NO NO
VMD SIM NO NO
PyMol NO NO NO
Chimera NO SIM POBRE
DS Visualization NO NO NO
Sybyl NO NO NO
Scigress Explorer NO NO NO
ECCE NO NO NO
IMVSE SIM NO NO
VRDD SIM NO NO
Kinimmerse SIM NO NO
Molscript com VR SIM NO NO
Ferramenta baseada em gestos SIM NO NO
Jmol-Wiki NO POBRE POBRE
AMMP-Vis SIM SIM NO
Jmol Colaborativo NO SIM POBRE
Distributed Pauling World SIM POBRE POBRE
MICE NO SIM POBRE
ESTA TESE SIM SIM SIM

Esta tese descreve um ambiente colaborativo com recursos de multiprojeo, no qual


os usurios tm a possibilidade de estarem distantes geograficamente e interligados via
internet. Essas caractersticas suprem as deficincias de outros softwares do mesmo gnero,
como pode ser visto na Tabela 7.1. Portanto,

O sistema tem capacidade para abrir diversos formatos de arquivos de estruturas


moleculares e no somente PDB. A lista completa est relacionada no item 5.2.1

O ambiente utiliza realidade virtual, especificamente multiprojeo, para que pes-


quisadores tenham melhores condies de analisar a molcula em estudo. Veja mais
detalhes nos itens 8.1 e 8.3;
7.3 Anlise dos Protocolos de Transporte 92

O sistema colaborativo

H preocupao com a comunicao via internet, principal deficincia dos atuais


softwares de visualizao molecular. O protocolo RTEP, proposto nesta tese, procura
minimizar os problemas descritos em 7.1 atravs de recursos apresentados no item 8.4.2.

7.3 Anlise dos Protocolos de Transporte

A evoluo das comunicaes atravs da Internet nos ltimos anos aumentou a procura
por uma nova classe de protocolos. A pilha TCP/IP, com o tradicional servio TCP
confivel/ordenado ou UDP no confivel/desordenado, j no mais suficiente para uma
ampla gama de aplicaes. Protocolos orientados a aplicao que ativam/controlam o
equilbrio de QoS podem oferecer uma soluo alternativa. Por exemplo, uma vez que o
vdeo ou udio podem tolerar perdas de pacotes, pode-se favorecer a largura de banda em
detrimento da confiabilidade.

Nesta seo so apresentados alguns protocolos das camadas de transporte e aplicao:


UDP, TCP, RTP/RTCP, SCTP e DCCP.

7.3.1 UDP - User Datagram Protocol

UDP (125) um protocolo de transporte que trabalha sobre IP e no se preocupa


com a confiabilidade na recepo de dados. Ele adota um cabealho muito simples, que
inclui porta de origem e destino e checksum; no tem qualquer campo de controle nem
informaes temporais. Consequentemente, pode haver problemas de entrega de pacotes
fora da ordem com que foram enviados e/ou perda de pacotes durante a transmisso.
No entanto, essa simplicidade tambm prov liberdade para que o controle seja feito
na camada de aplicao. UDP utilizado por muitos protocolos de aplicao, tais como
Domain Name Service (DNS), Dynamic Host Configuration Protocol (DHCP) e streaming
multimdia.

7.3.2 TCP - Transmission Control Protocol

TCP (126) um protocolo de transporte que trabalha sobre IP, confivel e orientado
a conexo. Sua misso entregar corretamente os dados enviados. Para atingir seu
objetivo, o TCP tem procedimentos de configurao de conexo e desconexo usando um
7.3 Anlise dos Protocolos de Transporte 93

mecanismo de handshake. Entre esses dois processos ocorre a transferncia de dados em


si. TCP trata os problemas da imprevisibilidade da perda de dados, chegada de dados
fora de sequncia e congestionamento da rede.

H duas razes possveis para a perda de dados: a primeira um erro no pacote e a


outra a perda de pacotes. O erro interno de pacote pode ser detectado com a utilizao
de checksum; o pacote descartado se houver algum erro. TCP pode detectar perda de
pacotes marcando cada um deles com um nmero sequencial e utilizando mensagens de
confirmao de recebimento (ACK). O nmero sequencial utilizado, tambm, para fazer
reordenao de pacotes caso eles tenham sido recebidos fora da ordem com que foram
enviados.

TCP o protocolo de transporte mais utilizado na Internet (127). No entanto, no


adequado para aplicaes em tempo real, pois inclui um mecanismo de retransmisso que
no ajuda algumas aplicaes crticas; um protocolo ponto-a-ponto sem suporte direto
de transmisso multicast; no dispe de informao temporal, o que necessrio para a
maioria dos aplicativos com caractersticas de tempo real.

7.3.3 RTP/RTCP - Realtime Protocol / Realtime Control Pro-


tocol

O Real Time Protocol (RTP) (128), embora funcionando sobre TCP ou UDP, um
protocolo de transporte utilizado para trfego com requisitos de tempo real e/ou multi-
mdia, especialmente udio e vdeo, sobre servios multicast ou unicast em redes IP. RTP
foi especificado pelo Internet Engineering Task Force (IETF) para preencher as lacunas
do UDP (transmisso no confivel e sem conexo de dados) nas redes IP.

Pacotes enviados na internet tm atraso e jitter imprevisveis. Aplicaes de tempo


real requerem temporizao adequada na recepo de dados. RTP prov carimbo de
tempo, numerao sequencial e outros mecanismos que marcam os pacotes com a finali-
dade de tratar as questes de tempo. A transmisso de dados em tempo real facilitada
atravs destes mecanismos. As principais caractersticas do RTP so as seguintes:

RTP fornece servios de entrega fim-a-fim para dados com caractersticas de tempo
real, como udio e vdeo interativos. No entanto, o RTP no fornece nenhum me-
canismo para assegurar a entrega em tempo adequado: ele precisa do apoio das
camadas mais baixas da rede que tm controle direto sobre os recursos em roteado-
res e switches, como RSVP (121), para fornecer os recursos necessrios.
7.3 Anlise dos Protocolos de Transporte 94

RTP no assume nada sobre a camada de rede. Tipicamente, RTP executado


sobre o UDP, porm podendo utilizar TCP no lugar de UDP.

O transporte de dados por RTP melhorado com um protocolo de controle (RTCP),


que fornece feedback sobre a qualidade da transmisso de dados para a sesso RTP. Os
pacotes transmitidos devem ser intercalados entre pacotes de dados e de controle.

Os pacotes RTCP contm informaes sobre monitoramento de QoS e controle de


congestionamento: remetente e o destinatrio trocam informaes sobre perdas de paco-
tes, atraso e jitter. Entretanto, esse tipo de controle deve ser limitado: deve existir um
balanceamento entre a quantidade de dados em tempo real e dados de controle de trfego.
Normalmente, este ltimo dimensionado para cerca de 5% do trfego total gerado (128).

Basicamente, o RTCP aparece como uma soluo que d confiabilidade para um


fluxo de dados RTP. RTP/RTCP fornece a funcionalidade e os mecanismos de controle
necessrios para transportar contedo em tempo real.

7.3.4 SCTP - Stream Control Transmission Protocol

Como um protocolo de transporte, SCTP (129) fornece alguns servios similares ao


TCP, assegurando confiabilidade, transmisso sequencial de mensagens com controle de
congestionamento. Enquanto o TCP orientado a byte e UDP sem conexo, SCTP
orientado a associao.

SCTP livre de erros, oferece mensagens de confirmao (ack), transferncia de men-


sagens no duplicadas atravs do uso de checksums, nmeros de sequncia e um mecanismo
de retransmisso seletiva. SCTP adotou o controle de fluxo e congestionamento do TCP e
apresenta novas funcionalidades que o tornam mais adequado para fins de sinalizao que
este ltimo. As caractersticas mais interessantes do SCTP so o suporte a multi-homing
e a capacidade de utilizar vrios fluxos separados dentro de uma associao. Cada fluxo
pode ser entregue de forma ordenada ou desordenada se o aplicativo desejar. O suporte
para ns multi-homed com SCTP implica que o n remoto pode ser alcanado usando mais
de um endereo IP. Se garantido que, para cada endereo IP utilizado para o mesmo
destino, o fluxo de dados percorre caminhos diferentes, a associao torna-se tolerante a
falhas da rede fsica. A informao sobre os vrios endereos trocada no momento da
associao. Um dos endereos selecionado como o caminho principal no qual os data-
gramas so transmitidos por padro. Retransmisses podem ser feitas usando um dos
caminhos disponveis.
7.3 Anlise dos Protocolos de Transporte 95

A inicializao de uma associao SCTP concluda aps a troca de quatro mensagens


(e no trs, como ocorre com TCP). O lado passivo da associao somente aloca recursos
para a associao quando a terceira destas mensagens chega e validada. Esta troca de
pacotes uma caracterstica do SCTP que d mais resistncia aos problemas de ataques
DoS (Denial of Service), utilizando algoritmos de criptografia como MD5.

Depois que a associao estabelecida, cada bloco de dados transmitido numerado


com um Nmero Sequencial de Transporte (TSN) para permitir a deteco de perda e
duplicao de pacotes de dados. Um Stream Sequence Number (SSN) atribudo a cada
datagrama para permitir sua entrega confivel.

Pacotes heartbeat so enviados periodicamente para monitorar a disponibilidade da


rede. Esses pacotes so utilizados para verificar as conexes disponveis, e cada heartbeat
confirmado por um heartbeat ACK, sempre atravs do endereo padro. Se a transmisso
por um determinado caminho falhar repetidamente, o caminho considerado inativo. No
entanto, heartbeats continuam a ser enviados para os endereos inativos. Deve existir um
balanceamento entre os pacotes heartbeat, que do informaes sobre o estado da rede, e
o fluxo de dados transmitidos: o trfego heartbeat pode ser configurado dinamicamente
de acordo com as necessidades da aplicao. O aplicativo pode desativar e reativar o
heartbeat, alterar os intervalos entre eles e solicitar um heartbeat sob demanda.

7.3.5 DCCP - Datagram Congestion Control Protocol

DCCP (130) (131) um protocolo de camada de transporte orientado a mensagem.


Ele pretende ser substituto do UDP. utilizado como protocolo de transporte em tempo
real, com restries de tempo para a entrega de dados. A principal motivao para o
desenvolvimento do DCCP fornecer uma maneira para que aplicaes em tempo real
obtenham acesso a mecanismos de controle de congestionamento padro sem ter que
implement-los na camada de aplicao.

Para o transporte de dados em tempo real, o UDP seria o protocolo mais aconselhvel
principalmente por causa de sua entrega rpida. No entanto, ele apresenta problemas de
congestionamento, o que se traduz em desprezo de pacotes e/ou pacotes recebidos fora
de ordem. A soluo implementar UDP com controle de congestionamento e handshake
durante a configurao da conexo. Aqui onde entra o DCCP. Ele fornece as seguintes
funcionalidades:

Negociao confivel de recursos;


7.3 Anlise dos Protocolos de Transporte 96

Controle de congestionamento incorpora Explicit Congestion Notification (ECN)


(122). Durante o estabelecimento da conexo DCCP, pacotes de confirmao so
enviados para informar se os pacotes chegaram e se eles so marcados com ECN.

Ele tem opes que dizem ao remetente, com alta confiabilidade, que pacotes atin-
giram o receptor e se os pacotes foram marcados com ECN, corrompidos ou descar-
tados no buffer de recepo.

No incio de uma conexo DCCP, os pontos finais devem concordar sobre um conjunto
de parmetros, ou seja, os mecanismos de controle de congestionamento a serem utilizados.
DCCP fornece um conjunto mnimo de opes para negociar os valores das caractersticas
gerais, onde um recurso simplesmente um valor a ser negociado.

Uma das caractersticas do DCCP a possibilidade de escolha entre os mecanismos


de controle de congestionamento compatveis com TCP (CCID 2) e taxa de controle
tambm compatvel com TCP (CCID 3). CCID 2 apresenta vantagem para fluxos de
dados transmitidos em rajadas; responde rapidamente s mudanas na largura de banda
disponvel. No entanto, ele herda do TCP o incio lento que necessrio para estabelecer
uma conexo confivel. CCID 3 adequado para os fluxos que exigem uma taxa de envio
mais constante: o receptor envia feedback para o remetente, um por round trip time,
contendo a taxa de perda calculada no receptor. Este feedback utilizado no remetente
para calcular uma nova taxa de envio. Se nenhuma resposta recebida durante vrios
RTTs (Round Trip Time), o remetente corta pela metade a taxa de envio. Esse mecanismo
tenta minimizar mudanas abruptas na taxa de envio.
Captulo 8
A Arquitetura Desenvolvida

8.1 Funcionamento Geral da Arquitetura

Um grupo de pesquisa com vrios computadores ou um ambiente imersivo com mul-


tiprojeo que utiliza servios de comunicao de um servidor local para interagir com
outros grupos/ambientes remotamente: esse o modelo da arquitetura discutida neste
trabalho. O ambiente compe-se de trs partes funcionais: Ambiente Global, Ambiente
Local e Ambiente Imersivo com Multiprojeo. Um esquema-exemplo est na Figura 8.1.
8.1 Funcionamento Geral da Arquitetura 98

Figura 8.1: Ambientes Global e Local

A Figura 8.2 mostra um exemplo de ambiente contendo dois grupos de pesquisa e um


sistema local imersivo com multiprojeo interligados via internet.
8.1 Funcionamento Geral da Arquitetura 99

Figura 8.2: Exemplo de um Ambiente

Sob a tica funcional, os elementos de hardware e software do sistema so:

Hardware:

Servidores: um para cada grupo de pesquisa ou ambiente local imersivo com


multiprojeo e um para abrigar a JAMP e o banco de dados central;
Computadores de cada utilizador dos grupos de pesquisa e do atuador do am-
biente imersivo com multiprojeo;
Computadores que geram as imagens para multiprojeo.
8.1 Funcionamento Geral da Arquitetura 100

Software

Jmol: visualizador molecular adaptado para se tornar colaborativo e com re-


curso de multiprojeo;

JAMP framework JBroker:

* o servidor central e nos servidores de grupo registra e mantm em memria


uma lista de todos os servidores presentes no ambiente;

JAMP framework Comunicador:

* Nos servidores de grupo funciona como ponte entre cada ambiente local e
o global e faz atualizaes no banco de dados do servidor onde est sendo
executado;
* o servidor central atualiza o banco de dados e pode, opcionalmente, servir
de ponte entre servidores de grupo, conforme descrito no item 8.4.2;

JAMP fwMol: utilizado nos servidores de grupo para receber mensagens


geradas pelos seus clientes;

JAMP RTEP RTP/RTCP UDP: essa pilha de protocolos uma alternativa


ao RMI - TCP, buscando maior agilidade com confiabilidade. Est presente
em todos os servidores para trocas de mensagens entre si;

JMF (Java Media Framework): permite a interao entre usurios por texto
e/ou voz (o recurso de vdeo, embora disponvel no JMF, no foi implementado
nesta verso do ambiente);

O funcionamento geral do sistema o seguinte:

1. Coloca-se em funcionamento o Servidor Central executando o JBroker e o SGBD


(Sistema Gerenciador de Banco de Dados);

2. Cada servidor de grupo:

(a) Abre sesso JAMP com o Servidor Central atravs da execuo do aplicativo
Comunicador. Esse servidor se registra no Servidor Central para receber/enviar
mensagens;

(b) Executa o SGBD;

(c) Executa o JBroker local;


8.1 Funcionamento Geral da Arquitetura 101

3. Os clientes executam o Jmol adaptado e este cria sesso Multicast com o servidor
de grupo.

Nesse momento todos os servios e conexes necessrios esto em funcionamento


espera de aes do usurio.

Para que somente um usurio possa atuar no ambiente em determinado momento


no faz sentido vrios pesquisadores manipularem e visualizarem a mesma molcula si-
multaneamente - foi criado um mecanismo de trava. Caso no fosse um requisito, seria
possvel implementar um controle de concorrncia que permitiria aos usurios interagi-
rem com a mesma molcula. Como o sistema fornece a trava para somente um usurio,
a negociao para decidir quem ter o ambiente sob seu controle feita entre os prprios
utilizadores, atravs de texto e/ou voz. Nos computadores dos usurios que no detm o
controle pode ser pressionado um boto de solicitao de controle, que coloca tal cliente
numa fila espera da liberao do usurio controlador. Ao ser liberado, o sistema per-
gunta ao primeiro cliente da fila se ainda deseja exercer o poder de trava; se esse usurio
no o quiser mais ou se sua resposta no for recebida em 20 segundos, o sistema automati-
camente o retira da fila e faz a pergunta para o prximo da lista e, assim, sucessivamente
at que toda a fila se esgote.

Os acontecimentos ocorridos a partir da ao do usurio at a atualizao da visua-


lizao em todos os computadores do ambiente (de todos os grupos) so os seguintes:

O usurio detentor do controle do ambiente executa uma ao em seu computador;

Esta ao gera um evento no Jmol e este envia mensagem multicast para todos os
computadores do grupo, incluindo o servidor, contendo informaes sobre o evento;

O servidor do grupo recebe o evento via fwMol, o registra em seu banco de dados
e, atravs do Comunicador, repassa a mensagem aos outros servidores do ambiente
global (utilizando JAMP-RTEP), incluindo o servidor central;

Os outros computadores do grupo tm a visualizao atualizada;

Os outros servidores de grupo registram o evento e difundem a mensagem a seus


respectivos clientes via JAMP-Multicast;

O servidor central registra o evento no banco de dados;

Os computadores de cada grupo atualizam suas visualizaes.


8.2 Modelo do Ambiente Local 102

A lista acima no reproduz fielmente os acontecimentos com relao ao tempo, pois


alguns acontecem paralelamente.

8.2 Modelo do Ambiente Local

O Ambiente Local uma clula da estrutura global. Porm, ele no tem conhe-
cimento da existncia do ambiente externo. A interface entre essas duas reas feita
pelo framework Comunicador, que executado no servidor local. O esquema lgico est
representado na Figura 8.3:

Figura 8.3: Modelo do Ambiente Local

Esse modelo utiliza os frameworks JBroker, fwMol, Comunicador e Multicast. Em rede


local, onde dificilmente h restries quanto ao uso de multicast, essa uma alternativa
interessante na busca pela agilidade na comunicao.

Assim como no Ambiente Imersivo com Multiprojeo, o Ambiente Local tambm


possui o esquema de barreiras de sincronizao.

8.2.1 Jmol

Para que o Jmol fosse capaz de trabalhar em ambiente colaborativo, houve necessidade
de realizar algumas adequaes, de maneira que os eventos gerados a partir de aes
do usurio pudessem ser transmitidos e processados por instncias do software sendo
executadas em outras mquinas.
8.2 Modelo do Ambiente Local 103

Aps estudo do cdigo-fonte do Jmol, foi possvel concluir que os mtodos respon-
sveis pelas transformaes solicitadas pelo usurio na molcula em estudo esto na
classe org.jmol.viewer.Viewer. Assim, cada evento gerado por uma ao do usurio
(ao diretamente ligada visualizao) executa o mtodo correspondente na classe
org.jmol.viewer.Viewer.

Veja, como exemplo, o mtodo zoomBy, um dos responsveis por aplicar zoom na
molcula exibida. Na classe org.jmol.viewer.Viewer ele est definido originalmente como
na figura 8.4

1 public void zoomBy (int pixels ) {


2 if ( mouseEnabled ) {
3 transformManager . zoomBy ( pixels );
4 }
5 refresh (2, statusManager . syncingMouse ? " Mouse : zoomBy " + pixels
: "");
6 }

Figura 8.4: Trecho de cdigo original do Jmol

Este mtodo foi alterado para enviar mensagem contendo informaes do evento para
o servidor do grupo (Figura 8.5)

1 public void zoomBy (int pixels ) {


2 if( JmolApp . Controlador ){
3 Envia (" zoomBy ", pixels );
4 } else {
5 do_zoomBy ( pixels );
6 }
7 }

Figura 8.5: Trecho de cdigo modificado do Jmol

Ao receber um evento do servidor, o Jmol executa o cdigo original da funo zoomBy,


porm agora escrito em um novo mtodo (do_zoomBy). Veja Figura 8.6:
8.3 Modelo do Ambiente Imersivo com Multiprojeo 104

1 public void do_zoomBy (int pixels ) {


2 if ( mouseEnabled ) {
3 transformManager . zoomBy ( pixels );
4 }
5 refresh (2, statusManager . syncingMouse ? " Mouse : zoomBy " + pixels
: "");
6 }

Figura 8.6: Trecho de cdigo adicionado ao Jmol

H outras alteraes significativas no Jmol para permitir interao entre usurios via
texto/voz, mas isso ser exposto no item 8.4.3.

8.2.2 O Framework Comunicador

O Comunicador executado nos servidores de grupos e no servidor do ambiente


global. Ele possui um Thread sendo executado permanentemente espera de mensagens
que chegam dos clientes do grupo ou dos servidores do ambiente global. Ao chegar um
evento, este repassado:

Aos clientes do grupo, se a mensagem proveniente do ambiente global;

Aos outros servidores se a mensagem veio de algum cliente.

O Comunicador utiliza JAMP-Multicast para comunicao intragrupo e JAMP-RTEP


para se comunicar com os servidores do ambiente global.

8.3 Modelo do Ambiente Imersivo com Multiproje-


o

Este modelo utiliza uma arquitetura semelhante mestre-escravo com replicao (14),
isto , h um computador que comanda, aqui chamado de Atuador, e os ns comandados
por ele. Em todos h um Jmol sendo executado. Conceitualmente esse ambiente muito
semelhante ao Ambiente Local, pois o servidor recebe os eventos dos outros grupos e os
repassa aos seus clientes ou coordena a entrega das mensagens enviadas pelo computador
atuador.
8.4 Modelo do Ambiente Global 105

Foi implementado um esquema simples de barreiras de sincronizao, buscando manter


as projees o mais sincronizadas possvel: logo aps o envio de uma mensagem Multicast,
o sistema no mestre para espera das respostas de todos os escravos informando que as
aes foram efetuadas. Assim que receb-las, continua a execuo. Como nesse ambiente
a comunicao entre os ns rpida e a troca de mensagens relativamente pequena, no
difcil manter a sincronizao.

Infraestrutura fsica e layout do ambiente real sero utilizados de acordo com os re-
cursos disponveis nas salas de multiprojeo onde o sistema ser executado. Exemplos
podem ser encontrados em (132) e (133). O software funciona na configurao de multi-
projeo com estereoscopia passiva.

Figura 8.7: Modelo do Ambiente Imersivo com Multiprojeo

8.4 Modelo do Ambiente Global

O modelo do Ambiente Global composto pelo servidor central e pelos servidores


de grupo. Desse ponto de vista, a organizao semelhante de um grupo local, onde
h um servidor e diversos clientes. A principal diferena entre eles est nos protocolos
de comunicao: no Ambiente Global no utilizado Multicast-UDP e, sim, RTEP-
RTP/RTCP-UDP.

Essa pilha de protocolos implementa comunicao orientada a eventos e, como dito


anteriormente, busca minimizar os efeitos do problema descrito no item 7.1.

O modelo lgico apresentado na Figura 8.8. Nota-se que no foi mostrado o fra-
mework Multicast em Servidores de Grupo, pois ele faz sentido somente no Ambiente
8.4 Modelo do Ambiente Global 106

Local, embora esteja presente ali.

Figura 8.8: Modelo do Ambiente Global

8.4.1 Escolha dos Protocolos de Transporte

A Tabela 8.1 resume os recursos oferecidos por alguns protocolos de comunicao.


A coluna mais direita revela se determinado recurso importante ou no para este
trabalho.
Tabela 8.1: Comparativo de Recursos dos Protocolos de Transporte

Recurso UDP TCP SCTP RTP/RTCP Importncia


Orientado a conexo NO SIM SIM SIM SIM
Transporte confivel NO SIM SIM SIM SIM
Transporte no confivel SIM NO SIM SIM NO
Entrega ordenada NO SIM SIM SIM SIM
Entrega No ordenada SIM NO SIM SIM NO
Checksum dos dados SIM SIM SIM SIM SIM
Controle de congestionamento NO SIM SIM SIM SIM
Fluxos mltiplos NO NO SIM NO NO
Suporte a multi-homing NO NO SIM NO NO
Firewall Friendly SIM SIM NO SIM SIM
NAT Friendly SIM NO NO SIM SIM

Os protocolos escolhidos para serem incorporados plataforma JAMP com a fi-


8.4 Modelo do Ambiente Global 107

nalidade de suportar as necessidades de tempo real do ambiente desenvolvido foram


RTP/RTCP sobre UDP. A escolha justificada por vrios fatores:

As necessidades de comunicao em tempo real do sistema. Como apresentado


no item 8.1, o sistema gera eventos, a partir de aes do usurio, que chegam
ao servidor. Este, por sua vez, os encaminha aos outros servidores (incluindo o
servidor de banco de dados, onde ficam registrados todos os eventos ocorridos em
ordem cronolgica) e aguarda as respectivas respostas;

As situaes que exigem mais do protocolo para comunicao em tempo real


so a rotao da molcula e a aplicao de zoom, que geram muitos eventos
sucessivos que devem ser transmitidos rapidamente com garantia de entrega.
Funcionalidades como medidas de ngulos e distncias, marcao de tomos,
alterao no estilo de visualizao e outras, tambm devem ter garantia de
entrega, mas geram pouqussima carga na comunicao entre os servidores
presentes no ambiente, pois ocorrem com menor frequncia;
Pode haver certo relaxamento na entrega das mensagens, uma vez que o sistema
no voltado para aplicao crtica, como seria o caso de uma cirurgia feita
por um mdico distncia;
O protocolo de aplicao desenvolvido contm mecanismos de aprimoramento
da comunicao, como pode ser visto no item 8.4.2;

RTP/RTCP confivel, orientado a conexo, entrega pacotes na ordem em que


foram transmitidos, possui controle de congestionamento, adequando-se bem s in-
convenincias de latncia e jitter;

RTP/RTCP sobre UDP atravessa facilmente firewalls, pois so protocolos conhe-


cidos h algum tempo. Tambm no costumam apresentar problemas com NAT
(Network Address Transtation);

Uma opo interessante seria o uso de SCTP. Porm, esse protocolo no tem suporte
nativo em muitos sistemas operacionais, o que, em parte, foge proposta deste trabalho:
funcionar na maioria das plataformas de hardware/software. Existem pacotes com drivers
que podem ser instalados na maior parte dos sistemas, mas podem no ser confiveis.
SCTP tambm no disponibiliza API (Application Program Interface) na linguagem Java.
Isso no impede que SCTP seja utilizado no sistema, mas nesse momento exige um passo a
mais para fazer a interface entre Java e C++ (SCTP est disponvel nativamente somente
nessa linguagem).
8.4 Modelo do Ambiente Global 108

8.4.2 RTEP - O Protocolo de Comunicao entre Servidores

No h soluo ideal para o problema apontado em 7.1, uma vez que a latncia da rede
um fator contra o qual no se pode lutar, pois, como visto, as componentes distncia
e processamento realizado por roteadores tm influncia direta sobre ela. Mas o uso de
algumas tcnicas pode amenizar seus efeitos negativos. O protocolo RTEP foi criado
buscando atingir esse objetivo.

Ele est na Camada de Aplicao do modelo OSI/ISO. Portanto, dependente de


protocolos das camadas inferiores: RTP/RTCP sobre UDP. Alm disso, o RTEP foi
incorporado JAMP no mesmo nvel onde est atualmente o RMI, isto , na camada de
infraestrutura;

O protocolo utiliza os mecanismos MessageRouting e SmartBeat e EvPack, tambm


criados neste trabalho e descritos nos itens 8.4.2.1, 8.4.2.2 e 8.4.2.3, respectivamente.

Cada evento contido em um pacote do protocolo RTEP tem a seguinte estrutura:

Figura 8.9: Estrutura de um evento do pacote RTEP

O campo IDEvento tem tamanho de 1 byte e identifica o evento gerado no Jmol


decorrente da ao do usurio. Cada evento tem identificao nica.

Parmetro 1 a Parmetro n tm tamanhos variveis de acordo com os tipos de


parmetros do evento. Dados de qualquer tipo serializvel podem se encaixar nessa es-
trutura.

Figura 8.10: Estrutura do pacote RTEP

Como ser visto no item 8.4.2.3, possvel que um pacote RTEP contenha mais de
1 evento. O campo NumEventos informa a quantidade de eventos contidos no pacote.
No h necessidade de utilizar delimitadores entre cada evento e entre cada parmetro,
pois o decodificador do pacote sabe como desmont-lo e obter cada poro de informao
a partir do ID do Evento.

Ao chegar ao servidor destinatrio, o pacote RTEP decodificado e de-serializado.


8.4 Modelo do Ambiente Global 109

As informaes obtidas so passadas aos clientes do grupo, que se encarregam de executar


as aes necessrias no Jmol para refletir o evento recebido.

8.4.2.1 O Mecanismo MessageRouting

O RTEP mantm em memria um grafo ponderado que atualizado a cada intervalo


do SmartBeat. Nesse grafo, os vrtices so os servidores e as arestas so as ligaes entre
eles. Os pesos atribudos s arestas so os valores de latncia entre duplas de servidores
nos dois caminhos de ida. Considere uma situao em que h 4 grupos de pesquisa num
mesmo ambiente virtual. Os valores de latncia, em milissegundos, hipotticos entre cada
servidor em algum instante so dados na Figura 8.11:

Figura 8.11: Valores de Latncia hipotticos do exemplo

Suponha que o usurio detentor do controle do ambiente esteja subordinado ao Ser-


vidor 1. Portanto, todas as mensagens partem do Servidor 1 para os demais. A forma
8.4 Modelo do Ambiente Global 110

natural seria o Servidor 1 enviar as mensagens diretamente aos Servidores 2, 3 e 4. Po-


rm, o protocolo RTEP utiliza o algoritmo de Dijkstra (134), que encontra o caminho cuja
soma dos valores das latncias seja a menor. Veja as combinaes para que o Servidor 1
entregue uma mensagem ao Servidor 2 de acordo com a Figura 8.11:

Servidor 1 para Servidor 2: 120ms;

Servidor 1 para Servidor 3 para Servidor 2: 40+50 = 90ms

Servidor 1 para Servidor 4 para Servidor 2: 180+90 = 270ms

Servidor 1 para Servidor 3 para Servidor 4 para Servidor 2: 40+10+90 = 140ms

Servidor 1 para Servidor 4 para Servidor 3 para Servidor 2: 180+20+50 = 250ms

Conclui-se que o menor tempo de ida alcanado se o Servidor 1 enviar a mensagem ao


Servidor 3 e este a enviar ao servidor 2. Essa configurao de caminhos pode ser alterada
dinamicamente de acordo com as condies dos enlaces envolvidos na comunicao.

Cada servidor mantm um grafo de roteamento em forma de rvore sob o seu ponto de
vista e mantm em memria essa e as rvores dos outros servidores, para que possa saber
se ele deve replicar para outro servidor uma mensagem recebida. Ele envia mensagens
somente aos ns-filhos de primeiro nvel.

8.4.2.2 O Mecanismo SmartBeat

De tempo em tempo um pacote RTCP enviado e recebido entre todos os servidores


contendo informaes de atraso e jitter. Esse intervalo de tempo dinmico, e no esttico
como ocorre com o heatrbeat. Ele calculado de acordo com as condies da comunicao
utilizando o valor do jitter: se o jitter sofre aumento, o intervalo reduzido; seno, o
intervalo aumenta, o que permite reduzir trfego desnecessrio.

Jitter , na prtica, a variao da latncia no decorrer do tempo. Tendo sido estabe-


lecido o valor da latncia, o jitter pode indicar congestionamento no caminho por onde
passam os pacotes. Essa medida importante para ajustar o intervalo SmartBeat. A
obteno dos valores de jitter feita matematicamente a partir dos valores de latncia.

Conforme definido na RFC 3550, o jitter calculado para dois pacotes consecutivos
de acordo com a Equao (8.1). Seja Si o timestamp do pacote i, Sj o timestamp do pacote
j, Ri o horrio de chegada do pacote i ao receptor, Rj o horrio de chegada do pacote
8.4 Modelo do Ambiente Global 111

j ao receptor e J(i-1) o jitter anterior. O jitter atual pode ser calculado utilizando-se a
Equao (8.1):

D(i, j) = (R j S j ) (Ri Si )
|D(i 1, i)| J(i 1) (8.1)
J(i) = J(i 1) +
16

Do instante t0 ao t5 o intervalo SmartBeat fixado de 5 segundos. A partir de t6


utilizada a seguinte sequncia de frmulas para o clculo:

jti1 + jti2 + jti3 + jti4 + jti5


SB = 16
jti + jti1 + jti2 + jti3 + jti4
Se SB < 5 SB = 5 (8.2)

Se SB 30 SB = 30

A Figura 8.12 ilustra um exemplo de variao do intervalo SmartBeat em funo


dos valores do jitter. Note que valores baixos de jitter elevam os valores do intervalo
SmartBeat.

O intervalo SmartBeat calculado, ainda, obedecendo recomendao de que o tr-


fego RTCP no exceda 5% do trfego RTP (128).

Figura 8.12: Exemplo da variao SmartBeat em funo do jitter


8.4 Modelo do Ambiente Global 112

8.4.2.3 O Mecanismo EvPack

EvPack um recurso de software criado neste trabalho e agregado ao protocolo RTEP


com o objetivo de adaptar dinamicamente o tamanho do pacote de acordo com as ca-
ractersticas da rede: ele mede constantemente atraso e jitter na comunicao entre os
servidores (a cada intervalo SmartBeat) para calcular os tamanhos dos pacotes a serem
enviados. Esse mecanismo torna-se interessante quando h variaes de atraso e jitter no
decorrer do tempo, o que natural e ocorre com frequncia em redes best-effort.

EvPack til quando h vrias mensagens na fila a serem enviadas. Pode ser mais
vantajoso enviar vrias mensagens em um mesmo pacote ou enviar vrios pacotes com
apenas uma mensagem cada, ou com duas mensagens cada, ou com trs, e assim por
diante, at atingir o tamanho mximo de 1200 bytes. Isso se justifica pelo fato de que,
normalmente, pacotes IP no so fragmentados quando no atingem tamanho de 1200
bytes de dados. Considera-se, ainda, que os tamanhos das mensagens dependem do evento
gerado e dos parmetros a serem repassados aps serializao. Porm, o valor de 1200
bytes por pacote muito dificilmente seria atingido, pois a gerao de eventos no to
grande a esse ponto.

8.4.3 O Sistema Colaborativo

Considerando o escopo deste trabalho, h duas classes de interao entre os partici-


pantes do ambiente:

A comunicao via texto e/ou voz entre os usurios;

A possibilidade de um usurio perceber as mudanas feitas no ambiente por outro


participante, tema j discutido ao longo desta tese.

Considera-se, daqui em diante, a interao por texto/voz. Alguns softwares de vi-


sualizao/modelagem molecular disponveis atualmente possuem alguma forma de co-
municao integrada ao sistema, mas a grande maioria faz uso de ferramentas externas.
Algumas delas sero apresentadas na Tabela 8.2.

Essas ferramentas so bastante interessantes, especialmente Skype e MSN Messenger,


pois ambos tm interfaces amigveis, intuitivas, bom desempenho e oferecem interao
via texto, voz e vdeo. H dois problemas ao se utilizar esses programas: dependncia de
8.4 Modelo do Ambiente Global 113

servidores externos plataforma proposta neste trabalho e a inconvenincia causada pela


necessidade de alternar entre um software e outro.

Uma das preocupaes deste trabalho a integrao de todos os servios em um


nico ambiente, dispensando o uso de softwares externos. Para atingir esse objetivo, foi
necessrio fazer alteraes no cdigo do Jmol a fim de prepar-lo para permitir a interao
entre usurios:

Foi criada uma janela de chat;

Foi criado um grupo de botes na barra de ferramentas para ligar/desligar o som,


ligar/desligar o microfone e abrir/fechar a janela de chat;

Atravs do JMF (Java Media Framework) feita a difuso/recepo de som e/ou


imagem.

As mensagens trocadas via chat so enviadas da mesma maneira e utilizando os


mesmos recursos do envio de eventos, descrito no item 8.1.

Tabela 8.2: Formas de comunicao entre usurios


Tipo Vantagens Desvantagens Exemplos
Lenta difuso de
mensagens;
H necessidade de cada Outlook;
usurio conhecer os endereos de e-mail dos outros participantes; Outlook Express;
Meio de comunicao No confivel, pois Thunderbird;
e-mail altamente difundido; i)alguma mensagem pode no ser entregue; ii)pode ser utilizado um servidor para Eudora;
Gratuito; cada participante, o que aumenta muito a possibilidade de problemas; GroupWise;
Permitem somente texto e KMail;
imagens anexadas; Lotus Notes
Inconveniente, pois preciso alternar entre o
software de visualizao e o programa de comunicao
Softwares cada vez mais
No pode ser integrado a
populares e com mais recursos; Skype;
nenhum sistema de visualizao de molculas;
Alguns softwares permitem MSN Messenger;
Mensagens Depende de servidores
enviar mensagens para todos do grupo simultaneamente; ICQ;
Instantneas externos, que podem no estar disponveis;
Permite texto, voz e vdeo; AIM;
Inconveniente, pois preciso alternar entre o
Interface amigvel; Google Talk
software de visualizao e o programa de comunicao
Gratuito
Mensagens e vdeos WordPress;
Blogs
Interface amigvel (web); postados podem ser vistos por qualquer pessoa (no somente o grupo de estudo); Orkut;
e
Gratuito Inconveniente, pois preciso alternar entre o Twitter;
Microblogs
software de visualizao e o programa de comunicao Youtube
Muito caro;
Algumas Operadoras
Telefone Permite somente voz;
operadoras de telefonia permitem fazer conferncia entre participantes; de telefonia fixa e mvel
Poucas pessoas podem participar da conferncia
Relativamente barato se
VOIP
comparado telefonia convencional; Permite somente voz; Operadoras
(Voz
Algumas operadoras permitem fazer conferncia Poucas pessoas podem participar da conferncia de telefonia VOIP
Sobre IP)
entre participantes
possvel interao entre
Virtual somente 2 usurios; RealVNC;
Permite
Netrowk No permite comunicao UltraVNC;
que um usurio controle e visualize mquina de outro
Computing por texto, voz ou vdeo; LogMeIn
Soluo excessivamente lenta
Remote Velocidade satisfatria; No Conexo com rea de
Desktop No exige grande largura de banda possvel a interao entre os usurios Trabalho Remota do Windows,Servidores de terminal Linux/Unix

8.4.4 Discusso

A arquitetura descrita nesta tese tem por objetivo criar um ambiente virtual colabo-
rativo para reunir grupos de pesquisa localizados geograficamente distantes, conectados
8.4 Modelo do Ambiente Global 114

via internet, para visualizao molecular contando com elementos de realidade virtual e
multiprojeo, com foco na minimizao dos efeitos do atraso tpico na comunicao pela
internet (latncia).

Foram realizados estudos dos protocolos de comunicao existentes e de identificao


das causas do atraso, cujos resultados foram apresentados no Captulo 7. A concluso
que no possvel diminuir o atraso, embora seja possvel minimizar seus efeitos no
ambiente. Considerando esse fato, a ideia criar um ambiente virtual contendo um
servidor de comunicao em cada grupo e um servidor central. A comunicao entre eles
feita via protocolo RTEP (Real Time Event Protocol).

A escolha por criar esse novo protocolo se deve ao fato de o sistema ser baseado em
eventos e possibilidade de buscar a minimizao dos efeitos negativos do atraso nesse
contexto, o que no tratado pelos protocolos apresentados no Captulo 7. O RTEP
utiliza RTP/RTCP e UDP em suas camadas inferiores. Essa combinao foi escolhida
porque a que apresenta recursos que mais se aproximam dos objetivos desta tese; os
mais importantes so carimbo de tempo (ou timestamp) e numerao sequencial, que
permitem melhor controle da comunicao e eventual reenvio de eventos perdidos. Uma
comparao entre esses recursos pode ser vista na Tabela 8.1.

Baseando-se nas informaes sobre a qualidade da comunicao obtidos do RTCP,


os mecanismos MessageRouting, SmartBeat e EvPack criam os recursos necessrios para
melhoria na comunicao dos eventos via internet, escolhendo a melhor rota para as
mensagens entre os servidores, definindo intervalo dinmico entre pacotes RTCP e esta-
belecendo os tamanhos de cada pacote RTP dinamicamente.
Captulo 9
Testes e Resultados

Com o objetivo de avaliar o desempenho da arquitetura descrita nesta tese, todos os


recursos definidos no Captulo 8 foram implementados e a arquitetura foi submetida a
testes em laboratrio com latncia e vazo controladas. Um cenrio de testes foi montado
para comparar trs esquemas de comunicao entre os servidores de grupo:

RTEP;

Soquetes TCP;

RMI.

9.1 Metodologia de Testes

Foi utilizado um laboratrio com 30 computadores, distribudos em 9 grupos. Os


grupos 1 e 6 ficaram com trs clientes cada e os demais grupos ficaram com dois cada. O
diagrama lgico das conexes, onde todos os servidores tm possibilidade se comunicar
entre si, pode ser visto na Figura 9.1. A figura 9.2 mostra o diagrama fsico das conexes.

Em todos esses computadores foi instalado o sistema operacional FreeBSD (135) com
Kernel modificado. A escolha por esse sistema ser justificada nos itens 9.1.1 e 9.1.2.
9.1 Metodologia de Testes 116

Figura 9.1: Cenrio de testes com conexes lgicas

A forma de aferir o desempenho do sistema baseia-se na mensurao de algumas


variveis cujos valores podem demonstrar o comportamento da qualidade da comunicao
no ambiente. A descrio dessas variveis, bem como sua importncia e formas de coleta
sero apresentadas no item 9.1.3.
9.1 Metodologia de Testes 117

Figura 9.2: Cenrio de testes com conexes fsicas

9.1.1 Sincronismo de Tempo

Todas as variveis medidas nos testes so fortemente dependentes do tempo. O sincro-


nismo dos relgios de todos os servidores envolvidos nos testes e a exatido nos instantes
de medida so fundamentais para obteno de dados confiveis.

O sincronismo de tempo entre os servidores foi obtido com o uso do software ntp
(136). Todos os servidores sincronizam seus relgios entre eles, sendo o Servidor Global
o primeiro na lista de prioridades de cada servidor. necessrio que a preciso do ntp
seja da ordem de 1 milissegundo. O FreeBSD oferece essa granularidade atravs da opo
de kernel options HZ=1000. Como curiosidade, o sistema operacional Windows oferece
granularidade de 10ms, o que tornaria os resultados do teste imprecisos.
9.1 Metodologia de Testes 118

9.1.2 Configurao do Ambiente de Testes

Entre os servidores foram introduzidos valores de latncia e vazo, ambos de sada,


controlados, utilizando, para isso, dummynet e ipfw - recursos avanados, bastante preci-
sos e disponveis somente no FreeBSD. Na Figura 9.3 possvel ver a configurao feita
no Servidor1.

Figura 9.3: Configurao do ipfw

Em uma situao real, os valores da latncia podem no ser simtricos, isto , no


necessariamente um pacote partindo do Servidor1 para o Servidor2 apresenta latncia
igual de um pacote partindo do Servidor2 para o Servidor1, uma vez que os pacotes
9.1 Metodologia de Testes 119

podem trafegar por rotas diferentes e, tambm, devido diferena de trfego na rede nos
dois sentidos e em momentos distintos. Alm disso, os valores da vazo tambm podem
no ser simtricos pelos mesmos motivos.

A Tabela 9.1 apresenta os valores de latncia configurados entre os servidores para


realizao dos testes visando simular um ambiente real de comunicao na internet. Os
valores so unidirecionais; para encontrar o valor entre dois servidores basta escolher
o servidor origem na linha correspondente da tabela e encontrar o servidor destino na
respectiva coluna. A Tabela 9.2 contm os valores de vazo entre os servidores.

Tabela 9.1: Latncias entre servidores durantes os testes

>> Server1 Server2 Server3 Server4 Server5 Server6 Server7 Server8 Server9
Server1 - 5 3 35 230 120 420 125 240
Server2 3 - 170 22 190 260 380 210 320
Server3 12 190 - 16 70 90 480 300 220
Server4 40 30 12 - 140 290 800 150 20
Server5 260 180 65 170 - 170 210 180 80
Server6 110 230 95 300 190 - 560 290 240
Server7 420 380 480 750 210 560 - 650 360
Server8 100 190 290 130 160 310 650 - 100
Server9 220 340 230 16 110 250 360 110 -

A preparao para os testes foi feita de maneira que pudesse ser gerado um arquivo
de script contendo instrues para rotao, translao, zoom e seleo e identificao de
tomos de uma molcula. A gerao desse script se deu previamente em uma instncia
do Jmol executada em uma das mquinas do laboratrio. Os eventos foram gerados de
maneira a simular o uso realstico do visualizador e a chegar aos extremos: h momentos
com intensa gerao de eventos e outros em que nenhum ou poucos eventos so gerados.
O script inclui, ainda, marcao de tempo em que cada evento foi gerado com resoluo
de 1 milissegundo. Essa etapa de gerao do script durou 10 minutos. Ao todo foram
32.264 eventos.
9.1 Metodologia de Testes 120

Tabela 9.2: Vazo entre os servidores durante os testes

>> Server1 Server2 Server3 Server4 Server5 Server6 Server7 Server8 Server9
Server1 - 1000 1500 800 600 2500 250 1500 600
Server2 1200 - 900 1000 1500 400 250 2500 4000
Server3 1800 800 - 9000 6000 7000 250 300 1200
Server4 700 1200 10000 - 300 500 250 2500 15000
Server5 700 1500 5000 200 - 1500 250 500 3500
Server6 3000 500 8000 800 2000 - 250 8000 9000
Server7 250 250 250 250 250 250 - 250 250
Server8 1200 3000 500 3000 800 10000 250 - 10000
Server9 500 4500 1000 10000 3000 8000 250 10000 -

O esquema de obteno dos valores das variveis o seguinte: ao enviar um pacote, o


servidor de origem l a hora do computador com preciso da ordem de 1ms e a armazena
em um arquivo junto com a identificao do pacote. O mesmo procedimento realizado
quando um servidor recebe um pacote. Cada linha desses arquivos corresponde a um
pacote enviado ou recebido. Cada servidor mantm seu prprio arquivo de dados.

Cada teste consiste da execuo do script gerado durante a preparao. Finalizado


o teste, executado um programa desenvolvido especificamente para tratar os dados que
foram gravados nos arquivos.

O usurio atuador aquele que manipula a molcula est posicionado no grupo 4.


Portanto, todos os pacotes partem do Servidor 4.

9.1.3 Variveis Medidas

As variveis medidas nos testes foram: Tempo Mdio de Entrega de Eventos, perda
de eventos e quantidade de eventos que chegaram ao destino em menos de 100ms.

9.1.3.1 Tempo Mdio de Entrega de Evento

Tempo Mdio de Entrega o tempo total decorrido desde a montagem do pacote que
carrega o evento no servidor 4 at o recebimento desse evento por cada um dos outros
servidores no ambiente de teste. uma das medidas da sensao de tempo real ao
usurio do sistema. No cdigo-fonte do prprio RTEP foram inseridas pores de cdigo
para aferio dessa varivel. Ao receber um pacote, o receptor grava o horrio de seu
relgio e a identificao do(s) evento(s) enviado(s).
9.1 Metodologia de Testes 121

Seja S o timestamp do pacote i, e R o horrio de chegada desse pacote ao receptor, e


considerando que h sincronismo entre os relgios do emissor e do receptor, o clculo do
tempo de entrega feito por:

TempodeEntrega = R S (9.1)

O Clculo do tempo mdio obtido pela soma dos tempos de entrega de todos os
eventos a um determinado servidor dividido pela quantidade de eventos.

9.1.3.2 Perda de Eventos

A taxa de perda de eventos dada na Equao (9.2) e representa a porcentagem de


um universo de eventos enviados em um certo perodo de tempo.

EventosPerdidos
Perda = % (9.2)
EventosEnviados

O evento considerado perdido quando o destino no o recebe por um tempo li-


mite pr-determinado, conhecido como timeout. Este depende da distncia, do caminho
por onde passa o pacote, da vazo e do tamanho das filas entre os dois pontos que se
comunicam.

A perda de pacotes representa um grande problema na comunicao em sistemas em


que a perda no tolervel, j que necessria a retransmisso dos pacotes perdidos,
comprometendo a sensao de tempo real da aplicao.

Para obter os valores de perda de eventos na comunicao entre os servidores, foi


suficiente cruzar os dados enviados com os recebidos e comparar as identificaes dos
eventos; todos os eventos enviados so conhecidos e espera-se t-los nos logs dos servidores
destino; caso no estejam, fica evidente a perda. No cdigo-fonte do RTEP foram inseridas
pores de cdigo para aferio dessa varivel. Cada evento enviado registrado em um
arquivo no servidor origem, contendo a identificao do evento e o carimbo-de-tempo
(timestamp). Ao receber um evento, o servidor destino o registra conforme explicado no
item 9.1.3.1. Posteriormente feito o cruzamento das informaes dos dois arquivos para
identificar os eventos perdidos.
9.1 Metodologia de Testes 122

9.1.3.3 Quantidade de Eventos que Chegaram ao Destino em Menos de 100ms

Segundo (137), tempos abaixo de 100ms do tima sensao de percepo de tempo


real em jogos. Transportando esse fato para o contexto desta tese, a aferio dessa mtrica
importante e fcil de ser obtida: j que o Servidor 4 grava todos os eventos ao envia-los
e os outros servidores tambm o fazem ao receb-los, basta fazer uma contagem simples
do tempo de entrega de cada evento.

9.1.4 Resultados Obtidos

Os resultados obtidos a partir dos trs testes realizados (RTEP, sockets TCP e RMI)
foram compilados em uma planilha para possibilitar o entendimento. Cada teste ser
apresentado em separado e, depois, ser feita a anlise comparativa entre os trs esquemas
de comunicao.

9.1.4.1 Resultados para RMI

A comunicao via RMI, que j estava implementada na plataforma JAMP antes da


realizao deste trabalho, foi aproveitada, adaptada e melhorada para suportar o fra-
mework fwMol. Para cada evento gerado no atuador, o Servidor 4 invoca a execuo
remota para recebimento do evento diretamente em cada um dos outros servidores pre-
sentes no ambiente.

Os resultados do teste com RMI mostram que:

Os tempos mdios de entrega ficaram muito altos. Veja figura 9.4. O servidor
que recebeu os eventos mais rapidamente foi o 3. Por outro lado, o servidor 7,
cuja latncia era de 800ms, demorou 10 horas e 10 minutos para receber todos os
eventos, nmeros que mostram a inviabilidade do uso de RMI como protocolo de
comunicao de eventos quando h latncia na rede.
9.1 Metodologia de Testes 123

Figura 9.4: Tempo Mdio de Entrega - RMI

No houve perda de eventos

As latncias efetivas foram as configuradas nos servidores, conforme descrito na


tabela 9.1.

Quantidade de eventos que chegaram ao destino em menos de 100ms: somente 19


eventos atingiram essa marca (0,01% do total).

A relao entre latncia e tempo de entrega se mostrou proporcional, isto , quanto


maior a latncia, maior o tempo de entrega. Analisando a figura 9.5 percebe-se que
para nenhuma faixa de latncia obteve-se tempo de entrega satisfatrio. Ainda, com
latncias acima de 15ms a utilizao do sistema com RMI fica invivel.
9.1 Metodologia de Testes 124

Figura 9.5: Tempos de Entrega em Funo da Latncia para RMI

O trfego de dados ficou concentrado no Servidor 4, pois dele partiram todos os


258.112 pacotes (32.264 eventos para 8 servidores);

O nmero de pacotes enviados pelo Servidor 4 a cada servidor corresponde precisa-


mente ao total de eventos gerados, isto , para cada evento foi enviado um pacote;

importante deixar claro que os esses resultados ruins se devem a alguns fatores
inerentes ao RMI:

O trfego de dados gerado por RMI no pequeno.

RMI executa mtodos remotamente. Toda informao retornada pelos mtodos


remotos carrega a rede e sofre influncia da latncia de volta. Exemplificando:
quando o Servidor 4 executa um mtodo no Servidor 7, a invocao sofre com
a latncia de 4 a 7 e o retorno influenciado pela latncia de 7 a 4. Portanto,
a comunicao por RMI intensa, tem vazo relativamente alta e sofre com as
latncias em ambas as direes.

9.1.4.2 Resultados para Sockets TCP

Para a realizao desse teste, a comunicao via soquetes TCP foi implementada na
camada de infraestrutura da plataforma JAMP. Para cada evento gerado no atuador, o
9.1 Metodologia de Testes 125

Servidor 4 envia um pacote TCP diretamente para cada um dos outros servidores presentes
no ambiente.

Pde-se constatar o seguinte:

O Tempo Mdio de Entrega ficou abaixo dos 600ms, com exceo do Servidor 7,
cuja latncia de ida de 800ms. Nesse caso, como ilustrado nas figuras 9.6 e 9.7, o
tempo foi de 1170ms.

Figura 9.6: Tempo Mdio de Entrega - Sockets

Figura 9.7: Tempos de Entrega em Funo da Latncia para Sockets


9.1 Metodologia de Testes 126

No houve perda de eventos.

As latncias efetivas foram as configuradas nos servidores, conforme descrito na


tabela 9.1.

Quantidade de eventos que chegaram ao destino em menos de 100ms: 48.589 eventos


ficaram abaixo desse tempo (18,82% do total).

Assim como ocorreu com RMI, aqui o trfego tambm se concentrou na sada do
Servidor 4, bem como os 258.112 eventos (32.264 para cada servidor) foram trans-
mitidos em 258.112 pacotes partindo apenas do servidor 4.

9.1.4.3 Resultados para RTEP

Os mecanismos SmartBeat, MessageRouting e EvPack foram testados em conjunto.


Observou-se que:

Os Tempos de Entrega ficaram sensivelmente menores do que o observado com


Sockets e RMI, conforme notado na figura 9.8.

Figura 9.8: Tempo Mdio de Entrega - RTEP

No houve perda de eventos.

As latncias efetivas desde o Servidor 4 at os outros servidores ficaram diferentes do


descrito na tabela 9.1, uma vez que esses valores foram obtidos do grafo apresentado
9.1 Metodologia de Testes 127

na figura 9.9. Este um ponto importante que denota a principal caracterstica da


arquitetura proposta. Mais detalhes no item 9.1.4.4.

A quantidade de eventos entregues em menos de 100ms foi bastante superior a RMI


e Sockets: 150.268 (58,22% do total).

Houve descentralizao dos envios dos pacotes. O Servidor 4 enviou somente para
os Servidores 2, 3, 8 e 9. O Servidor 3 enviou para os Servidores 1, 5 e 6. Por
fim, o Servidor 5 transmitiu eventos para o Servidor 7. Isto est bem ilustrado no
grafo gerado pelo MessageRouting - veja figura 9.9. Portanto, o trfego no ficou
concentrado no Servidor 4.

Figura 9.9: Grafo gerado pelo Servidor 4 durante o teste

Os tempos de entrega com relao s latncias diretas entre o Servidor 4 e os de-


mais dado na figura 9.10. Percebe-se claramente que o tempo de entrega para
9.1 Metodologia de Testes 128

alguns servidores ficou abaixo da latncia da ligao direta entre o remetente e o


destinatrio final.

Figura 9.10: Tempos de Entrega em Funo da Latncia para RTEP

9.1.4.4 Anlise e Comparao

So 4 os pontos principais a serem discutidos com base nos resultados dos testes:

Tempo Mdio de Entrega dos Eventos

Perda de Eventos

Latncias entre servidores efetivamente enfrentadas durante os envios de eventos

Quantidade de eventos que chegaram ao destino em menos de 100ms.

Tempo Mdio de Entrega dos Eventos A anlise dos dados mostra claramente
a vantagem do RTEP com relao a RMI e Sockets TCP. A figura 9.11 apresenta essa
comparao. Nota-se que o tempo mdio de entrega RTEP foi, no pior caso, 176% melhor
que sockets (para o Servidor 2) e 46556% melhor que RMI (para o Servidor 3) e, no
melhor caso, 793% melhor que sockets (para Servidor 1) e 2687007% melhor que RMI
(para Servidor 6). Na mdia dos 8 servidores, RTEP foi 419% melhor que sockets e
1024034% melhor que RMI considerando o tempo mdio de entrega de eventos.
9.1 Metodologia de Testes 129

Figura 9.11: Tempo Mdio de Entrega

Perda de Eventos Este item no apresentou diferena entre os esquemas de comu-


nicao, pois nenhum deles teve perda de eventos.

Latncias entre servidores efetivamente enfrentadas durante os envios de


eventos Uma das propostas dessa arquitetura diminuir os efeitos da latncia na
comunicao. Com o mecanismo MessageRouting isso se tornou possvel. Tomando o
Servidor 7 como exemplo, a anlise do grafo da figura 9.9 mostra que a latncia passou
de 800ms para 292ms. Isso tem impacto positivo no tempo mdio de entrega dos eventos
e na quantidade de eventos que chegam ao destino em menos de 100ms.

Sem dvida pode haver casos em que esse ganho no seja to gritante. Ainda as-
sim, perceber-se- melhoria devido ao mecanismo EvPack, que mostrou-se eficiente, di-
minuindo consideravelmente a quantidade de pacotes enviados. Enquanto sockets e RMI
enviaram cada um 32264 pacotes para cada servidor, RTEP enviou apenas 19.233 pacotes,
transportando os mesmos 32264 eventos. Para garantir que no haja congestionamento,
nenhum pacote RTEP excede 640 bytes de tamanho.

Quantidade de eventos que chegaram ao destino em menos de 100ms Essa


uma das melhores medidas da sensao de tempo real que o usurio experimenta. RTEP
entregou 150.268 (58,22%) dos eventos em menos de 100ms. Por outro lado, sockets
entregou 48.589 (18,82%) e RMI e 0,01%, conforme pode ser visto nas figuras 9.12 e 9.13.
9.1 Metodologia de Testes 130

Figura 9.12: Quantidade de Eventos Entregues em Menos de 100ms

Figura 9.13: Porcentagem de Eventos Entregues em Menos de 100ms


Captulo 10
Concluses e Trabalhos Futuros

10.0.1 Concluses

Este trabalho teve como objetivo a definio de uma arquitetura computacional para
visualizao molecular colaborativa com recursos de realidade virtual baseada em servi-
dores e grupos de trabalho dispostos em ambientes remotamente distribudos. Foi dada
nfase na busca pela minimizao dos efeitos negativos causados por atraso e jitter, ele-
mentos caractersticos e naturalmente presentes em redes best-effort, como o caso de
grande parte da internet atualmente.

Foram apresentados conceitos importantes para o entendimento da arquitetura pro-


posta:

Realidade virtual, realidade aumentada e multiprojeo estereoscpica, elementos


de hardware e software utilizados em RV, alm de sistemas de realidade virtual
multiusurios distribudos, seus componentes e as dificuldades para se projetar um
AVD;

Mecanismos de ao dos frmacos e a importncia da visualizao molecular inte-


rativa e imersiva para a biotecnologia;

Computao Distribuda e a Plataforma JAMP;

Trabalho colaborativo

Alm disso, as caractersticas principais de diversos softwares de visualizao/cons-


truo molecular foram mostradas.
10 Concluses e Trabalhos Futuros 132

Com anlises 1)do estado da arte em visualizao molecular no tocante colabora-


o e uso de recursos de realidade virtual e 2)dos protocolos de transporte UDP, TCP,
RTP/RTCP, SCTP e DCCP, foi possvel propor a arquitetura descrita no Captulo 8.

Essa arquitetura composta por diversos grupos de trabalho denominados Ambientes


Locais e Ambientes Imersivos com Multiprojeo, cada qual com seu prprio servidor
de comunicao. Os servidores so interligados via internet com um servidor central.
A essa interligao deu-se o nome de Ambiente Global. A comunicao no Ambiente
Global feita, portanto, somente entre servidores.

O sistema baseado em eventos gerados por um nico usurio em determinado mo-


mento o controlador do ambiente. Os eventos so transmitidos aos outros usurios
do Ambiente Local e/ou do Ambiente Imersivo com Multiprojeo via RMI/Multicast.
Aos demais grupos os eventos so enviados utilizando a pilha de protocolos RTEP
RTP/RTCP UDP, todos incorporados plataforma JAMP de computao distribuda.

O protocolo RTEP foi criado neste trabalho em busca de melhoria na comunicao


entre servidores. Ele oferece os mecanismos dinmicos SmartBeat (veja item 8.4.2.2),
EvPack (item 8.4.2.3) e o recurso de escolha da melhor rota para trfego de pacotes entre
servidores (detalhes no item 8.4.2.1), todos criados neste trabalho.

A anlise dos resultados permite concluir que a utilizao do ambiente em condies


reais ofereceu desempenho adequado aplicao de visualizao de biomolculas.

O protocolo RTEP desenvolvido, bem como a arquitetura como um todo, atingiram


os objetivos esperados ao superar o desempenho obtido com o uso de soquetes TCP e
RMI nas mesmas condies, conforme ficou demonstrado no item 9.1.4.

Em comparao com o estado da arte na rea de visualizao molecular, o ambiente


aqui descrito oferece recursos integrados de colaborao e realidade virtual. Este conjunto
no est presente em nenhum outro software analisado.

10.0.2 Trabalhos Futuros

Seguem algumas colocaes sobre trabalhos futuros derivados deste:

Implementar tratamento de erros no sistema. Como foi desenvolvido somente um


prottipo para prova de conceito, no houve preocupao com esse aspecto;

Implementar controle de QoS com reserva de recursos no ambiente com o intuito de


10 Concluses e Trabalhos Futuros 133

avaliar o desempenho tanto em redes best-effort como em redes prontas para QoS;

Incorporar QoS JAMP;

Adicionar o protocolo SCTP JAMP e avaliar a substituio do RTP/RTCP por


SCTP aplicado a esta arquitetura;

Fazer pequenas adaptaes para generalizar a arquitetura, de maneira que um grupo


possa conter outros grupos e, estes, mais grupos-filhos;

Testar o protocolo RTEP para suportar outras aplicaes com tamanhos e tipos
diferentes de mensagens
Referncias

1 LEHNINGER ALBERT LESTER; NELSON, D. L. C. M. M. Lehninger princpios de


bioqumica. In: . So Paulo: Sarvier, 2002. p. 189222, 340374.
2 CRUZ-NEIRA CAROLINA; SANDIN, D. J. D. T. A. Surround-screen projection-
based virtual reality: the design and implementation of the cave. In: International
Conference on Computer Graphics and Interactive Techniques. [S.l.]: Association for
Computing Machinery (ACM), 1993. p. 135142.
3 TREVELIN LUIS CARLOS; PRADO, J. A. G. M. P. M. S. P. Development of object
oriented distributed systems (doods) using framworks of the jamp platform. In: ICSE99
- International Conference on Software Enginering - Workshop on Web Engineering. Los
Angeles - Califrnia: [s.n.], 1999.
4 GUIMARES, M. d. P. Projeto e Implementao de Suporte para Trabalho Cooperativo
na Plataforma JAMP. Dissertao (mathesis) UFSCar - Universidade Federal de So
Carlos, 2000.
5 TREVELIN LUIS CARLOS; VESSONI, M. D. Projeto e implementao de um
ambiente de escrita colaborativa baseado em uma plataforma de distribuio. In: Anais
do XVII Simpsio Bras. de Redes de Computadores. [S.l.: s.n.], 1999.
6 TREVELIN LUIS CARLOS; MENDONA, S. P. Servio multicast na plataforma
jamp para suporte a aplicaes multimdia cooperativas. In: Anais do XXV CLEI 1999
- Conferncia Latino-Americana de Informtica. [S.l.: s.n.], 1999.
7 TREVELIN LUIS CARLOS; GUIMARES, M. P. Um framework na plataforma
jamp para suporte ao trabalho cooperativo. In: Anais do CLEI - Conferncia
Latino-Americana de Informtica. [S.l.: s.n.], 1999.
8 TORI ROMERO; KIRNER, C. S. R. Fundamentos e tecnologia de realidade virtual
e aumentada. belm. In: VIII Symposium on Virtual Reality. [S.l.]: SBC Sociedade
Brasileira de Computao, 2006.
9 BIOCCA F.; LEVY, M. R. Communication in the Age of Virtual Reality. Hillsdale,NJ:
Lawrence Erlbaum Associates, 1995.
10 TELEPRESENCE. ltimo acesso em 20/02/2010. Disponvel em:
<http://www.telepresence.org>.
11 TAVARES, A. C. M. Aplicao de um Ambiente Virtual Colaborativo Utilizando
Realidade Aumentada. [S.l.], 2009.
Referncias 135

12 PACKER RANDALL; JORDAN, K. Multimedia: From Wagner t oVirtual Reality.


NewYork,NY: WW Norton & Co, 2001. ISBN 978-0393323757.

13 PIMENTEL K; TEIXEIRA, K. Virtual Reality through the new looking glass. [S.l.]:
McGraw-Hill, 1993.

14 GUIMARES, M. P. Um Ambiente para o Desenvolvimento de Aplicaes de


Realidade Virtual baseadas em Aglomerados Grficos. Tese (phdthesis) Universidade
de So Paulo, So Paulo, 2004.

15 RAPOSO A. B.; SZEMBERG, F. G. M. C. W. Viso estereoscpica, realidade


virtual, realidade aumentada e colaborao. In: Anais do XXIV Congresso da Sociedade
Brasileira de Computao. [S.l.: s.n.], 2004. v. 2, p. 289331.

16 VRML. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:


<http://www.vrml.org>.

17 X3D SPECIFICATIONS. X3D Specifications. 01 2016. ltimo acesso em 20/02/2010.


Disponvel em: <http://www.web3d.org/standards/>.

18 3DMLW. 01 2010. Disponvel em: <http://www.3dmlw.com/doc/>.

19 COLLADA. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:


<http://collada.org/>.

20 O3D. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:


<http://code.google.com/intl/pt-BR/apis/o3d/>.

21 OPENGL. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:


<http://www.opengl.org/>.

22 JAVA 3D. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:


<https://java3d.dev.java.net/>.

23 EON REALITY. Eon Studio. 01 2010. ltimo acesso em 20/02/2010. Disponvel em:
<https://www.eonreality.com/eon-studio/>.

24 BELLEZI, M. A. Estudos de Mecanismos de Representao e Sintetizao em


Ambientes Virtuais Distribudos: Projeto Inicial do Framework Open Reality. Dissertao
(mathesis) Universidade Federal de So Carlos, 2003.

25 TREVELIN LUIS CARLOS; BAPTISTA, B. D. A. D. Q. A. R. B. M. A. Openreality:


An archityecture for distributed 3d visualization. In: Proceedings of The International
Conference on Computer Science, Software Engineering, Information Technology,
e-Business, and Applications (CSITeA 02). Foz do Iguau: [s.n.], 2002. p. 16.

26 SINGHAL S.; ZYDA, M. Networked Virtual Environments: Design and


Implementation. [S.l.]: Addison-Wesley and ACM Press, 1999.

27 SINGH G.; SERRA, L. P. W. N. H. Bricknet: A software toolkit for network-based


virtual world. Presence: Teleoperators and Virtual Environments, MIT Press - Journals,
v. 3, n. 1, p. 1934, jan 1994.
Referncias 136

28 PEER to Peer. ltimo acesso em 16/01/2010. Disponvel em:


<http://pt.wikipedia.org/wiki/P2P>.

29 COMMON Object Request Broker Architecture. ltimo acesso em 16/01/2010.


Disponvel em: <http://www.corba.org>.

30 MICROSYSTEMS, S. Java RMI. Acessado em 16/01/2010. Disponvel em:


<http://java.sun.com/javase/technologies/core/basic/rmi/index.jsp>.

31 KUROSE, J. F. Redes de Computadores e a Internet: uma abordagem top-down.


[S.l.]: Addison Wesley, 2010. ISBN 987-85-88639-97-3.

32 POPE ARTHUR R.; SCHAFFER, R. L. The simnet network and protocols.

33 MACEDONIA M. R.; ZYDA, M. J. P. D. R. B. P. T. Z. S. A network software


architecture for large-scale virtual environment. p. 265287, 1994.

34 FRCON E.; STENIUS, M. A scalable network architecture for distributed virtual


environments. Distributed Systems Engineering Journal, p. 91100, 1998.

35 JOHNSON ANDREW E.; LEIGH, J. D. T. A. B. M. D. S. D. J. Cavern: The cave


research network. In: Proceedings of 1st International Symposium on Multimedia Virtual
Laboratories. [S.l.: s.n.], 1998.

36 GAUD R. S.; GUPTA, G. D. G. S. B. Practical Biotechnology. [S.l.]: Nirali


Prakashan, 2008. ISBN 1234567150259.

37 ROCHA, M. A. Biotecnologia na nutrio de ces e gatos. 2008.

38 DIAS, V. M. P. Realidade Virtual na Aprendizagem de Conceitos Matemticos


Aplicaes 3D na Geometria. Dissertao (mathesis) Universidade Aberta, 2009.

39 DELUCIA ROBERTO; OLIVEIRA-FILHO, R. M. Farmacologia Integrada. 2. ed.


[S.l.]: Revinter, 2004. ISBN 85-7309-758-2.

40 RANG H. P.; DALE, M. M. R. J. M. Farmacologia. Rio de Janeiro: Guanabara


Koogan S.A., 2001.

41 MINNEMAN KENNETH P.; WECKER, L. Brody Farmacologia Humana. [S.l.]:


Elsevier, 2008. ISBN 85-352-1861-0.

42 LEVINTHAL, C. Molecular model-building by computer. Scientific American,


Springer Nature, v. 214, n. 6, p. 4252, jun 1966.

43 ZUDILOVA-SEINSTRA ELENA; ADRIAANSEN, T. (Ed.). Trends in Interactive


Visualization. [S.l.]: Springer London, 2008. ISBN 978-1-84800-269-2.

44 JMOL. ltimo acesso em 16/01/2010. Disponvel em: <http://www.jmol.org>.

45 HANSON, B. Jmol 11.1.5 Perspective/Navigation Model. [S.l.], 2007.

46 HUMPHREY WILLIAM; DALKE, A. S. K. VMD: Visual molecular dynamics.


Journal of Molecular Graphics, Elsevier BV, v. 14, n. 1, p. 3338, feb 1996.
Referncias 137

47 DELANO, W. L. PyMol. ltimo acesso em 16/01/2010.

48 PETTERSEN ERIC F.; GODDARD, T. D. H. C. C. C. G. S. G. D. M. M. E. C.


F. T. E. UCSF chimera?a visualization system for exploratory research and analysis.
Journal of Computational Chemistry, Wiley-Blackwell, v. 25, n. 13, p. 16051612, 2004.

49 GUEX NICOLAS; PEITSCH, M. C. SWISS-MODEL and the swiss-pdb viewer: An


environment for comparative protein modeling. Electrophoresis, Wiley-Blackwell, v. 18,
n. 15, p. 27142723, 1997.

50 SAYLE ROGER A.; MILNER-WHITE, E. J. RASMOL: biomolecular graphics for


all. Trends in Biochemical Sciences, Elsevier BV, v. 20, n. 9, p. 374376, sep 1995.

51 RODELLO, I. A. VRMol - um ambiente virtual para visualizaco e anlise de


molculas. Tese (Doutorado) Universidade de So Paulo, So Carlos, 2003.

52 MOLL, A. et al. BALLView: a tool for research and education in molecular modeling.
Bioinformatics, Oxford University Press (OUP), v. 22, n. 3, p. 365366, dec 2005.

53 YANG, P. et al. BioEditorsimplifying macromolecular structure annotation.


Bioinformatics, Oxford University Press (OUP), v. 19, n. 7, p. 897898, may 2003.

54 SIMBIOSYS. CheVi. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.simbiosys.ca/chevi/>.

55 SYMYX. Chime Pro. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.symyx.com/products/software/cheminformatics/chime-pro/index.jsp>.

56 WANG, Y. et al. Cn3d: sequence and structure views for entrez. Trends in
Biochemical Sciences, Elsevier BV, v. 25, n. 6, p. 300302, jun 2000.

57 DINO3D. Dino3D. ltimo acesso em 16/01/2016. Disponvel em:


<http://www.dino3d.org/>.

58 CAN, T. et al. FPV. In: Proceedings of the 2003 ACM symposium on Applied
computing - SAC 03. [S.l.]: Association for Computing Machinery (ACM), 2003.

59 ZUCIC, D. Garlic, Free Molecular Visualization Program. ltimo acesso em


16/01/2010. Disponvel em: <http://pref.etfos.hr/garlic/>.

60 ROTKIEWICZ, P. iMol Molecular Visualization Program. ltimo acesso em


16/01/2010. Disponvel em: <http://www.pirx.com/iMol>.

61 SOLUTIONS, M. B. Molegro Molecular Viewer. ltimo acesso em 16/01/2010.

62 BELL, G. MollyCule. ltimo acesso em 16/01/2010.

63 KORADI, R.; BILLETER, M.; WTHRICH, K. Molmol: A program for display


and analysis of macromolecular structures. Journal of Molecular Graphics, Elsevier BV,
v. 14, n. 1, p. 5155, feb 1996.

64 KRAULIS, P. J. Molscript: a program to produce both detailed and schematic


plots of protein structures. Journal of Applied Crystallography, International Union of
Crystallography (IUCr), v. 24, n. 5, p. 946950, oct 1991.
Referncias 138

65 INC., Z. S. ZMM MOLECULAR MODELING PROGRAM. ltimo acesso em


16/01/2010. Disponvel em: <http://www.zmmsoft.com/>.

66 GALE, L. ProCreate. ltimo acesso em 16/01/2010. Disponvel em:


<http://members.iinet.net.au/ lahg/procreate/>.

67 MISHCHENKO, M. A. Protein Data Bank Viewer. ltimo acesso em 16/01/2010.


Disponvel em: <http://www.mmish.ru/ProteinViewer.htm>.

68 WEBER, J. R. ProteinShader: illustrative rendering of macromolecules. BMC


Structural Biology, Springer Nature, v. 9, n. 1, p. 19, 2009.

69 CRIVELLI, S. et al. ProteinShop: A tool for interactive protein manipulation and


steering. Journal of Computer-Aided Molecular Design, Springer Nature, v. 18, n. 4, p.
271285, apr 2004.

70 GANS JASON D.; SHALLOWAY, D. Qmol: a program for molecular visualization


on windows-based pcs. Journal of Molecular Graphics and Modelling, Elsevier BV, v. 19,
n. 6, p. 557559, dec 2001.

71 TARINI, M.; CIGNONI, P.; MONTANI, C. Ambient occlusion and edge cueing for
enhancing real time molecular visualization. IEEE Transactions on Visualization and
Computer Graphics, Institute of Electrical and Electronics Engineers (IEEE), v. 12, n. 5,
p. 12371244, sep 2006.

72 RAMACHANDRAN. The Ramachandran Plot Explorer. ltimo acesso em


16/01/2010. Disponvel em: <http://boscoh.com/ramaplot/>.

73 BACON, D. J.; ANDERSON, W. F. A fast algorithm for rendering space-filling


molecule pictures. Journal of Molecular Graphics, Elsevier BV, v. 6, n. 4, p. 219220,
dec 1988.

74 SANTORINI. Santorini - a Molecular Viewer. ltimo acesso em 16/01/2010.


Disponvel em: <http://oeffner.net/development/#Santorini>.

75 RODOMONTANO. SweetMollyGrace. ltimo acesso em 16/01/2010. Disponvel em:


<http://rodomontano.altervista.org/engSweetMG.php>.

76 GOLOSOVA, O. et al. Unipro UGENE NGS pipelines and components for variant
calling, RNA-seq and ChIP-seq data analyses. PeerJ, PeerJ, v. 2, p. e644, nov 2014.

77 SOFTWARE, O. S. Vida. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.eyesopen.com/products/applications/vida-vivant.html>.

78 HILL, J.-R. ViewMol. ltimo acesso em 16/01/2010. Disponvel em:


<http://viewmol.sourceforge.net/>.

79 AMIRA. Amira Molecular. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.amiravis.com/amira/molecular.html>.

80 CRYSTALLOGRAPHY, I. U. of. A Guide to CIF for Authors. ltimo acesso em


16/01/2010. Disponvel em: <http://journals.iucr.org/c/services/cifguide.html>.
Referncias 139

81 MURRAY-RUST PETER; RZEPA, H. S. Chemical markup language. a position


paper. 2001. Disponvel em: <http://cml.sourceforge.net/historical/position.html>.

82 GORDON, M. S.; SCHMIDT, M. W. Advances in electronic structure theory:


Gamess a decade later. Theory and Applications of Computational Chemistry: The First
Forty Years, p. 11671189, 2005.

83 FUNDATION wwPDB. PDB Documentation. Disponvel em:


<http://www.wwpdb.org/docs.html>.

84 CHEMAXON. Marvin Space. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.chemaxon.com/brochures/MarvinSpace.pdf>.

85 ACCELRYS. Discovery Studio Visualization. ltimo acesso em 16/01/2010.


Disponvel em: <http://accelrys.com/products/datasheets/ds-visualizer-0809.pdf>.

86 USA, I. C. SYBYL-X Suite. ltimo acesso em 16/01/2010. Disponvel em:


<https://www.certara.com/software/molecular-modeling-and-simulation/sybyl-x-
suite/>.

87 POLAND, F. Scigress Explorer. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.fqs.pl/chemistry_materials_life_science/products/scigress>.

88 NWCHEM. ECCE - Extensible Computational Chemistry Environment. ltimo


acesso em 16/01/2010. Disponvel em: <http://ecce.emsl.pnl.gov>.

89 THOMPSON, M. ArgusLab. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.arguslab.com/arguslab.com/ArgusLab.html>.

90 CHEMCRAFT. ChemCraft. Disponvel em: <www.chemcraftprog.com>.

91 INC., P. ChemDraw Professional. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.cambridgesoft.com/software/ChemBioDraw/>.

92 ALLOUCHE, A. R. GabeditA graphical user interface for compu-


tational chemistry softwares. ltimo acesso em 16/01/2010. Disponvel em:
<http://gabedit.sourceforge.net/home.html>.

93 ACTON AUSTIN; BANCK, M. B. J. C. M. C. D. H. T. H. V. H. G. H.


J. J. J. L. R. R. C. Ghemical. ltimo acesso em 16/01/2010. Disponvel em:
<http://www.bioinformatics.org/ghemical/ghemical/index.html>.

94 LAAKSONEN, L. gOpenMol. ltimo acesso em 16/01/2010.

95 VASILYEV, V. Jamberoo - Cross-Platform Molecular Editor. ltimo acesso em


16/01/2010. Disponvel em: <http://sf.anu.edu.au/ vvv900/cct/appl/jmoleditor/>.

96 BIOSCIENCES, Y. Yasara. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.yasara.org/>.

97 MOLECULE, A. Ascalaph Molecular Modelling Suite. ltimo acesso em 16/01/2010.


Disponvel em: <http://www.biomolecular-modeling.com/Ascalaph/>.
Referncias 140

98 PROCHEMIST. PROCHEMIST MOLECULAR MODELING FOR


THE BENCH CHEMIST. ltimo acesso em 16/01/2010. Disponvel em:
<http://pro.chemist.online.fr/>.

99 LUO, Y. et al. An interactive molecular visualization system for education in


immersive multi-projection virtual environment. In: Third International Conference on
Image and Graphics (ICIG 04). [S.l.]: Institute of Electrical and Electronics Engineers
(IEEE), 2004. p. 485488.

100 ANDERSON, A.; WENG, Z. Vrdd: Applying virtual reality visualization to protein
docking and design. Journal of Molecular Graphics and Modelling, Elsevier BV, v. 17,
n. 3-4, p. 180186, jun 1999.

101 CZERNUSZENKO, M. et al. The immersadesk and infinity wall projection-based


virtual reality displays. ACM SIGGRAPH Computer Graphics, Association for
Computing Machinery (ACM), v. 31, n. 2, p. 4649, may 1997.

102 CORP, S. CrystalEyes. [S.l.: s.n.], 1989.

103 UNIVERSITY, D. DIVE - Duke immersive Virtual Environment. Disponvel em:


<http://virtualreality.duke.edu/>.

104 SCHAEFFER, B.; GOUDESEUNE, C. Syzygy: native PC cluster VR. In: IEEE
Virtual Reality, 2003. Proceedings. [S.l.]: Institute of Electrical and Electronics Engineers
(IEEE), 2003. p. 1522.

105 MORITZ, E.; MEYER, J. Interactive 3d protein structure visualization using


virtual reality. In: Proceedings. Fourth IEEE Symposium on Bioinformatics and
Bioengineering. [S.l.]: Institute of Electrical and Electronics Engineers (IEEE), 2004.

106 KIM JEE-IN; PARK, S. L. J. C. Y. J. S. Development of a gesture-based molecular


visualization tool based on virtual reality for molecular docking. Bulletin of the Korean
Chemical Society, Korean Chemical Society, v. 25, n. 10, p. 15711574, oct 2004.

107 MARCHESE, F. T.; BRAJKOVSKA, N. Fostering asynchronous collaborative


visualization. In: 2007 11th International Conference Information Visualization (IV07).
[S.l.]: Institute of Electrical and Electronics Engineers (IEEE), 2007.

108 FOUNDATION, T. A. S. JSPWiki. ltimo acesso em 16/01/2010. Disponvel em:


<http://jspwiki.apache.org/>.

109 CHASTINE, J. et al. A collaborative multi-view virtual environment for molecular


visualization and modeling. In: Coordinated and Multiple Views in Exploratory
Visualization (CMV05). [S.l.]: Institute of Electrical and Electronics Engineers (IEEE),
2005.

110 SKYPE, I. Skype. ltimo acesso em 16/01/2010. Disponvel em:


<http://www.skype.com>.

111 MICROSYSTEMS, S. JXTA. ltimo acesso em 16/01/2010. Disponvel em:


<https://jxta.dev.java.net/>.
Referncias 141

112 MARCHESE, F.; MERCADO, J.; PAN, Y. Adapting single-user visualization


software for collaborative use. In: Proceedings on Seventh International Conference on
Information Visualization, 2003. IV 2003. [S.l.]: Institute of Electrical and Electronics
Engineers (IEEE), 2003.

113 SU, S. et al. Distributed collaborative virtual environment: Paulingworld. In:


Proceedings of the 10th International Conference on Artificial Reality and Telexistence.
[S.l.: s.n.], 2000.

114 BOURNE P.; GRIBSKOV, M. J. G. M. J. W. H. A prototype molecular interactive


collaborative environment (mice). In: Pacific Symposium on Biocomputing. [S.l.: s.n.],
1998. p. 118129.

115 SOUZA L. F. H.; TREVELIN, L. C. Jamp platform and multimedia oriented


middleware services. In: ICIMADE 2001 - International conference on Intelligent
Multimedia and Distance Education Conference. Fargo - North Dakota: John WIley &
Sons, 2001. p. 122130.

116 MICROSYSTEMS, S. Introduction to CORBA. ltimo acesso em 20/02/2010.


Disponvel em: <http://java.sun.com/developer/onlineTraining/corba/corba.html>.

117 MICROSYSTEMS, S. Java RMI. ltimo acesso em 20/02/2010. Disponvel em:


<http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html>.

118 TECHNOLOGY, I. of I. Introduction to Java Remote Method Invocation (RMI).


ltimo acesso em 09/2010. Disponvel em: <Introduction to Java Remote Method
Invocation (RMI)>.

119 TPKE, C. R. Uma Metodologia para Caracterizao de Trfego e Medidas de


Desempenho em Backbones IP. Tese (Doutorado), Rio de Janeiro, 2001.

120 DEMICHELIS, C.; CHIMENTO, P. IP Packet Delay Variation Metric for IP


Performance Metrics (IPPM). [S.l.], nov 2002.

121 BRADEN L. ZHANG, S. B. S. H. S. S. J. E. R. Resource Reservation Protocol.


[S.l.], 1997.

122 KUZMANOVIC, A. The power of explicit congestion notification. In: Proceedings


of the 2005 conference on Applications, technologies, architectures, and protocols for
computer communications - SIGCOMM 05. [S.l.]: Association for Computing Machinery
(ACM), 2005.

123 CALIFORNIA, S. F. University of. ltimo acesso em 09/2010.

124 THEORETICAL; ILLINOIS, C. B. G. U. of. VMD Sup-


port for VR. ltimo acesso em 09/2010. Disponvel em:
<http://www.ks.uiuc.edu/Research/vmd/allversions/interactive_MD.html>.

125 POSTEL, J. User Datagram Protocol (RFC 768). [S.l.], 1980. Disponvel em:
<http://tools.ietf.org/pdf/rfc768.pdf>.

126 INSTITUTE, I. S. Transmission Control Protocol (RFC 793). [S.l.], 1981. Disponvel
em: <http://tools.ietf.org/pdf/rfc793.pdf>.
Referncias 142

127 FOMENKOV M.; KEYS, K. M. D. C. K. Longitudinal Study of Internet Traffic in


1998-2003. [S.l.], 2003.

128 KOISTINEN, T. Protocol Overview: RTP and RTCP. [S.l.]: Nokia Telecommuni-
cations, 2000.

129 JR ARMANDO L.; IYENGAR, J. L. A. P. D. L. S. H. I. G. J. S. K. C. C. Sctp:


A proposed standard for robust internet data transport. In: . [S.l.]: IEEE Computer
Society, 2003. p. 2027.

130 KOHLER, E.; FLOYD, S. Datagram congestion control protocol (DCCP) Overview.
2003.

131 TAKEUCHI, S. et al. Performance evaluations of DCCP for bursty traffic in


real-time applications. In: The 2005 Symposium on Applications and the Internet. [S.l.]:
Institute of Electrical and Electronics Engineers (IEEE), 2005.

132 ZUFFO JOO ANTONIO; SOARES, L. P. Z. M. K. L. R. d. D. Caverna digital -


sistema de multiprojeo estereoscpico baseado em aglomerados de pcs para aplicaes
imersivas em realidade virtual. In: 4th Symposium on Virtual Reality SVR 2001. [S.l.:
s.n.], 2001.

133 VALE HELENO M. C.; OLIVEIRA, C. S. D. C. P. A. J. V. Construo de


ambientes de multiprojeo imersivos para tratamento de fobias no ambiente de trabalho.
In: Innovare. [S.l.: s.n.], 2010.

134 DIJKSTRA, E. W. A note on two problems in connexion with graphs. Numerische


Mathematik, Springer Nature, v. 1, n. 1, p. 269271, dec 1959.

135 FREEBSD. ltimo acesso em 17/06/2010. Disponvel em:


<http://www.freebsd.org>.

136 FOUNDATION, N. T. NTP. ltimo acesso em 09/2010. Disponvel em:


<http://www.ntp.org>.

137 SWINK, S. Game Feel: A Game Designers Guide to Virtual Sensation. Taylor
& Francis, 2009. (Morgan Kaufmann Game Design Books). ISSN 9780123743282.
Disponvel em: <https://books.google.com.br/books?id=i9GfunWcB-oC>.
Glossrio

API Application Program Interface, ou interface de programao de aplicativos, um


conjunto de rotinas e padres estabelecidos por um software para utilizao de suas
funcionalidades por programas aplicativos. composta por uma srie de funes
acessveis somente por programao. 31

Applet um software aplicativo que executado no contexto de outro programa (como


por exemplo um web browser). 48

Ball and stick Modelo de visualizao molecular que pretende mostrar a posio tridi-
mensional dos tomos e as ligaes entre eles. Os tomos so representados por
esferas e as barras representam as ligaes. 46

Broadcast forma de propagao de pacotes de comunicao entre computadores, na


qual um computador capaz enviar dados para todos os outros computadores de
sua rede, porm sem saber quem so esses computadores. 33

Broker agente que intermedia a disponibilizao e o consumo de servios distribudos


numa rede. 33

Cluster aglomerado de computadores; formado por um conjunto de computadores que


utiliza um tipo especial de sistema operacional chamado de sistema distribudo.
Muitas vezes construdo a partir de computadores convencionais, os quais so
ligados em rede e comunicam-se atravs do sistema, trabalhando como se fossem
uma nica mquina de grande porte. 62

Dead-Reckoning tcnica utilizada para predizer uma aproximao do estado das enti-
dades de um AVD nos perodos entre uma chegada e outra de atualizaes. 32

Docking melhor ajuste entre duas molculas no espao tridimensional. 16

Feedback retorno. 23
Glossrio 144

Framework uma classe de software que se caracteriza por disponibilizar funciona-


lidades especficas de maneira que se possa adaptar mais recursos. Sozinho, um
framework no faz nada; ele necessita de um programa que faa uso de suas funci-
onalidades. Um bom exemplo o seguinte: imagine o framework de uma bicicleta;
teramos o quadro onde outras peas se encaixam. Somente o quadro no serve
para muita coisa, mas quando acopla-se pedais ou um sistema de marchas eficiente,
estamos preparando o framework Bicicleta para andar. 18

Garbage collector Coletor de lixo. um processo usado para a automao do gerenci-


amento de memria. Com ele possvel recuperar uma rea de memria inutilizada
por um programa, o que pode evitar problemas de vazamento de memria, resul-
tando no esgotamento da memria livre para alocao. 51

Grid Computao em grade; um modelo computacional capaz de alcanar uma alta


taxa de processamento dividindo as tarefas entre diversas mquinas, podendo ser
em rede local ou rede de longa distncia, que formam uma mquina virtual. 27

Head Mounted Display dispositivo acoplado cabea que exibe imagens tridimensio-
nais e pode possuir sensor de movimentao. 22

Heartbeat mensagens enviadas periodicamente (como batidas do corao) por um dis-


positivo informando seu estado. 34

Host qualquer computador ou mquina ligada a uma rede. 33

Kernel ncleo do sistema operacional. 115

Middleware software que conecta outros softwares e aplicativos. Consiste de um con-


junto de servios que permite a interao entre vrios processos em execuo em
uma ou mais mquinas. 77

Multicast forma de propagao de pacotes de comunicao entre computadores, na qual


um computador capaz enviar dados para vrios outros utilizando apenas um envio
e no vrios, sendo um para cada mquina - , economizando banda. 33

Space filling spheres um tipo de modelo molecular tridimensional onde os tomos


so representados por esferas cujos raios so proporcionais aos raios dos tomos e
as distncias entre os tomos tambm apresentam proporcionalidade com o mundo
real. 46
Glossrio 145

Toolkit pacote de software que oferece ferramentas para o desenvolvimento de aplicati-


vos. 29

Tracking rastreamento. 28

Unicast forma de propagao de pacotes de comunicao entre computadores, na qual


um computador um pacote de dados de cada vez. 33

Web rede. Especificamente neste trabalho essa palavra refere-se a world wide web, o
popular WWW utilizado por navegadores para acessar sites na internet. 48

z-buffer tecnologia encarregada de gerir as coordenadas de profundidade de imagens


grficas em trs dimenses. 50

Anda mungkin juga menyukai