Definir procesos empresariales

El intercambio de mensajes entre distintos sistemas es un trámite necesario para resolver los problemas a los que se enfrenta BizTalk Server. Sin embargo, el verdadero objetivo consiste en definir y ejecutar los procesos empresariales basados en las aplicaciones. El motor de BizTalk Server utiliza orquestaciones para definir la lógica de estos procesos empresariales. Para crear y evaluar grupos de reglas de negocios, se utiliza el motor de reglas de negocios. En esta sección se describen las orquestaciones y el motor de reglas de negocios.

La lógica de un proceso empresarial automatizado puede implementarse directamente en un lenguaje como, por ejemplo, Microsoft C# o Visual Basic. Sin embargo, la creación, el mantenimiento y la administración de procesos empresariales complejos en lenguajes de programación convencionales pueden resultar todo un reto. Al contrario que las versiones anteriores, BizTalk Server adopta un método diferente. Permite a los gestores empresariales o programadores definir un proceso empresarial de forma gráfica. Este método puede ser más rápido que la creación del proceso directamente en un lenguaje de programación y, además, puede hacer que el proceso sea más fácil de comprender, explicar y cambiar. También es más fácil supervisar los procesos empresariales que se crean de esta forma, función desarrollada por la tecnología de Supervisión de la actividad económica (SAE).

Para un programador, la creación de una orquestación se basa en tres herramientas principales: el Editor de BizTalk para crear esquemas XML, el Asignador de BizTalk para definir las traducciones entre dichos esquemas y el Diseñador de orquestaciones para especificar la lógica de los procesos empresariales. Todas estas herramientas se hospedan en Visual Studio, con lo que se proporciona a los programadores un entorno uniforme. En esta sección se describe cada una de estas herramientas y el modo de funcionamiento conjunto.

Crear esquemas: el Editor de BizTalk

Las orquestaciones funcionan con documentos XML, cada uno de los cuales se ajusta a algún esquema XML. El Editor de BizTalk permite a los programadores definir estos esquemas, que establecen de una forma básica la estructura y los tipos de información de un documento mediante el lenguaje de Definición de esquemas XML (XSD).

La creación de esquemas XSD sin formato sin utilizar ninguna herramienta no es tarea sencilla. Para facilitar este paso, el Editor de BizTalk permite a los usuarios, posiblemente a los programadores, crear un esquema mediante la definición de sus elementos en una jerarquía gráfica. También podrá importar los esquemas existentes desde archivos o servicios Web a los que pueda obtener acceso. Independientemente de la forma en la que se obtengan, los esquemas se utilizan como base para las asignaciones de BizTalk.

Asignar entre esquemas: el Asignador de BizTalk

Una orquestación que implementa un proceso empresarial normalmente recibe algunos documentos y envía otros. Con frecuencia, parte de la información que contienen los documentos recibidos suele transferirse a los documentos enviados, puede que modificada de algún modo. Por ejemplo, el procesamiento de un pedido puede recibir un pedido de un número de elementos y, a continuación, enviar un mensaje para indicar que el pedido se ha rechazado por alguna razón. La información sobre el pedido, como el identificador de solicitud y la cantidad solicitada, puede copiarse de los campos del mensaje de pedido recibido en los campos del mensaje de rechazo. Puede utilizar el Asignador de BizTalk para definir una transformación, lo que se denomina una asignación, de un documento a otro.

Aa561630.fcc0f311-20f1-4f8c-8003-8fcd3f210610(es-ES,BTS.10).gif

Como muestra la ilustración anterior, cada asignación se expresa como una correlación gráfica entre dos esquemas XML que define una relación entre los elementos de dichos esquemas. Worldwide Web Consortium (W3C) ha definido la transformación del lenguaje XSL (XSLT) como el modo estándar para expresar este tipo de transformaciones entre esquemas XML. Por ello las asignaciones de BizTalk Server se implementan como transformaciones XSLT.

La transformación definida en una asignación puede ser simple, como, por ejemplo, la copia de valores sin modificar de un documento a otro. La copia directa de datos, como la anterior, se expresa por medio de un vínculo, que aparece en el Asignador de BizTalk como una línea que conecta los elementos apropiados del esquema de origen con los elementos correspondientes del esquema de destino. También se pueden especificar transformaciones más complejas mediante la utilización de functoids. Un functoid consiste en un fragmento de código ejecutable que puede definir asignaciones complejas arbitrarias entre esquemas XML. Como se indica anteriormente, está representado en el Asignador de BizTalk mediante un cuadro situado en la línea que conecta los elementos que se transforman. Ya que alguna de esas transformaciones son bastante comunes, BizTalk Server incluye un número de functoids integrados. Estos functoids integrados se agrupan en categorías, entre las que se incluyen las siguientes:

  • Functoids matemáticos que llevan a cabo operaciones de suma, multiplicación y división de valores de campos del documento de origen y almacenan el resultado en un campo del documento de destino.

  • Functoids de conversión que transforman un valor numérico en el equivalente de ASCII y viceversa.

  • Functoids lógicos que se utilizan para determinar si un elemento o atributo debería crearse en el documento de destino basándose en una comparación lógica entre valores especificados en el documento de origen. Estos valores pueden compararse en términos de igualdad y de relación mayor o menor que, entre otros.

  • Functoids acumulados que calculan los promedios, sumas u otros valores de distintos campos del documento de origen y, a continuación, almacenan el resultado en un mismo campo del documento de destino.

  • Functoids de bases de datos que pueden obtener acceso a la información almacenada en una base de datos.

También puede crear functoids personalizados directamente en XSLT o utilizando lenguajes compatibles con .NET, como, por ejemplo, C# y Visual Basic. Los functoids también pueden combinarse en secuencias, intercalando la salida de uno con la entrada de otro.

Resulta esencial disponer de un modo para definir el esquema XML de un documento y asignar la información de documentos con distintos esquemas. El Editor de BizTalk y el Asignador de BizTalk hacen frente a estos dos problemas. No obstante, la definición de esquemas y asignaciones sólo representa una parte del proceso. También debe especificar la lógica de negocios que utilizará los esquemas e invocará las asignaciones.

Definir la lógica de negocios: el Diseñador de orquestaciones

Un proceso empresarial es un conjunto de acciones que satisfacen de forma conjunta ciertas necesidades empresariales útiles. Gracias a BizTalk Server, los programadores pueden utilizar el Diseñador de orquestaciones para definir estas acciones de forma gráfica. En lugar de expresar los pasos en un lenguaje de programación determinado, esta herramienta permitirá a los programadores crear una orquestación mediante la conexión lógica de una serie de formas. Entre las formas disponibles en el Diseñador de orquestaciones se incluyen:

  • La forma Recepción, que permite a la orquestación recibir mensajes. La forma Recepción puede disponer de un filtro que defina qué tipos de mensajes se recibirán; además, se puede configurar para que inicie una nueva instancia de orquestación cuando llegue un mensaje nuevo.

  • La forma Envío, que permite a la orquestación enviar mensajes.

  • La forma Puerto, que define cómo se transmiten los mensajes. Cada instancia de una forma Puerto se conecta a una forma Envío o Recepción. Asimismo, cada puerto posee un tipo, que define aspectos como los tipos de mensaje que el puerto puede recibir; una dirección, como, por ejemplo, envío o recepción; y un enlace, que determina el medio por el que se envía o se recibe un mensaje, por ejemplo, la especificación de una dirección URL determinada y otro tipo de información.

  • La forma Decidir, que representa una instrucción if-then-else que permite que una orquestación realice diferentes tareas basadas en condiciones booleanas. Puede utilizar un Editor de expresiones, componente del Diseñador de orquestaciones, para especificar esta instrucción condicional.

  • La forma Bucle, que controla las repeticiones de una acción cuando una condición está definida como True.

  • La forma Construir, que permite la generación de un mensaje.

  • La forma Transformación, que permite transferir información entre documentos y transformarla mediante la invocación de asignaciones definidas con el Asignador de BizTalk.

  • La forma Acciones paralelas, que permite a un programador especificar que varias operaciones deben realizarse en paralelo en lugar de en una sola secuencia. La forma posterior a ésta no se ejecuta hasta que se han completado todas las acciones paralelas.

  • La forma Ámbito, que permite agrupar operaciones en transacciones y definir los controladores de excepción para el control de errores. El sistema admite tanto las transacciones atómicas como las de larga ejecución. Al contrario que las transacciones atómicas, las transacciones de larga ejecución están basadas en una lógica de compensación, en lugar de revertir la acción para controlar los sucesos inesperados.

  • La forma Asignación de mensajes, que permite asignar valores a las variables de orquestación. Estas variables se pueden utilizar para almacenar información de estado de la orquestación, como, por ejemplo, un mensaje que se esté creando o una cadena de caracteres.

  • En la siguiente ilustración se muestra una orquestación creada por el Diseñador de orquestaciones con algunas de estas formas. En este ejemplo sencillo, se recibe un mensaje, se toma una decisión en función del contenido de dicho mensaje y se ejecuta una de las dos rutas posibles como resultado de esa decisión. Las orquestaciones que resuelven problemas reales pueden resultar significativamente más complejas que ésta. Para facilitar el trabajo con estos diagramas más complejos, el Diseñador de orquestaciones incluye la capacidad de acercar y alejar. De esta forma, los programadores sólo verán aquellas partes de la orquestación que les interesen.

Aa561630.cab7f9f3-648c-499b-be1e-5a0e234ad39a(es-ES,BTS.10).gif

Una vez que un programador ha definido una orquestación, el grupo de formas y relaciones entre ellas se convierte en Lenguaje intermedio de Microsoft (MSIL) utilizado por el Common Language Runtime (CLR) de .NET Framework. Por último, el grupo de formas definidas por un programador de BizTalk Server pasa a ser el ensamblado estándar compatible con .NET. También es posible agregar código explícito a una orquestación cuando sea necesario; para ello, se llama a un objeto COM o .NET desde el interior de una forma.

La función de los servicios Web

Los servicios Web permiten a las aplicaciones intercambiar documentos XML mediante SOAP y han tenido un impacto significativo en las plataformas de integración. Para obtener acceso a un servicio web externo, el creador de una orquestación puede utilizar la opción Agregar referencia web en Visual Studio junto con el adaptador de servicios web para invocar operaciones directamente. De forma similar, BizTalk Server proporciona un Asistente para publicación de servicios web, que puede generar un proyecto de servicio web ASP.NET que exponga una o varias de las operaciones de una orquestación como servicios web a los que se pueda llamar mediante SOAP. Estas dos opciones permiten a los programadores obtener acceso a los servicios Web existentes desde un proceso empresarial y exponer la funcionalidad de una orquestación como un servicio Web a otros procesos empresariales.

  • El auge de los servicios Web también afecta a cómo se definen los procesos empresariales. Suponga, por ejemplo, que dos organizaciones interactúan mediante servicios Web. Para que puedan trabajar conjuntamente de forma efectiva, puede que cada parte de la interacción necesite saber cierta información sobre el proceso empresarial que utiliza el otro. Que ambas organizaciones utilicen BizTalk Server, no supone un gran problema; pueden emplearse herramientas como la tecnología de administración de socios comerciales para distribuir esta información. Sin embargo, ¿qué ocurre si utilizan productos diferentes? En este caso resulta de utilidad disponer de una forma para describir ciertos aspectos de los procesos empresariales desde el punto de vista de una persona que no es fabricante.

Para permitir este tipo de interacción, Microsoft, IBM y otras empresas han creado el lenguaje de ejecución de procesos empresariales (BPEL). Un proceso empresarial definido mediante el Diseñador de orquestaciones puede exportarse a BPEL, y BizTalk Server también puede importar procesos definidos en BPEL. Pese a que el lenguaje resulta útil para describir y compartir de forma externa las partes visibles de los procesos empresariales, BPEL se centra más en la resolución de este problema que en la ejecución de procesos empresariales completos en plataformas cruzadas. También es importante el hecho de que BPEL esté basado por completo en servicios web, mientras que BizTalk Server y otros productos compatibles con este lenguaje proporcionan mucho más. Por ejemplo, BizTalk Server admite la asignación entre distintos esquemas XML, métodos de llamada en objetos locales y otras características no disponibles en BPEL. Por éstas y otras razones, BPEL no se considera un lenguaje completo para la definición de procesos empresariales. Además, dado que BPEL aún se encuentra en proceso para recibir la denominación de estándar del sector de OASIS (del inglés, Organization for the Advancement of Structured Information Standards), resulta complicado verlo hoy en día como una tecnología consolidada por completo.

  • Las orquestaciones constituyen el mecanismo fundamental para la creación de procesos empresariales en BizTalk Server. Sin embargo, algunos aspectos de la orquestación suelen cambiar más a menudo que otros. En concreto, las decisiones integradas en un proceso empresarial, las reglas de negocios, representan por lo general su aspecto más volátil. Puede ocurrir que el límite de gasto de un administrador la semana pasada fuera de 100.000 dólares estadounidenses, y que su ascenso incremente esta cantidad hasta 500.000 dólares, o que el pedido máximo permitido a un cliente moroso descienda de 100 unidades a 10 únicamente. Puede especificar y actualizar estas reglas por medio del motor de reglas de negocios.

El Diseñador de orquestaciones, junto con el Editor de BizTalk y el Asignador de BizTalk, proporcionan un modo eficaz de definir un proceso empresarial y las reglas que utiliza. No obstante, puede resultar útil contar con una forma más sencilla de definir y cambiar estas reglas de negocios. Para permitirlo, BizTalk Server ofrece el motor de reglas de negocios (BRE). Los programadores serán los que utilicen el BRE con mayor frecuencia, pero, por otra parte, los usuarios más orientados al sector empresarial pueden crear y modificar conjuntos de reglas de negocios con una herramienta denominada Compositor de reglas de negocio.

Una situación en la que el BRE resulta de utilidad es cuando se debe evaluar un conjunto complejo de reglas de negocios. La decisión de conceder un préstamo, por ejemplo, puede implicar trabajar a través de un conjunto grande de reglas en función del historial crediticio del cliente, sus ingresos y otros factores. De la misma forma, la concesión de un seguro de vida a un solicitante depende de un número de factores, entre los que se incluyen la edad, el sexo y estado de salud del solicitante. La expresión de todas estas reglas como instrucciones condicionales podría realizarse por medio de una forma Decidir de una orquestación, pero también puede resultar demasiado complejo implementarlas. En aquellos procesos en los que se empleen muchas reglas, como es el caso, el BRE puede facilitar el trabajo al programador.

Gracias al BRE, los programadores pueden cambiar las reglas cuando lo necesiten de una forma rápida y sencilla. Para entenderlo, piense en lo que se necesita para cambiar una regla de negocios que se implementa en una orquestación. En primer lugar, el programador debe abrir la orquestación en Visual Studio, modificar las formas adecuadas (y quizás los objetos .NET o COM que invocan) y, a continuación, generar e implementar el ensamblado modificado. Este proceso también exige la detención y el reinicio de la aplicación de BizTalk que incluye esta orquestación. Si, en lugar de ello, esta regla de negocios se implementa con el BRE, se puede modificar sin volver a compilar ni reiniciar nada. Sólo necesitará utilizar el Compositor de reglas de negocio para cambiar la regla deseada y volver a implementar el nuevo conjunto de reglas. El cambio surtirá efecto de inmediato. Aunque son los programadores quienes suelen crear y mantener las orquestaciones, las reglas de negocios son lo suficientemente comprensibles para que los analistas de negocios las puedan modificar en algunas ocasiones sin necesidad de implicar a ningún técnico.

El creador de un conjunto de reglas de negocios normalmente comienza con el Compositor de reglas de negocio para definir un vocabulario que especifique las reglas. Cada término del vocabulario proporciona un nombre sencillo para algún tipo de información. Por ejemplo, en un vocabulario se pueden definir términos como número enviado, cantidad máxima de elementos o límite de aprobación. Cada uno de estos términos puede establecerse en una constante o asignarse a un atributo o elemento determinado en algún esquema XML (y, de esta forma, en un mensaje entrante), al resultado de una consulta SQL realizada en una base de datos o a un valor de un objeto .NET.

Una vez que se ha definido un vocabulario, se puede utilizar el Compositor de reglas de negocio para crear directivas empresariales que empleen dicho vocabulario. Cada directiva puede contener una o varias reglas de negocios. Una regla utiliza los términos definidos en un vocabulario, así como operadores lógicos del tipo Mayor que, Menor que, Igual a, etc., con el objetivo de definir el funcionamiento de un proceso empresarial. Una regla de negocios puede definir, entre otros aspectos, cómo deberían afectar los valores de un documento XML recibido a los valores creados en un documento XML que se envía, o cómo deberían afectar esos valores recibidos a un valor determinado escrito en una base de datos.

Para ejecutar una directiva empresarial, las orquestaciones utilizan la forma CallRules. Esta forma crea una instancia del BRE, especifica la directiva que se va a ejecutar y entra en la información que la directiva necesita, como, por ejemplo, en un documento XML recibido. También puede invocarse el BRE mediante programación por medio de un modelo de objeto basado en .NET, que permite llamar al motor de reglas de negocios desde aplicaciones que no utilizan el motor de BizTalk Server. Esto implica que tanto aplicaciones de Windows Forms, como servicios Web de exposición de software y cualquier elemento que se haya generado en .NET Framework podrían utilizar el BRE cuando ayude a resolver el problema al que se enfrentan.

Los vocabularios y las reglas de negocios pueden resultar más complicadas (y mucho más eficaces) que los sencillos ejemplos que se describen en esta sección. No obstante, la idea principal de definir un vocabulario y, posteriormente, los conjuntos de reglas que lo utilizan, es la esencia del motor de reglas de negocios.

Adiciones de comunidad

AGREGAR
Mostrar: