Далее запустите клиент:
$ python xmlrpc_client.py
Double 7 is 14
После этого сервер выведет на экран следующее:
127.0.0.1 -- [13/Feb/2014 20:16:23] "POST / HTTP/1.1" 200 -
Популярными методами передачи данных являются HTTP и ZeroMQ. Дру-
гими распространенными кодировками, помимо XML, являются JSON, Protocol
Buffers и MessagePack. Существует множество пакетов для работы с RPC, ис-
пользующих JSON, но многие из них либо не поддерживают Python 3, либо ка-
жутся несколько запутанными. Взглянем на кое-что другое — реализацию Python
Сети
337
RPC в рамках MessagePack (http://bit.ly/msgpack-rpc). Установить ее можно следу-
ющим образом:
$ pip install msgpack-rpc-python
Этот вызов также установит tornado, написанный на Python веб-сервер, осно-
ванный на событиях, который эта библиотека использует как транспорт. Как
обычно, рассмотрим сервер первым (msgpack_server.py):
from msgpackrpc import Server, Address
class Services():
def double(self, num):
return num * 2
server = Server(Services())
server.listen(Address("localhost", 6789))
server.start()
Методы класса Services доступны благодаря RPC. Рассмотрим клиент msgpack_
client.py:
from msgpackrpc import Client, Address
client = Client(Address("localhost", 6789))
num = 8
result = client.call('double', num)
print("Double %s is %s" % (num, result))
Для того чтобы запустить этот код, следуйте обычным инструкциям — запусти-
те сервер, запустите клиент, посмотрите на результат:
$ python msgpack_server.py
$ python msgpack_client.py
Double 8 is 16
fabric
Пакет fabric позволяет вам запускать удаленные или локальные команды, загру-
жать или закачивать файлы и работать от лица привилегированного пользователя
с помощью команды sudo. Пакет использует Secure Shell (SSH, зашифрованный
текстовый протокол, заменивший telnet) для того, чтобы запускать программы на
удаленных машинах. Вы пишете функции (на Python) в так называемом файле
fabric и указываете, как их нужно запустить — локально или удаленно. Когда вы
запустите эти файлы с помощью программы fabric (которая называется fab и не
является отсылкой к Beatles или моющему веществу), вы указываете, какие уда-
ленные машины нужно использовать и какие функции вызывать. Это проще, чем
примеры RPC, которые мы рассмотрели ранее.
На момент написания этой книги автор пакета fabric вносил в свое творение поправки, ко-