ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 8
ВВЕДЕНИЕ 9
1. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ 13
1.1. Обзор текущей архитектуры ПГД 13
1.2. Обзор компонентов текущей архитектуры ПГД 15
1.2.1. Каркас сервисов 15
1.2.2. Балансировщик клиентских запросов 25
1.2.3. Диспетчер задач обработки графических документов 29
1.2.4. Модуль-обработчик двухмерных графических документов 33
1.2.5. Модуль-обработчик трехмерных графических документов 38
1.2.6. Сервис импорта структуры трехмерных моделей в базу данных 41
1.2.7. Навигатор для трехмерных моделей 43
2. ИССЛЕДОВАТЕЛЬСКАЯ ЧАСТЬ 44
2.1. Выявление проблем в архитектуры ПГД 44
2.2. Выбор решения для реализации внешних очередей запросов 48
2.3. Подготовка исходных данных для тестирования архитектурных решений ПГД 52
3. КОНСТРУКТОРСКАЯ ЧАСТЬ 61
3.1. Определение требований к ПГД 61
3.2. Концептуальная постановка задачи проектирования ПГД 63
3.3. Перепроектирование архитектуры ПГД 64
3.3.1. Оценка сложности обработки двухмерной и трехмерной графической
документации 67
3.3.2. Особенности архитектуры ПГД 69
3.4. Имитационное моделирование работы ПГД 72
3.4.1. Использование дискретно-событийного моделирования для определения
характеристик СМО 72
3.4.2. Разработка дискретно-событийной модели для оценки характеристик ПГД 74
ЗАКЛЮЧЕНИЕ 80
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 81
ПРИЛОЖЕНИЕ А 84
ПРИЛОЖЕНИЕ Б
В последние годы в Российской Федерации активно развиваются и внедряются в строительную отрасль Л7Д /-технологии.
BIM- это вся имеющая числовое описание и нужным образом организованная и управляемая информация об объекте, используемая как на стадии проектирования и строительства здания, так и в период его эксплуатации и сноса [1].
Внедрение BIMна правительственном уровне началось в 2014 году. В конце 2014 года были разработан и утвержден план [2] поэтапного внедрения технологий информационного моделирования в области промышленного и гражданского строительства, включающий предоставление возможности проведения экспертизы проектной документации, подготовленной с использованием таких технологий. План рассчитан на три года, однако ориентирован только на усовершенствование этапа проектирования: организация и контроль строительства, а также этап эксплуатации зданий в этот этап не попадают [3]. В 2015 году началась разработка стандартов по BIM, стартовали пилотные проекты с участием отобранных Минстроем проектных организаций. Внедрение BIMв сфере строительства, а не в проектировании, началось с поручения [4] президента России в 2016 году о разработке соответствующего плана [5] мероприятий к осени того же года. План был утвержден весной 2017 годе. Пункт 14 плана предписывает разработку национальных стандартов информационного моделирования в процессах проектирования, строительства, эксплуатации и сноса объектов капитального строительства к началу 2018 года. Пункты 16 - 18 плана предписывают создание к концу 2018 года геоинформационной системы моделирования в строительстве, обеспечивающей возможность автоматизированного проектирования с использованием классификатора строительных ресурсов, системных нормативов, нормативно-технических документов, применяемых в строительстве.
План мероприятий, утвержденный в 2017 году, не оправдал ожиданий. Авторы документа попытались охватить сразу две темы: вводимую в практику реализации государственных проектов новую стадию обоснования инвестиций (ОБИН) и внедрение в отрасль информационного моделирования. Сама идея объединения в один документ столь разных тем является крайне неудачной, поскольку каждая из них достойна отдельного плана, а объединение получилось весьма искусственным. К тому же на российском рынке наработан опыт применения BIMв проектировании и строительстве, но эти стадии в документе практически не упоминаются, следовательно, мероприятиями плана не поддерживаются. Для вводимой стадии ОБИН большее значение имеет наличие массива данных, информации по проектам-аналогам, нежели сами инструменты. По этой причине жесткая привязка ОБИН и BIMабсолютно не оправданна.
Для того, чтобы стимулировать развитие информационного моделирования в строительстве, президент России в 2018 году сформулировал очередное поручение [6], в соответствии с которым к середине 2019 года необходимо, в частности, обеспечить применение типовых моделей систем управления (проектной, строительной, эксплуатационной и утилизационной) в первоочередном порядке в социальной сфере, а также обеспечить стимулирование разработки и использования отечественного ПО для информационного моделирования зданий и сооружений.
В июне 2019 года понятия информационного моделирования и классификатора строительной информации закреплены в градостроительном комплексе федеральным законом [7]. Это является основанием для того, что в недалеком будущем при создании любых строительных объектов по городскому заказу будут применяться BIM-технологии, что позволит оптимизировать этап не только этап проектирования, но и другие этапы жизненного цикла здания. Например, на совещании [8] от 1 марта 2020 года было сформулировано поручение обеспечить переход к 1 января 2022 года на проектирование, строительство и эксплуатацию объектов транспортной инфраструктуры с применением BIM-технологий.
Переход к информационному моделированию в строительной отрасли обосновывает необходимость в соответствующем программном обеспечении, в т.ч. ПО для управления проектными организациями и электронным документооборотом. Разработка специализированного ПО для управления информацией об изделии на протяжении всего жизненного цикла в строительной области является актуальной проблемой.
В начале 2019 года в едином реестре российских программ для электронных вычислительных машин и баз данных зарегистрирована [9] российская коммерческая организация ООО «ИНГИПРО». Организация специализируется на разработке программного продукта, предоставляющего следующие возможности.
1. Хранение и предоставление доступа к проектной документации.
2. Управление версиями документов.
3. Поиск проектной документации по заданным критериям.
4. Проверка документации в режиме реального времени.
5. Согласование как отдельных версий документов, так и комплектов документации.
6. Проведение совещаний в режиме реального времени с функцией синхронизации при просмотре документов.
7. Управление задачами в привязке к отдельным документам или комплектам документации.
8. Оповещения в режиме реального времени об изменении состояния проектной документации или связанных задач.
9. Управление группами пользователей.
10. Разграничение доступа к проектной документации на уровне отдельных пользователей и групп пользователей.
Программный продукт проектируется и разрабатывается с учетом особенностей процессов принятия решений в строительной отрасли. Система ориентирована на внедрение в крупные распределенные компании, работающие с масштабными проектами (порядка нескольких тысяч документов).
Данная работа посвящена проблемам разработки конкретного модуля программного продукта «ИНГИПРО» - подсистеме обработки графических документов (ПГД). Подсистема предназначена для обработки двухмерной и трехмерной документации в целях последующего отображения содержимого и, возможно, его структуры. ПГД является критически важной частью программного продукта, поскольку реализует основную функциональность.
В последнее время нагрузка на ПГД увеличивается. Это обусловлено притоком пользователей двум основным причинам: повсеместное внедрение технологий информационного моделирования в строительной отрасли в России; переход на удаленную работу в связи с пандемией коронавируса. Приток пользователей приводит к увеличению интенсивности обработки документации в системе: пользователи чаще и в больших объемах загружают документы, которые необходимо подготовить для последующего отображения.
Объектом исследования в рамках данной работы является архитектура подсистемы обработки двухмерных и трехмерных графических документов, загружаемых пользователями в систему «ИНГИПРО».
Целью данной работы является проектирование и реализация архитектуры программного модуля ПГД для устранения проблем производительности при обработке графических документов.
В результате выполнения выпускной квалификационной работы выполнено проектирование и разработка архитектуры подсистемы обработки графической документации.
В ходе выполнения работы был проведен анализ уязвимых мест в прежней архитектуре подсистемы. На основе анализа были сформулированы предварительные требования к архитектуре с точки зрения устойчивости к нагрузкам. Окончательный список требований включает в себя бизнес- требования, сформированные заказчиком.
В ходе проектирования пересмотрен подход к взаимодействию между компонентами архитектуры. Предложенный в рамках данной работы подход основан на взаимодействии через брокеры сообщений.
Проведено исследование существующих решений для управления потоками сообщений. Результаты исследования представлены в сводной таблице в приложении А. По результатам исследования принято решение о внедрении в проектируемую архитектуру готового решения Redisдля управления очередями сообщений.
Выполнено проектирование архитектуры ПГД с учетом всех данных, полученных на предыдущих этапах выполнения работы. Представленная в работе архитектура масштабируется на всех уровнях, за исключением хранилища результатов обработки
Для оценки качества архитектурного решения разработана дискретно-событийная имитационная модель ПГД. Предварительно, осуществлен сбор исходных данных для параметризации модели. Выполнено моделирование работы подсистемы в различных конфигурациях. По результатам моделирования сделан вывод о том, что подсистема соответствует требованиям относительно устойчивости к нагрузкам при условии масштабируемости отдельно взятых компонент.
1. Талапов, В.В. Основы BIM: введение в информационное моделирование зданий. / В.В. Талапов. — М.: ДМК Пресс, 2011. — 392 с.: ил.
2. Об утверждении плана поэтапного внедрения технологий информационного моделирования в области промышленного и гражданского строительства [Текст]: приказ министерства строительства и жилищно-коммунального хозяйства Российской Федерации от 29 декабря 2014 г. № 926/пр.
3. Внедрение BIMв России: куда оно пойдёт? [Электронный ресурс]. Режим доступа: http:// isicad. ru/ru/articl es.php?articl e_num= 17535.
4. Перечень поручений по итогам заседания Государственного совета, Пр-
1138ГС, п.2.б [Электронный ресурс]. Режим доступа:
http://kremlin.ru/acts/assignments/orders/52154.
5. План мероприятий по внедрению оценки экономической эффективности обоснования инвестиций и технологий информационного моделирования на всех стадиях «жизненного цикла» объекта капитального строительства [Текст]: постановление заместителя председателя правительства Российской Федерации от 11 апреля 2017 г. № 2468п-П9.
6. Поручение президента Российской Федерации от 19 июля 2018 г. № Пр-
1235 [Электронный ресурс]. Режим доступа:
http://docs.cntd.ru/document/550966183
7. О внесении изменений в Федеральный закон «Об участии в долевом строительстве многоквартирных домов и иных объектов недвижимости и о внесении изменений в некоторые законодательные акты Российской Федерации» и отдельные законодательные акты Российской Федерации [Текст]: Федеральный закон от 27 июня 2019 г. № ФКЗ-151.
8. О ходе реализации национального проекта «Транспортная часть комплексного плана модернизации и расширения магистральной инфраструктуры на период до 2024 года» [Текст]: протокол совещания у заместителя председателя правительства Российской Федерации от 1 марта 2020 г. № МХ-П16-17пр.
9. О включении сведений о программном обеспечении в единый реестр
российских программ для электронных вычислительных машин и баз данных [Текст]: приказ министерства цифрового развития связи и массовых
коммуникаций Российской Федерации от 29 декабря 2018 г. № 760.
10. Айвалиотис, Д. Администрирование сервера NGINX / Д. Айвалиотис. — М.: ДМК Пресс, 2013. — 288с.: ил.
11. Теренс, Ч. Системное программирование на C++ для UNIX:пер. с англ. / Ч. Теренс. — К.: Издательская группа BHV, 1997. — 592с.
12. Van der Mei R. D., Hariharan R., Reeser P. Web Server Performance Modeling. Telecommunication systems, vol. 16. January, 2001.
13. Prakash P., Biju R., Kamath, Mohan S., Performance analysis of process driven and event driven web servers. International Conference on Intelligent Systems and Control. January, 2015.
14. Стивенс, Р. TCP/IP Illustrated: the protocols/ Р. Стивенс. — СПб.: БХВ- Петербург, 2003. — 338с.: ил.
15. Listen(2) - BSD System Calls Manual[Электронный ресурс]. Режим доступа: https://wwwfreebsd. org/ cgi/man. cgi?query=l isten&sektion=2
16. Listen(2) - Linux man page[Электронный ресурс]. Режим доступа: https://l in ux.die.net/ man/2/1 isten
17. Dissecting message queues[Электронный ресурс]. Режим доступа: https://bravenewgeek.com/dissecting-message-queues/.
18. Sharvari T., Sowmya K. A study on Modern Messaging Systems- Kafka, RabbitMQ and NATS Streaming. December, 2019.
19. Kreps J., Narkhede N., Rao J. Kafka: a Distributed Messaging System for Log Processing. SIGMOD Workshop on Networking Meets Databases. 2011.
20. Vineet J., Xia L. A Survey of Distributed Message Broker Queues. April, 2017.
21. Benchmarking NATS Streaming and Apache Kafka[Электронный ресурс].
Режим доступа: https://dzone.com/articles/benchmarking-nats-streaming-and-
apache-kafka.
22. RabbitMQ Performance Measurements[Электронный ресурс]. Режим
доступа: https://www.rabbitmq.com/blog/2012/04/25/rabbitmq-performance-
measurements-part-2/.
23. Tech Preview: Redis Enterprise 5.3 with Streams is here![Электронный ресурс]. Режим доступа: https://redislabs.com/blog/tech-preview-redis-enterprise-5- 3-streams/.
24. Hedge R. G., Nagaraja G. S. Low Latency Message Brokers. International Research Journal of Engineering and Technology. Vol 7. May, 2020.
25. Трассировка сервисов, OpenTracingи Jaeger[Электронный ресурс]. Режим доступа: https://habr.com/ru/company/srg/blog/446752/.
26. Pattern: Distributed tracing[Электронный ресурс]. Режим доступа: https://microservices .io/patterns/ observability/ distributed-tracing.html.
27. Alhamazani K., Ranjan R., Mitra K., Rabhi F., Khan S. U., Guabtni A., Bhatnagar V. An Overview of the Commercial Cloud Monitoring Tools: Research Dimensions, Design Issues, and State-of-the-Art. Computing. Vol 97. April, 2014.