architecure web
DESCRIPTION
architecure webTRANSCRIPT
![Page 1: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/1.jpg)
Architecture des systèmes
d'information modernes
Architecture des systèmes
d'information modernes
Khaled BEN DRISSKhaled BEN DRISSSenior Manager – NetProgress
Ingénieur de l'Ecole Centrale de Lyon
Docteur de l’Université Paris VI (Pierre et Marie Curie)
![Page 2: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/2.jpg)
Objectifs :
1) Présenter les enjeux des architectures "web" 2) positionner les technologies
Objectifs :
1) Présenter les enjeux des architectures "web" 2) positionner les technologies 2) positionner les technologies des serveurs d'applications 3) acquérir les éléments de comparaison des SA selon les besoins
2) positionner les technologies des serveurs d'applications 3) acquérir les éléments de comparaison des SA selon les besoins
![Page 3: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/3.jpg)
IntroductionIntroduction
�La distribution et l’accès à l ’information dans une entreprise sont des facteursfondamentaux de succès.
�L’information est par nature distribuée, évolutive et variée
[email protected] Architecture des systèmes d'information
évolutive et variée
=> Nouvelles architectures informatiques.
![Page 4: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/4.jpg)
Terminal
Ordinateurpersonnel1990
Réseaux globaux
TechnologieTechnologie
[email protected] Architecture des systèmes d'information
Mainframe
Terminal
1970
1980
![Page 5: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/5.jpg)
1990Informatique personnelle
Transactionnel
Travail coopératif
ActivitésActivités
[email protected] Architecture des systèmes d'information
1970
1980
Batchs
![Page 6: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/6.jpg)
1990
Industrialisation
Informations à la place de travail
Services offertsServices offerts
[email protected] Architecture des systèmes d'information
1970
1980
Automatisation des processus administratifs
Gestion intégrée
![Page 7: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/7.jpg)
1990
EnjeuxEnjeux
Vivant
Objectif
[email protected] Architecture des systèmes d'information
1970
1980Mécanique
Cahier des charges
Objectif
Prévisible
Réactif
![Page 8: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/8.jpg)
Besoin d’automatisationBesoin d’automatisation
1990
[email protected] Architecture des systèmes d'information
1970
1980
![Page 9: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/9.jpg)
Ressources humainesRessources humaines
1990
[email protected] Architecture des systèmes d'information
1970
1980
![Page 10: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/10.jpg)
Les clefs du succèsLes clefs du succès
� Intégration 56%� Présentation� Personnalisation 25%� Intelligence� Rapidité Déploiement 50%
[email protected] Architecture des systèmes d'information
� Rapidité Déploiement 50%� Performance 60%� Sécurité 79%� Supervision� Administration 70%
Source IDC “eCommerce Survey”
![Page 11: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/11.jpg)
Serveur(s) d’applications
PrésentationPasserelle WAP
Nommage/Sessions
AuthentificationValidation
SSL/VPNProxy/Firewall
Annuaire
LDAP
Serveur(s) de présentationPortails spécialisés
Les Technologies eBusinessLes Technologies eBusiness
[email protected] Architecture des systèmes d'information
Connecteurs stansdards/spécifiques
ApplicationsB2E, B2B,
B2C,C2C, ASP
SpécifiquePackagesServices
Logique d’AccèsDonnées/ProcessLocales/Distantes
Nommage/Sessions transactions/Charge Composants
OS390 – UNIX – NTPatrimoine métier
MiddlewareSynchroneMessages
E.A.I Collaboratif
Services à valeur ajoutée
Logique Métier
Bibliothèques
Packages B2B
E.A.I Collaboratif
![Page 12: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/12.jpg)
Serveur(s) d’applications
Les Technologies eBusinessLes Technologies eBusinessPrésentationPasserelle WAP
AuthentificationValidation
SSL/VPNProxy/Firewall
Serveur(s) de présentationPortails spécialisés
Opérations Opérations Réseaux Réseaux Systèmes Systèmes Applications Applications Bases de Bases de données données Serveurs WEB Serveurs WEB MédiasMédias
Performance Performance
Nommage/Sessions
[email protected] Architecture des systèmes d'information
Connecteurs stansdards/spécifiques
ApplicationsB2E, B2B,
B2C,C2C, ASP
SpécifiquePackagesServices
Logique d’AccèsDonnées/ProcessLocales/Distantes
OS390 – UNIX – NTPatrimoine métier
MiddlewareSynchroneMessages
E.A.I Collaboratif
Services à valeur ajoutée
Signature Signature unique (SSO)unique (SSO)
Centre d’Appel Centre d’Appel
Vues métier…Vues métier…
Nommage/Sessions transactions/Charge Composants
![Page 13: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/13.jpg)
Services à Valeur Ajoutée
Les Solutions eBusinessLes Solutions eBusiness
ApplicationsB2E, B2B, B2C,
C2C, ASP
Portails spécialisés Sécuriser
Administrer
Personnaliser
[email protected] Architecture des systèmes d'information
Plate-Forme eBusiness
Applications
Intégrer
Administrer
Applicationstraditionnelles
![Page 14: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/14.jpg)
Récapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoinsRécapitulatif des besoins
�Echange de données entre applications hétérogènes manipulant des données ( au format propriétaire). �Répartition des données sur des sites géographique distants. �Distribution des traitements effectués sur les données réparties. �Interopérabilité des plates-formes de développement.
[email protected] Architecture des systèmes d'information
�Interopérabilité des plates-formes de développement. �Portabilité des applications. �Gestion de la cohérence permanente des données. �Gestion des accès concurrentiels. �Persistance des données. �Intégration des applications et des BDs existantes (legacy systems). �Ouverture. �Sécurité.
![Page 15: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/15.jpg)
Réponses aux attentes du marchéRéponses aux attentes du marché
� Rapidité / Vitesse
� Flexibilité
[email protected] Architecture des systèmes d'information
� Flexibilité
� Montée en charge
� Disponibilité totale
![Page 16: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/16.jpg)
MainframeMainframeClient/ServeurClient/ServeurRéseauxRéseaux
Environnement d’aujourd’huiEnvironnement d’aujourd’hui
[email protected] Architecture des systèmes d'information
InternetInternetet Webet Web
NetProgress
NetProgress
![Page 17: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/17.jpg)
Plate-forme
Windows, Mac, Unix, Linux
PC ClientWeb
Internet Explorer, Netscape
Client Web
Plate-forme Serveur
Architectures informatiquesArchitectures informatiques
[email protected] Architecture des systèmes d'information
SQL Server, Oracle, Sybase, DB/2,
IMS, AS/400, etc.
Plate-formeBase de Données
Site centralIBM
IBM AS/400
Windows NT Server
UNIX
Plate-forme Serveur
![Page 18: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/18.jpg)
Web
ServeurInternet
Architectures informatiquesTypes et contraintes
Architectures informatiquesTypes et contraintes
[email protected] Architecture des systèmes d'information
Partage de fichiers
Client-Serveur
Distribuée
![Page 19: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/19.jpg)
Client-serveurdeux niveaux
Interface utilisateurServices d'entreprise
Client-serveurtrois niveaux
Interface utilisateur
kkwkj aaaawwwwwkkwkj aaaawwwwwkkwkj aaaawwwwwkkwkj aaaawwwwwkkwkj aaaawwwwwkkwkj aaaawwwwwkkwkj aaaawwwww
Centralisé
Evolution de l'architectureEvolution de l'architecture
[email protected] Architecture des systèmes d'information
Services de données
Services d'entreprise
Services de données
Servicesd'entreprise
Servicesd'entreprise
Interface utilisateurServices d'entrepriseServices de données
![Page 20: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/20.jpg)
�� Points fortsPoints fortsoo Contrôle et maintenance centralisésContrôle et maintenance centralisés
oo Optimisation de l'utilisation de l'unité Optimisation de l'utilisation de l'unité centralecentrale
oo Méthode simple de développement Méthode simple de développement d'applicationd'application
Technologie centraliséeTechnologie centralisée
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
kkwkj aaaawwwww
[email protected] Architecture des systèmes d'information
d'applicationd'application
�� Points faiblesPoints faiblesoo Optimise l'unité centrale, mais pas la Optimise l'unité centrale, mais pas la productivité des clientsproductivité des clients
oo Pas flexiblePas flexible
oo Pas d'accès aux données pour les clientsPas d'accès aux données pour les clients
![Page 21: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/21.jpg)
�� Architectures à 2 Architectures à 2
niveaux niveaux oo Le serveur possède les Le serveur possède les
donnéesdonnées
oo Le client possède le codeLe client possède le code
AppApp
Client/Serveur traditionnelClient/Serveur traditionnel
[email protected] Architecture des systèmes d'information
oo La logique de l’application La logique de l’application
n’est pas centraliséen’est pas centralisée
oo Il y a une connexion Base de Il y a une connexion Base de
Données par clientDonnées par client
AppAppAppApp
AppApp
Architecture appropriée si les clients sont peu nombreux
![Page 22: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/22.jpg)
�� Points fortsPoints fortsoo Interface utilisateur graphiqueInterface utilisateur graphique
oo Intégration avec les applications Intégration avec les applications bureautiquesbureautiques
Points faiblesPoints faibles
Client-serveur deux niveauxClient-serveur deux niveaux
AppAppAppAppAppApp
AppApp
[email protected] Architecture des systèmes d'information
�� Points faiblesPoints faiblesoo Une grande partie des services d'entreprise Une grande partie des services d'entreprise du côté clientdu côté client
oo Seuls les services d'entreprise sur le serveur Seuls les services d'entreprise sur le serveur sont réutilisables par les clientssont réutilisables par les clients
oo Le code des services d'entreprise est lié àLe code des services d'entreprise est lié àune seule base de donnéesune seule base de données
![Page 23: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/23.jpg)
Architecture à trois niveauxclassique
Architecture à trois niveauxclassique
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 24: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/24.jpg)
Architecture à trois niveauxweb
Architecture à trois niveauxweb
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 25: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/25.jpg)
Le tiers clientLe tiers client
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 26: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/26.jpg)
Le tiers clientLe tiers client
� Un web browser�HTTP, HTTPS/HTML, XML
� UnPDA�HTTP, HTTPS/WML, XML
� Un client lourd (fat client), applets, apps� IIOP / RMI, CORBA
[email protected] Architecture des systèmes d'information
� IIOP / RMI, CORBA� JRMP / RMI� autres…
� Un Web-service�HTTP, HTTPS/ebXML, SOAP(XML)
![Page 27: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/27.jpg)
Le tiers WebLe tiers Web
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 28: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/28.jpg)
Le tiers Web : rôleLe tiers Web : rôle
� reçoit les requêtes http des clients et renvois les réponses
� permet la séparation entre présentation (spécifique au client) et "business logic"
� génère du contenu dynamiquement
� transforme des requêtes HTTP dans un
[email protected] Architecture des systèmes d'information
� transforme des requêtes HTTP dans un format compris par l’application
� contient la logique du flot de présentation
� identifie la session de l’utilisateur
� supporte plusieurs types de clients
![Page 29: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/29.jpg)
Le tiers Web : architectureLe tiers Web : architecture
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 30: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/30.jpg)
Le tiers Web : technologieLe tiers Web : technologie� CGI / FastCGI (Common Gateway Interface)� Peut-être écrit en JAVA, C, C++, Perl...
� ASP (Active Server Pages)� Scripting interprété dans des pages HTML (Microsoft)
� Java Servlets
[email protected] Architecture des systèmes d'information
� Java Servlets� nécessite un conteneur Java
� JSP (Java Server Pages)� Scripting dans des pages HTML compilé en Servlet
� PHP, Python� JavaScript (ServerSide)
![Page 31: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/31.jpg)
Le tiers ressourceLe tiers ressource
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 32: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/32.jpg)
EIS : Entreprise Information Systems
EIS : Entreprise Information Systems
� Base de données (databases)
� JDO, SQL/J, JDBC, ADO.NET
� Anciens systèmes (legacy systems)
� J2EE Connector, protocoles propriétaires
[email protected] Architecture des systèmes d'information
J2EE Connector, protocoles propriétaires
� ERP(Enterprise Resource Planning)
� J2EE Connector, protocoles propriétaires
� EAI(Enterprise Application Integration)
� J2EE Connector, protocoles propriétaires
![Page 33: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/33.jpg)
Le tiers MilieuLe tiers Milieu
[email protected] Architecture des systèmes d'information
� Conteneur de composants
� Doit permettre de réaliser des applications distribuées
Le Coté Serveur d'application
![Page 34: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/34.jpg)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
[email protected] Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
![Page 35: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/35.jpg)
Aptitude d’une application à fonctionner Aptitude d’une application à fonctionner comme une entité indépendantecomme une entité indépendante
•• Les applications autonomes Les applications autonomes contrôlent totalement leurs contrôlent totalement leurs ressources critiquesressources critiques
AutonomieAutonomie
[email protected] Architecture des systèmes d'information
Ressources CritiquesRessources Critiques –– ressources ressources exigées par une application pour exigées par une application pour fonctionner sûrement comme une entité fonctionner sûrement comme une entité indépendanteindépendante
–– Ex : Connexion bases de données, Ex : Connexion bases de données, transactions, connexions “MainFrame”, etc...transactions, connexions “MainFrame”, etc...
![Page 36: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/36.jpg)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
[email protected] Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
![Page 37: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/37.jpg)
FiabilitéFiabilité
� Fiabilité – La capacité d’une application à fournir des résultats précis et sûres– Exemple : Virement = Crédit + Débit
Si une erreur survient après le crédit et avant le débit…
[email protected] Architecture des systèmes d'information
Si une erreur survient après le crédit et avant le débit…
� Une application n’est pas utile si ses résultats ne sont pas fiables !
![Page 38: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/38.jpg)
Réaliser la FiabilitéRéaliser la Fiabilité
� Assurer les transactions � Caractéristiques : ACID–Tout ou Rien (Atomicité)– Les Opérations ne violeront pas l’intégrité de la ressource (Consistence)
[email protected] Architecture des systèmes d'information
de la ressource (Consistence)– Les états de transitions paraissent s’exécuter en série, l’un après l’autre (Isolé)
– Les résultats des états de transitions récupérables dans le cas d’une défaillance système (Durable)
![Page 39: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/39.jpg)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
[email protected] Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
![Page 40: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/40.jpg)
DisponibilitéDisponibilité
�Disponibilité – La quantité de temps où une application est capable de répondre aux demandes
�Une application n’est pas utile si elle n’est pas disponible pour répondre aux
[email protected] Architecture des systèmes d'information
n’est pas disponible pour répondre aux demandes
99.999 = $$$?
![Page 41: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/41.jpg)
DisponibilitéDisponibilité
�La disponibilité d’une application
dépend de nombreux facteurs
–Disponibilité Hardware
Disques durs, cartes réseaux,
[email protected] Architecture des systèmes d'information
contrôleurs, etc...
–Disponibilité logicielle
SGBD, Serveurs Web, etc...
–Disponibilité réseau
![Page 42: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/42.jpg)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
[email protected] Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
![Page 43: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/43.jpg)
EvolutivitéEvolutivité
�Evolutivité – Avec une augmentation de la charge de travail, les performances ne donnent pas de dégradation significative
�L’évolutivité permet à une
[email protected] Architecture des systèmes d'information
�L’évolutivité permet à une application de supporter de 10 à 10K
utilisateurs–Une application est évolutive en lui ajoutant ou supprimant des ressources selon les besoins
![Page 44: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/44.jpg)
�L’évolutivité augmente avec l’augmentation du taux de transaction par seconde (en tps) augmente
�Le taux de transaction par seconde
EvolutivitéEvolutivité
[email protected] Architecture des systèmes d'information
�Le taux de transaction par seconde augmente en réduisant le temps de transaction
�Temps de transaction = Acquisition de la ressource + Temps d’utilisation de la ressource
![Page 45: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/45.jpg)
Réaliser l’EvolutivitéRéaliser l’Evolutivité
� Deux approches complémentaires
HardwareHardwarepar des par des
[email protected] Architecture des systèmes d'information
par des par des serveurs plus serveurs plus puissantspuissants
SoftwareSoftwarepar serveurs en clusterspar serveurs en clusters
++ ++ + …+ …
![Page 46: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/46.jpg)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
[email protected] Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
![Page 47: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/47.jpg)
InteropérabilitéInteropérabilité� Interopérabilité – faculté des applications d’utiliser des – applications, – des données – ou des ressources sur d’autres plate-formes
� L’entreprise est un environnement
[email protected] Architecture des systèmes d'information
� L’entreprise est un environnement hétérogènes– Les Applications, les données, les ressources résident sur d’autres plate-formesNE seront PAS déplacées sur une plate-forme communeDoivent être utilisées là où elles sont !
![Page 48: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/48.jpg)
D'oùon déduit
les grandes fonctions du
D'oùon déduit
les grandes fonctions du
[email protected] Architecture des systèmes d'information
les grandes fonctions du serveur d'applications ?les grandes fonctions du serveur d'applications ?
![Page 49: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/49.jpg)
Le support des plates-formesLe support des plates-formes
� une qualité première attendue chez ce type d'outil.
� désolidariser la technologie applicative de la machine hébergeant l'application
� le serveur d'applications doit implémenter un ensemble d'API propre à chacun des nombreux systèmes d'exploitation.
[email protected] Architecture des systèmes d'information
nombreux systèmes d'exploitation.� Exemple :
� ouverture, écriture, lecture ou suppression de fichiers, le serveur d'applications doit être en mesure de les exécuter indépendamment de la plate-forme utilisée.
![Page 50: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/50.jpg)
Répartition de chargesRépartition de charges
[email protected] Architecture des systèmes d'information
![Page 51: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/51.jpg)
La disponibilité La disponibilité
� Fonctionnalité de reprise sur incident. En cas de " plantage " au niveau applicatif ou serveur, la requête utilisateur est redirigée vers un serveur disponible de manière transparente.
� La tolérance aux pannes.
[email protected] Architecture des systèmes d'information
� La tolérance aux pannes.� Le S.A. doit prévoir la sauvegarde du contexte utilisateur (réplication des sessions utilisateur sur une autre machine).
� Les S.A. les plus avancés automatisent la gestion de reprise sur incident au niveau session.
![Page 52: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/52.jpg)
Le pooling de connexions Le pooling de connexions
� un pool de connexions : démarrer un nombre prédéfini de connexions vers un SGBDR.
� Le serveur d'applications dirige ensuite les demandes utilisateur en répartissant les différentes requêtes sur les connexions disponibles.
[email protected] Architecture des systèmes d'information
disponibles. � Ceci permet d'avoir la maîtrise du nombre de connexions maximales ouvertes et d'éviter le goulet d'étranglement à ce niveau.
� Même raisonnement pour les autres ressources (Objets, file d'attente, …)
![Page 53: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/53.jpg)
L'ouverture vers l'existant, le respect des standards
L'ouverture vers l'existant, le respect des standards
� les entreprises possèdent généralement un existant auquel il faut s'interfacer.
� l'ouverture vers les protocoles de communication, les principaux ERP et les mainframes est indispensable pour ne pas limiter fonctionnellement l'application.
[email protected] Architecture des systèmes d'information
limiter fonctionnellement l'application. � l'évolutivité et la pérennité de l'application dépendent de la capacité du S.A. à respecter les standards (Java, XML, …)
� capacité du S.A. à intégrer les nouvelles technologies.
![Page 54: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/54.jpg)
La gestion de contexte La gestion de contexte
� Conserver, le temps d'une session, les données propres à l'utilisateur
� Le serveur d'applications doit gérer automatiquement l'identification de l'utilisateur (cookie, l'URL long, …).
� le serveur d'applications crée un espace
[email protected] Architecture des systèmes d'information
� le serveur d'applications crée un espace mémoire dédié à chaque utilisateur (généralement dans un objet session)
� Autres fonctions : définition d'un time-out, lancement d'un événement en fin de session, etc.
![Page 55: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/55.jpg)
La sécurité La sécurité
� Capacité à déployer des applications utilisant à la fois HTTP et HTTPS
� Gestion de l'authentification en relation avec un LDAP, une SGBDR ou tout autre source de données permettant d'identifier les utilisateurs
[email protected] Architecture des systèmes d'information
les utilisateurs
![Page 56: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/56.jpg)
L'administration L'administration � un outil d'administration (interface web ou console) pour le réglage du SA.
� Cas multi-serveurs : paramétrage du répartiteur de charges et choix de l'algorithme de répartition.
� Disponibilité applicative : choisir la solution de sauvegarde de la session.
� Pooling de connexions : dimensionner l'accès
[email protected] Architecture des systèmes d'information
� Pooling de connexions : dimensionner l'accès à la base de données (nombre de connexions au démarrage, le nombre maximum de connexions ouvertes en tout, etc.)
� Cas de la technologie objet : opérer le déploiement des composants dans le serveur d'applications.
� un outil de statistique est toujours une fonctionnalité intéressante.
![Page 57: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/57.jpg)
La productivité La productivité
� En phase de développement, la productivité est liée à la qualité de l'interface entre l'EDI et le S.A.
� Présence d'un éditeur HTML WYSIWYG pour la génération des interfaces graphiques.
� Assistants pour les SGBDR et la saisie de requêtes, la saisie de jointures, la sélection de procédures stockées.
[email protected] Architecture des systèmes d'information
procédures stockées. � l'intégration d'un éditeur SQL dans l'EDI pour tester les requêtes en temps réel.
� Fonctionnalités de débogage (du pas à pas sur le code, des points d'arrêt, d'entrer ou non à l'intérieur des fonctions / méthodes exécutées, d'interroger et/ou de modifier les valeurs des variables )
![Page 58: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/58.jpg)
Qu'est-ce qu'un serveur
d'applications ?
Qu'est-ce qu'un serveur
d'applications ?d'applications ?d'applications ?
![Page 59: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/59.jpg)
Le serveur d'applications Le serveur d'applications Le serveur d'applications Le serveur d'applications comme réponse à un besoincomme réponse à un besoincomme réponse à un besoincomme réponse à un besoinLe serveur d'applications Le serveur d'applications Le serveur d'applications Le serveur d'applications comme réponse à un besoincomme réponse à un besoincomme réponse à un besoincomme réponse à un besoin
[email protected] Architecture des systèmes d'information
Le Coté Serveur d'application
![Page 60: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/60.jpg)
�Selon le cas : – un serveur d'objets, – un moteur d'exécution pour le Web, – un outil de développement, d'administration, de
déploiement et d'exécution,
Le serveur d'applications Le serveur d'applications Le serveur d'applications Le serveur d'applications comme réponse à un besoincomme réponse à un besoincomme réponse à un besoincomme réponse à un besoinLe serveur d'applications Le serveur d'applications Le serveur d'applications Le serveur d'applications comme réponse à un besoincomme réponse à un besoincomme réponse à un besoincomme réponse à un besoin
[email protected] Architecture des systèmes d'information
déploiement et d'exécution, – un serveur de traitements, – une solution d'e-commerce, etc
�Essai :– "un environnement de l'architecture qui fournit
les briques techniques nécessaires à l'exécution d'applications transactionnelles web".
![Page 61: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/61.jpg)
� s'interfacer avec un serveur HTTP� fournir un moteur d'exécution des traitements� s'ouvrir vers l'existant de l'entreprise� répondre aux contraintes induites par les
architectures centralisées� permettre l'ajout de briques techniques et métier
fonctionnalités attenduesfonctionnalités attendues
[email protected] Architecture des systèmes d'information
� permettre l'ajout de briques techniques et métier
Et de manière plus complète, le serveur d'applications doit (idéalement)
� s'intégrer avec un outil de développement et de déploiement pour offrir une bonne productivité
� s'interfacer avec un outil d'administration
![Page 62: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/62.jpg)
A quoi sert un serveur d'applications ? A quoi sert un serveur d'applications ? Architecture web statique
Architecture web dynamique
[email protected] Architecture des systèmes d'information
Architecture web dynamique
![Page 63: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/63.jpg)
� Serveur d'application de type – Scripting– Objet– Orienté objet
Elaboration de pages dynamiques Elaboration de pages dynamiques
[email protected] Architecture des systèmes d'information
![Page 64: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/64.jpg)
Serveurs d'applications de type scripting Serveurs d'applications de type scripting
� Fichier source = balises HTML + langage de scripting client
� Exemple : PHP, ASP
[email protected] Architecture des systèmes d'information
![Page 65: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/65.jpg)
Serveurs d'applications de type objet
Serveurs d'applications de type objet
�La partie du moteur exécutif chargée d'assembler les pages ne repose pas sur un seul fichier contenant les éléments de présentation et les codes de traitements.
� les traitements fonctionnels sont séparés
[email protected] Architecture des systèmes d'information
� les traitements fonctionnels sont séparés des traitements d'interface
�atouts : modélisation objet, + souplesse dans la répartition et la gestion des traitements.
�Exemple : EJB
![Page 66: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/66.jpg)
Serveurs d'applications de type orienté objet
Serveurs d'applications de type orienté objet
� se positionnent à cheval entre les deux autres catégories.
� ils utilisent des langages objet pour faire du scripting.
[email protected] Architecture des systèmes d'information
du scripting. �Exemple : applications réalisées en JSP
et servlets.
![Page 67: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/67.jpg)
�Le marché des serveurs d'application peut se décomposer en 3 catégories:
�Les solutions basées sur J2EE; �Les solutions non basées sur J2EE
Autres classifications Autres classifications
[email protected] Architecture des systèmes d'information
�Les solutions non basées sur J2EE (Cold Fusion, PHP, Perl, …);
�Et la solution Microsoft (ASP/COM et maintenant .NET avec ASP.Net, C#, etc).
![Page 68: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/68.jpg)
Un système d'information "web" moderne doit reposer
sur une infrastructures de
Un système d'information "web" moderne doit reposer
sur une infrastructures de
[email protected] Architecture des systèmes d'information
sur une infrastructures de
composants distribués
sur une infrastructures de
composants distribués
![Page 69: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/69.jpg)
Nouvelles Infrastructures Technologiques: Impacts majeurs sur les systèmes
informatiques
Nouvelles Infrastructures Technologiques: Impacts majeurs sur les systèmes
informatiques
� Trois éléments majeurs– Du bloc au système– De la machine au réseau
[email protected] Architecture des systèmes d'information
– De la machine au réseau– Des procédures/données aux objets/composants
� Une forte tendance à la standardisation des solutions– Passage d’une multitude de solutions propriétaires à un
nombre limité de standards de fait.
![Page 70: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/70.jpg)
Du bloc au systèmeDu bloc au système
� Un mouvement de fond dans le développement des applications
[email protected] Architecture des systèmes d'information
Une clé de la réussite du développement est de concevoir l’application comme une organisation de
composants
![Page 71: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/71.jpg)
De la machine au réseauDe la machine au réseau
–Le réseau est au cœur des systèmes d’information
–Convergence forte vers une standardisation et une banalisation des couches basses
–L’infrastructure middleware vise à
[email protected] Architecture des systèmes d'information
–L’infrastructure middleware vise à masquer la tuyauterie.
–La Plate-forme Java est la meilleure illustration de ce passage de la machine au réseau
The network is the computer
![Page 72: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/72.jpg)
Objets : une rupture dans le modèle logicielObjets : une rupture dans le modèle logiciel
– Le modèle logiciel s’émancipe du modèle physique de Von Neuman
TraitementsTraitements
Traitements Objet
Objet
[email protected] Architecture des systèmes d'information
Données
Traitements
Traitements
Objet
Objet
Objet
Objet
Objet
– Vers le SOA (Service Oriented Architecture)
![Page 73: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/73.jpg)
Objets : Encapsulation pour maîtriser la complexitéObjets : Encapsulation pour maîtriser la complexité
Partie privéePartie publique(interface)
[email protected] Architecture des systèmes d'information
Interfaces
Réalisation
![Page 74: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/74.jpg)
Une évolution inéluctableUne évolution inéluctable
[email protected] Architecture des systèmes d'information
Un gros exécutable
Bibliothèquespartagées
ClassesPartagées Code Mobile
SOA
![Page 75: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/75.jpg)
ComposantsComposants
![Page 76: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/76.jpg)
Un modèle de solution dominant :Système de composants distribuésUn modèle de solution dominant :Système de composants distribués
� Convergence de l’ensemble de l’industrie informatique :– Les deux infrastructures dominantes (Plate-formes Java et .Net)
reposent sur ce même modèle.– Pas de modèle alternatif qui se profile à l’horizon.
� Deux constituants– COMPOSANTS
Serveur de ComposantsClient Container
Contrat Externe
[email protected] Architecture des systèmes d'information
– COMPOSANTS– DISTRIBUTION
Client
Container
Client
Composant
Infrastructure/Middleware
Service Service Service
Contrat Interne
![Page 77: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/77.jpg)
Un composant est plus qu’un objetUn composant est plus qu’un objet� Les composants reprennent les caractéristiques des objets
auxquels ils rajoutent un ensemble de propriétés :– Niveau de granularité plus important que les objets.– Procurent des services de plus haut niveau réalisés par
une collaboration d’objets internes.– Capsule qui sépare complètement la spécification des
services (interfaces) de leur réalisation par des collaboration internes.
[email protected] Architecture des systèmes d'information
collaboration internes.– Entité exécutable (dans une structure d’accueil) qui
possède son propre fonctionnement autonome et capable de gérer ses propres ressources.
composant
objet
objet
objet
objetobjet
![Page 78: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/78.jpg)
Composants
Distribués
Composants
Distribués
![Page 79: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/79.jpg)
DistributionDistribution
� Un objectif– Pouvoir utiliser des services (opérations) sur des
objets distants (sur une autre machine) en faisant abstraction de toute la «plomberie» nécessaire (protocole réseau de bas niveau, ...).
[email protected] Architecture des systèmes d'information
� Un moyen – Un bus logiciel : l’ORB (Object Request Browser)
![Page 80: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/80.jpg)
ORB : les forces en présenceORB : les forces en présence– L’ORB constitue le noyau de base des infrastructures
techniques d’objets distribués.– Trois technologies dominantes :
CORBA IIOP (Internet Inter-ORB Protocol ), spécification de l ’OMG.Java RMI (Remote Method Invocation).Microsoft .Net (successeur de DCOM).
– Reposent fondamentalement sur le même modèle (Bus
[email protected] Architecture des systèmes d'information
– Reposent fondamentalement sur le même modèle (Bus à Objets).
– Processus de convergence Java-CORBA (RMI-IIOP, EJB, Corba Components).
– Deux camps en présence :Java-CORBA (Serveurs d’applications Sun, IBM, Oracle, Sybase, Borland, …).Microsoft .Net
![Page 81: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/81.jpg)
Serveurs d’applicationServeurs d’application� On peut voir un serveur d’application comme
l’infrastructure technique qui fédère les différentes composantes technologiques en un tout cohérent.
� C’est principalement un serveur de composants qui procure les containers et les services techniques nécessaires à l’exécution de ces composants.– implémente le(s) modèle(s) de composants,
[email protected] Architecture des systèmes d'information
– implémente le(s) modèle(s) de composants,– fournit les services de middleware (ORB, nommage,
transaction, sécurité, message queuing, persistance, etc.),
– permet la connexion aux autres ressources du SI,– optimise les performances et permet la montée en
charge.� Prend en charge la partie Web Server (Internet,
Intranet, Extranet).
![Page 82: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/82.jpg)
Un modèle d’architecture multi-niveauxUn modèle d’architecture multi-niveaux
Services Informations
[email protected] Architecture des systèmes d'information
PrésentationServicesMétiers
InformationsPersistantes
![Page 83: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/83.jpg)
Le modèle dominant : quatre niveaux fondamentauxLe modèle dominant : quatre niveaux fondamentaux
Navigateur
[email protected] Architecture des systèmes d'information
Serveur WebNavigateur
Navigateur
Services Métiers
InformationsPersistantes
![Page 84: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/84.jpg)
Une architecture en 5 couchesUne architecture en 5 couches
Présentation
Application
logique métier, manière particulière
Fédération de services procurant les fonctionnalités attendues
Interfaces utilisateur
[email protected] Architecture des systèmes d'information
Services
Domaine
Persistance Mécanismes de stockage des informations persistantes (SGBD)
Objets Métier avec leurs propriétés et leur comportement intrinsèque
logique métier, manière particulière d’utiliser les objets métier
![Page 85: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/85.jpg)
Vers une Architecture Orientée Services (SOA)Vers une Architecture Orientée Services (SOA)
Présentation
Application1
Application2
Application3
Présentation des activités métier
Applications par domainemétier (assemblage)
Composants Métiers
[email protected] Architecture des systèmes d'information
Bus de Communication
SGBD ERPApplication
Composants Métiers
Services Techniques
ORB & MOM
Connecteurs
Autres ressources d’entreprise
![Page 86: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/86.jpg)
Présentation des
technologies J2EEPrésentation des
technologies J2EEJ2EEJ2EE
![Page 87: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/87.jpg)
C’est d’abord une plate-forme Java !C’est d’abord une plate-forme Java !
[email protected] Architecture des systèmes d'information
![Page 88: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/88.jpg)
Trois composantes indissociablesTrois composantes indissociables
� Le langage Java
� La machine virtuelle Java
[email protected] Architecture des systèmes d'information
� Les APIs javaL’intérêt de la plateforme Java repose sur la conjo nction de
ces trois éléments.Le tout est plus que la somme des parties.
![Page 89: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/89.jpg)
Java : le langageJava : le langage
� Un langage objet
� Certaine synthèse de l’état de l’art en la matière
� Retour d’expérience des langages précédents
[email protected] Architecture des systèmes d'information
� Retour d’expérience des langages précédents
� Gestion Automatique de la mémoire
� Typage fort
� Dimension dynamique
![Page 90: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/90.jpg)
Java : la machine virtuelleJava : la machine virtuelle� La machine virtuelle est un programme
qui exécute une application Java.� La langage Java n'est pas interprété.� Le code Java est compilé en code
intermédiaire (byte-code) indépendant de toute machine.
� Le byte code est chargé et exécuté
Compilateurjavac
Byte-Code
Source*.java
[email protected] Architecture des systèmes d'information
� Le byte code est chargé et exécuté (interprété/compilé) par la machine virtuelle qui fonctionne sur l'infrastructure d'accueil.
� Il n'y pas d'édition de liens, ce qui renforce la nature dynamique du langage.
*.class
MVInterpréteur
SE
Matériel
![Page 91: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/91.jpg)
J2EE : une version étendue aux applications d’entrepriseJ2EE : une version étendue aux applications d’entreprise
� Spécification d’un modèle de composants distribués prenant en compte les différentes couches d’un système d’information d’entreprise (client, web, composants métier, persistance, connecteurs)
� La J2EE est la spécification d’un serveur d’application
[email protected] Architecture des systèmes d'information
� La J2EE est la spécification d’un serveur d’application
� WebSphere (IBM), WebLogic (BEA), Sun One (Sun), Oracle 9iAs (Oracle), Jboss, etc. sont autant d’implémentations de la J2EE
![Page 92: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/92.jpg)
Architecture de la J2EEArchitecture de la J2EE
[email protected] Architecture des systèmes d'information
![Page 93: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/93.jpg)
J2EE 1.3 : les API (services) en 2001J2EE 1.3 : les API (services) en 2001� JDBC 2.0 (Java DataBase Connectivity) � RMI/IIOP 1.0 (Remote Method Invocation / Internet
InterOrb Protocol)� EJB 2.0 (Enterprise JavaBeans) � Servlet 2.3� JSP 1.2(Java Server Pages) � JMS 1.0 (Java Message Services)
JNDI 1.2 (Java Naming and Directory Interface)
[email protected] Architecture des systèmes d'information
� JNDI 1.2 (Java Naming and Directory Interface)� JTA 1.0.1 (Java Transaction Services) � JavaMail 1.1 � JAF 1.0 (JavaBeans Activation Framework) � JAAS 1.0 (Java Authorisation & authentication
services)� JCA 1.0 (J2EE Connector Architecture)
…J2EE 1.4 est arrivé
![Page 94: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/94.jpg)
J2EE : support des architecturesmulti-niveaux
J2EE : support des architecturesmulti-niveaux
Serveur Web Serveur deComposants
SGBD
ERPRMI-IIOP
Client HTML
Client
HTTP
JDBC
[email protected] Architecture des systèmes d'information
ExistantClient
HTML/Java
ApplicationJava
HTTP
RMI-IIOP
Client Tier Middle Tier EIS Tier
Web Tier BusinessTier
![Page 95: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/95.jpg)
Serveurs d'applications de type J2EEServeurs d'applications de type J2EE
[email protected] Architecture des systèmes d'information
![Page 96: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/96.jpg)
J2EE vs .Net : un modèle architectural commun
J2EE vs .Net : un modèle architectural commun
[email protected] Architecture des systèmes d'information
![Page 97: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/97.jpg)
Les composants de la partie WebLes composants de la partie Web
� Deux constituantes principales– Les Servlets– Les Java Server Pages (JSP)
� Ces composants sont déployés et exécutés dans un moteur de servlets/JSP
[email protected] Architecture des systèmes d'information
dans un moteur de servlets/JSP
� Assure le lien entre le monde HTTP et le monde Java
![Page 98: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/98.jpg)
Les ServletsLes Servlets� Composants Java ayant pour responsabilité de
– récupérer les requêtes HTTP de l’utilisateur, – invoquer les traitements applicatifs Java
correspondants– construire la page HTML de réponse pour l’utilisateur
Requête HTTP
[email protected] Architecture des systèmes d'information
NavigateurWeb
ServeurWeb
Container Web J2EE
Servlet
Requête HTTP
Réponse HTTP
HTTP
Réponse HTTP
PagesStatiques
![Page 99: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/99.jpg)
Model d’accès des servletsModel d’accès des servlets
client Serveur
Servlet
[email protected] Architecture des systèmes d'information
client ServeurWeb
Servlet
![Page 100: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/100.jpg)
Avantages / InconvénientsAvantages / Inconvénients�Avantages
– Indépendance issue de la plate-forme java– Modèle de sécurité issu du serveur Web– Support dans la plupart des serveurs Web– Exploite toute l'API Java (+ protocoles)
Mais il faut
[email protected] Architecture des systèmes d'information
�Mais il faut – Apprendre java
![Page 101: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/101.jpg)
JSP : Java Server PagesJSP : Java Server Pages
�Technologie définie pour aider à l'écriture de pages Web
� Elle– génère une page vers le client– est portable (Write Once, Run EveryWhere)
[email protected] Architecture des systèmes d'information
– est portable (Write Once, Run EveryWhere)– mets en avant l'approche par composants– permet la mise en œuvre facile des sites
dynamiques
�Equivalents : ASP, PHP
![Page 102: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/102.jpg)
Les JSPLes JSP�Séparent la présentation du contenu�Une page JSP contient
– moules (squelettes) contenant le texte fixe– action contenues dans des directives et des
scriplets
[email protected] Architecture des systèmes d'information
Client
ServletRequête
Page JSP
Réponse
![Page 103: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/103.jpg)
JDBC JDBC
� JDBC (Java Database Connectivity) API permettant de travailler avec des bases de données relationnelles.
� Le code Java utilisant l'API JDBC est indépendant de la base elle même grâce à l'utilisation de drivers spécifiques fournis par les vendeurs.
[email protected] Architecture des systèmes d'information
spécifiques fournis par les vendeurs. � Bien sûr, les requêtes JDBC utilisées doivent être
standards pour que l'ensemble reste portable.
![Page 104: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/104.jpg)
JNDI JNDI
� JNDI (pour Java Naming and Directory Interface) est une API pour communiquer avec les services de nommage et d'annuaire en réseau.
� On peut ainsi y chercher des objets Java par un chemin ou des valeurs d'attributs.
� Il existe des ponts avec les principaux services
[email protected] Architecture des systèmes d'information
Il existe des ponts avec les principaux services d'annuaires (comme LDAP, NIS ou NDS) et avec les registry de RMI ou CORBA.
� JNDI est utilisé couramment dans la plateforme J2EE pour récupérer des objets par un nom symbolique
![Page 105: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/105.jpg)
Les composants métiersLes composants métiers� J2EE spécifie un modèle de composants pour le
niveau métier : les EJB.� Les EJB sont exécutés dans un container
spécifique, distinct du container Web et qui n’est pas nécessairement hébergé par la même machine
� Tout serveur d’application certifié J2EE doit procurer les EJB
[email protected] Architecture des systèmes d'information
procurer les EJB� La mise en œuvre des EJB n’est pas imposée� Une application J2EE peut tout à fait n’utiliser
que le moteur de JSP/Servlets� Les EJB font l’objet d’un large débat souvent
passionné� Éviter tout dogmatisme en la matière et examiner
les choses aussi objectivement que possible
![Page 106: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/106.jpg)
Les Enterprise Java Bean (EJB)Les Enterprise Java Bean (EJB)
� Composants distribués transactionnels réutilisables
� Centrés sur la logique métier
� Objectif : permettre aux développeurs de se concentrer sur les aspects applicatifs métier en
[email protected] Architecture des systèmes d'information
concentrer sur les aspects applicatifs métier en se libérant de la «plomberie» (sécurité, transaction, nommage, persistance, …)
Client EJB
Home Interface
Object Interface
![Page 107: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/107.jpg)
Les différents types d’EJBLes différents types d’EJB
� EJB Sessions : composants non persistant associé à un seul client– Stateless (Sans état)– Statefull (Avec état)
� EJB Entités : composants persistants partagés par plusieurs clients– La home Interface joue le rôle de factory (création, suppression,
recherche)
[email protected] Architecture des systèmes d'information
recherche)– L’object Interface procure les services métiers– Possède un identité explicite (Primary Key)– BMP = persistance gérée par le bean (programmé)– CMP = persistance gérée par le container (déclarée)– Les EJB CMP procure la notion de relation managée (1..1, 1..n,
n..n)� EJB Message : composants gérant les messages
asynchrones– Pas d’état– Basé sur JMS (Message Queuing)
![Page 108: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/108.jpg)
JMS JMS
� JMS (Java Message Service) introduit un modèle de messages entre composants (MOM : Messages Oriented Middleware )
� Permet des communications asynchrones, fiable et indépendantes entre composants
� JMS est une API d'échange asynchrone de message ou d'évènements critiques entre applications.
[email protected] Architecture des systèmes d'information
ou d'évènements critiques entre applications. � JMS permet maintenant de gérer les transactions et
est utilisée pour la communication asynchrone entre EJBs.
![Page 109: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/109.jpg)
Autres APIs Autres APIs � JavaMail : Permet d'envoyer des emails. � JAXP : Java API for XML Parsing est une API qui unifie les
différentes implémentations de parsers XML� JCA : Java Connector Architecture permet l'interconnexion
d'une application J2EE avec un système d'information d'entreprise par la gestion de pools, des transactions et de la sécurité.
[email protected] Architecture des systèmes d'information
la sécurité. � JAAS : Java Authentication and Authorization Service
� JSF : Les JavaServer Faces étendent les capacités des JSP pour faciliter la création et la mise à jour d'objets au sein de l'interface (barre de navigation, etc.).
� JDO : (Java Data Objects) Un modèle de manipulation des données avec un mapping automatique (objet / Relationnel)
![Page 110: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/110.jpg)
Les Web ServicesLes Web Services
![Page 111: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/111.jpg)
Un ObjectifUn Objectif
[email protected] Architecture des systèmes d'information
� Une architecture d’intégration qui permet à des utilisateurs et/ou des applications d’interagir dynamiquement sur le réseau au travers de technologies internet ouvertes
![Page 112: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/112.jpg)
Technologies ouvertesTechnologies ouvertes
Toute information
Tout processus
Contenu
Tout Système
Tout Matériel
Tout Utilisateur
Systèmes internes
Annuaire
Page Jaunes
(privées/publiques)
[email protected] Architecture des systèmes d'information
SGDB – R
Applications Existantes
Applications J2EE / .Net
Partenaires/Clients/Fournisseurs
(B2B)
Navigateur
Dispositif mobile
![Page 113: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/113.jpg)
Web Services : les mécanismes de baseWeb Services : les mécanismes de base
ServiceRegistry
���� Publier
Description du Service
���� Rechercher
[email protected] Architecture des systèmes d'information
ServiceProvider
Service
Description du Service
(WSDL + UDDI)
ServiceRequestor
���� Rechercher(WSDL + UDDI)
���� Utiliser(WSDL + SOAP)
Description du Service
![Page 114: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/114.jpg)
Web Services : on en est au débutWeb Services : on en est au début
� Nécessitent pour être réellement opérationnels une définition complète des services
WorkFlow du Service En cours
Contrat Métier En cours
[email protected] Architecture des systèmes d'information
Protocole de communication SOAP
Implémentation du Service WSDL + SOAP + J2EE/.Net
Définition de l’interface du service WSDL
Publication/Recherche du service UDDI
WorkFlow du Service En cours
![Page 115: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/115.jpg)
Web Services : considérations pratiquesWeb Services : considérations pratiques� La J2EE et .Net sont deux technologies qui devront
cohabiter d’une manière ou d’une autre
� .Net intègre les web services au cœur de sa plate-forme
� La J2EE 1.4 intègrera directement les APIs des web services (Java WSDP)
[email protected] Architecture des systèmes d'information
� Les mécanismes de base des web services deviendront inévitablement le moyen privilégié pour faire interopérer les deux plate-formes.
� Il faut intégrer le fait que les services applicatifs J2EE développés aujourd’hui pourront être publiés comme des web services demain.
![Page 116: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/116.jpg)
SOAP : le protocole des Web ServicesSOAP : le protocole des Web Services
� Définit un format standard pour l’échange de messages Xml
� Fournit un mécanisme de type RPC
� Repose sur HTTP
[email protected] Architecture des systèmes d'information
� Repose sur HTTP
� Utilise XML pour le transport des paramètres
� Un des mécanisme incontournable d’intégration de services applicatifs hétérogène
� Encore très limité en terme de capacité transactionnelle
![Page 117: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/117.jpg)
SOAP : principes de base SOAP : principes de base
[email protected] Architecture des systèmes d'information
![Page 118: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/118.jpg)
Le débatLe débat� Utiliser un Langage de description des
Interfaces (IDL) pour assurer l’indépendance vis à vis des langages de programmation– On dépend du protocole (incluant le mapping)
� Utiliser un langage reposant sur une
[email protected] Architecture des systèmes d'information
� Utiliser un langage reposant sur une machine virtuelle et donc indépendant de l’infrastructure sous-jacente.– On dépend de la sémantique du langage
� Suivant le contexte d’utilisation, les deux solutions ne sont pas mutuellement exclusives
![Page 119: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/119.jpg)
Implications sur le
développement des
Implications sur le
développement des développement des
applications modernes
développement des
applications modernes
![Page 120: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/120.jpg)
L’architecture au cœur de la problématique
L’architecture au cœur de la problématique
� L’obtention de "bonnes" applications distribuées ne procède pas de la génération spontanée
� La mise en œuvre des technologies, aussi puissantes soient-elles, ne suffit pas à garantir l’obtention d’un système fiable,
[email protected] Architecture des systèmes d'information
garantir l’obtention d’un système fiable, performant et évolutif
� L’élaboration d’une architecture adéquate est au cœur du processus de développement
� Ce n’est pas une tâche simple� Placer l’approche objet au cœur de la
démarche
![Page 121: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/121.jpg)
Ne pas raisonner en terme d’application monolithiqueNe pas raisonner en terme d’application monolithique
� Concevoir une application comme une fédération de services procurant les fonctionnalités attendues
[email protected] Architecture des systèmes d'information
� Concevoir des services élémentaires et des combinaisons de services élémentaires
![Page 122: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/122.jpg)
Du métier à l’application informatiqueDu métier à l’application informatique
Modèle Métier(Processus
et Domaines)
Modèle Métier de l’Application
Architecture Applicative
Modèle d’InfrastructureTechnologique
InfrastructureTechnologique
Frameworks
Middleware
Operating system
[email protected] Architecture des systèmes d'information
ApplicativeMétier
Architecture Applicative
Logique
Architecture Applicative Physique
(Application)
Operating system
Hardware
![Page 123: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/123.jpg)
La composante métierLa composante métier
� Des cas d ’utilisations à l’architecture applicative métier
[email protected] Architecture des systèmes d'information
![Page 124: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/124.jpg)
De l’architecture applicative à l’architecture techniqueDe l’architecture applicative à l’architecture technique
� Exemple dans le cas de la J2EE (avec mise en œuvre des EJB)
[email protected] Architecture des systèmes d'information
PagesJSP
Servlet
EJB Session
EJB Entity
EJB Entity
Support de Persistance
Logique & contrôlede présentation
Présentation
Logique & contrôleMétier
Requête Client
Réponse Client
EntitésMétier
12
34
5
6
![Page 125: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/125.jpg)
Développement des applications J2EEDéveloppement des applications J2EE
� Développer pour les spécifications de la J2EE, pas pour un serveur d’application particulier
� Placer l’architecture au cœur du développement
[email protected] Architecture des systèmes d'information
� Utiliser l’expérience de la communauté informatique internationale
![Page 126: architecure web](https://reader034.vdocuments.site/reader034/viewer/2022052604/568c2c2d1a28abd8328c9e59/html5/thumbnails/126.jpg)
Ne pas réinventer la roue à chaque fois
Ne pas réinventer la roue à chaque fois
� Face à un problème, il faudrait toujours se poser la question de savoir comment les autres, confrontés au même type de problème, ont procédé pour le résoudre.
� Les patterns (notamment les design patterns) répondent à cette problématique
[email protected] Architecture des systèmes d'information
Les patterns (notamment les design patterns) répondent à cette problématique– Profiter de l’expérience des autres – Appliquer les bonnes pratiques issues de la
communauté informatique internationale (le web a révolutionné les échanges entre communautés de développeurs)
– Casser le mythe du "ce qui est fait chez nous est forcément mieux qu’ailleurs"