
Cliet Server
Presentation
•
Computers
•
12th Grade
•
Practice Problem
•
Easy
Emanuela Giaconi
Used 1+ times
FREE Resource
43 Slides • 12 Questions
1
TPSI
Emanuela Giaconi
Le applicazioni Web
e il modello client-server
2
In questa lezione impareremo:
● gli aspetti essenziale delle tecnologie
per il Web
● le caratteristiche del modello
client-server
● l’evoluzione del modello client-server
3
4
Open Ended
Che cos'è un'applicazione web? come è scritta?
5
Applicazioni Web: generalità
● Con il termine di applicazione Web viene definito il
software sviluppato e utilizzato attraverso tecnologie
Web e linguaggi specifici.
6
Open Ended
Che cosa si intende con il termine client-side e server-side?
7
Applicazioni Web: generalità
● Con il termine di applicazione Web viene definito il
software sviluppato e utilizzato attraverso tecnologie
Web e linguaggi specifici.
● Sintetizziamo due concetti fondamentali che stanno
alla base delle applicazioni Web:
∙1 tecnologie client-side e server-side;
∙2 linguaggi di mark-up e linguaggi di
programmazione.
8
Tecnologie del Web
● Possiamo distinguere le tecnologie del Web in due
gruppi, in base al posto in cui avvengono le
elaborazioni
● 1 Tecnologie client-side: sono le strutture
tecnologiche in cui l’elaborazione avviene sul client,
tipicamente nel browser;
∙possiamo schematizzare le tre fasi dell’elaborazione
9
Tecnologie del Web
● Tecnologie server-side: sono le strutture
tecnologiche in cui l’elaborazione avviene sul
server, tipicamente nel Web server
∙possiamo schematizzare le tre fasi dell’elaborazione in:
10
Open Ended
Quali sono i linguaggi che conosci tipici dell'elaborazione client-side? e quelli dell'elaborazione server-side?
11
Tecnologie del Web
● Per visualizzare una pagina che utilizza una
tecnologia client-side (HTML, JavaScript ...) potremmo anche non utilizzare un Web server, memorizzando e, quindi, aprendo la pagina WEB e fornendo al browser il path sul file system locale:
12
Tecnologie del Web
● Per visualizzare una pagina che utilizza una
tecnologia server-side (scritta in linguaggi dinaici con PHP, JavaServlet, ...) abbiamo bisogno di un Web server che elabori il codice della pagina ed è, quindi, necessario connettersi e richiedere la pagina tramite un URL:
13
Open Ended
Cosa succede se cerchiamo dal browser di vedere il codice relativo all'elaborazione server-side?
14
Tecnologie del Web
● Se chiediamo al browser di visualizzare le parti di codice che utilizzano tecnologia server-side, queste non sono visibili, perché il server ha elaborato il codice (che è memorizzato sullo stesso server) e quello che vediamo sul browser è il risultato di tale elaborazione
15
Open Ended
Quali sono i linguaggi del WEB?
16
Linguaggi del Web
● I linguaggi di mark-up servono a scrivere documenti strutturati ("formattati"), dove un documento "formattato" è un contenuto generalmente testuale corredato di indicazioni (tag) che ne definiscono la struttura (e spesso la visualizzazione), come il linguaggio HTML, XML.
17
Linguaggi del Web
● I linguaggi di programmazione servono a scrivere programmi, come per esempio Java e PHP.
Con il passare degli anni l'evoluzione dei linguaggi ha fatto si che attualmente nel Web queste distinzioni non siano più cosi "rigide".
18
Linguaggi del Web
esistono approcci "ibridi" come AJAX, ma non sono una vera "via di mezzo" tra client-side e server-side in quanto "fondono in un unico linguaggio le tecnologie client-side e server-side effettuando un uso congiunto;
in HTML5 è possibile utilizzare tag (mark-up) per scrivere istruzioni (programmi), rendendo più "difficile" la distinzione tra mark-up e programmazione.
19
Open Ended
Come è fatto il modello client-sever? Qual è il suo scopo?
20
Il modello client-server
● Il modello client-server è costituito da:
∙ un insieme di host che gestiscono una (o più) risorse, i serventi o server, e da un insieme di clienti (o client)
21
Il modello client-server
● Per essere precisi, non sono gli host a essere server o client ma i processi che sono in esecuzione su di essi, dove come processo si intende un programma in esecuzione: dato che su un host possono essere in esecuzione più processi, un host può essere contemporaneamente sia client che server.
Non bisogna confondere servizio e server: un servizio è un'entità astratta che viene fornito da uno o più server che lavorano su macchine spesso differenti e che cooperano via rete.
22
Open Ended
Che caratteristiche hanno le applicazioni che devono essere gestite tramite architettura client/server?
23
Il modello client-server
Descriviamo il modello client server anche analizzando la sua evoluzione che oggi gli permette di gestire applicazioni molto complesse (applicazioni di tipo enterprise) che hanno le seguenti caratteristiche:
molti utenti concorrenti che richiedono i servizi;
una logica applicativa complessa;
archivi di grandi dimensioni con organizzazione di dati complessa e distribuita;
notevoli requisiti di sicurezza;
sistemi transazionali.
24
Open Ended
Qual è il flusso di informazioni tra client e server?
25
Il modello client-server
1 il clientmanda una richiesta al server
2 il server (in attesa) riceve la richiesta
3 il serveresegue il servizio richiesto (generando un thread concorrente)
4 il servermanda una risposta ed eventualmente dei dati
5 il clientriceve la risposta ed eventualmente i dati
26
Servizi tipici architetture client-server
Questo meccanismo è utilizzato sia che i processi fisicamente si trovino in esecuzione su due calcolatori diversi connessi in rete (come nell'esempio descritto) sia che risiedano sul medesimo calcolatore.
Di seguito sono riportati alcuni servizi tipici delle architetture client-server:
Telnet: è possibile operare su un computer remoto come si opera su un computer locale (client); questo è possibile se sulla macchina remota è presente un programma server che esegue le richieste del client
27
Servizi tipici architetture client-server
HTTP: il browser è un client HTTP (Web), che richiede pagine Web ai computer su cui è installato un Web server, il quale esaudirà le richieste spedendo la pagina desiderata;
FTP: tramite un client FTP è possibile copiare e cancellare file su un computer remoto, purché qui sia presente un server FTP;
altri servizi di questo tipo sono SMTP, IMAP4, NFS, NIS e così via.
28
Distinzione tra server e client
● Un programma chiamato client richiede dei
servizi a un altro programma chiamato server
● Quest’ultimo è ospitato su un computer
chiamato host ed è in ascolto tramite un
socket su una determinata porta, in attesa che
un client richieda la connessione
● il client invia la richiesta al server tentando la
connessione proprio tramite tale porta, quella
cioè su cui il server è in ascolto
29
Open Ended
Che cos'è un socket?
30
Socket
Un socket è formato dalla coppia
<indirizzo IP: numero della porta>
che permette di individuare univocamente il gestore di un servizio
31
Distinzione tra server e client
● Un client per comunicare con un server usando
il protocollo TCP/IP deve “connettersi” al socket
dell’host dove il server è in esecuzione
specificando l’indirizzo IP della macchina e il numero di porta sulla quale il server è in ascolto.
32
Distinzione tra server e client
Naturalmente su uno stesso computer possono essere in esecuzione server diversi, in ascolto su porte diverse (analogia: più persone abitano allo stesso indirizzo, ma a numeri di interno diversi: i numeri di interno rappresentano le porte).
Un server "rimane in ascolto" su una determinata porta finché un client non crea una comunicazione con il socket specificando la porta sulla quale è disponibile il servizio; quindi esegue le richieste del client con le risorse che ha a disposizione e rispedisce, se richiesto, i risultati al client.
33
Open Ended
Cosa si intende con comunicazione unicast e multicast?
34
Comunicazione unicast e
multicast
● Ora che è stato introdotto il concetto
client-server, possiamo passare a distinguere
due tipi di comunicazione:
● unicast: il server comunica con un solo client
alla volta accettando una richiesta di
connessione solo se nessun altro client è già
connesso
● multicast: al server possono essere connessi
più client contemporaneamente
35
Nel caso di trasmissione multicast se la richiesta di connessione tra client e server va a buon fine il server, prima di stabilire il canale di connessione con il client, sposta la richiesta dalla porta nella quale è stata effettuata, port address, su una nuova porta, cosi lascia libera la prima in attesa di altre connessioni, e manda in esecuzione un thread che soddisfa la richiesta.
Comunicazione multicast
36
Comunicazione multicast
37
Open Ended
Cosa si intende con applicazione a livelli
38
Livelli e strati
● Le architetture client-server sono
normalmente organizzate in tre strati o
livelli (modello three-tier):
◗front-end o presentation tier: è
l’interfaccia verso l’utente;
◗ logica applicativa o middle tier;
◗back-end con l’accesso alle risorse/ai
dati, anche detto data tier.
39
Livelli e strati
Presentation Layer (PL): è composta dall’insieme delle procedure o moduli dedicate all’acquisizione e alla presentazione dei dati all’utente (maschere di input, organizzazione di tabelle e tabulati video/cartacei).
Per esempio, nei sistemi Web che visualizzano pagine HTML, il Presentation Layer è costituito dai moduli del web server che concorrono a creare i documenti HTML, come le Java Servlet, gli script PHP e ASP, mentre il client può essere identificato con il browser.
40
Livelli e strati
Resource Management Layer: è composto dall’insieme delle procedure che gestiscono i dati, cioè memorizzano e recuperano le informazioni persistenti dagli archivi di massa delle basi di dati.
Nel caso in cui esso è implementato tramite un DBMS, è detto semplicemente Data Access Layer (DAL).
41
Livelli e strati
Business Logic Layer (BLL) o Resource: Management Layer (RML): è il “corpo centrale” della applicazione che comprende la logica della elaborazione e le definizione delle relazioni esistenti tra le diverse entità.
Esempio, comprende l'algoritmo che implementa le operazioni legate a un prelievo su un conto corrente bancario, o la sequenza di passi da compiere per effettuare un acquisto online.
42
Architettura a un livello – 1 tier
Storicamente, a partire dagli anni Settanta, le architetture si riducevano a un solo mainframe al quale erano collegati i terminali "stupidi": l'elaborazione era effettuata dall'elaboratore centrale e i terminali servivano solo per le fasi di I/O.
43
Architettura a un livello – 1 tier
Questa architettura non rientra nella tipologia client-server e può essere classificata come architettura a un solo livello (1 tier) ed è la situazione che si presentava prima dell'avvento dei sistemi distribuiti, come mostrato nella figura a lato.
44
Architettura a due livelli – 2 tier
● Con l’avvento delle reti locali sono nate
le architetture client-server dove le
funzionalità e le responsabilità erano
suddivise su due livelli:
◗ un livello server;
◗ un livello client.
Due sottocategorie di architetture a due livelli: thin-client e thik-client
45
Architettura a due livelli – 2 tier
● l modello thin-client:
∙il server è responsabile della logica applicativa e
gestione dei dati
∙il client è responsabile della
esecuzione del software
di presentazione.
46
Architettura a due livelli – 2 tier
● il modello thick-client (o fat-client)
∙il server è responsabile della gestione dei
dati
∙il client è responsabile
di presentazione e
logica applicativa.
47
Open Ended
Quali possono essere secondo te i limiti di un'applicazione a due livelli?
48
Architettura a due livelli – 2 tier
● Il limite delle architetture client/server a
due livelli è che sono poco scalabili
● il server deve gestire la connessione e lo
stato della sessione di ciascun client
● questo carico di elaborazione porta alla
limitazione del numero limitato di client
che possono essere gestiti
contemporaneamente.
49
Architettura a tre livelli – 3 tier
● A partire dagli anni Novanta l’architettura
client-server è a tre livelli
● ogni livello corrisponde uno strato
architetturale:
◗front-end o presentation tier: è l’interfaccia verso
l’utente;
◗logica applicativa o middle tier (business-tier);
◗ back-end con l’accesso alle risorse/ai dati, anche
detto data tier (o resource-tier).
50
3 tier- Vantaggi
prestazioni, in quanto in questo modo si favorisce la distribuzione della quantità di elaborazione a scapito, però, dei tempi di comunicazione.
sistema scalabile in quanto all'aumentare delle richieste di un servizio è possibile aggiungere qualche server in grado di compensare il carico di lavoro
51
3 tier- Vantaggi e svantaggi
tollerante ai guasti.
introduzione di sicurezza a livello di servizio e quindi più facilmente gestibile.
SVANTAGGI:
è più difficile la progettazione, lo sviluppo e l'amministrazione.
52
Architettura a tre livelli – 3 tier
Le corrispondenze tra strati e livelli non sono sempre nette: esempio una applicazione web che ha il software del client (il browser HTML) e le pagine vengono generate dal server combinando codice HTML con script dinamici sia Javascritp (lato client) che ASP o PHP (lato server).
53
Architettura a n tier
● Le architetture client-server a N livelli sono
una generalizzazione del modello
client-server a tre livelli
∙questi vengono scomposti e introdotti un numero
qualunque di livelli e server intermedi
● Questa scomposizione viene effettuata per
suddividere ulteriormente i compiti dei vari
strati
∙prende anche il nome di applicazione multi-tier.
54
55
TPSI
Emanuela Giaconi
Le applicazioni Web
e il modello client-server
Show answer
Auto Play
Slide 1 / 55
SLIDE
Similar Resources on Wayground
49 questions
Principles of Haircutting
Lesson
•
University
43 questions
Thinking Ahead
Lesson
•
12th Grade
44 questions
W9 - Application Layer (SY25-26/C305-304i)
Lesson
•
University
46 questions
Unit 4: Sentence Completion Practice Part 3
Lesson
•
University
51 questions
Computing Paper 1 - OCR GCSE
Lesson
•
11th Grade
51 questions
Guerra e Pace
Lesson
•
12th Grade
46 questions
Information Systems Security
Lesson
•
University
Popular Resources on Wayground
15 questions
Fractions on a Number Line
Quiz
•
3rd Grade
10 questions
Probability Practice
Quiz
•
4th Grade
15 questions
Probability on Number LIne
Quiz
•
4th Grade
20 questions
Equivalent Fractions
Quiz
•
3rd Grade
25 questions
Multiplication Facts
Quiz
•
5th Grade
22 questions
fractions
Quiz
•
3rd Grade
6 questions
Appropriate Chromebook Usage
Lesson
•
7th Grade
10 questions
Greek Bases tele and phon
Quiz
•
6th - 8th Grade