Web 2.0 Software-Architekturen - fh- Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen...

download Web 2.0 Software-Architekturen - fh- Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen Enterprise

of 54

  • date post

    09-Jun-2020
  • Category

    Documents

  • view

    3
  • download

    0

Embed Size (px)

Transcript of Web 2.0 Software-Architekturen - fh- Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen...

  • Prof. Dr. Nikolaus Wulff

    Web 2.0 Software-Architekturen

    Enterprise Java Beans, die Java Persistence und Transaction API, sowie der OR Mapper Hibernate

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 2

    Java Enterprise Edition • Zusätzlich zu dem der reinen Java Runtime

    Environment (JRE) und dem Java Developer Kit (JDK) existiert für Serveranwendungen noch die spezielle Java Enterprise Edition (J2EE).

    • Sie stellt APIs für Sicherheit verteilte Anwendungen mit Servlets, JSP, JSF, WebServices, Transaktionen und persistenten Klassen zur Verfügung.

    • Ursprünglicher zentraler Bestandteil neben den Servlets waren die Entity Java Beans (EJB).

    • EJBs sind Objekte die sowohl persistent in einem RDBMS als auch verteilt innerhalb eines Containers gespeichert und ausgeführt werden.

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 3

    Problemstellung verteilte Dienste • Heterogene Plattformen • Referenzierung von Objekten an unterschiedlichen

    Lokationen • Speicher Verwaltung • Unterschiedliche Programmiersprachen • Unterschiedliche Netzwerk Protokolle • Persistenz in verteilten Umgebungen

    •  Standardisierung

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 4

    HelloWorld Pseudo Code • Lokaler Methodenaufruf: HelloInterface h = new HelloImpl(); h.sayHello("HelloWorld");

    • Remote Methodenaufruf: HelloInterface h = HelloFactory.lookup("myServer","myObject"); h.sayHello("HelloWorld");

    dauert ~ 1 - 4 NanoSec

    dauert ~ 5 - 50 MilliSec !!!

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 5

    RMI

    RMI Architektur

    Client Application

    Remote Object

    Stub Class

    Skeleton Class

    Remote Reference Layer

    Transport Layer (JRMP)

    Remote Interface

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 6

    HelloWorld mit RMI

    RMI Framework

    generated by RMIC

    Developer defined

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 7

    Start des Hello Servers public class HelloImpl implements HelloInterface { // ... public static void main(java.lang.String[] args) { try { String url = args[0]; // 1. Server Instanz erzeugen System.out.println("Erzeuge Server"); HelloImpl hello = new HelloImpl(); // 2. Server Instanz beim Naming Service bekannt machen System.out.println("Registriere Server "+hello); Naming.rebind(url,hello); System.out.println("Server "+url+" ready... “); }catch(Exception e) { System.err.println(e); e.printStackTrace(); } }

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 8

    HelloClient mit RMI public static void main(java.lang.String[] args) { throws Exception { String url = args[0]; // 1. Referenz auf den Server per Naming Service System.out.println("Suche Server "+url); Remote ref = Naming.lookup(url); // 2. Cast auf den gewünschten Typ HelloInterface hello = (HelloInterface) ref; System.out.println("Fand "+hello); // 3. Remote Call ausführen long time = System.currentTimeMillis(); hello.sayHello("Hello vom HelloClient "+time);

    System.out.println("done ..."); }

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 9

    CORBA Architektur

    Client Application

    Corba Object (Servant)

    IDL Stub Class

    (z.B. Java)

    IDL Skeleton Class

    (z.B. C++)

    ORB (z.B. Visigenic)

    ORB (z.B. Iona Orbix)

    CORBA Interface

    IDL Beschreibung

    IIOP TCP/IP

    ORB Interface

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 10

    HelloWorld mit CORBA

    CORBA Framework

    Developer defined

    generated by IDLJ

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 11

    HelloClient mit CORBA

    public static void main(java.lang.String[] args) { throws Exception { String name = args[0]; // 0. Referenz auf ORB Singleton und den NamingService org.omg.CORBA.ORB orb = ORB.init(args,null); NamingContext naming = getNamingContext(orb); // 1. Lookup mittels NamingService NameComponent[] component= {new NameComponent(name,"")}; org.omg.CORBA.Object ref = naming.resolve(component); // 2. CORBA Cast per narrow mit Helper Klasse HelloInterface hello = HelloInterfaceHelper.narrow(ref); System.out.println("Fand "+hello); // 3. Remote Call ausführen long time = System.currentTimeMillis(); hello.sayHello("Hello vom HelloClient "+time);

    }

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 12

    Was fehlt...? • Das RMI und CORBA Beispiel zeigt:

    – Lookup der Remote Objekte per Naming Service – einfacher Methodenaufruf des Remote Objektes

    • was fehlt ist die HighLevel Architektur für: – Client-Server generell – Objekt Lifecycle – Session Handling – Transaktionen (Two-Phase-Commit) – Objektpersistenz und -referenzierung – ...

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 13

    Von RMI zu EJB • Native RMI bietet wenig Unterstützung hinsichtlich

    C/S-Architekturen • CORBA enthält viele Services wie

    – TransactionService – SecurityService – EventService – ...

     Unterstützung der Hersteller war zurückhaltend... • Sun legte 1998 mit der EJB1.0 Spezifikation ein

    neues objektorientiertes Komponentenmodel für verteilte Anwendungen vor, das nahtlos in die Java2 Enterprise Edition (J2EE) integriert ist.

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 14

    EJB in a Nutshell • EJBs laufen in einem ApplikationsServer und werden

    von einem EJBContainer verwaltet.

    EJB Server

    EJB Container

    Client EJB Bean

    EJB Home Interface

    EJB Remote Interface

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 15

    Die Schnittstellen im Überblick

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 16

    Die EJB 1.0 & 2.0 Schnittstelle

    • Eine Enterprise JavaBean besitzt für den Client zwei öffentlich sichtbare Schnittstellen:

    • EJB-Home – es spezifiziert die Lookup- und Finder-Methoden um

    eine Referenz auf das Remote Interface zu erhalten • EJB-Remote

    – es stellt die eigentliche öffentliche Schnittstelle der EJB da. Hier sind die Business-Methoden der EJB deklariert.

    • Seit EJB 2.1 EJB-Lokal nicht sichtbar für Client! – Bietet Klassen auf der Serverseite Zugriff auf die

    Business-Methoden der EJB ohne Netzwerkzugriff.

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 17

    Der EJB Container • Zentraler Bestandteil der EJB Spezifikation ist der EJB

    Container, er ist zuständig für: – Persistenz der EJBs – Transaktionen – Sicherheitsaspekte – Lifecycle und Runtimesupport

    • Ein EJB Container Provider wird den Entwickler mit entsprechenden Tools für das Deployment und Monitoring der EJBs ausstatten.

    • EJB Server und EJB Container Provider sind meist identisch.

    • Die Spezifikation schreibt die API zwischen dem Server und dem Container nicht vor.

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 18

    EJB Rollen • Developer / EJB Provider

    – definiert Remote- und Home-Interface und die Implementierung

    • Application Assembler – verwendet die EJBs und bindet sie in den Kontext einer

    Applikation ein • Deployer

    – integriert die ejb-jar Archive in einen EJB Server und generiert die serverspezifischen Stub- und Skeltonklassen für die Verteilung.

    • System Administrator – administriert Transaction, Security, Container, Server und

    Resourcen • Server Provider und Container Provider

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 19

    EJB im J2EE Model

    Resourcen Datenbanken und externe Systeme

    Integrations Ebene JMS, JDBC, Connectors und Legacy

    Business Ebene EJBs und JavaBeans

    Präsentation JSP, Servlets und andere UI

    Client Applikationen, Applets, Browser

    Benutzer Interaktion

    Single sign- on,Sessionverwaltung, Formatierung und Zustellung Geschäftslogik, Transaktionen, Daten und Services

    Resource adapters, rule engine und workflow, Altanwendungen

    Daten und externe Dienste

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 20

    J2EE Architektur

    HTTP SSLBrowser

    Application Client Container

    J2SE

    Application Client, Applet

    JDBC RM I- IIOP

    JNDIJMS

    Web Container

    J2SE

    EJB Container

    J2SE

    Database

    EJB

    JDBC RM I- IIOP

    JNDIJMS JTA Java Mail

    JAF

    JDBC RM I- IIOP

    JNDIJMS JTA Java Mail

    JAF

    JSP Servlet

    HTTP SSL

    RMI

  • © Prof. Dr. Nikolaus Wulff Web 2.0 Software-Architekturen 21

    EJB Typen • Session Bean: kapseln Applikationslogik, dienen als

    Fassade, um Kommunikation zwischen Client- und Serverkomponenten zu orchestrieren.

    ● Sie kö