العمليات الميدانية
برمجيات ميدانية تعمل دون اتصال: بروتوكول قرار لعمليات موثوقة
إطار معماري واختبارات قبول لالتقاط العمليات الميدانية ومزامنتها وضبطها دون فقدان البيانات أو تكرارها.

القرار المدعوم
لا يكون البرنامج الميداني مصمما فعلا للعمل دون اتصال إلا إذا استطاع المستخدم الاطلاع على البيانات اللازمة وتسجيل عملية حرجة ومعرفة حالتها الحقيقية بلا شبكة. تحفظ القاعدة المحلية حالة العمل، وتحمل كل كتابة معرفا ثابتا، ولا تنشئ إعادة المزامنة تكرارا، وتخضع التعارضات لقاعدة أعمال واضحة. التخزين المؤقت أو زر إعادة المزامنة وحده لا يكفي.
الملخص التنفيذي
- اعتماد المصدر المحلي للقراءة داخل التطبيق ثم مطابقته مع الخادم.
- فصل البيانات المرجعية والأدلة الميدانية عن المعاملات التي تلزم المخزون أو السعر أو الدفع.
- جعل كل كتابة قابلة لإعادة المحاولة بأمان عبر معرف للعملية وإصدار أساس وحالة ظاهرة.
- عدم الإطلاق قبل اختبار الانقطاع والتكرار والتعارض والاسترجاع بعد الإغلاق القسري.
تعريف العمل دون اتصال كقدرة تشغيلية
لا يعني العمل دون اتصال مجرد إعادة فتح شاشة مخزنة. يجب أن يعرف الفريق الميداني المهام المتاحة ومدى حداثة البيانات والعمليات التي ما زالت تنتظر تأكيد الخادم. يمنع هذا الفصل إظهار نجاح غير حقيقي.
تضع إرشادات Android للتطبيقات المصممة للعمل دون اتصال مصدرا محليا أمام طبقات التطبيق العليا. تغذي الشبكة هذا المصدر وتطابقه، لكن القراءة لا تعتمد في كل مرة على طلب بعيد. بالنسبة إلى Atlas، يجب أن يكون العمل المحلي واضحا ودائما على الجهاز وقابلا للتتبع حتى يقبله الخادم.
مبدأ معماري متحقق منه
توصي إرشادات Android بمصدر محلي بوصفه مصدر القراءة المرجعي للتطبيق، وتفصل استراتيجيات الكتابة حسب درجة حرج العملية.
اختيار استراتيجية لكل نوع من الكتابة
لا تخضع كل البيانات للقاعدة نفسها. يمكن حفظ ملاحظة أو صورة محليا وإرسالها لاحقا، بينما يغير صرف مخزون أو اعتماد سعر أو تحصيل مالي حالة مشتركة ويتطلب تحكما أقوى. صنّفوا العملية قبل اختيار التقنية.
| العملية | السلوك دون اتصال | الجهة النهائية | شرط الموثوقية |
|---|---|---|---|
| ملاحظة أو صورة أو قراءة | الحفظ محليا وإضافتها إلى الطابور | الخادم بعد فحص الصيغة والصلاحيات | حفظ الملف والوقت والمؤلف والمعرف المحلي |
| إغلاق تدخل ميداني | السماح بحالة معلقة | الخادم بعد التحقق من الشروط | إظهار معلقة أو مقبولة أو مرفوضة بوضوح |
| طلب أو حركة مخزون | إنشاء نية دون ضمان المخزون النهائي | الخادم وقواعد الحجز | نتيجة حتمية عند تغير المخزون أو السعر |
| تحصيل مالي | التقاط الدليل وتقييد الإجراءات حسب الخطر | النظام المالي أو نظام المطابقة | معرف فريد ومسار تدقيق ومعالجة للفروقات |
قرار Atlas
لا نوصي بوضع موحد للعمل دون اتصال. يجب أن تتراجع حرية الجهاز كلما ألزمت العملية مخزونا مشتركا أو سعرا تعاقديا أو تدفقا ماليا.
كتابة عقد المزامنة قبل تصميم الشاشات
يجب أن تقبل كل عملية محلية إعادة الإرسال بعد الانقطاع دون إحداث أثر أعمال ثان. ينشئ الجهاز معرفا ثابتا قبل الإرسال، ويحفظ الخادم المعرف مع النتيجة ويعيد النتيجة نفسها عند تكرار الطلب. تكمل هذه الآلية دلالة عدم تكرار الأثر في HTTP.
يحمل العقد أيضا معرف الكيان وإصدار الأساس والمؤلف ووقت الالتقاط ووقت الاستلام ونوع العملية. وتميز الحالة المحلية، على الأقل، بين في الطابور وقيد المعالجة ومقبولة وتحتاج إلى تصحيح. رفض الأعمال ليس عطلا في الشبكة.
- إنشاء معرف العملية على الجهاز والاحتفاظ به بعد إعادة التشغيل.
- إرسال إصدار الأساس لاكتشاف التعديل المتزامن.
- حفظ استجابة الخادم مع رقم الإصدار الناتج.
- إعادة المحاولة بتأخير متزايد عند الأخطاء التقنية.
- استخدام طابور استثناء مستقل لرفض الأعمال الذي يحتاج قرارا بشريا.
ممارسة للموثوقية
يعالج عدم تكرار الأثر إعادة الطلب، وتعالج الإصدارات التعارض. كلاهما ضروري لأن المعرف الفريد لا يحدد إصدار الأعمال الذي ينبغي تعديله.
حل التعارضات وفق معناها التشغيلي
قاعدة آخر كتابة سهلة البرمجة لكنها خطرة عندما تمحو دليلا أو تغير إسنادا أو تخفي حركة مخزون. يجب أن يعتمد الحل على نوع البيانات وأن يترك أثرا قابلا للتدقيق.
| نوع البيانات | القاعدة الموصى بها | ما يجب تجنبه |
|---|---|---|
| صورة أو توقيع أو قياس | إضافة دليل جديد دون استبدال السابق | الكتابة فوق الملف السابق |
| تعليق وصفي | حفظ النسختين أو طلب دمجهما | اعتماد آخر كتابة بصمت |
| إسناد مهمة | مقارنة الإصدار وطلب قرار عند تغيره | إعادة إسناد غير ظاهرة |
| كمية أو مخزون | تسجيل حركة ثم إعادة الحساب على الخادم | استبدال إجمالي مشترك مباشرة |
التعارضات موثقة بوضوح
تنص إرشادات Android على أن حل التعارض يتطلب الإصدارات والبيانات الوصفية. وتذكر قاعدة آخر كتابة كخيار شائع لا كقاعدة عامة.
تنفيذ اختبار قبول للانقطاع لا عرض مكتبي
يستخدم الاختبار الحاسم الأجهزة والأحجام والمسارات الحقيقية. اقطعوا الشبكة في اللحظة غير المناسبة، وأوقفوا التطبيق أثناء الكتابة، وأنشئوا تعديلا متزامنا من جهاز ثان. المطلوب إثبات ما يراه المستخدم وما يستلمه النظام، لا مجرد فراغ الطابور في النهاية.
- إنشاء عمليات عدة في وضع الطيران ثم إغلاق التطبيق وإعادة تشغيله ومزامنته.
- تكرار الإجراء نفسه والتحقق من حدوث أثر أعمال واحد فقط.
- تعديل السجل نفسه على جهازين والتحقق من قاعدة التعارض المعلنة.
- سحب صلاحية المستخدم أثناء الانقطاع والتحقق من رفض مضبوط عند عودة الشبكة.
- اختبار جهاز بوقت خاطئ وعدم اعتماد ساعته كترتيب مطلق.
- قياس عمر الطابور ونسبة الرفض والتعارضات ووقت الاسترجاع والعمليات العالقة.
اتخاذ قرار إطلاق أو إطلاق مشروط أو عدم إطلاق
| القرار | الشروط الدنيا |
|---|---|
| إطلاق | لا فقدان في السيناريوهات الحرجة، والتكرارات محيدة، والتعارضات مفسرة، والطابور مراقب، وإجراء الدعم مختبر |
| إطلاق مشروط | حصر العمل دون اتصال في الأدلة أو المسودات مع قيود ظاهرة على العمليات المشتركة |
| عدم الإطلاق | إظهار النجاح قبل قبول الخادم، أو كتابة محلية غير دائمة، أو احتمال التكرار، أو غياب قاعدة تعارض موثقة |
موقف القرار
ضعف التغطية ليس الخطر الوحيد. قد يكون البرنامج الذي يخفي الحالات المعلقة أخطر من برنامج يحد بوضوح ما يمكن فعله دون اتصال.
قرارات يجب اتخاذها الآن
الإجراءات الموصى بها
- 01حصر العمليات الميدانية وتأثيرها في المخزون والسعر والامتثال والدفع.
- 02تحديد الجهة النهائية والسلوك المتوقع دون شبكة لكل عملية.
- 03توثيق عقد الكتابة: المعرف والإصدار والحالات وأخطاء الأعمال.
- 04بناء حالات تعارض ممثلة بالتعاون مع فرق العمليات.
- 05تنفيذ اختبارات القبول ميدانيا وتحديد عتبات الإطلاق قبل النشر.
نقاط تستدعي الانتباه
- مؤشر أخضر يعني الحفظ على الجهاز فقط لا قبول الخادم.
- طابور محلي يُمحى عند التحديث أو تسجيل الخروج أو نقص التخزين.
- تمثيل حركة المخزون باستبدال إجمالي.
- حل آلي للتعارض بلا أثر أو مسار تصحيح.
الأسئلة الشائعة
هل يمكن أن يعمل تطبيق PWA دون اتصال فعلا؟
نعم، إذا صُمم واختُبر التخزين المحلي ودورة التحديث وطوابير الكتابة والاسترجاع وحدود المتصفح. اختيار PWA أو تطبيق أصلي لا يعوض عقد المزامنة.
هل ينبغي السماح بالطلبات دون شبكة؟
يمكن التقاط نية الطلب، لكن يجب أن يؤكد الخادم المخزون والسعر والشروط التجارية. وعلى الواجهة التمييز بين مسودة محلية وطلب مستلم وطلب مؤكد.
كيف نمنع تكرار العملية؟
أنشئوا معرفا ثابتا قبل أول إرسال، واجعلوا معالجة الخادم غير مكررة للأثر، واحفظوا النتيجة المرتبطة. أضيفوا الإصدارات لاكتشاف التعارضات التي ليست مجرد إعادة طلب.
المصادر والتحقق
آخر تحقق تحريري: 29 أوت 2026. تحيل الروابط إلى النصوص الأصلية والجهات الرسمية والأدلة المرجعية التي تمت مراجعتها.
- 01Build an offline-first app
Android Developers, Google. تم الاطلاع في 29 أوت 2026.
- 02Data layer
Android Developers, Google. تم الاطلاع في 29 أوت 2026.
- 03RFC 9110: HTTP Semantics, section 9.2.2 Idempotent Methods
RFC Editor. تم الاطلاع في 29 أوت 2026.
قرارات مرتبطة
تابعوا بملفات تشترك في السياق التشغيلي أو التقني أو سياق الحوكمة نفسه.
التجارة بين المؤسسات
طلبات الأعمال عبر واتساب: من الرسائل إلى مسار عمل مضبوط
قراءة الملفالتجارة بين المؤسسات
تسعير التوزيع بين المؤسسات: قواعد قابلة للتفسير والتدقيق
قراءة الملفالأمن السيبراني
ماذا تعني الاستراتيجية الجزائرية للأمن السيبراني 2025-2029 للمؤسسات
قراءة الملفمراجعة ميدانية
اختبروا المزامنة عبر مساراتكم الميدانية الحرجة.
نحدّد الحالات المحلية وعمليات الكتابة وقواعد التعارض واختبارات قبول الانقطاع قبل النشر.