1 / 25

Workflow Services

Workflow Services. Roberto González MVP Biztalk Server 2006 Renacimiento Sistemas. Agenda. Breve revisión de WF y WCF Mejor juntos– WF y WCF Arquitectura de WF Services Servicios Persistentes. Windows Workflow Foundation. ¿Qué es un Workflow?.

graceland
Download Presentation

Workflow Services

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Workflow Services Roberto González MVP Biztalk Server 2006 Renacimiento Sistemas

  2. Agenda • Breve revisión de WF y WCF • Mejor juntos– WF y WCF • Arquitectura de WF Services • Servicios Persistentes

  3. Windows Workflow Foundation ¿Qué es un Workflow? Workflow es la organización de trabajo representando procesos de negocio o lógica de la aplicación ¿Cuál es el valor del workflow? Lógica de larga ejecución Flexibilidad Transparencia Liberado Nov 2006 como parte de Windows Vista

  4. Anatomía de WCF <service> <endpoint name=“MyService” address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface”/> Address, Binding, Contract [ServiceContract] public interface IMyInterface { [OperationContract] public void MyMethod(String arg); } Definición de Contrato del servicio [ServiceBehavior(InstanceContextMode= InstanceContextMode.Single] public class MyService: IMyInterface { public void MyMethod(String arg){…} } Tipo de Servicio

  5. Arquitectura del Runtime de WCF Service.cs Service Instance Service Runtime App.config ServiceHost OperationInvoker Operation 1 OperationSelector Operation 2 InstanceProvider ListenerChannel MessageInspector ServiceDescription ServiceBehavior OperationBehavior

  6. FeedBack de .NET 3.0 • Feedback de clientes: • Los servicios de WCF necesitan una capa de persistencia • Workflows expuestos como un servicio de WCF • En .NET 3.0, nosotros teníamos que hacer la integración

  7. Hazlo tu mismo… • Inicia el runtime del workflow • Crea una instancia de un workflow • Mapea mensajes a una instancia de workflow • Hidrata una instancia de workflow según sea necesario • Entrada/Salida de un workflow en el momento adecuado • … .NET 3.5 hace esto y más usando puntos de extensibilidad de .NET 3.0 (Workflow Services)

  8. Workflow Services • Workflow + Servicios • Implementa Servicios-WCF con un workflow • Simplifica la integración entre WCF y WF • Proporciona Servicios de larga duración y persistentes • Los Workflows pueden ser activados mediante mensajes • Consume Servicios-WCF dentro de un workflow • Llama a servicios-WCF con actividades de workflow • Enlaza y propaga datos • Permite rápidamente componer aplicaciones que usan servicios • WCF y WF proporcionan un framework integrado • WCF Extensions – WorkflowServiceHost • Activities (Send y Receive) • Diseñador y herramientas (Contract-first ó Workflow-first)

  9. Arquitectura de Workflow Services Service.cs Workflow.cs or Workflow.xoml Workflow Runtime Workflow Instance Service Instance Service Runtime WorkflowOperationInvoker App.config ServiceHost Workflow ServiceHost OperationInvoker ReceiveActivity 1 Operation 1 DurableInstanceProvider MessageContextInspector ReceiveActivity 2 Operation 2 OperationSelector InstanceProvider WF Persistence DB ContextChannel ListenerChannel MessageInspector WorkflowServiceBehavior ServiceDescription WorkflowOperationBehavior ServiceBehavior OperationBehavior

  10. Workflow ServicesComponentes • Nuevas Actividades de WF: Send & Receive • Binding • ContextBindingElement • BasicHttpContextBinding, NetTcpContextBinding, WSHttpContextBinding • Behaviors • WorkflowRuntimeBehavior, PersistenceProviderBehavior, DurableServiceAttribute, DurableOperationAttribute • Hosting • WorkflowServiceHostFactory, WorkflowServiceHost

  11. Workflow ServicesControl de acceso • Autenticación proporcionada por Canales de WCF • Soporta control de acceso estático usando extensibilidad de WCF AuthorizationManager • ReceiveActivity • PrincipalPermission (estático) • OperationValidator (dinámico)

  12. Introducción a WorkflowServices Demo…

  13. ServiciosduraderosArquitectura PersistenceProvider Service.cs Service Instance Service Runtime App.config ServiceHost Operation 1 OperationInvoker DurableInstanceProvider MessageContextInspector Operation 2 OperationSelector InstanceProvider ContextChannel ListenerChannel MessageInspector DurableServiceBehavior ServiceDescription DurableOperationBehavior ServiceBehavior OperationBehavior

  14. Servicios duraderos Demo…

  15. Intercambio de contexto • El Modelo de transporte no trabajará en procesos de larga duración • Gestión en la capa de proceso o aplicación • Necesidad de acordar un protocolo de intercambio de contexto

  16. Protocolo de intercambio de contexto [ServiceContract] interface ICalculator { [OperationContract] int Add(int value) [OperationContract] int Complete() } Client Service Add 55 Add Response Send Receive {instanceId} 55 Add 45 {instanceId} Add Response 100 Send Receive

  17. Arquitectura de intercambio de contexto • ContextChannel implementa el intercambio de token de contexto • Recepción • Extraer contexto de ContextMessageProperty • Aplicar contexto en respuesta a peticiones de activación • Envío • Añadir contexto a todos los mensajes salientes • Representación del contexto • Cabecera SOAP <wsc:Context /> • Cookie HTTP • En código: IDictionary<XmlQualifiedName, string> WorkflowOperationInvoker Service Runtime DurableInstanceProvider OperationInvoker MessageContextInspector OperationSelector ContextChannel ListenerChannel InstanceProvider MessageInspector

  18. Determinar Contexto de Salida • // dentro del códio wf • IDictionary<XmlQualifiedName, string> context; • // context = … obtener contexto desde el //almacen • sendActivity.Context = context; • //dinámicamente asignar la dirección de envío • sendActivity.CustomAddress = • “net.tcp://140.141.2.5/service.svc”;

  19. Acceder al Contexto desde clientes no WF • // aplicación de wpf, winforms, … • IDictionary<XmlQualifiedName, string> context; • // context = … obtener contexto desde el almacén • IContextManager cm = • proxy.InnerChannel.GetProperty<IContextManager>(); • if (null != cm) • cm.SetContext(context); • // se necesita usar un channel stack que incluya el • // canal de contexto, o escribir las cabeceras directamente • // en el mensaje (no-WCF)

  20. Intercambio de contexto, Persistencia Demo…

  21. Trabajo de larga duración Motivación: Superar el comportamiento bloqueante de la actividad de envío, permitir al workflow continuar mientras ocurre el procesamiento. Aplicabilidad: Interactuar con un servicio que retorna rápidamente mientras continua el trabajo, notificar cuando se complete

  22. Trabajo de larga duración Demo…

  23. Resumen • Workflow Services proporciona una forma natural de construir servicios • Con una comprensión del contexto, se pueden implementar avanzados patrones de comunicación • Consigue los ejemplos mostrados hoy: http://www.thinkingtogether.net rgon@renacimiento.com

More Related