Projet de fin d'études

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

Download "Projet de fin d'études"

Transcription

1 Projet de fin d'études Gestion de ressources en environnement pervasif Brice Chardin DPt. Télécommunications Services & Usages 23/06/2008 Encadrants : Frédérique Laforest Jean-Marc Petit Yann Gripay

2 Remerciements Je remercie les membres de l'équipe SIP et du LIRIS que j'ai eu l'occasion de rencontrer au cours de ce PFE. En particulier : Mes encadrants Yann Gripay, Frédérique Laforest et Jean-Marc Petit, pour l'aide et les nombreux conseils qu'ils m'ont donnés tout au long de ce projet. Liya Zeng pour le travail effectué lors de son projet de fin d'étude, dont je me suis inspiré. Les personnes avec qui j'ai partagé le bureau : Romain Cuenot, Eric Dubreuil, Quang-Trung Nguyen, Ny Haingo Andrianarisoa, Romuald Thion et Julien Gossa pour l'ambiance conviviale qui y régnait. i

3 Table des matières 1 Introduction Contexte Le projet SoCQ Le PFE Analyse du cahier des charges Architecture Choix des technologies et des outils UPnP OSGi & Felix Maven Eclipse Organisation Gestion des ressources Objectifs Architecture Service SoCQ Gestionnaires de ressources locaux Gestionnaire de ressources global Contrôleur du gestionnaire de ressources global Conclusion Gestion des tables Objectifs Architecture Gestionnaire de tables Catalogue Tables TableProxy Objets Future Commandes Binding Patterns Gestionnaire de listes de services Contrôleur de tables Conclusion Expérimentations Conclusion References Annexes Interface ISoCQService Classe SoCQServiceDescription Classe Tuples Spécifications UPnP pour la gestion des ressources ii

4 1 Introduction 1.1 Contexte Les environnements informatiques tendent à évoluer vers ce qu'on appelle des systèmes pervasifs [1]. Contrairement à l'utilisation contemporaine de l'informatique où l'utilisateur interagit consciemment avec un appareil dans un but précis, un système pervasif implique plusieurs dispositifs informatiques, sans nécessairement que l'utilisateur en ait conscience. Ces systèmes, généralement destiné à des applications de la vie quotidienne, incluent de petits et peu coûteux dispositifs de traitement en réseau, intégrés et distribués dans l'environnement. L'axe Systèmes d'information communicants du Laboratoire d'informatique en Image et Systèmes d'information (LIRIS) possède une équipe traitant de ces systèmes pervasifs : l'équipe SIP (Systèmes d'information Pervasifs). Un des projets de cette équipe s'intéresse à obtenir une vision homogène des services et des données. Il s'agit du projet SoCQ : Service-oriented Continuous Queries [2,3,4]. 1.2 Le projet SoCQ Le projet SoCQ a pour objectif de proposer un cadre (framework) permettant de faciliter le développement d'applications dans un environnement pervasif. En adoptant une approche inspirée des bases de données, ce framework donne une représentation homogène des sources de données hétérogènes de l'environnement. Ces sources de données, qui peuvent être des relations dynamiques, des flux de données ou des services, sont représentées sous forme de tables relationnelles. Les applications utilisant ce framework sont alors définies avec un langage de type SQL. Pour illustrer le fonctionnement de SoCQ, on considère un scénario simple de surveillance de températures dans différentes zones. Ce scénario implique les ressources suivantes : des capteurs de température qui fournissent un flux de valeurs de température relevées dans différents lieux, et un service d'envoi de messages instantanés. La traduction de ce scénario pour SoCQ se compose de deux éléments : la description des ressources (catalogue) et la description de l'application (requête). Le catalogue est un ensemble de tables, qui correspondent à des relations (RELATION) ou des flux (STREAM) La description des ressources de ce scénario dans un langage de description de données est la suivante : CREATE STREAM Temperature ( Area CHAR, Temperature REAL ) CREATE RELATION Employee ( Name STRING(20), Address STRING(50), Messenger SERVICE, Message STRING(20) VIRTUAL, Sent CHAR VIRTUAL ) 1

5 CREATE RELATION Surveillance ( Area CHAR, Manager STRING(20), Threshold REAL, AlertMessage STRING(20) ) On remarque un style similaire aux create de tables en SQL classique. Néanmoins, deux notions nouvelles apparaissent : - Les STREAM Température représente le flux de températures provenant des différents capteurs répartis dans l'environnement. Il contient les localisations des capteurs (Area) et les valeurs des températures (Temperature). Contrairement à une relation, les tables de type flux ne stockent pas les données. - Les attributs VIRTUAL et SERVICE Employee est une table relationnelle contenant des attributs virtuels. Ces attributs n'auront de valeur attribuée qu'au cours du traitement de la requête. Elle contient les noms des employés (Name), leurs adresses de messagerie (Address), l'identifiant du service de messagerie à utiliser (Messenger), qui est un attribut de type servcie, et deux attributs virtuels correspondant au message à envoyer (Message) et à la confirmation de l'envoi du message (Sent). Surveillance est une table relationnelle classique dont chaque occurrence décrit une localisation à surveiller (Area), le nom du responsable de la zone (Manager), le seuil de température (Threshold) et le message d'alerte à envoyer (AlertMessage). Dans ce scénario, on souhaite envoyer un message au responsable d'une zone lorsque la température dans celle-ci dépasse un certain seuil. La requête SoCQ permettant de répondre à ce besoin est la suivante : SELECT Area, Manager, Threshold, Temperature, Sent FROM Temperature T, Surveillance S, Employee E WHERE S.Manager = E.Name AND S.Area = T.Area AND S.Threshold < T.Temperature AND E.Message = S.AlertMessage SoCQ compare en continu les températures, arrivant sur le flux, avec les seuils enregistrés dans la relation Surveillance. Si les valeurs sont supérieures aux seuils, SoCQ fait appel au service de messagerie pour envoyer le message correspondant. Le moteur d'exécution de requêtes SoCQ est développé parallèlement par l'équipe SoCQ, et est utilisé pour certains tests (voir section 5). Par ce langage déclaratif de haut niveau, SoCQ permet de faciliter le développement d'application pervasives. Au lieu d'écrire du code Java spécifique, le développeur peut se concentrer sur l'application. 2

6 1.3 Le PFE Ce projet de fin d'études "Gestion de ressources en environnement pervasif" s'intègre dans le projet SoCQ. Ce PFE a pour but de fournir une gestion de ressources pour tester et évaluer l'outil SoCQ. Cela se décompose en plusieurs parties : - Définir un modèle de service pour le système SoCQ. - Effectuer la liaison entre les tables et les services. - Gérer des tables relationnelles étendues avec les services, en vue d'une utilisation par le moteur d'exécution de requêtes SoCQ. - Implémenter et tester le système. Ce projet constitue une brique nécessaire au fonctionnement du projet SoCQ. Il permet de simplifier le développement du moteur SoCQ, mais également des services fournis par les différents éléments du système pervasif associé. Le travail demandé comprend la rédaction de spécifications, le développement et le test de la gestion de tables, de la gestion de ressources et de quelques services, notamment ceux impliqués par le scénario présenté dans la section

7 2 Analyse du cahier des charges 2.1 Architecture L'architecture de ce projet (voir fig.1) est composée de deux parties. La première s'occupe de la gestion des ressources, tandis que la deuxième concerne la gestion du catalogue de tables mis à disposition du moteur SoCQ Les ressources pouvant être réparties sur le réseau, cette deuxième partie est également composée de deux sous-parties : un gestionnaire de ressources global, centralisé, et un ou plusieurs gestionnaires de ressources locaux. Fig.1 : Architecture globale de l'outil SoCQ Un service au sens SoCQ est une entité externe possédant des méthodes, des flux et des propriétés. Cette entité peut être le service lui-même, ou servir de proxy pour un service externe. Par exemple, le scénario de surveillance de température utilise deux services : un service de capture de 4

8 température qui gère un capteur branché sur la même machine, et un service de messagerie qui sert de proxy, communiquant avec le serveur de messagerie. Les gestionnaires des ressources locaux s'occupent de la découverte de services au niveau local et de la mise à disposition de ces services pour le gestionnaire de ressources global. Le gestionnaire de ressources global met à disposition du gestionnaire de tables l'ensemble des ressources du système, en masquant les problèmes réseaux. Il s'occupe de la découverte et de l'invocation à distance. Ce gestionnaire de ressources est associé à un contrôleur servant à visualiser et tester les services. Ce contrôleur de ressources n'est pas nécessaire au bon fonctionnement du système. Le moteur SoCQ sert à exécuter les requêtes fournies par un développeur d'applications pervasives. Il a pour cela besoin du gestionnaire de tables, qui lui propose un ensemble de tables relationnelles (le catalogue), et sert d'intermédiaire avec le gestionnaire de ressources global. Un contrôleur de tables est associé au gestionnaire de tables. Il permet l'administration du catalogue du gestionnaire de tables. 2.2 Choix des technologies et des outils UPnP Le protocole réseau utilisé pour la gestion des ressources dans ce PFE est UPnP [6]. En effet, les systèmes pervasifs utilisant de nombreux dispositifs de traitement en réseau, UPnP permet la découverte automatique de ces éléments, ainsi que l'invocation à distance des méthodes proposés par les services. De plus, ce protocole permet la notification d'évènements, utilisé pour les flux de données. Il aurait également été possible d'utiliser RMI [7] ou CORBA [8], mais UPnP permet la découverte automatique, ce qui simplifie le développement de la partie réseau du gestionnaire de ressources. Ce protocole est de plus indépendant du langage de développement OSGi & Felix OSGi [7] est un ensemble de spécifications pour une plateforme de déploiement et d'exécution pour les applications Java. OSGi fournit une architecture orientée services permettant aux composants de se découvrir entre eux dynamiquement. Les applications peuvent alors être composées de composants réutilisables et coopératifs appelés bundles, qui sont des archives Java avec des métadonnées spécifiques. Apache Felix [9] est une implémentation open-source du framework OSGi et d'une partie des services standards selon la spécification OSGi R4. Un de ces services standards, UPnP Service, permet de faire le lien entre un périphérique UPnP et le registre de services OSGi, notamment en gérant les dépendances entre bundles, ce qui facilite le développement du gestionnaire de ressources pour le projet SoCQ Maven Maven [10] est un outil open-source de complilation pour les projets Java. Maven utilise une approche déclarative, où le contenu et la structure du projet sont décrits par un Project Object 5

9 Model (POM). Maven permet en particulier d'obtenir facilement des bundles OSGi, c'est la raison pour laquelle cet outil est utilisé pour ce projet Eclipse Eclipse IDE [11] est un environnement de développement libre. Grâce à son architecture développée autour de la notion de plugins, Maven et Felix peuvent être intégrés à l'ide, ce qui facilite le développement et débogage des bundles. 2.3 Organisation Ce projet de fin d'études dure un total de dix semaines et demie. L'organisation du travail est présentée dans le tableau suivant : Imprégnation du sujet et lecture de documentations S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 Conception des gestionnaires de ressource Développement et tests des gestionnaires de ressource Conception du gestionnaire de tables Développement et tests du gestionnaire de tables Rédaction du mémoire Préparation de la soutenance et Packaging Soutenance Les livrables sont : - Les spécifications du gestionnaire de ressources, fin semaine Les sources du gestionnaire de ressources, fin semaine Les spécifications du gestionnaire de tables, fin semaine Les sources du gestionnaire de tables, fin semaine 23. Cependant, la plupart des livrables, notamment les spécifications, ont évolué en fonction des remarques des encadrants grâce à des réunions hebdomadaires, et ont été livrés en version finale après les dates prévues initialement. Une première présentation du gestionnaire de ressources a été effectuée au milieu de la semaine 19. Des pré-soutenances sont également prévues en début de semaine 26. 6

10 3 Gestion des ressources 3.1 Objectifs Les services étant répartis dans l'environnement, le rôle des gestionnaires de ressources est de centraliser l'accès à ces services pour que le gestionnaire de tables s'affranchisse des problèmes réseau. 3.2 Architecture La découverte de services par les gestionnaires de ressources locaux s'effectue au niveau d'osgi, chaque service doit donc proposer un proxy ou bien être lui-même sous forme d'un bundle OSGi (voir exemple fig.2). Fig.2 : illustration de l'architecture choisie pour la gestion de ressources 7

11 3.3 Service SoCQ Un service au sens SoCQ est une entité possédant des méthodes, des flux et des propriétés. Tout service doit implémenter l'interface ISoCQService (voir annexe 1) et ainsi permettre de récupérer sa description (voir annexe 2), de s'abonner/désabonner à ses flux et d'invoquer ses méthodes. Exemples : Le service de température et le service de messagerie utilisés dans l'exemple possèdent les descriptions suivantes (pour le format des signatures, voir annexe 2) : Service de capture de température Service de messagerie Méthodes gettemperature::r sendmessage:ss:b Flux Propriétés temperature::sr location:s version:s protocol:s Le service de capture de température possède une méthode, gettemperature, n'ayant pas de paramètres d'entrée et renvoyant un réel. Il propose également un flux, non paramétrable, composé d'une chaîne de caractère (la localisation) et d'un réel (la température). Ses deux propriétés, location et version, sont des chaînes de caractères. Le service de messagerie ne possède pas de flux, mais propose la méthode sendmessage, dont les paramètres d'entrée sont le nom d'utilisateur et le message à envoyer. Ce service n'a qu'une propriété, protocol, correspondant au protocole utilisé par ce service. Les flux proposés sont des flux de Tuples (voir annexe 3). Ces flux sont paramétrables, c'est-à-dire que des paramètres peuvent être fournis lors de l'abonnement au flux, en accord avec sa signature. Un tuple est une collection ordonnée d'objets, il correspond à une ligne dans une relation. Par exemple, on pourrait imaginer développer un service de messagerie instantanée sur ce modèle. Ce service proposerait un flux qui demande comme paramètres d'entrée un login et un mot de passe. Le flux contiendrait alors les messages destinés à cet utilisateur. La signature d'un tel flux est messages:ss:s. 3.4 Gestionnaires de ressources locaux Le gestionnaire de ressources local recherche localement, dans son framework OSGi, les services compatibles SoCQ ; et effectue la conversion dans le protocole réseau utilisé entre les gestionnaires de ressources, UPnP. La figure 3 présente le diagramme de classes du gestionnaire de ressources local. La classe SoCQDiscoveryAgent permet de découvrir les nouveaux ISoCQServices se déclarant auprès du framework OSGi. Cet agent notifie le LocalRM (Local Resource Manager) par les méthodes registersocqservice(isocqservice service) et unregistersocqservice(isocqservice service). 8

12 Fig.3 : Diagramme de classes du gestionnaire de ressources local Lorsqu'un nouveau service SoCQ est disponible, le LocalRM crée un nouvel objet SoCQUPnPDevice, (voir annexe 4) représentant un périphérique au sens UPnP. L'API UPnP de Felix permet d'effectuer le lien entre cet objet et le protocole réseau UPnP. Un périphérique au sens UPnP correspond à un service au sens SoCQ. Un bundle proposant plusieurs services SoCQ sera donc converti en autant de périphériques UPnP. Un des avantages d'upnp est qu'il est possible de développer des gestionnaires de ressources locaux sous d'autres langages que java. Il suffit que ces gestionnaires de ressources respectent les spécifications UPnP propres à la gestion de ressources pour SoCQ (voir annexe 4). 9

13 3.5 Gestionnaire de ressources global Le gestionnaire de ressources global a pour rôle de découvrir les Services SoCQ UPnP mis à disposition par les gestionnaires de ressources locaux. Il sert également à effectuer la conversion inverse des gestionnaires de ressources locaux, c'est-à-dire convertir les périphériques UPnP en proxys de services SoCQ. La figure 4 présente le diagramme de classes du gestionnaire de ressources global. Fig.4 : Diagramme de classes du gestionnaire de ressources global 10

14 Le gestionnaire de ressources global est composé de trois parties: - La découverte de services UPnP compatibles SoCQ, effectuée par l'objet UPnPDiscoveryAgent - La création d'un objet SoCQUPnPService implémentant l'interface ISoCQService. Cet objet sert de proxy pour l'invocation des méthodes proposées par cette interface - La gestion des ISoCQServices, effectuée par un GlobalRM (Global Resource Manager). La classe UPnPDiscoveryAgent permet de découvrir les nouveaux SoCQUPnPDevices sur le réseau. A chaque découverte, cet agent crée un SoCQUPnPService implémentant l'interface ISoCQService, qui permet d'appeler les actions UPnP correspondant aux méthodes de l'interface ISoCQService. Une fois ce service créé, l'agent notifie la GlobalRM par l'appel de la méthode registersocqservice(isocqservice service) (respectivement unregistersocqservice(isocqservice service) si le périphérique UPnP disparaît). Le GlobalRM gère une liste de ces proxys de services SoCQ et les rend accessibles par les méthodes définies par l'interface IGlobalRM. 3.6 Contrôleur du gestionnaire de ressources global Le contrôleur fournit une interface graphique au gestionnaire de ressources global. Il permet de visualiser la liste des services présents dans l'environnement ainsi que leur description (fig.5). Il permet également d'invoquer leurs méthodes (fig.6), s'abonner / désabonner à leurs flux (fig.8) et récupérer la valeur de leurs propriétés (fig.9). Dans les captures d'écrans des figures 5, 8 et 9, le service concerné est un service de capture de température virtuel. Pour la figure 6, il s'agit du service de messagerie instantanée. Fig.5 : Interface du contrôleur du gestionnaire de ressources La figure 5 présente l'interface du contrôleur du gestionnaire de ressources. Sur la gauche se trouve la liste des identifiants de services du gestionnaire de ressources global. Lorsqu'un service est sélectionné, sa description s'affiche au centre. 11

15 Fig.6 : Invocation de méthodes des services. Sur la figure 6, on a d'abord invoqué la méthode gettemperature du service 1 (capture de température), puis la méthode sendmessage du service 2 (service de messagerie). On observe dans la partie inferieur du contrôleur les résultats de ces invocations. Le résultat de l'invocation de la méthode sendmessage avec les paramètres visibles sur la figure 6 est présenté figure 7. C'est un client de messagerie Jabber ouvert en tant que qui a reçu le message "Hello world!" envoyé par le service de messagerie. Fig.7 : Résultat de l'invocation de la méthode sendmessage. Sur la figure 8, le contrôleur s'est abonné au flux de température des services 1 et 2, correspondant respectivement à des capteurs de température virtuels dans le bureau et sur le toit. On voit dans les traces les différents tuples reçus pour les deux flux. Sur la figure 9, la propriété location du service 1 est sélectionnée. On peut ainsi visualiser sa valeur. 12

16 Fig.9 : Visualisation des propriétés. Fig.8 : Abonnement à des flux de température. 3.7 Conclusion L'aspect réseau était la difficulté de cette partie, d'une part parce qu'upnp est particulièrement contraignant en terme de développement, mais surtout parce que l'implémentation du service UPnP proposé par Felix n'est pas très explicite pour la gestion des erreurs, et possède quelques bugs. La partie gestion des ressources de ce projet représente un volume de 3140 lignes de code (57 classes Java) pour les gestionnaires de ressources et le contrôleur, et de 434 lignes (8 classes Java) pour les exemples de services de capture de température et de messagerie. 13

17 4 Gestion des tables 4.1 Objectifs Le gestionnaire de tables a pour but de fournir un catalogue de tables. Il doit s'occuper de l'accès concurrent à ce catalogue, et des opérations sur les services. Une table est un ensemble de tuples correspondant à un schéma. Dans SoCQ, les attributs d'une table peuvent être réels, c'est-à-dire que la donnée associée est stockée, ou virtuels, dans ce cas, la donnée ne possède qu'une existence logique au niveau du gestionnaire de tables et ne peut être complétée que lors de l'exécution d'une requête. Les attributs virtuels sont utilisés lors de l'invocation de binding patterns. Un binding pattern est une règle associée à une table qui décrit la relation entre les attributs de cette table et une méthode d'un service. Par exemple : On considère la table Employee suivante, dont les attributs Message et Envoyé sont virtuels et sont représentés par le caractère '*'. L'attribut Service contient l'identifiant du service à utiliser lors de l'invocation du binding pattern. Ce service possède la méthode : Boolean envoyermessage(string message, String adresse). Nom Adresse Service de messagerie Message (v) Envoyé (v) Brice 1 * * Yann 1 * * Le binding pattern permet d'associer la méthode envoyermessage à cette table. Il définit la correspondance entre les attributs Message et Adresse de cette table et le paramètre d'entrée message et adresse de la méthode envoyermessage, et celle entre l'attribut Envoyé et le paramètre de retour de cette méthode. L'attribut correspondant à l'identifiant du service à utiliser est également défini par le binding pattern. Il s'agit ici de l'attribut Service de messagerie. Le gestionnaire de tables permet les opérations suivantes : - création / suppression d'une table - lecture d'une table - ajout / suppression d'un tuple dans une table - invocation d'un binding pattern associé à une table 4.2 Architecture Le gestionnaire de tables, le gestionnaire de ressources global et le moteur SoCQ sont des modules du même framework (OSGi). 14

18 Fig.10 : diagramme de déploiement du gestionnaire de tables Le gestionnaire de ressources permet d'accéder à l'ensemble des services du système. Il s'occupe de la découverte et de l'invocation à distance. Le contrôleur de tables fournit une interface graphique pour visualiser et administrer le catalogue. Le moteur SoCQ s'occupe de l'exécution des requêtes SoCQ. 4.3 Gestionnaire de tables La figure 11 présente le diagramme de classes du gestionnaire de tables. Le gestionnaire de tables possède un catalogue de tables. Pour résoudre les problèmes de concurrence sur ce catalogue, l'accès à celui-ci est effectué uniquement par le thread principal du gestionnaire de tables. Pour cela, on utilise un système de commandes asynchrones. Les différentes commandes disponibles ainsi que leur fonctionnement sont détaillés dans la section Lors de l'appel d'une méthode du gestionnaire de tables, une commande, correspondant à l'action demandée, est ajoutée dans une file interne. Dans son thread principal, le gestionnaire de tables peut alors exécuter cette commande. A la fin de l'exécution, l'appelant est notifié. La figure 12 présente la séquence utilisée pour la création d'une table. 15

19 Fig.11 : diagramme de classes du gestionnaire de tables. Fig.12 : diagramme de séquence de la création d'une table par l'intermédiaire d'une commande 16

20 Dans un souci d'optimisation de l'exécution, en particulier pour le moteur SoCQ, un autre mode d'accès au catalogue est prévu : le thread principal du gestionnaire de tables passe la main à un exécuteur de requêtes et lui donne un accès direct et exclusif au catalogue. Pour cela, le gestionnaire de tables appelle la méthode execute() de l'exécuteur de requêtes en lui donnant la référence du catalogue. Gestionnaire de tables donne la main aux exécuteurs de requêtes exécute les commandes en attente Les méthodes du catalogue et des tables sont synchrones. Elles possèdent leurs équivalents en appels asynchrones par l'utilisation du système de commandes. S'il s'agit d'une méthode du catalogue, la méthode asynchrone correspondante est fournie directement par le gestionnaire de tables. S'il s'agit d'une méthode d'une table, un proxy TableProxy est utilisé (voir 4.3.3) Catalogue Le catalogue permet de : - Récupérer la liste des tables. - Récupérer un objet table. - Créer une table en fournissant son schéma de relation et ses binding patterns si nécessaire. - Supprimer une table Tables Une table est représentée par un schéma. Ce schéma décrit les attributs de la table. Ces attributs possèdent un nom, un type java (un objet Class) et une information booléenne indiquant s'il s'agit d'un attribut virtuel. Les tuples d'une table ne sont pas toujours stockés par le gestionnaire de table. S'il s'agit d'une table représentant un flux, les tuples sont transmis aux lecteurs mais ne sont pas conservés. Pour être compatible avec tous les types de tables (relation ou flux), la lecture utilise une file d'événements (liste FIFO) comme intermédiaire (voir fig.13). Lecteur Evènements Fig.13 : lecture d'une table Table 17

21 S'il s'agit d'une table représentant une relation, la lecture entraîne une phase d'initialisation de la file avec les tuples déjà présents dans la table. La file est ensuite actualisée en fonction des modifications effectuées (ajout ou suppression de tuples) jusqu'au désabonnement de la lecture. S'il s'agit d'une table représentant un flux, seuls les tuples du flux dont l'arrivée est postérieure à l'abonnement seront ajoutés dans la file, car le gestionnaire de table ne stocke pas les flux. Et ce jusqu'au désabonnement de la lecture. Pour une table de type flux, il ne peut y avoir que des ajouts. Les opérations suivantes sont également disponibles sur une table : - Lecture du contenu stocké d'une table (Abonnement avec une file d'évènements). - Désabonnement de la lecture. La table arrête alors de mettre à jour la file correspondante. - Ajout de tuples - Suppression de tuples - Invocation de binding patterns TableProxy Les méthodes des tables présentées précédemment ne sont utilisables que si on a accès direct et exclusif au catalogue. Dans le cas contraire, lors de l'invocation asynchrone de la méthode gettable() du gestionnaire de tables, celui-ci renvoie un objet TableProxy qui sert de proxy pour l'invocation des méthodes d'une table. Lors de l'appel d'une méthode, le TableProxy ajoute la commande correspondante dans la file de commandes du gestionnaire de tables Objets Future Lors des invocations asynchrones, le retour de la méthode est un objet Future<V>. Cet objet, utilisant les types génériques <V> [12] et inspiré de l'interface Future<V> [13] fourni par Java, permet de notifier l'appelant lorsque la commande a été exécutée. Les méthodes utilisables par l'appelant sont : public Boolean isdone(); public V get()throws Exception; La méthode isdone() permet de vérifier si la commande a achevé son exécution, tandis que get() permet d'attendre si nécessaire la fin de cette exécution. C'est également le seul moyen de récupérer l'objet V, résultat de l'exécution de la commande. Les méthodes utilisables par le gestionnaire de tables sont : public void executioncomplete(v value); public void setexception(exception e); Elles permettent de notifier l'objet Future de la fin de l'exécution de la commande. Si l'exécution s'est déroulée normalement, l'objet V est fourni, sinon une Exception, donnée par l'appel de la méthode setexception, est levée par la méthode get() Commandes Lors de l'exécution asynchrone d'une méthode, des commandes sont utilisées pour mettre en file d'attente cette exécution. Les commandes possibles sont les suivantes : 18

22 Fig.14 : diagramme de classes du package commands Ces commandes représentent les méthodes du catalogue ou des tables. Elles renvoient un objet Future qui représente le résultat de cette exécution asynchrone. Voici un exemple d'utilisation : On considère la méthode suivante : Future<ITable> gettable(int key) L'objet souhaitant récupérer la table utilise le code suivant : Future<ITable> futuretable = tablemanager.getfuturetable(1); //Une commande est ajoutée dans la file de commandes du TableManager ITable table = futuretable.get(); La méthode get() bloque jusqu'à ce que la table soit disponible. Lorsque le TableManager va exécuter la commande, celle-ci va mettre à jour l'objet futuretable en appelant : futuretable.executioncomplete(uneitable); Il est également possible d'évite de bloquer sur la méthode get(). Pour cela, on peut utiliser le code suivant : Future<ITable> futuretable = tablemanager.getfuturetable(1); actions.. if( futuretable.isdone() ) { 19

23 //On sait que la table est disponible ITable table = futuretable.get(); } else { actions.. } Binding Patterns Un binding pattern permet de faire la correspondance entre des attributs d'une table et des paramètres d'une méthode d'un service. Il permet également de savoir quel attribut correspond à un identifiant de service, et de connaitre la méthode à invoquer. L'appel de la méthode invoke() d'un binding pattern est asynchrone, cette méthode utilise donc également un objet Future<Tuple[]> pour effectuer la notification. On peut reprendre l'exemple du paragraphe 4.1 : Nom Adresse Service Message (v) Envoyé (v) Brice 1 * * Yann 1 * * Soit un binding pattern correspondant à la méthode Boolean envoyermessage(string adresse, String message). Si on souhaite invoquer ce binding pattern sur le premier tuple de la table, l'appel de la méthode invoke() sera le suivant : /* On possède un Tuple tuple correspondant à la ligne 1. * Ce tuple est complété en attribuant une valeur aux attributs virtuels * correspondant aux paramètres d'entrée de la méthode. * tuple = { "Brice", 1, "Ceci est un message" } */ Future<Tuple[]> futuretuples = bindingpattern.invoke(tuple); /* cela va invoquer la méthode du service possédant l'identifiant 1 * envoyermessage( "Ceci est un message") */ Tuple[] result = futuretuples.get(); result contiendra un seul Tuple, qui lui-même contiendra un seul élément booléen correspondant au résultat de l'invocation de la méthode envoyermessage() Gestionnaire de listes de services Le gestionnaire de listes de services est un composant du gestionnaire de tables. Il permet au moteur SoCQ ou au contrôleur de tables de créer des tables contenant des identifiants de services présents dans l'environnement. Il se charge également de maintenir à jour ces tables. Chaque table est associée à une SoCQServiceDescription (voir annexe 2) permettant de sélectionner les services en fonction des méthodes, flux et propriétés qu'ils possèdent. La table contient un tuple pour chaque service respectant ces critères. Les seuls attributs réels contenus dans ces tables sont les propriétés de la SoCQServiceDescription fournie. Les valeurs de ces attributs sont complétées avec la valeur de la propriété pour chaque 20

24 service. La table peut contenir d'autres attributs, mais ceux-ci doivent être virtuels car le gestionnaire de listes de services ne peut pas attribuer arbitrairement une valeur à ceux-ci. Une table créée par le gestionnaire de listes de services peut également posséder un ou plusieurs binding patterns. Par exemple, la table suivante contient des identifiants de service pour des capteurs de température, possédant les propriétés Localisation et Version. Un binding pattern correspondant à la méthode gettemperature() peut être associé à cette table, d'où la présence de l'attribut virtuel Température. 4.4 Contrôleur de tables ID Service Localisation Version Température (v) 1 Bureau 0.1 * 3 Bureau 0.1 * 4 Couloir 0.1 * Le contrôleur de tables fournit une interface graphique pour l'administration du catalogue du gestionnaire de tables. Il permet de visualiser la liste des tables (fig.15), de visualiser le contenu d'une table (fig.15 à 18) et de créer une table (fig.19 et 20). Fig.15 : Interface du contrôleur du gestionnaire de tables. Sur la figure 15, on observe sur la gauche la liste des tables présentes dans le catalogue du gestionnaire de tables. Leur nom et leur identifiant sont affichés. En sélectionnant une table, on peut visualiser son contenu. Ici il s'agit de la table surveillance. Fig.16 : Visualisation d'une table avec des attributs virtuels. La table Employee montrée sur la figure 16 possède deux attributs virtuels : l'attribut Message et l'attribut Sent. Cette table possède également un binding pattern, mais le contrôleur ne permet pas de le visualiser. 21

25 Fig.17 : Table associée à un gestionnaire de listes de services. La figure 7 montre la table TemperatureServices. Cette table est définie comme étant associée à la description du capteur de température du tableau section 3.3. Pour rappel : on cherche donc un service possédant la méthode gettemperature::r, le flux temperature::sr et les propriétés Location:s et Version:s. Au moment de la capture d'écran pour la figure 17, aucun service de capture de température n'est lancé. Fig.18 : Table associée à un gestionnaire de listes de services, services lancés. Deux services de captures de température sont lancés, et la table TemperatureServices est mise a jour par le gestionnaire de listes de services, avec les identifiants des services et les valeurs des propriétés présentes dans la description. Le contrôleur du gestionnaire de tables permet également de créer une table. Cette création de table fait appel à un parseur développé par ailleurs au sein du projet. Sur la figure 19, on va demander la création d'une table avec l'instruction suivante : CREATE RELATION marelation (unnom STRING, unchiffre INTEGER); Fig.19 : Création de table. On observe le résultat figure 20 : la table est créée. Fig.20 : Résultat de la création de table. Cependant, le contrôleur du gestionnaire de tables est encore à une phase préliminaire de développement. Par exemple, il ne permet pas encore d'invoquer des binding patterns, ou de mettre à jour des tuples dans une table. 22

26 4.5 Conclusion L'accès concurrent aux tables était la difficulté de cette partie. L'architecture du gestionnaire de tables a été en grande partie conçue autour de cet aspect. Une fois le fonctionnement du gestionnaire de table défini, le développement n'a pas présenté de difficultés particulières. La partie gestion des tables de ce projet représente un volume de 2163 lignes de code (36 classes Java) pour le gestionnaire de tables et son contrôleur. 23

27 5 Expérimentations Cette partie concerne l'exécution de la requête présentée dans le scénario de l'introduction : SELECT Area, Manager, Threshold, Temperature, Sent FROM Temperature T, Surveillance S, Employee E WHERE S.Manager = E.Name AND S.Area = T.Area AND S.Threshold < T.Temperature AND E.Message = S.AlertMessage Un prototype du moteur SoCQ a été développé au sein du projet SoCQ pour pouvoir exécuter cette requête. Le système comporte : - Le moteur SoCQ - Le gestionnaire de tables - Le contrôleur du gestionnaire de tables - Le gestionnaire de ressources global - Un gestionnaire de ressources local - Deux services de capture de température virtuels - Un service de messagerie - Les bundles OSGi nécessaires au fonctionnement du système : o La librairie smack [14] pour le service de messagerie o Le service UPnP de Felix Le serveur de messagerie Jabber [15] est installé sur une autre machine du réseau local. Tous ces éléments sont présents sous forme de bundle OSGi. Pour cette expérimentation, ceux-ci sont installés sur le même framework. Les tables suivantes sont créées lors d'une phase d'initialisation : - MessageServices Cette table utilise un gestionnaire de listes de services pour récupérer l'identifiant de service correspondant à un service de messagerie. - TemperatureServices De même, cette table utilise un gestionnaire de liste de services pour récupérer les identifiants de services correspondant aux services de capture de température. 24

28 - Employee Cette table est créée statiquement, puis complétée par une requête SoCQ annexe qui récupère dynamiquement l'identifiant de service contenu dans la table MessageServices. Un binding pattern correspondant à la méthode envoyermessage est associé à cette table. - Surveillance Cette table est créée et complétée de manière statique. - Temperature Cette table est crée de manière statique. Elle est initialement vide mais par un opérateur SoCQ spécifique, on y associe les flux de température des services inscrits dans la table TemperatureServices. Après quelques secondes d'exécution, la table possède les tuples suivants : Les capteurs de température sont des capteurs virtuels. On peut choisir la température courante grâce à un curseur. L'interface est présentée figure 21. Fig.21 : Interface d'un capteur de température virtuel. 25

29 Lorsqu'on augmente la température du capteur virtuel associé à la localisation Toit, on obtient la table suivante : La température dépassant le seuil défini dans la table Surveillance (27 C), la requête commande l'execution du binding pattern de la table Employee avec le message correspondant de la table surveillance. La figure 22 présente le résultat de cette exécution. Fig.22 : Résultat de l'invocation du binding pattern. Le résultat de la requête est enregistré dans une table Results. Après avoir également augmenté la température virtuelle du bureau on obtient le résultat présenté figure 23 : 26

30 Fig.23 : résultat de la requête. Cette expérimentation permet de vérifier le bon fonctionnement du système dans son ensemble car elle fait appel à quasiment toutes les fonctionnalités du gestionnaire de tables ainsi que des gestionnaires de ressources. 27

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

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

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

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

Projet de Veille Technologique

Projet de Veille Technologique Projet de Veille Technologique Programmation carte à puce - JavaCard Ing. MZOUGHI Ines (i.mzoughi@gmail.com) Dr. MAHMOUDI Ramzi (mahmoudr@esiee.fr) TEST Sommaire Programmation JavaCard Les prérequis...

Plus en détail

Rapport d'architecture

Rapport d'architecture Romain Alexandre Cécile Camillieri Rapport d'architecture 1 / 12 Table des matières I) Description du projet p. 3 1) Canaux de communication p. 3 2) Diagrammes de cas d'utilisation p. 3 II) Gestion des

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011

SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT. V 1.0 27 janvier 2011 SPECIFICATIONS TECHNIQUES POUR LE DEVELOPPEMENT DES PLUGINS TOURISM SYSTEM CLIENT V 1.0 27 janvier 2011 Ce document présente l'utilisation des plugins dans Tourism System Client. Dans le Client, un plugin

Plus en détail

Le client/serveur repose sur une communication d égal à égal entre les applications.

Le client/serveur repose sur une communication d égal à égal entre les applications. Table des matières LES PRINCIPES DE BASE... 1 Présentation distribuée-revamping...2 Présentation distante...3 Traitements distribués...3 données distantes-rd...4 données distribuées-rda distribué...4 L'ARCHITECTURE

Plus en détail

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1

JDBC. Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC Daniel Tschirhart : Programmation Java V1.35 1.1 JDBC JDBC est l'acronyme de Java DataBase Connectivity et désigne une API définie par Sun pour permettre un accès aux bases de données avec Java Accès

Plus en détail

GRAILS L'ARCHITECTURE GRAILS

GRAILS L'ARCHITECTURE GRAILS GRAILS L'ARCHITECTURE GRAILS Grails est un serveur d'application web basé sur le langage Groovy, et le framework Spring. Il est édité par la société : SpringSource. Une application Grails se décompose

Plus en détail

TME 5 plateforme OSGi

TME 5 plateforme OSGi UPMC Paris Universitas Master d'informatique M1/STL/CPS 1 TME 5 plateforme OSGi Frédéric Peschanski 26 mars 2008 Ce sujet de TME est un tutoriel à la technologie OSGi, une plateforme industrielle pour

Plus en détail

Java 7 Les fondamentaux du langage Java

Java 7 Les fondamentaux du langage Java 184 Java 7 Les fondamentaux du langage Java 1.1 Les bibliothèques graphiques Le langage Java propose deux bibliothèques dédiées à la conception d'interfaces graphiques. La bibliothèque AWT et la bibliothèque

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

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

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

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

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Gestion du parc informatique matériel et logiciel de l Ensicaen SAKHI Taoufik SIFAOUI Mohammed Suivi ENSICAEN

Plus en détail

Modèle spagetthi et solution EAI

Modèle spagetthi et solution EAI EAI Définition L'EAI est une notion ancienne mais toujours d'actualité. En effet, le besoin de faire communiquer des applications développées à des moments différents, dans des technologies différentes

Plus en détail

Présentation du projet:

Présentation du projet: : Le but du projet est de réaliser le fonctionnement d'un jeu d échec valide. Plus spécifiquement, il consiste à implémenter l'organisation générale du jeu, et le suivi des règles du mouvement des pièces.

Plus en détail

A. Introduction. Chapitre 4. - les entités de sécurité ; - les sécurisables ; - les autorisations.

A. Introduction. Chapitre 4. - les entités de sécurité ; - les sécurisables ; - les autorisations. Chapitre 4 A. Introduction Le contrôle d'accès représente une opération importante au niveau de la gestion de la sécurité sur un serveur de bases de données. La sécurisation des données nécessite une organisation

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

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

Présentation générale des Web Services

Présentation générale des Web Services Présentation générale des Web Services Vue Globale Type d'architecture reposant sur les standards de l'internet Alternative aux architectures classiques : Client/serveur n/tiers Orientée services permettant

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet Projet ISN - dossier réalisé par Randrianarimanana Stéphanie Titre du projet : Site de rencontre le nom de notre site de rencontre : Linkymeet ( tout astérisque* signifie voir annexe) l'équipe : Randrianariamanana

Plus en détail

Cours Administration BD

Cours Administration BD Faculté des Sciences de Gabès Cours Administration BD Chapitre 2 : Architecture Oracle Faîçal Felhi felhi_fayssal@yahoo.fr 1 Processus serveur 1 Mémoire PGA Architecture SGBD Oracle Processus serveur 2

Plus en détail

TCSMP - Time-Cost Stamped Mail Protocol

TCSMP - Time-Cost Stamped Mail Protocol Projet de Master Informatique M1 Université Paris-Est Marne-la-Vallée Session TCSMP Time-Cost Stamped Mail Protocol TCSMP - Time-Cost Stamped Mail Protocol Documentation utilisateur,,, Introduction...

Plus en détail

1. QCM (40 points) (1h)

1. QCM (40 points) (1h) Examen 1ère session 2012-2013 page 1 NSY 102 - AISL IPST-CNAM Intranet et Designs patterns NSY 102 Vendredi 26 Avril 2013 Durée : 3 heures Enseignants : LAFORGUE Jacques 1. QCM (40 points) (1h) Mode d'emploi

Plus en détail

Qu'est-ce qu'un Web Service?

Qu'est-ce qu'un Web Service? WEB SERVICES Qu'est-ce qu'un Web Service? Un Web Service est un composant implémenté dans n'importe quel langage, déployé sur n'importe quelle plate-forme et enveloppé dans une couche de standards dérivés

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes

Symfony 2. 1.Définition de symfony 2. 2.Installation. 3.Structure. 4.Symfony et les commandes Symfony 2 Sommaire : 1.Définition de symfony 2 2.Installation 3.Structure 4.Symfony et les commandes 5.Le fonctionnement : le routeur (les url), les bundles, twig(templates) 6.L architecture de symfony2

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

Votre première application Android - Introduction aux Interfac. utilisateur

Votre première application Android - Introduction aux Interfac. utilisateur Votre première application Android - Introduction aux Interfaces graphiques utilisateur frederic.guinand@univ-lehavre.fr 2014-2015 Plan Analyse d une app Android : visite guidée Introduction aux interfaces

Plus en détail

Ecole Nationale Supérieure des Télécommunications Les outils XML

Ecole Nationale Supérieure des Télécommunications Les outils XML Ecole Nationale Supérieure des Télécommunications Les outils XML Page 1 sur 13 SOMMAIRE 1 Introduction 3 2 Parseur XML et processeur XSLT 4 2.1 Le Parseur XML v2 4 2.1.1 Les API DOM et SAX 4 2.1.2 Le parseur

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

Par le service des publications Citrix. Citrix Systems, Inc.

Par le service des publications Citrix. Citrix Systems, Inc. Licences : présentation de l architecture Par le service des publications Citrix Citrix Systems, Inc. Avis Les informations contenues dans cette publication peuvent faire l'objet de modifications sans

Plus en détail

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement

Plus en détail

Rapport Gestion de projet

Rapport Gestion de projet IN56 Printemps 2008 Rapport Gestion de projet Binôme : Alexandre HAFFNER Nicolas MONNERET Enseignant : Nathanaël COTTIN Sommaire Description du projet... 2 Fonctionnalités... 2 Navigation... 4 Description

Plus en détail

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

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

Plus en détail

La sécurité. Chapitre 6. 1. Introduction. 2. La sécurité des accès

La sécurité. Chapitre 6. 1. Introduction. 2. La sécurité des accès 259 Chapitre 6 La sécurité 1. Introduction La sécurité La sécurité des données est un enjeu capital. Une base de données peut être amenée à stocker des données très sensibles, confidentielles. L'implémentation

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

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

Spécification du profil UML d assemblage cible EJB (version 1)

Spécification du profil UML d assemblage cible EJB (version 1) Spécification du profil UML d assemblage cible EJB (version 1) Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti) Référence : Livrable 2.2 Date : 31 mai 2002

Plus en détail

Itunes U Course Manager

Itunes U Course Manager Présentation du service Itunes U est un service gratuit fourni par Apple qui permet de créer des cours et de les déployer sur du matériel de la marque. On peut considérer cela comme une brique d'ent. Ce

Plus en détail

Présentation générale

Présentation générale SHERLOCK S GESTION La Gestion de la caisse Présentation générale Version 01/2009 1/11 1-LES OUTILS DE GESTION DE CAISSE... 3 2-SHERLOCK S GESTION... 3 3-SHERLOCK S OFFICE SERVER... 4 4-LES OPÉRATIONS DE

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

Windchill ProjectLink 10.2. Guide des programmes de formation

Windchill ProjectLink 10.2. Guide des programmes de formation Windchill ProjectLink 10.2 Guide des programmes de formation Guide des programmes de formation avec instructeur Introduction à Windchill ProjectLink 10.2 Administration du système de Windchill 10.2 Introduction

Plus en détail

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm LES COURS ONLINE P ar des étudiants our des étudiants Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm CAHIER DES CHARGES I - Préface...4 II - Introduction...5 III - Glossaire...6

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

Documentation du serveur de jeu

Documentation du serveur de jeu Documentation du serveur de jeu Introduction Ce document décrit le rôle de notre serveur de jeu et les fonctionnalités qu il fournit à l application Android. Nous détaillerons aussi l architecture et les

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

Un chat en C# Extrait de Wikipédia

Un chat en C# Extrait de Wikipédia Un chat en C# Un chat utilise un mécanisme de communication entre deux applications distantes. Il existe plusieurs solutions pour faire communiquer deux applications ; nous allons, ici, utiliser le protocole

Plus en détail

AP-5 TD n 2 J2EE 5 novembre 2013

AP-5 TD n 2 J2EE 5 novembre 2013 Objectifs Prérequis Gestion des informations temporaires, sessions et cookies JSP et servlets, mise en place d un contrôleur Java Runtime Environnement (http://www.java.com/fr/download/) (JRE Java 7) IDE

Plus en détail

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7

et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 Tsoft et Groupe Eyrolles, 2006, ISBN : 2-212-11747-7 OEM Console Java OEM Console HTTP OEM Database Control Oracle Net Manager 6 Module 6 : Oracle Enterprise Manager Objectifs Contenu A la fin de ce module,

Plus en détail

Spécification fonctionnelle Syllabus

Spécification fonctionnelle Syllabus 2013 2014 Université Paris Diderot Paris 7 Master 1 Informatique UFR Informatique Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm Spécification fonctionnelle Syllabus -1- TABLE

Plus en détail

Conception Plateforme Messagerie

Conception Plateforme Messagerie Conception Plateforme Messagerie Date du document Vendredi 19 mai 2006 Sommaire du document I. Introduction...1 II. Une vision globale du système...1 1. Le diagramme de classes UML...1 2. Détail des méthodes

Plus en détail

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3

Plus en détail

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système

Présentation. Logistique. Résumé de la 1e Partie. Mise en place du système Présentation Diapo01 Je m appelle Michel Canneddu. Je développe avec 4D depuis 1987 et j exerce en tant qu indépendant depuis 1990. Avant de commencer, je tiens à remercier mes parrains Jean-Pierre MILLIET,

Plus en détail

GESTION DES BONS DE COMMANDE

GESTION DES BONS DE COMMANDE GESTION DES BONS DE COMMANDE P1 P2 Table des Matières LA GESTION DES BONS DE COMMANDE 4 PREMIERE EXECUTION DU LOGICIEL 5 DEFINITION DES PARAMETRES 8 Services 9 Comptes Utilisateurs 10 Adresse de livraison

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

SQL Server 2012 - Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos)

SQL Server 2012 - Administration d'une base de données transactionnelle avec SQL Server Management Studio (édition enrichie de vidéos) Présentation 1. Introduction 13 2. Présentation de SQL Server 14 2.1 Qu'est-ce qu'un SGBDR? 14 2.2 Mode de fonctionnement Client/Serveur 16 2.3 Les plates-formes possibles 17 2.4 Les composants de SQL

Plus en détail

Projet ASR Encadrement : Sébastien LERICHE Réalisation : Rachid DAOU et Saber LAABIDI MALKI

Projet ASR Encadrement : Sébastien LERICHE Réalisation : Rachid DAOU et Saber LAABIDI MALKI DECOUVERTE ET SIGNALISATION MULTI-ECHELLE Projet ASR Encadrement : Sébastien LERICHE Réalisation : Rachid DAOU et Saber LAABIDI MALKI Sommaire 1- Présentation du projet... 3 1.1- Le contexte... 3 1.2-

Plus en détail

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

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

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452

EXTENSION de Microsoft Dynamics CRM 2013. Réf FR 80452 EXTENSION de Microsoft Dynamics CRM 2013 Réf FR 80452 Durée : 3 jours A propos de ce cours : Ce cours offre une information interactive et détaillée sur le développement d extensions pour Microsoft Dynamics

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

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

DUT Informatique Module JAVA Apprentis Département Informatique 2008 / 2009. Travaux Pratiques n o 7 : RMI iut ORSAY DUT Informatique Département Informatique 2008 / 2009 Travaux Pratiques n o 7 : RMI Nom(s) : Groupe : Date : Objectifs : savoir créer des applications client-serveur mettant en jeu des machines

Plus en détail

ACCUEIL...2 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12 ACCEPTER OU A REFUSER LE DEVIS...13

ACCUEIL...2 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12 ACCEPTER OU A REFUSER LE DEVIS...13 ACCUEIL...2 LA COMMANDE...3 ONGLET "NATURE DES TRAVAUX"...3 ONGLET INFORMATIONS...8 ONGLET RECAPITULATIF...9 LA COMMANDE SIMPLE A VALIDER PAR LES ACHETEURS...10 LA DEMANDE DE DEVIS...11 COMPLETER UN DEVIS...12

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

Plus en détail

Interactions audio sur le site web du LIA Documentation Technique

Interactions audio sur le site web du LIA Documentation Technique 2007 Interactions audio sur le site web du LIA Documentation Technique Projet 13 - IUP Avignon Master1 TAIM 28/05/2007 2 Projet 13 : Interactions audio sur le site web du LIA Sommaire Composants de l'application...

Plus en détail

Chapitre 4 La base de données

Chapitre 4 La base de données Chapitre 4 La base de données La Base de données INTRODUCTION 4 La Base de données INTRODUCTION Vectorworks permet de lier les objets du dessin à des formats de base de données (BDD), c'est-à-dire d'associer

Plus en détail

Dossier de Conception Système

Dossier de Conception Système Dossier de Conception Systeme FullMANGA Document Dossier de Conception Système Version 1.2 Commencé le 30 novembre 2006 Dernière modification 4 décembre 2006 Statut Finale Client Enseignants du M2P GI

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Chapitre 9 Les métadonnées

Chapitre 9 Les métadonnées 217 Chapitre 9 Les métadonnées 1. De l'importance des métadonnées Les métadonnées Au-delà du contenu des données elles-mêmes d'un système, il est souvent très utile de connaître un minimum d'informations

Plus en détail

Programmation n-tiers. Chapitre III - Les Servlets

Programmation n-tiers. Chapitre III - Les Servlets Institut Supérieur des Études Technologiques de Kasserine Département Technologies de l'informatique Chapitre III - Les Servlets DSI21 Introduction A la base, les serveurs web sont seulement capables de

Plus en détail

TP JUnit 4.12. Première partie Le premier test d'une classe

TP JUnit 4.12. Première partie Le premier test d'une classe TP JUnit 4.12 Récupérez les deux fichiers junit.jar et hamcrest-core.jar à partir de l'url https://github.com/junit-team/junit/wiki/download-and-install (plus précisément à partir de l'url http://junit.org).

Plus en détail

Pro/INTRALINK 10.0. Guide des programmes de formation

Pro/INTRALINK 10.0. Guide des programmes de formation Pro/INTRALINK 10.0 Guide des programmes de formation Guide des programmes de formation avec instructeur Mise à jour vers Windchill 10.0 pour les administrateurs système Administration du système de Windchill

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

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

Présentation du projet:

Présentation du projet: : Le but du projet est de réaliser le fonctionnement d'un jeu de Siam valide. Plus spécifiquement, il consiste à implémenter l'organisation générale du jeu, et le suivi des règles du mouvement des pièces.

Plus en détail

Créer le modèle multidimensionnel

Créer le modèle multidimensionnel 231 Chapitre 6 Créer le modèle multidimensionnel 1. Présentation de SSAS multidimensionnel Créer le modèle multidimensionnel SSAS (SQL Server Analysis Services) multidimensionnel est un serveur de bases

Plus en détail

RÉSUMÉ DU TRAVAIL DE DIPLÔME

RÉSUMÉ DU TRAVAIL DE DIPLÔME Filière d'informatique de gestion Travail de diplôme ÉTUDE ORACLE XE & APEX RÉSUMÉ DU TRAVAIL DE DIPLÔME AUTEUR: BRUNO DA COSTA RESPONSABLE DU PROJET: FABRICE CAMUS MANDANT: LABORATOIRE DE GÉNIE LOGICIEL

Plus en détail

Conventions communes aux profils UML

Conventions communes aux profils UML Conventions communes aux profils UML Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)* Référence : Livrable 2.1 Date : Juin 2002 * : Les partenaires du

Plus en détail

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio

SQL Server 2014 Administration d'une base de données transactionnelle avec SQL Server Management Studio Présentation 1. Introduction 13 2. Présentation de SQL Server 14 2.1 Qu'est-ce qu'un SGBDR? 15 2.2 Mode de fonctionnement client/serveur 16 2.3 Les plates-formes possibles 18 2.4 Les composants de SQL

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail

Exécution des applications réparties

Exécution des applications réparties Exécution des applications réparties Programmation des Applications Réparties Olivier Flauzac URCA Master STIC-Informatique première année Olivier Flauzac (URCA) PAR : Exécution des applications réparties

Plus en détail

GESTION DES PROCESSUS

GESTION DES PROCESSUS CHAPITRE 2 : GESTION DES PROCESSUS Objectifs spécifiques Connaître la notion de processus, Connaître les caractéristiques d un processus ainsi que son contexte Connaître la notion d interruptions et de

Plus en détail

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit

REQUEA. v 1.0.0 PD 20 mars 2008. Mouvements d arrivée / départ de personnels Description produit v 1.0.0 PD 20 mars 2008 Mouvements d arrivée / départ de personnels Description produit Fonctionnalités L application Gestion des mouvements d arrivée / départ de Requea permet la gestion collaborative

Plus en détail

Examen 1ère session 2014-2015 page 1 NSY 205. 1ère Session NSY 205

Examen 1ère session 2014-2015 page 1 NSY 205. 1ère Session NSY 205 Examen 1ère session 2014-2015 page 1 NSY 205 IPST-CNAM Intranet et Designs patterns NSY 205 Jeudi 5 Février 2015 Durée : 2 h 30 Enseignant : LAFORGUE Jacques 1. QCM (35 points) Mode d'emploi : 1ère Session

Plus en détail

Projet de fin d études

Projet de fin d études INSA de Lyon Département Télécommunications services & usages / LIRIS Projet de fin d études Gestion de données dans des environnements pervasifs 21/12/2007 Version 1 : 28/11/2007 Version 2 : 11/12/2007

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

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe

Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium. Comparatif Choco/Drools dans le cadre du projet JASMINe Guillaume SOLDERA (B guillaume.soldera@serli.fr) SERLI Informatique Bull OW2 Consortium dans le cadre du projet JASMINe Avril 2008 Table des matières 1 Introduction 3 1.1 Rappel sur JASMINe.......................................

Plus en détail

MANGUE Impression de données

MANGUE Impression de données MANGUE Impression de données 0. Préambule 1. Principe de Fonctionnement 2. Description des fichiers XML générés 2.1 DescriptionImpression.XML 2.2 Fichier XML généré 2.3 Exemples complets de balise et résultat

Plus en détail

Projet Master 1ere année Sujet n 13 :

Projet Master 1ere année Sujet n 13 : BANON Daniel CAPON François CARRERE Jean-Charles IUP Avignon Master 1 TAIM Projet Master 1ere année Sujet n 13 : Interactions audio sur le site web du LIA A l attention de messieurs Nocéra, Favre et Larcher

Plus en détail

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova

DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova DA MOTA Anthony - Comparaison de technologies : PhoneGap VS Cordova I. Introduction Dans une période où la plasticité peut aider à réduire les coûts de développement de projets comme des applications mobile,

Plus en détail

Guide d'utilisation du CFEnet Local, version 2 1 / 8

Guide d'utilisation du CFEnet Local, version 2 1 / 8 Livrable Automate de Transmission des Fichiers CFEnet, version 2 : Guide d'utilisation Version Auteur Validation Date de diffusion Destinataires Version de travail Thierry Mallard Thierry

Plus en détail

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur

Plan. Environnement Client/Serveur. Cours 7 JavaServer Pages (1) JSP. Programmation Web coté serveur Plan Environnement Client/Serveur Cours 7 JavaServer Pages (1) kn@lri.fr 7.1 Principe 7.2 Rappels HTTP 7.3 Le serveur web Tomcat Programmation Web coté serveur JSP 2/28 (rappel) génération de pages-web

Plus en détail

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm

LES COURS ONLINE. ar des étudiants our des étudiants. Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm LES COURS ONLINE P ar des étudiants our des étudiants Olden Fabre, Cynthia Thimon, Jakub Kaluza, Jean Desravines, Oliver Hamm C AHIER DES CHARGES I - Préface...4 II - Introduction...5 III - Glossaire...6

Plus en détail

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

Plus en détail