Corso Web programming



Documenti analoghi
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Corso di Informatica Modulo T3 B1 Programmazione web

Corso di Informatica Modulo T3 B2 - Database in rete

RETI INFORMATICHE Client-Server e reti paritetiche

Database e reti. Piero Gallo Pasquale Sirsi

Introduzione alle applicazioni di rete

Base di dati e sistemi informativi

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Progetto di Applicazioni Software

Corso di Web programming Modulo T3 A2 - Web server

InitZero s.r.l. Via P. Calamandrei, Arezzo

Siti web centrati sui dati (Data-centric web applications)

1. BASI DI DATI: GENERALITÀ

Introduzione all elaborazione di database nel Web

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi

Hardware delle reti LAN

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Progetto di Applicazioni Software

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Applicazioni web centrati sui dati (Data-centric web applications)

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Architettura client-server

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Modelli e Sistemi di Elaborazione Peer-to-Peer

Database. Francesco Tapparo Informatica e Bioinformatica /16

Sommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

Architetture e applicazioni web

Sistemi informativi secondo prospettive combinate

Introduzione al Web. dott. Andrea Mazzini

Corso di Informatica

Informatica per la comunicazione" - lezione 9 -

Creare una Rete Locale Lezione n. 1

Client - Server. Client Web: il BROWSER

Concetti base. Impianti Informatici. Web application

SISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Reti di Calcolatori: una LAN

ESERCITAZIONE Semplice creazione di un sito Internet

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

esales Forza Ordini per Abbigliamento

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Componenti Web: client-side e server-side

DW-SmartCluster (ver. 2.1) Architettura e funzionamento

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Corso di PHP. Prerequisiti. 1 - Introduzione

Introduzione alla Virtualizzazione

Informatica I per la. Fisica

Il Web Server e il protocollo HTTP

Internet e Tecnologia Web

Corso di Informatica

Al giorno d oggi, i sistemi per la gestione di database

Aspetti applicativi e tecnologia

Le Basi di Dati. Le Basi di Dati

WorkFLow (Gestione del flusso pratiche)

Programmazione Server Side e Database in rete

Reti di Telecomunicazione Lezione 6

Corso di Web Programming

Le Reti Informatiche

Come funziona internet

Lo scenario: la definizione di Internet

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

Approccio stratificato

DigiSiS. Manuale di installazione di una postazione Workstation per l utilizzo di Digital Sign Server

SDD System design document

Installazione di GFI WebMonitor

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Presentazione Data Base

2.1 Configurare il Firewall di Windows

19. LA PROGRAMMAZIONE LATO SERVER

Registratori di Cassa

DBMS e Linguaggi di programmazione nell'era di Internet

Corso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database

Laboratorio di Informatica I

FTP. Appunti a cura del prof. ing. Mario Catalano

Informatica Documentale

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Progetto ittorario Anno scol

Mac Application Manager 1.3 (SOLO PER TIGER)

Sistemi Operativi. Conclusioni e nuove frontiere

Corso base di Informatica. Microsoft Excel. Microsoft Access INFORMATICA. Docente: Durata: 40 ore. Destinatari

Realizzazione di Web Service per l estrazione di informazioni da siti web enciclopedici

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il web server Apache Lezione n. 3. Introduzione

Reti di Calcolatori. Il Livello delle Applicazioni

Installazione e caratteristiche generali 1

Introduzione ai Sistemi di Gestione di Basi di Dati XML

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

Web Application Libro Firme Autorizzate

SOMMARIO Introduzione Caratteristiche generali della piattaforma Amministrazione degli utenti 5

MagiCum S.r.l. Progetto Inno-School

Dal protocollo IP ai livelli superiori

Application Server per sviluppare applicazioni Java Enterprise

GOW GESTIONE ORDINI WEB

Transcript:

Corso Web programming Modulo T3 A1 Modelli di programmazione 1 Prerequisiti Concetto di rete Processi e thread Concetti generali sui database 2 1

Introduzione Un particolare ambito della programmazione è quello che consente la realizzazione di applicazioni per lo scambio di informazioni (in genere contenute in un database) attraverso una rete. Questo ambito, per questo motivo, è detto programmazione di rete. Perché un applicazione di rete possa essere eseguita, è necessario stabilire quanti e quali processi siano necessari per il suo funzionamento, ossia individuare il modello di programmazione. Esaminiamo brevemente i modelli di programmazione a livello singolo, client-server, peer-to-peer e three-tier. 3 Le diverse funzionalità Normalmente, le operazioni di interrogazione di basi di dati avvengono attrverso le seguenti funzionalità: Livello di presentazione Logica funzionale Gestione dei dati È il sofware (browser, interfacce grafiche, menu) che gestice le interazioni con l utente e la formattazione dei dati. Questa funzionalità implementa tutte le le operazioni aziendali e le regole che le governano. Questa funzionalità è quella che svolge direttamente l interrogazione della base di dati. Queste funzionalità possono essere concentrate o meno su un unica macchina. In base a ciò possiamo avere diversi tipi di architettura. 4 2

Architettura a livello singolo Un programma si dice che ha un architettura monolitica (o architettura a livello singolo) quando tutte le funzionalità sono combinate in una singola macchina, generalmente un elaboratore di alte prestazioni. 5 Architettura a livello singolo Caratteristiche Si osserva che: il database è semplice (cosiddetto flat, come per esempio Paradox, Dbase o Access), nel senso che è visto solo come un insieme di dati salvati su disco; la logica di accesso al DB è completamente insita nel programma il programma prevede un unico processo che evolve su una unica macchina; il programma è realizzato tramite tecniche di programmazione tradizionali; non necessita di un ambiente operativo multitasking in grado di eseguire più processi contemporaneamente. 6 3

Architettura a livello singolo Vantaggi e svantaggi Vantaggi: facilità di manutenzione facilità di amministrazione Svantaggi: centralizzazione delle operazioni pesantezza gestione interfacce grafiche 7 Applicazioni di rete Un applicazione di rete è un insieme di programmi che coinvolge la comunicazione fra processi diversi su macchine diverse. Questo presuppone che: rispetto ai programmi monolitici, per realizzare programmi di rete venga usata una tecniche di programmazione diversa; si operi un un ambiente operativo multitasking in grado di eseguire più processi contemporaneamente. 8 4

Server e client Iniziamo con il chiarire alcuni concetti di base. Un server (servente) è un software che fornisce servizi ad un altro componente (tipicamente chiamato client). Tuttavia, in generale, i termini server e client possono essere riferiti alla componente: software, indicando gli effettivi programmi (applicazioni) che consentono il trattamento delle informazioni; hardware, indicando gli apparati e i dispositivi hardware presenti. 9 Server Quindi, a seconda del contesto, il termine server può indicare: un computer utilizzato per fornire servizi ad altri computer, generalmente con prestazioni e affidabilità di fascia medio-alte; un processo (ovvero un programma in esecuzione) che fornisca servizi ad altri processi (indicato, ad esempio, con web server qualora ci si riferisca alla rete web). Un computer, nodo di una rete, che controlla la rete stessa e che gestisce il software cui accedono altri computer si dice anche host (ospite). Il server, che viene messo in esecuzione prima che inizi l interazione con i client, accetta ed evade le richieste a ciclo continuo su una porta prestabilita per il servizio. 10 5

e client Analogamente, il termine client può indicare: un computer utilizzato per ricevere servizi da altri computer, generalmente con prestazioni tipiche di una fascia di mercato commerciale; un processo (ovvero un programma in esecuzione) che ottenga servizi da altri processi. Il client inoltra le richieste al server e termina dopo un numero finito di interazioni con esso. 11 Architettura client-server Un client e un server Il modello client-server indica un architettura software costituita da due moduli applicativi (il client e il server), per questo detta anche architettura a due livelli. Esempio con un client Il client e il server: e un server risiedono generalmente su macchine diverse (ma per esigenze di testing delle applicazioni, possono risiedere sulla stessa macchina) collaborano, in quanto l applicazione client richiede servizi e dati al server e l applicazione server risponde alle richieste del client. 12 6

Architettura client-server Thin client e thick client Nell architettura a due livelli possiamo avere: thin client: client: solo livello di presentazione server: la logica funzionale + gestione dei dati. thick client: client: livello di presentazione + logica funzionale server: gestione dei dati. 13 Architettura client-server Più client vs. un server Se le applicazioni girano in rete, in generale un server deve essere in grado di rispondere rapidamente a più di un client, per cui è possibile che molti programmi debbano interagire. Tipicamente, in queste interazione molti a uno, vengono impiegate piattaforme multitasking e multithreading. In questo tipo di architettura, il server è un componente che assume sempre un ruolo privilegiato. In questo tipo di architettura, il server è un componente che assume sempre un ruolo privilegiato. 14 7

Architettura client-server Utilizzo Il modello client-server è tipico di tutti i servizi di Internet: pagine web (WWW); posta elettronica; ftp; telnet. anche se può essere utilizzato in generale per programmi che non fanno necessariamente uso della rete. 15 Architettura client-server Tipi di server Normalmente i server possono essere iterativi o concorrenti, sulla base del loro comportamento. Un server iterativo risponde alla richiesta inviando i dati, restando occupato e non rispondendo ad ulteriori richieste fino a quando non abbia fornito una risposta alla richiesta. Una volta completata la risposta il server diventa di nuovo disponibile. Un server concorrente al momento di trattare la richiesta crea un processo figlio (o un thread) e lo incarica di fornire i servizi richiesti, in modo da essere libero di accettare ulteriori richieste. In questo modo, con sistemi multitasking, più richieste possono essere soddisfatte contemporaneamente. Una volta che il processo figlio ha concluso il suo lavoro, viene terminato, mentre il server originale resta sempre attivo. 16 8

Architettura client-server Funzionamento Il modello client-server utilizza i due livelli come segue: il client presenta un interfaccia utente; l utente effettua richieste di servizio il server raccoglie ed elabora le richieste degli utenti; il server esegue l elaborazione di ogni richiesta; il server rispedisce la risposta al client richiedente il client presenta i risultati formattati all utente 17 Architettura client-server Compiti del server In questo caso, è divenuto uno standard l utilizzo di un vero e proprio linguaggio di interrogazione delle basi dati (SQL, Structured Query Language) attraverso il quale un qualsiasi programma invia delle richieste di dati al database e questo risponde fornendo i risultati. Si configura quindi una situazione in cui ci sono uno o più programmi (client) che richiedono dati al programma che gestisce la base dati (database server). Tutto il lavoro di accesso ai dati è quindi svolto dal server (che tipicamente risiede su una macchina dedicata esclusivamente a questo scopo), mentre il programma client si limita ad inviare semplici richieste di dati e ad attendere il risultato. 18 9

Architettura client-server Vantaggi I vantaggi dell architettura a due livelli sono: facilità di accesso a database di grandi dimensioni (mediante SQL); livello di presentazione è incorporato nell applicazione client; elaborazione eseguita in gran parte client side; intervento del server solo per l accesso ai dati; condivisione dei dati sul server, che consente: accesso contemporaneo ai dati da parte di più utenti; disponibilità immediata di tutti gli aggiornamenti; 19 Architettura client-server Svantaggi L architettura a due livelli presentava alcuni inconvenienti: l aumento del numero dei client, causava sovraccarico di richieste nel server; eventuali modifiche del software erano costose e lunghe. La necessità: di un accesso più rapido ai dati; di tempi di sviluppo più brevi ha indotto gli sviluppatori a cercare nuove metodologie per la creazione di applicazioni distribuite. 20 10

Architettura a tre livelli Come evoluzione del modello a due livelli, nacque il modello a 3 livelli. In questo modello, l elaborazione viene distribuita tra il client e il server passando attraverso un livello intermedio. 21 Architettura a tre livelli Tecnologie attuali Il modello a tre livelli (three-tier), prevede che i tre livelli di funzionalità siano separati, in particolare: Livello Funzionalità Tecnologie attuali Interfaccia grafica e formattazione Presentazione dei dati, mediante pagine web o Browser che utilizzano HTML, attraverso telefoni cellulari, palmari, Javascritp, Applet Java ecc.. Logica funzionale (middle tier) Gestione dei dati L applicazioni distribuita simula fedelmente le operazioni di elaborazione dei dati Questo livello consente di accedere ai dati e di gestire le operazioni su essi, generalmente mediante SQL. Web server IIS, Tomcat, Apache che utilizzano tecnologia ASP, JPS, servlet, PHP SQL server MySQL, Oracle che utilizzano SQL 22 11

Architettura a tre livelli Esempio Microsoft Ad esempio, il modello a tre livelli (three-tier) tipico della Microsoft, caratterizza i livelli come mostrato in figura. In questo caso i client (Livello 1) non si connettono direttamente al DBMS server bensì ad uno application server (Livello 2). Sarà poi quest ultimo ad interrogare il DBMS server (Livello 3) per ottenere i dati necessari al client. In realtà l apparente appesantimento dell architettura, dà come vantaggio che diventa possibile spostare tutta la logica di utilizzo dei dati e l effettivo accesso al db dal client all application server, lasciando al client la sola interazione con l utente (interfaccia grafica). 23 Architettura peer-to-peer Nelle architetture peer-to-peer non c è nessun programma che svolge un ruolo preminente. Questo vuol dire che in generale: ciascun programma agisce come un nodo in una rete paritetica; ciascun programma può ricevere ed inviare richieste e risposte; non c è più separazione netta dei compiti come nelle architetture client-server. WinMx, Kazaa, emule e i protocolli di routing sono esempi di architetture peer-to-peer: ciascun nodo, tramite il demone che gestisce il routing, richiede ed invia informazioni ad altri nodi. In molti casi, la struttura non è totalmente paritetica: alcuni servizi vengono centralizzati o distribuiti gerarchicamente, per cui le ricerche vengono effettuate su un server centrale. 24 12

web server e web client Un web server è un processo che si occupa di fornire, su richiesta di un web client (in genere, un browser), una pagina web (scritta in HTML). Le informazioni inviate dal web server viaggiano in rete trasportate dal protocollo HTTP. L insieme di web server dà vita al www (world wide web), uno dei servizi più utilizzati di Internet. Normalmente un web server risiede su sistemi dedicati, ma può essere installato ed eseguito su un qualunque personal computer, allo scopo di provare il proprio sito web. 25 web server e web client Alcuni dei web server più diffusi. Apache HTTP Server (Apache Software Foundation) Easy Php Internet Information Services, IIS (Microsoft) Sun ONE (Sun Microsystems) Zeus Web Server (Zeus Technology) ColdFusion (Adobe) NCSA HTTPd HTTP File Server PowerFolder (necessita di JRE) Apache Tomcat 26 13

web server e web client Alcuni dei web client più diffusi. Internet Explorer (Microsoft) Mozilla Firefox (Mozilla Foundation) Opera (Opera Software) Netscape (Netscape Communications Corporation) 27 Argomenti Le diverse funzionalità Architettura a livello singolo caratteristiche vantaggi e svantaggi Applicazioni di rete Server e client Server e client Architettura client-server un client un server thin client e thick client più client vs. un server utilizzo utilizzo tipi di server funzionamento compiti del server vantaggi svantaggi Architettura a tre livelli tecnologie attuali esempio Microsoft Architettura peer-to-peer web server e web client 28 14

Altre fonti di informazione E. Zarino Studiare con Internet ed. Armando P.Gallo, F.Salerno, Informatica Generale 3 ed. Minerva Italica A.Lorenzi, T.Pizzigalli, A.Rizzi, Reti Internet e tecnologie Web ed. ATLAS 29 15