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

Рис. 34

Развертывание насыщенного клиентского приложения как самодостаточного приложения

Развертывание по схеме клиент/сервер

При развертывании по схеме клиент/сервер вся логика приложения располагается на клиенте, и данные размещаются на сервере базы данных, как показано на рис. 3.

Рис. 35

Развертывание насыщенного клиентского приложения по схеме клиент/сервер

N-уровневое развертывание

При n-уровневом развертывании на клиенте могут размещаться логика представления и бизнес-логика или только логика представления. Рис. 4 иллюстрирует первый вариант.

Рис. 36

N-уровневое развертывание, при котором бизнес-слой размещается на клиентском уровне

Рис. 5 иллюстрирует вариант, когда бизнес-логика и логика доступа к данным располагаются на сервере приложений.

Рис. 37

N- уровневое развертывание, при котором бизнес-слой размещается на уровне приложений

Более подробно стратегии развертывания рассматриваются в главе 19, «Физические уровни и развертывание».

Технологии развертывания

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

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

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

Пакет Установщик Windows (.MSI). Это полная программа настройки, которая может устанавливать компоненты, ресурсы, параметры реестра и другие артефакты, необходимые приложению. Для установки самих пакетов MSI пользователь должен иметь права доступа администратора. Существуют решения для распространения приложений в среде предприятия, такие как Microsoft System Center Configuration Manager.

Пакет XBAP. Приложение загружается через браузер и выполняется в ограниченной безопасной среде на компьютере. Обновления могут передаваться на клиент автоматически.

Шаблоны проектирования

Основные шаблоны проектирования организованы по категориям, таким как Сетевое взаимодействие, Композиция, Управление конфигурацией, Управление исключениями,

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

Категория

Шаблоны

 

 

Сетевое

Asynchronous Callback. Реализует длительные задачи в отдельном

взаимодействие

потоке, выполняющемся в фоновом режиме, и обеспечивает потоку

 

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

 

Gateway (Шлюз). Обеспечивает доступ к внешней системе через общий

 

абстрактный интерфейс взаимодействия так, что потребителям нет

 

необходимости понимать внешний интерфейс системы.

 

Service Locator (Локатор сервиса). Централизует поиск

 

распределенных объектов сервисов, обеспечивает централизованную

 

точку управления и выступает в роли кэша, благодаря которому

 

сокращается количество лишних операций поиска.

 

Service Agent and Proxy (Агент и прокси сервиса). Реализует

 

компонент, который может использоваться приложением для доступа к

 

компоненту/сервису, и при этом приложение даже не будет знать, что

 

обращается не к фактическому компоненту/сервису. Этот компонент

 

передает вызовы приложения в удаленный компонент/сервис и

 

возвращает результат приложению. Прокси абстрагирует детали

 

взаимодействия с другими удаленными компонентами, как правило, при

 

использовании сервисов ASMX или WCF.

 

Service Interface. Программный интерфейс, который может

 

использоваться другими системами для взаимодействия с сервисом.

 

 

Композиция

Composite View. Сочетает отдельные представления в композитное

 

представление.

 

Template View. Реализует представление общего шаблона и создает

 

представления на базе этого шаблонного представления.

 

Two-Step View. Преобразует модель данных в логическое представление

 

без какого-либо специального форматирования и затем преобразует это

 

логическое представление, добавляя необходимое форматирование.

 

View Helper (Вспомогательный объект представления). Делегирует

 

ответственность за обработку бизнес-данных вспомогательным классам.

 

 

Управление

Provider. Реализует компонент, который предоставляет API,

конфигурацией

отличающийся от клиентского API, обеспечивая возможность

 

подключения любой специальной реализации.

 

 

Управление

Exception Shielding. При возникновении исключения предотвращает

исключениями

предоставление сервисом данных о его внутренней реализации.

 

 

Представление

Application Controller. Объект, содержащий всю логику приложения и

 

используемый другими Контроллерами, работающими с Моделью и

 

отображающими соответствующее Представление.

 

Model-View-Presenter. Разделяет обработку запроса на три отдельные

 

роли, где Представление отвечает за обработку пользовательского

 

ввода, Модель – за данные приложения и бизнес-логику, и Презентатора

 

– за логику представления и координирование взаимодействия между

 

Представлением и Моделью.

 

Model-View-ViewModel. Разновидность шаблона Model-View-Controller

 

(MVC), приспособленная для современных платформ разработки UI, на

 

которых созданием представления (View) занимаются, главным образом,

 

дизайнеры, а не обычные разработчики

 

Presentation Model (Модель презентации). Распределяет обязанности

 

по визуальному отображению пользовательского интерфейса,

 

реализации состояния представления и поведения между разными

 

классами, которые названы представление и модель презентации,

 

соответственно. Класс представления управляет элементами управления

 

пользовательского интерфейса и инкапсулирует визуальное состояние

 

или поведение, характерное для UI. Класс модели презентации

 

инкапсулирует поведение представления и выступает в роли фасада для

 

базовой модели.

 

 

Управление состоянием

Context Object (Объект контекста). Объект, используемый для

 

управления текущим контекстом обработки.

 

 

Рабочий процесс

View Flow (Поток представления). Управляет переходами от одного

 

представления к другому на основании состояния приложения или среды,

 

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

 

приложений.

 

Work Flow (Рабочий процесс). Управляет предопределенным потоком

 

управления в сложном процессно-ориентированном приложении,

 

обеспечивая при этом возможность динамического изменения хода

 

выполнения через решения и структуры ветвления, которые могут

 

изменять маршрутизацию запросов.

 

 

Более подробно шаблоны Template View, Transform View и Two-Step View рассматриваются в книге Мартина Фаулера «Архитектура корпоративных приложений». Addison-Wesley, 2002.

Или по адресу http://martinfowler.com/eaaCatalog.

Более подробно шаблон Provider рассматривается в материале «Provider Model Design Pattern and Specification, Part I» по адресу http://msdn.microsoft.com/en-us/library/ms998421.aspx.

Более подробно шаблон Asynchronous Callback рассматривается в статье «Creating a Simplified Asynchronous Call Pattern for Windows Forms Applications» по адресу http://msdn.microsoft.com/en-us/library/ms996483.aspx.

Более подробно шаблон Service Interface рассматривается в статье «Service Interface» по адресу http://msdn.microsoft.com/en-us/library/ms998421.aspx.

Более подробно шаблон Exception Shielding рассматривается в статье «Useful Patterns for Services» по адресу http://msdn.microsoft.com/en-us/library/cc304800.aspx.

Более подробно шаблон Composite View рассматривается в статье «Patterns in the Composite Application Library» по адресу http://msdn.microsoft.com/en-us/library/dd458924.aspx.

Более подробно шаблон Presentation Model рассматривается в статье «Presentation Model»

(Модель презентации) по адресу http://msdn.microsoft.com/en-us/library/dd458863.aspx.

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