Stack: la base software per lo sviluppo web

La parola “stack” o “pila” in italiano è usata in diversi contesti e serve anche ad indicare una raccolta di software per realizzare siti e applicazioni web, dove i singoli componenti sono legati l’uno all’altro. La struttura di base di uno stack prevede un sistema operativo, un server web, un database e un interprete di script. Grazie ad un appropriato hardware del server, questo pacchetto fa sì che le informazioni necessarie di un sito vengano inoltrate al client richiedente, che è in genere il browser. È compito del browser elaborare i codici HTML, CSS e JavaScript per rendere disponibile il sito agli utenti. Visto che i componenti di uno stack possono essere combinati a proprio piacimento, ci sono innumerevoli varianti adatte a diversi tipi di applicazione. La combinazione software più conosciuta è il pacchetto open source LAMP, che è formato da Linux, Apache, MySQL e PHP.

Le componenti di un comune stack

Uno stack tradizionale alla base dei siti e delle applicazioni web è composto, come detto in precedenza, da quattro componenti software, cioè il sistema operativo, il server web, il database e un interprete di script, a cui si aggiungono i framework, altri linguaggi di programmazione, server proxy o altri programmi di analisi. I componenti di base sono:

Il sistema operativo

Il sistema operativo è l’interfaccia principale tra l’hardware del server (processore, RAM, spazio web) e gli altri componenti software utilizzati. Per essere precisi, il sistema operativo si appoggia alle risorse hardware per garantire la funzionalità delle singole applicazioni, soprattutto del server web. Uno stack si può basare su diverse distribuzioni di Linux, Windows, Unix e Mac OS.

Server web

Il server web è un software installato sul sistema operativo che consegna i documenti al client richiedente. La richiesta del client viene trasmessa al web server grazie al protocollo di trasferimento HTTP e nel caso si tratti di contenuti statici come file HTML o immagini, il server web elabora direttamente questa richiesta, consegnando al client i dati richiesti. Invece i contenuti dinamici possono essere riprodotti solo grazie a database e a script. Tra i web server più utilizzati rientrano Apache, Microsoft IIS e nginx.

Database

Nei database sono salvati permanentemente e in modo efficiente i dati rilevanti per il sito, così da essere sempre disponibili per il server web. Questo genera delle richieste grazie alle estensioni server, che vengono elaborate dal database e restituite di nuovo alle estensioni, che a loro volta convertono la richiesta in un formato di output adatto come in un file HTML e lo inoltrano al server web. La scelta del database è strettamente collegata al server web, oltre che ai linguaggi di programmazione e di scripting utilizzati. Ad esempio sono utilizzati spesso Oracle, MySQL e MongoDB.

Interprete di script

Senza i linguaggi di scripting, il web server non è in grado di creare siti dinamici e applicazioni web. Gli interpreti di script si applicano sia lato client, quindi dalla parte del browser, sia tramite script lato server, grazie ai quali avvengono dei precisi processi di calcolo per la visualizzazione delle pagine. L’interprete di script più comune è PHP, ma ci sono anche altre alternative meno diffuse come ASP.NET, Java, Ruby, Perl o Python.

Quali sono i pacchetti software più conosciuti?

Nell’ambito dello sviluppo web si sono affermati una serie di stack. Le richieste crescenti delle sempre più complesse applicazioni web in termini di facilità d’uso, stabilità, raggiungibilità e di scalabilità ha comportato un minore utilizzo del classico modello stack. JavaScript ricopre oggi un ruolo importante anche per i server: così la piattaforma JavaScript Node.js, che si basa su uno stack, promette una programmazione facile dei siti con migliori prestazioni, da tempo non più una rarità. Vi presentiamo tre soluzioni particolarmente amate e le loro possibili applicazioni:

Un classico: LAMP

LAMP è, come già menzionato, la piattaforma software più conosciuta, che ha rappresentato per molto tempo il pacchetto ottimale per i progetti web. Presenta:

  • Linux come sistema operativo,
  • Apache come server web,
  • un database MySQL
  • e un interprete di script PHP.

Tutti i componenti usati sono software open source, con licenza libera, modificabili facilmente secondo le proprie esigenze e anche disponibili gratuitamente. Una piattaforma LAMP può comprendere sin dall’inizio anche soluzioni proprietarie simili ed è stata ad esempio utilizzata per sviluppare MediaWiki, il software di Wikipedia. Il pacchetto LAMP è particolarmente adatto per la realizzazione di siti dinamici composti da molte pagine. Gli utenti traggono soprattutto vantaggio dalla grande community, dai tutorial dettagliati e dalla possibilità di usare il linguaggio PHP e tool potenti come phpMyAdmin.

Con lo sviluppo della tecnologia e di nuovi software con codice libero, sono state create diverse varianti LAMP, in cui vengono sostituiti alcuni componenti comuni, tra cui quelli più conosciuti sono:

  • WAMP (con sistema operativo Windows)
  • MAMP (con sistema operativo Mac OS X)
  • XAMPP (con un sistema operativo qualsiasi, con Perl e PHP come interpreti di script; in più un server FTP multipiattaforma)
  • LAPP (con PostgreSQL come database per realizzare progetti aziendali).

Dal rilascio di MariaDB, nato dalla scissione dal progetto originario MySQL, si utilizza la M per indicare un sistema di database più performante. Trovate maggiori informazioni sulla piattaforma LAMP e su come installarla nel nostro articolo di approfondimento.

La piattaforma software di Microsoft: WISA

Al contrario della piattaforma LAMP, i cui singoli componenti non sono stati appositamente sviluppati per essere utilizzati insieme, la Microsoft ha programmato quelli della WISA proprio per questo scopo, garantendo così una migliore funzionalità del pacchetto. Il software usato è ovviamente proprietario e per questo devono essere acquistate le rispettive licenze d’uso, ma gli utenti possono anche contare sul supporto della Microsoft. Questa piattaforma è composta:

  • dal sistema operativo Windows Server,
  • dal web server Internet Information Services (IIS),
  • dal sistema di database relazionale SQL Server,
  • e dalla libreria del linguaggio di programmazione ASP.NET.

Grazie alla libreria di ASP.NET si possono programmare siti con Visual C# o Visual Basic.NET, che possono essere eseguiti direttamente dal sistema grazie ad un compilatore. WISA non prevede perciò l’uso di un interprete di script e presenta per questo delle prestazioni migliori rispetto a piattaforme simili. La piattaforma software di Microsoft è una buona soluzione per progetti complessi, che si contraddistinguono per l’alto numero di visitatori e di accessi.

La struttura moderna per applicazioni web semplici: MEAN

Diversa è la piattaforma software MEAN: per via delle sue componenti non sono necessari diversi linguaggi di programmazione per il server (come PHP) e per il client (come JavaScript), visto che tutti gli elementi di questo pacchetto supportano JavaScript. Inoltre il sistema operativo e il web server si collocano in secondo piano. I componenti di MEAN sono:

  • il database NoSQL MongoDB,
  • il framework per applicazioni web lato server Express.js,
  • il framework front end lato client AngularJS
  • e la piattaforma Node.js basata sull’ambiente di runtime di JavaScript.

Questo stack consente un processo di sviluppo notevolmente semplificato e accelerato, oltre che una buona scalabilità del progetto. Inoltre è possibile realizzare in modo ottimale le applicazioni web semplici lato client o le app per i dispositivi mobili, grazie alla trasmissione dei dati in formato JSON. Anche per lo stack MEAN ci sono diverse varianti come MEEN (con Ember.js come framework front end) o MERN (con React.js come framework front end). Un esempio di applicazione dello stack MEAN è la piattaforma JavaScript Meteor.

Come scegliere lo stack più adatto

La scelta della piattaforma software con il migliore ambiente di sviluppo e di runtime dipende da diversi fattori. Gli stack basati su JavaScript sono prima di tutto adatti per la realizzazione di applicazioni semplici, mentre quelli classici, che si basano su PHP, Python o Perl presentano dei chiari vantaggi nella creazione di siti più complessi. I linguaggi di programmazione sono spesso decisivi per la scelta, considerando che generalmente si ottengono dei migliori risultati con uno stack basato su linguaggi di scripting e di programmazione conosciuti.

Ovviamente bisogna anche tenere conto delle differenze tecniche dell’ambiente software per quanto riguarda la performance e la stabilità. È necessario anche prendere in considerazione l’uso di componenti alternativi non citati, come ad esempio il web server nginx nel caso di progetti con un alto numero di accessi. È chiaro, dalla presenza di innumerevoli varianti di stack, che non esiste una soluzione universale.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top