2011-06-17 3 views
0

私はシェルから呼び出すことができるJavaクラスを持っています。 ( "java [command] [options]"を介して)クラスは一連のパラメータを取り込み、MIDIファイルを出力します。常に3つのMIDIファイルが含まれます所定のディレクトリから読み込み、単純なWebアプリケーションに設定されている私は何をしたい最善の方法は、外部

(のみを!)。 webappの訪問者は、これらの3つのファイルで表示され、最も良いと思うものを選択する必要があります(フォームを送信する)。 webappは、Javaクラスを使用して3つの新しいMIDIファイルのセットを生成するためにその情報を使用し、ログファイルに情報を記録し、古いファイルをアーカイブディレクトリに移動します。私はわからないんだけど

3つのものがあります:

1)どのようなウェブ言語は、このための最善のでしょうか?私はこれをある時点で本格的なアプリにしようと考えていますが、Javaへの依存は私にはサーブレットの使用を検討するようになります。しかし、PHPやRails(例えば、)は簡単でしょうか?それは大丈夫です/ PHPや他の言語からのシェルコマンドでJavaを呼び出すことは可能ですか?

2)MIDIを生成するには、いくつかの時間がかかりますので、私はロードバーまたはユーザーがフォームを送信した後、画面に表示される「待機中...」の通知のいくつかの並べ替えをしたいです。基本的には、アプリケーションがブロックされ、シェルコマンドが実行されている間に通知を表示し、コマンドが終了して新しいMIDIが生成されたときに新しいページを表示するようにします。私はこれを達成するために従うことができる例はありますか(PHPまたはサーブレットを使ったAJAXはうまくいくでしょうか?

3)複数の人がウェブサイト上で、一人がフォームを送信する(とMIDIの生成を開始)、その後、私は誰もがロード通知を取得するか、少なくともいくつかのアクションをトリガーにしたいです。これを行うためのきれいな方法がありますか?

お返事ありがとうございます!

答えて

0

あなたの質問は少しばかり開いていますので、将来は少し質問を集中させてください。私はあなたにいくつかのガイダンスを与えようとします。

1)これを行うための「最良の」方法があるとは必ずしも言えませんが、簡単に任意の数のソリューションを使用できます。 Webアプリケーションの構築に関する経験はありますか?そうであれば、あなたがよく知っているものを使用してください。そうでない場合は、快適な言語のフレームワークを選択するか、その言語で最初からサーバーを作成することを検討してください。

2)3)懸念実装する機能は、再び、あなたはいくつかの方法でそれを行うことができます。 Ajaxは、これら両方の問題に近づく一つの方法です。私は、使用する予定の技術についてもう少し研究をして、その能力をよりよく理解しておくべきだと思います。 Ajaxを使用してソリューションを作成し、その動作を確認してください。

+0

私は実現しており、Webアプリケーションにはあまり経験がありません。私はAjaxに関するあなたの提案を試してみて、それが私の所在地を見ていると思うのですが、これはすべてプロダクションアプリではないので、最初はハッキリ/乱雑な解決策があるのを恐れていません。 – mhy

+0

失敗するのを恐れないでください、それはあなたが学ぶ方法です!プログラミングの井戸はすべて反復に関するものです。あなたの最初の解決策がハッキーに見える場合は、やり直して解決策を洗練してください。 – Grantismo

0

可能な場合は、実際のフィードバックを持つWebユーザに提供する必要があります。 progress barを使用すると、AJAXを使用してサーブレットまたはプログラムのステータスをチェックしてパーセンテージを取得するサーバーサイドスクリプトを呼び出すことができます。

ここでは2つの異なる操作があるでしょう。最初に述べるのは、MIDIの処理を開始することです。 2番目の操作は、アプリケーションのステータスをチェックすることです。この2番目は、一度に1つのプロセスしか実行できない場合(あなたが言っているように思われる)、さらに重要です。

あなたが処理を完了した後、最終ファイルへのリンクをユーザーに電子メールで送信することが考えられます。各ユーザーに長い時間がかかることになり、多数のユーザーがいる場合は、Webページがこれまでにユーザーに応答するまでに時間がかかることがあります。それはひどい考えであり、ほとんどのユーザーはそれが容認できないと感じるでしょう。電子メールのような代替配信方法は、より美味しいかもしれません。

+1

実際、これは研究目的でのものです。私は今のところユーザーを気にしません。人々は単にサイトに来て、MIDIを評価することができます。私はちょうど誰かがページにアクセスしたときに、MIDIが既に生成されている間にMIDI処理を開始することができないようにしたい。おそらく、私はMIDI生成が始まるとトークンを生成し、完了したらそれを削除することができますか?トークンがそこにあると、他の誰かがMIDIを生成しようとすると、それらは拒否されるか、キューに入れられますか?ああ、私は知らない。 – mhy

関連する問題