View
1
Download
0
Category
Preview:
Citation preview
13/05/2005
1
G. Mecca – mecca@unibas.it – 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
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)
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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.
Recommended