- PR -

JavaでXML定義したプロセス(別PC)を実行したい

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-11 23:48
こんにちは。

現在、WEBアプリケーションを開発しています。
そこで、Javaからローカル環境のexeを実行してファイルを生成、結果を得て処理を続行しています。

現状このexeファイルの動作がメモリを多く消費し、あまりにも遅い為別マシンに移して処理ロジックは変えないと言うように変更したいのですが。

分かっている事は別マシンに移すOSは、Win機でexeファイルはコマンドプロンプトで実行する事です。そこで、JavaのXMLで調べ、メモリ消費の少ない、SAX(JDK1.4以上は標準搭載)と言うAPIを使って、実現したいと思ってます。

XMLの経験が薄く、別PCでもプロセスが掴めるのか不安ですが、このようなサンプルを紹介してるページはありますでしょうか?telnetが絡むのか、出力されるファイルがこちらのローカルに返してくれるのか(現行、コマンドのパラメータで指定。)?悩ましい点が多いです。

アドバイスをいただけたら幸いです。
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-07-12 01:12
遅いってどの程度遅いのですか?
要求する速度は?
何をやってて遅いのですか?

消費メモリを小さくしてロジックを改善して高速化して・・・ってやったら
どーです?

java rpc
http://www.linux.or.jp/JF/JFdocs/XML-RPC-HOWTO/xmlrpc-howto-java.html
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2008-07-12 02:01
読んでて唐突にXMLとSAXの話が出てきて混乱しました。SOAPなどのことを言っているんでしょうか?

XMLを使う必然性がまったくないような気がします。Windows標準でついてくるrshでも可能なのではないでしょうか。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-07-12 02:34
引用:

未記入さんの書き込み (2008-07-11 23:48) より:
分かっている事は別マシンに移すOSは、Win機でexeファイルはコマンドプロンプトで実行する事です。そこで、JavaのXMLで調べ、メモリ消費の少ない、SAX(JDK1.4以上は標準搭載)と言うAPIを使って、実現したいと思ってます。


この説明および件名の「JavaでXML定義したプロセス(別PC)を実行したい」の意味が良く分かりません。全体的に、目的語がなになのかがイマイチ読解できませんでした。
XML が処理の対象なのでしょうか?目的は XML をパースしたい?それとも XML はただの設定ファイル的な使い方?

XML をパースするのに、今は Windows の EXE でやっているが、それを Java の SAX ライブラリーを使って Java でやりたい、ということでしょうか?なんとなくそう思いました。

良くは分かりませんが、PC 間の通信は Java の RMI でやるのが、簡単です。RMI は枯れたというかもう生気がない技術ですが、(ほかの技術に比べればですが)覚えることが少ないですし、分からないことが出てきてもネットで調べればすぐに資料が見つかりますし、面倒なことが少ないです。
もし、XML のパースを EXE でやるとしても、今やられているような Java から EXE を呼んで、その戻り値を RMI で相手側の PC の Java に伝えることになります。
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-12 07:14
ご意見ありがとうございます。

私もあまりやりたくないのですが(速度が遅いのはこのexe)、先方が今のレスポンスの体感で、別PCに移す事でのどの程度パフォーマンスUPが見込めるかを試験的な意味でも一度行いたいと強く要望されました。

現在のロジックですが、このexeファイルから生成するファイルを得る為、10回近くパラメータを引き渡したコマンドラインでの起動・終了を繰り返しております。都度、batファイルを生成して実行すればある程度はJava側の処理も早く、改善されるのかもしれませんが・・。現状このexe側の修正は無いものと考えていて、何とか他構成で先に試したいとの事でした(金銭絡んで?)。

昔、SOAPは一度経験しただけで深くは分からないのですが、Javaから別マシンのJavaメソッドを呼ぶと言う奴ですよね。イメージは全くあのような感じです。ただ、ファイル出力が絡んでいるので、アップロード等のFTPも絡んできそうですが・・。

cmd /c AAA.exe (関連ファイル:フルパス) (出力先ファイル:フルパス)

現在、こんな感じでJavaから実行してます(他にもパラメータが複数ありますが)。このコマンドが実行されるのが新たに設けるPC、()内で囲われたフルパスはこちらのローカル環境と想定しています。

XMLを勉強する上でも一度経験したいと思っているのですが、いかがなものでしょうか?

未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-07-12 07:23
>unibonさん

ありがとうございます。

プログラムの構成・流れは変えない想定です。現状のWEBアプリから[コマンドでローカルにあるexeファイル]を呼び、その結果を受けて再度Javaの処理を続行する。

この[]内が新しく設けるPCに移行するだけで、アプリとこのPCのexeのインターフェースをXMLで行いたいとの要望でした。

Java の RMI ですね。ありがとうございます。調べてみます。
1

スキルアップ/キャリアアップ(JOB@IT)