Dispense_Fermeglia - Studenti Dipartimento di Ingegneria

annuncio pubblicitario
L’integrazione tra Internet e la
rete aziendale: soluzioni Intranet
e gestione dei Data Base
Maurizio Fermeglia
Riassunto delle lezioni e concetti principali
Sommario
Modulo 1: Evoluzione dei sistemi informativi .......................................................... 2
Obiettivi ................................................................................................................. 2
Riassunto ................................................................................................................ 2
Modulo 2: L’evoluzione delle architetture di rete ..................................................... 4
Obiettivi ................................................................................................................. 4
Riassunto ................................................................................................................ 4
Modulo 3: evoluzione del modo di progettare e scrivere le applicazioni: dalle
applicazioni monolitiche all’informatica distribuita .................................................. 5
Obiettivi ................................................................................................................. 5
Riassunto ................................................................................................................ 5
Modulo 4: il middleware ............................................................................................ 6
Obiettivi ................................................................................................................. 6
Riassunto ................................................................................................................ 6
Modulo 5: Fondamenti e modelli di data base ......................................................... 10
Obiettivi ............................................................................................................... 10
Riassunto .............................................................................................................. 10
Modulo 6: progettazione di un database relazionale................................................ 13
Obiettivi ............................................................................................................... 13
Riassunto .............................................................................................................. 13
Modulo 7: database access from web servers .......................................................... 15
Obiettivi ............................................................................................................... 15
Riassunto .............................................................................................................. 15
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
Modulo 1: Evoluzione dei sistemi informativi
Obiettivi
In questo modulo si mostrerà come i cambiamenti strutturali dei sistemi operativi
siano largamente influenzati dall’evoluzione del network e le cause che hanno
comportato ciò.
Riassunto
Il sistema operativo primordiale si basava, in gran parte, sull’hardware e l’utente non
doveva far altro che adeguarsi. In seguito si verifica l’opposto: il software diviene più
importante e, soprattutto, l’utente assume una posizione dominante in quanto, con le
sue conoscenze e le sue aspettative, è in grado di apportare diversi vantaggi. Si
diffonde, inoltre, la libertà dei dati, che permette di fare tutto su internet,
determinando così lo sviluppo del WEB. Parallelamente si modifica lo sviluppo dei
software applicativi, che deve avvenire in termini di Middleware.
Tale evoluzione è resa possibile dai minori costi dei PC e dei Client-Server, da una
maggiore disponibilità di software, da un miglioramento dei collegamenti sul
territorio. Certo non di poco conto per l’evoluzione dei sistemi informativi è il boom
di internet, la globalizzazione dei mercati e la diffusione della new-economy.
Determinante è anche l’aumento degli investimenti che si indirizzano soprattutto su
personal computers di dimensioni medie, su apparecchiature ed infrastrutture di rete,
su collegamenti con data-base relazionali sulla formazione del personale su strumenti
nuovi e, infine, sul middleware.
All’interno di uno scenario di tal genere non può che verificarsi un’evoluzione
architetturale dei sistemi informativi. Inizialmente vi era il Time-sharing,
caratterizzato da terminali main-frame e linee telefoniche a bassa velocità; poi il
Resource-sharing, cioè personal computer e rete locale a bassa velocità; il Clientserver dove vi sono elaboratori sia server che client , reti locali veloci e collegamenti
ad alta velocità (es. : D.B., sistema di posta elettronica e fax, ecc.); e, infine, si giunge
al Multitier approach in cui viene certo il Middleware distinguendo tra livello
applicativo, dati e presentazione (es. : ERP, e-commerce, ecc.).
Tale evoluzione è caratterizzata da diversi vantaggi, tra cui: miglioramento nel
rapporto tra prezzo e prestazione, elevata sicurezza e riservatezza, possibilità di
rapporti B2B (business 2 business).
In seguito a tale evoluzione, sulla base di dati empirici, è stato dimostrato che la
potenza di calcolo e la velocità di connessione sono aumentate e continueranno ad
aumentare in maniera esponenziale.
Da quanto sopra deriva che tutti gli strumenti del personal computer devono avere
compatibilità del 100% e, soprattutto, che gli investimenti periferici sono molto
importanti.
Attualmente, la grande rivoluzione nell’ambito dei sistemi informativi è caratterizzata
dalla tecnologia UMTS, provvista di una banda necessaria a mandare informazione
grafiche che, di certo, avrà uno sviluppo molto rilevante.
A questo punto è utile riportare alcune teorie elaborate agli albori dell’evoluzione
tecnologica che ha caratterizzato i sistemi informativi, ma che, ancor oggi, sono molto
valide; le quali si basano sul fatto che la rivoluzione dell’informatica è passata e
passerà attraverso lo sviluppo dei PC e delle tecnologie di rete:
Legge di Moore: ogni 18 mesi la potenza di elaborazione raddoppia a parità di costo;
2
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
Legge di Metcalfe: l’utilità di una nuova tecnologia è funzione del quadrato del
numero di potenziali utenti.
L’evoluzione e la diffusione delle tecnologie informatiche ha fatto sì che negli anni 90
sia stato possibile disporre di un pc connesso in rete su ogni scrivania. Tutto questo al
fine di condividere non solo file e stampanti, ma anche applicazioni fino a motori
SQL. Il livello raggiunto consente una semplice gestione delle informazioni attraverso
motori di ricerca come Altavista o Yahoo, per esempio. L’accesso stesso alle
informazioni è molto semplice ed indipendente dalla loro locazione fisica : basta
digitare un indirizzo Web (www.nomesito.com). Si tratta di informazioni di tipo
diverso (audio, video, etc.) integrate tra loro. A questo punto, però, il pc è visto non
tanto come strumento produttivo, quanto più come strumento di dialogo.
Negli anni 2000 l’informatica continua ad utilizzare le reti diventando così uno
strumento più pervasivo ed invasivo tanto da essere lo strumento principe per la
comunicazione e diffondersi sui sistemi embedded (auto-pc, wallet-pc, Web-tv, etc.).
In questo contesto assumono sempre maggiore importanza i sistemi di gestione della
conoscenza. A tutto questo si affianca il fatto che le aziende, dopo avere sistemato i
propri processi interni, sono pronte ad investire nei processi esterni. Si nota così un
cambiamento nell’economia anche solo osservando la capitalizzazione di mercato,
dove prima nella top ten non compariva alcuna azienda di software ed invece, ora,
molte hanno a che fare con il campo delle telecomunicazioni o basano la loro
conoscenza sul capitale intangibile (Oracle, Microsoft). Sullo sfondo si assiste al
passaggio dalla old economy alla new economy. Mentre la old economy si basa su
concetti come quello di segmentazione ed il suo valore orbita attorno al prodotto.
Nella new economy assumono maggiore importanza concetti come quello di
globalizzazione e di liberalizzazione, il valore è dato dalla conoscenza. Quindi si
passa da un’economia più stabile basata su asset fisici che non trae giovamento dai
progressi tecnologici ad un’economia che si basa su asset intangibili.
Il collaborative commerce tende a sostituire l’e-commerce, non ci sono più partners
precostituiti ma un’azienda deve essere pronta a dialogare con chiunque senza potersi
più chiudere informaticamente e operare sul mercato più ampio possibile. Sono,
quindi, necessari adattatori in grado di risolvere il problema dell’integrazione della
comunicazione dove i tempi di latenza dei flussi informativi devono essere di pochi
secondi.
Il sistema informativo di un’azienda deve consentire la comunicazione e la gestione
delle informazioni tanto al suo interno (tra settore e settore) quanto verso l’esterno
(partners, fornitori, clienti), in un’ottica di integrazione.
Se misurassimo il livello di integrazione in termini di ampiezza (dall'integrazione
all’interno di un dipartimento verso quella con partner sconosciuti) e in termini di
profondità (dalla semplice comunicazione di dati alla gestione in comune di processi),
scopriremmo che ad oggi il livello di integrazione è locale, o coinvolge al più i partner
conosciuti.
Il raggiungimento dell’integrazione globale tra aziende (cioè della combinazione max
ampiezza-max profondità) presuppone infatti l’ottimizzazione dell’integrazione tra
applicazioni. In questo senso i fattori cruciali sono due: la velocità e l’agilità delle
relazioni tra applicazioni.
Se dal primo punto di vista la situazione attuale appare soddisfacente (i tempi
necessari per svolgere numerosi processi aziendali interni e esterni si sono
sensibilmente ridotti), dal secondo punto di vista c’è ancora da lavorare.
E’ necessario, infatti, compiere la trasmigrazione dei sistemi informativi aziendali da
un’integrazione c.d. “a spaghetti” a una c.d. “a lasagne”.
3
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
La prima gestisce l’integrazione tra le applicazioni definendo i rapporti tra le relative
interfacce (gestione complessa e costosa per il crescente numero delle relazioni che
essa comporta al crescere delle applicazioni impiegate); la seconda è basata sulla
definizione di un unico sistema con cui tutte le applicazioni devono essere integrate e
che di conseguenza ne garantisce l’interoperabilità.
Ciò è possibile attraverso la definizione di una sorta di “piano regolatore”
(middleware) che detti regole comuni per lo sviluppo integrato delle applicazioni. In
tal modo si evita il problema della gestione dell’interfaccia tra innumerevoli
applicazioni (a spaghetti); infatti ogni nuova applicazione deve preoccuparsi
solamente di essere conforme al piano regolatore.
Come è ovvio laddove esista già un sistema informativo strutturato il passaggio da
un’architettura all’altra comporterà del tempo. Si tratta però di un passaggio
necessario per i “true” e-business, cioè per quelli che sono sopravvissuti al boom e al
successivo crollo delle aspettative su questo mercato. Data prova di solidità, infatti, il
loro processo di ottimizzazione non potrà prescindere dall’adesione a un sistema
integrato tra applicazioni, presupposto per l’appartenenza a un sistema integrato tra
aziende.
Aziende simili potranno infatti stare al passo con una realtà, quella del settore
tecnologico, estremamente dinamica. L’obbiettivo: fornire ciò di cui c’è bisogno in
tempi minimi e con modalità ottimali.
L’elevata frequenza di clock dello sviluppo tecnologico nell’era della comunicazione,
le grandi innovazioni tecnologiche ottenute dunque in tempi brevissimi (aumento
della capacità di calcolo, della velocità delle connessioni, del numero di utenti della
rete, dell’integrazione tra applicazioni, ecc.), il riconoscimento delle risorse IT come
variabile politica e economica strategica fondamentale, l’apertura alla concorrenza del
mercato delle telecomunicazioni, le disponibilità finanziarie investibili, lo stesso
atteggiamento innovativo di porsi verso i fatti consentono infine di fare qualche
previsione sui cambiamenti che tutto ciò porterà nella nostra vita quotidiana: non solo
l’uso massiccio di localizzatori, ma anche la larga diffusione di computer indossabili
sempre accesi e pronti alla comunicazione non è probabilmente molto lontana.
Modulo 2: L’evoluzione delle architetture di rete
Obiettivi
Il presente modulo si pone l’obiettivo di descrivere l’evoluzione nel tempo delle
architetture di rete: vedremo come dal primo modello di rete (time sharing), dove un
unico processo viene condiviso tra alcuni utenti (=terminalisti), si sia passati al
modello multitier, dove almeno tre processi interagiscono tra loro.
Riassunto
In ambiente informatico è possibile distinguere tre diversi livelli di comunicazione:
-fisico: tipologia del media utilizzato (es.:ISDN, Ethernet, ecc.);
-sintattico-sinottico: tipologia del linguaggio utilizzato (es.:TCP/IP);
-concettuale: tipologia del protocollo di comunicazione (es.:http).
TIME SHARING o Modello Primordiale
Il modello di time sharing è costituito da una macchina centrale (=main frame) a cui
sono collegati n terminali. La caratteristica peculiare del modello risiede
nell’accentramento di tutte le operazioni: le informazioni vengono gestite solo dalla
4
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
CPU centrale, non esistendo CPU periferiche, e suddivise tra gli n utenti secondo un
criterio temporale.
RESOURCE SHARING o Modello Classico
Dall’implementazione del Time Sharing nasce il resource Sharing: diverse unità
periferiche vengono collegate attraverso una piccola rete locale (LAN). Si parla di
relazione master-slave in termini di risorse: slave è il file server e master sono gli
utenti (=client), ciascuno dei quali dispone di una propria CPU.
MODELLO CLIENT – SERVER
Per alleggerire il lavoro del client viene implementato il modello client – server: in
questo contesto interagiscono due CPU (quella del client e quella del server)
attraverso uno standard di comunicazione (IPC=Inter Process Communication). Un
modello così strutturato prevede però una logica distribuita tra tutti i client.
MODELLO MULTI TIER
Questo tipo di architettura si basa sulla comunicazione tra processi di almeno tre
componenti: il Data Base, su cui opera il sistema di gestione; il Server Web, ove viene
collocata tutta la logica; i client.
Oltre alla distinzione architetturale di cui sopra, in ambiente di rete locale si può
ulteriormente distinguere tra il Modello Server dedicato, il modello Peer to Peer ed il
modello Misto per quanto concerne i ruoli che gli elaboratori ricoprono nella fornitura
dei servizi di rete..
Modulo 3: evoluzione del modo di progettare e scrivere le
applicazioni: dalle applicazioni monolitiche all’informatica
distribuita
Obiettivi
L’evoluzione delle reti informatiche condiziona profondamente la filosofia di
progettazione del software. Le applicazioni devono cioè adattarsi alla tecnologia e alle
macchine su cui vanno ad operare.
Riassunto
Le reti di tipo time-sharing, basate su un unico computer centrale (mainframe) al
quale si può accedere da diverse postazioni (terminali), non consentono l’utilizzo di
applicazioni distribuite. In questo modello si parla necessariamente di “applicazioni
monolitiche” residenti sul mainframe; ognuna di esse svolge tutte le operazioni di
gestione dei dati: archiviazione, modifica e visualizzazione.
La comparsa delle reti client-server, nelle quali le applicazioni o parti di esse possono
girare anche sui terminali (client), ha influenzato in maniera decisiva la filosofia di
progettazione del software imponendo nuove sfide. Ci si riferisce in particolare al
raggiungimento di efficacia/efficienza nello sfruttamento delle risorse di rete (server,
terminali client, periferiche) da parte di più applicazioni e all’integrazione e
comunicazione tra queste ultime, non sempre realizzate dalla medesima softwarehouse e concepite per il medesimo scopo.
Integrazione e snellimento delle applicazioni sono state le direttrici fondamentali del
processo di mutazione che ha interessato e interessa ancora oggi la progettazione del
software.
Nel caso dell’applicazione "monolitica" lo sviluppo del software era
onnicomprensivo. L’applicazione, lungi dal gestire soltanto l’interfaccia utente, era
costituita da numerosi componenti funzionali: le regole logiche (business rules), i
5
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
cursori, il motore di interrogazione database (query processor). La comunicazione
dell’applicazione con i database e gli altri processi software (inter-process
comunication) veniva garantita dalla presenza di interfacce proprietarie sviluppate dal
produttore al quale l’azienda si rivolgeva per il software. I difetti di tale struttura sono
evidenti: dipendenza economica da uno o pochi fornitori di software, difficoltà di
mantenimento del sistema elevata e scalabilità molto bassa. Si rischia poi la
proliferazione di interfacce non standard tra applicazioni e basi di dati.
Il modello sopra descritto viene progressivamente abbandonato rendendo più snella
l’applicazione e trasformando alcuni dei suoi componenti in oggetti indipendenti ed
esterni ad essa. Tale processo può beneficiare dell’affermazione di standard comuni di
esposizione e utilizzo delle fonti dati. Tra questi ricordiamo OLE DB (sviluppato da
Microsoft) e JDBC (relativo al mondo Java). Entrambi stabiliscono una serie di
formati e specifiche relativi ad "oggetti" fornitori di dati (data provider) e
consumatori di dati (data consumer). Lo standard di Microsoft, ad esempio, si basa su
un software unitario di accesso ai dati (ADO, Active X Data Object), integrato nei
sistemi operativi Windows a partire dalla versione Windows 95. Tale software si pone
tra l'applicazione e gli oggetti esposti OLE DB e rende possibile agire sugli oggetti
stessi, qualunque tipo di dato essi contengano.
In questa prospettiva è possibile alleggerire notevolmente l'applicazione, ad esempio
creando un query processor unico esterno ad essa e utilizzabile da altre applicazioni.
Tale elemento si configurerà come oggetto OLE DB, al contempo data consumer e
data provider. Quando anche le regole logiche vengono "portate all’esterno"
dell’applicazione come oggetti standard, si raggiunge un modello limite in cui
l'applicazione non svolge altro che la funzione di interfaccia utente (GUI).
Allo stato attuale il passaggio dal modello "monolitico" al modello "distribuito" non si
può dire compiuto. Siamo in molti casi giunti ad avere una struttura a tre livelli (three
tier): interfaccia grafica (coincidente con il browser HTML se l'applicazione è resa
visibile da Internet), regole logiche e livello di accesso ai dati.
In futuro probabilmente si diffonderanno software completamente distribuiti, costituiti
da un oggetto data consumer in grado di interfacciarsi con una gamma molto ampia di
oggetti esposti (i quali potranno avere di volta in volta ruoli di data consumer e data
provider).
Modulo 4: il middleware
Obiettivi
Definire il Middleware e descrivere le sue componenti principali. Esporre a grandi
linee le due principali implementazioni di MW con i rispettivi pro e contro. Fornire
una panoramica generale sulla terminologia e sull’architettura.
Riassunto
Benché originariamente si sia evoluto come supporto esclusivo per il modello di
accesso ai database, l’attuale contesto dell’Information Technology, imperniato su
architetture “three-tier”, individua nel Middleware l’elemento chiave per la
risoluzione dei problemi di integrabilità e di scalabilità delle applicazioni.
Nei modelli “three-tier” il client diviene meno pesante da gestire per l’utente, grazie
anche all’implementazione di interfaccia grafiche di intuitivo utilizzo. Ciò comporta,
altresì, che le problematiche logiche di gestione del sistema vengono spostate
sull’application server. La partizione delle differenti applicazioni distribuite deve
6
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
realizzarsi mediante la costruzione di infrastrutture composte da oggetti in grado di
comunicare ed usare i servizi messi a disposizione da altri oggetti. Ed inoltre, la
comunicazione deve avvenire in modo trasparente sia fra oggetti appartenenti allo
stesso spazio di indirizzamento, che a spazi di indirizzamento diverso e perfino tra
macchine diverse.
A tutto ciò assolve il Middleware, che quindi si pone come quella parte di software
che si distribuisce sulla rete interponendosi in generale tra l’utente e i dati, ed in
particolare tra applicazione ed applicazione, mantenendo uniti tutti i componenti di un
sistema distribuito.
Il middleware permette alle varie applicazioni di integrarsi e comunicare attraverso
interfacce standard potendo così disaccoppiare ogni applicazione dai più bassi livelli
di comunicazione, i quali includono i differenti sistemi operativi, le piattaforme
hardware e i protocolli di comunicazione.
Condizione necessaria per lo sviluppo di un sistema middleware è la disponibilità di
un metodo di accesso universale ai dati.
XML (Extended Mark-up Language), l’evoluzione dell’HTML, è lo strumento
standard a livello mondiale che il middleware usa per accedere e trasferire i dati da
una locazione ad un’altra attraverso il protocollo http.
XML permette di definire i tag secondo le preferenze del programmatore e tutto ciò
che si trova tra <tag> e </tag> identifica il determinato oggetto o la determinata
informazione. Segue le stesse regole sintattiche dell’HTML con tre differenze
fondamentali: il tag set è illimitato, ma ogni tag richiede una sua chiusura; i tags non
si possono sovrapporre; i tag XML non descrivono GUI, non c’è livello di
presentazione di default (XML usa solo tag che identificano i dati).
Esistono due implementazioni commerciali di middleware: una nell’ambito Java e una
nell’ambito Microsoft. Non si può fare un confronto assoluto tra le due perché l’esito
dipende dall’istante in cui si analizza la situazione, dato che la realizzazione di release
successive dei due concorrenti si susseguono superandosi di volta in volta.
Considerando la situazione di alcuni mesi fa i sistemi middleware erano Java e MS
DNA (Distibuited Network Application).
In Java l’interoperabilità del codice viene data dalla Java Virtual Machine (JVM) che
è una macchina virtuale che viene mandata in esecuzione nei browsers che supportano
Java. Quando un’applicazione Java viene scaricata su un browser esso riceve un
codice standard denominato bytecode (di tipo precompilato), compatibile per
qualunque piattaforma. L’interpretazione finale del bytecode viene lasciata alla JVM,
che farà da interfaccia tra l’applicazione precompilata ed il particolare sistema
operativo dell’hardaware sul quale risiede. In questo modo ci si può rendere
indipendenti dalla piattaforma hardware usata (infatti non serve più compilare il
codice delle applicazioni per ogni piattaforma, ma basterà precompilarla una volta per
tutte, visto che ad adattare il codice precompilato alla macchina particolare ci penserà
la JVM).
Microsoft fino ad alcuni anni fa rispondeva a Java con una interoperabilità fornita dal
browser. Tutto lo sviluppo veniva basato su oggetti win32, (cioè compilati
completamente) poiché Microsoft non accettava il sacrificio di prestazioni dovute alla
presenza di una macchina virtuale per utenti che comunque avrebbero usato sistemi
Windows. Con questo sistema gli oggetti già compilati chiamati COM o COM+
(Component Object Model) venivano inviati direttamente al browser. Nel caso
l’ambiente fosse stato Windows tale situazione veniva gestita tranquillamente con il
7
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
browser che mandava in esecuzione oggetti nativi dell’ambiente. Nel caso di altri
ambienti il browser, invece, doveva prendere l’oggetto binario compilato per
Microsoft e rimapparlo sulle chiamate scritte per il sistema operativo : tale operazione
non ha mai funzionato pienamente.
Risulta evidente come le due diverse logiche, appena esposte, siano figlie delle
diverse business aree generalmente servite da Sun e Microsoft : la prima privilegia
l’elemento hardware, la seconda quello software.
Per entrambe le piattaforme esistono dei linguaggi di scripting lato server denominati
JSP per Java e ASP per Microsoft. Un esempio pratico dell’uso di tali script si
riscontra nel caso in cui si voglia accedere a dei dati che si trovano su un server. Dal
client si interroga una pagina che deve accedere ai dati presenti sul server , il codice di
accesso ai dati viene codificato sul server tramite il linguaggio di scripting scelto. Non
appena la pagina viene richiamata essa manda in esecuzione lo script che preleva i
dati dal database server, li compatta in un certo modo e li rispedisce indietro al client.
Dal browser non si vede dunque la logica di accesso, ma si riceve solo il risultato
della query. In questo caso tutta la logica risiede sul browser: il formato dei dati che
viaggiano è semplice HTML.
Il vantaggio più importante di Java è dato dall’indipendenza dalla piattaforma ed in
effetti i System Integrator che forniscono prodotti su piattaforma multipla l’hanno
scelto principalmente per questo. Il supporto di terze parti è globale perché tutti
supportano Java tranne Microsoft, ed inoltre si riscontrano una crescente popolarità e
grandi investimenti sulle tecnologie. Il contro di rilievo non è tanto rappresentato
dall’immaturità della piattaforma, quanto dal fatto che lo standard si potrebbe
frammentare in futuro. Alcuni episodi hanno già dato forza a tale preoccupazione.
Tempo fa Sun richiese a W3C il riconoscimento di Java come standard. Questo ripose
in maniera positiva ponendo però la condizione che Sun pubblicasse le specifiche e
soprattutto che non pretendesse di usare il nome Java in modo proprietario. Sun
rinunciò a registrare Java come uno standard de iure anche se tuttora lo rimane de
facto, in quanto supportato da un accordo tra IBM, Sun, Oracle ed altri al fine di usare
specifiche comuni. Non è comunque certo che tali accordi verranno rispettati in
futuro: già ora IBM e non solo sta sviluppando delle specifiche Java proprietarie.
Probabilmente vi sarà una tendenza alla diversificazione arrivando alle versioni Java
di Oracle, IBM, ecc. (caso analogo al CORBA).
L’applicazione Java tipica è il Java Ecommerce B2B di fascia alta.
MS ha come pro la facilità d’uso, il fatto che si può raggiungere la produttività in
minor tempo, un supporto terze parti abbastanza elevato ed il contratto che garantisce
assistenza. I contro sono rappresentati dalla scalabilità che è garantita solo dai nuovi
sistemi operativi MS e dalla difficoltà nella transazione di generazione. Ciò decreta la
scarsa validità di una piattaforma di e-commerce in ambiente NT. Sarebbe, dunque,
opportuno adottare Windows 2000, ma il passaggio di versione può rappresentare un
problema in molte aziende.
Altro punto debole del MS DNA è costituito dall’interoperabilità su back end
(mainframe…): essa può venire risolta solo con Biztalk ed HIS che però operano
esclusivamente su piattaforma 2K.
Il punto di forza del sistema Microsoft è il suo Total Cost of Ownership:
l’applicazione costa meno ed è più facile trovare sviluppatori. In ogni caso la scarsa
scalabilità lo fa risultare buono solo per piccole e medie installazioni
L’elementare descrizione degli elementi fondamentali di un Middleware, che il
modulo si propone di offrire, viene operata analizzando Windows DNA
8
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
Il modello di sviluppo di applicazioni enterprise di Microsoft si articola su tre tier
(Presentazione, Logica del Business e Dati) correlati a Servizi di Sistema e a Tools.
Il Presentation tier può essere di diverso spessore. Ovvero può essere costituito da un
semplice browser (thin client) o essere molto ricco di logica (rich client). In
quest’ultimo caso esso può accettare download di software, applet, javabeans, active x
od altro, ed addirittura un eseguibile.
Al minimo livello c’è l’HTML, mentre all’estremo c’è il Win API 32 che è un
eseguibile che non gira nel browser. In mezzo ci sono lo SCRIPTING (lato client in
questo caso) che viene interpretato dal browser, i Components che sono oggetti Active
X o COM compilati in versione win32 e salvati sul sistema operativo e il DHTML
che è un modello di documenti ad oggetti avanzato che fornisce maggiore interattività
(dal lato client) e controllo. E’ costituito da librerie dll all’interno di Internet Explorer
(a volte anche su Netscape).
A livello di business logic Win2000 visto come server di applicazioni espone i
servizi: Security ( per la gestione delle password e degli accessi), Directory, Servizio (
fondamentalmente un web server sul quale possono girare script lato server in asp o
altro che volendo possono richiamare oggetti COM che operano nello spazio di
memoria di processo del server.
Vi è inoltre un Transaction Server che gestisce le transazioni (tipicamente bancarie).
Dopo che il sistema ha gestito ciascuna transazione tramite il Transaction Server esso
le accoda perché vengano gestite dal servizio di message queing; esso gestisce
l’asincronocità e invia un messaggio positivo al transaction server. Il transdaction
server chiude effettivamente la transazione quando ha risposte positive da tutti i
message queing. Si può dunque realizzare un sistema a componenti costituito ad
esempio da un Transaction Server ed un certo numero di Message Queing che
gestiscono la comunicazione verso partner di business.
L’accesso ai dati si effettua attraverso ADO (ActiveX Data Objects) che è Accesso
Programmatico Semplificato o attraverso OLDB e si usa XML per la rappresentazione
di dati basata su uno standard.
Tutti i sistemi di middleware hanno anche servizi di sistema (sistema di sicurezza, di
gestione, comunicazione, ecc.).
Negli ultimi mesi Microsoft ha sviluppato DNA eliminando la tecnologia proprietaria
ed introducendo il Common Language Runtime, analogo alla Java Virtual Machine,
che riceve in ingresso codice di livello intermedio e lo interpreta mandandolo in
esecuzione. Il CLR è progettato fin dall’inizio per offrire servizi web, da’ supporto
nativo ad XML e presenta all’interno dei web services. Il nuovo sistema si chiama
.Net (Dot Net). Particolarità rilevante: non è più necessario registrare i componenti.
E’ possibile scrivere un'applicazione .Net in qualsiasi linguaggio di programmazione,
a condizione che esista il compilatore che traduca il codice sorgente in intermediate
Language.
Le Rich class libraries (.net framework) costituiscono una libreria di base per
ADO.Net necessaria per accedere ai database
I windows forms servono per le applicazioni win32 che non necessariamente
debbano girare all’interno di un browser.
Per quanto riguarda le web application il linguaggio di scripting all’interno della
DNA diventa ASP.NET.
Riassumendo i componenti che un middleware dovrebbe avere sono: un sistema
operativo, un enviroment di run time, una libreria standard all’interno della quale ci
sono dei servizi di grafic user interface, Transaction Server, web scripting lato server,
9
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
10
accesso ai dati , ecc esposti per applicazioni via browser, servizi web , applicazioni
locali ed altro.
Modulo 5: Fondamenti e modelli di data base
Obiettivi
Definire un data base system e le sue componenti principali: il data base e il DBMS
(Data Base Management System). Chiarire il concetto di indipendenza fisica del dato
dall’applicazione che lo utilizza. Elencare i sistemi di Data Base.
Riassunto
Il sistema informatico può essere definito come la parte automatizzata del sistema
informativo, che a sua volta fa parte del sistema organizzativo del sistema azienda. Un
sistema informatico non può prescindere da quello informativo.
Dal momento che le informazioni si manifestano in molteplici forme, nelle attività
standardizzate nelle quali operano sistemi informativi complessi è stato necessario
introdurre forme di codifica che permettessero di utilizzarle in un modo efficiente ed
efficace (il codice fiscale ne è un esempio per quanto riguarda le informazioni
anagrafiche).
Nei sistemi informatici, in particolare all’interno dei Data Base, le informazioni sono
rappresentate in maniera essenziale attraverso il dato, elemento atomico
dell’informazione e della conoscenza e soprattutto risorsa strategica, perché stabile nel
tempo. È il data base quindi che, all’interno del sistema informatico, assolve la
funzione di raccogliere tutti i dati.
Una prima definizione di Data Base può essere quella di immaginarlo come una
collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o
più applicazioni di un’organizzazione.
Da un punto di vista più tecnico-specifico il Data Base è definito come una collezione
di dati gestita da un DBMS (Data Base Management System). Appare
immediatamente evidente quali siano le due componenti fondamentali: i DATI e il
Sistema che deve gestirli.
Il DBMS è un software in grado di gestire ed organizzare un’insieme di dati che siano
grandi, persistenti e condivisi garantendo, allo stesso tempo, affidabilità, privatezza,
efficienza ed efficacia.
I dati devono essere grandi, cioè le dimensioni del DB devono essere maggiori della
memoria centrale del sistema di calcolo utilizzato.
I dati devono essere persistenti, quindi la durata di vita del dato non deve dipendere
dalla sua frequenza d’uso.
I dati devono poter essere condivisi da più applicazioni e da più utenti. Il data
base deve essere una risorsa integrata e condivisa tra i diversi settori aziendali. Sono
proprio l’integrazione e la condivisione che permettono di ridurre la ridondanza dei
dati e l’inconsistenza, cioè l’incoerenza, fra gli stessi.
Poiché la condivisione non è mai completa (o comunque non opportuna), i DBMS
prevedono meccanismi di definizione della privatezza dei dati e di limitazioni
all’accesso tramite autorizzazioni.
L’efficienza del sistema è sicuramente garantita da bassi tempi di risposta, ma
soprattutto è data dal risultato della qualità del DBMS e delle applicazioni che lo
utilizzano.
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
11
La gestione di insiemi di dati grandi e persistenti è possibile anche attraverso sistemi
più semplici. Un primo modo di pensare ad un DBMS è quello di pensare agli ordinari
file system dei sistemi operativi che permettono di realizzare anche rudimentali forme
di condivisione: i file system permettono accessi contemporanei in lettura ed esclusivi
in scrittura.
I DBMS estendono le funzionalità dei file system, fornendo più servizi in maniera
integrata ed efficacie. Nei DBMS c’è maggiore flessibilità: si può accedere
contemporaneamente a record diversi di uno stesso file o addirittura allo stesso record
(in lettura).
Nella gestione dei file, basata su File System, ogni programma contiene al suo interno
la logica di accesso ai dati (sono le istruzioni di dimensione e di campo) che devono
essere messe in testa a tutti i programmi che fanno la open su quel file di dati.
In un sistema come quello descritto, dove la logica di accesso è contenuta
nell’applicazione in un codice (scritto in linguaggio di programmazione, spesso in
COBOL), gli svantaggi nascono laddove sia necessario apportare modifiche alla
struttura della base di dati o effettuare un aggiornamento degli stessi. A tale proposito
l’anno 2000 è stato significativo per l’implementazione di DB dove la logica
d’accesso ai dati non fosse mescolata con l’applicazione che li utilizzava.
Ciò a cui bisogna puntare è l’INDIPENDENZA fisica DEL DATO. Le applicazioni
non fanno riferimento direttamente alla struttura fisica dei dati, che potrà essere
modificata senza la necessità di aggiornare i programmi.
L’indipendenza si ottiene attraverso il cosiddetto modello dei dati che è un insieme di
costrutti utilizzati per organizzare i dati di interesse ed eventualmente per descriverne
la dinamica. Esistono quindi dei meccanismi di strutturazione (o costruttori di tipo):
come nei linguaggi di programmazione esistono meccanismi che permettono di
definire nuovi tipi, così ogni modello dei dati prevede alcuni costruttori; ad esempio,
il modello relazionale prevede il costruttore relazione, che permette di definire insiemi
di record omogenei.
Vediamo ora di definire meglio cos’è un DBS.
Un DBS (Data Base System) è un sistema computerizzato di gestione di records,
deposito di informazioni sul quale uno o più utenti sono in grado di aggiungere,
estrarre, modificare, cancellare dati e file. Esso è composto da tabelle (records e
campi) e da un linguaggio standard che si chiama SQL (Structure Query Language).
Questo linguaggio è strutturato in una serie di istruzioni caratterizzate da una certa
sintassi molto più semplice rispetto al linguaggio di programmazione COBOL.
Un DB System ha le seguenti componenti:






SCHEMA: è la struttura (quante tabelle, quanti campi);
ISTANZA: è il contenuto;
DATI: sono organizzati in record e campi, disponibili su piattaforme diverse,
possono essere mono-utente o multi-utente, devono essere integrati e
condivisi;
HARDWARE
SOFTWARE
o DBMS che si interpone tra l’hardware e l’utente ed è in grado di
interpretare le stringhe SQL; queste istruzioni viaggiano secondo degli
standard di comunicazioni (TCP/IP, OLE DB, ecc…)
o UTILITY;
UTENTI
o Finali; che utilizzano del sistema tramite applicazioni,
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
12
o Occasionali; i progettisti del DB e i programmatori che, normalmente,
sono figure esterne all’organizzazione aziendale, o gli
o amministratori del DB che sono figure professionali interne.
Quindi il Data Base è una collezione di dati persistenti che è usata dal sistema di una
certa azienda (organizzazione tecnica, commerciale, scientifica).
I principali vantaggi d’uso di un data base, nel caso della mono-utenza, sono
rappresentati da informazioni più compatte, da un’estrazione più veloce, da una
manutenzione più agile e dalla possibilità di eseguire calcoli. In caso di multi-utenza,
ai precedenti vantaggi si aggiungono: il controllo centralizzato, la consistenza,
l’integrità dei dati e la sicurezza.
In generale, al livello dell’organizzazione che lo utilizza, con un DBMS si possono
ottenere i seguenti vantaggi:
 I dati sono considerati come un risorsa comune;
 La base di dati fornisce un modello unificato del business;
 Permette un controllo centralizzato dei dati consentendo standardizzazione
ed economie di scala;
 Riduzione di ridondanze ed inconsistenze;
 Condivisione e integrità dei dati;
 Sicurezza.
D’altra parte implementare un DBMS comporta elevati costi sia per l’investimento
iniziale che per la gestione della complessità del sistema.
Ad ogni modo, il vero grande vantaggio è dato dall’indipendenza fisica del dato dalle
applicazioni che lo utilizzano.
L’architettura Standard (ANSI/SPARC) a tre livelli per DBMS può essere interpretata
come una rappresentazione di tale enunciato.
L’architettura prevede l’inserimento di tre livelli (=schemi) che si interpongono tra
l’utente che utilizza l’applicazione ed il DB.
Il sistema è composto da n applicazioni che utilizzano i dati contenuti nel data base.
L’applicazione per funzionare deve arrivare al dato, ma per evitare una dipendenza
fisica tra la prima e il secondo vengono introdotti tre schemi:
 Uno schema interno, che ha il compito di mascherare i dettagli di scrittura su
disco, in pratica si prende cura di implementare il DB sul sistema operativo e
su una macchina predefinita;
 Uno schema logico, che rappresenta la struttura secondo la quale i dati sono
organizzati, definisce, quindi, quali sono le entità e quali sono i campi.
 n schemi esterni, che, per mezzo di strutture fisiche di memorizzazione create
ad hoc per l’applicazione che le utilizzano (nei DB relazionali si chiamano
Viste o View), sono una serie di proiezioni dello schema logico. In altre
parole, si tratta di un’esposizione del dato all’esterno; le viste non contengono
dati, ma puntatori a dati fisici.
Quest’architettura rende il sistema espandibile: qualora si rendesse necessario
modificare un’applicazione, sarà sufficiente modificare le viste, su cui essa poggia, e
lo schema logico, senza correre il rischio che la altre applicazioni ne risentano.
Sistemi di basi di dati: I sistemi di basi di dati sono quattro:
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base




13
file system: dove la logica di accesso ai dati è contenuta all’interno
dell’applicazione;
modello gerarchico: caratterizzato da una struttura gerarchica dei dati del tipo
uno a molti. L’insieme dei dati è strutturato ad albero e tra i dati vengono
stabilite a priori delle relazioni a puntatore fisico del tipo padre-figlio;
modello reticolare (network): nasce da un’implementazione del modello
gerarchico, il cui limite era quello di non poter gestire relazioni molti a molti:
in questo sistema il record partecipa a relazioni padre-figlio multiple. Il
programmatore può navigare nel data base dando anche le direzioni di
movimento. Il limite è rappresentato da una notevole rigidezza, dovuta al fatto
che le relazioni sono definite a priori;
modello relazionale: che sarà oggetto del prossimo modulo.
Modulo 6: progettazione di un database relazionale
Obiettivi
Individuazione delle regole fondamentali per la costruzione di un database
relazionale.
Riassunto
La necessità di rappresentare un insieme di dati attraverso un database relazionale
(DBR) implica un attento sforzo progettuale. Al progettista si chiede di interpretare
una determinata realtà (l’anagrafe di un ente locale, la gestione di un magazzino ecc.)
specificando e progettando le tabelle che andranno a formare il DBR, la loro struttura
(i campi che le compongono) e le relazioni che si instaurano tra di esse. Tali scelte
progettuali guideranno l’intero sviluppo del DBR, dalla fase di modellizzazione fino
all’implementazione pratica.
Un DBR è formato da tabelle e relazioni tra di esse. Ciascuna tabella deve
rappresentare un solo elemento del sistema che si cerca di descrivere, ovvero una sola
entità (sia essa oggetto o evento).
Ciascuna riga della tabella (record) dovrà essere unica, ovvero riferita ad un
oggetto/evento distinto e univocamente identificabile. La garanzia di questa univocità
è data dalla scelta di una chiave primaria (primary key, PK): un campo della tabella
viene cioè dedicato all’identificazione univoca della riga. Una tabella può avere una
sola chiave primaria.
Le chiavi primarie si suddividono in semplici (formate da un unico campo) e
composte (formate da due o più campi). L’utilizzo di PK composte è subordinato
all’effettiva necessità del progettista di legare due o più campi della stessa riga per
consentirne un’identificazione univoca.
Le caratteristiche ideali che le chiavi primarie dovrebbero presentare sono:
minimalità, stabilità e semplicità; per le PK si raccomanda, ove possibile, l’uso di
variabili integer, long integer o counter.
Le chiavi sono fondamentali nella creazione delle relazioni tra tabelle. Queste si
stabiliscono attraverso la specificazione all’interno di una tabella di un campo chiave
esterna (foreign key, FK) che verrà posto in relazione al campo-chiave primaria di
un’altra tabella. Mettendo in relazione la PK di una tabella con la relativa FK di
un’altra si creano le relazioni tra tabelle; a tal fine chiave interna e chiave foresta
devono appartenere allo stesso dominio.
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
14
Ecco un piccolo esempio: supponiamo di voler costruire un DBR degli attrezzi della
nostra rimessa costituito da due sole tabelle, “attrezzi acquistati” e “produttori
attrezzi”. Un produttore produce più tipi di attrezzi ma un attrezzo può essere prodotto
da un solo produttore. Onde evitare la ridondanza informativa e semplificare
l’intervento sui dati sarà opportuno inserire nella tabella “attrezzi acquistati” un
campo “id produttore” (FK) da mettere in relazione con il campo chiave primaria
della tabella “produttori attrezzi” (la quale collega univocamente l’identificatore
numerico del produttore al suo nome). E’ bene sottolineare a questo proposito che la
relazione tra le due chiavi non viene costituita attraverso un puntatore fisico. PK e FK
devono inoltre avere lo stesso dominio.
Le relazioni, in base alla loro complessità, si possono classificare in: relazioni uno a
uno, relazioni uno a molti e relazioni molti a molti.
La base di dati deve essere organizzata in modo efficace ed efficiente. Per raggiungere
questo obiettivo si applica un processo che viene definito “normalizzazione”. Si tratta
di una progressione lineare di interventi che conducono gradualmente
all’ottimizzazione del DBR. Naturalmente prima di passare alla normalizzazione
devono essere verificati i requisiti di base del DBR: le tabelle devono descrivere entità
singole e le righe devono essere uniche. Verificato che ogni tabella descriva singole
entità e che sia rispettata la relazionalità del DB attraverso l’assegnazione di un PK, si
può iniziare il processo di normalizzazione.
Le forme che il DBR assume nel processo di normalizzazione sono tre.
 La prima forma normale (1NF) implica che tutte le colonne del DBR debbano
essere atomiche. Per ogni colonna è necessario cioè avere un solo tipo di
valore. Non ci devono inoltre essere unità ripetitive.
 Seconda Forma Normale: Una tabella è detta in seconda forma normale (2NF)
se risponde ai criteri della prima forma normale e se ciascuna colonna dipende
(in senso stretto) dalla chiave primaria. I dati nelle tabelle devono essere
relativi ad una sola entità, l’entità descritta dalla primary key. Per raggiungere
la seconda forma normale si procede alla cosiddetta decomposizione,
spezzando il DBR in tabelle che descrivano entità separate.
 Terza Forma Normale: Una tabella è detta in terza forma normale (3NF), se è
in seconda forma normale e se tutte le colonne sono indipendenti tra loro. E‘
necessario ad esempio eliminare le colonne “calcolate” e cercare di utilizzare
le tabelle di lookup, le quali rappresentano un’ulteriore scissione dei gruppi di
dati in componenti elementari.
In alcuni casi può rendersi necessaria l’operazione di denormalizzazione del database.
È un’ operazione che prevede la rinuncia alla terza (generalmente) forma normale e
talvolta anche alla seconda. Questo può succedere per volontà del committente oppure
quando si deve risolvere un problema di relazione “molti a molti” ricorrendo ad una
tabella di sponda per la quale al chiave primaria risulta essere multipla. Non si ricorre
alla denormalizzazione per ragioni banali ed è sempre utile farlo in maniera
consapevole, soprattutto per quanto riguarda le prestazioni del prodotto finale.
Nella costruzione di un database sono fondamentali le regole di integrità generali,
indicando quelle regole su cui si basa la scelta delle primary keys in ogni tabella e
quelle regole di integrità referenziale che determinano le relazioni tra tabelle. Vi sono
poi anche regole specifiche del database: le business rules . Si tratta di regole di
interità che non coinvolgono campi chiave (es: accetto l’ordine del cliente se ha già
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
15
effettuato il pagamento) e basate sull’uguaglianza di valori, tipiche di database
relazionali.
La progettazione di un database può essere inizialmente fatta su carta sin dal momento
in cui si analizzano, insieme al committente, gli obbiettivi della sua realizzazione. È
opportuna la costruzione di bozze dei form di data entry e delle tabelle. Infatti, la
struttura del database deve necessariamente fare riferimento a quello che l’utente
vuole vedere. Si farà riferimento a report esistenti ed in base ai nuovi report verranno
create le tabelle. A questo punto è utile inserire dati reali per capire meglio i domini
dei campi. Ancora su carta, si può iniziare la fase di normalizzazione e di
identificazione delle chiavi. Si stabiliscono i tipi di relazioni, implementando magari
tabelle di sponda per la gestione di relazioni “molti a molti”. Quindi si verifica che
siano soddisfatte le forme normali e si passa ad un’eventuale denormalizzazione dove
ciò sia necessario. Tutto quanto visto fin’ora viene trasferito in tabelle e relazioni su
Access consentendo la creazione di queries, forms e reports, ottenendo un prototipo
che può esere mostrato al cliente. Quindi si torna al progetto aggiungendo le business
rules e facendo le modifiche finali a forms e reports prima del test e della consegna
finale.
Non è ancora stata ottenuta un’applicazione multiutenza, per ottenerla è necessario
effettuare un’operazione di porting del database sotto motore SQL nella direzione di
un’architettura più complessa che prevede un database server gestito da un DBMS che
separi la logica dal front end, l’unica parte che viene lasciata sul client. Allora si
procede alla separazione del prototipo in due file: uno contenente i dati e l’altro
contenente il front end. I due sono collegati attraverso le ink tables. Attraverso
opportuni strumenti di porting i dati sono trasferiti sotto un motore impostando i
driver ODBC/OLEdb che permettono di collegare il front end di Access al motore
mantenendo la struttura creata in partenza. Si implementano i sistemi di sicurezza e
tutte le caratteristiche del motore. Si fa una verifica dell’utilizzabilità del database via
ODBC/OLEdb e quindi si può passare allo sviluppo del front end.
Modulo 7: database access from web servers
Obiettivi
Saper applicare le conoscenze ottenute in merito alla realizzazione di database in un
ambiente multitier focalizzando l’attenzione sui tre elementi: Browser, Logica, Dati.
Illustrare operativamente le modalità di accesso da parte del browser ai dati residenti
su un database remoto, attraverso uno strato di logica scritta sul web server.
Riassunto
Esistono diverse tecnologie per sviluppare applicazioni lato server che consentono lo
scambio di informazioni tra database e browser. Il primo metodo che è stato utilizzato
è quello che ricorreva a una Common Gateway Interface (CGI): presso il web server
viene installato un gateway comune per tutti i siti che risiedono su quel server. Il web
server lancia le applicazioni direttamente nell’URL: la stringa di attivazione nell’URL
passa i parametri all’applicazione, che interroga il database e restituisce i risultati al
browser.
La tecnologia CGI presenta notevoli problemi:
 Gira in un processo distinto dal web server; ogni istanza gira in un processo
diverso, con una conseguente moltiplicazione dei processi al crescere del
numero di utenti;
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base

16
L’applicazione può essere scritta solo con linguaggi complessi come ad
esempio C, C++, Perl, concedendo quindi una scarsa flessibilità nello
sviluppo.
Di più recente implementazione è la tecnologia basata su ISAPI (Internet Server
Application Program Interface): sono interfacce di programmazione specifiche per
programmare in ambiente web. Il servizio è integrato a livello di kernel del sistema
operativo, garantendo un maggior controllo e una maggiore velocità. L’applicazione
gira nello stesso spazio di memoria del web server. Anche in questo caso non è però
previsto un ambiente di scripting per lo sviluppo delle applicazioni, che devono essere
scritte in C o C++. Netscape ha sviluppato l’ambiente NSAPI, del tutto simile
all’ISAPI.
La soluzione Microsoft è rappresentata dall’IIS (Internet Information Server), che gira
su Windows 2000 Server (che garantisce i servizi di trasporto,sicurezza e gestione);
sopra c’è uno strato di API che l’utente non può vedere.
Per consentire la comunicazione tra le applicazioni e le ISAPI, si interpone uno strato
di software di gestione semplice (tranne nel caso di contenuto statico di tipo HTML,
che non abbisogna di API):
 Se si tratta di un database, attraverso lo standard ODBC poggerà su un
Database Connector che rimapperà le chiamate al filtro ISAPI;
 Nel caso di un server di posta, la stessa cosa avverrà con l’interposizione di un
web connector;
 Nel caso di applicazioni Legacy, bisognerà costruire estensioni custom dei
filtri ISAPI, specifiche per quelle applicazioni.
Il meccanismo di funzionamento è il seguente: dal lato utente il browser invia una
stringa in protocollo http al server web che lancia un programma (scritto in CGI,
ISAPI, o altro) nominato nell’URL; esso tenendo conto dei parametri che gli vengono
passati manda le informazioni a un API (ODBC, Oracle OCI, ecc.). Quest’ultimo usa i
dati passati per creare una stringa SQL da inviare al database il quale restituisce dei
dati. Questi vengono ripresi dal programma (ISAPI,CGI, ecc) che li unisce al
contenuto HTML in modo che il web server possa restituirli in formato semplice
all’utente.
In questo caso il codice HTML risulta così inglobato nel codice C, C++ o Perl
rendendo l’editing grafico più difficile in quanto anche una leggera modifica
comporta conoscenze di programmazione non proprio banali.
Un lungo dibattito è sorto dunque dal dilemma tra l’adozione della soluzione che vede
l’aggiunta di html al codice o la codifica in html.
Si è pensato di proporre un ibrido tra le due soluzioni facendo in modo che il
programma scritto ancora in C, C++ o Perl potesse accedere ad un template esterno
scritto in html passandogli i parametri e potesse così presentare le informazioni
richieste sulla base di tale modello. Ciò implicava comunque problemi legati alla
maggiore complessità di gestione dei collegamenti tra i documenti.
Sviluppi più recenti si rifanno al middleware e quindi alla tecnologia Java, MS DNA e
.NET.
In MS DNA si utilizza Active Server Page, uno scripting lato server. Il codice viene
sintetizzato in pochi elementi: un file di testo, una stringa di estrazione del dato, il
nome del server, e del codice html che è necessario per dare un formato alla
presentazione dell’informazione; per accedere ai dati viene usato OLEdb o ODBC.
In ambiente Java cambiano sostanzialmente solo i nomi, ma le tecnologie sono simili:
JSP per lo scripting, EJB e JDBC per accedere ai dati.
L’integrazione tra Internet e la rete aziendale: soluzioni Intranet e gestione dei Data Base
17
In .NET si usa ASPx come linguaggio di scripting, OLEdb.NET per l’accesso ai
database. Il funzionamento di questo sistema middleware è simile a quello descritto
per la soluzione precedente. Esiste sempre un server alla base e dei filtri ISAPI: la
differenza è in questo caso nel fatto che tutti i vari connettori vengono raccolti in un
Framework Runtime che permette di isolare i processi, tracciare gli utenti e lo stato
delle applicazioni.
Il database viene raggiunto in maniera più semplice e diretta. L’enviroment ASP, JSP
o ASPx permette di scrivere semplici scripting che vengono interpretati server side,
evitando i linguaggi che necessitano di compilazione. La connetivitàè ai database è
inoltre nativa attraverso ADO o OLEdb.In questo caso allo sviluppatore viene
richiesto di conoscere solamente il modo di interagire tra server web e ADO.
Esempio di codice:
Per preparare un codice html-Vbscript di accesso ad un database è sufficiente
effettuare semplici operazioni:
- Preparare la form con un editor html
- Selezionare il recordset dal database definendo object id e scripting language e
aprire il recordset rispettando una particolare sintassi.
- Implementare la procedura di visualizzare il dato.
- Implementare i comandi per muoversi nel recordset.
Scarica