Post on 15-Mar-2016
description
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)
khaled.bendriss@net-progress.net
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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
évolutive et variée
=> Nouvelles architectures informatiques.
Terminal
Ordinateurpersonnel1990
Réseaux globaux
TechnologieTechnologie
khaled.bendriss@gmail.com Architecture des systèmes d'information
Mainframe
Terminal
1970
1980
1990Informatique personnelle
Transactionnel
Travail coopératif
ActivitésActivités
khaled.bendriss@gmail.com Architecture des systèmes d'information
1970
1980
Batchs
1990
Industrialisation
Informations à la place de travail
Services offertsServices offerts
khaled.bendriss@gmail.com Architecture des systèmes d'information
1970
1980
Automatisation des processus administratifs
Gestion intégrée
1990
EnjeuxEnjeux
Vivant
Objectif
khaled.bendriss@gmail.com Architecture des systèmes d'information
1970
1980Mécanique
Cahier des charges
Objectif
Prévisible
Réactif
Besoin d’automatisationBesoin d’automatisation
1990
khaled.bendriss@gmail.com Architecture des systèmes d'information
1970
1980
Ressources humainesRessources humaines
1990
khaled.bendriss@gmail.com Architecture des systèmes d'information
1970
1980
Les clefs du succèsLes clefs du succès
� Intégration 56%� Présentation� Personnalisation 25%� Intelligence� Rapidité Déploiement 50%
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Rapidité Déploiement 50%� Performance 60%� Sécurité 79%� Supervision� Administration 70%
Source IDC “eCommerce Survey”
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com 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
Services à Valeur Ajoutée
Les Solutions eBusinessLes Solutions eBusiness
ApplicationsB2E, B2B, B2C,
C2C, ASP
Portails spécialisés Sécuriser
Administrer
Personnaliser
khaled.bendriss@gmail.com Architecture des systèmes d'information
Plate-Forme eBusiness
Applications
Intégrer
Administrer
Applicationstraditionnelles
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.
khaled.bendriss@gmail.com 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é.
Réponses aux attentes du marchéRéponses aux attentes du marché
� Rapidité / Vitesse
� Flexibilité
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Flexibilité
� Montée en charge
� Disponibilité totale
MainframeMainframeClient/ServeurClient/ServeurRéseauxRéseaux
Environnement d’aujourd’huiEnvironnement d’aujourd’hui
khaled.bendriss@gmail.com Architecture des systèmes d'information
InternetInternetet Webet Web
NetProgress
NetProgress
Plate-forme
Windows, Mac, Unix, Linux
PC ClientWeb
Internet Explorer, Netscape
Client Web
Plate-forme Serveur
Architectures informatiquesArchitectures informatiques
khaled.bendriss@gmail.com 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
Web
ServeurInternet
Architectures informatiquesTypes et contraintes
Architectures informatiquesTypes et contraintes
khaled.bendriss@gmail.com Architecture des systèmes d'information
Partage de fichiers
Client-Serveur
Distribuée
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
khaled.bendriss@gmail.com 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
�� 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
khaled.bendriss@gmail.com 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
�� 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
khaled.bendriss@gmail.com 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
�� 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
khaled.bendriss@gmail.com 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
Architecture à trois niveauxclassique
Architecture à trois niveauxclassique
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
Architecture à trois niveauxweb
Architecture à trois niveauxweb
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
Le tiers clientLe tiers client
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
� IIOP / RMI, CORBA� JRMP / RMI� autres…
� Un Web-service�HTTP, HTTPS/ebXML, SOAP(XML)
Le tiers WebLe tiers Web
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
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
khaled.bendriss@gmail.com 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
Le tiers Web : architectureLe tiers Web : architecture
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
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
khaled.bendriss@gmail.com 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)
Le tiers ressourceLe tiers ressource
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
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
khaled.bendriss@gmail.com 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
Le tiers MilieuLe tiers Milieu
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Conteneur de composants
� Doit permettre de réaliser des applications distribuées
Le Coté Serveur d'application
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
khaled.bendriss@gmail.com Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
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
khaled.bendriss@gmail.com 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...
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
khaled.bendriss@gmail.com Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
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…
khaled.bendriss@gmail.com 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 !
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)
khaled.bendriss@gmail.com 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)
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
khaled.bendriss@gmail.com Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
n’est pas disponible pour répondre aux demandes
99.999 = $$$?
DisponibilitéDisponibilité
�La disponibilité d’une application
dépend de nombreux facteurs
–Disponibilité Hardware
Disques durs, cartes réseaux,
khaled.bendriss@gmail.com Architecture des systèmes d'information
contrôleurs, etc...
–Disponibilité logicielle
SGBD, Serveurs Web, etc...
–Disponibilité réseau
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
khaled.bendriss@gmail.com Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
EvolutivitéEvolutivité
�Evolutivité – Avec une augmentation de la charge de travail, les performances ne donnent pas de dégradation significative
�L’évolutivité permet à une
khaled.bendriss@gmail.com 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
�L’évolutivité augmente avec l’augmentation du taux de transaction par seconde (en tps) augmente
�Le taux de transaction par seconde
EvolutivitéEvolutivité
khaled.bendriss@gmail.com 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
Réaliser l’EvolutivitéRéaliser l’Evolutivité
� Deux approches complémentaires
HardwareHardwarepar des par des
khaled.bendriss@gmail.com Architecture des systèmes d'information
par des par des serveurs plus serveurs plus puissantspuissants
SoftwareSoftwarepar serveurs en clusterspar serveurs en clusters
++ ++ + …+ …
Maximisez l’application…Maximisez l’application…
•• AutonomieAutonomie
Applications distribuées Objectifs de Conception
Applications distribuées Objectifs de Conception
khaled.bendriss@gmail.com Architecture des systèmes d'information
•• AutonomieAutonomie•• FiabilitéFiabilité•• DisponibilitéDisponibilité•• EvolutivitéEvolutivité•• InteropérabilitéInteropérabilité
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
khaled.bendriss@gmail.com 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 !
D'oùon déduit
les grandes fonctions du
D'oùon déduit
les grandes fonctions du
khaled.bendriss@gmail.com Architecture des systèmes d'information
les grandes fonctions du serveur d'applications ?les grandes fonctions du serveur d'applications ?
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.
khaled.bendriss@gmail.com 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.
Répartition de chargesRépartition de charges
khaled.bendriss@gmail.com Architecture des systèmes d'information
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.
khaled.bendriss@gmail.com 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.
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.
khaled.bendriss@gmail.com 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, …)
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.
khaled.bendriss@gmail.com 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.
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
khaled.bendriss@gmail.com 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.
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
les utilisateurs
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
khaled.bendriss@gmail.com 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.
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.
khaled.bendriss@gmail.com 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 )
Qu'est-ce qu'un serveur
d'applications ?
Qu'est-ce qu'un serveur
d'applications ?d'applications ?d'applications ?
Khaled.bendriss@net-progress.net
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
Le Coté Serveur d'application
�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
khaled.bendriss@gmail.com 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".
� 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
khaled.bendriss@gmail.com 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
A quoi sert un serveur d'applications ? A quoi sert un serveur d'applications ? Architecture web statique
Architecture web dynamique
khaled.bendriss@gmail.com Architecture des systèmes d'information
Architecture web dynamique
� Serveur d'application de type – Scripting– Objet– Orienté objet
Elaboration de pages dynamiques Elaboration de pages dynamiques
khaled.bendriss@gmail.com Architecture des systèmes d'information
Serveurs d'applications de type scripting Serveurs d'applications de type scripting
� Fichier source = balises HTML + langage de scripting client
� Exemple : PHP, ASP
khaled.bendriss@gmail.com Architecture des systèmes d'information
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
khaled.bendriss@gmail.com 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
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.
khaled.bendriss@gmail.com Architecture des systèmes d'information
du scripting. �Exemple : applications réalisées en JSP
et servlets.
�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
khaled.bendriss@gmail.com 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).
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
sur une infrastructures de
composants distribués
sur une infrastructures de
composants distribués
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
khaled.bendriss@gmail.com 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.
Du bloc au systèmeDu bloc au système
� Un mouvement de fond dans le développement des applications
khaled.bendriss@gmail.com 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
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 à
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
Données
Traitements
Traitements
Objet
Objet
Objet
Objet
Objet
– Vers le SOA (Service Oriented Architecture)
Objets : Encapsulation pour maîtriser la complexitéObjets : Encapsulation pour maîtriser la complexité
Partie privéePartie publique(interface)
khaled.bendriss@gmail.com Architecture des systèmes d'information
Interfaces
Réalisation
Une évolution inéluctableUne évolution inéluctable
khaled.bendriss@gmail.com Architecture des systèmes d'information
Un gros exécutable
Bibliothèquespartagées
ClassesPartagées Code Mobile
SOA
ComposantsComposants
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
– COMPOSANTS– DISTRIBUTION
Client
Container
Client
Composant
Infrastructure/Middleware
Service Service Service
Contrat Interne
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.
khaled.bendriss@gmail.com 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
Composants
Distribués
Composants
Distribués
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, ...).
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Un moyen – Un bus logiciel : l’ORB (Object Request Browser)
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
khaled.bendriss@gmail.com 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
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,
khaled.bendriss@gmail.com 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).
Un modèle d’architecture multi-niveauxUn modèle d’architecture multi-niveaux
Services Informations
khaled.bendriss@gmail.com Architecture des systèmes d'information
PrésentationServicesMétiers
InformationsPersistantes
Le modèle dominant : quatre niveaux fondamentauxLe modèle dominant : quatre niveaux fondamentaux
Navigateur
khaled.bendriss@gmail.com Architecture des systèmes d'information
Serveur WebNavigateur
Navigateur
Services Métiers
InformationsPersistantes
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
Bus de Communication
SGBD ERPApplication
Composants Métiers
Services Techniques
ORB & MOM
Connecteurs
Autres ressources d’entreprise
Présentation des
technologies J2EEPrésentation des
technologies J2EEJ2EEJ2EE
C’est d’abord une plate-forme Java !C’est d’abord une plate-forme Java !
khaled.bendriss@gmail.com Architecture des systèmes d'information
Trois composantes indissociablesTrois composantes indissociables
� Le langage Java
� La machine virtuelle Java
khaled.bendriss@gmail.com 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.
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com 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
Architecture de la J2EEArchitecture de la J2EE
khaled.bendriss@gmail.com Architecture des systèmes d'information
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)
khaled.bendriss@gmail.com 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é
J2EE : support des architecturesmulti-niveaux
J2EE : support des architecturesmulti-niveaux
Serveur Web Serveur deComposants
SGBD
ERPRMI-IIOP
Client HTML
Client
HTTP
JDBC
khaled.bendriss@gmail.com Architecture des systèmes d'information
ExistantClient
HTML/Java
ApplicationJava
HTTP
RMI-IIOP
Client Tier Middle Tier EIS Tier
Web Tier BusinessTier
Serveurs d'applications de type J2EEServeurs d'applications de type J2EE
khaled.bendriss@gmail.com Architecture des systèmes d'information
J2EE vs .Net : un modèle architectural commun
J2EE vs .Net : un modèle architectural commun
khaled.bendriss@gmail.com Architecture des systèmes d'information
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
dans un moteur de servlets/JSP
� Assure le lien entre le monde HTTP et le monde Java
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
NavigateurWeb
ServeurWeb
Container Web J2EE
Servlet
Requête HTTP
Réponse HTTP
HTTP
Réponse HTTP
PagesStatiques
Model d’accès des servletsModel d’accès des servlets
client Serveur
Servlet
khaled.bendriss@gmail.com Architecture des systèmes d'information
client ServeurWeb
Servlet
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
�Mais il faut – Apprendre java
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)
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
Client
ServletRequête
Page JSP
Réponse
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.
khaled.bendriss@gmail.com 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.
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com 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
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)
khaled.bendriss@gmail.com 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)
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.
khaled.bendriss@gmail.com 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.
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é.
khaled.bendriss@gmail.com 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)
Les Web ServicesLes Web Services
Un ObjectifUn Objectif
khaled.bendriss@gmail.com 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
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)
khaled.bendriss@gmail.com Architecture des systèmes d'information
SGDB – R
Applications Existantes
Applications J2EE / .Net
Partenaires/Clients/Fournisseurs
(B2B)
Navigateur
Dispositif mobile
Web Services : les mécanismes de baseWeb Services : les mécanismes de base
ServiceRegistry
���� Publier
Description du Service
���� Rechercher
khaled.bendriss@gmail.com Architecture des systèmes d'information
ServiceProvider
Service
Description du Service
(WSDL + UDDI)
ServiceRequestor
���� Rechercher(WSDL + UDDI)
���� Utiliser(WSDL + SOAP)
Description du Service
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
khaled.bendriss@gmail.com 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
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)
khaled.bendriss@gmail.com 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.
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
khaled.bendriss@gmail.com 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
SOAP : principes de base SOAP : principes de base
khaled.bendriss@gmail.com Architecture des systèmes d'information
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
khaled.bendriss@gmail.com 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
Implications sur le
développement des
Implications sur le
développement des développement des
applications modernes
développement des
applications modernes
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,
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Concevoir des services élémentaires et des combinaisons de services élémentaires
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
ApplicativeMétier
Architecture Applicative
Logique
Architecture Applicative Physique
(Application)
Operating system
Hardware
La composante métierLa composante métier
� Des cas d ’utilisations à l’architecture applicative métier
khaled.bendriss@gmail.com Architecture des systèmes d'information
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)
khaled.bendriss@gmail.com 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
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
khaled.bendriss@gmail.com Architecture des systèmes d'information
� Utiliser l’expérience de la communauté informatique internationale
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
khaled.bendriss@gmail.com 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"
QUESTIONSQUESTIONS
khaled.bendriss@gmail.com Architecture des systèmes d'information