Präsentation 2: EBICS Dr. Christian Friberg
Ausgangslage Historie Java-Entwicklung schreitet mit neuen Methoden voran ii-Vorgehen oo-Entwurf und -Programmierung automatische Tests automatische Builds Herstellertests Host bleibt wie er ist C-Programmierung (wenn wir Glück haben!) Wasserfallmodell händische Entwicklertests händische Kompiliersteuerung Wie kann diese „neue Welt“ auf den „alten Host“ übertragen werden? © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Vorgeschichte Make auf dem Host (hmake) Seit 2002 Mittlerweile in fast allen Projekten auf dem Host eingesetzt Herstellertests Seit TCH 3.0 Iterativ-Inkrementelle Entwicklung Immer mal wieder Ansätze © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Berichte aus Projekten EBICS-Server für TRAVIC Corporate/HOST Zum ersten Mal XML-Verarbeitung auf dem Host Das war die Chance! ;-) Wir nutzten sie zum großen Umbau Änderung der Programmiersprache C++ Automatische Entwicklertests Änderung der Umgebung Skriptsprache Lua als Metasprache für viele Anwendungsfälle Generierung von SQL-Sourcen und DDLs Verbesserung des Make-Prozesses © PPI AG 18.09.2008 Hanseatic Mainframe Summit
C++ (1) C++ als OO-Sprache Deutlich besser verständlicher Code Bessere Strukturierung, Kapselungsmöglichkeiten und Ausdrucksstärke Höhere Typsicherheit zur Compilezeit Bessere Performance als C (z.B. wg. Code-Inlining, Templates) Automatische Ressourcenverwaltung (Destruktoren) Speicher, Dateien, TCP-Verbindungen, ... Besonderheiten Einschränkung auf Untermenge mit „Java-feeling“ Sprechende (lange) Namen Kaum Mehrfachvererbung Keine „nackten“ Pointer Heapobjekte mit Smartpointern und Referenzzählern C++ „Tricks“ in grundlegenden Basisklassen, nicht in der Fachlichkeit © PPI AG 18.09.2008 Hanseatic Mainframe Summit
C++ (2) Automatische Entwicklertests Eingebunden in Make-Prozess Mehrere Plattformen Übersetzung unter UNIX und z/OS Auch DB2 unter UNIX und z/OS Auch Entwicklertests ... © PPI AG 18.09.2008 Hanseatic Mainframe Summit
C++ (Beispiel) Hier beginnt der Text Hier beginnt eine Aufzählung © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (1) Grundlagen/Vorteile Einfache Scriptsprache Kleines C-Programm Sehr schnell Läuft problemlos auf allen Plattformen (also auch Host) Völlig frei einsetzbar (MIT Open Source Lizenz) Verwendung als Meta-Sprache Beschreibung von Strukturen (z.B. DB-Tabellen, Listen, ...) Hilfsfunktionen, z.B. Generatoren Integration in Buildprozess als Präprozessor (Emlua) DB2 Generierung von Source-Fragmenten (.cpp und .hpp) So viel wie möglich händisch programmieren (siehe Beispiel) Generierung der DDL => Kein Case mehr Generierte Assertions für Belegung von DB-Objekten © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (2) Übertragung zum Host Integration in Sendeprozess Im Wesentlichen Variablenersetzung Build-Prozess auf dem Host C, C++ Jobs DB-Befüllung Verwaltung von Testsystemen Lua und Makefiles Definition mehrerer Testsysteme mit allen benötigen Jobs und Daten Installation der Testsysteme aus der Auslieferung heraus © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (Beispiel: database.lua) © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (Beispiel: Einfaches SQL) © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (Beispiel: Fallunterscheidung) © PPI AG 18.09.2008 Hanseatic Mainframe Summit
TRAVIC Interbank/HOST Dialoge 3270-Dialoge Fest definierte Platzhalter und Kennzeichen (z.B. „Eingabefeld“ ...) Einfache Beschreibung des Fensterinhalts in Lua Lua-Framework zur Generierung von Panel Panelobject mit Status und Zugriffsfunktionen Überprüfung von Meldungen Framework zur Listenverarbeitung mit Cursor Extra Pointer wg. zyklischer Verkettung von Masken mit „Alterungsregel“ Auslieferung „Ständiger“ Build auf dem Host Referenzumgebung immer auf dem neuesten Stand Herstellertest mit QF-Test Ansteuerung von TRAVIC-Link und TCU als Testkomponenten Ansteuerung von TIH über 3270-Web-Emulation © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Lua (Beispiel: Panelbeschreibung) © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Was kommt jetzt noch? TCH 3.2 Ziel: Kontrolle über Differenzauslieferungen Liste aller Module, DBRMs, Panel, Jobs, ... Erstellt zu gegebener Modulliste „minimale Hülle“, inkl. Releasenotes Dazu Generierung von Makefiles mit Lua Zusätzlicher Benefit: Trennung von Technik und Inhalt bei hmake © PPI AG 18.09.2008 Hanseatic Mainframe Summit
Fazit Wesentliche Neuerungen auf dem Host möglich Objektorientierte Programmierung Iterativ-inkrementelle Entwicklung Gesteuerte Build-Prozesse Gesteuerte Auslieferungsprozesse Automatische Entwicklertests Automatische Herstellertests Oberste Philosophie: Alles leichtgewichtig Ausgangsdaten und Ergebnisse immer in Textform Generierung durch Lua-Funktionen und Emlua-Präprozessor Jederzeit manipulierbar Mehr und mehr in Projekten erfolgreich eingesetzt EBICS-Server TCH 3.0 ff. (mittlerweile auch in anderen TCH-Komponenten) TRAVIC-Interbank/HOST EU-Steuerung Q-Sig (Qualifizierte Signatur und TAN-Generator) Erste Bausteine schon in TCU © PPI AG 18.09.2008 Hanseatic Mainframe Summit