Herramientas y Framework de Scheduler a nivel empresarial (Quartz O.Source y Flux)

Escrito por Javier Urrutia en September 30th, 2006

fs splashCuando enfrentamos la operación de un departamento de informática, nos damos cuenta que el concepto "Operación" con lleva varios puntos en común, mas halla de la empresa en donde estemos trabajando y dando soporte operativo con nuestros sistemas informáticos.Descubrimos que existen tareas comunes, repetitivas, programables,gatillables o calendarizables que incluso toman en ciertos casos la forma de workflow de procesos o tareas recurrentes. Ejemplos de ello son y sin limitarse a estos: Procesos de facturación, Procesos de intercambio de archivos, procesos de generación de reportes mensuales, sincronización de carpetas o información, ejecución de webservice, cálculos de cierre de cajas o flujos, etc.

En la mayoría de las veces observo que son estas tareas las que mas tiempo y recursos humanos consumen en los típicos departamentos de informática de muchas empresas (No importando el tamaño de ellas). No obstante esta forma tradicional de operar, hoy en día existen soluciones también informáticas que nos permiten cambiar este modelo de operaciones o uno automatizado, donde el tiempo y recursos de los departamentos informáticos de las empresas quedan con el espacio de tiempo necesario para concentrarse en aspectos mas orientados al negocio de la misma que a su operación, logrando desligarse en un gran porcentaje de los temas operativos y sus costos asociados.

Si bien es cierto esta tecnología no es nueva, y en general se conocen como Sistemas o Motores de Schedulers. El concepto nuevo en este ámbito es el desarrollo en base a Frameworks de Schedulers y en colaboración con sistemas Scheduler mas potentes y flexibles. Veamos de que se trata:


Supongamos que necesitamos todo los jueves de cada semana gatillar un proceso que debe entregar como salida, una serie de reportes ejecutivos. De manera que ellos este disponibles todos los lunes a primera hora para la gerencia comercial de la empresa. El enfoque que se observa comúnmente, es algo así:

El jueves, un operador gatillara el proceso durante, digamos la mañana de ese día. Por la tarde lo estará monitorizando. En este punto podría fallar dicho proceso por un sin numero de posibles causas, desde problemas con la data, hasta fallos de conexión. En la experiencia del operador, este sabe perfectamente que debe hacer ante cada caso. Este conocimiento radica en el disparar una serie de procesos alternativos que generaran en un punto continuidad en el proceso fallido, permitiendo que este termine correctamente y genere los resultado esperados. Para todo este el operador a reservado adicionalmente el día viernes de cada semana para lidiar con estos temas, de complicarse el escenario del día jueves.

Bueno, como comprenderán este tipo de labores y escenarios ocurre en una empresa no con un solo proceso, sino con docenas de ellos todos los meses, y todos los años. El tiempo invertido y los recursos dedicados son por lejos los causantes del mayor porcentaje del costo de operaciones del departamento de informática.

La alternativa a ella, pasa por utilizar herramientas informáticas. Hablamos en este caso en particular de la combinación Framework de Scheduler y Motores de Scheduler. Personalmente hago la diferencia entre ambos, aunque existen herramientas que contemplan en un solo paquete ambas características. La parte de Framwork de scheduler, nos permite poner inteligencia de operación embebida dentro de nuestras aplicaciones, para que estas sepan como responder ante excepciones de operación. Por otro lado los Motores de Scheduler son los iniciadores de la operación, los controladores maestros y orquestadores de ella. Interectuando plenamente con las componentes del Framework de Scheduler que se han incorporado en las aplicaciones, esto potencia el modelo. Pero no es restricción del mismo. Un motor de Scheduler es capas de operar sin necesidad que las aplicaciones compartan un protocolo de framework con el mismo, aunque es deseable, en modelos complejos de operación.

quartzEJSUn ejemplo de herramientas framework scheduler es Quartz. Este es un framework de Scheduler de nivel empresarial, en base a APIs Java J2EE, que posee dentro de sus características empresariales, niveles de administración de cluster, y tolerancia a fallas, manejo transaccional y lo mejor de todo es una solucion Open Source, en base a la licencia de tipo Apache 2.0. Quartz opera embebido en una aplicación Java, en un server aplication y de otras formas similares, calendarizando, ejecutando y notificando los procesos que usted implemente con el mismo.

Veamos un ejemplo básico y elemental de como programar un proceso, vía Quartz. Observemos el siguiente código:

  1. <br />SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();    <br />Scheduler sched = schedFact.getScheduler();    <br />sched.start();</p>  <p>JobDetail jobDetail = new JobDetail(&quot;myJob&quot;,null,DumbJob.class);</p>  <p>Trigger trigger = TriggerUtils.makeHourlyTrigger(); // fire every hour   <br />trigger.setStartTime(TriggerUtils.getEvenHourDate(new Date())); // start on the next even hour    <br />trigger.setName(&quot;myTrigger&quot;);</p>  <p>sched.scheduleJob(jobDetail, trigger);   <br />

En la línea de código numero 5 podemos ver como se programa la tarea a realizar y en las líneas 7,8 y 9 como se especifica su periodicidad.

Bien, este ejemplo es relativamente básico y simple, pero Quartz provee de mecanismos bastante mas sofisticados para calendarizar trabajos, tiene todo un modelo de objetos orientado a Triggers, TriggerListeners, JobListeners, SchedulerListeners y CronTriggers. Lo que le da una potencia realmente fuerte a la hora de calendarizar sus procesos. Pero lo mas significativo de esta herramienta es que maneja el concepto de tarea o job como genérico paramétrico, permitiendo que su Job mantenga una parte de la inteligencia de la operación que usted desea que tenga (al definirse como una clase java que usted construye), y deja el resto de la calendarizacion, programación por eventos, gatillantes o ejecución por tiempo en manos del Scheduler. Para finalizar Quartz provee todo un mecanismo de manejo de contexto transaccional via JTA, y soporte para almacenar sus Jobs en un repositorio de tipo base de datos, así como capacidad de interactuar con EJB y JMS.

schedulerAhora si desea mayor potencia en soluciones Scheduler, un producto comercial muy potente e interesante a evaluar es FLUX, que viene en 2 sabores FLUX (Scheduler) y FLUX BPM (Scheduler con esteroides, con sabor a BPM, pero no tanto).

Flux provee entre otras características, las siguientes funcionalidades de Scheduler:

  • Automatización de Tareas
  • EFT Enhanced File Transfer (FTP con Esteroides)
  • Sistema de Ejecución de Procesos
  • Invocación a WebService
  • Consola de administración WebEnabledd
  • Un Engine o Motor WorkFlow
  • APIs (Java J2EE) de invocacion a framwork FLUX

Su sabor BPM (Flux BPM) agrega importantes herramientas para facilitar el uso de personas usuarias no expertas de sistemas, tales como :

  • Coordinación de Tareas Humanas
  • Estandarización de Procesos de Negocio (Pero estándar FLUX)
  • Codificación automática de procesos (Base)
  • Conductor de Tareas vía WebForms
  • Dashboard de Procesos

En el caso de Flux BPM, en realidad no es un BPM 100% pero tal vez hasta le sobre con las características de BPM que trae, si su problemas es mas operativo que de procesos de negocio.

Bien, lo animo a no practicar el antiguo refrán que dice "En casa de herrero, cuchillo de palo". Apoyese de herramientas informáticas y su trabajo informático, en particular de operación.

Aquí van los links, suerte en su trabajo y saqueles provecho a los links.
Quartz y Flux

Algunos comentarios adicionales acerca de Flux en el Podcast adjunto. A ver si aumento un poco mas la velocidad de posteo, esta semana el trabajo me a impedido subir los post como hubiera querido.

Saludos Cordiales

Javier Urrutia.

icon for podpress  PodCast acerca de Schedulers [1:18m]: Play Now | Download (2756)
2 Votes | Average: 4.5 out of 52 Votes | Average: 4.5 out of 52 Votes | Average: 4.5 out of 52 Votes | Average: 4.5 out of 52 Votes | Average: 4.5 out of 5 (2 votos, promedio: 4.5 de 5)
Loading ... Loading ...
Envie a un Amigo este Post (Click Aqui)Enviar a un Amigo | Version para Impresion del Post (Click Aqui)Version para Impresion


Posibles articulos relacionados


Jboss JBPM (Open Source)
Aquí estamos una vez mas hablando de BPMs, Anteriormente escribí un articulo de una BPM Suite denominada Intalio, bastante completa y con la gracia de ser Open Source. Ahora voy a escribir de una alternativa llamada JBPM de Jboss.

BackBase (Ajax para terrícolas)
Ajax la tecnología con la cual se agrupan diversas tecnologías ya existentes, desde Dhtml, css, JavaScript y xml, nos permite crear ricas aplicaciones visuales para Internet. Como sabemos la parte gráfica de los resultados de un desarrollo web esto

JXTA 2.0 El Framework de nivel empresarial que se nos viene (Introducción 1era Parte)
Con tanta tecnología en estos días, no es raro que se me halla pasado una como JXTA,lo complicado fue darme cuenta que no era una tecnología mas, pero por suerte mi colega Cesar Esquerre, en una reunión nos llamo la

Pramati Application Server
A estas alturas si sigue leyendo esta pagina imagino esta un poco relacionado con tecnologías de desarrollo actuales y emergentes, por lo tanto seguramente esta algo familiarizado con Jboss (Servidor de Aplicaciones J2EE) y tal vez otros servidores Java

Velocity, capa 1 para newbies.
Para implementar software a varias capas, siempre necesitábamos a programadores en capa 1, en el caso de java, utilizando JSP o alguna de sus variantes. Todos los ingenieros de software estamos conscientes del mal gusto que tenemos y de lo


Link de trackback a este post

Boton derecho para copiar enlace de trackback Herramientas y Framework de Scheduler a nivel empresarial (Quartz O.Source y Flux)


Escriba un comentario

Tome un momento y escriba su pensar hacerca de este post. Algunos codigos HTML son permitidos para el formato.

Comentarios escritos

Animese escriba el primer comentario del post!


Technorati Z22 XML-Sitemap RSS a PodCast Usa Firefox es mejor