[Twisted-Python] Perspective Broker vs AMP

Drew Smathers drew.smathers at gmail.com
Mon Mar 31 05:40:44 MDT 2008


On Mon, Mar 31, 2008 at 6:55 AM, Phil Mayers <p.mayers at imperial.ac.uk> wrote:
> Simon Pickles wrote:
>  > Hi,
>  >
>  > You may have seen my recent posts about data comms across nodes of
>  > server network.
>  >
>  > Phil kindly pointed me towards PB and AMP which, after some fiddling
>  > both look viable. However, I do have one question: If clients can
>  > request remote data from the server, is the reverse possible?
>  >
>  > As I understand PB, a client can get the root object of a
>  > PBServerFactory, thru which it can call methods with the 'remote_'
>  > prefix. I'm not clear how this can work in the other direction. As for
>
>  Well, this is a contrived example (since you could just return the
>  deferred) but:
>
>  class Server(pb.Referenceable):
>    def remote_foo(self, client):
>      d = doThing().addCallback(self.thing_result, client)
>
>    def thing_result(self, result, client):
>      client.callRemote('thing', result)
>
>
>
>  class Client(pb.Referenceable):
>    def remote_thing(self, thing):
>      # do something
>
>    def callServer(self):
>      d = self.server.getRootObject().addCallback(self.callServer2)
>    def callServer2(self, server):
>      server.callRemote('foo', self)
>
>  That is - when you callRemote() you can pass pb.Referenceable as
>  arguments, and the other end call callRemote on those objects.
>
>
>
>  > AMP, this seems similar - the client uses callRemote() to execute remote
>  > methods on the amp server.
>
>  No idea about AMP
>

AMP is bidirectional as well.  The server uses callRemote to
communicate with the connected client(s):

http://djfroofy.livejournal.com/3509.html


-- 
\\\\\/\"/\\\\\\\\\\\
\\\\/ // //\/\\\\\\\
\\\/ \\// /\ \/\\\\
\\/ /\/ / /\/ /\ \\\
\/ / /\/ /\ /\\\ \\
/ /\\\ /\\\ \\\\\/\
\/\\\\\/\\\\\/\\\\\\
 d.p.s




More information about the Twisted-Python mailing list