Web services have become a hot topic these days with vendors hyping their web service implementations and technologies, yet few people seem to be able to agree on what a web service really is. Figure 21.1 should give you some idea of what web services actually entail.
Figure 21.1. The different technologies, standards, and protocols that make up the web services paradigm.
One of the major players in helping to define web services is IBM. The company defines web services in part as "… self-contained, modular business process applications, which are based on open, Internet standards. Using the technologies of WSDL (to describe), UDDI (to advertise and syndicate), and SOAP (to communicate), web services can be mixed and matched to create innovative applications, processes, and value chains" (see www-3.ibm.com/software/solutions/webservices/overview.html#webservices).
As you can see, web services are more than just software components/objects because they can describe their own functionality and look for and dynamically interact with other web services. Web services provide a means for different organizations to connect their applications with one another to conduct dynamic e-business across a network, no matter what their application, design, or runtime environment. From a business standpoint, web services offer a new range of possibilities for how organizations and their partners develop business solutions. For years, in building applications, you had to know who was using the applications as well as how, when, where, and for what. These were the boundaries within which you used to have to create and use applications. Now, with ColdFusion MX and web services, you can build applications without having to know who the user is, where he is, or anything else about him. And as a user of these applications, you can source them as easily as you would be able to source static data on the web, only with greater freedom and little concern about the format, platform, or anything else.
Even more exciting, web services are self-integrating with other web service applications. Until now, using traditional software tools and methodologies to make two technologies work together required lots of work and planning: You had to agree on the standards to pass data (very time-consuming), the protocols, the platforms, and so on. Now, with web services, applications written to the new standards will be able to automatically integrate with each other from wherever they originate.
Currently, web services are just in the infant stage and are slowly emerging as a paradigm shift in application development a shift akin to switching from procedural coding to object-oriented coding. ColdFusion MX is helping lead the way with its initial vision of web services. Macromedia, with ColdFusion MX, has made web services as easy as CFQUERY made database access.
Here are some great web services related links to check out:
ColdFusion MX uses the Apache AXIS engine to provide its web service functionality. AXIS is by far the most popular Java-based web services implementation. ColdFusion MX currently enables you to do two of the five major functions of web services: service description and invocation. The five major functional goals of web services are as follows:
Although ColdFusion MX supports only two of the five major functional blocks of web services as defined by the W3C and various web services groups, almost no products support more than three or four functional groups. Service composition, in particular, is an emerging field in which various vendors (such as Microsoft and IBM) are pushing to have their various solutions to that area adopted by the web service community at large.
The following sections describe the components of ColdFusion MX's web service engine, as shown in Figure 21.2.
Figure 21.2. The basic architecture of ColdFusion MX's web service engine.