Научная статья на тему 'ВЫБОР СРЕДСТВ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УЧЁТА ОБОРУДОВАНИЯ И РАСХОДНЫХ МАТЕРИАЛОВ НАУЧНО-ПРОИЗВОДСТВЕННОГО ПРЕДПРИЯТИЯ'

ВЫБОР СРЕДСТВ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УЧЁТА ОБОРУДОВАНИЯ И РАСХОДНЫХ МАТЕРИАЛОВ НАУЧНО-ПРОИЗВОДСТВЕННОГО ПРЕДПРИЯТИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
83
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АВТОМАТИЗАЦИЯ / СКЛАДСКОЙ УЧЁТ / ЭФФЕКТИВНОСТЬ / ПРОИЗВОДСТВО / СИСТЕМА

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Горев Я.Н.

В статье рассматриваются средства для разработки автоматизированной системы учёта оборудования и расходных материалов. К каждой разрабатываемой системе предъявляются уникальные требования в зависимости от цели и области её применения. Для того, чтобы удовлетворить предъявляемые требования необходимо выбрать правильные средства разработки. Предлагаемые в статье средства разработки способствуют реализации автоматизированной системы складского учёта для удовлетворения требований научно-производственного предприятия малых масштабов с сильно ограниченным бюджетом.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Горев Я.Н.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

CHOOSING DEVELOPMENT TOOLS OF AN AUTOMATED ACCOUNTING SYSTEM FOR EQUIPMENT AND CONSUMABLES OF A RESEARCH AND PRODUCTION ENTERPRISE

The article discusses tools for developing an automated system for equipment and consumables management. Each developed system has unique requirements depending on its purpose and application area. To meet these requirements, it is necessary to choose the right development tools. The proposed development tools in the article contribute to the implementation of an automated warehouse management system to satisfy the requirements of a small-scale scientific and production enterprise with a limited budget

Текст научной работы на тему «ВЫБОР СРЕДСТВ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УЧЁТА ОБОРУДОВАНИЯ И РАСХОДНЫХ МАТЕРИАЛОВ НАУЧНО-ПРОИЗВОДСТВЕННОГО ПРЕДПРИЯТИЯ»

УДК 658.512:005

Горев Я.Н.

магистр, инженер ООО «Айвок» (г. Москва, г. Зеленоград, Россия)

ВЫБОР СРЕДСТВ РАЗРАБОТКИ АВТОМАТИЗИРОВАННОЙ СИСТЕМЫ УЧЁТА ОБОРУДОВАНИЯ И РАСХОДНЫХ МАТЕРИАЛОВ НАУЧНО-ПРОИЗВОДСТВЕННОГО ПРЕДПРИЯТИЯ

Аннотация: в статье рассматриваются средства для разработки автоматизированной системы учёта оборудования и расходных материалов. К каждой разрабатываемой системе предъявляются уникальные требования в зависимости от цели и области её применения. Для того, чтобы удовлетворить предъявляемые требования необходимо выбрать правильные средства разработки. Предлагаемые в статье средства разработки способствуют реализации автоматизированной системы складского учёта для удовлетворения требований научно-производственного предприятия малых масштабов с сильно ограниченным бюджетом.

Ключевые слова: автоматизация, складской учёт, эффективность, производство, система.

Обоснование необходимости

Как правило целью предприятий в общем смысле является достижение прибыли и удовлетворение потребностей своих клиентов. Предприятия стремятся создавать товары и услуги, которые будут востребованы на рынке, привлекать и удерживать клиентов, обеспечивать качество продукции и эффективное функционирование бизнеса, а также получать прибыль для обеспечения роста и развития компании. На эффективном функционировании бизнеса необходимо заострить внимание. Это процесс, который нуждается в повышении эффективности на предприятии ООО «Айвок». На данный момент

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

Определение требований

После принятия решения и определения требований к системе требуется выбрать средства разработки. Выбирать средства необходимо с учётом всех предполагающихся функций. Ниже приведены функциональные и нефункциональные требования.

Функциональные требования

1. Регистрация аккаунта в системе.

2. Удалённая работа с программой.

3. Уведомления о малом и критически малом количестве ресурсов.

4. Настройки автоматической закупки ресурсов.

5. Синхронизация баз в режиме реального времени.

6. Создание и редактирование категорий и подкатегорий ресурсов.

7. Генерация топологии склада.

Нефункциональные требования

1. Сервер должен работать на QNAP NAS. Операционная система (ОС)

Linux.

2. Сервер должен иметь возможность запускаться на ОС Windows.

3. Важное: Доступ к АСУОР должен осуществляться с любой ОС: Linux, macOS, Windows, Android, iOS.

4. Сервер должен обрабатывать одновременно несколько подключений.

5. Должна быть возможность доработки функционала системы.

Выбор языка программирования Backend

Для выбора языка программирования были важны 3 критерия:

- Скорость работы языка программирования. Разным языкам программирования на выполнение одинаковых вычислений может потребоваться разное количество времени. Чем меньше этот показатель, тем быстрее работает язык и эффективнее выполняет задачи.

Вес этого критерия = 0,3.

Была поставлена одинаковая задача для программ, написанных на сравниваемых языках программирования. Результаты исследования, проводившегося в Санкт-Петербургском университете телекоммуникаций им. проф. Бонч-Бруева [1], представлены на рис. 1.

Ассемблер о,00763

С 0,00953

Objective-C 0,00959

С++ 0,0096

С# 0,01864 VlsualBasic

Java 0,01398

Python 0,02078

0,02135

PHP 0,02313

Рис. 1. Сравнение скорости работы языков

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

Вес этого критерия = 0,1.

Данные о популярности языка в 2022 году представлены на рис. 2.

Рис. 2. Статистика использования языка [2]

- Навык работы с языком программирования. Этот критерий является субъективным в отличие от двух других. Он показывает уровень квалификации программиста, который разрабатывает систему. Навык работы программиста с языком программирования является самым весомым, так как конечный продукт будет выполнен качественнее.

Вес этого критерия = 0,6.

Для сравнения были выбраны наиболее подходящие для поставленной задачи языки: Python [3], C++ [4], Java, PHP [5].

Сравнение языков программирования и результаты представлены в таблице 1.

Таблица 1. Сравнение языков программирования

Язык

программирования Критерий Python C++ Java PHP Вес параметра:

Скорость работы 0,02078 0,00960 0,01898 0,02318 0,3

Сообщество 11,2 3,3 14,3 10,6 0,1

Навык работы 9 4 3 1 0,6

Общая оценка 10 9 5 2

Расчёты общей оценки для каждого языка программирования проводились по формуле:

Общая оценка «язык программирования» = (((Сообщество «язык программирования» * 0,1) + (Навык работы с «язык программирования» * 0,6)) / (Скорость работы «язык программирования» * 0,3)) / 100

Выбор фреймворка Backend

FastAPI — это современный фреймворк для разработки веб-приложений на языке Python. Он предлагает ряд преимуществ, которые делают его привлекательным выбором для многих разработчиков.

Аналогами являются Flask и Django.

Сравнение фреймворков для Backend и результаты представлены в таблице 2.

Таблица 2. Сравнение фреймворков

^^^ Фреймворк Функция FastAPI [6] Flask [7] Django [8]

Производительность Высокая Средняя Средняя

Асинхронность Полная поддержка Нет нативной поддержки Нет нативной поддержки

Автоматическая документация Да (с использованием OpenAPI и Swagger UI) Нет (требует дополнительной настройки) Нет (требует дополнительной настройки)

Валидация данных Встроенная поддержка с использованием Pydantic Ручная настройка Ручная настройка

Поддержка типизации Полная поддержка аннотаций типов Python Ограниченная поддержка Ограниченная поддержка

Функциональность Простой, но с хорошей функциональностью Гибкий и легковесный Полнофункциональный

Административный интерфейс Нет встроенного Нет встроенного Встроенный, полноценный

Сообщество Растущее Большое Большое

По итогам сравнительного анализа можно сделать вывод, что FastAPI обладает рядом преимуществ, которые важны для выполнения поставленной задачи, по сравнению с аналогами, а именно: поддержка асинхронности, автоматическая документация и поддержка типов Python.

Выбор языка программирования веб-приложения Frontend

Для разработки веб-приложений существует множество языков программирования. Но основными являются:

- JavaScript: JavaScript является наиболее широко используемым языком программирования для веб-браузеров. Он предоставляет возможность создания динамических и интерактивных веб-страниц [9].

- HTML: HTML (HyperText Markup Language) является основным языком разметки, используемым для создания структуры и содержимого вебстраниц. Хотя HTML сам по себе не является языком программирования, он необходим для создания основных элементов веб-страницы.

- CSS: CSS (Cascading Style Sheets) используется для определения внешнего вида и стиля веб-страниц. Он позволяет управлять оформлением элементов HTML, включая цвета, шрифты, макеты и другие аспекты визуального представления.

JavaScript является самым лучшим и полным решением. Аналогов на сегодняшний день не существует. Конечно, не обойтись без использования HTML и CSS.

Выбор библиотеки

React — это JavaScript библиотека для создания пользовательских интерфейсов. Она стала популярной из-за своей эффективности, гибкости и простоты в использовании [10].

Из аналогичных решений можно выделить Angular, Vue.js [11].

Сравнение библиотек для веб-приложения (frontend) и результаты представлены в таблице 3.

Таблица 3. Сравнение библиотек

Библиотека Функция React Angular Vue.js

Изучение Легко освоить Более сложно освоить Легко освоить

Размер библиотеки Небольшой Большой Небольшой

Производительность Высокая Высокая Высокая

Сообщество Большое Большое Растущее

Гибкость Отличная гибкость и настраиваемость Менее гибкий и более ограниченный Гибкий и настраиваемый

Рендеринг на сервере Поддержка SSR (Server-Side Rendering) Поддержка SSR (Server-Side Rendering) Поддержка SSR (Server-Side Rendering)

Отрисовка Виртуальная отрисовка Обычная отрисовка Виртуальная отрисовка

Управление состоянием Однонаправленный поток данных Однонаправленный поток данных Однонаправленный поток данных

React выделяется самой лучшей гибкостью, то есть способностью адаптироваться к различным требованиям и изменениям проекта. Так как проект планируется дорабатывать и изменять, то React станет лучшим выбором.

Выбор SQL или NoSQL

Существует два основных подхода к организации и управлению данными: SQL и NoSQL (Not Only SQL).

Оба подхода имеют свои преимущества и недостатки, и выбор между SQL и NoSQL зависит от конкретных требований проекта. Если важна схема данных, сложные запросы и согласованность, SQL база данных может быть предпочтительной. В то же время, если требуется гибкость, масштабируемость и обработка больших объемов неструктурированных данных, NoSQL база данных может быть более подходящим решением [12].

В поставленной задаче будет реализован алгоритм взятия и возврата ресурса. То есть потребуется использовать связи. Таким образом необходимо выбрать SQL.

Выбор базы данных на языке SQL

Существует множество решений SQL, которые предоставляют возможности управления и обработки данных с использованием языка SQL. Наиболее популярными решениями SQL являются [13]:

- MySQL

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- PostgreSQL

- Oracle Database

- Microsoft SQL Server

Сравнительный анализ реляционных баз данных SQL приведён в таблице

4.

Таблица 4. Сравнение баз данных

\ База данных Характеристики ^ч MySQL PostgreSQL Oracle Database Microsoft SQL Server

Лицензия Открытая Открытая Коммерческая Коммерческая

Масштабируемость Вертикальная Горизонтальная Вертикальная Вертикальная

Расширяемость Да Да Да Да

Поддержка репликации Да Да Да Да

Поддержка транзакций Да Да Да Да

Географическая информация Ограниченная Да Да Да

Полнотекстовый поиск Ограниченная Да Да Да

Интеграция с другими продуктами Ограниченная Да Да Да

Поддержка кластеризации Ограниченная Да Да Да

Иерархичность Нет Да Да Нет

Oracle Database и Microsoft SQL Server не могут рассматриваться из-за платной лицензии и недоступности в Российской Федерации.

Для разработки АСУОР с категориями и подкатегориями требуется иерархичность данных. Из оставшихся решений этим обладает только PostgreSQL [14].

Рис. 3. Архитектура СУБД PostgreSQL

СУБД PostgreSQL использует клиент-серверную архитектуру, где несколько клиентов подключаются к серверу по протоколу TCP/IP. Операции с данными выполняются на сервере, что обеспечивает целостность данных при одновременном доступе множества пользователей. Клиенты могут использовать стандартные интерфейсы, такие как ODBC/JDBC, а также разрабатывать графические приложения. PostgreSQL может быть использована в различных приложениях, включая Microsoft Office, а также предоставлять доступ к данным через веб-интерфейс без дополнительного программного обеспечения на клиентской стороне.

Выбор способа развёртки

Существует множество средств развертки, основанных на виртуализации. Ниже приведены основные средства развертки:

- VMware vSphere [15].

- Microsoft Hyper-V [16].

- Oracle VirtualBox [17].

- Docker [18].

- Kubernetes [19].

Сравнение средств развёртки, основанных на виртуализации представлено в таблице 5.

Таблица 5. Сравнение средств развёртки, основанных на виртуализации

Виртуальная машина Критерии ^^ VMware vSphere Microsoft Hyper-V Oracle VirtualBox Docker Kubernetes

Поддержка операционных систем Windows, Linux, macOS и другие Windows и некоторые дистрибутивы Linux Windows, Linux, macOS и другие Windows, Linux и macOS Windows, Linux, macOS и другие

Инструменты управления Богатый набор Инструменты Hyper-V Интуитивный Отдельные инструменты Kubernetes API

Масштабируемост ь Высокая Средняя Средняя Средняя Высокая

Сложность использования Средняя Средняя Низкая Низкая Высокая

Гибкость настройки Высокая Средняя Высокая Средняя Высокая

Совместимость Высокая Высокая Высокая Средняя Средняя

Требования к ресурсам аппаратной части Высокие Средние Средние Низкие Средние

Стоимость Коммерческо е решение Коммерческое решение Бесплатно Бесплатно Бесплатно

Средством развёртывания, основанным на виртуализации выбрано Docker, так как это бесплатное ПО с открытым исходным кодом, имеет низкие

требования к ресурсам аппаратной части. Возможно использовать на Linux и Windows.

Заключение

Основываясь на сравнительном анализе, выбраны средства разработки АСУОР. Для разработки Backend части, благодаря своей простоте и функциональности, выбран язык программирования Python с использованием фреймворка FastAPI. Для Frontend части выбран язык программирования JavaScript, не имеющий аналогов; в качестве библиотеки к нему будет использоваться React, которая имеет отличную гибкость и настраиваемость по сравнению с конкурентами, что будет важно для последующих изменений и доработок, которые планируются. В качестве базы данных послужит PostgreSQL с открытым исходным кодом, которая имеет тип данных LTree, что позволяет создавать вложенные категории. В качестве способа развёртки выбран Docker, который предоставляет возможность запустить АСУОР на машине как с Linux, так и с Windows.

СПИСОК ЛИТЕРАТУРЫ:

1. Коровин И.В., Пулькин И.А., Веранян А.С. Исследование скоростей выполнения базовых математических задач популярных языков программирования // Экономика и качество систем связи. Санкт-Петербург. 2019. С. 63-68.

2. Рейтинг языков программирования 2022. C# обошел Java, TypeScript сравнялся с PHP, а Dart - наиболее комфортный язык [Электронный ресурс]. -Режим доступа: https://habr.com/ru/articles/651585/, свободный. - (дата обращения: 25.02.2023).

3. Дауни А.Б. Основы Python: Научитесь думать как программист / O'Reilly. С. 302.

4. Страуструп Б. Программирование. Принципы и практика использования C++ / Издательский дом «Вильямс». 2011. С. 1225.

5. Черномордов С.В. PHP или Java - какой язык подходит для вашего проекта? // Современные технологии в мировом научном пространстве. Пермь. 2017. С. 196-198.

6. Detection of phishing website using machine learning algorithms and deployment using fastapi / Ismail P. [et al.]// I-Manager's Journal on Computer Science. 2021. Vol.8 №4, P. 19-24.

7. Grinberg M. Flask Web Development // O'Reilly Media, Inc. 2018. P. 7-17.

8. Dauzon S., Bendoraitis A., Ravindran A. Django: Web development with Python: Learning Path / Packt Publishing Ltd. Birmingham. 2016. P. 9-138.

9. Duckett J. Beginning HTML, XHTML, CSS, and JavaScript / Wiley Publishing, Inc. Indiana. 2010. P. 421-585.

10. Gackenheimer C. Introduction to React / Apress. New York. 2015. P. 1-42.

11. Saks. E. JavaScript frameworks: Angular vs React vs Vue / Bachelor's Thesis. 2019. P. 8-15.

12. Vatika S., Meenu D. SQL and NoSQL Databases // International Journal of Advanced Research in Computer Science and Software Engineering. 2012. Vol. 2. №28. P. 20-27.

13. Truica C.-O., Boicea A., Radulescu F. Asynchronous Replication in Microsoft SQL Server, PostgreSQL and MySQL // International Conference on Cyber Science and Engineering. 2013. P. 50-55.

14. СУБД PostgreSQL. Особенности и архитектура Postgres [Электронный ресурс]. - Режим доступа: https://otus.ru/nest/post/1584/, свободный. - (дата обращения: 24.05.2023).

15. Guthrie F., Lowe S., Kendrick. VMware vSphere Design: Second Edition / John Wiley & Sons, Inc. Indiana. 2013. P. 59-94.

16. Leinenbach D., Santen T. Verifying the Microsoft Hyper-V Hypervisor with VCC // International Symposium on Formal Methods. 2009. P. 806-809.

17. Oracle VM VirtualBox [Электронный ресурс]. - Режим доступа: https://www.oracle.com/cis/virtualization/virtualbox/, свободный. - (дата обращения: 11.04.2023).

18. Combe T., Martin A., Di Pietro R. To Docker or Not to Docker: A Security Perspective // IEEE Cloud Computing Vol. 3, №5. 2016. P. 54-62.

19. Sayfan G. Mastering Kubernetes / Large scale container deployment and management. Birmingham-Mumbai. 2017. P. 65-90.

Gorev Ia.N.

Aivok LLC (Moscow, Zelenograd, Russia)

CHOOSING DEVELOPMENT TOOLS OF AN AUTOMATED ACCOUNTING SYSTEM FOR EQUIPMENT AND CONSUMABLES OF A RESEARCH AND PRODUCTION ENTERPRISE

Abstract: the article discusses tools for developing an automated system for equipment and consumables management. Each developed system has unique requirements depending on its purpose and application area. To meet these requirements, it is necessary to choose the right development tools. The proposed development tools in the article contribute to the implementation of an automated warehouse management system to satisfy the requirements of a small-scale scientific and production enterprise with a limited budget.

Keywords: automation, inventory management, efficiency, production, system.

i Надоели баннеры? Вы всегда можете отключить рекламу.