计算、计算架构、云计算
人有需求,需求需要被满足。在自己的旧需求被满足之后人会产生新的需求。组织行为学著名学者马斯洛提出了“马斯洛五层需求模型和理论”,这套理论很好地诠释了人的需求模型。这个需求理论投射在IT界就是IT应用和业务开发的驱动力模型。IT应用和业务的演进推动我们进入了云计算时代。
人为了满足自己的需求,开发了工具和应用(工具和应用可以用“应用”一个词来代表)。比如算盘、纸、笔、游戏机、计算机、iPhone、操作系统、游戏软件等都是为了满足人类某些需求的应用。随着人类技术水平的不断提升,人类增强已有应用和开发新应用的能力越来越强,试图更好地满足自己的需求。
人类使用自己开发的应用来满足自己需求的过程就叫做计算(Computing)。计算分为“狭义计算”和“广义计算”。
狭义计算是人类对自己某些特定需求的处理与满足。虽然狭义计算处理的需求是千差万别的,但都有一个共同的特点: 这个需求从被提出到被满足,都是具体的,确定的,不会变化,是可被清晰描述的,即“特定”的。
需求随着社会性因素的加入(例如归属、获得关注、获得尊重等),对人的需求和需求处理已经很难被特定地描述。为了在计算的架构讨论中涵盖这类高层次需求的处理架构,笔者引入了“广义计算”的概念。“广义计算”就是对人类任何需求的处理与满足。“广义计算”将个体属性的需求(对应于马斯洛需求模型1~2层)拓展到包括社会属性的更高层需求(对应于马斯洛需求模型3~5层)。 “广义计算”处理的需求范畴包括那些已经被IT应用处理的与暂时不能被IT应用处理的人类任何需求。
过去IT领域(“非云”计算时代)涉及的传统计算应用是基于狭义计算架构。下面所描述的计算都是指广义计算。
应用是用来满足需求的,任何应用都是依托于某种计算架构。计算架构包含3个基本要素:Client(用户)、Portal(门户)、Server(需求处理端)。Client是需求提出方,Server是需求处理方,而Portal是让两者发生联系的实体。任何具体应用的处理过程和环节中都可以识别出这3个基本要素。如通过计算机计算,人是需求提出方Client,计算机的CPU、寄存器等是需求处理方Server,而计算机键盘、显示器等是让两者发生联系的实体Portal。再如办理签证的过程,签证申请者是Client,目的国外交部是Server,领事馆是Portal。
Portal是计算架构中的要素,在计算架构和计算过程中起了至关重要的作用。没有Portal来让Client和Server发生联系,即便是有需求,也有需求处理的能力,但是由于用户和需求处理端无法发生联系相遇,这个计算也就永远无法完成。Portal在让用户和需求处理端发生联系之后,可以继续在计算过程中发挥作用,也可以之后就不发挥作用。
随着技术水平的不断提升,为了能够支撑新型应用去满足人类更高层面的需求,计算架构的三要素不断演进并发生形态的变化,从而导致计算架构从非云、一代云、二代云直到终极状态三代云的演进。
IT应用千姿百态,但在实现的时候都必须依托某种计算架构。从计算架构的维度可以把已经开发出来的所有应用和将要开发的应用进行分类和研究。云计算(架构)就是这个计算架构的分类体系的一个重要类别,是计算架构演进的高级阶段,基于云计算架构开发的应用被称之为云计算应用。
表1为作者提出的计算架构演进总表,通过该表可以了解本文将要描述的计算架构演进概貌。
表1 计算架构发展历程一览表
计算架构演进
第零代:传统计算架构/非云计算架构
非云计算架构的特点:用特定的方式处理特定的需求。非云计算架构的计算三要素都是具体的、确定的。非云计算架构的计算三要素里,Client、Portal、Server都好似法律里 “自然人”的概念,清晰而具体。
非云计算架构结构清晰直观,但非云计算应用可以处理的需求只能是特定的需求,所以是有限的。“特定(Specific)”: 指有明确规则约束的,可以事先确定和预计并用文字描述处理的全过程。Server只能处理严格符合预设规则的有限需求,预先约定规则以外的一切需求,都不能处理。比如,编写程序不按照语法进行书写,编译器只会反馈“Bad Command or input”。虽然你不知道计算机将要计算什么,但是用纸笔就可以预先清楚描述计算机的每一个计算步骤,描述时钟每次震荡之后,每个寄存器的动作。这个计算的过程就是特定的。
第一代云计算架构
第一代云计算架构伴随着互联网的普及和不断发展而出现。通过网络连接起来的大众从过去仅仅满足自己基本和通用的需求(比如FTP、浏览网页),逐步过渡到满足自己更高层、更复杂的需求。
互联网让散落在全世界各地的大众智慧能够互相联系,形成具有一定规模的基于网络的社团。他们提出了全新的需求,这些网络社团试图自己开发应用来满足自己的某些需求,不再像过去那样只能等待标准组织、大公司开发标准、协议和应用。
第一代云计算架构(Cloud I):在Portal的桥接和牵线下,Client的特定需求被Server用非特定的方式处理和满足。第一代云计算架构里计算三要素的Client和Portal还是特定的,但Server开始非特定化、云化。
一代云计算架构中的需求处理端(Server)是虚拟化的需求处理端(Virtualized Server),其处理需求时是非特定化的。Server虚拟化就好似法律中相对“自然人”概念引入“法人”概念。一代云计算架构的计算三要素里,Client、Portal还是“自然人”,而Server已经变成是“法人”了。
计算架构三要素中的要素Server云化,计算的架构就演进到了第一代云计算时代。
一代云计算架构一般用图1来表示。显而易见,云是最恰当的比喻。
BT技术、Google Docs、SaaS、IaaS、Paas、VMware都是属于一代云计算概念。
图1 第一代云计算架构示意图
门户(Portal)的作用在第一代云计算架构里的意义是极其重要的。没有门户,用户(Client)无法和虚拟需求处理端(Server)取得联系;需求处理端(Server)也无法组织起来为用户(Client)提供服务。
第二代云计算架构
当人类基本通信需求(比如短信、通话、上网)得到满足之后,就会有更高层次、更复杂的需求,并且对这些需求的满足更关注。近年社交网络的兴起正是为了满足人类的这些高级的具有社会属性的需求,同时引发计算技术和架构的演进。为了新的应用能够被开发出来,第二代云计算架构应运而生。
网络技术让用户之间能自由自主地发生联系,让有相似需求的用户们能够自由聚集在一起(Gathered)。在这个环境中,在全新的计算架构支撑下开发出了全新的应用,用来满足人带有社交性质的更高层需求。计算架构三要素中用户(Client)开始虚拟化(云化),其形态也好似一片云。
相对于一代云计算架构需求处理端(Server)的云化,第二代云计算架构的演进主要体现在用户(Client)的云化上,其架构示意图见图2。
图2 第二代云计算架构示意图
谁也不可能清晰地说明社交网络要满足的具体需求是什么。社交网络的用户群由拥有相似需求的用户聚集而产生,通过社交网的网状连接和信息传播,个体用户不停地加入和离开这个共同需求的虚拟用户群。作者把这个虚拟用户群称之为虚拟用户(CaG:Client as Gathered)。
虚拟用户的需求同样变化不定。虚拟用户群的需求不再是一个特定的需求,而是由虚拟用户群全体成员全时动态共同博弈决定。作者把这个动态的需求称之为虚拟需求(RaG:Requirement as Gathered),请注意其聚合属性。
某个需求在社交网络上被注入并得到超过一个用户响应(N>=2才有“社交”发生,才有归属特性),那么这个虚拟用户就产生了,它对应一个虚拟需求,并要求被满足。微博(Twitter、Sina微博、QQ微博)、Facebook的社交网络就是典型的二代云计算架构应用。
第二代云计算架构:在门户(Portal)的牵线下,虚拟用户的需求被需求处理端(Server)用非特定的方式处理和满足。第二代云计算架构的计算三要素里,只剩下Portal还是“自然人”,而Client、Server已经变成是“法人”了。
虚拟用户因为有共同的虚拟需求而存在。虚拟需求不再由某个特定的用户决定,而是虚拟用户的全体内部实时动态博弈决定。当虚拟需求不再被虚拟用户中的每个实体用户关注,或者虚拟需求被满足,而这个虚拟用户没有及时发展出新的虚拟需求的时候,这个虚拟用户随虚拟需求的消失而消失,本次计算过程结束。计算过程结束,并不一定是需求被满足。
从长尾理论的角度来看,非云架构、一代云计算架构要处理的需求大都是人类需求统计曲线的头部,是那些占据大比例的主流需求。而从二代云计算架构开始,长尾部分的需求也可以被基于第二代云计算架构的应用很有效地处理和满足。
除了社交网站,人肉搜索是典型的二代云计算应用。搜索谁?为什么搜索?怎么搜索?会有谁参加搜索?完全无法预测和描述。用户首先要发帖,讲要搜的理由和背景故事。如果这个故事够吸引人,那么一群用户就会聚集(Gathered),这群用户形成一个虚拟用户(CaG),最终的搜索需求不由最初发帖用户决定,而是由这个虚拟用户(CaG)内部博弈之后决定出一个共享的虚拟搜索需求(RaG),之后的搜索手段和搜索反馈结果就完全不可预期了。特别注意的是这个虚拟搜索需求(Virtualized searching Requirement)是实时动态变化的。比如,先是全体搜索“西单XX美女的名字”,之后会变成搜“XXX美女是哪个大学”,之后是“XXX大学校门样子”,之后是“XXXX大学难看的校门是否因为腐败”,之后是“XXXX大学修那个校门时在任的校长是谁”。当每次信息反馈给这个虚拟用户时,都可能引发尚未完成的虚拟搜索需求的变化,并一直这样变化下去,直到这个虚拟客户端满意或者由于共同兴趣消失自动解散为止。
当初始需求方通过Portal注入社交网络一个人肉搜索需求时,他不知道是否会得到处理,不知道是否得到足够的处理能力,不知道什么时候有处理结果。或者说,他不能带有任何预期。所以说在二代云计算,聚集(Gathered)至关重要,这是人类需求从关注满足自我,开始拓展到互相关注、关注联系、关注共同关注的兴趣。
第三代云计算架构
最后,笔者基于本文的逻辑,演绎一下对第三代云计算架构的展望。
第三代云计算架构:计算三要素全部云化,Client、Portal、Server都演化为“法人”。Portal的云化(非特定化)使得用户只需要关注自己的需求。Portal云化意味着Portal无处不在,不需要通过某个特定Portal去和Server发生联系,用户只要有需求,立即就会自动地得到满足。人好似生活在Utopia(乌托邦)描绘的理想世界。
第三代云计算架构可靠性极其高,随着Portal的虚拟化,整个网络将不可能被任何组织管控。这是人类计算架构发展的完美和终极阶段,与其说是三片云,不如说是形成一个广义计算的大云。大云可以在任何时间,任何地点,满足人类的任何需求。(本文代表作者个人观点)
[关键词] 云计算