Hola gente.. disculpen pero el tiempo me lleva de la mano y corriendo.. 

Gracias a todos por las contestas.. 

Lo del WWF ya lo voy a mirar aunque no lo use.. por el average de 
recomendaciones lo hace parecer importante.. ;)

Bien.. Me llegó un correo de Sebastian (al cual le debo aún las gracias), al 
parecer mediante alguien de acá de la lista con algunas ideas sobre la 
implementación.

Por ejemplo.. en mi caso, era necesario tener en cuenta la ejecución de 
múltiples tareas al mismo tiempo, e incluso la definición de un time-out para 
tareas que se queden colgadas(sin responder).

Por desgracia no puedo servirme de ningún servidor de Base de datos.. toda mi 
configuración estará en XML.

Hasta ahora tengo.. Un Comando(Tarea), Un Procesador de tareas, un ejecutor y 
un programador, con las siguientes responsabilidades..

El ejecutor: Ejecuta los comandos(lanza la tarea en un hilo independiente), 
registra el resultado de dicha tarea (si hay errores, pregunta a la tarea si 
soporta Undo y en tal caso lo ejecuta para revertir los cambios). Cada ejecutor 
conoce del tiempo destinado para la tarea que procesa, por lo que si se 
sobrepasa este tiempo, obliga a la misma a terminar (time-out).

El programador : Es quien se encarga de determinar las tareas que son 
necesarias ejecutar. Dichas tareas son pasadas al procesador de tareas.

El procesador de tareas: Tiene una lista de las tareas a ejecutar, recorre cada 
una creando un ejecutor para cada cual y diciéndole a este que comience a 
ejecutar la tarea.

De cualquier forma se aceptan sugerencias.. igual han sido muy buenos todos los 
comentarios.. 

Gracias a todos.
Omar.. 






  ----- Original Message ----- 
  From: Carlos Peix 
  To: patrones List Member 
  Sent: Thursday, February 01, 2007 8:42 AM
  Subject: [patrones] Command


  Hola Omar,

  Las respuestas que te han dado son mas que correctas, yo solo te contare una 
experiencia de implementacion. Yo he implementado algo asi recientemente y tuve 
que decidir entre dos opciones.

  Todos los comandos se ejecutaban en el orden en que habian sido cargados, 
solo que cada comando tenia una hora de ejecucion y habia que esperar hasta esa 
hora para sacarlos y ejecutarlos.

  La primera opcion fue una MSMQ en la que almacenaba los comandos serializados 
(con la serializacion de MSMQ). Luego los sacaba de acuerdo a la hora 
(almacenaba la hora en el label del mensaje).
  La opcion MSMQ funciona mejor si sacas los comandos en forma ordenada, so 
tenes que sacarlos de cualquier lugar de la cola (porque deben ser ejecutados 
en un orden diferente a la insersion) no es tan bueno.

  Luego hice otra implementacion de la cola basada en una tabla de SQLServer. 
Alamacenaba los mensajes serializados y hacia queries de acuerdo a la hora de 
ejecucion.

  Por supuesto, para esto necesitas un servicio windows o una aplicacion de 
consola que se ejecute y realice estas tareas.

  Otra opcion es mirar WWF como recomienda Martin "Agile" Salias.

  Carlos



----------------------------------------------------------------------------
    From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Omar del 
valle Rodríguez
    Sent: Miércoles, 31 de Enero de 2007 01:40 p.m.
    To: patrones List Member
    Subject: !-> [patrones] Command


    Hola gente.. 

    Estoy haciendo un servicio que se encarga de de manejar tareas. Cada tarea 
será independiente del servicio que la maneja y el mismo debe soportar 
adicionar nuevas tareas que sean desarrolladas posteriormente.. 

    Como no tengo problemas en pedir que cada tarea debe cumplir determinados 
requerimientos, pensé en el uso de Command para dicha implementación por 
permitirme encapsular la petición como un objeto y parametrizar el cliente sin 
necesidad de saber yo que operación realizará..

    Ahora.. cada tarea debe ser ejecutada en determinados momentos que se 
indiquen mediante configuración. Algo como el Scheduled Task de Windows.. mi 
duda es.. como encaja el Scheduled dentro del command.??

    Gracias.. 
    Omar.. 

Responder a