Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Menu
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
Cerca
Chiudi

Nel numero:

109 luglio
, anno 2006

Un framework per Web 2.0

Il nuovo framework di JBoss

Avatar

Massimiliano Bigatti

Massimiliano Bigatti è sviluppatore senior, autore tecnico e appassionato di fotografia.
Certificato, tra le altre, come SUN Certified Enterprise Architect for Java2 Enterprise
Edition Technology, lavora presso un importante business solution provider.
Nel tempo libero scrive per diverse riviste di informatica e ha scritto una decina di libri,
quasi tutti su Java, tra cui "Java e Open Source", Tecniche Nuove 2005.
Il suo sito personale è raggiungibile all‘indirizzo www.bigatti.it.

MokaByte

Un framework per Web 2.0

Il nuovo framework di JBoss

Massimiliano Bigatti

Massimiliano Bigatti

  • Questo articolo parla di: Frameworks & Tools, Programmazione & Linguaggi

Cosa si intende per Web 2.0? Semplicemente, l‘utilizzo organico di tecnologie e applicazioni allo scopo di offrire all‘utente un‘esperienza d‘uso migliore di quella fruibile con applicazioni basate su continui caricamenti di pagina.
Il nuovo framework di jBoss è completamente orientato agli standard della piattaforma Java Enterprise Edition, oltre che fortemente indirizzato alla testabilità e alla completa integrazione di AJAX.

Cosa si intende per Web 2.0? Semplicemente, l‘utilizzo organico di tecnologie e applicazioni allo scopo di offrire all‘utente un‘esperienza d‘uso migliore di quella fruibile con applicazioni basate su continui caricamenti di pagina.
La chiave e il collante di questi elementi è JavaScript, e l‘oggetto XMLHttpRequest, che consente di eseguire chiamate HTTP al server da svariati linguaggi di scripting, primo tra tutti JavaScript. Questo è il cuore di AJAX.

Evoluzione costante

Se tutto il comparto dell‘informatica è in costante evoluzione, si possono individuare argomenti più o meno caldi. Le basi del linguaggio Java oggi sono abbastanza consolidate, mentre la rivoluzione imposta da Hibernate e dagli altri motori di persistenza è in fase di assorbimento da parte di Java Enterprise Edition con il rilascio di EJB3.0.
La parte che sta vivendo l‘evoluzione pià  marcata è quindi forse lo strato di presentazione Web, che dalle Servlet ha compiuto un tragitto di crescita notevole, passando rapidamente da JSP ai motori di presentazione come Struts e Spring. Ora il nuovo è rappresentato da Java Server Faces. E da AJAX.
In questo contesto si inserisce Seam, un nuovo framework di JBoss per la realizzazione di applicazioni Web 2.0, basate su AJAX e in generale su un modello di programmazione che è l‘evoluzione degli standard che eravamo abituati a utilizzare fino a pochi anni (mesi) fa.
L‘esigenza di una crescita e standardizzazione in ambito dello strato di presentazione è probabilmente un‘esigenza sentita, se si confronta la difficoltà  di realizzazione di soluzioni basate su Web 1.0 rispetto a framework tradizionali, anche pre-Java.
Insomma: programmare per il Web è da qualche anno la nuova moda, ma gli strumenti a disposizione dello sviluppatore non hanno ancora raggiunto quel livello di semplicità  accettabile per il livello di applicazioni che si deve realizzare.

Congiungere

Il framework Seam riunisce in un modello di programmazione unificato (e semplificato) diverse tecnologie risultato delle ultime evoluzioni. In primis, Seam si basa sul modello EJB3, eliminando quindi gli oggetti pesanti EJB2, ma tornando ai cari vecchi oggetti Java (POJO). Su questi viene implementato il supporto ad AJAX, il supporto alle architetture orientate ai servizi SOA (e perché no?), a JSF, Portlets e Business Process Management.

In particolare, il fatto di basarsi sul EJB3.0 porta alcuni elementi interessanti:

  • L‘utilizzo di EJB3 riporta tutto lo sviluppo verso POJO, eliminando componenti EJB2 a grana grossa e pesanti, elimina descrittori XML e riduce il numero di classi necessarie. Ok, questo è un vantaggio di EJB3, non di Seam. Si può dire che Seam, come aggregato, beneficia dei vantaggi dei singoli componenti. Il risultato è che Seam appare un framework leggero.
  • In Seam, tutto è un EJB. Le entità  sono Entity Bean; i processi sono modellati come Session Bean. Anche qui si sfrutta EJB3, ma l‘importante è che Seam non aggiunge nulla di suo. Ma la cosa più interessante è che Seam elimina la distinzione tra strato di presentazione e componenti della logica di business.

Quest‘ultimo aspetto è particolarmente interessante e potrebbe far dubitare i puristi della piattaforma JavaEE, e quelli a cui piace scrivere molto codice.
In realtà , in questo modo si eliminano oggetti quali Business Faà§ade, Value Object e altri pattern di supporto che aiutano la comunicazione dei dati da un livello all‘altro, ma che non hanno alcuna utilità  pratica.
Un esempio: in Seam anche i Session Bean possono essere utilizzati in JSF come listener di azioni.
L‘approccio proposto da Seam sembra quindi più pragmatico: meno complessità  e ottenimento più immediato delle funzionalità  necessarie.
L‘eliminazione della distinzione tra i due strati consente anche al browser di invocare direttamente Session Bean attraverso Ajax. Questi appaiono come semplici oggetti JavaScript, nascondendo la complessità  della serializzazione/deserializzazione XML e la necessità  di accedere alle API XMLHttpRequest. Addirittura, i client Web si possono iscrivere a topic JMS e ricevere messaggi pubblicati sul topic come notifiche asincrone.
Praticamente, invece che programmare Java EE utilizzando Java, possibile programmarlo utilizzando JavaScript sul client.

Stato, processo e testabilità

Altre tre caratteristiche fondamentali di Seam sono la gestione avanzata dello stato applicativo, la possibilità  di gestire il processo di business e la testabilità  dell‘applicazione.
In merito al contesto applicativo, Seam offre la gestione di contesti multipli, con granularità  differenti, superando i limiti delle sessioni HTTP. In altre parole, è possibile simulare il funzionamento di applicazioni desktop creando applicazioni Web a più finestre, senza dover creare a mano accrocchi complicati per simulare questa funzionalità . Tante volte si preferisce limitare l‘operatività  a una singola finestra, di fatto limitando l‘esperienza d‘uso dell‘utente, per poter mantenere più semplice l‘applicazione. Anche il supporto di finestre pop-up è difficoltoso.
Per quando riguarda la gestione del flusso operativo, Seam integra jBoss jBPM, semplificando l‘implementazione di workflow complessi e del flusso delle pagine. Questo aspetto probabilmente si sovrappone, come ambito, a framework di presentazione come Struts, WebWork o Spring. Seam dunque traccia la propria strada personale, basata sul software jBoss.
La testabilità  è un altro elemento fondamentale in Seam. Come sottolinea jBoss nella documentazione, i componenti Seam, essendo EJB3/POJO sono testabili per natura. A questo però si aggiunge la possibilità  di collaudare il funzionamento di complete applicazioni. È infatti possibile scrivere test Junit o TestNG per riprodurre una intera interazione dell‘utente, invocando tutti i componenti del sistema, che vengono eseguiti all‘interno dell‘IDE.
A proposito di IDE, JBoss IDE offre uno strumento di reverse engineering che permette di produrre, a partire dal database, e sulla base di template, intere applicazioni Seam. Inoltre, dispone dell‘editor jPDL per creare pageflow e definizioni di workflow.

Conclusioni

Seam è il framework di presentazione di jBoss che svolge alcune delle funzionalità  di Struts, WebWork o Spring, ma ha un approccio più moderno, basato su EJB3, JSF e AJAX. La forte integrazione tra queste tecnologie, unita alle altre caratteristiche, di tutto rispetto, rendono l‘iniziativa molto interessante.
Per prima cosa il forte utilizzo di EJB3, con l‘ampio uso delle annotazioni, che costituisce un po‘ l‘uovo di Colombo che permette di ridurre l‘XML necessario alle applicazioni Enterprise, sicuramente fornisce un‘impostazione all‘applicazione che non è solamente robusta, ma anche conforme agli standard SUN. L‘accesso diretto dei Bean da AJAX è poi una funzionalità  molto interessante, che permette di ridurre notevolmente il codice necessario a implementare una soluzione. Non ultime, le caratteristiche di testabilità  di tutta l‘applicazione e l‘utilizzo di jBPM per il workflow, che permette di sfruttare applicazioni standard di supporto.

 

Facebook
Twitter
LinkedIn
Avatar

Massimiliano Bigatti

Massimiliano Bigatti è sviluppatore senior, autore tecnico e appassionato di fotografia.
Certificato, tra le altre, come SUN Certified Enterprise Architect for Java2 Enterprise
Edition Technology, lavora presso un importante business solution provider.
Nel tempo libero scrive per diverse riviste di informatica e ha scritto una decina di libri,
quasi tutti su Java, tra cui "Java e Open Source", Tecniche Nuove 2005.
Il suo sito personale è raggiungibile all‘indirizzo www.bigatti.it.

Massimiliano Bigatti

Massimiliano Bigatti

Massimiliano Bigatti è sviluppatore senior, autore tecnico e appassionato di fotografia. Certificato, tra le altre, come SUN Certified Enterprise Architect for Java2 Enterprise Edition Technology, lavora presso un importante business solution provider. Nel tempo libero scrive per diverse riviste di informatica e ha scritto una decina di libri, quasi tutti su Java, tra cui "Java e Open Source", Tecniche Nuove 2005. Il suo sito personale è raggiungibile all‘indirizzo www.bigatti.it.
Tutti gli articoli
Nello stesso numero
Loading...

Gestire un database con JavaBeans

I parte: Il mapping dei record

SOA: dalla teoria alla pratica

X parte: Esempio pratico (2)

Offshore

II parte: Best practices per la gestione di progetti offshore (1)

La progettazione di applicazioni web con UML

III parte: un esempio

Device Independence

Approccio server side mediante Cocoon e DELI

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte