2008-12-05 7 views
8

Je pense que la logique métier doit exister dans un modèle lors de l'utilisation d'un modèle de conception MVC ou MVP, mais doit être masquée derrière un service dans une architecture orientée services.Peut MVC (ou MVP) coexister avec SOA?

Un système logiciel peut-il utiliser le modèle de conception MVC ou MVP dans une architecture orientée services? Si oui, où se trouve le modèle?

Répondre

11

Eh bien, ils sont des animaux totalement différents. MVC est tout sur la présentation des données, en contrôlant la navigation de la boîte de dialogue de l'utilisateur et de la logique métier dans la construction du modèle de données.

SOA consiste à récupérer des données auprès d'un fournisseur de services. Du côté client, vous pouvez utiliser SOA dans la partie Model du modèle MVC pour créer votre modèle avec les données d'un service SOA. Du côté du service, comme il n'y a pas de présentation et pas de dialogue utilisateur, la plupart du modèle MVC devient redondant. De plus, une bonne conception SOA devrait se concentrer sur la fourniture d'un service utile quel que soit le magasin de données sous-jacent, de sorte que la partie «modèle» devient en grande partie accessoire. Il est vrai que de nombreux services sont "stateful" (par exemple, les commandes sont validées, payées, expédiées puis reçues), mais ces états font partie intégrante de la logique métier et ne se prêtent pas à la gestion de session typique du motif MVC.

3

Bonne question. Je pense que MVC et SOA vont et doivent coexister. MVC est l'architecture la plus efficace pour la communication entre l'utilisateur et le système. SOA est une architecture pour une communication système-système efficace. Dans la plupart des organisations, il y a une place pour les deux. Par conséquent, je crois qu'ils vont coexister. En ce qui concerne la façon dont ils interagissent entre eux, mon opinion personnelle est la suivante: MVC restera (une fois que le battage SOA est parti) comme le modèle architectural principal avec le modèle et le contrôleur exposant les interfaces de service, le cas échéant.

Questions connexes