转贴请注明出处
一、Gears是什么
Gears是由Google公司开发维护的一个开源项目,该项目的目的是通过增强浏览器特性,使得支持强大的Web应用。
Gears的主要特点如下:
1. 使得Web应用程序可以非常自然的与桌面交互(Desktop)
2. 支持资源本地化(LocalServer)
3. 将访问的数据本地存储在关系数据库中(Database)
4. 高效的后端执行Javascript脚本(WorkerPool)
二、Gears框架
下图是从Google Gears Documentation中抓出来的,这篇有关Gears体系结构的文章,分析了在设计Gears时所考虑的一些有关数据传送和同步方面的问题,有些意思(http://code.google.com/apis/gears/architecture.html)。
如上图所示,网络链接的情况下,Web应用程序按照下列方向通信
Application UI->Data Switch->Server Data Layer->Internet
如果此时网络出现问题,则Data Switch模块会将数据暂存在本地数据库中,等网络可用时,再将这些缓存数据提交到服务器。过程如下:
Application-UI->Data Switch->Local Data Layer->Database->Sync Engine
从Gears的整体代码结构看,可以看出主要由下面几个方面组成:
1. 本地服务器,读取和存储离线程序资源
2. 小型数据库(SQLite),用于存储本地数据
3. 工作池,将本地数据与服务器后台同步
4. 桌面模型,让网络应用程序的操作与桌面程序紧密接合
5. 地理定位,让网络程序侦测到当前用户的位置信息
三、Gears的安全模型
Gears使用Same Origin Policy安全策略,即只有拥有相同SCHEME,HOST, PORT的URI才能互相访问资源。对于不同源之间的资源互访,目前还处于研究和开发中。
下面是Same Origin Policy的样列:
Compared URL Outcome Reason
http://www.example.com/dir/page.html Success Same protocol and host
http://www.example