Найти - Пользователи
Полная версия: вызов метода класса/объекта по сети
Начало » Python для экспертов » вызов метода класса/объекта по сети
1
unel
необходимо выполнить следующие действия:

0. (клиент)
запросить у сервера ссылку на объект класса X
link = server.get(“X”)

1. (сервер)
создать объект класса X, ссылку на него и отослать клиенту
obj_x = X()
link_x = obj_x
self.sendToClient(clientID, link_x)

2. (клиент)
получив ссылку на объект, вызвать какую-либо функцию в этой ссылке
link.doSomething()

3. (сервер)
выполнить функцию в объекте, вызов которой произошёл на стороне клиента и вернуть клиенту результат
result = obj_x.doSomething()
self.sendToClient(cientID, result)


есть ли готовые библиотеки для реализации данных операций? или всё прийдётся писать самому?
если всё же самому, то как лучше это организовать?
evgenyl
Под линуксом в пределах одной машины есть шина D-BUS очень производительная с эвентами, с такими возможностями.
Технологий много, у всех свои плюсы и минусы, SOAP например, поищи в гугле RPC.
evgenyl
хотя имхо самому делать не дольше чем разобраться в любой из подобных либ :)
PooH
Наверно самый простой вариант PyRO
Viper
RPyC
slivlen
evgenyl
хотя имхо самому делать не дольше чем разобраться в любой из подобных либ smile
А ты случайно программированием на пыхе не увлекаешся? =)
Сильно сомневаюсь, технологии типа SOAP и CORBA годами разрабатывались. И прежде чем делать свой велосипед, все равно придется изучить хотябы некоторые реализации rpc.
evgenyl
Не увлекаюсь, но пишу по работе, очень крупный проект, отвратительный язык, не стоит колечить себе мозг :)
Для его задачи, тут нет ничего сложного, вы просто недооцениваете свои силы…
У SOAP и CORBA только один плюс это возможность обращаться к сервисам с гетерогенных языков, захотел на C захотел на делфи, в имхо остальном одни минусы.
slivlen
evgenyl
Для его задачи, тут нет ничего сложного, вы просто недооцениваете свои силы…
Если этим протоколом он будет пользоваться только сам, то возможно да.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB