Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Advanced Topics Jonas Bandi Simon Martinelli.
Cloud42 Dominik Muhler Seminar StuPro cims cims.
E-Commerce Shop System
1 Gerardo Navarro Suarez BPM Suite. 2 Quelle: camunda Services GmbH Das Warum hinter Activiti Problem bestehender BPMS: Starker Fokus auf das Business.
JPQL Java Persistence Query Language
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Datenbankzugriff im WWW (Kommerzielle Systeme)
Erweiterung B2B Usermanagement / LDAP-Anbindung
Objektrelationales Mapping mit JPA
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Abschlusspräsentation cims. cims Abschlusspräsentation cims Agenda Aufgabenstellung Das System – Benutzerverwaltung / Abrechnungsmodell.
Abschlusspräsentation cims. cims Abschlusspräsentation cims Agenda Aufgabenstellung Das System – Benutzerverwaltung – Architektur –
Cims cims Lukasz Bialy, Tanja Blascheck, Dominik Muhler, Nikolay Nachev, Hannes Pfannkuch, Daniel Pflüger, Michael Prib, Andrej Rapoport.
Java 2 Enterprise Edition (J2EE)
Stephan Bury  Pascal Busch  Bita Gerami
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
erasm platform Bild- / Galerieverwaltung
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Projekt Web Engineering
NetUSE Web Application Framework Kai Voigt NetUSE AG 28. Februar 2003.
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Web-Anwendungsentwicklung à la MVC. Übersicht Über Georg Heeg Ein industrielles Beispiel Web-Anwendungen aus Smalltalker-Sicht MVC für das Web Programmierdemo.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
YouTube5 .0 Projektpräsentation
Das Web als Präsentations- / Kommunikationsschicht
Herzlich Willkommen… welcome… soyez la bienvenue….
Wir bauen uns eine Webapplikation!
Seminar Web-Anwendungen mit JSP u. ASP.NET entwickeln JavaServer Faces Vortragender: Thomas Dermin Custom-Components.
GWT 2.0, Infopoint, Jörg Wüthrich1 GWT 2.0 Framework zur Erstellung von browserbasierten Applikationen.
GC-Tuning, Infopoint, Jörg Wüthrich1 GC-Tuning Erfahrungsbericht.
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
MDA – Framework AndroMDA
Robotron – Titel der Präsentation Martin Kunze,
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
EJB-Applikationsserver
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Bean Validation JSR-303 Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Architecture Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Java Server Pages Sergej Keterling
Referent: Stephan Metzler
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Datenanbindung in Webapplikationen
Einführung in PHP.
Einführung in PHP 5.
Datenbankanbindung in Web-Applikationen
Infopoint - Java EE 5 - Jörg Wüthrich1 / 24 Java EE 5 Infopoint, Jörg Wüthrich.
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Einführung in Web Services Web Services in der Praxis
Cims Konzepte & Architektur Lukasz Bialy Dominik Muhler StuPro cims cims.
Vassil Dimov.  Was ist Blue Age  Eigenschaften  Möglichkeiten  Hello World (Beispiel)  Entity Creation(Beispiel)  Benefit.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
AOP Lösung für Querschnittsaufgaben. Was ist AOP ? AOP ist kein Ersatz für OOP AOP ergänzt OOP AOP beinhaltet die Behandlung von Querschnittsaufgaben.
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
/14Mohamed Sabbar, Medieninformatik - Fachseminar 14/12/09 Java Server Faces (JSF) „JSF“ ist mehr als nur eine Insel Fachseminar WS 09/10 Mohamed Sabbar.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
© 2012 TravelTainment Einführung in Enterprise JavaBeans Seminarvortrag von Ralf Penners Folie 1 von 34.
Verteilte Anwendungen: J2EE
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
 Präsentation transkript:

Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009 JBoss Seam Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009

Infopoint - JBoss Seam - Jörg Wüthrich Inhalt Einführung Warum Seam? Zentrale Konzepte Demo Validierung Abschliessende Gedanken 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Einführung Positionierung 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Einführung Seam ist ein Applikations-Framework für Enterprise Java 5 Integriert Java Server Faces (JSF) Enterprise JavaBeans (EJB3) Asynchrones JavaScript und XML (AJAX) Java Persistence API (JPA) Business Process Management (BPM) Design-Fokus: Elimination von Komplexität auf Architektur- und API-Level 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Ein einfacher Weg, um mit EJB 3.0 zu beginnen EJB 3.0 unterstützt die Entwicklung von transaktionalen Business Komponenten Seam liefert die Integration dieser Komponenten vom GUI bis zur Persistenz- Schicht 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Der schnellste Weg um "rich" zu werden AJAX Clients kommunizieren mit vielen asynchronen, konkurrenzierenden Detail- Anfragen mit dem Server Seam wurde entwickelt mit guter Unterstützung für parallele Zugriffe und ausgereifter Zustands-Verwaltung Richfaces und ICEFaces sind integriert 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Der beste Weg, JSF zum Fliegen zu bringen Ersatz der vielen XML-Konfiguration durch ein paar Annotationen Multi-Windowing Unterstützung Modell-basierte Validierung Saubere Integration von transaktionalen Ressourcen (JPA, JTA, EJB3) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Gute Integration von BPM Optimierung der Arbeits-Abläufe heute immer wichtiger Voraussetzung, um optimieren zu können, ist Messbarkeit Workflows verdeutlichen die Arbeits- Abläufe und ermöglichen Messungen Seam integrierts  04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Persistenz wird zum Kinderspiel Seam ist aus der Hibernate Community entstanden Seams Konversations-Modell löst diverse Probleme der traditionell zustandslosen Web Applikationen LazyInitializationExceptions sollen bei JSF und anderen Frameworks gefürchtet (gewesen) sein 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Beste Unterstützung für CRUD Applikatikonen Seam zu gross für eine einfache Datenbank-Applikation? „seam-gen“ erstellt kleine Applikationen mit DB-Anbindung im Nu (vergleiche „ruby on rails“) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Warum Seam? Automatisierte Integrations-Test Unittests können Interaktionen zwischen Komponenten nicht testen Seam bietet einen Ansatz, um User- Interaktionen zu simulieren und so von UI bis zur Persistenz durchgängig zu testen 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Zentrale Konzepte Komponente beliebige POJOs, EJB3s (Session, Entity, MDB) oder Spring Beans annotiert mit @Name(„...“) lebt immer in einem Kontext (-> zuständig für Lifecycle) Seam stellt spezialisierte Handler zur Verfügung, um die diversen Typen von Objekten einzubinden (Interceptor für EJB) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Zentrale Konzepte Kontext Application Business-Process Session Session Conversation Conversation Conversation Page Page Page Page Event Event Event Event Event Event Event 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Zentrale Konzepte Kontext Event: entspricht einem JSF-Request Page: eine Instanz einer gerenderten Seite Conversation: Arbeitseinheit aus Sicht des Users (kann mehrere Server-Requests beinhalten) Session: Session-Scope des Servlet-APIs Business-Process: hält Zustand über länger dauernden Geschäftsprozess, in welchen mehrere Akteure involviert sein können Application: entspricht Application-Scope von JSF Kontext: verwaltet Lifecycle der Objekte Page: z.B. für klickbare Listen 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Zentrale Konzepte Bijection alle Seam Komponenten werden in einem Kontext gehalten Injection: eine Komponente wird einer anderen aus dem Kontext zur Verfügung gestellt Outjection: eine Komponente gibt eine andere nach Bearbeitung an den Kontext zurück Bijection: Kunstbegriff von Seam, um In- und Outjection in ein Wort zu fassen Injection: Sessionkontext in ein EJB3 (vorher Implementierung SessionBean Interface mit Callback Methoden) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Bijection <<Seam Komponente>> todo:Todo @Entity @Name("todo") public class Todo implements Serializable { Seam Kontext 3. outject „todo“ 1. inject „todo“ <<Seam Komponente>> todoDao:TodoDao @Name("todoDao") public class TodoDao @In @Out private Todo todo; 2. modify „todo“ 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Beispiel-Anwendung Demo Start -> Edit (Validierung!!) Seam Debug Page edit.xhtml faces-config.xml navigation.xml components.xml 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Beispiel-Anwendung Seam 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Beispiel-Anwendung JSF 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Klasse TodoDao @Stateful @Name("todoDao") public class TodoDao implements TodoDaoInt { @In(required=false) @Out(required=false) private Todo todo; @PersistenceContext(type=EXTENDED) private EntityManager em; @DataModel private List<Todo> todos; @Factory("todos") @Begin(join=true) public void findTodos() { todos = em.createQuery("select t from Todo t").getResultList(); } … Bijection – DataModel – Factory - Begin 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Validierung 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Validierung @Entity @Name("todo") public class Todo implements Serializable { … private String description; public Todo () { description =""; } @NotNull @Length(min=2, max=250) public String getDescription() {return description;} Jeder Zugriff auf das Objekt ist geschützt; keine Verteilung der Validierung notwendig 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Validierung <tr> <td>Description:</td> <td> <h:inputTextarea id="description" value="#{todo.description}"> <s:validate /> </h:inputTextarea> <h:message for="description" /> </td> </tr> 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Validierung JSF <tr> <td>Description:</td> <td> <h:inputTextarea id="description" value="#{todoBean.todo.description}"> <f:validateLength minimum="2" maximum="250"/> </h:inputTextarea> <h:message for="description"> </td> </tr> 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Validierung erweitert <f:facet name="beforeInvalidField"> <h:graphicImage styleClass="errorImg" value="error.png"/></f:facet> <f:facet name="afterInvalidField"> <s:message styleClass="errorMsg" /></f:facet> <f:facet name="aroundInvalidField"> <s:div styleClass="error"/></f:facet> <s:validateAll> <tr><td>Description:</td> <td> <s:decorate> <h:inputTextarea id="description" value="#{todo.description}" cols="50" rows="10"/> </s:decorate> </td> </tr> 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Abschliessende Gedanken zu Seam Seam ist nicht alleine einsatzfähig – liefert Zusammenhalt für diverse Komponenten-Frameworks Setzt Kenntnis der zu integrierenden Technologien voraus Performance?? 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Referenzen Dokumentation zu Seam: http://www.seamframework.org/ Seam Referenz-Dokumentation: http://docs.jboss.com/seam/2.1.1.GA/referen ce/en-US/html/ Seam Tutorial mit JSF-Vergleich: http://www.redhat.com/docs/manuals/jboss/j boss-eap-4.2/doc/Getting_Started/index.html 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich

Infopoint - JBoss Seam - Jörg Wüthrich Referenzen JBoss Seam – die Webbeans Implementierung (http://www.webbeans.eu/ ISBN 978-3-446-41190-6) Seam in Action (http://www.manning.com/dallen/ ISBN 978-1-933988-40-1) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich