Как удаленно вызвать программное обеспечение MATLAB на сервере Linux из настольной программы C# в Windows?
Я кодирую настольную программу на C# для Windows и некоторые программы для Matlab на сервере Linux. Как мне этого добиться - выбрать локальные данные с помощью программы C#, а затем передать данные в программы Matlab. После обработки данных на сервере Linux результаты будет отправлено в настольную программу C#? Запрос ответа
1 ответ
Решение
Я бы начал с того, чтобы попробовать следующий "рецепт". Сначала убедитесь, что у вас есть ssh доступ к серверу.
- Сохраните ваши данные из C# в файл в формате Matlab, я рекомендую двоичный файл, но с текстовым файлом тоже все в порядке.
- Скопируйте данные на сервер, используя некоторый клиент scp, например WinSCP. Это можно сделать из C#, используя
Process
класс для отправки команды выполнения командной строки. - Отправьте удаленный вызов в вашу программу Matlab из C# с использованием некоторой библиотеки SSH (я не знаком с C#, но уверен, что это возможно). Вы можете найти опцию запуска Matlab
-r
полезно, чтобы запустить Matlab и вызвать скрипт. - Убедитесь, что код Matlab сохраняет результаты на диск.
- Чтобы вернуть результаты на локальный компьютер, вы можете снова скопировать его с удаленного сервера, используя
scp
самое простое, что нужно сделать, это попытаться скопировать его внутри цикла, пока копирование не будет успешным, с некоторой паузой между попытками и верхним пределом времени (в случае, если что-то пойдет не так на стороне сервера, вы не захотите ждать вечно). Если вы хотите сделать его менее "грязным", вы можете установить tcp клиент-серверное соединение между удаленным и локальным компьютером, и заставить удаленный компьютер отправлять сообщение, как только файл будет готов к копированию. Вы можете даже получить данные через tcp вместо сохранения в файл, если это не слишком много данных.