Есть ли простой способ предоставить веб-приложение или веб-сервис на основе Matlab?
-
11-07-2019 - |
Вопрос
Мы с коллегой потратили несколько лет на разработку действительно классного приложения Matlab MDLcompress.В Matlab я могу ввести "MDLcompress('filename.txt')", и он расскажет мне всевозможные действительно интересные вещи о содержимом filename.txt.Мы хотели бы разрешить другим людям использовать MDLcompress без загрузки кода, установки Matlab и т.д.В идеале, у нас была бы простая веб-страница, на которой они выбирали файл со своего компьютера, он загружался на мою рабочую станцию (на которой уже запущен tomcat для других целей, если это упростит задачу), запускал процесс по типу "matlab < MDLcompress.m filename.txt > results.txt", а затем отображался results.txt в их браузере или показывал ссылку, позволяющую им загрузить его.
Проблема в том, что мои навыки работы с Matlab намного превосходят мои веб-навыки.В Google есть 100 общих руководств, но ничего такого простого, как я хочу, по крайней мере, не специфичного для Matlab.
Заранее благодарю
Решение
Если вы в основном владеете MATLAB, вы можете написать веб-приложение на MATLAB с помощью Веб-сервер MATLAB Редактировать: Веб-сервер Matlab снят с производства, поэтому он не для вас, если вы используете последнюю версию Matlab.Может быть этот учебник поможет создать CGI-модуль из кода Matlab.
Другие советы
Возможный способ заключается в том, чтобы скомпилируйте код matlab в C, и затем преобразуйте файл C в модуль apache, и использовать сервер apache.Я понятия не имею, насколько это сложно, но это может сработать.
Основываясь на тегах, я предполагаю, что вы пытаетесь выполнить развертывание в Tomcat или аналогичном.Самый простой способ сделать это - использовать MATLAB Builder JA чтобы создать Java-оболочку для вашего кода, затем используйте стандартные инструменты для развертывания Java как веб-службы.
Если вы можете позволить себе потерять некоторые из более мощных проприетарных функций Matlab, существует несколько движков числовых вычислений с открытым исходным кодом, которые используют синтаксис, в основном совместимый с синтаксисом Matlab.Одним из наиболее зрелых из них является GNU Октава.
Существует несколько примеров онлайновых интерфейсов Octave. Октава Онлайн это новый интерфейс, который поддерживает оперативную подсказку и онлайн-редактор.Я являюсь членом команды, разрабатывающей Octave Online.Вы можете найти больше примеров онлайн-интерфейсов Octave на the Octave вики. Список рассылки Octave является хорошим ресурсом для предыдущих онлайн-проектов Octave.
Мы разработали набор инструментов под названием Набор инструментов веб-сервера Modelit это должно позволить вам сделать это.Мы сами используем это для запуска алгоритма маршрутизации, реализованного в Matlab, для онлайн-планировщика маршрутов (ссылка есть на нашем веб-сайте).Вы можете использовать toolbox совместно с Tomcat и Matlab (2006b и выше) или скомпилированный исполняемый файл Matlab.Панель инструментов также предоставляет механизм для параллельного выполнения нескольких заданий.