Mémoire de Fin d Etudes

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

Download "Mémoire de Fin d Etudes"

Transcription

1 Mémoire de Fin d Etudes Pour l Obtention du Diplôme de Magister en Informatique Présenté par : KAHLOULA BOUBAKER Option : Informatique & Automatique THEME Chargement de données XML dans un Data Warehouse : Approches pour l'automatisation du Schema Matching Jury Pr BELDJILALI Bouziane Président Université d Oran Dr BOUAMRANE Karim Encadreur Université d Oran Dr NAIT BAHLOUL Safia Examinatrice Université d Oran Dr ATMANI Baghdad Examinateur Université d Oran Année universitaire 2009/2010

2

3 A Meriem, à mes enfants et à toute ma famille pour tout ce qu ils me donnent A Mourad pour m avoir encouragé à entreprendre ce travail et soutenu en bien d autres circonstances Aux Prof. Norbert Krier, Prof. Hans Scholz, Prof. Axel Schmidt et à tous mes autres professeurs retraités de la Hochschule Darmstadt pour l enseignement qu ils m ont prodigué A mes collègues de Sonatrach Aval et à ceux de la Dresdner Bank Frankfurt pour la confiance qu ils m ont toujours accordée

4 Je veux en cette place dire toute ma gratitude au Docteur Bouamrane Karim, qui a accepté sans hésitation de m encadrer dans ce travail, et le remercier vivement pour la disponibilité et la patience dont il a fait preuve en m accompagnant tout le long de cette tâche. Ma reconnaissance va aussi aux très honorables membres du jury, qui ont bien voulu juger ce travail : au Professeur Beldjilali Bouziane, président, ainsi qu aux Docteurs Nait Bahloul Safia et Atmani Baghdad, examinateurs.

5 «Chacun se trompe ici-bas : On voit courir après l'ombre Tant de fous qu'on ne sait pas, La plupart du temps, le nombre.» Jean de La Fontaine, extrait des Fables

6 Résumé Les systèmes d'information sont souvent caractérisés par une hétérogénéité et une distribution qui prennent de plus en plus d ampleur au fil du temps. Des données sont exportées et importées en permanence d un système vers l autre pour leur permettre de communiquer entre eux. Les données proviennent fréquemment aussi du monde extérieur. Les données sont très souvent contenues dans un fichier XML et le système cible est en général une base de données relationnelle, ou plus particulièrement un Data warehouse. Les données existantes dans les fichiers XML sous un nom et un format donnés doivent être quelquefois renommées ou reformatées pour pouvoir être stockées puis exploitées à un niveau local. Ce travail fastidieux de Matching se fait encore couramment de façon manuelle. Il s agit, dans le cadre de ce mémoire de Magister, d une part, de la conception et du développement d un système global de chargement de données XML dans un Data warehouse, d autre part de donner un aperçu des techniques et prototypes qui ont été proposés jusqu ici pour l automatisation du Schema Matching et en relever les spécificités. La conception du système - auquel nous avons donné le nom de OpenX2DW - de chargement de données XML dans la base de données cible, tient compte par ailleurs de cette automatisation. Abstract Information systems are often characterized by heterogeneity and distribution witch are becoming increasingly widespread over time. Data are exported and imported continuously from one system to another to enable them to communicate. The data come also frequently from outside the enterprise. The data are often contained in an XML file and the target system is typically a relational database, or more particularly a data warehouse. Existing data in XML files with a given name and format should be reformatted or sometimes renamed to be stored and operated on a local level. The tedious work of Matching is still commonly manually. It is, in the context of this Magister thesis, first, design an develop a global system to load XML data into a data warehouse, the other to give an overview of techniques and prototypes have been proposed so far for the automation of Schema Matching and identify their features. The design of the system - which we gave the name of OpenX2DW - to load XML data into the target database, also considers this automation. 6

7 TABLE DES MATIERES TABLE DES GRAPHIQUES...9 LEXIQUE DES TERMES LINGUISTIQUES ET ISSUS DE LA THEORIE DES GRAPHES UTILISES DANS CE MEMOIRE...10 INTRODUCTION GENERALE DESCRIPTION DU SYSTEME Architecture globale Les composants du système Le Trigger Le Matcher Le Loader Le Archiver La Rules engine Environnement de développement et de test Conclusion LE SYSTEME DANS UN PROCEDE ETL ET DANS UN «ENVIRONNEMENT DISTRIBUE» Data warehouse, définition et concepts OpenX2DW dans un procédé ETL OpenX2DW dans un «environnement distribué» Conclusion SCHEMA MATCHING «Matching» et «Mapping», définition Domaines d application du Matching Traitement manuel du Matching Difficultés rencontrées lors d un Matching manuel Dimension des schémas Complexité des schémas Problèmes linguistiques Cardinalité Redondance Absence d information

8 3.5 Matching automatique Les différentes sources d information Représentation interne Mode de fonctionnement d un opérateur de Matching Les différents types de Matcher Prototypes existants Conclusion CONCLUSION GENERALE ET PERSPECTIVES...69 BIBLIOGRAPHIE...71 ANNEXE 1 : SCRIPTS POUR LA GENERATION DE LA TABLE «RULES»...74 ANNEXE 2 : EXEMPLE DE SCRIPT POUR L INSERTION DE RULES...75 ANNEXE 3: EXEMPLE DE FICHIER MAPPING...76 ANNEXE 4: EXEMPLE DE TRIGGER...77 ANNEXE 5 : PROGRAMMES SOURCES

9 TABLE DES GRAPHIQUES FIG. 1 : ARCHITECTURE GLOBALE...17 FIG. 2 : LES TROIS COUCHES DU SYSTEME...22 FIG. 3 : EXEMPLE DE STRUCTURE HIERARCHIQUE CONSTRUITE PAR UN PARSEUR DOM...27 FIG. 4 : OPENX2DW DANS UN PROCESSUS ETL...48 FIG. 5 : OPENX2DW DANS UN «ENVIRONNEMENT DISTRIBUE»...50 FIG. 6 : EXEMPLE DE MATCHING...53 FIG. 7 : XMLSPY DE LA SOCIETE ALTOVA...54 FIG. 8 : CLASSIFICATION DES APPROCHES POUR UN SCHEMA MATCHING 59 FIG. 9 : DIFFERENTS ASPECTS D UN MATCHER...59 FIG. 10 : DEUX SCHEMAS XML «COMMANDE»

10 LEXIQUE DES TERMES LINGUISTIQUES ET ISSUS DE LA THEORIE DES GRAPHES UTILISES DANS CE MEMOIRE 1.Termes linguistiques Abréviation Raccourcissement d'un mot, représenté par une lettre ou un groupe de lettres issues de ce mot. Acronyme Abréviation d un groupe de mots, formée par les premières lettres de ces, se prononçant comme un mot normal. Homonyme Mot qui a la même forme orale ou écrite qu un autre mot, mais un sens différent. Il en est l homonyme. Hyperonyme Mot, dans le sens est superordonné par rapport à un second. Le premier est l hyperonyme du second. Synonyme Mot qui a une signification très semblable à un autre mot. Il en est le synonyme. 2. Termes issus de la théorie des graphes Arbre Structure de données représentant un arbre au sens mathématique. Cas particulier de graphe qui n'a qu'une seule source et aucun cycle. Arête Les nœuds (les pères avec leurs fils) sont reliés entre eux par une arête. Feuille Elément ne possédant pas de fils dans l'arbre. Nœud Un nœud est, suivant le contexte, interne ou externe. 10

11 Nœud externe Synonyme de feuille. Nœud interne Elément possédant des fils (sous-branches). Racine L'unique nœud ne possédant pas de parent. 11

12 Introduction Générale Les systèmes d information au sein des grandes entreprises sont caractérisés par une hétérogénéité, une distribution et une ouverture sur le monde extérieur, qui prennent au fil du temps de plus en plus d ampleur. D innombrables imports et exports ont lieu quotidiennement, ceux-ci étant sensés permettre aux différents systèmes implantés de communiquer entre eux. Les fichiers dits «plats», utilisés dans le passé pour ce genre d échange, ont cédé la place au format XML (Extensible Markup Language). La base de données cible est très souvent une base de données relationnelle. Des statistiques récentes estiment qu un tiers du budget, dans des projets informatiques nouveaux, est utilisé pour l intégration d applications. Jusqu à 60% du budget consacré à l informatique dans des petites et moyennes entreprises industrielles, va à la maintenance des interfaces entre les différents systèmes [ERPM] et [CSPC]. Le système, auquel nous avons donné le nom de «OpenX2DW», conçu et développé dans le cadre de ce Magister en Informatique, sert d interface entre des systèmes échangeant des données. Des données d entrée, contenues dans un fichier XML sont chargées, grâce à ce système, dans une base de données relationnelle. Les avantages de ce système sont : Les données d entrée sont contenues dans un fichier XML, XML étant la base d échanges des services web. Il suffit que le fichier XML soit simplement «well-formed». Il n est pas nécessaire qu il soit accompagné d un DTD (Document Type Definition) ou d un XSD (XML Schema Definition). La base de données cible est une base de données relationnelle. Les bases de données relationnelles sont les plus répandues. Il existe bien des bases de données XML natives, mais elles ne sont pas aussi performantes que les bases de données relationnelles quand il s agit d une grande quantité de données à charger. L expérience n est pas non plus très grande en ce qui concerne les bases de données XML natives, qui ne sont pas aussi «mures» que les bases de données relationnelles [WIKI]. Il s agit d un outil ETL (Extract, Transform, Load). Il dispose aussi bien d une composante «Extraction», que des composantes «Transformation» et «Chargement». 12

13 Utilisation de commandes SQL (Structured Query Language) pour les opérations de transformation et chargement. Le système permet à l utilisateur de réaliser simplement une interface entre deux systèmes en utilisant des commandes SQL de divers degrés de complexité et de pouvoir à travers des actions déterminées (commit, rollback, utilisation d une règle alternative) de parer à l éventualité de la non-exécution pour des raisons d intégrité, d une de ces commandes Matching automatique : La structure des données XML d entrée, qui proviennent souvent du monde extérieur, ne correspond pas toujours à la structure de la table transitoire. Le Matching, qui se fait ici manuellement, peut être fastidieux. Nous avons donc réservé la place dans l architecture globale du système à un Matcher automatique basé sur un algorithme qui fera l objet de recherches futures. Nous avons recensé dans ce mémoire les approches existantes pour un Schema Matching automatique ou semi-automatique et présenté les prototypes de Schema Matching les plus connus. La portabilité du système sur une autre plateforme (Système d exploitation et base de données) est assurée du fait que les programmes aient été écrits en Java et que la construction des requêtes SQL à l intérieur des programmes («hardcoded») pour la lecture et l exécution des Rules réponde au SQL Standard (SQL 92) [Date99]. OpenX2DW peut donc être implanté sur toute machine et il est compatible avec tout RDBMS, JDBC étant utilisé comme composant assurant la communication entre le système et le SGBD (Middelware). Notre but a donc été de développer un système de chargement de données XML dans un Data Warehouse, dont la portabilité est assurée et qui, par rapport aux outils existant : Intègre une «Rules engine» permettant d utiliser le langage SQL dans les opérations de chargement et de transformation prévoit un module de Matching dynamique Ceci a été motivé par le fait que : Les systèmes de chargement de données XML de fournisseurs indépendants ou open source tels que le Hibernate [HIBE], ne permettent pas l utilisation du langage SQL. Parmi les inconvénients de Hibernate, cités par par Phutela dans «Hibernate vs JDBC» [PHUT], nous relèverons : 13

14 «Use of Hibernate is an overhead for the applications which are: - simple and use one database that never change - need to put data to database tables, no further SQL queries - there are no objects which are mapped to two different tables - Hibernate increases extra layers and complexity. So for these types of applications JDBC is the best choice.» OpenX2DW utilise Hibernate et compense les inconvénients énumérés ci-dessus. Les systèmes opérationnels connus, propriétaires ou open source, ne prévoient pas de Matching automatique, cet aspect, encore à l état de la recherche, n étant encore que partiellement traitée par des prototypes tels que ceux présentés dans le troisième chapitre de ce mémoire. Les outils ETL existant sur le marché, proposés par des fournisseurs tels que Oracle (Oracle Warehouse Builder OWB [Dijc04]), vont de pair avec le SGBD proposé par le même fournisseur. De cette manière, la dépendance de l utilisateur vis-à-vis du fournisseur est renforcée. N.B.: Les citations à partir de la littérature allemande qu on trouvera dans ce mémoire ont été traduites au Français, celles en Anglais ont été reproduites en l état. 14

15 1 Description du système 1.1 Architecture globale L architecture globale du système est donnée dans la fig. 1. Les modules qui le constituent sont : Le Matcher, dont la fonction est de créer un fichier Mapping. Le Loader, dont la tâche est de charger le fichier XML dans une table transitoire. Pour ce, le Loader utilise les librairies du Framework Hibernate [HIBE]. Le Loader se basera sur le fichier Mapping, précédemment créé par le Matcher, pour charger les données XML dans les colonnes correspondantes de la table transitoire. L Archiver, dont le rôle est d archiver un fichier déjà traité par le Loader La «Rules engine», qui, sur la base de règles bien précises («Rules»), données sous forme de commandes SQL, insère les données contenues dans la table transitoire dans la base de données cible. Des données contenues dans un fichier au format XML, provenant d un serveur tiers ou du monde extérieur, par exemple dans le cadre d un service web, est mis à la disposition d un client. Le fichier XML est simplement «well formed» (les tags ouverts sont refermés); il n est pas nécessaire qu il soit accompagné d une description DTD ou XSD. Le fichier apparaîtra sur un serveur, dans un répertoire prévu à cet effet. Un «job» (Trigger), qui détectera l arrivée d un fichier sur le répertoire d accueil, que nous appellerons «Scan directory», est exécuté en permanence, avec une fréquence déterminée, sur ce serveur. Le traitement est lancé aussitôt que la présence d un fichier est détectée dans la Scan directory. Dans le cas où le fichier de données est un fichier comprimé, il devra d abord être décomprimé. Cette action peut être confiée à un programme de compression/décompression standard (zip, flam, winrar, etc.). Une conversion doit aussi avoir lieu si les normes utilisées par l expéditeur et le destinataire sont différentes (EBCDIC, ASCII). Le fichier XML est tout d abord chargé par un premier programme, appelé ici «Loader», dans une table dite transitoire. Cette appellation est due au fait que les données ne résident que de façon temporaire dans cette table. Le chargement se fait selon un Mapping généré par un programme, 15

16 appelé ici «Matcher» sur la base d un algorithme de Matching automatique qui fera l objet de recherches futures. Dans le fichier Mapping, créé pour le moment manuellement, est décrite la correspondance entre la structure du fichier XML et celle, connue, de la table transitoire. Un programme appelé «Archiver» renommera alors le fichier XML (le nom du fichier portera un «Timestamp») et l archivera dans un répertoire donné. Les données seront ensuite lues dans la table transitoire est réparties sur la base de données cible. Cette action est accomplie par le programme appelé «Rules engine». Cette répartition a lieu suivant des règles, qui ne sont autres que des commandes SQL, elles même auparavant saisies dans une table. La syntaxe SQL devra être celle du SQL correspondant à la base de données exploitée (Oracle, MySQL, Sybase, DB2, etc.). Pendant tout le processus, des informations et/ou messages d erreur sont consignés dans un fichier Log. Dans le cadre d une extension future, une interface graphique (GUI), qu on appellera «Designer», offrira plus de confort dans la saisie des Rules, la programmation du Trigger et la création des tables transitoires, voire de la base de données cible. Un programme d installation permettra aussi de copier les différents programmes sur le poste client et de créer leurs fichiers de paramètres (.ini). 16

17 Chargement de données XML dans un data warehouse MAPPING GENERATOR (generatemapping.java) TRIGGER (x2dw.bat/.sh) Algorithme α Fichier Log Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire Mapping (catalog.hbm.xml) RULES ENGINE (applyrule.java) Rules ARCHIVER (archivfile.java) Fichier Archive Base de données cible 1 Fig.1: Architecture globale 17

18 1.2 Les composants du système La fig. 2 décrit les composants du système, en les situant sur des plans fonctionnels. OpenX2DW possède une entrée, un fichier au format XML envoyé par un système source, et une sortie, qui pourrait être par exemple le résultat d une requête lancée à la base de données cible par le biais d un outil de Reporting ou de Queriying ou un Tool de Business Intelligence. OpenX2DW est constitué de trois couches: la couche supérieure est nommée «contrôle du processus». C est ici que se trouve le Trigger, donc le Job sensé démarré le processus, ainsi que les fichiers Log contenant les messages d informations ou d erreurs. La couche du milieu est l environnement «Runtime». Cette couche contient les éléments qui constituent la fonction véritable du système, qui est de charger des données XML dans une base de données relationnelle. La dernière des couches contient le Designer, qui prodiguera aux gestionnaires du système (le team ETL) plus de convivialité dans la saisie des Rules, la programmation du Trigger et la création des tables transitoires, voire de la base de données cible. Tous les programmes, que ce soit le Loader, le Matcher, l Archiver ou la Rules engine sont des programmes Java. Des commandes SQL sont incorporées dans la Rules engine. Ces commandes s adressent à la table contenant les Rules, aux tables transitoires ou à la base de données cible. Ces commandes sont strictement conformes au SQL-Standard ANSI. Ceci permet à l utilisateur du système d utiliser une base de données d un fournisseur quelconque. Les normes SQL existantes jusqu ici sont SQL-92, SQL-99 et SQL Nous avons utilisé ici le SQL-92, comme recommandé dans les Collected Java Practices [CJAP]: «Almost all relational databases extend the standard set of SQL commands. If these extensions are used, then portability rapidly degrades. In some applications, such portability may not be a concern. However, if portability is important, then it is clearly an advantage to use only the standard SQL-92 commands.» Ainsi, une table transitoire, est effacée dans le Loader de la manière suivante: DELETE FROM <table_name>; 18

19 Cette commande SQL est envoyée à la base de données contenant les tables transitoires, par le biais de JDBC, avec : executeupdate(commande) ; La Rules engine lit les Rules en vue de les exécuter avec : SELECT Rule_code, Rule_text, alternative_rule, if_rulefailure, if_alternativefailure, error_level, active_status FROM Rules WHERE Rule_code='"+args[0]+ +"'" Cette commande SQL est envoyée à la base de données contenant les Rules, par le biais de JDBC, avec : executequery(commande) args[0] est ici le code de la règle à appliquer, passé comme paramètre à la Rules engine. La règle est ensuite elle-même (c'est-à-dire ici le texte de la règle) exécutée comme commande SQL. executeupdate(rule_text); Ceci est aussi valable pour la règle alternative, dans le cas où celle-ci doit être exécutée en cas d échec de la règle. 19

20 1.2.1 Le Trigger Le Trigger permet d automatiser l ensemble du processus. Suivant le système d exploitation de la machine sur laquelle est installé le runtime OpenX2DW, il consiste en un «job» ou «daemon» et en une shell ou en un fichier de commandes Windows (.bat). On dispose sous Windows, par exemple, d un composant système appelé planificateur de tâches, qui permet de lancer l exécution d un programme avec une fréquence prédéfinie. Sous Windows, le système d exploitation de la machine sur laquelle a été installé le runtime OpenX2DW, le Trigger est composé d une tâche planifiée qui lance l exécution d un fichier de commandes (.bat). Le fichier de commandes.bat répond à la description suivante : IF EXIST <File name> ( ) ECHO generating Mapping file <File name>... Appel(s) du Matcher ECHO loading table <Table name>... Appel(s) du Loader ECHO archiving file <File name>... Appel(s) de l Archiver ECHO applying Rule <Rule code>... Appel(s) de la Rules engine La tâche planifiée lancera suivant la fréquence désirée le fichier.bat. La fréquence est choisie suivant les besoins. Le fichier.bat peut être exécuté plusieurs fois par jour comme il peut être exécuté une fois par mois. Matcher, Loader, Archiver et Rules engine ne sont exécutés que si vraiment le fichier <File name> est présent dans la Scan directory. Le fichier de données au format XML ayant atterri dans la Scan directory, c est d abord le Matcher qui est appelé. Le Loader, se basant sur le fichier Mapping généré par le Matcher, va ensuite être exécuté et charger les données dans les tables transitoires. L Archiver, qui déplacera le fichier traité vers un répertoire prévu à cet effet, puis la Rules engine, qui lira les données dans les tables transitoires et les distribuera sur la base de données cible, seront ensuite exécutés. L ordre suivant lequel l Archiver et la Rules engine 20

21 sont exécutés n est pas important, puisqu au moment de l exécution de l Archiver, les données ont déjà été chargées dans les tables transitoires. Pour un fichier XML à charger, le Loader est exécuté une seule fois. La Rules engine par contre peut être exécutée plusieurs fois. Le nombre de fois pendant lequel elle est exécutée dépend du modèle de données de la banque de données cible et de la formulation des commandes SQL que sont les Rules. L administrateur de bases de données peut décider, pour des raisons techniques, de rassembler plusieurs Rules en une seule ou inversement d éclater une Rule en plusieurs. Pour la bonne lecture des Rules et la maintenance du système, il est même souhaitable que soit appliqué ce dernier cas de figure. 21

22 Contrôle du processus TRIGGER (x2dw.bat/.sh) Fichier Log Mapping (catalog.hbm.xml ) MAPPING GENERATOR (generatemapping.java) RULES ENGINE (applyrule.java) Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire Rules Fichier Archive ARCHIVER (archivfile.java) Base de données cible Environnement Runtime Umgebung Design et paramétrage DESIGN CLIENT (GUI) Fig. 2: Les trois couches du système 22

23 1.2.2 Le Matcher Le rôle du Matcher est de créer, sur la base d un algorithme de Matching automatique, le fichier Mapping. Le Loader se basera sur ce fichier Mapping, lui-même au format XML, pour charger les données XML dans les colonnes correspondantes de la table transitoire. La création automatique du fichier Mapping, dont un exemple est donné ci-dessous, bien que prévue dans l architecture globale du système, a encore lieu manuellement. <?XML version="1.0"?><!doctype hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class entity-name="catalog" node="catalog" table="catalog"> <id name="catalogid" node="catalogid" column="catalogid" type="string"/> <property name="journal" node="journal" column="journal" type="string"/> <property name="publisher" node="publisher" column="publisher" type="string"/> <property name="edition" node="edition" column="edition" type="string"/> <property name="title" node="title" column="title" type="string"/> <property name="author" node="author" column="author" type="string"/> </class> </hibernate-mapping> La syntaxe pour l appel du Matcher est la suivante: ECHO generate Mapping file... java -jar generatemapping.jar <File_name> <MappingFile_name> où: <File_name> est le nom du fichier XML à charger. <MappingFile_name> est le nom du fichier Mapping généré par le Matcher. Le Matcher est un programme Java qui a été packagé en un fichier Jar. generatemapping.jar est le nom de ce fichier. Le Matcher requiert le renseignement de certains paramètres contenus dans un fichier de configuration (fichier.ini). Cette action a lieu lors du lancement du programme d installation, sur la base des informations fournies par le team ETL. Parmi ces paramètres figurent le chemin pour la Scan Directory, le chemin pour le fichier Mapping généré par le Matcher ainsi que le nom, le chemin et la dimension maximale du fichier Log. Un exemple de fichier de configuration pour le Matcher est donné ci-dessous : 23

24 [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Mapping File] Directory=C:\OpenX2DW\production\Mapping Extension=XML [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = Mail = S User = w006131b Password = xlglsnu09pq= Un protocole de l exécution du Matcher est tenu à travers l enregistrement de messages dans le fichier Log. On pourra trouver dans ce fichier des informations telles que le nom du fichier XML ainsi que le nom du fichier Mapping généré. Des messages d erreurs éventuelles sont écrits dans le fichier Log. Un enregistrement dans le fichier Log a la structure suivante : <Date> <Heure> <Type de message> <Texte du Message> Le type de message est = I pour Information = S pour sévère L exécution du Matcher a lieu suivant le schéma suivant: - Début de programme; Initialisation des variables; - Lecture des paramètres à partir du fichier.ini; - Ouverture du fichier Log s il existe, création d un fichier Log sinon; - Analyse du fichier XML; - Génération du fichier Mapping ; - Fermeture des fichiers ouverts; Fin de programme; 24

25 1.2.3 Le Loader La fonction du Loader est de charger des données XML dans une table transitoire d une base de données relationnelle d un fournisseur quelconque (Oracle, SQL-Server, DB2, mysql, etc.) Hibernate Le Loader conçu et développé dans le cadre de ce travail est basé sur le Framework open source Hibernate et utilise des librairies mises à la disposition des utilisateurs de ce système. Hibernate et sa capacité à charger des données XML dans une table est décrite par Deepak Vohra [JABO] comme suit : «Hibernate is an open source object/relational persistence and query service for Java. Hibernate's latest version, 3.x, introduces a new feature: XML-to-database Mapping, which allows you to map data representation in an XML document to a database (of which Hibernate supports several - including DB2, MySQL, Oracle, and PostgreSQL). With Hibernate, you map your XML document nodes to database columns. Only an XML Mapping file is required to map an XML document to a database table; a POJO is not required. Hibernate generates the required SQL to create, update, and delete database tables. You can also use it to generate tables from a Hibernate configuration file and add data to a database table from an XML document. You can retrieve database table data as an XML document and update it from that XML document. Further, Hibernate 3.x supports dom4j API for XML processing. Hibernate also provides classes for Ant build tasks.». Nous retiendrons donc de la citation ci-dessus qu avec le Framework Hibernate, seul est nécessaire, pour le chargement des données, un fichier Mapping, établissant la correspondance entre la structure du fichier XML d entrée et celle de la table destinée à recevoir les données (pour nous, la table transitoire). Un chargement de données XML vers une base de données relationnelle sans persistance nécessite un programme spécifique au fournisseur de la base de données tel que XML Extender ou une API telle que XML SQL Utility. JDBC 4.0 a introduit un nouveau type de données SQLXML pour charger un document XML dans la colonne de type XML. JDBC 4.0 n existe malheureusement pas encore pour l ensemble des bases de données. Hibernate s XML persistance offre cette possibilité. Les avantages de Hibernate par rapport à JDBC dans ce contexte sont énoncés par Phutela dans «Hibernate vs JDBC» [PHUT] : 25

26 «Working with both Object-Oriented software and Relational Database is complicated task with JDBC because there is mismatch between how data is represented in objects versus relational database. So with JDBC, developer has to write code to map an object model's data representation to a relational data model and its corresponding database schema. Hibernate is flexible and powerful ORM solution to map Java classes to database tables. Hibernate itself takes care of this mapping using XML files so developer does not need to write code for this.» Simple API for XML (SAX) Pour l analyse du document XML, Hibernate utilise un parseur SAX. SAX (Simple API for XML) est un standard de fait qui décrit une API (Application Programming Interface) pour l analyse de données XML. Un SAX-Parseur lit les données XML comme flux de données séquentiel et appelle des fonctions prédéfinies callback (callback function) pour les évènements définis dans le standard. Une application qui utilise SAX peut enregistrer ses propres sous-programmes comme fonctions callback et exploiter de cette manière les données XML. SAX, à l inverse de DOM, est évènementiel. SAX travaille suivant la notion de pipeline. Il définit un ensemble d évènements, qui peuvent apparaître lors de la lecture séquentielle du document XML. En reconnaissant une structure syntaxique, l analyseur syntaxique (parseur) lance une routine de traitement, qui exécute, le cas échéant une routine individuelle de l évènement. Ainsi l exploitation des données peut commencer dès la lecture des premiers caractères. Ceci a pour conséquence d écourter les temps d accès. SAX minimise en même temps les besoins en capacité de stockage, puisque en mémoire ne figurent, à coté de l élément lu, que les données explicitement sélectionnées par la routine de traitement. Les évènements sont injectés dans le parseur parallèlement à la lecture du document. Considérons le document suivant: <?XML version="1.0"?> <seminaire> <titre>dom, SAX et SOAP</titre> <contenu> <chapitre value="1">introduction</chapitre> <chapitre value="2">sujet</chapitre> <chapitre value="3">conclusion</chapitre> </contenu> </seminaire> 26

27 Les évènements générés par un parseur SAX seront, à la lecture du document ci-dessous, les suivants : startdocument() startelement("seminaire",[]) startelement("titre",[]) character("dom, SAX et SOAP") endelement("titre") startelement("contenu",[]) startelement("chapitre", ["value="1""]) character("introduction") endelement("chapitre")... Le parseur interrompt son travail à chaque évènement et attend que le programme appelant lui redonne la main. Celui-ci peut pendant ce temps lancer un traitement. DOM (Document Object Model), contrairement à SAX utilisé dans le Framework Hibernate, utilise une approche hiérarchique. Un parseur DOM construit une structure hiérarchique contenant des objets représentant les éléments du document. Le document donné ci-dessous serait décomposé suivant l arbre suivant : seminaire titre contenu chapitre Fig. 3: Exemple de structure hiérarchique construite par un parseur DOM Utilisation du Framework Hibernate dans le Loader La première action à entreprendre est de préciser dans le fichier de paramètres de Hibernate (hibernate.properties) la base de données, le driver JDBC et l URL de connexion utilisés. Dans l exemple ci-dessous, Hibernate est configuré pour utiliser une base de données Oracle 10g et charger les données dans une table du schéma «Scott» dont le mot de passe est 27

28 «tiger». Le nom de la base de données est «orcl», et elle est configurée pour recevoir les requêtes sur le port ## MySQL ##hibernate.dialect org.hibernate.dialect.mysqldialect #hibernate.dialect org.hibernate.dialect.mysqlinnodbdialect ##hibernate.dialect org.hibernate.dialect.mysqlmyisamdialect #hibernate.connection.driver_class com.mysql.jdbc.driver #hibernate.connection.url jdbc:mysql://poire:3306/x2dw #hibernate.connection.username root #hibernate.connection.password Amadeus ## Oracle #hibernate.dialect org.hibernate.dialect.oracledialect hibernate.dialect org.hibernate.dialect.oracle10gdialect hibernate.connection.driver_class oracle.jdbc.driver.oracledriver hibernate.connection.username scott hibernate.connection.password tiger hibernate.connection.url L utilisation de MySQL est donnée en commentaire. Le nom de l utilisateur aurait été «root» et le mot de passe «Amadeus». La base de donnée est x2dw et elle est configurée pour recevoir des données sur le port Pour pouvoir charger les données XML dans la table transitoire, Hibernate nécessite le fichier Mapping auparavant créé par le Matcher. Un exemple de fichier Mapping est donné page 24. Les packages jar de Hibernate nécessaires sont les suivants : JAR/Zip File <Hibernate3.1>/hibernate3.jar <Hibernate3.1>/lib/dom4j jar <Hibernate3.1>/lib/commons-logging jar <Hibernate3.1>/lib/commons-collections jar <Hibernate3.1>/lib/ehcache-1.1.jar <Hibernate3.1>/lib/cglib jar <Hibernate3.1>/lib/jta.jar <Hibernate3.1>/lib/asm.jar <Hibernate3.1>/lib/antlr-2.7.6rc1.jar <Hibernate3.1>/lib/jaxen-1.1-beta-7.jar Description Classes API Hibernate, y compris la classe org.hibernate.tool.hbm2ddl.schemae xport Classes Hibernate auxiliaires A ceci il faut rajouter le JDBC pour l accès à la base de données. Dans le cas d Oracle : 28

29 <Oracle10g>/jdbc/lib/ojdbc14.jar 29

30 La syntaxe pour l appel du Loader est la suivante: ECHO loading table CATALOG... java -jar loadxmlfile.jar <File_name> <MappingFile_name> Où: <File_name> est le nom du fichier XML à charger. <MappingFile_name> est le nom du fichier Mapping généré par le Matcher. Le Loader est un programme Java qui a été packagé en un fichier Jar. LoadXMLFile.jar est le nom de ce fichier. Un fichier Mapping est nécessaire pour pouvoir charger les données contenues dans le fichier XML dans une table transitoire. Le fichier Mapping porte le même nom que la table transitoire. Le Loader, tout comme les autres modules du système, requiert le renseignement de certains paramètres contenus dans un fichier de configuration (fichier.ini). Cette action a lieu lors du lancement du programme d installation, sur la base des informations fournies par le team ETL. Parmi ces paramètres figurent le chemin pour la Scan Directory, le chemin pour le fichier Mapping généré par le Matcher, les informations pour l accès à la base de données contenant les tables transitoires, le nom, le chemin et la dimension maximale du fichier Log. Le mot de passe pour l accès à la base de données est crypté. Le cryptage est pris en charge par le programme d installation. Le mot de passe est lu par le Loader dans le fichier de configuration et décrypté. Un exemple de fichier de configuration pour le Loader est donné ci-dessous : [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Configuration File] Directory=C:\OpenX2DW\production\Mapping Extension=XML [Transient Database] Database=mysql Host=poire Port=3306 SID=x2dw 30

31 User=root Password=6LMVoJ+x9QvWsSXArQ0ziw== [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = Mail = S User = w006131b Password = xlglsnu09pq= Un protocole de l exécution du Loader est porté dans le fichier Log. On pourra trouver dans ce fichier des informations telles que le nom du fichier XML, le nom du fichier Mapping, et le nom de la table transitoire traités par le Loader. Des messages d erreurs éventuelles sont écrits dans le fichier Log, ainsi que les actions entreprises dans ce cas. Un enregistrement dans le fichier Log a la structure suivante : <Date> <Heure> <Type de message> <Texte du Message> Le type de message est = I pour Information = S pour sévère Le déroulement du programme a lieu suivant le schéma suivant: - Début de programme ; Initialisation des variables; - Lire des paramètres à partir du fichier.ini; - Ouvrir le fichier Log s il existe, création d un fichier Log sinon; - Décrypter le mot de passé pour l accès à la base de données; - Connexion à la base de données; - Supprimer le contenu de la table transitoire (DELETE et non pas DROP Table) ; - Appeler la classe Hibernate3.saveXMLDocument pour le chargement des données XML dans la table transitoire; Les deux paramètres passées à cette classe sont le nom du fichier XML à charger ainsi que le nom du fichier Mapping ; - Fermer les fichiers ouverts; Fin de programme; L appel de la classe Hibernate.saveXMLDocument se déroule suivant les étapes suivantes : 31

32 La création d un objet Configuration a d abord lieu. La classe org.hibernate.cfg.configuration est utilisée pour spécifier les propriétés de la configuration et les fichiers Mapping en vue de la création d une SessionFactory. Configuration config=new Configuration(); Le fichier Mapping, auparavant créé par le Matcher est ensuite ajouté à la configuration: config.addfile("<fichier_mapping>"); org.hibernate.session est l interface principale entre une application Java et Hibernate. Un objet Session est obtenu avec l appel de SessionFactory. L interface SessionFactory offre la methode opensession() pour la création d une connexion à la base de données et ouvre une session dans la connexion. SessionFactory sessionfactory=config.buildsessiofactory(); Session sess =sessionfactory.opensession(); Un objet Transaction est obtenu à partir de la Session en vue d insérer des données dans la table transitoire: org.hibernate.transaction tx = sess.begintransaction(); Une session est ouverte avec comme entity mode DOM4J. La session secondaire a la même connexion, transaction que la session primaire. DOM4J (DOM for Java) est une API Java permettant de travailler avec des documents XML. DOM4J est compatible avec les standards SAX, DOM et JAXP. Session dom4jsession = session.getsession(entitymode.dom4j); Un SAXReader est créé pour analyser (parse) le document XML qui doit être «persisté» à la base de données. L analyse du document XML a lieu à travers l utilisation de la méthode read(file): 32

33 SAXReader saxreader = new SAXReader(); Document document = saxreader.read(new File("c:/Hibernate/catalog.XML")); Une liste des noeuds de l objet document est obtenue, puis est créé un objet Iterator pour l objet List: List list = document.selectnodes("//catalog"); Iterator iter = list.iterator(); L objet List est parcouru dans une itération dans le but de récupérer les objets noeuds. Ceux-ci sont sauvegardés dans la base de données à travers l utilisation de la méthode save(string entityname, Object object). La méthode flush() est utilisée pour la synchronisation de la base de données avec les nœuds du document XML dans l objet Session: while (iter.hasnext()) { Object catalog = iter.next(); dom4jsession.save("catalog", catalog); } Un flush de la session a finalement lieu, ainsi qu un commit de la transaction. Après quoi la session est fermée: session.flush(); tx.commit(); session.close(); 33

34 1.2.4 Le Archiver La fonction de l Archiver est d archiver un fichier XML, déjà traité par le Loader, dans un répertoire prévu à cet effet. Le nom du fichier archivé porte un Timestamp. La syntaxe pour l appel de l Archiver est la suivante: java -jar archivfile.jar ARCHIV FILE <File_name> où: <File_name> est le nom du fichier XML à archiver. archivfile.jar est le nom du programme Java compacté, que nous avons appelé Archiver. Ici aussi des données de configuration sont stockées dans un fichier.ini qui sera créé par le programme d installation sur la base des informations fournies par le team ETL durant l installation. Parmi ces paramètres figurent: Chemin d accès à la Scan directory, chemin du répertoire d archivage, chemin et volume maximal autorisé du fichier Log. [Data File] Directory=C:\OpenX2DW\production\data Extension=XML [Archiv] Directory=C:\OpenX2DW\production\backup Extension=bak [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.log Size=1000 [Mail] Server = mail.kit-consulting.net Address = Mail = S User = w006131b Password = xlglsnu09pq= L archivage des fichiers de données a lieu, après leur traitement par le Matcher et le Loader, suivant le schéma suivant: 34

35 - Début de programme ; Initialisation des variables; - Lire les paramètres de configuration à partir du fichier.ini; - Ouvrir le fichier Log s il existe, créer un fichier Log sinon; - Déterminer le Timestamp; - Renommer le fichier XML: Le nouveau nom contient le Timestamp; - Copier le fichier XML renommé dans le répertoire archive; - Supprimer le fichier XML original; Dans le fichier Log, les étapes suivantes sont portées dans le protocole: Changement de nom du fichier, copie du fichier, suppression du fichier. La structure du fichier Log est identique à celle du fichier Log du Matcher ou du Loader. Le type de message est «I», si l action a abouti ou «E» dans le cas contraire. 35

36 1.2.5 La Rules engine Les données XML étant chargées dans les tables transitoires, les Rules peuvent être aussitôt exécutées. Une Rule est exécutée à travers l appel de la Rules Engine, à laquelle est transmis le code d une Rule: java -jar applyrule.jar <être code> où <être code> étant le code de la être à exécuter La Rule, c est à dire le texte de la commande SQL, est stockée dans la table des Rules. La structure de cette table est la suivante: Nom de colonne Type Longueur Valeurs possibles Default RULE_CODE Character 5 RULE_TEXT Text LONGTEXT/ CLOB ALTERNATIVE_RULE Text LONGTEXT/ CLOB IF_RULEFAILURE Character 1 R pour Rollback C pour Commit A pour Apply R alternative être IF_ALTERNATIVEFAILURE Character 1 R pour Rollback R C pour Commit ERROR_LEVEL Character 1 I pour Information W pour Warning E pour Error S pour Severe S COMMENTS Character 255 ACTIVE_STATUS Character 1 Y pour Yes N pour No Le script de création de cette table pour Oracle 10g par exemple, est le suivant: N CREATE TABLE rules ( rule_code VARCHAR2(5) NOT NULL, rule_text CLOB, alternative_rule CLOB, if_rulefailure CHAR(1) DEFAULT 'R', if_alternativefailure CHAR(1) DEFAULT 'R', error_level CHAR(1) DEFAULT 'S', 36

37 date_created DATE DEFAULT NULL, comments VARCHAR2(255) DEFAULT NULL, active_status CHAR(1) DEFAULT 'N', PRIMARY KEY(rule_code) ); Rule-Code est ici un identifiant (Primary key). Une Rule peut consister en une commande DML (Data Manipulation Language) quelconque. Le team ETL est responsable de sa formulation. C est à lui à veiller à sa logique, c'est-à-dire à ce que les informations soient écrites au bon endroit dans la base de données cible et dans la forme requise. Comme pour toute base de données relationnelle, les clés primaires (primary keys), les clés étrangères (foreign keys) ainsi que les autres contraintes d intégrité (check constraints) doivent être prévues partout où la nécessité s impose. Dans le cas où un enregistrement ne répond pas aux contraintes existantes, la Rules engine interceptera le message d erreur émis par la base de données et le transmettra au team ETL en l enregistrant dans le fichier Log. Aussi le team ETL doit s assurer du bon ordre d exécution des Rules. Dans le cas où une tentative d insertion d un enregistrement «fils» a lieu avant que ne le soit l enregistrement «parent», l insertion échoue. Il peut être indiqué, à titre d exemple, d utiliser lorsqu il s agit d une base de données MySQL la commande «REPLACE» au lieu de la commande «INSERT». Un «REPLACE» peut correspondre au désir des utilisateurs, d «écraser» (mettre à jour) un enregistrement existant déjà dans la base de données par un nouvel enregistrement comportant la même clé primaire que l enregistrement existant. Essayer dans ce cas là d insérer un enregistrement avec une commande «INSERT» mènerait à une erreur. Comme pour les autres éléments du système, les paramètres de configuration de la Rules engine sont stockés dans un fichier.ini, parmi ceux-ci les informations pour l accès à la base de données contenant la table Rules, et à celle contenant les tables transitoires et la base de données cible, sont renseignées Le fichier.ini sera créé par le programme d installation à partir des données fournies par le team ETL lors de l installation. Le mot de passe sera écrit dans le fichier.ini sous forme crypté. 37

38 [Target Database] Database=oracle Host=localhost Port=1521 SID=orcl User=scott Password=NJDBxORWkzY= [Rules Database] Database=oracle Host=localhost Port=1521 SID=orcl User=scott Password=NJDBxORWkzY= [Log] Directory=C:\OpenX2DW\production Name=OpenX2DW.Log Size=1000 [Mail] Server = mail.kit-consulting.net Address = Mail = S User = w006131b Password = xlglsnu09pq= Une Rule peut être désactivée. Sa mise en oeuvre n aura pas lieu, même si le code de cette Rule est transmis à la Rules engine pour exécution. Un message d erreur sera simplement écrit dans le fichier Log. Le team ETL a aussi la possibilité de préciser, dans le cas où l exécution de la Rule échoue, si un «Commit», un «Rollback» ou une Rule alternative doit être exécuté. Un «Commit» ou un «Rollback» pourront être de nouveau exécutés si la Rule alternative, n a pas pu être mise en œuvre à son tour. Le Pseudocode suivant décrit le déroulement de l exécution du programme. 38

39 - Début de programme; Initialisation des variables; - Lecture des paramètres de configuration à partir du fichier.ini; - Décryptage du mot de passe pour l accès à la base de données contenant la table Rules; - Connexion à la base de données contenant la table Rules; - Lecture de la table Rules pour le code Rule donné; - Fermeture de la connexion; - Décryptage du mot de passe pour l accès à la base de données cible; - Connexion à la base de données cible; - Désactivation de l option «Autocommit»; - Si la Rule est désactivée : Ecrire l information dans le fichier Log et quitter le programme; - Exécuter la Rule; - Si l exécution de la Rule est réussie { - Commit; - Quitter le programme; } - Si l exécution de la Rule n est pas réussie { - Si un Commit doit avoir lieu { - Commit; - Quitter le programme; } - Si un Rollback doit avoir lieu { - Rollback; - Quitter le programme; } - Si la Rule alternative doit être exécutée { - Rollback; - Exécuter la Rule Alternative; - Si l exécution de la Rule alternative est réussie { - Commit; - Quitter le programme; } - Si l exécution de la Rule alternative n est pas réussie { - Si un Commit doit avoir lieu { - Commit; - Quitter le programme; }- Si un Rollback doit avoir lieu { - Rollback; - Quitter le programme; } } } } 39

40 1.2.6 Environnement de développement et de test OpenX2DW a été développé sous Windows XP Pro et testé sous Windows XP Pro et Windows Server Le Trigger est ce qui est appelé sous Windows une «tâche planifiée» qui lance l exécution d un fichier de commandes MS- DOS (.bat). Ceci correspond sous Unix/Linux à un Dämon et une Shell. OpenX2DW est constitué de plusieurs programmes Java qui ont été packagé en fichiers Jar. Un environnement runtime j2re ou postérieur doit être installé Sur le poste client. Une classe Java pour la lecture/écriture de fichiers de paramètres (.ini), mise à la disposition comme freeware, des développeurs Java par son auteur [KHAN], a été téléchargée à partir de l Internet et utilisée. Les mots de passe pour la connexion aux bases de données cible et contenant les tables transitoires et les Rules sont stockés dans les fichiers de paramètres.ini. Ces mots de passe sont écrits par le programme d installation qui les crypte auparavant. Ils sont lus par les différents programmes et décryptés. Une classe du Java Developers Almanac 1.4 [TJDA] a été utilisée pour leur cryptage et décryptage. Le cryptage est basé sur le Data Encryption Standard (DES) avec utilisation d une «Pass Phrase». Parallèlement à l écriture des messages d informations ou d erreurs dans le fichier Log, OpenX2DW offre la possibilité de les envoyer à une adresse Mail donnée. L utilisateur peut saisir, lors du processus d installation, les informations permettant la connexion à un Serveur SMTP. Cette option a été réalisée à travers l importation des packages Java javax.mail et javax.mail.internet. Les paramètres mail.smtp.host et mail.smtp.auth étant définis, une Mail Session est ouverte, à l intérieur de laquelle un message est instancié. L ensemble des caractéristiques du message sont complétées avec les méthodes setrecipient, setcontent et setsubject. Le message est envoyé avec Transport.send(<myMessage>). Les paramètres de Mailing sont à donner lors de l installation des programmes ; ils figurent sur les fichiers de configuration créés par le programme d installation. Les paramètres de Mailing sont : le nom du serveur SMTP, l adresse mail du destinataire des messages, le type de messages qui doivent être envoyés ( sévères ou moins sévères) ainsi que le code-utilisateur et le mot de passe pour l accès au serveur SMTP. 40

41 [Mail] Server = mail.kit-consulting.net Address = Mail = S User = w006131b Password = xlglsnu09pq= NetBeans [NETB] a été utilisé comme environnement de développement Java. NetBeans est un produit distribué à titre bénévole par Sun Microsystems. Sun ONE Studio est une version payante de ce même produit. Les différents tests ont d abord eu lieu sur une base de données MySQL 5.0 puis sur une base de données Oracle 10g. MySQL dispose d une licence GPL ou commerciale [MYSD]. MySQL peut être exploité sous Windows, sur la plupart des variantes Unix, sur Mac OS X et OS/2. Pour la gestion des bases de données MySQL il est possible d utiliser l interpréteur de commandes (Commandes mysql et mysqladmin). Une alternative à cela est d utiliser l application Open Source phpmyadmin. Celle-ci nécessite l installation d un serveur Web et de PHP. Une autre alternative encore serait d utiliser les outils MySQL Administrator et MySQL Query Browser de la société MySQL AB [MSQA]. MySQL dispose de différents types de tables: MyISAM, InnoDB, Berkeley DB. Un procédé transactionnel n est possible qu avec des tables du type InnoDB. Etant donné que la Rules engine déclenche un COMMIT ou un ROLLBACK dans le cas de l échec de l application d une Rule, c est bien ce type de table qui a été choisi. Le texte des rules est stocké dans une colonne de type LONGTEXT. C est le JDBC MySQL de la société MySQL AB [MSQA] qui a été utilisé comme Middleware. Celui-ci est sous licence GPL. La connexion a lieu de la manière suivante: String url ="jdbc:mysql://localhost:3306/x2dw_target?user=root&password=bonjour "; /** * Connection to MySQL DB **/ try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception e) { System.out.println ("ClassNotFoundException: "); System.out.println (e.getmessage()); } try { connect = DriverManager.getConnection(url); System.out.println ("Connection to DB successfull"); 41

42 } catch(sqlexception e) { System.out.println("SQLException: " + e.getmessage()); } Le Driver est tout d abord chargé avec Class.forName("com.mysql.jdbc.Driver").newInstance(). L instanciation du Driver a lieu avec l appel de Class.forName automatiquement. Le Driver se connecte ensuite avec DriverManager.getConnection(url) à l URL donnée. L URL contient les informations de connexion: Host, Port, User et Password. La connexion aux bases de données a été rendue possible grâce à l importation des packages Java java.net et sql.net. Oracle 10g, l autre base de données sur laquelle le système a été testé, soumis à une licence commerciale, existe aussi sous nombre de systèmes d exploitation, y compris sous Linux. Il est possible d utiliser pour la gestion de la base de données OEM (Oracle Enterprise Manager) ou des outils tiers, tels que Toad for Oracle de Quest Software. Le texte des Rules est stocké dans une colonne de type CLOB. Le JDBC est fourni par Oracle sous forme de.jar (ojdbc14.jar). Les classes permettant de charger le driver sont importés en début de programme. Comme donné ci-dessous, l instanciation de la source de données a lieu avec: OracleDataSource ods = new OracleDataSource(). La connection à la source de données a lieu avec : connect = ods.getconnection(). L URL contient les informations de connexion Host, Port et SID. Le nom d utilisateur et le mot de passe sont envoyés à la source de données comme paramètres avec les méthodes setuser et setpassword. String url try { OracleDataSource ods = new OracleDataSource(); ods = new OracleDataSource(); ods.seturl(url); ods.setuser(dbuser); ods.setpassword(decryptedpass); connect = ods.getconnection(); System.out.println("connected to Oracle DB..."); } catch (ExceptionInInitializerError eie) { System.out.println eie.getmessage()+"\n")) { return; } 42

43 1.3 Conclusion Le système décrit ci-dessus est donc prêt à être implémenté. Des données XML peuvent être chargées dans un Data warehouse utilisant un SGBD Oracle 10g ou MySQL 5.0. Notre intention étant de faire de ce système un produit Open Source, le driver d un autre SGBD (SQL Server, Sybase, etc.) peut être facilement inclus dans les modules du système qui accèdent à la base de données, en l occurrence le Loader et la Rules Engine. Le fichier Mapping étant créé manuellement, le système ne peut toutefois être utilisé que si la structure des données XML en entrée est connue. Ceci est valable dans le cas par exemple d un abonnement à un service web externe fournissant un fichier XML dont la structure est invariable (éléments ayant toujours le même nom et le même type). 43

44 2 Le système dans un procédé ETL et dans un «environnement distribué» 2.1 Data warehouse, définition et concepts Un entrepôt de données (ou Data warehouse) «désigne une base de données utilisée pour collecter et stocker de manière définitive des informations volatiles provenant d'autres bases de données ( ). Les informations collectées serviront à faire des statistiques, des recherches et des rapports. Les entrepôts de données sont utilisés notamment en informatique décisionnelle» [WIKI]. Les données contenues dans un Data warehouse sont, contrairement aux données d un système de production : non volatiles : elles ne peuvent être ni modifiées ni effacées intégrées, dans la mesure où elles proviennent de diverses sources hétérogènes datées. Ceci permet une historisation de l information et offre la possibilité de suivi de l évolution des indicateurs à analyser. «En amont de l'entrepôt de données se place toute la logistique d'alimentation des données de l'entrepôt : extraction des données de production, transformations éventuelles et chargement de l'entrepôt (c'est l'etl ou Extract, Transform and Load ou encore datapumping)» [WIKI] alors qu «en aval de l'entrepôt de données ( ) se place tout l'outillage de restitution et d'analyse des données (en anglais : Business Intelligence) : outils de requêtage ou de reporting, cubes ou hypercubes multidimensionnels, data mining» [WIKI]. 2.2 OpenX2DW dans un procédé ETL Comme on peut le voir sur la Fig. 4, OpenX2DW possède, du point de vue du Data Warehousing, une composante d extraction, une de transformation et une de chargement. Les utilisateurs du système sont le team ETL, comme désigné dans la littérature [Kimb04]. «La découverte et l indication de modifications dans les différentes sources qui alimentent le Data Warehouse», désignées par Bauer et Günzel [Baue04] par «Monitoring», est confié ici aux systèmes sources. Ce que nous avons appelé dans OpenX2DW Loader, est un «Extractor». Les extracteurs sélectionnent et transportent les 44

45 données à partir des sources dans la zone de travail» [Baue04]. La zone de travail (Staging area) correspond dans X2DW aux tables transitoires. Le Loader sélectionne les données dans le fichier de données XML sur la base du fichier Mapping généré par le Matcher pour les transporter vers les tables transitoires correspondantes. Le Loader contribue ainsi au transport des données vers la zone de travail. La Rules engine est Transformator, puisqu elle intervient dans le traitement des clés primaires. «Le traitement des clés est une tâche importante. Des clés peuvent, lors du transfert de données à partir de plusieurs sources de données vers un Data- Warehouse, ne pas être prises en charge, étant donné qu elles doivent être uniques. Dans le cadre des transformations, des ersatz aux clés sources sont créées artificiellement» [Baue04]. La création d ersatz est confiée ici à la Rules engine. Une même pièce de rechange pouvant être stockée dans deux magasins différents, il sera tout indiqué de combiner le code de la pièce de rechange avec le code du magasin et construire ainsi pour la pièce de rechange un code unique. De cette manière l information concernant un même article et provenant d un même magasin (c'est-à-dire d une même source) sera reconnue et rejetée ou traitée. OpenX2DW devient ainsi multi-sites, dans ce cas donc multi-magasins. Une adaptation du format des données de type date, lors du transfert de données des tables transitoires vers la base de données cible est très souvent inévitable. La donnée issue d une colonne de type caractères d une table transitoire doit être transformée en une donnée de type date avant de pouvoir être stockée dans une colonne du même type dans une table de la base de données cible. Aussi des chiffres sont chargés à partir du fichier XML dans des colonnes des tables transitoires de type caractères. Ces chiffres peuvent contenir un point ou une virgule comme séparateur de décimales. Une transformation adéquate de la chaîne de caractères pour son stockage dans une colonne de type décimal, doit avoir lieu dans la Rule. D autres transformations peuvent avoir lieu : conversion de monnaie, conversion de mesures, mises à l échelle, agrégation. Tout type de commande SQL est permis pour cela, à condition que la commande SQL réponde à la syntaxe autorisé par le RDBMS en place et à la sémantique du modèle de données. La logique applicative doit être naturellement aussi observée. Contrairement aux erreurs syntaxiques et sémantiques, aucune erreur n est signalée dans ce cas là. 45

46 La Rules engine, qui est, suivant la définition précédente, Transformator, est en même temps un composant Loader du processus ETL. Les composants Loader «chargent des données transformées après achèvement du processus d acquisition, à partir de la zone de travail dans le Data Warehouse» [Baue04]. La composante analytique dans OpenX2DW consisterait en des outils externes standard de reporting et d analyse. Les composants analytiques «sont qualifiés pour l analyse et la présentation des données contenues dans le Data warehouse». Dans «Das Data Warehouse-Konzept» Mucksch et Behme [Muck00] recommandent : «Les règles résultant des processus d extraction, transformation, de correspondance et de définition doivent être stockées sous forme de Meta Data ; en cas de modification ou d extension des données sources, il ne sera pas nécessaire de modifier les programmes d interface, mais simplement d adapter les Meta Data» [Muck00]. Cette recommandation est prise en compte avec OpenX2DW étant donné qu en cas de changement dans la structure des données sources, les structures des tables transitoires ainsi que les Rules doivent être modifiées mais en aucun cas les programmes. En effet, la Rules engine se limite à «lire» les Rules - qui doivent tenir compte quand à elles des modifications de structure - et à les appliquer. Plus loin sont présentées les techniques et méthodes en rapport avec l extraction de données. Une différence est faite entre un Data refresh et un Data update. «S agissant d un Data refresh, les données du Data warehouse sont simplement «écrasées» par les données du système source, indépendamment du fait que celles-ci aient changées ou pas» [Muck00]. Par Data update «il s agit d un processus automatisé transportant des données à partir de l environnement source vers l environnement cible à des intervalles prédéfini. Il s agit de ne transporter que les données qui ont été modifiées dans le système source depuis le dernier Update» [Muck00]. Un Refresh peut avoir lieu dans OpenX2DW simplement à travers un INSERT ou un REPLACE. On peut imaginer un scénario dans lequel les enregistrements dans le fichier XML porteraient un Timestamp. Cette information existerait donc dans les fichiers transitoires. La Rule pour la sélection des données dans les tables transitoires et leur chargement dans le Data warehouse consisterait en une commande SQL comportant une clause WHERE: 46

47 WHERE <timestamp dans enregistrement de la table transitoire> > <timestamp dans enregistrement dans la base de données cible> «Des défauts aussi bien syntaxiques que sémantiques peuvent être reconnus dans le cadre de l assainissement de données» [Muck00]. Leur découverte et leur correction peuvent être automatisées ou manuelles. Ceci peut être réalisé dans OpenX2DW dans la formulation de la Rule. Il est concevable aussi que soient développés dans ce but des Triggers base de donnée réagissant à l insertion d enregistrements dans les tables transitoires. Les Triggers sont maintenant prévus dans tous les SGBD, y compris dans MySQL. Il est question dans «The Data Warehouse ETL Toolkit» [Kimb04] de renoncer aux tables transitoires (staging area). Les données contenues dans le document XML seraient écrites directement dans la base de données cible. Mais il est remarqué, dans un paragraphe intitulé «Arguments in favor of relational tables»: «When you read from a staging table in the ETL system, database storage is superior when filtering is anticipated and when joins between tables are performed. Dans notre conception du système OpenX2DW, nous utilisons cet avantage, étant donné qu une Rule en SQL peut avoir autant de joins que nécessaire. Dans OpenX2DW, comme il est dit dans Kimball und Caserta [Kimb04], «the data-staging area must be owned by the ETL- Team», les utilisateurs finaux ne sont pas autorisés à accéder aux tables transitoires. Il n est pas permis d établir des états ou rapports à partir de ces tables. Seul le processus ETL a le droit de lire ou écrire à partir de ces tables ou dans ces tables. 47

48 Base de données externe Fichier XML LOADER (loadxmlfile.java) Table transitoire RULES ENGINE (applyrule.java) Base de données cible Mapping (catalog.hbm.xml ) MAPPING GENERATOR (generatemapping.java) Rules Extract Transform Load Fig.4: OpenX2DW dans un processus ETL 48

49 2.3 OpenX2DW dans un «environnement distribué» Matcher, Loader, Archiver et Rules engine sont installés dans le même répertoire, étant donné qu ils sont tous lancés à partir du Trigger (cf ). Le répertoire est donné lors de l installation. Les bases de données contenant les Rules, les tables transitoires et la base de données cible peuvent être indépendantes l une de l autre (cf. Fig. 5). Nous utiliserons la terminologie «environnement distribué» dans le sens où les ressources les données en particulier - ne se trouvent pas au même endroit ou sur la même machine. Dans [Kimb04] les teams ETL sont avertis que le réseau peut être éventuellement encombré si le transfert de données entre les différentes composantes est volumineux : «Whenever you have to move data accross wires, the process is vulnerable to bootlenecking and performance degradation». Il est recommandé: «Depending on your infrastructure, it sometimes makes sense to run the ETL engine on the Data warehouse server to eliminate network traffic». La Rules engine n atteint les tables transitoires qu à travers la base de données cible. Les Rules sont exécutées comme unités encapsulées. Le Team ETL ou l administrateur base de données (DBA) doit prévoir les différents liens (Database Links) pour l accès aux tables transitoires et des synonymes (Synonyms) éventuels pour cela dans la base de données cible. 49

50 Tables transitoires Rules Scan directory Base de données cible Base de données source Client OpenX2DW Fig. 5: OpenX2DW dans un «environnement distribué» (exemple) 50

51 2.4 Conclusion Nous avons vu dans ce chapitre que le système est un bien outil ETL, dans le sens où il est apte à charger des données dans un Data warehouse. La Rules Engine permet de transformer et répartir les données sur les nombreuses tables que peut comporter un Data Warehouse et tenir compte des contraintes éventuelles liées à ces tables. La formulation des Rules revient au team ETL, qui est garant de la cohérence de la base de données. L utilisateur du Data warehouse ne doit avoir en aucun cas accès aux tables transitoires, celles-ci représentant un espace de travail temporaire (stagging area) et n étant destinées en aucun cas à être une base pour l établissement d états ou de rapports. Etant donné que nous avons généralement affaire en entreprise à un «environnement distribué», le système a aussi été conçu de manière à fonctionner dans un tel environnement. Chacun des modules dispose d un fichier de paramètres (.ini), qui lui permet de cibler et accéder aux fichiers et tables de base de données à traiter. 51

52 3 Schema Matching 3.1 «Matching» et «Mapping», définition Bien que les mots Matching et Mapping soient quelquefois confondus, la définition la plus courante dans la littérature est la suivante: le Matching est un processus de comparaison entre deux schémas et son résultat est un Mapping, c'est-àdire une correspondance faite entre les nœuds du premier schéma et ceux du deuxième schéma. Ce résultat est inscrit dans un fichier qu on appellera «Fichier Mapping». Ainsi la définition donnée par Madhavan, Bernstein et Rahm [MBR] est formulée de cette manière : «A schema consists of a set of related elements, such as tables, columns, classes, or XML elements or attributes. The result of a Match operation is a mapping. A mapping consists of a set of mapping elements, each of which indicates that certain elements of schema S1 are related to certain elements of schema S2». Il s agit dans notre cas d un Matching XML vers une base de données relationnelle, c'est-à-dire de tenter d effectuer un rapprochement entre les nœuds d un fichier XML de données et les colonnes d une table, en l occurrence la table transitoire, dans le but de charger les données contenues dans le fichier XML dans la table transitoire. 3.2 Domaines d application du Matching La problématique du Matching se pose d ailleurs dans bien d autres domaines que celui du Data warehousing. On la retrouve : Dans l intégration de schémas ; Lors de la construction d une vue globale d un ensemble de schémas de structures et terminologies différentes, un Matching a lieu pour pouvoir retrouver des relations entre les concepts dans les différents schémas et les unifier. Aussi dans le E-commerce, l échange de messages entre des partenaires commerciaux peut nécessiter un Matching si les messages échangés sont de formats différents. Dans le Query processing, les termes utilisés par un utilisateur dans la formulation de sa requête peuvent être différents de ceux de la base de données. Un Matching est utilisé dans ce cas là pour «mapper» les concepts spécifiés par l utilisateur avec les éléments du schéma de la base de données. 52

53 Matcher Fig. 6: Exemple de Matching 53

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique»

Java EE Approfondi - Cours 2. Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Java EE Approfondi - Cours 2 Cours de 2 e année ingénieur Spécialisation «Génie Informatique» Présentation Lier l'orienté objet et la base de données relationnelle peut être lourd et consommateur en temps.

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

Document d analyse. Architecture d une application Java Hibernate

Document d analyse. Architecture d une application Java Hibernate Document d analyse Architecture d une application Java Hibernate Date création du document 31/10/2007 Date de dernière mise à jour 22/09/2010 Version V1.1 Sommaire Présentation du document.... 3 Organisation

Plus en détail

Introduction au langage SQL

Introduction au langage SQL Introduction au langage SQL 1. Description SQL est un acronyme pour Structured Query Language qui a été conçu par IBM, et a succédé au langage SEQUEL. C est maintenant le langage le plus utilisé dans les

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition)

MySQL 5 (versions 5.1 à 5.6) Guide de référence du développeur (Nouvelle édition) Avant-propos 1. Les objectifs de ce livre 13 2. Les principaux sujets qu'aborde ce livre 13 3. À qui s adresse ce livre? 14 4. Les pré-requis 14 Introduction à MySQL 1. Introduction aux bases de données

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Interface phpmyadmin Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter

Plus en détail

OpenPaaS Le réseau social d'entreprise

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

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza Avant de commencer à travailler avec le produit, il est nécessaire de comprendre, à un haut niveau, les problèmes en réponse desquels l outil a été

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/5 Titre professionnel : Reconnu par l Etat de niveau III (Bac), inscrit au RNCP (arrêté du 12/10/07, J.O. n 246 du 23/10/07) (32 semaines) Unité 1 : Structurer une application 6 semaines Module

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

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

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

Plus en détail

Manuel utilisateur. VPtimeClock 1.6. pour VISUAL-PLANNING TM. Logiciel de pointage des temps de travail en réseau.

Manuel utilisateur. VPtimeClock 1.6. pour VISUAL-PLANNING TM. Logiciel de pointage des temps de travail en réseau. Manuel utilisateur VPtimeClock 1.6 pour VISUAL-PLANNING TM Logiciel de pointage des temps de travail en réseau 05 Décembre 2010 99 avenue Albert 1 er 92500 Rueil-Malmaison France (33) (0)1 41 39 88 31

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011 1 / 32 Développement Web - JDBC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 2 / 32 Plan Plan 1 Préambule 2 Utilisation de

Plus en détail

TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES

TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES 2008 UFR Ingénieurs 2000 Vivien Boistuaud Julien Herr TP J2EE GUIDE DE DEPLOIEMENT DE L APPLICATION WEB DE GESTION DES COMPTES Ce document a été réalisé par V. Boistuaud et J. Herr dans le cadre des travaux

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

New Features. Developed by. BPM Conseil - SARL au capital de 70 000 euros - RCS LYON 479 400 129 9, rue Pierre Blanc - 69001 Lyon - France 1/20

New Features. Developed by. BPM Conseil - SARL au capital de 70 000 euros - RCS LYON 479 400 129 9, rue Pierre Blanc - 69001 Lyon - France 1/20 5 New Features Developed by 1/20 Sommaire 1 Introduction... 3 2 Evolutions des studios de développement et améliorations fonctionnelles... 5 3 Portail Vanilla... 6 3.1 Open Street Maps... 6 3.2 Gestion

Plus en détail

DB Main Bien débuter.

DB Main Bien débuter. DB Main Bien débuter. Downloader depuis http://www.info.fundp.ac.be/~dbm/ L élaboration d une base de données se fait en 4 étapes : 1. L analyse conceptionnelle 2. Le MCD modèle conceptuel de données.

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

Plus en détail

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation.

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Bienvenue! Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Téléchargez les logiciels nécessaires pour cette formation : http ://formation-web.via.ecp.fr

Plus en détail

DOSSIER TECHNIQUE INSTALLATION PASEO

DOSSIER TECHNIQUE INSTALLATION PASEO DOSSIER TECHNIQUE INSTALLATION PASEO TABLE DES MATIERES 1 Description des produits installés... 3 2 Descriptif des processus d installation produits... 4 2.1 Sql server 2000... 4 2.2 Sql server 2000 service

Plus en détail

Introduction à GeoKettle un outil ETL spatial open source

Introduction à GeoKettle un outil ETL spatial open source Introduction à GeoKettle un outil ETL spatial open source par Etienne Dubé et Thierry Badard {etienne.dube,thierry.badard}@scg.ulaval.ca Groupe de recherche GeoSOA (http://geosoa.scg.ulaval.ca) Université

Plus en détail

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

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

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

Guide de démarrage rapide avec DataStudio Online Edition

Guide de démarrage rapide avec DataStudio Online Edition Guide de démarrage rapide avec DataStudio Online Edition Introduction Ce document vient en complément des films de démonstration disponibles sur le site web de data. L ETL ETL est un sigle qui signifie

Plus en détail

Data Tier Application avec SQL Server 2008 R2

Data Tier Application avec SQL Server 2008 R2 Data Tier Application avec SQL Server 2008 R2 Article par David BARBARIN (MVP SQL Server) David BARBARIN est actuellement consultant en bases de données pour une entreprise Suisse GOLD Partner Microsoft

Plus en détail

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition.

1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

Installation et compilation de gnurbs sous Windows

Installation et compilation de gnurbs sous Windows Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ]

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ] 8. Java et les bases de données Olivier Curé - UMLV [page 206 ] Java et les BD Plusieurs manières d'écrire du code Java accédant à une BD: Statement Level Interface (SLI) Solutions : SQLJ (SQL92) Call

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

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

Introduction à ADO.NET

Introduction à ADO.NET 1 Introduction à ADO.NET Introduction à ADO.NET Sommaire Introduction à ADO.NET... 1 1 Introduction... 2 1.1 Qu est ce que l ADO.NET?... 2 1.2 Les nouveautés d ADO.NET... 2 1.3 Les avantages d ADO.NET...

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Guide d installation de SugarCRM Open Source version 4.5.1

Guide d installation de SugarCRM Open Source version 4.5.1 Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité

Plus en détail

Intégration des données

Intégration des données Intégration des données Projet Scan Mail Master 1 SIGLIS Intégration des Données ScanMail S.TALLARD La but de ce projet est d implémenter une application permettant de prévenir par l envoie de mails, une

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr)

AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) AMESD-Puma2010-EFTS- Configuration-update-TEN (en-fr) Doc.No. : EUM/OPS/TEN/13/706466 Issue : v3 Date : 7 May 2014 WBS : EUMETSAT Eumetsat-Allee 1, D-64295 Darmstadt, Germany Tel: +49 6151 807-7 Fax: +49

Plus en détail

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Rational ClearCase or ClearCase MultiSite Version 7.0.1 Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite. Product Overview IBM Rational

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL

Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Apprendre le langage SQL - Le DDL - 1 / 34 - Apprendre le langage SQL par l exemple Partie 1 : le DDL Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Interfaçage de programmation. c Olivier Caron

Interfaçage de programmation. c Olivier Caron Interfaçage de programmation 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. 1 Le SGBD est-il suffisant? (1/2) Les pour : La puissance du langage de requêtes. L aspect

Plus en détail

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Partie 1 : Notion de bases de données (Conception

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

XML et Bases de données. XMLType Oracle XML DB

XML et Bases de données. XMLType Oracle XML DB Oracle XML DB Oracle XML DB Depuis la version 9i et de façon enrichie dans la version 10g, Oracle propose des outils pour gérer des documents XML Depuis la 10g il n'y a plus d'extraction car auparavant

Plus en détail

Projet d Etude et de Développement

Projet d Etude et de Développement Projet d Etude et de Développement PokerServer Guide d installation Auteurs: Lucas Kerdoncuff Balla Seck Rafik Ferroukh Xan Lucu Youga MBaye Clients: David Bromberg Laurent Réveillère March 28, 2012 Contents

Plus en détail

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8 Sage 100 CRM Guide de l Import Plus avec Talend Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

FileMaker 12. Guide ODBC et JDBC

FileMaker 12. Guide ODBC et JDBC FileMaker 12 Guide ODBC et JDBC 2004-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker et Bento sont des marques commerciales de

Plus en détail

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec:

Objectifs. Comprendre l architecture typique d une application web Exemple: Expérimenter avec: Cedric Dumoulin Objectifs Comprendre l architecture typique d une application web Exemple: Application permettant de lister un catalogue d articles, et de créer des articles Expérimenter avec: EJB, JPA

Plus en détail

Laboratoire 2 Conception du serveur d application et du client

Laboratoire 2 Conception du serveur d application et du client DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG660 - BASE DE DONNÉES HAUTE PERFORMANCE Laboratoire 2 Conception du serveur d application et du client 1 Introduction Au cours de la session, les laboratoires

Plus en détail

Embedded Domain-Specific Languages using Libraries and Dynamic Metaprogramming

Embedded Domain-Specific Languages using Libraries and Dynamic Metaprogramming Embedded Domain-Specific Languages using Libraries and Dynamic Metaprogramming THÈSE N O 5007 (2011) PRÉSENTÉE le 20 mai 2011 À LA FACULTÉ INFORMATIQUE ET COMMUNICATIONS LABORATOIRE DE MÉTHODES DE PROGRAMMATION

Plus en détail

Déploiement de SAS 9.1.3 Foundation

Déploiement de SAS 9.1.3 Foundation Déploiement de SAS 9.1.3 Foundation I. Installation de SAS sur des postes en local à partir de Cédéroms 3 II. Phase de préparation au déploiement : Création des images disque 6 a) Pour une installation

Plus en détail

Date: 09/11/15 www.crmconsult.com Version: 2.0

Date: 09/11/15 www.crmconsult.com Version: 2.0 Date: 9/11/2015 contact@crmconsult.fr Page 1 / 10 Table des matières 1 SUGARPSHOP : SCHEMA... 3 2 PRESENTATION... 4 3 SHOPFORCE WITH SCREENSHOTS... 5 3.1 CLIENTS... 5 3.2 ORDERS... 6 4 INSTALLATION...

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

Plus en détail

Soutenance de XML & BD. Yong Li

Soutenance de XML & BD. Yong Li Soutenance de XML & BD Yong Li Li Yong Professeur :H.Schellinx Introduction La relation de XML et Base de donnees les avantage les inconvients l' utlilisation par ses avantage Data versus Documents Data-Centric

Plus en détail

Compte Rendu d intégration d application

Compte Rendu d intégration d application ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...

Plus en détail

PRESENTATION DE PENTAHO DATA INTEGRATION (PDI)

PRESENTATION DE PENTAHO DATA INTEGRATION (PDI) PRESENTATION DE PENTAHO DATA INTEGRATION (PDI) Août 2006 Version: 1.0 Auteur: Samatar HASSAN PDI 2.3 http://www.pentaho.org/ Présentation Pentaho Data Integration 2.3 Page 1 sur 8 PLAN I Présentation...3

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Utilisation de la brique LEGO EV3 avec Automgen. Using EV3 brick with Automgen (C)2014 IRAI. Lego EV3, Automgen

Utilisation de la brique LEGO EV3 avec Automgen. Using EV3 brick with Automgen (C)2014 IRAI. Lego EV3, Automgen Utilisation de la brique LEGO EV3 avec Automgen Using EV3 brick with Automgen (C)2014 IRAI 1 Ce manuel décrit l'utilisation de la brique LEGO Ev3 avec Automgen. This manual describes the use of EV3 LEGO

Plus en détail

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion Copyright 2009 Alt-N Technologies. 3 allée de la Crabette Sommaire Résumé... 3 MDaemon

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

Plus en détail

User Documentation. Documentation utilisateur. version 0.2b 04-2009

User Documentation. Documentation utilisateur. version 0.2b 04-2009 User Documentation Documentation utilisateur version 0.2b 04-2009 Table des matières 3 French Version....4 English Version.22 Table des matières 4 Table des matières TABLE DES MATIERES 3 A PROPOS DE CE

Plus en détail

Sun ONE Application Server Platform Summary

Sun ONE Application Server Platform Summary Sun ONE Application Server Platform Summary Version 7, Update 3 Part Number 817-5602-10 February 2004 This document provides the specifics on supported platform components for the Sun Open Net Environment

Plus en détail

SQL Server Integration Services 2012 Mise en oeuvre d'un projet ETL avec SSIS

SQL Server Integration Services 2012 Mise en oeuvre d'un projet ETL avec SSIS Introduction à SSIS 1. Présentation de SSIS 13 1.1 Concepts de l ETL 13 1.2 Management Studio et SQL Server Data Tools 14 1.3 Architecture 14 2. SSIS 2012 17 2.1 Les nouveautés de la version 2012 17 2.2

Plus en détail

Migration de la base de données et récupération après un crash

Migration de la base de données et récupération après un crash Migration de la base de données et récupération après un crash MDaemon est une marque déposée de Alt-N Technologies. Archive Server for MDaemon est développé par la société Achab. Page 1/12 Sommaire Différents

Plus en détail

Configuration de l'usurpation IP sur le Cache Engine dans une installation transparente avec commutateur de services de contenu

Configuration de l'usurpation IP sur le Cache Engine dans une installation transparente avec commutateur de services de contenu Configuration de l'usurpation IP sur le Cache Engine dans une installation transparente avec commutateur de services de contenu Contenu Introduction Avant de commencer Conventions Conditions préalables

Plus en détail

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Le tout fichier Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique Introduction à l informatique : Information automatisée Le premier ordinateur Définition disque dure, mémoire, carte mémoire, carte mère etc Architecture d un ordinateur Les constructeurs leader du marché

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

Plus en détail

sm-client Projekt Instructions pour la mise à jour du sm-client de la version 2.x vers la version 3.x Version finale SSK / BSV eahv/iv

sm-client Projekt Instructions pour la mise à jour du sm-client de la version 2.x vers la version 3.x Version finale SSK / BSV eahv/iv Instructions pour la mise à jour du sm-client de la version 2.x vers la version 3.x Version finale SSK / BSV eahv/iv Version: 1.0 Publication Date: 08 Avril 2011 Instructions pour la mise à jour vers la

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

TP1 POSTG. Géomatique. Session TP1. p. 1

TP1 POSTG. Géomatique. Session TP1. p. 1 Certificatt Universitaire en Urbanisme et Développementt Durable Session Géomatique et Systèmes d Informations Géographique P POSTG GRESQL PO INSTALLATION OSTGIS QUANTUMGIS p. 1 Session Géomatique et Systèmes

Plus en détail

Open Source Job Scheduler. Installation(s)

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

Plus en détail

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence

Plus en détail

Action de formation: SQL Server Business Intelligence & Data Warehouse

Action de formation: SQL Server Business Intelligence & Data Warehouse Action de formation: SQL Server Business Intelligence & Data Warehouse Contenu : Integration Services Présentation de Management Studio - Présenter les différentes tâches de SSMS - Structure des serveurs

Plus en détail

COMMUNICATION TECHNIQUE N TC0546 Ed. 01. OmniPCX Enterprise Nb de pages : 17 Date : 05-04-2004 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE

COMMUNICATION TECHNIQUE N TC0546 Ed. 01. OmniPCX Enterprise Nb de pages : 17 Date : 05-04-2004 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE COMMUNICATION TECHNIQUE N TC0546 Ed. 01 OmniPCX Enterprise Nb de pages : 17 Date : 05-04-2004 URGENTE NON URGENTE TEMPORAIRE DEFINITIVE OBJET : LIEN PPP VERS LE CALL SERVER À TRAVERS Veuillez trouver ci-après

Plus en détail

Plugin Payment-OnLine

Plugin Payment-OnLine Plugin Payment-OnLine Le plugin "Payment-Online" est un plugin technique dont l'objectif est de faciliter l'utilisation du paiement en ligne dans des applications Lutèce. Il se compose d'une librairie

Plus en détail

Unité de formation 1 : Structurer une application. Durée : 3 semaines

Unité de formation 1 : Structurer une application. Durée : 3 semaines PROGRAMME «DEVELOPPEUR LOGICIEL» Titre professionnel : «Développeur Logiciel» Inscrit au RNCP de niveau III (Bac+2) (JO du 23 Octobre 2007) (32 semaines) Unité de formation 1 : Structurer une application

Plus en détail