Содержание

Модель взаимодействия

В UniPhone API применяются две модели взаимодействия между участниками:

Publish & Subscribe

В модели PubSub отправители и получатели сообщений не связаны друг с другом напрямую. Отправитель предоставляет информацию в абстрактной «теме» (topic), а получатели принимают сообщения объявив о своей заинтересованности к соответствующей теме. Направление потока сообщений может быть один-ко-многим, многие-к-одному и многие-ко-многим. Отправителя обычно называют издателем (publisher), а получателя - подписчиком (subscriber).

Типы объектов модели

Ниже перечислены типы объектов, используемых в модели PubSub.

Допускается публикация сообщений от нескольких издателей в одной теме. Например, при наличии в инфраструктуре организации двух IP АТС, сообщения могут доставляться с обеих через единый информационный канал.

Remote Procedure Calls

Модель RPC подразумевает получение интересующей информации по средством обращения к ее поставщику. Выполнение запроса и его обработка выполняется асинхронно. Сервер UniPhone выступает посредником при вызове удаленной процедуры и возврате результата выполнения.

Принцип работы

В вызывающей удаленную процедуру программе (Caller) подготавливается запрос (Response). Вызов процедуры выполняется через посредника (RPC Dealer). Посредник передает запрос в вызываемую программу (Callee) передает управление вызываемой процедуре (doSomething). По окончанию выполнения процедура возвращает ответ (Response). Ответ передается в процедуру, которую вызывающую программа определила для его обработки (onComplete).

Удаленная процедура должна быть предварительно зарегистрирована на сервере UniPhone. Не допускается двойная регистрация процедур с одним именем.

Именование ресурсов

UniPhone API использует URI формат для именование ресурсов включая «темы», зарегистрированные процедуры и ошибки. Все они образуют единую, глобальную иерархию имен:

Например, обозначение ресурса call как «темы» в пространстве имен провайдера выглядит так:

/provider.topics.call