Pflege des HAF-Modells (Code Generation Studio)

Der Lieferumfang des Host Abstraction Frameworks beinhaltet eine Lizenz des Diomex Code Generation Studios. Mit Hilfe dieser Anwendung ist es möglich ein Modell zu pflegen und dieses später über einen Codegenerator in verschiedenen Sprachen und für verschiedene Plattformen auszugeben. Zu den Highlights des CGS gehört die Generierung für das .NET Compact Framework und die Unterstützung für den Microsoft Team Foundation Server.

Durchsuchen des Modells (Code Generation Studio)

Bei sehr großen HAF-Projekten wird auch das zugehörige Modell sehr schnell sehr groß. Um trotzdem schnell benötigte Informationen zu finden, beinhaltet das CGS eine sehr flexible Suche, die es ermöglicht das ganze Modell oder auch nur bestimmte Bereiche (z.B. Namensräume oder Datenstrukturen) zu durchsuchen.

Verweise suchen (Code Generation Studio)

Da Teile eines Modells sehr oft mit anderen verknüpft sind (z.B. wird eine Datenstruktur oft in mehreren Programmen als Parameter genutzt) verfügt das CGS über eine Funktion zu einem Objekt alle Verweise aufzulisten.

Modell erstellen (Code Generation Studio)

Nachdem das Modell erstellt bzw. geändert wurde, wird mit Hilfe des Codegenerators das Modell in Quellcode übersetzt. Das CGS unterstützt verschiedene Sprachen, Plattformen und Visual Studio-Versionen. Wenn das zu generierende Projekt in einer Quellcodeverwaltung liegt (z.B. Microsoft Team Foundation Server), kann das CGS bestehende Dateien automatisch abrufen und auschecken. Neue Dateien werden automatischen in die Quellcodeverwaltung eingefügt.

Importieren von RPG-Sourcen - Schritt 1 (Code Generation Studio)

Um das Erstellen von CGS-Modellen für bestehende Funktionen zu erleichtern, verfügt das CGS über eine Funktion zum Importieren von RPG-Sourcen. Die Sourcen werden vom CGS direkt per FTP von einem iSeries-System abgerufen.

Importieren von RPG-Sourcen - Schritt 2 (Code Generation Studio)

Nachdem die zu importierenden Funktionen ausgewählt wurden, wird definiert wo die Funktionen und Datenstrukturen im Modell erstellt werden sollen. In diesem Schritt erkennt das CGS auch, ob es bereits bestehende, passende Strukturen für die Parameter der zu importierenden Funktionen im Modell gibt und schlägt diese vor.

Exportieren von RPG-Sourcen (Code Generation Studio)

Bei neuen Funktion macht es Sinn erst das Modell und dann die hostseitigen Funktionen zu erstellen. Um dies zu erleichtern beinhaltet das CGS eine Funktion zum erstellen vom RPG-Sourcen. Der Export erstellt sowohl die Datenstrukturen als auch ein „leeres“ RPG-Programm mit entsprechender Parameterleiste. Die Sourcen können entweder auf der Festplatte oder direkt per FTP auf einem iSeries-System gespeichert werden.

Validieren der Hostschnittstelle (Code Generation Studio)

Um sicherzustellen, dass die im Modell definierten Strukturen mit den Programmen auf dem Hostsystem übereinstimmen, beinhaltet das CGS eine Funktion zum Validieren der Hostschnittstelle. Hierzu werden die Sourcen der Hostprogramme vom Hostsystem abgerufen, analysiert und die Parameter mit dem Modell verglichen.

Erstellen von Stored Procedures für den .NET DB2-Provider (Code Generation Studio)

Einer der möglichen Kommunikationsprovider für HAF-basierte Anwendungen ist der „HAF-Provider für IBM .NET DB2-Provider“. Dieser Provider ruft Funktionen auf einem Hostsystem als Stored Procedure auf. Da auf einem iSeries-System hierzu im Vorfeld für jedes Programm eine Stored Procedure erzeugt werden muss, enthält das CGS eine Funktion um diese automatisiert anhand des Modells zu erzeugen.<//span>

Erstellen eines Businessobjektes (Code Generation Studio)

Nachdem die hostseitigen Datenstrukturen im Host-Access-Layer definiert wurden, können anhand dieser Strukturen Businessobjekte im sogenannten Business-Rules-Layer erzeugt werden. In diesem Schritt können auch automatisch alle Felder einer Struktur als Eigenschaften in dem neuen Businessobjekt übernommen werden.

Nicht implementierte Felder suchen (Code Generation Studio)

Um die Erweiterungen einer Datenstruktur in die von ihr abgeleiteten Businessobjekte möglichst einfach zu übernehmen, bietet das CGS die Möglichkeit Felder automatisch in die entsprechende Businessobjekte zu transportieren.

Funktions-Designer für Businessobjekte (Code Generation Studio)

Nachdem ein Businessobjekt von einer Datenstruktur abgeleitet wurde, können Funktionen (z.B. Laden, Speichern etc.) mit Hilfe des CGS direkt im Modell definiert werden.

Dialog zum erstellen eines Caches (Code Generation Studio)

Die HAF-Runtime unterstützt sehr flexible Caching-Funktionen, um den Traffic zwischen Client und Server zu minimieren. Diese Caches können direkt mit dem CGS im Modell definiert werden, indem die Parameter zum Aufruf einer Funktion im Modell hinterlegt werden.<//span>

Verknüpfen von Businessobjekten (Code Generation Studio)

Eine der großen Stärken des HAF-Modells ist die Möglichkeit Businessobjekte über Caches und Funktionsaufrufe zu verknüpfen. So erhält man ein Objektmodell, das sich in der Handhabung nicht von dem einer reinen .NET-Applikation unterscheidet, obwohl sich hinter einer HAF-basierten Anwendung ein in der Regel sehr altes und nicht objektorientiertes Backend verbirgt.

Protokollierung der Kommunikation mit einem Hostsystem (Trace Analyser)

Neben dem Code Generation Studio beinhaltet das HAF eine Anwendung zum Debuggen von HAF-basierten Anwendungen, den Trace Analyser. Mit Hilfe des Trace Analyser kann die Kommunikation mit dem Hostsystem protokolliert werden. Außerdem ermöglicht der TA die schrittweise Ausführung der einzelnen Hostfunktionen und das erneute Ausführen von Hostfunktionen mit den gleichen Parametern.

Auswahl der Kommunikationsart (Trace Analyser)

Der Trace Analyser kann über mehrere Arten mit einer HAF-basierten Anwendung kommunizieren. So ist es z.B. auch möglich eine HAF-basierte Anwendung über das Netzwerk zu debuggen. Der Screenshot zeigt den Dialog zur Auswahl der Kommunikationsart.

Tracing aktivieren (Trace Analyser)

Der Trace Analyser kann genau wie ein Debugger nachträglich an eine bereits gestartete, HAF-basierte Anwendung „angehängt werden“. Der Screenshot zeigt den Dialog zur Auswahl des zu debuggenden Prozesses.

Performancemessung (Trace Analyser)

Zusätzlich zur Protokollierung und zum Debuggen einer HAF-basierten Anwendung, analysiert der TA auch die Performance der Funktionen auf dem Hostsystem. Der Screenshot zeigt die Performanceauswertung.<//span>

Speichern eines Traces (Trace Analyser)

Die protokollierte Kommunikation zwischen Client und Host kann sowohl als Text als auch als XML abgespeichert werden. Der Screenshot zeigt den Dialog zur Auswahl des Zielformates.