Lorenzo Pascucci
a- a+

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.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Sara
Hai dubbi su questo articolo?