Information technology sometimes reminds me of the magic industry. The first time a new and exciting act is performed, it creates a level of stir in the industry, leading to the eagerness of other magicians to perform it in their acts. Over time, the secret is gradually shared (or obtained by illicit means) among fellow magicians until eventually everyone is performing it. You can carry this analogy to Web services. For what started out as a trickle, we now have a myriad of products implementing SOAP-related protocols - old hat at this point.
But the core issue regarding Web services has nothing to do with adding a SOAP and WSDL interface to a system. It's something more mundane and time intensive, and has been around since the early days of computing: integration, getting all of the various external components to act as a single system. Most of the time, integration isn't a simple task, and with Web services, it's made more complex by the increased number of business partners involved and the need for complex, long-lived service transactions. Add to the equation the need for highly robust and redundant platforms for these services and the picture becomes more complex. With all this complexity, products such as webMethods are vital for Web service integration.
Overview
The webMethods 4.6 platform is a comprehensive business integration solution that enables companies to manage and automate business processes across applications, trading partner interfaces, and human workflows. With its service-oriented architecture, webMethods allows Web services to be incorporated seamlessly into these business process flows. The webMethods Integration Server is a service-oriented processing engine capable of providing communications support; integration logic; and enterprise-class scalability, reliability, security, and transactional integrity for enterprise Web services. The webMethods Developer is an integrated Web services development and deployment environment, providing a point-and-click interface for creating, integrating, testing, and deploying Web services. webMethods also provides a set of optional adapters for interfacing with external resources.
Creating a Web Service
What's interesting about webMethods is how you go about creating a Web service. Since webMethods has a service-based architecture (it has since its inception), and the integration process is comprised of creating various flow services, you don't need to follow a separate process to create and deploy a Web service. It's automatically generated for you. All services managed by the Integration Server are therefore available as Web services.
To assist you in testing and publishing a Web service, webMethods provides a Web service directory consisting of a testing facility and a WSDL viewer.
The testing facility generates an input form for the service call, calls the Web service, and displays the Web service response. You can also look at the actual request and response XML documents and view the WSDL. Both RPC and message-based SOAP service requests are supported by the webMethods Integration Engine. webMethods is capable of handling SOAP request and response messages over the HTTP and HTTPS network protocols.
Let It Flow
The flow model or language is the heart of a webMethods-implemented Web service, and provides the developer with the means to assemble various services, message channels, and database transactions into a new service. Services are built upon other services until you've completed the top-level service. For Web service development, this means that you can piece together various external resources along with business flow logic to produce complex Web services.
The integration work is performed in the webMethods Developer module and is primarily a model-driven process.
The flow model includes built-in conditional flow steps that you can use to apply business logic, thereby directing the flow of information within a flow service. Examples of the flow steps include branch, loop, repeat, and exit.
You also have the ability to add pre-existing external Web services to the flow diagram, thereby allowing a Web service to utilize external Web services (monetary exchange lookups, for example). webMethods provides a rich set of built-in services that handle a variety of internal or external processes. Some examples of built-in services include LDAP support, database access, and MIME header processing.
Integration Engine
The Integration Engine (IE) manages all services in the webMethods platform and processes the various flows that are resident in an active service. It's essentially where the services that are created by the developer are deployed. Transaction management is handled by the Job Manager in the IE and is directly associated with guaranteed message delivery. In addition, various time-outs can be set within a service to roll back transactions that have expired.
The IE is capable of operating in a clustered environment and supports load balancing and other high-availability features. Last, a browser-based administrative console provides configuration, reporting, and auditing, as well as other administrative features.
Typical Application
The webMethods Integration Server is typically situated behind the corporate firewall, integrating various heterogeneous systems into internal and public-facing Web services. A typical deployment may involve integrating customer information found in an ERP system with a J2EE-based intranet application into a set of new Web services. In this case, the Integration Server will integrate with systems located behind the firewall and optionally publish "secure" Web services over the Internet for public consumption. I quote the word secure because there is currently no standard regarding secure Web services. Another application would be to use the Integration Server to buffer existing systems in the enterprise and present them to an application server as standardized SOAP messages. In this setup, the application server would only have to deal with one interface, SOAP, for all of the back-end service calls.
Adapters
webMethods integrates ERP/CRM packages, mainframe applications, EDI/e-standards, etc., providing a variety of adapters, including those for packaged software from SAP, J.D. Edwards, Siebel, EDI, Baan, PeopleSoft, Oracle Apps, and BroadVision; databases such as JDBC and ODBC; messaging middleware, including MQSeries, MSMQ, and JMS; and Java application servers such as J2EE, EJB, and JCA. The product also offers an adapter development kit for developing custom adapters.
First Impressions
Installing webMethods was straightforward. I suggest you read through some of the documentation first and go through some of the tutorials to get acquainted with the service-oriented process and the flow modeling process. Again, to develop a Web service, all you need to do is develop a flow service; the rest is automatic. The Web service directory facility was easy to use, and I was able to test several Web services using the facility without any difficulty. A lot of additional functionality is outlined in the PDF documentation, so look through the various developer guides to get an idea of some of the additional Web service capabilities available, including custom SOAP handling, security and access control, and so on. I found that there's a bit of a learning curve involved in getting up to speed with the flow language, but anyone with programming experience should be able to pick it up easily. There are plenty of demonstration services and tutorials to help you along.
You can download a 60-day, fully functioning trial version from the webMethods site. You'll need to register prior to downloading.
Summary
webMethods was in the service-based integration business long before Web services arrived on the scene and, in fact, was involved early on in the standards process. The product enjoys a wide customer base and is one of the leading e-commerce platforms. The support for Web services in the 4.6 release is a natural fit for a service-based integration platform and introduces a new level of integration capabilities for deploying public, long-transaction, message-based Web services. It's this type of capability that will propel Web services into its rightful place in information technology history.
About The Author
Joe Mitchko is the product review editor for Web Services Journal.
jmitchko@rcn.com
All Rights Reserved
Copyright © 2004 SYS-CON Media, Inc.
E-mail:
info@sys-con.com