Transaktionsverarbeitung mit Java

Werbung
Client/Server-Systeme
Prof. Dr.-Ing. Wilhelm G. Spruth
SS 2004
Teil 17
Transaktionsverarbeitung mit Java
cs 1100 ww6
sch 05-97
Connector
IF
WEB
Browser
HTML
Enterprise
Java
Bean(s)
WEB
Server
Java
Servlet(s)
CICS,
andere
DB2
Application Server
WEB Application Server
OS/390
Server
Web Application Server als
Presentation und Integration Server
cs 1474 ww6
wgs 01-01
B
PM
EP
XI
BI
W
AB
AP
JA
VA
JV
M
WD
J
WD
A
Ablaufumgebung
Web Application Server
(WAS)
NW
DS
AB
AP
SAP
Gui
AnDyn
we
Pro
nd.
A
WB
R/3
Enterprise
Netweaver
Struktur eines modernen SAP R/3 Systems
BPM
XI
EP
BIW
JVM
WDJ
WDA
NWDS
AWB
Business Process Management (benutzt BPEL)
Exchange Infrastruktur
Enterprise Portal
Business Information Warehouse
Java Virtual Machine
Web Dynpro for Java
Web Dynpro for ABAP
Netweaver Development Studio
ABAP Workbench
cs 1352 ww6
CW 9/2004, p.20, http://www.computerwoche.de/index.cfm?pageid=256&artid=58396
wgs 05-04
Java Transaktionsverarbeitung
unter dem z/OS Betriebssystem
Persistent Reuseable
Java Virtual Machine
PRJVM
Web
Server
Datenbank
Server
WebSphere
Java Application
Server
Applic.
Applic.
HTTP
Server
Servlet
Se.
EJB
DB
Client
Administration
Server
Admin
Web Application Server
Web
Server
Datenbank
Server
WebSphere
Java Application
Server Clones 1
2
Applic.
HTTP
Server
Servlet
Se.
EJB
Clone 3
Administration
Server
DB
Client
Admin
Mehrfache Clones des Java Application Servers,
jeder mit einer eigenen Java Virtuellen Maschine
Diese
Transaktionen
werden
parallel
verarbeitet
Freigewordene
PRJVM
benutzen
Zeit
Parallele Verarbeitung von Transaktionen
Warteschlange
Work
Load
Manager
Ausführungseinheiten
Lastverteilung
Eintreffende Transaktionen werden zunächst in einer
warteschlange zwischengespeichert, und dann auf eine von
mehreren Ausführungseinheiten verteilt.
Ausführungseinheiten können sein:
• individuelle Rechner, 1 Prozess/Rechner (unwahrscheinlich)
• individuelle Prozesse
• individuelle Threads innerhalb eines Prozesses
FF..FF
Main
Process
Request 1
Process
Request 2
Process
Request 3
Process
andere
Prozesse
Kernel
00..00
Ansatz mit mehreren Prozessen
FF..FF
T
h
r
e
a
d
T
h
r
e
a
d
T
h
r
e
a
d
1
2
3
andere
Prozesse
Servlet
Engine
Kernel
OO..OO
Thread Ansatz
Ein Hochleistungs-Transaktionssystem verarbeitet in jedem
augenblick Hunderte oder Tausende von Transaktionen gleichzeitig
und parallel. Zwei Alternativen:
• 1 Prozess pro Transaktion (Beispiel SAP R/3)
• 1 Thread pro Transaktion (Beispiel CICS unter z/OS)
Nutzung der Java Threads
The existing application isolation mechanisms, such as
class loaders, do not guarantee that two arbitrary
applications executing in the same instance of the JVM will
not interfere with one another. Such interference can occur
in many places. For instance, mutable parts of classes can
leak object references and can allow one application to
prevent the others from invoking certain methods. The
internalized strings introduce shared, easy to capture
monitors. Sharing event and finalization queues and their
associated handling threads can block or hinder the
execution of some application. Monopolizing of
computational resources, such as heap memory, by one
application can starve the others.
[ CZA 02 ] Grzegorz Czajkowski, Laurent Daynès:
Multitasking without Compromise: a Virtual Machine Evolution.
http://research.sun.com/projects/barcelona/papers/oopsla01.pdf
Ausführung einer Folge von Transaktionen
Zeit
Transaktion 1
Transaktion 2
Transaktion 3
JVM wiederverwenden oder neu starten ?
Eine Transaktion die Ausführung der Folge-Transaktion
beeinflussen, indem sie den Zustand (State) der JVM ändert.
Beispiele für eventuelle sicherheitskritische Reste der
vorhergehenden Transaktion
•
überschriebene statische Variablen
•
Starten von Threads
•
geladene native Bibliotheken.
Klassischer Ansatz: Für jede Transaktion wird eine neue JVM
gestartet und nach Abschluss der Transaktion wieder beendet.
Das Hoch- und Herunterfahren einer JVM hat jedoch einen
erheblichen Zeitaufwand zur Folge. Bei jeder Initialisierung einer
JVM werden
•
60 System Klassen geladen,
•
700 Array-Objekte und
•
1000 non-Array-Objekte allokiert und angelegt.
Pfadlänge bis zu 100 Millionen Maschinenbefehle, ca. 1 Sekunde
Verarbeitungsdauer.
Lösung: JVM mit einer zusätzlichen Reset Methode ausstatten.
Persistent Reusable Java Virtual Machine - PRJVM
JNI_CreateJavaVM Call -Xresettable
Start Transaction
Commit
no
yes
JVM Resettable ?
Es ist möglich, dass die Ausführung einer Transaktion die
PRJVM in einen Zustand unresettable versetzt. Dies kann auf
einem asozialen, jedoch legalen Verhalten der Tansaktion
beruhen.
Beispiele
• übrig gebliebene geöffnete Files,
• noch existierende „user threads“
• Referenzen in den Transient Heap durch lokale Variablen.
Wenn eine dieser Bedingungen auftritt, erzeugt der Aufruf
ResetJavaVM den Rückgabewert false
Virtueller Adressenraum # 1
#2
Enclave
Enclave
Enclave
Enclave
Enclave
JVM
JVM
JVM
JVM
JVM
Language Envoronment (LE)
Laufzeitumgebung
Cobol, C/C++, PL/1, Java
z/OS Kernel
z/OS Enclaves
Das Language Environment (LE) war ursprünglich eine von
verschiedenen Compilern (Cobol, PL/1, C/C++) gemeinsam genutzte
Sammlung von Laufzeit-Bibliotheken.
Enclaves sind LE Run-Time Units, die eine multithreaded
Vearbeitung ermöglichen.
Beim Einsatz von Java kann man jeweils eine JVM innerhalb einer
Enclave unterbringen und damit mehrere JVMs (z.B. 60 .. 100)
innerhalb eines einzelnen virtuellen Adressenraums ausführen.
JVM Set
Worker JVMs
(Enclave)
virtueller
Adressenraum
Master JVM
(Enclaves)
Die erste PRJVM übernimmt dabei die Rolle der Master PRJVM und
kontrolliert den JVM Set:
·
·
Sie stellt den System Heap zur Verfügung, welcher von allen
Worker PRJVMs benutzt wird.
Sie richtet die Class Loader Umgebung ein, die zum Laden der
Systenklassen und Shareable Anwendungsklassen benötigt
wird.
Worker JVMs
virtueller
Adressraum
Master JVM
LE Enclaves
Für z/OS und OS/390 Sprachen wie Cobol. PL/1, C/C++ und Fortran
existiert eine als LE (Language Environment) bezeichnete
Einrichtung. Dies ist zunächst eine Laufzeitumgebung von
einheitlichen Bibliotheken, die von den genannten Sprachcompilern
gemeinsam benutzt werden kann.
Ein Teil von LE sind die Run-Units oder Enclaves. Enclaves sind
Thread-ähnliche Einheiten, die jeweils unter einem egenen
Prozessleitblock (Process Control Block, Task Control Block, TCB)
gemeinsam in einem virtuellen Adressenraum laufen. Sie benutzen
hierfür einen Specherschutzschlüssel-(storage protection key),
normalerweise Schlüssel Nr. 8. Der Hardware Speicherschutz
arbeitet unabhängig und zusätzlich zu dem üblichen
Speicherschutz über Segment- und Seitentafeln und ist eine
Einrichtung der z/Series Hardware Architektur, die auf anderen
Plattformen nicht verfügbar ist (siehe [ HERR ] , S. 14).
LE Enclaves können eingesetzt werden um unterschiedliche
Anwendungen innerhalb des gleichen virtuellen Adressenraums
voneinander zu isolieren. Sie werden u.a. in transaktionalen
Subsystemen wie CICS, IMS und DB2 benutzt. Spezifisch ist es
hiermit möglich, mehrere JVMs innerhalb eines Adressraums
laufen zu lassen.
es 1321 ww6
wgs 11-00
Transient Heap
Middleware Heap
Application Classes
System
Heap
System Classes
Der Transient Heap enthält Objekte, die von den
Anwendungsklassen erzeugt werden.
Der Middleware Heap enthält Objekte, die von den Middleware
Klassen erzeugt werden. Middleware enthält Funktionen wie CICS
Transaction Gateway Klassen, SQLJ/JDBC Klassen und JNDI
Klassen.
Der System Heap besteht aus dem Main System Heap, der die
System Klassen enthält, und dem Shareable Application Class
Heap, der Klassen aus der eingesetzten JAR File enthält.
Virtueller Adressraum
Worker
Worker
Worker
Master
Enclave
Enclave
Enclave
Enclave
PRJVM
PRJVM
PRJVM
PRJVM
T
T
T
T
M
M
M
. M
M
S
S
S
S
T = Transient Heap, M = Middleware Heap, S = System Heap
Gemeinsame Nutzung des System Heaps
und von JIT Klassen
System- und Anwendungsklassen sind nur einmal vorhanden und
können von allen PRJVMs gemeinsam genutzt werden
Order of class loading for the persistent reusable JVM
Serial reuse of a JVM is enabled by dividing the classes contained in the JVM into distinct
parts as follows.
The JVM or primordial code , consisting of the system classes and standard Java
extension classes, which provide the base services in the JVM.
_ The middleware , which provides services that access resources. These include the JCICS
interfaces classes, the CCF and CTG classes, the JDBC classes, and the JNDI classes.
The trusted middleware class path is built automatically by CICS from the paths specified
on the CICS_DIRECTORY and JAVA_HOME parameters. Additional directories or JAR
files can be added by using the TMPREFIX and TMSUFFIX parameters. Generally
speaking, only classes supplied by IBM, or your chosen middleware vendor, should be
placed on the trusted middleware class path, using the TMSUFFIX parameter.
_ The shareable application code, consisting of the enterprise beans themselves and
designated shareable application code. The shareable application classpath is defined
using the system property ibm.jvm.shareable.application.class.path and should be
used for any utility classes. Classes defined in here take precedence over classes from
the deployed JAR file.
The enterprise bean classes are also loaded into the application class system heap. They
are located by reference to the DJAR definition defined in CICS.
Transient
Heap
Transient
Heap
Transient
Heap
Transient
Heap
Transient
Heap
Middleware
Heap
Middleware
Heap
Middleware
Heap
Middleware
Heap
Middleware
Heap
1
2
3
n
reset
reset
reset
n+1
reset +
Garbage
Collection
Garbage Collection erfolgt lediglich nach 100 Resets. Bedeutender
Leistungsgewinn.
JNI_CreateJavaVM Call -Xresettable
Create Master JVM
Create Worker JVMs
Start Transaktionen
while Verarbeitung laufender Transaktionen
warten auf neue Transaktion
select Worker JVM
ordne Transaktion zu
Transaktionsende
JVM Resettable ?
ja
nein
Worker JVM zerstören
Create neue Worker JVM:
JNI_CreateJavaVM Call -Xresettable
Architekturanalyse der Java Virtual
Machine unter z/OS und Linux
Diplomarbeit
der Fakultät für Informations- und
Kognitionswissenschaften
an der Universität Tübingen
vorgelegt von
Marc Beyerle
Matrikelnummer: 1830910
Betreuer:
Prof. Dr.-Ing. Wilhelm G. Spruth
Dr. Bernhard Dierberger
Debit
Überweisung
Bankschalter
Credit
TPC - A Transaktion
Kommunikator
Adressen
Java
Adressen
DB2
Raum
Raum
Adressen
Raum
Task
List
jvmcreate
jvmcreate
jvmcreate
jvmcreate
jvmcreate
z/OS oder z/Linux Kernel
normale
JVM
normale
JVM
PRJVN
Linux
z/OS
z/OS
Testumgebung
Kommunikator
Adressen
Raum
Klient
Java
Adressen
Raum
DB2
Adressen
Raum
z/OS oder z/Linux Kernel
Normale
JVM
zLinux
normale
JVM
z/OS
Tx/s
Tx/s
1,223
0,796
Verhältnis
zLinux
zu z/OS
PRJVM
z/OS
Verhältnis
PRJVM zu
normale
JVM
Tx/s
1,54
261,04
327,94
freie
JVM mit
passenden
Profile
verfügbar ?
nein
Platz für
eine weitere
JVM in der
Region
vorhanden ?
ja
neue
JVM
starten
ja
nein
freie
JVM mit
anderem
Profil
verfügbar ?
JVM
zuordnen
nein
auf
verfügbare
JVM
warten
ja
JVM
stehlen
und neu
initialisieren
Unterschiedliche Transaktionstypen unterscheiden sich durch
unterschiedliche Anwendungsklassen. Nach Möglichkeit eine freie
Worker PRJVM mit den richtitigen Anwendungsklassen auswählen.
Wenn das nicht möglich ist, Anwendungsklassen in eine verfügbare
Worker JVM nachladen.
Anwendung # 1
PRJVM
PRJVM
PRJVM
Anwendung # 2
PRJVM
PRJVM
Anwendung # 3
PRJVM
PRJVM
PRJVM
PRJVM
Browser
Java Client
HTTP
z/OS
RMI/IIOP
Servlet
Session Bean
RMI/IIOP
RMI/IIOP
CICS
EJB Server
Session Bean
Session Bean
WebSphere
DB2
Benutzung von Enterprise Java Beans
in einer CICS Anwendung
es 1386 ww6
wgs 07-02
CPU
CPU
CPU
SMP
tightly coupled
Hauptspeicher
Hauptspeicher
Hauptspeicher
Hauptspeicher
CPU
CPU
CPU
Hauptspeicher
Hauptspeicher
Hauptspeicher
CPU
CPU
CPU
Cluster
loosely coupled
closely coupled
Globalspeicher
Taxonomie von MIMD Parallelrechnern
es 0315 ww6
wgs 08-00
virtuelle Adressenräume
1
2
3
4
5
6
PC
PC
PC
PC
PC
PC
...
...
n
FF..FF
Hauptspeicher
PC
Kernel
00..00
CPU
1
CPU
2
CPU
3
CPU
4
CPU
5
CPU
6
Annahmen:
In jedem virtuellen Adressenraum läuft ein Prozess
Ein Thread pro Prozess
Ein Prozessleitblock (PCB, Process Control Block)
pro Thread/Prozess
Anzahl der Prozesse > Anzahl der CPUs
Jede CPU führt einen anderen Prozess aus
Scheduler/Dispatcher des Kernels ordnet die einzelnen PCBs den
CPUs zu.
Mehrfachverarbeitung auf einem symmetrischen
Multiprozessor
cs 0949 ww6
wgs 03-04
virtuelle Adressenräume
1
2
3
4...
...
n
FF..FF
Hauptspeicher
PC
PC
PC
PC
PC
PC
Kernel
00..00
CPU
1
CPU
2
CPU
3
CPU
4
CPU
5
CPU
6
Prozess Nr. 2 in virtuellem Adressenraum Nr. 2 ist multithreaded.
4 Threads mit je einem PCB pro Thread können von 4 CPUs
parallel verarbeitet werden.
Im Fall von CICS sind das 4 Transaktionen, die gleicchzeitig
ausgeführt werden. Eine Run Time Unit oder Enclave ist die
Laufzeitumgebung eines CICS Threads.
Multithreaded Mehrfachverarbeitung
cs 0950 ww6
wgs 03-04
Klienten
CICS Regions
AOR
TOR
AOR
AOR
FOR
Datenbank
CPU
CPU
CPU
CPU
Hauptspeicher
32 CPU´s
+ 16 Support
SMP
Prozessoren 768 Kanäle
davon 8 E/A
(System)
L2 Cache
Coupling Facility
Coupling Links
SMP
SMP
SMP
SMP
SMP
SMP 32 max.
100 MByte/s
FICON / Fibrechannel
Protokoll
Sysplex
Timer
FICON
Switch
andere E/A
100 MByte/s
CU = Control Unit
Teil eines
Enterprise
Storage
Glasfaser
Servers
CU
CU
CU
CU
Parallel Sysplex
Es 0709 ww6
wgs 10-01
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
Java Programmierung mit JDBC
Zugriff auf eine OS/390 DB2 Datenbank
Diplomarbeit
Stefan Munz
1. Entwicklung eines Java Programms auf der Workstation
2. Ausführung auf der Workstation, Zugriff auf die OS/390
Datenbank alternativ mit JDBC und mit DB2Connect
3. Portierung des Java Quellcodes nach OS/390, Übersetzung mit
dem OS/390 High Performance Java Compiler und Ausführung
4. Portierung des unmodifizierten Bytecodes nach OS/390 und
Ausführung
Windows 2000 Klient
OS/390 Server
Servlet
Browser
Tomcat
Servlet
Engine
DB2
Test Umgebung, simulierte 3-Tier Konfiguration
Middle Tier
OS/390 Server
Servlet
Browser
Tomcat
Servlet
Engine
DB2
Echte 3-Tier Konfiguration
OS/390 Server
Servlet
Browser
WebSphere
Servlet
Engine
DB2
2-Tier Konfiguration
Alternativen für einen Servlet Zugriff
auf eine OS/390 DB2 Datenbank
es 1402 ww6
wgs 01-03
Clients
Web
Sphere
Backend
Application
NT
Unix
OS/390
Production
Production
Production
Library
Test
Library
Client
Web
Sphere
NT
Unix
OS/390
Test
Test
Repository
1. Compile C oder Cobol Code
2. Link
Templates
Linkage Table
Optons
NT
Development
Machine
Load Module
3. Test
Translating Development Code
into Production Code
es 0803 ww6
wgs 07-00
zSeries, S/390, z/OS, OS/390
Technologische Führungsposition
Ein leistungsfähiger Großrechner für Client/Server
Anwendungen benötigt eine Reihe von Einrichtungen, die
nicht auf allen Rechnern verfügbar sind. Beispiele sind
(Sommer 2004):
•
•
•
•
•
•
•
Hardware Architektur
Ein-/Ausgabe
Clustering, Sysplex, Mehrfach-Rechner Systeme
Skalierung mit Hilfe der Coupling Facility
Partitionierung und PR/SM LPAR Mode
Goal-orientierter Workload-Manager
Persistent Reuseable Java Virtual Machine
7
1
3
4
4
3
Hauptspeicher aufgeteilt in
Blöcke (Rahmen)
zu je 4096 Bytes
Jedem Block wird vom Kernel
eine Speicherschutznummer
zwischen 0 ... 15 zugeordnet
3
3
1
7
7
1
0
0
0
00 ... 00
S/390 Speicherschutz
es 0146 ww6
wgs 06-99
Speicherschutz
Speicherschutzschlüssel
4 Bit
Programmstatuswort
20 Bit
12 Bit
4 Bit
Adresse
RÄ
Speicherschutzschnellspeicher mit
Hauptspeicherschlüsseln.
Je 1 Schlüssel (4 Bit)
pro 4096 Byte Block
(plus Steuerbits, z.B.
Referenzbit R und
Änderungsbit Ä)
ja
Vergleich
Speicherzugriff ok
nein
Programmunterbrechung
es 0147 ww6
wgs 06-99
Client/Server Praktikum
WS 2003/2004
Prof. Dr.-Ing. Wilhelm G. Spruth
Es werden die folgenden Aufgaben bearbeitet:
1. LDAP Directory Service
2. CORBA
3. CORBA Namensdienst
4. Java Servlet
5. Programmierung unter OS/390 mit ISPF
6. CICS BMS Transaktion - Zugriff auf eine DB2 Datenbank
(zählt doppelt)
Für Freiwillige besteht die Möglichkeit zu weiteren Experimenten:
1. OS/390 Java Data Base Connectivity mit Eclipse für Java
2. Java Client Zugriff mit MQSeries oder CTG auf CICS COMMAREA
Betreuung durch Frau Denkinger,
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 ebenfalls im Rahmen der Fachprüfung
Technische Informatik in den Prüfungsplan mit 4 SWS
aufgenommen werden.
Schriftliche Voranmeldung bei Frau Reimold, Lehrstuhl Prof.
Rosenstiel
cs 1602 ww6
wgs 06-02
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.
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 CORBA auf?
Bei Java RMI? Wodurch unterscheidet sich ASCII von EBCDIC?
Unterschied zwischen symmetrischen (z.B. DES) und asymmetrischen (z.B.
RSA) Chiffres.
Aufgabe eines Key Distribution Servers. Konzept des Kerberos
Authentifizierung Prozesses.
Wie funktioniert eine digitale Unterschrift?
Was ist ein Message Digest? Wozu wird es benötigt?
Was sind Ipsec, Secure Socket Layer und Pretty Good Privacy?
Was sind Access Control Listen und Capabilities?
Was ist ein Firewall und eine Demilitarized Zone? 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 soetwas 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?
Was ist ABAP/4? Unterschied in der Vorgehensweise bei der Speicherung der
Daten zwischen dem CICS und dem SAP/R3 Transaktionsmonitor.
Um einen komplexen Bildschirminhalt unter SAP R/3 aufzubauen, braucht man
nur wenige Kbyte an Daten zwischen Server und Klienten zu übertragen.
Funktion des SAP GUI Prozesses?
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? Eine JSP?
Kann es mit einer URL aufgerufen werden?
Was ist ein Web Application Server? Was sind Enterprise Java Beans?
Unterschied zwischen Entity und Session Beans? Wie speichern 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)“? 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? Was ist SNA?
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, CommonConnector Framework und Java J2EE
Connection Architecture?
Was versteht der Java J2EE Standard unter einem Enterprise Information
System. Kan ein solches auch in Java erstellt werden ? Probleme ?
Wenn das Praktikum Teil des Prüfungsumfangs ist, wird der Inhalt der
Aufgaben diskutiert.
cs 1603 ww6
wgs 06-99
Studienarbeiten
Diplomarbeiten
siehe auch http://www-ti.informatik.uni-tuebingen.de/~spruth/index_de.html
• Entwicklung neuer Aufgaben für das Client/Server
Praktikum. Schwerpunkt Java und Web Transaktionen
• Erstellen eines WebSphere Web Application Server
Performance Modells für unterschiedliche
Systemkonfigurationen (Win 2000, Linux, OS/390).
• Portierung existierender Linux Anwendungen auf OS/390
Unix System Services
• Weitere Themen im Umfeld OS/390-Internet Integration,
Enterprise Java Beans
Arbeiten können am Lehrstuhl Prof. Rosenstiel oder extern
bei Partnern in der Wirtschaft angefertigt werden (z.B. IBM
Laboratorien Böblingen).
Kontaktaufnahme:
[email protected]
Tel.: 0172-8051-485
oder über den Lehrstuhl Prof. Rosenstiel / Frau Reimold
cs 1604 ww6
wgs 06-99
Herunterladen