AnyLogic
Развернуть
Размер шрифта

Экспорт моделей в Java приложения

AnyLogic Professional поддерживает экспорт моделей в виде отдельных Java-приложений.

Вы можете запускать такие приложения на других компьютерах: для этого не требуется наличие установленного AnyLogic.

Модели AnyLogic, экспортированные как отдельные Java приложения, могут взаимодействовать с базами данных, внешними файлами и другими приложениями. Эта возможность позволяет вам встраивать имитационные модели в более масштабные системы принятия решений.

Журнал выполнения модели не экспортируется вместе с моделью. Кроме того, полезные данные внутри базы данных сжимаются для сокращения занимаемого места (т.е. автоматически срабатывает опция Оптимизировать размер при закрытии модели).

Чтобы экспортировать модель как отдельное Java-приложение

  1. Выделите элемент модели, которую вы хотите экспортировать, в панели Проекты. После этого выберите Файл >  Экспорт > В отдельное Java приложение из главного меню, или
    Щелкните правой кнопкой мыши по модели в панели Проекты (элемент верхнего уровня дерева моделей) и выберите  Экспорт > В отдельное Java приложение из контекстного меню.
  2. Откроется диалоговое окно Экспорт модели.

  3. Выберите эксперимент модели, который вы хотите экспортировать, из выпадающего списка Экспортировать эксперимент.
  4. Укажите каталог, в который вы хотите поместить файлы экспортируемой модели, в поле Каталог для создаваемых файлов. Вы можете выбрать каталог с помощью диалогового окна навигации, доступного по нажатию на кнопку Выбрать.
  5. Если по окончании экспорта вы хотите открыть папку экспортированной модели, чтобы затем самостоятельно запустить эту модель, оставьте установленным флажок Открыть папку экспортированной модели.
  6. По умолчанию кнопки панели инструментов и другие элементы пользовательского интерфейса приложения будут на том языке, который выбран в региональных настройках вашего компьютера. При необходимости (если вы планируете, что вашим приложением будут пользоваться иноязычные пользователи), вы можете выбрать другой язык интерфейса из выпадающего списка Язык.
  7. Если вы собираетесь запускать модель как отдельное приложение на других операционных системах (например, передавать модель другим пользователям, на чьих компьютерах, возможно, установлены другие ОС), ваша модель должна быть снабжена версиями браузера для macOS и Linux, в которых будет запускаться анимация модели. Чтобы скачать пакет браузера Chromium, содержащий версии браузера Windows, macOS и Linux, щелкните по ссылке Для поддержки нескольких ОС.... Начнется процесс скачивания. Браузеры будут сохранены в папку модели, экспортированной как отдельное Java-приложение. Таким образом экспортированную модель можно будет запускать на различных платформах.
  8. Щелкните мышью по кнопке Готово. Вы увидите диалоговое окно, в котором должно быть показано сообщение, уведомляющее об успешном завершении экспортирования.

Экспортированная как отдельное приложение модель представляет собой набор следующих файлов:

  • <имя модели>_windows.bat — файл, используемый для запуска автономного приложения на Windows;
  • <имя модели>_mac — файл, используемый для запуска автономного приложения на macOS;
  • <имя модели>_linux.sh — файл, используемый для запуска автономного приложения на Linux;
  • model.jar — скомпилированный файл модели;
  • папка lib — файлы библиотек, необходимых для работы модели (библиотека драйверов базы данных, файлы исполняющего модуля AnyLogic (com.anylogic.engine.jar), и т.д.);
  • (опционально) JAR-файлы и классы, необходимые для успешного построения модели (перечисленные в зависимостях модели);
  • (опционально) папка chromium — пакет Chromium (платформонезависимые браузеры Chromium для отображения модельной анимации на Windows, Linux и macOS);
  • AnyLogic Model User Agreement.pdf — Пользовательское соглашение AnyLogic в формате Adobe Reader (.pdf);
  • readme.txt — краткие инструкции в текстовом формате;
  • license.txt — Пользовательское соглашение AnyLogic в текстовом формате.

Для запуска модели AnyLogic, экспортированной как отдельное Java-приложение, не требуется AnyLogic, и она может быть запущена на любом компьютере, поддерживающем Java (на котором установлена Java 11 или выше). Чтобы скачать последнюю версию, посетите сайт Oracle.

Чтобы запустить модель AnyLogic, экспортированную как отдельное Java-приложение

  1. Запустите файл <имя модели>_<имя ОС>.bat.cmd/.sh, созданный при экспорте модели. Файл должен находиться в каталоге, указанном вами в качестве каталога для создаваемых файлов при экспорте модели.

Запустив модель, экспортированную как отдельное Java-приложение, вы увидите окно модели, аналогичное тому, что показывается при запуске модели из среды AnyLogic.

Экспортированная как отдельное приложение модель использует для выполнения поставляемый вместе с ней исполняющий модуль AnyLogic — AnyLogic Engine Runtime. Этот модуль представляет собой сервер, запущенный локально на определенном порте, к которому можно получить доступ с помощью веб-браузера.

С помощью окна О программе... вы можете получить информацию о том, какая версия AnyLogic Engine Runtime используется программой. Также здесь вы можете узнать, какая используется версия Java (и какой разрядности — 32 или 64 бита) и ознакомиться с лицензионным соглашением на использование приложения.

Размер окна задается в свойствах исходной модели в AnyLogic.

Если экспортируемая модель использует данные из встроенной БД, убедитесь в том, что для нее задан достаточный размер памяти, поскольку в экспортированном виде у модели и БД будет общая память. Сделать это можно в параметре Максимальный размер памяти свойств эксперимента, который вы собираетесь экспортировать.

Чтобы запустить экспортированную модель в определенном веб-браузере

  1. Создайте служебный файл com.anylogic.engine.ini в директории с экспортированной моделью, как описано ниже.
  2. Укажите внутри файла путь до исполняемого файла браузера, используя опцию standaloneBrowserPath:
    standaloneBrowserPath=C\:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe
    В строке в примере выше задан путь до установленного Firefox. Вы можете заменить этот путь подходящим для вашего случая — главное, что для разделения директорий в пути необходимо использовать двойные знаки обратной косой черты (\\), а не одиночные знаки косой черты (/).
    Если скрипту не удастся обнаружить исполняемый файл браузера по заданному пути, он попытается задействовать браузер, использующийся системой по умолчанию.
  3. Запущенному с помощью скрипта браузеру можно передавать различные аргументы. Мы воспользуемся этой функцией, чтобы сообщить браузеру адрес запущенного исполняющего модуля AnyLogic. Этот адрес уже хранится в скрипте в виде переменной $1. Эту переменную можно передать в качестве значения опции standaloneBrowserCommandArguments. Добавьте такую строку указания пути до установленного браузера:
    standaloneBrowserCommandArguments=$1
  4. Запустите файл <имя модели>_<имя ОС>.bat/.cmd/.sh, созданный при экспорте модели.
    Указанный браузер откроет окно выполняемой модели.

Чтобы запустить экспортированную модель в собственном веб-приложения

Мы не рекомендуем использовать механизм экспорта моделей в контексте разработки собственных веб-приложений. Рассмотрите вариант с загрузкой модели в AnyLogic Cloud — вы можете воспользоваться имеющейся на этой платформе функциональностью для встраивания моделей.

Чтобы узнать, как работает встраивание моделей через Cloud, ознакомьтесь с материалом: Встраивание модельной анимации на веб-сайте.

Чтобы загруженная модель работала быстрее, попробуйте использовать Private Cloud — отдельное решение для облачного выполнения моделей, которое можно развернуть на своем сервере.

Чтобы передать аргументы командной строки модели, экспортированной как отдельное приложение

  1. Откройте командную строку.
  2. Перейдите в директорию, содержащую скрипт запуска приложения, с помощью команды cd. Например:
    cd /d d:/Exported models/Call Center
  3. Введите имя скрипта запуска приложения (<model name>_<os name>.bat/.cmd/.sh) и перечислите аргументы один за другим, разделяя их пробелом. Например:
    Call Center_windows.bat %аргумент1% %аргумент2%

Вы также можете явно указать аргументы командной строки в скрипте запуска приложения. Список нужно ввести в «теле» скрипта, разделив аргументы пробелами. Например, в предназначенном для Windows файле BAT аргументы следует указать после списка, перечисляющего все необходимые для запуска JAR-файлы.

Вне зависимости от выбранного вами подхода, эксперимент сможет получить доступ к введенным аргументам с помощью метода getCommandLineArguments(). Чтобы узнать больше, изучите описание интересующего вас эксперимента в соответствующем разделе.

Настройки Java-приложения модели

Чтобы настроить параметры экспортированной в отдельное Java-приложение модели, создайте в папке такой модели текстовый INI-файл com.anylogic.engine.ini.

Несмотря на расширение INI, этот файл не является специфичным для Windows и работает в других операционных системах.

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

Пример содержимого файла:

flowchartCountersVisible = false
languageId = es
Параметр Описание Возможные значения
flowchartCountersVisible Определяет, видны или скрыты счетчики, которые находятся возле блоков диаграммы процесса и отображают количество агентов, прошедших через порты блока, количество агентов, находящихся в блоке в текущий момент времени и т.п. true, false
flowchartPortStateAnimated Определяет, видны или скрыты индикаторы «блок занят» и «агент доступен» возле портов блоков диаграммы процесса. true, false.
useProxy Определяет, используется ли прокси-сервер для подключения к сети. true, false.
proxy Адрес прокси-сервера. URL прокси-сервера.
proxyPort Порт прокси-сервера. Положительное целое число.
proxyLogin Логин прокси-сервера.
proxyPassword Пароль прокси-сервера.
proxyBypassAddresses С помощью этого параметра вы можете задать список хостов, доступ к которым будет осуществляться без помощи прокси-сервера.
Если вы подключаетесь к сети (например, к серверу ГИС-карт) через прокси-сервер, но в то же время вам необходимо обойти этот прокси-сервер, чтобы подключиться к локальному серверу (например, к серверу базы данных), вы можете задать имя локального сервера в этом параметре. По умолчанию все адреса обратной связи пропускаются.
Список хостов. Для разделения элементов списка используется символ |. Также можно использовать подстановочный символ: *.
parallelWorkersCount Число процессоров (ядер), которые используются для параллельного запуска прогонов (итераций) сложных экспериментов (эксперимента варьирования параметров, оптимизации и т.д.), а также для параллельного выполнения потоков с вычислениями при работе пешеходной модели. Положительное целое число.
standaloneBrowserPath Путь к выполняемому файлу браузера. С помощью этого параметра вы можете задать для запуска экспортированной модели не Chromium, а другой браузер. Путь не должен содержать единичные символы обратной косой черты \. Вместо них следует использовать двойные косые черты: /.
standaloneBrowserCommandArguments Аргументы командной строки для выбранного вами браузера. Используйте $1 для ссылки на URL сервера выполняемой модели.
standaloneServerPort Порт, на котором будет запускаться сервер с выполняемой моделью. Этот порт будет использоваться для выполнения модели в браузере. Например, укажите 12345, чтобы ваша модель выполнялась на http://localhost:12345. Положительное целое число меньше 65535.
Некоторые значения портов (особенно значения меньше 1024) могут быть зарезервированы операционной системой или другими службами.
languageId Пользовательский интерфейс приложения по умолчанию будет отражаться на том языке, который был выбран в момент экспорта модели. Здесь вы можете поменять язык интерфейса приложения. AnyLogic поддерживает следующие языки: английский, русский, немецкий, китайский, испанский или бразильский португальский. Одна из текстовых переменных:
en — английский
es — испанский
pt_BR — бразильский португальский
zh — упрощенный китайский
ru — русский
de — немецкий

Экспорт отдельного приложения с помощью командной строки

Интерфейс командной строки AnyLogic поддерживает экспорт модели (или нескольких моделей одновременно) в виде отдельного Java приложения.

Перед вызовом команды для экспорта, используйте команду cd <абсолютный путь к папке AnyLogic на вашем компьютере>, чтобы сменить рабочую папку.

Синтаксис команды для экспорта выглядит следующим образом:

anylogic -e "<абсолютный путь к ALP-файлу экспортируемой модели>"

Например:

anylogic -e "D:\My Models\Call Center\Call Center.alp"

Здесь -e — это стандартный индикатор для запуска экспорта в тихом режиме. После него вы можете перечислить любое количество путей к моделям, которые вы хотите экспортировать. Модели будут загружаться, компилироваться, экспортироваться и закрываться одна за другой в том порядке, в котором вы их перечислили. Для каждой модели будут экспортироваться все ее эксперименты.

По умолчанию каждый эксперимент будет экспортироваться в новую папку <имя модели>_<имя эксперимента>, которая будет автоматически создана в корневой папке модели. Вы можете экспортировать модель и в любую другую папку, указав параметр -o "<путь к папке>" в командной строке.

anylogic -e -o "%<абсолютный путь к заданной папке>" "<абсолютный путь к файлу>" "<ALP-файл экспортируемой модели>"

Например:

anylogic -e -o "C:\Export\Standalone Model Applications" "D:\My Models\Call Center\Call Center.alp"

Если в модели есть только стандартный эксперимент, в корневой папке модели появится директория Call Center_Simulation.

Экспорт отдельного приложения в терминале macOS

Процесс экспорта модели в отдельное приложение в macOS несколько сложнее:

  1. Откройте терминал.
  2. Выполните следующую команду:
    export APP=/Applications/AnyLogic\ 8\ Professional.app
  3. После этого в том же окне терминала выполните другую команду:
    open -a $APP --args -vm $APP/Contents/jre/lib/jli/libjli.dylib -startup $APP/Contents/Resources/Java/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar --launcher.library $APP/Contents/Resources/Java/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.600.v20220720-1916/eclipse_11700.so -e -o вывод ввод
    Замените вывод полным абсолютным путем до директории, в которую AnyLogic сохранит отдельное приложение и служебные файлы. Например: /tmp/exported-models/.
    Замените ввод полным абсолютным путем до файла .alp той модели, которую хотите экспортировать. Например: /Users/user/Models/Model1/Model1.alp.

Экспорт конкретных экспериментов

Чтобы экспортировать один из нескольких экспериментов, в команде укажите имя эксперимента после имени модели. При экспорте нескольких экспериментов перечислите имена экспериментов, разделяя их запятыми.

anylogic -e "D:\My Models\Call Center\Call Center.alp:Simulation,OptimizedSimulation"

После вызова этой команды в корневой папке модели появятся две новые папки: Call Center_Simulation и Call Center_OptimizedSimulation.

В зависимости от того, запущен AnyLogic или нет в момент экспорта, процесс экспорта будет отличаться.

Если AnyLogic не запущен:

  • Во время экспорта появится окно запуска AnyLogic и в строке статуса будут отображаться сообщения о текущих действиях.
  • По завершении экспорта окно запуска автоматически закроется.
  • Если экспорт завершился без ошибок, на выходе из приложения будет код 0. Если произошла хотя бы одна критическая ошибка, помешавшая корректному экспорту хотя бы одной модели, на выходе из приложения будет код 1, но экспорт продолжится. Если для экспорта были перечислены несколько моделей, только модель с ошибкой экспорта не будет экспортирована.

Если AnyLogic запущен:

  • Приложение не вернет ни код ошибки, ни код сообщения об успешном экспорте. Чтобы узнать, корректно ли были экспортированы модели, вам нужно будет проверить результаты экспорта вручную.
  • Если во время экспорта модели в AnyLogic открыта модель с тем же именем и путем, экспорт будет производиться для текущего состояния модели.
  • Если во время экспорта модели в AnyLogic открыта модель с тем же именем, но другим путем, модель не будет экспортирована и на выходе из приложения не будет кода ошибки.

Поддержка экспорта моделей из списка зависимостей

Если в списке зависимостей экспортируемой модели есть другие модели, они также буду автоматически экспортироваться.

Поиск зависимостей производится по соответствующим именам Java пакетов. Он начинается с папки экспортируемой модели и вложенных в нее папок и продолжается вверх по файловому дереву.

Если в одной папке найдется более одного ALP-файла, соответствующего требованиям поиска, ни одна из этих моделей не будет экспортирована. Процесс экспорта будет завершен, но появится сообщение об ошибке.

Открытие модели из командной строки

Перед вызовом команды для открытия модели, используйте команду cd, чтобы переключиться в тут папку, где на вашем компьютере расположен AnyLogic. Укажите абсолютный путь, например: cd C:\Program Files\AnyLogic 8.5 Professional.

Синтаксис команды для открытия модели выглядит следующим образом:

anylogic "<абсолютный путь к ALP-файлу открываемой модели>"

Например:

anylogic "D:\My Models\Call Center\Call Center.alp"

Вы можете перечислить пути к нескольким моделям, разделяя их пробелами. Каждый путь к модели должен быть заключен в кавычки. Модели откроются одновременно.

Модели можно открывать и без предварительного перехода в папку AnyLogic. Для этого anylogic нужно указать абсолютный путь к исполняемому файлу AnyLogic.exe. Пример строки:

"C:\Program Files\AnyLogic 8.5 Professional\AnyLogic.exe" "D:\My Models\Call Center\Call Center.alp"

Запуск конкретного эксперимента из командной строки

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

Синтаксис команды выглядит следующим образом:

anylogic -r "<абсолютный путь к ALP-файлу модели>" "<имя эксперимента>"

Например:

anylogic -r "D:\My Models\Call Center\Call Center.alp" "Simulation"
Как мы можем улучшить эту статью?