Trademarks The following are trademarks of the International Business Machines Corporation in the United States and / or other counties. CICS* DB2* DFSORT DS6000 DS8000 Enterprise Storage Server* FlashCopy IBM* IBM eServer IBM logo* IMS MQSeries* OMEGAMON* Parallel Sysplex* System Storage System z System z9 System z10 System z10 Business Class Tivoli TotalStorage* VSE/ESA WebSphere* z/OS* z/VM* z/VSE zSeries* z9 z10 z10 BC z10 EC * Registered trademarks of IBM Corporation The following are trademarks or registered trademarks of other companies. LINUX is a registered trademark of Linus Torvalds. Tivoli is a trademark of Tivoli Systems Inc. Java and all Java-related trademarks and logos are trademarks of Sun Microsystems, Inc., in the United States and other countries UNIX is a registered trademark of The Open Group in the United States and other countries. Microsoft, Windows and Windows NT are registered trademarks of Microsoft Corporation. SET and Secure Electronic Transaction a re trademarks owned by SET Secure Electronic Transaction LLC. Intel is a registered trademark of Intel Corporation. Kursunterlagen / Copyright: Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Schulungsunterlagen oder Teilen daraus, sind uns vorbehalten. Kein Teil der Schulungsunterlagen darf ohne schriftliche Genehmigung der Lattwein GmbH in irgendeiner Form, auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert, an Dritte weitergegeben oder insbesondere unter Verwendung elektronischer oder anderswie Datenverarbeitender Systeme, verarbeitet, vervielfältigt oder zur öffentlichen Wiedergabe benutzt werden. Das Recht, Kursinhalte und Kursunterlagen zu aktualisieren oder zu modifizieren ist uns 40. COURSE - ESSEN vorbehalten. 3 40. COURSE - ESSEN 15 Jahre Web Anwendungen Moderne Techniken TCP/IP Version im Wandel z/VSE 4.2 Seminare Angebote 4 WebDBConnector TCP/IP EZASOKET CPG5 + ASPX SOAWebServices TCP/IP EZASMI Mail4Host TCP/IP EXEC CPGJDBC - CPGSHELL SNA APPC + TCP/IP Socket QIT – NetPage CPGXML QPG, QWS , Visual CPG 3270 CPG5 CPG5 QXF- QTF – QLF CPG4 Compiler CPG2 QSF CPGDD CPG3 Compiler HL1 Compiler CPG 1973 40. COURSE - ESSEN 1980 CPG1 1990 1995 2000 2005 2010 5 40. COURSE - ESSEN Business Partner Tagung im Labor 1995: Vielen Dank der IBM für das Handbuch: HTML und CICS Erste Ideen zur Guifizierung von 3270 Masken. Eine CICS Task bleibt eine CICS Task, auch wenn diese aus dem Browser aufgerufen wird. Daten werden moderner präsentiert Problematische Lösung, da SNA bei jedem Betriebssystem anders konfiguriert wird. 6 Erste Schritte mit APPC und Visual Basic Learning by doing: HTML 40. COURSE - ESSEN Design einer HTML Seite Kopflos und Frame lastig So wie es kommt – Quick and Dirty Erste wenige HTML Typen unterstützt 7 1995-1998 CPG5 startet über SNA startet eine CICS TASK: QIEX! Die Verbindung wird über Independent LU 6.2 Sessions aufgebaut. In den CPG5 Daten ist der QPG Programm Name enthalten Modifizierte Datenfelder werden zum Host gesendet Der Feldname ist Platzhalter in den Prototyp HTML Seiten. Logik und Datenserver: VSE Hier werden die QPG Programme ausgeführt 40. COURSE - ESSEN CPG5 Daten CICSTEST Task: QIEX Term: -99X --CICSPROD Task: QIEX --VTAM: LU6.2T1300100 System z Browser: http://demo.lattwein.de /qsf/menue.htm WebServer: Demo.lattwein.de Anfrage von CPG5.EXE --CPG5.ini: LocalLU=T1300100 RemoteLU=CICSTEST LocalTP=APPCCOM RemoteTP=QIEX Mode=LU62PSA ConnType=CPIC Nur Windows ! 8 1997 Erste Browser Anwendung bei Lattwein Anzeige Tabelle mit Hyperlink 40. COURSE - ESSEN 9 40. COURSE - ESSEN IBM OS/2 – die ideale Start Plattform. Der Communication Manager lehrte uns die SNA Welt zu verstehen Dann waren auch Windows NT SNA Lösungen durchschaubar Erste Auslieferung erfolgte im 4. Quartal 1997 Bei uns lief die Entwicklung für TCP/IP for VSE bereitsmit Startschwierigkeiten. Basis war das Socket Assembler API. 10 1998- Die Listener Task QTCL wird im CICS gestartet. Das Programm CPGTIPX wird via LINK aufgerufen und startet die Anwendung im QPG. In den Daten ist der QPG Programm Name enthalten Modifizierte Datenfelder werden zum Host gesendet Der Feldname ist Platzhalter in den Prototyp HTML Seiten. Simulation virtuelles Terminal = CPGTIS Logik und Datenserver: host.lattwein.de Hier werden die QPG Programme ausgeführt CICSTEST Port: 4701 --CICSPROD Port: 4703 System z 40. COURSE - ESSEN HOSTIP: 192.168.3.1 WebServer: Demo.lattwein.de CPG5 Daten Anfrage von CPG5.EXE --CPG5.ini: HostIP=192.168.3.1 Port=4701 Browser: http://demo.lattwein.de /qsf/menue.htm Linux, Windows, Unix 11 40. COURSE - ESSEN Ausgabe und Ein/Ausgabe Feld Button Tabelle Listbox Hyperlink Bilder Frames und Hintergrund bei Seiten 12 1998 Erste Kunden Anwendung bei FHH Sigmaringen Anzeige der Startseite Tabelle mit Hyperlink Einzelanzeige Artikeldaten 40. COURSE - ESSEN 13 Anzeige einer Konstruktionszeichnung Papierlose Dokumentenverteilung 40. COURSE - ESSEN 14 40. COURSE - ESSEN QIT ist ein guifizierter FTP und kann: Power List und Punch Queue Daten auf Client übertragen Jobs in die Power Reader Queue stellen Alle Dateien, die online verfügbar sind, senden und empfangen QPG Programme ausführen und Daten mit Logik senden und empfangen 15 1998 Erste Kunden installieren und testen TCP/IP 1999: Lattwein stellt QWS auf QIT um: 3 MB in 42 Sekunden ! 40. COURSE - ESSEN QIT := QWS + TCP/IP 16 QIT kann: 40. COURSE - ESSEN Dateien ins VSE übertragen Dateien in die Power Reader Queue setzen Dateien, QTF, Power LIST und PUNCH Queue QPG Programme ausführen 17 2000: Beginn der Entwicklung von CPGXML auf Basis von CPG5 QPG Features für die Web Entwicklung QPCF mit 1000 Satzlänge QPCF compressed Automatische Positionsberechnung und Trennzeichen bei der Ausgabe Ein modernes Interface für TCP/IP wird entwickelt – Basis ist das EXEC Level Interface für TCP/IP. 40. COURSE - ESSEN Möglich für CICS TS und CICS VSE ! 18 40. COURSE - ESSEN Listener Task startet neuen Listener bei Connect vom CPG5 - Getestet bis zu 120 Tasks / Sekunde bei z/10. Nur 1 Listener für CPG5, CPGXML und QIT ! QPG QTCLISTN(1): QTCLISTN (2): OPEN TCP PASSIVE LISTEN Port 4701 START TASK(‘QTCL‘) RECEIVE LINK CPGTIPX … SEND CLOSE RETURN OPEN TCP PASSIVE LISTEN Port 4701 Ablauf Hier wird das QPG Programm ausgeführt 19 Die Listener Task QTCL läuft im CICS TS oder CICS VSE. Die Verbindung wird über die IP-Adresse und Port aufgebaut. Das Programm CPGTIPX wird via LINK aufgerufen und startet die Anwendung im QPG. In den CPG5 Daten ist der QPG Programm Name enthalten Der Datenaustausch erfolgt über den Feldnamen, über Temporary Storage werden Arrays und Tabellen übergeben Simulation virtuelles Terminal = CPGTIS Logik und Datenserver: z/VSE oder z/OS host.lattwein.de Hier werden die QPG Programme ausgeführt CICSTEST Port: 4701 --CICSPROD Port: 4703 -----TCP/IP System z 40. COURSE - ESSEN HOSTIP: 192.168.3.1 WebServer: Demo.lattwein.de Anfrage von CPGXML-CGI --CPGXML.ini: HostIP=192.168.3.1 Port=4703 Anwendung .Net, Java: Host.Converse “http://demo.lattwein.de /cgi-bin/cpgxml.exe“ Linux, Windows, Unix 20 Daten aus anderen Welten im VSE verarbeiten Nutzen von ASPX mit XML und Java Script besser präsentieren Export nach MS Office mit Performance Gewinn Nutzen von CPGXML in Office Produkten CPGXML und .Net 40. COURSE - ESSEN Direkt in EXCEL oder Word Daten vom Host holen Die professionelle Einbindung von Host Anwendungen 21 Beispiel 1: Mit ASPX Programmen können Menu Gestaltungen individuell und In einem kompakten Tree View Format erstellt werden. EDV Bereich Besteht aus > 30 Punkten 40. COURSE - ESSEN Das ASPX Programm wird als Default HTML Seite geladen und ruft auf dem Host nach der Anmeldung ein QPG Programm über CPGXML auf. Aus den gelieferten Daten wird eine Menu Struktur im Tree View Format erstellt. Das ist flexibel, jeder sieht nur seine Programme, daher sicher und übersichtlich. Vermeidet viele unnötige Programmschritte auf dem Host. 22 Beispiel 2: Über einen Button (Query Anzeigen) wird das ASPX Programm filebrowse aufgerufen und als Auswahl Tabelle angezeigt. Die 2. Spalte erlaubt die Anzeige einer Excel artigen ASPX Tabelle mit Sort nach Spalten und Anzeige Filter Optionen. Wie geht denn das ? Beim NetPage für den Button den folgenden Javascript Aufruf einbauen: value="Query anzeigen" onclick="window.open('http://10.xxx.yyy.zzz/ Anzeige der cpg5word/filebrowse.aspx?CPGTIS=60000A25&KZNAME=109999' Abfrage 40. COURSE - ESSEN 23 40. COURSE - ESSEN Projekt: Jugend forscht . . . WebDBConnector benutzt ASPX und CPGXML um Abfragen von Datenbanken benutzerspezifisch zu präsentieren. Es gibt eine Administrator und eine User Sicht. So sieht das heute aus: 24 40. COURSE - ESSEN WebDBConnector und Host VSAM Daten über CPGXML Es können aber auch verschiedene Datenbanken ausgewählt werden Benutzer werden für bestimmte Abfragen zugelassen 25 40. COURSE - ESSEN Die Benutzer Sicht beim WebDBConnector 26 “Gewinnen Sie die Hoheit über Ihre Daten zurück.“ Daten aus Oracle, DB2, MS SQLServer, MYSQL lesen und schreiben vom VSE aus – ohne DB2 im VSE. Für alle Programmiersprachen Online und Batch Direkt aus VSE - CICS und Batch Programmen auf Datenbanken im Linux/Unix/Windows Umfeld zugreifen 40. COURSE - ESSEN 27 40. COURSE - ESSEN Erfahrungen mit Java werden gesammelt Erste Anwendung war ein ‘Hello World‘ vom Host Java und Host – Verbindungen zwischen DV Welten JDBC – Die Möglichkeit , verloren geglaubte Daten wieder einzufangen Wir lesen und schreiben Daten in L.U.W. Welt Auch I-Series nimmt an diesem Scenario teil 28 Auf alle DB Systeme im LAN zugreifen FTP vermeiden – wo immer möglich Kein DB2 auf VSE oder VM erforderlich Mit EXEC CICS LINK aufrufbare Schnittstelle SQL Commands werden an Datenbank über Temporary Storage Queue (TS) übergeben Ergebnis wird im TS bereitgestellt Robust - schnell - sicher - einfach 40. COURSE - ESSEN 29 Übergabe der SQL Commands in Common Area oder Temporary Storage Im Batch über VSAM ESDS SELECT KDNRA, FIRMA, ORT FROM MYTABLE CICS/ Batch Programm Assembler, Cobol, PLI,. . . DB2 CPGJDBC Daemon MYSQL ORACLE QJDBCGTO 40. COURSE - ESSEN EXEC CICS LINK / CALL im Batch MS SQL Rückgabe des Result-Sets in TS oder VSAM ESDS Datei. 30 40. COURSE - ESSEN Erfahrungen: Über ein HL1 Batch Programm werden für eine Browser ASPX Anwendung ca. 500.000 Zeilen mit einer 1156 Byte Satzlänge in eine MYSQL DB geladen. (Ca. 7 Sek. / MB). Über Stored Procedures werden daraus in 38 Minuten Indices und ca. 10 neue Tabellen neu erstellt. Data ca. 200 MB und Index ca. 320 MB ! 31 INSERT INTO WEBCM.WEBCM (CKEY, CHWB, CWB, CWGR, CAGRP, CARTNR,CREGAL, …) VALUES (‘0000123‘, 345, ‘XYZ‘, …) ON DUPLICATE KEY UPDATE CKEY = VALUES(CKEY), CHWB=VALUES(CHWB), … Eine Stored Procedure zum Update aufrufen: PROC copy2shadow Eine Stored Procedure zum Select aufrufen: CALL MySelectProc Der SQL Befehl kann bis zu 64 KB groß sein ! 40. COURSE - ESSEN 32 OUTPUT 40. COURSE - ESSEN INSERT String: 'INSERT INTO WEBCM.WEBCM (CKEY, CHWB, CWB, CWGR, CAGRP, CARTNR,CREGAL, CLIEF, CILN, CLANR, CKZES, CKZSET, CKOMPO, CANZIS, CPFART, CPFTXT, CRATNR, CRATYP, CPRA, CSTVK, CSTVK2, CSTVK3, CLWEG, CNACHV, CNACHB, CKZBS, CMWST, CAMENG, CGMENG, CGPE, CBONTX, CKZEM, CLTAGE, CMHD, CATYP, CVKE, CKZW, CARTDA, CFAP, CEKN3, CLGAUF, CFSK, CKLPRA, CKLEAN, CALDIA, CMODUL, CKLMGR, CKTXES, CKZSHR, CKZSMI, CKZSRR, CKZSNB, CKZSNO, CKZSSB, CKZSSW, CRLIEF, CGGUN, CGGNA, CGGKL, CGGKC, CGGVP, CGGSV, CGGBM, CGGBK, CKZNEU, CZAN, CEKNR, CLIEFE, CWGRE, CDATE, CKZEH, CSTEH, CLIEH, CKZST, CSTST, CLIST, CKZRD, CSTRD, CLIRD, CKZCC, CSTCC, CLICC, CKZMK, CSTMK, CLIMK, CKZR1, CSTR1, CLIR1, CERROR, CKZEK, CKZVK, CLIEFM, CKZAN, CKZAV, CZFAP, CZNAH, CEK3, CVKA1, CVKA2, CVKA3, CZFAPD, CZNAHD, CEK3D, CVKA1D, CVKA2D, CVKA3D, CFGZ1, CFGZ2, CFGZ3, CFGZ4, CFGZE1, CFGZE2, CFGZE3, CFGZE4, CZANE, CAL1, CAL2, CAL3, CAL4, EDKWGR, EDMNR, EDMAME, EMARKE) VALUES (‘12345‘, 22.45, . . . ) , (‘22345‘, 1.45, . . . ) , (‘33345‘, 3.45, . . . ) 1 Insert, 1 WriteLog, 25 Zeilen und bis zu 64 KB Daten ! 33 40. COURSE - ESSEN Mails for VSE SMS Versand aus VSE CPGSHELL – Benutzen Sie die anderen Plattformen aus VSE heraus Web Services mit CPG und z/VSE Neue Techniken mit CPG5 und ASPX 34 Laut IBM ist nur das EZASMI und das EZACALL Interface kompatibel zu z/OS- siehe: 40. COURSE - ESSEN TCP/IP for VSE/ESA - IBM Program Setup and Supplementary Information Diese Interfaces laufen nur unter CICS TS und Batch. Für z/VSE 4 können auch Assembler Main Programme diese Interfaces benutzen. Dazu muss ein Task related User Exit im CICS aktiviert werden. Volle Unterstützung der TCP/IP Programmierung 35 40. COURSE - ESSEN CPG5 kann mit dem EZASMI Interface im z/VSE arbeiten. Eine andere Technik wird hier verwendet , um Web Anwendungen zu realisieren. More PC- like. Bessere und konstantere Performance Wenn es läuft- läuft es sehr stabil. 36 Es gibt genau eine Listener Task: QTCL Jede Anfrage entspricht einer Communicator Task : QTCC QTCL – Listener INITAPI GETCLIENT SOCKET BIND LISTEN SELECT ACCEPT GIVESOCKET CLOSE TERMAPI 40. COURSE - ESSEN QTCC - Communicator INITAPI TAKESOCKET READ RECV LINK CPGTIPX SEND CLOSE TERMAPI RETURN 37 40. COURSE - ESSEN Leider ist das EZASMI Interface nicht lauffähig mit CICS TS für z/OS - nur z/OS Batch! Die gleiche Technik wird vom EZASOKET CALL Interface verwendet. Für z/OS haben wir jetzt auch den QTCL und QTCC mit dem EZASOKET Call API verfügbar. Geht auch im z/VSE – Read und aber etwas mehr Performance Aufwand. 38 Read Work Send Summe Read Work Send Summe 2.2 9.5 420.7 432.5 4.3 16.4 39.1 59.8 2.1 9.9 234.2 246.4 4.2 16.0 39.5 59.8 2.2 9.9 381.8 393.9 4.2 16.5 39.7 60.5 2.1 9.5 382.5 394.2 4.3 16.4 39.1 59.9 EXEC Level Interface 40. COURSE - ESSEN Werte sind in 1/1000 Sec. EZASMI Interface bzw. EZASOKET Call 39 40. COURSE - ESSEN Token Ring Anbindung TCP/IP 1.3 mit EXEC Level Interface Probleme mit Reentrant Register wurden zerschossen (3,4,5) Code wird – auch heute noch – modifiziert TCP/IP 1.4 OSA Support TCP/IP 1.5 Hiper Sockets TCP/IP X.Y (IP V6 ?) 40 Lange Zeit gab es nur ein TCP/IP für VSE von CSI Leider waren viele kleine Fehler immer wieder Anlass zur Suche - Literatur war nie auf aktuellem Stand 40. COURSE - ESSEN Command Reference und Programmer‘s Guide sind jetzt aktualisiert Zum Glück gibt es das Internet . . . TCP/IP 1.5 A-E, dann F CPG5, QIT und CPGXML Anwendungen sind von den Umstellungen nie betroffen 41 40. COURSE - ESSEN TCP/IP bei Lattwein Schulungen für TCP/IP Umstellung auf Ethernet Experimente mit den Send und Receive Größen der Buffer und anderer Systemeinstellungen Performance ist keine Hexerei . . . Traces 42 Mit z/VSE 4.3 gibt es ein 2. TCP/IP von BSI über IBM CSI kündigte am 31.5.2010 die neuen Versionen mit IPV6 an: Warum IP V6, und was bringt IP V6? Erste Erfahrungen Alle Teilnehmer müssen IP V6 können (Linux, Windows, Unix, z/VSE, I-Series, . . . ) How to Use it 40. COURSE - ESSEN 1.5G verfügbar ab 14.6.2010 nur CTC an IPv4 1.5H ab 1 Q. 2011 +FTP, CLIENT APIs 2.0 ab Ende 2011 Sollte kein Unterschied zu IP V4 sein 43 http://www.bsiopti.com IPv4 Adresse: 192.168.123.1 Max: 255.255.255.255 = X‘FFFFFFFF‘ 4.294.967.295 IPv6 Adresse: 2a00:d00:ff:131: 94:228:131:131 Max: FFFF:FFFF:FFFF:FFFF: FFFF:FFFF:FFFF:FFFF 40. COURSE - ESSEN 44 40. COURSE - ESSEN Goodies // EXEC FTPBATCH,SIZE=FTPBATCH,PARM='ID=00' LOPEN FTP, LPD, LPR, EMAIL LUSER SYSA PWD LPASS PDF erstellen OPEN 10.xxx.yyy.zzz SYSA USER Telnet 3270 und 3270E PASS PWD POWER CD DB2 und DB2 LUW über TCP/IP SITE R RDR,JQSFLOAD CLOSE Power PNET über TCP/IP QUIT /* Power Commands im z/VSE ausführen über FTP! 45 40. COURSE - ESSEN Schulungen bei Lattwein VSE/VSAM-Grundlagen für Systemer, Programmierer und Arbeitsvorbereiter VSE-Operating VSE-Systemprogrammierung kompakt Teil 1: VSE-Installation VSE-Systemprogrammierung kompakt Teil 2: VSE-Administration 46 Schulungen bei Lattwein Inside TCP/IP for VSE CICS Transaction Server Tuning, Basic Security Manager, RDO, Statistik Performance 40. COURSE - ESSEN Installation, Administration, Tuning VSAM und CICS TS IBM Konnektoren installieren und Verwendung CICS TS Dump-Analyse für Programmierer und Systemer 47 40. COURSE - ESSEN Programmierung – auch mit Cobol und anderen Tools Einbindung von Web Services in Mainframe Anwendungen Host Kommunikation – von der seriellen Waage bis zur Intranet / Internet Integration CPG5 Anwendungen – erste Schritte bis zu komplexen Anwendungen Host Anbindung an PC Development Tools Java U.v.m. .Net/Mono C# 48 40. COURSE - ESSEN Scheuen Sie sich nicht, auch mal bei Lattwein nachzufragen Wir können (noch) nicht zaubern- aber es sieht oft so aus! Viele interessante Lösungen sind bei uns vorhanden- und entstanden. Ihre könnte auch bald dabei sein. Wir beraten Sie auch gerne zu Systemfragen und Programmier Techniken. 49 Haben Sie noch Fragen ? 40. COURSE - ESSEN