Programmierung

Neue Webcast Serie – Transformer on i

Die digitale Transformation der Unternehmen ist in vollem Gange und wer jetzt nicht den Anschluss verlieren will, braucht eine gute Strategie und die richtigen Werkzeuge, das Know How und die Leute, um diese Strategie schnell und effektiv umzusetzen.

Meine Kollegen, Partner und ich unterstützen Sie dabei eine solche Strategie aufzustellen und umzusetzen.
Dabei spielt die technische Umsetzung zunächst eine untergeordnete Rolle. Oberste Priorität hat zunächst einmal das Ziel, welches man erreichen möchte. Darauf aufbauend und auf den vorhandenen Ressourcen, entwickeln wir gemeinsam mit Ihnen eine Strategie, um dieses Ziel schnellstmöglich zu erreichen.

Spielt die Plattform IBM i bei dieser Strategie eine Rolle, dann erfahren Sie in diesen 3 Webcasts, wie Sie schnell und effektiv

  1. Webservices und Microservices in ihre vorhandene Anwendungen integrieren bzw. die vorhandenen Anwendungen in Webservices oder Microservices umsetzen können. Dabei spielt es keine Rolle, ob Sie Anwendungen aus 1976 oder aus 2018 verwenden. Ob diese in RPG, Cobol, C++ oder Node.js geschrieben sind.
    Termin: 25. Juni 2019 – 10:00 Uhr bis 11:30 Uhr
  2. mit dem Domain Model Designer neue Web Anwendungen auf IBM i erstellen, ohne zu programmieren. Diese sind dennoch individuell anpassbar, wenn es gewünscht wird.
    Termin: 27. Juni 2019 – 14:00 Uhr bis 15:30 Uhr
  3. ihre 5250 Dialogprogramme in wenigen Minuten browserfähig bekommen und mit RPG oder Cobol erweitern können, ohne, dass Sie den original Quellcode anpassen müssen. Bei der Gelegenheit können Sie den Anwendungen auch ein „Facelifting“ verpassen oder den Workflow verändern, wie Sie im Webcast sehen werden.
    Termin: 02. Juli 2019 – 14:00 Uhr bis 15:30 Uhr

Webservices und Microservices

  • Nutzen von Webservices und Microservices in eigenen Anwendungen
  • Bereitstellen von Webservices und Microservices auf Basis vorhandener (alter) Anwendungen
  • Programmierung in RPG, Cobol, C++, Node.js, etc.

Domain Model Designer

  • Web Anwendungen für IBM i ohne Programmierung
  • Dennoch voll individuell anpassbar
  • Dynamisches Erweitern von vorhandenen Datenbanktabellen

5250 2.0 - Green Screen Reloaded

  • Schneller 5250 Emulator im Browser
  • Erweiterung der vorhandenen Masken mit 5250 oder HTML5
  • Zahlreiche Steuerelemente und Workflowänderungen ohne den Code zu verändern

Sie haben Interesse an einem oder mehreren Webcasts?

Kein Problem – senden Sie mir einfach eine kurze Email und teilen Sie mir mit, an welchem Webcast Sie teilnehmen möchten oder klicken Sie auf den o.g. Button und registrieren Sie sich dort.
Sie erhalten dann die Zugangsdaten.

Sie sind Interessiert, haben aber an den o.g. Terminen keine Zeit?
Auch kein Problem. Teilen Sie mir mit, an welchem der Webcasts Sie interessiert sind und Sie erhalten nach dem Webcast einen Link zur Aufzeichnung und können sich den Webcast in Ruhe anschauen, wenn Sie Zeit haben.

Evolution of RPG

Ein Segen, kann oft auch zu einem Fluch werden. So ergeht es schon seit Jahren vielen IBM i RPG und Cobol Anwendungen, die durch den Segen der Abwärtskompatibilität auch 2019 auf dem neuesten Betriebssystem noch so laufen, wie sie teilweise schon seit über 40 Jahren auf den Vorgängermaschinen der AS/400 schon gelaufen sind.

I.d.T. habe ich Kunden, die noch einige RPG-II Anwendungen fahren, die Mitte der 70er Jahre entwickelt wurden und diese funktionieren immer noch problemlos.

Dieser vermeintliche Segen des Investitionsschutzes, den man so auf keinem anderen Betriebssystem findet, mutierte aber schon oft zu einem Fluch und tut das auch heute immer noch.
Denn irgendwann kommt ein neuer IT Leiter oder Geschäftsführer bzw. Vorstand in das Unternehmen und findet „uralte“ Programme vor. Leider wird dann in vielen Fällen nicht zuerst gefragt, wie die Effektivität dieser Anwendungen aussieht, sondern es fallen nur die Punkte auf, die diese „alten“ Programme nicht können und die „moderne“ Programme standardmäßig beherrschen und so nimmt das Übel seinen Lauf…

Leider wurden und werden sehr oft die vorhandenen Programme nicht auf den aktuellen Stand der Technik angepasst, weil ja alles wunderbar funktioniert. Aufgrund des hektischen Tagesgeschäfts kommen die IBM i Entwickler oft auch gar nicht dazu ihre eigenen Kenntnisse entsprechend auf dem Laufenden zu halten und so entwickeln auch heute noch zahlreiche RPG und Cobol Entwickler, wie vor 10 oder 20 Jahren.

Mit meinem neuen Online Kurs „Evolution von RPG“ bringe ich alle RPG Entwickler, die nicht auf dem neuesten Stand sind, Schritt für Schritt in 4 Etappen auf eben diesen.
An einem durchgängigen Beispiel betrachten wir uns Schritt für Schritt die Evolution von RPG. Von RPG/400 mit seinem Spaltenformat und Zyklus über das ILE RPG mit den Anfängen von /Free RPG, embedded SQL, Modulen und Serviceprogrammen bis zum heutigen Total Free RPG mit einem Schichtenmodell und Unit Tests, wie man es auch im .NET, Java und Javascript Umfeld heute benutzt.

Schnelle Web Services in RPG und Cobol

REST Service mit native I/O

Ein Bild sagt mehr, als tausend Worte.

In unserem Beispiel hier oben, kann man wohl eher sagen, ein bisschen Code sagt mehr, als tausend Worte, denn was Sie hier sehen ist ein nativer RPG Web Service, welcher als ILE Objekt auf der IBM i kompiliert wurde und diese Ausgabe im Browser erzeugt:

Ausgabe im Browser

Dieses einfache „Hallo Welt“ Beispiel zeigt gleich mehrere Stärken von IceBreak, dem einzigen nativen Web- und Applikationsserver für IBM i, der gerade deshalb so unglaublich schnell ist.
Die Vorteile und Stärke von IceBreak liegt nämlich nicht nur in seiner Laufzeit Geschwindigkeit, sondern vor allem bei der Geschwindigkeit, in welcher RPG und Cobol Entwickler native Web Services auf der IBM i erstellen können. Wie man in dem Beispiel schön sehen kann, handelt es sich um ganz normalen RPG Code.
Es spielt auch keine Rolle, ob Sie SOAP oder REST Webservices entwickeln möchten. Auch ist es kein Problem SOAP oder REST Services von anderen Plattformen direkt in Ihren RPG und Cobol Programmen zu verwenden!

Natives RPG und Cobol

IceBreak erweitert RPG und Cobol bzw. jegliche IBM i ILE Sprachen, um zusätzliche Funktionen, sowie die Möglichkeit ganz einfach und direkt HTML5 Code oder XML/JSON Daten auszugeben bzw. zu lesen. So holt sich die Funktion „reqNum“ direkt den genannten Parameter aus der Browser URL, sodass dieser im RPG Programm verwendet werden kann.
Wie Sie in diesem Beispiel auch direkt erkennen können, versteht IceBreak auch „klassisches“ RPG, welches spaltenorientiert programmiert werden und statt embedded SQL auch native I / O (F Bestimmungen) verwenden kann. IceBreak versteht jegliches RPG und Cobol bzw. CL oder C/C++, welches die IBM Compiler umwandeln können!

Im nächsten Beispiel sehen Sie einen vollständigen Total Free RPG REST Service, welcher die IceBreak Erweiterung noxDB verwendet, um direkt via SQL Befehl JSON Dokumente zu erzeugen:

REST Service in Total Free RPG mit noxDB

Heraus kommt das:

ILE Web- und Applikations Server

IceBreak heißt der schnellste Web- und Applikationsserver für die IBM i ILE Umgebung. IceBreak ist deshalb so schnell, weil er selbst in ILE (C++ und RPG) programmiert ist und daher native auf IBM i läuft und jedes Programm, welches Sie damit entwickeln in ein natives ILE Objekt umwandelt.
Aus diesem Grund brauchen RPG und Cobol Entwickler sich auch nicht auf andere Programmiersprachen oder Tools einzulassen, denn sie können wie gewohnt ihre Anwendungen weiterentwickeln, jedoch als SOAP oder REST Webservices bzw. Clients verwenden.

Ach so – Sie wollen gar keine SOAP oder REST Services oder Clients in RPG entwickeln, sondern schnelle Web Anwendungen? Dann sollten Sie sich IceBreak erst recht anschauen, denn mit IceBreak entwickeln Sie die schnellsten ILE Web Anwendungen für IBM i – direkt mit Ihrem RPG oder Cobol Know how!
Lesen Sie hierzu auch die Neuigkeiten

Sie sind interessiert?
Kein Problem. Dann erfahren Sie hier mehr zu IceBreak oder Laden Sie sich Ihre kostenlose Community Edition direkt herunter.

Hier geht es zur IceBreak Produktseite

Laden Sie Ihre kostenlose Community Edition direkt hier herunter

oder schreiben Sie mir einfach eine Email und ich führe Ihnen IceBreak live vor.

Ich freue mich auf Ihren Kontakt. 
Email: mal@mlitters.com 
oder rufen Sie mich einfach an.

Verpassen Sie auch nicht meinen kostenlosen WebCast zum Thema:

Kostenlos aber nicht umsonst! Webcast – Web Anwendungen und Web Services mit RPG und Cobol!

DAS RPG / ILE Web Framework für alle IBM i Entwickler – kostenlos!

Warum sind Programmierplattformen, wie Java, Microsoft .NET, NODE oder Angular 6 so erfolgreich und werden von Millionen von Software Entwicklern genutzt?

Frameworks

Klar – weil all diese Plattformen (von Programmiersprachen kann man bei den o.g. nicht mehr reden) über ein oder gar mehrere, mächtige Frameworks verfügen, die den Entwicklern das Leben leichter machen (sollen).
Diese Frameworks bieten massenweise Funktionen, die ein Entwickler ansonsten selbst erstellen muss.

Communities

Ein weiterer Grund, warum die o.g. Programmierplattformen so erfolgreich sind, ist schlichtweg die Zahl der Entwickler, die damit arbeiten und sich dabei in unterschiedlichen Bereichen engagieren.
Es gibt unzählige Beispielprojekte auf Open Source Basis, die auf den unterschiedlichsten Plattformen gehostet werden.
Allen Voran auf GitHub, welches gerade von Microsoft übernommen wird und mit mehr als 28.000.000 (Millionen) Entwicklern die größte Plattform darstellt.

Und IBM i?

Auf der IBM i oder früher AS/400, hat sich von Anfang an die Programmiersprache RPG und ein wenig Cobol durchgesetzt. RPG wurde von IBM seit den 50er (!!!) Jahren immer weiter entwickelt und ist aktuell mit der Ausprägung von Total Free RPG kaum wieder zu erkennen.
IBM hat uns mitte der 90er Jahre mit dem „Integrated Language Environment“ (ILE) eine mächtige Weiterentwicklung der vorhandenen Programmiersprachen auf der IBM i beschert und damit die Weichen für modulare Programmierung gestellt, bei der es kein Problem ist verschiedene Programmiersprachen miteinander zu mischen.
Leider hat IBM bei all den Möglichkeiten, die sie mit ILE der Plattform geschenkt haben, vergessen ein ILE Framework mit zu liefern oder zumindest aufzubauen.
Genau aus dem Grund hat sich dann auch jedes Unternehmen und teilweise sogar in den Unternehmen noch einmal jeder Programmierer, seine eigene Funktionsbibliothek oder quasi ein Mini Framework aufgebaut. Ich weiß nicht, wie viele Varianten von Datumsfunktionen oder Textreplacements ich in den vergangenen 20 Jahren gesehen habe…
IBM hat in der Zwischenzeit angefangen, mehr oder weniger schnell und komfortabel, RPG mit neuen Funktionen, wie z.B. embedded SQL oder XML Anweisungen auszustatten, wobei diese Funktionen meist sehr spät und Anfangs auch nur sehr schwach bzw. umständlich kamen und immer noch kommen.
Ähnlich sieht es mit der Unterstützung von Web Programmierung und Web Service Programmierung aus, sowie der Unterstützung von JSON, die auch jetzt erst nach und nach Einzug in die IBM i Welt durch IBM findet.
Wollte und will man hier wirklich aktuelle Anforderungen abdecken, so wird das mit RPG / IBM Bordmitteln teilweise recht schwierig oder gar unmöglich und wenn es denn klappt, ist es nicht immer die schnellste Lösung, wobei vor allem Web Services von der Geschwindigkeit leben…
Das ist einer der Gründe, warum IBM i von vielen immer noch als veraltetes und „unmodernes“ System gesehen wird, da die vorhandenen Programmierer, die meist in RPG oder Cobol denken, von IBM hier nicht so unterstützt wurden, wie dies z.B. bei Java der Fall ist.
Die Strategie von IBM Ende der 90er Jahre war ja auch klar, dass man alle RPG / Cobol Programmierer zu Java bewegen wollte. Doch das hat aus verschiedenen Gründen nicht funktioniert.
Oft blieb und bleibt dann keine Alternative, als dann doch einen anderen Lösungsweg in Form von .NET, Java, Node (.js), Python oder PHP zu beschreiten, was für den „normalen“ RPG / Cobol Entwickler nicht immer leicht, wenn überhaupt möglich war bzw. ist, da das Tagesgeschäft viele komplett in Anspruch nimmt und sich diese Situation in den letzten Jahren eher noch verschärft hat.

Commmunity Edition

Genau deshalb hat sich auf diese Themen vor ca. 11 Jahren schon jemand außerhalb von IBM gestürzt und einen Weg geschaffen, mit dem auch „normale“ RPG und Cobol Entwickler schnelle Web Anwendungen und Web Services in kurzer Zeit mit vorhandenem Know How entwickeln können.
Sogar schneller, als mit den bisher bekannten Mitteln, denn die Lösung basiert auf einem nativen IBM i Application Server, den es so nicht noch einmal gibt.

IceBreak heißt die Lösung, die komplett auf ILE basiert und dem Entwickler bereits in der kostenlosen Community Edition unzählige Funktionen in Form eines ILE Frameworks an die Hand gibt, mit der er innerhalb seiner RPG oder Cobol Programme kinderleicht mit XML, JSON, IFS, sowie Web Anwendungen arbeiten kann und das in einer unglaublichen Geschwindigkeit.
IceBreak ist deshalb so schnell, weil es selbst in ILE Programmiert ist und somit nicht, wie die anderen Lösungen auf IBM i, wie der Apache Server, Websphere, Lotus Domino oder auch Node, innerhalb der PASE Umgebung läuft, sondern richtig nativ und damit die volle Geschwindigkeit des Systems nutzen kann.
Dabei unterstützt IceBreak jede beliebige Programmierweise. Vom klassischen Spalten RPG, bis zum modernsten Total Free oder Cobol, C, C++ in all seinen Facetten. Alles, was die IBM Compiler umwandeln können, wird auch von IceBreak unterstützt, denn es erzeugt native IBM i ILE Objekte, basierend auf den IBM Compilern!
Die Community Edition von IceBreak steht dabei jedem dauerhaft kostenfrei zur Verfügung. 
Was damit nicht geht, sehen Sie in der Übersicht:

Eine Übersicht der Funktionen von IceBreak, sowie der Unterschiede der einzelnen Editionen, finden Sie hier

Email: mal@mlitters.com

oder rufen Sie mich einfach an.

Völlig losgelöst – lose Kopplung extrem!

Früher war nicht alles besser!

Als Beispiel seien (RPG) Programme genannt, die den kompletten Code in einer Quellcode Datei beinhalteten.

Das waren und sind dann schnell mal einige tausend Zeilen Code, die da im Laufe der Zeit zusammenkommen.
Im Normalfall alles mit globalen Variablen (zumindest bei RPG) und jeder Menge Bezugszahlen und Goto’s.

Solche Programme zu analysieren oder gar anzupassen ist immer wieder ein aufwendiges und meist riskantes Unterfangen – selbst für die Leute, die sie ursprünglich erstellt haben, wenngleich diese meist schon nicht mehr im Unternehmen sind.

Genau aus dem Grund hat sich in der Softwareentwicklung die Idee der Modularisierung durchgesetzt, damit man große Monolithen Programme in kleinere Module „zerhacken“ kann, welche dann nicht nur leichter zu lesen und zu ändern sind, sondern auch leicht wiederverwendbar sind, denn neben dem Problem der Unübersichtlichkeit kommt ja noch dazu, dass bei älteren Programmen, Code oft in mehrere Programme kopiert wurde und nach 10-20 Jahren auf die unterschiedlichsten Arten mutiert ist.

Im Falle von IBM i und RPG kam zunächst die Anweisung CALL ins Spiel, welche es möglich machte Programme aus anderen aufzurufen und Parameter in beide Richtungen zu schieben, allerdings zum Preis von Speicherauslastung und Geschwindigkeit.
Mit Einführung von ILE Mitte der 90er Jahre kamen dann die (Sub)Procedures und Serviceprogramme hinzu, die eine völlig neue Arbeitsweise ermöglichten und leider bis heute noch nicht überall im Einsatz sind.

Plötzlich konnte man auch in RPG mit lokalen Variablen arbeiten und sich an die Programmiermuster anlehnen, die in der restlichen Welt schon zum Standard gehörten.

Eine lockerere Bindung zwischen den einzelnen Programmteilen mit einer sehr hohen Geschwindigkeit sind die Belohnung, wenn man sich auf diese Art zu Entwickeln einlässt. Dennoch bestehen auch zwischen Programmen und Serviceprogrammen noch Bindungen, die bei Änderung z.B. des Interfaces berücksichtigt werden müssen.

In anderen Programmierumgebungen ist dies nicht anders. Ob .NET, Java, JavaScript oder was auch immer. Um auch noch dieses letzte bisschen Bindung los zu werden, haben sich Entwickler auf der ganzen Welt viele Gedanken gemacht und sind letzten Endes auf das Konzept der sog. Microservices gekommen, welche es möglich machen, Funktionalität so zur Verfügung zu stellen, dass sie nicht nur modular, skalierbar, schnell, sicher und plattformunabhängig ist, sondern auch ohne jegliche statische Bindung auskommt.

Dank IceBreak, dem einzigen nativen ILE Webserver und Applikationsserver, steht diese Möglichkeit auch allen IBM i Entwicklern zur Verfügung. Ob in RPG, Cobol, C, C++ oder CL entwickelt wird. Jegliches ILE Serviceprogramm lässt sich mit IceBreak als Microservice nutzen.

IceBreak übernimmt dabei auch die Rolle des zentralen Microservice Routers. D.h. jegliche Anfragen von außen kommen mittels Parameter und werden dabei i.d.R. als JSON Dokument oder in der URL übergeben.

Dadurch kann sich das Interface einer Funktion ändern, ohne, dass man irgendwelche Programme zwangsläufig umwandeln muss.

Nehmen wir als Beispiel den Service „msProduct“, der über die Procedure „getRows“ verfügt und uns Produkte aus der Tabelle (PF) PRODUCT in Bibliothek IceBreak zurückgibt:

https://as400:60060/router/msProduct/getRows?payload={

                        „start“: 11,

                        „limit“: 20,

            }

Erweitert man das Interface jetzt z.B. noch um einen Suchparameter:

https://as400:60060/router/msProduct/getRows?payload={

                        „start“: 11,

                        „limit“: 20,

                        „search“ : „sony“

            }

müssen alle Programme, die den Service bisher aufgerufen haben in keinster Weise angepasst werden, sofern sie den neuen Parameter nicht benötigen.

Positiver Nebeneffekt dieser Programmierweise:

Diese Services lassen sich von überall aufrufen. Ob RPG Programm oder .NET Dienst, Desktopprogramm, aus Webanwendungen oder mobilen App’s.

Sie sind an einer Zusammenarbeit oder Beratung in diesem Bereich interessiert?
Kein Problem.
Schreiben Sie mir einfach.

Ich freue mich auf Ihre Mitteilung unter 
Email: mal@mlitters.com

oder rufen Sie mich einfach an.

Fachkräftemangel wird immer kritischer

In einer kürzlich veröffentlichten Studie von Stripe, wurde noch deutlicher, wovor ich meine Kunden bereits seit Jahren warne und immer wieder aufmerksam mache.

Lt. der Umfrage ist es für die Unternehmen heute wesentlich leichter an Kapital zu kommen, als an (gute) Softwareentwickler und diese Entwicklung spitzt sich immer weiter zu.

Neben der Tatsache, dass die Unternehmen immer schwerer gute Softwareentwickler finden und dann auch noch an sich binden können, wurde durch die Studie ein weiterer kritischer Punkt deutlich, auf den viele meiner Kollegen und ich immer wieder seit Jahrzehnten hinweisen und doch immer wieder auf taube Ohren bei den Verantwortlichen stoßen:
Nämlich die Tatsache, dass die vorhandenen Entwickler im Unternehmen durchschnittlich 17 Stunden in der Woche mit der Wartung von veralteter Software verbringen.

Bei einer 40 Stunden Woche sind dies satte 42,5% der Arbeitszeit, die, wie oben schon festgestellt, immer wertvoller wird.
Grund hierfür sind i.d.R. veraltete Programmstrukturen, die über Jahrzehnte nicht modernisiert wurden.

Eine Änderung oder Fehlersuche in einem 15.000 Zeilen Programm, welches voller globaler Variablen steckt (und leider auch oft noch mit GOTOs bestückt ist) ist nun einmal wesentlich aufwendiger, als die gleiche Änderung oder Fehlersuche in einem Modul mit gerade mal 80 Zeilen Programmcode und lokaler Variablen, welches exakt für eine bestimmte Aufgabe erstellt wurde.

Die Ersparnis, die eine Modernisierung in diese Richtung mit sich bringt, steht weit über dem Aufwand, den solch eine Modernisierung verursacht.
Dabei ist das übrigens unabhängig von der eingesetzten Programmiersprache oder Plattform, denn die o.g. Probleme gibt es nicht nur auf IBM i, wie viele leider immer meinen, sondern die gibt es überall.

Langsam aber sicher scheinen das nun auch die Geschäftsführer und Entscheider zu verstehen, die dies all die Jahre für reine Geldmacherei hielten und glaubten das sich die IT Leute (interne wie externe) damit nur selbst verwirklichen wollen.
Kaum fängt eine IT Abteilung an, die Zeiten, die jeden Tag aufgewendet werden, etwas genauer zu dokumentieren, kann man dies meist nach nur 1-2 Monaten exakt vorrechnen und somit auch den sparsamsten Kaufmann überzeugen, wie schnell er wie viel Geld einsparen kann, wenn er in Modernisierung investiert.
Dabei rede ich an dieser Stelle rein von einer Backend Modernisierung. D.h. die Datenbank, sowie die Backend Programme. Das Frontend ist wieder ein anderes Thema, welches sich aber mit einem modernen, modularen Backend ebenfalls viel schneller, kostengünstiger und damit einfacher modernisieren lässt.

Auch verstehen immer mehr Entscheider und Geschäftsleiter, dass der Mangel an guten Softwareentwicklern und IT Spezialisten eine der größten potenziellen Gefahren für ihr Unternehmen darstellt.


Um unseren Kunden und die, die es noch werden wollen, bei diesen Herausforderungen zu helfen, bieten meine Kollegen und ich Ihnen neben der individuellen Projektarbeit und Schulungen zum Aufbau von Nachwuchsentwicklern, auch langfristige Verträge an, mit denen Sie eine garantierte Unterstützung über einen definierten Zeitraum von uns erhalten und sich somit keine Gedanken über den Fachkräftemangel machen müssen.

Sie sind daran interessiert?
Kein Problem.
Schreiben Sie mir einfach.

Ich freue mich auf Ihre Mitteilung unter 
Email: mal@mlitters.com

oder rufen Sie mich einfach an.