Master UPMC Sciences et technologies, mention informatique Spécialité Systèmes et Applications
|
|
- Lionel Bruneau
- il y a 8 ans
- Total affichages :
Transcription
1 Master UPMC Sciences et technologies, mention informatique Spécialité Systèmes et Applications Réparties Réalisation Assistée d Applications Réparties Projet - écriture d un générateur de code Encadreur : Auteurs : Fabrice KORDON Min XU Farès HASSAK Fabrice DOUCHANT Chen ZANG Abderahmane TOUIL Xuan-Tuong LE
2 Table des matières Introduction 1 1 Architecture des programmes générés Architecture des programmes générés Description de l API fournie Architecture du générateur de code Patron sémantique Patron syntaxique Validation Validation de l arbre sémantique Validation des programmes Java/RMI Conclusion 17 i
3 ii TABLE DES MATIÈRES
4 Introduction Les réseaux de Petri, avec leurs spécifiations initiales, donnent la possibilité de vérification de plusieurs propriétés d un système à construire. Ils offrent également la possibilité d obtenir des propriétés intéressantes pour l implémentation qui n apparaît pas dans la spécification du départ. Par example, le fait qu un réseau peut être partionné en plusieurs machines d états disjointes est utilisé pour construire les implémentations distribuées. L objectif de ce projet est donc d écrire un générateur de programmes Java/RMI à partir d un réseaux de Petri place/transition pré-analysé pour mettre en pratique les concepts vus en cours. Dans la suite du rapport, nous allons analyser dans le premier chapitre l architecture de notre prototype ainsi que les principaux choix qui sont liés à Java/RMI. Après cette analyse, nous allons présenter dans le deuxième chapitre l architecture de notre générateur de programmes et la manière dont nous avons structuré nos règles dans les différents patrons. Le troisième chapitre consacra aux techniques de validation que nous avons apportées au générateur et aux programmes générés. Enfin, nous clôturerons le rapport avec une synthèse ainsi que des remarques conclusives.
5 2 Introduction
6 Chapitre 1 Architecture des programmes générés Notre idée est de générer une partie du code et le code généré sera compilé avec une API fournie qui assure le bon fonctionnement de ce dernier. Dans ce chapitre, on va ainsi décrire le format des programmes générés et ensuite, nous allons présenter notre API. 1.1 Architecture des programmes générés Le but des programmes est d implémenter des automates communicants où les processus se communiquent entre eux. Il existe deux formes de synchronisation : les processus se communiquent via une barrière matérialisée, donc une transition synchrone. les processus se communiquent en accédant à une place de communication représentant le mode asynchrone. Dans tous les cas, on a besoin des communications entre un processus et une transition synchrone ou une place de communication. On a ainsi défini ces trois composants comme des objets RMI. Un processus est constitué d états qui sont représentés par des places locales dans le RdP. Pour chaque processus, on peut avoir plusieurs instances ou threads qui s exécutent en même temps. Celles-ci sont représentées par les jetons dans le RdP. Le programme que nous générons est une forme d initialisation de ces trois composants : les processus, les transitions synchrones et les places communicantes. Nous fournissons derrière une API qui se charge du bon déroulement de ces trois derniers. Ci-dessous est un exemple du code généré du schéma avec une transition asynchrone. On génère le code
7 4 1.1 Architecture des programmes générés Fig. 1.1 Schéma avec une transition synchrone Fig. 1.2 Schéma avec une place de communication de chaque processus et la place communication dans les différents fichiers Java. public class p r o c e s s u s 1 { public static void main ( S t r i n g [ ] args ) { Processus proc ; T r a n s i t i o n L o c a l e t ; try { proc=new ProcessusImpl ( p r o c e s s u s 1 ) ; new PlaceLocale ( P1out,new S t r i n g [ ] { P1 Takes }, new S t r i n g [ ] { }, proc ) ; new PlaceLocale ( P1in,new S t r i n g [ ] { P 1 r e l e a s e }, new S t r i n g [ ] { }, proc ) ; t=new T r a n s i t i o n L o c a l e ( P1 Takes, P1out, P1in, proc ) ; t. addpcin ( mutex, 1 ) ; t=new T r a n s i t i o n L o c a l e ( P 1 r e l e a s e, P1in, P1out, proc ) ; t. addpcout ( mutex, 1 ) ; new Jeton ( P1out, proc ). s t a r t ( ) ;
8 Architecture des programmes générés 5 new Jeton ( P1out, proc ). s t a r t ( ) ; R e g i s t r y r = LocateRegistry. c r e a t e R e g i s t r y ( ) ; r. bind ( p r o c e s s u s 1, proc ) ; } } System. out. p r i n t l n ( \ nprocessus p r o c e s s u s 1 e s t c r e e... ) ;... Le code d une place communicante que nous considérons comme un serveur de ressource : public class Ressource { public static void main ( S t r i n g [ ] args ) { PlaceComm pc ; R e g i s t r y r ; try { r = LocateRegistry. c r e a t e R e g i s t r y ( ) ; pc = new PlaceCommImpl ( mutex, 1 ) ; pc. initplacecomm ( p r o c e s s u s 2, P2 Takes, 1 ) ; pc. initplacecomm ( p r o c e s s u s 1, P1 Takes, 1 ) ; r. bind ( mutex, pc ) ; // l e s e r v e u r e s t p r e t... } } L ensemble de ces fichiers sera compilé avec l API fournie pour produire le code exécutable. Cette API sera décrite dans la suite. 1.2 Description de l API fournie L API correspond à l intelligence du déroulement de l application générée, elle permet le mouvement des jetons dans les processus et les communications inter-processus : places de communication et transitions de synchronisation. Voici comment se déroule une exécution :
9 6 1.2 Description de l API fournie un jeton a un état qui correspond à la place dans laquelle il se trouve. Lorsqu il arrive dans cette place, il essaie de changer d état en passant par une transition valide qui suit la place dans laquelle il est. Si aucune transition n est valide, il attend qu une le soit. C est ainsi que les jetons des processus sont en mouvement. les places de communication offrent des ressources et permettent de faire communiquer les processus : les transitions synchrones offrent le mécanisme de rendez-vous. Notre algorithme permet d implémenter toutes ces propriétés et ce du mieux possible. Dans un premier temps, les jetons s inscrivent aux places et parcourent les transitions pour en trouver une valide. Le parcours des transitions se fait pseudo-aléatoirement afin de ne pas être le même tout le temps, ce qui pourrait alors générer une famine : une même transition serait alors à chaque fois choisie. Pour qu une transition soit valide, la transition parcourt tous ses arcs entrants afin de vérifier qu ils sont valides : que les places réliées ont assez de jeton pour que la transition soit validée. Afin de gérer la possible concurrence de demandes de validations des transitions envers les places locales ou de communication, nous avons mis en place un système de réservation des jetons : une place qui se propose de valider une transition doit réserver les ressources ou les jetons pour cette transition. Cependant, les jetons réservés doivent être libérés si la transition ne peut pas être validée, c est à dire si au moins une place n a pas les jetons nécessaires. Nous avons aussi voulu un système réactif sans attente active. Pour effectuer cela, le système n effectue des traitements uniquement lorsq un évènement arrive : un nouveau jeton dans une place ou de nouvelles ressources dans une places de communication. Si aucun évenement n a lieu, il n est nullement nécessaire de faire de l attente active en parcourant toutes les transitions. Une fois que nous avons défini l architecture des programmes générés et l API en annexe, l étape suivante consiste à construire le générateur de code pour qu il ait accès aux informations nécessaires afin de produire le code exigé ce qui est l objectif du deuxième chapitre.
10 Chapitre 2 Architecture du générateur de code Dans ce chapitre, nous allons présenter l architecture du générateur de code qui est constitué d un patron sémantique et celui syntaxique. Nous détaillerons les règles que nous avons structurées dans ces patrons qui nous permettront de pouvoir générer des programmes Java/RMI spécifiés au premier chapitre. 2.1 Patron sémantique Selon l architecture des programmes générés abordée au premier chapitre, on a décidé d avoir trois entités principaux pour pouvoir contenir les informations du réseaux Petri : les processus : chaque processus est composé d une liste de place, d une liste de transitions locales et une liste de jeton. Chaque jeton correspond à un thread. Pour chaque transition locale, on a besoin d un arc en entrée, un en sortie ainsi qu une liste d arcs de communications en entrée et en sorties. les transitions synchrones : chaque transition synchrone contient naturellement une liste d arcs en entrée et celle en sortie. Ces informations nous permettent de savoir d où viennent les threads et l endroit où ils vont. les places communicantes : contrairement à une transition sychrone, chaque place de communication a seulement besoin de savoir les arcs en sorties. Comme on est en asynchrone, on ne s occupe pas de savoir d où viennent les jetons qui solicitent une place de communication. Ce choix nous a ramenés à construire l arbre sémantique indiqué à la figure 2.1. Pour le construire, nous avons défini un ensemble de règles sémantiques suivantes :
11 8 2.1 Patron sémantique Fig. 2.1 Arbre sémantique
12 Architecture du générateur de code 9 DO THE WORK (none) : construire la racine de l arbre. WORK ON LIST PROCESS (none) : construire la branche regroupant tous les processus. WORK ON ONE PROCESS (BELONG NUMBER : integer) : parcourir un entité BELONG, et construire le sous-arbre qui contient tous les composants d un processus : les places, les transitions locales, les instances et les arcs. WORK ON LIST PLACES (BELONG NUMBER : integer) : construire le sousarbre des places d un processus. WORK ON ONE PLACE (STT PLACE NODE : model entity) : travailler sur une place. WORK ON LIST TRANSITIONS (BELONG NUMBER : integer) : construire le sous-arbre des transitions d un processus. WORK ON ONE TRANSITION (TRANS NODE : model entity) : travailler sur une transition. WORK ON LIST SYNC (none) : construire la branche d arbre regroupant toutes les transitions synchrones. WORK ON ONE SYNC (SYNC NODE : model entity) : construire le sous-arbre d une transition synchrone. WORK ON LIST COMM (none) : construire la brache d arbre regroupant toutes les places de communications. WORK ON ONE COMM (COMM NODE : model entity) : construire le sous-arbre d une place de communication. 2.2 Patron syntaxique L arbre sémantique est formé, le patron syntaxique est seulement un ensemble de règles parcourant cet arbre pour produire le code exigée au premier chapitre. L intelligence de la production de code est située donc au niveau de l arbre sémantique. Dans le patron sémantique, pour chaque constructeur prédéfini identifié, on a fait une règle syntaxique : ANALYSIS RESULT cette règle permet le traitement de tous les objets du réseau de Petri LIST OF PROCESS INTERNAL LIST OF PROCESS ONE PROCESS LIST OF PLACES INTERNAL LIST OF PLACES ONE PLACE LIST OF OUT LA INTERNAL LIST OF OUT LA LIST OF OUT SA INTERNAL LIST OF OUT SA
13 Patron syntaxique LIST OF TRANSITIONS INTERNAL LIST OF TRANSITIONS ONE TRANSITION IN LA OUT LA LIST OF IN CA INTERNAL LIST OF IN CA LIST OF OUT CA INTERNAL LIST OF OUT CA LIST OF TOKENS INTERNAL LIST OF TOKENS Ces règles permettent de parcourir la liste des processus, et créer une nouvelle classe java pour chaque processus rencontré. Les composants de processus sont initialisés dans la méthode main de la classe, on crée un nouvel objet PlaceLocale pour chaque place contenue dans le processus, et un nouvel objet TransitionLocale pour chaque transition. Pour chaque jeton, un objet Jeton qui est un thread est créé et lancé. LIST OF SYNC INTERNAL LIST OF SYNC ONE SYNC LIST OF IN STT INTERNAL LIST OF IN STT LIST OF OUT STT INTERNAL LIST OF OUT STT Ces règles permettent de parcourir la liste des transition synchrones, une nouvelle classe java est créée pour l ensemble des transitions synchrones. LIST OF COMM INTERNAL LIST OF COMM ONE COMM INTERNAL ONE COMM OBJECT NAME OBJECT NAME VALUE OBJECT ARC SYNC OBJECT ARC COMM Ces règles permettent de parcourir la liste des places de communications, une nouvelle classe java est créée pour l ensemble des places de communications. Notre patron syntaxique permet donc de générer dynamiquement un fichier Java par processus, un pour les transitions synchrones et un pour les places de communications.
14 Chapitre 3 Validation Nous restons sur le principe que si l arbre sémantique est mal faite, la génération de code l est aussi c est pourquoi nous voulons valider dans un premier temps l arbre sémantique. Cependant, cette validation n est qu une condition nécessaire et non suffisante d où la validation des programmes Java/RMI. 3.1 Validation de l arbre sémantique Notre technique de validation de l arbre sémantique se fait simplement via un affichage HTML. Le résultat affiché nous permet de rassurer que l arbre est bien formée et les informations utiles y sont. Ci-dessous est le code HTML généré de l exemple anlzed-pn- 1.msm : <html> <body> <p> I l y a 2 processus, l e s v o i c i :</p><ul> < l i> <p>le p r o c e s s u s ( belong ) <b>p r o c e s s u s 1 </b> a <b>2</b> j e t o n s </p> <u> V o i c i s e s Places l o c a l e s : </u><ul><p> I l y a <b> 2</b> p l a c e s l o c a l e s, l e s v o i c i :</p><ul> < l i><p>l a p l a c e : <b>p1out</b> </p> E l l e a une t r a n s i t i o n ( out ) : <ul>< l i><b>p1 Takes</b></ l i> </ ul>...
15 Validation des programmes Java/RMI Fig. 3.1 Schéma du modèle anlzed-pn-1 fourni comme premier jeu de test 3.2 Validation des programmes Java/RMI Pour valider nos programmes Java/RMI générés, nous avons testé sept modèles dont cinq était déjà fourni. Les deux derniers modèles illustrant le concept FIFO et un train sont fournis sur le site SAR en Concernant le modèle de train, on trouve qu il y a l interblocage que l on n a pas eu le temps de résoudre. On croit que ce problème provient du fait qu on a construit un système de l attente passive, c est-à-dire les threads attentent quand il n y a pas assez de ressources dont ils ont besoin, après c est le serveur ressource qui les réveille. Au niveau de conception, c est un bon choix, mais cela augmente aussi la difficulté de codage. Si l on adopte la stratégie d attente active, on peut éviter ce problème, mais par contre ce ne sera pas une bonne conception. Finalement, il faut regarder soigneusement où il faut placer les blocs synchrones dans le code pour éviter cet interblocage. Fig. 3.2 Communication via une place communicante
16 Validation 13 Fig. 3.3 Communication via une transition synchrone Fig. 3.4 Communication via deux transitions synchrones
17 Validation des programmes Java/RMI Fig. 3.5 Communication via six transitions synchrones
18 Validation 15 Fig. 3.6 Communication via une place communicante et une transition synchrone Fig. 3.7 Concept FIFO pour un seul processus avec trois places communicantes
19 Validation des programmes Java/RMI Fig. 3.8 Train de 15 sections
20 Conclusion Ce projet nous a permis d appréhender la génération de code d une autre manière que celle vue dans le module CAR : une approche plus bas niveau en se basant sur des méthodes formelles permettant la vérification de code alors que l approche MDA est au niveau conceptuel, soit un niveau plus informel, se basant sur la modélisation.
21 18 Conclusion
22 Bibliographie [1] F. Kordon & W. El Kaïm, Petri nets and system engineering, first edition 2003, Code Generation, chapter 21, pages [2] MACAO, site officiel 2007, [3] METASCRIBE, site officiel 2006, 19
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailSynchro et Threads Java TM
Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire
Plus en détail4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr
4. Outils pour la synchronisation F. Boyer, Laboratoire Lig Fabienne.Boyer@imag.fr Le problème Insuffisance des solutions de base (verrous) Les solutions de plus haut niveau Les Sémaphores Les Moniteurs
Plus en détailProblèmes liés à la concurrence
ENS Cachan Problématique Difficile de gérer la concurrence : Pas toujours facile d avoir des fonctions réentrantes. Risque de race condition : ex : x :=x+1 x :=x+1 On voudrait des blocs d instructions
Plus en détailDémarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.
Plan du chapitre Master Informatique et Systèmes Urbanisation des Systèmes d Information Architecture d Entreprise 04 Architecture du SI : identifier et décrire les services, structurer le SI 1 2 3 4 5
Plus en détailExclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
Plus en détailUrbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI
Plan du chapitre Master Informatique et Systèmes Urbanisation des Systèmes d Information Architecture d Entreprise 04 Architecture du SI : identifier et décrire les services, structurer le SI 1 2 3 1.1
Plus en détailRemote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
Plus en détailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailInfo0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java
Info0604 Programmation multi-threadée Cours 5 Programmation multi-threadée en Java Pierre Delisle Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique 18 février 2015 Plan
Plus en détailJ2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation
J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation Cycle Ingénierie 2e année SIGL Dernière mise à jour : 19/10/2006 Christophe Porteneuve Threads Principes Cycle de vie Création java.lang.thread
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailLes structures de données. Rajae El Ouazzani
Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailConception des systèmes répartis
Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailAPI04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture
API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant
Plus en détailGestion distribuée (par sockets) de banque en Java
Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante
Plus en détailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailRapport d activité. Mathieu Souchaud Juin 2007
Rapport d activité Mathieu Souchaud Juin 2007 Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l équipe ScAlApplix
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailManuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2
éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailCours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Plus en détailProgrammation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailGénérer du code à partir d une description de haut niveau
Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,
Plus en détailProgramme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence
É C O L E D I N G É N I E U R D E S T E C H N O L O G I E S D E L I N F O R M A T I O N E T D E L A C O M M U N I C A T I O N Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION Mentions
Plus en détailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailModèles à Événements Discrets. Réseaux de Petri Stochastiques
Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés
Plus en détailINTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores
INTRODUCTION AUX SYSTEMES D EXPLOITATION TD2 Exclusion mutuelle / Sémaphores Exclusion mutuelle / Sémaphores - 0.1 - S O M M A I R E 1. GENERALITES SUR LES SEMAPHORES... 1 1.1. PRESENTATION... 1 1.2. UN
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailArchitecture d'entreprise : Guide Pratique de l'architecture Logique
Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam
Plus en détailNFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007
NFP 121 Java et les Threads Présentation : Thierry Escalarasse Mai 2007 Plan du cour Présentation de la notion de Threads La classe Thread L interface Runnable Les états d un thread La Synchronisation
Plus en détailCompte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailThreads. Threads. USTL http://www.lifl.fr/ routier 1
Threads USTL http://www.lifl.fr/ routier 1 Rappels - Définitions un Process est un programme qui tourne et dispose de ses propres ressources mémoire. OS multi-tâche plusieurs process en concurrence un
Plus en détailArchitecture et Extensions d ArcGIS Server
Architecture et Extensions d ArcGIS Server Plan de la présentation Présentation Générale ArcGIS Server Deconstructed Architecture et retours d expérience Execution (LoadBalancing // FailOver) Securité
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailCours en ligne Développement Java pour le web
Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailLa persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailLangage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>
Langage HTML (2 partie) «Je n'ai fait que prendre le principe d - hypertexte et le relier au principe du TCP et du DNS et alors boum! ce fut le World Wide Web!» Tim Berners-Lee
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailLOG4430 : Architecture et conception avancée
LOG4430 : Architecture et conception avancée Abdou Maiga Patrons pour la conception d applications distribuées Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailVers l'orchestration de grilles de PC par les mécanismes de publicationsouscription
Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Présentée par Leila Abidi Sous la direction de Mohamed Jemni & Christophe Cérin Plan Contexte Problématique Objectifs
Plus en détailApplet pour visualiser les variables «automate» notifiées
Applet pour visualiser les variables «automate» notifiées Sommaire 1. Introduction...2 2. Lecture de variables «automate» notifiées...2 2.1. IHM servant au test :...2 2.2. Codage de l'applet :...2 3. Codage
Plus en détailIFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse
IFT287 Exploitation de base de données relationnelles et orientées objet Laboratoire Mon premier programme Java en Eclipse Comment faire? Nous allons utiliser l environnement de travail proposé par Eclipse
Plus en détailBIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailMessagerie asynchrone et Services Web
Article Messagerie asynchrone et Services Web 1 / 10 Messagerie asynchrone et Services Web SOAP, WSDL SONT DES STANDARDS EMERGEANT DES SERVICES WEB, LES IMPLEMENTATIONS DE CEUX-CI SONT ENCORE EN COURS
Plus en détailCette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailPOP-Java : Parallélisme et distribution orienté objet
POP-Java : Parallélisme et distribution orienté objet Beat Wolf 1, Pierre Kuonen 1, Thomas Dandekar 2 1 icosys, Haute École Spécialisée de Suisse occidentale, Fribourg 2 Biozentrum, Universität Würzburg
Plus en détailLa plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle
La plate-forme DIMA Master 1 IMA COLI23 - Université de La Rochelle DIMA Bref aperçu Qu'est-ce? Acronyme de «Développement et Implémentation de Systèmes Multi-Agents» Initié par Zahia Guessoum et Jean-Pierre
Plus en détailApprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)
Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les
Plus en détailInstitut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailÉlasticité des applications à base de services dans le Cloud
1/40 Élasticité des applications à base de services dans le Cloud Mourad Amziani 12 Tarek Melliti 1 Samir Tata 2 1 IBISC, EA4526, Université d'évry Val-d'Essonne, Évry, France 2 UMR CNRS Samovar, Institut
Plus en détail1 Mesure de la performance d un système temps réel : la gigue
TP TR ENSPS et MSTER 1 Travaux Pratiques Systèmes temps réel et embarqués ENSPS ISV et Master TP1 - Ordonnancement et communication inter-processus (IPC) Environnement de travail Un ordinateur dual-core
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailEP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012
EP60.92 Projet d application pluridisciplinaire La chasse aux trésors 2011-2012 I. Objectifs Mettre en œuvre les compétences acquises ou en cours d acquisition en: o Modélisation UML, Réseau, Base de données,
Plus en détailÉtude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java
Université Catholique de Louvain Faculté des Sciences Appliquées Département d Ingénierie Informatique Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java
Plus en détail27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
Plus en détailArchitecture distribuée
Architecture distribuée Conception et développement d algorithmes distribués pour le moteur Baboukweb Jean-Christophe DALLEAU Département de Mathématiques et Informatique Université de La Réunion 26 juin
Plus en détailJava Naming and Directory Interface
Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard
Plus en détailBABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS
Quatrième colloque hypermédias et apprentissages 275 BABEL LEXIS : UN SYSTÈME ÉVOLUTIF PERMETTANT LA CRÉATION, LE STOCKAGE ET LA CONSULTATION D OBJETS HYPERMÉDIAS Anne-Olivia LE CORNEC, Jean-Marc FARINONE,
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailChapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques
Chapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques «Examine soigneusement chaque voie. Essaye aussi souvent que tu le crois nécessaire. Puis pose toi la seule
Plus en détailAlgorithmique des Systèmes Répartis Protocoles de Communications
Algorithmique des Systèmes Répartis Protocoles de Communications Master Informatique Dominique Méry Université de Lorraine 1 er avril 2014 1 / 70 Plan Communications entre processus Observation et modélisation
Plus en détailBases de données - Modèle relationnel
Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,
Plus en détailLES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN
LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas
Plus en détailBusiness Process Execution Language
Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailCalcul Parallèle. Cours 5 - JAVA RMI
Calcul Parallèle Cours 5 - JAVA RMI Eric Goubault Commissariat à l Energie Atomique & Chaire Ecole Polytechnique/Thalès Saclay Le 28 février 2012 Eric Goubault 1 28 février 2012 Remote Method Invocation
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailCours STIM P8 TD 1 Génie Logiciel
Cours STIM P8 TD 1 Génie Logiciel Compléments sur UML Intervenant : Anil CASSAM CHENAI Date : 02/02/2012 Objectifs du complément Ce complément sera approfondi en parallèle de plusieurs TD/Cours. Rappels
Plus en détailRAPPORT DE CONCEPTION UML :
Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détail2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Plus en détail