La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON."— Transcript della presentazione:

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

2 2 Levoluzione 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. Levoluzione tecnologica, la riduzione dei costi di connessione, laumento di utenza a banda larga, la diffusione di dispositivi per linput/output di dati multimediali sta cambiando il modo stesso di interagire col web sempre più caratterizzato da una vera e propria esperienza multimediale.

3 3 Fino a ieri il multimedia era relegato alloffline, oggi e sempre più in futuro, il multimedia sarà online. Offrire dati multimediali online significa potere gestire dinamicamente i contenuti e potere offrire allutente ciò che desidera in tempo reale. NASCE IL BISOGNO DI NUOVI SERVIZI MULTIMEDIALI DINAMICI

4 4 Per modificare il contenuto di pagine web basate su HTML in modo classico è necessario: -Scaricare il file HTML da modificare -Modificarlo -Fare lupload del file modificato sul server Tutto questo comporta quindi la necessità di un intervento umano per laggiornamento dei contenuti ed ovviamente laggiornamento 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).

5 5 Se quindi con le normali pagine HTML avviene che: BROWSER RICHIEDE index.html SERVER Trasmette il file index.html Con ASP e PHP avviene che: BROWSER RICHIEDE index.asp SERVER Trasmette 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

6 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 nellunità 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

7 7 Per quanto riguarda la programmazione web.Net mette a disposizione dei programmatori ASP.Net: levoluzione.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

8 8 PARTE 1: Manipolare le immagini dinamicamente

9 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.

10 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, tutto ciò che è fuori viene trattato come normale codice HTML.

11 11 CENNI INIZIALI: Familiarizziamo prima con il codice ASP.NET (3) PER LA LETTURA DI UN FILE PER ESEMPIO AVREMO: <% 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() %>

12 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: <% Dim image As New system.drawing.bitmap(immagine.gif) %> Limmagine è ora caricata in memoria ed attribuita alloggetto image. Limmagine, in questo caso gif, quindi a scala di colori, è stata convertita in RGB True Color a 24 bit.

13 13 MANIPOLARE IMMAGINI: Ridimensionare un immagine Come fare a ridimensionare limmagine 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) …

14 14 MANIPOLARE IMMAGINI: Restituire limmagine compressa Vogliamo ora restituire al browser limmagine 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() %>

15 15 ECCO IL RISULTATO: image.gif ASP.NET restituisce al browser

16 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 unapplicazione che sotto il controllo dellutente effettua il fotoritocco di un immagine.

17 17 PARTE 2: Utilizzare un GATEWAY per spedire SMS

18 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 luniversità, unapplicazione 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).

19 19 Spedire SMS: COSA SONO I GATEWAY (2) Ecco quindi cosa avverà: RICHIEDE sms.asp Inviando i dati per la spedizione dellsms BROWSERSERVER Invia una richiesta al Gateway Inviando i dati per la spedizione dellsms GATEWAY Invia lSMS Informa il server, e lapplicazione ASP, che lsms è stato inviatoLapplicazione ASP restituisce al browser una pagina HTML specificando che lsms è stato inviato

20 20 Spedire SMS: limplementazione (1) Vediamo ora il codice per spedire un sms con testo Ciao ad un cellulare. ECCO COME FAREMO: <% 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= &TEXTM ESSAGE=Ciao … Dove ad xxxx sostituiremo il nome account e la password per il gateway

21 21 Spedire SMS: limplementazione (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 lSMS) End if sr.Close() st.Close() %>

22 22 PARTE 3: Servizi PUSH via WAP

23 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: -lutente si colleghi al sito wap dinamico e possa scegliere una materia di esame di Informatica Applicata -lapplicazione spedirà un SMS indicando le date degli appelli per la materia scelta.

24 24 Servizi PUSH via WAP: WML Se il linguaggio di markup di pagine web è lHTML, 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: Dopo il prologo avremo il tag che dichiara linizio di codice WML, avremo il tag alla fine di tutto il codice.

25 25 Servizi PUSH via WAP: Il codice (1) Semplificando, le pagine visualizzate verranno chiamate CARDS, avremo quindi tra e i tag e La sintassi è molto semplice, quindi vediamo come dovrà essere il file wml che intendiamo creare: … (prologo) Per ricevere informazioni sugli appelli di Informatica Applicata compila i seguenti campi. Materia di Appello: Ling. Appl. Mult. Basi Dati Economia d'Impresa Numero Cellulare : Clicca qui per Inviare i Dati

26 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 <% 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 appello 23/06 ore post appello 30/06 ore 9.30" Materia(2)="Basi Dati e Sistemi Informativi: 1 appello 09/06 ore (PRESSO S.T.I.) - 2 appello 16/06 ore (PRESSO S.T.I.) - post appello 09/07 ore 10.30" Materia(3)="Economia e Gestione dell'Impresa: 1 appello 03/06 ore (PRESSO S.T.I.) - 2 appello 25/06 ore (PRESSO S.T.I.) - post appello 10/07 ore (PRESSO S.T.I.)" Numero=Request("Cellulare") MateriaN=Request("MateriaI") …

27 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() …

28 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 lSMS End if sr.Close() st.Close() %>

29 29 Servizi PUSH via WAP: Il codice (5) Vedremo ora il servizio allopera. 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.)

30 30 Servizi PUSH via WAP: Il servizio allopera (1) Vediamo ora come funzionerà il servizio PUSH da noi creato. Per prima cosa ci connetteremo via WAP alla pagina iniziale:

31 31 Servizi PUSH via WAP: Il servizio allopera (2) Apparirà così la pagina iniziale dalla quale sceglieremo la materia di cui ci interessa conoscere gli appelli (supponiamo Linguaggi e Applicazioni Multimediali):

32 32 Servizi PUSH via WAP: Il servizio allopera (3) Sceglieremo poi il numero di cellulare al quale spedire lSMS, magari possiamo spedirlo ad un amico a cui interessava quellesame: Clicchiamo poi su Clicca qui per Inviare i dati

33 33 Servizi PUSH via WAP: Il servizio allopera (4) A questo punto il servizio ci informerà che lsms è stato spedito correttamente: Potremo così leggere lSMS ricevuto e, se lo vorremo, mantenerlo memorizzato come promemoria:

34 34 CONCLUSIONI

35 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…


Scaricare ppt "1 Linguaggi ed Applicazioni Multimediali A.A. 2002/2003 Diego Alicata SERVIZI MULTIMEDIALI AVANZATI CON."

Presentazioni simili


Annunci Google