КАТЕГОРИИ: Архитектура-(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) |
Компонентное проектирование как поиск 2 страница
Подобно оболочкам, которые в качестве стратегий исправления устанавливают полупрозрачность, посредники выражают стратегию исправления, направленную на введение в несогласованные компоненты согласованных интерфейсов. Поскольку возможности и обязанности компонентов в процессе разработки систем выступают одним из основных источников архитектурных ограничений, но в то же время в любой системе участвует множество компонентов, компонентное проектирование системы превращается в поиск совместимых ансамблей (ensembles) коробочных компонентов, которые в максимальной степени удовлетворяют задачам системы. Архитектор должен установить возможность или, наоборот, невозможность интеграции компонентов в каждом отдельно взятом ансамбле и, в частности, оценить соответствие ансамбля архитектуре и выставленным к системе требованиям. Если ансамбль способен ужиться в архитектуре, значит, он подлежит дальнейшему анализу. На первоначальном этапе необходимо оценить осуществимость анализа, убедиться в отсутствии существенных архитектурных несоответствий, не допускающих приемлемого приспособления. Необходимо также принять во внимание осуществимость исправления и остаточный риск после окончания этого процесса. Одновременное проведение анализа в нескольких направлениях, очевидно, слишком затратно. Как мы покажем в примере, разумнее сосредоточиться на одном, основном, направлении, а все остальные рассматривать как дополнительные. Выбранные компоненты крайне важно рассматривать как ансамбли, и ни в коем случае не по отдельности. Кроме того, не следует забывать, что любое направление анализа — это лишь гипотеза, требующая проверки, и никак не окончательное решение. «Можно ли реализовать атрибуты качества системы в рамках компонентно- ориентированных вариантов архитектуры?» Ответ поначалу кажется очевидным — нет. Возможность применения существующих коробочных пакетов, содержащих дополнительную функциональность, во многих случаях начинает быстро перевешивать производительность, безопасность и другие требования к системе. Коробочные компоненты иногда стирают границу между требованиями и проектным решением системы. Оценка компонентов часто приводит к изменению требований к системе — повышает ожидания относительно предоставляемых ими возможностей и заставляет пересматривать другие «требования». Некоторая гибкость требований к системе полезна не только в контексте интеграции компонентных систем; она также помогает понять, какие требования действительно важны, и, соответственно, ориентироваться на их неукоснительное соблюдение. Как же обеспечить реализацию важнейших атрибутов качества в компонентной архитектуре? В предыдущем разделе мы говорили о том, что интеграция компонентов — это одна из основных областей риска, и в задачи системного архитектора, помимо прочего, входит принятие решения об осуществимости интеграции ансамбля компонентов при соблюдении функциональной целостности системы и соответствии требованиям по атрибутам качества. Ансамбли необходимо оценивать не только на предмет возможности успешной интеграции компонентов, но и в контексте решения задач по атрибутам качества. В ходе оценки осуществимости ансамбля компонентов — в том числе его способности к реализации желаемых атрибутов качества — применяются модельные задачи. Строго говоря, модельная задача (model problem) — это описание проектного контекста, определяющего ограничения реализации. К примеру, если в разрабатываемом программном обеспечении должен быть веб-интерфейс, исправно работающий в браузерах Netscape Navigator и Microsoft Internet Explorer, значит, эта часть проектного контекста ограничивает пространство решений. Все требуемые атрибуты качества также входят в проектный контекст. Прототип, находящийся в конкретном проектном контексте, называется модельным решением (model solution). В зависимости от серьезности риска, присущего проектному контексту, и успешности снижения этого риска модельными решениями, у модельной задачи может быть одно или несколько модельных решений. Как правило, модельные задачи разрабатываются проектными группами. В идеале, проектная группа состоит из архитектора, выступающего техническим руководителем проекта и принимающего в рамках этого проекта основные решения, и некоторого количества проектировщиков/инженеров, реализующих модельное решение модельной задачи. Рис. 18.1. Последовательность действий при решении модельной задачи
На рис. 18.1 изображена последовательность действий при решении модельной задачи. Процесс этот состоит из шести последовательно выполняемых этапов: 1. Архитектор вместе с инженерами формулируют проектный вопрос (design question). Ссылающийся на неизвестное, выраженное гипотезой, проектный вопрос инициирует модельную задачу. 2. Архитектор с инженерами устанавливают исходные критерии оценки (starting evaluation criteria). В них описывается механизм подтверждения/опровержения гипотезы в модельном решении. 3. Архитектор с инженерами определяют ограничения реализации (implementation constraints). Они устанавливают фиксированную (негибкую) часть проектного контекста, которая регулирует реализацию модельного решения. Среди такого рода ограничений фигурируют требования по платформе, версии компонентов и бизнес-правила. 4. В заданном проектном контексте инженеры вырабатывают модельное решение (model solution). Модельное решение представляет собой минимальное приложение, обращающееся только к тем характеристикам компонента (или компонентов), которые необходимы для подтверждения или опровержения гипотезы. 5. Инженеры устанавливают конечные критерии оценки (ending evaluation criteria). В их число включается начальный набор критериев, а также критерии, установленные по мере реализации модельного решения. 6. Исходя из конечных критериев, архитектор проводит оценку (evaluation) модельного решения. В результате проектное решение отвергается или одобряется. В связи с этим часто формулируются новые проектные вопросы, разрешаемые аналогичным образом. Оставшаяся часть главы отведена под пример и иллюстрацию применения перечисленных этапов при разработке веб-приложения ASEILM. О, АТАМ, ГДЕ ТЫ? Речь в этой главе идет о том, как определить соответствие отобранного ансамбля компонентов выставленным к системе требованиям по качеству и поведению. Очевидно, это архитектурный вопрос. Так почему же мы не решаем его методом архитектурной оценки — например, методом АТАМ? В конце концов, задача АТАМ состоит именно в том, чтобы оценить архитектурные решения (в том числе решение о применении компонентов, определенным образом «смонтированных» друг с другом) в свете предъявляемых к системе требований по качеству и поведению. Почему просто не «провести здесь оценку по методу АТАМ», и все на этом? Дело в том, что рассматриваемый в настоящей главе процесс, скорее, касается операций, которые обеспечивают первоочередное принятие наборов архитектурных решений, нежели собственно оценки результатов их принятия. Операции эти больше напоминают макетирование, чем аналитическую оценку. На примере приложения ASEILM мы видим, насколько многочисленны проблемы совместимости, которые разработчикам приходится решать переданализом соответствия ансамблей компонентов атрибутам качества. Сборка из компонентов ансамбля — это уже проблема. Если же один ансамбль окажется непригодным, приходится переходить к следующему. Рассматриваемый процесс, подразделяемый на ряд компактных и практичных этапов, позволяет увереннее принимать обоснованные решения относительно применения того или иного ансамбля. Каждый из возможных ансамблей строится на ряде гипотез, формулируемых исходя из понимания поставленной задачи. Процесс протекает полупараллельно — вы упорно стараетесь сочетать компоненты друг с другом и с остальными элементами системы, пока не обнаруживаете, что запутались. Затем вы либо собираете компоненты по-другому, либо сразу переходите к запасному плану (другими словами, к следующему ансамблю). Поскольку о том, насколько и каким образом выбранные ансамбли соответствуют атрибутам качества, как оказывается, вы не имеете ни малейшего понятия, на эти самые атрибуты приходится обращать особое внимание. Для того чтобы провести оценку по методу АТАМ, нужно обладать определенными сведениями о применяемых компонентах. Посылка процесса, который мы здесь описываем, заключается как раз в том, что четкая информация о них отсутствует. Представив процесс в обличии метода, мы преследовали намерение лучше донести его суть и сделать акцент на его повторяемости; впрочем, по большей части, он основан на здравом смысле. Все начинается с обоснованного предположения о компонентах, которые предполагается использовать. Затем происходит конструирование макетов, которые подвергаются тестированию по отдельности и во взаимодействии. Функционирующие компоненты развиваются, и одновременно, на случай, если сформулированное предположение окажется ложным, составляется резервный план действий. Все эти операции проводятся не с отдельными компонентами, а с целым ансамблем. После завершения процесса проверки ансамбля на правильность для него (равно как и для архитектуры системы в целом) можно смело проводить архитектурную оценку по методу АТАМ или no любому другому методу. - LJВиРСС 18.4. Пример приложения ASEILM В этом примере мы рассмотрим информационную веб-систему, разработанную сотрудниками Института программной инженерии (Software Engineering Institute, SEI) в целях автоматизации его административных отношений с непостоянными партнерами. Создание системы автоматизированного управления лицензиатами SEI (Automated SEI Licensee Management system, ASEILM) обусловливалось следующими задачами: ♦ организация распространения лицензированных институтом SEI материалов (в частности, курсов и комплектов для проведения оценки) среди авторизованных лиц; ♦ сбор административной информации для проведения оценочных мероприятий; ♦ графическое представление показателей дохода, посещаемости и ряда других сведений о лицензированных материалах SEI; ♦ отслеживание посещаемости курсов и отчисляемых в пользу SEI гонораров. В системе ASEILM предусматривается несколько типов пользователей с индивидуальными механизмами авторизации для запуска системных функций. ♦ Преподаватели курсов могут публиковать списки слушателей, сопровождать контактную информацию и загружать материалы по своим курсам. ♦ Недущие специалисты ио оценке имеют право открывать новые процедуры оценки, вводить относящуюся к ним информацию и загружать комплекты для проведения оценки. ♦ Администраторы SEI сопровождают списки авторизованных преподавателей и ведущих специалистов по оценке, а также имеют право просматривать и редактировать любую содержащуюся в системе информацию. Основываясь на результатах первоначального анализа, разработчикам удалось составить список требований к системе, многие из которых обнаружили прямое соответствие атрибутам качества разрабатываемой системы (табл. 18.1).
Традиционная практика согласования требований методом взаимных уступок в случае с коробочными компонентами претерпевает некоторые изменения. От них правомерно ожидать и большего, и меньшего — большего в том смысле, что серьезная функциональность в компонентах предоставляется «за бесплатно», а меньшего — в смысле вероятной неточности соответствия этой функциональности потребностям организации, трудности или даже невозможности ее изменения. Ансамбль Miva Empressa Руководство обычно рассматривает конструирование систем на основе коробочных компонентов как упрощение процесса разработки, для проведения которого требуются менее опытные, чем обычно, программисты. В реальности в большинстве случаев все наоборот — разработка усложняется (по крайней мере, разработка с листа, то есть с участием неизученного набора компонентов). Для выявления компонентов, которые способны обеспечить реализацию проектного решения, для анализа совместимости рассматриваемых компонентов со всеми прочими компонентами, для определения компромисса между требованиями, применением конкретных компонентов и общей стоимостью разработки — для всего этого необходим недюжинный опыт. При отсутствии такого опыта процесс поиска и квалификации обещает растянуться на неопределенное время. В нашем примере у группы разработчиков уже были некоторые познания относительно сервера приложений Miva Empressa, и потому они предпочли задействовать его при составлении исходной гипотезы. Miva Empressa — это расширение сервера Microsoft Internet Information Server (IIS), исполняющее сценарии Miva Script на основе XML. Приложения Miva Script в среде Miva Empressa исполняются в рамках IIS. Они способны проводить сложные вычисления — в частности, обеспечивать доступ к базам данных. Они заключены в показанный на рис. 18.2 «заказной компонент». Занимательно, что это единственный компонент, который в ASEILM разрабатывался с нуля. Рис. 18.2. Ансамбль Miva Empressa
В рассматриваемом ансамбле ASEILM, помимо сервера приложений Miva Empressa, задействуются некоторые другие коробочные компоненты: ♦ в качестве системы управления базами данных применяется Microsoft Access; ♦ графическое отображение дохода, посещаемости и прочей подобного рода информации обеспечивает приложение ChartWorks от компании Visual Mining; ♦ в качестве HTTP-сервера применяется Microsoft IIS; ♦ на серверной платформе устанавливается операционная система Windows NT 4.0. Клиент может быть представлен любыми платформами и браузерами. В первоначальном ансамбле предусматривались браузер Netscape 3.0 и операционная система Windows 98. Netscape 3.0 на тот момент уже считалась устаревшей версией с ограниченными возможностями, однако многие ведущие специалисты по оценке (один из видов пользователей ASEILM) продолжали ею пользоваться. Операционная система Windows 98 получила среди пользователей ASEILM серьезное распространение. Ансамбль по определению является предусловием проведения операций процесса моделирования. Ансамбль, изображенный на рис. 18.2, рассматривался в качестве основы для выработки первоначального модельного решения. Описывая в последующих разделах процесс решения модельной задачи, мы отталкиваемся от исходной гипотезы, согласно которой применение ансамбля Miva Empressa вполне приемлемо. Этап 1: формулирование проектного вопроса На первом этапе процесса решения модельной задачи в виде элементов Use Case или сценариев формулируется одна или несколько гипотез, при помощи которых проектное решение проверяется на предмет осуществимости рассматриваемого ансамбля. Исходя из приведенного в табл. 18.1 перечня атрибутов качества системы, можно вывести две гипотезы. ♦ Гипотеза 1. Ансамбль способен предоставить веб-доступ к данным, содержащимся в базе данных Access, и обеспечить их графическое представление при помощи столбиковых диаграмм и других видов управленческой графики. ♦ Гипотеза 2. Данные, передаваемые между веб-браузером и НТТР-сервером, можно зашифровать средствами HTTPS. Основная цель формулирования гипотезы 1 состояла в том, чтобы проверить функциональность системы и ее способность интегрировать требуемые компоненты. Гипотеза 2 позволяет подтвердить осуществимость решения одной из установленных задач по атрибуту безопасности, которая заключается в обеспечении системой ASEILM безопасной передачи данных через Интернет. Подтверждение обозначенных гипотез в данном случае не доказывает осуществимость ансамбля в целом, однако за счет оценки дополнительных требуемых атрибутов качества значительно приближает эту перспективу. Кроме того, оценка гипотез позволяет провести более углубленный анализ компонентов и механизмов их взаимодействия с ансамблем. Этап 2: установление исходных критериев оценки Критерии оценки помогают определиться с соответствием/несоответствием исходных гипотез модельному решению. ♦ Критерий 1. Модельное решение предполагает вывод в браузере диаграммы с данными, хранящимися в базе данных Access. ♦ Критерий 2. Между HTTP-сервером и веб-браузером должна быть организована безопасная передача данных по соединению HTTPS. Необходимо сделать так, чтобы соответствие критериям оценки можно было проверить. К примеру (касательно критерия 2), о безопасной передаче данных обычно свидетельствует присутствие в веб-браузере пиктограммы замка. Но этого недостаточно — необходимо провести тщательное тестирование, способное подтвердить, что выводимые в веб-браузере данные действительно происходят из базы данных и не кэшируются где-то посреди маршрута. Этап 3: определение ограничений реализации Ограничения реализации позволяют выявить элементы, которые в данном проектном контексте демонстрируют негибкость. Они подтверждают обоснованность проектного решения применительно к разрабатываемой системе. В данном примере ограничения реализации, помимо вышеупомянутых, отсутствуют. Этап 4: реализация модельного решения Полностью определив модульную задачу, группа разработчиков приступила к реализации модельного решения — минимального приложения, способного подтвердить или, напротив, опровергнуть сформулированную гипотезу В ходе реализации допустимо и даже полезно выявлять дополнительные критерии, без соответствия которым ансамбль нельзя признать осуществимым. В рассматриваемом модельном решении за графическое представление дохода, посещаемости и сопутствующих данных отвечает приложение ChartWorks. Сначала разработчики опробовали очевидное решение, согласно которому браузер должен был посылать серверу IIS HTML-команду, которую тот перенаправлял бы ChartWorks. В состав таких команд предполагалось инкорпорировать запрос с указанием на извлекаемые и представляемые графически данные. При реализации этого решения разработчики столкнулись с двумя проблемами, связанными со сцеплением меток диаграммы с данными и поддержанием безопасного соединения. Сцепление меток и данных Приложение ChartWorks описывает диаграммы на CDL (chart description language — язык описания диаграмм); на нем же прописываются механизмы извлечения данных из базы (в этой роли в данном случае выступает Access) и их интеграции с ней. В контексте данного ансамбля требовалось извлечь из базы данных Access метки и данные о диаграмме, причем для этого задействовались два отдельных оператора CDL. К сожалению, CDL не предусматривает механизмов спаривания информации, сгенерированной в результате выполнения разных операторов. Из-за этого возможность непосредственного запроса базы данных средствами этого языка отпадает. Вместо этого запросы Access отправлялись при помощи Miva; в результате создавался текстовый файл, в котором сводились воедино данные и метка. Уже из этого файла при помощи CDL-оператора извлекались объединенные данные. Этот подход, проявивший работоспособность, был тем не менее признан слишком сложным. К примеру, нужно было отслеживать и не путать многочисленные промежуточные файлы, соответствовавшие разным пользовательским сеансам.
Дата добавления: 2015-04-25; Просмотров: 548; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |