Sugerencias sobre proyecto de java para Monitoreo de impresiones en red

Buenas saludos a todos los integrantes de esta importante comunidad de desarrolladores y colaboradores de las tecnologías de software libre y de lo que es el lenguaje de java como tal.
Mi nombre es Humberto soy un estudiante ya a punto de graduarme de la Universidad Nacional Experimental de la Fuerza armada Nacional de Venezuela, estudio Ing en sistemas y voy orientado por la parte de el desarrollo trabajo con varios lenguajes web asi como tambien trabajo con java EE Java SE ,java ME asi como tambien c, c++ otros la cosa es que me tomo la molestia de acercarme a la comunidad en busca de un poco de orientacion sobre un sistema en la cual estoy colaborando pero somos programadores muy jovenes y tenemos un gran reto.
Hay una empresa que nos pidio un sistema de monitoreo de impresiones y nos pidio un sistema en java que les permita registrar todas las impresiones que se hacen en ese servidor de impresion asi como todos los datos de la naturaleza de estas impresiones. El sevidor trabaja con windows 2003 server y quieren el sistema corriendo en el mismo.
La solucion que yo plantee fue hacer un codigo que se ejecute que sea capaz de reconoser las conexiones de una pc cuando esta solicita el servicio de impresion, luego de esta captacion que tome la ip y que guarde el nombre de la makina que esta haciendo dicha impresion y los datos. Por otra parte es necesario destacar que de el servidor de impresion dependen aproximadamente 2000 pc y 22 impresoras esto nos limita a trabajar esta conexion con sockets. Por eso pienso que es necesario trabajar con algo que me permita tomar todo estos datos de alguna manera,algo que se me ocurrio fue usar JNI pero no se que me podrian recomendar de verdad lo que necesito esuna referencia de que pudeo usar y lo demas me encargo de investigarlo yo. de verdad espero una respuesta les envio un gran saludo desde Venezuela.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Nopalin

Proxy

Lo primero que se me viene a la mente es crear algo como un proxy, donde tu programa sea el que ofresca el servicio de impresion y este a su vez redirija a la impresora adecuada, lo de intervenir sockets no creo que sea muy seguro o si?
El gran problema alo que planteo es que tendrias que investigar como funciona el protocolo para el shared de impresoras, y las impresoras conectadas a tu servidor no estarian compartidas para la red, solo en local.
De esta forma aseguras que tu programa realmente registre cada impresion, ya sean terminadas, canceladas, fallidas, etc.

¿Alguna otra sugerencia más fácil?

sobres