みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

apache,ruby(PHP),cの連携について

C言語で書いたプログラムをプロセスとして立ち上げておいて、Rubyからそのプロセスに値を渡してCのプログラムを実行することは可能でしょうか。

以下に、現在の構成とやりたいことを記載します。
【構成】
OS:CentOS
httpd:apache
使用言語:Ruby(or PHP)、C言語(OpenCV)

【やりたいこと・概要】
ユーザがブラウザからパラメータを入力し、そのパラメータを元にサーバで画像処理を行い、その結果をユーザへXMLで返したい。
その際に、画像処理を行うプログラム(C言語)では、ディスクから大量のデータをメモリにロードするため、処理時間がかかります。そこで、C言語はプロセスとして常に上げておくことで、メモリへのロード時間を削減したい。

【やりたいこと・流れ】
1.ユーザが、ブラウザから値を入力し、POSTする
2.Ruby(or PHP)で受け取る
3.受け取った値をC言語で書かれたプログラム(OpenCVを利用した画像処理プログラムで、これをプロセスとして常に上げておきたい)へ連携する
4.連携された値を元に画像処理を行い、処理結果をRuby(or PHP)へ返す
5.Ruby(or PHP)で受け取った情報をXMLにして、ユーザへ返す
※ Ruby(or PHP)と書いた部分はC言語をプロセスとしてあげておいてPOSTを受け取ることが出来ればC言語での実装でも構いません。

乱文になってしまい読みづらくて申し訳ありません。
情報の過不足などが有りましたらご指摘をお願いします。
お分かりになる方、ヒントでも構いませんので教えて頂ければ幸いです。

以上です。よろしくお願い致します。

投稿日時 - 2012-01-03 00:23:41

QNo.7221981

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

可不可だけでいえば可能。
例えば似たようなものとして
apache-ruby(or PHP)-RDB(mysqlなど)
がありますよね。

rubyとプログラム間はプロセス間通信するなりsocketで通信するなりすればよいかと。

投稿日時 - 2012-01-03 10:28:16