+ All Categories
Home > Documents > 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI...

1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI...

Date post: 02-May-2015
Category:
Upload: luciana-filippi
View: 217 times
Download: 1 times
Share this document with a friend
35
1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON
Transcript
Page 1: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

1

Linguaggi ed Applicazioni MultimedialiA.A. 2002/2003

Diego Alicata

SERVIZI MULTIMEDIALI AVANZATI

CON

Page 2: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

2

L’evoluzione tecnologica alla quale assistiamo ormai da anni, ha permesso, e permette sempre più, la diffusione di informazioni multimediali sia su personal computer che su altri devices (es: PDA, cellulari di ultima generazione, ecc…)

Per capire quanto il modo di interagire con la rete sia cambiato, basti ricordare quanto la prima Internet pubblica fosse caratterizzata nelle pagine web, dalla grande abbondanza di testi e dalla quasi totale assenza di immagini, audio e video.

L’evoluzione tecnologica, la riduzione dei costi di connessione, l’aumento di utenza a banda larga, la diffusione di dispositivi per l’input/output di dati multimediali sta cambiando il modo stesso di interagire col web sempre più caratterizzato da una vera e propria esperienza multimediale.

Page 3: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

3

Fino a ieri il multimedia era relegato all’offline, oggi e sempre più in futuro, il multimedia sarà online.

Offrire dati multimediali online significa potere gestire dinamicamente i contenuti e potere offrire all’utente ciò che desidera in tempo reale.

NASCE IL BISOGNO DI NUOVI SERVIZI MULTIMEDIALI DINAMICI

Page 4: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

4

Per modificare il contenuto di pagine web basate su HTML in modo classico è necessario:-Scaricare il file HTML da modificare-Modificarlo-Fare l’upload del file modificato sul server

Tutto questo comporta quindi la necessità di un intervento umano per l’aggiornamento dei contenuti ed ovviamente l’aggiornamento richiederà del tempo.

E’ per questo motivo che sono nati linguaggi di programmazione orientati al web che creano in tempo reale la pagina HTML corrispondente generandola dinamicamente.

Tra questi linguaggi ricordiamo PHP (per server Linux) ed ASP (Active Server Pages, per server Windows).

Page 5: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

5

Se quindi con le normali pagine HTML avviene che:

BROWSER

RICHIEDE index.html

SERVERTrasmette il file index.html

Con ASP e PHP avviene che:

BROWSER

RICHIEDE index.asp

SERVERTrasmette il codice HTML

-Il server legge index.asp-Lo interpreta-Genera un codice HTML

Nasce quindi la possibilità concreta di realizzare servizi multimediali on-demand per il web

Page 6: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

6

Per fornire un servizio via web in Tempo Reale, o comunque cercando di avvicinarsi a questo traguardo, uno dei problemi principali da superare è quello di diminuire il tempo di risposta del server.Interpretare codice ASP o PHP richiede grande occupazione di risorse e soprattutto molto tempo di CPU. Inoltre maggiori sono le richieste nell’unità di tempo tanto più tali risorse possono saturarsi ed il server rallentarsi o addirittura bloccarsi.Con Microsoft .NET la richiesta di risorse ed il tempo di CPU è di molto ridotto, questo perché .NET produce codice compilato che quindi sarà direttamente eseguito (non interpretato).

Microsoft .Net è una piattaforma di sviluppo dotata di un FRAMEWORK che:

-Si occupa della compilazione dei codici-Si occupa dello scheduling delle richieste alle risorse

-Gestisce le transazioni e gli eventuali overload

Page 7: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

7

Per quanto riguarda la programmazione web .Net mette a disposizione dei programmatori ASP.Net: l’evoluzione .Net di ASP.

I campi di applicazione di ASP.Net sono i più disparati ed in particolare, limitandoci ad i casi che affronteremo, vedremo come:

1. Manipolare delle immagini dinamicamente (ridimensionare, comprimere, e salvare in diversi formati).

2. Utilizzare un GATEWAY per spedire SMS via web

3. Implementare il GATEWAY per offrire servizi PUSH via WAP e WML

Page 8: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

8

PARTE 1:Manipolare le immagini dinamicamente

Page 9: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

9

CENNI INIZIALI: Familiarizziamo prima con il codice ASP.NET (1)

.Net ed ASP.Net supportano la sintassi di 21 linguaggi tra i quali i più importanti Visual Basic e C# (una sorta di C).

In realtà prendendo due qualsiasi linguaggi in .Net ci accorgiamo che la sintassi è davvero molto simile.

Noi comunque ci riferiremo alla sintassi del linguaggio di default ossia Visual Basic.

Page 10: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

10

CENNI INIZIALI: Familiarizziamo prima con il codice ASP.NET (2)

.Net mette a disposizione una sorta di librerie chiamate NAMESPACES. Come nel C, se utilizziamo funzioni di tali librerie dovremo prima dichiararle.

Il codice ASP.Net è racchiuso tra <% e %>, tutto ciò che è fuori viene trattato come normale codice HTML.

Page 11: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

11

CENNI INIZIALI: Familiarizziamo prima con il codice ASP.NET (3)

PER LA LETTURA DI UN FILE PER ESEMPIO AVREMO:

<%@ import namespace="system.io" %>

<%

dim s as Stream = File.Open("E:\daleggere.txt", FileMode.Open, FileAccess.Read)

dim r as New BinaryReader(s)

Dim output as String

Do While r.PeekChar()

output &= r.ReadChar()

Loop

r.Close()

s.Close()

%>

Page 12: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

12

MANIPOLARE IMMAGINI: Leggere un immagine

Il namespace che .Net mette a disposizione per la gestione delle immagini è system.drawing.

VEDIAMO ORA COME LEGGERE UN IMMAGINE:

<%@ import namespace="system.drawing" %>

<%

Dim image As New system.drawing.bitmap(“immagine.gif”)

%>

L’immagine è ora caricata in memoria ed attribuita all’oggetto image.

L’immagine, in questo caso gif, quindi a scala di colori, è stata convertita in RGB True Color a 24 bit.

Page 13: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

13

MANIPOLARE IMMAGINI: Ridimensionare un immagine

Come fare a ridimensionare l’immagine che abbiamo caricato?

Se per esempio vogliamo renderla del 50% più piccola

ECCO COME FAREMO:

Dim larghezza, altezza as Integer

larghezza = Int(image.width/2)

altezza = Int(image.height/2)

Dim nuova As New Bitmap(larghezza, altezza)

Dim g As Graphics = Graphics.FromImage(nuova)

g.CompositingQuality = Drawing2D.CompositingQuality.HighQuality

g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality

g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic

Dim rect As New Rectangle(0, 0, larghezza, altezza)

g.DrawImage(image, rect, 0, 0, altezza, larghezza, GraphicsUnit.Pixel)

Page 14: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

14

MANIPOLARE IMMAGINI: Restituire l’immagine compressa

Vogliamo ora restituire al browser l’immagine così creata come jpeg con qualità 90 (in qualità da 0 a 100)

ECCO COME FAREMO:…

Dim myEncoderParameters As New EncoderParameters(1)

Dim myEncoderParameter As New System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90)

myEncoderParameters.Param(0) = myEncoderParameter

Dim objImageCodecInfo() As ImageCodecInfo

objImageCodecInfo = ImageCodecInfo.GetImageEncoders

response.contenttype="image/jpeg"

nuova.Save(Response.OutputStream, objImageCodecInfo(1), myEncoderParameters)

nuova.dispose()

image.dispose()

%>

Page 15: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

15

ECCO IL RISULTATO:

image.gif

ASP.NET restituisce al browser

Page 16: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

16

MANIPOLARE IMMAGINI: Applicazioni

Le applicazioni di quello che abbiamo visto possono essere tantissime, immaginiamo di volere inviare ad un cellulare una immagine presa da un giornale web, o pensiamo ad un’applicazione che sotto il controllo dell’utente effettua il fotoritocco di un immagine.

Page 17: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

17

PARTE 2:Utilizzare un GATEWAY per spedire

SMS

Page 18: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

18

Spedire SMS: COSA SONO I GATEWAY (1)

Supponiamo di volere creare una applicazione che via web dovrà spedire degli sms, magari per inviare le ultime notizie, oppure per spedire informazioni sui cinema o, se creiamo una applicazione per l’università, un’applicazione che spedisca sms indicando le date degli appelli di esame.

Per fare ciò è prima di tutto necessario un GATEWAY Internet -> Cellulari, ossia un particolare hardware che faccia da tramite e che codifichi i dati provenienti da internet in normali SMS per la telefonia mobile.

Si tratterà quindi di un hardware che dovrà gestire le informazioni su vari protocolli.

Questi GATEWAY esistono e sono a disposizione dei programmatori (sotto pagamento di un canone).

Page 19: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

19

Spedire SMS: COSA SONO I GATEWAY (2)

Ecco quindi cosa avverà:

RICHIEDE sms.asp

Inviando i dati per la spedizione

dell’smsBROWSER SERVER

Invia una richiesta al Gateway

Inviando i dati per la spedizione dell’sms

GATEWAY

Invia l’SMS

š

Informa il server, e l’applicazione ASP, che l’sms è stato inviatoL’applicazione ASP restituisce al browser una pagina HTML

specificando che l’sms è stato inviato

Page 20: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

20

Spedire SMS: l’implementazione (1)

Vediamo ora il codice per spedire un sms con testo ‘Ciao’ ad un cellulare.

ECCO COME FAREMO:<%@ import namespace="system.io" %>

<%@ import namespace="system.net" %>

<%

Dim st As Stream

Dim sr As StreamReader

Dim risposta As String

Dim stringa As String

Stringa = “ACCOUNT=xxxx&PASSWORD=xxxx&COUNTRYCODE=+39&GSMCODE=347&PHONENUMBER=1072548&TEXTMESSAGE=Ciao”

Dove ad xxxx sostituiremo il nome account e la password per il gateway

Page 21: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

21

Spedire SMS: l’implementazione (2)

Continuando:…

Dim req As WebRequest = WebRequest.Create("http://gateway.smsitaly.com/gate/check.asp?“ & stringa)

Dim resp As WebResponse = req.GetResponse

st = resp.GetResponseStream

sr = New StreamReader(st)

Risposta = sr.ReadToEnd()

If Risposta = “01” then

Response.Write(“SMS inviato correttamente”)

Else

Response.Write(“Impossibile spedire l’SMS”)

End if

sr.Close()

st.Close()

%>

Page 22: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

22

PARTE 3:Servizi PUSH via WAP

Page 23: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

23

Servizi PUSH via WAP: Introduzione

Ci occuperemo ora di sfruttare le potenzialità di ASP.net e della creazione dinamica di contenuti per creare dei servizi PUSH accessibili via cellulari WAP.

Nel caso particolare la nostra applicazione dovrà rendere possibile che:

-l’utente si colleghi al sito wap dinamico e possa scegliere una materia di esame di Informatica Applicata

-l’applicazione spedirà un SMS indicando le date degli appelli per la materia scelta.

Page 24: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

24

Servizi PUSH via WAP: WML

Se il linguaggio di markup di pagine web è l’HTML, lo standard per le pagine WAP è il WML.

Il WML è un particolare XML, ossia un XML definito da un particolare DTD che definisce la sintassi di WML.

Per questo nel prologo di un file WML dovremo avere sempre:<?xml version="1.0"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD wml 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

Dopo il prologo avremo il tag <wml> che dichiara l’inizio di codice WML, avremo il tag </wml> alla fine di tutto il codice.

Page 25: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

25

Servizi PUSH via WAP: Il codice (1)

Semplificando, le pagine visualizzate verranno chiamate CARDS, avremo quindi tra <wml> e </wml> i tag <card> e </card>

La sintassi è molto semplice, quindi vediamo come dovrà essere il file wml che intendiamo creare:… (prologo)

<wml>

<card title="PROVA ASP.NET">

<p>Per ricevere informazioni sugli appelli di Informatica Applicata compila i seguenti campi.<br/><br/><br/>

Materia di Appello:

<select name="materia">

<option value="01">Ling. Appl. Mult.</option>

<option value="02">Basi Dati</option>

<option value="03">Economia d'Impresa</option>

</select><br/>

Numero Cellulare : <input name="cell" size="15"/><br/><br/>

<anchor title="Invia">Clicca qui per Inviare i Dati<br/>

<go href="spedisci_wap.aspx" method="post"><postfield name="MateriaI" value="$materia" /><postfield name="Cellulare" value="$cell" /></go>

</anchor></p></card></wml>

Page 26: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

26

Servizi PUSH via WAP: Il codice (2)

Il file spedisci_wap.aspx riceverà quindi il valore della materia sotto la variabile MateriaI e il numero di cellulare sotto la variabile Cellulare.

Vediamo quindi il codice di spedisci_wap.aspx<%@ import namespace="system.io" %>

<%@ import namespace="system.net" %>

<%

Dim st As Stream

Dim sr As StreamReader

Dim risposta, stringa, Numero, MateriaN, Materia(3), GSMCode, PhoneNumber, Sender, TextMessage As String

Materia(1)="Linguaggi e Applicazioni Multimediali: 1 appello 13/06 ore 14.30 - 2 appello 23/06 ore 09.30 - post appello 30/06 ore 9.30"

Materia(2)="Basi Dati e Sistemi Informativi: 1 appello 09/06 ore 10.30 (PRESSO S.T.I.) - 2 appello 16/06 ore 10.30 (PRESSO S.T.I.) - post appello 09/07 ore 10.30"

Materia(3)="Economia e Gestione dell'Impresa: 1 appello 03/06 ore 14.30 (PRESSO S.T.I.) - 2 appello 25/06 ore 09.00 (PRESSO S.T.I.) - post appello 10/07 ore 14.00 (PRESSO S.T.I.)"

Numero=Request("Cellulare")

MateriaN=Request("MateriaI")

Page 27: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

27

Servizi PUSH via WAP: Il codice (3)

Continuando:…

GsmCode = left(Numero,3)

PhoneNumber = right(Numero,len(Numero)-3)

Sender = "PROVA"

TextMessage = Materia(int(MateriaN))

Stringa = "Account=xxxx&Password=xxxx&CountryCode=+39&GsmCode=" & GsmCode & "&PhoneNumber=" & PhoneNumber & "&Sender=" & Sender & "&TextMessage=" & TextMessage

Dim req As WebRequest = WebRequest.Create("http://gateway.smsitaly.com/gate/check.asp?“ & stringa)

Dim resp As WebResponse = req.GetResponse

st = resp.GetResponseStream

sr = New StreamReader(st)

Risposta = sr.ReadToEnd()

Page 28: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

28

Servizi PUSH via WAP: Il codice (4)

Continuando:If Risposta = “01” then

MessaggioOUT=“SMS contenente le informazioni sulla materia specificata inviato.”

Else

MessaggioOUT=“Impossibile spedire l’SMS”

End if

sr.Close()

st.Close()

%>

<?xml version="1.0"?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>

<card title="PROVA ASP.NET">

<p><%=MessaggioOUT%></p>

</card>

</wml>

Page 29: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

29

Servizi PUSH via WAP: Il codice (5)

Vedremo ora il servizio all’opera.

Ricordiamoci che questo è solo un piccolo esempio di servizio PUSH che è possibile realizzare. E’ per esempio possibile anche realizzare servizi che accedono a determinate informazioni contenute in database od in siti internet e le restituiscono a chi le chiede (es: notizie aggiornate dal mondo, carriera lavorativa, ferie prese, ferie spettanti, ecc.)

Page 30: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

30

Servizi PUSH via WAP: Il servizio all’opera (1)

Vediamo ora come funzionerà il servizio PUSH da noi creato.

Per prima cosa ci connetteremo via WAP alla pagina iniziale:

Page 31: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

31

Servizi PUSH via WAP: Il servizio all’opera (2)

Apparirà così la pagina iniziale dalla quale sceglieremo la materia di cui ci interessa conoscere gli appelli (supponiamo Linguaggi e Applicazioni Multimediali):

Page 32: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

32

Servizi PUSH via WAP: Il servizio all’opera (3)

Sceglieremo poi il numero di cellulare al quale spedire l’SMS, magari possiamo spedirlo ad un amico a cui interessava quell’esame:

Clicchiamo poi su ‘Clicca qui per Inviare i dati’

Page 33: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

33

Servizi PUSH via WAP: Il servizio all’opera (4)

A questo punto il servizio ci informerà che l’sms è stato spedito correttamente:

Potremo così leggere l’SMS ricevuto e, se lo vorremo, mantenerlo memorizzato come promemoria:

Page 34: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

34

CONCLUSIONI

Page 35: 1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON.

35

CONCLUSIONI:

Abbiamo visto come è possibile struttare ASP.net ed i gateway per creare dei servizi molto potenti.

Allo stesso modo, con codice molto simile, sarà presto possibile creare anche applicazioni avanzate per UMTS.

Già oggi è possibile creare dinamicamente codice SMIL che può essere direttamente interpretato per esempio da alcuni PDA per creare applicazioni quali: karaoke, animazioni, guide interattive e tanto altro…


Recommended