今天初步研究了University of Maryland的云计算的情况,跟踪了名不见经传的Jimmy Lin 。国外的研究都是小伙子当道啊,老头们退居二线。国内出头露面的全是老头子,小伙子们全是在背后当苦力。Jimmy Lin的详细信息,可以从点击这个链接 。
Jimmy Lin的研究主要基于MapReduce了,不同于一些弄网格计算出身的学院派,主要project有Cloud9 ,Ivory 。他的思想从他的课程文档 中得以体现。
首先他讨论了web-scale application的一些本质特点,无非是data-intensive和processing-intensive,应该翻译为数据密集和处理密集吧。数据的密集导致了large data center的诞生,一个明显的趋势是计算资源,存储资源在大型数据中心的集中化。从而也产生了以下几个重要的issue:Redundancy, Efficiency, Utilization, Management。合理组织这些的一个关键技术在于virtualization。
virtualization
然后他讨论了三种computing/delivery model,NIST对云计算定义的草案 中也有类似的定义,详细的解释则可以参考这篇文档。
1. IaaS: Infrastructure as a Service。如:Amazon EC2
2. PaaS: Platform as a Service。如:Google App Engine
3. Saas: Software as a Service。如:Google Map等
他将MapReduce作为云计算的后端,Ajax作为云计算的前端,云计算的核心采取Amazon的EC2和用于存储的S3。
最后他将所有的计算归结为两个问题:Divide and Conquer, Throwing more hardware at the problem。
divide and conquer
这里的并行计算模型所引入的根本问题,总的来说是两种:1. 不同worker间的通信,2.共享资源的访问。已有的传统的并行计算模型如:Master/Slaves, Producer/Consumer Flow, Work Queues,
Master/Slaves
Producer/Consumer Flow
Work Queues
于是他采用了MapReduce,综合上述基本模型,以构建一个同步的系统。下一步将我们将进入MapReduce的研究,并使用相关的实现版本以及Maryland内部实现的应用。具体的一些实现版本可参考该链接