| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45
Back To Interview list
With web services a hot topic these days, Michael Smith decided to talk with Matt Liotta about his CFUN-04 presentation on "Utilizing Web Services".
Michael Smith: Why are web services important for programmers?
Matt Liotta: Like any tool, it depends on whether the tool is useful for you. Web services are most useful for integration projects where you have two physically separated applications that need to talk together. Web services provide a standard-based way of doing that in a platform-agnostic manner. That is, J2EE, .NET, and CFML can all talk to each other through web services.
MS: Can you give a practical example?
ML: One example is Amazon.com's web services that they make available through their affiliate program. Using their web services, you can literary create your own book store that relies on Amazon.com for the entire backend. Most developers wouldn't want to go that far with it, but you can easily imagine the possibilities that this level of power offers. Possibly, you might want to show books available through Amazon.com that are related to existing content in your web application. While you could always do this before, using web services for the integration is a whole lot easier and results in a more elegant solution. Anyone who used "screen scraping" before can certainly attest to that.
MS: Why is screen scraping a problem?
ML: Besides being difficult and time consuming? The biggest problem with screen scraping is that it requires the remote web page to remain static. That is, if the HTML you are scraping changes then you have to rework your code.
MS: Well that happens all the time - so I understand why it is so bad now! So what is this WSDL file I keep hearing about with web services?
ML: According to W3C, Web Services Description Language (WSDL), is an XML-based format for describing network services as a set of endpoints operating on messages containing either document-oriented or procedure-oriented information. In other words, it is a way of communicating the API of your web service to consumers of it. WSDL itself is one of the more important parts of web services, but often isn't something you even need to understand as it is handled for you in most cases. For example, CFC-produced web services generate their WSDL automatically. My presentation will cover WSDL, but only from a practical, need- to-know point of view.
MS: Thanks for explaining. Is that related to this SOAP thing I keep hearing about, or is that a different thing?
ML: The Simple Object Access Protocol (SOAP) is an XML-based protocol for exchanging structured information. In other words, it is a "language" two platforms can use to talk to each other. It is related to WSDL in the sense that WSDL describes which "language" the web services makes use of and SOAP is the most common. Like WSDL, you often don't need to understand SOAP as it is handled for you. Again, my presentation will cover SOAP from a practical, need-to-know point of view.
MS: I heard a rumor that Apache does the web service heavy lifting under the CF covers - can you shed any light on that?
ML: Both ColdFusion and BlueDragon make use of Apache Axis as their underlying web services implementation. Apache Axis is an open source Java-based tool that has some interesting functionality CFML developers can make use of. My presentation will cover Apache Axis and how it relates to ColdFusion and BlueDragon, as well as how to make use of it directly from CFML.
MS: Are there any other issues that programmers need to be aware of when using webservices?
ML: The biggest issue by far is one of interoperability. Often, web services will be used to integrate two or more applications that are on top of heterogeneous platforms. While WSDL and SOAP provide a common standard for these platforms to communicate, it is also possible for a platform to produce a web service in a proprietary way. A perfect example of this is a database query. If you choose to return a CFML query through a web service, other platforms will not understand the data type. Interoperability is such an important issue that I have dedicated a significant amount of time in my presentation to help attendees understand, troubleshoot, and solve these interoperability problems.
MS: That sounds cool. I will see you at CFUN.