jueves, 10 de noviembre de 2011

Conociendo a Ginga el Middleware y el Set Top Box

Hace un par de semanas le escribi a mi profesor de Arquitectura de Computadores y Hardware, RP (www.ronald-paucar.com), justificando mi falta a una clase de la Maestria en Gestion de TI que llevo en la Universidad Nacional del Santa. Y justamente en esa clase tocaron un tema que ya había venido comentando en las clases anteriores, lógicamente el curso abarca temas desde tipos de protocolos, gestión de datacenters, control y administración de servidores, etc, etc. 
Me comentaron mis compañeros que si pudieron asistir a clase que hizo una demostración de un tipo de comunicación, en este caso fue la televisión digital, y utilizó Ginga, que es el nombre del Middleware Abierto del Sistema Nipo-Brasileño de TV Digital (ISDB-TB). Cuando comencé a buscar información sobre el tema para ponerme al tanto de lo que se trato en esa clase, que por cierto fue en laboratorio, pues me interesó mucho el tema porque existian muchas herramientas para poder desarrollar aplicativos que desplieguen video y a la vez hagan interactuar a los televidentes, inclusive existe un plugin para Eclipse, con lo que se puede programar en NCL (Nested Context Language) o LUA que es otro lenguaje de programación. 


Es así que mi grupo conformado por mi compañero V.I.G. y yo debiamos de exponer en la semana siguiente la Arquitectura de un SetTopBox y ejemplos de aplicaciones en NCL. Muy bien, entonces aprovechaba las horas de almuerzo en mi trabajo, para descargar información y bajarme las máquinas virtuales con respecto a este tema. Y en resumen el sistema de televisión digital es una conversión de la señal de TV analógica a un formato digital que puede ser emitido por satélite, terrestre o cable, siendo posteriormente decodificado por el propio televisor (televisión digital) o a través de un receptor llamado Set-Top-Box. 
El set-top-box tiene un papel fundamental en la implementación de nuevas funcionalidades de la Televisión Digital Interactiva. Este nuevo componente del sistema es responsable por mantener la compatibilidad con un parque instalado de televisores, adicionando nuevas funcionalidades: desde la transmisión de video de alta calidad hasta un nivel elevado de interactividad.

La conjunción entre el Set-Top-Box y el GINGA, permiten desarrollar componentes y aplicaciones para TV digital, adicionando servicios a los usuarios, con nuevas funcionalidades, muchas de estas ya disponibles comercialmente por las redes de TV a cable o satelitales, tales como:
  • Guías de Programación Electrónica (Conocido como EPG),
  • Email y mensajes de texto
  • Juegos interactivos on-line
  • Video sobre demanda
  • Sistema de pay-per-view.
Los componentes físicos que constituyen un Set-Top Box son:
  • Placa base del sistema
  • Sintonizador
  • Modulador/ demodulador
  • Demultiplexador
  • CPU
  • Decodificador
  • Procesador gráfico
  • Memoria
  • DiscoInterfaces físicas
Así también, se pueden clasificar los Set-Top-Box en tres categorías: Broadcast TV, Enhanced TV y Advanced Services.

ARQUITECTURA DEL SET TOP BOX

En la capa superior, se tienen los servicios y contenidos que pueden ser producidos en una transmisión de TV digital. Ejemplos de estos servicios son las guías de programación electrónica (EPG), sistema pay-per-view, juegos on-line, programas interactivos, etc.
La segunda capa, se tienen las aplicaciones. Estas aplicaciones son responsables por promover el tipo de servicio de la camada superior.
En la tercera capa, el Middleware, que básicamente tiene como función realizar una interface entre el hardware del set-top-box y las aplicaciones. De esta forma, las aplicaciones pueden ejecutarse de forma transparente sin la preocupación con la forma de acceso al hardware de un set-top-box específico. De esta forma el desarrollo y portabilidad de las aplicaciones se vuelve más simple, debido a que todas las aplicaciones usan una misma API en común. 
En la cuarta capa, se tienen los componentes multimedia de decodificación y codificación, así como los otros módulos multimedia.
En la quinta capa, el sistema operacional, es responsable por el funcionamiento del hardware, la cual provee una capa de abstracción al hardware del set-top-box.
En la última capa, tenemos el hardware de un set-top-box, que es constituido por una CPU, dispositivos de entrada y salida, almacenamiento, decodificación, sintonización, etc.


EMULANDO APLICACIONES DE UN SET TOP BOX

Luego de buscar en interner distinta información sobre como emular un Set Top Box, pues me di con la sorpresa que dicho link ya no existía (fedora-fc7-ginga-i386.zip) y en su reemplazo estaba el siguiente link, basado en un Ubuntu Server, http://www.gingancl.org.br/sites/gingancl.org.br/files/ferramentas/ubuntu-server10.10-ginga-v.0.12.3-i386.zip, pero al descargarlo no pude levantarlo en mi VMWare porque estaba corrupto, es así que decidí buscar la dichosa maquina virtual de fedora, busqué y busqué hasta que la encontre, en el siguiente link  http://ufpr.dl.sourceforge.net/project/dtvargentina/Lifia/fedora-fc7-ginga-i386-lifia-20100218-dev.tar.gz,que es una distribución basada en la original pero modificada por estudiantes de una universidad Argentina.
Finalmente despues de probar finalmente pude levantar la VM y ejecutar algunas aplicativos en el STB Virtual.
El set top Box virtual consiste en Fedora (Linux) modificado, el cual viene con Ginga instalado. Para poder correrla en cualquier plataforma se debe virtualizar. Para esto se utilizó el virtualizador VMWare Workstation. A continuación se adjuntan los enlaces para descarga para Windows o Linux:
Luego de descargarla la instalamos y descomprimimos la VM descargada, y le damos doble clic sobre  Fedora-fc7-ginga-i386.vmx

Y veremos como carga la distribución Fedora modificada para emular el STB.
Luego configuramos (Virtual Machine Settings..) las propiedades de la VM, y seleccionamos Host-Only, para no tener problemas con el ingreso por SSH a la maquina virtual.


Ahora ingresamos remotamente a la MV, por ssh, en este caso utilizaré nxssh.
Podemos descargar algunos ejemplos de la Web, en este caso descargaré una especie de juego llamado el Sultan. http://elclub.ncl.org.br/sites/default/files/sultan.zip
Y luego lo paso a la MV a través de WinSCP.

Luego vamos a la consola en la que estamos conectados a la MV y ubicamos el archivo NCL transferido y lo ejecutamos mediante ginga.


Y podemos ver como en nuestra VM, se lanza el juego "Las Riquezas del Sultan".

En conclusión, los Set-Top-Box permiten la decodificación de señales obtenidas a partir de televisión digital terrestre, cable o satelital, para reproducirlo en una televisión analógica.
Los Set-Top-Box se encuentran asociados a un software denomina de Middleware, que permite ejecutar aplicaciones interactivas en el set-top-box. Para el caso particular del estándar brasileiro ISDB-Tb es el Middleware Ginga y para el estándar Japonés ISDB-T es el Middleware BML.
Para los diferentes estándares de televisión digital en el mundo (ISDB-T, DBV, ATSC, etc), las arquitecturas de hardware de los set-top-boxes se diferencian principalmente por el tipo de demodulador y el decodificador MPEG-2/MPEG-4.

Bueno me despido, finalmente podré exponer este tema el día sábado en mi curso de la maestría.

Servidos.

sábado, 5 de noviembre de 2011

Sistemas Implementados

Estimados lectores, en las siguientes entradas de mi blog, publicaré un pequeño resumen de los sistemas desarrollados por mi persona, describiendo la tecnología utilizada así como las herramientas empleadas. Espero que sea un pequeño aporte para las personas que necesiten determinar las herramientas para una implementación específica. Así mismo hablaré de las personas que hicieron posible que esto se lleve a cabo, me refiero al equipo de desarrollo que en algún momento trabajo conmigo en algunos proyectos y también a las personas que aportaron el conocimiento de los procesos y la teoría necesaria para el desarrollo de los mismos.

En resumen, los sistemas implementados están en orden cronológico de la siguiente manera:
  • Sistema de Trámite Documentario (Universidad Privada San Pedro - Chimbote)
  • Sistema de Procesamiento de Asientos Contables (Universidad Privada San Pedro - Chimbote)
  • Sistema de Registro y emisión de Cheques (Universidad Privada San Pedro - Chimbote)
  • Sistema de Voucher Diario (Universidad Privada San Pedro - Chimbote)
  • Sistema de Contabilidad (Universidad Privada San Pedro - Chimbote)
  • Sistema de Contabilidad de Costos (Universidad Privada San Pedro - Chimbote)
  • Sistema de Ventas y Control de pagos (Inversiones Ramirez - Nvo. Chimbote)
  • Sistema de Caja y Bancos (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Diario Contable (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Contabilidad General (Agroindustrias San Jacinto - Nepeña)
  • Sistema de Control de Socios y Cobranza (Asociación Círculo Militar del Perú)
  • Sistema de Registro de Ventas y Consolidación de Información (Asociación Círculo Militar del Perú)
  • Sistema de Control de Notificaciones y Expedientes Aduaneros (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Seguimiento de Ordenes de Servicio (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Sincronización de Información de Aduanas (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Indicadores de Desempeño de Operaciones (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Alertas para cumplimiento de Indicadores (Isco Grupo Logístico - Lima/Callao)
  • Sistema de Facturación y contabilización (Andina de Desarrollo Andesa SAC)
  • Sistema de Administración de Muelle - Control de Almacenes (Andina de Desarrollo Andesa SAC)
En las siguientes entradas iré describiendo cada implementación.

jueves, 3 de noviembre de 2011

Instalar FreeNX, NX, NoMachine en Centos 6

Hola a todos, este tutorial me lo envió un compañero del trabajo, probado y funcionando. Lo dejo para los interesados:

1. En primera instancia debemos de saber que este programa ya no se encuentra para la versión 6 en los repositorios de extras como antes lo estaba para las versiones de CentOS anteriores.

2. Segundo debemos bajarnos los paquetes dependiendo de la versión o arquitectura que estemos utilizando, ya sea la versión x86 o la de 64.
Esto lo hacemos desde el siguiente enlace. http://centos.toracat.org/misc/nx-freenx/6/ de los repositorios de toracat.

3. A continuación ponemos los dos paquetes que bajemos en una carpeta y nos disponemos a abrir una terminal Alt + F2 y en la casilla que aparece escribe gnome-terminal con esto se abre una terminal.

4. A continuación nos logueamos como usuario root con el comando su, y presionando Enter, con lo que proporcionamos las credenciales del superusuario.

5. Ahora nos dirigimos hasta la carpeta en donde tenemos nuestros paquetes descargados y ejecutamos el siguiente comando, siempre evidentemente con permisos de superusuario o root.
yum localinstall * (con este comando lo que hacemos es indicarle que instale todo lo que se encuentra en esa carpeta, recuerda que primero nos dirigimos hasta la carpeta donde se encuentran los rpm's de freenx y nx respectivamente).
Vemos que al terminar de instalar las dependencia no nos instala los paquetes ya que no están firmados, así que procedemos de la siguiente manera.

6. Ahora nos disponemos a instalar otras dependencias, ejecutando los siguientes comandos:
yum install xorg-x11-apps
yum install expect

Ambos se encuentran en el repositorio normal de CentOS, así que no hay complicaciones.

7. Y ahora si nos disponemos a instalar los paquetes que descargamos con el siguiente comando.
rpm -ivh * (esto siempre asumiendo que nos encontramos dentro de la carpeta donde estén los paquetes descargados anteriormente).

Luego de configurado el servidor, podremos iniciar desde los clientes.