Ответ на "ответ" ОП ...
Способ сопоставить «продвижение сервера» с классической моделью RPC (например, реализованной в CORBA, SOAP, ICE, RMI и т. Д.) Состоит в том, чтобы изменить роль так, чтобы вещь, которую вы считаете своим сервером, заполнила Роль клиента в RPC. Узор такой:
Ваш клиент звонит на ваш сервер, передавая дескриптор объекта обратного вызова.
Сервер запоминает объект обратного вызова и возвращает.
Клиент идет спать (или делает что-то еще ...)
Позже сервер хочет отправить некоторые данные.
Сервер вызывает RPC «push» для объекта обратного вызова, передавая данные.
Клиент получает вызов / запрос на объект обратного вызова, что-то делает с данными и отвечает.