Título: Implementación de sistema de control de acceso a locales en plataforma web Autor: Adrian Capote Quintana Tutores: Ing. Yudisleidy Ruiz Rios Ing. Yasiel González Carrasco , Mes y Año Departamento de Telecomunicaciones y Electrónica , Junio, 2019 Este documento es Propiedad Patrimonial de la Universidad Central “Marta Abreu” de Las Villas, y se encuentra depositado en los fondos de la Biblioteca Universitaria “Chiqui Gómez Lubian” subordinada a la Dirección de Información Científico Técnica de la mencionada casa de altos estudios. Se autoriza su utilización bajo la licencia siguiente: Atribución- No Comercial- Compartir Igual Para cualquier información contacte con: Dirección de Información Científico Técnica. Universidad Central “Marta Abreu” de Las Villas. Carretera a Camajuaní. Km 5½. Santa Clara. Villa Clara. Cuba. CP. 54 830 Teléfonos.: +53 01 42281503-1419 Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Telecomunicaciones y Electrónica, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad. Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada. Firma del Tutor Firma del Jefe de Departamento donde se defiende el trabajo Firma del Responsable de Información Científico-Técnica i PENSAMIENTO “No entiendes realmente algo a menos que seas capaz de explicárselo a tu abuela” Albert Einstein ii DEDICATORIA Dedicado a Jesús, Dayamí, Puchi, Ñica y René que han sido el apoyo inquebrantable durante todos los años de mi vida y espero que lo sean eternamente, a mi hermano pequeño que ya es más grande que yo en todos los sentidos y a Liz que es la responsable de custodiar mis sentimientos. iii AGRADECIMIENTOS A los estudiantes y profesores de la UCLV de la carrera de Ing. Telecomunicaciones y Electrónica de la Facultad de Eléctrica que compartimos los cinco años de estudio universitario. A Daisel Rodrígez y Daniel Placencia que me mostraron el maravilloso mundo de la programación web. A los oficiales del Ministerio del Interior que me apoyaron en este trabajo de diploma. iv TAREA TÉCNICA 1. Revisión de la bibliografía técnico-especializada sobre los sistemas de control de acceso. 2. Estudio de los de los entornos de desarrollo de aplicaciones web. 3. Selección del entorno de desarrollo web indicado para implementar un sistema de control de acceso. 4. Diseño de las tablas de las bases de datos que almacenarán la información de la aplicación web. 5. Programación de la interfaz de usuario en el cliente y los procesos que se ejecutan en el servidor de la aplicación web. 6. Análisis de costo, funcionalidad y rendimiento de la aplicación implementada. Firma del Autor Firma del Tutor v RESUMEN En el presente trabajo de diploma se desarrolla un sistema de control de acceso en plataforma web para la entrada de la Jefatura Provincial del Ministerio Del Interior de Cienfuegos. Para ello se realiza una revisión de las técnicas de control de acceso, así como de los entornos de desarrollo web (frameworks). Toda la programación se realiza utilizando los frameworks jQuery, Bootstrap, Vue de JavaScript y Laravel de PHP. Finalmente se presentan resultados de pruebas del sistema y se realiza un análisis del costo de la implementación real del sistema de control de acceso en la Jefatura Provincial del Ministerio Del Interior de Cienfuegos. vi TABLA DE CONTENIDOS PENSAMIENTO ..................................................................................................................... i DEDICATORIA .................................................................................................................... ii AGRADECIMIENTOS ........................................................................................................ iii TAREA TÉCNICA ................................................................................................................ iv RESUMEN ............................................................................................................................. v INTRODUCCIÓN .................................................................................................................. 1 Organización del informe ................................................................................................... 3 CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB .. 5 1.1 Sistemas de control de acceso (SCA) ....................................................................... 5 1.1.1 Tipos de SCA .................................................................................................... 9 1.1.2 Funcionamiento del SCA ................................................................................ 12 1.2 Desarrollo Web ...................................................................................................... 13 1.2.1 Arquitectura Cliente-Servidor ......................................................................... 13 1.2.2 Frameworks .................................................................................................... 16 Consideraciones finales .................................................................................................... 21 CAPÍTULO 2. DESARROLLO DEL SISTEMA DE CONTROL DE ACCESO .......... 22 2.1 Diseño de la aplicación .......................................................................................... 22 2.1.1 Módulo de Autenticación ................................................................................ 23 2.1.2 Módulo de Sembrado de información ............................................................ 23 2.1.3 Módulo de Control de accesos ........................................................................ 24 2.1.4 Módulo de Análisis y Estadísticas .................................................................. 24 2.1.5 Diseño de las bases de datos ........................................................................... 25 vii 2.2 Programación de la aplicación ............................................................................... 26 2.2.1 Programación de los servicios del servidor .................................................... 26 2.2.2 Programación de la interfaz de cliente ............................................................ 28 Consideraciones finales .................................................................................................... 29 CAPÍTULO 3. FUNCIONALIDAD, RENDIMIENTO Y COSTO DEL SISTEMA DE CONTROL DE ACCESO .................................................................................................... 31 3.1 Preparación del entorno de simulación .................................................................. 31 3.2 Test de rendimiento de la aplicación ...................................................................... 32 3.3 Test de funcionalidad de la aplicación ................................................................... 33 3.4 Análisis de costos para la institución ..................................................................... 35 Consideraciones finales .................................................................................................... 36 CONCLUSIONES Y RECOMENDACIONES ................................................................... 37 Conclusiones ..................................................................................................................... 37 Recomendaciones ............................................................................................................. 37 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 39 ANEXOS .............................................................................................................................. 42 Anexo I Diagrama físico de la aplicación de control de acceso ................................... 42 Anexo II Estructura de la base de datos de la aplicación ........................................... 42 Anexo III Enrutamiento HTTP de la aplicación en Laravel ........................................ 47 Anexo IV Interfaz del cliente para insertar valores en la base de datos ...................... 49 Anexo V Interfaz del cliente para análisis estadísticos .............................................. 49 Anexo VI Interfaz del cliente ajustado para teléfonos móviles ................................... 50 Anexo VII Comparación de lectores de huella ............................................................. 50 INTRODUCCIÓN 1 INTRODUCCIÓN El control de accesos es un sistema electrónico que restringe o permite el acceso de un usuario o grupo de usuarios a un área específica validando la identificación por medio de diferentes dispositivos de entrada (clave por teclado, lector de huellas, lector de tarjetas, biometría, etc.) y a su vez controlando el recurso (guardias de seguridad, sistema de cómputo, puerta electrónica, etc.) [1]. El control de accesos requiere flexibilidad para que no haya limitaciones en la movilidad por cambios que se producen en los permisos. Necesita precisión para que se le asigne el permiso correcto a cada persona. También es necesario que tenga suficiente capacidad para almacenamiento y registro de un mínimo de datos. Actualmente las empresas, tanto a nivel nacional, como internacional, tienen la necesidad de dotar de un Sistema de Control de Acceso (SCA) a sus instalaciones. La implementación de estos sistemas no sólo está relacionada únicamente con la seguridad, es decir, impedir el acceso no deseado de personas o vehículos a sus instalaciones, sino que además se pretende que este acceso se realice de forma cómoda y segura. En “Access control for rural medical and health collaborative working platform” [1]. Se realiza un análisis de las ventajas de un sistema de control de acceso en organismos gubernamentales con acceso restringido y a la vez para tener un control del personal que accede a los locales. Se tomó como caso de estudio a la plataforma de trabajo colaborativo para la salud y medicina rural, perteneciente al proyecto de medicina básica rural e investigación médica del Ministerio de Ciencia y Tecnología de China. Los autores concluyeron que la implementación de un control de acceso en la plataforma web permite que los datos pueden ser almacenados de forma segura y confidencial, además de proteger la seguridad de los datos compartidos entre los pacientes y los médicos permitiendo el acceso de los usuarios al sistema en un rango controlado. Finalmente, el aporte realizado en la INTRODUCCIÓN 2 investigación fue asignación de diferentes permisos, acorde a los diferentes roles de usuario presentes en cada uno de los módulos de la plataforma de trabajo colaborativo. En “Extended access control and recommendation methods for enterprise knowledge management system” [2] se describen las deficiencias que existen en los métodos tradicionales de control de acceso cuando son implementados en los sistemas de gestión del conocimiento de gran tamaño. Ante ello, los autores proponen un modelo extendido de control de acceso basado en roles para superar tales deficiencias; además de una colección de recomendaciones híbridas para los sistemas de gestión del conocimiento. En “Access Control in Collaborative Systems” [3] se investiga sobre los inadecuados mecanismos de almacenamiento masivo de información en los sistemas de control de acceso manual. Proponen almacenamiento en bases de datos de servidores para garantizar confiabilidad y accesibilidad a los datos almacenados. En la Jefatura Provincial del Ministerio del Interior de la provincia de Cienfuegos se controla el acceso de personal autorizado por la institución y de personal civil que viene a solicitar los servicios de atención a ciudadanía. Además, se registra todo vehículo que accede a la institución. Esto garantiza control sobre todo el personal que accede y a su vez provee de un registro con la información obtenida. Este proceso se realiza totalmente manual, es decir, una persona autorizada registra todo en los libros de registro de personal y vehículos. La realización del control de accesos de forma manual requiere de mayor esfuerzo por parte del oficial de guardia que debe tomar una serie de datos por cada solicitud de entrada, lo que provoca demora en la atención al personal (civil o militar) y trae consigo margen a errores humanos. Además, para realizar investigaciones, análisis estadísticos o simplemente buscar una entrada específica es muy complejo ya que se deben consultar manualmente los registros del local. Dada esta situación se formula el siguiente problema científico: ¿Cómo implementar un sistema de control de acceso para personal y vehículos a locales en plataforma web? Para dar respuestas a esta situación, se plantean las siguientes interrogantes que guían el proceso de investigación:  ¿Qué técnicas de control de acceso son implementadas en la actualidad?  ¿Cuáles son los entornos de desarrollo de software libre para plataforma web? INTRODUCCIÓN 3  ¿Cuál es el entorno de desarrollo indicado para llevar a cabo la aplicación web de control de accesos?  ¿Cómo diseñar una base de datos para almacenar información de manera óptima?  ¿Cómo diseñar una interfaz de usuario para administrar la aplicación web?  ¿Cuál es el costo de implementar un sistema de control de acceso? Con esta investigación se pretende cumplir los siguientes objetivos: Objetivo General Implementar un sistema de control de acceso en plataforma web para instituciones que requieren acceso controlado de personal y vehículos. Objetivos específicos  Analizar las técnicas actuales de control de accesos a locales en plataforma web.  Desarrollar un sistema de control de acceso en plataforma web.  Analizar funcionalidad, rendimiento y costo del sistema propuesto. Los resultados de esta investigación son de importante aplicación práctica para la Jefatura Provincial del Ministerio del Interior en la provincia de Cienfuegos por los beneficios que ofrece en el control de accesos y la gestión de datos. Organización del informe La investigación incluye tres capítulos, además de las conclusiones, recomendaciones, referencias bibliográficas y anexos correspondientes. Los temas que se abordan en cada capítulo se encuentran estructurados de la forma siguiente: Capítulo I: en este Capítulo se realiza una investigación acerca de las técnicas actuales de control de acceso en conjunto con un estudio de los entornos de programación en plataforma web. Capítulo II: en este Capítulo se desarrolla una aplicación web para el control de acceso a locales usando como entorno de programación Laravel para los servicios del servidor y Vue, Bootstrap y jQuery para los clientes. INTRODUCCIÓN 4 Capítulo III: en este Capítulo se realizan pruebas de rendimiento y funcionalidad al sistema y se analizan costos de su implementación real. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 5 CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB La seguridad, tanto en el contexto personal, empresarial como informático, es un parámetro que brinda confiabilidad. En empresas o instituciones que requieren mantener un control sobre las personas, información u otros medios que entran en su área de trabajo, se hace necesario implementar sistemas de control de acceso. En la actualidad existen varios sistemas sobre los cuales se pueden crear aplicaciones. Estos sistemas pueden ser Sistemas Operativos (Windows, Android, Linux, etc.) o Sistemas en Red (WWW, Internet). En el momento de desarrollar una aplicación es necesario definir sobre qué entorno se ejecutará dicha aplicación. 1.1 Sistemas de control de acceso (SCA) El vertiginoso desarrollo alcanzado en las nuevas tecnologías de la informática y las comunicaciones ha llevado a la sociedad a entrar en lo que se ha dado en llamar “era de la información” [4]. La información puede existir en muchas formas, impresa o escrita en papel, almacenada digitalmente, transmitida por correo postal o utilizando medios digitales, presentada en imágenes o expuesta en una conversación. Cualquiera sea la forma que adquiere la información es un recurso que, como el resto de los activos importantes tiene un gran valor, siendo a veces incalculable, por contener la “vida” de una organización; es por eso que debe ser debidamente protegida independientemente de los medios por los cuales se distribuye o almacena. En esta “sociedad de la información” persisten las razones y motivos para mantener mecanismos de control de acceso sobre las áreas (seguridad física) y la información (seguridad lógica) que se desea proteger. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 6 Los controles de acceso físico tienen una gran importancia puesto que si alguien que desee atacar un sistema tiene acceso físico al mismo, el resto de las medidas de seguridad implantadas se convierten en inútiles. Muchos ataques serían entonces triviales, como por ejemplo los de denegación de servicio; si es posible apagar un servidor que proporciona un servicio es evidente que nadie podrá utilizarlo [5]. Otros ataques se simplifican enormemente, por ejemplo, es más fácil obtener información copiando los ficheros o robando directamente los discos que los contienen, que acceder remotamente a los mismos. Incluso dependiendo el grado de vulnerabilidad del sistema es posible tomar el control total del mismo, por ejemplo, reiniciándolo con un disco de recuperación que permita cambiar las claves de los usuarios. Luego de ver como un sistema puede verse afectado por la falta de seguridad física, es importante recalcar que la mayoría de los daños que puede sufrir una organización no será sobre los medios físicos sino contra la información. La seguridad de la información es la preservación de las siguientes características: confidencialidad, integridad y disponibilidad y se logra implementando un conjunto adecuado de controles, que abarcan políticas, prácticas, procedimientos, estructuras organizacionales y funciones del software [5]. Entre las medidas de protección de la información esenciales para una institución se encuentra el control de acceso lógico a los recursos. Realizar control de acceso significa seleccionar o filtrar a las personas que pueden acceder a determinadas áreas. Esto permite de manera dinámica y efectiva controlar al personal y activos con el propósito de minimizar las pérdidas, aclarar fraudes, prevenir la fuga de información en las empresas, hacer eficiente el desempeño del personal y brindar un entorno más seguro. Un concepto técnico o lógico de acceso es la interacción entre un sujeto y un objeto que resulta en un flujo de información de uno al otro [6]. El sujeto es la entidad que recibe o modifica la información o los datos contenida en los objetos, puede ser un usuario, programa, proceso, etc. Un objeto es la entidad que provee o contiene la información o los datos, puede ser un fichero, una base de datos, una computadora, un programa, una impresora o un dispositivo de almacenamiento. Estos roles de sujeto y objeto pueden intercambiarse en dos entidades que se comunican para cumplir una tarea, como pueden ser un programa y una base de datos o un proceso y un fichero. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 7 Control de acceso es el proceso de conceder permisos a usuarios o grupos de acceder a objetos, tales como ficheros o impresoras en la red. El control de acceso está basado en tres conceptos fundamentales: autenticación, autorización y registro similar al protocolo Authentication, Authorization and Accounting (AAA) [7] de autenticación en redes IP.  Autenticación: La autenticación es un proceso que identifica al sujeto. Cada sujeto posee un único medio de identificación, que será el que se usa para acceder a todos los lugares que este habilitado. Al pasarlo por la unidad lectora correspondiente y/o digitar su clave de identificación, se verifica que dicho sujeto esté habilitado para el ingreso y permite el acceso, registrando a la vez en su memoria interna la fecha y hora del evento.  Autorización: La autorización indica a qué lugares instalaciones puede acceder el sujeto. La habilitación o no de cada uno de los objetos, se realiza por el supervisor, pudiendo realizar altas y/o bajas en forma independiente para cada una de ellas, aún sin disponer de su medio de Identificación.  Registro de auditoría: Con el SCA, se lleva un registro de auditoría de los accesos que ha efectuado cada objeto, llevando control de tiempos de entrada y de salida. Además, un buen SCA debe registrar los intentos fallidos de autenticación que se han realizado. El SCA incluye autenticar la identidad de los usuarios o grupos y autorizar el acceso a datos o recursos. Los controles de accesos son necesarios para proteger la confidencialidad, integridad y disponibilidad de los objetos, y por extensión de la información que contienen, pues permiten que los usuarios autorizados accedan solo a los recursos que ellos requieren para realizar sus tareas. Dentro de los objetivos que tiene un SCA [8], se pueden mencionar:  Generación de identificación única para cada objeto: Es importante encontrar una forma de identificar a cada objeto para permitir o negar el acceso a las áreas del objeto.  Control del ingreso y egreso a las áreas restringidas o de riesgo en forma segura y efectiva: Con este control, el objeto logra mantener aisladas las diferentes áreas de la CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 8 empresa, llevando un registro de todos los movimientos de ingresos y egresos realizados a cada uno de los sectores controlados.  Control de Personal: Lleva un registro actual de los accesos que realizan todos los sujetos. El control de personal tiene la capacidad de especificar las áreas a las que tienen acceso y el horario en las que acceden.  Creación de permisos de acceso temporales: Estos permisos pueden ser para visitantes o para empleados que requieren acceder de forma extraordinaria a un área a la cual normalmente no tienen acceso.  Generación de auditorías de entrada y salida a las instalaciones: Con los SCA, se llevan estadísticas de los accesos, obteniendo un procedimiento de vigilancia de entrada y salida a las instalaciones, teniendo información sobre la persona que intenta acceder a la instalación, la notificación de rechazo o aceptación de acceso, la hora de entrada y la hora de salida. Esta información es de enorme ayuda ya que permite administrar eficientemente al personal y diagnosticar problemas fácilmente.  Localización de las personas de la organización: Con un SCA se puede fácilmente conocer el lugar en donde se encuentran las personas en cualquier momento.  Integración con otros sistemas de seguridad: Con los SCA, se disminuye la necesidad de tener servicio de vigilancia. Sin embargo, si la organización desea aumentar la seguridad del lugar y tener un mayor control, se puede integrar cualquier sistema de seguridad con un SCA, por ejemplo: activar una sirena o alarma externa, que indique si existiera violación de puerta o vandalismo. Un SCA está conformado por componentes esenciales [8] que cumplen individualmente con una funcionalidad que tributa al sistema.  Controlador: Es el único elemento que concentra la información y toma las decisiones en consecuencia. Todos los demás dispositivos solo generan información o ejecutan acciones. También es función del controlador la tarea de comunicarse con el programa central que concentra toda la información del sistema en general, tanto la información de configuración y programación como la de eventos producidos.  Dispositivos de identificación: Son aquellos que tienen por objeto identificar al sujeto que desea ganar el acceso. Existen diferentes tipos de dispositivos, cada uno con sus CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 9 propias características. Algunos permiten el acceso más rápido, como las tarjetas de proximidad, y otros identifican al sujeto con más precisión, como los lectores biométricos [9].  Dispositivos de entradas: Estos dispositivos comunican al Controlador el estado de las otras variables del sistema, tales como si la puerta está abierta o no, si se pulsó el botón de salida, etc., y le permiten tomar decisiones con mayor precisión.  Dispositivos de salida: Son aquellos que ejecutan las acciones ordenadas por el controlador como las de liberar cerraduras, accionar barreras, liberar molinetes, accionar alarmas, etc.  Red de comunicaciones: Es la red utilizada para que el controlador se comunique con otros controladores y/o con una o más estaciones centrales. 1.1.1 Tipos de SCA Los SCA se pueden calificar en dos tipos fundamentales: sistemas autónomos y sistemas en red [2]. Los Sistemas autónomos son aquellos sistemas que no necesitan de ordenador y software, dentro de esta categoría se encuentran los lectores inteligentes, los controladores de una puerta y los controladores multipuerta:  Lectores inteligentes: Es el nivel más simple, los lectores inteligentes son una combinación de lector/controlador que facilita un apropiado paquete todo en uno, que puede ser instalado rápidamente para un sistema de control de acceso para una puerta. Puede instalar más de uno si tiene más de una puerta, pero cada vez que se necesite añadir o eliminar tarjetas de usuarios, se tendrá que desplazarse a cada una de sus ubicaciones. Hay un riesgo de seguridad con estos productos, este riesgo es que la electrónica controladora está sobre el lado más inseguro de la puerta, y por lo tanto puede ser saboteado [10]. Es necesario que se consideren las necesidades de la organización, y si es muy alta la probabilidad de sabotaje, entonces se debe de utilizar un tipo diferente de sistema.  Controlador de una puerta: Estos controladores consiste en que cuando se proteja una puerta, se debe instalar el controlador en la parte segura de la puerta para asegurarse CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 10 de las situaciones de alto riesgo. No importa que el lector sea saboteado, la puerta no se abrirá.  Controlador multipuerta: Para situaciones de múltiples puertas, hay controladores que pueden controlar varias puertas cada uno. Esto puede representar un ahorro, puesto que hay un solo controlador y también puede ser más conveniente porque puede programar las tarjetas en las múltiples puertas con una simple acción. Sin embargo, dependiendo de la distancia de los cableados, la viabilidad y los costos de los cables entre las puertas pueden ser mayores a los beneficios esperados. Con los Sistemas en red las empresas pueden requerir controlar el acceso en más de una puerta. Si bien esto se puede solucionar con múltiples unidades aisladas, un sistema en red tiene muchas ventajas, siendo la más obvia la supervisión centralizada. Las actividades de rutina y las condiciones de alarma se reportan a la PC central, donde se pueden organizar y presentar en manera de reportes. Los sistemas en red son aquellos que están enlazados con un ordenador y un software. Estos sistemas proporcionan lo último en comodidad y flexibilidad y son altamente competitivos, tanto en funcionamiento como en precios. Los sistemas modernos son intuitivos y amigables y requieren un mínimo entrenamiento para los administradores. Los sistemas en red también permiten el "manejo de plantillas", donde todos los usuarios se enrolan en un mismo lector, el cual automáticamente transfiere todas las plantillas a las otras unidades en la red. Luego las plantillas se pueden eliminar o editar en la PC central. Algunos de estos sistemas almacenan toda la información en la PC, que es también donde se realiza la comparación. Otros sistemas operan sin una PC central, distribuyendo todos los datos de las plantillas a cada lector. En ambos casos el efecto del manejo de plantillas es el mismo. Las razones por las que los sistemas en red son utilizados se describen a continuación:  Al utilizar sistemas autónomos, es necesario instalar más de uno para asegurar el número de puertas necesarias, además de efectuar operaciones de programación en múltiples ubicaciones.  Existe más de una simple combinación de derechos de acceso, por ejemplo, la complejidad es elevada al programar 16 puertas en un sistema autónomo, donde cada persona tiene diferentes permisos por cada puerta. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 11  Es más fácil y conveniente utilizar múltiples estaciones de trabajo para administrar diferentes aspectos del sistema.  Con los sistemas en red se puede controlar y monitorizar un área remota En la Tabla 1.1 se muestra una comparación entre los sistemas de control de acceso teniendo en cuenta las ventajas y las desventajas que provee cada uno. Tabla 1.1 Ventajas y desventajas de los tipos de SCA Tipo de sistema Ventajas Desventajas Lectores inteligentes  Bajo Costo  Fácil Instalación Sistema sobre el lado inseguro de la puerta y puede ser saboteado para un acceso no autorizado. Controlador de una puerta  Mayor seguridad que los lectores inteligentes en ubicaciones vulnerables Si el control es a más de una puerta, las tarjetas tienen que ser programadas en cada lector. Controlador Multipuerta  Con un simple punto de programación tiene capacidad de controlar entre 2 y 16 puertas Sofisticadas características son necesarias para completar la configuración del sistema Sistema en Red  Programación y monitorización central independiente al número de puertas  Interfaz de usuario mucho más intuitivo y flexible  Múltiples estaciones de trabajo pueden ser Una falla en el ordenador ocasiona fallas en el sistema CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 12 administradas por el sistema  Sofisticados filtros de listados, administración de alarmas y análisis estadísticos 1.1.2 Funcionamiento del SCA Una vez que se instala el SCA, es necesario dar de alta a todos los sujetos de la institución, se especifican las puertas de las áreas a las que tienen permiso de acceder, así como el horario y las fechas de acceso. Conforme se dan de alta los sujetos, se genera el medio de identificación para el sujeto. Cada sujeto intenta acceder a las puertas de la institución, utilizando el medio de identificación, para que el sistema permita o no el acceso por dicha puerta. Una vez que el permiso es negado o concedido se guarda un registro de la hora en la que se intenta acceder dicha puerta y si se logró o no accederla. El supervisor del SCA, puede efectuar las siguientes acciones en cualquier momento [6]: • Dar de alta nuevos sujetos con sus respectivos permisos y derechos: El SCA es una herramienta que registra nuevos sujetos, genera los accesos que tienen y realiza las especificaciones del momento en que dichos accesos tienen vigencia (especificación de horario). • Dar de baja sujetos: Cuando un sujeto se va a ausentar temporal o permanentemente, es necesario darlo de baja. • Modificar los permisos y derechos que un sujeto tiene. • Cancelar permisos: Quitar permisos a los sujetos a áreas a las cuales tenía acceso. • Conceder nuevos permisos: Asignar permisos a los sujetos a áreas que eran restringidas para él. • Conceder permisos temporales: El SCA es un sistema es capaz de limitar el horario de estancia en algunas áreas especiales de la institución, y crea permisos de accesos temporales a dichas áreas para sujetos que sea necesario que las accedan de manera extraordinaria. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 13 1.2 Desarrollo Web Desarrollo web es un término amplio que define la creación de aplicaciones web para Internet o una intranet. Para conseguirlo se hace uso de tecnologías de software del lado del servidor (Back-End) [11] y del cliente (Front-End) [11] que involucran una combinación de procesos de base de datos con el uso de un navegador web a fin de realizar determinadas tareas. Tradicionalmente un software departamental o incluso un ambicioso proyecto corporativo de gran envergadura es desarrollado en forma estándar (standalone), es decir, usando lenguajes ya sea compilados (C, C++, Delphi), semicompilados (.NET, Mono, Java), o interpretados (Python, PHP) para crear tanto la funcionalidad como toda la interfaz de los usuarios, pero cabe perfectamente un desarrollo orientado a web para dichos propósitos, siendo más homogéneo y multiplataforma, y dependiendo de las tecnologías utilizadas, más rápido y robusto tanto para diseñar, implementar y probar, como para su uso una vez terminado [12]. Los lenguajes de programación más usados en desarrollo web son principalmente (por orden alfabético): ASP.NET, PHP y JSP, aunque aún hay quienes usan ASP, Macromedia ColdFusion y Perl [13]. También hay un proyecto para usar Pascal en web a través del lenguaje Pascal Server Pages - PSP pero aún no se han concretado desarrollos, hasta donde se conoce. El sistema de gestión de base de datos más popular en desarrollo web es MySQL, seguida por Oracle, SQL Server y PostgreSQL, también puede usarse perfectamente Firebird o HSQL [14]. 1.2.1 Arquitectura Cliente-Servidor La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de servicios (servidores), y los demandantes (clientes) [15]. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 14 La red cliente-servidor es una red de comunicaciones en la cual los clientes están conectados a un servidor en el que se centralizan los diversos recursos y aplicaciones con que se cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que, por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en caso de que se esté utilizando en una red mixta. En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son [16]:  Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).  Espera y recibe las respuestas del servidor.  Por lo general, puede conectarse a varios servidores a la vez.  Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario. Al receptor de la solicitud enviada por el cliente se conoce como servidor. Sus características son [16]:  Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).  Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.  Por lo general, acepta las conexiones de un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado). En la arquitectura C/S sus características generales son:  El Cliente y el Servidor pueden actuar como una sola entidad y también pueden actuar como entidades separadas, realizando actividades o tareas independientes.  Las funciones de Cliente y Servidor pueden estar en plataformas separadas, o en la misma plataforma. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 15  Cada plataforma puede ser escalable independientemente. Los cambios realizados en las plataformas de los Clientes o de los Servidores, ya sean por actualización o por reemplazo tecnológico, se realizan de una manera transparente para el usuario final.  La interrelación entre el hardware y el software están basados en una infraestructura poderosa, de tal forma que el acceso a los recursos de la red no muestra la complejidad de los diferentes tipos de formatos de datos y de los protocolos.  Su representación típica es un centro de trabajo, en donde el usuario dispone de sus propias aplicaciones de oficina y sus propias bases de datos, sin dependencia directa del sistema central de información de la organización. Ventajas:  Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P) [17].  Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores).  Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación.  Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad de la interfaz, y la facilidad de empleo. Desventajas:  La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una gran cantidad de clientes envían peticiones simultáneas al mismo servidor, puede ser que cause muchos problemas para éste (a mayor número de clientes, más problemas para el servidor) [15]. Al contrario, en las redes P2P como CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 16 cada nodo en la red hace también de servidor, cuanto más nodo hay, mejor es el ancho de banda que se tiene.  El paradigma de C/S clásico no tiene la robustez de una red P2P [17]. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en la red.  El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste.  El cliente no dispone de los recursos que puedan existir en el servidor. Por ejemplo, si la aplicación es una Web, no se puede escribir en el disco duro del cliente o imprimir directamente sobre las impresoras sin sacar antes la ventana previa de impresión de los navegadores. 1.2.2 Frameworks En el desarrollo de software, un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos concretos de software, que puede servir de base para la organización y desarrollo de software [18]. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto. Un framework representa una arquitectura de software que modela las relaciones generales de las entidades del dominio, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio. La arquitectura de programación en los frameworks está basada en el modelo–vista– controlador (MVC) [19], ya que fragmenta la programación.  Modelo: Este miembro del controlador maneja las operaciones lógicas, y de manejo de información (previamente enviada por su ancestro), para resultar de una forma explicable y sin titubeos. Cada miembro debe ser meticulosamente llamado, con su CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 17 correcto nombre y en principio, con su verdadera naturaleza: el manejo de información, su complementación directa.  Vista: Al final, a este miembro de la familia le corresponde dibujar, o expresar la última forma de los datos: la interfaz gráfica que interactúa con el usuario final del programa. Después de todo, a este miembro le toca evidenciar la información obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos espera demostrar la información.  Controlador: Con este apartado se puede controlar el acceso (incluso todo) a nuestra aplicación, y esto puede incluir: archivos, scripts, y/o programas; cualquier tipo de información que permita la interfaz. Así, se podrá diversificar nuestro contenido de forma dinámica, y estática (a la vez); pues, solo se debe controlar ciertos aspectos (como se ha mencionado antes). Dentro del controlador, modelo o vista, se pueden manejar datos, y depende de cada uno cómo interpretar y manejar esos datos. Se sabe que el único dato de una dirección estática web es: conseguir un archivo físico en el disco duro o de Internet, etcétera e interpretado o no, el servidor responde. El modelo, al igual que el controlador y la vista, maneja todos los datos que se relacionen consigo (solo es el proceso medio de la separación por capas que ofrece la arquitectura MVC) [20]. Y solo la vista, puede demostrar dicha información. Con lo cual ya se ha generado la jerarquía de nuestro programa: Controlador, Modelo y Vista. Existen gran cantidad de entornos de desarrollo (frameworks) para desarrollar aplicaciones web principalmente en los lenguajes de PHP, Java, JavaScript y Python. Symfony [21] es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web basado en el patrón Modelo Vista Controlador. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 18 Symfony está desarrollado completamente en PHP 5.3. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server [21]. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows. Symfony fue diseñado para ajustarse a los siguientes requisitos [22]:  Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y Unix-like estándares).  Utiliza programación orientada a objetos y características como los espacios de nombres (namespace), de ahí que sea imprescindible PHP 5.3.  Sencillo de usar en la mayoría de casos, aunque es preferible para el desarrollo de grandes aplicaciones Web que para pequeños proyectos.  Aunque utiliza MVC (Modelo Vista Controlador), tiene su propia forma de trabajo en este punto, con variantes del MVC clásico como la capa de abstracción de base de datos, el controlador frontal y las acciones.  Basado en la premisa de “convenir en vez de configurar”, en la que el desarrollador sólo debe configurar aquello que no es convencional.  Sigue la mayoría de mejores prácticas y patrones de diseño para la web.  Preparado para aplicaciones empresariales y adaptables a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo.  Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo.  Fácil de extender, lo que permite su integración con las bibliotecas de otros fabricantes.  Una potente línea de comandos que facilitan generación de código, lo cual contribuye a ahorrar tiempo de trabajo. Laravel es otro framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5. Su filosofía es desarrollar código PHP de forma elegante y simple, evitando el CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 19 "código espagueti". Fue creado en 2011 pero recientemente ha superado muchos frameworks con más tiempo de vida [23]. Laravel tiene como objetivo ser un framework que permita el uso de una sintaxis elegante y expresiva para crear código de forma sencilla y permitiendo multitud de funcionalidades. Intenta aprovechar lo mejor de otros frameworks y aprovechar las características de las últimas versiones de PHP. Gran parte de Laravel está formado por dependencias, especialmente de Symfony, esto implica que el desarrollo de Laravel dependa también del desarrollo de sus dependencias. Algunas de las características de Laravel son:  Sistema de ruteo, también RESTful [24]  Blade, Motor de plantillas  Peticiones Fluent  Eloquent ORM [25]  Basado en Composer  Soporte para el caché  Soporte para MVC  Usa componentes de Symfony La influencia de Laravel ha crecido rápidamente desde su lanzamiento. En la comunidad de desarrolladores es considerado como alternativa sencilla de usar pero que tiene todas las funcionalidades que debe tener un framework. Ha sido descargado más de 320.000 veces, y se espera que supere en popularidad a otros frameworks ya establecidos más antiguos. Django es un framework de desarrollo web de código abierto, escrito en Python, que respeta el patrón de diseño conocido como Modelo–vista–controlador [26]. Fue desarrollado en origen para gestionar varias páginas orientadas a noticias de la World Company de Lawrence, Kansas, y fue liberada al público bajo una licencia BSD en julio de 2005; el framework fue nombrado en alusión al guitarrista de jazz gitano Django Reinhardt. La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rápido y CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 20 el principio No te repitas (DRY, del inglés Don't Repeat Yourself). Python es usado en todas las partes del framework, incluso en configuraciones, archivos, y en los modelos de datos. Django requiere Python 2.5 o superior. No se necesitan otras bibliotecas de Python para poder obtener una funcionalidad básica. En un entorno de desarrollo –especialmente si se quiere experimentar con Django—no se necesita un web server instalado, ya que Django trae su propio servidor liviano para éste propósito, con la restricción de solo permitir un usuario a la vez. AngularJS (comunalmente llamado "Angular" o "Angular.js"), es un framework de JavaScript de código abierto, mantenido por Google, que se utiliza para crear y mantener aplicaciones web de una sola página. Su objetivo es aumentar las aplicaciones basadas en navegador con capacidad de Modelo Vista Controlador (MVC), en un esfuerzo para hacer que el desarrollo y las pruebas sean más fáciles [27]. La biblioteca lee el HTML que contiene atributos de las etiquetas personalizadas adicionales, entonces obedece a las directivas de los atributos personalizados, y une las piezas de entrada o salida de la página a un modelo representado por las variables estándar de JavaScript. Los valores de las variables de JavaScript se pueden configurar manualmente, o recuperados de los recursos JSON estáticos o dinámicos. Algunas de las características de Angular son [27]:  Disocia la manipulación del Document Object Model (DOM) de la lógica de la aplicación. Esto mejora la capacidad de prueba del código.  Considera a las pruebas de la aplicación como iguales en importancia a la escritura de la aplicación. La dificultad de las pruebas se ve reducida drásticamente por la forma en que el código está estructurado.  Disocia el lado del cliente de una aplicación del lado del servidor. Esto permite que el trabajo de desarrollo avance en paralelo, y permite la reutilización de ambos lados.  Guía a los desarrolladores a través de todo el proceso del desarrollo de una aplicación: desde el diseño de la interfaz de usuario, a través de la escritura de la lógica del negocio, hasta las pruebas. CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 21 Además, existen frameworks que funcionan como bibliotecas que facilitan el desarrollo de interfaz de usuario en web. Estos comparten las mismas características ya que se encargan de controlar el DOM del cliente. Consideraciones finales Los sistemas de control de acceso son de gran utilidad en instituciones que necesitan mantener un registro de las personas que acceden a sus recursos ya sean recursos digitales (Bases de Datos, servicios, conectividad) o recursos físicos (locales, medios de producción, materiales). Para la implementación de un sistema para controlar el acceso de personal y automóviles a diferentes áreas de manera eficiente, se debe diseñar siguiendo las características de un Sistema en Red pues facilita la programación y monitorización, una Interfaz de usuario mucho más intuitivo y flexible y filtros de listados, administración de alarmas y análisis estadísticos. Se utiliza la plataforma web como medio, pues permite la centralización de los servicios en un servidor y varios clientes ubicados en diferentes lugares siguiendo el paradigma de la arquitectura cliente-servidor. CAPÍTULO 2. MATERIALES Y METODOS 22 CAPÍTULO 2. DESARROLLO DEL SISTEMA DE CONTROL DE ACCESO En este capítulo se diseña e implementa un sistema de control de acceso de personal y vehículos para el punto de control de la entrada de la Jefatura Provincial del Ministerio del Interior de la provincia de Cienfuegos. El desarrollo de la aplicación se divide en cuatro etapas: 1. Reconocimiento del problema 2. Análisis de requerimientos de las Bases de Datos 3. Programación de procesos del servidor (Back-End) 4. Programación de la interfaz de usuario (Front-End) 2.1 Diseño de la aplicación A la hora de diseñar y desarrollar cualquier aplicación de software es preciso contar con lenguajes que permitan representar tanto la estructura como el comportamiento de los sistemas de forma precisa, concreta, correcta y adecuada. Para el reconocimiento del problema y el análisis de requerimientos se realizaron visitas a la Jefatura Provincial del Ministerio del Interior de la provincia de Cienfuegos y se solicitó documentación con la descripción del proceso de control de accesos de forma manual que tienen implementados. Una vez estudiado y analizado esta documentación se inicia el diseño de la aplicación. La aplicación se divide en cuatro módulos:  Autenticación  Sembrado de información  Control de Accesos CAPÍTULO 2. MATERIALES Y METODOS 23  Análisis y Estadísticas Se utiliza el modelo Cliente-Servidor como paradigma en el desarrollo de la aplicación pues se ejecutarán los servicios en el Centro de Datos de la institución, y el cliente en el punto de control de la entrada, tal y como se refleja en el Anexo I. 2.1.1 Módulo de Autenticación Autenticación, o mejor dicho acreditación, en términos de seguridad de redes de datos, se puede considerar uno de los tres pasos fundamentales Authentication, Authorization y Accounting (AAA) [7]. Este módulo es utilizado para los usuarios que van a estar directamente vinculados con la aplicación. Para ello se definen tres perfiles de usuarios:  Registro: Tiene privilegios solo de insertar información en la base de datos.  Analista: Tienen privilegios de acceder al módulo de análisis estadístico.  Administradores: Tienen privilegios de sembrar información, agregar/remover usuarios. La autenticación es gestionada en el Back-End de la aplicación. Se requiere una interfaz para solicitar los datos del usuario (nombre/correo y contraseña). Estos datos se envían en un formulario al servidor en paquetes HTML y se comprueba que coincidan para dar paso a la autorización. Las contraseñas de usuario son encriptadas utilizando una función Hashing [28] de 64bits para garantizar seguridad. 2.1.2 Módulo de Sembrado de información El sembrado de información es el proceso de llenado de las bases de datos con información básica necesaria para el correcto funcionamiento de la aplicación. Este se realiza por usuarios con perfiles administrativos. Esto hace flexible la aplicación ya que puede ajustarse a diferentes condiciones de forma sencilla. Para ello es necesario una interfaz de usuario. El sembrado de información les permite a los Administradores rellenar los siguientes datos:  Perfiles de usuarios que acceden a la aplicación,  Información de los locales a los que se puede tener acceso y el nivel de acceso de cada uno.  Personal que trabaja en la institución. CAPÍTULO 2. MATERIALES Y METODOS 24 2.1.3 Módulo de Control de accesos La función principal de la aplicación se define en este módulo. Tras realizar un estudio del funcionamiento del control de accesos de la institución se definen tres tipos de acceso:  Acceso de Personal Civil  Acceso de Personal Militar  Acceso de Vehículos El Acceso de Personal Civil registra la información de los ciudadanos que solicitan acceso para algunos de los servicios a la población que se realizan en la institución. Para ello se requieren los datos del ciudadano (nombre, apellidos, carné de identidad). Además, es requisito en la institución tener un control de a quién se visita, en qué área se realiza la visita y se necesita de un escolta autorizado que guíe al ciudadano hasta su destino. También se registran los horarios de entrada y salida a la institución. El Acceso de Personal Militar registra la información de los oficiales que no radiquen en la institución, pero por cuestiones de trabajo necesitan acceder. Para ello se requieren los datos del oficial (nombre, apellidos, carné de identidad, solapín). En este caso es necesario registrar el motivo de la visita, las áreas que se van a visitar y la hora de entrada y salida. El Acceso de Vehículos es orientado a registrar la información de los vehículos que necesiten el acceso a la institución. Para ello se requieren los datos del vehículo (marca, modelo, chapa) y un identificador de su conductor que se relacione con el Acceso de Personal Militar o Civil. Para la identificación del personal se utiliza dos vías: el carnet de identidad que posee códigos de barra y QR o mediante lectura de huellas. En el caso de usar lectura de huellas se complementa con las bases de datos del MININT que contienen las huellas digitales de las personas mayores de edad de todo el país en el Sistema Único de Identificación Nacional (SUIN) utilizado en las oficinas de carné de identidad de todo el país. 2.1.4 Módulo de Análisis y Estadísticas Una de las utilidades de tener el SCA en plataforma web está precisamente en la posibilidad de hacer consultas a las bases de datos de forma sencilla y rápida obteniendo información que tributa a análisis estadísticos. Para facilitar estas consultas se crea el módulo de Análisis y Estadísticas que, mediante una interfaz de usuario muy fácil de usar, les permite a los CAPÍTULO 2. MATERIALES Y METODOS 25 analistas realizar filtros en los datos de la base de datos sin necesidad de conocer ningún lenguaje de gestión de bases de datos. Se incorporan filtros para obtener datos de las entradas de personal o vehículos en un día del año específico o en un intervalo con tablas y gráficos que muestren explícitamente la información. 2.1.5 Diseño de las bases de datos Todas las empresas requieren almacenar información. Desde siempre lo han hecho. La información puede ser de todo tipo. Cada elemento informativo (nombre, dirección, salario, etc.) es lo que se conoce como dato (en inglés data). Las soluciones utilizadas por las empresas para almacenar los datos son diversas. Un sistema de bases de datos sirve para integrar los datos. Lo componen los siguientes elementos [29]:  Hardware. Máquinas en las que se almacenan las bases de datos. Incorporan unidades de almacenamiento masivo para este fin. Diseño conceptual de bases de datos bases de datos  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: o Usuarios finales. Aquellos que utilizan datos de la base de datos para su trabajo cotidiano que no tiene por qué tener que ver con la informática. Normalmente no utilizan la base de datos directamente, si no que utilizan aplicaciones creadas para ellos a fin de facilitar la manipulación de los datos. Estos usuarios sólo acceden a ciertos datos. o Desarrolladores. Analistas y programadores encargados de generar aplicaciones para los usuarios finales. o Administradores. También llamados DBA (Data Base Administrator) [29], se encargan de gestionar las bases de datos CAPÍTULO 2. MATERIALES Y METODOS 26 Para el desarrollo de la aplicación se crea una base de datos que será almacenada en un servidor MySQL en el Centro de Datos de la institución. El sistema gestor de la base de datos es Eloquent ORM que forma parte de Laravel 5.7. La base de datos de la aplicación contendrá la información de los usuarios permitidos a usar la aplicación y los privilegios de cada uno, informes de errores y alertas y por último los registros de todo el acceso a la institución. Para ello se crean 6 tablas: usuarios, personal militar, personal civil, personal autorizado, automóviles y locales como se muestra en el Anexo II. 2.2 Programación de la aplicación La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Esta idea también se puede aplicar a programas que se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras. 2.2.1 Programación de los servicios del servidor Para la programación de los servicios del servidor (Back-End) de la aplicación se selecciona el framework de PHP Laravel ya que posee una constante evolución y compatibilidad con otros frameworks, específicamente la versión 5.7 de septiembre del 2018. La metodología de trabajo de Laravel para programación de Back-Ends se diferencia en tres componentes principales: rutas, modelos y controladores. Laravel incluye un sistema de mapeo de datos relacional llamado Eloquent ORM que facilita la creación de modelos. Este ORM se funda en patrón active record y su funcionamiento es muy sencillo. Es opcional el uso de Eloquent, pues también dispone de otros recursos que nos facilitan interactuar con los datos, o específicamente la creación de modelos. El código del modelo puede ser más simple, en el caso que el nombre de la tabla coincida con el nombre de la clase. Pues Laravel usa el paradigma de programación donde se favorece "la convención sobre la configuración" [21]. CAPÍTULO 2. MATERIALES Y METODOS 27 Las rutas en Laravel son las encargadas del direccionamiento dentro del framework. Estas son el medio por el que se seleccionan las acciones de la aplicación en correspondencia con los pedidos (GET, POST, DELETE, PATCH) que se ejecuten. Cada ruta ejecuta alguna función dentro de un controlador. Los controladores contienen la lógica de la aplicación y permiten organizar el código en clases sin tener que escribirlo todo en las rutas. Todos los controladores deben extenderse de la clase BaseController [11]. Son los encargados de ejecutar las acciones en correspondencia con la ruta a la que se accede. Además de estos componentes es necesario comprender otros componentes del framework:  Middleware: Son los intermediarios entre las rutas y los controladores. Se utilizan mayormente para autenticar antes de ejecutar una acción en los controladores.  Request: Es información contenida en cada pedido de una ruta que es enviada a los controladores  Response: Es la respuesta del controlador una vez ejecutada una acción. Para la programación del Back-End se crean seis modelos cada uno relacionado con una tabla de la base de datos. Cada uno de estos modelos representa el objeto correspondiente con su nombre como se puede ver en la Tabla 2.1. Tabla 2.1. Modelos de la aplicación Modelo Tabla User Usuarios CarRegister Registro Automóviles PersonalCivilRegister Registro Personal Civil PersonalMilitaryRegister Registro Personal Militar Local Locales PersonalEscorts Personal Autorizado CAPÍTULO 2. MATERIALES Y METODOS 28 Las rutas de la aplicación se definen en el archivo web.php que se carga junto con el framework. El Anexo III muestra las rutas con la acción del controlador correspondiente en Laravel. Las Uniform Resource Locator (URL) son relativas, es decir, si la URL es “p_civil” en realidad es “http://app.dominio/p_civil”. 2.2.2 Programación de la interfaz de cliente El cliente (Front-End) es la parte de la aplicación que está en contacto directo con los usuarios. Es necesario que sea sencillo de utilizar e intuitivo para que las funcionalidades de la aplicación sean explotadas al máximo. Para un diseño óptimo se emplea los frameworks de JavaScript Vue y jQuery [30] que poseen una serie de herramientas que optimizan la manipulación del DOM de la interfaz web combinado con Bootstrap [31] que contiene los estilos necesarios para la estética de la interfaz de usuario. Con estas herramientas se crea una interfaz de control (dashboard) con un panel de navegación superior con notificaciones, alertas y un botón para contactar directamente con los administradores para reportar algún error en la plataforma. En la pantalla principal, que se muestra en la Figura 2.1, se crean widgets superiores para el acceso rápido a los módulos más usados y que a su vez se brindan datos como la cantidad de personas o automóviles que están dentro de la institución en tiempo real. En el centro de la pantalla se encuentra el área de contenido que es la que muestra los datos. A la izquierda un panel lateral con enlaces a cada uno de los módulos de la aplicación. Este panel es desplegable para que sea posible ocultarlo para reducir el tamaño de la interfaz. CAPÍTULO 2. MATERIALES Y METODOS 29 Figura 2.1. Interfaz de usuario de la aplicación Se diseña una interfaz para la inserción de datos (persona civil, militar o automóvil) y su almacenamiento en la base de datos como se muestra en el Anexo IV. En esta ventana se brinda la posibilidad de autocompletado de la información utilizando los servicios del SUIN mediante la lectura de la huella o el código de barras del carné de identidad con el medio de identificación correspondiente (lector de huellas o lector de código de barra). Para complementar el módulo de análisis estadísticos se crea una interfaz que facilita al usuario la realización de filtros con la información almacenada en la base de datos. Estos filtros se muestran de manera gráfica con la ayuda de gráficos como se muestra en el Anexo V. Consideraciones finales Al desarrollar una aplicación o software de cualquier tipo es necesario trazar una línea de trabajo que sirva como guía. Es muy útil separar por etapas o módulos el desarrollo de aplicaciones pues facilita el trabajo al programador al mantener orden y organización en el código. La arquitectura cliente-servidor provee una metodología de trabajo para el desarrollo de aplicaciones web. Basado en esta arquitectura, el entorno de desarrollo Laravel garantiza CAPÍTULO 2. MATERIALES Y METODOS 30 eficiencia y seguridad para la programación de servicios ejecutados en el servidor, mientras que, el cliente desarrollado con Vue.js, Bootstrap y jQuery le brinda al usuario final una interfaz amigable, ajustable y sencilla. CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 31 CAPÍTULO 3. FUNCIONALIDAD, RENDIMIENTO Y COSTO DEL SISTEMA DE CONTROL DE ACCESO Una vez diseñado y programado el sistema de control de accesos se realizan pruebas para comprobar su funcionamiento y rendimiento. Además, se analiza el costo de la puesta en práctica de este sistema en un entorno real, específicamente en la Jefatura Provincial del Ministerio del Interior de la provincia de Cienfuegos. 3.1 Preparación del entorno de simulación Para la simulación se utiliza una conexión Ethernet entre dos ordenadores con una velocidad de 100Mbps para comprobar el correcto funcionamiento de la arquitectura cliente-servidor y el tiempo de respuesta de los diferentes pedidos que se hacen al servidor. El ordenador con el rol de servidor tiene como sistema operativo Windows 10 (x64). Se utiliza la aplicación XAMPP versión 3.2.2 que contiene servicios web (Apache con PHP v7.3.1), base de datos (MySQL), FTP (Filezilla) y SMTP (Mercury). De estos servicios solo se utiliza el servidor de Apache y el de MySQL con una distribución de puertos como se muestra en la Tabla 3.1. El ordenador con el rol de cliente tiene como sistema operativo Windows 10 (x64) y se utiliza para acceder al servidor el navegador Mozilla Firefox versión 64.0. Tabla 3.1. Servicios y puertos del servidor de prueba Servicio Puerto WEB HTTP 80 CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 32 HTTPS 443 Base de Datos MySQL 3306 El direccionamiento se diseña utilizando IPv4 clase C como se observa en la Tabla 3.2. Tabla 3.2. Direccionamiento IP en la simulación Rol IP Máscara Servidor 192.168.43.3 255.255.255.0 Cliente 192.168.43.5 255.255.255.0 3.2 Test de rendimiento de la aplicación El análisis del rendimiento se realiza teniendo en cuenta tres parámetros estrechamente relacionados en dos momentos diferentes, se analizan en la primera ejecución de la aplicación que es cuando necesita mayor rendimiento y posteriormente una vez que el navegador almacene datos necesarios en su memoria reduciendo los requisitos de tráfico. Los parámetros a comparar son:  Carga de la red [32]: parámetro que mide la cantidad de información que se transmite entre el cliente y el servidor en el momento de cargar la aplicación en el navegador del cliente. Para aplicaciones web ligeras debe estar por debajo de los 10Mb.  Almacenamiento: parámetro que mide la cantidad de información que se queda almacenada en el cliente ya sea cache, cookies o en el almacenamiento local. Para aplicaciones web ligeras debe estar por debajo de los 25Mb.  Tiempo de respuesta [32]: parámetro que mide el tiempo de carga de la aplicación en el navegador del cliente. Para aplicaciones web ligeras debe ser inferior a los 5 segundos a una velocidad de 100Mbps. Durante la primera ejecución de la aplicación se realizan 14 pedidos en paralelo para mostrar la información de la página en un tiempo total de 2.26 segundos y una transferencia total de CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 33 2 Mb entre el servidor y el cliente. En esta ejecución el almacenamiento cache del navegador está vacío. Los datos obtenidos de esta ejecución se muestran en la Tabla 3.3. Tabla 3.3. Análisis del rendimiento de la primera ejecución de la aplicación Parámetro Valor Unidad Carga de la red 2,99 Mb Tiempo de respuesta 1.43 Segundos Almacenamiento 0 Mb En las posteriores ejecuciones se reduce la cantidad de pedidos, la transferencia en la red y el tiempo de carga ya que el navegador almacena parte de la información necesaria en el cache. Los resultados de las pruebas se observan en la Tabla 3.4. Tabla 3.4. Análisis del rendimiento de la aplicación Parámetro Valor Unidad Carga de la red 752.45 Kb Tiempo de respuesta 1.43 Segundos Almacenamiento 2.256 Mb 3.3 Test de funcionalidad de la aplicación El test de funcionalidad consiste en probar que todos los módulos de la aplicación estén en correcto funcionamiento. Para ello se realizan las siguientes pruebas:  Inserción de datos en la base de datos.  Funcionamiento de los filtros estadísticos.  Adaptabilidad de la Interfaz de usuario. Las pruebas de inserción de datos se realizan insertando datos de personas, usando la interfaz del módulo de control de accesos que se muestra en el Anexo IV. Para ello se insertan CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 34 100 personas en diferentes horas para comprobar su correcto almacenamiento en la base de datos. Una vez concluida la inserción se comprobó que la información había sido correctamente guardada. Con la comprobación de la inserción de datos concluida se rellena la base de datos con más entradas para comprobar el funcionamiento de los filtros estadísticos. Para ello, usando la interfaz creada para realizar los análisis estadísticos, se solicita realizar un filtro de las entradas de un día específico (7-06-2019) en un gráfico de barras que muestre la cantidad de personas que accedieron por hora. El gráfico resultante es mostrado en la Figura 3.1. Figura 3.1. Resultado del test al módulo de análisis y estadísticas Una interfaz de usuario debe ser capaz de ajustarse a cualquier dimensión del dispositivo en el que se ejecute, es decir, debe tener flexibilidad para poder ser vista tanto desde dispositivos móviles con dimensiones de pantalla pequeña como computadoras con pantallas más grandes. Para comprobar la adaptabilidad de la interfaz se limita el tamaño de la pantalla del cliente en dos resoluciones: Para PC (1366x768) y para Teléfonos Móviles (282x477). Al limitar la resolución de pantalla a las dimensiones de los teléfonos móviles todos los elementos visuales se ajustan correctamente. El Anexo VI muestra la interfaz de usuario adaptada a las dimensiones de pantalla de un teléfono móvil. CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 35 3.4 Análisis de costos para la institución Para la implementación real del sistema de control de acceso que se propone hay que tener en cuenta los siguientes elementos que generan costos:  Servidor (Web y de Base de datos).  Dispositivo en el que se ejecuta en cliente (Computadora o Teléfono móvil).  Medio de comunicaciones (cable UTP, routers, switches, etc.).  Medios de Identificación (Lector de huellas, lector de código de barras). La Jefatura Provincial del Ministerio del Interior de la provincia de Cienfuegos posee una red que abarca todos los edificios de la institución incluido el punto de control de la entrada. La institución también cuenta con un Centro de Procesamiento de Datos (CPD) donde se concentran los recursos necesarios para el procesamiento de la información en servidores. Por esta razón no existe costo para la institución producido por la necesidad de servidores web y de bases de datos ni por los medios de comunicación entre el cliente y el servidor. Para un correcto funcionamiento del cliente se sugiere utilizar un ordenador personal con teclado, mouse y puertos USB para conectar los dispositivos de identificación. El procesamiento y almacenamiento interno necesario del ordenador es mínimo pues solo necesita la ejecución de un navegador web. Los medios de identificación (Lector de huellas) en el mercado varían de precio según su precisión. Para que el sistema de control de accesos funcione de manera debida usando medios de identificación se necesita certeza y precisión en los datos que estos dispositivos le brindan al sistema. El Anexo VII muestra características y precio de lectores de huellas. Se definen dos paquetes que contienen los dispositivos necesarios para la implementación del sistema, uno con un costo moderado con menos prestaciones y otro con un costo mayor con mayores prestaciones como se muestra en la Tabla 3.5. Tabla 3.5 Costo de implementación Tipo Dispositivos Precio CAPÍTULO 3. RESULTADOS Y DISCUSIÓN 36 Costo Moderado Cliente: PC DualCore - Procesador (1.67 GHz, 1Gb RAM DDR2) $178.50 Sensor de Huella: GROW R307 Costo Mayor Cliente: PC Intel Core i5- 4570 - Procesador (3.4 GHz, 4Gb RAM DDR3) $571.20 OWSOO Lector de Huellas Dactilares (Alta precisión) Consideraciones finales Con la realización del test de rendimiento se obtuvieron valores de carga de red, almacenamiento del cliente y tiempo de respuesta de la aplicación web. Estos valores están dentro del rango permisible para aplicaciones web ligeras lo que muestra que es una aplicación eficiente. El test de funcionalidad mostró que la programación de los módulos de la aplicación comprobó que los datos insertados con la interfaz de usuario se almacenaron correctamente en la base de datos y los filtros diseñados muestran los valores solicitados correctamente y en forma de gráfico lo que lo hace más útil. Mientras, el costo de implementación de la aplicación brinda la información del presupuesto que requiere la aplicación para su funcionamiento a la institución. CONCLUSIONES Y RECOMENDACIONES 37 CONCLUSIONES Y RECOMENDACIONES Conclusiones 1 La seguridad de los recursos tanto físicos como digitales de una empresa o institución tiene una alta prioridad en la actualidad, por tanto, resulta importante elegir la técnica de control adecuada. El sistema de control seleccionado debe ser implementado en plataformas que permitan flexibilidad y a la vez robustez tales como plataformas web. 2 Laravel es uno de los entornos de desarrollo más robustos actualmente pues que permite el desarrollo de servicios del servidor de forma optimizada y segura, mientras que Vue.js, Bootstrap y jQuery brindan adaptabilidad y estética a la interfaz de usuario en los clientes. La combinación de todas estas herramientas permite la creación de aplicaciones web de alta competitividad. 3 Las pruebas de funcionalidad realizadas a la aplicación comprueban el correcto funcionamiento de cada uno de los módulos, mientras, las pruebas de rendimiento muestran su eficiencia pues los resultados obtenidos están dentro de los rangos permisibles para aplicaciones web ligeras. 4 Con el análisis de costo de implementación real de la aplicación se muestra el costo de inversión necesaria para la ejecución del sistema. Además, el análisis le permite a la institución valorar la relación funcionalidad-costo del sistema antes de su implementación. Recomendaciones 1 El desarrollo de aplicaciones web ha ido evolucionando desde sus inicios hasta los días actuales y seguirá desarrollándose. Por ello las herramientas usadas para confeccionar CONCLUSIONES Y RECOMENDACIONES 38 este sistema de control de acceso (Laravel, Vue, jQuery, Bootstrap) también tendrán actualizaciones, por lo que se recomienda mantenerlas lo más actualizadas posibles. 2 Utilizar clientes con mejor procesamiento para optimizar la comunicación con el servidor usando pedidos asincrónicos. Esta optimización se ejecuta en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, mejorando la interactividad, velocidad y usabilidad en las aplicaciones. REFERENCIAS BIBLIOGRÁFICAS 39 REFERENCIAS BIBLIOGRÁFICAS [1] Y.-F. Jiang, S.-Y. Zhang, Z. Huang, M.-Q. Liu, Y. I. N. Ling, y J.-P. Niu, «Access control for rural medical and health collaborative working platform», J. China Univ. Posts Telecommun., vol. 20, pp. 7–10, 2013. [2] H. Wang, X. Guo, Y. Fan, y J. Bi, «Extended access control and recommendation methods for enterprise knowledge management system», IERI Procedia, vol. 10, pp. 224–230, 2014. [3] W. Tolone, G.-J. Ahn, T. Pai, y S.-P. Hong, «Access control in collaborative systems», ACM Comput. Surv. CSUR, vol. 37, n.o 1, pp. 29–41, 2005. [4] J. Mao, H. Cai, W. Wang, C. Huang, F. Chen, y B. Xu, «A Web of Things Based Device- Adaptive Service Composition Framework», en 2016 IEEE 13th International Conference on e-Business Engineering (ICEBE), 2016, pp. 40–47. [5] M. Benantar, Access control systems: security, identity management and trust models. Springer Science & Business Media, 2006. [6] B. A. Chambers y J. Bicket, «Method for automatically applying access control policies based on device types of networked computing devices», 23544, nov-2015. [7] C. Metz, «AAA protocols: authentication, authorization, and accounting for the Internet», IEEE Internet Computing, 2001. [En línea]. Disponible en: https://tools.ietf.org/html/rfc3539. [8] R. S. Sandhu y P. Samarati, «Access control: principle and practice», IEEE Commun. Mag., vol. 32, n.o 9, pp. 40–48, 2016. [9] M. A. Murillo-Escobar, C. Cruz-Hernández, F. Abundiz-Pérez, y R. M. López-Gutiérrez, «A robust embedded biometric authentication system based on fingerprint and chaotic encryption», Expert Syst. Appl., vol. 42, n.o 21, pp. 8198–8211, 2015. [10] J. C. HERNÁNDEZ REYES, «Autenticación Biométrica a través de huellas digitales e oros en una empresa industrial», vol. 2, pp. 18-25, 2016. [11] M. Anif, A. Dentha, y H. W. S. Sindung, «Designing internship monitoring system web based with Laravel framework», en 2017 IEEE International Conference on Communication, Networks and Satellite (Comnetsat), 2017, pp. 112–117. [12] M. Labanda-Jaramillo, J. G. Quinche, L. Chamba-Eras, E. Coronel-Romero, J. L. Granda, y L. E. C. Zhingre, «Empirical Study Between Compiled, Interpreted, and REFERENCIAS BIBLIOGRÁFICAS 40 Dynamic Programming Languages Applying Stable Ordering Algorithms (Case Study: Java, Python, Jython, Jpype and Py4J)», KnE Eng., vol. 3, n.o 9, pp. 122–132, 2018. [13] N. R. Swain et al., «A new open source platform for lowering the barrier for environmental web app development», Environ. Model. Softw., vol. 85, pp. 11–26, 2016. [14] S. M. Groomer y U. S. Murthy, «Continuous auditing of database applications: An embedded audit module approach», en Continuous Auditing: Theory and Application, Emerald Publishing Limited, 2018, pp. 105–124. [15] I. V. Kovalev, P. V. Zelenkov, M. V. Karaseva, M. Y. Tsarev, y R. Y. Tsarev, «Model of the reliability analysis of the distributed computer systems with architecture" client- server"», en IOP Conference Series: Materials Science and Engineering, 2015, vol. 70, p. 012009. [16] M. Goodyear y A. Rahman, Enterprise System Architectures: Building Client Server and Web Based Systems, 2.a ed., vol. 3, 5 vols. Manchester, Inglaterra: CRC press, 2017. [17] C.-J. Chae, Y. Shin, K. Choi, K.-B. Kim, y K.-N. Choi, «A privacy data leakage prevention method in P2P networks», Peer--Peer Netw. Appl., vol. 9, n.o 3, pp. 508–519, 2016. [18] C. Bauer, P. Dohmen, y C. Strauss, «A conceptual framework for backend services of contextual digital signage», J. Serv. Sci. Res., vol. 4, n.o 2, pp. 271–297, 2012. [19] G. Arcos-Medina, J. Menéndez, y J. Vallejo, «Comparative Study of Performance and Productivity of MVC and MVVM design patterns», KnE Eng., vol. 1, n.o 2, pp. 241–252, 2018. [20] R. F. Olanrewaju, T. Islam, y N. Ali, «An empirical study of the evolution of php mvc framework», en Advanced Computer and Communication Engineering Technology, Springer, 2015, pp. 399–410. [21] M. Laaziri, K. Benmoussa, S. Khoulji, K. M. Larbi, y A. El Yamami, «A comparative study of laravel and symfony PHP frameworks», Int. J. Electr. Comput. Eng. IJECE, vol. 9, n.o 1, pp. 704–712, 2019. [22] N. Naik, «Choice of effective messaging protocols for IoT systems: MQTT, CoAP, AMQP and HTTP», en 2017 IEEE international systems engineering symposium (ISSE), 2017, pp. 1–7. [23] L. Chen, W. Huang, A. Sui, D. Chen, y C. Sun, «The online education platform using Proxmox and noVNC technology based on Laravel framework», en 2017 IEEE/ACIS 16th International Conference on Computer and Information Science (ICIS), 2017, pp. 487–491. [24] X. Chen, Z. Ji, Y. Fan, y Y. Zhan, «Restful api architecture based on laravel framework», en Journal of Physics: Conference Series, 2017, vol. 910, p. 012016. [25] S. Sinha, «Eloquent Relations», en Beginning Laravel, 2.a ed., vol. 3, 5 vols., Heidelberg, Berlin, Germany: Springer Science & Business Media, 2017, pp. 123–151. [26] S. Liawatimena et al., «Django Web Framework Software Metrics Measurement Using Radon and Pylint», en 2018 Indonesian Association for Pattern Recognition International Conference (INAPR), 2018, pp. 218–222. REFERENCIAS BIBLIOGRÁFICAS 41 [27] M. Ramos, M. T. Valente, R. Terra, y G. Santos, «AngularJS in the wild: A survey with 460 developers», en Proceedings of the 7th International Workshop on Evaluation and Usability of Programming Languages and Tools, 2016, pp. 9–16. [28] J. Gui, T. Liu, Z. Sun, D. Tao, y T. Tan, «Fast supervised discrete hashing», IEEE Trans. Pattern Anal. Mach. Intell., vol. 40, n.o 2, pp. 490–496, 2017. [29] C. Priebe, K. Vaswani, y M. Costa, «Enclavedb: A secure database using sgx», en 2018 IEEE Symposium on Security and Privacy (SP), 2018, pp. 264–278. [30] A. Zibula y T. A. Majchrzak, «Cross-platform development using HTML5, jQuery Mobile, and PhoneGap: Realizing a smart meter application», en International Conference on Web Information Systems and Technologies, 2012, pp. 16–33. [31] P. Hong, «Practical web design: Learn the fundamentals of web design with HTML5, CSS3, bootstrap, jQuery, and vue. js», Birm. Packt Publ., 2018. [32] P. J. Leach, T. Berners-Lee, J. C. Mogul, L. Masinter, R. T. Fielding, y J. Gettys, «Hypertext Transfer Protocol -- HTTP/1.1». [En línea]. Disponible en: https://tools.ietf.org/html/rfc2616. [Accedido: 10-jun-2019]. ANEXOS 42 ANEXOS Anexo I Diagrama físico de la aplicación de control de acceso Anexo II Estructura de la base de datos de la aplicación Tabla Datos Descripción Usuarios Id Único, Entero Positivo Contiene la información de los usuarios permitidos a usar la aplicación y los ANEXOS 43 Nombre Cadena de texto privilegios de cada uno de ellos. Esta tabla es usada en el módulo de autenticación Email Único, Cadena de texto Área Entero Positivo Tipo Cadena de texto Registro Personal Civil Id Único, Entero Positivo Almacena la información de todo personal civil que accede a la institución. Es utilizado en el módulo de control de acceso. Utiliza datos propiciados por la base de datos del SUIN Nombre Cadena de texto Apellidos Cadena de texto CI Cadena de texto Lugar de Visita Entero Positivo Motivo de Visita Nulo, Cadena de Texto ANEXOS 44 Escoltado Por Entero Positivo Automóvil Nulo, Entero Positivo Hora Entrada Cadena de Texto Hora Salida Cadena de Texto Registro Personal Militar Id Único, Entero Positivo Almacena la información de todo personal militar que accede a la institución. Es utilizado en el módulo de control de acceso. Utiliza datos propiciados por la base de datos del SUIN Nombre Cadena de Texto Apellidos Cadena de Texto CI Cadena de Texto Lugar de Visita Entero Positivo Motivo de Visita Nulo, Texto Escoltado Por Entero Positivo ANEXOS 45 Automóvil Nulo, Entero Positivo Hora Entrada Cadena de Texto Hora Salida Cadena de Texto Solapín Cadena de Texto Registro Automóviles Id Único, Entero Positivo Almacena la información de todo automóvil que accede a la institución. Es utilizado en el módulo de control de acceso. Id Conductor Entero Positivo Chapa Cadena de Texto Organismo Cadena de Texto Modelo Cadena de Texto Color Cadena de Texto Hora Entrada Cadena de Texto ANEXOS 46 Hora Salida Cadena de Texto Registro Personal Autorizado Id Único, Entero Positivo Almacena la información de todo personal autorizado (trabajadores de la institución, personal con acceso temporal). Es utilizado en el módulo de control de acceso. Nombre Cadena de Texto Apellidos Cadena de Texto CI Cadena de Texto Solapín Cadena de Texto Área Entero Positivo Teléfono Cadena de Texto Rango Cadena de Texto Militar Booleano Locales de Acceso Id Único, Entero Positivo Almacena la información de todos los locales de la ANEXOS 47 Nombre Cadena de Texto institución con su respectivo nivel de acceso Tipo Cadena de Texto Pertenece a Nulo, Entero Positivo Nivel de acceso Entero Positivo Anexo III Enrutamiento HTTP de la aplicación en Laravel Método URL Controlador Descripción GET p_civil PCivilController@index Muestra la lista de personal civil POST p_civil PCivilController@store Almacena una entrada en la base de datos GET p_civil/{id} PCivilController@show Muestra los datos de una entrada del personal civil POST p_civil/car PCivilController@storeWithVehicle Almacena una entrada en la base de datos GET p_civil/edit/{id} PersonalCivilController@edit Edita los datos de una entrada del personal civil ANEXOS 48 GET p_military PMilitaryController@index Muestra la lista de personal militar POST p_military PMilitaryController @store Almacena una entrada en la base de datos GET p_military/{id} PMilitaryController @show Muestra los datos de una entrada del personal militar POST p_military /car PMilitaryController @storeWithVehicle Almacena una entrada en la base de datos GET p_military/edit/{id} PMilitaryController @edit Edita los datos de una entrada del personal militar GET Settings AdminController@settings Muestra la interfaz de configuración de la aplicación GET Stats AdminController@stats Muestra la interfaz de estadísticas GET Login LoginController@show Muestra la interfaz de login GET Logout LoginController@logout Cierra sesión de un usuario ANEXOS 49 Anexo IV Interfaz del cliente para insertar valores en la base de datos Anexo V Interfaz del cliente para análisis estadísticos ANEXOS 50 Anexo VI Interfaz del cliente ajustado para teléfonos móviles Anexo VII Comparación de lectores de huella Dispositivo Características Precio OWSOO Lector de Huellas Dactilares  Tipo de sensor: óptico  Sensor de huellas dactilares: I6_20ª  Área superficial de Touth: 18 mm × 20 mm  Tamaño de la imagen: 360 * 480  Resolución (ppp): 500  Interfaz: USB 2.0 de alta velocidad, compatible con USB 1.0 / 1.1 $42.04 ANEXOS 51  Sistemas operativos: Windows 2000 (2003 / XP), Vista, Windows 7 (32 bits), Win8, Win10  Idiomas compatibles: VC ++, C ++ Builder, VB, VB.net, Delphi, PB, C #, Visual Foxpro.  Voltaget de suministro: 5V, alimentado por USB  Longitud del cable USB: 100CM  Material: ABS de alta calidad  Temperatura de funcionamiento del entorno operativo: -0 ℃ ~ + 45 ℃  Humedad (RH): 20% ~ 80%  Tamaño del artículo: Aprox. 8.8 * 5.7 * 4.5cm / 3.5 * 2.2 * 1.8in (L * W * H)  Peso del artículo (con cable USB): Aprox. 115g / 4.1oz /0.25lb GROW R307  Vida útil del Sensor: 100 millones de veces  Estática indicadores: 15KV  Interfaz: USB2.0/UART TTL (nivel lógico)  RS232 comunicación tasa de baudios: 9600BPS ~ 115200BPS cambiable  Superficie de captura de imagen 15 × 11 (mm)  Verificación de velocidad: 0,2 seg  Velocidad de escaneo: 0,3 segundos  Tamaño del archivo de carácter: 256 bytes  Tamaño de la plantilla: 512 bytes  Capacidad de almacenamiento: 1000  Nivel de seguridad: 3 (1,2, 3,4, 5 (más alto)  Tasa de aceptación falsa (lejos): ≤0. 0001%  Tasa de falso rechazo (FRR): ≤0. 1%  Resolución 500 DPI  Voltaje: 4,2-6VDC (O 3,3 V) $10.05 ANEXOS 52  Corriente de funcionamiento: típica ≤75mA  Método de coincidencia: 1: N  Temperatura de envío de funcionamiento:-20 a 50 grados. PENSAMIENTO DEDICATORIA AGRADECIMIENTOS TAREA TÉCNICA RESUMEN INTRODUCCIÓN Organización del informe CAPÍTULO 1. SISTEMAS DE CONTROL DE ACCESO EN PLATAFORMA WEB 1.1 Sistemas de control de acceso (SCA) 1.1.1 Tipos de SCA 1.1.2 Funcionamiento del SCA 1.2 Desarrollo Web 1.2.1 Arquitectura Cliente-Servidor 1.2.2 Frameworks Consideraciones finales CAPÍTULO 2. DESARROLLO DEL SISTEMA DE CONTROL DE ACCESO 2.1 Diseño de la aplicación 2.1.1 Módulo de Autenticación 2.1.2 Módulo de Sembrado de información 2.1.3 Módulo de Control de accesos 2.1.4 Módulo de Análisis y Estadísticas 2.1.5 Diseño de las bases de datos 2.2 Programación de la aplicación 2.2.1 Programación de los servicios del servidor 2.2.2 Programación de la interfaz de cliente Consideraciones finales CAPÍTULO 3. FUNCIONALIDAD, RENDIMIENTO Y COSTO DEL SISTEMA DE CONTROL DE ACCESO 3.1 Preparación del entorno de simulación 3.2 Test de rendimiento de la aplicación 3.3 Test de funcionalidad de la aplicación 3.4 Análisis de costos para la institución Consideraciones finales CONCLUSIONES Y RECOMENDACIONES Conclusiones Recomendaciones REFERENCIAS BIBLIOGRÁFICAS ANEXOS Anexo I Diagrama físico de la aplicación de control de acceso Anexo II Estructura de la base de datos de la aplicación Anexo III Enrutamiento HTTP de la aplicación en Laravel Anexo IV Interfaz del cliente para insertar valores en la base de datos Anexo V Interfaz del cliente para análisis estadísticos Anexo VI Interfaz del cliente ajustado para teléfonos móviles Anexo VII Comparación de lectores de huella