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.