Content management system: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
miglioramenti e correzioni
m Annullate le modifiche di 2.112.68.70 (discussione), riportata alla versione precedente di Solipsistico
Etichetta: Rollback
 
(31 versioni intermedie di 24 utenti non mostrate)
Riga 1:
In [[informatica]] un '''''content management system''''', in [[acronimo]] '''CMS''' (''sistema di gestione dei contenuti'' in [[Lingua italiana|italiano]]), è uno strumento [[software]], installato su un [[server web]], il cui compito è facilitare la gestione dei contenuti di [[sito web|siti web]], svincolando il [[webmaster]] da conoscenze tecniche specifiche di [[programmazione Web]]<ref>{{Cita libro|nome=Rockley,|cognome=Ann.|titolo=Managing enterprise content : a unified content strategy|url=http://worldcat.org/oclc/52355557|accesso=15 luglio 2022|data=2003|editore=New Riders|OCLC=52355557|ISBN=978-0-7357-1306-2}}</ref><ref>{{Cita libro|nome=White, Martin|cognome=S.|titolo=The Content management handbook|url=http://worldcat.org/oclc/642215505|accesso=15 luglio 2022|data=2005|editore=Facet Publishing|OCLC=642215505|ISBN=1-85604-533-1}}</ref><ref>{{Cita libro|nome=Boiko, Bob|cognome=Verfasser|titolo=Content Management Bible|url=http://worldcat.org/oclc/899175520|accesso=15 luglio 2022|OCLC=899175520|ISBN=978-0-7645-8364-3}}</ref>.
{{F|software|settembre 2013}}
In [[informatica]] un '''''content management system''''', in [[acronimo]] '''CMS''' (''sistema di gestione dei contenuti'' in [[Lingua italiana|italiano]]), è uno strumento [[software]], installato su un [[server web]], il cui compito è facilitare la gestione dei contenuti di [[sito web|siti web]], svincolando il [[webmaster]] da conoscenze tecniche specifiche di [[programmazione Web]].
 
[[File:Theming a View with CSS in a Box (391910509).jpg|thumb|right|Un tema del CMS [[Drupal]] con un [[CSS]].]]
 
== Storia ==
I ''content management system'' sono nati negli [[Stati Uniti d'America|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 [[Prodotto (project management)|prodotti]] sviluppati internamente, distribuendoli con l'etichetta ''Vignette''. La [[Azienda|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<ref>{{Cita web|url=https://it.upwiki.one/wiki/Vignette_Corporation|titolo=Vignette Corporation|sito=it.upwiki.one|accesso=15 luglio 2022}}</ref>.
 
Nel [[1998]], la Pencom Web Works, una compagnia di consulenza aziendale, introdusse il server di trasformazione dati ([[Data Transformation Services|DTS]] - ''Data Transformation Services'') ''Metaphoria'', che permetteva agli sviluppatori [[Java (linguaggio di programmazione)|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<ref>{{Cita web|url=http://www.blogjoomla.it/2009112760/cms-content-management-system.html|titolo=CMS - Content management system|sito=www.blogjoomla.it|accesso=15 luglio 2022}}</ref><ref>{{Cita pubblicazione|cognome=Federico Sette|data=2009-02-06|titolo=Cms|accesso=15 luglio 2022|url=https://www.slideshare.net/Fed7/cms-996761}}</ref>.
 
== Descrizione ==
Il CMS è uno strumento usato dai [[webmaster]] per gestire il contenuto di un [[sito web]] evitando di dover programmare [[Web dinamico|dinamicamente]] l'intero software [[server-side|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]]<ref>{{Cita web|url=https://kinsta.com/it/knowledgebase/content-management-system/|titolo=Cos'è un Content Management System (CMS)?|sito=Kinsta|accesso=15 luglio 2022}}</ref>.
 
Esistono CMS specializzati, cioè appositamente progettati per un tipo preciso di contenuti (una [[wiki]], un [[blog]], un [[forum (Internet)|forum]], un [[giornale online]], ecc.) e CMS generici, che tendono a essere più flessibili per consentire la pubblicazione di diversi tipi di contenuti.
Riga 16 ⟶ 15:
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 (computer)|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<ref>{{Cita web|url=https://vitolavecchia.altervista.org/caratteristiche-e-differenza-tra-front-end-e-back-end-per-un-cms/|titolo=Caratteristiche e Differenza tra front-end e back-end per un CMS|autore=Vito Lavecchia|sito=Informatica e Ingegneria Online|data=2020-03-31|accesso=15 luglio 2022}}</ref>:
 
* una sezione di amministrazione (''[[back end]]''), che serve ad organizzare e supervisionare la produzione dei contenuti;
Riga 38 ⟶ 37:
== Applicazioni ==
=== Web Content Management System ===
L'utilizzo più diffuso dei CMS è rivolto alla gestione di [[sito web|siti web]], soprattutto se sono di grandi dimensioni e richiedono un frequente aggiornamento<ref>{{Cita web|url=https://www.creativemotions.it/che-cosa-e-un-cms/|titolo=Che cos'è un CMS (Content Management System) ?|autore=Creativemotions|sito=Creativemotions|data=2019-09-28|accesso=15 luglio 2022}}</ref>.
 
Una delle applicazioni più utili dei sistemi di '''Web Content Management System''' (WCMS) è infatti la gestione dei [[Portale (Web)|portali]] ([[Intranet]], [[Extranet]], [[Comunità virtuale|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.), [[Collegamento ipertestuale|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 [[Wireless Application Protocol|WAP]])<ref>{{Cita web|url=https://www.cmscritic.com/cms-or-wcm-which-is-which/|titolo=CMS or WCM - Which is Which?|autore=Mike Johnston|sito=CMS Critic|data=2011-09-07|lingua=en|accesso=15 luglio 2022}}</ref>.
 
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.
Riga 48 ⟶ 47:
In letteratura esistono numerosi modelli che aiutano a valutare il [[Return on investment|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<ref>{{Cita web|url=https://www.cmscritic.com/what-is-a-cms/|titolo=What is a CMS?|autore=Mike Johnston|sito=CMS Critic|data=2010-07-28|lingua=en|accesso=15 luglio 2022}}</ref>.
 
=== Dynamic content management system ===
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'')<ref>{{Cita pubblicazione|nome=Sathiamoorthy|cognome=Manoharan|data=2007-11|titolo=Dynamic Content Management and Delivery for Mobile Devices|rivista=International Conference on Mobile Ubiquitous Computing, Systems, Services and Technologies (UBICOMM'07)|pp=63-67|accesso=15 luglio 2022|doi=10.1109/UBICOMM.2007.10|url=https://ieeexplore.ieee.org/document/4402808}}</ref>.
 
=== Learning management system ===
{{Vedi anche|Learning management system}}
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<ref>{{Cita web|url=http://www.astd.org/~/media/Files/Publications/LMS_fieldguide_20091|titolo=Wayback Machine|sito=web.archive.org|data=24 agosto 2014|accesso=15 luglio 2022|dataarchivio=24 agosto 2014|urlarchivio=https://web.archive.org/web/20140824102458/http://www.astd.org/~/media/Files/Publications/LMS_fieldguide_20091|urlmorto=sì}}</ref>.
 
== CMS Open sourceliberi e proprietari ==
Difficoltoso è stabilire se sia meglio utilizzare un CMS [[Open source]] o uno proprietario poiché dipende dalle esigenze del cliente<ref>{{Cita web|url=https://www.m-w.co.uk/about-us/blog/open-source-vs-proprietary-cms|titolo=Open Source vs. Proprietary CMS|sito=Moore-Wilson|lingua=en|accesso=2021-01-30 gennaio 2021}}</ref><ref>{{Cita web|url=https://enonic.com/blog/difference-proprietary-open-source-cms|titolo=What is the difference between a proprietary CMS and an open-source CMS?|sito=Enonic|lingua=en|accesso=2021-01-30 gennaio 2021}}</ref>.
{| class="wikitable"
|-+
| colspan="2" |'''PRO'''
!
| colspan="2" |'''CONTRO'''
!Pro
!Contro
|-
|Proprietario
|PROPRIETARIO
|-
|OPENSOURCE
|* soddisfazione di esigenze specifiche, prodotto su misura
|PROPRIETARIO
|* possono essere più focalizzati sull'utente che sullo sviluppatore. Tendono ad essere meno personalizzabili e quindi più semplici
|OPENSOURCE
|* si sa esattamente chi è responsabile in caso di problemi, quindi c'è un intervento veloce da parte della web agency
|
|* molto difficile e potenzialmente costoso cambiare web agency
|* più limitazioni e meno scelta di temi (aspetto grafico)
|* [[copyright]] del CMS di proprietà di una sola web agency
|-
|Libero
|soddisfazione di esigenze specifiche, prodotto su misura
|
|* ampia base di sviluppatori, costante elaborazione ed aggiornamento con codice, temi e moduli in continuo miglioramento
|molto difficile e potenzialmente costoso cambiare web agency
|* è più facile per i clienti cambiare [[web agency]]
|molti CMS sono più adatti agli sviluppatori che agli utenti finali
|* si risparmiano i costi associati a un sistema proprietario
|-
|
|possono essere più focalizzati sull'utente che sullo sviluppatore. Tendono ad essere meno personalizzabili e quindi più semplici
|* molti CMS sono più adatti agli sviluppatori che agli utenti finali
|è più facile per i clienti cambiare [[web agency]]
|* più vulnerabili agli attacchi poiché chiunque può vedere il codice, quindi è più facile per gli hacker sfruttarlo
|più limitazioni e meno scelta di temi (aspetto grafico)
|* intervento non sempre immediato da parte della comunità di supporto in caso di problemi
|più vulnerabili agli attacchi poiché chiunque può vedere il codice, quindi è più facile per gli hacker sfruttarlo
|-
|si sa esattamente chi è responsabile in caso di problemi, quindi c'è un intervento veloce da parte della web agency
|si risparmiano i costi associati a un sistema proprietario
|[[copyright]] del CMS di proprietà di una sola web agency
|intervento non sempre immediato da parte della comunità di supporto in caso di problemi
|}
 
== Pro e contro ==
=== Vantaggi dei CMS ===
Un CMS permette di costruire e aggiornare un [[Web dinamico|sito dinamico]], anche molto grande, senza necessità di scrivere in [[HTML]] e senza dover conoscere [[Linguaggio di programmazione|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 [[comunità virtuale|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 [[Application programming interface|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<ref>{{Cita web|url=https://www.freewordpress.it/blog/cosa-sono-i-cms.php|titolo=Cosa sono i CMS|autore=Salvatore|sito=Gestione Wordpress {{!}} Free Wordpress|data=2019-09-02|lingua=it-IT|accesso=2019-09-02|dataarchivio=2 settembre 2019|urlarchivio=https://web.archive.org/web/20190902101515/https://www.freewordpress.it/blog/cosa-sono-i-cms.php|urlmorto=sì}}</ref>.
 
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à.
 
=== Limiti dei CMS ===
Riga 96 ⟶ 97:
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]].
Riga 107 ⟶ 108:
* [[Hosting]]: quando il server di web hosting non è configurato correttamente può danneggiare la velocità del sito web
* Configurazione: se il sito non usa pagine memorizzate nella cache sovraccaricherà il server, causando la lentezza o il blocco del sito web
* Immagini pesanti: a una risoluzione alta (adatta per la stampa ma non per il web) e/o una dimensione ampia e/o mancato uso degli [[Sprite (informatica)|Sprite CSS]] per evitare molte chiamate al server<ref>{{Cita web|url=https://wp-rocket.me/blog/combine-images-css-sprites/|titolo=How to Combine Images Using CSS Sprites in WordPress|autore=About Colin Newcomer Colin Newcomer is a freelance writer who spends his days inside the WordPress dashboard He lives a life of danger, riding a scooter through the chaos of Hanoi|sito=WP Rocket|data=2020-01-11|lingua=en-US|accesso=2021-01-26}}</ref>
* Riproduzione automatica dei video all'arrivo dell'utente e video ospitati sul proprio server anziché incorporato da [[YouTube]], [[Vimeo]] o altri servizi esterni<ref>{{Cita web|url=https://usabilla.com/blog/website-usability-youtube-player-vs-self-hosted-video/|titolo=Website Usability: YouTube Player vs. Self-Hosted Video|sito=The latest Voice of Customer and CX trends {{!}} Usabilla Blog|data=2015-08-04|lingua=en-US|accesso=2021-01-26}}</ref>
* [[Plugin (informatica)|Plugin]] non validi e/o non aggiornati: se si utilizzano plug-in mal codificati e/o obsoleti il sito Web può rallentare notevolmente
* Script esterni: annunci, caricatori di caratteri, ecc. possono avere un enorme impatto sulle prestazioni del sito web. Ad esempio utilizzare troppi font incorporati con Google Fonts<ref>{{Cita web|url=https://sos-wp.it/google-fonts-wordpress/|titolo=Come usare i Google Font su WordPress e quali scegliere per il tuo sito|sito=SOS WP|data=2020-12-07|lingua=it-IT|accesso=2021-01-26}}</ref> o altri plugin di incorporazione<ref>{{Cita web|url=https://www.wpbeginner.com/wp-themes/how-to-add-custom-fonts-in-wordpress/|accesso=2021-01-26}}</ref> font può rallentare il sito<ref>{{Cita web|url=https://www.machmetrics.com/speed-blog/web-font-performance-how-your-fonts-affect-page-speed/|titolo=Web Font Performance - How Your Fonts Affect Page Speed|sito=MachMetrics Speed Blog|data=2020-02-11|lingua=en-US|accesso=2021-01-26}}</ref>
 
==== Vulnerabilità ====
Secondo uno studio di Sucuri<ref>{{Cita web|url=https://sucuri.net/reports/2021-hacked-website-report/|titolo=Sucuri - Website Threat Report 2021|sito=Sucuri|lingua=en-US|accesso=2022-06-23 giugno 2022}}</ref>, WordPress è il CMS più vulnerabile, seguito da [[Joomla]] e [[Drupal]].
 
Poiché la maggior parte delle piattaforme CMS sono [[open source]], sono vulnerabili per natura<ref>{{Cita web|url=https://www.imperva.com/blog/cms-security-tips/|titolo=Why CMS Platforms Are Common Hacking Targets {{!}} Security Tips|sito=Blog|data=2014-09-11|lingua=en-US|accesso=2022-06-24}}</ref>. 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<ref>{{Cita web|url=https://beaglesecurity.com/blog/article/cms-vulnerabilities.html|titolo=CMS Vulnerabilities: Why are CMS platforms common hacking targets?|autore=Sooraj V. Nair|sito=CMS Vulnerabilities: Why are CMS platforms common hacking targets?|lingua=en|accesso=24 giugno 2022-06-24}}</ref>.
 
È 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)<ref>{{Cita web|url=https://www.advertilo.com/come-rendere-sicuro-un-sito-wordpress/|titolo=Come Rendere Sicuro un Sito WordPress al 99%|data=1º maggio 2022-05-01|linguaaccesso=it-IT23 giugno 2022|accessodataarchivio=20 giugno 2022|urlarchivio=https://web.archive.org/web/20220620231752/https://www.advertilo.com/come-06rendere-23sicuro-un-sito-wordpress/|urlmorto=sì}}</ref>.
 
==CMS più diffusi==<ref>
{{Cita web|url=https://www.serverplan.com/blog/cms-piu-diffusi/|titolo=CMS più diffusi: quali sono i migliori per blog, siti ed ecommerce?|autore=Riccardo Esposito|sito=Serverplan Blog|data=2021-03-01|accesso=15 luglio 2022}}</ref><ref>{{Cita web|url=https://www.ionos.it/digitalguide/hosting/cms/cms-a-confronto/|titolo=Confronto tra CMS nel 2022: i sistemi più popolari per la gestione dei contenuti|sito=IONOS Digitalguide|lingua=it|accesso=15 luglio 2022}}</ref>==
* [[WordPress]]
* [[PHP-Nuke]]
Riga 137 ⟶ 139:
 
==CMS "senza testa"==
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 [[HTML|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 [[Software development kit|SDK]] mobili per [[Android]] e [[iOS|iOs]], che al momento consentiranno l'integrazione nativa nelle [[Applicazione mobile|applicazioni mobili]]<ref>{{cita web|url=http://www.prnewswire.com/news-releases/builtio-challenges-legacy-cms-with-updates-to-its-headless-cms-for-enterprise-300233928.html|titolo=Built.io Challenges Legacy CMS with Updates to its Headless CMS for Enterprise|lingua=en|data=10 marzo 2016|accesso=11/03/2016}}.</ref>. <br/> In un futuro non troppo lontano, si potrebbe prospettare per gli [[Sviluppatore software|sviluppatori]] l'ideazione di un CMS "senza testa", basato sull'integrazione di [[Native API|ApiAPI native]].
 
==Note==
Riga 156 ⟶ 158:
 
== Altri progetti ==
{{interprogetto|preposizione=sul}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
 
{{Controllo di autorità}}