LAMP e MEAN sono popolari stack web open source, utilizzati per sviluppare app web e mobile ad alte prestazioni e di livello aziendale. Come altri stack, combinano tecnologie (sistemi operativi, linguaggi di programmazione, database, librerie e framework applicativi) che gli sviluppatori possono utilizzare per creare, implementare e gestire un'app completamente funzionale in modo efficiente e affidabile tramite lo sviluppo di stack.
LAMP e MEAN sono diversi in quanto forniscono agli sviluppatori diversi livelli, o "stack", di tecnologie di cui un'app web necessita per funzionare in tutte le attività dell'interfaccia frontend, della rete e del server di backend. Ad esempio, un'applicazione bancaria basata sul web potrebbe fare affidamento sullo stack LAMP o sullo stack MEAN per interpretare la richiesta di un utente di visualizzare l'attività di banking, recuperare i dati necessari e visualizzarli in un'interfaccia utente.
LAMP è l'acronimo del seguente stack di tecnologie:
Il sistema operativo Linux consente all'intera app web di funzionare correttamente su un determinato hardware. Il server web Apache traduce la richiesta di un utente e quindi recupera e "invia" le informazioni all'utente tramite HTTP (Hypertext Transfer Protocol). Il database MySQL (un sistema di gestione di database relazionali) memorizza i dati (ad esempio, archivi di estratti conto bancari, attività finanziarie, file di immagini, fogli di stile CSS) che il server web può recuperare e fornire in base alla richiesta specifica dell'utente. Il linguaggio di programmazione PHP funziona con Apache per recuperare contenuti dinamici dal database MySQL e presentarli nuovamente all'utente. Mentre l'HTML può visualizzare contenuti statici (ad esempio, un titolo che rimane sull'interfaccia indipendentemente dai dati), i contenuti dinamici che cambiano in base all'interazione dell'utente si basano su PHP. I linguaggi di programmazione PERL e Python possono essere utilizzati anche nello stack LAMP. Lo scrittore Michael Kunze è stato il primo a utilizzare l'acronimo stack LAMP in un articolo pubblicato nel 1998 su una rivista informatica tedesca.
Figura 1: Come viene elaborata una richiesta utente nello stack LAMP.
MEAN è l'acronimo del seguente stack tecnologico:
Il framework AngularJS elabora una richiesta utente in entrata. Node.js analizza quindi la richiesta e la traduce in input comprensibili dall'app web. Express.js utilizza questi input tradotti per determinare quali chiamate effettuare a MongoDB, un database NoSQL non relazionale. Una volta che MongoDB ha fornito le informazioni necessarie, Express.js invia i dati a Node.js, che a sua volta li invia al framework AngularJS in modo che possa visualizzare le informazioni richieste nell'interfaccia utente.
Sebbene il framework frontend AngularJS possa essere sostituito con altri come React.js, l'ambiente Node.js è critico per lo stack MEAN e non può essere sostituito. Questo perché Node.js consente lo sviluppo full stack di JavaScript, un vantaggio fondamentale che rende altamente efficiente lo sviluppo e la gestione di applicazioni con lo stack MEAN. Quando il framework AngularJS viene sostituito con React.js, lo stack viene denominato MERN. L'acronimo stack MEAN è stato utilizzato per la prima volta nel 2013 da Valeri Karpov, sviluppatore di MongoDB .
La Figura 2 mostra un esempio di alto livello di come un'app web risponde nel suo stack MEAN per soddisfare la richiesta di informazioni di un utente:
Figura 2: come risponde un'app web nello stack MEAN per soddisfare una richiesta.
I seguenti sono alcuni benefici dell'utilizzo di LAMP per creare, implementare e gestire applicazioni web:
Gli svantaggi dell'utilizzo di LAMP per creare, implementare e gestire applicazioni web includono:
I benefici dell'utilizzo di MEAN per creare, implementare e gestire applicazioni web includono:
Questi sono alcuni svantaggi dell'uso di MEAN per creare, implementare e gestire applicazioni web:
Nessuno dei due stack è migliore dell'altro, di per sé. Tuttavia, lo stack LAMP o lo stack MEAN possono essere più adatti per un particolare caso d'uso di sviluppo web.
Lo stack LAMP rappresenta generalmente l'opzione migliore per applicazioni o siti web con le seguenti caratteristiche:
Al contrario, lo stack MEAN rappresenta la scelta migliore per applicazioni web o siti come questi:
Per tornare alle basi, lo stack LAMP ti porta un po' più vicino alla gestione tecnica delle pagine web e a come viene eseguita. Hai il tuo database, il tuo linguaggio di scripting e un modo per servirlo ai clienti: questo è LAMP.
Se vuoi vedere quanto è facile sviluppare e implementare un'applicazione sul cloud utilizzando uno stack LAMP o MEAN, IBM offre i seguenti tutorial:
Modernizza facilmente i workload delle applicazioni Java con il servizio completamente gestito di IBM.
Sblocca l'innovazione e consenti ai tuoi team di modernizzare rapidamente le applicazioni esistenti e fornire nuovi servizi cloud-native.
Lo sviluppo di applicazioni cloud significa costruire una volta, iterare rapidamente e distribuire ovunque.