IBM Bob ile IBM i ile Çalışmak
Hiç RPG satırı yazmadıysanız, IBM i ölçekte üretim için en büyüleyici platformlardan biridir. Birkaç milyon satır yazdıysanız, günlük acının nerede yaşadığını zaten biliyorsunuz. Bu gönderi her ikisini de kapsar: IBM i'yi benzersiz kılan şeyin teknik bir taslağı, modernizasyon sürtüşmesinin gerçekte nerede ortaya çıktığı, IBM Bob'un bugün bir IBM i iş akışına nasıl uyduğu, başlamak için kurulum adımları ve platform için yol haritasında sırada ne var.
IBM i'nin gerçekte ne olduğu
IBM i, "bunu yeniden yazmalıyız" anlamında eski bir işletim sistemi değildir. Entegre bir platformdur — OS, veritabanı, güvenlik modeli ve çalışma zamanı tek bir şey olarak tasarlanmış ve gönderilmiştir — onlarca yıldır bankalar, sigortacılar, hastaneler, üreticiler ve lojistik şirketleri için gelir elde etmektedir. Bu yüzden buna efsanevi demeliyiz.
İlk kez gören geliştiricileri şaşırtma eğiliminde olan birkaç detay:
- Single-level storage. RAM ve disk tek bir sanal adres alanını paylaşır. Nesne işaretçileri yeniden başlatmalar boyunca kalıcıdır. OS, bellek ve depolamayı tek bir katman olarak ele alır ve aralarında şeffaf bir şekilde sayfalama yapar. Çoğu modern sistem hala bunu yakalamaya çalışıyor.
- TIMI, Technology Independent Machine Interface. 1990'lardaki donanımda derlenen RPG ikilileri, mevcut POWER çiplerinde değişiklik yapılmadan çalışır. OS, yeni komut setine karşı kaputun altında yeniden çevirir. En yakın modern benzetme, onlarca yıl önce WebAssembly'dir.
- Nesne tabanlı OS. Programlar, dosyalar, kuyruklar ve yetkiler, özniteliklere sahip tiplendirilmiş nesnelerdir — üzerine meta veri eklenmiş dosyalar değil. Güvenlik nesne düzeyinde uygulanır.
- Db2 for i entegre edilmiştir, eklenmemiştir. SQL ve yerel kayıt düzeyinde I/O aynı verilere erişir. 40 yıllık bir fiziksel dosya, bir geçiş projesi olmadan modern bir SQL görünümü aracılığıyla sorgulanabilir.
- Kaynak sistemde veya Git'te yaşayabilir — senin seçimin. Tarihsel olarak, IBM i kaynağı kaynak fiziksel dosyaları (QSYS) içinde üyeler olarak saklandı, doğrudan sistemde derlendi. Platform başlangıçta LPAR'ı gerçeğin kaynağı olarak konumlandırdı. Ancak IBM i evrildi: derleyiciler ve OS artık seçersen modern Git merkezli iş akışlarını, IFS akış dosyalarını ve yerel geliştirmeyi tam olarak destekliyor. Birçok mağaza hala QSYS kütüphanelerini kullanıyor, ancak platform seçenekler sunuyor
Platform ayrıca kutudan çıkar çıkmaz modern teslimat modellerini destekler: OS'nin bir parçası olarak yerel REST API motorları, Power Virtual Server aracılığıyla hibrit bulut ve işlemsel iş yükleriyle aynı donanımda çalışan AI çıkarımı. RPG, COBOL, CL ve SQL, mühendislik organizasyonunuzun geri kalanının zaten kullandığı geliştirme uygulamalarıyla bir arada bulunur.
Platform sorun değil. Sürtüşme onun etrafında.
Sürtüşmenin ortaya çıktığı yer
Hemen hemen her IBM i mağazasında dört model ortaya çıkar. Bunların hiçbiri RPG'nin kendisi hakkında değildir — dil iyidir — ancak hiç yazılmamış kodun etrafındaki bağlam ve platformun bu bağlamı saklama ve paylaşma şekli hakkındadır.
- Tasarım gereği örtük bağlam. Çalışan bir RPG programı, bir kaynakta dört dil neslini kapsayabilir — RPG II, RPG IV, /COPY kopya kitapları (derleme zamanında çekilen paylaşılan bildirimler) ve serbest biçimli prosedürler — sütuna duyarlı sözdizimi ve numaralandırılmış göstergeler (
*IN01–*IN99) ile çoğu diğer dilde yapılandırılmış kontrol akışı ve adlandırılmış boolean'ların yaptığı işi yapar. Sözdizimi bir haftada öğrenilebilir; etrafındaki kurallar ve iş kuralları kıdemli mühendislerin kafasında yaşar. - Değişiklik asla yerel değildir. Bir alanın türü, onu kullanan programda bildirilmez — veritabanı tablosunun kendisinde, ayrı bir kaynak dosyasında (bir DDS üyesi) bildirilir. Bu tabloyu okuyan veya yazan her program, üstte dosyaya başvurarak bu tanımları miras alır. Bu nedenle bir sütunu 10 haneden 12 haneye uzatmak asla tek programlı bir düzenleme değildir: dosyaya dokunan her programa yayılır ve bu programların listesi nadiren bir yerde yazılıdır. Bu nedenle kritik bir iş yüküne yapılan her değişiklik süreklilik riski taşır ve modernizasyon durur.
- Kaynak, modern araçların beklediği yerde nadiren yaşar. Bir programın kanonik kopyası sistemdedir, bir dizüstü bilgisayardaki Git deposunda değil. On beş yıl önce başka birinin yazdığı kodu okumak, onu LPAR'da bulmakla, dışa aktarmakla ve ardından dışa aktarmanın kanonik kopya olup olmadığına karar vermekle başlar — yerel bir çalışma ağacı varsayan herhangi bir aracın, yerini hak etmeden önce etrafında uyarlanması gereken bir iş akışı.
- Sabit biçimli RPG modern kod gibi görünmez. Çoğu üretim RPG'si sabit biçimde yazılmıştır: işlem kodlarının 26–35 sütunlarında, Factor 1'in 12–25'te yaşadığı ve yorumların yalnızca 80. sütundan sonra sığdığı sütuna duyarlı sözdizimi. Python veya JavaScript üzerinde eğitilmiş herkes için assembly dili gibi okunur. IBM, dili tamamen serbest biçimli RPG (RPG IV, daha sonra sadece "RPG") ile yeniden icat etti, bu da modern bir prosedürel dil gibi görünür ve hisseder — yapılandırılmış bloklar, adlandırılmış değişkenler, standart ifadeler. Sözdizimi boşluğu gerçektir, ancak dilin kendisi evrildi. Sürtüşme, onlarca yıllık çalışan kodun hala sabit biçimde olması ve onu yeniden yazmanın çoğu mağazanın haklı gösteremeyeceği bir risk taşımasıdır.
Bob'un IBM i için bir RPG uygulamasında yaptığı şey
Bob'u bir RPG programına yönlendirin ve Ask modunda başlayın:
- "Bu programın ne yaptığını ve hangi dosyalara dokunduğunu bana anlat."
- "
CUSTNOnerede ayarlanıyor ve bundan sonra hangi programlar onu okuyor?" - "Bu alanın uzunluğunu değiştirirsem ne bozulur?"
Aklınızda bir değişiklik olduğunda Plan moduna geçin: serbest biçim dönüşümü, kayıt düzeyinde I/O'dan SQL geçişi veya bir monoliti modüllere ayırma. Bob, herhangi bir dosya değiştirilmeden önce bir plan, dokunduğu bağımlılıklar ve atmayı planladığı adımları üretir.
Değişikliği uygulamak için Code moduna geçin. Bob:
- Tekrarlanabilir modeller kullanarak sabit biçimli RPG'yi serbest biçime dönüştürür, dosya dosya.
- Uygun olduğunda kayıt düzeyinde I/O'yu gömülü SQL'e taşır.
- Mevcut prosedürlere karşı RPGUnit test paketleri oluşturur, böylece dönüşüm yalnızca derlenmiş değil, doğrulanabilir olur.
- Kaynaktan düz dil belgeleri ve Mermaid diyagramları üretir — herhangi bir mühendisten daha uzun yaşayan aranabilir, paylaşılabilir eserler.
Aynı iş akışı RPG II/III/ILE, CL, DDS, SQL ve COBOL'u ele alır, bu nedenle doğmadan önce yazılmış bir programı okuyan yeni bir işe alım artık sözdizimi tarafından engellenmez.
IBM i kaynağınızı Bob'a hazır hale getirin
Bob bugün yerel bilgisayarınızdaki kaynağa karşı çalışır. Kurulum kısadır:
- Kaynağınızı indirin. RPG, RPGLE, CL, DDS ve SQL üyelerinizi yerel bir klasöre aktarın. Code for i proje gezgini, fiziksel dosya üyelerinden dışa aktarmayı belgeler: migrate source
- Klasörü Bob'da açın. Kaynak kökünde File → Open Folder. Bob ilk açılışta kod tabanını indeksler.
- IBM i araç zincirini kurun. Extensions panelinden IBM i Development Pack'i (Code for i paketi) ve Bob'un ürettiği diyagramlar için bir Mermaid oluşturucusu ekleyin.
- Ask modunda bir oturum başlatın. Tek bir program seçin — ideal olarak ekipte kimsenin tam olarak anlamadığı bir program — ve Bob'dan açıklamasını isteyin. Bu, Bob'un iş akışınızda yerini hak edip etmediğini görmenin en hızlı yoludur.
Ekibiniz SEU veya RDi'den geliyorsa, geçiş çoğunlukla yukarıdaki dışa aktarma adımı artı uzantı kurulumudur. Düzenleme yüzeyi, sözdizimi vurgulama, kod tamamlama ve daha önce açıklanan AI iş akışı ile modern bir VS Code ailesi ortamıdır; satır numaraları, onları isteyen mühendisler için hala mevcuttur.
IBM i'de Bob için sırada ne var
Yakın zamanda duyurulan Premium Package for i, IBM i geliştirme ekipleri için yerel ve optimize edilmiş deneyim sağlar. Premium Package for i 24 Haziran'da genel kullanıma sunulacak.
Premium Package for i. 24 Haziran GA ile Bob doğrudan IBM i'nize bağlanacak. Tek bir oturumdan QSYS'den doğrudan kaynak üyeleri okursunuz, yukarıdaki aynı iş akışıyla düzenlersiniz ve doğrudan sisteme karşı derleme ve test döngüleri çalıştırırsınız. Bağlantıyla birlikte Bob, IBM i geliştirmeye ayarlanmış yerleşik beceriler ve iş akışları kazanır — sabitten serbeste dönüşüm, yeniden düzenleme, belge oluşturma — böylece bir RPG kod tabanındaki başlangıç istemi kutudan çıkar çıkmaz IBM i kurallarına daha doğrudan iner. Somut olarak, bu şu anlama gelir:
- Bir geliştirme LPAR'ına bağlı bir Bob oturumu; ayrı dışa aktarma-düzenleme-içe aktarma döngüsü yok.
- IBM i'den derleme hataları ve test sonuçları Bob'un zaten içinde olduğu konuşmaya geri döner.
- IBM i mağazalarının tekrar tekrar çalıştırdığı yeniden düzenleme, dönüşüm ve test oluşturma modelleri için yerleşik beceriler ve iş akışları.
Daha ileride — uçtan uca SDLC. Gelecek sürümler için üç konu aktif tasarımdadır:
- DevOps entegrasyonu. IBM i iş yükleri için derleme, dağıtım, izleme ve CI/CD'ye katılan Bob — bir test LPAR'ına karşı bir regresyon geçişi çalıştırma, ortamlar arasında bir değişikliği yükseltme ve bir çalışma zamanı sorununu bir oturuma geri getirme.
- SQL performansı. Bob'un bugün zaten ürettiği gömülü SQL geçiş modellerinin üzerine birinci sınıf bir yetenek olarak veri analizi ve indeks optimizasyonu.
- IBM i bilgi asistanı. Kod tabanı, tasarım belgeleri ve biletler genelinde alma tabanlı yanıtlar — böylece kaynağın dışında yaşayan bağlam aynı konuşmadan ulaşılabilir olur.
Bugün Bob'u benimseyen bir ekip için, yukarıdaki yerel dosya iş akışı doğru başlangıç noktasıdır; bu bölümdeki öğeler, IBM i teklifinin olgunlaşmasıyla bu iş akışının nasıl kısaldığını ve genişlediğini açıklar.
Müşteri referansları
Sağlık, tarım, kurumsal BT ve lojistikteki ekipler bugün üretim IBM i kod tabanlarına karşı Bob kullanıyor:
- MEDHOST. ABD hastane dağıtımları genelinde birden fazla RPG neslini kapsayan sağlık uygulamaları. Ekip, etki analizi ve sabitten serbeste dönüşüm için ve orijinal yazarları uzun zaman önce gitmiş programlara daha yeni geliştiricileri dahil etmek için Bob'u kullanıyor.
- NI+C. Hayatta kalan tasarım belgeleri olmadan on yıldan fazla bir süredir değişmeden çalışan RPG programlarına sahip Japon kurumsal entegratör. Bob, daha önce AI asistanlarından seken mühendislerin gerçek iş için kullanmaya devam etmesi için yeterince doğru tasarım belgeleri ve Mermaid diyagramları üretti.
- Heartland Co-op. Tahıl kalitesi ve ekipman izleme için IBM i ortamına gerçek zamanlı IoT sensör verilerini aktaran Iowa merkezli tarım kooperatifi. Bob, geliştiricilerin IoT hattı, tahıl muhasebesi ve temel operasyonel sistemler arasındaki karşılıklı bağımlılıklar üzerinden akıl yürütmesine yardımcı olur ve yeni işe alımlar için hızlanmayı kısaltır.
- Carreras Grupo Logístico. İspanya'daki ilk kurumsal Bob benimseyenlerinden biri, eski program mantığını açıklamak, belge oluşturmak ve bir lojistik platformunun modülleri genelinde yeniden düzenlemek için kullanıyor.
Dördü boyunca ortak iplik aynıdır: mevcut IBM i kod tabanı yerinde kalır ve açıklama, dönüşüm ve belgeleme çalışması, bir değiştirme projesinin önünde değil, üretim sisteminin yanında çalışır.
Başlayın
- Ücretsiz deneme başlatın
- Bir RPG programını yerel bir klasöre çekin ve Bob'da açın.
- Ask modunda, bir yol gösterme ve veri akışının bir Mermaid diyagramı isteyin.
Bu oturum — bir program, bir konuşma — Bob'un ekibinizin çalışma şekline uyup uymadığı hakkında gerçek bir cevaba giden en kısa yoldur.
