Может ли MVC (или MVP) сосуществовать с SOA? - PullRequest
8 голосов
/ 05 декабря 2008

Я думаю, что бизнес-логика должна существовать в модели при использовании шаблона проектирования MVC или MVP, но должна быть скрыта за сервисом в сервис-ориентированной архитектуре.

Может ли программная система использовать шаблон проектирования MVC или MVP в рамках сервис-ориентированной архитектуры? Если да, где находится модель?

Ответы [ 2 ]

12 голосов
/ 05 декабря 2008

Ну, это совершенно разные животные. MVC - это все о представлении данных, управлении навигацией в пользовательском диалоге и некоторой бизнес-логике при построении модели данных.

SOA - это получение данных от поставщика услуг.

На стороне клиента вы можете использовать SOA в пределах части модели шаблона MVC для построения вашей модели с данными из службы SOA.

На стороне службы, поскольку нет представления и пользовательского диалога, большая часть шаблона MVC становится избыточной. Кроме того, хороший дизайн SOA должен быть сосредоточен на предоставлении полезного сервиса независимо от базового хранилища данных, поэтому «модель» становится в значительной степени случайной.

Это правда, что многие услуги являются «с состоянием» (например, заказы проверяются, оплачиваются, отправляются, а затем принимаются), но эти состояния являются неотъемлемой частью бизнес-логики и не поддаются управлению сессиями, типичному образец MVC.

3 голосов
/ 17 ноября 2009

Хороший вопрос. Я думаю, что MVC и SOA будут и должны сосуществовать. MVC - самая успешная архитектура для взаимодействия пользователя с системой. SOA - это архитектура для эффективного взаимодействия системы с системой. В большинстве организаций есть место для обоих. Поэтому я верю, что они будут сосуществовать.

С точки зрения того, как они взаимодействуют друг с другом, мое личное мнение таково - MVC останется (как только исчезнет SOA) в качестве основного архитектурного паттерна, где модель и контроллер будут предоставлять сервисные интерфейсы, где это уместно.

...