This is the Title of the Book, eMatter Edition Copyright © 2002 OReilly & Associates, Inc. All rights reserved. 114 Chapter 6 CHAPTER 6 Programming SOAP There are currently two object-oriented modules for Perl that provide support for developing SOAP client/server applications: SOAP and SOAP::Lite. This chapter intro- duces these two modules. By comparing and contrasting the modules, youll learn their strengths and weaknesses. The last part of the chapter covers other SOAP-related utility modules, which either augment the client/server SOAP modules or add SOAP-related functionality to other packages and systems. By the time you finish this chapter, youll be able to develop basic SOAP applications with the toolkits and utility modules and make an informed choice of software to use in your SOAP projects. A Toolkit Approach Using a toolkit for SOAP programming is almost a requirement. The specification itself is very complex, and the XML documents are equally complex. While there is nothing preventing an application developer from coding the functionality directly, there is no reason to with the availability of toolkits for Perl. A client is concerned with (not always in this order): " Establishing a communication channel to the server(s) " Constructing a valid request with the desired data " Sending the request to the server correctly " Retrieving and decoding the server response The goal of a good toolkit is to abstract as much of the encoding and transport issues as possible. There are two toolkits for Perl available from CPAN. Both are discussed here, but the focus will quickly shift to the SOAP::Lite module, which is more actively maintained.