Inside Coldfusion MX

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.

Note

Here are some great web services related links to check out:

  • www.alphaworks.ibm.com

  • www.webservices.org

  • www.Webservicesarchitect.com

  • www.xml.com

  • www.w3.org/2002/ws/

  • xml.apache.org/axis/index.html

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:

  • Service description. ColdFusion enables you to describe your web services via WSDL.

  • Service publication. Lets you publish your web services to a registry via UDDI.

  • Service discovery. Automated discovery and analysis of remote services via UDDI and WSDL.

  • Service invocation. Provides a standard-based method of invocation via SOAP and WSDL.

  • Service composing. The capability to compose or coordinate with other web services using SOAP, WSDL, UDDI, and emerging technologies sets of web services into complex work flows and process flows.

Note

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.

The Web Service Paradigm

Although most definitions of web services seem to imply that you must use SOAP, WSDL, and UDDI, this is certainly not the case. Web services are a paradigm, with .NET and AXIS being specific instances and implementations of that paradigm. Web services' main features are description, discovery, and publication, and you could use any series of technologies and protocols to accomplish this. Vendors and the web service community as a whole, though, are trying to agree on XML recommendations and to create standards for the creation of web services to guarantee maximum application interoperability.

Категории