In the past weeks I have been working in a tool that adds discovery features to BizTalk Server 2004 via UDDI. Maybe sounds a little crazy but is absolutely simple. With this tool I am offering to BizTalk developers the possibility of publishing BizTalk elements in an UDDI registry in a way that these elements can be discovered later by other applications.
In the recent years the presence of the Service Oriented Architecture (SOA) has redefined the concept of application. An application is no longer an opaque, procedural implementation mechanism. Instead, it is an orchestrated sequence of messaging, routing, processing, and transformation events capable of processing the exposed declarative properties of rich (XML) documents. BizTalk Server 2004 implements some of the most important SOA concepts (here you can find a nice white paper article about this topic). In some contexts BizTalk Server 2004 can be viewed as an Enterprise Service Bus (ESB) since BizTalk provides support for the most important concepts required by an ESB like:
- Messaging: asynchronous store-and-forward delivery with multiple qualities of service
- Data transformation: XML to XML
- Content-based routing: publish and subscribe routing across multiple types of sources and destinations
Discovery is one of the most important features required by all SOA based technologies. In the Web Services environments there are several technologies to provide discovery support like: WSIL, WS-Discovery and, one of the most popular, UDDI. UDDI is typically associated with Web Services; however its data model permits to represent almost any kind of information. Some technology providers uses UDDI to, for example, discover CORBA objects among other potentialities. However is a fact that the UDDI data model is very flexible to represent SOA based concepts.
Well the main tool of my solution is the BizTalk Server 2004 UDDI Publishing Wizard. Using this tool we can publish some BizTalk Server 2004 elements in an UDDI registry. The benefits of add discovery potentialities to BizTalk Server 2004 are obvious. Using UDDI we can attribute metadata to a set of orchestrations and then makes queries based of this metadata to discover key aspects of orchestrations. Adding discovery capabilities to BizTalk Server 2004 we add another level of abstraction in which we define the data relevant to discovery by the potential clients. This feature is called by various authors the reification of data, in English making data “real”. That is, not necessarily all the elements in a set of orchestrations are relevant since a discovery point of view. Is perfectly that, for example, the relevant data in some orchestration are only one the receive port that activates the orchestration. Is a fact that many orchestration developers cannot expose their processes via Web Services. There are a lot of causes to this. Not all the messages can be expressed in a SOAP envelope even when there are many emerging Standards that add some interesting features to SOAP like MTOM. However some organizations may want to keep some processes that are activated using other protocols different from SOAP and also wants to publish discovery information. Using BizTalk Server 2004 UDDI Exporter Wizard we can publish information that indicates that some process receives some input messages via MSMQ, TCP, FILE, etc and returns some outputs.
Another important benefit of adding discovery features to BizTalk Server 2004 is categorization. Using UDDI we associate BizTalk elements into a set of categories and later use this categorization information in searches. The uses of categorization schemes makes possible to have the BizTalk Server 2004 elements properly classified and organized
Using UDDI to publish BizTalk Server 2004 information adds a number of benefits to BizTalk developers. We can now build applications that dynamically query the UDDI registry to find the location where some process receive input messages or send output messages, the schema of input and output messages, the transport adapters used among other things.
The implementations of the most popular UDDI registries are based on Web Services to facilitate the platform independence. When we publish BizTalk Server 2004 elements in UDDI this information becomes available to different types of clients, no matter the environments in which they are developed. Using these potentialities we add another interoperability option to BizTalk Server 2004. We can develop some J2EE based applications that query the UDDI registry to find information referred to some BizTalk applications. Using discovery we makes very flexible the dynamic interoperability between other integration platforms, like WebLogic Integration, WebLogic Server Process Editions, WebSphere Integration or TIBCO, with BizTalk Server 2004.
In next posts I plan to explain how to uses the BizTalk Server 2004 Publishing Wizard to publish BizTalk elements in an UDDI registry.
I really want that you use and test this tool and send me the feedback.
(The current version of the BizTalk Server 2004 Publishing Wizard has been submitted as an entry to the BizTalk Server 2004 Developer Competition).