Как слой / уровень взаимодействуют друг с другом между машиной/уровнем в архитектуре n уровней
В моем проекте (настольном приложении) я разделяю бизнес-логику и уровень презентации, но запускаю их на одной машине. Итак, вот состав:
A. уровень презентации и бизнес-уровень выполняются на стороне клиента (пользователя).
Он состоит из 2-х проектов / сборок: пользовательского интерфейса (презентация) и библиотеки классов(бизнес-слой). По крайней мере, это то, что я знаю о многослойности приложения.
B. уровень данных (сервер баз данных).
Прочитав много статей об архитектуре 3 и n уровней, они сказали, что каждый уровень означает одну машину или работает на одном компьютере. Интересно, как каждый уровень общается?
Например, я хочу привязать данные из уровня доступа к данным к пользовательскому интерфейсу. Как мы можем это сделать, если они работают на другой машине?
В моем текущем проекте я просто добавляю библиотеку классов, которая действует как уровень доступа к данным в качестве ссылки на проект.
Является ли веб-сервис (единственным) ответом, чтобы сделать это возможным? И если ответ "да", то как связаны SOA и N-уровень?
Что я уже пробовал:
Прочитав много статей и попробовав реализовать SOA
[no name]
-они сказали, что каждый уровень означает одну машину или работает на одном компьютере. Можете ли вы показать ссылки на эти "статьи", в которых говорится об этом? Некоторые слои могут работать на других компьютерах, но все слои могут работать на одном компьютере. Если вы создаете распределенную архитектуру, то вы можете использовать WCF, чтобы позволить вашим компонентам взаимодействовать друг с другом.
Mang Irpan
Вот пример, если я не скучаю, понял об этом:
https://www.codeproject.com/Articles/430014/N-Tier-Architecture-and-Tips
Я считаю, что ярус и слой-это разные вещи. А также я знаю, что многие слои могут работать в одном уровне (или компьютере). Я хочу сделать правильную реализацию N-уровневой архитектуры.
На самом деле я не хочу говорить об этих терминах, я просто хочу знать более конкретный вопрос: возможно ли это, если мы разделим слои на разные компьютеры и не будем использовать веб-сервис/или wcf для соединения между слоями (вы сказали, что я мог бы использовать wcf для этого). Или это единственный способ заставить компоненты взаимодействовать, например потреблять данные, объявлять экземпляры и использовать их сущности?
Но если вы хотите прояснить мое понимание n-го уровня, пожалуйста, дайте мне несколько советов. Спасибо.
[no name]
Я думаю, что вы ужасно запутались и не поняли тогда статью, на которую ссылались, если у вас получилось, что каждый уровень работает на отдельном компьютере. Если вы не используете какую-то коммуникационную среду, позволяющую вашим компонентам, работающим на разных компьютерах, общаться друг с другом, то как, черт возьми, вы ожидаете, что они будут общаться? Вы должны дать им возможность каким-то образом общаться. Если вы не хотите использовать веб-службу или WCF, используйте необработанный TCP / IP.
Mang Irpan
Есть 3 возможности:
1. Мой английский плох
2. я ужасно запутался, как вы сказали. Хаха
3. 1 и 2
Но это отражает мое понимание до сих пор.
Необработанный tcp / ip? Я собираюсь погуглить его.
Спасибо