Está en la página 1de 4

Software para Sistemas de Control de

Acceso Físico
Alumno: Lionel Oscar Siclari, Director: Ing. Raúl Rivera
Facultad de Ingeniería de Mar del Plata, Marzo de 2009

Resumen: Se presenta un desarrollo de solo a las personas con los permisos suficientes
software para un sistema de control de acceso para hacerlo.
físico para estadios deportivos.
En general, la Autenticación de una persona
La implementación del proyecto requirió
desarrollar una integración a nivel de software involucra un elemento conocido por la persona,
entre el Servidor de Control de Acceso y el como por ejemplo una clave de seguridad, un
Sistema de Venta de localidades (tickets). Tal elemento que posee la persona, como una tarjeta
integración permite a los sistemas externos de acceso, o un atributo físico o de
incorporar datos de personas y permisos comportamiento de la persona, como por
especiales, y se desarrolló implementando un
ejemplo su huella digital, iris, voz, etc. La
mecanismo de actualización de datos empleando
un WebService provisto por el Sistema de Venta combinación de estos elementos de autenticación
de Tickets. permite manejar diferentes niveles de seguridad.
Los espectadores adquieren en las boleterías El proceso de Autorización se ejecuta en una
del estadio un ticket de proximidad con etapa posterior a la Autenticación de la persona.
tecnología MIFARE que opera a una frecuencia En esta instancia es importante identificar cuales
de 13.56MHz. El número de serie (CSN) junto
con la información de la ubicación asociada al son los permisos asociados a la persona en base a
ticket se transfiere al sistema de Control de las credenciales provistas durante la autorización.
Acceso mediante el módulo desarrollado en este En ambos procesos intervienen componentes
proyecto. Se accede al interior del estadio a de Hardware y de Software. En este proyecto el
través de molinetes que incorporan lectores de foco estará puesto en el Software de Gestión que
proximidad para validar los datos de los tickets
permite administrar los datos del sistema de
adquiridos por los espectadores.
El sistema incluye una página Web que Control de Acceso.
permite visualizar en tiempo real el flujo de El software fue implementado utilizando el
ingreso de los espectadores por los distintos lenguaje de programación Java[1] e interfaces de
puntos de acceso al estadio. Esta información se comunicación estándar que permiten la
utiliza para tomar diferentes acciones como por integración entre distintos sistemas desarrollados
ejemplo redireccionar el ingreso de espectadores
en diferentes lenguajes y plataformas.
por los distintos sectores en caso de congestión
de alguno de los accesos.
II. ALCANCE DEL PROYECTO
I. INTRODUCCION
A continuación se detallan las especificaciones
Los sistemas de Control de Acceso han ido típicas para un control de acceso que dieron
evolucionando a lo largo de los años en principio origen al presente proyecto.
debido al avance de la tecnología pero por otro Req. 1: Se requiere que el Sistema de
lado también debido a la necesidad de mayor Control de Acceso implemente un mecanismo
seguridad de la sociedad actual. El control de que permita incorporar la información de las
localidades vendidas por el Sistema de Venta de
Acceso se basa en dos conceptos principales:
Tickets. Esta información se encuentra
Autenticación y Autorización. Autenticación es disponible a través de un WebService
el proceso de determinar la identidad de una desarrollado por el cliente.
entidad, en cambio, Autorización tiene que ver El sistema debe manejar la condición de tickets
con permitir el acceso a determinados recursos cancelados, es decir tickets que fueron vendidos
pero que antes del comienzo del partido fueron
cancelados por el espectador. No se debe A cada usuario del sistema se le asigna un
permitir el acceso al estadio a ningún espectador esquema de Permisos de Acceso que permite
con ticket cancelado.
definir qué días, en qué horario y por cuales
Tampoco se debe permitir que un mismo ticket
sea utilizado más de una vez para el ingreso al dispositivos se le permite el acceso.
estadio. Se requiere en todos los casos que el El esquema de permisos debe ser lo
sistema de control de acceso actualice la suficientemente flexible como para soportar la
información de los tickets vendidos en forma mayoría de los casos posibles como por ejemplo
automática sin necesidad de intervención del horarios nocturnos, feriados, etc. La siguiente
operador del sistema. El sistema debe estar
figura muestra el esquema de permisos soportado
dimensionado para soportar las 20000
localidades disponibles para la venta. por el Sistema de Control de Acceso.
Req2: Se debe brindar una interfase para
Permiso de Acceso Usuarios
que el Sistema de Servicio de Atención al Cliente
Quién ?
obtenga información de los ingresos de los
Dónde y Cuándo ?
espectadores al estadio (fecha, hora, sector de
ingreso, número de ticket). Código de
Req 3: El sistema de Control de Acceso Acceso
debe proveer una interfase que permita
configurar los datos de comienzo y fin de un
evento de manera de poder consumir el Servicio Cuándo ?

Web para obtener la información de los tickets Grupo de


Grupos de
Puertas de
vendidos y actualizar los permisos de acceso al Acceso
Tiempo

estadio.
Qué días y qué horas ?

Código de
Feriados
Tiempo

Figura 2. Esquema de Permisos de Acceso

Uno de los objetivos de este proyecto es el


diseño de los datos que permita incorporar la
información de los tickets vendidos al esquema
actual de permisos del sistema de Control de
Acceso.
Figura 1. Alcance del Proyecto
IV. ANTEPROYECTO
III. SISTEMA DE GESTION
Se comenzó por analizar la información que
El Software de Gestión del Sistema de el sistema de Venta de Tickets retorna como
Control de Acceso ofrece una interfase de
resultado de la ejecución del Servicio Web. Este
configuración de las distintas entidades del servicio implementa un mecanismo de consulta
sistema, como por ejemplo los usuarios,
mediante documentos XML[2] que permite
permisos, dispositivos, reglas de acceso, eventos obtener la lista de tickets vendidos y tickets
y alarmas, etc. El sistema debe estar diseñado
cancelados para un determinado evento.
para soportar la administración en forma remota, Cada ticket vendido se asocia a una
concurrente y en un ambiente multiusuario. Debe
ubicación dentro del estadio identificado con una
ser capaz de transferir los permisos de acceso en clave primaria compuesta por sección, fila y
forma automática a los dispositivos de Hardware
asiento. Además, cada ticket posee un número de
y mantener dicha información sincronizada. Es Identificación único asociado con el número de
responsable también de recolectar las alarmas y
Serie (CSN) grabado en el chip de la tarjeta
eventos de los distintos elementos del sistema y RFID. De este análisis surge el modelo de
permitir manejar un esquema de reconocimiento
Entidad-Relación En el contexto del análisis
y cancelación de alarmas. estructurado, el DER define todos los datos que
se introducen, almacenan, transforman y se debe procesar la información recibida y
producen dentro de una aplicación. Está centrado actualizar los permisos de acceso de los tickets
vendidos. Dado que se pretende recibir una gran
solo en los datos y no en los procesos que los
cantidad de tickets con esta consulta (aprox. el
transforman. 60% del total de ubicaciones disponibles) se
En base a estas premisas, se diseñó la Base debe configurar el tiempo tglobal para que los
de Datos del sistema donde se almacenará la tickets vendidos sean válidos en el sistema antes
información de las ubicaciones disponibles en el que se abran las puertas del estadio.
estadio. tapertura: indica el momento en que se abren las
El siguiente diagrama muestra la relación puertas del estadio y los espectadores comienzan
entre las Tablas propias del sistema de Control a ingresar al mismo. La siguiente consulta de
de Acceso (Usuario y Permiso_Acceso) y la tickets vendidos (incremental) debería ocurrir
nueva tabla creada para almacenar la inmediatamente después de este momento.
información de las ubicaciones vendidas. tinicio: es el momento a partir del cual el sistema
alterna cada x tiempo configurable la consulta de
USUARIO UBICACION tickets vendidos y tickets cancelados. El tiempo
x debe tomarse lo suficientemente pequeño
ID CardId Section
Row
(típico 1 minuto) para permitir al sistema
CSN =
ID Place actualizar la información de los tickets vendidos
Level
StartTime CSN en las propias boneterías del estadio.
EndTime TicketNumber tfin: se corresponde con el momento de
Price finalización del partido, a partir del cual el
Canceled sistema de control de acceso detiene la consulta
StartTime de tickets vendidos.
EndTime
PERMISO_ACCESO
Level
Level V. SOFTWARE
ID = Processed
Description ID CardId
En esta etapa del proyecto se desarrolla el
software que cumple con el diseño planteado en
Figura 3. Modelo de Entidad Relación
la sección anterior. Para ello, se utilizaron un
El siguiente paso en la etapa de diseño de conjunto de clases Java que conforman lo que
este proyecto es implementar un mecanismo normalmente se denomina como API
automático que permita ejecutar periódicamente (Application Programming Interface). Una API
la consulta de tickets vendidos y cancelados. La es un conjunto de clases e interfases que ofrece
frecuencia con que se ejecute esta consulta una solución a una funcionalidad específica. En
dependerá en gran medida de la cantidad de
Java podemos encontrar por ejemplo API’s para
información a procesar como resultado de la
consulta misma y del tiempo máximo tolerado conexión a Base de Datos (JDBC), para manejo
para que los datos de los tickets vendidos se vean de XML (dom4j), para Logging (log4j), etc. En
reflejados en el sistema de Control de Acceso. este caso utilizamos una API denominada
Es lógico pensar que la primera ejecución de Quartz[3] que implementa un programador de
la consulta de tickets vendidos deberá arrojar tareas. Quartz[3] permite agendar diferentes
gran cantidad de resultados. Esto se debe a que la
mayoría de los espectadores son socios del club y trabajos que se ejecutarán en momentos
adquieren sus entradas con anticipación para determinados. Para la configuración de los
todos los partidos de la temporada. Es por ello tiempos de disparo de la tarea periódica se
que se plantea el siguiente flujo de consultas: desarrolló un panel Java utilizando componentes
Swing[4] según la siguiente figura:

Figura 4. Flujo de de consulta

tglobal indica el momento en que el sistema de


Control de Acceso ejecuta la primera consulta A
partir de ese momento, y hasta que comiencen a
ejecutarse las llamadas incrementales, el sistema
Figura 5. Configuración de eventos
eventual aumento de las localidades vendidas sin
Una vez programada la tarea, se debe aguardar a necesidad de modificar el software desarrollado.
que se cumpla la condición de disparo (Trigger).
En este momento, se ejecuta el cuerpo de la tarea VII. CONCLUSIONES
cuyas principales actividades son:
A lo largo del desarrollo de este proyecto se
● Ejecutar la consulta al WebService (Global, siguieron las metodologías que normalmente se
aplican en la Ingeniería de Software.
Incremental o Cancelados)
El desarrollo de software debe llevarse a cabo en
● Procesar la información XML recibida y un entorno con Procesos definidos. Esto lleva a
convertirla en Objetos del dominio de la que los proyectos sean más predecibles y el
solución. equipo de trabajo desarrolle sus actividades de
● Actualizar los datos de acceso con la manera ordenada y sistemática.
información recibida. Gracias a la aplicación de estas metodologías de
desarrollo fue posible lograr la integración con
● Informar la finalización del procesamiento
diferentes equipos de trabajo que desarrollan
con el correspondiente comando de software inclusive en diferentes tecnologías
reconocimiento Ack. (Java, Visual Basic, etc.)
Estos pasos se muestran en la siguiente figura: La integración del Sistema de Control de
Acceso con otros sistemas como por ejemplo los
Aguardar condiciones
de disparo
de Recursos Humanos, CRM, Tiempos y
WebService
Asistencia, etc., es una funcionalidad deseable
Agenda Trigger Tarea que no todos los sistemas poseen. En ocasiones,
agregar una nueva funcionalidad como la
XML
presentada en este proyecto a los sistemas de
Control de Acceso requiere de un esfuerzo en
horas y costo tal que hacen inviable la
Actualización implementación de la solución. El uso de
de Datos componentes y protocolos estándar como JDBC,
HTTP, XML, etc. ayudan a que la integración
Figura 6. Procesamiento de los datos. entre los sistemas sea más sencilla y natural.
El software fue implementado utilizando el
VI. RESULTADOS lenguaje de programación Java, de naturaleza
abierta, multiplataforma, robusto y confiable. A
pesar de ser un lenguaje que se ejecuta sobre una
Para verificar el funcionamiento del
máquina virtual, no se perciben diferencias de
software se plantearon dos etapas de ensayos. El performance en comparación con otros lenguajes
primero consistió en ensayos de laboratorio en el nativos como C o C++.
ambiente de desarrollo. En esta etapa se Actualmente, Java es soportado por una
efectuaron modificaciones al software para extensa comunidad de desarrolladores de todo el
mejorar la performance al procesar gran cantidad mundo. La ventaja de utilizar Java, entre otras, es
que el software se depura constantemente. Es la
de datos (20000 tickets simulados). En los
misma comunidad de desarrolladores la que hace
ensayos se alcanzaron tiempos de respuesta del crecer al lenguaje agregando nuevas
orden de los 7 minutos. La limitación en la funcionalidades, detectando y corrigiendo
velocidad estuvo dada por la capacidad de defectos e incorporando nuevos patrones de
procesamiento del servidor (PIV con 2Gb RAM). diseño y estándares.
En la segunda etapa se efectuaron ensayos
en el ambiente de preproducción, es decir con los VIII. BIBLIOGRAFIA
servidores definitivos y se lograron tiempos de
procesamiento del orden de los 3 minutos para la [1] Java. http://java.sun.com/
misma simulación. [2] XML http://www.w3.org/XML/
Estos resultados, sumados a la posibilidad de [3] Quartz
ajustar la frecuencia con que se ejecuta la http://www.opensymphony.com/quartz/
actualización de los datos de tickets vendidos [4] Swing
hacen que la solución planteada se ajuste a las http://java.sun.com/docs/books/tutorial/uiswing/
distintas necesidades y esté preparada para un

También podría gustarte