Будет ли 2-уровневый вариант подходящим выбором для этого сценария
-
20-08-2019 - |
Вопрос
Будет ли 2-уровневый вариант подходящим выбором для этого сценария:
- база данных sql server
- бизнесу никогда не потребуется более пары сотен одновременных подключений к общей базе данных по локальной сети
- тот факт, что (я считаю) разработка 2-уровневого
применение - Автоматическое обновление клиентской программы по локальной сети
Нет правильного решения
Другие советы
Двухуровневое решение может быть проще в разработке, но его будет сложнее поддерживать, если приложение любого размера и / или сложности.
Если это приложение будет важным для бизнеса и будет внедряться в течение значительного периода времени, я думаю, вы обнаружите, что дополнительное время, потраченное на разделение вашей презентации, бизнес-логики и доступа к данным по отдельным уровням, окупится, когда придет время что-то исправлять, изменять логику или расширять приложение.
Это один из тех вопросов, на которые вы, вероятно, получите столько же различных мнений, сколько и ответов.
Поначалу это может быть проще в разработке, но я также думаю, что в долгосрочной перспективе это обойдется вам дорого, если проект не будет тривиальным инструментом только для внутреннего использования.
Нужны ли вам 3 уровня или нет, должно зависеть от того, как долго вы собираетесь поддерживать проект и сколько функций / обновлений вы планируете для него позже.Это также может зависеть от того, сколько ошибок вы готовы принять (и исправить).IMO 3-tier стремится создавать более стабильное программное обеспечение.
Оба ответа, похоже, почти говорят о том, что нет ничего сложного в том, что 3-уровневое решение является превосходным.возможно
Рокфорд лхотка кажется, утверждается, что вы должны выбрать 2-уровневый, если только не будет экономической выгоды анализ вашей конкретной ситуации сводится к 3-уровневому.
он говорит :
Как хороший архитектор, вы должны быть втянуты пинками и криками в добавление уровней к вашей системе.
Безопасность, по его мнению, - это единственная область, в которой трехуровневое решение явно превосходит.
И он утверждает , что
Хуже того, границы усложняют разработку программного обеспечения, сетевую инфраструктуру, управляемость и общую ремонтопригодность системы.Короче говоря, чем больше уровней в приложении, тем с большей сложностью приходится иметь дело, что напрямую увеличивает затраты на создание и обслуживание приложения.
Наконец, что касается масштабируемости, я хотел бы знать, правда ли, что если вы используете отключенные наборы записей в ado для доступа к данным, то у вас по умолчанию есть пул подключений и, следовательно, высокая степень масштабируемости в любом случае?
Скопировано из книги Чарльза Уильямса "Профессиональные базы данных Visual Basic 6" :-
2-Уровневый против N-Уровневого
Выбор между двухуровневой и n-уровневой модели, похоже, это то, что волнует людей умы.Существует так много переменных, которые необходимо учесть в уравнении (включая предпочтения), что ни одна книга не сможет определить наилучшую структуру для вашей клиент-серверной модели.Некоторые из этих переменные могут включать:
Гибкость и мощь выбранного вами сервера баз данных.Современные серверы баз данных способны обрабатывать сотни или даже тысячи одновременных подключений без перехода к трехуровневой архитектуре.
Мощность и универсальность центрального процессора, в котором размещен сервер.Чем мощнее процессор, тем быстрее сервер будет обрабатывать запрошенные задачи.
Какая пропускная способность загружается на сервер и сколько последовательных существуют соединения.У вас может быть несколько или много подключений, и каждое соединение может передавать несколько или много запросов.
Экономический фактор.Сколько вы готовы потратить на свою систему?Обычно n-уровневая система будет стоить больше на разработку и обслуживание.Если вы сможете обойтись двухуровневым решением, вы сможете сэкономить много денег.
Мне кажется, это наводит на мысль, что если вы не разрабатываете для (очень популярного) веб-приложения, то 2-уровневый вариант может быть более логичным выбором.