|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 5
|
|
Трехуровневая архитектура - Как осуществить связь между уровнями03.11.2014, 17:55. Показов 7681. Ответов 8
Метки нет (Все метки)
Пытаюсь разобраться с трехуровневой архитектурой, в особенности с тем, как осуществить связь между уровнями. К примеру в многослойном приложении связь между слоями основывается на абстракции и событиях. Как же связать между собой уровни?
0
|
|
| 03.11.2014, 17:55 | |
|
Ответы с готовыми решениями:
8
Как сделать тест с двумя уровнями вопросов и переход между уровнями Трехуровневая архитектура
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||||||||||||||||||
| 03.11.2014, 18:58 | ||||||||||||||||||||||
Сообщение было отмечено nf1jkd7 как решение
РешениеЕсли архитектура приложения изначально построена грамотно, то разделение на уровни происходит легко и приятно: меняется только реализация отдельных сервисов, а интерфейсы остаются неизменными: код, который отвечает за бизнес-логику "уезжает" на второй уровень, а в месте вызова (первый уровень) реализация логики меняется на работу с удаленным сервисом. Потом на втором уровне происходит то же самое: логика извлечения и сохранения данных "уезжает" на третий уровень, а там, где она была, реализация заменяется на работу с БД или на дополнительный уровень абстракции, если систему хранения планируется менять или добавлять избыточность. Это уже получится n-уровневая архитектура. Например, у вас есть многослойное приложение, выглядящее примерно так (псевдокод):
1. Переносим бизнес-логику на второй уровень, добавляя способ сообщения (сокеты, REST, WCF и т.д.):
2. Меняем реализацию бизнес-логки на первом уровне с непосредственной логики на общение со вторым уровнем:
3. Теперь надо увести логику работы с данными на третий уровень. Здесь зачастую просто меняется место хранения данных на сервер БД и меняется код на соединение с этой БД. А третий уровень состоит исключительно из СУБД и данных. Код второго уровня становится таким:
Здесь иногда вместо непосредственной работы с хранилищем работу класса Storage тоже разделяют на два (а то и больше!) уровней: на втором уровне оставляют так же код удаленного сообщения, на третьем уровне добавляется еще один сервис, который уже распределяет данные по разным БД (избыточность).
1
|
||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 5
|
|
| 03.11.2014, 20:45 [ТС] | |
|
В чем тогда отличие приведенного вами примера трехуровнего приложения от сервисно-ориентированного?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 03.11.2014, 21:13 | ||
![]() То есть они не обязательно взаимоисключающие. Основное отличие в том, что многоуровневая архитектура подразумевает именно физическое разделение подсистем, а SOA делает уклон на следование принципам сервис-ориентированной архитектуры, в которые физическое разделение не входит. То есть приложение, построенное на принципах SOA может держать все подсистемы на локальной машине, главное чтобы они были жестко разделены (отдельные процессы), следовали контрактам и т.д.
0
|
||
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 5
|
|
| 03.11.2014, 21:38 [ТС] | |
|
Признаю свою ошибку. Просто в приведенном примере меня очень смущает наличие работы с сервисом (т.к. знания в этой области у меня пока нулевые). Предполагает ли само понятие многоуровневая архитектура обязатальное наличие сервисов и работы с ними или можно обойтись и без них (не в данном примере, а в общем)?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 03.11.2014, 21:44 | ||
|
Многоуровневая архитектура — это физическое разделение слоев приложения. Как при этом происходит связь между ними — значения не имеет, хоть телепатию используйте
0
|
||
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 5
|
|
| 03.11.2014, 22:11 [ТС] | |
|
Я имею в виду Web-сервис. Ели взять архитектуру следующего типа: База Данных - Бизнес-логика - Веб-сервис - Пользовательский интерфейс. Какие у нее преимущества/недостатки по сравнению с архитектурой База Данных - Бизнес-логика - Пользовательский интерфейс?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 03.11.2014, 22:41 | ||
|
Суть многоуровневой архитектуры в распределении функционала с учетом "железных" ресурсов и требований приложения к ним. Добавление веб-сервиса между бизнес-логикой и клиентом — дальнейшее распределение этих обязанностей, в данном случае логики общения с клиентом и, собственно, бизнес-логики. Например, часть бизнес логики может требовать внушительного количества ресурсов для всяких расчетов, что делает "сожительство" на одной системе слоя с логикой и слоя, ответственного за общение с клиентом, недостаточным. Например, какая-то часть бизнес логики делает сложные вычисления и при этом у нас большое количество клиентов, которые постоянно делают запросы. В таких условиях очень быстро проявится гонка за ресурсами, так что здесь будет выгодно разбить эти компоненты, создав дополнительный уровень, в который вынести логику. Там можно, например, разойтись и реализовать распределенные вычислений на ферме, а на уровне веб-сервиса реализовать распределение запросов по свободным серверам с логикой или создать очередь запросов (если играете в какой-нибудь ВоВ, то очередь на переполненный сервер в пиковое время — это оно самое). Уровень с веб-сервисом пусть отвечает себе исключительно за работу с большим количеством подключений: представьте себе какой-нибудь гугл или твиттер, где миллионы человек ежесекундно делают запросы, а в случае гугла эти запросы еще и нужно довольно серьезно обработать, подобрав и отфильтровав результаты поиска. Ну а минусы — они как в любой многоуровневой системе: задержка не нулевая, ширина канала не бесконечная, сеть не 100% надежная, платформы не всегда совместимы по версиям и т.д. С каждым добавлением уровня эти проблемы накапливаются.
1
|
||
|
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 5
|
|
| 04.11.2014, 09:01 [ТС] | |
|
Огромное спасибо за ответы
Теперь стало гораздо понятнее, а то с литературой по архитектуре мне не очень везет
0
|
|
| 04.11.2014, 09:01 | |
|
Помогаю со студенческими работами здесь
9
Трехуровневая архитектура в MVC Трехуровневая архитектура с клиентом на JavaFX Трехуровневая архитектура БД - разобраться в устройстве Трехуровневая архитектура ИС - нужен пример ASP.NET MVC трехуровневая архитектура Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|