Tech Talk Anwendung von Java Enterprise Edition   Markus Kunde (SC-VK) Köln, 18.11.2008
Inhalt <ul><li>Historie </li></ul><ul><li>Was ist JEE? </li></ul><ul><li>Schematischer Aufbau und Funktionsweise </li></ul...
Historie http://de.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition  (07.11.2008) 11. Mai 2006 5 24. November 2003 1.4...
Was ist JEE? <ul><li>J ava Platform  E nterprise  E dition (früher J2EE) </li></ul><ul><li>Spezifikation einer Software Ar...
Schematischer Aufbau <ul><li>http://java.sun.com/javaee/5/docs/tutorial/doc/bnaay.html  (07.11.2008) </li></ul>
Einsatzmöglichkeiten <ul><li>Situationen, die ein Indikator für den Einsatz sind: </li></ul><ul><ul><li>Business Transakti...
Enterprise Java Beans (3.0) <ul><li>Session Beans </li></ul><ul><ul><li>Management von vielfältigen Aufgaben </li></ul></u...
Message Driven Beans – Java Message Service  <ul><li>Ansatz </li></ul><ul><ul><li>JMS ist eine Anbieter-neutrale API zum Z...
EJB Life Cycle <ul><li>Beispiel: Stateful Session Bean </li></ul>Existiert nicht Bereit Passiv 1. Create 2. Dependency Inj...
EJB Container <ul><li>Aufgabe </li></ul><ul><ul><li>Vorhaltung von diversen Bean Instanzen </li></ul></ul><ul><li>Manageme...
EJB Container <ul><li>Stateless Session Bean </li></ul>O‘Reilly Enterprise Java Beans 3.0, 5th edition, ISBN: 0-596-00978-...
Entity Beans (EJB 3 Entity) - Java Persistence API <ul><li>Sind Pojos </li></ul><ul><li>Modellieren reale Welt Objekte </l...
Entity Manager <ul><li>Zentraler Service für alle Persistenzaktionen </li></ul><ul><li>Manager für OR-Mapping </li></ul><u...
Primärschlüssel <ul><li>Primärtypen/ Composite Keys </li></ul><ul><li>@IdClass Annotation der Primärschlüsselklasse </li><...
Entity Relationships <ul><li>7 Relationship-Typen </li></ul><ul><li>4 Kardinalitäten-Typen </li></ul><ul><ul><li>OneToOne ...
Annotationen, Dependency Injection, Reflection, Interceptors, Transaktionen, … <ul><li>Annotationen </li></ul><ul><ul><li>...
Aus Entwicklersicht <ul><li>Serverprogrammierung wird versteckt </li></ul><ul><li>Datenbank Management wird versteckt </li...
Demo https://duke.dev.java.net/images/glassfish/GlassFishMedium.jpg  (07.11.2008)
Weitere Informationen <ul><li>Sehr gutes Buch über Enterprise Java Beans </li></ul><ul><ul><li>O‘Reilly: Enterprise Java B...
Vielen Dank http://itmanagement.earthweb.com/img/2008/04/java-guy.jpg (13.11.2008)
Nächste SlideShare
Wird geladen in …5
×

Anwendung von Java Enterprise Edition (J2EE)

2.258 Aufrufe

Veröffentlicht am

TechTalk von Markus Kunde (18.11.2008)

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.258
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
10
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • Anwendung von Java Enterprise Edition (J2EE)

    1. 1. Tech Talk Anwendung von Java Enterprise Edition Markus Kunde (SC-VK) Köln, 18.11.2008
    2. 2. Inhalt <ul><li>Historie </li></ul><ul><li>Was ist JEE? </li></ul><ul><li>Schematischer Aufbau und Funktionsweise </li></ul><ul><li>Einsatzmöglichkeiten </li></ul><ul><li>Enterprise Java Beans </li></ul><ul><li>Persistenz </li></ul><ul><li>Erwähnenswertes </li></ul><ul><li>Demo </li></ul>
    3. 3. Historie http://de.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition (07.11.2008) 11. Mai 2006 5 24. November 2003 1.4 24. September 2001 1.3 23. Mai 2000 1.2.1 2000 1.2 Dezember 1999 1.0 Veröffentlichungsdatum Version
    4. 4. Was ist JEE? <ul><li>J ava Platform E nterprise E dition (früher J2EE) </li></ul><ul><li>Spezifikation einer Software Architektur </li></ul><ul><li>Benötigt als Laufzeitumgebung einen JEE Application Server </li></ul><ul><li>Modularer Aufbau, gut skalierbar, fehlertolerant, verteilt einsetzbar, mehrschichtig </li></ul><ul><li>Größter Konkurrent: .Net Plattform von Microsoft </li></ul><ul><li>Definiert über die Spezifikation (API) </li></ul><ul><li>EJB (Enterprise Java Beans) </li></ul><ul><li>Servlets </li></ul><ul><li>JSP (Java Server Pages) </li></ul><ul><li>JSTL (JSP Standard Tag Library) </li></ul><ul><li>JSF (Java Server Faces) </li></ul><ul><li>JMS (Java Message Service) </li></ul><ul><li>Java Transaction </li></ul><ul><li>Java Mail </li></ul><ul><li>JDBC (Java Database Connectivity) </li></ul><ul><li>JPA (Java Persistence API) </li></ul><ul><li>JNDI (Java Naming & Directory Interface) </li></ul><ul><li>JAAS (Java Authentication & Authorization Service) </li></ul><ul><li>… . </li></ul>
    5. 5. Schematischer Aufbau <ul><li>http://java.sun.com/javaee/5/docs/tutorial/doc/bnaay.html (07.11.2008) </li></ul>
    6. 6. Einsatzmöglichkeiten <ul><li>Situationen, die ein Indikator für den Einsatz sind: </li></ul><ul><ul><li>Business Transaktionen </li></ul></ul><ul><ul><li>Verteilte Funktionalität </li></ul></ul><ul><ul><li>Portable Komponenten </li></ul></ul><ul><ul><li>Asynchroner Nachrichtenaustausch </li></ul></ul><ul><ul><li>Berechtigungsrollen </li></ul></ul><ul><ul><li>Persistenzkontext Management </li></ul></ul><ul><li>Kein Einsatz in Situationen, wo: </li></ul><ul><ul><li>Applikationen die Threadkontrolle benötigen </li></ul></ul><ul><ul><li>Hohe Performance ein hartes Kriterium ist </li></ul></ul><ul><ul><li>Datenbank „babysitting“ </li></ul></ul>
    7. 7. Enterprise Java Beans (3.0) <ul><li>Session Beans </li></ul><ul><ul><li>Management von vielfältigen Aufgaben </li></ul></ul><ul><ul><li>Stateful oder Stateless </li></ul></ul><ul><li>Message-Driven Beans </li></ul><ul><ul><li>Abonnieren/ Hören auf Nachrichten </li></ul></ul><ul><ul><li>Reagieren durch Prozessierung asynchroner Nachrichten aus Systemen wie JMS, Legacy Systemen, Web Services </li></ul></ul><ul><li>Interfaces </li></ul><ul><ul><li>Remote </li></ul></ul><ul><ul><li>Local (Aktion findet in der selben JVM statt) </li></ul></ul><ul><ul><li>Endpoint (via SOAP) </li></ul></ul><ul><li>Technisch </li></ul><ul><ul><li>Proxy/Stub </li></ul></ul><ul><ul><li>Manager: EJB Container </li></ul></ul><ul><ul><li>Kein persistenten Zustand; Aktivität ist transient </li></ul></ul>http://www.volkskunstshop.com/figurkerzen-kaffeebohnen-stueck-p-10927.html (13.11.2008)
    8. 8. Message Driven Beans – Java Message Service <ul><li>Ansatz </li></ul><ul><ul><li>JMS ist eine Anbieter-neutrale API zum Zugriff auf Enterprise Messaging Systeme </li></ul></ul><ul><ul><li>EJB 3.0 Anbieter müssen einen JMS Provider anbieten </li></ul></ul><ul><ul><li>Producer/Consumer Prinzip </li></ul></ul><ul><li>Zwei Modelle </li></ul><ul><ul><li>Point-To-Point (Queue) </li></ul></ul><ul><ul><li>Publish/Subscribe (Topic) </li></ul></ul><ul><li>Fünf Nachrichten-Typen </li></ul><ul><ul><li>MapMessage (Name/Wert Paare) </li></ul></ul><ul><ul><li>BytesMessage (Byte Daten) </li></ul></ul><ul><ul><li>ObjectMessage (Serialisierbare Objekte) </li></ul></ul><ul><ul><li>StreamMessage (Stream von Objekten) </li></ul></ul><ul><ul><li>TextMessage (String) </li></ul></ul><ul><li>Achknowledgements </li></ul><ul><ul><li>AUTO_ACKNOWLEDGE; CLIENT_ACKNOWLEDGE; DUPS_OK_ACKNOWLEDGE </li></ul></ul>
    9. 9. EJB Life Cycle <ul><li>Beispiel: Stateful Session Bean </li></ul>Existiert nicht Bereit Passiv 1. Create 2. Dependency Injection 3. PostConstruct callback 4. Init method (or ejbCreate<METHOD>) PrePassive callback 1. Remove 2. PreDestroy callback PrePassive callback
    10. 10. EJB Container <ul><li>Aufgabe </li></ul><ul><ul><li>Vorhaltung von diversen Bean Instanzen </li></ul></ul><ul><li>Management </li></ul><ul><ul><li>Bean Instanzen </li></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><li>Transaktionen </li></ul></ul><ul><ul><li>Lebenszyklus der Bean Instanz </li></ul></ul><ul><ul><li>Routing vom Proxy zur richtigen Bean Instanz </li></ul></ul><ul><li>Verhalten kommt auf den Bean Typ an </li></ul>
    11. 11. EJB Container <ul><li>Stateless Session Bean </li></ul>O‘Reilly Enterprise Java Beans 3.0, 5th edition, ISBN: 0-596-00978-X <ul><li>Stateful Session Bean </li></ul>
    12. 12. Entity Beans (EJB 3 Entity) - Java Persistence API <ul><li>Sind Pojos </li></ul><ul><li>Modellieren reale Welt Objekte </li></ul><ul><li>Erhalten einen Primärschlüssel (Klasse/primitiver Typ) </li></ul><ul><li>Management von einem sog. Persistence Service </li></ul><ul><li>Managed (attached) oder Unmanaged (detached) </li></ul>http://www.idsa.org/idea/idea2005/images/105-B-FlatOut.jpg (13.11.2008) (früher andere Bedeutung!)
    13. 13. Entity Manager <ul><li>Zentraler Service für alle Persistenzaktionen </li></ul><ul><li>Manager für OR-Mapping </li></ul><ul><li>API für </li></ul><ul><ul><li>Erstellung von Abfragen </li></ul></ul><ul><ul><li>Finden von Objekten </li></ul></ul><ul><ul><li>Objektsynchronisierung </li></ul></ul><ul><ul><li>Manipulation von Objekten </li></ul></ul><ul><li>Persistence Context </li></ul><ul><ul><li>Sammlung aller gemanagten Entitiy Objekt Instanzen </li></ul></ul><ul><li>Persistence Unit </li></ul><ul><ul><li>Sammlung der Klassen, die zu einer bestimmten Datenbank gemappt weden </li></ul></ul>
    14. 14. Primärschlüssel <ul><li>Primärtypen/ Composite Keys </li></ul><ul><li>@IdClass Annotation der Primärschlüsselklasse </li></ul><ul><ul><li>@Id Annoation der zugrunde liegenden Klasse </li></ul></ul><ul><li>Wird benötigt zur Interaktion mit dem Entity Manager </li></ul><ul><li>Interface „Serializable“ muss implementiert sind </li></ul><ul><li>Standardkonstruktor muss vorhanden sein </li></ul><ul><li>Überschreiben der Methoden „hashCode()“ und „equals()“ </li></ul><ul><li>„ Autogeneration“-Funktion wird nicht für Composity Keys angeboten </li></ul>http://media.volblog.at/13714/20080206-schluessel.jpg (13.11.2008)
    15. 15. Entity Relationships <ul><li>7 Relationship-Typen </li></ul><ul><li>4 Kardinalitäten-Typen </li></ul><ul><ul><li>OneToOne </li></ul></ul><ul><ul><li>OneToMany [Implementierung mit Generics] </li></ul></ul><ul><ul><li>many-to-one </li></ul></ul><ul><ul><li>many-to-many </li></ul></ul><ul><li>Unidirektional oder Bidirektional </li></ul><ul><li>Unidirektional @OneToOne{CascadeType.All} </li></ul><ul><li>Bidirektional </li></ul><ul><ul><li>@OneToOne [Owner-Side] </li></ul></ul><ul><ul><li>@OneToOne(mappedBy=„ Klasse “) </li></ul></ul>2*4=8? many-to-one and one-to-many Bidirektional ist das Gleiche ;-) Aufpassen auf Nebeneffekte: Beide Seiten sind verknüpft!
    16. 16. Annotationen, Dependency Injection, Reflection, Interceptors, Transaktionen, … <ul><li>Annotationen </li></ul><ul><ul><li>Hinzufügen von Metadaten zum Source Code </li></ul></ul><ul><ul><li>Hinzufügen dynamischer Attribute zu Klassen, Interfaces, Felder, Methoden (@TARGET) </li></ul></ul><ul><ul><li>Verfügbar zu Kompilierzeit/Laufzeit (@RETENTION) </li></ul></ul><ul><li>Dependency Injection </li></ul><ul><ul><li>Container managt die Instantiierung und Initialisierung der Ressource </li></ul></ul><ul><li>Reflection </li></ul><ul><ul><li>Untersuchung von Klassen, Instanzen oder Methoden zur Laufzeit (z.B. Sichtbarkeit ändern, Zugriff auf Methoden, etc.) </li></ul></ul><ul><li>Interceptors </li></ul><ul><ul><li>Unterbrechung von Methodenaufrufen bzw. Anhängen an den EJB Lebenszyklus </li></ul></ul><ul><ul><li>Kapselung von Verhalten (Trennung Businesslogik und technische Aspekte) </li></ul></ul><ul><ul><li>„ Separation of Concerns“ (z.B. Logging, Profiling, Authorization) </li></ul></ul><ul><li>Transaktionen </li></ul><ul><ul><li>ACID-konform (atomic, consistent, isolated, durable) </li></ul></ul><ul><ul><li>Server besitzt einen Transaktionsmanager </li></ul></ul>
    17. 17. Aus Entwicklersicht <ul><li>Serverprogrammierung wird versteckt </li></ul><ul><li>Datenbank Management wird versteckt </li></ul><ul><li>Starke Fokussierung auf Businesslogik </li></ul><ul><li>Einmalig größerer Konfigurationsaufwand </li></ul>
    18. 18. Demo https://duke.dev.java.net/images/glassfish/GlassFishMedium.jpg (07.11.2008)
    19. 19. Weitere Informationen <ul><li>Sehr gutes Buch über Enterprise Java Beans </li></ul><ul><ul><li>O‘Reilly: Enterprise Java Beans 3.0; ISBN: 0-596-00978-X </li></ul></ul><ul><li>Java EE im Allgemeinen </li></ul><ul><ul><li>http://java.sun.com/javaee/5/docs/tutorial/doc/index.html </li></ul></ul><ul><li>Glossar mit vielen Begriffen </li></ul><ul><ul><li>http://www.objects-at-work.de/pmwiki/EJBGlossar/HomePage </li></ul></ul>
    20. 20. Vielen Dank http://itmanagement.earthweb.com/img/2008/04/java-guy.jpg (13.11.2008)

    ×