Desarrollo de Soluciones Cliente-Servidor para la Verificación ...
Desarrollo de Soluciones Cliente-Servidor para la Verificación ...
Desarrollo de Soluciones Cliente-Servidor para la Verificación ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
74<br />
Capítulo 4. Diseño y <strong>Desarrollo</strong> <strong>de</strong> un Sistema <strong>de</strong> Autenticación Biométrica <strong>de</strong><br />
Estudiante <strong>para</strong> P<strong>la</strong>taformas LMS<br />
4.2.5. Contribuciones al Proyecto <strong>de</strong> Código Libre JBioAPI<br />
Para po<strong>de</strong>r utilizar a<strong>de</strong>cuadamente el Framework BioAPI en nuestro sistema<br />
hemos necesitado mejorar el proyecto <strong>de</strong> código libre JBioAPI con varias<br />
contribuciones[González Agul<strong>la</strong>, Elisardo y otros, 2009c]. Hemos aportado el soporte<br />
necesario <strong>para</strong> su ejecución en el entorno Windows, hemos permitido el acceso <strong>de</strong>s<strong>de</strong><br />
Java a <strong>la</strong>s primitivas <strong>de</strong> bajo nivel <strong>de</strong> <strong>la</strong> BioAPI <strong>para</strong> favorecer así su uso en arquitecturas<br />
cliente-servidor, y hemos habilitado <strong>la</strong> invocación <strong>de</strong> <strong>la</strong>s funciones <strong>de</strong> i<strong>de</strong>ntificación.<br />
Para <strong>de</strong>sarrol<strong>la</strong>r el soporte <strong>para</strong> el S.O. Windows <strong>de</strong>l proyecto JBioAPI hemos usado<br />
el código nativo <strong>de</strong> <strong>la</strong> implementación <strong>de</strong> referencia <strong>de</strong> <strong>la</strong> BioAPI 1.1 que está disponible<br />
como un proyecto <strong>de</strong> Visual Studio 6.0, y <strong>la</strong> herramienta SWIG (Simplified Wrapper and<br />
Interface Generator)[SWIG Project, WWW] que permite <strong>la</strong> generación <strong>de</strong>l código Java<br />
Native Interface necesario <strong>para</strong> realizar <strong>la</strong>s l<strong>la</strong>madas a los métodos nativos <strong>de</strong>s<strong>de</strong> Java. El<br />
proyecto JBioAPI, incluyendo estas mejoras, se distribuye bajo <strong>la</strong> licencia GNU y está<br />
disponible en Internet como proyecto <strong>de</strong> código libre <strong>de</strong>l que actualmente soy miembro<br />
[JBioAPI Project, WWW].<br />
4.2.6. Conexión <strong>Cliente</strong>-<strong>Servidor</strong> <strong>de</strong> BWA: Web Services y XCBF<br />
El middleware es un software <strong>de</strong> conectividad que ofrece un conjunto <strong>de</strong> servicios<br />
que hacen posible el funcionamiento <strong>de</strong> aplicaciones distribuidas sobre p<strong>la</strong>taformas heterogéneas.<br />
<strong>Soluciones</strong> orientadas a objetos como CORBA o Java RMI son ampliamente<br />
aceptadas <strong>para</strong> invocar métodos resi<strong>de</strong>ntes en máquinas remotas <strong>de</strong>s<strong>de</strong> objetos resi<strong>de</strong>ntes<br />
en <strong>la</strong> máquina local. Sin embargo, <strong>la</strong> interoperabilidad se pue<strong>de</strong> ver aumentada si utilizamos<br />
Servicios Web en su lugar. Servicios Web con SOAP (Simple Object Access Protocol)<br />
permiten <strong>la</strong> interoperabilidad entre clientes heterogéneos (como CORBA pero <strong>de</strong> un<br />
modo más sencillo) y re<strong>la</strong>ja <strong>la</strong> restricción <strong>de</strong> utilizar el mismo lenguaje <strong>de</strong> programación<br />
tanto en el <strong>la</strong>do <strong>de</strong>l cliente como en el servidor (Java RMI necesita Java <strong>de</strong> los dos <strong>la</strong>dos).<br />
El mismo principio <strong>de</strong> interoperabilidad nos hace emplear el estándar XML Common<br />
Biometric Format (XCBF) <strong>para</strong> el intercambio <strong>de</strong> muestras biométricas. El uso <strong>de</strong> XCBF<br />
y Servicios Web permiten el <strong>de</strong>sarrollo <strong>de</strong> nuevos clientes totalmente compatibles con<br />
nuestro sistema y que no necesitan estar realizados en Java, simplemente <strong>de</strong>ben cumplir<br />
con <strong>la</strong> interfaz <strong>de</strong>l servicio web. Esta funcionalidad es a<strong>de</strong>cuada <strong>para</strong> aquellos terminales<br />
<strong>para</strong> los que no exista una máquina virtual Java.<br />
Todavía hay otra ventaja en usar Servicios Web en lugar <strong>de</strong> CORBA o Java RMI. A<br />
menudo los usuarios acce<strong>de</strong>n a Internet a través <strong>de</strong> LANs protegidas con cortafuegos.<br />
Los cortafuegos filtran y bloquean algún tipo <strong>de</strong> tráfico por motivos <strong>de</strong> seguridad. En<br />
este entorno, muchos (casi todos) puertos están típicamente cerrados al tráfico entrante y<br />
saliente, y pue<strong>de</strong> ocurrir que el usuario final no tenga los permisos necesarios <strong>para</strong> po<strong>de</strong>r<br />
abrir esos puertos. Los Servicios Web, sin embargo, son capaces <strong>de</strong> utilizar los puertos<br />
usados habitualmente <strong>para</strong> el tráfico HTTP/HTTPS generado por los navegadores web<br />
(puerto TCP <strong>para</strong> HTTP es el 80 y <strong>para</strong> HTTPS el 443). Estos puertos suelen estar siempre<br />
abiertos por lo que no se necesita ningún cambio en <strong>la</strong> configuración <strong>de</strong>l cortafuegos, y<br />
ésta es una <strong>de</strong> <strong>la</strong>s ventajas fundamentales <strong>de</strong>trás <strong>de</strong>l éxito progresivo <strong>de</strong> los Servicios Web<br />
en el <strong>de</strong>spliegue <strong>de</strong> aplicaciones remotas.