Может есть у кого-нибудь пример, как можно вызывать функции с параметрами возврата программы питона непосредственно из жавы? Или в крайнем случае наоборот - из питона отсылать значения в функции жавы?
Необходимо использование библиотек по типу sklearn и keras, чтобы в конечном итоге результаты алгоритмов были в жаве.
Пока-что нашел только Jython, но не уверен подойдет ли он точно пол эту задачу, вдруг есть более хорошие решения. В общем интерисует что-то, что точно "работает"))
sim3x, где-то 6 серверов, которые связывают по несколько машин, у которых по 1000+ сенсоров. Работать при этом через фаилы... Не лучшее решение, точнее польнейший ноу гоу.
alexw1n, Это все неподходящие ответы. Конечно же мы на них натыкались) Насчет библиотек гляну спасибо.
Но мы уже сделали немножко по-другому. Через С++ есть довольно актуальные методы. Архитектура конечно усложнилась, но это все же лучше и быстрее, чем пускать это дело через микросервисы или же что еще хуже через хай лвл апликации, ибо работа идет с большими данными.
использовать RPC
использовать jython (но не будет python3)
запускать питон как процесс и читать вывод
запускать питон как процесс и складывать в хранилище, доступное всем компонентам
по идее питон 2.6 тоже не проблема. Суть в том, что с помощью жавы считываются сенсорные данные в реальном времени через OPC_UA Milo. Каждое из этих значений надо отсылать в функции питона, которые в свою очередь будут задействовать модели машинного обучения и результат этих обработок надо будет вернуть (или опять же вызвать) в функцию джавы, которая в дальнейшем через адаптер отсылает уже эти данные в след часть архитектуры.
На какой из, вами перечисленных, вариантов лучше обратить пристальное внимание? Если Jython в состоянии справится с этой задачей, а так же и нагрузкой, то было бы не плохо. Тогда начну копать в его сторону )) Пока-что ознакомился на уровне описания
Добавлю что как вариант возможно будет лучше идти путем сокетов. Так явно разделите один яп от другого. А то мало ли вдруг понадобятся фишки определенной версии питона или явы, а то и вообще решите уходить в другой ЯП.
Дмитрий Александров, да вроде нет, просто к питону пришлось прибегнуть из-за его библиотек и дип лёрнинга. В остальном все делает "3-й язык". Но это уже точно конец. Я думаю еще дальше усложнять архитектуру скоре всего не будут )
А о сокетах тоже думал в первую очередь, но вдруг есть решения получше. Сейчас Jython смотрю, вроде бы у него есть весь нужный функционал, осталось только найти примеры реализации))
Почему бы не воспользоваться вариантом с хранением результатов работы Python в каком-нибудь хранилище в оперативной памяти?
Например Redis или Mongo (в режиме In-Memory Storage Engine).
но дилема в том, чтобы получить эти результаты мне придется для начала из жавы получить данные в пайтон )) А так интересно, надо будет почитать об этом.