Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
528
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

5

Рекомендации по проектированию многослойных приложений

Обзор

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

Важно понимать разницу между слоями и уровнями. Слои (Layers) описывают логическую группировку функций и компонентов в приложении, тогда как уровни (tiers) описывают физическое распределение функций и компонентов по серверам, компьютерам, сетям или удаленным местоположениям. Несмотря на то, что и для слоев, и для уровней применяется одна и так же терминология (представление, бизнес, сервисы и данные), следует помнить, что только уровни подразумевают физическое разделение. Размещение нескольких слоев на одном компьютере (одном уровне) – довольно обычное явление. Термин уровень используется в применении к схемам физического распределения, например, двухуровневое, трехуровневое, n-уровневое. Более подробно о физических уровнях и развертывании рассказывает глава 19, «Физические уровни и развертывание».

Логическое разделение на слои

Независимо от типа проектируемого приложения и того, имеется ли у него пользовательский интерфейс или оно является сервисным приложением, которое просто предоставляет сервисы (не путайте со слоем сервисов приложения), его структуру можно разложить на логические группы программных компонентов. Эти логические группы называются слоями. Слои помогают разделить разные типы задач, осуществляемые этими компонентами, что упрощает создание

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

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

Слой представления, бизнес-слой и слой данных

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

Рис. 6

Логическое представление архитектуры многослойной системы

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

Как показано на рис. 1, приложение может состоять из ряда базовых слоев. Типовой трехслойный дизайн, представленный на рис. 1, включает следующие слои:

Соседние файлы в папке ООП