Architecture et infrastructure Web
par
Patrice Caron
http://www.patricecaron.com
pcaron@patricecaron.com
Ordre du jour
Entreprises / Gouvernements
Introduction: Architecture orientée services?
Quelques concepts d'architecture et d'infrastucture
Exemple d'infrastructure Web «ouverte»
intégrant des composantes «fermé»
«Bâtir autour de standards ouverts ?»
«Comprenez ce que l'OpenSource à pour vous.»
«Ne vous laissez pas dicter les règles !»
Ordre du jour
Défis
Entreprises / Gouvernements Défi d'intégration et d'intéropabilité
d'environnement hétérogène
Défi d'intégration B2B, B2C, A2A Défi d'entreprise ouverte
Défi lié à la dépérimétrisation du système
d’information
Architecture orientée services
Architecture orientée services (AOS)
Anglais: Service Oriented Architecture (SOA)
Modèle d'interaction applicative qui met en œuvre des services
avec une forte cohérence interne (format d'échange XML)
couplages externes « lâches » (couche d'interface interopérable, souvent un service web WS*)
Architecture orientée services
Composant clef: le service Le service est l'unité atomique
Une application est un ensemble de services qui dialoguent entre eux
Le service est codé dans n'importe quel langage Le service s'exécute sur n'importe quelle plate
forme (matérielle et logicielle)
Les Services Web
Cadre commun d'interopérabilité
Ministère des services gouvernementaux
«Les services Web forment une technologie émergente permettant à des applications de
dialoguer à
distance via internet, et ce, indépendamment des plates-formes sur lesquelles elles reposent. Les
services Web visent à réduire les problèmes
d’interopérabilité en permettant à des applications communiquer directement entre elles et d’échanger de
des données indépendamment de leur
localisation, des systèmes d’exploitation ou des langages utilisés.»
Architecture orientée services
On ne peut pas vraiment parler
d'architecture orientée services (SOA) sans parler de gouvernance et de
processus
Aspect marketing des SOA
Par contre, on peut parler d'architecture et d'infrastructure technologique en vue
d'offrir des services orientés sur le Web en
s'inspirant des grands principes des SOA.
Quelques concepts
Architecture multi niveau (N-Tier)
Haute disponibilité
Séparation en couche
Sécurité
N-Tier
Pare feu applicatif
Système d'authentification unique (SSO) Service mandataire
Portail de service
Application composite Plate forme applicative
Architecture multi niveau
Haute disponibilité
Une des fonctions les plus importantes est de permettre la haute disponibilité de service:
Infrastructure: redondance matérielle
Processus: réduire erreurs accélérer la reprise
Haute disponibilité
Permet la répartition de charge entre plusieurs serveurs
Permet une tolérance aux pannes en cas de défaillance matériel ou logiciel
Permet l'ajout de nouveaux serveurs à la
demande afin d'augmenter la puissance de calcul de la «grappe» sans impact majeur sur l'architecture
Permet de faciliter les entretiens sans empêcher le service de fonctionner
Architecture multi niveau
Chaque niveau ne communique qu'avec ses voisins immédiats
Sécurité
N-Tier
Permet d'améliorer la sécurité des services en structurant/atomisant les intégrations entre les différentes couches d'un système
Permet de faciliter la compréhension des échanges grâce à la mise en pratique de principe de modularité/couplage faible
Sécurité
Pare feu applicatif/Firewall Applicatif Web
Historiquement, sécurité autour du réseau
Le risque est maintenant au niveau applicatif (XSS, Injection, logique et plus).
Pare feux applicatif spécialisés dans le protocole HTTP Permet de filtrer les requêtes entrants(signature et
comportenant d'attaque) ainsi que les réponses(retour d'erreur d'application)
Négatif (acceptera toutes)/Possitif (refusera toutes) Complète la révision de code
Logiciel vs matériel SSL
Authentification
Système d'authentification unique (SSO) Éviter les authentifications multiple
Évolue vers des mécanismes d'authentification
«externalisés»
Tendance d'abandonner une démarche
«lourde» pour une démarche «légère» basée sur les Web Services
Vers des mot de passe qui ne circule plus
entre les applications (ticket à usage unique)
Authentification
Méta répertoire
Répertoire central: Convergence de
l’information d’identité dans tous les stockages d’identité connectés dans l’entreprise
Information sur les employés, clients, partenaires.
Nécessaire pour SSO Standard LDAP
Service mandataire (Proxy)
Proxy/reverse proxy
Relayer des requêtes entre un poste client et un serveur / entre un serveur et un serveur Un proxy est spécialisé dans un protocole
(http, xmmp, ldap, smtp, etc.) Permet généralement:
mémoire cache ;
la journalisation des requêtes (« logging ») ; la sécurité
le filtrage
Portail de service
Point d'entrée unique
Point d'entrée unique pour les utilisateurs authentifié vers des ressources / services / applications
Espaces de publication
Personnalisation des contenus Première aspect: Le self service Notion de portail d'intégration SSO
Application composite (Mashup)
Combine du contenu ou du service provenant de plusieurs applications plus ou moins hétérogènes
Site Web: le principe d'un mashup est d'agréger du contenu provenant d'autres sites, afin de créer un site nouveau (RSS, AJAX, Web Service, etc.)
Présentation: Combinent des éléments de sources multiples masqué dernière une GUI. Le plus connu (Google Maps)
Données: Mélange provenant de différentes source pour présenter sous forme graphique ou non
Commerce/public: Hydride présentation/données. Résultat final une application complète.
Entreprise: Hydride avec couche collaborative(workflow). Source internes et externes. Application complète dans le cadre
entreprise.
Plate forme applicative
Software platform
Plusieurs logiciels particuliers destinées à
s'intégrer avec des applications / services / portails
ECM, CMS, BI, GroupWare, GéoLocalisateur, VOIP, application maison, etc. etc.
Cas d'infrastructure Web
Un cas commun
Gouvernements / Entreprises Monde Oracle, Novell, Solaris et plus
Besoin d'ouverture du système d'information
Évolution vers un monde autour de les standards ouverts
Vivre avec certains lègues. Voir utiliser les forces?
Infrastructure technologique Web
Lègue
Sun
Offre:
Système d'exploitation UNIX
Gestion d'identité/SSO (SunOne)
Serveur/développement d'application (Autour de Java) Dans beaucoup de cas Solaris est présent comme plate
forme UNIX
Aujourd'hui Linux s'impose
Les lègues
Oracle
Offre:
Base de données (SGBD)
Gestion d'identité/SSO (OID, etc.)
Serveur/développement d'application (Forms, htmlBD, APEX, reports)
Etc.
Souvant utilisé: SGBD, OID, Forms
Le SGBD demeure intéressant et bien supporté (Java, PHP, etc.)
Novell
Novell
Offre:
Gestion poste (ZenWorks, GroupWise) Système d'exploitaton (NetWare)
Gestion d'indentité/SSO (Ichains/AM/Edir) OS: Novell à pris un virage avec Suse Linux SSO: iChains devient Access Manager (AM)
edirectory est le méta répertoire d'entreprise et supporte LDAP
Open Source
À votre service
Linux, Apache, MySQL PHP
Et encore Apache: Reverse proxy, mod_security OpenLdap
Central authentification service Typo3
Memcached
Java, Tomcat
file:///Users/pcaron/phpconf/res/mysql.jpg
file:///Users/pcaron/phpconf/res/php.jpg
file:///Users/pcaron/phpconf/res/tomcat.jpg
file:///Users/pcaron/phpconf/res/typo3.jpg
file:///Users/pcaron/phpconf/res/linux.jpg
file:///Users/pcaron/phpconf/res/apache.jpg
file:///Users/pcaron/phpconf/res/casLogo.jpg
file:///Users/pcaron/phpconf/res/java.jpg
Open Source
LAMP
Linux, Apache, MySQL PHP (On ne présente pas ça)
Virtualisation
Zend Core for Oracle Oracle
APC
Memcached
Open Source
Apache +
Reverse proxy: Proxy HTTP placé en frontal de serveurs web
mod_security: Extension Apache qui permet d'analyser les requêtes HTTP, et de détecter certaines attaques potentielles sur les
applications Web qu'Apache peut héberger ou qu'Apache peut protéger en mode reverse proxy
Open Source
OpenLdap
OpenLdap en mode proxy vers eDirectory Permet de limiter l'accès à des branches Permet réécriture d'attributs
Permet de la cache
Évite de synchroniser des annuaires
Open Source
Central authentification service
CAS est un système d'authentification unique Basé sur des requêtes HTTP
Notion d'échange de tickets, un peu à la manière de Kerberos
Nombreuses bibliothèques et cliendt CAS (PHP, Java, Pl/SQL, .NET, module apache, PAM, etc.)
Open Source
Typo3
Web CMS de type portail
Typo3 comme portail de service Portail d'intégration / service web Ldap/SSO
Open Source
Java/Tomcat
Beaucoup et de plus en plus de projet de OpenSource de qualité tourne autour de Java.
Infrastucture
NTier
Publique
Internet, pare jeux principale Présentation
SSL: Passage HTTPS vers HTTP Firewall applicatif
Répartiteur de charge
Réverse proxy/Réécriture HTML Serveur de présentation
Proxy CAS Application
Cas
Proxy LDAP
Serveur d'application (PHP, Typo3, Java, etc.)
Serveur de cache (Pour PHP) Interne
Edirectory
Base de données(Oracle, MySQL) SAN
Conclusion
Principes évolutifs et adaptable selon le contexte
En construisant autour de standards ouverts on obtient une plus grande modularitée du système d'information.
Exemple: En se basant sur le protocole LDAP, il sera possible de remplacer eDirectory sans impact majeur sur l'infrastructure Web.
Exemple: La plupart des solutions de cette présentation, sont
interchangable. Software vers hardware, propriétaire vers libre, etc.
Profiter du monde des Logiciels Libres et de l'OpenSource intelligement À double sens
Adapter à votre situation!
Sujet d'intérêt: BPMS
(Voir le projet OpenSource Intalio)
Conclusion
Pour terminer avec les «SOA»
BPMS (Voir le projet OpenSource Intalio)
Conclusion
«Bâtir autour de standards ouverts, c'est possible?»
«Comprenez ce que l'OpenSource à pour vous.»
«Ne vous laissez pas dicter les règles, autrement les fournisseurs dictes les leurs !»
file:///Users/pcaron/phpconf/res/java.jpg
file:///Users/pcaron/phpconf/res/mysql.jpg file:///Users/pcaron/phpconf/res/php.jpg
file:///Users/pcaron/phpconf/res/tomcat.jpg file:///Users/pcaron/phpconf/res/typo3.jpg
file:///Users/pcaron/phpconf/res/zend.jpg
file:///Users/pcaron/phpconf/res/linux.jpg
file:///Users/pcaron/phpconf/res/apache.jpg file:///Users/pcaron/phpconf/res/casLogo.jpg
Questions
???
http://www.patricecaron.com
pcaron@patricecaron.com
Webographie
WIKIPEDIA
http://fr.wikipedia.org/wiki/Architecture_orient%C3%A9e_services http://fr.wikipedia.org/wiki/XML
MSG: Cadre commun d'interopérabilité
http://www.msg.gouv.qc.ca/fr/administration/standards/cadre.asp
L'Architecture d'Entreprise concrétise les promesses technologiques de SOA http://tinyurl.com/alrxgo
Bien choisir son Firewall Applicatif Web (WAF)
http://fr.securityvibes.com/choisirfirewallapplicatifwebarticle942.html