- PR -

ネット経由でのC/Sシステムについて

投稿者投稿内容
たもさん
会議室デビュー日: 2008/02/29
投稿数: 14
投稿日時: 2009-04-10 10:16
いつもお世話になっております、たもと言います。

新規ではじめるプロジェクトで以下のようなC/Sシステムを予定してるのですが
構築にあたって助言を頂きたくお願い致します。

開発環境:VB2008
メインDBサーバ:SQLServer2005

ユーザの環境が非ローカルネットワーク下の為、
PGはローカルにDBを持ちスタンドアロンで動かす必要がある。
(事務所に帰ればインターネット環境には接続出来る)
===========================================================================
1.メインDBにあるマスタデータをダウンロードしてローカルに落とす。
2.スタンドアロンでシステム運用。
3.ローカルで発生したデータをメインDBにアップロードする。
===========================================================================
上記のような流れを実践したいと思っています。

プログラム自体はClickOnceのWEBサーバー経由で配布予定で、
ローカルDBには[mdb]or[SQL Compact 3.5]を使ってみようと思っています。

質問はメインDBとローカルDBのやり取りの部分なのですが、
セキュリティ問題から、メインサーバのネット経由でのアクセスは
どうしても許可が貰えませんでした。

こうなってくると、
メイン側で差分データファイルを作成するようなPGを起動させておき
ローカル側でその差分ファイルを毎回確認し、
ダウンロード→ローカルDBに反映のようなウィルスソフトのような流れ
にするしか方法は無いのでしょうか?
それとも他にいい方法があるでしょうか?

また、仮に差分ファイルでの方法がベターである場合に
そのやり取りはどういう形で行うのが良いのか助言を頂けると幸いです。

以上、よろしくお願いいたします。
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-04-10 10:29
Sync Frmaework使ってみるとか。
http://msdn.microsoft.com/en-us/sync/default.aspx

触ったことないので、実際に使えるかどうかわかりませんが。
たもさん
会議室デビュー日: 2008/02/29
投稿数: 14
投稿日時: 2009-04-14 09:32
to どっとねっとふぁんさん

ご返事ありがとうございます
Sync Frameworkなるものがあるのですね。
教えていただいたURLよりチェックしてみます
有難うございました


その他の方法もご存知の方がいらっしゃったら
些細な事でも良いのでよろしくお願いします

unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2009-04-14 11:04
引用:

たもさんさんの書き込み (2009-04-10 10:16) より:
こうなってくると、
メイン側で差分データファイルを作成するようなPGを起動させておき
ローカル側でその差分ファイルを毎回確認し、
ダウンロード→ローカルDBに反映のようなウィルスソフトのような流れ
にするしか方法は無いのでしょうか?
それとも他にいい方法があるでしょうか?


最初、要件が良く分からなかったのですが、3回ほど読んだら分かりました。
「ウィルスソフト」とは「ウィルス対策ソフト」ということですよね?

なお、おっしゃる「セキュリティ問題」は、なにを目的としたものなのでしょうか?DB に API でアクセスするのはダメだけど、ファイル経由なら良い、というようなことなのでしょうか?

また「差分」を作るためには、更新前と更新後の両方の情報が必要です。「サーバー」側で「差分」を作り出すためには、「ローカル」側で更新した情報をなんらかの方法で「サーバー」に伝えないことには無理だと思います。この点はどう解決されるつもりなのでしょうか?
たもさん
会議室デビュー日: 2008/02/29
投稿数: 14
投稿日時: 2009-04-14 11:26
To. unibonさん

書き込み方がわかり辛くて申し訳ありません
仰るとおり、ウィルスバスターの定義ファイルの様なイメージでした。

セキュリティ問題ですが、これも仰る通りで
プログラムからネット経由で直接SQLServerと接続するのは駄目と言われ
ファイルに落とすなどのワンクッションを置いてくれとのことです。

差分に関してですが
現段階ではサーバとローカルの差分は必要ではないので
サーバ側のマスタデータの差分(新規追加および変更分)を
定期的に出力するプログラムがあれば良いかなと思っています。


たらお
大ベテラン
会議室デビュー日: 2006/12/25
投稿数: 206
お住まい・勤務地: 東京・永代通り
投稿日時: 2009-04-14 12:01
>ネット経由で直接SQLServerと接続するのは駄目

SQLインジェクション対策ですか?
以下の構成にVPN併用すれば、充分だと思われますが。

外部から直接SQLを叩くことはできません。
外部のクライアントはVNCのみで、作業性やデータのセキュリティも向上します。

(Net)------Client(VNC)
 |
 |
[Router]
 |
[Firewall]----DMZ_Client(VNCサーバ)
 |
 └---SQLサーバ

ネットの脅威は、ネットの仕組みで回避したいものです。

注)外部クライアントが多いほど、DMZの負担が大きくなります。
ここでは、若干名の外部クライアントを想定しています。

_________________
_福田太郎_
たもさん
会議室デビュー日: 2008/02/29
投稿数: 14
投稿日時: 2009-04-15 09:31
To.たらおさん

今回非ネットワークなのは
作業者が不特定多数で非社員の方も含まれるそうで
その為に社内ネットワークを使いたくないとの事でした
よってVPN経由も許可されない可能性が高そうですが
手法としては参考になりました。
ありがとうございました
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-04-15 19:48
引用:

たもさんさんの書き込み (2009-04-15 09:31) より:
To.たらおさん

今回非ネットワークなのは
作業者が不特定多数で非社員の方も含まれるそうで
その為に社内ネットワークを使いたくないとの事でした
よってVPN経由も許可されない可能性が高そうですが
手法としては参考になりました。
ありがとうございました



これ、最初に欲しいね。
複数の作業者が、同じデータを、違う値に書き換えていたら、どうなりますか?

普通、「最初勝ち」(楽観的排他制御)ですが、作業者が戻ってきて登録という作業なので、「最後勝ち」になりますね。

作業 PC のデータベースに対する query を全て保存しておき、バッチ実行というのが簡単かも?作業記録も残るし。

スキルアップ/キャリアアップ(JOB@IT)