Software per il mondo aperto
opportunità e sfide
Carlo Ghezzi
Dipartimento di Elettronica e Informazione
Politecnico di Milano, Italy
[email protected]
Venezia--Novembre 2007
1
Che cos'è il "mondo aperto?
• Le metodologie e tecnologie del software sono passate da
una situazione di
– mondo chiuso
– a evoluzione controllata
Il mondo esterno col quale il
– a mondo aperto
sistema
interagisce
è benesterno
noto e fisso
I
cambiamenti
nel
mondo
• Il progresso nel settore può essere analizzato secondo
LaI cambiamenti
struttura della
soluzione
è fissa
ricdhiedono
riprogettazione
si
manifestano
questa visione prospettica
e centralizzata
Imonolitica,
cambiamenti
nell'implementazione
quando il fissa
sistema
è in esecuzione
sono
localizzati evolve
a parti mentre
ristretta
L'architettura
il sistema è in funzione
Venezia--Novembre 2007
2
Traccia del seminario
• Breve rassegna dell'evoluzione del software dal punto di
vista dei concetti di mondo aperto/chiuso
• Analisi delle sfide e opportunità
• Zoom su due linee di ricerca
• Un'agenda per la ricerca
Venezia--Novembre 2007
3
Postulati
• Il mondo aperto richiede di comporre il software
dinamicamente….
• …. in quanto la struttura del software deve poter cambiare
dinamicamente, anche in modo imprevisto
• Ciò comporta un cambiamento radicale in come si progetta
e convalida il software
– in particolare, da una convalida off-lie a una convalida
"perpetua"
Venezia--Novembre 2007
4
Il punto di vista
• Mi focalizzo su composizione/struttura
– come viene costruito un sistema da sue parti?
• come/quando si stabiliscono i "binding" tra parti?
– quale struttura/architettura?
anche a livello di processo
– come è strutturata vita di un'applicazione?
– quale organizzazione in fasi/attività/ruoli/attori?
con un occhio al mondo del "business"
Venezia--Novembre 2007
5
Archeologia
• Nascita nel 1968 dell'ingegneria del software, come
risposta a
– crescente importanza del software nella società
– bassa qualità e costi elevati
– assenza di metodi standard
• iterazione continua codifica/rimozione di errori
Venezia--Novembre 2007
6
Fatti e ipotesi implicite
• Organizzazioni monolitiche
– soluzioni centralizzate
• L'ipotesi di mondo chiuso
– i confini tra il mondo reale e la "macchina" sono
chiari e fissi
– i requisisti esistono e sono stabili, basta scovarli
elicit them right!
– le modifiche sono pericolose
• vanno evitate, sono la causa dei problemi di costo e
"schedule"!
Venezia--Novembre 2007
7
Le soluzioni proposte
• A livello di processo
– il modello sequenziale a fasi (waterfall)
• raffinamenti dai requisiti al codice
• sviluppi top-down via deduzioni formali
• A livello di prodotto
– linguaggi e metodi per architetture software statiche,
centralizzate, verificabili
• composizioni statiche, congelate a "design time"
Venezia--Novembre 2007
8
Lezioni apprese
• Impossibile stabilire all'inizio i requisiti
• I requisiti non possono essere congelati
• I requisiti sono intrinsecamente decentrati, illusori il loro
controllo completo e la pre-pianificazione
• Quando cambiano, impattano spesso su ogni parte del
prodotto/processo
• L'evoluzione è intrinseca al software
– non è un fatto accidentale che capita inatteso dopo il
rilascio
Venezia--Novembre 2007
9
Evoluzione controllata
• Si deve poter prevedere e controllare l'evoluzione
– con ciò ci si allontana progressivamente dall'ipotesi di
mondo chiuso
• A livello di processo
– modelli evolutivi
• incrementali, prototipali, a spirale
• A livello di prodotto
– Metodi
• design for change (Parnas)
– information hiding
– specification/interface vs. implementation/body
– Tecnologia e linguaggi
• da strutture monolitiche, a modulari e distribuite (client/server)
Venezia--Novembre 2007
10
Evoluzione controllata:
linguaggi e metodi OO
• Consentono alcuni tipi di cambiamenti dinamici
• Nuove (sotto)classi e oggetti possono essere creati
mentre il sistema è in esecuzione
– le operazioni chiamate vengono scelte durante
l'esecuzione
• Mondo parzialmente aperto + "type safety"
– se si possono prevedere i cambiamenti e li si
possono gestire mediante il meccanismo di
ereditarietà, l'evoluzione dinamica può coesistere
con la verifica statica ("type safety")
Venezia--Novembre 2007
11
OO design
interface
Fax
Polimorfismo
Fax f
body
Fax with phone
-interface
-body
Binding dinamico
f.sendFax();
Venezia--Novembre 2007
12
Binding che attraversa i confini di rete
server
client
RMI
code base
Venezia--Novembre 2007
13
Componenti:
il processo nel mondo aperto
• Sistemi sviluppati a partire da componenti
• Mondo aperto per il processo
– sviluppi decentrati
– multipli "stakeholder"
• controllo limitato sul processo
– integrazione "bottom up" via middleware
Venezia--Novembre 2007
14
Facciamo il punto
• La necessità di adattamento ai cambiamenti esterni
– nel mondo del "business"
– nel mondo fisico
impone cambiamenti al software
• Siamo stati ragionevolmente capaci di rispondere a
questa sfida senza compromettere l'affidabilità delle
soluzioni
Venezia--Novembre 2007
15
Che cosa succede oggi?
• Mondo aperto
– livelli mai prima sperimentati di evoluzione
– "perpetual beta"
Venezia--Novembre 2007
16
Dove sono i motivi del cambiamento? (1)
• Nel mondo del business
– organizzazioni agili in rete
• federazioni dinamiche, opportunistiche, goal-oriented
• reazioni rapide ai rapidi cambiamenti della domanda
• reazioni rapide interne all'organizzazione e nella rete
dei rapporti
Venezia--Novembre 2007
17
Organizzazioni in rete
Le applicazioni
appartengono a diversi
domini applicativi
Interazioni via web con
proptocolli standard
FOO
LOO
Funzionalit`a offerte da
diversi fornitori che
variano nel tempo
BOO
Esportazione di
applicazioni interne
Venezia--Novembre 2007
MOO
18
Dove sono i motivi del cambiamento? (2)
• Mobilità fisica e ubiquitous/ pervasive computing
– richiedono binding dinamici e context-aware
• invocazione di un servizio di stampa che si lega alla
stampante più vicina
• richiesta di illuminazione che si lega a un attuatore che
apre le imposte o all'interruttore della luce elettrica a
seconda dellle condizioni di luce esterna
Venezia--Novembre 2007
19
Mondo aperto
• I requisiti cambiano in continuazione e in modo imprevedibile
• I confini tra il sistema e il mondo esterno non possono essere
congelati
– possono cambiare mentre il sistema è in esecuzione
• non possiamo "spegnere il sistema" e riprogettare/
reinstallare/rieseguire
• occorre fornire un servizio senza interruzione
• Le composizioni evolvono perchè possono cambiare sia i
components che la loro struttura
• Non esiste una singola "autorità" che ha l'intero sistema a carico
Venezia--Novembre 2007
20
Mondo chiuso
• Nel mondo chiuso esiste una separazione netta tra preruntime e runtime
progetto
verifica
deployment
execuzione
• I cambiamenti si gestiscono ritornando alla fase di
sviluppo, nella quale si effettuano le attività di verifica
Venezia--Novembre 2007
21
Da componenti a servizi
• Entrambi sono sviluppati da "altri"
• I componenti sono eseguiti nel dominio dell'applicazione, e ne
diventano parte
• I servizi sono eseguiti nei rispettivi domini
• Di norma, i componenti vengono scelti e collegati al tempo di
progettazione
• Servizi scelti e collegati a run-time
• I servizi supportano contratti espliciti per consentire l'uso da
parte di terzi
– richiedono un SLA che riguarda non solo gli aspetti funzionali
• I servizi possono essere composti per formare nuovi servizi
Venezia--Novembre 2007
22
Ownership
• Tradizionalmente le applicazioni sono possedute dalle
organizzazioni che lo "eseguono"
• Componenti e software di supporto non sono posseduti, ma
sono amministrati da chi li esegue
– che dipende dal proprietario per le evoluzioni
• I servizi non sono posseduti nè amministrati, ma solo
"attivati"
Venezia--Novembre 2007
23
Meccanismi di binding per il mondo aperto
• Esplicito in due fasi
– discovery-based
• fase 1: pubblicazione delle proprietà funzionali e non
• fase 2: ricerca, scoperta, selezione, con eventuale
ottimizzazione/negoziazione
• Implicito
– via uno spazio logico glocale di coordinamento
• eventi: publish/subscribe
• dati persistenti: tuple space
• by contract?
Venezia--Novembre 2007
24
Discovery-based binding
Service
Specification
Discovery
Agency
Query
Service
Requestor
Requirements
Publish
Service
Provider
Response
Interact
Request
Venezia--Novembre 2007
Service
Specification
Service
25
Implicit binding (P/S)
C1
C2
notifiche
sottoscrizioni
Event Dispatcher
C3
C4
C5
C6
2 sottoscrizioni a "rosso" (C1, C5)
1 sottoscrizione a blu (C6)
Venezia--Novembre 2007
26
Architetture Publish-Subscribe
•
Comunicazione asincrona mediata da un dispatcher
– anonima
– multipoint
– implicit addressing
• subject vs. contents-based
•
•
•
I componenti applicativi
– si sottoscrivono a pattern di messaggi a cui sono interessati
– pubblicano messaggi
Il dispatcher esegue un match tra messaggi pubblicati e sottoscrizioni ed
esegue il multicast
Supporto all'aggiunta/rimozione/sostituzione dinamica di componenti
Venezia--Novembre 2007
27
Un esempio
Dovuto a Carzaniga e Wolf
want
low air fares
to Europe
subscribe
notification
want
special offers
by United
publish
notify
publication
publish/subscribe
service
subscription
want to fly
December
DEN-MXP
United offers
DEN-MXP
October
Alitalia offers
DEN-MXP
Nov-Feb
subscriber
publisher
Venezia--Novembre 2007
28
E-commerce
• TIBCO, ION-MkView, smartsockets
dispatcher
operatori finanziari
(compravendita di
azioni)
gateway verso
altri mercati
componenti applicativi
Venezia--Novembre 2007
29
Spazi di tuple (Linda-like)
C1
C2
invia tupla
Tuple space
legge tupla
via pattern
matching
C3
C4
C5
C6
rimuove tupla
via pattern
matching
read e remove nondeterministiche e bloccanti
Venezia--Novembre 2007
30
Binding by contract
required interface
provided interface
COMPONENT
interfaccia descritta da una
SPECIFICA
La specifica descrive
signature
comportamento funzionale
comportamento nonfunzionale
Bisogna gestire le violazioni di contratto
Venezia--Novembre 2007
31
Potenziali benefici
• Chiara separazione tra "what", "how" e "when"
– possibili diverse politiche
• early/late
• context-aware
• ottimizzazione di figure di merito
– legame al "current best"
– "self-organization"
– necessaria descrizione semanticamente ricca delle interfacce
• deve descrivere la QoS
Venezia--Novembre 2007
32
BBC per composizione di servizi
• La composizione può essere descritta da un workflow, che
specifica una orchestrazione astratta
– il workflow viene eseguito dal direttore ch fa da
coordinatore
– i servizi esterni sono definiti tramite specifica che
consente BBC
– binding a servzi concreti viene fatto dinamicamente
Venezia--Novembre 2007
33
Le sfide del mondo aperto
• Vanno ripensate tutte le attività del ciclo di vita
– requisiti
– specifica
– design&implementazione
– verifica&convalida
Venezia--Novembre 2007
34
Zoom-in #1
Dynamic self-adapting service orchestration via BBC
collaborazioni con L. Baresi, D. Bianculli,E. Di Nitto,
S. Guinea, P. Spoletini
Venezia--Novembre 2007
35
Web service orchestrations
• L'orchestrazione di Web services con BPEL consente di
sviluppare servizi complessi per composizione
• BPEL viene esteso per consentire di denotare servizi
partner astratti
• Binding a servizi concreti realizzato a run-time, a causa
del mondo aperto, poichè
– i servizi possono cambiare nel tempo (in meglio o in
peggio)
– nuovi servizi si rendono disponibili (e si vuol sfruttare
la loro disponibilità, che può dipendere dal contesto)
Venezia--Novembre 2007
36
Verifica&convalida
+ BBC fornisce flessibilità e dinamismo
- BBC richiede perpetua V&V
– late binding+composizione dinamica danno
flessibilità al costo di ridotta affidabilità
– l'intero spettro possibile di regimi di binding uno
spettro completo di attività di V&V
Venezia--Novembre 2007
37
2 tipi di convalida
1 linguaggio
• ALBERT: un linguaggio in logica temporale per processi BPEL
– può esprimere proprietà funzionale e non-funzionali
– utilizzabile per due tipi di convalida
• design-time (model checking)
– si assume che il mondo esterno soddisfi certe proprietà e sulla base
di ciò
– si garantisce che valgano certe proprietà del servizio composto
• run-time (monitoring)
– si verifica il mantenimento delle proprietà
• Un unico e coerente framework per la convalida
Venezia--Novembre 2007
38
Assume-guarantee
• Un approccio potente alla progettazione e verifica
– definire ciò che il mondo esterno deve garantire
• si assume che valga e ci si fida che sia così
– a ciò che a nostra volta dobbiamo garantire
• abbiamo naturalmente l'onere della prova che sia davvero
così
• Naturalmente esiste l'onere di prova/check che ciò che si
assume riguardo a X sia davvero garantito da X
Venezia--Novembre 2007
39
Che succede se il contratto è violato?
• Strategie di re-binding
• Comportamenti autonomici
– qui non ne parliamo
Venezia--Novembre 2007
40
Il processo TeleAssistance
receive
while
pick
invoke
switch
panic
button
invoke invoke
"mild" "high"
Venezia--Novembre 2007
41
Qualche proprietà
• LabServiceTime: la risposta del lab arriva entro 1 ora dall'invio dei
dati del paziente
• FASConfirmHospitalization: se il FAS viene chiamato 3 volte in 1
settimana con severità “High” per un certo paziente, si deve
notificare il TA, entro 1 giorno, che il paziente è stato ricoverato
• FASInvokeMildAlarm: dopo la ricezione di un messaggio dal LAB
che indica che deve essere mandato un allarme al FAS, TA dve
invocare il servizio FAS entro 4 ore, con una severità “Mild”
dell'allarme
• MDCheckUp: se un paziente preme pButtonMsg 3 volte in una
settimana, il FAS ospedalizza il paziente entro 1 giorno
Venezia--Novembre 2007
42
Specifiche nonfunzionali
performance
response
time
throughtput
dependability
reliability
availability
richiedono tempo esplicito e una metrica
la distanza tra tempi
conteggi (negli intervalli di tempo)
Venezia--Novembre 2007
43
ALBERT
Un linguaggio temporale che predica su eventi e durate
Consente di esprimere statement di QoS
Le proprietà sono espresse come invarianti del processo
Sintassi:
Venezia--Novembre 2007
44
Stati
• Semantica espressa con riferimento a sequenze di stati (con timestamp) del processo BPEL
Venezia--Novembre 2007
45
Esempi
• LabServiceTime:
la risposta del lab arriva entro 1 ora dall'invio dei dati del paziente
onEvent(start_analyzeData) → Within(onEvent(end_analyzeData), 60)
• MDCheckUp:
se un paziente preme pButtonMsg 3 volte in una settimana, il FAS
ospedalizza il paziente entro 1 giorno
x(Becomes(count($alarmNotif/level=`high’ ∧
x = $alarmNotif/pID, onEvent(pButtonMsg), 10080) = 3)
→ Within(onEvent(patHospitalizedMsg) ∧ $patHospitalized/pId=x, 1440))
Venezia--Novembre 2007
50
Esecuzione e monitoring via AOP
Venezia--Novembre 2007
51
Valutazione di ALBERT a run time
• Per le proprietà che fanno riferimento solo allo stato
presente o alla storia passata
– la storia è bounded
• Per le proprietà che fanno riferimento al futuro
– si genera un nuovo task parallelo, ma ancora si ha
memoria bounded
Venezia--Novembre 2007
52
Zoom-in #2
Design and accurate verification of
Publish-Subscribe architectures
joint work with L. Baresi, L. Mottola, L. Zanolin
Venezia--Novembre 2007
53
Premise
• Modern distributed applications for dynamic environments
ask for a flexible and reconfigurable software infrastructure
• Publish-Subscribe provides an answer to these needs
– fostering an anonymous, implicit, multi-point
communication paradigm
• Hard to design and verify "global behavior" of composite
applications
– component interactions change dynamically
– focus on each reactive component, "global picture" is missing
– real-world Publish-Subscribe systems differ along several
dimensions
Venezia--Novembre 2007
54
Variety of approaches (1)
• From enterprise to embedded systems
Enterprise
Systems
Sensor
Networks
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Dynamic
Topologies
Venezia--Novembre 2007
55
Variety of approaches (2)
Different
guarantees
provided
Guarantee
Choices
Message Reliability
Absent, Present
Message Ordering
Random, Pair-wise FIFO, Systemwide FIFO, Causal Order, Total
Order
Filtering
Precise, Approximate
Real-time Guarantees
Absent, Present
Subscription
Propagation Delay
Absent, Present
Repliable Messages
Absent, Present
Message Priorities
Absent, Present
Queue Drop Policy
None, Tail Drop, Priority Drop
…
…
Venezia--Novembre 2007
56
Existing systems
Guarantee
JMS-compliant
[jmsSpec]
REDS
[cugola07reds]
DSWare
[li04event]
Message Reliability
Present
Present
Absent
Message Ordering
Pair-wise FIFO
Random
Random
Filtering
Precise
Precise, Approximate
Precise
Real-time Guarantees
Absent
Absent
Present
Subscription Propagation Delay
Absent
Present
Present
Repliable Messages
Present
Present
Absent
Message Priorities
Present
Absent
Absent
Queue Drop Policy
Priority Drop
Tail Drop
Tail Drop
Venezia--Novembre 2007
57
Message ordering
C1
t1: e1
C1
t1: e1
C2
C3
t1: e1
t1: e1
C2
t2: e2
C3
t2: e2
Venezia--Novembre 2007
58
Ordering of events
Total ordering
C1
Hypothesis:
C1 generates e1 for C2, C3
C2 generates e2 and then e3 for C3
e3 generated by C2 as a
consequence of receipt of e1
C2
Causal ordering
C3
e1
C1
C3
e1
e2
e2
e3
e3
Ordering relative to sender
C1
C2
C2
C3
e1
None
C1
C2
C3
e1
e2
e2
e3
e3
Venezia--Novembre 2007
59
A designer's workbench
GOAL: assess design and detect design flaws
prior to moving to implementation
• Provide a model of the architecture
• The model embodies the amount of detail that the
designer wishes to express
• The model is verified against certain properties
• The model is changed or details are added as needed
Venezia--Novembre 2007
60
State of the art
• Model checking proposed to address the verification issue
– standard tools (e.g., SPIN) used to model both the application and the PubSub
infrastructure (e.g., [garlan03], [baresi ghezzi zanolin03])
– fine-grained models unfeasible due to state space explosion
– parametric models difficult due to little support for parameterization in the modeling
language
A change of perspective: embed the PubSub
communication paradigm within the model-checker
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Venezia--Novembre 2007
61
Our solution
• Fine grained parametric models implemented in the model checker
– PubSub APIs as primitive constructs of the modeling language
• easier to specify the application model
• Domain-specific knowledge can achieve
application- specific state abstraction
– addresses the state space explosion problem
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Venezia--Novembre 2007
62
Performing the verification
•
•
•
•
•
Specify the application model using the PubSub API
Specify the properties to be checker (LTL)
Select combination of PubSub guarantees the application
relies on
Instantiate the parametric dispatcher within Bogor
Depending on the verification outcome:
–
–
modify the application model
change the guarantees selected
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Allows one to explore the
interplay between application and
comm infrastructure
Venezia--Novembre 2007
63
PubSub APIs
The PubSub infrastructure is offered as a generic abstract data type
– each instance represents a connection to the PubSub dispatcher
– customized w.r.t. the type of messages used by the application
– operations are used to issue subscriptions, publish messages, …
typealias MessagePriority int (0,9);
enum DropPolicy {TAIL_DROP, PRIORITY_DROP }
extension PubSubConnection for polimi.bogor.bogorps.PubSubModule {
typedef type<'a>;
expdef PubSubConnection.type<'a> register<'a>();
expdef PubSubConnection.type<'a> registerWithDropping<'a>(int, DropPolicy);
actiondef subscribe<'a>(PubSubConnection.type<'a>, 'a -> boolean);
Subscriptions
actiondef publish<'a>(PubSubConnection.type<'a>, 'a);
as boolean
actiondef publishWithPriority<'a>(PubSubConnection.type<'a>, 'a,
functions!
MessagePriority);
expdef boolean waitingMessage<'a>(PubSubConnection.type<'a>);
actiondef getNextMessage<'a>(PubSubConnection.type<'a>,
Venezia--Novembre 2007 lazy 'a);
64
Using PubSub APIs
record MyMessage {int value;}
Publishes
a message
MyMessage receivedEvent := new MyMessage;
active thread Publisher() {
MyMessage publishedEvent = new MyMessage;
PubSubConnection.type<MyMessage> ps;
record MyMessage {int value;}
loc loc0: // Connection setup
fun isGreaterThanZero(MyMessage event)
do { ps := PubSubConnection.register<MyMessage>();}
goto loc1;
returns boolean = event.value
0;
loc >loc1:
// Publishing a message
Defines a
do { publishedEvent.value :=subscription
1;
PubSubConnection.publish<MyMessage>(ps,
publishedEvent);}
active thread Subscriber() {
return;
PubSubConnection.type<MyMessage> ps;
Issues a
}
loc loc0: // Connection setup and subscription
(matching)
do { ps := PubSubConnection.register<MyMessage>();
subscription
PubSubConnection.subscribe<MyMessage>(ps,
isGreaterThanZero);}
Receives a
goto loc1;
message
loc loc1: // Message
receive
Venezia--Novembredo
2007{
65
when PubSubConnection.waitingMessage<MyMessage>(ps)
Representing the system state
• Let the system state be described by a tuple:
SystemState = <T1, T2, …, Tn, DispatcherState>
i-th thread (application
component) state
• In turn, let us also define
DispatcherState = <SubTable, RoutingData, M1, M2, …Mn>
Subscriptions
issued
Bookkeeping data to model
specific guarantees
Venezia--Novembre 2007
Messages in
transit
66
Domain-specific model checker
state abstraction - Example 1
• A message is delivered to an application component if at least
one of its subscriptions matches
– the order in which subscriptions are examined is immaterial
• We model the subscription table as a set
DispatcherState = <SubTable, RoutingData, M1, M2, …Mn>
Venezia--Novembre 2007
67
Domain-specific model checker
state abstraction - Example 2
• As messages are delivered, bookkeeping information must be
stored at the dispatcher to enforce a specific message ordering
– from the dispatcher perspective, they change every time a message is
published
• From the application perspective, the state of the incoming
queue may be viewed as unchanged even though some
messages directed to it have been issued
DispatcherState = <SubTable, RoutingData, M1, M2, …Mn>
Venezia--Novembre 2007
68
Domain-specific model checker
state abstraction - Example 3
• Publish-Subscribe often needs to duplicate messages
• Message duplication does not affect the application state
• All supporting data structures hidden in our Bogor
extension
Venezia--Novembre 2007
69
More on "why Bogor"
• Multi-point communication feasible also with other tools
(e.g., using Promela channels)
– cannot model dynamic sender-receiver pairs
– cannot be detached to serve a different pair of processes
– cannot model fine-grained guarantees
Venezia--Novembre 2007
70
Evaluation
•
•
A set of synthetic scenarios stressing sample PubSub guarantees
– 5 threads subscribing to messages coming from another thread
Comparing against SPIN/Promela [zanolin03approach]
Scenario
Publish
Ops.
Bogor w/ PubSub
Memory
Time
SPIN/Promela
Memory
Time
Causal1
2
32.8 Mb
103 sec
298.3 Mb
> 15 min
Causal2
5
45.6 Mb
132 sec
589.6 Mb
> 1 hour
Causal3
7
52.3 Mb
158 sec
OutOfMem
NotCompleted
Causal4
10
61.1 Mb
189 sec
OutOfMem
NotCompleted
Priorities1
2
18.3 Mb
47 sec
192 Mb
> 10 min
Priorities2
5
26.9 Mb
103 sec
471.2 Mb
> 30 min
Priorities3
7
37.9 Mb
134 sec
OutOfMem
NotCompleted
Priorities4
10
49.1 Mb
163 sec
OutOfMem
NotCompleted
Venezia--Novembre 2007
71
Case study
• An application for fire monitoring in a tunnel
• Communication patterns expressed as subscriptions
• A set of requirements
– R1 - when a truck enters the tunnel, ventilation must increase
– R2 - when temperature increases, smoke sensors must be queried
– R3 - when temperature increases, notify cs and contact fb to inspect the environment. It
reports to cs which checks that control occurred
– R4 - messages from the control station to
command the traffic lights must be delivered
with a maximum delay of five time units
• Requirements expressed in LTL
• PubSub guarantees initially
set to DSWare
Venezia--Novembre 2007
72
Verification - Step 1
•
•
The initial application model took message reliability for
granted
– R1 (ventilation must increase when a truck enters the
tunnel) fails immediately
Message reliability currently investigated in embedded
networked systems
– assume it is provided by the communication
infrastructure
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Select
reliability
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
R1 fails
Venezia--Novembre 2007
73
Verification - Step 2
•
•
•
R3 (… contact the fire brigade to inspect the
environment and report to the control station) fails
without causal ordering
CO is key in safety applications
Push CO in the PubSub infrastructure
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Select
CO
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
R3 fails
Venezia--Novembre 2007
74
Verification - Step 3
• R3 also requires the subscription from the fire
brigade to propagate instantaneously
• Unreasonable to assume in a distributed
environment
• Modify the application
Repeat publish
until ACK
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
R3 fails
Venezia--Novembre 2007
75
Verification - Step 4
• R2 (when temperature increases, smoke sensors
must be queried) requires a query reply interaction
• R2 fails because of subscription propagation
delays
• Query-reply provided by embedded system
middleware
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
Select
repliable
messages
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
R2 fails
Venezia--Novembre 2007
76
Verification - Step 5
• R4 (messages … must be delivered with a
maximum delay of five time units) requires
RT
• DSWare already provides it
QuickTime™ and a
TIFF (LZW) decompressor
are needed to see this picture.
R4 succeeds
Venezia--Novembre 2007
77
Conclusions
• A tool supporting exploration of the design space
• Enables exploring the interplay between application and
communication infrastructure
• Proposed a change of perspective in the use of model checking
– embed domain specific mechanisms and export them as
primitive constructs of the modeling language
• Make fine-grained, parametric models feasible
Venezia--Novembre 2007
78
The end
• Fundamental problems continue to exist in a new and more
difficult form
– Process level
• combine process agility and product quality
– harder for distributed and inter-organization developments
– Product level
• requirements and specification
• architecture/implementation
• verification
Venezia--Novembre 2007
79
Acknowledgements
• Projects SeCSE, Cascadas, Plastic, ArtDeco
• People
– L. Baresi, E. Di Nitto, G.P. Picco, G. Cugola, S. Guinea,
D. Bianculli, P. Spoletini, L. Mottola
… student*
Venezia--Novembre 2007
80
Some papers













C. Ghezzi, L. Baresi, E Di Nitto "Towards Open-World Software". Computer, IEEE, Volume 39, Number 10: 36-43, October 2006
L. Baresi, C. Ghezzi, and S. Guinea, "Smart Monitors for Composed Services", 2nd Int.l Conf. on Service Oriented Computing. Nov. 2004
L. Baresi, C. Ghezzi, and S. Guinea "Towards Self-healing Compositions of Services" In Bernd J. Kraemer and Wolfgang A. Halang (eds.)
Contributions to Ubiquitous Computing. Volume 42 of Studies in Computational Intellligence, Springer, 2006
L. Baresi, E. Di Nitto, C. Ghezzi, S. Guinea "A Flexible Framework for the Deployment of Service-Centric Systems", Service Oriented
Computing and Applications, 1, 1, 2007
L. Baresi, D. Bianculli, C. Ghezzi, P. Spoletini. Monitoring Web Service Orchestrations Using Timed WSCoL Proc. of Int.l Conference on
Web Services (ICWS), 2007
D. Bianculli, C. Ghezzi, Monitoring Conversational Web Services, SOSWE 2007.
L. Baresi, D. Bianculli, C. Ghezzi, S. Guinea, P. Spoletini. Validation of Web service compositions. To appear on IEE Proceedings Software,
2007
L. Baresi, C. Ghezzi, and L. Mottola "On Accurate Automatic Verification of Publish-Subscribe Architectures", ICSE 2007
D. Bianculli, R. Jurca, W. Binder, C. Ghezzi, B.Faltings. Automated Dynamic Maintenance of Composite Services based on Service
Reputation. In Proc. of Int.l Conf. on Service Oriented Computing (ICSOC), 2007
L. Zanolin, C. Ghezzi, and L. Baresi. "An Approach to Model and Validate Publish/Subscribe Architectures". In Proc. of the SAVCBS03
Workshop, 2003
L. Baresi, C. Ghezzi, and L. Mottola. "Towards Fine-Grained Automated Verification of Publish-Subscribe Architectures". In Proc. of the 26th
Int. Conf. on Formal Methods for Networked and Distributed Systems (FORTE06), 2006
L. Baresi, C. Ghezzi, and L. Mottola. "On Accurate Automatic Verification of Publish-Subscribe Architectures". Proc. of the 29th Int. Conf. on
Software Engineering (ICSE07), 2007
L. Baresi, G. Gerosa, C. Ghezzi, and L. Mottola. "Playing with Time in PublishSubscribe using a DomainSpecific Model Checker". In Proc.
of the SAVCBS03 Workshop, 2007
Venezia--Novembre 2007
81
Scarica

mondo aperto