127
Architecture des systèmes d'information modernes Architecture des systèmes d'information modernes Khaled BEN DRISS Khaled BEN DRISS Senior Manager – NetProgress Ingénieur de l'Ecole Centrale de Lyon Docteur de l’Université Paris VI (Pierre et Marie Curie) [email protected]

architecure web

Embed Size (px)

DESCRIPTION

architecure web

Citation preview

Page 1: architecure web

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)

[email protected]

Page 2: architecure web

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

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

Terminal

Ordinateurpersonnel1990

Réseaux globaux

TechnologieTechnologie

[email protected] Architecture des systèmes d'information

Mainframe

Terminal

1970

1980

Page 5: architecure web

1990Informatique personnelle

Transactionnel

Travail coopératif

ActivitésActivités

[email protected] Architecture des systèmes d'information

1970

1980

Batchs

Page 6: architecure web

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

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

Besoin d’automatisationBesoin d’automatisation

1990

[email protected] Architecture des systèmes d'information

1970

1980

Page 9: architecure web

Ressources humainesRessources humaines

1990

[email protected] Architecture des systèmes d'information

1970

1980

Page 10: architecure web

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

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

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

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

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

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

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

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

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

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

�� 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

�� 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

�� 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

Architecture à trois niveauxclassique

Architecture à trois niveauxclassique

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 24: architecure web

Architecture à trois niveauxweb

Architecture à trois niveauxweb

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 25: architecure web

Le tiers clientLe tiers client

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 26: architecure web

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

Le tiers WebLe tiers Web

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 28: architecure web

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

Le tiers Web : architectureLe tiers Web : architecture

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 30: architecure web

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

Le tiers ressourceLe tiers ressource

[email protected] Architecture des systèmes d'information

Le Coté Serveur d'application

Page 32: architecure web

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

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

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

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

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

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

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

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

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

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

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

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

�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

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

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

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

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

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

Répartition de chargesRépartition de charges

[email protected] Architecture des systèmes d'information

Page 51: architecure web

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

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

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

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

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

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

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

Qu'est-ce qu'un serveur

d'applications ?

Qu'est-ce qu'un serveur

d'applications ?d'applications ?d'applications ?

[email protected]

Page 59: architecure web

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

�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

� 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

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

� 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

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

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

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

�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

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

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

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

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

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

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

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

ComposantsComposants

Page 76: architecure web

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

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

Composants

Distribués

Composants

Distribués

Page 79: architecure web

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

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

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

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

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

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

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

Présentation des

technologies J2EEPrésentation des

technologies J2EEJ2EEJ2EE

Page 87: architecure web

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

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

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

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

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

Architecture de la J2EEArchitecture de la J2EE

[email protected] Architecture des systèmes d'information

Page 93: architecure web

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

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

Serveurs d'applications de type J2EEServeurs d'applications de type J2EE

[email protected] Architecture des systèmes d'information

Page 96: architecure web

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Les Web ServicesLes Web Services

Page 111: architecure web

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

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

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

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

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

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

SOAP : principes de base SOAP : principes de base

[email protected] Architecture des systèmes d'information

Page 118: architecure web

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

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

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

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

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

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

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

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

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"

Page 127: architecure web

QUESTIONSQUESTIONS

[email protected] Architecture des systèmes d'information