Post on 06-Apr-2015
transcript
18.09.2008 Hanseatic Mainframe Summit
Präsentation 2: EBICSDr. Christian Friberg
18.09.2008 Hanseatic Mainframe Summit © PPI AG 2
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?
18.09.2008 Hanseatic Mainframe Summit © PPI AG 3
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 4
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 5
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 6
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 ...
18.09.2008 Hanseatic Mainframe Summit © PPI AG 7
C++ (Beispiel)
Hier beginnt der Text Hier beginnt eine Aufzählung
18.09.2008 Hanseatic Mainframe Summit © PPI AG 8
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 9
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 10
Lua (Beispiel: database.lua)
18.09.2008 Hanseatic Mainframe Summit © PPI AG 11
Lua (Beispiel: Einfaches SQL)
18.09.2008 Hanseatic Mainframe Summit © PPI AG 12
Lua (Beispiel: Fallunterscheidung)
18.09.2008 Hanseatic Mainframe Summit © PPI AG 13
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 14
Lua (Beispiel: Panelbeschreibung)
18.09.2008 Hanseatic Mainframe Summit © PPI AG 15
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
18.09.2008 Hanseatic Mainframe Summit © PPI AG 16
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