XMPP

بروتوكول المراسلة والحضور القابل للتوسيع ( XMPP ، وكان يُعرف سابقًا باسم Jabber [ 1 ] ) هو بروتوكول اتصال مفتوح مصمم للمراسلة الفورية ، ومعلومات الحضور ، وإدارة قوائم جهات الاتصال . [ 2 ] يعتمد هذا البروتوكول على لغة XML (لغة الترميز القابلة للتوسيع)، ويتيح تبادل البيانات المنظمة شبه الفوري بين كيانين أو أكثر على الشبكة. [ 3 ] صُمم البروتوكول ليكون قابلاً للتوسيع ، مما يوفر تطبيقات متعددة تتجاوز المراسلة الفورية التقليدية في مجال البرمجيات الوسيطة الموجهة نحو الرسائل ، بما في ذلك الإشارات لبروتوكول نقل الصوت عبر الإنترنت (VoIP) ، والفيديو، ونقل الملفات ، والألعاب ، وغيرها من الاستخدامات.

على عكس معظم بروتوكولات المراسلة الفورية التجارية، يُعرَّف بروتوكول XMPP وفق معيار مفتوح في طبقة التطبيقات . يشبه تصميم شبكة XMPP تصميم البريد الإلكتروني ؛ إذ يُمكن لأي شخص تشغيل خادم XMPP خاص به، ولا يوجد خادم رئيسي مركزي. يتيح هذا النهج المفتوح والموحد للمستخدمين التفاعل مع الآخرين على أي خادم باستخدام حساب مستخدم Jabber ID (معرف Jabber)، على غرار عنوان البريد الإلكتروني. يُمكن تطوير تطبيقات XMPP باستخدام أي ترخيص برمجي، ويتم توزيع العديد من تطبيقات الخادم والعميل والمكتبات كبرامج مجانية ومفتوحة المصدر . كما توجد العديد من تطبيقات البرامج المجانية والتجارية .

طُوّرت بروتوكولات XMPP في الأصل من قِبل مجتمع المصادر المفتوحة ، وتم اعتمادها كمعيار رسمي للمراسلة الفورية في عام 2004، واستمر تطويرها باستمرار بإضافة امتدادات وميزات جديدة. تتوفر برامج عميل XMPP متنوعة على منصات وأجهزة سطح المكتب والأجهزة المحمولة، وبحلول عام 2003، كان يستخدم البروتوكول أكثر من عشرة ملايين شخص حول العالم على الشبكة، وفقًا لمؤسسة معايير XMPP . [ 4 ]

المراسلة الفورية الموحدة

على الرغم من أن البروتوكول له استخدامات أخرى، إلا أن التطبيق الأساسي هو المراسلة الفورية الموحدة ، لتقديم بروتوكول المراسلة الفورية والحضور القياسي ، الموضح أدناه.

لدى العميلة أليس ("alice@example.com") رسالة موجهة إلى مستخدمة أخرى، بيث ("beth@example.com")، وتستخدم بروتوكول XMPP لإرسالها إلى خادم example.com. إذا كانت بيث متصلة بالإنترنت، يُرسل الخادم الرسالة فورًا، وإلا فسيتم الاحتفاظ بها لحين إرسالها لاحقًا. إذا كانت بيث غير متصلة بالإنترنت، فإن هذه الحالة تكون مرئية لأليس.

إذا كانت الرسالة موجهة إلى مستخدم على خادم آخر، تشارلز ("charles@example.net ")، فإن خادم example.com يتصل باستخدام بروتوكول XMPP لتمرير الرسالة إلى خادم example.net. ثم يتم تسليم الرسالة أو الاحتفاظ بها بنفس الطريقة، ويتم إبلاغ أليس بالحالة.

بعد تسليم الرسالة الأولية، يكون العملاء النهائيون في "محادثة" ويتم إبلاغ كل طرف لاحقًا بالتغييرات التي تطرأ على حالة الطرف الآخر.

بروتوكول XMPP من العميل إلى الخادم وبروتوكول XMPP من الخادم إلى الخادم

يتواصل عميل XMPP مع الخادم عبر دفق TCP مشفر بتقنية TLS على المنفذ 5222. وتتواصل خوادم XMPP فيما بينها عبر دفق TCP مشفر بتقنية TLS على المنفذ 5269. [ 3 ] [ 5 ]

خصائص البروتوكول

اللامركزية

شبكة XMPP بسيطة تضم الخادمين jabber.org و draugr.de . العملاء المتصلون بالإنترنت (باللون الأخضر)، والعملاء المتصلون بالإنترنت (باللون الأصفر) يتبادلون الرسائل فيما بينهم، والعملاء الفرعيون الصغار (باللون الأخضر) يمثلون موارد مستخدم واحد. الشبكة غير المتصلة بالإنترنت (باللون البني). الخادم draugr.de متصل بخدمات المراسلة الفورية الأخرى (ICQ وAIM وغيرها) عبر بروتوكول XMPP .

تُشبه بنية شبكة XMPP بروتوكول نقل البريد البسيط (SMTP)، وهو نموذج عميل-خادم ؛ حيث لا يتواصل العملاء مباشرةً فيما بينهم نظرًا لكونها لا مركزية - إذ يُمكن لأي شخص تشغيل خادم. وبحسب التصميم، لا يوجد خادم مركزي مُعتمد كما هو الحال في خدمات المراسلة مثل AIM و WLM و WhatsApp و Telegram . غالبًا ما ينشأ بعض الالتباس حول هذه النقطة لوجود خادم XMPP عام يعمل على نطاق معين jabber.org، ويشترك فيه العديد من المستخدمين. مع ذلك، يُمكن لأي شخص تشغيل خادم XMPP خاص به على نطاقه الخاص.

معالجة

JID قياسي

لكل مستخدم على الشبكة عنوان XMPP فريد، يُسمى معرف Jabber . [ 6 ] يتم تنظيم معرف Jabber مثل عنوان البريد الإلكتروني مع اسم المستخدم واسم النطاق (أو عنوان IP [ 7 ] ) للخادم الذي يوجد عليه هذا المستخدم، مفصولين بعلامة @ ( @) - على سبيل المثال، " alice@example.com": هنا aliceاسم المستخدم example.comوالخادم الذي تم تسجيل المستخدم فيه.

بما أن المستخدم قد يرغب في تسجيل الدخول من مواقع متعددة، فإنه يستطيع تحديد مورد . يُعرّف المورد جهازًا معينًا تابعًا للمستخدم (مثلًا: المنزل، العمل، أو الهاتف المحمول). يمكن تضمين هذا المورد في معرّف الجهاز (JID) بإضافة شرطة مائلة متبوعة باسم المورد. على سبيل المثال، قد يكون معرّف الجهاز الكامل لحساب المستخدم على الهاتف المحمول هو username@example.com/mobile:

قد يُحدد لكل مورد قيمة عددية تُسمى الأولوية . الرسائل المرسلة إلى username@example.comستصل إلى العميل ذي الأولوية الأعلى، أما الرسائل المرسلة إلى username@example.com/mobileستصل إلى عميل الهاتف المحمول فقط . الأولوية الأعلى هي تلك التي تحمل أكبر قيمة عددية.

تُعدّ معرّفات JID التي لا تحتوي على اسم المستخدم صالحة أيضاً، ويمكن استخدامها لرسائل النظام والتحكم في الميزات الخاصة على الخادم. ويبقى تحديد المورد اختيارياً لهذه المعرّفات أيضاً.

تتيح وسائل توجيه الرسائل بناءً على مُعرّف نقطة نهاية منطقي - JID، بدلاً من عنوان IP صريح - فرصًا لاستخدام XMPP كتطبيق شبكة تراكبية فوق شبكات أساسية مختلفة. [ 8 ]

XMPP عبر HTTP

بروتوكول النقل الأصلي لبروتوكول XMPP هو بروتوكول التحكم بالنقل (TCP)، الذي يستخدم تدفقات XML مفتوحة عبر اتصالات TCP طويلة الأمد. وكبديل لبروتوكول TCP، طوّر مجتمع XMPP بروتوكول HTTP لعملاء الويب والمستخدمين خلف جدران الحماية المقيدة . في المواصفات الأصلية، كان بإمكان XMPP استخدام HTTP بطريقتين: الاستقصاء [ 9 ] والربط . تعتمد طريقة الاستقصاء، التي أصبحت الآن مهملة، على جلب الرسائل المخزنة في قاعدة بيانات الخادم (ونشرها) بانتظام بواسطة عميل XMPP عبر طلبات HTTP من نوع "GET" و"POST". أما طريقة الربط، المُنفذة باستخدام بروتوكول BOSH ( تدفقات ثنائية الاتجاه عبر HTTP متزامن ) [ 10 ] ، فتسمح للخوادم بإرسال الرسائل إلى العملاء فور إرسالها. يُعد نموذج الإشعار بالدفع هذا أكثر كفاءة من الاستقصاء، حيث لا تُعيد العديد من عمليات الاستقصاء أي بيانات جديدة. يدعم XMPP أيضًا استخدام WebSockets للتواصل مع الخادم [ 11 ] .

نظرًا لأن العميل يستخدم بروتوكول HTTP، فإن معظم جدران الحماية تسمح للعملاء بجلب الرسائل وإرسالها دون أي عوائق. وبالتالي، في حال حظر منفذ TCP المستخدم من قِبل XMPP، يمكن للخادم الاستماع على منفذ HTTP العادي، ومن المفترض أن يمرّ تدفق البيانات دون مشاكل. تتيح مواقع ويب مختلفة للمستخدمين تسجيل الدخول إلى XMPP عبر متصفح. علاوة على ذلك، توجد خوادم عامة مفتوحة تستمع على منافذ HTTP القياسية (المنفذ 80) وHTTPS (المنفذ 443)، مما يسمح بالاتصالات من خلف معظم جدران الحماية. مع ذلك، فإن المنفذ المسجل لدى IANA لبروتوكول BOSH هو 5280 وليس 80.

قابلية التوسعة

تُعنى مؤسسة معايير XMPP ( XSF) (المعروفة سابقًا باسم مؤسسة برمجيات Jabber) بتطوير امتدادات XMPP مفتوحة المصدر، والتي تُسمى XEPs . [ 12 ] مع ذلك، يُمكن لأي فرد أو مشروع برمجي أو مؤسسة تعريف هذه الامتدادات. وللحفاظ على قابلية التشغيل البيني، تتولى XSF إدارة الامتدادات الشائعة. تشمل تطبيقات XMPP، بالإضافة إلى المراسلة الفورية، ما يلي: غرف الدردشة ، وإدارة الشبكات ، وتوزيع المحتوى ، وأدوات التعاون، ومشاركة الملفات ، والألعاب، والتحكم عن بُعد في الأنظمة ومراقبتها، وتحديد الموقع الجغرافي ، والبرمجيات الوسيطة والحوسبة السحابية ، وخدمات الصوت عبر بروتوكول الإنترنت (VoIP)، وخدمات الهوية.

بفضل قدرته على دعم اكتشاف الخدمات عبر نطاقات الشبكات المحلية ، يُعدّ بروتوكول XMPP مناسبًا تمامًا للحوسبة السحابية ، حيث تُشكّل الأجهزة الافتراضية والشبكات وجدران الحماية عوائق أمام حلول اكتشاف الخدمات البديلة وحلول التحقق من الحضور. تعتمد أنظمة الحوسبة السحابية والتخزين على أشكال متنوعة من الاتصال عبر مستويات متعددة، لا تقتصر على تبادل الرسائل بين الأنظمة لنقل الحالة فحسب، بل تشمل أيضًا نقل أو توزيع الكائنات الأكبر حجمًا، مثل وحدات التخزين أو الأجهزة الافتراضية. إلى جانب المصادقة وحماية البيانات أثناء النقل، يُمكن تطبيق XMPP على مستويات مختلفة، وقد يُثبت فعاليته كبروتوكول وسيط قابل للتوسيع أو بروتوكول وسيط موجه نحو الرسائل (MOM).

القيود الحالية

بما أن لغة XML نصية، فإن بروتوكول XMPP العادي يستهلك موارد الشبكة بشكل أكبر مقارنةً بالحلول الثنائية البحتة. وقد تمّت معالجة هذه المشكلة من خلال تنسيق تبادل XML الفعال (EXI) التجريبي XEP-0322، حيث يتمّ تحويل XML إلى صيغة ثنائية فعّالة، لا سيما في الوضع المُستند إلى المخطط. وقد تمّ تأجيل هذا المقترح XEP حاليًا.

يُعدّ نقل البيانات الثنائية ضمن النطاق محدودًا. إذ يجب أولًا ترميز البيانات الثنائية باستخدام Base64 قبل إرسالها ضمن النطاق. لذا، يُفضّل إرسال أي كمية كبيرة من البيانات الثنائية (مثل نقل الملفات ) خارج النطاق ، مع استخدام الرسائل ضمن النطاق للتنسيق. في معظم الحالات، يتم ذلك باستخدام مرفق للرسالة وآلية رفع الملفات عبر بروتوكول HTTP XEP-0363 المُطبّقة على نطاق واسع. أما المحادثات الصوتية والمرئية، فيمكن إجراؤها عبر بروتوكول Jingle XMPP Extension Protocol، XEP-0166.

سمات

خيارات نقل الملفات في محادثة ضمن تطبيق Conversations ، وهو عميل XMPP لنظام Android

جلسات بين الأقران

باستخدام إضافة Jingle ، يوفر بروتوكول XMPP وسيلة مفتوحة لدعم الاتصالات بين الأجهزة أو بين الأجهزة عبر مجموعة متنوعة من الشبكات. وتُستخدم هذه الميزة بشكل أساسي في الاتصالات الهاتفية عبر بروتوكول الإنترنت (VoIP).

دردشة متعددة المستخدمين

يدعم بروتوكول XMPP المؤتمرات التي تضم عدة مستخدمين، باستخدام مواصفات الدردشة متعددة المستخدمين (MUC) (XEP-0045). ومن وجهة نظر المستخدم العادي، فهو يُشابه بروتوكول دردشة الإنترنت (IRC).

الأمان والتشفير

يمكن عزل خوادم XMPP (على سبيل المثال، على شبكة إنترانت الشركة)، وقد تم دمج المصادقة الآمنة ( SASL ) والتشفير من نقطة إلى نقطة ( TLS ) في مواصفات XMPP الأساسية.

بروتوكول المراسلة خارج السجل (OTR) هو امتداد لبروتوكول XMPP يُمكّن من تشفير الرسائل والبيانات. وقد تم استبداله لاحقًا بامتداد أفضل، وهو التشفير متعدد الأطراف ( OMEMO ، XEP-0384)، الذي يوفر تشفيرًا شاملاً بين المستخدمين. يمنح هذا البروتوكول مستوى أعلى من الأمان، حيث يقوم بتشفير جميع البيانات من جهاز العميل المصدر وفك تشفيرها مرة أخرى عند جهاز العميل الهدف؛ فلا يستطيع مُشغّل الخادم فك تشفير البيانات التي يُعيد توجيهها.

يمكن أيضًا تشفير الرسائل باستخدام OpenPGP ، على سبيل المثال باستخدام برنامج Gajim .

اكتشاف الخدمات

على الرغم من وجود العديد من بروتوكولات اكتشاف الخدمات اليوم (مثل zeroconf أو بروتوكول تحديد موقع الخدمة )، فإن XMPP يوفر أساسًا متينًا لاكتشاف الخدمات الموجودة محليًا أو عبر الشبكة، وتوافر هذه الخدمات (عبر معلومات الوجود)، كما هو محدد في XEP-0030 DISCO. [ 13 ]

الاتصال ببروتوكولات أخرى

ترسل أليس رسالة عبر شبكة XMPP إلى بروتوكول ICQ. ثم يتم توجيه الرسالة إلى بوب عبر شبكة ICQ.

كان أحد الأهداف التصميمية الأصلية لمجتمع جابر مفتوح المصدر في بداياته تمكين المستخدمين من الاتصال بأنظمة مراسلة فورية متعددة (وخاصةً الأنظمة غير الداعمة لبروتوكول XMPP) من خلال تطبيق عميل واحد. وقد تم ذلك عبر كيانات تُسمى بوابات أو وسائل نقل إلى بروتوكولات مراسلة فورية أخرى مثل ICQ وAIM و Yahoo Messenger ، بالإضافة إلى بروتوكولات أخرى مثل الرسائل النصية القصيرة (SMS) و IRC والبريد الإلكتروني . على عكس عملاء البروتوكولات المتعددة ، يوفر XMPP هذا الوصول على مستوى الخادم من خلال التواصل عبر خدمات بوابة خاصة تعمل بالتوازي مع خادم XMPP. يمكن لأي مستخدم "التسجيل" في إحدى هذه البوابات بتوفير المعلومات اللازمة لتسجيل الدخول إلى تلك الشبكة، ومن ثم التواصل مع مستخدمي تلك الشبكة كما لو كانوا مستخدمين لبروتوكول XMPP. وبالتالي، تعمل هذه البوابات كوكلاء للعميل (حيث تقوم البوابة بالمصادقة نيابةً عن المستخدم على الخدمة غير الداعمة لبروتوكول XMPP). ونتيجةً لذلك، يمكن لأي عميل يدعم XMPP بشكل كامل الوصول إلى أي شبكة مزودة ببوابة دون الحاجة إلى كتابة أي كود إضافي في العميل، ودون الحاجة إلى اتصال مباشر بالإنترنت. ومع ذلك، قد ينتهك نموذج وكيل العميل شروط الخدمة الخاصة بالبروتوكول المستخدم (على الرغم من أن شروط الخدمة هذه غير قابلة للتنفيذ قانونيًا في العديد من البلدان) ويتطلب أيضًا من المستخدم إرسال اسم المستخدم وكلمة المرور الخاصة به في برنامج المراسلة الفورية إلى موقع الطرف الثالث الذي يقوم بتشغيل النقل (مما قد يثير مخاوف تتعلق بالخصوصية والأمان).

نوع آخر من البوابات هو بوابة الخادم إلى الخادم، والتي تُمكّن خادمًا غير مُهيأ لبروتوكول XMPP من الاتصال بخوادم XMPP الأصلية باستخدام ميزات الاتحاد بين النطاقات المُدمجة في XMPP. تُقدم العديد من برامج المراسلة الفورية للمؤسسات هذه البوابات، ومنها:

برمجة

يتم تطبيق بروتوكول XMPP بواسطة العديد من العملاء والخوادم ومكتبات البرامج. [ 17 ] وتُقدم هذه التطبيقات بموجب مجموعة متنوعة من تراخيص البرامج.

الخوادم

توجد العديد من برامج خادم XMPP، ومن بينها برامج معروفة مثل ejabberd و Prosody .

عملاء العصر الحديث

النافذة الرئيسية لعميل XMPP Gajim [ 18 ]

تتوفر العديد من برامج عملاء XMPP على مختلف المنصات الحديثة والقديمة، بما في ذلك برامج العملاء الرسومية وبرامج العملاء التي تعمل عبر سطر الأوامر. وفقًا لموقع XMPP الإلكتروني، تشمل بعض البرامج الأكثر شيوعًا: Conversations و Cheogram وMonocles وQuicksy ( أندرويد )، وDino ( أنظمة BSD وويندوز ويونكس ولينكس )، وConverse.js (متصفح ويب، لينكس ، ويندوز ، ماك أو إس ) ، و Gajim ( ويندوز ولينكس ) ، و Monal ( ماك أو إس وآي أو إس ) ، و Swift.IM (ماك أو إس وويندوز ولينكس). وقد تم مؤخرًا تطوير نسخة معدلة من Monal كإصدار Quicksy لنظام iOS .

ومن بين العملاء الآخرين: Bombus، وChatSecure ، وCoccinella، و Miranda NG ، و [ 18 ] Pidgin ، و Psi ، و [ 18 ] Tkabber ، و Trillian ، و Xabber .

النشر والتوزيع

يوجد آلاف من خوادم XMPP حول العالم، العديد منها خوادم عامة، بالإضافة إلى خوادم خاصة يديرها أفراد أو منظمات لأغراض غير تجارية. تعرض مواقع إلكترونية عديدة قوائم بخوادم XMPP العامة التي يمكن للمستخدمين التسجيل فيها (على سبيل المثال، على موقع XMPP.net).

تستخدم العديد من خدمات المراسلة الفورية العامة الكبيرة بروتوكول XMPP بشكل أصلي أو كانت تستخدمه سابقًا، بما في ذلك "LJ Talk" التابع لـ LiveJournal، و Nimbuzz ، و HipChat . وتتيح خدمات استضافة متنوعة، مثل DreamHost ، لعملائها اختيار خدمات XMPP إلى جانب خدمات الويب والبريد الإلكتروني التقليدية. كما تتوفر خدمات استضافة XMPP متخصصة على السحابة ، بحيث لا يحتاج مالكو النطاقات إلى تشغيل خوادم XMPP الخاصة بهم مباشرةً، ومنها Cisco Webex Connect وChrome.pl وFlosoft.biz وi-pobox.net وhosted.im.

معظم هذه الخدمات موحدة – بحيث يمكن لمستخدمي خدمة واحدة التواصل مع مستخدمي خدمة أخرى.

يُستخدم بروتوكول XMPP أيضًا في عمليات نشر الخدمات غير المتعلقة بالمراسلة الفورية، بما في ذلك أنظمة الشبكات الذكية مثل تطبيقات الاستجابة للطلب ، والبرمجيات الوسيطة الموجهة نحو الرسائل، وكبديل للرسائل النصية القصيرة لتوفير خدمة الرسائل النصية على العديد من تطبيقات الهواتف الذكية .

عمليات النشر غير الأصلية

تستخدم بعض أكبر شركات خدمات المراسلة، أو كانت تستخدم، أشكالًا مختلفة من بروتوكولات XMPP في أنظمتها الخلفية دون الكشف عن ذلك بالضرورة لمستخدميها النهائيين. [ 20 ] [ 21 ] ومن الأمثلة على ذلك جوجل ، التي أطلقت في أغسطس 2005 خدمة جوجل توك ، وهي نظام يجمع بين بروتوكول نقل الصوت عبر الإنترنت (VoIP) والمراسلة الفورية، ويستخدم بروتوكول XMPP للمراسلة الفورية كأساس لبروتوكول إشارات نقل الصوت والملفات المسمى جينجل . لم يتضمن الإطلاق الأولي اتصالات بين الخوادم ؛ وقد فعّلت جوجل هذه الميزة في 17 يناير 2006. [ 22 ] أضافت جوجل لاحقًا وظيفة الفيديو إلى جوجل توك، مستخدمةً أيضًا بروتوكول جينجل للإشارات. في مايو 2013، أعلنت جوجل عن إزالة توافق XMPP من جوجل توك فيما يخص اتحاد الخوادم، مع الإبقاء على دعم اتصال العميل بالخادم. [ 23 ] ومنذ ذلك الحين، تم إيقاف جوجل توك نهائيًا من مجموعة منتجات جوجل.

في يناير 2008، أطلقت شركة AOL دعمًا تجريبيًا لبروتوكول XMPP لخدمة AOL Instant Messenger (AIM)، [ 24 ] مما أتاح لمستخدمي AIM التواصل باستخدام هذا البروتوكول. إلا أنه في مارس 2008، تم إيقاف هذه الخدمة. واعتبارًا من مايو 2011، أصبحت AOL تقدم دعمًا محدودًا لبروتوكول XMPP. [ 25 ]

في فبراير 2010، أتاح موقع التواصل الاجتماعي فيسبوك ميزة الدردشة لتطبيقات الطرف الثالث عبر بروتوكول XMPP. [ 26 ] إلا أن بعض الوظائف لم تكن متاحة عبر XMPP، وتوقف الدعم في أبريل 2014. [ 27 ] وفي عام 2024، استجابةً لقانون الأسواق الرقمية للاتحاد الأوروبي، أُجبرت شركة ميتا على تمكين مستوى أعلى من التوافق بين منتجاتها واتساب وفيسبوك ماسنجر (وكلاهما يستخدمان بروتوكول XMPP مغلقًا) وأنظمة XMPP الأخرى. [ 28 ] يصف هذا مسارًا محتملاً لأطراف ثالثة للتوافق مع منتجات ميتا XMPP، وهو مستوى أقل بكثير من التوافق الحقيقي للاتحاد.

وبالمثل، في ديسمبر 2011، أصدرت مايكروسوفت واجهة XMPP لخدمة مايكروسوفت ماسنجر . [ 29 ] كما وفر سكايب ، خليفتها الفعلي، دعمًا محدودًا لبروتوكول XMPP. [ 30 ] ويُعد أباتشي ويف مثالًا آخر. [ 31 ]

يُعدّ بروتوكول XMPP المعيار الفعلي للدردشة الخاصة في منصات الألعاب مثل Origin [ 32 ] و PlayStation ، بالإضافة إلى Xfire و Raptr اللذين توقفا عن العمل الآن . [ 33 ] ويُستثنى من ذلك منصتا Steam [ 34 ] و Xbox LIVE ؛ حيث تستخدم كلتاهما بروتوكولات مراسلة خاصة بهما .

التاريخ والتطور

شعار جابر

بدأ جيريمي ميلر العمل على تقنية Jabber في عام 1998 وأصدر الإصدار الأول من jabberdالخادم في 4 يناير 1999. [ 35 ] ركز مجتمع Jabber المبكر على البرامج مفتوحة المصدر، وخاصة خادم jabberd، ولكن النتيجة الرئيسية أثبتت أنها تطوير بروتوكول XMPP.

شكّلت فرقة عمل هندسة الإنترنت (IETF) فريق عمل XMPP في عام 2002 لإضفاء الطابع الرسمي على البروتوكولات الأساسية كتقنية مراسلة فورية وحالة اتصال معتمدة من IETF. وشكّل بروتوكول Jabber المبكر ، الذي طُوّر في عامي 1999 و2000، الأساس لبروتوكول XMPP كما نُشر في RFC 3920 و RFC 3921 في أكتوبر 2004 (كانت التغييرات الرئيسية التي طرأت أثناء عملية الصياغة الرسمية من قِبل فريق عمل XMPP التابع لـ IETF هي إضافة TLS لتشفير القناة و SASL للمصادقة). كما أصدر فريق عمل XMPP المواصفات RFC 3922 و RFC 3923. وفي عام 2011، استُبدلت RFC 3920 و RFC 3921 بـ RFC 6120 و RFC 6121 على التوالي، حيث حدّدت RFC 6122 تنسيق عنوان XMPP. في عام 2015، تم استبدال RFC 6122 بـ RFC 7622. بالإضافة إلى هذه البروتوكولات الأساسية الموحدة في IETF، فإن مؤسسة معايير XMPP (المعروفة سابقًا باسم مؤسسة برمجيات Jabber) نشطة في تطوير امتدادات XMPP مفتوحة المصدر.

كانت Jabber.org أول خدمة مراسلة فورية تعتمد على بروتوكول XMPP، [ 18 ] وقد استمرت في العمل بشكل متواصل وقدمت حسابات مجانية منذ عام 1999. [ 36 ] من عام 1999 وحتى فبراير 2006، استخدمت الخدمة برنامج jabberd كخادم لها، ثم انتقلت إلى ejabberd (وكلاهما خادمان مجانيان لتطبيقات البرامج). في يناير 2010، انتقلت الخدمة إلى برنامج M-Link الخاص بشركة Isode Ltd. [ 37 ]

في سبتمبر 2008، استحوذت شركة سيسكو سيستمز على شركة جابر، الشركة المصنعة للمنتج التجاري جابر إكس سي بي. [ 38 ]

تقوم مؤسسة معايير XMPP (XSF) بتطوير ونشر امتدادات لبروتوكول XMPP من خلال عملية وضع معايير تركز على بروتوكولات امتداد XMPP (XEPs، المعروفة سابقًا باسم مقترحات تحسين Jabber أو JEPs). وتُستخدم الامتدادات التالية على نطاق واسع بشكل خاص:

إنترنت الأشياء

تُستخدم ميزات بروتوكول XMPP، مثل الاتحاد عبر النطاقات، والنشر/الاشتراك، والمصادقة، وأمانه حتى بالنسبة للأجهزة المحمولة، لتطبيق إنترنت الأشياء . وتشمل التطبيقات التجريبية عدة امتدادات لبروتوكول XMPP، منها: تنسيق تبادل XML الفعال (EXI)؛ [ 46 ] بيانات المستشعرات؛ [ 47 ] التزويد؛ [ 48 ] التحكم؛ [ 49 ] المجمعات؛ [ 50 ] الاكتشاف. [ 51 ]

تم توثيق هذه الجهود في صفحة مخصصة لإنترنت الأشياء في ويكي XMPP [ 52 ] وفي القائمة البريدية لإنترنت الأشياء XMPP. [ 53 ]

المواصفات والمعايير

أصدرت مجموعة عمل بروتوكول XMPP التابعة لـ IETF سلسلة من وثائق طلب التعليقات (RFC):

  • RFC 3920 (تم استبداله بـ RFC 6120 )
  • RFC 3921 (تم استبداله بـ RFC 6121 )
  • RFC 3922
  • RFC 3923
  • RFC 4622 (تم استبداله بـ RFC 5122 )
  • RFC 4854
  • RFC 4979
  • RFC 6122 (تم استبداله بـ RFC 7622 )

أهم هذه المواصفات وأكثرها تطبيقاً على نطاق واسع هي:

  • RFC 6120 ، بروتوكول المراسلة والحضور القابل للتوسيع (XMPP): الأساسي ، يصف مراسلة العميل والخادم باستخدام دفقين مفتوحين من XML . يتكون كل دفق من XML من < presence/ > و < message/ > و < iq/ > (معلومات/استعلام). يتم التحقق من صحة الاتصال باستخدام بروتوكول طبقة المصادقة والأمان البسيطة (SASL) وتشفيره باستخدام بروتوكول أمان طبقة النقل (TLS).
  • RFC 6121 ، بروتوكول المراسلة والحضور القابل للتوسيع (XMPP): المراسلة الفورية والحضور يصف المراسلة الفورية (IM)، وهي التطبيق الأكثر شيوعًا لـ XMPP.
  • يصف RFC 7622 ، بروتوكول المراسلة والحضور القابل للتوسيع (XMPP): تنسيق العنوان، قواعد عناوين XMPP، والتي تُسمى أيضًا JabberIDs أو JIDs. تستخدم JIDs حاليًا PRECIS (كما هو مُعرّف في RFC 7564 ) للتعامل مع أحرف Unicode خارج نطاق ASCII.

المعايير المتنافسة

لطالما اعتُبر بروتوكول XMPP منافسًا لبروتوكول SIMPLE ، الذي يعتمد على بروتوكول بدء الجلسة (SIP)، باعتباره البروتوكول القياسي للمراسلة الفورية وإشعارات التواجد. [ 54 ] [ 55 ]

يمكن اعتبار امتداد XMPP للدردشة متعددة المستخدمين [ 40 ] منافسًا لـ IRC ، على الرغم من أن IRC أبسط بكثير، ويحتوي على ميزات أقل بكثير، ويستخدم على نطاق أوسع بكثير.

توفر ملحقات XMPP للنشر والاشتراك [ 41 ] العديد من الميزات نفسها التي يوفرها بروتوكول قوائم الانتظار المتقدمة للرسائل (AMQP).

انظر أيضاً

مراجع

  1. "Jabber Inc" . Cisco.com . تم الاطلاع عليه بتاريخ 24 نوفمبر 2012 .
  2. يوهانسون، ليف (18 أبريل 2005). "XMPP كـ MOM - ندوة البرمجيات الوسيطة لدول الشمال الكبرى (GNOMIS)" (ملف PDF) . أوسلو: جامعة ستوكهولم. مؤرشف من النسخة الأصلية (ملف PDF) في 10 مايو 2011.
  3. 1 2 سانت أندريه، ب. (مارس 2011). بروتوكول المراسلة والحضور القابل للتوسيع (XMPP): النواة . IETF . doi : 10.17487/RFC6120 . RFC 6120. تم الاطلاع عليه في 4 مايو 2014 .
  4. "قاعدة مستخدمي جابر للمراسلة الفورية تتجاوز قاعدة مستخدمي آي سي كيو" (بيان صحفي). مؤسسة معايير إكس إم بي بي . 22 سبتمبر 2003. مؤرشف من الأصل في 3 نوفمبر 2007. تم الاطلاع عليه في 30 نوفمبر 2007 .
  5. "استخدام بروتوكول أمان طبقة النقل (TLS) في بروتوكول المراسلة والحضور القابل للتوسيع (XMPP) RFC 7590" . IETF . تم الاطلاع عليه في 4 يناير 2026 .
  6. مؤسسة معايير XMPP (3 أكتوبر 2003). ""XEP-0029: تعريف مُعرّفات جابر (JIDs)"" بروتوكول المراسلة والحضور القابل للتوسيع . تم الاطلاع عليه بتاريخ 10 نوفمبر 2019. "
  7. RFC 6122
  8. "بروتوكول المراسلة والحضور القابل للتوسيع (XMPP): النواة" . xmpp.org . تم الاطلاع عليه في 21 سبتمبر 2023 .
  9. جو هيلدبراند؛ كريج كايس؛ ديفيد وايت (3 يونيو 2009). "XEP-0025: استطلاع جابر HTTP" . Xmpp.org . تم الاطلاع عليه في 24 نوفمبر 2012 .
  10. 1 2 إيان باترسون؛ ديف سميث؛ بيتر سانت أندريه؛ جاك موفيت (2 يوليو 2010). "XEP-0124: تدفقات ثنائية الاتجاه عبر بروتوكول HTTP المتزامن ( [ BOSH ] )" . Xmpp.org . تم الاطلاع عليه في 24 نوفمبر 2012 .
  11. ستاوت، لانس؛ موفيت، جاك؛ سيستاري، إريك (أكتوبر 2014). بروتوكول فرعي قابل للتوسيع للمراسلة والحضور (XMPP) لبروتوكول WebSocket (تقرير). فريق عمل هندسة الإنترنت.
  12. "المواصفات" . xmpp.org . XSF . ص 1. تم الاطلاع عليه في 6 يناير 2017 . 
  13. 1 2 "XEP-0030: اكتشاف الخدمة" . xmpp.org . 3 أكتوبر 2017.
  14. "برنامج Lotus Sametime 7.5 يعمل بالتوافق مع AIM وGoogle Talk"، eWeek، 6 ديسمبر 2006، Eweek.com
  15. «لوتس تُطلق بوابة لدمج خدمات المراسلة الفورية مع AOL وYahoo وGoogle»، Network World، 6 ديسمبر 2006، Networkworld.com ، مؤرشف في 1 نوفمبر 2008، على Wayback Machine
  16. "الاتصالات الموحدة: توحيد الاتصالات عبر الشبكات المختلفة"، بيان صحفي من مايكروسوفت، 1 أكتوبر 2009، Microsoft.com، مؤرشف في 5 يناير 2010، على موقع Wayback Machine
  17. "العملاء" . xmpp.org .
  18. 1 2 3 4 5 6 "برنامج XMPP" . منظمة XMPP . تم الاطلاع عليه في 19 سبتمبر 2024 .
  19. "سؤال وجواب رقم 270 - ما هو LJ Talk؟" . Livejournal.com. 27 سبتمبر 2010. تم الاطلاع عليه بتاريخ 24 نوفمبر 2012 .
  20. "مرجع بروتوكول مراسلة XMPP" . www.sent.dm. 25 ديسمبر 2024. مؤرشف من الأصل في 25 ديسمبر 2024. تم الاطلاع عليه في 25 ديسمبر 2024 .
  21. ريموند، ميكائيل (23 فبراير 2014). "واتساب، فيسبوك، إرلانج، والمراسلة الفورية: كل شيء بدأ مع إيجابيرد" . بروسيس وان - مدونة . تم الاطلاع عليه في 17 سبتمبر 2020 .
  22. بيرد، غاري (17 يناير 2006). "اتحاد XMPP" . تم الاسترجاع في 30 نوفمبر 2007 .
  23. "كيف يمكنني السماح لعميل أو خادم XMPP الداخلي الخاص بي بالاتصال بخدمة Talk؟" . support.google.com .
  24. جنسن، فلوريان (17 يناير 2008). "شركة AOL تتبنى بروتوكول XMPP المعروف أيضًا باسم Jabber" . مؤرشف من الأصل في 20 يناير 2008. تم الاطلاع عليه في 17 يناير 2008 .
  25. "بوابة AOL XMPP" . 14 مايو 2011. مؤرشف من الأصل في 22 مايو 2011. تم الاطلاع عليه في 14 مايو 2011 .
  26. "محادثة فيسبوك متاحة الآن في كل مكان" . تم الاطلاع عليه بتاريخ 11 فبراير 2010 .
  27. "واجهة برمجة تطبيقات الدردشة (مهملة)" . مؤرشفة من الأصل في 14 يوليو 2015. تم الاطلاع عليها في 5 يوليو 2015 .
  28. بروير، ديك. "جعل قابلية التشغيل البيني للرسائل مع جهات خارجية آمنة للمستخدمين في أوروبا" . الهندسة في ميتا . منصات ميتا . تم الاسترجاع في 24 مارس 2026 .
  29. أوباسانجو، دار (14 ديسمبر 2011). "بإمكان أي شخص إنشاء عميل ماسنجر - مع إمكانية الوصول إلى المعايير المفتوحة عبر XMPP" . Windowsteamblog.com . تم الاطلاع عليه في 24 نوفمبر 2012 .
  30. روتجرز، جانكو (28 يونيو 2011). "سكايب يضيف دعم XMPP، هل ستكون قابلية التشغيل البيني لبرامج المراسلة الفورية هي الخطوة التالية؟ — أخبار وتحليلات تقنية" . Gigaom.com. مؤرشف من الأصل في 29 يونيو 2011. تم الاطلاع عليه في 24 نوفمبر 2012 .
  31. "بروتوكول اتحاد جوجل ويف" . مؤرشف من الأصل في 4 مارس 2016.
  32. «منصة ألعاب أوريجين ترسل بيانات تسجيل الدخول والرسائل كنص عادي» . سلايت فيوتشر. 30 يونيو 2015. مؤرشف من الأصل في 17 يناير 2017. تم الاطلاع عليه في 22 فبراير 2016 .
  33. «انتهى عصر رابتر. لن يكون هناك المزيد من ألعاب الفيديو المتطورة بعد عام من تخلي AMD عن التطبيق» . Pcgamesn.com. ١٣ سبتمبر ٢٠١٧. تم الاطلاع عليه بتاريخ ١٦ أكتوبر ٢٠٢٠ .
  34. "libsteam.c" . جيت هاب . تم الاطلاع عليه في 22 فبراير 2016 .
  35. "نظام المراسلة الفورية المفتوح" . Tech.slashdot.org. 4 يناير 1999. تم الاطلاع عليه بتاريخ 24 نوفمبر 2012 .
  36. ^ مارسيل جاني (1 مارس 2003). "الدردشة مع الشيف" . مجلة لينكس .
  37. "Jabber.org – ترحيل خادم XMPP" . 12 أغسطس 2009. مؤرشف من الأصل في 13 ديسمبر 2009. تم الاطلاع عليه في 14 ديسمبر 2009 .
  38. "سيسكو تعلن عن اتفاقية نهائية للاستحواذ على جابر" . مؤرشف من الأصل في 23 ديسمبر 2009. تم الاطلاع عليه في 2 يناير 2010 .
  39. "XEP-0004: نماذج البيانات" . xmpp.org . 8 يونيو 2021.
  40. 1 2 "XEP-0045: دردشة متعددة المستخدمين" . xmpp.org . 4 مارس 2021.
  41. 1 2 "XEP-0060: النشر والاشتراك" . xmpp.org . 7 سبتمبر 2021.
  42. "XEP-0163: بروتوكول الأحداث الشخصية" . xmpp.org . 18 مارس 2018.
  43. "XEP-0071: XHTML-IM" . xmpp.org . 8 مارس 2018.
  44. "XEP-0096: نقل ملفات SI" . xmpp.org . 29 نوفمبر 2017.
  45. "XEP-0115: إمكانيات الكيانات" . xmpp.org . 5 مايو 2020.
  46. "XEP-0322: تنسيق تبادل XML الفعال (EXI)" . xmpp.org . 25 يناير 2018.
  47. "XEP-0323: إنترنت الأشياء - بيانات المستشعرات" . xmpp.org . 20 مايو 2017.
  48. "XEP-0324: إنترنت الأشياء - التزويد" . xmpp.org . 4 مارس 2021.
  49. "XEP-0325: إنترنت الأشياء - التحكم" . xmpp.org . 4 مارس 2021.
  50. "XEP-0326: إنترنت الأشياء - أجهزة التجميع" . xmpp.org . 20 مايو 2017.
  51. "XEP-0347: إنترنت الأشياء - الاكتشاف" . xmpp.org . 3 نوفمبر 2018.
  52. "صفحات التقنية/أنظمة إنترنت الأشياء" . xmpp.org .
  53. "صفحة معلومات إنترنت الأشياء" . jabber.org . مؤرشفة من الأصل في 30 يونيو 2014. تم الاطلاع عليها في 26 أغسطس 2014 .
  54. "بروتوكول XMPP يواجه معيار SIMPLE"، مجلة إنفوورلد، 17 أبريل 2003
  55. "XMPP مقابل SIMPLE: السباق نحو معايير المراسلة"، مجلة إنفوورلد، 23 مايو 2003، Infoworld.com