WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 9 |

5. архитектура, управляемая моделями (model-driven architecture);

6. архитектура, центрированная на данных (data-centered architecture);

7. архитектура, центрированная на людей (people-centered architecture).

Из перечисленных направлений три первых раскрыты выше в связи с вопросами об архитектурных парадигмах. Две последних понятны по названным акцентам, причм акцент на данных указывает на использование архитектурных стилей типа «репозитарий» и «доска сотрудничества». Поэтому представим только два направления с акцентами на события и модели.

3.2.2. Архитектура, ориентированная на события В основе архитектур, основанных на событиях, лежит событийный архитектурный стиль, то есть приложения, составляющие систему, или их части активизируются при наступлении соответствующих событий. Что это за события и как они приходят в систему (извне или наступают внутри системы) – это вопросы специфики системы, которая, разумеется, должна найти отражение в архитектуре SIS. Но главное в том, что процессы в SIS управляются (полностью или частично) потоками событий.

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

3.2.3. Архитектура, управляемая моделями Архитектурное описание SIS не относится к категории исполняемых артефактов.

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

Но разработки исследователей и практиков в этом направлении проводятся интенсивно и уже привели к ряду положительных результатов. Одним из таких результатов является архитектура, управляемая моделями (Model-Driven Architecture, MDA).

Проект MDA был открыт в рамках Object Management Group (OMG), сопровождающей стандарты на версии языка UML [65]. Основная идея заключается в использовании по ходу разработки SIS двух классов моделей – класса платформонезависимых моделей (Platform-Independent Models, PIM) и платформо-специфических моделей (Platform-Specific Models, PSM). Классы моделей таковы, что для них разработаны средства преобразования элементов класса PIM в соответствующие им элементы класса SIM, а для моделей класса их преобразования в программные коды (рис. 20а).

Модели родственны и, например (рис.20b), CORBA как специфическая модель PSM, обслуживающая сетевые приложения, для перехода на уровень операционной системы является платформо-независимой PIM и может, например, быть оттранслирована для ОС UNIX. В общем случае, при необходимости, возможны следующие варианты преобразований PIMPIM, PSMPSM, PIMPSM, PSMКОД, КОДPSM, PSMPIM.

a) Межплатформенное b) Платформо-независимая взаимодействие PIM модель (PIM) Платформо-зависимая Спецификация Операционная модель (PSM) CORBA система PSM PIM Код Спецификация Linux PSM Рис. 20. Преобразования моделей: а последовательность преобразования моделей, b межплатформенные преобразования Кроме того, для классов моделей PIM и SIM существуют средства их формирования и редактирования в рамках языков со строгой семантикой, то есть языки моделирования являются специализированными формальными языками.

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

3.2.4. Архитектура, ориентированная на шаблоны Одним из принципиальных подходов к архитектурным представлениям SIS является ориентация на шаблоны (паттерны, patterns), что в архитектурах SIS привело к направлению «Patten-Oriented Software Architecture», то есть к архитектурам, ориентированным на шаблоны. Следует отметить, что ориентация на образцы (шаблоны) используется в любых версиях построения архитектур. Когда же на «patterns» производится акцент, то имеют в виду направление, основы которого заложены в работах К.

Александра, адаптированные к специфике ПО «бандой четырх» [30].

Сущность этого направления заключается в следующем понимании шаблона:

«Шаблон проектирования – это способ представления в общем виде как условия проектной задачи, так и правильных подходов к е решению» Каждый полезный шаблон находит сво место в проекте в результате анализа контекста проектной задачи, что используется для обобщнного определения шаблона в виде Имя_Шаблона (Контекст, Задача (Проблема), Решение, Результаты).

Ссылка на Имя_Шаблона указывает на задачу, е решение и последствия. С помощью словаря имн шаблонов можно вести обсуждение в коллективе, упоминать их в документации.

Для управляемого применения шаблона необходимо сформулировать Задачу и е Контекст. Также может быть включен перечень условий, при выполнении которых стоит применять шаблон.

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

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

Более детальное определение шаблона, получившее название GoF-формата приведено в таблице 3.



Таблица Имя шаблона Имя в классификации [30] Задача Обобщнная постановка задачи Также известен как … Другие хорошо известные имена шаблона … Мотивация Сценарий, иллюстрирующий проблему Применимость Ситуации, в которых шаблон применим Структура Графическая презентация шаблона Составляющие Классы, объекты и отношения Сотрудничество Распределение ответственности Последствия К чему приведт применение шаблона Реализация Как реализовать Образец кода Фрагменты кода Известные реализации Использовано в «системе» Родственные шаблоны Имена родственных шаблонов Как уже отмечалось, шаблоны используются в любых версиях архитектур SIS и их описаний. В то же время интерес к шаблонам и первые результаты были получены для объектно-ориентированной структуризации проектов SIS, обеспечивающей структурные представления SIS в терминах объектов и их классов.

Для объектно-ориентированной структуризации разработаны специальные библиотеки шаблонов, в основе которых лежат шаблоны, предложенные в [30] и представленные (их именами) в классификационной таблице 4.

Библиотеки шаблонов целесообразно строить так, чтобы они включали не только детальное представление каждого из шаблонов таблицы 4, но и их модификации, а также версии кодовых представлений на рабочих (для группы или для организации) языках программирования.

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

Таблица Границы Цель Генерации Структурный Поведения Класс Factory Method Adapter Interpreter

Abstract

Factory Adapter Chain of Responsibility Builder Bridge Command Объект Prototype Composite Iterator Singleton Decorator Mediator Faade Momento Flyweight Observer Proxy State Strategy Visitor В иллюстративных целях представим один из шаблонов. Одним из наиболее распространнных и понятных шаблонов таблицы является шаблон Faade, сущность которого представлена на рис.21. Шаблон предназначен для «Предоставления единого интерфейса для набора различных интерфейсов в системе». Другими словами, шаблон Faade определяет интерфейс более высокого уровня, что упрощает работу с системой.

Facade SIS SIS Рис. 21. Шаблон Faade: элементы структуры Ориентация на шаблоны приводит к следующей стратегии проектирования:

1. Отыскать шаблоны, присутствующие в проблемной области, и проанализировать полученный набор.

2. Для выделенного набора выполнить следующие действия:

- выбрать шаблон, который в наибольшей степени формирует контекст для всех остальных шаблонов;

- применить этот шаблон к самой высокоуровневой реализации проекта;

- выявить любые дополнительные шаблоны, которые могут появиться в полученной схеме, и добавить их к набору, который был получен в результате предыдущего анализа;

- повторно применить указанный процесс к оставшемуся набору шаблонов, выделенных в результате анализа.

3. Внести в проект все необходимые дополнительные детали.

Такая стратегия в большей мере относиться к «детальному проектированию» SIS, чем к построениям е архитектуры. В то же время одна из важнейших позиций построения архитектуры SIS связана с разработкой (пусть даже обобщнных) диаграмм классов. Богатым источником образцов для таких построений способны служить библиотеки объектно-ориентированных шаблонов.

Богатым русскоязычным источником учебного и практического материала по шаблонам проектирования является обзор О. Дубиной [84].

3.2.5. Архитектура, ориентированная на предметную область Существует ряд предметных областей, в которых структуризация статики и динамики SIS, используемых в этих областях, имеет устоявшиеся и проверенные на практике формы, приводящие к специфическим архитектурным видам на SIS в виде блок-схем (boxes and lines). Например, предметная область «систем управления» с классической схемой управления, представленной на рис. 22.

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

Одна из таких схем приведена на рис. 23.

Управление Обработка Рис. 22. Структура системы управления Система массового обслуживания Обработка запросов Очередь запросов Рис.23. Система массового обслуживания Разумеется, в архитектуру SIS, разработанных для специфических предметных областей, следует включать не только традиционные блок-схемы, но и виды, о которых говорилось выше, например, виды RM ODP. Но из-за многократно повторяющихся разработок SIS в специфических предметных областях накапливается опыт, в результате которого образуется типовая архитектура, которую целесообразно использовать как образец для подражания при разработках очередных SIS.

Такие типовые архитектуры на английском языке называют «Reference Architecture» или «Domain Specific Software Architecture, DSSA». Первое название обычно используют для устоявшихся типовых архитектур в предметной области «Архитектура SIS». Например, к «Reference Architecture» относят систему архитектурных образцов в RUP. Второе название обычно применяют для специфических предметных областей, в том смысле, о котором говорилось выше.

Завершая пункт, отметим, что к классу специфических предметных областей относится область разработок и применения архитектур SIS. Сущность специфики – концептуальное согласование пониманий лиц, вовлечнных в разработку SIS, и оперативный контроль рассуждений и понимания в рамках жизненного цикла SIS.





3.3. Архитектурные стили 3.3.1. Определение стиля Как уже отмечено выше, в построениях архитектур SIS важны исходные установки:

- в виде парадигмы или согласованной совокупности парадигм, определяющих «модели постановки проблемы и е решения»;

- подхода или согласованной совокупности подходов, выполняющих функции организующего начала для действий, в результате которых создатся и используется архитектура SIS.

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

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

Понятие архитектурного стиля вошло в архитектуру ПО одним из первых. Его место в разработке архитектуры было уже указано в [52].И все же детальное представление архитектурного стиля, классификация стилей с сопоставлениями и рекомендациями по применению было проведено только в публикации M.Shaw и P.Clements [63], содержание которой детально раскрывается ниже.

Архитектурный стиль в [63] определялся как «совокупность правил проектирования, идентифицирующих виды компонентов и коннекторов, которые могут быть использованы для образования композиции систем или подсистем, вместе с локальными и глобальными ограничениями, в рамках которых производится построение архитектуры». Причм компоненты, включая их версию в виде вложенных (в систему) подсистем, могут отличаться по их вычислительной природе.

Тип компонентов может быть различным, в зависимости от их объединения в пакеты, например по виду их взаимодействия с другими компонентами. Функции компонентов могут выполнять программные модули, комплексы модулей, «клиенты», «серверы», базы данных, библиотеки, «уровни» [64].

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

Авторы [64] в публикации преследовали следующие цели:

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

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

- находить различия между стилями, которые позволят адекватно выбирать более подходящие стили для определнных задач;

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

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

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

Классификация архитектурных стилей, которая наиболее часто приводится в публикациях по архитектуре [63, 64], представлена на рис. 24.

Архитектурные стили Базирующиеся на системах Передача управления:

данных:

- программа и подпрограмма - репозитарий - объектно-ориентированная - чрная доска Базирующиеся на потоках Многоуровневая данных:

- каналы и фильтры - последовательность Независимые компоненты - Коммуникативное взаимодействие - Клиент-сервер - Событийные системы Виртуальная машина:

-Явный вызов - Интерпретатор -Неявный вызов - Базирующаяся на правилах Рис. 24. Классификация архитектурных стилей Образцы стилей, раскрывающие содержательную сторону классификации и некоторые детали, приведены в следующем пункте. Заметим, что в определение любого стиля принято включать следующие характеристики:

- словарь элементов проектирования;

- типы компонентов и коннекторов;

- совокупность правил конфигурации, включающих правила:

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

- для семантической интерпретации (композиции элементов проектирования должны иметь хорошо понятное значение);

- возможности анализа систем, построенных на основе стиля.

3.3.3. Сопоставление стилей Каждый архитектурный стиль является образцом, выбор которого для подражания в конкретной архитектуре проводится на определнном множестве альтернатив.

Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 9 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.