什么是开发大型连接/断开应用程序的最佳方法?

6
我们需要编写一个应用程序,它有两个部分:一部分用户将在脱机环境下使用它(每隔几个小时连接到互联网),另一部分将完全连接并监视脱机客户端。要求必须在浏览器上运行。
我们精通PHP,因此我认为我们会采用这种方式,我的问题是..您如何在高层次上布局?
对所有内容使用Web服务?数据库复制,每个客户端都有自己的数据库?使用PHP框架?
谢谢。

断开连接的客户端是移动设备吗?例如iPhone、BlackBerry、iPad、Android等,还是笔记本电脑/台式机? - 这并不重要,但根据远程设备,有一些选项更好/更差。 - scunliffe
你是在本地运行网站/应用程序还是存储在远程?如果是在本地网络中运行,我建议设置一个本地数据库或创建缓存系统。这样当你连接到数据库时,它会合并/同步你在本地数据库或缓存系统中获取的数据(这只是一种想法)。 - Yoram de Langen
你的计划不太清楚,是要开发一个本地访问的Web应用程序,还是一个托管解决方案。 - Shameer
那么主要问题是使用关系型数据库还是其他什么?这个“其他”可能是NoSQL框架(也许是支持PHP的MongoDB)? - sakisk
断开连接的客户端是拖车,它们将在数小时内离线。每个拖车都将有一个服务器来提供应用程序服务,然后拖车另一侧的每个客户端都可以访问它。然后,当拖车到达码头时,它们可以连接到互联网并同步。 - smorhaim
2个回答

2

如果你不想在每台客户机上安装网络服务器(带有PHP),我强烈建议不要使用PHP来处理断开连接的客户端(忽略你可以为整个软件包创建一个漂亮的安装程序的事实)。

既然必须安装Web服务器才能使用断开连接的PHP“客户端”应用程序,这也违反了它必须在浏览器中运行的要求(如果这是唯一的要求)。

我会考虑其他东西(如Java),将其编译并使用离线存储,例如文件或甚至像sqllite这样的轻型数据库,然后定期同步即可。


0

如果您想要在浏览器中离线运行,那么您需要在本地机器上运行某种带有 PHP 的 Web 服务器。

运行多个离线数据存储实例需要与中央数据库同步听起来像是 CouchDB。

您使用哪个 PHP 框架...这取决于您的偏好。唯一的先决条件是为 CouchDB 编写一个 DB 抽象层(或者您自己编写)。


我们通常不使用任何框架... 我正在努力推动ZendFramework,因为我喜欢为我们所做的一切拥有基本结构的想法。 - smorhaim
针对您的使用情况,我建议不要使用关系型数据库(RDBMS)。 问题在于离线工作和与主RDBMS同步。 CouchDB是专门为此用例编写的。 我建议您去看一下。 - Min

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接