Client/Server-Systeme - Technische Informatik

Werbung
Client/Server-Systeme
Prof. Dr.-Ing. Wilhelm G. Spruth
WS 2008/2009
Teil 13
z/OS Internet Integration
cs 1100 ww6
sch 05-97
z/OS Internet Integration
Unternehmenskritische Anwendungen und
Datenbank-Prozesse laufen in der Regel auf einem
zentralen Server. In mittleren und großen
Unternehmen und Organisationen ist dies in der
Regel ein z/OS 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.
Die Wertschöpfung der IT Industrie beträgt etwa 3 %
des Bruttosozialproduktes
• etwa 60 Mrd. € in Deutschland
• etwa 300 Mrd. $ in den USA
Davon etwa 2/3 – 3/4 traditionelle Infrastruktur in der
Wirtschaft und öff. Verwaltung
etwa 1/4 - 1/3 emerging markts
(Computer Games, Google, ...)
Trends
1. Rezentralisierung
2. evolutionäre Integration der existierenden
Infrastruktur in das Internet.
1. Schritt
2. Schritt
Benutzeroberflächen anpassen
neuartige Möglichkeiten nutzen.
„ Never change a running system“
Presentation
Business
Logic
DatenbankProzeß
z.B. Oracle,
DB2
AnwendungsProzeß
PC
Registrierkasse
Geldausgabeautomat
Business- und Präsentationslogik
Ein sauber strukturiertes CICS Programm besteht aus zwei Teilen:
Business Logik und Präsentations-Logik.
Business Logik ist der Teil, in dem Berechnungen erfolgen und
Daten in einer Datenbank gelesen/geschrieben werden.
Präsentations- Logik ist der Teil, in dem die Ergebnisse der
Berechnungen so aufgearbeitet werden, daß sie dem Benutzer in
einer ansprechenden Art auf dem Bildschirm dargestellt werden
können.
Business Logik wird in Sprachen wie C, C++, COBOL, PL/1, Java
usw. geschrieben.
Für die Präsentations - Logik gibt es viele Möglichkeiten. Die
modernste Alternative benutzt Java Server Pages und einen Web
Application Server um den Bildschirminhalt innerhalb eines Web
Browsers darzustellen.
Die älteste (und einfachste) Alternative verwendet das CICS BMS
(Basic Mapping Support) Subsystem. BMS Programme werden in
der BMS Sprache geschrieben.
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
TN3270
EPI
Character
User Interface
graphische
User Interface
(eingeschränkt)
graphische
User Interface
(uneingeschrä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).
CICS virtueller
Adressenraum
andere virtuelle
Adressenräume
CICS Anwendungen
Presentatiom Logik
Terminal
Control
Task
Control
Business Logik
Program Storage
File
Control Control Control
CICS
Nucleus
TCT
PCT
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
Login to Secure Site
Username:
Password:
Submit
Clear
HTML Form
<HTML>
<HEAD><TITLE> Login </TITLE> </HEAD>
<BODY>
<H2>Login to Secure Site</H2>
< FORM METHOD=POST
ACTION="http://abc.de/servlet/xyz.servlet" >
Username: <INPUT TYPE="TEXT" NAME="username"
SIZE="25"><BR>
Password: <INPUT TYPE="PASSWORD"
NAME="password" SIZE="25"><P>
<INPUT TYPE="SUBMIT" VALUE="Submit">
<INPUT TYPE="RESET" VALUE="Clear">
</FORM>
</BODY> </HTML>
cs 1523 ww6
wgs 04-03
HTTP
HTML
WEB
Browser
WEB
Browser
WEB
Server
CGI
Programm
SQL
WEB
Browser
(WEB) Application Server
Datenbank
Server
Dynamischer WEB Seiten Inhalt (1)
Der Web Browser kommuniziert mit dem Web Server über das
HyperText Transfer Protokoll (HTTP). HTTP ist das ursprüngliche
Transport Protocol für das World Wide Web.
Zwei Alternativen:
1. Web Server sendet statische Seite aus der HTML Datenbank an
den Web Browser.
2. Web Server erstellt dynamische Seite. Hierzu ruft er z.B. über die
CGI Schnittstelle ein Anwendungsprogramm auf. Dieses kann
z.B. Daten aus einer Datenbank verwenden, um eine dynamische
HTML Seite zu erstellen. 60% aller derartigen Daten werden in
z/OS Datenbanken gehalten.
CGI Programme werden häufig in einer Script Sprache, z.B.
PERL, PHP, REXX oder TclL/Tk erstellt, können aber auch in einer
beliebigen anderen Sprache, z.B. C++, Cobol oder Java
geschrieben werden.
cs 1414 ww6
wgs 03-00
HTML
WEB
Browser
WEB
Browser
WEB
Server
Java
Servlet
SQL
JDBC
WEB
Browser
(WEB) Application Server
Datenbank
Server
Dynamischer WEB Seiten Inhalt (2)
Im Gegensatz zu CGI erfordert das Java Servlet nur light
weight Context Switches. Daher deutlich besseres
Leistungsverhalten.
Servlets verfügen über alle Java API´s, einschließlich JDBC
(Java Data Base Connectivity).
Java Server Pages (JSP) sind eine Erweiterung der Servlet
API. Verwenden in Java geschriebene XML - ähnliche Tags
und Scriplets.
cs 1415 ww6
wgs 03-00
Servlet Container
Ein Servlet ist eine reguläre Java Klasse, die über
extends HttpServlet die Servlet Eigenschaften erbt, und nur
in einer Servlet Laufzeitumgebung ausführbar ist. Die
Servlet Laufzeitumgebung wird auch als Container oder
Servlet Engine bezeichnet.
Ein Servlet Container ist ein Programm innerhalb einer
Java virtuellen Maschine (JVM), das Requests für Servlets
und Java Server Pages (JSP) behandelt. Der Servlet
Container ist verantwortlich für:
•
•
•
•
Erstellung von Servlet-Instanzen,
Initialisierung von Servlets,
Dispatching von Requests,
Verwaltung des Servlet-Kontextes für die Nutzung durch
die Web-Anwendungen.
Servlet Container haben keine Transaktions-, Persistenceund Sicherheitseigenschaften. Sie verbessern u.a. die
Servlet-Ausführungszeit.
es 1165 ww6
wgs 05-02
HalloWeltServlet.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public
class HalloWeltServlet extends HttpServlet
{
public final static String message = "<html>\n" +
"<head><title>Hallo Welt
</title></head>\n" +
"<body>\n" +
"<h1>Hallo Welt</h1>\n" +
"</body></html>\n";
public void init()
{
System.out.println("In HalloWeltServlet init");
}
public void destroy()
{
System.out.println("In HalloWeltServlet destroy");
}
public void service(ServletRequest req, ServletResponse
res)
throws ServletException, IOException
{
PrintWriter out = res.getWriter();
out.println(message);
}
}
Java Server Pages (JSP)
Java Server Pages sind in der Java Programmiersprache
geschrieben.
Benutzen XML-artige Tags und Scriplets
um die Logik zu kapseln, die den Inhalt der Seite generiert.
Alternativ kann die Anwendungslogik woanders liegen, und
die Java Server Page greift hierauf mit den Tags und
Scriplets zu.
Trennung der Seiten-Logik vom Seitenentwurf und der
Seitenwiedergabe.
xyz.html
hello.html
hallo.jsp
get /hallo.jsp
Web
Server
Servlet
Engine
Einfache Java Server Page
Den folgenden Text in einer Datei mit der .jsp extension
speichern ( z.B. hallo.jsp) und mit einem Browser ansehen:
<html>
<head>
<title>JSP Example </title>
</head>
<body>
<%= new java.util.Date() %>
</body>
</html>
Die Zeichenfolgen <% und %> schließen Java Ausdrücke
ein. Diese werden zur Run Time ausgewertet.
Mit dem Ausdruck <%= new java.util.Date() %> wird die
gültige Zeit bei jedem Reload der HTML Seite in den
Browser wiedergegeben.
Web Server
Servlet Container
Browser
Request
Servlet
Call Page
Response
Java
Server Page
Web Application
Server
Interaktion Servlet - JSP
Es ist durchaus möglich, innerhalb eines Browsers
eine .jsp Seite mittels ihrer URL direkt aufzurufen.
Üblicher ist der Aufruf eines Servlets mittels eines
Form Tags. Das Servlet wiederum ruft eine Java
Server Page auf, welche die Ausgabedaten erzeugt.
Browser
HTML
Page
(Form )
Web Application Server
Servlet
call
HTML
Page
(Ergebnis)
JSP
prepare Bean
Bean
DB2
access Bean
Nutzung von Java Beans
Ein Servlet ist ein Java Programm, das Bildschirm Output
in der Form einer HTML Datei produziert.
Eine JAVAServerPage ist eine HTML Seite mit zusätzlichen
JSP Tags.
Wird eine JSP Seite aufgerufen, so kompiliert sie ein JSP
Übersetzer in ein Servlet.
In der Praxis: Servlets und JSP werden von verschiedenen
Leuten erstellt (Model-View-Controller Ansatz). Eine JSP ist
zwar eine vollwertige Java Komponente, aber der Java
Code Anteil innerhalb der JSP wird in der Regel auf ein
Minimum reduziert.
Es existieren (wie für HTML Seiten) spezielle Werkzeuge für
das Erstellen von JSP´s, die das Hand-coding von HTML
Statements automatisieren.
Architektur einer JSP Web
Anwendung
Architektur einer JSP Web
Anwendung
1. HTML page: static or dynamic HTML page, created from a previous step,
contains one or multiple forms that invoke a servlet for processing of the next
interaction.
2. Servlet gets control from the Application Server to perform validation and
control of flow; sets up and calls command beans that perform the business
logic.
3. Command beans control the processing of the business logic; logic may be
imbedded in the command bean, or it can be delegated to back-end or
enterprise systems, such as relational databases, transactions systems (CICS,
MQSeries, IMS, and so forth); command bean may perform one specific
function or it may contain many methods, each for a specific task (task
wrappers). Command beans invoke database and transaction systems using
„connectors“.
4. Results of command beans (or back-end systems) processing are stored in
data beans. Data beans could contain an SQL result or a CICS communication
area (COMMAREA).
5. View beans provide the contract between the output producing JSPs and the
data beans that contain the dynamic data to be displayed in the output; servlet
initializes the view beans and registers them with the request block so that the
JSPs can find them.
6. Servlet calls a JSP for output processing and formatting depending on the
results of the command beans; JSPs generate the output for the browser.
7. JSP use tags to declare the view beans and get access to all the dynamic
data that must be displayed in the output.
8. View beans contain one or multiple data beans and provides tailored
methods so that the JSP has access to the data stored in the data beans; data
beans may not provide the necessary methods for a JSP to access the data.
9. JSP assembles the output and sends it back to the browser as an HTML
page with dynamic data; in many cases, that output again contains form(s) to
enable the user to continue the dialog with the application.
Servlet is the controller
Command beans provide the model
JSP is the view
Enterprise Java Beans (EJB)
Java basiertes Server Komponentenmodell, März 1998. Teil
der J2EE-Architektur. Version 3.0 verfügbar seit Februar
2005.
• EJB Komponenten sind serverseitige Komponenten, die
ausschließlich in Java geschrieben sind. EJB
Komponenten enthalten nur Business Logik, keine
Präsentationslogik und keine Systemfunktionen.
• EJBs sind in einen „Container“ eingebettet
(Laufzeitumgebung). Die EJB Architektur ist inhärent
transaktionsorientiert,
distributed,
portierbar,
multi-tier,
scalierbar und
sicher.
• EJB Komponenten werden declarativ (über einen
Deployment Descriptor) zur Laufzeit angepaßt. Die
Anpassung bezieht sich auf Transaktionsverhalten,
Sicherheitseigenschaften, life-cycle und state
management und Persistenz.
Der J2EE (Java 2 Platform, Enterprise Edition) Standard
kombiniert Technologien wie Servlet, JSP, EJB, JTS, JMS,
JCA und den JDK.
Enterprise Java Beans (EJB)
EJB
EJB
EJB
EJB
EJB
EJB
EJB
EJB
Container
(andere Bezeichnungen:Laufzeitumgebung,
Framework, Object Transaction Monitor - OTM)
EJB Dienste
JTS
JIDL
JNDI
JMS
JMAPI
JDBC
Enterprise Java Beans sind Java Beans mit erweiterter
Funktionalität. Dies sind unter anderem
• JTS
Java Transaction Service
• JNDI Java Naming directory Interface
• JMS Java Messaging Servics
• JDBC Java Data Base Connectivity
• JMAPI Java Management API
• JIDL Java interface definition language
HTML
JVM
Web
Server
Servlets
JSPs
EJBs
SQL
HTTP
Server
Servlet
Container
EJB
Container
Backend
Java Application Server
Browser
Web Application Server
Datenbank
Server,
alternativ
CICS, etc.
Application Server Hierarchie
Der Web Application Server ist ein Prozess, der normalerweise in
seinem eigenen virtuellen Adressenraum läuft. Er besteht aus
mehreren Komponenten:
1. Der Web Server ist vielfach Apache.
2. Der Java Application Server unterhält u.a. eine Java Virtuelle
Maschine
3. Der Servlet Container (Servlet Engine) ist eine Java Laufzeit
Umgebung (runtime component) für die Ausführung von Servlets
und Java Server Pages.
4. Der EJB Container ist eine Laufzeit Umgebung für die
Ausführung von deployed Enterprise Java Beans.
cs 1485 ww6
wgs 06-00
remote
Object
Methode
JVM
Klient
JVM
Server
Java Distributed Object Model
Die Methoden eines remote objects is können von
einer anderen Java Virtual Machine aufgerufen
(invoked) werden. Diese JVM kann sich auf einem
anderen Host befinden. Ein Object dieser Art wird
durch eine oder mehrere remote interfaces
beschrieben. Dieses sind Java Interfaces, welche die
Methoden des Remote Objects deklarieren.
Mit Hilfe der Remote method invocation (RMI) wird
eine Methode einer remote Interface eines remote
Objects aufgerufen.
Der Methoden Aufruf eines remote Objects hat die
gleiche Syntax wie der Methoden Aufruf eines
lokalenremote Objects.
http://www.seas.upenn.edu/~bcpierce/courses/629/jdkdocs/guide/rmi/spec/rmiTOC.doc.html
f:\grx\05bis08\java\rmi01
JVM
JVM
Client
Stub
Server
Java
Remote
Message
Protokoll
Remote Reference
Skeleton
Remote Reference
JRMP
Transport
Transport
TCP/IP
Remote Method Invocation (RMI)
Client/Server-API für den Aufruf von Java
Programmen auf geographisch entfernten Rechnern
• Normalfall für Java: Es werden nur Methoden von
Objekten innerhalb der gleichen JVM aufgerufen.
• Objekte in einer lokalen JVM können Methoden
von Objekten in einer entfernten JVM mit Hilfe von
RMI aufrufen.
• Diese JVMs können auf verschiedenen Rechnern
im Netz laufen.
• Realisierung: Erzeugen eines Stellvertreters
(Client-Stub) des entfernten Objekts in der lokalen
JVM. Dieser kommuniziert mit dem Skeleton des
entfernten Objektes.
cs1176 ww6
wgs 05-01
RMI/IIOP
RMI over IIOP
RMI wird nach und nach durch RMI/IIOP ersetzt.
Vorteil:
• Nicht-Java Klienten (z.B. C++ Objekte) können
ebenfalls Java Objekte aufrufen
• Besseres Leistungsverhalten
Nachteil:
• Einige Java/RMI Funktionen fehlen
EPI
OS/390
Screen Scraping
3270
BMS
Front End
ECI
Browser
Web
JSP
Appl. Servlet
Server EJB
CICS
HTTP
Browser
Web
MQ
Series
Server Server
HTTP
MQSeries
CICS
Bridge
TCP/IP
CICS Klienten Anbindung
EPI
Die BMS Maps werden weiter verwendet. Keine
Änderung der Information, die auf dem Bildschirm
wiedergegeben wird. Die Darstellung der
Information kann geändert werden.
ECI
Die Presentation Service Komponente von CICS
(BMS) wird nicht genutzt. Direkter Zugriff auf
COMMAREA.
MQSeries
es 1021 ww6
Asynchrone Übertragung durch
Message oriented Middleware
wgs 07-00
Presentation
Business
Logic
DatenbankProzeß
z.B. Oracle,
DB2
Anwen dungsPro zess
PC mit Browser
Registrierkasse
Geldausgabeautomat
Konnector-Schnittstelle
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.
Konnektoren sind Software Bausteine, welche eine
Schnittstelle zu existierenden Enterprise Information
(Legacy) Systemen bilden. Beispielsweise sind folgende
Konnektoren für den WebSphere Appl. Server verfügbar:
o
o
o
o
o
o
o
o
o
JDBC, SQLJ
DB2
Oracle
Adabas
CICS
IMS
MQSeries
SAP R/3
Lotus Domino
JDBC
Connector
Java
Programme
SQLJ
Connector
z/OS
DB2
DB2Connect
Connector
Linux oder Win XP Rechner
z/OS Rechner
Unterschiedliche Konnektor Arten
JDBC ist von ODBC abgeleitet, implementiert dynamische
Datenbankzugriffe
SQLJ implementiert statische Datenbankzugriffe
DB2Connect ist ein für die DB2 API optimierter Connector
J2EE Connector Architecture
JCA
Standard Achitektur für die Integration von
existierenden Business Logik Komponenten :
Wichtigste Bestandteile der Architektur sind:
• JCA Konnektoren, als Resource Adapter (RA)
bezeichnet
• Common Client Interface (CCI)
Ein Beispiel ist der JDBC driver für die Verbindung
zu einer relationalen Datenbank.
Für CICS existieren:
• ECI resource adapter (für COMMAREA Zugriff)
• EPI resource adapter
Das CICS Transaction Gateway (CTG) enthält
• ECI Resource Adapter,
• EPI Resource Adapter und
• CCI,
sowie weitere Zugriffsmechanismen außerhalb 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
Browser
C
O
M
M
A
R
E
A
CTG
Web
Application
Server
CICS
Anwendung
3270 PräsentationsLogik
CICS Region
CICS Transaction Gateway
Das CICS Transaction Gateway (CTG) ist eine von mehreren
verfügbaren CICS Client Implementierungen. Es ermöglicht die
Reduzierung der Klienten Funktionalität auf einen regulären Web
Browser.
Als 2-Tier oder 3-Tier Konfiguation verfügbar
Vorteile der 2-Tier Konfiguration:
• Kein SNA (TCP/62 oder TN3270))
• Keine Sicherheitsprobleme zwischen Tier 2 und Tier 3
• Administration/System Management
Nachteile der 2-Tier Konfiguration:
• 3-Tier ist quick and dirty
• Performance/Kosten
• Produktionsumgebung anders als Entwicklungsumgebung
es 1313 ww6
wgs 11-00
1
3
4
5
6
z/OS
z/OS
Web Appl.
Server
2
Servlet Engine
JVM
CTG Methoden
4
5
6
Anwendung
CICS Region
CICS Transaction Gateway
es 1385 ww6
wgs 07-02
Managed Environment
CCI und Resource Adapter sind als Java Klassen
implementiert. Sie können von einer Java
Anwendung alleinstehend benutzt werden ( nonmanaged 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.
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
Java Cryptography Architecture
The Java Cryptography Architecture (JCA) defines
the contracts between the application, the connector
and the application server where the application is
deployed.
The application has a component called the
resource adapter. This is contained within the
application code handling the interface to the
connector which the application developer creates.
From a programming perspective, this means that
the programmer only has to use a single unified
interface with which they can obtain data from the
EIS. The resource adapter will take care of
abstracting out the different elements and provide
the programming model that is independent of the
actual EIS behavior and communication
requirements.
Java als zukünftige universelle
Programmiersprache ?
CICS Region (Adressenraum)
andere
Regions
CICS JVM
CICS Cobol
PL/1 oder C++
Anwendung
CICS
Java
Anwendung
EXEC CICS
Commands
JCICS
Library Calls
Comnd.
Library
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.
Anwendung verwendet normale Java Klassen, 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/IIOP
CICS
EJB Server
Servlet
RMI/IIOP
Session Bean
Session Bean
Session Bean
RMI/IIOP
WebSphere
DB
Benutzung von Enterprise Java Beans
in einer CICS Anwendung
Jens Müller:
Anwendungs- und Transaktionsisolation unter Java
http://www-ti.informatik.unituebingen.de/~spruth/DiplArb/index.html
Enterprise
Information
System
Neue
Dienste
Oracle
DB2
WAS
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 1520 ww6
wgs 06-00
Was ist ein Webservice?
Im Prinzip ein Service, den man über ein Standard
Internet Protokoll (wie z.B. SMTP, FTP und andere)
aufrufen kann
Gemeint ist aber eher ein Service der über http mit
dem Simple Object Access Protocol (SOAP)
aufgerufen wird.
SOAP ist eine XML Definition
Das Simple Object Access Protocol ist allerdings
weder simple noch Objekt-orientiert. Deshalb
benutzt man heutzutage nur noch den Begriff SOAP,
nicht aber mehr den Begriff "Simple Object Access
Protocol“.
Web Services (1)
Beispiel Yahoo Portal
Die meisten Dienste kommen in Wirklichkeit von
anderen Web Sites: Reisen, Wetter, Landkarten, oder
Web Suche mit Hilfe von Google. Diese Dienste sind
in das Yahoo Portal als eigene Dienste integriert.
Web-Services sind eine Schnittstellen-Technologie.
Typische Motive der Gestaltung von Schnittstellen
sind:
• das Verbergen komplexer Strukturen hinter einer
Verschalung, die abstrakter und einfacher
strukturiert sowie bequemer nutzbar ist
• die Kopplung interagierender Systeme über
technische Hindernisse hinweg.
Web Services Technologien
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 Anforderungs- und Antwort- Nachrichtenströme,
mit denen Funktionsaufrufe an andere ProgrammModule abgesetzt werden.
UDDI ist ein XML Dienstekatalog (vergleichbar mit
einer XML Version von LDAP). 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).
Funktionsvergleich
Was ist ein Webservice?
Sun oder DCE
RPC
Transport Protokoll
beliebig
z.B. Sockets
Web
Services
SOAP
Daten
Repräsentation
XDR, ASN.1
XML
Interface
Definition
IDL
WSDL
Namensdienst
Directory Dienst
DNS, X.500
LDAP
UDDI
cs 1548 ww2k
wgs 06-06
Airbus besteht aus 8 Mill. Teilen
Jens Müller, Mai 2007
-
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
Mandantenfähigkeit
es 1403 ww6
wgs 07-02
Transaktionsmaschine
Beispiel: Überweisung der Betriebsrente an 100 000
ehemalige Mercedes (Daimler-Chrysler) Mitarbeiter.
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
Michael Herrmann
Service-Orientierte Architektur:
Identizierung äquivalenter Services in
Form semantischer semiautomatischer
Unterstützung des EMEO-Layers
Prüfungstermine
Montag, 2. März und
Mittwoch, 25. März
Client Server Praktikum
im SS2009, Kickoff vermutlich am Dienstag,
21.4.2009
Einschreibung bei Frau Reimold, Sekretariat
Prof. Rosenstiel
Viel Erfolg für Ihr weiters Studium
und Ihre berufliche Karriere !
Herunterladen
Explore flashcards