المزامنة دون اتصالOffline synchronization
طابور عمليات على الجهاز بمعرّف طلب فريد، يُرسل بالترتيب؛ الخادم يتجاهل المكرر ويقبل التعديل فقط إذا طابق رقم نسخة السجل.
الميزات التي تستخدمها: B34 العمل دون اتصال، B33 تطبيق المحامي على الجوال، B10 تقارير الجلسات ومخرجاتها، B19 تسجيل الوقت الفعلي والمتتبع المعلن
1الغرض والمصطلحات القانونية المرتبطة
لا فقدان ولا تكرار ولا كتابة فوق الأحدث.
2المدخلات وأنواعها ومصادرها
عناصر الطابور: client_request_id، العملية، row_version المعروف، البيانات.
3المخرجات والحالات
لكل عنصر: مقبول / مكرر / تعارض / مرفوض.
4خطوات المعالجة بالتسلسل
- الخادم يبحث عن
Sync Receiptبالمعرّف ← إن وُجد يعيد النتيجة السابقة. - إنشاء: ينفذ.
- تعديل: يقارن row_version؛ مختلف ← تعارض بالقيمتين.
- يحفظ الإيصال في المعاملة نفسها.
5الشروط والفروع والاستثناءات
صلاحية سُحبت أثناء الانقطاع ← مرفوض.
6Pseudocode كامل
Pseudocode
function sync(items, user):
for it in items:
if r := SyncReceipt.get(it.client_request_id): yield r.result; continue
with transaction():
if it.op.is_update:
doc = get_for_update(it.ref)
if doc.row_version != it.row_version: res = CONFLICT(server=doc, client=it.data)
else: apply(doc, it.data); doc.row_version += 1; res = ACCEPTED
else: res = create(it, user)
SyncReceipt.insert(it.client_request_id, user, res)
yield res7مثال اصطناعي خطوة بخطوة
الجهاز يرسل ساعة بالمعرّف X مرتين بسبب انقطاع ← سجل واحد.
8حالات الفشل والتعامل معها
انقطاع منتصف الإرسال ← الإيصال يجعل الإعادة آمنة.
9منع التكرار والتزامن
قفل السجل في التعديل؛ الإيصال فريد.
10الصلاحيات والتدقيق والأمن
صلاحيات المستخدم في كل عنصر.
11اختبارات الوحدات والتكامل والقبول
| المعرّف | النوع | السيناريو | النتيجة المتوقعة |
|---|---|---|---|
ALG-OS-01 | تكامل | إرسال مكرر | مرة واحدة |
ALG-OS-02 | تكامل | تعديل متعارض | تعارض |
12ما هو قاعدة تقنية وما هو قرار قانوني
| قاعدة تقنية (ينفذها المطور) | قرار قانوني (يعتمده مختص) |
|---|---|
| البروتوكول | لا يوجد |