2008-12-05 23 views
8

Myślę, że logika biznesowa powinna istnieć w modelu przy użyciu wzorca projektowego MVC lub MVP, ale powinna być ukryta za usługą w architekturze zorientowanej na usługi.Czy MVC (lub MVP) może współistnieć z architekturą SOA?

Czy system oprogramowania może wykorzystywać wzorzec projektowania MVC lub MVP w architekturze zorientowanej na usługi? Jeśli tak, to gdzie model się znajduje?

Odpowiedz

11

Cóż, są to zupełnie różne zwierzęta. MVC polega na prezentacji danych, sterowaniu nawigacją w oknie dialogowym użytkownika i pewnej logice biznesowej w budowaniu modelu danych.

SOA dotyczy pobierania danych od usługodawcy.

Po stronie klienta można użyć architektury SOA w części Model wzorca MVC, aby zbudować model z danymi z usługi SOA.

Po stronie usługi, ponieważ nie ma prezentacji i okna dialogowego użytkownika, większość wzoru MVC staje się zbędna. Co więcej, dobry projekt SOA powinien koncentrować się na dostarczaniu użytecznej usługi niezależnie od baz danych, więc część "modelowa" staje się w dużej mierze przypadkowa.

Prawdą jest, że wiele usług ma charakter "stanowy" (np. Zamówienia są zatwierdzane, opłacane, wysyłane, a następnie odbierane), ale stany te stanowią integralną część logiki biznesowej i nie nadają się do typowego zarządzania sesjami wzoru MVC.

3

Dobre pytanie. Myślę, że MVC i SOA będą i muszą współistnieć. MVC jest najbardziej udaną architekturą dla komunikacji użytkownika z systemem. SOA to architektura efektywnej komunikacji system-system. W większości organizacji jest miejsce dla obu. Dlatego uważam, że będą współistnieć.

Jeśli chodzi o sposób wzajemnej interakcji, moja osobista opinia jest taka - MVC pozostanie (po zniknięciu hasła SOA) jako główny wzór architektoniczny, w którym zarówno model, jak i kontroler odsłaniają interfejsy serwisowe tam, gdzie to właściwe.