Conceptos clave de Workflow Manager 1.0

 

Publicada: mayo de 2016

En este tema se proporciona información general sobre los conceptos clave de Workflow Manager 1.0.

Conceptos clave

  • Servicio de administración de Workflow

  • API de Workflow Client

  • Actividad

  • Flujo de trabajo

  • Instancia

  • Scope

  • Notificaciones

  • DynamicValue

Servicio de administración de Workflow

Workflow Manager 1.0 expone el extremo de un servicio basado en REST para publicar, administrar y ejecutar flujos de trabajo.Todas las comunicaciones para interactuar con las definiciones de los flujos de trabajo y sus instancias se realizan mediante HTTP(S).

Para obtener más información sobre la administración de flujos de trabajo, vea Administración de servidores de Workflow Manager 1.0.

API de Workflow Client

La API de Workflow Client, que se encuentra dentro del paquete Microsoft.Workflow.Client.dll, es un conjunto de clases basadas en .NET que pueden servir para publicar, administrar y ejecutar flujos de trabajo.Proporciona un conjunto de APIs de primera clase que condensan y eliminan el tráfico interno HTTP del servicio de administración de Workflow.

Actividad

Una Actividad es una entidad con nombre que contiene bloques de creación de las funciones del flujo de trabajo.Normalmente, las actividades se componen de otras actividades, tanto actividades personalizadas creadas por el desarrollador como actividades proporcionadas en el nombre del espacio Microsoft.Activities.

Las Actividades están representadas en la API de Workflow Client con la clase ActivityDescription.La propiedad Xaml es un componente fundamental de esta clase y representa una definición de la Actividad basada en XAML.

Flujo de trabajo

Un Flujo de trabajo es una entidad con nombre que representa un flujo de trabajo que puede activarse o iniciarse.Está representada en la API de Workflow Client por la clase WorkflowDescription.Dos de las propiedades clave de esta clase son:

  1. ActivityPath, que especifica qué Actividad se usará como cuerpo de la implementación del Flujo de trabajo.

  2. ActivationFilter, que define las características de los mensajes que pueden activar una instancia en el Flujo de trabajo.

Instancia

Una Instancia de flujo de trabajo es una entidad que representa una instancia de un Flujo de trabajo en particular.Se puede crear de una de las siguientes maneras:

  1. Explícitamente. Para ello, llame a la API StartWorkflow para iniciar una nueva instancia de un Flujo de trabajo en particular.

  2. Implícitamente. Para ello, use la API PublishNotification para publicar un mensaje que coincida con el ActivationFilter de un Flujo de trabajo determinado.Tenga en cuenta que un solo mensaje puede coincidir con los ActivationFilters de cero, un o muchos Flujos de trabajo.Como resultado de la publicación de un mensaje de ese tipo, se crea una instancia de flujo de trabajo por cada Flujo de trabajo con el que coincide.

Tras la ceración de una Instancia de flujo de trabajo, esta se representa en la API de Workflow Client mediante la clase WorkflowInstanceInfo.

Scope

Un ámbito es un contenedor protegible y con nombre para Actividades, Flujos de trabajo, Instancias, configuración y Ámbitos secundarios.También establece un límite para arquitecturas multiempresa y mensajería (notificaciones).Los ámbitos se pueden crear y modificar mediante la API Workflow Client.Se representan en la API de Workflow Client con la clase T:Microsoft.Workflow.Client.ScopeInfo.

Cuando se instala Workflow, solo se crea previamente el ámbito raíz, y no se puede eliminar.Se pueden crear ámbitos adicionales si son necesarios.Es posible crear diversos niveles de ámbitos anidados.Los flujos de trabajo y las actividades deben implementarse en un ámbito por debajo del ámbito raíz.

Cada Actividad, Flujo de trabajo e Instancia pertenece a un solo ámbito.Las Actividades y los Flujos de trabajo pertenecen al Ámbito en el que se publicaron.Las Instancias pertenecen al mismo ámbito que sus Flujos de trabajo.

El xaml de una Actividad puede hacer referencia o usar otra Actividad que pertenezca al mismo ámbito, al ámbito principal o a cualquier ámbito antecesor, excepto al ámbito raíz.

Los Flujos de trabajo se pueden definir mediante una actividad del mismo ámbito, del ámbito principal o de cualquier ámbito antecesor, excepto del ámbito raíz.

Todos los Ámbitos secundarios heredan las opciones de seguridad y otras opciones de configuración de sus Ámbitos principales.

Los ámbitos son límites de nomenclatura.Los nombres de cada entidad con nombre (Actividades, Flujos de trabajo y Ámbitos secundarios) deben ser exclusivos dentro del Ámbito al que pertenecen.

Los ámbitos son también el destino de la API PublishNotification, es decir, un mensaje pasado a PublishNotification puede activar únicamente flujos de trabajo que pertenecen al ámbito de destino.

Los Flujos de trabajo no ordenan ninguna semántica específica para los Ámbitos secundarios.Los usuarios deciden qué estructura del ámbito es apropiada para cada aplicación.

Por ejemplo, un ISV que desarrolla OnlineCollaborationSolution puede crear ámbitos de máximo nivel para representar inquilinos de la aplicación OnlineCollaborationSolution, entre otros Contoso, Fabrikam y Litware.OnlineCollaborationSolution puede permitir a sus inquilinos crear entidades que se representarán como ámbitos anidados en el Modelo de recursos, tal y como se muestra en el siguiente diagrama.

Windows Azure Workflow Scopes

Notificaciones

Se pueden crear y reanudar instancias de flujos de trabajo por medio de mensajes de notificación.Los mensajes publicados en un Ámbito se distribuirán y enviarán asincrónicamente a todas las instancias de flujo de trabajo que coincidan con el filtro, tal y como se define en el flujo de trabajo.

Para obtener más información sobre la mensajería en el flujo de trabajo, vea Mensajería en Workflow Manager 1.0.

DynamicValue

DynamicValue es una estructura de datos dinámica que puede servir para pasar datos complejos a un flujo de trabajo, cambiar los datos del flujo de trabajo o sacar datos de un flujo de trabajo como JSON.

Para obtener más información sobre DynamicValue, vea Entender DynamicValue.