Los flujos de trabajo pueden ser tan complejos o sencillos como se requiera en los procesos de negocio del usuario. Puede crear flujos de trabajo que inicie el usuario o flujos de trabajo que Windows SharePoint Services 3.0 inicie automáticamente en función de algún evento, por ejemplo, cuando se cree o cambie algún elemento.
Uso de flujos de trabajo de Windows SharePoint
Windows SharePoint Services 3.0 tiene flujos de trabajo disponibles para los usuarios finales en el nivel de lista o biblioteca de documentos. Los flujos de trabajo se pueden agregar a documentos o elementos de la lista. El flujo de trabajo también se puede agregar a tipos de contenido. Puede haber disponibles varios flujos de trabajo para un elemento determinado. Es posible ejecutar varios flujos de trabajo simultáneamente en el mismo elemento, pero sólo se puede ejecutar una instancia de un flujo de trabajo específico en un elemento específico en un momento dado. Por ejemplo, se podrían tener dos flujos de trabajo, SpecReview y LegalReview, disponibles para un tipo de contenido específico, Specification. Aunque ambos flujos de trabajo se pueden ejecutar simultáneamente en un elemento específico de la especificación de tipo de contenido, no puede haber dos instancias del flujo de trabajo LegalReview ejecutándose en el mismo elemento simultáneamente.
Arquitectura de la tecnología de los flujos de trabajo de SharePoint
Puede crear flujos de trabajo mediante el uso de Visual Studio 2005 Designer para Windows Workflow Foundation. Cada flujo de trabajo se compila dentro de su propia biblioteca de vínculos dinámicos (.dll).
Además, los flujos de trabajo pueden interactuar directamente con el usuario a través de formularios de flujo de trabajo personalizados. Los formularios de flujo de trabajo permiten recopilar información del usuario en cada fase del flujo de trabajo.
Para instalar el flujo de trabajo en una granja de servidores, debe crear una definición de flujo de trabajo. Una definición de plantilla de flujo de trabajo es un archivo XML que contiene la información que Windows SharePoint Services 3.0 necesita para crear una instancia y ejecutar el flujo de trabajo, por ejemplo:
- Nombre, GUID y descripción del flujo de trabajo
- Ubicación de cualquier formulario personalizado usado en este flujo de trabajo
- Clase correcta dentro del ensamblado del flujo de trabajo a la que se va a llamar
Cada granja de servidores contiene una tabla de asociaciones de flujo de trabajo. Cada una de las entradas de esta tabla incluye datos de asociación de un flujo de trabajo tal y como se aplican a un tipo de contenido, una lista o una biblioteca de documentos específicas. Estos datos de asociación normalmente incluyen si el flujo de trabajo se inicia automáticamente o lo inician los usuarios, así como las listas de historiales y tareas del flujo de trabajo. Si un flujo de trabajo se ha agregado a varios tipos de contenido, listas o bibliotecas de documentos, tendrá una entrada para cada asociación. Igualmente, si agrega varios flujos de trabajo a un tipo de contenido específico, o biblioteca de documentos, la tabla contiene una entrada para cada flujo de trabajo agregado a tipo de contenido, lista o biblioteca de documentos.
La siguiente ilustración muestra la arquitectura del flujo de trabajo conceptual en Windows SharePoint Services 3.0. Cada tipo de contenido, lista y biblioteca de documentos de la granja está vinculado a los flujos de trabajo agregados a la misma a través de la tabla de asociación de flujos de trabajo. Cada flujo de trabajo dispone de una definición de flujo de trabajo. Esta definición XML especifica la identidad del ensamblado de flujo de trabajo real y la clase dentro de ese ensamblado, así como la ubicación de cualquier formulario de flujo de trabajo que necesite ejecutar el flujo de trabajo.
La funcionalidad de flujo de trabajo de Windows SharePoint Services 3.0 está creada en Microsoft Windows Workflow Foundation (WWF), un componente de la plataforma Microsoft Windows que proporciona un marco de trabajo de programación y herramientas para el desarrollo y la ejecución de aplicaciones basadas en flujos de trabajo. Concretamente, Windows SharePoint Services 3.0 usa dos componentes proporcionados por WWF: Visual Studio 2005 Designer para Windows Workflow Foundation y el motor en tiempo de ejecución de WWF.
Visual Studio 2005 Designer para Windows Workflow Foundation
Visual Studio 2005 Designer para Windows Workflow Foundation es un complemento hospedado en Microsoft Visual Studio 2005 que permite a los programadores crear sus propios flujos de trabajo y actividades de flujo de trabajo personalizados. WWF proporciona un modelo de flujo de trabajo que permite a los programadores describir el flujo de un proceso de negocio. Se pueden crear flujos de trabajo con una construcción gráfica, una especificación de XML, código o una combinación de éstos. Visual Studio 2005 Designer para Windows Workflow Foundation proporciona una superficie de diseño gráfica intuitiva que los programadores pueden usar para ensamblar y configurar fácilmente actividades predefinidas en flujos de trabajo personalizados. Los autores de flujos de trabajo usan y amplían el modelo de flujo de trabajo de la misma manera en que usan y amplían otros elementos de Microsoft .NET Framework.
Motor en tiempo de ejecución de WWF
El motor en tiempo de ejecución de WWF administra la ejecución de los flujos de trabajo y permite a los flujos de trabajo permanecer activos durante largos períodos de tiempo y sobrevivir a los reinicios del equipo. Los servicios en tiempo de ejecución proporcionan servicios básicos, como transacciones y persistencia, al motor en tiempo de ejecución. WWF permite a cualquier proceso de aplicación o contenedor de servicios ejecutar flujos de trabajo mediante el alojamiento de WWF; es decir, cargando WWF en su proceso. Al crear flujos de trabajo de Windows SharePoint Services 3.0, Windows SharePoint Services 3.0 es el host para WWF.
El motor en tiempo de ejecución de WWF proporciona los servicios que necesita cada aplicación de flujo de trabajo, como secuencias, administración de estado, capacidades de seguimiento y compatibilidad con transacciones. El motor de WWF actúa como un equipo de estado responsable de cargar y descargar plantillas de flujo de trabajo, así como de administrar el estado actual de los flujos de trabajo que se ejecuten.
Windows SharePoint Services 3.0 aloja el motor en tiempo de ejecución de WWF. En lugar de los servicios conectables que se incluyen con WWF, Windows SharePoint Services 3.0 proporciona implementaciones personalizadas de los siguientes servicios para el motor: transacción, persistencia, notificaciones, funciones, seguimiento y mensajería. A continuación, los programadores pueden crear soluciones de flujo de trabajo basadas en Windows SharePoint Services 3.0.
La figura ilustración muestra la arquitectura de flujo de trabajo en Windows SharePoint Services 3.0. Windows SharePoint Services hospeda el motor en tiempo de ejecución de WWF dentro de su proceso y proporciona implementaciones personalizadas de los servicios necesarios. La funcionalidad del motor en tiempo de ejecución de WWF, así como la funcionalidad de alojamiento que proporciona Windows SharePoint Services 3.0, se exponen a través del modelo de objetos de Windows SharePoint Services 3.0.
Uno de los servicios más importantes que Windows SharePoint Services 3.0 proporciona al motor de flujo de trabajo de WWF es el de persistencia. Los flujos de trabajo que incluyen interacción humana tienen una ejecución inherentemente larga; incluso en circunstancias ideales, los seres humanos tardan un tiempo largo en completar el trabajo en comparación con las máquinas. En muchos escenarios de Office, un flujo de trabajo normalmente tardará días o más tiempo. Considere un flujo de trabajo de ejemplo que enruta documentos para su aprobación. El aprobador puede tardar varios días en llegar a la tarea de revisar el documento.
Claramente, dejar cada flujo de trabajo en ejecución en la memoria durante toda su ejecución no es viable; muy pronto los recursos requeridos por flujos de trabajo acumulados de larga ejecución harían que el sistema se detuviese.
En su lugar, cuando una instancia de flujo de trabajo ha alcanzado un punto en el que espera la entrada del usuario, Windows SharePoint Services 3.0 descarga esa instancia de flujo de trabajo de la memoria y hace persistir sus datos. A continuación, cuando un evento adecuado, como la especificación de entradas por parte del usuario, requiere que la instancia de flujo de trabajo se inicie de nuevo, Windows SharePoint Services 3.0 vuelve a crear la instancia de flujo de trabajo con los datos persistentes, para que la instancia de flujo de trabajo pueda recibir y controlar el evento según sea necesario.
Por lo tanto, aunque puede haber muchas instancias de flujo de trabajo ejecutándose en un momento dado, es posible que sólo una fracción de estos flujos de trabajo esté realmente en la memoria y use los recursos del sistema.
Desarrollo de flujos de trabajo para Windows SharePoint Services
Aunque Windows SharePoint Services 3.0 incluye plantillas predefinidas de flujo de trabajo, también puede crear sus propias plantillas de flujo de trabajo. Puede usar Visual Studio 2005 Designer para Windows Workflow Foundation o un editor de flujos de trabajo declarativo, sin código y basado en reglas, como Microsoft Office SharePoint Designer 2007. Dado que cada herramienta de creación genera flujos de trabajo con diferentes atributos y capacidades, resulta conveniente examinar cada herramienta detalladamente.
Uso de Visual Studio 2005 Designer para Windows Workflow Foundation
En Visual Studio 2005, puede usar Visual Studio 2005 Designer para Windows Workflow Foundation para crear plantillas de flujo de trabajo y actividades personalizadas de flujo de trabajo. Puede incluir código en el flujo de trabajo, así como formularios de diseño que debe usar el flujo de trabajo para comunicarse con los usuarios del flujo de trabajo durante la asociación y el tiempo de ejecución. Conviene advertir que cuando se están desarrollando plantillas de flujos de trabajo en Visual Studio 2005 Designer para Windows Workflow Foundation, no se está programando en un sitio de SharePoint específico.
Uso de Office SharePoint Web Designer
Por el contrario, cuando se crea un flujo de trabajo en un editor de flujos de trabajo declarativo, sin código y basado en reglas, como Office SharePoint Designer 2007, se está diseñando un flujo de trabajo para el sitio de SharePoint específico en el que se está trabajando. Office SharePoint Designer 2007 proporciona una interfaz de usuario que permite crear flujos de trabajo declarativos basados en reglas para el sitio seleccionado. De hecho, con Office SharePoint Designer 2007, se ensamblan actividades existentes anteriormente en los flujos de trabajo.
No se pueden crear actividades propias en Office SharePoint Designer 2007; tampoco puede escribir archivos de código lateral. Mediante Office SharePoint Designer 2007, se crean e implementan archivos de marcado basado en XML en lugar de un ensamblado que contiene código.
Comparación de procesos de desarrollo de flujo de trabajo
En la figura siguiente se muestran los distintos pasos que se deben seguir para crear, implementar, asociar y ejecutar un flujo de trabajo mediante cada una de las herramientas de creación. En general, la principal diferencia entre las dos herramientas es la siguiente:
- La creación de flujos de trabajo en Visual Studio 2005 Designer para Windows Workflow Foundation la lleva a cabo un programador profesional, el cual crea una plantilla de flujo de trabajo que se puede implementar en varios sitios y que contiene código y actividades personalizados. El programador, a continuación, proporciona la plantilla de flujo de trabajo a un administrador del servidor para su implementación y asociación.
- La creación de flujos de trabajo en Office SharePoint Designer 2007 suele realizarla una persona que no es un programador profesional, como por ejemplo un diseñador de Web o un trabajador del área de información, que desea crear un flujo de trabajo para una lista o biblioteca de documentos específica. En este caso, el diseñador está limitado a las actividades de flujo de trabajo de su "lista segura" y el flujo de trabajo no puede incluir código personalizado. El autor del flujo de trabajo implementa la plantilla de flujo de trabajo directamente en la lista o biblioteca de documentos como parte del proceso de creación del flujo de trabajo.
Aunque los pasos del proceso de creación de flujo de trabajo se especifican según la función y la aplicación, es evidente que la misma persona puede realizar más de una función según los procesos empresariales. Por ejemplo, una misma persona puede desarrollar el flujo de trabajo en Visual Studio 2005 e instalarlo en el servidor mediante Windows SharePoint Services 3.0.
El parámetro Visual Studio 2005 Designer para Windows Workflow Foundation proporciona un medio para desarrollar rápidamente flujos de trabajo mediante una interfaz gráfica que aprovecha los conocimientos de un programador del entorno de desarrollo de Microsoft Visual Studio.
Marcado de flujos de trabajo de WWF
Cada de flujo de trabajo de WWF se puede representar mediante las siguientes combinaciones de archivos:
- Un archivo o marcado XML que incluye los metadatos declarativos del flujo de trabajo; o
- El archivo de marcado, en combinación con un archivo de código subyacente que contiene código personalizado que representa las propiedades y el comportamiento del flujo de trabajo; o
- Un archivo (o archivos) de código que incluya la lógica declarativa y el comportamiento del flujo de trabajo.
Como XAML tiene un esquema publicado, se pueden crear archivos archivos XAML mediante cualquier editor de texto o de XML. Sin embargo, Visual Studio 2005 Designer para Windows Workflow Foundation ofrece a los programadores una interfaz gráfica en la que se pueden crear flujos de trabajo y generar automáticamente el archivo de marcado adecuado.
Los programadores pueden optar por integrar o separar sus metadatos declarativos de la lógica empresarial incluida en el flujo de trabajo. Conceptualmente, el paradigma de "separación de código" que emplean los flujos de trabajo de WWF es similar al que se usa en ASP.NET: los metadatos declarativos son independientes del archivo que encapsula la lógica empresarial. Por lo tanto, mientras el archivo de marcado contiene los metadatos de las actividades incluidas en el flujo de trabajo, las propiedades y los comportamientos de esas actividades se detallan en un archivo independiente.
En el caso de los flujos de trabajo creados mediante la separación de código, la información se conserva en los dos archivos:
- El archivo de marcado, como se ha detallado anteriormente.
- Un archivo de código lateral, que contiene el código que encapsula la lógica empresarial. Este archivo puede escribirse ya sea en Microsoft Visual C# o Microsoft Visual Basic.
- Un archivo de reglas de flujo de trabajo, que encapsula la lógica empresarial en reglas declarativas, en lugar de en el código.
Los flujos de trabajo que sólo componen de archivos de código siguen el mismo proceso de compilación general; es decir, los archivos de código se compilan en un tipo. NET.
Además, se pueden compilar flujos de trabajo formados únicamente por archivos de marcado. Sin embargo, esto no es necesario; el motor en tiempo de ejecución de WWF puede cargar y ejecutar flujos de trabajo de marcado no compilados. Éste es el enfoque usado al crear flujos de trabajo para Windows SharePoint Services 3.0 mediante un editor de flujo de trabajo basado en reglas declarativas y libre de código, como Office SharePoint Designer 2007.
Visual Studio 2005 Designer para las características de Windows Workflow Foundation
Visual Studio 2005 Designer para Windows Workflow Foundation proporciona un medio para desarrollar rápidamente flujos de trabajo mediante una interfaz gráfica que aprovecha los conocimientos de un programador del entorno de desarrollo de Visual Studio.
Visual Studio 2005 Designer para Windows Workflow Foundation es una herramienta que permite crear rápidamente el flujo de trabajo de forma que se integre con el desarrollo del código que encapsula los procesos de negocios. Para ello, Visual Studio 2005 Designer para Windows Workflow Foundation proporciona una interfaz gráfica con controles intuitivos, alojada en el conocido entorno de desarrollo de Visual Studio. Sus características son:
- Una superficie de diseño de arrastrar y colocar que permite ensamblar flujos de trabajo personalizados desde actividades de flujo de trabajo predefinidas que se arrastran desde el cuadro de herramientas .
- Una interfaz que permite trabajar en el marcado de flujos de trabajo mediante herramientas gráficas intuitivas.
- Integración con la ventana Propiedades, de modo que los programadores puedan configurar las propiedades de las actividades de flujo de trabajo a través de la interfaz gráfica o directamente en el archivo de código lateral, y mantener ambos sincronizados.
- Depuración de los flujos de trabajo adjuntándolos al proceso de SharePoint, incluido el establecimiento de puntos de interrupción en el flujo de trabajo.
- La capacidad de adjuntar controladores de errores, compensación y eventos a actividades, así como "comentar" gráficamente las actividades.
Desarrollo de flujo de trabajo en Visual Studio 2005
Puede usar el Visual Studio 2005 Designer para Windows Workflow Foundation para crear plantillas de flujo de trabajo y actividades de flujo de trabajo personalizados. Puede incluir el código personalizado en su flujo de trabajo, así como formularios de diseño, como formularios de ASP.NET, que va a usar el flujo de trabajo para comunicarse con los usuarios del flujo de trabajo durante la asociación y el tiempo de ejecución. Incluso puede crear actividades personalizadas que se usarán en otros flujos de trabajo.
Cuando haya completado la solución, puede empaquetar los archivos de solución en un plantilla de flujo de trabajo mediante la funcionalidad de empaquetado de características. Los paquetes de características Windows SharePoint Services 3.0 proporcionan un mecanismo mediante el cual los programadores pueden empaquetar los archivos necesarios para una solución, como flujos de trabajo, elementos web, listas y definiciones de sitio para facilitar la distribución e implementación.
Proceso de desarrollo de flujo de trabajo en Visual Studio
En general, cuando se desarrollan los flujos de trabajo para Windows SharePoint Services 3.0 usando el Visual Studio 2005 Designer para Windows Workflow Foundation, siga estos pasos básicos:
- Cree el flujo de trabajo, incluido el archivo de código lateral si es necesario, en Visual Studio 2005 Designer para Windows Workflow Foundation.
- Diseñe y publique los formularios que desee usar con el flujo de trabajo.
- Cree la definición de característica y el archivo de definición plantilla de flujo de trabajo, que contiene información sobre el ensamblado de flujo de trabajo y enlaza los formularios al ensamblado de flujo de trabajo.
- Compile los archivos de flujo de trabajo en un ensamblado .NET.
- Empaquete el ensamblado de flujo de trabajo y la definición de flujo de trabajo e impleméntelos mediante la funcionalidad características en Windows SharePoint Services 3.0.
- Depure el ensamblado de flujo de trabajo en directo mediante Visual Studio 2005 Designer para Windows Workflow Foundation.
- Vuelva a compilar e implementar el ensamblado de flujo de trabajo según sea necesario para corregir cualquier error.
Al crear un flujo de trabajo en un editor de flujos de trabajo declarativo, sin código y basado en reglas, como por ejemplo Office SharePoint Designer 2007, se crea dicho flujo de trabajo directamente y con un enlace de datos en una lista o biblioteca de documentos específica de Windows SharePoint Services 3.0. Se usa una lista predefinida de actividades de flujo de trabajo y no se usa ningún código. El flujo de trabajo que diseñe no se compila como un ensamblado, pero se almacena en forma de archivos de origen hasta que Windows SharePoint Services 3.0 compile el flujo de trabajo la primera vez que se ejecute.
Este enfoque ofrece las ventajas siguientes:
- Los flujos de trabajo se pueden desarrollar y probar rápidamente.
- Dado que el flujo de trabajo es específico de una lista determinada, se simplifica lo siguiente:
· El proceso de implementación
· La administración de problemas de seguridad - Debido a que los flujos de trabajo no se compilan en ensamblados, los flujos de trabajo creados en un editor declarativo, sin código y basado en reglas, como por ejemplo Office SharePoint Designer 2007, se pueden implementar en servidores donde la directiva administrativa prohíbe los ensamblados de código personalizado.
Los flujos de trabajo pueden ser creados por usuarios con menos experiencia que un programador, como los diseñadores de Web o los trabajadores del sector de la información.
Dado que crea el flujo de trabajo directamente en una biblioteca de documentos y enlaza los datos a dicha biblioteca, los flujos de trabajo creados en Office SharePoint Designer 2007 difieren de los flujos de trabajo creados mediante Visual Studio 2005 Designer para Windows Workflow Foundation de las siguientes formas importantes:
- No se puede implementar un flujo de trabajo creado en Office SharePoint Designer 2007 para varias listas. Sólo es válido para la lista para la cual se creó.
- Puesto que el flujo de trabajo se crea directamente para una lista, éste se asocia a la lista en tiempo de diseño. Por lo tanto, no existe ninguna fase de asociación para los flujos de trabajo creados en Office SharePoint Designer 2007.
- No se pueden modificar los flujos de trabajo creados en Office SharePoint Designer 2007.
- No se pueden crear en relación con un tipo de contenido en Office SharePoint Designer 2007.
Ejecución de flujos de trabajo sin compilar
Debido a que no contienen ningún código personalizado, los flujos de trabajo creados en un editor de flujos de trabajo declarativo, sin código y basado en reglas, como Office SharePoint Designer 2007, no se compilan ni implementan como ensamblados. Se almacenan como archivos de origen en Windows SharePoint Services 3.0 y sólo se compilan en la memoria cuando es necesario.
Para cada sitio, los flujos de trabajo de este tipo se almacenan en una biblioteca de documentos independiente. Esta biblioteca de documentos contiene una carpeta para cada flujo de trabajo creado en Office SharePoint Designer 2007. La carpeta contiene todos los archivos de origen necesarios para el flujo de trabajo, incluidos los siguientes:
- Archivo de marcado de flujo de trabajo
- Archivo de reglas de flujo de trabajo
- Formularios ASPX para cualquier formulario de flujo de trabajo personalizado que sea necesario
Cada vez que un flujo de trabajo se inicia en un elemento, Windows SharePoint Services 3.0 determina si se implementó el flujo de trabajo como un ensamblado o como archivos de origen. Si existe un ensamblado de flujo de trabajo, Windows SharePoint Services 3.0 llama a dicho ensamblado para crear la instancia de flujo de trabajo. Si el flujo de trabajo se ha implementado como archivos de origen, Windows SharePoint Services 3.0 determinará si ya se ha compilado un flujo de trabajo a partir de dichos archivos de origen en la memoria o no. Si es así, Windows SharePoint Services 3.0 llamará al flujo de trabajo compilado en memoria para crear la instancia de flujo de trabajo. En caso contrario, Windows SharePoint Services 3.0 usará el compilador Just-In-Time para compilar los archivos de origen en un flujo de trabajo en memoria, al cual se llamará a continuación para crear una instancia de flujo de trabajo.
No hay comentarios:
Publicar un comentario