Professional Documents
Culture Documents
20091005082
20091005096
INGENIERO ELECTRÓNICO
DIRIGIDO POR:
FACULTAD DE INGENIERÍA
BOGOTÁ D.C
2016
1
ECOSIIS
SISTEMA PARQUEADEROS
Equipo de Trabajo
Sistema de Parqueaderos 2
Índice
SISTEMA PARQUEADEROS
1. INTRODUCCIÓN
3. RESULTADOS OBTENIDOS
3.1. Modelo de base de datos para indicadores de optimización del recurso espacial
3.2. Épicas e historias de usuario
3.3. Normalización de protocolos
3.4. Arquitectura general de la implementación
3.5. Aplicación web
3.6. Dispositivos de hardware
3.7. Indicadores
6. CONCLUSIONES
7. RECOMENDACIONES
8. BIBLIOGRAFÍA
Sistema de Parqueaderos 3
1. INTRODUCCIÓN
A través del proyecto se dio una solución al problema de organización de los parqueaderos
de la Facultad de Ingeniería administrados por la División de Recursos Físicos de
Universidad Distrital Francisco José de Caldas, donde su primera implementación abarca el
sótano uno. Se desarrolló un sistema de control, seguimiento y gestión para el
mejoramiento de las condiciones prestadas, basado en una metodología de sistematización
y automatización de procesos en donde se integra un aplicativo a un sistema físico con el
cual es posible obtener ciertas métricas fundamentales para el caso de estudio y con las
mismas el sistema y los administradores tome decisiones claves.
El sistema consta de una base de datos que está conectada con la base de datos de la
Universidad Distrital donde se indican los propietarios de vehículos que ingresan,
permitiendo así su acceso, ya que, a los parqueaderos de la universidad no pueden ingresar
visitantes, solamente vehículos registrados. Dentro de la base de datos de vehículos que
ingresan a la universidad se encuentra el horario en el que estos pueden ingresar, ya que,
los funcionarios, docentes y estudiantes, tienen un horario dentro de la universidad, debido
al poco espacio ofrecido por la sede, se le permite o niega la entrada para evitar
hacinamiento y/o congestión, por lo cual se hace registro de la hora de ingreso y salida de
los vehículos.
El sistema obtenido, se desarrolló bajo licencia de software libre y se publicó con la licencia
GNU AGPL (FSF, 2009) lo cual incentiva el uso y desarrollo de la aplicación por cualquier
persona del mundo, de esta manera se podrán recibir mejoras al software o adaptación a
las necesidades de los interesados, resultando así en un aporte para muchas
organizaciones que posean el mismo problema. Cabe destacar que la implementación de
tecnologías de “Software Libre” es más apropiada debido a su ideología y a que carece de
la compra de licencias de uso, pudiendo adaptar estas al modelo de parqueaderos de la
universidad.
La parte física está compuesta por elementos y dispositivos tanto mecánicos como
electrónicos, con el fin de ejecutar las acciones dadas por el software y medir las señales a
controlar, proceso con el que se posibilita el acceso o paso de los vehículos en las
circunstancias dadas. Se implementó hardware bajo políticas de hardware libre u “open
hardware”. (Richard M. Stallman, 2015).
Sistema de Parqueaderos 4
Este proyecto inicialmente estaba planteado con varias tecnologías y metodologías que
fueron cambiadas durante el desarrollo del proyecto debido al enfoque dado por el nuevo
Jefe de la Oficina Asesora de Sistemas (OAS), se destaca como algo demasiado importante
el cambio de la metodología de OpenUP OAS (OAS, 2015) a Scrum OAS (OAS, 2016),
básicamente este último es una implementación en español de los documentos de Scrum
Alliance (Scrum Alliance, 2014). Sin intentar explicar a profundidad, las principales
características de esta es como se reconocen a los miembros del grupo como “The Scrum
Team” y a los roles de estos como “The Product Owner”, “The Development Team” y “The
Scrum Master”, estos términos van a ser utilizados en el desarrollo del escrito y sus tareas
se encuentran bien definidas en las declaraciones de la metodología.
Sistema de Parqueaderos 5
Actualmente, el personal de guardas de seguridad, es el encargado de realizar las tareas de
asignación, ordenamiento y seguridad del parqueadero en el cual la habilidad humana es la
que determina la eficiencia del parqueadero, limitando el eficaz funcionamiento del
establecimiento, en donde además se discrimina a usuarios de otros medios de transporte
(bicicletas), los cuales deben alojarse en una zona a la intemperie donde carecen de una
buena prestación de la seguridad y el orden.
2.2. Objetivos
● Realizar una aplicación web para la interfaz del proyecto en donde se vea la
disponibilidad de las zonas de parqueo.
● Implementar dispositivos de detección de vehículos para permitir su acceso o salida
a través de algún mecanismo que garantice su identidad.
● Realizar un trabajo de normalización de protocolos y seguridad para el registro y
control de acceso de vehículos para que su implementación pueda ser progresiva en
las sedes de la universidad.
● Generar un modelo de parqueadero en un sistema informático que permita la
optimización del recurso espacial.
Sistema de Parqueaderos 6
gestión de sistemática y centralizada las islas de parqueadero de la Universidad
parqueaderos de Distrital Francisco José de Caldas. Además permite hacerle
la Universidad seguimiento a todos los procesos asociados al mal uso del bien
espacial y de los servicios ofrecidos para el parqueadero a la
comunidad universitaria.
PIGA, Plan ● Vigilar la viabilidad ecológica del proyecto y revisar las políticas
Institucional de generadas para parqueaderos, para que vayan en favor del
Sistema de Parqueaderos 7
Gestión Ambiental uso de medios alternativos, en especial para parqueaderos es
incentivar el uso de bicicleta en los miembros de la comunidad
universitaria.
2.5. Limitaciones
Nuevos algoritmos pueden ser creados para analizar datos de las islas y mejorar la
asignación buscando aplicar el concepto de optimización con continua mejora del proceso.
La aplicación realizada está más enfocada a la gestión de carros que de otro tipo de
vehículos, debido a que los alcances iniciales del proyecto están dedicados a estos
principalmente, sin embargo se analizaron muchos escenarios en donde la arquitectura está
abierta para que el estacionamiento de los demás vehículos se genere sin contratiempos.
3. RESULTADOS OBTENIDOS
3.1. Modelo de base de datos para indicadores de optimización del recurso espacial
Por último, para el registro de incidencias, se plantea que: un propietario que cometa faltas
en el uso del servicio de parqueaderos, se le registra una de las incidencias que pueden ser
de muchos tipos ingresados previamente por el administrador de la de dependencia de
recursos físicos.
Sistema de Parqueaderos 8
Fig. 3.1.1. Modelo de base de datos de la aplicación
Esta abstracción del modelo de negocios fue concertada con los Administradores de Base
de Datos de cóndor y con los Business Owner que son los administrativos de la División de
Recursos Físicos de la universidad. Este modelo busca ser incremental en cuanto el
propietario se puede reemplazar fácilmente por la entidad de usuario del sistema ECOSIIS.
Esta tabla propietario se convertiría entonces en una tabla de parámetros del propietario
que están asociados directamente al modelo de negocios del parqueadero.
Posee una tabla llamada “migrations”, lo cual permite desplegar los últimos cambios
mediante una técnica que tienen muchos frameworks de desarrollo de software que se
llama “migraciones” con la cual se actualiza los atributos de una tabla, de un esquema o de
una base de datos, mediante SQL versionado.
Los principales requerimientos dados por la división de recursos físicos fueron acordados
mediante reuniones periódicas y adaptados por el grupo de desarrollo a este formato que
establece unas características necesarias para su desarrollo.
Sistema de Parqueaderos 9
Épica
Descripción:
Realizar un software que permita gestionar los parqueaderos de la universidad,
manejando propietarios, vehículos, incidencias e islas de parqueo.
Observaciones:
Épica
Descripción:
Realizar un aplicativo web que permita ver las islas de parqueo en tiempo real de tal
manera que se pueda consumir desde dispositivos y así se vea la disponibilidad de islas
sobre el mapa.
Observaciones:
Épica
Sistema de Parqueaderos 10
Número: 3 Usuario: División de Recursos Físicos
Descripción:
Realizar el prototipo de hardware necesario para sensar la ocupación de las islas de
carros, conectarlos de alguna manera con internet para que se guarde el registro en base
de datos.
Observaciones:
Épica
Descripción:
Realizar el prototipo de hardware necesario leer y enviar datos al servidor para verificar la
autorización del acceso a los parqueaderos. Este debe controlar el acceso de
motocicletas, carros y bicicletas.
Observaciones:
Estas épicas no son atómicas, por lo tanto se subdividieron en tareas que fueron
completadas en su totalidad para cumplir con los requerimientos mencionados en las
épicas. A estas se le llaman historias de usuario y su usuario generador se le denominó
“Scrum Master”, el encargado de traducir los requerimientos del “Business Owner” a
requerimientos que el “Scrum Team” en general puedan entender. Idealmente podría ser
otra persona, pero en este caso son los mismos pasantes los que realizan el trabajo de
“Scrum Master” y “Product Owner” contactando con los “Stake Holders” para conseguir
recursos para el proyecto.
Sistema de Parqueaderos 11
Un diagrama que ilustra el comportamiento de los roles en la metodología scrum se muestra
en la Fig. 3.2.1. los “Stake Holders” en este caso son los mostrados en la sección 2.4.
Fig. 3.2.1. Relación entre los roles de un proyecto con metodología scrum. (Swaraj Gupta,
2004)
Historia de Usuario
Descripción:
Se necesita un documento que simplifique las políticas de uso y pertenencia relacionadas
con parqueaderos, con las cuales se pueda realizar de la mejor manera el modelado de la
solución al problema. Incluye reuniones con las dependencias de, División de Recursos
Físicos, la Oficina Asesora de Planeación y Control y PIGA (Plan Institucional de Gestión
Ambiental)
Observaciones:
Sistema de Parqueaderos 12
Historia de Usuario
Nombre historia: Desplegar las versiones realizadas para permitir visualizar al cliente
Descripción:
Realizar versiones por nuevas características del software y desplegarlas en el servidor
de pruebas para su revisión por parte de los stake holders.
Observaciones:
Historia de Usuario
Descripción:
Realización de diagramas de flujo para la validación de usuario, ingreso de vehículo y
salida del mismo. Esto de acuerdo a la Circular de división de recursos físicos del 16 de
Agosto de 2016 (Recursos Físicos, 2016) y la Resolución de Rectoría No 206.
Observaciones:
Sistema de Parqueaderos 13
Historia de Usuario
Programador responsable:
Descripción:
Se necesita normalizar los protocolos usados para:
● El ingreso del parqueadero para Carro, Moto y Bicicleta.
● La salida del parqueadero para Carro, Moto y Bicicleta.
● Revisión y registro de incidencias por parte del Administrador de Recursos
Físicos.
Observaciones:
Es importante usar el software BPMN2 que es un plugin de eclipse que resulta generar el
estándar de estos diagramas.
Historia de Usuario
Descripción:
Realizar documento propuesta con costos de implementación del primer prototipo de
hardware para sensar ocupación de islas y autenticación por NFC. Debe ser por lo menos
10 dispositivos de sensado y el dispositivo de autenticación de entrada y salida de NFC.
Observaciones:
Este debe ir dirigido a Recursos Físicos, se deben realizar varias propuestas de
implementación de tecnologías de manera que se escoja la más coherente para el
sistema.
Sistema de Parqueaderos 14
Historia de Usuario
Descripción:
Realización de modelo de bases de datos teniendo en cuenta la documentación
disponible del proceso y las conclusiones del proyecto.
Observaciones:
El modelo debe poder ponerse en marcha mediante el motor de base de datos
PostgreSQL, deben manejarse “migrations” migraciones para desplegar los cambios. Se
debe usar PostGIS para los datos geográficos.
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar propietarios.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Sistema de Parqueaderos 15
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar tipos de propietarios.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar incidencias.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Sistema de Parqueaderos 16
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar vehículos.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar islas.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Sistema de Parqueaderos 17
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar grupos isla.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar registro entrada/salida.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Sistema de Parqueaderos 18
Historia de Usuario
Descripción:
Generar el módulo en la aplicación de parqueaderos, que permite Crear, Consultar,
Actualizar y Eliminar incidencias.
Observaciones:
Se debe usar el Framework Beego para el Backend y el Framework AngularJS para el
frontend, los permisos se deben dar por envío de Token por cookie.
Historia de Usuario
Descripción:
Se requiere hacer presentaciones periódicas de los avances del proyecto para conseguir
los recursos necesarios para el desarrollo del mismo.
Observaciones:
Sistema de Parqueaderos 19
Historia de Usuario
Descripción:
Realizar cartografía base de parqueaderos para cada sótano de los parqueaderos de la
facultad de ingeniería y publicarla como una capa raster “tiled” en geoserver.
Observaciones:
Historia de Usuario
Descripción:
Realizar servicios web en el estándar OGC (en WFS y WMS) de las entidades
geográficas isla y grupo_isla.
Observaciones:
Sistema de Parqueaderos 20
Historia de Usuario
Descripción:
Realizar visor geográfico para visualizar Isla y Grupo Isla.
Observaciones:
Se debe realizar una selección de la mejor herramienta, para el caso se escogió
Openlayers 3.0.
Historia de Usuario
Descripción:
Transformar información DWG (Diseño arquitectónico 2D CAD) a base de datos
PostgreSQL (Digitalizar). Para ser consumido por el visor web y la aplicación web.
Observaciones:
Publicar por medio de Geoserver.
Sistema de Parqueaderos 21
Historia de Usuario
Descripción:
Realizar documento con los métodos métodos de localización inalámbrica (tracking) para
parqueaderos. Esto con el fin de ofrecer la propuesta con el banco de posibilidades de
comunicaciones.
Observaciones:
Realizar una descripción vistosa para vender la idea a administrativos que puedan dar
recursos para la realización del proyecto.
Historia de Usuario
Descripción:
Se necesita un formulario de acceso y un sistema de autenticación segura que permita
realizar actividades de Creación, Actualización y Eliminación sólo para los usuarios que
tengan permisos.
Observaciones:
Se debe utilizar JWT.
Sistema de Parqueaderos 22
Historia de Usuario
Nombre historia: Documento didáctico para conseguir recursos con Stake Holders
Descripción:
Se necesitan diagramas pictóricos como parte de la documentación de los dispositivos y
para ilustrar a administrativos el uso de componentes y así pedir específicamente
recursos para eso. diagramas hacen parte de la presentación con stake holders.
Observaciones:
Usar software libre para hacer los diagramas.
Historia de Usuario
Descripción:
Propuesta de investigación con costes de dispositivos de desarrollo para 10 nodos con el
segundo modelo del prototipo.
Observaciones:
Sistema de Parqueaderos 23
Historia de Usuario
Nombre historia:
Descripción:
Se necesita un diagrama de diagrama de despliegue para documentar el proceso de
conexión de hardware y software para próximas implementaciones.
Observaciones:
Historia de Usuario
Descripción:
Realizar el diseño y pruebas para implementar un dispositivo de bajo consumo y
alimentado con baterías que permita sensar y enviar el dato de Ocupación de la isla.
Observaciones:
Se necesita realizar un dispositivo que orqueste los sensores.
Sistema de Parqueaderos 24
Historia de Usuario
Descripción:
Realizar el diseño y montaje de un dispositivo que permita identificar al usuario por medio
de un tag NFC con el cual se sabrá si tiene o no acceso o salida de un vehículo.
Observaciones:
Historia de Usuario
Descripción:
Realizar el diseño, montaje e implementación de un dispositivo que permita gestionar los
mensajes de los Sensores de Isla y los envíe por internet a un servidor. Esta conexión
debe ser cifrada mediante un algoritmo criptográfico.
Observaciones:
Se denomina nodo-central.
Sistema de Parqueaderos 25
Historia de Usuario
Descripción:
Se necesita implementar la actualización del visor web geográfico en tiempo real,
actualizando el estado de las islas de parqueo. Al generarse un evento en el hardware,
este debe representarse en el visor web instantáneamente.
Observaciones:
Para esto se debe considerar las opciones de long polling, server-send event y
websocket.
Historia de Usuario
Descripción:
Se necesita realizar una comunicación cifrada entre el cliente y el servidor. El cliente es
un Arduino MEGA 2560 y el servidor es un Ordenador con un servicio web en GoLang
utilizando SSE.
Observaciones:
Considerar AES128, AES256. Datos del REQUEST enviados por una codificación en
BASE(2^n).
Sistema de Parqueaderos 26
Historia de Usuario
Descripción:
Se necesitan los diagramas de conexión eléctrica del sensor de la isla y el nodo central,
estos deben ser publicados con licencia libre de acuerdo a los criterios del Hardware
Libre u Open Hardware.
Observaciones:
Una forma clave que se encontró viable para realizar este proceso fue la diagramación a
través de BPMN (OMG, 2011); la cual estructura de forma simple y clara los procesos, ya
que cada símbolo representa una idea adicional al diagrama mostrado.
Las Fig. 3.3.1. a Fig. 3.3.11. muestran parte de los elementos entregados a la OAS para
este entregable. Se comenta en cada uno de estos el significado del diagrama para
contextualizar sobre el problema resuelto.
Sistema de Parqueaderos 27
Fig. 3.3.1. Diagrama de proceso ingreso de vehículo. En este hay un reconocimiento
implícito por parte del actor “Propietario” del vehículo que está llevando a la universidad.
Dependiendo del tipo de vehículo ingresado, se ejecutan los subprocesos Ingreso bicicleta,
moto o carro.
Fig. 3.3.2. Diagrama de proceso ingreso de carro. En este caso el actor es el propietario del
carro que debe posarse frente a la talanquera y realizar el procedimiento propuesto. Se
tiene como características las consultas implícitas a los datos del usuario para permitir que
ingrese el vehículo o por el contrario que deniegue el acceso, teniendo este que abandonar
la zona de entrada. Si por el contrario puede ingresar, se imprime un ticket con la hora de
salida esperada y la isla de parqueo a la cual debe dirigirse.
Sistema de Parqueaderos 28
Fig. 3.3.3. Diagrama de proceso ingreso de moto. Este es similar al de carro, a excepción
que en el caso de estar autorizado para ingresar, el ticket no imprime una isla, ya que este
espacio de motocicletas se controla por cantidad de motos y no por islas ocupadas.
Fig. 3.3.4. Diagrama de proceso ingreso de bicicletas. Este presenta las tareas paralelas de
sensar el tag NFC de la bicicleta y del carné con tag NFC al tiempo, lo cual dará como
resultado que el usuario esté habilitado o no para sacar el vehículo, si es denegado se
interpreta como una situación irregular que debe ser analizada por el personal de vigilancia
de los parqueaderos.
Sistema de Parqueaderos 29
Fig. 3.3.5. Diagrama de proceso salida de vehículo. Se muestra algo similar a la Fig. 3.3.1.
de acuerdo al tipo de vehículo, el propietario se dirige a una u otra zona en la cual se realiza
el sub-proceso correspondiente.
Fig. 3.3.6. Diagrama de proceso salida de bicicleta. En este el usuario saca su bicicleta y la
dispone a un celador que se encuentra en la salida del parqueadero y éste ayuda a
movilizar la pistola con lector NFC y se verifica la coherencia entre el tag NFC en el carné y
el tag NFC pegado en la bicicleta. En caso de que los TAGs no concuerden/correspondan,
el celador dispone del protocolo de seguridad interno para disponer de un evento que puede
ser un intento de hurto.
Sistema de Parqueaderos 30
Fig. 3.3.7. Diagrama de proceso salida de carro. El propietario simplemente necesita pasar
su tag NFC en el lector de salida y la compuerta se abrirá si detecta que es la salida
correspondiente a un vehículo que se encontraba dentro del parqueadero, de lo contrario
deniega el acceso y se dispone como una alarma de intento situación extraña poniéndose a
disposición de la vigilancia del parqueadero.
Fig. 3.3.8. Diagrama de proceso salida de moto. Es igual al de la salida de automóvil, solo
cambia la identificación que se da a nivel de los sensores de identidad de vehículo de
salida.
Sistema de Parqueaderos 31
Fig. 3.3.9. Diagrama de proceso asignación de parqueadero. Este corresponde a los pasos
que debe seguir un miembro de la comunidad universitaria para solicitar la inscripción en el
sistema de parqueaderos, si no se realiza la solicitud, no podrá ingresar a los parqueaderos.
Sistema de Parqueaderos 32
Fig. 3.3.11. Diagrama de proceso revisión de incidencias. Este flujo de actividades
representa a la tarea que tiene que hacer el administrador de recursos físicos de revisar las
incidencias puntuales en busca de tener consideración con el usuario y permitirle seguir
disfrutando del servicio de parqueaderos.
Sistema de Parqueaderos 33
Tipos de vehículo que pueden usar el ● Carro particular.
parqueadero. (El vehículo debe estar ● Motocicleta particular.
registrado al nombre del usuario, menos ● Carros autorizados.
bicicletas). ● Motocicletas autorizadas.
● NO servicio público.
De las características anteriores se elaboró dos diagramas genéricos que permiten revisar
el proceso realizado por el software al ingreso y salida de vehículos. Esto se muestra en la
gráfica Fig. 3.3.12. y Fig. 3.3.13.
Sistema de Parqueaderos 34
Fig. 3.3.12. Diagrama de flujo del ingreso de vehículos. El símbolo “?” se da porque aún no
existe normativa o ideas de qué debería hacer el sistema y no se consiguió que fuera
definido durante la pasantía.
Sistema de Parqueaderos 35
Fig. 3.3.13. Diagrama de flujo de la salida de vehículos.
Sistema de Parqueaderos 36
La Fig. 3.4.1 muestra en bloques los componentes de hardware y software que se usan en
el proyecto, se tiene un servidor de mapas llamado Geoserver que consume tablas con
componente geográfico de PostgreSQL/PostGIS, Geoserver se conecta con Apache
haciendo un proxy pass para que el PC cliente acceda a ese servicio a través del servidor
web Apache. En el servidor web también se aloja el backend de la aplicación que es un
servicio RESTFul con JWT que también se conecta a la aplicación por medio de un proxy
pass. El SSE Go es un servicio web (Server-Send Event) dedicado a avisar al visor de islas
de parqueo, de manera que al ocurrir cambios en las islas de parqueo (detectados por el
hardware), automáticamente se muestre el cambio en el mapa. Este SSE Go se conecta a
la capa de backend para registrar los cambios en la base de datos. A este servidor SSE se
conecta el nodo central (componente de hardware) que tiene abstraídas todas las peticiones
de los sensores de las islas, con lo cual solo envía los cambios ocurridos y no todo lo que
sensan o captan los sensores de la isla. El Nodo central y los sensores de isla se conectan
a través de transceptores en la banda de 2.4 GHz, haciendo que su capacidad de
penetración sea mayor.
Por último se tiene los componentes que funcionan del lado de cliente y son descargados
como archivos estáticos del servidor. Esta aplicación funciona en dos partes, el sitio de
administración y el visor geográfico, el primero tiene como componentes AngularJS con
varios sub-módulos de éste, tiene Twitter Bootstrap para la maquetación de la información y
Jquery-Ui para componentes javascript avanzados. El visor geográfico tiene Materialize
CSS para la maquetación de la información y OpenLayers para el renderizado de la
información geográfica.
Sistema de Parqueaderos 37
3.5. Aplicación web
El tipo de aplicación usada se basa en el concepto de SPA (Single Page App) en el cual se
cargan archivos estáticos durante la primera carga y de ahí se cargan recursos
asincrónicamente buscando que el DOM (Document Object Model) obtenga esa información
y la transforme en algo visible para el usuario. En la carga tradicional, el cambio de
información que pedía el usuario, necesitaba recargar la página completamente y
generando así una carga innecesaria de datos con el sitio web, ahora con SPA solo se trae
la información por medio de formatos como JSON o XML y se grafica sin requerir más
tráfico de datos por la red. En la Fig. 3.5.1. Se muestra un diagrama que nos muestra el
ciclo de vida de un sitio tradicional en la que se trafica con mayor información de la
necesaria al contrario de lo mostrado en la Fig. 3.5.2. en el cual carga solo lo estrictamente
necesario.
Fig. 3.5.1. Ciclo de vida de un sitio web tradicional. (Mike Wasson, 2013)
Sistema de Parqueaderos 38
Fig. 3.5.2. Ciclo de vida de SPA (Aplicación con página única). (Mike Wasson, 2013)
Tabla 3.5.1. Software y las características por las que se escogieron para el desarrollo del
proyecto.
Nombre Funcionalidad Razón de Uso
Componente
Apache Servidor Web El servidor web más usado y más popular desde 1996
(The Apache Software Foundation, 2016). Resultar
ser bastante depurado y ser muy confiable. En este
proyecto se usa para servir archivos estáticos y para
hacer proxy pass (o reverse) con otros servicios, por
tanto un servidor bastante documentando facilita la
implementación de este componente. Es software
libre con licencia Apache.
Sistema de Parqueaderos 39
Geoserver Servidor de Es un servidor de código abierto para compartir datos
datos espaciales, diseñado para la interoperabilidad,
espaciales publicando los datos en la mayoría de estándares
abiertos. Tiene una buena documentación para su
integración con PostgreSQL+PostGIS. Es software
libre con licencia GPL.
Sistema de Parqueaderos 40
para construir ng-Resource permite el consumo fácil y apropiado de
aplicaciones servicios RESTful. Permite hacer fácilmente vistas con
MVW el módulo ng-Views y cantidad de facilidades para el
desarrollo de aplicaciones SPA. Se utilizó la versión 1
ya que es la única versión más reciente que se puede
utilizar sin usar “loaders” o transformadores de código
que acomplejan el proceso de aprendizaje de la
herramienta de desarrollo. Es software libre bajo la
licencia MIT.
Las Fig. 3.5.3. a Fig. 3.3.14. muestran las capturas de pantalla de la aplicación funcionando
en el entorno de pruebas de la OAS.
Sistema de Parqueaderos 41
Fig. 3.5.3. Pantalla de bienvenida del Sistema de Gestión de Parqueaderos.
Sistema de Parqueaderos 42
Fig. 3.5.5. CRUD entidad Propietarios.
Sistema de Parqueaderos 43
Fig. 3.5.7. CRUD entidad Grupo Islas.
Sistema de Parqueaderos 44
Fig. 3.5.9. CRUD entidad Registros Entrada/Salida.
Sistema de Parqueaderos 45
Fig. 3.5.11. CRUD entidad Vehículo, vista Crear o editar Vehículo.
Fig. 3.5.12. Vista inicial del visor web geográfico de Parqueaderos de la Universidad
Distrital.
Sistema de Parqueaderos 46
Fig. 3.5.13. Vista ampliada del área de parqueo del sótano 1, del visor web geográfico de
Parqueaderos de la Universidad Distrital.
Fig. 3.5.14. Muestra de la tabla de contenidos del mapa, en visor web geográfico de
Parqueaderos de la Universidad Distrital.
Sistema de Parqueaderos 47
como se ve en la Fig. 3.4.15 y una frecuencia diaria 24/7 de trabajo como se ve en la Fig.
3.4.16.
Fig. 3.5.16. Esfuerzo semanal promedio, situado en las horas del día en que se realizan
más commits.
Sistema de Parqueaderos 48
características se le denomina hardware libre (Richard M. Stallman, 2015) y este proyecto
hace públicos estos diseños y su software bajo licencia GPL.
En la Tabla 3.6.1. se dan los dispositivos de hardware que se escogieron para realizar el
desarrollo de los requerimientos. Estos elementos base son los que conforman el nodo
central, el sensor de isla, el lector NFC de entrada, el lector NFC de salida, el lector NFC
manual y el lector NFC de tablero. (Ver Fig 3.3.1 a 3.3.11).
Es necesario establecer ciertos conceptos teóricos, con los cuales se determinó cuál
debería ser la tecnología a usar:
Sistema de Parqueaderos 49
de información, por el contrario, su objetivo es información básica que desencadene
un procesamiento en dispositivos con mayores prestaciones. (Want, R., 2006)
● Microcontrolador: Es un circuito integrado que es programable, lo cual lo hace capaz
de ejecutar instrucciones que se almacenen en su memoria ROM. Este integrado
posee varios bloques funcionales que tienen una función específica, así en conjunto
estos bloques generan una computadora compuesta por la Unidad Lógica Aritmética
(ALU), la memoria y los periféricos de entrada/salida.
● Lineas de Transmisión: Es cierto material que con cierta geometría uniforme en toda
su estructura, es capaz de transportar eficientemente la energía de radiofrecuencia
(ondas de radiofrecuencia) desde un punto a otro. Una de las características más
importantes en la definición del comportamiento de la línea es su impedancia
característica. Se tienen líneas de transmisión unifilar (coaxial), bifilar (par trenzado),
fibra óptica, el aire, entre otros.
● Ethernet: Es un protocolo de capa de enlace, para redes de área local (LAN) que
utilizan las computadoras para el acceso al medio utilizando la detección de
portadora y detección de colisiones (CSMA/CD). Este protocolo utiliza el
direccionamiento físico (MAC) para la transmisión de la información, este protocolo
formatea los datos proveniente de la capa de red a través de tramas, además,
establece, integra y define las características de la capa física. Por costumbre se
habla de Ethernet y el estándar IEEE 802.3 de forma indistinta, así, en el literal
802.3i de 1990 se define las características de la capa física como 10BASE-T de
tasa 10 Mbps sobre linal de par trenzado no blindado (UTP), con longitud máxima
del segmento de 150 metros.
Tabla 3.6.1. Hardware y las características por las que se escogieron para el desarrollo del
proyecto.
Nombre Funcionalidad Razón de Uso
Componente
Arduino Mega Nodo Central El arduino Mega es una placa de desarrollo para el
microcontrolador ATMega1280, diseñado por la Open
Source Products for Electronics Projects Arduino, esta
placa de desarrollo tiene mayores prestaciones, como
lo son más puertos de entrada, mayor capacidad de
almacenamiento, por lo cual será el nodo central al
cual se comunicarán los detectores de presencia.
Sistema de Parqueaderos 50
este dispositivo no tiene mayores prestaciones no se
uso la placa completa de Arduino Uno si no, solo su
microcontrolador enfocado a las tareas puntuales a
realizar.
Para la petición de recursos para las pruebas se realizaron diagramas pictóricos llamativos
los cuales permiten que los “Stake Holders” entiendan la importancia de realizar varios
prototipos en busca de la mejor solución de hardware. Estos diagramas pasaron por control
de versiones ya que a medida de que se cambiaba de tecnologías, estos diagramas
resultaban útiles para explicar las nuevas inversiones. Los últimos realizados son los
mostrados en la Fig. 3.6.1. y en la Fig. 3.6.2.
Sistema de Parqueaderos 51
Fig. 3.6.1. Diagrama pictórico de dispositivos de acceso NFC a la entrada y salida del
parqueadero.
Fig. 3.6.2. Diagrama pictórico de detector de presencia enviando los datos por RF 2.4GHz y
reenvío del estado por internet.
Los últimos dispositivos implementados se conoce como conjunto de prototipos N°3 el cual
tiene la implementación de módulo “nRF24L01+PA+LNA SMA Antenna Wireless
Transceiver Communication Module 2.4g 1100m”, de por sí el nombre completo nos da las
características y al ser un módulo comercial y económico, los costos de implementación y
las características de comunicación mejoraron muchísimo. La implementación en
protoboard del Nodo Central con esta tecnología de comunicación se puede ver en la Fig.
3.6.3.
Sistema de Parqueaderos 52
Fig. 3.6.3. Implementación del nodo central.
Fig. 3.6.4. Implementación del sensor de ocupación. (a) Implementación con protoboard y
plataforma de desarrollo (b) Implementación con circuito PCB y alimentación por baterías.
Sistema de Parqueaderos 53
Fig. 3.6.5. Circuito PCB de sensor de ocupación de Isla
Sistema de Parqueaderos 54
Fig. 3.6.7. Modelo 3D de contenedor de sensor de ocupación de isla en suelo.
3.7. Indicadores
Sistema de Parqueaderos 55
Fig. 3.7.1. Diálogo de ocupación del espacio en parqueadero de acuerdo a vehículo.
La transmisión de datos por LAN por medio de la técnica SSE resultó bastante conveniente,
se ve menos tráfico innecesario en la red al realizar las mediciones sobre el punto de salida
de los sensores de isla. Este se comparó con respecto al método Ajax Polling, en el que se
envía con una tasa de refresco (una petición separada equidistantemente en el tiempo) el
estado así este no cambie.
Sistema de Parqueaderos 56
Los resultados de consumo de corriente de un microcontrolador en estado de hibernación y
en estado de loop para esperar los tiempos de sensado fueron de alrededor de 2 veces, el
consumo en hibernación reducía la corriente a algo menos del 40% del total en modo pleno,
debido a este resultado se realizan los tiempos muertos con el micro hibernado y no con
bucles en la línea de ejecución (stack) del microcontrolador.
El sistema dará mejores tiempos de parqueo, indicadores para la mejora del servicio y un
sistema para el registro y revisión de incidencias. La comunidad universitaria sentirá que se
cumplen por primera vez las reglas del parqueadero y más personas podrán gozar del
servicio aumentando el contento generalizado.
Se espera que eso produzca una implementación masiva en los demás parqueaderos de la
Universidad. Además de que como pertenece al dominio de aplicaciones de la universidad,
se pueda vender el software adaptado a otras organizaciones como universidades e
parqueaderos públicos y privados.
6. CONCLUSIONES
Este proyecto además íntegro el modelo de diseño Backend-Frontend, en donde para cada
caso se utilizó los lenguajes o framework más destacados del momento (Go-AngularJS
respectivamente), para así dejar un precedente del uso y desarrollo de aplicaciones con
tales herramientas, y que de esta manera se pueda llevar a cabo la migración de más
aplicaciones de la Universidad o de la OAS, para así obtener un mejoramiento de las
mismas.
En la parte de hardware del proyecto, el uso de elementos modulares, representó una gran
ayuda en el desarrollo del proyecto, así que al escoger la plataforma de desarrollo de
Arduino se pudo avanzar rápidamente en el desarrollo de la funcionalidad del proyecto y no
tener preocupaciones por la operatividad de los componentes, por lo cual, se realizó la
Sistema de Parqueaderos 57
adaptación de tales módulos a los requerimientos del proyecto, en donde se buscó la
optimización de los recursos energéticos de los módulos y la funcionalidad correcta de
estos.
Para los desarrolladores del proyecto es muy importante poder promocionar la filosofía de la
cultura libre, por eso, este proyecto se llevó a cabo utilizando herramientas de software libre
y de hardware libre, la razón radica en el gran potencial de desarrollo y mejoramiento que la
comunidad puede agregar a estas herramientas.
La metodología de desarrollo ágil SCRUM permitió dedicar más tiempo al desarrollo del
producto y gastar menos tiempo en el desarrollo de artefactos poco fructíferos para lograr
un producto que realmente el usuario necesita.
Utilizando tecnologías libres se pudieron ahorrar recursos significativos de tal manera que
casi sin financiación esta etapa del proyecto se dió por finalizada.
7. RECOMENDACIONES
Al abordar un proyecto que requiera mucha financiación es necesario pensar en que puede
haber un escenario en el que no se tenga la financiación requerida. Por tanto hay que hacer
objetivos más relacionados al producto y no tanto al negocio ya que vender el producto no
es un objetivo que se haya realizado en esta pasantía.
Se debe reunir en primera instancia con el “Business Owner” para realizar una propuesta
que en primera instancia tenga en cuenta los criterios necesarios para satisfacer al cliente.
Seguir una metodología de trabajo diario asegura que se puedan dar características nuevas
cada día, con lo cual se pueden hacer revisiones más seguidas y realizar los cambios
pertinentes para que el software se adapte más rápidamente a los requerimientos y que la
calidad del mismo mejore al ser utilizado tantas veces durante el desarrollo en busca de
bugs.
8. BIBLIOGRAFÍA
Annamalai M., Hemantha J. (1997). TITULO, Berlin, Heidelberg: Springer
Sistema de Parqueaderos 58
Jonathan Warner. (2013). Benchmarks: Node.js vs Go (vs PHP). Recuperado el 25 de
Noviembre de 2016, de
https://jaxbot.me/articles/benchmarks_nodejs_vs_go_vs_php_3_14_2013
Mike Wasson. (2013). ASP.NET - Single-Page Applications: Build Modern, Responsive Web
Apps with ASP.NET. Recuperado el 25 de Noviembre de 2016, de
https://msdn.microsoft.com/en-us/magazine/dn463786.aspx
OMG. (2011). Documents Associated with Business Process Model and Notation™
(BPMN™) Version 2.0. Recuperado el 25 de Noviembre de 2016, de
http://www.omg.org/spec/BPMN/2.0/
Richard M. Stallman. (2015). Free Hardware and Free Hardware Designs. Recuperado el 15
de Enero de 2016, de https://www.gnu.org/philosophy/free-hardware-designs.html
Rose, J. L. (2004). Ultrasonic waves in solid media. Cambridge university press. Chicago
Swaraj Gupta. (2016). Roles of team members involved in an AGILE Scrum project.
Recuperado el 25 de Noviembre de 2016, de
Sistema de Parqueaderos 59
http://www.quotium.com/performance/roles-team-members-involved-agile-scrum-proj
ect/
The Apache Software Foundation. (2016). The Number One HTTP Server On The Internet.
Recuperado el 25 de Noviembre de 2016, de https://httpd.apache.org/
Unicronic Systems. (2015). Understanding long polling, comet, websockets and sse.
Recuperado el 25 de Noviembre de 2016, de
http://www.unichronic.com/blog/get_single_blog/25
Sistema de Parqueaderos 60