Componenti Web: client-side e server-side



Похожие документы
Protocolli e architetture per WIS

sito web sito Internet

Come funziona internet

Tecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer

Corso basi di dati Introduzione alle ASP

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

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

Implementazione di MVC. Gabriele Pellegrinetti

Siti interattivi e dinamici. in poche pagine

Architetture Web: un ripasso

Corso di Informatica Modulo T3 B1 Programmazione web

Database e reti. Piero Gallo Pasquale Sirsi

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

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

Corso di PHP. Prerequisiti. 1 - Introduzione

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

Flavio De Paoli

Architetture Web a tre livelli: CGI, SSI, ISAPI e codice mobile Architetture a 3 livelli (1)

EXPLOit Content Management Data Base per documenti SGML/XML

Base di dati e sistemi informativi

L architettura MVC (Model- View-Controller) Introduzione

Introduzione all elaborazione di database nel Web

b) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione

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

Lezione 1 Introduzione

19. LA PROGRAMMAZIONE LATO SERVER

Concetti base. Impianti Informatici. Web application

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Architetture Applicative

Titolo Alfresco. Titolo1 Non solo un documentale

Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR Contenuti del Corso

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Progetto di Applicazioni Software

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

ESERCITAZIONE Semplice creazione di un sito Internet

Il Web Server e il protocollo HTTP

SDD System design document

Concetti di base di ingegneria del software

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Il Sistema Operativo (1)

Architetture per le applicazioni web-based. Mario Cannataro

APPENDICE A Servlet e Java Server Page

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

Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O /

FileMaker Pro 13. Utilizzo di una Connessione Desktop Remota con FileMaker Pro13

Architettura client-server

Lezione n 1! Introduzione"

Web Programming Specifiche dei progetti

Progetto di Applicazioni Software

Laboratorio di Basi di Dati

Linguaggi di programmazione

WBT Authoring. Web Based Training STUDIO

Client - Server. Client Web: il BROWSER

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

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

Registratori di Cassa

SWIM v2 Design Document

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

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

XML e PHP. Gestire XML con PHP. Appendice

Dispensa di Informatica I.1

Installazione & Configurazione Php e MySQL su Mac Os X. Php

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

La memoria centrale (RAM)

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Il Protocollo HTTP e la programmazione di estensioni Web

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

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Approccio stratificato

Sommario. Introduzione 1

PIATTAFORMA DOCUMENTALE CRG

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Laboratorio di Informatica

Capitolo 4 Pianificazione e Sviluppo di Web Part

Sistemi avanzati di gestione dei Sistemi Informativi

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

Esame di INFORMATICA

Corso Web programming

Access. P a r t e p r i m a

Architettura di un sistema operativo

IL CENTRALINO VoIP. Schema progetto: Work-flow. Hydra Control

PROTOS GESTIONE DELLA CORRISPONDENZA AZIENDALE IN AMBIENTE INTRANET. Open System s.r.l.

Il web server Apache Lezione n. 3. Introduzione

Approfondimenti. Contenuti

Il sistema operativo TinyOS

Architetture e applicazioni web

Firewall applicativo per la protezione di portali intranet/extranet

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Scenario di Progettazione

B.P.S. Business Process Server ALLEGATO C10

Транскрипт:

Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente caratterizzate da un unità che fornisce un servizio, e da molteplici clienti per tale servizio Client 1 Client 2 Client N Server

Scenario particolare Il server in realtà è un punto di accesso logico a funzionalità fornite da un insieme di moduli. La comunicazione tra il server e i client è standardizzata tramite il protocollo HTTP. Un generico modulo client è basato su un applicazione, il browser, che deve supportare un insieme minimo di funzionalità (visualizzazione HTML) Chi fa cosa Come in ogni applicazione distribuita, occorre progettare come distribuire l attività computazionale sui vari moduli del sistema. In particolare, occorre capire quali compiti assegnare al server e ai client. Fattori di cui tener conto: latenza di comunicazione Possibile limitate capacità del client Eterogeneità dei client Scalabilità (congestione sul canale di comunicazione e sull applicazione server)

Latenza di comunicazione La comunicazione tra client e server ha sempre un costo in termini temporali La comunicazione deve avvenire soltanto quando è strettamente necessario La comunicazione ha luogo quando: L utente richiede informazioni che non possono essere conosciute sul momento nell ambito del modulo client. Limitate capacità del client Due possibili limitazioni: Piattaforma con basse (insufficienti) prestazioni Browser incapace di supportare funzionalità aggiuntive alla visualizzazione HTML Il browser costituisce l ambiente di esecuzione di potenziale codice, che implementa le attività del modulo client Il browser deve perciò supportare tale esecuzione, al fine di poter sfruttare le capacità computazionali del client

Scalabilità e congestione Il server gestisce un numero max di richieste nell unità di tempo: diminuendo la comunicazione, si possono servire contemporaneamente più client La diminuzione delle richieste HTTP abbassa il traffico di rete A ogni richiesta HTTP, il server deve impegnare la CPU: meno richieste significa minor carico (e quindi maggiore efficienza) La cache del browser Il browser generalmente mantiene sul file system una copia dei dati scaricati più recentemente. Nel caso tali dati vengano richiesti di nuovo, essi sono già presenti localmente e non occorre reperirli tramite la rete. Questo meccanismo è noto come caching; tipicamente si possono configurare alcuni parametri relativi alla cache del browser (p.es. la dimensione).

Utilizzo di proxy Il meccanismo del caching può essere utilizzato anche ricorrendo a calcolatori detti Proxy Un Proxy è un server, geograficamente vicino al client, a cui il browser richiede una risorsa web, prima di contattare il server che effettivamente la detiene. Se la risorsa è presente sul proxy, si scarica da lì, altrimenti si ricorre al server appropriato. Uso di caching: scenari Reperibilità nella cache del browser Reperibilità sul proxy Proxy Accesso al server (no caching) Proxy Server

Problemi con cache e proxy La cache e i proxy tendono a limitare il traffico di rete e a diminuire le latenze, ma: Non si ha la sicurezza che la risorsa reperita sia al momento coerente con quella effettivamente richiesta Quando la maggior parte delle richieste di riferisce a contenuti dinamici, la probabilità di reperire in cache/proxy la risorsa diventa molto bassa, e il meccanismo diventa inefficiente Sono state sviluppate altre soluzioni per questo problema, che richiedono però l intervento di applicazioni server-side (Akamai...) Far lavorare il client! In definitiva, un modo per migliorare le prestazioni generali dell applicazione è cercare di trasferire, quando possibile, una parte dell attività computazionale sul client Questo attività dovrà essere supportata/controllata dal browser Occorre sviluppare specifiche tecnologie per questo scopo

Fat client vs. Thin client Due alternative classiche : FAT CLIENT, ovvero buona parte dell attività è svolta sul client THIN CLIENT, non si fanno ipotesi sulle capacità del client, e quanto più possibile è svolto sul server Tendenza attuale: inizialmente il client viene implementato leggero ; eventualmente poi lo si carica (per migliorare la grafica) Se il client è troppo pesante, diventa lento e goffo. Plug-in per il Browser Il Browser viene generalmente progettato in modo da poter ospitare moduli addizionali (plug-in) che ne arricchiscono le funzionalità Nei browser moderni, i plug-in possono essere caricati automaticamente nel momento in cui si reperisce una risorsa che li richiede per svolgere la sua specifica attività client-side.

Programmabilità client-side Perché infine ha senso fornire la programmabilità client-side? Evitare comunicazioni P.es. controllare gli argomenti di un form HTML prima di inviarli Migliorare i tempi di risposta Strutturare meglio l applicazione web Riferendoci al design pattern MVC: Il controller viene fornito dai moduli Server-side Il model viene fornito da Database server Il modulo Client-side si presta per implementare alcuni comportamenti dinamici della view. Client-side: Applet Una tecnologia per poter sfruttare appieno le capacità del client è quello delle Applet Java. Il browser deve contenere un interprete Java (JVM), e accedere alle API del linguaggio. Una Applet è un programma vero e proprio, con sofisticata interfaccia grafica, che viene collocato all interno di una pagina HTML.

Applet: vantaggi Tutta la potenzialità del linguaggio Java Grafica spesso molto curata Dati possibilmente contenuti entro l applicazione che viene scaricata Semplice riuso della Applet come GUI in applicazione standalone. Applet: svantaggi Codice di dimensioni relativamente contenute (programmi piccoli) Tempo di download elevato ma soprattutto: insufficiente integrazione con l ambiente HTML (l interazione tra la Applet e documento è difficoltosa e limitata, se non addirittura impossibile)

Client side: scripting Eterogeneità delle piattaforme client Il modo più naturale per poter eseguire codice client-side è attraverso un interprete all interno del browser Il codice prende la forma di scripting, inserito direttamente all interno di documenti HTML. Speciali tag HTML devono supportare la presenza di script. Integrazione e interazione script/html Browser e scripting Un browser può supportare diversi linguaggi di scripting, implementando i rispettivi interpreti. Linguaggi di scripting client-side più diffusi: client-side JavaScript (Netscape) VBScript (subset MS VisualBasic)

JavaScript JavaScript è il linguaggio di scripting client-side più utilizzato Permette di interagire con l ambiente del Browser e con i documenti NON E UN SUBSET DI JAVA Il nome è stato scelto per motivi di marketing: inizialmente si chiamava LiveScript Nelle versioni più recenti può operare sulla rappresentazione interna del documento (DOM di W3C) Tecnologie server-side side Se sul client non si possono fare ipotesi, il server può essere equipaggiato con HW e SW specifico I contenuti HTML statici possono essere trattati da un semplice HTTP server Le tecnologie server-side sono mirate alla generazione di contenuti HTML dinamici, e si affiancano alle funzionalità di base del web server

Server-side: CGI Storicamente, la prima tecnologia server-side è stata CGI (Common Gateway Interface). La generazione di contenuto dinamico è esterna al web server Il web server passa i parametri della richiesta a un programma esterno, che fornisce la pagina di risposta come suo output. Il programma esterno può essere sviluppato con qualsiasi linguaggio. Server-side: scripting CGI, nella sua forma basilare, ha problemi di prestazioni e di manutenibilità. 1. La prima soluzione è stata l introduzione dello scripting sul lato server 2. Una prima forma consiste in scripting esterno al web server 3. L integrazione dello scripting nel web server permette ulteriori miglioramenti

Scripting: perché? Le pagine che compongono un applicazione web sono in genere soggetti a una velocità di aggiornamento molto elevata La possibilità di evitare un lungo ciclo edit-compile-link migliora la manutenibilità Un interprete in background che esegue script CGI a fronte di request HTTP, migliora le prestazioni (rispetto ai semplici processi CGI) L esperienza di Perl Un linguaggio particolarmente usato per I programmi CGI è Perl Caratteristiche: Linguaggio ad alto livello Possibilità di strutturazione O-O Interpretato (tipicamente) Adatto per l elaborazione di testo Supporto per le espressioni regolari Prodotto open-source

Servlets La necessità di migliorare ulteriormente le prestazioni ha spinto a una integrazione dell elaborazione di script all interno del server HTTP Un esperienza decisiva è stata quella delle Servlet : il web server è basato su una JVM, che esegue porzioni di codice Java a fronte di request HTTP Le attività del web server (p.es. Tomcat) vengono svolte utilizzando pesantemente il multithreading ASP Per migliorare anche la manutenibilità, Microsoft ha proposto la tecnologia ASP (Active Server Pages) L idea: affidare al contenuto HTML definizione della struttura della pagina, su cui poi intervenire con scripting (direttamente all interno dell HTML) ASP usa VBScript per questo scopo Gli strumenti tecnologici che seguono questo approccio sono noti come Template systems

JSP Analogamente ad ASP, JSP (Java ServerPages) è un template system. Il liguaggio di scripting utilizzato è Java (portabilità) Traggono vantaggio da tutta la ricchezza di Java e delle relative API Utilizzo del codice Java: Diretto, all interno delle pagine Indiretto, accedendo componenti detti JavaBeans