JBoss Seam, un framework per Java EE 5

  • 1,757 views
Uploaded on

Presentazione sul framework Seam di JBoss effettuata alla tappa di Roma della prima edizione di JavaDay '06.

Presentazione sul framework Seam di JBoss effettuata alla tappa di Roma della prima edizione di JavaDay '06.

More in: Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • cool stuff
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
1,757
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
34
Comments
1
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License JBoss Seam, un framework per Java EE 5 Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 2. About Marcello Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 3. About JUG Milano Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 4. Yet another framework? Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Un nuovo framework basato su Java EE 5: ● Annotations ● EJB3 ● Java Server Faces Seam è il primo framework proposto da JBoss! Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 5. Enterprise JavaBean (EJB) 3 Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● Java Persistence Architecture – Hibernate in JBoss ● Interceptor (AOP) ● Annotations – lookup JNDI – POJO – lifecycle – default per XML Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 6. Java Server Faces (JSF) Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● UI web component ● navigation handler ● expression language ● managed bean – model – gestione eventi Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 7. Il modello pre-Java EE 5 Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● domain model ● DAO (integration logic) ● service (business logic) ● webapp ● design patterns – DTO – business delegate – MVC Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 8. Un modello ideale Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 9. Componenti Seam Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 10. Contesti Seam Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● i context classici delle Servlet API – request (aka event per Seam) – page – session – application ● due nuovi context “applicativi” – conversation – business process Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 11. Bijection? Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● @In Dependency Injection applicabile a tutti i componenti Seam e non alle sole risorse gestite da Java EE 5 ● @Out pubblicazione di una variabile in un componente Seam su uno specifco contesto Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 12. Architettura di Seam Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 13. The Java EE 5 way Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Generazione applicazione CRUD da database in Netbeans 5.5... Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 14. The Seam way Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Generazione applicazione CRUD da Entity Bean con Seam via Ant... Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 15. Seam & jBPM Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 16. Seam & Facelets Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 17. Seam Remoting Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 un supporto a livello di componenti UI JSF... Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 18. Seam Logging Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 19. Altre funzionalità in Seam Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 20. Seam vs. Spring Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● integrazione con altre librerie OSS ● override Annotation – components.xml – seam.properties ● dependency injection vs. bijection ● Seam Templates (prossimamente...) Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 21. Seam: what's next Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● versione 1.1 in CR ● supporto toolkit AJAX OSS per JSF – Ajax4JSF – IceFaces ● Seam POJO – posso evitare completamente EJB3 Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 22. Conclusioni Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● 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 marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 23. Riferimenti Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License ● JBoss Seam http://www.jboss.org/products/seam ● Spring vs. EJB3 http://www.onjava.com/pub/a/onjava/2005/06/29/spring-ejb3.html ● Seam in RedHat 108 https://rhstack.108.redhat.com/articles/2006/09/18/jboss-seam-the- next-generation-web-framework.html ● The Java EE 5 Tutorial http://java.sun.com/javaee/5/docs/tutorial/doc/index.html Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006
  • 24. Q&A Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License Grazie per l'attenzione. Marcello Teodori marcello.teodori@jugmilano.it JUG Milano Javaday Roma - 02/12/2006