本blog转移到http://oplatform.org

thanks.

以后不再更新。请移步 http://oplatform.org/ 继续观赏。谢谢!


云计算解读

云计算(http://en.wikipedia.org/wiki/Cloud_computing) 解读

基本概念:
云计算(Cloud Computing):一个概念。后面详细解读。
公用计算(Utility Computing):又称作按需计算(on demand computing),把计算资源聚集起来,作为像水、电、气这样的公共设施服务提供给公众使用。
网格计算(Grid Computing):分布式计算(distributed computing)领域的术语,指把多个不在一个管理范围内的独立的计算资源组织起来形成“网格(grid)”,用来提供计算或者存储服务,例如云计算服务等。
根据我的理解举几个例子:
SETI@Home寻找外星人计划、BT/电驴:是网格计算,不是云计算。
Yahoo Maps:是云计算,不是公用计算。
Google GFS:是云计算,也是公用计算。[参考3:Google将为科学研究人员免费提供 TB级存储空间]
—————— 解读开始 ———————–
Cloud computing is a new (circa late 2007) label for the subset of grid computing that includes utility computing and other approaches to the use of shared computing resources, rather than having local servers or personal devices handling users’ applications.
解读:
1. 云计算是一个很新的概念(2007年底才被提出来的)。[参考1:网格计算早在上个世纪90年代就提出了。参考2:公用计算的理念早在1961年就由MIT的计算机科学家John McCathy提出了(世界真小,这老爷爷更多的是作为lambda数学和lisp的创始大牛活在人们心目中的)]
2. 云计算是网格计算的子集。(sorry这个之前记反了)
3. 云计算的实现手段有:公用计算以及其他利用公共资源——而无需借助本地资源——完成计算任务的方法。
这篇文章引用 IDC研究公司的分析师的话说“云计算是网格计算模型自然而然的进一步发展”,其实他的观点是从概念方面而非技术方面来看的 ——云计算是计算资源从封闭走向开放的产物,是一种概念上的创新。
Grid computing is a technology approach to manage a cloud.
解读:
网格计算是一种管理“云”的技术手段。
In effect, all clouds are managed by a grid but not all grids manage cloud.
解读:
所有的“云”都需要借助网格技术来进行管理。但不是所有的网格都是用来管理“云”的。
也可以简单的说[参考1]:所有的云都是网格,但不是所有的网格都是云。
这幅图片比较清楚的画出了二者的关系:
grid_computing_technology

A computer cluster can offer cost-effective service in specific applications, but may be limited to a single type of computing node that allows all nodes to run a common operating system.
解读:
集群技术的区别是,集群中的节点都是同类型的。(比如体系结构、操作系统等都一样)
而网格的目标是要把任何终端设备(例如电脑、手机、打印机等等)都整合到一起的。

Also important to the notion of cloud computing is the automation of many management tasks. If the system requires human management to allocate processes to resources, it’s not a cloud: it’s just a data center.

解读:
数据中心的区别是,需要人来手工管理资源分配。
网格计算是自动管理的。
As a result, the services that can be delivered from the cloud are not limited to web applications, but may also include storage, raw computing, or access to any number of specialized services.
解读:
云计算能够提供的服务包括但不限于:web应用(例如Google Maps),存储服务(例如Google GFS已经开放给美国科学家使用[参考3]),计算(例如Google MapReduce已经开放给美国大学使用),其他特殊服务,等等。
—————— 解读结束 ———————–

最后插一句,个人比较赞同MMDays 这篇文章的说法,网格计算和云计算并没有十分严格的分别,只是前者更重视异质资源整合、后者更重视提供基础服务而已。“cloud computing 並不代表任何單一技術的突破或是革新,它代表的是分散式運算本身的一種成熟”。

其他参考资料:
1. http://en.wikipedia.org/wiki/Grid_computing
2. http://en.wikipedia.org/wiki/Utility_computing
3. http://it.sohu.com/20080121/n254791257.shtml

相关阅读:
1. Google及其“云”智慧
2. 有关云计算的那些真相
3. 遨游蓝云:云计算延伸创新,促企业新发展
4. 云计算——IBM的未来策略
5. 网格计算概述



yahoo openid后续独家报道

hehe, 还没看到国内有人说。

yahoo openid beta已经推出了。访问以下任何一个都可以:
http://me.yahoo.com/
http://openid.yahoo.com/

上去之后先点“Get Started”大大的黄色按钮,按guide开通就好了。
不过默认给你的id是一个加密串,很难记,例如:
https://me.yahoo.com/a/RWmipb5wvs58hB8XDwLR2DnKTDE-

但是你可以绑定一个(并且,一旦绑定就不能更改)好记的,例如:
https://me.yahoo.com/qingyan2

这样,上面两个就等价了。
不过,yahoo会不推荐你绑定一个和你的yahoo帐号一样的ID,所以最好赶快抢注 (我的qingyan.liu就被别人抢了)。

另外,yahoo还贴心的提供了一个free的服务:Sign-in Seal。
这个技术的主要作用是防钓鱼(anti-phishing)。
简单讲就是你预设一个你可以方便记忆的特征串(例如你老婆的名字和生日)或者 特征图片(例如你的照片)。这样yahoo会show给你看,而钓鱼网站就 show不出 来,你就能区分它们了。^_^

有说的不清楚的,找我:)


从“技术观察”改为“模式观察”

改个名字的想法源于和sue的讨论。最早的想法是focus在技术部分,但是渐渐深刻感觉到,技术-产品-商业模式对于一个互联网产品、公司的成功是一个完整的链条,缺一不可。只观一者,难免管中窥豹、盲人摸象,恐终无法得见全貌。唯有从立体的角度去看,才能丰满,才能有所得,才可能终达“致知”之境。


OpenID再论

先更新一下新闻:美国雅虎在17日时正式推出了OpenID的服务,2.48亿的雅虎注册用户使用该服务即可登录任何支持OpenID 2.0系统的网站。

之前青焱文章里面提到”除了一处注册,到处通行以外,OpenID 给所有支持 OpenID 的网站带来了价值--共享用户资源”。我倒觉得没有那么乐观,特别是从用户分析的角度来说,OpenID技术,甚至是现在许多web2.0网站支持Email登录的做法倒是给网站提出了很大的挑战。

以雅虎邮箱为例,用户在注册的时候,雅虎会要求用户填入性别,年龄这样的基本信息,当用户登录使用雅虎其它产品的时候,雅虎就可以从中获得该产品登录用户的基本构成分布。但是当所有的用户都只用其他服务商的OpenID或者邮箱的登录的时候,我们就很难再得到用户构成的基本信息。

不过,本着乐观主义的态度换个角度看,这未必不是件好事。性别年龄这些维度,在粗放型年代可以一用,但到了这个精细化运营的时代,要想勾勒出网络另一端的用户的样子,倒是更兴趣,关注点这些带着感情色彩的内容更有帮助,比如上豆瓣随便抓个用户,只要TA有一定量的内容,去看看TA看过的书籍电影/关注的博客/每天的碎碎念/加入的小组(这个特别好用,是用户主动对自己的一个定位),大概能想象出这同学是个文艺青年/干物女/曾经的愤青现在的愤中。。。。。网站们应该开始(有的已经开始)从用户的行为来勾勒用户的模样了。

再接着想,“如果”OpenID真的成了业内通行的标准,“如果”主要所有支持OpenID的公司都合作一把,把某一特定的OpenID在各个网站的所作所为都拼在一起,呵呵,感觉就会像拼图游戏一样,一个活生生的有着各种喜怒哀乐的人就会被一点点的丰富起来,立体起来(该段纯属臆想,请忽略实现这些“如果”的种种困难,以及那个可怜的被扒皮用户的隐私问题)。

再回到现实中来,OpenID对于我们的意义是什么呢?

我现在想到的,觉得最有意思的就是在拥有多家网站的集团内推行该技术,支持一个帐号登录全集团的产品,给其用户颁发一个集团系列产品的通行证。

就以拥有多家子公司的阿里巴巴集团为例,相信目前阿里巴巴,淘宝,雅虎等的用户数据库已经相对成熟,强行融合肯定会有一定的技术难度(特别是有收购行为时,统一后台用户库更会是个大难题),倒不如利用OpenID技术,架设一个阿里集团的OpenID服务器,将各家子公司的用户帐号都按一定规则映射为一个URL(比如me.aligroup.com/ycn/sue_yangsu),那么即可实现一个帐号在全阿里集团产品的登录,同时,也可登录任何支持OpenID协议的网站。

PS:再链一个MD5定义(wiki,百度百科),送给所有和我一样的技术小白。

 

OpenID综述

OpenID 是什么?

从用户的角度看,它是一个URL。例如:http://liuqingyan.yahoo.cn (假如yahoo.cn提供OpenID服务的话)。这个URL就是我的ID,使用这个ID我就可以登录任何一个支持OpenID的互联网应用(例如应用网站——新浪、网易、facebook,甚至网络游戏等)、享受他们的服务而无需在他们的网站上各自注册。

从产品的角度看,它是一种身份认证服务。提供这种服务的网站叫做OpenID服务提供者(或者叫做OpenID IdP——身份提供者。我没有用提供商这个词,因为OpenID是自由、免费的),例如上面的yahoo.cn。用户只需在yahoo.cn注册和管理一套统一的帐号、密码、profile(通过OpenID框架定义的属性交换协议)便可以一个ID走遍全球网站而无需分别注册了(假如大家都支持OpenID的话)。

从技术的角度看,它是一个统一的用户注册、认证协议框架,是一套开放接口(API)的标准是一个去中心化的单点登录系统的设计规范

它的特点:
开放——它的协议、API是开放和免费的,任何人均可自由实现;
分散——它的服务是分布式的,任何一个人都可以选择成为消费者或者身份提供者而不需要去登记或者被一个中央当局批准,最终用户可以选择他们喜欢的身份提供者并且可以任意地在不同的提供者之间移动切换;
自由——它按照最大自由方式授权,使用它不需要任何费用任何注册或者许可证。

现今,较知名的OpenID服务的英文提供者有openid.net, myopenid.com等,中文提供者有openid.org.cn, openid.cn, mysecond.name等。

目前支持或者已经准备支持OpenID登录的公司有:Yahoo!, flickr, Microsoft, Google, AOL, LiveJounal(blog service provider), Technorati(blog tagging服务), Orange(移动运营商), IBM, Verisign(网络安全服务提供商), Facebook, Plaxo(一个做在线地址簿的公司), 等等。(参考:《雅虎测试支持OpenID 方便用户登陆不同网站》《传闻谷歌IBM和Verisign拟加入OpenID》)根据OpenID中文博客上面的这篇文章介绍,著名的开源博客平台wordpress或者movable type都可以通过插件支持OpenID发表评论。

OpenID最终赢得了Webware 2007年最佳互联网应用TOP100中Browsing类别奖项获得者。这里是Webware的评价的一段摘录:

In theory, if OpenID was adopted on every Web site around the Web, you’d need only one universal log-in and could forgo the often tedious practice of remembering user names and passwords.

也就是说,如果大家最终都能以开放的心态来统一和融合,那么最终我们这些互联网用户将可以一个帐号通全球。

————–

下面简要介绍一下OpenID的技术流程。我们可以和Email认证来对比,以帮助我们理解。

现在很多大家熟知的应用网站,例如Facebook等,都是用Email帐号注册,然后它通过发送Email的方式来认证这确实是你的Email。本质上,雅虎的帐号也全部都是Email帐号。车东在他的blog上贴了一篇帖子《Plaxo:Email是人与人之间的URL》,这个帖子有点絮叨,不利于理解本文,还是不要阅读为好。

Email认证的流程可以简单描述如下:

(1) 注册:

a. 用户提交注册信息给Email服务提供商(eg. yahoo) 。

b. 用户得到Email帐号(eg. test@yahoo.cn)。

(2) 认证(指用户使用上述Email去注册facebook等应用网站时,应用网站认证用户email的流程):

a. 用户提交Email帐号(eg. test@yahoo.cn)和登录密码(注:也有的应用网站是先随机生成密码,然后认证通过后你再自己修改密码)给应用网站(eg. facebook)。

b. 应用网站(eg. facebook)发送认证Email给Email服务提供商(eg. yahoo) 。

c. Email服务提供商(eg. yahoo) 呈现认证信息(通常是一个附有参数的链接,直接点击即可)给用户。

d. 用户点击链接,认证信息传回应用网站(eg. facebook),认证成功。

(3) 登录:

a. 用户提交Email帐号和登录密码(注意不是Email密码)给应用网站(eg. facebook)

b. 应用网站(eg. facebook)到自己的数据库中校验帐号密码。若一致,登录成功。

 

Email认证的缺点:

1. 注册认证过程繁琐。

2. 仅注册时和Email服务提供商进行身份认证。以后每次登陆都不再和Email服务提供商重新认证身份。如果你的Email服务提供商处出现Email帐号过期又被他人重新申请的情况,你将可能面临隐私泄漏的风险。

3. 应用网站(eg. facebook)的登录帐号是Email,但是登录密码却是另外一个密码。如果为每一个应用网站都设置不同的密码,将会有很大的记忆负担。

4. 而如果你把所有的密码都设置成和Email密码一样,那么风险更大。因为应用网站(eg. facebook)的登录密码是存储在它们自己的服务器上的,无法保证应用网站(eg. facebook)不会窃取或泄漏你的密码(如果你的密码恰好和Email密码一样的话,这意味着不诚信的应用网站可以侵入你的Email,进而获取你更多的资料。同时,有些应用网站,例如facebook,会让你输入你的Email和密码;如果有黑客伪造这样的网页,可以骗取大量的Email帐号密码;进而侵入Email,如果你的Email中有邮件恰好保存了信用卡帐号密码和CVV2码,那么你的金融安全将面临巨大风险!)

5. 认证信件在网络上明文传输,可能会被窃取。

6. 存在隐私泄漏,收到垃圾邮件的危险(特别是无良的应用网站公开出卖用户资料)。

 

好,那么我们再来看看OpenID认证的流程

(1) 注册:

a. 用户提交注册信息给OpenID服务提供者(eg. yahoo) 。

b. 用户得到OpenID帐号(一个URL,eg. http://test.yahoo.cn)。

(2) 登录(是的,相比Email认证,OpenID免去了重新认证的过程):

a. 用户提交OpenID帐号给应用网站(eg. facebook)。

b. 应用网站(eg. facebook)通过OpenID规范中的“自动发现协议”确定OpenID的服务提供者。

c. 应用网站(eg. facebook)返回一个认证请求给用户浏览器,并让用户浏览器重定向到OpenID服务提供者。

d. OpenID服务提供者验证用户身份后(注:该验证使用何种方式不包含在OpenID规范中),返回认证通过的信息给用户浏览器,并让浏览器重定向回应用网站(eg. facebook)。

e. 应用网站(eg. facebook)接收到认证通过信息,允许用户登入。登录完成。

 

Email认证的几个问题在OpenID中都可以得到解决:

1. 节省了在应用网站(eg. facebook)上的重新注册和认证的步骤。

2. 每次登录应用网站(eg. facebook),都会通过OpenID服务提供者来进行身份认证。

3. 用户无需为不同的应用网站(eg. facebook)、OpenID设置不同的密码。

4. 用户的密码存储在可信赖的OpenID服务提供者处(每个人可以选择自己可信赖的OpenID服务提供者,甚至,如果你谁都信不过,你可以自己搭建一个OpenID服务,自己给自己提供服务),确保了应用网站(eg. facebook)无法获知你的密码,从而避免了密码的泄漏。

5. 认证过程全部采用加密算法,并对各种攻击进行了充分考虑,确保已知的黑客技术无法在合理时间将其攻破。

6. OpenID不要求你提供email,因此你不用担心受到垃圾邮件的骚扰。

 

综上,从技术的角度而言,OpenID提供了一种开放、免费、安全、分布式的统一用户身份认证解决方案,如果能够得到广泛运用,将从注册角度打破目前各网站割裂的局面,真正体现了互联网“互联互通”的精神,极大方便用户对互联网的使用。(可能公司对统一身份认证还好接受,对共享用户profile估计接受起来难度会大很多)

当然,这一切理想的实现都需要我们大家以一种开放的心态去参与!可喜的是,世界著名的大型互联网企业包括老牌IT企业都已经开始认识到了这一点。同时我们也可以看出,国内的互联网界还鲜有有影响力的企业认识、接受和参与到其中,开放、互通、融合的心态还需要一段时间来建立。

————————–

一些FAQ。

Q: 我可以拥有多个OpenID吗?
A: 当然可以!随你喜欢,你可以注册一个http://liuqingyan.yahoo.cn,再注册一个http://liuqingyan.google.com, etc。但是如果世界上所有网站都统一了用户认证,你有必要注册两个ID吗?——除非你想隐藏真实身份。

Q: OpenID是安全的吗?
A: 是的。你可以自由选择你信任的OpenID服务提供者。OpenID的协议规范是公开的,这样确保了它可以最大程度的安全。因为公开的规范是面对全世界的检验,因此它从设计之初就必须考虑最大的安全性(即,从数学和理论计算机科学上证明其不可破解)。

同时,应用网站(eg. facebook)将不再能够存储你的ID和密码,从而杜绝了应用网站泄露你的密码的可能性。也杜绝了黑客伪造应用网站骗取你的密码的可能性。

最后,OpenID是分布式(分散)的,这意味着没有任何一个霸权可以控制它,进而控制所有的用户。

Q: OpenID是方便的吗?
A: 当然。一次注册,全球浏览,还有比这更方便的吗?

Q: 如果我的OpenID服务提供者挂掉了怎么办?
A: 是个好问题,也是个技术性比较强的问题。简单的说,OpenID服务是分布式的(可以有很多服务提供者),挂了一个两个不会有任何影响。而且,你可以选择比较稳定的服务提供者(eg. yahoo, google, etc)。

从技术角度进行严谨的解释,根据OpenID规范中对于自动发现协议的阐述,允许用户通过多种可配置的协议来进行服务发现,也就是说,用户可以方便的更换OpenID服务提供者来对自己进行身份认证而不会有丝毫问题。

Q: OpenID这个天才的主意是谁想出来的呀?
A: Brad Fitzpatrick。他是Danga Interactive公司的创始人,该公司开发和维护着世界知名博客服务网站http://www.livejournal.com。另外,他还开发了世界应用最广泛的开源分布式高速缓存系统memcached(中国雅虎的全能搜索后端缓存技术就是memcached),分布式文件系统mogileFS等等。而OpenID则是他2006年左右(具体时间不详)发明的一种去中心化的单点登录系统

Q: 既然OpenID这么好,下一阶段它面临哪些困难呢?
A: 我认为主要是如何说服如此多的应用网站去建立开放心态,加入OpenID框架。

Q: 我开了一个很棒的图书分享网站,并决定加入OpenID框架了,我该怎么做呢?
A: 非常简单。plaxo有一个很好的guide,可以先看看。interwingly有一篇写得不错的博客《OpenID for non-superusers》,详细解释了一些高级的使用方法。然后细节的地方,参考OpenID的规范就可以了。

Q: 我对这篇综述有意见或者建议。
A: 请联系我:刘青焱 qingyan.liu (at) yahoo.com.cn 。