Difference between revisions of "XMPP Core"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(tjyqw ezbof for 70% vldgdn0)
m
 
(51 intermediate revisions by 22 users not shown)
Line 1: Line 1:
When he finished the City2Surf in about 90 minutes on Sunday, de Castella was there to cheer home Leha, from Marrickville, and another nine Indigenous runners who hail from far afield as Thursday Island, Arnhem Land and Timber Creek. <a href=http://www.airmax-90nike.us.com/>nike air max</a> <title>IMRA - Tuesday, August 11, 2015 Iran, Russia Stage Joint Naval Wargames </title> o <a href=http://www.coachoutletstores.net.co/>www.coachoutletstores.net.co</a>
+
{{stub}}
The Darlington fighter had not fought for almost ten months following his world-title defeat to Randy Caballero in Monte Carlo, but his weekend workout proved he has lost none of his ring-craft or punching power. <a href=http://www.louisvuitton-outletonline.us.com/>Louis Vuitton Outlet</a> The government is trying to build a more sustainable agricultural sector, keeping high yields while reducing the use of fertilizer and pesticides to control soil and water pollution.  
+
{{RealTitle|Основы XMPP}}
New animal research suggests why Ebola becomes more deadly as it spreads.New animal research suggests why Ebola becomes more deadly as it spreads.Updated: Monday, January 12 2015 10:26 PM EST2015-01-13 03:26:01 GMTAn Ebola outbreak either bordering or a nation away from the two countries that produce as much as 75 percent of the world's cacao beans may change the makeup of a Cadbury egg in the United Kingdom.An Ebola outbreak either bordering or a nation away from the two countries that produce as much as 75 percent of the world's cacao beans may change the makeup of a Cadbury egg in the United Kingdom.Updated: Monday, December 29 2014 2:36 PM EST2014-12-29 19:36:29 GMTScottish authorities say a health care worker who has just returned from Sierra Leone has been diagnosed with Ebola and is being treated in a Glasgow hospital. The Scottish government says the patient flew to Glasgow via Casablanca and London's Heathrow Airport, arriving late Sunday. The health care worker was admitted to a hospital on Monday morning.Scottish authorities say a health care worker who has just returned from Sierra Leone has been diagnosed with Ebola and is being treated in a Glasgow hospital. The Scottish government says the patient flew to Glasgow via Casablanca and London's Heathrow Airport, arriving late Sunday. The health care worker was admitted to a hospital on Monday morning.Updated: Tuesday, December 23 2014 10:03 PM EST2014-12-24 03:03:43 GMTA person who recently returned from West Africa is in isolation at Bellevue Hospital Center but a test for Ebola infection came back negative, according to the city's Health and Hospitals Corporation.A person who recently returned from West Africa is in isolation at Bellevue Hospital Center but a test for Ebola infection came back negative, according to the city's Health and Hospitals Corporation.Ebola virusRobert Wood Johnson University Hospital in New Brunswick has been designated as one of 35 Ebola treatment centers across the country.Robert Wood Johnson University Hospital in New Brunswick has been designated as one of 35 Ebola treatment centers across the country.Updated: Tuesday, December 2 2014 3:58 PM EST2014-12-02 20:58:42 GMTBellevue Hospital Center (file photo)The active monitoring period has ended for the last of the 114 health workers who cared for New York City's Ebola patient. Dr. Craig Spencer got out of Bellevue Hospital Center on Nov. 11 after he was declared Ebola-free. He was admitted on Oct. 23.The active monitoring period has ended for the last of the 114 health workers who cared for New York City's Ebola patient. Dr. Craig Spencer got out of Bellevue Hospital Center on Nov. 11 after he was declared Ebola-free. He was admitted on Oct. 23.Updated: Thursday, November 13 2014 7:03 AM EST2014-11-13 12:03:38 GMTA top U.S. health official says long-anticipated clinical trials of a possible Ebola vaccine will start soon in West Africa. This word comes as the global response to the outbreak takes on added urgency with new cases in Mali and reports that the death toll has surpassed 5,000.A top U.S. health official says long-anticipated clinical trials of a possible Ebola vaccine will start soon in West Africa. This word comes as the global response to the outbreak takes on added urgency with new cases in Mali and reports that the death toll has surpassed 5,000.Updated: Wednesday, November 12 2014 10:21 PM EST2014-11-13 03:21:18 GMTThe Pentagon's Defense Advanced Research Project Agency, the futuristic tech division known as DARPA, is now doing research in the fight against Ebola. It is the same wing of the Department of Defense that helped create things like the Internet and GPS and invests in revolutionary technology for the military.Agency director Dr. Arati Prabhakar says her agency is looking for new proposals on ways to outpace infectious diseases like Ebola."What we've been working on is radical new approaches," ...The Pentagon's Defense Advanced Research Project Agency, the futuristic tech division known as DARPA, is now doing research in the fight against Ebola. It is the same wing of the Department of Defense that helped create things like the Internet and GPS and invests in revolutionary technology for the military.Agency director Dr. Arati Prabhakar says her agency is looking for new proposals on ways to outpace infectious diseases like Ebola."What we've been working on is radical new approaches," ...Patient Ebola freeUpdated: Tuesday, November 11 2014 12:28 PM EST2014-11-11 17:28:02 GMTAn emergency room doctor in New York City who had Ebola was released from the hospital on Tuesday.Dr. Craig Spencer, 33, joined Mayor Bill de Blasio and several other health officials outside Bellevue Hospital in Manhattan to address the media. "My infection represents but a fraction of the 13,000 cases reported in West Africa. Please join me in turning our attention back to West Africa," said Spencer.An emergency room doctor in New York City who had Ebola was released from the hospital on Tuesday.Dr. Craig Spencer, 33, joined Mayor Bill de Blasio and several other health officials outside Bellevue Hospital in Manhattan to address the media. "My infection represents but a fraction of the 13,000 cases reported in West Africa. Please join me in turning our attention back to West Africa," said Spencer.Updated: Thursday, November 6 2014 11:31 AM EST2014-11-06 16:31:31 GMTFacebook is stepping up its efforts to fight Ebola by adding a button designed to make it easier for its users to donate to charities battling the disease. The social media company is also donating and deploying 100 satellite communication terminals to boost Internet and phone services to affected areas in West Africa, where the disease has killed nearly 5,000.Facebook is stepping up its efforts to fight Ebola by adding a button designed to make it easier for its users to donate to charities battling the disease. The social media company is also donating and deploying 100 satellite communication terminals to boost Internet and phone services to affected areas in West Africa, where the disease has killed nearly 5,000. <a href=http://www.michaelkorsoutletsonlineco.com.co/>Michael Kors</a> The restaurant does serve gorgeous burgers ($13.50 and $14) among its sandwiches, day or night. They were on many plates on the sunny patio, naturally enough, and in the refreshed dining room. j <a href=http://www.outletcanadagoose.us.com/>http://www.outletcanadagoose.us.com</a>
+
 
Fixtures for 24 July: Post Office v Cummins B; Darlington RA v Cummins A; JUC v Darlington Woodland; Darlington South Park V Alpha Plus. North Park have a bye. <a href=http://www.louisvuitton-outletonline.us.com/>http://www.louisvuitton-outletonline.us.com</a> At Clinton, 4: Cambridge, Clinton, East Troy, Jefferson, Lake Mills, Lakeside Lutheran, Palmyra-Eagle, Walworth Big Foot, Whitewater.  
+
Основы протокола [[XMPP]] изложены в документе RFC 3920: "Extensible Messaging and Presence Protocol (XMPP): Core".
z A poll of more than 7000 DHS public servants, taken by the Community and Public Sector Union, has indicated widespread opposition to the 1.5 per cent deal, with proposed cuts to conditions and entitlements fuelling the discontent. <a href=http://www.oakleyglasses.us.org/>cheap oakley sunglasses</a> "It s been incredibly thick, almost all the same organism. Looks like a layer of hay," said Raphael Kudela, a professor of ocean sciences at University of California, Santa Cruz. <a href=http://www.rosherunshoes2015.us.com/>Nike Roshe Run</a>  
+
 
Johnson鈥檚 shot took a deflection off McCarthy and hit Defoe鈥檚 knee before dropping over the line to give Sunderland the cushion required as Sunderland fans chanted 鈥榓re you watching Newcastle?鈥?ahead of the Magpies鈥?game with West Brom. <a href=http://www.onlinecoachoutlets.us.com/>Coach Outlet Online</a> The gratuitous glorification of fossil fuel consumption can be discouraged by enacting a federal carbon fee, gradually increasing over time. Our ability to respond to the challenges of climate change will require a new attitude toward carbon emissions. http://www.moncleroutlet.nom.co
+
Этот документ описывает обощённую архитектуру, схему адресации, термины "XML поток" и "XML [[станс]]", правила использования [[XML]], требования к совместимым реализациям протокола, а также соображения по поводу интернациональности и безопасности.
It can be very dangerous territory when you are up the on the stage and you are telling a story from your scar but then you realise three minutes in that you are still telling a bit of a story from your wounds, he says. That can be a little bit crazy. <a href=http://www.outletmoncler.us.com/>moncler outlet online</a> <TABLE ALIGN=CENTER><TR><TD> z <a href=http://www.cheapchinajerseysnfl.us.org/>Cheap NFL Jerseys</a>  
+
 
"Working with Ernest, we identified Richmond and North Yorkshire as an area where producers would benefit from the establishment of a new ID. <a href=http://www.michaelkorsoutlet.com.co/>Michael Kors</a> Cloud's touring show, which arrives next month in Darlington, combines the signature pieces from his 2014 show plus exciting new material. The performer describes himself as a forensic mind-reader is who can tell audience members what they鈥檝e had for lunch, where they鈥檝e been that day, what they do for a living, the car they drive and even their PIN code, just by looking at the. He's been described as a real life Sherlock Holmes and Uri Geller rates him as one of the "greatest thought readers of all time".  
+
== Введение ==
Down two points with 27 seconds left, senior forward Brett Prahl was called for a controversial traveling violation that gave Lodi possession and put it in position to seal a 54-46 victory at the Kohl Center in the Division 3 semifinals of the WIAA state boys basketball tournament. <a href=http://www.boots-uggs.us.com/>cheap ugg boots</a> Bill Dixon is at it again trying to score political points and completely misses the point - people want to name it Gerald lee park because of the hard work this councillor has done for the town he is obviously well liked and respected and listens to the people of the town and they want to show their appreciation.
+
Extensible Messaging and Presence Protocol (XMPP) &mdash; открытый, основанный на XML протокол для обмена в почти реальном времени сообщениями, передачи информации о пристуствии и сервисов вида "запрос-ответ".  
This achievement illustrates NBAD鈥檚 leadership position in the market. In addition to being currently the only SCA-licensed Securities Lending and Borrowing Agent, NBAD is the UAE鈥檚 first licensed custodian bank and first and only official market maker since April 2014. <a href=http://www.airjordanshoes.net.co/>air jordans</a> 聽
+
Базовый синтаксис и семантика были разработаны в сообществе Jabber, большей частью в 1999 году.  
2 cups Risotto (short grain) rice 4 cups water 1/8 tsp cinnamon or vanilla 1 tsp sugar (optional) 1 cup low-fat cream cheese 1 tsp coconut oil 1 tsp honey or agave nectar cup chopped roasted pistachio kernels <a href=http://www.coachoutlet.nom.co/>Coach Factory</a> Mahamat Baiwon, a UNHCR protection officer in Maroua, explained how the refugee agency and Cameroonian government officials were intercepting the incoming refugees soon after they crossed the border.  
+
В 2002, рабочая группа XMPP занялась разработкой адаптации протокола Jabber, которая была бы пригодна в качестве технологии IETF для обмена сообщениями и информацией о присутствии.
m This experience is more common than you might think. Some 9000 children are affected by parental imprisonment each year in the North-East. One of the great comforts that our visitors鈥?centres can bring is the knowledge that you are not the only one who is serving a 鈥榟idden sentence鈥?and our visitors鈥?voice groups are a vital way of enabling family members to speak out about their needs, the problems they face and what helps them to cope from day to day. <a href=http://www.monclerjacketsonline.us.com/>moncler outlet online</a> Several such incidents have been reported around the country in recent months.  
+
Как результат этой работы, данный текст описывает основные возможности XMPP 1.0; расширения, необходимые для обмена сообщениями и информацией о присутствии, определенные в RFC 2779, определены в Extensible Messaging and Presence Protocol
Tremper started the tournament with a 12-2 five-inning victory over West Bend West. The team then hit four homers in a 13-1 five-inning victory over third-ranked Germantown and added two more in a 7-0 victory over No. 10 Muskego in the title game. <a href=http://www.coachoutlet.nom.co/>www.coachoutlet.nom.co</a> Japan may have played only one game on the road to the 2018 World Cup, but the ride from here on is likely to be anything but smooth. a <a href=http://www.rosherunshoes.com.co/>www.rosherunshoes.com.co</a>  
+
(XMPP): [[Instant Messaging and Presence|XMPP IM]].
Newcastle were made to wait half an hour before registering their first chance on goal, when Colback collected Ayoze Perez鈥檚 pass only to be denied by Blues goalkeeper Thibaut Courtois. <a href=http://www.canadagooseoutlet.net.co/>canada goose jacket</a> Access to standard work templates, articles, webinars, videos, and other exclusive member resources.  
+
 
f He replaces Jarrett Principal Teresa Wise, who resigned to become assistant principal of Republic High. <a href=http://www.louisvuittonoutlet.me/>http://www.louisvuittonoutlet.me</a> WADA is committed to protecting the confidentiality of athletes; and, therefore, has asked its Independent Commission to commence its investigation with urgency. q
+
== Обобщённая архитектура сети ==
Who would play you in a film of your life <a href=http://www.bootsuggcheap.us.com/>cheap ugg boots</a> The state Government Accountability Board is projecting 35% of voting-age adults will cast ballots, about the same as in the 2008 primary. In Milwaukee, the turnout could be even higher, close to 40%, predicted Sue Edman, executive director of the city Election Commission. <a href=http://www.uggbootsblackfriday.us.com/>Cheap Uggs</a>  
+
 
鈥淗aving gone through four owners in 15 or 19 years, the current ownership has been very, very adamant that we develop products that create a sustainable business for us in the future.聽 We鈥檙e a standalone company now, as opposed to being a part of a Ford or a BMW, where you were actually the brand on the side. We are a key and integral part of the success of Tata,鈥?he says. <a href=http://www.bootsuggcheap.us.com/>Uggs Outlet</a> Syria and Iraq host more than 10 million IDPs k <a href=http://www.uggbootsblackfriday.us.com/>Cheap Uggs</a>  
+
=== Обзор ===
"I said to my partner 'it's not turning, it's not turning' and then she said something to me but I cannot remember what she said. <a href=http://www.coachfactoryoutlet.click/>Coach Factory Outlet</a> Armature: Bodies of Hope takes place at the newly renovated Play Circle Theater and the Memorial Union March 26鈥?8. For details, visit .
+
Хотя XMPP и не привязан к конкретной сетевой архитектуре, обычно он реализуется с архитектурой "клиент-сервер", где клиент соединяется с сервером по протоколу TCP, и соединения между серверами тоже производятся по протоколу TCP.
鈥淚 just process the transaction exactly as I would a credit card transaction鈥?<a href=http://www.jacketscanadagoose.us.com/>http://www.jacketscanadagoose.us.com</a> Move deciduous trees or shrubs provided the soil is fit to work; z <a href=http://www.canadagooseoutlet.net.co/>canada goose parka</a>  
+
 
Ladies of a Certain Age 鈥?The History Wardrobe (Thursday, August 27): A costumed narrator presents lively readings from Jane Austen鈥檚 novels and gives insights into the realities of life for women past their first blush of youth. The Station. <a href=http://www.louisvuittonoutlet.me/>Cheap Louis Vuitton</a> Due to geological conditions that restrict rain and snow melt from soaking deeply into the earth to recharge groundwater supply, along with over-pumping of the deep groundwater by southeastern Wisconsin and northeastern Illinois communities, Waukesha needs a new water supply. But every alternative to a Lake Michigan supply would cause unreasonable harm to area wetlands, streams, lakes and groundwater, according to the Wisconsin Department of Natural Resources. More on that in a minute.
+
[[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|клиент-серверного протокола]], фактически система состоит из набора взаимодействующих серверов. Таким образом, &lt;juliet@example.com&gt; может обмениваться сообщениями, информацией о присутствии и др. с &lt;romeo@example.net&gt;. Этот шаблон знаком по протоколам вроде {{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-станс''' - дискретная семантическая единица структурированной информации, переcылаемая от одной сущности к другой посредством 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] (англ.)

Latest revision as of 17:53, 17 November 2015

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

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

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

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

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

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

Введение[edit]

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.

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

Обзор[edit]

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

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

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

Сервер[edit]

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

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

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

Клиент[edit]

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

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

Транспорт[edit]

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

Сеть[edit]

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

Схема адресации[edit]

Обзор[edit]

Сущность - что-то, что может быть воспринято как конечная точка сети и может обмениваться данными по протоколу 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-потоки[edit]

Обзор[edit]

Две фундаментальные концепции делают возможным быстрый асинхронный обмен сравнительно маленькими порциями структурированной информации между сущностями: 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[edit]

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

Безопасность потока[edit]

Атрибуты потока[edit]

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

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

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

Ошибки потока[edit]

Правила[edit]

Синтаксис[edit]

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

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

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

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

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

Назначение ресурса[edit]

Server Dialback[edit]

XML стансы[edit]

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

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

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

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

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

Соображения IANA[edit]

Примечания[edit]

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

Ссылки[edit]