Windowsデスクトップアプリケーションをリモートロケーションに接続します
-
30-09-2019 - |
質問
リモートオフィスを中央データベースに接続する方法を知りたいと思います。
これがシナリオです:
Windowsデスクトップアプリケーションで作業している複数のユーザーがいるオフィス
このアプリケーションは、Officeサーバーのデータベースからデータを取得します。
現在、1つ以上のリモート(オフィス、店舗など)は、同じデータにアクセスする必要があります。
どうすればこれを達成できますか?
リアルタイムが必要な場合があります
それほど重要ではないこともあります。
解決
簡単に使用できます DataSNAP また 再起動 既存のデータベースを中間層サーバーとしてラップして公開するには、それに対してクライアントを書き込みます。これに接続するために、リモートと中間層の間のVPN接続を強くお勧めします。これにより、通信リンクを保護することを心配する必要はありません...転送しているデータが低リスクデータでない限り(何の価値もありません)。
あなたはとても慣れてしまいたいと思うでしょう TclientDataset. 。マスターデータベースにアクセスせずにリモートシステムを操作でき、ワイヤー全体に出荷されるトラフィックの量を減らすことができます(ローカルでフィルタリングしてソートできます)。
アップデート パフォーマンスの多くは、バックエンドサーバーの速度と転送データの種類と量に基づいています。ほとんどの目的で十分な速さであり、パイプに多くのデータを送信しなければならないことに気付いた場合、クライアントのキャッシュを行う価値があることがわかりました。更新トリガーを追加して各レコードに更新されたタイムスタンプを設定することにより、キャッシュを更新して、レコードを最後に受け取ったレコードよりも新しいレコードのみをリクエストできます。
他のヒント
セキュリティのため、クライアントとデータベースの間に何らかの中間層が必要です。データベースを直接インターネットに公開することは非常に危険です。このシナリオでは、多くのアプリケーションがSOAPを使用しています。これは、広く採用されているためです。石鹸サービスを作成し、プロトコルと関数を定義し、クライアントがそれを呼び出します。その他のオプションは、同じことを行うまたは単純なTCP / IPレイヤーを作成するRESTベースのサービス /サーバーを作成することです。したがって、オプションは次のとおりです。
- 中央層としての石鹸サービス
- 休憩HTTPベースの中間層
- XML RPCベースの中間層
- 純粋なTCP /IP中間層
- クライアント向けのVPN接続
クライアントからVPN接続を作成すると、直接データベースアクセスを取得できますが、これはおそらく、クライアントスペシャリーが会社から来ていない場合は、おそらくAcwardです。私はおそらく2つまたは3で行くでしょうが、私は石鹸があまり好きではないからです。尋ねられた場合、ほとんどの場合、石鹸を好むでしょう。
編集:
これらはリモートオフィスであることがわかるので、永続的なVPN接続を検討できます。最近のほとんどのルーターはそれらが可能です。その後、アプリケーションはローカリーと同じようにリモートで動作することができます。
3つの可能なソリューションルートがあります。
- 通常のデスクトップアプリケーションを作成し、このアプリケーションをターミナルサービス(リモートデスクトップサービス)またはCitrix XenApp(またはWebベースにする)で公開します
- (re)アプリケーションを設計して作業する(可能性がある、および/または信頼できない)WAN接続)
- 何らかのデータベースレプリケーションを実装し、各オフィスに別々のデータベース(サーバー)を実装する
採用するものを選択する1つの基準は、接続速度、その信頼性、リモートオフィスと中央サーバー間のコストです。速度が適切である場合、信頼性は問題なく、コストはフラットです。アプリケーションの変更は必要ありません(データベース全体をダウンロードするために書かれていない場合...)データの認証と暗号化も処理します。 VPNが選択肢でない場合は、ランナーの回答でリモートテクニックの1つを使用できますが、通常、アプリケーションを再設計(および書き換える)が必要です。そのモデルは「クラシック」クライアント/サーバーアプリケーションとは少し異なります。 HTTPベースのものは通常、ファイアウォールに問題はありませんが、通常はステートレスであり、コールバック、セキュリティニーズの証明書の生成、展開をサポートする必要はありません。他のプロトコル(IE DCOM、DBExpress DataSNAP)を使用して作業する他の他の作業は、より柔軟性がありますが、セットアップや適切にセキュリティを行うにはより複雑な場合があります。接続が十分に高速で信頼性がなく、高すぎる場合、リモートサーバーと適切に同期するローカルキャッシュが必要になる場合があります。アプリケーションのニーズに応じて、達成するのは簡単ではない場合があります。