rest api anylogic - выполнение модели на своём русском сайте
Запись от anaschu размещена 02.07.2026 в 18:44
Показов 1218
Комментарии 1
|
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно потными) кейсом того, как мы с нейросетью за два дня прошли путь от полного нуля и зависших плагинов до готового, работающего в продакшене веб-сервиса, который дергает симуляции AnyLogic Cloud. Статья будет полезна всем, кто ковыряет имитационное моделирование, пытается связать AnyLogic с веб-интерфейсами на Java и сталкивается с суровыми реалиями блокировок и капризов IDE. День 1. Попытка №1: Официальный Java Client и война с VS Code Задача: Сделать простейший сайт (HTML-страница с кнопкой), при нажатии на которую локальный Java-сервер отправляет запрос в AnyLogic Cloud, запускает симуляцию и возвращает результат на фронтенд. Скачали официальную библиотеку anylogic-cloud-client-8.5.0.jar. И тут начался классический ад новичка в VS Code:
Итог дня: Написали простейший сервер-заглушку на чистом
День 2. Драма с VPN, переход на чистый REST API и Docker На второй день мы решили полностью отказаться от капризного JAR-файла AnyLogic. Зачем тащить тяжелую внешнюю либу, если AnyLogic Cloud прекрасно работает через обычные HTTP-запросы и JSON? Решение: Переписали MainServer.java на встроенный в современную Java класс
В чем был подвох? Выяснилось, что провайдер жестко блокирует адреса AnyLogic Cloud. Через браузер с включенным VPN модель открывается, а локальный Java-сервер, естественно, стучится в сеть напрямую и упирается в глухую стену. Выход в продакшен: Render.com и Docker Раз локально из-за блокировок запустить не получается, а Google Cloud требует зарубежную карту даже для бесплатных лимитов, мы пошли на Render.com (отличный бесплатный хостинг, где карту не просят). Написали Dockerfile:
Залили всё на GitHub, подключили репозиторий к Render. Облако само развернуло Docker-контейнер на сервере во Франкфурте (Германия). Поскольку там никаких блокировок нет, наш бэкенд получил прямую связь с серверами AnyLogic! Получили рабочую ссылку вида
Эврика! Идеальное решение через iframe Когда всё заработало, пришло осознание: если наша цель — показать пользователю (или, например, ученику на занятии) красивую живую 2D/3D анимацию модели, дать ему возможность крутить ползунки и менять параметры «на лету», то городить свой бэкенд на Java с API-ключами вообще... не нужно! AnyLogic Cloud позволяет встраивать интерактивный плеер модели прямо внутрь любого сайта. Мы полностью очистили файл index.html, выкинули весь сложный Java-код обработки кликов и вставили туда обычный HTML-тег <iframe>:
Финальный результат: Получился полноценный, красивый сайт в реальном интернете. При заходе на него по центру разворачивается родной интерактивный плеер AnyLogic Cloud (тестировали на официальной модели AGV Charging). Для зарубежных пользователей (например, студентов или учеников из США) всё грузится моментально, плеер работает без VPN, можно запускать эксперименты и смотреть анимацию логистики прямо внутри кастомной страницы! И всё это на 100% бесплатно, легально и доступно даже на бесплатной версии AnyLogic PLE. Вот такой путь от "почему не компилируется jar" до изящного iframe-решения в Docker-контейнере. Если у кого-то возникнут вопросы по связке AnyLogic с веб-хостингами — велкам в комментарии, разберем! | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
-
В VS Code нет никакого встроенного компилятора.
В VS Code нет никакого встроенного PowerShell.
А точно провайдер вообще слышал, что такое AnyLogic, а не сам AnyLogic отпинывает россиян?)
Т.е. ты решил собрать образ с компилятором Джавы, который каждый раз при запуске будет собирать приложение? И пофиг сколько такой образ весить будет?
Это не нюанс, это непонимание, что JRE не содержит никаких компиляторов. Он только для исполнения готовых JAR'ов.
Изящным это решение назвать затруднительно.
Запись от Usaga размещена 04.07.2026 в 11:53



