شخص يرتدي سماعات رأس ويعمل على كمبيوتر في مكتب يضم عدة شاشات، مع إطلالة على المدينة من خلال النوافذ.

ترحيل التعليمات البرمجية القديمة: ما هو، ولماذا يهم، وكيف تنفذه على النحو الصحيح

ما المقصود بترحيل التعليمات البرمجية القديمة؟

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

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

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

أساليب ترحيل التعليمات البرمجية القديمة

وتوجد أساليب مختلفة للترحيل، ويعتمد اختيار الأسلوب الأنسب على مدى إلحاح الحاجة إلى نقل النظام، ومدى قدرة المؤسسة على تحمّل الاضطراب التشغيلي، وطبيعة البيئة المستهدفة.

إعادة الاستضافة

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

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

لكن إعادة الاستضافة تنطوي على قيد أساسي: فهي ترحيل من دون تحديث. إذ يظل الدين التقني قائمًا. وتظل قاعدة التعليمات البرمجية محتفظة بالبنية نفسها والاعتماديات نفسها والقيود نفسها على قابلية التوسع. 

إعادة بناء المنصة

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

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

وتناسب إعادة بناء المنصة المؤسسات التي تحتاج إلى الانتقال إلى السحابة، وترغب في الوقت نفسه في تحسين الأداء التشغيلي وتحسين استخدام الموارد. كما تناسب الفِرق غير المستعدة للاستثمار في تفكيك تطبيقاتها إلى خدمات مصغرة أو إعادة بنائها من الصفر.

التغليف

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

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

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

Mixture of Experts | 12 ديسمبر، الحلقة 85

فك تشفير الذكاء الاصطناعي: تقرير إخباري أسبوعي

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

عملية ترحيل التعليمات البرمجية القديمة

يوضح إطار العمل التالي عملية ترحيل التعليمات البرمجية القديمة. 

الاستكشاف والتقييم

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

تحديد البيئة المستهدفة

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

تحديد خارطة الطريق

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

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

إعداد البيئة

وقبل نقل أي تعليمات برمجية، يجب تجهيز البيئة المستهدفة، سواء كانت بنية تحتية سحابية على AWS أو Azure، أو إطار عمل جديدًا للتطبيقات، أو بيئة تشغيل حديثة للغات البرمجة. وفي هذه المرحلة، تُجهز بيئات التطوير، وتُضبط مسارات CI/CD، وتوضع أطر الاختبار اللازمة.

الترحيل التدريجي

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

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

التحقق والاختبار

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

كيف يغيّر الذكاء الاصطناعي ترحيل التعليمات البرمجية القديمة؟

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

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

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

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

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

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

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

تحديات ترحيل التعليمات البرمجية القديمة

تكشف كل عملية ترحيل عن مشكلات لم تكن مدرجة في الخطة. وغالبًا ما تندرج هذه المشكلات ضمن مجموعة مألوفة من الفئات.

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

الخاتمة

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

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

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

مؤلف

Jobit Varughese

Technical Content Writer

IBM

حلول ذات صلة
IBM Bob

تسريع تسليم البرمجيات مع IBM Bob، شريكك المدعوم بالذكاء الاصطناعي للتطوير الآمن والمدرك للنية.

استكشف IBM Bob®
حلول الذكاء الاصطناعي للمطورين.

تطوير تطبيقات الذكاء الاصطناعي ونشرها وإدارتها بوتيرة أسرع باستخدام أدوات جاهزة للمؤسسات.

استكشِف حلول الذكاء الاصطناعي للمطورين.
خدمات تحديث التطبيقات

إعادة تصوُّر الأنظمة القديمة من خلال التحديث الذكي بالذكاء الاصطناعي.

استكشِف خدمات تحديث التطبيقات.
اتخِذ الخطوة التالية

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

  1. اكتشِف وكيل البرمجة المدعوم بالذكاء الاصطناعي.
  2. استكشِف حلول الذكاء الاصطناعي للمطورين.