Thursday, May 31, 2007

Google Gears,带动离线Web应用的齿轮

  今天,Google向开发者社区公布了用于支持离线Web应用的Google Gears开源项目,并在其Google Reader产品中首先尝试应用了此技术。

  记得几个月前我曾在“Offline支持——Web的下一个热点!”一文中分析过离线Web应用的来龙去脉,以及一些尚不清晰的发展方向,譬如离线业务逻辑、数据同步、安全机制等。有兴趣的朋友也不妨一看啦,欢迎评论和交流。

  从初步的体验和探究来看,正像Google Gears的开发工程师Aaron Boodman和Erik Arvidsson在Gears API Blog上的写的那样,目前的Gears提供的还只是用以支持离线Web应用的最小基本功能集。还有更多的离线Web应用问题和解决方案需要得到广大社区和业界厂商们的支持合作和共同努力,以完成一个能够满足人们需求的基于开放平台标准的解决方案。

  对于Google Gears的推出,让我们来看看其他离线Web解决方案提供商是如何反应的:
  • Adobe的Mike Chambers在其Blog上表示,Apollo的下一个beta版本在离线数据存储方面的选择将会与Gears一样,即包含轻量级的开源SQLite数据库引擎,并且将考虑提供与Gears兼容的API以保证浏览器和桌面离线Web应用的API实现一致性。

  • Dojo离线工具包的开发者Brad Neuberg在Ajaxian对其的访问中表示,他已经将Dojo的离线应用框架进行了移植,开始使用Gears作为Dojo离线框架的基础平台,从而与Google在离线Web应用这方面开展进一步的合作。
  相信用不了多久,我们就能看到开放社区合作的进一步成果了,特别是在离线业务逻辑、数据同步、安全机制等方面。虽然目前的似乎还只是一个本地cache机制,但Gears的长远发展还是很令人看好的,有望真正称为带动离线Web应用的“齿轮”!

  最后,让我也来贴一张Gears的高层架构图吧,顺便推荐一下来自朋友jeremy的“Google gears 與 flex/apollo 的簡單比較”一文,其中有些关于架构的分析和引申出来的想法还是蛮值得一看的。

by William Cui 崔伟毅

Labels: ,

Wednesday, May 30, 2007

震撼,来自Microsoft的“表面计算”创新突破!

  在今天的“All Things Digital”大会上,Microsoft将展示其最新的“表面计算(Surface Computing)”研发成果。
  著名的技术咨讯网站TechCrunch对它进行了详细的报道
  在看了相关的视频演示和官方介绍网站之后,我只能用“震撼”一词来表达此刻的感觉了……WoW,此项创新成果正在把人机交互革命推向一个全新的高度,而Microsoft也向世人再一次展现了其超强的研发实力和创新能力!这才是真正的持续创新能力,值得我们研究学习啊。



by William Cui 崔伟毅

Labels:

Friday, May 25, 2007

Google将以1亿美元现金收购FeedBurner

  几周前,在“Google发布Ajax API使得RSS混搭应用更容易”一文中曾提及FeedBurner的RSS资源聚合管理服务,以及对其迟迟未提供类似的Ajax Feed API服务表示疑惑。现在,这个问题不解自答了:Google再次慷慨解囊,即将以1亿美元现金收购FeedBurner。
  于是,大家不禁要问,收购这样一个RSS资源聚合管理服务提供商对于Google来说意味着什么?此次收购,对于其他竞争者和广大用户又可能意味着什么呢?
  对于Google来说,这意味着其有进一步机会获得第一手的用户RSS订阅和阅读数据,而且更重要的是这一机会是独家的。因为RSS资源聚合管理服务相当于是一个统一的RSS代理门面(Proxy & Facade),即用户通过唯一不变的URL来订阅和定期获得RSS数据,例如本博的FeedBurner地址:http://feeds.feedburner.com/williamcui,以及Weblog评论的FeedBurner地址:http://feeds.feedburner.com/williamcui/comments。这样,一旦我的Weblog主机名、提供商或者Feed路径发生了改变,则只需在FeedBurner中进行配置即可,使得订阅了RSS的用户可以不受到任何影响,从而保证了订阅者的不流失性。正是由于有了这样一层代理,使得很多的基于RSS的统计分析、管理还有增值服务成为了可能,其中最有商业价值的就是有针对性的RSS广告营销了,并且FeedBurner中的广告可以进一步搜集用户的习惯来进行有效投放广告,而不是纯粹地根据RSS的上下文。单从这一点上来说,Google如果想从中获取投资收益,应该是易如反掌了,1亿美元还是太廉价了一点。
  而对于其他的领域竞争者来说,情况就要糟糕的很多,不得不承认他们无疑失去了一个可以永久性粘住用户的巨大机会!因为考虑到流失广大订阅用户的巨大风险,FeedBurner的用户肯定不会选择转向其他的RSS资源聚合管理服务提供商。对于这一点,我估计Yahoo、Microsoft还有国内的Baidu、Sina等可能事先并没有预料到事态的严重性,要知道这个和搜索引擎可不一样,不是说换就可以换的,也不是靠技术或用户体验就可以赢得市场的,一旦错过了先机,想要再迎头赶上,可没以前那么容易罗!
  此外,他们单单和FeedBurner竞争可能已经够呛了,Google还有两个目前市场份额双双占有的产品:Google Blog Search和Google Reader。此次收购势必会进一步强化这个黄金三角的组合价值,可以这样做一个比方,原来的Google Blog Search和Reader扮演的分别是资源探索发现者和资源请求获得者的角色,现在再加上FeedBurner即将扮演的是资源整合发布者的重要角色……由此,绝对可以预言得到一个Feed资源服务方面的强势风暴组合啊!其他厂商的组合产品似乎还没有什么听说,如果有知道的烦请不吝告知,谢谢!
  最后,再来谈谈Google的这一系列Web资源平台化的战略动作到底对我们大众用户意味着什么呢?我们应该高兴还是担忧呢?高兴的是我们的资源可以更有效地进行整合利用了,担忧的是会不会我们的个人隐私都被Google一览无遗了,会不会有潜在的安全风险呢?或者说更好的做法是否是应该自己来管理、整合利用自己的资源,而不是依托于外界呢?
  再补充问一句,这一切对于企业用户或者企业软件供应商又意味着什么呢?从某种角度上来说,企业应用在这方面的开发空间也绝对算得上是“蓝海”了!如果你有兴趣,让我们一起进一步讨论讨论吧!

William Cui 崔伟毅

Labels: ,

Wednesday, May 23, 2007

桂林之旅

  我所在研发团队的桂林之旅圆满归来,大致行程和Picasa照片如下:

  第一天,飞桂林,游象鼻山、伏波山、桂湖、桂林市区步行街。

象鼻山 From 桂林


和北京lead合影 From 桂林


伏波山 From 桂林


桂湖 From 桂林


  第二天,游“世外桃源”、阳朔西街、观看《印象·刘三姐》演出。

From 世外桃源


喝过村酒 From 世外桃源


和德国老大Frank合影 From 世外桃源


From 印象刘三姐


  第三天,近四小时的遇龙河漂流,游蝴蝶泉、阳朔西街,回上海。


William Cui 崔伟毅

Labels:

Sunday, May 13, 2007

Flex开源图形可视化组件——SpringGraph

  所谓一图胜过千言,信息可视化(Visualization,可能翻成形象化更恰当)一直是一个有趣的、令人兴奋的话题,不是么?
  在此,我想给大家介绍一个很棒的用Flex 2.0开发的开源图形可视化组件——SpringGraph,它通过网络连接图的形式来表现事物间的联系,支持拖拽、放缩、自动排列、双击下钻等特性。初步体验起来,在性能和效果上给我的感觉都不错,说不定就在以后的项目中用得上呢。  
  SpringGraph的作者是Adobe公司的Mark Shepherd,他提供了该项目的源代码和相关文档示例,以及几个在线的演示:分子模型察看器SpringGraph管理器同义词网查询器Amazon网上Apple产品关联网等等。

William Cui 崔伟毅

Labels: ,

Monday, May 7, 2007

简洁的REST架构风格——Web本位回归进行时

  五一长假就要结束了,大家有没有休息好呢?Have you had a good REST?(但愿大家不会像我前几天那样——公司里一些“十万火急”的事情使我忙碌得连写这个Weblog的时间都很难挤出。)
  过去的几天里,我尝试着用REST的风格对之前的一个小项目进行了架构方面的重构,有了一定的收获。于是,在今天这篇文章里,我也想简短地谈一下近期比较热门的REST架构风格,一方面想整理一下自己的思维,另一方面也想和大家交流一下这方面的实践和认识,以抛砖引玉。
  简单回顾一下,REST(Representational State Transfer)是 Roy Fielding 博士在2000年他的博士论文中提出来的一种基于网络的软件架构风格。该架构的具体定义还可参见Wikipedia维基百科全书)上的相关条目。
  我理解的REST本质是把所有的资源应用协议的状态转变通过URL来显性地表示出来,如果把整个Web看作是一个巨大的状态机,那么每一次对URL的访问请求都相当于是一个外部输入,而每个请求都会有一个相应的返回结果,即该Web资源根据外部输入从一个状态转变为另一个状态。
  我猜想这个本质可能也就是早期Web的设计初衷,只是我们从传统的设计开发里沿袭了过多的所谓“最佳实践”模式,从而把东西越做越复杂,也诞生了一系列技术标准的怪物诸如:COBRA、COM/DCOM/COM+、RMI、IIOP、EJB、WSDL、SOAP和XMLRPC等等。我以前写的一篇文章“Offline支持——Web的下一个热点!”也曾讨论过Web技术历史发展方面的话题。
  和以上这些技术标准相比,REST架构风格的优势就在于其简洁性,因此越来越多的“Web 2.0”网站和软件开发供应商把他们的业务服务往REST架构风格上面靠,以努力使得Web资源可编程共享化、Web服务的API更URL化(与WSDL相比 )……
  另有以下几点补充说明:
  • 和现在的基于HTTP的Web服务一样,REST的所有操作请求也都是无状态的,这样就很容易做分布式、集群应用,服务器端的压力可以非常易于平衡,其扩展性良好
  • 对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法,因此REST是一种Web本位的回归
  • 由于所有资源都由URL制定的,这样REST架构风格就省掉了类似UDDI“服务发现”机制,因此REST也被称为面向资源的架构(Resource-Oriented Architecture),基于REST架构的设计开发方法也有被称为URL驱动(URL-Driven)的设计方法
  最后,附上几个REST方面的发展动向以及一些进一步的参考资料:
  还是接着文章的开头,祝大家Have a good REST哦!欢迎指教,谢谢!

William Cui 崔伟毅

Labels: