XML-RMI et passage d objets en mode valeur/résultat

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

Download "XML-RMI et passage d objets en mode valeur/résultat"

Transcription

1 UFR 919 Sciences de l ingénieur Master Informatique Spécialité STL ALADYN XML-RMI et passage d objets en mode valeur/résultat version 1.2 du 24/10/2012 Jacques Malenfant professeur des universités Résumé L objectif de ce projet est de comprendre les possibilités offertes par l outil Javassist par ses capacités de génération dynamique de code, et ce par la réalisation d un système d appel de méthodes à distance en XML pour des objets répartis en Java. 1 Appel à distance L appel d une méthode à distance entre deux ordinateurs, clé de la programmation répartie, demeure un maillon relativement simpliste même dans les approches les plus sophistiquées utilisées aujourd hui dans l industrie. En effet, la plupart des protocoles qui ont été implantés à ce jour demeurent limités (comme SOAP, par exemple) ou très lourds (comme Java RMI) dès qu il s agit de passer des objets en paramètres et de les recevoir en résultat. Dans ce projet, nous allons nous poser comme défi d être capables de passer des objets en paramètres à des appels de méthodes à distance, de recevoir des objets en résultat, et de récupérer des modifications à l état des objets passés en paramètres pendant l exécution de la méthode distante. En Java RMI, pour ce faire, il faut que les objets passés en paramètres soient euxmêmes des objets distants, modifiés par des appels de méthodes distants en retour, ce qui est très pénalisant. Nous allons donc tenter une autre approche : un passage par valeur/résultat, c est-à-dire que l objet passé en paramètre sera recréé sur le site distant, modifié localement par la méthode appelée, puis retourné à l appelant pour récupérer ses modifications en fin d exécution de l appel. Dans le domaine des langages de programmation, ce genre d interaction sur les paramètres où la valeur du paramètre n est remise à jour dans le contexte de l appel qu à la fin de l exécution de la méthode appelée est généralement désignée sous le nom «d appel par valeur/résultat». 2 XML-RMI Pour se mettre dans un contexte de programmation répartie, nous allons nous baser sur une approche relativement simple : XML-RPC. XML-RPC est un protocle minimaliste d appel de procédures à distance où la sérialisation des paramètres et du résultat utilise un format XML et où la communication entre hôtes distants se fait par la protocole HTTP. Sa popularité est due à cette simplicité permettant d implanter des services Web à peu de frais. La spécification XML-RPC prévoit uniquement les types suivants comme paramètres ou résultat d un appel : entiers (int), réels (double), booléens (boolean), chaînes de caractères (string),

2 moments dans le temps (datetime ISO8601), binaire (base64), des tableaux (array) de valeurs homogènes des autres types de la norme, et des valeurs structurées struct contenant des champs nommés avec des valeurs hétérogènes des autres types de la norme. Plus précisément, voici un exemple d appel en XML-RPC : <?xml version="1.0"?> <methodcall> <methodname>examples.getstatename</methodname> <params> <param><value><int>41</int></value></param> </params> </methodcall> La spécification complète de XML-RPC se trouve à l URL spec.html. Plutôt que le protocole HTTP pour échanger entre hôtes, nous verrons plus loin que notre utilisation se fera plutôt dans le contexte d une communication par «sockets». Le projet consiste à implanter ce protocole en lui ajoutant un nouveau type de données «object» pour obtenir ce qu on va appeler du XML-RMI. La figure 1 présente un schéma Relax-NG permettant de valider le contenu XML d une requête ou d un résultat en XML-RMI. On constate que la spécification distingue les appels de méthodes des résultats qui seront retournés. Un appel contient un nom de méthode puis les valeurs des paramètres. Les types conservés de la spécification XML-RPC sont, comme indiqué plus haut : int (ou i4), double, boolean (mais avec les valeurs numérioques explicites 0 et 1, et non true et false), string, datetime, base64 (binaire encodé selon la norme), array et struct. En XML-RMI, nous ajoutons le type object pour passer des objets en paramètre ou les retourner en résultat, ce qui sera discuté dans la prochaine section. 3 Des objets en XML pour XML-RMI Le cœur du projet va consister à effectivement réaliser le passage d objets en paramètres pour ce protocole XML-RMI que nous inventons pour l occasion. Le principe est de sérialiser les objets sous la forme d une liste de champs («fields») et d une liste de méthodes. Les champs seront définis par un nom et une valeur initiale, alors que les méthodes seront données sous la forme d un texte représentant le code de la méthode dans un certain langage de programmation, comme Java. Quelle est l idée? D une part, il s agit d être capables de sérialiser des objets pour les passer en paramètre, ce qui se réalise à l aide du schéma RelaxNG de la figure 2. Certes, une telle sérialisation n est pas nouvelle, puisque la norme RMI de Java le fait déjà. Mais ici, on ne sérialise pas l objet, on crée plutôt un représentant de l objet qui va être transféré côté appelé pour y être utilisé tout au long de l exécution de la méthode appelée. Cette idée a plusieurs avantages : ne pas avoir besoin de revenir côté appelant à chaque fois que la méthode appelée veut utiliser l objet passé en paramètre, permettre à l appelant de ne passer qu une partie de l objet à l appelé (ne pas y mettre tous les champs ni toutes les méthodes), ce qui est utile pour des objets dont une partie n a pas à être vue par l appelé (par exemple, pour des raisons de sécurité des données), rendre le code appelé plus indépendant que dans SOAP de la structure du XML passé en paramètre en permettant d appeler les méthodes de l objet plutôt que d accéder directement aux champs, et améliorer l interopérabilité, en ayant la possibilité de passer des objets lors d appels entre objets répartis écrits dans différents langages de programmation (par exemple, un objet en Python peut appeler un objet écrit en Java, en prenant soin de définir en Java les méthodes des objets passés en paramètres en XML).

3 # ***************************************************************************** # ALADYN -- Architectures logicielles pour l auto-adaptabilité dynamique. # Copyright (C) 2012 <Jacques.Malenfant@lip6.fr> # GPL version>=2 # ***************************************************************************** start = methodcall methodresponse #****************************************************************************** # Appel par le client #****************************************************************************** methodcall = element methodcall { methodname, element params { param+? methodname = element methodname { xsd:string {pattern = "[a-za-z0-9_\.,/]+" param = element param { value value = element value { typedvalue text typedvalue = integer boolean stringval # string is a keyword double datetime base64 array struct object integer = element i4 { xsd:int element int { xsd:int boolean = element boolean { "0" "1" stringval = element string { text double = element double { xsd:double datetime = element datetime.iso8601 { xsd:string {pattern = # xsd:date does not allow " T12:10:56" "[0-9]{4[0-1][0-9][0-3][0-9]T[0-2][0-9]:[0-5][0-9]:[0-5][0-9]" base64 = element base64 { xsd:base64binary array = element array { element data { value+ struct = element struct { namedmember+ namedmember = element member { membername & value membername = element name { xsd:nmtoken object = external "object.rnc" #****************************************************************************** # Retour du resultat du client #****************************************************************************** methodresponse = element methodresponse { fault element params { param+ fault = element fault { faultvalue faultvalue = element value { faultstruct faultstruct = element struct { (faultcode, faultstring) (faultstring, faultcode) faultcode = element member { element name { "faultcode" & element value { integer faultstring = element member { element name { "faultstring" & element value { stringval text Figure 1 Le schéma RelaxNG pour XML-RMI.

4 # ***************************************************************************** # ALADYN -- Architectures logicielles pour l auto-adaptabilité dynamique. # Copyright (C) 2005 <Jacques.Malenfant@lip6.fr> # GPL version>=2 # ***************************************************************************** start = object object = element object { attribute oid { xsd:anyuri, attribute type { xsd:nmtoken?, element fields { field*, element methods { method* field = element field { attribute name { xsd:nmtoken, parent value # value pattern as defined in the parent schema method = element method { attribute language { xsd:nmtoken?, # programming language used text # method definition Figure 2 Le schéma RelaxNG pour la représentation des objets en XML-RMI. Bien sûr, une fois l appel reçu côté appelé, l objet en XML ne peut être utilisé tel quel. C est là où la réflexion et les approches vues en ALADYN entrent en jeu pour permettre de créer à la volée un objet Java à partir de l objet XML. Nous allons poser comme hypothèse que toutes les méthodes qui peuvent être appelées par XML-RMI sont définies avec une signature où tous les types des paramètres sont soit des types primitifs du protocole XML-RPC, soit des objets dont le type est donné par une interface Java. Cette interface peut être déterminée soit par le contexte, lorsque l objet correspond à un paramètre de la méthode appelée sur le serveur, ou être nommée explicitement dans l attribut type (optionnel) de la représentation XML-RMI lorsque l objet est utilisé dans un autre contexte (dans un tableau, comme valeur d un champ dans un objet,...). L objet XML devra donner une définition pour chacune des méthodes apparaissant dans l interface Java en question. En utilisant Javassist à la réception de l appel en XML-RMI, vous allez créer une classe pour représenter cet objet puis instancier cette classe et initialiser l objet obtenu avant de l utiliser dans l appel à la méthode de l objet appelé. Par exemple, soit un objet réparti offrant une méthode display de la forme suivante : public void display(stringable s) { System.out.println("Un point 2D : " + s.tostring()) ; L interface Stringable typant le paramètre s est définie de la manière suivante : public interface Stringable { public String tostring() ; Un exemple de contenu XML-RMI pour l appel de la méthode display avec un paramètre objet correspondant à l interface Stringable prend la forme suivante :

5 <methodcall> <methodname>display</methodname> <params> <param> <value> <object oid=" type="stringable"> <fields> <field name="x"><value><double>10.0</double></value></field> <field name="y"><value><double>20.0</double></value></field> <field </fields> <methods> <method language="java"> public String tostring() { return this.x + this.mark + this.y ; </method> </methods> </object> </value> </param> </params> </methodcall> On voit que cet objet est un point 2D avec trois champs représentant l abcisse, l ordonnée et un caractère utilisé comme séparateur pour produire une représentation sous forme de chaîne de caractères avec le format suivant : 10.0@20.0. Mais la production de ce format à partir des données est masquée par la méthode tostring de l interface Stringable. Notez que le schéma RelaxNG de XML-RMI diffère de celui de XML-RPC en deux points. D abord, on introduit le type object comme déjà mentionné. Mais il y a une autre modification au niveau de la réponse. Là où XML-RPC ne prévoit qu une valeur de retour, nous permettons plusieurs «paramètres» en retour. Par convention, le premier paramètre en retour sera toujours le résultat de la méthode appelée, mais l appelé poura inclure tout ou partie des objets passés en paramètres lors de l appel pour retourner à l appelant les nouvelles valeurs des champs de ces objets après exécution de la méthode. Ainsi, l appelant pourra mettre à jour les valeurs des champs dans les objets originaux de son côté. Mais pour cela, il faut qu il puisse identifier les objets retournés. C est pour cela que la représentation du type object prévoit un identifiant d objets unique de la forme d une URI. L appelant peut donc mémoriser lors de l appel la correspondance entre les identifiants uniques et les références locales à ses objets, et au retour utiliser cette correspondance pour mettre à jour l objet original. Ainsi, dans l exemple précédent, la réponse aurait la forme suivante : <methodresponse> <params> <param> <value>void</value> </param> <param> <value> <object oid=" <fields> <field name="x"><value><double>10.0</double></value></field> <field name="y"><value><double>20.0</double></value></field> <field name="mark"><value><string>@</string></value></field>

6 </fields> <methods></methods> </object> </value> </param> </params> </methodresponse> Dans cet exemple, on constate que le retour est void, car la méthode display n a pas de valeur de retour (mais cela aurait pu être une valeur au sens value de XML-RMI dans un autre cas). L objet apparaissant dans le retour est identique à celui passé en paramètre lors de l appel car on présume que display ne modifie pas la valeur de son paramètre. Néanmoins, l appelé peut le retourner et l appelant le traiter sans chercher à savoir s il a été modifié ou non. Au retour, seuls les champs sont utiles, et on arrive à déterminer qu il s agit d un objet précédemment passé en paramètre par l identifiant unique oid qui est le même qu un de ses objets locaux. Une manière systématique d implanter un objet en Java pouvant être passé en paramètre via XML-RMI serait de lui faire implanter l interface suivante : public interface XMLRMISerializable { public String toxml(class<?> inter) ; public void updatefromxml(org.w3c.dom.element thexml) ; La méthode toxml sert à produire la sérialisation en XML souhaitée en fonction de l interface attendue par le service (on pourra ainsi produire un XML différent en fonction de l interface demandée), alors que la méthode updatefromxml met à jour l objet à l aide de la réprésentation en DOM de l objet en XML extraite de la réponse de l appel distant. De cette manière, le déroulement standard d un appel distant serait : 1. Encoder l appel en XML-RMI en utilisant les méthodes toxml des objets à passer en paramètres pour obtenir leur représentation en XML. 2. Envoyer l appel sur le «socket» de l objet appelé. 3. Récupérer la réponse en XML pour en décoder le résultat et mettre à jour pour chacun des objets en retour les objets originaux en appelant la méthode updatefromxml de ces derniers. Cette mécanique de mise à jour en retour ne fonctionenra que dans le cadre d un appel. Le résultat de la méthode, bien que pouvant être un objet, ne sera pas considéré comme partagé entre l appelé et l appelant. Ceci pour limiter la difficulté du projet, sinon il faudra gérer ces objets partagés sur l ensemble d une conversation entre deux ou plusieurs objets. Mais si vous souhaitez vous lancer dans cette direction, pourquoi pas? Par ailleurs, pour ne pas avoir à réimplanter la sérialisation des champs et la récupération des valeurs en retour pour chaque objet pouvant être passé en paramètre ou reçu en résultat, l annotation suivante permettra de retouver les champs à sérialiser et à mettre à jour au XMLRMIField { String serializationname() ; // nom à utiliser dans la sérialisation XML-RMI String serializationtype() ; // type XML-RMI à utiliser dans la sérialisation Par exemple, la classe Point suivante pourrait avoir servi à produire l objet passé en paramètre de l exemple d appel précédent :

7 public class Point protected double a protected double b protected char marque ; Grâce à ces annotations, il vous sera possible d implanter une fois pour toute par réflexion la sérialisation des champs et la récupération des valeurs en retour. Notez bien que cette annotation permet d utiliser un nom de champ et un type de valeur en XML qui est différent de celui utilisé en Java ; vous devrez faire les conversions nécessaires dans les deux sens. 4 Intégration dans un modèle d objets répartis Pour mettre en œuvre le concept d objets en XML dans un contexte réaliste, vous devrez le tester avec un modèle d objet réparti volontairement simple pour rester réalisable dans le cadre de ce projet. En Java, le modèle d objets répartis le plus simple est celui proposé autour de l appel de méthodes à distance RMI. Un objet réparti serveur RMI implante (au moins) une interface Java qui hérite elle-même directement ou indirectement de l interface java.rmi.remote, ce qui lui permet de publier sa propre référence sur l annuaire RMI (RMIRegistry) et à ses cleints de la récupérer par une requête à cet annuaire. L appel à distance lui-même se fait en utilisant la référence RMI ainsi obtenue, et le protocole d échange entre machines virtuelles (et éventuellement hôtes) demeurant caché dans l implantation de RMI. Pour notre XML-RMI, l idée sera la suivante : la référence à un objet réparti se fera grâce à l identification Inet ou l adresse IP de l hôte exécutant la MV Java où se trouvbe l appelé et du numéro de port sur lequel cet objet va écouter les requêtes qui lui seront faites sous forme d appel de méthode à distance utilisant le protocole XML-RPI décrit précédemment. Un objet réparti sera donc un objet possédant son propre fil d exécution («thread») et qui va répétitivement écouter sur un «socket» les requêtes en XML-RMI, les exécuter puis retourner le résultat dans le format XML-RMI à son appelant. Des informations sur la programmation de communication par «socket» en Java sont largement disponibles sur le WWW. Pour simplifier la réalisation du projet, vous pourrez considérer que l adresse IP de l hôte sur lequel se trouve l objet et le numéro de port sur lequel ce dernier écoute sont des informations connues à l avance et considérée comme constante par le client. Les étudiants les plus performants pourront étendre leur projet en ajoutant un annuaire pour le protocole XML-RMI permettant de centraliser les références et les requêtes pour la connexion en s inspirant de l annuaire RMI Registry de Java. 5 Réalisations attendues Nous vous demandons de réaliser le projet sous Eclipse en prévoyant tout le code nécessaire pour lancer l application et dans votre rendu vous devrez également joindre des tests unitaires JUnit dans des sous-packages tests. Modalités de remise des projets : Le projet se fait obligatoirement en binôme. Tous les fichiers du projet doivent comporter les noms (authors) de tous les auteurs.

8 Le projet est à rendre le vendredi 16 novembre 2012 à minuit au plus tard sous la forme d une archive tgz si vous travaillez sous Unix ou zip si vous travaillez sous Windows que vous m enverrez à Jacques.Malenfant@lip6.fr comme attachement fait proprement avec votre programme de gestion de courrier préféré. Donner pour nom à votre archive vos numéros de dossier d étudiants sous la forme n-n (ex. : tgz). Attention, peu importe le système d exploitation sur lequel vous travaillez, il faudra que votre projet s exécute correctement sous Eclipse en Mac Os X (que j utilise) Votre projet utilisera JUnit pour faire des tests de vos classes. Il comportera aussi des classes concrètes (application) permettant de réaliser les tests. Tous vos tests seront regroupés dans un répertoire spécifique tests au même niveau que le répertoire src dans votre projet Eclipse. Utilisez exactement la même structure de paquetage dans le répertoire tests que dans le répertoire src. Le code doit être documenté en Javadoc (générée et incluse dans votre livraison dans un répertoire doc au même niveau que votre répertoire src) et commenté. Le code doit également être correctement formatté (indentation,...). L évaluation comportera une soutenance d une quinzaine de minutes où vous devrez démontrer votre projet (prévoyez dans le code envoyé tout ce qu il faut pour faire une telle démonstration) et répondre à des questions sur ce dernier. Les soutenances auront lieu dans la semaine du 19 novembre 2012 selon un horaire de passage qui sera publié le moment venu sur le site de l UE. Tout retard à ces soutenances entraînera son annulation et une pénalité sera appliquée sur l évaluation du projet. Tout manquement à ces règles élémentaires entraînera une pénalité dans la note du projet!

Remote Method Invocation (RMI)

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

Programmation en Java IUT GEII (MC-II1) 1

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

TP1. Outils Java Eléments de correction

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

RMI le langage Java XII-1 JMF

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

Java Naming and Directory Interface

Java Naming and Directory Interface Introduction Java Naming and Directory Interface Gaël Thomas gael.thomas@lip6.fr Université Pierre et Marie Curie Master Informatique M2 Spécialité SAR Java Naming and Directory Interface (JNDI) Java Standard

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

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

Introduction à Eclipse

Introduction à Eclipse Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

as Architecture des Systèmes d Information

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

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Intégration d'applications à gros grain Unité d'intégration : le service (interface + contrat) Motivations Motivations Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat) Contraintes Applications conçues indépendamment, sans avoir prévu une intégration

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

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris : Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens

Plus en détail

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

Le cadre des Web Services Partie 1 : Introduction

Le cadre des Web Services Partie 1 : Introduction Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 1 : Introduction Alexandre Dulaunoy adulau@foo.be Sécurité en ingénierie du Logiciel p.1/21 Agenda (partie 1) 1/2 Introduction Services

Plus en détail

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et

Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Licence 3 CDA 2010/2011 Client FTP Java Maxence Jaouan Sommaire Introduction... 3 Le but du projet... 3 Les moyens utilisés... 3 Informations sur le client FTP... 4 Pourquoi une version Linux et Windows?...

Plus en détail

OS Réseaux et Programmation Système - C5

OS Réseaux et Programmation Système - C5 OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

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

Héritage presque multiple en Java (1/2)

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

RAPPORT DE CONCEPTION UML :

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

Programmer 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) 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é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

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

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Polytech Montpellier IG3 2009-2010. PROJET C Réseaux sociaux : recherche de composantes fortement connexes

Polytech Montpellier IG3 2009-2010. PROJET C Réseaux sociaux : recherche de composantes fortement connexes Polytech Montpellier IG3 2009-2010 PROJET C Réseaux sociaux : recherche de composantes fortement connexes Contexte du projet Les réseaux sociaux tels que facebook sont de plus en plus présents dans notre

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

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

Prise en compte des ressources dans les composants logiciels parallèles

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

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Une introduction à Java

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

Programmation par composants (1/3) Programmation par composants (2/3)

Programmation par composants (1/3) Programmation par composants (2/3) Programmation par composants (1/3) La programmation par composant vise le développement de logiciel par aggrégation de briques logicielles existantes est indépendante de la POO La programmation par composant

Plus en détail

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples

Plus en détail

GEI 465 : Systèmes répartis

GEI 465 : Systèmes répartis Université de Sherbrooke GEI 465 : Systèmes répartis Travaux à effectuer Ahmed Khoumsi Automne 2004 Page 1 Les deux premiers travaux que vous effectuerez vous donneront, respectivement, l occasion d utiliser

Plus en détail

IPS-Firewalls NETASQ SPNEGO

IPS-Firewalls NETASQ SPNEGO IPS-Firewalls NETASQ SPNEGO Introduction Un utilisateur doit gérer de nombreux mots de passe. Un mot de passe pour la connexion au poste de travail, un mot de passe pour la messagerie et n mots de passe

Plus en détail

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée)

Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Développement d un logiciel de messagerie instantanée avec Dotnet (version simplifiée) Propriétés Description Intitulé long Formation concernée Matière Présentation Développement d un logiciel de messagerie

Plus en détail

Chapitre 10. Les interfaces Comparable et Comparator 1

Chapitre 10. Les interfaces Comparable et Comparator 1 Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Projet Active Object

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

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free.

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant. http://robert.cireddu.free. 2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES 2.2 Architecture fonctionnelle d un système communicant Page:1/11 http://robert.cireddu.free.fr/sin LES DÉFENSES Objectifs du COURS : Ce cours traitera essentiellement

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Approche Contract First

Approche Contract First Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 INTRODUCTION Bonjour à tous; Aujourd hui je publie une nouvelle version de l adaptation de la Sync Framework Toolkit,

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

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6 1 BERNIER François http://astronomie-astrophotographie.fr Table des matières Installation d un serveur HTTP (Hypertext Transfer

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

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

Mise en œuvre des serveurs d application

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

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Projet gestion d'objets dupliqués

Projet gestion d'objets dupliqués Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Gestion distribuée (par sockets) de banque en Java

Gestion distribuée (par sockets) de banque en Java Gestion distribuée (par sockets) de banque en Java Université Paris Sud Rappel sur la solution locale de gestion simple de banque L objet de cet exercice était de créer une application java qui implante

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

Plus en détail

Gestion d identités PSL Exploitation IdP Authentic

Gestion d identités PSL Exploitation IdP Authentic Gestion d identités PSL Exploitation IdP Authentic Entr ouvert SCOP http ://www.entrouvert.com Table des matières 1 Arrêt et démarrage 2 2 Configuration 2 2.1 Intégration à la fédération............................

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

WASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996

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

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt benjamin.damecourt@me.com. UFR SITEC Master 2 EESC 11 janvier 2012

Dossier. Développer en Java sur téléphone mobile. Benjamin Damécourt benjamin.damecourt@me.com. UFR SITEC Master 2 EESC 11 janvier 2012 Dossier Développer en Java sur téléphone mobile Benjamin Damécourt benjamin.damecourt@me.com UFR SITEC Master 2 EESC 11 janvier 2012 Table des matières Introduction 2 Pré-requis 3 Hello World! 5 Installation

Plus en détail

Mobile OGSI.NET: Grid Computing on Mobile Devices

Mobile OGSI.NET: Grid Computing on Mobile Devices Mobile OGSI.NET: Grid Computing on Mobile Devices David C.Chu Université de Californie, Berkeley Marty Humphrey Université de Virginie Publié en Novembre 2004 lors de la 5ième conférence IEEE/ACM International

Plus en détail

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Manuel d intégration API SOAP SMS ALLMYSMS.COM Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...

Plus en détail

GENERALITES. COURS TCP/IP Niveau 1

GENERALITES. COURS TCP/IP Niveau 1 GENERALITES TCP/IP est un protocole inventé par les créateurs d Unix. (Transfer Control Protocol / Internet Protocole). TCP/IP est basé sur le repérage de chaque ordinateur par une adresse appelée adresse

Plus en détail

Manipulation 4 : Application de «Change».

Manipulation 4 : Application de «Change». Manipulation 4 : Application de «Change». Première partie : Cette manipulation a pour but d utiliser un service Web afin d obtenir les taux de change appliqués entre les différentes monnaies référencées

Plus en détail

Cours CCNA 1. Exercices

Cours CCNA 1. Exercices Cours CCNA 1 TD3 Exercices Exercice 1 Enumérez les sept étapes du processus consistant à convertir les communications de l utilisateur en données. 1. L utilisateur entre les données via une interface matérielle.

Plus en détail

18 TCP Les protocoles de domaines d applications

18 TCP Les protocoles de domaines d applications 18 TCP Les protocoles de domaines d applications Objectifs 18.1 Introduction Connaître les différentes catégories d applications et de protocoles de domaines d applications. Connaître les principaux protocoles

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Tp 1 correction. Structures de données (IF2)

Tp 1 correction. Structures de données (IF2) Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que

Plus en détail

F. Barthélemy. 17 mai 2005

F. Barthélemy. 17 mai 2005 Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Chapitre I Notions de base et outils de travail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

.NET remoting. Plan. Principes de.net Remoting

.NET remoting. Plan. Principes de.net Remoting Plan.NET remoting Clémentine Nebut LIRMM / Université de Montellier 2 de.net Remoting côté serveur côté client.net Remoting en ratique Les canaux de communication L'activation L'invocation Les aramètres

Plus en détail

25 septembre 2007. Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national

25 septembre 2007. Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national 25 septembre 2007 Migration des accès au Registre national en protocole X.25 vers le protocole TCP/IP, pour les utilisateurs du Registre national Plan Introduction Les catégories d utilisateurs Migration

Plus en détail

CORBA. (Common Request Broker Architecture)

CORBA. (Common Request Broker Architecture) CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,

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

Web Tier : déploiement de servlets

Web Tier : déploiement de servlets Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation

Plus en détail

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052 CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052 Une machine virtuelle Linux, appelé SiteDev (version 9 de Redhat) peut être roulé avec Virtual PC

Plus en détail

Open Source Job Scheduler. Installation(s)

Open Source Job Scheduler. Installation(s) Open Source Job Scheduler Installation(s) Installations Standard Configuration Superviseur Agent SOS-Paris 2 Pré-requis o Base de données o MySQL, MSACCESS, Oracle o JDBC ou ODBC o Connecteurs o Mysql

Plus en détail

Hébergement de sites Web

Hébergement de sites Web Hébergement de Solutions complètes et évolutives pour l hébergement de sites Web dynamiques et de services Web sécurisés. Fonctionnalités Serveur Web Apache hautes performances Apache 1. et.0 1 avec prise

Plus en détail

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7 Cahier des charges driver WIFI pour chipset Ralink RT2571W sur hardware ARM7 RevA 13/03/2006 Création du document Sylvain Huet RevB 16/03/2006 Fusion des fonctions ARP et IP. SH Modification des milestones

Plus en détail

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean. Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa (buffa@unice.fr), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime

Plus en détail

Module BD et sites WEB

Module BD et sites WEB Module BD et sites WEB Cours 8 Bases de données et Web Anne Doucet Anne.Doucet@lip6.fr 1 Le Web Architecture Architectures Web Client/serveur 3-tiers Serveurs d applications Web et BD Couplage HTML-BD

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Systèmes d'informations historique et mutations

Systèmes d'informations historique et mutations Systèmes d'informations historique et mutations Christophe Turbout SAIC-CERTIC Université de Caen Basse-Normandie Systèmes d'informations : Historique et mutations - Christophe Turbout SAIC-CERTIC UCBN

Plus en détail

Architecture des ordinateurs

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

Plus en détail

Les Architectures Orientées Services (SOA)

Les Architectures Orientées Services (SOA) Les Architectures Orientées Services (SOA) Ulrich Duvent Guillaume Ansel Université du Littoral Côte d Opale 50, Rue Ferdinand Buisson BP 699 62228 Calais Cedex Téléphone (33) 03.21.46.36.92 Télécopie

Plus en détail

«Clustering» et «Load balancing» avec Zope et ZEO

«Clustering» et «Load balancing» avec Zope et ZEO «Clustering» et «Load balancing» avec Zope et ZEO IN53 Printemps 2003 1 Python : généralités 1989 : Guido Van Rossum, le «Python Benevolent Dictator for Life» Orienté objet, interprété, écrit en C Mêle

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Cours Bases de données

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

Intergiciel - concepts de base

Intergiciel - concepts de base Intergiciel - concepts de base Ada Diaconescu, Laurent Pautet & Bertrand Dupouy ada.diaconescu _at_ telecom-paristech.fr Rappel : système réparti Système constitué de multiples ressources informatiques

Plus en détail