Architettura AZ Portal

Open-standard

AZ Portal è realizzato secondo le più moderne tecnologie informatiche incentrate sulla piattaforma java e sulla filosofia dell'open-standard e continua lo sviluppo del proprio software in questa ottica.

AZ Portal ha scelto di non legarsi ad un singolo “vendor” o ad una precisa tecnologia.
La scelta di adottare delle componenti standard a livello mondiale, garantisce l’apertura a tutte le attuali tecnologie, e di poter integrare altri componenti standard attuali o futuri. Per ciò, in questo documento, si troveranno spesso dei riferimenti tipo “JSR-123”; queste sigle identificano delle richieste di specifiche standard che tutto il mondo informatico, che utilizza java, sente la necessità di standardizzare, in modo da poter interagire l'un l'altro con soluzioni comuni. Queste specifiche sono standardizzate da un consorzio di nome “java community process” a cui aderiscono i principali nomi dell'informatica odierna come Oracle, Ibm, Sun, Sap solo per citarne alcuni.

Il linguaggio

Java versione 6.

I programmi scritti in java possono girare su qualsiasi piattaforma hardware (intel, amd, powerPC ecc...), e su qualsiasi sistema operativo (windows, unix, solaris, ecc..). La portabilità delle applicazioni è massima.

Java runtime environment

AZ Portal è stato testato sia con il runtime ufficiale rilasciato dalla Sun, che con il più performante jrockit, creato da Bea per le applicazioni server.

Database

Molti applicativi dichiarano di avere questa caratteristica, ma normalmente si tratta di una parziale verità perché la soluzione è quella di utilizzare ODBC. Questo standard di connettività fornito dai produttori di database, infatti è molto limitativo per le prestazioni degli applicativi, perché non sfrutta al meglio tutte le potenzialità native del database, ma ne utilizza solo un sottoinsieme minimale comune a tutti.

AZ Portal invece da la possibilità di connettersi in modo nativo a tutti i database presenti sul mercato e lo strato di persistenza viene implementato con la soluzione di Hibernate. Questo framework si sta affermando come punto di riferimento per i programmatori java, e costituisce l'infrastruttura portante per le applicazioni di classe “enterprise”. Questo progetto (www.hibernate.org) è gestito da Jboss, il leader mondiale degli application server j2ee.
Questa scelta permette di utilizzare un qualsiasi database relazionale sia commercale (Oracle, DB2, SQL-Server, Sap-db) che free (postgres, mysql). La lista dei db supportati è su : http://www.hibernate.org/80.html
Hibernate si integra inoltre con diversi sistemi di caching di secondo livello e lascia la facoltà di sostituire una implementazione della cache che non si dovesse rivelare all'altezza della situazione. L'implementazione scelta ed utilizzata in AZ Portal è ehcache anche questo un progetto open-source con ottime prestazioni e con ottime possibilità di parametrizzazione.

Il database del modulo di commercio elettronico di AZ Portal, per la sua complessità, è stato disegnato con Embarcadero E/R studio uno strumento di modellazione E/R. Siamo in grado quindi di rilasciare ai nostri clienti la documentazione dell'intero database, i modelli E/R, e gli script per la creazione del database. Tali script sono disponibili attualmente per Oracle, ma è possibile su richiesta, creare gli script per gli altri database supportati dallo strumento; ecco un elenco dei database supportati da E/R studio.

Business Logic

Il progetto AZ Portal è composto da diversi sottoprogetti che utilizzano tutti i framework java di pubblico dominio (open source) disponibili ad oggi sul mercato, tra questi ricordiamo: Log4J per la gestione dei log applicativi Junit per l'esecuzione dei test JavaMail per la gestione della posta elettronica.

Alimentazione dati da gestionale

AZ Portal è stato pensato per essere aperto e potersi interfacciare con qualsiasi sistema gestionale. Per questo, tutta la base dati è stata disegnata e modellata creandola da zero, e sono disponibili tutti i diagrammi E/R con la documentazione analitica di tutte le tabelle ed i campi.
L'alimentazione dei dati avviene tramite scambio dati con file ascii. Ogni alimentatore dati può essere personalizzato ed ampliato in previsione di future implementazioni. Il sistema è estendibile per adattarsi a qualsiasi gestionale. Ogni alimentatore dati scrive un log autonomo di funzionamento riportando in modo dettagliato tutta l'attività svolta.

Richieste servizi al gestionale

Per dialogare con il gestionale, sono previste due semplici interfacce XML che il gestionale deve implementare. In questo caso non sono state scelte soluzioni più complesse per poter essere aperti al dialogo con qualsiasi controparte.

Il portale

Questa componente di front-end si appoggia su di un portal-server java open-source di nome exo-platform che utilizza ed implementa tutti gli standard de-facto della tecnologia java attuale.
Questa infrastruttura, implementa un portlet-container certificato 100% compatibile con le specifiche delle portlet di cui al punto seguente.

Portlet

La tecnologia delle portlet consente di sviluppare dei piccoli mattoncini di applicazioni orientate al web per poi essere “installate” nell'infrastruttura del portale in modo semplice e personalizzabile. Queste specifiche standard sono dettate dalla comunità degli sviluppatori java. Per maggiori informazioni tecniche, vedere specifiche JSR-168. Questa tecnologia delle portlet è risultata talmente interessante che è già allo studio l'evoluzione delle specifiche (JSR-286) per integrare nuove funzionalità richieste dal mercato degli utilizzatori.
Le portlet possono essere personalizzate anche a livello grafico grazie all'utilizzo di renderizzatori configurabili e a fogli di stile (CSS) personalizzabili.

JSF (JavaServer Faces)

AZ Portal utilizza questo framework per realizzare le nuove applicazioni web. L'infrastruttura di exo permette di sviluppare le portlet applicative utilizzando questa tecnologia. Anche in questo caso è stata scelta la soluzione più all’avanguardia per realizzare applicazioni orientate al web.

Application server

AZ Portal può girare sia su tomcat sia su jboss che su JonAS. La versione attuale viene rilasciata per girare su tomcat.
Volendo è possibile bilanciare il carico di lavoro su diversi server per sopperire ad eventuali problemi di sovraccarico di una singola macchina. Questo garantisce l'espandibilità e la scalabilità del sistema che non si satura mai.

La business intelligence

Questa componente del portale utilizza la piattaforma SpagoBI anche questa java open-source.

SpagoBI è una piattaforma completa che permette di manipolare tutti gli oggetti tipici della Business Intelligence quali reports, analisi OLAP, cruscotti e viste di controllo, modelli di Data Mining.
Anche questa piattaforma utilizza degli standard riconosciuti:
Interfaccia utente realizzata tramite portlet.
JasperReport è il motore di report in ambiente java più evoluto e sofisticato del momento. Può essere integrato in applicazioni di tipo server, stand-alone o web fruibili tramite browser. E' in grado di produrre output in diversi formati, quali PDF, XML, HTML, CSV, XLS, RTF, TXT oltre che grafici 2d e 3d. Per preparare i report, si può utilizzare iReport un ottimo editor grafico (anche questo open-source). L'interfaccia utente è ricca di funzioni molto intuitive ed i risultati sono professionali e di sicuro impatto visivo (screenshot).
Le strutture multidimensionali per l'analisi OLAP (On Line Analytical Processing) sono realizzate tramite JPivot e Mondrian che implementano le funzionalità' indispensabili all'analisi dati (aggregazione, drilldown/through, slicing, dicing). Mondrian è in grado di eseguire query espresse nel linguaggio MDX (multidimensional expression) che è stato introdotto da Microsoft nel 1998 e subito adottato da tutti i principali attori di tecnologie OLAP quali Applix, Microstrategy, SAS, SAP, Whitelight, NCR, e quindi dai loro prodotti come Panorama, Proclarity, Cognos, Business Objects, brio, Crystal, MicroStrategy.

Documentale e workflow

AZ Portal utilizza i moduli di exo-platform per la gestione del documentale e del workflow. Anche la gestione documentale implementata da exo, si basa su uno standard di java per quanto riguarda i repository di contenuti (vedi specifiche JSR-170). Un Repository di contenuti è un sistema di gestione ad alto livello, di informazioni strutturate in modo gerarchico. Implementa servizi come il versioning basato sull'autore, ricerche testuali all'interno dei contenuti, controllo di accesso alle informazioni basato sui ruoli (sicurezza), possibilità di classificare i contenuti in categorie, e monitorare l'accesso agli stessi.
Le funzionalità di base sono:

Cattura. Si possono inserire contenuti in diversi modi, per esempio tramite form su web, oppure tramite flussi XML, oppure facendo l'upload di un file tramite WebDAV.

Archiviazione. si basa sul jcr (java content repository) standard già chiarito in precedenza. Fisicamente viene utilizzato un database.

Gestione. Tutte le operazioni necessarie per condividere le informazioni nell'azienda (collaboration). Si possono quindi interrogare, creare, spostare e monitorare documenti strutturati e non strutturati in diversi ambienti di lavoro (workspace). E' possibile eseguire delle azioni in risposta a dei cambiamenti di stato nella vita del documento (per esempio si può innescare un processo di business (validazione) quando un documento viene inserito.

Pubblicazione. Tramite dei template è possibile visualizzare i documenti del repository. E' possibile inoltre fruire dei contenuti tramite RSS in modo da tenere sempre aggiornati in tempo reale gli utenti del portale aziendale.

Backup. I documenti critici e riservati vanno tenuti in una zona sicura e distinta da quella di utilizzo comune. Grazie a questo workspace di salvataggio, è possibile memorizzare i documenti in un database separato. Qui verranno anche memorizzati i documenti che hanno terminato il loro tempo di vita (quando scade la data di pubblicazione).
Per quanto riguarda il workflow, cioè la gestione dei processi di approvazione dei documenti è possibile utilizzare due diversi motori di workflow: Bonita e jBPM.
L'interfaccia utente, invece è unica ed è utilizzabile tramite il portale. L'approvazione di un documento avviene in funzione dei ruoli definiti nel portale, quindi non è necessario profilare nuovamente gli utenti.