Hola, Silvia.

Que la db avise al programa me parece meter lógica de negocio dentro de la db. Yo nunca haría eso. ¿Por qué no avisa al programa del módem la app que escribe en la db? Me parece más lógico.

Por otra parte, yo usaría mensajería asíncrona, ¿qué sucede si insertan -en un momento de pico- más rápido de lo que el módem es capaz de enviar? En el mensaje puedes o bien incluir todo -en cuyo caso no necesitas ni siquiera la bbdd- o una referencia a la db (el id del mensaje, por ejemplo, o su PK si es otra). Otra cosa es que a lo mejor te interese usar pgq ahí.

    Saludos,

    Álvaro

--
Álvaro Hernández Tortosa


-----------
NOSYS
Networked Open SYStems



El 08/09/11 16:35, Silvio Bravo Cadó escribió:
Hola Listeros, reciban un saludo, molestandolos con el siguiente caso que no necesariamente es propio de funcionamiento de postgresql sino de como resolver el siguiente problema: Se tiene un modem gsm el cual esta conectado por el puerto serie a una computadora con linux. El objetivo es hacer un servicio que permita enviar sms por medio del modem. El trafico de peticiones puede llegar a ser un poco intenso sobre todo en algunas horas del dia. Se debe llegar a tener una capa abstracta como un servicio web que permita enviar un sms. Para resolver esto decidi dividirlo en 2 partes 1 que sera el web service y otra que sera un programa en perl que se encargara de la comunicacion con el dispositivo. Los 2 programas tendran en comun 1 base de datos en postgresql que se use de intermedio entre el Web service y el programa en perl. De tal forma que el web serivice hara un insert en una tabla de la db cuando le soliciten enviar un sms, esta tabla tendra un trigger que se disparara ejecutando una funcion en pl/perl que hara un kill -HUP al proceso del programa en perl para avisarle que hay una nueva peticion de envio de sms. El programa en perl cachara la señal y generara un hilo que ira a la db a buscar las peticiones de envio que esten pendientes y las procesara.

Espero no haberlos confundido, basicamente esta es la forma en la que tengo pensada resolverlo. Se me hace un poco rebuscada o mas bien complicada y me gustaria saber si alguien ha hecho algo parecido o tiene alguna otra idea sobre como resolverlo.

De antemano muchas gracias,
Un saludo.



Responder a