EXPERT SYSTEMS IN COMPUTER NETWORK: CREATION ISSUES DURING WEB DEVELOPMENT


Cite item

Full Text

Abstract

This article looks at the issues of expert systems development in data-processing networks during web programming. The correlation of the processing, storage and transmission of information and web applications to the specificities and problematics of expert systems creation is observed. Under these circumstances, there are difficulties associated with network traffic, namely, with its workload, since there is a need for constant transfer of a large amount of information, which subsequently impedes the processes of contacting of clients with servers. In this case, the information can be subjected to threats of the integrity loss of the transmitted information, since there will be lack of required constant synchronization of data between client services and server services. In order to prevent and eliminate this problem the authors suggest to carefully choose a specific set of web-tools and applications. To achieve this, it is necessary to make a selection of and analyze programming languages and determine the language that corresponds to special requirements for creation of expert systems. Herewith, the new features of web applications for the client with daily developing information technologies should be taken into account.

Full Text

Введение В настоящее время экспертные системы вы- шли на новый уровень наряду с квалифициро- ванными специалистами в рамках анализа и ре- шения сложных вопросов и задач, при этом они выдают весьма эффективные и качественные ре- зультаты. К экспертным системам можно отнести компьютерные системы, обладающие способно- стью частичной замены специалистов-экспертов при разрешении проблемных ситуаций [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-страниц в данном случае выполняет поруче- ния клиентских приложений в вычислительной сети на компьютере пользователя, когда на серве- ре запускаются серверные приложения.
×

About the authors

K. A Vasilenko

Vladivostok State University of Economics and Service

Email: k2857@mail.ru
Vladivostok, Russian Federation

A. L Zolkin

Povolzhskiy State University of Telecommunications and Informatics

Email: alzolkin@list.ru
Samara, Russian Federation

N. V Abramov

Far Eastern Federal University

Email: nikolay.abramov1990@mail.ru
Vladivostok, Russian Federation

D. O Kurganov

Far Eastern Federal University

Email: kurganov_vl@mail.ru
Vladivostok, Russian Federation

References

  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

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2020 Vasilenko K.A., Zolkin A.L., Abramov N.V., Kurganov D.O.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies