IBM Z DACH

IBM Z DACH

IBM Z DACH

User group for all IBM Z customers in Germany, Austria & Switzerland (DACH)

 View Only

Python Programming on z/OS

By Walter Klaey posted 06/29/23 03:35 AM

  

Wieso Python?

Die Programmiersprache Python ist für seine Einfachheit und Lesbarkeit bekannt. Die Syntax ist so konzipiert, dass sie intuitiv und ausdrucksstark ist, so dass sie für Anfänger leichter zu erlernen und zu verstehen ist. Python-Code ist im Vergleich zu anderen Sprachen oft prägnanter und lesbarer, was zu einer höheren Produktivität und Wartungsfreundlichkeit führt.
Python ist eine vielseitige Sprache, die für eine breite Palette von Anwendungen verwendet werden kann. Sie verfügt über umfangreiche Bibliotheken und Frameworks für verschiedene Zwecke wie Webentwicklung, Datenanalyse, maschinelles Lernen, wissenschaftliche Berechnungen und Automatisierung. Die Flexibilität von Python ermöglicht es Entwicklern, verschiedene Aufgaben mit einer einzigen Sprache zu bewältigen.
Die Python Software Foundation (PSF) und zahlreiche Open-Source-Mitwirkende pflegen und verbessern die Sprache und ihr Ökosystem. Diese aktive Gemeinschaft stellt umfangreiche Dokumentationen, Tutorials und Ressourcen zur Verfügung, die es leicht machen, Hilfe zu finden und von anderen zu lernen. Die Verfügbarkeit einer großen Anzahl von Bibliotheken und Frameworks von Drittanbietern trägt ebenfalls zur Popularität von Python bei.
Python läuft auf mehreren Plattformen, darunter Windows, macOS, Linux, Raspberry PI aber auch auf einem z/OS. Diese plattformübergreifende Kompatibilität ermöglicht es Entwicklern, Code einmal zu schreiben und ihn ohne größere Änderungen auf verschiedenen Betriebssystemen auszuführen. Dies erleichtert die Entwicklung portabler Anwendungen und unterstützt die Zusammenarbeit in unterschiedlichen Umgebungen.
Python hat auf dem Gebiet der Datenwissenschaft und des maschinellen Lernens stark an Bedeutung gewonnen. Bibliotheken wie NumPy, Pandas und SciPy bieten robuste Werkzeuge für Datenmanipulation, Analyse und wissenschaftliche Berechnungen. Darüber hinaus haben Frameworks wie TensorFlow, PyTorch und scikit-learn Python zu einer bevorzugten Sprache für die Entwicklung von maschinellen Lernmodellen und die Forschung im Bereich der KI gemacht.
Dazu kommt eine branchenweite Akzeptanz und Unterstützung: Python wird breit eingesetzt in vielen Industrien und Organisationen.
In sämtlichen Umfragen bei verschiedenen Organiationen und Gemeinschaften rangiert Python seit Jahren unter den Top 3 Programmiersprachen was Beliebtheit und Verbreitung betrifft.

Wieso Python auf z/OS?

Nach so vielen guten allgemeinen Argumenten für diese Programmiersprache müsste man die Fragestellung eher umdrehen; was hindert uns daran Python auf dem z/OS zu verwenden?
Die Community klagt zunehmend über mangelnde Skills im Bereich COBOL / PLI Programmierung. Im Rahmen einer Mainframe Modernisierung kann ich mir durchaus vorstellen, bestimmte Neuenetwicklungen oder bestende Services direkt mit Python anzugehen. Erste Erfahrungen bei Kunden haben gezeigt, dass ein Python Programmierer nicht über spezielle z/OS Skills verfügen muss um Code für z/OS entwickeln zu können, vorrausgesetzt wir können ihm ein moderne DevOps Umgebung zur Verfügung stellen, die nicht auf „Greenscreen Programming“ beruht.
IBM Open Enterprise SDK for Python ist seit dem Jahr 2020 verfügbar für z/OS als SMPE Install oder als einfache pax Installation in der in der aktuellen Python Version 3.11. Ergänzt wird das Angebot durch die Z Open Automation Utilities und Python AI Toolkit for IBM z/OS. Die Utilites umfassen z/OS spezifische Python Pakete, die unter anderem den Zugriff auf Datasets ermöglichen. Das AI Toolkit liefert Open-Source-Software, die auf der IBM Supply-Chain-Security basiert. Damit wird sichergestellt, dass die Python-Pakete gescannt und auf Schwachstellen geprüft wurden, welche die Sicherheit der Betriebsumgebung gefährden könnten. Selbstverständlich stehen sämtliche Pakete von PyPI (Python Package Index) ebenfalls zur Verfügung. Die Erfahrung hat jedoch gezeigt, dass eine direkte Anbindung solcher OpenSource Repositories an eine bestehende z/OS Umgebung nicht allen Sicherheitsanforderungen unserer Kunden genügt. Das AI Toolkit schliesst exakt diese Lücke.
Sämtliche drei erwähnten Kompenenten sind unentgeltlich lizenzierbar. Es besteht ebenfalls optional die Möglichkeit Support über IBM Shop Z für die alle drei Komponenten einzukaufen. Seit Python 3.11 (z/OS APAR OA63406, Python APAR PH52983) läuft der Python code auf den zIIP Prozessoren und hilft die ökonomische Fragestellung zu beantworten. Traditionell sind jedoch nicht alle Python Pakete auch selber in Python geschrieben  worden... Dieser Nicht-Python Code wird vom Offload auf zIIP ausgeschlossen.

Wo macht es Sinn, Python auf z/OS einzusetzen

Wie bereits eingangs erwähnt, ist einer der Stärken von Python im Bereich Datenanalyse. Somit lässt es sich leicht bei Datenverarbeitungen, Analysen oder einfachem Reporting auf die bestehenden bekannten Programmiersprachen COBOL und PLI verzichten. Die mitgelieferten open source Bibliotheken und Tools helfen bei der Umsetzung und Visualisierung.
Python wird häufig für die Automatisierung von Aufgaben und Skripterstellung auf verschiedenen Plattformen verwendet. Mit dem IBM Python Open Enterprise SDK können Sie die Automatisierungsfunktionen auch auf den Mainframes bringen zusammen mit Redhat Ansible. So können Sie Python-Skripte schreiben, um Systemverwaltungsaufgaben zu automatisieren, Mainframe-Jobs auszuführen, mit Mainframe-Dienstprogrammen zu interagieren und Workflows platformübergreifend zu orchestrieren.
Ein weiteres Einsatzgebiet sehe ich im Bereich Hybrid Cloud integration. Neue Webservices können relativ schnell entwickelt werden mit den verfügbaren Frameworks, welche auf Python zur Verfügung stehen (z.B Flask). Oft werden für solche Services Daten aus dem SOR (System Of Records) benötigt, die im Db2 for z/OS liegen. Diese Web-frameworks basieren auf restful Services. DIe Nähe zu den Daten bringt weitere Vorteile der Lösung: Performance und Skalierbarkeit.
Mainframe Plattformen sind bekannt für strenge Sicherheits- und Compliance-Anforderungen. Das IBM Python Open Enterprise SDK enthält Funktionen und Werkzeuge, die sichere Kodierungspraktiken, Authentifizierung und Verschlüsselung unterstützen und es Entwicklern ermöglichen, Anwendungen zu erstellen, die ihren Sicherheits- und Compliance-Anforderungen entsprechen.

Trotz allen Lobes für diese relativ neue Prgrammiersprache auf dem Mainframe gibt es aus meiner Sicht auch ein paar Punkte zu beachten. Zur Zeit besteht keine Integration in die Transaktionmonitore (CICS und IMS/TM). Traditionell sind in diesen Systemen die geschäftskritischen Services abgebildet, welche hohe Anforderungen an Datennkonsistenz und Performance verlangen.
Aber wer weiss... wenn genügend Kunden danach fragen, kann ich mir vorstellen dass IBM sich Gedanken dazu machen wird.

Mein Rat: Beginnen Sie klein und sammeln Sie zuerst etwas Erfahrung. Binden Sie den Mainframe in Ihre bestehende Python Dev/Ops Umgebung ein (CI/CD Pipeline).
Python auf dem dem z/OS fühlt sich nicht anders an, als auf jeder anderen Plattform.

0 comments
55 views

Permalink