Introduction
Requirements
Requirement analysis
Problem analysis
STRUTTURA
Affrontiamo qui lo scenario Javalin esterno, in quanto propedeutico ai sistemi software basati su microservizi.
Si tratta di realizzare un sistema distribuito, in cui
1. una parte dei sistema (la erogazione di una pagina HTML, in breve GUI) è del tutto nuova (si veda Job1) rispetto
allo Sprint2
2. una parte del sistema (l’applicazione) è già disponibile e deve essere solo ‘adattata’ a interagire con la GUI (si
veda Job2)
INTERAZIONE
ciascun componente di un sistema distribuito deve avere un nome.
Dunque:
• alla applicazione diamo il nome: lifectrl
• al componente che include iojavalin diamo il nome: guiserver
Per quanto detto nella analsi dei requisti, il primo prototipo adotta le WebSocket come tecnologia per le comunicazioni
tra i componenti.
Dunque, lifectrl si deve manifestare al guiserver aprendo una connessione via webseocket sulla porta 8080. Ciò
implica che il guiserver debba gestire in modo opportuno almeno due connessioni:
• la connessione con la pagina owner, che denotiamo con pageCtx
• la connessione con l’applicazione, che denotiamo con lifeCtrlCtx
1] ANALISI DELLE COMUNICAZIONI SERVER-PAGINA
2] ANALISI DELLE COMUNICAZIONI SERVER-APPLICAZIONE
Test plans
Benchè sia difficile definire test automatizzabili per applicazioni che implicano GUI, una volta specificate le forme di
interazione tra i componenti, si possono impostare TestUnit quali:
• invio di un comando, come fatto in CallerServerInteraction, facendo asserzioni sul risultato atteso
Project
Tenendo conto di quanto detto dall’analisi, a livello di progettazione dobbiamo innanzi tutto:
1. impostare il codice Javscritpt che interpreta i messaggi descritti in Analisi delle comunicazioni server-pagina. A
questo fine definiamo il file
• wscanvascontrol.js per pagine che impostano Una griglia globale (con canvas)
• wscontrol.js per pagine che impostano Una griglia granulare
2. completare il codice di OutInGuiInteraction introdotto in Analisi delle comunicazioni server applicazione
3. approfondire la problematica Aggiornamento della grid in GUI e prendere una decisione motivata se usare diapatch o request
Occorre anche realizzare il seguente requisito:
un utente non owner che si collega mentre il gioco è in corso, dovrebbe vedere lo stato attuale della griglia in modo
corretto
Key point: impostare una funzione nel server che invvii informazione su tutte le connessioni WS attive.
Testing
Deployment
Maintenance