La versión anterior de SharePoint, 2010, implementa el motor de flujos de trabajo implícitamente cuando la plataforma es instalada y está basado en el motor de flujos de Microsoft .Net Framework 3.5. Toda la carga necesaria para el funcionamiento de un flujo de trabajo, el proceso de hidratación y deshidratación de la misma esta provista por los mismos servidores que hospedaban SharePoint. Por defecto, el motor de flujos en SharePoint 2010 viene pre-configurado con una serie de configuraciones que preservaban el uso de recursos en la granja, una de estas configuraciones limitaba a 15 la cantidad de instancias de flujos que podían ejecutarse simultáneamente en una implementación. La escalabilidad del motor de flujos, es decir, aumentar la capacidad de recursos disponibles en la granja para contar con mayor capacidad para ejecutar flujos estaba directamente relacionada con colocar más nodos de SharePoint, con lo cual diseñar una infraestructura para hospedar procesos de negocios basados en flujos de trabajo de SharePoint 2010 requería adicionar servidores. El estado de un flujo, es decir todo los valores de sus variables y configuración de ejecución son persistidos en la base de datos de contenido utilizada por la colección de sitios donde es asociado. En la siguiente figura podemos ver la arquitectura del motor de flujos de SharePoint 2010 disponible también como parte de SharePoint 2013 por cuestiones de compatibilidad hacia atrás.
SharePoint 2013 de forma nativa implemente la versión de Flujos de SharePoint 2010 y esta se instala por defecto cuando instalamos SharePoint 2013. Esta incorporación asegura que todos los flujos desarrollados para SharePoint 2010 utilizando el motor de flujos de Microsoft .Net Framework son compatibles con la nueva versión de la plataforma.
También se proporciona una nueva versión de flujos de trabajo basada en el nuevo motor de flujos de Microsoft .Net Framework 4.5 en la que el desarrollo de los mismos es totalmente declarativo, es decir, no dispondremos de la capacidad de incorporar código personalizado dentro del flujo, por lo cual todos las reglas de negocio personalizadas que se deban codificar deberán ser realizas externamente mediante servicios expuestos y que se tendrán que invocar desde el propio flujo.
¿Por qué implementar el motor de flujos de Windows Azure en SharePoint 2013?
Porque la incorporación de este de motor proporciona mejoras circunstanciales a muchas de las problemáticas que se tienen al utilizar el motor de flujos de SharePoint 2010. En la siguiente imagen (extraída del sitio de MSDN de Microsoft) se puede ver la arquitectura del motor de flujos de SharePoint 2013:
Como se observa, el motor de flujos está fuera de la plataforma de SharePoint 2013 y debe instalarse de forma independiente. Más adelante veremos brevemente el proceso de instalación. Dentro de las mejoras provistas se destacan:
La siguiente imagen muestra un diagrama de la arquitectura ampliada del motor de flujos de SharePoint 2013 y sus respectivos componentes.
Si se procede con la instalación de este nuevo motor de flujos y se asocia a SharePoint 2013, la plataforma quedará configurada con la posibilidad de crear flujos para las dos versiones de SharePoint, como se puede ver en la siguiente imagen.
El proceso de instalación y configuración del nuevo motor de flujos se basa en la instalación de dos componentes:
Al terminar de instalar Workflow Manager 1.0 el próximo paso es configurar la granja de flujos. En el servidor donde se instaló el componente se dispondrá de un acceso directo al asistente de configuración que lo guiara en una serié de pasos para introducir los parámetros de configuración, servidor de SQL Server que se utilizará para albergar todas las bases de datos necesarias y los protocolos de comunicación HTTP o HTTPS utilizados por el motor. En la siguiente imagen se puede ver la pantalla de resumen que presenta el asistente antes de proceder con la configuración.
Al terminar el asistente de configuración se dispondrá de los siguientes componentes configurados y listos para ser utilizados:
Si se desea agregar más servidores a una granja existente de flujos, se debe instalar el componente "Workflow Manager 1.0" en el nuevo servidor que se desea agregar y en el asistente de configuración se debe seleccionar "Agregar a una granja existente de Flujos" para unir el nuevo servidor, tal cual se realiza en SharePoint cuando se desea agregar un nuevo nodo.
En próximos artículos se estará profundizando el motor de flujos, el desarrollo de flujos y como se lleva a cabo la comunicación entre los servidores de la granja para que todo funcione correctamente.
Fabián Imaz MVP SharePoint fabiani@siderys.com.uy @fabianimaz http://www.siderysbsn.com