Initial import to Tizen
[profile/ivi/python-twisted.git] / doc / core / howto / pb.html
1 <?xml version="1.0" encoding="utf-8"?><!DOCTYPE html  PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN'  'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
2   <head>
3 <title>Twisted Documentation: Overview of Twisted Spread</title>
4 <link href="stylesheet.css" rel="stylesheet" type="text/css"/>
5   </head>
6
7   <body bgcolor="white">
8     <h1 class="title">Overview of Twisted Spread</h1>
9     <div class="toc"><ol><li><a href="#auto0">Rationale</a></li></ol></div>
10     <div class="content">
11 <span/>
12
13 <p> Perspective Broker (affectionately known as <q>PB</q>) is an
14 asynchronous, symmetric<a href="#footnote-1" title="There is a negotiation phase for the banana serialization protocol 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,
15 remote method calls and transferring of objects. PB is <q>translucent, not
16 transparent</q>, meaning that it is very visible and obvious to see the
17 difference between local method calls and potentially remote method calls,
18 but remote method calls are still extremely convenient to make, and it is
19 easy to emulate them to have objects which work both locally and
20 remotely.</p>
21
22 <p>PB supports user-defined serialized data in return values, which can be
23 either copied each time the value is returned, or <q>cached</q>: only copied
24 once and updated by notifications.</p>
25
26 <p>PB gets its name from the fact that access to objects is through a 
27 <q>perspective</q>. This means that when you are responding to a remote
28 method call, you can establish who is making the call.</p>
29
30 <h2>Rationale<a name="auto0"/></h2>
31
32 <p>No other currently existing protocols have all the properties of PB at the
33 same time. The particularly interesting combination of attributes, though, is
34 that PB is flexible and lightweight, allowing for rapid development, while
35 still powerful enough to do two-way method calls and user-defined data
36 types.</p>
37
38 <p>It is important to have these attributes in order to allow for a protocol
39 which is extensible. One of the facets of this flexibility is that PB can
40 integrate an arbitrary number of services could be aggregated over a single
41 connection, as well as publish and call new methods on existing objects
42 without restarting the server or client.</p>
43
44 <h2>Footnotes</h2><ol><li><a name="footnote-1"><span class="footnote">There is a negotiation phase
45 for the <code>banana</code> serialization protocol with particular roles for listener and initiator, so it's not
46 <em>completely</em> symmetric, but after the connection is fully established,
47 the protocol is completely symmetrical.</span></a></li></ol></div>
48
49     <p><a href="index.html">Index</a></p>
50     <span class="version">Version: 12.1.0</span>
51   </body>
52 </html>