Затянуть win32 dll плагин в линуксовый Java x64 процесс
От: Тёмчик Австралия жж
Дата: 18.08.17 01:37
Оценка:
Есть десктопная вендовая аппликуха с интерфейсом расширения C++ dll. Есть расширения (dll-ки), которые лопатят time-series и вызывают callback.

Хочется предоставить этот api под линуксом, причем приложение будет на Java.

Идея, что возможно написать winelib- суррогатный процесс, который бы загружал dll и дергал у нее методы, предоставлял ей callback. Чтобы java- процесс скрытно spawn-л этот суррогат и слал ему команды, предоставлял данные на вход и забирал результаты через memory-mapped file. Получается овер-инжиниринг. Есть ли примеры готовых решений? Можно ли как-то попроще сделать?
Re: Затянуть win32 dll плагин в линуксовый Java x64 процесс
От: kov_serg Россия  
Дата: 19.08.17 11:38
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Есть десктопная вендовая аппликуха с интерфейсом расширения C++ dll. Есть расширения (dll-ки), которые лопатят time-series и вызывают callback.


Тё>Хочется предоставить этот api под линуксом, причем приложение будет на Java.



Тё>Идея, что возможно написать winelib- суррогатный процесс, который бы загружал dll и дергал у нее методы, предоставлял ей callback. Чтобы java- процесс скрытно spawn-л этот суррогат и слал ему команды, предоставлял данные на вход и забирал результаты через memory-mapped file. Получается овер-инжиниринг. Есть ли примеры готовых решений? Можно ли как-то попроще сделать?

JNI + https://github.com/taviso/loadlibrary
Re: Затянуть win32 dll плагин в линуксовый Java x64 процесс
От: vsb Казахстан  
Дата: 19.08.17 11:57
Оценка:
На мой взгляд самый вменяемый вариант будет — отвязать эту DLL от венды, сделать её кросс-платформенной (зачем ей венда?), а связь с Java организовать по сети, например через REST-интерфейс или WebSockets. Или связь сделать через stdin/stdout, если такого примитивного интерфейса хватит.

С JNI будет проблема в том, что жава 64-битная, а приложение 32-битное. Надо или туда или туда.
Отредактировано 19.08.2017 11:57 vsb . Предыдущая версия .
Re[2]: Затянуть win32 dll плагин в линуксовый Java x64 процесс
От: kov_serg Россия  
Дата: 19.08.17 12:30
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>На мой взгляд самый вменяемый вариант будет — отвязать эту DLL от венды, сделать её кросс-платформенной (зачем ей венда?), а связь с Java организовать по сети, например через REST-интерфейс или WebSockets. Или связь сделать через stdin/stdout, если такого примитивного интерфейса хватит.

Лучше всего переписать на java

vsb>С JNI будет проблема в том, что жава 64-битная, а приложение 32-битное. Надо или туда или туда.

Это не только в яве такая проблема
Тогда уж что-то типа vm в vm https://github.com/ianopolous/JPC
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.