2016-10-30 9 views
1

私は与えられた入力に対して集中的な計算を行うJavaアプリケーションを(.jarファイルとして)持っています - それをcalcAppと呼ぶことができます。 私の目標は、(calAppのロジックを使用して)サーバーが処理するデータをユーザーが送信できるようにするRESTサービスを作成することです。処理されたデータは、応答においてユーザに送信される。 Node.jsを使用してRESTサービスを作成する予定です。ユーザーがルートに計算するデータを投稿するたびに、calcApp.jarがプロセスとして実行され、パラメータを使用してデータが渡されます。しかし問題は、calcAppはある時点で1つの要求しか処理できないということです。これは、複数のユーザーが同時に計算するデータを投稿した場合に問題になります。 2つのサーバーを作成するというアドバイスがありました。要求を受け取るNode.jsを使用するREST APIと、それぞれに対してcalcApp.jarの実行を担当する別のJavaサーバーにソケットが開かれます。.jarファイルを実行するREST APIを作成する方法は?

calcAppの制限にもかかわらず非同期になるようにサービスを設計する方法を教えていただけますか?

おかげで、

+1

通常、外部から起動するのではなく、Webサービス層からjarファイルに含まれるJavaメソッドを直接呼び出します。 – chrylis

+0

@chrylis、私はjarパッケージのクラスをすべて追加して(私は実際にEclipseのcalcAppプロジェクト全体を持っています)、Javaサーバープロジェクトに追加すると、同じ結果が得られます。 – Medvednic

+1

jarを依存関係として使用したい場合は、そのクラスを呼び出すことができます。 – chrylis

答えて

2

私は示唆している2 approchesあります

1:単にあなたの容器の中にあなたのjarファイルが含まれる(つまり、明示的にあなたのjarファイルを実行する必要はありません)と、それぞれのクラスを呼び出すには計算のために残りの層を作成してNode.jsと通信する

2:あなたのcalcAppが独立していて、クラスと通信するだけの残りのAPIを含むマイクロサービスアーキテクチャを作成します。

+0

オプション1は私がやろうとしているもののようです。コンテナをJava Restサーバーとして実装するのは良いアプローチだと思いますか?可能であれば、2つの別個のサーバーを避けたいので、 です。 – Medvednic

+0

私はお勧めします。あなたのニーズを(両方の視点から)書き留めておいてから解決策を思いついてください。そうでなければ、何を選ぶべきかに関する議論の大きなポイントの犠牲者です。 –

関連する問題