z/OS Internet Integration (1,9 MByte)

Werbung
Client/Server-Systeme
Prof. Dr.-Ing. Wilhelm G. Spruth
WS 2006/2007
Teil 15
z/OS Internet Integration
cs 1100 ww6
sch 05-97
z/OS Internet Integration
Unternehmenskritische Anwendungen und Datenbankprozesse laufen in der Regel auf einem zentralen Server. In
mittleren und großen Unternehmen und Organisationen ist
dies in der Regel ein z/OS bzw. OS/390 Rechner. Hieran wird
sich in der voraussehbaren Zukunft auch nichts ändern.
Aufgabenstellung:
• Die existierende IT-Infrastruktur mit den Möglichkeiten
des Internets integrieren.
• Die existierende IT-Infrastruktur umstrukturieren, so
dass sie mit weniger Personal an die sich in immer
kürzeren Zeiträumen ändernden Geschäftsbedingungen
angepasst werden kann.
Hierfür hat sich der Name Service Oriented Architecture
(SOA) eingebürgert.
ACCOUNTS
SURNAME
:
FIRST NAME
:
TELEPHONE
:
ADDRESS LINE1:
LINE2:
LINE3:
ADD ACCOUNT NUMBER 26004
Meier
(18 CHRS) TITLE
: DR
Walter
(12 CHRS) MIDDLE INIT: R
733456
(10 DIGS)
Heilbronnerstr. 91
(24 CHRS)
70109 Stuttgart
(24 CHRS)
(24 CHRS OPTIONAL)
CARDS ISSUED : 1
DATE ISSUED : 11 22 99
APPROVED BY : DEF
(1 TO 9)
(MM DD YY)
(3 CHRS)
CARD CODE : A
REASON CODE: L
(4 CHRS OPTIONAL)
(1 CHR OPTIONAL)
(1 CHR)
(N,L,S,R)
UPTO 4 OTHERS WHO MAY CHARGE (EACH 32 CHRS OPTIONAL)
O1:
O2:
O3:
O4:
SPECIAL CODE1:
CODE2:
CODE3:
(EACH 1 CHR OPTIONAL)
NO HISTORY AVAILABLE AT THIS TIME
CHARGE LIMIT
STATUS
NOTE:- DETAILS IN BRACKETS SHOW MAXIMUM NO. CHARACTERS ALLOWED AND IF OPTIONAL
FILL IN AND PRESS "ENTER," OR "CLEAR" TO CANCEL
3270 BMS Darstellung
Java Servlet - JSP Darstellung
es 1203 ww6
wgs 05-02
CICS Bildschirmausgabe
3270 Protokoll
graphische
User Interface
(uneingeschränkt)
TN3270
EPI
Character
User Interface
graphische
User Interface
(eingeschränkt)
TCP62
DPL
ECI
Alternativen der Bildschirmausgabe
CUI
GUI
es 1018 ww6
Character User Interface
Graphical User Interface
wgs 01-01
IBM WebSphere® Host Access Transformation Services (HATS)
HATS macht 3270 Bildschirmdarstellungen als HTML Seiten
verfügbar. Es erkennt automatisch die Komponenten des 3270
Bildschirm-Inhaltes mit Hilfe eines Satzes vordefinierter Regeln. Es
übersetzt die Komponenten des 3270 Bildschirm-Inhaltes in
Echtzeit in HTML
Ursprünglicher Green Screen
Halb-automatische Übersetzung mit Hilfe von
WebSphere Host Access Transformation Services (HATS).
Konnektoren
Bei den Implementierungen von Web Commerce Lösungen spricht
man vom Frontend, welches typischerweise mit einem Web
Application Server realisiert wird, und einem Backend (Beispiele
Auftragseingang, Finanzbuchhaltung), wofür vorhandene Legacy
Systeme eingesetzt werden.
In vielen Fällen werden 20 % des Projektaufwandes für die
Neuentwicklung des Frontends und 80% für dessen Integration in
das vorhandene Backend aufgewendet.
Konnektoren sind Java Beans, welche eine Schnittstelle zu
existierenden Enterprise Information (Legacy) Systemen bilden.
Beispielsweise sind folgende Konnektoren für die IBM WebSphere
verfügbar:
o
o
o
o
o
o
o
o
o
JDBC, SQLJ
DB2
Oracle
Adabas
CICS
IMS
MQSeries
SAP R/3
Lotus Domino
Die Konnektoren der J2EE Connector Architecture (JCA) werden als
Resource Adapter bezeichnet.
cs 1468 ww6
wgs 06-00
J2EE Connector Architecture
JCA
Standard Achitektur für die Integration von existierenden
Business Logik Komponenten :
•
•
•
•
ERP Systeme, z... SAP R/3
Mainframe Transaktions Monitore, z.B. CICS, IMS
Non- Java Legacy Anwendungen
Datenbank Systeme
Wichtigste Bestandteile der Architektur sind:
• JCA Konnektoren, als Resource Adapter (RA) bezeichnet
• Common Client Interface (CCI)
A Resource Adapter is a system level software library that
is used by an application server or client to connect to a
Resource Manager. A Resource Adapter is typically
specific to a Resource Manager. It is used within the
address space of the client using it. An example of a
resource adapter is the JDBC driver to connect to relational
databases.
Für CICS existieren:
• ECI resource adapter (für COMMAREA Zugriff)
• EPI resource adapter
Das CICS Transaction Gateway (CTG) enthält ECI RA, EPI
RA und CCI, sowie weitere Zugriffsmechanismen
ausserhalb der JCA
JCA Common Client Interface
CCI
Die Common Client Interface (CCI) definiert eine Standard Client
API Die CCI ist eine EIS unabhängige API. Anwendungen können
mit einer identischen API unterschiedliche Resource Adapter
verwenden. Ähnlich JDBC Interface
J2EE Connector Architecture
CCI
EIS
Common Client Interface
Enterprise Information System
CCI und Resource Adapter sind als Java Klassen implementiert. Sie
können von einer Java Anwendung alleinstehend benutzt werden
( non-managed environment ).
Üblich ist es, CCI und Resource Adapter als Elemente eines Web
Application Servers einzusetzen (managed environment). Hierbei
kann der Web Application Server das Management von
Verbindungen, Transaktionen und Sicherheit direkt übernehmen.
Die CCI Entwicklung kann in ein Entwicklungswerkzeug wie Eclipse
integriert werden.
J2EE Connector Architecture
(JCA)
• Defines a standard architecture for simplified
connectivity between J2EE environment and
heterogeneous Enterprise Information Systems (EIS)
• J2EE 1.3 standard introduced the J2EE Connector
Architecture (JCA) v1.0
• J2EE 1.4 standard contained the J2EE Connector
Architecture (JCA) v1.5
The J2EE Connector Architecture v1.0 specification
defines:
• Common Client Interface (CCI)
• A common API for interacting with resource
adapters
• Largely independent of a specific EIS
• System Level Programming Interface (SPI)
• A set of system-level contracts between a J2EE
application server and EIS resource adapter to
provide services such as connection pooling and
transactionsResource adapter deployment and
packagingA Resource Adapter Module used to
deploy a resource adapter into a J2EE application
server
CICS virtueller
Adressenraum
andere virtuelle
Adressenräume
CICS Anwendungen
Presentatiom Logik
Terminal
Control
Task
Control
TCT
PCT
Business Logik
Program Storage
File
Control Control Control
PPT
FCT
COMMAREA
OS/390 Kernel
COMMAREA
Communication Area
COMMAREA kann benutzt werden um Ein/Ausgabedaten zu
übergeben:
• An ein CICS Anwendungsprogramm im gleichen Adressenraum
• An ein CICS Anwendungsprogramm in einem anderen
Adressenraum auf dem gleichen physikalischen Rechner,
• An ein CICS Anwendungsprogramm auf einem getrennten
physikalischen Rechner unter Benutzung von
EXEC CICS LINK (...)
• An ein nicht unter CICS laufendes Programm, z.B. ein GUI
Prozess unter Verwendung der EPI Schnittstelle
es 1356 ww 6
wgs 06-01
CICS
Anwendung
EXCI
CICS
IIOP
Schnittstelle
CICS
Transaction
Gateway
ECI
CICS
Transaction
Gateway
CICS Transaction Server
Verteilter
WebSphere
Server
z/OS
z/OS
WebSphere
Server
Kernel
Internet
HTTP
Browser
Browser
IIOP
CORBA oder RMI/IIOP
Alternative CICS Zugriffe über das Internet
es 1372 ww6
wgs 12-01
CICS Region (Adressenraum)
andere
Regions
CICS JVM
CICS Cobol
PL/1oder C++
Anwendung
EXEC CICS
Commands
Comnd.
Library
CICS
Java
Anwendung
JCICS
Library Calls
CICS
Nucleus
JCICS
Library
z/OS Kernel
JCICS Java
Anwendungsprogrammierung
Java wird wie eine andere Programmiersprache eingesetzt.
Die JCICS Library Calls ersetzen 1:1 die EXEC CICS
Kommandos.
Keine Enterprise Java Beans
Java Application Development for CICS
http://publib-b.boulder.ibm.com/abstracts/sg245275.html?Open
Browser
Java Client
HTTP
z/OS
CICS Transaction Server
RMI/
CICS
EJB Server
Servlet
RMI/
Session Bean
Session Bean
Session Bean
RMI/
WebSphere
DB
Benutzung von Enterprise Java Beans
in einer CICS Anwendung
es 1386 ww6
wgs 07-02
Web Services
Enterprise
Information
System
Neue
Dienste
Oracle
DB2
Web Applic.
Server
CICS
Internet
Servlet
EJB
IMS
Presentation
Glue
Tuxedo
Browser
SAP
Client/Server Aufgabenstellung
• Browser orientierter Web Zugang
• Datenhaltung in existierenden Datenbanken
• Dominierender Anteil der Business Logik in existierenden
Transaktionsprogrammen und/oder Stored Procedures
• Neue Software (z.B. EJBs) stellen Querverbindungen zwischen
existierenden Komponenten her (Glue)
Transaktionsmaschine
• System Management - TCO
cs 1521 ww6
wgs 06-00
Was ist ein Webservice?
ein Service, den man über ein Internet Standard–Protokoll
wie z.B. SMTP, FTP und andere aufrufen kann.
Gemeint ist aber meistens ein Service, der über http mit
dem Simple Object Access Protocol (SOAP) aufgerufen
wird.
Das Simple Object Access Protocol ist weder simple noch
Objekt-orientiert.
Sun oder DCE
RPC
Web
Services
Transport Protokoll
beliebig
SOAP
Daten
Repräsentation
XDR, ASN.1
XML
Interface
Definition
IDL
WSDL
Namensdienst
Directory Dienst
DNS, X.500
LDAP
UDDI
Web Services
SOAP ist ein Remote Procedure Call (RPC) Protokoll. Es
benutzt häufig HTTP für den Transport (Alternativen sind
alle Protokolle, die Text übertragen können, z.B. FTP,
MQSeries). XML beschreibt das Format der übertragenen
Daten. SOAP ist unabhängig von der verwendeten
Programmiersprache und dem jeweiligen Betriebssystem.
WSDL XML Beschreibung der Schnittstellendefinitionen
eines Web Service. Beschreibt Formate der Anforderungsund Antwort- Nachrichtenströme, mit denen Funktionsaufrufe an andere Programm-Module abgesetzt werden.
UDDI ist ein XML Dienstekatalog. Stellt ein Verzeichnis von
Adress- und Produktdaten sowie Anwendungsschnittstellen der verschiedenen Web Service Anbieter dar.
IBM - Microsoft Kooperation, breite Unterstützung, aber
Firewall - HTTP Problem, Sicherheit, Reifegrad,
Transaktionsdienste ?
Die Kombination aus UDDI, WSDL und SOAP bildet einen
Baustein für eine Service-Orientierte Architektur (SOA).
Web Services Struktur
Eigenschaften:
• Quick and dirty Implementierung von unkomplizierten
Aufgaben
• Remote Procedure Call über Port 80
• WSDL an Stelle von IDL - automatische Erstellung,
z.B. IBM’s Web Services ToolKit (WSTK)
• keine Objektorientierung
• skaliert schlecht
Was fehlt:
· Sicherheit - HTTPS kann benutzt werden, ist aber
unabhängig vom Web Service Mechanismus
· Transactionssteuerung, Flußsteuerung
cs 1529 ww6
04-03
Client
Server
Aufrufende
Prozedur
Aufgerufene
Prozedur
Argumente
Ergebnisse
Argumente
Client
Stub
Request
Nachricht
Ergebnisse
Server
Stub
Reply
Nachricht
Request
Nachricht
Reply
Nachricht
Netzwerk
Remote Procedure Call
Client
Programm
Argumente
Web Service
Prozedure
Implementation
Ergebnisse
Argumente
Client
ProcedureStub
SOAP
Reques t
SOAP
Reply
HTTP
User Agent
Ergebnisse
CGI/JSP/ASP
Script
SOAP
Request
HTTP Post
Response
SOAP
Reply
HTTP
Server
Web Services Remote Procedure Call
cs 1528 ww6
04-03
Soap
What SOAP Claims to be
• SOAP is "Simple Object Access Protocol"
• It is "a lightweight protocol for exchange of information in a
decentralized, distributed environment"
• It is an XML based protocol
What SOAP is
• Basically, SOAP/WSDL/UDDI is the latest in RPC technologies
• It is the first open standard RPC supported by Microsoft, and
was originally developed by Microsoft, IBM and Artima
• It is now part of the W3C standards track
• Version 1.2 is current
SOAP consists of
• A description of allowable data types
• A message format
• A binding to HTTP transport, and (non-normative) examples of
other bindings (e.g. email)
What SOAP isn’t
• It isn’t object oriented - it is procedural
• It isn’t simple - it requires an understanding of XML, including
XML namespaces
• It isn’t lightweight - it needs XML generators/parsers on client
and server sides, and just sending a one-byte character of
payload can use 1000 bytes of message
• It isn’t complete as an RPC system (e.g. no standardisation of
language bindings)
SOAP Envelope
Der SOAP Envelope ist das Wurzel (root) Element eines
XML Dokumentes, welches die Nachricht (message)
darstellt. Er hat die folgende Struktur:
<SOAP-ENV:Envelope ....>
<SOAP-ENV:Header>
<SOAP-ENV:HeaderEntry..../>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
[message payload ]
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Generell bestehr eine SOAP Nachricht aus 0, 1 oder mehr
Headers und einem Body.
Der SOAP Envelope definiert den Namensraum
(namespace) für die Strukturierung der Nachricht. Die
ganze SOAP Nachricht (Headers und Body) sind
abgegrenzed (wrapped) in den Envelope.
SOAP HTTP Request
POST /Charging HTTP/1.1
Host: travelcompany.example.org
Content-Type: application/soap; charset="utf-8"
Content-Length: nnnn
<?xml version=’1.0’ ?>
<Envelope>
<Header>
.....
.....
</Header>
<Body>
<dispachOrderRequest>
<itemRefNumber>0010</itemRefNumber>
<quantityRequired>1</quantityRequired>
<customerlD>CB1</customerlD>
<chargeDepartment>ITSO</c hargeDepartment>
</disspatchOrderRequest>
</Body>
</Envelope>
Example of a simple SOAP Message
A SOAP message is an envelope containing zero or more
headers and exactly one body:
• The envelope is the root element of the XML
document, providing a container for control
information, the addressee of a message, and the
message itself.
• Headers contain control information, such as qualityof-service attributes. The body contains the message
identification and its parameters.
• Both the headers and the body are child elements of
the envelope element.
• The header tells who must deal with the message and
how to deal with it. When the actor is next , or when
actor is omitted, the receiver of the message must do
what the body says. Furthermore, the receiver must
understand and process the application-defined
<TranID>tag.
• The body tells what has do be done: Dispatch an order
for quantityRequired 1 of itemRefNumber 0010 to
customerID CB1 in chargeDepartment ITSO.
XML Descriptions
XML currently uses two systems for describing XML
documents
• XML DTDs (Document Type Definitions) are good for
describing document structure
• XML Schema are good for describing data types
Both may be needed
XML DTDs
XML DTDs (Document Type Definitions) are good for
describing document structure e.g.
• A book consists of a preface followed by one or more
chapters followed by an index
• A chapter is made up of one or more sections
• A section consists of text
The DTD for this is
<!ELEMENT book (preface, chapter+, index)>
<!ELEMENT chapter (section+)>
<!ELEMENT section (#PCDATA)>
XML Schema
Schema sind für Data Type Descriptions geeignet.
Beispielsweise kann der Data Typ für die Daten:
<age> 25 </age>
<height> 182.7 </height>
<color> blue </color>
mit dem folgenden Schema beschrieben werden:
<element name="age" type="positiveInteger"/>
<element name="height" type="float"/>
<element name="color">
<simpleType base="xsd:string">
<enumeration value="green">
<enumeration value="blue">
<enumeration value="brown">
</simpleType>
</element>
SOAP
Client
HTTP
MQSeries
XML
HTTP
Transport
SOAP
Pipeline
Request
Nachricht
Response
Nachricht
Message
Adapter
Web Services
und CICS
CICS
Business
Logic
CICS Server
Zum CICS Transaction Server gehört ein Simple Object
Access Protocol (SOAP) Message Adapter. Mit Hilfe von
Web Services kann auf neue oder existierende CICS
Anwendungen zugegriffen werden, die in einer beliebigen
Programmiersprache geschrieben sind. Dies geschieht
dadurch, dass eine XML-basierte SOAP Message in eine
COMMAREA abgebildet wird.
Die SOAP Request kann die CICS Anwendung entweder
über HTTP oder über WebSphere MQSeries aufrufen.
Weiterhin können CICS Anwendungen auf Web Services
zugreifen, die auf anderen Rechnern verfügbar sind. Diese
Einrichtung ist z.B. für Business-to-Business (B2B)
Anwendungen sinnvoll.
cs 1544 ww6
wgs 11-04
-
Schalter/
Kasse
Sachbearbeiter
Vertrieb
Kernanwendungssysteme
Wrapping
der Kernsysteme
Geschäfts
logik
Mandantensysteme
Externe
Systeme
und
Gateways
Front Office
Transaktionsverarbeitung
Datenbanken
Integrations-Layer
und Geschäftslogik
Processing
Anwendungsarchitektur in Front-Office (mit Präsentationslogik) und
Integrationsebene mit der Geschäftslogik sowie Processing mit der
Transaktionsverarbeitung, wird verwendet um bestehende
Kernanwendungssysteme durch den Integration-Layer zu wrappen
es 1403 ww6
wgs 07-02
Geschäftsprozess
Beispiel: Überweisung der Betriebsrente an 100 000
ehemalige Mercedes (Daimler-Chrysler) Mitarbeiter.
Komplexer Prozess: Viele Empfängerbanken, manche im
Ausland, unterschiedliche Währung, unterschiedliche
Steuerabzüge, Renten Erhöhungen und Kürzungen,
Lohnpfändungen, ..........
Viele einzelne Aktivitäten, die als Transaktionen ausgeführt
werden (short running transactions).
Ersatz der manuellen Ablaufsteuerung durch einen
Workflow Prozess.
STP - Fähigkeit (Straight-Through-Processing).
Transaktionsmaschine - Literatur
Joachim Franz, Wilhelm G. Spruth:
Reengineering von Kernanwendungssystemen auf Großrechnern.
Informatik Spektrum, Band 26, Nr. 2, April 2003, S. 83-93.
http://www.informatik.uni-leipzig.de/cs/pers/publish.html
Thomas Hornung: Entwurf und Implementierung einer transaktionalen Subworkflowsteuerung
Diplomarbeit, Fakultät für Informations- und Kognitionswissenschaften, Universität Tübingen
http://www-ti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html
Martin Schlodder: Datenzugriffsdienst für eine Transaktionsmaschine
Diplomarbeit, Fakultät für Informations- und Kognitionswissenschaften, Universität Tübingen
http://www-ti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html
Transaktionsmaschine
Joachim Franz, Wilhelm G. Spruth:
Reengineering von Kernanwendungssystemen auf Großrechnern.
Informatik Spektrum, Band 26, April 2003
es 1406 ww6
(es 3049 ww2000)
wgs 06-03
Aufteilung in Master Workflow und
Subworkflow
Fachliche Aktivitäten
A1: Auftrag fachlich prüfen
A2: Disposition für Auftrag prüfen
A3: Empfänger Banken bestimmen
A4: Ausführungszeiten bestimmen
A5: Zahlungspositionen, Konten, Bank, Land zusammenfassen
A6: Leitwege bestimmen
A7: Zahlungstransfer durchführen
A8: Zahlung fiskalisch verbuchen
A9: Auftrag archivieren und abschließen
Technische Aktivitäten
Subworkflow 1
T11: Auftragsprüfung auf Plausibilität
T12: Auftragsprüfung fachlich
T13: Status und Bestätigungsmeldung an Auftraggeber
Subworkflow 7
T71: Leitwegliste auf Vollständigkeit prüfen
T72: Zahlungstransfer vorbereiten
T731: Führe Transfer für Land x1 (z.B. USA) und Bank y1 aus
T732: Führe Transfer für Land x2 und Bank y2 aus
T732: Führe Transfer für Land x3 und Bank y3 aus
T74: Buchungsaufträge erstellen
Subworkflow 8
T81: Ergebnisauswertung des Zahlungsverkehrs
T82 Positionen fiskalisch verbuchen
es 1322
niu 07-00
Geschäftsprozess
Ein Geschäftsprozess ist die Definition eines Ablaufes und den
damit verbundenen Tätigkeiten, welcher zur Durchführung eines
Geschäftes (Auftrags) notwendig ist. Beispiele von
Geschäftsprozessen sind
Beantragung eines Kredites in einer Bank
Abwickelung einer Bestellung bei einem Versandhaus
Überweisung der Renten zum Monatsende an die Pensionäre eines
Automobilkonzerns
Fachliche Aktivität
Die einzelnen Verarbeitungsschritte eines Geschäftsprozesses
werden als fachliche Aktivitäten bezeichnet. Beispiele für fachliche
Aktivitäten in einem Versandhaus sind z.B.
• Plausibilitätsprüfung einer Bestellung
• Überprüfung ob die Bestellung aus dem vorhandenen
Lagerbestand befriedigt werden kann
• Ausstellen der Versandpapiere
• Rechnungsstellung
Technische Aktivität
Die Realisierung der fachlichen Aktivitäten in einer IT-Umgebung
werden als technische Aktivitäten bezeichnet. Hierbei kann eine
fachliche Aktivität auch durch eine Transaktion, bestehend aus
mehreren technischen Aktivitäten realisiert werden. Ein Beispiel ist
eine Transaktion, bestehend aus zwei Java Methoden, welche eine
Lastschrift und Gutschrift durchführen.
Workflow
Die Ausführung eines Geschäftsprozesses erfolgt durch das
serielle oder parallele Abarbeiten einer Reihe von fachlichen
Aktivitäten, wobei diese in der Regel als technische Aktivitäten
implement sind.
Werden die einzelnen technische Aktivitäten eines
Geschäftsprozesses durch eine IT-Umgebung unterstützt, spricht
man von Workflows. Transaktionale Workflows sind Workflows,
welche ACID (Atomicity, Consistency, Isolation, Durability)Eigenschaften auf Workflow-Ebene garantieren.
cs 1548 ww2k
wgs 06-06
Legacy-Systeme
Legacy-System ist ein Begriff zur Bezeichnung einer
"historisch gewachsenen Alt-Anwendung". In größeren
Unternehmen sind das häufig Individualentwicklungen, die
auf Großrechnern unter den z/OS und OS/390
Betriebssystemen ablaufen. In etwa 80 % aller Fälle sind
dies transaktionale Anwendungen, die unter
Transaktionsmonitoren wie CICS und IMS ablaufen.
Diese unternehmenskritischen Kernanwendungen sind
meist über Jahrzehnte entstanden und bilden das Erbe
mehrerer Generationen von Softwareentwicklern. Es wird
geschätzt, dass etwa 10 Millionen Mannjahre in die
Entwicklung von unternehmenskritischen OS/390Anwendungen unter CICS investiert wurden. Das bedeutet
eine Investition von etwa einer Billion US-Dollar in OS/390Anwendungssoftware unter CICS. Die meisten dieser
Programme sind in Cobol geschrieben. Die existierende
Menge an Cobol-Programmen besteht aus etwa 180
Milliarden Code-Zeilen mit einer jährlichen Zuwachsrate
von 5 Milliarden Code-Zeilen.
Beispiel: Große internationale Bank
Modernisierung aller Anwendungen
20 Mill. Zeilen Code für z/OS Cobol und PL/1
10 Mill. Zeilen Code für Unix und Windows Rechner
400 eigene Mitarbeiter im IT Bereich und 400 weitere
Fachkräfte von Fremdfirmen.
Jahresbudget 100 Millionen Euro.
Geschätzte Produktivität für Neuentwicklung:
2 000 Zeilen Code pro Programmierer und Jahr
Geschätzter Aufwand um alles neu zu machen:
15 000 Mannjahre
Kosten für die Modernisierung: 1 500 Millionen Euro
Zwei Fragen:
1. Sind die zusätzlichen Fachkräfte verfügbar
2. Haben wir nach Abschluss eine Verbesserung
erreicht?
cs 1549 ww2k
wgs 06-06
SOA
Service Oriented Architecture
Business Prozesse flexibel miteinander verbinden.
Hierfur sind Webservices
• SOAP
• WSDL
• UDDI
als Kommunikationsbausteine vorgesehen.
Existierende Anwendungen (Cobol and in Zukunft Java) als
Bausteine rekonfigurieren.
Business Prozesse flexibel and mit geringem Aufwand an
sich standig andernde Anforderungen anpassen.
SOA
Service Oriented Architecture
Web-Services sind derzeitig bei weitem der bevorzugte
Standard, um eine SOA zu erstellen und ein-zuführen, es
können aber auch andere Standardtechniken wie Corba,
COM und J2EE sein. Auch eine eigenentwickelte Technik
ist möglich. Bei SOAs dreht sich alles um das Teilen und
Verwalten der Services sowie der Prozesse und
Orchestrierungen, die auf die-sen Services aufsetzen.
Welche Technik eingesetzt wird, sollte davon abhängen
was gebraucht wird.
ESBs (Enterprise Service Bus) sind eine sehr mächtige
Technik, mit der sich über Web-Services-Schnittstellen
Informationen zwischen den Anwendungen bewegen
lassen. Geht es aber darum, eine bestimmte Dienstequalität
zu etablieren oder das Verhalten von Anwendungen zu
teilen, sind sie weniger geeignet. ESBs sind Teil einer SOA,
lie-fern aber keine "SOA-in-a-Box".
SOAs sind von Natur aus keineswegs hochskalierbar.
SOAs sind Konzepte, deren Skalierbarkeit von der
verwendeten Technik und Architektur abhängt. Werden
Services zu feingranular entworfen, bereitet die
Skalierbarkeit der Lösung vermutlich Probleme. Anwender
müssen daher zuerst die SOA richtig entwerfen, die
Eigenschaften ihrer Bestandteile verstehen und die
passende Technik und Entwicklungsplattform finden.
Enterprise Service Bus
In an ESB there is no direct connection between the
consumer and provider. Consumers access the ESB to
invoke services and the ESB acts as an intermediary,
passing the request to the provider using the
• appropriate protocol,
• transport and
• interaction pattern
for the provider.
This enables the ESB to shield the consumer from the
infrastructure details of how to connect to the provider.
The ESB should support several integration mechanisms
all of which could be described as invoking services
through specific addresses and protocols, even if in some
cases the address is the name of a CICS transaction and
the protocol is a J2EE resource adapter integrating with the
CICS Transaction Gateway.
Business Process Execution Language
BPEL
Die Business Process Execution Language, kurz BPEL, ist
eine XML-basierte Sprache zur Beschreibung von
Geschäftsprozessen, deren einzelne Aktivitäten durch
Webservices implementiert sind.
Die im Jahr 2002 von IBM, BEA und Microsoft eingeführte
Sprache wird dabei zur Beschreibung von so genannten
Webservice-Orchestrierungen verwendet. Die
Beschreibung selbst wird ebenfalls in Form eines
Webservice bereitgestellt und kann als ein solcher
verwendet werden.
Durch die Abstraktion mittels BPEL kann die Schnittstelle
eines Webservice, der die an einem Prozess beteiligten
Web Services steuert, beschrieben werden –
beispielsweise in welcher Reihenfolge Nachrichten
eintreffen müssen
Ausführbare BPEL-Prozesse können auf einer
Workflowmaschine zum Einsatz gebracht werden (engl.
deployed) und sind durch sie ausführbar. Abstrakte
Prozesse dienen der Beschreibung des Verhaltens des
Prozesses („behavioral interface“). Sie werden als Sicht auf
einen ausführbaren Prozess verwendet und dienen dazu,
das interne Verhalten des Prozesses zu verbergen.
OS/390
Java Class
Servlet
DB2
WebSphere
Native Driver
JVM
JDBC, DB2Connect Driver
Java Class
ProduktionsUmgebung
Servlet
WebSphere
Arbeitsplatz
Rechner
Produktion
JVM
Middle Tier Rechner
export
Repository
Entwicklungsumgebung
Arbeitsplatzrechner
Entwicklung
Trennung zwischen Entwicklung und Produktion
es 1381 ww6
wgs 03-02
WebSphere Studio Developer for
zSeries (WDz)
WebSphere Studio Enterprise Developer (WSED)
Eclipse-based integrated development environment (IDE)
for developing enterprise-level, multi-tier applications
WebSphere Studio Enterprise Developer builds on Rational
Application Developer (RAD/WSAD). It offers features to
support Struts-based Web application development and
features to mordernize legacy enterprise systems.
Extends access to z/OS systems from the workstation
• EGL to create COBOL/CICS/JFace Multi-tier apps
• Supports a project structure for building zOS
applications in COBOL, PLI, Assembler
• Supports TSO/Batch, CICS, IMS, DB2 environments
• DB2 Stored Procedures – COBOL, PLI, Java, SQL
• Enables COBOL applications for SOA via XML
enablement
WSED beinhaltet in der Workbench die Tools, um PL/1- und
COBOL-Programme zu entwickeln, zu pflegen und remote
auf dem Host zu compilieren und zu debuggen.
WebSphere Developer zSeries
Rational Application Developer
Rational Web Developer
Eclipse
WDz Plug-in for Eclipse
Rational Web Developer
• Web Development
• Web Services Development
• Rich Client Development
Rational Application Developer
• J2EE und EJB Development
• Component Testing
• Code Review und Runtime Analysis
• UML Visual Editors
WebSphere Developer for zSeries (WDz)
• z/OS Application Development
• XML Services for z/OS
• BMS Map Editor
• CICS Application Development, Cobol, PL/1 and Java
• Stored Procedure Development, Cobol, PL/1 and Java
Web
Sphere
Clients
XP,
Linux
Backend
Application
Unix
z/OS
Production
Production
Die Überführung einer neuen Anwendung
von der Test Umgebung in die Produktion ist
ein komplexer und aufwendiger Prozess
Client
Web
Sphere
XP,
NT
Linux
Unix
z/OS
Test
Test
Production
Library
Test
Library
Repository
XP,
Linux
Development
Machine
1. Compile C oder Cobol Code
2. Link
Templates
Linkage Table
Options
Load Module
3. Test
Überführung von der Entwicklung
in die Produktion
es 0803 ww6
wgs 07-00
Client/Server Praktikum
WS 2007/2008
Prof. Dr.-Ing. Wilhelm G. Spruth
Es werden die folgenden Aufgaben bearbeitet:
1.
2.
3.
4.
5.
6.
7.
CORBA
Java RMI und RMI / IIOP
Programmierung unter OS/390 mit ISPF
CICS BMS Transaktion - Zugriff auf eine DB2 Datenbank
Eclipse Java Servlet JDBC und DB2 Connect
MQSeries und DB2 Zugriff
Optiom zwischen mehreren Aufgaben:
• Java Client Zugriff mit MQSeries auf CICS
COMMAREA
• Java Client Zugriff mit CTG auf CICS COMMAREA
• Programmieren mit WebSphere Studio Developer
Die Vorlesung Client/Server Systeme ist als Wahlfach
innerhalb der Technischen Informatik zugelassen, und
kann mit 2 Stunden in den Prüfungsplan Technische
Informatik aufgenommen werden.
Das Praktikum kann im Rahmen der Fachprüfung
Technische Informatik in den Prüfungsplan mit 4 SWS
aufgenommen werden.
Anmeldung für das Praktikum bei Frau Reimold, Lehrstuhl
Prof. Rosenstiel
cs 1602 ww6
wgs 06-02
Studienarbeiten
Diplomarbeiten
Wir bieten laufend Studien- und Diplomarbeiten zu
aktuellen Themen an. Schwerpunkt ist die Nutzung des
z/OS Rechners in einer Internet Umgebung. Beispiele aus
jüngster Vergangenheit sind :
• Untersuchungen zur Transaktionssicherheit von Java
Anwendungeen
• Entwicklung neuartiger Algorithmen für den z/OS
Work Load Manager
• Funktionen unter WDz
Einige Beispiele sind zu finden unter: http://wwwti.informatik.uni-tuebingen.de/~spruth/DiplArb/index.html
Mehrere Arbeiten haben in der Vergangenheit zu
Fachveröffentlichungen in wissenschaftlichen Zeitschriften
geführt (siehe http://www-ti.informatik.unituebingen.de/~spruth/publish.html)
Arbeiten können am Institut für Informatik oder extern bei
Partnern in der Wirtschaft angefertigt werden
(z.B. IBM Forschung und Entwicklung Böblingen).
Kontaktaufnahme:
[email protected]
Tel.: 0172-8051-485
oder über den Lehrstuhl Prof. Rosenstiel / Frau Reimold
cs 1604 ww6
wgs 06-99
Client/Server Systeme
Beispiele für Prüfungsfragen
Unterschied zwischen Sockets und Ports.
Überblick über die Struktur eines einfachen Socket Programms.
Wie findet ein Socket Programm seinen Server?
Was ist ein RPC. Ist er (normalerweise) asynchron oder synchron?
Funktion der Stubs und Skeletons.
Problem des Copy by Restore.
Bei der Erstellung eines Remote Procedure Calls wird die Schnittstelle zum
Server mittels einer Interface Definition Language beschrieben. Die
Beschreibung wird mittels eines RPCGEN bzw. IDL Compilers verarbeitet.
Wieso ?
Was macht man, wenn der Klient eine Little Endian und der Server eine Big
Endian Datendarstellung verwendet. Bei Sockets? Beim RPC? Was sind XDR
und ASN.1? Treten die hier angesprochenen Probleme auch bei CICS DPL
auf ? Bei CORBA? Bei Java RMI? Wodurch unterscheidet sich ASCII von
EBCDIC?
Unterschied zwischen symmetrischen (z.B. DES) und asymmetrischen (z.B.
RSA) Chiffres.
Wie funktioniert eine digitale Unterschrift?
Was ist ein Message Digest? Wozu wird es benötigt?
Aufgabe eines Key Distribution Servers. Konzept des Kerberos
Authentifizierung Prozesses.
Was sind Ipsec, Secure Socket Layer und Pretty Good Privacy?
Was sind Access Control Listen und Capabilities? RACF?
Unterschied zwischen einem Schicht 3 und einem Schicht 7 Firewall.
Unterschied zwischen einem Namensdienst (z.B. DNS) und einem
Verzeichnisdienst (z.B. X.500, LDAP). Gibt es so etwas auch unter CORBA?
Unter Java RMI ?
Was sind die ACID Eigenschaften bei der Transaktionsverarbeitung? Können
Transaktionen parallel (multithreaded) verarbeitet werden? Probleme?
Was sind Stored Procedures, im Gegensatz zu einem Transaktionsmonitor?
Warum brauchen wir Locks (Sperren) in der Transaktionsverarbeitung?
Was sind „Logical Units of Work“ (LUW) und Sperrpunkte (SyncPoints)?
2-Phase Commit Protokoll. Was ist es? Warum braucht man es?
Können Sie mit den Begriffen CICS (Customer Information Control System)
und 3270 Protokoll etwas anfangen?
Was sind Conversational und Pseudo-conversational Transactions? Was ist
eine Session? Wie wird der State einer pseudoconversationalen Transaktion
gehalten?
Der RPC arbeitet (normalerweise) synchron. Sind auch asynchrone
Client/Server Systeme denkbar? (Stichwort:Message oriented Middleware).
Unterschied zu e-Mail?
Wie spielen Servlets und Java Server Pages zusammen um HTML
Bildschirminhalte zu erzeugen. Ist ein Servlet eine Java Klasse? Ist eine JSP
eine Java Klasse? Können beide mit einer URL aufgerufen werden? Wozu
dient ein Form Tag ?
Was ist ein Web Application Server? Was sind Enterprise Java Beans?
Unterschied zwischen Entity, Message und Session Beans? Wie speichern
erstere und letztere ihre Daten?
Wie verteilt ein Web Application Server seine Last auf mehrere Prozessoren?
Welche Probleme will man mit CORBA lösen? Was ist die Aufgabe eines ORB?
Aufgabe des CORBA IDL Compilers. Warum braucht man ihn? Was ist
überhaupt eine „Interface (Schnittstelle)“? Gibt es so etwas auch beim RPC ?
Aufgabe des Schnittstellen (Interface) Repositories und des Implementation
Repositories.
Alternativen zu CORBA. Haben CORBA, RMI und DCOM ähnliche Funktionen?
Welches Problem versucht man mit RMI over IIOP zu lösen?
Gibt es außer TCP/IP noch andere Transport Protokolle?
Client/Server Systeme unter OS/390. Können Java Programme auf CICS
zugreifen? CORBA Programme? Der CICS Basic Mapping Support hat eine
begrenzte Funktionalität. Was sind die Alternativen ( COMMAREA, CICS
Transaction Gateway?)
Was sind Connectoren, und die Java J2EE Connection Architecture?
Was versteht der Java J2EE Standard unter einem Enterprise Information
System. Kann ein solches auch in Java erstellt werden ? Probleme ?
Was sind Web Services ? Sind sie objektorientiert ? Was ist SOAP ? Was ist
WSDL ?
Wenn Web Servies und SOAP als Remote Procedure Call eingesetzt werden,
gibt es hier auch eine IDL ?
Was ist ein Integrated Development Environment (IDE) ? Was ist Eclipse ? Was
ist WDz ?
Praktikum
Wenn das Praktikum Teil des Prüfungsumfangs ist, wird der Inhalt der
Aufgaben diskutiert. Es wird erwartet, dass Sie sich an den Inhalt der Übungen
erinnern und diskutieren können. Beispielsfragen sind :
Was ist eine CICS Group? Wozu braucht man sie ? Was bewirkt das CICS
SENDMAP Statement?
Wie wird der Speicherplatz in einer DB2 relationalen Datenbank angelegt?
Angenommen, ein Servlet läuft unter WebSphere. Welchen Unterschied gibt es,
wenn WebSpere auf einem getrennten Middle-Tier Rechner oder in einem
virtuellen Adressenraum unter OS/390 bzw. z/OS läuft ?
Was sind Unix System Services unter OS/390 bzw. z/OS ? Was ist der
Unterschied zu Linux, angenommen Linux wird als reines Server
Betriebssystem eingesetzt ?
Was ist eine MQSeries Queue, ein Queue Manager und ein Message Queue
Channel?
Unterschiede zwischen JDBC, SQLJ und DB2Connect.
Wie funktioniert das CICS Transaction Gateway ?
cs 1603 ww6
wgs 06-99
Herunterladen