Computerworld Россия

Разрабатываемый для унификации систем IM стандарт может стать основой для приложений корпоративного документооборота

Системы передачи мгновенных сообщений (IM) прочно вошли в нашу жизнь. Они позволяют общаться в режиме реального времени, передавать друг другу файлы и оставлять сообщения пользователю, не подключенному в текущий момент к сети. Первой такой системой стала ICQ (которая и по сей день активно развивается), а затем появились ее последователи.

Протоколы, используемые при общении с помощью этих систем, не раскрывались, но довольно скоро возникла потребность в создании открытых стандартов на IM-системы. Тогда группа энтузиастов принялась за разработку универсального открытого протокола передачи сообщений, который получил название Jabber.

Собственно, Jabber — не только стандарт транспортировки мгновенных сообщений, но и технология передачи структурированной информации в формате XML. Архитектура Jabber-сетей предполагает наличие серверов, которые могут обмениваться друг с другом сообщениями, клиентов, подключающихся к серверам для получения адресованных им сведений, и шлюзов к другим IM-системам. На серверы возлагается задача идентификации клиентов, так что ни один из них не сможет оказаться анонимным. Предусмотрены также механизмы взаимной аутентификации серверов, шифрования информации и установки защищенных соединений, что не позволяет злоумышленникам создавать серверы-фальшивки. Именно этим Jabber отличается от классической электронной почты: хотя архитектурно они схожи, по функциональности Jabber значительно богаче.

JABBER-СЕТЬ может устанавливать прозрачные шлюзы с другими системами класса IM

Базовые технологии Jabber получили статус стандарта IETF RFC3920. В частности, он определяет базовый протокол передачи и представления XML-документов — Extensible Messaging and Presence Protocol (XMPP). В этом же протоколе определены правила идентификации клиентов и их серверных ресурсов, для чего разработан формат <имя@домен/ресурс>, где «имя» — идентификатор пользователя на сервере, «домен» — доменное имя Jabber-сервера, а «ресурс» — пользовательское приложение, которому будут переданы данные. Таким образом, в способе идентификации Jabber-клиентов объединены традиции как электронной почты (используется символ @), так и Web (применяются имена ресурсов, которые могут представлять собой иерархические директории).

Три последующих документа (RFC3921—RFC3923) определяют механизмы работы приложений поверх протокола XMPP. Так, RFC3921 устанавливает правила использования XMPP для построения IM-сети и принцип представления XML-информации, передаваемой по этой сети. Документ RFC3922 задает соответствие между принятыми в Jabber протоколами передачи сообщений и разрабатываемой в рамках IETF спецификацией на IM-сеть, которая называется Common Presence and Instant Messaging (CPIM). Наконец, RFC3923 определяет принципы идентификации и шифрования отдельных объектов Jabber-сети. Обязательная защита всех компонентов Jabber-сети кардинально отличает новую технологию передачи сообщений от многих других, принятых IETF.

Перечисленные спецификации не ограничивают возможности Jabber, а лишь определяют базовые принципы построения Jabber-инфраструктуры. Поверх нее можно выстраивать собственные протоколы передачи структурированной информации и, что особенно важно, — взаимодействия приложений. В сообществе Jabber-разработчиков расширением возможностей Jabber занимается группа Jabber Enhancement Proposals (JEP), которая по своим принципам работы похожа на IETF. Любая компания, входящая в эту группу, может определить (а затем использовать) собственный стандарт взаимодействия конкретных приложений через Jabber-сеть.

Хотя в IETF стандарт принят лишь несколько месяцев назад, для него уже существуют реализации всех компонентов архитектуры — клиентов, серверов и даже межсистемных шлюзов. Дело в том, что первое программное обеспечение для поддержки протокола разработал еще в 1998 году его создатель Джереми Миллер. На сегодняшний день компоненты Jabber имеются как в коммерческом, так и в свободно распространяемом программном коде, причем они написаны на разных языках программирования — Java, Си, Python и др. Разработчики могут использовать их в своих проектах, строить на их основе всевозможные приложения и системы.

Одним из вариантов применения этого протокола может быть интеграция различных приложений, которую сейчас принято проводить с использованием формата XML. Однако применяемый для данных целей протокол транспортного обмена HTTP слишком прост и не всегда отвечает требованиям приложений. А вот стек протоколов Jabber изначально ориентирован на мгновенную передачу сообщений и данных в формате XML.

Другой областью применения Jabber являются системы документооборота, которые, как правило, задействуют стандарты электронной почты либо закрытые протоколы. Оба подхода имеют свои недостатки, но технология Jabber, обеспечивающая открытые интерфейсы, систему защищенного хранения и передачи документов, а также XML-структуру отображения информации, сочетает в себе достоинства этих методов. Если сейчас Jabber используется по прямому назначению (для создания открытой сети передачи мгновенных сообщений), то в будущем возможно появление на ее основе корпоративных бизнес-приложений.