收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网 QQ书签 更多 Bookmark and Share

2009年4月18日星期六

Gear 体系结构

开发Gears程序,要按照离线程序体系结构开发做一些改变,

独立的数据层(Isloating the Data Layer)
普通的应用没有真正的数据层:



第一步,要独立数据层:

例如:如果Ajax也能够用通过JSON请求获取信息,要改成通过一个中间对象来获取数据。
这个对象决定是从服务器上、本地、或者同时从这2者中获取数据。

也可以考虑这个中间对象作为 data switch, 实现 Data Layer的接口
第一步通过这个data switch向Data Layer获取数据

第二步:如果增加了本地数据层,有Data switch进行切换:



Modality(特征?形式?)
最基本的离线使用的问题就是要确定Modality
  • Modal Application:相对于Online Modes,是很明确地离线使用,通过用户界面可以表现出来。用户很清楚地知道现在的使用模式,手工进行切换
  • Modeless Application:在online Mode和Offline Mode使用对用户是透明的,界面没有什么变化。用户不需要切换状态,是程序自动完成的。
Modal:
  当在线使用,和后台服务器进行通讯;当离线使用,和本地服务器进行通讯。数据必须在切换模式的时候进行同步。

Modeless:
 Modeless假设在离线状态下使用,或者随时都有可能离线。应用程序尽可能的使用本地数据(local store),并且不断地、小数据量通过后台服务和服务器进行数据同步。

数据同步(Data Synchronization)

有数种方式可以用在数据同步中,但是没有一种是适合任何情况的。最终选择的方案根据系统的不同而不同。

Manual Sync:
最简单的方式,有客户决定。可以通过将本地的所有数据进行上传覆盖服务器的数据,或者下载服务器上的数据覆盖本地的数据。

要求: 数据量不能大。

Background Sync:
   由应用程序在服务器和本地之间进行不断地同步。这个通过每隔一段和服务器进行通讯,让服务器push/stream数据到客户端(在Ajax术语中,叫做Comet)



没有评论:

发表评论