stringtranslate.com

Aplicación de flujo de trabajo

Una aplicación de flujo de trabajo es una aplicación de software que automatiza, al menos hasta cierto punto, un proceso o procesos. Los procesos suelen estar relacionados con el negocio, pero puede ser cualquier proceso que requiera una serie de pasos para automatizarse 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 pueden automatizarse deben ser manejadas por la aplicación. Las aplicaciones avanzadas permiten a los usuarios introducir nuevos componentes en la operación. [1]

Por ejemplo, considere una orden de compra que pasa por varios departamentos para su autorización y eventual compra. El pedido puede enviarse automáticamente de un departamento a otro para su aprobación. Una vez obtenidas todas las autorizaciones necesarias, se notifica al solicitante de la orden de compra y se le otorga la autorización necesaria. Un proceso de flujo de trabajo puede implicar un mantenimiento frecuente. Por ejemplo, el aprobador habitual de órdenes de compra puede estar de vacaciones, en cuyo caso, la aplicación solicitará la aprobación de aprobadores alternativos.

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 productos de software proporcionan un medio para crear aplicaciones de flujo de trabajo únicamente con un diseñador gráfico basado en diagramas. Este tipo de sistemas se basan en la capacidad de capturar toda la información relevante para el proceso de flujo de trabajo a través de una interfaz especializada dirigida a no programadores. Posteriormente, el software compila esa información en una aplicación de flujo de trabajo funcional. Sin embargo, hay casos en los que el uso de un lenguaje de programación se vuelve necesario, particularmente 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 flujo de trabajo basado 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 de flujo de trabajo especializados. Estos lenguajes suelen venir con una notación gráfica asociada (como BPMN ), [2] aunque algunos están basados ​​en texto o XML . Ejemplos de lenguajes especializados que se pueden utilizar para la definición del flujo de trabajo de esta manera incluyen:

Los lenguajes anteriores se basan en la sintaxis XML y, si bien son adecuados para la manipulación por software, pueden resultar difíciles de trabajar para personas sin conocimientos técnicos. Por lo tanto, su uso generalmente se ve reforzado por notaciones gráficas que permiten la creación de diagramas similares a diagramas de flujo que son más fáciles de desarrollar e interpretar para las personas: la creación de dichos diagramas es, de hecho, una forma de programación "gráfica". El paquete de software que permite a un usuario desarrollar un diagrama de flujo de trabajo normalmente traducirá un diagrama a su equivalente XML.

Otro enfoque para desarrollar aplicaciones de flujo de trabajo es utilizar un lenguaje de programación junto con bibliotecas e interfaces que capturen abstracciones para la coordinación de tareas. Los siguientes son ejemplos de dichas bibliotecas e interfaces:

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

Una limitación de ciertas técnicas puramente basadas en diagramas, como BPMN mencionada anteriormente, es que para ajustarse al propósito de la especificación del flujo de trabajo, dichas notaciones deben mejorarse con construcciones adicionales. Estas construcciones capturan el paso de datos, las transformaciones de datos y las condiciones de enrutamiento, para vincular tareas a su implementación, etc. BPMN, si bien pretende servir como estándar, es deficiente en este sentido. Varios paquetes comerciales (como Microsoft Biztalk ) abordan estas necesidades de manera patentada (específicamente, mejorando el conjunto básico de íconos de diagramación con íconos adicionales que admiten la funcionalidad necesaria).

Para fines de análisis estático, por ejemplo, para detectar errores semánticos en el momento del diseño, también es posible representar el flujo de trabajo en 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 flujos de trabajo". En Fischer, L. (ed.). Manual de flujo de trabajo 2002 . Lighthouse Point, FL: Estrategias futuras. CiteSeerX  10.1.1.24.2311 .
  2. ^ "Diseñar un flujo de trabajo automatizado en Visio - Soporte de Microsoft". soporte.microsoft.com . Consultado el 13 de marzo de 2023 .

enlaces externos