2016-07-25 18 views
2

問題の背景を実行している2つのアプリケーションbetwenスクリプトを呼び出す:転送I/Oファイル&異なるRed Hat Linuxのサーバーに

  1. クラウドのRedHat Linuxサーバーに専用のRedHat LinuxサーバからのJava/J2EEアプリケーションを動かします。
  2. この アプリケーションに含まれるバッチ処理ジョブを分析して、クラウド環境で同様の処理を実装しています。

現在のアプローチ:

我々は2つのアプリケーションのApp1 & App2の両方を持っている同じRedhat Linuxでは サーバーです。両方のアプリケーションは、同じサーバー内のディレクトリを共有しています。 また、Appl2は、App2のディレクトリにあるシェルスクリプトを呼び出して、ある種のジョブ を実行することができます。

App2ののプロセス:

  1. 外部システムは、NDMジョブズ経由App2のに入力ファイル(.DAT)を送ります。
  2. 受信した入力ファイル(.DAT)は、App2の入力ファイル ディレクトリに配置されます。
  3. Java/J2EEプログラム/コンポーネントを使用してファイル内のレコードを処理します。
  4. 出力ファイルを生成します。
  5. App1の共有ディレクトリに配置します。
  6. App1には、このディレクトリを指し示すファイルウォッチャーがあり、これを使用するファイルは です。

今後のアプローチ:

    App2のは、Red Hat Linuxサーバをクラウドに移動されます
  1. App2は少なくとも2つのノードで実行されます。

課題:

  1. 外部システムジョブは、まだ非クラウドのLinuxサーバで同じ古いディレクトリを指します。
  2. 処理後、出力ファイルはApp1の共有ディレクトリに存在する必要があります。

は期待:

  1. App2ののプロセスは、クラウドで実行されているが、&プロセスこのファイルを読み込むことが予想されます。

この要件に最も適した方法を提案してください。 FTPまたはREST-webserviceを使用して、非クラウドLinuxサーバーから入力ファイルを読み取ることはできますか?

2)App1では、App2でシェルスクリプトを呼び出すビジネス要件があります。クラウドサーバーにあるApp2のシェルスクリプトを呼び出すためのサービスを提供するにはどうすればよいですか。

曇っています。私の質問が無関係か些細なものであれば、私を許してください。

ありがとうございました。

+0

クラウドサーバーの機能と(機能しない)要件によって異なります。クラウドサーバーはApp Server 1にアクセスできますか?どのポート/アプリケーションを使用できますか?ボリューム/転送制限のような他の制限はありますか? App Server 2のシェルスクリプト(現在2つのノードがある)が一度だけ実行されるようにするにはどうすればよいですか? 2つのApp 2 Server Nodeの入力ファイルが一度だけ処理されるようにするにはどうすればよいですか? 2つのApp 2 Server Nodeが共有ファイルシステムを使用していますか? App 1と2 App 2 Server Nodesの共有ディレクトリを使用することは可能ですか? – andih

+0

迅速な対応をありがとうございます。あなたの質問に対する回答を「回答セクション」に追加しました。コメント欄には回答欄に投稿した文字数を超えることはできません。私は、stackoverflowのコメントへの標準的な応答形式に違反していると謝罪します。 –

答えて

0

私は非常に感謝しています。あなたの貴重な時間を私のポストを通過し、あなたの迅速な対応に費やしてくれてありがとう。

私はこの質問をスタックオーバーフローに投稿している間、私と次の質問のほとんどを持っていました。したがって、私はStackoverflowに、この要件の理想的な設計をモデル化する提案をしました。

あなたの質問については、私の考えを見つけてください。

クラウドサーバーの機能と(機能しない)要件によって異なります。 クラウドサーバーはApp Server 1にアクセスできますか?

:いいえ、私たちはそれがI/Oを&共有へのアクセスにApp2の を許可する可能性があるマウントすることができた場合は、「I/O &共有ディレクトリ」マウント用の実現可能性を見つけるために、UNIX /セキュリティチームと協議していますクラウドサーバーからのディレクトリ。クラウドサーバは のパフォーマンスを得るためにApp2の処理負荷を処理すると予想され、アプリケーションサーバ1には常に となる予定です。 です。

どのポート/アプリケーションを使用できますか?

回答:これはまだ決定されています。

ボリューム/転送制限のような他の制限はありますか?

答:私は両方(&のApp のServer1を曇らせる)以来、私たちは、何のファイル転送の制限を持っていないと信じて、私たちの企業に属しています。

App Server 2(今は2つのノードがある)のシェルスクリプトが一度だけ実行されるようにするにはどうすればよいですか?
2つのApp 2 Server Nodeの入力ファイルが一度だけ処理されるようにするにはどうすればよいですか?

回答:上記の2つの質問については、ここで私たちは 重複処理を避けるために、セマフォ・ロジックを実装する必要があります願って、私の思考プロセスです。私たちは、プロセス名を持つデータベース項目&ノードIDは、各 要求のために持続する を持つことができるか、私たちは、プロセスに通知するための接尾辞
.ready -fileとして 次のステータスと一緒にジョブ名と空のファイルを置くことができることは 準備
です.Inprocess - ノードがファイルを処理中であることを通知する。
.processed - 処理済み状態を通知する。
.rejected - プロセス をエラー終了で通知する。

2つのApp 2 Server Nodesは共有ファイルシステムを使用しますか?

回答:このアプローチについてはまだ説明していませんが、共有ファイルシステムが必要です。 各ノードの各プロセスはログを書き込むことができ、ログ は1つの場所になければなりません。これは の問題を見つけるのに非常に役立ちます。

App 1と2 App 2 Server Nodesの共有ディレクトリを使用することはできますか?

回答:これは決定される予定です。私はUnixチームとマウントシェア ディレクトリについて議論しています。

スクリプトをwebservicesに置き換えるという考え方があります。私は間違っているかもしれませんが、私はこの投稿で私の見解を共有したいと思います。
シェルの代わりにApp1 & App2の間でリクエストと転送/プロセスファイルを渡すWebサービス呼び出しを使用できますか?

シナリオ:
1.外部システムは、NDMジョブズ経由App2のに入力ファイル(.DAT)を送ります。
2.(server1)の場所にスクリプトを記述して、App2のWebサービスを呼び出してこのファイルを処理することができます。
        NDMポストファイルコピージョブがこの スクリプトをトリガーします。
3.私たちはクラウド内のファイルをapp2に転送するWebサービスを持つことができますか?
4. Webサービスの呼び出しがendpoint.I希望ロードバランササービスが を存在します
       データのは、&出力ファイルを処理されるノードの
        1にWebサービスの呼び出しを渡しますヒットします が生成されます。私たちは、私が
       たちは
        Webサービスの呼び出し/ファイル転送を交換するために、両方の のサーバーにWebサービスクライアントを持っている必要がありますと信じて、また、サーバ1への出力ファイルを送信するために、別のWebサービスを持っている必要があり
5.サーバー1の間& クラウドサーバー。

私がここで示唆しているWebサービスのアプローチは完全に私の思考プロセスです。私はそれを実装していないか、それをテストしていません。 このプロセスが正しい場合。このアプローチで長所と短所を見つけ出す必要があるかもしれません。

私の回答にあなたのコメントを共有してもらい、あなたの提案を分かち合うようお願いします。

ありがとうございます。

関連する問題