Después de la emergencia de del ESB (Servicio de Bus Empresarial), IBM y Tibco se negaron por años a reconocer el espacio de mercado. En afirmaciones frecuentemente reiteradas, ambas compañías tomaron la posición de que sus productos de mensajería proporcionaban las mismas capacidades sin tener que usar el apodo ESB. La falacia de estas visiones se volvió clara cuando SOA continuó ganando terreno y clientes impacientes buscaron a los verdaderos proveedores de ESB por el núcleo de su infraestructura. Eventualmente, IBM y Tibco aceptaron el concepto y comenzaron a empacar productos ESB que ¡sorpresa! incluyen funciones no encontradas en sus ofertas de mensajería. BusinessWorks 5.3 es la primera incursión de Tibco en los ESBs, y muestra que la compañía realmente entiende lo que el mercado está buscando. En lugar de los ásperos límites que esperaría de un producto nuevo, BusinessWorks 5.3 tiene una sensación madura e inteligente, así como un conjunto de funciones que muchos clientes empresariales encontrarán atractivo. De lleno en los negocios La “plataforma” BusinessWorks, como se llama a sí misma, proporciona la mensajería e infraestructura de servicio de bus para la integración empresarial y las necesidades ESB estilo SOA. Puede ir sobre el nivel de mensajería Rendezvous de Tibco, o usar las alternativas populares de JMS e IBM MQseries. Pone por defecto a Tibco Rendezvous, una tecnología de mensajería establecida, escalable, de alto desempeño y en tiempo real. Muchos de los niveles de servicio acompañantes han sido diseñados cuidadosamente para no comprometer el desempeño del mecanismo de enrutamiento de mensajes. Todas las operaciones internas en el ESB usan XML binario como su formato de datos. Y para procesar este formato rápidamente, Tibco escribió su propia pila de XML usando tecnología obtenida con su adquisición de Extensibility en el 2000. Cuando es posible, BusinessWorks evita la sobrecarga de datos y acciones encubiertos por envolturas SOAP. Los archivos SOAP de muchos niveles tienen una justificada reputación de degradar el desempeño, debido a la necesidad de las aplicaciones de analizarlas frecuentemente para ajustarse a las restricciones de formato. En cambio, los adaptadores de Tibco proporcionan un atajo para las transferencias de datos por donde se pueda. Por ejemplo, las aplicaciones de herencia COBOL usan cuadernos de copia para describir los diseños de archivos; BusinessWorks 5.3 puede leer estos cuadernos de copia directamente y colocar los datos consecuentemente sin usar como recurso un archivo SOAP. Asimismo, BusinessWorks interactúa con bases de datos a través de JDBC para invocar procedimientos almacenados o hacer llamadas SQL directamente. Para sitios que usan métodos REST para transferir datos y servicios Web, BusinessWorks incluye un cliente HTTP que puede responder a todas las búsquedas estándar. Además, BusinessWorks puede manejar formas HTML directamente a través de HTTP, sin necesidad de un servidor Web. Conexiones como sockets o esos que requieren sólo TCP/IP y FTP son hechas de sistema a sistema sin el uso de tecnología intermediaria. Donde no son posibles las conexiones directas, Tibco ofrece un extenso rango de plug-ins y adaptadores, algunos de los cuales están empacados pero muchos se venden por separado. Los plug-ins acotan los elementos de información al formato apropiado, permitiendo a los sistemas comunicarse entre sí. (Extrañamente, la comunicación con un contenedor J2EE requiere de un plug-in que se consigue por separado -a pesar de que BusinessWorks está hecho en Java.) Los adaptadores de aplicación son una raza diferente de conectores y todos deben ser comprados por separado. Ellos proporcionan más inteligencia y sirven a extremos complejos como los paquetes empresariales de Siebel, SAP, y PeopleSoft; también conectan a LDAP, Active Directory, Lotus Notes, Tuxedo, y demás. Debido a su larga historia como proveedor de middleware, Tibco tiene uno de los juegos más completos de adaptadores de cualquier compañía ESB. Sin embargo, debido a que ninguno de estos adaptadores vienen con BusinessWorks, debe añadir su costo al precio de cualquier instalación. Variedad de funciones Una de las funciones más impresionantes de BusinessWorks es su instalación, que es un proceso notoriamente problemático para la mayoría de las infraestructuras de software empresarial. En el caso de BusinessWorks, un simple mago (en Windows) se abre y pregunta unas cuantas cosas sobre la configuración y después instala el software sin pasos posteriores. BusinessWorks no usa J2EE. En lugar de ello, depende de su propio contenedor, lo que significa que puede correr en su propio hardware y no necesita ser colocado en las implementaciones existentes de J2EE. También usa su propio conjunto de hilos y de conexiones. Estas funciones permiten mantener vivas sesiones de HTTP mientras se vuelven a usar conexiones y se realizan otras magias no siempre presentes en los servidores J2EE. Mientras BusinessWorks se está ejecutando, perfila constantemente el consumo de recursos y el desempeño del sistema. Usando esta información, el software auto ajusta algunos parámetros, como el número de hilos para un proceso; otros parámetros son expuestos directamente a los administradores para un ajuste manual. Esto permite al ESB ajustar dinámicamente en respuesta a las cargas cambiantes. Para presentar el diseño de ESB, Tibco proporciona arquitectos con el BusinessWorks Designer, lo que permite la configuración de terminales ESB y la especificación del proceso que debe hacerse en el bus. La interfaz gráfica intuitiva del Designer se basa principalmente en arrastrar-y-soltar para presentar todo el proceso. (Nota: Tibco ha anunciado planes para transportar el diseñador a Eclipse.) Designer también ofrece un modo de caja de arena que permite a los usuarios probar y depurar una configuración particular antes de desplegarla. Aunque los diseños complejos son comparativamente más sencillos de hacer en Designer, me sorprendió encontrar que Tibco no soporta BPEL en esta herramienta. Como BPEL es la especificación de facto para la orquestación de servicios Web, es una omisión poco afortunada. Sin embargo, BusinessWorks ofrece algunas funciones impresionantes, especialmente la capacidad “escoge primero”. Esta permite a un diseñador establecer que cierta consulta deba ser enviada en paralelo a múltiples servidores o servicios Web. Después usará los resultados del primer servidor o servicio que regrese una respuesta válida y detendrá todas las demás búsquedas paralelas. Es una función útil para propósitos de desempeño y para consultas en las que no está claro qué servidor contiene los datos (como los silos de datos no federados). – Andrew Binstock