Quali sono le entità del sistema?
Ho almeno tre entità, ovvero le lucciole (entità indipendenti che non condividono memoria).
Cosa devono fare le entità appena nate?
Ciascuna deve lampeggiare ad una sua frequenza.
Nel nostro sistema le lucciole saranno dei QActor.
System fireflysinch
/*
* fireflysynch.qak
*/
//contesto del sistema
Context ctxfirefly ip [ host="localhost" port=8040 ]
Context ctxgrid ip [ host="127.0.0.1" port=8050 ]
//definiamo 4 Attori: un orchestratore e 3 lucciole.
QActor cordinator context ctxfirefly {
}
QActor firefly1 context ctxfirefly {
}
QActor firefly2 context ctxfirefly {
}
QActor firefly3 context ctxfirefly {
}
Alcune opzioni di sincronizzazione potrebbero essere le seguenti:
Per scegliere quale strategia adottare tra quelle proposte in fase di analisi dei requisiti, è necessario andare ad analizzare i costi di realizzazione e le risorse necessarie in ciascun caso. In questo modo si va a scegliere la soluzione più semplice da realizzare.
In questo sistema è stata adottata la prima soluzione proposta: un orchestratore che attraverso un evento invia una frequenza a cui le lucciole si devono sincronizzare.
Prototipo.
GIT repo: https://github.com/marilena-uni/softwareEngineering