Basicamente el problema trata en extender los conocimientos adquiridos en el curso
para la implementacion de un sistema que consiste en la conexion de un dispositivo
movil con una aplicacion de procesamiento de imagenes, con un servidor remoto que
acepta conexiones de multiples clientes que quieran conectarse a una base de datos
para hacer la comparacion de imagenes extraidas del movil.
Análisis del Problema
primero se tiene un dispositivo movil que captura imagenes, para este se deve considerar:
Aplicacion en Java corriendo en el dispositivo
establecer una conexion TCP a un server remoto para el envio de datos de la imagen procesada
procesamiento de imagenes
por otra parte se tiene el servidor que debe cumplir las siguientes caracteristicas:
Aceptar multiples conexiones simultaneas de distintos clientes
Tener un acceso a cada una de las conexiones establecidas para la base de datos
Esta se puede separar en dos etapas:
Primero para el Cliente:
la aplicacion que corre en el movil programada en Java deve importar la implementacion del
algoritmo procesador de imagenes con JNI ya que este esta descrito en lenguaje C
Para establecer la conexion TCP se hace uso de un simple uso de sockets en JAVA
el procesamiento de imagenes se hace implementando la libreria de openSURF
Segundo para el Servidor:
para la conexion de multiples usuarios al servidor se utilizo el manejo de hebras,
para cada conexion se crea una hebra que atiende al cliente
Implementación
La aplicacion para el movil fue programada en Java, se incorporo la libreria de procesamiento de imagnes (openSURF) con la herramienta JNI.
Para el servidor se implementa una base de datos con Sqlite y se programa el servidor multicliente en C
Cada conexion establecida tiene acceso a la base de datos de las imagenes procesadas ya ingresadas
previamente
en el caso de que la comparacion entre la imagen enviada por el cliente y alguna de la base de datos coincida o no
el servidor debe enviar un mensaje de MATCH o NO MATCH respectivamente via TCP
Para el diseño se considera un diagrama (por adjuntar en al nueva version de este documeto) y capturas de pantalla.
donde se muestra mas amigablemente la solucion
Dificultades
La principal dificultad fue la implementacion de la libreria de procesamiento de imagenes en el dispocitivo movil, importando esta con JNI