Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El intercambio de mensajes entre diferentes sistemas es una parte necesaria de la resolución de los problemas que aborda BizTalk Server. Sin embargo, el objetivo real es definir y ejecutar procesos empresariales basados en las aplicaciones. El motor de BizTalk Server usa orquestaciones para definir la lógica de estos procesos empresariales. Para crear y evaluar grupos de reglas de negocio, usa el motor de reglas de negocios. En esta sección se describen las orquestaciones y el motor de reglas empresariales.
Uso de orquestaciones
La lógica de un proceso de negocio automatizado se puede implementar directamente en un lenguaje como Microsoft Visual Basic o Microsoft Visual C#. Sin embargo, crear, mantener y administrar procesos empresariales complejos en lenguajes de programación convencionales puede ser difícil. A diferencia de sus predecesores, BizTalk Server adopta un enfoque diferente. Permite a los administradores de negocios o desarrolladores definir gráficamente un proceso empresarial. Esto puede ser más rápido que compilar el proceso directamente en un lenguaje de programación, y también facilita la comprensión, explicación y cambio del proceso. Los procesos empresariales integrados de esta manera también se pueden supervisar con más facilidad, un hecho que aprovecha la tecnología de supervisión de actividad empresarial (BAM).
Para un desarrollador, 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 traducciones entre esos esquemas y el Diseñador de Orquestaciones para especificar la lógica de los procesos empresariales. Todas estas herramientas se hospedan en Visual Studio, lo que proporciona un entorno coherente para los desarrolladores. En esta sección se describe lo que hace cada una de estas herramientas y cómo funcionan conjuntamente.
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 desarrolladores definir estos esquemas, que básicamente definen la estructura y los tipos de información de un documento mediante el lenguaje de definición de esquema XML (XSD).
Crear esquemas XSD en bruto sin soporte de alguna herramienta no es sencillo. Para que este paso necesario sea más accesible, el Editor de BizTalk permite a los usuarios (probablemente desarrolladores) crear un esquema definiendo sus elementos en una jerarquía gráfica. Los esquemas existentes también se pueden importar desde archivos o servicios web accesibles. Sin importar cómo se adquieran, los esquemas se utilizan como base para los mapas de BizTalk.
Asignación entre esquemas: Asignador de BizTalk
Una orquestación que implementa un proceso de negocio normalmente recibe algunos documentos y envía otros. A menudo, parte de la información de los documentos recibidos se transfiere a los documentos enviados, tal vez transformados de alguna manera. Por ejemplo, un proceso de suministro de pedidos podría recibir un pedido para algún número de elementos y, a continuación, enviar un mensaje que indica que el pedido se rechazó por algún motivo. La información del pedido, como un identificador de solicitud y la cantidad ordenada, se puede copiar de los campos del mensaje de pedido recibido en los campos del mensaje de rechazo. El mapeador de BizTalk se puede utilizar para definir una transformación, llamada mapa, de un documento a otro.
Como se muestra en la ilustración anterior, cada mapa se expresa como una correlación gráfica entre dos esquemas XML que define una relación entre los elementos de esos esquemas. World Wide Web Consortium (W3C) ha definido la Transformación del lenguaje de hoja de estilos extensible (XSLT) como una manera estándar de expresar estos tipos de transformaciones entre esquemas XML, por lo que los mapas de BizTalk Server se implementan como transformaciones XSLT.
La transformación definida en un mapa puede ser sencilla, como copiar valores sin modificar de un documento a otro. Las copias directas de datos como esta se expresan mediante un vínculo, que se muestra en el asignador de BizTalk como una línea que conecta los elementos adecuados en el esquema de origen con sus homólogos en el esquema de destino. Las transformaciones más complejas también son posibles mediante functoids. Un functoid es un fragmento de código ejecutable que puede definir asignaciones arbitrariamente complejas entre esquemas XML y, como se muestra anteriormente, el asignador de BizTalk lo representa como un cuadro en la línea que conecta los elementos que se transforman. Dado que algunas de esas transformaciones son bastante comunes, BizTalk Server incluye varios functoids integrados. Estos functoids integrados se agrupan en categorías, entre ellas:
Functoids matemáticos que realizan operaciones como agregar, multiplicar y dividir los valores de los campos en el documento de origen y almacenar el resultado en un campo del documento de destino.
Elementos de conversión que convierten un valor numérico en su equivalente ASCII y viceversa.
Functoids lógicos que se pueden usar para determinar si se debe crear un elemento o atributo en el documento de destino en función de una comparación lógica entre los valores especificados en el documento de origen. Esos valores se pueden comparar de igualdad, si son mayores o menores, y de otras maneras.
Functoids acumulativos que calculan promedios, sumas u otros valores de varios campos del documento de origen y luego almacenan el resultado en un único campo del documento de destino.
Functoides de base de datos que puede acceder a la información almacenada en una base de datos.
También es posible crear functoids personalizados directamente en XSLT o mediante lenguajes habilitados para .NET como Visual C# y Visual Basic. Los functoids también se pueden combinar en secuencias, encadenando la salida de uno a la entrada de otro.
Es esencial que tenga una manera de definir el esquema XML de un documento, así como un mecanismo para asignar información entre documentos con esquemas diferentes. El Editor de BizTalk y el Mapeador de BizTalk abordan estos dos problemas. Sin embargo, definir esquemas y mapas solo forma parte del proceso. También debe especificar la lógica de negocios que usará los esquemas e invocará los mapas.
Definición de la lógica de negocios: el Diseñador de orquestaciones
Un proceso de negocio es un conjunto de acciones que satisfacen algunas necesidades empresariales útiles. Con BizTalk Server, un desarrollador puede usar el Diseñador de orquestaciones para definir estas acciones gráficamente. En lugar de expresar los pasos en algún lenguaje de programación, un desarrollador puede crear una orquestación mediante la conexión de una serie de formas de forma lógica. Las formas disponibles en el Diseñador de orquestaciones incluyen:
La forma Receive, que permite que la orquestación reciba mensajes. Una forma Receive puede tener un filtro que defina los tipos de mensajes que se recibirán y también se puede configurar para iniciar una nueva instancia de una orquestación cuando llegue un nuevo mensaje.
La forma Enviar, que permite que la orquestación envíe mensajes.
La forma del puerto, que define cómo se transmiten los mensajes. Cada instancia de una forma de Puerto está conectada a una forma de Enviar o de Recibir. Cada puerto también tiene un tipo, que define cosas como los tipos de mensajes que puede recibir el puerto; una dirección, como enviar o recibir; y un enlace, que determina cómo se envía o recibe un mensaje, por ejemplo, especificando una dirección URL determinada y otra información.
La forma Decide, que representa una instrucción if-then-else que permite a una orquestación realizar diferentes tareas en función de las condiciones booleanas. Se puede usar un Editor de expresiones, parte del Diseñador de orquestaciones, para especificar esta instrucción condicional.
Forma bucle, que controla el rendimiento repetido de una acción mientras se cumple alguna condición.
La herramienta Construir mensaje, que permite crear un mensaje.
La forma de Transformación, que permite transferir información de un documento a otro y transformarla mediante la invocación de mapas definidos con BizTalk Mapper.
La forma Acciones paralelas, que permite al desarrollador especificar que se deben realizar varias operaciones en paralelo en lugar de en secuencia. La forma que sigue a esta no se ejecuta hasta que se hayan completado todas las acciones paralelas.
La forma de ámbito, que permite agrupar operaciones en transacciones y definir controladores de excepciones para la gestión de errores. Se admiten transacciones atómicas tradicionales y transacciones de larga duración. A diferencia de las transacciones atómicas, las transacciones de larga duración utilizan lógica de compensación en vez de revertir para manejar eventos inesperados.
La estructura de Asignación de mensajes, que permite asignar valores a variables de orquestación. Estas variables se pueden usar para almacenar información de estado utilizada por la orquestación, como un mensaje que se crea o una cadena de caracteres.
En la ilustración siguiente se muestra una orquestación creada en el Diseñador de orquestaciones con algunas de estas formas. En este ejemplo sencillo, se recibe un mensaje, se toma una decisión basada en el contenido de ese mensaje y se ejecuta una de estas dos rutas de acceso como resultado de esa decisión. Las orquestaciones que resuelven problemas reales pueden ser significativamente más complejas que esta; para que estos diagramas más complejos sean más fáciles de trabajar, el Diseñador de orquestaciones incluye la capacidad de acercar y alejar. Los desarrolladores solo pueden ver las partes de una orquestación en la que están interesados actualmente.
Una vez que un desarrollador ha definido una orquestación, el grupo de formas y relaciones entre ellas se convierte en el lenguaje intermedio de Microsoft (MSIL) usado por Common Language Runtime (CLR) de .NET Framework. En última instancia, el grupo de formas definidas por un desarrollador de BizTalk Server se convierte en un ensamblaje estándar habilitado para .NET. También puede agregar código explícito a una orquestación cuando sea necesario llamando a un objeto COM o .NET desde dentro de una forma.
El rol 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 acceder a un servicio web externo, el creador de una orquestación puede usar la opción Agregar referencia web en Visual Studio junto con el adaptador de servicios web para invocar directamente las operaciones. Del mismo modo, BizTalk Server proporciona un asistente para publicación de servicios web que puede generar un proyecto de servicio web de ASP.NET que expone una o varias de las operaciones de una orquestación como servicios web que se pueden llamar con SOAP. Estas dos opciones permiten a los desarrolladores acceder a los servicios web existentes desde un proceso empresarial y exponer la funcionalidad de una orquestación como servicio web a otros procesos empresariales.
El aumento de los servicios web también tiene un impacto en la definición de los procesos empresariales. Por ejemplo, piense en el caso en el que dos organizaciones interactúan con servicios web. Para interoperar eficazmente, podría ser necesario que cada parte de la interacción sepa algo sobre el proceso de negocio que usa el otro. Si ambas organizaciones usan BizTalk Server, esto no es un gran problema; Las herramientas como la tecnología de administración de socios comerciales se pueden usar para distribuir este conocimiento. ¿Pero qué ocurre si usan productos diferentes? En casos como este, resulta útil tener una manera de describir aspectos de los procesos empresariales de forma no específica de un proveedor.
Para permitir esto, Microsoft, IBM y otros han creado el lenguaje de ejecución de procesos empresariales (BPEL). Un proceso de negocio definido mediante el Diseñador de orquestaciones se puede exportar a BPEL y BizTalk Server también puede importar procesos definidos en BPEL. Aunque el lenguaje es útil para describir y compartir partes visibles externamente de un proceso empresarial, BPEL se centra más en resolver este problema que en la ejecución multiplataforma de procesos empresariales completos. También es importante comprender que BPEL se crea completamente en servicios web, mientras que BizTalk Server y otros productos que admiten este lenguaje proporcionan más. Por ejemplo, BizTalk Server admite la asignación entre distintos esquemas XML, invocar métodos en objetos locales y otras características no disponibles en BPEL. Por estas y otras razones, BPEL no es un lenguaje completo para definir procesos empresariales. Y dado que BPEL todavía está en proceso de estandarizarse por la Organización para el Avance de estándares de información estructurada (OASIS), es difícil verlo hoy como una tecnología totalmente madura.
Las orquestaciones son el mecanismo fundamental para crear procesos empresariales en BizTalk Server. Sin embargo, algunos aspectos de una orquestación tienden a cambiar con más frecuencia que otros. En concreto, las decisiones insertadas en un proceso de negocio (las reglas de negocio) suelen ser su aspecto más volátil. El límite de gasto de un gerente fue de $100,000 la semana pasada, pero su ascenso aumenta este límite hasta $500,000, o el pedido máximo permitido de un cliente de pago lento disminuye de 100 unidades a solo 10. Puede especificar y actualizar estas reglas mediante el motor de reglas de negocios.
Uso del motor de reglas de negocios
El Diseñador de orquestaciones, el Editor de BizTalk y el Mapper de BizTalk proporcionan una manera eficaz de definir un proceso de negocio y las reglas que usa. Sin embargo, puede ser útil tener una manera más fácil de definir y cambiar las reglas de negocio. Para permitir esto, BizTalk Server proporciona el motor de reglas de negocios (BRE). Los desarrolladores suelen usar bre, pero los usuarios más orientados a la empresa pueden crear y modificar conjuntos de reglas de negocio mediante una herramienta denominada Business Rule Composer.
Una situación en la que el BRE es útil es cuando se debe evaluar un conjunto complejo de reglas de negocios. Decidir si se debe conceder un préstamo, por ejemplo, podría implicar trabajar con un gran conjunto de reglas basadas en el historial de crédito, los ingresos y otros factores del cliente. De forma similar, determinar si vender seguros de vida a un solicitante depende de una serie de cosas, incluida la edad, el sexo y la salud del solicitante. Expresar todas estas reglas como instrucciones condicionales mediante, por ejemplo, la forma Decidir de una orquestación podría ser posible, pero sería bastante compleja de implementar. En el caso de los procesos de uso intensivo de reglas como estos, BRE puede simplificar la vida de un desarrollador.
Con BRE, los desarrolladores pueden cambiar rápidamente y fácilmente las reglas según sea necesario. Para ver por qué, piense en lo que se necesita para cambiar una regla de negocio que se implementa dentro de una orquestación. Un desarrollador debe abrir primero la orquestación en Visual Studio, modificar las formas adecuadas (y quizás los objetos .NET o COM que invocan) y, a continuación, compilar e implementar el ensamblado modificado. Esto también requiere detener y reiniciar la aplicación de BizTalk que incluye esta orquestación. Si, en su lugar, esta regla de negocio se implementa mediante BRE, se puede modificar sin volver a compilar ni reiniciar nada. Todo lo necesario es usar business Rule Composer para cambiar la regla deseada y, a continuación, volver a implementar el nuevo conjunto de reglas. Este cambio se aplicará de inmediato. Y aunque las orquestaciones suelen crearse y mantenerse por parte de los desarrolladores, las reglas de negocio son lo suficientemente legibles que, en algunos casos, los analistas de negocios pueden modificarlas sin necesidad de implicar a personas más técnicas.
Normalmente, el creador de un conjunto de reglas de negocios comienza mediante el compositor de reglas de negocios para definir un vocabulario que se usará para especificar esas reglas. Cada término en el vocabulario proporciona un nombre fácil de usar para cierta información. Por ejemplo, un vocabulario podría definir términos como Número enviado o Cantidad máxima de artículos o Límite de aprobación. Cada uno de estos términos se puede establecer en una constante o asignarse a un elemento o atributo determinado en algún esquema XML (y, por tanto, en un mensaje entrante) o al resultado de una consulta SQL en alguna base de datos o incluso a un valor en un objeto .NET.
Una vez definido un vocabulario, business Rule Composer se puede usar para crear directivas empresariales que usen este vocabulario. Cada directiva puede contener una o varias reglas de negocios. Una regla usa los términos definidos en algún vocabulario junto con operadores lógicos como Mayor que, Menor que, Es igual a y otros para definir cómo funciona un proceso de negocio. Una regla de negocios puede definir cómo deben afectar los valores contenidos en un documento XML recibido a los valores creados en un documento XML que se envían, o cómo deben afectar esos valores recibidos a qué valor se escribe en una base de datos u otras cosas.
Para ejecutar una directiva empresarial, una orquestación usa una forma CallRules. Esta forma crea una instancia de BRE, especifica la directiva que se va a ejecutar y, a continuación, pasa la información que necesita esta directiva, como un documento XML recibido. El BRE también se puede invocar mediante programación utilizando un modelo de objetos basado en .NET, lo que permite ser llamado desde aplicaciones que no usan BizTalk Server. Esto significa que las aplicaciones de Windows Forms, el software que expone servicios web y cualquier otra cosa creada en .NET Framework pueden usar potencialmente el BRE siempre que ayude a resolver el problema a mano.
Tanto los vocabularios como las reglas de negocio pueden ser mucho más complicados y mucho más eficaces que los ejemplos simples descritos aquí. Pero la idea principal de definir un vocabulario, luego definir conjuntos de reglas que usan ese vocabulario es el corazón del motor de reglas de negocios.