Académique Documents
Professionnel Documents
Culture Documents
développement
d’application Web
14/10/2017 1
Plan du cours
Chapitre I : Comprendre
l’environnement
3
Qu’est ce qu’un environnement réparti ?
Internet.
Réseaux locaux.
Réseaux de téléphones mobiles.
…
4
Avantages du réparti
Organisationnel.
Découpage en unité.
5
Avantages du réparti
Organisationnel.
Découpage en unité.
Fiabilité et disponibilité.
Individualisation des défaillances.
6
Avantages du réparti
Organisationnel.
Découpage en unité.
Fiabilité et disponibilité.
Individualisation des défaillances.
Performance.
Partage de la charge.
7
Avantages du réparti
Organisationnel.
Découpage en unité.
Fiabilité et disponibilité.
Individualisation des défaillances.
Performance.
Partage de la charge.
Maintenance et évolution.
Simple à étendre.
8
Inconvénients du réparti
9
Inconvénients du réparti
10
Inconvénients du réparti
Coût.
Formation.
Achat des environnements.
11
Qu’est ce qu’une application répartie ?
Il s’agit d’une application découpée en plusieurs unités.
Chaque unité peut être placée sur une machine différente.
Chaque unité peut s’exécuter sur un système différent.
Chaque unité peut être programmée dans un langage différent.
Java sous
C sous Unix Windows
C++ sous
Application monolithique Mac
Application répartie
Une seul machine, même système
et même langage de programmation
12
Communication dans une application répartie
2 manières :
Bas niveau : directement en appelant les services des couches TCP ou
UDP.
Quand le programmeur souhaite implémenter son propre protocole
applicatif de communication.
Exemple : utilisation des sockets en Java.
bonjour
recu :bonjour
suivant ?
Client Serveur
14
Communication (Haut niveau ) Middleware (intergiciel)
Le middleware est une couche intermédiaire (couche logiciel) qui s’intercale
entre l’infrastructure de communication d’un réseau et les éléments de
l’application distribuée.
Java C C++
Unix Windows Mac
15
Middleware (intergiciel)
Le middleware est une couche intermédiaire (couche logiciel) qui s’intercale
entre l’infrastructure de communication d’un réseau et les éléments de
l’application distribuée.
Middleware
Java C C++
Unix Windows Mac
16
Middleware : mécanisme de base
Les environnements répartis sont basés (pour la plupart) sur
un mécanisme RPC (Remote Procedure Call) (Appel de procédure à distance).
Ce mécanisme fonctionne en mode requête / réponse.
Le client effectue une requête (demande un service).
Le serveur traite la demande puis retourne une réponse au client.
serveur
client
Traitement
de la requête
17
RPC : principe
Programme Procédure A Procédure B
principal
. . .
. . .
. . .
ProcA() ProcB() .
. . .
. . .
. . .
19
Evolutions
JAVA RMI (Remote Method invocation).
Mono-langage : Java, multiplateforme : de JVM à JVM.
...
20
Motivation
Considérons : un site de gestion de portefeuille
boursier, une application bancaire, un centre d'appel,
un système d'analyse de risque
Nous parlons ici d'applications distribuées.
Choses à considérer lorsqu'on
construit une application
distribuée
Distributed
HTML Objects Data Access
HTML
Objects
Transactions
Enterprise Data
Java
Content Connectors
Data
Management
Java
Application Enterprise Deployment Services
Scalability Reliability Security Manageability
14/10/2017 27
14/10/2017 28
14/10/2017 29
Etude sommaire de la
technologie .Net (Microsoft)
30
Principe
Solution Microsoft similaire à J2EE.
Par rapport à J2EE, .Net offre l’originalité d’utiliser différents langages et
ceci au sein d’une même application à condition de respecter la CLS
(Common Language Specification) décrivant les types communs et les
spécifications standards.
Solution multi-langage (supporte plus de 25 langages), il permet
l’interopérabilité d’éléments écrits en Perl, Python, Cobol, Haskell, ML, Jscript,
Ada, APL, Eiffel, Pascal, Fortran, Managed C++, Visual Basic, C#, SmallTalk,
Oberon, Scheme, Mercury, Oz, Objective Caml, J#, … :
31
Historique
1990 : Début du développement du Framework .NET
2000 : Première bêta du Framework .NET
05/01/2002 : version 1.0
01/04/2003 : version 1.1
03/04/2003 : SDK Visual Studio .NET 2003
05/11/2005 : version 2.0 et Visual Studio 2005
06/11/2006 : version 3.0
19/11/2007 : version 3.5 et Visual Studio 2008
28/09/2008 : annonce de la version 4.0
Caractéristiques
Plateforme commune à 27 langages (VB,C#,J#,Python)
Orienté Objet
Large choix de classes de base
Une architecture complète: le framework .NET
Les
C#
langages supportés
C++/CLI Boo
F# Cobra
J# Component Pascal
Windows Power Shell IronLips
JScript.NET L#
IronPython Mondrian
IronRuby Nemerle
Managed Extension for C++ Oxygene
Managed JScript P#
VBx Phrogram
VB.NET Power Builder
A# Delphi .NET
Ja.NET Fortran .NET
Principe
Traduction de tous les codes en un code intermédiaire qui est le MicroSoft
Intermediate Language (MSIL), appelé par la suite Common Intermediate
Language (CIL) qui sera exécuté par la machine virtuelle du Framework .NET
qui est la Common Language Runtime (CLR).
35
Environnement de
développement
Compilateurs .NET
CLR
Environnement
d’exécution
36
Mise en œuvre
La principale mise en œuvre est bien sûr de Microsoft et pour
Windows, mais il existe quelques versions libres (implémentations
souvent partielles).
Projet DotGnu.
Projet GNU dans le but est de supporter des systèmes d’exploitation
autres que Windows.
37
Mise en œuvre
38
Architecture
39
Bibliothèques de classes .NET
Il y a trois couches au-dessus du Common Language Runtime (CLR),
chacune comportant des classes apportant des fonctionnalités de plus en plus
évoluées.
40
Bibliothèques de classes .NET
1) Base Class Library (BCL):
Dans la première couche se trouve BCL, rassemblant des classes
permettant :
Manipulations de chaînes de texte.
Gestion des entrées/sorties.
Communications réseaux.
Gestion des processus légers.
Design des interfaces graphiques.
…
41
Bibliothèques de classes .NET
1) Base Class Library (BCL):
Ces classes sont similaires à celles présentes dans l’API Java développée par Sun.
Par exemple, la manipulation des chaînes est disponible dans les deux
langages.
En Java il n’existe pas de type de base pour manipuler les chaînes (on
manipule des objets String).
42
Bibliothèques de classes .NET
2) Classes d’accès aux données :
La deuxième couche est composée de deux bibliothèques de classes
d’accès aux données.
43
Bibliothèques de classes .NET
Les pages internet ayant pour extension .aspx sont généralement des pages Web écrites en
.NET, tandis que les pages écrites en ASP se terminent généralement en .asp.
L’équivalent de ASP .Net est JSP.
44
La machine virtuelle .NET
Semblable à la machine virtuelle Java
Ne fonctionne que sous Windows
Installée avec le Framework correspondant
14/10/2017 46
Etude sommaire de la technologie
JEE (Sun Microsystems)
47
Normes J2EE
J2EE (Java 2 Enterprise Edition) est une norme visant à définir un standard de
développement d’applications d’entreprises multi-niveaux, basées sur des
composants.
J2EE comprend :
48
1) APIs de J2EE
2 grandes catégories
Composants Services
49
1) APIs de J2EE
Composants Web :
Servlets.
JSP.
Composants métier :
50
1) APIs de J2EE
B) Services : pouvant être classés par catégories :
Services d’infrastructures :
…
51
1) APIs de J2EE
Services de communication :
…
52
2) Serveurs d’applications
Conteneur Web
Services au
travers d’APIs
Conteneur d’EJB
53
2) Serveurs d’applications
Existe plusieurs serveurs d’applications J2EE :
Libres :
GlassFish (Oracle)
JOnAS (OW2)
54
2) Serveurs d’applications
Propriétaires :
55
Architecture J2EE
L’architecture J2EE est une architecture d’application distribuée à base de
composants.
Couche de métier : représentée par les objets du domaine, c’est à dire l’ensemble
des entités persistantes de l’application (les EJBs).
56
Architecture J2EE – 3 tiers
Présentation
Présentation Métier
Métier Données
Données
57
Architecture J2EE – 4 tiers
58
Etude comparative
14/10/2017 59
J2EE, .NET, 4-tier
Couche présentation
J2EE: JSP, Servlet (client léger), AWT, Swing (client lourd)
.NET: ASP (client léger), WinForm (client lourd)
Couche service
J2EE: EJB session
.NET: Serviced/Managed Component
Couche objets métier
J2EE: EJB entity bean
.NET: pas de spécification (objets C# ou VB)
Couche d’acces aux données
J2EE: JDBC
.NET: ADO.NET
14/10/2017 63
Conclusions