integration eines legacy-applications- server in eine mvs ......ablösung sna/lu0 komponente einsatz...
TRANSCRIPT
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 1/32
Integration eines Legacy-Applications-Server in eine MVS-Umgebung
Andres Kochdipl. El. Ing. HTL / M. Math
Object Engineering GmbH, Uitikon-Waldegg, SchweizEmail: [email protected]
www.objeng.ch
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 2/32
Inhalt
• Migrationspfad
• Anforderungen und Lösung
• System- und Applikations-Architektur
• Verteilte Entwicklungs- und Test-Umgebung
• Transaktionsregel-Aufbau und Entwicklung
• Diagnose zur Laufzeit in verteilten Umgebung
• Zusammenfassung
• Schlussfolgerungen
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 3/32
Migrationspfad: Das ursprüngliche System
HW: IBM 30xxOS: MVS / IMSSprache: PL/1Applikation: Abonnenten-Verwaltung
17 Aussenstellen
(Telefondirektionen)regional verteilt
HW: IBM S/1
Zentraler Mainframe
OS: RPSSprache: PL/1, S/1 Assembler
max. 32 Terminalspro SubsystemBorroughs ET1100
Appl: Dezentraler Teil der Applikation Spezial SystemsoftwareSubsysteme mit CTOS/BTOS
PC 1. Generation
seriell
seriellseriell
SNA LU0
SNA LU0
seriell
seriell
seriell
S/1
S/1
SNA LU0
SNA LU0
~2500 Endgeräte~ 50 dezentrale Systeme
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 4/32
Migrationspfad: Phase 1
• Einschränkung auf 32 Bildschirme pro dezentralem Server wurde in dieser Phase gelöst.
• Zusätzliche Applikationsfunktionen konnten auf den Terminal-Subsystemen bereitgestellt werden (z.B. Unterstützung zur Offerten-Erstellung).
Terminal-Subsystem(CTOS/BTOS)
Mainframe (MVS/IMS) Dezentraler Server (S/1, RPS)
asynchron, seriell
asynchron seriell
asynchron seriell
SNA/LU0 (9600B)
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 5/32
Migrationspfad: Phase 2
• Dezentraler Server wurde durch ein ausbaubares, modernes System mit RISC-Technologie und UNIX ersetzt.
• Mittels einer Emulation der S/1-Hardware konnte die bestehende Spezialsoftware und dezentrale Applikationssoftware (Assembler, PL/1) unverändert übernommen werden.
Terminal-Subsystem(CTOS/BTOS)
Mainframe (MVS/IMS)Dezentraler Server
asynchron,telnet
asynchron seriell
SNA/LU0
PCs mit VT220 Emulation
WANTCP/IP
(tunneled)
(RS6000 RISC, UNIX)
LANTCP/IPVirtuelle S/1
Maschine
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 6/32
Migrationspfad: Phase 3
• Terminalsubsysteme wurde durch PCs mit der üblichen graphischen Oberfläche abgelöst.
• Die Hostapplikation wurde durch eine CORBA-konforme Schnittstelle für beliebige Applikationen zugänglich gemacht.
• Terminals verschwinden nach der Einführungsphase des GUI
Mainframe
Dezentraler Server
asynchron,telnetSNA/LU0
PCs mit VT220 Emulation
WANTCP/IP
(tunneled)
(RS6000 RISC, UNIX)
LANTCP/IP
(MVS/IMS)
PCs mit Win’95 GUI-FrontendCORBA Middleware (ORBIX)
Virtuelle S/1Maschine
DI 2.0
Asynchron
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 7/32
Migrationspfad: Schlusskonstellation
• Schnittstelle zu den Client-PCs identisch mit vorangehender Phase
• CORBA als Middleware bis hinauf zum Mainframe mit hoher Performanceverbesserung
• Assembler- und PL/1-Programme auf Zwischenserver eliminiert
• Host-Transaktionsprogramme bleiben weitgehend unverändert.
Mainframe Dezentraler Server
WANTCP/IP
(RS6000 RISC, UNIX) LANTCP/IP(MVS/IMS)
PCs mit Win/NT GUI-Frontend
CORBA Middleware (ORBIX) CORBA Middleware (ORBIX)DI V3.x
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 8/32
Fakten zum Projekt: Kunden-Organisation
• Kunde: Schweizer Telekommunikationsunternehmen -
• Traditionelles staatliches Telecom-Unternehmen auf dem Weg zum Privatunternehmen.
• Traditionelle zentralisierte Verarbeitung wird auf “Kundenorientiert” umgestellt.
• Marktwettbewerb gibt den Takt für die IT-Organisation an (relativ häufiger Releasewechsel)
• Unternehmen hat bereits mehrere Technologie-”Epochen” mitgemacht.
• Über das Land verteilte, regionale, teils recht autonome Organisations-Einheiten, wurden wieder regionalisiert.
• Verwaltungssoftware für Telefon-Anschluss- und Abonnenten-Informationen, Auftragsbearbeitung.
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 9/32
Fakten zum Projekt: Ausgangssitutation
Applikationsserver: VS/1 unter UNIX
• PL/1 Programme für Applikations-Plausibilisierung und -Steuerung auf erster Ebene
• Assembler Programme für Systemsteuerung
• SNA Verbindung zum Mainframe (SNA/LU0)
• Bestehender IDL-Wrapper für Client-Zugriff
• 58 Applikations-Maschinen (Unix-Server mit VS1-Emulator)
• Transaktionszeiten je nach Funktion 1.5s - 6s.
• Gesamthaft 300’000 - 1’000’000 Transaktionen pro Tag
• Wartung riskant (Assembler, Emulator in ‘C’)
• Durch den X Releasewechsel undurchsichtige Programme (PL/1)
• Anzahl der Benutzer in der Grössenordnung von 3’000
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 10/32
Fakten zum Projekt: Soll-Situation
VS/1 Emulation eliminiert
• keine PL/1- und Assembler-Programme im Applikationsserver
• Uneingeschränktes Zurück-Blättern bei Listenanzeige (vorher max. 5)
• IIOP-Verbindung zum Mainframe via CORBA-Middleware (Orbix)
• Keine Zeichensatzkonvertierung auf Applikationsserver.
• IDL-Schnittstelle zum Client muss beibehalten werden.
• Verbesserte Performance
• Reduktion Hardware von 58 auf 6 Server-Maschinen.
• Bessere Transparenz in der Applikations-Steuerungs-Software auf hoher Abstraktionsebene.
• Bessere Wartbarkeit (Assembler, PL/1 eliminiert)
• Anzahl der Benutzer in der Grössenordnung von 3’000
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 11/32
Systemarchitektur: Ausgangssituation
MFC
-Fra
mew
ork
Desktop (PC/Windows/95)
SN
A/L
U0
HIM TAM APM1TIM APM2LOG
Virtual Series/1+RPS
Message Handler
Mel
dung
s*
Rep
osito
ry
(MS
VC
++)
NavigationTables
DI Datainterface-Service
RS
6000
/AIX
Logische Schnittstellenach aussen.
CORBA-Middleware(ORBIX)
Frem
dapp
likat
ion
TCP/IP
RO
UTE
R
tunneled
App
likat
ions
Fron
tend
DIF
/OR
B-C
lient
SNA/LU0
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 12/32
Systemarchitektur: Soll-Situation
MFC
-Fra
mew
ork
Desktop (PC/WinNT)
(MS
VC
++)
NavigationTables
DI Datainterface-Service V3.x
RS
6000
/AIX
Logical interfaceto the outside
CORBA-Middleware(ORBIX)
Any
app
licat
ion
App
licat
ions
Fron
tend
DIF
/OR
B-C
lient
TransactioncontrolTables
CORBA-MiddlewareIMS
Gat
eway
(CO
RB
A-S
ervi
ce)
IMS
IBM 93xx / MVS OE
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 13/32
Ablösung SNA/LU0 Komponente
Einsatz des IMSGateway-Services von IONA auf der Mainframe-Seite erlaubte den Ersatz der SNA/LU0-Komponente mit folgenden Vorteilen:
• Vereinfachte Konfiguration
• Vom ganzen Netz erreichbar (imsraw.idl)
• Zeitliche Einsparung bei Operating und Wartung
• Performance-Verbesserung (1.5-2.0 Sekunden)
IMS IMSGateway(Iona)
imsr
aw
IIOPAPPC
IBM 9xxx / MVSApplication
Transactions
Clie
ntsApplication
ServiceDI 3.x
Win/NTUnix (AIX)MVS/IMS
IIOP
TCP/IP
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 14/32
Elimination der VS/1 Emulation
• Unveränderte Client-Schnittstelle
• PL/1 und Assembler eliminiert und durch Regelwerk für Plausibilisierung und Applikations-Steuerung ersetzt
• Mapping zwischen feldorientiertem Zugriff auf IMS-Meldungen über generierte Navigationstabellen.
• Multithreading
IMS IMSGateway(Iona)
imsr
aw
IIOPAPPC
IBM 9xxx / MVSApplication
Transactions
Clie
ntsApplication
ServiceDI 3.x
Win/NTUnix (AIX)MVS/IMS
IIOP
TCP/IP
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 15/32
Aufbau Dateninterface-Service
• DIT Core: Feldorientierte Zugriffsfunktionen für Client-Schnittstelle
• VTREngine: Interpreter für Applikationsregeln
• IMSCOM: Multi-Channel Verbindung zum IMSGateway mit automatischem Verbindungsmanagement.
DIT
CO
RE
VTR
Eng
ine
IMS
CO
M
IIOPIIOP
Navigation Tables
Rule Sets
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 16/32
Komponente: DIT-Core
Data Interface Core
• IDL-Wrapper wurde beibehalten, so musste die Client-Software diesbezüglich nicht angepasst werden.
• Einige Module aus Vorversion übernommen.• Feldzugriffe seitens des Clients wird über generierte Navigations-
Tabellen (aus PL/1) gesteuert. • Bei Release-Wechsel muss der Application-Service-Code nicht
angepasst werden.• Client wird asynchron (defered synchronity) über Call-Backs
benachrichtigt, wenn die Verarbeitung abgeschlossen ist.• Multihreaded mit Thread-Pool (weitere Performance-Verbesserung)• Caching von Daten bei mehrseitigen Zugriffen, so dass Rückblättern
möglich ist.• Nahtlose Integration mit der Virtual Transaction Rule Engine
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 17/32
Komponente: IMSCOM
IMS Communication Module
• Mehrere Verbindungen zum IMSGateway möglich.
• Verbindungen werden nach Bedarf geöffnet.
• Automatische Verbindungs-Management mit Wiederaufbau der Verbindungen, bei Netz- oder Server-Probleme.
• Zeitmessung für Transaktionen mit einfacher Statistik des Verkehrs, welcher über Remote-Diagnostik zugreifbar ist.
• Von Aussen konfigurierbar (Verbindungs-Anzahl, Destination)
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 18/32
Komponente: VTREngine
Virtual Transaction Rule Engine
• Entscheid zwischen applikationsspezifischer Sprache und Standard-Sprache (C++) fiel für erstere aus.
• VTREngine interpretiert einen Zwischencode zur Laufzeit.
• Engine hat vordefinierte Werte-Register (Variablen) und Struktur-Register, welche Meldungen von IMS beinhalten.
• String-Operationen
• Rechen-Operationen
• Indexierte Zugriffe
• Spezialfunktionen mit Integration in DIT-Core
• Die ersetzte Applikation wurde in rund 2400 Regeln abgebildet.
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 19/32
VTREngine: Regelverarbeitung
• Regelgruppen werden aufgrund des Message-IDs ausgewählt
• Meldungen vom Host selektieren die Pre-Condition Regeln
• Meldungen vom Client selektieren die Post-Condition Regeln
Hos
t
Clie
nt
OS
OS
IS
IS
MSGID
MSGID
Pre-Condition Rules Post-Condition Rules
Vir
tual
Tra
nsac
tion
Rul
e E
ngin
e
OS = Output Structure IS = Input Structure
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 20/32
VTREngine: Regelaufbau
Initialisierungs-Teil
steil
Aktionsteil
TF
gs-Teil
gsteil
Aktionsteil
TF
Initialisierungs-Teil
Bedingungsteil
Aktionsteil
TF
Postconditon Precondtion
Ruleset per Release
Message IdsMessage Ids
Rules RulesRulesRulesRules
Rules
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 21/32
VTREngine: Regelcode
Beispiel:
"10CU.PA1/PA2"{ DEFINE (os, A2100OM,A2100SR,A21XXSR); DEFINE (is, A2115OM,A2115SR,A21XXSR); COND ( DICMD_NXTPG ) ACTION { nxtproc = "APA2026"; fill(os.A2100OM, " "); fill(os.A2100SR, " "); fill(os.A21XXSR, " "); os.MSGID = "10CR"; os.A2100SR.REF.EANRXX00 = is.A2115SR.REF.EANRXX00; TRANSACTION("TI21005");
}}
Ausgelöste Transaktion
MSGID
Regelname
Condition
Action
Strukturzugriffe
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 22/32
VTREngine: Erstellung von Regeln
Pre/Post
MsgId
Aktion
Bedingung
MessageKomposition
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 23/32
Verteilte Entwicklungsumgebung: Uebersicht
VTREngine
Context
PL/1-Message
VTRCompiler
Source
DITCore
IMSCom
PL1Conv
Structure Files
Service
MSRepositoryService
Service
IIOP
IIOP
IIOP
Source &Code
RS6000 / AIX
Development&Test Environment
(Persistence)
System Test Environmentor Deployment
TERCO GUI
ContextService
Structu
re InfoCode
IIOPStructure Info
IDL Java C++
VTRAdminDeveloper
IIOP
IIOP
VTRC
ode
Code
Code während Testphase
Code-Export für Produktion
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 24/32
Regel-Entwicklung: VTRAdmin Userinterface
MsgId zur Vorselektion
Regeln aus ContextService
Strukturen aus MSRService
Komposition der verwendetenStrukturen
Verfügbare Transaktionsnummernaus MSRService
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 25/32
Regel-Entwicklung: Strukturzugriff via MSRService
Komposition der Strukturen pro Register möglich
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 26/32
Regel-Entwicklung: Compilation via VTRCompiler
Compilationvor dem Eincheckeneiner Regel mitdem VTRCompiler
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 27/32
Diagnose zur Laufzeit: Diagnose via IDL-Schnittstelle
DIAGIF
Application A Application B Application C
AppIFa1 AppIFa2 AppIFb1 AppIFb1 AppIFc1 AppIFc1DIAGIF DIAGIF
OUDiagnostic User Interface
ClientClient
TCP/IP-IIOP
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 28/32
Diagnose zur Laufzeit: Generelles User-Interface
DITService
MSRService
VTRCompiler
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 29/32
Diagnose zur Laufzeit: Remote-Access
Client-GUI Statusauszug
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 30/32
Diagnose zur Laufzeit: Logging
DIT
CO
RE
VTR
Eng
ine
IMS
CO
M
Nov 7 19:42:13 objeng11 DIT[26572]: DIT100I: DIT_TR34HI V3.1.15 [Tue 26.09.00 14:49:44] startedNov 7 19:42:52 objeng11 DIT[26572]: DIT201I: Signon (T001;bern1p;objeng21;79;01;P)Nov 7 19:42:56 objeng11 DIT[26572]: DIT201I: Signon (T002;bern1p;objeng21;79;01;P)Nov 7 19:43:19 objeng11 DIT[26572]: DIT201I: Signon (T003;bern1p;objeng21;79;01;P)Nov 7 19:45:14 objeng11 DIT[26572]: DIT201I: Signon (T004;bern1p;objeng21;79;01;P)Nov 7 19:45:14 objeng11 DIT[26572]: DIT109W: Automatic logout of station T001Nov 7 19:45:14 objeng11 DIT[26572]: DIT109W: Automatic logout of station T002Nov 7 19:45:14 objeng11 DIT[26572]: DIT109W: Automatic logout of station T003Nov 7 19:46:14 objeng11 DIT[26572]: DIT108W: Automatic cleanout of station T001Nov 7 19:46:14 objeng11 DIT[26572]: DIT108W: Automatic cleanout of station T002Nov 7 19:46:14 objeng11 DIT[26572]: DIT108W: Automatic cleanout of station T003Nov 7 19:46:14 objeng11 DIT[26572]: DIT109W: Automatic logout of station T004Nov 7 19:47:15 objeng11 DIT[26572]: DIT108W: Automatic cleanout of station T004Nov 7 19:48:15 objeng11 DIT[26572]: DIT202I: Signoff (T001;0h05m30s;1;0.13;0.13;0.13;)Nov 7 19:48:15 objeng11 DIT[26572]: DIT202I: Signoff (T002;0h05m23s;1;0.07;0.07;0.07;)Nov 7 19:48:15 objeng11 DIT[26572]: DIT202I: Signoff (T003;0h05m19s;1;0.58;0.58;0.58;)Nov 7 19:49:15 objeng11 DIT[26572]: DIT202I: Signoff (T004;0h06m14s;1;18.34;18.34;18.34;)Nov 7 19:56:52 objeng11 DIT[26572]: OUL901W: got signal [15]
Syslo
g
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 31/32
Zusammenfassung
• Das Projekt wurde in mehrere Phasen, resultatsbezogen aufgeteilt.
• Dadurch konnte die laufend verbesserte Technologie vorteilhaft ausgenutzt werden.
• CORBA/IIOP bis zum Mainframe brachte u.a. grosse Performanceverbesserungen.
• Ohne Objektorientierung wäre man schnell an die Grenzen gekommen, mit brachte es qualitative Verbesserungen.
• Dank CORBA konnten verschiedene Technologien (Sprachen) auf geeignete Weise gemischt und optimal ausgenutzt werden.
• Verteilung hatte grosse Vorteile, während der sich wandelnden Organisationsstruktur (Zentralisierung auf Regionen)
• Regel-Sprache brachte stark verbesserte Transparenz.
• Diagnose zur Laufzeit ist ein sehr wichtiger Aspekt für den Betrieb von verteilten Applikationen.
Copyright © 2000 by Object Engineering GmbH, Uitikon-Waldegg, Switzerland 32/32
Schlussfolgerungen
• Architektur aus einer Hand hat sich vorteilhaft erwiesen.
• Obwohl die Schnittstellen bereits recht generisch gehalten wurden, könnte wäre rückblickend eine weitere Vereinfachung möglich.
• Die Wahl einer “proprietären” Sprache für die Regelbehandlung hat sich nicht nachteilig gezeigt, insbesondere, dass diese mit Standardsprachen implementiert wurden.
• IDL-Schnittstelle hat die Gesamtablösung erst überhaupt möglich gemacht (Facade)
• Performance von C++-Programmen sind auch bei >200’000 Transaktionen pro Server-Instanz immer wieder erstaunlich.
• Modulares und iteratives Vorgehen hat ermöglicht, dass die Regel-Entwicklung mit der Entwicklung der Entwicklungsumgebung parallel gemacht werden konnte.
• Gutes Teamwork für solche Projekte sind das A&O für deren Erfolg.