ЭКСПЕРТНЫЕ СИСТЕМЫ В КОМПЬЮТЕРНЫХ СЕТЯХ: ВОПРОСЫ СОЗДАНИЯ ПРИ WEB-РАЗРАБОТКАХ


Цитировать

Полный текст

Аннотация

Рассматриваются проблемы разработки экспертных систем в вычислительных сетях при web-программировании. Прослеживается зависимость особенностей обработки, хранения и передачи информации и web-приложений от уникальности и проблематики создания экспертных систем. При данных обстоятельствах имеются затруднения, связанные с загруженностью сетевого трафика, когда информация может быть подвергнута угрозам целостности, поскольку будет отсутствовать необходимая синхронизация данных между клиентскими службами и службами серверов. С целью предотвращения и ликвидации указанной проблемы предлагается надлежащим образом выбрать комплекс web-инструментов и приложений. Для достижения этой цели необходимо сделать выборку и проанализировать языки web-программирования, определить для создания экспертных систем соответствующий специальным требованиям язык. При этом следует учитывать возможности web-приложений для клиентской стороны при активно развивающихся информационных технологиях.

Полный текст

Введение В настоящее время экспертные системы вы- шли на новый уровень наряду с квалифициро- ванными специалистами в рамках анализа и ре- шения сложных вопросов и задач, при этом они выдают весьма эффективные и качественные ре- зультаты. К экспертным системам можно отнести компьютерные системы, обладающие способно- стью частичной замены специалистов-экспертов при разрешении проблемных ситуаций [1]. Проблема исследования экспертных систем вычислительных сетей Экспертные системы все чаще находят свое применение в виде онлайн-систем с открытым доступом для различного контингента пользова- телей [2]. Одной из наиболее серьезных проблем при построении таких систем является слож- ность проектирования, так как необходимо асин- хронное взаимодействие клиентской и серверной сторон. Сложность заключается в структуриро- вании и извлечении, а также хранении информа- ции, и прежде всего возникает вопрос о месте ее хранения. Экспертная система не хранит в себе конфиденциальных данных, но и размещать каж- дый раз данные на клиентскую часть будет не- уместным ввиду большого объема информации. Размещение базы на серверной стороне за- ставит клиентскую часть постоянно запраши- вать данные с серверной стороны небольшими частями, а если учесть еще ряд дополнительной информации, посылаемой вместе с пакетом данных, то объем будет так же велик, как и хранение на клиентской стороне [3]. Следовательно, про- блема хранения данных обусловлена высокой за- держкой передачи информации по каналам связи. Вопрос структурирования информации также должен быть регламентирован отношением клиентской и серверной сторон. Суть вопроса заключается в неудобном для проектирования и программирования формировании структуры, по которой данные будут укомплектовываться в систему и затем извлекаться. Проблема состоит в неприспособленности существующих web-технологий к решению та- кого рода задач. Исходя из вышеописанного, задача разработки экспертных систем на базе web-технологий является значимой по причине стремительного развития ЭС в глобальной сети Internet [4]. Целью исследования является анализ метода решения установленной проблемы, основанный на комплектации специального пакета инстру- ментов, состоящих из стандартных средств раз- работки в сфере web-технологий, которые имеют максимальную производительность, удобство и скорость разработки, а также некоторую специ- фику, которая дает возможность решения задачи нетрадиционными способами. Сравнительный анализ серверной технологии web-программирования Для того чтобы выявить необходимые каче- ства в средствах разработки, следует провести сравнительный анализ серверной технологии web-программирования. Для этого возьмем сле- дующие языки программирования: PHP; Perl; Phyton; Ruby и JavaScript. Язык JavaScript классически принято считать клиентским и интерпретируемым строго в брау- зере клиента, но ввиду его некоторой специфики был разработан фреймфорк Node.JS, представля- ющий собой программную платформу, основан- ную на движке V8 (транслирующем JavaScript в машинный код), которая превращает JavaScript из узкоспециализированного языка в язык обще- го назначения [5]. Node.JS предоставляет возможность JavaScript взаимодействовать с устройствами ввода/вывода через свои API (написанном на C++), подклю- чать другие внешние библиотеки, написанные на разных языках, обеспечивая вызовы к ним из JavaScript-кода [6]. Node.JS применяется преимущественно на сервере, выполняя функцию веб-сервера, при этом есть возможность разрабатывать на Node.JS и десктопные оконные приложения. Node.JS про- изводительнее других серверных языков. Сравнительный анализ будет производиться по следующим свойствам: парадигмам; типиза- ции; управлению памятью; управлению потоком вычислений; функциональным возможностям; компилятору/интерпретатору. Данные о языках web-программирования приведены в таблице. По данным, представленным в таблице, можно сделать вывод, что по производительности раз- работчика все языки имеют разные параметры, однако, исходя из производительности работы и потребления вычислительных ресурсов, можно выявить один оптимальный язык программиро- вания - JavaScript (Node.JS), который не усту- пает по производительности разработки другим языкам. Еще одной из причин, по которой Node.JS счи- тается наиболее актуальной технологией для вы- бора при разработке ЭС, является тот факт, что на серверной стороне будет тот же самый язык, что и на клиентской, что существенно повлияет на удобство написания кода и на взаимодействие клиента с сервером [7]. Также при использовании Node.JS серьезно упрощается процесс передачи данных. Это так- же можно назвать преимуществом серверного JavaScript, дающим возможность самостоятель- но написать собственный web-сервер. При рас- смотрении клиентской части следует обратить внимание на то, что в настоящее время ряд бра- узеров стремительно развивает новый стандарт HTML5, который открывает перед разработчи- ком новые возможности работы с клиентской стороной, в частности организацию на сторо- не клиента базы данных, основанной на СУБД SQLite3 [8]. Такой подход дает возможность обеспечить логическое кеширование и сократить трафик между клиентом и сервером, тем самым уве- личить скорость работы экспертной системы. Нужно помнить, что, говоря о серверных язы- ках, пользователь должен запросить вход на web-страницу, куда будет произведен переход на указанную страницу по определенной ссылке имеющегося браузера [9]. Далее будет вестись обработка на сервере для выполнения программ- ных приложений, имеющих связь со страницей. После указанных действий будет дан ответ поль- зователю вычислительной сети в виде файла, имеющего различные расширения, в том числе Perl, SI, XHTML, HTML и другие [10]. Работоспособность программных приложе- ний уже будет иметь определенную зависимость от сервера, где будет находиться сам сайт, а также от версии языка программирования, которым он поддерживается. Особенностью функциониро- вания серверных языков программирования яв- ляется их способность организовывать контакты с системой управления базами данных (СУБД), сервером СУБД. Язык программирования PHP имеет открытый исходный код и в ряду своих сценариев облада- ет способностью интеграции в условно обык- новенные html-документы. Однако при этом на web-сервере должен быть интерпретатор языка PHP [11]. Указанный язык может служить при написании системных программ или их состав- ляющих. Написанные на данном языке web- приложения имеют сложности с безопасностью, при этом отсутствует возможность асинхронной и многопоточной работы. Язык программирования Ruby характеризу- ется способностью к объектно-ориентированно- му функционалу, он независим от операционной системы в рамках многопоточности и управления оперативно запоминающим устройством. Однако данный язык отличается особой сложностью при его изучении, он весьма непроизводителен, мало развит. Язык программирования Python наце- лен на решение сложных вопросов при web- разработках. Данный язык генерирует комплекс статистических html-страниц, находящихся в обслуживании серверов. Python весьма ограни- чен в инструментарии для работы со СУБД, его Таблица. Сравнение языков WEB-программирования по их различным свойствам Наименова- ние языка Парадигмы Типизация Управление памятью Управление потоком вычислений Функцио- нальные возможности Компилятор / интерпре- татор JavaScript Императив- ная, объек- тно-ориен- тированная, функцио- нальная (ча- стично), реф- лективная, обобщенное программи- рование, де- кларативная (частично) Динамиче- ская, неяв- ная, неявное приведение типов без по- тери данных, неявное приведение типов в не- однозначных ситуациях Сборка мусо- ра (освобож- дения памяти в куче, за- нятой неис- пользуемыми объектами) Инструкции break без мет- ки, инструк- ции break c меткой, поддержка try/ catch, блок finally First class functions, анонимные функции, лексические замыкания, каррирование Open-source компилятор (интерпрета- тор), воз- можность компиляции, Bootstrapping, интерпрета- тор команд- ной строки, условия компиляции (ограничен- но) Perl Императив- ная, объек- тно-ориен- тированная, функцио- нальная, рефлексивная (частично), обобщенное програм- мирование декларатив- ная (ограни- ченно) Статическая (частично), динамиче- ская, неяв- ная, неявное приведение типов без по- тери данных, неявное приведение типов с поте- рей данных, неявное приведение типов в не- однозначных ситуациях, информация о типах в runtime, информация о типах-па- раметрах в runtime информация о типах в runtime (огра- ниченно), информация о типах-па- раметрах в runtime (огра- ниченно) Cборка мусо- ра (освобож- дения памяти в куче, за- нятой неис- пользуемыми объектами) Инструк- ция goto, инструкции break без мет- ки, инструк- ции break с меткой (частично), поддержка try/catch, блок else (ис- ключение), легковесные процессы (Coroutines) First class functions, анонимные функции, лексические замыкания, каррирование Open-source компилятор (интерпрета- тор), воз- можность компиляции, интерпрета- тор команд- ной строки, условия компиляции PHP Императив- ная, объек- тно-ориен- тированная, рефлексив- ная, обоб- щенное програм- мирование, декларатив- ная, функ- циональная (частично) Динамиче- ская, неяв- ная, неявное приведение типов без по- тери данных, неявное приведение типов с поте- рей данных, неявное приведение типов в не- однозначных ситуациях, параметриче- ский по- лиморфизм, информация о типах в runtime, информация о типах-па- раметрах в runtime Сборка мусо- ра (освобож- дения памяти в куче, за- нятой неис- пользуемыми объектами) Инструкция goto (частич- но), инструк- ции break без метки, инструкции break c мет- кой (частич- но), поддерж- ка try/ catch, блока finally Анонимные функции, лексические замыкания Open-source компилятор (интерпрета- тор), воз- можность компиляции, интерпрета- тор команд- ной строки, условия компиляции Наименова- ние языка Парадигмы Типизация Управление памятью Управление потоком вычислений Функцио- нальные возможности Компилятор / интерпре- татор Phyton Императив- ная, объек- тно-ориен- тированная, функцио- нальная, реф- лексивная, обобщенное программи- рование де- кларативная, распределен- ная (ограни- чено) Динамиче- ская, неяв- ная, неявное приведение типов без по- тери данных, информация о типах в runtime, информация о типах-па- раметрах в runtime Сборка мусо- ра (освобож- дения памяти в куче, за- нятой неис- пользуемыми объектами) Инструкции break без мет- ки, поддерж- ка try/catch, блок finally, блок else (ис- ключение), ленивые вычисления, легковесные процессы (Coroutines) First class functions, анонимные функции (частично), лексические замыкания, частичное применение, каррирование Open-source компилятор (интерпрета- тор), воз- можность компиляции, Bootstrapping, интерпрета- тор команд- ной строки Ruby Императив- ная, объек- тно-ориен- тированная, функцио- нальная, реф- лексивная, обобщенное программи- рование де- кларативная, распределен- ная (ограни- чено) Динамиче- ская, неяв- ная, неявное приведение типов без по- тери данных, информация о типах в runtime, информация о типах-па- раметрах в runtime Сборка мусо- ра (освобож- дения памяти в куче, за- нятой неис- пользуемыми объектами) Инструкция goto (огра- ниченно), Инструкции break без мет- ки, инструк- ции break c меткой, поддержка try/catch, блок finally, блок else (ис- ключения), перезапуски, ленивые вычисления (ограничено, легковесные процессы (Coroutines) First class functions, анонимные функции, лексические замыкания, частичное применение, каррирование Open-source компилятор (интерпрета- тор), воз- можность компиляции, Bootstrapping, интерпрета- тор команд- ной строки функционал достаточно несовершенен, хотя и имеет весьма неплохой синтаксис, отчего код хо- рошо читается [12]. Заключение В заключение отметим, что для успешного и удобного проектирования и написания эксперт- ной системы посредством комплекта языков web- программирования оптимально все же использо- вать язык JavaScript как на клиентской, так и на серверной стороне. Указанный язык может быть лишь ограничен браузерными назначениями, при этом он подходит для решения сложных задач в разных ситуациях при наличии таких качеств, как простота и абстракция. Браузер просмотра web-страниц в данном случае выполняет поруче- ния клиентских приложений в вычислительной сети на компьютере пользователя, когда на серве- ре запускаются серверные приложения.
×

Об авторах

К. А Василенко

Владивостокский государственный институт экономики и сервиса

Email: k2857@mail.ru
Владивосток, РФ

А. Л Золкин

Поволжский государственный университет телекоммуникаций и информатики

Email: alzolkin@list.ru
Самара, РФ

Н. В Абрамов

Дальневосточный федеральный университет

Email: nikolay.abramov1990@mail.ru
Владивосток, РФ

Д. О Курганов

Дальневосточный федеральный университет

Email: kurganov_vl@mail.ru
Владивосток, РФ

Список литературы

  1. Хэррон Д. Node.JS. Разработка серверных веб-приложений в JavaScript / пер. с. англ. А.А. Слинкина. М.: ДМК Пресс, 2017. 144 с
  2. Джарратано Д., Райли Г. Экспертные системы. Принципы разработки и программирование / пер. с англ. К.А. Птицына. М.: Вильямс, 2017. 1152 с
  3. Тормозов В.С. Многокритериальная настройка усовершенствованного алгоритма детектирования объектов на изображении // Передовые инновационные разработки. Перспективы и опыт использования, при внедрении в производство: сб. науч. ст. по итогам Восьмой междунар. науч. конф. 2019. С. 35-36
  4. Панкратов С.А. Использование графической информации для защиты программного и информационного обеспечения // Инженерный вестник Дона. 2012. № 2. URL: http://ivdon.ru/ru/magazine/archive/n2y2012/792 (дата обращения: 25.01.2020)
  5. Уилсон Э. Мониторинг и анализ сетей. Методы выявления неисправностей. М.: Лори, 2016. 480 с
  6. Аладышев О.С., Овсянников А.П., Шабанов Б.М. Развитие корпоративной сети Межведомственного суперкомпьютерного центра. URL: http://vbakanov.ru/metods/1441/corpor.pdf (дата обращения: 25.01.2020)
  7. Гайдук А.Р. Теория и методы аналитического синтеза систем автоматического управления (полиномиальный подход). М.: Физматлит, 2017. 264 с.
  8. Золкин А.Л. Основы теории систем автоматического управления и автоматизация ЭПС: конспект лекций. Саарабрюкен: LAP LAM- BERT Academic Publishing, 2014. 219 с
  9. Смирнов А.В. Руководство по захвату сетевого трафика. URL: https://blog.packet-foo.com/2016/11/the-network-capture-play-book-part-3-network-cards (дата обращения: 25.01.2020)
  10. Perlman R. Interconnections: Bridges & Routers. New York: Addison-Wesley, 2016. 245 p
  11. Khalil H.K. Nonlinear Systems. 3rd ed. New Jersey: Prentice Hall, 2016. 766 p
  12. Melin P., Castillo O. Modeling, Simulation and Control of Non-linear Dynamical Systems: An Intelligent Approach Using Soft Computing and Fractal Theory. Boca Raton: Taylor & Francis, 2017. 26 p

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Василенко К.А., Золкин А.Л., Абрамов Н.В., Курганов Д.О., 2020

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Данный сайт использует cookie-файлы

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта.

О куки-файлах