Date post: | 17-May-2015 |
Category: |
Technology |
Upload: | marcello-teodori |
View: | 1,807 times |
Download: | 1 times |
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
JBoss Seam,un framework perJava EE 5
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
About Marcello
Ingegnere Informatico, appassionato di Java, open source, metodologie e programmazione in generale, lavora dal 1997 nello sviluppo software, principalmente in ambito applicazioni distribuite, web e mobile internet.
Dal 2004 collabora all'organizzazione delle attività del Java User Group Milano.
Partecipa alla community open source principalmente contribuendo con localizzazioni in italiano di applicazioni esistenti e traduzioni di documentazione tecnica.
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
About JUG Milano
● nasce il 18 Dicembre 2002 per iniziativa di Filippo Diotalevi
● mailing list su Yahoo! Groups con più di 200 iscritti
● meeting mensili con presentazioni a cura degli iscritti
● organizziamo e partecipiamo ad eventi speciali
● partecipazione del tutto libera e gratuita
● il nostro sito web: http://www.jugmilano.it/
● facciamo parte della Top 50 dei JUG mondiali!
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Yet another framework?
Un nuovo framework basato su Java EE 5:● Annotations● EJB3● Java Server Faces
Seam è il primo framework proposto da JBoss!
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Enterprise JavaBean (EJB) 3
● Java Persistence Architecture– Hibernate in JBoss
● Interceptor (AOP)● Annotations
– lookup JNDI– POJO– lifecycle– default per XML
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Java Server Faces (JSF)
● UI web component● navigation handler● expression language● managed bean
– model– gestione eventi
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Il modello pre-Java EE 5
● domain model● DAO (integration logic)● service (business logic)● webapp● design patterns
– DTO– business delegate– MVC
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Un modello ideale
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Componenti Seam
● JSF Managed Bean che siano anche EJB● legati ad un contesto
– @Name– @Scope
● proposta di standardizzazione:JSR 299 - Web Beans
ma...
non annullano la separazione fra i layer?
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Contesti Seam
● i context classici delle Servlet API– request (aka event per Seam)– page– session– application
● due nuovi context “applicativi”– conversation– business process
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Bijection?
● @InDependency Injection applicabile a tutti i componenti Seam e non alle sole risorse gestite da Java EE 5
● @Outpubblicazione di una variabile in un componente Seam su uno specifco contesto
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Architettura di Seam
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
The Java EE 5 way
Generazione applicazione CRUD da database in Netbeans 5.5...
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
The Seam way
Generazione applicazione CRUD da Entity Bean con Seam via Ant...
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam & jBPM
● Page Flow– contesto conversation– defnizione navigazione in jPDL
● Business Process Management– uso di Hibernate (non EJB3) per persistenza
● editor visuale jPDL in JBoss IDE● integrazione componenti Seam via EL● jPDL non è uno standard
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam & Facelets
● JSP and JSF don't play well● defnisco il component tree in XHTML● integrato nel prossimo rilascio delle
specifche JSF?● page layout
– analogo a Tiles/SiteMesh
● page theme● progetto “vicino” a JBoss...
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam Remoting
● libreria JavaScript per– richiamare componenti Seam– ricevere eventi JMS (tramite polling)
● annotation @WebRemote● modalità debug
...utilizzando XHR posso applicare tecniche AJAX alle mie pagine, ma manca unsupporto a livello di componenti UI JSF...
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam Logging
● basato su Commons Logging● @Logger● aggiunge alle funzioni di log abituali:
– supporto varargs (a la printf)– expression language
nulla di clamoroso ma davvero utile...
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Altre funzionalità in Seam
● ServletFIlter per “redirect after post”● Form Validation basata su Annotations
JPA/Hibernate● supporto URL in stile REST, adatte ad
essere salvate come bookmark● supporto per Drools (aka JBoss Rules)● supporto testing con TestNG
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam vs. Spring
● integrazione con altre librerie OSS● override Annotation
– components.xml– seam.properties
● dependency injection vs. bijection● Seam Templates (prossimamente...)
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Seam: what's next
● versione 1.1 in CR● supporto toolkit AJAX OSS per JSF
– Ajax4JSF– IceFaces
● Seam POJO– posso evitare completamente EJB3
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Conclusioni
● EoD (Ease of Development)● full-stack framework● non è JBoss-only, anche se...
– può convenire avere un riferimento unico
● duplicazione funzionalità in Java EE 5 non ancora presenti in JBoss AS
● rischio di eliminare troppi layer● sindrome NIH per ciò che non è di JBoss
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Riferimenti
● JBoss Seamhttp://www.jboss.org/products/seam
● Spring vs. EJB3http://www.onjava.com/pub/a/onjava/2005/06/29/spring-ejb3.html
● Seam in RedHat 108https://rhstack.108.redhat.com/articles/2006/09/18/jboss-seam-the-next-generation-web-framework.html
● The Java EE 5 Tutorialhttp://java.sun.com/javaee/5/docs/tutorial/doc/index.html
Marcello Teodori [email protected] JUG MilanoJavaday Roma - 02/12/2006
Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License
Q&A
Grazie per l'attenzione.