1 APLICACION Y DESARROLLO DE PROTOCOLO DE

Anuncio
APLICACION Y DESARROLLO DE PROTOCOLO DE COMUNICACIÓN MEDIANTE
SISTEMA EMBEBIDO (POS)
Johan Mauricio Prieto Vargas
UNIVERSIDAD DISTRITAL
“Francisco José De Caldas”
Facultad Tecnológica
Bogotá D.C.
Agosto del 2015
1
APLICACION Y DESARROLLO DE PROTOCOLO DE COMUNICACIÓN MEDIANTE
SISTEMA EMBEBIDO (POS)
Código del Proyecto 201501273065
Johan Mauricio Prieto Vargas Código: 20131273014
Monografía para optar por el título de:
Ingeniero En Telecomunicaciones
Director:
Edward Jacinto Gómez
UNIVERSIDAD DISTRITAL
“Francisco José De Caldas”
Facultad Tecnológica
Bogotá D.C.
Agosto del 2015
2
APLICACION Y DESARROLLO DE PROCOLO DE COMUNICACIÓN MEDIANTE
SISTEMA EMBEBIDO (POS)
PAGINA DE APROBACIÓN
Observaciones
_____________________________________________________________
_____________________________________________________________
______________________________________________________________
______________________________________
Ingeniero Edward Jacinto Gómez
Director del Proyecto
_____________________________________
Ingeniero Jorge Eduardo Porras Bohada
Jurado 1
_____________________________________
Jurado 2
Fecha de Presentación Agosto del 2015.
3
AGRADECIMIENTOS
Expreso mis agradecimientos a:
Cada una de las personas que han hecho posible que el día de hoy me encuentre preparando mi
proyecto de grado, que han hecho posible que uno de mis sueños de niño esté a punto de convertirse
en realidad. A mis compañeros, por depositarme confianza en momentos decisivos y anteponernos a
un sin número de dificultades que se presentaron en el camino hasta el día de hoy. Gracias a la ayuda
de ellos ha sido posible llegar hasta este punto. Comparto y brindo un especial agradecimiento a mi
abuela paterna ya fallecida, la cual ha hecho de mí la persona que soy, gracias a ella por permitirme
distinguir los caminos que se pueden tomar en la vida. A mis padres por su entrega para que yo
pudiera salir adelante en cada uno de mis proyectos, por dejar de pensar en ellos y tenerme como
referencia de su vida. Gracias a los docentes, aquellos que marcaron cada etapa de mi camino
universitario, y que me ayudaron en asesorías y dudas presentadas en la elaboración de cada una de
las actividades académicas que comprenden esta carrera, que por mí es considerada a partir de este
momento como un estilo de vida.
4
TABLA DE CONTENIDO
AGRADECIMIENTOS.................................................................................................................................... 4
GLOSARIO ................................................................................................................................................... 11
RESUMEN..................................................................................................................................................... 13
ABSTRACT ................................................................................................................................................... 14
INTRODUCCIÓN ......................................................................................................................................... 15
1 .PREELIMINAR ......................................................................................................................................... 16
1.1
Descripción del problema.................................................................................................... 16
1.2 Justificación ............................................................................................................................ 16
1.2.1 Impacto Social ............................................................................................................................. 16
1.2.2 Impacto Económico ..................................................................................................................... 17
1.3 Metodología Usada ................................................................................................................ 17
2. OBJETIVOS .............................................................................................................................................. 18
2.1 Objetivo General ...................................................................................................................... 18
2.2 Objetivos Específicos ............................................................................................................... 18
3. MARCO TEÓRICO Y ESTADO DEL ARTE ........................................................................................... 19
3.1
Sistemas Embebidos ............................................................................................................ 19
3.1.1 Sistema embebido a utilizar ......................................................................................................... 20
3.1.1.1 TPV (Terminal Punto de Venta) ................................................................................. 21
3.2 Estándares de comunicación, sistemas embebidos................................................................. 22
3.2.1 Comunicación GPRS (Global Packet Service) .............................................................................. 22
3.2.2 WCDMA(Acceso múltiple por división de código de banda ancha) ............................................. 25
3.3 TCP/IP .................................................................................................................................... 26
3.3.1 Puertos TCP/IP ............................................................................................................................ 28
3.3.2 Sockets .......................................................................................................................................... 30
3.4 PPP ( Point to Point Protocol ) ............................................................................................... 31
3.5 FTP (File Transfer Protocol) .................................................................................................. 33
3.6 HTTP ...................................................................................................................................... 34
3.7 Protocolo ISO8583 ................................................................................................................. 35
3.8
Compresión y descompresión de datos ............................................................................... 38
5
3.8.1
¿Para que se comprimen datos? .............................................................................................. 38
3.8.2
¿Que es la compresión de datos? ............................................................................................ 38
3.8.3
Tipos de compresión ............................................................................................................... 38
3.8.4
Métodos de compresión .......................................................................................................... 39
3.8.5 Compresión con perdida de datos ................................................................................................ 39
3.8.6 Compresión sin perdida de datos ................................................................................................. 40
3.8.7 Formato 7z .................................................................................................................................. 40
3.8.8 Algoritmo LZMA .......................................................................................................................... 41
3.9 Apuestas en República Dominicana ......................................................................................... 41
3.10 Descripción y definición de la red a utilizar. .......................................................................... 44
3.10.1 Definición del método de transmisión de datos cliente-servidor. ................................................. 44
3.11 Estado del arte......................................................................................................................... 45
3.11.1 Proyecto 1:................................................................................................................................... 46
3.11.2 Proyecto 2:................................................................................................................................... 46
3.11.3 Proyecto 3:................................................................................................................................... 47
3.11.4 Proyecto 4:................................................................................................................................... 47
3.11.5 Proyecto 5:................................................................................................................................... 48
3.11.6 Proyecto 6:................................................................................................................................... 48
4. DISEÑO DE PROTOCOLO DE COMUNICACIÓN Y DESARROLLO DE LÓGICA SOBRE
SISTEMA EMBEBIDO ................................................................................................................................. 48
4.1 TCP – IP ................................................................................................................................... 49
4.2
GPRS ................................................................................................................................... 50
4.3 Diagrama de flujo del desarrollo completo (Con protocolo de comunicación implícito) ........ 53
4.4 Diagrama de clases básicas del desarrollo................................................................................ 55
........................................................................................................................................................ 55
4.5 Diagrama de casos de uso ...................................................................................................... 55
4.6 Transacciones implementadas ................................................................................................ 57
4.6.1 Login-Inicialización....................................................................................................................... 57
4.6.2 Transacción de venta ..................................................................................................................... 63
4.6.3 Transacción de reversión ............................................................................................................... 67
4.6.4 Transacción de anulación .............................................................................................................. 68
4.6.5 Transacción de Batch Upload ........................................................................................................ 70
6
4.6.6 Transacción de lista de números .................................................................................................... 70
4.6.7 Transacción de consulta de ventas ............................................................................................... 73
4.6.8 Transacción de pagos ..................................................................................................................... 76
4.6.9 Transacción de consulta de tiquetes ............................................................................................... 77
4.6.10 Transacción de cierre de ventas ................................................................................................... 78
4.6.11 Transacción de Reporte Parcial ................................................................................................... 79
4.6.12 Transacción de consulta de tiquetes ganadores ................................................................ 81
4.6.13 Transacción de consulta de cierre por fecha ................................................................................ 83
4.6.14 Transacción de sincronización ..................................................................................................... 84
4.6.15 Transacción de Informe al final del sorteo .......................................................................... 87
4.6.16 Recargas .................................................................................................................................... 89
4.7 Mensajería ISO 8583 ................................................................................................................ 92
5. RESULTADOS .......................................................................................................................................... 94
5.1 Posibles Fallas o Causas de error ............................................................................................. 94
5.1.1 Perdida de los datos descargados ................................................................................................... 94
5.1.1.1 Pérdida de Alimentación ............................................................................................ 94
5.1.1.2 Reinicio Inesperado.................................................................................................... 94
5.1.1.3 Falla de Comunicación............................................................................................... 95
5.1.2 Recepción errónea de la información. ............................................................................................ 95
5.1.3 Envío inadecuado de la información por parte del servidor ........................................................... 96
5.1.4 Exceder la cantidad de datos que se pueden enviar a la impresora térmica .................................... 97
5.1.5 Interrupción de procesos por duración de la batería ....................................................................... 97
5.1.6 Exceder los campos de respuesta en las consultas y los reportes ................................................... 97
5.1.7 Validación de ventas offline como total de ventas en el cierre ...................................................... 97
5.1.8 Validación en la generación de reversos y la sincronización ......................................................... 98
5.1.9 Error en la generación del código de venta del tiquete offline ....................................................... 98
5.2 Descripción del Sistema de descarga remota ........................................................................... 99
5.2.1 Almacenamiento ............................................................................................................................ 99
5.2.2 Descompresión .............................................................................................................................. 99
5.3 Variables del Sistema .............................................................................................................. 102
CONCLUSIONES ....................................................................................................................................... 103
BIBLIOGRAFÍA .......................................................................................................................................... 104
7
LISTA DE TABLAS
Tabla 1: ALGUNOS PUERTOS CONOCIDOS ............................................................................................................. 30
Tabla 2: CAMPOS ISO 8583 ........................................................................................................................................36
Tabla 3: METODOS DE COMPRESIÓN INTEGRADOS A 7Z...................................................................................... 41
Tabla 4: CABECERA DE VENTAS ............................................................................................................................... 60
Tabla 5: TABLA DE JUEGOS .......................................................................................................................................60
Tabla 6: TABLA DE PIE DE TIQUETES ...................................................................................................................... 61
Tabla 7: TABLA DE PRODUCTOS ............................................................................................................................... 62
Tabla 8: CABECERA DE LA VENTA ............................................................................................................................ 64
Tabla 9: DETALLE DE LA VENTA ............................................................................................................................... 65
Tabla 10: RESPUESTA DE VENTA .............................................................................................................................. 66
Tabla 11: ENVÍO DE ANULACIÓN .............................................................................................................................. 69
Tabla 12: RESPUESTA DE ANULACIÓN..................................................................................................................... 69
Tabla 13: ENVÍO DE BATCH.......................................................................................................................................71
Tabla 14: CABECERA LISTA NÚMEROS..................................................................................................................... 71
Tabla 15: DETALLE DE RESPUESTA LISTA NÚMEROS............................................................................................. 72
Tabla 16: ENVÍO DE CONSULTA ................................................................................................................................ 74
Tabla 17: RESPUESTA DE CONSULTA ....................................................................................................................... 75
Tabla 18: ENVÍO DE PAGOS .......................................................................................................................................76
Tabla 19: RESPUESTA DE PAGOS .............................................................................................................................. 76
Tabla 20: ENVÍO CONSULTA TIQUETES ................................................................................................................... 77
Tabla 21: ENVÍO DE CIERRE .....................................................................................................................................78
Tabla 22:RESPUESTA DEL CIERRE............................................................................................................................ 78
Tabla 23: REPORTE PARCIAL ENVÍO ........................................................................................................................ 80
Tabla 24: RESPUESTA REPORTE PARCIAL ............................................................................................................... 80
Tabla 25: CONSULTA DE TIQUETES GANADORES ..................................................................................................81
Tabla 26: RESPUESTA TIQUETES GANADORES .......................................................................................................81
Tabla 27: DETALLE DE RESPUESTA TIQUETES GANADORES ................................................................................ 82
Tabla 28: ENVÍO DE CIERRE POR FECHA ................................................................................................................ 83
Tabla 29: RESPUESTA DE CIERRE POR FECHA .......................................................................................................83
Tabla 30: ENVÍO DE SINCRONIZACIÓN .................................................................................................................... 85
Tabla 31: DETALLE DEL ENVÍO EN SINCRONIZACIÓN ........................................................................................... 85
Tabla 32: RESPUESTA DE SINCRONIZACIÓN ...........................................................................................................86
Tabla 33: ENVÍO CONSULTA SINCRONIZACIÓN ......................................................................................................87
Tabla 34: RESPUESTA CONSULTA SINCRONIZACION ............................................................................................. 87
Tabla 35: INFORME AL FINAL DEL SORTEO TX ......................................................................................................88
Tabla 36: RESPUESTA DEL INFORME AL FINAL DEL SORTEO............................................................................... 88
Tabla 37: ENVÍO DE RECARGAS ................................................................................................................................ 90
Tabla 38: DETALLE DEL ENVÍO DE RECARGAS.......................................................................................................90
8
Tabla 39: RESPUESTA PARA RECARGAS ................................................................................................................... 91
Tabla 40: Tags CAMPO PRIVADO ............................................................................................................................... 94
Tabla 41: DATOS PRÁCTICOS DESCARGA GPRS ................................................................................................... 101
Tabla 42:IMPLEMENTACIÓN CONSULTA SINCRONIZACIÓN................................................................................ 101
Tabla 43: DISMINUCIÓN DEL PROCESO DE REVERSO ........................................................................................ 101
Tabla 44:VARIABLES DEL SISTEMA......................................................................................................................... 102
LISTA DE ILUSTRACIONES
Ilustración 1: TERMINAL PAX S90 .............................................................................................................................. 19
Ilustración 2: ARQUITECTURA GPRS ........................................................................................................................ 23
Ilustración 3: GPRS PROTOCOLO DE SEGUNDA GENERACIÓN ............................................................................25
Ilustración 4. WCDMA VS CDMA ................................................................................................................................ 26
Ilustración 5: OSI VS TCP/IP .......................................................................................................................................26
Ilustración 6: CABECERA TCP....................................................................................................................................28
Ilustración 7: POINT TO POINT PROTOCOL ............................................................................................................. 32
Ilustración 8: SISTEMA PUNTO A PUNTO ................................................................................................................. 33
Ilustración 9: FTP ........................................................................................................................................................ 34
Ilustración 10: COMPRESIÓN Y DESCOMPRESIÓN DE ARCHIVOS ........................................................................38
Ilustración 11: COMPRESÍON SIMÉTRICA................................................................................................................. 39
Ilustración 12:ESQUEMA TCP ....................................................................................................................................50
Ilustración 13:CONFIGURACÍON BANDAS................................................................................................................ 51
Ilustración 14: CONFIGURACIÓN APN. ..................................................................................................................... 51
Ilustración 15: INGRESAR APN ...................................................................................................................................52
Ilustración 16: INGRESAR USUARIO SIN APN ...........................................................................................................52
Ilustración 17: INGRESAR CONTRASEÑA .................................................................................................................. 52
Ilustración 18: DIAGRAMA DE FLUJO CONEXIÓN GPRS ........................................................................................ 53
Ilustración 19: DIAGRAMA DE FLUJO PRINCIPAL ...................................................................................................54
Ilustración 20: DIAGRAMA DE CLASES ..................................................................................................................... 55
Ilustración 21: CASOS DE USO ...................................................................................................................................56
Ilustración 22: LOGIN ................................................................................................................................................. 57
Ilustración 23: MENU PRINCIPAL .............................................................................................................................. 63
Ilustración 24: MODO OFFLINE.................................................................................................................................64
Ilustración 25: GRILLA ................................................................................................................................................ 65
Ilustración 26: VENTA APUESTA.................................................................................................................................67
Ilustración 27: TIQUETE DE VENTA........................................................................................................................... 67
Ilustración 28: REVERSO EXITOSO ............................................................................................................................ 68
Ilustración 29: CAMPO DE ANULACIÓN ................................................................................................................... 69
Ilustración 30: MENU CONSULTAS ............................................................................................................................ 71
Ilustración 31: PARAMETROS DE CONSULTAS .........................................................................................................72
Ilustración 32:TIQUETE DE LISTA DE NÚMEROS ....................................................................................................73
Ilustración 33: PARAMETROS DE REPORTE ............................................................................................................. 75
Ilustración 34: TIQUETE CONSULTA GENERAL .......................................................................................................75
9
Ilustración 35: CONSULTA DE TIQUETES ................................................................................................................. 77
Ilustración 36: PANTALLA DE CIERRE ....................................................................................................................... 79
Ilustración 37: SELECCIONAR LOTERIA EN REPORTE PARCIAL ............................................................................79
Ilustración 38: TIQUETE DE REPORTE PARCIAL .....................................................................................................80
Ilustración 39: REPORTE DE TIQUETES GANADORES ............................................................................................ 82
Ilustración 40: REPORTE DE CIERRE POR FECHA ..................................................................................................84
Ilustración 41: PANTALLA DE SINCRONIZACIÓN .....................................................................................................86
Ilustración 42: TIQUETE DEL INFORME AL FINAL DEL SORTEO ...........................................................................89
Ilustración 43: PARAMETRO DE RECARGAS ............................................................................................................. 89
Ilustración 44: CONFIRMACIÓN DE RECARGA ........................................................................................................91
Ilustración 45: TIQUETE DE RECARGA ..................................................................................................................... 92
Ilustración 46: MENSAJERIA DE ESCARGA REMOTA tx ........................................................................................... 92
Ilustración 47: MENSAJERIA DE DESCARGA REMOTA RX ....................................................................................... 93
Ilustración 48: CALCULO DEL CRC ........................................................................................................................... 96
Ilustración 49: CONFIGURACIÓN DESCARGA REMOTA ........................................................................................ 100
Ilustración 50: CONFIGURACIÓN IP ....................................................................................................................... 100
Ilustración 51: CONFIGURACIÓN PUERTO ............................................................................................................ 100
Ilustración 52: TIPO DE OPERADOR ....................................................................................................................... 100
Ilustración 53: INGRESO MANUAL DE OPERADOR ............................................................................................... 101
10
GLOSARIO
GPRS
Servicio general de paquetes vía radioenlace.
TCP
Protocolo de contro de transmision.
PPP
Protocolo punto a punto.
SSL
Capa de conexión segura.
FTP
Protocolo de transferencia de archivos.
SFTP
SSH File Transfer Protocol o Secure File Transfer Protocol.
HTTP
Protocolo de transferencia de hipertexto.
HTTPS
Protocolo de transferencia de hipertexto seguro.
ISO8583
Standard Para Transacciones Financieras.
GSM
Sistema global para las comunicaciones mobiles.
IEEE
Institute of Electrical and Electronics Engineers.
TPV
Terminal Punto de Venta o Datafono.
Bidireccioal
Envía y recibe.
SIM
Modulo de identificación de subscriptor.
IP
Etiqueta numérica que identifica una interfaz dentro de una red que utilice
protocolo IP.
POS
Point of sale (Punto de venta).
APN
Acces point name.
URL
Localizador de recursos uniforme.
TPDU
Transport Protocol Data Unit.
MTI
Indicador de tipo de mensaje.
C.S.I
Costumer service information.
POS
Point of sale.
WCDMA
Acceso múltiple por división de código de banda ancha.
TFTP
Protocolo de transferencia de archivos trivial.
DNS
Sistema de Nombres de Dominio.
SNMP
El Protocolo Simple de Administración de Red.
Octeto
Equivale a 8 bits, exactamente a 1 Byte.
API
Interfaz de programación de aplicaciones
11
Socket
API para TCP/IP
Unix
Sistema operativo portable, multitarea y multiusuario
Linux
Sistema operativo de software libre y código abierto.
Login
Ingreso a una plataforma o sistema con credenciales.
Tag
Etiqueta de lenguaje marcado.
AES
Estándar de encripción avanzado
Hash
Tipo de funciones con una salida alfanumérica de longitud normalmente fija que
representa un resumen de toda la información.
SHA
Algoritmo de hash seguro.
LZMA
Algoritmo de compresión de Lempel-Ziv-Markov.
NFS
Sistema de archivos de red.
LCP
Protocolo de control de enlace.
Pale
Juego de 4 dígitos en República Dominicana.
Quiniela
Juego de azar de 2 dígitos.
Berkeley
Distribución de software Berkeley de la universidad de california (BSD).
12
RESUMEN
La sistematización de procesos de compra y venta de gran variedad de tipos de servicios hace parte de
la evolución que tenemos día a día gracias al conocimiento de nuevas tecnologías que se presentan en
nuestro diario vivir. Siempre hay una forma más eficiente y diferente de realizar variedad de procesos,
en este caso se desea eliminar por completo los registros manuales en el tema de las apuestas, al igual
que olvidarse de la inseguridad que puede existir en cada una de las transacciones que se realizan a
diario en un sistema de apuestas (autenticidad del tiquete de venta).
La idea es utilizar un sistema embebido que funciona a manera de POS para que sea posible realizar
ventas en cualquier tipo de localidad contando con conexión inalámbrica mediante los operadores de
celular disponibles en República Dominicana. Este POS contara con periféricos de entrada y de salida
(teclado, impresora, pantalla, modem), lo que permitirá un flujo de entrada y salida de datos muy
dinámicos, para procesar y registrar directamente esta información en el servidor principal de la
compañía, lo cual automatizará los procesos de venta y consulta de la empresa y realizará las ventas
en tiempo real.
Actualmente entidades como los bancos utilizan TPV (Terminal punto de venta) como el método de
pago más utilizado por sus clientes, esto se debe al alto nivel de seguridad incorporado, la sencillez de
uso, la diversidad de medios de comunicación, la variedad de distribuidores y la capacidad de
portabilidad del dispositivo. Lo anterior indica que no solo se desarrollarán las ventas en un ámbito
más seguro y eficiente, sino que probablemente la cantidad de personas que poseen el hábito de
apostar pueda aumentar debido a la posibilidad que existirá de realizar otro tipo de transacciones por
este medio (POS).
13
ABSTRACT
The systematization of processes of Purchase and Sale of many different types of services are part of
the evolution that we have every day thanks to the knowledge of new technologies that arise in our
daily lives. There is always a more efficient and different form for to do many processes, in this case
we want to completely eliminate manual records on the subject of gambles, like forget the insecurity
that may exist in each of the transactions that daily made in a gambles system (Authenticity of the
voucher sales).
The idea is to use the system embedded that operates like a POS for making sales in any Location
including wireless connection using the Cellular Operators Available in the Dominican Republic.
This POS will have peripherals of input and output (keyboard, printer, screen, modem), allowing a
flow in and out of very Dynamic Data Processing and for to process and register directly that
information in the primary server for the company, which will automate the sales process and
consultations of the enterprise and will perform real-time sales.
Currently entities such as banks use POS (Point of Sale) as the method of payment used more for their
customers, this is due to the high level of security incorporated, simplicity of use, Media Diversity,
the Variety of distributors and the capacity of portability device. This indicates that not only sales will
develop in an environment safer and more efficient, otherwise that probably the number of persons
that have the habit of bet can increase because of the possibility to make another types of transactions
through of this device (POS).
14
INTRODUCCIÓN
El proyecto cuenta con el propósito de diseñar, construir e implementar un aplicativo que este en
capacidad de comunicarse con un sistema de venta, consulta y sincronización de Terminales Punto de
Venta (TPV) para una entidad de apuestas ubicada en República Dominicana, con el fin de
sistematizar el mercado de los juegos de azar en dicho país, además de facilitar el mercado de los
operadores de celular al implementar igualmente un sistema (TPV) para realizar recargas. Se pretende
mejorar los resultados de sistemas que brindan servicios similares en la actualidad.
El número de dispositivos adquiridos por esta entidad con el paso del tiempo puede ser considerable,
se habla de dos mil (2.000) a tres mil (3.000) unidades en promedio. Cada una de estas unidades debe
ser actualizada con cada cambio que solicite el cliente. Esto implica un proceso en el que un
representante de la empresa responsable de las terminales debe acercarse a cada punto geográfico en
donde esté ubicado el dispositivo a actualizar.
Debido a la gran cantidad de terminales en producción también se implementó un módulo de software
con la capacidad de actualizar la aplicación principal de manera remota vía GPRS. De este modo se
agiliza este proceso disminuyendo costos y tiempos.
15
1 .PREELIMINAR
1.1 Descripción del problema
Debido a las apuestas ilegales en República Dominicana, no solo se pierden recursos del estado sino
que se pierden dividendos en la empresa promotora de juegos de azar. Al canalizar la cantidad de
apuestas ilegales que se producen en este territorio, se puede no solo generar mucho más capital para
la empresa promotora, sino que se tiene la posibilidad de generar muchos más recursos públicos de
manera indirecta. Por otra parte los clientes tienen la posibilidad de confiar plenamente en este tipo de
juegos, ya que al estar totalmente legalizados, los premios estarán garantizados y podrán apostar de
manera segura.
Es importante conocer que el despliegue que se hace al apostar con papel escrito es mucho más denso
que el proceso que indica una transacción electrónica, es claro que la idea de la automatización no
solo incluye seguridad en el proceso de venta, sino que garantiza la transparencia en la generación de
la apuesta misma, debido a los datos de venta que proporciona el desprendible generado por el POS
en la apuesta.
1.2 Justificación
La exigencia del mercado en cuanto a la automatización de procesos es cada vez más alta debido a la
posibilidad de encontrar cada vez menos errores humanos, lo primordial es construir una propuesta de
bajos costos pero que a la vez tenga una versatilidad bastante significativa.
Gracias al diseño de la mensajería, el proyecto ha generado un impacto exitoso en el mercado de las
apuestas, debido a la dinámica que se implemento en los protocolos de comunicación entre servidor y
cliente, esta posibilidad permite que sea posible jugar cualquier tipo de lotería controlando
plenamente los horarios de cierre y sorteo de las mismas, además del diseño de transacciones de
consulta, las cuales permiten al usuario estar informado en tiempo real del inventario que tiene el
servidor y contrastarlo con el dinero que ha recibido en el transcurso de la jornada.
Es posible realizar procesos de actualización remota de software, por medio de un módulo que se
implemento, lo cual ha generado grandes beneficios tanto para la entidad que controla las apuestas
como para el usuario final, esto se debe a que cualquier tipo de nuevo requerimiento o ajuste a realizar
en el funcionamiento del dispositivo se entregará rápidamente y su puesta en marcha es más
dinámica.
1.2.1 Impacto Social
El desarrollo de tecnologías sobre sistemas embebidos permite ampliar los conocimientos en este
campo y crear nuevas técnicas para afrontar problemas de tipo tecnológico, mejorando
16
académicamente los niveles de aprendizaje, posicionando a la Universidad Distrital Francisco José de
Caldas cómo ente investigadora en la aplicación de nuevas tecnologías; de esta manera la apropiación
del conocimiento de los estudiantes va mucho más allá de los limites que imponen tecnologías
convencionales.
El proyecto lejos de excluir a varios grupos sociales, incluye muchas más personas, debido a la
generación de empleo, ya que existirán muchos más puntos de venta, consecuencia de la portabilidad
que posee el sistema embebido.
1.2.2 Impacto Económico
Tener un control seguro del dinero que produce el negocio de las apuestas es indispensable, sobre
todo en un país en auge como República Dominicana ya que en sus inicios la falta de disponibilidad
de los medios de tecnología de información, control y comunicación avanzada, creaba una serie de
pérdidas financieras, que poco a poco se ha ido corrigiendo.
Al hacer referencia acerca de una relación costo beneficio nos adentramos en un tema bastante
interesante a nivel económico, ya que sin perdidas ni dineros fraudulentos, las bancas nos dicen que
los beneficios son 1.34 veces más que los costos. Este es un valor privilegiado tomando como base la
inversión que se debe realizar, teniendo en cuenta un periodo de tiempo de 5 años, lo que indica que
definitivamente el negocio es bastante lucrativo si se lleva de la mejor manera y se evitan la fuga de
dineros por utilizar métodos clasicos (Castillo, 2014).
Con la inversión en tecnología y seguridad la relación costo beneficio no solo se mantiene sino que ha
tenido mejoras debido a los puntos de venta que se multiplican en las grandes ciudades donde se
centraliza por obvias razones el volumen más alto de consumidores.
1.3 Metodología Usada
A continuación se describe la metodología empleada la cual se divide en fases:

Como punto de inicio se hace la lectura total del documento enviado por parte del usuario del
aplicativo. Por medio de este documento se comienza a establecer la arquitectura para la
solución de la situación planteada. Se hace un alcance real del mismo y los posibles puntos
críticos que se plantean inicialmente. A partir de esta información se especificaran las
tecnologías y se procede a la consecución del proyecto.
17

Se desarrolló el método por el cual la interfaz se conecte al servidor externo y realice un proceso
inicial de envió y recepción de datos sin protocolo alguno para asegurar la conexión entre los
extremos de la transacción de datos.

Planteamiento básico acerca de los datos a enviar así como los campos del protocolo a utilizar en
los procesos de empaquetamiento y desempaquetamiento de información dinámica.

Seguimos con el desarrollo e implemento de una base para nuestro proyecto; Se implementarón
módulos recurrentes que tiene la terminal para comenzar el desarrollo (captura de texto,
impresión en pantalla, impresión de datos por papel).

El modelo para el desarrollo de software utilizado es un modelo iterativo y creciente en donde se
busca sacar ventaja de lo que se ha aprendido a lo largo del desarrollo anterior incrementando
versiones entregables del sistema. Este modelo se apoya de un framework (entorno de trabajo) el
cual permite un desarrollo mas acelerado y ordenado. Igualmente el frameWork permite que el
código sea facilmente migrado a otras plataformas.

En este paso controló el comportamiento de todos los elementos que intervienen en la aplicación
independientemente de lo incorrecta y poco probable que pueda llegar a ser la situación. En
general se pretende multiplicar las comprobaciones que se realizan en todos lo módulos dejando
a la vista todos los posibles errores que pueden ocurrir, haciendo mas predecible el sistema y
disminuyendo el tiempo en la busqueda de soluciones. Este metodo se conoce como
programación defensiva.

En este punto se comprobó la funcionalidad de los procesos desarrollados con el fin de ajustar
posibles imperfecciones.
2. OBJETIVOS
2.1 Objetivo General
Diseñar e Implementar una aplicación sobre un sistema embebido que realice transacciones masivas
con un servidor externo según especificaciones del sistema.
2.2 Objetivos Específicos

Implementar módulo de descarga remota para evitar despliegues ineficientes al momento de
actualizar el aplicativo en los puntos de venta.
18

Diseñar e implementar un comprobante físico al momento de la venta que registra el TPV.
(ticket).

Desarrollar un manual de instrucciones para hacer un uso adecuado de la aplicación
implementada.

Realizar procesos de transferencia bidireccional de datos con un servidor externo.
3. MARCO TEÓRICO Y ESTADO DEL ARTE
3.1 Sistemas Embebidos
Los dispositivos FPGA o ARM permiten la implementación de todo el hardware y software de un
sistema digital en un circuito integrado configurable, permitiendo desarrollos conocidos como
Sistemas-en-Chip-Programable. Los sistemas embebidos pueden definirse como una combinación de
hardware y software de computadora, diseñado para tener una función específica. Por lo general los
sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del
microcontrolador incorporado sobre el mismo o bien, utilizando algún compilador específico, suelen
utilizarse lenguajes como C y C++ (Escuela Politécnica Superior de Alcoy (España)., 2014).
Esta combinación de software y hardware puede ser reemplazada en muchos casos por un circuito
integrado que realice la misma tarea. Lo que señala que una de las ventajas de los sistemas embebidos
es su flexibilidad, ya que a la hora de realizar alguna modificación resulta mucho más sencillo
modificar unas líneas de código al software del sistema embebido que reemplazar todo el
circuito integrado.
ILUSTRACIÓN 1: TERMINAL PAX S90
19
Los sistemas embebidos suelen tener en una de sus partes una "computadora" con características
especiales conocida como microcontrolador que viene a ser el cerebro del sistema.
Este no es más que un microprocesador que incluye interfaces de entrada/salida en el mismo chip.
Normalmente estos sistemas poseen un interfaz externo para efectuar un monitoreo del estado y hacer
un diagnóstico del sistema, además cabe reseñar que el uso de sistemas embebidos en productos
complejos implica un desafío de la seguridad en TI para proteger la información contenida en el
sistema embebido y también la que es transmitida desde y hacia el dispositivo por redes privadas o
Internet. Por tanto cabe incluir funciones criptográficas, diseño de protocolos y consultoría en
análisis y verificación así como servicios de pruebas de seguridad y evaluaciones específicas
para sistemas embebidos (Prezi.com, 2014).
3.1.1 Sistema embebido a utilizar
Para el desarrollo del proyecto se ha utilizado por pedido del cliente una terminal de marca PAX
S90, utilizada ampliamente en el ámbito bancario en Centro América, debido a los altos
estándares de seguridad que maneja, al igual que la capacidad y calidad de comunicación que
ofrece el modem frente a otro tipo de terminales o sistemas. La Terminal POS móvil S90 de PAX
ha sido diseñada para ofrecer un rendimiento inalámbrico superior. Con múltiples opciones de
comunicación tales como solamente SIM o doble SIM GPRS, CDMA, WiFi y 3G, así como la gran
cantidad de memoria y de alta capacidad de Li-ion (iones de litio) batería recargable, la S90 es una
de las terminales móviles más populares con los comerciantes de hoy (PAX Technology Limited,
2013).
La S90 viene con un lector de tarjetas sin contacto incorporado, certificación PCI PTS 3.x y ofrece
transacciones seguras usando un procesador ARM 11 para soportar DUKPT, Master /Session, DES
y 3DES (PAX Technology Limited, 2013).









Procesador de alta velocidad ARM 11
Gran Capacidad en Memoria
Integrado opcional sin contacto
MasterCard Pay pass
Visa Pay Wave
Opcional Escáner de Código de barras
Conectividad USB & 3G
Gran capacidad en batería
GPRS (también doble SIM), CDMA, 3G
Especificaciones


Procesador:32-bit ARM 11
Comunicación: GPRS / CDMA /3G (WCDMA)
20



















Módem (Opcional): Sync. (HDLC, hasta 9600bps), Async. (V.92, hasta 56kbps)
Físico: Longitud: 199mm, Ancho: 87mm, Altura: 61.5mm
Peso:504 g con batería
Batería: Li-ion (iones de litio), 1800mAh, 7.4V
Lector de Código de Barras (Opcional)
Scanner Código de Barras 1D
Certificaciones: PCI PTS3.x, EMV L1 & L2, MasterCard Pay Pass, Visa Pay Wave, EMV
Contactless L1.
Puertos Periféricos: 1 x RS232, 1 x mini USB (OTG), 1 x Line (Opcional), 1 x cargador de
energía.
Seguridad: PCI PTS 3.x aprobado, DUKPT, Master / Session, DES, 3DES, ANSI / ISO9564
formato 0, 1, 3, Algoritmo clave de PIN cifrado, ANSI 9.9 / X9.19 algoritmo MAC.
Temperatura Ambiente: 0°C a 50°C (32°F to 122°F), temperatura en operación -20°C a 70°C
(-4°F a 158°F), temperatura de almacenaje 10% a 93% humedad relativa, no condensado.
Lector Tarjeta sin Contacto (Opcional): MasterCard Pay Pass & Visa pay Wave 13.56 MHz,
ISO / IEC 14443 Tipo A / B, Mifare, Felica, NFC, 4 Indicadores RF.
Voltaje: Entrada: 100~240VAC, 50Hz / 60Hz, 1.0A, Salida: 9.5VDC, 4A.
Memoria: 192MB (128MB Flash, 64MB DDR).
Pantalla: 128 x 64 pixel LCD.
Teclado: 10 teclas alfanuméricas, 8 teclas de función, 4 teclas ATM, 1 tecla de
Encendido/Apagado.
Impresora: Impresora Térmica, velocidad: 18 líneas por segundo, ancho rollo de papel /
diámetro: 58 mm / 38 mm
Lector de Tarjeta Magnética: Pista 1 / 2 / 3, bidireccional.
Lector de Tarjeta Inteligente: EMV L1 y L2 Certificado.
Ranuras Tarjetas: 2 SAM, 1 SIM.
3.1.1.1 TPV (Terminal Punto de Venta)
Los TPV o mismos POS permiten la creación e impresión del tique de venta mediante las
referencias de productos. Se realizan diversas operaciones durante todo el proceso de venta, así como
cambios en el inventario. También generan diversos reportes que ayudan en la gestión del negocio.
Los TPV se componen de una parte hardware (dispositivos físicos) y otra de software (sistema
operativo y programa de gestión).
Principales Aplicaciones de los TPV:



Control de las unidades vendidas por cada operario, con la cual se le pueden aplicar medidas
de rendimiento.
Planificación automática de pedidos.
Análisis de ventas según el horario y la sección.
21


Control de los fallos externos a través de las devoluciones y el motivo de la devolución.
Asignación de diferentes niveles de privilegio para cada operador.
Los sistemas POS ofrecen mucha confiabilidad debido a que son un tipo de sistema embebido que no
está diseñado únicamente para oficinas, tal cual sucede con los ordenadores, en tanto que el POS ha
sido diseñado para un ambiente de punto de venta de alto tráfico. Son diferentes ambientes con
requerimientos diferentes.
3.2 Estándares de comunicación, sistemas embebidos
Una red de comunicación es la conexión entre dos o más dispositivos que pueden enviar y/o recibir
datos. Si un sistema embebido necesita comunicarse con otro sistema, ya sea una terminal, un
servidor u otro dispositivo embebido, estos deberán tener el mismo esquema de conexión. Para que la
comunicación sea satisfactoria deben contar con el mismo sistema de interconexión y el mismo
protocolo de red que permita tener una interoperabilidad.
Para construir aplicaciones que deban ejecutarse en red existen varios estándares, algunos de los
cuales se encuentran en la IEEE 802.
3.2.1 Comunicación GPRS (Global Packet Service)
El protocolo de comunicación GPRS es un estándar de comunicaciones inalámbrica basado en la
conmutación de paquetes de datos sobre la misma red GSM de la telefonía celular digital, con
modificaciones que implican una mayor velocidad y un mayor ancho de banda, está inmerso en la
tecnología de red 2.5G (GSM World, 2010).
Mientras que la red GSM transmite voz y tiene un sistema de mensajería con capacidad para 160
bytes por mensaje (el GSM-SMS), GPRS permite transmitir voz y datos de forma simultánea.
Otras capacidades de GPRS son la transferencia de archivos, la navegación en la Web, el correo
electrónico sin límites y funciones de localización geográfica (Digitalfotored, 2014).
Esta diversidad permite prever distintos tipos de terminales GPRS en función
de su utilidad: teléfonos móviles, con posibilidad de enviar mensajes con texto e imágenes;
agendas electrónicas, que permiten transmitir voz y datos; ordenadores de mano, tipo PDA;
ordenadores portátiles, que utilicen un teléfono GPRS para la conexión inalámbrica; o
dispositivos de comunicación con sistemas de navegación para automóviles (Digitalfotored,
2014).
22
ILUSTRACIÓN 2: ARQUITECTURA GPRS
Debido al icremento del número de usuarios de telefonía móvil y de usuarios de Internet era
inevitable que en algún momento ambos mundos se fusionasen (Voz y Datos). De allí surge la
tecnología GPRS.
El proceso de envió y recepción de datos se realiza por fases separadas mediante los denominados
nodos de soporte los cuales re-direccionan la información a puntos de una red interactiva, como
puentes informáticos, hasta llegar a su destino.
La conexión GPRS se realiza a través del protocolo PPP o punto a punto; Este servicio tiene como fin
proporcionar el direccionamiento único de recursos de red, estableciendo un enlace entre dos
dispositivos dinámica y temporalmente. El uso de este protocolo permite la asignación de IP
dinámicamente a un dispositivo. Los canales o sockets a través de los cuales se realiza esta
conexión, son generados dinámicamente, esto se hace con el fin de obtener siempre un canal de
comunicación libre y no entrar en conflictos en la ruta de acceso a la red (Universitat oberta de
Catalunya, 2013).
Para establecer la conexión con la red es necesario pasar por un proceso de verificación de datos y las
credenciales de acceso para el envio.
Cuando el dispositivo GPRS intenta conectarse a la red; lo que está realizando en realidad es un
proceso de negociación con el proveedor de la tarjeta de Módulo de Identificación del Suscriptor
(SIM) , en este proceso el dispositivo envía los datos correspondientes a la dirección IP a la cual se
solicita realizar el enlace en red, una vez el proveedor confirma todos los datos recibidos procede a
realizar el enlace tomando los datos recibidos y realiza un proceso de conexión por protocolo TCP/IP
con la dirección solicitada por el usuario GPRS, si el proceso de conexión es exitoso, el agente
proveedor funcionara, en adelante, como un “traductor” de protocolos; convirtiendo los datos que son
23
enviados por el MODEM GPRS en protocolo PPP, a datos enviados mediante protocolo TCP/IP
dirigidos a la dirección IP solicitada (uv.es, 2011).
Los datos solicitados por el agente proveedor son básicamente tres:
 APN
 Usuario GPRS
 Contraseña GPRS
El APN (Access Point Name) es el nombre de punto de acceso el cual contiene una dirección IP a la
cual se puede conectar, un punto de configuración y una opción particular para el MODEM.
Estos APN corresponden a las redes públicas de estos operadores, sin embargo estos agentes poseen
APN privados los cuales corresponden a canales de comunicación de acceso restringido.
El protocolo de conexion al operador de telefonia movil exige un campo para contraseña y otro para
usuario, que en ocasiones por ser APN publico viajan vacios. Este tipo de datos nos brinda una
credencial de autenticación para obtener una direccion IP desde el punto de acceso al dispositivo
movil.
Este sistema de conexión posee una característica de cobro transaccional la cual se realiza por
cantidad de paquetes transmitidos y no cobro por tiempo de duración de la conexión, es decir, un
dispositivo puede estar conectado a la red pero no tendrá cobro alguno esta operación debido a que los
recursos utilizados por el GPRS son liberados en el instante en que se detiene la transacción de datos,
esto pasara siempre y cuando no exista un proceso de transmisión de datos en cualquier dirección por
el canal utilizado (uv.es, 2011).
Gracias a estas características, el servicio GPRS está dirigido principalmente a aplicaciones
interactivas las cuales presentan una densidad de transmisión de datos baja, lo cual disminuye los
recursos utilizados por el usuario, disminuyendo así los costos de operación de la aplicación; En
general este sistema aplica para cualquier proceso de transmisión de datos intermitente (uv.es, 2011).
A continuación se describen algunas de las principales características de la red GPRS:



Velocidad de transferencia de hasta 144 Kbps.
Conexión permanente.
Pago por cantidad de información transmitida, no por tiempo de conexión.
24
ILUSTRACIÓN 3: GPRS PROTOCOLO DE SEGUNDA GENERACIÓN
3.2.2 WCDMA(Acceso múltiple por división de código de banda ancha)
Este tipo de estandar hace parte de la 3er generación de telefonia movil (3G). Proporciona una mayor
eficiencia espectral, lo que permite proporcionar varios tipos de servicio en un mismo espacio
espectral (voz y datos con diferentes tasas binarias).
Se trata de una tecnología móvil que aumenta las tasas de transmisión de datos de los sistemas GSM
utilizando la interfaz aérea CDMA en lugar de TDMA (Acceso Múltiple por División de Tiempo).
Esta entrega velocidades de transmisión de datos mucho más altas en dispositivos
inalámbricos móviles y portátiles que las ofrecidas hasta el momento (puede alcanzar velocidades de
hasta 2 Mbps para voz, video, datos y transmisión de imágenes).
Tanto la tecnología WCDMA como la HSDPA pertenecen a la red 3G. La diferencia es que esta
última corresponde a la tecnología utilizada para efectuar la optimización en la descarga de datos a
través de esta red, por lo mismo puede que tenga variaciones (ENTEL, 2013).
WCDMA tiene aspectos tecnicos que lo hacen referente dentro del estandar 3G, por ejemplo soporta
protocolo IP, hace uso de la técnica de duplexación FDD, utiliza muy eficientemente el espectro de
radio disponible, mediante la reutilización de cada celda.
Los enlaces desde la red de acceso WCDMA y en el núcleo de red GSM utilizan un protocolo de
transmisión ATM de mini-celdas, conocido como Capa de Adaptación ATM 2 (AAL2).
WCDMA usa una tasa de chip de 4.096 Mcps. Entre los últimos estudios sobre WCDMA están:
Cancelación de Interferencia, Cancelación de Interferencia Gradual, Gerencia de Recurso Dinámico
en Sistemas Multimedia Inalámbricos, Técnicas de Codificación, entre otros (CAMPOS, 2009).
25
ILUSTRACIÓN 4. WCDMA VS CDMA
3.3 TCP/IP
Es un conjunto de reglas generales de diseño e implementación de protocolos de red específicos para
permitir que un equipo pueda comunicarse en una red. TCP/IP provee conectividad de extremo a
extremo especificando como los datos deberían ser formateados, direccionados, transmitidos,
enrutados y recibidos por el destinatario. Existen protocolos para los diferentes tipos de
servicios de comunicación entre equipos (Sanchez, 2010).
TCP/IP tiene cuatro capas de abstracción según se define en el RFC 1122. Esta arquitectura de capas
a menudo es comparada con el Modelo OSI de siete capas.
ILUSTRACIÓN 5: OSI VS TCP/IP
26
Caracteristicas:
 Protocolo IP enrutado de la capa 3.
 Funcionalidad extremo a extremo en la capa 4.
 TCP/IP se usa como protocolo de acceso a Internet y para interconectar dispositivos de redes
corporativas.
 El conjunto de protocolos TCP no solo incluye especificaciones de capa 3 y 4, sino también
especificaciones para aplicaciones comunes, como correo electrónico, emulación de terminal
y transferencia de archivos.
 Transferencia de archivos: TFTP, FTP, NFS.
 Correo electrónico: SMTP.
 Login remoto: TELNET Y RELOGIN.
 Administración de red: SNMP.
 Administración de nombres: DNS.
Este modelo se creó a principios de la década de los setenta y se conoce con el nombre de modelo de
Internet. Define cuatro categorías de funciones que deben tener lugar para que las comunicaciones
sean exitosas.
Un proceso completo de comunicación incluye estos pasos:
1. Creación de datos a nivel de la capa de aplicación del dispositivo final origen.
2. Segmentación y encapsulación de datos cuando pasan por la stack de protocolos en el dispositivo
final de origen.
3. Generación de los datos sobre el medio en la capa de acceso a la red de la stack.
4. Transporte de los datos a través de la red de internet, que consiste de los medios y de cualquier
dispositivo intermediario.
5. Recepción de los datos en la capa de acceso a la red del dispositivo final de destino.
6. Desencapsulación y rearmado de los datos cuando pasan por la stack en el dispositivo final.
7. Traspaso de estos datos a la aplicación de destino en la capa de aplicación del dispositivo final de
destino (Cisco Systems, Inc, 2007).
Las funciones de las diferentes capas son las siguientes:
Capa de acceso a la red: Específica la forma en la que los datos deben enrutarse, sea cual sea el
tipo de red utilizado.
Capa de Internet: Es responsable de proporcionar el paquete de datos (datagrama);
Capa de transporte: Brinda los datos de enrutamiento, junto con los mecanismos que permiten
conocer el estado de la transmisión.
Capa de aplicación: incorpora aplicaciones de red estándar (Telnet, SMTP, FTP, etc.).
27
ILUSTRACIÓN 6: CABECERA TCP
Puerto origen: Número de puerto que llama (16 bits).
Puerto destino: Número del puerto al que se llama (16 bits).
Número de secuencia: Número usado para garantizar la corrección en la secuencia de la llegada de
datos(32 bits).
Número de acuse de recibo: Siguiente octeto TCP esperado(4 bits).
Reservado: Fijado en 0(6 bits).
Bits de código: Funciones de control, como el establecimiento y la finalización de una sesión(6 bits).
Ventana: Número de octetos que el dispositivo espera aceptar (16) bits.
Suma de comprobación: Suma de comprobación de cabecera y campos de datos (16 bits).
Urgente: Indica el final de los datos urgentes(16 bits).
Opciones: Algo ya definido, tamaño máximo del segmento TCP(0 a 32 bits, si hay)
3.3.1 Puertos TCP/IP
Culaquier tipo de proceso o desarrollo de software con conexion TCP/IP se identifica a sí mismo a la
familia de protocolos TCP/IP por uno o más puertos. Un puerto es un número de 16 bits, usado por el
28
protocolo HOST TO HOST para identificar a qué protocolo de más alto nivel o programa de
aplicación (proceso) debe entregar los mensajes de entrada (Dunkels, 2006).
El puerto es una numeración lógica que se asigna a las conexiones, tanto en el origen como en el
destino. No tiene ninguna significación física.
En una URL (Universal Resource Locator) los puertos se denotan con ':' a continuación del nombre de
la máquina, por ejemplo http://www.alerta-antivirus.es:80/index.html quiere decir pedir el
documento 'index.html' mediante http conectándose al puerto 80 de este servidor. Como 80 es el
puerto por defecto para http se puede omitir (Sitiosargentina.com, 2009).
Las aplicaciones de tipo cliente, como un navegador web, un cliente de correo electrónico, o de chat
(IRC) no necesitan tener puertos abiertos.
Es recomendable el funcionamiento sigiloso de los puesrtos para no dar facilidades a los hackers.
Algunos hackers hacen escaneos aleatorios de IPs y puertos por Internet, intentando identificar las
características de los sistemas conectados, y creando bases de datos con estas. Cuando se descubre
una vulnerabilidad, están en disposición de atacar rápidamente a las máquinas que se sabe que son del
tipo vulnerable.
Un puerto de red es una interfaz para comunicarse con un programa a través de una red. Un puerto
suele estar numerado. La implementación del protocolo en el destino utilizará ese número para
decidir a qué programa entregará los datos recibidos. Esta asignación de puertos permite a una
máquina establecer simultáneamente diversas conexiones con máquinas distintas, ya que todos los
paquetes que se reciben tienen la misma dirección, pero van dirigidos a puertos diferentes (Zator.com,
2011).
Los números de puerto se indican mediante una palabra, 2 bytes (16 bits), por lo que existen 65535.
Aunque podemos usar cualquiera de ellos para cualquier protocolo, existe una entidad, la IANA
(Internet Assigned Numbers Authority), encargada de su asignación, la cual creó tres categorías:



Los puertos inferiores al 1024 son puertos reservados para el sistema operativo y usados por
"protocolos bien conocidos". Si queremos usar uno de estos puertos tendremos que arrancar el
servicio que los use teniendo permisos de administrador.
Los comprendidos entre 1024 (0400 en hexadecimal) y 49151 (BFFF en hexadecimal) son
denominados "registrados" y pueden ser usados por cualquier aplicación. Existe una lista
publica en la web del IANA donde se puede ver qué protocolo usa cada uno de ellos
Los comprendidos entre los números 49152 (C000 en hexadecimal) y 65535 (FFFF en
hexadecimal) son denominados dinámicos o privados, porque son los usados por el sistema
operativo cuando una aplicación tiene que conectarse a un servidor y por tanto necesita un
puerto por donde salir (L.Silva, 2011).
29
Como algunos programas de más alto nivel son protocolos por sí mismos, estandarizados en la
familia de protocolos TCP/IP, tales como telnet y ftp, usan el mismo número de puerto en todas las
realizaciones de TCP/IP. Aquellos números de puerto "asignados" se denominan puertos
bien-conocidos y las aplicaciones estándares servicios bien-conocidos (Universidad de Oviedo Ingeniería de sistemas y automatica, 2006).
La confusión debida a que dos aplicaciones diferentes intentan usar los mismos números de puerto
sobre un host se evita escribiendo esas aplicaciones para pedir un puerto TCP/IP disponible. Puesto
que este número de puerto se asigna dinámicamente, debe diferir de una invocación de una aplicación
a la próxima.
Algunos de los puertos conocidos más utilizados son :
TABLA 1: ALGUNOS PUERTOS CONOCIDOS
3.3.2 Sockets
Por terminologia un socket es un tipo especial de manejador de fichero que utiliza un proceso para
pedir servicios de red al sistema operativo. Una dirección de socket es la tripleta: {protocolo,
dirección-local, proceso-local}.En la familia TCP/IP, por ejemplo: {tcp, 193.44.234.3, 12345}
Una conexión es el enlace de comunicación entre dos procesos, una asociación es la quíntupla que
especifica completamente los dos procesos que comprende una conexión:
{protocolo, dirección-local, proceso-local, dirección-externa, proceso-externo}
En la familia TCP/IP, por ejemplo:
{tcp, 193.44.234.3, 1500, 193.44.234.5, 21}
30
Los sockets son puntos de comunicación entre procesos que permiten que un desarrollo se comunique
con otro desarrollo, incluso estando estos en distintas máquinas. Esta característica de
interconectividad entre máquinas hace que el concepto de socket nos sirva de gran utilidad. Esta
interfaz de comunicaciones es una de las distribuciones de Berkeley al sistema UNIX,
implementándose las utilidades de interconectividad de este Sistema Operativo ( rlogin, telnet, ftp,
etc. ) usando sockets (Barranco, 1996).
Un socket es al sistema de comunicación entre ordenadores lo que un buzón o un teléfono es al
sistema de comunicación entre personas: un punto de comunicación entre dos agentes por el cual se
puede emitir o recibir información. La forma de referenciar un socket por los procesos implicados es
mediante un descriptor del mismo tipo que el utilizado para referenciar ficheros.
La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTE-SERVIDOR, un
proceso en esta comunicación actuará de servidor creando un socket cuyo nombre conocerá el
proceso cliente, el cual podrá "hablar" con el servidor a través de la conexión con dicho socket
nombrado (Barranco, 1996).
Tipos de sockets:

Tipo SOCK_DGRAM: sockets para comunicaciones en modo no conectado, con envío de
datagramas de tamaño limitado ( tipo telegrama ). En dominios Internet como la que nos
ocupa el protocolo del nivel de transporte sobre el que se basa es el UDP.

Tipo SOCK_STREAM: para comunicaciones fiables en modo conectado, de dos vías y con
tamaño variable de los mensajes de datos. Por debajo, en dominios Internet, subyace el
protocolo TCP.

Tipo SOCK_RAW:
red ).

Tipo SOCK_SEQPACKET: tiene las características del SOCK_STREAM pero además el
tamaño de los mensajes es fijo (Barranco, 1996).
permite el acceso a protocolos de más bajo nivel como el IP ( nivel de
3.4 PPP ( Point to Point Protocol )
Generalmente a través de una línea telefónica pueden comunicarse un máximo de dos equipos
mediante un módem, al igual que resulta imposible llamar a dos personas simultáneamente utilizando
la misma línea telefónica. Esto se denomina conexión punto a punto, es decir, una conexión entre dos
equipos reducida a su expresión más sencilla: no es necesario compartir la línea con diversos equipos,
uno habla y el otro responde alternativamente (Kioskea, 2013).
31
Se han desarrollado diversos protocolos de módem. los primeros permitían una simple transmisión de
datos entre dos equipos. Luego, algunos de ellos contaron con control de errores y, con el crecimiento
de Internet, también contaron con la capacidad de asignar direcciones a equipos. De esta manera,
existen actualmente dos protocolos de módem principales:
SLIP: un protocolo antiguo, con pocos controles.
PPP: El protocolo más utilizado para acceder a Internet mediante un módem. Permite asignar
direcciones a equipos.
El Protocolo punto a punto es un protocolo mucho más desarrollado que SLIP (por ello lo está
reemplazando), en la medida en que transfiere datos adicionales más adaptados a la transmisión de
datos a través de Internet (la adición de datos en una trama se debe principalmente al aumento del
ancho de banda).
En realidad, PPP es un conjunto de tres protocolos:
un protocolo de encapsulación de datagramas, un protocolo LCP, Protocolo de control de vínculos,
que permite probar y configurar la comunicación
Los datos encapsulados en una trama PPP se denominan paquetes. Estos paquetes generalmente son
datagramas, pero también pueden ser diferentes (de allí la designación específica de paquete en lugar
de datagrama). Por lo tanto, un campo de la trama se reserva para el tipo de protocolo al que el
paquete pertenece. Así es una trama PPP:
ILUSTRACIÓN 7: POINT TO POINT PROTOCOL
Los datos de relleno se utilizan para adaptar la longitud de la trama para ciertos protocolos.
A continuación se indica cómo se lleva a cabo una sesión PPP (desde el comienzo hasta el fin):
Una vez que se cuenta con conexión se envía un paquete LCP.
En el caso de una solicitud de autenticación del servidor, se puede enviar un paquete relacionado con
un protocolo de autenticación (PAP, Protocolo de autenticación de contraseña, o CHAP, Protocolo de
autenticación por desafío mutuo o Kerberos).
Una vez que se establece la comunicación, PPP envía información de configuración mediante el
protocolo NCP.
32
Los datagramas que se van a enviar se transmiten como paquetes. En el momento de la desconexión,
se envía un paquete LCP para finalizar la sesión.
La mayoría de las personas que no cuentan con líneas (cable o Ethernet) directamente conectadas a
Internet deben utilizar líneas telefónicas (la red más utilizada) para conectarse. La conexión se realiza
mediante un módem, un dispositivo que puede convertir datos digitales de un equipo en señales
analógicas (que pueden circular por líneas telefónicas mediante amplitud modulada o frecuencia
modulada, de la misma manera que la voz cuando se utiliza el teléfono) (Kioskea, 2013).
Si se tiene en cuenta que sólo comunican dos equipos y que la velocidad de la línea telefónica es lenta
en comparación con la de una red local, es necesario utilizar un protocolo que permita la
comunicación estándar entre diferentes equipos con módem, para no sobrecargar la línea telefónica,
se denominan protocolos de módem.
ILUSTRACIÓN 8: SISTEMA PUNTO A PUNTO
3.5 FTP (File Transfer Protocol)
Es un sistema de reglas de comunicación que permite que dos dispositivos se comuniquen entre sí
independientemente del sistema operativo que utilicen, haciendo posible enviar información o
descargar archivos específicos.
El protocolo de transferencia de archivos también proporciona características para controlar el acceso
de los usuarios. Cuando un usuario solicita la transferencia de un fichero, FTP establece una conexión
TCP con el sistema destino para el intercambio de mensajes de control. A través de esta conexión se
puede transmitir el identificador y la contraseña del usuario, y el usuario puede especificar el fichero
y las acciones sobre él deseadas (Crespo Martínez & Candelas Herías, 1998).
33
ILUSTRACIÓN 9: FTP
Una vez que se aprueba la transferencia del fichero, se establece una segunda conexión TCP para la
transferencia de datos. El fichero se transmite a través de esa conexión de datos, sin información
suplementaria o cualquier cabecera de la capa de aplicación. Cuando la transferencia se completa, el
control de la conexión se utiliza para indicar el final y la posibilidad de aceptar nuevas órdenes de
transferencia (Crespo Martínez & Candelas Herías, 1998).
3.6 HTTP
El Protocolo de Transferencia de HiperTexto es un sencillo protocolo cliente-servidor que articula los
intercambios de información entre los clientes Web y los servidores HTTP. La especificación
completa del protocolo HTTP 1/0 está recogida en el RFC 1945. Fue propuesto por Tim Berners-Lee,
atendiendo a las necesidades de un sistema global de distribución de información como el World
Wide Web (Herramienta web para la enseñanza de comunicación, 2012).
Desde el punto de vista de las comunicaciones, está soportado sobre los servicios de conexión TCP/IP,
y funciona de la misma forma que el resto de los servicios comunes de los entornos UNIX.
Se trata de un proceso servidor escucha en un puerto de comunicaciones TCP (por defecto, el 80), y
espera las solicitudes de conexión de los clientes Web. Una vez que se establece la conexión, el
protocolo TCP se encarga de mantener la comunicación y garantizar un intercambio de datos libre de
errores.
HTTP se basa en sencillas operaciones de solicitud/respuesta. Un cliente establece una conexión con
un servidor y envía un mensaje con los datos de la solicitud. El servidor responde con un mensaje
similar, que contiene el estado de la operación y su posible resultado. Todas las operaciones pueden
adjuntar un objeto o recurso sobre el que actúan; cada objeto Web (documento HTML, fichero
multimedia o aplicación CGI) es conocido por su URL (Herramienta web para la enseñanza de
comunicación, 2012).
34
3.7 Protocolo ISO8583
ISO-8583 es un protocolo transaccional de empaquetamiento y transferencia de datos
propuesto para sistemas que intercambian transacciones electrónicas; este protocolo está orientado a
todo tipo de transacciones financieras en las cuales se vean implicadas tarjetas de crédito o cualquier
tarjeta de pago electrónico, sin embargo el Standard ISO-8583 se ve involucrado actualmente en todo
tipo de transacciones financieras que tengan o no involucrada una tarjeta de cualquier tipo para su
realización.
ISO-8583 consta de dos estructuras básicas, la cabecera y los datos de aplicación.
En la cabecera encontramos el tamaño de los datos transmitidos y el
de transporte de datos de la Unidad (TPDU).
La estructura correspondiente
fundamentales:
•
•
•
a
los
datos de aplicación consta de
Protocolo
tres partes
El MTI
El Bitmap
Los elementos de datos
El tipo de mensaje (MTI) consta de cuatro (4) dígitos y se utiliza para definir el tipo de mensaje de la
transacción. El primero y segundo dígito identifica la clase de mensaje. El tercer y cuarto dígito se
utiliza para identificar la función del mensaje y el modo de transmisión.
Definición del tipo de mensaje:
para los dígitos 1 y 2:
01
02
03
04
05
06
08
Autorización
Financiera
Archivo de actualización / transferencia
Reverso
Reconciliación de control
Administrativa
Gestión de red
Para los dígitos 3 y 4
00 Solicitud interactiva
10 Respuesta interactiva
35
20 Asesoramiento no interactivo
Algunos ejemplos de tipo de mensaje usualmente utilizados son:
0100 solicitud de autorización
0110 respuesta de solicitud de autorización
0200 solicitud de trasferencias financieras
0210 Respuesta de solicitud de trasferencias financieras
0400 solicitud de reverso
0410 respuesta de solicitud de reverso
El Bitmap o mapa de bits es un conjunto de 8 bytes o 16 caracteres donde se asigna a cada elemento
de los datos un indicador de posición en un campo de control. Este nos indica cuales son los campos
que deben ser leídos en la operación transaccional. La presencia de un elemento de datos en un
mensaje específico se indica con un (1), en el asigna la posición, la ausencia de un elemento de datos
se indica con un cero (0) en la posición asignada. Un mapa de bits consiste en 64 bits
contados de
izquierda a derecha empezando por el BIT uno (Hypercom, 2002).
Los elementos de datos son una serie de campos preestablecidos por el protocolo ISO8583 los cuales varían entre sí en cuanto a tamaño y tipo de datos soportados por cada uno, cada
campo posee un nombre, un formato y un tamaño predeterminado (Hypercom, 2002).
A continuación se muestra una tabla con la descripción de cada uno de los campos involucrados en el
protocolo ISO 8583.
TABLA 2: CAMPOS ISO 8583
36
ATRIBUTOS: a (caracteres alfabéticos), n (datos numéricos), s (caracteres especiales), an-as--ns-ans
combinación de los anteriores respectivamente, b (dato en formato binario), z (dato recibido de la
banda magnética).
Algunos ejemplos de campos establecidos en el protocolo ISO-8583 son:
Campo 3. processing code (código de procesamiento):
El código de procesamiento se utiliza en conjunción con el tipo de mensaje para definir el tipo de
transacción que se está enviado por el Terminal en el servidor.
Este campo tiene un tamaño de 6 caracteres estáticos los cuales deben ser únicamente de tipo
numérico, es decir, de 0 a 9. Ejemplo:
[92 00 00]
Campo 41. Terminal ID (identificación de la Terminal):
Este es el código de identificación único del dispositivo, con este código se identifica por parte del
servidor cual es el Terminal que está realizando la transacción.
Campo para caracteres alfanuméricos y especiales y tiene una longitud de 8 caracteres. Ejemplo:
[3f0010278]
Campo 60. uso privado:
No todos los campos tienen longitud específica, existen algunos como el campo 60 los cuales tienen
una longitud variable; Los campos de uso privado se utilizan con el fin de enviar datos opcionales en
la transmisión de datos, estos datos son propios de cada transacción y se pueden enviar a
preferencia de la Terminal.
El campo 60 tiene longitud variable y soporta caracteres alfanuméricos y especiales, el tamaño
máximo de este campo es de 999 Bytes.
Cuando se utilizan campos de longitud variable usualmente se envía en las dos primeras posiciones
del campo la longitud en formato BCD con el fin de indicar al servidor cuantos Bytes se envían en
ese campo especifico. Ejemplo: [00 05 38 33 33 39 37]
37
3.8 Compresión y descompresión de datos
3.8.1
¿Para que se comprimen datos?
Actualmente, el poder de procesamiento de los procesadores se incrementa más rápido que la
capacidad de almacenamiento y es más veloz que los anchos de banda de las redes, porque estos
últimos requieren cambios enormes en las infraestructuras de telecomunicación.
Por lo tanto, para compensar esto, es más común el procedimiento de reducir el tamaño de los datos al
explotar el poder de procesamiento de los procesadores, que incrementar la capacidad de
almacenamiento y de transmisión de datos (CCM, 2014).
3.8.2
¿Que es la compresión de datos?
La compresión consiste en reducir el tamaño físico de bloques de información. Un compresor se vale
de un algoritmo que se utiliza para optimizar los datos al tener en cuenta consideraciones apropiadas
para el tipo de datos que se van a comprimir. Por lo tanto, es necesario un descompresor para
reconstruir los datos originales por medio de un algoritmo opuesto al que se utiliza para la compresión
(CCM, 2014).
La siguiente imagen muestra los pasos de compresión y descompresón de un archivo.
ILUSTRACIÓN 10: COMPRESIÓN Y DESCOMPRESIÓN DE ARCHIVOS
3.8.3


Tipos de compresión
La compresión física actúa directamente sobre los datos; por lo tanto, es cuestión de
almacenar los datos repetidos de un patrón de bits a otro.
La compresión lógica, por otro lado, se lleva a cabo por razonamiento lógico al sustituir esta
información por información equivalente.
38
3.8.4

Métodos de compresión
En el caso de la compresión simétrica (Ilustración 11), se utiliza el mismo método para
comprimir y para descomprimir los datos. Por lo tanto, cada operación requiere la misma
cantidad de trabajo. En general, se utiliza este tipo de compresión en la transmisión de datos.
ILUSTRACIÓN 11: COMPRESÍON SIMÉTRICA

La compresión asimétrica requiere más trabajo para una de las dos operaciones. Es frecuente
buscar algoritmos para los cuales la compresión es más lenta que la descompresión. Los
algoritmos que realizan la compresión de datos con más rapidez que la descompresión pueden
ser necesarios cuando se trabaja con archivos de datos a los cuales se accede con muy poca
frecuencia (por razones de seguridad, por ejemplo), ya que esto crea archivos compactos
(CCM, 2014).
3.8.5 Compresión con perdida de datos
La comprensión con perdida es un método de compresión de datos que permite comprimir datos que
al ser descomprimidos no son exactamente como los originales. Por lo general, la compresión con
pérdida de datos se utiliza en la compresión de datos multimediales. Como este tipo de compresión
elimina información que está contenida en los datos que se van a comprimir, por lo general se habla
de métodos de compresión irreversible (CCM, 2014).
Cuando se habla de imágenes, sonido y video, suele llamarse también compresión con pérdida de
calidad, porque es la calidad lo que se está viendo afectada. La compresión con pérdida de datos suele
lograr bastante mayor compresión que la compresión sin pérdida. Esto significa que el resultado
ocupará menos bytes de almacenamiento. Por ejemplo, la compresión de audio puede llegar a
permitir que el archivo ocupe una décima parte del original sin comprimir y prácticamente el oído
humano no capta la diferencia. Para las imágenes, también puede lograrse una alta tasa de compresión,
pero es más evidente en el resultado final. En tanto en videos, la compresión con pérdida puede lograr
que ocupe 1/300 parte del original (CCM, 2014).
39
Los métodos de compresión con pérdida de datos se basan en las percepciones humanas para lograr su
cometido. El objetivo es lograr que las personas no perciban el cambio del original. Por ejemplo, los
archivos comprimidos en MP3, logran una calidad de audio excepcional y gran compresión. En tanto,
las imágenes JPG, logran una muy buena compresión, permitiendo seleccionar un número de
compresión del 0 al 100. El número más alto permite mayor calidad, pero el archivo final ocupa más
espacio. Una calidad aceptable es 80 (CCM, 2014).
3.8.6 Compresión sin perdida de datos
Tipo de algoritmos de compresión de datos que permite que la información original sea perfectamente
recuperada a partir de datos comprimidos. Cuando se comprimen imágenes, videos o sonidos sin
pérdida, suele referirse como "compresión sin pérdida de calidad". La compresión sin pérdida de
datos, es utilizada para comprimir archivos o información que contienen datos que no pueden ser
degradados o perdidos, como pueden ser documentos de texto, archivos ejecutables, etc. (CCM,
2014).
En principio, los algoritmos de compresión sin pérdida de datos pueden ser usados para comprimir
cualquier tipo de dato. Algunos tipos de datos no permitirán demasiada compresión (logrando que la
compresión sea similar en tamaño en bytes que el archivo original) y otros lograrán una muy buena
compresión. Por lo general, los archivos de texto pueden ser muy comprimidos, en cambio archivos
de audio, no logran una significativa compresión (CCM, 2014).
3.8.7 Formato 7z
7z es un formato de archivo de alta relación de compresión, es el formato por defecto del archivador
7-Zip.
Las principales características del formato 7z son:








Arquitectura abierta.
Alta relación de compresión.
Fuerte cifrado AES-256.
Capacidad de utilizar cualquier compresión, conversión o método de cifrado.
Apoyo a los archivos con tamaños de hasta 16.000.000.000 GB.
Nombres de archivo Unicode (7 Zip, 2012).
Compresión sólida
Archivo de compresión de cabeceras
7z cuenta con una arquitectura abierta, por lo tanto puede soportar nuevos métodos de compresión.
Los métodos integrados actualmente son los mostrados en la siguiente tabla.
40
TABLA 3: METODOS DE COMPRESIÓN INTEGRADOS A 7Z
3.8.8 Algoritmo LZMA
LZMA es el método por defecto y general de la compresión del formato 7z. Las características
principales del método de LZMA:







Alto cociente de compresión.
Tamaño variable del diccionario (hasta 4 GB).
Velocidad de compresión: cerca de 1 MB/s en la CPU de 2 GH.
Descompresión de velocidad: cerca de 10-20 MB/s en la CPU de 2 GH.
Pequeños requisitos de memoria para descomprimir (dependa de tamaño del diccionario).
Pequeño tamaño de código para descomprimir: cerca de 5 KB.
Apoyo multi-threading y el hyper-threading de P4 (7 Zip, 2012).
El algoritmo de compresión de LZMA es muy conveniente para los usos encajados. LZMA se lanza
de conformidad con el GNU LGPL.
7-Zip también apoya la encripción con el algoritmo AES-256. Este algoritmo utiliza una llave de
cifrado con la longitud de 256 bits. Para crear la llave en 7-Zip se utiliza la función de la derivación
basada en el algoritmo hash SHA-256. Una función de derivación principal produce una llave
derivada de la contraseña del texto definida por el usuario. Para aumentar el coste de la búsqueda
exhaustiva para las contraseñas 7-Zip utiliza el número grande de iteraciones para producir llave de
cifrado de contraseña del texto (7 Zip, 2012).
3.9 Apuestas en República Dominicana
En República Dominicana a finales de la década de los 80 se conoció el concepto de Bancas
Deportivas como una alternativa de entretenimiento y apuesta, que al mismo tiempo generaba
empleos de manera directa e indirectamente. Este concepto fue evolucionando, debido a que en sus
41
inicios los medios de tecnología de información y control y comunicación avanzada, creaba una
serie de pérdidas financieras, que poco a poco fue mejorando. Todo este proceso creó las llamadas
bancas de apuestas, enlazadas a través de la red de tecnología de comunicación que no sólo se
concentran en apuestas deportivas, sino ofrecen servicios de Lotería, Pale, Juegos vía satélite, entre
otros. Estos enlaces de Tecnología de Información usan actualmente en poca
proporción sistemas On-line con líneas dedicadas conectadas a servidores en muchas partes
de Estados Unidos de donde se obtiene la información de las jugadas así como
también datos estadísticos de jugadas y probabilidades (Castillo, 2014).
Aun con todo el avance actual y las facilidades que ofrece el mercado de las telecomunicaciones, las
bancas de apuestas se mantienen muy pasivas en cuanto a cambios en su infraestructura. Alrededor
del 85% de estas usan sistemas de base de datos de Cobol y son compilados en DOS o Xenix, que son
formatos de caracteres ASCII en las pantallas, comunicación limitada a 1.2 Kbps, alta vulnerabilidad
del hardware, alta posibilidad de fraude y perdida en los Impuestos anuales del país (Castillo, 2014).
En República Dominicana existen variedad de loterías en cuanto a juegos de azar respecta, a
continuación se conocerá puntualmente cada una de las loterías y los juegos que ostentan, los cuales
serán parte vital del desarrollo que se lleva a cabo:
En República Dominicana existen 4 Loterías, las cuales tienen varios premios diarios o semanales,
unas ofrecen premios acumulativos y otras tan solo premios dependiendo la cantidad de dinero o
el tipo de juego que hayas jugado.
La Lotería Nacional: Esta es la principal, ya que pertenece al Gobierno de la República Dominicana
y tan sólo cuenta con un tipo de premio.
Lotería Leidsa: Esta es una de las nuevas modalidades y vino a ser la primera en este ramo, la cual
ofrece premios acumulativos, así como otras diversidades de juego, con lo que brinda la oportunidad
a los jugadores de ganar dependiendo su interés, entre sus juegos están: Loto Millonario, Quiniela
Palé, Loto más, Súper Palé, Pega 3, Loto Pool, Súper Kinto TV y el Súper Bingo.
Lotería Loteka: Esta ha venido con fuerte competencia para Leidsa, ya que básicamente es en esa
misma modalidad de premiaciones, entre los que se cuentan: Migra Tripleta Exacta, Mega Tripleta,
Mega Líneas, Mega Palé, Mega Quiniela, Mega Lotto.
Loto Real: Otra denominación al igual que las dos anteriores y entre sus atractivos están: Súper Loto,
Loto Real, Quiniela Real, Súper Palé Real, Pega Real.
A continuación se encuentran los juegos que inicialmente se han contemplado para el desarrollo. Al
ser un desarrollo de mensajería dinámica, la inicialización de este tipo juegos podrá realizarse sin
42
inconveniente alguno, y provocará que también se puedan inicializar otro tipo de juegos indicando
cada uno de los parámetros de inicialización requeridos en la mensajería.
Quiniela
En este tipo de juego se debe elegir un número del 1 al 100 y tiene tres oportunidades de ganar, se
juega inicialmente con 2 dígitos. Puede ganar con cualquiera de los tres números que resulten
ganadores del sorteo. Por cada RD$1.00 apostado gana:



Primer Premio: RS$60.00
Segundo Premio: RD$10.00
Tercer Premio: RD$5.00
Palé
Para este juego se debe elegir 2 (dos) números del 1 al 100 y tiene tres oportunidades de ganar, se
juega inicialmente con 4 dígitos (2 números de 2 dígitos), se puede ganar combinando dos números
cualquiera de los tres números que resulten ganadores en el sorteo sin importar el orden en que se elija
los números. Por cada RD$1.00 apostado las siguientes combinaciones ganan:



Primer Premio y Segundo Premio: RD$1000.00
Primer Premio y Tercer Premio: RD$1000.00
Segundo Premio y Tercer Premio: RD$100.00
Tripleta
Debe elegir 3 (tres) números de 2 dígitos y tiene dos formas de ganar: Primero si acierta los tres
números que resulten ganadores en el sorteo sin importar el orden que se hayan elegido, y también
acertando dos números de los tres números que resulten ganadores sin importar el orden de la
selección. Por cada RD$1.00 apostado las siguientes combinaciones ganan:


Por acertar los Tres Premios: RD$20,000.00
Por acertar Dos de los Tres Premios: RD$100.00
Súper Pale
Debe elegir el numero ganador del primer premio de por lo menos dos de las loterías que se ofrecen
(LOTEKA, LEIDSA, Lotería Nacional y Lotería Real). Se gana si acierta el primer premio de las
loterías escogidas, se juega con 4 dígitos al igual que el Palé (2 números de 2 dígitos). Por cada
RD$1.00 apostado gana:

Por acertar el primer premio de ambas loterías: RD$3,000.00
43
El súper pale resulta ganador si los números jugados resultan ganadores del premio mayor de cada
uno en una de las loterías de las combinadas.
Pérez Abreu es, desde hace más de 20 años, uno de los principales proveedores en República
Dominica de software para la administración de bancas de apuestas. La empresa tenía funcionando
una aplicación para registrar apuestas de lotería bajo el esquema de trabajo online contra un servidor
que tenía un grave inconveniente de seguridad. Debido a que en República Dominicana las
conexiones de Internet no son muy consistentes, debieron incorporar un mecanismo por el cual, al
cortarse la comunicación con el servidor se permitiera acumular apuestas localmente y, en el
momento de restaurarse la comunicación, se enviarían estas apuestas al servidor (Sitepro, 2009).
La firma descubrió que ‘casualmente’ en algunas agencias se cortaba habitualmente la comunicación
con el servidor unos 5 o 10 minutos antes de que empezaran los sorteos de la lotería local. Y luego se
recuperaba la conexión pocos minutos luego de que el sorteo había comenzado. Dándose la ‘fortuna’
que, entre las jugadas que se habían realizado unos minutos antes de que empiece el sorteo, aparecían
apuestas a los primeros números sorteados antes de recuperarse la conexión (Sitepro, 2009).
Francis Pérez y Jorge Gutiérrez, de Pérez Abreu, explican: ‘Descubrimos que algunos operadores
avivados desconectaban el cable de internet a propósito, antes de empezar el sorteo atrasaban el reloj
del equipo recaudador de apuestas, ingresaban apuestas con los números favorecidos al principio del
sorteo, y luego volvían el reloj a la hora correcta, se conectaban a internet nuevamente y de esta forma
se transmitían las jugadas supuestamente acumuladas antes del inicio del sorteo y que no pudieron ser
enviadas por el corte de la conexión de internet (Sitepro, 2009).
Debido a esto el sistema de apuestas instaurado no permite de ninguna manera cambiar la hora en el
sistema POS, este es uno de los principales problemas que se plantea en este sistema de apuestas.
3.10 Descripción y definición de la red a utilizar.
3.10.1 Definición del método de transmisión de datos cliente-servidor.
La transferencia de archivos de un Host a un cliente tipo terminal punto de venta, puede ser
desarrollada utilizando cualquier tipo de protocolo de comunicación de alto nivel siendo el FTP,
HTTP y TCP/IP las principales opciones.
FTP
Ventajas
 Presenta un aprovechamiento del ancho de banda optimo, esto se debe a que el protocolo está
orientado al envió de información del archivo con un gasto mínimo de bytes usados por el
protocolo.
44


Posee un sistema de autenticación de usuario con el que se proporcionan permisos a los
clientes
En su variación a FTPS se logra proporcionar un nivel de seguridad más alto a la información
transferida la cual estará encriptada bajo el protocolo SSL.
Desventajas
 Es insuficiente para ambientes de trabajo que requieren seguridad y auditorias.
 Los servidores pueden ser atacados desde distintos equipos para inundarlos. Esto detiene los
procesos y afecta significativamente la productividad.
 No es posible reanudar una transferencia de información que ha sido interrumpida.
HTTP
Ventajas
 El proceso de carga del archivo en el servidor es sencillo.
 Es posible implementar algoritmos de reanudación de descarga de información que han sido
interrumpidos
 En su variación a HTTPS se logra proporcionar un nivel de seguridad más alto a la
información encriptada bajo el protocolo SSL.
Desventajas
 El ancho de banda se desperdicia debido a la implementación de formularios HTML.
 La transferencia de información innecesaria provoca tiempos de ejecución del sistema más
elevados.
 El gasto de datos es elevado debido a que el protocolo posee demasiadas etiquetas o bytes
innecesarios en la transmisión y la recepción.
Es descartado el uso de HTTP para el sistema debido al incremento en el tiempo de ejecución del
sistema y al uso de formularios HTML que implican un consumo innecesario del ancho de banda,
igualmente el FTP no puede reanudar descargas que se detuvieron en una parte del proceso, por ello
se hará por TCP/IP, utilizando ISO 8583 en la transmisión de cada paquete.
3.11 Estado del arte
Teniendo en cuenta un estudio previo frente a desarrollos electrónicos enfocados plenamente en
las telecomunicaciones y entornos de programación, se encontró algunos desarrollos a nivel
internacional y a nivel nacional, que se explican a continuación:
45
3.11.1 Proyecto 1:
Domótica para Sistemas Embebidos – Juan Manual Picerno, ken Tenzer, Universidad de la
Republica, Uruguay.
Se propuso una API que permite la programación de aplicaciones con un alto grado de portabilidad.
La solución propuesta está basada en una plataforma con arquitectura orientada a servicios
desarrollada en JAVA llamada OSGi. La API permite interactuar con distintas tecnologías de forma
homogénea, los cuales incluso pueden estar distribuidos entre varios sistemas. Para mostrar su
aplicabilidad de desarrollo se trabajó un prototipo para la automatización de un baño en una
plataforma con recursos limitados, usando el proyecto USbAll que permite el control de dispositivos
genéricos desde el punto de vista USB. Para interactuar con distintas tecnologías también se probó el
sistema con dispositivos controlados por radiofrecuencia. Se sobre escribió el firmware original del
router Azuzwl500w con OpenWrt una distribución de Linux para sistemas embebidos contando así
con una plataforma MIPS de bajos recursos y bajo costo. Se implanto JamVM, una maquia virtual de
JAVA especializada para este tipo de entornos y se experimentó con tecnologías de distribución como
jLSP y R-OSGI (Picerno, 2010).
3.11.2 Proyecto 2:
Sistema de comunicaciones basado en Ethernet para el control de sistemas empotrados
(Universidad Tecnológica de la Mixteca, México) Diciembre de 2009.
El proyecto establece una comunicación entre un sistema embebido y un centro de información.
El intercambio de información se realiza usando protocolos de suite TCP/IP. El encargado de
implementar el protocolo IP es el dispositivo MT100SEM de la firma Multitech System. El MUC
Atmega8 es el encargado de enviar las ordenes AT y controlar el intercambio de información con el
MT100SEM. El MUC es el encargado de configurar y controlar los dispositivos periféricos.
La interfaz del usuario es realizada en base a una interfaz web, las tareas realizadas en esta interfaz
son: identificar el usuario, interactuar con las salidas del sistema seleccionadas, mostrar entradas
digitales y análogas y mostrar información de cualquier sistema.
Todo realizado en la Universidad Tecnológica de Mixteca aprovechando su red de comunicación tipo
Ethernet, para un sistema de vigilancia (Universidad tecnologica de Mixteca, 2009).
46
3.11.3 Proyecto 3:
“Pago electrónico a través de teléfonos móviles”
En vista de la evolución de las comunicaciones surgió la idea de crear un sistema de pago a través del
teléfono móvil, el cual solicita la autorización para realizar el cobro a la tarjeta de crédito, mediante
un software instalado en el teléfono móvil.
El objetivo es ofrecer un mecanismo de pago electrónico a las empresas y personas desde cualquier
lugar geográfico con cobertura celular y así extender el uso de la infraestructura de pagos electrónicos
en los negocios de gran y menor tamaño (PYMES), tales como: comercio al menudeo, tiendas de
abarrotes, locales de comida, islas, papelerías, farmacias y hasta taxis (Espinosa Peñeherrera & Soto
Arango, 2009).
3.11.4 Proyecto 4:
Instalación de Linux para ARM en sistemas empotrados (Universidad de Granada, España,
2009).
Este proyecto cubre lo necesario para instalar Linux en una placa de desarrollo con procesador ARM
como la Beagle Board. Describe también un método para generar software ejecutable por la placa. Se
mostrara una forma sencilla de construir el sistema utilizando el emulador Qemu en la máquina de
escritorio de forma que se tenga el sistema básico funcionando rápidamente y sin complicaciones.
El método que se utilizó para instalar Linux y las demás herramientas en la Beagle Board se abstrae
gracias a la potencia de la placa y la disponibilidad de emuladores en los PCs actuales. Está basado
en el how to de Robert Nelson, el cual propone dos métodos independientes.
El primero consiste en cargar en una SD una imagen arrancable del instalador del sistema operativo.
Así una vez conectada la placa a un monitor, un teclado y un acceso a internet, se arranca la placa
con esa tarjeta y se instala Linux igual que se haría en un PC.
El segundo realiza la instalación en una máquina virtual en un PC. La instalación es similar a la que se
haría en un PC de forma nativa, pero en este caso se instalaría en la tarjeta SD. Una vez hecha la
instalación y configuración ya podemos arrancar la placa con la tarjeta introducida y acceder a ella
desde el PC a través del puerto serie.
Este proyecto muestra de manera minuciosa como instalar Linux en un sistema embebido lo cual es
muy interesante y provechoso. Por ser libre, muestra con respecto a nuestro proyecto la versatilidad
de estos sistemas para diferentes aplicaciones (Navarro R. C., 2010).
47
3.11.5 Proyecto 5:
Modulo didáctico de instrumentación electrónica implementado con tecnología FPAA
(Universidad Distrital Francisco José de Caldas, Facultad Tecnológica)
Es un proyecto de desarrollo ya que la finalidad del mismo es el aprovechamiento de nuevas
tecnologías en la instrumentación electrónica, entre ellas la FPGA, explorando sus ventajas con
respecto a lo que en la actualidad se usa en la Universidad Distrital. Debido a la poca aplicación que
hay en nuestro contexto educativo, este proyecto explora más a fondo esta tecnología, que puede ser
de gran utilidad en el diseño de sistemas de instrumentación electrónica en el grupo de investigación
“INTEGRA” y como consecuencia, permitir la reducción de materiales a utilizar, costos en el
proceso, y tiempo de ejecución de un diseño (Cuevas, 2007).
3.11.6 Proyecto 6:
“Propuesta de un plan para adquirir una solución tecnológica que permita la administración y
monitoreo de la red de cajeros automáticos del banco popular y de desarrollo comunal”
El Banco Popular y de Desarrollo Comunal, en su afán por sobresalir en el mercado financiero
costarricense y brindar más y mejores servicios a sus clientes, se encuentra en un proceso de
modernización de su plataforma tecnológica, incluyendo la red de cajeros automáticos.
Dado lo anterior, se estableció como objetivo principal en esta investigación, proponer un plan para
adquirir una solución tecnológica que permita la administración y monitoreo de la red de cajeros
automáticos del Banco Popular y de Desarrollo Comunal (Arias Guerrero, 2009).
4.
DISEÑO DE PROTOCOLO DE COMUNICACIÓN Y DESARROLLO DE LÓGICA
SOBRE SISTEMA EMBEBIDO
Inicialmente el proyecto se ha diseñado con transacciones básicas, las cuales corresponden a la
columna vertebral del software y obedecen a la lógica del negocio. Primordialmente se debe
mencionar que para este proyecto existen 2 tipos de protocolos empaquetados en la capa 4 del
modelo TCP/IP (Nivel de aplicación). El primer protocolo consiste en el diseño de mensajería
personalizada por parte del servidor de Pérez Abreu S.A, ubicado en República Dominicana y el
segundo corresponde al ISO 8583 para realizar descarga remota del aplicativo de una plataforma
externa llamada C.S.I (Costumer service information).
El tipo de programación que se ha utilizado en este caso ha sido Programación estructurada, la cual
está compuesta por un conjunto de técnicas que han ido evolucionando y aumentando
considerablemente la productividad del programa reduciendo el tiempo de depuración y
48
mantenimiento del mismo.
Esta programación estructurada utiliza un número limitado de estructuras de control, reduciendo así
considerablemente los errores (Alvarez, 2006).
Esta técnica incorpora:

Diseño descendente: El problema se descompone en etapas o estructuras jerárquicas.

Recursividad abstracta: Consiste en descomponer las acciones complejas en otras más simples
capaces de ser resueltas con mayor facilidad.

Estructuras básicas: Existen tres tipos de estructuras básicas:
o
Estructuras secuénciales: En donde cada acción sigue a otra acción secuencialmente. La salida de
una acción es la entrada de otra.
o
Estructuras selectivas: En estas estructuras se evalúan las condiciones y en función del resultado de
las mismas se realizan unas acciones u otras. Se utilizan expresiones lógicas.
o
Estructuras repetitivas: son secuencias de instrucciones que se repiten un número determinado de
veces.
Las principales ventajas de la programación estructurada son:

Los programas son más fáciles de entender

Se reduce la complejidad de las pruebas

Aumenta la productividad del programador

Los programas quedan mejor documentados internamente.
Debido a lo anteriormente señalado, se ha elegido este tipo de programación y ha facilitado
notablemente el desarrollo de cada uno de los módulos que componen el aplicativo, y además se ha
separado con eficiencia la capa de mensajería de interfaz gráfica, así como el modulo que maneja la
memoria del dispositivo
4.1 TCP – IP
La comunicación mediante el protocolo TCP/IP se realiza a través de la red Ethernet de intranet o
internet que posea la infraestructura del sitio donde se ubique el datafono.
Es el método de comunicación más rápido y efectivo que se utiliza en los datafonos, esto debido a que
el medio de trasmisión no es compartido y puede ser utilizado todo el ancho de banda del mismo para
el establecimiento de la comunicación y la transferencia de información.
49
Ventajas
 El protocolo a implementar se define entre el cliente y el servidor, con esto se aprovecha al
máximo el ancho de banda.
 La implementación de protocolo SSL brinda un nivel de encripción de datos óptimo.
 La reanudación de descargas interrumpidas es definida entre cliente y servidor.
Desventajas
 La definición de protocolo y funcionalidad completa implica un desarrollo estructural
avanzado que contemple todos los escenarios presentes en un sistema de comunicación.
La idea es utilizar este protocolo ya que posee un nivel de seguridad confiable con adiciones de
protocolos criptográficos sobre el mismo, además de ser un protocolo orientado a conexión, lo cual
indica que se implementara con conexión por demanda y sacara el máximo provecho del sistema
GPRS.
En la ilustración 12 se observa un esquema simple de la comunicación que se lleva a cabo en este
punto.
ILUSTRACIÓN 12: ESQUEMA TCP
4.2 GPRS
Es necesario seguir una serie de pasos en el datafono para configurar la conexión GPRS, una vez se
configura el modem GPRS del datafono con los parámetros correspondientes al proveedor de
servicios, se establece la comunicación entre el datafono y el operador de telefonía. Esta
comunicación se realiza mediante protocolo PPP; Sin embargo, la comunicación entre el operador de
telefonía y el servidor externo se realizara mediante protocolo TCP/IP.
50
Para transmitir datos mediante GPRS se deben tener en cuenta los parámetros de comunicación del
servidor externo, estos parámetros son:
a. Dirección Lógica (IP).
b. Puerto TCP de escucha.
La conexión del datafono hasta el servidor externo presenta los siguientes pasos que deben
desarrollarse al momento de enviar datos a través de la red:
1.
2.
3.
4.
5.
6.
Establecimiento de la conexión PPP.
Autenticación con el proveedor de telefonía y datos de navegación móvil.
Apertura del socket de comunicación TCP.
Envío de datos en PPP.
Liberación de recursos lógicos y físicos del proceso de comunicación TCP.
Liberación de los recursos utilizados por la conexión PPP.
Los parámetros de configuración del datafono son los siguientes:
FRECUENCIA MODEM
Modem 850/1900
Desea cambiar de bandas?
SI = ENTER
NO = CLR
Cambio de banda dependiendo del operador
ILUSTRACIÓN 13: CONFIGURACÍON BANDAS
El APN (Access Point Name) se configure de manera manual o se elige alguno por defecto
dependiendo el operador. Igualmente se establece usuario y contraseña si posee.
ILUSTRACIÓN 14: CONFIGURACIÓN APN.
51
APN
IKKLKL
Nuevo Valor:
Especificación APN manualmente
ILUSTRACIÓN 15: INGRESAR APN
User:
IKKLKL
Nuevo Valor:
Usuario APN
ILUSTRACIÓN 16: INGRESAR USUARIO SIN APN
Contraseña APN
ILUSTRACIÓN 17: INGRESAR CONTRASEÑA
La Ilustración 18 describe el proceso de negociación y autenticación del Terminal punto de venta
frente a la red de telefonía móvil para el acceso a la transferencia PPP.
52
ILUSTRACIÓN 18: DIAGRAMA DE FLUJO CONEXIÓN GPRS
4.3 Diagrama de flujo del desarrollo completo (Con protocolo de comunicación implícito)
Ilustración 19 siguiente página.
53
54
ILUSTRACIÓN 19: DIAGRAMA DE FLUJO PRINCIPAL
4.4 Diagrama de clases básicas del desarrollo
ILUSTRACIÓN 20: DIAGRAMA DE CLASES
4.5 Diagrama de casos de uso
En el siguiente diagrama se encuentra la descripción escrita del comportamiento del sistema al
afrontar cada una de las tareas que demanda este tipo de negocio. Esta descripción nos muestra 5
actores, el autorizador, el operario de la máquina (Sistema embebido), la banca de apuestas, que es la
central que registra por puntos del territorio las máquinas, el cliente, el cual consume el producto que
se comercializa con la máquina y el C.S.I o servicio de información del cliente, del cual depende la
descarga remota de nuevas versiones del aplicativo generado.
55
ILUSTRACIÓN 21: CASOS DE USO
56
4.6 Transacciones implementadas
A continuación se presentan las transacciones dispuestas y anteriormente mencionadas, las cuales se
encuentran embebidas en las tecnologías y protocolos anteriormente descritos (TCP/IP y GRPS).
Para las siguientes transacciones se tendrán en cuenta las siguientes identificaciones de brindaran
mayor claridad al momento de explicar la construcción de una transacción:

ID Transacción > AZUL ( 2 Bytes en formato ASCII )

Serial Terminal > VERDE ( 8 Bytes en formato ASCII )

Separador> ROJO ( 1 Byte en formato ASCII ),
4.6.1 Login-Inicialización
En ningún proceso se permite el borrado del archivo de memoria por parte del datafono, solo se
recurre a realizar un reciclado de memoria por fechas, lo cual será más ampliamente explicado en
transacciones posteriores.
En primera instancia se contempla una inicialización con la máquina totalmente vacía,
posteriormente se contemplara una actualización de productos con una máquina previamente
inicializada.
Login online
Usuario:
IKKLKL
Clave:
ILUSTRACIÓN 22: LOGIN
TX:
09
|
2a000206
|
0-1
Estado de inicialización: 0 no está inicializado, 1 ya ha inicializado el pos
57
|
1243
Usuario (4 bytes en ASCII)
|
1234
Clave (4 bytes en ASCII)
|
1234
Checksum (4 bytes en ASCII)
El usuario y la clave componen el Login del aplicativo, lo que quiere decir que son las credenciales de
ingreso que mantendrá la máquina como respuesta del servidor para realizar transacciones de ahora
en adelante.
Ejemplo:
09|2A000665|1234|1234|1234.
Existen 2 posibles respuestas validas a este tipo de petición o envío.

Respuesta a una solicitud errada:
RX:
09
|
1-2 transacción errónea (1 byte)
|
Separador
02 cantidad errores (2 bytes)
@
01 línea de error (2 bytes)-cuando es genérico va en ceros-(inicia en uno)
|
Cadena de texto que describe el error.
Ejemplo:
09|1|01@00|error en checksum
09|2|02@01|msj1@03|msj2

Respuesta a una solicitud exitosa:
58
RX:
09
|
0
El cero indica que la respuesta fue exitosa, que no hay errores en el envío.
|
201112271300
Fecha y hora para sincronización del POS (14 bytes)
|
S
Este parámetro indica si el aplicativo funcionará offline, S=Si.
@
<o>
Carácter que indica inicialización (1 byte).
80
Bitmap de tablas (1 byte), indica las tablas que se van a cargar al POS.
01
id tabla (1byte-BDC)
00xx
longitud del dato del registro (2 bytes-BCD)
01
registro (1bytes-BCD)-inicia siempre en uno
Data
longitud variable.
Se puede presentar el caso de no inicializar, para este caso se compara el carácter que sigue a la @
Si es:


< Este carácter indica que no viene inicialización.
> Con este carácter se indica que a continuación viene inicialización completa.
Seguido a ese carácter se envía un bitmap de tablas el cual indica cual tabla debe ser formateada en el
POS, este bitmap es un único byte por tanto se limita la cantidad de tablas a 8.
El bitmap de tablas se construye de la siguiente manera: El bit más significativo representa el id de
tabla 01 el bit siguiente es el id 02 y así sucesivamente para los distintos id de cada tabla.
Tabla ventas ID 01
Campo
Longitud
Formato
Id lotería
1
BCD
Nombre lotería
20
ASCII
abreviatura
4
ASCII
59
Fecha-hora sorteo
14
ASCII
Tipo venta
2
ASCII
Juegos disponibles
30(variable)
BCD
TABLA 4: CABECERA DE VENTAS
Nota: Esta tabla relaciona tanto loterías como operadores de recarga cuando sea un servicio de
recarga solo puede venir un juego habilitado.
Ejemplo con la inicialización de una lotería:
01 >Id tabla
00 45 >Longitud del registro
01 >Numero de Registro de la tabla
01 > Id Lotería
4e 41 43 2e 20 54 41 52 44 45 20 20 20 20 20 20 20 20 20 20 > Nombre Lotería
4c 4f 4e 54 > Abreviatura Lotería
32 30 31 35 30 37 32 31 31 33 35 34 30 30 > Fecha Sorteo
30 31 > Tipo de venta (01 Lotería, 02 Recargas)
01 02 03 15 > Juegos habilitados por ID
Después de inicializar cada una de las loterías, se inicializan los juegos, los cuales se identifican con
un ID que identifica cada uno de estos:
Tabla juegos ID 02
Campo
Longitud
Formato
Id juego
1
BCD
Nombre juego
5(máximo para
impresión-pantalla)
ASCII
Longitud de apuesta
1
BCD
Prioridad juegos
1
BCD
Buscar Lotería
1
BCD
Monto Mínimo
3
ASCII
Monto Máximo
7
ASCII
Limite Numero
7
ASCII
TABLA 5: TABLA DE JUEGOS
60
Ejemplo con la inicialización de los juegos:
02 > Id tabla
00 27 > Longitud del registro
01 > Número de registro de la tabla
01 > Id Juego
51 55 49 4e 4e > Nombre Juego
02 > Longitud Apuesta o cantidad de números necesarios para activar el juego
01 > Prioridad del juego, el juego puede ser de prioridad 2 y jugarse con 2 loterías a la vez.
01 > Buscar Lotería, el cual se utiliza para poder elegir el tipo de lotería cuando la prioridad es 2.
30 30 31 > Monto mínimo para el juego.
30 30 30 30 35 30 30 > Monto máximo para el juego.
30 30 31 30 30 30 30 > Limite número, o cantidad de veces que se puede jugar el juego diario.
Nota:
1. Se adicionan campos de longitud para asignar dinámicamente el juego con su respectiva
longitud.
Se asigna id de prioridad para los juegos con el mismo número de longitud, nunca se va a repetir la
prioridad más alta– este oscila entre 1 - 2. Se debe ajustar la grilla para visualizar 5 caracteres al
igual que se debe ajustar el ticket.
Tabla ticket ID 03
Campo
Longitud
tipo
Texto
48(variable)
ASCII
TABLA 6: TABLA DE PIE DE TIQUETES
Nota:
Para esta tabla los registros son así:
01 siempre titulo
02 siempre dirección
De 03 en adelante es el pie de página del ticket
61
Ejemplo con la inicialización del texto de los tiquetes:
03 > Id Tabla
00 20 > Longitud de los datos de la tabla
01 > Numero de registro de la tabla
42 61 6e 63 61 73 20 49 6e 66 61 6e 74 65 20 41 62 72 65 75 > Texto Titulo
03 > Id Tabla
00 09 > Longitud de los datos de la tabla
02 > Numero de registro de la tabla
53 41 4e 54 49 41 47 4f 2e > Texto de la dirección de la banca de apuestas
03 > Id Tabla
00 18 > Longitud de los datos de la tabla
03 > Registro de pie de página del tiquete
54 65 6c 20 3a 20 38 30 39 2d 30 30 30 2d 30 30 30 31 >Texto de pie de página
Tabla productos ID 04
Campo
Longitud
Formato
Nombre
19
ASCII
Id venta
2
ASCII
TABLA 7: TABLA DE PRODUCTOS
Nota:
Se asegura que el id 01 corresponde a loterías y el id 02 a recargas, a medida que se adicionen
productos se agregaran los id fijos de 03 en adelante.
Ejemplo con la inicialización de los tipos de producto:
04 > Id Tabla
00 21 > Longitud datos
01 > Número del registro de la tabla
4c 4f 54 45 52 49 41 20 20 20 20 20 20 20 20 20 20 20 20 > Nombre producto
30 31 > Id del tipo de producto
04 > Id Tabla
00 21 > Longitud de datos de la tabla
02 > Número del registro de la tabla.
52 45 43 41 52 47 41 53 20 20 20 20 20 20 20 20 20 20 20 30 32 > Nombre producto
62
04 > Id tabla
00 21 > Longitud datos
03 > Número del registro de la tabla
56 45 4e 54 41 53 20 20 20 20 20 20 20 20 20 20 20 20 20 30 33 > Nombre Producto
Cada uno de los tipos de tablas y los registros hacen que el desarrollo del aplicativo a nivel de código
sea mucho más sencillo y eficiente debido a que se utiliza la porción de memoria necesaria porque se
envían las longitudes de los registros. Si en momento determinado se necesitan implementar más
tablas, debido a esta dinámica se hará muy sencillo por que a nivel de código diseñó con la lógica más
básica en la cual se señala cada tabla por casos o 'case'.
ILUSTRACIÓN 23: MENU PRINCIPAL
Las siguientes transacciones han sido construidas con una mensajería completamente en
formato ASCII, ya que para el servidor es mucho más sencillo interpretar mensajería en dicho
formato, aunque este tipo de mensajería consuma un mayor número de datos, la interpretación
por parte del servidor está garantizada al ser formato ASCII.
4.6.2 Transacción de venta
Antes de explicar este módulo, se debe mencionar que este desarrollo cuenta con un sistema de venta
offline, el cual entra en funcionamiento cuando la conexión a la red es problemática.
Este tipo de problemas son muy frecuentes en República Dominicana debido a la fragilidad en la
infraestructura de comunicaciones móviles en dicho país.
Este sistema es capaz de vender fuera línea y generar un lote completo de ventas para sincronizar con
el servidor. Aunque este tipo de procedimiento no es muy confiable, se ha diseñado una lógica que no
permite de ninguna manera perder las ventas que se han hecho offline desde el POS.
63
A pedido del cliente se ha solicitado que máximo se guarden 4 días de transacciones sin sincronizar,
ya que de allí en adelante es un tiempo exagerado debido a la lógica que manejan los juegos de azar en
sus sorteos.
Como consecuencia a este módulo de venta offline existe un módulo de sincronización que envía
estas apuestas al servidor el cual será explicado más adelante.
ILUSTRACIÓN 24: MODO OFFLINE
Es necesario tener en cuenta que la estructura de la venta es la misma para offline y online. Solo va a
cambiar el Id de transacción, de igual manera sucederá con la venta de recargas.
Se debe imprimir la lotería en el tiquete de venta tener y se debe tener en cuenta el tema del súper pale
puesto que es un número de 4 dígitos que juega con 2 loterías a la vez (interfaz especial para
seleccionar la lotería con la cual se conjuga el número del súper pale).
Esta trama contiene la siguiente cabecera:
Campo
Longitud
Id transacción
2 Bytes
STAN(Consecutivo transacción)
6 Bytes
Cantidad de apuestas
3 Bytes
Serial Terminal
8 Bytes
Serial Sim Card
20 Bytes (Se rellena con ceros a la izquierda)
Valor en dinero del tiquete
9 Bytes ( Viajan 2 ceros a la derecha como decimales)
Fecha y hora de venta
14 Bytes ( Importante si se hace OFFLINE)
Código generado por el POS
7 Bytes (Solo se usa cuando la venta fue OFFLINE,
normalmente viaja en ceros)
Código de cliente frecuente
5 Bytes
Separador de fin de cabecera
1 Byte @
TABLA 8: CABECERA DE LA VENTA
64
Ejemplo cabecera TX:
00|000003|003|3C039714|00008954871223654878|000013300|20150723171258|0000000|00000@
Después del separador de '@' se envía el detalle de cada venta:
Campo
Longitud
Id del juego
2 Bytes
Id de lotería que contiene el juego
2 Bytes
Total de la apuesta
7 Bytes( Viaja con 2 bytes a la derecha para decimales)
Numero apostado
Variable y depende del tipo de juego
TABLA 9: DETALLE DE LA VENTA
En caso de existir más de un juego en el detalle, estos se separan por @, el último juego no termina
con @.
Ejemplo del detalle de la venta:
04|03|0005600|14@05|03|0004500|4587@06|03|0003200|212122
Captura de venta completa con cabecera TX:
00|000003|003|3C039714|21568954871223654878|000013300|20150723171258|0000000|00000@
04|03|0005600|14@05|03|0004500|4587@06|03|0003200|212122
ILUSTRACIÓN 25: GRILLA
65
Existen 2 tipos de recepción, exitosa y declinada. En el caso de recepción declinada:
00 id transacción (2 bytes en ASCII)
01 id transacción (2 bytes en ASCII)
|
Separador
1
Código de respuesta con error
|
Separador
02 cantidad errores (2 bytes)
@ Separador
01 línea de error (2 bytes)-cuando es genérico va en ceros-(inicia en uno)
|
Separador
Texto que describe el tipo de error.
Para la mayor parte de las transacciones se utiliza este tipo de respuesta cuando existe algún
error, por ello estará referenciado en este apartado.
Ejemplo:
09|1|02@01|msj1@03|msj2
Estructura de la respuesta del servidor:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
STAN(Consecutivo de la transacción)
6 Bytes
Código de Autorización
10 Bytes ( Impreso en Código de barras)
Número de tiquete generado por el servidor
7 Bytes
Fecha y hora de la venta
14 Bytes
Fecha y hora del sorteo
8 Bytes
TABLA 10: RESPUESTA DE VENTA
Captura de recepción exitosa RX:
00|0|000001|1234567890|1234567|20111228120000|20111228
66
ILUSTRACIÓN 26: VENTA APUESTA
ILUSTRACIÓN 27: TIQUETE DE VENTA
4.6.3 Transacción de reversión
La reversión se ejecuta siempre y cuando el aplicativo sea 100% ONLINE, en ningún caso existirán
las reversiones fuera de línea. Un reverso se presenta a nivel financiero cuando no se recibe
respuesta alguna en la solicitud de una venta, lo que indica que es probable que el servidor no haya
67
recibido el envío de lo transacción o que existió algún problema de red tanto en el envío como en la
respuesta.
Se envía id de transacción 02 y la trama se envía igual que una venta con cabecera incluida:
Captura de reverso completo con cabecera TX:
02|000003|003|3C039714|21568954871223654878|000013300|20150723171258|0000000|00000@
04|03|0005600|14@05|03|0004500|4587@06|03|0003200|212122
La respuesta de error es exactamente igual a la venta en su formato.
Respuesta con un envío exitoso RX:
02 Id transacción (2 bytes en ASCII)
|
Separador
0
Código de respuesta (1 Byte)
ILUSTRACIÓN 28: REVERSO EXITOSO
4.6.4 Transacción de anulación
La transacción de anulación cuenta con una particularidad de Timeout, la cual el servidor toma de
manera arbitraria. Lo que quiere decir que pasados cierta cantidad de minutos la transacción no se
puede anular.
El Id de la transacción es un 03, este tipo de transacción solo está disponible desde el POS que
imprimió la venta, de lo contrario es rechazada por el servidor.
La anulación se hace digitando el número de verificación del ticket, se compara en el pos y luego se
solicita la información del código de referencia para evitar fraudes.
68
ILUSTRACIÓN 29: CAMPO DE ANULACIÓN
El siguiente es el esquema de envío en la anulación TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Terminal
8 Bytes
Usuario
4 Bytes
Referencia del tiquete a anular
7 Bytes
STAN( Consecutivo de venta )
6 Bytes
Tipo de anulación (1 OFFLINE, 0 ONLINE)
1 Byte
Total de offline ( Por si el tiquete fue sincronizado)
12 Bytes
Fecha y hora de anulación
14 Bytes
TABLA 11: ENVÍO DE ANULACIÓN
Captura de anulación TX:
03|3C039714|4321|1300530|000004|0|000000000000|20150724125809
Tipo anulación:
0 ONLINE
1 OFFLINE
Respuesta Exitosa de una anulación RX:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Total del tiquete anulado
9 Bytes
Fecha y hora de anulación
14 Bytes
TABLA 12: RESPUESTA DE ANULACIÓN
69
Ejemplo RX:
03|0 | 001000000 |20111228120000
4.6.5 Transacción de Batch Upload
En términos financieros un Batch se produce en el momento en que el autorizador de transacciones
en una de sus consultas registra un total de dinero en las transacciones diferente al POS. En ese
momento el POS debe enviar todo el lote de transacciones que tenga en su memoria al autorizador
para que contrasten los totales y no se pierda dinero.
Este tema se ejecuta también si en el cierre de sesión, la cantidad de ventas difiere como
consecuencia de las ventas offline, en este caso se sugiere al POS realizar sincronización manual
la cual será explicada posteriormente a nivel transaccional.
Transacción de envío TX:
Se envía id de transacción 05 y tiene el mismo formato de una transacción de venta.
La respuesta de error es exactamente igual a la venta en su formato.
Respuesta exitosa RX:
05 Id transacción (2 bytes en ASCII)
|
0
Código de Respuesta (1 byte)
4.6.6 Transacción de lista de números
Es una transacción bastante específica y muy importante, ya que nos detalla los registros de cada
lotería, incluyendo dinero y números de cada transacción. Particularmente esta transacción además
de retornar los registros específicos de cada lotería, permite también la impresión de los números
que se han jugado con dichas loterías en la parte posterior de estos datos, estos datos son impresos y
tomados desde la máquina. Después de la respuesta de la transacción se comparan los resultados
respondidos por el servidor y los computados por la máquina, de existir alguna diferencia se debe
enviar un Batch.
70
ILUSTRACIÓN 30: MENU CONSULTAS
Formato de envió de la transacción:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha inicial del reporte
14 Bytes
Fecha final del reporte
14 Bytes
TABLA 13: ENVÍO DE BATCH
Captura de envió de la transacción TX:
14|3C039714|4321 |20150724000000|20150724235959
Formato de respuesta Cabecera:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Cantidad de loterías que registran ventas
3 Bytes
Total de ventas
12 Bytes
Total de pagos hechos
12 Bytes
Porcentajes a los vendedores
12 Bytes
Total de recibido por el POS
12 Bytes
TABLA 14: CABECERA LISTA NÚMEROS
71
Captura de respuesta exitosa de la transacción RX cabecera:
14|0 |001|00000005600|00000000000|000000000000|000000005600
Posterior a la cabecera se envía el detalle de la transacción, es decir la información por lotería
separado por un @ el cual separa el detalle de la transacción, y varía dependiendo de la cantidad de
loterías que se presenten en el reporte, cada lotería va separada con un @.
Formato del detalle de la transacción:
Campo
Longitud
Id Lotería
2 Bytes
Números ganadores
15 Bytes
Total de ventas
12 Bytes
Total Pagos
12 Bytes
Porcentajes a los vendedores
12 Bytes
Total de recibido por este tipo de lotería
12 Bytes
TABLA 15: DETALLE DE RESPUESTA LISTA NÚMEROS
Captura de respuesta exitosa RX:
01 | ****** |000000005600|000000000000|000000000000|000000005600
ILUSTRACIÓN 31: PARAMETROS DE CONSULTAS
72
ILUSTRACIÓN 32: TIQUETE DE LISTA DE NÚMEROS
La respuesta errónea tiene el mismo formato de las transacciones anteriores, solo cambia el id de la
transacción.
4.6.7 Transacción de consulta de ventas
Lo más importante en este tipo de transacción antes de realizar la recepción es tener en cuenta el
rango de fechas en el cual se va a realizar la consulta. Esta transacción especialmente debe tener
fecha inicial de consulta y fecha final de consulta. Se debe enviar un total de ventas online y offline
por separado.
73
En la consulta debe enviar el total offline con el fin de saber si es necesario sincronizar, así mismo
se va a verificar que los totales online entre el servidor y el POS coincidan. En la respuesta del
servidor el campo de diferencia es la cantidad de dinero que le falta al POS por sincronizar,
generalmente antes de que viaje esta transacción, se realiza una consulta de lista números, lo cual es
solicitado por el servidor para obtener un resultado más exacto del reporte.
Este reporte es muy general y se debe imprimir en pantalla y en papel.
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha inicial del reporte
14 Bytes
Fecha final del reporte
14 Bytes
Total de venta ONLINE
9 Bytes
Total de venta OFFLINE
9 Bytes
TABLA 16: ENVÍO DE CONSULTA
Captura del envío TX:
06|2a000208|1234|20111228180000|20111228180000|001000000|000500000
Si el online no coincide se hace Batch en el rango de fechas especificado.
El error se va a validar por el siguiente número que llega al id de transacción: Si en el código de
respuesta llega en , el aplicativo procede a realizar un Batch, ya que habría diferencia entre los
montos de POS y el servidor, de tratarse del número 2, se seguiría la lógica de las transacciones
anteriores.
Formato de respuesta exitosa RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Total en ventas
12 bytes (con 2 decimales a la derecha)
Total de juegos
2 Bytes
74
Separador de juegos
1 Byte @ Indica de los datos de un juego
Id de juego
2 Bytes
Id de lotería
9 Bytes
Total de venta del juego
12 Bytes ( Con 2 decimales a la derecha)
Separador
1 Byte @ Indica finalización de los datos de un juego
Total entre OFFLINE y Sincronizado
12 Bytes
TABLA 17: RESPUESTA DE CONSULTA
Captura de respuesta completa RX:
06|0 |000000005600|01@ 02|01|000000005600@000000000000
ILUSTRACIÓN 33: PARAMETROS DE REPORTE
ILUSTRACIÓN 34: TIQUETE CONSULTA GENERAL
75
4.6.8 Transacción de pagos
En este módulo se solicita al operador del POS el STAN del ticket y el serial de la máquina donde
se vendió el ticket:
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Referencia del tiquete
7 Bytes
STAN (Consecutivo tiquete)
6 Bytes
Serial Máquina que hizo la venta
8 Bytes
TABLA 18: ENVÍO DE PAGOS
Envío del POS TX:
07|2a000203|1234|1234567|123456|2a000123
Recepción exitosa RX:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Hora y fecha del pago
14 Bytes
Número de verificación
10 Bytes
Total de premio
9 Bytes
TABLA 19: RESPUESTA DE PAGOS
Captura de respuesta RX:
07|0 |20111229130000|1234567890|009000000
Cuando se concrete el pago se debe realizar una impresión de un tiquete certificando el pago.
La respuesta de error es igual a la respuesta de la venta.
76
4.6.9 Transacción de consulta de tiquetes
Este módulo se ejecuta antes de realizar el pago del tiquete, se pueden hacer consultas desde
cualquier terminal, si el tiquete era ganador se ingresa al módulo de pago de tiquete.
ILUSTRACIÓN 35: CONSULTA DE TIQUETES
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Número de tiquete
7 Bytes
Referencia del tiquete
10 Bytes
TABLA 20: ENVÍO CONSULTA TIQUETES
Captura de Envío POS TX:
08|2a001234 |1234|1234567|2333336666
Captura de respuesta exitosa (RX):
08
Id transacción
|
0
Código de respuesta exitoso
|
123456700
Premio (9 bytes) dos decimales, nunca puede ser cero el total del premio.
La recepción en error es similar a las demás transacciones, solo cambia el Id.
77
4.6.10 Transacción de cierre de ventas
En la transacción de cierre lo más importante es enviar las fechas de inicio del login y del momento
en que se envía la misma transacción, es decir la fecha final. Nuevamente al igual que en las
consultas se envía el total online y el total offline de todas las ventas realizadas para realizar una
posterior sincronización en caso de ser necesario. El momento del cierre marca los lotes de ventas
en el servidor y los clasifica por fechas y usuarios.
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha en la cual se hizo inicialización
14 Bytes
Fecha actual
14 Bytes
Total de ventas ONLINE
9 Bytes
Total de ventas OFFLINE
9 Bytes
TABLA 21: ENVÍO DE CIERRE
Captura de envío de la transacción TX:
10|2a012345 |1234|20111229080000|20111230040500|002000000|000100000
Formato de respuesta exitosa RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Total en ventas
12 bytes (con 2 decimales a la derecha)
Total de juegos
2 Bytes
Separador de juegos
1 Byte @ Indica de los datos de un juego
Id de juego
2 Bytes
Id de lotería
9 Bytes
Total de venta del juego
12 Bytes ( Con 2 decimales a la derecha)
Separador
1 Byte @ Indica que viene el total entre OFFLINE Y
Sincronizado
Total entre OFFLINE y Sincronizado
12 Bytes
TABLA 22: RESPUESTA DEL CIERRE
78
Captura de respuesta Exitosa RX:
10|0|000000007900|02@02|01|000000005600@04|03|000000002300@000100000000
En este tipo de transacción el error puede apuntar a un Batch si los totales no coinciden
En otro caso el formato de respuesta con solicitud errónea será la misma de las anteriores
transacciones.
ILUSTRACIÓN 36: PANTALLA DE CIERRE
4.6.11 Transacción de Reporte Parcial
El reporte parcial nos indica la cantidad de ventas que se ha hecho hasta el momento, este tipo de
reporte es permitido realizar por loterías para ser mucho más preciso.
ELIJA LOTERIA
1.
2.
3.
4.
5.
NAC. TARDE
NAC. NOCHE
LEID.
NOCHE
IKKLKL
REAL TARDE
LTKA TARDE
ILUSTRACIÓN 37: SELECCIONAR LOTERIA EN REPORTE PARCIAL
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha en la cual se hizo inicialización
14 Bytes
79
Fecha final del reporte
14 Bytes
Id de lotería a consultar
2 Bytes
TABLA 23: REPORTE PARCIAL ENVÍO
Captura del envío TX:
11|3C039714|4321|20150724000000|20150724235959|01
Formato de respuesta exitosa RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Total en ventas
12 Bytes (con 2 decimales a la derecha)
Total en pagos
12 Bytes (con 2 decimales a la derecha)
Tiquetes pagos en la lotería
4 Bytes
Diferencia entre ventas y pagos
12 Bytes
Titulo de la lotería consultada
31 Bytes, se justifica con espacios a la derecha
Nombre de la banca que distribuye la lotería
9 bytes, se justifica con espacios a la derecha
TABLA 24: RESPUESTA REPORTE PARCIAL
Captura de Respuesta RX:
11|0|000000000000|000000000000|0000|000000000000|Nac. Tarde
|Banca #00
El error en respuesta maneja el mismo formato de las anteriores transacciones.
ILUSTRACIÓN 38: TIQUETE DE REPORTE PARCIAL
80
4.6.12 Transacción de consulta de tiquetes ganadores
La consulta de tiquetes ganadores responde en una sola transacción la cantidad de tiquetes
ganadores por lotería y los pagos que se han realizado de los mismos, al igual que todas las
consultas del proyecto, es necesario imprimir un tiquete con todos estos datos.
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha inicial de la consulta
14 Bytes
Fecha final del reporte
14 Bytes
TABLA 25: CONSULTA DE TIQUETES GANADORES
Captura de solicitud TX:
15 |3C039714|4321|20150724000000|20150724235959
La respuesta se divide en cabecera y detalles de la transacción:
Formato de respuesta cabecera RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Cantidad de loterías en la respuesta
3 Bytes
Total en ventas
12 Bytes (con 2 decimales a la derecha)
Total en pagos
12 Bytes (con 2 decimales a la derecha)
Porcentajes a los vendedores
12 Bytes (con 2 decimales a la derecha)
Total recibido después de descuentos
12 Bytes (con 2 decimales a la derecha)
Cantidad de tiquetes ganadores
3 Bytes
TABLA 26: RESPUESTA TIQUETES GANADORES
Formato de respuesta detalle RX:
Después de la cantidad de tiquetes ganadores se separa con un @ las loterías que vienen en la
respuesta de la transacción, la cantidad de @ indica la cantidad de loterías, y posterior a ello viene
este formato de envío, el cual se repite según la cantidad de loterías:
81
Campo
Longitud
Id Lotería
2 Bytes
Pagos en números ganadores
15 Bytes
Total en ventas
12 Bytes (con 2 decimales a la derecha)
Total en pagos
12 Bytes (con 2 decimales a la derecha)
Porcentajes a los vendedores
12 Bytes (con 2 decimales a la derecha)
Cantidad de números ganadores
3 Bytes
TABLA 27: DETALLE DE RESPUESTA TIQUETES GANADORES
Si en la cantidad de números ganadores existe un valor mayor a cero se debe imprimir en el tiquete
la data con los números ganadores y el detalle que conlleva cada número ganador, la cantidad de
bytes máxima por lotería para números ganadores y detalles de cada número esta en 32 bytes, de
pasar este límite se corta la data proveniente del servidor y se muestra solo lo que el POS logró
almacenar sin proceder a un desborde.
Captura de respuesta RX:
15 |0|001|000000005600|000000000000|000000000000|000000005600|000 @ 01|******
|
000000005600|000000000000|000000000000|000000005600|000
ILUSTRACIÓN 39: REPORTE DE TIQUETES GANADORES
82
4.6.13 Transacción de consulta de cierre por fecha
Este tipo de consulta se realiza a manera general y retorna todos los valores correspondientes a cada
una de las loterías relacionadas con las fechas que se envían en la previa solicitud.
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha inicial de la consulta
14 Bytes
Fecha final del reporte
14 Bytes
TABLA 28: ENVÍO DE CIERRE POR FECHA
Captura del envío TX:
13 |3C039714 |4321 |20150724000000 |20150724235959
Formato de respuesta RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Cantidad de fechas consultadas
3 Bytes, indica la cantidad de separadores @
Nombre de la banca
31 Bytes
Fecha del reporte
14 Bytes
Total de las ventas
12 Bytes ( Con 2 decimales a la derecha)
Total de los pagos
12 Bytes ( Con 2 decimales a la derecha)
Total de comisiones de venta
12 Bytes ( Con 2 decimales a la derecha)
Beneficio pérdida
12 Bytes ( Con 2 decimales a la derecha)
Total Recibido
12 Bytes ( Con 2 decimales a la derecha)
Separador (Separa los reportes por fechas)
1 Byte @
Fecha del reporte especifica
8 Bytes
Total venta una fecha
12 Bytes ( Con 2 decimales a la derecha)
Total pagos una fecha
12 Bytes ( Con 2 decimales a la derecha)
TABLA 29: RESPUESTA DE CIERRE POR FECHA
83
Captura de respuesta de una transacción completa RX:
13|0|001|3C039714|20150724172512|000000005600|000000000000|000000000000|000000005600|
000000005600@20150724 |000000005600|000000000000
El error en respuesta maneja el mismo formato de las anteriores transacciones.
ILUSTRACIÓN 40: REPORTE DE CIERRE POR FECHA
4.6.14 Transacción de sincronización
Este tipo de transacción es clave en todo el desarrollo, ya que permite la interactividad entre el
modulo offline y el servidor, por medio de esta transacción se sincronizan todas las apuestas que se
hacen offline, lo que permite legalizar todas las transacciones en el servidor.
La cabecera y datos de la transacción son los mismo de la transacción de ventas, lo único que
cambia es el id de la transacción, la cual se marca con un 01 cuando es offline, lo cual indica que los
datos son de una sincronización. Todos los datos viajan en formato ASCII al igual que en la mayoría
de las transacciones.
84
Formato de envío cabecera TX:
Campo
Longitud
Id transacción
2 Bytes
STAN(Consecutivo transacción)
6 Bytes
Cantidad de apuestas
3 Bytes
Serial Terminal
8 Bytes
Serial Sim Card
20 Bytes (Se rellena con ceros a la izquierda)
Valor en dinero del tiquete
9 Bytes ( Viajan 2 ceros a la derecha como decimales)
Fecha y hora de venta
14 Bytes ( Importante si se hace OFFLINE)
Código generado por el POS
7 Bytes (Solo se usa cuando la venta fue OFFLINE,
normalmente viaja en ceros)
Código de cliente frecuente
5 Bytes
Separador de fin de cabecera
1 Byte @
TABLA 30: ENVÍO DE SINCRONIZACIÓN
Formato de envío detalle de la transacción TX:
Después del separador de '@' se envía el detalle de cada venta:
Campo
Longitud
Id del juego
2 Bytes
Id de lotería que contiene el juego
2 Bytes
Total de la apuesta
7 Bytes( Viaja con 2 bytes a la derecha para decimales)
Numero apostado
Variable y depende del tipo de juego
TABLA 31: DETALLE DEL ENVÍO EN SINCRONIZACIÓN
En caso de existir más de un juego en el detalle, estos se separan por @, el último juego no termina
con @.
Captura de Envío TX:
01|000009|001|3C039714|88994994900303042049|000002300|20150724163040|0975202|00000
@04 |03|0002300|12
85
Formato de respuesta exitosa RX:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
STAN(Consecutivo de la transacción)
6 Bytes
Código de Autorización
10 Bytes ( Impreso en Código de barras)
Número de tiquete generado por el servidor
7 Bytes
Fecha y hora de la venta
14 Bytes
Fecha y hora del sorteo
8 Bytes
TABLA 32: RESPUESTA DE SINCRONIZACIÓN
Captura de respuesta exitosa RX:
01|0|000004|9507704045|0349679|20150729182944|20150729
El error en respuesta maneja el mismo formato de las anteriores transacciones.
ILUSTRACIÓN 41: PANTALLA DE SINCRONIZACIÓN
Es importante saber que en este tipo de transacción la única que recibe respuesta es la primera
solicitud, lo que indica que al existir más de 1 transacción offline por sincronizar, solo se hace el
envío y el servidor no responderá, debido al tiempo que se toma una sola transacción en sincronizar,
la cual en óptimas condiciones toma alrededor de 6 segundos. Al multiplicar este valor por al menos
10 transacciones nos toma 1 minuto, tiempo el cual es bastante elevado teniendo en cuenta el nivel
de ventas registrado en República Dominicana.
Con respecto a lo anterior se ha desarrollado una sola transacción que recibe el nombre de consulta
de sincronización y su formato es el siguiente:
86
Formato de envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Fecha de las ventas a consultar
8 Bytes
Cantidad de transacciones a consultar
4 Bytes
Número de tiquete a consultar
7 Bytes
TABLA 33: ENVÍO CONSULTA SINCRONIZACIÓN
El ultimo parámetro de esta transacción se multiplica dependiendo de la cantidad de
transacciones a consultar, e igualmente se separan estos números por un |.
Captura de envío TX:
17|3C039714|20150729|0004|0349679|1565655|0349679|1565655
Formato de respuesta RX:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Cantidad de transacciones consultadas
4 Bytes
Indica si la transacción fue sincronizada
1 Byte (N no, S sí)
TABLA 34: RESPUESTA CONSULTA SINCRONIZACION
Captura de respuesta RX:
17|0|0004|SSSS
4.6.15 Transacción de Informe al final del sorteo
El informe al final del sorteo también se realiza por loterías, nos retorna cada uno de los valores del
sorteo e indica específicamente los dineros que han sido debitados por ítem teniendo en cuenta
cantidad de ganadores.
87
Formato del envío TX:
Campo
Longitud
Id transacción
2 Bytes
Serial Máquina
8 Bytes
Usuario
4 Bytes
Fecha inicial de la consulta
14 Bytes
Fecha final del reporte
14 Bytes
Id lotería a consultar
2 Bytes
TABLA 35: INFORME AL FINAL DEL SORTEO TX
Captura de envío TX:
12|3C039714|4321|20150724000000|20150724235959|01
Formato de respuesta RX:
Campo
Longitud
Id transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
Nombre de la banca
Variable con un máximo de 31 Bytes
Fecha del reporte
14 Bytes
Nombre de la lotería del sorteo
Variable con un máximo de 31 Bytes
Números ganadores
Variable con un máximo de 15 Bytes
Tiquetes vendidos
7 Bytes con 2 ceros a la derecha para formato
Tiquetes ganadores
7 Bytes con 2 ceros a la derecha para formato
Total de venta
12 Bytes ( Con 2 decimales a la derecha)
Total de comisión
12 Bytes ( Con 2 decimales a la derecha)
Pagos realizados en el sorteo
12 Bytes ( Con 2 decimales a la derecha)
Dinero a recibir, lo que le debe devolver el vendedor
12 Bytes ( Con 2 decimales a la derecha)
Monto total de los tiquetes
12 Bytes ( Con 2 decimales a la derecha)
Deposito
12 Bytes ( Con 2 decimales a la derecha)
Total de ventas de terminales de la banca
12 Bytes ( Con 2 decimales a la derecha)
TABLA 36: RESPUESTA DEL INFORME AL FINAL DEL SORTEO
88
Captura de una respuesta exitosa RX:
12|0|Banca#00|20150730103738|Nac.Noche|12-45-88|0000300|0000300|000000015600|000000000
000|000006000000|-00005984400|000006000000|000000015600|000000015600
ILUSTRACIÓN 42: TIQUETE DEL INFORME AL FINAL DEL SORTEO
4.6.16 Recargas
Las recargas son una variación de un tipo de venta, por lo que eventualmente se utiliza el mismo
mapeo transaccional de una venta tanto para envío como para recepción, lo que se hace es cambiar la
utilización de los campos.
ILUSTRACIÓN 43: PARAMETRO DE RECARGAS
89
Esta trama contiene la siguiente cabecera:
Campo
Longitud
Id transacción "00" siempre venta online para recarga
2 Bytes
STAN(Consecutivo transacción)
6 Bytes
Cantidad de recargas(Siempre viaja 001)
3 Bytes
Serial Terminal
8 Bytes
Serial Sim Card
20 Bytes (Se rellena con ceros a la izquierda)
Valor en dinero de la recarga
9 Bytes ( Viajan 2 ceros a la derecha como
decimales)
Fecha y hora de venta
14 Bytes ( Importante si se hace OFFLINE)
Código generado por el POS
7 Bytes (Solo se usa cuando la venta fue OFFLINE,
normalmente viaja en ceros)
Código de cliente frecuente
5 Bytes
Separador de fin de cabecera
1 Byte @
TABLA 37: ENVÍO DE RECARGAS
Captura cabecera TX:
00|000017|001|3C039714|00008954871223654878|000002500|20150804184538|0000000|00000@
Después del separador de '@' se envía el detalle de cada venta:
Campo
Longitud
Id del operador de la recarga
2 Bytes
Id de juego, para este caso es una recarga
2 Bytes
Total de la recarga
7 Bytes( Viaja con 2 bytes a la derecha para decimales)
Número al que se debe hacer la recarga
Variable y depende de la longitud del teléfono
TABLA 38: DETALLE DEL ENVÍO DE RECARGAS
Captura del detalle de la venta:
28|06|0005600|3168828757
90
ILUSTRACIÓN 44: CONFIRMACIÓN DE RECARGA
Captura recarga completa con cabecera TX:
00|000017|001|3C039714|00008954871223654878|000002500|20150804184538|0000000|00000@
28|06|0005600|3168828757
Recepción exitosa RX:
Estructura de la respuesta del servidor:
Campo
Longitud
Id Transacción
2 Bytes
Código de Respuesta
1 Byte (0 exitosa, diferente de 0 es error)
STAN(Consecutivo de la transacción)
6 Bytes
Código de Autorización
10 Bytes ( Impreso en Código de barras)
Número de tiquete generado por el servidor
7 Bytes
Fecha y hora de la venta
14 Bytes
Fecha y hora del sorteo
8 Bytes
TABLA 39: RESPUESTA PARA RECARGAS
Captura de recepción exitosa RX:
00|0|000001|1234892974|1234567|20111228120000|20111228
91
ILUSTRACIÓN 45: TIQUETE DE RECARGA
4.7 Mensajería ISO 8583
El estándar para transacciones financieras fue implementado en la mensajería del sistema de descarga
remota. Con esto se contempla el manejo de datos sensibles y de estructuración de un protocolo a
partir de un estándar ISO.
El tiempo de desarrollo se minimiza implementando este protocolo debido a que los datafonos se
comunican con todos los sistemas de autorización (Host) utilizando este tipo de estándar. Con este
protocolo se toma la base de esta mensajería y se definen los detalles propios del sistema de descarga
y actualización.
ILUSTRACIÓN 46: MENSAJERIA DE DESCARGA REMOTA TX
92
En la Ilustración 46 se visualiza la trama ISO 8583 que envía la terminal hacia el servidor. En el
campo encerrado en color azul se muestra el terminal id, su función es identificar el dispositivo en el
servidor. El campo encerrado en color amarillo está el nombre del archivo el cual es validado en el
servidor. En el campo encerrado en color verde envía el paquete requerido, en este caso es el paquete
número 1 del archivo a descargar. Finalmente en el campo de color rojo aparece el tamaño máximo
del paquete solicitado por el usuario.
ILUSTRACIÓN 47: MENSAJERIA DE DESCARGA REMOTA RX
La recepción del paquete presenta el formato de la Ilustración 47, donde se visualiza en el campo
encerrado de color azul el terminal id (identificación del dispositivo), en el campo de color rojo
muestra el progreso de la descarga en este caso es de 1 de 125 paquetes.
El número de terminal es el campo clave en la detección del dispositivo correcto, además, el campo
que contiene el nombre de la aplicación proporciona el dato correcto de la aplicación que debe tener
instalado ese dispositivo.
El sumario de los campos privados definidos para envió y recepción de mensajería en formato ISO
8583 se describe en la siguiente tabla.
Tabla
Mensaje
A1
Paquete Solicitado
A2
Tamaño Máximo del paquete
93
A3
Progreso de la Descarga
!S
Nombre del archivo a descargar
K2
Paquete Descargado
41
Terminal ID
TABLA 40: TAGS CAMPO PRIVADO
5. RESULTADOS
5.1 Posibles Fallas o Causas de error









Perdida de los datos descargados dentro del datafono debido a perdida de alimentación,
reinicio inesperado o falla de comunicación.
Recepción errónea de la información.
Envío inadecuado de la información por parte del servidor.
Exceder la cantidad de datos que se pueden enviar a la impresora térmica.
Interrupción de procesos por duración de la batería.
Exceder los campos de respuesta en las consultas y los reportes.
Validación de ventas offline como total de ventas en el cierre.
Validación en la generación de reversos.
Error en la generación del código de venta del tiquete offline.
5.1.1 Perdida de los datos descargados
5.1.1.1 Pérdida de Alimentación
Los datafonos poseen dos tipos de alimentación dependiendo su uso, si es un dispositivo móvil su
fuente de alimentación principal es una batería de litio, por el contrario si es un dispositivo de
escritorio su alimentación es una fuente de poder externa.
Las baterías de litio se pueden agotar en cualquier momento siempre y cuando el datafono se
encuentre en operación. La fuente de poder está sujeta a desconexión por errores humanos o fallas en
la red de energía eléctrica.
5.1.1.2 Reinicio Inesperado
Los sistemas de comunicaciones poseen estándares y protocolos definidos; sin embargo, existe un
concepto llamado programación defensiva el cual tiene como objetivo garantizar el comportamiento
de todo elemento de una aplicación ante cualquier situación por incorrecta o imprevisible que esta
pueda parecer.
94
El sistema desarrollado tiene un control de excepciones definido el cual cumple con la función de
prevenir procesamiento erróneo de información y de esta manera hacer que el datafono se comporte
de una manera predecible pese a entradas y acciones inesperadas.
5.1.1.3 Falla de Comunicación
La red comunicación está sujeta disponibilidad del servicio y fallas de los equipos físicos, esto
provoca una interrupción del sistema que puede ser permanente o temporal.
5.1.2 Recepción errónea de la información.
La conexión entre dos dispositivos está expuesta a factores externos, ya que en la variedad de medios
ocurren diversos fenómenos que dificultan la adecuada transmisión. Se denomina error a la alteración
del mensaje recibido con respecto al mensaje transmitido.
Debido a algunos defectos en los medios de transmisión, pueden producirse errores en la información
transmitida. La medición de este error se realiza mediante la tasa de error y se expresa mediante la
relación entre el número de bits erróneos recibidos y el número total transmitido. Los errores tienden
a agruparse en ráfagas, en vez de ocurrir de manera aislada, este aspecto es una ventaja ya que facilita
la detección de los errores, de esta manera, afecta a un subconjunto de la información transmitida y es
posible reconstruir este subconjunto a partir del resto.
Al añadir unos bits a los paquetes transmitidos, de forma que identifique los errores cuando se
producen, es la manera como se pretende recibir la información con la menor cantidad de errores, así
poder ser corregida o simplemente detectada. El modo de obtener la redundancia determina el código
de protección frente a errores, hay códigos capaces de corregir n errores independientes de la posición
o solamente errores agrupados en un subconjunto de bits.
Para el sistema desarrollado se implementa el método de comprobación de redundancia cíclica (CRC)
y de retrasmisión de paquetes.
La verificación de información a través del CRC proporciona la posibilidad de validar cada uno de los
paquetes recibidos y descartar paquetes que sufren alteraciones en su trasmisión.
Del desarrollo apropiado de la verificación del dato CRC surge la necesidad de implementar el
método que haga posible la retrasmisión de un paquete con fallas. Este método de retrasmisión
segmenta la información en una cantidad finita de paquetes n, este valor permite solicitar el paquete
exacto que haya sufrido el error durante su trasmisión, con esto se asegura que la información a
almacenar en el dispositivo móvil es la esperada sin lugar a errores durante su verificación.
95
El dispositivo transmisor calcula el CRC añadiéndole al dato el número correcto de ceros. Los datos
se procesan utilizando matemática binaria. En el siguiente diagrama de flujo se muestra el proceso de
cálculo del CRC.
ILUSTRACIÓN 48: CALCULO DEL CRC
5.1.3 Envío inadecuado de la información por parte del servidor
Al existir un envío inadecuado de la información por parte del servidor pueden existir un número
elevado de excepciones no controladas por parte del datafono, sin embargo gracias al diseño del
protocolo de mensajería, es posible realizar mapeos previos de los campos a utilizar en cada
transacción. La posibilidad de existir desbordes de memoria es latente, para ello se ha utilizado un
método de errores controlados que permite por medio programación estructurada validar el tamaño de
la porción de memoria que recibe y la longitud de los datos a recibir. Se realiza una comparación entre
estos 2 datos y se procede a seguir el proceso correspondiente dependiendo si es exitosa o no la
validación.
96
5.1.4 Exceder la cantidad de datos que se pueden enviar a la impresora térmica
Entre las pruebas que se realizaron se observó que la cantidad de datos enviados a la impresora puede
ser muy alto, generalmente cuando se trata de reportes o apuestas con un número considerable de
jugadas. Este caso fue evidente al realizar un reporte de lista de números en rangos de fechas distantes,
para ello se han canalizado por código los procesos que generalmente podrían generar este tipo de
inconveniente. En este sentido se hace un conteo de los datos y se validan para enviar a imprimir lo
que se tiene primero en el buffer y volver a llenar con nuevos datos. Para evitar este inconveniente se
pensó en la posibilidad de enviar a imprimir de inmediato se recibía un carácter a imprimir, pero este
proceso agota la batería porque se debe estar abriendo y cerrando el periférico de salida (Impresora),
además de sobrecalentamiento del mismo, la impresora tiene un máximo de 1kB por impresión.
5.1.5 Interrupción de procesos por duración de la batería
En cuanto a este tipo de error, lo primero que se debe hacer es identificar los procesos más
importantes que realizan el sistema y observar que sucede si se cortan de manera súbita. Es claro que
los procesos más importantes son el envío y la recepción en una transacción además de la impresión
de tiquetes.
En el caso de envío y recepción el POS envía un reverso de la venta si esta no es percibida y procesada,
en cuanto a la impresión de tiquetes, si se corta en la mitad de una impresión, es normal que la venta
no se almacene en memoria, o si el papel se acaba, el tiquete es impreso por completo nuevamente. En
la descarga remota el datafono es capaz de recuperar el paquete de descarga donde estaba y comenzar
la retransmisión con el servidor.
5.1.6 Exceder los campos de respuesta en las consultas y los reportes
Es normal que por las cantidades de datos los campos que hacen la recepción de este tipo de
transacciones puedan ser desbordados, sobre todo si en ocasiones la cantidad de datos a recibir es
variable tal cual lo indica el protocolo desarrollado. Este tipo de sistema embebido no tiene la
facilidad de generar porciones de memoria adicional si viene información extra, para ello con ayuda
nuevamente de una programación defensiva, se ha utilizado la reserva dinámica de memoria que
posee el SDK para tratar esta situación de la manera más eficiente, lo que evita interrupciones en el
funcionamiento del software y mapeo ineficiente de la memoria en el dispositivo, es decir,
desperdicio de memoria.
5.1.7 Validación de ventas offline como total de ventas en el cierre
Al realizar un proceso de cierre es conveniente tener en cuenta que existan ventas offline para
empalmar con el inventario que tiene el receptor de transacciones. Ocasionalmente se observó que se
hacían cierres y se sincronizaban las ventas, sin embargo habían ventas que nunca lograban realizar la
sincronización, se observó que en algunas ocasiones al existir una conexión intermitente y lenta la
transacción era reversada por timeout, pero en el POS el reverso no era marcado con el mismo
97
consecutivo de salida de venta en el POS. Para esto se hizo revisión paso a paso del código con ayuda
de la herramienta de depuración que posee el SDK del POS, observando los valores que tomaba cada
espacio de memoria en este proceso y se corrigió puntualmente.
5.1.8 Validación en la generación de reversos y la sincronización
Los reversos según el entorno bancario deben ser ocasionados siempre que el tipo de transacción
conlleve al descuento o al abono de dineros a cuentas bancarias, en este caso la cuenta bancaria es el
servidor de Pérez Abreu, el cual valida cada una de las ventas que hacen las terminales y a su vez las
contrasta directamente sobre el sistema de cada lotería. Recordemos que tanto las recargas, como la
venta de apuestas, el batch y la sincronización tienen una forma similar en el envío de transacciones.
Las transacciones anteriormente citadas conllevan un reverso sino se percibe respuesta por parte del
servidor, sin embargo por la calidad de la red los reversos se convirtieron en el pan de cada día en
municipios alejados de cabeceras urbanas. Para controlar este tipo de inconvenientes y evitar que el
datafono se quede esperando la respuesta del servidor, se ha optado porque el reverso solo se envíe
siempre y cuando exista una ausencia de las respuestas para la venta de las apuestas, en el caso de las
recargas se habla de un reverso Host to Host, el cual es generado por el servidor de Pérez Abreu y
hace que el proceso del POS no tome vital importancia en este proceso.
Además a lo anterior se suma la cantidad de reversos que se podrían presentar sincronizando un lote
de apuestas offline, por ello también se implementó una transacción que hace consulta de
sincronización, y contrasta cada una de las ventas que se enviaron para sincronización en una sola
transacción sin esperar reverso de un posible timeout al sincronizar.
Los lotes de apuestas se sincronizan venta por venta sin esperar respuesta, solo al final se hace la
transacción de consulta que es de envío y recepción, y se marca en el lote ventas si su estado cambió
en el servidor, evitando a toda costa que las máquinas se queden inhibidas en un proceso de reverso
cuando la conexión es de baja calidad.
Por último se ha optado porque se operen las terminales con APN privado para evitar que las
transacciones viajen por un canal de comunicación público y se registre conexión lenta por la
demanda del mismo, lo que disminuye aún más el porcentaje de reversos presentados en las ventas de
hechas desde el POS.
5.1.9 Error en la generación del código de venta del tiquete offline
Erróneamente se implementó como primera medida marcar los tiquetes offline solo con la fecha
completa de venta, sin embargo se debe tener en cuenta que las ventas son simultaneas y pueden
existir errores de seguridad al jugar el tiquete, ya que se identifica por medio del código de barras su
autenticidad.
98
Para generar el código de barras se utiliza un código de seguridad que viaja en el detalle de la venta,
este código se genera con un algoritmo llamado "generarNumeroTicket" que realiza una serie de
pasos matemáticos que utiliza los siguientes datos a manera de ejemplo:
Serial de la máquina. 3C39714
Fecha de venta: 20150805
Hora de venta: 181615
Dando como resultado de su paso un 5958835437.
Al utilizar la fecha de la venta con la hora, la probabilidad de encontrar códigos similares es mínima,
incluyendo por supuesto el serial de la máquina. En este caso, este algoritmo también es validado y
contrasta con la lógica del servidor para verificar la autenticidad de un tiquete offline.
5.2 Descripción del Sistema de descarga remota
5.2.1 Almacenamiento
Cada paquete recibido es almacenado en un espacio de memoria con el objetivo de no perder
información descargada debido a fallas de comunicación, reinicios, etc. El almacenamiento de la
información permite reanudar el sistema a partir de cualquier punto intermedio si se ha visto
interrumpida.
5.2.2 Descompresión
La información descargada y almacenada debe ser sometida a un proceso de descompresión, el
método compresión y descompresión implementado en el sistema es el utilizado por el programa
7-zip bajo licencia GNU LGPL.
Este método de descompresión fue modificado de su versión original para su correcto funcionamiento
en espacios de memoria limitados como los tienen los datafonos.
Los siguientes son los pasos de configuración del datafono:
99
DESCARGA REMOTA
1.
2.
3.
4.
PARAMETROS DIAL.
NII
PARAMETROS IP.
CANT. DATOS
Se selecciona opción 3 para TCP - IP
.ILUSTRACIÓN 49: CONFIGURACIÓN DESCARGA REMOTA
La interfaz que muestra la configuración de la IP y el puerto del Host para Descarga Remota
de la siguiente manera:
IP INI
0.0.0.0
Nuevo Valor:
IKKLKL
.
.
.
Especificación de la IP servidor externo
ILUSTRACIÓN 50: CONFIGURACIÓN IP
Puerto Remoto 0000
Nuevo Valor:
IKKLKL
Especificación del Puerto servidor externo
ILUSTRACIÓN 51: CONFIGURACIÓN PUERTO
CONFIGURACION APN
1.
2.
3.
4.
CONFIGURACION MANUAL
CLARO
MOVISTAR
TIGO
ILUSTRACIÓN 52: TIPO DE OPERADOR
100
APN
IKKLKL
Nuevo Valor:
Especificación APN manualmente
ILUSTRACIÓN 53:
MANUAL
DE OPERADOR
Ilustración
20INGRESO
Ingresar
APN.
La siguiente tabla recopila los valores de tiempos y porcentajes que disminuyeron a la hora de
descargar la aplicación plana y comprimida.
Archivo
Tiempo
Tiempo descompresión
Tiempo
archivo 7z
archivo 7z
total Relación
del
tiempo en %
archivo 7z
Sin 7z
18:03 minutos
5:33 minutos
23:36 minutos
7z
5: 50 minutos
2:48 minutos
8:38 minutos
Disminuyo en
un 63.41 %
TABLA 41: DATOS PRÁCTICOS DESCARGA GPRS
Lote de
transacciones
offline
Método
sin
Método
con Tipo
implementación
implementación
de
de consulta
consulta
de
de
APN
Condiciones
% de Eficiencia
de cobertura
en
la
implementación
sincronización
30
1:58 Minutos
00:48 Minutos
Publico
Buena
59.43%
10
00:42 Minutos
00:17 Minutos
Publico
Buena
61,05 %
TABLA 42: IMPLEMENTACIÓN CONSULTA SINCRONIZACIÓN
Cantidad de
Máquinas
con
Máquinas
con Tipo de APN
Condiciones
% de Eficiencia
máquinas en
reverso
sin
reverso
con
de cobertura
en
República
método
de
método
de
Dominicana
implementación
implementación
de
de consulta
consulta
de
la
implementación
sincronización
960
288
58
Público
Aceptable
79.17%
TABLA 43: DISMINUCIÓN DEL PROCESO DE REVERSO
101
5.3 Variables del Sistema
El análisis del sistema y los resultados obtenidos se basan en una serie de ítems que indican los datos
en cifras medibles del sistema. Estos ítems se evalúan de 1 a 10 siendo 10 el nivel máximo. De
acuerdo a lo anterior la siguiente tabla muestra los valores otorgados a cada una de las variables del
sistema:
Variable
Puntaje
9
Observaciones
Con la adaptación de un APN privado se registran tiempos de 1,3
segundos por envío, utilizando un APN público se registran tiempos de 5 y
Velocidad de trasmisión
segundos. Notablemente ha mejorado este ítem.
10
La capacidad de la batería de 1800mAh hace que sea suficiente para
trabajar con todos los periféricos que posee el sistema embebido, duración
Duración de la batería
aproximada de 4300 transacciones de venta seguidas con su impresión
respectiva.
8
Los envíos son cortos y no generan un consumo significativo de datos, sin
embargo las respuestas en ocasiones son de una demanda alta de datos,
Consumo de datos por envío
(más de 2K en un solo envío), lo que genera un mayor costo en el consumo
de datos.
7
En Bogotá las pruebas han superado este ítem sin mayor dificultad, debido
a la infraestructura móvil que maneja la capital, sin embargo en lugares
Calidad de la comunicación
aparatados de la capital de Republica Dominicana se han presentado
inconvenientes de cobertura, lo que genera una calificación media de este
ítem.
8
Cantidad
de
Debido a la regular calidad en la comunicación en algunos puntos, se ha
optado por estrategias anteriormente mencionadas para disminuir la
reversos
latencia de los mismos, se ha pasado de un 30% de máquinas inhibidas en
generados
reversos por timeout a un 6% del total de las máquinas encontradas en
república dominicana.
9
Los tiempos han disminuido notablemente mientras existe una conexión
garantizada, el ejemplo puede ser un lote de 30 apuestas que se hace
Mejora en los tiempos de
offline, estas normalmente en buenas condiciones de cobertura toman
sincronización
unos 118 segundos en hacer todo el proceso, con la transacción
desarrollada esto apenas toma 48 segundos, lo que disminuye el tiempo de
transacción a menos de la mitad.
10
Tamaño
del archivo
de
La implementación de métodos de compresión de información optimiza el
rendimiento del sistema.
descarga remota
TABLA 44: VARIABLES DEL SISTEMA
102
Resultado de la valoración de las variables analizadas en el sistema desarrollado:
Total ítems evaluados:
Puntaje máximo:
Puntaje Obtenido:
7
70
61
El porcentaje de rendimiento del proyecto respecto a parámetros ideales es del 87.14%
Este porcentaje es excelente teniendo en cuenta que el parámetro de referencia es el ideal de todos
los ítems analizados, de allí que un porcentaje relativamente alto influye en la buena imagen que
entrega el desempeño el sistema desarrollado.
CONCLUSIONES

Es de vital importancia definir cada uno de los métodos de desarrollo que se deben emplear antes
de emprender cualquier proyecto de software. Esto toma una importancia mayor no solo al
momento de implementar el código del aplicativo, sino al momento de corregir errores y
encontrar posibles escenarios de fallos que nunca se contemplaron en una arquitectura inicial.

Sin lugar a dudas la automatización del sistema ha incrementado las ganancias de las casas de
apuestas, y como consecuencia se ha generado más empleo y no se está fugando el dinero de los
impuestos de República Dominica por apuestas clandestinas.

Es necesario tener en cuenta cuando tenemos una comunicación bidireccional que el tipo de
mensajería que se diseñe para hacer el proceso de comunicación debe ser dinámico, efectivo y
exitoso, la idea de generar conexión entre un servidor y un cliente es reproducir todo de la manera
más efectiva, sin mayor consumo de recursos y con dinamización por parte del aplicativo que
corre en el dispositivo cliente, para nosotros el sistema embebido POS.

Como se indica en temas anteriores, la cantidad de datos enviados a la impresora como periférico
externo del sistema embebido para la generación de comprobantes o tiquetes puede ser elevado,
alcanzando el límite máximo del dispositivo que es de 1KB. En este sentido se hace un conteo de
los datos y se validan para enviar a imprimir lo que se tiene primero en el buffer y volver a llenar
con nuevos datos, lo que se llama impresión en caliente, disminuyendo porcentualmente la
incertidumbre de perder la impresión del tiquete, evaluando las transacciones descritas en el
proceso.

Cuando un aplicativo cliente maneja montos de dinero significativos es importante invertir en
seguridad, de ello deriva la utilización de las terminales POS S90, las cuales vienen precedidas
por sus antecedentes bancarios, y por medio de la cual es posible emplear o utilizar cualquier
103
protocolo de cifrado que este a la altura de las circunstancias debido a su poderoso procesador
criptográfico.

Cuando se trabaja con un dispositivo que realiza sus procesos de comunicación inalámbrica
implicando las redes móviles de cada país, es importante verificar el funcionamiento de las
mismas redes. Esto en cuanto a cobertura, calidad de comunicación y capacidad de
comunicación, atenuando cada uno de estos problemas ya sea por una red acceso privada o
certificando la calidad de la red pública existente. Esto toma su mayor importancia teniendo en
cuenta que la comunicación inalámbrica es una variable del sistema, la cual al depender de
agentes externos al mismo código del software, puede afectar de manera significativa,
convirtiéndose en un problema tangible y jamás contemplado en el diseño previo.

Al utilizar métodos de compresión y descompresión de archivos se reduce en un porcentaje
considerable la cantidad de información transferida. Con esto se logra disminuir el tiempo que
toma el sistema para transferir la información a través de la red; no obstante, la etapa de
descompresión de información tiene un tiempo de procesamiento el cual viene limitado por
varios factores entre ellos están la cantidad de información a descomprimir, la tasa de
compresión, la velocidad de descompresión y la velocidad de almacenamiento.

El módulo de descarga remota permite actualizar cualquier tipo de información, esto indica que
posteriormente es posible implementar este sistema para otro tipo de aplicaciones y otro tipo de
dispositivos, por ejemplo descarga de parámetros adicionales o compresión del mismo ISO 8583.

Como se logra observar en los datos de descarga remota del aplicativo, con la implementación
del modulo se ha logrado que el tiempo de la actualización del aplicativo disminuya en un
63.41%.

El protocolo de comunicación desarrollado cumple a cabalidad con las tareas principales que se
han enunciado al comenzar el proyecto. Posteriormente se ha observado que en ocasiones el
consumo de datos es significativo en el momento en que se realizan las inicializaciones. En
ocasiones superan los 3KB, por ello es importante trabajar en una estrategia para comprimir estos
datos de la manera más adecuada. Debido a la implementación de la librería 7Z esto es posible
también hacerlo con los datos que viajan al servidor, pero esto también requiere de un sistema
complementario que sea capaz de interpretar lo que el POS envía comprimido, el sistema POS es
solo una pequeña parte del funcionamiento total del sistema apuestas en República Dominicana.

Es estrictamente necesario el desarrollo de una documentación adecuada y complementaria al
desarrollo que se ha llevado a cabo, por medio de la misma el usuario podrá dimensionar el
potencial y la eficiencia del desarrollo implementado, para ello se ha generado una manual de uso
del aplicativo correctamente especificado.
104
BIBLIOGRAFÍA
1) 7 Zip. (2012). 7 Zip. Recuperado el 24 de Julio de 2013, de www.7-zip.com
2) Almudena Días, P. M., & Rivas, J. (2007). Análisis de symbian OS para desarrolar
aplicaciones distribuidas sobre terminales GPRS. Málaga.
3) Alvarez, S. (18 de Mayo de 2006). desarrolloweb.com. Obtenido de desarrolloweb.com:
http://www.desarrolloweb.com/articulos/2477.php
4) Arias Guerrero, A. (2009). Propuesta de un plan para adquirir una solución tecnologica que
permita la administración y monitoreo de la red de cajeros automaticos del banco popular de
desarrollo comunal. San José, Costa Rica.
5) Barranco, M. R. (Junio de 1996). SOCKETS: COMUNICACIÓN ENTRE PROCESOS
DISTRIBUIDOS. Recuperado el 23 de Julio de 2013, de http://es.tldp.org/:
http://es.tldp.org/Universitarios/seminario-2-sockets.html
6) CAMPOS, J. R. (2009). ASPECTOS TECNICOS DE WCDMA EN LOS SISTEMAS
INALAMBRICOS. Caracas – Venezuela: Corp Banca.
7) Castillo, Y. A. (2014). Proyecto de Banca de Apuestas. Obtenido de Monografías.com:
http://www.monografias.com/trabajos101/proyecto-banca-apuestas/proyecto-banca-apuestas
.shtml
8) CCM. (Junio de 2014). La compresión de datos. Recuperado el 25 de Junio de 2013, de
Es.ccm.net: http://es.ccm.net/contents/714-la-compresion-de-datos
9) Christian Bettstetter, H.-J. V. (1999). DESCRIPCION DE GPRS SERVICIO DE RADIO DE
PAQUETES DE GENERALES Y EVOLUCION GLOBAL DE DATOS MEJORANDO EDGE.
munich, alemania.
10) Cisco Systems, Inc. (2007). CCNA Exploration 4.0 Aspectos básicos de networking.
11) Corporation, M. S. (2009). GPRS. Microsoft Corporation.
12) Crespo Martínez, L. M., & Candelas Herías, F. A. (1998). Introducción a TCP/IP - Sistema de
Transporte de Datos. Publicaciones de la Universidad de Alicante.
13) Cruz Lopez, E. J., Ramos Buitrago, J. C., & Eslava, H. J. (2007). Software para gestión y
administración de imágenes utilizando tecnología multimedia GSM. Bogotá.
14) Cuevas, J. A. (2007). Modulo didáctico de instrumentación electrónica implementado con
tecnología FPAA. Bogotá, Colombia.
15) Di Mare, A. (1997). Transferencia de archivos durante una conversación telefónica. San Jose
Costa Rica.
16) Digitalfotored.
(2014).
Glosario
GPRS.
http://www.digitalfotored.com/glosario/gprs.htm
Obtenido
de
digitalfotored.com:
105
17) Dunkels, A. (2006). The uIP Embedded TCP/IP Stack. Estocolomo: Swedish Institute of
Computer Science.
18) ENTEL. (12 de Abril de 2013). ¿Sabes lo que significa WCDMA? Obtenido de
http://comunidad.entel.cl/:
http://comunidad.entel.cl/internet/posts/sabes-lo-que-significa-wcdma
19) Escuela Politécnica Superior de Alcoy (España). (2014). Sistemas Embebidos: Innovando
hacia
los
Sistemas
Inteligentes.
Obtenido
de
semanticwebbuilder:
http://www.semanticwebbuilder.org.mx/es_mx/swb/Sistemas_Embebidos_Innovando_hacia
_los_Sistemas_Inteligentes_
20) Espinosa Peñeherrera, F. P., & Soto Arango, A. F. (2009). Pago electrónico a través de
teléfonos móviles. Guayaquil, Ecuador.
21) Forouzan, B. A. (2002). Transmisión de Datos y redes de comunicaciones 2 Ed.
McGraw-Hill.
22) Galeano, G. (2009). Programación de sistemas embebidos en C. Bogotá: AlfaOmega.
23) GSM World. (2010). GSM Technology: GPRS. Recuperado el 10 de Junio de 2013, de
http://www.gsmworld.com/technology/gprs.htm
24) Herramienta web para la enseñanza de comunicación. (2012). neo.lcc.uma.e. Obtenido de
neo.lcc.uma.e: http://neo.lcc.uma.es/evirtual/cdd/tutorial/aplicacion/http.html
25) HK shangai group limited. (2001). Sierra Wireless WMP100 Intelligent Embedded Module
M2M GSM GPRS Modem . Recuperado el 10 de Junio de 2013, de
http://www.hkshanhai.net/sdp/503655/4/pd-2695572/6913098.html
26) Hypercom. (2 de Mayo de 2002). ISO8583. Phoenix, Arizona, USA.
27) John, C. (2009). T800 Software Development Training V1.0. Hong kong.
28) Kioskea. (Julio de 2013). kioskea. Recuperado el 25 de Julio de 2013, de
http://es.kioskea.net/contents/273-protocolos-ppp-y-slip-protocolo-punto-a-punto-y-protocol
o-de-li
29) L.Silva. (23 de Septiembre de 2011). http://www.enlinux.org/. Obtenido de
http://www.enlinux.org/: http://www.enlinux.org/puertos-y-servicios-en-gnulinux-centos/
30) Luz, S. d. (12 de Mayo de 2011). Redes Zone. Recuperado el 15 de Junio de 2012, de
http://www.redeszone.net/2011/05/12/sftp-y-ftps-diferencias-entre-sftp-y-ftps-para-la-transfe
rencia-segura-de-ficheros/#comments
31) Márquez, J. B. (2005). Transmisión de Datos. Mérida: Universidad de los Andes.
32) Navarro, G. (Junio de 2001). GPRS: el despegue de la Internet móvil. Recuperado el 10 de
Junio de 2013, de http://www.uoc.edu/web/esp/art/uoc/0105021/berbel_imp.html
106
33) Navarro, R. C. (2010). Instalación de Linux para ARM en sistemas empotrados. Granada,
España.
34) Oliva Mateos, A., & Sierra Collado, A. J. (Abril de 2006). Aplicación de Seguridad en
Servicios Web XML para dispositivos móviles mediante la implementación de un perfil
SAML.
35) PAX Technology Limited. (2013). Pax S90 Wireless Network. Obtenido de paxsz.com:
http://www.paxsz.com/en/product/index.aspx?n=119002001002&i=100000041686325
36) Picerno, J. M. (2010). Domótica para sistemas embebidos. Montevideo.
37) Prezi.com. (8 de Febrero de 2014). Prezi.com/Sistemas Embebidos. Obtenido de prezi.com:
https://prezi.com/qbau5mrpu1vv/sistemas-embibedos/
38) Rescorla, E., & Dick, K. (s.f.). Secure Auditing for SSL Transactions. working paper.
39) Sanchez, I.
G. (2010).
sites.google.com. Obtenido de
sites.google.com:
https://sites.google.com/site/ivangarciasanchez90/objetivos/gestion-tema-3/5o
40) Sitepro. (Abril de 2009). Prensario_Abril2009_Perez_Abreu. Obtenido de siteprocom:
www.siteprocom.ar/descargas/Notas/Prensario_Abril2009_Perez_Abreu.pdf
41) Sitiosargentina.com. (2009). sitiosargentina.com. Obtenido de sitiosargentina.com:
http://www.sitiosargentina.com.ar/webmaster/cursos%20y%20tutoriales/puerto.htm
42) Universidad de Oviedo - Ingeniería de sistemas y automatica. (2006). El Protocolo TCP/IP.
Asturias, Oviedo.
43) Universidad tecnologica de Mixteca. (2009). Sistema de comunicaciones basado en Ethernet
para el control de sistemas empotrados. Ciudad de México: Diciembre.
44) Universitat oberta de Catalunya. (2013). uoc.edu. Obtenido
http://cv.uoc.edu/UOC/a/moduls/90/90_574b/web/main/m7/c1/1.html
45) uv.es.
(2011).
GPRS.
Obtenido
www.uv.es/~montanan/redes/trabajos/GPRS.do
de
de
uoc.edu:
www.uv.es:
46) Vásquez, J. M. (2002). SSL, Secure Sockets Layer y Otros Protocolos Seguros para el
Comercio Electrónico.
47) Vausseur, J.-P. (2012). Interconnecting smart objects with IP. Obtenido de
www.assembla.com:
https://www.assembla.com/spaces/EmsProjectBuildingAutomation/documents/czrepOx7mr
4B1racwqjQXA/download/czrepOx7mr4B1racwqjQXA
48) Zator.com.
(2011).
Números
de
http://www.zator.com/Internet/N_11.htm
puertos.
Obtenido
de
zator.com:
107
Descargar