デスクトップアプリからサーバにアクセスする方法とサーバの構成についての質問

このQ&Aのポイント
  • Visual Studio (C++)で作成したモジュールの使用状況を収集するために、アプリを起動する度に、サーバに接続し、ログを残す仕組みを作りたい
  • 質問1:アプリからサーバにアクセスする方法は何か
  • 質問2:サーバ側の構成について知りたい
回答を見る
  • ベストアンサー

デスクトップアプリからサーバにアクセスする

Visual Studio (C++)で作成したモジュールの使用状況を収集するために、 アプリを起動する度に、サーバに接続し、そのサーバにログを残す という仕組みを作りたいと考えています。 (本屋で物色したのですが結局、該当する本はわかりませんでした) セキュリティや拡張性などを考えると おそらく実現の方法はいろいろあると思われますが、 まずは”動かす”を第一に考えています。 1.アプリからサーバにアクセスするのは、どういった仕組みを利用するのが 2.サーバ側はどのような構成になるのでしょうか。 3.サーバ側で受け取った情報をDBに書き込むにはどのようにするのか ネットや書籍で調べてみると   サーバとDBとの接続は 「TomcatからJDBCを使用してデータベースMySQLにアクセスする」や   「PHPからMySQLにアクセスする方法...」   等々なんらかの情報があるのですが、   アプリからサーバへのアクセスの方法は、   自分にはどれがそうなのかわかりませんでした。      的外れのことをいっているかもしれませんが、教えていただけますとありがたいです。

  • MySQL
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
回答No.2

>モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして >ログを残す といった箇所は全く経験がなく検討がつきません。 Apacheサーバーを含めて主要なサーバーアプリはアクセスがあったページのログを自動で残す機能がありますから 単純にダミーのページを一つつくってクライアント側から起動時にバックエンドでそのページにアクセスするように しておけばサーバー側でアクセスログから時間と起動した端末のIPアドレスが割り出せます。 もう少し詳細な情報を自前のデータベースに取り込みたい場合はPHPなどで動的ページを作成しページへの アクセス時のURLの「?」以降にパラメータを記載してサーバー側で情報を受け取って処理する方法があります。 例) http://xxx.xxx.xxx.xxx/index.php?cliant=xxx&state=xxxxxx ようするにクライアント側からは積極的にデータベースの更新には動かずページを見に行くだけに留め サーバー側でページを見に来た相手を記録してログとして残すわけです。 確実性という点では若干の不安が残りますがデータベースの接続、更新、切断の手間に比べれば手軽に実装できます。

moshikokore
質問者

お礼

お礼が遅くなりましてすみません。 再度の回答ありがとうございます。 閉じられたネットワーク内で、記録用に使うのみ (悪意あるユーザはいないと想定できる環境) ですので、まずは、教えて頂いた方法でトライしたいと思います。 ありがとうございました。

その他の回答 (1)

回答No.1

おそらく一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます。これならばクライアントがwindowsならばほぼ確実に動作しますし設定や動作確認も簡単です。 それだとログを外部から読まれてしまう危険があるという場合はWEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。ネット関係の機能は昨今どのPCにも搭載されておりますから動作についてはあまり心配しなくてもいいかとおもいます。 逆にデータベースに直接アクセスする方法ですとデータベースへの接続用のモジュールが全てのクライアントで必要になりますのでインストールの手間がかかるようになってしまうため、あまりお勧めいたしません。

moshikokore
質問者

補足

さっそくの回答ありがとうございます。 >一番簡単で確実なのはwindowsのファイル共有を利用してサーバー側に共有フォルダにテキスト形式で書き込むことだとおもいます 確かにこれでしたら一番簡単で確実にできそうです。      後学のため教えてください >WEBサーバーを立てて起動の際にそのサーバーにアクセスする形にするのが良いとおもいます。  これを実現するには、apacheなどでサーバをたて、クライアントのモジュールから  アクセスするといったイメージでしょうか。    apacheサーバをたてて、そこでwikiなどのWebページを作成するというのは経験があり  イメージがわくのですが、  モジュールからサーバにアクセスして、サーバ側のローカルファイルなどに書き込むなどして  ログを残す といった箇所は全く経験がなく検討がつきません。  winsockを用いて、モジュールとサーバ間とでコネクションをはって、、  というイメージなのでしょうか。  再度の質問で恐縮ですが教えて頂けますとありがたいです。  

関連するQ&A

  • JSPからMysqlにアクセスするユーザ・パスワード

    こんにちは。raly-ralyです。 ご存知の方がいましたら、教えてください! 【使用している環境】 Tomcat/4.1.12 Apache/2.0.43 Mysql/3.23.53 RedHatLinux/7.3 WebサーバとMysqlサーバは同じサーバです。 Telnetでサーバにログオンし、MysqlのDB "TEST"を操作するときのユーザ/パスワードを "raly"/"password"とします。("raly"のMysqlでの権限はルート権限です) Web(JSP)からDB "TEST"にアクセスするときに、"raly"/"password"を使用すると、 以下のエラーメッセージが表示されます Invalid authorization specification: Access denied for user: 'raly@localhost.localdomain' (Using password: YES) ところが"raly"/(パスワードなし)でアクセスすると、 DB "TEST"にアクセス可能です。 同様に、Windows端末からODBC接続する場合も"raly"/(パスワードなし)だと成功します。 Mysql側に何かそういう設定があるのでしょうか?

    • ベストアンサー
    • Java
  • Androidから外部DBサーバーへ接続(MySQL)

    現在、Androidのアプリで、ボタンを押下したらWindows上のMySQLサーバーに接続し、データを取得しようとしています。 しかし、どうしてもDBサーバーに接続できません。 Exceptionに飛んでしまいます。 どなたかご教授ください><; 【環境】 ・Windows Vista Home Premium ・eclipse 3.5上でAndroidをエミュレーション ・MySQL 5.1を使用 ・JDBCドライバは5.1を使用  プロジェクトの構成パスにJDBCを追加 【ソースコード(接続部分のみ)】 import java.sql.*; (中略) public void onClick(Veiw v) {   try {     Class.forName("com.mysql.jdbc.Driver);     Connection conn = DriverManager.getConnection("jdbc:mysql://localhost; DatabaseName=DBName;", "user", "pass");     Statement stmt = conn.createStatement();     (中略)   } catch (Exception ex) {     // エラー   } }

  • 外部DBアクセスするAndroidアプリについて

    Androidアプリで、外部DBに登録されているユーザを検索→一覧画面に表示し、一覧画面に表示された詳細ボタンから詳細画面へ遷移する仕組みを作りたいと思っています。 Androidから直接DBアクセスするためにはサーバ側でポートを解放しなければならず、セキュリティ上よろしくないので、サーバにPHPプログラムを置き、DBアクセスはPHPで行いたいと思っています。 しかし、検索まではいくものの、Androidへの結果の返し方がわかりません。 どなたか方法をご存じの方いらっしゃいますでしょうか。 また、そもそもこういった外部DBにある大量データを扱うアプリの場合、全てWebviewにしてしまうのが一般的なのでしょうか?なるべくならAndroidのコンポーネントを使った画面にしたいと思っているのですが。。

  • JAVA ServletでSQL Serverに接続できないんですが。

    マイクロソフトのサイト(SQL SERVER2000 Driver for JDBC)から ドライバーを取ってきて、JAVAからDB接続テストを行っています。 最初に簡単なJAVAアプリを作って実行したところ、うまく動作しました。その後、Servletで同様のtestをしたところ、Tomcatのコンソール画面に、ClassNotFoundExceptionが出て、実行できません。 下記の命令が、処理できないようです。 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); CLASSPATHの設定もコマンドプロンプトで、setコマンド実行結果で確認済みです。 他のデータベース(MySQL)では、Servlet,JSP,JAVAアプリすべて、うまく実行できました。 ご存知の方、よろしくお願いいたします。 環境:(1台のマシン内での仮想ネットワーク) windows XP Pro (SP1) j2SDK 1.4.1_03 Tomcat4.1 SQL Server2000

  • Java(JDBC)からAccessのレポートを実行するには?

    現在、ACCESS2003のDBをJava(JDBC)+Tomcatにて、Web上に表示、編集を行う仕組みを構築しています。 現在、帳票の印刷は、手動でAccessを起動し、そこで作成してあるレポートを実行していますが、これをJavaから制御(実行)することはできないでしょうか。

  • サーバのクライアントアクセスライセンスについて

    NTサーバのクライアントライセンス(CAL)にカウントされるのは 以下のどれとどれでしょうか? よろしくお願いします. 1.サーバ上の共有フォルダへのアクセス 2.サーバ上の共有プリンタへのアクセス 3.サーバ上のSQLサーバDBへのODBC接続 4.サーバ上のオラクルDBへのSQL*Net接続 5.サーバに対してのHTTP接続(IIS) 6.サーバに対してのFTP接続 7.サーバ利用側が独自に開発したUDP/TPCポートを使用したサーバ型サービスに対するアクセス 8.サーバに対してPINGを行う(まさか) 特にwwwサービスへのアクセスがクライアントライセンスにあたるのかが知りたいです.あたらないですよね?? これが抵触するとしたら,膨大なライセンスが必要になってしまうとおもいましたので... よろしくお願いいたします.

  • Tomcat上でMS-ACCESSに接続しようとするとメモリ不足になる

    Tomcatサーバー上で、MS-AccessにODBC経由で接続しようとすると、 "java.sql.SQLException [Microsoft][ODBC Microsoft Access Driver] メモリ不足です。" というエラーになってしまいます。 Javaのコードは、以下のようになります。 --------------------------------------------------------- Connection conn = null; Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); conn = DriverManager.getConnection("jdbc:odbc:データソース名"); --------------------------------------------------------- 上記3行目の、DriverManagerの部分でエラーになってしまいます。 同じサーバー上でOracleやDB2へのJDBC接続は問題なく接続できます。 TomcatのJavaメモリ設定は、以下のようになっております。 Initial memory pool : 1024 MB Maximum memory pool : 1536 MB Thread stack size : 1024 MB サーバーの物理メモリは2GBで、通常時のメモリ使用量はおおよそ1.4GB程なのでメモリ不足にはならないと思われるのですが、なぜ接続できないのでしょうか? また、同じプログラムをローカル上で実行した場合には、問題なく接続できます。 尚、サーバーの環境は以下のようになります。 OS : Windows 2003 Server R2 メモリ : 2GB Tomcatのバージョン : 5.5 JDKのバージョン : 1.5 以上、宜しくお願い致します。 

  • winアプリケーションからsolarisサーバーへのアクセス方法(ODBC?JDBC?)がわかりません

    お世話になります。初心者です。 情報不足の場合はご指摘いただければ幸いです。 複数のwinクライアント上でアプリ(MS-ACCESS)を動かし、Solaris9サーバーマシンのDB(Oracle)へアクセスしたいのですが、よくわからず質問させていただきました。 ただ、クライアントにインストールや設定作業は極力さけたいので、サーバー側で対処できる方法をご教示いただければありがたいです。 質問> 1.ODBCは使えるのでしょうか?その場合の手順はどのようになりますか?Winのクライアントの管理ツールからODBCソース作成をしようとしてみましたが、Solaris9が対応していないのか、アクセス拒否されてしまいます。 2.WinクライアントからJDBCを使うにはどうすればよいのでしょうか?その場合の手順はどのようになりますか?こちらはまったく不明です。 お手数ですが宜しくお願い致します。

  • Tomcat6.0でのJSP

    Tomcat6.0を使ってJSPファイルからMYSQLへ接続しようとします。 ブラウザーからアクセスするとしたのようなエラーが表示されます。 java.lang.ClassNotFoundException: com.mysql.jdbc.Driver javaでMYSQLへアクセスするソースを作成しコンパイルして実行すると 正常にMYSQLにアクセスできました。 com.mysql.jdbc.Driverがないとは思うのですが。。。。 まず、何から調べたらいいのか?教えてください

  • 格安のサーバー・・・・

    はじめまして! サーバーを借りようとおもうのですが OS: Windous linux unix どってでも構いません server; TOMCAT (JSP) DB; MYSQL SSL設置可能なサーバ 以上の条件で探しています。 どなたか格安でレンタルしているところをご存知でしたら教えて下さい。 宜しくお願い致します