Discussion: MVC vs 3-tier

  1. #1
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2010
    Messages : 58
    Points : 83
    Points
    83

    Par défaut MVC vs 3-tier

    Bonjour a tous!

    voilà, ma question pourrait paraitre idiote mais j'ai toujours cru que MVC et 3-tier étaient deux termes qui désignaient la même chose..
    Horreur ce n'est apparemment pas le cas. Mais ca doit être plus compliqué que ca car certaines applications réalisées avec le pattern MVC sont construites sur des architectures 3-tiers!

    Bref je ne comprend plus rien.. Quelqu'un pourrait-il m'expliquer la différence entre MVC et 3-tier?

    J'ai compris le concept 3-tier, 1couche pour la présentation, 1 pour les opérations business et une pour les accès données..

    Merci d'avance pour vos réponses..

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 377
    Points : 1 620
    Points
    1 620

    Par défaut

    J'ai compris le concept 3-tier, 1couche pour la présentation, 1 pour les opérations business et une pour les accès données..
    MVC est un pattern d'architecture pour organiser l'IHM.

    Dans une architecture 3-tiers on peut très bien imaginer l'organisation de la couche de présentation suivant le pattern MVC...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  3. #3
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2004
    Messages : 1 883
    Points : 3 500
    Points
    3 500
    Billets dans le blog
    2

    Par défaut

    Et 3-tiers cela veut dire 3 "couches" physiques

    Un serveur pour la présentation, un serveur pour le code métier, un serveur pour les données (le SGBD)

    MVC ne concerne que la partie présentation

  4. #4
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2010
    Messages : 58
    Points : 83
    Points
    83

    Par défaut

    Citation Envoyé par ego Voir le message
    MVC ne concerne que la partie présentation
    Ok, si je saisi bien, Model-View-Controller est une manière de scinder la couche "Présentation" d'une architecture 3-tiers? genre ASP, WPF ou autres..
    Merci en tout cas des réponses!

  5. #5
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244

    Par défaut

    Citation Envoyé par ego Voir le message
    Et 3-tiers cela veut dire 3 "couches" physiques
    Non, n tier, c'est une architecture logique. Elle s'applique pour les applis, les archis...

    MVC vs 3-tier:

    L'archi 3-tier sépare bien chacune des couches et encadre fortement les interco, alors que le modèle MVC et plus permissif en ce qui concerne la communication inter-couche.
    "Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley
    "Less is more" Ludwig Mies Van Der Rohe

    Risk & Security Mgmt

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2004
    Messages : 1 883
    Points : 3 500
    Points
    3 500
    Billets dans le blog
    2

    Par défaut

    n-tier c'est du physique, pas du logique !

    MVC s'applique à la couche présentation que l'archi soit 1-tier, 2-tier ou 3-tier ou X-tier.

    couche = layer : ça c'est du logique.

    Evidemment que pour faire du 3-tier (physique) on doit au moins découper logiquement en 3 couches/layers

  7. #7
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2010
    Messages : 58
    Points : 83
    Points
    83

    Par défaut

    J'étais plutôt de l'avis d'Anthony.Desvernois et je voyais le 3-tiers comme avant tout une séparation logique de l'architecture du logiciel..
    Mis en place pour éviter toute dépendance soit a la couche interface soit à la source de données (Moteur de base de données ou autre) et éviter à avoir à réécrire l'ensemble du code en cas de changement/adaptation d'un de ces éléments..
    D'autres avis pour trancher?

    De toute façon tout le monde semble d'accord pour dire que le MVC ne porte que sur la partie "présentation"!

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : octobre 2005
    Messages : 1 377
    Points : 1 620
    Points
    1 620

    Par défaut

    pour moi également n-tier est une architecture logique qui peut être répartie sur différentes machines physique...

    Confirmation sur wikipedia...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  9. #9
    Membre chevronné
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : juin 2007
    Messages : 1 489
    Points : 2 244
    Points
    2 244

    Par défaut

    Citation Envoyé par ego Voir le message
    Et 3-tiers cela veut dire 3 "couches" physiques
    Je persiste et signe

    Confirmé partout: sur le net, cours en ligne, bouquins, collègues...

    En aucun cas, 3-tier signifie 3 couches physiques. Il s'agit de 3 couches logiques. Après, tu peux les séparer physiquement (c'est même extrêmement courant pour un service Web), mais ça n'est pas obligatoire du tout. Encore plus lorsqu'il s'agit d'un pattern logiciel

    Le MVC, c'est un pattern relativement similaire au 3-tier, à la différence près qu'il est plus permissif.
    "Voyager, c'est découvrir que tout le monde a tort", Aldous Huxley
    "Less is more" Ludwig Mies Van Der Rohe

    Risk & Security Mgmt

  10. #10
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2004
    Messages : 1 883
    Points : 3 500
    Points
    3 500
    Billets dans le blog
    2

    Par défaut

    ben moi je vais modifier Wikipedia
    Allez voir ce que disent les anglophones

  11. #11
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    10 210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 10 210
    Points : 16 656
    Points
    16 656

    Par défaut

    Salut
    From http://en.wikipedia.org/wiki/Multitier_architecture
    In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a client–server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture. The most widespread use of multi-tier architecture is the three-tier architecture.
    Ceci dit, l'intérêt de ce type d'architecture est de faciliter (en principe) la distribution de la charge des traitements sur "plus" de ressources physiques.
    Et donc le glissement de 3-tiers "logiques" vers 3-tiers physiques alors qu'il s'agit d'une possibilité offerte par la séparation "logique" et non d'une obligation: les n-tiers peuvent très bien s'exécuter sur un même serveur physique, dans les phases de développement, debug, ...

    Concernant MVC vs. 3-tiers, le même article raconte:
    At first glance, the three tiers may seem similar to the model-view-controller (MVC) concept; however, topologically they are different. A fundamental rule in a three tier architecture is the client tier never communicates directly with the data tier; in a three-tier model all communication must pass through the middleware tier. Conceptually the three-tier architecture is linear. However, the MVC architecture is triangular: the view sends updates to the controller, the controller updates the model, and the view gets updated directly from the model.
    Ce qui n'est pas faux.
    Mais MVC est plutôt une distribution des rôles et des responsabilités alors que n-tiers est plutôt orientée gestion de capacités de traitements.
    En forçant un peu, la nuance est qu'on peut rarement déployer M, V et C dans des boîtes/environnements différents.
    Le cas MVC2 est particulier. L'application, en général serveur Web réalisé avec Struts/Spring/Hibernate, s'exécute sur un tiers intermédiaire et à des interfaces avec le navigateur - client léger - et le SGDB via le M.

    Je dirais que les domaines sont différents, même si dans les deux cas, on aboutit à une découpe de la poire en 3.

    De toute façon tout le monde semble d'accord pour dire que le MVC ne porte que sur la partie "présentation"!
    J'apprécie les guillemets autour de présentation.
    Surtout pour ne pas confondre avec le 'P' de MVP.
    Mais "présentation" fait partie du jargon fonctionnel comme "persistence".
    C'est trop dans le vague pour parler de MVC qui est une une architecture (au sens découpage R&R) utilisable pour la réalisation d'IHM "graphiques" par opposition à une IHM "console".
    Les deux étant "présentation".
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Membre régulier Avatar de Orphey
    Profil pro
    Inscrit en
    septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Belgique

    Informations forums :
    Inscription : septembre 2010
    Messages : 58
    Points : 83
    Points
    83

    Par défaut

    Wow!

    Merci wiztricks voilà une réponse claire et qui met quelques cases en place dans mon esprit tortueux et confus..

    Merci beaucoup pour ta réponse et le temps qu'il t'as fallu pour la rédiger!

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : août 2010
    Messages : 4
    Points : 8
    Points
    8

    Par défaut

    +1, merci! C'est un peu plus clair pour moi aussi maintenant

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    avril 2005
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2005
    Messages : 176
    Points : 124
    Points
    124

    Par défaut

    Est-ce que vous tous d'accord pour dire que le design pattern MVC est essentiellement fait pour réaliser la partie présentation d'une architecture 3-Tiers?
    Dans ce cas là quelle est la différence entre les services fournis par la couche Modèle de MVC et ceux fournis par la couche Business du 3-Tiers?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Architecturer un projet MVC en N-tiers, avec entity framework
    Par Arnaud13 dans le forum ASP.NET MVC
    Réponses: 6
    Dernier message: 10/11/2013, 20h56
  2. la différence entre MVC et 3-tiers
    Par marwazmandar dans le forum ALM
    Réponses: 3
    Dernier message: 07/06/2012, 16h20
  3. [Débutant] difference entre architecture MVC et N tiers?
    Par koloban dans le forum ASP.NET MVC
    Réponses: 3
    Dernier message: 30/05/2012, 23h51
  4. [3-tier] Différence avec le MVC
    Par Fearless13 dans le forum Autres
    Réponses: 1
    Dernier message: 21/09/2010, 21h41
  5. mvc quelle architecture n-tiers ?
    Par shawty dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/03/2007, 08h54

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