MAC0463
Renato Augusto Vieira Nishimori
SmartVNC: An Effective
Remote Computing
Computação Remota
● Permite acesso remoto aos desktops;
● Uso: acesso a arquivos e dados, assistência remota, infraestruturas de desktops virtuais; ● Mais de 60 softwares de computação
Tipos de software de computação
remota
● Envio de dados dos pixels. Exemplo: VNC. Servidor codifica e envia, cliente recebe, decodifica e renderiza.
● Baseado em primitivas gráficas (comandos de desenho básicos do SO). Exemplo: RDP (Microsoft).
Motivação da criação do SmartVNC
● Adequado para uso de computador como cliente, mas não para smartphones: tela menor, falta de mouse e teclado físico.
Inflação: motivos
● Zoom problem: Necessário dar zoom para interagir com elementos pequenos da GUI;
● Pan problem: Necessário mover a janela de visualização para ter acesso a todos os elementos da GUI;
Inflação: motivos
● Keyboard problem: Necessário toque
adicional para abrir o teclado e mais toques para utilizar teclas como Ctrl, F1;
● Error problem: Mais fácil de cometer erros, mais difícil desfazê-los.
Diminuir redundância para diminuir
o esforço
● Objetivo: Diminuir o TaskEffort(PC),
efetuando operações de forma agregada;
● Tarefa repetitiva: aparece ao menos 2 vezes no histórico, de comprimento pelo menos 2;
Redundância
● Monitor no computador captura operações efetuadas pelo usuário e analise operações redundantes. Exemplo:
ABCABCDABE -> XXDYE (X = ABC, Y = AB); ● Redundância = (10 - 5) / 10 = 50%
● Experimentos: Redundância entre 20% e 40%, média de 30.96%;
Considerações na redução da
redundância no Smartphone
● Nem todas as operações podem ser substituídas por uma de comprimento um;
● Não leva em conta a inflação.
● Experimentos -> Inflação de 3.31.
Como diminuir? Macros!
● Sequência de operações gravadas que podem ser reproduzidas depois;
Dois tipos:
● Macros de aplicação: Específica para programa. Ex: Excel, iMacros (browser);
● Macros "cruas": Grava cliques do mouse (coordenadas) e teclas digitadas. Ex: AutoHotkey.
Princípios do Design SmartVNC
● Servidor SmartVNC (coexiste com o servidor VNC, transparentemente);
● Cliente SmartVNC: Integrado com o cliente de computação remota (Overlay do cliente VNC).
● Permitir criar macros robustas e extensíveis no PC e usá-las no smartphone.
Front-end no smartphone
● Não intrusiva, coexistir com o cliente de VNC;
● Não limitar o usuário caso macros
relevantes não estejam disponíveis;
Smart-macros
● Robustez de macros de aplicação,
generalidade de macros "cruas";
● Como o SO assume a responsabilidade de providenciar callbacks para a aplicação quando elementos da GUI são invocados ou
manipulados, cada elemento tem
informações como aplicação a qual
Smart-macros
● Sequência de operações onde cada
operação é representada pelo elemento da GUI, novo estado e entrada do usuário;
Parametrização de macros
● Na hora da gravação da macro, identifica certas operações como parametrizáveis.
Reproduzindo as smart-macros
● Quando a smart-macro é invocada no smartphone, o comando vai para o SmartVNC Server (não é visível ao VNC Server).
● No entanto a reprodução da smart-macro é visível em tempo real pelo VNC Server.
Reproduzindo as smart-macros
● Modo parametrizado: Se a smart-macro requer input do usuário, o front-end automaticamente faz o zoom e pan para o elemento da GUI relacionado.
● Modo contínuo: Reprodução das smart-macros com valores padrão (caixas de texto, check-boxes, etc).
Recomendação offline de Macros
● Servidor SmartVNC monitora atividade do usuário e gera um relatório de atividades repetitivas: aplicação, tamanho, sequência de operações e frequência.
● Filtra e ordena de acordo com preferências do usuário (tamanho, frequência). Usuário pode então selecionar novas macros.
Servidor SmartVNC
● C#, HyperSQL.
Módulos do servidor SmartVNC
● Frontend;
● GUI Element Extractor (transformar
operações "cruas" em operações com elementos da GUI e recuperar uma ID única para cada elemento);
Módulos do servidor SmartVNC
● Gerador de macro;
● Reprodutor de operações; ● Recomendador de macros;
● Manipulador de exceções. Exemplo: Clicar em um link antes que a página carregue,
notificações ou alertas bloqueando
Cliente SmartVNC no Smartphone
● Modificação no AndroidVNC, um cliente VNC open-source (2 arquivos: VNCActivity e VNCCanvas, responsável pela GUI).
Módulos do cliente SmartVNC
● Painel de overlay (menu da aplicação); ● Visualizador de macros;
● Visualizador de parâmetros e exceções;
● Receptor de notificações (novas macros, updates).
Considerações de implementações
futuras
● Portabilidade possível para Mac OS, Linux. ● Portabilidade para iPhone, Windows Phone,
Symbian: depende de clientes VNC open-source.
● Uso para qualquer app, não apenas para aplicativos de computação remota.
Avaliação de Performance
● Windows XP SP3, monitor de 19 polegadas (1280 x 1024) e Samsung Galaxy, tela 4 polegadas (800 x 480).
● 9 programas, 6 tarefas de complexidade variada para cada programa.
● Comparação com o Android VNC e PC (sem macros).
Metodologia
● 22 voluntários, nem todos usuários de smartphones.
● Fazer três tarefas (de diferentes
complexidades) em dois programas
aleatórios entre os nove. ● 54 macros pré-definidas.
Resultado da recomendação offline
de macros
Avaliação da redução de esforço
● De 14.85% a 70.30%; ● Média de 37.71%.