2012-01-10 7 views
-1

Я работаю над преобразованием моей одной страницы в 3 слоя.Что такое 3-уровневое определение и преимущества?

Я считаю, что преимущества были более организованными.

Я сбиваюсь с толку, так как сейчас у меня есть 3 слоя, и я понял, что у меня нет четкого понимания того, что такое 3 уровня.

Это то, что я знаю или думаю, что знаю

Access

Data Layer = Получает все соединения/значения

Business Access Layer = Запускает эти соединения и значения из DAL. Не уверен, но здесь проверяется ошибка?

Презентационный слой = Здесь я больше смущен ... Эта часть вызывает BAL? Почему у вас 3 слоя, если это правда?

+3

Не уверен, что вы читаете, но это кажется достаточно ясным, http://en.wikipedia.org/wiki/Multitier_architecture читает это, а затем меняет ваш вопрос ... если у вас его еще есть. – Hogan

ответ

7

Уровень презентации взаимодействует с пользователем, получает их запросы и отображает их информацию. Давайте используем банковское приложение в качестве примера. Пользователь хочет войти в свою учетную запись, получить свой баланс и перенести некоторые находки.

Презентационный уровень: дает пользователю приглашение для входа в систему, получает регистрационную информацию пользователя, сообщает им, что они вошли в систему, показывает их баланс, предлагает им возможность переводить средства, получать данные о передаче, сообщает пользователю о передаче был утвержден.

Уровень доступа к бизнесу: проверяет регистрационную информацию пользователя. Вычисляет баланс для отображения пользователю. Решает, что передача разрешена и одобряет ее.

Уровень доступа к данным: хранит регистрационную информацию пользователя. Сохраняет информацию о балансе счета, удерживает средства и т. Д.

В основном:

Доступ к данным магазинов слоя информации. Уровень доступа к бизнесу решает, какую информацию извлекать, принимает решения на ее основе, передает результаты. Уровень презентации получает информацию и предоставляет информацию пользователю.

+0

BAL сохраняет результаты? Я думал, что это работа DAL? – healxph0enix

+0

Указывает, что результаты будут сохранены. На самом деле он не проводит их через операции. Я уточню. –

1

Эта статья здесь, кажется, хорошее резюме: http://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture

Основной смысл этого, что я хотел бы подчеркнуть, что вы можете запускать каждый ярус на другую среду. Вы можете запустить свой уровень представления на веб-сервере с помощью asp.net. Вы можете запустить свой уровень доступа к бизнесу на другом сервере (сервере приложений), возможно, используя службу Windows или службу WCF и т. Д. Последний уровень может размещаться на сервере базы данных или рядом с ним.

Преимущество возможности разделить ваши слои на разные физические местоположения означает, что вы можете увеличить масштабируемость. Примером может быть то, что ваш веб-сервер борется с множеством запросов. Вы решили иметь два веб-сервера, которые называют ваш уровень доступа к бизнесу.

Другим преимуществом является переносимость. Легче отлаживать проблемы с доступом к данным, если у вас есть весь код доступа к данным рядом друг с другом. У вас есть проект, который сократит код, возможно, на треть, чтобы найти то, что вам нужно, проще.

Еще одно преимущество может заключаться в возможности замены. Предположим, вы больше не хотите использовать asp.net. Вы можете поменять местами на веб-уровне php и более легко общаться с вашей бизнес-логикой .NET.

По существу преимущества, о которых я упомянул, в значительной степени являются преимуществами модульности/гранулярности.

1

Прежде всего, «ярус» не является синонимом «слоя».

Слой - это логическое разделение.

Ярус представляет собой потенциально физическое разделение, как правило, на уровне машины или процесса.

(см: http://pranshujain.wordpress.com/2006/09/15/layers-and-tiers/)

=======

Это в стороне причина этих трех слоев, чтобы дать вам возможность обменять их на волю. Например, у вас может быть несколько слоев презентации (Web, Mobile, Desktop App). Цель здесь состоит в том, чтобы отделить презентацию от всего остального, чтобы вы могли изменять бизнес-логику, не переделывая весь свой код презентации.

Уровень бизнес-объекта предназначен для инкапсуляции и обеспечения соблюдения всей вашей обычной логики. Например, вы можете сказать, что дата рождения должна быть до сегодняшней даты. Многим разработчикам нравится сохранять это отдельно от хранилища и презентации.

Уровень доступа к данным отвечает за маршалинг ваших данных из объектов Business в ваш реальный механизм хранения. С идеей, что вы можете решить хранить вещи в SQL Server или Oracle или плоские файлы, а остальная часть приложения не должна волновать так или иначе.

============

ли все эти слои необходимо? Нет, но для большого количества приложений они помогают, когда приходит время, чтобы изменить ситуацию.


Теперь, относительно Tiers. Рабочий стол или браузер можно рассматривать как один уровень. Здесь будут исполняться код Javascript и HTML. Если у вас есть настольное приложение, это то, что живет.

Другим уровнем будет ваш веб-сервер или интерфейс веб-служб. Это отвечает за обслуживание html для рендеринга и использования клиентской стороны. В нем обычно размещаются как рендеринг презентации, так и уровень бизнес-объекта.

Еще один уровень - это ваш реальный механизм хранения. Например, SQL Server или Oracle.

Вполне возможно, что у вас может быть 5 или 6 разных уровней в зависимости от того, насколько развита (или неаккуратная ...) ваша архитектура; однако число обычно равно 2 и не более 3.

Также вполне возможно, что у вас есть только один слой или дюжина. Однако здесь здесь обычно от 2 до 3. Опять же, в зависимости от вашей архитектуры.