BACKGROUND - unibo.it

33
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

Transcript of BACKGROUND - unibo.it

Page 1: BACKGROUND - unibo.it

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 ([email protected])

powered by _

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 2

BACKGROUND

Page 2: BACKGROUND - unibo.it

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

Page 3: BACKGROUND - unibo.it

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

Page 4: BACKGROUND - unibo.it

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

Page 5: BACKGROUND - unibo.it

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, …)

Page 6: BACKGROUND - unibo.it

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

ACME’s SDK, …, widget, …, e-Learning, …, applicazioni mediche, …,

tecnologie assistive, …, navigazione satellitare,

ecc…

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 12

PROPOSTA

Page 7: BACKGROUND - unibo.it

7

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 13

Linee guida

� Disaccoppiamento

� spaziale / temporale / tecnologico → software intermedio

� integrazione trasparente → disappearing middleware

� 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

Page 8: BACKGROUND - unibo.it

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

Page 9: BACKGROUND - unibo.it

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

(…)(…)

Page 10: BACKGROUND - unibo.it

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

Page 11: BACKGROUND - unibo.it

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

Page 12: BACKGROUND - unibo.it

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

Page 13: BACKGROUND - unibo.it

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

Interaction Module

Request-responseInteraction Module

Publish-SubscribeInteraction Module

. . . .

� sincrono, asincrono;

� request/response, request-only, publish/subscribe, …

� simplex/duplex

� conversazioni

� …

Page 14: BACKGROUND - unibo.it

14

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

Page 15: BACKGROUND - unibo.it

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

richiestarichiesta

Support facility level

Container level

Intercommunication level

TransactionsNaming Security Persistency Messaging

Registry level

MappingDomainRegistry

Template Registry

ExpressionDomainRegistry

Resource Registry

SyntaxRegistry

Engine level

OrchestrationEngine

Composition Engine

ReificationEngine

Normalization Engine

Integration facility level Interaction ModuleInteraction ModuleInteraction Module

WorkflowWorkflowWorkflow

Remote side

Network side

Middleware side

Context Session Proxy

Proxy

Proxy

Proxy

Resource Resource Resource Resource

Page 16: BACKGROUND - unibo.it

16

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 31

Funzionamento reale Funzionamento reale ––selezione ed esecuzione di un selezione ed esecuzione di un

workflowworkflow

Support facility level

Container level

Intercommunication level

TransactionsNaming Security Persistency Messaging

Registry level

MappingDomainRegistry

Template Registry

ExpressionDomainRegistry

Resource Registry

SyntaxRegistry

Engine level

OrchestrationEngine

Composition Engine

ReificationEngine

Normalization Engine

Integration facility level Interaction ModuleInteraction ModuleInteraction Module

WorkflowWorkflowWorkflow

Remote side

Network side

Middleware side

Context Session Proxy

Proxy

Proxy

Proxy

Resource Resource Resource Resource

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 32

Funzionamento reale Funzionamento reale ––invocazione dei invocazione dei proxyproxy

Support facility level

Container level

Intercommunication level

TransactionsNaming Security Persistency Messaging

Registry level

MappingDomainRegistry

Template Registry

ExpressionDomainRegistry

Resource Registry

SyntaxRegistry

Engine level

OrchestrationEngine

Composition Engine

ReificationEngine

Normalization Engine

Integration facility level Interaction ModuleInteraction ModuleInteraction Module

WorkflowWorkflowWorkflow

Remote side

Network side

Middleware side

Context Session Proxy

Proxy

Proxy

Proxy

Resource Resource Resource Resource

Page 17: BACKGROUND - unibo.it

17

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 33

Funzionamento reale Funzionamento reale ––restituzione dei risultatirestituzione dei risultati

Support facility level

Container level

Intercommunication level

TransactionsNaming Security Persistency Messaging

Registry level

MappingDomainRegistry

Template Registry

ExpressionDomainRegistry

Resource Registry

SyntaxRegistry

Engine level

OrchestrationEngine

Composition Engine

ReificationEngine

Normalization Engine

Integration facility level Interaction ModuleInteraction ModuleInteraction Module

WorkflowWorkflowWorkflow

Remote side

Network side

Middleware side

Context Session Proxy

Proxy

Proxy

Proxy

Resource Resource Resource Resource

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

Page 18: BACKGROUND - unibo.it

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

Page 19: BACKGROUND - unibo.it

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

Page 20: BACKGROUND - unibo.it

20

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 39

Composizione automatica –“requisites”, “preferences”

� Proxy che partecipano a un workflow individuati…

� …tra tutti quelli noti nel sistema

� …sulla base del soddisfacimento di tutte le condizioni presenti

→ dichiarate dagli stessi proxy “candidati”

→ dipendenti dai requisiti dello scenario considerato

→ dipendenti da preferenze esplicite dell’utente

publish/subscribe content transformationtemplate

contentgenerator

InteractionModule

contentdeliverer

Contentadaptation

template

scenario requisites and user preferences

publish / subscribe

typology = generation input = RSSsubtypology = RSS output = SMStime = 6pm typology = deliveryURL = http://….

subtypology = SMS

SMS gateway

resource metadata

maxInputLength = 160

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 40

““ CompositionComposition calculuscalculus ””

scenario requirements

composition template candidate servicescandidate servicescandidate resource

rolerolerole

rule domainscomposability expression

sele

ct

playexpects

base on

specify (select)sp

ecifi

esspecify

Page 21: BACKGROUND - unibo.it

21

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

� …

Page 22: BACKGROUND - unibo.it

22

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 43

Implementazione prototipale

Support facility level

Container level

(RMI, caching, clustering) Intercommunication level

Transactions (JTA)Naming (JNDI) Security (JAAS)Persistency

(JPA, Hibernate, MySQL)Messaging (JMS)

Registry level

MappingDomain

Registry (JNDI)Template

Registry (JNDI)

ExpressionDomain

Registry (JNDI)Resource

Registry (JNDI)Syntax

Registry (JNDI)

Engine level

OrchestrationEngine

(JMX, jBPM, Spring)

Composition Engine

(JMX, BSH, Spring)

ReificationEngine (JMX)

Normalization Engine (JMX)

Integration facility level Interaction ModuleInteraction ModuleInteraction Module (EJB3)

WorkflowWorkflowWorkflow (EJB3)

Remoteside

Networkside

Middlewareside

Context

(JPA)

Session

(JPA)

Proxy(J2ME)

Proxy(Linux demon)

Proxy(POJO)

Proxy(WebServices)

Resource Resource Resource Resource

GPS antenna Sensors

Java routine

SMTP server

Resource

Web site

Resource

Java routine

Proxy(HTTPFilter)

Proxy(EJB3)

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

Page 23: BACKGROUND - unibo.it

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

Page 24: BACKGROUND - unibo.it

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

Page 25: BACKGROUND - unibo.it

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

Page 26: BACKGROUND - unibo.it

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

Page 27: BACKGROUND - unibo.it

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

Page 28: BACKGROUND - unibo.it

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, …)

Page 29: BACKGROUND - unibo.it

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

Page 30: BACKGROUND - unibo.it

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

Page 31: BACKGROUND - unibo.it

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

Page 32: BACKGROUND - unibo.it

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

Page 33: BACKGROUND - unibo.it

33

Samuele Pasini – Middleware per il supporto all’erogazione di servizi e contenuti in scenari di Ubiquitous Computin g 65

Domande?