Master UPMC Sciences et technologies, mention informatique
Master UPMC Sciences et technologies, mention informatique
Master UPMC Sciences et technologies, mention informatique
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Master</strong> <strong>UPMC</strong> <strong>Sciences</strong> <strong>et</strong> <strong>technologies</strong>,<br />
<strong>mention</strong> <strong>informatique</strong><br />
Spécialité Systèmes <strong>et</strong> Applications<br />
Réparties<br />
Réalisation Assistée d’Applications Réparties<br />
Examen<br />
J-P. Briot, F. pechanski, L. Paut<strong>et</strong> & F. Kordon<br />
17 Novembre 2004<br />
Durée : 2h<br />
Aucun document autorisé<br />
Les téléphones portables doivent être éteints <strong>et</strong> dans les sacs<br />
Avant-propos<br />
Chacune des parties de ce suj<strong>et</strong> doivent être traitées sur des suj<strong>et</strong>s différents.<br />
Toutes vos réponses doivent être claire <strong>et</strong> justifiées (une réponse non justifiée peut être considérée comme<br />
fausse).<br />
Ne confondez pas «bonne réponse» avec «longue réponse» ;-)<br />
Question 1.1 (1 point)<br />
Partie I, obj<strong>et</strong>s <strong>et</strong> composants (3 points)<br />
Définissez les principes du concept de réflexion <strong>et</strong> précisez les problèmes que ce concept aide à résoudre.<br />
Mentionnez également les inconvénients éventuels.<br />
Question 1.2 (1 point)<br />
Donnez deux exemples de styles architecturaux (classes d’architectures logicielles).<br />
1
Question 1.3 (1 point)<br />
Quelles sont pour vous la ou les différences principales entre un composant <strong>et</strong> un obj<strong>et</strong> ?<br />
Partie II, calculs concurrents <strong>et</strong> répartis (3 points)<br />
Dans l’algèbre de processus RAALG, Un système concurrent <strong>et</strong> réparti se note :<br />
c : [m 1 ,m 2 ,...],d : [ m ′ 1,m ′ 2,... ] ,... ⊢ P 1 ‖ P 2 ‖ ...<br />
La partie à gauche du signe ⊢ se nomme l’environnement, il est composé d’un ensemble de canaux de<br />
communication. La notation c : [m 1 ,m 2 ,...,m n ] représente un canal de communication de nom c en train de<br />
transm<strong>et</strong>tre les messages m 1 à m n .<br />
La partie à droite du signe ⊢ est un programme composé d’un ensemble de processus P 1 ,P 2 ,... mis en parallèle.<br />
Chaque processus exécute une suite séquentielle d’actions, par exemple α 1 ,α 2 ,... pour P 1 <strong>et</strong> β 1 ,β 2 ,...<br />
pour P 2 , <strong>et</strong>c.<br />
Dans l’algèbre RAALG, nous définissons uniquement les actions out(c,M) <strong>et</strong> in(c,x) telles que :<br />
– c : [m 1 ,m 2 ,...,m n ] ⊢ out(c,M),P → c : [M,m 1 ,m 2 ,...,m n ] ⊢ P<br />
– c : [m 1 ,m 2 ,...,m n−1 ,m n ] ⊢ Q : in(c,x),Q(x) → c : [m 1 ,m 2 ,...,m n−1 ] ⊢ Q(m n )<br />
Ces règles de forme systeme → systeme ′ sont dites règles de réduction <strong>et</strong> correspondent à une étape atomique<br />
dans l’exécution symbolique des systèmes. La sémantique informelle est :<br />
– Dans un environnement avec un canal c contenant les messages de m 1 à m n , un processus effectuant une<br />
action out(c,M) place le message M en début de canal <strong>et</strong> le processus continue (“se réduit”) avec la suite<br />
du processus (ici, la suite d’actions P).<br />
– Un processus effectuant une action in(c,x) récupère le message m n en fin de canal <strong>et</strong> le processus continue<br />
(“se réduit”) en Q(m n ) (la suite d’actions Q où la variable x est substituée par le message m n ).<br />
On ajoute la sémantique, dite interleaving semantics, de l’opérateur parallèle :<br />
– Si env ⊢ P → env ′ ⊢ P ′ alors env ⊢ P ‖ Q → env ′ ⊢ P ‖ Q<br />
– Si env ⊢ Q → env ′′ ⊢ Q ′ alors env ⊢ P ‖ Q → env ′′ ⊢ P ‖ Q ′<br />
Sémantique informelle :<br />
– Si le Processus P (dans l’environnement env) peut s’exécuter (“se réduire”) en une étape en un processus<br />
P ′ (dans env ′ ), alors si la composition parallèle de P avec un processus quelconque Q (dans env) se réduit<br />
en la composition parallèle de P ′ <strong>et</strong> Q (dans env ′ )<br />
– Si le Processus Q (dans l’environnement env 2 ) peut s’exécuter (“se réduire”) en une étape en un processus<br />
Q ′ (dans env ′′ ), alors si la composition parallèle d’un processus quelconque P avec Q (dans env) se réduit<br />
en la composition parallèle de P <strong>et</strong> Q ′ (dans env ′′ )<br />
Question 2.1 (1 point)<br />
Compléter l’exécution (suite de réductions →) du système (S 1 ) suivant :<br />
Question 2.2 (1 point)<br />
c : [],d : [] ⊢ out(c,m 1 ),in(d,x),out(c,x) ‖ int(c,x),out(d,x),in(c,y) (S 1 )<br />
→ c : [m 1 ],d : [] ⊢ in(d,x),out(c,x) ‖ in(c,x),out(d,x),in(c,y)<br />
Existe-t-il d’autres exécutions possibles ? Ce programme est-il déterministe ou non-déterministe?<br />
Question 2.3 (1 point)<br />
Donner un exemple de programme non-déterministe dans l’algèbre RAALG.<br />
2
Question 3.1 (2 points)<br />
Partie III, intergiciels reconfigurables (4 points)<br />
Rappeler l’organisation d’un intergiciel en services proposée en cours. Détailler le rôle de chacun des services.<br />
Donner des exemples de concrétisation de ces services.<br />
Question 3.2 (2 points)<br />
On souhaite introduire une commutation synchrone/asynchroneentre les parties applicatives <strong>et</strong> protocolaires<br />
d’un intergiciel. Définir la fonctionnalite attendue. Proposer des exemples illustrant les deux situations<br />
de commutation. Donner les grandes lignes d’une concrétisation des services présentés dans la question<br />
précédente afin d’implanter d’une telle fonctionnalité.<br />
Partie IV, Génération de programmes (10 points)<br />
Sous souhaitons générer un programme associé au réseaux de p<strong>et</strong>ri de la Figure 1.<br />
Class<br />
prc is 1..3;<br />
srst is [w, p];<br />
srv is 1..2;<br />
Domain<br />
comp is ;<br />
wrsv is ;<br />
Var<br />
P in prc;<br />
S in srv;<br />
P<br />
<br />
Pp<br />
comp<br />
<br />
<br />
<br />
At<br />
wrsv<br />
<br />
Ac<br />
Tr<br />
Rp<br />
prc<br />
<br />
<br />
<br />
Db<br />
comp<br />
<br />
<br />
Ar<br />
<br />
<br />
Ok<br />
prc<br />
<br />
<br />
Dm<br />
prc<br />
<br />
<br />
Rq<br />
Rn<br />
prc<br />
FIG. 1 – Modèle à prototyper.<br />
Question 4.1 (1 point)<br />
Quel est le modèle structurel associé au réseau de P<strong>et</strong>ri de la Figure 1.<br />
Question 4.2 (2 points)<br />
L’invocation d’un outil approprié nous ramène le calcul des invariants suivants :<br />
F 1 Db+Dm+Rp+Rn+Pp= cst<br />
F 2 At + Db+Pp = cst<br />
F 3 Dm+Ok+Rn = cst<br />
Proposez un partitionnement du modèle à partir de ces informations.<br />
Question 4.3 (1 point)<br />
Identifiez les G-Obj<strong>et</strong>s de manière précise (éventuellement pour chaque décomposition).<br />
3
Question 4.4 (3 points)<br />
On choisi de générer un programme réparti pour ce réseaux de P<strong>et</strong>ri. La politique choisie pour le serveur de<br />
ressources reste centralisée. Proposez un placement des différentes entités du code généré pour les configurations<br />
suivantes :<br />
c f 1<br />
c f 2<br />
c f 3<br />
1 machine,<br />
2 machines identiques connectées via un réseau local,<br />
3 machines identiques connectées via un réseau local.<br />
Question 4.5 (1 point)<br />
Identifiez le meilleur placement possible parmi ceux de la question précédente. Vous justifierez pourquoi.<br />
Question 4.6 (1 point)<br />
Quel est l’intérêt, pour ce modèle, d’utiliser une implémentation du serveur de ressources répartie.<br />
Question 4.7 (1 point)<br />
On souhaite utiliser UML pour générer automatiquement des programmes répartis. Quel type de génération<br />
de programme peut-on pratiquer à partir d’une spécification UML dans ce contexte ? Quelles contraintes<br />
peut-on rencontrer ?<br />
4