Содержание к диссертации
Введение
ГЛАВА 1. Анализ особенностей кэширования данных в информационных системах 10
1.1 Анализ принципов функционирования систем кэширования 10
1.2.Особенности и основные проблемы реализации кэш-систем 21
1.3 Анализ методов и алгоритмов стратегий замещения объектов в кэш-памяти 26
1.3.1 Идеальное кэширование 27
1.3.2 Алгоритм замещения LRU 28
1.3.3 Алгоритм замещения SLRU 29
1.3.4 Алгоритм замещения LRU-K 30
1.3.5 Алгоритм замещения LRU-SIZE 31
1.3.6 Алгоритм замещения NRU 34
1.3.7 Алгоритм замещения FIFO 35
1.3.8 Специальные стратегии замещения 36
1.3.9 Стратегия замещения LFU 37
1.3.10 Комбинационные стратегии замещения 39
1.3.11 Адаптивные алгоритмы кэширования 41
1.5 Выводы по первой главе и постановка задачи исследования 45
ГЛАВА 2. Разработка нейросетевого метода вычисления кэш-рейтинга и алгоритма замещения объектов в подсистеме кэширования 47
2.1 Основные задачи функционирования подсистемы интеллектуального кэширования 47
2.2 Применение искусственных нейронных сетей в анализе данных 49
2.3 Разработка нейросетевого метода вычисления кэш-рейтинга объекта и алгоритма замещение объектов в кэш-памяти 57
2.4 Разработка параллельного алгоритма вычисления кэш-рейтинга 64
объектов в подсистеме кэширования 64
2.5 Реультаты экспериментальных исследований 69
2.6 Выводы по второй главе 71
ГЛАВА 3. Разработка структуры и алгоритмов функционирования подсистемы интеллектуального кэширования 72
3.1 Структура основных компонентов подсистемы интеллектуального кэширования 72
3.2 Разработка структуры хранения объектов в кэш - памяти 78
3.3 Разработка параллельного алгоритма обработки множества запросов 83
3.4 Выводы по третьей главе 85
ГЛАВА 4. Архитектура подсистемы ителлектуального кэширования 87
4.1 Основные принципы и особенности подсистемы интеллектуального кэширования 87
4.2 Проектирование архитектуры подсистемы интеллектуального.. 90
кэширования 90
4.3 Реализация пользовательского интерфейса ART-CACHING 97
4.4 Выводы по четветрой главе 99
Заключение 100
Список литературы 102
- Особенности и основные проблемы реализации кэш-систем
- Применение искусственных нейронных сетей в анализе данных
- Структура основных компонентов подсистемы интеллектуального кэширования
- Основные принципы и особенности подсистемы интеллектуального кэширования
Введение к работе
Актуальность работы. В настоящее время всё большую роль играют технологии обеспечивающие хранение, анализ и обработку данных. Это связано с наблюдаемым с конца прошлого века лавинообразным ростом информации, в том числе и в различных отраслях промышленности. Информационные системы промышленных предприятий представляют собой сложный комплекс взаимосвязанных компонентов, которые накапливают, обрабатывают и анализируют огромное количество разнородной технологической информации, создаваемой системами управления. Данные из этих систем являются критически важными для непосредственного управления производственными процессами и составляют необходимую базу для проведения анализа эффективности, расчета ключевых показателей производительности, определения узких производственных мест и решения других задач, требующих использования всего доступного объема производственной информации. Таким образом, промышленные предприятия это область больших данных (Big Data), где накапливаются и обрабатываются большие массивы данных.
В процессе обработки данных всегда возникает проблема обеспечения производительности информационных систем. Современные задачи крупных промышленных предприятий, связанные с хранением и обработкой данных, предъявляют особые требования к вычислительным ресурсам. Критичные для промышленных предприятий информационные системы требуют высокого уровня быстродействия, надежности и масштабируемости. Поскольку информационная система работает с базами данных, размер которых значительно превышает объем доступной оперативной памяти, что приводит к невозможности поместить всю информацию из базы данных в оперативную память, то большая часть информационных объектов во время работы системы будет оставаться на внешних носителях, что сводит производительность системы к минимуму. Практически единственным эффективным способом уменьшения количества обращений к внешним носителям является механизм буферизации данных в оперативной памяти, т.е. кэширование данных.
Основная идея кэширования заключается в сохранении часто запрашиваемой информации в промежуточную память с быстрым доступом, которая может быть запрошена в будущем. Следовательно, применение кэширования в информационных системах управления промышленными предприятиями может дать следующие преимущества:
увеличение производительности серверов, функционирующих в рамках информационной системы, так как кэш-система будет выполнять часть запросов, в результате сервер будет обслуживать большее число запросов в единицу времени;
уменьшение среднего значения времени ожидания пользователем запрошенных данных;
уменьшение нагрузки на локальные и глобальные сети за счет применения кэширования на локальных уровнях.
Данные обстоятельства делают актуальным теоретическое и практическое исследование способов и методов применения интеллектуальных алгоритмов замещения объектов в кэш-памяти для повышения эффективности функционирования информационных систем управления крупными промышленными предприятиями.
В настоящее время к разработке новых алгоритмов кэширования выражается очень большой интерес. Увеличению эффективности систем кэширования посвящены работы таких исследователей, как: Aho A.V., Denning P.J., Ullman J.D., Chen Y.C., Shedler G.S., Nilson R.A., Sharieh A., Belady L.A.,Coffinan E.G., Dasarathan D., Megiddo N., Modha D., Castro M., Adya A., Liskov В., Sabeghi M., Yaghmaee M.H., Subramanian R., Smaragdakis. Y.,Соколинский Л.Б., Кузнецов С.Д., Сущенко С.П. и других.
Целью диссертационной работы является разработка методов и алгоритмов интеллектуального кэширования информационных объектов для увеличения производительности и повышения эффективности функционирования систем управления промышленными предприятиями.
Поставленная цель потребовала решения следующих задач:
-
Исследование предметной области с целью выявления проблем и особенностей, учитываемых при разработке подсистемы интеллектуального кэширования;
-
Анализ существующих алгоритмов кэширования информационных объектов с целью выявления достоинств, недостатков и возможностей их применения в промышленных информационных системах;
-
Анализ возможностей применение параллельных алгоритмов в подсистемах кэширования;
-
Разработка древовидной структуры данных, с целью уменьшение времени выполнения основных операции подсистемы кэширования;
-
Разработка архитектуры искусственной нейронной сети, позволяющая определять коэффициенты значимости каждого параметра, характеризующего информационный объект в кэш-памяти;
-
Разработка основных компонентов подсистемы кэширования для повышения эффективности функционирования информационных систем управления промышленными предприятиями.
Объект исследований – системы сбора, анализа и обработки данных информационных системы управления промышленными предприятиями.
Предмет исследований – методы и алгоритмы, обеспечивающие повышение производительности информационных систем управления промышленными предприятиями.
Методы исследований. Решение поставленных задач основывается на применении комплекса методов системного анализа, теории графов, технология параллельной обработки данных, математического программирования, искусственной нейронной сети, теории вероятностей, алгебры логики и теории алгоритмов.
Научная новизна диссертационной работы:
-
На основе искусственной нейронной сети разработан метод вычисления кэш-рейтинга объекта, отличающийся от существующих возможностью одновременного учета количества обращений, временной локальности объекта и времени загрузки из базы данных в кэш-память;
-
Предложен способ хранения объектов в кэш-памяти, позволяющий уменьшить время выполнения операций добавления, удаления и поиска информационных объектов в подсистеме кэширования;
-
Разработан способ обработки множества запросов одновременно поступающих в подсистему кэширования, осуществляющий обработку каждого запроса в отдельном потоке;
-
Разработан параллельный алгоритм вычисления кэш-рейтинга информационных объектов, обеспечивающий увеличение производительности вычислений в подсистеме кэширования.
Практическая значимость диссертационной работы:
-
На основе проведенного анализа существующих систем управления промышленными предприятиями и подсистем кэширования обозначены следующие приоритетные задачи: увеличение производительности функционирования интегрированных информационных систем за счет применения высокоуровневого интеллектуального кэширования информационных объектов; увеличение производительности основных алгоритмов подсистемы кэширования.
-
Спроектирована и разработана подсистема интеллектуального кэширования, позволяющая:
повысить эффективность функционирования информационных систем управления промышленными предприятиями;
снизить нагрузку на базу данных, за счет выполнения части запросов подсистемой кэширования;
увеличить пропускную способность каналов передачи данных по стандартным протоколам TCP/IP;
уменьшить время ожидания ответа на запросы, поступающие в информационную систему.
-
На основе многофакторного анализа разработан метод вычисления кэш-рейтинга информационного объекта, основанный на применение искусственной нейронной сети.
-
Разработана архитектура искусственной нейронной сети, позволяющая вычислить коэффициенты значимости каждого параметра, характеризующего информационный объект в кэш-памяти.
Обоснованность и достоверность научных положений, выводов и результатов исследований подтверждаются соответствием результатов теоретических исследований экспериментальным данным и внедрением разработанных методов и алгоритмов интеллектуального кэширования информационных объектов в системах управления Северо-Осетинского филиала ОАО «МРСК Северного Кавказа».
Апробация диссертационной работы. Основные положения и результаты диссертационной работы докладывались и обсуждались на ежегодных НТК
СКГМИ (ГТУ), научных семинарах кафедры информационных систем в экономике СКГМИ (ГТУ) (2011 – 2014 гг.),а также на еженедельном научно-исследовательском семинаре по математической физике и вычислительной математике ФГБОУ ВПО «Кабардино-балкарский государственный университет им. Х.М. Бербекова». Основные результаты диссертационной работы получили апробацию на следующих международных конференциях: Международная научно-техническая конференция «Наука, техника, инновации 2014», г. Брянск 2014г., X студенческая международная заочная научно-практическая конференция «Молодежный научный форум: технические и математические науки», г. Москва 2014г.; Международная научно-практическая конференция «Приоритетные направления развития науки», г. Уфа 2014г.; XVIII Международная научно-практическая конференция «Перспективы развития информационных технологий», г. Новосибирск 2014г.; I Международная научно-практическая конференция «Проблемы и перспективы современной науки», г. Ставрополь 2014г.; V Международная научно-практическая конференция «Молодые ученые в решении актуальных проблем науки», г. Владикавказ 2014г.; XI Международный симпозиум «Интеллектуальные системы», г. Москва 2014г.
Личный вклад автора. Основные научные положения, выводы и рекомендации, содержащиеся в диссертационной работе, получены автором самостоятельно.
Публикации. По теме диссертации опубликовано 12 печатных работ, в т. ч. 2 работ в ведущих рецензируемых научных журналах и изданиях, определенных ВАК РФ для публикации основных научных результатов.
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения и списка использованной литературы, включающего 88 наименования, и содержит 125 страниц машинописного текста, 39 рисунок, 4 таблиц.
Особенности и основные проблемы реализации кэш-систем
Иерархическая кэш-система подразумевает комбинированный подход к хранению информационных объектов с использованием как минимум двух хранилищ с различной скоростью доступа к данным. В случае, когда кэш-система использует несколько различных хранилищ и при этом скорость доступа к каждому из них отличается от скорости доступа к любому другому хранилищу на порядки, можно говорить об иерархической кэш-системе.
Для функционирования иерархической (многоуровневой) системы кэширования большое значение играет свойствоисключительности объекта кэширования. В том случае, если один и тот же объект находится в некоторый момент времени в кэш-памяти на различных уровнях иерархической кэш-системы, говорят, что этот объект представляет инклюзивные данные. При этом если в многоуровневой кэш-системе любой объект, находящийся на уровне ЬІ_± должен присутствовать на уровне Ь, где 2 і N — 1, то уровни ЬІ_± и Li- называют строго инклюзивными. Такие требования, например, выдвигаются для некоторых процессоров [3,7,13]. Если же один и тот же объект информационной системы находится в любой момент времени только в одной кэш-памяти на любом из уровней иерархической кэш-системы, говорят, что этот объект представляет эксклюзивные или исключительные данные.
Обеспечение согласованности данных в кэш-памяти
Одной из проблем при реализации системы кэширования является поддержка актуального состояния объектов в кэш-памяти или обеспечениесогла-сованности данных. Проблемасогласованностиданныхобусловлена наличием копий одного и того жеинформационного объекта (в основной памяти и кэшпамяти), битовое представление которых, в идеале, должен совпадать. При этом имеются различные аспекты данной проблемы характерные как для любых систем кэширования, так и исключительно для распределенных кэш-систем.
Проблема согласованности данных заключается в необходимости поддержания в актуальном состоянии копии объекта из основной памяти, которая хранится в кэш-памяти, т.е. необходимо обеспечить обновление копии объекта в кэш-памяти, при его изменении в основной памяти. Существует два подхода для решения данной проблемы [3,7,14]: сквозная запись и отложенная запись.
Политика сквозной записи предлагает, что при каждом обращении на запись к информационному объекту в основной памяти происходит просмотр кэш-памяти на предмет наличия в ней копии данного объекта и, если копия найдена, происходит ее перезапись новыми данными.
Политика отложенной записи подразумевает, что если объект находится в кэш-памяти, то запись происходит исключительно в кэш-память, при этом обновление содержимого объекта в основной памяти должно быть осуществлено в момент удаления обновленной копии из кэш-памяти, либо в момент обращения к основной памяти, которое минует кэш-память (например, в многопроцессорной системе). Если же объект не найден в кэш-памяти, то просто перезаписывается объект, находящийся в основной памяти.
Другим важным аспектом обеспечения согласованности данных в кэшпамяти является проблема когерентности кэша [3, 15], которая характерна для распределенных кэш-систем. Когерентность кэша – это свойство данных, хранимых в локальных кэшах распределенной кэш-системы, при соблюдении которого состояние этих данных должно быть согласовано с состоянием данных в основной памяти распределенной системы. Распределенная кэш-система представляет собой систему, имеющуюв своем составе несколько простых кэш-систем, которые взаимодействуют с общей основной памятью и при этом каждая из них может функционировать независимо друг от друга. Распределенные кэш-системы обеспечивают уменьшение времени задержки ответа пользователю за счет распределения запросов между различными простыми кэш-системами.
Проблема обеспечениякогерентности кэша впервые была описана для многопроцессорных систем как частный случай когерентности памяти, однако, в последнее время в силу стремительного удешевления основной памяти веб-серверов и увеличения пропускной способности каналов связи идея распределенного кэширования приобретает значительную популярность и в веб-системах [16].
Механизм когерентности кэш-памяти ответственен за определение того, какая из копий распределенной системы кэширования является устаревшей [9]. При этом необходимо обновить неверные копии объектов в тот момент, когда происходит их запрос конечными пользователями. Протокол обеспечения когерентности кэш-памяти должен гарантировать, что значение, возвращаемое при чтении из любого локального кэша, всегда совпадает с последним записанным значением объекта. Существуют два класса протоколов обеспечения когерентности: запись-недействительность и запись обновление. В первом случае, запрос на запись объекта делает недействительными все другие копии этого объекта. Если пользователь запросит на чтение такой объект, он получит статус о том, что объект недействителен, то такая ситуация называется промах согласования. Протокол запись-обновление работает иначе: каждый запрос на запись вызывает обновление всех копий объекта в общей памяти и фактически, объект остается общим. Хотя число промахов при чтении меньше для протокола запись-обновление, трафик записи часто значительно выше, из-за чего общая производительность второго протокола снижается. Данные протоколы применяются в многопроцессорных системах, при этом выбор оптимального решения зависит от различных факторов [3,7,17].
Применение искусственных нейронных сетей в анализе данных
Согласно выделенным этапам реализации предлагаемой подсистемы кэширования важным аспектом является вычисление кэш-рейтинга объекта. Процесс вычисления кэш-рейтинга заключаетсяв анализе основных параметров характеризующий информационный объект в кэш-памяти и коэффициентов значимости каждого параметра. Для определения коэффициентов значимости каждого из параметров, участвующих в вычислении кэш-рейтинга может быть использована искусственная нейронная сеть прямого распространения.
Нейронные сети – это одно из направлений исследований в области искусственного интеллекта, основанное на попытках воспроизвести нервную систему человека. Таким образом, искусственная нейронная сеть – это математическая модель человеческого мозга, состоящая из многих простых вычислительных элементов (нейронов) рисунок 2.2, способность работать параллельно, функция которых определяется структурой сети, а вычисления производятся в самих элементах [46, 47]. Считается, что способность мозга к обработке информации в основном обусловлена функционированием сетей, состоящих из таких нейронов [46, 47, 48, 49].
Математическая модель нейрона описывает соотношениями [46, 47, 48, 49, 50, 51, 52]: Yi =f(ld=1wi xi) (2.1) где Wij - вес синапса (i = 1,n); xt - компонент входного вектора (і = 1,п); у І - выходной сигнал нейрона; п - число входов нейрона; /- функция активации; Нейронная сеть способна к решению большого количества разноплановых задач. Можно выделить следующие типовые задачи, решаемые с помощью нейронных сетей (рисунок. 2.3) [53, 54, 55, 56, 57]: - аппроксимация функции; - прогнозирование; - оптимизация; - управление; - классификация; - кластеризация; - кодирование/декодирование. Прогнозирование —1 ь Классификация 1— Управление I Нейронная сеть Аппроксимация функции Ассоциативная памяти w 4 1 Кластеризация — Оптимизация — Кодирование / декодирование
Широкий спектр задач говорит о больших возможностях применение нейронных сетей. Благодаря этому, области их применения весьма разнообразны. В каждой предметной области при ближайшем рассмотрении можно найти постановки задач для нейронных сетей.
Главная задача в процессе разработки и проектирования искусственной нейронной сети является процесс обучения, т.е. корректировки весов, для минимизации ошибки на выходе нейронной сети. Это связанно с тем, что нейронная сеть не программируется в буквальном смысле это слова, а обучается на множестве заранее подготовленных данных [46, 47, 48].
Математический процесс обучения можно описать следующим образом. В процессе функционирования нейронная сеть формирует выходной сигнал Y в соответствии с входным сигналом X, реализуя некоторую функцию Y = F(X). Если архитектура сети задана, то функции F(X), определяется значениями синоптических весов и смещений сети. В результате построения такого отображения, т.е. X - У необходимо добиться того, чтобы:
1. обеспечивалось формирование правильных выходных сигналов в соответствии со всеми примерами обучающей выборки;
2. обеспечивалось формирование правильных выходных сигналов в соответствие со всеми возможными входными сигналами, которые не вошли в обучающую выборку.
Утверждение. Для любого множества пар входных - выходных векторов произвольной размерности {Xk\Yk , k = l...N} существует двухслойная однородная нейронная сеть с последовательными связями, с сигмоидальны-ми передаточными функциями и с конечными числом нейронов, которая для каждого входного вектора Хк формирует соответствующий ему выходной вектор Yk.
Пусть решением некоторой задачи является функция Y = F(X), которая задается множеством входных - выходных данных: и способ вычислений ошибки Е, то обучение нейронной сети превращается в задачу глобальной оптимизации, имеющую очень большую размерность, при этом, поскольку функция Е может иметь произвольный вид, обуaчение в общем случае - многоэкстремальная невыпуклая задача оптимизации.
Для решения этой задачи могут быть использованы следующие алгоритмы:
- алгоритм локальной оптимизации с вычислением частных производных первого порядка;
- алгоритм локальной оптимизации с вычислением частных производных первого и второго порядка;
- алгоритм глобальной оптимизации.
К первой группе относятся: градиентный алгоритм; метод с одномерной и двумерной оптимизации целевой функции в направлении антиградиента; метод сопряженных градиентов.
Ко второй группе относятся: метод Ньютона, методы оптимизации с разряженными матрицами Гессе, квазиньютовские методы, метод Гаусса -Ньютона и др.
Различают 2 основных способа обучения многослойных нейронных сетей прямого распространения [46, 47, 58, 59, 60]:
- обучение с учителем;
- обучение без учителя.
Обучение с учителем подразумевает изменение весов нейронной сети, используя наборы обучающих выборок, включающих входные значения и известные значения выходов. Математический способ «обучение с учителем» можно представить следующим образом:
Пусть имеется входной вектор Х = [Xi.-.xJ, выходной вектор У = \уг = F(xx) ...уп = F(xn)], где функция/(х) - функция которую аппроксимирует нейронная сеть и значение ошибки Е. Значения выходного вектора Г, являются вычисленными значениями входного вектора X.
Структура основных компонентов подсистемы интеллектуального кэширования
Информационные системы промышленных предприятий представляют собой сложный комплекс взаимосвязанных компонентов, которые накапливают, обрабатывают и анализируютогромное количество разнородной технологической информации, создаваемой системами управления. Данные из этих систем являются критически важными не только для непосредственно управления производственными процессами, но и представляют собой необходимую базу для проведения анализа эффективности, расчета ключевых показателей производительности, определения узких производственных мест и решения других задач, требующих использования всего доступного объема производственной информации [1].
В целях увеличения производительности в высоконагруженных информационных системах, используют технологию кэширования, которая применяется в качестве универсального средства, позволяющего ускорить обработку и предоставление данных конечным пользователям.
При создании системы кэширования решаются следующие основные задачи:
1. Повышение эффективности алгоритма замещения объектов;
2. Выполнение основных операций за время O(log2 N);
3. Разработка оптимальной структуры хранения объектов в кэшпамяти;
4. Разработка параллельного алгоритма обработки множества запросов.
Подсистема кэширования, позволяющая осуществлять хранение раз-нороднойинформации и предоставлять доступ к хранимым объектам, представляет собой сложную систему позволяющая обрабатывать множества запросов в единицу времени.
В целях повышения производительности функционирования интегрированных информационных систем, крупных промышленных предприятий и сокращения времени получения объекта из базы данных предлагается использовать интеллектуальную подсистему кэширования. Предлагаемая структура подсистемы представлена на рисунке 3.1.
Как следует из рисунка 3.1, в предложенной подсистеме существуют следующие информационные связи:
X1– входящие информационные потоки от ИС; X2– информационный поток от планировщика запросов в пул подключений;
X3 – информационный поток от планировщика запросов на добавление в очередь запросов;
X4 – получение информационного потока диспетчером кэш-памяти;
X5 – информационный поток от диспетчера кэш-памяти в диспетчер потоков;
X6, X7, X8 – получение информационного потока на созданиявычисли-тельныхпотоков;
X9, X10, X11 – информационные потоки о результатах вычислений;
X12 – отправка информационного потока в ИС.
Каждый компонент представляет собой автономный объект, независящий от других компонентов, что позволяет вносить изменения, не нарушая работу остальных компонентов.
Процесс функционирования подсистемы интеллектуального анализа начинается с получения запроса (X1), который обрабатывается планировщиком запросов. В каждомзапросе планировщик запросов получаетидентифи-катор отправителя и передает информационный поток в пул подключений (X2). После отправки информации в пул подключений, запрос добавляется в очередь запросов (X3) и сигнализирует диспетчеру кэш-памяти, что в очереди появился новый объект (X4). Важной составляющей рассматриваемой системы является диспетчер кэш-памяти, который включает в себя алгоритм замещения объектов на основе нейронной сети. Данный компонент позволяет сохранять объекты в кэш-памяти, которые будут актуальны в будущем. Следовательно, диспетчер кэш-памяти получает добавленный запрос и отправляет информационный поток диспетчеру потоков (X5). Поток вычислений получает информационный поток на выполнение запроса (X6, X7, Xn). После выполнения запроса, пул подключений получает информационный поток о результате вычисления (X9, X10, X11) и отправляет его в ИС (Х12). Для боле детального взгляда на систему, приведемалгоритм функционирования каждого компонента в отдельности.
Планировщик запросов – компонент позволяющий подсистеме кэширования обслуживать множество запросов и добавлять каждый запрос в очередь на обработку. Обработка множества запросов возможна за счет выполнения каждого запроса в отдельном потоке [71, 72, 73].
Поток – наименьшая единица обработки, исполнение которой может быть назначено ядром операционной системы [74, 75]. Производительность работы кэш-системы напрямую зависит от поддержки подсистемой кэширования возможностей параллельных вычислений.
Рассмотрим работу «Планировщика запросов» в виде алгоритма рисунок 3.2:
После добавления запроса в очередь, планировщик запросов оповещает диспетчер кэш-памяти, о том, что в очередь запросов добавлен новый объект.
Диспетчер кэш-памяти представляет собой ядро подсистемы кэширования, позволяющий сохранять объекты в кэш-памяти, запускать параллельный алгоритм вычисления кэш-рейтинга объектов, в случае переполнения памяти. Также, в тесном взаимодействии с диспетчером потоков позволяет обрабатывать запросы на поиск, удаление и обновление данных в разных потоках. В свою очередь диспетчер потоков представляет собой сложный компонент [73, 74], который позволят запускать, удалять и прерывать выполнения потока, а также позволяет синхронизировать доступ к кэшпамяти.
Основные принципы и особенности подсистемы интеллектуального кэширования
Разработка подсистемы интеллектуального кэширования, для информационных систем промышленных предприятий, представляет собой реализацию представленных в данной работе математических методов, методов искусственного интеллекта,также параллельные алгоритмы обработки данных, применяемые для решения задач сбора, анализа и обработки данных с помощью современных информационных технологий.
Алгоритмическая сложность определяется необходимостью анализа больших потоков информации, поступающих параллельно на вход информационной системы, обработка которых без помощи параллельных вычисле-нияявляется трудновыполнимой задачей.
Подсистема «ART-CACHING» разработана с учетом современных требований к программному обеспечению, с полной поддержкой параллельных вычислений (Template Parallel Library) и платформы .NET Framework 4.0.
Разработка данной подсистемы осуществлялась с учетом возможностей дальнейшего улучшения и интеграции с информационными системами промышленных предприятий. Для реализации подсистемы интеллектуального кэширования в работе выбрано объектно-ориентированное программирование [81, 82, 83, 84, 85], исходя из того, что при этом могут быть достигнуты следующие возможности подсистемы кэширования: - возможность дальнейшего улучшения подсистемы интеллектуального кэширования без изменения всей структуры, а также интеграции новых возможностей и блоков; - возможность применения в процессе разработки стандартных шаблонов проектирования; - реализация подсистемы кэширования осуществлялась на языке программирования – в среде разработки приложений Visual Studio 2012. Использование данного языка программирования позволяет реализовывать программные обеспечение любой сложности и является одним из самых гибких языков программирования [85, 84]. С учетом особенностей математических методов и методов искусственного интеллекта, описанных во 2 главе и параллельных алгоритмов, представленных в главе 3, были выделены следующие возможности работы подсистемы кэширования «ART-CACHING»:
1. Работа на локальном уровне. Представляет собой специальное программное обеспечение, запушенное на том же сервере, что и информационная система предприятия, взаимодействие осуществляется через низкоуровневые протоколы.
2. Серверный уровень (работа на отдельном сервере). Данный уровень запускает подсистему интеллектуального кэширования на отдельном сервере, а взаимодействие осуществляется через стандартные протоколы передачи данных (TCP/IP).
Одной из основных функций, которые должна реализовывать подсистема кэширования является хранение и поиск данных. Эти данные являются объектами информационной системы, запрашиваемые пользователями.
В процессе разработки подсистемы «ART-CACHING» решались следующие основные задачи:
1. Разработка протокола обмена данными между подсистемой кэширования и информационной системой промышленных предприятий;
2. Повышение производительности кэш-системы за счет применения технологий параллельного программирования;
3. Улучшение функционирования алгоритма замещения за счет применение нейронных сетей;
4. Разработка командного интерпретатора, для управления подсистемой кэширования. Разработанная подсистема интеллектуального кэширования имеет клиент-серверную архитектуру [87], которая позволяет организовать децентрализованное хранение и параллельную обработку данных.
Взаимодействие с кэш-системой происходит на основе стандартных протоколов передачи данных (TCP/IP), поверх которых работает разработанный протокол, для получения и передачи объектов и команд выполнения. Подсистема проектировалась с помощью объектно-ориентированной парадигмы, вследствие чего каждый компонент выступает, как автономный объект, что позволит при необходимости вносить изменение в проект, без перекомпиляции всего проекта.
Как было сказано выше, подсистема разрабатывалась на языке программирования C#, которая позволяет в полной мере использовать объектно-ориентированное программирование и возможности параллельных вычислений платформы .NET Framework.
Для нормального функционирования подсистемы интеллектуального кэширования, к компьютеру предъявляются следующие минимальные аппаратные требования:
1. Процессор: Core i5 / AMD Athlon 64 - 2,4ГГц;
2. Оперативная память: 1 Гб;
3. Минимальный необходимый объем свободного места на жестком диске: 1 Гб;
4. Операционная система Windows7 / Windows Server 2008 / 2012.
Проектирование архитектуры – это одно из сложнейших задача человеческой деятельности. Басс, Клементс и Казман дают следующее определение архитектуре [87]:
"Архитектура программной или вычислительной системы – это структура или структуры системы, включающие программные элементы, видимые извне свойства этих элементов и взаимоотношения между ними. Архитектура касается внешней части интерфейсов; внутренние детали элементов – детали, относящиеся исключительно к внутренней реализации – не являются архитектурным".
На высоком и наиболее абстрактном уровне логическое представление архитектуры подсистемы интеллектуального кэширования можно рассматривать как набор взаимодействующих компонентов, сгруппированных в слои рисунок 4.2.
Как показано на рисунке 4.2, подсистема кэширования может состоять из ряда базовых слоев. Стандартный трехслойный дизайн, включает следующие слои [87]:
- Слой представления. Данный слой содержит ориентированную на пользователя функциональность, которая отвечает за реализацию взаимодействием пользователя (информационной системы) с подсистемой кэширования, и, как правило, включает компоненты, обеспечивающие общую связь с основной бизнес-логикой, инкапсулированной в бизнес-слое.