• Non ci sono risultati.

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

Documenti correlati