Introducción:
En esta lección se
describirán en detalle las características de un workflow. Descubrirá cuáles son las aplicaciones en las que se
podría utilizar, cuáles son los requerimientos que debe cumplir y qué
beneficios ofrece.
Objetivos:
•
Describir
las características de un workflow.
•
Conocer
los requerimientos que debe cumplir un workflow.
•
Comprender
loss beneficios y características de un worklow.
¿Qué
es un workflow?
Un workflow es un conjunto de unidades
elementales llamadas actividades,
que son almacenadas en forma de un modelo que describe un proceso del mundo
real. Los workflows proveen una
manera de describir el orden de ejecución y de relaciones dependientes entre
piezas cortas o largas de un trabajo que se está ejecutando. Este trabajo pasa
por el modelo de principio a fin, y las actividades pueden ser ejecutadas por
personas o por funciones de sistema.
Windows Workflow Foundation
está diseñado para que los programadores puedan crear aplicaciones de tipo workflow en Windows. Para esto
es requisito contar con la presencia de .NET
Framework 2.0, y, por supuesto, se pueden crear dentro de Visual Studio 2005.
Windows Workflow Foundation
puede ser desarrollado y ejecutado en Windows
Vista, Windows XP y la
familia de Windows Server 2003.
WF incluye soporte para workflow tanto de sistemas como humano, a través de un
extenso rango de escenarios, que incluyen:
•
Workflow
dentro de la línea de aplicaciones de negocios.
•
Flujo
de página de la interfaz del usuario.
•
Workflow
humano.
•
Workflow
compuesto para aplicaciones orientadas a servicios.
•
Workflow
conducido por reglas de negocios.
•
Workflow
para manejo de sistemas.
Windows Workflow Foundation
provee una experiencia de desarrollo consistente y familiar con otras
tecnologías de WinFX, como ASP.NET,
Windows Communication Foundation
y Windows Presentation Foundation.
Ofrece también un soporte total para depurar un diseño gráfico y brinda la
habilidad para desarrollar un workflow
propio totalmente en código Visual
Basic .NET y C#. Windows
Workflow Foundation provee, a su vez, un modelo y un diseño extensivos para
construir actividades personalizadas que encapsulan funcionalidades workflow
para los fines del usuario o para su reutilización a través de múltiples
proyectos.
Una aplicación
ASP.NET que muestre páginas a sus usuarios podría usar un workflow para
controlar el orden en que esas páginas son exhibidas. Esto hace que sea más
fácil cambiar el flujo de las páginas sin que ellos tengan que modificarlas,
como también separar la aplicación de la interfaz del usuario de su lógica de
control.
Una aplicación
compuesta en un ambiente orientado a servicios podría implementar su
comportamiento de base usando un workflow. Como cada vez más y más las
aplicaciones exponen su lógica a través de servicios Web, crear procesos de
negocios que utilicen esos servicios se vuelve más fácil. Una tecnología
workflow como Windows Workflow
Foundation provee un contenedor para la lógica que invocaría a esos
servicios, poniéndolos juntos en una aplicación compleja.
Ver Diapositivas Workfolw
Una aplicación que
apunte a un problema específico, como, por ejemplo, el manejo de la relación
con el cliente (CRM: Customer
Relationship Management), o un mercado vertical concreto, como el de
servicios financieros, podrían ser construidos alrededor de un workflow. Este
tipo de aplicación comúnmente implementa un número diferente de procesos de
negocios, construyendo la lógica que manejan esos procesos en un WF común. De esta forma, la aplicación
será más rápida de construir, más rápida de cambiar y más fácil de
personalizar.
Requerimientos
que debe cumplir un workflow simple
1) Debe tener la habilidad de tomar decisiones basadas en reglas de
negocios. Este requerimiento incluye reglas simples, por ejemplo, una
decisión de sí o no basada en el resultado de un
chequeo de crédito, como también reglas
más complejas, por ejemplo, conjuntos potencialmente largos que deben
ser evaluados para hacer una decisión inicial.
2) Formas de comunicarse con otros programas y
otros sistemas fuera de workflows. Un ejemplo son los servicios Web u otras tecnologías.
3) Maneras de interactuar con las personas. Por
ejemplo, un encargado debe aprobar a sus empleados. Por lo tanto, el workflow
debe ser capaz de mostrar una interfaz para el usuario o interactuar con los
seres humanos a través de otro software.
4) La habilidad de mantener el estado durante el tiempo de vida de un
workflow. Especialmente cuando
hay gente envuelta, como el encargado en este ejemplo, un workflow puede tomar mucho tiempo en
completarse (por ejemplo, ¿qué pasaría si el encargado se tomara el día o dos
semanas de vacaciones?). Construir sistemas escalables requiere una manera de
desactivar el workflow y almacenar su estado persistentemente, para luego
reactivarlo y cargar ese estado cuando el siguiente paso sea ejecutado.
Un
workflow puede ofrecer cosas como:
- Un componente de tipo acercamiento a workflows, donde cada paso pueda ser implementado por una porción específica de software. Como en otras tecnologías de componentes, es posible especificar declarativamente los comportamientos para estos pasos (como, por ejemplo, transacciones) en vez de escribir código que implemente estos comportamientos. También se pueden crear pasos predefinidos para workflows que son útiles en un dominio en particular, como, por ejemplo, aplicaciones de seguros o manejo de sistemas, y luego usar éstos en diferentes workflows.
- Herramientas que crean y modifican workflows gráficamente. Como un workflow consiste en un número definido de pasos, puede ser construido usando herramientas que ilustran esos pasos y las relaciones entre ellos.
- La habilidad de monitorear un workflow que se está ejecutando, examinando su ejecución en tiempo real. Por ejemplo, con la actividad Tracing.
- Una manera de cambiar una instancia workflow que se está ejecutando; por ejemplo, agregar un paso. Aunque esto no es típicamente necesario cuando sólo se abarca software, este tipo de flexibilidad es un requerimiento común para que Workflows interactúe con personas.
Estén creadas por
Microsoft o por otros, muchas aplicaciones Windows incluyen algún tipo de
soporte para workflows. Los productos Microsoft que utilizan la tecnología
workflow hoy en día son: Microsoft BizTalk Server, Microsoft Exchange Server y
otros. Pero como no tiene mucho sentido tener tantas tecnologías para Windows,
como otras corrientes principales de desarrollo de tecnologías, el soporte de
workflow debería ser parte de la plataforma misma de Windows.
Esto es lo que
Windows Workflow Foundation provee. Implementando Workflow como una parte de WinFX, este acercamiento para
crear software estará disponible para cualquier aplicación de Windows que lo
necesite. Esto incluye aplicaciones ejecutándose en clientes o en servidores,
como en las aplicaciones creadas para usuarios finales, por vendedores de software
independientes (ISVs: Independent
Software Vendors) y por Microsoft.
Workflows
de sistemas
A pesar de que los
procesos de negocios comúnmente involucran tanto a personas como a aplicaciones
y automatizan acciones entre software, esto es muy diferente de automatizar
interacciones entre personas. Una de las mayores metas de Windows Workflow
Foundation es proveer una solución unificada que apunte a ambos problemas.
Los workflows de
sistemas son interacciones automatizadas entre aplicaciones. Estas interacciones
son usualmente predecibles y relativamente estáticas. La lógica que dirige esta
interacción puede ser especificada una sola vez, y luego ser utilizada una y
otra vez sin cambios. Los workflows de sistemas también intercambian datos bien
definidos y estructurados, como, por ejemplo, documentos XML, que pueden ser procesados efectivamente por
software sin ninguna intervención humana.
Interesante tema compañera, ya aprendí sobre sistemas de Información Gerencial.
ResponderEliminarExelente trabajo compañera.
ResponderEliminarFELICIDADES, SIGUE ADELANTE CON ESFUERZO
ResponderEliminarExcelente trabajo compañera
ResponderEliminarMuy buen blog compañera aunque debería agregar un salto de linea en la entrada para que no sea tan larga al inicio porque al tener bastante entradas el blog tardaría mas en cargar :D
ResponderEliminarMuchas gracias por su comentario y su valiosa recomendación compañero!! :)
EliminarInteresante tema para enriquecer nuestros conocimientos.!!!
ResponderEliminarExcelente tema compañera.
ResponderEliminarMuy buen trabajo me gusto mucho la información.
ResponderEliminarMuchas gracias a tod@s por sus valiosos comentarios! Les agradezco mucho mucho :) :)
ResponderEliminar