Table of Contents
الدور الحاسم لتدفق البيانات في الهندسة الحديثة
وكل تفاعل داخل نظام برمجيات يولد سلسلة من تحركات البيانات، فمن اللحظة التي يقدم فيها المستخدم استمارة إلى اللحظة التي تصدر فيها الاستجابة على الشاشة، تنتقل البيانات عبر حدود الشبكة، عن طريق خواديم التطبيقات، إلى طبقات التخزين، وأخيرا إلى التخزين المستمر، والطريقة التي تُضفي بها هذه الرحلة على النظام الذي يُحكم به بـ (#x2019)؛ والأداء والأمن والقابلية للاستمرار، على أن تُدير الدقيق للشواغل المتعلقة بالتدفقات.
ولا يتعلق الأمر بإدارة تدفق البيانات بنقل الوصلات من وظيفة إلى أخرى فحسب، بل يتعلق بتحديد العقود، ومعالجة التسلسل، وإنفاذ المصادقة، وضمان سلامة المعاملات، وعندما تُعالج هذه العناصر بطريقة سيئة، يُمسك النظام بحزمة التقارب، وعدم توقع، والحشرات التي يصعب إنتاجها، وتوفر هذه المادة دراسة عملية عميقة لكيفية انتقال البيانات من خلال نظام برمجيات مطبق، وتحافظ على وجود ثغرات مأمونة تقوض هذه الأنماط المتقدمة.
The Anatomy of Layered Data Flow
وينظم نظام مطبق مدونة في الإطارات الأفقية، وكل منها مسؤول عن ذلك، ويقسم النموذج الأكثر اعتمادا في تطبيقات المشاريع النظام إلى طبقات العرض والتطبيق ودومان والهياكل الأساسية، ويفهم كيف تُعد البيانات هذه الطبقات أساسا لإدارة النظام بفعالية.
العرض
وتعالج هذه الطبعة تفاعل المستخدمين واستهلاكهم الخارجي من تطبيقات تطبيقات الاستخدام، وتتمثل مسؤوليتها الرئيسية في تفسير الطلبات الواردة وشكل الردود التي انتهت إلى الظهور، وتُمثل البيانات هنا عادة على أنها بيانات فيو موديلز أو مترجمات مستعملة متقنة الاستخدام على النحو الأمثل بالنسبة للزبون، ولا ينبغي أن تتضمن طبقة العرض منطقا تجاريا أو رمزا مباشرا للوصول إلى البيانات، بل تترجم إجراءات المستخدمين إلى أوامر أو استفسارات وترسلها إلى طبقة التطبيقات عن طريق وصلة محددة.
الطلب/الخدمة
وتقوم طبقة التطبيق، التي تعمل كمركز تنسيق، بتنسيق المهام، وتتلقى طلبات من طبقة العرض، وتعمل المندوبون على طبقة الدومين، وتدير حدود المعاملات، حيث يتم التحقق من الأذون، وإرسال الأحداث، وتحويل النموذج من القاعدة إلى القاعدة، ولا توجد قواعد تجارية خاصة بها، ولا توجد سوى لتوجيه تدفق البيانات إلى الخدمات الميدانية المناسبة.
The Domain Layer
وكثيرا ما تعتبر هذه الطبقة في نظام التصميم في دومين - دريفن، متضمنة منطق العمل وقواعده، وتقيم كيانات رئيسية، وتقيم أشياء، وتجمع، وخدمات النطاقات هنا، وتعتمد طبقة دومانية على شواغل البنية التحتية مثل قواعد البيانات أو المعايير الخارجية للتصميم، وتتحقق البيانات التي تتدفق إلى هذه الدرجة من الغارات التجارية قبل أن يتم إدخال أي تغيير على الدولة.
The Infrastructure Layer
وتوفر هذه الطبعة القدرات التقنية التي يحتاج النظام إلى الاستمرار والتواصل، وتشمل مستودعات قواعد البيانات، ومنتجي ومستهلكي طاولات الرسائل، والوصول إلى نظام الملفات، وعملاء شركة HTTP إلى الخدمات الخارجية، وتطبق طبقة الهياكل الأساسية وصلات بينية تحددها طبقات دومان أو تطبيقات (مبدأ تحويل التناوب)، وتتدفق البيانات من طبقة الدومين إلى طبقة الهياكل الأساسية للتخزين، وتعاد صياغتها إلى أشياء محلية عند إعادة فرزها.
تحديد عقود البيانات المشتركة بين الموظفين
فالحدود بين الطبقات هي التي تنشأ فيها معظم مسائل تدفق البيانات، وبدون عقود واضحة ومحددة جيدا، تصبح الطبقات مقترنة بشدة، ولا يمكن التنبؤ بالتغيرات في سلسلة من طبقات النظام.
أهداف نقل البيانات ضد الأجسام الدومانية
ومن بين أكثر الأخطاء شيوعاً في النظم المطبقة عرض نموذج البيانات الداخلية، مثل كيانات إدارة المخاطر المؤسسية، مباشرة إلى طبقات أخرى، وهذه الممارسة تخلق تبعية خطيرة، وينبغي أن تعرض طبقة الدومين أهداف النطاق، في حين ينبغي أن تستخدم طبقات الطلب والعرض أهداف نقل البيانات (DTOs).
البلاغ المتزامن ضده
ويمكن أن يكون تدفق البيانات إما متزامنا (رد الطلب) أو غير متزامن (محرك الأحداث) وتتوقف التدفقات المتقاربة، مثل نداءات مكتب التحقيقات الإقليمي أو طلبات برنامج العمل العالمي، على التنفيذ المباشر، ولكن تنطوي على اقتران زمني ضيق، وتتوقف التدفقات المتقاربة، باستخدام سمسارات الرسائل مثل رابيتماك أو آرباتشي كافكا، على تزامن مع قدرة المرسل على الاستجابة،
التسلسل والتعديلات التعاقدية
ويجب أن تكون البيانات في كل مرة تعبر الحدود متسلسلة، سواء كانت هذه هي: يوبون، أو البروتوكول بافيرز، أو أفرو، أو شكل آخر، ويجب أن يصاغ عقد التسلسل، ويحتاج تطور معايير الاستخدام دون أن يكسر المستهلك استراتيجيات صارمة للنسخ، ويضاف الحقول إلى رسالة ما هو آمن عموما، ولكن إعادة تسمية الحقول أو إزالة الحقول يمكن أن تسبب فشلا فوريا في المستهلكين في المراحل النهائية.
إدارة تدفق البيانات لأغراض الأداء والجدول الزمني
ومع نمو النظام، يزداد حجم البيانات المتحركة بين الطبقات زيادة هائلة، وبدون تصميم دقيق، يصبح تدفق البيانات راكبا للأداء.
مختبرات الاختطاف الاستراتيجية
فالاختراق هو أحد أكثر الطرق فعالية لتحسين أداء تدفق البيانات، ولكن يجب تطبيقه بصورة استراتيجية، وينبغي أن تكون البيانات مقبوضة إلى أقصى حد ممكن مع المستهلك، وعلى سبيل المثال، فإن وجود مواشي ثابتة في طبقة العرض، وكاشي داخلي مثل مخازن ريديس كثيرا ما يكون الوصول إلى نتائج الاستفسارات، وقاعدة البيانات نفسها يختم خطط التنفيذ وصفحة البيانات، غير أن الاختلاط يستحدث مشاكل تتعلق بالاختفاء.
مشكلة الحجر الصحي N+1
ويحدث هذا النموذج المضلل للأداء السمعي عندما تسترد طبقة الوصول إلى البيانات جسماً أبوياً، ثم تقوم بإجراء استفسار إضافي لكل موضوع من مواد الطفل، وبدلاً من سؤالين، يقوم النظام بتنفيذ الاستفسارات من الفئة " ن + 1 " حيث يكون عدد السجلات الوالدية، وهذا نتيجة مباشرة لضعف إدارة البيانات بين طبقة الدومين وطبقة البنية التحتية، ويستلزم ذلك استخدام حمولة حرارية واضحة (JOIN).
تجهيز البطاقات ضد التدريم
وبالنسبة لعمليات البيانات الواسعة النطاق، فإن الاختيار بين الباتش وتدفق هيكل نظام التأثيرات المتينة، كما أن تجهيز البطاقات (التي تستخدمها أدوات مثل أباتشي سبارك أو بيتش الربيع) يحرك البيانات في مجموعات مبرمجة كبيرة، وهو يتسم بالكفاءة في الحساب الثقيل، ولكنه يستحدث مرونة، وكثيرا ما تكون بيانات عمليات الترميم في مراحلها الحقيقية (يستخدم نظاما للربط بين الكافاكا والعلامات المخففة).
بيانات تأمين المرور العابر وفي الراحة
ويجب إدراج الشواغل الأمنية في تصميم تدفق البيانات منذ البداية، وإعادة تكييف الأمن عبر طبقات متعددة أمر معقد ومعرض للأخطاء.
أمن البروتوكولات
ويجب أن تُشفَّر جميع حدود طبقة البيانات، ولا سيما بين طبقة العرض والتطبيق، أو بين التطبيق والخدمات الخارجية، في المرور العابر باستخدام بروتوكولات مثل TLS 1.3، وفيما يتعلق بالاتصال الداخلي بين الخدمات والخدمات داخل شبكة خاصة، يضيف نظام تبادل البيانات والمعلومات التجارية طبقة إضافية من التوثيق، بما يكفل أن تكون الخدمات المأذون بها وحدها هي التي يمكن أن تتبادل البيانات، أما البيانات في مكان الراحة، أو في قواعد البيانات، أو تخزين المواد، فينبغي أن تكون مشفرة جيداً من حيث الهياكل الأساسية.
قيمة كل جنيه
ويجب التحقق فورا من صحة البيانات التي تدخل النظام من العالم الخارجي، ولكن التصديق لا يمكن أن يتوقف عند طبقة العرض، ويجب على كل طبقة أن تعيد تأكيد أو تتحقق من البيانات ذات الصلة بمسؤولياتها، وتثبت طبقة العرض الشكل والرسوم (مثلا، هل هذا هو البريد الإلكتروني الصحيح؟ وتصدق طبقة التطبيق على الإذن وقواعد العمل (مثلا، هل يمكن أن يؤدي هذا المستخدم إلى إصدار أمر؟).
مخاطر تأجير البيانات
ويكشف الفشل الأمني المشترك في إدارة تدفق البيانات معلومات حساسة عبر الحدود بين طبقات البيانات، كما أن رسائل الخطأ التي تتضمن آثاراً للمجموعات، أو شيمات قواعد البيانات، أو بارامترات الاستفسارات يمكن أن تسرب تفاصيل التنفيذ الداخلي، وينبغي أن تستبعد أجهزة الترميز الآلية صراحة ميادين حساسة مثل كلمات السر، أو مفاتيح أجهزة تحديد الهوية الداخلية، كما يجب أن تكون الجهات المطورة حذرة من قطع الأشجار، بما يكفل عدم كتابة بيانات إلكترونية عن طريق رسم خرائط عن طريق الحاسوب.
الملاحظـة: تعقب تدفق البيانات في الإنتاج
وعندما يجري تشغيل نظام ما في الإنتاج، فهم كيفية انتقال البيانات من خلاله أمر أساسي لتشويه مسائل الأداء والإخفاقات، وتوفر برامج القابلية للملاحظة الأدوات اللازمة لتتبع هذا التدفق.
مقطورة موزعة
ويمكن أن يُعدّ طلب واحد في نظام متعدد المستويات عشرات الخدمات والعناصر، ويُستخدم جهاز " التتبع " ، باستخدام أدوات مثل الفرز المفتوح، ويُسند إليه هوية فريدة من نوعها لكل طلب، ويُنشر هذا الرقم من خلال كل طبقة، من الطلب الأولي الذي قدمته شركة HTTP إلى الاستفسار عن قاعدة البيانات، وأي تفاعلات لاحقة بشأن تحديد درجات التردد، ويتيح للمطورين تحديد المكان الذي يتم فيه إدخال الاختفاء البصري أو حيث يُحدث خطأ.
بطاقات هوية وقطعة
فالتعقب الموزع قوي، ولكن ليس لكل بيئة أدوات تتبع كاملة، فالتقنية البسيطة والفعالة هي استخدام بطاقات الربط، وتولدت معالم فريدة من نوعها على حافة النظام (طبقة العرض) وتدرج في كل بيان سجل على جميع المستويات، وعندما يبلغ المستخدم عن مسألة، يمكن استخدام بطاقة الهوية المصاحبة لها في تجميع جميع القيود المتعلقة بالزهرة المحددة، مما يوفر رؤية معقدة.
القياسات والإنذار
ورصد حجم وسرعة تدفق البيانات أمر حاسم لكشف الشذوذ، وتشمل القياسات الرئيسية الناتج لكل طبقة (طلبات لكل ثانية)، ومعدلات الخطأ، ومواصفات اللياقة (الصفحة 50، ص 95، ص 99)، وقد يشير الانخفاض المفاجئ في تدفق البيانات إلى طبقة Domain إلى الفشل في طبقة العرض أو التطبيق، وكثيرا ما يدل ارتفاع درجة التعطل بين طبقة الدومين وطبقات البنية التحتية على مسألة تتعلق بقاعدة البيانات.
أنماط متقدمة لتدفقات البيانات المعقدة
وكثيرا ما تتطلب النظم الحديثة الموزعة أنماطا متطورة لإدارة تدفق البيانات عبر الخدمات المتعددة والطبقات مع الحفاظ على الاتساق والقدرة على التكيف.
Command Query Responsibility Segregation (CQRS)
(ج) تقسم هيئة التنسيق المعنية بالإحصاءات (CQL) هذه المسؤوليات، وتعالج القيادات عمليات تغيير البيانات (الطقوس) بينما تتولى شركة Queries استرداد البيانات (الخيوط) ويسمح هذا الفصل لكل جانب من أجزاء النظام بأن يُستعان به على نحو مستقل ويمكن أن يستخدم نموذج النطاق العادي، بينما يمكن للجانب المطالَب أن يستخدم آراء غير مُصفَّاة (الآراء المجمَّعة)
The Saga Pattern for Distributed Transactions
وفي نظم التوزيع، كثيرا ما تنطوي عملية تجارية واحدة على خدمات متعددة، إذ عادة ما لا تكون المعاملات البسيطة التي تجريها الوكالة الدولية للطاقة الذرية ممكنة عبر هذه الحدود، ويدير نمط ساغا اتساق البيانات بكسر معاملة كبيرة في سلسلة من المعاملات المحلية، وكلها إجراءات تعويضية في حالة الفشل، فعلى سبيل المثال، قد يتطلب نظاما للأمر مهاما عبر دائرة النظام، ودائرة المدفوعات، ودائرة الجرد، ويكفل نمط ساغا نزاهة المعاملات التي تُجهت بعد فشل نظام الدفع.
"الصراخ" و"سيركيت بيركر باترن"
وعندما يصبح مصدر خدمات أو بيانات في المراحل النهائية بطيئا أو غير مستجيب، فإن الفشل يمكن أن يتراجع عن طريق الطبقات، ويستهلك الموارد ويتسبب في انقطاعات على نطاق المنظومة، ويرصد نمط كسر الدائرة حالات الفشل ويوقف مؤقتا الطلبات إلى خدمة فاشلة، وفي حين أن الدائرة مفتوحة، يمكن للنظام أن يوجه البيانات إلى نسخة مخبأة من البنية التحتية أو يعيد طبقة مائلة من تطبيقات التخلف.
خاتمة
إن إدارة تدفق البيانات هي سمة مميزة لنظام مدروس جيدا، ويتطلب اهتماما دقيقا بالعقود بين الطبقات، وفهما دقيقا لمقايضات الأداء، والتزاما بالأمن والقابلية للحفظ، ومن الواضح أن الفرق الإنمائية يمكنها، من خلال فصل الشواغل، باستخدام أساليب مضبوطة واضحة، وتطبيق أنماط استراتيجية للتشغيل، وتنفيذ أنماط قوية مثل نظام الإبلاغ الموحد، والتتبع الموزع، أن تصمم نظما تتسم بالقوة وعدم القدرة على إدارة الأهداف.