Instrumentation de code Java
|
|
- Julie Véronique St-Pierre
- il y a 8 ans
- Total affichages :
Transcription
1 Instrumentation de code Java Mickaël Delahaye Étude bibliographique Master 2 Recherche Informatique 2007 Résumé Cette étude bibliographique présente un état de l art de l instrumentation de code Java. L instrumentation a pour objectif la collecte d informations dynamiques sur le programme. Elle peut se réaliser à plusieurs niveaux (code source, bytecode, machine virtuelle) et à plusieurs moments (avant, au moment ou en cours d exécution). Encadrant : François Bodin, bodin@irisa.fr Projet CAPS
2 Table des matières Introduction 2 1 Instrumentation statique Au niveau du code source Au niveau du bytecode Approche orientée aspect Le paradigme Points de jonction Exemple d utilisation Pour l instrumentation Instrumentation dynamique Instrumentation du bytecode au chargement Gestion d événements Solutions hybrides Tissage d aspect dynamique Conclusion 9 1
3 Introduction La collecte d informations sur les programmes est aujourd hui essentielle. Elle permet de déterminer des propriétés sur le comportement, les performances, la sécurité, etc. Alors que l analyse statique déduit des propriétés du programme à partir du texte du programme, l analyse dynamique se fonde sur l exécution. De nombreuses analyses dynamiques sont mises en oeuvre par instrumentation du code : couverture du code, trace d appels, temps d exécution, création et synchronisation des threads, accès aux données, etc. Même si les données sont toujours collectées à l exécution, l instrumentation de code peut être réalisée de manières variées suivant les propriétés que l on souhaite collecter et l impact sur les performances du code. Selon la manière dont l instrumentation est réalisée, on qualifie l instrumentation de statique ou bien de dynamique. L instrumentation statique analyse le code du programme et y ajoute des sondes avant son exécution. L instrumentation dynamique opère quant à elle à l exécution du programme, par exemple à l aide d interface de surveillance de la machine virtuelle. La plateforme Java repose sur une machine virtuelle exécutant du bytecode. Aussi, il paraît naturel de demander à la machine virtuelle de collecter les données dynamiques de l exécution. De plus, alors que les fichiers objet sont peu instrumentés (si ce n est par le compilateur), le bytecode est souvent instrumenté, notamment parce qu il est commun à toutes les architectures matérielles. Ainsi, l instrumentation de programme Java peut se faire à trois niveaux : le code source, le bytecode et la machine virtuelle. L instrumentation du code source relève bien sûr de l approche statique, et l instrumentation de la machine virtuelle de l approche dynamique. Mais l instrumentation du bytecode peut être réalisée avant l exécution, pendant le chargement des classes ou bien même à l exécution. Ce rapport a pour objectif de montrer les différentes méthodes d instrumentation, de savoir quelles informations dynamiques peuvent être collectées, mais également de connaître leur impact sur le programme instrumenté. Il présente les deux voies d instrumentation, c est-à-dire l instrumentation statique et l instrumentation dynamique, avec leurs principes, leurs caractéristiques et leurs limitations. 1 Instrumentation statique En Java, l instrumentation statique peut avoir lieu soit au niveau du code source, soit au niveau du bytecode en conservant la même portabilité. La principale contrainte de l instrumentation statique est de disposer de tout 2
4 le code à instrumenter avant son exécution, ce qui est parfois plus facile au niveau du bytecode en raison des licences. Les deux premiers paragraphes de cette partie sont consacrés aux solutions existantes d instrumentation du code source et du bytecode. Le dernier paragraphe se détache des considérations de lieu d instrumentation pour explorer le paradigme de la programmation orientée aspect. 1.1 Au niveau du code source L instrumentation du code source commence par une analyse du code source, à l aide d analyseurs lexical et syntaxique, puis place des sondes dans le code source. Ainsi, Cenqua Clover Code Coverage for Java [7], par exemple, analyse le code source Java, à l aide d analyseurs générés par ANTLR (ANother Tool for Language Recognition). Cette technique lui permet de découvrir naturellement les structures de contrôles de flot pour placer les sondes permettant de découvrir les branches mortes. Mais cette technique est surtout employée avec d autres langages. Par exemple, le système de mesures de performance TAU [15] instrumente les sources C, C++ et Fortran. Les événements instrumentés sont principalement l entrée/sortie de procédure et la gestion des threads. Même si on peut choisir quelles procédures instrumenter, on peut remarquer que l analyse du code source mise en place est très limitée. L instrumentation du code source permet de réaliser une analyse statique poussée avant de placer les sondes. De plus, le contrôle de la machine virtuelle, intégré à l API Java, permet de récupérer des données d exécution pourtant totalement transparente du point de vue du langage (notamment via les classes Runtime et Thread et le paquetage java.lang.management) : nombre de threads actifs, utilisation du tas, mémoire utilisé, taille du tas, etc. L instrumentation statique du code source est assez peu utilisée dans le monde Java, au profit de l instrumentation du bytecode, plus simple à analyser et tout aussi portable. 1.2 Au niveau du bytecode L injection de bytecode est une technique très utilisée aujourd hui, que ce soit pour le tissage d aspect, la mesure de performance ou l analyse de couverture. Le bytecode Java, désigné par l extension.class, est assez facile à analyser, mais certaines informations peuvent êtres perdues. La modification du bytecode est assuré par des bibliothèques, comme BCEL [3](Apache Jakarta), SERP [17] ou le plus récent ASM, permettant 3
5 de manipuler ces fichiers.class. Leur rôle principal est d extraire les données du bytecode et de pouvoir reconstruire un fichier.class avec ses mêmes données. La bibliothèque ASM [5], utilisée notamment par AspectJ (voir la Section 1.3), est particulièrement adaptée à l instrumentation de code : gestion transparente de la pool de constantes ; grande légèreté par rapport à BCEL et SERP (surtout utile dans le cas d une instrumentation dynamique) ; modèle original basé sur les événéments (utilisé aussi bien pour lire que pour écrire). Pour instrumenter une méthode, il suffit d intercepter un événement et de le modifier avant de le renvoyer. La modification des fichiers de bytecode a cependant une limitation : toute instrumentation nécessite la réécriture totale du fichier. En effet, un fichier.class contient exactement une classe ou interface Java, en conservant la structure objet de la classe. Mais le point noir de ce format, du point de vue de l instrumentation, est le partage des constantes et des noms entre les méthodes de la classe. En effet, le fichier.class contient un pool de constantes, qui contient les constantes proprement dites (chaînes, flottants et grands entiers), mais aussi les noms des classes, des méthodes et des champs utilisés. Comme ce pool est commun à toutes les méthodes, l instrumentation, qui appelle une fonction pour enregistrer les informations dynamiques, oblige à réécrire tout le fichier. Les instructions présentes dans la description des méthodes d un fichier.class permettent de réaliser une analyse de flot de contrôle ou de donnée. Ainsi, EMMA [10] peut vérifier la couverture par bloc de base en instrumentant le bytecode. Cependant, certaines informations peuvent être perdues en fonction d options de compilation : noms des variables, numéros de ligne, etc. De plus, si le compilateur Java réalise des optimisations, les informations dynamiques collectées seront très difficiles à interpréter. On notera tout de même que le compilateur Sun Microsystems (depuis la JDK 1.3) a abandonné les optimisations importantes du bytecode, comme l inlining, laissant l optimisation à la machine virtuelle. 1.3 Approche orientée aspect Lorsqu on instrumente un programme, on ajoute à l existant une nouvelle préoccupation, un nouvel aspect : la collecte d informations. Cette section présente en quoi le paradigme de la programmation orientée aspect peut répondre à notre attente. 4
6 1.3.1 Le paradigme La programmation orientée aspect a pour objectif d augmenter la modularisation et séparer les préoccupations. En effet, on constate que certaines préoccupations, dites transverses (cross-cuting concerns), tel que le logging, la sécurité ou la persistance, se retrouve dispersé dans l ensemble du programme. Dans la programmation orientée apect, les préoccupations transverses sont réalisés séparemment, puis elles sont entremelées, tissées, dans le code métier du programme, pour obtenir le programme fonctionnel. Le tisseur d aspect se charge d insérer le code des préoccupations tranverses à des points particuliers, appelés points de jonction (joint points). Pour chaque fragment de code d une préoccupation, appelé greffon (ou advice), l utilisateur peut choisir un point d action (pointcut), c est-à-dire un ensemble des points de jonction sélectionnés grâce à un motif. Le tisseur d aspect injecte ensuite les greffons aux emplacements sélectionnés par les points d action. Le tissage d aspect peut se faire à plusieurs moments : statiquement, avant ou après la compilation en bytecode, ou dynamiquement à l exécution. Ici, seul le tissage statique nous intéresse, la Section 2.4 discute du tissage dynamique. Dans le monde Java, une solution de programmation orientée objet se distingue particulièrement. En effet, AspectJ [1] est un projet soutenu par IBM et BEA Systems, qui permet le tissage statique d aspects et depuis la fusion avec le projet AspectWerkz [2] le tissage dynamique. À l origine, AspectJ tissait le code source, mais il il s est finalement tourné vers un tissage du bytecode (aujourd hui en utilisant ACM) Points de jonction Les tisseurs d aspect offrent à peu près tous les mêmes points de jonctions sur le papier : appel de méthode ou de constructeur ; exécution de méthode ou de constructeur ; accès à un champs (set/get) ; initialisation d un objet, initialisation statique d une classe ; exécution d une clause catch Exemple d utilisation La Figure 1 montre comment on peut très rapidement mettre en place un aspect qui enregistre le temps d exécution de toutes les méthodes publiques des classes du paquetage fr.irisa (et de ses sous-paquetages). 5
7 Fig. 1 Mesure du temps d exécution de méthode aspect P r o f i l i n g { private f i n a l static PrintStream output = new PrintStream (new FileOutputStream ( " p r o f i l e " ) ) ; } Object around ( ) : execution ( public f r. i r i s a... (.. ) ) { long time = System. c u r r e n t T i m e M i l l i s ( ) ; try { return proceed ( ) ; } f i n a l l y { time = System. c u r r e n t T i m e M i l l i s ( ) time ; output. p r i n t l n ( t h i s J o i n P o i n t S t a t i c P a r t. g e t S i g n a t u r e ( ) + " executed in " + time + "ms. " ) ; } } Pour l instrumentation Du point de vue de l instrumentation, la programmation orientée aspect arrive avec des outils de qualité. À partir d un greffon, toutes les informations dynamiques collectables par les autres techniques statiques sont disponibles, mais elles ne peuvent être collectées qu à certains moments de l exécution. Même si les points d actions peuvent être choisis assez précisément (classe, paquetage, méthode ou champ), le tisage d aspect ne peut pas, par principe, vérifier le passage du contrôle de flot dans les structures de contrôle, ou suivre l évolution de la valeur d une variable. On perd ainsi les avantages que peut procurer une analyse statique du code avant l instrumentation. 2 Instrumentation dynamique L instrumentation dynamique d un programme repose principalement sur deux techniques. La première consiste à instrumenter le bytecode des classes Java au cours de leur chargement. La seconde, en revanche, utilise la machine virtuelle pour intercepter des événements qui nous intéressent, grâce à des hooks. Mais il existe une troisième voie d instrumentation utilisant à la fois l instrumentation du bytecode et de la machine virtuelle. Cette partie présente les trois solutions et termine par un point de vue «orienté aspect» de l instrumentation dynamique. 6
8 2.1 Instrumentation du bytecode au chargement Sur toutes les machines virtuelles, il existe au moins un moyen simple permettant de modifier le bytecode au chargement des classes. Cette technique permet de bénéficier de tous les avantages de l instrumentation statique du bytecode, mais ne s effectue que sur les classes à charger et sans avoir à les sélectionner a priori. Pour instrumenter le bytecode au chargement d une classe, il est assez évident pour un développeur Java de surcharger la classe ClassLoader. La sous-classe de ClassLoader devra modifier les octets du fichier.class chargé avant de les renvoyer à la superclasse. Cette technique nécessite un moyen d imposer ce nouveau ClassLoader. Certaine machine virtuelle accepte un argument en ligne de commande pour choisir le ClassLoader par défaut. Mais le plus simple est encore d utiliser un lanceur, c est-à-dire un petit programme Java qui crée ce nouveau ClassLoader et charge ensuite le programme client avec lui. Depuis Java 5, la machine virtuelle Java propose une manière standard pour instrumenter le bytecode grâce à un agent d instrumentation programmé en Java [16]. Ainsi, d après D. Schwarz [13], un agent d instrumentation utilisant une bibliothèque de manipulation du bytecode (voir la Section 1.2), dans son cas BCEL [3], peut extraire de l information du bytecode et modifier le bytecode, en conséquence, au chargement des classes Gestion d événements La gestion d événements requiert que la machine virtuelle dispose d une interface pour intercepter des événements comme le chargement d une classe ou l exécution d une fonction. Cette technique est limitée par le nombre d événements observés, par leurs précisions. Il existe des interfaces natives (accessibles en C/C++) pour surveiller l exécution de programme Java. Avant Java 5, le standard (supporté à la fois par les machines virtuelles de Sun Microsystems, BEA Systems et IBM) s appelait JVMPI (Java Virtual Machine Profiler Interface). Il permet de placer des hooks notamment sur les événements suivants : le chargement de classe ; le démarrage et fermeture de thread ; l entrée et la sortie de méthode ; le chargement et le déchargement de méthode compilée (JIT). La limitation de JVMPI réside donc dans le nombre limité d événements observés. Mais, cette interface permet de consulter directement un certain nombre d informations sur la machine virtuelle (trace d appels notamment), 7
9 et permet d interagir avec l objet source de l événement grâce à l interface native Java (JNI). Certaines informations demeurent cependant indisponibles. Ainsi, lorsque le hook intercepte un appel de fonction, les paramètres effectifs ne sont pas connus, ce qui rend impossible tout contrôle des flux de données. Pour lever cette limitation, le système de mesures de performance TAU [14], qui peut mesurer les performances d un système parallèle programmé en Java, utilisant MPI (bibliothèque de communication), est obligé d utiliser une implémentation C de MPI instrumentée. La surveillance de la machine virtuelle paraît une bonne solution pour réaliser des mesures de performances. Malheureusement, comme indiqué dans les articles [11] et [9] (voir la Section 2.3), lorsque JVMPI ou un de ses équivalents place un hook sur l entrée et la sortie de méthodes, ce n est pas pour une méthode en particulier mais pour toutes les méthodes, ce qui obligent à maintenir des tables de hâchage, entrainant un surcoût à l exécution. Avec l arrivé de Java 5, JVM TI (JVM Tool Interface) prend le relais en tenant compte de ce problème. Comme indiqué dans [12], il offre moins d événements. Cette interface mise d avantage sur les solutions hybrides à base d injection de bytecode. 2.3 Solutions hybrides Les solutions mixtes utilisent des interfaces de la machine virtuelle pour instrumenter le bytecode, en utilisant exactement les mêmes techniques que dans la première méthode, mais cette fois-ci à partir d un environnement natif (en C/C++). De nombreux articles [9, 4, 11] décrivent des machines virtuelles personnalisées, ce qui peut entraîner la perte de la portabilité. D. Brear [4], par exemple, utilise une machine virtuelle Java, s exécutant sur une machine virtuelle Java, qui fragmente le bytecode utilisateur pour pouvoir placer des sondes dans chaque bloc de base, pendant l exécution. Le défaut majeur de cette technique est bien sûr le surcoût à l exécution. La technologie HotSwap intégrée à certaines machines virtuelles permet de modifier le code des classes chargées au cours de l exécution à partir d une interface de déboggage. Selon M. Dmitriev [8], cette technologie peut être utilisée pour l instrumentation de code. Grâce à la fonction RedefineClasses de JVMDI (JVM Debugger Interface), une autre interface expérimentale qui existait en parallèle de JVMPI, il est possible d instrumenter le bytecode des classes déjà chargées. Cependant, les performances de JMVDI sont perfectibles [9]. Avec JVMTI, les plateformes compatibles Java 5 promettent de meilleures performances que JVMDI. 8
10 Ces méthodes ont quelques avantages par rapport aux méthodes simples : leur performance par rapport à la gestion d événements ; la possibilité de réaliser une analyse statique du bytecode, qui se limite aux classes chargées ; la possibilité d instrumenter le bytecode durant l exécution. Leur défaut est qu elle repose sur des interfaces peu implémentées (JVMDI), ou des machines virtuelles non portables. 2.4 Tissage d aspect dynamique Comme on l a vu dans la Section 1.3, l instrumentation de code peut se voir comme un aspect. Si l instrumentation peut être dynamique, le tissage peut l être également. Le tissage dynamique est surtout utilisé en associationant avec les serveurs d applications. La principale différence avec le tissage statique réside dans la manière dans les aspects sont associé au code métier. Dans AspectJ, par exemple, l approche statique spéficie dans la définition de l aspect avec quelles classes il doit être tissés. Mais les solutions dynamiques, comme JBoss AOP, AspectWerkz [2] ou encore AspectJ 5, préfèrent utilisés un document XML pour associer les aspects au code métier. Le tissage proprement est réalisé au niveau du bytecode. Les tisseurs d aspects se prémunisent des problèmes de compatibilité en autorisant plusieurs méthodes d instrumentation des classes au chargement. AspectWerkz, par exemple, en possède plus de dix, notamment : un agent JVMTI pour les plateformes compatibles Java 5 ; un debugger JVMDI pour quelques machines virtuelles Sun Microsystems ; une classe ClassLoader personnalisée ; differents systèmes propriétaires, par exemple pour JRockit, la machine virtuelle de BEA Systems pour processeur Intel. Comme le démontre [6], le tissage dynamique peut profiter des possibilités du HotSwap. L avantage étant de pouvoir tisser pendant l exécution du programme. Conclusion Cette étude présente les différentes méthodes d instrumentation de code, qu elle soit réalisée avant ou au cours de l exécution. On peut voir que, parmis toutes les méthodes décrites, aucune ne domine plus que les autres. 9
11 L instrumentation statique, d abord, permet de placer les sondes avec un grand discernement basé sur une analyse statique, qui peut être intra- et interprocédurale. Malheureusement, il n est pas toujours facile de rassembler tout le code de l application pour instrumentation. Quant à l analyse du bytecode, elle se rélève parfois compliquée, proche des techniques de reverse engeneering, parce que la compilation peut perdre certaines données. Ensuite, les solutions dynamiques, qui sont souvent plus pratiques à mettre en place, sont affectées par un surcoût à l exécution et une perte de portabilité (code natif, machine virtuelle spécialisée, etc.). Enfin, le tissage d aspect, qui peut prendre en charge l instrumentation de code, n est en fait qu une couche d harmonisation au dessus des mêmes techniques que l instrumentation (injection de bytecode, HotSwap...). C est pourquoi son utilisation est simple, mais aussi plus limitée dans les événements observables. L objectif du stage est de trouver la ou les instrumentations adéquates pour récolter des informations permettant de décider si une optimisation réalisée dans le code source est pertinante. Références [1] AspectJ. [2] AspectWerkz. [3] Apache Jakarta BCEL. [4] Douglas J Brear, Thibaut Weise, Tim Wiffen, Kwok Cheung Yeung, Sarah A M Bennett et Paul H J Kelly : Search strategies for Java bottleneck location by dynamic instrumentation, [5] Eric Bruneton, Romain Lenglet et Thierry Coupaye : ASM : a code manipulation tool to implement adaptable systems. In Proceedings of the ASF (ACM SIGOPS France) Journées Composants 2002 : Systèmes à composants adaptables et extensibles (Adaptable and extensible component systems), [6] S. Chiba, Y. Sato et M. Tatsubori : Using HotSwap for implementing dynamic AOP systems, [7] Cenqua Clover for Java. [8] M. Dmitriev : Application of the HotSwap technology to advanced profiling. In First International Workshop on Unanticipated Software Evolution (USE2002)., [9] M. Dmitriev : Profiling Java applications using code hotswapping and dynamic call graph revelation. In WOSP 04 : Proceedings of the 4th 10
12 international workshop on Software and performance, pages ACM Press, [10] EMMA. [11] M. Harkema, D. Quartel, B. M. M. Gijsen et R. D. van der Mei : Performance monitoring of Java applications. In WOSP 02 : Proceedings of the 3rd international workshop on Software and performance, pages ACM Press, [12] K. O Hair : The JVMPI transition to JVMTI. Sun Developper Network, [13] D. Schwarz : Peeking inside the box : Attribute-oriented programming with Java 1.5. ONJava.com, [14] Sameer Shende et Allen D. Malony : Integration and applications of the TAU performance system in parallel Java environments. In JGI 01 : Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande, pages ACM Press, [15] Sameer S. Shende et Allen D. Malony : The TAU parallel performance system. Int. J. High Perform. Comput. Appl., 20(2): , [16] Java 2 Platform SE 5.0 API Specification : java.lang.instrument. [17] A. White : SERP. 11
Annexe : La Programmation Informatique
GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de
Plus en détailJava c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java
1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailLa 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étailSolution 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étailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailÉ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étailJava - 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étailVulgarisation 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É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étailMachines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailTP1 : 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étailJava pour le Web. Cours Java - F. Michel
Java pour le Web Cours Java - F. Michel Introduction à JEE 6 (ex J2EE) Historique Qu'est-ce que JEE JEE : Java Entreprise Edition (ex J2EE) 1. Une technologie outils liés au langage Java + des spécifications
Plus en détailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailProjet de développement
Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2012-2013 http://miageprojet2.unice.fr/index.php?title=user:philippecollet/projet_de_développement_2012-2013 Plan r Application
Plus en détailMachines 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étailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailEnvironnements 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étailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailPrise en compte des ressources dans les composants logiciels parallèles
Prise en compte des ressources dans les composants logiciels parallèles Aperçus de l action RASC et du projet Concerto F. Guidec Frederic.Guidec@univ-ubs.fr Action RASC Plan de cet exposé Contexte Motivations
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailSGDN. Projet: JAVASEC
SGDN Projet: JAVASEC Type : rapport d étude Rapport d étude sur le langage Java Référence : JAVASEC_NTE_001 Nb pages : 227 Date : 14 octobre 2009 TABLE DES MATIÈRES 1 Introduction 8 1.1 Objet du document................................
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailLe moteur de workflow JBPM
Le moteur de workflow Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com http://litis.univ-lehavre.fr/ duvallet/
Plus en détailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailRN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java
RN2-Programmation Orientée Objet - JAVA CH 1 à la POO et Java Licence Professionnelle 2006 Agnès Guerraz INRIA Rhône-Alpes agnes.guerraz@inria.fr LP UPMF, Grenoble Septembre 2006 Ce cours reprend en grande
Plus en détailEfficient Object Versioning for Object- Oriented Languages From Model to Language Integration
Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012 Etude de techniques efficaces de versionnement d objets pour les langages orientés
Plus en détailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailPlan 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étailAnalyse de performance, monitoring
Analyse de performance, monitoring Plan Principes de profilage Projet TPTP dans Eclipse Utilisation des profiling tools de TPTP Philippe Collet Master 1 Informatique 2009-2010 http://deptinfo.unice.fr/twiki/bin/view/minfo/gl
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailIntroduction 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étailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailInitiation à 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étailSSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...
Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009
Plus en détailProjet de Veille Technologique
Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...
Plus en détailProjet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn
1 Organisation Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique Cours 1 : principes généraux - svn Cours 2 : Redmine et gestion de projet Cours 3 : Introduction à Eclipse
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détailCours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailModule.NET 3 Les Assemblys.NET
Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly
Plus en détailGénération de code binaire pour application multimedia : une approche au vol
Génération de binaire pour application multimedia : une approche au vol http://hpbcg.org/ Henri-Pierre Charles Université de Versailles Saint-Quentin en Yvelines 3 Octobre 2009 Présentation Présentation
Plus en détailProjet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
Plus en détailCAHIER DES CHARGES D IMPLANTATION
CAHIER DES CHARGES D IMPLANTATION Tableau de diffusion du document Document : Cahier des Charges d Implantation EVRP Version 6 Etabli par DCSI Vérifié par Validé par Destinataires Pour information Création
Plus en détailRENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir
WHITE PAPER RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir JAVA APPLICATION MANAGEMENT ET APPLICATION J2EE. Table des matières INTRODUCTION...2 NAVIGATEURS...2 SERVEURS WEB...3 JVM...3
Plus en détailRAPPORT DE CONCEPTION UML :
Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailConfiguration Matérielle et Logicielle AGORA V2
Configuration Matérielle et Logicielle AGORA V2 Sommaire A- PREAMBULE 2 B - LE SERVEUR : 3 PLATES-FORMES SERVEURS DE DONNEES SUPPORTEES... 3 MOTEUR DE BASE DE DONNEES... 3 PROTOCOLES RESEAUX... 3 VERSION
Plus en détailConditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.
Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide
Plus en détailPolycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5
UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailWEA Un Gérant d'objets Persistants pour des environnements distribués
Thèse de Doctorat de l'université P & M Curie WEA Un Gérant d'objets Persistants pour des environnements distribués Didier Donsez Université Pierre et Marie Curie Paris VI Laboratoire de Méthodologie et
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détail2 Chapitre 1 Introduction
1 Introduction Ce livre présente les Enterprise JavaBeans 2.0 et 1.1 qui constituent la troisième et la deuxième version de la spécification des Enterprise JavaBeans. Tout comme la plate-forme Java a révolutionné
Plus en détailIntroduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza
Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailTP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Plus en détailVers une approche Adaptative pour la Découverte et la Composition Dynamique des Services
69 Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services M. Bakhouya, J. Gaber et A. Koukam Laboratoire Systèmes et Transports SeT Université de Technologie de Belfort-Montbéliard
Plus en détailSoftware Engineering and Middleware A Roadmap
Software Engineering and Middleware A Roadmap Ecrit par: Dr. Wolfgang Emmerich Présenté par : Mustapha Boushaba Cours : IFT6251 Wolfgang Emmerich Enseignant à University College London: Distributed Systems
Plus en détailSQL Parser XML Xquery : Approche de détection des injections SQL
SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des
Plus en détailDG-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étailBusiness Process Execution Language
Business Process Execution Language Rapport du projet de systèmes distribués d information Markus Lindström 6 mai 2009 Motivation personnelle Le sujet que j ai retenu et présenté dans le cadre du cours
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailLa 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étailRemote Method Invocation Les classes implémentant Serializable
Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailVers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne
Vers l urbanisation agile d un client mobile ios/android natif, économique, flexible et pérenne Développement des Systèmes Dynamiques, Programmation Sémantique Opérationnelle, Programmation Fonctionnelle
Plus en détailQuelques 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étailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailInstitut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki
Institut Supérieur de Gestion Cours pour 3 ème LFIG Java Enterprise Edition Introduction Bayoudhi Chaouki 1 Java EE - Objectifs Faciliter le développement de nouvelles applications à base de composants
Plus en détailProgrammeur Java 1.4 et 5.0
Emmanuel Puybaret les Cahiers du Programmeur Java 1.4 et 5.0 Avec la contribution de Jean-Marie Thomas ISBN : 2-212-11478-8 Principes du langage et installation de l environnement 2 Desktop Application
Plus en détailFormation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux
Formation Webase 5 Ses secrets, de l architecture MVC à l application Web Adrien Grand Centrale Réseaux Sommaire 1 Obtenir des informations sur Webase 5 2 Composants de Webase 5 Un
Plus en détailJava 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étailHéritage presque multiple en Java (1/2)
Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen
Plus en détailDéveloppement d un interpréteur OCL pour une machine virtuelle UML.
ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,
Plus en détailNFP111 Systèmes et Applications Réparties
NFP111 Systèmes et Applications Réparties 1 de 34 NFP111 Systèmes et Applications Réparties Cours 7 - CORBA/Partie 1 Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon
Plus en détailVérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Plus en détailEntraî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étailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détail27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
Plus en détailCours en ligne Développement Java pour le web
Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité
Plus en détailSupervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailPlan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.
global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés
Plus en détailDynamic Computing Services solution de backup. White Paper Stefan Ruckstuhl
Dynamic Computing Services solution de backup White Paper Stefan Ruckstuhl Résumé pour les décideurs Contenu de ce White Paper Description de solutions de backup faciles à réaliser pour des serveurs virtuels
Plus en détailCours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com
Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies
Plus en détailLANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation
ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier
Plus en détail