我想知道如何将远程办公室连接到中央数据库。

这是场景:

办公室有几个在Windows桌面应用程序上工作的用户

此应用程序从Office Server中的数据库获取数据。

现在1个或更多远程(办公室,商店等)需要访问相同的数据。

我们如何实现这一目标?

有时我们需要实时

有时候并不重要。

有帮助吗?

解决方案

您可以轻松使用 DatasNap 或者 重点 要将您现有数据库作为中层服务器包裹并公开您现有的数据库,然后将客户端编写针对它。为了与此连接,我强烈建议您的遥控器与中间层之间建立VPN连接。这样,您就不必担心确保通信链接的太多...除非您要传输的数据是低风险数据(不值得的)。

您将要变得非常熟悉 tclientdataset. 。它使您能够在无需访问主数据库的情况下操作远程系统,并减少在电线上运输的流量量(您可以在本地过滤和分类)。

更新 大部分性能将基于您的后端服务器的速度以及传输的数据类型和数量。对于大多数目的而言,它已经足够快,如果您发现自己必须将大量数据发送到管道上,那么我发现值得做一些客户端缓存是值得的。通过添加更新触发器来在每个记录上设置更新的时间戳,您可以通过仅要求比最后收到的记录更新记录来更新缓存。

其他提示

由于安全性,您需要客户和数据库之间的某种中层层。直接将数据库暴露于Internet非常危险。在这种情况下,许多应用程序都使用肥皂,因为它被广泛采用。您进行肥皂服务,定义协议和功能,然后客户调用。其他选项是,您可以制作基于REST的服务 /服务器,该服务 /服务器甚至可以制作普通的TCP / IP层。因此,您的选择是:

  1. 肥皂服务作为中层
  2. 基于HTTP的中间层
  3. 基于XML RPC的中层
  4. 纯TCP /IP中间层
  5. 客户的VPN连接

如果您从客户端建立VPN连接,则可以具有直接的数据库访问权限,但是如果客户不来自您的公司,则可能会特别适合客户。我的个人可能会选择2或3,但仅仅是因为我不喜欢肥皂。我想大多数人都喜欢肥皂。

编辑:

由于我看到这些是远程办公室,因此您可以考虑永久的VPN连接。如今,大多数路由器都有能力。然后,您的应用程序可以以与本地的方式相同的方式工作。

有3种可能的解决方案:

  1. 编写普通桌面应用程序,并使用终端服务(远程桌面服务)或Citrix Xenapp(或使其成为Web Base)发布此应用程序
  2. (重新)设计您的应用程序工作(可能的慢速和/或不可靠)WAN连接)
  3. 实现某种数据库复制,并在每个办公室实现单独的数据库(服务器)

选择采用什么的一个标准是您的连接速度,其可靠性和远程办公室和中央服务器之间的成本。如果速度足够,可靠性就可以了,成本是平坦的VPN。它不需要更改您的应用程序(如果未写入以下载整个数据库...)也将处理数据的身份验证和加密。如果VPN不是选择,则可以在Runner答案中使用远程技术之一,但是它们通常需要重新设计(并重写)应用程序,该模型与“经典”客户端/服务器应用程序有所不同。基于HTTP的机构通常没有防火墙问题,但通常需要无状态,并且不支持回调,安全需求证书生成和部署。其他使用其他协议(即DCOM,DBExpress DataSnap)更加灵活的,但可以正确设置和/或正确安全。如果连接不够快,可靠,或者太贵了,则可能需要正确地与远程服务器同步的本地示威 - 根据应用程序的需求,这可能不容易实现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top