École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Unité d’enseignement : Master GL · S3 · UE3 — Environnement de développement

  • XML avancé

    XML reste un format pivot des systèmes d’information d’entreprise : configuration d’applications (Maven, Jakarta EE, Spring), services web SOAP des banques et administrations, messages financiers ISO 20022, factures électroniques UBL, documents bureautiques (OOXML, ODF), flux de données entre ministères. Ce cours de spécialité approfondit l’ensemble de la chaîne XML : syntaxe et espaces de noms, validation (DTD, XML Schema), interrogation (XPath, XQuery), transformation (XSLT), traitement par programme (DOM, SAX, StAX, liaison de données) et sécurisation des échanges. Il est mené sur un fil conducteur : les données de scolarité d’EPI-NIGER (promotions, étudiants, notes) échangées entre les campus de Niamey et de Maradi et la tutelle. Chaque leçon comporte un TP guidé réalisable avec des outils libres (xmllint, xsltproc, BaseX, Saxon-HE, Java ou Python).

    Objectifs d’apprentissage

    • Produire des documents XML bien formés utilisant correctement les espaces de noms.
    • Concevoir des grammaires de validation en DTD et en XML Schema (types, facettes, clés).
    • Écrire des requêtes XPath et XQuery pour extraire et agréger des données.
    • Transformer des documents avec XSLT vers HTML, XML ou texte.
    • Choisir et utiliser une API de traitement (DOM, SAX, StAX, JAXB) adaptée au volume et à l’usage, avec une configuration sûre contre les attaques XML (XXE).
    • Situer XML dans les échanges d’entreprise (SOAP/WSDL, ISO 20022, UBL) et le comparer à JSON.

    Prérequis

    Bases du Web (HTML, HTTP), programmation Java ou Python, notions de bases de données et d’expressions régulières.

    Plan du cours

    1. Leçon 1 — XML, espaces de noms et validation par DTD
    2. Leçon 2 — XML Schema : typage et contraintes avancées
    3. Leçon 3 — Interroger des documents XML : XPath et XQuery
    4. Leçon 4 — Transformations XSLT, API de traitement et échanges sécurisés

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 20 h de TD, 20 h de TP, 60 h de TPE, soit 120 h pour 6 crédits. Évaluation : contrôle continu (comptes rendus de TP, TD notés et mini-projet d’échange de relevés de notes validé et transformé, 40 %) et examen terminal écrit (60 %).

    Bibliographie

    • W3C, recommandations Extensible Markup Language (XML) 1.0, Namespaces in XML 1.0, XML Schema 1.1, XPath 3.1, XQuery 3.1, XSLT 3.0, disponibles sur w3.org.
    • Elliotte Rusty Harold, W. Scott Means, XML in a Nutshell, 3e éd., O’Reilly, 2004.
    • Priscilla Walmsley, Definitive XML Schema, 2e éd., Prentice Hall, 2012.
    • Priscilla Walmsley, XQuery, 2e éd., O’Reilly, 2015.
    • Michael Kay, XSLT 2.0 and XPath 2.0 Programmer’s Reference, 4e éd., Wiley/Wrox, 2008.
  • Ingénierie des composants : Java EE

    Ce cours de spécialité forme les étudiants au développement d’applications d’entreprise en Java selon une approche par composants, avec la plateforme Jakarta EE (anciennement Java EE) et, en comparaison, l’écosystème Spring. Les applications de gestion des banques, des opérateurs de mobile money, des administrations (e-gouvernement) et des établissements d’enseignement reposent souvent sur ce type d’architecture multi-tiers : composants web, composants métier transactionnels, persistance objet-relationnel et services web. Le cours suit un fil conducteur : la construction progressive d’une application de gestion des inscriptions et des paiements de frais de scolarité pour un établissement de Niamey, de la servlet à l’API REST sécurisée conteneurisée. Chaque leçon comporte un TP guidé.

    Objectifs d’apprentissage

    • Expliquer l’architecture de Jakarta EE (tiers, conteneurs, profils, spécifications) et déployer une application sur un serveur d’applications.
    • Développer la couche web avec servlets, JSP et Jakarta Faces, avec validation des entrées et protection contre les injections de script.
    • Concevoir des composants métier avec CDI et EJB et maîtriser les transactions.
    • Implémenter la persistance avec JPA (entités, relations, JPQL, verrouillage) en évitant les pièges de performance.
    • Exposer et sécuriser une API REST (Jakarta REST, JSON-B, Jakarta Security) et la déployer dans un conteneur Docker.
    • Comparer Jakarta EE, MicroProfile et Spring Boot pour choisir une pile technique.

    Prérequis

    Programmation orientée objet en Java (collections, exceptions, annotations, génériques), SQL et modèle relationnel, HTTP et HTML, notions d’UML et de Maven ou Git.

    Plan du cours

    1. Leçon 1 — La plateforme Jakarta EE : architecture, conteneurs et servlets
    2. Leçon 2 — Couche présentation : JSP, Jakarta Faces et validation
    3. Leçon 3 — Composants métier et persistance : CDI, EJB, transactions et JPA
    4. Leçon 4 — Services web REST, sécurité, frameworks et déploiement

    Modalités d’évaluation

    Volume horaire : 20 h de CM, 20 h de TD, 20 h de TP, 60 h de TPE, soit 120 h pour 6 crédits. Évaluation : contrôle continu (comptes rendus de TP, TD notés et projet de groupe « application de scolarité Jakarta EE », 40 %) et examen terminal écrit (60 %).

    Bibliographie

    • Eclipse Foundation, Jakarta EE Platform Specification et Jakarta EE Tutorial, disponibles sur jakarta.ee.
    • Antonio Goncalves, Beginning Java EE 7, Apress, 2013.
    • Arun Gupta, Java EE 7 Essentials, O’Reilly, 2013.
    • Christian Bauer, Gavin King, Gary Gregory, Java Persistence with Hibernate, 2e éd., Manning, 2015.
    • Craig Walls, Spring in Action, 6e éd., Manning, 2022.