Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo...

17
G. Mecca – [email protected] – Università della Basilicata Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) 2 G. Mecca - Tecnologie di Sviluppo per il Web Sommario m Introduzione Server Applicativo per il Web m Principali tecnologie ASP 3.0 PHP m Sun J2EE e Microsoft .NET m In questo corso Programmazione Web: Architetture >> Sommario

Transcript of Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo...

Page 1: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

1

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

Tecnologie di Sviluppo per il Web

Programmazione Web:Architetture

versione 3.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons

(vedi ultima pagina)

2G. Mecca - Tecnologie di Sviluppo per il Web

Sommario

m IntroduzioneðServer Applicativo per il Web

mPrincipali tecnologieðASP 3.0ðPHP

mSun J2EE e Microsoft .NETm In questo corso

Programmazione Web: Architetture >> Sommario

Page 2: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

2

3G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

mNella lezione precedenteðtecniche per lo sviluppo di applicazioni Webðper semplificare la vita al programmatore, è

necessario utilizzare piattaforme che forniscano servizi applicativi

mServer applicativoðmodulo aggiuntivo del server Web che

fornisce i servizi richiesti

Programmazione Web: Architetture >> Introduzione

4G. Mecca - Tecnologie di Sviluppo per il Web

Introduzione

mServer Web con Server Applicativo

Programmazione Web: Architetture >> Introduzione

Server

DB

DBMSHT

TPInternet

Intranet

filesystemG

esto

red

ei F

ie

ServerApplicativo

applicazioni Web

browserHTTP

clientHTTP

Applicazione(es: Java)

Page 3: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

3

5G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

mWeb Application Serverð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)

Programmazione Web: Architetture >> Introduzione

6G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

mServizi tipiciðgestione del ciclo di vita delle applicazioni

(es: più richieste con una attivazione)ðdecodifica delle richieste del client (es:

decodifica di valori sottomessi con una form)ðsupporto alla produzione della risposta HTTPðgestione delle sessioni (es: utilizzando in

modo trasparente i cookie)ðgestione del contesto dell’applicazione

Programmazione Web: Architetture >> Introduzione

Page 4: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

4

7G. Mecca - Tecnologie di Sviluppo per il Web

Server Applicativo per il Web

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

Programmazione Web: Architetture >> Introduzione

8G. 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 ASP.NET

Programmazione Web: Architetture >> Tecnologie

Page 5: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

5

9G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

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

mPagina 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 <% … %>

Programmazione Web: Architetture >> Tecnologie

10G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

mEsempio 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>

Programmazione Web: Architetture >> Tecnologie

Page 6: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

6

11G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

mSemanticaðil server riceve una richiesta ad un URI che

corrisponde ad una pagina ASPðil motore ASP preleva il codice ASPðgli script vengono eseguiti dal server prima di

inviare la risposta al clientðil codice HTML risultante viene inviato come

risposta al client

Programmazione Web: Architetture >> Tecnologie

12G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

Programmazione Web: Architetture >> Tecnologie

Internetintranet

HT

TP

Mo

tore

AS

P

<HTML><!-- primo.asp --><HEAD><TITLE>Esempio</TITLE></HEAD><BODY>

Benvenuti. Ecco la data e l’ora <% Response.write Date %><% Response.write Now %>

</BODY></HTML>

<HTML><HEAD><TITLE>Esempio</TITLE></HEAD> <BODY>

Benvenuti. Ecco la data e l’ora 2 marzo, 2003, 12:40

</BODY> </HTML>

<HTML><HEAD><TITLE>Esempio</TITLE></HEAD> <BODY>

Benvenuti. Ecco la data e l’ora 2 marzo, 2003, 12:50

</BODY> </HTML>

primo.asp

primo.asp

Page 7: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

7

13G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

m Il linguaggio VBScriptðlinguaggio in cui vengono scritti gli script

delle pagine ASP 3.0ðlinguaggio interpretatoðsottoinsieme di Visual Basicðdebolmente tipato (uso senza dichiarazione)ðprogrammazione “basata su oggetti”

Programmazione Web: Architetture >> Tecnologie

14G. Mecca - Tecnologie di Sviluppo per il Web

Microsoft ASP 3.0

mProgrammazione “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

Programmazione Web: Architetture >> Tecnologie

Page 8: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

8

15G. 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ðSession: rappresenta la sessione di lavoro

dell’utenteðApplication: rappresenta il contesto

dell’applicazioneðServer: rappresenta il server HTTP

Programmazione Web: Architetture >> Tecnologie

16G. 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: nome = Request.QueryString(“nome”)ð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(“Tentativi:” & tentativi)

Programmazione Web: Architetture >> Tecnologie

Page 9: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

9

17G. 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à

Programmazione Web: Architetture >> Tecnologie

18G. Mecca - Tecnologie di Sviluppo per il Web

PHP

mEsempio<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>

Programmazione Web: Architetture >> Tecnologie

Page 10: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

10

19G. Mecca - Tecnologie di Sviluppo per il Web

Tecnologie non Orientate agli Oggetti

m In sintesiðapplicazione Web come collezione di script

(funzioni)mVantaggio ðsemplicità d’uso (rapidità di sviluppo)

m Limitiðpoco scalabiliðparadigma di programmazione Web diverso

da quello tradizionale

Programmazione Web: Architetture >> Tecnologie

20G. Mecca - Tecnologie di Sviluppo per il Web

Tecnologie Orientate agli Oggetti

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

m Idea fondamentaleðlo sviluppo di un’applicazione Web non

dovrebbe essere molto diverso dallo sviluppo di un’applicazione tradizionaleðes: riusabilità della logica applicativa

Programmazione Web: Architetture >> Tecnologie

Page 11: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

11

21G. Mecca - Tecnologie di Sviluppo per il Web

Tecnologie Orientate agli Oggetti

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)

Programmazione Web: Architetture >> Tecnologie

22G. Mecca - Tecnologie di Sviluppo per il Web

J2EE e .NET

mDue tecnologie OO principaliðJ2EEðASP.NET

mEstremamente similiðrispondono ad un’architettura di riferimento

comuneðcon alcune differenze (marginali) nelle

tecnologie componenti

Programmazione Web: Architetture >> J2EE e .NET

Page 12: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

12

23G. Mecca - Tecnologie di Sviluppo per il Web

Architettura di Riferimento

Programmazione 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

24G. Mecca - Tecnologie di Sviluppo per il Web

Architettura J2EE

Programmazione Web: Architetture >> J2EE e .NET

Server Applicativo J2EE

Servlet, Java

ServerPages(JSP)

JDB

C

DB

DBMSJavaBeans,EnterpriseJavaBeans

(EJB)

browserHTTP

ClientJ2ME

Client J2SE(Applet)

Page 13: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

13

25G. Mecca - Tecnologie di Sviluppo per il Web

J2EE

mServletð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”

Programmazione Web: Architetture >> J2EE e .NET

26G. Mecca - Tecnologie di Sviluppo per il Web

JSP

mEsempio 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>

Programmazione Web: Architetture >> J2EE e .NET

Page 14: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

14

27G. Mecca - Tecnologie di Sviluppo per il Web

Architettura .NET

Programmazione Web: Architetture >> J2EE e .NET

Server Applicativo .NET

PagineASP.NET

AD

O.N

ET

DB

SQLServer

Code “behind”.NET

Componentsbrowser

HTTP

Client.NET

28G. Mecca - Tecnologie di Sviluppo per il Web

.NET

mPagine 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

mADO.NETðtecnologia per l’accesso a DBMS relazionali

Programmazione Web: Architetture >> J2EE e .NET

Page 15: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

15

29G. Mecca - Tecnologie di Sviluppo per il Web

Confronto tra le Architetture

mVantaggi dell’architettura J2EEðstandard indipendente dalla piattaforma

mVantaggi dell’architettura .NETðaltamente ottimizzata per Windows

m In effettiðoramai le due architetture sono

intercambiabili

m Il prossimo obiettivo: “Web services”

Programmazione Web: Architetture >> J2EE e .NET

30G. Mecca - Tecnologie di Sviluppo per il Web

In Questo Corso

mArchitettura complessiva complessaðserver applicativi costosiðsi giustifica solo per applicazioni di fascia alta

m Forma semplificataðapplicazioni di fascia mediaðcomponenti “leggeri”

Programmazione Web: Architetture >> In Questo Corso

Page 16: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

16

31G. Mecca - Tecnologie di Sviluppo per il Web

In Questo Corso

Programmazione Web: Architetture >> J2EE e .NET

Tomcat 4

Servlet

JavaServerPages

JDB

C

DB

DBMSJavaBeans

browserHTTP

browserHTTP

32G. Mecca - Tecnologie di Sviluppo per il Web

Sommario

mArchitetture per Applicazioni WebðServer Applicativo per il Web

mPrincipali tecnologieðASP 3.0ðPHP

mSun J2EE e Microsoft .NETm In questo corso

Programmazione Web: Architetture >> Sommario

Page 17: Programmazione Web: Architetture€¦ · ðASP 3.0 ðPHP mSun J2EE e Microsoft .NET mIn questo corso Programmazione Web: Architetture >> Sommario. 13/05/2005 2 3 G. Mecca - Tecnologie

13/05/2005

17

33G. Mecca - Tecnologie di Sviluppo per il Web

Termini della LicenzaTermini della Licenza

m This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

m Questo lavoro viene concesso in uso secondo i termini dellalicenza “Attribution-ShareAlike” di Creative Commons. Per ottenereuna copia della licenza, è possibile visitarehttp://creativecommons.org/licenses/by-sa/1.0/ oppure inviare unalettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.