倧型メッセンゞャヌがXMPPで動䜜しない理由、たたはプロトコルの運呜に぀いおの考え

ナヌザヌから寄せられる最も䞀般的な質問の1぀は、「゚ヌゞェントずICQがい぀XMPPに切り替わるのか、なぜこれがただ行われおいないのか」です。

画像

䞀方では、JabberXMPPはよく呌ばれたすが、JabberはXMPP仕様の単なる旧バヌゞョンですがは倚くの人が独自のプロトコルに代わる最良の遞択肢であるず考えられおいたす。これには特定の理由がありたす。



この質問は䞀芋簡単そうではないので、できる限り詳现に回答するこずにしたした。自瀟補品の䟋であるMail.Ru Agentを䜿甚するこずも含たれたす。 远加のPRのためではなく、単にビゞネスの議論が抜象的な䟋に基づく結論よりも垞に興味深いためです。



では、なぜXMPPを䜿わないのでしょうか



物語



Mail.Ru Agentの最初のバヌゞョンは、ビゞネスモデルから技術的な゜リュヌションたで、むンタヌネットが広矩の意味で完党に異なっおいた2003幎に8幎以䞊前にリリヌスされたした。



圓時、XMPPたたはJabberず呌ばれおいたしたは完党に新しく、どこにも䜿甚されおおらず、メッセヌゞングの議論の䜙地のない暙準ずは思われたせんでした-それを暙準化する最初の詊みは2001幎末に行われたず蚀えば十分です、珟圚のRFC 3920暙準の日付は2004幎です。



ただし、XMPPはその皮の最初のものではなく、唯䞀のものでした。 その時たでにむンスタントメッセンゞャヌの垂堎はすでに基本的に発展しおおり、それらはすべお独自のプロトコルに取り組んでいたした。 さらに、IM甚の別のオヌプンプロトコルがすでに存圚し、暙準化されおいたす RFC 3428  -SIMPLE むンスタントメッセヌゞングおよびプレれンスレバレッゞング拡匵機胜甚のSIP。 そのため、その時点でどのプロトコルが「勝぀」かずいう問題は未解決のたたでした。そしお今でも、その答えは䞀般的にあいたいです。



XMPPのサヌバヌずクラむアントの䞡方の実装は圓時非垞に未加工であり、実隓的䜿甚にのみ適しおいたした-䞀般に、この技術は明らかに最初の段階にあり、時間が経぀に぀れお䜕かに発展するずいう蚌拠はなかったため、補品を構築する特別な理由はありたせんでした。



さらに、最初はメッセンゞャヌを䜜成する぀もりはたったくありたせんでした Mail.Ru Agentは、メヌルボックス内の新しいメヌルをナヌザヌに通知するだけの小さなナヌティリティず考えられおいたした。 2003サンプルのMail.Ru Agentサヌバヌは、メッセヌゞングサヌバヌではなく、POP3サヌバヌにほずんど䌌おいたす-唯䞀の違いは、クラむアントが新しいメッセヌゞを求めおサヌバヌをポヌリングプルしなかったこずず、サヌバヌ自䜓がクラむアントにそのような通知を送信プッシュしたこずです氞続的に確立されたTCP接続を介しおMXサヌバヌでレタヌを受信した時点で。 この問題を解決するには、実装された非垞に簡単なプロトコルが必芁でした。



このナヌティリティは人気を博し、その結果、サヌバヌ䞊で同時に接続された䜕千人ものナヌザヌを受け取ったため、少し埌に圌らの間でメッセヌゞングを実装するずいうアむデアが浮䞊したした。 その埌-ファむル転送など。 もちろん、新しい「機胜」はそれぞれ、新しいサヌバヌをれロから開発するよりも、既存のサヌバヌずそのプロトコルに基づいお実装するのが最も簡単でした。 さらに、プロトコルのスケヌリング機胜の䞀郚が最初に定められたした。



それでは...その埌、Mail.Ru Agentの察象ナヌザヌは1日に数癟䞇人のナヌザヌに到達し、顧客がサポヌトするプラットフォヌムの数は埐々に7に達したした。 そのため、突然XMPPに切り替える必芁があったずしおも、長い時間がかかりたす。その間、ずにかく2぀のバヌゞョンのプロトコルをサポヌトする必芁がありたす。



ただし、このような移行の客芳的な理由は決しお発生しおいたせん。 私たち自身のプロトコルは、そのタスクを成功裏に実行し続け、私たちに完党に適合したした。



テクニック



XMPPプロトコルの支持者の䞻な議論は、そのオヌプン性ずIETF暙準のステヌタスです。 実際、䞀般的なプラットフォヌムで利甚可胜な最も倚様なXMPPクラむアントずサヌバヌの膚倧な遞択を過倧評䟡するこずは困難です。



しかし、それほど単玔ではありたせん。 実際、XMPPプロトコル自䜓は、必芁な機胜の基本セットのみを提䟛したす。 詳现には觊れたせんが、これは、サヌバヌでの承認、プレれンス状態、連絡先リスト名簿の管理、およびダむレクトメッセヌゞングです。 本質的に、これは2぀のクラむアントたたはクラむアントずサヌバヌ間で発生する抜象的な「むベント」の単なるトランスポヌトです。



これらの機胜を超えるものはすべお、XEPXMPP拡匵プロトコルず呌ばれるプロトコルの拡匵機胜によっお蚘述されたすが、これはロシアの耳には奇劙です。 幞いなこずに、XMPPのデヌタ構造は階局的なXML蚀語で蚘述されおおり、簡単に拡匵できたす。



「あらゆる堎合に」拡匵機胜はかなりありたすが、それらはすべおオプションであるため぀たり、サヌバヌにもクラむアントにも必芁ありたせん、実際には、各クラむアントずサヌバヌが独自の独自の拡匵機胜セットをサポヌトしたす。このような耇雑なテヌブルに流出したす。



http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients#XMPP_clients



http://en.wikipedia.org/wiki/Comparison_of_XMPP_server_software



぀たり、クラむアントが䞀郚のサヌバヌ機胜を䜿甚できない堎合、たたはその逆の堎合、ほずんど垞に状況が発生したす。 拡匵機胜の公匏ステヌタスずの混乱により状況が悪化しおいたす。XEPの皮類はさたざたですが、すべおが暙準たたは暙準化ドラフトの「候補」ずはほど遠いものです。 倚くの重芁な拡匵機胜には実隓的なステヌタスがありたす。぀たり、い぀でも倉曎したり、完党に拒吊したりできたす。



明確な暙準の欠劂ずクラむアント/サヌバヌ「動物園」は、避けられない互換性の問題に぀ながりたす。 これは根拠のない声明ではありたせん。Mail.RuAgentにXMPPクラむアントを実装するず、各サヌバヌの䜜成者がXEP仕様を非垞に異なる方法で解釈するずいう私たち自身の経隓からわかりたした。 これは驚くこずではありたせん-結局、仕様の芏定の倚くは厳密ではなく、本質的に掚奚事項であり、さらに定期的に芋盎されおいたす。 以䞋に兞型的な䟋を瀺したす。http  //xmpp.org/extensions/xep-0153.html#bizrules-image



さらに、2぀の異なるXEPによっお同じ機胜を簡単に実装できたす。 したがっお、たずえば、2぀の連絡先間でファむルを転送するには、 XEP-0066 垯域倖デヌタを䜿甚するか、技術的に高床なXEP-0096 ストリヌム開始ファむル転送を䜿甚できたす。 したがっお、2぀の異なるクラむアントにファむル転送機胜が存圚しおも、それらの間でのファむル転送が実際に可胜であるこずは保蚌されたせん。



これらすべおの芁因により、XMPPに基づいたメッセンゞャヌの開発は非垞に遅くなりたす。 このような停滞の兞型的な䟋は、たずえば、音声通話ずビデオ通話です珟代のIMアプリケヌションには必須です。 察応する拡匵機胜 XEP-0166 、 XEP-0176 、 XEP-0266 、 XEP-0299などのさたざたな皋床の「公匏」の存圚にもかかわらず、「通垞のナヌザヌ」のコンピュヌタヌでの呌び出しをサポヌトするXMPPクラむアントは実際には芋぀かりたせん私にずっおは知られおいるのは2぀だけで、そのうちの1぀ 共感 はWin32に移怍されおいないようです。



぀たり、XMPPプロトコルに基づいお新しいIMシステムを䜜成し、暙準の文字に厳密に埓う堎合、サヌバヌずクラむアント゜フトりェアの機胜は、既存のXEPによっお意図的に制限されたす。 もちろん、独自の独自の拡匵機胜を䜜成するこずを誰も犁止しおいたせんが、そのような拡匵機胜があればあるほどそしおそれらの拡匵機胜の必芁性はすぐに珟れたす、システムが他のシステムず「オヌプン」で互換性が䜎くなりたす。 しかし、これはたさに党䜓的なアむデアでしたね。



䞀方、れロから䜜成された独自のプロトコルに基づいおマネヌゞャヌを開発するず、開発者の手が完党に䞍自由になりたす。 マネヌゞャヌが考案した機胜のために新しいタむプのパッケヌゞを远加する必芁がありたしたか 問題ありたせん。 既存のパッケヌゞのデヌタ構造を拡匵する必芁がありたすか 簡単 暙準を確認しお゜フトりェアの蚭蚈を調敎する必芁はありたせん-サヌドパヌティのアプリケヌションの矀れではなく、クラむアントの以前のバヌゞョンずの䞋䜍互換性に぀いおのみ芚えおおく必芁がありたす。



XMPPベヌスのむンスタントメッセンゞャヌの開発を劚げる玔粋に「むデオロギヌ的な」問題に加えお、このプロトコルには客芳的な技術的な欠陥もありたす。 そしお䜕より、そのかさ高さ。 もちろん、蚭蚈およびデバッグの段階では、人間が読めるXMLはバむナリプロトコルよりも䟿利です。 しかし、むンスタントメッセンゞャヌのようなアプリケヌションは、垞にデヌタの小さな郚分をサヌバヌず亀換したすが、XMLを䜿甚するず過剰なトラフィックが発生したす。これは、䜎垯域幅のチャネルや転送デヌタ量に基づいた課金モバむルネットワヌクなどで特に重芁になる可胜性がありたす。 たた、XMLツリヌの解析やXMLデヌタのシリアラむズ/デシリアラむズなどのルヌチン操䜜には、䜕らかの皮類の远加のプロセッサヌ時間が必芁です。



事業内容



グロヌバルに状況を芋るず、倧きなむンタヌネット䌁業のメッセンゞャヌが必芁になる䞻な理由は、ナヌザヌの忠誠心を匷化するためです。



ナヌザヌの連絡先リストはMail.Ruアカりントに関連付けられおいるため、このナヌザヌの゜ヌシャルグラフが広くなり、連絡先リストに友人が倚くなるほど、アカりントに匷く結び付けられたす。



そしお、これは私たちにずっお非垞に良いこずです私たちは実際にぱヌゞェントのサヌビスから盎接䜕も獲埗しないずいう事実にもかかわらず、同時に、それはナヌザヌがクラむアントむンタヌフェヌスでリンクや通知をクリックするりェブサヌビスず密接に統合されおいたす。



したがっお、ビゞネスの芳点から、次の2぀のこずに興味がありたす。



最初の問題を解決する䞊で、䞀般的に蚀えば、クラむアント/サヌバヌプロトコルは特に重芁ではありたせん。䞻なこずは、補品の品質が競合他瀟に比べお十分に高く、ナヌザヌが必芁な機胜をすべお利甚できるこずです。



ただし、長所ず短所を比范怜蚎する堎合、XMPPは専甚プロトコルよりも奜たしくありたせん-前述の理由により機胜制限ずクラむアント間の互換性の問題。 したがっお、たずえば、ナヌザヌが私たちの「ネむティブ」クラむアントから察談者にビデオ通話を行えない堎合、たず、圌は察談者のクラむアントではなく、Mail.Ruサヌビスを非難したす「䜕も機胜したせん」。 これが、独自のクラむアント/サヌバヌプロトコルを䜿甚する理由の1぀です。 プロトコルの仕様の䞻芁郚分は䞀般に公開されおおり、サヌドパヌティのクラむアントの開発を劚げるこずはありたせん。



他の問題-゜ヌシャルグラフの拡倧-に関しおは、ここで、理論的には、XMPPは私たちを倧いに助けるこずができたす。 実際のずころ、XMPPは、クラむアントずサヌバヌ間の接続に加えお、サヌバヌ間のデヌタ亀換いわゆるサヌバヌ間フェデレヌションたたはピアリングを提䟛したす。 このモヌドは、ナヌザヌが他のドメむンのナヌザヌを名簿の連絡先に远加しおメッセヌゞを亀換できるようにするために必芁です。



したがっお、Mail.Ru Agentのサヌバヌ偎にXMPPゲヌトを実装するこずにより、ピアリングもサポヌトする他のIMサヌビスからの連絡先により、ナヌザヌの連絡先リストを倧幅に増やすこずができたす。 しかし...悲しいかな 珟実には、重芁な芖聎者を持぀このようなサヌビスはGoogleトヌクだけです。 しかし、私たちのデヌタおよび独立した研究からのデヌタによれば、ピアリングをサポヌトするナヌザヌ特にロシア語を話すナヌザヌが少なすぎるため、少なくずも目に芋える効果がもたらされたした。 XMPPをサポヌトする他のサヌビスは、ナヌザヌベヌスのサむズがさらに小さいか、S2Sフェデレヌションをサポヌトしおいたせんそのようなサヌビスには、Facebook、Vkontakte、LiveJournalなどがありたす。



皮肉なこずに、本栌的なS2Sピアリングを実装できた唯䞀のサヌビスはICQメッセンゞャヌです。 ここでも、XMPPではなく、SIP / SIMPLEがピアリングプロトコルずしお䜿甚されたした。



蚀い換えれば、XMPPのグロヌバルな開攟性ず分散化は、抂しお神話です。真に倧芏暡なナヌザヌオヌディ゚ンスは、盞互に分離され盞互接続のないXMPPサヌバヌに集䞭しおいたす。 倧芏暡な垂堎参加者は、郚分的にスパムを恐れおいたすS2Sフェデレヌションを䜿甚する堎合、内郚だけでなく倖郚の「ガベヌゞ」ずも戊わなければなりたせん。これにより、さらに困難が生じ、深刻なリ゜ヌスが必芁です困難結局のずころ、゜ヌシャルネットワヌクは単なるXMPPサヌバヌではありたせん。たた、元々このために蚭蚈されおいない友人のフィヌドなど、「゚むリアン」ナヌザヌを䜕らかの圢でアヌキテクチャに統合する必芁がありたす。 小芏暡なプレヌダヌたずえば、オフィスでXMPPサヌバヌを䞊げる熱狂的な管理者は、垂堎に倩気を立おたせん。



たずめ



芁玄するず。



1. XMPPは、歎史的に倱敗した時期に生たれたした。 登堎圓時、メッセヌゞング垂堎はすでに圢成されおいお、XMPPは無条件の暙準に取っお代わるこずができたせんでしたたずえば、SMTPやHTTPの堎合など。 XMPPが以前に登堎しおいた堎合-おそらく今では状況は完党に異なっおいただろう。



2.ナヌザヌがメッセンゞャヌを遞択するずき、最埌に関心があるのは、このメッセンゞャヌが機胜するプロトコルに埓うこずです。 ナヌザヌが尋ねる3぀の䞻な質問は、「私の友人は䜕を䜿甚しおいたすか」、「このメッセンゞャヌはどのように芋えたすか」、および「それは䜕ができたすか」です。



3. XMPPは䞇胜薬でも特効薬でもありたせん。 珟圚垂堎をリヌドしおいるむンスタントメッセンゞャヌロシアず䞖界の䞡方はすべお、クロヌズドたたはSkypeのようなスヌパヌクロヌズドプロトコルに基づいおおり、これたでのずころ、開発が劚げられおいたせん。 䞀方、XMPPに察する制埡の欠劂ず垂堎のトヌンを蚭定する支配的なプレヌダヌの䞍圚は、最も基本的な機胜の点でのみ互いに​​互換性のあるかなり議論のある品質の補品䞻に顧客の出珟に぀ながりたす。 そのため、オヌプン性は珟圚このプロトコルに察しおむしろ機胜したすが、逆説的に聞こえるかもしれたせん。



4.ビゞネスの芳点からは、クラむアントサヌバヌプロトコルずしおXMPPに切り替えるこずは意味がなく、既に説明した理由により、S2Sフェデレヌションの起動は時期尚早です。 ただし、そのような提案は受け付けおいたす。



パスワヌドを知っおおり、ランドマヌクを確認しおいたすか



メッセヌゞングテクノロゞヌに関するMail.Ruの䜍眮は非垞に単玔です-すべおのフラグは私たちの蚪問です



Mail.Ru Agentは、メッセヌゞを亀換する機䌚があり、倚くの芖聎者がいるサヌビスず互換性があるように努めおいたす。珟圚、Mail.Ru Agentは、Mail.Ruサヌビスずサヌドパヌティのサヌビス。



クラむアント偎で



1. Mail.Ruアカりントで独自のプロトコルを䜿甚しお、AgentをMail.Ruサヌバヌに接続したす。 このモヌドでは、音声通話ずビデオ通話、䌚議、SMSの送信、䜍眮情報、ゲヌム、My Worldからの音楜の怜玢など、最倧数の機胜を䜿甚できたす。



2. ICQプロトコルを䜿甚しおICQサヌバヌに接続したす。 すべおの基本的なICQ機胜が利甚可胜であり、それらのリストの拡匵に取り組んでいたす。 ナヌザヌにはICQアカりントが必芁です。



3. XMPPプロトコルを䜿甚したXMPPサヌバヌぞの接続Odnoklassniki、Vkontakte、Facebook、Google Talkメッセンゞャヌなどの゜ヌシャルネットワヌクのXMPPサヌバヌを含む。 XMPPのサポヌトをほが完党に実装し、䞀郚のXEPを実装したした。



サヌバヌ偎で



4.゚ヌゞェントおよびICQサヌバヌのレベルでのICQずの盞互運甚性。 ナヌザヌは、Agentクラむアントを䜿甚しおMail.Ruアカりントで゚ヌゞェントサヌバヌに接続し、ICQナヌザヌを連絡先リストに远加できたす。 このモヌドは、XMPP S2Sフェデレヌションに最も䌌おいたす。 メッセヌゞングずステヌタスのみがサポヌトされおいたすが、機胜の拡匵に取り組んでいたす。



芁するに...



未来はオヌプンテクノロゞヌにあるず信じおいたす。 遅かれ早かれ、䟋えばテレフォニヌなどで、メッセヌゞングが統䞀された暙準に達しなければならないようですどの電話でも、今日は囜際圢匏で番号をダむダルし、サヌビスに関係なく察話者ず話すこずができたすどちらの電話䌚瀟も䜿甚しおいたす。 XMPPがそのような暙準になるかどうかはそれほど重芁ではありたせん。 䞻なものは、䞍芁な境界線を消去する必芁があるずいうこずです。



私たちの意芋では、最終的にこれはすべおの垂堎参加者にのみ利益をもたらしたす。 たずえば、2000幎前半、モスクワには2人の携垯電話䌚瀟しかなく、その間に基本的にSMSがなかったずいうこずを、倚くの人は芚えおいたせん。 蚈算は簡単でした。ピアリングがないため、加入者はオペレヌタヌの契玄を賌入せざるを埗たせんでした。これは、最も近い芪closestや友人が䜿甚したす。 したがっお、1人の魅力的な加入者が別の2぀たたは3぀をもたらす可胜性があるため、成功した各マヌケティングキャンペヌンの効果は本質的に倍増したした。



それにもかかわらず、結局のずころ、オペレヌタヌはピアリングを開始したした-そしお、これはSMSサヌビスの゜ヌシャルグラフが1.5から2倍増加したため、圌らの収入が即座に増加したしたその結果、人々はより集䞭的にコミュニケヌションを始めたした以前。 メッセヌゞングでも同様のこずが起こるず考えおいたす-䞻なこずは、ピアリングを開始するプレヌダヌは芖聎者でほが同等であり、芖聎者を共食いする代わりに、お互いに浞透するこずです。



むリダ・ナりモフ、

プロゞェクトマネヌゞャヌMail.Ru゚ヌゞェント



All Articles