社内のとある装置の測定値を関係者みんなが閲覧できるよう、
インターネットで公開するためのウェブアプリを作成しようと思います。
ウェブアプリは、PHP + MySQL を考えています。
まったく素人で、勉強しつつ作成していくことになります。
そこで質問なのですが、
1. 測定機器から値を収集してウェブサーバ上のDBに登録する処理を、
C#のプログラムで作成しようと思いますが、
ローカルで動作するC#のプログラムからウェブDBへの登録は可能でしょうか?
2. 1.が可能な場合、どのくらいのレスポンスになるものでしょう?
もちろんデータ量やPCや回線の能力にもよると思いますが...
例えば、500バイト程度のレコードを3000件ほど定周期で登録したいのですが、
周期をなるべく短いものにしたいです。
数秒周期?十数秒周期?数十秒周期?数分周期?
大雑把に分かりませんでしょうか?
3. 運用に必要な情報(例えば、ユーザID,PW等)もウェブDBに登録したいのですが、
設定項目が多くウェブアプリではメンテしづらいのと、
既存VB.NETのプログラムがあるためこれを活かしたいということで、
ローカルのVB.NETのプログラムからウェブDBへの登録は可能でしょうか?
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
こんにちは。
>C#とphpを連携させる場合、データはやはりxmlが扱いやすいのでしょうか。
その辺はなんでもいいと言ったら乱暴ですが、お好みで大丈夫だと思います。
私ならJSONで組むと思います。
>また、こういったレンタルサーバーのDBに、
>早くて数秒~遅くて2,30秒間隔で、500バイトx3,000レコードを更新するのは、
>やはり高負荷となるのでしょうか。
>これは、別のカテゴリーで質問を立てるか、
>そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。
個人的には負荷が高いかなと思います。
通信時間も入ると数秒の繰り返しでは、3000件のインサートが間に合わないかもしれません。
実際のところやってみないとわかりませんが。
もっと明るい人がいるかもしれませんので別の質問として聞いてみるのも手ですが、一番確実なのは業者に問合わせてください。
常にプロセスがCPUを食ってるとか、メモリの利用が高いと、強制的に止められてしまう可能性もありますので。
何度もすみませんでした。
なるほどJSONですね。
少しかじって知っています。
これから設計のときにきちんと検討します。
やはりサーバーの負荷が一番気になるところです。
今はまだ、こういうことをしたい、程度の構想段階なもので、
具体的な業者の選定もなにもこれからなのですが、
予備知識を得るためにももう少し調べてみようと思います。
強制的に止められたりすると大変ですので、
扱うデータ量ももっとちゃんと見積った上で、
慎重に考えたいです。
この度は、どうもありがとうございました。
大変参考になりました。
No.4
- 回答日時:
こんにちは。
>なるほど、直接接続できないのですか。
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レコードを更新するのは、
やはり高負荷となるのでしょうか。
これは、別のカテゴリーで質問を立てるか、
そもそもサーバー業者に問い合わせすべき内容かも知れませんが...。
ともにもしご存知でしたら、ご教授ください。
度々すみません。
No.3
- 回答日時:
すみません、webDBの話でしたね。
ということで私の話は無視してください。
早速書き込みをいただきまして、ありがとうございます。
今回は、ウェブサーバー上のDBのことでしたので、
すみませんでした。
ありがとうございました。
No.2
- 回答日時:
単に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
ネットワークの性能を上げれば多少早くなるとは思います。
まあ、データを集めて整理するのに、どの程度時間がかかるかの方が大きな問題かもしれません。
(が、このあたりはやってみないことにはなんともいえませんね。)
No.1
- 回答日時:
こんにちは。
1.可能です。
ただし、Webサーバがレンタルの場合、おそらく外部からDBへの接続は出来ないので(プランによるかもしれませんが)
php等を介しての処理になると思います。
2.WebサーバがそのC#を動かす端末からどこの位置にあるかにもよると思います。
(自社管理のサーバなのかレンタルサーバを借りるのかetc.)
1.で述べたようにC#→php→mySQLだと直接mySQLに接続するより処理時間がかかるのは必至です。
こればかりは実際の環境でやってみて、チューニングするしかないと思います。
3.1.と同様、可能ですが方法に制限があるかもしれません。
どうせサーバ側の処理を介すならWebで作ってしまったほうが楽でしょうし。
(仲介するAPI的なものを作る必要がない)
この回答への補足
ありがとうございます。
なるほど、直接接続できないのですか。
大変参考になりました。
例えば、ODBC接続のようなものがあって、
ウェブ上DBに簡単に接続できるものと考えていましたので。
ウェブサーバーは、レンタルサーバーを利用するつもりです。
いくつか運用をしたいと思っていまして、
その中にはWindowsのIISでイントラネットのようにしようと思っていたものもありますが。
ちなみに、phpを介する場合、それはどのようなことをするのでしょうか?
ローカルで収集したデータをサーバーに送る仕組みと、
そのデータをphpでどう扱うのか、
あまりうまくイメージできません。
概要のようなものでもご存知でしたら、ご教授ください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Windows 10 Windowsのタイムスケジューラーについての質問です。 先日、Webスクレイピング用のプログラムを 1 2022/09/28 05:51
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
WordでExcelデータを差込...
-
excel access連携 このテーブル...
-
MSFlexGridのデータを初期化し...
-
【C#】DataGridViewの最大列数...
-
C#でのForm間のデータ受け渡し...
-
画像の読み込み&白黒判別プロ...
-
表を表示するコントロールについて
-
TCPでデータを受け取ってそれを...
-
INIファイルに一括書き込みを行...
-
ActiveReportのサブレポート機...
-
「外部データの取り込み」とい...
-
エクセルVBAとWEBクエリ...
-
VB.NET 2017の勉強中です。 今...
-
★お手上げ状態です。助けてくだ...
-
小数点以下を含む計算でバグが...
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
ActiveReportのサブレポート機...
-
GridViewからチェックボックス...
-
★お手上げ状態です。助けてくだ...
-
VBA内でのGetPixelを使用した時...
-
表を表示するコントロールについて
-
Windowsのマクロプログラムで、...
-
INIファイルに一括書き込みを行...
-
MSFlexGridのデータを初期化し...
-
C#でのForm間のデータ受け渡し...
-
「外部データの取り込み」とい...
-
C言語で地図を描きたい
-
小数点以下を含む計算でバグが...
-
エクセルVBAで楽天証券に注...
-
CSVのインポート【ASP.NET】
-
画像の読み込み&白黒判別プロ...
おすすめ情報