Introduzione
jAPS 2.0 è una piattaforma professionale Open Source per la realizzazione di sistemi web accessibili di tipo informativo, collaborativo e orientato ai servizi jAPS 2.0 Platform è un Enterprise Information Platform che facilita l'accesso, l'aggregazione, la pubblicazione, la personalizzazione e l'integrazione di informazioni, processi e risorse di una organizzazione. jAPS 2.0 Platform racchiude in un'unica soluzione le caratteristiche di enterprise information portal, di content management system e di framework applicativo per la realizzazione di applicazioni verticali basate sui contenuti (Content Enabled Vertical Application) jAPS 2.0 fornisce i componenti di base per realizzare sistemi web evoluti, comprendenti sia elementi di front-end con elevata qualità di presentazione, sia applicazioni di back-end e di gestione del sistema. E' inoltre caratterizzato da massima flessibilità e da facilità di integrazione con servizi esterni. La combinazione di queste caratteristiche determina l'unicità del modello jAPS. Intorno ai componenti di base esistono numerose estensioni, derivanti da realizzazioni basate su jAPS 2.0. Sono disponibili componenti o semilavorati nei seguenti ambiti:
- soluzioni mobile, sia web-based, sia basate su client (Java Midlet)
- soluzioni GIS, con visualizzatori e integrazione di servizi (standard WMS e WFS)
- integrazione SOA (Service Oriented Architecture) e WFMS (Workflow Management System)
- sistemi di autenticazione forte, Single Sign On
- sistemi ERP
L'introduzione del modello Plug-in in jAPS 2.0 semplifica l'integrazione dei componenti e rende disponibile un sempre maggiore numero di componenti pronti per l'uso o personalizzabili.
jAPS 2.0 è sviluppato in tecnologia Java EE e si appoggia a numerosi altri framework open source. Il sistema è stato progettato ed evolve sulla base delle seguenti linee guida:
- utilizzo di tecnologie leggere
- essenzialità
- attenzione per le prestazioni
- modularità
- rispetto degli standard, quando sono effettivamente utili
- eliminazione di vincoli inutili, massima libertà per gli sviluppatori
- qualità del software
- metodologia "agile" di sviluppo
Queste linee guida sono completate da un modello funzionale basato su obiettivi di utilità effettivamente aderenti ai reali scenari di utilizzo. Il progetto tiene conto delle diverse fasi del ciclo di vita di un sistema web evoluto e delle diverse capacità degli attori che interagiscono con la piattaforma.
Ideazione e progettazione
La flessibilità della piattaforma jAPS 2.0 lascia spazio alla progettazione dei sistemi in modo coerente con gli obiettivi del progetto e con le esigenze dei clienti. La presentazione grafica e l'organizzazione delle informazioni non sono vincolati a schemi rigidi o prefissati, ma possono essere progettati di volta in volta con grande libertà.
Sviluppo/realizzazione
jAPS 2.0 mantiene distinto il contesto di sviluppo di codice Java (per moduli aggiuntivi, integrazioni e personalizzazioni) dallo sviluppo della presentazione (template grafici, markup, CSS). Gli sviluppatori con le differenti competenze possono operare separatamente, senza interferire e senza doversi muovere in terreni sconosciuti.
Installazione
I parametri di configurazione di jAPS 2.0 in rapporto con l'ambiente di installazione (sviluppo, test, produzione) vengono gestiti dal sistema con l'obiettivo di facilitare la personalizzazione, la flessibilità e la semplicità di gestione.
Gestione
Le attività di gestione ordinaria del sistema e quelle redazionali di aggiornamento dei contenuti sono eseguite attraverso un'interfaccia di back-end semplice, intuitiva ed accessibile. L'aggiornamento dei contenuti e l'organizzazione delle pagine web non richiedono il coinvolgimento di figure tecniche. Non ci sono barriere per persone con disabilità. Nuove applicazioni in back-end possono essere integrate nello stesso contesto grafico e funzionale.
Utilizzo
Il front-end, visibile agli utenti finali, può essere realizzato e personalizzato senza alcun vincolo. La qualità, la facilità d'uso e l'accessibilità sono i massimi raggiungibili in rapporto alla capacità dei realizzatori. jAPS 2.0 non pone vincoli e consente dunque di raggiungere gli obiettivi desiderati. In particolare, jAPS 2.0 permette realizzazioni aderenti alle linee guida W3C-WCAG e alle normative nazionali, abbattendo le barriere di accesso al web per le persone con disabilità.
Evoluzione
L'architettura, il disegno modulare con forte disaccoppiamento dei componenti, l'uso di framework "ben noti", l'essenzialità, la definizione di pattern specifici e la qualità del software consentono l'evoluzione di sistemi basati su jAPS 2.0 con un elevato grado di efficienza in relazione alla complessità degli obiettivi.
jAPS 2.0 è stato progettato per supportare la realizzazione di sistemi robusti ed efficienti di grandi dimensioni, ma la sua flessibilità ne rende utile l'impiego in un ampia gamma di dimensioni.
Architettura
L'architettura di jAPS 2.0 è basata su un disegno modulare con forte separazione delle funzioni. Presenta due interfacce utente separate, una di front-end, sulla quale insistono le pagine web destinate agli utenti finali, e una di back-end, dedicata alla amministrazione e gestione del sistema e a funzioni applicative riservate. L'interfaccia di front-end corrisponde ad alcuni moduli dedicati all'erogazione di pagine dinamiche, con presentazione di qualità e con alte prestazioni anche in presenza di elevato numero di accessi. Le richieste degli utenti passano per un insieme di livelli di interpretazione e controllo (tra i quali il controllo di autorizzazione). Alla richiesta corrisponde l'erogazione di una pagina web, costruita dinamicamente in base alla configurazione tramite aggregazione degli output di unità visuali elementari ("showlets"). L'interfaccia di back-end è dedicata alle funzionalità applicative di gestione ed aggiornamento della piattaforma e a funzionalità applicative specifiche. E' dedicata a funzioni "interne", riservate tipicamente ai gestori del sistema e al personale interno all'organizzazione. Questa interfaccia non richiede particolari caratteristiche di flessibilità e di stile nella presentazione ed è di conseguenza realizzata con il classico framework Struts. Per garantire l'estendibilità delle funzioni core dell'interfaccia, è previsto l'uso dell'AOP e in particolare degli Interceptor di Struts. I moduli delle due interfacce, front-end e back-end, utilizzano per i loro compiti il sottosistema dei servizi: servizi infrastrutturali della piattaforma e servizi applicativi specifici. Tutte le funzioni non specifiche del livello interfaccia utente sono delegate al livello dei servizi. Viceversa, il livello dei servizi non comprende alcuna funzionalità o informazione che riguarda l'interfaccia (con l'eccezione dei servizi specifici di supporto alla renderizzazione delle informazioni). Questa separazione dei ruoli consente la totale libertà nella realizzazione dell'aspetto visuale. L'architettura di jAPS 2.0 prevede la possibilità di estensione tramite Plug-in. Ogni Plug-in può comprendere contemporaneamente, nel caso più generale, elementi di front-end, di back end e moduli di servizio. In pratica, jAPS 2.0 può essere esteso in ciascuna delle sue funzioni principali. Il sistema comprende nativamente gli strumenti per la profilazione fine degli utenti, l'autenticazione in diverse modalità, il controllo delle autorizzazioni basato sia su ruoli che sulla proprietà degli oggetti.
Modello del front-end di jAPS
Le entità logiche che costituiscono il front-end di jAPS sono:
Pagine
Sono contenitori vuoti. Le pagine, di per sé, non comprendono alcuna informazione o funzionalità. Sono dotate di alcuni dati (codice, titolo). Sono organizzate attraverso l'Albero delle pagine.
Albero delle Pagine
E' una struttura gerarchica ad Albero che collega le Pagine. L'organizzazione si riflette sulle modalità di navigazione degli utenti, attraverso menù e altri strumenti di navigazione.
Template di pagina
Sono schemi di composizione dell'output delle pagine. Definiscono l'organizzazione dei blocchi di informazione costituenti le pagine web e la vestizione grafica d'insieme. jAPS non vincola la composizione dei template, lasciando la massima libertà nell'organizzazione interna della pagina.
Showlets
Sono i componenti che veicolano le informazioni e servizi sulle pagine del front-end. In sede di configurazione, le showlet sono assegnate alle pagine nelle posizioni definite dai template di pagina. Le showlet comprendono una parte di presentazione (definizione dell'output) e una parte di logica applicativa (recupero delle informazioni), mantenuti completamente separati. La logica delle showlet è minima e fa riferimento ai componenti applicativi immediatamente sottostanti (servizi). Le Showlet sono essenzialmente dei componenti di intermediazione fra servizi (interni ed esterni) e l'output del front-end. Questo modello logico semplice e generale è alla base della flessibilità di jAPS 2.0. La piattaforma comprende numerosi componenti Showlet preconfezionati, con i quali è possibile realizzare interamente la parte informativa dei portali web. Queste Showlet sono basate su servizi interni della piattaforma: CMS, motore di ricerca, sistema di autenticazione/autorizzazione, eccetera. Le Showlet sono estendibili con grande facilità, consentendo l'integrazione di nuovi servizi con efficienza e con estrema flessibilità. Contrariamente alle Portlet, il modello delle Showlet è semplice, leggero e basato sulla indipendenza della presentazione dalla logica applicativa. Tutto il sistema è predisposto per il multilinguismo. La generalità dell'organizzazione e la massima flessibilità nella presentazione dell'output hanno come naturale conseguenza la caratteristica di multicanalità. Un'altra importante conseguenza della flessibilità nella presentazione è la possibilità di realizzare interfacce compatibili con l'accessibilità.
Il sottosistema CMS di jAPS 2.0
Uno dei servizi più potenti già presente nella piattaforma jAPS è il sottosistema CMS (Content Management System). Le sue caratteristiche e funzionalità principali sono:
- archivio contenuti web indipendente e autonomo
- struttura dei contenuti configurabile
- possibilità di correlazione tra i contenuti (link simbolici)
- sistema di categorizzazione
- archivio immagini e documenti
- multilinguismo nativo
- motore di indicizzazione e ricerca in tempo reale
- totale separazione tra l'informazione e le modalità di rappresentazione
- motore di renderizzazione autonomo (abilita la multicanalità)
- semplici e potenti strumenti di pubblicazione
- facilità di redazione (utenti senza competenze tecniche)
- accessibilità (il back-end di redazione può essere usato da utenti con disabilità)
Il sistema CMS di jAPS 2.0 ha una grande quantità di funzioni, che è impossibile elencare qui. E' importante sottolineare che anche il sottosistema CMS è basato su un modello logico robusto e su una implementazione modulare. Di conseguenza, il sottosistema può essere utilizzato con grande versatilità. Ad esempio, il sistema di categorizzazione gerarchica può essere declinato, sulle pagine web, come sistema di categorizzazione piatto, per "tag", a faccette (facets) utilizzando o realizzando le Showlet adatte. La rappresentazione interna in formato XML strutturato consente di riutilizzare i contenuti all'esterno del sistema e di scambiarli con altre piattaforme.
jAPS 2.0 e l'accessibilità web
La piattaforma jAPS è stata progettata, fin dalle prime versioni, con l'obiettivo dichiarato di consentire l'abbattimento delle barriere di accesso al web. Con la versione jAPS 2.0 è stato raggiunto l'obiettivo di rendere accessibile anche il sistema di back-end, almeno secondo prescrizioni della normativa italiana. Ciò significa che si è aperta la possibilità di effettuare attività redazionali anche alle persone con disabilità. Questa caratteristica rende unica la piattaforma jAPS 2.0 nel mondo open source e probabilmente nell'intero panorama di prodotti similari.
jAPS 2.0 come piattaforma di integrazione
In una macro-architettura di tipo SOA, jAPS 2.0 può rappresentare l'elemento centrale di un sistema integrato di servizi web. jAPS 2.0 risolve con efficienza i temi della aggregazione delle informazioni e dei servizi su un front-end unico. Il back-end facilmente estendibile consente di integrare anche le funzionalità applicative di appoggio ai servizi di front-end. La modularità del sottosistema dei servizi consente di agganciare, con facilità e secondo un disegno coerente, i connettori ai servizi esterni da integrare. I moduli già esistenti forniscono molti dei servizi di infrastruttura necessari nella pratica. Ad oggi, jAPS 2.0 è stato utilizzato con successo in questi scenari:
- Portali web orientati principalmente all'informazione, di dimensioni rilevanti (P.A. centrale e locale)
- Portali intranet con componente informativa e forte componente di integrazione di servizi
- Sistemi di portali cooperanti con condivisione parziale dei contenuti
- Come piattaforma per la realizzazione di applicazioni verticali web based (sia di tipo "content enabled" che di altro genere più specifico)
