تقرير تقني ودليل للتنفيذ
من COBOL إلى Python: أدلة ترحيل FastAPI
يستعرض هذا المقال ما تذكره التقارير المصدرية المتاحة عن عملية ترحيل من COBOL إلى Python، نتج عنها إنشاء مكونات تطبيق FastAPI. ولا يُعد هذا المقال دليلاً عملياً قابلاً للتنفيذ لعملية الترحيل؛ فالمصدر يصف نتائج وأمثلة محددة، لكنه لا يقدم إجراءً متكاملاً للترحيل، أو إعداداً للوكلاء، أو مستودعاً للمصدر، أو حزمة معايير قابلة لإعادة الإنتاج.
ما الذي يذكره المصدر فعلياً؟
تصف تدوينة على Hugging Face بعنوان «٩ ساعات، ١٩٩ جولة، وصفر أخطاء: ثلاثة وكلاء NemoClaw محليين للذكاء الاصطناعي رحّلوا COBOL إلى Python باستخدام الذاكرة المستمرة فقط» عملية ترحيل نفذها ثلاثة وكلاء NemoClaw محليين للذكاء الاصطناعي. وتبلغ المدة المذكورة تسع ساعات، بينما يشير عنوان التدوينة إلى ١٩٩ جولة وصفر أخطاء. وهذه الأرقام واردة بوصفها ادعاءات في التقرير المستشهد به؛ أما السياق المتحقق منه فلا يعيد إنتاج التجربة بصورة مستقلة، ولا يقدم منهجية كافية لتقييم ما الذي عُدّ جولة أو خطأ.
يصف المصدر شجرة مخرجات تحتوي على تطبيق FastAPI ووحدات Python داعمة. وتشمل الأمثلة نقطة دخول التطبيق، وجدولاً زمنياً وُصف بأنه بديل لـ JCL، وأداة لبناء سجلات الدفعات، ونماذج SQLAlchemy مرتبطة بـ COBOL copybooks، ووحدات للخدمات، ومستودعات، ونقاط نهاية للمصادقة، ومخططات Pydantic، وتعدادات، وإعدادات، وأدوات مساعدة للأمان. ويُعد ذلك دليلاً على أن المخرجات المذكورة نُظمت ضمن طبقات للتطبيق، لكنه لا يمثل مواصفة كاملة لهذه الملفات، ولا يثبت أن كل مكوّن مدرج جاهز للاستخدام في بيئة الإنتاج.
ويصف المصدر عملية الترحيل تحديداً بأنها واعية بالمجال، وليست مجرد توليد عام لـ ORM. كما يسلط الضوء على دلالات السلاسل النصية ذات العرض الثابت في COBOL، والحفاظ على الأصفار البادئة، وأعراف ترميز التواريخ. وتكتسب هذه التفاصيل أهمية لأن عملية تحويل تتعامل مع كل قيمة باعتبارها سلسلة نصية أو رقماً أو تاريخاً عادياً قد تفقد المعنى المضمّن في تنسيقات البيانات القديمة. ولا يصف السياق خوارزميات التحويل الدقيقة، أو بيانات الاختبار، أو أساليب التحقق المستخدمة لهذه الدلالات؛ لذلك لا يختلق هذا المقال أياً منها.
الخطوة ١: تعامل مع التقرير باعتباره دليلاً لا وصفة قابلة لإعادة الإنتاج
قبل محاولة تنفيذ عملية ترحيل، ميّز بين تقرير عن نتيجة وإجراء قابل للتنفيذ. يقدم المصدر المتاح ملخصاً لشجرة المشروع ومثالاً قصيراً للمصادقة، لكنه لا يتضمن برامج COBOL الأصلية، أو copybooks، أو تعليمات الوكلاء، أو تنسيق الذاكرة المستمرة، أو إعدادات الأدوات، أو التطبيق المُولّد بالكامل، أو دليل تشغيل خطوة بخطوة.
ويضع هذا التمييز حدوداً عملية واضحة: يمكن للقراء استخدام التقرير لتحديد المجالات التي قد تحتاج عملية الترحيل إلى معالجتها، لكن لا يمكنهم إعادة إنتاج النتيجة الموصوفة بالاعتماد على السياق المتحقق منه وحده. وكان سيتطلب الدليل القابل لإعادة الإنتاج ملفات الإدخال ذات الصلة، والأوامر الدقيقة، والاعتماديات، والإعدادات، والاختبارات، والمخرجات المتوقعة، وطريقة لمقارنة النتائج. وهذه المواد غير موجودة ضمن الأدلة المقدمة.
في أي مراجعة هندسية، سجّل الادعاء ومصدره، ثم أدرج المكونات اللازمة للتحقق منه. فعلى سبيل المثال، ينبغي التعامل مع عبارة التقرير «صفر أخطاء» باعتبارها نتيجة مُبلغاً عنها إلى أن تتوفر دلالة «الخطأ»، ونطاق تغطية الاختبارات، وإجراء التحقق. وهذا لا يعني رفض التقرير، بل يحدد ما تثبته المعلومات المستشهد بها فعلياً.
الخطوة ٢: ارسم خريطة لمجالات التطبيق المذكورة
يمكن قراءة ملخص شجرة الملفات الوارد في المصدر باعتباره خريطة لمجالات التنفيذ المذكورة. إذ تُعرّف نقطة دخول التطبيق بأنها تطبيق FastAPI. كما تسرد الشجرة مسارات ومخططات المصادقة، ووحدات الإعدادات والأمان، ووحدات خدمات لعمليات الحسابات والمعاملات، ومستودعات لبيانات الحسابات والمعاملات، وملفات نماذج مرتبطة بـ COBOL copybooks.
وتشمل المكونات الأخرى المسماة جدولاً زمنياً، وأداة لبناء سجلات الدفعات، ونموذجاً لسجل التدقيق، ووحدة وُصفت بأنها تترجم نمط CICS شبه التفاعلي إلى HTTP عديم الحالة. وتشير هذه الأسماء إلى المسؤوليات المقصودة التي ذكرها المصدر. إلا أن السياق لا يقدم شيفرة كافية للتحقق من سلوكها الداخلي، أو عقود API، أو خيارات قواعد البيانات بخلاف نماذج SQLAlchemy المدرجة، أو خصائصها التشغيلية.
عند التخطيط لعملية الترحيل، استخدم هذه الشجرة كقائمة أسئلة لا كبنية ينبغي نسخها دون تفكير. اسأل: ما البرامج القديمة وهياكل البيانات التي تقابل كل وحدة مقترحة؟ وما المدخلات والمخرجات التي يجب أن تبقى متوافقة؟ وما الاختبارات التي تثبت تكافؤ السلوك؟ يثبت المصدر أن هذه المجالات ظهرت في المخرجات المذكورة، لكنه لا يثبت أنها مطلوبة عالمياً في كل مشروع لتحديث أنظمة COBOL.
الخطوة ٣: افحص مثال المصادقة بعناية
يقدم المصدر مثالاً يتعلق ببرنامج COBOL المعروف باسم COSGN00C، وُصف بأنه يتولى تسجيل الدخول من محطة CICS. ويربط المثال رمز الاستجابة WS-RESP-CD = 13 بحالة عدم العثور على المستخدم، ويعرض استجابة بأسلوب Python FastAPI باستخدام HTTP 404. كما يربط رمزي الاستجابة 2 و15 ببيانات اعتماد غير صالحة، ويعرض استجابة HTTP 401 تتضمن تفاصيل «كلمة المرور غير صحيحة».
يوضح هذا المثال النية المذكورة لتحويل نتائج الحالات القديمة إلى أخطاء HTTP، لكنه لا يثبت التصميم الكامل للمصادقة. فلا يحدد السياق طريقة تخزين كلمات المرور، أو إدارة الجلسات أو الرموز، أو حدود معدل الطلبات، أو سلوك قفل الحساب، أو متطلبات التدقيق، أو ما إذا كان المسار المعروض قد خضع لاختبارات أمنية. لذلك تجنب التعامل مع مثال قصير لعملية تحويل على أنه تنفيذ كامل للمصادقة.
عند تقييم عملية ترحيل حقيقية، قارن كل حالة من حالات الحالة القديمة بمعناها المقصود وبالاستجابة الموثقة في API الجديدة. وحافظ على ربط يمكن تتبعه بين شروط البرنامج المصدر والسلوك البديل. ثم تحقق من مسارات النجاح والفشل باستخدام اختبارات مناسبة للتطبيق. يدعم المصدر المقدم عمليتي التحويل المذكورتين أعلاه، لكنه لا يقدم قائمة كاملة بحالات COSGN00C، ولا الاختبارات اللازمة للتحقق منها.
الخطوة ٤: تحقق من دلالات البيانات قبل اعتماد النماذج المُولّدة
يتعلق أقوى تحذير تقني في السياق المتحقق منه بدلالات البيانات. إذ يسلط المصدر الضوء على السلاسل النصية ذات العرض الثابت، والحفاظ على الأصفار البادئة، وترميز التواريخ باعتبارها جوانب عولجت في عملية الترحيل المذكورة. وتمثل هذه المجالات نقاط فحص مهمة عند تحديث COBOL، لأن تحويل النوع الذي يبدو بسيطاً قد يغير القيم المخزنة أو المُفسّرة.
فعلى سبيل المثال، يلفت التقرير صراحةً إلى الحفاظ على الأصفار البادئة. لذلك ينبغي على المراجع التحقق من بقاء المعرّفات التي تتضمن أصفاراً بادئة دون تغيير خلال التحليل، والتخزين، والتسلسل، واستجابات API. ولا يحدد السياق الحقول المتأثرة أو كيفية الحفاظ عليها في التنفيذ، لذا لا يمكن الجزم هنا بحقل محدد في النموذج أو بأسلوب برمجي معين.
وبالمثل، ينبغي التحقق من دلالات العرض الثابت وترميز التواريخ بالاستناد إلى copybooks الفعلية وسجلات قديمة تمثل الحالات الواقعية. فالمصدر المتاح يلفت الانتباه إلى هذه المخاوف، لكنه لا يقدم تعريفات copybooks، أو قيماً نموذجية، أو قواعد التحويل، أو النتائج المتوقعة. وتحتاج مراجعة الترحيل الآمن إلى هذه المواد قبل استنتاج أن النماذج المُولّدة تحافظ على السلوك.
الخطوة ٥: حدد ما يلزم لإنشاء دليل قابل لإعادة الإنتاج
سيحتاج الدليل العملي الكامل إلى ما هو أكثر بكثير من ملخص المصدر. فعلى الأقل، سيحتاج إلى برامج COBOL وcopybooks نموذجية مسموح باستخدامها، ومستودع إدخال محدد، وإعداد دقيق للوكلاء والأدوات، وأوامر الترحيل، وإصدارات الاعتماديات، ومشروع FastAPI المُولّد بالكامل. كما سيحتاج إلى اختبارات تقارن السلوك القديم ذي الصلة بالتنفيذ في Python.
وبالنسبة إلى ادعاءات نجاح التنفيذ، ينبغي أن يوضح الدليل الأوامر التي جرى تشغيلها والمخرجات المتوقعة. أما ادعاء مثل «صفر أخطاء»، فينبغي أن يحدد فئات الأخطاء التي جرى التحقق منها، وأن يشرح نطاق الاختبار. ولا يقدم السياق المتحقق منه هذه التفاصيل؛ لذلك فإن توفير عينة شيفرة جاهزة للتشغيل أو إجراء إعادة إنتاج شامل سيتطلب اختلاق معلومات غير مدعومة.
يدعم ملخص المصدر استنتاجاً أضيق لكنه مفيد: فقد شملت عملية الترحيل المذكورة طبقات متعددة من التطبيق، وشدد أصحابها على الحفاظ على سلوك البيانات الخاص بالمجال بدلاً من إجراء ترجمة سطحية فقط. تعامل مع ذلك باعتباره تقريراً يحتاج إلى مزيد من البحث، لا ضماناً بأن عملية ترحيل مدعومة بالذكاء الاصطناعي ستحافظ على سلوك كل نظام قديم.
ما الذي لا يثبته السياق المتحقق منه؟
- لا يوثق مدققاً لمستودعات TRIPOD-AI، أو منهجية لتقييم قابلية إعادة الإنتاج، أو عملية لمراجعة النماذج السريرية.
- لا يتحقق من تكامل OpenAI، ولا يقدم تنفيذاً لـ OpenAI API.
- لا يقدم دليلاً كاملاً لترحيل COBOL، أو شجرة مصدر قابلة للتشغيل، أو تعليمات للنشر.
- لا يتحقق بصورة مستقلة من المدة المذكورة، أو عدد الجولات، أو ادعاء صفر أخطاء.
- لا يثبت الصلاحية السريرية، أو الامتثال التنظيمي، أو الاعتماد الأمني، أو الجاهزية الإنتاجية للمخرجات المذكورة.
يساعد إبقاء هذه الحدود واضحة على منع الخلط بين تقرير عن عملية ترحيل واحدة وضمان عام، أو بينه وبين منتج مختلف تماماً.
الخلاصة
تصف الأدلة المتاحة جهداً مُبلغاً عنه للانتقال من COBOL إلى Python، نتج عنه هيكل مشروع يتمحور حول FastAPI، وسلط الضوء على دلالات البيانات القديمة، بما في ذلك السلاسل النصية ذات العرض الثابت، والأصفار البادئة، وترميز التواريخ. كما يقدم مثالاً محدداً لترجمة نتيجتين من نتائج فشل تسجيل الدخول إلى أخطاء HTTP. ويمكن لهذه التفاصيل أن توجه أسئلة المراجعة التقنية، لكنها لا تكفي لإعادة إنتاج عملية الترحيل أو التحقق من التطبيق بأكمله.
وبالنسبة إلى المطورين الذين يقيّمون هذا التقرير، تتمثل الخطوة العملية التالية في الحصول على المواد المصدرية وأدلة الاختبار الأساسية قبل الاعتماد على ادعاءات التنفيذ أو الأداء. وينبغي للتغطية التحريرية التي تقدمها بوابة الذكاء الاصطناعي أن تميز بوضوح بين ما يذكره التقرير المستشهد به وما تثبته عملية إعادة إنتاج مستقلة. هذا المقال من إعداد فريقي التحرير والهندسة في بوابة الذكاء الاصطناعي، GateOfAI, LLC.