SmartVNC: An Effective Remote Computing Solution for Smartphones MAC0463 Renato Augusto Vieira Nishimori
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 remota.
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. TaskEffort(VNC) = TaskEffort(PC) * Inflation
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. Potencial de redução entre 20% e 80%.
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; Prioridade: diminuir o esforço em tarefas.
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 pertence, nome (id) e estado.
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. Grava valores padrões como parâmetros.
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 smartmacros com valores padrão (caixas de texto, check-boxes, etc). Outro modo que permite pausar a macro.
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. Servidor VNC: RealVNC.
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); Identificador de parâmetro e estado;
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 interação.
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 opensource. 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.
Resultados do SmartVNC
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%.
Dúvidas?