【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

Google Gears:第二天的业界反应

  • 2007-06-08
  • 本文字数:2692 字

    阅读完需:约 9 分钟

作为 5 月 31 日的 Google 开发者日活动的一部分,Google 宣布了新的离线 Web 应用程序 API:Google Gears。在 FAQ 中,Gears 定义如下:

Google Gears 是开源的浏览器扩展,它可让开发者创建能离线运行的 Web 应用程序。Gears 提供以下 3 个关键特性: - “本地服务器”,缓存资源(HTML、JavaScript、图片等等),使应用程序无需连接服务器即可访问这些资源

  • 数据库”,在浏览器内部保存和访问数据。
  • 工作者线程池”,通过在后台执行费时的操作使应用程序响应更加迅速。

Gears 在新的 BSD 许可证下授权,使得Gears 运行时API 可以以最小的约束嵌入到第三方的软件中。目前的安装形式是浏览器扩展(大约700k 大小),支持Windows 下的IE 和Firefox,Linux 和OS X 下的Firefox。对于Opera 和Safari 的支持正在开发中。

让我们进一步的了解所提供的3 个组件:

本地服务器(LocalServer)

本地服务器是一个专用URL 缓存,它拦截请求并在需要时由本地对其进行响应。有2 种类型的URL“资源库”。其中,最基本的是资源库(ResourceStore),它允许应用程序保存那些与URL 关联的特定用户文件,如PDF 或图片。这些被缓存的URL 必须由应用程序显式更新。第二种资源库被称为受管资源库(Managed ResourceStore)。它包含一组由清单(manifest)定义的URL。当清单的版本号发生变化时,该集合必须被自动更新。Gears 会周期性的检查受管资源库是否被更新了。

数据库

除了URL 缓存,Gears 还包含一个 SQLite 数据库实例。数据库中的数据按照域名(Domain)分区,除了最初保存这些信息的域名外,从其它的域名无法访问这些数据。使用 Javascript 访问数据库的语法与 JDBC 非常类似:

resultSet = db.execute (<br></br> 'INSERT INTO MYTABLE VALUES (?, ?, ?) WHERE id=?',<br></br> [1, 2, 'three four', 5]);<br></br>while (rs.isValidRow()) {<br></br> console.log(rs.fieldName(0) + " == " + rs.field(0));<br></br> rs.next();<br></br>}<br></br>rs.close();

工作者池(WorkerPool)

Google Gears 提供的最后一个元素是工作者池 API。文档解释了包含它的原因:

在浏览器中,一个时间密集型操作,如 I/O 或重量级计算,会使用户界面无响应。工作者池模块在后台运行操作,因此不会阻塞用户界面。脚本在工作者池中运行,不会触发浏览器的“无响应脚本”对话框。

工作者池的行为象一组进程,而非单独的线程。除了 Javascript 函数,工作者无权访问 DOM。当工作者接受到响应时,onmessage回调被用于执行活动。

就 Google 自身 Web 应用程序中的最初使用来说,Gears 已经被集成进Google Reader

GWT 团队也已经装配了 Google API Library for Google Web Toolkit 。Gears API 集成利用了 GWT 的 JavaScript 本地接口(JavaScript Native Interface,JSNI)

ZDNet 的 David Berlind 对 Google 的 Linus Upson 进行了采访,访谈中显示,Google 期望 Gears 能成为离线 Web 应用程序开发的标准:

Google 的 Upson 对于公司开源这一技术的动机并不加掩饰。按照他的说法,公司打算使它成为目前市场中的一个标准,而不是满足标准机构的需要。由于几乎没有 Web 应用程序提供商具备这种离线能力,加上 Google 为此准备了一笔战争基金,这一技术很有可能会成为离线运行的 Web 应用程序的事实业界标准。

作为这些努力中的第一步,Adobe 宣布支持 Google Gears。Berlind 的文章提供了更多细节,它们来自 Adobe 的 Michele Turner:

Google 抓住我们,并说他们将发布一种使基于浏览器的应用程序具备离线能力的技术,同时他们认为该技术与我们的 Apollo [运行时] 有某些牵连。因此,我们和他们一起坐下来进行了交流,如果你大致看看 Google Gears 的 3 个主要组件就会发现,我们正在开发相同的技术以促进 Apollo 运行时离线组件的开发。…因此,现在我们正与 Google 共同努力解决一些问题,例如为了具备离线能力,必须对 SQLite 数据库进行同步和异步调用。

作为集成的示范,Adobe 的Christophe Coenraets 构建了一个与Gears 集成的Flex 应用程序,它由Kevin Lynch 在Google 开发者日演示。在构建demo 时,Coenraets 还开发了SQLAdmin 来帮助他操纵Gears 数据库。

Google Gears 的声明同样也引起了关于 Dojo 离线工具集未来的推测。 Ajaxian 就此采访了项目的首席开发者 Brad Neuberg。他指出,在发表声明时 Dojo 正处于正常运转中,并且他已经使用 Google Gears 作为基础平台,并完成了 Dojo 离线功能的移植。要了解更多的细节可以去听他的访谈

RedMonk 也详细报道了 Gears。Stephen O’Grady 就 Gears 对一些已存在的可选方案的影响进行了推测:

从一个应用程序提供商的观点来看,我倾向于 Berlind 意见,他说: > 对于已经提供离线架构的公司,如 Zimbra 有它的 Zimbra 桌面(它的离线能力借助了 Java),他们的问题核心在于:如果 Google Gears 获得了市场吸引力,那些公司可能被迫完全重新考虑那个架构。如果你是 Zimbra,并且你的资源是有限的,那么起码问一个关于是否继续投资一个多余的离线架构是否合理这一问题就很有意义了。它可能值得,这是从技术的原因来说,但它可能不值得。

如果你是 Joyent,问题就更复杂些。他们瞄准的是远比 Google Gears 特殊的小环境,用于 Rails 应用程序,因此问题将归结为 Slingshot 是否能为 Rails 的开发者提供足够多的专有特性,让他们决定使用它。将他们论点的折衷时发现:到目前为止,Slingshot 还没有象 Gears 一样在很多平台上可用。然而,他们看起来满足于扮演 David。 有趣的是,Adobe 似乎铁了心要和 Google 合伙,甘心将他们 SQLite 的成果与 Google 的成果合作。这对 Google 的最终目标来说是个好兆头。

随着离线 Web 应用程序增长的势头,以 Gears 和 Apollo 等的形式,Web 应用程序开发者不得不开始考虑"离线"对于他们的个体应用究竟意味着什么。 Basement.org 评论这个任务是“忘却学习(unlearning)”:

桌面范式:文件保存在我可以“获得的”文件夹中,工作然后保存,它非常强大…但是同样存在成本,它在于并不真的知道这个资产存放在哪儿。如何将它传给别人?如何删除?如何移动?当然,那些熟悉 2.0 主义的我们,将这些问题注销是没有理解这种“新的做事方式”的表现。人们理解文件的表示还没有那么快。对于每个人而言,文件 - 不论是电子表格还是文档、图片都有我爱说的“认知完整性。”… 看看设计者们将如何解决目前的挑战,即帮助用户掌握和利用当前发生的变迁,是非常有趣的一件事。在我们踏上征途之前,我们应该确信那儿的确存在价值,而且其价值大于不可避免将发生的忘却学习过程。

查看英文原文: Google Gears: Industry Reactions The Day After

2007-06-08 02:301141
用户头像

发布了 255 篇内容, 共 54.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

英特尔赵宏:从硬件创新到平台突破,PC的未来非常值得期待

E科讯

九环智能合约开发

V19927655815

APP开发

抢先体验全新升级版Eternal Wallet!

Geek_c610c0

数字货币 数字货币钱包开发

未签订劳动合同的CTO | 法庭上的 CTO(17)

赵新龙

CTO 法庭上的CTO

犯“走私罪”的CTO | 法庭上的CTO(19)

赵新龙

CTO 法庭上的CTO

“盗窃”公司源代码被开除的CTO | 法庭上的CTO(20)

赵新龙

CTO 法庭上的CTO

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之基于测试流量的混沌工程(故障演练)

数列科技杨德华

全链路压测 七日更

人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

刘悦的技术博客

人工智能 tensorflow chatbot 聊天机器人 keras

星域母子币系统软件开发|星域母子币APP开发

系统开发

“有点技术之外,基本什么都没有”的CTO | 法庭上的CTO(15)

赵新龙

CTO 法庭上的CTO

股东变员工,所以不发工资?| 法庭上的CTO(18)

赵新龙

CTO 法庭上的CTO

像用户一样测试:打破知识的诅咒

QualityFocus

测试 软件质量 可用性 用户体验

重学JS | 数组遍历的7种方法及兼容性处理(polyfill)

梁龙先森

大前端 编程语言

快速接入 | 从 0 到 1 构建语音聊天室

拍乐云Pano

音视频 RTC 实时语音 语音聊天室 语聊房

智慧仓储管理系统,是否能解决购物狂欢节后新一轮爆仓危机?

一只数据鲸鱼

物联网 数据可视化 智慧物流 智慧仓储

云视频技术领军人赵加雨:如何提升在线教育课堂互动体验

拍乐云Pano

音视频 在线教育 RTC 互动课堂 白板

从一个模糊词查询需求的处理方案讨论到一种极速匹配方案的实现

行如风

模糊匹配 双数组trie树 ahocorasick ac自动机 黑名单过滤

移动生态盘点与HMS生态解析

华章IT

华为 Android Studio 移动开发 HMS

如何基于 SDK 快速开发一款IoT App 控制智能灯(iOS 版)

IoT云工坊

ios App 物联网 IoT sdk

计算机网络简述

lee

计算机网络 网络协议 网络

anonymous匿名者场外交易系统APP软件开发

系统开发

深入浅出 ZooKeeper

vivo互联网技术

zookeeper 分布式 ZAB

为什么说rollup比webpack更适合打包库

fengxianqi

大前端 Rollup webpack

混合用工、被拖欠工资的 CTO | 法庭上的 CTO(16)

赵新龙

CTO 法庭上的CTO

什么是浮点数?

Kaito

计算机基础 浮点数

重磅|中国PostgreSQL分会与腾讯云战略合作协议签订

PostgreSQLChina

数据库 postgresql 软件 开源社区

英特尔力邀150家产业大咖推动Evo严苛认证,打造PC界的奥斯卡

E科讯

直播中不可缺少的一环-rtmp直播推流

anyRTC开发者

音视频 WebRTC CDN RTC RTMP

Spring 源码学习 11:invokeBeanFactoryPostProcessors

程序员小航

Java spring 源码 源码阅读

为什么要TDD(测试驱动开发)

sherlockq

敏捷开发 TDD 极限编程

从MongoID的生成讨论分布式唯一ID生成方案

行如风

雪花算法 分布式ID 全局唯一ID 流星算法

Google Gears:第二天的业界反应_Java_Scott Delap_InfoQ精选文章