English

المراسلة

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

الترتيب هو حيث تنكسر التطبيقات الساذجة. ساعات الأجهزة تختلف، ومشارك على اتصال بطيء، وآخر كان دون اتصال ساعة فتصل رسائله دفعة — وإن رتّب العميل بحسب الطابع الزمني، أمكن لشخصين رؤية المحادثة نفسها بترتيبين مختلفين، ما يجعل النص غير مترابط. والترتيب المنطقي الذي لا يعتمد على ساعات الحائط، وقاعدة محددة لإدراج الرسائل المتأخرة، هما الأساس الذي يقوم عليه كل ما عداه.

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

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

كيف نعمل

  • ترتيب الرسائل منطقي لا قائم على الساعة، فلا يرى شخصان المحادثة نفسها بشكل مختلف.
  • يُتخذ قرار التشفير في البداية بحسب ما يحتاجه المنتج، لأنه يقيّد البحث والإشعارات والإشراف والاستعادة.
  • يستخدم التسليم صندوق صادر يعيد المحاولة مع إزالة التكرار، فتصل الرسالة مرة واحدة رغم إنهاء التطبيق وانقطاع الاتصال.

ما يشمله هذا

اختر ما تحتاجه وأرسله إلينا.

ذات صلة