
私は Staock Overflow でこの質問をしましたが、コーディングと同じくらい管理にも関係しているので、あなたの意見も聞きたいです。
デスクトップ プログラムがデータベースと通信する .net 2 層アプリケーションがあります。MS SQL Server 2000、2005、2008、および Oracle 9、10、11 をサポートしています。
アプリケーションは、シュリンクラップとしてではなく、それに近い形で販売されます。インストール手順は通常、顧客の社内 IT 部門に書面で提供されるため、インストールと構成が可能な限り簡単であることが私たちにとって非常に重要です。私たちのアプリケーションは通常、IT 部門にとってミッション クリティカルとは見なされていないため、彼らの作業を最小限に抑える必要があります。
現在、同じデータを基に Web アプリケーションを構築したいという要望が寄せられ始めています。Web アプリケーションは当社でホストされ、SaaS アプリケーションとして提供されます。
ここでの課題は、Web アプリケーションと顧客の内部データベース間でデータをやり取りする方法です。私の見解では、いくつかの要件があります。
- 顧客データベースが DMZ からアクセスできない状況に対処する準備が必要です。最も簡単な解決策は、すべての通信を顧客 LAN 内から開始することだと思います。
- ファイアウォールの構成はできるだけ少なくします。顧客の LAN からの送信トラフィックがブロックされない限り、特別な構成なしで実行できるのが最善です。ファイアウォールで何かを変更する必要がある場合は、その変更が安全であることを文書化できなければなりません。
- リアルタイムである必要はありません。10 分ごとにデータを一括移動しても問題ありません。
- データは双方向に移動しますが、同じテーブルではないため、マージをサポートする必要はありません。
- 完全に独自のフレームワークを作成する必要がなければ良いでしょう。
皆様のご提案をお待ちしております。
答え1
この質問が古いことを考えると、なぜトップページに突然現れたのかはわかりませんが、まだ提案を探しているのであれば、クライアント ネットワーク内からサーバーへの VPN を確立してみてはいかがでしょうか。OpenVPN のようなものを使用すると、次の機能を備えたツールが得られます。
- 動作に必要なポートは 1 つだけです。
- 送信トラフィックがクライアント サイトから開始できる限り、ファイアウォールの構成は必要ありません。
- 一度接続すると、データのやり取りが簡単になります。
これらを設定することで、顧客間の高いレベルの分離を実現できます。
答え2
私があなたの問題を正しく理解しているなら、この種のニーズに対して迅速かつ安定した解決策は、Adobe Flex 上にソリューション全体を構築することです...
顧客向けにデスクトップに座っている AiR インターネット クライアントを構築します。このクライアントには、クライアント マシン上のデータに対する必要な権限が付与される必要があります (制限がある場合)。このクライアントは、お客様の希望に応じて、Web サービスと安全かつ定期的に通信します。