1

我会问一个关于 Web 服务和客户端-服务器架构的半理论问题。

我有一个带有大约 50 个表的数据库的服务器。该服务器甚至包含一个表,其中包含有关与客户端关联的用户的信息。每个客户端都与 db 中所有数据的子集相关联。

定义的架构意味着每个客户端(在 Android 应用程序上运行)调用,以预定义的频率,一定数量的 Web 服务,填充本地数据库,创建驻留在服务器 sb 上的所有表的副本,包含与相关的唯一信息请求的客户。

另外,db server 端的数据是可以变化的,所以需要经常同步。

考虑到客户端应用程序可以想象为在线商店应用程序,因此应该可以浏览提供者、文章、下订单、删除订单等。

所以,当我谈到填充本地数据库时,我的意思是存储提供者、文章……也就是说,所有与请求客户端相关的信息。

用这些信息填充本地数据库有意义吗?

我认为仅在需要信息时才调用 Web 服务更合理,而不是将信息存储在本地数据库中。因此,不再需要同步。

告诉我你在想什么?谢谢你。

4

2 回答 2

3

我对 Android 开发一无所知,但在使用 Web 服务和 SOA 方面有大量经验。

以我的经验,尤其是当客户端设备的存储和处理能力有限时,所有的业务逻辑和数据逻辑都应该在 Web 服务中,客户端应用程序仅用于显示和调用这些服务。您如何实施这是我们无法为您回答的问题。每个项目都不一样。

唯一的例外是当您绝对必须让应用程序在未连接时运行。在这种情况下,请确保您了解您的具体要求,并且非常努力地只在客户端保留您绝对需要的数据并且只提供您在断开连接时绝对需要的业务逻辑。

(这也有助于保持安全性更简单 - 丢失或被盗的设备是数据泄露的最高来源之一,因此设备上潜在的敏感数据越少越好。)

我不知道这是否有帮助,但我认为我会把它扔在那里。

于 2012-09-12T20:24:15.953 回答
0

如果您的应用程序只能在线工作,那么是的。您无需担心将数据存储到数据库中并稍后检索。如果您的要求需要同时支持在线和离线,那么您必须使用数据库。

您可以运行服务或异步任务或处理程序以从 Android 应用程序调用 Web 服务,这样您的 UI 线程就不会被阻塞。

如果您的响应太大,那么可能您必须考虑中间层,这样您就可以将 SOAP 响应转换为 JSON,这样设备可以更容易地处理响应并且网络传输更快。

我相信根据您的要求,它足以支持仅在线模式......因为如果用户两天不使用该应用程序并重新登录并显示可能不相关的离线数据,数据可能会有所不同

于 2012-12-18T22:57:20.597 回答