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