Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Архитектура как средство организации общения между заинтересованными лицами




Архитектурные образцы, эталонные модели и эталонные варианты архитектуры

В промежутке между схемами из прямоугольников и линий — простейшими «на­бросками» архитектур — и комплексными архитектурами, укомплектованными всей необходимой информацией о системах, существуют многочисленные пере­ходные этапы. Каждый такой этап есть результат принятия ряда архитектурных решений, совокупность архитектурных альтернатив. Некоторые из них сами по себе имеют определенную ценность. Прежде чем переходить к анализу архитек­турных структур, мы рассмотрим три промежуточных этапа.

1. Архитектурный образец — это описание типов элементов и отношений и изложение ряда ограничений на их использование. Образец имеет смысл рассматривать как совокупность ограничений, накладываемых на архитек­туру, конкретнее, на типы элементов и образцы их взаимодействия; на основе этих ограничений складывается ряд или семейство соответству­ющих им вариантов архитектуры. К примеру, одним из общеупотребитель­ных архитектурных образцов является «клиент-сервер». Клиент и сервер — это два типа элементов; их взаимодействие описывается посредством про­токола, при помощи которого сервер взаимодействует со всеми своими клиентами. Термин «клиент-сервер» по смыслу лишь предполагает мно­жественность клиентов; конкретные клиенты не перечисляются, и речи о том, какая функциональность, помимо реализации протоколов, характер­на для клиентов или для сервера, не идет. Согласно этому (неформально­му) определению, образцу «клиент-сервер» соответствует бесчисленное количество различных вариантов архитектуры, причем все они чем-то от­личаются друг от друга. Несмотря на то что архитектурный образец не является архитектурой, он все же содержит весьма полезный образ систе­мы — он накладывает на архитектуру, а следовательно, и на систему, полез­ные ограничения.

У образцов есть один крайне полезный аспект — дело в том, что они де­монстрируют известные атрибуты качества. Именно поэтому архитекторы выбирают образцы не наугад, а исходя из определенных соображений. Не­которые образцы содержат известные решения проблем, связанных с про­изводительностью, другие предназначаются для систем с высокими требо­ваниями к безопасности, третьи успешно реализуются в системах с высо­кой готовностью. Во многих случаях выбор архитектурного образца оказы­вается первым существенным решением архитектора. Синонимичным «архитектурному образцу» является общеупотребитель­ный термин архитектурный стиль (architectural style).

2. Эталонная модель — это разделение между отдельными блоками функцио­нальных возможностей и потоков данных. Эталонной моделью называется стандартная декомпозиция известной проблемы на части, которые, взаимо­действуя, способны ее разрешить. Поскольку эталонные модели имеют происхождение в опыте, их наличие характерно только для сформировав­шихся предметных областей. Вы можете назвать стандартные элементы компилятора или системы управления базами данных? А в общих словах объяснить, как эти элементы сообща решают свою общую задачу? Если можете, значит, вы знакомы с эталонной моделью этих приложений.

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

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

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

Аналогии архитектуры с другими значениями этого слова проводятся весьма часто. Как правило, архитектура ассоциируется с физической структурой (зда­ния, улицы, аппаратура) и физическим расположением. Архитектор, разрабаты­вающий план здания, имеет целью обеспечить его доступность, эстетическую привлекательность, освещенность, эксплуатационную надежность и др. Программ­ный архитектор в процессе проектирования системы должен стремиться к обес­печению таких характеристик, как параллелизм, модифицируемость, практичность, безопасность и т. д.; кроме того, он призван установить баланс между требовани­ями к этим характеристикам.

Аналогии между зданиями и программными системами не очень надежны, они слишком быстро оказываются несостоятельными. Хороши они тем, что помогают осознать важность позиции наблюдателя и прийти к выводу о множе­ственности значений понятия «структура» в зависимости от мотивов ее изуче­ния. Точное определение программной архитектуры значительно менее существен­но, чем анализ сущности этого понятия.

2.4. Почему программная архитектура так важна?

В главе 1 мы в основном аргументировали значимость архитектуры для корпо­рации. В этой главе мы поговорим о том, почему архитектура так важна с техни­ческой точки зрения. В этом контексте следует привести три основных фактора.

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

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

3. Переносимая абстракция системы. Программная архитектура — это отно­сительно небольшая, вполне доступная для человеческого восприятия мо­дель структурирования системы и взаимодействия ее компонентов; поми­мо прочего, эта модель обладает свойством переносимости из системы в систему. Например, ее можно применить в отношении других систем, для которых характерны примерно те же требования к атрибутам качества и функциональным возможностям, и тем самым дать начало полноценно­му многократному применению.

Каждый из этих вопросов мы обсудим отдельно.

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

 


разработчиков, их четкого и управляемого взаимодействия. Архитектор думает о том, какие стратегии позволят ему реализовать все эти задачи.

Архитектура — это общий язык, на котором можно сформулировать, обгово­рить и решить те или иные проблемы, причем сделать это на таком уровне, кото­рый, даже если речь идет о сложных системах, вполне доступен для комплексно­го изучения человеком (см. врезку «Что будет, если нажать эту кнопку?»). В отсутствие такого языка анализ крупных систем на ранних этапах сильно за­трудняется; сложнее становится и принимать значимые решения, определяющие качество и полезность. Как мы увидим на материале части 3, архитектурный ана­лиз одновременно отталкивается от этого уровня общения и вносит в него неко­торые коррективы.

ЧТО БУДЕТ, ЕСЛИ НАЖАТЬ ЭТУ КНОПКУ?




Поделиться с друзьями:


Дата добавления: 2015-04-25; Просмотров: 820; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.