Содержание к диссертации
Введение
Глава 1 Обзор существующих инструментальных средств интеграции прикладных информационных систем 12
1.1 Прикладные информационные системы: основные методы создания 12
1.2 Обеспечение основных показателей надежности и качества прикладных информационных систем 21
1.3 Разработка платформонезависимых программных приложений и их виртуализация 31
1.4 Федеративный подход к интеграции прикладных информационных систем 39
1.5 Инструментальные средства виртуализации и интеграции на основе XML-технологий 45
Выводы по Главе 1 55
Глава 2 Концепция унификации программных интерфейсов как инструментальное средство интеграции прикладных информационных систем 57
2.1 Модифицированные модульные решения 57
2.2 Распределенная архитектура прикладных информационных систем 59
2.3 Методы обеспечения модульности 66
2.4 Модель интеграции прикладных информационных систем 74
2.5 Определение количества программных модулей для интеграции прикладных информационных систем 82
Выводы по Главе 2 86
Глава 3 Применение модели интеграции на основе модульных программных решений и оценка результатов исследования 88
3.1 Модульная архитектура комплексной прикладной информационной системы 88
3.2 Структура интеграции прикладной информационной системы на основе модульных программных решений 93
3.3 Интеграция прикладной информационной системы в «облачной» среде 101
3.4 Комплексная модель оценки эффективности реализации инструментальных средств на основе модульных программных решений 108
3.5 Модель оценки временных затрат и эффективности реализации модульных программных решений 113
Выводы по Главе 3 119
Заключение 121
Список литературы 123
Приложение А 138
Приложение В 141
- Обеспечение основных показателей надежности и качества прикладных информационных систем
- Распределенная архитектура прикладных информационных систем
- Модульная архитектура комплексной прикладной информационной системы
- Комплексная модель оценки эффективности реализации инструментальных средств на основе модульных программных решений
Обеспечение основных показателей надежности и качества прикладных информационных систем
Одной из наиболее острых проблем современных прикладных информационных систем, разрабатываемых и эксплуатируемых в различных отраслях экономики РФ, включая машиностроение, является их разрозненность и сложность взаимодействия друг с другом [8, 3, 88]. Это существенно снижает эффективность функционирования всего программного комплекса в целом, поскольку требует выполнения многочисленных рутинных операций. Зачастую большую часть данных из одной информационной системы в другую приходится переносить вручную, что неизбежно приводит к ошибкам и занимает много времени у пользователя. Отсутствие открытых программных интерфейсов в существующих распределённых информационных системах сдерживает переход на новые, более совершенные программные решения в сфере компьютерных технологий. Трудность такого рода миграции заключается в необходимости долгосрочной настройки новой информационной системы под существующую инфраструктуру учреждения, а также полный, в большинстве случаев ручной, перенос всех имеющихся в старой системе данных в новую информационную систему [56].
Перечисленные проблемы в первую очередь связаны с подходом к архитектуре информационных систем, закладываемой при их разработке [3, 88]. Большинство таких систем строятся как монолитный программный комплекс, при этом совместимость с другими программными средствами не планируется. Безусловно, такой подход долгое время оставался выгоден для поставщиков программного обеспечения, поскольку буквально «привязывал» к себе конечных потребителей, не давая возможности объединять программные решения от различных производителей. В то время как спектр задач, решаемых программными средствами был достаточно узок, проблем подобного рода не возникало. Но на сегодняшний день потребности в программном обеспечении настолько широки, что многие поставщики просто не в состоянии удовлетворить их своими силами.
В настоящее время, одной из основных направлений в развитии программного обеспечения стал переход от монолитного построения информационных систем к их модульному построению [88]. Так, в частности, модульность позволяет облегчить масштабирование программного обеспечения, предоставив возможность пользоваться функциями информационной системы, в то время как некоторые из ее модулей еще находятся в процессе разработки [88].
Проблема надежности программного обеспечения имеет в настоящее время огромную важность с возникновением сложных многофункциональных информационных систем, разнообразного аппаратного оборудования, программного обеспечения и использованием вычислительных машин в качестве средства управления жизненно важными и ответственными функциями в реальном масштабе времени [3]. Ошибки, не выявленные в процессе отладки и опытной эксплуатации, могут явиться причиной отказов информационной системы, последствия которых могут оказаться катастрофическими, и, в то же время, масштабы и сложность систем настолько возросли, что процесс отладки программ становится все более трудоемким и затратным в финансовом выражении [56].
Исследование задач надежности программно-аппаратного обеспечения, начались намного раньше изучений, связанных с надежностью программного обеспечения [24]. В результате исследований установлено, что некоторые методы теории надежности оказываются весьма эффективными в процессе управления, а ошибки обладают иными свойствами [24, 31, 53, 75, 51]. Так, элемент аппаратного обеспечения не срабатывает, в случае отклонения его характеристик от расчетных значений или возникновения отказа из-за отклонения характеристик за установленные допустимые интервалы, или полностью элемент отказывает. Блок программного обеспечения, то он физически не выходит из строя, а программное обеспечение просто не выдает требуемого результата.
В случае применения в системе двух дублирующих друг друга программных элементов, можно повысить надежность аппаратного оборудования. Тем не менее, применение дублирующих программных модулей не повлечет повышение надежности программного обеспечения, так как в обоих модулях одинаковые ошибки одновременно будут выявлены [3]. Существует важное отличие между аппаратным оборудованием и программным обеспечением с позиции зависимости надежности от процесса испытаний. Поскольку свойства отдельных модулей программных систем никогда не бывают полностью известны, отсутствует возможность проверки программных средств при любых ожидаемых значениях входов, то невозможно точно прогнозировать ошибки системы. В силу того, что для программного обеспечения свойственна неопределенность, то возникновение ошибки будет носить случайный характер [88].
Для прогнозирования надежности используемого программного обеспечения применимы различные модели надежности (рис. 6.). Аналитические модели позволяют оценить количественные показатели надежности, исходя из данных о динамике системы в ходе проведения тестов. Эмпирические модели основываются на анализе структурных особенностей систем. Рассматривается зависимость показателей надежностей от числа межкомпонентных связей, количества циклов, отношения числа прямолинейных участков системы к количеству точек ветвления. Однако эмпирические модели не дают конечных результатов показателей надежности, зато позволяют выявить взаимосвязь между сложностью программной системы и ее надежностью.
Поскольку в статических моделях надежности программных систем появление отказов не связано со временем, а учитывается только взаимосвязь количества ошибок от числа тестовых прогонов (по области ошибок) или зависимость количества ошибок от характеристик входных данных (по области данных), то наиболее целесообразно применять основные динамические модели: Шумана, Джелинского-Моранды и Шика-Волвертона [8, 3].
Модель Джелинского-Моранды, как и модель Шумана, основана на гипотезе об экспоненциальном распределении времени безошибочной работы программного обеспечения или модулей программ, модель Шика-Волвертона основана на гипотезе о том, что частота появления ошибок пропорциональна числу остаточных ошибок и времени отладки программы [3, 88].
Проанализировав вышеперечисленные модели для оценки надежности программных систем, можно заключить следующее:
1. Модель Джелинского-Моранды и модель Шика-Волвертона устойчиво дают завышенные оценки числа остаточных ошибок, поскольку результаты прогнозирования при помощи этих моделей являются консервативными или пессимистическими;
2. Для небольших программных проектов или коротких периодов отладки программного обеспечения модели Джелинского-Моранды и Шика-Волвертона дают достаточно точный прогноз числа остаточных ошибок;
3. Из всех рассмотренных моделей наилучшие прогнозы остаточных ошибок для крупномасштабных разработок программного обеспечения или проектов с продолжительным периодом отладки дает модель Шика-Волвертона. Моделирование является лишь одним аспектом обеспечения надежности программного обеспечения и имеет целью прогнозирование числа ошибок, остающихся в системе, на основе использования статистической информации.
Наилучший способ получить надежное программное обеспечение и программные модули свести к минимуму число ошибок и их последствий в ходе разработки комплекса программ и модулей [88].
В настоящее время существуют следующие способы разработки программного обеспечения, позволяющие повысить надежность, восприимчивость и удобство обслуживания программных систем. Это -программирование с применением нисходящего метода разработки и разработка программного обеспечения с использованием модульного конструирования [56].
Классическим способом разработки больших программных систем является движение снизу-вверх, при котором интеграция разработанных модулей или подсистем в систему выполняется последовательно по уровням и поручается самому квалифицированному из коллектива программистов [8].
Однако более надежное программное обеспечение позволяет получить «нисходящее» программирование. Вначале составляется основная часть программы с учетом подсистем следующего уровня, далее эти подсистемы разрабатываются аналогичным образом [28, 93, 104, 68, 30].
Наиболее качественные программные системы позволяет получить модульный подход, предложенный в [88]. Программный модуль можно рассматривать в виде средства, снижающего сложность разрабатываемого программного обеспечения, и как средство накопления и многократного использования формализованных знаний.
Распределенная архитектура прикладных информационных систем
Современная экономика функционирует в принципиально новых социальных и политических условиях, требующих от хозяйствующих субъектов доказывать в конкурентной борьбе свое право на существование путем насыщения рынка самыми новыми решениями и технологиями [33]. Обустройство рабочих мест, потоки работы, механизмы управления и организационные структуры уже трудно представить без применения информационных технологий в работе предприятий и организаций [33]. При этом в последнее время информационные технологии развиваются с огромной скоростью, программные решения и аппаратное обеспечение могут переживать себя не только в течение двух-трех лет, но даже - нескольких месяцев. Тем не менее, процедура создания информационной инфраструктуры предприятия и внедрения информационных систем является длительным процессом по времени, что значительно снижает шансы на достижение успеха и длительную эксплуатацию программных продуктов, потому как применяемые технологии могут устареть ещё до наступления фазы непосредственной эксплуатации [8, 88]. Поэтому ключевые концепции современного положения вещей в сфере ИТ - это скорость и инновации, что подразумевает под собой внедрение новшеств, обеспечивающих качественный рост прикладной области и высокую эффективность реализуемых бизнес-процессов [59].
Современные информационные технологии являются развитием аппаратно-программных сред и оборудования, используют современные вычислительные устройства в качестве средств управления реалистично важными и ответственными функциями в масштабе реального времени [39].
Основой данных технологий являются автоматизированные информационные системы (АИС) и прикладные автоматизированные информационные системы (ПАИС) разработка, функционирование и эксплуатация которых привели к возникновению специфических понятий, категорий, приемов и профессиональных навыков [32,33].
Различные информационные системы (ИС) фундаментально влились в жизнедеятельность современного человека и охватывают многие сферы в его повседневной деятельности. В большинстве организаций информационные системы заняли важное положение в деятельности высшего менеджмента, а в ряде организаций являются неотъемлемой основой их предпринимательской деятельности.
Обеспечение постоянной и бесперебойной работы ИС непростая задача, поскольку современные ИС состоят из большого числа аппаратных и программных компонентов, от работоспособности которых зависит работа всей ИС. Чаще всего в ИС можно выделить программные и аппаратные компоненты, а также компоненты, которые обеспечивают работу ИС (специализированное помещение, каналы и линии связи, линии энергообеспечения и т.д.). Каждая ИС требует своего особого, уникального подхода к обеспечению высокого уровня надежности и доступности. Стоит уделить внимание проблеме надежности, а также - эффективным инструментальным методам разработки различных программных компонентов прикладных информационных систем, от которых в большей степени зависит их качество, должный уровень, эффективность и надежность разрабатываемых ИС.
Вопрос надежности программных компонентов ИС приобрела в последние годы особую важность, в связи с появлением больших и сложных по своей архитектуре компьютерных систем, аппаратных систем, программного обеспечения и применением ЭВМ в качестве средства управления жизненно важными и ответственными функциями, в том числе, в реальном масштабе времени [32,33]. Решение такого рода проблем позволяет эффективно и в установленные сроки повысить конкурентоспособность предприятия.
Подробно вопрос обеспечения показателей надежности и качества прикладных информационных систем был раскрыт в главе 1. (п.1.2.). Для прогнозирования надежности используемых программных компонентов и программного обеспечения в целом могут употребляться разные модели надежности, в которых используется информация о числе ошибок, устраненных в процессе разработки программных компонентов и средств. На основе подобной информации определяются параметры модели, которая может по прошествии времени применяться для прогнозирования ожидаемого числа ошибок или некоторого другого показателя надежности [32,33].
Промышленное производство требует обеспечения высоких показателей качества, новые потребительские свойства современных машин и агрегатов в различных областях науки и техники обусловливают использование прецизионных узлов и деталей. При этом нельзя не обозначить распространение номенклатуры изделий из специальных труднообрабатываемых сплавов и материалов, механообработка которых имеет специфические особенности. В таком сочетании задач технологические процессы автоматизированных производств должны быть обеспечены оборудованием высокого класса точности и с высокой стабильностью характеристик функционирования. На эти задачи направлены перспективные работы по использованию современных инструментальных средств информационных технологий, а собственно применение ПАИС, обеспечивающих диагностику, идентификацию состояния и оптимизацию режимов функционирования, в том числе на основе методов искусственного интеллекта [32,33,88].
Если в реализации конкретной задачи недопустимо нахождение ряда программных задач в режиме ожидания, в таком случае используется распределенная схема обработки данных и функционирования самой системы. В таком случае совокупная величина действующих программных компонент системы может быть организована как совокупность контейнеров сообщений и хранилища данных. Контейнер представляет собою информационную подсистему для хранения сообщения или данных, которая (информационная подсистема) может предоставлять их другой компоненте в процессе работы системы. Такое сообщение или данные, переданные какому-либо контейнеру, не будут использовать потенциальные возможности программной компоненты, что позволяет приступить к выполнению следующей задачи.
Пример такой системы, приведен на рис. 13. Системы, построенные по такому принципу, могут быть в равной степени и жесткой, и гибкой конфигурации [82].
Для обеспечения взаимодействия между программными компонентами определенных случаях не требуется реализовывать какие-либо дополнения -для этого может быть достаточно заранее фиксированных соглашений и возможностей готовых решений. Тем не менее, при определенных условиях для обеспечения программного взаимодействия может потребоваться разработка особого рода (специализированных) программных компонент. Например, при невозможности сопоставить выходные данные одной компоненты соответствующему контейнеру, необходимо реализовать модуль, приводящий данные одного типа или формата в другой. Подобную функцию, обеспечивающую взаимодействие программных компонент с контейнерами, обозначенными в архитектуре ПАИС возможно реализовать посредством программной компоненты.
Приступая к разработке ПАИС, следует иметь в виду, что она, в большинстве случаев, является сложной программной системой, в связи с чем следует предусмотреть действенные меры для ее упрощения и выделения частей - программных модулей, представляющих собой фрагмент описания бизнес-процесса, оформляемых как самостоятельное программное решение, применимое для эксплуатации в описаниях данного процесса. Как правило, модуль состоит из двух частей: интерфейсной и части реализации. В связи с этим программный модуль может рассматриваться, с одной стороны, как своего рода средство «борьбы» со сложностью разрабатываемого программного обеспечения и дублированием функций (бизнес-процессов), а с другой - как источник накопления и многократного использования знаний предметной области [59].
В настоящее время существует два основных подхода к созданию модульной ПАИС [8, 88]. При создании прикладных автоматизированных информационных систем сравнительно небольшого объема преобладает персональный подход, при котором фактически не решаются вопросы оптимизации по затратам аппаратных ресурсов ЭВМ. Сопряженность подобного рода ПАИС с другими ИС для решения новых комплексных задач, действительно невозможны без личного участия ее программистов-разработчиков.
Модульная архитектура комплексной прикладной информационной системы
Целью построения архитектуры комплексной прикладной информационной системы является повышение эффективности взаимодействия информационных систем предприятия в рамках единой информационной среды, за счет конвергенции ранее разработанных программных модулей и реализации новых, обеспечивающих многофункциональность решения, гибкость и оперативность.
Унификация и интероперабельность ранее разработанных программных решений достигается за счет применения адаптеров, новых модулей - за счет применения унифицированного модульного подхода при реализации функционала [46, 47, 55].
Для повышения надежности и отказоустойчивости информационной системы применено резервирование базы данных методом асинхронной репликации, посредством которой обновление реплики распространяется на резервную базу данных спустя некоторое время, что значительно снижает нагрузку при выполнении всех транзакций.
Максимальная портируемость компонентов системы достигается за счет применения языков и фреймворков, таких как C++, Qt и .NET для разработки новых модулей информационной системы и соответствующих адаптеров для ранее разработанных систем и приложений. Исходя из организационной и информационной структуры предприятия, доминирующей операционной системой является ОС Windows архитектур х32 и х64, поэтому допускается реализация не кроссплатформенных решений, входящих в состав информационной системы.
Однако следование принципу кроссплатформенного подхода при разработке компонентов ИС дает определенные преимущества. Например, обеспечивается возможность разработки модулей независимыми разработчиками для разнотипных систем и архитектур, что уменьшает время разработки всей системы в целом. Такой подход позволяет производить легкую модификацию системы и наращивание ее функционала. Вероятность распространения ошибок сильно уменьшается и локализуется в независимой компоненте системы, так как операции, структуры данных и функции локализованы внутри модулей системы и скрыты от ее частей.
Исходная архитектура прикладной информационной системы представлена на рис. 21. ИС состоит из четырех разрозненных информационных систем, обеспечивающих решение различных задач.
Для повышения эффективности кроссплатформенной разработки модулей такой ИС, обеспечения интероперабельности модулей и решения вопросов совместимости вычислительных, телекоммуникационных и информационных устройств необходимо свести архитектуру ИС к модульной путем конвергенции разрозненных систем через унифицированные интерфейсы взаимодействия.
Результирующая комплексная модульная архитектура системы приведена на рис. 22. и является необходимой и достаточной для реализации функционала системы и возможности безболезненного интегрирования новых решений в существующий программный комплекс.
Для перехода к модульной архитектуре информационной системы необходимо реализовать три дополнительных модуля (программных адаптера) для возможности сопоставления выходных данных каждой модульной компоненты соответствующему контейнеру.
Итоговая архитектура реализации информационной системы приведена нарис. 23.
Для сопоставления выходных данных «БД BVKv контейнеру резервируемой базы данных SQL был реализован кроссплатформенный интерактивный адаптер на языке ANSI С с помощыо библиотеки Qt. Данный модуль представляет собой класс Ттг, включающий в себя необходимый функционал, позволяющий сопоставить выходные данные БД с контейнером резервируемой базы данных SQL.
Структура системы состоит из класса сТтг, включающего в себя все необходимые функции функционала.
Базовый класс включает в себя функции-члены класса:
void SyncQ - основная функция класса для реализации функционала модуля;
void aTimer(int msec, char param[], int pcol) - функция-таймер для возможности периодического старта модуля через заданный интервал времени;
bool dbConnect(QString type, QString connectstring) — функция реализующая соединение с любым типом type из доступных баз данных;
bool InitQ - функция инициализации начальных значений модуля и проверки наличия библиотек для возможности соединения с тем или иным типом БД; void ExportMRQ, void ExportGPQ, void ExportKLQ, void ExportSIQ, void ExportlMT(), void ExportlSQ и void Export VM() - функции реализации сопоставления данных БД с контейнером базы данных SQL.
Представленный кроссплатформенный модуль не имеет графического интерфейса пользователя, а начальные значения, необходимые для его работы задаются в качестве параметров запуска основного исполняемого файла.
В качестве иллюстративного примера, процесс сопоставления информации и окно хода работы адаптера представлены на рис. 24.
Поскольку модуль реализован с помощью кроссплатформенной библиотеки Qt, его использование возможно на различных программно-аппаратных платформах, которые поддерживают фреймворк Qt.
Для визуализации информации, получаемой в ходе процесса интеграции, был реализован кроссплатформенный модуль, на языке ANSI C/C++ с помощью средств разработки и библиотеки Qt (рис. 25).
Модуль отображает информацию о вхождении детали в сборочную единицу и технологического маршрута обработки сборочной единицы в процессе производства или ремонта изделия в условиях авиаремонтного предприятия.
Комплексная модель оценки эффективности реализации инструментальных средств на основе модульных программных решений
В настоящее время вопросы, связанные с оценкой эффективности внедрения программного обеспечения и прикладных информационных систем с экономической точки зрения весьма актуальны [33, 36, 46]. Критерием эффективности в данном случае принято считать не числовые, а качественные показатели в виде тенденции, к примеру, сведение к минимуму затрат. Такая оценка эффективности построена на соотношении результатов и затрат. В процессе информатизации предприятия необходимо проведение сопоставления технико-экономических расчетов (технико-экономическое обоснование). Такое сопоставление, обеспечивающее равенство достигаемого положительного результата от внедрения, отличается единовременными и эксплуатационными затратами. В этом случае возможна оценка такого сопоставления вариантов информатизации по совокупной стоимости владения ТСО {Total Cost of Ownership) [80]. Критерием выбора в этом случае является минимизация {ТСО-»min ) либо выбор методом анализа иерархий [83].
Наиболее простым методом определения ТСО является определение затрат на приобретение, внедрение и эксплуатацию прикладной ИС. Данная проблема сокращения совокупной стоимости владения прикладной информационной системой сейчас является актуальной для российских ИТ-предприятий и специалистов в ИТ-отрасли [53, 78, 90].
ТСО изначально являлось инструментом для расчета стоимости владения компьютером на И шґе/-платформе [48]. Благодаря усилиям Gartner Group и Interpose данная методика явилась главным инструментальным средством для определения ТСО и в иных областях информационных технологий. В методике, предложенной Gartner Group, учитываются как фиксированные (капитальные), так и текущие затраты. Разделение таких затрат приходится на временную шкалу: на этапе проектирования прикладной ИС осуществляются капитальные затраты, а на этапе ее последующей эксплуатации - текущие (эксплуатационные) затраты. По данным аналитических компаний, основные факторы, влияющие на итоговую ТСО, на 75% обусловлены проблемами конечного пользователя [48].
Описание данной модели ТСО не претендует на полноту, а показывает лишь общие затраты предприятия и позволяет определить процедуры, минимизирующие ТСО. Применение данного подхода на предприятии сопровождается спецификой его деятельности.
Затраты на обучение персонала рассчитываются как произведение стоимости академического часа, количества обучаемых и количества часов обучения
В данной модели наибольший удельный вес имеют затраты на технические и программные средства, а также проектирование. Все компоненты капитальных затрат определяются исходя из сметы или заработной платы сотрудника, осуществляющего определенный вид деятельности, например, формирование информационной базы.
Эксплуатационные затраты С определяются из соотношения
Расходы на функционирование программы и расходы на эксплуатационные принадлежности равны нулю: М=0, Снакл. расх. =0. Такое положение обусловлено тем, что в данном исследовании рассматривается процесс интеграции ИС, а не человеко-машинное взаимодействие и внедрение ИС не вызвало экономию сопутствующих канцелярских расходов.
Компоненту КПР затрат на проектирование ИС стоит оценить исходя из модели СОСОМО II, разработанной Барри Боэмом (Barry Boehm) [1, 107, 109, ПО]. В рамках данной модели оценки затрат на проектирование прикладной ИС (в человеко-месяцах) и времени, необходимого для его выполнения (в месяцах), определяются, исходя из соотношений (23) и (26) соответственно.
Совместное применение методов совокупной стоимости владения программным продуктом (ТСО) и времени реализации прикладной информационной системы (СОСОМО II) обусловили разработку комплексной модели оценки эффективности внедрения инструментальных средств в виде модульных программных решений, позволяющей увеличить точность и достоверность выполнения оценки, при этом обеспечить требуемое качество и надежность реализуемых прикладных информационных систем.