Java und iSeries

11. November 2008 | Von | Kategorie: Programmierung

Ein Artikel für Abonennten der NEWSolutions der die Funktionalität von Java auf der iSeries beschreibt und die neuen Funktionen der Toolbox berücksichtigt.

von Torsten Hartig

Anwendungsmodernisierung auf den iSeries Systemen ist ein brandaktuelles Thema. Im Folgenden werden wir näher auf die JavaTM-Umgebung der iSeries-Systeme eingehen.

Warum JavaTM?

Künstler Burgy Zapp [http://burgyzapp.de]

Künstler Burgy Zapp [http://burgyzapp.de]

JavaTM ist eine objektorientierte Programmiersprache, die für den Einsatz in der heutigen vernetzten Welt entwickelt wurde, insbesondere für Internet-relevante Programme. Hier zeichnet sich die Programmiersprache durch ihre Plattformunabhängigkeit aus. Gerade im heutigen eBusiness finden wir eine vielfältige Systemlandschaft vor. Compiler traditioneller Programmiersprachen erzeugen aus dem vorhandenen Quellencode einen exakt auf die Plattform angepassten, ausführbaren Maschinencode. Dieser ist somit nicht portierbar auf andere Plattformen bzw. Betriebssysteme. Da es im Internet sehr häufig notwendig ist, von fernen Servern Programme herunterzuladen (Applets), und diese dann auf dem lokalen System auszuführen, stoßen die traditionellen Programmiersprachen hier an ihre Grenzen. Somit ist es notwendig geworden, bestehende Anwendungen zu „modernisieren“, d. h. internetfähig zu machen. Hier nimmt JavaTM einen wichtigen Stellenwert ein.

JavaTM-Implementation auf der iSeries

Die Implementation von JavaTM und der iSeries, damals noch AS/400 e-Server, wurde im Februar 1998 bekannt gegeben, und ist seit dem OS/400 Release V4R2 verfügbar. Zu diesem Zeitpunkt zeigten viele Softwareentwickler starkes Interesse an „Open Standard“-Softwarelösungen. Durch die Einführung von JavaTM auf den iSeries-Servern wurde ein Weg gefunden, ein offenes Client/Server-System zur Verfügung zu stellen, ohne die Einzigartigkeit des Systems zu gefährden.

JavaTM Virtual Machine (JVM)

Die JavaTM Virtual Machine (JVM), auch JavaTM Runtime genannt, befähigt die jeweilige Plattform zur Ausführung von JavaTM Bytecode, welcher vorher durch den JavaTM Compiler erzeugt wurde. Da die JVM nur mit dem Bytecode arbeitet, können JavaTM-Objekte unmodifiziert auf jede andere Plattform portiert werden, die eine JVM haben. Die JVM befindet sich standardmäßig über dem Betriebssystem. SUN MicrosystemsTM hat JVMs entwickelt und vertreibt diese unter Lizenz an andere Anbieter. Es ist allerdings auch möglich, eine eigene JavaTM Virtual Machine zu entwickeln, und diese durch einen Zertifizierungsprozess „Java CompatibleTM“ zu machen. Dieses hat IBM für die iSeries getan und zum ersten Mal im Betriebssystem Release V4R2 zur Verfügung gestellt. Die IBM-Entwickler haben die JVM unterhalb des Machine Interface (TIMI) integriert (Abbildung 1). Diese Art der Implementierung wurde gewählt, um eine bessere Performance im JavaTM -Umfeld zu erreichen. Hierzu war es notwendig, eine eigene JVM zu generieren und als „Java CompatibleTM„ zertifizieren zu lassen. Durch die auf der iSeries bereits vorhandene Objekt-orientierte Architektur passt das System sehr gut zu dem OO-Prinzip von JavaTM.

iSeries JavaTM Advanced Garbage Collection

Garbage Collection ist ein automatisch ablaufender Prozess innerhalb der JVM. Dieser löscht alle Objekte aus dem Hauptspeicher, die von keinem Programm mehr benötigt werden. Die JavaTM Entwickler müssen somit, im Unterschied zu anderen Programmiersprachen, nicht mehr für eine Freigabe des entsprechenden Hauptspeicherbereichs sorgen. Der Garbage Collection-Prozess stoppt, außer dem Collection-Thread, alle anderen Threads. Somit müssen alle JavaTM Programme auf die Beendigung des Collection-Prozesses warten, bevor diese dann weiterverarbeitet werden können. Dieses hat zur Folge, dass zu diesem Zeitpunkt unter Umständen sehr viel zur Verfügung stehende CPU-Kapazität nicht genutzt wird. Die Advanced Garbage Collection der iSeries arbeitet asynchron. Dieses hat zur Folge, dass nicht alle Programmthreads angehalten werden müssen, während die Collection läuft. Somit ist eine bessere Prossezornutzung während der Garbage Collection gewährleistet.

IBM iSeries Developer Kit for JavaTM (JDK)

Das IBM iSeries Devoloper Kit für JavaTM ist kompatibel mit den JDKs von SUN MicrosystemsTM. Es wird als Lizenzprogramm 57xx-JV1 ausgeliefert. Das IBM iSeries JDK ermöglicht die Entwicklung und Ausführung von Javaprogrammen auf dem iSeries System. Die Basisinstallation des Lizenzprogramms liefert die notwendigen QSHELL- und CL-Befehle, um mit Javaprogrammen auf der iSeries zu arbeiten. Über die Installation der Lizenzprogrammoptionen werden die verschiedenen Versionen der JDKs installiert. Diese enthalten eine Sammlung der Basisklassen für Javaprogramme.

iSeries-JavaTM-Transformer

Ein Bestandteil des Basis -Developer- Kits ist der iSeries JavaTM-Transformer. Um die vollen Performancevorteile der 64-Bit-Architektur der iSeries zu nutzen, kann vor der Ausführung der JavaTM-Applikation über den AS/400-JavaTM-Transformer ein optimiertes 64-Bit JavaTM-Objekt erstellt werden (Abbildung 2). Die Original JavaTM-Applikation bleibt dabei völlig unverändert. Der Anwender muss hierbei nichts tun. Das JavaTM-Objekt wird bei der ersten Ausführung der jeweiligen Klasse automatisch erstellt; allerdings standardmäßig nur mit einem geringeren Optimierungsgrad (10). Um diesen zu verbessern, gibt es den Befehl CRTJVAPGM. Hier kann zwischen verschiedenen Optimierungsstufen gewählt werden, zur Verfügung stehen die Optimierungsstufen 10, 20, 30, 40. Die niedrigen Stufen sind von Nutzen, wenn die Klasse während der Entwicklung zu Testzwecken ausgeführt wird. Dann ist es eventuell sogar notwendig, eine niedrigere Optimierungsstufe zu nutzen. Wie in Abbildung 2 zu sehen, ist es aber auch möglich, kein optimiertes Objekt zu erstellen, und somit die Klasse standardmäßig von der Runtime-Umgebung der JVM verarbeiten zu lassen. Hierzu wird dann im RUNJVA- oder CRTJVAPGM- Befehl der Optimierungsparameter auf *INTERPRET gesetzt.

IBM iSeries Developer Kit für JavaTM – Erweiterungen in OS/400 V5R1

Die Erweiterungen im OS/400 Release V5R1 für das Developer Kit für JavaTM, kurz JDK, wurden ausschließlich für das JDK Version 1.3 vorgenommen. Dieses ist die Option 5 aus dem o.a. Lizenzprogramm für die iSeries. Die Erweiterungen sind konzeptionell- und sicherheitsrelevant.

Hier nun die beiden konzeptionellen Erweiterungen.

Schlagworte: , , , , , , , , , , , , ,

Schreibe einen Kommentar

Sie müssen eingeloggt sein, um einen Kommentar schreiben.