УДК 004.652
В. А. Охотников Научный руководитель - Е. П. Моргунов Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск
КОНСТРУКТОР СЛУЖБ SQL SERVER INTEGRATION SERVICES
Рассматривается использование конструктора служб SQL Server Integration Services для переноса информации из различных источников в БД. Описываются результаты применения указанной технологии.
При разработке каждой системы всегда встает вопрос переноса существующих данных в новую базу, хорошо, если данные можно выгрузить стандартными средствами, но бывает так, что данные имеют не распространённые и малоизвестные форматы (например *.031, *.OC1), или плохо структурированы, тогда задача переноса данных многократно усложняется.
Цель данной работы состояла в выборе технологии позволяющей осуществить эффективный перенос данных из произвольного источника в БД. Сравнительный обзор существующих технологий позволил сделать выбор в пользу SSIS.
Конструктор служб SQL Server Integration Services это графическое средство, с помощью которого можно создавать пакеты служб Integration Services и управлять ими. Задачу переноса данных в SSIS можно разделить на несколько этапов: получение информации об источнике, получение данных из источника, структурирование полученных данных, передача данных в приемник (обычно в роли «приемника» выступает БД). Так же отдельным этапом можно выделить автоматизацию переноса данных средствами СУБД. Конструктор служб позволяет реализовывать обычные логические условия для пакетов, а так же обработать ошибки, возникающие при выполнении пакета (например, ошибки доступа к файлам). Одним из основных элементов конструктора служб SSIS являются скрипты, в них реализуется сложная логика обработки и структурирования данных, благодаря тому, что в скриптах можно использовать ООП язык программирования - C#, позволяющий описать сколь угодно сложные процессы обработки данных. Приемником
может являться так же скрипт передающий данные согласно написанному в нем коду, или же можно использовать любой из распространённых Database Connectors для подключения к различным базам данных и передачи в них информации соответственно логике составленной в SSIS. Т. к. зачастую переход на новую систему осуществляется не моментально, из-за необходимости тестирования и актуализации информации, то старая система может работать некоторый период времени параллельно с новой. Это ставит задачу автоматического переноса и обновления данных из старой системы в новую. В MSSQL для этого используют SQL Server Agent, он позволяет автоматизировать процесс обновления данных в пакетах SSIS, а так же отслеживать статус выполнения и тексты ошибок в пакетах при помощи Job Activity Monitor это является очень важным моментом, т. к. отладка кода скриптовых компонентов не предусмотрена.
Описанная технология применена автором для реализации переноса данных из закрытой автоматизированной системы, в СУБД MSSQL. Источником данных являлись сложно структурированные файлы форматов *.031, *.OC1, *.RST. В роли приемника данных выступала специально спроектированная и созданная база данных. Так же при помощи SQL Server Agent была реализована автоматическая актуализация информации. В результате выбранная технология доказала свою эффективность и позволила реализовать поставленные задачи.
© Охотников В. А., 2012
УДК 004.652
А. В. Проскурин, Д. В. Бузаев Научный руководитель - А. Г. Зотин Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск
ПРОБЛЕМЫ ПРОЕКТИРОВАНИЯ И РАЗРАБОТКИ БАЗЫ ЗНАНИЙ
Рассмотрены проблемы, которые могут возникнуть при проектировании и разработке базы знаний. Предложен ряд факторов, которые помогают развитию баз знаний.
Технология экспертных систем является одним из направлений области исследования, которая получила наименование искусственного интеллекта. Исследования в этой области сконцентрированы на разработке и внедрении компьютерных программ, способных
воспроизводить области деятельности человека, которые требуют мышления, определенного мастерства и накопленного опыта. К ним относятся задачи принятия решений, распознавания образов и понимания человеческого языка. Эта технология уже успешно
Секция «Информационные системы и технологии»
применяется в некоторых областях техники и жизни общества - органической химии, поиске полезных ископаемых, медицинской диагностике.
Основная проблема, возникающая в ходе разработки данного вида систем - приобретения знаний. Эта проблема возникает при «передаче» знаний, которыми обладают эксперты. Основные этапы, возникающие при получении знаний:
1) определение проблемной области;
2) поиск эксперта, желающего сотрудничать при решении проблемы;
3) определение предварительного подхода к решению проблемы;
4) анализ расходов и прибылей от разработки;
5) подготовка подробного плана разработки.
Большинство экспертов, успешно используя в повседневной деятельности свои обширные знания, но при этом испытывают большие затруднения при попытке сформулировать часть этих знаний в системном виде: иерархию используемых понятий, эвристики, алгоритмы, связи между ними. Для подобной формализации знаний необходим определенный систематический стиль мышления, более близкий математикам и программистам, чем, например, юристам и медикам. Кроме того, необходимы, с одной стороны, знания в области математической логики и методов представления знаний, с другой - знания возможности ЭВМ, из программного обеспечения, в частности, языков и систем программирования. Для разработки базы знаний необходимо участие в ней особого рода специалистов, обладающих указанной совокупностью знаний и выполняющих функции «посредников» между экспертами в предметной области и компьютерными системами [1].
На этапе приобретения знаний могут возникнуть трудности и психологического порядка: эксперт может препятствовать передаче своих знаний - базе знаний, полагая, что это уменьшит его статус как специалиста и создаст предпосылки для замены его «машиной». Однако эти опасения лишены оснований: базы знаний хорошо работают лишь в типовых ситуациях, а также помогает в случаях, когда человек находится в состоянии стресса. В наиболее сложных ситуациях, требующих нестандартных рассуждений и оценок, система не может заменить эксперта-человека. Система не может синтезировать новых эвристических правил, ее возможности определяются только теми эвристиками, что были в нее изначально заложены. Ещё одна существующая проблема - требуется разработать средства управления базой знаний, логического вывода, диалогового взаимодействия с пользователем и т. д. Объем программирования насчитывает много строк кода, а программы столь сложны и нетрадиционны, что имеет смысл, как это принято сейчас при разработке больших программ, на первом этапе создать демонстрационный прототип системы. Предварительный вариант, в котором в упрощенном виде реализованы лишь основные планируемые возможности и что будет служить для заказчика подтверждением того, что разработка базы знаний для решения данной задачи принципиально воз-
можна, а для разработчиков - основой для последующего улучшения и развития системы.
Одной из причин неудач в разработке баз знаний стала недооценка авторами объемов и роли неявных знаний. Системы, базы знаний которых создавались на основе справочников, в лучшем случае так справочниками и остались. Большинство же таких систем оказывались даже хуже справочников, так как не давали четкого ответа пользователю. Вторым аспектом оказалась модель, на которой были основаны их первые экземпляры, и лишь модель знаний, принимающая вид иерархической сети с возможностью выбора из логических узлов, может стать базой для построения экспертной системы [2].
Рассмотрим факторы, помогающие развитию систем с базами знаний:
• компании, добившиеся значительной экономии денежных средств благодаря технологии баз знаний, развивают и выстраивают ее в специальные бизнес-процессы, которые были бы просто невозможны без компьютерной экспертизы;
• разработка новых технологии создания баз знаний, является необходимым средством, которое может изменить бизнес-процесс;
• современные системы реализованы не на специализированном, а на стандартном оборудовании.
Объединение всех видов программных продуктов и их отдельных компонентов в единую систему признано экономически выгодным, так как применение баз знаний позволяет существенно сократить расходы на подготовку квалифицированного персонала, дальнейшую проверку работоспособности и надежности, разрабатываемых и исследовательских систем, а также уменьшить время проектирования и исследования [3].
Подводя итоги можно сказать что, экспертные системы возродились в виде систем с базой знаний, которые тесно переплелись с существующими бизнес-системами в последнее десятилетие. Адекватность и правильность работы системы базы знаний ложится на эксперта по знаниям. Решить данную проблему можно за счет привлечения высококвалифицированных специалистов в данной области и развитие действующего прототипа. Прототип развивается от коммерческого до масштаба предприятия [4]. В ходе общения с экспертом, пользователи узнают, как работать с системой, что позволяет избежать ошибок. При разработке, важно учитывать интеграцию с другими системами, для уменьшения времени отклика. От правильно поставленной задачи и от анализа предметной области, зависит дальнейшая работа всей системы в целом. Если задача выбрана не правильно, то нельзя четко определить подробный план, расходы и прибыль разработки данной базы знаний и сложно найти эксперта. Разработка базы знаний - очень трудоемкий процесс, который требует работы большого количества опытных специалистов.
Библиографические ссылки
1. Amy K. Karlson - Knowledge-Based Information Access / Amy K. Karlson, Ralph D. Semmel, David P.
Silberberg -The Johns Hopkins University Applied Physics Laboratory. 2007. 38 p.
2. Enrico Motta. The knowledge modeling paradigm in knowledge engineering. The Open University Walton Hall. 2003. 29 p.
3. Гаврилова Т.А., Хорошевский В.Ф. Базы знаний интеллектуальных систем. СПб: Питер, 2003г. - 384 с.: ил.
4. Тельнов Ю. Ф. Интеллектуальные информационные системы. М., 2003. 251 с.
© Проскурин А. В., Бузаев Д. В., 2012
УДК 681.3.06
Р. С. Савицкий Научный руководитель - В. В. Вдовенко Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева, Красноярск
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА СТАТИСТИЧЕСКИХ ИСПЫТАНИЙ ДЛЯ РАСЧЕТА НАДЕЖНОСТИ ТЕХНИЧЕСКИХ СИСТЕМ
Обосновывается выбор метода статистических испытаний для расчета надежности технических систем. Рассматривается программная реализация данного метода. Приводятся достоинства разработанного программного продукта.
Надежность - один из самых важных показателей современной техники. Техника может работать эффективно, если она является надежной. Чтобы создать техническую систему, удовлетворяющую требованиям надежности, необходимо доказать, что показатели надежности спроектированной системы соответствуют заданным. Возникает проблема выявления оценки показателей надежности. Существуют математические методы анализа надежности систем. Рассчитать надежность системы - значит определить ее показатели надежности, используя данные составляющих элементов.
Расчет надежности можно провести используя следующие методы:
• метод, основанный на применении классических теорем теории вероятности;
• логико-вероятностные методы;
• топологические методы;
• методы, основанные на теории марковских процессов;
• методы интегральных уравнений;
• метод статистических испытаний.
Расчет надежности системы является трудоемким процессом и требует большого количества вычислений, поэтому существует необходимость автоматизировать данный процесс. Для решения этой задачи выберем метод статистических испытаний, он не требует всевозможных допущений и является универсальным [1].
Для реализации метода статистических испытаний в данном случае необходимо выполнить следующее. Провести серию из N независимых испытаний. Каждое испытание состоит в разыгрывании случайных величин, соответствующих времени безотказной работы системы с заданным законом распределения. Рассчитать значения времени работы до отказа системы.
Повторяя подобное испытание N раз, будет получена выборка объема N, которая соответствует времени до отказа заданной системы. Эта совокупность чисел является первичным материалом для последующей статистической обработки. Обозначим ее как
{xi}i=\,N- Из этой совокупности находим максимальное значение Tmax. Промежуток [0;Tmax] разбиваем на k равных частей: 0 = t0 < t1 < ... < tk-1 < tk = Tmax. Обозначим через Wi количество элементов выборки {xi}i=IN меньших ti, i = l,2,...,k. Найдем эмпирическую вероятность безотказной работы системы по формуле p(ti) = l - wi / N. Полученные данные сводим в таблицу.
Таблица позволяет построить график вероятности безотказной работы системы. Также приближенно вычисляем среднее время безотказной работы системы с помощью формулы Симпсона. Проведем расчеты при различных объемах выборочной совокупности и оценим сходимость полученных показателей надежности к истинным значениям. Это позволяет получить количественную оценку метода статистических испытаний в расчетах надежности технических систем.
Современное программное обеспечение для математических вычислений (например, MathCad, Matlab и др.) сложно адаптировать под расчет надежности сложных систем. Поэтому необходимо разработать принципиально новый программный продукт позволяющий рассчитывать надежность технических систем на основе метода статистических испытаний. Такая программа должна соответствовать следующим требованиям:
1. Программа должна содержать основные законы распределения времени безотказной работы элементов системы.
2. В программе должен быть реализован алгоритм «разыгрывания» случайных величин в зависимости от закона распределения и размерностей системы.
3. Программа должна вычислять показатели надежности системы методом статистических испытаний.
4. В программе должен быть реализован логичный и понятный интерфейс пользователя, ориентированный на использование как мыши, так и клавиатуры.
На текущем этапе разработана библиотека классов, которая содержит в себе все необходимые поля и