Разработка программных средств и технологических подходов создания расширяемых компонент современных ОС (548610)
Текст из файла
Национальный исследовательскийуниверситетМОСКОВСКИЙЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ(НИУ МЭИ)Разработка программных средстви технологических подходовсоздания расширяемыхкомпонент современныхоперационных систем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, ..
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.