Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1....

38
Projets Java – Intitul´ es Hugues Mounier ESUM ´ E. Ce document comporte les parties suivantes. Une partie contenant les desciptifs brefs des ´ enonc´ es. Une partie avec le squelette des sections pr´ esentes dans un ´ enonc´ e d´ etaill´ e. Une partie fournissant les ´ enonc´ es d´ etaill´ es. A – Brefs descriptifs des projets Projet n 1: egulation de traffic dans les r´ eseaux haut d´ ebit Au sein d’un r´ eseau, tous les utilisateurs – ou tous les couples (source, destination) – sont contraints de se partager les ressources finies en bande passante aux dif´ erents liens et en taille de tampons m´ emoire des routeurs. L’objectif est ici d’implanter des politiques d’allocation dynamique de bande passante ` a chaque couple (source, destination) de fac ¸on ` a assurer une utilisation optimale de la bande passante totale tout en ´ evitant le d´ ebordement (ou congestion) des tampons m´ emoire des diff´ erents routeurs. Les ´ evolutions temporelles des tampons m´ emoire (en nombre de paquets) sont prises comme trajectoires et l’´ etat id´ eal de fonctionnement du r´ eseau est repr´ esent´ e par le suivi de ces trajectoires. Un mod` ele simple de r´ eseau ` a partir de briques de bases est fourni, ainsi qu’une poli- tique de sp´ ecification des d´ ebits aux diff´ erents noeuds du r´ eseau qui assure le suivi des trajectoires sp´ ecifi´ ees ` a l’avance. Projet n 2: Entrainement sportifs Le but est ici de fournir un g´ en´ erateur d’applications d´ edi´ ees ` a l’entrainement ` a un sport ou ` a une activit´ e physique donn´ ee. Diff´ erentes parties multim´ edia, mˆ elant texte ex- plicatif, s´ equences vid´ eo et sonores doivent permettre un auto-entrainement. L’application doit ˆ etre conc ¸ue comme une boˆ ıte ` a outils permettant de g´ en´ erer ce type d’application, quelle que soit l’activit´ e physique cible. Il doit ˆ etre possible d’effectuer des surimpressions de courbes color´ ees et de points color´ es en mouvement sur les s´ equences vid´ eo. Il devra en outre ˆ etre possible de zoomer sur n’importe quelle partie d’une s´ equence vid´ eo et de voir la s´ equence vid´ eo se poursuivre 1

Transcript of Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1....

Page 1: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java – Intitul es

Hugues Mounier

RESUME. Ce document comporte les parties suivantes. Une partie contenant les desciptifs brefsdesenonces. Une partie avec le squelette des sections presentes dans unenonce detaille. Unepartie fournissant lesenonces detailles.

A – Brefs descriptifs des projets

Projet n◦ 1 : Regulation de traffic dans les reseaux haut debit

Au sein d’un reseau, tous les utilisateurs – ou tous les couples (source, destination) –sont contraints de se partager les ressources finies en bandepassante aux diferents liens eten taille de tampons memoire des routeurs.L’objectif est ici d’implanter des politiques d’allocation dynamique de bande passantea chaque couple (source, destination) de facon a assurerune utilisation optimale de labande passante totale tout en evitant le debordement (ou congestion) des tampons memoiredes differents routeurs. Les evolutions temporelles destampons memoire (en nombre depaquets) sont prises comme trajectoires et l’etat ideal de fonctionnement du reseau estrepresente par le suivi de ces trajectoires.Un modele simple de reseau a partir de briques de bases estfourni, ainsi qu’une poli-tique de specification des debits aux differents noeuds du reseau qui assure le suivi destrajectoires specifiees a l’avance.

Projet n◦ 2 : Entrainement sportifs

Le but est ici de fournir un generateur d’applications dediees a l’entrainement a unsport ou a une activite physique donnee. Differentes parties multimedia, melant texte ex-plicatif, sequences video et sonores doivent permettre un auto-entrainement. L’applicationdoit etre concue comme uneboıte a outils permettant de generer ce type d’application,quelle que soit l’activite physique cible.

Il doit etre possible d’effectuer des surimpressions de courbes colorees et de pointscolores en mouvement sur les sequences video. Il devra enoutre etre possible de zoomersur n’importe quelle partie d’une sequence video et de voir la sequence video se poursuivre

1

Page 2: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

en meme temps dans la fenetre initiale et dans la nouvelle fenetre contenant la partiezoomee.

Quelques detailes supplementaires se trouvent dans la partie detaille du sujet.

Projet n◦ 3 : Carnet d’adresses distribue dynamique

Il s’agit de gerer un carnet d’adresses distribue, avec possibilite d’e-mail, d’impressionet de fusion de plusieurs carnets.

Projet n◦ 4 : Agenda distribue simple

Chaque acteur a son propre agenda, avec son planning ; il peut: modifier le sien,consulter celui des autres et etre reveille pour un rendez-vous.

Projet n◦ 5 : Site internet des vins

Un serveur Web sur lequel on donne un cru, et l’on obtient un prix. L’obtentiond’information sera systematiquement graphique ; par exemple, on se trouve devant lacarte de la France et l’on clique su une region. Se retrouvant dans cette region, l’on peutselectionner une ou plusieurs sous-regions qui feront l’objet des requetes suivantes, acces-sibles a la souris (choix d’un/plusieurs cru(n) parmin, choix d’un/plusieurs producteur(s),choix d’un/plusieurs millesime(s), etc.) Des fichiers de son seront associes a chaque de-scription de cru, avec des sequences video associees (promenenade dans les vignes, dansles chais, visualisation rapide de la fabrication, etc.)

Projet n◦ 6 : Suivi et gestion de trajectoires de vehicules

On considere le mouvement d’un vehicule et le modele cin´ematique associe. Levehicule est pilote par la vitessev de son centre d’inertie et par l’angle de braquageφde ses roues avant. On suppose s’etre donne une trajectoire pour le pointP situe au milieude l’essuieu arriere du vehicule. Les lois d’evolution de v et deφ realisant le suivi decette trajectoire seront fournies. Le but de ce projet est derealiser des outils permettant degerer les trajectoires (composition, modification, destruction) et de visualiser le vehiculesuivant une trajectoire.

Projet n◦ 7 : Jeu de vaisseaux spatiaux

Un jeu classique, ou plusieurs vaisseaux en reseau peuvent se deplacer en propulsionet en rotation, peuvent tirer et peuvent se teleporter. Des rochers defilent et une collisiond’un vaisseau sur un rocher fait eclater ce dernier.

2

Page 3: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

Projet n◦ 8 : Simulation de porteurs en bourse

L’objet est de simuler la gestion d’actions et d’obligations en bourse, avec des activitesde gestion rattachees aux banques, dans lesquelles chaqueclient disposera de portefeuillesde titres. La gestion se fera de maniere distante. Interviendront egalement des gros por-teurs, qui pourront influer dynamiquement sur le cours des titres, ceci se repercutant surle montant des protefeuilles des clients.

Projet n◦ 9 : Evaluation d’algorithmes d’ordonnancement

Le but de ce projet est de creer un mini ordonnanceur d’activites et de pouvoir com-parer graphiquement divers algorithmes d’ordonnancement. On visualisera quelle activiteoccupe le processeur fictif.

Projet n◦ 10 : Flotte d’aeronefs cooperatifs

Une flotte deN petits avions autonomes doivent couvrir un territoire donne. La mis-sion peut etre de prendre des photos pour des besoins de cartographie ou de gestion terri-toriale, de pulveriser de l’engrais, d’effectuer de la surveillance aerienne, etc.

On dispose pour chaque petit avion, d’un modele simple de dynamique de vol. Laflotte deN avions se voit attribuee une mission au depart, puis au bout d’un tempsindetermine peut se voir attribue une ou plusieurs autres missions. Chaque mission peutegalement etre abandonnee en route, par un ou plusieurs desN avions, en cas d’ordre ence sens.

Projet n◦ 11 : Dynamique d’avion a decollage vertical

On considere un avion a decollage vertical ou la stabilisation de roulis est assuree par2 reacteurs situes sous les ailes. Le but est ici de faire suivre des trajectoires d’approche,de decollage et d’aterrissage a l’avion. L’essentiel de la dynamique de vol sera egalementconsidere et on elaborera une vue de l’avion sous forme synthetique (en synthese d’images)

Projet n◦ 12 : Gestion concurrente de voies ferrees

L’utilisateur peut construire un trajet de voie ferree a la souris a l’aide de tronconspredetermines. Plusieurs trains peuvent circuler sur ce trajet. Si deux trains ou plus ar-rivent sur un troncon unique de voie ferree de telle sorte qu’il y ait un risque de colli-sion, tous les trains sauf un doivent attendre. On pourra egalement prevoir des gares, desgarages de reparation et des plans horaires pour chaque train.

Projet n◦ 13 : Explorateur d’arborescence distribue et securise

Il s’agit de realiser un clone de l’explorateur Windows avec possibilite d’explorer desmachines distantes (dont on entre le nom ou l’adresse IP). Deplus, l’acces sera controle

3

Page 4: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

par des listes de controle d’acces (ou ACL, comme “Access Control List”) qui permetd’obtenir une granularite fine de l’acces.

Projet n◦ 14 : Gestion d’une agence de voyages distribuee

Cette agence de voyages virtuelle doit non seulement etre capable d’effectuer desreservations de vols, mais egalement d’etablir la composition d’un avion et le plan devol des pilotes. La composition d’un avion sera disponible sous la forme d’un graphiqueinteractif, ou les places prises et les places disponiblesseront differentiees par des codes decouleur ; en cliquant sur une place, il sera possible d’obtenir – dans le cas ou la place a etereservee – des informations sur la personne ayant effectue la reservation (ces informationsn’etant disponible qu’en acces restreint).

Projet n◦ 15 : Generateur de taches distribue

Il s’agit de realiser un demon (programme de service tournant en arriere plan) executantdes taches en differe soit sur la machine locale, soit surune machine distante. La frequenced’execution des taches est consignee dans un fichier de configuration, dont on pourraforcer la relecture dynamiquement. Les demons d’execution peuvent communiquer demachine a machine afin de realiser une tache distribuee.

Projet n◦ 16 : Simulateur d’algorithme de routage

L’utilisateur pourra composer un reseau a la souris et simuler divers algorithmes deroutage classiques sous Internet. Il devra etre possible de visualiser les paquets auxdifferents routeurs, de morceler et de reassembler les paquets.

Projet n◦ 17 : Cartographie de site web

Le but de ce projet est de representer l’arborescence d’un site Web sous forme graphique.Le site pourra etre rapatrie a l’aide de robots automatiques et son contenu analyse ensuitepour produire l’arborescence.

Projet n◦ 18 : Sonde de tests d’un reseau de serveurs

Le but de ce projet est de tester le fonctionnement d’un reseau de machines, notammenten ce qui concerne la charge, le nombre de paquets perdus, etc.

La visualisation du fonctionnement d’un reseau de serveurs peut etre effectuee a l’aided’un logiciel de supervision et de sondes installees sur chaque serveur. La sonde : ils’agit d’un demon client qui est capable d’effectuer les tests indiques par le serveur desupervision.

Ces tests sont soit :

4

Page 5: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• des tests standards de type etat de la memoire, etat de la charge, nombre de processusactifs, zombies...

• le resultat d’un programme envoye par le serveur

Le serveur de supervision : il connaıt l’emplacement de chacune de ses sondes etdispose d’un fichier de configuration qui lui permet d’interroger les sondes sur des pointsprecis (tests) a des intervalles de temps precis ou a unedate precise.

Le fichier de configuration precise en fonction des resultats des tests s’il faut ou nonfaire remonter une erreur.

Le logiciel de supervision represente chacune de ses sondes avec leur etat et tient a jourun historique. En cas de probleme il doit etre capable d’envoyer un e-mail qui indique lanature de la panne.

Projet n◦ 19 : Generation de trajectoires avec obstacles

Il s’agit d’implanter des algorithmes d’evitement d’obstacle en robotique mobile parla methode des potentiels ou celle des lignes de niveau, avec une visualisation 2D ou ensynthese d’images 3D.

On fournit des points de depart et d’arrivee a la souris ; on construit egalement desobstacles a la souris par combinaison de formes geometriques simples. Cette etape estrealisee en vue de dessus 2D et en perspective 3D. Ensuite,la generation de trajectoires serealise ; puis l’on peut suivre le cheminement du vehiculeen vue de dessus et en perspec-tive 3D.

Projet n◦ 20 : Transfert sur sous UDP

Creer un protocole au dessus d’UDP realisant un transfertsur de donnees avec contolede flux a l’instar de ce qui est realise sous TCP. Implanterun mecanisme d’acquittementde donnees avec controle de flux par fenetre. Fournir un mode de tracage qui affiche demaniere graphique les accuses de reception, la fenetrede flux. Fournir un exemple deserviceecho .

Numeros de pages des descriptifs detailles de projets

Projet n◦ 1 : Regulation de traffic dans les reseaux haut debit 10Projet n◦ 2 : Entrainement sportifs 12Projet n◦ 3 : Carnet d’adresses distribue dynamique 13Projet n◦ 4 : Agenda distribue simple 14Projet n◦ 5 : Site internet des vins 16

5

Page 6: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

Projet n◦ 6 : Suivi et gestion de trajectoires de vehicules 17Projet n◦ 7 : Jeu de vaisseaux spatiaux 19Projet n◦ 8 : Simulation de porteurs en bourse 20Projet n◦ 9 : Evaluation d’algorithmes d’ordonnancement 22Projet n◦ 10 : Flotte d’aeronefs cooperatifs 23Projet n◦ 11 : Dynamique d’avion a decollage vertical 25Projet n◦ 12 : Gestion concurrente de voies ferrees 26Projet n◦ 13 : Explorateur d’arborescence distribue et securise 27Projet n◦ 14 : Gestion d’une agence de voyages distribuee 29Projet n◦ 15 : Generateur de taches distribue 30Projet n◦ 16 : Simulateur d’algorithme de routage 32Projet n◦ 17 : Cartographie de site web 33Projet n◦ 18 : Sonde de tests d’un reseau de serveurs 34Projet n◦ 19 : Generation de trajectoires avec obstacles 36Projet n◦ 20 : Transfert sur sous UDP 37

6

Page 7: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

B – Descriptif d’ enonce generique

Une section qui ne figure pas toujours dans un descriptif d’enonce est suivie de la mentionoptionnel entre parentheses.

Projet n◦ i : titre du projet

1 Description rapide

Breve description, en moins de20 lignes, des buts et des caracteristiques principalesdu projet.

2 Categorie d’application: Mots cles de categorie d’application (5 maximum) : Synthesed’images, bases de donnees, algorithmique, jeu, algorithmique distribuee, traitement d’images,traitement du signal, automatique, electronique, etc.

3 Technologies Java et structures de donnees: Les technologies Java mises en oeuvresont enumerees, ainsi que les champs requis ou les structures de donnees a utiliser depreference.

4 Deroulement en troisetapes

Chaque projet comporte une realisation en trois etapes :

(i) L’etape de base represente le minimum exigible. Elle correspond a des fonction-nalites de base, faciles a implanter.

(ii ) L’etape intermediaire represente une realisation satisfaisante. Elle correspond a desfonctionnalites de niveau intermediaire.

(iii ) L’etape avancee represente une excellente realisation. Elle correspond a des fonc-tionnalites avancees, eventuellement delicates a mettre en oeuvre.

5 Specifications de comportement (optionnel)

Ici sont decrits des traits generaux de comportement de la realisation logicielle.Des specifications possibles sont la portabilite, l’utilisation en reseau, le caractere uni-

formement reparti, la tolerance aux pannes, la robustesse, l’autonomie, la flexibilite, lasouplesse de maintenance, d’utilisation, l’ergonomie, etc.

6 Variantes en cas de dedoublement possible (optionnel)

Dans le cas ou le projet peut etre choisi par plusieurs binˆomes, on indique combiende binomes au plus peuvent le choisir. Il y a un sujet de base,qui doit etre choisi s’il n’ya qu’un binome realisant le projet et une ou plusieurs variantes, dans le cas de plusieursbinomes.

7

Page 8: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

7 Bibliographie (optionnel)

Une bibliographie eventuelle de documents pouvant etre utiles a la realisation du pro-jet.

8

Page 9: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale
Page 10: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

C – Enonces detailles des sujets

Projet n◦ 1 : Regulation de traffic dans les reseaux haut debit

1.1 Description rapide

Au sein d’un reseau, tous les utilisateurs – ou tous les couples (source, destination) –sont contraints de se partager les ressources finies en bandepassante aux diferents liens eten taille de tampons memoire des routeurs.L’objectif est ici d’implanter des politiques d’allocation dynamique de bande passantea chaque couple (source, destination) de facon a assurerune utilisation optimale de labande passante totale tout en evitant le debordement (ou congestion) des tampons memoiredes differents routeurs. Les evolutions temporelles destampons memoire (en nombre depaquets) sont prises comme trajectoires et l’etat ideal de fonctionnement du reseau estrepresente par le suivi de ces trajectoires.Un modele simple de reseau a partir de briques de bases estfourni, ainsi qu’une poli-tique de specification des debits aux differents noeuds du reseau qui assure le suivi destrajectoires specifiees a l’avance.

1.2 Categorie d’application: reseaux, controle de traffic.

1.3 Technologies Java et structures de donnees: Java2D (pour le graphisme).

1.4 Deroulement en troisetapes

(i) Etape de base

• Implantation des lois d’evolution de debit et visualisation des courbes de tra-jectoires specifiees et d’evolution de debit.

• Elaboration d’une politique de partage simple, analogue autemps partage d’unalgorithme d’ordonnancement.

• Composition a la souris du reseau a etudier, avec3 types de blocs : source,destination et intermediaire ainsi qu’un type de lien.

• Prevoir au moins les cas :

– de machines sources qui sont susceptibles de demarrer apr`es un certaintemps de repos a partir de l’instant initial ;

– de machines sources susceptibles de s’arreter apres un certain temps defonctionnement ;

– de machines destination susceptibles de s’arreter apresun certain tempsde fonctionnement.

(ii ) Etape intermediaire

10

Page 11: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• Composition simple de trajectoires par morceaux, par choixde diverses poli-tiques de partage (s’inspirer par exemple d’algorithmes d’ordonnancement).

• Ajouter un attribut de retard de transmission fixe (ne dependant pas du temps)sur chaque lien.

• Simulation du systeme dynamique par integration simple (un Runge-Kuttad’ordre 4 sera fourni).

Sujet de base: Visualisation de l’evolution le long du reseau. Chaque lien est visualise par untube dans lequel transite un liquide colore. Chaque couple(source, destination)se voit attribue une couleur. Le liquide en transit a pour couleur le melange descouleurs des differents couples utilisant le lien. Le tauxde remplissage du tuberepresentant le lien visualise le taux d’occupation de la bande passante totaledu lien. Le taux de remplissage respectif de chaque couple est rappele parun vu-metre de la couleur associee. Les vu-metres sont situes en dessous desliens. Cette visualisation doit etre disponible apres lacomposition du reseaude l’etape de base et inseree dans la simulation dynamique precedente.

Variante n◦ 1 : Implanter des lois de debit dites en boucle fermee, permettant de compenser leslegeres imperfections de modele et meconnaissances deconditions initiales.

(iii ) Etape avancee

• Implanter les lois de debit avec des retards variables avecle temps, tenant enparticulier compte de la charge des machines intermediaires.

• Ces implantations doivent etre inserees dans la simulation dynamique avecvisualisation par tubes colores de l’etape intermediaire.

1.5 Specifications de comportement

L’accent doit etre mis sur la flexibilite des politiques departage (de nouvelles poli-tiques doivent pouvoir etre ajoutees simplement).

Un autre aspect important est la tolerance aux pannes des differents noeuds ainsi quela possibilite de fonctionnement en mode degrade.

1.6 Variantes en cas de dedoublement possible

Il y a une variante possible en realisation de l’etape intermediaire.

1.7 Bibliographie

(i) Controle de traffic dans les reseaux haut Internet et ATM,H. Mounier, Transparentsseminaire CESAME, universite catholique de Louvain, Louvain la neuve, octobre1999.

(ii ) High Speed Network Congestion Control with a simplified Time-varying DelayModel, H. Mounier, M. Mboup, N. Petit, P. Rouchon et D. Seret,IFAC ConferenceSystem, Structure and Control, Nantes, 1998.

11

Page 12: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

(iii ) Pour les traces graphiques, Java2DMonarchCharts etJSci

Projet n◦ 2 : Entrainement sportifs

2.1 Description rapide

Le but est ici de fournir un generateur d’applications dediees a l’entrainement a unsport ou a une actiite physique donnee. Differentes parties multimedia, melant texte expli-catif, sequences video et sonores doivent permettre un auto-entrainement. L’applicationdoit etre concue comme uneboıte a outils permettant de generer ce type d’application,quelle que soit l’activite physique cible.

Les activites cibles peuvent etre tres variees (danse,atlethisme, sports nautiques, sportsd’hiver, sports de balles et de ballons, sports de combat, arts martiaux externes et internes,etc.).

Il doit etre possible d’effectuer des surimpressions de courbes colorees et de pointscolores en mouvement sur les sequences video. Par exemple pour un skieur, des courbespeuvent montrer sur quelles parties du corps il faut pousserpour effectuer telle ou tellemanoeuvre (pour effectuer un virage avec les skis paralleles, il faut rentrer les genouxvers l’amont et chasser avec l’arriere du pied exterieur vers l’aval, et ce au moment del’anticipation et de la fin du virage) ; pour un nageur, des courbes ou des points colores enmouvement peuvent indiquer quels sont les mouvements des mains, des pieds et ceux del’eau evacuee.

Il devra en outre etre possible de zoomer sur n’importe quelle partie d’une sequencevideo et de voir la sequence video se poursuivre en meme temps dans la fenetre initiale etdans la nouvelle fenetre contenant la partie zoomee.

2.2 Categorie d’application: multimedia, surimpression d’images video.

2.3 Technologies Java et structures de donnees: JMF, JDBC (ou dbSwing).

2.4 Deroulement en troisetapes

(i) Etape de base

• Outil de generation de documents multimedia a partir d’un document texte auformat HTML, d’iamges fixes (au format GIF, JPEG, etc.) de sequences video(au format MPEG2, MPEG4, etc.) et de sequences audio (au format ...)

• La generation doit pouvoir se faire a la souris avec insertion possible de texte,d’images fixes, animees ou de son.

(ii ) Etape intermediaire

12

Page 13: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• Outil de generation de surimpression de points et de courbes (splines inter-polantes, passant par divers points de controle) sur images fixes.

• Points fixes et courbes surimprimees sur sequences video. On effectuera desinterpolations a partir d’images fixes de la sequence que l’on aura surimprime.

• Possibilite de zoom et de visualisation simultanee de la sequence initiale et dela sequence zoomee defilant en parallele.

(iii ) Etape avancee

• Plusieurs images de zoom simultanees possibles.

• Techniques d’“anti-aliasing”.

• Plusieurs vitesses de defilement d’une sequence video.

• Possibilite de marquage d’une image dans une sequence et de sauter a cettemarque.

• Gestion des marqueurs : creation, destruction, aller a lamarque suivante/pre-cedente, ecriture et lecture disque.

2.5 Specifications de comportement

L’application doit etre tres flexible par rapport aux techniques de surimpression (ildoit etre facile de les modifier et d’en ajouter). L’ergonomie est ici un point crucial ;l’application doit etre tres souple et facile a utiliser.

2.6 Bibliographie

(i) La classeBidi du paquetagetext permettant des manipulations et formattages detexte.

(ii ) Des classes de gestion de texte sur images :http://www.execpc.com/ ˜ larryhr

Projet n◦ 3 : Carnet d’adresses distribue dynamique

3.1 Description rapide

Il s’agit de gerer un carnet d’adresses distribue, avec possibilite d’e-mail, d’impressionet de fusion de plusieurs carnets.

3.2 Categorie d’application: bases de donnees, application client/serveur.

13

Page 14: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

3.3 Technologies Java et structures de donnees: JDBC (ou dbSwing), RMI.

3.4 Deroulement en troisetapes

(i) Etape de base

• Les adresses (ou enregistrements) doivent au moins comporter les champs :nom, prenom, categorie (ami, commercant, artisan, medecin, connaissanceprofessionnelle, connaissance de loisirs), adresse, digicode, code postal, villenumeros de telephone, e-mail, date de derniere modification de l’enregistrement,remarques.

• Possibilites d’ajouter, de supprimer, de modifier et de visualiser les enreg-istrements.

• types de visualisation minimum : par ordre alphabetique des noms, par categorie,par ville, par code postal. Pour les3 derniers, tri sur une cle secondaire, le nom.

• Une personne peut faire partie de plusieurs categories.

• Developpement en local a une machine.

(ii ) Etape intermediaire

• Developpement en distribue, avec un serveur concurrent.

• Acces synchronise a la base assure par une thread speciale de gestion.

• Possibilite d’envoyer un e-mail a une personne.

(iii ) Etape avancee

• Plusieurs serveurs correspondant a plusieurs agendas peuvent converser, selonun protocole que l’on definira, pour realiser une fusion/mise a jour de2 basesd’adresses en une. La fusion correspond a une concatenation.

• La mise a jour prend en compte les dates de derniere modification pour neconserver que les enregistrements les plus recents.

3.5 Specifications de comportement

L’application doit etre parfaitement portable et la plus autonome possible (en partic-ulier, elle ne doit dependre d’aucun logiciel exterieur). Les acces aux agendas doivent etrerapides.

14

Page 15: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

Projet n◦ 4 : Agenda distribue simple

4.1 Description rapide

Chaque acteur a son propre agenda, avec son planning ; il peut: modifier le sien,consulter celui des autres et etre reveille pour un rendez-vous.

4.2 Categorie d’application: bases de donnees legeres et cooperatives ; applicationsdistribuees.

4.3 Technologies Java et structures de donnees: JDBC (ou dbSwing), Properties, RMI.

4.4 Deroulement en troisetapes

(i) Etape de base

• Gestion d’agenda en local a une machine. Possibilite de : prise de rendez-vous,modification, annulation et rappel de rendez-vous.

• La structure d’un enregistrement de rendez-vous devra au minimum comporterles champs suivants :

– date (jour, semaine, mois) au format par ex. Mardi 21 janvier1789,

– heure de debut,– heure de fin,

– categorie de rendez-vous (personnel, professionnel, etc.),

– commentaire de description.

• Possibilite d’ajouter des categories de rendez-vous.

• Visualisation avec tri par date et heure, par categorie de rendez-vous (aveccomme cle secondaire la date et l’heure).

• Rappel de rendez-vous par afficahge des date, heure et commentaire en couleur.

(ii ) Etape intermediaire

• Gestion d’agenda distribuee, avec des RMI. Chaque gestionnaire d’agendasera a la fois client et serveur RMI.

• Rappel de rendez-vous par e-mail auxN personnes concernees par le rendez-vous.

• Chaque utilisateur peut consulter et modifier son agenda, ainsi que consultercelui des autres.

• Gestion des conflits lors de la prise et de la modification de rendez-vous.

(iii ) Etape avancee

• Fournir un algorithme d’allocation distribue de rendez-vous a partir d’un cer-tain nombre de rendez-vous a fixer et de diverses contraintes.

15

Page 16: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• Possibilite de fournir des contraintes de la forme :

– pas de rendez-vous le matin (ou l’apres-midi),

– pas de rendez-vous tel jour de la semaine.

4.5 Specifications de comportement

Il doit y avoir une grande flexibilite par rapport aux categories de rendez-vous. L’applicationdoit etre portable et “legere” au sens de temps de reponse rapides. Le caractere uni-formement reparti (c.a.d. sans architecture privilegiant l’une des entites, telle un serveuretN clients, mais chaque gestionnaire ayant un code similaire)est important. La toleranceaux pannes est egalement une caracteristique notable.

Projet n◦ 5 : Site internet des vins

5.1 Description rapide

Un serveur Web sur lequel on donne un cru, et l’on obtient un prix. L’obtentiond’information sera systematiquement graphique ; par exemple, on se trouve devant lacarte de la France et l’on clique su une region. Se retrouvant dans cette region, l’on peutselectionner une ou plusieurs sous-regions qui feront l’objet des requetes suivantes, acces-sibles a la souris (choix d’un/plusieurs cru(n) parmin, choix d’un/plusieurs producteur(s),choix d’un/plusieurs millesime(s), etc.) Des fichiers de son seront associes a chaque de-scription de cru, avec des sequences video associees (promenenade dans les vignes, dansles chais, visualisation rapide de la fabrication, etc.)

5.2 Categorie d’application: multimedia, bases de donnees.

5.3 Technologies Java et structures de donnees: JDBC (ou dbSwing), JMF, Servlets.

5.4 Deroulement en troisetapes

(i) Etape de base

• Gestion de la base de donnee des crus. Cette base devra au minimum com-porter les champs suivants : region, sous-region, appellation, cru, adresse duproducteur.

• la base des millesimes devra comporter au minimum les champs suivants : cru,millesime1, prix1, millesime2, prix2, etc. S’il semble y avoir une meilleuresolution que celle-ci (tout a fait simpliste) la specifier et l’implanter.

• Creation d’une carte de France cliquable avec regions et sous-regions. Lorsquel’on clique sur une region (resp. une sous-region) apparaıt une carte de la sous-region (resp. des appellations, ou des villages) correspondante.

16

Page 17: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

(ii ) Etape intermediaire

• Gestion graphique de la base des crus. Raffiner la carte precedente jusqu’auniveau des parcelles. Lorsque l’on clique sur une parcelle,l’etiquette du cruapparaıt ainsi que diverses informations : adresse du producteur, ainsi qu’uneliste de millesimes/prix.

• Possibilite de recherches par appellation, millesime, fourchette de prix, etc.avec obtention de listes de millesimes/prix.

(iii ) Etape avancee

• Realiser un algorithme d’accord automatique vin/plat. Pour cela, creer unebase de donnees de plats reopertories, puis creer des r`egles d’accord. Realiserl’interface graphique corresondante.

5.5 Specifications de comportement

L’ergonomie graphique doit etre particulierement soignee. La rapidite d’acces auxbases de donnees est egalement importante.

5.6 Bibliographie

(i) Guide Bettane/Desseauve et/ou Parker.

(ii ) Encyclopedie Hachette des vins.

(iii ) L’Accord parfait de Philippe Bourguignon

Projet n◦ 6 : Suivi et gestion de trajectoires de vehicules

6.1 Description rapide

On considere le mouvement d’un vehicule et le modele cin´ematique associe. Levehicule est pilote par la vitessev de son centre d’inertie et par l’angle de braquageφde ses roues avant. On suppose s’etre donne une trajectoire pour le pointP situe au milieude l’essuieu arriere du vehicule. Les lois d’evolution de v et deφ realisant le suivi decette trajectoire seront fournies. Le but de ce projet est derealiser des outils permettant degerer les trajectoires (composition, modification, destruction) et de visualiser le vehiculesuivant une trajectoire.

6.2 Categorie d’application: CGAD, NURBS (Non Uniform Rational B-Splines), tra-jectographie, synthese d’images.

17

Page 18: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

6.3 Technologies Java et structures de donnees: structure de NURBS, Java 2D (graphisme),Java3D (vehicule se deplacant).

6.4 Deroulement en troisetapes

(i) Etape de base

• Composition d’une NURBS interpolante par ajout de points decontrole a lasouris. Visualisation de la courbe composee. Visualisation/composition dansdeux JPanel : l’un pour xP (t), l’autre pouryP (t). Visualisation dans untroisiemeJPanel de la courbe parametree(xP (t), YP (t)). Les compositionsde l’une des vues doivent se rpercuter immediatement sur les autres.

• Possibilite d’ajouter et d’enlever un point de controle.Visualisation de lacourbe correspondante.

• Realisation d’une vue de dessus tres simple du vehicule stylise suivant sa tra-jectoire. Le vehicule est represente par un rectangle avec4 segments pour lesroues.

(ii ) Etape intermediaire

• Operateurs de modification d’une NURBS : modification de poids (ou ten-sion locale de la courbe), applatissement, deformation (selon une courbe motifdonnee), modification de courbure.

(iii ) Etape avancee

• Visualisation par synthese d’images du vehicule en trainde suivre sa trajec-toire. La visualisation se fera en perspective.

• Possibilite de changer de point de vue autour du vehicule pendant son deplacement,avec selection dynamique du point de vue a la souris.

• Possibilite de modifier la position des points de controlede la trajectoire pen-dant le deplacement du vehicule.

• Schema de suivi du pointeur de la souris. Le vehicule gen`ere une trajectoirequi suit le pointeur en temps reel.

6.5 Specifications de comportement

Il doir y avoir une grande flexibilite par rapport au type de representation d’une courbe.L’ergonomie, la souplesse d’utilisation de la partie manipulation de courbes est impor-tante.

18

Page 19: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

6.6 Bibliographie

(i) The NURBS Book, par Les PIEGL et Wayne TILLER,2e edition, Springer-Verlag,Berlin, 1997.

(ii ) Une bibliotheque de NURBS.A utiliser de preference a autre chose.http://www.ocnus.com/NURBS/index.html

(iii ) Tracking kinemnatic models of theπCar manoeuvrable vehicle using flatness, parPatrice BRAULT, Hugues MOUNIER, Nicolas PETIT et Pierre ROUCHON, rap-port interne IEF.

(iv) Commande des systemes non-lineaires, le point de vue dessystemes plats, parPhilippe MARTIN et Nicolas PETIT,notes de coursa l’ ecole centrale de Paris,1998.

(v) Applets de generation de courbe simple avec des Splines et des NURBShttp://web.tampabay.rr.com/gemini

(vi) Pour les traces graphiques, Java2DMonarchCharts etJSci

(vii) Pour l’animation en synthese d’images, Java3D sur le siteSunhttp://java.sun.com/products/java-media/3D/

et, au sein de ce lien, un ouvrage en ligneforDevelopers/j3dguide/j3dTOC.doc.html

Projet n◦ 7 : Jeu de vaisseaux spatiaux

7.1 Description rapide

Un jeu classique, ou plusieurs vaisseaux en reseau peuvent se deplacer en propulsionet en rotation, peuvent tirer et peuvent se teleporter. Des rochers defilent et une collisiond’un vaisseau sur un rocher fait eclater ce dernier.

7.2 Categorie d’application: jeu, graphisme, application reseau.

7.3 Technologies Java et structures de donnees: Sockets, Java2D (pour le graphisme).

7.4 Deroulement en troisetapes

(i) Etape de base

• Deplacement en propulsion et rotation ; possibilite de tirer

19

Page 20: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• Un seul type de rocher

• L’accent doit etre mis sur la synchronisation des joueurs

(ii ) Etape intermediaire

• Possibilite de teleportation

• Presence d’une reserve d’essence avec affichage de la jauge. Possibilite d’acceleration,en consommant plus d’essence.

• Plusieurs types de rochers.

• Possibilite de jeu en reseau aN joueurs.

(iii ) Etape avancee

• Creation d’un mini langage permettant de programmer un vaisseau et de lefaire jouer en robot.

• Presence au sein de ce langage des instructions specialisees : avancer, tourner,accelerer, freiner, tirer, se teleporter.

7.5 Specifications de comportement

L’application doit etre flexible quant aux types de rocher et de vaisseaux, ainsi qu’autype d’operateurs que peut effectuer un vaisseau. Le caractere uniformement reparti estde premiere importance : chacun des vaisseaux doit etrea la fois client et serveur. Enfinla synchronisation temporelle est un aspect crucial.

7.6 Bibliographie

(i) Une bibliotheque graphique pour le develeppement de jeux de ce style se trouve ahttp://www.hipbone.com/GameletToolkit/README.html

A utiliser de preference a toute autre applet de ce type dejeu.

Projet n◦ 8 : Simulation de porteurs en bourse

8.1 Description rapide

L’objet est de simuler la gestion d’actions et d’obligations en bourse, avec des activitesde gestion rattachees aux banques, dans lesquelles chaqueclient disposera de portefeuillesde titres. La gestion se fera de maniere distante. Interviendront egalement des gros por-teurs, qui pourront influer dynamiquement sur le cours des titres, ceci se repercutant surle montant des protefeuilles des clients.

20

Page 21: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

8.2 Categorie d’application: Bases de donnees, application client/serveur, applicationdistribuee.

8.3 Technologies Java et structures de donnees: JDBC, RMI, JavaSpaces.

8.4 Deroulement en troisetapes

(i) Etape de base

• Gestion de comptes multi-activites (multi-thread) en local a une machine.Il yaura une activite banque, de gestion, et une activite par client de la banque.

• Toutes les operations seront des requetes. On definira unprotocole a en-tete.

• Les operations permises sur un compte comprendront au minimum : les re-traits, virements, ouverture, cloture et consultation (avec liste des10 dernieresoperations).

• Les operations administratives sur la base de donnee des comptes compren-dront au minimum : la liste des comptes et la fermeture d’un compte negatifdepuisN unites de temps.

(ii ) Etape intermediaire

• Gestion en reseau, l’activite de gestion residant sur unserveur, les clientsaccedant de maniere distante au serveur.

• Envois de messages au client lorsque le compte est negatif depuisN unitesde temps ou lorsque le solde est superieur a un certain montant et qu’aucuneoperation n’a eu lieu depuisM unites de temps.

• Ajouter une gestion de protefeuille avec actions et obligations.

• Les operations permises sur un portefeuille comprendrontau minimum : acaht,vente, consultation du montant et consultation des dernieres operations.

• Ajout d’un portefeuille de gestion differentie par client ; par exemple : autori-sation de decouvert, virement automatique (avec seuils) du portefeuille sur lecompte, etc.

(iii ) Etape avancee

• Creation de gros porteurs pouvant influer sur le cours des actions et des obliga-tions. Chaque gros porteur est associe a une activite (une thread) qui va influersur le cours des actions.

• Chaque action (resp. obligation) a une activite (thread) associee qui gere savaleur sur le marche international ; la valeur de l’action sera obtenue par unefonction parametrique. Ces activites effectueront des requetes de mise a jourdes valeurs des actions aupres des gestionnaires de banque. Ces gestionnaires,apres communication avec les gros porteurs, mettront a jour les valeurs desactions et obligations pour tous leurs clients.

21

Page 22: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

• Trace de l’evolution graphique de chacune des composantes du portefeuille enfonction des gros porteurs.

• Ajouter une possibilite d’options a terme, ou l’actionnaire peut acheter (ouvendre) des titres et ne regler (ou encaisser) qu’a la fin dumois ou l’option aete passee.

• Implanter les gestionnaires de banque (avec plusieurs banques), les gros por-teurs et les gestionnaires de valeur de chaque titre avec la technologie desespaces (JavaSpaces).

8.5 Specifications de comportement

L’application doit etre flexible quant au type d’actif gere (il doit etre facile d’ajouterd’autres titres – actions et obligations – ainsi que d’autres categories d’actifs) et quant aucomportement algorithmique des gros porteurs.

8.6 Bibliographie

(i) Pour la technologie JavaSpaces, voir sur le site developpeur de Sunhttp://developer.java.sun.com/developer/ l’URL contenant un articlesur la mise en route de JavaSpacestechnicalArticles/Programming/javaspaces/index.html

Projet n◦ 9 : Evaluation d’algorithmes d’ordonnancement

9.1 Description rapide

Le but de ce projet est de creer un mini ordonnanceur d’activites et de pouvoir com-parer graphiquement divers algorithmes d’ordonnancement. On visualisera quelle activiteoccupe le processeur fictif.

9.2 Categorie d’application: Algorithmique d’ordonnancement.

9.3 Technologies Java et structures de donnees: Techologies Java standard (activites etgroupes d’activites).

9.4 Deroulement en troisetapes

(i) Etape de base

• Creation d’un ordonnanceur avec1 niveau de priorite en temps partage (atten-tion au comportement des activites concernant la commutation).

• Visualisation graphique du processeur actif.

22

Page 23: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

(ii ) Etape intermediaire

• Algorithme a plusieurs niveaux de priorite, avec une option en temps partageau sein d’une meme priorite. Par defaut preemption d’unniveau de priorite surun autre et deux taches de meme priorite s’executent sequentiellement.

• Algorithme en temps partage avec vieillissement de taches.

(iii ) Etape avanceeEcriture d’un gestionnaire d’activites complet, avec

• creation d’activites,

• destruction d’activites,

• integration a l’ordonnanceur deja developpe (election, mise en file d’attenteprete, bloquage par une autre activite)

• modification de priorite,

• mise en sommeil,

• moniteur de hoare integre,

• gestion d’un groupe d’activites.

9.5 Specifications de comportement

L’application creee devra etre tres flexible par rapport au changement d’algorithmesd’ordonnancement.Elle doit egalement etre souple a utiliser en ce qui concerne l’evaluation d’un algorithmea l’aide du logiciel.

9.6 Bibliographie

(i) Principes des systemes d’exploitationpar Abraham SILBERSCHATZ et Peter B.GALVIN, Addison-Wesley, 4e edition, Paris, 1994.

(ii ) Une applet primaire de visualisation d’ordonnancement entemps partage ahttp://choices.cs.uiuc.edu/f-kon/RoundRobin/

Projet n◦ 10 : Flotte d’aeronefs cooperatifs

10.1 Description rapide

Une flotte deN petits avions autonomes doivent couvrir un territoire donne. La mis-sion peut etre de prendre des photos pour des besoins de cartographie ou de gestion terri-toriale, de pulveriser de l’engrais, d’effectuer de la surveillance aerienne, etc.

23

Page 24: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

On dispose pour chaque petit avion, d’un modele simple de dynamique de vol. Laflotte deN avions se voit attribuee une mission au depart, puis au bout d’un tempsindetermine peut se voir attribue une ou plusieurs autres missions. Chaque mission peutegalement etre abandonnee en route, par un ou plusieurs desN avions, en cas d’ordre ence sens.

10.2 Categorie d’application: Agents cooperatifs, systemes distribues.

10.3 Technologies Java et structures de donnees: JavaSpaces ou JDMK (Java DynamicManagement Kit).

10.4 Deroulement en troisetapes

(i) Etape de base

• Possibilite de composition d’une zone polygonale a la souris.

• Elaboration d’un algorithme de couverture d’une seule zone. Chaque avioncouvre une bande de la zone.

• Visualisation aerienne.

(ii ) Etape intermediaire

• Possibilite de couvrir plusieurs zones avec la zone1 au debut, la zonei au boutdu tempsti definie par l’utilisateur.

• Elaborer un protocole d’echange de messages ainsi qu’un algorithme simpleentre avions en cas d’attribution d’une nouvelle zone de readaptation de zonea couvrir ou d’abandon de mission.

(iii ) Etape avancee

• Creer des gestionnaires de mission distribues, chaque gestionnaire etant re-sponsable d’au plus3 missions et pouvant se trouver sur une machine differentedes autres gestionnaires. Les gestionnaires doivent dialoguer entre aux lorsquepeu d’avions sont disponibles. a ce moment-la, il doit y avoir un reequilibragede charge, chaque mission devant avoir un nombre d’avions tel que le tempspris pour la terminer soit presque le meme. Ce reequilibrage assigne a certainsavions d’autres missions en fonction des missions “sinist´ees” (missions qui nedisposent que de peu d’avions).

• Elaborer divers algorithmes de reequilibrage par communication entre les ges-tionnaires de mission.

• Visualisation graphique simultanee des differentes missions en cours d’evolu-tion dans differentes fenetres.

24

Page 25: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

10.5 Specifications de comportement

Les protocoles d’echange et la mise en oeuvre d’algorithmes de couverture et de com-munication entre gestionnaires doit etre flexible. Il doitdonc etre facile de modifier et deraffiner le protocole d’echange et de changer l’algorithmede couverture.

10.6 Bibliographie

(i) Pour la technologie JavaSpaces, voir sur le site developpeur de Sunhttp://developer.java.sun.com/developer/ l’URL contenant un articlesur la mise en route de JavaSpacestechnicalArticles/Programming/javaspaces/index.html

Projet n◦ 11 : Dynamique d’avion a decollage vertical

11.1 Description rapide

On considere un avion a decollage vertical ou la stabilisation de roulis est assuree par2 reacteurs situes sous les ailes. Le but est ici de faire suivre des trajectoires d’approche,de decollage et d’aterrissage a l’avion. L’essentiel de la dynamique de vol sera egalementconsidere et on elaborera une vue de l’avion sous forme synthetique (en synthese d’images)

11.2 Categorie d’application: Suivi de trajectoires, synthese d’images.

11.3 Technologies Java et structures de donnees: Splines (pour les courbes), Java2D(pour le graphisme), Java3D (pour la synthese).

11.4 Deroulement en troisetapes

(i) Etape de base Considerons un repere lie a l’avion, avec l’axe desx de l’arriere al’avant de l’appareil (axe de roulis), l’axe desy selon les ailes (axe de tanguage) etl’axe desz du bas vers le haut de l’appareil (axe de lacet).

• Implanter les lois d’evolution de debit des gaz sous les ailes de l’avion poursuivre une trajectoire 2D dans le plany–z predeterminee.

• Fournir un trace graphique de l’evolution temporelle desdebits de gaz ainsique des parametres de roulis et de position du centre de gravite.

• Effectuer une visualisation 2D de l’avion (en coupe, dans leplan y–z) enevolution.

• Creation de courbes splines a la souris, par ajout de points de controle. Cescourbes seront les trajectoires a suivre.

25

Page 26: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

(ii ) Etape intermediaire

• Considerer la dynamique de vol. Implanter les lois d’evolution de propulsionafin de realiser un suivi d’une courbe tridimensionnelle.

• Visualiser l’evolution de l’avion selon cette courbe.

(iii ) Etape avancee

• Creation/modification de courbes splines 3D a la souris, pour les trajectoires asuivre. Possibilite de sauvegarder/charger sur disque une courbe.

• Effectuer une visualisation de l’appareil en evolution enimages de synthese.

• Implanter des lois dites en boucle fermee, permettant de compenser les legeresimperfections de modele et les legeres meconnaissances de conditions ini-tiales.

11.5 Specifications de comportement

Flexibilite quant au type de representation d’une trajectoire (Spline,βSpline, NRBS,Spline d’ondelette). Esthetique des representations enimage de synthese.

11.6 Bibliographie

(i) Commande des systemes non-lineaires, le point de vue dessystemes plats, parPhilippe MARTIN et Nicolas PETIT,notes de coursa l’ ecole centrale de Paris,1998.

(ii ) Pour les traces graphiques, Java2DMonarchCharts etJSci

(iii ) Pour l’animation en synthese d’images, Java3D sur le siteSunhttp://java.sun.com/products/java-media/3D/

et, au sein de ce lien, un ouvrage en ligneforDevelopers/j3dguide/j3dTOC.doc.html

Projet n◦ 12 : Gestion concurrente de voies ferrees

12.1 Description rapide

L’utilisateur peut construire un trajet de voie ferree a la souris a l’aide de tronconspredetermines. Plusieurs trains peuvent circuler sur ce trajet. Si deux trains ou plus ar-rivent sur un troncon unique de voie ferree de telle sorte qu’il y ait un risque de colli-sion, tous les trains sauf un doivent attendre. On pourra egalement prevoir des gares, desgarages de reparation et des plans horaires pour chaque train.

26

Page 27: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

12.2 Categorie d’application: Programmation concurrente, graphisme 2D.

12.3 Technologies Java et structures de donnees: Technologies Java standard.

12.4 Deroulement en troisetapes

(i) Etape de base

• Generation graphique de voies a la souris.

• Trois types de troncons : droit, courbe (1/8 de cercle) et aiguillage2x1.

• Circulation d’un seul train.

(ii ) Etape intermediaire

• Ajouter les trancons de type aiguillage3x1 et4x1.

• Prevoir le cas de plusieurs trains en circulation concurrente (chaque train etantune activtite (thread) separee.

• Gerer le cas de conflit d’acces de2 trains ou plus a un troncon de voir unique.Prevoir l’ajout de gares et de garages de reparation.

(iii ) Etape avancee

• Gerer les plans horaires pour chaque train.

• Prevoir des communications entre les trains de facon que la gestion des col-lisions soit anticipatives ; a savoir que chaque train, en communiquant avecles autres, doit pouvoir detecter un conflit d’acces et doit pouvoir ralentir demaniere appropriee (de facon que la collision n’ait pas lieu et qu’aucun trainne soit stoppe.

• Visualisation graphique de la gestion de collision anticipative.

12.5 Specifications de comportement

12.6 Bibliographie

(i) Eventuellement l’applethttp://www-itg.lbl.gov/vbart/

27

Page 28: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

Projet n◦ 13 : Explorateur d’arborescence distribue et securise

13.1 Description rapide

Il s’agit de realiser un clone de l’explorateur Windows avec possibilite d’explorer desmachines distantes (dont on entre le nom ou l’adresse IP). Deplus, l’acces sera controlepar des listes de controle d’acces (ou ACL, comme “Access Control List”) qui permetd’obtenir une granularite fine de l’acces.

13.2 Categorie d’application: Acces reseau securise.

13.3 Technologies Java et structures de donnees: RMI, paquetage Perl, JAAS (JavaAuthentication and Authorization Service).

13.4 Deroulement en troisetapes

(i) Etape de base

• Realisation d’un clone de l’explorateur Windows en local `a une machine.Prevoir 2 Threads . L’une pour l’affichage et l’autre fournissant les infor-mations.

• Possibilite d’acceder a et d’explorer une machine distante quelconque en four-nissant son nom ou son adresse IP. Le client effectue l’affichage sur la machinelocale des informations fournies par le serveur sur la machine distante.

• Possibilite de rechercher un fichier ou un repertoire par son nom.

(ii ) Etape intermediaire

• Recherche d’une expression reguliere dans toute une arborescence. Affichagegraphique des icones representant les fichiers et des lignes de ces fichiers con-tenant l’xepression reguliere.

• Implantation de lsites de controle d’acces permettant unacces differentie pargroupe et par utilisateur. Prevoir la creation de groupeset la gestion des droitsau niveau utilisateur et groupe.

• Navigation avec gestion d’une liste des repertoires dejavisites. Affichagegraphique de la liste en dynamique. Possibilite de revenira un repertoire dejavisite en cliquant sur l’icone correpondante.

(iii ) Etape avancee

• Creer un robot allant effectuer une recherche de fichier ou d’expression regulierede maniere distribuee. Dans un premier temps, on maintiendra une liste de ma-chines a visiter.

• Rechercher des algorithmes de proximite semantique lorsqu’un mot exact n’estpas trouve. on pourra se servir de categories pour classifier les mots.

28

Page 29: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

13.5 Specifications de comportement

L’application doit etre pensee et realisee avec un souci de securite en tete. Elle doit enoutre etre tolerante aux pannes.

13.6 Bibliographie

(i) Paquetage Perl OROMatcher a :http://www.oroinc.com

(ii ) Un tutoriel, au site de Sunhttp://java.sun.com/docs/ sur la securite en Java 1.2 :books/tutorial/security1.2/index.html

Projet n◦ 14 : Gestion d’une agence de voyages distribuee

14.1 Description rapide

Cette agence de voyages virtuelle doit non seulement etre capable d’effectuer desreservations de vols, mais egalement d’etablir la composition d’un avion et le plan devol des pilotes. La composition d’un avion sera disponible sous la forme d’un graphiqueinteractif, ou les places prises et les places disponiblesseront differentiees par des codes decouleur ; en cliquant sur une place, il sera possible d’obtenir – dans le cas ou la place a etereservee – des informations sur la personne ayant effectue la reservation (ces informationsn’etant disponible qu’en acces restreint).

14.2 Categorie d’application: bases de donnees, application client/serveur.

14.3 Technologies Java et structures de donnees: JDBC (ou dbSwing).

14.4 Deroulement en troisetapes

(i) Etape de base

• Possibilite de creer/modifier/detruire une reservatuon pour un vol.

• Visualisation graphique des places occupees et prises dans l’avion (en vue dedessus).

• Le serveur sera concurrent et l’acces a la base de donneesdes vols sera syn-chronise.

(ii ) Etape intermediaire

• Trois categories d’utilisateurs :

29

Page 30: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

– le personnel de l’agence,

– les clients de l’agence,

– les pilotes.

qui auront des droits d’acces differents aux diverses informations.

• Lorsque l’on clique sur une place occupee, demande d’authentification (parcequ’information a acces restreint), puis affichage des informations du clientayant reserve la place.

• Gestion du plan de vol des pilotes

(iii ) Etape avancee

• Plusieurs agences distribuees, avec un seul aeroport. Communication desserveurs des differentes agences entre eux afin de trouver une place libre dansun vol.

• Algorithme d’optimisation des plans de vols a partir deN vols etP pilotes.Communication des serveurs a cet effet.

• Prise en compte de contraintes d’impossibilites des pilotes pour certaines dates.

14.5 Specifications de comportement

L’application doit etre tolerante aux pannes (erreurs dans la base de donnees, agencesindisponibles) et ergonomique.

Projet n◦ 15 : Generateur de taches distribue

15.1 Description rapide

Il s’agit de realiser un demon (programme de service tournant en arriere plan) executantdes taches en differe soit sur la machine locale, soit surune machine distante. La frequenced’execution des taches est consignee dans un fichier de configuration, dont on pourraforcer la relecture dynamiquement. Les demons d’execution peuvent communiquer demachine a machine afin de realiser une tache distribuee.

15.2 Categorie d’application: gestion concurrente de taches, equilibrage de chargereparti.

15.3 Technologies Java et structures de donnees: technologies Java standard (activites(threads) et groupe d’activites ; sockets).

30

Page 31: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

15.4 Deroulement en troisetapes

(i) Etape de base

• Generateur de taches local a une machine et tournant en tant que demon, quel’on nommerajcron (comme “Java cron”,cron etant un generateur de tachesconnu sous Unix). Les taches a accomplir sont consigneesdans un fichier deconfiguration nommejcrontab .

• Le fichier jcrontab est constitue d’enregistrements, separes par une lignecommencant par le caractere#. Le format de chaque enregistrement est lesuivant :

– Chaque enregistrement est constituee de7 champs separes par un retour ala ligne. Chaque champ est constitue d’un descripteur textuel (une chaınede caracteres) suivi d’un ou plusieurs espaces et/ou tabulations, suivi ducaractere: suivi d’un ou plusieurs espaces et/ou tabulations, suivi d’unevaleur numerique avec caracteres speciaux eventuels.

– Les5 premiers champs, de valeur numerique, determinent la periodicited’execution.

– Dans l’ordre, on a : le champ des minutes (de descripteur “Minutes”, de0a59), l’heure (de descripteur “Heures”, de0 a23), la date (de descripteur“Date”, de1 a 31), le mois (de descripteur “Mois”, de1 a 12) et le jour(de descripteur “Jour”, de1 a7).

– On dispose des caracteres speciaux suivants susceptibles d’intervenir dansla valeur d’un des5 premiers champs : une* , qui correspond a toutes lesvaleurs autorisees ; deux valeurs numeriques separeespar un tiret sig-nifient un intervalle de temps (2-5 dans le champ “Heure” signifie de2heures a5 heures) ; des valeurs numeriques separees par des virgules sig-nifie que la tache doit etre realisee pour toutes ces valeurs.

– Le 6e champ est celui de l’utilisateur voulant executer la tache, de de-scripteur “Utilisateur” ; le7e champ est chemin de la tache a executer, dedescripteur “Tache”.

• Possibilite de modification dynamique du fichierjcrontab

• Interface graphique conviviale de gestion du fichierjcrontab .

(ii ) Etape intermediaire

• Inclure une valeur de priorite associe a une tache, comme 8e champ, de de-scripteur “Priorite”. Cette valeur de priorite est utilisee lors du lancement del’activite (thread) executant la tache.

• Generateur eventuellement distant. Un clientjcron recoit de l’utilisateur autravers de l’interface graphique les informations du fichier jcrontab . Puis il

31

Page 32: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

envoie des informations au serveurjcrond qui met a jour sonjcrontab . Apartir de cette etape, l’architecture, meme en cas de communication purementlocale, est client/serveur. Le serveur devra etre concurrent.

• Possibilite de tache sous forme d’URL de la forme :jcron://nom machine.nom domaine/cheminTache

Le serveur de la machine locale va alors converser avec ceux des machinesdistantes figurant dans son fichierjcrontab .

(iii ) Etape avancee

• Possibilite de taches executees sur plusieurs machines. Plus precisement, unetache est decomposee en atomes. des groupes d’atomes, des molecules, sontenvoyees pour execution sur chaque machine.

• Fonction d’equilibrage de charge. Une tache speciale, dite d’equilibrage, de-mande periodiquement aux differents serveurs quelle estla charge de leurmachine. En cas de desequilibrage constate, il y a reequilibrage : migrationd’atomes vers les machines les moins chargees.

15.5 Specifications de comportement

Dans le cas de plusieurs machines, caractere uniformement reparti (c.a.d. l’architecturereseau ne doit privilegier aucune entite, comme c’est lecas d’un serveur et deN clients).L’application doit etre tolerante aux pannes.

15.6 Bibliographie

(i) Code source d’uncron Linux

Projet n◦ 16 : Simulateur d’algorithme de routage

16.1 Description rapide

L’utilisateur pourra composer un reseau a la souris et simuler divers algorithmes deroutage classiques sous Internet. Il devra etre possible de visualiser les paquets auxdifferents routeurs, de morceler et de reassembler les paquets.

16.2 Categorie d’application: routage, algorithmique repartie.

16.3 Technologies Java et structures de donnees: technologies Java standard (activites(threads)).

32

Page 33: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

16.4 Deroulement en troisetapes

(i) Etape de base

• Composition d’un reseau a la souris en utilisant2 types de composants :

– des noeuds (machines terminales ou routeurs),– des liens entre les noeuds.

Chaque noeuds pouvant etre aussi bien une machine terminale qu’un routeur.

• Un seul transport de messages, sans fragmentation, en utilisant un algorithmede routage de type vecteur de distance.

• Visualisation graphique des messages en transit.

(ii ) Etape intermediaire

• Possibilite de fragmenttation des messages.

• Plusieurs transports de messages en parallele possible.

• Implantation de plusieurs algorithmes de routage.

• Visualisation graphique des messages (eventuellement fragmentes) en transit.

(iii ) Etape avancee

• Possibilite de pannes de machines terminales ou de routeurs.

• Simulation d’algorithmes simples de controle de congestion avec visualisationgraphique des paquets en transit.

16.5 Specifications de comportement

L’appliaction doit etre flexible quant au changement d’algorithme de routage. Elle doitegalement etre tolerante aux pannes de routeurs et de machines finales.

16.6 Bibliographie

(i) Le routage dans l’Internetpar Christian HUITEMA, Eyrolles, Paris, 1995.

Projet n◦ 17 : Cartographie de site web

17.1 Description rapide

Le but de ce projet est de representer l’arborescence d’un site Web sous forme graphique.Le site pourra etre rapatrie a l’aide de robots automatiques et son contenu analyse ensuitepour produire l’arborescence.

33

Page 34: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

17.2 Categorie d’application: moteurs de recherche.

17.3 Technologies Java et structures de donnees: technologies Java standard.

17.4 Deroulement en troisetapes

(i) Etape de base

• Generation d’un arbre dans le style de celui d’un explorateur Windows, possi-bilite de navigation au sein du site a l’aide de cet arbre.

(ii ) Etape intermediaire

• Recherche d’un mot au sein du site et pointage automatique vers les pages lecontenant avec depassement du mot en couleur.

• Rapatriement a l’aide d’un robot automatique et production de l’arborescence.

(iii ) Etape avancee

• Elaboration de meta-arborescence de sites a partir d’unerecherche de mots al’aide de divers operateurs.

• Elaborer une recherche avec une specification par categorie

• Operateurs recquis : ET, OU, NON, PARMI (operateur de cat´egorie de ter-mes).

17.5 Specifications de comportement

L’application doit etre ergonomique et tolerante aux pannes.

17.6 Bibliographie

(i) Sur le site Gamelanhttp://www.gamelan.com/downloads/freeware/dir.java1 .html

l’appletHtmlSearch effectuant des recherches sur des sites Web.

Projet n◦ 18 : Sonde de tests d’un reseau de serveurs

18.1 Description rapide

Le but de ce projet est de tester le fonctionnement d’un reseau de machines, notammenten ce qui concerne la charge, le nombre de paquets perdus, etc.

La visualisation du fonctionnement d’un reseau de serveurs peut etre effectuee a l’aided’un logiciel de supervision et de sondes installees sur chaque serveur. La sonde : il

34

Page 35: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

s’agit d’un demon client qui est capable d’effectuer les tests indiques par le serveur desupervision.

Ces tests sont soit :

• des tests standards de type etat de la memoire, etat de la charge, nombre de processusactifs, zombies...

• le resultat d’un programme envoye par le serveur

Le serveur de supervision : il connaıt l’emplacement de chacune de ses sondes etdispose d’un fichier de configuration qui lui permet d’interroger les sondes sur des pointsprecis (tests) a des intervalles de temps precis ou a unedate precise.

Le fichier de configuration precise en fonction des resultats des tests s’il faut ou nonfaire remonter une erreur.

Le logiciel de supervision represente chacune de ses sondes avec leur etat et tient a jourun historique. En cas de probleme il doit etre capable d’envoyer un e-mail qui indique lanature de la panne.

18.2 Categorie d’application: reseau, algorithmique distribuee.

18.3 Technologies Java et structures de donnees: sockets, Java2D (pour les graphiques).

18.4 Deroulement en troisetapes

(i) Etape de base

• Programme de tests d’un serveur sonde en local a une machinequi effectue :

– des tests d’occupation memoire et processeur (par ex. sousLinux partop )

– des tests processus (par ex. sous Linux parps )

– des tests de paquets IP, de connexions sockets (par ex. sous Linux parnetstat )

• Affichage graphique des courbes de tests de charge

(ii ) Etape intermediaire

• Fonctionnement avec un client qui interroge les sondes distantes dont les adressessont consignees dans un fichier de sondes.

• Tests reseau de sonde a sonde : temps d’aller-retour, porcentage de paquetsperdus, etc.

(iii ) Etape avancee

• Tests reseau distribues sur tout le reseau des sondes. D´evelopper des algo-rithmes distribues permettent d’effectuer des tests :

35

Page 36: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

– d’efficacite : temps d’aller-retour au sein de l’arbre recouvant minimal ;

– de bon fonctionnement :paquets perdus sur paquets envoyes

– de robustesse : tests sur paquets errones, sur paquets manquants

18.5 Specifications de comportement

La tolerance aux pannes sera un aspect important, et plus encore la flexibilite parrapport aux tests effectues par chaque sonde (il doit etreaise d’ajouter ou de modifier untest existant).

18.6 Bibliographie

(i) code de traceroute sous Linux

(ii ) Pour les traces graphiques, Java2DMonarchCharts etJSci

Projet n◦ 19 : Generation de trajectoires avec obstacles

19.1 Description rapide

Il s’agit d’implanter des algorithmes d’evitement d’obstacle en robotique mobile parla methode des potentiels ou celle des lignes de niveau, avec une visualisation 2D ou ensynthese d’images 3D.

On fournit des points de depart et d’arrivee a la souris ; on construit egalement desobstacles a la souris par combinaison de formes geometriques simples. Cette etape estrealisee en vue de dessus 2D et en perspective 3D. Ensuite,la generation de trajectoires serealise ; puis l’on peut suivre le cheminement du vehiculeen vue de dessus et en perspec-tive 3D.

19.2 Categorie d’application: lignes de niveau, potentiels fictifs, generation de trajec-toires.

19.3 Technologies Java et structures de donnees: Java2D, Java3D.

19.4 Deroulement en troisetapes

(i) Etape de base

• Implantation d’un algorithme de generation de trajectoire en utilisant la methodedes lignes de niveau ; generation d’obstacles parallel´epipediques a la souris.

• Implantation d’un algorithme de generation de trajectoire en utilisant la methodedes potentiels ; generation d’obstacles parallelepipediques a la souris.

36

Page 37: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

(ii ) Etape intermediaire

• Generation d’obstacles de formes geometriques simples : triangle, rectan-gle, ellipse, polygone. Presence d’une grille graduee avec possibilite de fixerprecisement la taille des obstacles.

(iii ) Etape avancee

• Prendre en compte des informations de courbure et d’oscillation dans la generationdes trajectoires. Plus precisement, se servir d’une rep´esentation de type Splinesou NURBS afin d’obtenir des trajectoires respectant des contraintes de cour-bure maximale et d’oscillation maximale.

19.5 Specifications de comportement

La flexibilite par rapport au type d’algorithme (facilited’ajout et de modification d’unalgorithme existant) est essentielle. L’ergonomie d’utilisation est importante.

19.6 Bibliographie

(i) Projet Robotvis a l’INRIA Sophia-Antipolis Posantrobotvis egal ahttp://www-sop.inria.fr/robotvis/personnel/vthierry /Enseign

Les URLs suivantes fournissent d’utiles renseignementsrobotvis/DemoPotentiels

robotvis/SujetsTps/TpPotentielsParam/TpPotentielsPa ram.html

robotvis/SujetsTps/TpPotentiels/TpPotentiels.html

(ii ) Pour les traces graphiques, Java2DMonarchCharts etJSci

Projet n◦ 20 : Transfert sur sous UDP

20.1 Description rapide

Creer un protocole au dessus d’UDP realisant un transfertsur de donnees avec contolede flux a l’instar de ce qui est realise sous TCP. Implanterun mecanisme d’acquittementde donnees avec controle de flux par fenetre. Fournir un mode de tracage qui affiche demaniere graphique les accuses de reception, la fenetrede flux. Fournir un exemple deserviceecho .

20.2 Categorie d’application: reseaux couche transport.

37

Page 38: Projets Java – Intitul es´webpages.lss.supelec.fr/perso/hugues.mounier/Teaching/... · 2018. 1. 16. · Projets Java Universite Paris Sud´ en meˆme temps dans la feneˆtre initiale

Projets Java Universite Paris Sud

20.3 Technologies Java et structures de donnees: technologies Java standard (Datagramet DatagramSocket).

20.4 Deroulement en troisetapes

(i) Etape de base

• Tansfert sur par mecanisme d’acquittement de donnees.

• Controle de flux par fenetre.

(ii ) Etape intermediaire

• Prevoir un niveau de surete en effectuant des verifications/acquittements realisestous lesN fenetres de flux.

• Tracage graphique des datagrammes en transit avec differentiation coloree deceux non acquittes et acquittes.

• Implantation d’un exemple de service echo.

(iii ) Etape avancee

• Implanter divers algorithmes de code correcteurs d’erreurs pour la verificationet la correction d’erreurs de transmission.

• Implanter des algorithmes de compression de donnees.

• Realiser un cryptage par algorithme a cle publique elliptique.

20.5 Specifications de comportement

L’ensemble logiciel doit etre parfaitement generique,de facon a etre reutilisable dansn’importe quelle architecture reseau.

20.6 Bibliographie

(i) Secification TCP : “Transmission Control Protocol Darpa Internet Program ProtocolSpecification”, RFC n◦ 793, sept. 1981 (disponible ahttp://www.cis.ohio-state.edu/htbin/std/INDEX.std.h tml )

(ii ) Evetuellement, le cours de l’UREChttp://www.urec.fr/cours/Reseau/tcp-ip/index.html

38