Техническое описание ПО (способ распространения, инфраструктурные программные средства, реализация, описание технической архитектуры ПО
2.1 Требования к техническому обеспечению сервера:
  • Процессор не менее 2 ГГц
  • Объем оперативной памяти не менее 4ГБ
  • Свободный объем жесткого диска не менее 2,5 ГБ
  • Сетевой адаптер не менее 100 Мбит.
2.2 Требования к техническому обеспечению автоматизированного рабочего места пользователя:
  • Процессор не менее 1 ГГц;
  • Объем оперативной памяти не менее 4 Гб;
  • Объем жесткого диска не менее 100 Гб;
  • Сетевой адаптер не менее 100 Мбит;
  • Монитор с разрешающей способностью не менее 1920*1080;
  • Клавиатура русифицированная;
  • Манипулятор типа «мышь».

3 Требования к программному обеспечению

3.1 Требования к программному обеспечению сервера:
  • операционная система на базе Linux x86_64;
  • установленный Docker Desktop.

3.2 Требования к программному обеспечению автоматизированного рабочего места пользователя:

  • операционная система x86_64;
  • веб-браузер (актуальная версия).

3.3 Языки программирования, на которых написана программа


Для создания приложения и получения расчетных данных используется свободно-распространяемый язык программирования R. Также отдельные файлы, связанные с визуальной частью написаны написаны на языках HTML и JavaScript.

В составе ПО находятся 2 программных продукта:

PostgresSQL, который распространяется по Open Source license, и Postgrest API, который распространяется по MIT License, что ознает что означает эти продукты можно свободно использовать, распространять с коммерческими целями, модицифировать.


3.4 Модель использования программного обеспечения

ПО ЦДГ распространяется на коммерческой основе.

Возможно 2 варианта:

Модель подписки

один экземпляр на физическое или юридическое лицо на один год. Цена определяется объемом приобретаемых данных и сервисов. В течение года можно получать обновления ПО и самих данных. В случае продления подписки в течение года цена будет составлять 40% от полной цены. Требуется установка ПО на сервере заказчика.

Модель Saas (англ. software as a service программное обеспечение как услуга)

Клиент пользуется готовой веб-страницей, приложение и данные располагаются на серверах Dtwin, либо на арендованных, находящимися на территории РФ. Оплата дает доступ на 1 год к требуемым данным. Цена определяется объемом приобретаемых данных и сервисов.

Данное решение характеризуется следующим:

• доступ к программному обеспечению осуществляется удалённо по
сетевым каналам через веб-интерфейс;

• программное обеспечение развёрнуто на серверах поставщика или на арендованных серверах на территории Российской Федерации;

• не требует каких-либо действий для его запуска от клиента;

• обслуживание и обновление программного обеспечения выполняется
централизованно на стороне поставщика.

Руководство администратора и требования к персоналу.
5.1 Требования к квалификации

Для запуска ПО с настройками по умолчанию или при размещении ПО на серверах Dtwin достаточно быть опытным пользователем ПК.

Для индивидуальной настройки ПО под свои требования могут понадобиться базовые знания docker, SQL, веб-дизайна и знания по настройки сети.

При соответствующих навыках администратора возможен запуск ПО в системе Windows (технологии виртуализации или WSL2)

5.2 Архитектура ПО

ПО Dtwin состоит из базы данных на PostgreSQL и нескольких веб-сервисов( pgadmin -веб интерфейс базы данных

1. Базы данных цифрового двойника города на базе PostgreSQL.

Содержит справочники location, indicator, okved, scenario, unit, таблица maintable, содержающую статистические и расчетные данные по указанным параметрам, и дополнительные функции для работы с БД.

2. Pgadmin для администрирования БД

3. Веб сервиса с REST API для работы с БД пользователям через браузер и командную строку.

4. Веб интерфейса на базе Swagger для администраторов ПО — для получения информации о содержимом БД и методах доступа к ней, тестирования работы запросов.

Основные настройки ПО находятся в файле docker-compose.yml. Там можно изменить домен и порты, на котором отображаются веб страницы сервиса.

Для веб-интрефейса pgadmin чать настроек находится в pgadmin/servers.json. В /html/ можно менять вид стартовой страницы.

По умолчанию у анонимного пользователя есть права на все CRUD(создание, вставка, обновление, удаление) операции к базе данных. Изменить настройки доступа для анонимного пользователя можно либо перед запуском сервиса в init.sh, либо на запущенном сервисе через pgadmin.

Для запуска ПО на собственном домене, и для доступа к нему с других ПК

1.Если есть купленный домен, то на dns серверах домена (reg.ru, nic.ru или др.), создать новую "A" запись, указывающую на внешний ip сервера

2.Настроить внутренний firewall на сетевом оборудовании (если сервер за nat) или непосредственно на firewall сервера на прохождение портов. По умолчанию используются порты 4001:4005.



5.3 Обновление и устранение неполадок

5.3.1. Обновление данных.

Обновление данных возможно несколькими путями, по предпочтению пользователя. Клиенту присылают новые наборы данных в виде csv или sql файлов. Их можно запустить, через создание контейнеров БД с нуля или импортировать в базу через интерфейсы pgadmin или REST API.



5.3.2. Обновление функционала.

Компания Цифровой двойник постепенно расширяет функционал ПО, его можно самостоятельно скачать и обновить в течение года после покупки данных с github или другого источника, который будет указан. Обновление можно делать как полной переустановкой ПО( удаление и новый запуск контейнеров докер), так и самостоятельной настройкой новых функций, инструкция для этого будет приложена.

5.3.3. Устранение неполадок.

В случае неполадок можно обратиться к техподдержке Dtwin.

Руководство по эксплуатации:

В описании приведены ссылки на развернутое решение на сервере поставщика, как если ПО приобретено по модели Saas. Если ПО приобретено по подписочной модели, имя домена и порт будут отличаться.

Модуль1.

Модуль1 предназначен для получения и обновления данных из базы данных. Состоит из базы данных на PostgreSQL и нескольких несколько веб-сервисов:

1. Общее описание модуля и полезные ссылки, поиск в справочнике location http://db-valera.dtwin.ru:4002

2. Pgadmin: панель управления БД http://db-valera.dtwin.ru:4001 . Предназначено для администратора БД. Для входа на стартовой странице потребуется ввести логин и пароль, которые были заданы при установке в файле .env . По умолчанию

PGADMIN_LOGIN=admin@admin.com

PGADMIN_PASSWORD=admin

После ввода учетных данных при первом открытии будет предложено ввести пароль, по умолчанию POSTGRES_PASSWORD=postgres, также задан изначально в файле .env .

По умолчанию анонимный пользователь имеет право на операции чтения, вставки, изменения, удаления. Через интерфейс pgadmin это можно изменить.

Подробнее про как работать в pgadmin на странице официальной документации: https://www.pgadmin.org/docs/pgadmin4/latest/user_...

2. REST API
http://db-valera.dtwin.ru:4003

В ПО Dtwin используется REST API Postgrest. Благодаря REST API можно получать информацию из БД в формате JSON.

Для получения нужных данных полезно прочитать про синтаксис запросов : https://postgrest.org/en/stable/api.html

Примеры запросов в адресной строке браузера:

1.http://db-valera.dtwin.ru:4003/unit
2.http://db-valera.dtwin.ru:4003/location?long_name=eq.Норильск
3.http://db-valera.dtwin.ru:4003/location?id=lte.5000&order=id
4.http://db-valera.dtwin.ru:4003/location?long_name=like.*ское
5.http://db-valera.dtwin.ru:4003/location?long_name=like.*ское&id=lte.10000&select=id,name:long_name
6. http://db-valera.dtwin.ru:4003/maintable?limit=15&offset =30

Команда curl позволяет делать операции вставки, обновления, удаления. Примеры:

Вставка:

curl "http://db-valera.dtwin.ru:4003/unit" \
-X POST -H "Content-Type: application/json" \
-d '{ "id": 72, "unique_name": "много"}'

curl "http://db-valera.dtwin.ru:4003/unit" \
-X POST -H "Content-Type: application/json" \ -d @- << EOF \
[ { "id":74, "long_name":"NA", "description":"NA","unique_name":"ни то ни се","eng_name":"a few"},\
{ "id":73, "long_name":"NA", "description":"NA","unique_name":"мало","eng_name":"little"}\
] EOF

Замена:

curl "http://db-valera.dtwin.ru:4003/unit?unique_name=li....*руб*" \ -X PATCH -H "Content-Type: application/json" \ -d '{ "long_name": "золотой" }'

curl "http://db-valera.dtwin.ru:4003/unit?id=eq.74" \ -X PUT -H "Content-Type: application/json" \ -d '{ "id":74, "long_name":"NA", "description":"NA","unique_name":"несколько","eng_name":"some"}'

Удаление:

curl "http://db-valera.dtwin.ru:4003/unit?id=eq.1" -X DELETE -H "Prefer: return=representation"

3. Панель Swagger http://db-valera.dtwin.ru:4004

Панель Swagger предназначена для тестирования корректности работы CRUD(создание, вставка, замена, удаление) операций. Для примера выполним get запрос к справочнику unit:

1. Нажать GET /unit и после этого кнопку Try it out

Заполнить условия запроса и нажать кнопку Execute. В данном примере ищем строку с id=1

Получили такой ответ.

В поле curl видим как выглядит исполняемая команда, в поле ответа код 200, что означает запрос выполнен успешно и в response body видим json ответ.

Модуль2:

Модуль предназначен для визуализации и анализа данных и доступен по адресу http://db-valera.dtwin.ru:4010/

Этот веб-сайт использует файлы cookie
Принять