“Sistema de Visualización en Dispositivos Móviles para ...

66
1 INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ESCOM Trabajo Terminal “Sistema de Visualización en Dispositivos Móviles para Multitudes (DIMOMU)” 14-2-0006 Que para cumplir con la opción de titulación curricular en la carrera de: “Ingeniería en Sistemas Computacionales” Presentan Mendoza Martínez Erick Daniel Directores M. en C. Méndez Segundo Laura M. en C. Araujo Díaz David Mayo de 2014

Transcript of “Sistema de Visualización en Dispositivos Móviles para ...

1

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

ESCOM

Trabajo Terminal

“Sistema de Visualización en Dispositivos Móviles para

Multitudes (DIMOMU)”

14-2-0006

Que para cumplir con la opción de titulación curricular en la carrera de:

“Ingeniería en Sistemas Computacionales”

Presentan

Mendoza Martínez Erick

Daniel

Directores

M. en C. Méndez Segundo Laura M. en C. Araujo Díaz David

Mayo de 2014

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE CÓMPUTO

SUBDIRECCIÓN ACADÉMICA

No. de registro: 14-2-0006 Serie: Amarilla Mayo del 2014

Documento técnico

"Sistema de Visualización en Dispositivos Móviles para

Multitudes (DIMOMU)"

Presentan

Mendoza Martínez Erick Daniel

1

Directores

M. en C. Méndez Segundo Laura

M. en C. Araujo Díaz David

RESUMEN Este trabajo terminal despliega imágenes en dispositivos móviles con el fin de diseñar,

desarrollar e implementar un sistema de visualización para multitudes, que genera a partir

de una imagen fragmentos de la misma para cada dispositivo, recreando la imagen en su

totalidad en una escala mayor a la que se vería en uno solo, el propósito crear mensajes con

un volumen grande de personas para eventos de entretenimiento o sociales, abriendo una

brecha para publicidad o mercadotecnia poco accesible al público en general.

Palabras clave: Software de visualización, dispositivos móviles, publicidad,

mercadotecnia, programación web.

1 E-mail: [email protected]

4

Advertencia

“Este documento contiene información desarrollada por la Escuela Superior de Cómputo del

Instituto Politécnico Nacional, a partir de datos y documentos con derecho de propiedad y por lo

tanto, su uso quedará restringido a las aplicaciones que explícitamente se convengan.”

La aplicación no convenida exime a la escuela su responsabilidad técnica y da lugar a las

consecuencias legales que para tal efecto se determinen.

Información adicional sobre este reporte técnico podrá obtenerse en:

La Subdirección Académica de la Escuela Superior de Cómputo del Instituto

Politécnico Nacional, situada en Av. Juan de Dios Bátiz s/n Teléfono: 57296000 Extensión

52000.

AGRADECIMIENTOS

Agradezco a mis padres Ana Rosario Martínez Aguirre y Severiano Mendoza Alcántara por

apoyarme a lo largo de la carrera, al igual que mis hermanos, Dolores Merary Mendoza

Martínez, Alejandro Mendoza Martínez y Tania Ivonne Mendoza Martínez, gracias por todo

lo que me han enseñado.

En especial quiero agradecer a mis directores Laura Méndez Segundo y a David Araujo Díaz

por brindarme su apoyo en este proyecto.

Erick Daniel Mendoza Martínez.

6

Índice

Índice ................................................................................................................................................. 6

1. Capitulo: Introducción ............................................................................................................ 9

1.1. Introducción ..................................................................................................................... 9

1.2. Antecedentes .................................................................................................................. 10

1.2.1. Sistema VideoWall ................................................................................................. 10

1.2.2. Sistema Multipantalla controlada mediante pellizcos ................................... 11

1.3. Objetivo General ............................................................................................................ 12

1.3.1. Objetivos Específicos ............................................................................................ 12

1.4. Justificación .................................................................................................................... 13

1.5. Estado del Arte ............................................................................................................... 14

1.6. Marco teórico ................................................................................................................. 14

1.6.1. Proceso de visualización ...................................................................................... 14

1.6.2. Matriz de Dispositivos .......................................................................................... 15

1.6.3. Procesamiento y sincronización ........................................................................ 16

1.6.4. Respuesta del Servidor ......................................................................................... 16

1.6.5. Visualización de la secuencia en la matriz de los Dispositivos Móviles ..... 17

2. Capítulo: Análisis. .................................................................................................................. 22

2.1. Lenguaje de Programación .......................................................................................... 22

2.2. Sistema Operativo ......................................................................................................... 22

2.3. Dispositivos Móviles ..................................................................................................... 22

2.4. Base de Datos ................................................................................................................. 23

2.5. Análisis de Requerimientos ........................................................................................ 23

2.5.1. Requerimientos Funcionales .............................................................................. 24

2.5.2. Requerimientos no Funcionales ......................................................................... 25

3. Capitulo: Diseño ..................................................................................................................... 26

3.1. Diagramas UML .............................................................................................................. 26

3.1.1. Diagrama de Casos de Uso. .................................................................................. 26

3.1.2. Diagrama de Casos de Uso del Sistema ............................................................. 26

3.1.3. Diagramas de Secuencia ....................................................................................... 30

3.1.4. Diagramas base de datos ..................................................................................... 34

7

3.2. Arquitectura del sistema ............................................................................................. 35

3.2.1. Arquitectura 3 capas ............................................................................................. 35

3.2.2. Patrón de diseño Modelo Vista Controlador (MVC) ........................................ 38

3.3. Estimación de Costo .......................................................................................................... 40

3.4. Wi-Fi .................................................................................................................................. 41

4. Capitulo: Desarrollo e implementación del sistema ...................................................... 42

4.1. Página de inicio .............................................................................................................. 42

4.2. Acerca de DIMOMU ........................................................................................................ 43

4.3. Crear Secuencia ............................................................................................................. 43

4.4. Servicio ............................................................................................................................ 44

4.4.1. ThreadStart ............................................................................................................ 44

4.4.2. Thread ..................................................................................................................... 45

4.4.3. GetSecuencia .......................................................................................................... 45

4.5. Creando una Secuencia ................................................................................................ 49

4.5.1. Interfaz grafica ....................................................................................................... 49

4.5.2. Creación de la Palabra ESCOM ............................................................................ 54

4.5.3. Sincronización de los dispositivos móviles ...................................................... 57

5. Capitulo: Pruebas y Resultados .......................................................................................... 58

5.1. Resultado de la letra E .................................................................................................. 58

5.2. Resultado de la letra S .................................................................................................. 59

5.3. Resultado de la letra C .................................................................................................. 60

5.4. Resultado de la letra O ................................................................................................. 61

5.5. Resultado de la letra M ................................................................................................. 62

5.6. Palabra ESCOM ............................................................................................................... 63

6. Capitulo: Conclusiones ......................................................................................................... 64

7. Capitulo: Trabajo a futuro ................................................................................................... 65

8. Referencias ............................................................................................................................. 66

8

Índice de figuras

Figura 1: Sistema VideoWall ............................................................................................. 10

Figura 2: Sistema Multipantalla Controlada mediante pellizcos ................................... 11 Figura 3: Trabajos Similares ............................................................................................. 14 Figura 4: Diagrama a bloques del sistema DIMOMU .................................................... 14 Figura 5: Matriz 5X5 .......................................................................................................... 15 Figura 6: Petición y Sincronización de los Dispositivos Móviles ................................... 16

Figura 7 Secuencia del dispositivo móvil .......................................................................... 16 Figura 8: Letra E ................................................................................................................ 17 Figura 9: Letra S ................................................................................................................ 18 Figura 10: Letra C .............................................................................................................. 19 Figura 11: Letra O .............................................................................................................. 20

Figura 12: Letra M ............................................................................................................. 21 Figura 13: Tabla de Requerimientos Funcionales ........................................................... 24

Figura 14: Tabla de Requerimientos No Funcionales ..................................................... 25

Figura 15: Diagrama de Casos de Uso .............................................................................. 26 Figura 16: Acceder a la página web .................................................................................. 27 Figura 17: Visualizar Secuencia ........................................................................................ 27

Figura 18: Reiniciar Secuencia .......................................................................................... 28 Figura 19: Mostrar Secuencia ........................................................................................... 28

Figura 20: Insertar Secuencia ........................................................................................... 29 Figura 21: Guardar Secuencia .......................................................................................... 29 Figura 22 Acceder a la Página Web .................................................................................. 30

Figura 23 Visualizar Secuencia ......................................................................................... 31

Figura 24 Reiniciar Secuencia ........................................................................................... 32 Figura 25: Muestra Secuencia ........................................................................................... 33 Figura 26: Arquitectura del Sistema ................................................................................ 37

Figura 27: MVC ................................................................................................................. 39 Figura 28: Inicio ................................................................................................................. 42

Figura 29: Acerca de Dimomu .......................................................................................... 43 Figura 30: Crear Secuencia ............................................................................................... 43

Figura 31: Interfaz Grafica para crear una secuencia .................................................... 53 Figura 32: Creación de la letra E ...................................................................................... 54 Figura 33: Creación de la letra s ....................................................................................... 55 Figura 34: Creación de la letra c ....................................................................................... 55 Figura 35: Creación de la letra O..................................................................................... 56

Figura 36: Creación de la letra M ..................................................................................... 56 Figura 37: Simulación letra E ........................................................................................... 58

Figura 38: Simulación de la letra S ................................................................................... 59 Figura 39: Simulación de la letra C .................................................................................. 60 Figura 40: Simulación de la letra O .................................................................................. 61 Figura 41: Simulación de la letra M. ................................................................................ 62 Figura 42: Palabra ESCOM .............................................................................................. 63

9

1. Capítulo: Introducción

1.1. Introducción

El desarrollo para dispositivos móviles ha experimentado en los últimos años un avance

espectacular. Este crecimiento ha hecho que sea imprescindible conocer y dominar estas

técnicas de programación, y por tanto, su inclusión en las capacidades de los ciclos

formativos de programación [1].

Actualmente los dispositivos móviles conforman una parte fundamental en la vida cotidiana

del ser humano, capaces de contar con diversas aplicaciones que ayudan a facilitar la vida del

hombre, más aun, la mayoría de las personas cuentan con este tipo de tecnología, que tiene la

capacidad de interactuar con diversos dispositivos ya sea con hardware (USB, bluetooth,

WiFi, etc.) o utilizando tecnologías Web. Hoy en día donde la tecnología crece rápidamente

se busca creer aplicaciones cada vez más complejas y robustas, independientemente de la

plataforma de cada dispositivo para llegar a un gran número de personas y evitando el

desarrollo para las distintas tecnologías existentes, aprovechando la tecnología Web y la

tecnología móvil y así brindar una opción dentro del campó de la publicidad o mercadotecnia

al alcance de personas que cuenten con un dispositivo móvil y acceso a Internet.

10

1.2. Antecedentes

A continuación presentamos algunos sistemas existentes que permiten la visualización en

diversos medios.

1.2.1. Sistema VideoWall

Los actuales sistemas de visualización digital están siendo desarrollados en base a la

consecución de diversos parámetros como: mayor ligereza, menor profundidad física,

mayores dimensiones, incremento de luminosidad y contraste y, por supuesto, mayor

versatilidad.

En base a estos parámetros, se desarrollo el sistema videowall a medida, combinando

distintos tamaños y configuraciones, y creando una solución adaptada para numerosas

aplicaciones de salas de control y supervisión, control de tráfico, seguridad, CCTV,...etc.

Incorporando la más novedosa tecnología TFT-LCD, ofreciendo una excepcional calidad de

imagen con un mínimo mantenimiento [2] (Figura 1).

Figura 1: Sistema VideoWall

Características Principales.

Multiconexión de señales RGB y de Video

Resolución por panel, desde XGA hasta UXGA.

Diseño Integrado

Software de control sencillo y dinámico.

Opción LED mensajes/reloj digital

Software OSD

11

Aplicaciones.

Control y Supervisión

Tráfico

Seguridad

CCTV

Estudios TV

Financiero

1.2.2. Sistema Multipantalla controlada mediante pellizcos

Se trata de una interfaz que es capaz de controlar varias pantallas sin importar el tamaño,

enlazándolas entre sí con un simple gesto de pellizco. La sincronización y el emparejamiento

se realiza gestionando en todo momento la posición, orientación y tamaño a través de una

conexión WiFi. De momento el hardware compatible con esta interfaz está limitado a

equipos con sistema operativo iOS, aunque posiblemente su objetivo comercial esté más

orientado a pantallas de gran formato o configuraciones especiales de escritorio [3]. (Figura

2).

Figura 2: Sistema Multipantalla Controlada mediante pellizcos

12

1.3. Objetivo General

Para implementar este trabajo, proponemos el siguiente objetivo general.

Implementar un sistema de visualización en dispositivos móviles, para desplegar mensajes

que interactúen colaborativamente con multitudes a través del uso de tecnología Web.

1.3.1. Objetivos Específicos

Para alcanzar el objetivo general, se tienen los siguientes objetivos específicos:

Coordinar el hardware de diferentes dispositivos móviles para la visualización de

mensajes.

Desarrollar la aplicación para la generación de las secuencias que serán visualizadas

en los dispositivos móviles.

Integración e implementación de los sistemas de software y hardware.

Pruebas, correcciones y resultados del sistema en conjunto.

13

1.4. Justificación

Mientras crece el número de personas que navegan a través de sus dispositivos móviles,

pocas empresas tienen un claro conocimiento sobre lo que significa tener una web móvil, los

beneficios que genera y cómo incorporarla en sus estrategias de marketing y comunicación.

[4]

Actualmente la mayoría de las personas tienen acceso a un dispositivo móvil, esto hace

posible realizar una diversidad de aplicaciones que solo estaban al alcance de un cierto grupo

de personas, hoy en día existen programas o aplicaciones que involucran la interacción entre

móviles; aprovechando esto es posible realizar una aplicación que se pueda usar en eventos

con multitudes de personas para visualizar o proyectar mensajes en diversos dispositivos

móviles generando una sola proyección, llegando a abarcar un medio alternativo para la

difusión de la publicidad, mercadotecnia, personal, social y cultural.

Por lo tanto este Trabajo Terminal se enfoca en la realización de un sistema capaz visualizar

mensajes con múltiples dispositivos móviles, el sistema es colaborativo ya que emplea la

participación entre dispositivos y personas, en tiempo real, para la correcta visualización de

mensajes.

Este sistema es utilizado en eventos como partidos de futbol, fiestas, conciertos o en eventos

que cuenten con un número razonable de dispositivos móviles.

Nuestros alcances fueron:

Construcción de un sistema que nos permitió visualizar imágenes en dispositivos

móviles.

La implementación de un sistema con beneficios tales como:

Anuncios publicitarios.

Entretenimiento.

Educación.

Este trabajo fue desarrollado con los conocimientos previos obtenidos durante el estudio de

la carrera en ingeniería en sistemas computacionales, en el área de sistemas, tales como:

Bases de datos I y II

Programación Orientada a objetos

Ingeniería de software I y II

Economía

Programación Visual

Sistemas Operativos I

Generación y Evaluación de Proyectos

Matemáticas Discretas

Programación Web

Graficación I y II

14

1.5. Estado del Arte

En este apartado se hace referencia a las aplicaciones existentes que se relacionan con el

trabajo descrito en este documento y sirve como punto de partida para tener una visión más

clara de la funcionalidad con la que este tipo de aplicaciones deben contar(Figura 3).

SISTEMAS CARACTERÍSTICAS PRECIO EN EL

MERCADO

TT 2011-0043 Sistema de

Visualización por medio de

un cubo de LED’s

Se proyectan imágenes desde un software

hacia la matriz de LED’s de 8*8*8

No implementado

Sistema multipantallas

Universidad de Tokio.

Se trata de una interfaz que es capaz de

controlar varias pantallas sin importar el

tamaño, enlazándolas entre sí con un

simple gesto de pellizco.

No Implementado

Figura 3: Trabajos Similares

1.6. Marco teórico

A continuación describimos algunos conceptos necesarios para entender el funcionamiento

del sistema y poder resolver el problema.

1.6.1. Proceso de visualización

Los componentes algorítmicos del DIMOMU(Figura 4) pueden descomponerse en:

Matriz de Dispositivos Móviles.

Procesamiento y sincronización.

Respuesta del Servidor.

Visualización de la secuencia en la matriz de los Dispositivos Móviles.

Figura 4: Diagrama a bloques del sistema DIMOMU

Matriz de

Dispositivos

Móviles.

Procesamiento y

sincronización

Respuesta

del Servidor.

Visualización

15

1.6.2. Matriz de Dispositivos

En esta etapa del sistema se limitara a una matriz de 5X5 dispositivos móviles, con el fin de

contar con una matriz de 25 dispositivos móviles, en la cual cada dispositivo móvil se

encargara de acceder a una URL específica dependiendo su ubicación en la matriz como se

muestra en la imagen (Figura 5).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 5: Matriz 5X5

16

1.6.3. Procesamiento y sincronización

Una vez que se cuentan con los 25 dispositivos móviles y cada uno se les asigno una posición

en la matriz, se realizara la petición al servidor el cual se encargara de recibir cada una de las

25 peticiones.

El servidor verifica en qué posición se encuentra dependiendo la URL asignada y lo ingresa

en la base de datos, así sucesivamente con las 24 peticiones restantes. Una vez ingresado los

25 dispositivos móviles, el servidor paralelamente se encontrara trabajando verificando a

cada instante que las 25 peticiones hayan sido almacenadas en la base de datos, con el fin de

poder cerciorarse que los 25 dispositivos móviles están listos para recibir la información que

se les mandara para poder visualizarla y estos estén sincronizados (Figura 6).

Figura 6: Petición y Sincronización de los Dispositivos Móviles

1.6.4. Respuesta del Servidor

Ya que se tienen los 25 dispositivos móviles en espera, lo que continúa es darle la secuencia

apropiada a cada uno de ellos, como el sistema será limitado a observar imágenes en blanco y

negro, las secuencias enviadas del servidor serán en código binario 1´s y 0´s, 1 para un fondo

blanco y 0 para un fondo negro, es decir que si para el primer dispositivo móvil

(www.dimomu.com/1 ) una vez accedido los 25 se le dará una secuencia de 1010

dependiendo el mensaje que se vaya a mostrar, esto es que en primer instancia prendera

blanco pasara un tiempo determinado y cambiara a negro, así sucesivamente hasta que

termine la cadena a mostrar(Figura 7).

Figura 7 Secuencia del dispositivo móvil

1 0 1 0

17

1.6.5. Visualización de la secuencia en la matriz de los Dispositivos Móviles

Una vez mandando las secuencias a mostrar, el dispositivo móvil se encargara de mostrar las

secuencias previamente almacenadas y procesadas por el servidor, para esto se usara jquery

del lado del cliente para poder mostrar las secuencias cómo se muestra a continuación.

Se mostrara la palabra ESCOM, empezaremos con la letra E (Figura 8).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 8: Letra E

18

Continuara la letra s (Figura 9).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 9: Letra S

19

La letra c (Figura 10).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 10: Letra C

20

Letra o (Figura 11).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 11: Letra O

21

Y al finalizar la letra m (Figura 12).

www.dimomu.com/1

www.dimomu.com/2

www.dimomu.com/3

www.dimomu.com/4

www.dimomu.com/5

www.dimomu.com/6

www.dimomu.com/7

www.dimomu.com/8

www.dimomu.com/9

www.dimomu.com/10

www.dimomu.com/11

www.dimomu.com/12

www.dimomu.com/13

www.dimomu.com/14

www.dimomu.com/15

www.dimomu.com/16

www.dimomu.com/17

www.dimomu.com/18

www.dimomu.com/19

www.dimomu.com/20

www.dimomu.com/21

www.dimomu.com/22

www.dimomu.com/23

www.dimomu.com/24

www.dimomu.com/25

Figura 12: Letra M

22

2. Capítulo: Análisis.

A Continuación se da una explicación de las herramientas a utilizar para este sistema.

2.1. Lenguaje de Programación

Se ha decidido utilizar .net debido a las siguientes características.

1.- Fácil de Usar. Es fácil el uso de la programación en punto net para los

desarrolladores debido a que tiene una documentación muy completa y soporte de

ayuda.

2.- Movilidad. Las aplicaciones pueden ser ejecutadas en diferentes tipos de

dispositivos.

3.- Basado en objetos. Ofrece un modelo de desarrollo basado en objetos que utilizan

un sistema común de datos y estos pueden ser reutilizados solo llamando al objeto a

donde lo necesites.

4.- Herencia de clases, las clases incluidas en el framework pueden ser utilizadas

independientemente del lenguaje que utilices, esto gracias al mecanismo de herencia

propio de la programación orientada a objetos.

2.2. Sistema Operativo

Basándonos en la idea de que el sistema ofrecerá flexibilidad en uso, se ha decidido utilizar

Windows 7, por ser la plataforma más utilizada.

2.3. Dispositivos Móviles

Para realizar Pruebas se utilizara un dispositivo móvil con al menos android, esto para tener

un gran comportamiento con la conexión a internet y se pueda procesar los datos con una

mejor disponibilidad, con el fin de que exista el menor retardo entre los dispositivos móviles

al desplegar los mensajes.

23

2.4. Base de Datos

Se decidió utilizar SQL Server 2008 por las siguientes características.

Las bases de datos de Microsoft ejecutan más bases de datos de misión crítica en

comparación con las bases de datos de Oracle.

Proporciona 99.9999% de disponibilidad del tiempo de actividad.

Mayor seguridad de una de las mejores plataformas de bases de datos [5].

2.5. Análisis de Requerimientos

El análisis de requerimientos para un sistema es la descripción de los servicios que este

proporciona así como sus restricciones operativas. Dichos requerimientos también reflejan

las necesidades del usuario final del sistema el cual le ayudará a resolver algún problema [6].

En este documento, la problemática a resolver ya ha sido planteada, por tanto se procede a

definir los requerimientos funcionales (servicios) y no funcionales (restricciones)

correspondientes al sistema, tomados a partir de las funciones generales que el sistema lleva a

cabo.

24

2.5.1. Requerimientos Funcionales

En la siguiente tabla se muestra el listado de los requerimientos funcionales del sistema, así

como una breve descripción para cada requerimiento (Figura 13).

ID Título Descripción

RF1 Proporciona una interfaz

gráfica.

Permitirá navegar de una

manera fácil y amigable con

el usuario.

RF2 Mostrar secuencia. Mostrara la secuencia

previamente realizada e

introducida.

RF3 Crear secuencia. Permitirá al usuario crear

una secuencia.

RF4 Guardar secuencia Permitirá guardar una

secuencia previamente

elaborada.

RF5 Sincronizar Dispositivos

Móviles.

Podrá sincronizar los

dispositivos móviles con la

menor latencia posible.

Figura 13: Tabla de Requerimientos Funcionales

25

2.5.2. Requerimientos no Funcionales

La siguiente tabla muestra el listado de los requerimientos no funcionales del sistema, así

como una breve descripción para cada requerimiento (Figura 14).

ID Titulo Descripción

RNF1 Multiplataforma. Debido a que es una

aplicación web cualquier

dispositivo móvil que

cuente con un navegador

podrá utilizarlo.

RNF2 Disponibilidad a la Base

de Datos.

La base de datos siempre

estará disponible en

cualquier momento que se

le solicite una consulta.

RNF3 Tiempo de consultas. Una consulta a la base de

datos no tardara más de 1

segundo para poder

realizarla

Figura 14: Tabla de Requerimientos No Funcionales

26

3. Capitulo: Diseño

3.1. Diagramas UML

A continuación se muestra una descripción de cada uno de los Diagramas.

3.1.1. Diagrama de Casos de Uso.

Modelan la funcionalidad del sistema según la perciben los usuarios externos (Actores),

expresando dicha funcionalidad como la interacción entre los actores y el sistema. A

continuación se procede a numerar los actores, los casos de uso e indicar que actor participa

en cada caso de uso [7].

Actores Relacionados con el Sistema

Usuario. Persona encargada del sistema, podrá acceder al sistema para poder accionar la

secuencia y así poder visualizarla en su dispositivo móvil.

3.1.2. Diagrama de Casos de Uso del Sistema

En este apartado se muestra como interactúa nuestro sistema.

Usuario: controla la interfaz gráfica de nuestro sistema, tiene acceso a visualizar la imagen en

conjunto a partir de las secuencias diseñadas para cada uno de los dispositivos móviles

(Figura 15).

Figura 15: Diagrama de Casos de Uso

27

3.1.2.1. Descripción de Casos de Uso

A continuación se muestra una descripción del Caso de Uso (Figura 16).

Referencia: CU1.- Acceder a la página web.

Autor: Erick Daniel Mendoza Martínez

Fecha: 10 – Marzo – 2014

Descripción: El usuario ingresa la url, según se describe en el siguiente caso

de uso:

Actores: Usuario.

Precondiciones: Tener un navegador en su dispositivo móvil.

Flujo Normal: 1) El caso de uso comienza, el usuario abre su navegador.

2) El usuario ingresa la url dependiendo el lugar que se le sea

asignado (FA1).

3) Se confirma el acceso al usuario dando instrucciones del

siguiente paso.

Flujo Alternativo: FA1.-No Cargo la pagina web.

1) El Usuario Confirmara de Nueve su url, esto con el fin de que

haya una equivocación al escribirla.

Pos condiciones: El Sistema al terminar de cargar, mostrara un botón para poder

iniciar la animación. Figura 16: Acceder a la página web

Referencia: CU2.- Visualizar Secuencia.

Autor: Erick Daniel Mendoza Martínez.

Fecha: 10 – Marzo – 2014

Descripción: El usuario Iniciara la secuencia, según se describe en el

siguiente caso de uso:

Actores: Usuario.

Precondiciones: El usuario debió haber Ingresado previamente a la url

correspondiente según sea su posición.

Flujo Normal: 1) El Sistema cargara la interfaz grafica la cual tendrá un botón

“Iniciar Secuencia”.

2) El Usuario deberá oprimir el botón para iniciar la secuencia

previamente definida.

3) El Sistema se encargara de ir a la base de datos y traer la

secuencia dependiendo la url.

4) El Sistema Mostrara Finalmente la secuencia o animación al

usuario.

Flujo Alternativo: NA

Pos condiciones: El Sistema al terminar de desplegar la animación volverá al

inicio para nuevamente iniciar la secuencia. Figura 17: Visualizar Secuencia

28

Referencia: CU3.- Reiniciar Secuencia

Autor: Erick Daniel Mendoza Martínez.

Fecha: 10 – Marzo – 2014.

Descripción: El usuario podrá reiniciar la secuencia o animación, según se

describe en el siguiente caso de uso:

Actores: Usuario.

Precondiciones: Haber iniciado por primera vez el sistema.

Flujo Normal: 1) El usuario podrá reiniciar la secuencia o animación

oprimiendo el botón “Iniciar Secuencia”.

Flujo Alternativo: NA.

Pos condiciones: NA. Figura 18: Reiniciar Secuencia

Referencia: CU4.- Mostrar Secuencia.

Autor: Erick Daniel Mendoza Martínez.

Fecha: 10 – Marzo – 2014

Descripción: El usuario podrá ver las secuencias de los 25 Dispositivos

móviles, según se describe en el siguiente caso de uso:

Actores: Usuario.

Precondiciones: El Usuario ingreso Correctamente la url.

Flujo Normal: 1) El usuario podrá visualizar las secuencias de los 25

dispositivos móviles.

2) El usuario podrá ver el lapso de tiempo que se le da a cada

una de las animaciones.

Flujo Alternativo: NA.

Pos condiciones: NA

Figura 19: Mostrar Secuencia

29

Referencia: CU5.- Modificar Secuencia.

Autor: Erick Daniel Mendoza Martínez.

Fecha: 10 – Marzo – 2014.

Descripción: El usuario podrá cambiar la secuencia, según se describe en el

siguiente caso de uso:

Actores: Usuario.

Precondiciones: El usuario debe ingresar la url para poder cambiar los datos de

la secuencia.

Flujo Normal: 1) El usuario podrá cambiar las secuencias o puede elegir las

opciones predeterminadas(FA1)

2) El usuario podrá visualizar las secuencias que está

realizando.

Flujo Alternativo: FA1.- Seleccionar las secuencias predeterminadas.

1) El usuario en un combobox podrá elegir la secuencia o

animación que estén pre-establecidas en el sistema.

Pos condiciones: El Usuario deberá dar click en el botón “Guardar Secuencia”

para que el sistema las almacene y pueda visualizarlas. Figura 20: Insertar Secuencia

Referencia: CU6.- Guarda Secuencia.

Autor: Erick Daniel Mendoza Martínez.

Fecha: 10 – Marzo – 2014

Descripción: El usuario guarda la secuencia, según se describe en el

siguiente caso de uso:

Actores: Usuario.

Precondiciones: Haber realizado una secuencia.

Flujo Normal: 1) El usuario selecciona la opción de “Guardar Secuencia”.

2) El sistema muestra en pantalla un diálogo que permite al

usuario dar el nombre de la secuencia con el que se almacenará

la información.

3) El Sistema se encarga de almacenar los datos en la base de

datos (FA1).

3) El sistema mostrara un dialogo el cual confirmara que se

almaceno correctamente su secuencia.

Flujo Alternativo: FA1.- La Secuencia no se pudo almacenar

1) El Sistema mostrara un dialogo con el cual mostrara que no

se pudo guardar la secuencia y el por qué.

Pos condiciones: NA Figura 21: Guardar Secuencia

30

3.1.3. Diagramas de Secuencia

En este apartado se describe brevemente la interacción de los diagramas de secuencia como

fluyen en el sistema.

3.1.3.1. Acceder a la página web.

En este diagrama se explica el ingreso a la página web (Figura 22).

Figura 22 Acceder a la Página Web

31

3.1.3.2. Visualizar Secuencia

En el siguiente diagrama se explica cómo visualiza las secuencias el usuario (Figura 23).

Figura 23 Visualizar Secuencia

32

3.1.3.3. Reiniciar Secuencia

En este diagrama se muestra como el usuario puede reiniciar una secuencia (Figura24).

Figura 24 Reiniciar Secuencia

33

3.1.3.4. Muestra Secuencia

En el siguiente diagrama se visualiza como el sistema muestras y sincroniza a los

dispositivos móviles (Figura 25).

Figura 25: Muestra Secuencia

34

3.1.4. Diagramas base de datos

A continuación se muestra el diagrama de bases de datos, en la cual se usaron dos tablas,

Pagina_Secuencia, en esta tabla se tienen dos campos el primer campo “pagina” aquí

almacenara las respectivas paginas que contenga el sistema, mientras que en el campo

“secuencia “se almacenara la secuencia que contenga cada una de estas páginas. En la tabla

Estado_Pagina, tiene dos campos, en el primero de ellos se tiene el “num_pag”, este campo

contendrá el número de página que corresponde a cada una, en el campo “estado” contendrá

el estado de la página “1” si ya esta accedida desde el dispositivo móvil y “0” si aun no

acceden a la url por página.

35

3.2. Arquitectura del sistema

A continuación se Muestra la arquitectura correspondiente al sistema DIMOMU.

3.2.1. Arquitectura 3 capas

La arquitectura de tres capas está conformada por las siguientes variantes que se enuncian a

continuación:

Capa de Presentación: Esta es la parte que el usuario ve, las pantallas que se le

muestran para qué interaccione con el programa (también se le conoce como “capa de

usuario”). Esta capa se comunica únicamente con la capa de negocio llevando y

trayendo los datos o registros necesarios, en pocas palabreas es la interfaz grafica del

programa, la cual debe ser lo más entendible posible para el usuario y así tener una

mejor comunicación con él.

Capa de negocio: es donde residen los programas que se ejecutan en el sistema, se

reciben las peticiones del usuario y se envían las respuestas tras el proceso. Se

denomina capa de negocio (e incluso de lógica del negocio) porque es aquí donde se

establecen todos los procesos que deben realizarse.

Capa de datos: es donde residen los datos y es la encargada de acceder a los mismos.

Está formada por uno o más gestores de bases de datos que realizan todo el

almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de

información desde la capa de negocio.

36

Las ventajas de esta Arquitectura son:

El desarrollo se puede llevar a cabo en varios niveles.

Desarrollos paralelos (en cada capa).

Aplicaciones más robustas debido al encapsulamiento.

En caso de que alguna capa tenga un cambio, sólo se atacará al nivel requerido sin

tener que revisar entre código mezclado.

Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que

modificar una aplicación monolítica).

Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva

funcionalidad).

Tomando en cuenta los requerimientos de nuestro sistema y las características que tiene el

modelo de arquitectura de tres capas, usaremos este modelo para el desarrollo del sistema,

puesto que esta arquitectura se enfoca a servicios web y ofrece las necesidades estructurales

para nuestro DIMOMU (Figura 26).

37

Figura 26: Arquitectura del Sistema

38

3.2.2. Patrón de diseño Modelo Vista Controlador (MVC)

El patrón de diseño Modelo Vista Controlador (MVC), es un patrón de diseño que fue

inicialmente utilizado para construir interfaces.

MVC consiste de tres tipos de objetos.

El Modelo, que son los objetos de la aplicación, también conocida como lógica de

negocio, o lógica de aplicación.

La Vista, que especifica la visualización de los datos, algunas veces conocida como

lógica de presentación.

El controlador, es el coordinador entre la vista y el modelo, es decir, define la forma

en que la interfaz de usuario reacciona ante la entrada de usuario.

MVC desacopla el concepto de interfaz de usuario y lógica de negocio para aumentar la

flexibilidad y modularidad del software, posiblemente permitiendo que el código pueda ser

reutilizado.

Finalmente, la idea es lograr separar responsabilidades entre las personas que trabajan para

un proyecto de desarrollo de software; es decir, descomponer el problema en módulos

funcionales, (entre ellos el diseño gráfico), lo que se traduce, en enfocar de una forma

reduccionista la solución de un proyecto software.

El flujo de control, en este patrón de diseño, generalmente es el siguiente:

El usuario interactúa con la interfaz de alguna manera (ej. presionando un botón, un

enlace).

El controlador recibe (por parte de los objetos de la interfaz vista) la notificación de la

acción solicitada por el usuario.

El controlador accede al modelo, posiblemente actualizando los datos enviados por el

usuario.

El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de

usuario.

La vista usa el modelo para generar la interfaz apropiada para el usuario donde se

refleja los cambios en el modelo.

En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que

el controlador envíe los datos del modelo a la vista.

39

La interfaz espera por nuevas interacciones de usuario para iniciar nuevamente el

ciclo (Figura 27).

Figura 27: MVC

40

3.3. Estimación de Costo

Mensual Por 10 Meses Dos Ingenieros

Salario por Ingeniero $8,000 $80,000 $160,000 Equipo de cómputo $12,000 $12,000 $24,000 Depreciación (10%) -1,200

10800 -2,400 21600

Memoria USB 4G $150 $300 $300 Luz $120 $1,200 $1,200 Internet $350 $3,500 $3,500 Aplicaciones y Software

Windows 7 $3,400 $3,400 SQLServer 2008 express

$0 $0

FrameWork 4.0 $0 $0 MonoDevelop $0 $0 Total $99,200 $190,000

Figura 28: Estimación de Costos

41

3.4. Wi-Fi

Cuando hablamos de WIFI nos referimos a una de las tecnologías de comunicación

inalámbrica mediante ondas más utilizada hoy en día. WIFI, también llamada WLAN

(wireless lan, red inalámbrica) o estándar IEEE 802.11. WIFI no es una abreviatura

deWireless Fidelity, simplemente es un nombre comercial.

En la actualidad podemos encontrarnos con dos tipos de comunicación WIFI:

802.11b, que emite a 11 Mb/seg, y

802.11g, más rápida, a 54 MB/seg

De hecho, son su velocidad y alcance (unos 100-150 metros en hardaware asequible) lo

convierten en una fórmula perfecta para el acceso a internet sin cables.

Para tener una red inalámbrica en casa sólo necesitaremos un punto de acceso, que se

conectaría al módem, y un dispositivo WIFI que se conectaría en nuestro aparato. Existen

terminales WIFI que se conectan al PC por USB, pero son las tarjetas PCI (que se insertan

directamente en la placa base) las recomendables, nos permite ahorrar espacio físico de

trabajo y mayor rapidez. Para portátiles podemos encontrar tarjetas PCMI externas, aunque

muchos de los aparatos ya se venden con tarjeta integrada.

42

4. Capítulo: Desarrollo e implementación del sistema

A continuación se describirá a detalle el proceso seguido para el desarrollo del sistema

DIMOMU.

4.1. Página de inicio

Se muestra la página de inicio la cual cuenta con 4 pestañas, la primera muestra la

bienvenida al sistema como se muestra a continuación (Figura 28).

Figura 29: Inicio

43

4.2. Acerca de DIMOMU

La segunda pestaña acerca de DIMOMU Muestra una descripción del trabajo terminal, tanto

directores como los desarrolladores del Sistema (Figura 29).

Figura 30: Acerca de Dimomu

4.3. Crear Secuencia

La Cuarta pestaña hace referencia a la página donde se diseña las secuencias para los móviles

como se muestra a continuación (Figura 30).

Figura 31: Crear Secuencia

44

4.4. Servicio

Debido a la magnitud del sistema el servicio es la parte fundamental, ya que este se encarga

de iniciar el sistema además de encargarse de la sincronización de las mismas, debido a que

en todo momento hace consultar a la base de datos para obtener las secuencias y mandarlas a

la página correspondiente.

Es un aspx se programo de una forma asíncrona para poder utilizar hilos y gestionar mejor las

consultas a la base de datos a continuación el código.

4.4.1. ThreadStart

Se crea una instancia de la clase ThreadStart con el fin que se cree un subproceso

administrado, el método que se ejecuta en el subproceso queda representado por un delegado

ThreadStart o ParameterizedThreadStart que se haya pasado al constructor Thread. Pero el

subproceso no comenzará a ejecutarse hasta que se llame al método Thread.Start. La

ejecución comenzará en la primera línea del método representado por el delegado

ThreadStart o ParameterizedThreadStart.

45

4.4.2. Thread

Se crea una instancia debido a la problemática del sistema se decidió utilizar un hilo el cual

pueda administrar los 25 procesos paralelamente, con esto se evita el problema que cuando

cargan las paginas y estén recibiendo la información no salga el error de tiempo de espera.

4.4.3. GetSecuencia

Este método es el que se encarga de establecer la conexión a la base de datos para que el

servicio este funcionando continuamente, a continuación la clase ClassConexion de nuestro

sistema.

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.SqlClient; using System.Text; using System.Threading; ///<summary> /// Summary description for ClassConexion ///</summary> publicclassClassConexion { privateSqlConnection cn; public ClassConexion() { string strConnexion = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\Chas7p\\Documents\\Visual Studio 2010\\WebSites\\TrabajoTerminal\\App_Data\\ASPNETDB.MDF;Integrated Security=True;User Instance=True"; cn = newSqlConnection(strConnexion); } publicvoid open() { cn.Open(); } publicvoid close() { cn.Close(); } publicstring Secuencia(int pag) { string sec = ""; SqlDataReader myReader = null; string strQuery = "SELECT Secuencia FROM Pagina_Secuencia WHERE (pagina = " + pag + ")";

46

try { SqlCommand cmd = newSqlCommand(strQuery, cn); myReader = cmd.ExecuteReader(); while (myReader.Read()) { sec = myReader["secuencia"].ToString(); } myReader.Close(); } catch (Exception ex) { sec = ex.ToString(); cn.Close(); } finally { } return sec; } string strcad; publicvoid secuenciaFinal() { string[] sec = newstring[25]; SqlDataReader myReader = null; string strQuery = "SELECT Secuencia FROM Pagina_Secuencia"; try { SqlCommand cmd = newSqlCommand(strQuery, cn); myReader = cmd.ExecuteReader(); int i = 0; while (myReader.Read()) { sec[i] = myReader["secuencia"].ToString(); i++; } myReader.Close(); string[] sec2 = newstring[25]; int indexer = 0; for (; ; ) { Thread.Sleep(35000); //indexer = 0; sec2[0] = ""; sec2[1] = ""; sec2[2] = "";

47

sec2[3] = ""; sec2[4] = ""; sec2[5] = ""; sec2[6] = ""; sec2[7] = ""; sec2[8] = ""; sec2[9] = ""; sec2[10] = ""; sec2[11] = ""; sec2[12] = ""; sec2[13] = ""; sec2[14] = ""; sec2[15] = ""; sec2[16] = ""; sec2[17] = ""; sec2[18] = ""; sec2[19] = ""; sec2[20] = ""; sec2[21] = ""; sec2[22] = ""; sec2[23] = ""; sec2[24] = ""; for (i = 0; i < 25; i++) { sec2[i] += sec[i].Substring(indexer, 1); strcad = ConvertStringArrayToString(sec2); } string strquery2 = "UPDATE Secuencia SET Secuencia=@Estado"; SqlCommand cmd2 = newSqlCommand(strquery2, cn); cmd2.Parameters.AddWithValue("@Estado", strcad); int rows = cmd2.ExecuteNonQuery(); if (indexer == 4) { indexer = 0; } else { indexer++; } } } catch (Exception ex) { //sec = ex.ToString(); cn.Close(); } } staticstring ConvertStringArrayToString(string[] sec2) { // // Concatenate all the elements into a StringBuilder. // StringBuilder builder = newStringBuilder(); foreach (string value in sec2)

48

{ builder.Append(value); } return builder.ToString(); } publicstring prueba() { string sec = ""; SqlDataReader myReader = null; string strQuery = "SELECT Secuencia FROM Secuencia"; try { SqlCommand cmd = newSqlCommand(strQuery, cn); myReader = cmd.ExecuteReader(); while (myReader.Read()) { sec = myReader["Secuencia"].ToString(); } myReader.Close(); } catch (Exception ex) { sec = ex.ToString(); cn.Close(); } finally { } return sec; } }

49

4.5. Creando una Secuencia

A continuación se muestra el diseño de cada una de las secuencias que mostraran los

dispositivos móviles.

4.5.1. Interfaz grafica

Se muestra la interfaz grafica donde el usuario diseña las secuencias, en este proyecto se

limita a 25 dispositivos móviles, lo cual se representan por un select de html con dos

opciones blanco y negro a continuación el aspx de la página.

<%@PageTitle=""Language="C#"MasterPageFile="~/Site.master"AutoEventWireup="true"CodeFile="CrearSecuencia.aspx.cs"Inherits="CrearSecuencia"%> <asp:ContentID="Content1"ContentPlaceHolderID="HeadContent"Runat="Server"> <styletype="text/css"> .style1 { height: 21px; } #Select1 { width: 200px; } #Select2 { width: 200px; } #Select3 { width: 200px; } </style> </asp:Content> <asp:ContentID="Content2"ContentPlaceHolderID="MainContent"Runat="Server"> <tablestyle="width:100%;"> <tr> <thclass="style1"> Columna1</th> <thclass="style1"> Columna2</th> <thclass="style1"> Columna3</th> <thclass="style1"> Columna4</th> <thclass="style1"> Columna5</th> </tr> <tr> <td> <selectid="Select1"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor">

50

<optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select></td> <td> <selectid="Select2"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select3"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select4"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select5"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> </tr> <tr> <td> <selectid="Select6"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select7"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select8"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select9"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option>

51

<optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select10"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> </tr> <tr> <td> <selectid="Select11"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select12"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select13"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select14"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select15"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> </tr> <tr> <td> <selectid="Select16"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td>

52

<selectid="Select17"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select18"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select19"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select20"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> </tr> <tr> <td> <selectid="Select21"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select22"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> &nbsp;</td> <td> <selectid="Select23"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td> <selectid="Select24"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> <td>

53

<selectid="Select25"name="D1"style="width:150px"onchange="this.style.backgroundColor=this.options[this.selectedIndex].style.backgroundColor"> <optionvalue="1"style="background: #ffffff;">blanco</option> <optionvalue="0"style="background: #000000;">negro</option> </select> </td> </tr> </table> <center><asp:ButtonID="Button1"runat="server"Text="Guardar"/></center> </asp:Content>

Blanco para cuando el dispositivo este encendido y negro para cuando este apagado como se

muestra a continuación (Figura 31).

Figura 32: Interfaz Grafica para crear una secuencia

54

4.5.2. Creación de la Palabra ESCOM

En esta parte se muestra como se diseño la palabra ESCOM en la interfaz grafica.

4.5.2.1. Letra E

Para formar la letra E en nuestra matriz de 5*5, simulando cada select como si fuera un

dispositivo móvil y dar un panorama de cómo se visualizaría en ellos, este fue el resultado en

nuestra letra E (Figura 32).

Figura 33: Creación de la letra E

55

4.5.2.2. Letra S

A continuación se muestra la letra S en nuestra interfaz grafica (Figura 33).

Figura 34: Creación de la letra s

4.5.2.3. Letra C

A continuación se muestra la letra C en nuestra interfaz grafica (Figura34).

Figura 35: Creación de la letra c

56

4.5.2.4. Letra O

A continuación se muestra la letra O en nuestra interfaz grafica (Figura 35).

Figura 36: Creación de la letra O

4.5.2.5. Letra M

A Continuación se muestra la letra m en nuestra interfaz grafica (Figura 36).

Figura 37: Creación de la letra M

57

4.5.3. Sincronización de los dispositivos móviles

Esta parte es la fundamental de nuestro sistema la sincronización de los dispositivos móviles,

como ya se menciono el servidor es el que tiene toda la carga de nuestro sistema debido a que

siempre está funcionando y en un lapso de 35 segundos cambia la secuencia, este tiempo fue

el más óptimo en nuestras pruebas para que los 25 dispositivos móviles se conectara y se

alcanzara a apreciar el cambio de secuencia en su forma total.

El cliente en este caso el dispositivo móvil ingresa a la url ejemplo:

http://localhost:6655/TrabajoTerminal/1.aspx,

http://localhost:6655/TrabajoTerminal/2.aspx, así sucesivamente hasta que ingresan los 25

dispositivos móviles, con el fin de poder sincronizarlo se utilizo en la cabecera de cada aspx

una etiqueta que refresca la pagina cada 2 segundos con el fin de conectarse al servicio y

obtener la cadena que le corresponde.

<headrunat="server"> <title></title> <metahttp-equiv="refresh"content="2,url=1.aspx"/> </head>

A continuación el código del lado del servidor que obtiene la cadena y cambia al color

correspondiente cada dispositivo móvil.

protectedvoid Page_Load(object sender, EventArgs e) { string cad, cad2; ClassConexion ccn = newClassConexion(); ccn.open(); cad = ccn.prueba(); cad2 = cad.Substring(0, 1); if (cad2 == "0") { pageBody.Attributes.Add("bgcolor", "black"); } if (cad2 == "1") { pageBody.Attributes.Add("bgcolor", "white"); } ccn.close(); }

58

5. Capitulo: Pruebas y Resultados Al final del desarrollo del Sistema de visualización en dispositivos móviles para multitudes

(DiMoMu) se obtuvieron los siguientes resultados al simularlo en una pc de escritorio con 25

ventanas simulando cada una de ellas como si fuera el dispositivo móvil los resultados fueron los

siguientes.

5.1. Resultado de la letra E

A continuación se muestra la simulación de la letra E (Figura 37).

Figura 38: Simulación letra E

59

5.2. Resultado de la letra S

A Continuación se muestra la simulación de la letra S (Figura 38).

Figura 39: Simulación de la letra S

60

5.3. Resultado de la letra C

A continuación se muestra la simulación de la letra C (Figura 39).

Figura 40: Simulación de la letra C

61

5.4. Resultado de la letra O

A continuación se muestra la simulación de la letra O (Figura 40).

Figura 41: Simulación de la letra O

62

5.5. Resultado de la letra M

A continuación se muestra la simulación de la letra M (Figura 41).

Figura 42: Simulación de la letra M.

63

5.6. Palabra ESCOM

A continuación se muestra la palabra completa con cada una de sus letras (Figura 42).

Figura 43: Palabra ESCOM

64

6. Capítulo: Conclusiones

El hecho de contar con un Sistema de visualización en dispositivos móviles para multitudes,

sirve como un parte aguas para la integración de varios dispositivos móviles con tal de ser

usado por un gran número de personas y al mismo tiempo.

Se Implemento satisfactoriamente el sistema de visualización de dispositivos

móviles, trabajando colaborativamente entre ellos.

Se logro coordinar y sincronizar los dispositivos móviles con la menor latencia

posible para poder visualizar cada secuencia propuesta.

Se logro implementar la interfaz grafica que crea las secuencias a mostrar en los

dispositivos móviles, siendo lo más fácil de usar y amigable con el usuario.

Se Logro implementar tanto los sistemas como hardware y software, con la limitación

de 25 dispositivos móviles.

65

7. Capítulo: Trabajo a futuro

Como trabajo a futuro se pretende que:

El Sistema de visualización en dispositivos móviles para multitudes sea integrado en

algún evento masivo.

Ampliar la matriz de dispositivos móviles para obtener una mejor resolución.

Mejorar la interfaz grafica capaz de poder diseñar mejores secuencias, con algunas

texturas y ampliar la gama de color.

Migrar la aplicación a código nativo de ios y android.

66

8. Referencias

[1] César San Juan Pastor, Programación multimedia y dispositivos móviles, Ibergarceta

Publicaciones S.L.; Edición: 1

[2] Sistema VideoWall[online]. España, 2014, Disponible en:

http://www.rpg.es/sistemas-videowall-multipantalla-tft.php

[3] Sistema Multipantalla controlada mediante pellizcos[online].Tokio, 2012 Disponible en :

http://es.engadget.com/2012/11/02/interfaz-multipantalla-universidad-tokio/

[4] María José López, Libro Blanco de las aplicaciones móviles, Consejería de Economía y

Hacienda de la Comunidad de Madrid.

[5]Microsoft SQL server 2008[online]. España, 2014 Disponible

en:http://www.microsoft.com/es-es/sqlserver/product-info/why-sql-server.aspx

[6] J. Rumbaugh, I. Jacobson, G. Booch, El lenguaje Unificado de Modelado. Manual de

Referencia, Madrid: Pearson Educación, (2000), p: 24.

[7] Ian Sommerville, Ingeniería del Software, (7ma Edición), Madrid: Pearson Educación,

(2005), p: 108.