Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/
Strumenti per il web Linux è la piattaforma ideale per lo sviluppo web e delle web application più disparate. Esistono innumerevoli linguaggi e tecniche per realizzare soluzioni dinamiche che, affiancati a server web e DBMS, sono in grado di fornire risposta a qualsiasi tipo di problema. LAMP (Linux, Apache, MySQL, PHP) è il Sistema più diffuso Eduard Roccatello Strumenti per il web 2
Strumenti per il web I sistemi utilizzati dipendono da: dimensioni del progetto performance richieste carico medio giornaliero PHP potrebbe non essere la soluzione più adatta ad un sito con 500.000 utenti giornalieri. La piattaforma deve quindi essere scelta in modo accorto e calibrata sulle proprie esigenze ed esperienze passate. Eduard Roccatello Strumenti per il web 3
Progettare per il web - UML Portare facilmente a termine un progetto complesso non è semplice Unified Modeling Language (UML) Tecnica per descrivere e progettare l'architettura di un sistema nel dettaglio. Consente di documentare un progetto ancora prima di stendere codice, facilitando la scrittura e l'individuazione dei componenti critici. Comodo approccio basato sui casi d'uso Eduard Roccatello Strumenti per il web 4
Progettare per il web UML 2 Nel caso il progetto sia portato avanti da un team, UML consente di utilizzare un linguaggio comune ed evitare quindi incomprensioni e malintesi. La progettazione del sistema può essere effettuata in modo che chiunque sia coinvolto nello sviluppo possa capire e valutare efficientemente ogni dettaglio. Eduard Roccatello Strumenti per il web 5
Progettare per il web - Database Utilizzo della progettazione concettuale, basata sullo schema Entità-Relazione (ER) Lo schema ER è un modello concettuale che fornisce una serie di strutture, che descrivono la realtà in una maniera comprensibile ed indipendente dal calcolatore. Permette di descrivere la struttura dei dati ed è formato da due componenti: entità, classi di oggetti autonomi con proprietà in comune, e relazioni, legami logici tra le entità. Eduard Roccatello Strumenti per il web 6
Linguaggi di programmazione Mezzo che mi permette di realizzare il progetto Scelto sulla base di: Facilità d'uso Leggibilità del codice Manutenibilità Capacità di astrazione Scalabilità Flessibilità Eduard Roccatello Strumenti per il web 7
PHP PHP Hypertext Preprocessor Integrato nel codice HTML Estremamente diffuso Opensource Sintassi simile a C e Java Altamente portabile Orientato agli oggetti Non tipizzato Funzionalità di base evolute PEAR Eduard Roccatello Strumenti per il web 8
RUBY Ruby on rails Orientato agli oggetti Simile a Smalltalk e Perl per flessibilità Linguaggio interpretato Ogni cosa è un oggetto Modifica a runtime degli oggetti Opensource Combina la facilità di PHP e la potenza di Java Eduard Roccatello Strumenti per il web 9
Python Molto potente Fortemente tipizzato Opensource Sintassi molto rigida Linguaggio interpretato Orientato agli oggetti Estensibile con moduli in C/C++ Eduard Roccatello Strumenti per il web 10
JSP Java Server Pages Molto potente Fortemente tipizzato Deriva da Java Linguaggio compilato Orientato agli oggetti Gestione delle eccezioni Utilizzo di componenti avanzati J2EE Prestazioni elevate DIFFICILE! Eduard Roccatello Strumenti per il web 11
MONO Molto potente Fortemente tipizzato Alternativa opensource a.net Portabile Orientato agli oggetti Gestione delle eccezioni Non solo Applicazioni Web Prestazioni elevate DIFFICILE! Eduard Roccatello Strumenti per il web 12
COMPARAZIONE LINGUAGGI Facilità Prestazioni Funzioni Integrate Supporto PHP 5 3 / 4 5 4 Ottimo Ruby 3 3 3 3 Medio Python 3 4 3 3 Medio JSP 1 5 5 5 Ottimo Mono 1 5 4 3 Buono Eduard Roccatello Strumenti per il web 13
Scegliere un Server WEB Apache è sicuramente il server web più utilizzato al mondo ma esistono numerose alternative per soddisfare le esigenze più disparate. Alcune applicazioni potrebbero infatti aver bisogno di un ambiente più performante e specializzato rispetto ad un ambiente generico come quello offerto dal diffuso webserver opensource Eduard Roccatello Strumenti per il web 14
Apache HTTPd 2.2 Apache è il web server più diffuso al mondo. Ha conquistato il dominio grazie a velocità, sicurezza e flessibilità. La sua architettura è composta da un server principale e diversi moduli. Grande flessibilità ed estendibilità, obiettivi principali degli sviluppatori. Apache supporta quindi l'utilizzo di moltissimi linguaggi esterni come moduli E' rilasciato sotto licenza Apache Eduard Roccatello Strumenti per il web 15
Apache Geronimo 1.0 Progetto parallelo ad Apache Nato con lo scopo di ottenere un server compatibile con le applicazioni J2EE. J2EE è la piattaforma di sviluppo di Sun Microsystems per applicazioni ad architettura distribuita, basate su componenti modulari in esecuzione su un application server. Soddisfa pienamente le specifiche Sun TCK per la piattaforma J2EE 1.4 ed è utilizzata da aziende come IBM e Virtuas per i loro application server. Eduard Roccatello Strumenti per il web 16
Apache Tomcat 5.5 Apache Tomcat è un servlet container per le Java Servlet e le JavaServer Pages (JSP). Tomcat è software opensource E in grado di gestire applicazioni web molto impegnative e con alto traffico. Ad esempio tutto il sito web di WalMart, la nota catena americana di centri commerciali, è basato su Tomcat, così come il sito ufficiale di The Weather Channel. Supporta le specifiche per le Java Servlet 2.4 e per le JSP 2.0. Eduard Roccatello Strumenti per il web 17
Zeus Web Server Zeus Web Server (ZWS) è, secondo il produttore, il server web ad alte performance più scalabile disponibile sul mercato mondiale. Progettato per le soluzioni di tipo business-critical dedicate al web hosting, ai fornitori di contenuti e all'e-commerce sicuro. Le performance di ZWS sono impressionanti. Zeus Web Server è commerciale e parte da un prezzo di circa 3.000 per la versione standard. Eduard Roccatello Strumenti per il web 18
Scegliere la piattaforma ideale Quale linguaggio e quale web server fanno al caso nostro? Quale scelta è in grado di offrire il maggior ritorno sugli investimenti effettuati? Probabilmente i progetti piu comuni utilizzeranno la soluzione più diffusa al momento, affidandosi a PHP e MySQL, probabilmente il miglior compromesso tra qualità e prezzo. JSP sarà infatti la piattaforma ideale per un'applicazione di commercio elettronico di grandi dimensioni, così come Python è eccellente nella sua applicazione più conosciuta Zope. Eduard Roccatello Strumenti per il web 19