pb.html   [plain text]


<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><title>Twisted Documentation: Overview of Twisted Spread</title><link href="../howto/stylesheet.css" type="text/css" rel="stylesheet" /></head><body bgcolor="white"><h1 class="title">Overview of Twisted Spread</h1><div class="toc"><ol><li><a href="#auto0">Rationale</a></li></ol></div><div class="content"><span></span><p> Perspective Broker (affectionately known as <q>PB</q>) is an
asynchronous, symmetric<a href="#footnote-1" title="There is a negotiation phase for banana with particular roles for listener and initiator, so it's not completely symmetric, but after the connection is fully established, the protocol is completely symmetrical."><super>1</super></a>
network protocol for secure, remote method calls and transferring of
objects.  PB is <q>translucent, not transparent</q>, meaning that it
is very visible and obvious to see the difference between local method
calls and potentially remote method calls, but remote method calls are
still extremely convenient to make, and it is easy to emulate them to
have objects which work both locally and remotely.</p><p>PB supports user-defined serialized data in return values, which can be
either copied each time the value is returned, or <q>cached</q>: only copied
once and updated by notifications.</p><p>PB gets its name from the fact that access to objects is through a
<q>perspective</q>.  This means that when you are responding to a
remote method call, you can establish who is making the call.</p><h2>Rationale<a name="auto0"></a></h2><p>No other currently existing protocols have all the properties of PB at the
same time.  The particularly interesting combination of attributes, though, is
that PB is flexible and lightweight, allowing for rapid development, while
still powerful enough to do two-way method calls and user-defined data
types.</p><p>It is important to have these attributes in order to allow for a
protocol which is extensible.  One of the facets of this flexibility
is that PB can integrate an arbitrary number of services could be
aggregated over a single connection, as well as publish and call new
methods on existing objects without restarting the server or
client.</p><h2>Footnotes</h2><ol><li><a name="footnote-1"><span xmlns="http://www.w3.org/1999/xhtml" class="footnote">There is a negotiation
phase for banana with particular roles for listener and initiator, so
it's not <em>completely</em> symmetric, but after the connection is
fully established, the protocol is completely symmetrical.</span></a></li></ol></div><p><a href="../howto/index.html">Index</a></p><span class="version">Version: 1.3.0</span></body></html>