我在一家拥有大量 SAP 投资的公司工作,我们还有数十个大型 .Net 系统(主要用于内部工程系统)和 Java 平台(主要用于外部 Web 应用程序)。因此,我们在 ABAP、C# 和 Java EE 上有大型开发商店。
我们有 20 多个主要设施分布在很远的距离、2 个数据中心和 600 个左右的小型设施,分布在城市、农村和偏远地区(想想靠近北极)
对于在每个功能域中使用哪个平台,我们有很好的标准,但是对于何时使用本地处理以及何时使用分布式(中央)处理,我们并不清楚。(即,胖客户端与瘦客户端)
我想根据最佳实践构建一个决策树来帮助解决这个问题。我过去看到的一些标准包括:
- 将安装应用程序的任何地方都有可靠的网络吗?(如果不是,本地处理可能是更好的选择)
- 应用程序是否需要实时数据?(如果是,集中处理可能是更好的选择)
- 应用程序是否需要密集的 CPU 工作或高磁盘 IO?(如果是,集中处理或密集的本地处理可能是选项)
- 应用程序是否需要离线功能?(如果是,本地处理可能是更好的选择)
- 在远程环境中整合数据是否存在安全问题?(如果是,使用分布式瘦客户端进行集中处理可能是更好的选择)
- 站点上是否有可用于运行应用程序的现有硬件?(如果是,集中处理可能是一个不错的选择:瘦客户端的部署和维护成本更低,它们更安全,对窃贼而言价值更低)
- 是否存在同一个用户组正在使用的现有应用程序,这些应用程序是如何部署的?(通过将应用程序整合到一种设计模式中可能会产生规模经济)