【发布时间】:2015-05-02 09:31:37
【问题描述】:
我需要社区的一些建议来满足我的要求。以下是要求,我需要一些方法建议。
来自客户端的用户需要从我的源数据库(假设是我的生产服务器中的 SQL 数据库)中检索数据。用户通过中间服务层(WCF Rest 服务)访问数据。在另一台服务器(信息服务器)上,我有一个 SQL 数据库(信息数据库),它将保存所有可以请求的查询。由于在某些情况下我的数据非常庞大,因此我为用户提供了安排数据检索并稍后查看数据的选项。每个用户的日程安排信息也将存储在信息数据库中。我还允许用户在需要时实时检索数据。
在这两种情况下,我都想从源(生产数据库)查询数据,以文件格式(可能是 CSV 或 excel)存储它们,然后当用户需要数据时,我会将数据发送到客户端。
由于查询存储在 InfoDB 中。我让管理员为每个查询定义计划运行时间。这是为了使管理员能够在对服务器的调用较低时调整在夜间运行的长时间运行的查询。如果用户要求实时运行查询,我会允许这样做。
作为解决方案架构,我想到了这一点:
- 我将在 Info Server 上安装 WCF 休息服务。该服务将充当用户的呼叫点。当用户实时调用查询时,服务将获取结果,保存为文件格式并传输过来。如果用户安排了查询,服务将在信息数据库中为用户/查询添加一个条目。
- 我将在信息服务器上拥有一个 Windows 服务。此 Windows 服务将定期检查 Info DB 中的计划查询条目,如果查询在计划时间内,它将开始运行查询,获取数据并将其保存到文件位置,并将文件位置条目添加到计划条目.这将使我能够跟踪哪些计划已完成以及数据在哪里可用(文件路径)。
现在这是我的问题:
- 我的数据可能很大,WCF 休息服务是否足以通过网络传输大文件?我可以通过有线传输文件还是需要以 JSON 格式传输数据?什么是最好的方法。
- 如果我使用 Windows 服务,这是一个好方法还是有更好的选择?我问的原因是因为根据我的理解,Windows 服务必须始终运行,因为我需要找出计划的条目。这意味着 Windows 服务将在特定的时间间隔检查信息数据库并查看是否应该运行计划条目。在理想情况下,Windows 服务将在一天中运行并定期检查数据库而无需太多操作,因为最好所有计划都在夜间进行。
- 我使用了中介服务方法,因为如果我明天需要迁移到云,我可以轻松迁移此解决方案。我的假设是否正确?
- 如果我明天搬到云端,我是否可以对数据传输进行加密(可能是数据加密或文件加密)。我对数据加密/解密一无所知。
需要您对此提出建议。
【问题讨论】:
-
你已经足够长,你必须知道一个好的标题应该是什么样子。这不是这样的情况。它必须捕获内容。
-
Artjom B. :我认为这个标题是最好的,因为我只需要社区的建议。我已经想到了一种我已经描述过的方法,只是想检查是否有更好的方法可以做。
-
StackOverflow 在这里构建了一个有用的问题和答案库。大多数用户通过搜索引擎找到问题和答案。现在想一想这个问题将如何以这样一个模棱两可的标题出现。当然,它传达了一些关于您的意图的信息,但没有传达关于内容的信息。
-
Artjom B.:好的。知道了。我做同样的事情(按引擎搜索),但我想不出更好的标题。仅仅因为这个问题有很多部分。你有什么想法吗?请建议。我会改标题
标签: c# wcf encryption service architecture