Согласно моему пониманию относительно N-Tier и архитектуры SOA.
N-Tier означает делить приложение на слои, Пример, я разрабатываю приложение в asp.net и я продвинул общий Слой DB к WCF затем, это называют N-tier. [Сильно связанный]
Согласно моему пониманию относительно SOA его очень общее обозначение и как хорошо мы собирающийся слабо связывать нашу архитектуру затем его названный SOA. Лучший пример для сервисов SOA - Запас подает / погодную подачу.
Даже при том, что, если мы разрабатываем приложение с помощью WCF, это не означает свой SOA, если это, сильно связывают с единственным клиентом/, или приложения .NET только могут понять о сервисах.
Можно ли помочь мне в понимании SOA VS N-Tier.
эти двое нельзя сравнивать, потому что каждый описывает разные вещи. Также имейте в виду, что уровень - это не то же самое, что слой.
Уровень - граница процесса. Когда вы создаете трехуровневое приложение, вы знаете, что UI, BL и DB будут в трех разных процессах, которые могут быть на трех разных машинах.
Слой - логическая граница. Один уровень может содержать несколько слоев. Это просто способ построения вашего приложения в соответствии с принципами объектно-ориентированного проектирования.
SOA - приложение SOA может быть многоуровневым и многоуровневым, но, как правило, это не обязательно. SOA - это подход к архитектуре приложения в смысле многоразовых автономных взаимодействующих удаленно вызываемых компонентов. Сервисы SOA должны следовать четырем принципам .
Чтобы показать простую разницу между N-уровнем и SOA, давайте предположим, что вы создаете сервисный уровень поверх бизнес-логики, которая использует некоторую базу данных. Похоже, вы создаете N-уровневое приложение SOA, не так ли? К сожалению, не каждое приложение, предоставляющее услуги, следует этим принципам. Вероятно, наиболее критичными в этом случае являются «Явная граница службы» и «Службы автономны». Если ваши сервисы совместно используют некоторые функции бизнес-логики или данные в базе данных, у них нет явных границ, и они не являются автономными => приложение не разработано как SOA.
Существует также разница между малой SOA и большой SOA. Упомянутое приложение представляет собой небольшую SOA - каждая служба должна следовать принципам. Крупная SOA предназначена для корпоративной интеграции, когда вы считаете приложение со всеми его услугами как единое целое, которое должно соответствовать принципам.
С уважением, Ладислав
Подумайте об этом так: служба SOA - это то, что может вызывать уровень доступа к данным в вашем N-уровневом приложении, но это также то, что уровень доступа к данным в моем N-уровневом приложении мог позвонить. Однако я, вероятно, не стал бы использовать ваш уровень доступа к данным в своем приложении.
Например:
Ваш уровень доступа к данным для работы с табелями рабочего времени сотрудников будет адаптирован для вашего приложения, связанного с табелями рабочего времени.
Мой уровень доступа к данным для работы с проверками качества работы сотрудников будет адаптирован для функций выполнения проверок качества работы сотрудников.
Однако оба наших приложения, а также любые другие приложения, связанные с сотрудниками, могут получить выгоду от службы SOA, которая работает с основными данными сотрудников, такими как идентификатор сотрудника, имя, номер ячейки и т. Д.
Я думаю, что основной момент в SOA (по сравнению со стандартной N-уровневой архитектурой) - это возможность повторного использования базовых сервисов. Именно поэтому вы создаете веб-сервисы для использования в качестве источников данных с намерением, что они могут служить другим приложениям, которые вы напишете в будущем. Именно здесь очень пригодится вышеупомянутая свободная связь - ваши веб-сервисы достаточно универсальны и независимы, чтобы их можно было использовать в различных приложениях.
Ладислав находится в очень выгодном положении, и вы правы в своем предположении, что, используя только WCF, вы не можете гарантировать построение SOA.
Вот несколько практических примеров того, как построить SOA с использованием WCF.
Я бы посоветовал вам прочитать статьи Томаса Эрла и Роджера Сешнса, это даст вам твердое представление о том, что такое SOA.