العمل مع IBM i باستخدام IBM Bob
إن لم تكتب يوماً سطراً واحداً من RPG، فـ IBM i إحدى أكثر المنصات رسوخاً في الإنتاج على نطاق واسع. وإن كتبت بضعة ملايين من هذه الأسطر، فأنت تعرف بالفعل أين يكمن الألم اليومي. تغطّي هذه المقالة الجانبَين: رسمًا تقنيًا لما يجعل IBM i فريدة، وأين يظهر احتكاك التحديث فعلاً، وكيف يتناسب IBM Bob مع سير عمل IBM i اليوم، وخطوات الإعداد للبدء، وما هو قادم في خارطة طريق المنصة.
ما هو IBM i فعلاً
IBM i ليس نظام تشغيل قديماً بالمعنى "ينبغي إعادة كتابة هذا". إنه منصة متكاملة — نظام التشغيل وقاعدة البيانات ونموذج الأمان والبيئة مصمَّمة وتُشحن كشيء واحد — تُدرّ عائداً للبنوك وشركات التأمين والمستشفيات والمصنّعين وشركات الخدمات اللوجستية منذ عقود. لذا يمكننا تسميتها أسطورية.
بعض التفاصيل التي تفاجئ المطوّرين الذين يرونها لأوّل مرة:
- التخزين أحادي المستوى. تتشارك ذاكرة RAM والقرص مساحة عنوان افتراضية واحدة. مؤشّرات الكائنات تدوم عبر إعادة التشغيل. يتعامل نظام التشغيل مع الذاكرة والتخزين كطبقة واحدة ويُصفّح بينهما بشفافية. معظم الأنظمة الحديثة لا تزال تلتحق بهذا.
- TIMI، واجهة الآلة المستقلة عن التكنولوجيا. ثنائيات RPG المجمَّعة على أجهزة من التسعينيات تعمل دون تعديل على شرائح POWER الحالية. يُعيد نظام التشغيل ترجمتها لمجموعة التعليمات الجديدة في الخلفية. أقرب نظير حديث هو WebAssembly، لكنّه سابق له بعقود.
- نظام التشغيل القائم على الكائنات. البرامج والملفات والقوائم والصلاحيات كائنات مكتوبة بخصائص — لا ملفات مع بيانات مرفقة. الأمان مُطبَّق على مستوى الكائن.
- Db2 for i متكاملة وليست ملحقة. SQL والإدخال/الإخراج على مستوى السجل يصلان إلى البيانات ذاتها. يمكن الاستعلام عن ملف فيزيائي عمره 40 سنة عبر view SQL حديثة دون مشروع نقل.
- يمكن أن يعيش المصدر على النظام أو في Git — اختيارك. تاريخياً كان مصدر IBM i مخزّناً كـ members داخل ملفات فيزيائية للمصدر (QSYS) ومجمَّعاً مباشرةً على النظام. المنصة في الأصل وضعت الـ LPAR مرجعاً للمصدر. لكن IBM i تطوّرت: المجمِّعات ونظام التشغيل يدعمان الآن سير عمل Git الحديثة وملفات IFS وتطوير محلي إن اخترت ذلك. كثير من المتاجر لا تزال تستخدم مكتبات QSYS، لكن المنصة تمنحك خيارات.
المنصة تدعم أيضاً أنماط التسليم الحديثة خارج الصندوق: محرّكات REST API أصلية كجزء من نظام التشغيل، وسحابة هجينة عبر Power Virtual Server، واستدلال الذكاء الاصطناعي يعمل على نفس الأجهزة كأعباء عمل المعاملات. RPG وCOBOL وCL وSQL تتعايش مع ممارسات التطوير التي تستخدمها بقية مؤسستك الهندسية.
المنصة ليست المشكلة. الاحتكاك يكمن حولها.
أين يظهر الاحتكاك
أربعة أنماط تظهر في كل متجر IBM i تقريباً. لا أيٌّ منها يتعلّق بـ RPG نفسها — اللغة جيدة — بل بالسياق المحيط بالكود الذي لم يُوثَّق قط، وطريقة تخزين المنصة لهذا السياق ومشاركته.
- سياق ضمني، بتصميم. برنامج RPG يعمل يمكنه امتداد عبر أربعة أجيال لغوية في مصدر واحد — RPG II وRPG IV و/COPY copybooks (تصريحات مشتركة تُسحب عند وقت التجميع) وإجراءات حرّة التنسيق — مع صياغة حساسة للأعمدة ومؤشّرات مرقّمة (
*IN01–*IN99) تؤدّي دور تدفق التحكّم المنظّم والمتغيّرات المسمّاة في معظم اللغات الأخرى. الصياغة قابلة للتعلّم في أسبوع؛ الاتفاقيات وقواعد الأعمال المحيطة بها تعيش في أذهان المهندسين الكبار. - التغيير لا يكون محلياً أبداً. نوع الحقل لا يُعلَن في البرنامج الذي يستخدمه — بل يُعلَن في جدول قاعدة البيانات نفسه، في ملف مصدر منفصل (عضو DDS). كل برنامج يقرأ أو يكتب في ذلك الجدول يرث تلك التعريفات فقط بالإشارة إلى الملف في الأعلى. لذا تمديد عمود واحد من 10 إلى 12 رقماً لا يكون أبداً تعديلاً لبرنامج واحد: ينعكس على كل برنامج يلمس الملف، وقائمة هذه البرامج نادراً ما توجد مكتوبة في أي مكان. كل تغيير في عبء عمل حرج يحمل لذلك مخاطر الاستمرارية، ويتوقّف التحديث.
- المصدر نادراً يعيش حيث تتوقّعه الأدوات الحديثة. النسخة الأصلية من البرنامج موجودة على النظام لا في مستودع Git على لابتوب. قراءة كود كتبه شخص آخر منذ خمسة عشر عاماً تبدأ بالعثور عليه في الـ LPAR وتصديره ثم قرار ما إذا كان التصدير هو النسخة الأصلية — سير عمل يجب تكييف أي أداة تفترض شجرة عمل محلية حوله قبل أن تُثبت جدارتها.
- RPG بالشكل الثابت لا يشبه الكود الحديث. معظم RPG الإنتاجية كُتبت بشكل ثابت: صياغة حساسة للأعمدة حيث تقع رموز العمليات في أعمدة 26–35، والعامل الأول في 12–25، والتعليقات فقط بعد العمود 80. يبدو كلغة تجميع لأي شخص درس Python أو JavaScript. أعادت IBM اختراع اللغة بـ RPG حرّ التنسيق بالكامل (RPG IV، لاحقاً "RPG" فقط)، الذي يبدو ويشعر كلغة إجرائية حديثة — كتل منظّمة ومتغيّرات مسمّاة وتعبيرات قياسية. الفجوة النحوية حقيقية، لكن اللغة نفسها تطوّرت. الاحتكاك هو أن عقوداً من الكود العامل لا تزال بالشكل الثابت، وإعادة كتابته تحمل مخاطر لا تستطيع معظم المتاجر تبريرها.
ما يفعله Bob على تطبيق RPG لـ IBM i
وجّه Bob إلى برنامج RPG وابدأ في وضع Ask:
- "اشرح لي ما يفعله هذا البرنامج وأيّ الملفات يلمس."
- "أين يُعيَّن
CUSTNO، وأيّ البرامج تقرأه بعد ذلك؟" - "ماذا سيتعطّل إن غيّرت طول هذا الحقل؟"
انتقل إلى وضع Plan حين يكون لديك تغيير في ذهنك: تحويل حرّ التنسيق، أو نقل SQL بعيداً عن I/O على مستوى السجل، أو تكسير monolith إلى وحدات. يُنتج Bob خطة والتبعيات التي لمسها والخطوات التي ينوي اتخاذها، قبل تعديل أي ملف.
انتقل إلى وضع Code لتطبيق التغيير. Bob:
- يُحوّل RPG بالشكل الثابت إلى حرّ التنسيق باستخدام أنماط قابلة للتكرار، ملفاً بعد ملف.
- ينقل I/O على مستوى السجل إلى SQL مضمّن حيث يناسب.
- يُولّد مجموعات اختبار RPGUnit ضد الإجراءات الموجودة حتى يكون التحويل قابلاً للتحقق لا مجرّد مُجمَّع.
- يُنتج توثيقاً بلغة عادية ومخطّطات Mermaid من المصدر — مصنوعات قابلة للبحث والمشاركة تعيش بعد أي مهندس.
سير العمل ذاته يتعامل مع RPG II/III/ILE وCL وDDS وSQL وCOBOL، لذا موظّف جديد يقرأ برنامجاً كُتب قبل ولادته لن يُعرقله بعد الآن النحو.
اجعل مصدر IBM i جاهزاً لـ Bob
يعمل Bob اليوم مع المصدر على جهازك المحلي. الإعداد قصير:
- اسحب مصدرك لأسفل. صدّر أعضاء RPG وRPGLE وCL وDDS وSQL إلى مجلد محلي. Code for i project explorer يوثّق التصدير من أعضاء الملف الفيزيائي: نقل المصدر
- افتح المجلد في Bob. File → Open Folder على جذر المصدر. يُفهرس Bob قاعدة الكود عند الفتح الأوّل.
- ثبّت سلسلة أدوات IBM i. من لوحة Extensions، أضف IBM i Development Pack (حزمة Code for i) ومُصيَّر Mermaid للمخطّطات التي يُنتجها Bob.
- ابدأ جلسة في وضع Ask. اختر برنامجاً واحداً — من الأفضل أن يكون أحداً في الفريق لا يفهمه تماماً — واطلب من Bob شرحه. هذه أسرع طريقة لمعرفة ما إذا كان Bob يستحقّ مكانه في سير عملك.
إن كان فريقك قادماً من SEU أو RDi، فالنقل هو في معظمه خطوة التصدير أعلاه بالإضافة إلى تثبيت الإضافة. سطح التحرير بيئة VS Code-family حديثة مع تمييز النحو وإكمال الكود وسير العمل بالذكاء الاصطناعي المذكور سابقاً؛ أرقام الأسطر لا تزال متاحة للمهندسين الذين يريدونها.
ما هو قادم لـ Bob على IBM i
Premium Package for i المُعلَن مؤخّراً يوفّر تجربة أصلية ومحسَّنة لفريق تطوير IBM i. سيصبح Premium Package for i متاحاً للعموم في 24 يونيو.
Premium Package for i. مع إتاحة 24 يونيو، سيتصل Bob مباشرةً بـ IBM i الخاص بك. من جلسة واحدة تقرأ أعضاء المصدر مباشرةً من QSYS، وتحرّرها بنفس سير العمل أعلاه، وتُشغّل دورات التجميع والاختبار ضد النظام مباشرةً. إلى جانب الاتصال، يكتسب Bob skills وworkflows مدمجة ومضبوطة لتطوير IBM i — تحويل ثابت لحرّ، وإعادة بناء، وتوليد توثيق — حتى يصل موجّه بداية على قاعدة كود RPG مباشرةً إلى اتفاقيات IBM i بشكل افتراضي. بشكل ملموس، هذا يعني:
- جلسة Bob واحدة متصلة بـ LPAR تطوير؛ لا حلقة تصدير-تحرير-استيراد منفصلة.
- أخطاء التجميع ونتائج الاختبار من IBM i تظهر في المحادثة التي يجريها Bob فعلاً.
- Skills وworkflows مدمجة لأنماط إعادة البناء والتحويل وتوليد الاختبار التي تُشغّلها متاجر IBM i بشكل متكرّر.
أبعد من ذلك — دورة SDLC شاملة. ثلاثة مسارات في التصميم النشط للإصدارات المستقبلية:
- تكامل DevOps. Bob يشارك في البناء والنشر والمراقبة وCI/CD لأعباء عمل IBM i — تشغيل اختبار انحدار ضد LPAR اختبار، ورفع تغيير عبر البيئات، وعرض مشكلة وقت التشغيل في جلسة.
- أداء SQL. تحليل البيانات وتحسين الفهارس كقدرة من الدرجة الأولى، على أنماط نقل SQL المضمّن التي يُنتجها Bob بالفعل.
- مساعد معرفة IBM i. إجابات مستندة إلى الاسترجاع عبر قاعدة الكود ووثائق التصميم والتذاكر — حتى السياق الذي يعيش خارج المصدر يمكن الوصول إليه من المحادثة ذاتها.
للفريق الذي يتبنّى Bob اليوم، سير العمل مع الملف المحلي أعلاه هو نقطة البداية الصحيحة؛ البنود في هذا القسم تصف كيف يتقلّص سير العمل ويمتدّ مع نضج عرض IBM i.
مراجع العملاء
فرق في الرعاية الصحية والزراعة وتكنولوجيا المعلومات المؤسسية والخدمات اللوجستية تستخدم Bob ضد قواعد أكواد IBM i الإنتاجية اليوم:
- MEDHOST. تطبيقات رعاية صحية تمتدّ عبر أجيال RPG متعددة في مستشفيات أمريكية. يستخدم الفريق Bob لتحليل الأثر وتحويل ثابت لحرّ، ولتأهيل المطوّرين الجدد على برامج مضت عليها حقبة المؤلّفين الأصليين.
- NI+C. متكامل مؤسسي ياباني مع برامج RPG كانت تعمل دون تغيير لأكثر من عقد بدون توثيق تصميم يمكن العثور عليه. أنتج Bob وثائق تصميم ومخطّطات Mermaid دقيقة بما يكفي لأن يستمر في استخدامها للعمل الحقيقي مهندسون كانوا قد ارتدّوا سابقاً عن مساعدي الذكاء الاصطناعي.
- Heartland Co-op. تعاونية زراعية في Iowa تبثّ بيانات استشعار IoT في الوقت الفعلي في بيئة IBM i لمراقبة جودة الحبوب والمعدّات. يساعد Bob المطوّرين على التفكير عبر الترابطات بين مسار IoT ومحاسبة الحبوب والأنظمة التشغيلية الأساسية، ويُقصّر منحنى التأهيل للموظفين الجدد.
- Carreras Grupo Logístico. أحد أوائل متبنّي Bob المؤسسيين في إسبانيا، يستخدمه لشرح منطق البرامج القديمة وتوليد التوثيق وإعادة البناء عبر وحدات منصة خدمات لوجستية.
القاسم المشترك بين الأربعة هو نفسه: قاعدة كود IBM i الموجودة تبقى في مكانها، وعمل الشرح والتحويل والتوثيق يعمل بالتوازي مع النظام الإنتاجي بدلاً من السبق على مشروع استبدال.
ابدأ
- ابدأ تجربة مجانية
- اسحب برنامج RPG واحد إلى مجلد محلي وافتحه في Bob.
- في وضع Ask، اطلب شرحاً ومخطّط Mermaid لتدفق البيانات فيه.
هذه الجلسة — برنامج واحد، محادثة واحدة — هي أقصر طريق لإجابة حقيقية حول ما إذا كان Bob يناسب طريقة عمل فريقك.
