Чем отличается N-Tier от архитектуры SOA - PullRequest
10 голосов
/ 15 августа 2010

Согласно моему пониманию относительно архитектуры N-Tier и SOA.

N-Tier

N-уровень означает разделение приложения на слои. Пример Я занимаюсь разработкой приложения на asp.net, и я перенес весь уровень БД в WCF, после чего он называется N-уровнем.

SOA [слабосвязанный]

В соответствии с моим пониманием относительно SOA, его очень общего термина, и того, насколько хорошо мы собираемся объединить нашу архитектуру, тогда она называется SOA. Лучший пример для сервисов SOA - Запасы / прогнозы погоды.

Мой вывод:

Даже если мы разрабатываем приложение с использованием WCF, это не означает его SOA, если он тесно связан с приложениями одного клиента или .net, которые могут понимать только службы.

Можете ли вы помочь мне в понимании SOA VS N-Tier.

Ответы [ 5 ]

33 голосов
/ 16 августа 2010

эти два нельзя сравнивать, потому что каждый из них описывает разные вещи.Также имейте в виду, что уровень не совпадает с уровнем.

уровень - граница процесса.Когда вы создаете трехуровневое приложение, вы знаете, что пользовательский интерфейс, BL и DB будут находиться в трех разных процессах, которые могут быть на трех разных машинах.

Уровень - логическая граница.Один уровень может содержать несколько слоев.Это просто способ, с помощью которого вы строите свое приложение, следуя принципам OO.

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

Чтобы показать простую разницу между N-Tier и SOA, давайте предположим, что вы строите сервисный уровень поверх бизнес-логики, которая использует некоторую базу данных.Похоже, вы создаете приложение N-Tier SOA, не так ли?К сожалению, не все приложения, предоставляющие услуги, следуют этим принципам.Вероятно, наиболее важными в этом случае являются «Явная граница обслуживания» и «Услуги являются автономными».Если ваши сервисы совместно используют некоторые функции бизнес-логики или данные в базе данных, они не имеют явной границы и не являются автономными => приложение не спроектировано как SOA.

Существует также разница между малым SOA и большим SOA,Упомянутое приложение - это небольшая SOA - каждый сервис должен следовать принципам.Большая SOA предназначена для корпоративной интеграции, где вы считаете приложение со всеми его сервисами как единое целое, которое должно следовать принципам.

С уважением, Ладислав

2 голосов
/ 19 августа 2010

Ладислав спор на деньги, и вы правы, полагая, что, используя только WCF, вы не гарантируете создание SOA.

Вот несколько практических примеров создания SOA с использованием WCF.

Я бы предложил вам прочитать статьи Thomas Erl и Roger Sessions, это даст вам твердое представление о том, что такое SOA.

Шаблон проектирования SOA

Достижение целостности в SOA

Почему ваш SOA должен быть похож на VW Beetle

SOA для вашего босса

0 голосов
/ 20 октября 2014

@ ladislav: согласно вашему ответу, целесообразно ли внедрять веб-сервисы в бизнес-логику. Разве мою архитектуру в этом случае можно назвать SOA, N-ярусом или комбинацией между ними?

0 голосов
/ 16 августа 2010

Подумайте об этом следующим образом: сервис SOA - это то, что может вызвать уровень доступа к данным в вашем приложении N-уровня, но это также то, что может вызвать уровень доступа к данным в моем приложении N-уровня. Однако я, вероятно, не буду использовать ваш уровень доступа к данным в моем приложении.

Например:

Ваш уровень доступа к данным для работы с расписаниями сотрудников будет адаптирован к вашему приложению, связанному с расписаниями.

Мой уровень доступа к данным для работы с проверками качества работы сотрудников будет адаптирован для функциональности выполнения проверок качества работы сотрудников.

Тем не менее, оба наших приложения, а также любые другие приложения, связанные с сотрудниками, могли бы извлечь выгоду из службы SOA, которая работает с основными данными сотрудников, такими как идентификатор сотрудника, имя, номер ячейки и т.

0 голосов
/ 15 августа 2010

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

...