Display Template
4 TECNOLOGIE UTILIZZATE
4.1 Introduzione
Nel pre sente capitolo sono d escritti gli asp etti
implementativi d ell’applica zione realizzata, le te cnolo gie
utilizzate , i p rin cip ali design patte rn e fra mewo rk adottati.
Il prototipo di assistente automatico è stato svilupp ato sen za introdu rre aspetti tecnolo gici innovati o di frontiera, ma utilizzando le più m oderne tecnolo gie disponib ili nell’amb ito open
source, che lettera lmente significa “so rgente aperto ”.
I software o p ro gra mmi di questa tipologia sono ca ratte rizzati da l fatto che gli autori, o più precisamen te i detento ri dei d iritti, ne consentono e ne incentivano l’utilizzo, il libe ro studio e l'apporto di modifiche da parte di altri pro grammatori indipendenti.
Negli ultimi anni questa filosofia ha a vuto un enorme successo e, se agli in izi, gli autori erano solo de lle comunità d i appa ssionati programmatori, ora anche importan ti software house stanno facendo ingenti in vestimenti ne ll’open source.
La scelta di utilizzare tecnolo gie open source pe r lo sviluppo del prototipo deriva, oltre che dai motivi appena descritti, anche d al fatto che non devono essere acquistate licen ze d’uso o erogati corrispettivi in denaro agli auto ri; l’unico
vinco lo è di cond ividere e ventuali modifiche attuate su l sin go lo
software.
4.2 Componenti del sistema
Il sistema informatico rea lizzato è un’applica zione web fruibile utilizzando un comune browser che abbia accesso ad Internet.
L’arch itettu ra fisica del p rototipo è composta da due
elementi principa li: un W eb Server e un DataBase Mana ge ment
Syste m (DB MS), che possono risiedere su due differenti
computer (se rve r) oppure sullo ste sso . La scelta di una delle due configura zion i dipe nde dalla mole di traffico, intesa come numero di utenti che si ipo tizza accedano all’applica zione, e dalla mole di informa zion i che dovranno essere gestite.
Il Web Se rver è il processo, o compu ter, che ha il compito di fornire, su richiesta di un browser, una pagina web. Nell’a rch itettu ra adottata, il W eb Server scelto è Apache Tomcat (o semplicemente Tomcat), che è un servlet conta iner che può funzionare an che da Web Server. Tomcat è un’applica zione
Open source svilu ppata dalla Apach e Softwa re Foundation. È
l’implementa zione di riferimento per le specifiche JSP e Servlet
della Sun Micro system, fornendo una piattaforma per
l’ese cu zione di applica zion i web sviluppate con il lin gu aggio di
programma zione Ja va.[Ha r01] Ja va è un lin gu aggio d i
programma zione o rientato a gli o gge tti, che deriva d al C++,
creato da gli in ge gneri de lla Sun Microsystem. Non è l’unico
lin gua ggio pe r rea lizzare app lica zion i web, ma è stato scelto poiché gode dei se guenti vanta ggi:
4 T E C N O L O G I E U T I L I Z Z A T E
77
o la maggior parte d egli ambienti d i sviluppo inte grati (IDE)
sono Open source;
o è un lin gua ggio più produttivo de l C++ gra zie a ll’assen za di
puntatori d i memoria, rendendo il codice più le ggib ile e sicu ro;
o dispone di va rie A PI (Application Pro gra mmino Inte rface ) e
fra mework molto utili per lo sviluppo d i applica zioni web;
o gode di un note vole riconoscimento nel setto re informatico,
grandi gruppi com e IBM e Oracle vi hanno puntato ed
in vestito;
o è portabile, o ssia è indipendente dalla p iattaforma o
sistema ope rativo .
Il Data Base Ma nagement Syste m è un software che fornisce il servizio di base dati, ossia un archivio strutturato e
rela zionale che consente la gestione dei da ti stessi
(l'inse rimento, la ricerca , la cancella zione ed il loro
aggio rnamento) da parte di applica zioni software. Il DBMS è diventato orma i una componente fondamentale delle app lica zion i web, poiché la mole di informazion i che devono essere gestite è sempre in crescita e costitu iscono u n patrimonio de lle stesse applica zion i. Il DBMS è conside rata una componente critica, perché dall’efficien za, velocità e affidabilità di questa, d ipendono le perfo rman ce del sistema informatico che la utilizza .
Il DBMS utilizzato per sviluppa re il prototipo è MySQL, che è realizzato da MyS QL AB ed è rila sciato come Open source con delle limita zioni che riguardano la distribu zione, ma non l’utilizzo . È stato scelto MySQL pe rch é:
o è velo ce, è stato pro gettato per ra ggiun ge re e le vate
ve locità anche in presen za di importanti quantità di informazioni da ge stire;
o è affidabile, van ta ormai un numero e le vato d i in stalla zioni nel mondo, garan zia di assen za o quasi, (un software
assolutamente p erfetto non esiste ) di anomalie
(dall’in gle se bug);
o è corre lato di stru menti di amministrazione e monitora ggio
grafici;
o è dotato di d river, ossia componenti d i acce sso, gratuiti per
molti lin gua ggi d i pro gramma zione, tra cu i o vviamente Ja va;
o è gratuito.
Un altro a spetto molto impo rtante delle componenti dell’arch itettu ra fisica del prototipo, Tomact e MySQL, è dato dal fatto che entrambe sono indipende nti dal sistema operativo , ga rantendo portab ilità e sca labilità. Entrambi possono essere
installati su se rve r con i sistemi opera tivi p iù diffusi: Microsoft,
Linu x o Un ix.
4.3 I Design pattern
Ja va è un lin gu aggio d i pro gram mazione o rienta to agli
oggetti (OOP, Obje ct Oriented P rogra mming), come anche C++ e Smalltalk. Il lo ro utilizzo è molto d ive rso da que llo de i lingua ggi di pro gramma zione procedura li che li hanno preceduti, come ad esempio Pasca l, C e Fortran.
Nel lin guaggio d i p ro gramma zione Ja va, i pro grammi sono
costru iti a partire d a “cla ssi”. Da una “classe ” è possib ile creare un numero arbitra rio d i “oggetti”, n oti come istan ze di tale classe. Si può pen sare una cla sse come a “fabbrica ” d otata di
4 T E C N O L O G I E U T I L I Z Z A T E
79
proge tti e istru zio ni per la costru zio ne di “gad get”: gli oggetti sono appunto il pro dotto di tale fabbrica.[ AGH01]
Una cla sse è composta da “membri” che sono: “attribu ti” e
“metodi”. Gli attributi sono va riabili contenenti dati e
appartengono a lla classe stessa o agli o ggetti ista nze de lla classe.[AGH01] I metodi sono delle p rocedure e funzioni, con un insieme d i istru zio ni, che a giscono sugli attributi pe r m odificare lo stato dell’oggetto o della classe. Un programma realizzato secondo que sto p aradigma è comp osto da oggetti software (istan ze di cla ssi) che intera giscono tra loro.
Pro gettare softwa re ad oggetti è molto complesso, fare in modo che sia riu sabile, è anco ra più difficile. Un obiettivo importante dell’OOP è dato dal concetto di “riu so” de l softwa re, che consiste nel cerca re d i non scrive re due vo lte la stessa cosa.
Questo obiettivo può essere raggiunto attra ve rso una
proge tta zione attenta e meticolosa, tenendo in considerazione il fatto che tale progetta zione do vreb be essere specifica per il dominio d’app lica zione del sistema che si vuo le rea lizzare, ma dovrebbe anche e ssere sufficienteme nte gene rica per problemi e re quisiti futuri.
Durante la fase d i proge tta zione, gli esperti sanno d i n on dove r fare e risolvere o gni p roblema partendo da zero, ma riusano
solu zioni che in passato hanno dimostrato d i
funzionare.[GHJV0 2] E’ p roprio que sto che li rende esperti e quando tro vano un a buona solu zione la usano continuam ente. Se un problema è già stato risolto nel modo miglio re, nella prospettiva d i ottimizza re tempo e d energia, è funzionale riutilizzare la stessa solu zione, a ve ndo la sicu re zza che sia
ve ramente funzionante.
Il riutilizzo di so luzioni note a determinati p roblemi, non è un’esclusiva della progetta zione OOP, ma è utilizza to anche nell’in ge gneria ed ile e civile. Nell’informatica, l’in sieme di queste
solu zioni prende il nome di Design pattern, ossia stru tture di proge tta zione.
Christophe r Ale xan der1 dice: “Ogn i pattern descrive un p roblema
che si ripete più e più volte nel no stro ambiente, descrive poi il nucleo della so lu zione del problema, in modo tale che si possa usare la so lu zione un milione d i vo lte sen za mai applica rla nella stessa manie ra.” A lexande r si riferiva a pattern a rch itetto nici per edifici e città, m a que sto è vero anche per i patte rn nella programma zione a oggetti. [GHJV0 2] In entrambi i casi, il concetto che sta alla base delle d ue tipolo gie di p attern è sempre lo stesso: quello d i tro va re un a solu zione ad un problema in un determinato contesto.
Solitamente un pa ttern è composto da quattro e lementi essen zia li. [GHJV0 2]
1. Il nome simbolico, che può esse re u sato per de scrive re in