Loading AI tools
software che agevola la gestione di siti web Da Wikipedia, l'enciclopedia libera
In informatica un content management system, in acronimo CMS (sistema di gestione dei contenuti in italiano), è uno strumento software, installato su un server web, il cui compito è facilitare la gestione dei contenuti di siti web, svincolando il webmaster da conoscenze tecniche specifiche di programmazione Web[1][2][3].
I content management system sono nati negli Stati Uniti e sono stati inizialmente sviluppati, per uso interno, da alcune organizzazioni che producevano notevoli quantità di pubblicazioni. Nel 1995 la CNET rese pubblici gli studi e i prodotti sviluppati internamente, distribuendoli con l'etichetta Vignette. La compagnia cominciò a mettere a disposizione il proprio software come sistema di gestione dei contenuti via web. Per la prima volta un utente poteva creare il proprio sito direttamente dal Web, usando l'interfaccia CNET[4].
Nel 1998, la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati (DTS - Data Transformation Services) Metaphoria, che permetteva agli sviluppatori Java di scrivere applicazioni che si potevano collegare ai contenuti e permettevano di distribuire tali contenuti su canali diversi. Il prodotto non ebbe successo, ma il concetto che era stato introdotto costituì le basi di ciò che è diventato il CMS odierno[5][6].
Il CMS è uno strumento usato dai webmaster per gestire il contenuto di un sito web evitando di dover programmare dinamicamente l'intero software lato server che gestisce il sito. Generalmente offre un'interfaccia di amministrazione (admin console cioè console di amministrazione) con cui l'amministratore può gestire ogni aspetto del sito web, senza il bisogno di possedere conoscenze tecniche particolari di programmazione Web[7].
Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (una wiki, un blog, un forum, un giornale online, ecc.) e CMS generici, che tendono a essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.
Quando si parla di "contenuti" si intendono dati, informazioni, conoscenze, in qualsiasi forma (testo, immagine, video, musica, software, ecc.). Quando si parla di "struttura" s'intende: impaginazione, formattazione, architettura, sezioni, gestione delle modifiche e delle versioni, gerarchia e privilegi dei ruoli, ecc.
Tecnicamente, un CMS è un'applicazione lato server che generalmente si appoggia su un database per l'archiviazione dei contenuti; l'applicazione è suddivisa in due parti[8]:
I CMS possono essere realizzati tramite programmazione in vari linguaggi web tra cui, più comunemente, ASP, PHP, Microsoft .NET; il tipo di linguaggio adoperato è indifferente a livello di funzionalità.
Alcuni linguaggi rendono il CMS multipiattaforma, mentre altri lo rendono usufruibile solo su piattaforme proprietarie.
In un approccio sistematizzato al problema della gestione dell'informazione si affrontano le seguenti fasi:
La descrizione appena data è perfettamente applicabile anche a MediaWiki, il software di gestione di Wikipedia.
L'utilizzo più diffuso dei CMS è rivolto alla gestione di siti web, soprattutto se sono di grandi dimensioni e richiedono un frequente aggiornamento[9].
Una delle applicazioni più utili dei sistemi di Web Content Management System (WCMS) è infatti la gestione dei portali (Intranet, Extranet, community, siti di E-commerce, social media, ecc.), dove vengono impiegati come strumento di pubblicazione flessibile e multiutente. Ad esempio: gestione di contenuti testuali (notizie, articoli ecc.), link, immagini, liste di discussione, forum, materiale scaricabile. Può essere modificata anche la struttura stessa delle pagine in numero ed organizzazione. A volte i WCMS danno la possibilità di gestire anche più versioni dello stesso sito (ad esempio, HTML o WAP)[10].
I WCMS consentono di definire utenti, gruppi e diritti in modo da poter permettere una distribuzione del lavoro tra più persone. Per esempio, è possibile definire una classe di utenti abilitati esclusivamente all'inserimento delle notizie, mentre si può riservare la scrittura di articoli ad un altro gruppo, e limitare tutti gli altri alla sola consultazione.
L'introduzione di un web content management system in azienda (ad esempio, una rete sociale interna) richiede la definizione di chiari processi interni di approvazione dei contenuti. La scelta di un software di WCMS è strategica per le aziende che generano la maggior parte di volume d'affari su Internet, ma anche per il libero professionista che vuole utilizzare Internet per farsi conoscere.
In letteratura esistono numerosi modelli che aiutano a valutare il ritorno sull'investimento di un WCMS. I costi di adozione sono spesso elevati, quindi non sono sostenibili per i professionisti o i privati che non fanno del Web la loro competenza di base.
Per rispondere a questa necessità di mercato sono nati alcuni application service provider (ASP) che offrono questo servizio direttamente via Web, senza richiedere alcun investimento hardware o software. Gli ASP costano ai loro clienti un canone annuale per il servizio di WCMS erogato[11].
Come evoluzione applicativa, il Dynamic Content Management System (DCMS), oltre alle funzioni tipiche del CMS, offre la possibilità di generazione e di riutilizzo di un intero flusso documentale, permettendo così con un unico programma applicativo la realizzazione di documenti tipo cataloghi, manuali, listini e tutto ciò che è composto da immagini, tabelle e testi. Il DCMS trova applicazione soprattutto nell'ambito industriale, come strumento interno di produzione e gestione della documentazione (document management system)[12].
I learning management system e i learning content management system (LMS e LCMS) sono dei particolari gestori di contenuti web rivolti alla didattica. Permettono l'erogazione dei corsi in modalità e-learning al fine di contribuire a realizzare le finalità previste dal progetto educativo dell'istituzione proponente. Il learning management system gestisce la distribuzione dei corsi on-line, l'iscrizione degli studenti e il tracciamento delle attività on-line[13].
Difficoltoso è stabilire se sia meglio utilizzare un CMS Open source o uno proprietario poiché dipende dalle esigenze del cliente[14][15].
Pro | Contro | |
---|---|---|
Proprietario |
|
|
Libero |
|
|
Un CMS permette di costruire e aggiornare un sito dinamico, anche molto grande, senza necessità di scrivere in HTML e senza dover conoscere linguaggi di programmazione lato server (come PHP) o progettare un apposito database. L'aspetto esteriore delle pagine può essere personalizzato scegliendo un foglio di stile CSS appositamente progettato per un determinato CMS. In genere, poi, le modifiche alle pagine web generate dai CMS devono seguire precise regole, che sono dettate (almeno nel caso dei CMS open source) dalla documentazione per sviluppatori della stessa. La community degli informatici è in parte scettica su questi vantaggi, dato che possono sembrare limitati e non sembrano lasciare le mani libere, almeno in apparenza, al programmatore. Ma i CMS sono programmabili a tutti gli effetti, basta seguire la documentazione di ognuno e si potranno, più o meno facilmente, modificare e farli diventare qualsiasi sito si desideri, anche con l'integrazione di API esterne. È sconsigliabile, in conclusione, modificare i file di un CMS senza seguire le procedure richieste per effettuare personalizzazioni, pena il malfunzionamento del sito soprattutto nel medio-lungo periodo[16].
I flat file CMS, altrimenti noti come text-based CMS, sono dei content management system che si basano su file di testo (il più delle volte file XML) e che perciò non necessitano di alcun database come MySQL, PostgreSQL, ecc. Questi CMS sono facilmente installabili e dunque sono particolarmente adatti per siti personali o per piccole comunità.
Un CMS è tanto più efficiente quanto più è specializzato.
Molti piccoli portali fanno ricorso a CMS di tipo generico, scritti da altri e messi a disposizione gratuitamente o a pagamento; per quanto un CMS possa essere flessibile, un sito basato su questa struttura presenta un aspetto poco personalizzato se non è possibile intervenire direttamente sul codice sorgente del prodotto per modificarlo. Analogamente i contenuti saranno sempre ancorati a quanto previsto da chi ha progettato il CMS e non alle esigenze di chi pubblica il sito.
Problemi di gestione possono derivare dal fatto che chi pubblica o gestisce il sito può usare il CMS per intervenire sui contenuti e sull'aspetto, ma generalmente (caso del software proprietario) non è in grado di intervenire direttamente (o far intervenire) sulla struttura del CMS stesso; questo è un limite strettamente connesso al vantaggio primario dei CMS (backend e database): pubblicare un portale senza doverne progettare la struttura o senza possedere le conoscenze tecniche (o le risorse finanziarie) per uno sviluppo personalizzato. Tuttavia esistono anche CMS particolarmente evoluti che permettono di scrivere direttamente sul database. È il caso per esempio di alcuni CMS proprietari.
Questi problemi sono risolvibili utilizzando software open source: la possibilità di accedere al codice sorgente del prodotto permette di personalizzare il software sulla base delle proprie esigenze a patto di non avere necessità di apportare modifiche al prodotto adottato. Anche in questo caso, vanno messi in conto i costi per lo sviluppo di moduli personalizzati o funzioni particolari, a meno di non possedere in proprio o nella propria struttura aziendale le conoscenze tecniche per intervenire nel codice sorgente.
Esistono anche programmi e database progettati su misura, ovvero "CMS personalizzati" e dunque necessariamente specializzati; in questo modo la struttura e la presentazione vengono realizzate tenendo presenti i contenuti che il sito dovrà ospitare e potranno essere modificati in seguito a nuove esigenze.
Le cause principali per un sito lento fatto con un CMS sono[17][18]:
Secondo uno studio di Sucuri[24], WordPress è il CMS più vulnerabile, seguito da Joomla e Drupal.
I sistemi di gestione dei contenuti basati su un framework open source hanno i loro vantaggi come ad esempio l'ambiente collaborativo, la condivisione e la modifica del codice sorgente. Ma poiché sono gratuiti nessuno si assume la responsabilità di trovare e correggere tempestivamente le vulnerabilità in materia di sicurezza. Alcune di queste vulnerabilità vengono rilevate sia dai ricercatori di sicurezza che dagli stessi aggressori[25].
È tuttavia possibile rendere più sicure le piattaforme di CMS adottando una serie di accorgimenti, fra i quali l'aggiornamento continuo delle ultime versioni, l'aggiornamento dei plugin e l'utilizzo di tecniche anti-malware e anti intrusione, in special modo su WordPress (la piattaforma attualmente più utilizzata)[26].
L'ultima frontiera dei CMS è basata sul concetto di headless CMS (letteralmente "senza testa") o Decoupled CMS architecture (letteralmente "architettura di CMS disgiunti"). L'idea è quella di creare un CMS del tutto separato dalla produzione di codice HTML, che consentirebbe la creazione di un sito web senza template, in cui la parte visibile all'utente (front end) è separata dal codice di programmazione (back end). Ad esempio, la Built.io di Neha Sampat ha annunciato di avere aggiornato il proprio sistema Contentstack con un nuovo set di SDK mobili per Android e iOS, che al momento consentiranno l'integrazione nativa nelle applicazioni mobili[29].
In un futuro non troppo lontano, si potrebbe prospettare per gli sviluppatori l'ideazione di un CMS "senza testa", basato sull'integrazione di API native.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.