2015-08-14 35 views
-1

我有一个Delphi应用程序使用SQL数据库在本地局域网上运行。德尔福 - SQL广域网

我现在想通过广域网(原则上)推出Delphi应用程序,因为我想设置总部/分支机构,所以我们有许多分支机构运行Delphi应用程序,但SQL数据库存储在总公司总部。

这怎么能最好地实现?

+0

在我的公司,我们通过Citrix将卫星办公室和家庭用户连接到总部(这几乎就像远程桌面)。对于160多个用户在总部访问MS Sql Server,它的工作就像一个魅力。 Fwiw ... – MartynA

+2

我会关心将数据库暴露给互联网的安全问题。理想情况下,应用程序将从客户端服务器迁移到n层系统,但是要感谢这可能比您的雇主愿意签署更多的工作。像思杰这样的东西可能效果最好(这是我们如何运行我们的Delphi客户端托管的解决方案)。 Bog标准远程桌面在总部需要大量的硬件基础设施,具体取决于并发用户的数量。 –

+0

是的,我同意你关于数据库安全。这就是为什么我在考虑某种类型的MPLS,在专用站点(即安全WAN)之间建立专用链路。以n层运行应用程序是一个好主意,虽然这需要相当长一段时间来重新编码,所以我的上司不会太高兴。 –

回答

1

今天,n层/ SOA架构似乎满足您的需求。

切勿将数据库暴露给Internet,也不要通过Wire发送SQL请求,而是从客户端使用设计服务。

您仍然可以使用RAD来设计您的用户界面,但最好将您的业务逻辑和数据库远离应用程序。

您可以尝试使用的DataSnap(这可能是你的Delphi的版本),或尝试一些SOA框架,例如我们的开放源码mORMot framework。详尽的文档has some chapters introducing those new concepts, like nTier/SOA/ORM/MVC。它在REST上使用HTTP和JSON,所以如果需要的话,甚至可以使用AJAX客户端。

enter image description here

mORMot框架有一个非常独特的master/slave replication feature,作为其ORM能力的一部分。如果您需要,它可以轻松实现Main Office/Local Office data synchronization。该同步可以在实时中定义,使用WebSocket。因为每个本地办公室都有自己的(SQLite3自托管的)数据库,所以主服务器的请求会少一些,而且如果主办公室服务器崩溃,本地办公室甚至可以继续工作,或者在互联网连接丢失的情况下。