versione 1.03, 1 settembre 2022
![]() | ![]() |
Michele Liberi mail: mliberi@gmail.com cell: 3485211456 |
WOHA (web oriented hyerarchical archiver) è un sistema per archiviare dati, molto semplice da utilizzare, e molto semplice da gestire da un punto di vista sistemistico. Può essere certamente considerato un RAD (Rapid Application Development), cioè un sistema per sviluppare in modo rapido applicazioni WEB.
WOHA utilizza il file system per memorizzare i dati. L'idea che sta alla base di WOHA è che il filesystem è un database, secondo il seguente schema di corrispondenza:
database | filesystem |
---|---|
record | file |
chiave primaria | nome del file |
tabella | directory |
indice | directory di link |
grant | permessi di accesso |
Per sfruttare al meglio le potenzialità di WOHA consiglio di utilizzare un filesystem evoluto, come ad esempio il ReiserFS.
Questa impostazione apre la possibilità di accedere ai dati stessi con tutti i comandi disponibili nel sistema operativo che lavorano su files di testo. Inoltre operazioni sistemistiche quali backup/restore o spostare un DB da un sistema all'altro diventano operazioni banali che non richiedono alcuna competenza particolare, né strumenti progettati ad hoc.
WOHA non pone alcuna limitazione alla lunghezza dei singoli campi della tabella, ed ogni singolo record può avere lunghezza praticamente illimitata.
A livello di organizzazione dei dati WOHA utilizza i concetti della programmazione ad oggetti. I dati vengono memorizzati in classi che corrispondono, in linea di massima, alle tabelle dei DB relazionali. Ogni classe ha:
Gli attributi corrispondono alle colonne delle tabelle dei DB relazionali, con l'importante differenza che non è necessario impostare una dimensione massima, la dimensione è variabile. Inoltre un attributo può contenere un'immagine, uno o più files, o una lista di valori.
I metodi sono di tre tipi:
Un metodo automatico viene richiamato al verificarsi di un evento: prima o dopo un'operazione di inserimento, modifica, cancellazione oppure dopo un'operazione di download.
I metodi automatici consentono, in modo semplice e naturale, di aggiungere una logica nella gestione dei dati. Ad esempio è possibile introdurre regole di congruità dei valori contenuti negli attributi, oppure di calcolare automaticamente il valore di un attributi a partire dal valore di altri attributi.
I metodi manuali vengono richiamati dall'utente quando lo desidera. La possibilità di lanciare metodi dipende dai permessi di accesso che l'utente ha sulla classe e sugli oggetti selezionati. Ad esempio un utente che ha accesso in sola lettura ad un oggetto non potrà lanciare un metodo che modifica l'oggetto stesso.
Esistono inoltre due metodi speciali 'insert' e 'edit' che consentono di personalizzare a piacimento i moduli di inserimento e modifica degli oggetti che woha genera automaticamente.
I tipi servono unicamente per creare delle liste di possibili valori che attributi di tipo 'oneof' o 'manyof' possono assumere. Se ad esempio volessi definire un attributo "risposta" che può essere "si" o "no" dovrei prima definire un tipo "yesno" che contiene i due valori possibili, poi dovrei definire l'attributo "risposta" di tipo "oneof yesno".
In base al principio di ereditarietà gli attributi, i metodi e i tipi rimangono definiti in tutte le sottoclassi della classe nella quale vengono definiti.
WOHA ha due interfacce, a linea di comando e CGI.
La prima consente di effettuare da linea di comando le quattro operazioni base sui dati:
La seconda, molto più ricca, consente di utilizzare svolgere molteplici funzioni:
Inoltre l'amministratore di una classe può: