В UniPhone API применяются две модели взаимодействия между участниками:
В модели PubSub отправители и получатели сообщений не связаны друг с другом напрямую. Отправитель предоставляет информацию в абстрактной «теме» (topic), а получатели принимают сообщения объявив о своей заинтересованности к соответствующей теме. Направление потока сообщений может быть один-ко-многим, многие-к-одному и многие-ко-многим. Отправителя обычно называют издателем (publisher), а получателя - подписчиком (subscriber).
Ниже перечислены типы объектов, используемых в модели PubSub.
Допускается публикация сообщений от нескольких издателей в одной теме. Например, при наличии в инфраструктуре организации двух IP АТС, сообщения могут доставляться с обеих через единый информационный канал.
Модель RPC подразумевает получение интересующей информации по средством обращения к ее поставщику. Выполнение запроса и его обработка выполняется асинхронно. Сервер UniPhone выступает посредником при вызове удаленной процедуры и возврате результата выполнения.
В вызывающей удаленную процедуру программе (Caller) подготавливается запрос (Response). Вызов процедуры выполняется через посредника (RPC Dealer). Посредник передает запрос в вызываемую программу (Callee) передает управление вызываемой процедуре (doSomething). По окончанию выполнения процедура возвращает ответ (Response). Ответ передается в процедуру, которую вызывающую программа определила для его обработки (onComplete).
Удаленная процедура должна быть предварительно зарегистрирована на сервере UniPhone. Не допускается двойная регистрация процедур с одним именем.
UniPhone API использует URI формат для именование ресурсов включая «темы», зарегистрированные процедуры и ошибки. Все они образуют единую, глобальную иерархию имен:
Например, обозначение ресурса call как «темы» в пространстве имен провайдера выглядит так:
/provider.topics.call