Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/01/2010, 05:33
hipotecado2
 
Fecha de Ingreso: enero-2010
Mensajes: 4
Antigüedad: 14 años, 3 meses
Puntos: 0
Enfoque para comunicar aplicaciones

Hola, estoy desarrollando una aplicación que muestra una relación de ficheros que pueden ser descargados desde un servidor web.

La estrategia es crear un fichero índice XML con la relación de ficheros disponibles, así como otros datos relacionados con cada fichero. Este índice es el que la aplicación manejará para presentar los ficheros a descargar.

Uso un servicio de Windows para monitorizar los cambios en el directorio donde se crearán los ficheros. Estos ficheros se crean principalmente de madrugada, sobre unos 60, de 1 a 60 Mb. A estas horas no hay clientes. Este servicio agrega en una cola de mensajes (MSMQ) todos los cambios en el sistema de archivos.

Un servicio Web se encarga de la parte más pesada; gestionar la cola de mensajes y construir el fichero índice XML(si es necesario) que devolverá al cliente. El servicio Web es invocado desde el cliente cuando ejecuta la aplicación.

El servicio Windows, el servidor MSMQ (instalado como cliente independiente) y el servicio Web están en la misma máquina (el servidor web).

MSMQ lo utilizo para almacenar los cambios en el sistema de archivos hasta que el servicio web sea invocado y los procese. Este proceso no lo hago durante la monitorización del sistema de archivos porque no quiero tener problemas de búfer con la clase System.IO.FileSystemWatcher. Quiero que la captura de eventos del monitor sea lo más rápida posible. Generar el índice XML exige abrir cada fichero creado para obtener datos adicionales que se agregarán al XML, aparte de la propia creación del XML.

¿Está justificado el uso de MSMQ?

Agradecería saber si este enfoque es correcto y, en caso contrario, qué alternativas tengo.

Gracias de antemano.