Articulo de referencia

Aplicación de flujo de trabajo

Una aplicación de flujo de trabajo es una aplicación de software que automatiza, al menos en cierta medida, uno o varios procesos. Estos procesos suelen estar relacionados con e...

Una aplicación de flujo de trabajo es una aplicación de software que automatiza, al menos en cierta medida, uno o varios procesos. Estos procesos suelen estar relacionados con el negocio, pero pueden ser cualquier proceso que requiera la automatización de una serie de pasos mediante software . Algunos pasos del proceso pueden requerir intervención humana, como la aprobación o el desarrollo de texto personalizado, pero las funciones que se pueden automatizar deben ser gestionadas por la aplicación. Las aplicaciones avanzadas permiten a los usuarios introducir nuevos componentes en la operación. [ 1 ]

Por ejemplo, consideremos una orden de compra que pasa por varios departamentos para su autorización y posterior compra. La orden puede ser redirigida automáticamente de un departamento a otro para su aprobación. Una vez obtenidas todas las autorizaciones necesarias, se notifica al solicitante y se le otorga la autorización correspondiente. Un proceso de flujo de trabajo puede requerir mantenimiento frecuente. Por ejemplo, si el aprobador habitual de las órdenes de compra está de vacaciones, la aplicación solicitará la aprobación de otros aprobadores.

Desarrollo

Las aplicaciones de flujo de trabajo se pueden desarrollar utilizando un diseñador gráfico, un lenguaje de programación o una combinación de ambos.

Algunos programas informáticos permiten crear aplicaciones de flujo de trabajo utilizando únicamente un diseñador gráfico basado en diagramas. Estos sistemas se basan en la capacidad de capturar toda la información relevante para el proceso mediante una interfaz especializada para usuarios sin conocimientos de programación. Posteriormente, el software compila dicha información en una aplicación de flujo de trabajo funcional. Sin embargo, en ocasiones, el uso de un lenguaje de programación resulta necesario, especialmente para incorporar reglas más complejas al flujo de trabajo, como cálculos para validar datos en formularios de entrada.

Para el diseño de flujos de trabajo basados ​​en código, las aplicaciones de flujo de trabajo se pueden desarrollar con cualquier lenguaje de programación de propósito general , pero también existen lenguajes especializados para flujos de trabajo. Estos lenguajes suelen venir con una notación gráfica asociada (como BPMN ), [ 2 ] aunque algunos son textuales o basados ​​en XML . Ejemplos de lenguajes especializados que se pueden utilizar para la definición de flujos de trabajo de esta manera incluyen:

  • XPDL
  • YAWL (Otro lenguaje de flujo de trabajo más)
  • SCUFL (Lenguaje de Flujo Unificado Conceptual Simple)

Los lenguajes mencionados se basan en la sintaxis XML y, si bien son adecuados para su manipulación mediante software, pueden resultar difíciles de usar para personas sin conocimientos técnicos. Por lo tanto, su uso suele complementarse con notaciones gráficas que permiten crear diagramas de flujo más fáciles de desarrollar e interpretar: la creación de estos diagramas constituye, en esencia, una forma de programación gráfica. El paquete de software que permite al usuario desarrollar un diagrama de flujo normalmente lo traduce a su equivalente XML.

Otro enfoque para desarrollar aplicaciones de flujo de trabajo consiste en utilizar un lenguaje de programación junto con bibliotecas e interfaces que capturen abstracciones para la coordinación de tareas. A continuación se muestran ejemplos de dichas bibliotecas e interfaces:

El uso de bibliotecas suele ser complementario a las técnicas de diagramación, que por sí solas no siempre son suficientes para crear aplicaciones completamente funcionales (a menos que la herramienta de diagramación forme parte de un sistema específico de gestión de flujos de trabajo ). Los flujos de trabajo, por ejemplo, se pueden crear mediante diagramación con Microsoft Visual Studio (su equivalente en XML es XAML ), y su funcionalidad se puede ampliar con código escrito en C# o VB.NET: un flujo de trabajo determinado puede ser invocado por una aplicación de software existente como un servicio web . Las herramientas de desarrollo de software, como Visual Studio o los numerosos entornos de codificación para Java, también permiten diseñar componentes específicos completamente mediante código y utilizarlos como bloques de construcción en diagramas de flujo de trabajo una vez compilados.

Una limitación de ciertas técnicas basadas exclusivamente en diagramas, como BPMN (mencionada anteriormente), es que, para cumplir con el propósito de la especificación de flujos de trabajo, dichas notaciones deben complementarse con construcciones adicionales. Estas construcciones capturan el paso de datos, las transformaciones de datos y las condiciones de enrutamiento, vinculan las tareas con su implementación, etc. Si bien BPMN pretende ser un estándar, presenta deficiencias en este aspecto. Varios paquetes comerciales (como Microsoft BizTalk ) abordan estas necesidades mediante soluciones propietarias (específicamente, mediante la ampliación del conjunto básico de iconos de diagramación con iconos adicionales que admiten la funcionalidad necesaria).

Para fines de análisis estático, por ejemplo, para detectar errores semánticos en la fase de diseño, también es posible representar el flujo de trabajo de forma matemática utilizando una notación formal como las redes de Petri .

Referencias

  1. Jörg Becker; Michael zur Muehlen; Marc Gille (2002). "Arquitecturas de aplicaciones de flujo de trabajo: clasificación y características de los sistemas de información basados ​​en flujo de trabajo". En Fischer, L. (ed.). Manual de flujo de trabajo 2002. Lighthouse Point, FL: Future Strategies. CiteSeerX 10.1.1.24.2311 . 
  2. "Diseñar un flujo de trabajo automatizado en Visio - Soporte técnico de Microsoft" . support.microsoft.com . Consultado el 13 de marzo de 2023 .
  • Logotipo de Wikimedia CommonsContenido multimedia relacionado con las aplicaciones de flujo de trabajo en Wikimedia Commons.