Руби имеет собственный протокол для передачи между клиентом и сервером druby
Рассмотрим кратенький экзампл из мануала:
Сервер:
require 'drb/drb'
# The URI for the server to connect to
URI="druby://:8787" #принимаем по всем интерфейсам на порт 8787
class TimeServer
def get_current_time
return Time.now
end
end
#Объект для экспорта
FRONT_OBJECT=TimeServer.new
$SAFE = 1 # Эвал нам не нужен, пока какой-то урод не прислал `rm -rf /`
#Стартуем сервер
DRb.start_service(URI, FRONT_OBJECT)
# И ждём пока drb не завершился
DRb.thread.join
Теперь код клиента:
require 'drb/drb'
# Куда цепляться
SERVER_URI="druby://localhost:8787"
#Стартуем сервер для ловли колобков (callback) ;)
DRb.start_service
timeserver = DRbObject.new_with_uri(SERVER_URI)
puts timeserver.get_current_time
И вуаля, получаем текущее время на сервереВ следующий раз я напишу о callbacks и передаче объектов