Vous êtes sur la page 1sur 64

Technologie pour le

développement
d’application Web

14/10/2017 1
Plan du cours
Chapitre I : Comprendre
l’environnement

1. Généralités et fondements d’applications réparties


2. Etude sommaire de la technologie .Net (Microsoft)
3. Etude sommaire de la technologie CCM (Corba
Component Model d’OMG)
4. Etude sommaire de la technologie J2EE (Sun
Microsystems)
5. Etude comparative des trois technologies
14/10/2017 2
1. Généralités et fondements
d’applications réparties

3
Qu’est ce qu’un environnement réparti ?

 Un environnement pour faciliter la construction


d’applications réparties.

 Internet.
 Réseaux locaux.
 Réseaux de téléphones mobiles.
…

4
Avantages du réparti

 Organisationnel.
 Découpage en unité.

 Décentraliser les responsabilités.

5
Avantages du réparti

 Organisationnel.
 Découpage en unité.

 Décentraliser les responsabilités.

 Fiabilité et disponibilité.
 Individualisation des défaillances.

 Duplication des constituants de l’application.

6
Avantages du réparti

 Organisationnel.
 Découpage en unité.

 Décentraliser les responsabilités.

 Fiabilité et disponibilité.
 Individualisation des défaillances.

 Duplication des constituants de l’application.

 Performance.
 Partage de la charge.

7
Avantages du réparti

 Organisationnel.
 Découpage en unité.

 Décentraliser les responsabilités.

 Fiabilité et disponibilité.
 Individualisation des défaillances.

 Duplication des constituants de l’application.

 Performance.
 Partage de la charge.

 Maintenance et évolution.
 Simple à étendre.

8
Inconvénients du réparti

 Une mise en œuvre plus délicate.


 Gestion des erreurs.
 Suivi des exécutions.

9
Inconvénients du réparti

 Une mise en œuvre plus délicate.


 Gestion des erreurs.
 Suivi des exécutions.

 Administration plus lourde.


 Installation.
 Configuration.
 Surveillance.

10
Inconvénients du réparti

 Une mise en œuvre plus délicate.


 Gestion des erreurs.
 Suivi des exécutions.

 Administration plus lourde.


 Installation.
 Configuration.
 Surveillance.

 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.

 Haut niveau : définition de couches offrant des services plus complexes.


 Couche réalisée en s’appuyant sur les couches TCP/UDP.
 Exemple : appel d’une méthode chez une entité distante.

 Notion de middleware (intergiciel).


13
Exemple de communication (Bas niveau ) par socket
 Une boucle :
 Le client envoie un message au serveur.
 Le serveur confirme la réception et demande le mot suivant.
 Pour se déconnecter, le client envoie le caractère « q ».

bonjour

recu :bonjour

suivant ?

Client Serveur

Socket sock = new Socket ServerSocket server =


("localhost", 7777); new ServerSocket(7777);
//socket de communication //socket de connexion
Socket sock = server.accept();

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.

Machine 1 Machine 2 Machine N

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.

Machine 1 Machine 2 Machine N

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.

Emission d’une requête

serveur
client

Traitement
de la requête

Renvoie d’une réponse

17
RPC : principe
Programme Procédure A Procédure B
principal

. . .
. . .
. . .
ProcA() ProcB() .
. . .
. . .
. . .

Machine 1 Machine 2 Machine 3


18
RPC : limitations

 Programmation procédurale  Pas d’objet.

 Paramètres et valeur de retour sont des types primitifs.

 Pas de « référence distante ».

19
Evolutions
 JAVA RMI (Remote Method invocation).
 Mono-langage : Java, multiplateforme : de JVM à JVM.

 CORBA (Common Object Request Broker Architecture).


 Multi-langage, multiplateforme.

 DCOM (Distributed Component Object Model) de Microsoft.


 Multi-langages, communication entre des composants logiciels distribués.

 SOAP (Simple Access Object Protocol).


 Multi-langages, multiplateforme.
 Réponse et requête en XML, transport sur HTTP.

 ...

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

 Si on prend une application monolithique et qu'on la


transforme en application distribuée, où plusieurs
clients se connectent sur plusieurs serveurs qui
utilisent plusieurs SGBD, quels problèmes se posent
alors ?
Choses à considérer lorsqu'on
construit une application
distribuée
 Protocoles d'accès distants (CORBA, RMI, IIOP…)
 Gestion de la charge,
 Gestion des pannes,
 Persistence, intégration au back-end,
 Gestion des transactions,
 Clustering,
 Redéploiement à chaud,
 Arrêt de serveurs sans interrompre l'application,
 Gestion des traces, règlages (tuning and auditing),
 Programmation multithread
 Problèmes de nommage
 Securité, performances,
 Gestion des états
 Cycle de vie des objets
 Gestion des ressources (Resource pooling)
 Requête par message (message-oriented midddleware)
Qui s'occupe de tout ceci : le
middleware !
 Dans le passé, la plupart des entreprises
programmaient leur propre middleware.
 Adressaient rarement tous les problèmes,
 Gros risque : ça revient cher (maintenance,
développement)
 Orthogonal au secteur d'activité de l'entreprise (banque,
commerce…)
 Pourquoi ne pas acheter un produit ?
 Oracle, IBM, BEA… proposent depuis plusieurs années
des middleware…
 Aussi appelés serveurs d'application.
Serveur d'application : diviser pour
régner !
 Un serveur d'application fournit les services
middleware les plus courants,
 Permettent de se focaliser sur l'application que l'on
développe, sans s'occuper du reste.
 Le code est déployé sur le serveur d'application.
 Séparation des métiers et des spécificités : d'un côté la
logique métier, de l'autre la logique middleware.
Serveurs d'application Development Tools

Presentation Business Logic Data Access

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#, … :

 C# : langage de programmation orienté objet, proche du Java et est la propre


solution de Microsoft destinée à concurrencer java.

 J# : qui est l’adaptation de Java sur la plateforme .Net (dérivé non-officiel de


Java).

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).

 CIL est l’équivalent du bytecode Java.


 CLR est à .NET ce que la JVM est à Java.
 CLR fournit divers services à l’exécution :
 Compilateur JIT (Just in time) ou juste à temps.
 Gestion de la mémoire : Garbage Collector ou la ramasse-miettes.
 Sécurité.
 ...

35
Environnement de
développement

Compilateurs .NET

Pré compilation en MSIL


ou CIL
(extension .il)

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 Mono : http://www.mono-project.com/


 Pour Linux et Mac OS X.

 Projet Rotor : Free BSD.

 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.

1) Base Class Library (BCL)

2) Classes d’accès aux données

3) Web Services, Web Forms, Windows Forms

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).

 En .NET, le type string (avec un ‘s’ minuscule) a spécifiquement été


défini.

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.

 ADO.Net, s’élevant sur les bases de l’ancien ADO (ActiveX Data


Objects), il permet d’accéder à des données relationnelles, XML et
d’application.
 ADO.Net à pour équivalent JDBC dans les environnements Java.

 XML Classes permettent de manipuler les données XML.

43
Bibliothèques de classes .NET

3) ASP .Net (Web Services, Web Forms), Windows Forms :


 La dernière couche, la plus élevée, est utilisée pour la création de services Web, de

pages Web et d’applications windows.


 Les deux premiers forment ASP.NET, là aussi une référence à l’ancien langage de

programmation Web Active Server Pages (ASP).

 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.

 L’équivalent de Windows Forms de .Net est AWT ou Swing de Java.

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 :

1) Services au travers d’APIs : des extensions Java indépendantes


permettant d’offrir en standard un certain nombre de fonctionnalités.

2) Serveurs d’applications : offre un contexte d’exécution pour des


composants applicatifs (EJB).

48
1) APIs de J2EE

2 grandes catégories

Composants Services

Composants Web Services d’infrastructures


Composants métier Services de communication

49
1) APIs de J2EE

A) Composants : On distingue habituellement deux familles de composants :

 Composants Web :

 Servlets.

 JSP.

 Composants métier :

 EJB (Enterprise Java Beans).

50
1) APIs de J2EE
B) Services : pouvant être classés par catégories :
 Services d’infrastructures :

 JDBC (Java DataBase Connectivity) pour l’accès aux bases de


données relationnelles.

 JNDI (Java Naming and Directory Interface) pour l’accès aux


services de nommage et aux annuaires d’entreprises.

 JAXP (Java API for XML Processing), permettant la création, la


manipulation et le traitement de fichiers XML à bas niveau.

 …

51
1) APIs de J2EE
 Services de communication :

 RMI (Remote method invocation) est une API permettant d’appeler


des méthodes distantes.

 JAAS (Java Authentication and Authorization Service) est une API


de gestion de l’authentification et des droits d’accès.

 JavaMail est une API permettant l’envoi de courrier électronique.

 …

52
2) Serveurs d’applications

Présentation Métier Données


Données

Conteneur Web

Services au
travers d’APIs
Conteneur d’EJB

53
2) Serveurs d’applications
 Existe plusieurs serveurs d’applications J2EE :
 Libres :
 GlassFish (Oracle)

 JBoss (Red Hat)

 JOnAS (OW2)

 Apache Geronimo (Fondation Apache)

 Tomcat comporte un serveur HTTP avec un conteneur Web mais


pas de conteneur d’EJB.
 C’est un serveur Web qui gère les servlets et les JSP.

54
2) Serveurs d’applications
 Propriétaires :

 Oracle WebLogic Server

 Borland Application Server

 IBM Websphere Application Server

55
Architecture J2EE
 L’architecture J2EE est une architecture d’application distribuée à base de
composants.

 L’architecture J2EE permet de séparer :

 Couche de présentation : correspondant à l’interface homme-machine (IHM).

 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).

 Couche de données : correspondant aux informations de l’entreprise stockées


dans des fichiers, dans des bases de données relationnelles ou XML, dans des
annuaires d’entreprise ou encore dans des systèmes d’information complexes.

56
Architecture J2EE – 3 tiers

Présentation
Présentation Métier
Métier Données
Données

57
Architecture J2EE – 4 tiers

Tiers 1 Tiers 2 Tiers 3


Tiers 4
Web Container

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 J2EE vs .NET 60


J2EE, .NET, 4-tier

14/10/2017 J2EE vs .NET 61


Conclusions
 J2EE disponible gratuitement pour toutes les plate formes majeures
 .NET pour l’instant au 100% sur Microsoft et payant

 .NET avantage de coûts sur le court terme (framework déjà packagé)


 J2EE plus de contraintes au début mais avantage sur long termes.

 J2EE réponse à tout type de situation (plate forme plus mature)

 .NET réutilisation des compétences des anciens développeurs (25 langages


disponibles)

14/10/2017 J2EE vs .NET 62


NET offre des avantages de prestations des applications en exécution
et des coûts et temps mineurs de développement par rapport à J2EE

14/10/2017 63
Conclusions

14/10/2017 J2EE vs .NET 64

Vous aimerez peut-être aussi