Vous êtes sur la page 1sur 30

Université Abdelmalek Essaâdi

Faculté des Sciences de Tétouan


Département Informatique

Licence d'études fondamentales :


Sciences Mathématiques et Informatiques - SMI / S6 -

M36 : Architecture Distribuée


PR. ABDOUN OTMAN
DÉPARTEMENT INFORMATIQUE, FACULTÉ DES SCIENCES
UNIVERSITÉ ABDELMALEK ESSAÂDI, TÉTOUAN
Avant-propos
MODULE : ARCHITECTURE DISTRIBUÉE

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 2


Avant-propos : As knowledge (S5) !?
Base de données :

• SI & BD
• SGBD
POO (Java) : Base de • Modèle entité association.
POO données • Modèle relationnel.
• Base de la programmation JAVA (Java) • SQL, …….
• Programmation Orienté Objet
• …….
UML
UML :

• Conception Orienté Objet


• Diagrammes UML, …….

Développement d’application
JAVA
Pr. Otman ABDOUN - Département
Informatique
SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 3
Avant-propos : Job !?
Devenir :
✓ Développeur en logiciel JAVA
✓ Développeur Java
✓ Développeur d'applications Java

Compétences techniques
✓ La maîtrise des technologies/frameworks de développement d’application Java : Java SE, Java
FX, Java ME, Java EE, ….
✓ La manipulation avec de bases de données en Java (ex SGBD : MySQL, Oracle, SQLite, … ).

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 4


Avant-propos : Objectifs du module
✓ Acquérir une compréhension approfondie des modèles d'architecture distribuée, en explorant les fondements de cette
architecture et sa pertinence essentielle dans le développement d'applications en Java.

✓ Maitriser la programmation avec un accès distant à une base de données en utilisant les concepts de JDBC, en
mettant particulièrement l'accent sur la gestion efficace des données dans un environnement distribué.

✓ Exploiter la programmation événementielle pour développer des applications conviviales et ergonomiques en Java,
en acquérant des compétences avancées pour la création d'interfaces utilisateur graphiques (GUI) et en explorant des
techniques modernes de conception réactive et conviviale.

✓ Explorer les concepts clés de Jakarta EE pour le développement d'applications Web en Java, en mettant l'accent sur
la création d'applications robustes, évolutives et sécurisées dans un environnement distribué.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 5


Plan du cours : Architecture Distribuée
1. Introduction aux Architectures Distribuées

2. Intégrer les accès aux données : Java Database Connectivity

3. Programmation évènementielle : GUI Programming in Java

4. Application Web Java : Jakarta EE

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 6


Introduction : Just a moment ….

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 7


Introduction : Java # Java SE
✓ Le terme « Java » fait bien évidemment référence à un langage.
✓ Mais également à une plate-forme : son nom complet est « Java SE »
pour Java Standard Edition, et était anciennement raccourci « J2SE ».
✓ Java SE est constituée de nombreuses bibliothèques, ou API.
✓ Par exemple : java.lang, java.io, java.math, java.util, etc.
✓ Java SE regroupe toutes les bibliothèques qui contiennent un nombre
important de classes et de méthodes prêtes à l'emploi pour effectuer
toutes sortes de tâches et afin de développer les applications Desktop.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 8


Introduction : Java EE (J2EE ou JEE)
✓ Java EE signifie Java Enterprise Edition.
✓ Java EE est à une extension de la plate-forme standard.
✓ La plate-forme Java EE est construite sur le langage Java et la plate-
forme Java SE.
✓ L'objectif majeur de Java EE est de faciliter le développement
d'applications web robustes et distribuées, déployées et exécutées sur
un serveur d'applications.
✓ Java EE 8 était la dernière version de Java EE d'Oracle, et
maintenant, Oracle a déplacé Java EE vers une fondation open
source (Eclipse Foundation), et elle s'appelle Jakarta EE.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 9


Introduction : Desktop || Web Application

Une application
Une application de Web fonctionne via
bureau est installée, un navigateur,
lancée et exécutée l'utilisant comme un
localement. environnement
d'exécution.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 10


Introduction : Desktop Application

Src : https://www.fiverr.com/driss20/make-a-stylish-desktop-application-using-java-and-mysql

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 11


Introduction : Application Web
✓ La communication qui s'effectue entre le client et le serveur est régie par des règles bien
définies : le protocole HTTP.

1. L'utilisateur saisit une URL dans la barre d'adresses de son navigateur ;


2. Le navigateur envoie alors une requête HTTP au serveur pour lui demander la page
correspondante ;
3. Le serveur reçoit cette requête, l'interprète et génère alors une page web qu'il va renvoyer au
client par le biais d'une réponse HTTP ;
4. Le navigateur reçoit, via cette réponse, la page web finale, qu'il affiche alors à l'utilisateur.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 12


Introduction : Application Web
✓ Les données sont échangées entre le client et le serveur via le protocole HTTP ;
✓ Le client ne comprend que les langages de présentation de l'information, en d'autres
termes les technologies HTML, CSS et Javascript ;
✓ Les pages sont générées sur le serveur de manière dynamique, à partir du code source du
site.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 13


Introduction : Serveur d'applications

✓ Java EE est une extension de la plate-


forme standard Java SE, principalement
destinée au développement d'applications
web.

✓ Pour interagir avec un site web (le serveur), l'utilisateur (le client) passe par son navigateur.
✓ À travers le protocole HTTP, le navigateur envoie des requêtes au serveur et le serveur lui renvoie des
réponses :
➢ le travail du serveur est de recevoir des requêtes, de générer les pages web et de les envoyer au client.
➢ le travail du navigateur est de transmettre les actions de l'utilisateur au serveur, et d'afficher les informations qu'il renvoie.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 14


Introduction : Architecture distribuée
✓ Traditionnellement une application informatique est un programme
exécutable sur une machine qui représente la logique de traitement des
données manipulées par l’application.

✓ On peut alors séparer l’application en différentes parties :


✓ La couche interface homme machine
✓ La couche de traitement
✓ La couche de gestion des données.

✓ Et toute application possède ces trois parties.

✓ On parle de couches, de niveaux ou de tier (de l’anglais tier : étage).

✓ La séparation conceptuelle d'une application, quelle soit physique ou


logique, ou même les deux.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 15


Introduction : Architecture distribuée - Définition -
✓ L’Architecture Distribuée représente un modèle dans lequel les composants logiciels interagissent sur un
réseau, permettant la répartition des tâches sur plusieurs machines pour améliorer la Performance, la
Scalabilité et la Résilience du système :
✓ Performance : Fournir des résultats dans des délais acceptables.
✓ Scalabilité : S'adapter et à gérer efficacement une augmentation ou une diminution de la charge de
travail, en assurant ainsi une croissance fluide du système.
✓ Résilience : Maintenir un fonctionnement stable même en présence de défaillances matérielles, logicielles
ou de réseaux.

✓ L'architecture distribuée est aussi appelée architecture multi-tiers ou architecture N-tier.


✓ L'architecture N-tier consiste à diviser le système en N niveaux, où N est un nombre compris entre 1 et
plus (N > = 1) :
✓ Une architecture à 1-tier est identique à une architecture à processus unique.
✓ Une architecture à 2-tier est la même qu'une architecture client/serveur.
✓ Une architecture à 3-tier est une architecture très courante.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 16


Introduction : Architecture en 1-tier
✓ Un système logiciel composé d'un seul processus en cours
d'exécution est dit avoir une architecture 1-tier (à un niveau).

✓ Les applications à processus unique (single process


architecture) sont également souvent appelées applications
autonomes.

✓ Des exemples courants d'applications à processus unique :


✓ Programmes en ligne de commande.
✓ Applications de bureau sans communication réseau.
✓ Applications mobiles sans communication réseau.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 17


Introduction : Architecture en 2-tier
✓ L'architecture 2-tier est aussi appelée Architecture Client / Serveur.

✓ Un client parle à un serveur qui exécute certains services pour le client.

✓ Exemples courants de communication client/serveur sont :


✓ Communication entre l'application de bureau et le serveur DataBase ;
✓ Communication entre le navigateur et le serveur Web ;
✓ Communication mobile vers serveur ;
✓ Communication client FTP vers serveur FTP, ….
✓ Au début des applications client/serveur, la communication entre les applications de bureau et le serveur de base de données
était un cas d'utilisation normal.

✓ La majeure partie de la logique métier était intégrée à l'intérieur de l'application de bureau.

✓ C'est pourquoi ce style d'applications client/serveur était également appelé "applications client lourd" (Fat client applications).

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 18


Introduction : Architecture en 3-tier
✓ La couche présentation ou GUI contient l'interface utilisateur de l'application, à
ce niveau aucune décision d'application n’est prise. Il transmet simplement les
actions de l'utilisateur au niveau logique de l'application. Si l'utilisateur a besoin
d'entrer des informations, cela se fait également dans le niveau de présentation.

✓ La couche logique d'application prend toutes les décisions d'application. C'est là


que se situe la "logique métier". La logique d'application sait ce qui est possible, ce
qui est autorisé, etc. La logique d'application lit et stocke les données dans la
couche de données.

✓ La couche de données stocke les données utilisées dans l'application. La couche de


données peut généralement stocker des données en toute sécurité, effectuer des
transactions, rechercher rapidement dans de grandes quantités de données, etc.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 19


Introduction : Architecture en 3-tier
✓ Une architecture à 3-tier est généralement divisée en :
1. un niveau de présentation ou d'interface graphique,
2. un niveau de logique d'application
3. un niveau de données.

✓ Par exemple, pour les 3 mêmes couches d'une application 3 tiers :

1. Une machine dédiée à la base de données,

2. Une autre machine dédiée au serveur de présentation


(exemple : un serveur java tomcat)

3. Une ou plusieurs autres machines qui traite le métier (exemple : un serveur


offrant des services web)

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 20


Introduction : Architecture en 1, 2, 3-tier

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 21


Introduction : Architecture distribuée - Définition -
✓ Les architectures distribuées
implémentent des composants sur
différentes machines en utilisant des
serveurs d’applications., des serveurs
de données.

✓ Dans une architecture distribuée, il


existe forcément un client (station de
travail...) et un ou plusieurs serveurs,
dont les fonctions sont réparties entre le
client et les serveurs les informations sont
échangées via le réseau.

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 22


Introduction : Pratique > Java - JDK
✓ Le kit de développement Java - JDK - est une implémentation de l'une des plates-formes
Java Platform, Standard Edition, Java Platform, Enterprise Edition ou Java Platform,
Micro Edition publiée par Oracle Corporation sous la forme d'un produit binaire destiné
aux développeurs Java sur Solaris, Linux, macOS ou Windows.

✓ Le JDK comprend une JVM privée et quelques autres ressources pour terminer le
développement d'une application Java.

✓ Depuis l'introduction de la plate-forme Java, il s'agit de loin du kit de développement


logiciel le plus utilisé

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 23


Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 24
Introduction : Pratique > IDE for Java

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 25


Introduction : Pratique > IDE for Java

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 26


Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 27
Introduction aux
Architectures Distribuées
• J AVA P L AT F O R M S
• D E S K TO P A P P L I C AT I O N # W E B A P P L I C AT I O N
• ARCHITECTURE DISTRIBUÉE : 1 TIER, 2 TIER, 3 TIER, N TIER
• P R AT I Q U E : I D E P O U R J AVA

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 28


Plan du cours
1. Introduction aux Architectures Distribuées

2. Intégrer les accès aux données : Java Database Connectivity

3. Programmation évènementielle : GUI Programming in Java

4. Application Web Java : Jakarta EE

Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 29


Pour toutes informations ou supports pédagogiques, veuillez
consulter le Google Classroom dédié :
https://classroom.google.com/u/1/c/NjY2OTc3NzQwODIz
Pr. Otman ABDOUN - Département Informatique SMI-S6 : M36-ARCHITECTURE DISTRIBUÉE 30

Vous aimerez peut-être aussi