1 / 27

Danilo Ardagna, Valerio Manzoni 20/7/2005

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.

Download Presentation

Danilo Ardagna, Valerio Manzoni 20/7/2005

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Sommario • Richiamo della formulazione del problema ottimizzazione • Ri-ottimizzazione periodica • Peeling dei cicli • Risultati sperimentali • Architettura software del Concretizator • Demo

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

  4. Scenari di esecuzione Composite Service Execution Path ep1 25% Execution Path ep2 75% t1 t1 t1 t2 t2 t2 t4 t4 t4 t3 t3 t3 C1 not(C1) 75% 25% t5 t6 t5 t6 t7 t7 t7 HP: unfolding dei cicli

  5. Formulazione del Problema: funzione obiettivo Funzione obiettivo Valore di qualità aggregato di un execution path 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

  6. 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 chele regole di valutazione delle dimensioni di qualità per il servizio composto introducano somme pesate (medie), prodotti, minimo e massimo

  7. Formulazione del Problema Il problema è NP-Hard, è equivalente ad un problema di zaino Multiple Choice Multiple Dimension

  8. Riottimizzazione • Differenza tra valore corrente e predizione dimensioni qualità, |Qk-Qk|>Dk (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) ^

  9. Cicli p0 1-p0 not(C1) <process> <sequence> <while cond=C1> <invoke t> </invoke> </while> </sequence> <process> t1 C1 p1 1-p1 t t2 p2 1-p2 . . . • 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à

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

  11. Peeling dei cicli risultati preliminari • Distribuzioni di probablità di riferimento: geometrica, Poisson e uniforme

  12. 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-planning Il peeling consente di ridurre l’overhead dovuto alla ri-ottimizzazione

  13. Tempi di Esecuzione (CPLEX)

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

  15. 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à

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

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

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

  19. Formulazione del Problema

  20. 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:

  21. Architettura Software Concretizator Negotiator MAIS registry XML file: • Distribuzione numero iter. while e switch XML file: • vincoli (istanza) • pesi Specifica BPEL4WS semplificata Log file (re-opt): • ultimo task eseguito (stato) XML file: • WS candidati • Associazione task/WS Vincoli aggiuntivi Formulazione problema MILP Global Plan (selezione WS) WS Ranking Local Constr. Enforcement Process Translator Process Tuner lp_Solve / CPLEX Ranking Procedure

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

  23. Un esempio t1 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> t2 t3 t4 t7 t5 t6 t8 t9

  24. Qualità dei WS ed associazione task/WS WS candidati Associazione task/WS <?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> <?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>

  25. Vincoli, pesi, distribuzioni di probabilità Pesi e vincoli Annotazione specifica BPEL <?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> <?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>

  26. DEMO

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

More Related