我有一个使用在本地LAN上运行的SQL DB的Delphi应用程序。
我现在想要通过WAN推出Delphi应用程序(原则上),因为我想设置总部/分支机构,所以我们有许多分支机构运行Delphi应用程序,但是SQL DB存储在主要总部。
如何才能最好地实现这一目标?
答案 0 :(得分:1)
今天,n-Tier / SOA架构似乎满足了您的需求。
永远不要将数据库公开到Internet,不要通过Wire发送SQL请求,而是设计服务,这些服务将从客户端使用。
您仍然可以使用RAD来设计用户界面,但最好将业务逻辑和数据库放在远离应用程序的位置。
您可以尝试使用 DataSnap (可能在您的Delphi版本中),或者尝试一些SOA框架,例如:我们的开源mORMot framework。详尽的文件has some chapters introducing those new concepts, like nTier/SOA/ORM/MVC。它使用HTTP和JSON而不是REST,因此如果需要,您甚至可以使用AJAX客户端。
mORMot 框架具有非常独特的master/slave replication feature,作为其ORM功能的一部分。它旨在根据您的需要轻松实现Main Office / Local Office data synchronization。可以使用 WebSockets 在实时中定义此同步。
作为副作用的好处,由于每个本地办事处都有自己的(SQLite3自托管)数据库,因此主服务器的请求较少,如果主办公室服务器崩溃,本地办公室甚至可以继续工作,或者互联网连接丢失的情况。