【发布时间】:2013-08-26 20:50:46
【问题描述】:
问题定义:
项目设置在客户端使用GWT,在服务器端使用Spring
有一个包含 100 个对象的对象树。该对象描述了一个复杂的配置文件,该文件链接到一个用户。该对象必须在服务器端持久化,并且可以由客户端请求。客户端和服务器都可以访问 Object 中的所有方法和字段。一旦被客户端请求,这个对象树就会被缓存。对象可以被客户端和服务器修改。如果文件被服务器修改,客户端下载新版本。 向配置对象添加额外功能应该很容易,即增加版本号并将对象添加到树中。配置文件是一个项目文件,它保存用户为使项目保持原样所做的所有更改。用户会定期(每 3 秒)更改配置文件。例如,将其与 Gimp 项目/PowerPoint 文件进行比较。
当前架构:
服务器以XML 格式存储配置文件。当请求配置时,它会转换为使用RequestFactory (GWT) 从服务器发送到客户端的Java 对象。客户端可以修改该对象并将更改发送到服务器。客户端完成后,服务器通过替换旧的XML 文件来保存新对象。客户端还使用HML5Storage (GWT) 缓存此Java 对象。 5MB 的限制不是问题。当在服务器上创建对象的新版本时,例如一种新的对象类型被添加到树中,客户端下载新的对象树并丢弃旧的。
问题:
- 这是解决问题的好方法吗?
也许我应该在初始化时将XML 文件直接从服务器发送到客户端。客户端修改此文件并在完成后将其发送回服务器。客户端可以将XML 文件原样存储在HML5Storage 中。也许有人可以指出一些奇怪的选择。
- 有没有更好的格式来存储这个数据服务器端而不是
XML?
我选择XML 是因为它有很好的库,可以将Java 对象映射到XML 文件,并且可以轻松添加附加功能。此外,此数据链接到一个用户,并且不会以其他方式使用该数据。因此,将其存储在关系数据库中并将所有这些对象组合成一棵树(这将需要很长时间来组装)是一个坏主意。
RequestFactory也适合初次下载 对象树?
我读过RequestFactory 可能需要很长时间才能下载大量对象的案例。 (与 RPC 相比,时间是 x 10)。
如果您做到了这一点并且有什么不清楚的地方,我很乐意在需要的地方添加额外的细节。
【问题讨论】:
标签: java xml spring gwt requestfactory