لنفترض أن مجلس إدارة أحد الصناديق قرّر أن تخضع القروض التي تتجاوز سقفًا معينًا لموافقة لجنة الائتمان أيضًا قبل صرفها. في كثير من الأنظمة يتحول هذا القرار البسيط إلى طلب تغيير: على المبرمج أن يعثر على منطق العملية في عدة خدمات ويعدّله، ثم يجب اختبار النسخة الجديدة وحجز موعد لإصدارها. وفي هذه الأثناء، إما أن تنفذ إدارة الائتمان المرحلة الجديدة خارج النظام بالمراسلات والتواقيع، وإما أن تنتظر.
أما في دارا، فيجري هذا التغيير نفسه في مصمّم العمليات، ويصبح نافذًا بنشر إصدار جديد من العملية. ونوضح فيما يلي كيف يتحقق ذلك، وما الاعتبارات التي تقف وراءه.
أين تحفظ العملية
في دارا، تؤدي وحدة كل نطاق المهام المتخصصة في ذلك النطاق، مثل حساب الأقساط أو تسجيل حجز على وديعة. أما ترتيب المهام، أي الخطوة التي ينتقل إليها الملف بعد كل خطوة، فمكانه محرّك العمليات. ويخزن مخطط كل عملية، بخطواته وشروطه وصناديق مهامه ومهله، في صورة بيانات، وتكون له إصدارات كأي بيانات أخرى.
ولكل إصدار حالة من ثلاث: مسودة أو منشورة أو مؤرشفة. ينشئ محلّل العمليات في المصمّم مسودة انطلاقًا من الإصدار الحالي لعملية التمويل، ويضيف إليها خطوة «موافقة لجنة الائتمان» مشروطة بالمبلغ. ويخضع المخطط للتحقق من صحته قبل النشر، حتى لا تبقى فيه خطوة بلا مخرج أو مسار غير مكتمل. ونشر الإصدار الجديد استدعاء واحد، ولا يحتاج إلى إعادة نشر أي خدمة.
الملفات الجارية
هنا يكمن أكبر ما يقلق الوحدات التشغيلية من تغيير العمليات. في دارا يبقى كل ملف مقيّدًا بالإصدار الذي بدأ به. فالطلب المسجّل أمس يمضي حتى نهايته في مسار الأمس نفسه، بينما تتبع طلبات اليوم الإصدار الجديد. ولا يصادف أي ملف في منتصف طريقه خطوة لم تكن موجودة عند بدئه.
وإذا أرادت المؤسسة تطبيق القاعدة الجديدة على الملفات المفتوحة أيضًا، فهذا قرار مستقل ينبغي اتخاذه عن وعي، ولا يحدث تلقائيًا بمجرد نشر الإصدار.
صندوق المهام والمهل
خطوة «موافقة اللجنة» مهمة بشرية. والمهمة البشرية في محرّك دارا سجلّ فعلي له دور مستهدف، ويمكن حصرها في نطاق جغرافي، كمحافظة بعينها. يستلم الموظف المختص المهمة، ثم ينجزها أو يعيدها أو يحيلها إلى زميل آخر. وتبقى جميع هذه الانتقالات محفوظة في سجلّ الملف.
ويمكن تحديد مهلة وتذكير لكل خطوة. والمؤقّتات دائمة ومحفوظة في قاعدة البيانات؛ فإذا أعيد تشغيل الخدمة في منتصف مهلة إحدى المهام، استأنفت المهلة من حيث توقفت ولم يسقط التذكير.
عندما تستجيب عدة وحدات في الوقت نفسه
لا تقتصر عملية التمويل على الخطوات البشرية. فمراجعة الضمان، وجلب نقاط تقييم مقدّم الطلب، وتسجيل حجز على الوديعة، مهام تؤديها وحدات أخرى ثم تعيد نتائجها إلى المحرّك. وأحيانًا تصل هذه الاستجابات في وقت واحد تقريبًا.
ينفذ كل تقدّم في المحرّك داخل معاملة على قاعدة البيانات، أول ما تفعله هو الحصول على قفل الملف نفسه. فتصطف الاستجابات المتزامنة خلف هذا القفل، وتتسلم كل منها الملف من حيث تركته سابقتها. ولا يبقى الملف في حالة ناقصة أو مزدوجة، ويمكن دائمًا قراءة حالته الحالية باستعلام بسيط.
أما الأحداث التي ينشرها المحرّك، مثل «تمت الموافقة على الطلب»، فتكتب ضمن معاملة تغيير الحالة نفسها: إما أن يسجل الاثنان معًا، وإما ألا يسجل أي منهما. ويسلم الحدث إلى الجهات المستقبلة بشكل منفصل مع توقيع HMAC، وإذا لم تكن الجهة المستقبلة متاحة، أعيدت محاولة التسليم بفواصل تزداد في كل مرة.
مصمّم العمليات
يضم المحرّك ثمانية عشر نوعًا من العُقد، من المهمة البشرية والمؤقّت إلى استدعاء الأنظمة الخارجية. يرسم محلّل العمليات المخطط في المصمّم المرئي، ويحدد لكل مهمة بشرية دورها ومهلتها، ويرى أخطاء المخطط في الموضع نفسه قبل النشر.
ما يبقى من مهام الفريق التقني
كون العملية مُدارة بالإصدارات لا يعني أن التغييرات كلها تستغني عن المبرمج. فإذا تطلبت الخطوة الجديدة عملية حسابية لا تؤديها أي وحدة اليوم، فلا بد من بناء هذه العملية الحسابية في الوحدة المعنية. لكن تبديل ترتيب الخطوات، وإضافة موافقة أو حذفها، وتغيير الدور المستهدف لمهمة ما، وتعديل المهل، كلها تجري في المصمّم، ومن هذا النوع عادة معظم طلبات التغيير في الوحدات التشغيلية.
- #محرّك_العمليات
- #صندوق_المهام
- #إدارة_الإصدارات
- #التمويل



