我应该将客户端配置数据移动到服务器吗?

时间:2009-09-25 15:09:51

标签: configuration client-server

我有一个客户端软件程序,用于通过中央服务器启动警报。首先,它将配置数据存储在注册表项中,现在位于配置XML文件中。此配置信息包括警报编号,警报组,热键组合等。

此客户端使用TCP套接字连接到服务器,该套接字用于将此配置传递给服务器。在下一代程序中,我正在考虑将所有配置信息移动到服务器,服务器将所有信息存储在SQL数据库中。

我设想使用某种形式的Web界面与服务器通信并设置客户端,而不是当前的方法,即通过控制面板在机器上配置客户端软件,或者安装到以太网推出一个xml文件,或将命令行参数传递给MSI。我现在想的是,我想要在安装时指定的唯一信息是服务器的路径。每个工作站都将通过计算机名称进行标识,并通过服务器进行配置。

这种方法有任何问题或潜在的缺点吗?主要目标是集中配置并使以后更容易进行更改,因为我们的软件通常最多由一个或两个人管理。

2 个答案:

答案 0 :(得分:0)

只有想到的是信息的安全性。在任何一种情况下,你可能都有这个问题。可能更容易与数据库进行交互,因为一切都在一个地方。

答案 1 :(得分:0)

除了允许客户端脱机运行(如果这种可能性对您的应用程序有意义),将配置移动到集中位置似乎没有任何缺点。实际上,即使有一个集中的位置,也可以在客户端添加一项功能来缓存最后的已知配置,以便在客户端离线时使用。

如果您实施[集中式]数据库设计,我建议考虑将配置参数存储在实体 - 属性 - 值(EAV)结构中,因为此模式特别适合参数。特别是它允许轻松添加和删除特定参数以及处理参数作为列表(在UI中为面向列表的显示铺平道路,因此当新类型的参数是新的时,UI中不需要进行任何更改引入)。

Configuartion参数集合和EAV模式一起工作的另一个原因是,即使有很多用户和配置点,配置数据仍然足够小,不会受到具有“大”表的EAV的一些限制。