3

我希望为跨多个 Web 服务器、服务器应用程序甚至可能是内部桌面工具的设置设置一个中央控制点。

目前的情况是,我在每个网络服务器或每个应用程序中都有一个设置文件,其中定义了全局变量:管理员电子邮件、上传文件的存储位置等。一些设置(例如用于发送错误报告的全局管理员电子邮件)是几乎全公司。其他设置可能是特定于客户端或站点的。

我还希望这个中央数据库能够密切关注访问每个设置的人员/内容。例如,假设我有一个“ProcessedImageUploadFolder”设置,其值为“\\ImageServer\cache\”,由 5 个不同的网站使用,但我想更改此设置,但查看我的中央系统,我看到还有我没想到的第 6 台服务器也一直在请求此设置(调用应用程序需要识别自己以获取设置,以便数据库可以记录它),以防万一更改第 6 台服务器的此设置会有一个副作用。

在使用服务推出和记录设置的服务推出我自己的数据库之前,我想知道是否有任何库/应用程序已经处理了这样的事情。如果已经完成了这样的事情,有没有人有任何想法?这种类型的系统叫什么?

最好的解决方案是 C#/SQL,但如果唯一的选择是 php 或 Java,我可能会使用它作为基础并移植它。

还是我对这一切都错了?

编辑: 这不是多租户。一些将使用此服务的应用程序已经在多租户设置中。其他是一次性应用程序......其他是在本地网络或 VPN 上使用的桌面应用程序。

如果有人可以更好地标记这个问题,请成为我的客人。

4

2 回答 2

1

带有服务的中央数据库似乎是要走的路。确保您的应用程序缓存配置,这样它们就不会在每次请求时都访问数据库,并且如果中央数据库暂时不可用,它们也能够继续运行。

如果 Java 是一个选项,您可以查看Commons Configuration。您还可以查看Oracle 应用程序中的配置文件选项(第 2-21 页)以了解一些想法。配置文件选项有一个有趣的配置层次结构,其中可以在站点、应用程序、责任和用户级别设置首选项,最高级别的首选项优先。

于 2009-06-07T06:54:32.163 回答
0

我认为描述您的问题的最佳术语 Neil 将被称为“多租户”。Devlicious 在此处发布了一篇关于多租户的有趣文章:http: //devlicio.us/blogs/anne_epstein/archive/2009/04/24/the-case-for-multiple-dbs-in-multi-tenancy-situations.aspx

如果我正在编写共享配置服务,我会尝试使用类似于服务定位器模式http://martinfowler.com/articles/injection.html#UsingAServiceLocator的模式来实现,并开发一个易于扩展且易于互操作的 Web 服务和。无论是 1 个数据库、2 个数据库还是多个 xml 配置文件,该服务都会抽象您的设计。

还有其他人有什么建议吗?

于 2009-06-06T13:13:36.653 回答