I server applicativi sono i motori delle aziende che fanno business via Tcp/Ip. Due i ruoli cardine: la gestione delle pagine dinamiche e la produzione di oggetti e script per il middleware. Forte la dicotomia fra Java e Com+. Facciamo una panoramica sulle soluzioni principali.
Allinterno di una classica architettura a tre livelli, un application server è il fulcro a cui spettano sia lesecuzione delle elaborazioni, volta a sgravare di questo onere il pc con i browser, sia linterfaccia con i server al centro del sistema informativo dellimpresa (database, mainframe e così via). Un server di applicazioni, quindi, deve offrire tante funzioni: dallinterfaccia con un server Http per la pubblicazione dei dati in Html, al motore di esecuzione, dallinterfaccia con i database, gli Erp, i sistemi centrali, lEai (Enterprise application integration), ad alcune utility di gestione degli utenti, di ripartizione del carico, di pooling di connessione, di disaster recovery, fino allambiente di sviluppo, di manutenzione e di amministrazione delle applicazioni.
Ma gli application server, spesso, si concentrano nellassicurare due funzioni distinte: server di pagine dinamiche (o di script) e server di oggetti. Quando si limitano a fornire pagine Web dinamiche, sono apprezzati per la semplicità di implementazione. Nel momento in cui un utente clicca su un collegamento a una pagina dinamica, il server Http affida lo script associato a un server di pagine dinamiche, che lesegue e genera le pagine Html.
Esistono varie soluzioni per lo sviluppo di pagine dinamiche, come linterfaccia Cgi (Common gateway interfacce con programmazione in Perl o C su sistemi Unix o Windows), lambiente Asp di Microsoft (Active Server Pages con sviluppo in VbScript su Windows), lambiente Jsp di Sun (Java Server Pages con sviluppo in Java), lambiente PhP4 (con Linux) e ColdFusion di Macromedia (sviluppato in ambiente proprietario con Windows e Linux).
I server di oggetti si differenziano dai precedenti per la capacità di eseguire elaborazioni allinterno di un contesto transazionale sicuro, per esempio utilizzando funzioni di monitoraggio, e gestiscono un modello di sviluppo a oggetti. Quello che fondamentalmente distingue un application server a oggetti da un server di pagine dinamiche è la capacità di proporre unarchitettura evolutiva, flessibile e ad alte prestazioni grazie allimpiego di standard riconosciuti e alla possibilità di implementare moduli distribuiti.
Alcuni server applicativi in ambiente Java propongono limplementazione di servlet. Questi non gestiscono linsieme delle funzioni tipiche di un server a oggetti (Ejb, Corba e così via). Eseguono, invece, transazioni classiche e sono spesso utilizzati per preparare un insieme di dati che sarà trasmesso a un server Http. In questo caso il loro funzionamento si avvicina molto a quello di un server di pagine dinamiche.
La maggior parte degli application server integra sia una funzione di generazione e di esecuzione delle pagine dinamiche sia un server a oggetti. È per questo motivo che lofferta Java utilizza un motore Ejb accoppiato a un motore di servlet e di Jsp. Con Windows, lambiente Com+ è associato alle Asp.
Creazione e collegamento
La standardizzazione dei server di applicazioni si esercita su due livelli: sviluppo e interfacciamento. A livello di sviluppo, la compatibilità con le specifiche J2Ee (Java 2 Enterprise edition) di Sun e dei suoi componenti Ejb è una realtà per la maggior parte dei fornitori. Microsoft e qualche altro vendor, come Macromedia, hanno adottato modelli referenziali differenti e proprietari.
La società di Bill Gates, infatti, utilizza il modello Com+, disponibile unicamente in ambiente Windows. Questo scelta presenta qualche vantaggio: in primo luogo il costo contenuto e, secondariamente, il fatto che i differenti mattoni che compongono il server di applicazioni sono rilasciati con Windows 2000 (versione Advanced Server).
A livello di interfaccia vengono sempre più utilizzati standard come Http, Xml e Soap. Sun fornisce J2Ee, una specifica dellinsieme delle Api Java che mette in mostra uno sviluppo spinto, implementato su un qualsiasi server di applicazioni dichiarato conforme, facilitando in questo modo la migrazione delle applicazioni realizzate. J2Ee è composto da tredici set di Api, tra i quali si ritrova Jdbc (accesso agli Rdbms), Jndi (accesso alle directory), Ejb, Jsp e i servlet, Jts (accesso al monitoraggio transazionale) e così via.
Laspetto dello sviluppo non è direttamente collegato alle caratteristiche di un application server, ma lo stesso deve essere preso in considerazione. Al di là delle capacità offerte dai singoli software, lintegrazione ai server applicativi è molto importante (debugging, deployment degli oggetti e così via).
La presenza di un ambiente di sviluppo, di un editor di pagine Html, di un debugger, di applicazioni di sviluppo in team, di funzioni di gestione delle versioni e di un software di modellizzazione sono argomenti essenziali nella scelta di una soluzione. Daltra parte, lamministrazione gioca un ruolo essenziale per la gestione delle applicazioni, in particolare per il pooling di connessione e per la parametrizzazione della ripartizione del carico.
I server di applicazioni che funzionano secondo unarchitettura centralizzata devono gestire numerosi accessi utente simultanei e offrire la massima disponibilità alle applicazioni. La gestione dellaumento del carico può essere eseguita tramite funzioni di ripartizione del carico a monte delle applicazioni (ciascun utente è diretto verso unistanza di applicazione) o attraverso ripartizioni di elaborazione (lapplicazione può essere scissa in più parti, ciascuna delle quali può essere posizionata su macchine differenti). A questo riguardo esistono due possibilità: la più semplice consiste nellassicurare il funzionamento delle applicazioni in continuo. In caso di guasto, lutente perde il lavoro in corso di svolgimento, ma lapplicazione è accessibile. Un livello più avanzato permette il disaster recovery sullincidente a livello di sessione o di utente. Se interviene un blocco, lutente non perde il lavoro in corso perché questo è automaticamente recuperato dallapplication server.
Larchitettura J2Ee di Sun è diventata il punto di riferimento dei server di applicazioni per quanto riguarda lo sviluppo. La caratteristica principale sta nel fatto che il porting di unapplicazione di un application server J2Ee verso un altro server può essere fatta a costi contenuti. La conformità e la certificazione sono fornite da Sun al termine di una serie di test. Secondariamente, la serie di test di compatibilità del server di applicazioni con le Api di J2Ee è molto più completa. Non esistono server applicativi senza connessione al sistema informativo. Per le applicazioni Web transazionali (intranet, Internet ed extranet) si riscontrano due tipi di necessità. La prima riguarda laccesso ai database, elemento essenziale di qualsiasi sito o applicazione transazionale. Per questo, gli application server devono avere due funzioni: unapertura standardizzata alle soluzioni software e una gestione di pooling di connessione avanzata (numero di connessioni allavvio, numero massimo supportabile e così via). La seconda necessità riguarda laccesso agli Erp, al mainframe, alle soluzioni di terze parti e anche linterconnessione con le soluzioni di Eai.
Per fornire un panorama completo sullattuale offerta in tema di application server, proponiamo un breve riassunto delle funzionalità dei più diffusi prodotti.
Apple
WebObjects (ora in versione 5) è una delle offerte più mature in tema di server di applicazioni. Larchitettura fisica è basata su un server di pagine dinamiche, su servlet e su un server a oggetti Java, ma non ha una stretta aderenza agli standard. Le utility di sviluppo proposte sono costituite da WebObject Builder per le interfacce Html, di Project Builder per lo sviluppo in Java o WebScript e Eo Modeler per la modellizzazione. È adatto per progetti in cui il carico transazionale è consistente e per quelli destinati a grandi sistemi informativi aziendali.
Atg
Lapplication server Dynamo è destinato principalmente al funzionamento di software di commercio elettronico e di Crm basati su piattaforme Java. La sua architettura tecnica permette sia limplementazione di una tecnologia proprietaria per le pagine dinamiche (Dynamo Server Page) sia la realizzazione di un ambiente standard basato su J2Ee. Con il Map (Mobile application program) la piattaforma mette a disposizione funzioni di sicurezza degli accessi e consente la gestione del Wml (Wireless markup language). Tramite il Dai (Dynamo application integrator) Atg propone una piattaforma integrativa (Eai) che consente limplementazione di siti di commercio elettronico e di Crm basati su piattaforme legacy, Erp e database. Questo servizio è analogo a quelli forniti da WebMethods, Vitria, Ibm Mq Series e Tibco. Cè di più: il Dai incorpora proprio un motore di integrazione Tibco.
Bea
WebLogic Server è ormai uno standard in materia di server di applicazioni Java. In origine specialista di monitor transazionali (Tuxedo), Bea ha trasferito la propria esperienza in questo prodotto, frutto dellacquisizione del servlet di applicazioni Tengah di WebLogic. Larchitettura tecnica si basa su un server di servlet/Jsp e su uno a oggetti Corba/Ejb. Lo sviluppo è stato realizzato a partire da una serie di utility raggruppate nellofferta WebGain Studio: Dreamweaver per le interfacce Html e Jsp, Visual Cafè per Java, Structure Builder e TopLink per la modellizzazione e il mapping. Linterfacciamento con i sistemi esistenti passa sia attraverso dei driver integrati sia il server di Eai eLink.
BlueStone
Sapphire/Web di BlueStone, infine, è stato recentemente acquistato da Hp e ribattezzato Total-e-server 7.2 dopo laggiunta di qualche funzione legata al commercio elettronico e allaccesso a dei terminali mobili. Larchitettura tecnica è basata su un motore di servlet/Jsp e un server a oggetti J2Ee (Corba). Lambiente di sviluppo integra Java, C e C++.
Borland
Borland AppServer 4.5 costituisce un ambiente di sviluppo e di deployment destinato a progetti aperti. È uno dei server più maturo per quanto riguarda le tecnologie Corba e lo sviluppo di interfacce Java. Larchitettura tecnica è basata su Jsp e i servlet per le pagine dinamiche e su un server a oggetti Corba/Ejb. Per quanto riguarda lo sviluppo, Jbuilder è ben integrato al server. È inoltre associato a Dreamweaver per lo sviluppo di pagine Web e alle utility di Rational Rose in tema di modellizzazione e di aiuto dello sviluppo.
Ibm
WebSphere di Ibm è disponibile in versione standard gratuita (motore di servlet), Advanced (server a oggetti Ejb e a ripartizione del carico) ed Enterprise (integrazione di messaging). Questa soluzione presenta unarchitettura tecnica servlet/Jsp, Corba/J2Ee a cui Ibm aggiunge una ricca offerta software complementare, che garantisce la durata nel tempo e la compatibilità legacy. Lo sviluppo della parte Html e Jsp è stato realizzato con laiuto di WebSphere Studio, mentre sono stati impiegati VisualAge e Java per i componenti e i servlet. Linterfaccia con lesistente è stata creata tramite i connettori Jdbc e il server Mq Series. Questo prodotto è destinato soprattutto alla realizzazione di progetti complessi e allevoluzione dei siti esistenti. La nuova versione 4.0 gestisce i servizi Web (Xml, Soap e Udd).
Iona
Nella vasta offerta della casa irlandese, riassumibile sotto il cappello dellEai (che in Iona, però, chiamano "total business integration"), il server applicativo non è che un elemento, per quanto importante. Iportal Application Server (ora in versione 3.0) è indirizzato ad architetture su grande scala e basate sullutilizzo di Java. Il server di Iona, infatti, è certificato J2Ee, integra funzioni di e-business integration, supporta gli Ejb 1.1, incorpora funzionalità di Web container, Jsp e servlet, e garantisce linteroperabilità con il protocollo Iiop (Internet inter Orb protocol). Iportal è costruito sullarchitettura proprietaria Art (Adaptive runtime technology), che, tra le altre cose, fa girare le applicazioni J2Ee in clustering su più host.
Iplanet-Sun
Iplanet è un mosaico di prodotti acquisiti da Sun: iPlanet Application Server (Ias) 6.0 riprende il motore di Netscape Application Server (ex-Kiva) al quale è stato aggiunto il connettore NetDinamics e la gestione Xml di Forté Fusion. Ias gestisce i Jsp, i servlet, un server a oggetti Ejb. iPlanet Application Builder, lutility di sviluppo integrata, è essenzialmente centrata su Html. Lutris Enhydra 3.5 di Lutris è un server di applicazioni open source che permette di avere accesso a un codice sorgente. La versione 3.1 è scaricabile gratuitamente ed è completata dalla versione 3.5, più potente e a pagamento. Questa proposta gestisce gli standard Java, Html, Xml e le diverse versioni di Linux. Enhydra implementa Java e i servlet ma anche Ejb (nella versione 4.0).
Macromedia
Dopo lacquisizione di Allaire, Macromedia ColdFusion è essenzialmente centrato sulle pagine dinamiche e rappresenta il punto chiave nellofferta della società. Larchitettura tecnica del server utilizza Html per la presentazione e markup specifici Cfml (ColdFusion markup language) per le elaborazioni. Il tool di sviluppo ColdFusion Studio permette di creare script Cfml e pagine Html. La connessione ai database avviene via Odbc o nativa per database come Oracle o Db2.
Microsoft
Lofferta della casa di Redmond è costituita da un server di pagine dinamiche Asp e da un server a oggetti Com+. Questo è stato integrato nella versione Advanced Server di Windows 2000, mentre la versione Server non è collegata che con il server di pagine Asp. FrontPage può essere impiegato per la creazione di pagine Html e Visual InterDev per quella di pagine dinamiche. Gli script sono sviluppati in VbScript o Jscript, le componenti con Visual C++ o Visual Basic. Linsieme di queste utility e di altre complementari viene commercializzato con il nome di Visual Studio. Le funzioni di interfaccia con lesistente sono in parte integrate (Ado, MsMq, Odbc) e in parte si trovano su server specializzati (His, Biztalk).
Oracle
Oracle 9i Application Server presenta unarchitettura tecnica basata su diversi motori di presentazione (servlet, Jsp, Perl, Pl/Sql Server Page), un motore di interpretazione delle procedure di storage Pl/Sql e un server a oggetti Ejb/Corba. Lambiente di sviluppo Java utilizzato è Jdeveloper (di Jbuilder). Questa soluzione è adatta a Oracle Jdeveloper.
SilverStream
SilverStream propone Application Server 4.5, architettura tecnica con un motore di servlet e di Jsp. Il prodotto integra un server a oggetti J2Ee/Corba e si interfaccia anche con componenti Com di Microsoft. Dispone di un ambiente di sviluppo Html e Java, mentre per la creazione di componenti ci si può interfacciare con utility come Visual Café e Jbuilder.