Microsoft Internet Information Server 3.0

Archesis S.r.L.

Sommario:

Overview

Caratteristiche

ISAPI

Active Server Pages

Sicurezza

 


Overview

 

Le potenzialità del web nel rendere le informazioni facilmente accessibili e dinamicamente personalizzabili impone la presenza di strumenti che permettano di eseguire tutta una nuova generazione di applicazioni all’interno di un browser.

Internet Information Server (IIS) consente di creare applicazioni che fanno uso di pagine web dinamiche per utilizzo pubblico su Internet o all’interno di reti aziendali. Le reti Internet/Intranet, rappresentano dei mezzi sicuramente semplici e poco costosi per localizzare, strutturare e distribuire le informazioni sia all'esterno che all'interno della propria organizzazione.

Tale combinazione di servizi permette di assegnare a Internet un ruolo piu’ ampio non solo a livello di gestione di semplici pagine statiche ma anche nella presentazione di applicazioni attraverso pagine web.

IIS rappresenta il server web, l’unico, progettato per la piattaforma WinNT Server: è una soluzione potente ed allo stesso tempo facile e veloce da installare per creare nuovi siti ed applicazioni web.

In questo documento si fara' riferimento alla versione 3.0 di Microsoft Internet Information Server. Tuttavia molte delle indicazioni fornite hanno validita' anche per le versioni precedenti e, soprattutto, sucessive.

 


Caratteristiche

IIS è una piattaforma per applicazioni Internet/Intranet, la versione 3.0, richiede per l'installazione Internet Information Server 2.0 e Microsoft Windows NT Server 4.0 o Microsoft NT Workstation 4.0. Le applicazioni sviluppate sono compatibili con qualsiasi browser web, funzionante con qualsiasi sistema operativo.

IIS 3.0 aggiorna le caratteristiche e le funzionalità della versione precedente riassunte nei seguenti punti:

IIS 3.0 include un efficiente http engine: un’implementazione nativa degli standard internet per i web server HTTP e include servizi FTP e Gopher.

È costituito da una serie di pacchetti applicativi, che offrono un’ambiente per sviluppare applicazioni, un motore di ricerca, un supporto per trattare elementi multimediali:

Active Server Page: permette di creare rapidamente potenti applicazioni Web attraverso l’integrazione di elementi HTML, script e component. E’ possibile inserire moduli Visual Basic Scripting Edition e JScript, mantenendo la compatibilita’ con qualsiasi motore di scripting, come Perl, Rexx, e gli altri linguaggi CGI. Active Server Pages incorpora inoltre una funzione avanzata di accesso via web a database aziendali.

Microsoft NetShow: Si tratta di una piattaforma software aperta per la trasmissione, sia in tempo reale che su richiesta, di contenuti multimediali su Internet e sulle Intranet aziendali. Per le trasmissioni in tempo reale, usa la diffusione selettiva (multicasting) per distribuire simultaneamente file audio e dati; per quanto riguarda invece la trasmissione su richiesta, permette di memorizzare e inviare contenuti audio, video e Illustrated Audio (audio sincronizzato con immagini, indirizzi URL e script). Inoltre, NetShow supporta l'ActiveMovie Streaming Format, che assicura avanzate funzionalita’ multimediali per authoring e sincronizzazione.

Microsoft Index Server 1.1: E’ un motore di ricerca integrato, in grado di indicizzare automaticamente testi completi e proprieta’ dei vari file, compresi quelli in formato HTML. Index Server riesce inoltre a reperire tutti i documenti indipendentemente dal tipo di formato, che puo’ essere un documento Microsoft Word, un foglio elettronico Microsoft Excel, o una pagina HTML. L'indice viene dinamicamente aggiornato quando i documenti cambiano, mentre le funzionalita’ di sicurezza sono strettamente integrate con quelle di Microsoft Windows NT.

FrontPage 97 Server: Permette la creazione e la gestione delle pagine di un sito Internet/Intranet. E’ uno strumento client/server visuale facile e potente per sviluppare e mantenere aggiornati siti web. L’interfaccia utente è coerente con quella di Microsoft Office pertanto è facile da usare. La sua architettura client/server consente la creazione di pagine web, la preparazione di script di comandi e la gestione di un sito web anche da una macchina remota.

Crystal Reports:E’ uno strumento grafico per la generazione di report relativi al traffico sul sito web che possono essere integrati in applicazioni di database. Crystal Reports per Internet Information Server 3.0 include report pre-formattato per il file di log in modo da poter essere analizzato facilmente per controllare gli accessi via Web.


ISAPI

L’interfaccia ISAPI (Internet Server API) proposta da Microsoft rappresenta un’alternativa alla Common Gateway Interface (CGI).

ISAPI supportate da IIS realizzano un’estensione per il server WWW e rappresentano un miglioramento significativo nel creare applicazioni server Internet rispetto a CGI.

Programmi scritti con l’interfaccia ISAPI sono compilati come librerie dinamiche (dll) e sono caricate dal servizio WWW allo start-up. Una applicazione ISAPI molto popolare è HTTPODBC.dll per l’accesso a database via ODBC.

Le applicazioni ISA (Internet Server Application) sono caricate nello stesso spazio di memoria del server HTTP, in modo che tutte le risorse disponibili al server http sono rese disponibili anche a ISA dll. L’overhead associato con tali applicazioni è minimo perché non c’è nessun lavoro extra per ogni richiesta effettuata.

ISAPI sono composte da due elementi:

I primi sono usati per arricchire le pagine web come accennato in precedenza, i secondi possono essere usati per aggiungere schemi personali di autenticazione, metodi per encryption e compressione dei dati.

Le applicazioni sono eseguite solo quando si fa espresso riferimento tramite URL alla dll, i filter vengono chiamati per ogni URL indipendentemente dal contenuto di questi.

In figura n.1 viene proposta l’architettura del modello ISAPI.

Tutte le ISA dll risiedono nello stesso processo come il server http, mentre le applicazione CGI vengono eseguite in processi differenti.

L’interazione tra server http e ISA dll è ottenuto attraverso una struttura dati nota con il nome di Extension Control Block (ECB). Il client usa un ISA in modo identico all’utilizzo dei CGI; viene specificando il nome della dll da eseguire:

http://script/foo.exe?param1+param // Utilizzando CGI

http://script/foo.dll?param1+param2 // Utilizzando ISAPI


Active Server Page

Active Server Page (ASP) è un’ambiente server-side che permette di eseguire ActiveX Script e ActiveX Server Component direttamente sul server. Combinando script, component e tag html si possono creare pagine web personalizzate al volo basate sull’interazione con l’utente. Quando si scrivono applicazioni o script command due interfacce sono supportate:

ASP fornisce tutte le funzionalità delle applicazioni CGI e ISAPI in modo più efficiente: con i CGI il server crea un numero di processi pari al numero delle richieste del client causando un aumento dell’utilizzo della RAM e impiegando in modo critico tutte le risorse del sistema con conseguente caduta di performance e aumento del tempo di attesa. Le applicazioni che usano ISAPI sono compilate come link dinamici a delle librerie e sono caricate dal servizio WWW. Le applicazioni ISAPI risiedono in memoria e sono piu’ veloci rispetto a quelle scritte tramite la tecnica CGI. Le applicazioni ISAPI richiedono meno overhead perche’ ogni richiesta non parte come un singolo processo; ma supportano un grado di complessità più elevato a differenza delle active server page quindi più difficili da gestire.

ASP utilizza tecniche multithread per consentire l’accesso ad un numero maggiore di utenti eseguendo nello stesso processo più richieste.

ASP include supporti nativi per eseguire script in VBscrpt e Jscript, supporta inoltre l’uso di un qualunque linguaggio di scripting, introducendo uno scripting engine, e di componenti scritti in un qualunque linguaggio incluso Java, C++, Cobol, Visual Basic. Un linguaggio di scripting è necessario per gestire la logica di collegamento, tra i vari elementi della pagina. Gli script e i componenti che sono processati sul server forniscono in output un documento html standard in modo tale che gli active server page possono lavorare con un qualunque browser; inoltre non viene effettuata nessuna compilazione manuale: compilatori Just-in-time automaticamente ricompilano un file asp quando richiesto caricandolo nella cache del server, in modo che i cambiamenti al file possono essere resi visibili immediatamente.

Quando si creano oggetti con ASP si creano in pratica oggetti OLE (Object Linking and Embedding) o ActiveX Component. Tramite gli OLE gli utenti possono creare documenti "contenitori" che comprendono parti gestite da altri programmi, gli OLE si basano sul modello COM (Component Object Model). Tutta la specifica di ActiveX, essendo integrata nella specifica OLE, si basa su questo modello. COM fornisce l’architettura e il meccanismo per creare component che saranno condivisi tra applicazioni. Sulla base del modello COM è stato definito DCOM (Distribuited Component Object Model) che definisce una specifica e una implementazione delle interfacce tra oggetti attraverso la rete.

ActiveX Server Component conosciuti anche come OLE Automation Servers sono parte dell’applicazione web ma possono essere usati al di fuori del contesto web favorendo il riuso del codice.Il concetto è che è possibile utilizzare un component non solo da un’ambiente di sviluppo visuale o in un’applicazione OLE-enabled ma anche in una pagina web, i programmi scritti per il web potranno essere utilizzati in una qualunque altra applicazione OLE-enabled.

I component sono oggetti con una piccola differenza: il component è sempre un package separato dall’applicazione come una dll o come un oggetto COM e può essere immediatamente integrato nello script per un suo utilizzo creando un’istanza.

ASP lavora con Active Server Object e Component già pre-costruiti fornendo un’ambiente per costruirne dei propri.Di seguito vengono analizzati una serie di Active Server Object inclusi nell’ambiente Active Server Page:

I components sono una delle caratteristiche più importanti delle Active Server Page. Essi sono dll che vengono eseguiti nello spazio di indirizzi di un file asp e di IIS, ed offrono direttamente l’accesso al sistema operativo. Di seguito una serie di components di base forniti insieme alla Active Server Page:

 

 

 

I web browser inoltrano la richiesta al IIS usando il protocollo HTTP su cui si basa Internet. IIS risponde con un documento formattato in html. L’accesso al database è ottenuto attraverso un component di IIS che utilizza ODBC per accedere al db.

 

Bisogna tenere presente che ODBC lavora con una connessione diretta mentre Internet è una rete a pacchetti senza connessione (connection less): un browser si appoggia ad un web server il tempo necessario per scaricare un file, mentre Active Server rimane in contatto il tempo necessario per effettuare due compiti:

    1. connettersi al database e produrre un recordset;
    2. abilitare l’applicazione ad effettuare successive chiamate e ad accedere ai dati precedentemente ritrovati.

Le ADO sono costruite direttamente sulle OLE DB (Object Linking and Embedding applied to DataBase) che si basano sulle API del C++.

 

OLE DB accedono ai dati in maniera diretta e molto più rapidamente di DAO o RDO che invece passano attraverso il livello ODBC.

ADO usa un linguaggio di alto livello appoggiandosi direttamente sulle OLE DB che sono di più basso livello. In tal modo possiamo utilizzare ADO per accedere al database.

ADO sono solo una possibile implementazione dei ActiveX Component per accedere al database, usando un qualsiasi linguaggio possiamo costruire component personalizzati conformi alle specifiche del COM (Component Object Model).

ADO lavora meglio delle tecniche tradizionali che usano Data Acess Object (DAO) o Remote Data Object (RDO) per accedere al database specialemente in tutti quei casi dove non abbiamo una connessione orientata come in Internet. ADO può trattare efficacemente le transizioni verso il database usando appositi metodi BeginTrans, CommitTrans, Rollback Trans.

ADO è composto essenzialmente da tre oggetti primari: Connection Object, Command Object, RecordSet Object.

Connection Object è responsabile di raccogliere tutte le informazioni necessarie alla creazione del RecordSet; Command Object fornisce un secondo metodo per creare un RecordSet, ed è stato esplicitamente progettato per passare i parametri alle stored procedure; l RecordSet fornisce la struttura atta a contenere i dati e i metodi necessari per accedere ai dati presenti nel RecordSet, tutte le funzionalità dei cursori sono rappresentati nell’interfaccia del RecordSet.

 

 

 

 

Di seguito è riportato un esempio per costruire un RecordSet:

/* Creo un’istanza del component e lo assegno Obj */

Set Obj = Server.CreateObject("ADODB.Connection")

/* Apertura connessione al database */

Obj.Open ("nameOfIstanza")

/* Impostazione interrogazione */

SQLQuery = " SELECT * from Table "

/* Il risultato della selezione viene posto in un RecordSet, la cui struttura è determinata dall’impostazione della selezione */

Set ObjRst = Obj.Execute (SQLQuery)

 

I vantaggi di ADO risiedono nella abilità di riuscire a lavorare in ambienti senza stato, in tutti quei casi dove il server non ha memoria, non tiene traccia, delle richieste che ha servito e che sono pervenute dai vari client.

ADO permette di creare robuste applicazioni client/server verso database in modo che più persone possono accedere contemporaneamente alla stessa base dati nello stesso istante.

Microsoft mettera’ a punto dei servizi per rendere piu’ agevole il coordinamento delle transizioni. Poiche’ il servizio transazionale deve essere in grado di interagire con altri sistemi transazionali eterogenei, Microsoft ha realizzato un’architettura capace non solo di integrarsi perfettamente in Internet ma anche di interoperare con sistemi transazionali gia’ esistenti.


Sicurezza

IIS essendo parte integrante di Windows NT ne supporta le stesse piattaforme hardware ereditando tutti i sistemi di sicurezza e aggiungendone qualcuno di proprio.

I sistemi di sicurezza comprendono:

Microsoft Windows NT Server garantisce la sicurezza su piu’ livelli e include :

In figura n.8 i passi necessari per l’autenticazione dell’utente:


Testo: Internet Information Server
Versione: 1.1.2
Autori: Antonio Cavaliere, meo@archesis.it