Я работал над проектом, который реализует трехуровневую архитектуру с помощью следующей конструкции:Необходима трехуровневая архитектура приложения?
- Presentation Layer - Использует PHP с рамкой MVC для обработки внешнего интерфейса презентации и бизнес-логики. Этот уровень вызывает вызовы на уровень сервиса, который обращается к данным.
- Уровень доступа к данным - Использует C# .NET и разделяется на Service, Business Logic и Data Layer. Вызывается уровнем презентации. Делает вызовы в базу данных и сериализует ответы для возврата к уровню презентации.
- Data Layer - База данных. Предоставляет все данные для вышеуказанных двух уровней.
Я понимаю, что трехуровневый подход может помочь в обеспечении безопасности, поскольку до сих пор нет доступа к данным, если уровень презентации скомпрометирован. Хотя это верно, похоже, что этот подход слишком усложняет его, тем более, что я вынужден написать две модели для одного и того же объекта в первых двух слоях.
Итак, мой вопрос: это плохая реализация трехуровневой архитектуры? Если да, то как это можно улучшить? Каковы недостатки, если таковые имеются, просто наличия реализации MVC, имеющей доступ к базе данных? Какие подходы вы используете для своих веб-приложений?
Спасибо за помощь!
Существуют значительные различия в многоуровневом и Архитектуры MVC. Не смешивайте их. – 2010-12-16 14:42:07
Верхний уровень - это веб-браузер, тонкий клиент. ИМО, что у вас есть, - это n-уровневый, а не 3-уровневый. Конечно, 3-ярусность можно рассматривать как подмножество n-уровня. – sanjeev 2012-01-09 10:37:22