1 Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computing 1 Università di Bologna Dipartimento di Elettronica, Informatica e Sistemistica Middleware per il supporto all'erogazione di servizi e contenuti in scenari di Ubiquitous Computing Samuele Pasini ([email protected]) powered by _ Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computing 2 BACKGROUND
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 1
Università di Bologna
Dipartimento di Elettronica, Informatica e Sistemistica
Middleware per il supportoall'erogazione di servizi e contenuti in scenari di Ubiquitous Computing
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 2
BACKGROUND
2
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 3
Il progetto SWIMM
� Servizi Web Interattivi e Multimodali per la Mobilità:
� Progetto inizialmente finanziato dal Programma Regionale per la Ricerca Industriale, l’Innovazione ed il Trasferimento Tecnologico (PRRIITT), con la partecipazione di aziende private� Parte della Rete Alta Tecnologia dell’Emilia Romagna (ASTER)� Collaborazioni con PA, consorzi e singole aziende
“progettazione e realizzazione di una piattaforma software per l’erogazione di servizi personalizzati e differenziati sulla base
di preferenze utente, canale di comunicazione, dispositivo in uso, informazioni di sessione e contesto”
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 4
Ubiquitous Computing
� Accesso a servizi e contenuti in ogni momento , in ogni luogo e, potenzialmente, attraverso qualsiasi dispositivo
� Ecosistema di servizi in rete , in grado di comunicare tra loro e con l’utente finale
…
…
3
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 5
E questo significa…
� Mobilità� del terminale� dell’utente� dei servizi
� Eterogeneità� dei dispositivi� dei contenuti� delle tecnologie
� Necessità di integrazione� di informazioni� di funzionalità� di risorse distribuite
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 6
Mobilità
� Mantenimento delle informazioni di sessione
� Profilazione degli utenti / dei servizi
� Dipendenza dal contesto
4
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 7
Eterogeneità
� Adattamento dei contenuti
text + graphics
text audiovideo +audio +
text
Web SMS DVB-T VoIP
conversationrequest
response+
subscribe
publish +
broadcast
localfilter
+
� Multicanalità
� Multimodalità
� Paradigmi di interazione multipli
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 8
Servizio #4
Servizio #2Servizio #1
Servizio #3
Servizio #5
Integrazione
� Service-Oriented Architecture� catalogazione� binding� routing dei messaggi
� Business Process Management� composizione� configurazione� orchestrazione
� Quality of Service� replicazione� bilanciamento� tolleranza ai guasti� …
5
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 9
Qualche esempio…
Arianna si è iscritta a un servizio di streaming via Internet che crea playlistdi canzoni in base alle sue preferenze
� Nel campus universitario, attraverso il suo iPhone…� copertura Wi-Fi e banda molto elevata
� scaricamento di canzoni codificate ad alto bitrate
� Nel tragitto verso casa…� connessione UMTS e banda limitata
� scaricamento di versioni a minore bitrate
� Finalmente a casa…� collegamento via PC (connessione ADSL e speaker di qualità)
� riproduzione fermata sul telefono e ripresa sul PC, da dove interrotta
� E ancora: il sistema trasmette una canzone molto bella, ma che Arianna non conosceva; perché non segnalarla ai suoi amici? � utilizzo di un servizio di instant-messaging
� invito ad accettare il proprio streaming audio
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 10
Si può già fare?
Esistono numerose soluzioni per i singoli problemi …
� Meccanismi e framework per il mantenimento della sessione (ad esempio, in ambito Web: Cookie, Servlet container, SEAM, …)
� Toolkit per lo sviluppo di applicazioni context-aware (ContextToolkit, …) e modelli per definire cosa è contesto (ontologie, …)
� Linee guida per lo sviluppo di interfacce multimodali e accesso multicanale(W3C MMIF, …)
� Strumenti e standard per l’adattamento dei contenuti (MPEG-7, VoiceXML, …) e soluzioni ad hoc già in uso da applicazioni reali (OperaMini, …)
� Linguaggi e strumenti per definire ed eseguire processi di business (BPEL,jPDL / jBPM, Spring WebFlow, …) e per dare semantica ai singoli servizi che vi prendono parte (OWL-S, ..).
� Piattaforme per il mashup di risorse Web (Google Mashups, Yahoo Pipes, …)
6
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 11
Si può già fare?
Esistono numerose soluzioni per i singoli problemi …
…ma il loro impiego sinergico richiede spesso una progettazione ad hoc:� approcci molto verticali� realizzazioni dedicate a domini applicativi molto limitati
� approccio non invasivo → abilitazione di funzionalità, non obbligo
� Strategie di delega
� scenari applicativi modellati attraverso processi di business, costituiti da opportuni flussi di lavoro → composizione, orchestrazione
� supporto all’Ubiquitous Computing abilitato dal middleware, ma fornito da componenti off-the-shelf e/o sviluppati da terze parti
→ modularità, estendibilità
� automatizzazione e monitoraggio → riconfigurazione dinamica
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 14
Proposta
� Approccio a livelli� Separazione delle responsabilità� Integrazione delle soluzioni esistenti
8
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 15
“Risorse”
� Qualsiasi tipo di entità computazionalein gioco� applicazioni client
� provider di contenuti
� servizi che trasformano contenuto
� interfacce per ricevere richieste / informazioni dal mondo esterno
� basi di dati / conoscenza
� risorse fisiche presenti nella rete
� …
� Potenzialmente “legacy ” e “unaware ” …� …dell’esistenza del middleware
� …di essere parte di un qualche scenario
di Ubiquitous Computing
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 16
“Proxy”
� Rappresentazione uniforme dei diversi tipi di risorse� metadati
� lifecycle
� Funzionalità di collante tra le risorse ed il middleware vero e proprio
Proxy
Proxy
Proxy
Proxy
� Obiettivo: partecipazione a processi di business� invocazione di operazioni sulle risorse
“proxate”
� invocazione di operazioni sul middleware
� riusabilità
� sviluppo modulare
� configurazione modulare
Synthe-sizer
XMLparser
Podcastcreator
Webserver
SMSgateway
VoIPserverplain text
phone call
resource publishing
SMS sending
abort
9
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 17
“Proxy” – reificazione
� superamento dell’eterogeneità� possibilità di estendere le capacità di
una risorsa attraverso il comportamento del suo proxy
Esistenza del codice e dei metadati di un proxy
Disponibilità del proxyper l’uso da parte del middleware
Inizializzazione di unaistanza dell’oggetto proxy
Predisposizione di una differenteconfigurazione del proxy
per ogni processo a cui partecipa
esecuzione
registrazione attivazione
configurazione
deco
nfig
uraz
ione
disa
ttiva
zion
ede
regi
stra
zion
e
� Impiego di una risorsa ai fini di un processo di business:
“associazione di tale risorsacon l’insieme delle sue impostazioni che corrispondono a quel processo”
� Reificazione di un proxy� attuazione di tale associazione
� insieme di tutte e sole le operazioni che il middleware può compiere su un proxy
↓
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 18
Un esempio di reificazione
registration
registered to the middleware
activation
proxy ready on host #1
configuration
Arianna favourite genre
proxy implementation and metadata
Resourcemedia server
� Non obbliga, ma permette…� …aggiunta/sostituzione runtime di componenti
� …esistenza di configurazioni differenziate
� …replicazione/mobilità/bilanciamento del carico
proxy ready on host #2
activation
someone else’sfavourite genre
configuration
Arianna’s friend favourite genre
configuration
executionexecution
(accept connection and perform streaming)
execution
(…)(…)
10
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 19
“Sessione”
� Informazioni mantenute attraverso successive esecuzioni (dei proxy) di una stessa risorsa� informazioni non condivise tra proxy di
diverse risorse
� lettura/scrittura in stile blackboard
Session
� Differenti scope di visibilità� corrispondenti agli stati di
reificazione dei proxy
Resource lifetimesession
Proxy instancesession
Configurationsession
Executionsession
registration
initialized
configuration
configured
execution
configured
execution
initialized
registered
activation
configured
config.
execution
activation
config.
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 20
Un esempio di scoping delleinformazioni di sessione
Resource lifetimesession
Proxy instancesession
� Non obbliga, ma permette…� …gestione affidabile dello stato (mobilità, failover, …)
� …differenti semantiche d’uso (in funzione dello scenario o delle risorse)
Configuration session
Execution session
registration
proxy implementation
and metadata
initialized on host #1
configuration
Ariannafavourite genre
someone else’sfavourite genre
initializedon host #2
registered to the middleware
activation
Arianna’s friend favourite genre
config.
execution
Resourcemedia server
executionconnection setup
played songs
multicast group memberships
11
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 21
“Contesto”
� Informazioni condivise tra (i proxy di) diverse risorse all’interno di uno stesso processo di business� disaccoppiamento
produttori/consumatori
� lettura/scrittura in stile blackboard
Context
business process #2
Context
context dataProxy
A2Proxy
CResource
C
business process #1
Context
context dataProxy
A1Proxy
B
Resource A
Resource B
� Esistenza di più configurazioni di proxy per una stessa risorsa che produce/consuma contesto� distribuzione n : m
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 22
Un esempio di distribuzione delleinformazioni di contesto
“online music scenario” business process
IPanalysis
contentserver
contentplayer
Context
packets round-trip time now listening song: XXX
connection type
deviceping
IMclient
IMserver
� Non obbliga, ma permette…� …condivisione di informazioni tra proxy di risorse che non interagiscono direttamente
� …differenti meccanismi di distribuzione delle informazioni generate/consumate da una risorsa, attraverso i differenti processi di business a cui ciascun suo proxy partecipa
12
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 23
“Workflow”
� Insiemi di attività strutturate che coinvolgono i proxy� logica di business� logica di controllo
� Uno o più workflow all’interno di ogni processo di business� esecuzione sincrona (richieste utente)
� esecuzione asincrona (eventi)
Workflow
…Proxy
Media streaming
service
Resourcemedia server
(1) request
playback parameters
Proxy
Media player
Resourcemediaplayer
(2)
URL
Direct connection
(3)
� Composizione (buildtime) ed orchestrazione (runtime) gestite dai layer inferiori del middleware� interazione diretta tra proxy PROIBITA
� interazione diretta tra risorse POSSIBILE
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 24
Gestione del ciclo di vitadi un workflow
� Creazione/cancellazione runtime di processi di business� necessità di gestire il ciclo di vita dei corrispondenti workflow
� Operazioni di management associate ai passi di reificazione dei proxy che partecipano a ciascun workflow
� bind : scelta (o creazione) delle istanze di proxy che partecipano → eventuale attivazione
� start : configurazione di ogni singola istanza di proxy per il workflow corrente →configuration
�� execexec : esecuzione della logica di business di ogni proxy/risorsa che partecipa al workflow → execution
� stop → deconfiguration
� unbind → eventuale disattivazione
13
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 25
Un esempio di gestionedel ciclo di vita di un workflow
bindactivation(if needed)
stopmediaserverproxy
mediaplayerproxy
mediaserverproxy
mediaplayerproxy
unbindmediaserverproxy
mediaplayerproxy
� Non obbliga, ma permette…� …interazione con i proxy (e, eventualmente, le risorse) in corrispondenza di
ciascuna fase del ciclo di vita dei workflow a cui essi partecipano
� …estensione del comportamento delle risorse mediante la logica di business dei proxy (es: memorizzazione di configurazioni multiple)
startmediaserverproxy
mediaplayerproxy
genre = popmood = calm
configuration
execmediaserverproxy
mediaplayerproxy
url = mms://....
execution
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 26
“Interaction Module”
� Accesso ai processi di business gestiti dal middleware attraverso la ricezione di “richieste”� supporto a differenti paradigmi di
interazione� analisi del contenuto della richiesta
(“normalizzazione”) demandato agli strati inferiori del middleware
Interaction Module
� Realizzazione di un diverso paradigma per ciascun modulo, indipendentemente dal contenuto della richiesta Request-only
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 27
Esempio di interazione –Invio di feed RSS via SMS
� Possibilità di usare qualsiasi tipo di interfaccia esterna, nel ruolo di “risorsa” da cui parte l’interazione� HTTP, RMI, SMS, e-mail, socket UDP, sensori RFID, MhP, …
� Adozione di “intercettori leggeri” come “proxy” di tale risorsa� possibilità di interazione ad hoc
� associazione di un identificativo di formato ai dati grezzi provenienti dalla risorsa
� inoltro all’Interaction Module che realizza il paradigma di interazione desiderato
� Normalizzazione di ogni “richiesta” in funzione del suo identificativo di formato � affidata agli strati inferiori del middleware
� autenticazione, estrazione parametri, identificazione workflow da eseguire, …
Support facility level
Integration facility level
Request-onlyInteraction Module RSS to SMS Workflow
Remote side
Network side
Middleware side
Context Session RSS poller
filter
gateway
Resource Resource Resource Resource
Remote
Web site EJB3Java bean
G-SMS gateway
formatter
Resource
Java bean
RSS parser
Resource
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 28
“Engine” level
� Motori per l’applicazione dei meccanismi descritti
� Composition Engine: analisi della compatibilità dei proxy che partecipano ai workflow e creazione di tali workflow
� Normalization Engine: analisi e trasformazione dei dati grezzi in ingresso al sistema, in accordo al formato (syntax) dichiarato
� Orchestration Engine: esecuzione dei workflow, supporto alla logica di controllo e al flusso dei dati al loro interno, calcolo dei parametri runtimecon cui invocare i proxy (mapping)
� Reification Engine: invocazione delle operazioni di reificazione richieste dalle varie attività del middleware
15
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 29
“Registry” level
� Basi di conoscenza per l’applicazione dei meccanismi descritti
� Template ed Expression DomainRegistry : basi di conoscenza necessarie per la creazione dei workflow
� Resource Registry : metadati e stato corrente di ogni proxy registrato nel sistema
� Mapping Domain Registry : insieme dei riferimenti ai passibili valori attuali da sostituire ai parametri formali previsti dai proxy
� Syntax Registry : collezione degli algoritmi di normalizzazione dei formati di richiesta noti al middleware
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 30
Funzionamento reale Funzionamento reale ––ricezione e analisi di una ricezione e analisi di una
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 34
Riflessioni (1)…
� I “proxy” forniscono un potente strumento per ragionare sui singoli scenari di Ubiquitous Computing ad un livello di astrazione elevato� rappresentano le risorse in gioco superandone le eterogeneità� possono arricchire di semantica e/o funzionalità il loro comportamento
� permettono di descrivere ogni scenario applicativo come un’insieme di attività da coordinare, prescindendo da specifiche tecnologie / caratteristiche
� Il processo di “reificazione” modella perfettamente le situazioni di distribuzione, replicazione e mobilità dei servizi
� Il supporto al mantenimento delle informazioni di “sessione” permette mobilità di utenti e terminali e garantisce grande espressività
� Il supporto alla distribuzione delle informazioni di “contesto” garantisce la loro disponibilità e ne permette diverse possibili modellazioni
� La gestione del “ciclo di vita” dei processi di business, attraverso la associazione con opportune configurazioni di utilizzo delle risorse coinvolte, permette intrinsecamente di profilare ogni processo di business in funzione delle esigenze dell’utente che lo ha creato
18
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 35
Riflessioni (2)…
� Il coordinamento di più operazioni all’interno di un “workflow” permette l’integrazione di componenti finalizzati all’adattamento e/o alla trasformazione dei contenuti
� L’utilizzo dei “proxy”(in luogo delle effettive risorse ad essi corrispondenti) permette di gestire in maniera trasparente l’erogazione di contenuti multicanale
� Grazie ai concetti di “sintassi” e “normalizzazione”, la gestione dei diversi paradigmi di interazione può essere affidata a “moduli (di interazione)”agnostici rispetto ai dati che trattano ed indipendenti tra loro
� Grazie agli stessi concetti, l’integrazione di interfacce multimodali diventa possibile attraverso lo sviluppo di semplici proxy “intercettori leggeri”, in grado di:� dialogare con ciascuna di esse nel modo più appropriato� istruire il middleware su come valutare le informazioni ricevute
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 36
…cosa ancora?
� I “metadati” associati a ciascun proxy devono garantire il corretto funzionamento dei meccanismi descritti� correttezza a build-time delle strutture workflow
� risoluzione a run-time dei parametri di invocazione
� utilizzo in accordo ai paradigmi di invocazione leciti
� vincoli su parametri di esecuzione
� ecc...
↓
È possibile usare gli stessi metadati anche per automatizzare il processo di creazione / configurazione / modifica di un workflow?� user-friendliness : tool e interfacce di gestione semplificati
� QoS: dipendenza da caratteristiche dinamiche
� adattività : riconfigurazione dinamica e automatica
19
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 37
Composizione automatica –“template”
� Scenari applicativi…� …modellati sulla base di processi di business generici� …valorizzati con proxy di risorse reali
� Possibilità di definizioni ricorsive
content transformation template - actualized
content aggregation template – actualized
RSS Parser(extracts title& description)
text 2 wavesynthesizer(Festival)
wave 2 mp3encoder(LAME)
userpref.
reader
RSSreader
Podcastchanneldescript.creator
contenttransformation
template(XML to mp3)
TAFforecastreader
contenttransformation
template(METAR to mp3)
content transformation template
content aggregation template
sourceschooser
sourcereader
sourcesjoiner
1…*
contenttranscoder
contentadapter
0…*
contenttransfor-mation
template
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 38
Composizione automatica –“expressions”, “roles”
� Calcoli deterministici che impongono condizioni su proprietà
� statiche (metadati)
� dinamiche (contesto, sessione, QoS, …)
� Utilizzo del concetto di “ruolo” che ciascuna risorsa si candida a ricoprire nell’ambito del template considerato
� sostituzione di valori attuali ai parametri formali dei calcoli
pipeline processing template
producer consumer
producer.outputMime == consumer.inputMime
20
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 39
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 41
IMPLEMENTAZIONE
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 42
Esperienze reali
� … aggregazione personalizzata e adattamento dinamico di contenuti in formato RSS e HTML, prelevati da fonti ‘legacy’ (Repubblica.it, Corriere.it, blog vari, Arstud, …), verso device eterogenei (palmari, pc, smartphone, cellulari tradizionali, riproduttori mp3, …) e formati quali e-mail, HTML, SMS, Podcast, MHP e VoIP.
� … rilevamento della posizione geografica degli utenti e fornitura dinamica di servizi e contenuti location-driven
� … aggregazione personalizzata, adattamento e georeferenziazione di informazioni meteo (prelevati da fonti ‘legacy’ e in formato eterogeneo) verso formati HTML e Podcast
� … adattamento e georeferenziazione di guide turistiche ottenute via WebServicesverso formati di uscita HTML e Podcast
� … aggregazione personalizzata e adattamento dinamico di informazioni di viabilitàverso formati SMS e HTML
� …
22
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 43
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 44
Esperienze reali –adattamento di contenuti Web
� Autenticazione…
Web identification business process
LifetimeSpanSession
Proxy Instance Session
Active Configurat.Session
CurrentExecutionSession
Proxy:HTTP filter
ResourceWeb site’s
HTML pages
Request/Response
Interaction Module
Web login Workflow
middlewarelogin
cookie-userassociations
23
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 45
Esperienze reali –adattamento di contenuti Web
� …connettività GPRS
Web content GPRS adaptation business process
Context
LifetimeSpanSession
Proxy Instance Session
Active Configurat.Session\
CurrentExecutionSession
Proxy:HTTP filter
ResourceWeb site’s
HTML pages
Request/Response
Interaction Module
Web content GPRS adaptation Workflow
ISPanalysis
picturedown-
sampling
pageresizer
HTTP requestserving
client IP
WURFLanalysis
ISP screen size
cookie-userassociations
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 46
Esperienze reali –adattamento di contenuti Web
� …connettività WiFi
Web content Wi-Fi adaptation business process
Context
LifetimeSpanSession
Proxy Instance Session
Active Configurat.Session
CurrentExecutionSession
Proxy:HTTP filter
ResourceWeb site’s
HTML pages
Request/Response
Interaction Module
Web content Wi-Fi adaptation Workflow
ISPanalysis
WURFLanalysis
HTTP requestserving
pageresizer
client IP ISP screen size
cookie-userassociations
24
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 47
Risultati sperimentali –overhead
� Cicli di esecuzioni ripetuti� servizi reali
� servizi fittizi (solo overhead)
� Sistema sotto forte carico� overhead medio introdotto dal
middleware pari a circa il 10% del totale
� overhead massimo mai superiore al 14%
Testbed costituito da due workstation identiche (rispettivamente: middleware e risorse) dotate di CPU Intel Pentium 4 a 3,06 GHz, 2 GB di RAM e sistema operativo Linux con kernel 2.6.15. – Connessione di rete LAN a 1Gb – Cicli burst di 1000 richieste ad intervalli di 100 millisecondi
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 48
Risultati sperimentali –scalabilità (1)
� Tempi di risposta in funzione del numero di proxy per workflow� invocazione remota : crescita lineare
e dipendente dall’infrastruttura di rete
� risoluzione dei parametri : crescita dipendente dal numero di parametri e dai domini di mapping interessati
� Possibilità di intervento sull’algoritmo di mapping� soluzione sequenziale migliore in
presenza di workflow costituiti da un numero limitato di proxy
� soluzioni con parallelismo migliori per workflow con un numero elevato di proxy
Testbed costituito da due workstation identiche (rispettivamente: middleware e risorse) dotate di CPU Intel Pentium 4 a 3,06 GHz, 2 GB di RAM e sistema operativo Linux con kernel 2.6.15. – Connessione di rete LAN a 1Gb – Cicli burst di 1000 richieste ad intervalli di 100 millisecondi
25
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 49
Risultati sperimentali –scalabilità (2)
� Occupazione di memoria in funzione del numero di richieste servite contemporaneamente
� Le tecnologie usate per l’implementazione permettono un efficiente riuso delle risorse già in memoria→ JBoss AS pooling & clustering
→ Hibernate cache
→ …
� Il concetto stesso di workflowpermette l’esecuzione di operazioni in pipeline→ ogni stadio (= proxy stub) della
pipeline è immediatamente disponibile per nuove operazioni anche se il workflow non è concluso
Testbed costituito da due workstation identiche (rispettivamente: middleware e risorse) dotate di CPU Intel Pentium 4 a 3,06 GHz, 2 GB di RAM e sistema operativo Linux con kernel 2.6.15. – Connessione di rete LAN a 1Gb – Cicli burst di 1000 richieste ad intervalli di 100 millisecondi
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 50
SVILUPPI
26
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 51
Insegnamenti
� Disaccoppiamento tra le risorse� dominazione della complessità� minimizzazzione delle dipendenze da funzioni del middleware
� ortogonalizzazione delle funzionalità di supporto all’Ubiquitous Computing
� Coordinamento di risorse esterne al middleware� integrazione di componenti e soluzioni eterogenee
� gestione del ciclo di vita e dei rapporti di collaborazione
� modellazione estremamente consistente
� modularità, manutenibilità e riutilizzabilità del software
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 52
Ulteriori esigenze
→ Nella maggior parte degli scenari di Ubiquitous Comp uting che ci sono stati commissionati, tuttavia, tutto questo “p oter fare” non sempre è servito !!� dimostrazione della flessibilità e versatilità del middleware ☺
� inutile overhead di installazione, configurazione ed esecuzione �
→ È necessario raffinare le dipendenze funzionali tra le varie parti del sistema e permettere deployment parziali / increment ali !!
distribuzione dinamica e replicazione dei componenti
▪ su nodi “vicini” ai terminali utente
▪ direttamente sui terminali degli
utenti
gestione della Qualità del Servizio
▪ meccanismi di riconfigurazionedinamica
installazioni “special purpose”
▪ profilate per scenari con caratteristiche
fissate
27
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 53
� Ambienti run-time alternativi a quello del prototipo� sviluppo con tecnologie alternative
� estensioni degli standard
� astrazioni di generalità
� verifica della validità teorica generale della proposta
Direzioni di sviluppo –profili di installazione
� Isolamento o esclusione di componenti dell’architettura del middleware� composizione
� domini di mapping
� registrazione dinamica delle risorse
� motore di normalizzazione
� …
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 54
� Soluzioni per l’integrazione business-to-business (B2B) e business-to-consumer(B2C) basate sulla definizione di processi di business� Enterprise Service Bus: Apache ServiceMix, Mule, …
� Framework Web: Spring WebFlow, SEAM, …
� Framework per componenti: Spring, OSGi, …
� Trasferimento tecnologico� sviluppo di competenze
� esigenze reali dei committenti
� “evangelizzazione”
Direzioni di sviluppo –profili di installazione
28
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 55
� Soluzioni per l’integrazione business-to-business (B2B) e business-to-consumer(B2C) basate sulla definizione di processi di business� Enterprise Service Bus: Apache ServiceMix, Mule, …
� Framework Web: Spring WebFlow, SEAM, …
� Framework per componenti: Spring, OSGi, …
� Trasferimento tecnologico� sviluppo di competenze
� esigenze reali dei committenti
� “evangelizzazione”
Inte
ract
ion
Mod
ule
Nor
mal
izat
ion
Eng
ine
Wor
kflo
w
Orc
hest
ratio
nE
ngin
e
SyntaxRegistry
Resource Registry
MappingRegistry
Tra
nsac
tions
Nam
ing
Sec
urity
Per
sist
ency
Mes
sagi
ng
Ses
sion
Rei
ficat
ion
Eng
ine Con
text
ProxyProxyResource Resource
Direzioni di sviluppo –profili di installazione
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 56
Direzioni di sviluppo –distribuzione e replicazione
� Tecnologie e soluzioni tipiche dell’ambito Enterprise� distribuzione
� binding
� messaggistica
� persistenza
� …
� Sviluppo basato sul concetto di componenti� adozione di middleware / framework / strumenti aggiuntivi
(EJB container, SEAM, JSF, Spring, Hibernate, …)
� Disallineamento tra progettazione e implementazione� modellazione di componenti autonomi ed indipendenti
(interfacce, dipendenze, ciclo di vita, ambiente di esecuzione, distribuzione, …)
� codifica di oggetti che interagiscono più o meno direttamente tra loro
(ereditarietà, modificatori di visibilità, eccezioni, passaggio per valore / riferimento, …)
29
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 57
Java : •eterogeneità dispositivi e VM (JavaSE, JavaME CLDC / MIDP, Dalvik VM, …)•implementazione di librerie native (JNI) e/o particolari standard (es: JSR-179, …)•caricamento , isolamento e versionamento delle classi•dichiarazione e risoluzione run-timedelle dipendenze
.NET:•mancanza di librerie e funzionalitànella versione per terminali mobili (CF)•esecuzione affidabile solo su sistemi operativi Microsoft•maggiore semplicità d’uso•minore presenza della community
� Necessità di pochi e chiari meccanismi per� delimitare i “confini ” di un componente
� dichiarare le sue funzionalità� identificare le sue dipendenze� gestire il suo ciclo di vita
programmazione a componenti non efficace !
Direzioni di sviluppo –distribuzione e replicazione
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 58
OS
Gi� Necessità di pochi e chiari meccanismi per
� delimitare i “confini ” di un componente
� dichiarare le sue funzionalità� identificare le sue dipendenze� gestire il suo ciclo di vita
Support facility level
Container level
Intercommunication level
Registry level
Engine level
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Composition Engine
Reification Engine
Normalization Engine
Orchestration Engine
Naming
Security
Persistency
Transactions
Messaging
Template Registry
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
� OSGI – “The best-kept Java secret”� insieme di specifiche (Java, ma non solo)
per fare esattamente questo
� risoluzione ed installazione run-time� condivisione risorse di calcolo
� fortissimo supporto dall’industria(diffusione su terminali mobili, veicoli, apparecchiature per la domotica, …)
↓
� installazione incrementale dei successivi layer del middleware
� distribuzione ed esecuzione della logica middleware anche sui terminali utente
Direzioni di sviluppo –distribuzione e replicazione
30
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 59
Support facility level
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Support facility level
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
7
6
5
4
3
2
1
Direzioni di sviluppo –distribuzione e replicazione
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 60
Support facility level
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Integration facility level
Workflow
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Registry level Template Registry
Engine level Composition Engine
Reification Engine
Normalization Engine
Orchestration Engine
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Registry level Template Registry
Engine level Composition Engine
Reification Engine
Normalization Engine
Orchestration Engine
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Support facility level
Registry level Template Registry
Engine level Composition Engine
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Reification Engine
Normalization Engine
Orchestration Engine
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
7
6
5
4
3
2
1
Interaction Module
Context
Session
Proxy
Resource
Container level
Intercommunication level
Naming
Security
Persistency
Transactions
Messaging
Container level
Intercommunication level
Naming
Security
Persistency
Transactions
Messaging
Container level
Intercommunication level
Naming
Security
Persistency
Transactions
Messaging
Direzioni di sviluppo –distribuzione e replicazione
31
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 61
Direzioni di sviluppo –Qualità del Servizio
� Monitoraggio di informazioni dinamiche� contesto
� sessione
� condizioni di esecuzione delle risorse
� condizioni di esecuzione dei proxy
� operatività dei nodi middleware
� condizioni dell’infrastruttura di comunicazione
� …
Support facility level
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 62
� Monitoraggio di informazioni dinamiche� contesto
� sessione
� condizioni di esecuzione delle risorse
� condizioni di esecuzione dei proxy
� operatività dei nodi middleware
� condizioni dell’infrastruttura di comunicazione
� …
� Generazione di eventi asincroni� indipendenza dalle altre operazioni del sistema
middleware
� rivalutazione dei criteri di componibilità� composability expressions
� composition ranking
� modifica proattiva dei processi di business� workflow lifecycle management
stop (→ unbind → bind ) → start
Support facility level
Container level
Intercommunication level
Naming
Registry level Template Registry
Engine level Composition Engine
Integration facility level Interaction Module
Workflow
Context
Session
Proxy
Resource
Reification Engine
Normalization Engine
Orchestration Engine
Security
Persistency
Transactions
Messaging
Expression Dom. Reg.
Resource Registry
Mapping Dom. Reg.
Syntax Registry
Composition Engine
Direzioni di sviluppo –Qualità del Servizio
32
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 63
CONCLUSIONI
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 64
Conclusioni
� Infrastruttura middleware� delega e coordinazione : modellazione estremamente consistente
(reificazione, ciclo di vita dei workflow, scope di sessione, riconfigurazione dinamica, …)
� approccio non invasivo : abilitazione di possibilità, non obbligo di utilizzo
(metodi di reificazione, uso della sessione, monitoring di proprietà, …)
� Integrazione di soluzioni esistenti� utilizzo simultaneo e sinergico
� flessibilità, estendibilità
� Impiego in casi d’uso reali� efficacia dell’approccio
� maturazione di competenze
� trasferimento tecnologico
� …lavori in corso …� profilazione e distribuzione dei componenti del middleware (OSGi)
� estensione del supporto alla Qualità del Servizio
33
Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 65