分布式应用程序中的决策

时间:2020-03-05 18:45:21  来源:igfitidea点击:

对于具有许多客户端和一个主服务器的分布式应用程序,我们应该:

  • 使客户端变得愚蠢,服务器变得聪明:客户端快速且无创。仅在1个地方需要业务规则
  • 使客户端变得聪明,服务器变得愚蠢:从服务器上获得尽可能多的负载

添加信息:

  • 客户收集有关他们所使用的计算机的大量数据。服务器必须分析所有这些信息以确定这些计算机的运行状况
  • 客户端计算机的所有者是脾气暴躁的人,如果客户端开始消耗过多资源,它们将关闭客户端(因此否定了分布式应用程序在帮助诊断问题方面的作用)

解决方案

回答

我们应该执行尽可能多的客户端处理。这将使应用程序比在服务器端进行处理更好地扩展。为了解决脾气暴躁的用户问题,我们可以考虑使客户端进程以非常低的优先级运行,因此用户方面的性能不会显着下降。

回答

The server must analyze all of this
  info to determine the health of these
  computers

到目前为止,这可能是解释应用程序到底是什么的最大线索。我们是否能够提供有关此应用程序在此分布式环境中要实现的目标的更详细的简介?我们甚至不知道客户端处理是磁盘I / O还是处理器密集型。解决方案的设计方式取决于需要采取何种措施来帮助用户/企业完成其工作和目标。

回答

在客户端-服务器设置中,如果我们关心安全性,则应始终在假定客户端可能已受到威胁的情况下进行编程。即使没有,也总是存在有人使用旧版本的客户端,使用竞争版本或者修改版本的客户端,或者只是网络连接有点麻烦的风险。

因此,当我们在客户端上进行尽可能多的工作,将信息处理和整理成正确的形式时,服务器随后需要对客户端提供的所有内容进行彻底的完整性检查。

因此,我猜答案是"两者"。