Infraestructura Movil Virtual (VMI) Basada EN Soluciones Wearable
Infraestructura Movil Virtual (VMI) Basada EN Soluciones Wearable
Infraestructura Movil Virtual (VMI) Basada EN Soluciones Wearable
WEARABLE”
Proyecto de Grado
Asesor
CARLOS ENRIQUE MONTENEGRO NARVAEZ
Docente Facultad Ingeniería Electrónica
2
CONTENIDO
1 INTRODUCCION ........................................................................................................ 1
2 PLANTEAMIENTO DEL PROBLEMA ......................................................................... 2
3 JUSTIFICACION ........................................................................................................ 4
4 OBJETIVO GENERAL ................................................................................................ 6
4.1 OBJETIVOS ESPECÍFICOS................................................................................ 6
5 ESTADO DEL ARTE .................................................................................................. 7
5.1 Infraestructura Móvil Virtual ................................................................................. 9
5.2 Virtualización de Aplicaciones Móviles .............................................................. 11
5.3 Protocolo de visualización Remota .................................................................... 11
5.4 Wearables ......................................................................................................... 15
5.5 Trabajos relacionados ....................................................................................... 17
5.5.1 Nubo........................................................................................................... 17
5.5.2 Sierra.......................................................................................................... 18
5.5.3 Trend Micro ................................................................................................ 19
6 Solución.................................................................................................................... 21
6.1 Virtualización ..................................................................................................... 23
6.2 Hardware ........................................................................................................... 24
6.3 Hipervisor .......................................................................................................... 24
6.4 Máquina virtual .................................................................................................. 29
6.5 Storage o Almacenamiento................................................................................ 32
6.6 Memoria ............................................................................................................ 35
6.7 Asignación de memoria a las máquinas virtuales .............................................. 35
6.8 Protocolo de Comunicación ............................................................................... 36
6.9 RFB (Remote Framebuffer) ............................................................................... 38
6.10 Conexión Inicial ................................................................................................. 38
6.11 Protocolo de visualización ................................................................................. 38
6.12 Protocolo de Entrada ......................................................................................... 39
6.13 Representación de datos de pixeles .................................................................. 39
6.14 Mensajes del protocolo ...................................................................................... 40
6.14.2 Solicitud de Actualización del Framebuffer ................................................. 41
3
6.14.3 Eventos del Puntero ................................................................................... 42
6.14.4 Actualización del Framebuffer .................................................................... 42
6.14.5 Entradas de mapas de color ....................................................................... 43
6.14.6 Codificación ................................................................................................ 43
6.14.7 Seguridad ................................................................................................... 44
6.14.8 Motion JPEG .............................................................................................. 44
6.15 Hybrid Remote Display Protocol ........................................................................ 46
6.16 Compresión JPEG ............................................................................................. 48
6.17 Color Space Transformation .............................................................................. 49
6.18 Discrete Cosine Transform ................................................................................ 50
6.19 Adaptative quantization ..................................................................................... 54
6.20 “Zigzag” Ordering .............................................................................................. 54
6.21 Run-Lengh Encoding ......................................................................................... 55
6.22 Huffman Coding................................................................................................. 56
6.23 Método de detección de movimiento ................................................................. 58
6.24 Implementación ................................................................................................. 60
6.25 Evaluación de la solución .................................................................................. 61
6.26 Dispositivo Terminal .......................................................................................... 64
6.27 Futuro de los Wearable ..................................................................................... 67
6.28 DATOS DE ENTRADA AL S.O. REMOTO ........................................................ 68
7 CONCLUSIONES ..................................................................................................... 70
8 BIBLIOGRAFIA .......................................................................................................... 72
4
TABLA DE FIGURAS
TABLAS
6
GLOSARIO
7
GPU (Graphics Processor Unit) : El tipo de procesamiento al que se dedica es al
de gráficos.
H.264: Especifica la capa del sistema de la codificación. Se desarrolló
principalmente para apoyar la combinación de los métodos de codificación de
video y audio
Handshake: Término utilizado para describir el proceso de un dispositivo que
establece una conexión con otro.
HBA (Host-Bus Adapter): Un adaptador de bus de host es adaptador de circuito
integrado que proporciona procesamiento de entrada y salida y conectividad física
entre un sistema host y un dispositivo de almacenamiento y/o red.
HYPERVISOR: También llamado VMM (Virtual Machine Monitor) ó monitor de
máquina virtual se encarga de gestionar los recursos del sistema principal
exportándolos a la máquina virtual.
IME (Input Method Editor): Método de entrada convierte pulsaciones de teclado en
caracteres a un idioma entendible.
MCC (Mobile Cloud Computing): Computación en la nube móvil, es la combinación
de Computación en la nube y redes cuya finalidad es permitir la ejecución de
aplicaciones móviles en una gran cantidad de dispositivos móviles.
M-JPEG (Motion-JPEG) : Es un algoritmo de compresión de imágenes.
MPEG-2: Designación de codificación de audio y vídeo que fue publicado como
estándar ISO 13818.
NIC (Network Interface Card): La tarjeta de red instala en un computador para que
pueda ser conectado a una red.
QoE(Quality of Experience): La calidad de experiencia es definida como la
aceptabilidad de una aplicación o servicio.
RAM (Random Access Memory) : Memoria de accesos aleatorio, es utilizada por
un procesador para recibir instrucciones y almacenar información.
RFB (Remote Framebuffer): Es un protocolo simple para el acceso remoto a
interfaces gráficas de usuario que permite a un cliente ver y controlar un sistema
de ventanas en otro ordenador
RLE (Run-length encoding): La compresión RLE es un método de compresión de
datos en la que secuencias de datos con el mismo valor consecutivas son
almacenadas como un único valor.
8
SAN (Storage Area Network): Red de área de almacenamiento, red de alta
velocidad dedicada (y subred) que interconecta y presenta agrupaciones
compartidas de dispositivos de almacenamiento a varios servidores.
SCSI (Small Computer System Interface): Una interfaz de transferencia de datos,
es un conjunto de estándares de interfaz paralelos para conectar diferentes
dispositivos.
SSH (Secure SHell): Es un protocolo que facilita las comunicaciones seguras entre
dos sistemas usando una arquitectura cliente/servidor
THIN-CLIENT (cliente ligero): Es decir un dispositivo de reducidas dimensiones y
poco peso con el mínimo número de elementos electrónicos.
VDI (Virtual Desktop Infrastructure): Infraestructura virtual de escritorios es la
práctica de alojar un sistema operativo de escritorio dentro de una máquina virtual
(VM) que se ejecuta en un servidor centralizado.
VDM: Virtualización de dispositivos móviles
VM (Virtual Machine): Una máquina virtual es una implementación de software,
que normalmente emula un ambiente de computación físico donde los recursos de
hardware se abstraen de una infraestructura de hardware físico subyacente.
VNC (Virtual Network Computing): Computación virtual en red, es una tecnología
de escritorio remoto que permite visualizar y controlar la visualización de una
computadora a través de una red.
WNIC (wireless network interface controller): Es una tarjeta de red que se utiliza
para conectar redes de computadoras basadas en radio, en lugar de una red
cableada.
9
1 INTRODUCCION
Fuente: AUTOR
1
(WhatsApp.com. (2017). WhatsApp support for mobile devices. Disponible:
https://blog.whatsapp.com/10000617/Compatibilidad-de-WhatsApp-con-tel%C3%A9fonos-m%C3%B3viles)
2
http://www.eltiempo.com/colombia/otras-ciudades/cifras-sobre-robos-en-colombia-en-2016-33762 (EL
TIEMPO, 2016)
3
3 JUSTIFICACION
5
4 OBJETIVO GENERAL
6
5 ESTADO DEL ARTE
3
Wolf, C., Halter, E.: Virtualization From the Desktop to the Enterprise. Apress (2005)
4
Sunwook K., Jihyeok C., Seongwoon Kim, and Hagyoung Kim (2016). Cloud-based Virtual Desktop Service
Using Lightweight Network Display Protocol. International Conference on information Networking (ICOIN) 2016
7
funciona sin conexión.
Fuente : AUTOR
8
5.1 Infraestructura Móvil Virtual
VMI tiene una gestión de aplicaciones móviles que permite trabajar y administrar
cualquier aplicación en cualquier dispositivo. Al igual que VDI (Virtual Desktop
Infrastructure) que hace referencia al proceso de hospedar un sistema operativo
para computadoras de escritorio en una máquina virtual (VM) que opera desde un
servidor centralizado, la infraestructura móvil virtual (VMI) aloja un sistema
operativo en un centro de datos, los usuarios pueden acceder a él remotamente
desde varios puntos finales. La diferencia con VDI es que alberga un sistema
operativo móvil en lugar de un sistema operativo de escritorio donde los clientes
son aplicaciones móviles y los protocolos de visualización remota están diseñados
específicamente para manejar entradas táctiles y conexiones móviles. Con VMI,
se puede entregar una aplicación móvil alojada en un centro de datos a un
dispositivo móvil que se ejecute en cualquier plataforma.
Hay que tener en cuenta otros aspectos ya que todas las soluciones de VMI tienen
como sistema operativo alojado Android, ya que Apple no permite que iOS
funcione con hardware de terceros ni se controle de forma remota. Esto significa
que todas las aplicaciones para el entorno VMI deben estar disponibles para
Android. Esto puede ser un desafío, ya que muchos proveedores de software
independiente todavía producen aplicaciones sobre IOS primero.
5
Hyun-suk Roh., Hyun-woo Lee., y Sang-ho Lee., 2014, A study on mobile virtualization
9
La capa de virtualización correlaciona el hardware virtualizado con los recursos
físicos terminales.
VMI permite un control total sobre el sistema operativo móvil, algo que ha sido casi
imposible en la era de los teléfonos inteligentes, donde se puede personalizar el
sistema operativo, controlar las actualizaciones (tanto las actualizaciones de
aplicaciones como las actualizaciones del sistema operativo), establecer permisos
y, en general, bloquearlos como desee.
6
Mohd F., Ros H., Muhammad A. Virtual Desktop Environment on Cloud Computing Platform. Control and
System Graduate Research Colloquium (ICSGRC), 2014 IEEE 5th
10
sean redirigidas a las aplicaciones del cliente. Los protocolos remotos necesitan
soportar más que solo eventos táctiles. Para una sólida experiencia de usuario,
tienen que soportar audio, datos de ubicación, orientación, cámaras etc.
7
(Hypori Virtual Mobile Infrastructure Optimizes Android Devices on Intel-Based Clouds. Article “Android Cloud
Environment Now Available for Android Systems Running on Intel-based Servers , 2105)
8
Husain, Amir. "How to build an Application Virtualization Framework". VDIworks. 2008
11
por estas especificaciones. Los sistemas operativos usualmente contienen un
conjunto de procesos que manipulan los datos compartidos para comunicarse el
uno al otro.
Esta comunicación es gobernada por protocolos que se pueden integrar en el
propio código del proceso. Entendiendo que en la nube donde los recursos
informáticos son abundantes y fácilmente disponibles, se espera que cualquier
dispositivo de carácter móvil aproveche los servicios que residen en la
infraestructura de la nube y los extienda al extremo hacia los usuario móviles
como un proceso de integración de computación en la nube y dispositivos móviles.
Fig. 3 CONCEPTO DE MOBILE CLOUD COMPUTING
Aplicaciones
Dispositiv
Conectivida Internet Servidor
Fuente: AUTOR
Como se ilustra en la Figura 3, las aplicaciones de los usuarios y los datos, están
hospedados en el lado de la nube, pero el usuario experimenta como si estuvieran
directamente hospedados en su dispositivo móvil o Wearable.
Estos dispositivos están habilitando nuevas formas de computación móvil y
comunicaciones, llamado computación en la nube móvil (MCC Mobile Cloud
Computing). MCC se define como computación en la nube ampliada por la
movilidad y la infraestructura basada en dispositivos de carácter móvil. En esencia,
a los usuarios les son proporcionados almacenamiento de datos y servicios de
procesamiento en una plataforma de computación en la nube en lugar de los
propios dispositivos móviles. Desde esa perspectiva, puede ser entendido como la
infraestructura donde el procesamiento de datos puede ocurrir fuera de un
dispositivo móvil habilitando la entrega de aplicaciones con cualquier plataforma y
sistema de operación, incluyendo navegación web, email, videoconferencias,
presentaciones, películas, juegos y aplicaciones multimedia.
12
La funcionalidad mínima requerida para que estos dispositivos soporten esta
tecnología es conectividad de red y una interface de usuario, de modo que las
entradas de los usuarios (como pulsaciones de las teclas) y las salidas de las
aplicaciones puedan ser transferidas de/hacia el servidor en la nube. Esto se
puede implementar en un marco de visualización remota. Hay tres clases de
componentes básicos para un marco de visualización remota9 1) Componentes del
lado del servidor que captura y codifica los gráficos de las aplicaciones, 2)
Componentes de interfaz de usuario en el lado del cliente donde los gráficos de
las aplicaciones transmitidas son decodificados y traducidos y 3) Un protocolo de
visualización remota para transferir gráficos de aplicaciones de un servidor a un
cliente y entregar la interacción del usuario desde un dispositivo cliente a un
servidor (Ver figura 4).
Fig. 4 MARCO DE VISUALIZACIÓN REMOTA
9
Boyun Eom and Hyunwoo Lee. “Power-Aware Remote Display Protocol for Mobile Cloud”. 2013
10
Hyunwoo Lee, and Won Ryu, Boyun Eom, Choonhwa Lee. “An Adaptive Remote Display Scheme to Deliver
Mobile Cloud Services” Member, IEEE, Vol. 60, No. 3, August 2014
13
aplicaciones. Este es realmente un protocolo "Thin-Client". De esta manera, los
clientes pueden ejecutar en la más amplia gama de hardware, y la tarea de
implementar un cliente se hace tan simple como sea posible.
El lado de visualización del protocolo se basa en torno a un único gráfico primitivo:
"poner un rectángulo de datos de píxeles en una posición dada x, y". Puede
parecer una forma ineficiente de dibujar componentes de interfaz de usuario
arbitrarios, pero debido a existe una variedad de esquemas de codificación
diferentes para los datos de píxeles, se puede seleccionar el esquema apropiado
para cada rectángulo a enviarse, y aprovechar al máximo el ancho de banda de la
red, la velocidad de dibujo y la velocidad de procesamiento del servidor.
Una secuencia de estos rectángulos hace una actualización de Framebuffer. Una
actualización representa un cambio de un estado de Framebuffer válido a otro, por
lo que en algunos aspectos es similar a un cuadro de vídeo, pero normalmente
sólo es un área pequeña del Framebuffer que se verá afectada por una
actualización dada. El protocolo de actualización se basa en la demanda del
cliente. Es decir, una actualización sólo es enviada por el servidor en respuesta a
una solicitud explícita del cliente. Esto da al protocolo una calidad adaptativa.
Cuanto más lento sea el cliente y la red, menor será la tasa de actualizaciones.
Cada actualización incorpora todos los cambios a la "pantalla" desde la última
solicitud del cliente. Con un cliente y/o una red lenta, los estados transitorios del
Framebuffer se ignoran, lo que resulta en un tráfico de red reducido y menos
dibujo para el cliente. Esto también mejora la velocidad de respuesta aparente.
Los esquemas fundamentales de codificación soportados en RFB son Raw,
CopyRect, RRE, Hextile, ZRLE, CoRRE, ZLIB, Tight y cada uno muestra un radio
de compresión diferente.
La tecnología “Thin Client” móvil proporciona un modo poderoso de romper las
barreras entre diversas aplicaciones y un ambiente insuficiente local de
hardware/software. Gracias a la centralización de las aplicaciones en los servers,
los servicios pueden ser gestionados más fácilmente a niveles más altos de
seguridad para ser alcanzados. Adicionalmente, los usuarios pueden acceder a
aplicaciones computacionalmente más intensivas, para los cuales los recursos
existentes en un dispositivo cliente móvil son insuficientes para ejecutarlos
localmente. Este tipo de aplicaciones, frecuentemente requieren hardware grafico
(GPU) para traducir sus imágenes.
Un reto clave para la arquitectura de un dispositivo cliente es el retraso entre los
eventos del cliente, como pulsaciones de teclas y/o las actualizaciones de la
visualización correspondiente. Los usuarios están acostumbrados a la nítida
interfaz gráfica de las aplicaciones que se ejecutan localmente y esperan que la
14
infraestructura de computación de cliente ligero ofrezca la misma funcionalidad 11.
Los protocolos actuales de visualización remota, como el protocolo de Framebuffer
remoto (VNCRFB) y el protocolo de escritorio remoto (RDP de Microsoft), están
optimizados para la visualización estática de aplicaciones de oficina, como un
editor de texto o una hoja de cálculo. Los cambios en la pantalla son sólo menores
y tienen una frecuencia suficientemente baja para que el protocolo de visualización
remota pueda hacerle frente. Sin embargo, con la aparición de aplicaciones
multimedia, los protocolos de visualización remota existentes no pueden alcanzar
los altos niveles de interacción en tiempo real que los usuarios han llegado a
esperar. El problema clave es el hecho de que las aplicaciones multimedia a
menudo generan imágenes con patrones de colores finos y complejos y muy poca
correlación entre marcos subsecuentes (secuencia de imágenes). El transporte de
datos multimedia a través de un protocolo de visualización remoto es muy
ineficiente, dando lugar a altos requisitos de ancho de banda para entregar todos
los Frames al cliente de manera oportuna12. Por otro lado, Codecs de video como
MPEG-213 o H.26414, se optimizan para manejar imágenes en movimiento rápido
en un ancho de banda de manera eficiente.
De acuerdo con Pieter Simoens15 es posible manejar protocolos de comunicación
remota hibrida (HRDP), que apalanque la capacidad de presentar aplicaciones
multimedia en tiempo real.
Para ello, el códec usado en el protocolo necesita ser capaz de entregar de
manera eficiente datos comprimidos (para reducir los requerimientos de ancho de
banda) y operar con baja complejidad en los recursos de hardware (para disminuir
la respuesta en latencia y el consumo de energía del dispositivo del cliente).
5.4 Wearables
11
Wei Tang, Biao Song, Myeong Seob Kim, Nguyen Tien Dung, Eui Nam Huh. “Hybrid Remote Display
Protocol for Mobile Thin Client Computing”. ©2012
12
L. Deboosere, J. D. Wachter, P. Simoens, F. D. Turck, B. Dhoedt, and P. Demeester, “Thin client computing
solutions in low- and highmotion scenarios,” in ICNS ’07: Proceedings of the Third International Conference on
Networking and Services. Washington, DC, USA: IEEE Computer Society, 2007, p. 38.
13
“ISO/IEC 13818-2:2000 Information Technology - generic coding of moving pictures and associated audio
information - part 2: Video.”
14
“ITU-T: h.264, Advanced video coding for generic audiovisual services,” 2005.
15
Pieter Simoens, Paul Praet, Bert Vankeirsbilck, Jeroen De Wachter, Lien Deboosere, Filip De Turck, Bart
Dhoedt, Piet Demeester. “Design and implementation of a hybrid remote display protocol to optimize
multimedia experience on thin client devices”. IBBT - Department of Information Technology, Ghent University
15
la hora de gestionar la información de los usuarios. A medida que la variedad de
tecnologías que se usan continúa creciendo, las TI debe hacer que sea una
prioridad considerar asuntos relacionados con la implementación, regulación y
restricciones de datos personales.
Los Wearables son como pequeñas computadoras que los usuarios usan en sus
cuerpos, por lo general en un accesorio común como un reloj o anteojos. Los
usuarios pueden almacenar datos convenientemente, rastrear ubicaciones e
incluso monitorear datos personales utilizando objetos portátiles.
La accesibilidad que ofrecen los dispositivos Wearables proporciona un medio
más fácil para mantenerse conectado. Loa Wearables también pueden almacenar
datos biométricos para el control de acceso y ofrecer instrucciones paso a paso u
orientación GPS. Incluso pueden traer reducciones de costos en comparación con
las tecnologías más grandes y más complejas. En la figura 5 se representa el
esquema de los dispositivos Wearables.
Fig. 5 Dispositivos Wearables
Fuente: IGOID, G. (2017). Los “Wearable” para mejorar nuestros hábitos de vida. Investigación en
gestiondeportiva.es
No obstante, este tipo de dispositivos se han vuelto una parte esencial para el
rápido desarrollo de redes móviles, y con el soporte de una red, estos sistemas de
clientes ligeros son un enfoque informático alternativo para proporcionar servicios
multimedia a los usuarios. Si se agrega ahora acceso remoto a un sistema
operativo y aplicaciones instaladas en un servidor remoto, se puede disfrutar de un
entorno informático convencional con la utilización de dispositivos portátiles
ligeros.
16
5.5 Trabajos relacionados
5.5.1 Nubo
17
La integración con los recursos de TI locales, como Active Directory, servidor de
correo, CRM y software de ERP, también es mucho más simple desde un sistema
central. Los empleados pueden conectarse desde cualquier dispositivo móvil y
sistema operativo que utilicen. Desde una perspectiva de seguridad empresarial,
las IT puede desconectar el acceso a recursos de red para dispositivos que se han
perdido, robado o comprometido de otro modo. Esto elimina la necesidad de
enfocar esfuerzos de seguridad dentro de los diversos dispositivos y sistemas
operativos que están en uso dentro de la organización (virtual mobile
infrastructure, 2016).
5.5.2 Sierra
Fuente: www.sierraware.com
Fuente: www.trendmicro.com
19
A través de este espacio de trabajo virtual alojado, los empleados pueden acceder
a los datos de trabajo sin el riesgo de pérdida de datos o fugas, ya que los datos
corporativos nunca se almacenan en sus dispositivos o salen del servidor de su
empresa. Los administradores pueden configurar y desplegar centralmente varias
áreas de trabajo móviles a todos sus usuarios corporativos a través de un panel
central.
20
6 Solución
Fuente: Autor
Fuente: AUTOR
A nivel del cliente, los usuarios pueden acceder de forma remota a sus servicios a
través de una aplicación de visor local y delegar el procesamiento de información
real en el servidor remoto. La aplicación de visor transfiere la entrada del usuario
al servidor y procesa las actualizaciones de visualización recibidas desde el
servidor.
22
6.1 Virtualización
23
Fig. 12 Arquitectura De Virtualización
Fuente: Autor
6.2 Hardware
6.3 Hipervisor
Las operaciones de las máquinas virtuales son transferidas y, como tal, no pueden
afectar al Hipervisor en el que está soportado. Una máquina virtual sólo puede
dañarse a sí misma, causando un único bloqueo pero ese evento no escapa de los
límites del contenedor de la VM, así, otras máquinas virtuales continúan
procesando, y el Hipervisor tampoco se ve afectado.
25
Fig. 14 Diferenciación Entre Los Dos Tipos De Hipervisores
26
hardware, como la creación de redes y el almacenamiento, ya ha sido cubierto por
el sistema operativo16.
16
Flexiant, (2017). Disponible en: https://www.flexiant.com/2014/02/05/what-does-a-hypervisor-do/
17
Portnoy, M. (2012). Virtualization essentials. Retrieved from proquest.com https://ebookcentral.
27
Fig. 15 Recursos Asignados A Máquinas Virtuales En Relación A Recursos Físicos
A cada máquina virtual se le presenta sólo una fracción de los recursos del host
físico. Un host puede tener 64 GB de memoria física instalada, pero la máquina
virtual puede creer que tiene 4 GB. Una máquina virtual puede estar escribiendo
archivos en una unidad D de 250 GB, pero en realidad está trabajando con una
porción de un sistema de archivos en una red de área de almacenamiento mucho
más grande [17]. Procesamiento y recursos de red funcionan de manera similar:
una VM puede tener dos CPUs virtuales y acceso a una sola tarjeta de interfaz de
red (NIC), pero el host físico tendrá muchos más recursos que estos.
Lo segundo es que el Hipervisor no sólo tiene que abstraer el hardware de cada
uno de los invitados virtuales, también necesita equilibrar esa carga de trabajo.
Cada VM hace constantes demandas en los diversos subsistemas de recursos. El
Hipervisor debe atender todas esas demandas actuando como un intermediario
entre cada VM y los dispositivos físicos, pero también lo hace de una manera que
proporcione recursos oportunos y adecuados a todos.
De esta manera, un Hipervisor se ha convertido en un sistema operativo para el
hardware, pero en lugar de ocuparse de solicitudes de aplicación y programa, el
Hipervisor presta servicios a servidores completos (virtuales). La siguiente figura
muestra cómo se procesa una operación de I/O. Una aplicación en la VM solicita
una lectura de disco y pasa esa solicitud a su sistema operativo. El sistema
operativo de la VM hace una lectura en el disco que ve. Aquí, el Hipervisor entra a
interpretar la solicitud, la traduce a un equivalente físico real y la pasa al
subsistema de almacenamiento. Cuando la respuesta vuelve, el Hipervisor pasa
los datos al sistema operativo de la VM, que lo recibe como si fuera directamente
28
del dispositivo físico.
No sólo el Hipervisor se encarga de todas las solicitudes de I/O de
almacenamiento desde el host, sino también la red de I/O, procesamiento de
memoria y CPU., esto lo hace para todas las VM en el servidor físico en el que se
está ejecutando el Hipervisor. El Hipervisor tiene un proceso de programación de
recursos que asegura que todos los recursos solicitados sean atendidos de una
manera óptima por lo que tienen opciones para dar prioridad a aplicaciones
importantes para que puedan recibir tratamiento preferencial y no sufrir
degradación del rendimiento debido a la contención.
Fig. 16 Procesamiento De Solicitud De Una Aplicación De Vm De Lectura De Disco
Las CPUs son algunos de los recursos utilizados por las máquinas virtuales y que
se abstraen del servidor principal. Una de las principales propiedades de la
virtualización se fundamenta en que no debería existir diferencia en el rendimiento
de los recursos asignados a la máquina virtual y los recursos físicos del servidor.
29
Si algún recurso en ejecución presenta fallos de funcionamiento, entonces, el
rendimiento del servidor virtual se verá afectado de manera completa.
Cada máquina virtual se puede configurar con una o más tarjetas de interfaz de
red, o NIC, que representan una conexión a una red. Estas tarjetas NIC virtuales
no se conectan con las tarjetas NIC físicas en el sistema host. El Hipervisor
soporta la creación de una red virtual que conecta las NIC virtuales a una red
compuesta de Switch virtuales lo cual se representa en la siguiente figura.
El flujo de tráfico de la red por medio del entorno virtual, se desarrolla desde la
aplicación en la máquina virtual, esta envía una solicitud de red al sistema
30
operativo que opera y promedio de este es transferida a un controlador NIC virtual.
En este punto, el Hipervisor sigue siendo el gestor entre el trafico entrante y
saliente de la máquina virtual por lo que toma la solicitud del emulador de red y la
envía la red por medio de la tarjeta física NIC que se encuentra en el servidor
principal, una vez llega la respuesta se repite el proceso en sentido contrario [17].
En la siguiente figura se puede apreciar una representación de la solicitud enviada
por este proceso descrito.
Teniendo en cuenta una LAN con servidor DHCP, con puerta de enlace por
defecto y DNS, sin restricciones MAC y firewall permita que cualquier dispositivo
de la LAN se conecte a Internet, la asignación de direcciones IP para las máquinas
virtuales se haría como se muestra a continuación en la siguiente figura18.
18
SearchVMware. (2017). Connecting VMware Workstation guest virtual machines to the Internet. Disponible
en: http://searchvmware.techtarget.com/tip/Connecting-VMware-Workstation-guest-virtual-machines-to-the-
Internet
31
Fig. 19 Asignación De Ips A Máquinas Virtuales
Fuente: SearchVMware. (2017). Connecting VMware Workstation guest virtual machines to the
Internet
32
Las máquinas virtuales en funcionamiento se guardan en el storage mediante
capturas periódicas en una SAN (Storage Area Network). Las VMs con fallas se
recargan rápidamente en el servidor directamente desde el storage, lo que acelera
los tiempos de recuperación tras un fallo del servidor o de la aplicación19.
19
SearchStorage. (2017). What is virtual storage area network (VSAN)? - Definition from WhatIs.com. Disponible en:
http://searchstorage.techtarget.com/definition/virtual-storage-area-network
33
Fig. 20 Ruta De Solicitud De Datos Desde La Aplicación De La Máquina Virtual Al Controlador De
Almacenamiento
Existen nuevas soluciones que permiten que un grupo de discos separados, como
las unidades de disco de servidor interno, se agrupe en un recurso compartido que
puede ser visto y utilizado por múltiples sistemas. Una ilustración sencilla de esto
se muestra en la siguiente figura:
Fig. 21 Grupo De Discos Separados Agrupados En Recurso Utilizado Por Múltiples Sistemas.
34
6.6 Memoria
Más que cualquier otro recurso, la memoria es la que tiene el mayor impacto qué
tan bien funcionará el entorno virtual. Al igual que con la virtualización de la CPU,
el Hipervisor abstrae la memoria utilizando la memoria del servidor físico en
nombre de las máquinas virtuales que admite.
35
Fig. 22 Asignación De Memoria A Máquina Virtual
36
en el dispositivo móvil para generar la visualización en la pantalla.
Por otro lado, en las soluciones basadas en pixeles, el servidor de visualización
remota intercepta los pixeles en la pantalla desde un Framebuffer, codifica las
actualizaciones de la pantalla con diferentes técnicas de compresión y envía las
actualizaciones de la pantalla al cliente. Los Framebuffer, son dispositivos gráficos
que representan cada uno de los pixeles de una pantalla como ubicaciones en la
memoria de acceso aleatorio RAM, donde todos y cada uno de los pixeles
desplegados en cualquier instante determinado en la pantalla, están almacenados
en una porción de la memoria principal en forma de octetos binarios20.
Debido a la variedad de técnicas de compresión, las prestaciones de las
soluciones de codificación basadas en pixeles existentes difieren entre sí. La
solución dada en [21], se divide la visualización en regiones lentas y de
movimiento alto, que están codificadas respectivamente por medio de tramas VNC
primitivas y tramas MPEG-4 AVC (H.264). Esta solución elimina totalmente el
problema del alto consumo de ancho de banda causado por la codificación VNC.
Tecnología de compresión RFB basado en JPEG es usado en TightVNC y
TurboVNC para reducir el consumo de ancho de banda en la CPU del dispositivo
móvil, donde se utiliza la tecnología JPEG para codificar la diferencia entre los
Frames vecinos en lugar del propio Frame. Si JPEG es aplicado a cada Frame,
todo el proceso puede ser visto como proceso de codificación Motion JPEG (M-
JPEG). De acuerdo con [19], M-JPEG tiene las siguientes ventajas: (i) latencia
mínima en el procesamiento de imágenes y (ii) flexibilidad en el
redimensionamiento. Incluso si unos pocos paquetes de red contienen información
de un cuadro, se han perdido durante la transmisión, M-JPEG puede aún
proporcionar un flujo continuo mientras que la tecnología de compresión JPEG
basada en RFB puede no funcionar correctamente.
Bajo las existentes soluciones de comunicación remota, este documento se
basará en un protocolo de comunicación remota hibrida para sistemas móviles21.
El protocolo RFB (Remote Framebuffer) y el protocolo Motion JPEG (M-JPEG) se
han asignado para manejar las tareas de visualización remota en las regiones de
movimiento lento y regiones de movimiento alto, respectivamente.
Previo a la definición del protocolo de visualización remota hibrida planteada es
indispensable primero conocer de manera detallada las características y
funcionamiento de los protocolos RFB (Remote Framebuffer) y el protocolo Motion
20
http://www.sunhelp.org/faq/FrameBuffer.html#00
21
Biao Song ·Wei Tang · Tien-Dung Nguyen · Mohammad Mehedi Hassan · Eui Nam Huh. “An optimized
hybrid remote display protocol using GPU-assisted M-JPEG encoding and novel high-motion detection
algorithm”. © Springer Science+Business Media New York 2013
37
JPEG (M-JPEG).
6.9 RFB (Remote Framebuffer)
El lado de visualización del protocolo está basado en una única unidad primitiva de
gráficos: “poner un rectángulo de datos de pixeles en una posición dada x, y”. Si
bien, puede parecer ineficiente, permite varias codificaciones diferentes para los
datos de pixeles, lo que da un grado de flexibilidad en cómo intercambiar varios
parámetros como el ancho de banda de la red, la velocidad de dibujo en el cliente
y la velocidad de procesamiento en el servidor. Una secuencia de estos
22
https://tools.ietf.org/html/rfc6143
38
rectángulos hace una actualización del Framebuffer. Una actualización representa
un cambio de un estado de Framebuffer válido a otro, por lo que en algunos
aspectos es similar a un cuadro de video.
El protocolo de actualización se basa en la demanda del cliente. Es decir, una
actualización solo se envía desde el servidor al cliente en respuesta a una solicitud
explicita del cliente. Esto da al protocolo una calidad adaptativa. Cuando más lento
sea el cliente y la red, menos será la tasa de actualizaciones, y los estados
transitorios del Framebuffer pueden ser ignorados, dando por resultado menos
tráfico de la red y menos dibujo para el cliente.
Después de la secuencia inicial de Handshake, el protocolo es asíncrono, con
cada lado enviando mensajes según sea necesario. Una actualización sólo se
debe enviar en respuesta a una solicitud del cliente. Cuando varias solicitudes del
cliente están pendientes, una sola actualización del servidor puede satisfacer
todas ellas.
6.12 Protocolo de Entrada
En el lado de entrada del protocolo en el dispositivo del cliente, los eventos son
simplemente enviados al servidor por el cliente cada vez que el usuario presiona
una tecla o cada vez que se mueve el dispositivo apuntador o también desde otros
dispositivos de E/S no estándar. Por ejemplo, un mecanismo de reconocimiento de
escritura a mano basado en la pluma puede generar eventos de teclado.
6.13 Representación de datos de pixeles
La interacción inicial entre el cliente RFB y el servidor implica una negociación del
formato y codificación de los datos de pixeles. El servidor siempre debe ser capaz
de suministrar datos de pixeles de forma deseada por el cliente. El formato de los
pixeles se refiere a la representación de colores individuales por valores de
pixeles. Los formatos de pixeles más comunes son 24-bit o 16-bit, donde los
campos de bits dentro del valor del pixel se traducen directamente a intensidades
de rojo, verde y azul. Los valores del pixel son índices en una tabla de 256
entradas que contiene las intensidades RGB reales.
La codificación se refiere a la forma en que un rectángulo de datos de pixeles se
enviará al cliente. Cada rectángulo de datos de pixeles está prefijado por un
encabezado que da la posición X, Y del rectángulo en la pantalla, el ancho y la
altura del rectángulo y un tipo de codificación que especifica la codificación de
datos de pixeles. Los datos mismo entonces, siguen utilizando la codificación
especificada. Los tipos de codificación definidos son: Raw, CopyRect, RRE, TRLE,
Hextile y ZRLE. En la práctica, los servidores utilizan codificaciones ZRLE, TRLE y
CopyRect, ya que proporcionan la mejor compresión.
39
6.14 Mensajes del protocolo
El protocolo RFB puede operar sobre cualquier transporte fiable, ya sea flujo de
bytes o basado en mensajes. Por lo general, opera a través de una conexión
TCP/IP.
Hay tres etapas en el protocolo. Primero es la fase de Handshake , cuyo propósito
es acordar la versión del protocolo y el tipo de seguridad que se va a usar. La
segunda etapa es la etapa de iniciación donde el cliente y el servidor intercambian
mensajes ClientInit y ServerInit. La tercera etapa es la interacción normal del
protocolo. El cliente puede enviar los mensajes que quiera, y puede recibir
mensajes del servidor como resultado. Todos estos mensajes comienzan con un
byte de tipo de mensaje, seguido de datos específicos de mensaje. Los mensajes
de protocolo utilizan los tipos básicos U8, U16, U32, S8, S16 y S32, estos
representan, respectivamente, enteros sin signo de 8, 16 y 32 bits y enteros con
signo de 8, 16 y 32 bits. El tipo pixel significa un valor de pixeles de bytes
bytePerPixel, donde bytePerPixel es el número de bits por pixel dividido por 8.
Varios formatos de mensaje incluyen bits de relleno o bytes. Para una
compatibilidad máxima, los mensajes deben generarse con el relleno establecido
en cero, pero los destinatarios del mensaje no deben asumir que le relleno tiene
un valor particular.
6.14.1.1 Mensajes Handshake
Una vez que el cliente y el servidor están de acuerdo y tal vez validar un tipo de
seguridad, el protocolo pasa a la etapa de inicialización. El cliente envía un
mensaje ClientInit. A continuación, el servidor envía un mensaje ServerInit.
6.14.1.3 Estructura del formato del pixel de datos
40
TABLA 1 Estructura Del Formato Del Pixel De Datos
+--------------+--------------+-----------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+-----------------+
| 1 | U8 | bits-per-pixel |
| 1 | U8 | depth |
| 1 | U8 | big-endian-flag |
| 1 | U8 | true-color-flag |
| 2 | U16 | red-max |
| 2 | U16 | green-max |
| 2 | U16 | blue-max |
| 1 | U8 | red-shift |
| 1 | U8 | green-shift |
| 1 | U8 | blue-shift |
| 3 | | padding |
+--------------+--------------+-----------------+
Fuente: https://tools.ietf.org/html/rfc6143
41
TABLA 2 Estructura del Mensaje de Actualización Del Framebuffer
+--------------+--------------+--------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+--------------+
| 1 | U8 [3] | message-type |
| 1 | U8 | incremental |
| 2 | U16 | x-position |
| 2 | U16 | y-position |
| 2 | U16 | width |
| 2 | U16 | height |
+--------------+--------------+--------------+
Fuente: https://tools.ietf.org/html/rfc6143
+--------------+--------------+----------------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+----------------------+
| 1 | U8 [0] | message-type |
| 1 | | padding |
| 2 | U16 | number-of-rectangles |
+--------------+--------------+----------------------+
Fuente: https://tools.ietf.org/html/rfc6143
+--------------+--------------+---------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+---------------+
| 2 | U16 | x-position |
| 2 | U16 | y-position |
| 2 | U16 | width |
| 2 | U16 | height |
| 4 | S32 | encoding-type |
+--------------+--------------+---------------+
Fuente: https://tools.ietf.org/html/rfc6143
42
6.14.5 Entradas de mapas de color
+--------------+--------------+------------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+------------------+
| 1 | U8 [1] | message-type |
| 1 | | padding |
| 2 | U16 | first-color |
| 2 | U16 | number-of-colors |
+--------------+--------------+------------------+
Fuente: https://tools.ietf.org/html/rfc6143
+--------------+--------------+-------------+
| No. of bytes | Type [Value] | Description |
+--------------+--------------+-------------+
| 2 | U16 | red |
| 2 | U16 | green |
| 2 | U16 | blue |
+--------------+--------------+-------------+
Fuente: https://tools.ietf.org/html/rfc6143
6.14.6 Codificación
RFB puede ser configurado para trabajar con diversos tipos de codificación, no
obstante, las versiones más usadas y adaptables son las que aplican el tipo de
codificación RLE (Ver Tabla 7).
43
TABLA 7 Tipos de Codificación
+--------+-----------------------------+
| Number | Name |
+--------+-----------------------------+
| 0 | Raw |
| 1 | CopyRect |
| 2 | RRE |
| 5 | Hextile |
| 15 | TRLE |
| 16 | ZRLE |
| -239 | Cursor pseudo-encoding |
| -223 | DesktopSize pseudo-encoding |
+--------+-----------------------------+
Fuente: https://tools.ietf.org/html/rfc6143
6.14.7 Seguridad
23
[Borko Furht, Joshua Greenberg, Raymond Westwater. “Motion Estimation Algorithms for Video
Compression”. Springer Science & Business Media, 6/12/2012 - 164 páginas]
44
Aunque las relaciones de compresión alcanzadas por el movimiento jpeg no son
tan altas como las de MPEG, Motion JPEG tiene muchas ventajas. Una de las
mayores desventajas de MPEG es que la fase de codificación requiere un número
muy grande de búsquedas. Estas búsquedas son muy lentas y hacen que el
proceso de codificación MPEG requiera hasta diez veces más tiempo de
procesamiento que la técnica Motion JPEG. Es imposible considerar MPEG sin
tener en cuenta estas búsquedas. Se utilizan para encontrar los vectores de
movimiento que dan a MPEG su relación de compresión característicamente alta.
Sin embargo, también son estas búsquedas que hacen que MPEG sea mucho
menos factible para la codificación en tiempo real en plataformas de hardware no
especializadas. A pesar de la complejidad adicional de las búsquedas de
compensación de movimiento, Motion JPEG es por mucho una técnica de
compresión en tiempo real más factible.
El acceso aleatorio, el avance rápido, el rebobinado rápido y muchas otras
técnicas de edición de vídeo en tiempo real o más rápido que en tiempo real
tienen requisitos especiales que son compatibles muy bien con Motion JPEG,
como se muestra en la siguiente figura. Dado que todos los Frames en Motion
JPEG son intra-Frames (codificados sólo con respecto a ellos mismos), nunca hay
una necesidad de descompresión de ningún Frame distinto al deseado. Las
funciones de avance rápido y retroceso rápido se pueden ejecutar fácilmente a
cualquier velocidad de tiempo ya que todos los Frames de la secuencia están
codificados intra-Frame. Por lo tanto, para las tareas de edición de vídeo, Motion
JPEG tiene algunas ventajas.
Fig. 23 En M-Jpeg Cada Frame Es Codificado Usando La Técnica Jpeg. Esto Proporciona Acceso
Aleatorio A Todos Los Frames.
Fuente: Borko Furht, Joshua Greenberg, Raymond Westwater. “Motion Estimation Algorithms for
Video Compression”. 2012. Pag. 22
45
MPEG requiere que los cuadros se transmiten y se muestren en un orden
diferente de aquél en el que se comprimieron. Esto se debe al uso de inter-
Frames. Estos Frames predictivos no pueden ser descodificados hasta que los
Frames sobre los que se basan han sido decodificados. Estos Frames usados
para la predicción son a menudo Frames futuros, y por lo tanto el orden de
codificación / decodificación no es el mismo que el orden de reproducción /
transmisión. Esto hace que un requisito de almacenamiento en búfer mantenga
hasta los Frames predichos que se utilizarán en la descompresión del Frame
actual. Motion JPEG no tiene tales requisitos y por lo tanto tiene una
implementación más eficiente en el espacio. De hecho, MPEG requiere
típicamente seis veces más espacio de compresión de buffer que Motion JPEG.
Además, el procesamiento de Motion JPEG es mucho más sencillo ya que el
orden de las tramas es siempre el mismo que el orden de secuencia original de las
tramas. El MPEG no sólo codifica las tramas fuera de servicio, sino que tampoco
tiene un orden estándar de los Frames. Por lo tanto, el número de inter-Frames y
intra-Frames no se conocen hasta el tiempo de ejecución. Por estas razones,
Motion JPEG es más fácil de implementar y mucho menos complejo en términos
de espacio y tiempo.
Teniendo en cuenta todas las ventajas anteriores, Motion JPEG suena como un
competidor muy fuerte contra el MPEG. Sin embargo, en defensa de MPEG, debe
decirse que las relaciones de compresión para MPEG exceden con mucho las de
Motion JPEG. Motion JPEG alcanza proporciones de aproximadamente 10: 1 a 15:
1, igual que para JPEG. MPEG, sin embargo, puede obtener buenos resultados en
relaciones de 30: 1, y también ser útil en proporciones tan altas como 100: 1.
Fuente: Biao Song ·Wei Tang. “An optimized hybrid remote display protocol using GPU-assisted M-
JPEG encoding and novel high-motion detection algorithm”. 2013
Fuente: Biao Song ·Wei Tang. “An optimized hybrid remote display protocol using GPU-assisted M-
JPEG encoding and novel high-motion detection algorithm”. 2013
48
6.17 Color Space Transformation
24
Philippe Colantoni and Al. ”Color Space Transformation” 2004
49
CB y CR: el componente Y' representa el brillo de un píxel, y los componentes CB y
CR representan la crominancia (dividida en componentes azul y rojo).
La conversión del espacio de color Y'CBCR permite una mayor compresión sin un
efecto significativo sobre la calidad de la imagen perceptual (o una mayor calidad
de imagen perceptual para la misma compresión). La compresión es más eficiente
porque la información de brillo, que es más importante para la eventual calidad
perceptual de la imagen, se limita a un solo canal. Esto corresponde a una
percepción del color más cercana al sistema visual humano. La transformación del
color también mejora la compresión mediante la correlación estadística.
Una conversión particular a Y'CBCR se especifica en el estándar JFIF, y se debe
realizar para que el archivo JPEG resultante tenga la máxima compatibilidad. Sin
embargo, algunas implementaciones JPEG en el modo de "calidad más alta" no
aplican este paso y en su lugar conservan la información de color en el modelo de
color RGB, donde la imagen se almacena en canales separados para
componentes de brillo rojo, verde y azul. Esto resulta en una compresión menos
eficiente, y probablemente no se utilizaría cuando el tamaño del archivo es
especialmente importante.
25
N. Ahmed, T Natarajan y KR Rao. “Discrete Cosine Transform”. 1974
50
Fig. 27 Subimagen 8x8 Mostrada En Escala De Grises De 8bits
Antes de calcular la DCT del bloque 8×8, sus valores se desplazan de un rango
positivo a uno centrado en cero. Para una imagen de 8 bits, cada entrada en el
bloque original se encuentra en el rango [0,255] [0,255]. El punto medio del rango
(en este caso, el valor 128) se resta de cada entrada para producir un rango de
datos que está centrado en cero, de modo que el rango modificado es [-128,127] [-
128,127]. Este paso reduce los requisitos de rango dinámico en la etapa de
procesamiento DCT. Este paso resulta en lo siguiente
51
El siguiente paso es tomar la DCT bidimensional, que viene dada por:
∑∑ [ ]
Dónde:
, si
√
o 1, de otro modo
Es el valor del pixel en la coordenada (x,y)
52
Fig. 30 Transformada Dtc En Un Bloque 8x8
53
6.19 Adaptative quantization
26
Phuc-Tue Le Dinh and Jacques Patry. Video compression artifacts and MPEG noise reduction.
Video Imaging DesignLine. February 24, 2006. Retrieved May 28, 2009.
27
Ken Cabeen and Peter Gent. “Image Compression and Discrete Cosine Tranform”. College of the
Redwoods.
54
Fig. 31 Ordenamiento Zigzag De Los Componentes De Una Imagen Jpeg
Fuente: Ken Cabeen and Peter Gent. “Image Compression and Discrete Cosine Tranform”. College
of the Redwoods
28
David Salomon. “Data Compression”. Springer Science & Business Media, 20/03/2007 - 1092 páginas
55
que sus vecinos tendrán el mismo color. Por lo tanto, el compresor explora el
mapa de bits fila por fila, buscando ejecuciones de píxeles del mismo color. Si
comienza el mapa de bits, con 17 píxeles blancos, seguido por 1 píxel negro,
seguido de 55 blancos, etc., sólo se necesitan escribir los números 17, 1,55... En
el flujo de salida.
El tamaño del flujo comprimido depende de la complejidad de la imagen. Cuanto
más detalle, peor es la compresión.
Fig. 32 Áreas Uniformes Y Líneas De Barrido
Fuente: David Salomon. “Data Compression”. Springer Science & Business Media, 20/03/2007 -
1092 páginas
La figura anterior muestra que las líneas de exploración atraviesan una región
uniforme. Una línea entra a través de un punto en el perímetro de la región y sale
por otro punto, y estos puntos no son "utilizados" por ninguna otra línea de
exploración. Ahora está claro que el número de líneas de exploración que
atraviesan una región uniforme es aproximadamente igual a la mitad de la longitud
(medida en píxeles) de su perímetro. Puesto que la región es uniforme, cada línea
de barrido aporta dos carreras al flujo de salida para cada región que cruza. Por lo
tanto, la relación de compresión de una región uniforme es aproximadamente igual
a la relación
Los códigos de Huffman son códigos óptimos que asignan un símbolo a una
palabra de código. Se supone que cada intensidad de píxel tiene asociada una
cierta probabilidad de ocurrencia, y esta probabilidad es espacialmente invariante.
La codificación de Huffman asigna un código binario a cada valor de intensidad,
56
con códigos más cortos que van a intensidades con mayor probabilidad. Si las
probabilidades se pueden estimar apriori entonces la tabla de códigos de Huffman
se puede fijar tanto en el codificador como en el decodificador. De lo contrario, la
tabla de codificación debe enviarse al decodificador junto con los datos de imagen
comprimidos29 . Los parámetros implicados en la codificación de Huffman son los
siguientes:
- Entropía
- Longitud promedio
- Eficiencia
- Diferencia
La codificación Huffman usa un método específico para elegir la representación de
cada símbolo, que da lugar a un código prefijo (es decir, la cadena de bits que
representa a un símbolo en particular nunca es prefijo de la cadena de bits de un
símbolo distinto) que representa los caracteres más comunes usando las cadenas
de bits más cortas, y viceversa.
TABLA 8 Representación Símbolos Codificación Huffman
Fuente: D.A. Huffman, "A method for the construction of minimum-redundancy codes", Proceedings of the
29
S. Jayaraman, S Esakkirajan, T Veerakumar. “Digital Image Processing”. Tata McGraw-Hill Education, 2011
- 723 páginas (S. Jayaraman, 2011)
57
I.R.E., sept 1952, pp 1098-1102
58
Fig. 33 Enfoque De La Propuesta De Detección De Movimiento
Fuente: Biao Song ·Wei Tang · “An optimized hybrid remote display protocol using GPU-assisted
M-JPEG encoding and novel high-motion detection algorithm”. 2013
( )
6.24 Implementación
60
independiente para que se logre el paralelismo. Utilizan un búfer global para
comunicarse entre sí, y trabajan de forma asíncrona. Una vez que se generan los
nuevos datos, los datos antiguos del búfer global se descartan para garantizar que
sólo el último Frame se codifique y se transmite al cliente. Este modelo soporta la
ejecución paralela en copias de memoria, GPU, CPU y E/S de red. Se combina el
módulo de captura de pantalla y el módulo de detección de movimiento en un
subproceso ya que cada uno de ellos consume sólo una pequeña cantidad de
recursos informáticos.
Como la GPU y la CPU pueden funcionar al mismo tiempo, se divide el módulo de
codificación en dos subprocesos.
Fig. 34 Modelo De La Implementación Por Subprocesos.
Fuente: Biao Song ·Wei Tang · “An optimized hybrid remote display protocol using GPU-assisted M-JPEG
encoding and novel high-motion detection algorithm”. 2013
Fuente: Biao Song ·Wei Tang · “An optimized hybrid remote display protocol using GPU-assisted M-JPEG
encoding and novel high-motion detection algorithm”. 2013
Fuente: Biao Song ·Wei Tang · “An optimized hybrid remote display protocol using GPU-assisted M-JPEG
encoding and novel high-motion detection algorithm”. 2013
63
Fig. 37 Consumo De Cpu Del Dispositivo Cliente De Diferentes Protocolos
Fuente: Biao Song ·Wei Tang · “An optimized hybrid remote display protocol using GPU-assisted M-JPEG
encoding and novel high-motion detection algorithm”. 2013
Fuente: Likhyani, S. “ARM Processors is The Power Behind Wearable Electronics”. 2017
30
P. Simoens, F. Turck, B. Dhoedt, and P. Demeester, “Remote display solutions for mobile cloud
computing,” Computer, vol. 44, no. 8, pp. 46- 53, Aug. 2011.
65
Fig. 39 Formato Del Mensaje Rfb
Fuente: Autor
Así mismo, los dispositivos de pulsera son los primer Wearable en tener
compatibilidad con la e-sim31 que es una apuesta llamativa tomando en cuenta
31
https://www.unocero.com/especiales/resumenes-anuales/resumen-2016/los-mejores-wearables-de-
66
que este es el futuro de la telefonía móvil. Esta tecnología permite adicionalmente
proveer credenciales de un operador seleccionado a la SIM y su activación o
desactivación de manera remota para facilitar la movilidad y seguridad, igualmente
permite de manera sencilla y rápida cambiar de operador.
Fuente: AUTOR
2016
67
Fig. 41 Análisis Actual Y Proyección Para El 2017 Sobre Ventas De Dispositivos Wearable
32 Virtual mobile infrastructure for mobile devices Patent (September 13, 2016) Disponible en:
68
Fig. 42 Dispositivo Wearable
Fuente: AUTOR
http://patents.justia.com/patent/9444912
69
7 CONCLUSIONES
70
principalmente en términos de conectividad entre los dos extremos. Limitaciones
de ancho de banda móvil y adicional en los recursos de memoria y procesamiento
del dispositivo Wearable llevó a analizar diferentes tecnologías de comunicación
donde se selecciona dentro del marco de estudio un protocolo de visualización
remota híbrida HRDP para el sistema de comunicación. Este protocolo es una
solución que optimiza de manera estructural la transmisión en doble vía de datos
entre un servidor y el dispositivo cliente. Utiliza el protocolo RFB para manejar las
tareas de visualización remota de movimiento lento y M-JPEG para las tareas de
visualización en movimiento alto. Utiliza unidades de procesamiento gráfico (GPU)
para realizar una parte de las funciones de compresión JPEG, y paralelamente
adapta un algoritmo de detección de movimiento transparente para reducir el
consumo de ancho de banda de la red y el consumo de recursos informáticos en
el servidor y en el dispositivo cliente.
Esta opción de comunicación representa una aproximación respecto al enfoque
actual del uso de los dispositivos móviles y Wearables desde el punto de vista de
la ejecución de aplicaciones. Generar hardware de gama alta es costoso, requiere
mucha energía y requiere mucho esfuerzo en desarrollar tecnologías inminentes.
Los teléfonos inteligentes no son un almacenamiento de datos intrínsecamente
seguro. La seguridad de los datos y la privacidad son vulnerables debido al riesgo
de mal funcionamiento, robo y pérdida del dispositivo etc. Sin embargo, desarrollar
soluciones basadas en cloud computing que se extienden al dominio móvil
cumplen con el objetivo de reducir la necesidad de hardware de gama alta,
minimiza el costo de propiedad y mantenimiento de forma amortizada y mejorar la
seguridad y privacidad de los datos.
Todas estas tecnologías han permitido adaptar y converger de manera eficiente
todo un método de visualización soluciones virtualizadas con dispositivos
Wearables.
71
8 BIBLIOGRAFIA
72
[13] “ISO/IEC 13818-2:2000 Information Technology - generic coding of moving
pictures and associated audio information - part 2: Video.”
[14] “ITU-T: h.264, Advanced video coding for generic audiovisual services,” 2005.
[15] Pieter Simoens, Paul Praet, Bert Vankeirsbilck, Jeroen De Wachter, Lien
Deboosere, Filip De Turck, Bart Dhoedt, Piet Demeester. “Design and
implementation of a hybrid remote display protocol to optimize multimedia
experience on thin client devices”. IBBT - Department of Information Technology,
Ghent University
[16] Flexiant, (2017). Disponible en: https://www.flexiant.com/2014/02/05/what-
does-a-hypervisor-do/
[17] Portnoy, M. (2012). Virtualization essentials. Retrieved from proquest.com
https://ebookcentral.
[18] SearchVMware. (2017). Connecting VMware Workstation guest virtual
machines to the Internet. Disponible en:
http://searchvmware.techtarget.com/tip/Connecting-VMware-Workstation-guest-
virtual-machines-to-the-Internet
[19] SearchStorage. (2017). What is virtual storage area network (VSAN)? -
Definition from WhatIs.com. Disponible en:
http://searchstorage.techtarget.com/definition/virtual-storage-area-network
[20] http://www.sunhelp.org/faq/FrameBuffer.html#00
[21] Biao Song ·Wei Tang · Tien-Dung Nguyen · Mohammad Mehedi Hassan · Eui
Nam Huh. “An optimized hybrid remote display protocol using GPU-assisted M-
JPEG encoding and novel high-motion detection algorithm”. © Springer
Science+Business Media New York 2013
[22] https://tools.ietf.org/html/rfc6143
[23] [Borko Furht, Joshua Greenberg, Raymond Westwater. “Motion Estimation
Algorithms for Video Compression”. Springer Science & Business Media,
6/12/2012 - 164 páginas]
[24] Philippe Colantoni and Al. ”Color Space Transformation” 2004
[25] N. Ahmed, T Natarajan y KR Rao. “Discrete Cosine Transform”. 1974
[26] Phuc-Tue Le Dinh and Jacques Patry. Video compression artifacts and MPEG
noise reduction. Video Imaging DesignLine. February 24, 2006. Retrieved May 28,
2009.
73
[27] Ken Cabeen and Peter Gent. “Image Compression and Discrete Cosine
Tranform”. College of the Redwoods.
[28] David Salomon. “Data Compression”. Springer Science & Business Media,
20/03/2007 - 1092 páginas
[29] S. Jayaraman, S Esakkirajan, T Veerakumar. “Digital Image Processing”. Tata
McGraw-Hill Education, 2011 - 723 páginas (S. Jayaraman, 2011)
[30] P. Simoens, F. Turck, B. Dhoedt, and P. Demeester, “Remote display
solutions for mobile cloud computing,” Computer, vol. 44, no. 8, pp. 46- 53, Aug.
2011.
[31] https://www.unocero.com/especiales/resumenes-anuales/resumen-2016/los-
mejores-wearables-de-2016
[32] Virtual mobile infrastructure for mobile devices Patent (September 13, 2016)
Disponible en: http://patents.justia.com/patent/9444912
74