Разработка программных средств и технологических подходов создания расширяемых компонент современных ОС (4. Событийно-ориентированная архитектура (EDA))
Описание файла
Файл "Разработка программных средств и технологических подходов создания расширяемых компонент современных ОС" внутри архива находится в следующих папках: 4. Событийно-ориентированная архитектура (EDA), Дополнительные материалы. PDF-файл из архива "4. Событийно-ориентированная архитектура (EDA)", который расположен в категории "". Всё это находится в предмете "распределённые ис и базы данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые ис и базы данных" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Национальный исследовательскийуниверситетМОСКОВСКИЙЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ(НИУ МЭИ)Разработка программных средстви технологических подходовсоздания расширяемыхкомпонент современныхоперационных системManaged Software Architecture(Управляема программная архитектура)Концепция. Реализация. Инструменты.автор: к.т.н., доц. каф. ПМ МЭИ (ТУ) Куриленко И.Е.Москва 2012 годВведениеНи одна предметная область уже не обходится безпрограмм - с их помощью предприятия могут нетолько добиваться своих целей, но и максимальночетко определять, в чем именно эти целизаключаются.Внимательное отношение к разработке программныхсистем позволяет предприятиям добиватьсястратегически значимых целей, способных повлиятьна их положение на рынке.Современное бизнес-окружениеТребуется быстрая реакция разработчиков ПОна все возрастающие требования рынка(экономический кризис, серьезное изменениебизнес-процессов).Появляются новые мощные инструменты иметодологии.Однако есть ряд факторов, которые тормозятвнедрение новых IT-решений, сдерживаютрост рынка, обуславливают низкое качествовнедряемых решений.СдерживающиефакторыСдерживающие факторыНизкий уровень квалификацииспециалистов Текучка кадров Сложный характер систем Особенности процессаформулирования требований к ПО Исторические особенности развитиякрупных системИсторическиеособенностиСдерживающие факторыСистемаанализа рисков(статистика)СистемакадровогоучетаСистема поддержкипродажИсторическиеособенностиСдерживающие факторыМОСТМОСТСистемакадровогоучетаСистема поддержкипродажСистемаанализа рисков(статистика)ИсторическиеособенностиСдерживающие факторыМОСТМОСТМОСТСистемакадровогоучетаСистема поддержкипродажСистемаанализа рисков(статистика)ИсторическиеособенностиСдерживающие факторыМОСТАдаптерМОСТМОСТСистемакадровогоучетаСистема поддержкипродажСистемаанализа рисков(статистика)ИтоговыепроблемыСдерживающие факторыОтсутствие стандартизации«Дешевый» реинжинирингИзначальные архитектурныеограничения – монолитныеприложенияИзбыточность - приложенияпокупаются иразворачиваютсянесогласованноИнфраструктураразвивается бездолгосрочного планаРешенияСоздание и внедрение новых методологийразработки ПО Повышение уровня автоматизации процессаразработки, развитие технологии разработкипрограммного обеспечения Создание новых типов архитектур, архитектурныешаблоны Хорошие и плохие практикиВведениеРешения«Реализация бизнесс-процессов,подчиненных событиям, отражаетсобытийную природу реального мира,что дает предприятия существенноефинансовое и стратегическоепреимущество»Рой Шульте, GartnerПроцессразработкиВведениеБизнес процессСхема программыIT-решениеВведениеManaged Software Architecture (управляемая программнаяархитектура) – архитектурная концепция,предполагающая разработку приложений, способныхдинамически (во времени) менять логику своей работы(самопрограммироваться) в зависимости от задачи. Концепция предполагает использование при созданиипрограммного обеспечения независиморазрабатываемых стандартизированных слабосвязныхкомпонент.
При этом настройка логики работыпрограммы происходит за счет вывода во времяисполнения какие компоненты (из общего доступногомножества) в каких ролях и кооперациях друг с другомследует использовать для решения поставленнойзадачи.МетодологияMSAИспользование слабосвязных стандартизированныхпрограммных компонент Стандартизация компонент (правила оформления,кодирования, правила взаимодействия) Автоматизация процесса построения приложенийиз компонент Применение шаблонов проектирования и системавтоматизацииПреимуществаMSAПростота модификации приложения при изменениитребований (внесение новых компонент идополнительных возможностей программу,построенную с использованием MSA), не требуетперекомпиляции всех остальных компонент, а такжеручного связывания компонент между собой). Возможность изменения логики работы программыпутем изменения набора использованных компонент исвязей между ними в момент выполнения программы безперекомпиляции и переустановки. Автоматическое версионирование и упрощениепроцесса выпуска редакций программного средства(версий с разными возможностями – больше включенокомпонент и правил – больше возможностей).ПреимуществаMSAсокращение времени разработки за счет глубокойстандартизация компонент программного средства иполучения возможности применения широкого спектрасредств автоматизации и кодогенерации; автоматизация процесса построения программныхсредств из компонент (перенос выбора числа и типовиспользуемых модулей, их связей и коопераций, длярешения той или иной задачи на среду исполнения); возможность широкого применения автономноготестирования отдельных компонент приложения (за счетслабой связности компонент и стандартизации); получение возможности автоматической баллансировкинагрузки на вычислительные узлы при работе враспределенном режиме;ПреимуществаMSAУправляемая программная архитектура изменяетосновную задачу программиста (разработкуархитектуры решения) на разработку «типовыхстроительных блоков» программы и описаниепротоколов и правил связывания компонент, авопрос связывания компонент в конкретноеприложение, реализующее ту или инуюфункциональность полностью забирает на себясреда исполнения, реализуя гибкий адаптивныймеханизм вывода.МетодологияMSAУправляемая программная архитектура предполагаетразработку в современной концепции компонентноориентированного программирования и определяетсвоеобразную «надстройку» над ООП, набор правил иограничений, направленных на построение крупныхразвивающихся программных систем с большим временемжизни. Однако в отличие от «чистого» компонентноориентированного программирования, в которомпрограммная система представляет собой наборкомпонентов с хорошо определёнными интерфейсами,управляемая программная архитектура предполагаетпостроение программных систем как набор слабосвязныхкомпонент с хорошо определенными протоколамивзаимодействия (описывающими типы генерируемых иобрабатываемых компонентом событий).СредаисполненияMSAИнформационное пространствоСредства взаимодействияСервисПриложениеСредства взаимодействияСредства взаимодействияСервисПриложениеПриложениеСреда исполненияСреда исполненияСреда исполненияКомпьютер 1,Тип операционной системы: 1Компьютер 1,Тип операционной системы: 2Компьютер X,Тип операционной системы: 2Выполнение программ, построенных по управляемойпрограммной архитектуре, обеспечивается средой исполнения.При этом программная система строится в виде наборавзаимодействующих по сети приложений и сервисов.Получаемая программная система может бытьраспределенной и кросс-платформенной.Задачи средыисполненияMSAобеспечение исполнения приложений;хранение регистрационных данных компонент;хранение конфигурации компонент;обеспечение унифицированного механизмаполучения экземпляра компонента;обеспечение унифицированного механизмавзаимодействия компонент между собой (в т.ч.
исетевого);генерация приложений;мониторинг нагрузки и назначение процессоввычислительным узлам.КомпонентысредыисполненияПрототипноепрограммированиеMSA также предполагает применение ограниченнойвариации прототипного программирования. Фабрика средыисполнения предоставляет механизм создания объекта(путём задания набора полей и методов, которые объектдолжен иметь) и механизм клонирования объектов. Каждыйвновь созданный объект является экземпляром поумолчанию для определенной группы и типа объектов.
Вкачестве прототипа используется набор начальныхпараметров, задаваемых эталоном. Прототипыиспользуются для создания новых экземпляров объектов спомощью операции клонирования – при этом созданныйэкземпляр изначально имеет полностью те же самыенастройки, что и объект в конфигурации по-умолчанию.После клонирования новый объект может быть изменён, вчастности, дополнен новыми полями, но не методами.Компонентпрограммы вMSAСтандартизация внутренней архитектуры и способареализации элементов системы является важнымпринципом управляемой программнойархитектуры. Стандартизация архитектуры и компонент вконцепции MSA основывается как на определениибазовых интерфейсов уровня ядра, так и созданииих типовой (шаблонной) реализации.Компонентпрограммы вMSAСтандартизируются: механизм реализации свойств объекта; механизм доступа к объектам ядра; механизм получения оповещений ядра; механизм получения оповещений от другихобъектов; механизм отправки событий (сообщений); механизм подключения объектов друг к другу; механизм реализации постоянных (persistent,хранимых) объектов; механизм создания экземпляров объектов системыи механизм их конфигурирования.Преимуществастандартизациикомпонентунификация – все компоненты строятся по общейконцепции и обладают общими чертами, такими какединое поведение компонента системы (интерфейс) –единый способ установки свойств, единый способсериализации и десериализации, единый способполучения событий уровня ядра системы,унифицированный способ подключения друг к другу и ксистеме обмена событиями, и т.д.; автоматизация – можно создать шаблоны типовойреализации компонент системы и обеспечить ихгенерацию с помощью специализированныхпрограммных средств – это позволяет упростить иускорить процесс разработки;Преимуществастандартизациикомпонентрасширение повторного использования кода – так какархитектура предусматривает шаблонное решение многихчасто встречающиеся на практике задач (например,загрузку/сохранение данных, объединение и т.д.), то напрактике программисту гораздо проще использоватьпредлагаемое решение, чем «изобретать» свое, чтозначительно интенсифицирует повторное использованиетиповых, отлаженных решений. упрощение понимания –все компоненты программы,построенной в концепции MSA, обладают большимродством, что значительно упрощает понимание кодаодного разработчика, другим разработчиком, позволяяконцентрироваться только на бизнес-логике, а не наспособе решения сопутствующих задач, таких как сетевоевзаимодействие, загрузка/сохранение данных, обработкасобытий и т.д.Преимуществастандартизациикомпонентрасширение повторного использования кода – так какархитектура предусматривает шаблонное решение многихчасто встречающиеся на практике задач (например,загрузку/сохранение данных, объединение и т.д.), то напрактике программисту гораздо проще использоватьпредлагаемое решение, чем «изобретать» свое, чтозначительно интенсифицирует повторное использованиетиповых, отлаженных решений. упрощение понимания –все компоненты программы,построенной в концепции MSA, обладают большимродством, что значительно упрощает понимание кодаодного разработчика, другим разработчиком, позволяяконцентрироваться только на бизнес-логике, а не наспособе решения сопутствующих задач, таких как сетевоевзаимодействие, загрузка/сохранение данных, обработкасобытий и т.д.Приложения вMSAПриложение в концепции MSA есть наборвзаимодействующих друг с другом (и другимиприложениями) компонент. Число используемых приложением компонент и связимежду ними определяются схемой приложения. В классических приложениях схема не выделяется явно иглубоко «прошита» в код программы. В концепции MSA схема приложения является элементомгенерируемым во время исполнения по некоторомунабору правил и метаданных, поставляемыхразработчиками компонент.Понятие схемыПод схемой S будем понимать тройку S=(C, R, O), где С множество компонент, R – множество связей междукомпонентами и O – множество настроек компонент.Каждый элемент множества R является тройкой (Ci,Role, Cj), где Ci и Cj являются компонентами измножества С, а Role – символическое имя роли, иобозначает, что к компоненту Ci подключенкомпонент Cj в роли Role.Множество O имеет вид ({id1, <O1, ..