Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration

Dimension: px
Commencer à balayer dès la page:

Download "Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration"

Transcription

1 Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012

2 Etude de techniques efficaces de versionnement d objets pour les langages orientés objet du modèle à l intégration au langage Pluquet Frédéric ULB, 3 juillet 2012

3 Comment avoir le passé d un programme Facilement, sans prendre trop de place et sans que l ordinateur ne ralentisse? Pluquet Frédéric ULB, 3 juillet 2012

4 6 versions 4

5 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

6 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

7 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Annuler (CTRL+Z) 4

8 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

9 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

10 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

11 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Rétablir (SHIFT+CTRL+Z) 4

12 6 versions Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! Un bon exemple de versioning! 4

13 Versioning 5

14 Versioning 5

15 Versioning 6

16 Versioning 7

17 Versioning 8

18 Versioning 8

19 Versioning 8

20 Versioning 8

21 Linear Versioning 1 9

22 Linear Versioning

23 Versioning 10

24 Backtracking Versioning 1 11

25 Backtracking Versioning

26 Backtracking Versioning

27 Backtracking Versioning

28 Backtracking Versioning

29 Versioning 12

30 Versioning B p A C D 12

31 Versioning B p A C D 12

32 Branching versioning 1 13

33 Branching versioning

34 Branching versioning

35 Branching versioning

36 Côté Développement 14

37 Côté Développement Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc 14

38 Côté Développement Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Est-il possible d alléger le travail des développeurs? 14

39 Côté Développement Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Solution ad hoc Bibliothèque commune pour le versioning Est-il possible d alléger le travail des développeurs? 14

40 Besoins 15

41 Besoins Générale pour être utilisée dans toute application 15

42 Besoins Générale pour être utilisée dans toute application Efficace en temps et en espace 15

43 Besoins Générale pour être utilisée dans toute application Efficace en temps et en espace Facile à utiliser pour les développeurs 15

44 Besoins Read-Only Linear versioning Branching 16

45 Besoins Read-Only Confluent Linear versioning Branching Backtracking Read-Only Backtracking versioning A B p C D Branching Branching versioning 16

46 Domaines Algorithmes Langages 17

47 Domaines Algorithmes Langages 17

48 Notre contribution Une étude complète du versioning d objets dans la RAM pour les langages orientés objet 18

49 Notre contribution Une étude complète du versioning d objets dans la RAM pour les langages orientés objet Modèle d enregistrement et de retour dans le passé [ REC] [ FWD] 18

50 Notre contribution Une étude complète du versioning d objets dans la RAM pour les langages orientés objet Modèle d enregistrement et de retour dans le passé Structures efficaces [ REC] [ FWD] 18

51 Notre contribution Une étude complète du versioning d objets dans la RAM pour les langages orientés objet Modèle d enregistrement et de retour dans le passé Structures efficaces Intégration aux langages [ REC] [ FWD] 18

52 Notre contribution Une étude complète du versioning d objets dans la RAM pour les langages orientés objet Modèle d enregistrement et de retour dans le passé Structures efficaces Intégration aux langages Implémentations efficaces Hist OO ry [ REC] [ FWD] 18

53 Modèle d enregistrement et de retour dans le passé [ REC] [ FWD]

54 [ REC] 20

55 [ REC] time t0 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 20

56 [ REC] time t0 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 20

57 [ REC] time t0 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 20

58 [ REC] time t0 t1 Snapshots Objects s1 abook::book title state borrower client1::client name id abook::book state borrower client1::client "1985" "clean" "John" 1 "clean" 20

59 [ REC] time t0 t1 abook::book title "1985" abook::book title "1985" Snapshots Objects s1 state borrower client1::client name id abook::book state borrower client1::client "clean" "John" 1 "clean" state borrower client1::client name id "dirty" "John" 1 20

60 [ REC] t0 t1 t2 time abook::book title "1985" abook::book title "1985" Objects state borrower "clean" state borrower "dirty" client1::client name id "John" 1 client1::client name id "John" 1 s1 s2 abook::book abook::book Snapshots state borrower client1::client "clean" state borrower "dirty" 20

61 [ REC] t0 t1 t2 time abook::book title "1985" abook::book title "1985" abook::book title "1984" Objects state borrower "clean" state borrower "dirty" state borrower "dirty" client1::client name id "John" 1 client1::client name id "John" 1 client1::client name id "John" 1 s1 s2 abook::book abook::book Snapshots state borrower client1::client "clean" state borrower "dirty" 20

62 [ REC] time t0 t1 t2 t3 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 abook::book title state borrower client1::client name id "1985" "dirty" "John" 1 abook::book title "1984" state "dirty" borrower client1::client name id "John" 1 s1 s2 s3 abook::book abook::book abook::book Snapshots state borrower client1::client "clean" state borrower "dirty" state borrower client1::client "dirty" 20

63 [ FWD] time t0 t1 t2 t3 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 abook::book title state borrower client1::client name id "1985" "dirty" "John" 1 abook::book title "1984" state "dirty" borrower client1::client name id "John" 1 s1 s2 s3 abook::book abook::book abook::book Snapshots state borrower client1::client "clean" state borrower "dirty" state borrower client1::client "dirty" 20

64 [ FWD] time t0 t1 t2 t3 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 abook::book title state borrower client1::client name id "1985" "dirty" "John" 1 abook::book title "1984" state "dirty" borrower client1::client name id "John" 1 s1 s2 s3 abook::book abook::book abook::book Snapshots state borrower client1::client "clean" state borrower "dirty" state borrower client1::client "dirty" 20

65 [ FWD] time t0 t1 t2 t3 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 abook::book title state borrower client1::client name id "1985" "dirty" "John" 1 abook::book title state borrower client1::client name id "1984" "dirty" "John" 1 s1 s2 s3 Snapshots abook::book title "1984" state borrower client1::client "clean" abook::book state borrower "dirty" abook::book state borrower client1::client "dirty" name id "John" 1 20

66 [ FWD] time t0 t1 t2 t3 abook::book title "1985" abook::book title "1985" abook::book title "1984" Objects state borrower "clean" state borrower "dirty" state borrower "dirty" client1::client name id "John" 1 client1::client name id "John" 1 client1::client name id "John" 1 s1 s2 s3 abook::book abook::book abook::book title "1984" Snapshots state borrower client1::client "clean" state borrower "dirty" state borrower client1::client "dirty" name id "John" 1 20

67 [ FWD] time t0 t1 t2 t3 Objects abook::book title state borrower client1::client name id "1985" "clean" "John" 1 abook::book title state borrower client1::client name id "1985" "dirty" "John" 1 abook::book title state borrower client1::client name id "1984" "dirty" "John" 1 s1 s2 s3 Snapshots abook::book state borrower client1::client "clean" abook::book state borrower "dirty" abook::book title "1984" state "dirty" borrower client1::client name id "John" 1 20

68 Attributs sélectionnés ou non 21

69 Attributs sélectionnés ou non 21

70 Attributs sélectionnés ou non 21

71 Attributs sélectionnés ou non Tous les objets d une même classe 22

72 Attributs sélectionnés ou non Tous les objets d une même classe Sélection basée sur un attribut d un objet 22

73 Attributs sélectionnés ou non Ex: la classe Vector en Java Sélection basée sur un attribut d un objet 22

74 Attributs sélectionnés ou non Ex: la classe Vector en Java Objets de notre application Sélection basée sur un attribut d un objet 22

75 Attributs sélectionnés ou non Ex: la classe Vector en Java Objets utilisés par les autres libraries Objets de notre application Sélection basée sur un attribut d un objet 22

76 Sélection automatique Mécanisme de Sélection Automatique profondeurs de sélection configuration locale pour chaque objet 23

77 Sélection automatique Mécanisme de Sélection Automatique profondeurs de sélection configuration locale pour chaque objet 23

78 Sélection automatique Mécanisme de Sélection Automatique profondeurs de sélection configuration locale pour chaque objet 23

79 Sélection automatique Mécanisme de Sélection Automatique profondeurs de sélection configuration locale pour chaque objet 23

80 Comment être efficace Théoriquement?

81 Premières Idées 25

82 Premières Idées Copie du système à chaque snapshot 25

83 Premières Idées Copie du système à chaque snapshot long et prend de la place 25

84 Premières Idées Copie du système à chaque snapshot long et prend de la place Lister les actions et ne garder que la dernière version 25

85 Premières Idées Copie du système à chaque snapshot long et prend de la place Lister les actions et ne garder que la dernière version rapide dans le présent long dans le passé 25

86 Premières Idées Copie du système à chaque snapshot long et prend de la place Lister les actions et ne garder que la dernière version rapide dans le présent long dans le passé Lister n actions puis copier le système 25

87 Premières Idées Copie du système à chaque snapshot long et prend de la place Lister les actions et ne garder que la dernière version rapide dans le présent long dans le passé Lister n actions puis copier le système toujours trop lent toujours trop de place 25

88 Structures de données efficaces Basées sur la Fat Node Method [Driscoll et al,1986]. Pas de contrainte sur le graphe d objets Les différentes valeurs d un attribut sont stockées comme valeur de cet attribut abook::book client1::client title state borrower "1984" t1 t2 "dirty" name id "John" 1 "clean" t1 t2 t3 26

89 Chained Arrays (a) 1 element (b) 2 elements (b) 6 elements (b) 8 elements Ajouter une valeur Lire la dernière valeur Rechercher une valeur O(1) O(1) O(log(#values)) 27

90 Efficacité en Temps Linear versioning Read-Only Prendre un snapshot Complexities O(1) Accéder à un attribut non sélectionné Branching Éditer un attribut sélectionné Lire la dernière valeur d un attr. sél. Rechercher une valeur d un attr. sél. O(1) O(1) O(1) O(log #états) 28

91 Efficacité en Temps Confluent Backtracking versioning Backtracking Prendre un snapshot Backtrack Accéder à un attribut non sélectionné Éditer un attribut sélectionné Lire la dernière valeur d un attr. sél. Rechercher une valeur d un attr. sél. Complexities O(1) O(1)* O(1) O(1)* O(1)* O(log #états) * temps amorti 29

92 Efficacité en Temps Read-Only Branching versioning Branching Complexities Prendre un snapshot Créer une branche Accéder à un attribut non sélectionné Éditer un attribut sélectionné Lire la dernière valeur d un attr. sél. Rechercher une valeur d un attr. sél. * temps amorti O(1)* O(1)* O(1) O(log #états) O(log #états) O(log #états) 30

93 Pour chaque type de versioning Accéder à un attribut non sélectionné O(1) 31

94 Pour chaque type de versioning Accéder à un attribut non sélectionné O(1) Si le versioning n est pas utilisé, le système garde les mêmes performances. 31

95 Règles et Outils pour l intégration aux langages

96 Intégration aux langages 3 primitives principales sélectionner les attributs prendre un snapshot exécuter du code au travers d un snapshot configuration locale par surcharge de méthodes 33

97 Intégration aux langages Pas de transparence pour le développeur code source Book>>getBorrower! ^borrower 34

98 Intégration aux langages Pas de transparence pour le développeur code source Book>>getBorrower! ^borrower abook::book title state borrower "1984" t1 t2 "dirty" "clean" client1::client name id "John" 1 t1 t2 t3 34

99 Intégration aux langages Pas de transparence pour le développeur code source Book>>getBorrower! ^borrower abook::book title state borrower "1984" t1 t2 "dirty" "clean" client1::client name id "John" 1 t1 t2 t3 code source Book>>getBorrower! ^(borrower isstatesdatastructure!! iftrue: [borrower getvalueatsnapshot: Snapshot activesnapshot]!! iffalse: [borrower]) 34

100 Instrumentation de bytecodes (Smalltalk) 35

101 Instrumentation de bytecodes (Smalltalk) Book new selectfields 35

102 Instrumentation de bytecodes (Smalltalk) code source Book>>getBorrower! ^borrower Book new selectfields 35

103 Instrumentation de bytecodes (Smalltalk) code source Book>>getBorrower! ^borrower Book new selectfields bytecodes <00> push the first field of the receiver (self) <7C> return top of stack 35

104 Instrumentation de bytecodes (Smalltalk) code source Book>>getBorrower! ^borrower Book new selectfields bytecodes <00> push the first field of the receiver (self) <7C> return top of stack <00> push the first field of the receiver (self) <7C> return top of the stack 35

105 Instrumentation de bytecodes (Smalltalk) code source Book>>getBorrower! ^borrower Book new selectfields bytecodes <00> push the first field of the receiver (self) <7C> return top of stack <00> push the first field of the receiver (self) <D1> send isstatesdatastructure <9A> if false: jump 5 instructions <00> push the first field of the receiver <42> push class Snapshot <D1> send: activesnapshot <D0> send: getvalueatsnapshot: <7C> jump 1 instruction <00> push the first field of the receiver <7C> return top of the stack 35

106 Instrumentation de bytecodes (Smalltalk) Book new selectfields code source Book>>getBorrower! ^borrower Book>>getBorrower! ^(borrower isstatesdatastructure!! iftrue: [borrower getvalueatsnapshot: Snapshot activesnapshot]!! iffalse: [borrower]) bytecodes <00> push the first field of the receiver (self) <7C> return top of stack <00> push the first field of the receiver (self) <D1> send isstatesdatastructure <9A> if false: jump 5 instructions <00> push the first field of the receiver <42> push class Snapshot <D1> send: activesnapshot <D0> send: getvalueatsnapshot: <7C> jump 1 instruction <00> push the first field of the receiver <7C> return top of the stack 35

107 Implementations Hist OO ry

108 Implementations Hist OO ry Première version en Java Version stable en Smalltalk Une libraire standard chargeable dans n importe quelle application le code existant n a pas besoin d être changé (instrumentation de bytecodes) 37

109 Implémentation en Smalltalk Démonstration Hist OO ry 38

110 Hist OO ry Performance Editer un attribut Temps moyen (ms) pour sauver un état Average Time (ms) to save one state Branching at end Branching at root Backtracking Linear Instrumented, not selected Ephemeral # Nb states d états saved sauvés in the versioned dans l attribut field Slowdown factor 39

111 Hist OO ry Performance Editer un attribut Temps moyen (ms) pour sauver un état Average Time (ms) to save one state Branching at end Branching at root Backtracking Linear Instrumented, not selected Ephemeral # Nb states d états saved sauvés in the versioned dans l attribut field Slowdown factor 39

112 Hist OO ry Performance Editer un attribut Temps moyen (ms) pour sauver un état Average Time (ms) to save one state Branching at end Branching at root Backtracking Linear Instrumented, not selected Ephemeral # Nb states d états saved sauvés in the versioned dans l attribut field Slowdown factor 39

113 Hist OO ry Performance Editer un attribut Temps moyen (ms) pour sauver un état Average Time (ms) to save one state Branching at end Branching at root Backtracking Linear Instrumented, not selected Ephemeral # Nb states d états saved sauvés in the versioned dans l attribut field Slowdown factor 39

114 Hist OO ry Performance Editer un attribut Temps moyen (ms) pour sauver un état Average Time (ms) to save one state Branching at end Branching at root Backtracking Linear Instrumented, not selected Ephemeral # Nb states d états saved sauvés in the versioned dans l attribut field Slowdown factor 39

115 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

116 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

117 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

118 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

119 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

120 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

121 Hist OO ry Performance Lire un attribut Temps moyen (ms) pour retrouver un état Average time (ms) to retrieve one state Branching at root Branching at end Backtracking - any state Backtracking - last state Linear - any state Linear - last state Hist OO 0 Nb # states d états saved sauvés in a versioned dans l attribut field Slowdown factor Instrumented, Not selected Synthetic worst case update 7 Ephemeral Real cases update 1.3 to 2 ry Slowdown factor 40

122 Hist OO ry Performance Ajout dans un Random Treap Temps moyen (ms) par ajout Average time (ms) per insertion Branching Backtracking Linear - all states Linear - consistent states Linear - no states Instrumented, not selected Ephemeral Nb d ajouts # insertions dans in a le random random treap treap 41

123 Hist OO ry Performance Ajout dans un Random Treap Temps moyen (ms) par ajout Average time (ms) per insertion Branching Backtracking Linear - all states Linear - consistent states Linear - no states Instrumented, not selected Ephemeral 3x Nb d ajouts # insertions dans in a le random random treap treap 41

124 Hist OO ry Performance Ajout dans un Random Treap Temps moyen (ms) par ajout Average time (ms) per insertion Branching Backtracking Linear - all states Linear - consistent states Linear - no states Instrumented, not selected Ephemeral 5x 3x Nb d ajouts # insertions dans in a le random random treap treap 41

125 Travaux Préexistants Liu Parrish Reiss Guéheneuc Warth Dans la RAM Transparent Général Sél. des sujets Sél. des états Efficacité Liu, Zhiqing A persistent runtime system using persistent data structures. Pages of: SAC 96: Proceedings of the 1996 ACM symposium on Applied Computing. New York, NY, USA: ACM Press. 42

126 Travaux Préexistants Liu Parrish Reiss Guéheneuc Warth Dans la RAM Transparent Général Sél. des sujets Sél. des états Efficacité Liu, Zhiqing A persistent runtime system using persistent data structures. Pages of: SAC 96: Proceedings of the 1996 ACM symposium on Applied Computing. New York, NY, USA: ACM Press. Parrish, Allen, Dixon, Brandon, Cordes, David, Vrbsky, Susan, & Lusth, John Implementing persistent data structures using C++. Softw. Pract. Exper., 28(15), Reiss, Steven P., & Renieris, Manos Encoding Program Executions. Pages of: Proceedings of the 23rd International Conference on Software Engineering. Toronto, Ontario, Canada: IEEE. Guéhéneuc, Y.-G., Douence, R., & Jussien, N (September). No Java without Caffeine A Tool for Dynamic Analysis of Java Programs. In: Proceedings of ASE 2002 : 17th International IEEE Conference on Automated Software Engineering. Warth, A., Ohshima Y., Kaehler, T. & Kay, Alan Worlds: Controlling the scope of side effects. Tech. rept. 42

127 Travaux Préexistants Liu Parrish Reiss Guéheneuc Warth Dans la RAM Transparent Général Sél. des sujets Sél. des états Efficacité Liu, Zhiqing A persistent runtime system using persistent data structures. Pages of: SAC 96: Proceedings of the 1996 ACM symposium on Applied Computing. New York, NY, USA: ACM Press. Parrish, Allen, Dixon, Brandon, Cordes, David, Vrbsky, Susan, & Lusth, John Implementing persistent data structures using C++. Softw. Pract. Exper., 28(15), Reiss, Steven P., & Renieris, Manos Encoding Program Executions. Pages of: Proceedings of the 23rd International Conference on Software Engineering. Toronto, Ontario, Canada: IEEE. Guéhéneuc, Y.-G., Douence, R., & Jussien, N (September). No Java without Caffeine A Tool for Dynamic Analysis of Java Programs. In: Proceedings of ASE 2002 : 17th International IEEE Conference on Automated Software Engineering. Warth, A., Ohshima Y., Kaehler, T. & Kay, Alan Worlds: Controlling the scope of side effects. Tech. rept. 42

128 Conclusions Un modèle général et facile à utiliser pour l object versioning adapté aux langages orientés objet Algorithmes théoriques avec un point de vue d implémentation Règles et outils orientés développeurs pour l intégration aux langages Implémenté et testé en Smalltalk 3 sortes de versioning Librarie transparente Efficace en temps et en espace 43

129 Merci! Executing code in the past: Efficient in-memory object graph versioning, F. Pluquet, S. Langerman, and R. Wuyts, In Proceedings of the 2009 ACM SIGPLAN Conference on Object- Oriented Programming Systems, Languages, and Applications (OOPSLA'09). Implementing Partial Persistence In Object-Oriented Languages, F. Pluquet. S. Langerman, A. Marot and R. Wuyts, In Proceedings of ALENEX 08,

Mesure et modélisation de l énergie logicielle

Mesure et modélisation de l énergie logicielle Mesure et modélisation de l énergie logicielle Adel Noureddine, Romain Rouvoy, Lionel Seinturier Green Days @ Lille 29 novembre 2013 Plan Contexte! Problèmes et limitations! Mesure énergétique des logiciels

Plus en détail

Laboratoire 4 Développement d un système intelligent

Laboratoire 4 Développement d un système intelligent DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG770 - SYSTÈMES INTELLIGENTS ÉTÉ 2012 Laboratoire 4 Développement d un système intelligent 1 Introduction Ce quatrième et dernier laboratoire porte sur le développement

Plus en détail

Une méthodologie de conception des systèmes distribués basée sur UML

Une méthodologie de conception des systèmes distribués basée sur UML Une méthodologie de conception des systèmes distribués basée sur UML Nouvelles Technologies de la Répartition (NOTERE 2005) 1 er septembre 2005 Ludovic Apvrille Pierre de Saqui-Sannes Axelle Apvrille Page

Plus en détail

The Current State and Future of Search Based Software Engineering

The Current State and Future of Search Based Software Engineering The Current State and Future of Search Based Software Engineering Mark Harman 1 IEEE International Conference on Software Engineering FoSE 07: Future of Software Engineering 1 King's College, LONDON, UK

Plus en détail

Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations

Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations Sécurité de la plate-forme d exécution Java : limites et proposition d améliorations Guillaume Hiet, Frédéric Guihéry, Goulven Guiheux, David Pichardie, Christian Brunette AMOSSYS-INRIA-SILICOM 10 juin

Plus en détail

Introduction à la Recherche en Laboratoire

Introduction à la Recherche en Laboratoire Introduction à la Recherche en Laboratoire Transferts de données pour le vol de travail Tristan Darricau tristan.darricau@ensimag.grenoble-inp.fr 26 mai 2014 Grenoble INP - ENSIMAG Ecadrement Frédéric

Plus en détail

Algorithmique avancée en Python

Algorithmique avancée en Python Algorithmique avancée en Python... et non pas Python avancé Denis Robilliard sept. 2014 1 Introduction Objectifs du cours connaître un panel d algorithmes standards : énumération, tris, backtracking, listes,

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014

ARCHITECTURE REST & WEB SERVICES. Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 ARCHITECTURE REST & WEB SERVICES Exposé Informatique & Réseaux CHAMBON Florian 14 janvier 2014 1 Introduction Présentation de Rest Serveur Java JAX-RS Démonstration 2 Introduction Présentation de Rest

Plus en détail

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation Clues from other disciplines (from E. Gamma) Patrons de conception («Design Patterns») ESIR2, GL (LSI) Benoit Combemale Université de Rennes 1, ESIR & IRISA (Triskell team) Benoit.Combemale@irisa.fr Inspiré

Plus en détail

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des

Plus en détail

Analyse statique de SCADE par interprétation abstraite

Analyse statique de SCADE par interprétation abstraite Analyse statique de SCADE par interprétation abstraite soutenance de stage Alex AUVOLAT ANSYS-Esterel Technologies sous l encadrement de Jean-Louis Colaço Juin-Juillet 2014 1/33 Introduction SCADE : programmation

Plus en détail

VISUALISATION DE NUAGES DE POINTS

VISUALISATION DE NUAGES DE POINTS ARNAUD BLETTERER MULTI-RÉSOLUTION 1/16 VISUALISATION DE NUAGES DE POINTS MULTI-RÉSOLUTION AU TRAVERS DE CARTES DE PROFONDEUR Arnaud Bletterer Université de Nice Sophia Antipolis Laboratoire I3S - Cintoo

Plus en détail

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010

Le mapping objet relationnel. Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Le mapping objet relationnel Introduction au mapping objet relationnel avec Nhibernate Cyril GRAUFFEL IR3 2009/2010 Plan de présentation 1. Le modèle relationnel et le modèle objet 2. Le Mapping Objet

Plus en détail

Certificate of Incorporation Certificat de constitution

Certificate of Incorporation Certificat de constitution Request ID: 017562932 Province of Ontario Date Report Produced: 2015/04/27 Demande n o : Province de l Ontario Document produit le: Transaction ID: 057430690 Ministry of Government Services Time Report

Plus en détail

Groupe de travail COSMAL 27 janvier 2009

Groupe de travail COSMAL 27 janvier 2009 Des modèles aux programmes à base de composants Besoin de langages à composants Luc Fabresse École des mines de Douai Unité de Recherche Informatique et Automatique http://vst.ensm-douai.fr/research/ Groupe

Plus en détail

INTRODUCTION A L UTILISATION DE SYSTAT

INTRODUCTION A L UTILISATION DE SYSTAT 1 INTRODUCTION A L UTILISATION DE SYSTAT F. Lyazrhi D. Concordet 2 Systat est un logiciel statistique qui permet de préparer les graphiques et de faire des calculs nécessaires à l analyse des données.

Plus en détail

Architecture des ordinateurs

Architecture des ordinateurs Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?

Plus en détail

Export et Import de modèles ICAR sous Trnsys 17

Export et Import de modèles ICAR sous Trnsys 17 Export et Import de modèles ICAR sous Trnsys 17 Export de modèles Trnsys 17 vers ICAR Une fonction permettant d exporter des modèles Trnsys vers des composants ICAR a été implémentée sous Simulation Studio.

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8)

Objectifs. Architecture des Ordinateurs Partie III : Liens avec le système d exploitation. Au sommaire... Schéma général d un compilateur (1/8) Architecture des Ordinateurs Partie III : Liens avec le système d exploitation 2. Génération de code David Simplot simplot@fil.univ-lille1.fr Objectifs Voir la génération de code ainsi que les mécanismes

Plus en détail

DEMANDE D INSCRIPTION

DEMANDE D INSCRIPTION DEMANDE D INSCRIPTION Début de prise en compte des inscriptions : 15 mars 2016 à 8 heures L inscription définitive vous sera notifiée par correspondance ou par téléphone, lorsque les conditions d admission

Plus en détail

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre dans une classe CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre@cril.univ-artois.fr 2 décembre 2004

Plus en détail

JACi400 Génération & JACi400 Développement

JACi400 Génération & JACi400 Développement JACi400 Génération & JACi400 Développement Une solution pour développer rapidement des applications WebSphere pour votre iseries directement en RPG ou Cobol. "After spending time with SystemObjects and

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Introduction aux Machines Virtuelles avec VMKit

Introduction aux Machines Virtuelles avec VMKit Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime

Plus en détail

Votre premier projet Android

Votre premier projet Android 3 Votre premier projet Android Maintenant que le SDK Android est installé, il est temps de créer votre premier projet. La bonne nouvelle est qu il n exige aucune ligne de code les outils Android créent

Plus en détail

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable Pierre Olivier*, Jalil Boukhobza*, Jean-Philippe Babau +, Damien Picard +, Stéphane Rubini + *Lab-STICC, + LISyC, Université

Plus en détail

Le clustering dans les réseaux ad-hoc

Le clustering dans les réseaux ad-hoc Le clustering dans les réseaux ad-hoc Auteur : Florent NOLOT Florent NOLOT 1 Présentation Le modèle et les motivations Le clustering à 1 saut et à k sauts Quelques résultats de simulation L'adaptation

Plus en détail

SeaSide: Des applications web complexes trés simplement...

SeaSide: Des applications web complexes trés simplement... SeaSide: Des applications web complexes trés simplement... Stéphane Ducasse www.iam.unibe.ch/~ducasse/ SeaSide est un puissant framework pour developper des applications web complexes. La fonctionalité

Plus en détail

jquery Simplifiez et enrichissez vos développements JavaScript 3 e édition Jonathan Chaffer Karl Swedberg

jquery Simplifiez et enrichissez vos développements JavaScript 3 e édition Jonathan Chaffer Karl Swedberg jquery Simplifiez et enrichissez vos développements JavaScript 3 e édition Jonathan Chaffer Karl Swedberg Traduit par Hervé Soulard avec la contribution technique de Didier Mouronval Pearson France a apporté

Plus en détail

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Principes. 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étail

Utilisation de la brique LEGO EV3 avec Automgen. Using EV3 brick with Automgen (C)2014 IRAI. Lego EV3, Automgen

Utilisation de la brique LEGO EV3 avec Automgen. Using EV3 brick with Automgen (C)2014 IRAI. Lego EV3, Automgen Utilisation de la brique LEGO EV3 avec Automgen Using EV3 brick with Automgen (C)2014 IRAI 1 Ce manuel décrit l'utilisation de la brique LEGO Ev3 avec Automgen. This manual describes the use of EV3 LEGO

Plus en détail

Un méta-modèle pour coupler application et détection des design patterns

Un méta-modèle pour coupler application et détection des design patterns Un méta-modèle pour coupler application et détection des design patterns Hervé Albin-Amiot Pierre Cointe Yann-Gaël Guéhéneuc {albin, cointe, guehene}@emn.fr Soft-Maint S.A., France École des Mines de Nantes,

Plus en détail

Développer des logiciels éducatifs en Squeak/Smalltalk, retour sur 3 ans d expérience

Développer des logiciels éducatifs en Squeak/Smalltalk, retour sur 3 ans d expérience Développer des logiciels éducatifs en Squeak/Smalltalk, retour sur 3 ans d expérience Hilaire Fernandes hilaire@ofset.org CDDP des Landes OFSET Juillet 2008 Contenu 1 Un point de vue historique 2 Pourquoi

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS 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étail

INTERFACE. Supervision / Bases de Données

INTERFACE. Supervision / Bases de Données MASTER ASE SYSTEMES D INFORMATION POUR L INDUSTRIE INTERFACE Supervision / Bases de Données ODBC/ADO Pierre BONNET 2008-2009 Pierre BONNET - Supervision - Liaison ODBC 1 L INTERFACE ODBC Open DataBase

Plus en détail

1.1 Remote Procedure Call (RPC)

1.1 Remote Procedure Call (RPC) 1.1 Remote Procedure Call (RPC) Le modèle Client-Serveur est un modèle simple à utiliser pour la structuration des systèmes répartis. Mais ce modèle s appuie sur des communications de type entrée/sortie

Plus en détail

Récupération automatique de la

Récupération automatique de la Récupération automatique de la mémoire 1 Plan 1. La gestion du tas. 2. Marquage et balayage. 3. Comptage de références. 4. Récupération par copie. 5. Compléments. 2 Problématique Le code exécutable généré

Plus en détail

Travaux Pratiques : Connexion et accès à la Base De Données

Travaux Pratiques : Connexion et accès à la Base De Données MODULE : Intégration des données Professeur : Mr Tallard Travaux Pratiques : Connexion et accès à la Base De Données Kamissi MOHAMED Sommaire 1. Présentation de l énoncé... 3 2. Connexion à la base de

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Simulation d'algorithmes distribués Guide Utilisateur

Simulation d'algorithmes distribués Guide Utilisateur Simulation d'algorithmes distribués Guide Utilisateur Sommaire Section 1 Section 2 Section 3 Section 4 Section 5 3 Introduction 3 Configuration minimale 3 Utilisation Construction de graphes 4 La grammaire

Plus en détail

4 Exemples de problèmes MapReduce incrémentaux

4 Exemples de problèmes MapReduce incrémentaux 4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank

Plus en détail

Sybase 12.5.3a et MQ Series

Sybase 12.5.3a et MQ Series Sybase 12.5.3a et MQ Series Sybase ASE 12.5.3a sera prêt à dialoguer directement avec Websphere MQ Series. Septembre 2005 Documentation technique # 27 Introduction Sybase Adaptive Server Enterprise 12.5.3a

Plus en détail

Analyse de performance et optimisation. David Geldreich (DREAM)

Analyse de performance et optimisation. David Geldreich (DREAM) Analyse de performance et optimisation David Geldreich (DREAM) Plan de l exposé Analyse de performance Outils Optimisation Démonstrations Analyse de performance Pas d optimisation sans analyse de performance

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010

NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010 NCTS INFORMATION QUANT AUX NOUVEAUTES POUR 2010 Sur pied des nouveaux articles 365, paragraphe 4 (NCTS) et 455bis, paragraphe 4 (NCTS-TIR) du Code Communautaire d'application 1, le principal obligé doit

Plus en détail

Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW

Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW Démystifier la mise en œuvre de la programmation orientée objet sous LabVIEW Mathilde VINCENT - Olivier JOURDAN Paris - le 7/2/2012 france.ni.com Qui sommes-nous? Une PME du Grésivaudan Créée en 1989!

Plus en détail

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un

Plus en détail

Programmation avancée en C

Programmation avancée en C Département Informatique Nom : Prénom : Année scolaire : 2007 2008 Date : 23 juin 2008 Module INF446 Session de juin Programmation avancée en C Contrôle de connaissance 1 de 45 minutes ÅERCI de répondre

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

Étalonnage de la sûreté de fonctionnement de systèmes d'exploitation

Étalonnage de la sûreté de fonctionnement de systèmes d'exploitation Étalonnage de la sûreté de fonctionnement de systèmes d'exploitation Karama KANOUN LAAS-CNRS Club SEE Systèmes Informatiques de Confiance Atelier du 20 octobre 2005 Logiciels sur étagère (libres ou commerciaux)

Plus en détail

Modélisation des Interfaces Multidisciplinaires pour la Conception de Systèmes Mécatroniques

Modélisation des Interfaces Multidisciplinaires pour la Conception de Systèmes Mécatroniques 20 èmes journées STP du GdR MACS Jeudi 5 et Vendredi 6 février 2015 Modélisation des Interfaces Multidisciplinaires pour la Conception de Systèmes Mécatroniques Chen Zheng, Julien Le Duigou, Matthieu Bricogne,

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 11 Le langage HQL Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire National

Plus en détail

Analyse de l introduction d anti-patrons de testabilité au cours de développement

Analyse de l introduction d anti-patrons de testabilité au cours de développement Analyse de l introduction d anti-patrons de testabilité au cours de développement Equipe VASCO MUHAMMAD RABEE SHAHEEN LYDIE DU BOUSQUET 22 Octobre 2009 Journée SEmba 1/ 26 Analyse de l introduction d anti-patrons

Plus en détail

S22 PHP sous IBM i : accédez à vos données et applications avec le PHP Toolkit

S22 PHP sous IBM i : accédez à vos données et applications avec le PHP Toolkit Modernisation, développement d applications et DB2 sous IBM i Technologies, outils et nouveautés 2013-2014 13 et 14 mai 2014 IBM Client Center Paris, Bois-Colombes S22 PHP sous IBM i : accédez à vos données

Plus en détail

Global patent index EP 2384082 A1

Global patent index EP 2384082 A1 Global patent index EP 2384082 A1 Title (en) Method and device for configuring a network of removed wireless sensors Title (de) Verfahren und Vorrichtung zur Konfiguration eines Sensornetzes ohne verlegte

Plus en détail

EndNote. Professeurs / Doctorants. Configuration utilisée : EndNote X2 Windows XP professionnel Word 2007

EndNote. Professeurs / Doctorants. Configuration utilisée : EndNote X2 Windows XP professionnel Word 2007 EndNote Configuration utilisée : EndNote X2 Windows XP professionnel Word 2007 Professeurs / Doctorants Réalisé : juin 2009 Dernière mise à jour : octobre 2010 Valérie Anne Mange Bibliothèque HEC Paris

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE

COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE COMPILING SCALA FOR THE JAVA VIRTUAL MACHINE THÈSE N O 3302 (2005) PRÉSENTÉE À LA FACULTÉ INFORMATIQUE ET COMMUNICATIONS Institut d'informatique fondamentale SECTION D'INFORMATIQUE ÉCOLE POLYTECHNIQUE

Plus en détail

Les déclencheurs (Triggers) avec Oracle

Les déclencheurs (Triggers) avec Oracle 1) Introduction 2) Événements déclenchant 3) Mécanisme général 4) Privilèges systèmes 5) Syntaxe 6) Nom du déclencheur 7) Option BEFORE ou AFTER 8) Déclencheur LMD 9) Déclencheur LDD 10) Déclencheur d'instance

Plus en détail

Patrons de conceptions problème solution Design Patterns GoF

Patrons de conceptions problème solution Design Patterns GoF - Patrons de conceptions pour la programmation orientée objet - Chaque problème de programmation = déjà rencontré par d autres informaticiens - Une solution existe généralement parmi les Design Patterns

Plus en détail

Introduction à la programmation concurrente

Introduction à 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étail

Devoir Surveillé informatique MP, PC, PSI

Devoir Surveillé informatique MP, PC, PSI NOM : Classe : Devoir Surveillé informatique MP, PC, PSI L utilisation des calculatrices n est pas autorisée pour cette épreuve. Le langage de programmation choisi est Python. L espace laissé pour les

Plus en détail

Standards Objets OMG - ODMG ODL - OQL. Plan. Introduction à l'odmg: Object Definition Language (ODL) Object Query Language (OQ)

Standards Objets OMG - ODMG ODL - OQL. Plan. Introduction à l'odmg: Object Definition Language (ODL) Object Query Language (OQ) Plan Standards Objets OMG - ODMG ODL - OQL Introduction à l'odmg: Contenu de la proposition; Architecture d'un SGBDO; Object Definition Language (ODL) Object Query Language (OQ) 1 2 Tirés des documents

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

Plus en détail

Service de Génie Logiciel Département Informatique - FS La complexité et l évolution logicielle

Service de Génie Logiciel Département Informatique - FS La complexité et l évolution logicielle Service de Génie Logiciel Département Informatique - FS La complexité et l évolution logicielle Chef de service: Doctorants: M. Goeminne, J. Pinna Puissant, R. Deshayes, M. Claes Postdocs: J. Perez Visiteurs:

Plus en détail

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution.

Arbres de segments. Plan. Arbres de segments. Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates. Solution. Plan Arbres de segments Arbres de segments Arbres de sélection Listes à saut Compléments de Java Dictionnaires Automates Problème : Chercher, dans un ensemble d intervalles de la droite réelle, les intervalles

Plus en détail

DG-ADAJ: Une plateforme Desktop Grid

DG-ADAJ: Une plateforme Desktop Grid DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée)

MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) MI3/GL Cours de Génie Logiciel Programmation Orientée Objet (Avancée) Daniel Le Berre CRIL-CNRS FRE 2499, Université d Artois, Lens, FRANCE {leberre}@cril.univ-artois.fr 4 novembre 2004 MI3GL 2004/2005

Plus en détail

Intégration continue. Gilles QUERRET Riverside Software

Intégration continue. Gilles QUERRET Riverside Software Intégration continue Gilles QUERRET Riverside Software Gilles Querret Dans le monde Progress / Java depuis une dizaine d années Riverside Software depuis 7 and Basé à Lyon, France Expertise technique et

Plus en détail

Outils d automatisation de tests d interfaces Web. David GERBAULT Ingénieurs 2000 Xposé 2010-2011

Outils d automatisation de tests d interfaces Web. David GERBAULT Ingénieurs 2000 Xposé 2010-2011 Outils d automatisation de tests d interfaces Web 1 David GERBAULT Ingénieurs 2000 Xposé 2010-2011 WEBOGRAPHIE http://seleniumhq.org/ http://www.clever-age.com/ http://watir.com/ 2 Pourquoi ce sujet? 3

Plus en détail

1 Modélisation d être mauvais payeur

1 Modélisation d être mauvais payeur 1 Modélisation d être mauvais payeur 1.1 Description Cet exercice est très largement inspiré d un document que M. Grégoire de Lassence de la société SAS m a transmis. Il est intitulé Guide de démarrage

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Ingénierie Dirigée par les Modèles et Domain Specific Languages:

Ingénierie Dirigée par les Modèles et Domain Specific Languages: Ingénierie Dirigée par les Modèles et Domain Specific Languages: Applications au calcul haute performance Forum ORAP CEA CESTA David Lugato : DSGA/SSPP/LMFA david.lugato@cea.fr 5 novembre 2015 Architectures

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

Introduction à la programmation orientée objet. Éric Pruvost

Introduction à la programmation orientée objet. Éric Pruvost Introduction à la programmation orientée objet Éric Pruvost Les années 50 Avant l objet Les années 50 50 Les quatre principaux langages 1956 1958 1958 1959 FORTRAN LISP ALGOL COBOL scientifique lambda-calcul

Plus en détail

Sécurité des frameworks J2EE

Sécurité des frameworks J2EE Sécurité des frameworks J2EE Naissance des injections de langages d'expression Présenté le 25/10/2012 Pour la JSSI 2012 de Rouen - 3ème édition Par Renaud Dubourguais - renaud.dubourguais@synacktiv.com

Plus en détail

Mieux programmer en Java

Mieux programmer en Java Mieux programmer en Java Peter Haggar Éditions Eyrolles ISBN : 2-212-09171-0 2000 PARTIE 1 l exécution de l instruction return, cependant, le contrôle est transféré au bloc finally en // 2. Cela provoque

Plus en détail

Programmation avancée en java IFT-21133 Syllabus

Programmation avancée en java IFT-21133 Syllabus Programmation avancée en java IFT-21133 Syllabus http://www.ift.ulaval.ca/ marchand/ift21133 Professeur : Pierre MARCHAND tél : 656-2131 poste 7409 fax : 656-2324 courriel : marchand@ift.ulaval.ca Chargé

Plus en détail

APSS Application Form for the University year 2016-2017 Formulaire de candidature au PEASS pour l année universitaire 2016-2017

APSS Application Form for the University year 2016-2017 Formulaire de candidature au PEASS pour l année universitaire 2016-2017 APSS Application Form for the University year 2016-2017 Formulaire de candidature au PEASS pour l année universitaire 2016-2017 This application form may be submitted by email at candidater.peass@egerabat.com

Plus en détail

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année 2015-2016 E-mail : mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/

Plus en détail

LE LOCKDOWN OU COMMENT RESTREINDRE L'ACCES A CERTAINES

LE LOCKDOWN OU COMMENT RESTREINDRE L'ACCES A CERTAINES LE LOCKDOWN OU COMMENT RESTREINDRE L'ACCES A CERTAINES RESSOURCES Apparu avec SAS 9.4 M1, le LOCKDOWN a pour objectif de permettre aux administrateurs de restreindre l accès à certaines ressources. «To

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau labsticc.univ-brest.fr/pages_perso/babau/ Ingénierie Dirigée par les Modèles Editeurs de modèles (Eclipse Modeling Tools) Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

Architecture de déploiement d un système réparti. Kawtharany Mohamed Laboratoire d'informatique et Télécommunication ENST Bretagne

Architecture de déploiement d un système réparti. Kawtharany Mohamed Laboratoire d'informatique et Télécommunication ENST Bretagne Architecture de déploiement d un système réparti Kawtharany Mohamed Laboratoire d'informatique et Télécommunication ENST Bretagne I. Introduction Contexte du travail. Étude du déploiement. Modélisation

Plus en détail

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé

LISE 3. Template pour les mails. Version 1.0 du 13/04/2010. Etat : Validé Template pour les mails Version 1.0 du 13/04/2010 Etat : Validé SUIVI DES MODIFICATIONS Version Rédaction Description Vérification Date 1.0 A. Lesuffleur création du document 13/04/10 Document validé dans

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Mobyle. Bertrand Néron, Hervé Ménager, Pierre Tuffery, Catherine Letondal. Institut Pasteur, RPBS

Mobyle. Bertrand Néron, Hervé Ménager, Pierre Tuffery, Catherine Letondal. Institut Pasteur, RPBS Mobyle Bertrand Néron, Hervé Ménager, Pierre Tuffery, Catherine Letondal bneron@pasteur.fr, hmenager@pasteur.fr, tuffery@ebgm.jussieu.fr, letondal@pasteur.fr Institut Pasteur, RPBS BWF 02/05/2007 p.1/21

Plus en détail

Création de site avec plan de classement par défaut dans un projet d extension Alfresco.

Création de site avec plan de classement par défaut dans un projet d extension Alfresco. Java EE &.NET GED Alfresco & workflows Portail Liferay "People & Technology for your Agility & Performance" www.koosery-tech.fr contact@koossery-tech.fr 1 mail du Professeur G. Mathé Biopark Villejuif

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail

HP NonStop Réunion des clients francophones Workshop Eclipse 6 décembre 2013. Organisateur Yves Tournier, tourniery@nsas.fr +33(0)6 1480 3175

HP NonStop Réunion des clients francophones Workshop Eclipse 6 décembre 2013. Organisateur Yves Tournier, tourniery@nsas.fr +33(0)6 1480 3175 HP NonStop Réunion des clients francophones Workshop Eclipse 6 décembre 2013 Organisateur Yves Tournier, tourniery@nsas.fr +33(0)6 1480 3175 Workshop Eclipse Eclipse Open source: www.eclipse.org HP NSDEE

Plus en détail

Les Lignes de Produits Logiciels (Software Product Lines) Tewfik Ziadi UPMC/LIP6 tewfik.ziadi@lip6.fr

Les Lignes de Produits Logiciels (Software Product Lines) Tewfik Ziadi UPMC/LIP6 tewfik.ziadi@lip6.fr Les Lignes de Produits Logiciels (Software Product Lines) Tewfik Ziadi UPMC/LIP6 tewfik.ziadi@lip6.fr 1. Plusieurs modèles de téléphones. 2. Des utilisateurs à travers le monde Plusieurs versions de la

Plus en détail

Compléments sur des concepts et des idiomes Java

Compléments sur des concepts et des idiomes Java Compléments sur des concepts et des idiomes Java D. Conan Rev : 951 CSC 4509 ASR4 Télécom SudParis Juin 2013 Table des matières Compléments sur des concepts et des idiomes Java D. Conan,, Télécom SudParis,

Plus en détail

Vers les objets CORBA parallèles portables

Vers les objets CORBA parallèles portables Vers les objets CORBA parallèles portables C. Pérez PARIS IRISA/INRIA Contribueurs: C. René, T. Priol Grappes 2001 Plan Contexte: Grid Computing & couplage de code Les objets CORBA parallèle 1ère génération:

Plus en détail