写点什么

Google 开发者日 2007 德国大会报道

  • 2007-06-05
  • 本文字数:2906 字

    阅读完需:约 10 分钟

Google 开发者日 2007 在全球 10 个城市陆续举行,从澳大利亚的悉尼开始到美国加州山景城结束。以下是对其中 2007 年 5 月 31 日德国汉堡的活动中一些议程的报道。

在Karl Krainer——Google 的北欧市场负责人——的开幕致词中,介绍了本次活动的各位演讲者和时间安排。随后他欢迎了Stephan Uhrenbacher—— Qype 的创始人。Stephan 介绍了他对 Google Maps API 的体会和这个 API 对 Qype 的影响。Qype 是一个给服务商、商店、餐馆以及所有其他在德国的公共场所和供应商评分的平台。Google Maps 是这个平台的一项关键技术,它被用来提供所有地点的地理信息以及用户查找的地点一定范围内的其他(相关)地点的信息。评级信息来自 Qype 用户提交的数据,这让 Qype 也成为一个社交平台。在被问到他希望 Google Maps 或者其他 Google API 增加哪些功能时,他回答说他对一项本地化功能非常关心,比如限制 Google Ads 只显示一些切合某个地点的广告条目。

Douwe Osinga 是来自 Google 瑞士的一位工程师,他谈论了 Google Gadgets API 。Google Gadgets 是一些用 XML 文档形式实现的微型程序( applet)。Google 为 Gadgets 提供免费主机和一个 Gadgets 目录。Gadget 的 XML 文档可以包含 JavaScript 代码,这让程序能够实现非常多的操作,Google Data APIs 是其中之一。由 XML 和 JavaScript 构成的 Gadget 可以在几乎任何地方运行,也可以简单地通过博客和网站发布,让它得以迅速、大量地传播。 Gadget 的内部构造非常简单:文档的根节点“module”包含一个“moduleprefs”元素,若干“userpref”元素和一个“content”元素。Gadget 提供一些有趣的功能,比如:

  • 获取远程内容——获取并处理远程文本(通常是 HTML)、XML 和 RSS/Atom Feed 数据;
  • 国际化——Gadget 中的任何文本都可以放入消息资源包(Message Bundles)之中。Google 在运行时根据用户浏览器的语言设置获取相应的资源包;
  • 缓存外部资源——Google 为 Gadget 使用的任何外部资源提供缓存。

Frank Mantek 是 Google 德国的员工,他探讨了 Google Data APIs Protocol (GData)。他首先解释了为什么 Google 选择提供一个基于 REST 的 API。过去 Google 的 API 建立于 SOAP 之上,导致开发者不得不应付产品之间不相一致的“一堆 API 和规格书”。现在 Google 为他们的服务提供了统一的 API,API 由一组四种操作、若干 URI 和 Atom/RSS feed 组成。根据 Frank Mantek 的说法这套工具已经被证明可行,它简化了开发,并且对大多数(> 80%)用途是足够的。仍然有一些需求需要更复杂的 API 才能满足,比如事务、消息级的安全以及通知——回复的消息交换模式,但这些只是少数。目前 GData 可以用来访问以下 Google 服务的数据:

Frank 引用 Dare Obasanjo 关于 GData 的意见来支持他对基于 REST 和基于 SOAP 两种方式的看法:

将这个(GData)跟 Yahoo! Developer Network 的 API 或者 Windows Live Dev 的一坨粘糊糊的不协调不兼容的 REST 风格的协议、SOAP API 和 XML-RPC 方法,都放到同一个屋檐下对比。在 Google 这边,一个可以从 Blogger 读写数据的程序只需要细微的修改就可以从 Google Calendar 或者 Picasa Web Albums 读写数据。而换成 Yahoo! 的两个服务(比如 Flickr 和 del.icio.us)或者两个 Windows Live 服务(比如 Live Search 和 Windows Live Spaces)情况就大不相同,即便来自同一家公司的两个服务都使用完全不一致的协议、对象模型和认证机制。

GData 通过 HTTP 谓词 GET、PUT、POST 和 DELETE 来支持对(用 URI 表示的)资源的 CRUD 操作。操作的结果用 Syndication Feed(Atom/RSS)的形式提供。 Atom 的元数据里加入了额外的扩展标签以满足 Google 服务的个别需要。查询和乐观并发也已经加入。乐观并发由“编辑链接(edit links)”实现。指向资源的每个链接(URI)都包含版本信息。这个版本信息随着每次更新自动调整。并发问题通过在每次更新或删除时比较所提交的版本信息和服务器上的版本信息来解决。

身份认证由 Google Desktop 或 Web Authentication Service 实现。两者都会创建一个认证令牌,可被客户程序用来鉴别单个用户的身份。Web Authentication Service 由相应的 Google 站点通过重定向掉用。两种方式都可以保持密码安全。

演讲还涵盖了一些其他开发者如何运用 Google Data APIs 的例子:

Frank 还提到了 Google Data API Protocol 的一些弱点,Google 将会在以后的版本中解决:

  • 身份认证——Web Authentication Service 是通过重定向调用的,导致用户要离开客户程序并被带到一个可能看上去完全不同的用户界面之前。很多客户都对此有所抱怨。
  • 乐观并发——编辑链接不是一个很干净的解决方案。Frank 说他们当初应该采用强 ETags
  • 增量更新——现在没有办法做到增量更新,即改变资源的特定部分而不必发送整个新版本的数据。
  • 版本控制——这是一个悬而未决的问题。Google 还没有决定他们要如何处理 Google Data APIs 的版本,不过基本可以确定是通过提供一组新的 URI 来实现。旧版本可能在一段时间后下线。

Matthias Zenger 是 Google 瑞士的 Tech Lead Manager,他谈论了 Google Base 。Google Base 为应用程序处理结构化的数据提供了一个平台。任何人都可以定义数据项的类型并提交数据项到库(base)中,以产生一个结构化数据的库,以便 Google Search 能够找到并适当地表示这些数据。

Google Base 的数据模型非常简单。Base 是一个数据项的仓库,它的结构是由数据项类型(item type)定义的。数据项类型由一组类型化的属性构成,属性则是一个名称 / 值的绑定。比如“Product”就是数据项类型的一个例子。它被 Google Product Search (Froogle 的成功关键)使用。

Google Base 基于 GData 并增加了一些特定的扩展。对数据项的创建、读取、更新和删除的所有 CRUD 操作都被支持。当中还包括了通过" bq"查询参数实现的结构化查询,例如“?bq=[cuisine: asian][cooking time <= 45 minutes]”。Google Base Query 查询语言提供的标准化查询包括“[name(type) op value]”模式、专门的日期和地点查询、内建及定制的排序函数(成熟 SQL 的“order”)和分组表达式(SQL 的“group”)。

Matthias 以演示 Google Base 的范例项目其中之一 Honda Certified Used Cars 结束了他的演讲。

Google 开发者日的参与者们能够深入地了解最新的 Google 服务,以及这些服务的开发和用途。本次活动提供了丰富的信息以及开发者之间沟通和讨论的充分机会。 GDD07 德国主页上还为没有机会参与此次活动的开发者们提供了现场的视频。

查看英文原文: Google Developer Day 2007 - - - - - -

译者简介:郭晓刚是一名独立开发者。在经过了 10 年修练之后,总算是懂得一点编程了。目前主要关注以 Spring Framework 和 Hibernate 为主干的 Java Stack 和 Adobe Flex。Microsoft Office 的插件开发也是关心的方向之一。同时也在尽力做一些技术翻译工作,把知识分享给更多的人。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2007-06-05 20:23999
用户头像

发布了 225 篇内容, 共 71.4 次阅读, 收获喜欢 52 次。

关注

评论

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

Zerto 10.0 Update 7 - 适用于本地、混合和多云环境的灾难恢复和数据保护

sysin

Zerto

Guitar Pro为什么被称为吉他编曲的绝佳软件?Guitar Pro编曲教程

阿拉灯神丁

吉他学习 吉他谱 编曲软件 Guitar Pro8 音乐创作

React源码阅读(2)-fiber核心构建原理

溪抱鱼

Go 语言中的 Hot Path 优化:高性能优化实践指南

异常君

Go 高并发 高性能 优化

【每天学点‘音视频’】GOP-关键帧间隔

小曾同学.com

ffmpeg 实时音视频 GOP B帧

不是拿着源码过来,就能二开,还需要注意这些

程序员郭顺发

鸿蒙仓颉语言开发实战教程:商城应用个人中心页面

幽蓝计划

【重磅】JimuReport 积木报表 v2.0 版本发布

JEECG低代码

GitHub 数据可视化 免费报表 开源版本

通义灵码2.5 | 一个更懂开发者的 AI 编程助手

六月的雨在InfoQ

MCP Server AI 编程 通义灵码2.5 编程助手

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

王二蛋和他的张大花

鸿蒙 os

时序数据库 IoTDB 官方可视化平台 Workbench,一文全面了解!

Apache IoTDB

专为开发者和AI爱好者设计的工具 LM Studio for Mac您的本地 AI 工具包

Rose

吉他初学者如何自学吉他?Guitar Pro如何辅助新手掌握复杂的吉他弹奏技巧

阿拉灯神丁

吉他学习 编曲软件 Guitar Pro8 Mac乐谱制作软件 乐谱软件

实用的预设管理器和编辑器 JU-106 Editor for mac

Rose

用 10 个 AI 工具创建独立开发团队

俞凡

人工智能

HarmonyOS运动语音开发:如何让运动开始时的语音播报更温暖

王二蛋和他的张大花

鸿蒙

我离职了,聊聊职场、大学、友情和爱情:人不能两次踏入同一条河流,生命只能倒着被理解,但却必须正着被经历

码哥字节

#职场思考

AI Agent驱动下的金融智能化:技术实现与行业影响

申公豹

AI Agent

时序数据库 TimechoDB V2.0.4 发布 | 新增用户自定义表函数及多种内置表函数等功能

Apache IoTDB

透明LED广告屏租赁价格:探究成本

Dylan

广告 LED LED display LED显示屏 LED屏幕

AI 全栈开发实战营 - 第三章

9527

详解鸿蒙Next仓颉开发语言中的动画

幽蓝计划

低代码不是炫技,而是回归需求的必然答案

伤感汤姆布利柏

AI编码工具:面向现代开发者的分层指南

俞凡

人工智能

MAZDA EZ-60领衔 长安马自达多款新车型亮相2025重庆车展

极客天地

【HarmonyOS 5】桌面快捷方式功能实现详解

GeorgeGcs

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

TG Pro:有效保护您的Mac电脑避免过热或损坏

Rose

VMware VeloCloud SD-WAN 6.4 - 领先的 SD-WAN 解决方案

sysin

velocloud

2025 AICon上海站

IT蜗壳-Tango

基于YOLOv8的河道垃圾塑料瓶子识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!

申公豹

yolov8

2025北京智源大会闭幕|黄铁军:构建物理智能体,具身智能目标是星辰大海

智源研究院

Google开发者日2007德国大会报道_Java_Hartmut Wilms_InfoQ精选文章