Difference between revisions of "XMPP Core"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(Перевод)
Line 1: Line 1:
{{stub}}
+
hokecacu http://walozeqo.site88.net/uamejlgm.html ������� ������ �������� 3gp http://viqusiqu.web44.net/ankrido.html ������� hltv proxy http://megatof.web44.net/aaatzyoe.html ������� ���� ������� http://nevifefu.web44.net/czaekgoa.html ������� realtek hd audio output rus1 http://saxupoya.comeze.com/speafiep.html ������� ������ ������� ������ �������� http://bedarim.comeze.com/qvpfaoy.html ������� hurricanes suns http://lipovepo.web44.net/fnubvuzt.html http://megatof.web44.net/cwyiediy.html crfxfnm kp500.flb http://saxupoya.comeze.com/adtacivb.html ������� ���� ��� ����� 5130 � 2 http://viqusiqu.web44.net/iurcavi.html ������� �� ��� �� 1.6 v431 http://kimapeq.freeiz.com/ucusjk.html ������� ���������� �� ������� nokia 52501 http://riguqag.site88.net/iurxati.html ������� ��������� ����� ���������� ���� http://lexefiq.comeze.com/kdaeys.html ������� ���� http://lijexeka.comeze.com/dujyoay.html ������� filezilla portable ������� http://lexefiq.comeze.com/edrueyta.html ������� usb flash driver x641 http://lipovepo.web44.net/yapani.html ������� korn http://yujiqite.site88.net/oeshaau.html ������� ea download manager 2010 http://walozeqo.site88.net/eyuykhe.html ������� ����� �� ������� 2.31 http://goyayowe.site88.net/eaozvja.html ������� ���� ��������� �����1 http://lexefiq.comeze.com/irvppav.html ������� we found love ft. calvin harris http://lijexeka.comeze.com/oxfyanik.html ������� ��� ������ �� ����� ������ http://jepudebe.web44.net/ogmjdqou.html ������� symbian http://bedarim.comeze.com/ytmcdsdl.html ������� pro100 4.42 portable ���������� http://bapenaso.comeze.com/jistvs.html ������� windows xp sp3 2011 v11.01 �� ������� http://ferofesi.web44.net/ipesi.html ������� dll binkw32.dll http://ferofesi.web44.net/eyapodep.html ������� ����� �� ������� ������� �3011 http://saxupoya.comeze.com/iciszj.html ������� ������� ��� ����� http://ferofesi.web44.net/ulyoo.html ������� ��� ������ �� ����� ������ http://wukoziwo.site88.net/eokukuq.html ������� ����� ��� 3.3.5 http://saxupoya.comeze.com/yypoor.html ������� ventrilo 2.1.4 http://ferofesi.web44.net/pjmyyj.html ������� ������� �� �������� http://yujiqite.site88.net/veoiyj.html ������� zet 8 crack http://jepudebe.web44.net/damreaig.html ������� adobe acrobat 9 professional http://nevifefu.web44.net/pnleoayq.html ������� fraps rus ������ ������ http://goyayowe.site88.net/clzyajio.html ������� qip 2010 build 4301 http://megatof.web44.net/ueoifid.html ������� pc studio http://xiwepuvu.web44.net/iifgttc.html ������� ������� http://walozeqo.site88.net/basygyoo.html ������� ���� ���������������� java � ����� netbeans http://vizumax.web44.net/jtphzuvk.html ������� windows 7 ultimate rus x86 http://riguqag.site88.net/bfoydr.html ������� ������� ����� 2 ��� ������� http://rifanuy.site88.net/gbhzsmef.html ������� ����� ������ http://lijexeka.comeze.com/woleo.html ������� ���� ����� �� ������� ����� 63001 http://xiwepuvu.web44.net/hkobeypu.html ������� microsoft word 2007 ��� �����������1 http://yujiqite.site88.net/yoeko.html ������� ��������� ��� �������� ��� �������� http://megatof.web44.net/vcoeisz.html ������� ��� ������ �2 http://goyayowe.site88.net/uioky.html ������� ����� �������� - ����� �� ����� �������1 http://xiwepuvu.web44.net/leybddca.html ������� ����� 3 ��� ��� http://yujiqite.site88.net/oezocgg.html ������� samp ��� ��� ��� ������ http://lijexeka.comeze.com/uagguuy.html ������� cs 1.6 ������� ��� windows 7 http://jepudebe.web44.net/uiwgleu.html ������� jre 1.5.0
{{RealTitle|Основы XMPP}}
+
 
+
Основы протокола [[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): [[Instant Messaging and Presence|XMPP IM]].
+
 
+
== Обобщённая архитектура сети ==
+
 
+
=== Обзор ===
+
Хотя XMPP и не привязан к конкретной сетевой архитектуре, обычно он реализуется с архитектурой "клиент-сервер", где клиент соединяется с сервером по протоколу TCP, и соединения между серверами тоже производятся по протоколу TCP.
+
 
+
[[Image:Xmpp_core_network.PNG|Примерная структура сети]]
+
 
+
Примерная структура сети XMPP включает в себя [[Сервер|сервера]], к которым подключаются [[Клиент|клиенты]]. На схеме также показан транспорт в другую [[IM]] сеть. Синим цветом выделены соединения XMPP, черным - соединения сторонней сети.
+
 
+
=== Сервер ===
+
[[Сервер]] действует как уровень абстракции для соединений XMPP. Его основные обязанности:
+
* управлять соединениями(сессиями) других [[Сущность|сущностей]], в форме XML потоков от/для авторизованных клиентов, других серверов и прочих сущностей.
+
* маршрутизировать корректно адресованные XML [[Станс|стансы]] между указанными сущностями посредством XML потоков.
+
 
+
Большинство XMPP-совместимых серверов также выполняют обязанности по хранению данных клиентов (например, их [[Ростер|контакт-листов]] в случае базирующихся на XMPP [[IM]]-приложений). В этом случае данные XML обрабатываются самим сервером, и никуда не перенаправляются.
+
 
+
=== Клиент ===
+
Большинство клиентов подключаются напрямую к серверам через {{w|TCP}}-соединения, и используют XMPP для получения доступа к возможностям [[Сервер|сервера]] и связанных с ним [[Сервис|сервисов]]. Одновременно могут быть подключены несколько [[Ресурс|ресурсов]] (например, обозначающих устройства или местоположения) одного клиента. Каждый ресурс должен иметь уникальный идентификатор ресурса (см. [[XMPP Core#Схема адресации|Схема адресации]]).
+
 
+
Рекомендуется для [[C2S|клиент-серверных соединений]] использовать порт 5222.
+
 
+
=== Транспорт ===
+
Транспорт - специальный сервис, работающий на стороне сервера, чья основная функция - обеспечивать перевод [[XMPP]] в протокол сторонней (не XMPP) [[IM]] сети и обратно. Примерами могут являться [[Gateway:SMTP|e-mail]], [[Gateway:IRC|Internet Relay Chat]], [[SIMPLE]], [[Gateway:SMS|SMS]], а также коммерческие IM-сети, такие как [[Gateway:AIM|AIM]], [[Gateway:ICQ|ICQ]], [[Gateway:MSN|MSN]] и [[Gateway:Yahoo|Yahoo! IM]]. Коммуникации между транспортами и XMPP-серверами, а также между транспортами и сторонними серверами не описываются в этом документе.
+
 
+
=== Сеть ===
+
Поскольку каждый сервер идентифицируется его сетевым адресом, и поскольку [[S2S|сервер-серверные коммуникации]] являются прямым расширением [[C2S|клиент-серверного протокола]], фактически система состоит из набора взаимодействующих серверов. Таким образом, <juliet@example.com> может обмениваться сообщениями, информацией о присутствии и др. с <romeo@example.net>. Этот шаблон знаком по протоколам вроде {{w|SMTP}}, которые пользуются стандартами сетевой адресации. Взаимодействие между серверами НЕОБЯЗАТЕЛЬНО. Если оно доступно, оно должно производиться посредством XML потоков через TCP соединения. Рекомендуемый порт для межсерверного взаимодействия 5269.
+
 
+
== Схема адресации ==
+
 
+
=== Обзор ===
+
Сущность - что-то, что может быть воспринято как конечная точка сети и может обмениваться данными по протоколу XMPP.  
+
Все сущности имеют уникальный адрес, соотвествующий RFC 2396. По историческим причинам, идентификатор называется Jabber Identifier или [[JID]].
+
Корректный JID состоит из идентификатора домена (domain), идентификатора узла(node) и идентификатора ресурса(resource).
+
 
+
Синтакс JID в [[w:Форма Бэкуса — Наура|форме Бэкуса—Наура]]:
+
 
+
      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, сервера, к которому пользователь подключен, и ресурса пользователя в форме <tt>user@server/resource</tt>.
+
 
+
Тем не менее, могут существовать узлы, не являющиеся пользователями. Например, конкретная конференция на [[MUC|сервере конференций]] может быть адресована как <tt>room@server</tt>, а её участник может быть адресован как <tt>room@server/nick</tt>.
+
 
+
Каждая допустимая часть JID'а по длине не должна превышать 1023 байта. Таким образом, полная длина JID с учетом символов "@" и "/" не может превышать 3071 байт.
+
 
+
== XML-потоки ==
+
 
+
=== Обзор ===
+
Две фундаментальные концепции делают возможным быстрый асинхронный обмен сравнительно маленькими порциями структурированной информации между сущностями: [[XML-поток|XML-потоки]] и [[Станс|XML-стансы]].
+
Эти термины определяются следующим образом:
+
 
+
'''XML-поток''' - это контейнер для обмена XML-элементами между любыми двумя сущностями в сети.
+
Начало XML-потока однозначно обозначается открывающим XML-тегом <tt>&lt;stream&gt;</tt> (с необходимыми атрибутами и указанием пространства имён), а конец XML-потока однозначно обозначается закрывающим тегом <tt>&lt;/stream&gt;</tt>.
+
В течение жизни потока сущность, создавшая поток, может посылать неограниченное количество XML-элементов через поток, включая как элементы для создания потока (например, предложить использовать [[TLS]] (Секция 5) или [[SASL]] (Секция 6)), так и [[Станс|XML-стансы]] (элементы <tt>&lt;message/&gt;</tt>, <tt>&lt;presence/&gt;</tt> и <tt>&lt;iq/&gt;</tt>, с пространством имён по умолчанию).
+
"Начальный поток" предлагается инициирующей сущностью (обычно клиентом или сервером) принимающей сущности (обычно серверу), и может рассматриваться как соответствующая инициатору потока "сессия".
+
"Начальный поток" позволяет производить односторонюю передачу информации от инициатора к получателю; для передачи в обратном направлении принимающая сущность ДОЛЖНА предложить поток инициатору ("ответный поток").
+
 
+
'''XML-станс''' - дискретная семантическая единица структурированной информации, перемылаемая от одной сущности к другой посредством XML-потока.
+
XML-станс существует как непосредственный потомок корневого элемента <tt>&lt;stream/&gt;</tt>.  
+
{{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 [http://tools.ietf.org/html/rfc3920#ref-43 43] content of [http://tools.ietf.org/html/rfc3920#ref-XML XML].}}
+
Начало любого XML-станса однозначно обозначается открывающим тегом на глубине 1 в XML-потоке (например, <tt>&lt;presence&gt;</tt>), и конец однозначно обозначается соответствующим закрывающим тегом на глубине 1 (например, <tt>&lt;/presence&gt;</tt>).
+
XML-станс МОЖЕТ содержать дочерние элементы (с соответствующими атрибутами, дочерними элементами и символьными данными), если это необходимо для передачи желаемой информации.
+
Единственные XML-стансы, определенные здесь - элементы <tt>&lt;message/&gt;</tt>, <tt>&lt;presence/&gt;</tt> и <tt>&lt;iq/&gt;</tt>, с пространством имён по умолчанию, как описано в Секции 9; XML элементы, необходимые для инициации [[TLS]] (Секция 5), [[SASL]] (Секция 6), или Server Dialback (Секция 8) не являются XML-стансами.
+
 
+
В качестве примера рассмотрим сессию клиента с сервером.
+
Для подключения к серверу клиент ДОЛЖЕН инициировать XML-поток, послав серверу открывающий тег <tt>&lt;stream&gt;</tt>, возможно, предварив его текстовым описанием версии XML и используемой кодировки (см. Изменения в текстовом описании (Секция 11.4) и Кодировка символов (Секция 11.5)).
+
В зависимости от локальных правил и характеристик сервиса, серверу СЛЕДУЕТ ответить клиенту вторым XML-потоком, возможно, предварив его текстовым описанием.
+
Как только клиент завершил приветствие SASL, он МОЖЕТ посылать неограниченное число XML-станс через поток любому получателю в сети.
+
Когда клиент хочет закрыть поток, он просто посылает закрывающий тег <tt>&lt;/stream&gt;</tt> (в другом варианте, поток может быть закрыть сервером), после чего клиенту и серверу СЛЕДУЕТ также прервать нижележащее соединение (обычно TCP).
+
Те, кто привык думать об XML как о документе, могут рассматривать сессию клиента с сервером как два незакрытых XML документа: один от клиента к серверу, и один от сервера к клиенту.
+
С этой точки зрения, корневой элемент <tt>&lt;stream/&gt;</tt>, может рассматриваться как основная сущность для обоих "документов", и оба этих "документа" строятся за счет аккумулирования XML-станс, присланных по соответствующему потоку.
+
Тем не менее, такая точка зрения - не более чем соглашение; XMPP имеет дело не с документами, а с потоками и стансами.
+
 
+
В сущности, XML-поток действует как конверт для всех переданных XML-станс. Упрощенно его можно представить так:
+
<pre>
+
  |--------------------|
+
  | <stream>          |
+
  |--------------------|
+
  | <presence>        |
+
  |  <show/>          |
+
  | </presence>        |
+
  |--------------------|
+
  | <message to='foo'> |
+
  |  <body/>          |
+
  | </message>        |
+
  |--------------------|
+
  | <iq to='bar'>      |
+
  |  <query/>        |
+
  | </iq>              |
+
  |--------------------|
+
  | ...               |
+
  |--------------------|
+
  | </stream>          |
+
  |--------------------|
+
</pre>
+
 
+
=== Привязка к TCP ===
+
 
+
Хотя нет необходимости передавать XML поток  через [TCP] соединение (например, две сущности могут подключаться друг к другу через другой механизм такой как [HTTP] туннелирование), данная спецификация определяет привязку XMPP только к TCP. В контексте клиент-серверного взаимодействия, сервер ДОЛЖЕН разрешать клиенту использование одного TCP соединения для отправки XML стансов от клиента к серверу и от сервера к клиенту. При взаимодействии сервер-сервер сервер ДОЛЖЕН использовать одно TCP соединение для стансов, посылаемых сервером пиру и другое TCP соединение (инициированное пиром) для стансов от пира к серверу, всего два TCP соединения.
+
 
+
=== Безопасность потока ===
+
 
+
=== Атрибуты потока ===
+
 
+
==== Поддержка версий ====
+
 
+
=== Указание пространства имён ===
+
 
+
=== Возможности потока ===
+
 
+
=== Ошибки потока ===
+
 
+
==== Правила ====
+
 
+
==== Синтаксис ====
+
 
+
==== Предпоределенные условия ====
+
 
+
==== Специфические условия приложения ====
+
 
+
=== Упрощенные примеры потоков ===
+
 
+
== Использование TLS ==
+
 
+
== Использование SASL ==
+
 
+
== Назначение ресурса ==
+
 
+
== Server Dialback ==
+
 
+
== XML стансы ==
+
 
+
== Правила обработки XML стансов на сервере ==
+
 
+
== Использование XML в протоколе XMPP ==
+
 
+
== Требования к совместимости с Основами ==
+
 
+
== Соображения по поводу интернациональности ==
+
 
+
== Соображения по поводу безопасности ==
+
 
+
== Соображения {{w|IANA}} ==
+
 
+
== Примечания ==
+
 
+
== Различия между Основами [[Jabber]] и [[XMPP]] ==
+
 
+
== Ссылки ==
+
 
+
* [http://book.itep.ru/4/45/xmpp.htm Частичный перевод на русский]
+
* [http://tools.ietf.org/html/rfc3920 RFC 3920 на сайте ietf.org] (англ.)
+

Revision as of 23:40, 15 February 2012

hokecacu http://walozeqo.site88.net/uamejlgm.html ������� ������ �������� 3gp http://viqusiqu.web44.net/ankrido.html ������� hltv proxy http://megatof.web44.net/aaatzyoe.html ������� ���� ������� http://nevifefu.web44.net/czaekgoa.html ������� realtek hd audio output rus1 http://saxupoya.comeze.com/speafiep.html ������� ������ ������� ������ �������� http://bedarim.comeze.com/qvpfaoy.html ������� hurricanes suns http://lipovepo.web44.net/fnubvuzt.html http://megatof.web44.net/cwyiediy.html crfxfnm kp500.flb http://saxupoya.comeze.com/adtacivb.html ������� ���� ��� ����� 5130 � 2 http://viqusiqu.web44.net/iurcavi.html ������� �� ��� �� 1.6 v431 http://kimapeq.freeiz.com/ucusjk.html ������� ���������� �� ������� nokia 52501 http://riguqag.site88.net/iurxati.html ������� ��������� ����� ���������� ���� http://lexefiq.comeze.com/kdaeys.html ������� ���� http://lijexeka.comeze.com/dujyoay.html ������� filezilla portable ������� http://lexefiq.comeze.com/edrueyta.html ������� usb flash driver x641 http://lipovepo.web44.net/yapani.html ������� korn http://yujiqite.site88.net/oeshaau.html ������� ea download manager 2010 http://walozeqo.site88.net/eyuykhe.html ������� ����� �� ������� 2.31 http://goyayowe.site88.net/eaozvja.html ������� ���� ��������� �����1 http://lexefiq.comeze.com/irvppav.html ������� we found love ft. calvin harris http://lijexeka.comeze.com/oxfyanik.html ������� ��� ������ �� ����� ������ http://jepudebe.web44.net/ogmjdqou.html ������� symbian http://bedarim.comeze.com/ytmcdsdl.html ������� pro100 4.42 portable ���������� http://bapenaso.comeze.com/jistvs.html ������� windows xp sp3 2011 v11.01 �� ������� http://ferofesi.web44.net/ipesi.html ������� dll binkw32.dll http://ferofesi.web44.net/eyapodep.html ������� ����� �� ������� ������� �3011 http://saxupoya.comeze.com/iciszj.html ������� ������� ��� ����� http://ferofesi.web44.net/ulyoo.html ������� ��� ������ �� ����� ������ http://wukoziwo.site88.net/eokukuq.html ������� ����� ��� 3.3.5 http://saxupoya.comeze.com/yypoor.html ������� ventrilo 2.1.4 http://ferofesi.web44.net/pjmyyj.html ������� ������� �� �������� http://yujiqite.site88.net/veoiyj.html ������� zet 8 crack http://jepudebe.web44.net/damreaig.html ������� adobe acrobat 9 professional http://nevifefu.web44.net/pnleoayq.html ������� fraps rus ������ ������ http://goyayowe.site88.net/clzyajio.html ������� qip 2010 build 4301 http://megatof.web44.net/ueoifid.html ������� pc studio http://xiwepuvu.web44.net/iifgttc.html ������� ������� http://walozeqo.site88.net/basygyoo.html ������� ���� ���������������� java � ����� netbeans http://vizumax.web44.net/jtphzuvk.html ������� windows 7 ultimate rus x86 http://riguqag.site88.net/bfoydr.html ������� ������� ����� 2 ��� ������� http://rifanuy.site88.net/gbhzsmef.html ������� ����� ������ http://lijexeka.comeze.com/woleo.html ������� ���� ����� �� ������� ����� 63001 http://xiwepuvu.web44.net/hkobeypu.html ������� microsoft word 2007 ��� �����������1 http://yujiqite.site88.net/yoeko.html ������� ��������� ��� �������� ��� �������� http://megatof.web44.net/vcoeisz.html ������� ��� ������ �2 http://goyayowe.site88.net/uioky.html ������� ����� �������� - ����� �� ����� �������1 http://xiwepuvu.web44.net/leybddca.html ������� ����� 3 ��� ��� http://yujiqite.site88.net/oezocgg.html ������� samp ��� ��� ��� ������ http://lijexeka.comeze.com/uagguuy.html ������� cs 1.6 ������� ��� windows 7 http://jepudebe.web44.net/uiwgleu.html ������� jre 1.5.0