基本的に、私のチームには新しいデスクトップ アプリケーションがあり、製造現場の Windows 7 デスクトップで実行できるように取り組んでいます。このプログラムは、導入されるとかなり頻繁に使用され、製造データベースとやり取りする必要があります。私は、(最終的には) 約 100 ~ 200 台のマシンがこのアプリケーションを同時に実行すると見積もっています。
幸運なことに、すべてをゼロから行うことができるので、データベース、Web サービス、プログラム設計、および前述の相互関係を定義します。
現状では、レガシー アプリケーションはデータベースに直接アクセスできますが、これは厄介なことです。新しいアプリケーションではそれを行いたくありません。
だから私の質問は、どうすればこれを行うことができますか? 漠然としていますが、基本的にはここで自由に使えるものがたくさんあり、進むべき正しい方向が完全にはわかりません.
私が最初に考えたのは、他の人が行っていることに基づいて、基本的に Web サービスを使用してデータベースを壁から切り離すことです。つまり、フロアからのすべてのデータベース インタラクションは Web サービスを介して発生する必要があり、密室でデータベース ロジックの多くを実行することでセキュリティ レイヤーを提供します。Web サービスの呼び出しは、Active Directory を介して個々のユーザーに保護されます。
しかし、私が見つけたように、それにはいくつかの意味があります...データがアプリケーションに到達する前に、データを抽象化する必要があります。Web サービス呼び出しを繰り返し使用してデータを破壊またはスパムすることにより、悪意のある悪用が行われる可能性は依然としてあります。私たちは Entity Framework を見て、それが提供するものを本当に気に入っていますが、私が知る限り、このインスタンスのアプリケーション レベルになるまでには、それは利用できなくなるでしょう。
何が「正しい」のか、結論が出ないようです。それで、何が正しいのですか?