Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni...

27
Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005

Transcript of Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni...

Page 1: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Stato di Avanzamento dello sviluppo del modulo Concretizator

Danilo Ardagna, Valerio Manzoni

20/7/2005

Page 2: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Sommario

Richiamo della formulazione del problema ottimizzazione

Ri-ottimizzazione periodica Peeling dei cicli Risultati sperimentali Architettura software del Concretizator Demo

Page 3: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

MAIS Concretizator

Obiettivi: • determinare a tempo di esecuzione

l’insieme di servizi concreti in modo da ottimizzare la QoS percepita dall’utente per l’esecuzione dell’istanza del singolo processo applicativo

• Ottimizzazione globale e garanzia di vincoli globali

Variabilità di ambiente e contesto:• Variabilità delle performance dei servizi

concreti (carico, availability, nuovi servizi,…)• Context switch dell’end-user• Variabilità sul numero di esecuzione dei cicli

Ri-ottimizzazione periodica del piano di esecuzione

Page 4: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Scenari di esecuzione

HP: unfolding dei cicli

Execution Path ep2 75%

t1

t2t4

t7

t3

t6

t1

t2t4

t5

t7

t3

t6

Composite Service

C1 not(C1)

25% 75%

Execution Path ep1 25%

t1

t2t4

t5

t7

t3

Page 5: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Formulazione del Problema: funzione obiettivo

Il valore aggregato di QoS associato ad ogni Execution Path è ottenuto con tecnica SAW (normalizzazione e somma pesata)Obiettivo: massimizzare la QoS considerando tutti i possibili scenari di esecuzione

Funzione obiettivo

Valore di qualità aggregato di un execution path

Page 6: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Formulazione del Problema: vincoli

Sono garantiti per ogni scenario di esecuzione i seguenti vincoli:

• Tempo di esecuzione ≤ R

• Tempo di esecuzionef ≤RD

• Availability ≥A

• Price ≤ B

• Reputation ≥T

• Data Quality ≥Q

HP: la formulazione MILP richiede che le regole di valutazione delle dimensioni di qualità per il servizio composto introducano somme

pesate (medie), prodotti, minimo e massimo

Page 7: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Formulazione del Problema

Il problema è NP-Hard, è equivalente ad un problema di zaino Multiple Choice Multiple Dimension

Page 8: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Riottimizzazione

Differenza tra valore corrente e predizione dimensioni

qualità, |Qk-Qk|>k (variabilità delle prestazioni)

Fallimento dell’invocazione di un’operazione (piano sub-ottimo)

Periodicamente, con periodo adattativo in una time window (variabilità dei servizi disponibili)

Context switch dell’utente (diversa scelta dei pesi)

Dopo la valutazione di una condizione di switch (piano sub-ottimo)

Al termine dell’esecuzione di un ciclo (se il numero di iterazioni è inferiore al massimo atteso, il piano individuato è sub-ottimo)

^

Page 9: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Cicli

Vincoli aggiuntivi per le dimensioni di qualità che per i servizi composti vengono valutate come media (reputation e data quality)

Peeling dei cicli e distribuzione di probabilità

t1

1-p0

p0

t2

1-p1

p1

1-p2

p2

.

.

.

t

C1

not(C1)<process> <sequence> <while cond=C1> <invoke t> </invoke> </while> </sequence><process>

Page 10: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Tecniche di ottimizzazione

Tecnica 1: Effettuare il peeling del ciclo corrente, unfolding degli altri cicli sulla base del numero massimo di iterazioni

Tecnica 2: Effettuare il peeling di tutti i cicli. Problema: il numero di cammini cresce in modo esponenziale

Tecnica 3: non viene effettuato il peeling ma solo l’unfolding dei cicli (Zeng et al., Canfora, Barreiro)

Implementazione della Tecnica 1, Tecniche 2 e 3 benchmark

Page 11: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Peeling dei cicli risultati preliminari

Distribuzioni di probablità di riferimento: geometrica, Poisson e uniforme

Geometric distribution

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0 5 10 15 20

Cycle number of iterations

Pro

bab

ility

den

sity

p=0.2 p=0.5 p=0.6

Poisson distribution

0

0.05

0.1

0.15

0.2

0.25

0 5 10 15 20

Cycle number of iterations

Pro

bab

ility

den

sity

l=3 l=6 l=9

Uniform distribution

0

0.05

0.1

0.15

0.2

0.25

0.3

0 2 4 6 8 10

Cycle number of iterations

Pro

bab

ility

den

sity

a=3 a=6 a=9

Page 12: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Peeling dei cicli risultati preliminari

Confronto tecniche 1 e 3 (Peeling ciclo corrente vs. unfolding)

Il miglioramento ottenibile con il peeling sono più evidenti quando i vincoli sono più stringenti

I risultati preliminari mettono in evidenza che il peeling è più efficiente per distribuzioni geometriche e uniforme

Miglioramento variabile tra il 5 e 45%

Vantaggi: se il numero di iterazioni è inferiore al valor medio allora è possibile evitare di effettuare il re-planningIl peeling consente di ridurre l’overhead dovuto

alla ri-ottimizzazione

Page 13: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Tempi di Esecuzione (CPLEX)

Page 14: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Negoziazione

Obiettivi:

• Identificare una soluzione ammissibile se il problema di ottimizzazione iniziale non ammette soluzione

• Migliorare un piano di esecuzione negoziando i parametri di esecuzione dei servizi

Page 15: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Identificare una soluzione ammissibile

HP: esiste un vincolo di budget ed è soddisfacibile Complessivamente il problema ha N vincoli Individuare il massimo numero K di vincoli che ammette

soluzione valutando al più i 2(N-1)-2 rilassamenti del problema (analisi esaustiva delle combinazioni di vincoli)

Negoziazione multi attributo per le dimensioni dei restanti N-K-1 vincoli violati

Ripartizione del margine di prezzo:• Tra i vincoli proporzionalmente in base alla violazione

percentuale• All’interno dello stesso vincolo, principio bottleneck

removal: • qualità positive: in modo inversamente proporzionale al

valore assunto dalla dimensione di qualità • qualità negative: in modo proporzionale al valore assunto

dalla dimensione di qualità

Page 16: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Esempio

Max Data Quality

• Tempo di esecuzione ≤ 7

• Availability ≥0.99

• Price ≤ 1000

• Reputation ≥0.8

t1

t2

Il problema non ammette soluzione

Il rilassamento che introduce unicamente il vincolo di prezzo è ammissibile, Price=200

Vengono valutati i seguenti rilassamenti:

• Price + T esec OK

• Price + Avail OK

• Price + Rep OK

• Price + Tesec + Avail No

• Price + Tesec + Rep No

• Price + Avail + Rep OK

Page 17: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Rilassamento Price+Avail+Rep

Price=800

Margine prezzo 200

Soluzione: WS11, WS21

t11+t21=6+2=8>7

Negoziazione:

• margine t11 proporzionale a 6/8

• margine t21 proporzionale a 2/8

Page 18: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Migliorare un piano di esecuzione

Esiste una soluzione ottima del problema

Negoziare il valore delle dimensioni di qualità dell’ottimo individuato in modo da migliorare il valore della funzione obiettivo

Il margine di prezzo viene ripartito tra le dimensioni di qualità proporzionalmente al valore

delle derivate f/ Qkj della funzione obiettivo

rispetto al valore della dimensione di qualità k assunta dalla soluzione ottima del task j

Page 19: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Formulazione del Problema

Page 20: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Ripartizione del margine di prezzo

Il valore di qualità per la soluzione ottima del task j è intermedio tra i valori ammissibili di qualità del task (Qkj,min<Qkj<Qkj,max):

La dimensione di qualità è positiva e per il task j l’ottimo globale coincide con l’ottimo locale:

La dimensione di qualità è positiva e Qkj=Qkj,min:

La dimensione di qualità è negativa e per il task j l’ottimo globale coincide con l’ottimo locale:

La dimensione di qualità è negativa e Qkj=Qkj,max:

Page 21: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Architettura Software Concretizator

Process TranslatorProcess Translator

lp_Solve / CPLEXlp_Solve / CPLEX

Ranking ProcedureRanking Procedure

XML file:●vincoli (istanza)●pesi

Formulazione problema MILP

Global Plan (selezione WS)

WS Ranking

SpecificaBPEL4WS semplificata

XML file:●Distribuzione numero iter. while e switch

XML file:●WS candidati●Associazione task/WS

NegotiatorNegotiator MAIS

registry

Local Constr. Enforcement

Local Constr. Enforcement Process Tuner

Process Tuner

Vincoli aggiuntivi

Log file (re-opt):● ultimo task eseguito (stato)

Page 22: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

BPEL4WS Semplificato

BPEL

Attività primitive• invoke• receive• replay• wait• assign• throw• terminate• empty

Attività strutturate• sequence• switch• while• pick• flow• scope

BPEL-like

Attività primitive• element

Attività strutturate• sequence• switch• while

• flow

Page 23: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Un esempio

t1

t2 t4

t5

t9

t3

t6t7

t8

Rappresentazione XML

<?xml version="1.0" ?>

<sequence name = "sequenza 1"> <element name = "elemento 1"> </element><switch name = "switch 1">

<sequence name = "sequenza 2"> <element name = "elemento 2">

</element><switch name = "switch 2">

<element name = "elemento 5"> </element>

<element name = "elemento 6"> </element>

</switch></sequence><element name = "elemento 3"> </element><sequence name = "sequenza 3">

<element name = "elemento 4"> </element>

<while name = "while 1"><element name = "elemento

7"> </element><element name = "elemento

8"> </element></while>

</sequence></switch><element name = "elemento 9"> </element>

</sequence>

Page 24: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Qualità dei WS ed associazione task/WS

<?xml version="1.0" ?><webServices>

<webService name="ws_1"><maxTime value="6.767389" /><minTime value="5.767389" /><price value="0.123061776" /><reputation value="0.82627237" /><availability value="0.9903379" /><dataQuality value="0.9857625" />

</webService><webService name="ws_2">

<maxTime value="7.9125476" /><minTime value="5.767389" /><price value="0.45754516" /><reputation value="0.9279902" /><availability value="0.9791445" /><dataQuality value="0.91493726" />

</webService>...</webServices>

<?xml version="1.0" ?>

<tasks><task name = "task_1">

<webService name = "ws_1"> </webService>

<webService name = "ws_2"> </webService>

<webService name = "ws_3"> </webService>

<webService name = "ws_22"> </webService></task>

<task name = "task_2"><webService name = "ws_1">

</webService><webService name = "ws_4">

</webService><webService name = "ws_19">

</webService></task>

.

.

.</tasks>

WS candidati Associazione task/WS

Page 25: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

Vincoli, pesi, distribuzioni di probabilità

<?xml version="1.0" ?>

<Users><User name = "XXX">

<avTimeWeight value = "1"> </avTimeWeight><priceWeight value ="0"> </priceWeight><reputationWeight value = "0"> </reputationWeight><availabilityWeight value = "0"> </availabilityWeight><dataQualityWeight value = "0"> </dataQualityWeight><restarTime value = "0.5"> </restarTime><avTimeConstraint value = "2000"> </avTimeConstraint><priceConstraint value ="15"> </priceConstraint><reputationConstraint value = "0.0005"> </reputationConstraint><availabilityConstraint value =

"0.00000001"> </availabilityConstraint><dataQualityConstraint value = "0.01"> </dataQualityConstraint><degDurationConstraint value =

"20000000"> </degDurationConstraint>

</User></Users>

Pesi e vincoli

<?xml version="1.0" ?>

<bounds><switch name = "switch 1">

<branch number = "1" value = "0.1"> </branch><branch number = "2" value = "0.1"> </branch><branch number = "3" value = "0.8"> </branch>

</switch><switch name = "switch 2">

<branch number = "1" value = "0.7"> </branch><branch number = "2" value = "0.3"> </branch>

</switch><while name = "while 1">

<probability number = "0" value = "0.049"></probability><probability number = "1" value = "0.15"></probability><probability number = "2" value = "0.22"></probability><probability number = "3" value = "0.22"></probability><probability number = "4" value = "0.17"></probability><probability number = "5" value = "0.1"></probability>

</while></bounds>

Annotazione specifica BPEL

Page 26: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

DEMO

Page 27: Stato di Avanzamento dello sviluppo del modulo Concretizator Danilo Ardagna, Valerio Manzoni 20/7/2005.

To dos

Analisi Sperimentali!

Estensione del modello: considerare l’invocazione di una singola operazione ed introdurre nuovi vincoli (provider dei servizi)

Offrire il Concretizator come Web Service

Rendere configurabile la scelta dell’ottimizzatore MILP (lp_solve, CPLEX, Symphony,COIN-OR, …)