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

Ähnliche Dokumente
Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

Softwareentwicklung mit Enterprise JAVA Beans

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Struts 2 Das Imperium schlägt zurück?

Webinar: Einführung in ICEfaces

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

Entwicklung von Web-Anwendungen auf JAVA EE Basis

Automatisiertes Testen von Java EE-Applikationen mit Arquillian

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Performance Analyses with inspectit

Integration mit. Wie AristaFlow Sie in Ihrem Unternehmen unterstützen kann, zeigen wir Ihnen am nachfolgenden Beispiel einer Support-Anfrage.

Mobiles SAP für Entscheider. Permanente Verfügbarkeit der aktuellen Unternehmenskennzahlen durch den mobilen Zugriff auf SAP ERP.

Java EE Projektseminar

Prozessautomatisierung mit BPMN 2.0 und Java.

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

BIF/SWE - Übungsbeispiel

Service. Was ist eine Enterprise Service Architecture und wie reagiert SAP. Warum Monitoring in ZENOS, was monitort die XI?

Festpreisprojekte in Time und in Budget

Architektur des agimatec-validation Frameworks

Online Banking System

RESTful Web. Representational State Transfer

Überblick Produkte. ORACLE AS 10g R3 JAVA Programming. (5 Tage)

Internetanbindung von Datenbanken

SE2-10-Entwurfsmuster-2 15

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

WebSphere Application Server Installation

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Programmierung von Client/Server- Anwendungen

Powermanager Server- Client- Installation

BPM im Kontext von Unternehmensarchitekturen. Konstantin Gress

LIVE/11 - WEBSPECIAL. Andreas Förthner - Clemens Kalb

Leistungsmessungen zum Einsatz der J2EE Technologie für Feldbussimulationen

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Workflow, Business Process Management, 4.Teil

Liste V Enterprise JavaBeans

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

SAP NetWeaver Gateway. 2013

Erste Erfahrungen mit NSASJ anhand der OmnivoBase Portierung. September 2013

SDD System Design Document

I N F O R M A T I O N V I R T U A L I S I E R U N G. Wir schützen Ihre Unternehmenswerte

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

6.9 Java Server Pages

Java Enterprise Architekturen Willkommen in der Realität

Unified Communications & Collaboration

Fähigkeiten des BizTalk Servers

JBoss Seam. Seam oder wie Nähe ich ein Java EE Patchwork. Version: 1.2

Viele gute Stellen sind frei. Besetzen Sie eine.

Kurzanweisung für Google Analytics

Ideation-Day Fit für Innovation

d.3 starter kit Starterpaket für den einfachen Einstieg in die digitale Dokumentenverwaltung

MHP Mobile Business Solution Ihre Prozessoptimierung, um ortsunabhängig flexibel und hoch produktiv zu agieren!

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

EJBs und Sicherheit. Vorlesung: Applikationsserver. Prof. Dr. Ch. Reich furtwangen.de furtwangen.

Skriptum. zum st. Galler

Geschäftsprozessunterstützung mit Microsoft SharePoint Foundation 2010 Microsoft InfoPath 2010 und Microsoft BizTalk Server 2013

Fujitsu BeanConnect TM V3.0 Software 0 FUJITSU LIMITED 2013

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Java Server Faces. Andy Bosch. Das Standard-Framework zum Aufbau webbasierter Anwendungen. An imprint of Pearson Education

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

Xpert.IVY das GUI ist entscheidend!

Wanna be faster? Performance kann man managen! Application Performance Management, TIC Konferenz 2014

Oliver Paulus, 7. Februar Spring Framework Einführung. Oliver Paulus, Was ist Spring?

SAP SharePoint Integration. e1 Business Solutions GmbH

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi


Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

Spring Dynamic Modules for OSGi Service Platforms

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

smis_secure mail in der srg / pflichtenheft /

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

IBM Software Demos Tivoli Composite Application Manager for SOA

Service-Orientierte InterSystems GmbH 2009

Einleitung. Funktion. Panzenböck Phillipp. Download Installation. Testen. Konfiguration

Java Einführung Packages

Der SAP BW-BPS Web Interface Builder

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

ORACLE Business Components for Java (BC4J) Marco Grawunder

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

GuiXT und mysap ERP. Regensdorf, April 2004 Dr.Gerhard Rodé, Synactive GmbH

Moderne Web- Anwendungen mit

DCCS Lotusphere Nachlese 2012 Was sind XPages? Mobile Features für XPages

Monitoringvon Workflows in einer BPEL-Engine

Anwenderleitfaden Citrix. Stand Februar 2008

Verbinden von Workflows und fachlichen Prozessmodellen im Rahmen eines SharePoint Prozessportals Semtation GmbH (Henrik Strauß)

Abschlusspräsentation Projekt Loan Broker mit BizTalk 2010

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Übungsaufgabe Transaktion als Middleware

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Eignet sich Eclipse RCP als Enterprise Plattform? 2. Mai 2006 Lars Stucki & Edwin Steiner

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Transkript:

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

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

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

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 4 / 28

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 5 / 28

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 6 / 28

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 7 / 28

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 8 / 28

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 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 9 / 28

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 10 / 28

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 11 / 28

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) 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 12 / 28

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 13 / 28

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 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 14 / 28

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 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 15 / 28

Bijection Seam Kontext 1. inject todo 3. outject todo <<Seam Komponente>> todo:todo @Entity @Name("todo") public class Todo implements Seriali <<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 16 / 28

Beispiel-Anwendung Demo 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 17 / 28

Beispiel-Anwendung Seam <h:outputlabel value="#{todo.title}"/> <h:commandbutton action="#{tododao.update}"/> <<Entity>> Todo {@Name("todo")} edit.xhtml Seam Kontext <<Stateful>> TodoDao {@Name("todoDao")} 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 18 / 28

Beispiel-Anwendung JSF <h:outputlabel value="#{todobean.todo.title}"/> <h:commandbutton action="#{todobean.update}"/> edit.xhtml <<managed-bean>> TodoBean <<Entity>> Todo faces-config.xml {registriert} <<Stateful>> TodoDao JSF Kontext 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 19 / 28

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(); } 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 20 / 28

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

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;} 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 22 / 28

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 23 / 28

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 24 / 28

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> <s:validateall> 04.02.2009 Infopoint - JBoss Seam - Jörg Wüthrich 25 / 28

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 26 / 28

Referenzen Dokumentation zu Seam: http:// www.seamframework.org/ Seam Referenz-Dokumentation: http:// docs.jboss.com/seam/2.1.1.ga/reference /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 27 / 28

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 28 / 28