Qualsiasi soluzione software di livello professionale richiedere sempre un'attenta fase di progettazione funzionale e tecnica. Questi aspetti divengono ancora più importanti quando si utilizza un Content Management System (CMS), per implementare una piattaforma internet aziendale od anche un semplice sito personale, al fine di:
- dimensionare correttamente le risorse, in modo da potere supportare un numero elevato di accessi senza un significativo degrado delle performance
- fornire un'ampia disponibilità del sistema, che dovrebbe essere attivo 7x24, e ridurre al minimo i tempi per interventi di aggiornamento e manutenzione
- garantire la massima sicurezza a fronte di una forte esposizione a possibili attacchi di hackers
Architettura del sistema
Drupal può essere reso disponibile con molte modalità differenti: in funzione dei requisiti di progetto occorre definire bene l'architettura che si vuole adottare.
Drupal può essere installato su un proprio server fisico oppure su macchine virtuali, rese disponibili mediante un cloud pubblico o privato. L'architettura alla base del sistema è di tipo LAMP (Linux + Apache + MySQL/Maria DB + PHP) oppure WAMP (Windows + Apache + MySQL/Maria DB + PHP).
Per progetti di grandi dimensioni, si può ricorrere ad architetture complesse che separano i server di gestione delle basi dati (eventualmente dotati di dbms ad alte prestazioni quali Percona) dagli application server; per progetti più piccoli si può installare l'intero sistema su un solo server, oppure ricorrere a fornitori di hosting già ottimizzati per Drupal.
Profilazione degli Utenti e Ruoli
Occorre considerare tutte le varie tipologie di Utenti che utilizzeranno il sistema, sia per rendere il sistema facilmente accessibile e assicurerare una piacevole "esperienza utente", che per garantire un facile aggiornamento dei contenuti da parte dei redattori, definendo anche eventuali cicli approvativi.
Moduli Core ed Estensioni
Drupal è un CMS flessibile con una struttura modulare, diverse funzionalità possono essere aggiunte o rimosse a seconda delle necessità tramite i diversi moduli.
Drupal è basato su un insieme di moduli "Core", che implementano le funzioni principali del CMS. Il sistema può poi essere esteso aggiungendo le opportune estensioni. Drupal può contare sul supporto di una grande comunità di user, che mantiene vivo l'intero ecosistema creando, per ogni nuova versione principale rilasciata, centinaia di moduli aggiuntivi disponibili su Drupal.org .
Tipi di contenuto e campi
In Drupal, un tipo di contenuto è costituito dai seguenti due elementi primari: una configurazione di base e un insieme di campi.
La configurazione di base di un tipo di contenuto definisce il comportamento predefinito e le proprietà del tipo di contenuto. Si può ad esempio specificare se un contenuto appena creato abbia o meno lo stato di pubblicato per impostazione predefinita oppure se il contenuto appena creato sia associato o meno a uno o più menu. L'insieme dei campi consente invece di definire le specifiche informazioni che si potranno valorizzare inserendo un contenuto di quel tipo, ad esempio, un tipo di contenuto "dipartimento" potrà prevedere un insieme di campi pensati per potere definire il responsabile del dipartimento, l'ubicazione degli uffici, i servizi che svolge, ecc.
Vocabolari e tassonomie
Una tassonomia è una collezione di Vocabolari, ognuno dei quali contiene a sua volta una lista di Termini, “etichette”, che possono essere associate ai contenuti per caratterizzarli.
Il modulo della tassonomia in Drupal consente di creare liste multiple di categorie per la classificazione. Offre la possibilità di creare thesauri (termini con relazioni orizzontali) e tassonomie (termini con relazioni gerarchiche). In pratica, la tassonomia ha a che fare con una gerarchia di informazioni ed il thesaurus gestisce le relazioni tra i termini.
Distribuzioni
Una "Distribuzione Drupal" è una combinazioni precostituite di Drupal Core, moduli, tema e configurazioni.
Esistono molte distribuzioni Drupal pensate per soddisfare specifiche esigenze o tipologie di siti, ad esempio blog, ecommerce, siti governativi, siti corporate.