jAPS 2.0 entando - Il Modello di jAPS

Do It The jAPS Way

Eugenio Santoboni

Prima versione completa in italiano 
Chief Solution Engineer
AgileTec S.r.l.

Roberta Quaresima

Codifica del documento in DocBook 4.5 e traduzione in inglese 
jAPS Chief Marketing Officier
Tzente S.r.l.

Andrea Dessì

Revisione del documento 
AgileTec S.r.l.

Alessandra Fadda

Revisione del documento 
AgileTec S.r.l.

Legal Notice

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix entitled "GNU Free Documentation License".

The copyright holders make no representation about the suitability of this Document for any purpose. It is provided «as is» without expressed or implied warranty. If you modify this Document in any way, identify your resulting Document as a variant of this Document.

2011-01-01

Diario delle Revisioni
Revisione 1.72011-03-03MEM

Revisione per il rilascio di jAPS 2.0 entando 2.2.0, suddivisione in capitoli

Revisione 1.62009-07-24AF

Correzioni e chiarimenti sull'intero documento

Revisione 1.52009-07-08AD

Correzioni e chiarimenti per facilitare la lettura

Revisione 1.42009-07-02AD

Organizzazione dei capitoli ed alcune precisazioni

Collocati alcuni argomenti su altri documenti

Revisione 1.32009-03-09WG

Traduzione in Inglese e codifica in DocBook

Questa revisione sarà ultimata quand il documento Pattern Integrazione Servizi sarà tradotto

Revisione 1.22009-02-09ES

Primo rilascio pubblico

Estratto

Questa guida descrive il modello concettuale di jAPS 2.0 entando


Capitolo 1. Scopo del Documento

Introduzione

Questo documento descrive i concetti alla base del modello di jAPS 2.0 entando.

Prima di affrontare lo sviluppo di un portale con jAPS è bene comprendere a fondo il modello concettuale del sistema.

Il modello di jAPS è abbastanza semplice, meno semplice è intuire tutte le possibilità che ne conseguono. In questo documento si cercherà di spiegare l'organizzazione dei componenti che costituiscono le fondamenta di jAPS.

Target audience

La lettura è consigliata a tutti i tipi di pubblico; approfondimenti aggiuntivi possono essere reperiti negli altri manuali della collana.

Ulteriori Riferimenti

Ulteriori informazioni possono essere richieste attraverso la mailing list ufficiale Google Group "japs-platform".

Per mandare un messaggio ai membri della lista, invia una mail a .

È inoltre possibile consultare la documentazione presente in:

jAPS 2.0 entando Project - Sito per gli sviluppatori

Capitolo 2. Pagine

Pagine

Un Pagina in jAPS è come un foglio inizialmente vuoto, individuato da un codice univoco e da un titolo, che presenta tre caratteristiche principali:

  • Modello, determina a quale "tipo" appartiene; tramite il Modello è possibile creare pagine simili

  • Proprietà, sono le caratteristiche di stato e di appartenenza fra le quali compaiono la posizione gerarchica, il gruppo associato e lo stato di visibilità nei menu

  • Configurazione, inerente alle informazioni pubblicate (Showlet, Capitolo 3, Showlet)

Una Pagina da sola non comprende informazioni e non comprende servizi.

Le Pagine sono logicamente correlate fra loro in una struttura gerarchica ad albero chiamata Albero delle Pagine e non posso esistere pagine al di fuori dell'Albero delle Pagine.

Albero delle Pagine

L'Albero delle Pagine è l'organizzazione strutturale che si intende dare alle informazioni del portale.

Ogni Pagina viene collocata in una posizione precisa dell'albero e può avere una sola posizione.

La radice dell'albero è la pagina che verrà raggiunta per prima, comunemente chiamata homepage.

Dalla radice è possibile creare molteplici pagine figlie organizzandole in rami e sotto rami e definendo gerarchicamente le loro posizioni, in tal modo è possibile strutturare logicamente il portale.

La corretta organizzazione dell'Albero delle Pagine influisce fortemente sull'efficienza delle informazioni favorendone la consultazione ed il reperimento.

Modelli di Pagina

Il compito di un Modello di Pagina è quello di definire l'organizzazione e la decorazione della pagina.

Per organizzazione si intende lo schema della Pagina divisa in zone, nelle quali saranno inserite le informazioni. Le zone che formano lo schema sono chiamate frame o posizioni.

Per ciascun modello sarà possibile decidere il numero di frame, ciò significa che arbitrariamente si decide il numero di posizioni disponibili per l'inserimento di informazioni nel Modello di Pagina.

Per decorazione si intende, invece, l'aspetto grafico della pagina.

Personalizzando questi due fattori è possibile con pochi Modelli di Pagina caratterizzare tutte le pagine di un portale.

Al momento della creazione della Pagina si deve scegliere il Modello di Pagina da applicare.

Note per la progettazione

Un portale con una buona organizzazione delle pagine permette di realizzare un portale semplice da consultare, per questo motivo l'organizzazione delle informazioni mediante l'Albero delle Pagine è un passo importante durante la progettazione.

Avere a disposizione una collezione codificata di Modelli di Pagina per la creazione delle Pagine del portale porta principalmente questi vantaggi: ordine nell'organizzazione logica, ordine ed uniformità nella grafica, facilità e chiarezza al momento della creazione di una pagina.

Altro vantaggio noto nell'utilizzo di Modelli di Pagina è che modificando la decorazione tutte le Pagine con quel modello si adatteranno all'istante.

Ulteriori Modelli di Pagina possono essere aggiunti successivamente senza interferire con la configurazione e con i Modelli preesistenti.

Quando si crea un Modello di Pagina è necessario definire la struttura html poiché non esistono modelli preimpostati.

Capitolo 3. Showlet

Sommario

Showlet

Showlet

La Showlet è un oggetto che consente di aggiungere informazioni e funzionalità alle Pagine.

E' assolutamente generale e può virtualmente svolgere qualunque funzione di cui si ha la necessità, per questi motivi costituisce il collegamento ideale tra i servizi ed il portale.

Popolando i frame della Pagina con le Showlet, popoliamo il portale di informazioni e servizi.

Questo è possibile perché comprende due anime: la logica applicativa, che recupera le informazioni e svolge le funzionalità, e la logica di presentazione, che decora le informazioni.

Queste due anime insieme producono informazioni decorate che costituiranno una parte della Pagina.

Esiste un Catalogo delle Showlet che le raccoglie e le rende disponibili per l'utilizzo nel CMS.

Nota

Sono state pensate come una semplificazione delle portlet, non seguono lo standard Web Services for Remote Portlets WSRP e non seguono la Java Portlet Specification (JSR168).

Capitolo 4. Contenuti

Contenuti

Il Contenuto è un insieme strutturato di informazioni ed è considerato pura informazione: da solo non contiene indicazioni su come sarà visualizzato e su dove sarà collocato.

Dato che lo scopo principale di un portale web è erogare informazioni e servizi, si utilizzano i Contenuti all'interno delle Pagine per fornire informazioni.

Creare un Contenuto significa creare un'informazione di un tipo ben preciso; di fatto tutti i contenuti vengono generati secondo i Tipi di Contenuto configurati.

I Contenuti possono essere classificati ed organizzati per Categorie, inoltre possono essere associati a gruppi per la redazione e per la visualizzazione.

Il Gruppo Proprietario indica quale Gruppo di Utenti può modificare dal CMS il Contenuto e visualizzarlo nel portale, i Gruppi di sola visualizzazione indicano quali Gruppi di Utenti possono visualizzare il contenuto nel portale.

Fare riferimento a Capitolo 6, Categorie e la sezione chiamata «Gruppi».

Tipi di Contenuto

Un Tipo di Contenuto è come una formula chimica che descrive una molecola i cui atomi che la compongono sono i Tipi di Attributo di Contenuto.

I Tipi di Contenuto servono per descrivere dettagliatamente la struttura dell'informazione mettendo insieme i Tipi Attributo di Contenuto che rappresentano informazioni in forma atomica.

Gli Attributi di Contenuto possono essere multilingua o mono-lingua, semplici o composti.

Quando un Attributo è multilingua ha un valore specifico per ogni lingua configurata nel sistema, quando è definito mono-lingua il suo valore è unico.

Tra i semplici troviamo attributi che veicolano informazioni come testi, numeri, ipertesti, allegati, immagini ed altri ancora.

Gli Attributi Composti invece si formano assemblando Attributi Semplici in tre modi:

Moltitudine di Attributi semplici

Un insieme, anche disomogeneo, finito di Attributi Semplici

Liste di Attributi semplici

Lista variabile di Attributi Semplici omogenei, ad ogni elemento della lista corrisponde un solo Attributo Semplice.

Lista di Compositi

è una lista, anche disomogenea, variabile dove ogni elemento della lista è costituito da due o più Attributi Semplici

Gli attributi che vengono rilasciati con jAPS, anche tramite la loro combinazione, sono normalmente sufficienti a soddisfare tutte le necessità di un Portale. Tuttavia nuovi Attributi sono implementabili.

Modelli di Contenuto

I Modelli di Contenuto sono i vestiti dei Contenuti; decorano le informazioni e ne definiscono la forma visualizzata nel portale.

Ogni qual volta si ha l'esigenza di creare uno stile per la visualizzazione di un contenuto si crea un Modello di Contenuto.

I Modelli di Contenuto sono strettamente connessi ai Tipi di Contenuto; per ciascun Tipo di Contenuto possono esistere più Modelli di Contenuto.

La gestione dei Modelli di Contenuto avviene tramite il CMS, dove è possibile crearli, modificarli e rimuoverli tramite l'apposita interfaccia.

Per garantire le funzionalità base devono essere presenti per ogni Tipo di Contenuto almeno il Modello Predefinito ed il Modello per Liste. Questi due Modelli di Contenuto rappresentano le due forme base per l'erogazione delle informazioni: la forma predefinita, cioè come l'informazione è nella sua forma naturale, e la forma in liste, cioè la forma che l'informazione assume quando compare in una lista con altre informazioni.

In jAPS i Modelli di Contenuto sono sotto forma di script Velocity che garantiscono flessibilità e rapidità di erogazione grazie anche ad un'apposita cache.

Capitolo 5. Risorse

Risorse

Le Risorse sono informazioni sotto forma di file a servizio del portale, generalmente inserite nei Contenuti.

La particolarità di una Risorsa sta nell'essere la naturale estensione di un file includendo anche altre proprietà utili e necessarie al funzionamento di un portale. Le principali proprietà comuni a tutti i tipi di Risorse in jAPS sono il gruppo di appartenenza e la categoria.

Di base, le Risorse, possono essere di due tipi: mono-istanza e multi-istanza.

Le mono-istanza possono contenere solo un file rappresentante l'informazione, per ciascuna Risorsa ci sarà un solo file che la rappresenta.

Le multi-istanza invece possono contenere contemporaneamente più file rappresentanti l'informazione nelle sue diverse forme. Si pensi ad una Risorsa Immagine che contiene i file immagine con dimensioni differenti.

I tipi di Risorsa implementati in jAPS sono: Immagine ed Allegato. possibile configurare il CMS per accettare solamente i tipi di file desiderati e la dimensione massima.

La gestione delle Risorse è possibile attraverso uno strumento del CMS chiamato Archivio delle Risorse dove è possibile inserire le risorse utilizzabili per la redazione dei Contenuti, ricercare le Risorse già presenti e rimuoverle.

Immagini

Il tipo di Risorsa Immagine è fondamentale per l'inserimento di immagini che siano visibili direttamente nel portale senza effettuare il download.

La peculiarità di questo tipo di Risorsa è l'essere multi-istanza in modo automatico: il sistema si preoccuperà di salvare l'immagine nelle diverse dimensioni ridimensionando l'originale fornita dall'utente, creando così una risorsa multi-istanza.

Ciascuna istanza, quindi ciascuna versione dell'immagine originale ridimensionata, sarà utilizzabile tramite un apposito Attributo Image, che consente di richiamare l'immagine nella dimensione giusta a seconda della necessità.

Per la gestione delle immagini è possibile implementare altri metodi di ridimensionamento nel caso in cui quello fornito con jAPS non fosse soddisfacente.

Allegati

Gli Allegati sono di tipo mono-istanza, quindi ospitano un solo file e rappresentano tutte quelle informazioni sotto forma di file che non sono immagini.

Capitolo 6. Categorie

Categorie

Con le Categorie si rende possibile la classificazione in modo arbitrario delle informazioni; tale classificazione è utile per raccoglierle e renderle disponibili agli utenti finali.

Una Categoria è un'etichetta che può essere associata alle informazioni e serve per soddisfare l'esigenza di classificarle indipendentemente dal tipo e in maniera flessibile.

Ciascuna categoria ha un codice e un titolo in formato multi lingua, uno per ogni lingua configurata nel sistema.

Ogni Categoria è inserita all'interno di una struttura gerarchica organizzata ad albero chiamata Albero delle Categorie dove è possibile creare Categorie e rami di Categorie annidate.

Poter raggruppare informazioni affini allo stesso argomento, o alla stessa materia, consente di allargare il concetto di archivio realizzando insiemi selezionati di informazioni.

Contenuti Categorizzati

Ai Contenti possono essere applicate le Categorie per la realizzazione di speciali raggruppamenti.

Lo scopo più comune di utilizzo è per la pubblicazione di liste di Contenuti automatiche organizzate per Categoria.

Un caso reale è quello di volere una pagina del portale che elenchi tutti i Contenuti che parlano di sport. Per fare questo si crea una Categoria "Sport" e la si associa ai Contenuti riguardanti appunto lo sport. Successivamente si pubblicherà la Showlet che visualizza i Contenuti associati alla categoria. Ogni qual volta verrà associata o rimossa da un Contenuto, automaticamente si aggiornerà la lista visibile dagli utenti nel portale.

Risorse Categorizzate

Anche alle Risorse possono essere associate le Categorie. Per ogni Risorsa, come per i Contenuti, è possibile associare più Categorie.

L'organizzazione delle Risorse per Categorie torna utile quando l'Archivio delle Categorie inizia a crescere ed ampliarsi ed il numero delle Risorse aumenta. Nell'Archivio delle Risorse è possibile effettuare la ricerca per Categoria per facilitare il reperimento delle Risorse necessarie.

Capitolo 7. Utenze

Utenze

L'accesso alle informazioni, la possibilità di fruire di servizi e la possibilità di eseguire operazioni sono regolate dai Permessi, dai Ruoli e dai Gruppi associati a ciascun Utente.

Utenti

Un Utente in jAPS rappresenta un'entità che ha la capacità di eseguire operazioni ed accedere all'informazione.

Tale capacità d'azione è determinata dall'insieme dai Ruoli e Gruppi.

Permessi

Un Permesso rappresenta l'autorizzazione ad eseguire un'operazione relativa ad una funzionalità del portale.

jAPS viene fornito con Permessi specifici del CMS quali Redazione di Contenuti e Supervisione di Contenuti, Operazioni su Pagine, Operazioni su Risorse e Operazioni su Categorie per la gestione e la redazione delle informazioni.

Esistono dei Permessi più generici, ad esempio per Accesso all'Area di Amministrazione, che hanno effetto su tutto il sistema. Uno in particolare garantisce il diritto su Tutte le funzioni.

Note

È importante notare che i Permessi non sono gerarchici, esprimono l'autorizzazione a compiere una determinata azione in maniera indipendente.

Ciascun Permesso può comparire in più Ruoli ed è possibile introdurre nuovi Permessi per specifiche azioni quando si introducono nuove funzionalità nel sistema.

I singoli Permessi non possono essere assegnati direttamente agli utenti, ma devono essere raggruppati nei Ruoli.

Ruoli

Un Ruolo è un insieme di Permessi. Si possono associare più Ruoli ad ciascun Utente operando tramite il CMS.

Miscelando i Permessi e combinandoli nei Ruoli si riesce specializzare e regolare l'interazione degli Utenti con i servizi e le informazioni.

I Permessi non sono organizzati gerarchicamente ma sono indipendenti, anche i Ruoli quindi sono indipendenti gli uni dagli altri.

Gruppi

Un Gruppo rappresenta un insieme di Utenti.

Si utilizzano i Gruppi per regolare l'accesso alle informazioni e ai servizi indipendentemente dai Ruoli dei singoli utenti.

Gli utenti possono appartenere a più Gruppi e sulla base di questi si limita o si garantisce l'accesso alle funzionalità.

I Gruppi inoltre svolgono un compito importante per quanto riguarda la redazione dei Contenuti e dell'Albero delle Pagine. Fare riferimento a: Capitolo 4, Contenuti e Capitolo 2, Pagine.

Capitolo 8. Plugin

Plugin

Un jAPS-Plugin è un modulo che aggiunge nuove funzionalità a jAPS. I servizi applicativi sono implementati sotto forma di Plugin.

Si classificano in:

  • PurePlugin
  • Modification

jAPS è in grado di accogliere più Plugin contemporaneamente e di farli interagire tra loro secondo le regole definite nel documento «jAPS 2.0 entando - Pattern Creazione e Integrazione Servizi Applicativi».

La struttura a Plugin consente di sviluppare nuove funzionalità del sistema rapidamente ed integrarle facilmente.

PurePlugin

Vengono catalogati come PurePlugin, o semplicemente Plugin, quelli che introducono nuove funzionalità senza interferire con il funzionamento delle esistenti.

Modification

Sono catalogati come Modification quei moduli che modificano, ampliando o sostituendo, funzionalità già esistenti nel sistema.