Académique Documents
Professionnel Documents
Culture Documents
1 / 20
Erlang et OTP
La plupart des programmes Erlang utilisent des processus La plupart des processus remplissent une fonction telle que :
Serveurs de fonctionnalit Machine tats nis Gestionnaire dvnements Supervision des autres processus Dmarrage, n et mise jour de lapplication
OTP (Open Telephony Platform) fournit ces services sous formes de comportements pour Erlang
2 / 20
tat et enregistrement
4 / 20
Comportements
Ce module fournit un ensemble de fonctions qui seront appeles par le comportement (callbacks) et qui renvoient un statut, un nouvel tat et ventuellement des informations pour lappelant :
handle_call ({allocate, Blocks}, From, State) when Blocks <= State#state.free_blocks -> {reply, ok, State#state{free_blocks = State#state.free_blocks - Blocks}};
6 / 20
Rponses
Plusieurs types de rponses peuvent tre renvoyes par un callback. Exemple de handle_call dans le comportement gen_server :
{reply, Reply, State} {reply, Reply, State, Timeout} {noreply, State} {noreply, State, Timeout} {stop, Reason, Reply, State} {stop, Reason, State}
7 / 20
Comportement gen_server
But : faire un serveur gnrique (question/rponse) appelable distance, avec gestion des timeouts. Fonctions :
Initialisation Gestion dun appel synchrone entrant Gestion dun appel asynchrone entrant Gestion dune information entrante Gestion de la terminaison Gestion du changement de code
8 / 20
Autres fonctions
9 / 20
Comportement gen_event
10 / 20
Dnitions
vnement : quelque chose qui a lieu Catgorie dvnements : type ou classe dun vnement Gestionnaire dvnements : processus charg de la coordination des vnements de la mme catgorie Notication : acte dinformer un gestionnaire quun vnement sest produit Traiteur dvnements : (event handler ) module qui exporte des fonctions permettant de traiter des vnements dune certaine catgorie
11 / 20
Principe
Un gestionnaire dvnements est lanc Un ou plusieurs traiteurs dvnments sont lancs Les vnements sont notis au gestionnaire dvnements Le gestionnaire renvoie les vnements aux traiteurs Les traiteurs peuvent prendre les actions ncessaires, modier leur tat interne, demander tre supprims ou demander tre remplac par un autre traiteur
12 / 20
Comportement gen_fsm
13 / 20
Supervision
Problmes :
un programme informatique peut comporter des erreurs dans un systme rparti, des machines ou des rseaux peuvent tomber en panne
Ericsson
14 / 20
Superviseurs
Ils supervisent des travailleurs ou des superviseurs, et ont plusieurs stratgies : Un pour tous : (one for all) si un processus supervis meure, ils sont tous tus (rcursivement) puis ventuellement relancs Chacun pour soi : (one for one) si un processus supervis meure, il est ventuellement relanc
15 / 20
Travailleurs
Les travailleurs (ou superviseurs ls) sont de plusieurs types : permanent : il est toujours relanc sil meure (processus indispensable) phmre : (transient) il est relanc sil meure de faon anormale (processus temporaire dont le rsultat est indispensable) temporaire : (temporary ) il nest jamais relanc
16 / 20
Avalanche
Si cause dune erreur de programmation un processus meure, il se peut que cela recommence chaque fois quil est relanc Les processus ont une frquence maximum de relance Si un processus ne peut pas tre relanc, son superviseur meure Le superviseur du superviseur prend le relai
17 / 20
Un pont de supervision est possible, permettant dinsrer un processus Erlang de supervision dans la chane
18 / 20
19 / 20
Conclusions
20 / 20