Технологическая архитектура, стандарты и шаблоны
Роль стандартов
Применение стандартов играет важную роль в архитектуре информационных систем – прежде всего потому, что стандарты обеспечивают возможность взаимодействия различных компонент между собой. Чем более сложной, распределенной и тиражируемой является система, тем эта определяющая и консолидирующая роль стандартов становится все более актуальной. Стандарты есть общепринятые документы, формализующие лучшие практики. Строго говоря, принято различать стандарты де-юре, т.е. разработанные и поддерживаемые официальными органами по стандартизации, такими как Международная организация по стандартизации – ISO, и стандарты де-факто, основанные на существующем широком распространении технологии, методологии или продукта (например, использование MS Windows в качестве операционной системы для персональных компьютеров).
С другой стороны, можно выделять два класса – "технологические" и "рамочные" стандарты. Технологические стандарты определяют особенности реализации тех или иных протоколов, интерфейсов, языков программирования и т.п. Типичным примером являются спецификации WWW консорциума W3C. В составе описания ИТ-архитектуры предприятия обычно приводятся ссылки на используемые стандарты такого типа.
Для наших задач, связанных с разработкой архитектуры предприятия, наибольший интерес будут представлять такие "рамочные" стандарты, как уже упоминавшийся ISO 15704, а также ISO 15288 и, частично, ISO 12207. Помимо указанных, при разработке архитектуры предприятия достаточно широко используется порядка 30-ти дополнительных "поддерживающих" стандартов системной и программной инженерии. Например, стандарт ISO 14258 определяет концепции и правила для моделирования Предприятия и т.п. Эти стандарты являются рамочными (Framework) в том плане, что они задают общие требования к реализации процессов, связанных с разработкой и поддержкой жизненного цикла систем. Они обычно используются как методологическая основа для организации этих процессов с необходимой конкретизацией для каждого данного предприятия или области деятельности.
Если стандарт ISO 12207 был разработан для определения жизненного цикла только программного обеспечения, то ISO/IEC 15288 определяет жизненный цикл "более общей" системы. В применении к нашему контексту такой системой может являться совокупность информационных систем предприятия в целом.
В соответствии со стандартом ISO/IEC 15288 жизненный цикл систем охватывает "дерево" процессов, показанное на рис. 7.6.
Реально для использования на практике при формировании архитектуры информационной системы в целом или проведения разработок программных комплексов на уровне отраслей и отдельных компаний формируются так называемые профили стандартов. Каждый такой профиль является специально сформированной совокупностью – выборкой из нескольких базовых стандартов и, может быть, других нормативных документов с четко зафиксированными подмножествами определений, обязательных к реализации. Помимо таких обязательных элементов, профиль может определять некоторые требования как факультативные. Профиль, однако, не может расширять состав требований так, чтобы он противоречил использованным в нем базовым (исходным) стандартам.
Как уже отмечалось, профили могут создаваться как для отдельной системы, так и для класса систем, предназначенных для использования в определенных рамках. Хорошим примером такого профиля является SAGA, описывающая требования к системам для реализации "электронного правительства" в Германии.
Использование профилей направлено прежде всего на снижение трудоемкости и стоимости разработки проектов информационных систем и повышение качества их реализации за счет использования уже апробированных решений. При этом сами профили можно условно разделить на два класса – профили, описывающие собственно программные или архитектурные решения на основе ISO 15288, и профили, регламентирующие процессы жизненного цикла программных систем, такие как разработка, тестирование, сопровождение и т.п. Обычно для этого класса за основу берется стандарт ISO 12207.
Важным преимуществом использования архитектурных профилей является ориентация на использование модели открытых систем. Основные рекомендации по разработке таких профилей окружения открытых систем приведены в документе IEEE 1003.23, доступном по адресу http://www.enterprise-architecture.info. Создаваемые профили могут быть использованы как для детализации собственно ИТ-архитектуры, так и для формализации процесса ее разработки. Обычно в состав такого профиля включаются следующие разделы:
- требования со стороны бизнеса, функциональной архитектуры, конечных пользователей, управления информационной системой;
- применяемые формальные, перспективные и де-факто стандарты;
- стратегии и планы миграции.
В соответствии с принципами построения открытых систем, профили строятся с учетом разделения системы на отдельные уровни (программное обеспечение, аппаратные платформы, внешнее окружение), взаимодействие между которыми происходит по четко определенным интерфейсам. Собственно, открытая система предполагает использование открытых, т.е. опубликованных стандартных интерфейсов, процессов и форматов данных для обеспечения портируемости (переносимости) на другие аппаратные платформы и операционные системы, а также обеспечивает взаимодействие с другими приложениями – как локальными, так и удаленными.
В составе интерфейсов выделяются отдельные сервисы информационных систем (ИС-сервисы). ИС-сервисы представляют собой сервисы достаточно высокого уровня (например, управление информацией или статистический анализ данных), которые могут быть объединены в группы – системные, коммуникационные, информационные и взаимодействия с пользователями. ИС-сервисы формулируются в бизнес-терминах, например, "статистическая обработка данных". Реализация этих сервисов осуществляется на основе взаимодействия "более элементарных" ИТ-сервисов, описываемых в терминах протоколов, программных интерфейсов и компонент. Примерами таких сервисов могут являться печать или управление транзакциями.
Формирование профиля, в соответствии с данными рекомендациями, производится на основании последовательного логического процесса, включающего такие этапы, как определение бизнес-требований, формирование общего списка ИТ-сервисов, заполнение матрицы корреляции бизнес-требований и ИТ-сервисов, формирование списка ИС-сервисов и матрицы корреляции ИТ/ИС-сервисов. Для необходимых ИС-сервисов выбираются существующие де-юре или де-факто стандарты, коммерчески доступные приложения или определяются требования по заказной разработке. Данное руководство содержит также некоторые примеры реализации профилей.
Более подробная информация по стандартам для открытых систем приведена, например, в [4.31],[4.32]. Важно отметить, что такой подход может быть полезным даже в том случае, когда конкретная информационная система не полностью удовлетворяет принципу открытости.
Детальное обсуждение многих вопросов, связанных со стандартами, включая аспекты применения международных стандартов в России, их сравнение с существующими стандартами серий ГОСТ 34, ГОСТ Р и других, можно найти в материалах конференций по стандартам [4.33] и на сайте http://www.fostas.ru.