Сходимость указанных процедр обеспечивается выбором функций aq,Pq ^ 0 при q ^ N. Одним из вариантов может служить функция
r(q)=0,8/(1+q).
Заключение. Предложенный метод позволяет ускорить процесс достижения адекватности получаемых нечетких моделей реальным системам. Получение таких закономерностей позволяет построить базу знаний для интеллектуальной поддержки принятия решений задач классификации, диагностики, управления нелинейными статическими и динамическими объектами и системами, а также рада других задач, требующих решения систем нечетких уравнений.
Библиографический список
1. Приобретение знаний/ под ред. С. Осуги, Ю. Саки. М.: Мир, 1990.
304 с.
2. Борисов В. В., Федулов А. С. Нечеткие продукционные модели и сети. Смоленск: Изд-во ВА ВПВО ВС РФ, 2005. 240 с.
3. http://www.xpertrule.com
4. Токарев В. Л. Теория обеспечения рациональности решений. Тула: Изд-во ТулГУ, 2000. 120 с.
I. Nabrodova, V. Tokarev
Estimation of laws for the knowledge base
The linguistic model adequacy achievement method to the real system for computer support of decision-making is considered.
Получено 12.11.2009
УДК 004.457
А. В. Анцев, аспирант, (4872)35-18-87, [email protected] (Россия, Тула, ТулГУ)
ИНФОРМАЦИОННАЯ ПОДДЕРЖКА АНАЛИЗА ОДНОРОДНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРНОГО КЛАССА
Представлены метод получения списка программного обеспечения, установленного в компьютерном классе с использованием функций WinAPI для работы с реестром операционных систем семейства Microsoft Windows, и инструмент автоматизации получения списка программного обеспечения, установленного на конкретном компьютере, и представления списков программ компьютерного касса для анализа и сравнения с целью обеспечения однородности использземого программного обеспечения.
Ключевые слова: программное обеспечение, операционная система, информационная поддержка, компьютерный касс.
В настоящее время перед предприятиями различных отраслей промышленности возникла проблема контроля версий установленного про-
граммного обеспечения (ПО). Наличие множества разных версий ПО усложняет обслуживание парка компьютеров, а также может привести к нарушению электронного документооборота и другим проблемам, вызванным несовместимостью разных версий программ. С ростом количества компьютеров в организации данная проблема усиливается. Это справедливо и для учебных заведений, имеющих компьютерные классы.
Для упрощения работы системного администратора необходимо создать инструмент, позволяющий получить список ПО, установленного на каждом конкретном компьютере, а также представить списки ПО компьютерного класса в виде, удобном для их анализа и сравнения между собой.
В операционных системах фирмы "Microsoft" есть центральное хранилище всей служебной информации - реестр [1]. Среди прочего в нем находится и список всех программ, установленных на компьютере. Он располагается в ветке системного реестра
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Win-
dows\CurrentVersion\Uninstall". При установке каждая программа создает в данной ветке подраздел, в котором хранит необходимую информацию для ее корректного удаления. В данном подразделе обычно (но не обязательно) присутствуют два ключа реестра строкового типа:
1) DisplayName - ключ реестра строкового типа, содержащий название установленной программы;
2) DisplayVersion - ключ реестра строкового типа, содержащий версию установленного программного продукта.
Одним из самых простых способов просмотреть перечень установленного ПО является использование стандартной программы "Установка и удаление программ". Однако у данного программного средства есть ряд ограничений:
1) отсутствует возможность для сохранения этого списка для последующего анализа;
2) нет возможности посмотреть список удаленного компьютера;
3) некоторые установленные программы и обновления в данном списке не отображаются.
Таким образом, необходимо разработать инструмент, позволяющий обойти данные ограничени.
Как видно из поставленной задачи, данный инструмент целесообразно разделить на два независимых модуля - модуль получения списка ПО, установленного на конкретном компьютере, и модуль для удобного представления списков установленных программ для анализа и сравнения.
Модуль получени списка ПО был написан на языке C с целью уп-рощени использовани WinAPI [2]. Список использованных функций и их краткое описание приведены в табл. 1.
Функции WinAPI для работы с реестром
Функция Описание
RegQuerylnfoKey Функци для получения информации о рад еле реестра
RegEnumKeyEx Функци: используются для перечисления всех под-раделов укаанного радела реестра. Приложение, вызывающее эту функцию, должно увеличивать параметр dwIndex и вызывать функцию, по к она не возвратит значение - ERROR NO MORE ITEMS
RegOpenKeyEx Функци открывает радел реестра. Если открытие произошло успешно, функци вернет ERROR SUCCESS, в противном случае вернет ненулевой код ошибки, определенный в Winerror.h
RegQueryValueEx Функци возвращает информацию о параметре раздела и значение этого параметра
RegCloseKey Функци закрывает радел реестра. Если закрытие произошло успешно, функци вернет ERROR SUCCESS, в противном случае вернет ненулевой код ошибки, определенный в Winerror.h
После запуска данный модуль открывает раздел реестра, содержащий список установленного ПО, с помощью функции RegOpenKeyEx, получает о нем необходимую информацию с использованием функции RegQueryInfoKey, в цикле перебирает все подразделы с помощью ключа К^ЕпишКеуЕх и получает значения ключей реестра с помощью функции RegQueryValueEx. В конце работы программы радел реестра закрывается функцией RegCloseKey.
Полученные данные об установленном ПО программа печатает на стандартный вывод. На каждой строчке печатается имя программы и через точку с запятой - ее вереи (если она есть). Если имени программы не найдено, то вместо него выводится название подраздела реестра, соответствующего данному ПО. Алгоритм модуля получения списка ПО представлен на рис. 1.
Так как список установленного ПО печатается на стандартный вывод, то его легко можно перенаправить в любой файл по выбору системного администратора.
Второй модуль системы предназначен для удобного графического представления списков установленных программ, полученных с помощью первого модуля, а также для отображения матрицы установленных программ по всем компьютерам для облегчения анализа однородности установленного программного обеспечения.
Рис. 1. Алгоритм модуля получения списка ПО
Данный модуль написан на языке C++ с использованием графической библиотеки Qt 4.4.3. Для хранения полученных списков программного обеспечения всех компьютеров и матрицы программного обеспечения используется библиотека управления базами данных SQLite3.
Полный список всех установленных программ хранится в таблице list, список добавленных компьютеров - в таблице computers, а матрица установленного программного обеспечения - в таблице matrix. Для каждого добавляемого компьютера создается таблица с имением данного компьютера, куда заносится список программ, установленный на данном компьютере. Структура данных таблиц представлена в табл. 2.
Таблица 2
Структура используемых таблиц
Обозначение атрибута Наименование атрибута
Таблица list
A1.1 Нлвание программы Имеет тип TEXT, создается с параметром UNIQUE, лгоритм устранени ошибок целостности IGNORE
Таблица computers
A2.1 Имя компьютера Имеет тип TEXT, создается с параметром UNIQUE, лгоритм устранени ошибок целостности IGNORE
Таблица matrix
A3.1 Нлвание программы Имеет тип TEXT
A3.2, A3.3,..., A3.N Вереи программы, установленной на соответствующем компьютере Имеет тип TEXT
Типовая структура таблицы установленного ПО
A4.1 Нлвание программы Имеет тип TEXT, создается с параметром UNIQUE, лгоритм устранени ошибок целостности REPLACE
A4.2 Вереи программы Имеет тип TEXT
Матрица программного обеспечения получается путем объединения (LEFT JOIN) [3] полного списка всех установленных программ со всеми таблицами, хранящими списки ПО конкретных компьютеров.
Пример матрицы программного обеспечени представлен на рис. 2.
■ AppWizard Г
File Import Show Help
Programms апг avf cl cl duo
46 XnView 1.93.1 1.93.1 1.93.1
47 XML Paper Specification Shared Components Pack 1.0 ? 7 ? ?
48 EPSON Scan 7
49 DeepBurner vl .8.0.224 7
50 Adobe Shockwave Player 10.2.0.023 10.2.0.023 10.2.0.023 10.2.0.023 10.2.0.0
51 7-Zip 4.57 4.57.00.0 4.57.00.0 4.57.00.0 4.57.00.0 4.57.00.1
52 Microsoft .NET Framework 3.0 Service Pack 1 3.1.21022 3.1.21022 3.1.21022 3.1.21022
53 Microsoft .NET Framework 1.1 Russian Language Pack 1.1.4322 1.1.4322 1.1.4322
54 Java(TM) 6 Update 3 1.6.0.30 1.6.0.30 1.6.0.30 ■A. ▼
am i
1 Л
Рис. 2. Пример работы программы
Если программа на компьютере отсутствует, то в соответствующей ячейке таблицы ничего не пишется. Если версию программы определить не удалось, то вместо нее ставится символ “?”.
Практическим результатом данной работы является раработка инструмента информационной поддержки анализа однородности программного обеспечения компьютерного класса позволяющего помочь системному администратору избежать проблем, вызванных несовместимостью различных версий ПО.
Библиографический список
1. Кокорева О. И. Реестр Windows XP. СПб.: БХВ-Петербург, 2005.
548 с.
2. Саймон Р. Microsoft Windows 2000 API. Энциклопедия программиста. М.: ДиаСофт, 2001. 1088 с.
3. Грубер М. Понимание SQL . М.: Диалектика, 1993. 291 с.
A. Antsev
Information support for uniformity of computer classroom's software analysis
The method for obtaining list of installed in a computer classroom software with using WinAPI functions to work with Microsoft Windows operation systems' registry and tool for automation of obtaining such list and displaying these lists for analysis and comparison to make sure a used software uniformity are represented.
Получено 12.11.2009