OpenStreetMap采用新的ODbL授权协议

致力于分享全球范围免费地图数据的OpenStreetMap项目近期消息不断。OpenStreetMap本月宣布,项目将正式采取Open Database Licence(ODbL)许可向地图数据使用者授权网站免费发布的OSM数据,包括点、线、面的坐标数据,地理位置间的相互拓扑关系,以及世界各地志愿者贡献的GPX轨迹数据。

此前,OpenStreetMap一直使用属于创作共用(Creative Commons)协议的CC-BY-SA协议对OSM地图数据的采集和发布进行授权。但是被个人博客站点广泛采用的创作共用协议并非是针对于数据共享,特别是地图数据共享而设计。创作共用协议的设计初衷是用于创作内容的版权保护,主要包含文档、照片和绘图等互联网创作形式的版权保护,而协议本身对于互联网数据的采集和共享没有清晰权责界定。并且创作共用协议的创建者也不推荐将此协议用于信息数据库共享,包含教育或科研等用途的数据库共享。

ODbL协议是OpenStreetMap基金会与Open Knowledge Foundation联合设计的数据共享授权协议。自2010年05月12日开始,OpenStreetMap用了两年的时间对OSM数据库中的地理位置数据进行了清理,对于那些不愿意将自己贡献的数据由创作共用协议转换为ODbL协议的用户,OpenStreetMap将不会在数据库中保留这些数据,而新加入的数据则默认为贡献者同意使用ODbL协议对数据的分发和使用进行授权。

OpenStreetMap在先前使用创作共用协议的过程中,难以对OSM地图数据的使用范围进行清晰的表述,比方说地图数据的出版发行和地图数据的商业应用。在数据共享方面,创作共用协议对哪些事情能做,哪些不能做没有清晰的界定,从一定层面上造成了OSM数据的滥用。对于地图API开发人员,在如何正确的将OSM数据与其他来源的地图数据混合使用,创作共用协议也带来了一定的困扰。相比较起来,ODbL在数据授权使用上较之CC协议更为详尽和明确,除了包含创作共用协议在内容版权方面的保护,ODbL还在数据版权、数据库归属权利和使用范围上进行了限定,比创作共用协议的适应性和可操作性更强。

成立于2004年8月的OpenStreetMap项目,在创始人Steve Coast的推动下,目前已成为全球最大的地理数据共享网站,拥有超过50万个注册用户和众多活跃的地图数据贡献者。为保证项目的可持续发展,OpenStreetMap在2006年8月注册成立了基金会,来负责项目数据库服务器的管理和维护,并保证数据的合理使用。

随着OpenStreetMap项目影响力的逐步扩大和LBS移动位置应用的火热,创始人Steve Coast也被微软看中,聘为微软Bing的地图服务Bing Maps首席架构师。显然,微软希望通过开源社区的影响力,来对抗地图服务领域一直处于领头地位的Google Maps。在Steve Coast加入微软后,OpenStreetMap与微软随之在地图数据层面展开了不少合作,如在Bing Maps中增加了OSM地图图层。更值得一提的是,近期Bing Maps进行了有史以来最大规模的卫星影像数据更新。Bing Maps更新了总计165T的卫星影像和航拍正射影像,而此前Bing Maps数年积累的遥感数据总量为129T,并且Bing Maps中所有更新的卫星影像数据,都可以在OpenStreetMap中访问。

致力于创建和提供免费地图和地理信息数据的OpenStreetMap,一直以来以类似于维基百科的方式接受志愿者贡献的地理数据,并向各种地图数据的用户提供数据下载和API调用服务。在这样的业务模式下,遵循良好设计的数据授权协议对整个项目的健康发展尤为重要。在OpenStreetMap地图数据授权协议变更后不久,签到服务网站FourSquare随即宣布旗下的应用将放弃Google Maps,转而使用OpenStreetMap提供的地图数据。在新授权协议下的OpenStreetMap项目,必将在移动位置服务的热潮下,为地图数据的用户带来更好的体验,同时也为应用开发者创造更大的价值。

本文曾发表于《程序员》杂志-2012年08期“程序天下事”栏目。

SpaceX引领太空探索商业化

太空探索技术公司(SpaceX)的第一架宇宙飞船Dragon号,在Falcon 9(猎鹰9号)运载火箭的搭载下,于5月22日顺利发射升空并进入了预定轨道。在环绕轨道过程中,飞船进行了一系列复杂的机动性和系统级测试,以保证在与国际空间站对接的过程中万无一失。5月25日,Dragon号达到国际空间站所在的位置,被空间站的机械臂捕获并完成了对接操作。在完成国际空间站物资补给以及运载太空站返回货物的任务后,Dragon号飞船于5月31日顺利返回地球,着陆在太平洋海域。

随着Dragon号飞船一系列预订计划的成功实施,SpaceX公司创造了多项航天领域的新记录。Dragon号是第一架由私人商业公司设计的可载人宇宙飞船,在容积上能够搭载七名成员或相等重量的货物到达近地轨道,可以承担为国际太空站进行物资补给或人员轮替的任务。在完成此次发射任务之后,SpaceX公司率先成为有能力将太空舱发射进入地球轨道,并与国际空间站对接的商业太空发射公司。

对于SpaceX来说,这次发射与对接任务的顺利实施远不仅是那些具有开创性的历史意义,更重要的是,发射任务的顺利实施将为SpaceX带来后续数十亿美元来自NASA(美国国家航空航天局)以及其他机构的订单,用来为国际空间站输送人员和物资,并承接太空微重力环境对生物、材料、流体物理学等相关研究对象影响的各项实验任务。NASA认为将低轨道载人火箭发射及运载计划承包给商业公司,将比自行完成这项工作更有效率,同时NASA也可以将其资源和注意力集中在探索更遥远的外层空间上。

实事的确如此,根据SpaceX的统计数据来看,原先NASA在完成类似发射任务过程中,消耗的资金往往是SpaceX各项花销的四到十倍。此外,创始人Elon Musk还在SpaceX官方网站公布,公司通过精细化管理以及设计生产过程中的高度垂直集成,使得目前猎鹰9号火箭的标准发射费用仅为5400万美元,并将使用铝锂合金制造的猎鹰系列运载火箭做到部分重复使用,通过出色的成本控制下进一步下调火箭发射的价格成本。

美国航天工业具有深厚的技术积累和完善的产业链,此外还有数量众多且经验丰富的工程人员。有趣的是,在航天界之外不少IT企业和技术人员,也把关注点转向太空资源的开发和利用。与Paypal创始人Elon Musk创建SpaceX相似,DOOM、QUAKE、CS等游戏引擎的传奇程序员John Carmack已不满足自己在游戏业中取得的成绩,也创建了面向太空技术研发的Armadillo Aerospace公司,专注于研制能够垂直起降并且可以重用的运载火箭技术,为实现载人太空旅行而努力。Carmack主导的Armadillo公司还创建了X-Prize Cup航空航天展和Lunar Lander Challenge登月挑战赛,为航空航天的爱好者提供了施展的平台和空间。此外Google赞助发起的Google Lunar X PRIZE,也为青少年了解航天领域知识和动手操作提供了支持。

创建于2002年的太空运输公司SpaceX,仅用了八年时间就顺利完成了猎鹰1号和猎鹰9号运载火箭的设计和制造,并同步研发了Dragon系列宇宙飞船,成为继美国、俄罗斯、日本、欧空局之后第五个与国际空间站对接的航天组织。或许在不远的将来,在SpaceX、Armadillo等商业公司的努力下,航天发射的费用能够降到目前发射费用的1/10,那么,距离普通人去外太空旅行的愿望应该也会越来越近。Carmack曾设立了奖金为一千万美元的X PRIZE大奖,用于奖励能够将三名乘客送到外太空的航天发射项目。在不远的将来,哪个团队将摘走X PRIZE大奖,让我们拭目以待。

本文曾发表于《程序员》杂志-2012年07期“程序天下事”栏目。

DQP分布式查询执行过程

数据访问集成中间件OGSA-DAI,在最新3.2.x版本中,已整合了分布式查询中间件DQP。DQP的作用是将分布式异构的关系型数据库通过数据服务进行集成,使客户端在SQL查询中访问多个数据源,如同操作单一数据源中多个不同的数据表。

在DQP分布式查询执行前,首先要获取已配置数据资源的schema表结构,并在获取的每个schema表名前加入相应的数据源前缀,以便在将分布式数据源整合后的虚拟数据库中进行标识。

DQP查询并不支持所有SQL查询的函数和操作符,其查询语法支持SQL 92标准的 子集。在分布式查询过程中,DQP中间件并不存储任何本地数据,而是根据提交的查询请求串,将解析后的子查询提交给相应的后端数据库资源的DAI服务来获取数据。

当DQP接收到查询请求串时,根据DQP支持的SQL语法进行解析,并通过查询解析生成抽象语法树(Abstract Syntax Tree)。SQL执行所依据的查询计划也根据抽象语法树获得,并在初始查询计划的基础上进行效率优化。优化后的查询计划被DQP中间件分发给数据源对应的数据服务,并调用服务后端的OGSA-DAI工作流来并行执行子查询过程。

对于DAI单数据源查询,中间件会将整串SQL语句推送给后端数据库解析执行,而DQP分布式查询,需要将查询解析后分发,所以如果在DQP查询中嵌入自定义标量(Scalar)或聚合(Aggregate)函数,需在DQP中间件中进行功能拓展实现。另外,DQP提供使用 Graphviz生成查询计划的方法,只需在部署后的DQP配置文件DQPCompilerConfig.xml中添加VisualiseOptimiser类,并指定DOT和PNG输出路径,即可生成可视的SQL执行查询计划图。

开源GIS项目OpenJUMP简介

在开源Java GIS领域中,OpenJUMP无疑是敏捷小巧,且功能全面的GIS客户端代名词,能为使用者带来类似ESRI ArcExploer般的地图浏览、编辑和空间分析功能。

OpenJUMP前身是JUMP GIS项目,JUMP名称为Java Unified Mapping Platform的缩写,最初由加拿大GIS公司Vivid Solutions和Refractions Research共同开发。这两家公司都以提供Java GIS解决方案而闻名,并且分别向开源GIS社区贡献了Java空间分析库JTS和通用Java GIS平台uDig

OpenJUMP在GPL协议授权下开放源代码,并在系统构建时使用了Java拓扑分析套件JTS、Java高级绘图库JAI、工程与科学计算库JMathTools等已有类库。在矢量数据源支持方面,OpenJUMP支持GML 2.0,WKT(Well Known Text)、ESRI Shapefile以及JUMP自有的JML格式。

在OGC服务方面,OpenJUMP已提供了WMS支持,并且在JUMP可拓展性框架支持下,可以很方便的添加第三方WFS和WPS插件。除此之外,OpenJUMP直接支持PostGIS数据集的加载、绘制和写回,并且提供ArcSDE、Oracle Spatial以及MySQL Spatial的访问接口,通过支持空间拓展的数据库获取空间数据。

OpenJUMP内置了GIS空间分析操作,包含Buffer缓冲区分析,Intersection叠加求交、Union叠加求和等空间分析功能,可以用来实现特定的空间分析计算,并可以通过插件方式为OpenJUMP进行功能的定制或拓展。在拓展方面,OpenJUMP提供Java API接口,并且支持轻量级Java脚本BeanShell和Python的API拓展开发。

在德国,OpenJUMP被作为GIS专业教学软件,来为学生演示矢量栅格数据绘制,以及基本的空间分析功能,并以此让更多人从学生阶段就多接触开源GIS的软件环境。感兴趣的朋友可以下载OpenJUMP的上手指南,来了解OpenJUMP平台上所提供的各项GIS功能。

《Google API大全:编程·开发·实例》作者序

《Google API大全:编程·开发·实例》一书(豆瓣China-pub)将在2009年6月5号的Google开发者大会首发。本书的作者中,不少是来自Google公司开发一线的工程师,同时也包括始终关注Google API,并活跃在开发者社区的程序员和架构师,他们是:段念何峰苏哲高昂张凯峰IceskYsl王翔田淼王俊煜林胜李明刘宏伟。欢迎感兴趣Google API的朋友们关注,作者序全文如下:

10年前,使用Email邮箱收发邮件,只是很少一部分技术人员才能享受到的便利;5年前,出行时如果没有随身携带地图,只好在路人的指点下摸索找寻。而今天,无处不在的互联网和丰富多彩的互联网应用,已然嵌入了我们的生活。GMail带给我们免费、好用且容量不断增加的邮件服务,Google Maps成了我们出行前必不可少的参阅工具,甚至通过移动终端将地图随时带在身边。所有这些,都悄无声息成为我们生活的一部分。

互联网技术每天都在更新和发展,促成这一切发生的,正是背后极具创造性的程序员,和那些通过产品为用户带来价值的新技术公司。在这些公司中,Google毫无疑问是在帮助用户改变互联网使用方式上做得最为出色的。

Google以其独具特色的互联网应用,一直引领着互联网产品开发的方向。同时,Google为其绝大部分产品提供了面向开发者的API调用接口。这些设计良好的API,帮助开发者通过Mashup调用将Google产品所提供的内容集成在第三方应用中。

Google 多达几十种的开放API无法一一列举,但我们在日常使用互联网时一定在不经意间享受过它所带来的便利。提供地图服务的Maps API,实现互联网社区化联系的OpenSocial API,开发定制个性化首页的iGoogle Themes API,简化广告营销管理活动的AdWords API,提供网络应用程序平台的App Engine,等等。这些API的出现,不仅仅为开发者带来更具灵性的开发创意,为用户带来更为丰富多彩的互联网产品,更重要的是,它们说明了 Google的产品不是封闭的,而是属于整个互联网开放平台的,任何人都可以在Google的产品之上进行拓展,并享用Google产品为互联网带来的便利。

本书的写作的目的,也正在于此,即对Google开放API进行梳理和介绍,辅以行之有效的实例,让更多的开发者了解Google API、深入Google API,灵活使用Google API来开发实用且融入灵感与创意的互联网应用。

请移步Google Document继续阅读序言全文