Portabilità e integrazione
Portabilità di ASP
Abbiamo detto che ASP è stato introdotto da Microsoft
nel 1997. E' quindi uno standard relativamente giovane e
legato alla tecnologia della azienda di Redmond. Infatti,
affinché il codice ASP possa essere interpretato,
c'è bisogno che il Web server utilizzato, sia un
server Active X come ad esempio IIS o Personal
Web Server (anche se per quest’ultimo ci sono
alcune limitazioni di utilizzo). Ultimamente (in particolare
dalla Chili Soft con Chili!ASP) sono state realizzate anche
versioni per Netscape Enterprise, Lotus Domino, Solaris.
Altre aziende stanno invece producendo moduli aggiuntivi,
scritti in Java, per server Unix (Linux, Novell, Sun,
Macintosh, HPUX, SGI, SCO,Dec Alpha, IBM OS/2, RS/6000,
AS/400, S/390, Apache, FastTrack/Enterprise servers, Sun
WebServer, Java WebServer,IIS, WebSphere and Lotus Domino).
In particolare Chili Software ha annunciato lo sviluppo di
una nuova tecnologia, Denominata Chili!Beans, che
consentirà di interfacciare applicazioni ASP e
componenti JavaBean: ciò renderebbe ASP totalmente
esportabile e in grado di imporsi come standard. Altro fatto
che fa pensare ad ASP come una soluzione di successo,
è l’indirizzo architetturale dato ad alcuni
ambienti applicativi. Essi infatti, si ispirano direttamente
a questa tecnologia, come nel caso dell’estensione Cold
Fusion Markup Language, che definisce un linguaggio di markup
proprietario destinato all’interpretazione da parte di
alcuni Web server.
Ma l’esempio più clamoroso è costituito
dalla Sun che ha scelto di emulare ASP utilizzando la
tecnologia Java direttamente all’interno di pagine
HTML, con JSP (Java Server Pages).
Integrazione
Il fatto che ASP, sia una tecnologia Microsoft, non preclude che questa tecnologia non possa essere utilizzata con prodotti non proprietari della stessa casa software.
ASP e COM
ASP è perfettamente integrato nell’Active Server
Model di Microsoft: esso rappresenta un ponte che mette in
comunicazione il Web server e i componenti COM presenti sul
server. Un’applicazione ASP complessa può essere
costituita da una serie di componenti messi in relazione tra
di loro e con il Web server mediante un linguaggio di
scripting. Questo comporta l’uso di tecniche note per
la realizzazione di componenti o il riuso di componenti
pre-esistenti, purché questi non facciano uso di
elementi visuali, come finestre, toolbar, ecc.
L’utilizzo di componenti esterni al Web server
consente di estendere le funzionalità
dell’ambiente ASP e di costruire applicazioni complesse
o interfacciare applicazioni esistenti con il Web. Un ruolo
fondamentale per l’aggancio dei componenti esterni
viene affidato all’oggetto predefinito Server, che
tramite il metodo CreateObject() crea una connessione ad
un’istanza di un oggetto ActiveX. La sintassi di
CreateObject() è la seguente:
Server.CreateObject(progID)
dove progID è l’identificativo della classe o
il tipo di oggetto da istanziare nel formato
AppName.ObjectType, con AppName il nome del componente e
ObjectType la classe. Una volta istanziato l’oggetto,
è possibile utilizzarne tutti i metodi e le
proprietà pubbliche.
Ad esempio, supponendo di avere a disposizione un componente
per la gestione di magazzino (Magazzino) che fornisce un
oggetto per la gestione degli articoli (Articolo), è
possibile creare una sua istanza da un’applicazione ASP
tramite l’esecuzione della seguente istruzione JScript:
ArtMag = Server.CreateObject("Magazzino.Articolo")
Da questo momento in poi è possibile invocare qualsiasi metodo dell’oggetto facendo uso della classica dot notation, cioè la sintassi Oggetto.Metodo.
ASP e BackOffice
L’integrazione di ASP nel modello COM si evidenzia
particolarmente nell’interfacciamento con i prodotti
Microsoft della famiglia BackOffice. Infatti, con la versione
di ASP fornita con IIS 4.0 è disponibile un oggetto
predefinito (ObjectContext) per l’interazione con MS
Transaction Server, una serie di componenti per
l’interazione con MS Exchange Server e SMTP Server
(Collaboration Data Objects for NT Server) e un insieme di
componenti per dialogare con MS Message Queue Server.
L’insieme di questi componenti consentono di
realizzare applicazioni robuste ed efficienti con poco
sforzo. Per fare un esempio, è possibile effettuare
dei trasferimenti di articoli da un magazzino ad un altro,
affidando la gestione della transazione a MS Transaction
Server. Con i Collaboration Data Objects for NT Server
(CDONTS), è possibile realizzare sistemi di gestione
di messaggi e posta elettronica su Web veramente sofisticati,
sfruttando le potenzialità di MS Exchange Server e
SMTP Server e ottimizzando l’invio di informazioni
asincrone tramite i componenti di MS Queue Server.
ASP e database
Un ruolo senza dubbio rilevante di ASP è quello di
mediatore tra Web server e un sistema di gestione di
database. Questo è infatti l’uso più
comune di questa tecnologia, un uso che ne ha
senz’altro favorito il successo. Grazie ad ActiveX Data
Object (ADO) è possibile accedere a qualsiasi database
ODBC o OLEDB compatibile, usufruendo dei vantaggi che questa
tecnologia offre, tra i quali la semplicità di accesso
ai dati e l’indipendenza dell’applicazione dal
tipo di database.
Tramite ADO, la gestione di un database non presenta
particolari difficoltà. ASP supporta
un’efficiente gestione delle connessioni ad un database
sfruttando la funzione di connection pooling di ODBC 3.5.
Questa funzione consente la condivisione di una connessione
tra richieste provenienti da utenti diversi, evitando di
creare nuove connessioni, operazione che riduce le
prestazioni del database, e riducendo il numero di
connessioni inattive.
Supporto dei linguaggi di scripting
Un linguaggio di scripting non è un vero e proprio
linguaggio di programmazione: con un linguaggio di scripting
è possibile effettuare elaborazioni e gestire le
risorse messe a disposizione da un ambiente ospite, ma non
è possibile realizzare applicazioni complete ed
autonome. ASP consente di utilizzare un linguaggio di
scripting all’interno del Web server. In realtà,
è possibile utilizzare più linguaggi di
scripting all’interno di un’applicazione ASP e
addirittura all’interno di un file ASP.
ASP supporta in modo nativo due linguaggi di scripting,
VBScript e JScript. Se non diversamente specificato, ASP
interpreta il codice script che trova all’interno dei
marcatori <% e %> come codice VBScript, il linguaggio
predefinito. E’ possibile comunque modificare il
linguaggio predefinito sia a livello di Web server,
cioè per tutte le applicazioni ASP gestite da IIS, che
a livello di singola applicazione, cioè per tutte le
pagine che compongono un’applicazione. E’
comunque da tener presente che impostare un linguaggio
predefinito può portare problemi di
compatibilità con altri Web server non adeguatamente
configurati: infatti, portando un’applicazione ASP da
un Web server con JScript come linguaggio predefinito su un
Web server con VBScript predefinito è evidente che la
sua esecuzione causa problemi di interpretazione sul server
di destinazione.
Tramite la direttiva @ LANGUAGE è possibile
specificare il linguaggio da utilizzare all’interno di
una determinata pagina ASP. Così, ad esempio, se una
pagina ASP contiene come prima linea la direttiva
<% @ LANGUAGE = "JScript" %>
il motore ASP interpreterà il codice contenuto
all’interno di quella pagina come codice JScript.
Inoltre, all’interno di una pagina possono essere
utilizzati linguaggi di scripting diversi, potendo sfruttare
al massimo le caratteristiche proprie di ciascuno di essi.
Utilizzando una versione arricchita del tag <SCRIPT>
è possibile specificare che un blocco di codice deve
essere interpretato secondo un determinato linguaggio:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server" > Codice script </SCRIPT>
L’attributo RUNAT specifica a che livello deve essere
interpretato lo script; se non viene impostato, lo script
è destinato all’interpretazione da parte del
browser.
Oltre a VBScript e JScript, è possibile utilizzare un
qualsiasi linguaggio di scripting il cui scripting engine sia
stato installato sul Web server. Uno scripting engine
è un interprete di un determinato linguaggio
realizzato come oggetto COM secondo lo standard ActiveX
Scripting (www.microsoft.com/management/wsh.htm). Gli
scripting engine di VBScript e JScript sono installati
insieme a IIS; tuttavia è possibile installare uno
scripting engine anche per altri linguaggi, come REXX, Perl,
Python. Un esempio di scripting engine Perl è
PerlScript di Activeware. In genere l’installazione di
uno scripting engine non è un’operazione
complessa; occorre tuttavia effettuare alcune modifiche
manuali al registro di sistema quando si installano scripting
engine di linguaggi che non supportano la dot notation per
l’accesso ai metodi di un oggetto.