dans un environnement professionnel

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

Download "dans un environnement professionnel"

Transcription

1 dans un environnement professionnel

2 Questions Quels langages et paradigmes connaissez vous? Procédural/Structuré? C, VB, Delphi? Objet? Java, C#, C++, PHP, Python, Ruby? Déclaratif? SQL? Logique? Prolog? Fonctionnel? Haskell, Ocaml?

3 Présentation

4 Un exemple On veut lancer 2 dés à 6 faces, 200 fois

5 Un exemple On veut lancer 2 dés à 6 faces, 200 fois On calcule la somme des 2 faces pour chaque lancer

6 Un exemple On veut lancer 2 dés à 6 faces, 200 fois On calcule la somme des 2 faces pour chaque lancer On affiche l histogramme correspondant, en mode texte

7 Un exemple On veut lancer 2 dés à 6 faces, 200 fois On calcule la somme des 2 faces pour chaque lancer On affiche l histogramme correspondant, en mode texte 2: XXXX 3: XXXXXXXXXX 4: XXXXXXXXXXXXXXXXXXXXXX 5: XXXXXXXXXXXXXXXXXXXXX 6: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 7: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 8: XXXXXXXXXXXXXXXXXXXXXXXXXX 9: XXXXXXXXXXXXXXXXXXXXX 10: XXXXXXXXXXXXXX 11: XXXXXXXXXXXX 12: XXXX

8 Une solution en Java

9 Une solution en Scala

10 La «vraie» solution en Scala Stream.continually(util.Random.nextInt(6)+util.Random.nextInt(6)+2).take(200).groupBy(identity).toList.sortBy(_._1).foreach { case(a, b) => println(a+":" + "X" * b.size) }

11 Pourquoi s y intéresser Un meilleur Java 100% compatible

12 Pourquoi s y intéresser Un meilleur Java 100% compatible Plus concis

13 Pourquoi s y intéresser Un meilleur Java 100% compatible Plus concis Inférence de types

14 Pourquoi s y intéresser Un meilleur Java 100% compatible Plus concis Inférence de types Librairie standard plus riche (collections, String )

15 Pourquoi s y intéresser Un meilleur Java 100% compatible Plus concis Inférence de types Librairie standard plus riche (collections, String ) Plus puissant : n- uplets, définition d opérateurs, pattern matching, DSL

16 Pourquoi s y intéresser Un meilleur Java 100% compatible Plus concis Inférence de types Librairie standard plus riche (collections, String ) Plus puissant : n- uplets, définition d opérateurs, pattern matching, DSL Interpréteur pour les tâches «rapides»

17 Un meilleur Java package example trait Similarity { def issimilar(x: Any): Boolean def isnotsimilar(x: Any): Boolean =!issimilar(x) } class Point(val x: Int = 0, val y: Int = 0) extends Similarity { def issimilar(obj: Any) = obj.isinstanceof[point] && obj.asinstanceof[point].x == x def +(p: Point) = new Point(x+p.x, y+p.y) } object Point extends App { val p1 = new Point(1, 2) val p2 = new Point val p3 = new Point(5) val p4 = new Point(y=6) val p5 = p2 + p4 println(p2.isnotsimilar(p5)) }

18 Pourquoi s y intéresser La programmation fonctionnelle est de plus en plus fréquente : Java 8, C#, VB#, F#, C++ 11, Swift, Fortran 95, PHP 5.3, Ruby/Python, Map/ Reduce

19 Pourquoi s y intéresser La programmation fonctionnelle est de plus en plus fréquente : Java 8, C#, VB#, F#, C++ 11, Swift, Fortran 95, PHP 5.3, Ruby/Python, Map/ Reduce Un des rares langages vraiment hybride

20 Pourquoi s y intéresser La programmation fonctionnelle est de plus en plus fréquente : Java 8, C#, VB#, F#, C++ 11, Swift, Fortran 95, PHP 5.3, Ruby/Python, Map/ Reduce Un des rares langages vraiment hybride Il est plus intéressant pour un programmeur de connaître d autres langages que d approfondir celui qu il maitrise

21 2012 Pourquoi s y intéresser

22 2015 Pourquoi s y intéresser

23 Pour la petite histoire Développé en Europe (à l EPFL) Conçu par Martin Odersky A conçu Generic Java qui va donner les génériques qu on connaît depuis Java 5 Le compilateur qu il a écrit va être repris par Sun pour faire javac Puis il a voulu faire un «meilleur» Java, moins limitant A commencé par Funnel, simple mais trop «pur», élégant d un point de vue théorique mais peu pratique En 2002/2004, Scala apparaît : plus pragmatique mais toujours mixant fonctionnel et objet

24 La programmation fonctionnelle

25 La programmation fonctionnelle Un vaste sujet qui nécessiterait plusieurs cours

26 La programmation fonctionnelle Un vaste sujet qui nécessiterait plusieurs cours Un programme est une fonction, composé d autres fonctions

27 La programmation fonctionnelle Un vaste sujet qui nécessiterait plusieurs cours Un programme est une fonction, composé d autres fonctions On transforme des données, on ne les modifie pas (elles sont immutables comme String en Java)

28 La programmation fonctionnelle Un vaste sujet qui nécessiterait plusieurs cours Un programme est une fonction, composé d autres fonctions On transforme des données, on ne les modifie pas (elles sont immutables comme String en Java) Historiquement, cela fait des langages plus lents et typés «recherche universitaire»

29 La programmation fonctionnelle Un vaste sujet qui nécessiterait plusieurs cours Un programme est une fonction, composé d autres fonctions On transforme des données, on ne les modifie pas (elles sont immutables comme String en Java) Historiquement, cela fait des langages plus lents et typés «recherche universitaire» Mais de plus en plus utilisé dans le monde réel (Erlang, R)

30 Composition

31 Composition def randomchars = Stream.continually(util.Random.nextPrintableChar)

32 Composition def randomchars = Stream.continually(util.Random.nextPrintableChar) def randomcharswithlength(n: Int) = { val length = util.random.nextint(n) randomchars.take(length) }

33 Composition def randomchars = Stream.continually(util.Random.nextPrintableChar) def randomcharswithlength(n: Int) = { val length = util.random.nextint(n) randomchars.take(length) } def randomcharstream(n: Int) = Stream.continually(randomCharsWithLength(n))

34 Composition

35 Composition def randomstrings(n: Int) = randomcharstream(n).map { s => s.mkstring }

36 Composition def randomstrings(n: Int) = randomcharstream(n).map { s => s.mkstring } def find(n: Int, count: Int, s: String) = randomstrings(n).take(count).filter(_.contains(s))

37 Composition def randomstrings(n: Int) = randomcharstream(n).map { s => s.mkstring } def find(n: Int, count: Int, s: String) = randomstrings(n).take(count).filter(_.contains(s)) randomstrings(10).zipwithindex.find(_._1.contains( "foo")).map { _._2 }

38 Composition

39 Composition def firsta = randomstrings(10).zipwithindex.find(_._1.contains("a")).m ap { _._2 }.getorelse(0)

40 Composition def firsta = randomstrings(10).zipwithindex.find(_._1.contains("a")).m ap { _._2 }.getorelse(0) def averagea(n: Int) = Stream.continually(firstA).take(n).reduce(_+_)/n

41 Composition def firsta = randomstrings(10).zipwithindex.find(_._1.contains("a")).m ap { _._2 }.getorelse(0) def averagea(n: Int) = Stream.continually(firstA).take(n).reduce(_+_)/n def parallelaveragea(n: Int) = Stream.continually(firstA).take(n).par.reduce(_+_)/n

42 Les gains

43 Les gains Map/reduce : on code moins, on peut paralléliser, distribuer

44 Les gains Map/reduce : on code moins, on peut paralléliser, distribuer Option : plus de null pointer et on utilise map

45 Les gains Map/reduce : on code moins, on peut paralléliser, distribuer Option : plus de null pointer et on utilise map Code plus fiable Commutateur en Erlang: 31.5 ms d indisponibilité par an lang_github.pdf

46 Les gains Map/reduce : on code moins, on peut paralléliser, distribuer Option : plus de null pointer et on utilise map Code plus fiable Commutateur en Erlang: 31.5 ms d indisponibilité par an lang_github.pdf On réutilise plus le code qu en programmation objet

47 Scala : un langage hybride

48 Scala : un langage hybride On garde la mutabilité

49 Scala : un langage hybride On garde la mutabilité On peut commencer en mode «meilleur Java»

50 Scala : un langage hybride On garde la mutabilité On peut commencer en mode «meilleur Java» Puis introduire de l immutabilité et des fonctions progressivement

51 Scala : un langage hybride On garde la mutabilité On peut commencer en mode «meilleur Java» Puis introduire de l immutabilité et des fonctions progressivement Les performances sont équivalentes à Java

52 Scala : un langage hybride On garde la mutabilité On peut commencer en mode «meilleur Java» Puis introduire de l immutabilité et des fonctions progressivement Les performances sont équivalentes à Java Très puissant : opérateurs, XML et autres DSLs, implicits, macros...

53 Scala : un langage hybride On garde la mutabilité On peut commencer en mode «meilleur Java» Puis introduire de l immutabilité et des fonctions progressivement Les performances sont équivalentes à Java Très puissant : opérateurs, XML et autres DSLs, implicits, macros... Mais il faut savoir se limiter : lang.org/ old/node/8610

54 Les niveaux suivant Odersky Level A1: Beginning application programmer Java- like statements and expressions: standard operators, method calls, conditionals, loops, try/catch class, object, def, val, var, import, package Infix notation for method calls Simple closures Collections with map, filter, etc. for- expressions Level A2: Intermediate application programmer Pattern matching Trait composition Recursion, in particular tail recursion XML literals Level A3: Expert application programmer Folds, i.e. methods such as foldleft, foldright Streams and other lazy data structures Actors Combinator parsers Level L1: Junior library designer Type parameters Traits Lazy vals Control abstraction, currying By- name parameters Level L2: Senior library designer Variance annotations Existential types (e.g., to interface with Java wildcards) Self type annotations and the cake pattern for dependency injection Structural types (aka static duck typing) Defining map/flatmap/withfilter for new kinds of for- expressions Extractors Level L3: Expert library designer Early initializers Abstract types Implicit definitions Higher- kinded types

55 Dans le monde réel

56 Ecosystème

57 Ecosystème On peut utiliser toutes les librairies Java

58 Ecosystème On peut utiliser toutes les librairies Java Certaines ont des «wrappers» : Swing, slf4j, Google Guice, JPA, JMX, MongoDB, Hadoop, Spring

59 Ecosystème On peut utiliser toutes les librairies Java Certaines ont des «wrappers» : Swing, slf4j, Google Guice, JPA, JMX, MongoDB, Hadoop, Spring D autres supportent naturellement Java et Scala : Play, Akka, Spark...

60 Ecosystème On peut utiliser toutes les librairies Java Certaines ont des «wrappers» : Swing, slf4j, Google Guice, JPA, JMX, MongoDB, Hadoop, Spring D autres supportent naturellement Java et Scala : Play, Akka, Spark... Les librairies Java s utilisent telles quelles mais on écrit plus de code

61 Ecosystème On peut utiliser toutes les librairies Java Certaines ont des «wrappers» : Swing, slf4j, Google Guice, JPA, JMX, MongoDB, Hadoop, Spring D autres supportent naturellement Java et Scala : Play, Akka, Spark... Les librairies Java s utilisent telles quelles mais on écrit plus de code Supporté par Eclipse, Idea, Netbeans, Emacs et autres

62 Scalatest

63 Equivalent de Junit Scalatest

64 Scalatest Equivalent de Junit Mais en Scala donc un DSL

65 Scalatest

66 Spark

67 Spark Implémente map/reduce comme Hadoop mais en plus rapide

68 Spark Implémente map/reduce comme Hadoop mais en plus rapide Utilisé par Amazon, Ebay, IBM, NASA, Yahoo...

69 Spark Implémente map/reduce comme Hadoop mais en plus rapide Utilisé par Amazon, Ebay, IBM, NASA, Yahoo... Très simple

70 Spark Implémente map/reduce comme Hadoop mais en plus rapide Utilisé par Amazon, Ebay, IBM, NASA, Yahoo... Très simple Trés rapide : peut trier 100 To en 23 min et 1000 To en 234 min

71 Spark Implémente map/reduce comme Hadoop mais en plus rapide Utilisé par Amazon, Ebay, IBM, NASA, Yahoo... Très simple Trés rapide : peut trier 100 To en 23 min et 1000 To en 234 min petabyte- sort.html

72 Spark def avg(n: Int) = sc.parallelize(1 to n).map{ i => firsta }.reduce(_+_)/n

73 Spark def avg(n: Int) = sc.parallelize(1 to n).map{ i => firsta }.reduce(_+_)/n def time[a](f: => A) = { val s = System.nanoTime val ret = f printf("time: %.2f sec\n", (System.nanoTime- s)/ 1.0e9) ret }

74 Scala.js On écrit en Scala et il compile en Javascript

75 Scala.js On écrit en Scala et il compile en Javascript Le code est concis et efficace

76 Scala.js On écrit en Scala et il compile en Javascript Le code est concis et efficace Intégré avec Node.js et autres

77 Scala.js On écrit en Scala et il compile en Javascript Le code est concis et efficace Intégré avec Node.js et autres On peut le voir comme un exemple «ultime» de DSL

78 Scala.js

79 Scala.Js

80 Play Un framework complet pour faire des sites Web Utilisable en Java et Scala Typé «rapide et efficace», moins de contraintes que J2EE, rechargement à chaud Utilisé par LinkedIn, Coursera

81 Play Très complet : RESTful Templates Authentification CRUD Validation (par annotations) Planificateur de tâches SMTP mailer JSON & XML Persistence basée sur JPA Embarque une base de données pour simplifier les tests (h2) Embarque un framework de tests etc.

82 Play

83 Autres lang.org/display/sw/tools +and+libraries

84 Twitter

85 Twitter Ils utilisaient (et utilisent) Ruby et Ruby on Rails

86 Twitter Ils utilisaient (et utilisent) Ruby et Ruby on Rails Très efficace pour le front- end mais peu adapté aux traitements longs (performance, GC...)

87 Twitter Ils utilisaient (et utilisent) Ruby et Ruby on Rails Très efficace pour le front- end mais peu adapté aux traitements longs (performance, GC...) Besoin d un typage fort

88 Twitter Ils utilisaient (et utilisent) Ruby et Ruby on Rails Très efficace pour le front- end mais peu adapté aux traitements longs (performance, GC...) Besoin d un typage fort Ils ont regardé d autres langages : C++, Python, Erlang, Java, JRuby...

89 Twitter Ils utilisaient (et utilisent) Ruby et Ruby on Rails Très efficace pour le front- end mais peu adapté aux traitements longs (performance, GC...) Besoin d un typage fort Ils ont regardé d autres langages : C++, Python, Erlang, Java, JRuby... La gestion de la concurrence est un gros plus dans Scala

90 Guardian.co.uk Fondé en 1821 mais a choisi de devenir principalement numérique

91 Guardian.co.uk Fondé en 1821 mais a choisi de devenir principalement numérique La 1 ère architecture était basée sur Java, Spring, Hibernate, Velocity et Oracle

92 Guardian.co.uk Fondé en 1821 mais a choisi de devenir principalement numérique La 1 ère architecture était basée sur Java, Spring, Hibernate, Velocity et Oracle Mais elle était trop monolithique et pas assez flexible => l ajout de nouvelles fonctions était long

93 Guardian.co.uk Fondé en 1821 mais a choisi de devenir principalement numérique La 1 ère architecture était basée sur Java, Spring, Hibernate, Velocity et Oracle Mais elle était trop monolithique et pas assez flexible => l ajout de nouvelles fonctions était long Python + Django était une solution viable mais qui nécessitait de réécrire le code Java

94 Guardian.co.uk Ils utilisaient Scala à travers Scalatest pour leur code Java

95 Guardian.co.uk Ils utilisaient Scala à travers Scalatest pour leur code Java Ils ont donc généralisé son usage

96 Guardian.co.uk Ils utilisaient Scala à travers Scalatest pour leur code Java Ils ont donc généralisé son usage Puis sont passé à Play + Akka

97 Guardian.co.uk Ils utilisaient Scala à travers Scalatest pour leur code Java Ils ont donc généralisé son usage Puis sont passé à Play + Akka Plus de 2 millions de pages vues par jour

98 Guardian.co.uk Ils utilisaient Scala à travers Scalatest pour leur code Java Ils ont donc généralisé son usage Puis sont passé à Play + Akka Plus de 2 millions de pages vues par jour 0 interruption de service

99 Autres LinkedIn (ont construit Apache Kafka) Electricité de France Trading Novell Xerox FourSquare Sony Siemens

100 Echecs

101 Echecs Yammer ( est un réseau social d entreprise

102 Echecs Yammer ( est un réseau social d entreprise Après avoir décidé de migrer de Scala à Java, ils ont fait machine arrière en 2011

103 Echecs Yammer ( est un réseau social d entreprise Après avoir décidé de migrer de Scala à Java, ils ont fait machine arrière en 2011 Ils citent : La complexité du langage D avoir sous- estimé le travail de formation et la difficulté de trouver des programmeurs Scala expérimentés Une compatibilité ascendante imparfaite Des problèmes de performance

104 Echecs Yammer ( est un réseau social d entreprise Après avoir décidé de migrer de Scala à Java, ils ont fait machine arrière en 2011 Ils citent : La complexité du langage D avoir sous- estimé le travail de formation et la difficulté de trouver des programmeurs Scala expérimentés Une compatibilité ascendante imparfaite Des problèmes de performance La plupart des objections relèvent de l organisation ou ne sont plus valides

105 Echecs Yammer ( est un réseau social d entreprise Après avoir décidé de migrer de Scala à Java, ils ont fait machine arrière en 2011 Ils citent : La complexité du langage D avoir sous- estimé le travail de formation et la difficulté de trouver des programmeurs Scala expérimentés Une compatibilité ascendante imparfaite Des problèmes de performance La plupart des objections relèvent de l organisation ou ne sont plus valides Mais il ne faut pas sous- estimer le coût du changement et savoir le faire progressivement

106 Notre expérience

107 Density

108 Density Editeur de progiciels pour la gestion d actifs, les mutuelles...

109 Density Editeur de progiciels pour la gestion d actifs, les mutuelles... 1 millions de lignes de Java en 10 ans

110 Density Editeur de progiciels pour la gestion d actifs, les mutuelles... 1 millions de lignes de Java en 10 ans lignes «techniques», lignes «métier»

111 Density Editeur de progiciels pour la gestion d actifs, les mutuelles... 1 millions de lignes de Java en 10 ans lignes «techniques», lignes «métier» Scala utilisé depuis 2 ans pour le nouveau code technique

112 Density Editeur de progiciels pour la gestion d actifs, les mutuelles... 1 millions de lignes de Java en 10 ans lignes «techniques», lignes «métier» Scala utilisé depuis 2 ans pour le nouveau code technique Le code «métier» reste en Java (8 depuis peu)

113 Les connections «résilientes»

114 Les connections «résilientes» L application garde des connections à la base de données

115 Les connections «résilientes» L application garde des connections à la base de données On veut qu elle détecte les pertes de connection, prévienne l utilisateur et lui propose de se reconnecter

116 Les connections «résilientes» L application garde des connections à la base de données On veut qu elle détecte les pertes de connection, prévienne l utilisateur et lui propose de se reconnecter Mais cela peut arriver n importe où dans le code (persistence automatique)

117 Les connections «résilientes» L application garde des connections à la base de données On veut qu elle détecte les pertes de connection, prévienne l utilisateur et lui propose de se reconnecter Mais cela peut arriver n importe où dans le code (persistence automatique) Certains opérations peuvent être réessayées, d autres non

118 Les connections «résilientes» L application garde des connections à la base de données On veut qu elle détecte les pertes de connection, prévienne l utilisateur et lui propose de se reconnecter Mais cela peut arriver n importe où dans le code (persistence automatique) Certains opérations peuvent être réessayées, d autres non

119 Les connections «résilientes»

120 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade

121 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade On l écrit en Java avec Eclipse

122 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade On l écrit en Java avec Eclipse On convertit en Scala avec javatoscala.com/

123 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade On l écrit en Java avec Eclipse On convertit en Scala avec javatoscala.com/ On écrit un «retry» et on le met devant les méthodes qui le supportent

124 Les connections «résilientes»

125 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade avec la même interface

126 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade avec la même interface On l écrit en Java avec Eclipse

127 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade avec la même interface On l écrit en Java avec Eclipse On convertit en Scala avec javatoscala.com/

128 Les connections «résilientes» On encapsule les connection et les «statements» dans une facade avec la même interface On l écrit en Java avec Eclipse On convertit en Scala avec javatoscala.com/ On écrit «retry», «safely» et on les met devant les méthodes qui le supportent

129 Les connections «résilientes»

130 Reporting avec Birt

131 Reporting avec Birt On intègre un outil de reporting open- source : Birt

132 Reporting avec Birt On intègre un outil de reporting open- source : Birt Ecrit en Java

133 Reporting avec Birt On intègre un outil de reporting open- source : Birt Ecrit en Java API complexe

134 Reporting avec Birt On intègre un outil de reporting open- source : Birt Ecrit en Java API complexe Le gain est faible

135 Reporting avec Birt

136 Reporting avec Birt

137 Un compilateur de formules

138 Un compilateur de formules Le but est de définir des formules sur les champs de nos objets

139 Un compilateur de formules Le but est de définir des formules sur les champs de nos objets Nous utilisons un interpréteur Java modifié (BeanShell) mais c est lent

140 Un compilateur de formules Le but est de définir des formules sur les champs de nos objets Nous utilisons un interpréteur Java modifié (BeanShell) mais c est lent L éditeur ne fait pas de complétion comme un IDE

141 Un compilateur de formules

142 Un compilateur de formules Pour l éditeur, nous utilisons Ensime embarqué

143 Un compilateur de formules Pour l éditeur, nous utilisons Ensime embarqué Si on a une classe Java Foo avec geta et getb, on génère, on compile et on charge :

144 Avantages et inconvénients : notre expérience

145 Avantages et inconvénients : notre expérience Avantages

146 Avantages et inconvénients : notre expérience Avantages Très puissant

147 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer

148 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement

149 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide

150 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide Inconvénients

151 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide Inconvénients Langage complexe et presque trop riche : il faut savoir se limiter

152 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide Inconvénients Langage complexe et presque trop riche : il faut savoir se limiter Besoin de changer (un peu) notre environnement de développement

153 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide Inconvénients Langage complexe et presque trop riche : il faut savoir se limiter Besoin de changer (un peu) notre environnement de développement Recrutement possible mais moins facile

154 Avantages et inconvénients : notre expérience Avantages Très puissant Plus concis, plus agréable à programmer Permet d envisager le parallélisme plus sereinement Permet de faire du code plus fiable tout en restant rapide Inconvénients Langage complexe et presque trop riche : il faut savoir se limiter Besoin de changer (un peu) notre environnement de développement Recrutement possible mais moins facile Part de marché et pérennité correctes mais loin de Java

155 Alternatives

156 Java 8 Alternatives

157 Alternatives Java 8 Autre langages : Clojure, Erlang, Haskell, F#...

158 Questions?

Panorama des solutions analytiques existantes

Panorama des solutions analytiques existantes Arnaud LAROCHE Julien DAMON Panorama des solutions analytiques existantes SFdS Méthodes et Logiciels - 16 janvier 2014 - Données Massives Ne sont ici considérés que les solutions autour de l environnement

Plus en détail

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué

Plus en détail

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse THÉMATIQUES Comprendre les frameworks productifs Découvrir leurs usages Synthèse 2 LES ENJEUX DES FRAMEWORKS D ENTREPRISE EN 2012 LE CONSTAT Ressources Recrutement Flexibilité Intérêt Montée en compétence

Plus en détail

Point sur les solutions de développement d apps pour les périphériques mobiles

Point sur les solutions de développement d apps pour les périphériques mobiles Point sur les solutions de développement d apps pour les périphériques mobiles Par Hugues MEUNIER 1. INTRODUCTION a. Une notion importante : le responsive web design Nous sommes en train de vivre une nouvelle

Plus en détail

les techniques d'extraction, les formulaires et intégration dans un site WEB

les techniques d'extraction, les formulaires et intégration dans un site WEB les techniques d'extraction, les formulaires et intégration dans un site WEB Edyta Bellouni MSHS-T, UMS838 Plan L extraction des données pour un site en ligne Architecture et techniques Les différents

Plus en détail

4. SERVICES WEB REST 46

4. SERVICES WEB REST 46 4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,

Plus en détail

Introduction à MapReduce/Hadoop et Spark

Introduction à MapReduce/Hadoop et Spark 1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -

Plus en détail

Architecture Orientée Service, JSON et API REST

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

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Fouillez facilement dans votre système Big Data. Olivier TAVARD Fouillez facilement dans votre système Big Data Olivier TAVARD A propos de moi : Cofondateur de la société France Labs Développeur (principalement Java) Formateur en technologies de moteurs de recherche

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Cours en ligne Développement Java pour le web

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

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis

MapReduce. Nicolas Dugué nicolas.dugue@univ-orleans.fr. M2 MIAGE Systèmes d information répartis MapReduce Nicolas Dugué nicolas.dugue@univ-orleans.fr M2 MIAGE Systèmes d information répartis Plan 1 Introduction Big Data 2 MapReduce et ses implémentations 3 MapReduce pour fouiller des tweets 4 MapReduce

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/23 2/23 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

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

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin 2011. Talend 2010 1 Big Data Cyril Amsellem Consultant avant-vente 16 juin 2011 Talend 2010 1 Big Data Architecture globale Hadoop Les projets Hadoop (partie 1) Hadoop-Core : projet principal. HDFS : système de fichiers distribués

Plus en détail

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC Technologies du Web Ludovic DENOYER - ludovic.denoyer@lip6.fr UPMC Février 2014 Ludovic DENOYER - ludovic.denoyer@lip6.fr Technologies du Web Plan Retour sur les BDs Le service Search Un peu plus sur les

Plus en détail

Compte Rendu d intégration d application

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

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON stephane.mouton@cetic.be Groupe de Discussion Big Data Aperçu des technologies et applications Stéphane MOUTON stephane.mouton@cetic.be Recherche appliquée et transfert technologique q Agréé «Centre Collectif de Recherche» par

Plus en détail

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur) 1/30 2/30 Anne-Cécile Caron Master MIAGE - SGBD 1er trimestre 2014-2015 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche

Plus en détail

Cartographie des solutions BigData

Cartographie des solutions BigData Cartographie des solutions BigData Panorama du marché et prospective 1 1 Solutions BigData Défi(s) pour les fournisseurs Quel marché Architectures Acteurs commerciaux Solutions alternatives 2 2 Quels Défis?

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives Hadoop, Spark & Big Data 2.0 Exploiter une grappe de calcul pour des problème des données massives Qui suis-je? Félix-Antoine Fortin Génie info. (B. Ing, M. Sc, ~PhD) Passionné de Python, Data Analytics,

Plus en détail

Bases Java - Eclipse / Netbeans

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

Les technologies du Big Data

Les technologies du Big Data Les technologies du Big Data PRÉSENTÉ AU 40 E CONGRÈS DE L ASSOCIATION DES ÉCONOMISTES QUÉBÉCOIS PAR TOM LANDRY, CONSEILLER SENIOR LE 20 MAI 2015 WWW.CRIM.CA TECHNOLOGIES: DES DONNÉES JUSQU'À L UTILISATEUR

Plus en détail

CAS, un SSO web open source. 14h35-15h25 - La Seine A

CAS, un SSO web open source. 14h35-15h25 - La Seine A CAS, un SSO web open source 14h35-15h25 - La Seine A CAS, un SSO web open source Jérôme LELEU Committer CAS Architecte du CAS chez SFR https://github.com/leleuj @leleuj 27 au 29 mars 2013 Sommaire SSO

Plus en détail

Technologies Web avancées. ING1 SIGL Technologies Web avancées

Technologies Web avancées. ING1 SIGL Technologies Web avancées ING1 SIGL Technologies Web avancées Olivier Pons / 2013-2014 Objectif Comprendre globalement le Web Sommaire 1. Rappel Web 2. État de l'art 3. Solutions actuelles 2 / 28 1 Rappel Web 1a. HTML HTML dans

Plus en détail

Laurent JOLIN. Compétences. Expériences professionnelles. Architecte technique. 15, rue Jean Favier 31500 Toulouse ljolin@gmail.

Laurent JOLIN. Compétences. Expériences professionnelles. Architecte technique. 15, rue Jean Favier 31500 Toulouse ljolin@gmail. 15, rue Jean Favier 31500 Toulouse ljolin@gmail.com 34 ans Laurent JOLIN Architecte technique 2003 Diplôme de chef de projet informatique, spécialité «génie logiciel» Ecole Privée des Sciences Informatiques

Plus en détail

APPEL À COMMUNICATIONS 2010

APPEL À COMMUNICATIONS 2010 APPEL À COMMUNICATIONS 2010 Bonjour, La prochaine édition de Solutions Linux/Open Source se déroulera les à Paris à la porte de Versailles. Pendant ces 3 jours qui réuniront plus de 220 exposants et accueilleront

Plus en détail

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie 1 / 22 Technologies Web Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya Université Pierre et Marie Curie Rappel 2 / 22 Problématique Quelles technologies utiliser

Plus en détail

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

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée Communiqué de presse Charles-Yves Baudet Twitter: Les clients de Teradata Teradata Corporation peuvent dan.conway@teradata.com tirer parti de plusieurs + 33 1 64 86 76 14 + 33 (0) 1 55 21 01 48/49 systèmes,

Plus en détail

Chapitre VI- La validation de la composition.

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

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

CNAM 2010-2011. Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 CNAM 2010-2011 Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010 Déploiement d une application dans le cloud. 1. Cloud Computing en 2010 2. Offre EC2

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

Architectures Web Services RESTful

Architectures Web Services RESTful Architectures Web Services RESTful Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 REST REST Representational State Transfer Roy Fielding (2000) Décollage vers 2006-2007

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Paul FLYE SAINTE MARIE

Paul FLYE SAINTE MARIE Paul FLYE SAINTE MARIE ASSISTANT CHEF DE PROJET DANS LE DÉVELOPPEMENT INFORMATIQUE Domaines de compétences Conduite de projet (échange avec la maitrise d ouvrage, maitrise d œuvre, rédaction des spécifications

Plus en détail

Systèmes en réseau : Linux 1ère partie : Introduction

Systèmes en réseau : Linux 1ère partie : Introduction Systèmes en réseau : Linux 1ère partie : Introduction Les fondements de Linux : le logiciel libre Historique de Linux Présentation générale de Linux Les applications à succès Les distributions Qu'est-ce

Plus en détail

Programmation parallèle et distribuée (Master 1 Info 2015-2016)

Programmation parallèle et distribuée (Master 1 Info 2015-2016) Programmation parallèle et distribuée (Master 1 Info 2015-2016) Hadoop MapReduce et HDFS Note bibliographique : ce cours est largement inspiré par le cours de Benjamin Renaut (Tokidev SAS) Introduction

Plus en détail

MapReduce et Hadoop. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

MapReduce et Hadoop. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 MapReduce et Hadoop Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Fouille de données Recherche & indexation de gros volumes Appliquer une opération simple à beaucoup

Plus en détail

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

31 ans - 8 ans d'expérience

31 ans - 8 ans d'expérience B0052 T EAM LEADER SENIOR JAVA - J2EE 31 ans - 8 ans d'expérience Expert ises mét iers : Langues : Cert if icat ions : Editeur de logiciels, Telecoms, Banque, finance Roumain (Langue maternelle), Anglais

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

Les bases de données relationnelles

Les bases de données relationnelles Bases de données NO SQL et SIG : d un existant restreint à un avenir prometteur CHRISTIAN CAROLIN, AXES CONSEIL CAROLIN@AXES.FR - HTTP://WWW.AXES.FR Les bases de données relationnelles constituent désormais

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web» Sana Sellami sana.sellami@lsis.org 2014-2015 Plan Partie 1: Introduction aux Services Web (SW) Partie 2: Vers une

Plus en détail

Vérifier la qualité de vos applications logicielle de manière continue

Vérifier la qualité de vos applications logicielle de manière continue IBM Software Group Vérifier la qualité de vos applications logicielle de manière continue Arnaud Bouzy Kamel Moulaoui 2004 IBM Corporation Agenda Analyse de code Test Fonctionnel Test de Performance Questions

Plus en détail

Introduction aux «Services Web»

Introduction aux «Services Web» Introduction aux «Services Web» Sana Sellami sana.sellami@univ-amu.fr 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre

Plus en détail

Évaluation et implémentation des langages

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

Applications et Services WEB: Architecture REST

Applications et Services WEB: Architecture REST Applications et : Erick Stattner Laboratoire LAMIA Université des Antilles et de la Guyane France erick.stattner@univ-ag.fr Guadeloupe 2014-2015 Erick Stattner Applications et : 1 / 90 Description du cours

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Labs Hadoop Février 2013

Labs Hadoop Février 2013 SOA - BRMS - ESB - BPM CEP BAM - High Performance Compute & Data Grid - Cloud Computing - Big Data NoSQL - Analytics Labs Hadoop Février 2013 Mathias Kluba Managing Consultant Responsable offres NoSQL

Plus en détail

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE Igor Rosenberg 30 ans DEA «Image-Vision» de l Université de Nice Sophia-Antipolis POSTES PRECEDENTS MMA: Développement Web/Grails sur démonstrateur

Plus en détail

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. Méthode de Test Pour WIKIROUTE Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel. [Tapez le nom de l'auteur] 10/06/2009 Sommaire I. Introduction...

Plus en détail

Curriculum Vitae de Michel Casabianca

Curriculum Vitae de Michel Casabianca Curriculum Vitae de Michel Casabianca Ingénieur Logiciel Sénior : Développement, Architecture et Conduite de Projet. Michel Casabianca 110 cours Saint Louis Bat B App 44 33300 Bordeaux 06.86.99.63.89 casa@sweetohm.net

Plus en détail

Mardi 9 septembre 2008. www.parisjug.org. www.parisjug.org

Mardi 9 septembre 2008. www.parisjug.org. www.parisjug.org Mardi 9 septembre 2008 www.parisjug.org www.parisjug.org Copyright 2008 ParisJug. Licence CC Creative Commons 2.0 France Paternité Pas d'utilisation Commerciale Partage des Conditions Initiales à l'identique

Plus en détail

Machines Virtuelles. et bazard autour. Rémi Forax

Machines Virtuelles. et bazard autour. Rémi Forax Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]

Plus en détail

HADOOP ET SON ÉCOSYSTÈME

HADOOP ET SON ÉCOSYSTÈME HADOOP ET SON ÉCOSYSTÈME Mars 2013 2012 Affini-Tech - Diffusion restreinte 1 AFFINI-TECH Méthodes projets Outils de reporting & Data-visualisation Business & Analyses BigData Modélisation Hadoop Technos

Plus en détail

Davi Trénou. Analyste/Développeur. Concepteur web. Consultant SAP. 2329 Logan, H2K2B4 Montréal, QC, CA. trenou.davi@gmail.

Davi Trénou. Analyste/Développeur. Concepteur web. Consultant SAP. 2329 Logan, H2K2B4 Montréal, QC, CA. trenou.davi@gmail. Analyste/Développeur Concepteur web Consultant SAP Davi Trénou 2329 Logan, H2K2B4 Montréal, QC, CA. trenou.davi@gmail.com 514-692-3288 www.davitrenou.com Sommaire Sommaire Résumé 1 Fiche technique 2 Réalisations

Plus en détail

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de itemis France 2009 All rights reserved 1 Itemis en quelques mots Spécialisé dans l

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire Objectifs Formations Expériences Professionnelles Hassene BELGACEM http://belgacem.hassene.netcv.com S intégrer dans une équipe de développement de haute compétence et participer activement dans la réalisation

Plus en détail

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis Informatique & Systèmes de Communication Stages de 12 à 16 semaines aux Etats-Unis PROGAMME DES STAGES Depuis 2010, les stages en entreprise sont devenus obligatoires dans le cadre des études master. Les

Plus en détail

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES DÉCOUVREZ DES POSSIBILITÉS ILLIMITÉES GRÂCE A L INTÉGRATION À DES SYSTÈMES D ENTREPRISE EXISTANTS FONCTIONNALITÉS Connectivité des systèmes

Plus en détail

Méthode d Évaluation des Coûts liés à l Open Source (ECOS)

Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Méthode d Évaluation des Coûts liés à l Open Source (ECOS) Version 1.0-31/03/2013 1 Table des matières 1 Note de licence 3 2 Historique des modifications 3 3 Introduction 3 3.1 Objet du document..........................

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Hébergement MMI SEMESTRE 4

Hébergement MMI SEMESTRE 4 Hébergement MMI SEMESTRE 4 24/03/2015 Hébergement pour le Web Serveurs Mutualités Serveurs Dédiés Serveurs VPS Auto-Hébergement Cloud Serveurs Mutualités Chaque Serveur héberge plusieurs sites Les ressources

Plus en détail

Logiciels Open Sources et le Secteur Privé

Logiciels Open Sources et le Secteur Privé Logiciels Open s et le Secteur Privé Mai 2004 Pierre-Paul Bertieaux Open Contenu Open : Le secteur privé et le modèle Open Les créateurs d Open Les éditeurs de logiciels Les sociétés de service Utilisation

Plus en détail

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

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

Java - la plateforme

Java - la plateforme Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)

Plus en détail

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

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully Les grandes facettes du développement Web Qui sommes nous? Nicolas Thouvenin Stéphane Gully Projets Web depuis 2000 LAMP, NodeJS HTML, CSS, jquery

Plus en détail

Design. Search. Cloud AMOA ECM. Intégration. IT Solutions. Formation. Développement. Mobilité. Open source. Infogérance. Ergonomie

Design. Search. Cloud AMOA ECM. Intégration. IT Solutions. Formation. Développement. Mobilité. Open source. Infogérance. Ergonomie IT Solutions offrez plusieurs vies à vos contenus TM Formation Open source Search Infogérance Design Intégration Développement Mobilité Ergonomie AMOA ECM Cloud Conseiller, Accompagner, Former Proximité

Plus en détail

Mercredi 15 Janvier 2014

Mercredi 15 Janvier 2014 De la conception au site web Mercredi 15 Janvier 2014 Loïc THOMAS Géo-Hyd Responsable Informatique & Ingénierie des Systèmes d'information loic.thomas@anteagroup.com 02 38 64 26 41 Architecture Il est

Plus en détail

L écosystème Hadoop Nicolas Thiébaud ni.thiebaud@gmail.com. Tuesday, July 2, 13

L écosystème Hadoop Nicolas Thiébaud ni.thiebaud@gmail.com. Tuesday, July 2, 13 L écosystème Hadoop Nicolas Thiébaud ni.thiebaud@gmail.com HUG France 250 membres sur la mailing liste 30 présentations 9 meetups organisés, de 20 à 100 invités Présence de Cloudera, MapR, Hortonworks,

Plus en détail

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds

Cloud. Définition? 08/11/2012. James Urquhart The Wisdom of Clouds Cloud Définition? the market seems to have come to the conclusion that cloud computing has a lot in common with obscenity--you may not be able to define it, but you ll know it when you see it James Urquhart

Plus en détail

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture

Plus en détail

Institut 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 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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Formation : Langues : Types d Intervention et Secteurs d Activité :

Formation : Langues : Types d Intervention et Secteurs d Activité : Ismail HACHOUM 142, Rue Georges Pompidou, 59110 La Madeleine - FRANCE Email : ismail.hachoum@gmail.com Tél: +33(0) 650 198 937 27 ans - Marié Permis B Ingénieur Etudes et Développement Java/JEE Formation

Plus en détail

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

Java Aspect Components (JAC) http://jac.objectweb.org

Java Aspect Components (JAC) http://jac.objectweb.org Java Aspect Components (JAC) JAC http://jac.objectweb.org 2 Lionel Seinturier Lionel.Seinturier@lip6.fr Université Pierre & Marie Curie 23/2/06 Un framework de programmation par aspect pour Java Projet

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA?

Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA? Cloud et SOA La présence du Cloud révolutionne-t-elle l approche SOA? Jean-Marc Pierson pierson@irit.fr IRIT, Université de Toulouse Agenda! Le Cloud! Le SOA! Quelle différence!?! Cloud et SOA! Mise en

Plus en détail

Expert technique J2EE

Expert technique J2EE EHRET Guillaume 25, rue de la Richelandiere 42100 SAINT ETIENNE 32 ans - Célibataire Expert technique J2EE Domaines de compétences Environnement et langages Expertise en programmation Java et en architecture

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

Plus en détail

Java 1.5 : principales nouveautés

Java 1.5 : principales nouveautés Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés

Plus en détail

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant

COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation

Plus en détail

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués Architecture JEE. Objectifs attendus Serveurs d applications JEE Systèmes distribués Architectures JEE Normes JEE couches logicielles, n-tiers framework JEE et design patterns 2007/02/28 Eric Hébert.eheb@yahoo.fr

Plus en détail

Celui qui vous parle. Yann Vigara

Celui qui vous parle. Yann Vigara Celui qui vous parle Yann Vigara Celui qui vous parle Yann Vigara Celui qui vous parle [Spa m] Yann Vigara Fondateur et directeur technique d'atomes Dans l'administration système depuis 1999 Tombé dans

Plus en détail

Le stockage local de données en HTML5

Le stockage local de données en HTML5 Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

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

Suite Jedox La Business-Driven Intelligence avec Jedox

Suite Jedox La Business-Driven Intelligence avec Jedox Suite La Business-Driven Intelligence avec Une solution intégrée pour la simulation, l analyse et le reporting vous offre la possibilité d analyser vos données et de gérer votre planification selon vos

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Intégration de systèmes

Intégration de systèmes Intégration de systèmes Préparé par: Marc Barassi, Michel Fraser, Louis Martin, Martin Simoneau Collaboration spéciale: François Boucher et Richard Boutin 3/18/14 Intégration de systèmes «L ensemble des

Plus en détail