Die Anzahl der mit dem Internet verbundenen und miteinander kommunizierenden Systeme wächst stetig. Statista Research projiziert, dass allein die Anzahl der verbundenen IoT-Geräte sich bis 2030 mehr als verdoppeln wird. Diesem Trend folgen auch sogenannte “As a Service“-Lösungen wie SaaS (Software as a Service) oder AaaS (API as a Service). Das Letztere ist besonders interessant und verdeutlicht, wie wichtig und allgegenwärtig Webservices und ihre APIs heutzutage sind.

Die Vorteile von vernetzten Systemen und Webservices, die über HTTP-basierte APIs miteinander kommunizieren, sind eindeutig. Dazu gehören u. a. Wiederverwendbarkeit, Austauschbarkeit und die entkoppelte Entwicklung aller Endpunkte. Für die „IBM i“-Plattform ist der größte Vorteil die Möglichkeit bestehende Applikationen mit Webservices zu erweitern oder sie als solche zur Verfügung zu stellen.

Quelle: Statista 2021

Abbildung 1: Anzahl IoT-Geräte in Milliarden.

Da man hier die komplette Neuerstellung der bestehenden Applikationen in anderen Sprachen oder auf anderen Plattformen umgehen kann, bildet diese Modernisierungsstrategie eine betriebswirtschaftlich potente Alternative. Kein Wunder also, dass Themen wie Webservices, Web-APIs und Node.js auf der POW3R immer mehr in das Rampenlicht gerückt sind. Auch IBM-Entwickler wie Steve Will und Jesse Gorzinski haben in Ihren Beiträgen klar gezeigt, dass das Konsumieren und Erstellen von Webservices nahezu notwendige Schritte zur Software-Modernisierung auf der „IBM i“ sind.

Diese Modernisierungsschritte benötigen zwei wichtige Komponenten: eine Laufzeitumgebung bzw. ein Framework, welches bestehende Applikationen als Webservices zur Verfügung stellen kann, und ein Change-Management-System, welches entkoppeltes Entwickeln und Verteilen dieser Webservices ermöglicht.

Die Rolle der Laufzeitumgebung wird von Node.js erfüllt. Node.js wurde 2009 von Ryan Dahl entwickelt, um JavaScript, die Programmiersprache aller Browser und somit auch des Webs, serverseitig nutzbar zu machen. In 2010 kam der Paketmanager NPM dazu. Mit NPM haben Entwickler die Möglichkeit Ihre JavaScript-Module zu veröffentlichen oder die Module anderer Entwickler auf eine einfache Art und Weise zu verwenden. Aktuell stehen auf npmjs.com ca. 1,5 Millionen Module zur Verfügung – darunter auch die offiziellen Module der IBM für Ihre SaaS- und KI-Lösungen, wie z. B. die berühmten Watson-Services.

Die Beliebtheit von Node.js und NPM sorgte dafür, dass Node.js sich als eine marktführende Lösung für API-Server etablieren konnte und JSON (JavaScript Object Notation) der Industriestandart für String-basierte Webservice-Kommunikation wurde. Eine Tatsache, die IBM nicht entgangen ist, denn in den letzten Jahren hat IBM die „IBM i“-Plattform durch das Portieren von Open-Source-Technologien wie Node.js enorm gestärkt. Das Repertoire dieser Technologien für die „IBM i“ wächst stetig und das Potential ist riesig.

Das US-amerikanische Unternehmen Profound Logic Software, welches die beliebte RPG-basierte Profound UI-Suite entwickelt, hat die Modularität und Erweiterbarkeit von Node.js genutzt, um das Framework Profound.js zu erstellen. Profound.js ist ein vielumfassendes „Business-Application-Framework“ und ermöglicht die Kommunikation zwischen JavaScript und bestehenden „IBM i“-Applikationen.

Quelle: Task Force IT-Consulting GmbH

Der grafische Display File Designer der Profound UI Suite

Hierdurch ist es mit wenig Aufwand möglich Profound.js als API-Server zu verwenden. Konkret bedeutet dies, dass man auf der „IBM i“ mit Profound.js Webservice-Endpunkte erstellen und diese per HTTP-Anfragen ansprechen kann. Profound.js könnte intern eine beliebige Applikation aufrufen und den Rückgabewert als JSON verpackt an den Anfrager schicken. Somit ergeben sich neue Interaktions- und Kommunikationsmöglichkeiten zwischen der „IBM i“ und anderen Systemen wie z. B. Mobil- oder IoT-Geräten.

„IBM i“-Veteranen ohne oder mit wenig Erfahrung in JavaScript werden sich über das neue „low-code“ API-Erstellungswerkzeug freuen, da dieses die Erstellung von Webservices mit minimalem JavaScript-Wissen ermöglicht. Natürlich ist auch das Konsumieren von Webservices mit Profound.js möglich, um z. B. bestehende Applikationen on-the-fly mit dem Webservice eines Online-Dienstes wie DeepL zu übersetzen.

Durch die Plattformunabhängigkeit von Node.js bzw. Profound.js, ist es zudem möglich solche API-Server als Microservices auf anderen Systemen mit verschiedenen Datenbanken wie Oracle oder MS SQL auszuführen, um z. B. verteilte Datensätze zusammenzuführen oder um die Datenparität auf den Datenbanken zu sichern.

Quelle: Task Force IT-Consulting GmbH

: Profound.js als API-Server, um bestehende Programme zur Verfügung zu stellen.

Mit diesen neuen Freiheiten ist eine große Komplexität möglich. Um diese sicher navigieren und entwickeln zu können ist wie oben beschrieben ein fähiges Change-Management-System notwendig. Tatsächlich hat Profound Logic Software einen Integrationspartner im deutschen Raum namens Task Force IT-Consulting GmbH, welches das hauseigene Change-Management-System CMOne entwickelt.

Diese über 10-jährige Partnerschaft beider Unternehmen fördert die nahtlose Interoperabilität beider Produkte. CMOne wurde auf der „IBM i“ für die „IBM i“ entwickelt und erlaubt das revisionssichere Entwickeln und Verteilen von Programmen in den beliebten „IBM i“-Sprachen wie RPG, COBOL und CL, aber auch JavaScript und somit Profound.js. Auch moderne Entwicklungsstrategien wie testgetriebene Entwicklung mit Unit-Tests und Code-Coverage werden unterstützt.
Der Software-Modernisierung auf der „IBM i“ steht also nichts im Wege. Durch die Erweiterung der

Plattform mit Open-Source-Technologien hat man nun die Möglichkeit modernste Frameworks und Entwicklungsmethoden zu verwenden. Diese und die darauf aufbauenden Werkzeuge haben nicht nur betriebswirtschaftliche Vorteile, sondern machen das Entwickeln auf und für die „IBM i“ deutlich angenehmer.

Tatsache ist, dass viele „IBM i“-Unternehmen ein Generationsproblem haben und oft übersehen, dass jede Software-Modernisierung die „IBM i“-Plattform für Industrieeinsteiger zugänglicher macht und somit auch dem Generationsproblem entgegenwirkt. Eine weitere Tatsache ist, dass JavaScript eine sehr zugängliche Programmiersprache ist und damit zu den beliebtesten gehört. Wieso also nicht genau in diese Richtung modernisieren?

Kerim Güney, Task Force IT-Consulting GmbH

Task Force IT-Consulting GmbH