アプリ版:「スタンプのみでお礼する」機能のリリースについて

社内のとある装置の測定値を関係者みんなが閲覧できるよう、
インターネットで公開するためのウェブアプリを作成しようと思います。
ウェブアプリは、PHP + MySQL を考えています。
まったく素人で、勉強しつつ作成していくことになります。

そこで質問なのですが、
1. 測定機器から値を収集してウェブサーバ上のDBに登録する処理を、
C#のプログラムで作成しようと思いますが、
ローカルで動作するC#のプログラムからウェブDBへの登録は可能でしょうか?
2. 1.が可能な場合、どのくらいのレスポンスになるものでしょう?
もちろんデータ量やPCや回線の能力にもよると思いますが...
例えば、500バイト程度のレコードを3000件ほど定周期で登録したいのですが、
周期をなるべく短いものにしたいです。
数秒周期?十数秒周期?数十秒周期?数分周期?
大雑把に分かりませんでしょうか?
3. 運用に必要な情報(例えば、ユーザID,PW等)もウェブDBに登録したいのですが、
設定項目が多くウェブアプリではメンテしづらいのと、
既存VB.NETのプログラムがあるためこれを活かしたいということで、
ローカルのVB.NETのプログラムからウェブDBへの登録は可能でしょうか?

よろしくお願いします。

A 回答 (5件)

こんにちは。



>C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。
その辺はなんでもいいと言ったら乱暴ですが、お好みで大丈夫だと思います。
私ならJSONで組むと思います。


>また、こういったレンタルサーバーのDBに、
>早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、
>やはり高負荷となるのでしょうか。
>これは、別のカテゴリーで質問を立てるか、
>そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。
個人的には負荷が高いかなと思います。
通信時間も入ると数秒の繰り返しでは、3000件のインサートが間に合わないかもしれません。
実際のところやってみないとわかりませんが。
もっと明るい人がいるかもしれませんので別の質問として聞いてみるのも手ですが、一番確実なのは業者に問合わせてください。
常にプロセスがCPUを食ってるとか、メモリの利用が高いと、強制的に止められてしまう可能性もありますので。
    • good
    • 0
この回答へのお礼

何度もすみませんでした。

なるほどJSONですね。
少しかじって知っています。
これから設計のときにきちんと検討します。

やはりサーバーの負荷が一番気になるところです。
今はまだ、こういうことをしたい、程度の構想段階なもので、
具体的な業者の選定もなにもこれからなのですが、
予備知識を得るためにももう少し調べてみようと思います。

強制的に止められたりすると大変ですので、
扱うデータ量ももっとちゃんと見積った上で、
慎重に考えたいです。

この度は、どうもありがとうございました。
大変参考になりました。

お礼日時:2013/10/31 14:10

こんにちは。



>なるほど、直接接続できないのですか。
DBが外部ネットワークからの参照を許可していれば大丈夫です。

>ウェブサーバーは、レンタルサーバーを利用するつもりです。
共有サーバの場合、大量のリクエストを行うと、ほかのユーザに迷惑がかかる場合もあります。
十分に検討してください。

>ちなみに、phpを介する場合、それはどのようなことをするのでしょうか?
>ローカルで収集したデータをサーバーに送る仕組みと、
>そのデータをphpでどう扱うのか、あまりうまくイメージできません。

直接アクセス出来る場合は、C#のアプリでSQLを発行してデータを保存することが出来ます。

DBに直接接続できない場合は、対象のDBに接続できるphpを介すことになります。
phpを介すとは、SQLの発行をphpで行い、データの保存、取得を実行します。

例えばですが
regist.php ← データ登録用

C#で作成したデータをregist.phpに対して投げます。
regist.phpではデータを受け取り、SQLを発行してデータベースへ登録します。
ようは、登録の部分の窓口をphpで作っておくということです。


DBにデータが入ってしまえば、phpで表示するページを作るもよし、同じような仕組みでデータを取得する窓口を作ってあげてWindowsアプリにて取得して表示するもよしです。

この回答への補足

度々ありがとうございます。
よく分かりました。

少し調べてみたところ、外部アクセスを許可するサービスは、やはり料金が高いですね。
できれば普通の(?)レンタルサーバーのMySQLを使用したいものですが...。

C#とphpの連携も調べて見て、なんとなく分かりました。

DB登録後のphpでの抽出やhtml作成はイメージできます。

道筋がだいぶはっきりしてきました。
ありがとうございます。


厚かましくて申し訳ないのですが、
C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。

また、こういったレンタルサーバーのDBに、
早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、
やはり高負荷となるのでしょうか。
これは、別のカテゴリーで質問を立てるか、
そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。

ともにもしご存知でしたら、ご教授ください。
度々すみません。

補足日時:2013/10/31 10:54
    • good
    • 0

すみません、webDBの話でしたね。


ということで私の話は無視してください。
    • good
    • 0
この回答へのお礼

早速書き込みをいただきまして、ありがとうございます。

今回は、ウェブサーバー上のDBのことでしたので、
すみませんでした。

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

お礼日時:2013/10/30 18:39

単にdbの速度だけな半紙をするなら、私のチンケなテスト環境だと


(8年位前のほとんどIOのないHPのサーバーにDB2のEE入れた
ものに対して、同じくらい古いcore2マシンからネットワークは100M、
3段くらいカスケードしてあるがハブ間はメタルのギガ回線)
下記VB6プログラムで、500バイトのデータを3000件登録するのに、
およそ4秒かかりました。


Dim strdata As String
Dim strsql As String
strsql = ""

For X = 1 To 50
strdata = strdata & "abcdefghij"
Next X

Con.Open "xxxxx"

Debug.Print Now

For X = 1 To 3000
strsql = "insert into t_test values (" & X & ",'" & strdata & "')"
Con.Execute strsql
Next X

Debug.Print Now()

2013/10/30 17:33:32
2013/10/30 17:33:36

ネットワークの性能を上げれば多少早くなるとは思います。
まあ、データを集めて整理するのに、どの程度時間がかかるかの方が大きな問題かもしれません。
(が、このあたりはやってみないことにはなんともいえませんね。)


 
    • good
    • 0

こんにちは。



1.可能です。
ただし、Webサーバがレンタルの場合、おそらく外部からDBへの接続は出来ないので(プランによるかもしれませんが)
php等を介しての処理になると思います。

2.WebサーバがそのC#を動かす端末からどこの位置にあるかにもよると思います。
(自社管理のサーバなのかレンタルサーバを借りるのかetc.)
 1.で述べたようにC#→php→mySQLだと直接mySQLに接続するより処理時間がかかるのは必至です。
こればかりは実際の環境でやってみて、チューニングするしかないと思います。

3.1.と同様、可能ですが方法に制限があるかもしれません。
どうせサーバ側の処理を介すならWebで作ってしまったほうが楽でしょうし。
(仲介するAPI的なものを作る必要がない)

この回答への補足

ありがとうございます。

なるほど、直接接続できないのですか。
大変参考になりました。
例えば、ODBC接続のようなものがあって、
ウェブ上DBに簡単に接続できるものと考えていましたので。

ウェブサーバーは、レンタルサーバーを利用するつもりです。
いくつか運用をしたいと思っていまして、
その中にはWindowsのIISでイントラネットのようにしようと思っていたものもありますが。

ちなみに、phpを介する場合、それはどのようなことをするのでしょうか?
ローカルで収集したデータをサーバーに送る仕組みと、
そのデータをphpでどう扱うのか、
あまりうまくイメージできません。
概要のようなものでもご存知でしたら、ご教授ください。

補足日時:2013/10/30 18:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!