design-patterns - 本地与集中处理

标签 design-patterns architecture distributed local thick-client

我在一家拥有大量 SAP 投资的公司工作,我们还有数十个大型 .Net 系统(主要用于内部工程系统)和 Java 平台(主要用于外部 Web 应用程序)。因此,我们在 ABAP、C# 和 Java EE 上有大型开发商店。

我们有 20 多个主要设施分布在很远的距离、2 个数据中心和 600 个左右的小型设施,分布在城市、农村和偏远地区(想想靠近北极)

对于在每个功能域中使用哪个平台,我们有很好的标准,但是对于何时使用本地处理以及何时使用分布式(中央)处理,我们并不清楚。 (即,胖客户端与瘦客户端)

我想根据最佳实践构建一个决策树来帮助解决这个问题。
我过去看到的一些标准包括:

  • 将安装应用程序的任何地方都有可靠的网络吗?
    (如果不是,本地处理可能是更好的选择)
  • 应用程序是否需要实时数据?
    (如果是,集中处理可能是更好的选择)
  • 应用程序是否需要密集的 CPU 工作或高磁盘 IO?
    (如果是,可以选择集中处理或密集本地处理)
  • 应用程序是否需要离线
    能力? (如果是,本地
    处理可能是更好的选择)
  • 是否存在安全问题
    将数据合并到
    远程环境? (如是,
    集中处理
    分布式瘦客户端可能是一个
    更好的选择)
  • 是否有现有硬件
    可以用来运行的网站
    应用程序? (如果是,集中式
    处理可能是一个不错的选择:A
    瘦客户端的部署成本更低
    并保持,它们更安全,
    对小偷来说值(value)较低)
  • 是否有现有的应用程序
    同一个用户组正在使用,
    这些应用程序如何
    部署? (可能有经济
    通过整合应用程序进行扩展
    一种设计模式)
  • 最佳答案

    这里可以考虑各种事情,例如您要使用哪种文件系统? (AFS/NFS)

    根据以前的经验,我们已经成功地分发了需要密集 CPU 而非远程服务器的 citrix 集群的交易系统。这些用户都没有任何提示。

    实时数据我们通常会使用 BUS 方法,由客户端或中间件提供结果。

    关于design-patterns - 本地与集中处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/651015/

    相关文章:

    architecture - 领域服务与应用服务

    caching - 如何在 Ofbiz 中实现 "Distributed cache clearing"?

    c# - 使用不同随机数生成器的分布式计算

    javascript - 桥+命令模式

    language-agnostic - 一般来说,Web 框架如何支持 REST 风格?

    java数据库框架比较

    java - JMeter负载测试: ClassNotFoundException: com. blazemeter.jmeter.threads.concurrency.ConcurrencyThreadGroup

    model-view-controller - MVC 模型 1 和模型 2 有什么区别?

    c++ - 初始化单例的const成员变量

    java - 在树节点数据中构造和实现聚合(或类似)方法的最佳模式