3 Rapporto sull'ambiente e il framework di sviluppo e modello spaziale
1. Introduzione La intelligence logic sar replicata localmente in ogni negozio/filiale e si compone delle componenti software/hardware necessarie allimplementazione delle procedure descritte nelle relazioni inerenti le prime due fasi del progetto, ovvero rilevazione della configurazione della vetrina e rilevazione del flusso clientela. La business logic andr invece a rappresentare !uello che " il nodo centrale dellarchitettura e sar presumi#ilmente ospitata in uno dei server dellazienda. $l suo compito sar !uello di ricevere i dati intelligenti rilevati nelle singole filiali %dagli applicativi di intelligence logic&, inserirli in un data#ase e processarli nel modo pi opportuno per gli scopi di mercato dellazienda. $noltre, tale nodo centrale dovr anche acconsentire di trasmettere in modalit! broadcast/multicast a tutte le filiali interessate il catalogo della collezione di un particolare brand %es 'enetton, (isle)&. *i+, pu+ avvenire anche tramite interfaccia we# di modo da fornire un accesso indipendente al sistema ad ogni singolo #rand. $nfine, il data transmission protocol rappresenter una grammatica "#$ che descriver! il formato dei messaggi scambiati e le modalit! di trasmissione fra intelligence e #usiness logic. (i possono individuare 3 tipi di messaggi 1. $nvio dati sulla rilevazione della configurazione della vetrina %da intelligence logic a business logic& 2. $nvio dati sulla rilevazione del flusso della clientela %da intelligence logic a business logic& 3. $nvio dati inerenti il catalogo di un #rand %da business logic a intelligence logic& , importante sottolineare il fatto che, una volta definito il data transmission protocol le due parti di intelligence e business logic possono essere sviluppate parallelamente e su piattaforma totalmente differenti. 2. 'mbiente e framework di sviluppo ()* Intelligence logic %in ogni singolo negozio&+ Data#ase locale %es -)s!l& per #ufferizzazione dati prima dellinoltro al server centrale. .pplicativo di ac!uisizione e processing delle immagini li#rerie open/source 0pen*1. linguaggio di programmazione */*22. .pplicativo per linvio dei messaggi 3-L al server varie li#rerie e tecniche open/source disponi#ili %es 456, (456, 7e# (ervices su ((L, etc.&. Data larchitettura generale della $ntelligence Logic precedentemente espressa, risulta naturale pensare di implementarla su una piattaforma Linu8 minimalista, ovvero con il solo software %e li#rerie software& necessarie allesecuzione dei processi sopra descritti. *i+ permette da un lato di adoperare soluzioni open/source e di non richiedere costose licenze per il software da dispiegare in ogni singolo negozio, dallaltro di azzerare loverhead computazionale dovuto a software non strettamente necessario allesecuzione della $ntelligence Logic e !uindi di orientarci verso una componentistica hardware meno performante ma con costi pi9 #assi. ()( ,usiness $ogic %nel server centrale&+ Data#ase locale ad alte prestazioni %es -)(:L, 0racle, (:L (erver& .pplicativo per la ricezione dei messaggi 3-L dai negozi %es 456, (456, 7e# (ervices su ((L, etc.&. .pplicativo di ela#orazione della reportistica %'usiness $ntelligence vera e propria& .pplicativo di interfaccia con gli utenti %es we# application&. $l software " stato implementato in 6;6 <.= e si avvale di un we# server per esporre i dati e i servizi allesterno. :uesta scelta " dovuta da diversi fattori La maturit del linguaggio e delle librerie alla sua base; Portabilit del codice su diversi sistemi operativi e architetture hardware; Alti livelli di performance e durabilit; Ampia gamma di librerie open source.
5utti i servizi sono esposti tramite ;556 >.> e ;556(. ? stato scelto tale protocollo perch@ " ampiamente supportato da tutti i sistemi operativi e esistono svariate li#rerie free che permettono di dialogare con il server tramite procedure semplici e intuitive. .nche il protocollo di comunicazione alla #ase dellinterazione $ntelligence Logic e 'usiness Logic " ;556(. $l client invia tramite delle richieste 60(5 su connessione sicura i suoi dati di autenticazione tramite Basic access authentication. $l software utilizzato come #asi di dati " 0racle >>g anche se il sistema " interfaccia#ile anche con -)(:L e 6ostgre(:L. La scelta di 0racle nasce da esigenze di performance e sta#ilit. $l we# server scelto " .pache A.=. (ono supportati anche ngin8 >.= e $$( B/C. ()()*) -ramework $l frameworD alla #ase del 6rogetto " ()mfon) A. 5ra i vari frameworD -1* presenti sul mercato ()mfon) " !uello pi9 maturo, sta#ile e riconosciuto essere lo stato dellarte a livello glo#ale. $l frameworD in oggetto ci permette di implementare i servizi we# in modo veloce, sicuro e performante. ()()() .octrine Doctrine " una li#reria che ci permette di interfacciarci in maniera trasparente a 0racle, -)(:L e simili. $l sistema :uer)'uilder ottimizza e costruisce in automatico le chiamate al data#ase, fornisce protezione da pro#lematiche di (:L inEection e riduce al minimo loverhead delle chiamate (:L tramite un sistema di lazy loading. ()()/) 'ssetic .ssetic ci permette di gestire in maniera oculata gli asset del programma minimizzando e com#inando i fogli di stile, gli script EavascriptF ottimizzando inoltre le immagini G6,H/6IH. ()()0) 1#22ecurit345tra,undle e -627ser,undle :uesti due bundle di ()mfon) sono stati scelti perch@ ci aiutano a gestire gli utenti e ad assegnargli ruoli e permessi nella maniera pi9 sicura possi#ile. (u Digital 7indow ogni singola azione e/o vista esposta allesterno " vincolata a un sistema di permessi che protegge aree di vitale importanza da intrusioni esterne consentendo agli amministratori di poter assegnare diritti di accesso personalizzati per ogni singolo utente del sistema. ()()8) 9witter ,ootstrap e 9wig 'ootstrap " una serie di tool per creare applicazioni we# dinamiche. ? il frameworD pi9 popolare a livello mondiale e usato su siti importanti come I.(. e -(I'*. un sistema modulare; Supporta tutti i pi famosi browser; Ha componenti facilmente riusabili; Le librerie avascript che l!accompagnano sono state ampiamente testate; responsive e supporta i dispositivi mobile 5wig " un template engine veloce, con escape ;5-L automatico e estendi#ile facilmente. 1iene ampiamente usato su Digital 7indow per generare le viste invocate dai controller. ()():) -lot (u Digital 7indow " possi#ile generare grafici avanzati delle statistiche dei singoli negozi, #rand e compagnie. $ dati possono essere visualizzati a schermo sotto forma di istogrammi, grafici cartesiani e grafici a torta. ? stata scelta la li#reria 4lot per via della sua ampia compati#ilit con tutti i #rowser e le avanzate opzioni di plotting. 3. #odello 2paziale .ggiungere !ualcosa di descrittivo sul modello (i fa notare che la scelta di operare con un modello AD anzich@ 3D " strategica per a##attere i costi dellela#orazione software e per ridurre al minimo le spese per lhardware. $l modello AD infatti permette, non solo di diminuire il carico computazionale del sistema, ma presenta anche il notevole vantaggio di non richiedere una connessione ad internet ad alte prestazioni. $noltre, la scelta del AD " maggiormente tarata sul pro#lema in oggetto, dato che la maggior parte delle vetrine hanno profondit trascura#ile e si sviluppano per lo pi9 in altezza e in larghezza.