Introduction au développement d'applications multi tiers et aux services web

Ref: 2EL5020

Description

Les applications sont de plus en plus construites en assemblant des services. L’objectif du cours est de présenter les architectures sous-jacentes et d’initier les élèves au développement de solutions exploitant, créant et déployant des services.

Les applications d’entreprise accèdent à des données locales ou distantes, leur appliquent une logique métier, avant de présenter ou transmettre les résultats. Pour faciliter leur conception, leur implémentation et leur exploitation, elles peuvent être découpées en couches et composants. La plate-forme JEE (Java Entreprise Edition) est destinée à faciliter le développement de ces applications et leur intégration dans des systèmes d’informations existants. Le cours présentera les principes d'une architecture 3-tiers, avec une mise en œuvre exploitant les principaux composants de la plateforme JEE. L’application sera ensuite déployée dans le Cloud.

L'application peut nécessiter l'accès à des données en ligne. Les pages web constituent une importante source de données mais sont conçues pour des interactions avec un humain. Un processus un peu fastidieux (« web scraping ») doit être mis en place au cas par cas pour qu’une machine (un programme) puisse récupérer les données exposées par des pages web. Heureusement, à l’instar d’Amazon ou eBay par exemple, de nombreux acteurs proposent une autre interface d’accès aux données, centrée sur les ressources ou les traitements et non sur leur présentation graphique. Ces « services web » simplifient la phase de collecte des données et permettent à leurs consommateurs de se concentrer sur leurs cœurs de métier. Ce cours présentera comment découvrir un service, comment l’invoquer, et éventuellement comment construire une composition de plusieurs services. Il peut également être pertinent d'ouvrir l'application développée à des partenaires (clients, fournisseurs...). Le cours présentera comment leur offrir un tel service : comment concevoir un service, le développer et le déployer, le décrire et le faire connaître.

Période(s) du cours

SG8

Prérequis

1CC1000 –Systèmes d'Information et Programmation

Syllabus

Les bases de la programmation en Java

Introduction
  • Les architectures n-tiers
  • Les serveurs d’applications
  • Le modèle MVC
La persistance des données en Java
  • Les SGBD
  • La spécification JPA
  • Mapping objet-relationnel (ORM)
Implémentation de la couche métier
  • Conteneurs d’Entreprise-Java-Beans (EJB)
  • Implémentation de la couche présentation
  • Les JSP et les Servlet
Présentation des services orientés traitement
  • Principes architecturaux
  • Introduction à XML
  • Présentation du protocole SOAP
  • Langage de description WSDL
  • Mise en pratique : définition d'un contrat de service, développement d'un serveur, publication de l’interface sous forme d’un kit de développement fourni au client
Présentation des services orientés ressources
  • Style architectural REST
  • Introduction à JSON et OpenAPI
  • Mise en pratique : développement d'un client exploitant des services en ligne, développement d'un service, test et déploiement sur le cloud

Composition du cours

La répartition approximative des "heures présence élève" sera la suivante : 24h de cours et 9h de TD sur machine.
La ventilation "16 CM + 6TD" est administrative car l’électif est en réalité essentiellement constitué de séances de "learning by doing" animées par les enseignants.

Ressources

Equipe enseignante: Virginie Galtier, Michel Ianotto
Taille des TD : 24 élèves
Salles de TP : salles d’informatique du campus de Metz, 24 élèves/salle
Outils logiciels : libres et gratuits

Résultats de l'apprentissage couverts par le cours

 A l’issue de ce cours, les élèves devraient être capables de :
  •     utiliser un environnement de développement intégré pour développer une application
  •     réaliser une application en langage Java mettant en œuvre les concepts liés à la programmation orientée objet
  •     composer des programmes en Java utilisant quelques annotations
  •     concevoir et développer une application d’entreprise avec la plateforme JEE
  •     choisir une stratégie de développement d’un service et la mettre en œuvre
  •     manipuler des données structurées en XML et JSON
  •     développer un programme exploitant un ou plusieurs services
  •     déployer une application d’entreprise dans le Cloud

Support de cours, bibliographie

  • Java EE : Développez des applications web en Java. Thierry Richard. ENI. 2017

  • Web Services Foundations. Athman Bouguettaya, Quan Z Sheng. Springer. 2014