• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP,RUBY,Perl,JSPで実現可?)

PHP,RUBY,Perl,JSPで実現可?

このQ&Aのポイント
  • PHP、Ruby、Perl、JSPなどのサーバーサイド言語を使用して、データベースから値を取得し、グラフを作成してウェブ上で表示することは可能です。
  • サーバーサイドの言語を使用することで、定期的に計測値を取得し、グラフを画像化してHTMLに組み込み、FTPでサーバーにアップする手間を省くことができます。
  • サーバーサイドの言語を学ぶことで、自分自身でグラフを描くことが可能になります。また、サーバー上にデータベースを置くことで、計測値をサーバー側に保存し、それを基にグラフを描画することもできます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ki073
  • ベストアンサー率77% (491/634)
回答No.5

No.4です。Ruby MySQLのことが出てきましたので、補足です。 質問者さんが職業としてのプログラマーを目指しているのではなく、お手軽にデータベースを使いたいのでしたら、Ruby on Railsに入っているactiverecordによるデータベースアクセスをお勧めします。 Ruby on Railsをインストールすればすぐに使えるようになります。もしかしたらsqlite3やMySQLを使うために追加ソフトが必要かも知れませんが、ネットで情報がたくさんあります。 sqliteが簡単なので例を示します。GUIで設定できるソフトがいろいろあるので、それで データーベースファイル名 ondo.sqlite テーブル名 temperatures フィールド名 dateとか適当にいれて データも表ソフトのような感じで仮に入れておきます。 Rubyのプログラムの全部を書くと require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => "sqlite3", :database => "ondo.sqlite" ) class Temperature < ActiveRecord::Base end p Temperature.find_each{|a| p a} 以上で、データベースに接続して全部のデータが出力されます。プログラムを知っている人にとってはものすごく不思議な感じですが、activerecordがうまく処理してくれます。 ActiveRecord::Base.establish_connection( の中をMySQL用に変えればそのままMySQLで使えるようになります。SQLは全然出てきません。 ご参考に

tyaeyama
質問者

お礼

ありがとうございました。 クライアントから人の手を介さず自動でサーバーに対してデータを送るのはどうすればよいか、 ローカル側、サーバー側それぞれ、おおまかにどういった処理になるのか、 など、またあらためて質問させていただきたいと思います。 もし見かけましたら、またご教授ください。 まずは、少し勉強ですね。

tyaeyama
質問者

補足

ki073 さん、たびたび回答をいただき、ありがとうございます。 私は、データの加工やその他社内アプリの作成をすることがあって、 ソフトハウスなどのプロのプログラマーさんには及ばないですが、 プログラミングの入門的な知識は一応ありまして、 C++, .NET系VB, JAVA, それにSQLは多少は使えます。 ところが、今回教えていただいたコーディングでは、 ぱっと見ただけでは何をやっているのかさっぱり分かりませんでした。 やはり、勉強しないといけませんね。 もしかすると間違っているかも知れませんが、 この教えていただいた例の場合ですと、 サーバー側のデータベース(MySQL)へのデータの登録は、 クライアントからGUI画面を使っておこなうということでしょうか。 クライアントからは人の手を介さず自動でサーバーに対してデータを送りたいのです...。 それで、 ・クライアント側にはデータ(CSVとかSQLか?)を送信するプログラム (プログラム言語は何でもかまわないのです。) ・サーバー側では受信したデータを元にMySQLに値を登録するRubyのプログラム の2種類のプログラムが必要なのでは、と思った次第でした。 でも、そもそもこういったサーバー&クライアントの仕組みが全然理解できてないせいで、 的外れな勘違いをしているのかも知れません。

その他の回答 (4)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

No.3の続きです。 不特定多数への公開でしたらwebサーバを使う方が便利でしょうか。 メールを送るのではなく、できたグラフ画像をwebサーバに定期的にアップする方法です。 spawnやexpect命令を使えば、サーバにログインしftpなどでアップロードすることも自動的でできます。

tyaeyama
質問者

お礼

回答いただき、ありがとうございました。 お礼が遅くなって申し訳ありません。 メールはやはり利用予定者の評判が芳しくなかったです。 この回答は、質問の(4)の方法に近いものだと思っていますが、 命令まで教えていただき参考になりました。 現状の私の知識ではこれが最も実現可能だと思っています。 しかし、会社の方では、当面現状のままの運用でいこうということになりました。 でも、MySQLとRubyなどを使ったウェブでの閲覧の仕組みを勉強してみようと思います。 どうもありがとうございました。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

多少の時間遅れがあってもよいのであれば、メールを使ったシステムはいかがでしょうか? 利用者側から見ると、登録しておけば定期的にデータが送られてくる、しょっちゅうメールが届くのが鬱陶しいのなら、リクエストメールを送ればデータが送られてくるなどができます。 それ専用のメールアドレスを作っておき(既存のメールサーバでよい)、リクエストメール受付用にします。 メールのクライアントやデータベースに接続するライブラリを使えば、メール送受信やデータの取得が比較的簡単にできます。データのグラフ化も、gnuplotやRなどにデータを送り込めばpdfなどでグラフの作成ができます。(Rubyの場合しかわかりませんが、他のプログラム言語でも可能なはずです) もう必要がなく使っていませんが、機器の管理に似た簡単なものを作ったことがあります。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

1)その認識でOKだと思います。 サーバ側でなんらかの処理を入れてHTMLを返します。 2)公開サーバから見えないところに(社内LAN等)計測データDBがある場合、直接は出来ません。(おそらく現状) レンタルサーバを既に借りているのであれば、そのレンタルサーバのDBに計測データDBを書き込むプログラムを作り、そのプログラムに対して計測データDBの値を送信します。 (その送信を定期的に行なうようなプログラム計測データDBを参照できるマシンに入れます) レンタルサーバ上のDBへ書き込めるかはそのXとPの仕様次第だと思います。出来ない場合は上のようなプログラムを作って転送します。 データさえ見えるところに書き込めればあとはデータベースからデータを取得してHTMLを返すものを作ればOKです。 挙げられているようにPHPやRuby,Perlであればレンタルサーバで利用可能だと思います。 (Java&JSPは使えるサーバ少ないです) ・Pより外部サーバDBへデータを転送するプログラム(定期的に呼び出すもの)  データベースを参照できてネットワークアクセスできる言語なら何でも良いと思います。 ・レンタルサーバ上でDBを読み込んで画像を生成したり画面を表示するプログラム  PHP,RUby,Perl等 もしくは ・Pより表示するもの(グラフやHTML)の作成してアップロードを自動化するプログラム 方法はいろいろあると思いますが、外部DBにデータを転送してあげるのが簡単かもしれません。 ようするにX,Pから吐き出したデータを見える場所に置けるかどうかが肝だと思います。

tyaeyama
質問者

補足

レスポンスが遅くなって申し訳ありません。 大変参考になりました。 会社の方では、結局今までの運用を続け、特に何もしないことになってしまいました。 が、個人的にサーバーサイドのプログラムに興味があり、 試しに作ってみようかと考えています。 サーバーサイドでDBをアクセスして動的にHTMLを作るということについては、 その言語がPHPであれ、Rubyであれ、Java+JSPであれ、なんとなくイメージできます。 実際作るとなると勉強はしないといけませんが、なんとかなりそうです。 イメージできないのは、データの受け渡しの部分です。 ローカル上のDBの内容を、レンタルサーバー上のDB(MySQLを使ってみようかな)に反映させないといけないですよね? これにはローカル側用とサーバー側用にそれぞれプログラムを作る必要があるのでしょうか。 (ローカル側) 定期的にローカルDBを読んでサーバーにその情報を送るプログラム。 CSV形式などでデータを送る?それとも、SQL文にして送る? (サーバー側) ローカルから受けとった情報をサーバーDBに書き込むプログラム。 CSV形式で受けとったなら、SQLを作ってサーバーDBに書き込む SQL文を受けとったなら、それを実行する みたいな...。 それとも全く違う仕組み? などなど...どんな仕組みで実現できるか素人頭で考えると、次々疑問が沸いてきます。 もう少し勉強してからでないとマトモな質問もできないかな、とかも思いますが...。 もしよろしければ、この部分について、簡単に教えていただけたら嬉しいです。

回答No.1

1)だいたい合っているかと。 2)その計測器の中身はWWW(world wide web)に公開しても問題がなく(つまり、赤の他人に見せていいのかどうかという意味。)、技術的に可能であればOKでしょう。 (でも社内ネットワークに繋がってるから駄目なんじゃないかなぁ。LAN上のファイルにアクセスされたらやばいかと思う。) 3)ここで言うDBというのはMysqlとかでしょうか?MysqlであればPHPとかPerlとかからアクセスできるはず。 DBの値がとれればグラフに利用できるかもしれませんね。 4) 3)が無理だとそうなりそうですね。 5) DBの種類と、データの格納のされ方とかに依存するので、取り出せるデータがなんなのか、というのがはっきりしないと、何が実現可能なのかが判断できないかと思います。 データさえ取り出せれば、グラフの生成は自動化できるかも知れないですね。

tyaeyama
質問者

お礼

回答いただき、ありがとうございました。 お礼が遅くなって申し訳ありません。 結局この件は簡単にできそうにないなら保留ということになり、 当面は社内ネットワーク上からのみ閲覧するという現状での運用のままとなりました。 でも、個人的にはなんとかしたいと思っていまして、 MySQLとRubyなどを使ったウェブでの閲覧の仕組みを作りたいと思っています。 未経験で分からないことが多いので、またここでお世話になるかも知れません。 その際よろしければまたご教授いただけましたら嬉しいです。 ありがとうございました。