私は、ほぼ同じことを行う 4 つの異なるソフトウェア コンポーネントを 1 つのサービス (Web サービスではない - 必然的または可能性さえあります) にリファクタリングしている最中です。3 つは C++ で記述されていますが、最後で最も重要な部分は Java で記述されています。システムの残りの部分は Java で書かれているため、C++ コードをリファクタリングしたり、JNI を使用したりする予定はありません。特に、現在 C++ で書かれているコンポーネントは近い将来に Java コンポーネントに置き換えられる予定です。
現在 Java で実装されているコンポーネントは、実際にはより大きなコンポーネントのサブコンポーネントです。したがって、より大きな/ラッピング コンポーネントが (サービスにリファクタリングされている) サブコンポーネントを使用したい場合、単純にプロセス内 Java メソッドを呼び出します。そのサブコンポーネントを別のサービスにリファクタリングすると、元のラッピング コンポーネントは現在処理中のメソッド呼び出しの利点を失います。
次に、元の/ラッピング コンポーネントにスレッドを追加してサービス ゲートウェイとして機能させるか、コードを完全にリファクタリングしてスタンドアロン サービスにする必要があります。
私は十分に明確であることを願っています...