Блокнот Jupyter, скрывающий код и другие файлы
У меня есть постоянный проект, в котором физическое моделирование в Modelica извлечено из FMU. Эти функциональные модули макетов используются с PyFMI для реализации моделирования. С этой целью я также написал несколько модулей Python. То, что я хочу сделать, это показать некоторые примеры результатов моделирования, не раскрывая мою модель (файл.fmu) и мои модули. Пользователь сможет изменять параметры в модели и моделировать соответственно. Подводя итог, я хочу, чтобы это был черный ящик только с входными параметрами и графиками вывода.
Я пытался сделать это с ноутбуком Jupyter (я открыт для любого другого решения). Я извлек свои модули Python в виде файлов.pyd, чтобы скрыть код, и теперь я импортирую их в блокнот. Пока это кажется мне разумным. Но я не знаю, как скрыть файл.fmu. Я бы импортировал модель в рабочее пространство Python, а затем сохранил бы все рабочее пространство, если это возможно.
Подвести итоги,
1) Мой код безопасен как файл.pyd?
2) Можно ли сохранить рабочую область в Python? Или у вас есть другое решение для моего файла.fmu?
3) Может ли какой-нибудь другой инструмент, более подходящий для этой цели, чем Jupyter? В конце концов, я хочу, чтобы это было доступно каждому через сеть и чтобы его судили так, как они хотели. Но сама модель не может быть распространена.
2 ответа
Что ж, если вам нужно отправить FMU, вы можете скомпилировать его, чтобы он не содержал исходных кодов или исходников моделики. ИЛИ вы можете скрыть FMU, запустив его на каком-то сервере и предоставив доступ только к API.
Я делал похожую работу в прошлом во время нашего исследовательского проекта в университете. Пилотная реализация предоставляет FMU для бэкэнда.NET, который дает REST API для управления входами модели, управления имитацией и получения переменных модели. Пользовательский интерфейс в чистом HTML5 и Javascript имеет доступ только к REST API через HTTP с некоторой ограниченной способностью отображать переменные модели и элементы управления моделированием.
Демо-симулятор, например, по адресу: Симулятор гемодинамики
В симуляторе можно редактировать экран на вкладке "Редактор симуляции". Кстати, он был написан, вероятно, в том же году, когда проект Jupyter эволюционировал из IPython. Базовая платформа с открытым исходным кодом, поддерживает FMU 1.0. Поэтому стоит учитывать, что ноутбуки Jupyter могут быть клиентами соответствующего бэкэнда.
Ну, это зависит от вашего приложения. Недавно я запустил сайт под названием http://modelica.university/ котором демонстрируются приложения с участием Modelica и FMI. Базовая платформа является проприетарной, но сайт общедоступный. Так что, если вы заинтересованы в размещении там своих моделей, я бы с удовольствием это обсудил. Ключевым моментом является то, что это решает вашу проблему, потому что сами модели не доступны через Интернет, только входы и выходы.