IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres Discussion :

Conception trois tiers (3-tier)


Sujet :

Autres

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut Conception trois tiers (3-tier)
    Bonjour,

    je voudrais apprendre à concevoir correctement des application en trois tiers et donc s'il existait des tutoriels dur le net j'ai cherché un peu mais pas trouvé quelque chose de très concluant.

    J'aurais voulu savoir aussi les avantages et inconvénients du 3-tiers par rapport au modèle vue-contrôleur. Je précise que je fais mes petites recherches sur le net de mon côté mais c'était pour ouvrir une discussion.

  2. #2
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Quelques éléments de réponses :
    http://dico.developpez.com/html/3020...Controller.php
    http://plasserre.developpez.com/v5-10.htm

    Apparement le 3-tier et l'architecture MVC sont un même et unique concept
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  3. #3
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Metafire18 Voir le message
    Apparement le 3-tier et l'architecture MVC sont un même et unique concept
    Disons plutôt que ce sont des notions différentes, mais qui s'accommodent bien l'une de l'autre.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Membre habitué Avatar de rakakabe
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    124
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 124
    Points : 174
    Points
    174
    Par défaut
    Correction apres

    Citation Envoyé par Metafire18 Voir le message
    Apparement le 3-tier et l'architecture MVC sont un même et unique concept
    . Je suis pas si sur !

    3-tier et MVC font partie de la famille architecturale en 3 couches.
    La principale difference entre 3-tier et MVC, a mon avis est leur domaine d'intervention :

    - 3-tier : se veut etre generaliste et repartie, mais s'interprete differement selon la situation. Exemple :
    1. Client Leger, Serveur d'Applications, Serveur de Donnees;
    2. Couche presentation, couche processur metier, couche support de donnees;
    3. Couche modele, couche vue, couche controleur -> MVC ????.

    - et MVC se destine surtout pour les applications interactives (donc generalement les IHM). On le trouve souvent dans les bibliotheques graphiques : Qt, Swing, MFC (a verifier bien sur ). D'ailleurs, son origine a ete le pattern Observer.

  5. #5
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Je sort cette info du dico des développeurs :

    Définition de MVC
    Model-View-Controller
    Modèle d'architecture qui cherche à séparer nettement les couches de présentation (UI : User Interface), métier (BLL : Business Logic Layer) et d'accès aux données (DAL : Data Access Layer). Le but étant d'avoir une dépendance minimale entre les différentes couches de l'application ; ainsi les modifications effectuées sur n'importe quelle couche de l’application n'affectent pas les autres couches.
    • Modèle – Encapsule le cœur fonctionnel de l'application, le domaine logique.
    • Vue – les données sont envoyées, par le modèle, à la vue qui les présente à l’utilisateur.
    • Contrôleur – reçoit les données et les transmets au modèle ou à la vue.
    Une telle architecture est communément appelée architecture 3-tier ou à 3 niveaux.
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  6. #6
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Metafire18 Voir le message
    Je sort cette info du dico des développeurs :
    Le dico des développeurs n'est pas l'autorité suprême qui fais la pluie et le beau temps en informatique.

    Le n-tier (et a-fortiori le 3-tiers) fait partie d'un style architectural général de référence appelé layered architecture, ou architectures en couches en bon français. Comme tout style architectural, elle prescrit des règles. En l'occurrence, il est stipulé qu'une couche ne peut communiquer qu'avec ses couches adjacentes. Après, libre à chacun de choisir le nombre de couche et les responsabilités de chacune des couches. A titre d'exemple, dans le cadre des SI, on parle souvent de 3 couches, ayant respectivement pour responsabilité la présentation, le métier, et les données. Dans le cadre des réseaux par exemple, il y a le modèle OSI constitué de 7 couches, ayant les responsabilité que l'on connaît. Etc.

    Le MVC est un pattern architectural certes, mais ne respecte pas le style layered architecture. La preuve, c'est que la vue communique directement avec le modèle, sans passer par le contrôleur :
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  7. #7
    Rédacteur/Modérateur
    Avatar de Metafire18
    Homme Profil pro
    Ingénieur de recherche Orange Labs
    Inscrit en
    Décembre 2007
    Messages
    777
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur de recherche Orange Labs

    Informations forums :
    Inscription : Décembre 2007
    Messages : 777
    Points : 1 894
    Points
    1 894
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Le dico des développeurs n'est pas l'autorité suprême qui fais la pluie et le beau temps en informatique.
    HS: Quelle désillusion!
    Pas de grandeur pour qui veut grandir. Pas de modèle pour qui cherche ce qu'il n'a jamais vu.

  8. #8
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bon, pour commencer il y a confusion ici entre architecture n-tier et n-layers.

    Uen n-tier est toujours n-layer, mais rien n'impose à une n-layer d'être n-tier.

    n-tier : architecture "répartie"
    n-layer : architecture en couches (pour moi la seule envisageable dans tous les cas de figures d'application complète).

    Une architecture n-layers dont on répartie physiquement les couches devient une n-tiers.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  9. #9
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Une architecture n-layers dont on répartie physiquement les couches devient une n-tiers.
    Oui, c'est exact. Tu fais bien de préciser cette distinction.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  10. #10
    Membre habitué Avatar de rakakabe
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    124
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2007
    Messages : 124
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par Hephaistos007 Voir le message
    Le MVC est un pattern architectural certes, mais ne respecte pas le style layered architecture. La preuve, c'est que la vue communique directement avec le modèle sans passer par le contrôleur
    +1000

    , j'ai oublie le principe des couches, et confondu n-couches et n-tiers .

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut un peu de contexte.
    MVC permet de répartir les responsabilités de différents modules applicatifs.

    n-Tiers permets de répartir/distribuer les traitements (déploiement) sur plusieurs systèmes.

    Une application des clients lourds qui accèdent à une base de donnée derrière un serveur peut être "MVC" mais ne pourra être déployée que sur 2-tiers.
    (en supposant que les clients ont un accès direct à la base).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Au temps pour moi je parlais de l'architecture en 3 couches alors (même si on m'a toujours appris que ça s'appelait 3-tiers) avec les couches présentation, métier et données.

  13. #13
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Gaetch Voir le message
    Au temps pour moi je parlais de l'architecture en 3 couches alors (même si on m'a toujours appris que ça s'appelait 3-tiers) avec les couches présentation, métier et données.

    C'est une erreur (génante) qu'on lit fréquemment (y inclut sur Wikipedia si on cherche l'article sur les 3-tier il me semble).

    Donc en résumé une apppli peut :

    - être n-layer (je dirais même "doit")
    - si n-layer, être m-tier (dans ce cas m <= n ).

    Exemples concrets :

    - 1-tier / 3-layer :
    Application client lourd stand-alone avec base de données locale,mais bien écrite, comprendra :
    - Presentation Layer
    - Business Layer
    - Data Access Layer

    - 2-Tier/3-Layer :
    Application client lourd classique client-serveur bien écrite :
    les même 3 couches que précédemment , mais DB sur un serveur séparé.

    - 3-Tier/3Layer :
    Cas général des appli web si pas écrites "avec les pieds" (style SQL dans code behind).

    Cas des grosses appli client lourd (ou client léger) avec une couche server d'application intérmédiaire.

    Exemple :
    -client lourd + serveur appli + serveur DB (3-tier)

    Plus des variantes (pas exemple le cas des appli à client mixte (web + lourd) qui peuvent se présenter comme suit :
    -client léger -> serveur web -> serveur appli > serveur DB
    -client lourd -> serveur appli (le même) -> serveur DB .

    Dans le cas des grosses appli, le 5-6-7 tier, ou plus si affinité , n'est pas rare.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  14. #14
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Merci beaucoup pour ces explications BlueDeep

    De toute façon, si elle est bien pensée et programmée, une application n-layers peut être convertie de 1-tier à n-tiers facilement je suppose ?

  15. #15
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Gaetch Voir le message
    Merci beaucoup pour ces explications BlueDeep

    De toute façon, si elle est bien pensée et programmée, une application n-layers peut être convertie de 1-tier à n-tiers facilement je suppose ?
    Absolument.

    - dans le cas du passage de 1-Tier à 2-Tier, c'est normalement immédiat (sous réserve des questions d'authentification).

    - le cas du passage 2-tier -> 3-tier est un peu plus délicat, car il faut rajouter une couche de communication (facile en .Net, je suppose facile aussi en technos "java"). Dans ce cas typiquement, on centralise les traitements métiers (il peut y avoir plusieurs raisons pour le faire : un des cas typiques est la centralisation de traitement métier lourd, un autre est de pouvoir provoquer un feedback vers tous les clients connectés d'une modif induite par l'un deux).
    Les contraintes d'authentification peuvent parfois venir compliquer un peu les choses (si il y a nécessité d'authentifier de "bout en bout").

    - le cas du passage 3-tier -> 4tier (et plus) est similaire au cas 2-tier-> 3-tier. On l'utilise par exemple lorsque les traitements métiers d'une appli web sont lourd et dans ce cas on laisse un "frontal web" qui fait pas grand chose (générer les pages et la présentation des données) et derrière un serveur d'appli qui se charge du "vrai boulot".

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  16. #16
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Et donc pour en revenir à ma question initiale, connais-tu un bon tutoriel ou un cours pour apprendre à bien développer une application en 3-layers ? A bien séparer les différentes couches, à bien définir qui doit faire quoi. Par exemple je voudrais développer des programmes qui seront liés à une base de données mais cette base pourra changer (on pourra passer d'une base Oracle à une base MySQL par exemple) ou encore l'aspect graphique du programme pourra être modifié sans que ça change les traitements. C'est bien le but de l'architecture en couche n'est-ce pas ?

  17. #17
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Pour ma part, un document que je considère un peu comme une bible sur la question, c'est celui ci : http://cid-410e76c6390c7090.skydrive...chGuide2.0.pdf

    Même si il est très "microsoft" les principes sont parfaitement applicables quelque soit la techno utilisée.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  18. #18
    Membre habitué
    Inscrit en
    Juillet 2007
    Messages
    433
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 433
    Points : 130
    Points
    130
    Par défaut
    Ca m'a l'air très complet merci beaucoup je vais me pencher dessus !

  19. #19
    Membre habitué

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 156
    Points
    156
    Par défaut
    Bonsoir,

    Le lien proposé par BlueDeep est mort.
    Existe-t-il d'autres liens ou des ouvrages illustrant ses propos ?

    Merci.

  20. #20
    Membre habitué Avatar de tonton16
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 90
    Points : 185
    Points
    185
    Par défaut
    Bonjour,

    Citation Envoyé par Kwadz Voir le message
    Bonsoir,

    Le lien proposé par BlueDeep est mort.
    Existe-t-il d'autres liens ou des ouvrages illustrant ses propos ?

    Merci.
    Avec un peu de google :
    http://www.microsoft.com/download/en...ng=en&id=16236
    Si vous pensez que ma réponse est utile pour vous et pour les autres utilisateurs du forum, pensez à voter.

Discussions similaires

  1. client serveur 2 tiers 3 tiers
    Par DLOYAS dans le forum ALM
    Réponses: 1
    Dernier message: 21/05/2015, 18h34
  2. [Vxi3] Déploiement Deski mode 2-tiers / 3-tiers
    Par rouardg dans le forum Deski
    Réponses: 1
    Dernier message: 26/07/2013, 11h10
  3. [Architecture n-tier] Conception DAL & BLL
    Par lapanne dans le forum C#
    Réponses: 5
    Dernier message: 10/07/2007, 16h12
  4. [Conception] Architecture 3-tiers et DAO
    Par speedster dans le forum Général Java
    Réponses: 5
    Dernier message: 27/03/2007, 12h29
  5. [N-Tier] Problème conception architecture 3-tiers
    Par Royd938 dans le forum Autres
    Réponses: 3
    Dernier message: 17/06/2005, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo