XMPP Core

From JaWiki (Jabber/XMPP wiki)
Revision as of 04:25, 2 September 2015 by 46.151.52.42 (Talk) (mtrvb nfgqu for 39% deoumu2)

Jump to: navigation, search

Информации мало или она отсутствует

Пока в данной статье мало информации. Приносим извинения.

Если вы хотите написать по теме, — сделайте это.

В соответствии с принятыми в данной вики договорённостями, правильное название этой статьи — Основы XMPP.
Для ссылок сюда с других страниц
ЯВики используйте название
Основы XMPP
На других ресурсах
можно также давать ссылку
http://jawiki.ru/XMPP_Core

Основы протокола XMPP изложены в документе RFC 3920: "Extensible Messaging and Presence Protocol (XMPP): Core".

Этот документ описывает обощённую архитектуру, схему адресации, термины "XML поток" и "XML станс", правила использования XML, требования к совместимым реализациям протокола, а также соображения по поводу интернациональности и безопасности.

Введение

Extensible Messaging and Presence Protocol (XMPP) — открытый, основанный на XML протокол для обмена в почти реальном времени сообщениями, передачи информации о пристуствии и сервисов вида "запрос-ответ". Базовый синтаксис и семантика были разработаны в сообществе Jabber, большей частью в 1999 году. В 2002, рабочая группа XMPP занялась разработкой адаптации протокола Jabber, которая была бы пригодна в качестве технологии IETF для обмена сообщениями и информацией о присутствии. Как результат этой работы, данный текст описывает основные возможности XMPP 1.0; расширения, необходимые для обмена сообщениями и информацией о присутствии, определенные в RFC 2779, определены в Extensible Messaging and Presence Protocol (XMPP): XMPP IM.

Обобщённая архитектура сети

Обзор

Хотя XMPP и не привязан к конкретной сетевой архитектуре, обычно он реализуется с архитектурой "клиент-сервер", где клиент соединяется с сервером по протоколу TCP, и соединения между серверами тоже производятся по протоколу TCP.

Примерная структура сети

Примерная структура сети XMPP включает в себя сервера, к которым подключаются клиенты. На схеме также показан транспорт в другую IM сеть. Синим цветом выделены соединения XMPP, черным - соединения сторонней сети.

Сервер

Сервер действует как уровень абстракции для соединений XMPP. Его основные обязанности:

  • управлять соединениями(сессиями) других сущностей, в форме XML потоков от/для авторизованных клиентов, других серверов и прочих сущностей.
  • маршрутизировать корректно адресованные XML стансы между указанными сущностями посредством XML потоков.

Большинство XMPP-совместимых серверов также выполняют обязанности по хранению данных клиентов (например, их контакт-листов в случае базирующихся на XMPP IM-приложений). В этом случае данные XML обрабатываются самим сервером, и никуда не перенаправляются.

Клиент

Большинство клиентов подключаются напрямую к серверам через TCP-соединения, и используют XMPP для получения доступа к возможностям сервера и связанных с ним сервисов. Одновременно могут быть подключены несколько ресурсов (например, обозначающих устройства или местоположения) одного клиента. Каждый ресурс должен иметь уникальный идентификатор ресурса (см. Схема адресации).

Рекомендуется для клиент-серверных соединений использовать порт 5222.

Транспорт

Транспорт - специальный сервис, работающий на стороне сервера, чья основная функция - обеспечивать перевод XMPP в протокол сторонней (не XMPP) IM сети и обратно. Примерами могут являться e-mail, Internet Relay Chat, SIMPLE, SMS, а также коммерческие IM-сети, такие как AIM, ICQ, MSN и Yahoo! IM. Коммуникации между транспортами и XMPP-серверами, а также между транспортами и сторонними серверами не описываются в этом документе.

Сеть

Поскольку каждый сервер идентифицируется его сетевым адресом, и поскольку сервер-серверные коммуникации являются прямым расширением клиент-серверного протокола, фактически система состоит из набора взаимодействующих серверов. Таким образом, <juliet@example.com> может обмениваться сообщениями, информацией о присутствии и др. с <romeo@example.net>. Этот шаблон знаком по протоколам вроде SMTP, которые пользуются стандартами сетевой адресации. Взаимодействие между серверами НЕОБЯЗАТЕЛЬНО. Если оно доступно, оно должно производиться посредством XML потоков через TCP соединения. Рекомендуемый порт для межсерверного взаимодействия 5269.

Схема адресации

Обзор

Сущность - что-то, что может быть воспринято как конечная точка сети и может обмениваться данными по протоколу XMPP. Все сущности имеют уникальный адрес, соотвествующий RFC 2396. По историческим причинам, идентификатор называется Jabber Identifier или JID. Корректный JID состоит из идентификатора домена (domain), идентификатора узла(node) и идентификатора ресурса(resource).

Синтакс JID в форме Бэкуса—Наура:

     jid             = [ node "@" ] domain [ "/" resource ]
     domain          = fqdn / address-literal
     fqdn            = (sub-domain 1*("." sub-domain))
     sub-domain      = (internationalized domain label)
     address-literal = IPv4address / IPv6address

Все JID'ы строятся по указанной схеме. Наиболее частое её применение - идентификация пользователя IM, сервера, к которому пользователь подключен, и ресурса пользователя в форме user@server/resource.

Тем не менее, могут существовать узлы, не являющиеся пользователями. Например, конкретная конференция на сервере конференций может быть адресована как room@server, а её участник может быть адресован как room@server/nick.

Каждая допустимая часть JID'а по длине не должна превышать 1023 байта. Таким образом, полная длина JID с учетом символов "@" и "/" не может превышать 3071 байт.

XML-потоки

Обзор

Две фундаментальные концепции делают возможным быстрый асинхронный обмен сравнительно маленькими порциями структурированной информации между сущностями: XML-потоки и XML-стансы. Эти термины определяются следующим образом:

XML-поток - это контейнер для обмена XML-элементами между любыми двумя сущностями в сети. Начало XML-потока однозначно обозначается открывающим XML-тегом <stream> (с необходимыми атрибутами и указанием пространства имён), а конец XML-потока однозначно обозначается закрывающим тегом </stream>. В течение жизни потока сущность, создавшая поток, может посылать неограниченное количество XML-элементов через поток, включая как элементы для создания потока (например, предложить использовать TLS (Секция 5) или SASL (Секция 6)), так и XML-стансы (элементы <message/>, <presence/> и <iq/>, с пространством имён по умолчанию). "Начальный поток" предлагается инициирующей сущностью (обычно клиентом или сервером) принимающей сущности (обычно серверу), и может рассматриваться как соответствующая инициатору потока "сессия". "Начальный поток" позволяет производить односторонюю передачу информации от инициатора к получателю; для передачи в обратном направлении принимающая сущность ДОЛЖНА предложить поток инициатору ("ответный поток").

XML-станс - дискретная семантическая единица структурированной информации, переcылаемая от одной сущности к другой посредством XML-потока. XML-станс существует как непосредственный потомок корневого элемента <stream/>.

ToDo: An XML stanza exists at the direct child level of the root <stream/> element and is said to be well-balanced if it matches the production 43 content of XML.

Начало любого XML-станса однозначно обозначается открывающим тегом на глубине 1 в XML-потоке (например, <presence>), и конец однозначно обозначается соответствующим закрывающим тегом на глубине 1 (например, </presence>). XML-станс МОЖЕТ содержать дочерние элементы (с соответствующими атрибутами, дочерними элементами и символьными данными), если это необходимо для передачи желаемой информации. Единственные XML-стансы, определенные здесь - элементы <message/>, <presence/> и <iq/>, с пространством имён по умолчанию, как описано в Секции 9; XML элементы, необходимые для инициации TLS (Секция 5), SASL (Секция 6), или Server Dialback (Секция 8) не являются XML-стансами.

В качестве примера рассмотрим сессию клиента с сервером. Для подключения к серверу клиент ДОЛЖЕН инициировать XML-поток, послав серверу открывающий тег <stream>, возможно, предварив его текстовым описанием версии XML и используемой кодировки (см. Изменения в текстовом описании (Секция 11.4) и Кодировка символов (Секция 11.5)). В зависимости от локальных правил и характеристик сервиса, серверу СЛЕДУЕТ ответить клиенту вторым XML-потоком, возможно, предварив его текстовым описанием. Как только клиент завершил приветствие SASL, он МОЖЕТ посылать неограниченное число XML-станс через поток любому получателю в сети. Когда клиент хочет закрыть поток, он просто посылает закрывающий тег </stream> (в другом варианте, поток может быть закрыть сервером), после чего клиенту и серверу СЛЕДУЕТ также прервать нижележащее соединение (обычно TCP). Те, кто привык думать об XML как о документе, могут рассматривать сессию клиента с сервером как два незакрытых XML документа: один от клиента к серверу, и один от сервера к клиенту. С этой точки зрения, корневой элемент <stream/>, может рассматриваться как основная сущность для обоих "документов", и оба этих "документа" строятся за счет аккумулирования XML-станс, присланных по соответствующему потоку. Тем не менее, такая точка зрения - не более чем соглашение; XMPP имеет дело не с документами, а с потоками и стансами.

В сущности, XML-поток действует как конверт для всех переданных XML-станс. Упрощенно его можно представить так:

   |--------------------|
   | <stream>           |
   |--------------------|
   | <presence>         |
   |   <show/>          |
   | </presence>        |
   |--------------------|
   | <message to='foo'> |
   |   <body/>          |
   | </message>         |
   |--------------------|
   | <iq to='bar'>      |
   |   <query/>         |
   | </iq>              |
   |--------------------|
   | ...                |
   |--------------------|
   | </stream>          |
   |--------------------|

Привязка к TCP

Хотя нет необходимости передавать XML поток через [TCP] соединение (например, две сущности могут подключаться друг к другу через другой механизм такой как [HTTP] туннелирование), данная спецификация определяет привязку XMPP только к TCP. В контексте клиент-серверного взаимодействия, сервер ДОЛЖЕН разрешать клиенту использование одного TCP соединения для отправки XML стансов от клиента к серверу и от сервера к клиенту. При взаимодействии сервер-сервер сервер ДОЛЖЕН использовать одно TCP соединение для стансов, посылаемых сервером пиру и другое TCP соединение (инициированное пиром) для стансов от пира к серверу, всего два TCP соединения.

b21hcyIgdGFyZ2V0PSJfYmxhbmsiPnd3dy5mYWNlYm9vay5jb20vR2VvcmdlLU0tVGhvbWFzPC9h <a href=http://www.michaelkors-bags.us.com/>michael kors bags</a> Since the 1990s, war in the Ogaden region of Ethiopia has claimed thousands of lives. The conflict between the government of Ethiopia and the insurgent Ogaden National Liberation Front has impoverished the communities of Ethiopia s Somali Regional State, swollen the refugee population in Kenya, and added to insecurity in the Somali territories of the Horn of Africa. Published by the Rift Valley Institute, author Tobias Hagmann analyses the evolution of the conflict, the changing balance of forces, and prospects for peace. u <a href=http://www.coachoutletstores.net.co/>Coah Handbags</a> According to the Home Office there have been 39,000 attempts to cross the Channel by migrants in the year to April 2015, more than twice the 18,000 attempts detected in the 12 months to April 2014. <a href=http://www.airmax-90nike.us.com/>nike factory store</a> But Rep. Jim Ott (R-Mequon), the other co-chair of the committee, said it was proper for lawmakers to oversee how elections are run. That project is still waiting for funds but Attivor says it would have an astronomical effect on the economy. <a href=http://www.oakleysunglasses.in.net/>oakley sunglasses outlet</a> Mary Gentile doesn t miss the back pain. f <a href=http://www.outletmoncler.us.com/>moncler online outlet</a> But it was the visitors who grabbed a sixth minute lead against the run of play. Owen was adjudged to have pushed Phil Caley inside the area and Wilson converted from the spot. <a href=http://www.uggbootsblackfriday.us.com/>Uggs Outlet</a> 1 CZK z No short policy such as this can spell out all possible instances of material or behavior that we might deem to be a violation of our publishing standards, and we reserve the right to remove any material posted to the site. <a href=http://www.outletmoncler.us.com/>moncler online outlet</a> "I will choose indefinite prison" <a href=http://www.louisvuittonoutlet.me/>Cheap Louis Vuitton</a> l did try once and we filmed it, the examiner was the most miserable bloke l have ever met. l forgot to take the handbrake off which he reminded me! <a href=http://www.oakleysunglasses.nom.co/>http://www.oakleysunglasses.nom.co</a> We are now in the season of The Great Escape. http://www.outletmichael-kors.us.com However, he wrote in one of his recent columns for trade magazine Campaign Middle East that while mobile accounts for 45 percent of media time across the industry, it generates just 2 percent of advertising revenue. In terms of monetising mobile, nobody has been able to crack it. And when I ask Saber how SMG will do it, he is stumped: 鈥淢obile lags behind in advertising revenue. It is a major challenge.鈥?<a href=http://www.cheapuggssale.us.org/>Uggs Outlet</a> Transurban applies steadily increasing tolls to steadily increasing traffic on a network of urban toll roads that it steadily upgrades. Itextended that network last year with the $7 billion purchase of the bulk of Brisbane's tollway system and the acquisition of Sydney's Cross City Tunnel.It is a city-centric company,and the housing boom in Australia's two biggest cities, whichlow interest rates have been feeding, hasbeen a key revenue and profit driver. z <a href=http://www.airmax-90nike.us.com/>cheap nike sneakers</a> The second half followed a similar pattern and the game was all over as a contest within five minutes of the restart when Ryan got the goal his performance deserved; finishing off the fine work of Holmes and Mike Layfield. <a href=http://www.michaelkorsoutletsonlineco.com.co/>Michael Kors Outlet</a> Despite being home to some ofworld's greatest attractions, including like theKremlin and Bolshoi Theater, Moscow has not attracted huge numbers offoreign tourists. Verizon IndyCar Series <a href=http://www.rosherunshoes.com.co/>nike roshe run</a> Focus on more than money Weiss became a member of the Spooner Musky Club while a DNR pilot in 1980. For much of the next two decades, he paid for Poquette's club membership. <a href=http://www.canadagooseoutlet.net.co/>http://www.canadagooseoutlet.net.co</a> Angie remarked that the schools should think of running summer vacation from July 1 to Oct. 1 to cut out the sometimes overly chilly start to summer and enjoy the (at times) spectacular weather of September. FRI 9:00am - 6:00pm <a href=http://www.canadagooseoutlet.site/>canada goose outlet</a> Increasing food insecurity in Shan e Moors manager Jason Ainsley said; 鈥淲e are really looking forward to the game against a very good Salford team, who after the game against us at the Brewery Field early in the season will know that they're going to be in for a real tough test. <a href=http://www.boots-uggs.us.com/>Uggs Outlet</a> I'm a vocal cord specialist, he said. I specialize in airway and swallowing disorders. One-minute chat about summer. <a href=http://www.oakleyonlinesunglasses.us.com/>oakley sunglasses outlet</a> Contact Daniel Bice at (414) 224-2135 or . Follow him on Twitter @ or on Facebook at . w <a href=http://www.oakleysunglasses.in.net/>oakley sunglasses store</a> 鈥淪adly, many employers fail to act to protect their workers from the consequences of exposure to asbestos, despite knowing how dangerous it is, and we hope that by issuing court proceedings we can secure justice for Colin and get the answers he so desperately needs.鈥?<a href=http://www.coachoutletstoreonline.me/>Coach Factory </a> Wild Threats a This included sending patients to other hospitals in the district, including Sutherland Hospital, she said. <a href=http://www.rosherunshoes2015.us.com/>Nike Roshe Run Shoes</a> Last week, it was the Wensleydale Show which featured. The guests photographed included a mayoress, a vicar, an acclaimed plastic surgeon, a colonel, a newspaper editor, a lord of the manor and big bike ride promoter Gary Verity. y Yet, last year, an official survey found that one in eight patients in the North-East and North Yorkshire are unable to book a slot at a surgery when they need one. <a href=http://www.canadagooseoutlet.net.co/>canada goose jackets</a> and blew the damn thing up." <a href=http://www.oakleysunglasses.nom.co/>oakley sunglasses outlet</a> In March, Google began to aggregate all the information it acquires about its users who are logged in to Google services into a single, unified pool of data. <a href=http://www.oakleyglasses.us.org/>http://www.oakleyglasses.us.org</a> Pandora internet radio has an estimated 80 million active users, but less than 5 million are understood to be on paid subscriptions.Apple has an estimated 12 million users, all on free trial, since it launched on June 30. t <a href=http://www.michaelkors-bags.us.com/>Michael Kors Handbags</a> However, last December she was rushed to hospital in agony, as the tumour had perforated her bowel, requiring emergency surgery. This major setback reduced her predicted survival time, she recalls. <a href=http://www.michaelkorsoutlet.com.co/>http://www.michaelkorsoutlet.com.co</a> The claim that Enbridge made a "legislative end run" around Dane County's permitting process is untrue. Enbridge was not involved in drafting of the insurance provision nor did the company support or advocate for it as part of the state budget. You may not post copyrighted material from another publication. (Link to it instead, using a headline or very brief excerpt.) <a href=http://www.michaelkorsbags.nom.co/>Michael Kors Outlet</a> nn/ds/cb g <a href=http://www.rosherunshoes2015.us.com/>nike roshe run</a> The Grassington club won 15-12 at home to Blaydon, who will be anxious to end a poor run which has brought one win in the last five games. <a href=http://www.ArizonaCardinalsJersey.us.com/>Cheap MLB Jerseys</a> "What he'd done, ain't no way right," Adrian Taylor told CNN affiliate KTVT. "But to shoot an unarmed man? You're a police officer, you're trained to take down men with your hands. You have your Tasers, you have your clubs, whatever there is. Unarmed, a 19-year-old -- and you shoot to kill?"

Атрибуты потока

Поддержка версий

Указание пространства имён

Возможности потока

Ошибки потока

Правила

Синтаксис

Предпоределенные условия

Специфические условия приложения

Упрощенные примеры потоков

Использование TLS

Использование SASL

Назначение ресурса

Server Dialback

XML стансы

Правила обработки XML стансов на сервере

Использование XML в протоколе XMPP

Требования к совместимости с Основами

Соображения по поводу интернациональности

Соображения по поводу безопасности

Соображения IANA

Примечания

Различия между Основами Jabber и XMPP

Ссылки