Application server
tipologia di server che fornisce l'infrastruttura e le funzionalità di supporto, sviluppo ed esecuzione di applicazioni nonché altri componenti server in un contesto distribuito
Un Application server è un’applicazione che fornisce l’infrastruttura e le funzionalità di supporto a integrazione, deploy ed esecuzione di applicazioni e componenti server in un contesto distribuito. Sono orientati alla realizzazione di applicazioni web multi-tiered e di tipo enterprise, con alto grado di complessità. I moduli normalmente presenti in un Application Server sono:
- contenitore di componenti server-side;
- gestore degli accessi degli utenti e della sicurezza;
- gestione accesso a database o in generale a sorgenti di dai esterne;
- gestore transazioni;
- interfaccia per l’accesso a sistemi legacy;
- altri componenti per massimizzare le prestazioni, come connection pool, load balancer, caching, ecc..
Nel mondo Java, gli Application Server compatibili con le specifiche della Sun sono detti Application Server J2EE.
I benefici
L’adozione degli Application Server offre particolari benefici soprattutto nelle aree dello sviluppo, dell’esecuzione e della gestione integrata dei sistemi. I principali vantaggi possono essere così riassunti:
- Semplificazione delle attività di sviluppo: gli Application Server creano un ambiente nel quale si possono utilizzare gli strumenti di sviluppo più diffusi sul mercato, consentendo di produrre e distribuire rapidamente applicazioni transazionali altamente scalabili. In generale, questi ambienti comprendono modelli e strumenti di ausilio per sviluppare le applicazioni, riducendo i tempi di realizzazione e messa in esercizio dei programmi negli ambienti distribuiti.
- Supporto di vari linguaggi, strumenti e piattaforme: a seconda dell'application server utilizzato, le applicazioni possono essere scritte nel linguaggio preferito dal programmatore.
- Riusabilità del codice: la riusabilità del codice deriva sia dalla programmazione Object Oriented spesso utilizzata in questi casi, sia dall'utilizzo dell'approccio a componenti. Una volta sviluppata la logica applicativa, essa può essere condivisa e riutilizzata.
- Gestione delle transazioni. L’Application Server facilita la gestione delle operazioni basate su transazioni, assicurando l’integrità transazionale e gestione affidabile dei Back-end multipli per le risorse e i dati. Il sistema di gestione delle transazioni gestisce le interazioni con i Database e le funzioni di Commit, Rollback e Recovery.
- Scalabilità. Gli Application Server supportano il partizionamento delle applicazioni e la distribuzione in rete dei componenti. I sistemi multi-CPU e i Cluster di Application Server assicurano la scalabilità necessaria a gestire anche grandi quantità di utenti concorrenti.
- Alte prestazioni. Gli Application Server offrono caratteristiche architetturali che permettono di erogare elevate prestazioni quali il Multithreading, il bilanciamento dinamico dei carichi di lavoro (load balancing), il caching e il pooling degli oggetti e delle connessioni ai database.
- Estensibilità. L’architettura modulare degli Application Server e il supporto per i Server e per i moduli applicativi che possono essere caricati dinamicamente, consente alle aziende di estendere facilmente le funzionalità dei loro sistemi e delle relative applicazioni.
- Robustezza. L’architettura basata su componenti degli Application Server e il bilanciamento dinamico dei carichi assicurano l’alta disponibilità dei sistemi. I componenti del Server e la logica applicativa possono essere riconfigurati, aggiunti o rimossi senza interruzioni nell’erogazione dei servizi agli utenti. Queste caratteristiche sono particolarmente importanti per garantire l’alta disponibilità del sistema, requisito necessario per il buon esito delle operazioni Mission-critical aziendali.
- Sicurezza. Gli Application Server offrono delle funzioni specifiche di sicurezza End-to-end, necessarie per l’esecuzione delle applicazioni aziendali che richiedono particolari misure di sicurezza e riservatezza dei dati. Per le comunicazioni tra Client e Server, vengono impiegati algoritmi standard e ampiamente testati e collaudati sul WEB, come quelli offerti dal protocollo SSL. Il Logging e il Tracking degli eventi forniscono una protezione dagli accessi non autorizzati.