2009-10-28 83 views
1

我是Python新手。只是想知道python中是否有类似于ruby的drb的模块?像客户端可以使用drb服务器提供的对象?有没有类似于分布式Ruby的Python模块

+3

如果你想扩大可以回答你的问题的观众,你可以描述分布式Ruby(aka drb)的功能。因为我相当严格是一个Python人,我不知道。 – Omnifarious 2009-10-28 07:02:18

+1

“分布式Ruby是一个用于Ruby的分布式对象系统,它允许一个Ruby进程中的对象调用另一个Ruby进程中相同或不同计算机上对象的方法。”毫无疑问,drb服务器充当对象源。对客户来说,看起来这些对象是本地的,但代码是在服务器端远程执行的。 – ccy 2009-10-28 08:15:47

+0

你可以编辑你原来的问题,最好把描述放在那里。 – nikow 2009-10-28 11:08:30

回答

6

这通常被称为“对象经纪”,并在这个领域一些Python包的列表可以通过浏览Python包索引here的对象经纪主题区域中找到。

这些最古老和最广泛使用的是Pyro

0

我不知道是什么DRB,但是从你给的资料很少, 它可能是这样的Perspective Broker in Twisted

介绍

假如你发现自己在控制 的线的两端:你有两个 程序,需要与其他每个 交谈,你可以使用任何你想要的协议 。如果你能在需要 对对方进行方法调用对象的角度来考虑你的 的问题, 然后有很好的机会,你可以使用 扭曲的角度代理协议 ,而不是试图鞋拔子您 需求变得像HTTP ,或者 执行另一个RPC 机制。

视角代理系统 (简称PB,产卵众多 三明治有关的双关语)是基于 几个核心概念:

系列化:采取非常随意 对象和类型,把他们转换为 字节块,通过 线发送它们,然后在另一端重新构造它们。通过仔细跟踪对象标识 ,序列化对象可以包含对其他对象的引用 ,并且远程副本仍然是 有用。

远程方法调用:做 东西本地对象和 造成一个方法来获得一个 远处的一个运行。本地对象是 ,称为RemoteReference,并通过运行其.callRemote 方法来执行某些操作。

2

Pyro做我认为你正在描述的(虽然我没有用drb)。

从网站:

火焰兵是短期的Python的远程对象。它是一个完全用Python编写的先进而强大的分布式对象技术系统,其设计非常易于使用。不用担心再次编写网络通信代码,使用Pyro时,您只需像往常一样编写Python对象。只需几行额外的代码,Pyro就会在您将对象分割到网络上的不同计算机上时处理对象之间的网络通信。所有的血腥套接字编程细节都照顾到了,你只需要调用一个远程对象的方法就好像它是一个本地对象!

+0

+1:pyro是优秀的 – 2009-10-28 10:00:55

+0

它是,但是,由于您首先发布并设法提供替代品列表,我不会因收到更多投票而饶恕您的答案! – mavnn 2009-10-28 10:42:25

相关问题