Содержание к диссертации
Введение
1 . Моделирование программной архитектуры и транзакций на архитектурном уровне 10
1.1 Моделирование программной архитектуры 10
1.1.1 Определение программной архитектуры 10
1.1.2 Цели использования программной архитектуры 14
1.1.3 Связь внешней среды и программной архитектуры 20
1.1.4 Структуры программных средств 22
1.1.5 Процесс разработки и программная архитектура 26
1.1.6 Связанные направления 30
1.2 Моделирование транзакций на архитектурном уровне проектирования программных средств 37
1.2.1 Транзакционная структура (ТС) 39
1.2.2 Описание транзакционной структуры на UML 56
1.3 Выводы 75
2. Транзакции в АСУИО 77
2.1 Транзакции и целостность баз данных 77
2.1.1 Пример нарушения целостности базы 78
2.1.2 Понятие транзакции 79
2.1.3 Ограничения целостности 81
2.1.4 Классификация ограничений целостности 83
2.1.5 Классификация ограничений целостности по способам реализации 83
2.1.6 Классификация ограничений целостности по времени проверки...87
2.1.7 Классификация ограничений целостности по области действия...87
2.1.8 Ограничения домена 88
2.1.9 Ограничения атрибута 88
2.1.10 Ограничения кортежа 89
2.1.11 Ограничения отношения 93
2.1.12 Ограничения базы данных 95
2.1.13 Реализация декларативных ограничений целостности средствами SQL 96
2.1.14 Синтаксис операторов SQL, использующих ограничения 104
2.2 Транзакции и восстановление данных 110
2.2.1 Индивидуальный откат транзакции 114
2.2.2 Восстановление после мягкого сбоя 115
2.2.3 Восстановление после жесткого сбоя 118
2.3 Выводы 119
3. Многоверсионность данных и управление параллельными транзакциями 121
3.1 Транзакции и параллелизм 121
3.2 Временные метки 132
3.3 Многоверсионный вариант двухфазного протокола синхронизации 134
3.4 Многоверсионный протокол для транзакций, не изменяющих данные 137
3.5 MVSG-планировщики 138
3.6 Проблемы реализации версионных алгоритмов 141
3.7 Выводы 143
4. Модель оценки транзакционной надёжности программного обеспечения вАСУИО 145
4.1 Описание модели оценки транзакционной надёжности 145
4.2 Программная реализация системы моделыю-алгоритмической поддержки анализа транзакционной надежности программных средств 152
4.3 Примеры решения задач и анализ результатов 154
4.4 Выводы 159
Заключение 161
Список использованной литературы 163
- Моделирование транзакций на архитектурном уровне проектирования программных средств
- Классификация ограничений целостности по способам реализации
- MVSG-планировщики
- Программная реализация системы моделыю-алгоритмической поддержки анализа транзакционной надежности программных средств
Введение к работе
Актуальность темы исследования.
Вопрос о понятии, составе, факторах и способах повышения конкурентоспособности организации является одним из наиболее обсуждаемых в отечественной и зарубежной науке и практике управления в последние годы. В российской экономике проблема поддержания и повышения конкурентоспособности отечественных организаций особенно актуальна в свете преодоления последствий кризиса 90-х годов, охватившего большинство промышленных предприятий. Особенно эта проблема актуальна для предприятий авиационной промышленности.
Развитие технологий, глобализация рынка, структурная перестройка экономики, интеграция хозяйствующих субъектов создают новые условия конкурентной борьбы в современном мире. К промышленным предприятиям предъявляются требования повышения качества управления и достижения высоких результатов производственно-хозяйственной деятельности. В сложившихся условиях возрастает необходимость применения новых подходов н методов контроля и обеспечения эффективности управления. Одним из важнейших показателей успешного функционирования предприятий является поддержание и рост уровня их конкурентоспособности.
Работа любого предприятия является довольно сложным и многогранным процессом. Уровень конкурентоспособности и возможности бизнеса связаны с скоординированным выполнением различных функций, успешное выполнение которых и определяет результат этой деятельности. Предприятие успешно функционирует, когда у него успешно развиты все направления в комплексе: финансы и экономика, маркетинг и сбыт, технология и производство, исследования и разработки. При этом носителями и исполнителями большинства хозяйственных функций (за исключением тех, которые полностью связаны с автоматизированными системами) являются сотрудники организации, ее персонал.
Именно качество управления и использования персонала многими исследователями выделяется среди основных факторов конкурентоспособности организации. По данным университетов Западной Европы, в таких странах, как США, Франция, Германия, Великобритания, Финляндия, Италия, Сингапур человеческий ресурс используется более чем на 70%; в Испании, Австралии, Японии, Канаде, Чехии - не более чем на 50%». В группу с низким показателем (около 25%) использования человеческих ресурсов компании попали Россия, Монголия, Украина, КНР, Польша, Мексика [111].
Для развития системы управления персоналом в целях обеспечения конкурентоспособности организации необходим инструмент, с помощью которого можно было бы оценить эффективность действующей системы управления и выявить пути ее дальнейшего совершенствования. Поэтому обладание таким инструментом, а также понимание возможностей и путей его использования в управленческой деятельности создает серьезные предпосылки для роста конкурентоспособности организаций.
В связи с этим существует необходимость исследования теоретических положений и практических подходов к понятию конкурентоспособности организации и определяющих ее факторов. Одной из наиболее важных проблем является разработка способов оценки и направлений повышения эффективности управления персоналом как одного из ключевых факторов обеспечения конкурентоспособности организации.
Актуальность и необходимость разработки способов оценки и направлений повышения эффективности управления персоналом промышленных предприятий в целях обеспечения их конкурентоспособности обуславливается наличием у отечественных организаций таких задач как повышение производительности труда, рост отдачи от инвестиций в человеческий капитал, развитие производства и методов управления в соответствии с современными условиями рынка. Поэтому исследование направлений обеспечения конкурентоспособности организации на основе повышения эффективности управления персоналом имеет важное значение для науки и практики управления хозяйствующими субъектами.
Степень разработанности проблемы. В экономической науке и практике проблема определения ключевых факторов конкурентоспособности является дискуссионной. С практической точки зрения наиболее важным является вопрос о возможности и методах воздействия на такие факторы с целью повышения конкурентоспособности организаций.
В ходе диссертационной работы автор опирался, главным образом, на труды отечественных исследователей. Среди авторов занимающихся вопросами конкурентоспособности организации можно выделить Г.Л. Азоева, B.C. Каленского, М.И. Кныша, Т.Ф. Рябову, О.О. Смирнову, Р.А. Фатхутдинова, O.K. Филатова, А.П. Челенкова и других. Систему управления персоналом в качестве одной из ключевых составляющих конкурентоспособности организации выделяли исследовали И.М. Гараев, А.Д. Зозуля, И.С. Неганова, А.В. Столбинский, А.Г. Шабанов и другие.
Вопросами эффективности управления персоналом занимались А.Н.Авдеев, Е.С. Воробьев, Н.В. Дворянских, Р.Е. Исакова, И.А. Касаткин, К.А. Михайлушкин, B.C. Половинко, А.В. Седлецкий, С.А. Смирнов, A.M. Цешинский, И.В. Шиликова, Н.А. Ягунова и другие. Также среди авторов, занимающихся проблемами управления персоналом в нашей стране можно выделить следующие имена: И.В. Андреева, В.А. Анторопов, Т.Ю. Базаров, П.Г. Бой-даченко, В.П. Галенко, А.П. Егоршин, П.В. Журавлев, Ю.Г. Одегов, Н.И. Ка-бушкин, С.А. Карташов, А.Я. Кибанов, А.А. Крылов, М.И. Магура, Е.В. Маслов, Н.К. Маусов, О.Ю. Минченкова, Ю.В. Прушинский, Е.В. Спивак, Н.В.Федорова, СВ. Шекшня и другие.
В то же время вопрос о роли и месте системы управления персоналом в обеспечении конкурентоспособности организации остается дискуссионным. Также следует отметить, что до настоящего момента критерии и показатели эффективности управления персоналом неоднозначно определены и систематизированы.
Все это свидетельствует не только об актуальности, но и недостаточной разработанности направлений обеспечения конкурентоспособности организации
на основании повышения эффективности управления персоналом, а также методов ее комплексной оценки, что и обусловливает выбор темы исследования, его цели и задачи.
Цель и задачи исследования. Цель исследования заключается в решении проблемы разработки адекватного современным рыночным условиям инструментария оценки и определения направлений повышения эффективности управления персоналом как фактора конкурентоспособности организации.
Для достижения поставленной цели диссертантом были поставлены и решены следующие задачи:
исследование и развитие содержания понятийного аппарата в области диссертационного исследования, в том числе таких понятий как «конкурентоспособность», «управления персоналом», «результативность» и «эффективность» управления;
теоретическое исследование факторов конкурентоспособности организации и определение среди них места и роли эффективного управления персоналом;
изучение понятия «система управления персоналом», конкретизация и уточнение входящих в нее элементов;
исследование и обоснование критериев эффективности управления персоналом в целях их дальнейшего использования при изучении направлений повышения конкурентоспособности организации;
обоснование и разработка инструментария, методов и показателей оценки эффективности управления персоналом с позиции определения на их основе направлений формирования конкурентоспособности организации;
анализ эффективности управления персоналом на базовых промышленных предприятиях и обоснование полученных в ходе его проведения выводов и рекомендаций, способствующих обеспечению конкурентоспособности организации;
обоснование направлений повышения эффективности управления персоналом в целях обеспечения конкурентоспособности организации.
Область исследования. Диссертационная работа выполнена в рамках раздела «Экономика, организация и управление предприятиями, отраслями, комплексами - промышленность» Паспорта специальности ВАК 08.00.05 — Экономика и управление народным хозяйством: п. 15.15. «Теоретические и методологические основы эффективности развития предприятий, отраслей и комплексов народного хозяйства».
Объектом исследования является совокупность организационно-экономических отношений в деятельности по управлению персоналом на предприятиях авиационной промышленности Республики Татарстан.
Предметом исследования являются теоретические и методические подходы к разработке инструментов управления персоналом в контексте обеспечения конкурентоспособности организации.
Теоретической и методологической основой исследования послужили труды отечественных и зарубежных ученых в области теории и практики формирования конкурентоспособности организации, управления персоналом, эффективности экономических систем, экспертного анализа деятельности предприятий.
В качестве методологии научного анализа в работе нашли свое применение системный, процессный, логический подходы, экспертные методы, методы сравнительного анализа, социологические и расчетно-аналитические методы.
Информационной базой исследования явились законодательные и другие нормативные акты Российской Федерации и Республики Татарстан, статистические сборники, данные отраслевых справочников, официальных Интернет-сайтов, реферативные обзоры, данные научной и периодической литературы, материалы научно-практических конференций, семинаров, внутренние нормативные и методические документы предприятий-объектов исследования, данные экспертных опросов руководителей и специалистов ряда авиастроительных предприятий.
Научная новизна. Научная новизна основных положений диссертационного исследования заключается в теоретическом обобщении и разработке методических подходов и практических рекомендаций по анализу и повышению уровня
эффективности управления персоналом как фактора, обеспечивающего конкурентоспособность организации.
В процессе работы получены следующие основные научные результаты:
уточнено и детализировано содержание понятийного аппарата в части по влиянию кадрового и управленческого потенциала предприятия на конкурентоспособность организации;
определена роль эффективности управления персоналом как показателя кадрового и управленческого потенциала предприятия в системе внутренних факторов конкурентоспособности организации, среди которых также выделены производственный, научно-исследовательский, финансово-экономический и сбытовой потенциал;
развиты теоретические положения содержания понятия «управление персоналом» как экономической системы на основе выделения и исследования в качестве основных ее элементов субъектов, объектов, функций, принципов, методов и инструментов;
разработаны и систематизированы критерии эффективности управления персоналом как фактора конкурентоспособности организации на основании обобщения и группировки результатов и затрат, формируемых при выполнении функций кадровой службы;
- предложена концептуальная модель оценки эффективности системы
управления персоналом в целях обоснования рекомендаций по обеспечению кон
курентоспособности организации на основе изучения результатов и затрат по
ряду выделенных показателей, сравнительного анализа и обобщения их значений
на различных предприятиях с применением экспертного метода балльной рейтин
говой оценки;
- в качестве инструментов сравнительного анализа эффективности управле
ния персоналом предложены двумерная матрица и стратегическая карта, которые
позволяют позиционировать предприятия по ключевым критериям результатив
ности выполнения основных функций системы, уровню затрат и разработанных
для их оценки показателям;
- разработана концептуальная схема системы развития руководства и кадровой службы как направления повышения конкурентоспособности организации на основе выделения основных групп сотрудников, распределения между ними ключевых функций управления персоналом и определения направлений их подготовки и повышения квалификации.
Практическая значимость исследования. Результаты диссертационного исследования могут найти практическое применение в качестве теоретической базы для дальнейшего исследования проблем, связанных с обеспечением конкурентоспособности организаций на основе эффективного управления персоналом; при решении практических задач в процессе определения стратегии и политики организаций в сфере управления персоналом.
Предложенные в диссертационной работе инструменты анализа эффективности управления персоналом как фактора конкурентоспособности организации позволяют оперативно выявлять существующие и потенциальные проблемы в практике управления предприятиями и на основании полученных результатов принимать обоснованные управленческие решения и планировать работу с кадрами.
Положения диссертационного исследования могут быть использованы в учебном процессе экономических вузов при чтении лекций и проведении практических занятий по курсам «Экономика фирмы», «Стратегическое планирование», «Управление персоналом», а также спецкурсов по исследуемой проблематике.
Апробация результатов исследования. Полученные в ходе диссертационного исследования положения, результаты, выводы и предложения приняты для внедрения в практику деятельности таких предприятий авиастроения как ОАО «Казанское авиационное производственное обьединение им. СП. Горбунова», ОАО «Опытно-конструкторское бюро «Сокол» и ЗАО «Эникс», о чем подписаны соответствующие акты.
Основные положения и результаты исследования были доложены, обсуждены и получили одобрение на научно-практических конференциях, в том числе на IV Международной научно-практической конференции «Основные направления
повышения эффективности экономики, управления и качества подготовки специалистов» (г. Пенза, 2006г.); Межвузовских научно-практических конференциях «Социально-экономические проблемы становления и развития рыночной экономики» (г. Казань, 2006, 2008 годы); Всероссийской научно-практической конференции «Развитие инновационного потенциала отечественных предприятий» (г. Чебоксары, 2007г.); Всероссийской научно-практической конференции «Особенности российского менеджмента» (г. Казань, 2007 г.).
Основные научные результаты диссертационной работы опубликованы в восьми авторских печатных работах, в межвузовских сборниках, научных статьях в журналах общим объемом 1,96 печ.л., в том числе две статьи объемом 0,96 печ.л. - в ведущих рецензируемых изданиях ВАК.
Структура и объем диссертации. Диссертация состоит из введения, трех глав, заключения, списка использованной литературы, включающего 151 наименование, и 7 приложений. Работа изложена на 184 страницах машинописного текста. Графический и цифровой материал представлен в 46 таблицах, 10 рисунках, 15 формулах.
Моделирование транзакций на архитектурном уровне проектирования программных средств
В настоящее время транзакционная обработка информации становится одним из важнейших аспектов, определяющих корректность производимых вычислений и целостность данных, а следовательно, и характеристики качества программных средств (ПС) используемых в сложных системах обработки информации и управления. По данным Standish Group, уже в 1996 году 57% высококритичных (mission — critical) программных средств было построено с использованием технологий менеджеров транзакций [54. Область применения транзакционных систем охватывает практически все секторы рынка информационных технологий. Если до середины 80-х годов данное направление организации вычислений соотносилось, прежде всего, с системами управления базами данных (СУБД), то концу 90-х основной акцент в технологиях транзакционных вычислений переместился на организацию взаимодействия распределенных бизнес - объектов (business objects) [53], которые могут быть реализованы на различных языках программирования, функционировать в рамках неоднородной операционной среды, но, тем не менее, представлять целостную систему.
Большое количество и постоянно возрастающая сложность ПС, предусматривающих транзакционную обработку информации, требуют повышенного внимания к моделированию транзакций на протяжении всего процесса разработки ПС. Сегодня понятие транзакции не ограничивается только системами управления базами данных и мониторами/менеджерами транзакций. Уже на этапе построения модели проблемной области (ПрО), работы, выполняемые в рамках автоматизируемых бизнес — процессов, группируются в потоки бизнес транзакций, с которыми соотносятся критически важные, с точки зрения достижения требуемого уровня надежности, бизнес сущности (документы, модели и т.п.). Такие потоки транзакций определяют требования к организации и выполнению транзакционных вычислений в ПС и являются прообразами транзакций, выполняемых СУБД, менеджерами транзакций и т.д. Реализуемая в ПС модель транзакционных вычислений, по сути, определяет, будет ли ПС находиться в целостном состоянии и поддерживать требуемый уровень надежности. С учетом постоянного роста сложности и увеличения трудозатрат на создание ПС, это приводит к объективной потребности моделирования транзакций на самых ранних этапах разработки ПС, в том числе и в процессе моделирования его программной архитектуры (ПА).
В настоящее время существует множество методов описания транзакционного поведения ПС в контексте методов спецификации потоков работ [34]. Существуют методы спецификации структуры и поведения транзакций [34, 51], методы оценки характеристик обеспечения конкурентного доступа и уровня надежности транзакций [19]. В тоже время, отсутствуют средства описания модели транзакций ПС на архитектурном уровне, где кроме структуры, элементами которой являются транзакции (в дальнейшем - транзакционной структуры (ТС)), также имеются логическая, модульная, процессная, физическая структуры [47, 52]. Перечисленные структуры лишь в совокупности описывают ПА, являются взаимосвязанными и требуют согласованных методов их моделирования.
Сегодня одним из наиболее распространенных языков моделирования ПС, применяемых на практике, является язык UML (Unified Modeling Language) [49, 76], который имеет строго определенную семантику, описанную на базе 4-х уровневой метамодели языка, и является расширяемым, предоставляя средства введения новых элементов языка. Язык UML является сквозным языком моделирования для таких процессов разработки ПС и методов проектирования ПА, как:
Унифицированный Процесс Разработки Программных средств (Unified Software Development Process) [67];
Унифицированный процесс, разработанный компанией Rational (Rational Unified Process (RUP)) [68];
Архитектурный Метод Проектирования (Architecture Based Design Method) [46].
В каждом из них предусмотрено описание логической, модульной, процессной и физической структур на языке UML. В тоже время, в них не определяется не только способ представления ТС, метод ее построения и/или анализа, но и сама структура как таковая.
В основу подхода к определению ТС было положено ее первоначальное представление в виде метамодели на языке UML (рис. 4). Элементами метамодели, описываемыми в виде классов, являются:
транзакции;
работы (действия (activities)), выполняемые в рамках транзакций;
объекты, связываемые с транзакцией;
связи между транзакциями, которые классифицируются на зависимости, связи порядка выполнения и организационно - структурные связи.
Классификация ограничений целостности по способам реализации
Каждая система обладает своими средствами поддержки ограничений целостности. Различают два способа реализации:
декларативная поддержка ограничений целостности;
процедурная поддержка ограничений целостности.
Декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных (DDL -Data Definition Language) [25]. Обычно средства декларативной поддержки целостности (если они имеются в СУБД) определяют ограничения на значения доменов и атрибутов, целостность сущностей (потенциальные ключи отношений) и ссылочную целостность (целостность внешних ключей). Декларативные ограничения целостности можно использовать при создании и модификации таблиц средствами языка DDL или в виде отдельных утверждений (ASSERTION). Например, следующий оператор создает таблицу PERSON и определяет для нее некоторые ограничения целостности:
CREATE TABLE PERSON (Persjd INTEGER PRIMARY KEY, Pers_Name CHAR(30) NOT NULL, Deptjd REFERENCES DEPART(DeptJd) ON UPDATE CASCADE ON DELETE CASCADE);
После выполнения оператора для таблицы PERSON будут объявлены следующие ограничения целостности:
поле Pers_Id образует потенциальный ключ отношения;
поле Pers_Name не может содержать null-значений;
поле Dept_Id является внешней ссылкой на родительскую таблицу DEPART, причем, при изменении или удалении строки в родительской таблице каскадно должны быть внесены соответствующие изменения в дочернюю таблицу.
Процедурная поддержка ограничений целостности заключается в использовании триггеров и хранимых процедур.
Не все ограничения целостности можно реализовать декларативно. Примером такого ограничения может служить требование из примера 1, утверждающее, что поле Dept_Kol таблицы DEPART должно содержать количество сотрудников, реально числящихся в подразделении. Для реализации этого ограничения необходимо создать триггер, запускающийся при вставке, модификации и удалении записей в таблице PERSON, который корректно изменяет значение поля Dept_Kol. Например, при вставке в таблицу PERSON новой строки, триггер увеличивает на единицу значение поля Dept_Kol, а при удалении строки - уменьшает. Заметим, что при модификации записей в таблице PERSON могут потребоваться даже более сложные действия. Действительно, модификация записи в таблице PERSON может заключаться в том, что мы переводим сотрудника из одного отдела в другой, меняя значение в поле Dept_Id. При этом необходимо в старом подразделении уменьшить количество сотрудников, а в новом - увеличить.
Кроме того, необходимо защититься от неправильной модификации строк таблицы DEPART. Действительно, пользователь может попытаться модифицировать запись об отделе, введя неверное значение поля Dept_Kol. Для предотвращения подобных действий необходимо создать также триггеры, запускающиеся при вставке и модификации записей в таблице DEPART. Триггер, запускающийся при удалении записей из таблицы DEPART не нужен, т.к. уже имеется ограничение ссылочной целостности, каскадно удаляющее записи из таблицы PERSON при удалении записи из таблицы DEPART.
По сути, наличие ограничения целостности (как декларативного, так и процедурного характера) всегда приводит к созданию или использованию некоторого программного кода, реализующего это ограничение. Разница заключается в том, где такой код хранится и как он создается [25].
Если ограничение целостности реализовано в виде триггеров, то этот программный код является просто телом триггера. Если используется декларативное ограничение целостности, то возможны два подхода:
1. При декларировании (объявлении) ограничения текст ограничения хранится в виде некоторого объекта СУБД, а для реализации ограничения используются встроенные в СУБД функции, и тогда этот код представляет собой внутренние функции ядра СУБД.
2. При декларировании ограничения СУБД автоматически генерирует триггеры, выполняющие необходимые действия по проверке ограничений.
Примером использования функций ядра для проверки декларативных ограничений является автоматическая проверка уникальности индексов, соответствующих потенциальным ключам отношений. В качестве другого примера можно привести поддержку ссылочной целостности средствами СУБД ORACLE. Ограничение ссылочной целостности является в ORACLE объектом базы данных, хранящим формулировку этого ограничения. Проверка ограничения выполняется функциями ядра ORACLE со ссылкой на этот объект. Ограничение целостности в этом случае нельзя модифицировать иначе, как используя декларативные операторы создания и модификации ограничений.
Примером генерации новых триггеров для реализации декларативных ограничений, может служить система Visual FoxPro. Триггеры, автоматически сгенерированные Visual FoxPro при объявлении ограничений ссылочной целостности можно посмотреть и даже внести в них изменения, так чтобы они могли выполнять некоторые дополнительные действия.
Если система не поддерживает ни декларативную поддержку ссылочной целостности, ни триггеры, то программный код, следящий за корректностью базы данных, приходится размещать в пользовательском приложении (такой ведь код все равно необходим!). Это сильно затрудняет разработку программ и не защищает от попыток пользователей напрямую внести некорректные данные в базу данных [45]. Особенно сложно становится в том случае, когда имеется сложная база данных и множество различных приложений, работающих с ней (например, к базе данных торгового предприятия может обращаться несколько приложений, таких как "Складской учет", "Прием заказов", "Главный бухгалтер" и т.п.). Каждое из таких приложений должно содержать один и тот же код, отвечающий за поддержание целостности базы данных. Особенно весело становится разработчику, когда необходимо внести изменения в логику поддержания целостности. Приходится заменять во всех программах одни и те же места, перекомпилировать все приложения и распространять по рабочим местам новые версии.
MVSG-планировщики
Последний рассматриваемый класс многоверсионных алгоритмов планирования обобщает широко известную моноверсионную технику Serialization Graph Testing (SGT). Основанные на SGT планировщики поддерживают граф конфликтов, в котором вершины и дуги добавляются динамически в зависимости от операций, которые получает на вход планировщик. При этом конфликтующими называются любые две операции над одним и тем же элементом данных, если хотя бы одна из них является операцией модификации. Другими словами, для конфликтующих операций важен порядок их выполнения. Таким образом, планирование конфликтующих операций накладывает ограничение на порядок сериализации транзакций. Эти ограничения и выражает граф конфликтов. Рассмотрим, как происходит планирование очередной операции pi(x) с помощью SGT-планировщика.
1. Если это первая операция транзакции //, поступившая планировщику, то создается новый узел в графе сериализации.
2. В граф добавляются дуги вида (tj, ti) для каждой запланированной ранее операции qj(x) (і _j), конфликтующей с pi(x). Возможны два варианта: а) результирующий граф содержит циклы — транзакция // откатывается; Ь) полученный граф ацикличен — действие добавляется к списку запланированных.
Что означает, что в графе появился цикл? Полученное расписание больше не будет сериализуемым. Это утверждение становится очевидным, если заметить, что дуга из // в tj фиксирует порядок следования транзакций в эквивалентном последовательном расписании. Результат нашего расписания должен быть таким же, как и последовательное выполнения сначала всех действий транзакции ti, а затем tj. Поскольку транзакция не может следовать раньше самой себя, граф с циклами не будет иметь соответствующего последовательного расписания.
Теперь мы можем перейти к более общему многоверсионному случаю и будем рассматривать многоверсионный граф конфликтов MVSG. Покажем, что ограничения, которые мы накладывали на граф сериализации в моноверсионним случае, недостаточны. Рассмотрим следующий пример:
Этот граф ацикличен. Однако для S не существует эквивалентного моноверсионного последовательного расписания. Действительно, поскольку tS читает версию х, записанную tl (r3[xlj), то t2, которая тоже пишет элемент х (w2fx2J), должна следовать в моноверсионном последовательном расписании либо после (3, либо перед tl. Но первый вариант невозможен из-за шага r3[z2J, а второй — из-за r2[yl]. Таким образом, многоверсионный планировщик должен также специальным способом проверять согласованность шагов, создающих новые версии. Для этого в граф добавляются дополнительные дуги, которые фиксируют «позиции записи» в соответствующем последовательном расписании.
Опишем общую схему работы предлагаемого MVSG-планировщика. Когда очередной шаг pi(x) поступает планировщику, он предпринимает следующие действия.
1. Если это первое действие транзакции ti, поступившее планировщику, то соответствующий узел добавляется к графу конфликтов.
2. Если это шаг гі(х), то выбирается подходящая версия xj, и в граф добавляется дуга (tj, ti) (поскольку, согласно нашим обозначениям, версию xj записала транзакция tj). Для всех других к, таких что wk(xk) является шагом tk, в граф добавляется либо дуга (tk, tj), либо дуга (ti, tk). В этом и состоит выбор «позиции записи».
3. Если это шаг wi(xi), то для каждой транзакции tk, которая прочитала, скажем, версию xj, нужно добавить либо дугу (ti, tj), либо дугу (tk, ti). То есть ti должна следовать либо до tj, либо после tk в соответствующем последовательном расписании.
4. Если граф остается ацикличным, то изменения в графе фиксируются, а действие добавляется к списку запланированных. Иначе транзакция откатывается.
Следует обратить внимание на выборе подходящей версии для чтения. Версия xj не является подходящей в двух случаях: во-первых, если существует путь из // в tj (tj следует после // по порядку сериализации); во вторых, если существует путь (tj, tk, ti), где tk пишет х — wk(xk). В этих случаях отсутствует способ выбора места для wk(xk) в эквивалентном моноверсионном последовательном расписании.
Как уже отмечалось, выбор для добавления в граф дуги — «(ti, tj) либо (tk, ti)», по сути, является выбором «позиции записи». Выбирается порядок-следования других транзакций, которые пишут х. В некоторых случаях будет иметься несколько альтернативных путей, а в некоторых уже существующие дуги не оставят возможности выбора.
В рассмотренном примере в графе образуется цикл на последнем шаге — w2[x2]. Выполняя этот шаг, мы должны будем, согласно правилу 3 алгоритма, добавить одну из дуг — (t2, tl) или (t3, t2). Обе ведут к образованию цикла.
Программная реализация системы моделыю-алгоритмической поддержки анализа транзакционной надежности программных средств
В качестве среды для разработки системы модельно-алгоритмической поддержки анализа транзакционной надежности программных средств была выбрана современная система Microsoft Business Solutions-Axapta. Microsoft Axapta - это автоматизированная система управления предприятием, обеспечивающая руководство компании и ее сотрудников максимально полной информацией, необходимой для успешного ведения бизнеса. Microsoft Axapta - это масштабируемая система для средних и крупных предприятий, корпораций и холдинговых структур, предоставляющая единое интегрированное решение, направленное на повышение управляемости бизнеса и роста прибыли предприятия. Microsoft Axapta является мощным инструментом, реализующим возможности и для оперативной работы предприятия, и для формирования долговременной стратегии, что позволяет заложить фундамент для успешной деятельности. Уникальность системы Microsoft Axapta в ее современной передовой технологии, обеспечивающей единое информационное пространство предприятия. Мощные функциональные возможности, оптимальное соотношение цена/качество, легкость в освоении, удобство в использовании и настройке системы, позволяют построить на предприятии информационную систему управления, которая соответствует его отраслевым и индивидуальным особенностям.
Факты в пользу выбора системы Microsoft-Axapta:
- Система Microsoft-Axapta написана на объектно-ориентированном языке Х++, схожий по синтаксису с C++ и Java;
- Система Microsoft-Axapta имеет открытый код доступный для модификаций;
- Система Microsoft-Axapta имеет встроенные средства визуального программирования;
- Система Microsoft-Axapta имеет около 2000 классов, реализующих бизнес-логику системы;
- Система Microsoft-Axapta имеет встроенный профайлер кода с детализацией времени выполнения до строки исходного кода;
- Система Microsoft-Axapta имеет встроенные средства мониторинга и трассировки ошибок;
- В системе Microsoft-Axapta имеется возможность организации распределенных вычислений.
Система модельно-алгоритмической поддержки анализа транзакционнои надежности программных средств реализована в виде модуля «Модели надежности» ERP-системы Microsoft-Axapta.
Логика системы модельно-алгоритмической поддержки анализа транзакционнои надежности программных средств написана на языке Х++ в виде иерархии классов и интегрирована в логику Microft-Axapta [14, 15]. Конечные и промежуточные результаты сохраняются в базе данных для возможности их дальнейшего анализа. Модуль построен в виде набора диалоговых окон и отчетов для интерактивного взаимодействия с пользователем [11, 12, 13]. Пользователь может создавать новые параметры для модели, корректировать существующие параметры, делать вычисления параметров надежности, сохранять результаты и строить отчеты по уже проведенным и сохраненным расчетам. После открытия модуля пользователь может настроить основные справочники модуля: параметры описания классов, описания транзакций. После выбора модели оценки транзакционнои надежности пользователь должен заполнить справочники об используемых классах или транзакциях, входящих в расчеты, а также операционные профили по результатам тестирования. Расчеты выполняются в автоматизированном режиме и управляются пользователем. Введенные и расчетные данные сохраняются в базе данных. Результаты прошлых расчетов могут быть распечатаны с помощью отчетов.
В качестве примера рассмотрим модуль «Сводное планирование» системы Microsoft-Axapta, внедрённой в ООО «Торговая компания ФОРС».
В результате тестирования было выявлено 4 транзакции, которые суммарно используют 18 классов с максимальным количеством диапазонов входных значений 4.