30
G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web Tecnologie per Applicazioni Web: Introduzione 2 G. Mecca - Tecnologie di Sviluppo per il Web Sommario m Introduzione Contenuti Dinamici m Applicazioni Web Interfaccia: Il modulo “Basic Forms” di XHMTL Logica Applicativa Stato delle Sessioni Contesto dell’Applicazione m Architetture per Applicazioni Web Server Applicativo per il Web Principali tecnologie Componenti Sun J2EE e Microsoft .NET In questo corso Tecnologie per Applicazioni Web >> Sommario

Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

1

G. Mecca – [email protected] – Università della Basilicata

Tecnologie di Sviluppo per il Web

Tecnologie per Applicazioni Web:Introduzione

2G. Mecca - Tecnologie di Sviluppo per il Web

Sommario

m IntroduzioneðContenuti Dinamici

m Applicazioni WebðInterfaccia: Il modulo

“Basic Forms” di XHMTLðLogica ApplicativaðStato delle SessioniðContesto

dell’Applicazione

m Architetture per Applicazioni WebðServer Applicativo per

il WebðPrincipali tecnologieðComponentiðSun J2EE e Microsoft

.NETðIn questo corso

Tecnologie per Applicazioni Web >> Sommario

Page 2: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

2

3G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

m Tradizionalmenteðserver Web con contenuti “statici”ðdocumenti in formato HTML

m Enormi potenzialità del Web come piattaforma di calcolo

m Evoluzioneðserver Web con contenuti “dinamici”ð“applicazioni Web”

Tecnologie per Applicazioni Web >> Introduzione

4G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

m Server Web con contenuti statici

Tecnologie per Applicazioni Web >> Introduzione

architettura a due livellicentrata sui contenutinessun servizio

HTT

P

Internetintranet

browser

browser

Pagine

DocumentiHTML

Page 3: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

3

5G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

m Server Web con contenuti dinamici

Tecnologie per Applicazioni Web >> Introduzione

HTT

P

Internetintranet

browser

browser

DB

DBMS

Pagine

ApplicazioniWeb

architettura a due o a tre livellicontenuti e servizi interattivi

6G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

m Peròði protocolli (HTTP, URI, HTML,…) di Web

non sono stati pensati per le applicazioniði servizi sui siti Web sono aperti ad un

pubblico mondiale

mDi conseguenzaðle applicazioni Web sono significativamente

diverse dalle applicazioni tradizionali

Tecnologie per Applicazioni Web >> Introduzione

Page 4: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

4

7G. Mecca - Tecnologie di Sviluppo per il Web

Applicazioni Web

mUn’applicazione tradizionaleðinterfaccia utente (console, grafica, …)ðuna “logica” applicativaðuno stato per le sessioni (memoria)ðnormalmente monoutente

m Esempioð“Indovina il numero” >>

Tecnologie per Applicazioni Web >> Applicazioni Web

8G. Mecca - Tecnologie di Sviluppo per il Web

Applicazioni Web

m “Indovina il numero”ðapplicazione Javaðinterfaccia utente basata su consoleðlogica applicativa del giocoðstato delle sessioni: ogni partita è un’oggetto

della classe “Sessione” che memorizza nome dell’utente, numero da indovinare e tentativiðapplicazione rigorosamente monoutente

Tecnologie per Applicazioni Web >> Applicazioni Web

Page 5: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

5

9G. Mecca - Tecnologie di Sviluppo per il Web

Applicazioni Web

m “Indovina il numero” su Webðidea: gli utenti si collegano ad un sito con un

browser e giocano al gioco

m Problemiðinterfaccia: è necessario usare HTMLðlogica applicativa: è necessario far girare

l’applicazione sul serverðstato: il protocollo HTTP è privo di statoðutilizzo multiutente

Tecnologie per Applicazioni Web >> Applicazioni Web

10G. Mecca - Tecnologie di Sviluppo per il Web

Interfaccia

m Funzioni dell’interfacciaðinterazione con l’utenteðvisualizzazione di datiðacquisizione di dati dall’utenteð“eventi” generati dall’utente

m Esempio: consoleðscritte sullo schermo; letture dalla tastiera;

unico evento: il tasto “invio”

Tecnologie per Applicazioni Web >> Applicazioni Web >> Interfaccia

Page 6: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

6

11G. Mecca - Tecnologie di Sviluppo per il Web

Interfaccia

m Esempio: interfaccia a finestre (Swing)ðfinestre, menu, icone, pannellið“maschere” per l’acquisizione dei datiðinsieme ricco di eventi (es: evidenziare

un’area, schiacciare un bottone, selezionare un comando di un menu …)

m Per le applicazioni Webðinterfaccia basata su HTML

Tecnologie per Applicazioni Web >> Applicazioni Web >> Interfaccia

12G. Mecca - Tecnologie di Sviluppo per il Web

Interfaccia

m Interfaccia basata su HTMLðinterazione con il browserðvisualizzazione di messaggi in formato HTML

m Acquisizione dei datiðmaschere HTML (“form”)

m Il modulo “Basic Forms” di XHTMLðconsente di costruire maschere per

l’acquisizione di dati dall’utente

Tecnologie per Applicazioni Web >> Applicazioni Web >> Interfaccia

Page 7: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

7

13G. Mecca - Tecnologie di Sviluppo per il Web

Interfaccia

Tecnologie per Applicazioni Web >> Applicazioni Web >> Interfaccia

mRiassumendoðpresentazione dei dati utilizzando HTMLðacquisizione dei dati utilizzando le form

m Eventiðdue sole forme di eventoðl’utente schiaccia il bottone di una form

(richiesta get o post al server)ðl’utente seleziona un collegamento

(<a href=“”>…</a>, richiesta get)

14G. Mecca - Tecnologie di Sviluppo per il Web

Interfaccia

Tecnologie per Applicazioni Web >> Applicazioni Web >> Interfaccia

m “Indovina il numero” su Webðposso costruire gli schermi della mia

applicazione utilizzando codice HTML e maschereðesempio: maschera iniziale per acquisire il

nome dell’utenteðesempio: maschera successiva per i tentativiðeventi: l’utente schiaccia un bottone per

inviare i dati

Page 8: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

8

15G. Mecca - Tecnologie di Sviluppo per il Web

Logica Applicativa

m Il server Web deve essere in grado di eseguire applicazioni (programmi)

mCommon Gateway Interface (CGI)ðprotocollo di comunicazione tra server Web e

applicazioniðsoluzione originariamente introdotta da

Netscapeðsoluzione molto ancora molto utilizzata (Perl)

Tecnologie per Applicazioni Web >> Applicazioni Web >> Logica Appl.

16G. Mecca - Tecnologie di Sviluppo per il Web

CGI

m Alcuni URI particolari corrispondono a programmi (“script cgi”)

m Ad ogni richiesta, il server Web esegue il programma

m Invia al programma la richiesta HTTP scrivendola sullo standard input del prog.

mRiceve dal programma la risposta HTTP dallo standard output del prog.

Tecnologie per Applicazioni Web >> Applicazioni Web >> Logica Appl.

Page 9: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

9

17G. Mecca - Tecnologie di Sviluppo per il Web

CGI

Tecnologie per Applicazioni Web >> Applicazioni Web >> Logica Appl.

Programma

richiesta ad uno script CGI

Inte

rfac

cia

CG

I

Programma

stdin

stdout

stdin

stdout

Internetintranet

HTT

P

risposta generatadinamicamente

18G. Mecca - Tecnologie di Sviluppo per il Web

CGI

m Soluzione poco efficienteðad ogni richiesta viene attivata una nuova

istanza dell’applicazione

m Soluzione poco efficaceðl’applicazione deve decodificare i dati forniti

dall’utente sullo standard inputðl’applicazione comunica con il server Web

solo attraverso lo stdout (es: non può accedere al file di log)

Tecnologie per Applicazioni Web >> Applicazioni Web >> Logica Appl.

Page 10: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

10

19G. Mecca - Tecnologie di Sviluppo per il Web

Logica Applicativa

m “Indovina il numero” su Webðposso indirizzare le richieste ad

un’applicazione Java utilizzando CGIðl’applicazione Java analizza i dati inviati

dall’utente e produce le risposte

m AttenzioneðJava non è particolarmente adatto all’utilizzo

attraverso CGI (non genera eseguibili)

Tecnologie per Applicazioni Web >> Applicazioni Web >> Logica Appl.

20G. Mecca - Tecnologie di Sviluppo per il Web

Stato delle Sessioni

m Il protocollo HTTP è privo di statomOgni richiesta non ha memoria delle

precedentim Ad ogni richiesta il programma viene

rieseguitom Serve un meccanismo per mantenere

traccia dello stato della sessione tra una richiesta e l’altra

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

Page 11: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

11

21G. Mecca - Tecnologie di Sviluppo per il Web

Cookies

mCookiesðoriginariamente introdotti da Netscapeðmeccanismo per tenere traccia dello stato

della sessione in applicazioni Webðstandardizzati successivamente ðIETF RFC 2109 – HTTP State

m Attenzioneðil loro uso è controverso (privatezza)

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

22G. Mecca - Tecnologie di Sviluppo per il Web

Cookies

m Idea fondamentaleðutilizzare le intestazioni HTTPðdue nuove intestazioni

m Set-Cookieðnelle risposte del server per inviare un cookie

mCookieðnelle richieste del client per restituire i cookie

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

Page 12: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

12

23G. Mecca - Tecnologie di Sviluppo per il Web

Cookies

m Cookie=stringa di caratteriðattraverso l’intestazione “Set-Cookie”ðcoppie nome=valore

m Il client può accettare o rifiutare il cookiem Se lo accettaðlo salva sul disco localeðsi impegna a re-inviarlo al server con l’intestazione

“Cookie”ðper tutte le altre richieste della sessione di lavoro

corrente

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

24G. Mecca - Tecnologie di Sviluppo per il Web

Cookies

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

HTT

P

Set-Cookie: nome=Mario

Cookie: nome=Mario

invio di una formnome=Mario

Set-Cookie:paginevisitate=3

Cookie: nome=Mario;paginevisitate=3

Internetintranet

Set-Cookie:paginevisitate=4

Page 13: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

13

25G. Mecca - Tecnologie di Sviluppo per il Web

Stato delle Sessioni

m “Indovina il numero” su Webðutilizzando i cookies posso “salvare” sul

browser nome dell’utente, numero da indovinare, tentativi effettuatiðad ogni nuova richiesta, ripristino lo stato a

partire dai cookie, e decido come proseguireðalla fine invio la risposta e aggiorno il valore

dei cookie sul client (numero di tentativi)

Tecnologie per Applicazioni Web >> Applicazioni Web >> Stato

26G. Mecca - Tecnologie di Sviluppo per il Web

Contesto dell’Applicazione

m Problema delle applicazioni multiutenteðoltre ai dati delle sessioni (relative al singolo

utente) è utile mantenere dati relativi all’applicazione nel suo complessoðesempio: il numero di utenti che in quel

momento stanno giocando ðesempio: statistiche sugli utenti di un forum

di discussione

Tecnologie per Applicazioni Web >> Applicazioni Web >> Contesto

Page 14: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

14

27G. Mecca - Tecnologie di Sviluppo per il Web

Contesto dell’Applicazione

mContesto dell’applicazioneðdati condivisi da tutte le attivazioni

dell’applicazione

m Soluzione tradizionale con CGIðfile condivisiðle applicazioni salvano e recuperano i dati da

un file sul disco

Tecnologie per Applicazioni Web >> Applicazioni Web >> Contesto

28G. Mecca - Tecnologie di Sviluppo per il Web

Contesto dell’Applicazione

m “Indovina il numero” su Webðil numero degli utenti che stanno in quel

momento giocando viene salvato in un fileðogni volta che si aggiunge un utente il

numero viene incrementatoðogni volta che un utente termina il gioco il

numero viene decrementato >>

Tecnologie per Applicazioni Web >> Applicazioni Web >> Contesto

Page 15: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

15

29G. Mecca - Tecnologie di Sviluppo per il Web

Architetture per Applicazioni Web

m Server Web con Server Applicativo

Tecnologie per Applicazioni Web >> Architetture

Server Web

DB

DBMSHT

TPInternet

Intranet

filesystemG

esto

red

ei F

ie

ServerApplicativo

applicazioni Web

browserHTTP

clientHTTP

Applicazione(es: Java)

30G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

mWeb Application Serverðcaso particolare di Server Applicativoðsoftware che fornisce servizi per lo sviluppo

di applicazioni Webðlavora congiuntamente al server HTTP

oppure include un server HTTPðeterogeneità nelle tecnologie e nell’offerta di

servizi (fascia alta, fascia bassa)

Tecnologie per Applicazioni Web >> Architetture >> Server Applicativo

Page 16: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

16

31G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

m Servizi tipiciðdecodifica delle richieste del client (es:

decodifica di valori sottomessi con una form)ðgestione del ciclo di vita delle applicazioni

(es: più richieste con una attivazione)ðgestione delle sessioni (es: utilizzando in

modo trasparente i cookie)ðgestione del contesto dell’applicazioneðsupporto alla produzione della risposta HTTP

Tecnologie per Applicazioni Web >> Architetture >> Server Applicativo

32G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

m Servizi di fascia altaðreplicazione e “clustering”ðbilanciamento del caricoðalta affidabilità (“failover”)ðtransazioni distribuiteðgestione trasparente della persistenzaðsicurezzaðservizi Web (“Web services”)

Tecnologie per Applicazioni Web >> Architetture >> Server Applicativo

Page 17: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

17

33G. Mecca - Tecnologie di Sviluppo per il Web

Principali Tecnologie

m Tecnologie non orientate agli oggettiðMicrosoft ASP 3.0 (VBScript)ðPHP (PHP: Hypertext Preprocessor)ðColdFusion

m Tecnologie orientate agli oggettiðSun Java 2 Enterprise Edition (J2EE)ðMicrosoft .NET

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

34G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Applicazione Web con ASP 3.0ðcollezione di pagine ASP (.asp)

m Pagina ASPðcodice HTMLðcodice di script eseguiti dal client (browser)

JScript, VBScriptðcodice di script eseguiti dal server prima di

inviare la pagina al browser <% … %>

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 18: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

18

35G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Esempio di pagina ASP 3.0<HTML><!-- primo.asp --><HEAD><TITLE>Primo Esempio</TITLE></HEAD><BODY>Benvenuti. Ecco la data e l’ora <% Response.write Date %><% Response.write Now %>

</BODY></HTML>

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

36G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Semanticaðgli script vengono eseguiti dal server prima di

inviare la risposta al client

m Il linguaggio VBScriptðlinguaggio interpretatoðsottoinsieme di Visual Basicðdebolmente tipato (uso senza dichiarazione)ðprogrammazione “basata su oggetti”

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 19: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

19

37G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Programmazione “basata su oggetti”ðè possibile utilizzare oggetti predefiniti

invocandone i metodiðè possibile creare nuovi oggetti di classi

predefiniteðnon è possibile definire nuove classiðil server applicativo (Internet Information

Services) mette a disposizione degli oggetti predefiniti per gestire le richieste

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

38G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

mOggetti predefinitiðRequest: rappresenta la richiesta HTTP

(inclusi i valori delle eventuali form)ðResponse: rappresenta la risposta HTTPðServer: rappresenta il server HTTPðSession: rappresenta la sessione di lavoro

dell’utenteðApplication: rappresenta il contesto

dell’applicazione

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 20: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

20

39G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Tipicamente, in una pagina ASP 3.0ðgli script leggono i dati sottomessi dall’utente

accedendo all’oggetto Requestes: email = Request.QueryString(“email”)ðsalvano dei dati nell’oggetto Session per

mantenere lo stato (utilizza i cookie)ðscrivono il risultato da inviare al client

utilizzando l’oggetto Responsees: Response.Write(“Indirizzo:” & email)

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

40G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Inoltreðpuò gestire il contesto dell’applicazione

utilizzando l’oggetto Applicationðpuò agire sul server HTTP utilizzando

l’oggetto Serverðpuò accedere a basi di dati relazionali

creando oggetti ADO (basati su ODBC)

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 21: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

21

41G. Mecca - Tecnologie di Sviluppo per il Web

PHP

m Filosofia molto simile ad ASP 3.0m Linguaggio di scriptingðinterpretato dal serverðeseguibili su tutti i principali server HTTPðopen source (www.php.net)ðdebolmente tipatoðmodeste funzionalità orientate agli oggettiðprivilegia la semplicità

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

42G. Mecca - Tecnologie di Sviluppo per il Web

PHP

m Esempio<HTML><!-- primo.php --><HEAD><TITLE>Primo Esempio</TITLE></HEAD><BODY><?php echo “Benvenuti"; ?><?php echo “Ecco la data e l’ora”; ?><?php echo date("F j, Y, g:i a"); ?>

</BODY></HTML>

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 22: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

22

43G. Mecca - Tecnologie di Sviluppo per il Web

Tecnologie non Orientate agli Oggetti

m In sintesiðapplicazione Web come collezione di script

(funzioni)

m Vantaggio ðsemplicità d’uso (rapidità di sviluppo)

m Limitiðnon sono linguaggi orientati agli oggettiðnon adatti ad applicazioni di complessità

medio-alta

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

44G. Mecca - Tecnologie di Sviluppo per il Web

Tecnologie Orientate agli Oggetti

m Applicazioni Webðcollezioni di “componenti” (classi e oggetti)ðdefiniscono la logica applicativa

mComponente Software (da webopedia.com)“small binary object or program that performs a specificfunction and is designed in such a way to easily operate with other components and applications.”

m Enfasi su riuso e manutenzione

Tecnologie per Applicazioni Web >> Architetture >> Tecnologie

Page 23: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

23

45G. Mecca - Tecnologie di Sviluppo per il Web

Componenti

mComponenti “leggeri”ðoggetti di classi ordinarie progettate secondo

criteri opportuni per facilitare il riusoðes: JavaBeans

mComponenti “pesanti”ðoggetti di classi speciali, che usufruiscono di

servizi particolari (es: distribuzione, persist.)ðes: Enterprise JavaBeans (EJB)

Tecnologie per Applicazioni Web >> Architetture >> Componenti

46G. Mecca - Tecnologie di Sviluppo per il Web

J2EE e .NET

mDue tecnologie o. o. principaliðJ2EEð.NET

m Estremamente similiðJ2EE: basata su Javað.NET: basata sulla nuova generazione di

linguaggi di programmazione Microsoft, in particolare C#

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Page 24: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

24

47G. Mecca - Tecnologie di Sviluppo per il Web

J2EE e .NET

m Java, caratteristicheðsintassi basata sul Cðereditarietà singolaðmacchina virtuale

(JVM, bytecode)ðlinking dinamicoðgarbage collectionðmultithreadedðricca libreria di classi

(Java API)

m C#, caratteristicheðsintassi basata sul Cðereditarietà singolaðmacchina virtuale

(CLR, MSIL)ðlinking dinamicoðgarbage collectionðmultithreadedðricca libreria di classi

(.NET framework)

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

48G. Mecca - Tecnologie di Sviluppo per il Web

J2EE e .NET

m Java, un esempio

import java.lang.System;public class Esempio {public static void

main (String[] args) {System.out.println(“Esempio”);

}}

m C#, un esempio

using System;public class Esempio {public static void

Main (string[] args) {Console.WriteLine(

“Esempio”);}}

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Page 25: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

25

49G. Mecca - Tecnologie di Sviluppo per il Web

J2EE e .NET

mDifferenzeð.NET è una famiglia di linguaggi

interoperabili (C#, Visual Basic.NET, C++.NET, J#) – MSIL comuneðsopravvivono i puntatoriðsopravvivono le struttureðalcune caratteristiche avanzate (supporto per

design pattern a livello di linguaggio)ðgestione meno restrittiva delle eccezioni

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

50G. Mecca - Tecnologie di Sviluppo per il Web

Architettura di Riferimento

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Server Applicativo

Stratoper la

gestione di richieste

HTTP

Tec

no

log

ia p

er l’

acce

sso

ai d

ati

DB

DBMSStratodella

logicaapplicativa

Componenti

browserHTTP

AltriClient altri protocolli

Page 26: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

26

51G. Mecca - Tecnologie di Sviluppo per il Web

Architettura J2EE

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Server Applicativo J2EE

Servlet, Java

ServerPages(JSP)

JDB

C, J

DO

DB

DBMSJavaBeans,EnterpriseJavaBeans

(EJB)

browserHTTP

ClientJ2ME

Client J2SE(Applet)

52G. Mecca - Tecnologie di Sviluppo per il Web

J2EE

m Servletðclassi Java orientate a gestire richieste e

risposte (in particolare HTTP)

m Java Server Pagesðpagine in cui il codice HTML può essere

mischiato a codice Javaðcompilate in servlet

m JavaBeans e Enterprise JavaBeansðcomponenti “leggeri” e “pesanti”

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Page 27: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

27

53G. Mecca - Tecnologie di Sviluppo per il Web

JSP

m Esempio di pagina JSP<HTML><!-- primo.jsp --><HEAD><TITLE>Primo Esempio</TITLE></HEAD><BODY>Benvenuti. Ecco la data di oggi<% out.println(new java.util.Date()); %>

</BODY></HTML>

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

54G. Mecca - Tecnologie di Sviluppo per il Web

Architettura .NET

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Server Applicativo .NET

PagineASP.NET

AD

O.N

ET

DB

SQLServer

.NETComponentsbrowser

HTTP

Client.NET

Page 28: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

28

55G. Mecca - Tecnologie di Sviluppo per il Web

.NET

m Pagine ASP.NETðpagine in cui il codice HTML può essere

mischiato con il codice C#, VB.NET ecc.ðcompilate e non interpretateðnon esiste un corrispondente dei servlet

m ADO.NETðtecnologia per l’accesso a DBMS relazionali

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

56G. Mecca - Tecnologie di Sviluppo per il Web

Confronto tra le Architetture

m Vantaggi dell’architettura J2EEðstandard indipendente dalla piattaforma

m Vantaggi dell’architettura .NETðaltamente ottimizzata per Windows

m Il marketingðJ2EE PetStore e .NET PetStoreð“ASP.NET Fiasco”

m Il prossimo obiettivo: “Web services”

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Page 29: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

29

57G. Mecca - Tecnologie di Sviluppo per il Web

In Questo Corso

m Architettura J2EE m Architettura complessiva complessaðserver applicativi costosiðsi giustifica solo per applicazioni di fascia alta

m Forma semplificataðapplicazioni di fascia media

Tecnologie per Applicazioni Web >> Architetture >> In Questo Corso

58G. Mecca - Tecnologie di Sviluppo per il Web

In Questo Corso

Tecnologie per Applicazioni Web >> Architetture >> J2EE e .NET

Tomcat 4

Servlet

JavaServerPages

JDB

C

DB

DBMSJavaBeans

browserHTTP

browserHTTP

Page 30: Tecnologie di Sviluppo per il Web · 2003. 6. 18. · 18/06/2003 2 3 G. Mecca - Tecnologie di Sviluppo per il Web Introduzione mTradizionalmente ðserver Web con contenuti “statici”

18/06/2003

30

59G. Mecca - Tecnologie di Sviluppo per il Web

In Questo Corso

m Servlet e Java Server Pagesðgestiscono l’interfaccia dell’applicazioneðinterazione con l’utente

m JavaBeansðcomponenti che eseguono la logica

applicativa

m JDBCðaccesso a DBMS relazionali

Tecnologie per Applicazioni Web >> Architetture >> In Questo Corso

60G. Mecca - Tecnologie di Sviluppo per il Web

Sommario

Tecnologie per Applicazioni Web >> Sommario

m IntroduzioneðContenuti Dinamici

m Applicazioni WebðInterfaccia: Il modulo

“Basic Forms” di XHMTLðLogica ApplicativaðStato delle SessioniðContesto

dell’Applicazione

m Architetture per Applicazioni WebðServer Applicativo per

il WebðPrincipali tecnologieðComponentiðSun J2EE e Microsoft

.NETðIn questo corso