- •Сообщение об авторском праве
- •Предисловие С. Сомасегара
- •Предисловие Скотта Гатри
- •Предисловие Девида Хилла
- •Введение
- •Целевая аудитория
- •Как работать с данным руководством
- •Обратная связь и поддержка
- •Техническая поддержка
- •Сообщество и группа новостей
- •Авторская группа
- •Авторы и рецензенты
- •Поделитесь с нами своими успехами
- •Архитектура и дизайн программного обеспечения
- •Что такое архитектура программного обеспечения?
- •Почему архитектура так важна?
- •Цели архитектуры
- •Архитектура сегодня и завтра
- •Принципы проектирования архитектуры
- •Основные принципы проектирования архитектуры
- •Дополнительные источники
- •Основные принципы проектирования архитектуры ПО
- •Обзор
- •Основные принципы проектирования
- •Основные вопросы проектирования
- •Определение типа приложения
- •Выбор стратегии развертывания
- •Выбор соответствующих технологий
- •Выбор показателей качества
- •Решение о путях реализации сквозной функциональности
- •Архитектурные шаблоны и стили
- •Обзор
- •Что такое архитектурный стиль?
- •Обзор основных архитектурных стилей
- •Сочетание архитектурных стилей
- •Архитектура клиент/сервер
- •Компонентная архитектура
- •Проектирование на основе предметной области
- •Многослойная архитектура
- •Архитектура, основанная на шине сообщений
- •N-уровневая / 3-уровневая архитектура
- •Объектно-ориентированная архитектура
- •Сервисно-ориентированная архитектура
- •Дополнительные источники
- •Методика построения архитектуры и дизайна
- •Обзор
- •Исходные данные, выходные данные и этапы проектирования
- •Определение целей архитектуры
- •Время и объем работ
- •Ключевые сценарии
- •Важные с точки зрения архитектуры варианты использования
- •Общее представление приложения
- •Подходящие технологии
- •Графическое представление архитектуры
- •Основные проблемы
- •Параметры качества
- •Сквозная функциональность
- •Вопросы, требующие особого внимания при проектировании
- •Варианты решений
- •Базовая архитектура и возможные варианты архитектуры
- •Пилотные архитектуры
- •Что дальше?
- •Анализ архитектуры
- •Оценки на основании сценариев
- •Представление дизайна архитектуры
- •Дополнительные источники
- •Основы проектирования
- •Рекомендации по проектированию многослойных приложений
- •Обзор
- •Логическое разделение на слои
- •Слой представления, бизнес-слой и слой данных
- •Сервисы и слои
- •Слой сервисов
- •Этапы проектирования многослойной структуры
- •Шаг 1 – Выбор стратегии разделения на слои
- •Шаг 2 – Выбор необходимых слоев
- •Шаг 3 – Принятие решения о распределении слоев и компонентов
- •Шаг 4 – Выяснение возможности сворачивания слоев
- •Шаг 5 – Определение правил взаимодействия между слоями
- •Шаг 6 – Определение сквозной функциональности
- •Шаг 7 – Определение интерфейсов между слоями
- •Шаг 8 – Выбор стратегии развертывания
- •Шаг 9 – Выбор протоколов связи
- •Рекомендации по проектированию слоя представления
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Кэширование
- •Сетевое взаимодействие
- •Композиция
- •Управление исключениями
- •Навигация
- •Взаимодействие с пользователем
- •Пользовательский интерфейс
- •Валидация
- •Выбор технологии
- •Мобильные приложения
- •Насыщенные клиентские приложения
- •Насыщенные Интернет-приложения
- •Веб-приложения
- •Аспекты производительности
- •Этапы проектирования слоя представления
- •Шаблоны проектирования
- •Предложения patterns & practices
- •Дополнительные источники
- •Рекомендации по проектированию бизнес-слоя
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Аутентификация
- •Авторизация
- •Кэширование
- •Связывание и связность
- •Управление исключениями
- •Протоколирование, аудит и инструментирование
- •Валидация
- •Вопросы развертывания
- •Этапы проектирования бизнес-слоя
- •Шаблоны проектирования
- •Предложения группы patterns & practices
- •Дополнительные источники
- •Рекомендации по проектированию слоя доступа к данным
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Пакетная обработка
- •Большие бинарные объекты
- •Подключения
- •Формат данных
- •Управление исключениями
- •Объектно-реляционное сопоставление
- •Запросы
- •Хранимые процедуры
- •Сравнение хранимых процедур и динамического SQL
- •Транзакции
- •Валидация
- •Вопросы выбора технологий
- •Вопросы производительности
- •Вопросы безопасности
- •Вопросы развертывания
- •Этапы проектирования слоя доступа к данным
- •Шаблоны проектирования
- •Дополнительные источники
- •Рекомендации по проектированию слоя сервисов
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Аутентификация
- •Авторизация
- •Сетевое взаимодействие
- •Управление исключениями
- •Каналы обмена сообщениями
- •Структура сообщения
- •Конечная точка для передачи сообщения
- •Безопасность сообщений
- •Маршрутизация сообщений
- •Преобразование сообщений
- •Интерфейс сервиса
- •Валидация
- •REST и SOAP
- •Аспекты проектирования при использовании REST
- •Аспекты проектирования при использовании SOAP
- •Вопросы выбора технологий
- •Вопросы развертывания
- •Этапы проектирования слоя сервисов
- •Шаблоны проектирования
- •Дополнительные источники
- •Рекомендации по проектированию компонентов
- •Обзор
- •Общие рекомендации по проектированию компонентов
- •Распределение компонентов по слоям
- •Компоненты слоя представления
- •Компоненты слоя сервисов
- •Компоненты бизнес-слоя
- •Компоненты слоя доступа к данным
- •Компоненты сквозной функциональности
- •Шаблоны проектирования
- •Предложения группы patterns & practices
- •Дополнительные источники
- •Проектирование компонентов представления
- •Обзор
- •Шаг 1 – Понимание предъявляемых к UI требований
- •Шаг 2 – Выбор необходимого типа UI
- •Шаг 3 – Выбор технологии UI
- •Шаг 4 – Проектирование компонентов представления
- •Компоненты пользовательского интерфейса
- •Компоненты логики представления
- •Компоненты модели представления
- •Сущности представления
- •Шаг 5 – Определение требований к привязке данных
- •Шаг 6 – Выработка стратегии обработки ошибок
- •Шаг 7 – Определение стратегии валидации
- •Предложения patterns & practices
- •Дополнительные источники
- •Проектирование компонентов бизнес-слоя
- •Обзор
- •Шаг 1 – Выбор компонентов бизнес-слоя, которые будут использоваться в приложении
- •Шаг 3 – Выбор соответствующей поддержки транзакций
- •Шаг 4 – Выработка стратегии обработки бизнес-правил
- •Шаг 5 – Выбор шаблонов, соответствующих требованиям
- •Дополнительные источники
- •Обзор
- •Шаг 1 – Выбор способа представления сущностей
- •Шаг 2 – Выбор дизайна бизнес-сущностей
- •Шаг 3 – Определение механизмов сериализации
- •Проектирование на основе предметной области
- •Дополнительные источники
- •Проектирование компонентов рабочего процесса
- •Обзор
- •Шаг 1 – Выбор стиля рабочего процесса на основании сценариев
- •Шаг 2 – Выбор способа разработки
- •Шаг 3 – Определение стратегии обработки правил
- •Шаг 4 – Выбор решения для рабочего процесса
- •Шаг 5 – Проектирование компонентов бизнес-слоя для поддержки рабочего процесса
- •Windows Workflow Foundation
- •Сервер BizTalk
- •BizTalk с ESB
- •Совместное использование Windows Workflow Foundation и BizTalk
- •Дополнительные источники
- •Проектирование компонентов слоя доступа к данным
- •Обзор
- •Шаг 1 – Выбор технологии доступа к данным
- •Шаг 2 – Принятие решения о методе извлечения и хранения бизнес-объектов источника данных
- •Шаг 3 – Выбор способа подключения к источнику данных
- •Подключения
- •Пул подключений
- •Транзакции и параллелизм
- •Шаг 4 – Выработка стратегий обработки ошибок источника данных
- •Исключения
- •Логика повтора попыток
- •Истечение времени ожидания
- •Шаг 5 – Проектирование объектов агентов сервисов (необязательный)
- •Дополнительные источники
- •Показатели качества
- •Обзор
- •Общие показатели качества
- •Доступность
- •Концептуальная целостность
- •Возможность взаимодействия
- •Удобство и простота обслуживания
- •Управляемость
- •Производительность
- •Надежность
- •Возможность повторного использования
- •Масштабируемость
- •Безопасность
- •Обеспеченность технической поддержкой
- •Тестируемость
- •Взаимодействие с пользователем /удобство и простота использования
- •Дополнительные источники
- •Сквозная функциональность
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Аутентификация
- •Авторизация
- •Кэширование
- •Сетевое взаимодействие
- •Управление конфигурацией
- •Управление исключениями
- •Протоколирование и инструментирование
- •Управление состоянием
- •Валидация
- •Этапы проектирования стратегии кэширования
- •Шаг 1 – Выбор данных, подлежащих кэшированию
- •Шаг 2 – Выбор места кэширования данных
- •Шаг 3 – Определение формата кэширования данных
- •Шаг 4 – Выработка подходящей стратегии управления кэшем
- •Шаг 5 – Выбор метода загрузки кэшированных данных
- •Этапы проектирования стратегии управления исключениями
- •Шаг 1 – Выбор обрабатываемых исключений
- •Шаг 2 – Выбор стратегии выявления исключений
- •Шаг 3 – Выработка стратегии распространения исключений
- •Шаг 4 – Выработка стратегии использования собственных исключений
- •Шаг 5 – Выбор соответствующих данных для сбора
- •Шаг 6 – Выработка стратегии протоколирования исключений
- •Шаг 7 – Выбор стратегии уведомления об исключениях
- •Шаг 8 – Принятие решение об обработке необрабатываемых исключений
- •Этапы проектирования стратегии валидации ввода и данных
- •Шаг 1 – Определение границ доверия
- •Шаг 2 – Определение ключевых сценариев
- •Шаг 3 – Выбор места валидации
- •Шаг 4 – Выработка стратегий валидации
- •Шаблоны проектирования
- •Предложения группы patterns & practices
- •Дополнительные источники
- •Взаимодействие и обмен сообщениями
- •Обзор
- •Общие принципы проектирования
- •Рекомендации по реализации связи посредством обмена сообщениями
- •Сравнение асинхронного и синхронного взаимодействия
- •Связывание и связность
- •Форматы данных
- •Возможность взаимодействия с другими системами
- •Производительность
- •Управление состоянием
- •Контрактно-ориентированное проектирование
- •Вопросы безопасности
- •Безопасность на транспортном уровне
- •Безопасность на уровне сообщения
- •Технологии
- •Технология WCF
- •Технология ASMX
- •Дополнительные источники
- •Физические уровни и развертывание
- •Обзор
- •Распределенное и нераспределенное развертывание
- •Нераспределенное развертывание
- •Распределенное развертывание
- •Вопросы производительности и проектирования в распределенных средах
- •Рекомендации по размещению компонентов при распределенном развертывании
- •Шаблоны распределенного развертывания
- •Развертывание клиент-сервер
- •n-уровневое развертывание
- •2-уровневое развертывание
- •3-уровневое развертывание
- •4-уровневое развертывание
- •Развертывание веб-приложения
- •Развертывание насыщенного Интернет-приложения
- •Развертывание насыщенного клиентского приложения
- •Шаблоны развертывания для обеспечения наилучшей производительности
- •Кластер с балансировкой нагрузки
- •Привязка к конкретному серверу и сеансы пользователей
- •Фермы приложений
- •Шаблоны развертывания для обеспечения надежности
- •Отказоустойчивый кластер
- •Шаблоны обеспечения безопасности
- •Олицетворение/делегирование
- •Доверенная подсистема
- •Модель с применением множества доверенных удостоверений сервиса
- •Вертикальное и горизонтальное масштабирование
- •Вопросы вертикального масштабирования
- •Проектирование с поддержкой горизонтального масштабирования
- •Компромиссы и последствия их принятия
- •Компоненты без сохранения состояния
- •Секционирование данных и базы данных
- •Вопросы безопасности сетевой инфраструктуры
- •Вопросы управляемости
- •Шаблоны проектирования
- •Дополнительные источники
- •Архетипы приложений
- •Выбор типа приложения
- •Обзор
- •Обзор архетипов приложений
- •Типы приложений
- •Мобильное приложение
- •Насыщенное клиентское приложение
- •Насыщенное Интернет-приложение
- •Сервис
- •Веб-приложение
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Обработка запросов приложения
- •Аутентификация
- •Авторизация
- •Кэширование
- •Управление исключениями
- •Протоколирование и инструментирование
- •Навигация
- •Компоновка страницы
- •Формирование визуального отображения страницы
- •Управление сеансами
- •Валидация
- •Вопросы проектирования слоев
- •Слой представления
- •Бизнес-слой
- •Слой доступа к данным
- •Слой сервисов
- •Вопросы тестирования и тестируемости
- •Вопросы выбора технологий
- •Вопросы выбора стратегии развертывания
- •Нераспределенное развертывание
- •Распределенное развертывание
- •Балансировка нагрузки
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование насыщенных клиентских приложений
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Бизнес-слой
- •Сетевое взаимодействие
- •Композиция
- •Управление конфигурацией
- •Доступ к данным
- •Управление исключениями
- •Удобство и простота обслуживания
- •Слой представления
- •Управление состоянием
- •Рабочий процесс
- •Вопросы безопасности
- •Вопросы обработки данных
- •Кэширование данных
- •Параллельная обработка данных
- •Привязка данных
- •Вопросы автономной работы/работы без постоянного подключения
- •Вопросы выбора технологий
- •Вопросы развертывания
- •Самодостаточное приложение
- •Развертывание по схеме клиент/сервер
- •N-уровневое развертывание
- •Технологии развертывания
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование насыщенных Интернет-приложений
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Бизнес-слой
- •Кэширование
- •Сетевое взаимодействие
- •Композиция
- •Доступ к данным
- •Управление исключениями
- •Протоколирование
- •Мультимедиа и графика
- •Приложения для мобильных устройств
- •Портируемость
- •Представление
- •Управление состоянием
- •Валидация
- •Вопросы безопасности
- •Вопросы обработки данных
- •Вопросы выбора технологий
- •Вопросы развертывания
- •Установка подключаемого модуля RIA
- •Распределенное развертывание
- •Балансировка нагрузки
- •Веб-ферма
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование мобильных приложений
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Аутентификация и авторизация
- •Кэширование
- •Сетевое взаимодействие
- •Управление конфигурацией
- •Доступ к данным
- •Особенности устройств
- •Управление исключениями
- •Протоколирование
- •Портирование приложений
- •Управление энергопотреблением
- •Синхронизация
- •Тестирование
- •Пользовательский интерфейс
- •Валидация
- •Вопросы выбора технологий
- •Microsoft Silverlight for Mobile
- •.NET Compact Framework
- •Windows Mobile
- •Windows Embedded
- •Вопросы развертывания
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование сервисных приложений
- •Обзор
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Аутентификация
- •Авторизация
- •Бизнес-слой
- •Сетевое взаимодействие
- •Слой доступа к данным
- •Управление исключениями
- •Структура сообщения
- •Конечная точка сообщения
- •Защита сообщений
- •Преобразование сообщений
- •Шаблоны обмена сообщениями
- •Передача репрезентативного состояния
- •Слой сервисов
- •SOAP
- •Валидация
- •Вопросы выбора технологий
- •Вопросы развертывания
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование размещаемых сервисов и сервисов в облаке
- •Обзор
- •Обработка данных в облаке
- •Терминология размещаемых сервисов и сервисов в облаке
- •Преимущества приложений в облаке
- •Преимущества для ISV и поставщиков услуг размещения
- •Преимущества корпоративных потребителей сервисов
- •Вопросы проектирования
- •Изоляция и совместное использование данных
- •Безопасность данных
- •Шаблоны обеспечения безопасности данных
- •Хранение и расширяемость данных
- •Управление удостоверениями
- •Многотенантная архитектура
- •Локально или удаленно, создавать или покупать
- •Производительность
- •Композиция сервисов
- •Интеграция сервисов
- •Управление сервисами
- •Шаблоны проектирования
- •Дополнительные источники
- •Проектирование офисных бизнес-приложений
- •Обзор
- •Компоненты офисных бизнес-приложений
- •Основные сценарии использования офисных бизнес-приложений
- •Управление корпоративной информацией
- •Бизнес-аналитика
- •Унифицированный обмен сообщениями
- •Общие шаблоны OBA
- •Расширенный канал доступа
- •Шаблон Direct Integration
- •Шаблон Mediated Integration
- •Интеграция документов
- •Шаблон Application Generated Documents
- •Шаблон Intelligent Documents/Embedded LOB Information
- •Шаблон Intelligent Documents/Embedded LOB Template
- •Шаблон Intelligent Documents/LOB Information Recognizer
- •Рабочий процесс обработки документов
- •Составной UI
- •Консолидация данных (Поисковая навигация)
- •Шаблон Data Consolidation
- •Запуск LOB-процесса
- •Координация совместной деятельности
- •Уведомления и задачи
- •Общие вопросы проектирования
- •Вопросы безопасности
- •Вопросы развертывания
- •Шаблоны проектирования
- •Дополнительные источники
- •Обзор
- •Логические слои LOB-приложения SharePoint
- •Развертывание физического уровня
- •Основные сценарии и функции
- •Общие принципы проектирования
- •Специальные вопросы проектирования
- •Каталог бизнес-данных
- •Хранилище документов и содержимого
- •Сервисы Excel
- •Сервисы форм InfoPath
- •Объектная модель SharePoint
- •Веб-части
- •Рабочий процесс
- •Вопросы выбора технологий
- •Принципы развертывания
- •Шаблоны проектирования
- •Дополнительные источники
- •Приложения
- •Обзор
- •Поиск данных и ресурсов
- •Как Microsoft организует техническую информацию в глобальной сети Интернет
- •Microsoft Developer Network
- •Microsoft TechNet
- •Технология .NET Framework
- •Общеязыковая среда выполнения
- •Доступ к данным
- •Мобильные приложения
- •Насыщенное клиентское приложение
- •Насыщенное Интернет-приложение
- •Сервисы
- •Рабочий процесс
- •Веб-приложения
- •Веб-сервер – Internet Information Services
- •Сервер базы данных – SQL Server
- •Среда разработки Visual Studio
- •Другие инструменты и библиотеки
- •Решения patterns & practices
- •Дополнительные источники
- •Матрица технологий слоя представления
- •Обзор
- •Обзор технологий представления
- •Мобильные приложения
- •Насыщенные клиентские приложения
- •Насыщенные Интернет-приложения
- •Веб-приложения
- •Преимущества и недостатки
- •Мобильные приложения
- •Насыщенные клиентские приложения
- •Насыщенные Интернет-приложения
- •Веб-приложения
- •Общие сценарии и решения
- •Мобильные приложения
- •Насыщенные клиентские приложения
- •Насыщенные Интернет-приложения
- •Веб-приложения
- •Дополнительные источники
- •Матрица технологий слоя доступа к данным
- •Обзор
- •Обзор технологий доступа к данным
- •Преимущества и недостатки
- •Объектно-реляционный доступ к данным
- •Доступ к данным без подключения и в автономном режиме
- •Сценарии SOA/Сервис
- •N-уровневые и общие сценарии
- •Общие рекомендации
- •Общие сценарии и решения
- •Рекомендации по применению LINQ to SQL
- •Рекомендации по применению мобильных технологий
- •Дополнительные источники
- •Матрица интеграционных технологий
- •Обзор
- •Обзор интеграционных технологий
- •Преимущества и недостатки
- •Общие сценарии и решения
- •Дополнительные источники
- •Матрица технологий рабочего процесса
- •Обзор
- •Обзор технологий рабочего процесса
- •Пользовательский и системный рабочий процесс
- •Преимущества и недостатки
- •Общие сценарии и решения
- •Дополнительные источники
- •Enterprise Library от patterns & practices
- •Обзор
- •Назначение Enterprise Library
- •Составляющие Enterprise Library
- •Блоки приложений
- •Блок кэширования
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок шифрования
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок доступа к данным
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок обработки исключений
- •Ключевые сценарии
- •Применение
- •Блок протоколирования
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок внедрения политик
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок безопасности
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок Unity
- •Ключевые сценарии
- •Применение
- •Замечания
- •Блок валидации
- •Ключевые сценарии
- •Применение
- •Замечания
- •Дополнительные источники
- •Каталог шаблонов patterns & practices
- •Шаблоны передачи данных
- •Шаблоны корпоративных решений
- •Шаблоны интеграции
- •Шаблоны безопасности Веб-сервисов
- •Дополнительные источники
|
шаблон рассматривается в материале «Patterns and Pattlets» по адресу |
|
|
|
http://msdn.microsoft.com/en-us/library/ms998465.aspx. |
|
|
|
|
|
|
Шаблоны корпоративных решений |
|||
|
|
|
|
Категория |
|
Шаблоны |
|
|
|
|
|
Шаблоны |
|
Deployment Plan (План развертывания). Создает план развертывания, |
|
развертывания |
|
описывающий, какие компоненты приложения на какие уровни будут |
|
|
|
развертываться. Если в процессе распределения компонентов по слоям |
|
|
|
выясняется, что какой-то слой не подходит для компонента, определите |
|
|
|
рентабельность изменения компонента для улучшения его работы с |
|
|
|
инфраструктурой или изменения инфраструктуры для большего соответствия |
|
|
|
компоненту. Более подробно этот шаблон рассматривается в материале |
|
|
|
«Deployment Plan» по адресу http://msdn.microsoft.com/en- |
|
|
|
us/library/ms978676.aspx. |
|
|
|
Layered Application (Многослойное приложение). Разделяет компоненты |
|
|
|
решения на слои. Компоненты каждого слоя должны быть связными и |
|
|
|
находится примерно на одном уровне абстракции. Каждый слой должен быть |
|
|
|
слабо связан с нижележащими слоями. Более подробно этот шаблон |
|
|
|
рассматривается в материале «Layered Application» по адресу |
|
|
|
http://msdn.microsoft.com/en-us/library/ms978678.aspx. |
|
|
|
Three-Layered Services Application (Трехслойное сервисное приложение). |
|
|
|
Разделяет многослойную архитектуру на три слоя – слой представления, |
|
|
|
бизнес-слой и слой данных – для уменьшения связанности и увеличения |
|
|
|
связности. Более подробно этот шаблон рассматривается в материале |
|
|
|
«Three-Layered Services Application» по адресу http://msdn.microsoft.com/en- |
|
|
|
us/library/ms978689.aspx. |
|
|
|
Tiered Distribution (Многоуровневое распределение). Структурирует |
|
|
|
серверы и клиентские компьютеры как набор физических уровней и |
|
|
|
распределяет компоненты приложений по соответствующим уровням. Более |
|
|
|
подробно этот шаблон рассматривается в материале «Tiered Distribution» по |
|
|
|
адресу http://msdn.microsoft.com/en-us/library/ms978701.aspx. |
|
|
|
Three-Tiered Distribution (Трехуровневое распределение). Структурирует |
|
|
|
приложение в три физических уровня: клиентский уровень, уровень |
|
|
|
приложения и уровень базы данных. Более подробно этот шаблон |
|
|
|
рассматривается в материале «Three-Tiered Distribution» по адресу |
|
|
|
http://msdn.microsoft.com/en-us/library/ms978694.aspx. |
|
|
|
|
|
Распределенные |
|
Broker (Брокер). Используйте шаблон Broker для сокрытия деталей |
|
системы |
|
реализации вызова удаленного сервиса путем их инкапсуляции в отдельный |
|
|
|
слой. Более подробно этот шаблон рассматривается в материале «Broker» по |
|
|
|
адресу http://msdn.microsoft.com/en-us/library/ms978706.aspx. |
|
|
|
Data Transfer Object (Объект передачи данных). Создает объект передачи |
|
|
|
данных (Data Transfer Object, DTO), содержащий все данные, необходимые |
|
|
|
для удаленного вызова. Изменяет сигнатуру удаленного метода, чтобы |
|
|
|
принимать DTO как один параметр и возвращать его клиенту. После того как |
|
|
|
DTO получено и сохранено как локальный объект, приложение может |
|
|
|
вызывать процедуры DTO без необходимости выполнения удаленных |
|
|
|
вызовов. Более подробно этот шаблон рассматривается в материале «Data |
|
|
|
Transfer Object» по адресу http://msdn.microsoft.com/en- |
|
|
|
us/library/ms978717.aspx. |
|
|
|
|
|
|
Singleton (Синглтон). Синглтон обеспечивает создание единственного |
|
экземпляра класса. Другие объекты могут выполнять доступ к данному |
|
экземпляру через глобально доступный метод класса, который возвращает |
|
ссылку на экземпляр. Кроме того, конструктор класса должен быть объявлен |
|
private, чтобы ни один другой объект не смог создать новый экземпляр. Более |
|
подробно этот шаблон рассматривается в материале «Singleton» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms998426.aspx. |
|
|
Производительность |
Server Clustering (Кластеризация сервера). Кластер серверов – это |
и надежность |
объединение двух или более серверов, представляющееся как один сервер. |
|
Таким образом, формируется виртуальный ресурс, который расширяет |
|
доступность, масштабируемость или и то, и другое. Более подробно этот |
|
шаблон рассматривается в материале «Server Clustering» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms998414.aspx. |
|
Load-Balanced Cluster (Кластер с балансировкой нагрузки). Обеспечивает |
|
установку сервиса или приложения на несколько серверов, которые |
|
сконфигурированы для разделения рабочей нагрузки. Такой тип конфигурации |
|
называют кластером с балансировкой нагрузки. Балансировка нагрузки |
|
масштабирует производительность таких серверных программ, как Веб- |
|
сервер, путем распределения клиентских запросов на множество серверов. |
|
Технологии балансировки нагрузки, которые обычно называют подсистемами |
|
балансировки нагрузки, принимают входящие запросы и в случае |
|
необходимости перенаправляют их на определенный узел. Узлы |
|
балансировки нагрузки одновременно отвечают на запросы разных клиентов |
|
(даже на множество запросов одного клиента). Более подробно этот шаблон |
|
рассматривается в материале «Load-Balanced Cluster» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms978730.aspx. |
|
Failover Cluster (Отказоустойчивый кластер). Отказоустойчивый кластер |
|
– это набор серверов, сконфигурированных таким образом, что если один |
|
сервер становится недоступным, другие серверы автоматически берут на себя |
|
работу вышедшего из строя сервера, продолжая обработку. Каждому серверу |
|
кластера назначен по крайней мере один резервный сервер из числа серверов |
|
этого же кластера. Более подробно этот шаблон рассматривается в |
|
материале «Failover Cluster» по адресу http://msdn.microsoft.com/en- |
|
us/library/ms978720.aspx. |
|
|
Шаблоны сервисов |
Service Interface (Интерфейс сервиса). Создает компонент, обеспечивающий |
|
точку входа для взаимодействия потребителей с сервисом, и предоставляет |
|
слабо детализированный интерфейс, отделяя реализацию от бизнес-логики. |
|
Более подробно этот шаблон рассматривается в материале «Service Interface» |
|
по адресу http://msdn.microsoft.com/en-us/library/ms998421.aspx. |
|
Service Gateway (Шлюз сервиса). Инкапсулирует код, реализующий |
|
клиентскую часть контракта, в отдельный компонент Service Gateway, который |
|
выступает в роли посредника для других сервисов, инкапсулируя детали |
|
подключения к источнику и выполняя все необходимые преобразования. |
|
Более подробно этот шаблон рассматривается в материале «Service Gateway» |
|
по адресу http://msdn.microsoft.com/en-us/library/ms998420.aspx. |
|
|
Шаблоны Веб- |
Model-View-Controller (Модель-представление-контроллер). Этот шаблон |
представления |
распределяет основанные на пользовательском вводе данные предметной |
|
области, представления и действий в три отдельных класса. Модель |
|
управляет поведением и данными домена приложения, отвечает на запросы |
|
данных о состоянии (обычно поступающие от Представления) и на команды |
|
изменить состояние (обычно поступающие от Контроллера). Представление |
управляет отображением информации. Контроллер интерпретирует входные данные пользователя, получаемые посредством мыши или клавиатуры, и информирует модель и/или представление о необходимости соответствующего изменения. Более подробно этот шаблон рассматривается в материале «Model-View-Controller» по адресу http://msdn.microsoft.com/enus/library/ms978748.aspx.
Page Controller (Контроллер страниц). Этот шаблон позволяет принимать входные данные запроса страницы, вызывать запрошенные действия модели и определять соответствующее представление результирующей страницы. Отделяет логику диспетчеризации от кода представления. Где это необходимо, создавайте общий базовый класс для всех контроллеров страниц, чтобы избежать дублирования кода и повысить согласованность и тестируемость. Более подробно этот шаблон рассматривается в материале
«Page Controller» по адресу http://msdn.microsoft.com/enus/library/ms978764.aspx.
Front Controller (Контроллер запросов). Этот шаблон решает проблему децентрализации, присущую шаблону Page Controller, путем направления всех запросов через один контроллер. Сам контроллер обычно реализован в виде двух составляющих: обработчика и иерархии команд. Обработчик получает от Веб-сервера HTTP-запросы Post или Get и извлекает из них соответствующие параметры. Он использует параметры запроса для выбора необходимой команды и затем для передачи управления команде для обработки. Сами команды также входят в состав контроллера. Команды представляют определенные действия, описанные в шаблоне Command. Более подробно этот шаблон рассматривается в материале «Front Controller» по адресу http://msdn.microsoft.com/en-us/library/ms978723.aspx.
Intercepting Filter (Перехватывающий фильтр). Используйте этот шаблон для создания цепочки компонуемых фильтров при реализации общих задач предварительно и последующей обработки в процессе запроса Веб-старницы. Более подробно этот шаблон рассматривается в материале «Intercepting Filter» по адресу http://msdn.microsoft.com/en-us/library/ms978727.aspx.
Page Cache (Кэш страниц). Кэширует выходные данные, сформированные сервером для страниц, которые достаточно редко меняются, но часто запрашиваются, чтобы сократить загруженность сервера. Более подробно этот шаблон рассматривается в материале «Page Cache» по адресу http://msdn.microsoft.com/en-us/library/ms978759.aspx.
Observer (Наблюдатель). Используйте шаблон Observer для сохранения списка необходимых зависимостей (наблюдателей) в отдельном объекте (субъект). Пусть все отдельные наблюдатели реализуют общий интерфейс Observer, чтобы устранить прямые зависимости между субъектом и зависимыми объектами. Более подробно этот шаблон рассматривается в материале «Observer» по адресу http://msdn.microsoft.com/enus/library/ms978753.aspx.
Шаблоны интеграции
Категория |
Шаблоны |
|
|
Слой |
Entity Aggregation (Агрегация сущностей). Вводит слой Entity Aggregation, |
интеграции |
обеспечивающий логическое представление сущностей на уровне предприятия с |
|
физическими связями, которые поддерживают доступ и обновление |
|
соответствующих им экземпляров в серверных хранилищах. Более подробно этот |
|
шаблон рассматривается в материале «Entity Aggregation» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms978573.aspx. |
|
Process Integration (Интеграция бизнес-процессов). Определяет модель бизнес- |
|
процессов, которая описывает отдельные этапы, составляющие сложную бизнес- |
|
функцию. Создает отдельный компонент диспетчера процессов, который может |
|
одновременно интерпретировать множество экземпляров этой модели и |
|
взаимодействовать с существующими приложениями для выполнения отдельных |
|
этапов процесса. Более подробно этот шаблон рассматривается в материале |
|
«Process Integration» по адресу http://msdn.microsoft.com/en- |
|
us/library/ms978592.aspx. |
|
Portal Integration (Интеграция в портал). Создает приложение портала, |
|
отображающее данные, полученные из нескольких приложений, в |
|
унифицированном UI. Пользователи могут осуществлять необходимые задачи на |
|
основании данных, отображаемых на этом портале. Более подробно этот шаблон |
|
рассматривается в материале «Portal Integration» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms978585.aspx. |
|
|
Топологии |
Message Broker (Брокер сообщений). Расширяет решение интеграции. Брокер |
интеграции |
сообщений – это физический компонент, обеспечивающий связь между |
|
приложениями. Приложения взаимодействуют не друг с другом, а только с |
|
посредником - брокером сообщений. Приложение отправляет сообщение |
|
посреднику вместе с логическим именем получателей. Посредник находит |
|
приложения, зарегистрированные под данным логическим именем, и передает им |
|
сообщение. Более подробно этот шаблон рассматривается в материале «Message |
|
Broker» по адресу http://msdn.microsoft.com/en-us/library/ms978579.aspx. |
|
Message Bus (Шина сообщений). Подключает все приложения через логический |
|
компонент, который называют шиной сообщений. Шина сообщений обеспечивает |
|
передачу сообщений между приложениями. Шина сообщений включает три |
|
основных элемента: набор согласованных с сообщениями схем, набор общих |
|
сообщений с командой и совместно используемую инфраструктуру для отправки |
|
сообщений шины получателям. Более подробно этот шаблон рассматривается в |
|
материале «Message Bus» по адресу http://msdn.microsoft.com/en- |
|
us/library/ms978583.aspx. |
|
Publish/Subscribe (Публикация/Подписка). Обеспечивает классы для публикации |
|
событий, на которые могут подписаться другие приложения. Механизм |
|
Publish\Subscribe обеспечивает отправку событий или сообщений всем |
|
подписчикам. Более подробно этот шаблон рассматривается в материале |
|
«Publish/Subscribe» по адресу http://msdn.microsoft.com/en-us/library/ms978603.aspx. |
|
|
Системные |
Data Integration (Интеграция данных). Интегрирует приложения в логическом слое |
подключения |
доступа к данным, открывая данные одного приложения (источник) для доступа из |
|
других приложений (цель). Более подробно этот шаблон рассматривается в |
|
материале «Data Integration» по адресу http://msdn.microsoft.com/en- |
|
us/library/ms978572.aspx. |
|
Functional Integration (Функциональная интеграция). Интегрирует приложения в |
|
логическом бизнес-слое, открыв бизнес-функцию одного приложения (источник) для |
|
доступа из других приложений (цель). Более подробно этот шаблон |
|
рассматривается в материале «Functional Integration» по адресу |
|
http://msdn.microsoft.com/en-us/library/ms978578.aspx. |
|
Service-Oriented Integration (Сервисно-ориентированная интеграция). Для |
|
логической интеграции приложений в бизнес-слое, позволяет системам |
|
использовать и предоставлять Веб-сервисы XML. Используйте контракты Web |
|
Services Description Language (WSDL) для описания интерфейсов этих систем. |