Rolle von Java Verteilte Verarbeitung mit Java J2EE Ãœbersicht by bzs12927

VIEWS: 41 PAGES: 105

									                                                   Rolle von Java
                              Verteilte Verarbeitung mit Java
                                               J2EE Übersicht
                                                   J2EE Details




Architekturen von Web-Anwendungen, LMU, WS-01/02                    Folie 142
Entwicklung 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 143
Rolle 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 144
Java Entwicklung und Ausführung


              Java                                                                                    Class
          SourceCodes                                                                                Loader




                                              Laden vom Filesystem

                                                                     oder über das Netz
             Java                                                                                  ByteCode
            Compiler                                                                                Verifier




                                                                                                                 Just in Time
              Java
                                                                                                                  Compiler
           ByteCodes

                                                                                                Java
      Java Developers Kit                                                                 Virtual Machine
                                                                                                                     Binary
            IDE´s
                                                                                                                     Code

  IDE: Integrated Development Environment
        z.B. JBuilder von Borland                                                                    Java Platform

Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                Folie 145
Java 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 146
Java in .NET (JUMP)

                                       Ca. 20 Sprachen
                                             Visual                                                                          Class
                       Visual Baisc                            C#
                                            J# .NET                                                                         Loader




                                                                           Laden vom Filesystem

                                                                                                  oder über das Netz
                        Compiler           Compiler         Compiler




                                                                                                                           Common
                                                                                                                       Language Runtime
   Java                JUMP                                                                                                  CLR
                                             MSIL
ByteCodes             Converter



                                       Visual Studio .NET                                                              .NET Framework



                                                      MSIL: Microsoft Inrtermediate Language
                                                      JUMP: Java User Migration Path (to Microsoft .NET)
                                                            - Nur Sprache
Architekturen von Web-Anwendungen, LMU, WS-01/02            - Keine Unterstützung für API´s wie RMI                                       Folie 147
                              Verteilte Verarbeitung mit Java




Architekturen von Web-Anwendungen, LMU, WS-01/02                Folie 148
Verteilte 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 basiert
              Verteilung im LAN
•     Fall 3: Hauptteil der Anwendung Java basiert
              Verteilung im LAN
              Anwendungsteile in anderen Sprachen
•     Fall 4: Verteilung Java Anwendung im Web
              Option der Integration mit anderen Sprachen




Architekturen von Web-Anwendungen, LMU, WS-01/02                Folie 149
CORBA

                                                     Generiert aus
                                                       Interface
                                                   beschrieben in IDL



                               Client                                        Server




                           Client Stub                                  Server Skeleton



                                        Object Request Broker (ORB)


            Client und Server können                       CORBA/IDL sorgt für Mapping
            • in beliebigen                                der Interfaces
            • auch unterschiedlichen
            Sprachen geschrieben sein

Architekturen von Web-Anwendungen, LMU, WS-01/02                                          Folie 150
CORBA; Client in Java

                                                     Generiert aus
                                                       Interface
                                                   beschrieben in IDL


                               Client                                       Server
                               Java                                      bel. Sprache



                           Client Stub                                  Server Skeleton



                                        Object Request Broker (ORB)


            • 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 151
CORBA; Server in Java

            Generiert aus                            Generiert aus
          Interface in Java                            Interface
                                                   beschrieben in IDL


                              Client                                        Server
                          bel. Sprache                                       Java



                           Client Stub                                  Server Skeleton



                                       Object Request Broker (ORB)


            • Standardfall für CORBA
            • Interface in IDL notwendig; generiert aus Java
            • Server Skeleton für Java geniert aus IDL


Architekturen von Web-Anwendungen, LMU, WS-01/02                                          Folie 152
  CORBA über Internet

  Generiert aus                                                                    Generiert aus
    Interface                                                                        Interface
beschrieben in IDL                                                               beschrieben in IDL



                                Client                                  Server




                            Client Stub                            Server Skeleton


                                                    IIOP
                           ORB-1                                                 ORB-2


             Client und Server können                 CORBA/IDL sorgt für Mapping
             • in beliebigen                          der Interfaces
             • auch unterschiedlichen
             Sprachen geschrieben sein
                                                      IIOP – Internet Inter-ORB Protocol
 Architekturen von Web-Anwendungen, LMU, WS-01/02                                              Folie 153
Verteilte 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 basiert
              Verteilung im LAN
•     Fall 3: Hauptteil der Anwendung Java basiert
              Verteilung im LAN
              Anwendungsteile in anderen Sprachen
•     Fall 4: Verteilung Java Anwendung im Web
              Option der Integration mit anderen Sprachen




Architekturen von Web-Anwendungen, LMU, WS-01/02                Folie 154
RMI – Remote Method Invocation


                              Client                                       Server
                              (Java)                                       (Java)



                           Client Stub                               Server Skeleton



                              Java 2 Platform Standard Edition (J2SE)



           •   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 155
Verteilte Verarbeitung mit Java (Beispiel)

                                                           Web Browser
                                 Applet
                                                              Lädt Applet


                                                           HTTP
                           RMI

             Remote                                         Web Server
              Method
            Invocation




                               EJB
                                                                            File System
                                                   Application Server




Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                            DB                            Folie 156
Verteilte Verarbeitung mit Java

•     Fall 1: Nutzung von Java in normaler CORBA Anwendung
•     Fall 2: Anwendung Java basiert
              Verteilung im LAN
•     Fall 3: Hauptteil der Anwendung Java basiert
              Verteilung im LAN
              Anwendungsteile 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 Web
              Option der Integration mit anderen Sprachen


Architekturen von Web-Anwendungen, LMU, WS-01/02                                       Folie 157
Verteilte Verarbeitung mit Java

•     Fall 1: Nutzung von Java in normaler CORBA Anwendung
•     Fall 2: Anwendung Java basiert
              Verteilung im LAN
•     Fall 3: Hauptteil der Anwendung Java basiert
              Verteilung im LAN
              Anwendungsteile in anderen Sprachen
•     Fall 4: Verteilung Java Anwendung im Web
              Option 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 158
RMI über IIOP


               Client                                         Server
               (Java)                                         (Java)



             Client Stub                                  Server Skeleton


                                                   IIOP
                 J2SE                                           J2SE




             • Wie Standard RMI
             • Benutzung des IIOP Protokolls
             • Damit Verteilung über das Internet



Architekturen von Web-Anwendungen, LMU, WS-01/02                            Folie 159
   Verteilte Verarbeitung mit RMI über IIOP (Beispiel)

           Internet                                            Web Browser
          Inter-ORB                           Applet
           Protocol
                                                                  Lädt Applet



                                                                HTTP
                                    RMI über IIOP
                                                                Web Server
Nur Java zu Java



                                            EJB
                                                                                File System
                                                       Application Server




                                                                DB
  Architekturen von Web-Anwendungen, LMU, WS-01/02                                    Folie 160
Kooperation RMI und CORBA (Java Client)

                                                                                     Generiert aus
                                                                                       Interface
               Client                                             Server           beschrieben in IDL
               (Java)                                         (bel. Sprache)



             Client Stub                                     Server Skeleton


                                                   IIOP
                 J2SE                                                ORB



           • 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


Architekturen von Web-Anwendungen, LMU, WS-01/02                                                 Folie 161
  Verteilte Verarbeitung mit CORBA (Beispiel)

                                                                 Web Browser
                                             Applet
                                                                  Lädt Applet


                                                                   HTTP

• IIOP – Kommunikation
                                          IIOP
  zwischen J2SE und                                                Web Server
  ORBs verschiedener
  Hersteller
• Einbindung unterschiedl.
  Sprachen möglich

                                 Object Request Broker
                                                                                File System

                                 Java               C++   Andere Sprachen




                                                                  DB
 Architekturen von Web-Anwendungen, LMU, WS-01/02                                      Folie 162
Kooperation RMI und CORBA (Java Server)

                                      Generiert aus
                                        Interface
               Client               beschrieben in IDL            Server
          (bel. Sprache)                                          (Java)



             Client Stub                                     Server Skeleton


                                                   IIOP
                 ORB                                                J2SE



           • 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




Architekturen von Web-Anwendungen, LMU, WS-01/02                                                 Folie 163
Vorteile 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 164
             Java 2 Platform, Enterprise Edition; Übersicht




Architekturen von Web-Anwendungen, LMU, WS-01/02              Folie 165
Java 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 166
J2EE Stufen Architektur
                                                                                            Tiers
                       fat Client                         Web Browser
                 Client Container
                                                      HTML             Applet               Client
                    Appl. Client



                                                        Web Container
              J2EE               Platform
                                                       JSP        Servlets                      Web




                                                                                                           J2EE Server
                                     EJB Container
                 Entity EJB´s         Session EJB´s   Message-Driven EJB´s                Business




                                                                                          Enterprise
                Database               ERP Systems       Legacy Systems                  Information
                                                                                           System
                                                      Application Component
Architekturen von Web-Anwendungen, LMU, WS-01/02                                                      Folie 167
                                                      J2EE Container            J2EE Platform
J2EE

•     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 168
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 169
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 170
  Referenzarchitektur



                 LAN                                                                                         HTTP
                                                                                                                                                 Firewall




                                                                                                                                Schnittstellen
                                                                                                                                 Verzeichnis
                                                                                                          Portal Server                               Verzeichnis
                                                                            Transaktions-Management

                                                                                                                                                       Services
                                                       Prozess-Management
                                  Content Management
             Messaging Services




                                                                                                      Benutzer-Schnittstellen
Sicherheit




                                                                                                         Komponenten                                   Geschäfts
                                                                                                                                                        Partner
                                                                                                            Business




                                                                                                                                Integrations
                                                                                                                                  Services
                                                                                                          Komponenten                                 ERP Systeme


                                                                                                        Datenbank-Zugriffe                             Alt-Anwend.

                                                                                                                                                      Datenbanken

                                                                                   Datenbanken
Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                                               Folie 171
 Referenzarchitektur mit J2EE Komponenten
                                                                                                      Blaue Schrift in gestreiften Boxen
                                                                                                      kennzeichnen Komponenten der
                                                                                                      J2EE Definition
           LAN                                                                 HTTP
                                                                                                                  Firewall



                                                                            Portal Server                              Verzeichnis
                                                                                                                        Services




                                                                                                  JNDI
                                              Prozess-Management
                         Content Management
        JMS - JavaMail




                                                                                JSP
                                                                               Servlet                                   Geschäfts
JAAS




                                                                   JTA




                                                                                                                          Partner
                                                                         Enterprise JavaBeans




                                                                                                WebServices
                                                                                 JAXP                                  ERP Systeme




                                                                                                   JCA
                                                                              JDBC API                                  Alt-Anwend.

                                                                                                                        Datenbanken

                                                                    Datenbanken
Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                 Folie 172
                         Java 2 Platform, Enterprise Edition
                                                   Details



                                             Christian Menk
                                       Software Architektur Berater
                                             Softlab GmbH




Architekturen von Web-Anwendungen, LMU, WS-01/02                      Folie 173
J2EE 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 174
Java 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 175
Java Servlet API 2


                   HTTP Server
                        Java VM
                                      HTTPServlet
                                     HTTPServlet
                                     HTTPServlet
                                      doGet(HttpServletRequest request,
                                      doGet(HttpServletRequest request,
                                     doGet(HttpServletRequest request,
                                       HttpServletResponse response);
                                      HttpServletResponse response);
                                     HttpServletResponse response);
                                       doPost(HttpServletRequest request,
                                      doPost(HttpServletRequest request,
                                     doPost(HttpServletRequest request,
                                       HttpServletResponse response);
                                      HttpServletResponse response);
                                     HttpServletResponse response);




Architekturen von Web-Anwendungen, LMU, WS-01/02                            Folie 176
Java Servlet API 3


                                                   HTTP Server
                                                     Java VM
              request
                request                                  HTTPServlet
                  request                                 HTTPServlet
                    request                                HTTPServlet
                                                             HTTPServlet
                                                                   thread


                                                     CGI Process
              request                                CGI Process
                request
                  request
                    request                          CGI Process
                                                     CGI Process




Architekturen von Web-Anwendungen, LMU, WS-01/02                            Folie 177
      Servlet 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 178
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 179
Java Server Pages (JSP) 2

                                 HTTP Server
        5:response
                                      Java VM + JSP Engine
       1:request 1

       6:request 2-n                                    HTTPServlet
       5:response
                                                                   4:Kompiliert
                                                                   und lädt
                                2:lädt                3:erzeugt

                                        JSP Seiten           Servlet
                                      (HTML+JAVA)            Source




Architekturen von Web-Anwendungen, LMU, WS-01/02                                  Folie 180
    JSP Beispiel
<jsp:useBean id="ordering" scope="session" class="com.bmw.ivs.jsp.OrderBean" />


<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>

 <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 181
Java Authentiction and Authorization Service (JAAS)

•Standard erweiterung der Java 2 Plattform
• Authentifizierungs-Framework
• Pluggable authentication
• User basierte Autorisierung


                                                   Application

                                           Login Context API                 Konfig.

                                                   LoginModul



               Kerberos                            Smart Card    Biometric


Architekturen von Web-Anwendungen, LMU, WS-01/02                               Folie 182
Java Authentiction and Authorization Service (JAAS) 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 183
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 184
Java Naming and Directory Interface (JNDI) 2

      LDAP                                Directory                   EJB Store
              Role                                 src                  EJB Home A
                         User                            a.java
                                                                       EJB Home B
                         User                            b.java
                                                                       EJB Home C
              Role                                 doc
                         User                            Tut.txt

                                                     JNDI
                 Lookup                            Lookup                    Lookup
                           Java Application

                                                                    EJB

                                                                   Servlet



Architekturen von Web-Anwendungen, LMU, WS-01/02                                      Folie 185
Java 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 186
Java Remote Method Invocation RMI Ablauf
                                          JNDI
                                                   Stub


  Java VM                   1: lookup                                          Java VM
                                              2: get

       Java Applikation
                                                       4: call Skeleton
       8: result        3: call


                                                            •Netz                            Skeleton
                                                                              6: return result      5: call OBJ

                 Stub
                                                                                         Java Object


                                                          7: result to Stub
Architekturen von Web-Anwendungen, LMU, WS-01/02                                                         Folie 187
Java 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 188
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 189
Enterprise Java Beans Prinzip


                         JNDI
                         ...
                         MyBeanHome
                         ...

Client              1                                         EJB Container
...
lookUp
                                                                                       3a
                                                         2
create or find on EJB Home OBJ
                                                         3c                      EJB OBJ
                                                                 3b
cast to EJB remote OBJ
                                                   5                     6
invoke Method                  4    Remote Stub        Server Skeleton       7
...
                                9                  8


Architekturen von Web-Anwendungen, LMU, WS-01/02                                            Folie 190
Enterprise 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 191
Enterprise 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 192
Enterprise 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 193
Enterprise Java Beans Session Beans
       Es existieren zwei Arten von Session Beans:
       •Statefull: sind einer Session zugeordnet und speichern Informationen
       von einem Aufruf zum nächsten.
       •Stateless: sind keiner Session zugeordnet innerhalb der Session Bean
       dürfen keine Informationen gespeichert werden.

               Client Zeit                            Client Zeit



                       Pool                                Pool
   Statefull Session
    Statefull Session                              Stateless Session
      Statefull Session
         Bean                                       Stateless Session
       Statefull Session
           Bean                                       Stateless Session
         Statefull Session                                Bean
                                                       Stateless Session
             Bean                                          Bean
              Bean                                           Bean
                Bean                                          Bean


Architekturen von Web-Anwendungen, LMU, WS-01/02                               Folie 194
Enterprise 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


                                 EJB Container
SetA(newA)                                                      Store newA to DB

                                   Set newA
                                                   CMP Entity
                                                                                   DB
SetA(newA)                       Set newA                       Store newA to DB
                                 and Store         BMP Entity



Architekturen von Web-Anwendungen, LMU, WS-01/02                                        Folie 195
Enterprise Java Beans Message Beans

    • Neuer Enterprise Java Bean Typ in JB 2.0
    • Asynchron
    • Wird beim Serverstart erzeugt
    • Wird beim eintreffen einer Nachricht         aktiviert
    • Ist Stateless
    • Hat kein Home oder Remote interface
    • Die Methode onMessage enthält die Business Logic
    • Ist einer JMS Queue oder einem Topic zugeordnet




Architekturen von Web-Anwendungen, LMU, WS-01/02               Folie 196
Enterprise Java Beans Message Beans 2


                 EJB Container

                                 Stateless
                                                                     CMP Entity
                              Sessionbean

                                Interaction                       Interaction
                                                   Message Bean



                                                         onMessage


                 JMS Provider




Architekturen von Web-Anwendungen, LMU, WS-01/02                                  Folie 197
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-Bridge
          2. plattformeigene JDBC-Treiber
          3. universelle JDBC-Treiber
          4. direkte JDBC-Treiber




Architekturen von Web-Anwendungen, LMU, WS-01/02                       Folie 198
Java Database Connectivity 2 (JDBC)

                                    Ablauf der Kommunikation mit einer JDBC DB

  Java VM
                                  erzeugen
                                                  Connection
        Ablauf DB Kommunikation




                                  erzeugen                         Wird in DB
                                               PreparedStatement
                                                                   gespeichert
                                                                                 DB

                                                                   ausführen
                                                   Statement
                                   ausführen
                                   auswerten
                                                                    Ergebnis
                                                ResultSet




Architekturen von Web-Anwendungen, LMU, WS-01/02                                      Folie 199
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 200
Java Message Service (JMS) 2
Point to Point

    JMS Sender                                                    JMS Empfänger
           A                                       JMS Provider      A

           B                                          Queue          C

           C                                                         B
                                                       DB

Publish - Subscribe
  JMS Sender                                                      JMS Empfänger
           A                                       JMS Provider    A,B,C

           B                                         TOPIC         A,B,C

           C                                                       A,B,C
                                                       DB
Architekturen von Web-Anwendungen, LMU, WS-01/02                             Folie 201
Java 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 202
Java Transaction API (JTA)




Architekturen von Web-Anwendungen, LMU, WS-01/02   Folie 203
Java Transaction Service (JTS)




Architekturen von Web-Anwendungen, LMU, WS-01/02   Folie 204
Java 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 205
Java Mail Beispiel




                 Session
                                                                     Store
                                            getFolder(„A“)
                Transport                                           Folder A
                                                   getFolder(„C“)

                                                     Folder C                  Folder C
                          getMessage(1)
                                                    Message 1                  Message 1




Architekturen von Web-Anwendungen, LMU, WS-01/02                                           Folie 206
Java Connector Architecture


                                                   Ist Schnittstelle für Applications-Komponenten
     Applikation Server
                                         Container-Component Contract
           EJB Appl.


                                         System Contract              Ressource Adapter
    Container Services
  Connection Manager
  Transaction Manager
    Security Manager                                             Enterprise System Interface


                                 Behandelt Connection, Transaction und Security
                                 Management zwischen Appserver und Enterprise System



Architekturen von Web-Anwendungen, LMU, WS-01/02                                                    Folie 207
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 208
                                                     UI -           UI -                 UI -
                                                    Object         Object               Object
                                                     UI -           UI -                 UI -
                                                    Object         Object               Object
                                                     Controler -                   Controler -
                                                      Object                        Object
                                                                                                                                    Client Server




                                                     Controler -                   Controler -
                                                      Object                        Object




Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                                                                           Client




                                                   FAT BO - Object FAT BO - Object
                                                     BO - Object     BO - Object
                                                                                                 Rich Client Application




                                                   FAT BO - Object FAT BO - Object
                                                     BO - Object     BO - Object



                                                             BO - Factory
                                                                       DB-System




Folie 209
                                                     UI -         UI -                 UI -
                                                    Object       Object               Object
                                                     UI -         UI -                 UI -
                                                    Object       Object               Object
                                                   Command     Command Command
                                                    - Object    - Object - Object
                                                                                                                                   Client Server




                                                   Command     Command Command
                                                    - Object    - Object - Object




Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                     ‚thin‘ BO -                  ‚Thin‘ BO -
                                                                                                                          Client




                                                       Object
                                                     BO - Object                    Object
                                                                                  BO - Object
                                                                                                Rich Client Application




                                                     ‚thin‘ BO -                  ‚thin‘ BO -
                                                       Object
                                                     BO - Object                    Object
                                                                                  BO - Object



                                                               BO - Factory
                                                                      DB-System




Folie 210
                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                   Command - Object              Command - Object           Command - Object                                            Command - Object              Command - Object           Command - Object                                                                                                                    Command - Object              Command - Object                      Command - Object                                                       Command - Object              Command - Object           Command - Object




                                                   Command - Object                                         Command - Object                                            Command - Object                                         Command - Object                                                                                                                    Command - Object                                                    Command - Object                                                       Command - Object                                         Command - Object
                                                                                 Command - Object                                                                                                     Command - Object                                                                                                                                                                             Command - Object                                                                                                                           Command - Object




                                                                                                                                                          Client
                                                                                                                                                                                                                                                                                            Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client
                                                            ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚Thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚Thin‘ BO - Object




                                                                                                                                Rich Client Application
                                                                                                                                                                                                                                                           Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application
                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                            ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚thin‘ BO - Object

                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                                                    BO - Factory                                                                                                         BO - Factory                                                                                                                                                                                 BO - Factory                                                                                                                               BO - Factory




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                   Command - Object              Command - Object           Command - Object                                            Command - Object              Command - Object           Command - Object                                                                                                                    Command - Object              Command - Object                      Command - Object                                                       Command - Object              Command - Object           Command - Object




                                                   Command - Object                                         Command - Object                                            Command - Object                                         Command - Object                                                                                                                    Command - Object                                                    Command - Object                                                       Command - Object                                         Command - Object
                                                                                 Command - Object                                                                                                     Command - Object                                                                                                                                                                             Command - Object                                                                                                                           Command - Object




                                                                                                                                                          Client
                                                                                                                                                                                                                                                                                            Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client




                                                            ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚Thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚Thin‘ BO - Object




                                                                                                                                Rich Client Application
                                                                                                                                                                                                                                                           Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application




                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                            ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚thin‘ BO - Object
                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                                                    BO - Factory                                                                                                         BO - Factory                                                                                                                                                                                 BO - Factory                                                                                                                               BO - Factory




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                   Command - Object              Command - Object           Command - Object                                            Command - Object              Command - Object           Command - Object                                                                                                                    Command - Object              Command - Object                      Command - Object                                                       Command - Object              Command - Object           Command - Object




                                                   Command - Object                                         Command - Object                                            Command - Object                                         Command - Object                                                                                                                    Command - Object                                                    Command - Object                                                       Command - Object                                         Command - Object
                                                                                 Command - Object                                                                                                     Command - Object                                                                                                                                                                             Command - Object                                                                                                                           Command - Object




                                                                                                                                                          Client
                                                                                                                                                                                                                                                                                            Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client




                                                            ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚Thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚Thin‘ BO - Object




Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                                                                                Rich Client Application
                                                                                                                                                                                                                                                           Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application




                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                            ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚thin‘ BO - Object

                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object




                                                                                    BO - Factory                                                                                                         BO - Factory                                                                                                                                                                                 BO - Factory                                                                                                                               BO - Factory
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Am BSP JABBA:




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                     UI - Object                     UI - Object                  UI - Object                                             UI - Object                     UI - Object                  UI - Object                                                                                                                     UI - Object                     UI - Object                             UI - Object                                                        UI - Object                     UI - Object                  UI - Object




                                                   Command - Object              Command - Object           Command - Object                                            Command - Object              Command - Object           Command - Object                                                                                                                    Command - Object              Command - Object                      Command - Object                                                       Command - Object              Command - Object           Command - Object




                                                   Command - Object                                         Command - Object                                            Command - Object                                         Command - Object                                                                                                                    Command - Object                                                    Command - Object                                                       Command - Object                                         Command - Object
                                                                                 Command - Object                                                                                                     Command - Object                                                                                                                                                                             Command - Object                                                                                                                           Command - Object




                                                                                                                                                          Client
                                                                                                                                                                                                                                                                                            Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       Client




                                                            ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚Thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚Thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚Thin‘ BO - Object




                                                                                                                                Rich Client Application
                                                                                                                                                                                                                                                           Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             Rich Client Application




                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object
                                                                                                                                                                      Speicherbedarf: über 5 Gigabyte

                                                            ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                           ‚thin‘ BO - Object                      ‚thin‘ BO - Object                                                                                                                                   ‚thin‘ BO - Object                                ‚thin‘ BO - Object                                                                       ‚thin‘ BO - Object                      ‚thin‘ BO - Object

                                                                   BO - Object                           BO - Object                                                                    BO - Object                           BO - Object                                                                                                                                            BO - Object                                      BO - Object                                                                               BO - Object                           BO - Object
                                                                                                                                                                                                                                                                                                                                                                                                                      während einer JABBA Sitzung werden


                                                                                                                                                                                                                                                                                                                               Speicherbedarf: ca 6 MB (laut Optimize)



                                                                                                                                                                   ca 280.000 Command und BO Objekte !!




                                                                                    BO - Factory                                                                                                         BO - Factory                                                                                                                                                                                 BO - Factory                                                                                                                               BO - Factory
                                                                                                                                                                                                                                                     wenn Jabba von 1.000 Benutzern gleichzeitig benutzt würde
                                                                                                                                                                                                                                                                                                                     ca 280 Command Objekte und BO Objekte plus 20 View Objekte
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Client Server - und jetzt werden es viele




                                                                                                                                                                                                                                                                                                         DB-System




Folie 211
Was macht WEB basierte Systeme komplex

                                                   Applikation Server             Backendsysteme
  Client

  Client                                          WEB             EJB Container      Besands-
                                              Container                              führung I
  Client
                                                                                     Callcenter
  Client                                           Enterprise Applikation

  Client                                                                             Mainframe
                                                   Enterprise Applikation
  Client
                                                                                        ...
  Client                                           Enterprise Applikation


  Client                                                                               DB




Architekturen von Web-Anwendungen, LMU, WS-01/02                                                 Folie 212
 Ein WEB Hit aus J2EE Sicht
                                                   Web Browser
   KLICK              Browser                                                               Browser
    oder              schickt                                                            rendert HTML
   ENTER              request                                                              Ergebnis

Web Server
                        Server                                                           Server sendet
                      empfängt                                                            HTML zum
                       request                                                             Browser

Web
Container         Servlet Engine               JSP                                           JSP bildet
Servlet -       sucht JSP/ erzeugt            benutzt                                        Ergebnis in
Engine            einen Thread               JSP Bean                                         HTML ab
EJB Conteiner                                                      Session EJB führt
                                                                 Businessmethoden aus
                                        JSP Bean benutzt                                  Session EJB
                                          EJB home und                                  liefert Ergebnis
                                        remote Methoden                Entity EJB         an JSP Bean
                                                                  repräsentieren BO‘s
Persistente Daten
                                                        RDBMS und/oder Persistence Schicht
                                                            System liefern BO Daten

Architekturen von Web-Anwendungen, LMU, WS-01/02                                                      Folie 213
Things to consider with J2EE (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 214
 J2EE - Architektur - J2EE Schichten
           Client                                            Server
 J2EE Containr (JSP/Servlet/...)                          EJB Container                   DB




                                                                                               Enterprise Application
Presentation Application                      Service          Domain       Persistence

Renders HTML             Invokes              Object            Business    Basic CRUD
   Content               services           Distribution        behavior      services

Field - Syntax         Maintain               Use case         Semantic     O7R mapping
  Validation         conversational            control         Validation
                         state                                              Transaction
                                            Transaction                       support
                        Page flow             control



         Simple Data
         Types                 Application
                                             Domain Objects
                                Objects
                                             or Entity Beans Domain Objects
                               and                           or Object State
                               Domain Object
                               State
 Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                       Folie 215
J2EE - Architektur - Service Architektur
                                 System verhaltens und Domain
                                            Grenze



                                                                              Domain Model
                                               Account Services
    JSP/Servlet Client
                                                                    Domain
                                                                    Objecte
                            Application
                             Objecte               Order Services


         Java Client

                                               Rechnungs Services




Architekturen von Web-Anwendungen, LMU, WS-01/02                                         Folie 216
J2EE - 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 217
J2EE - Transaktionsmodel 2

  Write-Write Conflicts kennen wir:                                                 Zeit
                         getAccount
                                                                      getAccount

                                                   Account Services     2000+1000
                     2000+1000

                         2000,00 4000,00
                         3000,00
  Write-Write Conflict Erkennung

                    •Timestamps
                    •Counters
                    •State comparison


Architekturen von Web-Anwendungen, LMU, WS-01/02                                    Folie 218
  J2EE - Objekt Zustand und Verteilung 1

Remote Objekt Referenz und Serialisierung
Remote Objekt Referenzen                             Das Problem mit der Serialisierung:
                                                     Transitive Menge    Gewünschte Menge
jeder Aufruf einer Methode ist ein remote
Aufruf. Wenn X get Methoden benötigt                         Person
werden, um den Namen, Vornamen etc.
der Person darzustellen finden
mindestens X-1 unnötige Remote Aufrufe
                                                                         Adresse
statt.
Ein System das sich so verhält wird als
chatty bezeichnet.
                                                                Stadt



                                                                      Andere
                                                                      Daten
                                                                               Verzeichnis
                                                                               der Städte

  Architekturen von Web-Anwendungen, LMU, WS-01/02                                         Folie 219
J2EE - Objekt Zustand und Verteilung 2

                                                                      Domain Model

                             Methoden
                              Aufruf
      Service Client                               Account Services




                          Return Wert




                                                    State
                                                    Holder



Architekturen von Web-Anwendungen, LMU, WS-01/02                                     Folie 220
 J2EE - Objekt Zustand und Verteilung 3


Guide für Objekt Verteilung:
         •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.




 Architekturen von Web-Anwendungen, LMU, WS-01/02            Folie 221
J2EE - Skalierung des Systems 1

        Stateful versus Stateless Session Beans
             Stateless Beans können von vielen Sessions benutzt
             werden aber Session Status Informationen müssen
             irgend wo anders abgelegt werden.


        Entity Beans versus Java Classes
             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 222
J2EE - Skalierung des Systems 2

     JSPs and JSP Beans
             JSP‘s und JSP Beans sind, neben der HTTP Session
              eine Ort wo Session Status Informationen
             gespeichert werden können.
     Connection Pooling
             Verbindungen zur Datenbank sind eine ‚teuere‘ Ressource, die
             am besten zu 100 % genutzt werden sollte. Deshalb sollte sie
             vielen Clients zur Verfügung stehen. Ist nur in Verbindung mit
             dem Model der kurzen Transaktionen möglich.

     Große Ergebnismengen
             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 223
J2EE - O/R mapping 1

        Objekt Dirtiness
           Die Persistenzschicht muß in der Lage sein jede Änderung
           in einem Objekt zu erkennen um diese Persistent zu machen.

        Objekt Identität
            Oder wer gehört zu wem. Insb. Mit State Objekten ein Problem.
       A                                  B        A       B



                  C = C                                C
                    ??

Architekturen von Web-Anwendungen, LMU, WS-01/02                        Folie 224
J2EE - 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 225
  The BIG Picture

  Client                                                    I*Net                                            Backendsysteme

                                             WEB                               EJB Container
                                         Container                                                               Kunden
Browser +              JSP/Servlet
JavaScript
                                                                                                                  Besands-
                                                                                                               Besands-
                       One to One                                                                              Besands- I
                                                                                                                  führung
                                                                               UseCase         Connector‘s     führung II
                        Marketing                                                                               führung I
                         System




                                                            Service Broker
                                                                               UseCase
                                                                                                               Callcenter
                                                                                               Connector‘s
                                          Management/ Web
                           Portal
                                                                               UseCase
                                             Authoring
                                              Content



WAP Mobil
 - Device                                                                                                         ...
                                                                               UseCase         Connector‘s
                          WAP
                         Gateway
                                                                                  ...

  EMail                   MAIL                                                                 Connector’s      I*Net DB
  Client                 SERVER            Connector’s
                                                                             Connector’s

                                                            Message oriented Middleware
 Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                       Folie 226
                                                    Directory Server
  J2EE Schichten - in der i*Net Plattform

  Client                                                         I*Net                                                 Backendsysteme

                                     WEB Container                                      EJB Container
                                                                                                                           Kunden
Browser +                 JSP/Servlet




                                                                                                                           Enterprise Applicationen
JavaScript
                                                                                                                            Besands-
                                                                                                                         Besands-
                          One to One                                                                                     Besands- I
                                                                                                                            führung
                                                                                        UseCase          Connector‘s     führung II
                           Marketing                                                                                      führung I
           Presentation




                                                                                                    Persistence
                                                   Application
                            System




                                                                                           Domain
                                                                            Service
                                                                 Service Broker
                                                                                        UseCase
                              Domain                                                                                     Callcenter
                                                                                                         Connector‘s
                                         Management/ Web
                            Portal
                                                                                        UseCase
                                            Authoring
                                             Content




WAP Mobil
 - Device                                                                                                                            ...
                                                                                        UseCase          Connector‘s
                            WAP
                           Gateway
                                                                                             ...

  EMail                     MAIL                                                                        Connector’s       I*Net DB
  Client                   SERVER              Connector’s
                                                                                      Connector’s

                                                                  Message oriented Middleware
 Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                                     Folie 227
                                                         Directory Server
One to One Marketing System / Portal


                                             WEB
                                         Container
                                                     •   Personalisierung

                      One to One
                                                     •   Authentifizierung
                       Marketing                     •   Tracking
                        System
                                                     •   Business Rule Engine
                                                     •   Business Rule Managment System
                          Portal
                                                     •   Session Handling
                                                     •   Rechte Rollen Konzept



Mögliche Produkte:                       Broadvision
                                         ILOG JRules /USoft Developer Series
                                         + BEA Commerce Servers
                                         ILOG JRules /USoft Developer Series
                                         + IBM Enterprise Information Portal
Architekturen von Web-Anwendungen, LMU, WS-01/02                                     Folie 228
Contentmanagament System/Web Authoring


                                            WEB            Verwaltet den Inhalt des I*NET
                                        Container          Portals und ermöglicht die Erstellung
                                                           von HTML Seiten ohne HTML
                                                           Kenntnisse idealer weise als
                                                           WEB Anwendung.

                                         Management/ Web   Führt den Anwender (Inhouse/
                                            Authoring      Außendienst) am Cooperate Design
                                                           entlang zu seinen neuen Seiten.
                                             Content




Architekturen von Web-Anwendungen, LMU, WS-01/02                                               Folie 229
 Webanwendungen in der i*Net Plattform

                                                         WEB Anwendungen innerhalb der
                                            WEB          i*NET Plattform bilden das
                                        Container
                      JSP/Servlet                        Model View Controller Pattern ab.


                             Controller                            Model(EJB‘s)
                              Servlet               dispatch


Browser                   Request forward                        UseCase OBJ


                                 View                get Data
                                 JSP


                                                                Contentmanagament


Architekturen von Web-Anwendungen, LMU, WS-01/02                                             Folie 230
   Service Broker


Ist System / Plattformunabhänige                                        EJB Container
     Schnittstelle zu den Usecase




                                    XML                               dispatch



                                                     Service Broker
Entkoppelt die Systeme/Dienste durch
   den Einsatz von XML dies macht
   eine unabhängige
   Weiterentwicklung der Subsysteme
   und ‚Anwednungen‘ möglich




  Architekturen von Web-Anwendungen, LMU, WS-01/02                                      Folie 231
UseCase


                                                   EJB Container
  Ein ‚Usecase‘ ist hier ein Teil einer
  Szenario Implementierung. Er stellt
  die für die Durchführung eines
  Szenarios nötigen Funktionen                     UseCase
  zur 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 232
                                                                             Szenario Inferface Object




                                                   Szenario Logik
                                                                      Business                   Business
                                                                    activity Object            activity Object




Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                                           Business
                                                                                         activity Object




                                                   Prozeß Logik
                                                                                                                                  UseCase




                                                                              Business           Business
                                                                                                UseCase/
                                                                                                „Szenario“




                                                                            activity Object    activity Object
                                                                                                                  EJB Container
                                                                                                                                            UseCase/Szenario - genauer betrachtet




                                                                        Entity        Entity                 Entity
                                                                        Object        Object                 Object
                                                   Entity Logik

Folie 233
Basis- / Backendsysteme

                                                                                         Backendsysteme

                                                                                             Kunden
    Connectoren werden für alle benötigten
    Basissysteme erstellt, so werden diese in der                                             Besands-
    i*Net Plattform einheitlich verfügbar gemacht.                                         Besands-
                                                                                           Besands- I
                                                                                              führung
                                                                           Connector‘s     führung II
                                                                                            führung I
    Neben Connectoren zu Basissystemen sind
    auch Connectoren zu i*Net Plattform eigenen                            Connector‘s
                                                                                           Callcenter
    Diensten wie DB, Messaging und Directory
    nötig.
                                                                                              ...
                                                                           Connector‘s




                                                                          Connector’s       I*Net DB


                                                            Connector’s

                                                     Message oriented Middleware
Architekturen von Web-Anwendungen, LMU, WS-01/02                                                    Folie 234
                                               Directory Server
  Szenario 1 in der Vision

Interessent                                                                I*Net                                                Backendsysteme

                                             WEB                                        EJB Container
                        Contoler         Container                                                                                  Kunden
post TARIF FORM
Browser +              JSP/Servlet
                         Servlet                                                Szenario 1
JavaScript
                                                                                                            CICS/MQS/JNI/...
                                                                                getTarif       getTarifInfo                       Tarifengine
                                (XML) Service requ                                getTarif




                                                               Service Broker
                                                                                Info                               respons




                                                                                                                  Interessent
  EMail                 Tarif INFO                                                Info
  Client                  View         data (XML)                               create         createInter
                                                                                Interessent      essent                           AAP SYS
                                                                                  createInfo
                                          Content Management

                                                                                  Request
 AAP                                                                                           createInfo
                                                                                createInfo




                                                                                                                  InfoRequest
                                                                                                Request
                                                                                Request
Browser +
JavaScript                                                                                      getAAP


                                                                                               getMail                             I*Net DB




                                                                                                                  AAP
  EMail                   MAIL
  Client                 SERVER                                                                Vorl

                                                                                               postEMAIL

 Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                           Folie 235
  Szenario 1 in der Vision

Interessent                                                                I*Net                                            Backendsysteme

                                             WEB                                        EJB Container
                        Contoler         Container                                                                              Kunden
Browser request
post Info +            JSP/Servlet
                         Servlet                                                Szenario 1
JavaScript
                                                                                getTarif       getTarifInfo                   Tarifengine
                                                                                  getTarif




                                                               Service Broker
                                                                                Info




                                                                                                              Interessent
  EMail                 Tarif INFO                                                Info
                                       data (XML)
  Client                  View                                                  create         createInter
                                                                                Interessent      essent                       AAP SYS
                                                                                  createInfo
                                          Content Management

                                                                                  Request
 AAP                                                                                           createInfo
                                                                                createInfo




                                                                                                              InfoRequest
                                                                                                Request
                                                                                Request
Browser +
JavaScript                                                                                      getAAP


                                                                                               getMail                         I*Net DB




                                                                                                              AAP
  EMail Info + Vorlage MAIL
  Client              SERVER                                                                   Vorl

                                                                                               postEMAIL

 Architekturen von Web-Anwendungen, LMU, WS-01/02                                                                                       Folie 236
  Szenario 3 in der Vision

 Kunde                                                                  I*Net                                        Backendsysteme




                                                                                                             Kunde
                                             WEB                                    EJB Container
  post Info request                      Container                                                                       Kunden
Browser +              JSP/Servlet                                                           getKunde
                                                                             Szenario 3
JavaScript
  Logon + session MM
                    One to One                                                getVorg                  Workflow
                                                                              getVorg                                   Workflow
                     Marketing data (XML)                                     Status                   Connector
  EMail               System                                                  Info
  Client



                                                            Service Broker
                                                                                                get
                                                                                              Vorgang
                                          Management/ Web
                           Portal
AAP
                                             Authoring
                                                                                              getAAP
                                              Content




                                                                              create




                                                                                                             AAP
                                                                                                                       AAP SYS
Browser +                                                                     AkquiHint
JavaScript                                                                                   getMail
                                                                                             Vorl

                                                                                             postEMAIL                  I*Net DB
  EMail                   MAIL
  Client                 SERVER
                                                                                             getTracink
                                                                                             Data

 Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                             Timed Service                                     Folie 237
  Szenario 3 in der Vision

 Kunde                                                                  I*Net                                        Backendsysteme




                                                                                                             Kunde
                                             WEB                                    EJB Container
                                         Container                                                                       Kunden
Browser +                JSP/Servlet                                                         getKunde
                                                                             Szenario 3
JavaScript
  Logon + session MM
                    One to One                                                getVorg                  Workflow
                                                                              getVorg                                   Workflow
                     Marketing                                                Status                   Connector
  EMail               System                                                  Info
  Client



                                                            Service Broker
                                                                                                get
    Vorlage + Link




                                                                                              Vorgang
                                          Management/ Web
                            Portal
AAP
                                             Authoring
                                                                                              getAAP
                                              Content




                                                                              create




                                                                                                             AAP
                                                                                                                       AAP SYS
Browser +            create WebPage                                           AkquiHint
JavaScript                                                                                   getMail
                                                                                             Vorl
                                                                                                           Tracking
  EMail Info + Vorlage MAIL
                                                                                             postEMAIL       Info I*Net DB
  Client             SERVER                                                                                  nach
                                                                                             getTracink    Business
                                                                                             Data           Rules
 Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                             Timed Service                                     Folie 238
  Szenario 3 in der Vision (Variante)

 Kunde                                                                  I*Net                                        Backendsysteme




                                                                                                             Kunde
                                             WEB                                    EJB Container
                                         Container                                                                       Kunden
Browser +              JSP/Servlet                                                           getKunde
                                                                             Szenario 3
JavaScript
                       One to One                                             getVorg                  Workflow
                                                                              getVorg                                   Workflow
                        Marketing                                             Status                   Connector
  EMail                  System                                               Info
  Client



                                                            Service Broker
                                                                                                get
                                                                                              Vorgang
                                          Management/ Web
                           Portal
AAP                                               requ
                                             Authoring
                                                                                              getAAP
                                              Content




                                                                              create




                                                                                                             AAP
                                                                                                                       AAP SYS
Browser +                                                                     HintEMail
JavaScript create WebPage                                                                    getMail
                                                                                             Vorl
                                                                                                           Tracking
  EMail                   MAIL
                                                                                             postEMAIL       Info I*Net DB
                Info
  Client                 SERVER
                                                                                             getTracink
                                                                                             Data

 Architekturen von Web-Anwendungen, LMU, WS-01/02
                                                                             Timed Service                                     Folie 239
Wichtige 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 240
   XML und Performance

           4000

           3500
           3000                                       serobj mit 3 Param
           2500                                       XML mit 3 Param
Millisec




                                                      serobj 6 Param
           2000
                                                      XML 6 Param
           1500                                       serobj 9 Param
           1000                                       XML 9 Param

           500
               0
           m 00

           m 00

           m 00

           m 00

           m 00

                   00
            m 0

            m 0
           m 00
                  10

                  50



                13

                17

                21

                25

                29

                33
                  9
               it

               it

               it
           m




            it

            it

            it

            it

            it

            it


                                           Aufrufen


 Architekturen von Web-Anwendungen, LMU, WS-01/02                      Folie 241
Ergebnisse der i*Net Plattform 1

UseCase/                    Java Framework und Templates
„Szenario“
  Service                   Server + EJB das über eine XML Schnittstelle jeglichen
  Broker                    Service starten kann.
Connector                   Java Basisklassen und Templates + Connectoren

 Content                    Verbindung zum One to One System
 Manage-
  ment

One to One
 Marketing                  Einrichtung und Anbindung
  System                    Templates für das Business Rule System
                            Einrichtung der Business Rule Umgebung
   Portal                   (Event System)




Architekturen von Web-Anwendungen, LMU, WS-01/02                                     Folie 242
Ergebnisse der i*Net Plattform 2

                                          Message oriented Middleware


         Einrichten der Plattform Message Threads
         Standard Connectoren


                              Directory Server


         Einrichten der Plattform Struktur
         Standard Connectoren




Architekturen von Web-Anwendungen, LMU, WS-01/02                        Folie 243
 Things 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 244
 Things 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 245
 Things 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




 Architekturen von Web-Anwendungen, LMU, WS-01/02               Folie 246

								
To top