State of the Art

Werbung
State of the Art 2008
Lattwein GmbH
Heinz Peter Maassen
1
Agenda





SOA – SOAP – Webservices
Who am I ?
CPGXML Performance Messung mit
JMeter
z/VSE – Tipps
Host on Demand
2
SOA – SOAP – WebServices

Was ist SOA ?




Serviceorientierte Architektur (SOA),
service oriented architecture,
dienstorientierte Architektur.
SOA ist eine Methode, um vorhandene DV
Komponenten wie Programme, Datenbanken,
Server, WebSites u.a. so zusammenzufassen,
dass diese anderen Abteilungen oder Kunden
zur Verfügung gestellt werden können.
3
SOA – SOAP – WebServices


Sicht vom Programmierer:
Alles in einem Guss ist kein dienstorientiertes Programm!
Früher Heute
GUI 3270
3270 Input
Logik
3270 Output
Logik
CPGXML
GUI Browser
4
SOA

SOA sollte folgende Merkmale haben:




Ein Dienst ist in sich abgeschlossen und kann
eigenständig genutzt werden.
Dienste sind in einem Netzwerk verfügbar.
Jeder Dienst hat eine veröffentlichte Schnittstelle.
Für die Nutzung reicht es, die Schnittstelle zu
kennen. Kenntnisse über die Details der
Implementierung sind hingegen nicht erforderlich.
Die Benutzung von Diensten ist Plattform
unabhängig, d.h. Anbieter und Nutzer eines
Dienstes können in unterschiedlichen
Programmiersprachen auf verschiedenen
Plattformen realisiert sein.
5
Ziele von SOAP

Erweiterbarkeit

Einfachheit

Einsatz auf verteilten Systemen, auch durch

Das Rad nicht neu zu erfinden, sondern
aktuelle Standards (HTTP und XML) zu nutzen
Firewalls hindurch
6
Was ist ein Web Service ?

Web Services sind aufrufbare Dienste im Internet.

In Web Services sind Kommunikation und Methode
standardisiert.

Web Services sind registriert.


Sie werden verwendet um einen Datenaustausch
zwischen Programmen auf verschiedensten Rechnern
auszuführen.
Verwenden intern meist XML Format und HTTP
Protokoll.
* Siehe Definition von SOA !
7
WebService: Beispiele
Beispiele für Webservices:
eBay Price Watcher Checks current bid price of an eBay auction.
Currency Exchange Rate Exchange rate between any two currencies
Domain Name Checker Checks whether a domain name is available
BabelFish Interface for AltaVista's Babelfish service.
FedEx Tracker Access to FedEx Tracking information
SOAP Web Search SOAP Interface to major search engines
Text-To-Speech (TTS) A Text-To-Speech (TTS) web service.
Airline Fare Checker Returns airfare/flight information.
German Bank Code Lookup (BLZ) Lookups German bank codes for name,
city and zipcode
Stock Quote Stock quote service which actually provides more than just
quote.
Und viele mehr ... siehe Internet.
8
SOAP Beispiel: Onlineshop
Ein Kunde möchte in einem Onlineshop Artikel bestellen. Der Onlineshop ist in
einen Applikationsserver realisiert.

Dieser Applikationsserver überprüft über den SOAP Web Service des Servers A,
ob die angegebene Adresse gültig ist,

verifiziert über den SOAP-Dienst B die Kreditkartennummer,

ermittelt über den SOAP-Dienst C die für das jeweilige Land zu berechnenden
Steuern (Umsatzsteuer, Luxussteuer, ...),

erfragt beim SOAP-Dienst D tagesaktuelle Währungsumrechnungskurse, um
den Endpreis korrekt berechnen zu können und

zeigt dem Benutzer alle Ergebnisse gesammelt im Webbrowser an.

Wenig Aufwand, wenn schon Funktionsmodule = Dienstmodule existieren.
9
SOAP Beispiel: Onlineshop
Web Applications-Server
A
Firewall
Intranet/
Internet
B
Dienst A = Adresse prüfen
C
Dienst B = Kreditkarte prüfen
D
Dienst C = Steuern ermitteln
Dienst D = Umrechnungskurs
10
SOAP und CPG5
SOAP und WebServices können einfach mit CPGXML auf
z/VSE zugreifen und bestehende Anwendungen
implementieren.
Der Host wird als Server Komponente in die SOAP
Anwendung eingebunden.
z/VSE
Linux/
Windows
SOAP
CPGXML
Anwendung
Web
Service
Windows,
A
Linux, ...
SOAP-XML
11
Web Services und Lattwein
z/VSE als Webservice Dienst Provider wurde von Lattwein
für Kapferer realisiert.
z/VSE als Webservice Client wurde parallel von Lattwein
für Wessels und Müller entwickelt.
12
z/VSE als Webservice Provider
z/VSE
Der WebService Kabis
nimmt Bestellungen von Apotheken
entgegen entgegen oder gibt Auskunft über die Verfügbarkeit von
Medikamenten.
CPGXML
WebService
KabisWS
13
z/VSE als Webservice Client
Aus mehreren
Anwendungen
können
Bestellungen
über TecCom
erfolgen.
z/VSE spricht über
TCP/IP den TecCom
Client an, der über
WebServices bei den
verschiedenen
Lieferanten
Bestellungen
auslöst.
Wessels
z/VSE
TecCom
Client
TecCom stellt einen zentralen
Bestellservice für die Automobil
Großhändler zur Verfügung.
www.teccom.de
WebService
TecCom
Lieferanten wie
z.B. Hella, Bosch ..
14
Who Am I ?


Einer unserer Kunden will Drucker nicht
nach Terminal Namen sondern über die
IP-Adresse zuordnen.
Ein anderer Kunde möchte aus einer
3270 Anwendung - PC Programme, wie
MS-Word oder Acrobat Reader, mit einer
vom Host festgelegten Datei auf seiner
Workstation starten.
15
Who Am I ?

Manchmal wäre es schön, die IPAdresse der
Telnetsession zu wissen.


Starten einer Anwendung aus 3270 Session, z.B.
MSWord, Acrobat Reader, ...
Geht natürlich über eine Tabelle –
Terminalname = IP-Adresse



Das ist aufwändig
Funktioniert aber bei allen Emulationen SNA,
NONSNA, TCP/IP Telnet
Ist aber keine Standard Lösung
16
Who Am I ?


Ab TCP/IP 1.5.E gibt es eine Funktion, die
GetHostByLuname heißt.
Also muss man mit:


EXEC CICS INQUIRE TERMINAL TERM(EIBTRMID)
NETNAME(LUNAME)
den LU-Namen ermitteln.
17
Who Am I ?






Über Socket Befehle kann man jetzt die
IP Adresse der eigenen Bildschirm
Session ermitteln.
Das geht über Socket Programmierung
mit den Befehlen:
SOCKET
SOCKET
SOCKET
SOCKET
OPEN,CONTROL,
SEND,CONTROL,
Senden: GETHOSTBYLUNAME
RECEIVE,CONTROL, Lesen: IP Adresse Terminal
CLOSE,CONTROL,
(*) Beispiel Programm siehe GSE Tagung Bonn
18
Who Am I ?
Beispiel: Aufruf eines Word Dokuments
aus einem 3270 Programm:
-
-C.
EDIT PARM. EDIT CPGCOM.
EXPR WORDSTRT S.
* GetHostbyLuname
-O.
FIELD CPGCOM
2 'SD'.
* SEND .DOC
4 ' '.
* RETURN CODE
CPGTID 8.
* 'L201'
PARM 108.
FIELD PARM.
24 '\\LWSERVER03\FIRMA\AUSTA'
48 'USCH\Wordaufruf.doc
'
19
Who Am I ?
Wordstart:
Ermittelt die IP-Adresse aufgrund
des eigenen Terminalnamens
IP Found
Ja:
Nein:
Check auf Tabelle in CPGWRK
Diese Tabelle wurde mit einem
Java Programm und CPGXML
erstellt.
Aufruf CPGSHELL mit Parametern
20
Performance Messung



Ein neues Projekt bei einem Kunden wird von einem
externen Beratungsunternehmen entworfen. Hierbei
sollte zunächst eine Machbarkeitsstudie erstellt
werden.
Es ist jedoch schwer, ohne fundamentales Wissen
über z/VSE dessen Stärken einzuschätzen und zu
bewerten.
Wir haben an dieser Untersuchung teilgenommen,
aus eigenem Interesse und um eventuelle
Fehleinschätzungen zu vermeiden.
21
Performance Messung



Bei einem POC (Proof of concept) wurde für CPGXML
Aufrufe das Tool Jakarta Jmeter verwendet.
Jmeter kann HTTP Befehle gegen einen Apache
Server automatisch absetzen und ermittelt
Performance Werte
So kann festgestellt werden, ob die Hardware
Ressourcen ausreichend sind oder ob sonstige
Engpässe bei einer geplanten Applikation bestehen.
22
Performance Messung

Die Starteinstellungen:
23
Performance Messung

Aufruf der CPGXML
24
Performance Messung

Graphische Anzeige der Ergebnisse:
25
Performance Messung

Tabellarische Darstellung:
26
Ergebnis:
27
Performance Messung
28
TCP/IP 1.5.F





Neues Programming Interface
Port Queueing Facility
Programm: FILESYS
Änderungen zu 1.5.E
Kurs TCP/IP am 17-19.6.2008
29
TCP/IP 1.5.F IPNETPRE



Neue Programmier Schnittstelle
IPNETPRE ersetzt IPNETRAN
Keine Größen Begrenzung von Sourcen
IPNETPRE ist schneller und verbraucht
weniger Ressourcen.
30
TCP/IP 1.5.F IPNETPRE



Ist Source kompatibel. Programme können
sowohl mit IPNETPRE als auch mit
IPNETRAN erstellt werden. - Einfache
Umstellung.
Jedoch nicht abwärts kompatibel läuft nicht
mit 1.5.E und kleiner!
Assembler war zunächst nicht unterstützt.
31
TCP/IP 1.5.F Port Queueing



Zeit zum Starten einer Folgetransaktion
dauert relativ lange.
Mit der Port Queue können ankommende
Requests (= Binds) gebuffert werden, wenn
gerade kein LISTEN aktiv ist.
Das verbessert die Verfügbarkeit von LISTEN
Transaktionen / Programmen.
32
TCP/IP 1.5.F Port Queueing
LISTEN TASK
LISTEN TASK ( Folgetask )
EXEC TCP OPEN
* Bind erfolgt
EXEC TCP OPEN
* Bind erfolgt
EXEC CICS START
TRANSACTION(TRID)
EXEC CICS START
TRANSACTION(TRID)
EXEC TCP RECEIVE
EXEC TCP RECEIVE
EXEC TCP SEND
EXEC TCP SEND
33
TCP/IP 1.5.F FILESYS



Mit dem Befehl DEFINE FILESYS
wurden alle Dateien im Standardlabel
als DEFINE FILE für FTP definiert.
Damit wurde z/VSE offen wie ein
Scheunentor!
Das Programm FILESYS erstellt die
Source für die IPINIT im Quelltext!
34
TCP/IP Seminar
VSE-Systemer-Seminar "Inside TCP/IP"
1. TCP/IP im VSE/ESA
Installation des TCP/IP
Konfiguration native unter VSE/ESA und als Gateway
unter TCP/IP unter z/VM
2. Telnet
Terminal-Definitionen im TCP/IP und im CICS TS im CEDA
Auto Install Terminals (7 Farben/verschiedene Größen, etc)
3. GPS Drucken unter TCP/IP im VSE/ESA
4. PDF-Dokumente über TCP/IP erstellen
5. FTP Batch und CICS
6. Programmierung mit TCP/IP – Tipps und Beispiele
7. Wichtige Änderungen und Neuerungen in 1.5E und 1.5F
35
SET SDL,... nicht nur im BG !

Seit VSE/ESA 2.6 gilt (Siehe Release Guide):

2.3.2 Enhancement to the SET SDL Command
Tipp

The restriction that the SET SDL command can be
issued from the BG partition only has been removed.
Like the commands STDOPT and SETPARM SYSTEM
since VSE/ESA 2.5, SET SDL can now be issued from
any partition.
36
Host On Demand

Ein z/VSE Kunde hat für seine 3270 Emulation
WebSphere Host On-Demand im Einsatz und
wollte



Auf eine aktuelle Version umstellen.
Active Directory so einbinden, dass die verfügbaren
Terminal Sessions einem Benutzer zentral
zugewiesen werden können.
Spracheinstellung und Zuordnung der
Anwendungsumgebung je User sollten zentral
verwaltbar sein.
37
Host On Demand
Nach der Anmeldung am HOD erhält man:



Kennen Sie Host On
Demand ? (HOD)
Sagt Ihnen Telnet
3270E etwas ?
Kennen Sie
Anwendungen mit
AD ?
38
Host On Demand -Telnet 3270E - Active Directory
Vorteile von HOD über TN3270E und Verwaltung im AD:




Host Sessions werden zentral verwaltet genau 1-mal.
Egal ob der User im LAN arbeitet, oder über ein WAN, er
erhält immer die gleichen Terminal Sessions.
Das geht sogar über VPN ohne Modifikationen.
Sehr hilfreich, wenn die Anwender nicht nur lokal, sondern
auch aus vielen Ländern remote auf das z/VSE = CICS
zugreifen.
39
Host On Demand





Nach der Anmeldung beim AD (Active Directory) wird über
Websphere eine Webseite mit den möglichen 3270 Sessions
angezeigt.
Diese Sessions werden vom Netzwerkadministrator vorkonfiguriert,
so dass man eine zentrale Wartung der Hostsessions hat.
Auf dem Client PC wird keine Terminal Emulation installiert.
Das bedeutet: Zentrale Verwaltung im AD für alle externen und
internen 3270 Sessions.
Was muss auf dem Host definiert werden?



TCP/IP Telnet 3270E
VTAM APPL für diese Telnet Sessions
Auf dem Client PC muss ein Browser installiert sein, sowie eine
aktuelle Java Version.
40
Telnet 3270E

Telnet 3270E Unterstützung:
TN3270E
ClientPort:
3270
LU=LWTNL201
TCP/IP
Listener Daemon
Port: 3270
VTAM
LU=LWTNL201
Effector Daemon
LuName: LWTNL201
Effector Daemon
LuName: LWTNL202
LU=LWTNL202
TN3270E
ClientPort:
3270
LU=LWTNL202
41
Telnet 3270E
Durch Doppelklick auf ein 3270 Symbol wird eine Session
gestartet.
Die Session erhält
die TerminalID L201
da der LuName =
LWTNL201 war.
Das wird über Terminal Autoinstall
realisiert.
42
Active Directory
Active Directory Service aus Wikipedia :
43
Active Directory
Active Directory verwalten
Im AD werden Standards für alle
Benutzer einer Firma zentral verwaltet.
Möchte man eigene Spalten zum AD
hinzufügen, so muss das beantragt
werden. Über X.500 OID ( Unique
Object Id ) kann der Hersteller einer
Software ins AD zusätzliche Einträge
registrieren. (IANA.org)
Der Einfachheit wegen haben wir uns
entschieden, die Session Namen unter
Beschreibung abzulegen, und diese
über HOD Scripte in die Startseite eines
Benutzers zu integrieren.
44
Host On Demand -Telnet 3270E - Active Directory
Vorteile von HOD über TN3270E und Verwaltung im AD:


Host Sessions werden zentral verwaltet genau 1-mal.
Egal ob der User im LAN arbeitet oder über ein WAN, er
erhält immer die gleichen Terminal Sessions.

Das geht sogar über VPN ohne Modifikationen.

z/VM – z/VSE – z/OS  Host anywhere
45
Noch Fragen ?
46
Anhang

Nachfolgend nähere Erläuterungen.
47
Telnet 3270E
TCP/IP Telnet Storage Requirements
Tipp
Je Telnet Session, die definiert wird, braucht TCP/IP 4 KB virtuellen
Speicher. Sessions, die gestartet werden und kein Buffer Sharing verwenden,
brauchen 16K virtuellen Speicher. Buffer Sharing wird durch den Parameter
POOL=YES definiert.
Telnet Sessions mit Buffer Sharing belegen 20 Buffer à 16 KB für die
ersten 100 Sessions. (320 KB) Je 10 Sessions sollte 1 weiterer Buffer
definiert werden.
100
200
400
800
Sessions
Sessions
Sessions
Sessions
-
20
30
50
90
Buffer
Buffer
Buffer
Buffer
-
320 KB
480 KB
800 KB
1.440 KB
48
Telnet 3270E
Definition von Telnet TN3270E:
1. Listener
DEFINE TELNETD,ID=LG3270E,TN3270E=L,PORT=3270,GROUP=LG3270E,POOL=YES
2. Ellector
DEFINE TELNETD,ID=L201,TN3270E=E,TERMNAME=LWTNL201,GROUP=LG3270E,
-
TARGET=CICSTEST,POOL=YES,LOGMODE=NSX32702,LOGMODE3=NSX32703,
LOGMODE4=NSX32704,LOGMODE5=NSX32705 (,MENU=VTAMLW alternativ zu TARGET)
49
Telnet 3270E
Dazu die VTAM Definition:
CATALOG TCPAPPL.B REPLACE=YES
TCPAPPL VBUILD TYPE=APPL
TCPDIAG APPL AUTH=(ACQ)
TCPIP
APPL AUTH=(ACQ)
TELNGRP1 GROUP EAS=1
.
LWTNL201 APPL AUTH=(ACQ) (oder ,EAS=1)
LWTNL202 APPL AUTH=(ACQ)
LWTNL203 APPL AUTH=(ACQ)
50
TCP/IP 1.5.F Port Queueing



Mit Query PortQueue kann abgefragt werden, ob
PQ aktiv ist.
In der IPINIT oder als Consolbefehl:
PORTQueue PORT=xxxxx ,TIMEOUT=sec]
[,DEPTH=nn]
(xxxxx =1-65536, sec=1-60, nn=0-100)
51
TCP/IP 1.5.F Port Queueing

Beispiele:

PORTQueue PORT=4712,DEPTH=32

PORTQueue PORT=80,TIMEOUT=10,
DEPTH=100
52
TCP/IP 1.5.F Port Queueing
100 portqueue port=4712,depth=32
F7 0097 IPN405I Port queue values successfully set
F7-0100 IPN300A Enter TCP/IP Command
100 query portqueue
F7 0097 IPN253I << TCP/IP Port Queuing >>
F7 0097
F7 0097
F7 0097
F7 0097
F7-0100
IPN400I Port: 4712 Timeout: 3 sec Limit: 32
IPN401I Queued: 0/0/0 Reject: 0 Good: 0 Lost: 0
IPN402I Avg wait: 0 msec; Avg lost: 0 msec; Int: 14.467
IPN403I Partition: F7 Phase: IPNET
IPN300A Enter TCP/IP Command
53
TCP/IP 1.5.F FILESYS
Der folgende Job:
// JOB FILESYS EXECUTION
// LIBDEF *,SEARCH=PRD2.TCPIP15F
// EXEC FILESYS
SET SYSPCH=ON
/*
Erstellt aus dem Standard Label: ( siehe nächste Seite)
54
TCP/IP 1.5.F FILESYS
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
FILE,DLBL=IJSYSRS,PUBLIC='VSE.SYSRES.LIBRARY',TYPE=LIBR
FILE,DLBL=IJSYSR2,PUBLIC='VSE.SYSRES.LIBRARY',TYPE=LIBR
FILE,DLBL=IJSYSR1,PUBLIC='SYS.NEW.RES',TYPE=LIBR
FILE,DLBL=PRD1,PUBLIC='VSE.PRD1.LIBRARY',TYPE=LIBR
FILE,DLBL=PRD2,PUBLIC='VSE.PRD2.LIBRARY',TYPE=LIBR
FILE,DLBL=PRDPRIM,PUBLIC='VSE.PRD1.LIBRARY',TYPE=LIBR
FILE,DLBL=PRIMARY,PUBLIC='VSE.PRIMARY.LIBRARY',TYPE=LIBR
FILE,DLBL=SYSDUMP,PUBLIC='VSE.DUMP.LIBRARY',TYPE=LIBR
FILE,DLBL=CRYPTO,PUBLIC='VSE.CRYPTO.LIBRARY',TYPE=LIBR
FILE,DLBL=DTSFILE,PUBLIC='ICCF.LIBRARY',TYPE=ICCF
FILE,DLBL=IJQFILE,PUBLIC='VSE.POWER.QUEUE.FILE',TYPE=POWER
FILE,DLBL=IJDFILE,PUBLIC='VSE.POWER.DATA.FILE',TYPE=POWER
FILE,DLBL=IJSYSCT,PUBLIC='VSAM.MASTER.CATALOG',TYPE=VSAMCAT
FILE,DLBL=VSESPUC,PUBLIC='VSESP.USER.CATALOG',TYPE=VSAMCAT
FILE,DLBL=IESCNTL,PUBLIC='VSE.CONTROL.FILE',TYPE=KSDS
FILE,DLBL=IESMSGS,PUBLIC='VSE.MESSAGES.ONLINE',TYPE=KSDS
FILE,DLBL=CPGWKL,PUBLIC='CPGWKL.CPGK',TYPE=KSDS
55
TCP/IP 1.5.F FILESYS
 Diese generierten Definitionen in die
IPINIT bei Bedarf eintragen, damit ein
FTP von und zu diesen Dateien erfolgen
kann.
DEFINE FILE,DLBL=PRD2,PUBLIC='VSE.PRD2.LIBRARY',TYPE=LIBR
DEFINE FILE,DLBL=PRDPRIM,PUBLIC='VSE.PRD1.LIBRARY',TYPE=LIBR
DEFINE FILE,DLBL=PRIMARY,PUBLIC='VSE.PRIMARY.LIBRARY',TYPE=LIBR
DEFINE FILE,DLBL=DTSFILE,PUBLIC='ICCF.LIBRARY',TYPE=ICCF
DEFINE FILE,DLBL=IJQFILE,PUBLIC='VSE.POWER.QUEUE.FILE',TYPE=POWER
DEFINE FILE,DLBL=IJSYSCT,PUBLIC='VSAM.MASTER.CATALOG',TYPE=VSAMCAT
DEFINE FILE,DLBL=VSESPUC,PUBLIC='VSESP.USER.CATALOG',TYPE=VSAMCAT
DEFINE FILE,DLBL=MYFILE,PUBLIC=‚MYFILE.KSDS',TYPE=KSDS
...................
56
Host On Demand
TN3270E ist eine Erweiterung zu Telnet 3270. Hierbei
werden 2 Daemons gestartet:

Listener Daemon und zwar 1 Daemon je Port

Effector Daemon, je 1 Daemon pro Session
Bei TELNET3270E wird der LU-Name bei der Terminal
Definition mitgegeben. Damit ergibt sich eine eindeutige
Zuordnung zur Terminal-ID.
57
Active Directory
Einige Parameter lassen sich vom Benutzer ändern, andere nicht. Damit kann
sichergestellt werden, dass nur befugte Personen Zugang zum CICS erlangen.
Man kann jedoch fast alle Parameter sperren, so dass keine Modifikationen
möglich sind.
LWTNL201
58
Active Directory
HOD Sessions verwalten
Die Sessions werden vorkonfigurierthierzu wird der Implementieringsassistent aufgerufen.
Nach Auswahl einer Session können die
Session Daten verändert und
eingestellt werden.
Außerdem kann bestimmt werden, ob
am Client Änderungen zu diesen
Definitionen erlaubt werden oder nicht.
59
Active Directory
HOD Session Einstellungen
LWTNL203
60
Host On Demand - Active Directory
Scripte von HOD anpassen
In den Scripten kann man jetzt Parameter der Default Konfiguration der
Sessions austauschen, die man aus AD gelesen hat. Siehe hierzu die
letzten drei Zeilen dieses Scripts.
61
Herunterladen