写点什么

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:231125
用户头像

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

关注

评论

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

[方法分析]如何把大批量电话号码存入到手机通讯录,导入华为手机、小米手机、苹果iphone通讯录

一码平川

秘密任务 3.0:如何通过 JWT 认证确保 WebSockets 安全

数据追梦人

《Operating System Concepts》阅读笔记:p735-p737

codists

操作系统

内部im聊天,实现企业安全私密聊天

BeeWorks

即时通讯 IM 私有化部署 企业级应用

Apache IoTDB V2.0.2/V1.3.4 发布|新增表模型权限管理、UDF、嵌套查询功能

Apache IoTDB

SQL优化的这15招,真香!

量贩潮汐·WholesaleTide

数据库 sql

Sentinel源码—ProcessorSlot的执行过程(二)

电子尖叫食人鱼

JavaScript

企业内部即时通讯软件有哪些?这款IM工具值得拥有

BeeWorks

即时通讯 IM 私有化部署

探索亮数据Web Unlocker API:让谷歌学术网页科研数据 “触手可及”

程序员洲洲

从数字化到智能化,百度 SRE 数智免疫系统的演进和实践

Baidu AICLOUD

SRE

邮件自动回复助手(Rasa/SMTP)实现教程

不在线第一只蜗牛

前端 教程 邮件

Apipost自动化测试实战:用户充值系统API零代码高效测试与CI/CD集成全攻略

数据追梦人

国际知名半导体研究机构SemiAnalysis称:华为云CloudMatrix 384领先英伟达和AMD的产品一代

极客天地

【转】 FMEA

虚实的星空

Arthas tt(方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测)

刘大猫

Arthas java 阿里监控 tt 时空隧道

.NET Core 服务实现监控可观测性最佳实践

观测云

.net core

通过利益相关者管理提升财务规划的发展可持续性

智达方通

全面预算管理 财务管理 财务转型

RAG 实战|用 StarRocks + DeepSeek 构建智能问答与企业知识库

StarRocks

数据库 数据检索 StarRocks ;RAG DeepSeek

Spine 动画教程:皮肤制作

北桥苏

动画制作 Spine

使用Gone MCP 组件编写MCP Server

大鹏

golang MCP Gone依赖注入

[方式举例]快速把电脑excel电子表格联系人号码一键批量导入手机通讯录里

一码平川

CAD缺少线型文件会怎么样

极客天地

CAD怎么将多段线反转方向

极客天地

ScaleFlux入选CRN【2025存储百强】榜单

ScaleFlux

NVMeSSD 企业级存储 硬件存储

鸿蒙动画与交互设计:ArkUI 3D变换与手势事件详解

威哥爱编程

HarmonyOS HarmonyOS NEXT HarmonyOS5.0

成功案例丨新一代热管理:预测并降低热风险,避免代价高昂的过度设计和组件故障

Altair RapidMiner

仿真 CAE hyperworks Simlab PSIM

为什么科技巨头纷纷推出编程 Agent?背后是一场关于“生存方式”的重构

Ryan Zheng

豆包 1.5 · 深度思考模型上线边缘大模型网关,百万 Tokens 免费领

火山引擎边缘云

深度思考 火山引擎 豆包 边缘智能

Hume 推出 Octave TTS 即时模式,250 毫秒响应;客服语音智能体 Sona:简单集成、高度自定义丨日报

RTE开发者社区

TapData × 梦加速计划 | 与 AI 共舞,TapData 携 AI Ready 实时数据平台亮相加速营,企业数据基础设施现代化

tapdata

实时数据平台 MCP协议 AI Ready实时数据平台 CDC数据采集 数据服务化

利用DevEco Profiler定位性能瓶颈,优化资源占用

威哥爱编程

HarmonyOS HarmonyOS NEXT HarmonyOS5.0

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