Over the last year or so, Web services have turned into the latest and greatest development craze. The Web services concept provides a strong impetus for current development of both of the major competing enterprise platforms--Microsoft's .NET and Sun Microsystems' J2EE (Java 2 Enterprise Edition). In the Java world, the Web services initiative is one of the main focus points for ongoing J2EE 1.4 development.
Are Web services just a passing fad, or do they really represent a new paradigm in application development?
What Are Web Services?
Web services are, essentially, the long-distance glue that allows services--aka application components--to be pulled together across IP networks. The analysts at research and consulting firm D.H. Brown have described Web services as "XML-enabled standards to allow publishing of applications to other parties across platforms."
Web services are based on a service-oriented architecture (the Web Services Description Language, or WSDL), registration through a UDDI (Universal Description, Discovery and Integration) repository, and communication encoded using SOAP (the Simple Object Access Protocol).
As an example, imagine a simple Web service: managing credit-card transactions for small online businesses. When you make a transaction on the Web site, you enter the credit-card number, and the shopping basket displays the total amount to be submitted for authorization. You also provide a name and billing address. The authorization transaction verifies that your card is legitimate and that your name and address match the bank's records. The credit-card processor authorizes or rejects the transaction, and the Web site operator can then accept or cancel the order.
Card processors have offered these services before, but now the interface can be defined using WSDL, and the service can be advertised in a UDDI registry. In principle at least, the Web site operator can build around a standard Web services-based credit-card transaction, then "plug it in" to any suitable card processor. The service is executed by sending an XML message using SOAP--essentially an XML synchronous remote procedure call.
As long as the WSDL interface definitions are identical, the Web site can easily switch card processors by hunting in the UDDI registry for alternative providers of the same Web service, should the usual provider be unavailable.
Who's Using Web Services?
A number of organizations have already begun to, or are about to, deploy Web services: