02.12.2009Infopoint - Java EE 5 - Jörg Wüthrich1 / 24 Java EE 5 Infopoint, 02.12.2009 Jörg Wüthrich.

Slides:



Advertisements
Ähnliche Präsentationen
EJB, Norbert Schuler1 Enterprise Java Beans z Was sind Enterprise JavaBeans? z Historie z Motivation z Architektur z Konstruktion eines Enterprise.
Advertisements

Simon Martinelli – JSR 303 Bean validation Simon Martinelli –
Objektrelationales Mapping mit JPA
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
JPQL Java Persistence Query Language
Anwendungen des OODM auf die ADB / NDB
DI Christian Donner cd (at) donners.com
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Internetzugriff mit Strings und Streams
JDBC & ODMG Motivation - Beispielanwendung JDBC - DriverManager - Connection - Statement - ResultSet Anwendung ODMG - Objektmodell /ODL - OQL - Java-Binding.
Objektrelationales Mapping mit JPA Working with Persistent Objects Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Advanced Mapping Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Zusammenfassung / Ausblick Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Objektrelationales Mapping mit JPA Ausblick Jonas Bandi Simon Martinelli.
Stephan Bury  Pascal Busch  Bita Gerami
erasm platform Bild- / Galerieverwaltung
Objektorientierte Programmierung JDK-Klassenbibliothek
JAVA RMI.
Seminar Web-Engineering Nina Aschenbrenner / Ruben Jubeh 1 FG Software Engineering Software Engineering Seminar Web Engineering Seminar des Fachgebiet.
J2EE Conformance von JDBC Middleware und EJB Applikation Server Detlef KünzelSystemberater +49 (0)
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Verteilte Transaktionen mit EJBs und JDBC 2.0
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Divide and Conquer Eclipse RCP und Spring in verteilten Anwendungen Stefan Reichert | Lufthansa Systems Benjamin Pasero | IBM Rational.
Enterprise JavaBeans Architektur Folien zum IFC-Vortrag am
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
Servlet III Java Webanwendung Webcontainer Web.xml
Die .NET Common Language Runtime
GWT 2.0, Infopoint, Jörg Wüthrich1 GWT 2.0 Framework zur Erstellung von browserbasierten Applikationen.
Google App Engine Microsoft Windows Azure
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
GC-Tuning, Infopoint, Jörg Wüthrich1 GC-Tuning Erfahrungsbericht.
ein Vortrag von Laurent & Mich
Software Architektur II
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Projekt Alcatraz Java RMI / Spread - Gruppe A4.
Management- und Web Services- Architekturen
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
XML IV: Cocoon 2.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Projekt Systemintegration Datler, Kroiß, Sachs Systemintegration ILV, FL / MIC- 2 (SS2014)
Semesterarbeit SOA CRYSTL-PIM Product Information System
Java Server Pages Sergej Keterling
FIN-IVS Dr.Fritz Zbrog Verteilte Systementwicklung EJB Tutorial Was wird für EJB-Entwicklung benötigt ? J2EESDK 1.4 (software developement kit)
Service components and distribution with OSGi Seminar: Multimedia- und Internetsysteme Paul Hübner | Bildquellen : [1]
7.1.5 Java RMI – Remote Method Invocation
Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Komponentenarchitekturen, Enterprise Java Beans (EJB)
PFH-Technologie-Forum TECHNOLOGIE - FORUM 28. März 2008.
Einführung in Web Services Web Services in der Praxis
ITIXI Version 2.0 Architektur VersionDatumAuthorStatusKommentar Martin JonasseIn ArbeitInitial-Dokument Martin JonasseIn ArbeitFahrgast.
Reinhold Rumberger Web Services.
17. Januar 2006 Navigations- und Ortungssysteme Handy-Kompass Peter Ammon Michael Kaiser Thomas Zsebedits.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Rusch Philipp, Spiegel Philipp, Sieber Michael, Ucar Sahin, Wetzel Markus.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
 Präsentation transkript:

Infopoint - Java EE 5 - Jörg Wüthrich1 / 24 Java EE 5 Infopoint, Jörg Wüthrich

Infopoint - Java EE 5 - Jörg Wüthrich2 / 24 Inhalt Historie Neuerungen gegenüber J2EE 1.4 EJB3 Webservices (JAX-WS) Persistenz (JPA) Ausblick auf Java EE 6

Infopoint - Java EE 5 - Jörg Wüthrich3 / 24 Historie : J2EE : J2EE : J2EE : J2EE : J2EE : Java EE 5 Java EE 6: geplant auf 2008, seit Oktober 2009 gibts den Final Draft

Infopoint - Java EE 5 - Jörg Wüthrich4 / 24 Neuerungen gegenüber J2EE 1.4

Infopoint - Java EE 5 - Jörg Wüthrich5 / 24 Neuerungen gegenüber J2EE 1.4 Vereinfachungen des Java EE Programmier- Modells EJB 3.0 mit POJOs JPA: Erneuerung des Objekt-relationalen Mappings (Ablösung der EJB CMP) Web-Services: Vereinfachungen mit JAX-WS und JAXB 2.0 JSF / JSTL: Vereinfachte Web UI Entwicklung Annotationen ersetzen auf Wunsch die meisten Deployment Deskriptoren Streaming API für XML (StAX)

Infopoint - Java EE 5 - Jörg Wüthrich6 / 24 Demo-Applikation EJB 3 WS JSF JPA DB Clien t siehe Urs' Präsentation vom Urs' Präsentation behandelt in dieser Präsentation

Infopoint - Java EE 5 - Jörg Wüthrich7 / 24 Live - Demo

Infopoint - Java EE 5 - Jörg Wüthrich8 / 24 EJB 2.1 interface PersonDbService extends javax.ejb.EJBObject { int addPerson(Person person) throws RemoteException; interface PersonDbServiceHome extends javax.ejb.EJBHome PersonDbService create() throws RemoteException, CreateException interface PersonDbServiceLocal extends javax.ejb.EJBLocalObject interface PersonDbServiceLocalHome extends javax.ejb.EJBLocalHome PersonDbServiceBean implements javax.ejb.SessionBean public int addPerson(Person person) { … } public void ejbCreate() {} public void ejbRemove() {} public void ejbActivate() {} public void ejbPassivate() {} public void setSessionContext(SessionContext sc) {} Deployment- Deskriptor: ejb-jar.xml

Infopoint - Java EE 5 - Jörg Wüthrich9 / 24 EJB 2.1 Client Aufruf: Context initial = new InitialContext(); Context myEnv = (Context)initial.lookup("java:comp/env"); Object objref = myEnv.lookup("ejb/PersonDbService"); PersonDbServiceHome home = (PersonDbServiceHome)PortableRemoteObject.narrow(objref, PersonDbServiceHome.class); PersonDbService personDbService = home.create();

Infopoint - Java EE 5 - Jörg Wüthrich10 / 24 EJB3 public @Stateless public class PersonDbServiceBean implements PersonDbService, PersonDbServiceLocal { public int addPerson(Person person) {...} } Annotation für ein Stateless EJB Annotation für Remote-Interface Interface kann implementiert werden (muss aber nicht) Deployment -Deskriptor fakultativ public Interface PersonDbServiceLocal

Infopoint - Java EE 5 - Jörg Wüthrich11 / 24 EJB3 Client Aus Application-Container: – Mit Annotation; Container macht Injection des EJB Aus Servlet Container: – Einfacher Lookup (kein narrow mehr) InitialContext ctx = new InitialContext(); return (PersonDbService) ctx.lookup("phonebook-business- private PersonDbService personService;

Infopoint - Java EE 5 - Jörg Wüthrich12 / 24 Webservices – J2EE 1.4 Am Anfang war SOAP... … dann kam WSDL... … und dann JAX-RPC – Standardisiert, wie Java Webservices behandelt – Remote Procedure Calls – nur Java 1.4 Features – Eigenes Mapping der Datentypen; deckt ca. 90% aller XML-Schema Typen ab – SOAP with Attachments

Infopoint - Java EE 5 - Jörg Wüthrich13 / 24 Webservices – Java EE 5 voll rückwärtskompatibel, dazu kommt: JAX WS (Teil von Java SE 6) – Nachrichten-orientierte Implementierung ( RPC) – unterstützt asynchrone Aufrufe für Clients – macht von Java 5 Features Gebrauch – Mapping der Datentypen erfolgt mit JAXB alle XML-Schema Datentypen unterstützt – unterstützt XML/HTTP (nicht nur SOAP/HTTP) – unterstützt auch MTOM (Message Transmission Optimization Mechanism via JAXB) Bessere Interoperabilität

Infopoint - Java EE 5 - Jörg Wüthrich14 / 24 Webservices - Vergleich JAX-RPC 1.1 Code JAX-WS 2.0 Code public interface PersonDbWebService extends java.rmi.Remote { public int addPerson(Person person) throws java.rmi.RemoteException; } public class PersonDbServiceBean implements PersonDbWebService { public int addPerson(Person person) throws java.rmi.RemoteException {... public class PersonDbServiceBean public int addPerson(Person person) {... }

Infopoint - Java EE 5 - Jörg Wüthrich15 / 24 Webservice - Topdown Topdown: aus WSDL generiert Implementierung realisiert generiertes = "PersonDbWebService", targetNamespace = " public interface = = "addPerson", targetNamespace = " className = = "addPersonResponse", targetNamespace = " className = "ch.wuethrich.ws.generated.AddPersonResponse") public int = "arg0", targetNamespace = "") Person arg0);

Infopoint - Java EE 5 - Jörg Wüthrich16 / 24 Webservice - Bottom-Up Bottom-Up: annotiertes EJB Daraus wird @javax.jws.WebService(serviceName="PersonDbServiceClient", name="PersonDbService") public class PersonDbServiceBean implements PersonDbServiceIF public int addPerson(Person person) {... }

Infopoint - Java EE 5 - Jörg Wüthrich17 / 24 Webservice Client aus Application-Container aus private PersonDbWebService webService; URL wsdlLocation = new URL(" QName qname = new QName(" "PersonDbServiceClient"); PersonDbServiceClient wsClient = new PersonDbServiceClient(wsdlLocation, qname); PersonDbWebService webService = wsClient.getPersonDbWebServicePort(); webService.addPerson(person);

Infopoint - Java EE 5 - Jörg Wüthrich18 / 24 Persistenz J2EE 1.4 Persistenz wurde mittels Entity Beans realisiert – eigener Typ von EJBs – implementiert javax.ejb.EntityBean – haufenweise Konventionen, welche eingehalten werden müssen, damit alles klappt Transaktions-Verhalten konnte dem Container übergeben oder selbst implementiert werden – davon abhängig muss im Bean mehr oder weniger implementiert werden – Abfragen auf die Entity laufen über EJB QL im Deployment Deskriptor oder PreparedStatements

Infopoint - Java EE 5 - Jörg Wüthrich19 / 24 Persistenz Java EE 5 JPA (Java Persistence API) – inspiriert von Hibernate – Entities sind keine Beans mehr, sondern annotierte Klassen – Persistenz-Kontext verwaltet Transaktionen Kontext kann vom Container oder der Applikation verwaltet werden – Entities können detached werden vom Persistenz- Kontext Verwendung in einem EJB-Interface kein Problem – verwendet JPA QL für Abfragen

Infopoint - Java EE 5 - Jörg Wüthrich20 / 24 Persistenz Java EE 5 public class Person implements Serializable { private static final long serialVersionUID private int id; public int getId() { return id; } public void setId(int id) { this.id = id; }

Infopoint - Java EE 5 - Jörg Wüthrich21 / 24 Persistenz Java EE 5 Speichern Query public class PersonDbServiceBean implements PersonDbService private EntityManager em; public int addPerson(Person person) { em.persist(person); return person.getId(); } public List getPersonList() { Query query = em.createQuery("SELECT p FROM Person p"); List result = query.getResultList(); return result; }

Infopoint - Java EE 5 - Jörg Wüthrich22 / 24 Ausblick Java EE 6 (1/2) Middle-Tier – EJB 3.1: optionale lokale Business-IF – asynchroner Aufruf von Session Beans Webbeans 1.0 ( JBoss Seam, Google Guice) Web-Tier – Erweiterung Servlet-API – Web-Framework pluggability – AJAX Support Bessere Unterstützung von RESTful Webservices

Infopoint - Java EE 5 - Jörg Wüthrich23 / 24 Ausblick Java EE 6 (2/2) Unterstützung von Profilen – Idee: Reduktion der Grösse der Umgebung, wenn nicht alle Features benötigt werden – Profile sollen spezifische Lösungen bzw. Anforderungen abdecken – Aktuell geplant: Web-Profil Rauswerfen wenig benutzter Features – Kandidaten sind JAX-RPC (abgelöst durch JAX-WS) und EJB CMP (Container Managed Persistence; abgelöst durch JPA)

Infopoint - Java EE 5 - Jörg Wüthrich24 / 24 Referenzen Sun Tutorial für Java EE 5 (pdf: 1126 Seiten) Sun Tutorial für J2EE 1.4 (pdf: 1542 Seiten) Evolving the Java SE and Java EE Platforms Neue Features in Java EE History und Vergleich J2SE 1.4, Java EE Webservice-Annotationen ea3/docs/annotations.html ea3/docs/annotations.html

Infopoint - Java EE 5 - Jörg Wüthrich25 / 24 backup

Infopoint - Java EE 5 - Jörg Wüthrich26 / 24 Webservice - WSDL Eine WSDL-Datei enthält folgende Informationen: – types Definition der Datentypen (meist XML-Schema) – message definiert Datenelemente der Operationen – porttype Beschreibt die vorhandenen Operationen und verwendeten Messages (Java: Interface) – binding definiert das Nachrichtenformat und Protokoll-Details für jeden Porttype