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