Есть ли какой-нибудь Python-модуль, похожий на Distributed Ruby

Я новичок в Python. Просто хочу знать, есть ли в Python какой-либо модуль, похожий на ruby's drb? Как клиент может использовать объект, предоставленный сервером drb?

6 ответов

Решение

Обычно это называется "посредничество объектов", и список некоторых пакетов Python в этой области можно найти, просматривая область темы "Посредничество объектов" в индексе пакетов Python здесь.

Самым старым и наиболее широко используемым из них является пиро.

Pyro делает то, что, по-моему, вы пишете (хотя я не использовал drb).

С веб-сайта:

Pyro - это сокращение от PYthon Remote Objects. Это продвинутая и мощная система технологии распределенных объектов, полностью написанная на Python, которая очень проста в использовании. Никогда больше не беспокойтесь о написании кода сетевого взаимодействия, при использовании Pyro вы просто пишете свои объекты Python, как обычно. С помощью всего лишь нескольких строк дополнительного кода Pyro заботится о сетевом взаимодействии между вашими объектами, когда вы разделяете их на разные машины в сети. Все детали программирования сокетов Gory позаботились, вы просто вызываете метод на удаленном объекте, как если бы это был локальный объект!

Стандартный многопроцессорный модуль может делать то, что вы хотите.

Для параллельной обработки и распределенных вычислений я использую параллельный питон.

Вы смотрели на execnet?

http://codespeak.net/execnet/

Я понятия не имею, что такое drb, но из небольшой информации, которую вы предоставили, это может быть что-то вроде Perspective Broker в Twisted

Вступление

Предположим, вы контролируете оба конца провода: у вас есть две программы, которые должны общаться друг с другом, и вы можете использовать любой протокол, который хотите. Если вы можете рассматривать вашу проблему с точки зрения объектов, которые должны вызывать методы друг друга, то есть большая вероятность, что вы можете использовать протокол Twisted Perspective Broker вместо того, чтобы пытаться объединить ваши потребности в нечто вроде HTTP или реализовать еще один RPC механизм.

Система Perspective Broker (сокращенно PB, порождающая множество каламбурных каламбур) основана на нескольких основных концепциях:

сериализация: взятие довольно произвольных объектов и типов, превращение их в кусок байтов, отправка их по проводам, а затем воссоздание их на другом конце. Внимательно отслеживая идентификаторы объектов, сериализованные объекты могут содержать ссылки на другие объекты, и удаленная копия все равно будет полезна.

вызовы удаленного метода: выполнение чего-либо для локального объекта и запуск метода на удаленном объекте. Локальный объект называется RemoteReference, и вы что-то делаете, запустив его метод.callRemote.

Другие вопросы по тегам