Chapter 15. Distributed Programming
Credit: Jeremy Hylton, Google, Inc.
The recipes in this chapter describe simple techniques for using Python in distributed systems. Programming distributed systems is a difficult challenge, and recipes alone won’t even come close to completely solving it. The recipes help you get programs on different computers talking to each other, so that you can start writing applications.
Remote Procedure Call (RPC) is an attractive approach to structuring a distributed system. The details of network communication are exposed through an interface that looks like normal procedure calls. When you call a function on a remote server, the RPC system is responsible for all the details of communication. It encodes the arguments so they can be passed over the network to the server, which might use different internal representations for the data. It invokes the right function on the remote machine and waits for a response.
The recipes in this chapter use three different systems that provide RPC interfaces—Common Object Request Broker Architecture (CORBA), Twisted’s Perspective Broker (PB), and, in most recipes, XML-RPC. These systems are attractive because they make it easy to connect programs that can be running on different computers and might even be written in different languages. CORBA is a rather “heavyweight” protocol, very rich in functionality, with specialized and dedicated marshaling and transport layers (and much more besides). XML-RPC is a ...