Hello world!!!!
Da una precisa idea di "web", dal tepore della nostra terra scolpita dal vento e dal mare,
da litri e litri di calde e profumate tazzine di Java è nato "JSiter",
il software della tarantola; il suo morso inebria, seduce e contagia...
Benvenuti nel mondo di JSiter, benvenuti nel web della tarantola! :-))
:-) P.L.
JSiter
JSiter è un'applicazione web installabile su application server implementanti le specifiche JSP/Servlet.
Dispone di meccanismi di gestione dei contenuti e di astrazione dalla lingua che ne fanno, già nella sua installazione minima, un efficace strumento di pubblicazione su web.
Agisce da 'contenitore' quindi a sua volta da struttura di base, 'piattaforma' per sotto-applicazioni (dette “moduli”) e di gestori di contenuto (detti “risorse”) che costituiscono i due principali costrutti dell'architettura.
Come "plug-in", moduli e risorse possono essere sviluppati anche da 'terze parti' implementando le rispettive interfacce esposte dal core-package.
In particolare il jar-file di installazione di un modulo può essere prodotto dalla stessa applicazione Jsiter configurata in modalità 'sviluppo' e conterrà tutto ciò che occorre per l'installazione: immagini, menu, elementi testuali, codice Jsp, Html, Css, Javascript, Xml, ... classi Java, base dati, parametri di configurazione, permessi ed anche eventuali sotto-moduli, strutturati ad 'albero'.
Centralizzando tutte le funzionalità di 'base' Jsiter permette agli sviluppatori di concentrarsi sulla logica di business.
Jsiter eroga ai 'moduli' servizi di:
- amministrazione degli utenti e autenticazione;
- politiche di accesso alle funzioni amministrative;
- configurazione;
- coordinamento e notifica di eventi
- backup/restore;
- produzione del jar-file di installazione;
- gestione dei contenuti (CMS): amministrazione di tutte le componenti dell'interfaccia utente come immagini, elementi testuali e di codice, menu, etc.
- internazionalizzazione e gestione delle etichette, dei messaggi di alert/warning/error in lingua; il programmatore e/o l'impaginatore deve/devono fare riferimento a nomi astratti: è Jsiter a occuparsi del corretto accoppiamento tra nome e risorsa in lingua.
- SEO (search engine optimization).
Caratteristiche principali di Jsiter per lo sviluppo
Si elencano nel seguito alcune caratteristiche di JSiter utili agli sviluppatori:- Perfetta integrabilità con IDE come Eclipse.
- Rapida curva di apprendimento: competenze nello sviluppo di applicazioni Java possono essere velocemente indirizzate verso lo sviluppo di applicazioni web.
- Razionalizzazione e coordinamento delle attività di sviluppo di un'applicazione: impaginazione, grafica, programmazione; la scalabilità e la modularità dell'architettura proposta da Jsiter rendono lo sviluppo un processo fortemente cooperativo riducendo sensibilmente il 'time to market'.
- Possibilità di gestire con semplicità la persistenza dei dati ai livelli richiesta/sessione/utente/applicazione: le applicazioni web possono così essere dotate di 'memoria' utile per una migliore esperienza di 'navigazione' da parte dell'utente (per esempio una scelta effettuata dall'utente in un determinato contesto può persistere nella sessione oppure -a scelta dello sviluppatore- rendersi definitiva per tale utente).
- Meccanismo di astrazione dalla lingua per l'internazionalizzazione dei contenuti.
- Meccanismo di astrazione dal formato binario per la virtualizzazione dei contenuti dal layout.
- Implementazione nel core-package di Jsiter di alcune classi "helper" per l'implementazione di elementi funzionali standardizzati (come la gestione di dati in tabella).
- Flessibilità nella composizione dei layout basata sull'uso di marcature speciali (tag) definite ai vari livelli ('core', moduli e risorse) e su un originale meccanismo di espansione ricorsiva.
- Granularità dei contenuti: ogni elemento del layout può essere creato ed amministrato da operatori distinti; oltre che a testo, immagini, menu, riferimenti a documenti, ecc., i singoli componenti possono:
- contenere elementi testuali in XML
- definire regole di trasformazione XSL/XSLT
- contenere elementi dinamici (codice JSP) per attività di controllo, business e/o produzione di elementi testuali
- fare riferimento a contenuti accessibili via HTTP e filtrabili attraverso espressioni regolari o classi Java
- contenere elementi ad aggionamento automatico della parte client (richieste Ajax temporizzate).
Caratteristiche principali di Jsiter per l'amministrazione
La ricca disponibilità di strumenti di amministrazione fa di JSiter una piattaforma ideale per la gestione di una applicazione web da parte di una estesa comunità di 'operatori'; seguono le principali caratteristiche:- Completa amministrabilità via web.
- Flessibilità e capillarità nell'assegnazione dei permessi e delle funzioni di controllo.
Il sistema è basato sulla classificazione degli utenti in gruppi e sottogruppi: ogni utente può essere registrato in uno o più gruppi; nell'insieme dei gruppi è definita una relazione gruppo-sottogruppo che implicitamente assegna ad un utente l'appartenenza non solo ai gruppi nei quali è esplicitamente registrato ma anche ai sovra-gruppi degli stessi.
Il sistema definisce l'entità ruolo alla quale attribuisce permessi di accesso e privilegi amministrativi; ad ogni gruppo si assegnano uno o più ruoli fissando così per ogni utente, come conseguenza della sua appartenenza esplicita o implicita ai gruppi, permessi e privilegi.
In particolare per ogni singola tipologia di risorsa (elementi di codice, immagini, menu, ...) può essere definito uno schema di amministrazione estremamente capillare che regola:- le produzioni personali di utenti in un ruolo;
- l'accesso degli utenti in un ruolo alle produzioni di altri utenti nello stesso ruolo;
- l'accesso degli utenti in un ruolo alle produzioni di altri utenti in altri ruoli.
- Installazione basata su un unico file di tipo JAR.
Durante la fase di deploy:- viene configurato l'accesso alla base dati (via JDBC);
- viene creata e inizializzata la base dati;
- si definiscono gruppi e ruoli primari :root, reguser (utenti registrati) e guest (utenti anonimi).
- Produzione istantanea di un file JAR di installazione.
Da ogni applicazione JSiter è possibile estrarre un file jar di installazione di una nuova applicazione: ciò semplifica notevolmente la produzione di personalizzazioni e verticalizzazioni della piattaforma dando la possibilità agli sviluppatori di installare e customizzare più versioni della piattaforma da utilizzare come 'modelli' di produzione. - Esportazione delle sotto-applicazioni (moduli) con produzione immediata di un unico file JAR di installazione.
- Installazione delle sotto-applicazioni (moduli) basata su un unico file JAR.
Durante il processo di installazione (via web come ogni altra funzione amministrativa):
- viene creata e inizializzata la base dati di supporto alla sotto-applicazione;
- si esegue la mappatura dei ruoli previsti dall'applicazione (nella sua installazione 'sorgente') su ruoli esistenti nell'applicazione attuale, indicati dall'installatore.
- vengono importate tutte le risorse.
- Installazione di nuove tipolgie di risorsa.
- Amministrazione delle sotto-applicazioni.
JSiter considera le sotto-applicazioni (dette 'moduli') come vere e proprie applicazioni fonendo il supporto per:- l'aggionamento a release successive per mezzo di upload di un singolo jar-file contenente l'aggionamento;
- il controllo dell'integrità referenziale e aggionamento automatico della base dati successivo all'installazione di nuova release;
- le procedure di backup (salvataggio) e restore (ripristino);
- le procedure di esportazione/importazione (installazione);
- uno strumento di configurazione (con sintassi XML);
- la procedura di reset (re-inizializzazione della base dati di supporto al modulo);
- Gestione dei contenuti 'al volo' basata su uso di tecniche Ajax. Funzionalità resa possibile dalla forte 'granularità' introdotta da Jsiter al livello dei componenti del layout (modellata nel costrutto 'risorsa'); l'effetto è quello di un approccio molto efficiente all'amministrazione dei contenuti del layout: caratterizzato da una relazione di appartenenza ad un preciso utente (il suo proprietario) ogni componente del layout può essere modificato al click dagli utenti accreditati in virtù del ruolo e delle relazioni tra ruoli definite per la specifica risorsa in fase di amministrazione; l'uso di tecniche Ajax rende pressoché istantanea tanto la modifica quanto l'aggionamento del layout.
Perché adottare Jsiter
Obiettivo 'dichiarato' di JSiter è quello di semplificare tanto il processo di sviluppo quanto quello di amministrazione di una web application. Riteniamo che ciò sia possibile, oltre che per quanto sopra elencato, per:- L'uso di un linguaggio multi-piattaforma, Java, fortemente orientato agli oggetti, solido e ampiamente diffuso; ciò garantisce disponibilità di sviluppatori e di librerie di codice.
- La modularità dell'architettura di Jsiter: tale caratteristica favorisce, nel processo di sviluppo delle applicazioni, suddivisione delle attività e collaborazione.
- La disponibilità di plug-in di terze parti che l'adozione di una piattaforma rende possibile.


