最近,我的一位朋友要求我设计一款具有离线和在线工作功能的应用程序。我在网上阅读了一些有关它的内容,发现很少有选择。
- 将 Adobe Air 与中央 Web 应用程序结合使用,该应用程序将成为主数据库并与本地数据库(sqllite/derby)同步。
- 使用JavaFx2 与上面相同。
- 一个基于纯 Web 的模型(spring 3 mvc/jsf2),带有嵌入式 db apache derby/hsql/sqllite 和用于本地/离线支持的 servlet 容器 Jetty 以及用于在线活动的主 Web 应用程序。
如果做过此类应用程序的人们分享他们的经验、如何进行此类应用程序以及不同方法的优缺点,我将非常感激。
PS:我想进入java或adobe堆栈。
Recently one of my friend has asked me to design an application with feature to work both offline and online. I have been reading a bit about it online and found few options.
- Using Adobe Air with a central web app which will be master and synced with local db(sqllite/derby).
- Using JavaFx2 same as above.
- A pure web based model(spring 3 mvc/jsf2) with embedded db apache derby/hsql/sqllite and servlet container Jetty for local/offline support and a master web app for online activities.
I'll really appreciate if people out there those who have done this kind of application please share their experience, how to go about such an application and what can be pros and cons of different approaches.
PS: I want to be in java or adobe stack.
发布评论
评论(1)
我们已经对 Eclipe RCP 应用程序和 mySql 本地数据库做了类似的事情。
从技术上讲,这并不太复杂,只要注意大型同步启动时的性能即可。
难点在于管理数据同步的规则。最好的是 - 如果可以的话 - 让表仅以一种方式同步(例如,从主数据库到本地的参考数据)。
另一个好处是存储每行数据的来源,这可能有助于您的同步规则。
哈
We've done somethong similar with Eclipe RCP application and mySql local database.
Technically, that was not too complex, just be careful of the perf when a big synchro starts.
The difficult point is to manage the rules around the synchronisation of the data. Best is - if you can - to have tables only sync in one way (reference data from master to local, for example).
An other good thing is to store where your data comes from for each row, this may help your sync rules.
hth