私はSAPに多額の投資をしている会社で働いています。また、数十の大規模な.Netシステム(主にエンジニアリングシステム用)とJavaプラットフォーム(主に外部Webアプリケーション用)もあります。そのため、ABAP、C#、およびJavaEEに大規模な開発ショップがあります。
20を超える主要な施設が非常に長距離に分散し、2つのデータセンターがあり、600ほどの小さな施設が都市部、農村部、および遠隔地にあります(北極に近いと考えてください)。
各機能ドメインで使用するプラットフォームについては適切な基準がありますが、ローカル処理をいつ使用するか、分散(中央)処理をいつ使用するかについてはあまり明確ではありません。(つまり、シッククライアントとシンクライアント)
この質問に役立つベストプラクティスに基づいて決定木を構築したいと思います。私が過去に見た基準のいくつかは次のとおりです。
- アプリケーションがインストールされるすべての場所で信頼できるネットワークを利用できますか?(いいえの場合、ローカル処理の方が適している場合があります)
- アプリケーションにはリアルタイムデータが必要ですか?(はいの場合、集中処理がより良いオプションかもしれません)
- アプリケーションは集中的なCPUの労力または高いディスクIOを必要としますか?(はいの場合、集中処理またはシックローカル処理がオプションになる場合があります)
- アプリケーションにはオフライン機能が必要ですか?(はいの場合、ローカル処理の方が適している場合があります)
- リモート環境でデータを統合することに関するセキュリティ上の懸念はありますか?(はいの場合、分散シンクライアントを使用した集中処理の方が適している場合があります)
- アプリケーションを実行するために活用できる既存のハードウェアがサイトにありますか?(はいの場合、集中処理が適切なオプションになる可能性があります。シンクライアントは、展開と保守にかかるコストが低く、安全性が高く、泥棒にとって価値が低くなります)
- 同じユーザーグループが使用している既存のアプリケーションはありますか?また、これらのアプリケーションはどのように展開されますか?(アプリケーションを1つのデザインパターンに統合することで、規模の経済が実現する可能性があります)