SIMPLE (протокол)

SIMPLE (Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions) — набор профилей и расширений стандарта SIP, предназначенных для систем мгновенной передачи сообщений (IM) и уведомления о присутствии (Presence). Как и XMPP, SIMPLE, в отличие от подавляющего числа существующих протоколов для передачи мгновенных сообщений и уведомления о присутствии, является открытым стандартом. Также одной из важных особенностей протокола является возможность использования списков присутствия (presence lists), взятых из других приложений.

В SIMPLE SIP применяется для:
 отправки коротких сообщений, аналогичных SMS;
 установления сеанса обмена мгновенными сообщениями в реальном времени для двоих и более участников списка присутствия;
 для обновления статуса присутствия участников списка присутствия.

В 2006 году IETF поручил рабочей группе под названием SIMPLE Working Group определить набор профилей и расширений стандарта SIP, предназначенных для системы мгновенной передачи сообщений и уведомления о присутствии. В документах RFC: RFC 2778  и RFC 2779 , RFC 3428  группа определила модель её функционирования и основные требования к системе мгновенной передачи сообщений и уведомления о присутствии.

Ключевые компоненты протокола уже успели получить достаточно широкое распространение, наиболее известен Microsoft Windows Messenger .

SIMPLE – не единственный IM-протокол, разработанный внутри IETF. Например, таковым является XMPP.

Техническое описание

Присутствие 
Спецификации присутствия протокола SIMPLE можно разбить на:

Механизм ядра протокола. Он обеспечивает фактические расширения SIP для подписок, уведомлений и публикаций. RFC 3265 определяет методы SUBSCRIBE и NOTIFY. Метод SUBSCRIBE позволяет подписываться на событие на сервере, сервер отвечает с помощью метода NOTIFY, всякий раз, когда происходит событие. RFC 3856 определяет, каким образом использовать SUBSCRIBE/NOTIFY для определения присутствия. Определены две модели: модель end-to-end — каждый Пользовательский Агент самостоятельно осуществляет подписку на информацию о присутствии — и централизованная модель. Последняя вводит понятие сервера присутствия. Все подписки обрабатываются этим сервером. Сообщение PUBLISH (RFC 3903) позволяет Пользовательским Агентам сообщать серверу присутствия о состоянии их подписки.

Документы присутствия. Информация о присутствии кодируется в документы XML, которые переносятся в теле соответствующих SIP-сообщений. RFC 3863 и RFC 4479 описывают эту процедуру, RFC 4480 (RPID), RFC 4481, RFC 4482 (CPID) и другие — описывают содержание и форматы документов присутствия.

Privacy, policy and provisioning. Если используется централизованная модель, Пользовательские Агенты нуждаются в способе определить, кто может подписаться и на какую часть информации об их присутствии. RFC 4745 и RFC 5025 определяют структуру для политики авторизации, контролируя доступ к определенным данным приложения. Протокол XCAP (RFC 4825), поддерживаемый HTML, позволяет Пользовательским Агентам сообщать свои правила определения присутствия серверу XCAP, который контролирует объём информации, отображаемой сервером присутствия. RFC 3857 и RFC 3858 определяют событие «watcher info». Пользовательские Агенты могут подписаться на это событие, чтобы быть проинформированными о том, кто подписывается на получение информации об их присутствии.

IM 
SIP определяет два режима передачи мгновенных сообщений:

Страничный режим использует SIP-метод MESSAGE, как определено в RFC 3428. Этот способ не устанавливает сессий.

Режим Сессии. Протокол Message Session Relay (Реле Сессий Сообщений) (RFC 4975, RFC 4976) определяет текстовый протокол, используемый для обмена содержимым произвольного размера между пользователями в любое время. Сессия MSRP настраивается путём обмена определенной информацией, такой, как MSRP URI, внутри SDP- и SIP-сигнализации.

См. также 
Text over IP

Ссылки 
 Методы SIMPLE 
 Проблемы защиты мгновенной передачи сообщений 
 Мультимедийный коммуникатор 
 Коммуникатор, поддерживающий SIMPLE

Протоколы обмена мгновенными сообщениями