Message Sequence Charts
Simone Pongiglione
Brevissimi cenni introduttivi





Orientato agli eventi.
Ideato dallo stesso study group di SDL.
Approvato per la prima volta nel 1992 presso l’
ITU meeting di Ginevra.
Migliorato e corretto, riapprovato nel 1996.
Due forme sintattiche
–
–

MSC/PR
MSC/GR
Utilizzato considerevolmente nell’ambito delle
telecomunicazioni.
CCBS Service
Permette ad utente A che trova un utente B
occupato, di completare la sua telefonata senza
ripetere la chiamata.
A
J
K
L
(
:
B
X
J
(
J
(
HMSC (High-level MSC)


Fornisce una descrizione ad alto livello di una
parte di (o l’intero) sistema.
E’ un grafo diretto dove ogni nodo può essere
uno tra i seguenti simboli:
Inizio.
Condition..
Fine.
Connessione.
MSC reference.
Frame
parallelo.
CCBS_Idle
DEACTIVATION
REQUEST
REJECT
CCBS_Requested
ACTIVATION
CCBS_Activated
MONITORING
CCBS_Free
INVOCATION
CCBS_Init
RELEASE
CANCEL
MSC REQUEST




Il sistema parte dallo stato
inoperoso [CCBS_Idle].
L’utente A chiama l’utente B
trovando la linea occupata.
Il sistema richiede all’utente A se
vuole attivare il servizio
(REQUEST).
L’utente A accetta.
[CCBS_Requested].
CCBS_Idle
REQUEST
CCBS_Requested
Costrutto Instance



Costrutto fondamentale del linguaggio.
Rappresenta un oggetto (processo, servizio, …)
Scambia messaggi con altri oggetti e con
l’ambiente.
User_A
process
Test_In
Nome istanza
Specifica il tipo di
processo
Costrutto Instance

Lungo l’asse di ogni instance è assunto un
ordinamento totale.
msc REQUESTED
User_A
CCBS_Idle
Request
FACILITY
(Request_Inv)
Costrutto Action

Attività interna ad una instance, descritta con
testo arbitrario (ling. naturale, logica, …).
Network_B
CCBS_Idle
check queue and
service agreed and
compatibility
MSC REQUEST
msc REQUEST
User_A
Network_A
Network_B
CCBS_Idle
Request
FACILITY
Request_ReqInd
(Request_Inv)
CCBS_Requested
check queue and
service agreed and
compatibility
MSC REQUEST




Il sistema invia la richiesta di servizio all’utente A.
L’utente A la inoltra alla sua rete.
La rete dell’utente A richiede alla rete dell’utente
B di attivare il servizio.
La rete dell’utente B controlla lo stato della coda
delle richieste e se l’utente B è abilitato a tale
servizio.
Regole per la semantica statica

La lista di nomi attaccati ad un condition HMSC
devono essere un sottoinsieme della lista di nomi
della condition iniziale (finale) del MSC che lo
segue (precede).
CCBS_Run
User_A
Net_A
Net_B
CCBS_Free, CCBS_Run
TURN OFF
Regole per la semantica statica

Le conditions di un HMSC che precedono
immediatamente un MSC reference, devono
corrispondere alla condition iniziale (se
esistente) del MSC riferito.
CCBS_Idle
User_A
Net_A
CCBS_Idle
REQUEST
Net_B
CCBS_Idle
DEACTIVATION
REQUEST
REJECT
CCBS_Requested
ACTIVATION
CCBS_Activated
MONITORING
CCBS_Free
INVOCATION
CCBS_Init
RELEASE
CANCEL
MSC REJECT



Il sistema è nello
stato di richiesta
[CCBS_Requested].
Il servizio non può
essere fornito, la
richiesta viene
rifiutata (REJECT).
Il sistema ritorna allo
stato iniziale
[CCBS_Idle].
CCBS_Idle
REQUEST
CCBS_Requested
REJECT
MSC REJECT
msc REJECT
User_A
Network_A
Network_B
CCBS_Requested
Reject
FACILITY
CCBS_Not_Activated
(Reject)
CCBS_Idle
MSC REJECT



La rete dell’utente B rifiuta la richiesta del
servizio (troppo richieste in coda, incompatibilità
delle reti, …), mandando un messaggio alla rete
dell’utente A.
La rete dell’utente A notifica l’utente A del
fallimento della richiesta.
L’utente A notifica il sistema.
Costrutto Environment


Rappresenta l’ambiente con cui un MSC
interagisce.
Non usa nessun ordinamento temporale.
msc
User_A
REJECT
Net_A
CCBS_Requested
Reject
FACILITY
CCBS_Not_Activated
(Reject)
CCBS_Idle
Net_B
CCBS_Idle
DEACTIVATION
REQUEST
REJECT
CCBS_Requested
ACTIVATION
CCBS_Activated
MONITORING
CCBS_Free
INVOCATION
CCBS_Init
RELEASE
CANCEL
MSC ACTIVATION



Il sistema richiede il servizio
[CCBS_Requested].
Il servizio può essere fornito
(ACTIVATION).
Il sistema può attivare il
servizio (CCBS_Activated).
CCBS_Requested
ACTIVATION
CCBS_Activated
Costrutto Timer Set


Imposta un timer (una scadenza).
In una descrizione completa di un sistema, per
ogni timer set deve esistere un relativo timer
reset oppure un time out, anche in MSC
differenti.
T1
durata
10 min
MSC ACTIVATION
msc
ACTIVATION
User_A
Network_A
Network_B
CCBS_Requested
FACILITY
CCBS_Activated
Request_RespConf
add to
queue
(Request_RR)
T-CCBS2
length
15\45 min
CCBS_Activated
MSC ACTIVATION



La rete dell’utente B conferma la richiesta del
servizio e aggiunge alla coda di B la richiesta.
La rete dell’utente notifica il successo all’utente A
e inizializza un timer.
L’utente A notifica il sistema.
CCBS_Idle
DEACTIVATION
REQUEST
REJECT
CCBS_Requested
ACTIVATION
CCBS_Activated
MONITORING
CCBS_Free
INVOCATION
CCBS_Init
RELEASE
CANCEL
HMSC MONITORING



Il servizio è attivo
[CCBS_Activated].
Il sistema sorveglia i due
utenti (MONITORING).
Entrambi gli utenti sono
liberi [CCBS_Free].
CCBS_Activated
MONITORING
CCBS_Free
User_B_Busy
CCBS_Activated
REPLY_B_BUSY
CHECK_STATUS_B
SUSPENSION
REPLY_B_FREE
CCBS_Await_Status
User_A_Busy
REPLY_B_STILL_FREE
REPLY_A_BUSY
Status_Check_A
REPLY_A_FREE
User_A_Free
CCBS_Free
recall
HSMC MONITORING (I parte)
Controlla lo stato di B
Se B è libero,
attende un intervallo
di tempo e ricontrolla
lo stato di B.
Se B è occupato,
ritorna allo stato
iniziale.
User_B_Busy
CCBS_Activated
REPLY_B_BUSY
CHECK_STATUS_B
REPLY_B_FREE
CCBS_Await_Status
MSC CHECK_STATUS_B – REPLY_B_FREE




Il servizio è attivo
[CCBS_Activated].
Viene controllato lo stato
dell’utente B
(CHECK_STATUS_B).
L’utente B risulta libero, dopo un
tempo T viene nuovamente
controllato lo stato di B
(REPLY_B_FREE).
Il sistema attende una risposta da
B [CCBS_Await_Status].
CCBS_Activated
CHECK_STATUS_B
REPLY_B_FREE
CCBS_Await_Status
Costrutto Timeout


Indica il punto temporale dove il tempo impostato
da un timer set termina.
Deve succedere ad un timer set.
T-CCBS4
MDelayed
> 15 min
length
15 min
MSC CHECK_STATUS_B
msc
CHECK_STATUS_B
Network_B
CCBS_Activated
Start_CCBS_Processing
reserve B
channel
to status
request
process
STATUS
(Request)
MSC REPLY_B_FREE
msc
REPLY_B_FREE
Network_B
STATUS
(confirm_free)
User_B_Free
T-CCBS4
to status
request
process
STATUS
(Request)
CCBS_Await_Status
User_B_Busy
CCBS_Activated
REPLY_B_BUSY
CHECK_STATUS_B
SUSPENSION
REPLY_B_FREE
CCBS_Await_Status
User_A_Busy
REPLY_B_STILL_FREE
REPLY_A_BUSY
Status_Check_A
REPLY_A_FREE
User_A_Free
CCBS_Free
recall
HSMC MONITORING (II parte)
L’utente B è ancora libero
L’utente A è libero, il
servizio può
proseguire.
REPLY_B_STILL_FREE
L’utente A è occupato, il
servizio viene sospeso
sino a quando A non si
libera.
Status_Check_A
SUSPENSION
REPLY_A_FREE
User_A_Busy
User_A_Free
REPLY_A_BUSY
CCBS_Free
Costrutto Timer Reset

Effettua il reset di un timer. Deve succedere ad
un timer set.
T1
T1
MSC REPLY_B_STILL_FREE
msc
User_A
Network_A
Network_B
REPLY_B_STILL_FREE
STATUS
(confirm_free)
Condizione
non-globale
User_B_Free
FACILITY
Remote_User_Free
(StatusReq_Inv)
T-CCBS1
Status_Check_A
MSC REPLY_A_FREE
msc
MSC_REPLY_A_FREE
User_A
Network_A
Status_Check_A
FACILITY
T-CCBS1
(StatusReq_Free)
FACILITY
Remote_User_Free
(RemoteUserFree)
User_A_Free
T-CCBS3
HSMC MONITORING (II parte)
L’utente B è ancora libero
L’utente A è libero, il
servizio può
proseguire.
REPLY_B_STILL_FREE
L’utente A è occupato, il
servizio viene sospeso
sino a quando A non si
libera.
Status_Check_A
SUSPENSION
REPLY_A_FREE
User_A_Busy
User_A_Free
REPLY_A_BUSY
CCBS_Free
Operatori Inline


Permettono di comporre inline due blocchi.
Operatori permessi:
–
–
–
–
–

alt:
par:
loop:
opt:
exc:
alternativa.
parallelo.
iterazione.
opzionale.
eccezione.
Possono essere nidificati.
Operatore Inline alt

Permette di definire più alternative per definire lo
stesso comportamento.
Alternativa 1
alt
T-CCBS1
FACILITY
T-CCBS1
(StatusReq_busy)
Alternativa 2
MSC REPLY_A_BUSY
msc
User_A
Network_A
Network_B
REPLY_A_BUSY
alt
T-CCBS1
FACILITY
T-CCBS1
(StatusReq_busy)
FACILITY
(BFree_Inv)
Suspend request
Suspend
queue. Release
Suspend request queue.
B-channel
B-channelRelease
reservation.
reservation.
User_A_Busy
CCBS_Idle
DEACTIVATION
REQUESTED
REJECT
CCBS_Requested
ACTIVATION
CCBS_Activated
MONITORING
CCBS_Free
INVOCATION
CCBS_Init
RELEASE
CANCEL
HMSC CCBS_SERVICE
Il servizio richiama l’utente A.
L’utente A accetta.
L’utente A rifiuta.
CCBS_Free
INVOCATION
CCBS_Idle
CCBS_Init
DEACTIVATION
RELEASE
CANCEL
MSC INVOCATION


L’utente A accetta la chiamata da parte del
CCBS prima che il timer T-CCBS3 scada.
La rete di A inizializza la chiamata verso
l’utente B.
MSC RELEASE
msc
RELEASE
User_A
Network_A
Network_B
CANCEL_ReqInd
remove req
from queue
Release_CCBS_ID
CCBS_Idle
release
B-channel
reservation
MSC RELEASE



La coda CCBS è stata processata, l’utente A è
stato richiamato.
Il sistema può liberare le risorse utilizzate.
Il sistema ritorna allo stato iniziale.
Operatore Inline opt


Permette di definire un blocco opzionale.
Simile all’operatore alt, dove la seconda
alternativa è sempre nulla.
Commento usato
come guardia.
opt
opt valid if
deactivation by
user A.
CANCEL_ReqInd
MSC Release_CCBS_ID
msc
Release_CCBS_ID
Network_A
User_A
CCBS_Deactivation_Requested
opt
opt valid if
deactivation by
user A.
CANCEL_ReqInd
release
CCBS
reference
T-CCBS2
T-CCBS3
Cosa non abbiamo visto?






Creazione e distruzione di instance.
Costrutto coregion.
Operatori inline: loop, par, …
Virtual msc e ereditarietà.
Gates.
…
Scarica

pongiglione