Application server: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
+{{Interfacce web}}
 
(138 versioni intermedie di 91 utenti non mostrate)
Riga 1:
UnIn [[informatica]] un '''Applicationapplication server''' (a volte abbreviato con la sigla '''AS''') è un’applicazioneuna tipologia di [[server]] che fornisce l’infrastruttural'[[infrastruttura]] e le funzionalità logiche di supporto a integrazione, deploysviluppo ed [[Esecuzione (informatica)|esecuzione]] di [[applicazione (informatica)|applicazioni]] enonché altri componenti [[server]] in un contesto [[sistema distribuito|distribuito]]. SonoSi tratta di un complesso di servizi orientati alla realizzazione di applicazioni webad [[Architettura multi-tieredtier|architettura emultilivello]] di tipoed enterprise, con alto grado di complessità, spesso orientate per il [[World Wide Web|web]] ([[Applicazione web|applicazioni web]]). In altre parole su di esso gira la cosiddetta [[logica di business]] in un'architettura hardware/software di tipo [[multi-tier]] e può dunque essere definito un [[middleware]]. La sua gestione è opera dei cosiddetti [[sistemista|sistemisti]] applicativi dove oltre alle operazioni di [[installazione (informatica)|installazione]] e [[configurazione (informatica)|configurazione]] un'operazione tipica è quella di [[deployment]] dell'applicazione web.
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 [[transazione (database)|transazioni]];
* interfaccia per l’accesso a sistemi legacy;
* altri componenti per massimizzare le prestazioni, come [[connection pool]], load balancer, caching, ecc..
 
==Descrizione==
Nel mondo Java, gli Application Server compatibili con le specifiche della Sun sono detti Application Server J2EE.
=== IStruttura beneficimodulare ===
L'application server è composto da [[modulo (programmazione)|moduli]] realizzati secondo [[Standard (informatica)|standard]] ben definiti ed accettati dalla comunità mondiale dei [[programmatori]]. Un esempio di questi standard è il [[Protocollo di rete|protocollo]]
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:
[[Hypertext Transfer Protocol|HTTP]], normalmente utilizzato per la [[trasmissione (telecomunicazioni)|trasmissione]] di [[informazioni]] sul [[web]].
* 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.
Al suo interno, un application server dispone di componenti che consentono ad un'applicazione di lavorare facilmente con lo standard HTTP.
* 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.
 
I moduli normalmente presenti in un Applicationapplication Serverserver sono:
== Collegamenti esterni ==
* modulo [[web server]] che espone al [[client]] [[browser]] la logica di presentazione statica delle applicazioni e in diretta interazione con la sottostante [[business logic|logica di business]];
* contenitore di componenti [[lato server|server-side]] detti anche logica di business;
* gestore degli accessi degli utenti e della [[Sicurezza informatica|sicurezza]];
* gestione accesso a [[database]] o in generale a sorgenti di daidati esterne;
* gestore [[transazioneTransazione (databasebasi di dati)|transazioni]];
* [[interfaccia (informatica)|interfaccia]] per l'accesso ad un [[sistema legacy]];
* altri componenti per massimizzare le prestazioni, come [[connection pool]], [[load balancing|load balancer]], [[Cache|caching]], ecc..
 
=== Tecnologie disponibili ===
* [http://java.sun.com/j2ee/ Java 2 Platform Enterprise Edition]
Allo stato attuale delle cose, le [[Tecnologia|tecnologie]] su cui possono basarsi gli application server sono diverse: [[Microsoft .NET]], [[Java (linguaggio di programmazione)|Java]] di [[Oracle Corporation|Oracle]], [[Zope]]. Essendo una specifica, quella Java annovera numerose [[Implementare|implementazioni]] sia commerciali che [[open source]]: [[GlassFish|Oracle GlassFish]], [[JBoss]], [[Oracle WebLogic Server|WebLogic]], [[WebSphere]], [[Geronimo Application Server|Geronimo]] ecc.
* [http://www.jboss.org/ JBoss: application server J2EE Open Source]
 
* [http://www.ibm.com/websphere WebSphere: Application Server commerciale di IBM]
Gli standard di Java non sono unicamente frutto prima della [[Sun Microsystem]] e adesso di [[Oracle Corporation]], ma sono il risultato di un rapporto sinergico tra le aziende americane e la partecipazione libera di sviluppatori in tutto il mondo. Gli standard su cui si fonda la tecnologia .NET sono invece stabiliti direttamente da [[Microsoft]].
* [http://www.bea.com/weblogic Weblogic: Application Server commerciale di BEA]
 
Nel mondo Java, gli Applicationapplication Serverserver compatibili con le specifiche della Sun sono detti Application[[application Serverserver J2EE]].
 
=== Vantaggi ===
L’adozioneL'adozione deglidi Applicationapplication Serverserver offre particolari benefici soprattutto nellenei areesettori dello sviluppo, dell’esecuzionedell'esecuzione e della gestione integrata dei [[Sistema (informatica)|sistemi]]. I principali vantaggi possono essere così riassunti:
* ''Semplificazione delle attività di sviluppo:'' gli Applicationapplication Serverserver 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 [[modello di sviluppo del software|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 [[linguaggio di programmazione|linguaggi]], strumenti e [[piattaforma (informatica)|piattaforme software]]: a seconda dell'application server utilizzato, le applicazioni possono essere scritte nel linguaggio preferito dal [[programmatore]].
* ''Riusabilità del codice:'' la [[riuso di codice|riusabilità del codice]] deriva sia dalla [[programmazione Objectorientata agli Orientedoggetti]] 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 [[Transazione (basi di dati)|transazioni]]''. L’ApplicationL'application Serverserver facilita la gestione delle operazioni basate su transazioni, assicurando l’integritàl'integrità transazionale e gestione affidabile dei Back[[back-end]] multipli per le risorse e i [[dati]]. Il sistema di gestione delle transazioni gestisce le interazioni con i Database[[database]] e le funzioni di Commit[[controllo versione|commit]], Rollback[[rollback]] e Recovery.[[recupero dati|recovery]].
* ''Alte prestazioni''. Gli Applicationapplication Serverserver offrono caratteristiche architetturali che permettono di erogare elevate prestazioni quali il Multithreading[[multithreading]], il bilanciamento dinamico dei [[Carico di sistema|carichi]] di lavoro (''[[load balancing]]''), il caching e il [[pooling]] degli [[Oggetto (informatica)|oggetti]] e delle [[Connessione (informatica)|connessioni]] ai database.
* ''Scalabilità''. Gli Applicationapplication Serverserver supportano il partizionamento delle applicazioni e la distribuzione in [[Rete informatica|rete]] dei componenti. I sistemi multi-CPU[[multiprocessore]] e i Cluster[[computer cluster|cluster]] di Applicationapplication Serverserver assicurano la [[scalabilità]] necessaria a gestire anche grandiun gran quantitànumero di utenti concorrenti.
* Estensibilità''Estendibilità''. L’architetturaL'architettura modulare degli Applicationapplication Serverserver e il supporto per i Serverserver 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’architetturaL'architettura basata susui componenti degli Applicationapplication Serverserver e il bilanciamento dinamico dei carichi assicurano l’altal'alta [[disponibilità]] dei sistemi. I componenti del Serverserver e la logica applicativa possono essere riconfigurati, aggiunti o rimossi senza interruzioni nell’erogazionenell'erogazione dei servizi agli utenti. Queste caratteristiche sono particolarmente importanti per garantire l’altal'alta disponibilità del sistema, requisito necessario per il buon esito delle operazioni Missionmission-critical aziendali.
* ''Sicurezza''. Gli Applicationapplication Serverserver offrono delle funzioni specifiche di sicurezza End[[end-to-end]], necessarie per l’esecuzionel'esecuzione delle applicazioni aziendali che richiedono particolari misure di sicurezza e riservatezza dei dati. Per le comunicazioni tra Client[[client]] e Serverserver, vengono impiegati [[Algoritmo|algoritmi]] standard e ampiamente testati e collaudati sul WEBweb, come quelli offerti dal protocollo [[Transport Layer Security|SSL]]. Il Logginglogging e il Tracking[[tracking]] degli eventi forniscono una protezione dagli accessi non autorizzati.
 
==Server per applicazioni web==
{{Vedi anche|Server per applicazioni web}}
 
==Voci correlate==
* [[Java Naming and Directory Interface]]
 
== Collegamenti esterni ==
* [{{cita web|http://java.sun.com/j2ee/ |Java 2 Platform, Enterprise Edition]|lingua=en}}
* {{en}}[http://www.jboss.org/ JBoss]: application server J2EE Openopen Source]source
* {{en}}[httphttps://www.ibm.com/websphere WebSphere]: Applicationapplication Serverserver commerciale di [[IBM]]
* {{en}}[http://www.oracle.com/us/products/middleware/application-server/index.html WebLogic]: application server commerciale di [[Oracle Corporation]] (ex. [[BEA Systems]])
*[[GlassFish]] : Open Source Java Application Server
* [http://www.oracle.com/lang/it/appserver/index.html Oracle AS 10g]: application server commerciale di Oracle
* {{cita web |1=http://jbossitalia.altervista.org |2=News e tutorial su svariati Application Server |accesso=16 febbraio 2019 |urlarchivio=https://web.archive.org/web/20161113003726/http://jbossitalia.altervista.org/ |dataarchivio=13 novembre 2016 |urlmorto=sì }}
 
{{Interfacce web}}
[[en:application server]]
{{Portale|internet|telematica}}
 
[[Categoria:ProgrammazioneFramework per applicazioni web]]
[[Categoria:PiattaformeArchitettura Computerdel software]]