سؤال

إذا كان لدي نظام منفصل مع مفهوم المستخدمين وجود ما هو أنسب المعمارية لإنشاء جسر إلى XMPP خادم الشبكة ؟ بقدر ما أستطيع أن أقول هناك ثلاث طرق أساسية:

  1. بمثابة الخادم.يؤدي هذا إلى إنشاء نقطة اتصال واحدة ، ولكن أخشى أن ذلك له انعكاسات على التوافق ، ويحتمل أن يخلق التعقيد في نظام محاكاة ملقم.

  2. بمثابة العملاء.يبدو أن هذا يعني أنني بحاجة اتصال واحد لكل مستخدم في نظام بلدي ، والتي لن مقياس جيد.

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

أي اقتراحات أو المفاضلات سيكون موضع تقدير.على سبيل المثال ، من شأن أي من هذه الحلول تتطلب تشغيل التعليمات البرمجية داخل الهدف XMPP server (على الأرجح لا شيء يمكنني القيام به).

هل كانت مفيدة؟

المحلول

على XMPP البروتوكول عبارة كنت قد سمعت من المرجح أن تفعل مع وسائل النقل.النقل هو الخادم الذي يصل إلى حد خادم XMPP غير خادم XMPP.عن طريق تشغيل النقل يمكنني استخدام بلدي جابر العميل في التحدث إلى شخص ما باستخدام, يقول, MSN Messenger.

النقل عادة ما يربط مرة واحدة إلى الشبكة البعيدة عن كل JID التي تراها على الانترنت.هذا الخيار الخاص بك 2 في الاتجاه المعاكس.هذا هو لأنه لا توجد علاقة خاصة بين النقل غير XMPP الشبكة ؛ النقل هو ببساطة بوصفها مجموعة من العملاء العادية.لهذا العمل ، XMPP العملاء يجب التسجيل أولا مع النقل ، وإعطاء بيانات اعتماد تسجيل الدخول على الشبكة عن بعد ، ويسمح النقل لعرض وجودها.

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

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

في حال كنت لم أر هذه ، قد تجد من المفيد لهم:

على أمل أن يساعد.

نصائح أخرى

أنا أيضا أعمل على نظام مماثل.

أنا ذاهب مع بوابة/مكون الطريق.لقد بحثت في عدة خيارات و استقر مع هذا واحد.

بوابة هو في الأساس مكون لغرض سد Jabber/XMPP مع شبكة أخرى.سيكون لديك لبناء معظم الأشياء أمرا مفروغا منه عند استخدام XMPP كعميل.أشياء مثل قائمة التحكم.

هناك القليل جدا من المساعدة على الانترنت على التصميم الفعلي و المبنى مكون.مثل الإجابة أعلاه وجدت أن xmpp بروتوكولات/ملحقات للمساعدة.أهمها:

القراءة من خلال هذه سوف تظهر لك ما XEPs سوف يكون من المتوقع أن تكون قادرة على التعامل معها.تجاهل الأشياء التي سيتم التعامل معها من قبل ملقم مكون الخاص بك سوف يكون اتتشيد إلى.

فمن العار أن Djabberd لديه مثل ضعف توثيق مثل نظام "كل شيء هو وحدة" أعطى إمكانية الخلفية من الخادم أن واجهة مباشرة إلى شبكة أخرى.أنا جعلت أي تقدم على هذا.

وهناك أساسا نوعين من خادم إلى خادم (s2s) اتصالات.الأول هو إما يسمى بوابة أو النقل ، ولكن هم نفس الشيء.وربما هذا هو النوع الذي تبحث عنه.لم أتمكن من العثور على وثائق محددة غير XMPP الجانب ، ولكن كيف XMPP يفكر به الترجمات القديمة خوادم في http://xmpp.org/extensions/xep-0100.html.النوع الثاني ليس هو موضح في أي إضافية XEPs إنه العادية XMPP s2s اتصالات.ابحث عن "ملقم إلى ملقم الاتصالات" في RFC 3920 أو RFC 3920bis عن أحدث مشروع التحديث.

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

الذي يجلب لنا حق أحد أهم خيارات التصميم -- عليك أن تقرر حقا الأشياء التي كنت تسير على خريطة XMPP من الخدمة و ما كنت لا.هذه الميزة و حالة استخدام أوصاف سوف تدفع الهيكل العام.على سبيل المثال ، هل هذا النقل التحدث AOL أو MSN الدردشة الخدمات ؟ ثم سوف تحتاج إلى وسيلة خريطة ما يعادلها من القوائم ، الوجود والحفاظ على الدورة المعلومات جنبا إلى جنب مع عمليات تسجيل الدخول وكلمات المرور من المستخدمين إلى ملقم بعيد.وذلك لأن النقل الخاصة بك سوف تحتاج إلى أدعي أن يكون هؤلاء المستخدمين سوف تحتاج إلى تسجيل الدخول لهم.

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

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

ما المعمارية يجب عليك استخدام يعتمد على غير XMPP النظام.

  1. هل تعمل غير XMPP النظام ؟ إذا كان الجواب نعم ، يجب أن تجد طريقة لإضافة XMPP-S2S واجهة هذا النظام ، وبعبارة أخرى ، وجعلها بمثابة خادم XMPP.AOL هو استخدام هذا النهج من أجل الهدف.لسوء الحظ أنها حدت من بوابة مجموعات نقاش.

  2. أنت لا تعمل غير XMPP النظام ولكن لديها اتحاد واجهة التي يمكنك استخدامها - أنا.هـ.العبارة يمكن أن نتحدث إلى نظام آخر كخادم و لديه مساحة خاصة به.في هذه الحالة, يمكنك بناء بوابة بمثابة الاتحادية الخادم على كلا الجانبين.لأنني لا أعرف أي مثال العبارة التي تستخدم هذا النهج ولكن يمكن استخدامها إذا كنت ترغب في بناء العام XMPP إلى رشفة الجسر.

  3. إذا كان غير XMPP نظام لا تعطيك اتحاد واجهة, ثم لديك أي خيار آخر ولكن بوصفها مجموعة من العملاء.في XMPP العالم ، وهذا ما يسمى "النقل".الاختلافات بين النقل و الخادم العادي هي في الأساس:

    • على JIDs النقل يتم تعيين من نظام آخر (على سبيل المثالjohn.doe\40example.net@msngateway.example.org - حقا قبيحة!)
    • XMPP للمستخدمين الذين يرغبون في استخدام وسائل النقل تحتاج إلى إنشاء حساب على غير XMPP النظام وإعطاء بيانات اعتماد تسجيل الدخول من حساب على خدمة النقل.بروتوكول XMPP حتى بروتوكول التمديد التي تسمح XMPP للمستخدمين القيام النقل التسجيلات في الفرقة.

واحدة نهج آخر هو العمل مع خادم XMPP البائع.الأكثر الداخلية واجهات برمجة التطبيقات التي تجعل حقن وجود الممكن من تطبيقات الطرف الثالث.على سبيل المثال ، جابر XCP يوفر API لهذا هذا هو حقا سهلة الاستخدام.

(الكشف:أنا أعمل جابر, Inc الشركة خلف جابر XCP)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top