ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS...

46
ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS RUTAS Y UBICACIÓN GEOGRÁFICA EN TIEMPO REAL PARA EL SISTEMA DE TRANSPORTE PÚBLICO AUTORES: JUAN MANUEL SALAMANCA VERA LUCIANO ALEJANDRO CAMACHO JAIMES Tesis de Ingeniería en Telecomunicaciones UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA PROYECTO CURRICULAR DE INGENIERIA EN TELECOMUNICACIONES Bogotá D.C., Colombia 2017

Transcript of ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS...

Page 1: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS

RUTAS Y UBICACIÓN GEOGRÁFICA EN TIEMPO REAL PARA EL

SISTEMA DE TRANSPORTE PÚBLICO

AUTORES:

JUAN MANUEL SALAMANCA VERA

LUCIANO ALEJANDRO CAMACHO JAIMES

Tesis de Ingeniería en Telecomunicaciones

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS

FACULTAD TECNOLÓGICA

PROYECTO CURRICULAR DE INGENIERIA EN TELECOMUNICACIONES

Bogotá D.C., Colombia

2017

Page 2: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

JUAN MANUEL SALAMANCA VERA

LUCIANO ALEJANDRO CAMACHO JAIMES

ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS

RUTAS Y UBICACIÓN GEOGRÁFICA EN TIEMPO REAL PARA EL

SISTEMA DE TRANSPORTE PÚBLICO

Tesis presentada al Programa de Ingeniería en Telecomunicaciones de la

Universidad Distrital “Francisco José de Caldas” Facultad Tecnológica, para

obtener el título de Ingeniero en Telecomunicaciones

Programa:

Ingeniería en Telecomunicaciones

Director:

Ing. Giovani Mancilla Gaona

Bogotá, Febrero de 2017

Page 3: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Resumen

La movilidad de la población en grandes ciudades, es uno de los temas principales

a cubrir dentro de las políticas ciudadanas, para esto, se desarrollan constantes

estrategias que proporcionen alternativas de transporte, que cubran estas

necesidades. A medida que crecen las ciudades, de igual manera se incrementa

los medios de transporte ofrecidos a las personas de una ciudad, esto ha

generado diferentes problemas para encontrar rutas disponibles y rápidas,

incrementando los tiempos de llegada desde una ubicación a otra. El uso de la

tecnología utilizada para este proyecto, representa una alternativa eficiente para la

ubicación de los medios de transportes disponibles dentro de una ciudad, a esto

se le suma el poder obtener con precisión la ubicación de los vehículos

disponibles y su recorrido de viaje.

Para el desarrollo de este proyecto se explotó las características internas de

hardware y software de los dispositivos Android, como el uso de los módulos GPS,

GSM, acelerómetros, brújulas, entre otros, que permiten desarrollar una alternativa

eficiente para la ubicación geográfica de vehículos de transporte público. Mediante

una aplicación desarrollada para Android e instalada en una Tablet o Smartphone

y asignado a un conductor, ruta y un vehículo de transporte público se puede

obtener en tiempo real información como; recorrido, ubicación del vehículo,

número de paraderos, entre otros. Todos estos datos se visualizaran en una

aplicación para Android con función de usuario, la cual tomara los datos de las

posiciones geográficas que la aplicación conductor ha enviado a un servidor Web

centralizado.

Palabras clave: gps, android, transporte, vehículos, aplicación, node.js.

Page 4: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Abstract

Mobility of the population in large cities is one of the main topics to be covered

within the citizen's policies. To this end, constant strategies are developed to

provide transportation alternatives that cover these needs. As cities grow, so does

the means of transportation offered to the people of a city, this has created

different problems in finding available and fast routes, increasing arrival times from

one location to another. The use of the technology used for this project represents

an efficient alternative for the location of the means of transport available within a

city, to this is added the ability to accurately obtain the location of the available

vehicles and their travel.

The development of this project exploited the internal hardware and software

features of Android devices, such as the use of GPS modules, GSM,

accelerometers, compasses, among others, to develop an efficient alternative for

the geographical location of public transport vehicles. Using an application

developed for Android and installed on a Tablet or Smartphone and assigned to a

driver, route and a public transport vehicle can be obtained in real time information

such as; Travel, vehicle location, number of stops, among others. All this data will

be displayed in an Android application with user function, which will take the data

of the geographical positions that the driver application has sent to a centralized

Web server.

Keywords: gps, android, transport, vehicles, application, node.js

Page 5: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Contenido

Resumen ................................................................................................................. 3

Abstract ................................................................................................................... 4

Lista de Términos .................................................................................................... 6

Glosario ................................................................................................................... 7

1. INTRODUCCIÓN ............................................................................................. 8

2. JUSTIFICACIÓN .............................................................................................. 8

3. DESCRIPCIÓN DEL PROYECTO ................................................................... 9

3.1. PLANTEAMIENTO DEL PROBLEMA ........................................................ 9

4. OBJETIVOS ..................................................................................................... 9

4.1.1. OBJETIVO GENERAL ......................................................................... 9

4.1.2. OBJETIVOS ESPECÍFICOS ............................................................. 10

5. MARCO TEÓRICO CONCEPTUAL ............................................................... 11

5.1.1. ANDROID .......................................................................................... 11

5.1.2. GOOGLE MAPS ................................................................................ 11

5.1.3. NODE.JS ........................................................................................... 13

5.1.4. SERVIDOR WEB ............................................................................... 13

5.1.5. BASES DE DATOS ........................................................................... 18

5.1.6. SISTEMA DE POSICIONAMIENTO GLOBAL - GPS ........................ 20

5.1.7. LA TRANSMISIÓN DE DATOS EN LA TELEFONÍA MÓVIL ............. 20

6. DESARROLLO DEL PROYECTO .................................................................. 24

6.1. DESARROLLO DE PLATAFORMA WEB ................................................ 25

6.1.1. SERVIDOR PARA TRANSACCIÓN DE DATOS ............................... 26

6.1.2. PÁGINA WEB DE ADMINISTRACIÓN .............................................. 28

6.2. APLICACIÓN NO. 1 – CONDUCTOR ...................................................... 32

6.3. APLICACIÓN NO. 2 – USUARIO ............................................................. 37

6.4. SERVIDOR DE BASE DE DATOS ........................................................... 39

7. PRUEBAS TÉCNICAS ................................................................................... 41

8. CONCLUSIONES .......................................................................................... 43

9. BIBLIOGRAFÍA .............................................................................................. 45

Page 6: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Lista de Términos

AJAX: Asynchronous JavaScript And XML

App: Aplicación Informática (del inglés application)

CSS: Cascading Style Sheets

DBA: Data Base Administrator

SQL: Structured Query Language

AWS: Amazon Web Services

VPS: Virtual Private Server

HTTP: Hypertext Transfer Protocol

GPRS: General Packet Radio Service

EDGE: Enhanced Data rates for GSM Evolution

UMTS: Universal Mobile Telecommunications System

WCDMA: Wideband Code Division Multiple Access

CDMA: Code Division Multiple Access

HSDPA: High Speed Downlink Packet Access

LTE: Long Term Evolution

SOAP: Simple Object Access Protocol

XML: Extensible Markup Language

REST: Representational State Transfer

RPC: Remote Procedure Calls

WSDL: Web Services Description Language

JSON: JavaScript Object Notation

FDD: Frequency Division Duplexing

TDD: Time Division Duplexing

MIMO: Multiple Input Multiple Output

Page 7: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Glosario 2G: Segunda generación de telefonía móvil.

3G: Abreviatura de tercera generación de transmisión de voz y datos a través de

la telefonía móvil.

4G: Abreviatura de la cuarta generación de tecnologías de telefonía móvil.

API: (Application Programming Interface), interfaz de programación de

aplicaciones.

Google Maps: Servidor de aplicaciones de mapas en la web, pertenece a la

empresa Google.

GPS: (Global Position System) Sistema de posicionamiento global que permite

determinar la posición de un objeto (persona, un vehículo etc.).

HTML: Lenguaje de marcas de hipertexto para la elaboración de páginas web.

HTTP: (Hypertext Transfer Protocol) usado para la transacción de la World Wide

Web.

JavaScript: Lenguaje de programación de uso principalmente para desarrollo de

páginas web dinámicas.

MySQL: Gestor de bases de datos relacional, multihilo y multiusuario.

Node.JS: Intérprete Javascript del lado del servidor

SOAP: Es un protocolo estándar que define cómo dos objetos en diferentes

procesos pueden comunicarse por medio de intercambio de datos XML.

WSDL: Es un formato del Extensible Markup Language (XML) que se utiliza para

describir servicios web (WS).

XML: Es un meta-lenguaje que permite definir lenguajes de marcas, utilizado para

almacenar datos en forma legible.

<div>: de división - Sirve para crear secciones o agrupar contenidos en el código

HTML.

Tiempo real: Un sistema de tiempo real es un sistema informático que

interacciona con su entorno físico y responde a los estímulos del entorno dentro

de un plazo de tiempo determinado. No basta con que las acciones del sistema

sean correctas, sino que, además, tienen que ejecutarse dentro de un intervalo de

tiempo determinado.

Page 8: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

1. INTRODUCCIÓN

Los sistemas de ubicación geográfica en tiempo real para los sistemas de

transporte, presentan grandes prestaciones a la sociedad, permitiendo obtener la

información necesaria de las rutas dentro de una ciudad. A esto se le adicionan

detalles específicos como el recorrido ofrecido por los distintos vehículos de

transporte público, número de paraderos e inclusive conocer el tiempo de llegada

a cada estación, entre muchos servicios más.

El uso de dispositivos móviles como Android, han simplificado la forma de cómo

accedemos a servicios por medio de las aplicaciones, mejorando la productividad,

tanto para ofrecer mecanismos de información y obtención de estos de forma

simple y económica.

Con la llegada de múltiples servicios en la nube y la rápida difusión de Internet

para dispositivos móviles, se ha incrementado la demanda de servicios de acceso

en tiempo real, es por esta razón que en la actualidad, tener conocimiento del

tiempo de llegada del transporte urbano a cada punto o paradero, genera una

necesidad de ahorrar tiempos al momento de esperar una determinada ruta,

mejorando así la forma en que la población de una ciudad se desplaza de un

punto a otro.

2. JUSTIFICACIÓN

La solución plasmada en esta tesis, quiere mostrar una alternativa de solución

para la ubicación en rutas de los sistemas de transporte públicos. El conocer y

encontrar rutas acordes a las necesidades de la población de grandes ciudades es

uno de los objetivos principales a tratar dentro de las urbes modernas. Mediante el

uso de la tecnología, como dispositivos móviles Android, el uso de las

telecomunicaciones (GPS, Red celular, WIFI) y la implementación de sistemas de

información (bases de datos, servidores web), permiten que la información este

centralizada y accesible desde cualquier lugar, tan sólo con una conexión a

Internet.

Page 9: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

3. DESCRIPCIÓN DEL PROYECTO

3.1. PLANTEAMIENTO DEL PROBLEMA

En la ciudad de Bogotá un sistema organizado de transporte público es

fundamental para el desarrollo de la misma ya que con el aumento de la población

y el crecimiento de la ciudad hacia la periferia, los habitantes necesitan recorrer

distancias más largas para llegar a su destino. Con la llegada sistemas como

Transmilenio y SITP se ha organizado de una forma más eficiente la forma en que

los ciudadanos se transportan, aun así, no se puede determinar con precisión la

llegada de los buses a los diferentes paraderos.

Existen aplicaciones para dispositivos móviles que hacen más fácil tomar un bus,

ya que indican la ruta y las paradas que este hace, algunas aplicaciones indican

un tiempo estimado de llegada del bus al paradero, pero ese tiempo estimado no

está ligado a una ubicación geográfica en tiempo real, por esta razón es necesaria

la creación de una herramienta tecnológica que permita al usuario de transporte

publico conocer la ubicación del bus que está esperando y de esta manera permitir

que este conozca el trayecto y posición del bus a esperar y así ahorrar varios

minutos e incluso horas esperando un bus que aún se encuentra lejos del

paradero.

4. OBJETIVOS

4.1.1. OBJETIVO GENERAL

Desarrollar una plataforma para la visualización de las rutas de transporte público

y su ubicación geográfica en tiempo real, mediante el uso de dispositivos móviles

Android.

Page 10: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

4.1.2. OBJETIVOS ESPECÍFICOS

Crear una primera aplicación en Android con función Conductor e interfaz

de autenticación ante servidor web, que permita la visualización del

trayecto a recorrer y envío de los cambios en su ubicación geográfica al

servidor.

Implementar de una segunda aplicación en Android, basada en la

primera, con función de usuario final (pasajero) para la visualización de

las diferentes rutas de transporte y ubicación de los buses y paraderos.

Desarrollar una plataforma bajo Node.js e interfaz Web para la

administración de rutas, usuarios y vehículos, con almacenamiento

sobre una base de datos.

Establecer un servidor de base de datos implementado en MySQL, que

almacene la información de la plataforma web y los datos enviados por

los dispositivos móviles.

Page 11: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

5. MARCO TEÓRICO CONCEPTUAL

5.1.1. ANDROID

Android es el sistema operativo más reciente para dispositivos móviles, adquirido

por Google y en unión con fabricantes de Hardware y Software se conforma la

Open Handset Alliance, quienes de forma colaborativa desarrollaron de forma

abierta el sistema operativo para fomentar la innovación de dispositivos móviles y

ofrecer altas experiencias de usuario, mayor a la de otros dispositivos móviles[1].

Android fue construido desde cero para permitir a los desarrolladores crear

aplicaciones móviles atractivas que aprovechen al máximo todo lo que un teléfono

tiene para ofrecer. Fue construido para ser verdaderamente abierto. Por ejemplo,

una aplicación puede llamar a cualquiera de las funciones principales del teléfono,

como hacer llamadas, enviar mensajes de texto o utilizar la cámara, lo que permite

a los desarrolladores crear experiencias más complejas y más coherentes para los

usuarios.

Android se basa en el kernel Linux abierto. Además, utiliza una máquina virtual

personalizada diseñada para optimizar recursos de memoria y hardware en un

entorno móvil. Android es de código abierto; Puede ampliarse ampliamente para

incorporar nuevas tecnologías de vanguardia a medida que surjan. La plataforma

seguirá evolucionando a medida que la comunidad de desarrolladores trabaje

juntos para crear aplicaciones móviles innovadoras [2].

5.1.2. GOOGLE MAPS

Google Maps fue desarrollado originalmente por dos hermanos Daneses, Lars y

Jens Rasmussen, co-fundadores de Where 2 Technologies una empresa dedicada

a la creación de soluciones de mapeo.

La empresa fue adquirida por Google en octubre de 2004, y los dos hermanos

luego crearon Google Maps (también son los que están detrás de Google Wave).

Page 12: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

¿Cómo funciona Google Maps?

Es sólo HTML, CSS y JavaScript trabajando junto. Los mapas son solo imágenes

que se cargan en el fondo a través de peticiones ejecutadas por la tecnología de

AJAX, y se insertan en etiquetas <div> dentro de la página HTML. Mientras se

navega en el mapa, el API envía información acerca de las nuevas coordenadas y

los niveles de “zoom” del mapa a través de AJAX y esto retorna nuevas

imágenes.

El API consiste de archivos JavaScript que contienen las clases, métodos y

propiedades que se usan para el comportamiento de los mapas.

Google Maps ha dispuesto su libre utilización, ofreciendo grandes características

a cualquier persona con conocimientos avanzados o no.

Coordenadas

Las coordenadas son usadas para expresar las ubicaciones en el mundo. Google

Maps usa el sistema de coordenadas Word Geodetic System 84 (WGS 84), el cual

es el mismo usado por el sistema de posicionamiento global (GPS). Las

coordenadas se expresan usando Latitud y Longitud. (ver figura 1)

La latitud se mide desde el Sur al Norte y la longitud se mide desde el Oeste al

Este.

Figura 1: El centro del mundo, latitud 0 y longitud 0

Page 13: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

El sistema de coordenadas usadas, están expresadas usando números decimales

separados por coma. La latitud siempre precede la longitud.

La latitud es positiva si va después del punto mostrado en el mapa y negativo si va

antes. La longitud es positiva si va arriba del punto y negativa si va debajo. [3]

5.1.3. NODE.JS

Node es un intérprete Javascript del lado del servidor que cambia la noción de

cómo debería trabajar un servidor. Su meta es permitir a un programador construir

aplicaciones altamente escalables y escribir código que maneje decenas de miles

de conexiones simultáneas en una máquina física.

Node.js proporciona una manera fácil para construir programas de red escalables

y en comparación con otras aplicaciones de servidor como Java™ y PHP, donde

cada conexión genera un nuevo hilo que potencialmente viene acompañado de

2MB de memoria. En un sistema que tiene 8 GB de RAM, esto da un número

máximo teórico de conexiones concurrentes de cerca de 4.000 usuarios. A mayor

cantidad de clientes se necesitará más servidores, lo que aumenta los costos de

despliegue de infraestructura aumentando los costos para el despliegue de alguna

solución.

Node.js resuelve el problema cambiando la forma en que se realiza una conexión

con el servidor. En lugar de generar un nuevo hilo de OS para cada conexión (y de

asignarle la memoria acompañante), cada conexión dispara una ejecución de

evento dentro del proceso del motor de Node.js. Node también afirma que nunca

se quedará en punto muerto, porque no se permiten bloqueos y porque no se

bloquea directamente para llamados E/S. Node afirma que un servidor que lo

ejecute puede soportar decenas de miles de conexiones concurrentes [4].

5.1.4. SERVIDOR WEB

Los servidores web son los encargados de recibir las peticiones referidas a

páginas o elementos de la web a través del protocolo http o https y de devolver el

resultado de la petición, que suele ser un recurso alojado en el servidor.

Normalmente es el navegador el que pide al servidor el recurso que desea el

usuario, para finalmente recibir dicho recurso (si fue válida la petición) y traducirle

Page 14: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

si es necesario a su forma legible por el usuario (es decir la traducción de HTML la

hace el navegador). [5]

5.1.4.1. SERVICIOS WEB

El consorcio W3C define los Servicios Web como sistemas software diseñado para

soportar una interacción interoperable máquina a máquina sobre una red. Los

Servicios Web suelen ser APIs Web que pueden ser accedidas dentro de una red

(principalmente Internet) y son ejecutados en el sistema que los aloja.

La definición de Servicios Web propuesta alberga muchos tipos diferentes de

sistemas, pero el caso común de uso de refiere a clientes y servidores que se

comunican mediante mensajes XML que siguen el estándar SOAP.

En los últimos años se ha popularizado un estilo de arquitectura Software

conocido como REST (Representational State Transfer). Este nuevo estilo ha

supuesto una nueva opción de estilo de uso de los Servicios Web. A continuación

se listan los tres estilos de usos más comunes:

Remote Procedure Calls (RPC, Llamadas a Procedimientos Remotos):

Los Servicios Web basados en RPC presentan una interfaz de llamada a

procedimientos y funciones distribuidas, lo cual es familiar a muchos

desarrolladores. Típicamente, la unidad básica de este tipo de servicios

es la operación WSDL (WSDL es un descriptor del Servicio Web, es

decir, el homólogo del IDL para COM).

Las primeras herramientas para Servicios Web estaban centradas en

esta visión. Algunos lo llaman la primera generación de Servicios Web.

Esta es la razón por la que este estilo está muy extendido. Sin embargo,

ha sido algunas veces criticado por no ser débilmente acoplado, ya que

suele ser implementado por medio del mapeo de servicios directamente

a funciones específicas del lenguaje o llamadas a métodos. Muchos

especialistas creen que este estilo debe desaparecer.

Arquitectura Orientada a Servicios (Service-oriented Architecture, SOA).

Los Servicios Web pueden también ser implementados siguiendo los

Page 15: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

conceptos de la arquitectura SOA, donde la unidad básica de

comunicación es el mensaje, más que la operación. Esto es típicamente

referenciado como servicios orientados a mensajes.

Los Servicios Web basados en SOA son soportados por la mayor parte

de desarrolladores de software y analistas. Al contrario que los Servicios

Web basados en RPC, este estilo es débilmente acoplado, lo cual es

preferible ya que se centra en el “contrato” proporcionado por el

documento WSDL, más que en los detalles de implementación

subyacentes.

REST (REpresentation State Transfer). Los Servicios Web basados en

REST intentan emular al protocolo HTTP o protocolos similares mediante

la restricción de establecer la interfaz a un conjunto conocido de

operaciones estándar (por ejemplo GET, PUT,...). Por tanto, este estilo

se centra más en interactuar con recursos con estado, que con mensajes

y operaciones.

5.1.4.2. SERVICIOS REST

REST (Representational State Transfer) es un estilo de arquitectura de software

para sistemas hipermedias distribuidos tales como la Web. El término fue

introducido en la tesis doctoral de Roy Fielding en 2000, quien es uno de los

principales autores de la especificación de HTTP.

En realidad, REST se refiere estrictamente a una colección de principios para el

diseño de arquitecturas en red. Estos principios resumen como los recursos son

definidos y diseccionados. El término frecuentemente es utilizado en el sentido de

describir a cualquier interfaz que transmite datos específicos de un domino sobre

HTTP sin una capa adicional, como hace SOAP. Estos dos significados pueden

chocar o incluso solaparse. Es posible diseñar un sistema software de gran

tamaño de acuerdo con la arquitectura propuesta por Fielding sin utilizar HTTP o

sin interactuar con la Web. Así como también es posible diseñar una simple

interfaz XML+HTTP que no sigue los principios REST, y en cambio seguir un

modelo RPC. Cabe destacar que REST no es un estándar, ya que es tan solo un

estilo de arquitectura. [6]

Page 16: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

5.1.4.3. INTERCAMBIO DE DATOS POR JSON

JSON es un formato ligero de intercambio de datos. Leerlo y escribirlo es simple para humanos, mientras que para las máquinas es simple interpretarlo y generarlo. Está basado en un subconjunto del Lenguaje de Programación JavaScript, Standard ECMA-262 3rd Edition - Diciembre 1999. JSON es un formato de texto que es completamente independiente del lenguaje pero utiliza convenciones que son ampliamente conocidos por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.

JSON está constituído por dos estructuras:

- Una colección de pares de nombre/valor. En varios lenguajes esto se conoce como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.

- Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias.

Estas son estructuras universales; virtualmente todos los lenguajes de programación las soportan de una forma u otra. Es razonable que un formato de intercambio de datos que es independiente del lenguaje de programación se base en estas estructuras.

En JSON, se presentan de estas formas:

Un objeto es un conjunto desordenado de pares nombre/valor. Un objeto comienza con “{“ (llave de apertura) y termine con “}” (llave de cierre). Cada nombre es seguido por “:” (dos puntos) y los pares nombre/valor están separados por “,” (coma).

Figura 2. Representación de un objeto - JSON

Un arreglo es una colección de valores. Un arreglo comienza con [ (corchete izquierdo) y termina con ] (corchete derecho). Los valores se separan por , (coma).

Page 17: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Figura 3. Representación de un arreglo - JSON

Un valor puede ser una cadena de caracteres con comillas dobles, o un número, o true o false o null, o un objeto o un arreglo. Estas estructuras pueden anidarse.

Figura 4. Representación de un valor - JSON

Una cadena de caracteres es una colección de cero o más caracteres Unicode, encerrados entre comillas dobles, usando barras divisorias invertidas como escape. Un carácter está representado por una cadena de caracteres de un único carácter. Una cadena de carateres es parecida a una cadena de caracteres C o Java.

Figura 5. Representación de una cadena string - JSON

Page 18: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Un número es similar a un número C o Java, excepto que no se usan los formatos octales y hexadecimales.

Figura 6. Representación de una cadena número - JSON

Los espacios en blanco pueden insertarse entre cualquier par de símbolos. [7]

5.1.5. BASES DE DATOS

Un sistema de bases de datos sirve para integrar los datos, organizar campos,

registros y archivos. Lo componen los siguientes elementos:

- Hardware. Máquinas en las que se almacenan las bases de datos.

Incorporan unidades de almacenamiento masivo para este fin.

- Software. Es el sistema gestor de bases de datos. El encargado de

administrar las bases de datos.

- Datos. Incluyen los datos que se necesitan almacenar y los metadatos que

son datos que sirven para describir lo que se almacena en la base de datos.

- Usuarios. Personas que manipulan los datos del sistema. Hay tres

categorías. [8]

Page 19: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

5.1.5.1. TIPOS DE BASES DE DATOS

Las bases de datos se pueden clasificar de varias maneras, según el contexto que

se esté manejando o su utilidad.

- Bases de datos dinámicas

Estas son bases de datos donde la información almacenada se modifica con el

tiempo, permitiendo operaciones como actualización, borrado y adición de datos,

además de las operaciones fundamentales de consulta.

De acuerdo a su modelo de administración de datos:

- Bases de datos Jerárquicas

En este modelo los datos se organizan en una forma similar a un árbol (visto al

revés), en donde un nodo padre de información puede tener varios hijos. El nodo

que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los

conoce como hojas. Son especialmente útiles en el caso de aplicaciones que

manejan un gran volumen de información y datos muy compartidos permitiendo

crear estructuras estables y de gran rendimiento.

- Bases de datos de red

Éste es un modelo ligeramente distinto del jerárquico; la diferencia fundamental es

la modificación del concepto de nodo: se permite que un mismo nodo tenga varios

padres (posibilidad no permitida en el modelo jerárquico). Mejora la redundancia

de datos sin embargo la administración es más compleja y limita el uso del usuario

final.

- Bases de datos transaccionales

Son bases de datos cuyo único fin es el envío y recepción de datos a grandes

velocidades, estas bases son muy poco comunes y están dirigidas por lo general

al entorno de análisis de calidad, datos de producción e industrial.

- Bases de datos relacionales

Éste es el modelo utilizado en la actualidad para modelar problemas reales y

administrar datos dinámicamente. En este modelo, el lugar y la forma en que se

almacenen los datos no tienen relevancia (a diferencia de otros modelos como el

jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de

entender y de utilizar para un usuario esporádico de la base de datos.

Page 20: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

La información puede ser recuperada o almacenada mediante "consultas" que

ofrecen una amplia flexibilidad y poder para administrar la información. [9]

5.1.6. SISTEMA DE POSICIONAMIENTO GLOBAL - GPS

El sistema de posicionamiento global (GPS) es un sistema que permite determinar

en toda la Tierra la posición de un objeto (una persona, un vehículo) con una

precisión de hasta centímetros (si se utiliza GPS diferencial), aunque lo habitual

son unos pocos metros de precisión. El sistema fue desarrollado, instalado y

empleado por el Departamento de Defensa de los Estados Unidos. Para

determinar las posiciones en el globo, el sistema GPS se sirve de 24 satélites y

utiliza la trilateración.

El GPS funciona mediante una red de 24 satélites en órbita sobre el planeta

Tierra, a 20 200 km de altura, con trayectorias sincronizadas para cubrir toda la

superficie de la Tierra. Cuando se desea determinar la posición, el receptor que se

utiliza para ello localiza automáticamente como mínimo tres satélites de la red, de

los que recibe unas señales indicando la identificación y la hora del reloj de cada

uno de ellos. Con base en estas señales, el aparato sincroniza el reloj del GPS y

calcula el tiempo que tardan en llegar las señales al equipo, y de tal modo mide la

distancia al satélite mediante el método de trilateración inversa, el cual se basa en

determinar la distancia de cada satélite al punto de medición. Conocidas las

distancias, se determina fácilmente la propia posición relativa respecto a los

satélites. Conociendo además las coordenadas o posición de cada uno de ellos

por la señal que emiten, se obtiene la posición absoluta o coordenada real del

punto de medición. También se consigue una exactitud extrema en el reloj del

GPS, similar a la de los relojes atómicos que lleva a bordo cada uno de los

satélites [10].

5.1.7. LA TRANSMISIÓN DE DATOS EN LA TELEFONÍA MÓVIL

Para reflejar la evolución de las tecnologías utilizadas en la telefonía móvil se utiliza el concepto de “generación”, de forma que cada generación engloba un

Page 21: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

conjunto de estándares de transmisión de datos (y de voz) que ofrecen unas determinadas prestaciones y calidad de servicio. 1G – Fue la primera generación de telefonía móvil y utilizaba tecnología analógica para la transmisión de información. Se utilizó en los años 80. 2G – Es la segunda generación de telefonía móvil que utiliza fundamentalmente GSM (Global System for Mobile Communications, sistema global para las comunicaciones móviles) como estándar de transmisión de telefonía digital. Permite la transmisión tanto de voz como de datos (por ejemplo, mensajes cortos de texto o SMS). Utiliza varias bandas de frecuencia dependiendo de la región o país. 3G – La 3G es tipificada por la convergencia de la voz y datos con acceso inalámbrico a Internet, aplicaciones multimedia y altas transmisiones de datos. Los protocolos empleados en los sistemas 3G soportan más altas velocidades de información enfocados para aplicaciones más allá de la voz tales como audio (MP3), video en movimiento, video conferencia y acceso rápido a Internet, sólo por nombrar algunos. [11]

5.1.7.1. Transmisión de datos en 3G Estándar 3G: EDGE EDGE (Enhanced Data rates for GSM of Evolution o Tasas de Datos Mejoradas

para la evolución de GSM) también conocida como EGPRS (Enhanced GPRS) es

el siguiente estándar que aparece en la telefonía móvil para la transmisión de

datos. Esta tecnología funciona con redes GSM que tengan implementado GPRS

y las actualizaciones necesarias propias de EDGE, por lo que es relativamente

sencilla su implementación por parte de los operadores.

Debido a su compatibilidad con GSM hay autores que la consideran una

tecnología puente entre 2G y 3G, es decir, 2.5G. Sin embargo, EDGE puede

alcanzar una velocidad de transmisión teórica de 384 Kbps, con lo cual cumple los

requisitos de la ITU para una red 3G, también ha sido aceptado por la ITU como

parte de IMT-2000, de la familia de estándares 3G.

EDGE utiliza modulación GMSK (Gaussian Minimum-Shift Keying) y modulación 8-

PSK (8 Phase Shift Keying) para algunos de los esquemas de modulación y

codificación de datos aumentando así su eficacia.

S

Page 22: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

UMTS (Universal Mobile Telecommunications System o Servicio Universal de

Telecomunicaciones Móviles) es el nombre con el que se engloban todas las

tecnologías incluidas en 3G desligadas de las redes GSM. Precisamente el hecho

de que los operadores hayan necesitado una gran inversión para implantar las

redes UMTS ha ocasionado un gran retraso en su implementación. Este retraso ha

sido cubierto en muchos casos con las tecnologías intermedias 2.5G. La

tecnología de transmisión utilizada en UMTS es WCDMA.

WCDMA es una tecnología móvil inalámbrica de tercera generación que aumenta

las tasas de transmisión de datos de los sistemas GSM. Utiliza como técnica de 36

multiplexación CDMA (multiplexación por división de código). Soporta de manera

satisfactoria una tasa transferencia de datos que va de 144 hasta 512 Kbps para

áreas de cobertura amplias aunque en el estándar se especifican velocidades de

hasta 2 Mbps. El estándar de WCDMA fue desarrollado como el proyecto de la

sociedad 3GPP, que es el acrónimo de 3rd Generation Partnership Project. Esta

organización realiza la supervisión del proceso de elaboración de estándares

relacionados con 3G.

El despliegue de redes UMTS facilita la aparición del servicio conocido como

Internet móvil ya que las velocidades que se pueden alcanzar con esta tecnología

permiten hacer uso de una gran parte de los servicios ofrecidos en Internet,

típicamente la navegación web. De esta forma aparecen en el mercado tanto

teléfonos móviles que soportan la tecnología 3G como módems 3G utilizados para

proporcionar conectividad a ordenadores. Normalmente la conexión de estos

dispositivos al ordenador es mediante un puerto USB. [12]

5.1.7.2. Red Móvil LTE – 4G

Long Term Evolution, conocido por sus siglas como LTE, es una tecnología de

radio, de alta capacidad, estandarizada por la 3GPP.

LTE es una tecnología de radio acceso de 4ta generación, o 4G, desarrollada en

respuesta a la creciente demanda de alta capacidad de ancho de banda en redes

móviles. LTE se introdujo a partir del Release 8 de la 3GPP, como una evolución a

las redes HSPA (rel.6) e I-HSPA (rel.7) [13].

Las soluciones para redes LTE están basadas en una arquitectura plana, de baja

latencia, y con una tecnología de radio de alta capacidad. LTE es una tecnología

de radio acceso con canales o portadoras de ancho de banda en un rango de

1.4MHz hasta 20MHz. Las bandas de frecuencia estándares en que se

Page 23: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

implementa esta tecnología, incluyen las bandas 700MHz, 850MHz, 1700MHz,

1800MHz, 1900MHz, 2100MHz, 2600MHz.

La interfaz de aire comprende tecnologías FDD (Frequency División Duplexing) y

TDD (Time Division Duplexing).

Dependiendo de la tecnología y el ancho de banda de la portadora LTE, el sistema

permite tasas de transferencias de 150Mbps en descarga y de 50Mbps en subida.

El término downlink (bajada) en redes móviles se conoce a la comunicación

en sentido radiobase hacia terminal móvil, mientras que el uplink (subida) se

refiere a la comunicación del terminal móvil hacia la radiobase. [14]

5.1.7.3. VELOCIDAD DE LOS ESTÁNDARES DE LA TELEFONÍA MÓVIL

Tabla con la comparación de la velocidad de transmisión de subida y bajada, que permiten los distintos estándares funcionando actualmente en la telefonía celular. Tabla 1: Comparación de la velocidad de los estándares de la telefonía móvil. [15]

Tecnología Velocidad

promedio de bajada

Velocidad promedio

de subida

GSM (2G) 1.8 kB/s 1.8 kB/s

GPRS (2.5G) 7.2 kB/s 3.6 kB/s

CDMA2000 1×RTT 18 kB/s 18 kB/s

Page 24: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

EDGE (2.75G) 29.6 kB/s 29.6 kB/s

UMTS 3G 48 kB/s 48 kB/s

EDGE (type 2 MS) 59.2 kB/s 59.2 kB/s

EDGE Evolution (type 1 MS) 148 kB/s 59 kB/s

EDGE Evolution (type 2 MS) 237 kB/s 118 kB/s

HSPA (3.5G) 1,706 kB/s 720 kB/s

HSPA+ 5.25 MB/s 1.437 MB/s

LTE (2×2 MIMO) 21.625 MB/s 7.25 MB/s

LTE (4×4 MIMO) 40.750 MB/s 10.750 MB/s

6. DESARROLLO DEL PROYECTO

Para el desarrollo del proyecto se parte del punto inicial de lograr obtener la

ubicación en tiempo real de los vehículos (Buses) en el punto de la ruta en donde

se encuentran y visualizarse en una aplicación de usuario.

Mediante el desarrollo de una App con rol de Conductor y utilizando el GPS de los

dispositivos Android, se obtiene las coordenadas de geolocalización, las cuales

serán enviadas de forma periódica a un servidor de Internet y almacenadas sobre

una base de datos. Las coordenadas almacenadas permiten ser consultadas por

la App de Usuario y a su vez visualizarse sobre un mapa de la API de google

maps, mostrando la ubicación del vehículo sobre una ruta previamente creada.

Se implementó un Servicio Web bajo una plataforma desarrollada en Node.JS,

que a su vez funciona como servidor HTTP, donde se integra una página Web que

se encarga de administrar las rutas, buses y conductores. La información recibida

por el servidor Web se envía a la base de datos para ser almacenada y así

organizar los datos de las rutas, buses, conductores y coordenadas enviados por

la aplicación de Android de Conductor. Ver Imagen 1.

Page 25: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 1. Diagrama de Bloques de la plataforma.

6.1. DESARROLLO DE PLATAFORMA WEB

La plataforma Web se divide en dos partes, el Servicio Aplicación Web para la

transacción de datos de las aplicaciones con rol de Conductor y Usuario y la otra

parte aloja la página web Administradora de los diferentes objetos del sistema;

rutas, buses y conductores y se almacenan sobre la base de datos MySQL

Para soportar la plataforma Web se hizo uso de un VPS (Virtual Private Server) de

Amazon Web Services, el cual proporciona las características necesarias para la

implementación de aplicaciones en la nube.

El servidor de AWS consta de una instancia EC2 con un modelo de servidor

T2.Micro (ver tabla 2), que para fines de etapas de pruebas resulta una opción

bastante eficiente. El sistema operativo está basado en la distribución de Linux

Red Hat.

Tabla 2: Características Instancia EC2 – AWS [16]

Modelo CPU virtual Procesador

físico

Velocidad del

reloj (GHz)

Memoria

(GiB) Almacenamiento

t2.micro 1 Familia Intel

Xeon Hasta 3.3 1 Solo EBS

Page 26: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

6.1.1. SERVIDOR PARA TRANSACCIÓN DE DATOS

Con el objetivo de obtener un alto rendimiento al momento de la recepción y envió

de datos, se hizo uso de Node.JS, el cual permite ejecutar aplicaciones del lado

del servidor además permite la recepción de solicitudes HTTP y manejo de

paquetes TCP.

El servidor web consta de múltiples servicios API REST, estos se pueden traducir

como puntos de acceso al servidor los cuales cumplen diferentes funciones a

través del protocolo HTTP, dentro de estas funciones están: GET, POST, PUT y

DELETE, que se encargaran de leer, modificar, eliminar y crear campos en la base

de datos (ver imagen 2).

Imagen 2: Transacciones entre Apps y Servidor Web.

El servidor Web recibe diferentes paquetes de datos en formato JSON que

contienen la información necesaria para realizar las diferentes acciones sobre la

Base de Datos, estos datos provenientes de las aplicaciones de Conductor y

Usuario, transportan información importante como; los datos de autenticación de

usuarios registrados, las coordenadas de los vehículos, la solicitud de las rutas y

las respuestas para actualización de las aplicaciones. Todos estos datos se

almacenan en la Base de Datos de MySQL de forma constante y así permitir su

consulta de forma inmediata.

Page 27: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Código báse del servidor en Node.JS

Servidor HTTP y Servicios REST var express = require('express');

var router = express.Router();

var myParser = require("body-parser");

var db = require('./app_modules/DataBase/Db');

var transactionManger =

require('./app_modules/Manager/TransactionManager');

var FireBase = require('./app_modules/FireBase/FireBase');

var configuration = require('./app_modules/Configuration');

var Login = require('./app_modules/Manager/Login');

var app = express();

app.use(myParser.json({extended: true}));

app.use(myParser.urlencoded({extended: true}));

app.use(router);

app.use(express.static(__dirname + '/public'));

var http = require('http');

/*Inciacion del servidor */

app.listen(8080, function () {

var test = new db.MySqlConnection(db.connection);

setTimeout(function () {

test.testConnection();

}, 1000);

});

/* Captura de errores en el servidor */

process.on('uncaughtException', function (err) {

console.log('Caught exception: ' + err);

});

/* Servcios REST*/

app.post("/Transaction", function (request, response) {

console.log('Transaction');

transactionManger.manageTransaction(request, response);

});

app.post("/Login", function (request, response) {

console.log('Login');

Login.Login(request, response);

});

app.post("/get_routes", function (request, response) {

console.log('get_routes');

transactionManger.getRoutes(request, response);

Page 28: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

})

6.1.2. PÁGINA WEB DE ADMINISTRACIÓN

La página de Administración Web, es la plataforma de gestión de rutas, vehículos

y conductores, su función principal se centra en la creación, actualización y

eliminación de estos elementos (ver imagen 3).

El desarrollo se realizó en HTML5, CSS y JavaScript, permitiendo obtener una

interfaz ligera y dinámica en el cambio de los parámetros.

La interfaz principal cuenta con tres módulos de administración, Conductores,

Vehículos y Rutas, los cuales cumplen las funciones principales para la

modificación de los objetos en la base de datos.

6.1.2.1. MÓDULO RUTAS

Este módulo está diseñado para administrar todo el sistema de rutas de los vehículos, su interfaz principal presenta un módulo de creación y otro módulo de listado, edición y eliminación.

Imagen 3: Pantalla Administración de rutas.

Page 29: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Para la creación de las rutas se utilizó JavaScript y las API de Google Maps, estas herramientas permiten seleccionar un mapa, en el que proporcionando las coordenadas se delimita la zona a visualizar.

Para dibujar las rutas, se selecciona un punto origen en el mapa y un punto final, la API de Google Maps se encargará de generar una línea entre estos dos puntos, se marcan tantos puntos como se requiera para dibujar el trayecto completo de una ruta (ver imagen 4).

Para determinar las direcciones físicas en formato catastral de los paraderos se utiliza la API Geocoding de Google Maps, la cual retorna el valor de la dirección según las coordenadas de Latitud y Longitud. [18]

Imagen 4: Pantalla para trazado de rutas y creación de los paraderos.

El mapa resultante con el trazado de la ruta será enviado a las aplicaciones de

Conductor y Usuario según la solicitud realizada por estas (ver imagen 5).

Page 30: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 5: Tabla de direcciones de los paraderos según Latitud y Longitud.

6.1.2.2. MÓDULO DE VEHÍCULOS

Este módulo permite la creación de los vehículos del sistema, para fines de

pruebas se utilizó la placa como único valor de identificación del vehículo.

La interfaz de este módulo muestra un listado con la cantidad de vehículos

creados y la última posición geográfica reportada desde la App de Conductor.

Tras la creación de los vehículos y después de salvar los cambios, se envía la

información a una tabla de vehículos dentro de la base de datos (ver imagen 6).

Page 31: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 6: Pantalla de Administración de vehículos.

6.1.2.3. MÓDULO DE CONDUCTORES

Este módulo es el encargado de la administración de los conductores que utilizaran el sistema, así como serán los usuarios que se les permitirá autenticarse desde la aplicación de Android de Conductor (ver imagen 7).

Imagen 7: Pantalla de Administración de usuarios / conductores.

Page 32: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Para la creación de usuarios se diseñó un formulario con algunos campos básicos,

los cuales permiten guardar la información de cada conductor del sistema.

Los campos de “Nombre” y “Documento” se utilizaron como los datos de

autenticación desde la App de Conductor, para poder ingresar al sistema.

Con los datos creados de “Vehículo” y “Ruta” se puede realizar la asignación al

nuevo usuario creado o para fines de modificar usuarios existentes, previamente

creados. Estos datos se almacenan en la base de datos y se asociaran la las

tablas de rutas y vehículos (ver imagen 8).

Imagen 8: Formulario para la creación de usuarios.

6.2. APLICACIÓN NO. 1 – CONDUCTOR

Para determinar la ubicación de los buses de transporte se desarrolló una

aplicación con rol de Conductor, que se encargara de reportar su posición

mediante el uso de las coordenadas geográficas obtenidas a través del GPS del

dispositivo y empaquetarse para enviarse al servidor Web, haciendo uso de la

conexión 3G / LTE del dispositivo.

La aplicación de Conductor se desarrolló teniendo en cuenta algunos aspectos

importantes en su desarrollo:

Page 33: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

- Se utilizó el SDK Android Studio, para el desarrollo de la aplicación de

conductor

- Para hacer uso de los servicios de Google se requirió una cuenta de

desarrollador, la cual provee las claves para utilizarse con los servicios de

Google Play Services (Google Maps). [18]

- Uso de los sensores Acelerometro y Magnetometro del dispositivo para

determinar la dirección a la cual está apuntando.

- Uso del sensor GPS interno del dispositivo.

Para la construcción de la aplicación se implementó una pantalla de ingreso de

credenciales de usuario para permitir el acceso sólo a usuarios autorizados en la

plataforma de Administración de Rutas (ver imagen 9), al momento de ingreso se

obtiene del servidor la información de las ruta y vehiculo asociada a la cuenta,

previamente asignada en la plataforma de Administración.

Imagen 9: Pantalla de inicio de sesión – App Conductor.

Tras ingresar con las credenciales de usuario al sistema, se obtiene en la pantalla

la ruta dibujada sobre un mapa de la API de Google Maps (ver imagen 10).

Page 34: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 10: Pantalla mapa de la ruta– App Conductor.

Sobre la parte Izquierda de la pantalla se puede obtener la información detallada

del conductor y el vehículo (ver imagen 11).

Imagen 11: Pantalla información conductor y vehículo– App Conductor.

Autenticación: Para realizar la autenticación ante el servidor, se

requiere de la información de usuario y contraseña, estas se

empaquetan en un archivo JSON, que será enviado a la API REST -

Login del servidor Web.

Page 35: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

JSON Package – Datos de Autenticación {

"URL": "http:\/\/54.213.81.66:8080\/Login",

"DATA": {

"user": "NombreUsuario",

"document": "Contraseña"

}

}

Respuesta del Servidor: El servidor Web después del ingreso

satisfactorio del usuario, retornara a la App de Conductor la información

del trazado de la ruta a seguir, los datos del vehículo y la información del

usuario, esto se entrega en una paquete JSON.

JSON Package – Respuesta con los datos del usuario, vehículo y

ruta {

"id": 6,

"creationUTCTime": 1483806307417,

"lastModificationUTCTime": 1485299948549,

"locked": 0,

"name": "Usuario",

"document": "20111222333",

"phone": "123456789",

"address": "Tv Univerisdad Distrital",

"email": "[email protected]",

"driverLicense": "222333111",

"vehicleId": 4,

"routeId": 21,

"token": null,

"vehicle": {

"id": 4,

"creationUTCTime": 1475866291563,

"lastModificationUTCTime": 1485295062790,

"locked": 1,

"plate": "nueva",

"latitude": 4.67204,

"longitude": -74.0754956,

"driverId": 0

},

"route": {

"id": 21,

"creationUTCTime": 1485299931626,

"lastModificationUTCTime": 1485299931626,

"locked": 0,

"name": "rutaprueba",

Page 36: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

"path": [

{

"id": 243,

"routeId": 21,

"position": 0,

"latitude": 4.641103123968215,

"longitude": -74.07857894897461

},

{

"id": 245,

"routeId": 21,

"position": 1,

"latitude": 4.624506373159518,

"longitude": -74.08201217651367

},

{

"id": 244,

"routeId": 21,

"position": 2,

"latitude": 4.6116735672168065,

"longitude": -74.09265518188477

}

],

"stops": [

{

"id": 179,

"routeId": 21,

"position": 0,

"latitude": 4.641103123968215,

"longitude": -74.08029556274414,

"description": "Cdad. Universitaria",

"address": "Ak 30"

},

{

"id": 178,

"routeId": 21,

"position": 1,

"latitude": 4.625704089861983,

"longitude": -74.08355712890625,

"description": "Gran América",

"address": "Av. Cdad. de Quito"

},

{

"id": 177,

"routeId": 21,

"position": 2,

"latitude": 4.613384621418812,

"longitude": -74.09385681152344,

Page 37: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

"description": "Av. Nqs - Cl 12",

"address": "Cra. 31 #12-2"

}

]

}

}

Geolocalización: Para determinar la ubicación del vehículo, se hace uso

de la red celular y el sensor GPS del dispositivo, de esta manera se

obtiene su ubicación de forma más precisa. Los datos obtenidos están

delimitados por la Latitud y Longitud terrestre, estos serán enviados al

servidor Web junto con el número de identificación del vehículo en un

paquete JSON, así se puede conocer que vehículo está cambiando de

posición y poder almacenar las coordenadas en la base de datos, para

posteriormente poder ser visualizadas sobre la App de Usuario.

JSON Package – Coordenadas GPS y ID Vehiculo {

"URL": "http:\/\/54.213.81.66:8080\/Transaction",

"DATA": {

"service": "save-entity",

"data":

"{\"clazz\":\"Vehicle\",\"obj\":{\"latitude\":4.67204,\"longitude

\":-74.0754956,\"id\":16}}"

}

}

6.3. APLICACIÓN NO. 2 – USUARIO

La aplicación de Usuario permite obtener un listado de las rutas almacenadas en

la Base de Datos del servidor Web, para ser mostrarse sobre un mapa de la API

de Google Maps. Al seleccionar una ruta, esta mostrará la ubicación de todos los

vehículos asociados a esa ruta y esta se actualizará a medida que los buses se

desplacen por su recorrido.

La aplicación de Usuario se desarrolló teniendo en cuenta algunos aspectos

importantes en su desarrollo:

Page 38: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

- Se utilizó el SDK Android Studio, para el desarrollo de la aplicación de

usuario.

- Para hacer uso de los servicios de Google se requirió una cuenta de

desarrollador, la cual provee las claves para utilizarse con los servicios de

Google Play Services (Google Maps). [18]

- Uso de los sensores Acelerometro y Magnetometro del dispositivo para

determinar la dirección a la cual está apuntando.

- Uso del sensor GPS interno del dispositivo

El desarrollo de esta aplicación se centra exclusivamente en visualizar las rutas

disponibles, en el cual se incluye el listado de paraderos de la ruta y su respectiva

visualización con la ubicación en tiempo real de los vehículos asociados a la ruta

(ver imagen 12).

Imagen 12: Pantalla listado de rutas y paraderos de la ruta – App Usuario.

Para la visualización en tiempo real de los vehículos, se agregó dos botones, uno

con función de INICIO y otro con función de DETENER, estos botones iniciaran o

detendrán respectivamente el movimiento de los buses sobre el Mapa (ver imagen

13).

Page 39: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 13: Pantalla ubicación de los buses de la ruta – App Usuario.

Durante el inicio de la aplicación se hará comprobación del acceso a la red, para

determinar si se actualizan las rutas almacenadas en la DBA del servidor o se

hace uso de las que están almacenadas en la memoria del dispositivo.

Las rutas almacenadas en el dispositivo se guardan en un motor de base de datos

SQLite

6.4. SERVIDOR DE BASE DE DATOS

El servidor de base de datos principal esta implementado bajo MySQL bajo un

modelo relacional, se encarga de almacenar toda la información de la plataforma

Web y aplicaciones móviles.

Page 40: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Imagen 14: Asociación de las diferentes tablas a los usuarios conductores.

6.4.1.1. TABLAS CREADAS EN EL SISTEMA

La distribución de tablas se creó con el fin de optimizar las consultas y su almacenamiento a través de las solicitudes realizadas por las App Conductor y Usuario

Imagen 15: Tablas y atributos de la base de datos.

Page 41: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

7. PRUEBAS TÉCNICAS

Para la verificación de la carga del sistema, se emplearon algunas pruebas de

estrés, con las cuales se logra obtener un valor aproximado de la respuesta del

servidor a múltiples solicitudes, en este caso múltiples App de conductor enviando

su posición al servidor y múltiples App de usuario haciendo peticiones de revisión

de estas ubicaciones.

Las mediciones se hicieron utilizando un proveedor de estrés en línea.

URL: http://loadimpact.com

Imagen 16: Prueba de carga con 25 conexiones concurrentes

La respuesta se interpreta por los VUs Actives (Usuarios Virtuales Activos), para

esta prueba es de 25 VUs (ver imagen 16). El VU load time, es el tiempo que le

toma a cada usuario virtual hacer una petición, para este caso el tiempo de carga

con pocos usuarios o muchos usuarios es de aproximadamente 1.5 segundos.

Esto teniendo en cuenta las características del servidor de AWS (ver tabla 2).

Page 42: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Diagrama Final de la “Alternativa de solución para visualización de las rutas y

ubicación geográfica en tiempo real para el sistema de transporte público”

Imagen 16: Diagrama lógico de la plataforma.

Page 43: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

8. CONCLUSIONES

Se logra desarrollar la plataforma de manera eficiente para la ubicación de las

rutas y vehículos empleando un dispositivo con Android para el envió de su

ubicación y cambios respectivos de posición y otro dispositivo con Android

para la visualización de estas coordenadas.

La integración de un sistema de autenticación para la aplicación de conductor,

además de agregar seguridad para el acceso, permite identificar el usuario de

un vehículo con el recorrido a realizar según la ruta preestablecida y

adicionalmente se puede obtener las coordenadas mediante el ID único de

usuario.

Con el desarrollo de la aplicación de usuario para la visualización de las rutas

se logró integrar un método para la actualización en tiempo real de los nuevos

recorridos creados en el servidor sin necesidad de hacer actualizaciones

constantes de la App.

Mediante el uso de Node.JS se pueden construir aplicaciones del lado del

servidor, integrado sistemas de fácil escalabilidad según los requerimientos de

las aplicaciones creadas, como por ejemplo número de conexiones

concurrentes a un servicio Web, facilidad para la interconexión de aplicaciones

móviles que requieren un servicio específico sin necesidad de largos códigos

de programación.

El uso de sistemas cliente – servidor en la nube, ahorran tiempo y recursos al

momento de despliegue de infraestructura centralizada, permitiendo obtener

múltiples resultados de desempeño en fases de prueba, para posteriormente

pensar en un posible crecimiento y escalabilidad.

El desarrollo de aplicaciones con sistemas de geolocalización para ubicación

de rutas, representa un gran aporte para la solución de los tiempos de espera

de un bus por parte de los usuarios.

Los dispositivos móviles hoy en día son una buena opción para la solución de

problemas cotidianos, la gran cantidad de sensores y el nivel de

procesamiento que se encuentra dentro de los dispositivos hace de los

dispositivos móviles una muy buena herramienta para desarrollar aplicaciones.

Page 44: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

Mediante el desarrollo de App’s para dispositivos móviles y el uso centralizado

de servicios ubicados en Internet, se puede obtener soluciones robustas para

la prestación de servicios a la comunidad y a la industria.

El uso de paquetes de datos en formato JSON hace que sea muy eficiente el

envió de datos a través de la red ya que se puede agregar suficiente

información manteniendo tamaños de paquete muy pequeños, ideales para la

transmisión sobre la red celular.

Mediante el uso de las App en teléfonos de ciertas marcas de fabricantes, se

observan algunos problemas en la ubicación GPS, donde se refleja inexactitud

de la posición o intermitencia del envió de coordenadas debido a defectos de

fabricación de los dispositivos. Google Maps Help Forum: ------

https://productforums.google.com/forum/#!topic/maps/SdncC4XdxTo. GPS is -

- not working: https://forum.xda-developers.com/mate-8/help/gps-t3414443

Page 45: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

9. BIBLIOGRAFÍA

[1] Web Site: http://www.malavida.com, “La Historia de Android.” [Online].

Available: http://www.malavida.com/es/post/la-historia-de-android,. [Accessed: 05-

Oct-2016].

[2] Web Site: www.openhandsetalliance.com, “android_overview.” [Online].

Available: http://www.openhandsetalliance.com/android_overview.html. [Accessed:

05-Oct-2016].

[3] G. Svennerberg, Beginning Google Maps API 3, ch. 1: A Brief History, pp. 2-

4, United States, Ed. Apress, 2010.

[4] M. Abernethy, “os-nodejs.” [Online]. Available:

https://www.ibm.com/developerworks/ssa/opensource/library/os-nodejs.

[Accessed: 05-Nov-2016].

[5] J. S. Asenjo, Implantación de Aplicaciones Web 2º ASIR, Servidores de

Aplicaciones Web, Creative-Commons, España, 2011.

[6] R. N. Marset. Modelado, Diseño e Implementación de Servicios Web, ELP,

Departamento de Sistemas Informaticos y Computacion, Universidad Politecnica

de Valencia, 2006 – 2007.

[7] Json.org, Introducción a JSON, [Online]. Available: http://www.json.org/json-

es.html , [Accessed: 9-Feb-2017].

[8] Jorge Sánchez, “Diseño Conceptual de Bases de Datos.” 2004.

[9] “Tipos De Bases De Datos,” El blog de base de datos. [Online]. Available:

http://basededatos.over-blog.net/article-tipos-de-bases-de-datos-68319538.html.

[Accessed: 15-Dic-2016].

[10] “Sistema_de_posicionamiento_global.” [Online]. Available:

https://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global. [Accessed: 05-

Nov-2016].

[11] A. Fernández López, D. González López, A. Rubio Lara, Telefonía Móvil,

Transmisión y Redes de Datos, U.H.U., 2002.

[12] ms.gonzalez, “La transmisión de datos en la telefonía móvil | Redes

Telemáticas.”, [Online]. Available: http://redestelematicas.com/la-transmision-de-

datos-en-la-telefonia-movil/

Page 46: ALTERNATIVA DE SOLUCIÓN PARA VISUALIZACIÓN DE LAS …repository.udistrital.edu.co/bitstream/11349/6266/... · Transmilenio y SITP se ha organizado de una forma más eficiente la

[13] Nokia Academy, “LTE End to End System Part 1”, Nokia Academy, 2014

[14] Antti Toskala, “LTE Release 8/9 course”, Nokia Academy, 2015

[15] “Las redes de transmisión de datos usadas en los teléfonos celulares,”

NorfiPC. [Online]. Available: http://norfipc.com/celulares/redes-transmision-datos-

usadas-telefonos-celulares.php. [Accessed: 07-Dic-2016].

[16] “Tipos de instancias de Amazon EC2”, [Online]. Available:

https://aws.amazon.com/es/ec2/instance-types

[17] “Google Maps Geocoding API”, [Online]. Available:

https://developers.google.com/maps/documentation/geocoding/intro

[18] “Google Maps Android API”, [Online]. Available:

https://developers.google.com/maps/documentation/android-api/start?hl=es-419