• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サーバー間通信?)

サーバー間通信の手法とは?

このQ&Aのポイント
  • サーバー間通信において、外部からアクセス可能なサーバーAとイントラネット用サーバーBのデータ連携について説明します。
  • サーバーA上のcgiからサーバーBのデータベースを読み込む方法や、サーバーBのASP.NETプログラムからサーバーAのデータを読み書きする方法について解説します。
  • 具体的な手法としては、socketを使用してサーバーBのデータを取得する方法や、ASP.NETプログラムを使用してサーバーAのデータベースにアクセスする方法が考えられます。

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

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.3

#1です。 両方データベースなら普通に読み書きできるでしょう。 ASP.NET -> MySQLはMyODBCを使ってODBC接続で充分でしょう。 Perl -> SQLServerは以下のURLが参考になると思います。 http://www.augustus.to/blog/3128/archives/000046.html >その入力データをとりあえずAのDBに保存しておいて ここでAのDBに保存しておく理由は何でしょう?要/不要がわかっているのならAから直接BのDBに書き込めばいいのでは? とりあえず、公開サーバと内部サーバを通信させるにはファイアウォールの設定(DBで通信するための穴を開ける)すれば大丈夫でしょう。

Orange-LL
質問者

お礼

データはサーバBで管理することになりました。 教えていただいたURL、大変参考になりました。 ありがとうございました。

その他の回答 (2)

  • t_nojiri
  • ベストアンサー率28% (595/2071)
回答No.2

Bonjinさんの回答通り出来ますが、Orange-LLさんの説明では、アパッチとかIISを介入させる理由が全く有りません。 HTTPのプロトコルを利用して、ブラウザでデータを入力させるフォームを表示させ、DBに入力前にブラウザでチェックするcgiやASPを作るとかという理由なら判るのですが、この説明でアパッチやIISを使うと行っても、クライアントは全く納得しないと思います。

Orange-LL
質問者

補足

サーバーを2つに分けるのは、クライアントからの要求なのです。サーバーA・Bはすでに構築されているものです。 Aからやりたいことは、外部PCのブラウザでデータを入力させるときに、Bのマスターデータベースから一部のデータをひっぱって選択させたいのと、その入力データをとりあえずAのDBに保存しておいて、イントラネットでBにつながっているマシンから必要なものをAのDBからBのDBに移動したいのです。 よろしくお願いします。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

結論から言えば両方可能です。 1はPerlのデータベースモジュールを使って接続すればいいのでは?データベースとアプリケーション(CGI)の間にアプリケーション(ASP.NET)を挟むなんていう恐ろしいことは考えない方がいいですよ。 データベースにアクセスするには、たいていの言語でモジュールなりライブラリが用意されています。 2はA上のファイルをNFSで公開し、BにNFSクライアントを入れればできそうですね。またはFTPによるダウンロードとアップロードで実現。 ちなみになぜAとBが相互的にデータを参照しているのでしょうか? AにあるデータとBにあるデータベースの内容が互いに影響あるものならばデータの整合性が保てないと思うのですが? どちらにしろ根本的に問題がありそうな記がします。

Orange-LL
質問者

補足

ご回答ありがとうございます。 A上のファイルとあるのですが、データベースはファイルではもっていないのです。ちなみにAのデータベースはmysql、BはMicrosoft SQL Server 2000です。 サーバーBをイントラネットではなく公開できればBで一括管理できて良いのですが、関係者がそれを拒否していまして、でもBにあるマスターデータをAから読みたいという希望があるのです。問題はデータの漏洩とかなりすましアクセス?だと思うので、このあたりがクリアできればいいのですが。

関連するQ&A