[Zodb-checkins] SVN: ZODB/trunk/src/ZEO/protocol.txt provided some minimal documentation of the zeo protocol.

Jim Fulton jim at zope.com
Tue Jul 28 16:07:29 EDT 2009


Log message for revision 102358:
  provided some minimal documentation of the zeo protocol.
  

Changed:
  A   ZODB/trunk/src/ZEO/protocol.txt

-=-
Added: ZODB/trunk/src/ZEO/protocol.txt
===================================================================
--- ZODB/trunk/src/ZEO/protocol.txt	                        (rev 0)
+++ ZODB/trunk/src/ZEO/protocol.txt	2009-07-28 20:07:28 UTC (rev 102358)
@@ -0,0 +1,54 @@
+ZEO Network Protocol (sans authentication)
+==========================================
+
+This document describes the ZEO network protocol.  It assumes that the
+optional authentication protocol isn't used.  At the lowest
+level, the protocol consists of sized messages.  All communication
+btween the client and server consists of sized messages.  A sized
+message consists of a 4-byte unsigned big-endian content length,
+followed by the content.  There are two subprotocols, for protocol
+negotiation, and for normal operation.  The normal operation protocol
+is a basic RPC protocol.
+
+In the protocol negotiation phase, the server sends a protocol
+identifier to the client.  The client chooses a protocol to use to the
+server. The client or the server can fail if it doesn't like the
+protocol string sent by the other party.  After sending their protocol
+strings, the client and server switch to RPC mode.
+
+The RPC protocol uses messages that are pickled tuples consisting of:
+
+message_id
+   The message id is used to match replys with requests, allowing
+   multiple outstanding synchronous requests.
+
+async_flag
+   An integer 0 for a regular (2-way) request and 1 for a one-way
+   request. Two-way requests have a reply.  One way requests don't.
+   ZRS tries to use as many one-way requests as possible to avoid
+   network round trips.
+
+name
+   The name of a method to call. If this is the special string
+   ".reply", then the message is interpreted as a return from a
+   synchronous call.
+
+args
+   A tuple of positional arguments or returned values.
+
+After making a connection and negotiating the protocol, the following
+interactions occur:
+
+- The client requests the athentication protocol by calling .  For this
+  discussion, we'll assume the server returns None. Note that if the
+  server doesn't require authentication, this step is optional.
+
+- The client calls register passing a storage identifier and a
+  read-only flag.  The server doesn't return a value, but it may raise
+  an exception either if the storage doesn't exist, or if the the
+  stroage is readonly and the read-only flag passed by the client is
+  false.
+
+At this point, the client and server send each other messages as
+needed.  The client may make regular or one-way calls to the
+server. The server sends replies and one-way calls to the client.


Property changes on: ZODB/trunk/src/ZEO/protocol.txt
___________________________________________________________________
Added: svn:eol-style
   + native



More information about the Zodb-checkins mailing list