17.04.2015 Views

Master UPMC Sciences et technologies, mention informatique

Master UPMC Sciences et technologies, mention informatique

Master UPMC Sciences et technologies, mention informatique

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!