Wenn Sie meine Artikelreihe zu den neuen Open Source Tools für die IBM i verfolgen, wird Ihnen sicherlich aufgefallen sein, dass es mittlerweile eine Unmenge an Programmiersprachen gibt, mit denen man native auf der IBM i entwickeln kann.

Längst vorbei sind die Zeiten, in denen Programmierern auf der AS/400 nur RPG, Cobol und C++ zur Verfügung standen. Ebenso sind die Zeiten Geschichte, in denen es nur das berühmte Source Entry Utility – kurz SEU – zur Code-Erfassung gab. Die meisten „neuen“ Sprachen, wie zum Beispiel Java, PhP, Python, Node.js, PERL oder jetzt ganz neu auch Mono, können natürlich mit beliebigen Editoren oder integrierten Entwicklungsumgebungen (IDE – Integrated Development Environment) entwickelt werden. RPG und Cobol hingegen sind da schon etwas eingeschränkter, wenngleich durch die Möglichkeit, RPG-Quellcode nun auch im IFS speichern zu können, im Prinzip ebenfalls jeder beliebige Editor genutzt werden kann.

Doch wer die Wahl hat, hat bekanntlich auch die Qual, und so stelle ich Ihnen in dieser Serie einige der bekanntesten Editoren und IDEs vor, mit denen Sie komfortabel und effektiv Programme für IBM i entwickeln können.

Orion ruft i

Da mir für RPG adhoc nur acht Tools einfallen – von denen zwei nicht gerade als komfortabel einzustufen sind (SEU und EDTF) –, wollen wir mit einer IDE beginnen, die unter anderem native auf IBM i läuft und gleichzeitig auch RPG unterstützt sowie Mehrwert in Form einer Quellcodeverwaltung wie Git mit sich bringt und via Plug-ins erweiterbar ist.

Nein, es handelt sich hierbei nicht um den Rational Developer for i, denn dieser ist ja bereits allseits bekannt und unzählige Artikel – auch hier im TKL – wurden dazu veröffentlicht. Davon abgesehen läuft er auch nicht native auf IBM i. Die vier anderen Tools, die mir zu dem Thema eingefallen sind, stelle ich Ihnen in den nächsten Artikeln vor.

In diesem Beitrag befassen wir uns mit der Entwicklungsumgebung Orion. Orion wurde als Option 8 des mittlerweile „in Rente geschickten“ Open Source-Lizenzprogramms 5733OPS eingeführt. Aktuell läuft ein Request for Enhancement (RFE), dass IBM Orion auch über den Red Hat Package Manager (RPM) zur Verfügung stellen und auf den aktuellen Stand bringen möge.
Wenn Sie sich hieran beteiligen möchten, besuchen Sie bitte die folgende Seite:

https://www.ibm.com/developerworks/rfe/?BRAND_ID=301

… und voten Sie mit!

Unabhängig davon, dass Orion auf IBM i aktuell nur in der älteren Version 13 vom März 2017 vorliegt, lohnt sich dessen Installation und die Arbeit mit diesem Tool, wie Sie weiter unten erfahren werden. Unter folgendem Link finden Sie die offiziellen IBM-Informationen zu Orion:

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/Orion

Orion wurde primär als browserbasierte „Open Tool Integration Platform“ entwickelt und stellte ursprünglich eine Entwicklungsumgebung im Web für das Web dar.

Das heißt, idealerweise entwickeln Sie mit Orion HTML-Seiten mit Javascript und CSS. Die IBM i-Version wurde glücklicherweise auch mit einer RPG-Syntaxunterstützung ausgestattet.

https://wiki.eclipse.org/Orion

Bei Orion handelt es sich um ein Open Source-Projekt, das unter dem Eclipse Cloud Development Top-Level-Projekt angesiedelt ist.

Darunter sind noch weitere Projekte angesiedelt:

https://wiki.eclipse.org/ECD

Schaut man sich die Seite mit den Projekten an, sticht einem ein Wort immer wieder ins Auge – Cloud.

So ist auch Orion als Entwicklungsumgebung in der Cloud angesiedelt und kann dort direkt genutzt werden:

https://orionhub.org/

Als IBM i-Anwender und/oder Entwickler wissen wir, dass ein Power-System mit IBM i vom Prinzip her schon eine Private Cloud darstellt. Was liegt also näher, als eine cloudbasierte Entwicklungsumgebung unter IBM i laufen zu lassen? Das dachte sich wohl auch IBM und hat Orion kurzerhand als Option 8 in das Open-Source-Lizenzprogramm gepackt.

Installieren können Sie Orion ab IBM i 7.2 mit Technology Refresh 4 oder mit IBM i 7.3.

Für IBM i 7.1 gibt es leider keine native Unterstützung. Sollten Sie noch IBM i 7.1 verwenden oder TR 4 für 7.2 noch nicht installiert haben, so können Sie Orion auch in der Cloud nutzen (siehe Link oben), wobei ein Kollege meinte, die benötigten PTFs ließen sich auf jedem IBM i 7.x Betriebssystem installieren – einen Versuch ist es also wert.

Wir heben ab

Um Orion nutzen zu können, muss zunächst das Lizenzprogramm 5733OPS mit den verschiedenen Optionen installiert werden. Wie dies konkret funktioniert, können Sie in meiner Open-Source-Serie im TechKnowLetter nachlesen.
Wichtig: Wie bei allen Open-Source-Optionen für IBM i sind noch die neuesten PTFs, die IBM zur Verfügung stellt, zu installieren, damit man zumindest einigermaßen auf dem aktuellen Stand ist.
Da die Entwicklung von Open-Source-Projekten so langsam aber sicher in Lichtgeschwindigkeit erfolgt, ist es nahezu unmöglich, immer die neueste Version zu nutzen – es ist aber auch nicht immer nötig oder sinnvoll.
Ist die Installation erfolgreich verlaufen, kann Orion recht einfach zum Beispiel über die QShell gestartet werden. Starten Sie dazuin einer 5250-Emulation ein QShell-Terminal:

STRQSH

und geben dann Folgendes ein:

cd /QOpenSys/QIBM/ProdData/OPS/Orion

orion

Hierdurch wird Orion als Batch-Job QORION im Subsystem QHTTPSVR gestartet und kann verwendet werden. Intern nutzt Orion immer den Benutzer QTMHHTTP.

Läuft der Batch-Job, kann es auch schon losgehen. Gehen Sie in den Browser Ihrer Wahl und geben Sie dort ein:

http://192.168.1.1:2025

(DNS-Name oder IP-Adresse Ihrer IBM i)
Der folgende Screen wird Ihnen dann angezeigt:

Klicken Sie nun auf den Button „Try It Now“ und es erscheint ein Bildschirm, auf dem Sie sich registrieren können:

Sie können nun einen beliebigen Benutzernamen und ein beliebiges Kennwort angeben und werden intern von Orion als Benutzer angelegt. Dieser Benutzer hat nichts mit Ihrem IBM i-Benutzerprofil zu tun.

Alternativ kann Orion auch via OAuth so konfiguriert werden, dass man es mit seinem Google- oder Github-Benutzer verwenden kann, sofern ein solcher vorhanden ist. Möchten Sie das tun, können Sie im Administrator-Handbuch nachschlagen, wie das funktioniert:

https://wiki.eclipse.org/Orion/Server_admin_guide

Die Konfigurationsdateien befinden sich im IFS-Pfad

/QOpenSys/QIBM/UserData/OPS/Orion

wie hier zu sehen ist:

Die Benutzerdaten werden in Unterverzeichnissen des Verzeichnisses „serverworkspace“ verwaltet und zwar – na klar – in JSON-Dateien. Sie sehen, Javascript und JSON sind einfach überall, denn Orion ist in Javascript entwickelt.

Hier im Beispiel ist die Verzeichnisstruktur des Benutzers „tkl“ zu sehen.

Ein Auszug aus der user.json:

{
"FullName": "tkl",
"OrionVersion": 8,
"Properties": {
"LastLoginTimestamp": "1476791859947",
"Password": "KG5mGYe-A0Q=,edeNsD-FB_v2Wjno14vpPw==",
"UserRights": [
{
"Method": 15,
"Uri": "/users/tkl"
},
{
"Method": 15,
"Uri": "/workspace/tkl-OrionContent"
},
{
…

Nach erfolgter Anmeldung sieht der Browserinhalt in etwa folgendermaßen aus:

Das Orion-Projekt

Nun, da wir in der Orion-Umgebung angekommen sind, wollen wir direkt ein neues Projekt starten. Dazu geht man auf „File/New/Project/Basic“, wie hier abgebildet:

Geben Sie einen Projektnamen Ihrer Wahl ein und drücken Sie „Enter“. Das Projekt – in meinem Beispiel „OrionTKL“, wird nun erstellt und im Verzeichnis

/QOpenSys/QIBM/UserData/OPS/Orion/serverworkspace/tk/tkl/OrionContent/OrionTKL

gespeichert.

Mit einem Rechtsklick auf den Projektnamen, der nun in der Liste links erscheint, können Sie eine neue Datei erstellen.

In meinem Beispiel nenne ich die Datei OrionRPG1.rpgle. Anschließend öffnet sich im rechten Bereich der Editor und es kann Code eingegeben werden. Ein prüfender Blick ins IFS zeigt, dass die neu erstellte Datei tatsächlich dort zu finden ist.

Wenn Sie jetzt damit beginnen, Free RPG einzugeben, werden Sie sehr schnell feststellen, dass Orion die RPG-Schlüsselwörter kennt und sie mit dem sogenannten Syntax-Highlight kenntlich macht:

Diesen Quellcode können Sie nun mit CRTBNDRPG umwandeln, indem Sie dort den Parameter SRCSTMF verwenden:

CRTBNDRPG PGM(PGMLIB/ORIONRPG1) SRCSTMF('/QOpenSys/QIBM/UserData/OPS/Orion

/serverworkspace/tk/tkl/OrionContent/OrionTKL/OrionRPG1.rpgle')

Danach kann das Programm ganz normal aufgerufen werden.

Ein angenehmes Feature ist die automatische Speicherung.

Verwenden Sie kein **FREE (TotalFree), so ist darauf zu achten, dass der Quellcode erst ab Spalte 8 erfasst werden darf, wobei das Drücken der TAB-Taste zunächst keinen Effekt haben wird, denn die Tabs werden im IFS nicht gespeichert. Schaut man über die 5250-Emulation in die Quellcodedatei, kann man das überprüfen. Damit man dennoch nicht alle Leerzeichen händisch einfügen muss, gibt es in den Einstellungen von Orion die Möglichkeit, die Tabs in Leerzeichen umzuwandeln:

Fazit

Leider fehlt an dieser Stelle der Platz, um die Vorteile von Git innerhalb von Orion besprechen zu können. Das werde ich im nächsten Beitrag nachholen. Ebenso die Entwicklung von HTML und Javascript, bei der uns diverse Plug-ins behilflich sind, sowie weitere Editoren.

Aktuell bietet Orion einem reinen RPG-Programmierer mit Sicherheit noch nicht so viel Komfort, wie dies zum Beispiel der Rational Developer oder ein anderes Tool vermag, jedoch ist es eine sehr gute und kostenlose Alternative zu SEU, vor allem wenn man die neuen TotalFree-Funktionen nutzen möchte, die in SEU grundsätzlich zu Syntax-Fehlern führen.

Durch die farbliche Hervorhebung der RPG-Schlüsselworte hat man zwar schon eine grobe Syntaxprüfung, jedoch wäre eine richtige Syntaxprüfung, die beispielsweise fehlende Semikolons bemängelt, sehr hilfreich. Auch eine Prompt-Funktion oder eine Auflistung von definierten Variabeln, Prozeduren etc. wäre noch sehr wichtig.

Es bleibt also spannend und ich würde mich freuen, wenn Sie mich auf der Reise durch die Editoren und die IDE-Landschaft für die IBM i weiter begleiten.

In diesem Sinne – bis zum nächsten Teil.