Технологическая архитектура, стандарты и шаблоны
Существуют различные способы категоризации технологий и сервисов, которые относятся к технологической архитектуре. Например, META Group выделяет два различных типа областей (доменов) технологической архитектуры (более подробно см. "Методики описания архитектур. Модели Захмана и Gartner, методики META Group и TOGAF" ): базовые (технологии, которые используются практически каждой информационной системой) и прикладные (более специфические с точки зрения использования бизнесом).
Примерами базовых доменов технологической архитектуры являются сети, аппаратное обеспечение, операционные системы, системы хранения, программное обеспечение промежуточного слоя (middleware), системы управления базами данных, технологии системного управления ИТ-ресурсами в распределенной среде, архитектура безопасности.
Примерами прикладных доменов технологической архитектуры являются системы коллективной работы, электронной почты и управления потоками работ (workflow), Интранет, Интернет-приложения, системы электронной коммерции, архитектура хранилищ данных, специализированное аппаратное обеспечение (персональные цифровые помощники, сканеры штрих-кодов и т.д.).
Gartner называет в технологической архитектуре шесть архитектурных компонент (сервисов), в каждом из которых выделяется определенное количество технологических "строительных блоков" (bricks) [4.24]:
- Сервисы данных: системы управления базами данных (технологии баз данных и методы доступа к базам), хранилища данных (хранилища и витрины данных), системы поддержки принятия решений (Business Intelligence – средства анализа и средства подготовки отчетов).
- Прикладные сервисы: языки программирования (языки для программирования серверной части, языки для программирования клиентской части, интегрированные среды), средства разработки приложений (средства моделирования баз данных, репозитории, методики разработки приложений, средства обеспечения качества), системы коллективной работы (средства групповой работы и электронной почты, средства управления документами), архитектура приложений (модель компонент, серверы приложений, серверы поддержки тонких клиентов), геоинформационные системы и средства.
- Программное обеспечение промежуточного слоя (middleware).
- Вычислительная инфраструктура: операционные системы и аппаратное обеспечение (приложения для настольных систем, операционные системы для настольных систем, мобильные устройства – ноутбуки, беспроводные устройства, персональные цифровые помощники, серверы приложений/данных, сетевые операционные системы, принтеры), среда для web-инфраструктуры (браузеры, web-порталы, web-серверы, средства управления и создания контента, серверы каталогов, форматы публикации информации), системы хранения (Storage Area Network – сети хранения данных, накопители на магнитных лентах, накопители на оптических дисках и CD, системы хранения высокой надежности RAID), средства системного управления (средства сетевого управления, администрирование IP), топологии (топология распределенных приложений).
- Сетевые сервисы: локальные сети (протоколы, кабельные системы, топология), глобальные сети (транспорт, протоколы), технологии доступа (пользователи с удаленным доступом, эмуляция терминалов и шлюзы, беспроводные технологии для локальных и глобальных сетей, интегрированные средства передачи данных и голоса, обеспечение доступности, средства видеоконференций), голосовые технологии (голос/данные поверх IP-протокола, голосовая почта), сетевое аппаратное обеспечение (концентраторы, маршрутизаторы и пр.).
- Сервисы безопасности: авторизация, аутентификация (внутренняя и внешняя аутентификация, PKI), сетевая безопасность (Network Firewall, Internet Firewall), физическая безопасность центров обработки данных, прочие сервисы безопасности (обнаружение вторжений, защита от вирусов).
На самом деле, возможных способов классификации элементов, составляющих основу технологической архитектуры, может быть множество. В качестве еще одного примера можно привести техническую справочную модель (TRM) методики Федеральной архитектуры США FEAF, опубликованную на сайте http://www.whitehouse.gov/.
Эта справочная модель содержит четыре области технологических сервисов: доступ и доставка; платформы и инфраструктура; компонентная модель; сервис интерфейсов и интеграции. Каждая область технологических сервисов делится на категории, категории содержат стандарты, а стандарты содержат спецификации.
На рисунке 7.2 приведен пример областей, категорий, стандартов и спецификаций TRM FEAF.
Рис. 7.2. Пример областей, категорий, стандартов и спецификаций технической справочной модели TRM FEAF
Отдельный интерес представляют взаимосвязи между функциональными и операционными требованиями к системам и различными областями архитектуры, такими как прикладные системы и технологическая архитектура [4.25].
Функциональные требования к прикладной системе описывают ту ценность, которую представляет система с точки зрения реализации функций организации (бизнес-ценность). Архитектура приложений, по сути дела, является архитектурой всех автоматизированных сервисов, которые обеспечивают и реализуют такие функциональные требования, включая интерфейсы к бизнес-приложениям и другим прикладным системам. Она описывает структуру приложений и то, как эта структура реализует функциональные требования организации.
Операционные (или эксплуатационные) требования к программной системе специфицируют такие аспекты, как надежность, управляемость, производительность, безопасность, совместимость. И это далеко не полный список. Примерами операционных требований являются возможность доступа к системе только авторизованных пользователей, уровень доступности прикладной системы 99,99% времени и т.д.
Технологическая архитектура является архитектурой инфраструктуры аппаратного и программного обеспечения, которая обеспечивает работу прикладных систем и выполнение операционных (нефункциональных) требований, предъявляемых к архитектуре прикладных систем и информации. Она описывает структуру и взаимосвязи между используемыми технологиями и то, как эти технологии обеспечивают выполнение операционных требований организации.
Рис. 7.3. Взаимосвязи функциональных и операционных требований с архитектурой приложений и технологической архитектурой
Поэтому ассоциации, о которых мы должны всегда помнить, следующие: "Функциональные требования обеспечиваются архитектурой приложений, операционные требования обеспечиваются технологической архитектурой".
Хотя, конечно, следует сделать одно замечание. Хорошая технологическая архитектура может обеспечивать безопасность, доступность, надежность и целый список других операционных требований, но если приложение спроектировано так, что оно не использует преимуществ технологической архитектуры, оно все равно будет функционировать плохо, и его будет сложно внедрять и сопровождать. Аналогичным образом, хорошо спроектированная структура прикладной системы, которая точно соответствует требованиям бизнес-процессов и собрана из многократно используемых компонент с применением современнейших технологий, может не соответствовать реальной конфигурации используемого аппаратного и системного программного обеспечения. Например, имеющиеся серверы могут не поддерживать работу компонент системы, конфигурация и топология сети – не обеспечивать потребности в потоках информации. Это показывает, что все-таки есть существенная взаимосвязь между архитектурой приложений и технологической архитектурой: хорошая технологическая архитектура должна быть построена с учетом поддержки прикладных систем, играющих важную роль в работе организации. Хорошая архитектура приложений должна эффективно использовать технологическую архитектуру, чтобы обеспечить должный уровень соответствия всем операционным требованиям.