Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
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.375 Aufrufe

Veröffentlicht am

TechTalk von Markus Kunde (18.11.2008)

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

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)

×