Каково различие между архитектурой SOA и N-Tier

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

N-Tier

N-Tier означает делить приложение на слои, Пример, я разрабатываю приложение в asp.net и я продвинул общий Слой DB к WCF затем, это называют N-tier. [Сильно связанный]

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

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

Мое заключение:

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

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

12
задан Kris van der Mast 15 August 2010 в 18:56
поделиться

4 ответа

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

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

Слой - логическая граница. Один уровень может содержать несколько слоев. Это просто способ построения вашего приложения в соответствии с принципами объектно-ориентированного проектирования.

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

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

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

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

33
ответ дан 2 December 2019 в 04:16
поделиться

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

Например:

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

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

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

0
ответ дан 2 December 2019 в 04:16
поделиться

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

0
ответ дан 2 December 2019 в 04:16
поделиться

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

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

Я бы посоветовал вам прочитать статьи Томаса Эрла и Роджера Сешнса, это даст вам твердое представление о том, что такое SOA.

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

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

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

SOA, объясненная вашему начальнику

2
ответ дан 2 December 2019 в 04:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: