الخلاصة

  • تمثل state في RFC 8620 بيانات نوع كامل داخل حساب؛ وعندما تتغير، على العميل أن يهمل ذاكرته المؤقتة أو يطلب الفروق الدقيقة.
  • يبين StateChange الحسابات والأنواع التي تحركت حالتها، لكنه لا يحمل بمفرده الفاعل أو القيم قبل وبعد أو السبب أو الترتيب التدقيقي أو نتيجة صندوق البريد.

إشارة تستدعي طلباً آخر

صمم Neil Jenkins وChris Newman في RFC 8620 آلية تمنع العميل المتحرك من تنزيل كل البيانات مراراً. تعيد Foo/get سلسلة قصيرة تمثل حالة نوع البيانات في الحساب. إذا تغيرت البيانات وجب أن تتغير السلسلة، وإذا لم تتغير فمن المعتاد أن تعود القيمة نفسها.

لا تصف السلسلة تفاصيل التغيير. فهي تمثل كل بيانات ذلك النوع في الحساب، لا الكائنات التي ظهرت في رد واحد فقط. عندما يرى العميل قيمة مختلفة، يطلب منه المعيار أن يتخلى عن النسخة المخزنة أو أن يستدعي Foo/changes للحصول على الفروق. لذلك فالحالة حد لتطابق الذاكرة المؤقتة وليست سرداً لواقعة تشغيلية.

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

الفروق ليست سجلاً كاملاً أيضاً

تستقبل /changes قيمة sinceState وتعيد oldState وnewState، وقد تعيد معرفات للكائنات المنشأة أو المحدثة أو المحذوفة. هذا مناسب لجعل نسخة العميل متوافقة. لكنه لا يصبح تلقائياً تدقيقاً كاملاً. فإثبات الفاعل يحتاج هوية موثقة وطلباً مترابطاً وقرار إذن؛ وإثبات المحتوى يحتاج القيم ذات الصلة قبل وبعد؛ وإثبات التسلسل يحتاج دلالات زمنية وضمانات سلامة واحتفاظ.

قد يضغط دفع واحد عدة تغييرات

يربط StateChange الحسابات بحالات أنواع البيانات التي تغيرت منذ الدفع السابق. ويقارن العميل هذه القيم بما لديه ثم يجلب الفروق عند الحاجة. مثال RFC يسمح للخادم بجمع تعديلات من حسابين في كائن دفع واحد. هذه ميزة للمزامنة، لكنها تمنع معاملته كسجل حدث واحد مقابل حدث واحد.

السؤال دليل JMAP المفيد الدليل الإضافي
هل النسخة المحلية حديثة؟ state مطابق لا شيء لهذا السؤال الضيق
ما الذي يجب مزامنته؟ معرفات /changes محتوى الكائن عند الحاجة
من عدّل الصندوق؟ لا يثبته StateChange وحده هوية وطلب وإذن
ما النتيجة عند المستلم؟ لا تثبتها الحالة العامة ملاحظة عند التسليم أو الصندوق أو القراءة

قيمة تصميم Jenkins أنه يعلن حدود الإشارة. تحتفظ العملية الجيدة بدليل المزامنة للمزامنة، وبسجل تدقيق مستقل للادعاءات التي تحمل مسؤولية.

المصادر