.net 如何将内部数据发布到internet-尽可能简单

.net 如何将内部数据发布到internet-尽可能简单,.net,database,synchronization,firewall,.net,Database,Synchronization,Firewall,我们有一个.net两层应用程序,其中一个桌面程序正在与数据库通信。我们支持MS SQL Server 2000、2005、2008和Oracle 9、10和11 该应用程序不是以收缩包装的形式销售的,而是非常接近的。对我们来说,安装和配置尽可能简单是非常重要的,因为安装说明通常以书面形式提供给客户内部It部门。我们的应用程序通常不会被视为IT部门的关键任务,因此我们需要将他们的工作降到最低限度 现在,我们开始希望在相同数据的基础上构建web应用程序。web应用程序将由我们托管,并作为SaaS应用

我们有一个.net两层应用程序,其中一个桌面程序正在与数据库通信。我们支持MS SQL Server 2000、2005、2008和Oracle 9、10和11

该应用程序不是以收缩包装的形式销售的,而是非常接近的。对我们来说,安装和配置尽可能简单是非常重要的,因为安装说明通常以书面形式提供给客户内部It部门。我们的应用程序通常不会被视为IT部门的关键任务,因此我们需要将他们的工作降到最低限度

现在,我们开始希望在相同数据的基础上构建web应用程序。web应用程序将由我们托管,并作为SaaS应用程序交付

现在的挑战是如何在web应用程序和客户内部数据库之间来回移动数据。在我看来,我们有一些要求:

  • 我们必须准备好处理无法从DMZ访问客户数据库的情况。我想最简单的解决方案是,所有通信都是从客户局域网内部发起的
  • 尽可能少的防火墙配置。最好的情况是,只要来自客户lan的传出流量没有被阻塞,我们就可以在没有任何特殊配置的情况下运行。如果我们需要在防火墙中更改某些内容,我们必须能够记录更改是安全的
  • 它不一定是实时的。每隔十分钟左右批量移动数据是可以的
  • 数据以两种方式移动,但不是相同的表,因此我们不必支持合并
  • 如果我们不必完全滚动我们自己的框架,那就太好了

期待您的建议。

是否可以使用Web服务进行此操作?您的应用程序可以从客户网络内部或通过internet调用此Web服务。 如果需要,webservices可以执行一些CRUD语句。我知道SQL2005和2008有自己的Web服务,您可以使用它们

如果您想保护您的数据,还可以向Web服务添加SSL证书


这些Web服务可以作为应用程序中的额外层使用。

使用VPN。它将允许以适当保护的方式访问DMZ以外的资源。

如果您提供SaaS,那么重点通常是您托管数据,而不是客户。您是否真的需要两个位置的副本?如果我们可以重写历史,我们可能会考虑两个应用程序的SaaS,但它需要大量重写现有的应用程序,以使其能够运行为SaaS。此外,我不确定客户是否希望“放弃对其数据的控制”。