Do It The jAPS Way
Copyright © 2011 Tzente 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".
2011-03-03
| Revision History | ||
|---|---|---|
| Revision 1.6 | 2011-03-03 | MEM |
|
Update for jAPS 2.0 entando version 2.2.0 | ||
| Revision 1.5 | 2010-03-16 | MEM |
|
Update for jAPS 2.0 entando version 2.0.10 | ||
| Revision 1.4 | 2009-10-30 | ES |
|
Update for jAPS 2.0 entando version 2.0.8 | ||
| Revision 1.3 | 2009-03-09 | RQ |
|
English and docbook adoption | ||
| Revision 1.2 | 2009-02-09 | ES |
First public release | ||
Abstract
The document describes the databases structure of jAPS 2.0 entando.
Table of Contents
- 1. Scopo del documento
- 2. Cosa è jAPS2.0
- 3. I Database
- Database dei Servizi
- Database Portal
- Tabella categories
- Tabella contentmodels
- Tabella contentrelations
- Tabella workcontentrelations
- Tabella contents
- Tabella contentsearch
- Tabella workcontentsearch
- Tabella localstrings
- Tabella pagemodels
- Tabella pages
- Tabella resourcerelations
- Tabella resources
- Tabella showletcatalog
- Tabella showletconfig
- Tabella sysconfig
- Tabella uniquekeys
List of Examples
Table of Contents
Lo scopo di questa guida è quello di descrivere la struttura dei database utilizzati per jAPS 2.0 entando.
Questo manuale è destinato a chi intende sviluppare un nuovo portale con jAPS. I candidati naturali sono dunque gli specialisti di presentazione web, gli sviluppatori Java e sistemisti.
Per poter utilizzare efficacemente le informazioni contenute in questo documento, sono necessarie conoscenze di base ed esperienza su basi di dati e database PostgreSQL.
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 <japs-platform@googlegroups.com>.
È inoltre possibile consultare la documentazione presente in:
jAPS 2.0 entando è un "Enterprise Accessible Information Platform" professionale Open Source che facilita, l'aggregazione, la pubblicazione, l'accesso, la personalizzazione, fruibilità e integrazione di informazioni, servizi, processi e risorse di una organizzazione, rispettando i requisiti di accessibilità definiti nell'Allegato A – D.M. 8 Luglio 2005 (relativo alla Legge Stanca).
jAPS 2.0 entando Platform racchiude in un'unica soluzione tutte le caratteristiche "Enterprise" di performance, affidabilità, scalabilità e robustezza dei sistemi Portal, consente anche ad utenti diversamente abili di accedere e gestire le proprie informazioni e servizi ("Accessible"), è orientato alla gestione delle informazioni tramite uno strumento di Content Management ("Information") ed è utilizzabile come framework ("Platform") per la realizzazione di applicazioni verticali basate sui contenuti (Content Enabled Vertical Application).
Table of Contents
- Database dei Servizi
- Database Portal
- Tabella categories
- Tabella contentmodels
- Tabella contentrelations
- Tabella workcontentrelations
- Tabella contents
- Tabella contentsearch
- Tabella workcontentsearch
- Tabella localstrings
- Tabella pagemodels
- Tabella pages
- Tabella resourcerelations
- Tabella resources
- Tabella showletcatalog
- Tabella showletconfig
- Tabella sysconfig
- Tabella uniquekeys
jAPS 2.0 entando è costituito da due database:
- jAPS2.0Serv: database dei servizi
- jAPS2.0Port: database del portale
Il database dei servizi è costituito da 8 tabelle:

Il database jAPS2.0Serv
Nei seguenti paragrafi vengono descritte le singole tabelle.
La tabella contiene l'elenco dei gruppi. Il gruppo definisce a quali componenti (pagine, contenuti, risorse, servizi applicativi, etc..) l'utente appartenente a quel gruppo può accedere.
La tabella authgroups è composta dai seguenti campi:
- groupname: nome del groppo
- descr: descrizione del gruppo
La tabella contiene l’insieme dei permessi. Nuovi permessi possono essere inseriti direttamente nella tabella authpermissions del db; il nuovo permesso sarà disponibile nella lista di permessi da associare durante la creazione nuovi ruoli.
La tabella authpermissions è composta dai seguenti campi:
- permissionname: name del permesso
- descr: descrizione del permesso
Definisce i ruoli degli utenti e i permessi associati ai ruoli. I dati sono gestibili attraverso l’interfaccia di amministrazione del sistema.
La tabella authrolepermissions è composta dai seguenti campi:
- rolename: nome del ruolo
- permissionname: nome del permesso associato al ruolo
Definisce i ruoli da assegnare agli utenti. I ruoli sono gestibili e personalizzabili dall’interfaccia di amministrazione del sistema.
La tabella authroles è composta dai seguenti campi:
- rolename: nome del ruolo
- descr: descrizione del ruolo
Definisce i gruppi associati ai singoli utenti. I dati sono gestibili attraverso l’interfaccia di amministrazione del sistema.
La tabella authusergroups è composta dai seguenti campi:
- username: username utente
- groupname: nome del gruppo associato all'utente
Definisce il ruolo associato ai singoli utenti. I dati sono gestibili attraverso l’interfaccia di amministrazione del sistema.
La tabella authuserroles è composta dai seguenti campi:
- username: username utente
- rolename: nome del ruolo associato all'utente
Definisce gli utenti registrati nel sistema.
La tabella authuser è composta dai seguenti campi:
- username: username utente
- passwd: password associata all'utente
- registrationdate: data di registrazione/creazione dell'utente
- lastaccess: data di ultimo accesso
- lastpasswordchange: data ultimo campio password
- active: specifica lo stato dell'utente ('1' attivo, '0' disabilitato)
Il database portale è costituito da 16 tabelle.

Il database jAPS2.0Port
Nei seguenti paragrafi vengono descritte le singole tabelle.
jAPS consente di categorizzare le informazioni. Le categorie definite sono memorizzate su un’apposita tabella categorie.
La tabella categories è composta dai campi:
- catcode: codice della categoria
- parentcode: codice della categoria padre
- titles: xml del titolo della categoria
I titoli delle categorie sono multilingua e vengono descritti attraverso un XML memorizzato nel campo titles.
Example 3.1. Esempio di xml dei titoli:
<?xml version="1.0" encoding="UTF-8"?> <properties> <property key="en">Home</property> <property key="it">Home</property> </properties>
Contiente i modelli dei contenuti. Si tratta di modelli costruiti con Velocity.
La tabella è composta dai campi:
- modelid: identificativo univoco del modello di contenuto
- contenttype: tipo di contenuto associato al modello
- descr: descrizione del modello di contenuto
- model: modello
- stylesheet: foglio di stile associato al modello
La tabella viene utilizzata per descrivere le relazioni tra i singoli contenuti e pagine, risorse, altri contenuti, categorie e gruppi. In questo modo è possibile gestire vincoli referenziali sugli oggetti di un contenuto descritto in formato XML.
Le relazioni contenute in questa tabella riguardano esclusivamente i contenuti pubblicati.
La tabella è composta dai campi:
- contentid: identificativo univoco del contenuto
- refpage: pagina referenziata dal contenuto
- refcontent: contenuto referenziato dal contenuto
- refresource: risorsa referenziata dal contenuto
- refcategory: categoria associata al contenuto
- refgroup: gruppo associato al contenuto
La tabella viene utilizzata per descrivere le relazioni tra i singoli contenuti e categorie, unicamente per i contenuti in lavorazione (quindi non pubblicati). In questo modo è possibile gestire vincoli referenziali sugli oggetti di un contenuto descritto in formato XML.
Le relazioni contenute in questa tabella riguardano esclusivamente i contenuti pubblicati.
La tabella è composta dai campi:
- contentid: identificativo univoco del contenuto
- refcategory: categoria associata al contenuto
La tabella contiene i contenuti creati.
La tabella è composta dai campi:
- contentid: identificativo univoco del contenuto
- contenttype: codice del tipo di contenuto
- descr: descrizione del contenuto
- status: stato del contenuto nell'area di lavoro
- workxml: descrizione XML del contenuto che si trova in uno stato di modifica rispetto a quello presente on line
- created: data di creazione del contenuto nel formato yyyyMMddhhmmss
- lastmodified: data di ultima modifica nel formato yyyyMMddhhmmss
- onlinexml: una descrizione XML del contenuto che è presente on line
- maingroup: identificativo del contenuto proprietario del contenutot
L'ordine indicato degli attributi xml figli diretti della root non è indicativo e può variare.
Contiene il riferimento a tutti i campi che sono stati definiti searchable nella definizione dei tipi di contenuto (Consultare anche la tabella sysconfig).
La tabella contentsearch lavora esclusivamente sui contenuti pubblicati: vedere a titolo di confronto,
la tabella workcontentsearch
La tabella è composta dai seguenti campi:
- contentid: identificativo univoco del contenuto
- attrname: nome dell'attributo
- textvalue: il testo inserito nell'attributo (per attributi tipo Text)
- datavalue: la data inserita nell'attributo (per attributi tipo Date)
- numvalue: il numero inserito nell'attributo (per attributi tipo Number)
- langcode: codice univoco della lingua di riferimento (per i testi inseriti negli attributi tipo Text)
dei contenuti in lavorazione
Contiene il riferimento a tutti i campi che sono stati definiti searchable nella definizione dei
tipi di contenuto, relativi unicamente ai contenuti attualmente in lavorazione (e quindi non pubblicati).
La struttura è la medesima della tabella contentsearch; vedere anche la tabella
sysconfig.
- contentid: identificativo univoco del contenuto
- attrname: nome dell'attributo
- textvalue: il testo inserito nell'attributo (per attributi tipo Text)
- datavalue: la data inserita nell'attributo (per attributi tipo Date)
- numvalue: il numero inserito nell'attributo (per attributi tipo Number)
- langcode: codice univoco della lingua di riferimento (per i testi inseriti negli attributi tipo Text)
Consente di gestire l’internazionalizzazione e localizzazione di stringhe, etichette, etc., del sistema jAPS.
La tabella è composta dai seguenti campi:
- keycode: chiave della label
- langcode: codice univoco della lingua di riferimento
- stringvalue: valore della label
Definisce i modelli di pagina. Un modello di pagina è costituito da una jsp più la sua configurazione su tale tabella. La tabella contiene inizialmente un solo modello temporaneo, da sostituire non appena si creeranno quelli personalizzati. Il codice (colonna “code”) deve corrisponde al nome della jsp che implementa il modello di pagina.
La tabella è composta dai seguenti campi:
- code: codice univoco del modello di pagina
- descr: descrizione del modello di pagina
- frames: xml che descrive l'organizzazione della pagina suddivisa in frames
- plugincode: identificativo del plugin a cui è associato il modello
I frame devono avere posizioni numerate da 0 in poi, senza buchi intermedi. Un solo frame può avere l’attributo main=true; questo attributo sta a significare che un contenuto eventualmente pubblicato in quel frame è da considerare contenuto principale della pagina; ciò ha conseguenze nella risoluzione dei link simbolici a contenuto.
Definisce le pagine del Portale, collegate in una struttura gerarchica. La struttura delle pagine può essere successivamente modificata e completata mediante l’apposita funzionalità. I titoli delle pagine sono multilingua e vengono descritti attraverso un XML memorizzato nel campo titles.
Example 3.2. Esempio di xml dei titoli:
<?xml version="1.0" encoding="UTF-8"?> <properties> <property key="en">Home</property> <property key="it">Home</property> </properties>
La tabella è composta dai seguenti campi:
- code: codice univoco della pagina
- parentcode: codice univoco della pagina padre
- pos: posizione della pagina rispetto alle pagine sorelle all'interno dell'albero
- modelcode: codice del modello di pagina associato
- titles: titoli della pagina nelle lingue definite
- groupcode: codice univoco del gruppo associato alla pagina
- showinmenu: specifica se la pagina deve essere compresa nei menù dinamici
- extraconfig: specifica se nella pagina debbano comparire i titoli extra
La tabella resourcerelations viene utilizzata per descrivere le relazioni tra le risorse e le categorie di appartenenza.
La tabella è composta dai seguenti campi:
- resid: codice univoco della risorsa
- refcategory: categoria associata alla risorsa
La tabella resources contiene le risorse definite nel sistema.
La tabella è composta dai seguenti campi:
- resid: identificativo univoco della risorsa
- restype: identificativo del tipo della risorsa (può essere Image o Attach)
- descr: descrizione della risorsa
- maingroup: nome/codice del gruppo proprietario della risorsa
- xml: descrittore della risorsa
- masterfilename: il nome del file associato alla risorsa
Nell'xml sono presenti tutti i dati caratterizzanti la risorsa ed alcuni di essi (identificativo, tipo e descrizioni) sono presenti anche in colonne specifiche nella tabella del db per facilitarne la ricerca.
Note
La posizione su disco della risorsa dipende principalmente da 2 fattori:
- dal gruppo del contenuto
- dal tipo del contenuto (se Attach o Image).
Posizione fisica delle Risorse Libera (appartenente al gruppo free) Il percorso fisico della risorsa è dato da:
<resourceDiskRootFolder_param>/cms/<type_folder>/<FILENAME>
resourceDiskRootFolder_param = valore del parametro resourceDiskRootFolder il cui valore si trova nel file systemParams.properties posizionato nella cartella WEB_APP/WEB-INF/conf
type_folder = nome cartella dipendente dal tipo; se il tipo della risorsa è Image il folder avrà nome images, se il tipo della risorsa è Attach il folder avrà nome documents.
FILENAME = il nome del file della risorsa, estratto dall'xml di definizione della risorsa
Posizione fisica delle Risorse Non Libera (appartenente ad un gruppo diverso all gruppo free). Il percorso fisico della risorsa è dato da:
<protectedResourceDiskRootFolder_param>/cms/<type_folder>/<group_name>/<FILENAME>
protectedResourceDiskRootFolder_param = valore del parametro protectedResourceDiskRootFolder il cui valore si trova nel file systemParams.properties posizionato nella cartella WEB_APP/WEB-INF/conf
type_folder = nome cartella dipendente dal tipo; se il tipo della risorsa è Image il folder avrà nome images, se il tipo della risorsa è Attach il folder avrà nome documents.
group_name = nome/codice del gruppo della risorsa creata.
FILENAME = il nome del file della risorsa, estratto dall'xml di definizione della risorsa
Contiene l’elenco delle showlet disponibili nel sistema.
La tabella è composta dai seguenti campi:
- code: identificativo univoco della showlet; nel caso di showlet non logica, deve corrispondere al nome della jsp che implementa la showlet
- titles: i titoli della showlet nelle lingue definite
- parameters: xml di configurazione; viene utilizzato per caricare parametri di configurazione di una showlet
- plugincode: identificativo del plugin a cui è associata la showlet
- parenttypecode: codice della showlet parente (nel caso di showlet logica)
- defaultconfig: configurazione della showlet logica
- locked: stato della showlet logica
La tabella è composta dai seguenti campi:
- pagecode: identificativo univoco della pagina
- frameposition: posizione
- showletcode: identificativo univoco della showlet associata alla pagina
- config: xml di configurazione
- publishedcontent: codice univoco del contenuto pubblicato
La tabella sysconfig è la tabella di configurazione del sistema jAPS. Contiene varie informazioni di configurazione del sistema. La tabella è predisposta per ospitare diverse configurazioni contemporaneamente.
La tabella è composta dai seguenti campi:
- version: specifica la versione cui si riferisce ogni record. E’ sufficiente definire una sola versione di configurazione
- item: specifica la tipologia di informazione
- descr: breve descrizione
- config: contiene il valore dell’item e può essere una semplice stringa o un intero testo XML.
