Michaël Mrissa - michael.mrissa@iut.univ-lyon1.fr. Architectures n-tierintroduction



Documents pareils
Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Java pour le Web. Cours Java - F. Michel

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Auto-évaluation Aperçu de l architecture Java EE

Module BD et sites WEB

10. Base de données et Web. OlivierCuré

Ré-architecture et migration d une application standalone vers un serveur applicatif multi-tiers dans un contexte JAVA-SAP

Application Web et J2EE

Catalogue des Formations Techniques

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Patrons de Conception (Design Patterns)

Nouvelles Plateformes Technologiques

Développement des Systèmes d Information

Notre processus d embauche

Introduction à la plateforme J2EE

CQP Développeur Nouvelles Technologies (DNT)

Hébergement de sites Web

Mise en œuvre des serveurs d application

Le passage à l échelle de serveur J2EE : le cas des EJB

les techniques d'extraction, les formulaires et intégration dans un site WEB

Expert technique J2EE

Environnements de Développement

Introduction à la conception de systèmes d information

Cours en ligne Développement Java pour le web

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Architectures web/bases de données

Modernisation et développement d applications IBM i Stratégies, technologies et outils

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

AngularJS pour une application d'entreprise

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Programmation Web. Madalina Croitoru IUT Montpellier

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Point sur les solutions de développement d apps pour les périphériques mobiles

JOnAS 5. Serveur d application d

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Windows (2000/NT), Solaris, AIX, HP-UX, Linux Haute disponibilité : SunCluster 3, Veritas Cluster Server 4. J2EE (JSP, Servlet, EJB, JTA), Open Source

Vulnérabilités et sécurisation des applications Web

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Cursus détaillé du MBDS

Comparaison des architectures J2EE et.net

Vulgarisation Java EE Java EE, c est quoi?

Oracle Maximum Availability Architecture

INGÉNIEUR LOGICIEL JAVAEE / GROOVY 8 ANS D EXPÉRIENCE

Formation en Logiciels Libres. Fiche d inscription

Urbanisation des systèmes d information

Hébergement de site web Damien Nouvel

Evaluation Idéopass Cahier d analyse technique

Architectures n-tiers Intergiciels à objets et services web

Compte Rendu d intégration d application

Systèmes répartis. Fabrice Rossi Université Paris-IX Dauphine. Systèmes répartis p.1/49

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

NSY102. Conception de logiciels Intranet Introduction

Les grandes facettes du développement Web Nicolas Thouvenin - Stéphane Gully

DEMARREZ RAPIDEMENT VOTRE EVALUATION

Programme ASI Développeur

Ingénieur Développement Nouvelles Technologies

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Assurances & Mutuelles, Industrie, Santé, Énergie, Transport, Médias / Multimédias, Télécoms, Services

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Plan. Department of Informatics

J2EE - Introduction. Développement web - Java. Plan du chapitre

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

5. Architecture et sécurité des systèmes informatiques 5.1 Architecture technique.

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Urbanisation des Systèmes d'information

Logiciels Open Sources et le Secteur Privé

Les nouvelles architectures des SI : Etat de l Art

Architectures d'intégration de données

Description de la formation

DotNet. Plan. Les outils de développement

La clé de votre réussite, notre engagement!

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Programmation Web. Introduction

30 ans d ingénierie, 23 ans de conseil en architecture de SI

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Notre Catalogue des Formations IT / 2015

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Introduction aux applications réparties

Cadrage fonctionnel et technique des sites Visa Premier et Infinite. Réalisation des déploiements pour l hébergeur.

R E S O T E L. Ingénierie des Systèmes Informatiques Réseaux et Télécommunications. Calendrier des Formations IT

Présentation J2EE. Stéphane Croisier, Directeur Serge Huber, Directeur Technique. 13 Juin Jahia Ltd. All rights reserved.

1.2 - Définition Web 2.0 ( wikipedia )

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

CAS, la théorie. R. Ferrere, S. Layrisse

Les architectures 3-tiers Partie I : les applications WEB

Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS

Transcription:

Architectures n-tier Introduction

Architecture: Définition Définition...la structure des composants d un programme/système, leurs interrelations et les principes et lignes directrices gouvernant leur conception et leur évolution au fil du temps. [Garlan,1995] Synthétise un système complexe Plusieurs composants, règles de communication, contraintes globales, niveaux de complexité Lien entre le modèle abstrait et la mise en œuvre Facilite l évolution et l ajout de composants

Architectures distribuées Applications réparties sur le réseau Fonctionnalités réparties sur le réseau Point de vue physique: client(s)/serveur(s)? Plusieurs niveaux Découpage physique (tiers) 2, 3 tiers + réplication ou serveurs dédiés Découpage logique (tier) N tier, pas forcément lié à la répartition physique Un support: le Web Évolution du Web Pages Web statiques (HTML, CSS,... ) Web dynamique, scripts (ASP, PHP, Javascript,... ) Web orienté Services (Javabeans, services Web,... )

Évolution des architectures - Niveau Physique 2 tiers: client/serveur Très classique, le même composant serveur fait tout Côté client pauvre, maintenance + évolution difficile 3 tiers: client/application/ressource Client: présentation, interactions utilisateur Application: traitement des données (validation requêtes, traitement des processus métiers, etc...) Ressource: stockage et accès aux données (SGBD) Déploiement lié à la charge (réplication), à la sécurité (serveur dédié, pare-feu), etc...

Évolution des architectures - Niveau logique Côté client Navigateur Web avec plugins (applets (JVM), javascript, flash) Client service Web ou client adhoc Côté serveur: plusieurs composants Liés aux différents processus métiers Présentation Traitement (mise à jour, gestion sécurité & co) Accès aux données Si plusieurs sources de données, peut en soi former une architecture distribuée reposant sur le Web Client lourd/léger (avantages inconvénients?) Déploiement des composants côté serveur? côté client? modèle de Gartner

Architecture n-tier Exemple Java Figure: Architecture Web J2EE Source : http://java.sun.com/blueprints/guidelines

Challenges des architectures n-tier Performance temps de réponse moyen Fiabilité, disponibilité résistance à la charge, maintien de la qualité de service Facilité d utilisation, interopérabilité compatibilité applications extérieures Sécurité authentification, intégrité, confidentialité, non-répudiation Évolutivité facilité de maintenance, d ajout de fonctionnalités

Côté serveur - Tier Présentation Gestion des requêtes Interception, validation et transformation des données Redirection vers les autres composants Envoi de message, génération code HTML et messages HTTP Gestion des sessions utilisateur Adaptation à différents clients Technologies utilisées Anciennement CGI, FastCGI PHP, ASP, JSP (Java Server Pages), Python, Perl, Ruby,... Java servlets, même javascript (côté serveur) Java fournit de nombreuses APIs Plateformes J2EE,.NET, etc...

Côté serveur - Tier application Fonctionnalités à fournir Gestion des composants, tolérance aux fautes, disponibilité, balance de charge Fonctions d administration, transactions, sécurité Plusieurs types de serveurs Serveurs Web Information Pas de transactions, sans états, accès au tiers ressource Exemples: ASP, PHP, Python, CGI Serveurs à base de composants Transactions gérées, sans états, accès au tiers ressource Présents dans les serveurs d application Serveurs d applications Environnements complets de développement Gère les transactions, avec états, accès données Supporte la business logic à l aide de composants.net Entreprise servers, J2EE (Websphere, Weblogic, Jboss...)

Côté serveur Tier ressource Accès aux ressources Plusieurs types de ressources hétérogènes Bases de données JDO, SQL/J, JDBC, ADO.NET Legacy systems (systèmes propriétaires) J2EE connector, protocoles propriétaires ERP (Entreprise Resource Planning) J2EE connector, protocoles propriétaires EAI (Entreprise Application Integration) J2EE connector, protocoles propriétaires Services Web Java JAX/RPC, WSDL4J, juddi

Challenges technologiques Communications entre composants distribués & hétérogènes Notion de middleware (intergiciel) La glue entre les différents composants Répartition logique/physique (et C/S) Compréhension des nouvelles technologies Coût (financier, temps) Installation du serveur d application Modélisation des objets et processus métiers Écriture et maintenance d un code évolutif et réutilisable Maintenance du serveur d application

Design Patterns & Frameworks Motivation/Avantages Gain en temps, modularité, extensibilité, performance... Ecriture des programmes + simple & réutilisation des fonctionnalités transversales (transaction, sécurité, session, etc...) Un but commun: promouvoir la réutilisation Définition: Design Patterns Méthodes de résolution abstraite des problèmes Définition: Frameworks Squelettes architecturaux de développement des composants

Design patterns Objectif Résoudre des problèmes de programmation bien connus Les clés de la réussite sont dans les démarches de résolution de problèmes Méthode de résolution de problème Comme pour les échecs Apprendre les règles Apprendre les principes/méthodes Apprendre les coups spéciaux (patterns) Design pattern = transmission générique des démarches de résolution Ensuite, adaptation aux domaines d applications Il existe des centaines de patterns Différents types: architectural, analysis,creational, structural, behavioral patterns Observer, factory, prototype, singleton, etc... Design Patterns: Elements of Reusable Object-Oriented Software [GoF]

Patterns dans J2EE Tier présentation Intercepting filter, front controller, view helper, composite view, service to worker, dispatcher view Tier applicatif Business delegate, value object, session facade, composite entity, value object assembler, value liste handler, service locator Tier ressource Data access object, service activator

Frameworks Applications semi-complètes (squelettes) Proposent des composants pré-paramétrés Proposent une organisation du code Instanciés lors du développement Peuvent suivre des design patterns particuliers (MVC) Fonctionnalités spécifiques Support de différents OS, middleware, accès aux données, etc Proposent l inversion de contrôle (IoC) @runtime IoC: attente passive de la réalisation d un évènement pour appeler le code Prise en charge de certains aspects par le framework Quelque difficultés liées à l IoC...(contrôle des suites d actions) Implémentation pour tous les langages/plateformes

à suivre... Aspects développement Modèle de développement: design pattern MVC Frameworks de développement Favorise la séparation des préoccupations MVC: modèle/vue/contrôlleur Design patterns (best practices) IoC: inversion of control DI: dependency injection Notion de middleware EJB, J2EE,.NET, Web services, CORBA, RMI, etc