architecure web

Page 1

Architecture des systèmes d'information modernes Khaled BEN DRISS Senior 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 des serveurs d'applications 3) acquérir les éléments de comparaison des SA selon les besoins


Introduction La

distribution et l’accès à l ’information dans une entreprise sont des facteurs fondamentaux de succès. L’information est par nature distribuée, évolutive et variée => Nouvelles architectures informatiques.

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Technologie

RĂŠseaux globaux

Ordinateur personnel

1990

Terminal

1980 Mainframe

1970

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Activités Travail coopératif

Informatique personnelle

1990 Transactionnel

1980

Batchs

1970

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Services offerts Informations à la place de travail

1990

Industrialisation

1980 Gestion intégrée

1970 Automatisation des processus administratifs khaled.bendriss@gmail.com

Architecture des systèmes d'information


Enjeux 1990 Vivant Objectif

1980

Mécanique Cahier des charges

Réactif

Prévisible

1970

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Besoin d’automatisation 1990

1980

1970

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Ressources humaines 1990

1980

1970

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les clefs du succès Intégration Présentation Personnalisation Intelligence Rapidité Déploiement Performance Sécurité Supervision Administration

56% 25% 50% 60% 79% 70%

Source IDC “eCommerce Survey” khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les Technologies eBusiness Présentation Passerelle WAP SSL/VPN Proxy/Firewall

Serveur(s) de présentation Portails spécialisés

Annuaire

Authentification Validation

LDAP

Serveur(s) d’applications Applications B2E, B2B, B2C, C2C, ASP

Services à valeur ajoutée

Connecteurs stansdards/spécifiques

Nommage/Sessions transactions/Charge Composants Logique d’Accès Données/Process Locales/Distantes

E.A.I Collaboratif

Middleware Synchrone Messages

OS390 – UNIX – NT Patrimoine métier

Spécifique Packages Services

khaled.bendriss@gmail.com

Logique Métier Bibliothèques Packages B2B

E.A.I Collaboratif

Architecture des systèmes d'information


Les Technologies eBusiness Présentation Passerelle WAP

Opérations Réseaux Systèmes Applications Bases de données Serveurs WEB Médias

SSL/VPN Proxy/Firewall

Serveur(s) de présentation Portails spécialisés

Authentification Validation

Performance

Serveur(s) d’applications Applications B2E, B2B, B2C, C2C, ASP

Services à valeur ajoutée

Connecteurs stansdards/spécifiques

Nommage/Sessions transactions/Charge Composants Logique d’Accès Données/Process Locales/Distantes

E.A.I Collaboratif

Middleware Synchrone Messages

OS390 – UNIX – NT Patrimoine métier

Spécifique Packages Services

khaled.bendriss@gmail.com

Signature unique (SSO) Centre d’Appel

Vues métier…

Architecture des systèmes d'information


Les Solutions eBusiness Portails spécialisés

Applications Services B2E, B2B, B2C, à Valeur C2C, ASP Ajoutée

Sécuriser Personnaliser Administrer

Plate-Forme eBusiness Applications traditionnelles

khaled.bendriss@gmail.com

Intégrer Applications

Architecture des systèmes d'information


Ré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. 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é. khaled.bendriss@gmail.com

Architecture des systèmes d'information


Réponses aux attentes du marché

Rapidité / Vitesse

Flexibilité

Montée en charge

Disponibilité totale

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Environnement d’aujourd’hui Client/Serveur Réseaux

Mainframe

NetProgress

Internet et Web

khaled.bendriss@gmail.com

NetProgress

Architecture des systèmes d'information


Architectures informatiques Internet Explorer, Netscape

Windows, Mac, Unix, Linux

PC Client

Client Web

Web Plate-forme Serveur

Plate-forme Base de Données

SQL Server, Oracle, Sybase, DB/2, IMS, AS/400, etc.

UNIX

khaled.bendriss@gmail.com

Windows NT Server

IBM AS/400

Site central IBM

Architecture des systèmes d'information


Architectures informatiques Types et contraintes

Serveur Internet

Web Client-Serveur Partage de fichiers

khaled.bendriss@gmail.com

DistribuĂŠe

Architecture des systèmes d'information


Evolution de l'architecture Centralisé kkwkj kkwkj kkwkj kkwkj kkwkj kkwkj kkwkj

Client-serveur deux niveaux

Client-serveur trois niveaux

Interface utilisateur Services d'entreprise

Interface utilisateur

aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww aaaawwwww

Services d'entreprise Services d'entreprise

Interface utilisateur Services d'entreprise Services de données

Services de données

khaled.bendriss@gmail.com

Services de données Architecture des systèmes d'information


Technologie centralisée

Points forts o o

kkwkj aaaawwwww kkwkj aaaawwwww kkwkj aaaawwwww kkwkj aaaawwwww kkwkj aaaawwwww kkwkj aaaawwwww kkwkj aaaawwwww

o

Contrôle et maintenance centralisés Optimisation de l'utilisation de l'unité centrale Méthode simple de développement d'application

Points faibles o o o

Optimise l'unité centrale, mais pas la productivité des clients Pas flexible Pas d'accès aux données pour les clients

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Client/Serveur traditionnel

Architectures à 2 niveaux o

Le serveur possède les données

o

Le client possède le code

o

La logique de l’application n’est pas centralisée

o

Il y a une connexion Base de Données par client

App

App App

App

Architecture appropriée si les clients sont peu nombreux khaled.bendriss@gmail.com

Architecture des systèmes d'information


Client-serveur deux niveaux

Points forts o o

App

Interface utilisateur graphique Intégration avec les applications bureautiques

App App

App

Points faibles o o o

Une grande partie des services d'entreprise du côté client Seuls les services d'entreprise sur le serveur sont réutilisables par les clients Le code des services d'entreprise est lié à une seule base de données

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Architecture à trois niveaux classique

Le Coté Serveur d'application khaled.bendriss@gmail.com

Architecture des systèmes d'information


Architecture à trois niveaux web

Le Coté Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers client

Le CotĂŠ Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers client Un web browser HTTP, HTTPS/HTML, XML UnPDA HTTP, HTTPS/WML, XML Un client lourd (fat client), applets, apps IIOP / RMI, CORBA JRMP / RMI autres… Un Web-service HTTP, HTTPS/ebXML, SOAP(XML)

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers Web

Le CotĂŠ Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le 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 format compris par l’application contient la logique du flot de présentation identifie la session de l’utilisateur supporte plusieurs types de clients

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers Web : architecture

Le CotĂŠ Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le 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 nécessite un conteneur Java JSP (Java Server Pages) Scripting dans des pages HTML compilé en Servlet PHP, Python JavaScript (ServerSide)

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers ressource

Le CotĂŠ Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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 ERP(Enterprise Resource Planning) J2EE Connector, protocoles propriétaires EAI(Enterprise Application Integration) J2EE Connector, protocoles propriétaires

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le tiers Milieu

Le Coté Serveur d'application

Conteneur de composants Doit permettre de réaliser des applications distribuées

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Applications distribuées Objectifs de Conception Maximisez l’application… • • • • •

Autonomie Fiabilité Disponibilité Evolutivité Interopérabilité

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Autonomie Aptitude d’une application à fonctionner comme une entité indépendante •

Les applications autonomes contrôlent totalement leurs ressources critiques Ressources Critiques – ressources exigées par une application pour fonctionner sûrement comme une entité indépendante –

Ex : Connexion bases de données, transactions, connexions “MainFrame”, etc...

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Applications distribuées Objectifs de Conception Maximisez l’application… • • • • •

Autonomie Fiabilité Disponibilité Evolutivité Interopérabilité

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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…

Une application n’est pas utile si ses résultats ne sont pas fiables !

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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) – 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) khaled.bendriss@gmail.com

Architecture des systèmes d'information


Applications distribuées Objectifs de Conception Maximisez l’application… • • • • •

Autonomie Fiabilité Disponibilité Evolutivité Interopérabilité

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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 demandes

99.999 = $$$? khaled.bendriss@gmail.com

Architecture des systèmes d'information


Disponibilité La

disponibilité d’une application dépend de nombreux facteurs – Disponibilité Hardware Disques durs, cartes réseaux, contrôleurs, etc... – Disponibilité logicielle SGBD, Serveurs Web, etc... – Disponibilité réseau

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Applications distribuées Objectifs de Conception Maximisez l’application… • • • • •

Autonomie Fiabilité Disponibilité Evolutivité Interopérabilité

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Evolutivité Evolutivité

– Avec une augmentation de la charge de travail, les performances ne donnent pas de dégradation significative 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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


Evolutivité L’évolutivité

augmente avec l’augmentation du taux de transaction par seconde (en tps) augmente 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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


Réaliser l’Evolutivité

Deux approches complémentaires

Hardware par des serveurs plus puissants

Software par serveurs en clusters

+ khaled.bendriss@gmail.com

+

+…

Architecture des systèmes d'information


Applications distribuées Objectifs de Conception Maximisez l’application… • • • • •

Autonomie Fiabilité Disponibilité Evolutivité Interopérabilité

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Interopérabilité

Interopérabilité – faculté des applications d’utiliser des – applications, – des données – ou des ressources sur d’autres plateformes

L’entreprise est un environnement hétérogènes – Les Applications, les données, les ressources résident sur d’autres plateformes NE seront PAS déplacées sur une plateforme commune Doivent être utilisées là où elles sont !

khaled.bendriss@gmail.com

Architecture des systèmes d'information


D'où on déduit les grandes fonctions du serveur d'applications ?

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


RĂŠpartition de charges

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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. 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. khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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. 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 ) khaled.bendriss@gmail.com

Architecture des systèmes d'information


Qu'est-ce qu'un serveur d'applications ?

Khaled.bendriss@net-progress.net


Le serveur d'applications comme réponse à un besoin

Le Coté Serveur d'application

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Le serveur d'applications comme réponse à un besoin 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, – 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". khaled.bendriss@gmail.com

Architecture des systèmes d'information


fonctionnalités attendues 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

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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


A quoi sert un serveur d'applications ? Architecture web statique

Architecture web dynamique

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Elaboration de pages dynamiques

Serveur d'application de type – Scripting – Objet – Orienté objet

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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 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 des traitements d'interface atouts : modélisation objet, + souplesse dans la répartition et la gestion des traitements. Exemple : EJB khaled.bendriss@gmail.com

Architecture des systèmes d'information


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. Exemple : applications réalisées en JSP et servlets.

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Autres classifications 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 (Cold Fusion, PHP, Perl, …); Et la solution Microsoft (ASP/COM et maintenant .NET avec ASP.Net, C#, etc).

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Un système d'information "web" moderne doit reposer sur une infrastructures de composants distribués

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Du bloc au système

Un mouvement de fond dans le développement des applications

Une clé de la réussite du développement est de concevoir l’application comme une organisation de composants

khaled.bendriss@gmail.com

Architecture des systèmes d'information


De 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 à 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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


Objets : une rupture dans le modèle logiciel – Le modèle logiciel s’émancipe du modèle physique de Von Neuman Traitements

Objet

Traitements Traitements

Objet Traitements

Traitements

Objet

Objet Objet

Données

Objet

– Vers le SOA (Service Oriented Architecture) khaled.bendriss@gmail.com

Architecture des systèmes d'information


Objets : Encapsulation pour maîtriser la complexité Partie publique (interface)

Partie privée

Interfaces

Réalisation

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Une évolution inéluctable

Un gros exécutable

Bibliothèques partagées

Classes Partagées

Code Mobile

SOA khaled.bendriss@gmail.com

Architecture des systèmes d'information


Composants


Un 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

Contrat Externe

– COMPOSANTS – DISTRIBUTION

Serveur de Composants Container

Client

Composant Client

Contrat Interne

Client

Infrastructure/Middleware

Service

khaled.bendriss@gmail.com

Service

Service

Architecture des systèmes d'information


Un 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. – 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 objet khaled.bendriss@gmail.com

objet Architecture des systèmes d'information


Composants DistribuĂŠs


Distribution

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

Un moyen – Un bus logiciel : l’ORB (Object Request Browser)

khaled.bendriss@gmail.com

Architecture des systèmes d'information


ORB : 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 à 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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


Serveurs 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, – 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). khaled.bendriss@gmail.com

Architecture des systèmes d'information


Un modèle d’architecture multi-niveaux

Présentation

khaled.bendriss@gmail.com

Services Métiers

Informations Persistantes

Architecture des systèmes d'information


Le modèle dominant : quatre niveaux fondamentaux Navigateur

Navigateur

Serveur Web

Services Métiers

Informations Persistantes

Navigateur

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Une architecture en 5 couches Présentation Application

Interfaces utilisateur Fédération de services procurant les fonctionnalités attendues

Services

logique métier, manière particulière d’utiliser les objets métier

Domaine

Objets Métier avec leurs propriétés et leur comportement intrinsèque

Persistance

khaled.bendriss@gmail.com

Mécanismes de stockage des informations persistantes (SGBD)

Architecture des systèmes d'information


Vers une Architecture Orientée Services (SOA) Présentation des activités métier

Présentation

Application 1

Application 2

Application 3

Applications par domaine métier (assemblage) Composants Métiers Services Techniques

Bus de Communication

ORB & MOM Connecteurs

SGBD

ERP

khaled.bendriss@gmail.com

Application

Autres ressources d’entreprise

Architecture des systèmes d'information


PrĂŠsentation des technologies J2EE


C’est d’abord une plate-forme Java !

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Trois composantes indissociables

Le langage Java

La machine virtuelle Java

Les APIs java L’intérêt de la plateforme Java repose sur la conjonction de ces trois éléments. Le tout est plus que la somme des parties.

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Java : 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

Gestion Automatique de la mémoire

Typage fort

Dimension dynamique khaled.bendriss@gmail.com

Architecture des systèmes d'information


Java : 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é (interprété/compilé) par la machine virtuelle qui fonctionne sur MV l'infrastructure d'accueil. Il n'y pas d'édition de liens, ce qui renforce la nature dynamique du langage.

khaled.bendriss@gmail.com

Source *.java

Compilateur javac Byte-Code *.class

Interpréteur SE Matériel

Architecture des systèmes d'information


J2EE : 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

WebSphere (IBM), WebLogic (BEA), Sun One (Sun), Oracle 9iAs (Oracle), Jboss, etc. sont autant d’implémentations de la J2EE

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Architecture de la J2EE

khaled.bendriss@gmail.com

Architecture des systèmes d'information


J2EE 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) 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é khaled.bendriss@gmail.com

Architecture des systèmes d'information


J2EE : support des architectures multi-niveaux JDBC

Client HTML

SGBD

HTTP

RMI-IIOP

Serveur Web Client HTML/Java

Application Java

Serveur de Composants

ERP

HTTP

Existant

RMI-IIOP

Web Tier

Client Tier khaled.bendriss@gmail.com

Business Tier

Middle Tier

EIS Tier Architecture des systèmes d'information


Serveurs d'applications de type J2EE

khaled.bendriss@gmail.com

Architecture des systèmes d'information


J2EE vs .Net : un modèle architectural commun

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les 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

Assure le lien entre le monde HTTP et le monde Java

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les 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

Servlet

Container Web J2EE Réponse HTTP

Requête HTTP

Navigateur Web

Serveur Web Réponse HTTP

Pages Statiques

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Model d’accès des servlets Servlet

client

Serveur Web Servlet

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Avantages / 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

– Apprendre java

khaled.bendriss@gmail.com

Architecture des systèmes d'information


JSP : 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) – mets en avant l'approche par composants – permet la mise en œuvre facile des sites dynamiques Equivalents

: ASP, PHP

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les 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 Requête

Client

Servlet

Réponse Page JSP khaled.bendriss@gmail.com

Architecture des systèmes d'information


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. Bien sûr, les requêtes JDBC utilisées doivent être standards pour que l'ensemble reste portable.

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les 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 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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


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 se libérant de la «plomberie» (sécurité, transaction, nommage, persistance, …) Home Interface

Client

EJB Object Interface

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les 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) – 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) khaled.bendriss@gmail.com

Architecture des systèmes d'information


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. JMS permet maintenant de gérer les transactions et est utilisée pour la communication asynchrone entre EJBs.

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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é. 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) khaled.bendriss@gmail.com

Architecture des systèmes d'information


Les Web Services


Un Objectif

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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


Technologies ouvertes Tout Système

Toute information

Tout Matériel

Tout processus

Tout Utilisateur Annuaire Contenu

Page Jaunes (privées/publiques)

Systèmes internes

SGDB – R Partenaires/Clients/Fournisseurs (B2B) Applications Existantes Navigateur

Applications J2EE / .Net

khaled.bendriss@gmail.com

Dispositif mobile

Architecture des systèmes d'information


Web Services : les mécanismes de base Description du Service

Service Registry

Publier

Rechercher

(WSDL + UDDI)

(WSDL + UDDI)

Utiliser Service Requestor Description du Service

khaled.bendriss@gmail.com

(WSDL + SOAP)

Service Provider

Service Description du Service

Architecture des systèmes d'information


Web Services : on en est au début

Nécessitent pour être réellement opérationnels une définition complète des services

Contrat Métier

En cours

WorkFlow du Service

En cours

Publication/Recherche du service

UDDI

Définition de l’interface du service WSDL Implémentation du Service Protocole de communication

khaled.bendriss@gmail.com

WSDL + SOAP + J2EE/.Net SOAP

Architecture des systèmes d'information


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

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. khaled.bendriss@gmail.com

Architecture des systèmes d'information


SOAP : 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

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 khaled.bendriss@gmail.com

Architecture des systèmes d'information


SOAP : principes de base

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Implications sur le dĂŠveloppement des applications modernes


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

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Ne pas raisonner en terme d’application monolithique

Concevoir une application comme une fédération de services procurant les fonctionnalités attendues

Concevoir des services élémentaires et des combinaisons de services élémentaires

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Du métier à l’application informatique Modèle Métier (Processus et Domaines)

Modèle d’Infrastructure Technologique

Modèle Métier de l’Application

Infrastructure Technologique Frameworks Middleware

Architecture Applicative Métier

Operating system Hardware

Architecture Applicative Logique

Architecture Applicative Physique (Application)

khaled.bendriss@gmail.com

Architecture des systèmes d'information


La 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 technique

Exemple dans le cas de la J2EE (avec mise en œuvre des EJB)

Requête Client

2

1 Servlet

5

Logique & contrôle de présentation

Réponse Client

6

3

4

EJB Entity

Entités Métier

EJB Session

Logique & contrôle Métier

EJB Entity

Pages JSP

Présentation

Support de Persistance

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Dé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

Utiliser l’expérience de la communauté informatique internationale

khaled.bendriss@gmail.com

Architecture des systèmes d'information


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

– 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" khaled.bendriss@gmail.com

Architecture des systèmes d'information


QUESTIONS

khaled.bendriss@gmail.com

Architecture des systèmes d'information


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.