Rolle von Java Verteilte Verarbeitung mit Java J2EE Übersicht J2EE Details
description
Transcript of Rolle von Java Verteilte Verarbeitung mit Java J2EE Übersicht J2EE Details
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 1
Rolle von JavaRolle von Java
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
J2EE ÜbersichtJ2EE Übersicht
J2EE DetailsJ2EE Details
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 2
Entwicklung von JavaEntwicklung von Java
• 1990: Team bei Sun Microsystems (James Gosling) entwickelt neu OO-Sprache, insbesondere für Embedded Systems
• 1994: Erkenntnis, dass Sprache für Web-Anwendungen geeignet ist– Kompakter Code– Interpreter Konzept– Plattform-unabhängig
• 1995: Namensgebung Java; Vorstellung der Sprache
• 1996: Große Akzeptanz für Programmierung im Internet
• 1997: JDK 1.1; Unterstützung durch viele vorgefertigte Klassen
• 1998: JDK 1.2– Java IDL und RMI– Swing (GUI Bibliothek)
• Gegenwärtige Version: 1.3.1 (Bestandteil von J2SE)
• J2SE (mit SDK) 1.4 im Beta 3 (seit 11/01; Release in Q1/2002)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 3
Rolle von JavaRolle von Java
• Java: Portable objekt-orientierte Programmierumgebung– Programmiersprache (an C++ angelehnt)
– Compiler (erzeugt Bytecode)
– Java Virtual Machine (JVM): interpretiert Bytecode
– JIT (Just in Time) Compiler übersetzt Bytecode in Maschinencode
• Java ist die Sprache des Internet– Konzept Interpreter (JVM) mit Bytecode ideal für verteilte Systeme
• Der gleiche Code kann in allen Stufen benutzt werden• Write Once Run Anywhere (WORA)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 4
Java Entwicklung und AusführungJava Entwicklung und Ausführung
JavaSourceCodes
JavaSourceCodes
Java
Compiler
Java
Compiler
Java
ByteCodes
Java
ByteCodes
Class
Loader
Class
Loader
ByteCode
Verifier
ByteCode
Verifier
Java
Virtual Machine
Java
Virtual Machine
Just in Time
Compiler
Just in Time
Compiler
Binary
Code
Binary
Code
Java Developers KitIDE´s
Java Platform
La
de
n v
om
File
syst
em
od
er
üb
er
da
s N
etz
IDE: Integrated Development Environment
z.B. JBuilder von Borland
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 5
Java PlattformenJava Plattformen
• Java 2 Platform, Standard Edition (J2SE)– Standard Java Konfiguration
– Enthält alle Kern-Klassen
– Enthält JDK
• Java 2 Platform, Enterprise Edition (J2EE)– Enthält J2SE
– Zusätzliche API´s und Services für unternehmens-kritische Anwendungen (z.B. Transaktionen, Komponentenmodell EJB)
• PersonalJava– Teilmenge von J2SE
• Java Card– Teilmenge von PersonalJava
– Bestimmt für Smart Cards
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 6
Java in .NET (JUMP)Java in .NET (JUMP)
VisualJ# .NETVisual
J# .NET
CompilerCompiler
MSILMSIL
Visual Studio .NET
Class
Loader
Class
Loader
Common
Language Runtime
CLR
Common
Language Runtime
CLR
.NET Framework
La
de
n v
om
File
syst
em
od
er
üb
er
da
s N
etz
Java
ByteCodes
Java
ByteCodes
Visual BaiscVisual Baisc C#C#
CompilerCompilerCompilerCompiler
MSIL: Microsoft Inrtermediate Language
JUMP: Java User Migration Path (to Microsoft .NET)
- Nur Sprache
- Keine Unterstützung für API´s wie RMI
JUMP
Converter
JUMP
Converter
Ca. 20 Sprachen
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 7
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 8
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
• Fall 1: Nutzung von Java in normaler CORBA Anwendung– ORB ist Basis
– Java IDL, um Stubs und Skeletons zu generieren
– Wenn Verteilung über Internet, dann zusätzlich IIOP
• Fall 2: Anwendung Java basiertVerteilung im LAN
• Fall 3: Hauptteil der Anwendung Java basiertVerteilung im LANAnwendungsteile in anderen Sprachen
• Fall 4: Verteilung Java Anwendung im WebOption der Integration mit anderen Sprachen
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 9
CORBACORBA
Object Request Broker (ORB)
ServerServer
Server SkeletonServer Skeleton
ClientClient
Client StubClient Stub
Generiert aus Interface
beschrieben in IDL
Client und Server können• in beliebigen• auch unterschiedlichenSprachen geschrieben sein
CORBA/IDL sorgt für Mapping der Interfaces
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 10
CORBA; Client in JavaCORBA; Client in Java
Object Request Broker (ORB)
Serverbel. Sprache
Serverbel. Sprache
Server SkeletonServer Skeleton
ClientJava
ClientJava
Client StubClient Stub
Generiert aus Interface
beschrieben in IDL
• Standardfall für CORBA• Interface in IDL notwendig• Client Stub für Java geniert aus IDL
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 11
CORBA; Server in JavaCORBA; Server in Java
Object Request Broker (ORB)
ServerJava
ServerJava
Server SkeletonServer Skeleton
Clientbel. Sprache
Clientbel. Sprache
Client StubClient Stub
Generiert aus Interface
beschrieben in IDL
• Standardfall für CORBA• Interface in IDL notwendig; generiert aus Java• Server Skeleton für Java geniert aus IDL
Generiert aus Interface in
Java
Generiert aus Interface in
Java
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 12
CORBA über InternetCORBA über Internet
ORB-1
ClientClient
Client StubClient Stub
Generiert aus Interface
beschrieben in IDL
Client und Server können• in beliebigen• auch unterschiedlichenSprachen geschrieben sein
CORBA/IDL sorgt für Mapping der Interfaces
ServerServer
Server SkeletonServer Skeleton
Generiert aus Interface
beschrieben in IDL
ORB-2IIOP
IIOP – Internet Inter-ORB Protocol
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 13
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
• Fall 1: Nutzung von Java in normaler CORBA Anwendung– ORB ist Basis
– Java IDL, um Stubs und Skeletons zu generieren
– Wenn Verteilung über Internet, dann zusätzlich IIOP
• Fall 2: Anwendung Java basiertVerteilung im LAN
• Fall 3: Hauptteil der Anwendung Java basiertVerteilung im LANAnwendungsteile in anderen Sprachen
• Fall 4: Verteilung Java Anwendung im WebOption der Integration mit anderen Sprachen
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 14
RMI – Remote Method InvocationRMI – Remote Method Invocation
Java 2 Platform Standard Edition (J2SE)
Server(Java)
Server(Java)
Server SkeletonServer Skeleton
Client(Java)
Client(Java)
Client StubClient Stub
• Client und Server sind beide in Java geschrieben• Separate IDL ist nicht nötig. Java übernimmt die Rolle der IDL• J2SE übernimmt die Rolle des ORB• Stub und Skeleton werden von J2SE generiert
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 15
Verteilte Verarbeitung mit Java (Beispiel)Verteilte Verarbeitung mit Java (Beispiel)
AppletApplet
HTTP
Application Server
RMI
Web Browser
Web Server
EJBEJB
DBDB
File SystemFile System
Lädt Applet
RemoteMethod
Invocation
RemoteMethod
Invocation
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 16
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
• Fall 1: Nutzung von Java in normaler CORBA Anwendung
• Fall 2: Anwendung Java basiertVerteilung im LAN
• Fall 3: Hauptteil der Anwendung Java basiertVerteilung im LANAnwendungsteile in anderen Sprachen
– Nutzung von JNI (Java Native Interface)
• Verbindung von Java Programmen mit Programmen in anderen Sprachen
• Sowohl: Java ruft andere Sprachen auf; als auch: andere Sprache ruft Java auf
– Details zu JNI hier nicht behandelt
• Fall 4: Verteilung Java Anwendung im WebOption der Integration mit anderen Sprachen
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 17
Verteilte Verarbeitung mit JavaVerteilte Verarbeitung mit Java
• Fall 1: Nutzung von Java in normaler CORBA Anwendung
• Fall 2: Anwendung Java basiertVerteilung im LAN
• Fall 3: Hauptteil der Anwendung Java basiertVerteilung im LANAnwendungsteile in anderen Sprachen
• Fall 4: Verteilung Java Anwendung im WebOption der Integration mit anderen Sprachen
– Java Plattform mit IIOP Option
– Kombination Java Plattform mit anderen Sprachen
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 18
RMI über IIOPRMI über IIOP
Server(Java)
Server(Java)
Server SkeletonServer Skeleton
Client(Java)
Client(Java)
Client StubClient Stub
• Wie Standard RMI• Benutzung des IIOP Protokolls• Damit Verteilung über das Internet
IIOPJ2SE J2SE
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 19
Verteilte Verarbeitung mit RMI über IIOP (Beispiel)Verteilte Verarbeitung mit RMI über IIOP (Beispiel)
AppletApplet
HTTP
Application Server
Web Browser
Web Server
EJBEJB
DBDB
File SystemFile System
Lädt Applet
RMI über IIOP
Nur Java zu JavaNur Java zu Java
InternetInter-ORBProtocol
InternetInter-ORBProtocol
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 20
Kooperation RMI und CORBA (Java Client)Kooperation RMI und CORBA (Java Client)
Client(Java)
Client(Java)
Client StubClient Stub
• Client ist in Java und Server in beliebiger Sprache (von CORBA unterstützt) geschrieben• Interfacebeschreibung in IDL wird aus Interface in Java generiert
(oder auch umgekehrt?)Achtung Beschränkung bei existierenden Server Programmen möglich
• J2SE kommuniziert über IIOP mit beliebigem ORB• Stub wird von J2SE (aus Java) und Skeleton von ORB (aus IDL) generiert
IIOPJ2SE
Server(bel. Sprache)
Server(bel. Sprache)
Server SkeletonServer Skeleton
Generiert aus Interface
beschrieben in IDL
ORB
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 21
Verteilte Verarbeitung mit CORBA (Beispiel)Verteilte Verarbeitung mit CORBA (Beispiel)
AppletApplet
HTTP
Web Browser
Web Server
DBDB
File SystemFile System
Lädt Applet
IIOP
Object Request BrokerObject Request Broker
JavaJava C++C++ Andere SprachenAndere Sprachen
• IIOP – Kommunikationzwischen J2SE und ORBs verschiedener Hersteller
• Einbindung unterschiedl.Sprachen möglich
• IIOP – Kommunikationzwischen J2SE und ORBs verschiedener Hersteller
• Einbindung unterschiedl.Sprachen möglich
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 22
Kooperation RMI und CORBA (Java Server)Kooperation RMI und CORBA (Java Server)
Client(bel. Sprache)
Client(bel. Sprache)
Client StubClient Stub
• Server ist in Java und Client in beliebiger Sprache (von CORBA unterstützt) geschrieben• Interfacebeschreibung in IDL wird aus Interface in Java generiert
J2SE kommuniziert über IIOP mit beliebigem ORB• Skeleton wird von J2SE (aus Java) und Stub von ORB (aus IDL) generiert
IIOPORB
Server(Java)
Server(Java)
Server SkeletonServer Skeleton
Generiert aus Interface
beschrieben in IDL
J2SE
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 23
Vorteile RMI gegenüber RPC und CORBAVorteile RMI gegenüber RPC und CORBA
• Objekt-orientiert: Argumente und Returnwerte können Objekte sein
• Klassen können übertragen werden– Beispiel: Methoden, die auf dem Server implementiert sind, können zum
Client übertragen werden, um dort direkt ausgeführt zu werden– Performance Vorteil
• RMI basiert auf Java Sicherheitsmechanismen
• Leicht zu schreiben und zu benutzen– Alles in Java, keine separate IDL– Beispiel Remote Interface für Client:
import java.rmi.*;public interface ExpenseServer extends Remote {
Policy getPolicy() throws RemoteException;void submitReport (ExpenseReport report)
throws RemoteException, InvalidReportexception;}
• Verteiltes Garbage Collection
• RMI unterstützt Multi Threading
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 24
Java 2 Platform, Enterprise Edition; ÜbersichtJava 2 Platform, Enterprise Edition; Übersicht
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 25
Java 2 Platform, Enterprise EditionJava 2 Platform, Enterprise Edition
• Java Plattform für Business Anwendungen
• Enterprise Edition: Robuste Plattform für unternehmensweite,
geschäfts-kritische Anwendungen
– Einbindung in Unternehmensinfrastruktur
– Transaktions-Unterstützung
– Datenbank Zugriff
• Plattform für E-Business Anwendungen
• Mehrstufigen Architekturen
• Zwei Typen von Anwendungsarchitekturen
– Web basiert
– Traditionelle Client/Server Architektur
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 26
J2EE Stufen ArchitekturJ2EE Stufen Architektur
Web Browserfat Client
Client Container
Appl. Client HTML Applet
Tiers
Web
Client
Web Container
JSP Servlets
BusinessEJB Container
Entity EJB´s Message-Driven EJB´sSession EJB´s
EnterpriseInformation
System
Database ERP Systems Legacy Systems
J2EE Platform
J2E
E S
erve
r
Application Component
J2EE Container J2EE Platform
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 27
J2EEJ2EE
• J2EE Platform Specification– API´s
– Release Level, um Kompatibilität, Portabilität und Integration zu sichern
• J2EE Compatibility Test Suite– Hersteller können damit ihre Produkte auf Komformität mit der
Spezifikation testen
• J2EE Reference Implementation– Operationelle Definition der J2EE Plattform
• J2EE Application Model– Guide
– Beispiele und Design Patterns
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 28
J2EE API´s (1)J2EE API´s (1)
• Die Nummern kennzeichnen die aktuellen Versionen im Herbst 2001
• Enterprise JavaBeans Technology 2.0 (EJB)– Komponententechnologie
– Genutzt für Business Logik
– EJB laufen in Container
– Drei Arten• Session Beans• Entity Beans• Message-driven Beans
• JDBC API 2.0– API zum Zugriff auf relationale Datenbanken
• Java Server Pages Technology 1.2 (JSP)– Textseiten (z.B. HTML oder XML) mit enthaltenem Java Code
– Aus JSP Seiten werden Servlets generiert
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 29
J2EE API´s (2)J2EE API´s (2)
• Java Message Services 1.0 (JMS)– API zum Erzeugen, Senden, Empfangen und Lesen von Messages
• Java Transaction API 1.0 (JTA)– Klammerung von Datenbankoperationen zu einer Einheit
• JavaMail Technology (1.2)– Versenden von Mails
• Java API for XML Processing 1.1 (JAXP)– Lesen und Bearbeiten von XML Files
• J2EE Connector Architecture 1.0 (JCA)– Technologie zur Integration von anderen Anwendungen
– EAI Technologie von J2EE
• Java Authentication and Authorization Services 1.0 (JAAS)– Authentifizierung und Autorisierung von Benutzern un Gruppen
• Java Naming and Directory Interface API (JNDI)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 30
ReferenzarchitekturReferenzarchitektur
Con
tent
Man
agem
ent
Con
tent
Man
agem
ent
Pro
zess
-Man
agem
ent
Pro
zess
-Man
agem
ent
FirewallHTTPLAN
Tra
nsak
tions
-Man
agem
ent
Tra
nsak
tions
-Man
agem
ent
Mes
sagi
ng S
ervi
ces
Mes
sagi
ng S
ervi
ces
Portal ServerPortal Server
Benutzer-SchnittstellenKomponenten
Benutzer-SchnittstellenKomponenten
BusinessKomponenten
BusinessKomponenten
Datenbank-ZugriffeDatenbank-Zugriffe
DatenbankenDatenbankenIn
tegr
atio
nsS
ervi
ces
Inte
grat
ions
Ser
vice
sV
erze
ichn
isS
chni
ttste
llen
Ver
zeic
hnis
Sch
nitts
telle
n
VerzeichnisServices
VerzeichnisServices
GeschäftsPartner
GeschäftsPartner
ERP SystemeERP Systeme
Alt-Anwend.Alt-Anwend.
DatenbankenDatenbanken
Sic
herh
eit
Sic
herh
eit
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 31
Referenzarchitektur mit J2EE KomponentenReferenzarchitektur mit J2EE Komponenten
Con
tent
Man
agem
ent
Con
tent
Man
agem
ent
Pro
zess
-Man
agem
ent
Pro
zess
-Man
agem
ent
FirewallHTTPLAN
JTA
JTA
JMS
- J
avaM
ail
JMS
- J
avaM
ail
Portal ServerPortal Server
JSPServlet
JSPServlet
Enterprise JavaBeansJAXP
Enterprise JavaBeansJAXP
JDBC APIJDBC API
DatenbankenDatenbankenJC
AW
ebS
ervi
ces
JCA
Web
Ser
vice
sJN
DI
JND
I VerzeichnisServices
VerzeichnisServices
GeschäftsPartner
GeschäftsPartner
ERP SystemeERP Systeme
Alt-Anwend.Alt-Anwend.
DatenbankenDatenbanken
JAA
SJA
AS
Blaue Schrift in gestreiften Boxenkennzeichnen Komponenten der J2EE Definition
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 32
Java 2 Platform, Enterprise EditionJava 2 Platform, Enterprise Edition
DetailsDetails
Christian Menk
Software Architektur Berater
Softlab GmbH
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 33
J2EE im DetailJ2EE im Detail
•Java Servlet APIJava
•Java Server Pages Technology 1.2 (JSP)
•Java Authentication and Authorization Services 1.0 (JAAS)
•Java Naming and Directory Interface API (JNDI)
•Java Remote Method Invocation Enterprise (RMI)
•JavaBeans Technology 2.0 (EJB)
•JDBC API 2.0
•Java Message Services 1.0 (JMS)
•Java Transaction API 1.0 (JTA)
•JavaMail Technology (1.2)
•Java API for XML Processing 1.1 (JAXP)
•J2EE Connector Architecture 1.0 (JCA)
•Java Native Interface (JNI)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 34
Java Servlet APIJava Servlet API
Servlet – Begriff für ein Java Programm auf dem Server, es erweitert den
Webserver um Funktionalität. – Ähnlich wie CGI Scripts, sie sind jedoch schneller und brauchen weniger
Ressourcen, weil nicht wie beim CGI ein neuer Prozeß gestartet wird, sondern bei jeder Anfrage nur ein lightweight-Thread erzeugt wird.
– Ein Servlet kann wie ein Applikationsserver agieren, d.h. ein Websserver kann ein Servlet wie einen Service behandeln. Z.B. kann eine DB-Verbindung aufrechterhalten werden, so dass Anfragen an die DB von einem Java Programm nicht immer wieder neu aufzubauen sind.
– Benötigt wird ein Webserver auf dem die JVM läuft und die Servlet API unterstützt wird.
– Bietet ein Server unabhängiges API
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 35
Java Servlet API 2Java Servlet API 2
HTTP ServerHTTP Server
Java VMJava VM
HTTPServlet
doGet(HttpServletRequest request,
HttpServletResponse response);
doPost(HttpServletRequest request,
HttpServletResponse response);
HTTPServlet
doGet(HttpServletRequest request,
HttpServletResponse response);
doPost(HttpServletRequest request,
HttpServletResponse response);
HTTPServlet
doGet(HttpServletRequest request,
HttpServletResponse response);
doPost(HttpServletRequest request,
HttpServletResponse response);
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 36
Java Servlet API 3Java Servlet API 3
HTTP ServerHTTP Server
Java VMJava VM
HTTPServletHTTPServlet
HTTPServletHTTPServlet
thread
CGI ProcessCGI Process
CGI ProcessCGI Process
CGI ProcessCGI Process
CGI ProcessCGI Process
requestrequest
requestrequest
requestrequest
requestrequest
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 37
Servlet BeispielServlet Beispiel
private void doGet(HttpServletRequest request, HttpServletResponse response) {
try{
Enumeration e = request.getParameterNames();
String submitter = request.getParameter("SUBMITTER");
ArrayList optionsList = new ArrayList();
while (e.hasMoreElements()){
String id = e.nextElement().toString();
logTO(id + "::" +request.getParameter(id));
HttpSession session = request.getSession();
if (id.equals("model"))
session.putValue("model",request.getParameter(id));
//if (id.equals("color"))
//session.setAttribute("color",request.getParameter(id));
if (submitter!=null){
session.putValue("SUBMITTER",submitter);
}
...
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 38
Java Server Pages (JSP)Java Server Pages (JSP)
Java Server Pages (JSP) – Ähnlich wie Microsofts Active Server Pages erlauben Suns Java Server
Pages, Programmcode in HTML-Dokumente einzubetten.
– Eine Technologie, um serverseitig HTML-Seiten zu generieren.
– Aus einer JSP wird vom Server ein Servlet erzeugt.
– JSP können andere Java Objekte benutzen (JSP-Beans)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 39
Java Server Pages (JSP) 2Java Server Pages (JSP) 2
HTTP ServerHTTP Server
Java VM + JSP EngineJava VM + JSP Engine
JSP Seiten
(HTML+JAVA)
HTTPServlet
1:request 1
Servlet
Source
2:lädt 3:erzeugt
4:Kompiliert und lädt
5:response
6:request 2-n 5:response
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 40
JSP BeispielJSP Beispiel
<TR VALIGN="top" ALIGN="left">
<TD COLSPAN=2 HEIGHT =22></TD>
<TD WIDTH=56 COLSPAN=2><INPUT id="FormularTextfeld1" TYPE="text" NAME="ho"
VALUE="<%= request.getParameter("ho")%>" SIZE=7 MAXLENGTH=10 ></TD>
<TD></TD>
</TR>
<jsp:useBean id="ordering" scope="session" class="com.bmw.ivs.jsp.OrderBean" />
<TR VALIGN="top" ALIGN="left">
<TD HEIGHT =24></TD>
<TD WIDTH=27 COLSPAN=2><SELECT id="FormularKombinationsfeld5" NAME="auftragsart" >
<option value="0„ <%=ordering.checkSelection(request,"auftragsart","0")%>> 0 – Kunde </option>
<option value="1„ <%=ordering.checkSelection(request,"auftragsart","1")%>> 1 – Lager </option>
</SELECT></TD>
</TR>
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 41
Java Authentiction and Authorization ServiceJava Authentiction and Authorization Service ( (JAAS)JAAS)
•Standard erweiterung der Java 2 Plattform
• Authentifizierungs-Framework
• Pluggable authentication
• User basierte Autorisierung
Application
Login Context API
LoginModul
Kerberos Smart Card Biometric
Konfig.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 42
Java Authentiction and Authorization ServiceJava Authentiction and Authorization Service ( (JAAS) 2JAAS) 2
** * Example Java 2 Security Policy Entry*/grant Codebase "www.sun.com", Signedby "duke" {FilePermission "/cdrom/-", "read";}/*** Example JAAS Security Policy Entry*/grant Codebase "www.sun.com", Signedby "duke",Principal com.sun.Principal "charlie" {FilePermission "/cdrom/charlie/-", "read";MyPermission “DOSOMETHING";}
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 43
Java Naming and Directory Interface (JNDI)Java Naming and Directory Interface (JNDI)
JNDI (Java Naming and Directory Services) – Bietet einen standardiersierten Zugriff auf Verzeichnisdienste, um Objekte
und Ressourcen anzufordern. So werden die Enterprise-Javabeans-Komponenten-Schnittstellen über JNDI angefordert.
– Teil des Java Enterprise API. JNDI ist eine Java Standard Extension. Die API gibt Java Anwendungen eine einheitliche Schnittstelle zu verschiedenen Naming und Directory Services Funktionalitäten in Unternehmen.
– Mit JNDI können Java Anwendungen Java Objekte jeden Typs gespeichert und eingelesen werden, sowie Standard Directory Operationen wie das Assoziieren von Attributen mit Objekten oder das Suchen nach Objekten über ihre Attribute ausgeführt werden.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 44
Java Naming and Directory Interface (JNDI) 2Java Naming and Directory Interface (JNDI) 2
Java Application
LDAP Directory
JNDI
EJB Store
LookupLookup Lookup
User
Role
User
RoleUser
a.java
src
b.java
docTut.txt
EJB Home A
EJB Home B
EJB Home C
EJB
Servlet
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 45
Java Remote Method Invocation RMIJava Remote Method Invocation RMI
RMI ( Remote Method Invocation ) – Erstellung von verteilten Java-Anwendungen ( Java-to-Java ). – Methoden eines remote Java Objekts werden von einer JVM aufgerufen,
die auf einem anderen Host läuft. Ein Java Programm kann ein remote Objekt aufrufen sobald es eine Referenz des remote Objekts erhalten hat, entweder über den Bootstrap Naming Service von RMI oder über ein (Aufruf-) Argument bzw. einen Rückgabewert. Ein Client kann ein remote Objekt in einem Server aufrufen, wobei der Server wiederum ein Client aus remote Objekte sein kann.
– RMI verwendet die Java Objekt Serialization zum Speichern und Zurückholen von Java Objekten, indem ihr Zustand serialisiert über einen Stream geschrieben und gelesen wird (wie in eine Datei).
– Für Basis-Kommunikationsmechanismen stehen in Java Sockets zur Verfügung.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 46
Java Remote Method Invocation RMI AblaufJava Remote Method Invocation RMI Ablauf
Java VMJava VMJava VMJava VM
•Netz
JNDI
Java Applikation
Java Object
Skeleton
Stub
Stub
1: lookup
2: get
3: call
4: call Skeleton
7: result to Stub
5: call OBJ6: return result
8: result
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 47
Java Remote Method Invocation RMI over IIOPJava Remote Method Invocation RMI over IIOP
RMI-IIOP (Remote Method Invocation - Internet Inter-ORB Protocol)
– Kommunikation von RMI über das Corba-Protokoll IIOP.
– Mittels dieser Brücke ist es möglich, Enterprise Javabeans direkt zu integrieren, beispielsweise in Visual Basic Clients - und umgekehrt
IIOP (Internet Inter-ORB Protocol) – Kommunikationsprotokoll von CORBA.
– Standard-Protokoll, das von jedem ORB unterstützt wird.
– Besteht aus GIOP und TCP/IP.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 48
Enterprise Java Beans was ist das ?Enterprise Java Beans was ist das ?
Enterprise Java Beans (EJB)
– In EJB’s wird die Business-Logik abgebildet. Sie ist ein Begriff für eine serverseitige Komponente.
– Komponentenmodell für die Entwicklung und Verteilung von Java Komponenten in einer verteilten Multi-Tier-Umgebung.
– EJBs sind portabel und protokollneutral und somit unabhängig von einem bestimmten Webserver.
– EJBs werden oft mit den Java Beans der Client-Seite verwechselt. Beides sind jedoch unterschiedliche Technologien. Gemeinsam ist nur die Sprache Java und dass es sich um Komponenten handelt.
– EJBs können nicht nur mit Java-Clients und Java-Server-Komponenten kommunizieren, sondern über DCOM mit Windows-Programmen und über IIOP mit CORBA Servern und somit mit allen Arten von Anwendungen die via CORBA kommunizieren können.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 49
Enterprise Java Beans PrinzipEnterprise Java Beans Prinzip
EJB ContainerEJB Container
JNDI...MyBeanHome...
JNDI...MyBeanHome...
Client...lookUp
create or find on EJB Home OBJ
cast to EJB remote OBJ
invoke Method...
Client...lookUp
create or find on EJB Home OBJ
cast to EJB remote OBJ
invoke Method...
EJB OBJ
Remote StubServer Skeleton
1
2
3c
4
6
3b
3a
7
8
5
9
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 50
Enterprise Java Beans aus Client SichtEnterprise Java Beans aus Client Sicht
try {
//get naming context
Properties properties = null;
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, "t3://localhost:7301");
properties.put(Context.SECURITY_PRINCIPAL, „user“);
properties.put(Context.SECURITY_CREDENTIALS, „PWD“);
Context ctx = new InitialContext(properties);
//look up jndi name
Object ref = ctx.lookup("com.bmw.ivsr.server.bpro.orderentryenquiry.OrderEntryEnquiryBPrOHome");
//cast to Home interface
OrderEntryEnquiryBPrOHome orderEntryEnquiryBPrOHome = (OrderEntryEnquiryBPrOHome) PortableRemoteObject.narrow(ref, OrderEntryEnquiryBPrOHome.class);
OrderEntryEnquiryBPrO orderEntryEnquiryBPrO = createBPro();
orderEntryEnquiryBPrO.createOrder(orderentry);
catch (Exception e){
}
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 51
Enterprise Java Beans Deployment 1Enterprise Java Beans Deployment 1
<?xml version="1.0"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_2.dtd'>
<ejb-jar>
<enterprise-beans>
<entity>
<ejb-name>PurchaseOrderBEO</ejb-name>
<home>com.bmw.ivsr.server.beo.purchaseorder.PurchaseOrderBEOHome</home>
<remote>com.bmw.ivsr.server.beo.purchaseorder.PurchaseOrderBEO</remote>
<ejb-class>com.bmw.ivsr.server.beo.purchaseorder.PurchaseOrderBEOBean</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>com.bmw.ivsr.server.pk.PurchaseOrderPK</prim-key-class>
<reentrant>False</reentrant>
<cmp-field>
<field-name>purchase_order_id</field-name>
</cmp-field>
</entity>
</enterprise-beans>
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 52
Enterprise Java Beans Deployment 1Enterprise Java Beans Deployment 1
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>ManufacturerOrderBEO</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 53
Pool Pool
Enterprise Java Beans Session BeansEnterprise Java Beans Session Beans
Statefull Session
Bean
Es existieren zwei Arten von Session Beans:
•Statefull: sind einer Session zugeordnet und speichern Informationenvon einem Aufruf zum nächsten.
•Stateless: sind keiner Session zugeordnet innerhalb der Session Bean dürfen keine Informationen gespeichert werden.
Stateless Session
BeanStateless Session
BeanStateless Session
BeanStateless Session
Bean
Statefull Session
BeanStatefull Session
BeanStatefull Session
BeanStatefull Session
Bean
Client Zeit Client Zeit
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 54
EJB Container
Enterprise Java Beans Entity BeansEnterprise Java Beans Entity Beans
Repräsentieren persistente Daten
Bieten create find und delete Methoden
Es existieren zwei Ausprägungen:
• Entity Bean mit Container managed Persistance
• Entity Bean mit Bean managed Persistance
CMP Entity
SetA(newA)
BMP Entity
DB
Store newA to DB
Set newA
SetA(newA) Set newA
and Store
Store newA to DB
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 55
Enterprise Java Beans Message BeansEnterprise Java Beans Message Beans
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 56
Enterprise Java Beans Message Beans 2Enterprise Java Beans Message Beans 2
EJB Container
CMP Entity
Message Bean
onMessage
JMS Provider
Stateless
Sessionbean
InteractionInteraction
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 57
Java Database Connectivity (JDBC)Java Database Connectivity (JDBC)
Java Database Connectivity (JDBC) – API für die Anbindung an relationale Datenbanken, so dass
die Abfrage und Aktualisierung der Datenbank mit Hilfe von SQL ermöglicht wird.
– Funktionalität: Verbindung zur DB herstellen, SQL Befehle absetzten und Auswertung der Ergebnisse der Anfrage.
– Für eine ODBC-fähige Datenbank genügt eine JDBC-ODBC-Bridge.
– Es gibt vier JDBC-Lösungskategorien (Typen 1-4):1. JDBC-ODBC-Bridge2. plattformeigene JDBC-Treiber3. universelle JDBC-Treiber4. direkte JDBC-Treiber
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 58
Java Database Connectivity 2 (JDBC)Java Database Connectivity 2 (JDBC)
Ablauf der Kommunikation mit einer JDBC DB
Java VMJava VM
DB
Connection
PreparedStatement
Statement
ResultSet
Ablauf D
B K
omm
unikation
erzeugen
erzeugen
ausführen
auswerten
Wird in DB
gespeichert
ausführen
Ergebnis
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 59
Java Message Service (JMS)Java Message Service (JMS)
Java Messages Service (JMS) – API für den Zugang zu Enterprise (unternehmensweite) Messaging Systemen. – Vereinfacht das Schreiben von Business Applications, welche asynchron Business
Daten und Ereignisse schicken und empfangen. – Enterprise Beans können auf einfache Weise Nachrichten verschicken und
empfangen.
Zwei Arten:
Point to Point – jede Nachricht hat genau einen Empfänger
Publish Subscribe – jeder Subscriber erhält eine Nachrichten Kopie
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 60
Java Message Service (JMS) 2Java Message Service (JMS) 2
Queue
A
B
C
JMS Sender
A
C
B
JMS Empfänger
JMS Provider
A
B
C
JMS Sender
A,B,C
A,B,C
A,B,C
JMS Empfänger
JMS Provider
TOPIC
Publish - Subscribe
Point to Point
DB
DB
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 61
Java Transaction API und ServiceJava Transaction API und Service
JTA (Java Transaction API) – JTA ist die Programmier-Schnittstelle für Ressourcen-Manager und
Transaktions-Systeme.
Java Transaction Service (JTS) – Definiert ein Standard Transaction Management API für die Java Plattform
und bietet Zugang zu transaktionsorientierten Umgebungen wie Prozeßmonitore, Tansaktionsmanager oder Transaktionsapplikationen auf CORBA-Basis.
– Der JTS wird von den Herstellern vom Transaktions-Manager implementiert. Die Integration von CICS ist somit ohne weiteres möglich.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 62
Java Transaction API (JTA)Java Transaction API (JTA)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 63
Java Transaction Service (JTS)Java Transaction Service (JTS)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 64
Java MailJava Mail
Java Mail-API – Das JavaMail API enthält einen Satz abstrakter Klassen für ein Mail-
System, mit JavaMail erhält der Programmierer eine flexible Schnittstelle für die Entwicklung von Mail-Applikationen.
– Das API liefert ein plattformunabhängiges, protokollunabhängiges Framework zur Entwicklung von Mail und Messaging Anwendungen basierend auf Java Technologie. Das API ist als eine Java Standard Extension implementiert.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 65
Java Mail Beispiel Java Mail Beispiel
Store
Folder A
Folder C Folder C
Message 1 Message 1
getFolder(„A“)
getFolder(„C“)
getMessage(1)
Transport
Session
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 66
Applikation Server
Container Services
Java Connector ArchitectureJava Connector Architecture
Ressource Adapter
Enterprise System Interface
Connection ManagerTransaction Manager
Security Manager
System Contract
EJB Appl.Container-Component Contract
Behandelt Connection, Transaction und Security Management zwischen Appserver und Enterprise System
Ist Schnittstelle für Applications-Komponenten
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 67
Java Native Interface (JNI)Java Native Interface (JNI)
Schnittstelle für Java Anwendungen um mit nativ Bibliotheken zu interagieren.
Sind bestehende Anwendungen oder Bibliotheken in eine Serveranwendung
Integrieren die über keine Komponenten Schnittstelle verfügen
(CORBA/RMI/TP-Monitor) so kann mittels des JNI eine Proprietäre
Zugriffsschicht erstellt werden. Sehr gut C – C++ Integration.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 68
Client ServerClient Server
Client
Rich Client Application
DB-System
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
Con
trol
er -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
Con
trol
er -
O
bjec
t
Con
trol
er -
O
bjec
tC
ontr
oler
-
Obj
ect
FA
T B
O -
O
bjec
tF
AT
BO
-
Obj
ect
FA
T B
O -
O
bjec
tF
AT
BO
-
Obj
ect
BO
- F
acto
ry
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 69
Client ServerClient Server
Client
Rich Client Application
DB-System
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
UI
- O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
-
Obj
ect
‚thin
‘ BO
-
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
-
Obj
ect
‚Thi
n‘ B
O -
O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 70
Client Server - und jetzt werden es viele Client Server - und jetzt werden es viele
DB-System
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Client
Rich Client Application
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
UI -
O
bjec
t
BO
- O
bjec
tB
O -
Obj
ect
BO
- O
bjec
tB
O -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚th
in‘ B
O -
Obj
ect
BO
- F
acto
ry
Com
man
d -
Obj
ect
‚thin
‘ BO
- O
bjec
t‚T
hin‘
BO
- O
bjec
t
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Com
man
d -
Obj
ect
Am BSP JABBA:
während einer JABBA Sitzung werden
ca 280 Command Objekte und BO Objekte plus 20 View ObjekteSpeicherbedarf: ca 6 MB (laut Optimize)
wenn Jabba von 1.000 Benutzern gleichzeitig benutzt würde
ca 280.000 Command und BO Objekte !!Speicherbedarf: über 5 Gigabyte
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 71
Client
Client
Client
Client
Was macht WEB basierte Systeme komplexWas macht WEB basierte Systeme komplex
Applikation Server
WEB Container
EJB Container
Client
Client
Client
ClientBackendsysteme
Mainframe
Besands- führung I
Callcenter
...
Enterprise Applikation
Enterprise Applikation
Enterprise Applikation
DB
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 72
Persistente Daten
EJB Conteiner
Web ContainerServlet - Engine
Web Server
Web Browser
Ein WEB Hit aus J2EE Sicht Ein WEB Hit aus J2EE Sicht
KLICKoder
ENTER
Browserschickt request
Server empfängt request
Servlet Engine sucht JSP/ erzeugt
einen Thread
JSP benutzt
JSP Bean
JSP Bean benutzt EJB home und
remote Methoden
Session EJB führt Businessmethoden aus
Entity EJB repräsentieren BO‘s
RDBMS und/oder Persistence Schicht System liefern BO Daten
Session EJB liefert Ergebnis an JSP Bean
JSP bildet Ergebnis in HTML ab
Server sendet HTML zum
Browser
Browser rendert HTML
Ergebnis
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 73
Things to Things to considerconsider with J2EE with J2EE (and any other distributed Obj System)(and any other distributed Obj System)
• Architektur• Transaktionsmodel• Objekt Zustand und Verteilung• Objekt Identität• Skalierung des Systems• O/R mapping
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 74
J2EE - Architektur - J2EE SchichtenJ2EE - Architektur - J2EE Schichten
Enterprise A
pplicationClient Server
J2EE Containr (JSP/Servlet/...) EJB Container DB
Presentation
Renders HTMLContent
Field - Syntax Validation
Application
Invokes services
Maintain conversational
state
Page flow
Service
Object Distribution
Use case control
Transaction control
Domain
Businessbehavior
SemanticValidation
Persistence
Basic CRUDservices
O7R mapping
Transaction support
Domain Objectsor Object State
Domain Objectsor Entity Beans
Application Objectsand Domain Object State
Simple DataTypes
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 75
J2EE - Architektur - Service ArchitekturJ2EE - Architektur - Service Architektur
JSP/Servlet Client
Java Client
Account Services
Order Services
Rechnungs Services
Application Objecte
Domain Objecte
Domain Model
System verhaltens und Domain Grenze
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 76
J2EE - Transaktionsmodel 1J2EE - Transaktionsmodel 1
Transaktion über eine gesamten Use Case. Die Bearbeitung von BO Daten findet innerhalb der Transaktion statt.
Die Bearbeitung von BO Daten findet ausserhalb einer Transaktion statt.Der Use Case wird in mehrerer kurze Transaktionen, die unterschiedliche Ressource binden zerlegt.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 77
J2EE - Transaktionsmodel 2J2EE - Transaktionsmodel 2
Write-Write Conflicts kennen wir:
Write-Write Conflict Erkennung
Account Services
getAccountgetAccount
Zeit
2000+1000
2000+1000
2000,003000,00 4000,00
•Timestamps •Counters •State comparison
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 78
J2EE - Objekt Zustand und Verteilung 1J2EE - Objekt Zustand und Verteilung 1
Das Problem mit der Serialisierung:Transitive Menge Gewünschte Menge
Person
Adresse
Stadt
Verzeichnis der Städte
Andere Daten
Remote Objekt Referenz und Serialisierung Remote Objekt Referenzen
jeder Aufruf einer Methode ist ein remote Aufruf. Wenn X get Methoden benötigt werden, um den Namen, Vornamen etc. der Person darzustellen finden mindestens X-1 unnötige Remote Aufrufe statt. Ein System das sich so verhält wird als chatty bezeichnet.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 79
J2EE - Objekt Zustand und Verteilung 2J2EE - Objekt Zustand und Verteilung 2
Account ServicesService Client
MethodenAufruf
StateHolder
Return Wert
Domain Model
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 80
J2EE - Objekt Zustand und Verteilung 3J2EE - Objekt Zustand und Verteilung 3
•So wenig Objekte verteilen wie nötig •So wenig remote Referenzen wie möglich •Keine serialisierten Objektgeflechte versenden wenn nur ein Teil benötigt wird•Nur vom Client benötigte Daten senden.•Keine großen Objekt Sammlungen an den Client - Leichtgewichtigen Ersatz verwenden•Meistens sind State Objekte in unterschiedlicher Ausprägung eine gute Wahl.
Guide für Objekt Verteilung:
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 81
J2EE - Skalierung des Systems 1J2EE - Skalierung des Systems 1
Stateful versus Stateless Session Beans
Entity Beans versus Java Classes
Stateless Beans können von vielen Sessions benutzt werden aber Session Status Informationen müssen irgend wo anders abgelegt werden.
Entity Beans sind Schwergewichte und dementsprechend belasten sie den EJB Containert sehr. Hier macht es die Mischung aus Entity Objekten und abhängigen Objekten die als ‚normale‘ Java Objekte implementiert werden könne.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 82
J2EE - Skalierung des Systems 2J2EE - Skalierung des Systems 2
JSPs and JSP Beans
Connection Pooling
Große Ergebnismengen
JSP‘s und JSP Beans sind, neben der HTTP Session eine Ort wo Session Status Informationen gespeichert werden können.
Verbindungen zur Datenbank sind eine ‚teuere‘ Ressource, dieam besten zu 100 % genutzt werden sollte. Deshalb sollte sie vielen Clients zur Verfügung stehen. Ist nur in Verbindung mitdem Model der kurzen Transaktionen möglich.
Eine Abfrage kann zu großen Ergebnismengen führen. In diesem Fall muß das System dem Client einen ‚Cursor‘Mechanismus anbieten und sollte nicht die gesamte Ergebnismenge zurück liefern.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 83
J2EE - O/R mapping 1J2EE - O/R mapping 1
Objekt Dirtiness
Objekt Identität
Die Persistenzschicht muß in der Lage sein jede Änderung in einem Objekt zu erkennen um diese Persistent zu machen.
Oder wer gehört zu wem. Insb. Mit State Objekten ein Problem.
A
C
B
C
BA
C=??
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 84
J2EE - O/R mapping 2J2EE - O/R mapping 2
Automatisch (CMP) oder von Hand (JDBC) ??
Beides !!
•CMP rein zur Speicherung und Suche nach einzelnen, kompletten Objekten.
•JDBC zur Bildung von Listen und immer wenn Optimierung nötig.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 85Directory Server
Message oriented Middleware
Backendsysteme
Besands- führung I
Client I*Net
WEB Container
Besands- führung II
The BIG PictureThe BIG Picture
KundenEJB Container
MAILSERVER
WAPGateway
Portal
One to OneMarketingSystem
Connector‘s
Connector‘s
Connector‘s
...
UseCase
UseCase
JSP/ServletBrowser + JavaScript
WAP Mobil - Device
EMailClient
Besands- führung I
Callcenter
...
Connector’s
UseCase
UseCase
I*Net DB
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Connector’sConnector’s
Ser
vice
Bro
ker
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 86Directory Server
J2EE Schichten - in der i*Net PlattformJ2EE Schichten - in der i*Net Plattform
Message oriented Middleware
Backendsysteme
Besands- führung I
Client I*Net
WEB Container
Besands- führung II
KundenEJB Container
MAILSERVER
WAPGateway
Portal
One to OneMarketingSystem
Connector‘s
Connector‘s
Connector‘s
...
UseCase
UseCase
JSP/ServletBrowser + JavaScript
WAP Mobil - Device
EMailClient
Besands- führung I
Callcenter
...
Connector’s
UseCase
UseCase
I*Net DB
Ser
vice
Bro
ker
Connector’sConnector’s
Pre
sent
atio
n
Per
sist
ence
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Ent
erpr
ise
App
licat
ione
n
App
licat
ion
Dom
ain
Domain
Ser
vice
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 87
WEB Container
One to One Marketing System / PortalOne to One Marketing System / Portal
Portal
One to OneMarketingSystem
• Personalisierung
• Authentifizierung
• Tracking
• Business Rule Engine
• Business Rule Managment System
• Session Handling
• Rechte Rollen Konzept
Broadvision
ILOG JRules /USoft Developer Series
+ BEA Commerce Servers
ILOG JRules /USoft Developer Series
+ IBM Enterprise Information Portal
Mögliche Produkte:
Portal
One to OneMarketingSystem
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 88
Contentmanagament System/Contentmanagament System/Web AuthoringWeb Authoring
WEB Container
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Verwaltet den Inhalt des I*NET Portals und ermöglicht die Erstellung von HTML Seiten ohne HTML Kenntnisse idealer weise als WEB Anwendung.
Führt den Anwender (Inhouse/Außendienst) am Cooperate Designentlang zu seinen neuen Seiten.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 89
WEBContainer
Webanwendungen in der i*Net PlattformWebanwendungen in der i*Net Plattform
JSP/Servlet
WEB Anwendungen innerhalb der i*NET Plattform bilden das Model View Controller Pattern ab.
Browser
ViewJSP
ControllerServlet
UseCase OBJ
dispatch
Request forward
get Data
Model(EJB‘s)
POST request
Contentmanagament
get Content
GET respons
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 90
Service BrokerService Broker
EJB Container
Ser
vice
Bro
ker
Ist System / Plattformunabhänige Schnittstelle zu den Usecase
Entkoppelt die Systeme/Dienste durch den Einsatz von XML dies macht eine unabhängige Weiterentwicklung der Subsysteme und ‚Anwednungen‘ möglich
XML dispatch
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 91
UseCaseUseCase
EJB Container
UseCase
Ein ‚Usecase‘ ist hier ein Teil einerSzenario Implementierung. Er stellt die für die Durchführung eines Szenarios nötigen Funktionenzur Verfügung.
Zusätzlich bildet er die Transaktionsklammen für alle ablaufenden Teilfunktionen. Dabei muß auch ein zwei Phasen Commit möglich sein (Einbindung von Basissystemen).
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 92
EJB Container
UseCase/„Szenario“
UseCase
UseCase/Szenario - genauer betrachtetUseCase/Szenario - genauer betrachtet
Szenario Logik
Sze
nario
Inf
erfa
ce O
bjec
t
Entity Logik
Ent
ity
Obj
ect
Ent
ity
Obj
ect
Ent
ity
Obj
ect
Prozeß Logik
Bus
ines
s ac
tivity
O
bjec
t
Bus
ines
s ac
tivity
O
bjec
t
Bus
ines
s ac
tivity
O
bjec
t
Bus
ines
s ac
tivity
O
bjec
t
Bus
ines
s ac
tivity
O
bjec
t
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 93Directory Server
Basis- / BackendsystemeBasis- / Backendsysteme
Backendsysteme
Besands- führung I
Besands- führung II
Kunden
Connector‘s
Connector‘s
Connector‘s
Besands- führung I
Callcenter
...
Connector’s I*Net DB
Message oriented Middleware
Connector’s
Connectoren werden für alle benötigten Basissysteme erstellt, so werden diese in der i*Net Plattform einheitlich verfügbar gemacht.
Neben Connectoren zu Basissystemen sind auch Connectoren zu i*Net Plattform eigenen Diensten wie DB, Messaging und Directory nötig.
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 94
Szenario 1 in der VisionSzenario 1 in der Vision
BackendsystemeInteressent I*Net
WEB Container Kunden
EJB Container
JSP/Servlet
Tarifengine
I*Net DB
ContolerServlet
Tarif INFOView
getTarifInfo
createInteressent
createInfoRequest
Con
tent
M
anag
emen
t
Ser
vice
Bro
ker
Szenario 1
getTarifInfo
MAILSERVER A
AP
Info
Re
que
stIn
tere
ssen
t
postEMAIL
getMailVorl
getAAP
createInfoRequest
createInteressent
getTarifInfo
AAP
Browser + JavaScript
EMailClient
EMailClient
Browser + JavaScript
post TARIF FORM
(XML) Service requgetTarifInfo
getTarifInfo
CICS/MQS/JNI/...
respons
data (XML)
content (XML)
Respons TARIFINFO
createInfoRequest
AAP SYS
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 95
Szenario 1 in der VisionSzenario 1 in der Vision
BackendsystemeInteressent I*Net
WEB Container Kunden
EJB Container
JSP/Servlet
Tarifengine
I*Net DB
ContolerServlet
Tarif INFOView
getTarifInfo
createInteressent
createInfoRequest
Con
tent
M
anag
emen
t
Ser
vice
Bro
ker
Szenario 1
getTarifInfo
createInfoRequest
MAILSERVER A
AP
Info
Re
que
stIn
tere
ssen
t
postEMAIL
getMailVorl
getAAP
createInfoRequest
createInteressent
getTarifInfo
AAP
Browser + JavaScript
EMailClient
EMailClient
Browser + JavaScript
post Info request (XML) Service requ
data (XML)
content (XML)
Respons Info request
createInfoRequest
createInteressent
createInfoRequest
getAAP
getMailVorl
postEMAILJavaMail API
Info + Vorlage
Inte
ress
ent
Info
Re
que
stA
AP
AAP SYS
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 96Timed Service
Szenario 3 in der VisionSzenario 3 in der Vision
BackendsystemeKunde I*Net
WEB Container Kunden
EJB Container
MAILSERVER
Portal
One to OneMarketingSystem
JSP/Servlet
Workflow
I*Net DB
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Ser
vice
Bro
ker
Kun
de
AA
P AAP SYS
getVorgStatus
(XML) Service requ Workflow Connector
getKundeSzenario 3
getVorgInfo
createAkquiHint
getVorgInfo
getKunde Kun
de
Workflow Connectordata (XML)
content (XML)
getTracinkData
postEMAIL
getMailVorl
getAAP
getVorgang
getVorgang
AAP
Browser + JavaScript
EMailClient
EMailClient
Browser + JavaScript
post Info request
Respons VorgangStat
Logon + session MM
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 97
Szenario 3 in der VisionSzenario 3 in der Vision
BackendsystemeKunde I*Net
WEB Container Kunden
EJB Container
MAILSERVER
Portal
One to OneMarketingSystem
JSP/Servlet
Workflow
I*Net DB
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Ser
vice
Bro
ker
Kun
de
AA
P AAP SYS
getVorgStatus
Workflow Connector
getKunde
Timed Service
Szenario 3
getVorgInfo
createAkquiHint
Kun
de
getTracinkData
postEMAIL
getMailVorl
getAAP
getVorgang
Tracking Infonach
Business Rules
Tracking Infonach
Business Rules
Timed Service
getTracinkData
createAkquiHint
getAAP
getMailVorl
postEMAIL
AAP
Browser + JavaScript
EMailClient
EMailClient
Browser + JavaScript
JavaMail APIInfo + Vorlage
create WebPage
Vo
rlag
e +
Lin
k
Logon + session MM SURFT
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 98
Szenario 3 in der Vision (Variante)Szenario 3 in der Vision (Variante)
BackendsystemeKunde I*Net
WEB Container Kunden
EJB Container
MAILSERVER
Portal
One to OneMarketingSystem
JSP/Servlet
Workflow
I*Net DB
Con
tent
M
anag
emen
t/ W
eb
Aut
hori
ng
Ser
vice
Bro
ker
Kun
de
AA
P AAP SYS
getVorgStatus
Workflow Connector
getKunde
Timed Service
Szenario 3
getVorgInfo
createHintEMail
Kun
de
getTracinkData
postEMAIL
getMailVorl
getAAP
getVorgang
Tracking Info
Tracking Info
Timed Service
getTracinkData
createHintEMail
getAAP
getMailVorl
postEMAIL
AAP
Browser + JavaScript
EMailClient
EMailClient
Browser + JavaScript SURFT
JavaMail APIInfo
create WebPage
Info Mail mit Link
requ
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 99
Wichtige Kriterien für die i*Net PlattformWichtige Kriterien für die i*Net Plattform
• ‚kleine‘ Subsysteme
• lose Kopplung zwischen den Subsystemen
• XML wo immer möglich
• Verteilung der Last auf alle Schichten
• Einsatz von Industriestandards
• Einsatz von etablierten Produkten
• frühe Ein-/Anbindung bestehender Systeme
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 100
XML und PerformanceXML und Performance
0
500
1000
1500
2000
2500
3000
3500
4000
Aufrufen
Mil
lisec
serobj mit 3 Param
XML mit 3 Param
serobj 6 Param
XML 6 Param
serobj 9 Param
XML 9 Param
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 101
Portal
One to OneMarketingSystem
Content Manage-
ment
Connector
Service Broker
Ergebnisse der i*Net Plattform 1Ergebnisse der i*Net Plattform 1
UseCase/„Szenario“
Java Framework und Templates
Server + EJB das über eine XML Schnittstelle jeglichen Service starten kann.
Java Basisklassen und Templates + Connectoren
Verbindung zum One to One System
Einrichtung und Anbindung Templates für das Business Rule SystemEinrichtung der Business Rule Umgebung(Event System)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 102
Ergebnisse der i*Net Plattform 2Ergebnisse der i*Net Plattform 2
Directory Server
Message oriented Middleware
Einrichten der Plattform Message Threads Standard Connectoren
Einrichten der Plattform Struktur Standard Connectoren
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 103
Things to keep in mind 1Things to keep in mind 1
Architektur:
•System in die Schichten zerlegen entscheiden wo welches Objekt ‚lebt‘•Benötigte Services und deren ‚Service Manager‘identifizieren•Definieren des Services API (XML ?)•Die Art benötigten Transaktionen festlegen•Entscheiden ob und wie write-write Konflikte erkannt werden•Objekt Verteilung festlegen - Referenzen - State Objekte - Distribution Objekte (enthalten Informationen aus mehreren Domain Objekten)
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 104
Things to keep in mind 2Things to keep in mind 2
Skalierung:
•Wie viele konkurrierende Benutzer wird es geben ?•Wie viele statefull Beans wird das System verkraften ?•Was soll ‚gepoolt‘ werden und in welchem Umfang ?•Die Art benötigten Transaktionen festlegen ?•Wie werden große Ergebnismengen behandelt ?
Architekturen von Web-Anwendungen, LMU, WS-01/02 Folie 105
Things to keep in mind 3Things to keep in mind 3
Persistenz:
•RDBMS oder Objekt DB ?•Bei RDBMS O/R mapping build - buy ?•Persistenz für jeden Service betrachten•RDBMS Dantenbank Design muß das Objekt Model unterstützen•Anforderungen der benötigten Legacy Systeme beachten