Java/Scala バックエンドがあり、そのためのミドルウェアを Python で開発したいとしましょう。私はミドルウェアを開発した経験はありませんが、Python 内から、実行中の Java/Scala バックエンド プログラムにコマンドを発行し、そのバックエンドからフィードバックを受け取る必要があることを意味していると思います。これを行うには、2 つの言語をインターフェースする必要があり、Python と Java をインターフェースするためのオプションがいくつかあります。これらの ページによると、いくつかのオプションがあります。
- JPI
- JNI
- JPype
- ジェップ
- ジソン
- JCC
残念ながら、JPI、JNI、JPype、および Jepp は、もはや積極的に開発されていないようです (最後の更新は 1 年以上前です)。Jython はまだアクティブですが、Jython 内からすべての Python モジュールをインポートすることはできないと読みました。JCC は、Java と Python の間のある種の C++ レイヤーのように見えますが、これも直観に反するようです。
私はまた、このトピックに関するSOに関するいくつかの質問を見つけまし たが、ほとんどは3年以上前のようで、インターネット/ Pythonの世界ではもちろん長い間です。
ZeroMQ メッセージング ライブラリの経験があるので、それを使用できますが、Java プログラムを調整する必要があります (それほど大きな問題にはなりませんが、より良い解決策があれば..) .
私の質問は、Java/Scala バックエンドを制御できることを考慮して、現在、そのバックエンド用の Python ミドルウェア レイヤーを作成する最良の方法は何ですか?