Synopses & Reviews
Have you ever needed to share processing between two or more computers running programs written in different languages on different operating systems? Or have you ever wanted to publish information on the Web so that programs other than browsers could work with it? XML-RPC, a system for remote procedure calls built on XML and the ubiquitous HTTP protocol, is the solution you've been looking for.
Programming Web Services with XML-RPC introduces the simple but powerful capabilities of XML-RPC, which lets you connect programs running on different computers with a minimum of fuss, by wrapping procedure calls in XML and establishing simple pathways for calling functions. With XML-RPC, Java programs can talk to Perl scripts, which can talk to Python programs, ASP applications, and so on. You can provide access to procedure calls without having to worry about the system on the other end, so it's easy to create services that are available on the Web.
XML-RPC isn't the only solution for web services; the Simple Object Access Protocol (SOAP) is another much-hyped protocol for implementing web services. While XML-RPC provides fewer capabilities than SOAP, it also has far fewer interoperability problems and its capabilities and limitations are much better understood. XML-RPC is also stable, with over 30 implementations on a wide variety of platforms, so you can start doing real work with it immediately.
Programming Web Services with XML-RPC covers the details of five XML-RPC implementations, so you can get started developing distributed applications in Java, Perl, Python, ASP, or PHP. The chapters on these implementations contain code examples that you can use as the basis for your own work. This book also provides in-depth coverage of the XML-RPC specification, which is helpful for low-level debugging of XML-RPC clients and servers. And if you want to build your own XML-RPC implementation for another environment, the detailed explanations in this book will serve as a foundation for that work.
Introduces the capabilities of XML-RPC, a system for remote procedure calls built on XML and the HTTP protocol. XML-RPC lets developers connect programs running on different computers by wrapping procedure calls in XML and establishing simple pathways for calling functions.
"Programming Web Services with XML-RPC introduces the simple but powerful capabilities of XML-RPC, a system for remote procedure calls built on XML and the HTTP protocol. XML-RPC lets developers connect programs running on different computers with a minimum of fuss, by wrapping procedure calls in XML and establishing simple pathways for calling functions. With XML-RPC, Java programs can talk to Perl scripts, which can talk to Python programs, ASP applications, and so on. Developers can provide access to functionality without having to worry about the system on the other end, so it's easy to create web services. This book supplies the details of both the XML-RPC specification and various XML-RPC implementations, so you can get started developing distributed applications in Java, Perl, Python, ASP, or PHP.
About the Author
You can find more of his writing on technology, Quakerism, and the Town of Dryden at simonstl.com.
Joe Johnston is a graduate of the University of Massachusetts in Boston with a B.A. in computer science, he is a teacher, web designer, and author of articles for Perl Journal, Perl.com, and IBM's DeveloperWorks. Joe helps maintain the ASP XML-RPC library and wrote the Perl module Frontier::Responder.pm.
Edd Dumbill is a technologist, writer and programmer based in California. He is the program chair for the OReilly Strata and Open Source Convention Conferences.
Table of Contents
Foreword; Preface; Audience; Organization; Conventions Used in This Book; Using Code Examples; How to Contact Us; Acknowledgments; Chapter 1: Introduction; 1.1 What XML-RPC Does; 1.2 Where XML-RPC Excels; 1.3 A Quick Tour of the Minefields; Chapter 2: The XML-RPC Protocol; 2.1 Choreography; 2.2 Data Types; 2.3 Request Format; 2.4 Response Format; 2.5 The Nil Value; 2.6 A DTD for XML-RPC; Chapter 3: Client-Server Communication: XML-RPC in Java; 3.1 Why XML-RPC for Java?; 3.2 The XML-RPC Java Library; 3.3 Building XML-RPC Clients; 3.4 Building XML-RPC Servers; 3.5 Creating XML-RPC Handlers; 3.6 Three Practical Examples; 3.7 Moving Toward Cross-Platform Peer-to-Peer; Chapter 4: XML-RPC and Perl; 4.1 Perl's Implementation of XML-RPC; 4.2 Data Types; 4.3 XML-RPC Clients; 4.4 XML-RPC Servers; 4.5 Integrating XML-RPC into a Web Server; Chapter 5: Integrating Web Applications: XML-RPC in PHP; 5.1 Getting the XML-RPC Library for PHP; 5.2 Understanding the Client Classes; 5.3 Mapping Data Between PHP and XML-RPC; 5.4 Invoking Methods; 5.5 Building XML-RPC Servers in PHP; 5.6 Connecting Web Applications; 5.7 What PHP and XML-RPC Can Do; Chapter 6: XML-RPC and Python; 6.1 Python Implementations of XML-RPC; 6.2 Installing PythonWare XML-RPC; 6.3 Data Types; 6.4 XML-RPC Clients; 6.5 XML-RPC Servers; 6.6 Integrating XML-RPC into a Web Server; 6.7 Using Zope as an XML-RPC Server; Chapter 7: Bridging XML-RPC and COM: XML-RPC in ASP; 7.1 Using XML-RPC with ASP; 7.2 Making Active Server Pages More Active; 7.3 Data Types and the API; 7.4 Building an Address Book Web Service with ASP; 7.5 Talking to MS Access from Linux; 7.6 An XML-RPC Client in ASP; 7.7 Creating a Window to Linux; 7.8 Connections and Caveats; Chapter 8: XML-RPC and the Web Services Landscape; 8.1 The Web Services Vision; 8.2 Public XML-RPC Services; 8.3 Design Considerations for Any XML-RPC Application; 8.4 Beyond XML-RPC; 8.5 Protocol Design Choices; 8.6 XML-RPC and Web Services; The XML You Need for XML-RPC; What is XML?; Anatomy of an XML Document; Character Encodings; Validity; Tools for Processing XML; Is That All There Is?; The HTTP You Need for XML-RPC; A Bit About TCP/IP; HTTP at the Start of the Web; Adding Two-Way Communications; Making Two-Way Communications Efficient; Making the Infrastructure Do Something Different; Infrastructure Details; Colophon;