Lecture07 (1133564), страница 3

Файл №1133564 Lecture07 (Лекции по Технологии программирования. Компонентный подход) 3 страницаLecture07 (1133564) страница 32019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Агентывзаимодействуют друг с другом только черезчетко определенную часть интерфейсауправляющих компонентов.Системы наоснове хранилищаданныхРепозиторий(repository)Основная модельбизнес-приложений:клиентскиеприложения,воспринимающиезапросы пользователейи сервера,выполняющие этизапросы.Наиболее частоиспользуется припостроенииприложений с GUI.Document-View в MFC(Microsoft FoundationClasses) — документ вэтой схеме объединяетроли данных иобработчика.Основные функции системы связаны схранением, обработкой и представлениембольших количеств данных.Порядок работы определяется только потокомвнешних событий.Выделяется общее хранилище данных —репозиторий.

Каждый обработчик запускается вответ на соответствующее ему событие и как-топреобразует часть данных в репозитории.Среды разработки иCASE-системыКлассная доска(blackboard)Системы распознаванияСпособ решения задачи в целом неизвестен илитекстаслишком трудоемок, но известны методы,частично решающие задачу, композиция которыхспособна выдавать приемлемые результаты,возможно добавление новых потребителейданных или обработчиков.Отдельные обработчики запускаются, только еслиданные репозитория для их работы подготовлены.Подготовленность данных определяется спомощью некоторой системы шаблонов. Еслиможно запустить несколько обработчиков,используется система их приоритетов.Таблица 7.

Некоторые архитектурные стили.Многие из представленных стилей носят достаточно общий характер и часто встречаются вразных системах. Кроме того, часто можно обнаружить, что в одной системе используютсянесколько архитектурных стилей — в одной части преобладает один, в другой — другой, или жеодин стиль используется для выделения крупных подсистем, а другой — для организации болеемелких компонентов в подсистемах.Более подробного рассмотрения заслуживают стили «Каналы и фильтры», «Многоуровневаясистема». Далее следуют их описания согласно [7].Каналы и фильтрыНазвание.

Каналы и фильтры (pipes and filters).Назначение. Организация обработки потоков данных в том случае, когда процессобработки распадается на несколько шагов. Эти шаги могут выполняться отдельнымиобработчиками, возможно, реализуемыми разными разработчиками или дажеорганизациями. При этом нужно принимать во внимание следующие факторы.Действующие силы.• Должны быть возможны изменения в системе за счет добавления новых способовобработки и перекомбинации имеющихся обработчиков, иногда самими конечнымипользователями.• Небольшие шаги обработки проще переиспользовать в различных задачах.• Не являющиеся соседними обработчики не имеют общих данных.• Имеются различные источники входных данных — сетевые соединения, текстовыефайлы, сообщения аппаратных датчиков, базы данных.• Выходные данные могут быть востребованы в различных представлениях.• Явное хранение промежуточных результатов может быть неэффективным, создастмножество временных файлов, может привести к ошибкам, если в его организациюсможет вмешаться пользователь.• Возможно использование параллелизма для более эффективной обработки данных.Решение.

Каждая отдельная задача по обработке данных разбивается на несколько мелкихшагов. Выходные данные одного шага являются входными для других. Каждый шагреализуется специальным компонентом — фильтром (filter). Фильтр потребляет и выдаетданные инкрементально, небольшими порциями. Передача данных между фильтрамиосуществляется по каналам (pipes).Структура. Основными ролями компонентов в рамках данного стиля являются фильтр иканал. Иногда выделяют специальные виды фильтров — источник данных (data source) ипотребитель данных (data sink), которые, соответственно, только выдают данные илитолько их потребляют. Каждый поток обработки данных состоит из чередующихсяфильтров и каналов, начинается источником данных и заканчивается их потребителем.Фильтр получает на свой вход данные и обрабатывает их, дополняя их результатамиобработки, удаляя какие-то части и трансформируя их в некоторое другое представление.Иногда фильтр сам требует входные данные и выдает выходные по их получении, иногдаон, наоборот, может реагировать на события прихода данных на вход и требования данныхна выходе.

Фильтр обычно потребляет и выдает данные некоторыми порциями.Канал обеспечивает передачу данных, их буферизацию и синхронизацию обработки ихсоседними фильтрами (например, если оба соседних фильтра активны, работают впараллельных процессах). Если никакой дополнительный буферизации и синхронизации нетребуется, канал может представлять собой простую передачу данных в виде параметраили результата вызова операции.Рисунок 45.

Пример структуры классов для образца каналы и фильтры.На Рис. 45 показан пример диаграммы классов для данного образца, в котором 3 каналареализованы неявно — через вызовы операций и возвращение результатов, а один — явно.Из участвующих в этом примере фильтров источник и потребитель данных, а также Filter 1запрашивают входные данные, Filter 3 сам передает их дальше, а Filter 2 и запрашивает, ипередает данные самостоятельно.Filter 1Filter 2send dataFilter 3process datasend dataРисунок 46. Сценарий работы проталкивающего фильтра.Filter 1Filter 2Filter 3get dataget dataprocess dataРисунок 47. Сценарий работы вытягивающего фильтра.Динамика.

Возможны три различных сценария работы одного фильтра — проталкиваниеданных (push model, фильтр сам передает данные следующему компоненту, а получает ихтолько в результате передачи предыдущего), вытягивание данных (pull model, фильтртребует данные у предыдущего компонента, следующий сам должен затребовать данные унего) и смешанный вариант. Часто реализуется только один вид передачи данных для всехфильтров в рамках системы. Кроме того, канал может буферизовать данные исинхронизовать взаимодействующие с ним фильтры. Сценарии работы системы в целомстроятся в виде различных комбинаций вариантов работы отдельных фильтров.Filter 1Pipeprocess dataFilter 2read datawrite dataprocess datawrite dataprocess dataread dataРисунок 48.

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

Однако, требуется, как минимум, адекватная диагностикаслучающихся на разных этапах ошибок.Могут быть выделены специальные каналы для передачи сообщений об ошибках.При возникновении ошибок ввода соответствующий фильтр может игнорироватьдальнейшие входные данные до получения определенного разделителя,гарантирующего, что после него идут данные, не связанные с предыдущими.• Сконфигурировать необходимый конвейер обработки данных, собрав вместенужные фильтры и соединяющие их каналы.Следствия применения образца.Достоинства.• Промежуточные данные могут не храниться в файлах, но могут и храниться, еслиэто необходимо для каких-то дополнительных целей.• Фильтры можно легко заменять, переиспользовать, менять местами, переставлять икомбинировать, реализуя множество функций на основе одних и тех жекомпонентов.• Конвейерные системы обработки данных могут быть разработаны очень быстро,если имеется богатый набор фильтров.• Активные фильтры могут работать параллельно, давая в результате болееэффективное решение на многопроцессорных системах.Недостатки.• Управление обработкой с помощью большого общего состояния, которое иногданеобходимо, не может быть эффективно реализовано с помощью этого стиля.• Часто параллельная обработка не приносит никакого повышенияпроизводительности, поскольку передача данных между фильтрами может бытьдостаточно дорогой, фильтры могут требовать всех входных данных, прежде чемвыдадут хоть что-то, и их синхронизация с помощью каналов может приводить кзначительным простоям.• Часто фильтры большее время тратят на преобразование формата поступающихвходных данных, чем на их обработку.

Характеристики

Тип файла
PDF-файл
Размер
465,88 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6392
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее