LOG4430 : Architecture logicielle et conception avancée

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

Download "LOG4430 : Architecture logicielle et conception avancée"

Transcription

1 LOG4430 : Architecture logicielle et conception avancée Abdou Maiga Bibliothèques et le chargement de composantes dynamiques Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc, 2009; Khomh, 2010; Maiga, 2010

2 Plan 1. Introduction 2. Bibliothèques et cadriciels Types d interconnexions Problèmes légaux Problèmes techniques 3. Sous-classage Crochets et gabarits Patrons de conception 4. Chargement dynamique Méta-classes Protocoles de méta-objets (MOP) MOP à la compilation, à l exécution

3 1. Introduction Aucun logiciel de grande taille n est développé depuis zéro aujourd hui Sauf dans le cas de développement en «salle blanche» Utilisation de «Bouts de code» Structures + fonctions / Classes + méthodes Bibliothèques

4 1. Introduction Utilisation de «Bouts de code» Structures + fonctions / Classes + méthodes Bibliothèques Problèmes Légaux Techniques

5 2. Bibliothèques et cadriciels (1/16) «Bibliothèque [library] logicielle est un ensemble de fonctions utilitaires, regroupées et mises à disposition afin de pouvoir être utilisées sans avoir à les réécrire» [Wikipedia] Plutôt que de coder une procédure courante dans chaque programme en ayant besoin, on rassemble ces procédures dans des bibliothèques. Si un programme a une fonction à remplir et que celle-ci se trouve en bibliothèque, il l'utilisera directement. Les bibliothèques logicielles se distinguent des exécutables dans la mesure où elles ne représentent pas une application Exemples La bibliothèque de classes Java (!) La STL de C++ (!!)

6 2. Bibliothèques et cadriciels (2/16) L'organisation classique des bibliothèques se fait par découpage thématique des fonctions, suivant les services qu'elles rendent: Bibliothèques de bas niveau ou bibliothèques système : elles fournissent des services d'interface avec le système d'exploitation, avec les périphériques, ou fournissent des outils génériques : bibliothèques d'entrées/sorties : fonctions de lecture et d'écriture de fichiers, de périphériques d'entrée/sortie comme le clavier, l'écran, etc. gestion de structures de données système,

7 2. Bibliothèques et cadriciels (3/16) Bibliothèques de haut niveau, aussi appelées bibliothèques métier, elles interagissent avec celles de bas niveau : les fonctions qu'elles contiennent sont propres à une activité spécifique: boîtes à outils graphiques : ensemble de fonctions permettant de gérer, d'animer et d'afficher des objets graphiques complexes Exemple : OpenGL bibliothèques d'opérateurs de traitement d'image : ensemble de fonctions destinées à structurer l'information dans une image à des fins d'analyse, gestion de structures de données utilisateur.

8 2. Bibliothèques et cadriciels (4/16) Autres bibliothèques : combinateurs en programmation fonctionnelle, protocoles de méta programmation. Les bibliothèques offrent une interface de programmation (API), permettant aux programmeurs de choisir les fonctions. Les API se présentent comme une liste des noms des fonctions ou/et classes disponibles, avec une documentation sur les paramètres à leur fournir et sur les résultats retournés.

9 2. Bibliothèques et cadriciels (5/16) «Un cadriciel [framework] est un espace de travail modulaire. C'est un ensemble de bibliothèques, d'outils et de conventions permettant le développement de programmes.» [Wikipedia] Un framework fournit: un ensemble de fonctions facilitant la création de tout ou d'une partie d'un système logiciel un guide architectural en divisant le domaine visé en modules.

10 2. Bibliothèques et cadriciels (6/16) Un cadriciel fournit un contexte où les composants sont ré-utilisés. Une bibliothèque est limitée à l'ensemble des fonctions du système, par contre un cadriciel peut être employé par extension pour inclure également l'architecture logicielle préconisée pour cette bibliothèque (eg. organisation en couches, utilisation du modèle MVC, etc) Exemples La STL de C++ JUnit Eclipse Equinox OSGi

11 2. Bibliothèques et cadriciels (7/16) On trouve différents types de cadriciels : Cadriciel d'infrastructure système : pour développer des systèmes d'exploitation, des interfaces graphiques, des outils de communication. Exemple : Framework.Net, Eclipse, NetBeans, Struts Cadriciel d'intégration intergicielle (middleware) : pour fédérer des applications hétérogènes. Pour mettre à dispositions différentes technologies sous la forme d'une interface unique. Exemple : Ampoliros avec ses interfaces RPC, SOAP, XML Cadriciel d'entreprise : pour développer des applications spécifiques au secteur d'activité de l'entreprise. Exemple: MDAL Cadriciel orientés Système de gestion de contenu Exemple: Joomla, itseasy, WMaker

12 2. Bibliothèques et cadriciels (8/16) Types d interconnexions Chainage des liens (linking) Duplication de processus (fork) Protocole de communication (IPC) Sous-classage Chargement dynamique

13 2. Bibliothèques et cadriciels (9/16) Chainage des liens (linking) (A contraster avec les langages avec machine virtuelle) Typiquement en C/C++ Le chainage fusionne les différents fichiers compilés et les bibliothèques pour former un exécutable Plusieurs fichiers.o, un seul fichier «.exe» Dans les langages avec machine virtuelle (java), les classes générées par le compilateur sont chargées par la machine virtuelle (JVM) qui réalise aussi du chainage. Ce chainage tardif permet une grande flexibilité. Ce chainage tardif rend possible des mécanismes comme la réflexion, largement utilisés dans les servlets par exemple.

14 2. Bibliothèques et cadriciels (10/16) Project fork consiste a: Prendre une copie du code source d'une bibliothèque et commencer un développement indépendant sur celui-ci. Abouti à la création d un logiciel distinct. Duplication de processus (fork) (Dans presque n importe quel langage) Réelle duplication du processus Appel au système pour la création d un nouveau processus final StringBuffer commandline = new StringBuffer(); commandline.append("..\\dot\\bin\\dotty "); commandline.append(afilepath); final Process process = Runtime.getRuntime().exec(commandLine.toString()); final OutputMonitor errorstreammonitor = new OutputMonitor(, process.geterrorstream(), ); errorstreammonitor.start(); final OutputMonitor inputstreammonitor = new OutputMonitor(,process.getInputStream(), ); inputstreammonitor.start(); try { process.waitfor(); catch (final InterruptedException ie) { ie.printstacktrace( Output.getInstance().errorOutput()); if (process.exitvalue()!= 0) {

15 2. Bibliothèques et cadriciels (11/16) Protocole de communication (IPC) (Dans presque n importe quel langage) Utilisation d appels à des procédures distantes (RPC) Utilisation de protocole bien définis : CORBA, COM Engouement pour les services Web public void example(string wsdluri) throws Exception { TraderServicePort trader = null; if (wsdluri == null) { trader = new TraderServiceImpl().getTraderServicePort(); else { trader = new TraderServiceImpl(wsdlURI).getTraderServicePort(); String [] stocks = {"BEAS", "MSFT", "AMZN", "HWP" ; for (int i=0; i<stocks.length; i++) { int shares = (i+1) * 100; log("buying " + shares + " shares of" + stocks[i]+"."); TradeResult result = trader.buy( stocks[i], shares); log("result traded "+result.getnumbertraded() +" shares of "+result.getstocksymbol()); for (int i=0; i<stocks.length; i++) { int shares = (i+1) * 100; log("selling + shares + " shares of" + stocks[i]+"."); TradeResult result = trader.sell( stocks[i], shares); log("result traded "+result.getnumbertraded() +" shares of "+result.getstocksymbol()); [http://edocs.bea.com/wls/docs70/webserv/client.html# ]

16 2. Bibliothèques et cadriciels (12/16) Problèmes légaux [Daniel M. German and Ahmed E. Hassan ; License Integration Pattern: Dealing with Licenses Mismatches in Component-based Development ; ICSE, May 2009, ACM Press] Licences BSD GPL Apache

17 2. Bibliothèques et cadriciels (13/16) Problèmes légaux Une licence est un ensemble de droits Chaque droit est un ensemble de conjonctions Exemple Licence «BSD originale» Droit de «distribuer des produits dérivés en binaire» Conjonctions «La redistribution [ ] doit reproduire la note de droit d auteur ci-dessus [ ]» «Tous les produits publicitaires doivent inclure [ ]» «Ni le nom de l auteur ni ceux des contributeurs [ ]»

18 2. Bibliothèques et cadriciels (14/16) Problèmes légaux Soit un programme S composé de deux composants C 1 et C 2 S, C 1 et C 2 ont chacun une licence Ces licences ne sont compatibles que si leurs droits sont compatibles

19 2. Bibliothèques et cadriciels (15/ 16) Problèmes légaux Exemple S est MPL 1.1 et C 1 et C 2 sont GPL 2 GPL stipule que «Tous produits dérivés de C 1 (C 2 ) doit être sous licence GPL 2» S est MPL 1.1, et MPL 1.1 impose aussi que tout produit dérivés de S soit sous MPL1.1 ou futures MPL L intégration de C 1 et C 2 dans S est impossible

20 2. Bibliothèques et cadriciels (16/ 16) Problèmes techniques «Liens» à la compilation, à l exécution Performance Maintenabilité Sécurité

21 3. Sous-classage (1/7) En deux mots public class OutputMonitor extends Thread { Dans les langages orientés objets, la forme la plus courante public void run() { d utilisation de «try { composant» int value = 0; public OutputMonitor( ) { this.setname(threadname); this.setpriority(thread.max_priority); byte[] bytes; char lastwrittenchar; while ((value = this.inputstream.read()) > 0) { synchronized (System.err) { synchronized (System.out) { if (value!= 13 && value!= 10) { catch (final IOException ioe) { lastwrittenchar = (char) value;

22 3. Sous-classage (2/7) Crochets (hooks) et gabarits (templates) Points chauds (hot spots) = crochets Points gelés (frozen spots) = gabarits Crochets sont des méthodes abstraites ou qui peuvent/doivent être spécialisés par le client Gabarits sont des méthodes qui appellent des crochets et qui décrivent le «quoi»

23 3. Sous-classage (3/7) Exemple JUnit, un cadriciel pour écrire et exécuter des tests unitaires

24 3. Sous-classage (4/7) public abstract class TestCase extends Assert implements Test { Gabarit Crochets public void runbare() throws Throwable { setup(); try { runtest(); finally { teardown(); protected void setup() throws Exception { protected void teardown() throws Exception {

25 3. Sous-classage (5/7) Patrons de conception [Gamma et al.] Usine abstraite (Abstract Factory) Adapteur (Adapter) Pont (Bridge) Constructeur (Builder)

26 3. Sous-classage (6/7) Patrons de conception [Gamma et al.] Décorateur (Decorator) Méthode usine (Factory Method) Itérateur (Iterator) Observateur (Observer)

27 3. Sous-classage (7/7) Patrons de conception [Gamma et al.] Méthode gabarit (Template Method) Visiteur (Visitor)

28 4. Chargement dynamique (1/16) Imaginez que vous développez une application constituée de 3 modules : acquisition, analyse, présentation. Pour une raison bien précise, vous décidez que le module Analyse sera une DLL (windows) ou un Shared object, so (UNIX) et qui devra "publier" 3 fonctions : Init, Process et Close. Pourquoi? Tout simplement parce que vous souhaitez "ouvrir" votre application à d'autres types de traitement possible. Typiquement, vous codez une fois pour toute les modules d'acquisition et de présentation mais vous faites une documentation qui explique comment d'autres personnes peuvent développer des modules d'analyse. Pour le reste, on imagine assez bien qu'au démarrage, l'application puisse, via un fichier.ini faire l'inventaire de toutes les DLLs/ so qui se trouvent dans un certains sous-répertoire. A la fin du démarrage de l'application, tous les traitements sont listés par exemple dans un menus "Traitements" de l'application. Par la suite, l'utilisateur final choisit un traitement possible dans la liste. A ce moment, l'application charge dynamiquement la DLL/ so nécessaire, invoque la fonction de traitement en lui passant par exemple les données acquises. Le traitement s'effectue et la fonction retourne les données traitées. La DLL/ so est ensuite relâchée et de son côté, le module présentation récupère ces donnees et vit sa vie avec... [http://pagesperso-orange.fr/philippe.baucour/pratiquer/dynamicload/dynamicload.html ]

29 4. Chargement dynamique (2/16) En deux mots Dans différents langage de programmation (Lisp, C++, Java, Smalltalk ), c est la possibilité de lier un «bout de code» au programme pendant l exécution du programme En Java, c est la possibilité de lier une classe, créer une En Java, c est la possibilité de lier une classe, créer une instance de cette classe et exécuter une de ces méthodes pendant l exécution du programme

30 4. Chargement dynamique (3/16) En deux mots Exemple, classe enveloppante (wrapper) public final class WrapperMain { public static void main(string[] args) { try { Class toberun = Class.forName(args[0]); Method mainmethod = toberun.getmethod("main", new Class[] { String[].class ); final long starttime = System.currentTimeMillis(); mainmethod.invoke(null, new Object[] { new String[0] ); final long endtime = System.currentTimeMillis(); System.out.println(); System.out.println(endTime - starttime); catch (final Exception e) { e.printstacktrace(output.getinstance().erroroutput());

31 4. Chargement dynamique (4/16) Réflexion est un processus qui permet à un programme de s examiner, et éventuellement de se modifier, Inventée par: Brian Smith et Jim des Rivieres En deux mots Introspection Capacité d un programme à s observer Intercession Capacité d un programme à se modifier

32 4. Chargement dynamique (5/16) Meta-classes La classe «Class» est la classe dont les instances sont des classes La classe «Class» est en fait un méta-classe Aristote (Ἀριστοτέλης) * Une méta-classes est une classe qui décrit les classes, comme une classe décrit des instances

33 4. Chargement dynamique (6/16) Meta-classes Une méta-méta-classes est une classe qui Une méta-méta-méta-classes est une classe qui [http://www.developper.com]

34 4. Chargement dynamique (7/16) Meta-classes Java permet l introspection Class mandataire (Proxy) pour approximer l intercession : interception des appels de méthodes InvocationHandler handler = new MyInvocationHandler(...); Class proxyclass = Proxy.getProxyClass(Foo.class.getClassLoader(), new Class[] { Foo.class ); Foo proxy = (Foo) proxyclass.getconstructor(new Class[] { InvocationHandler.class ).newinstance(new Object[] { handler ); Assert.assertTrue(proxy instanceof Foo); try { Foo f = (Foo) proxy; Catch (final ClassCastException e) { [http://www.webreference.com/internet/reflection/2.html]

35 4. Chargement dynamique (8/16) Meta-classes Class gestionnaire d appels (InvocationHandler) [http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/invocationhandler.html]

36 4. Chargement dynamique (9/16) Meta-classes Smalltalk 80 permet l intercession Tout est objet Deux types d objets : ceux qui peuvent avoir des instances et ceux qui ne peuvent pas Chaque classes a sa propre méta-classe Les méta-classes sont toutes instances de la classe «Metaclass» Les méta-classes sont des sous-classes de «Class»

37 4. Chargement dynamique (10/16) Meta-classes Smalltalk 80 permet l intercession Pas de méthodes «statiques» Les méthodes de classes sont définies dans la méta-classe (comme les méthodes d instance sont définies dans la classe) Idem pour les variables d instance de classe static Les variables de classes sont des variables d instances pour les classes (!) DILBER: 1989 United Feature Syndicate, Inc.

38 4. Chargement dynamique (11/16) public class AClass { private static int ReferenceCount = 0; public AClass() { AClass.ReferenceCount++; public static int getreferencecount() { return AClass.ReferenceCount; Object subclass: #ReferenceCountingClass instancevariablenames: classvariablenames: ReferenceCount pooldictionaries: ReferenceCountingClass class>>new ReferenceCount := ReferenceCount + 1. ^self basicnew initialize Compter le nombre d instances créées en Java et en Smalltalk

39 4. Chargement dynamique (12/16) Protocoles de métaobjets (MOP) Règles pour changer la sémantique du langage «Interpréteur»

40 4. Chargement dynamique (13/16) MOP à la compilation OpenJava public class Hello instantiates VerboseClass { public static void main( String[] args ) { hello(); static void hello() { System.out.println( "Hello, world." ); import openjava.mop.*; import openjava.ptree.*; public class VerboseClass instantiates Metaclass extends OJClass { public void translatedefinition() throws MOPException { OJMethod[] methods = getdeclaredmethods(); for (int i = 0; i < methods.length; ++i) { Statement printer = makestatement( "System.out.println( \"" + methods[i] + " is called.\" );" ); methods[i].getbody().insertelementat( printer, 0 ); Michiaki Tatsubori ; An Extension Mechanism for the Java Language ; Master of Engineering Dissertation, Graduate School of Engineering, University of Tsukuba, February 1999

41 4. Chargement dynamique (14/16) MOP au chargement des classes Javassist MOP à l exécution MetaXa (MetaJava) Autre type de chargement dynamique: Programmation orientée aspects

42 4. Chargement dynamique (15/16) Réflexion vs MOPs Avec la réflexion il est possible de: implémenter des proxy pour intercepter les appels de méthodes (voir java.lang.reflect.invocationhandler.) Changer la définition d'une classe (y compris ses méthodes) à l'exécution (avant qu ils soient chargées dans la machine virtuelle). Ce qui permet d'ajouter un comportement supplémentaire aux méthodes. Cependant il n est pas possible de modifier les meta-classes Avec les MOPs, les meta-classes peuvent être modifiées, par exemple du comportement peut leur être ajouté sous forme de méthodes.

43 4. Chargement dynamique (16/16) Réflexion et MOPs Problèmes de sécurité Restrictions d accès suivant la visibilité des entités Problèmes de performance Eviter d en abuser, car plus lent que les accès directs Problèmes de maintenance Eviter d en abuser car ajoute de la complexité à l application

LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique

Plus en détail

LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique

Plus en détail

Architecture matériel et logiciel 2

Architecture matériel et logiciel 2 Architecture matériel et logiciel 2 Bibliothèques et chargement de composantes dynamiques Venera Arnaoudova 1/27/10 1 Réécrire versus réualiser Critères La taille du logiciel La foncaonnalité L experase

Plus en détail

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static

Plan. Environnement Client/Serveur. Cours 6 Rappels Java (suite) Appel de méthode à distance. Utilité. static Plan Environnement Client/Serveur Cours 6 Rappels Java (suite) Appel de méthode à distance kn@lri.fr http://www.lri.fr/~kn 1 Rappels sur les systèmes d'exploitations / Communication par mémoire partagée

Plus en détail

Familiarisation avec Eclipse / Netbeans

Familiarisation avec Eclipse / Netbeans Institut Galilée LEE Année 011-01 Master T.P. 0 Familiarisation avec Eclipse / Netbeans Lien important contenant le pdf du cours et du TP, et ensuite des sources : http://www-lipn.univ-paris13.fr/~fouquere/mpls

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

Chapitre 11. Conception de logiciels Intranet : patrons et canevas NSY 102. Synthèse 1. SINGLETON 3 1.1. DEFINITION 3 1.2. REFERENCES DANS LE COURS 3

Chapitre 11. Conception de logiciels Intranet : patrons et canevas NSY 102. Synthèse 1. SINGLETON 3 1.1. DEFINITION 3 1.2. REFERENCES DANS LE COURS 3 NSY102-Chapitre-11_Synthese.doc 1/12 06/01/2014 21:48:04 Chapitre 11 Synthèse 1. SINGLETON 3 1.1. DEFINITION 3 1.2. REFERENCES DANS LE COURS 3 2. OBSERVER/OBSERVABLE 3 2.1. DEFINITION 3 2.2. REFERENCES

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

POO LES EXCEPTIONS LES EXCEPTIONS

POO LES EXCEPTIONS LES EXCEPTIONS CHAPITRE 7 : LES EXCEPTIONS Objectifs spécifiques 1. Introduire la notion d exception, les règles d utilisation et de définition des exceptions. 2. Distinguer entre les exceptions prédéfinies et les exceptions

Plus en détail

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI

objectif : plan : Java, CORBA et RMI A. Le Grand,1997 1 JAVA, CORBA et RMI JAVA, CORBA et RMI objectif : développer des applications client/serveur incluant des objets répartis Java / CORBA : client/serveur hétérogènes Java / RMI : client/serveur homogènes plan : l architecture

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée Master 1 T.P. 1 Bases Java - Eclipse / Netbeans PDJ Environnements Java Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement d exécution

Plus en détail

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

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

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions.

Exceptions. Fiabilité d un logiciel. Fiabilité en Java. Erreurs/exceptions. Localisation du traitement des erreurs/exceptions. Fiabilité d un logiciel Exceptions Université Française d Egypte Version O 5.7 5/10/15 Richard Grin Robustesse : fonctionne correctement, même en présence d événements exceptionnels Correction : donne

Plus en détail

Gestion des tests avec JUnit

Gestion des tests avec JUnit Gestion des tests avec JUnit JUnit Outil de gestion des tests unitaires pour les programmes Java, JUnit fait partie d un cadre plus général pour le test unitaire des programmes, le modèle de conception

Plus en détail

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns?

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns? Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Design Patterns D où viennent les design patterns? D où viennent

Plus en détail

Objets distribués et Appel de Méthodes à Distance 2009-2010

Objets distribués et Appel de Méthodes à Distance 2009-2010 Objets distribués et Appel de Méthodes à Distance 2009-2010 1 Objectif : construire une application où différents modules peuvent être situés sur des machines différentes, en utilisant un modèle à objets

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr Remerciements Michel Riveill 1

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 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

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

Remote Method Invocation en Java (RMI)

Remote Method Invocation en Java (RMI) Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

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

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année

Java RMI. Programmation des applications réparties. Olivier Flauzac URCA. Master EEAMI-Informatique première année Java RMI Programmation des applications réparties Olivier Flauzac URCA Master EEAMI-Informatique première année Olivier Flauzac (URCA) PAR : Java RMI MSTIC-INFO 1 1 / 30 1 RMI 2 Architecture 3 Développement

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base SOA et Services Web 23 octobre 2011 1 SOA: Concepts de base 2 Du client serveur à la SOA N est Nest pas une démarche entièrement nouvelle: années 1990 avec les solutions C/S Besoins d ouverture et d interopérabilité

Plus en détail

Auto-évaluation Programmation en Java

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

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Ce support est très largement inspiré du livre et du cours de S. Krakowiak S. Krakowiak Java Remote Method Invocation 1 / 25 Intérêt des objets pour la construction d applications

Plus en détail

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP

JVM. RMI - couche de référence. RMI - couche de transport TCP/IP Chapitre 9 Dans ce chapitre nous abordons le mécanisme RMI (Remote Method Invocation) permettant le développe ment des systèmes répartis. Nous expliquerons comment les classes d un serveur peuvent être

Plus en détail

LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cadres de référence et plugiciels Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc,

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java 1 / 24 1 Vue générale La technologie Java Le langage Java La machine virtuelle Java Résumé Plan 2 Hello World Prérequis Premier programme : 3 étapes Résumé 3 HelloWorld en

Plus en détail

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

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

Plus en détail

LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cadres de référence et plugiciels Département de génie informatique et de génie logiciel École Polytechnique de Montréal Guéhéneuc

Plus en détail

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException...

Les exceptions. Cours 12. vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... Cours 12 Les exceptions vous les avez pratiquées sans le savoir... ArrayIndexOfBoundsException NullPointerException ClassNotFoundException... F.Gayral 1 Les exceptions, vous connaissez... public class

Plus en détail

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

Modèle client-serveur

Modèle client-serveur Modèle client-serveur Daniel Hagimont IRIT/ENSEEIHT 2 rue Charles Camichel - BP 7122 31071 TOULOUSE CEDEX 7 Daniel.Hagimont@enseeiht.fr http://hagimont.perso.enseeiht.fr 1 Plan Principes généraux Modèle

Plus en détail

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java

Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java Systèmes Distribués Des protocoles client serveur au paradigme objets distribués avec Java (application avec Java RMI) Éric Leclercq Département IEM / Laboratoire LE2i Décembre 2010 émail : Eric.Leclercq@u-bourgogne.fr

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java

Objectifs du cours: Gestion des exceptions. CSI1502 Principes fondamentaux en conception des logiciels. Prise en charge d`exception en Java CSI1502 Principes fondamentaux en conception des logiciels Chapter 8: Gestion des exceptions Objectifs du cours: Gestion des exceptions Comprendre ce qui suit: Le fonctionnement de «try-catch» Propagation

Plus en détail

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

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

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

Plus en détail

Logiciel de reconnaissance vocale Sphinx-4

Logiciel de reconnaissance vocale Sphinx-4 Rapport Travail pratique Logiciel de reconnaissance vocale Sphinx-4 Philippe Galley, Blaise Grand & Samuel Rossier 19 mai 2006 1 Table des matières 1 Introduction 1 2 Informations générales sur Sphinx-4

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

JUnit 3.8 / JUnit 4. P. Graffion

JUnit 3.8 / JUnit 4. P. Graffion JUnit 3.8 / JUnit 4 P. Graffion février 2015 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Utiliser Java sans BlueJ

Utiliser Java sans BlueJ Conception objet en Java avec BlueJ une approche interactive Utiliser Java sans BlueJ Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec BlueJ une approche

Plus en détail

Synchro et Threads Java TM

Synchro et Threads Java TM Synchro et Threads Java TM NICOD JEAN-MARC Master 2 Informatique Université de Franche-Comté UFR des Sciences et Techniques septembre 2008 NICOD JEAN-MARC Synchro et Threads avec Java TM 1 / 32 Sommaire

Plus en détail

Résumé Introduction Programmation Java

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

Plus en détail

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306

TP Java RMI. Alexandre Denis Alexandre.Denis@inria.fr. Inria Bordeaux Sud-Ouest France ENSEIRB PG306 TP Java RMI Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 Paradigme RMI RMI (Remote Method Invocation) RPC orientés objet (encapsulation, héritage,...) objet :

Plus en détail

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 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

Plus en détail

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.

Année 2008-2009. Les exceptions Java. Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed. Année 2008-2009 Les exceptions Java Nicolas Baudru mél : nicolas.baudru@esil.univmed.fr page web : nicolas.baudru.perso.esil.univmed.fr 1 Introduction Supposez que vous écrivez un programme qui accède

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 7. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 7 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Facult e des Sciences - Univ. Artois Janvier 2011 Exceptions

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Cours 1: Java et les objets

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

Ingénierie du logiciel : cours 2

Ingénierie du logiciel : cours 2 Ingénierie du logiciel : cours 2 Frédéric Gava (d après F. Martini) Master ISIN, Université de Paris-Est Créteil Cours Ingénierie du logiciel du M2 ISIN Plan 1 Introduction et premiers exemples 2 Création

Plus en détail

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE

INTRODUCTION À JAVA EE. Cours Master 2 - Java EE INTRODUCTION À JAVA EE 1 LA NÉBULEUSE JAVA Java Micro Edition (JME) développement d applications embarquées Java Standard Edition (JSE) développement d applications classiques Java Enterprise Edition (JEE)

Plus en détail

Annexe : La Programmation Informatique

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

Composite, Interpréteur et Visiteur

Composite, Interpréteur et Visiteur Composite, Interpréteur et Visiteur Cnam Paris jean-michel Douin Version du 10 Octobre 2003 Notes de cours java : les patterns Composite, Interpréteur et Visiteur Les notes et les Travaux Pratiques sont

Plus en détail

PLAN. I. Pourquoi : les besoins, les types d applications

PLAN. I. Pourquoi : les besoins, les types d applications PLAN I. Pourquoi : les besoins, les types d applications II. Comment : les technos et pratiques dont on dispose pour mettre en œuvre les applications III. Avec quels outils III.1 Introduction aux IDE III.2

Plus en détail

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 2 : JUnit iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 2 : JUnit Nom(s) : Groupe : Date : Objectifs : Apprendre à vérifier une implantation à l aide de tests unitaires sous

Plus en détail

Programmation Orientée Objet. Exceptions et assertions

Programmation Orientée Objet. Exceptions et assertions Programmation Orientée Objet Exceptions et assertions Julien Provillard http://www.i3s.unice.fr/~provilla/poo/ julien.provillard@unice.fr Robustesse et Exceptions Error, RuntimeException Exceptions (non)

Plus en détail

Applications orientées données (NSY135)

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

Plus en détail

Les Systèmes et Applications Réparties et leur Programmation

Les Systèmes et Applications Réparties et leur Programmation Les Systèmes et Applications Réparties et leur Programmation Samia Bouzefrane Maître de Conférences Laboratoire CEDRIC Conservatoire National des Arts et Métiers 292 rue Saint Martin 75141 Paris Cédex

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1

JUnit 3.8 / JUnit 4. P. Grafion / Junit v1.4 1 JUnit 3.8 / JUnit 4 P. Grafion / Junit v1.4 1 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

Logiciels de Base. 2ème partie: Logiciels de base. Cours 1ère année informatique, semestre 1. Najib Tounsi

Logiciels de Base. 2ème partie: Logiciels de base. Cours 1ère année informatique, semestre 1. Najib Tounsi Logiciels de Base 2ème partie: Logiciels de base Cours 1ère année informatique, semestre 1. Najib Tounsi Lien permanent: http://www.emi.ac.ma/~ntounsi/cours/logbase/logicielsdebase-2.html 1. Les produits

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Chapitre 7. Exceptions

Chapitre 7. Exceptions Chapitre 7 Exceptions 1 Exceptions en Java Séparation exécution normale/gestion des erreurs Inspiration : C++ et Ada Un composant peut : prendre en charge le problème signaler le problème en levant une

Plus en détail

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances

Plus en détail

La Gestion des Exceptions

La Gestion des Exceptions La Gestion des Exceptions Les exceptions Les exceptions représentent le mécanisme de gestion des erreurs intégré au langage Java. Il se compose d'objets représentant les erreurs et d'un ensemble de troismotsclésquipermettentdedétecteretdetraiterceserreurs(try,

Plus en détail

Les Design Patterns en Java

Les Design Patterns en Java Les Design Patterns en Java Les 23 modèles de conception fondamentaux Steven John Metsker et William C. Wake Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous

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

RICM 4 ème année 12/1/2012

RICM 4 ème année 12/1/2012 RICM 4 ème année 12/1/2012 Examen de Systèmes Répartis Durée : 2h, Documents autorisés à l exception des livres. Le barème est indicatif. Partie A Applications Web Question 1. Dans un répertoire contenant

Plus en détail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

Plus en détail

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

Plus en détail

Java : Programmation Impérative

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

Plus en détail

Programmation servlet

Programmation servlet Programmation servlet Olivier Aubert 1/23 Références http://developer.java.sun.com/developer/onlinetraining/servlets/fundamenta http://www.servlets.com http://java.sun.com/products/jsp/index.html http://www.servletcentral.com/

Plus en détail

TD Objets distribués : Introduction à.net Remoting

TD Objets distribués : Introduction à.net Remoting IUT Bordeaux 1 2008-2009 Département Informatique Licence Professionnelle ~ SI TD Objets distribués : Introduction à.net Remoting Vous mettrez en œuvre votre première application en.net remoting. Les sources

Plus en détail

Introduction aux Composants Logiciels

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

Plus en détail

Programmation par RPC et Java-RMI :

Programmation par RPC et Java-RMI : 2A-SI 3 Prog. réseau et systèmes distribués 3.2 et JavaRMI Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Support de cours élaboré avec l aide de l équipe pédagogique du

Plus en détail

1 Le Parking revisité

1 Le Parking revisité Module I6 - Manipulation de threads II 13 décembre 2012 1 Le Parking revisité Une société de gestion de parkings de voitures souhaite mettre en place un système automatique d affichage en temps réel de

Plus en détail

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

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation

Plus en détail

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

Mémento Design Patterns

Mémento Design Patterns Quelques Design Patterns Mémento Design Patterns Frédéric MOAL Université d Orléans Scope Purpose Creational Structural Behavioral Factory Method Abstract Factory Builder Prototype Singleton Adapter Proxy

Plus en détail

La programmation concurrente

La programmation concurrente La programmation concurrente Jean-Ferdy Susini Maître de Conférences - CNAM Département Informatique Sources : Android Developpers, Wikipedia Paris, 06/05/2015 Architecture matérielle 2 Considérons l architecture

Plus en détail

Chapitre 4. Le modèle de composants : les services

Chapitre 4. Le modèle de composants : les services Chapitre 4 Le modèle de composants : les services 1 Les services "A Service is an application component that can perform long-running operations in the background and does not provide a user interface."

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Correction langage Java

Correction langage Java MINISTÈRE DE L ÉCOLOGIE, DU DÉVELOPPEMENT DURABLE, DES TRANSPORTS ET DU LOGEMENT EXAMEN PROFESSIONNEL DE VÉRIFICATION D APTIDUDE AUX FONCTIONS DE PROGRAMMEUR Session 2010 Correction langage Java Langage:

Plus en détail

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

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe.

Plan du cours. Syntaxe abstraite. Actions sémantiques Exemple : Analyseur d expressions arithmétiques Arbres de syntaxe. Plan du cours Syntaxe abstraite Martin Odersky 21 et 22 novembre 2005 version 1.0 1 2 3 Syntaxe abstraite Martin Odersky 1 de 31 Syntaxe abstraite Martin Odersky 2 de 31 Un analyseur syntaxique fait généralement

Plus en détail

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web

JAVA PROGRAMMATION. Programme. 1. Java, HTML et World Wide Web PROGRAMMATION PUBLIC Professionnels informatiques qui souhaitent développer des applications et «applets» Java DUREE 4 jours 28 heures OBJECTIF Créer divers «applets» à intégrer dans un site Web dynamique,

Plus en détail

Zend Framework 2 Industrialisez vos développements PHP

Zend Framework 2 Industrialisez vos développements PHP Avant-propos 1. Lectorat 15 2. Contenu du livre 15 3. Pré-requis 17 Introduction 1. Un peu d histoire 19 1.1 Petite histoire de l informatique 19 1.2 Petite histoire des langages informatiques 20 1.3 Petite

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

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

Gestion des exceptions

Gestion des exceptions Noël Macé Formateur et Consultant indépendant expert Unix et FOSS http://www.noelmace.com Structures de contrôle Gestion des exceptions Licence Creative Commons Ce(tte) œuvre est mise à disposition selon

Plus en détail