انتقل إلى المحتوى
اللغة: العربية

أنظمة تعمل عند انقطاع الإنترنت: لماذا يهم ذلك في أسواقنا

حين يتوقف نظامك مع انقطاع الاتصال يتوقف البيع معه، وتتراكم العمليات على الورق. نشرح ما يعنيه نظام يعمل دون اتصال، وكيف تُضبط المزامنة والتعارض وترقيم المستندات قبل البرمجة.

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

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

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

ما الذي يجب أن يعمل دون اتصال

ليست كل عملية بحاجة إلى العمل دون اتصال، وبناء ذلك لكل شيء يضيف تعقيداً لا مبرر له. ابدأ من العمل نفسه واسأل: ما الذي لا يحتمل الانتظار؟ وغالباً تكون الإجابة قريبة من هذه القائمة:

  • البيع وإصدار الإيصال للعميل.
  • تسجيل المقبوضات النقدية.
  • استلام البضاعة وتسجيل حركات المخزون.
  • جرد المخزون في المستودع أو الفرع.
  • الاطلاع على الأسعار وبيانات الأصناف المحفوظة على الجهاز.

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

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

التخزين المحلي والمزامنة

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

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

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

ويُسجَّل مع كل عملية وقت إدخالها الفعلي على الجهاز، ووقت وصولها إلى الخادم، لأن التقارير تحتاج إلى الأول والمراجعة تحتاج إلى الثاني. ولا يُعتمد على ساعة الجهاز وحدها في ترتيب العمليات بين الفروع، لأن ساعات الأجهزة قد تختلف أو تُعدَّل يدوياً.

التعارض: حين يعدّل فرعان السجل نفسه

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

هذه أسئلة عمل قبل أن تكون أسئلة تقنية، ويجب أن تُحسم إجاباتها قبل البرمجة. ومن القواعد الشائعة لحلها:

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

قواعد حل التعارض قرارات عمل قبل أن تكون كوداً، ويجب أن يتفق عليها أصحاب العمل قبل أن يكتبها المطورون.

ترقيم المستندات وما يراه الموظف

حين يُصدر فرعان إيصالات دون اتصال، لا يستطيع أي منهما أن يسأل الخادم عن الرقم التالي. فإذا اعتمدت الأجهزة كلها تسلسلاً عاماً واحداً، تكررت الأرقام عند المزامنة وتداخلت المستندات.

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

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

ويحتاج المدير كذلك إلى صورة مقابلة في المركز: أي الفروع لم تتزامن منذ مدة، وأي الأجهزة لديها عمليات متأخرة. فالفرع الذي يبدو هادئاً في لوحة المتابعة قد يكون منقطعاً، لا خالياً من المبيعات.

أمان البيانات المحلية واختبار الانقطاع

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

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

أما الاختبار، فلا يكفي فيه أن ينجح النظام والشبكة متصلة. افصل الشبكة عن جهاز في بيئة الاختبار لساعات من العمل المحاكي، ثم أعد الاتصال وراقب: هل ظهرت العمليات في المركز كما هي، دون تكرار أو نقص؟

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

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

قائمة تحقق قبل البرمجة

  • قائمة مكتوبة بالعمليات التي يجب أن تستمر دون اتصال، وتلك التي تنتظر عودته.
  • تحديد البيانات التي تُحفظ على كل جهاز، ومدة بقائها عليه.
  • قواعد حل التعارض لكل نوع من البيانات، متفق عليها مع أصحاب العمل.
  • طريقة لترقيم المستندات لا تعتمد على الاتصال بالخادم.
  • حالة مزامنة ظاهرة للموظف، ومعالجة واضحة للعمليات المرفوضة.
  • حماية البيانات المحلية، وطريقة لإيقاف جهاز مفقود.
  • سيناريوهات اختبار للانقطاع وعودة الاتصال والإيقاف المفاجئ.

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

الخدمة المرتبطةتطبيقات الجوال

شارك المقالLinkedInXWhatsApp
العودة إلى المدونة