Escolar Documentos
Profissional Documentos
Cultura Documentos
em comutao de pacotes
Jri
Presidente:
Orientador:
Vogais:
Novembro de 2007
Agradecimentos
No decorrer desta dissertao de mestrado, muitos foram os incentivos e apoios que me foram
dirigidos. Quero agradecer, em primeiro lugar, ao Professor Orientador, Mrio Serafim Nunes, e aos
acompanhantes do trabalho realizado, Lus Silva, Carlos Anjos e Nelson Escravana, sem os quais,
certamente no estaria concludo. Gostaria tambm de agradecer os preciosos comentrios e
sugestes realizadas pelos colegas de curso assim como todo o apoio oferecido pelos amigos e
famlia.
Resumo
O
desenvolvimento
de
novos
servios
de
dados
suportados
por
novas
redes
de
Palavras-chave
Controlo remoto de computadores; Redes mveis celulares; Telemveis; Interfaces de entrada e
sada; Protocolo de comunicao; Java
ii
Abstract
The development of new data services supported by new telecommunication networks, allowed
the conception of a variety of software applications over mobile communications that usually only
made sense in personal computers with Internet access. Knowing this, the purpose of this work was to
develop an application that allows the remote control of a desktop computer using a mobile device.
Although a mobile phone is not the friendliest interface to remote control a desktop computer, it can
however, become an important tool in several situations.
Considering all the limitations imposed by the mobile devices and by the data network that
supports them, several tests were made to determine the viability of the project and some work was
done to solve the problems related with the APIs used in this project. Also, through the development of
several navigation and scaling modes, special attention was given in order to make the application
work with as many different types of mobile devices as possible, both in terms of memory and
processing capabilities.
Original features, like the possibility of sound transfer from the remote computer to the mobile
device, giving the user a closest idea of really being sited in front of the computer, and the definition of
user profiles, making the access to a specific application much easier by the mobile device, were
introduced in this work.
Finally, tests were made to measure specific parameters of the mobile cellular networks services
used (i.e. throughput and round trip time).
Key Words
PC remote control; Mobile phones; Mobile cellular networks; I/O interface; Communication protocol;
Java
iii
ndice
Agradecimentos...................................................................................................................................... i
Resumo ................................................................................................................................................... ii
Palavras-chave....................................................................................................................................... ii
Abstract ................................................................................................................................................. iii
Key Words ............................................................................................................................................. iii
Lista de Figuras .................................................................................................................................... vi
Lista de Tabelas ................................................................................................................................... vii
Lista de Siglas..................................................................................................................................... viii
Captulo I.
Introduo .................................................................................................................... 1
I.1
Introduo............................................................................................................................... 1
I.2
Enquadramento ...................................................................................................................... 2
I.3
Captulo II.
II.1
GSM........................................................................................................................................ 7
II.2
GPRS...................................................................................................................................... 8
II.3
UMTS...................................................................................................................................... 9
II.4
HSDPA ................................................................................................................................. 11
Captulo III.
Captulo IV.
IV.1
IV.2
IV.2.1
IV.3
IV.3.1
TCP vs UDP................................................................................................................. 28
IV.3.2
Implementao ............................................................................................................ 32
IV.3.3
IV.4
Captulo V.
V.1
Introduo............................................................................................................................. 45
V.2
iv
V.3
Estatsticas (Stats)................................................................................................................ 47
V.4
Ping....................................................................................................................................... 48
V.5
Testes ................................................................................................................................... 50
V.5.1
Transferncia de Som...................................................................................................... 50
V.5.2
V.5.3
V.5.4
V.5.5
Captulo VI.
Concluses................................................................................................................. 62
VI.1
Concluses ........................................................................................................................... 62
VI.2
Referncias........................................................................................................................................... 65
Anexo A. Protocolo RFB ................................................................................................................... 67
A.1 Protocolo de Display ................................................................................................................... 67
A.2 Protocolo de entrada (input)........................................................................................................ 67
A.3 Representao de um pixel ........................................................................................................ 67
A.4 Extenses ao protocolo............................................................................................................... 68
A.5 Mensagens de Protocolo ............................................................................................................ 68
A.5.1 Mensagens de handshaking inicial...................................................................................... 69
A.5.2 Tipos de segurana ............................................................................................................. 71
A.5.3 Mensagens do cliente para o servidor................................................................................. 72
A.5.4 Mensagens do servidor para o cliente................................................................................. 75
A.5.5 Codificaes ........................................................................................................................ 76
A.5.6 Pseudo-Codificaes........................................................................................................... 78
Anexo B. Manual de Utilizao (User Guide) .................................................................................. 79
B.1 Viewer ......................................................................................................................................... 80
B.2 Server.......................................................................................................................................... 86
Anexo C. Algoritmos de compresso e descompresso .............................................................. 89
C.1 Compresso................................................................................................................................ 89
C.2 Descompresso .......................................................................................................................... 90
Anexo D. Repeties de smbolos num ficheiro de udio ............................................................ 91
Lista de Figuras
Figura I.1 Arquitectura da VNC............................................................................................................. 5
Figura III.1 Esquema do servio RDM+............................................................................................... 12
Figura IV.1 Incio de uma sesso VNC na aplicao original ( esquerda) e numa verso modificada
( direita). ............................................................................................................................................... 16
Figura IV.2 Teclas especiais............................................................................................................... 17
Figura IV.3 Formulrio para definio de macros. ............................................................................. 18
Figura IV.4 Cenrio exemplificativo de uma caracterstica da aplicao original. ............................. 19
Figura IV.5 Navegao pelo ambiente de trabalho em zoom normal na aplicao original. ............. 23
Figura IV.6 Representao dos 3 zooms disponveis na aplicao. ................................................. 24
Figura IV.7 Cabealho de uma trama TCP ........................................................................................ 29
Figura IV.8 Cabealho de uma trama UDP ........................................................................................ 31
Figura IV.9 Incorporao do mecanismo de transferncia de som.................................................... 32
Figura IV.10 Formato de um ficheiro WAVE [5] ................................................................................. 33
Figura IV.11 Representao temporal do funcionamento alternado dos dois players....................... 37
Figura IV.12 Diagrama de blocos da soluo em TCP para a transferncia de udio. ..................... 38
Figura IV.13 Diagrama de blocos da soluo em UDP para a transferncia de udio...................... 39
Figura IV.14 Diagrama de mensagens da soluo em TCP (lado esquerdo) e da soluo em UDP
(lado direito) ........................................................................................................................................... 40
Figura IV.15 Exemplo de perfis de utilizador para acesso a aplicaes distintas.............................. 42
Figura IV.16 Interface grfico para configurao dos perfis de utilizador. ......................................... 43
Figura IV.17 Estrutura de dados utilizada para armazenar os perfis de utilizador............................. 43
Figura V.1 Exemplo de um registo capturado no incio de uma sesso. ........................................... 46
Figura V.2 Exemplo das estatsticas de uma sesso......................................................................... 47
Figura V.3 Troca de mensagens durante um incio de sesso TCP falhado. .................................... 49
Figura V.4 Exemplo de um Ping efectuado durante uma sesso VNC.............................................. 50
Figura V.5 Grficos relativos transferncia de som por TCP durante cerca de 1 minuto ............... 52
Figura V.6 - Grficos relativos transferncia de som por UDP durante cerca de 1 minuto ............... 54
Figura V.7 Imagem utilizada para os testes s actualizaes ao ambiente de trabalho ................... 55
Figura V.8 Dbito obtido na rede GPRS............................................................................................. 55
Figura V.9 Durao das actualizaes quando a alterao ao factor de escala realizada no
telemvel................................................................................................................................................ 56
Figura V.10 Durao das actualizaes quando a alterao ao factor de escala realizada no lado
do servidor ............................................................................................................................................. 57
Figura V.11 Grficos relativos utilizao da aplicao num cenrio tpico. .................................... 59
vi
Lista de Tabelas
Tabela II.1 Esquemas de codificao do GPRS. ................................................................................. 9
Tabela II.2 - Dbito mximo em funo do esquema de codificao e do nmero de time slots. .......... 9
Tabela II.3 - Evoluo da Tecnologia GSM. .......................................................................................... 11
Tabela III.1 Comparao entre as trs solues oferecidas pela SHAPE services [4]...................... 13
Tabela III.2 Resumo das principais caractersticas das vrias aplicaes de controlo remoto ......... 14
Tabela IV.1 Formato da mensagem de pedido de mudana de factor de escala.............................. 25
Tabela IV.2 Formato da mensagem indicando uma alterao ao factor de escala. .......................... 25
Tabela IV.3 Formato da mensagem indicando o tipo de segurana a utilizar. .................................. 42
Tabela IV.4 Formato da mensagem contendo o nome de utilizador e a resposta ao desafio. .......... 43
Tabela V.1 Tempos de Ida e Volta obtidos no dispositivo HTC TyTn. ............................................... 60
Tabela V.2 Tempos de Ida e Volta obtidos no dispositivo Nokia 6630. ............................................. 60
vii
Lista de Siglas
3G
AMC
API
ARP
ASCII
DES
DoS
Denial of Service
FDD
FDMA
GPL
GPRS
GSM
HSDPA
HTTP
IEEE
J2ME
JPEG
MMAPI
MIDP
MTU
PCM
QoS
Quality of Service
RFB
RRE
Rise-and-Run-length Encoding
SSH
Secure Shell
TCP/IP
TDD
TDMA
UMTS
VNC
VPN
RMS
RTP
RTSP
ITU
viii
Captulo I. Introduo
I.1 Introduo
As diferenas de funcionalidade existentes entre telemveis e computadores pessoais so cada
vez menores, mas ainda assim existem devido aos requisitos especficos dos terminais mveis. Com
a crescente evoluo das capacidades dos telemveis e das respectivas redes, estas podero servir
de ponte para aproximar, cada vez mais, um vulgar telemvel de um computador pessoal. O objectivo
deste trabalho foi o de desenvolver uma plataforma que permitisse aceder e controlar um computador
atravs de um terminal mvel, recorrendo para isso a uma ligao de dados GPRS ou UMTS (3G).
Deve-se no entanto ter em considerao as limitaes dos telemveis comuns, em termos de
dimenses do ecr, memria e interface de entrada.
importante diferenciar entre ferramentas de acesso remoto e ferramentas de controlo remoto do
PC [6]: nas primeiras, as aplicaes existem no cliente e o servidor de acesso remoto basicamente
um comutador multi-protocolo baseado em software, dedicado a facilitar a comunicao entre os
clientes de acesso remoto e os recursos na rede em que est inserido; as segundas foram
concebidas para controlar remotamente o computador alvo, partilhando o ecr, teclado e rato, atravs
de uma ligao distncia, sendo as aplicaes concretizadas no servidor.
Deste modo, a ideia consiste em, desenvolver uma ferramenta para controlo remoto de PCs,
permitindo a um telemvel (cliente), aceder facilmente a um computador pessoal que se encontre
ligado Internet (servidor), com o intuito de o controlar, visualizar todo o ambiente de trabalho e
escutar o udio que estiver a ser reproduzido no mesmo. Para este efeito, resolveu-se utilizar uma
arquitectura cliente servidor, pela sua simplicidade e utilidade prtica e por no requerer a utilizao
de mais componentes alheios ao utilizador.
Optou-se por utilizar no servidor (computador a ser controlado) uma aplicao de distribuio
gratuita, open-source e multi-plataforma, de modo a limitar o mnimo possvel, em termos de
plataformas alvo, o uso da aplicao a ser desenvolvida. Para este efeito, foi escolhido o software
VNC (Virtual Network Computing) [1], que um sistema de cliente ultra-leve, largamente difundido,
baseado num protocolo simples e independente da plataforma que permite, atravs da interface
remota, visualizar e controlar o ambiente de trabalho do computador onde instalado. O seu desenho
assume o mnimo de requisitos acerca do cliente, facilitando o desenvolvimento de clientes nos mais
variados tipos de hardware (no caso deste projecto, no hardware limitado dos telemveis). Possui
ainda caractersticas que permitem reduzir a largura de banda utilizada, como por exemplo, reduzindo
o nmero de cores a utilizar, retirando o Wallpaper e padres de fundo, permitindo transferir s as
partes que sofrem alteraes no ambiente de trabalho, fazendo actualizaes s quando solicitadas
pelo cliente, etc. Estas caractersticas tornam-se bastante teis dadas as capacidades limitadas das
redes mveis celulares e o preo cobrado pelas operadoras ao kilobyte transferido. Esta aplicao
permite ainda que vrios utilizadores estejam ligados ao mesmo servidor ao mesmo tempo,
possibilitando o desenvolvimento de trabalho cooperativo.
No lado do cliente (terminal mvel), resolveu-se utilizar Java (J2ME), no seu formato
MIDP1.0/CLDC1.0, pois a maioria dos telemveis existentes no mercado suportam o uso desta
tecnologia, tentando-se assim abranger o mximo de plataformas mveis possveis. Existem j
alguns programas disponveis, concebidos para este efeito, sendo um dos objectivos deste projecto, o
de melhorar e contribuir para a aplicao open-source existente (http://j2mevnc.sourceforge.net/) e
adicionar-lhe novas funcionalidades. Nomeadamente, acrescentou-se a possibilidade de transferncia
de udio entre o servidor e o cliente (Seco IV.3), tendo em considerao que a maior parte dos
telemveis actuais no suportam streaming sobre a API do Java utilizada (MMAPI [12]) mas apenas
em players criados na linguagem nativa aos mesmos. Permitiu-se a definio de perfis de utilizador
(Seco IV.4), ou seja, quando um utilizador se liga, dependendo do que estiver definido no servidor
para ele, este poder aceder a uma aplicao especfica em vez de ter acesso a todo o ambiente de
trabalho. Acrescentou-se a possibilidade de as alteraes ao factor de escala da imagem visvel no
ecr do telemvel, serem efectuadas no lado do servidor (Seco IV.2) para minimizar os requisitos
de processamento exigidos aos dispositivos mveis. Por ltimo, tornou-se o uso da aplicao mais
prtico, directo e parecido com o existente nos computadores, tendo sempre em considerao as
limitaes impostas pelas interfaces dos telemveis (Seco IV.1 e IV.2).
Para a comunicao entre telemvel e computador pessoal (cliente e servidor), utiliza-se no
telemvel as actuais redes mveis celulares existentes (GPRS e UMTS) e utiliza-se qualquer tipo de
acesso Internet por parte do computador. Para provar a validade deste projecto que opera sobre
redes sem fios com caractersticas particulares, foi ainda realizado o estudo do funcionamento destas
redes, dos seus parmetros e das suas limitaes (Seco V.5).
I.2 Enquadramento
Para o desenvolvimento deste projecto, comeou-se por analisar as limitaes das redes mveis
celulares, para deduzir se seriam capazes de suportar os requisitos do projecto. Verificou-se que as
redes UMTS (3G) tm uma capacidade mxima, dependente do contracto com a operadora, entre
384 kbps e 14 Mbps tericos (utilizando HSDPA [3]). Como se pretende abranger o mais vasto leque
de telemveis possvel, verificou-se tambm que as redes GPRS permitem entre 28 kbps e 64 kbps
de Downlink e 14 kbps de Uplink, valores estes bastante mais limitativos.
Desde modo, tendo em considerao as capacidades e limitaes das redes, analisaram-se as
vrias alternativas possveis para transferir o ambiente de trabalho do servidor para o cliente, para
assim optar por uma via de trabalho. Algumas das hipteses ponderadas foram:
posio do cursor do rato. Desde que o ritmo de actualizaes no fosse bastante elevado
esta hiptese pareceu-nos factvel.
Criar uma aplicao em J2ME para receber o streaming enviado pelo servidor e
desenvolver um protocolo de comunicao para se poder interagir com este. Esta
opo no se revelou exequvel pelas dificuldades encontradas na grande maioria dos
telemveis em realizar streaming RTSP utilizando o J2ME.
VNC vs Criar uma nova aplicao de servidor. No caso de se criar uma aplicao de raiz
para correr no computador, esta deveria ser multi-plataforma, para limitar o mnimo possvel a
sua utilizao. A alternativa seria utilizar a aplicao VNC que de distribuio gratuita e j
independente da plataforma utilizada. O servidor de VNC tem tambm vrias possibilidades
para reduzir a largura de banda utilizada, tais como, retirar o papel de fundo do ambiente de
trabalho (Wallpaper), reduzir o nmero de cores utilizadas, vrios tipos de codificaes para
os formatos dos pixeis enviados, permite enviar apenas as seces do desktop que sofrem
alteraes, etc. Comparando com outras solues existentes no mesmo mbito, resolveu-se
optar pelo VNC, por no ser uma soluo proprietria e por disponibilizar o cdigo sobre
licena GPL [24]. Tudo isto fez do VNC, numa primeira aproximao, o candidato ideal para
correr no computador alvo.
Para utilizar o servidor VNC ser necessrio construir um cliente para correr no telemvel,
compatvel com o protocolo RFB (Remote Frame Buffer) [2] utilizado por este.
como o cliente VNC existente para telemveis, desenvolvendo todas as funcionalidades adicionais
que se considerem necessrias para cumprir os requisitos identificados. A alternativa de construir
tudo de raiz levaria mais tempo e implicaria um maior risco, alcanando-se no fim, provavelmente, um
desenvolvimento anlogo ao existente.
Deste modo, todo o projecto baseia-se na aplicao VNC, que um sistema de partilha do
ambiente grfico de um computador, que utiliza o protocolo RFB para controlo remoto deste. Para
alcanar tal objectivo, transmitem-se os eventos relacionados com o teclado e com o rato de um
dispositivo para o outro, sendo as actualizaes ao ambiente grfico transferidas pela rede no sentido
inverso. O VNC independente da plataforma que o suporta. Deste modo, um cliente de VNC que
esteja a operar sobre um qualquer sistema operativo, pode-se ligar a um servidor de VNC a funcionar
sobre outro qualquer sistema operativo, existindo clientes e servidores desenvolvidos para quase
todos os sistemas com ambientes grficos conhecidos e tambm para Java. A utilizao mais popular
desta tecnologia inclui a assistncia remota e o acesso a ficheiros no computador do trabalho a partir
do computador de casa ou vice-versa. O VNC foi desenvolvido pela AT&T e o cdigo fonte original e
muitos dos seus derivados so open-source sobre licena GPL. O sistema VNC consiste num cliente,
num servidor e num protocolo de comunicao (ver Figura I.1):
O servidor de VNC o programa que opera na mquina que partilha o seu ambiente de
trabalho.
O protocolo de VNC bastante simples e baseia-se numa nica primitiva grfica: Colocar um
rectngulo de pixeis na posio (X, Y) especificada.
segurana extra, a toda a sesso. Ambos os mecanismos referidos esto disponveis para os
principais sistemas operativos.
No VNC, os servidores fornecem no apenas dados e aplicaes, mas tambm o ambiente de
trabalho completo que pode ser acedido de qualquer mquina ligada Internet. Para alm disso, o
VNC permite que um nico ambiente de trabalho seja acedido de vrios locais simultaneamente,
suportando a partilha de aplicaes no mbito de trabalhos cooperativos. Ou seja, pode oferecer
suporte computacional aos indivduos que tentam resolver um problema em colaborao com outros,
sem que todos estejam no mesmo local, ao mesmo tempo. Os sistemas cooperativos permitem a
comunicao de ideias, a partilha de recursos e a coordenao dos esforos de trabalho. A sua meta
permitir o trabalho em conjunto de forma simples e eficaz, ajudando a comunicar, coordenar e
colaborar. Um exemplo que pode ser referido o de desenvolvimento de aplicaes em equipa. Se
os membros da equipa no se encontrarem na proximidade uns dos outros, torna-se necessrio
recorrer a mtodos alternativos de comunicao para debaterem ideias, tirarem dvidas,
fundamentarem opes de projecto, delinear tarefas individuais, etc. Neste caso, toda a equipa pode
combinar aceder por VNC ao computador de um dos seus membros e este poder explicar atravs
de uma pequena demonstrao o que tm vindo a fazer, pedir ajuda numa seco de cdigo que
apresenta um erro, ou inclusive, utilizando uma ferramenta de desenho, tentar explicar as opes de
projecto consideradas ou tentar ilustrar algum conceito. Durante todo este processo os restantes
membros da equipa podem no s visualizar o que se est a passar no computador remoto mas
tambm interagir com o mesmo.
O protocolo RFB utilizado, no mantm no cliente informao de estado. Deste modo, se um
cliente se desligar e se voltar a ligar ao mesmo servidor, o estado do ambiente de trabalho no
servidor preservado. Se um segundo cliente se conectar ao mesmo servidor, ele ir ter acesso
exactamente ao mesmo ambiente de trabalho que o primeiro cliente e que qualquer outro cliente que
se ligue posteriormente. Com efeito, obtm-se assim o que pode ser chamado de ambiente de
trabalho mvel, ou seja, onde quer que exista uma ligao Internet, o utilizador pode aceder s
suas aplicaes pessoais e o estado destas preservado entre acessos.
Anexo
So
descritos
os
algoritmos
(pseudo-cdigo)
de
compresso
Captulo II.
O sistema de controlo remoto de um computador pessoal proposto neste projecto, pode ser
suportado por vrias redes de acesso mvel, tais como o GSM, GPRS, UMTS e HSDPA, permitindo
deste modo, utilizar as vrias geraes disponveis at hoje. Neste captulo so abordadas as
caractersticas gerais de cada uma destas tecnologias de acesso mvel, dando-se particular nfase
ao ritmo mximo de transmisso disponibilizado para downlink, sendo que esta a principal
caracterstica necessria para a viabilidade do trabalho em questo.
Os servios disponibilizados pelas redes mveis celulares podem ser divididos em trs
categorias:
Servios Suplementares Servios adicionais oferecidos pelos operadores, tais como por
exemplo, o envio ou supresso da identificao do chamador, possibilidade de chamadas em
conferncia, chamada em espera e reencaminhamento de chamadas.
II.1 GSM
O GSM uma norma de comunicaes mveis, adoptada inicialmente ao nvel da Europa a partir
do ano de 1992, para fornecimento de servios de comunicao baseados em comunicao digital.
Concretamente em Portugal esta tecnologia surgiu inicialmente atravs do operador TMN e em
seguida pelos operadores Telecel e Optimus. Com o intuito de substituir os sistemas analgicos
utilizados at ento na Europa, o GSM foi concebido para dar suporte principalmente a servios de
voz mas posteriormente passou a suportar tambm servios de dados. O GSM 1800 foi
disponibilizado tambm a nvel Europeu no ano de 1997 com a finalidade de diminuir a sobrecarga
em termos de capacidade do GSM 900. No que diz respeito ao espectro de frequncia, o GSM 900
utiliza a banda entre 935 e 960 MHz nos canais de downlink e utiliza a banda entre 890 e 915 MHz
para os canais de uplink, enquanto que o GSM 1800, utiliza a bandas entre 1805 e 1880 MHz para os
canais de downlink e utiliza a banda entre 1710 e 1785 MHz para os canais de uplink. No GSM 900
cada banda subdividida em 124 portadoras e no GSM 1800 em 374 portadoras, espaadas de 200
kHz. Cada portadora ainda dividida em 8 time slots, correspondendo a cada time slot um canal a
atribuir a cada utilizador. uma tecnologia que utiliza para acesso ao canal rdio a combinao das
tcnicas de diviso no tempo (TDMA) e na frequncia (FDMA), dadas as limitaes do espectro.
O GSM foi desenvolvido tendo como principal objectivo a conquista do mercado de voz e apenas
posteriormente surgiram alguns servios de dados limitados pelo baixo ritmo de transmisso
disponvel. Tais servios apresentam um ritmo de transmisso mxima de 14,4 kbps e uma vez que
esta tecnologia utiliza a comutao de circuitos, evidente a desvantagem na tarifa aplicada a um
servio de dados como o acesso Internet, isto , a tarifa aplicada durante o tempo em que o
circuito esteja estabelecido e no sobre a quantidade de informao transmitida.
II.2 GPRS
O crescimento das aplicaes de dados como o acesso Internet, e-mail e entretenimento, levou
necessidade de desenvolver solues que permitissem a transmisso de dados a ritmos superiores
em comutao de pacotes. Em 1999 foi lanado em Portugal a nvel comercial tambm pelos
operadores TMN, Vodafone (antiga Telecel), e Optimus, a tecnologia GPRS [14] que est inserida na
segunda gerao e meia (2.5G), e foi a principal tecnologia que serviu como ponte entre 2G e 3G. O
GSM foi implementado tendo como principal objectivo o servio de voz, enquanto que o GPRS
utilizando a rede GSM, pretende disponibilizar servios de transmisso de dados, como por exemplo
o acesso Internet. Com este propsito, o GPRS utiliza mltiplos time slots para efectuar a
transmisso dos pacotes de dados, com a diferena que no existe uma reserva permanente dos
mesmos. Os time slots so reservados conforme a necessidade de transmitir informao,
conseguindo-se desta forma um servio de dados com ligao permanente (always on), sem a
necessidade de reservar continuamente os time slots para o transporte de dados. Deste modo, uma
das vantagens a facturao ser efectuada sobre o volume de informao transaccionado e no
sobre o tempo da ligao.
No GSM por cada chamada de voz atribudo um time slot. No GPRS, de modo a maximizar o
ritmo de transmisso podem ser atribudos ao mesmo terminal vrios time slots. As especificaes
definem 29 classes para os terminais, conforme o nmero de time slots utilizados na recepo ou
transmisso. O dbito obtido est directamente relacionado com trs factores: esquema de
codificao utilizado no canal, nmero de time slots suportados pelo dispositivo mvel e nmero de
utilizadores de GSM e GPRS na clula. Os esquemas de codificao permitem a deteco e
correco de erros em caso de perda de dados e so utilizados na interface rdio dependendo da
qualidade da ligao. So definidos 4 esquemas de codificao para o GPRS, tal como se apresenta
na Tabela II.1.
C/I
min[dB]
8
12
14
20
9,05
12,4
15,6
21,4
-6
-9
-12
-17
CS-1
CS-2
CS-3
CS-4
Pode-se verificar que quanto melhor for a cobertura da clula, ou seja, quanto maior for a relao
sinal rudo (C/I), menos robusto deve ser o esquema de codificao a utilizar. Sendo o dbito obtido
em funo do esquema de codificao e do nmero de time slots, os dbitos mximos em kbps so
apresentados na Tabela II.2. Com esta tecnologia possvel atingir um ritmo mximo terico de
171,2 kbps para o esquema com menos redundncia (CS-4) e com a utilizao dos 8 time slots.
O nmero de time slots utilizado depende da classe do terminal mvel e da configurao da rede.
Na configurao da rede GPRS, o operador pode reservar um determinado nmero de time slots s
para trfego de dados, ou ento, pode dar prioridade voz e o trfego de dados utiliza apenas os
canais livres. Desta forma o trfego de dados depende do nmero de utilizadores activos de GSM
numa clula.
Na realidade os operadores utilizam normalmente o esquema de codificao CS-2 e a maioria
dos terminais mveis so de classe multislot 6 (Slots - Rx:2 e Tx:2 ou Rx:3 e Tx:1), o que implica um
dbito em uplink entre 13,4 e 26,8 kbps e em downlink entre 26,8 e 40,2 kbps. Estes dbitos esto
ainda dependentes do nvel de congestionamento da clula que serve o terminal ou da existncia de
time slots disponveis.
Tabela II.2 - Dbito mximo em funo do esquema de codificao e do nmero de time slots.
Slots
CS-1 [kbit/s]
CS-2 [kbit/s]
CS-3 [kbit/s]
CS-4 [kbit/s]
9,05
13,4
15,6
21,4
18,1
26,8
31,2
42,8
27,17
40,2
46,8
64,2
36,2
53,6
62,4
85,6
45,25
67,0
78,0
107,0
54,3
80,4
93,6
128,4
63,35
93,8
109,2
149,9
72,4
107,2
124,8
171,2
II.3 UMTS
UMTS [15] designada por Universal Mobile Telecommunication System a sigla utilizada para
especificar o padro 3G (terceira gerao), sendo esta a evoluo para as operadoras de GSM.
Apesar das principais especificaes desta tecnologia terem sido definidas entre o ano de 2000 e
2002, a sua introduo em Portugal foi efectuada pelo operador Vodafone no princpio do ano 2004
logo seguida da TMN em Abril do mesmo ano e por ltimo a Optimus. A necessidade de desenvolver
esta nova tecnologia, prendeu-se com o facto de haver um grande aumento de utilizadores de
comunicaes mveis e tambm porque o sistema GSM comeou a ficar saturado no que diz respeito
s frequncias de rdio que lhe foram destinadas. O desenvolvimento de novas aplicaes e a
melhoria da qualidade de servio de algumas aplicaes j existentes no 2.5G foi outra das razes
para implementao da 3G.
Ao nvel de frequncias o UMTS utiliza a faixa entre 1900 e 2200 MHz, onde 155 MHz so para a
componente terrestre e 60 MHz so para a componente de satlite. As bandas entre 1900 e 1920
MHz e entre 2010 e 2025 MHz so utilizadas pelo modo TDD (Time Division Duplex), ambas para
uplink e downlink, as bandas entre 1920 e 1980 MHz e entre 2110 e 2170 MHz so utilizadas pelo
modo FDD (Frequency Division Duplex), em uplink e downlink respectivamente e as bandas entre
1980 e 2010 MHz e entre 2170 e 2200 MHz so utilizadas pelo modo MSS (Mobile Satellite System),
em uplink e downlink correspondentemente.
A interface rdio utilizada no UMTS designada por WCDMA (Wide Code Division Multiple
Access). Esta sigla provm do facto de se tratar de um sistema de banda larga com base na
tecnologia CDMA (Code Division Multiple Access) que efectua um espalhamento do espectro de um
determinado sinal na frequncia, ou seja, transforma um sinal de banda estreita num sinal de banda
larga. A cada utilizador atribudo um cdigo atravs do qual efectuado o espalhamento do sinal
quando o utilizador pretende transmitir. Na recepo, atravs do conhecimento do mesmo cdigo
efectuado o processo inverso. Como os cdigos so ortogonais entre si possvel ter mais que um
utilizador a partilhar a mesma frequncia sem ocorrer o risco de perda de informao.
Os ritmos de transmisso esto directamente relacionadas com o tipo de clula (rea de
cobertura), e com a mobilidade do terminal mvel, sendo que em situaes ideais, ou seja, zonas
prximas da estao base e com pouca mobilidade, o dbito pode atingir os 2 Mbps. Pelo contrrio,
em zonas mais afastadas da estao de base e para mobilidades superiores o dbito pode atingir
valores de 144 kbps. A ITU (International Telecommunication Union) definiu trs limites de dbito
associados mobilidade:
Alta: Ritmo de transmisso na ordem dos 144 kbps quando o utilizador estiver a viajar a mais
de 120 km/h no exterior em ambientes rurais.
Total: Ritmo de transmisso na ordem dos 384 kbps para pees que se estejam a deslocar a
menos de 120 km/h no exterior, em ambientes citadinos.
Limitada: Ritmo de transmisso na ordem dos 2Mbps para um utilizador que se esteja a
deslocar a menos de 10 km/h, dentro de um edifcio.
Actualmente em Portugal apenas o modo FDD est em funcionamento. No caso em que estejam
ambos os modos a operar em conjunto, o modo FDD pode ser aplicado em ambientes macro e
microcelulares, permitindo ligaes simtricas e para elevada mobilidade, disponibilizando ritmos de
transmisso at aos 384 kbps. Por sua vez o modo TDD pode ser utilizado em ambientes micro e
picocelulares, permitindo ligaes assimtricas e simtricas, disponibilizando ritmos de transmisso
at 2 Mbps para baixa mobilidade.
10
II.4 HSDPA
O servio HSDPA (High Speed Downlink Packet Access) [16] foi desenvolvido com base no
WCDMA e tem como principais objectivos aumentar o ritmo de transmisso em downlink fornecido ao
utilizador e melhorar a qualidade de servio (QoS). O HSDPA atribui ao utilizador um canal de dados
em downlink com um ritmo de transmisso mximo que pode chegar aos 14 Mbps. A utilizao desta
tecnologia adequada para servios em que o trfego recebido superior ao trfego enviado, tal
como acontece quando se navega na Internet ou na transmisso de vdeo em tempo real (multicast).
Uma das principais tcnicas empregues nesta tecnologia para obter um elevado ritmo de transmisso
em downlink a utilizao de uma modulao e codificao adaptativa (AMC Adaptive Modulation
and Coding).
Na Tabela II.3 visvel a evoluo da tecnologia GSM, dando-se especial ateno aos ritmos de
transmisso em downlink disponibilizados pelas vrias geraes
Tecnologia
Taxa de dados
mxima terica (kbit/s)
Taxa de dados mdia
(kbit/s)
Frequncia de
funcionamento (MHz)
Espaamento
entre portadoras (kHz)
2G
GSM
2,5 G
3G
WCDMA
WCDMA/HSDPA
(UMTS)
(UMTS)
GPRS
14,4
171,2
2.000
14.000
30-40
220-320
550-1100
900 e 1800
900 e 1800
2000
2000
200
200
5000
5000
11
Captulo III.
12
um telemvel, bastando para tal que o computador alvo tenha o Terminal Service (Windows
NT/2000/2003) ou o Windows Remote Desktop (Windows XP e Vista) instalado.
A terceira soluo, VNC+, um cliente mvel baseado em VNC que permite ter acesso a
plataformas Windows, Macintosh ou Unix desde que contenham um servidor de VNC instalado
(gratuito e open-source).
A Tabela III.1 [4] apresenta um resumo das caractersticas de cada uma destas ferramentas,
permitindo uma melhor comparao entre elas.
Tabela III.1 Comparao entre as trs solues oferecidas pela SHAPE services [4].
Aplicao de
controlo remoto
RDM+
VNC+
Sistema
Operativo
Microsoft Windows NT /
2000 / XP / 2003
Microsoft Windows 98 /
NT / 2000 / XP / 2003,
Linux / Unix e MacOS
Microsoft Windows NT /
2000 / XP / 2003
Microsoft Windows
XP Professional
Quantidade de
utilizadores
Vrios utilizadores
podem aceder ao
ambiente de trabalho
remoto no mesmo
instante e interagir com
este.
Vrios utilizadores
podem aceder ao
ambiente de trabalho
remoto no mesmo
instante e interagir com
este.
Apenas um
utilizador poder
aceder ao
ambiente de
trabalho em cada
instante.
Requerimentos
de ligao
No necessrio um
acesso directo ao
computador alvo,
sendo que este pode
estar por detrs de
uma firewall / /proxy.
Aplicaes
adicionais
Requer a instalao da
aplicao adicional
proprietria no
computador alvo.
Tipo de ligao
Troca de
ficheiros
Protocolo
TSMobiles
necessrio um acesso
directo atravs da
Internet ao porto 5900 no
computador alvo. A
ligao a este porto deve
ser concedido pela
firewall / proxy.
Requer a instalao do
software grtis no
computador alvo:
UltraVNC
RealVNC
TightVNC
TCP (directo)
Sim
RDM (Proprietrio)
VNC/RFB
TCP (directo)
Todas estas ferramentas requerem que os telemveis suportem Java (J2ME) com a
especificao MIDP2.0, que s se encontra disponvel nos telemveis mais recentes. Para no limitar
o uso da aplicao resultante, neste projecto resolveu-se utilizar o MIDP1.0 por ser suportado por um
maior nmero de plataformas mveis.
Outras duas aplicaes disponveis para este mesmo efeito so a VNC2Go (www.freeutils.net) e
a j2mevnc (http://j2mevnc.sourceforge.net/), sendo que ambas so de distribuio gratuita, mas s a
segunda open-source com licena GPL. A primeira apresenta-se como um ferramenta mais
simples, no permitindo alteraes ao factor de escala do ambiente de trabalho e revelando-se mais
limitada nas funcionalidades, comparando com as outras solues. Tendo este facto em
considerao, a escolha para cliente mvel recaiu sobre a segunda opo por ser open-source. Deste
modo, no se despendeu tempo a conceber uma aplicao de raiz, visto que j existem solues
realizadas no mesmo mbito.
Em termos de caractersticas e funcionalidades disponveis nas vrias aplicaes mencionadas
neste captulo, pode ser visualizado um resumo das mais importantes na Tabela III.2.
13
Tabela III.2 Resumo das principais caractersticas das vrias aplicaes de controlo remoto
Aplicao de controlo
remoto
RDM+
TSMobile
VNC+
VNC2Go
J2MEVNC (verso
original)
J2MEVNC
(verso
final)
Visualizao em ecr
completo
Sim
(requer
MIDP2.0)
Sim
(requer
MIDP2.0)
Sim
(requer
MIDP2.0)
No
No
No
Zoom
Sim
Sim
Sim
No
Sim
Sim
(melhorado)
Sim
Sim
Sim
No
No
Sim
Sim
(requer
MIDP2.0)
Sim
(requer
MIDP2.0)
Sim
(requer
MIDP2.0)
No
No
No
Livro de endereos
Sim
Sim
Sim
No
Sim
Sim
(melhorado)
Sim
No
No
No
No
No
Sim
Sim
No
No
No
No
Sim
Sim
No
No
No
No
Clipboard
Sim
Sim
Sim
No
No
Sim
Disponibilizao dos
vrios botes do rato e
duplos cliques
Sim
Sim
Sim
Sim
S clique simples e
duplo-clique
Sim
Sim (no
exaustiva)
Transferncia de
ficheiros
Segurana durante a
sesso (dados cifrados)
Permite associar
algumas
funcionalidades a
teclas especficas do
telemvel
Sim (no
exaustiva)
Sim (no
exaustiva)
Sim (no
exaustiva)
Sim (no
exaustiva)
Transferncia de som
No
No
No
No
No
Sim
Perfil de utilizadores
No
No
No
No
No
Sim
No
No
No
No
No
Sim
No
No
No
No
No
Sim
Possibilidade de as
alteraes ao factor de
escala serem
efectuados pelo
servidor
Armazenamento em
memria de todo o
ambiente de trabalho
possibilitando uma
navegao sem
necessidade de pedidos
de actualizao
constantes
Em termos de software necessrio no servidor, a escolha recaiu no VNC por ser multi-plataforma,
de distribuio gratuita e open-source, permitindo assim o desenvolvimento de novas funcionalidades
que envolvam programao tanto no lado do cliente como no lado do servidor.
No caso do presente trabalho, foi mesmo necessrio desenvolver em ambos os lados da
arquitectura cliente servidor, para permitir, por exemplo, a transferncia de som, a realizao das
alteraes ao factor de escala por parte do servidor e a definio de perfis de utilizador. Foi ainda
14
15
Captulo IV.
Figura IV.1 Incio de uma sesso VNC na aplicao original ( esquerda) e numa
verso modificada ( direita).
16
2. Para permitir ao utilizador um acesso a teclas que podem ser acedidas facilmente num
teclado normal de computador mas no num telemvel, a verso original continha um modo
de definir combinaes de teclas (macros) que o utilizador podia utilizar. Estas macros,
definidas no MIDlet About, apareciam directamente nos itens do menu principal durante o
decorrer de uma sesso VNC, o que fazia com que a lista de itens crescesse com o aumento
do nmero de macros disponveis, tornando este menu pouco prtico de utilizar. Para um
utilizador inexperiente e no familiarizado com o formato utilizado para a definio das
macros (referido no Anexo B), era impossvel utilizar teclas que no existissem no teclado
limitado do telemvel.
Foi criado um novo formulrio, Special keys (Figura IV.2 - a), acessvel pelo menu
principal, com uma lista de teclas predefinidas no cdigo da aplicao, s quais se juntam
as macros definidas pelo utilizador. Basta seleccionar-se a tecla desejada neste
formulrio e pressionar ok, que esta automaticamente enviada para o servidor. No caso
de teclas como shift, ctrl, alt left, alt right, meta, estas so mantidas pressionadas no
servidor e aparece uma indicao no ecr do telemvel para o utilizador no se esquecer
das mesmas (este efeito pode ser visualizado na Figura IV.2 - b). Deste modo, podem
ser efectuadas combinaes de teclas para alm das definidas nas macros, por exemplo,
pressionar o ctrl, depois o shift (ambas ficam pressionadas no servidor at nova ordem) e
depois o escape. No foi realizada uma lista exaustiva de todas as teclas, mas tentou-se
disponibilizar as mais comuns, sendo sempre possvel ao utilizador definir mais macros.
a)
b)
17
18
4. No modo em que todo o ambiente de trabalho remoto visvel no ecr do telemvel (zoom
out), os pedidos de actualizao s eram efectuados para a poro do desktop seleccionada.
Isto obrigava o utilizador, no caso de ter aberto uma janela ou aplicao que ocupasse todo o
ambiente de trabalho, a percorr-lo seco a seco de forma a realizar a actualizao na
ntegra. Para melhor se visualizar este efeito, representa-se na Figura IV.4, um cenrio
exemplificativo onde se pode observar que o utilizador premiu o boto Iniciar do Windows e
comeou a percorrer o desktop de modo a tornar visvel o menu expandido.
Neste modo (zoom out), as actualizaes passaram a ser efectuadas ao ambiente de
trabalho completo e no apenas poro seleccionada, passando a ser incrementais. Ou
seja, apenas as alteraes que ocorreram no desktop desde a ltima actualizao, so
enviados para o telemvel. Desta forma, se o utilizador mexer o rato de posio ou abrir
uma janela, apenas o cone do rato na nova posio ou a nova janela so enviadas pelo
servidor e no todo o ambiente de trabalho. Este resultado visvel no teste efectuado na
Seco V.5.3.
19
5. No MIDlet About na verso disponibilizada, apenas era permitido adicionar novas macros e
actualizar as existentes, no sendo no entanto possvel apag-las.
Tendo isto em considerao, foi implementada a funcionalidade que permite apagar as
macros, bastando para isso seleccionar a macro desejada e escolher a opo delete. Foi
tambm introduzida uma limitao que no permite que sejam criadas duas macros com
o mesmo nome (no faz sentido estarem disponveis para o utilizador duas macros sem
que se possa distinguir o seu contedo).
7. A gesto dos sistemas anfitries (hosts) era pouco prtica e no permitia alterar as palavraschave sem ter de se eliminar o sistema anfitrio em questo e cri-lo de novo.
Alterou-se o formulrio que permitia apenas visualizar e apagar os sistemas anfitries
existentes, para poder agora tambm, alterar a palavra-chave que lhes corresponde, sem
ter de os apagar e criar de novo. Este formulrio passa ainda a permitir seleccionar o
sistema anfitrio de entre os existentes e efectuar a ligao ao mesmo. Antes, esta lista
era visvel quando se carregava no boto de menu do formulrio inicial, misturada com os
vrios comandos (de log, connect, manage hosts, exit), o que a tornava incmoda
quando existia mais do que um sistema anfitrio armazenado em memria.
8. Se a aplicao ficasse bloqueada por algum erro interno que no fosse tratado, nada indicava
ao utilizador que esta estava parada.
Para o utilizador no ficar sem saber se o programa se encontra a funcionar ou
bloqueado, foi introduzida uma simples animao de rotao no smbolo de refresh.
20
9. Durante uma sesso de VNC estabelecida, a opo exit fazia com que a aplicao
terminasse completamente. A ideia era substituir esta opo por um disconnect, para no se
ter de sair da aplicao quando apenas se pode querer fechar a sesso em curso e
estabelecer uma outra para outro servidor.
Actualmente, ao se escolher a opo exit quando existe uma ligao estabelecida, o
programa em vez de terminar por completo, volta ao formulrio inicial onde se pode
efectuar uma nova ligao a outro sistema anfitrio. Para terminar completamente a
aplicao deve-se seleccionar novamente a opo exit (no formulrio inicial).
10. A aplicao reconhecia quando, no servidor, era copiado algum texto para o clipboard, mas
essa informao era simplesmente descartada.
Passou-se a armazenar no cliente o texto copiado, permitindo ao utilizador aceder a este
e modific-lo no formulrio especifico para edio de texto e envio para o servidor.
Qualquer texto escrito neste formulrio pode agora tambm ser copiado para o clipboard
e esta informao ser passada ao servidor. Para obter este efeito foi necessrio
implementar as mensagens do protocolo RFB correspondentes (ver Anexo A, seco
A.5.3.6 e A.5.4.4).
11. Nas vrias aplicaes VNC testadas (descritas no Captulo III. ), quando em modo de
utilizao do cursor, se o utilizador ultrapassasse as fronteiras do ecr, a imagem acessvel
do ambiente de trabalho deslocava-se automaticamente para ser visvel a nova posio do
rato. Isto permitia utilizar o cursor e navegar pelo ambiente de trabalho sem ter de se alternar
entre o modo de utilizao do cursor e o modo de navegao. No entanto esta caracterstica
no se encontrava disponvel na aplicao escolhida.
Foram efectuadas as alteraes necessrias para se conseguir obter este efeito no
cliente do telemvel, tendo em considerao os diferentes modos de navegao e a
utilizao dos diferentes factores de escala (zoom) existentes.
12. Para telemveis com teclados qwerty, as teclas que permitem alternar entre os modos de
navegao, cursor, SMS e escrita, assim como as que permitem modificar o factor de escala,
no funcionam.
Para solucionar isto, foi adicionado um novo menu, Change Mode, onde se pode escolher
o modo desejado e fazer zoom in e zoom out, sem o recurso s teclas predefinidas.
21
Como a maioria destes telemveis tm tambm um estilete (stylus) que pode ser utilizado
para mexer o cursor do rato, independentemente do modo seleccionado, passou tambm
a ser permitido no modo de escrita, navegar pelo ambiente de trabalho com as teclas de
navegao do telemvel. Deste modo, para utilizadores de telemveis com estilete e
teclados qwerty, possvel navegar pelo ambiente de trabalho, mexer o cursor do rato e
escrever utilizando o teclado integrado, tudo sem ter de alternar entre modos, como
acontece nos telemveis mais usuais.
22
cliente apenas guardava em memria uma cpia do ambiente de trabalho em zoom out. Para
percorrer todo o ambiente de trabalho do servidor em modo zoom normal, visto que apenas era
guardado em memria uma poro deste correspondente s dimenses do ecr do telemvel, cada
movimento, em qualquer direco, implicava um pedido de actualizao ao servidor de uma parcela
do ambiente de trabalho correspondente ao deslocamento efectuado. Assim, se um movimento para
a direita implica um deslocamento de X pixeis nesta direco, a imagem visvel no telemvel sofrer
um deslocamento igual para a esquerda, revelando um rectngulo branco com X pixeis de largura e a
ocupar toda a altura do ecr do telemvel. Seguidamente efectuado um pedido de actualizao ao
servidor, correspondente poro do ambiente de trabalho que falta para completar a imagem visvel
na nova posio. Este efeito pode ser observado na Figura IV.5.
Figura IV.5 Navegao pelo ambiente de trabalho em zoom normal na aplicao original.
23
24
extensions), resolveu-se oferecer suporte mesma. Apesar de hoje em dia os computadores terem
capacidades de memria cada vez maiores e processadores cada vez mais rpidos, o VNC assenta
no pressuposto de ser um sistema portvel e compatvel com o maior nmero de mquinas possveis
e por isso a explorao deste caminho no recomendada para servidores VNC de uso genrico. No
entanto, preciso ter em considerao o mbito deste trabalho e que a alternativa colocar estes
aspectos negativos no lado do cliente, que no nosso caso bastante mais limitado (telemvel vs PC).
A extenso ao protocolo utilizada resume-se a uma nova mensagem da parte do cliente para o
servidor a pedir uma alterao ao factor de escala, cujo formato se apresenta na Tabela IV.1. As
mensagens utilizadas pelo protocolo RFB usam os tipos bsicos U8, U16, U32, S8, S16, S32, que
representam respectivamente 8, 16 e 32-bit unsigned integer e 8, 16 e 32-bit signed integer.
Tabela IV.1 Formato da mensagem de pedido de mudana de factor de escala.
Numero de bytes
1
1
2
Tipo
U8
U8
[Valor]
F
Descrio
tipo da mensagem
Factor de escala
enchimento com zeros (padding)
O servidor ao receber um pedido de alterao ao factor de escala, responde com uma mensagem
indicando as dimenses do ambiente de trabalho e as dimenses do novo buffer depois de efectuada
a alterao, como pode ser visto na Tabela IV.2. Posteriormente, o servidor transfere para o cliente o
desktop j afectado pelo novo factor de escala.
Tabela IV.2 Formato da mensagem indicando uma alterao ao factor de escala.
Numero de bytes
1
1
2
2
2
2
2
Tipo
U8
U16
U16
U16
U16
[Valor]
F
Descrio
tipo da mensagem
enchimento com zeros (padding)
largura do desktop
altura do desktop
largura do buffer
altura do buffer
enchimento com zeros (padding)
25
ou permitir ao utilizador escolher o mtodo a utilizar de acordo com as caractersticas das mquinas
em questo (cliente e servidor).
Deste modo, considerando que os telemveis vo tendo cada vez mais capacidade de memria e
que a fluidez com que se navega pelo ambiente de trabalho sem a necessidade de realizar
actualizaes constantes, um factor importante e apelativo ao utilizador, resolveu-se manter
disponvel a alternativa descrita anteriormente e acrescentou-se uma nova, dando ao utilizador a
possibilidade de optar entre ambas. A alternativa encontrada passou por, reduzir o tamanho do buffer
de memria utilizado no telemvel para armazenar o zoom normal (100%), que em vez de ter
capacidade para armazenar todo o ambiente de trabalho, passou apenas a armazenar uma poro
deste das dimenses do ecr do telemvel. Voltou-se assim ao modo original de como era efectuada
a navegao, ou seja, voltou a ser necessrio, no modo de zoom normal, fazer pedidos de
actualizao constantes, medida que se navega pelo ambiente de trabalho. No entanto, o modo de
zoom fifty (50%) manteve-se inalterado, conseguindo-se manter uma navegao fluida e sem
necessidade de pedidos de actualizao. Tal revelou-se possvel porque a quantidade de memria
ocupada por este buffer inferior ocupada pelo zoom normal (ver Seco V.5.5), no se tendo
verificado que os telemveis testados acusassem falta de memria.
O modo mais afectado com esta modificao quando a alterao ao factor de escala
efectuado pelo servidor. Neste caso, como apenas utilizado um buffer com as dimenses do ecr
do telemvel para armazenar as actualizaes recebidas, e como as alteraes ao factor de escala,
implicam comunicao com o servidor, necessrio efectuar pedidos de actualizao constantes
medida que se navega pelo ambiente de trabalho.
Com estas modificaes ficaram disponveis 4 modos distintos de navegao e alterao ao
factor de escala, tentando-se abranger os vrios tipos de utilizadores e os vrios modelos de
telemveis existentes:
CS (client side) Scaling com Smooth Nav: Modo que requer mais memria disponvel da
parte do telemvel mas que ser provavelmente o mais apelativo ao utilizador pela sua
navegao suave e fluida.
CS Scaling sem Smooth Nav: Requer menos memria que o modo anterior, mas perde o
sentido de navegao suave e fluida quando em zoom normal, mantendo-o apenas em zoom
fifty. A navegao em zoom normal implica pedidos de actualizao constantes.
SS (server side) Scaling com Smooth Nav: Segundo modo que requer mais memria
permitindo tambm uma navegao suave. No entanto so efectuados pedidos de
actualizao quando se procede a alteraes ao factor de escala. Este modo requer menos
capacidade de processamento da parte do telemvel.
SS Scaling sem Smooth Nav: o modo que exige menos do telemvel, requerendo pouca
memria e pouco processamento. til para telemveis mais antigos e limitados mas implica
actualizaes constantes durante a navegao e alteraes ao factor de escala, o que se
pode tornar incomodo para o utilizador, devido latncia da rede.
26
Utilizar uma ligao paralela sesso RFB, especificamente criada para transferir o som.
A ideia fazer streaming de todo o udio que chega placa de som atravs de uma sesso
dedicada, do servidor para o cliente. Com esta alternativa levantaram-se algumas questes
pertinentes, nomeadamente como se comportar a mesma com vrios clientes em
simultneo e se esta transferncia de som deve ser unidireccional ou bidireccional, para
permitir por exemplo, caso se esteja a efectuar uma assistncia remota, que o auxiliado e o
auxiliando possam comunicar entre si. Descreve-se em seguida esta soluo.
A soluo adoptada passa por transferir todo o udio do servidor para o telemvel, atravs de
uma sesso paralela utilizada pelo VNC, dedicada para o efeito. Podem ser os sons do Windows
que vo para a placa de som, msica, o som capturado pelo microfone ou uma mistura de tudo,
27
dependendo das capacidades da placa de som do computador alvo e do que estiver seleccionado
nas opes de gravao de udio do sistema operativo. Esta seleco tem de ser realizada pelo
utilizador nas configuraes de udio do sistema, pois dependente da placa de som e por
consequente, no foi possvel fazer com que o servidor de VNC activasse automaticamente a captura
de udio pretendida.
Dado que este trabalho especifico para clientes em telemveis e que apenas dispomos de uma
API (e hardware) limitada, para manter a compatibilidade com um maior nmero de plataformas
possveis, resolveu-se no utilizar nenhum protocolo de streaming RTP/RTSP (RFC 3550/2326), pois
estes apenas so suportados nos players nativos da maioria dos telemveis e apenas modelos mais
recentes e topo de gama suportam-nos sobre as APIs do J2ME. Isto significa que a maioria dos
telemveis apenas permite reproduzir udio (ou mesmo vdeo) em blocos, depois de os carregar na
ntegra para memria, e portanto, outra soluo teve de ser equacionada para reproduzir o efeito de
streaming desejado. Deste modo, resolveu-se fazer uma anlise aos protocolos de comunicao
possveis de utilizar, nomeadamente o TCP (Transmission Control Protocol) e o UDP (User Datagram
Protocol), com o intuito de escolher o que melhor se adapta situao em questo.
28
que todos os dados sero recebidos no destino sem erros e na ordem correcta. Na eventualidade de
surgirem erros durante a transmisso de dados, os segmentos afectados sero retransmitidos.
Na Figura IV.7 pode-se ver o formato do cabealho de uma trama TCP.
Figura IV.7
IV.3.1.1.1
Vantagens do TCP
Como est incorporado no Sistema Operativo, gerir os segmentos recebidos, implica menos
mudanas de contexto do ncleo do sistema para o espao do utilizador, pois todo o
processo de confirmao de segmentos, controlo de congesto, juno de segmentos, etc,
efectuado no ncleo do sistema.
O TCP garante que os dados chegam ao destino, que so entregues por ordem e que no
existe duplicao dos mesmos.
IV.3.1.1.2
Desvantagens do TCP
O protocolo pode estar optimizado para condies diferentes daquelas que se vo encontrar.
Neste caso, os protocolos utilizados pelo GRPS j por si garantirem a entrega de pacotes, ou
seja, esta caracterstica do TCP torna-se redundante. A especificao do GPRS define
protocolos para o plano de transmisso e para o plano de sinalizao. Entre eles encontramse o LLC (Logical Link Control) e o RLC (Rdio Link Control), sendo que o primeiro prov
uma ligao lgica bastante fivel entre a MS (Mobile Station) e a SGSN (Serving GPRS
support nodes) associado a ela. Suas funcionalidades incluem controle de sequncia, entrega
29
No tem fronteiras nos pacotes recebidos. Ou seja, como referido anteriormente, pode
receber vrios segmentos juntos, quando estes foram enviados separados, ou pode receber
um nico segmento quando foram enviados vrios. preciso criar essas fronteiras para se
poder fazer uso da informao recebida.
30
IV.3.1.2.1
Vantagens do UDP
O receptor de um pacote UDP, recebe-o exactamente como foi enviado, com as suas
fronteiras bem definidas.
Com o UDP pode-se enviar/receber dados num mesmo porto/socket de vrias mquinas
distintas, pois o endereo de destino especificado por cada chamada ao sistema para
enviar dados.
IV.3.1.2.2
Desvantagens do UDP
No existem garantias. Um pacote pode no ser entregue, ser entregue repetidas vezes, ou
entregue fora de ordem. O emissor no recebe indicao nenhuma do que se passa no
receptor a menos que este decida inform-lo (tenha sido programado para tal).
31
IV.3.2 Implementao
Tendo em considerao os prs e contras de ambas as alternativas (utilizar o protocolo TCP ou o
protocolo UDP), resolveu-se implementar a transferncia de som sobre ambos os protocolos de
comunicao, para se poder realizar uma anlise comparativa e assim seleccionar a que apresente
melhores resultados.
Para este efeito, foram efectuadas alteraes tanto do lado do servidor como do lado do cliente,
mantendo-se sempre a compatibilidade com os clientes e servidores de VNC existentes.
A anlise dos resultados obtidos por ambas as implementaes pode ser vista na Seco V.5.
32
33
considerando que uma compresso complexa exigiria um descompresso tambm ela complexa no
hardware limitado dos telemveis.
No cliente, associa-se o cabealho WAVE inicialmente recebido aos pacotes de udio, para
poderem assim ser reproduzidos pela maioria dos players existentes nos telemveis. No servidor,
utiliza-se um sistema de double buffering para a captura de som, para permitir que um dos buffers
esteja a ser preenchido com uma nova amostra de udio, enquanto o contedo do outro est a ser
codificado e enviado para o cliente. Deste modo, elimina-se o risco de provocar atrasos no driver do
som, por este no ter um buffer disponvel para armazenar o udio que vai capturando.
Este sistema funciona at um mximo de MAX_CLIENTS clientes (definido a 128 no VNC) para
permitir que o ambiente de trabalho seja partilhado por vrios utilizadores (funcionalidade do VNC) e
que todos possam ter acesso ao udio.
O primeiro cliente a estabelecer uma ligao para transferncia de udio faz com que o servidor
reduza o volume do som do Sistema Operativo. Isto necessrio para o udio ser perceptvel no
telemvel, sendo transferido num nvel bastante reduzido para posteriormente ser amplificado pelo
terminal. Caso contrrio, s era audvel rudo nos telemveis testados. Esta soluo foi seleccionada
pela sua simplicidade, por no exigir processamento adicional dos pacotes de udio e por poder ser
desejvel a reduo do volume de som no servidor, para no incomodar eventuais indivduos na
proximidade do mesmo. O volume de som do sistema operativo restabelecido ao valor original
depois do ltimo cliente com uma ligao para transferncia de som terminar a sua sesso. A captura
de som no servidor tambm s efectuada enquanto algum cliente se encontrar ligado com uma
sesso para transferncia de som.
Como se pode perceber pela descrio anterior, um cliente passa a ter uma ou duas ligaes
estabelecidas com o servidor, sendo que uma a sesso estabelecida pelo VNC e a outra a sesso
para transferncia de som, podendo esta ltima nunca ser iniciada pelos clientes, ou ento, ser
iniciada e interrompida vrias vezes durante uma mesma sesso VNC.
IV.3.2.1.1
Na soluo em TCP, quando um cliente se liga ao socket especfico que est escuta de
ligaes, a thread cria um novo socket num porto aleatrio, com o qual estabelece a sesso de
comunicao com o cliente. Este novo socket guardado num vector do tipo SOCKET
viewer[MAX_CLIENTS], contendo a informao de todos os sockets associados a clientes com
sesso estabelecida.
Quando capturado som, este, depois de comprimido, enviado para todos os clientes ligados,
utilizando-se para tal, a informao contida no vector de sockets associados a clientes. Juntamente
com o pacote de udio, so enviados mais 4 bytes contendo a dimenso do pacote a que esto
associados. Isto torna-se necessrio, pois com a compresso utilizada, os pacotes no tm todos o
mesmo tamanho e sendo que em TCP os dados so enviados numa sequncia de bytes (stream),
necessrio para o cliente saber como separ-los para os poder depois descodificar.
34
35
36
IV.3.2.2.1
Na soluo em TCP, todo o cdigo que implementa o som encontra-se numa s thread, sendo
que esta fica inicialmente espera de receber 44 bytes de cabealho WAVE do servidor, para poder
criar os buffers necessrios ao seu correcto funcionamento. Seguidamente, a thread entra num ciclo
37
composto por 4 etapas que podem ser interpretados no diagrama de blocos apresentado na Figura
IV.12:
- Recebe pacote de som e descomprime-o se estiver comprimido.
- Prepara player 1 e reproduz amostra de som se o player 2 j tiver terminado.
- Recebe pacote de som e descomprime-o se estiver comprimido.
- Prepara player 2 e reproduz amostra de som se o player 1 j tiver terminado.
A thread de gesto do udio, que inicialmente envia uma mensagem para o servidor
pedindo o incio de uma sesso de transferncia de som. Posteriormente, recebe o
38
cabealho WAVE enviado pelo servidor que para alm de servir para dimensionar o
buffer de recepo, serve tambm de confirmao de que a mensagem de pedido de
incio de sesso foi transmitida com sucesso. De seguida cria a thread de recepo e
gere o udio armazenado por esta, distribuindo-o pelos dois players. Isto , sempre que o
udio armazenado corresponder a mais de 4 segundos de som, um player preparado
para reproduzi-lo e assim que o outro player deixe de tocar (caso o esteja a fazer), este
inicia a reproduo da prxima amostra de udio.
39
novo, eliminando o instante de silncio no existente no meio, parecendo ao utilizador que a msica
no teve pausa nenhuma.
Para uma melhor compreenso do que foi descrito anteriormente, apresenta-se na Figura IV.14
os diagramas de mensagens entre cliente e servidor, referentes transferncia de som tanto em TCP
como em UDP.
Figura IV.14 Diagrama de mensagens da soluo em TCP (lado esquerdo) e da soluo em UDP (lado direito)
40
vrias amostras de som relativamente a silncio, captura de udio atravs do microfone e diferentes
msicas a serem reproduzidas no computador, tendo sido posteriormente criado um script para
percorrer estes ficheiros e fazer a contagem individual das aparncias de cada smbolo. Um exemplo
dos ficheiros de resultados obtidos pode ser consultados no Anexo D.
41
imagens est o facto de num dos casos o utilizador apenas poder controlar o teclado remoto e no
outro apenas poder controlar o rato.
Tipo
U32
U8
[Valor]
FFFF
Descrio
tipo de segurana
desafio
42
Esta mensagem, contendo um desafio para confirmar a palavra-chave a ser utilizada pelo cliente,
faz com que este ltimo responda, enviando no s a resposta ao desafio, como acontece no modo
de autenticao normal, mas tambm o nome do utilizador associado ao perfil pretendido, como se
pode ver na mensagem representada na Tabela IV.4:
Tabela IV.4 Formato da mensagem contendo o nome de utilizador e a resposta ao desafio.
Numero de bytes
16
16
Tipo
U8
U8
[Valor]
Descrio
nome do utilizador
resposta ao desafio
Para conseguir este objectivo, foi gerada uma estrutura de dados no servidor, de fcil
configurao atravs de uma interface grfica (representada na Figura IV.16), que armazena as
propriedades dos diferentes perfis de utilizador. O formato utilizado para a estrutura em questo pode
ser visualizado na Figura IV.17.
43
contendo esta informao existe e se esta se encontra no formato adequado. Caso isto no se
verifique, criado um novo ficheiro contendo um utilizador base (standard), com algumas
propriedades predefinidas, que podem depois ser alteradas. Caso o ficheiro exista e contenha o
formato correcto, as definies dos utilizadores existentes no ficheiro so carregadas para a memria
na estrutura apresentada. Alteraes, criao de novos utilizadores ou eliminao de utilizadores
existentes so automaticamente gravadas para o ficheiro, para manter uma coerncia entre a
informao existente em memria e a informao armazenada em disco para futuras utilizaes.
No lado do cliente, foi criada uma caixa de texto que permite introduzir o nome de utilizador que
se pretende utilizar. No caso deste utilizador no existir (no estar configurado no servidor), este
campo no ser preenchido no telemvel ou de o servidor estar em modo de autenticao normal,
sero utilizadas as propriedades definidas no utilizador base (standard), que no pode ser apagado
do servidor mas apenas alterado.
Se um cliente normal, ou seja, um cliente que no contm a extenso para este novo tipo de
segurana, se tentar ligar ao servidor quando este est a exigir autenticao para a utilizao dos
perfis de utilizador, ser apresentado um erro de segurana e a sesso no ser estabelecida.
44
Captulo V.
V.1 Introduo
Sendo outro dos objectivos do trabalho o estudo das capacidades e caractersticas das redes
mveis celulares (GPRS/UMTS) e da consequente viabilidade do projecto a operar sobre as mesmas,
foram realizados alguns testes com o intuito de estimar alguns parmetros especficos destas redes.
Para este efeito, existe um registo (Log) onde so armazenados os valores referentes a cada
transferncia de dados/som efectuada, existe um formulrio de estatsticas (stats) onde se podem
visualizar os valores totais, mnimos, mdios e mximos relativos s transferncias de dados/som
anteriores e existe um formulrio onde se pode observar o decorrer de um Ping ao servidor e os
correspondentes tempo de ida e volta obtidos.
Um dos parmetros que no aqui calculado a variao de atraso na rede (jitter) porque
implica uma sincronizao dos relgios entre o cliente e o servidor que no foi possvel obter. A
obteno deste valor implicaria que os pacotes de som enviados pelo servidor fossem marcados com
o instante de envio (com um timestamp) e que de tempos a tempos fossem trocadas mensagens
entre o servidor e o cliente para sincronizar os relgios respectivos.
45
Foi realizada uma colagem de vrias partes da imagem para poder concentrar o registo numa s figura.
46
Para permitir o fcil acesso a esta informao, foi introduzida a possibilidade deste registo ser
transferido por uma ligao TCP para o servidor. Por sua vez, o servidor a correr a aplicao Netcat,
ou outra similar, envia toda a informao recebida para um ficheiro. Posteriormente, com o auxilio de
um script, elaborado para o efeito, converte-se a informao relevante para um ficheiro .csv
(comma-separated values) que pode ento ser interpretado por um editor de folha de clculo como o
Excel.
Foi realizada uma colagem de vrias partes da imagem para poder concentrar as estatsticas numa s figura.
47
V.4 Ping
Dado que o J2ME no suporta pacotes ICMPs como sendo o de ping, as alternativas para o
clculo do tempo de ida e volta (RTT) da ligao so:
1. Utilizar um servidor de eco sobre UDP e calcular o tempo entre o instante em que o pacote
enviado e o instante em que este depois recebido. Para este efeito, o cliente envia um
pacote UDP contendo um nmero de sequncia e o instante em que est a ser colocado na
rede. No lado do servidor est implementado uma thread que se limita a estar escuta num
porto predefinido e a reenviar para a origem os pacotes recebidos (faz eco dos pacotes).
Quando um pacote chega ao cliente, este verifica o seu nmero de sequncia, para averiguar
se no houve reordenao dos pacotes. Seguidamente, analisa o instante de tempo nele
contido e compara-o com o instante de tempo actual, obtendo assim uma estimativa do
tempo de ida e volta.
Resolveu-se no utilizar o porto normalmente associado ao servidor de eco (porta 7), pois
este servio foi retirado dos sistemas operativos mais recentes por ser facilmente alvo de
ataques de DoS (denial of service). Deste modo, se a porta utilizada pelo VNC for a 5900, a
5901 estar reservada para estabelecer sesses de transferncia de som e a 5902 estar
associada ao servidor de eco.
2. Utilizar um servidor de eco sobre TCP, que ao contrrio dos de UDP, recebem os segmentos
em buffers, fazem a sua reconstruo, enviam uma confirmao origem e s depois fazem
o eco da mensagem. Existe assim um atraso de reconstruo aleatrio entre o instante em
que a mensagem recebida no servidor de eco e o instante em que verdadeiramente
realizado o seu eco. Este facto poderia ser considerado como uma estimativa do tempo que o
cliente e servidor demoram efectivamente a trocar segmentos, considerando que toda a
aplicao funciona sobre sockets TCP e por consequente sofre deste atraso. No entanto, esta
alternativa no se revelou simples de implementar pois quando se efectua uma ligao a um
socket TCP num porto conhecido, gerado um novo socket num porto aleatrio, devolvido
pela chamada de sistema accept, e a comunicao efectua-se atravs deste. Como a maioria
dos PCs a que se pretende aceder encontram-se por detrs de um comutador, necessrio
configurar neste os portos utilizados para comunicao e redireccion-los para o PC (NAT).
Como o pedido de ligao efectuado num porto conhecido mas a comunicao em si
efectuada atravs do socket criado especificamente pelo sistema operativo, num porto
aleatrio, para a sesso TCP em questo, no possivel configurar o NAT do comutador e
assim enviar dados do cliente (telemvel numa rede externa) para o servidor (por detrs de
um comutador numa rede local). Deste modo, optou-se por no se implementar esta soluo.
3. Outra soluo encontrada e implementada foi a de estimar o tempo de ida e volta atravs dos
cabealhos TCP trocados durante o incio de uma sesso. Para tal, o cliente envia um pacote
TCP SYN, para um porto predefinido no servidor que se espera no estar a ser utilizado e o
servidor responde com um pacote TCP RST (o porto apenas predefinido para se poder
48
49
V.5 Testes
V.5.1 Transferncia de Som
Para comparar os dois mtodos de transferncia de som foram realizados alguns testes e
recolhidos dados para analisar, tendo estes sido resumidos na Figura V.5 e na Figura V.6. Em
ambos os casos realizou-se a transferncia de som durante cerca de um minuto, enquanto se
reproduzia msica no servidor. Estes testes serviram tambm para verificar o dbito obtido numa rede
UMTS durante o perodo de execuo dos testes, utilizando para tal, um carto de dados com
contracto com a operadora para velocidades at 384 kbps (downstream). Posteriormente foram
realizados testes tambm sobre a rede HSDPA com velocidades at 3,6 Mbps (downstream).
No caso dos grficos apresentados para a verso em TCP, podem-se observar os resultados de
dois testes realizados em instantes de tempo diferentes (a azul e a vermelho) utilizando o telemvel
Nokia 6630 e de dois testes efectuados com o dispositivo HTC TyTN sobre uma ligao HSDPA (a
verde e preto). No caso do UDP, apesar de tambm terem sido efectuados diversos testes sobre
UMTS, resolveu-se no sobrepor os grficos, que se revelaram semelhantes, pois s ia complicar a
observao dos mesmos. Deste modo, apresentado apenas o resultado de uma experincia
efectuada.
V.5.1.1 TCP
A partir da Figura V.5 facilmente se verifica que o valor mdio obtido para o dbito durante a
execuo destes testes foi de 119 kbps para a rede UMTS e de 593 kbps sobre HSDPA. Dado que
estes valores so praticamente constante nestes testes (tirando algumas oscilaes observadas nos
grficos referentes aos testes efectuados sobre HSDPA), de esperar que o tempo de recepo dos
pacotes seja proporcional ao tamanho dos mesmos, o que de facto se verifica. Ou seja, quando se
recebe um pacote de dimenses menores, o tempo que se leva a receb-lo tambm menor e vice3
Foi realizada uma colagem de vrias partes da imagem para poder concentrar o formulrio de Ping numa s
figura.
50
versa. O desvio padro obtido para o dbito na rede UMTS foi de 15,36 kbps e o intervalo de
confiana a 95% [114,0; 123,4]. Para a rede HSDPA obteve-se um desvio padro de 94,0 kbps e o
intervalo de confiana a 95% [542,4; 604,7].
No grfico a azul pode-se tambm observar, que o pacote nmero 15, representando momentos
de silncio entre duas faixas de msica, foi comprimido de 32000 bytes para 5954 bytes. Neste caso,
se estivesse a ser utilizada supresso de silncio com, por exemplo, um limiar de 10000 bytes, este
pacote no teria sido enviado pelo servidor e no cliente nada seria reproduzido. Como a supresso de
silncio no estava a ser utilizada, tornou-se audvel o rudo de fundo caracterstico do silncio
electrnico, durante os 4 segundos de durao da amostra de som.
Por anlise dos grficos, verifica-se que o tempo de descompresso de um pacote no depende
do seu grau de compresso. Seria de esperar que quanto maior fosse a compresso da amostra
recebida, maior seria o tempo que a aplicao demoraria a descomprimi-la. No entanto, isto no se
verifica. Nos testes realizados utilizando o Nokia 6630, tirando o primeiro pacote, todos os outros
levam cerca de 15 ms a serem descomprimidos. Utilizando o HTC TyTn, existe uma maior variao
dos tempos de descodificao mas que em nada esto relacionados com a compresso efectuada
pois os pacotes recebidos tm aproximadamente todos 32000 bytes. No lado do servidor, a
compresso dos pacotes de som leva menos de 10 ms, tendo este valor sido obtido por debug
aplicao. J a anlise do ltimo grfico indica-nos que o tempo que um player leva a preparar um
pacote de 4 segundos de som para o reproduzir (32000 bytes), de cerca de 300 a 400 ms no caso
do telemvel Nokia 6630 e de menos de 20 ms para o HTC TyTn. Este tempo no entanto, no se
revelou proporcional ao tamanho dos pacotes, mantendo-se aproximadamente constante para
pacotes de dimenses inferiores.
Como era desejado, o tempo total que um pacote leva a ser recebido, descodificado e preparado
pelo player (cerca de 2,5 segundos no Nokia 6630 sobre UMTS e cerca de 600 ms no HTC TyTn
sobre HSDPA), menor do que a durao em termos de udio de um destes pacotes (4 segundos).
Deste modo, a ideia de ter um player a reproduzir um pacote de som enquanto o prximo pacote
recebido e preparado para tocar, foi conseguida. No entanto, no se conseguiu eliminar a pequena
pausa existente durante a alternncia entre os players e assim obter um verdadeiro fluxo de som sem
interrupes. Ainda assim, obteve-se uma melhor performance utilizando o HTC TyTn onde as
pausas entre amostras eram quase imperceptveis e nem sempre ocorriam, devendo-se tal facto ao
menor tempo dispendido pela inicializao dos players neste dispositivo. As nicas solues
encontradas para solucionar este problema passam ou por codificar os players na linguagem nativa
do telemvel em questo ou por desenvolver esta funcionalidade para um modelo de telemvel que j
suporte streaming RTSP, na esperana de que todos os modelos futuros a suportem.
51
800
Dbito (kbps)
700
600
500
400
300
200
100
0
1 2
3 4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20
30000
25000
20000
15000
10000
5000
0
4000
3500
3000
2500
2000
1500
1000
500
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Nmero do Pacote
Nmero do Pacote
Tempo de descodificao do
pacote de som (ms)
Nmero do Pacote
100
90
80
70
60
50
40
30
20
10
0
1000
800
600
400
200
0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Nmero do Pacote
Nmero do Pacote
Figura V.5 Grficos relativos transferncia de som por TCP durante cerca de 1 minuto
(duas sesses distintas sobre UMTS e duas mais sobre HSDPA).
V.5.1.2 UDP
Na Figura V.6, comparando com a transferncia de som por TCP, rapidamente se verifica que
para aproximadamente o mesmo intervalo de tempo, so trocados bastantes mais pacotes de som.
Isto deve-se ao facto do tamanho mximo de um datagrama UDP ser de 512 bytes e assim, por cada
pacote de som de 32000 bytes (4 segundos), o servidor envia 64 datagramas de 500 bytes cada.
Como cada datagrama tem 8 bytes de cabealho (overhead), a eficincia na transferncia de um
pacote de som no comprimido de 98,4%. Este valor foi calculado atravs da frmula (1):
eficincia =
bytes _ uteis
total _ de _ bytes _ transferidos
(1)
52
pacotes efectuada pelo sistema operativo e pelos comutadores (desprezando os bytes transferidos
durante o inicio e fim de sesso). Deste modo, a eficincia deste protocolo para a transferncia de um
pacote de som de 32000 bytes, poder ser de 99,88% se o pacote for enviado por inteiro, de 99,4%
se for dividido em 8 segmentos ou inferior no caso de ser repartido em segmentos menores. Estes
valores foram obtidos atravs da frmula (1) adaptada para o mtodo TCP, onde por cada pacote de
som, transfere-se tambm um pacote de 4 bytes contendo a dimenso em bytes do udio transferido.
Voltando a analisar a Figura V.6, o dbito da rede UMTS durante a execuo deste teste, parece
variar consideravelmente entre cada pacote recebido. Isto pode acontecer porque de facto a rede
apresenta oscilaes, ou ento porque, como estamos a lidar com valores reduzidos de tempo de
recepo do pacote, a API utilizada, juntamente com o processamento efectuado pelo telemvel das
vrias threads existentes na aplicao, no permitem a obteno de uma quantidade exacta para
este valor, pois qualquer variao deste, influncia bastante o valor obtido para o dbito da rede. No
entanto, o valor mdio obtido para o dbito neste caso de 100 kbps, o que at se aproxima dos 120
kbps calculados sobre a mesma rede (UMTS) a partir do mtodo em TCP.
A compresso dos pacotes revela-se praticamente inexistente no caso de amostras de 500 bytes,
o que faz com que a tcnica utilizada no surta o efeito desejado. No entanto, uma situao no
representada nestes grficos a da transferncia de silncio, onde se consegue comprimir este tipo
de pacotes para valores abaixo dos 100 bytes (permitindo definir um limiar de silncio que possa ser
utilizado).
A descompresso dos pacotes de udio mantm-se nos 15 ms para pacotes que vm de facto
comprimidos. Os que so transferidos com o tamanho original no passam por este processo. No
lado do servidor a compresso dos pacotes de som praticamente instantneo.
Como os datagramas transferidos so armazenados em memria at que sejam agrupados em
nmero suficiente para criar pacotes de 4 segundos para serem reproduzidos, o tempo de preparao
dos players , como no caso do TCP, na ordem dos 300 a 400 ms.
Apesar do buffering utilizado, implicar que um player s comece a reproduzir udio quando j
estiver disponvel um outro pacote em memria para o prximo player comear a prepar-lo, a
pequena pausa existente entre as alternncias de players mantm-se, no se conseguindo tambm
neste caso obter um verdadeiro fluxo de som sem interrupes.
53
300
Dbito (kbps)
250
200
150
100
50
0
1
54 107 160 213 266 319 372 425 478 531 584 637 690 743 796 849
600
Nmero do Pacote
500
400
300
200
100
0
1
500
450
400
350
300
250
200
150
100
50
0
57 113 169 225 281 337 393 449 505 561 617 673 729 785 841
57 113 169 225 281 337 393 449 505 561 617 673 729 785 841
18
Nmero do Pacote
Tempo de preparao do
player para tocar o pacote de
som (ms)
Tempo de descodificao do
pacote de som (ms)
Nmero do Pacote
16
14
12
10
8
6
4
2
0
1
56 111 166 221 276 331 386 441 496 551 606 661 716 771 826
1200
1000
800
600
400
200
0
1
60 119 178 237 296 355 414 473 532 591 650 709 768 827
Nmero do Pacote
Nmero do Pacote
Figura V.6 - Grficos relativos transferncia de som por UDP durante cerca de 1 minuto
Pela anlise destes resultados, pelos factos apresentados na Seco IV.3 e por se ter revelado
uma soluo mais robusta, resolveu-se escolher o mtodo de transferncia de som sobre TCP para a
verso final da aplicao do cliente. Outro factor a favor desta opo, que nem todos os modelos de
telemvel suportam datagramas UDP, estando o TCP mais generalizado.
54
70
50
40
30
20
10
49
46
43
40
37
34
31
28
25
22
19
16
13
10
0
1
dbito (kbps)
60
nmero da actualizao
55
Scaling no cliente
50000
durao (ms)
45000
40000
Sem smooth nav
35000
30000
25000
20000
1
10
nmero da actualizao
Figura V.9 Durao das actualizaes quando a alterao ao factor de escala realizada no
telemvel.
No caso em que a alterao ao factor de escala efectuada no lado do servidor (Figura V.10),
apenas se testou o modo com a opo de smooth navigation seleccionada, pois s assim se
conseguem obter actualizaes integrais ao ambiente de trabalho, mantendo a coerncia com os
testes efectuados previamente. Neste caso, o nico buffer de memria utilizado para desenhar no
ecr do telemvel o de zoom normal e por isso seria de esperar que a durao das actualizaes
fossem menores do que no caso anterior, por no se ter de reduzir no telemvel o ambiente de
trabalho para os outros factores de escala. No entanto, isto no se verifica e o tempo dispendido na
actualizao aproximadamente o mesmo que no caso anterior (30 segundos). Conclui-se assim,
que o processamento efectuado por parte do cliente pode ser negligenciado, pelo menos no
telemvel utilizado para testes (Nokia 6630 com processador RISC de 32-bits a 220 MHz). Um ponto
a favor da alterao ao factor de escala ser efectuada no lado do servidor, que as actualizaes
56
para zooms inferiores a 100% tornam as actualizaes mais rpidas. Reduzindo para metade o
factor de escala, obtm-se uma reduo de 3 vezes para o tempo gasto na actualizao. Para uma
reduo de 3 vezes do factor de escala obtm-se uma reduo de 6 vezes no mesmo tempo. Apesar
disto implicar actualizaes, para zooms menores que 100%, mais rpidas do que as obtidas quando
as alteraes ao factor de escala so efectuados no telemvel, neste ltimo caso, uma mudana de
factor de escala no implica um pedido de actualizao e por consequente poupa-se algum tempo
neste aspecto. Deste modo, no se pode eleger um modo como sendo melhor que o outro, cabendo
ao utilizador esta escolha.
durao (ms)
40000
35000
30000
25000
zoom 100%
20000
15000
zoom 50%
zoom 33,3%
10000
5000
0
1
10
nmero da actualizao
Figura V.10 Durao das actualizaes quando a alterao ao factor de escala realizada no lado
do servidor
Estes valores so no entanto apenas indicativos para a situao em questo, pois para
ambientes de trabalho menos complexos, os tempos gastos por actualizao em GPRS, podem
baixar para valores entre 5 a 15 segundos e at menos para uma ligao sobre UMTS. O facto de se
realizarem actualizaes integrais tambm um caso extremo, porque, tirando a actualizao inicial e
algum pedido para tal por parte do utilizador, a maioria das actualizaes sero incrementais, ou seja
apenas sero transferidas as pores do ambiente de trabalho que sofreram alteraes. Por
consequente, os tempos associados a este tipo de actualizaes sero consideravelmente menores.
Utilizando um telemvel/PDA HTC TyTn (processador Samsung a 400Mhz) para realizar o
mesmo ensaio, deparou-se com um tempo dispendido por actualizao bastante superior. Neste
caso, obtiveram-se tempos na ordem dos 7 minutos ao invs dos 30 segundos obtidos no Nokia
6630. Para analisar se o motivo para tal acontecimento num dispositivo de nvel superior se deve ao
desenhar no ecr, da imagem visvel, foram efectuados testes em que o ambiente de trabalho vai ou
no sendo desenhado no ecr medida que a actualizao recebida. Obteve-se no primeiro caso
tempos a rondar os 7 minutos e 30 segundos e no segundo caso 6 minutos e 55 segundos, o que
revela um incremento de velocidade na ordem dos 8%. Dado os valores em questo (e o desespero
do utilizador), confirmou-se assim que a diferena entre a imagem ir sendo ou no redesenhada no
ecr ao longo da actualizao, no um factor crucial e acarreta o benefcio do utilizador estar a par
do estado da actualizao. Deste modo, a nica razo encontrada para justificar tal ocorrncia
prende-se com o facto de a mquina virtual Java ser parte integrante do sistema operativo do Nokia
57
6630 (Symbian) e no o ser no caso do HTC TyTn, existindo uma aplicao a correr sobre o sistema
operativo Windows Mobile 6 que faz a gesto dos MIDlets Java, o que poder tornar mais lento o
processamento dos dados, tal como acontece nos emuladores utilizados para testes nos
computadores.
58
mail (23428 bytes). Facilmente se interpretaro tambm as restantes actualizaes efectuadas mas
tentou-se apenas dar aqui uma ideia da anlise dos grficos. Verifica-se ainda que o tempo de
recepo dos pacotes tende a ser directamente proporcional s dimenses das actualizaes, mas
nota-se que em alguns casos, o tempo de recepo maior que o suposto, possivelmente devido a
atrasos introduzidos pelo processamento dos pacotes por parte do telemvel. Toda a simulao deste
cenrio demorou cerca de 9 minutos a ser realizada, revelando que manejar a interface exgua do
telemvel para controlar remotamente um computador exige alguma pacincia por parte do utilizador.
160
Dbito (kbps)
140
120
100
80
60
40
20
0
1
10
19 28
37 46
55 64
73 82
Nmero do pacote
60000
50000
40000
30000
20000
10000
0
1
12000
10000
8000
6000
4000
2000
0
1
59
TCP
(min /mdio / max)
UDP
(min / mdio / mx)
GPRS (ms)
UMTS (ms)
HSDPA (ms)
TCP
(min /mdio / mx)
UDP
(min / mdio / mx)
UMTS (ms)
Os valores tericos esperados para a rede GPRS so de 600 a 700 ms alcanando por vezes um
segundo [19]. Para a rede HSDPA os valores esperados so de 100 a 200 ms e a rede UMTS sofre
um incremento de aproximadamente 100 ms sobre a HSDPA [20]. Comparando os valores tericos
com os valores obtidos sobre a implementao em UDP, verifica-se que os resultados auferidos
encontram-se dentro da gama prevista, com excepo das estimativas sobre UMTS que se revelam
superiores ao esperado em cerca de 200 ms. Este facto pode dever-se distncia do terminal
estao de base, implementao do protocolo UMTS utilizada no dispositivo mvel e s
capacidades deste, etc. Em termos das estimativas obtidas com a implementao do Ping em TCP
estas revelaram-se bastante dispares dos valores tericos. Outro facto interessante que ao
contrrio do que acontece com a implementao em UDP que mantm a coerncia das estimativas
obtidas entre dispositivos, em TCP o dispositivo HTC TyTn apresentou valores bastante superiores
aos obtidos no telemvel Nokia 6630 (na ordem dos poucos segundos). Tal ocorrncia pode dever-se
s diferentes implementaes do protocolo TCP/IP nos sistemas operativos distintos que suportam os
dispositivos em questo. Tal ordem de grandeza explica os atrasos existentes entre os pedidos
efectuados pelo terminal mvel e as correspondentes respostas do servidor mas no revela nenhuma
razo para o tempo de recepo das actualizaes no HTC TyTn serem to demoradas, pois aps o
atraso inicial introduzido pela rede, toda a informao transferida recebida prontamente, como
sugerido pela boa performance obtida na transferncia de som.
60
navigation seleccionado. O mesmo j no se verifica com o dispositivo HTC TyTn onde foram
efectuadas ligaes a servidores com resolues at 2048x1536 utilizando todos os modos
disponveis. No caso deste terminal mvel, a gesto de memria j no dinmica e foi possvel
obter valores para a memria utilizada pela aplicao nos diversos modos e sobre vrias resolues.
Verificou-se, como era esperado, que a memria utilizada pelos buffers referentes ao zoom fifty (50%)
e ao zoom normal (100%) com smooth navigation, est directamente relacionada com a resoluo
utilizada e que a memria ocupada pelo segundo cerca de 4 vezes superior ao primeiro. Os buffers
de zoom out e de zoom normal sem smooth navigation utilizam sempre a mesma quantidade de
memria pois no dependem da resoluo do servidor. Apesar da informao obtida atravs dos
testes efectuados, resolveu-se no apresentar aqui valores especficos, pois estes no se revelaram
representativos. Para alm disso, os valores adquiridos foram bastante dspares, em termos de
ordem de grandeza, dos obtidos no Nokia 6630.
61
Captulo VI.
Concluses
VI.1 Concluses
O presente trabalho abordou de forma abrangente, o problema de proporcionar ao utilizador de
um terminal mvel o controlo remoto sobre um computador. Iniciou-se a abordagem ao tema pela
anlise das solues existentes no mercado, realizando o estudo das suas caractersticas e
funcionalidades, cogitando possveis contribuies para as mesmas e reflectindo sobre mtodos
alternativos para obter resultados semelhantes. Posteriormente, a interveno efectuada abordou as
seguintes contribuies:
1. Melhoramentos aplicao existente, tornando a sua utilizao mais simples, eficiente e
apelativa ao utilizador. Incorporao de novas funcionalidades de modo a tornar a aplicao
escolhida uma alternativa vivel s solues comerciais.
2. Implementao de mtodos alternativos para alterao ao factor de escala da imagem visvel
no ecr do telemvel e de navegao pelo ambiente de trabalho remoto. Foram
disponibilizados vrios modos de funcionamento para dar suporte a dispositivos com
diferentes capacidades de memria e processamento.
3. Concepo de um mtodo para transferncia de som do servidor para o dispositivo mvel,
com compresso de dados e supresso de silncio, tendo em considerao as limitaes
impostas pela maioria dos terminais.
4. Criao de um mecanismo de perfis de utilizador que permite configurar no servidor
determinadas caractersticas, diferenciar clientes e dar acesso aos mesmos a aplicaes
especficas.
5. Realizao de testes para estudo da viabilidade do projecto sobre as vrias redes mveis
celulares existentes e para estudo das caractersticas das mesmas.
Durante todo o projecto, um factor valorizado que se teve em considerao foi a de manter a
aplicao resultante compatvel com o maior nmero de plataformas mveis possveis. Manteve-se
tambm a aplicao compatvel com as diversas verses de servidores VNC existentes, com o
prejudico de no estarem disponvel algumas das funcionalidades desenvolvidas sobre a verso do
servidor adoptada.
Dos testes efectuados, revelou-se que as redes mveis celulares existentes possuem
caractersticas suficientes para o correcto funcionamento da aplicao. No entanto, para a
transferncia de som revelou-se necessria uma largura de banda superior a 64 kbps que s obtida
pelas redes UMTS e HSDPA. Em termos dos clientes, espera-se que dentro de poucos anos as
interfaces inerentes aos terminais mveis estejam mais maduras para aplicaes como esta, com
ecrs de maiores dimenses, melhores resolues e mecanismos de entrada mais simples para o
utilizador.
62
Permitir enviar e/ou receber ficheiros para, por exemplo, permitir ao utilizador descarregar um
documento importante que precisa na altura e que deixou no computador de casa, ou
simplesmente para transferir uma msica que lhe apetece ouvir no momento, como acontece
na aplicao proprietria RDM+. Actualmente, as nicas coisas que so armazenadas no
telemvel so o estado das opes disponveis ao utilizador no formulrio inicial, os
endereos dos sistemas anfitries e correspondentes palavras-chave e as macros definidas
no Midlet About. Para isto utilizado o RMS (Record Management System) disponibilizado
pelo J2ME, que permite de formar simples, armazenar dados no telemvel num ficheiro de
formato especial, sem o programador se ter de preocupar com o acesso memria ou com
assuntos relacionados com a segurana. O mesmo no acontece quando se pretende
armazenar um ficheiro completamente independente algures na memria flash do telemvel
porque o simples facto de se querer aceder, criar e/ou apagar ficheiros no terminal mvel traz
problemas de segurana, especialmente quando se lida com fabricantes diferentes.
Muitos fabricantes produziram APIs proprietrias para aceder aos ficheiros locais no
telemvel, no entanto, em quase todos os casos de acesso a ficheiros, a aplicao precisa de
estar assinada (signed), para garantir que esta possa aceder aos mesmos. Como qualquer
aplicao Java, um Midlet corre num caixa de areia segura e no pode simplesmente
aceder ao sistema de ficheiros ou a outra qualquer informao privada. Se o dispositivo
suporta a API opcional FileConnection, pode-se aceder ao sistema de ficheiros, no entanto,
esta est disponvel, por exemplo, no Nokia 6630 mas no no Nokia 6600. Por isso, e como
queremos uma aplicao compatvel com o maior nmero de plataformas mveis possveis,
esta no seria a soluo adequada e outra teria de ser equacionada.
Expandir as codificaes utilizadas pelo protocolo RFB e realizar um estudo das que melhor
se adequam s plataformas mveis em termos de processamento necessrio e de trfego
gerado na rede.
63
Cifrar toda a informao trocada entre cliente e servidor. Neste momento, toda a informao
trocada depois de estabelecida uma sesso VNC pode ser capturada por algum alheio
comunicao e deste modo ter acesso a informao privada. O nico mecanismo de
segurana existente neste momento encontra-se no incio de sesso para autenticar o
utilizador atravs da palavra-chave, sendo esta informao trocada de forma segura. Para
proteger de um eventual furto do telemvel, o acesso ao livro de endereos, onde so
armazenados os sistemas anfitries, est tambm protegido atravs de uma palavra-chave
definida pelo utilizador.
Mantendo todas as caractersticas que fazem desta aplicao compatvel com um maior
nmero de plataformas mveis possveis, seria interessante introduzir a hiptese de utilizao
de mecanismos especficos para determinados telemveis (por exemplo a utilizao de
streaming), que melhorassem a performance da aplicao.
64
Referncias
[1] Tristan Richardson, "Virtual Network Computing", IEEE Internet Computing, Jan/Feb 1998.
[2] Tristan Richardson, The RFB Protocol version 3.8, PDF, June 2007.
[3] How to realise the benefits of mobile broadband today, Global System for Mobile
Communications (GSMA) publication, February 2007.
[4] Comparao das solues da ShapeServices. ltimo acesso em 10/08/2007.
http://www.shapeservices.com/en/products/remote_whitepaper.php
[5] Microsoft WAVE sound file format. ltimo acesso em10/08/2007.
http://ccrma.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
[6] Microsoft corporation, Windows Server 2003 Remote Access Overview, White Paper, 1-2, March
2003.
[7] Microsoft, INFO: UDP Datagram Can Be Silently Discarded if Larger than MTU
http://support.microsoft.com/kb/233401 ltimo acesso em 10/08/2007
[8] Oliveira, J., Kamienski, C. A., Kelner, J., Sadok, D., "Anlise de Desempenho de TCP sobre GPRS
em um Ambiente Fim a Fim", Workshop de Comunicao Sem Fios (WCSF 2004), Fortaleza/CE,
October 2004.
[9]
R. Chakravorty, J. Cartwright and I. Pratt, Practical Experience with TCP over GPRS, Proc. of
2006
65
66
67
A codificao refere-se a como que um rectngulo de pixeis enviado pela rede. Cada
rectngulo de pixeis precedido por um cabealho que indica a posio x, y do rectngulo no ecr, o
seu comprimento, a sua altura e o tipo de codificao utilizada. O contedo destes segue depois a
codificao especificada.
Os tipos de codificao definidos actualmente so: Raw, CopyRect, RRE, CoRRE, Hextile e
ZRLE. Entre estes os mais usados so o ZRLE, Hextile, e CopyRect pois providenciam a melhor
compresso para os ambientes de trabalho tpicos.
Novas
codificaes,
podem
ser
facilmente
adicionadas
ao protocolo, mantendo
compatibilidade com os clientes e servidores existentes, pois os servidores iro simplesmente ignorar
pedidos de codificaes que no suportem, e os clientes nunca pediro essas novas codificaes.
Pseudo codificaes, podem ser pedidas pelos clientes para declarar ao servidor que suportam
uma certa extenso ao protocolo. Um servidor que no suporte a extenso ir simplesmente ignorla, o que significa que o cliente deve assumir que o servidor no suporta a extenso em causa at
receber uma confirmao especfica deste.
Novos tipos de segurana podem ser adicionados, dando assim uma grande flexibilidade ao
comportamento do protocolo sem sacrificar a compatibilidade existente. Um cliente e servidor que
acordem um novo tipo de segurana, podem efectivamente comunicar usando qualquer protocolo
depois disso (no tendo de ser necessariamente o protocolo RFB).
68
A.5.1.2 Segurana
Assim que a verso do protocolo utilizada est decidida, o cliente e o servidor tm de concordar
no tipo de segurana que vo utilizar na ligao.
Numero de bytes
1
nmero-de-tipos-de-segurana
Tipo
[Valor]
U8
Vector de U8
Descrio
nmero-de-tipos-de-segurana
tipos de segurana
Se o servidor listou pelo menos um tipo de segurana suportado pelo cliente, ento o cliente
envia de volta um nico byte indicando qual o tipo de segurana a ser usado na ligao:
Numero de bytes
1
Tipo
U8
[Valor]
Descrio
tipo de segurana
Se o tipo de segurana zero, ento por alguma razo a ligao falhou. Isto seguido por uma
cadeia de caracteres descrevendo a razo para tal ter acontecido (a cadeia de caracteres
especificada como sendo o comprimento desta, seguido desse mesmo numero de caracteres ASCII).
Numero de bytes
4
comprimento da razo
Tipo
U32
Vector de U8
[Valor]
Descrio
comprimento da razo
cadeia de caracteres
descrevendo a razo
69
Verso 3.3 O servidor decide o tipo de segurana a ser usado e envia-o ao cliente:
Numero de bytes
4
Tipo
U32
[Valor]
Descrio
tipo de segurana
O valor zero significa que a ligao falhou e seguido por uma cadeia de caracteres
descrevendo a razo conforme descrito anteriormente. Os tipos de segurana definidos so:
Numero
0
1
2
5
6
16
17
18
Tipo
Invlido
Nenhum
Autenticao do VNC
RA2
RA2ne
Tight
Ultra
TLS
Quando o tipo de segurana decidido, os dados especficos para esse tipo de segurana so
enviados de seguida. Depois verses 3.8 e posteriores - o servidor envia uma mensagem ao cliente
informando se foi bem sucedida a troca de mensagens de segurana.
Numero de bytes
4
Tipo
U32
[Valor]
Descrio
status:
OK
failed
0
1
Note-se que depois da fase de troca de mensagens de segurana, possvel que os restantes
dados do protocolo sejam trocados por um canal cifrado ou de qualquer outra forma alterado. No
caso de ser bem sucedido, o protocolo continua com a mensagem de Inicializao do cliente.
Numero de bytes
1
Tipo
U8
[Valor]
Descrio
flag partilha de desktop
A flag partilha de desktop ser diferente de zero se o servidor deve tentar partilhar o ambiente de
trabalho, deixando outros clientes ligados e ser zero se o servidor deve dar acesso exclusivo ao
cliente, terminando a ligao com todos os outros clientes j ligados.
70
Numero de bytes
2
2
16
4
comprimento do nome
Tipo
[Valor]
U16
U16
PIXEL_FORMAT
U32
Vector de U8
Descrio
largura do framebuffer
altura do framebuffer
formato de pixel do servidor
comprimento do nome
cadeia de caracteres do nome
Onde PIXEL_FORMAT :
Numero de bytes
1
1
1
1
2
2
2
1
1
1
3
Tipo
U8
U8
U8
U8
U16
U16
U16
U8
U8
U8
[Valor]
Descrio
bits por pixel
profundidade
flag big-endian
flag true-colour
mximo de vermelho
mximo de verde
mximo de azul
deslocamento de vermelho
deslocamento de verde
deslocamento de azul
enchimento com zeros (padding)
O formato natural dos pixeis a ser usado ser o formato de pixel do servidor a menos que o
cliente pea um tipo diferente usando a mensagem de Definir o Formato dos Pixeis.
Bits por pixel o numero de bits usado para cada pixel transmitido, devendo ser maior ou igual
que a profundidade que o numero til de bits por pixel. Nas verses actuais, os bits por pixel devem
ser 8, 16 ou 32 (menos de 8 bits por pixel ainda no so suportados). A flag big-endian ser diferente
de zero se pixeis de mais do que um byte so para ser interpretados como big-endian.
Se a flag true-colour for diferente de zero, ento os ltimos seis itens especificam como extrair as
intensidades de vermelho, verde e azul do formato de pixel. O mximo de vermelho o mximo valor
n
71
Numero de bytes
16
Tipo
U8
[Valor]
Descrio
desafio
O cliente cifra o desafio com DES, usando a palavra-chave fornecida pelo utilizador e envia o
resultado de 16-bytes de volta ao servidor:
Numero de bytes
16
Tipo
U8
[Valor]
Descrio
resposta
Numero de bytes
1
3
16
Tipo
U8
[Valor]
0
PIXEL_FORMAT
Descrio
tipo da mensagem
enchimento com zeros (padding)
formato dos pixeis
72
Numero de bytes
1
1
2
Tipo
U8
[Valor]
2
U16
Descrio
tipo da mensagem
enchimento com zeros (padding)
nmero-de-codificaes
Tipo
S32
[Valor]
Descrio
tipo de codificao
Tipo
U8
U8
U16
U16
U16
U16
[Valor]
3
Descrio
tipo de mensagem
incremental
posio-x
posio-y
largura
altura
73
Tipo
U8
U8
[Valor]
4
U32
Descrio
tipo de mensagem
flag pressionada
enchimento com zeros (padding)
tecla
Tipo
U8
U8
U16
U16
[Valor]
5
Descrio
tipo de mensagem
mascara de botes
posio-x
posio-y
Numero de bytes
1
3
4
comprimento
Tipo
U8
U32
Vector de U8
[Valor]
6
Descrio
tipo de mensagem
enchimento com zeros (padding)
comprimento
texto
74
Tipo
U8
[Valor]
0
U16
Descrio
tipo da mensagem
enchimento com zeros (padding)
nmero-de-rectngulos
Esta mensagem inicial seguida por nmero-de-rectngulos rectngulos com dados de pixeis.
Cada rectngulo consiste em:
Numero de bytes
2
2
2
2
4
Tipo
U16
U16
U16
U16
S32
[Valor]
Descrio
posio-x
posio-y
largura
altura
tipo de codificao
Numero de bytes
1
1
2
2
Tipo
U8
[Valor]
1
U16
U16
Descrio
tipo de mensagem
enchimento com zeros (padding)
primeira cor
nmero-de-cores
Numero de bytes
2
2
2
Tipo
U16
U16
U16
[Valor]
Descrio
vermelho
verde
azul
75
Numero de bytes
1
Tipo
U8
[Valor]
2
Descrio
tipo de mensagem
Tipo
U8
[Valor]
3
U32
Vector de U8
Descrio
tipo de mensagem
enchimento com zeros (padding)
comprimento
texto
A.5.5 Codificaes
As codificaes definidas neste documento so:
Numero
0
1
2
-239
-223
Nome
Raw
CopyRect
RRE
Pseudo-Codificao do Cursor
Pseudo-Codificao do Tamanho do Desktop
Nome
CoRRE
Hextile
zlib, tight, zlibhex
Opces do TightVNC
76
Numero de bytes
largura x altura x bytesporpixel
Tipo
[Valor]
Vector de PIXEL
Descrio
pixeis
Numero de bytes
2
2
Tipo
U16
U16
[Valor]
Descrio
posio-x-origem
posio-y-origem
Tipo
U32
PIXEL
[Valor]
Descrio
nmero-de-subrectangulos
valor do pixel de fundo
77
Tipo
PIXEL
U16
U16
U16
U16
[Valor]
Descrio
valor do pixel do sub rectngulo
posio-x
posio-y
largura
altura
A.5.6 Pseudo-Codificaes
A.5.6.1 Pseudo-Codificao do cursor
Um cliente que pea esta pseudo-codificao est a declarar que capaz de desenhar o cursor
do rato localmente. Isto pode melhorar significativamente a performance sobre ligaes lentas. O
servidor define a forma do cursor enviando um pseudo-rectngulo com a pseudo-codificao do
cursor, como parte de uma actualizao. A posio-x e a posio-y do pseudo-rectngulo indicam a
ponta do cursor, e a largura e a altura indicam a largura e a altura respectivas do cursor em pixeis. Os
dados desta mensagem consistem em largura x altura valores de pixeis seguidos por uma mscara.
A mscara consiste num varrimento de linhas da esquerda para a direita e de cima para baixo, onde
cada linha preenchida com zeros (padded) at perfazer um nmero inteiro de bytes floor((largura +
7)/8) + altura). Dentro de cada byte, o bit mais significativo representa o pixel mais esquerda, sendo
que o bit 1 significa que o pixel correspondente do cursor vlido.
Numero de bytes
largura x altura x bytesporpixel
floor((largura + 7)/8) + altura)
Tipo
[Valor]
Vector de PIXEL
Vector de U8
Descrio
pixeis-do-cursor
mascara
78
USER GUIDE
J2ME VNC by Michael Lloyd Lee, modified by Nuno Freire
WinVNC Version 3.3.3 r7, modified by Nuno Freire
79
B.1 Viewer
The J2ME VNC original version made by Michael Lloyd Lee has been slightly changed (improved I
hope) in this release. It now supports some new features like server side scaling, sound transfer and
user profiles, requiring a modified VNC server (which is distributed with this version of the software).
The initial form looks like the following:
In the left figure you can see some text boxes where you can enter the hosts address to which
you wish to connect, the password to authenticate the viewer and a username. The content of this last
text box is only taken into account if youre using the VNC server distributed with this version of the
software which supports a new functionality (user profiles). On the lower bottom, you can see some
check boxes which are:
Shared Desktop If you want to share the server desktop with other possible viewers or
not.
NCM (Nokia Compatibility Mode) If youre having problems with your old Nokia phone,
perhaps you should try to activate this mode.
SS (Server Side) Scaling This mode only works if youre using the VNC server
distributed with this version of the software. It does what the name suggests.
Smooth Navigation A new mode which allows for a smoother navigation through the
desktops in exchange for more available memory on the mobile platforms.
In the right figure you can see the options accessible from the initial form:
The Log option lets you see the log saved during the last connection made.
The Connect option lets you connect to the selected host using the corresponding
password. It requires that the hostname text box is filled.
The Add Host option puts the value of the hostname text box in the address book
The Address book option moves you to a form (shown next) where you can see the
previously recorded hosts, change the passwords associated with them, delete them and
80
select the one you wish to connect to. You can also set a master password to limit the
access to this form to authorized users.
After choosing the Connect option you will be transported to the following form, where you can
see a progress bar indicating how the connection is occurring.
In this form you cant do much except waiting for the connection to be established, choose to Exit
the application or choose to see the Log option.
After this screen, the session to the VNC server is established and the user can now view and
control the remote desktop. The input system remains similar to the original with a few keys added:
Mouse mode:
1 = call mouse
3 = scroll up
5 = click
9 = scroll down
7 = press and hold left button/release left button
0 = right click
# = double click
call key = enter
cancel key = backspace
4
Direction buttons (and 2,4,6,8) move the mouse
* = change mode
By moving the mouse outside the screen, you can now also navigate through the desktop using this mode
81
The options accessible when the connection is established are the following:
The Change Mode option lets you select the desired mode and allows you to zoom in or
zoom out the display. You can also change modes using the * key and zoom in and out
using the 3 and 9 keys while in the navigation mode.
The Mouse option gives you a list of all the mouse events you can use. Call mouse sends
the pointer to the center of the screen. A first selection of Click&Hold L.B. presses the left
mouse button and leave it that way and a second selection of the same event un-presses
the left button. You can use this, for instance, to select a phrase in a text or to move a
window across the desktop. The other events available are self explanatory.
82
The Special Keys option lets you see a list of keys that are not accessible from most of
the mobile phones keyboards. The list is not exhaustive but the main keys are present.
Combinations of keys can be made, for instance, you could press Ctrl (which remains
pressed), then press Shift (which also remains pressed) and then press Escape. In
alternative you can create a macro in the About Midlet that does the before-mentioned
action. You can also use combinations like pressing Ctrl and then typing an a (must be
lower case) in SMS mode to obtain the windows select-all shortcut.
The Stats option lets you see some stats obtained during the connection, like, throughput,
bytes transferred, memory used by the applicationThis may not be of much interest to
the regular user.
The Ping option lets you make a ping to the server in an attempt to estimate the round trip
time. It uses two methods and may also not be of much interest to the regular user. Both
the Ping and the Stats options may be removed in a future version.
The Refresh option sends an update request to the server for the whole desktop.
The Options option lets you configure a bunch of variables in the viewer. The Scroll
Amount and the Mouse Move amount are self explanatory. The Active Refresh
indicates whether or not you want the screen to be refreshed every couple of seconds.
The Local Cursor indicates whether or not every movement of the cursor in the viewer
83
should reflect an action by the server or if only the clicks should be sent to the server. The
Volume is a new feature only available if youre using the VNC server version distributed
with this software, and a value of zero represents that no sound transfer session has been
initiated and a value higher then zero indicates the volume at which the sound should be
played in the mobile phone.
The Enter Text option allows the user to send text to the server. It also allows pasting to the
form a previously copied text from the server (available in its clipboard), changing it and
sending it back. If the user uses the Copy option in this form, all the user text will be available
in the server clipboard.
84
External to the main application theres an About MIDlet where you can define Macros using a
special format. For instance, if you want to send Hello to the server, the macro should be defined as
!H!e!l!l!o and if you want to send ctrl alt delete, it should be defined as <\c<\a!\d>\a>\c. All
the user defined macros will be accessible through the Special Keys form.
The letter combos available are the following:
x literal,
\1 - F1
\d Delete,
...
\a Alt,
\9 F9
\m Meta,
\0 F10
\c Control,
\A - F11
\s Shift,
\B - F12
\e Escape,
\\ \
\n newline,
\p |
- key down
>
- key up
mXXXX,XXXX
MXXXX,XXXX
85
B.2 Server
The corresponding enhanced VNC server was the only one found on the Internet that had server
side scaling extensions and was originally distributed with the PalmVNC software. Besides the server
side scaling extensions, this software was modified to support sound transfer and user profiles. It also
has some new features that you may recognize from newer versions of the VNC server (like
RealVNC). To configure the new options you simply have to right-click on the VNC server icon on the
taskbar.
The Properties menu now lets you choose from 2 different security types. The Normal
Authentication is the standard for any VNC server application and you may want to use this if youre
using a regular VNC viewer. The User Authentication is
an extension to the protocol which lets you use the new
user profile features. This new feature allows the
creation of user profiles in the server and when a viewer
connects using a username that matches any of the
previously configured profiles, a special application may
be run and the viewer will only have access to it (instead
of the whole desktop) and a few more properties may be
configured for each profile. If no match is made the
standard user profile will be used.
Another new functionality is sound support. This lets the
viewer listen to whatever is playing on the server or being
captured by the microphone, depending on how you
configure the windows recording settings. You may
choose to compress the transferred sound or not and
you may choose a silence threshold if you want to have
some
sort
of
silence
suppression.
The
silence
86
To choose between capturing the audio from the microphone and capturing the audio that is being
played internally on the computer you may want to go
the Wave In window (Recording section) and select
the appropriate channel. Typically, only one live
channel is live, but once you find it, it always works.
Unfortunately, each audio card uses different channel
names, so you must look for a channel named
something like this:
Stereo Mix, Record Master, What U Hear, Sum
Balance, Stereo Mixer, Mixed Output, Wave Out Mix,
Wave/MIDI/CC
To record external audio, use the Microphone channel.
To create, change and/or delete user profiles you need to access the Users menu. There you may
differentiate the users by selecting different properties for each one. You may also want to restrict the
user control to a specific application. For that, you need to enter the full location of the application you
want to run when the client connects, substituting all the \ by \\. At the time, this new feature only
allows one client to be connected at one given moment or the viewer will became all mixed up.
87
If youre behind a router or a firewall you need to open 3 ports to be able to access all the new
functionalities. If you have the Display Number set to zero, this means that the port used by the VNC
to communicate is the 5900, the port used to accept a sound transfer request from the viewer is the
5901 and the port used to be able to ping the server is the 5902. You may not allow access to the last
two mentioned ports but this way you wont have access to the corresponding functionalities.
For other information about the VNC server please refer to the original (WinVNC) manual.
88
89
C.2 Descompresso
90
91