﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-huqingcheng-文章分类-Clouds</title><link>http://www.blogjava.net/huqingcheng/category/46402.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 10 Oct 2010 14:09:21 GMT</lastBuildDate><pubDate>Sun, 10 Oct 2010 14:09:21 GMT</pubDate><ttl>60</ttl><item><title>The professor study cloud computing</title><link>http://www.blogjava.net/huqingcheng/articles/333710.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Sun, 03 Oct 2010 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/333710.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/333710.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/333710.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/333710.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/333710.html</trackback:ping><description><![CDATA[http://www.cs.odu.edu/~mukka/cs775s10/
 <img src ="http://www.blogjava.net/huqingcheng/aggbug/333710.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-10-04 00:01 <a href="http://www.blogjava.net/huqingcheng/articles/333710.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Google的十个核心技术</title><link>http://www.blogjava.net/huqingcheng/articles/333656.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Sat, 02 Oct 2010 09:12:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/333656.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/333656.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/333656.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/333656.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/333656.html</trackback:ping><description><![CDATA[<p>本系列是基于公开资料对Google App Engine是如何实现的这个话题进行深度探讨。而且在切入Google App Engine之前，首先会对Google的核心技术和其整体架构进行分析，以帮助大家之后更好地理解Google App Engine的实现。</p>
<p>本篇将主要介绍Google的十个核心技术，而且可以分为四大类：</p>
<ol>
    <li>
    <ol>
        <li>分布式基础设施：GFS，Chubby和Protocol Buffer。
        <li>分布式大规模数据处理：MapReduce和Sawzall。
        <li>分布式数据库技术：BigTable和数据库Sharding。
        <li>数据中心优化技术：数据中心高温化，12V电池和服务器整合。 </li>
    </ol>
    </li>
</ol>
<h1>分布式基础设施</h1>
<p><strong>GFS</strong></p>
<p>由于搜索引擎需要处理海量的数据，所以Google的两位创始人Larry Page和Sergey Brin在创业初期设计一套名为&#8220;BigFiles&#8221;的文件系统，而GFS（全称为&#8220;Google File System&#8221;）这套分布式文件系统则是&#8220;BigFiles&#8221;的延续。</p>
<p>首先，介绍它的架构，GFS主要分为两类节点：</p>
<ol>
    <li>
    <ol>
        <li>Master节点：主要存储与数据文件相关的元数据，而不是Chunk（数据块）。元数据包括一个能将64位标签映射到数据块的位置及其组成文件 的表格，数据块副本位置和哪个进程正在读写特定的数据块等。还有Master节点会周期性地接收从每个Chunk节点来的更新（&#8221;Heart- beat&#8221;）来让元数据保持最新状态。
        <li>Chunk节点：顾名思义，肯定用来存储Chunk，数据文件通过被分割为每个默认大小为64MB的Chunk的方式存储，而且每个Chunk有 唯一一个64位标签，并且每个Chunk都会在整个分布式系统被复制多次，默认为3次。 </li>
    </ol>
    </li>
</ol>
<p>下图就是GFS的架构图：</p>
<p style="text-align: center"><a href="http://vbqnmw.blu.livefilestore.com/y1pYrD2A3-IfgpT-nHa1rPjSJnj4Bss4-OhCPqak-45BMfHLfFxcF4d1hAsCPbZMYf668FHOddTV71_CejbwbDUe76vOG5GWuws/Google-file-system.png"><img class="aligncenter" title="GFS Architecture" height="243" alt="GFS  Architecture" src="http://vbqnmw.blu.livefilestore.com/y1pYrD2A3-IfgpT-nHa1rPjSJnj4Bss4-OhCPqak-45BMfHLfFxcF4d1hAsCPbZMYf668FHOddTV71_CejbwbDUe76vOG5GWuws/Google-file-system.png" width="536" border="0" /></a></p>
<p align="center">图1. GFS的架构图（参片[15]）</p>
<p>接着，在设计上，GFS主要有八个特点：</p>
<ol>
    <li>
    <ol>
        <li>大文件和大数据块：数据文件的大小普遍在GB级别，而且其每个数据块默认大小为64MB，这样做的好处是减少了元数据的大小，能使Master节 点能够非常方便地将元数据放置在内存中以提升访问效率。
        <li>操作以添加为主：因为文件很少被删减或者覆盖，通常只是进行添加或者读取操作，这样能充分考虑到硬盘线性吞吐量大和随机读写慢的特点。
        <li>支持容错：首先，虽然当时为了设计方便，采用了单Master的方案，但是整个系统会保证每个Master都会有其相对应的复制品，以便于在 Master节点出现问题时进行切换。其次，在Chunk层，GFS已经在设计上将节点失败视为常态，所以能非常好地处理Chunk节点失效的问题。
        <li>高吞吐量：虽然其单个节点的性能无论是从吞吐量还是延迟都很普通，但因为其支持上千的节点，所以总的数据吞吐量是非常惊人的。
        <li>保护数据：首先，文件被分割成固定尺寸的数据块以便于保存，而且每个数据块都会被系统复制三份。
        <li>扩展能力强：因为元数据偏小，使得一个Master节点能控制上千个存数据的Chunk节点。
        <li>支持压缩：对于那些稍旧的文件，可以通过对它进行压缩，来节省硬盘空间，并且压缩率非常惊人，有时甚至接近90%。
        <li>用户空间：虽然在用户空间运行在运行效率方面稍差，但是更便于开发和测试，还有能更好利用Linux的自带的一些POSIX API。 </li>
    </ol>
    </li>
</ol>
<blockquote>
<p>现在Google内部至少运行着200多个GFS集群，最大的集群有几千台服务器，并且服务于多个Google服务，比如 Google搜索。但由于GFS主要为搜索而设计，所以不是很适合新的一些Google产品，比YouTube、Gmail和更强调大规模索引和实时性的 Caffeine搜索引擎等，所以Google已经在开发下一代GFS，代号为&#8220;Colossus&#8221;，并且在设计方面有许多不同，比如：支持分布式 Master节点来提升高可用性并能支撑更多文件，chunk节点能支持1MB大小的chunk以支撑低延迟应用的需要。</p>
</blockquote>
<p><strong>Chubby</strong></p>
<p>简单的来说，Chubby属于分布式锁服务，通过Chubby，一个分布式系统中的上千个client都能够对于某项资源进行&#8220;加锁&#8221;或者&#8220;解 锁&#8221;，常用于BigTable的协作工作，在实现方面是通过对文件的创建操作来实现&#8220;加锁&#8221;，并基于著名科学家Leslie Lamport的Paxos算法。</p>
<p><strong>Protocol Buffer</strong></p>
<p>Protocol Buffer，是Google内部使用一种语言中立，平台中立和可扩展的序列化结构化数据的方式，并提供java、c++ 和python这三种语言的实现，每一种实现都包含了相应语言的编译器以及库文件，而且它是一种二进制的格式，所以其速度是使用xml进行数据交换的10 倍左右。它主要用于两个方面：其一是RPC通信，它可用于分布式应用之间或者异构环境下的通信。其二是数据存储方面，因为它自描述，而且压缩很方便，所以 可用于对数据进行持久化，比如存储日志信息，并可被Map Reduce程序处理。与Protocol Buffer比较类似的产品还有Facebook的Thrift，而且Facebook号称Thrift在速度上还有一定的优势。</p>
<p><strong></strong></p>
<h1>分布式大规模数据处理</h1>
<p><strong>MapReduce</strong></p>
<blockquote>
<p>首先，在Google数据中心会有大规模数据需要处理，比如被网络爬虫（Web Crawler）抓取的大量网页等。由于这些数据很多都是PB级别，导致处理工作不得不尽可能的并行化，而Google为了解决这个问题，引入了 MapReduce这个编程模型，MapReduce是源自函数式语言，主要通过&#8221;Map（映射）&#8221;和&#8221;Reduce（化简）&#8221;这两个步骤来并行处理大规 模的数据集。Map会先对由很多独立元素组成的逻辑列表中的每一个元素进行指定的操作，且原始列表不会被更改，会创建多个新的列表来保存Map的处理结 果。也就意味着，Map操作是高度并行的。当Map工作完成之后，系统会先对新生成的多个列表进行清理（Shuffle）和排序，之后会这些新创建的列表 进行Reduce操作，也就是对一个列表中的元素根据Key值进行适当的合并。</p>
<p>下图为MapReduce的运行机制：</p>
</blockquote>
<p style="text-align: center"><a href="http://public.blu.livefilestore.com/y1pd56Dd5Z-lvqPcZMorM_KCk02rcCLXnwrESBFoKvLE25MCN5OWmaLvvt_Jn9jnOGXu1VcEm3CeJp0F7QsH2XN2Q/Map%20Reduce.PNG"><img class="aligncenter" title="Map Reduce" height="412" alt="Map Reduce" src="http://public.blu.livefilestore.com/y1pd56Dd5Z-lvqPcZMorM_KCk02rcCLXnwrESBFoKvLE25MCN5OWmaLvvt_Jn9jnOGXu1VcEm3CeJp0F7QsH2XN2Q/Map%20Reduce.PNG" width="572" border="0" /></a></p>
<p align="center">图2. MapReduce的运行机制（参[19]）</p>
<blockquote>
<p>接下来，将根据上图来举一个MapReduce的例子：比如，通过搜索Spider将海量的Web页面抓取到本地的GFS 集群中，然后Index系统将会对这个GFS集群中多个数据Chunk进行平行的Map处理，生成多个Key为URL，value为html页面的键值对 （Key-Value Map），接着系统会对这些刚生成的键值对进行Shuffle（清理），之后系统会通过Reduce操作来根据相同的key值（也就是URL）合并这些键 值对。</p>
</blockquote>
<p>最后，通过MapReduce这么简单的编程模型，不仅能用于处理大规模数据，而且能将很多繁琐的细节隐藏起来，比如自动并行化，负载均衡和机器宕 机处理等，这样将极大地简化程序员的开发工作。MapReduce可用于包括&#8220;分布grep，分布排序，web访问日志分析，反向索引构建，文档聚类，机 器学习，基于统计的机器翻译，生成Google的整个搜索的索引&#8220;等大规模数据处理工作。Yahoo也推出MapReduce的开源版本Hadoop，而 且Hadoop在业界也已经被大规模使用。</p>
<p><strong>Sawzall</strong></p>
<p>Sawzall可以被认为是构建在MapReduce之上的采用类似Java语法的DSL（Domain-Specific Language），也可以认为它是分布式的AWK。它主要用于对大规模分布式数据进行筛选和聚合等高级数据处理操作，在实现方面，是通过解释器将其转化 为相对应的MapReduce任务。除了Google的Sawzall之外，yahoo推出了相似的Pig语言，但其语法类似于SQL。</p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<h1>分布式数据库技术</h1>
<p><strong>BigTable</strong></p>
<p>由于在Google的数据中心存储PB级以上的非关系型数据时候，比如网页和地理数据等，为了更好地存储和利用这些数据，Google开发了一套数 据库系统，名为&#8220;BigTable&#8221;。BigTable不是一个关系型的数据库，它也不支持关联（join）等高级SQL操作，取而代之的是多级映射的数 据结构，并是一种面向大规模处理、容错性强的自我管理系统，拥有TB级的内存和PB级的存储能力，使用结构化的文件来存储数据，并每秒可以处理数百万的读 写操作。</p>
<p>什么是多级映射的数据结构呢？就是一个稀疏的，多维的，排序的Map，每个Cell由行关键字，列关键字和时间戳三维定位．Cell的内容是一个不 解释的字符串，比如下表存储每个网站的内容与被其他网站的反向连接的文本。 反向的URL com.cnn.www是这行的关键字；contents列存储网页内容，每个内容有一个时间戳，因为有两个反向连接，所以archor的Column Family有两列：anchor: cnnsi.com和anchhor:my.look.ca。Column Family这个概念，使得表可以轻松地横向扩展。下面是它具体的数据模型图：</p>
<p style="text-align: center"><img class="aligncenter" title="Big Table Data Model" height="143" alt="Big Table Data Model" src="http://vbqnmw.blu.livefilestore.com/y1pMpu9fDZ9JIML9crpkzBJDFHhrvKxuJtJ2yrv8XMUWr948PknwcbEhRq5esPkaxvDJKUXnwxh7eJBgmJ91k-CsLMHeDzzqgwB/Big%20Table%20Model.PNG" width="604" border="0" /></p>
<p align="center">
<p align="center">图3. BigTable数据模型图（参[4]）</p>
<p>在结构上，首先，BigTable基于GFS分布式文件系统和Chubby分布式锁服务。其次BigTable也分为两部分：其一是Master节 点，用来处理元数据相关的操作并支持负载均衡。其二是tablet节点，主要用于存储数据库的分片tablet，并提供相应的数据访问，同时tablet 是基于名为SSTable的格式，对压缩有很好的支持。</p>
<p style="text-align: center"><a href="http://public.blu.livefilestore.com/y1pnNu6NW7p_u0ubd09DSGedH5M2R1yO9JBt3wvLW9w6rSF5ZiOlCJZXIg37zC9r_9ROrCqoD3hAm7yJa6Io3vcGA/BigTable.PNG"><img class="aligncenter" title="Big Table Architecture" height="315" alt="Big Table  Architecture" src="http://public.blu.livefilestore.com/y1pnNu6NW7p_u0ubd09DSGedH5M2R1yO9JBt3wvLW9w6rSF5ZiOlCJZXIg37zC9r_9ROrCqoD3hAm7yJa6Io3vcGA/BigTable.PNG" width="543" border="0" /></a></p>
<p align="center">图4. BigTable架构图（参[15]）</p>
<p>BigTable正在为Google六十多种产品和项目提供存储和获取结构化数据的支撑平台，其中包括有Google Print， Orkut，Google Maps，Google Earth和Blogger等，而且Google至少运行着500个BigTable集群。</p>
<blockquote>
<p>随着Google内部服务对需求的不断提高和技术的不断地发展，导致原先的BigTable已经无法满足用户的需求，而 Google也正在开发下一代BigTable，名为&#8220;Spanner（扳手）&#8221;，它主要有下面这些BigTable所无法支持的特性：</p>
</blockquote>
<ol>
    <li>
    <ol>
        <li>支持多种数据结构，比如table，familie，group和coprocessor等。
        <li>基于分层目录和行的细粒度的复制和权限管理。
        <li>支持跨数据中心的强一致性和弱一致性控制。
        <li>基于Paxos算法的强一致性副本同步，并支持分布式事务。
        <li>提供许多自动化操作。
        <li>强大的扩展能力，能支持百万台服务器级别的集群。
        <li>用户可以自定义诸如延迟和复制次数等重要参数以适应不同的需求。 </li>
    </ol>
    </li>
</ol>
<p><strong>数据库Sharding</strong></p>
<blockquote>
<p>Sharding就是分片的意思，虽然非关系型数据库比如BigTable在Google的世界中占有非常重要的地位，但 是面对传统OLTP应用，比如广告系统，Google还是采用传统的关系型数据库技术，也就是MySQL，同时由于Google所需要面对流量非常巨大， 所以Google在数据库层采用了分片（Sharding）的水平扩展（Scale Out）解决方案，分片是在传统垂直扩展（Scale Up）的分区模式上的一种提升，主要通过时间，范围和面向服务等方式来将一个大型的数据库分成多片，并且这些数据片可以跨越多个数据库和服务器来实现水平 扩展。</p>
<p>Google整套数据库分片技术主要有下面这些优点：</p>
</blockquote>
<ol>
    <li>
    <ol>
        <li>扩展性强：在Google生产环境中，已经有支持上千台服务器的MySQL分片集群。
        <li>吞吐量惊人：通过巨大的MySQL分片集群能满足巨量的查询请求。
        <li>全球备份：不仅在一个数据中心还是在全球的范围，Google都会对MySQL的分片数据进行备份，这样不仅能保护数据，而且方便扩展。 </li>
    </ol>
    </li>
</ol>
<p>在实现方面，主要可分为两块：其一是在MySQL InnoDB基础上添加了数据库分片的技术。其二是在ORM层的Hibernate的基础上也添加了相关的分片技术，并支持虚拟分片（Virtual Shard）来便于开发和管理。同时Google也已经将这两方面的代码提交给相关组织。</p>
<h1>数据中心优化技术</h1>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong></strong></p>
<p><strong>数据中心高温化</strong></p>
<p>大中型数据中心的PUE（Power Usage Effectiveness）普遍在2左右，也就是在服务器等计算设备上耗1度电，在空调等辅助设备上也要消耗一度电。对一些非常出色的数据中心，最多也 就能达到1.7，但是Google通过一些有效的设计使部分数据中心到达了业界领先的1.2，在这些设计当中，其中最有特色的莫过于数据中心高温化，也就 是让数据中心内的计算设备运行在偏高的温度下，Google的能源方面的总监Erik Teetzel在谈到这点的时候说：&#8220;普通的数据中心在70华氏度（21摄氏度）下面工作，而我们则推荐80华氏度（27摄氏度）&#8220;。但是在提高数据中心 的温度方面会有两个常见的限制条件：其一是服务器设备的崩溃点，其二是精确的温度控制。如果做好这两点，数据中心就能够在高温下工作，因为假设数据中心的 管理员能对数据中心的温度进行正负1/2度的调节，这将使服务器设备能在崩溃点5度之内工作，而不是常见的20度之内，这样既经济，又安全。还有，业界传 言Intel为Google提供抗高温设计的定制芯片，但云计算界的顶级专家James Hamilton认为不太可能，因为虽然处理器也非常惧怕热量，但是与内存和硬盘相比还是强很多，所以处理器在抗高温设计中并不是一个核心因素。同时他也 非常支持使数据中心高温化这个想法，而且期望将来数据中心甚至能运行在40摄氏度下，这样不仅能节省空调方面的成本，而且对环境也很有利。</p>
<h1><strong></strong></h1>
<p><strong>12V电池</strong></p>
<blockquote>
<p>由于传统的UPS在资源方面比较浪费，所以Google在这方面另辟蹊径，采用了给每台服务器配一个专用的12V电池的做 法来替换了常用的UPS，如果主电源系统出现故障，将由该电池负责对服务器供电。虽然大型UPS可以达到92%到95%的效率，但是比起内置电池的 99.99%而言是非常捉襟见肘的，而且由于能量守恒的原因，导致那么未被UPS充分利用的电力会被转化成热能，这将导致用于空调的能耗相应地攀升，从而 走入一个恶性循环。同时在电源方面也有类似的&#8220;神来之笔&#8221;，普通的服务器电源会同时提供5V和12V的直流电。但是Google设计的服务器电源只输出 12V直流电，必要的转换在主板上进行，虽然这种设计会使主板的成本增加1美元到2美元，但是它不仅能使电源能在接近其峰值容量的情况下运行，而且在铜线 上传输电流时效率更高。</p>
</blockquote>
<p><strong>服务器整合</strong></p>
<p>谈到虚拟化的杀手锏时，第一个让人想到肯定是服务器整合，而且普遍能实现1:8的整合率来降低各方面的成本。有趣的是，Google在硬件方面也引 入类似服务器整合的想法，它的做法是在一个机箱大小的空间内放置两台服务器，这些做的好处有很多，首先，减小了占地面积。其次，通过让两台服务器共享诸如 电源等设备，来降低设备和能源等方面的投入。<br />
<br />
来源：<a href="http://www.chinakdd.com/portal.php?mod=view&amp;aid=125347">http://www.chinakdd.com/portal.php?mod=view&amp;aid=125347</a><br />
</p>
<img src ="http://www.blogjava.net/huqingcheng/aggbug/333656.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-10-02 17:12 <a href="http://www.blogjava.net/huqingcheng/articles/333656.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>soso ---定义</title><link>http://www.blogjava.net/huqingcheng/articles/333655.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Sat, 02 Oct 2010 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/333655.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/333655.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/333655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/333655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/333655.html</trackback:ping><description><![CDATA[<pre _extended="true">云计算是什么楼上已经说了，我再来补充下<br _extended="true" />
云计算具有以下特点：<br _extended="true" />
　　(1) 超大规模。&#8220;云&#8221;具有相当的规模，Google云计算已经拥有100多万台服务器， Amazon、IBM、微软、Yahoo等的&#8220;云&#8221;均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。&#8220;云&#8221;能赋予用户前所未有的计算能力。<br _extended="true" />
　　(2) 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自&#8220;云&#8221;，而不是固定的有形的实体。应用在&#8220;云&#8221;中某处运行，但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机，就可以通过网络服务来实现我们需要的一切，甚至包括超级计算这样的任务。<br _extended="true" />
　　(3) 高可靠性。&#8220;云&#8221;使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性，使用云计算比使用本地计算机可靠。<br _extended="true" />
　　(4) 通用性。云计算不针对特定的应用，在&#8220;云&#8221;的支撑下可以构造出千变万化的应用，同一个&#8220;云&#8221;可以同时支撑不同的应用运行。<br _extended="true" />
　　(5) 高可扩展性。&#8220;云&#8221;的规模可以动态伸缩，满足应用和用户规模增长的需要。<br _extended="true" />
　　(6) 按需服务。&#8220;云&#8221;是一个庞大的资源池，你按需购买；云可以象自来水，电，煤气那样计费。 <br _extended="true" />
　　(7) 极其廉价。由于&#8220;云&#8221;的特殊容错措施可以采用极其廉价的节点来构成云，&#8220;云&#8221;的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本，&#8220;云&#8221;的通用性使资源的利用率较之传统系统大幅提升，因此用户可以充分享受&#8220;云&#8221;的低成本优势，经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。 <br _extended="true" />
　　云计算可以彻底改变人们未来的生活，但同时也用重视环境问题，这样才能真正为人类进步做贡献,而不是简单的技术提升。</pre>
<pre _extended="true"><a href="http://wenwen.soso.com/z/q139770640.htm?w=%D4%C6%BC%C6%CB%E3%BC%BC%CA%F5&amp;spi=1&amp;sr=3&amp;w8=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%8A%80%E6%9C%AF&amp;qf=20&amp;rn=487&amp;qs=4&amp;ch=w.search.3">http://wenwen.soso.com/z/q139770640.htm?w=%D4%C6%BC%C6%CB%E3%BC%BC%CA%F5&amp;spi=1&amp;sr=3&amp;w8=%E4%BA%91%E8%AE%A1%E7%AE%97%E6%8A%80%E6%9C%AF&amp;qf=20&amp;rn=487&amp;qs=4&amp;ch=w.search.3</a></pre>
<pre _extended="true">&nbsp;</pre>
<pre _extended="true">&nbsp;</pre>
<img src ="http://www.blogjava.net/huqingcheng/aggbug/333655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-10-02 17:07 <a href="http://www.blogjava.net/huqingcheng/articles/333655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>云计算--概念</title><link>http://www.blogjava.net/huqingcheng/articles/333654.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Sat, 02 Oct 2010 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/333654.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/333654.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/333654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/333654.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/333654.html</trackback:ping><description><![CDATA[<p done0="36">感谢 <a href="http://blog.sina.com.cn/pentest" target="_blank" jquery1286009581734="21">克莱沃曼</a> 的投递。<br />
我想现在几乎没有人没有听说过&#8220;云计算&#8221;这个术语了，但是能明白云计算是怎么回事的人可能就是少数了，而在云计算的理解上也是因人而异，可能非常不同。这也不算不正常，因为云计算只是个概念，是个方向，很多时候大家都只是看到，抓到，感受到那么一点点，好比盲人摸象。就算大公司的理解也是千差万别，更何况每一个人了。我今天想通过对比微软和Google的云计算的基础技术来阐述一下自己对云计算的理解。首先我想澄清一些概念：</p>
<p></p>
<ul>
    <li>云计算：现在最泛泛的概念就是云计算了。由于计算是其中的重点，我们经常把云上的所有东西统称为云计算，这就很容易使人感到迷惑。我个人认为云计算有两种context，一个就是计算，发生在云上的计算。另外一个是我刚提到的泛泛的概念，比如把云存储也归于云计算了。所以大家看相关文章的时候，一旦看到云计算要搞清楚context，否则就容易迷糊。而且我发现很多文章的作者本身对这两个概念也很迷糊。我在跟很多人讨论云计算的时候，也正是这个原因使得讨论无法进行。我个人倾向于把云和云计算区分开，就像把计算机和CPU的概念区分开，虽然CPU是计算机的核心。当然，这不是由我来作主的。
    <li>Server和client：我发现在讨论云计算的时候，不但需要区分上边讲的两个context，还需要区分server端和client端。如果从计算的角度来说，那当然server端是重点了，毕竟计算在server上产生。可是如果从云的整体来说，server端和client端就都很重要。而如果从用户的角度来讲，那就应该是client端最重要了，因为计算的发生对用户来讲是透明的，而client端的交互最重要。很多时候在讨论云计算的时候，人们竟然把client端跟server端混着来讨论。比如我在写livemesh与云计算的文章的时候，很多人竟然把windows azure拿进来讨论。我最近还看到有些文章竟然拿Chrome OS和Winows Azure进行讨论。
    <li>由于以上原因，为了减少混乱，我会把云计算按照计算的context来讲，而把泛泛的概念直接称为云。我在讨论技术的时候，会把他们分为client和server端分别进行比较的。
    <li>Cloud OS与Web OS。在云计算概念流行以前，人们更多的是谈论Web OS。现在人们谈论的更多的是云计算，因此Cloud OS和Web OS的概念就又混淆了。可能不少人认为是一个东西，可是从我个方面的得到的信息来看，我们基本上可以用client/server端来区分他们。Cloud OS是server端的，比如微软的windows azure就号称Cloud OS。而Web OS则是客户端的，比如市面上的各种号称Web OS的网站，比如Facebook，比如Google的Chrome Browser，Chrome OS等等。目前来讲，Web OS还没有明确的概念，所有产品基本都是试验性质的，但是Web OS在client端还是比较明确的。
    <li>对于云来讲，不同的人关心的重点不同。网络服务提供商，开发人员关心的是server端的cloud OS，而用户关心的是client端的web os。因此，对于大多数人都作为普通用户来讲，就没有太大必要去注意server端的那些新技术，新术语了，也不要被他们的出现搞糊涂了。 </li>
</ul>
<p>下面的表格列出了微软和Google公司云计算基础技术和产品，随后有我个人的讲解。</p>
<p><img class="aligncenter size-full wp-image-8522" title="20090813-ms-goog-cloud" height="129" alt="20090813-ms-goog-cloud" src="http://google.org.cn/wp-content/uploads/2009/08/20090813-ms-goog-cloud.jpg" width="465" /></p>
<ul>
    <li>Cloud OS：由于Google App Engine只支持Python和Java，而我不想学Python也不喜欢Java，所以没有任何体验。而Windows Azure则体现出了微软强大的实力。从下至上，除了hardware则清一色使用微软自己的产品。OS: Server2008, VM: Hyper-V, Host: IIS, Dev tools: Visual Studio。从Azure来看，微软在云上开发了一套开发平台，从而改变了网络服务提供商的经营和开发模式。他们不再需要买自己的服务器，而转为租用微软的虚拟机，开发则是通过微软提供的接口开发在IIS上的web服务。重点是他们不需要考虑sacalability，而是按计算的需要和使用情况向微软付钱，就好比我们现在买电一样。而云计算的提供商则相当于现在的电力公司一样，使得计算变成一种资源去交易。由于我不是搞这行的，所以，我更多的注意力放在了client端。
    <li>RIA：要想建立client端的Web OS，则需要依赖于rich internet application。这方面的技术主要有三种，Adobe的Flash，微软的Silverlight以及Google推崇的AJAX。以前用过一些Web OS都是建立在Flash上, 我就感觉很别扭。一是因为既然是OS还需要依赖Flash？二是因为点右键总是有个Adobe的影子，而且不能customize。其实也正是因为这个原因使得Google在很早就放弃使用Flash了，而进行了更灵活的Javascript的大力支持。微软的Silverlight则正像是Flash的翻版，到现在为止我基本上没看到过什么基于Silverlight的应用，好像主要是播放视频。而Google自己基于javascript的Gmail, reader, 以及最近公布的集大成的Ajax的顶尖作品Google Wave等，都让我在RIA这个方向上很支持Google。
    <li>Browser：前边说过Google大力推行Javascript，而运行速度慢是Javascript的一个致命的问题，使得在和Flash, Silverlight的竞争中处于劣势。基于这个原因，Google推出了自己的Browser Chrome，并且内嵌了V8的JS的引擎，使得javascript的运行效率大大提高，从而可以用javascript开发出更高级的界面。比如，我看过JS实现的一些SD，动画的demo，都还是比较出色。而Chrome又大力支持HTML5，其中重要的一点是支持了视频，从而使得Flash和Silverlight的竞争力进一步降低。而且，javascript的好处在于浏览器本身就支持，不用像Flash, Silverlight还需要单独安装。进一步说，Chrome对JS的优化直接推动了Firefox和IE对JS的优化，而JS的运行效率也成为了浏览器的最重要的指标之一，使得Javascript的前景更加的光明。
    <li>Web OS：现在已经比较明确的看出来了Google的Web OS就是即将公开源代码的Chrome OS，而对于普通用户来讲，Chrome OS和Chrome Browser基本就是一个东西。因为普通用户对那块Linux内核是透明的，也是不在乎的。所以，我们只要看Chrome Browser的发展，就应该能推断出Chrome OS大概的样子。Chrome OS最大的焦点在于替换掉Windows，而Chrome Browser将要增加的同步功能，使得Google的Web OS更加完善，而谣传了许久的GDrive如果能够稍后推出的话，则Google的Web OS将基本成形。微软目前并没有一个所谓的Web OS，而最像Web OS的产品则是Live Mesh。Live Mesh我以前已经谈论过了，就不再重复了，简单来讲我很失望。
    <li>Offline：云计算的一个重大问题就是离线怎么办？这也是很多人质疑云计算的一个主要原因。Google的解决方案是Google Gears, 它内嵌于Chrome里，也可以安装到其他浏览器上。Google Gears使得用户在离线的时候还可以访问，操作数据。微软的主要解决方案是Mesh, 通过同步各种设备。最新的Silverlight也加入了一定的离线支持。
    <li>OOB (Out of Browser): 在浏览器中运行的Web应用界面与传统桌面软件比起来总是死板，不够灵活的。因此，人们就产生了需求，想在浏览器之外运行web应用。Adobe的Air可以实现这个功能，而Google的解决方案是Chrome里的shortcuts。给Web应用建立了shortcuts之后，就可以按照人们习惯的方式启动这个应用，而界面也很传统软件非常接近了。微软的解决方案则是Mesh, 或者最新的Silverlight OOB功能。 </li>
</ul>
<p>综上所述，我们可以清楚地看到，Google的云技术的client端的核心就是Chrome浏览器，所有相关的技术都嵌入到了浏览器中，甚至操作系统的内核也算嵌到了浏览器中，这也是为什么Google为它Browser和OS起了一个同样的名字。所以，我们可以说Google Chrome未来就是一个Web OS。而反观微软，则是把这些feature分散在了几个不同的产品中：Windows, IE, Silverlight, Live Mesh，并没有一个统一的解决方案。因此，在云计算的战略上，还是感觉Google比微软看的更高更远一些</p>
<img src ="http://www.blogjava.net/huqingcheng/aggbug/333654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-10-02 17:02 <a href="http://www.blogjava.net/huqingcheng/articles/333654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>云存储中</title><link>http://www.blogjava.net/huqingcheng/articles/332854.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Sat, 25 Sep 2010 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/332854.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/332854.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/332854.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/332854.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/332854.html</trackback:ping><description><![CDATA[<p align="center">&nbsp;</p>
<a href="http://www.snwchina.org/">http://www.snwchina.org</a>（
<table cellspacing="0" cellpadding="0" width="740" align="center" border="0">
    <tbody>
        <tr>
            <td><span class="font_02">Storage Networking Word </span></td>
        </tr>
    </tbody>
</table>
）<br />
<a href="http://www.sniachina.org/news_list.php?id=207">http://www.sniachina.org/news_list.php?id=207</a>（Advancing storage and information technology）<br />
<img src ="http://www.blogjava.net/huqingcheng/aggbug/332854.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-09-25 16:41 <a href="http://www.blogjava.net/huqingcheng/articles/332854.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cassandra </title><link>http://www.blogjava.net/huqingcheng/articles/332706.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Thu, 23 Sep 2010 13:33:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/332706.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/332706.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/332706.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/332706.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/332706.html</trackback:ping><description><![CDATA[cite from http://baike.baidu.com/view/1350234.htm?fr=ala0_1_1
<div class="text_pic" style="float: right; visibility: visible; width: 96px; position: relative"><a class="pic-handle" title="查看图片" href="http://baike.baidu.com/image/246cca2a6190c187023bf666" target="_blank">&nbsp;&nbsp;</a><a href="http://baike.baidu.com/image/246cca2a6190c187023bf666" target="_blank"><img class="editorImg" title="" src="http://imgsrc.baidu.com/baike/abpic/item/246cca2a6190c187023bf666.jpg"  alt="" /></a>
<p class="pic-info">&nbsp;&nbsp;</p>
</div>
<br />
Cassandra
<div class="spctrl"></div>
　　计算机方面
<div class="spctrl"></div>
　　Cassandra是一个混合型的非关系的数据库，类似于Google的BigTable。其主要功能比Dynomite（分布式的Key-Value存储系统）更丰富，但支持度却不如文档存储MongoDB（介于关系数据库和非关系数据库之间的开源产品，是非关系数据库当中功能最丰富，最像关系数据库的。支持的数据结构非常松散，是类似json的bjson格式，因此可以存储比较复杂的数据类型。）Cassandra最初由Facebook开发，后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以Amazon专有的完全分布式的Dynamo为基础，结合了Google BigTable基于列族（Column Family）的数据模型。P2P去中心化的存储。很多方面都可以称之为Dynamo 2.0。
<div class="spctrl"></div>
　　<strong>功能</strong>
<div class="spctrl"></div>
　　Cassandra的主要特点就是它不是一个数据库，而是由一堆数据库节点共同构成的一个分布式网络服务，对Cassandra 的一个写操作，会被复制到其他节点上去，对Cassandra的读操作，也会被路由到某个节点上面去读取。对于一个Cassandra群集来说，扩展性能是比较简单的事情，只管在群集里面添加节点就可以了。&nbsp;
<div class="spctrl"></div>
　　这里有很多理由来选择Cassandra用于您的网站。和其他数据库比较，有三个突出特点：
<div class="spctrl"></div>
　　<strong>模式灵活</strong> ：使用Cassandra，像文档存储，你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升，特别是在大型部署上。
<div class="spctrl"></div>
　　<strong>真正的可扩展性</strong> ：Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量，可以指向另一台电脑。你不必重启任何进程，改变应用查询，或手动迁移任何数据。
<div class="spctrl"></div>
　　<strong>多数据中心识别</strong>&nbsp;：你可以调整你的节点布局来避免某一个数据中心起火，一个备用的数据中心将至少有每条记录的完全复制。
<div class="spctrl"></div>
　　一些使Cassandra提高竞争力的其他功能：
<div class="spctrl"></div>
　　<strong>范围查询</strong> ：如果你不喜欢全部的键值查询，则可以设置键的范围来查询。
<div class="spctrl"></div>
　　<strong>列表数据结构</strong> ：在混合模式可以将超级列添加到5维。对于每个用户的索引，这是非常方便的。
<div class="spctrl"></div>
　　<strong>分布式写操作</strong> ：有可以在任何地方任何时间集中读或写任何数据。并且不会有任何单点失败。
<div class="spctrl"></div>
　　<strong>应用客户</strong>：twitter、facebook
<div class="spctrl"></div>
　　Cassandra 
<img src ="http://www.blogjava.net/huqingcheng/aggbug/332706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-09-23 21:33 <a href="http://www.blogjava.net/huqingcheng/articles/332706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NoSQL 引用again</title><link>http://www.blogjava.net/huqingcheng/articles/332703.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Thu, 23 Sep 2010 13:21:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/332703.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/332703.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/332703.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/332703.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/332703.html</trackback:ping><description><![CDATA[<p>NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与 ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构，通常也不存在连接 操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 当今的应用体系结构需要数据存储在横向伸缩性 上能够满足需求。而 NoSQL 存储就是为了实现这个需求。Google 的 BigTable 与 Amazon 的 Dynamo 是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系，如Facebook 的 Cassandra ， Apache 的 HBase ，也得到了广泛认同。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 如果您刚接触 NoSQL，那有必要学习一些背景知识。下列资料是国外一前沿技术分析师 认为非常有价值的 NoSQL 相关必读资料：</p>
<p><br />
Amazon Dynamo 论文 。几乎所有懂 NoSQL 的人都阅读过它。 <br />
Google 的 Bigtable 论文 。 也许您已经耳熟能详。 <br />
Werner Vogels 的 &#8220;Eventually Consistent&#8221; （发布于 ACM Queue ）。如果您对&#8220;最终一致性 &#8221;不是非常清晰，请阅读这篇文章。 <br />
Brewer 的 CAP 理论 （可伸缩性的基础）在这里 可以找到非常好的诠释。也可以看看 2000 7 月 PODC 上 Brewer的原始幻灯片 。 <br />
在 2009 年 6 月在 SFO 的 NoSQL 见面会的幻灯片 。这些资料可以用经典的、关键的、将影响巨大的、值得纪念的来形容。 <br />
SQL Databases Don't Scale 是一篇简短、基础、直切问题的文章。除非您是一位在伸缩性问题 上身经百战的数据库管理员，否则，这篇文章讲述的内容对于您可能是非常关键的。 <br />
Jonathan Ellis 的文章 NoSQL Ecosystem 以表格的方式对当今主流的分布式数据库 做了比较。类似的比较还有 Quick Reference to Alternative data storages 。Ellis 的文章除了表格对比外对于想了解 NoSQL 生态的人来说是非常值得一读的，该文章内涵丰富，短小精悍；而 Quick Reference to Alternative data storages 主要是表格，这些表格对比的内容又比 Ellis 的完整。 <br />
相关国外资源 <br />
&nbsp;&nbsp;&nbsp; http://nosql-databases.org —— 该站点的标语是：&#8220;非关系型世界的终结向导！&#8221;，该站点非常确信自己是：&#8220;在互联网上拥有 NoSQL 相关链接最多的网站。&#8221;总之，该网站值得关注。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 另外，作为 NoSQL 极客（geeks），请 follow @nosqlupdate 。另外，请 follow @al3xandru （MyNoSQL blog 与 NoSQL Week in Review 的创建者）。NoSQL Week in Review 比较新，希望能保持正常更新，因为它确实很棒！<br />
&nbsp;&nbsp;&nbsp;&nbsp; 当然，您还可以看看 Ricky Ho 最近的博文，他总结了一些分布式数据存储技术关键点。他的博文中有两篇非常值得一看的文章：Query Processing for NoSQL Databases ，还有 NoSQL Design Patterns 。</p>
<p>相关国内资源 <br />
Tim[后端技术] ：分布式 Key Value Store 漫谈 <br />
CSDN 新闻频道 ：豆瓣开源 Key Value 存储系统 BeansDB <br />
robbin的自言自语 ：NoSQL数据库探讨之一 <br />
J道 BanQ ：CAP 原理和 BASE 思想 </p>
<p>来源：NoSQL Required Reading ，Wikipedia - NoSQL </p>
<p>编者简介：丁亮，CSDN 特约记者，软件设计师。网络ID：88250，Linux、Open Source 热爱者，擅长 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JavaSE / JavaEE 开发，熟悉 JSF、EJB、Spring、Seam、OSGi 等框架应用的架构与开发，目前<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 正在深入学习 OOAD 与敏捷过程。</p>
<p><br />
本文来自CSDN博客，转载请标明出处：http://blog.csdn.net/DL88250/archive/2010/01/14/5191092.aspx</p>
<img src ="http://www.blogjava.net/huqingcheng/aggbug/332703.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-09-23 21:21 <a href="http://www.blogjava.net/huqingcheng/articles/332703.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>引用“NoSQL数据库笔谈”</title><link>http://www.blogjava.net/huqingcheng/articles/332702.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Thu, 23 Sep 2010 13:18:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/332702.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/332702.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/332702.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/332702.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/332702.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: NoSQL数据库笔谈 颜开v0.22010.2     序    思想篇            CAP        最终一致性                    变体                 BASE        其他                    I/O的五分钟法则            不要删除数据...&nbsp;&nbsp;<a href='http://www.blogjava.net/huqingcheng/articles/332702.html'>阅读全文</a><img src ="http://www.blogjava.net/huqingcheng/aggbug/332702.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-09-23 21:18 <a href="http://www.blogjava.net/huqingcheng/articles/332702.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>The groups is studying the  Clouds</title><link>http://www.blogjava.net/huqingcheng/articles/332690.html</link><dc:creator>披着狼皮的羊</dc:creator><author>披着狼皮的羊</author><pubDate>Thu, 23 Sep 2010 09:07:00 GMT</pubDate><guid>http://www.blogjava.net/huqingcheng/articles/332690.html</guid><wfw:comment>http://www.blogjava.net/huqingcheng/comments/332690.html</wfw:comment><comments>http://www.blogjava.net/huqingcheng/articles/332690.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huqingcheng/comments/commentRss/332690.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huqingcheng/services/trackbacks/332690.html</trackback:ping><description><![CDATA[http://code.google.com/intl/zh-CN/appengine/<br />
http://www.microsoft.com/windowsazure/<br />
http://hadoop.apache.org/<br />
http://open.eucalyptus.com/<br />
<h1>Learn about could computing</h1>
<p><strong>What is cloud computing?</strong></p>
<p>Cloud computing is the access to computers and their functionality via the Internet or a local area network. Users of a cloud request this access from a set of web services that manage a pool of computing resources (i.e., machines, network, storage, operating systems, application development environments, application programs). When granted, a fraction of the resources in the pool is dedicated to the requesting user until he or she releases them. It is called &#8220;cloud computing&#8221; because the user cannot actually see or specify the physical location and organization of the equipment hosting the resources they are ultimately allowed to use. That is, the resources are drawn from a &#8220;cloud&#8221; of resources when they are granted to a user and returned to the cloud when they are released. A &#8220;cloud&#8221; is a set of machines and web services that implement cloud computing.</p>
<p><strong>What is the relationship between virtualization and cloud computing?</strong></p>
<p>Virtualization is the ability to run &#8220;virtual machines&#8221; on top of a &#8220;hypervisor.&#8221; A virtual machine (VM) is a software implementation of a machine (i.e., a computer) that executes programs like a physical machine. Each VM includes its own kernel, operating system, supporting libraries and applications. A hypervisor provides a uniform abstraction of the underlying physical machine. Multiple VMs can execute simultaneously on a single hypervisor. The decoupling of the VM from the underlying physical hardware allows the same VM to be started on different physical machines. Thus virtualization is seen as an enabler for cloud computing, allowing the cloud computing provider the necessary flexibility to move and allocate the computing resources requested by the user wherever the physical resources are available.</p>
<p><strong>How are clouds classified?</strong></p>
<p>Given the broad definition of the term &#8220;cloud,&#8221; the current taxonomy differentiates clouds both in terms of cloud service offerings and cloud types. When categorizing cloud service offerings we often refer to clouds in terms of "service style" depending on the portion of the software stack delivered as a service. Here we discuss the most common service styles referred to by the acronyms <em>IaaS, PaaS, and SaaS</em>. Cloud "types" (including <em>public, private, and hybrid</em>) refer to the nature of access and control with respect to use and provisioning of virtual and physical resources.</p>
<p><strong>What are the most popular cloud service styles?</strong></p>
<p><em>IaaS</em></p>
<p>IaaS (Infrastructure as as Service) style clouds provide access to collections of virtualized computer hardware resources, including machines, network, and storage. With IaaS, users assemble their own virtual cluster on which they are responsible for installing, maintaining, and executing their own software stack. </p>
<p><em>PaaS</em></p>
<p>PaaS (Platform as a Service) style clouds provide access to a programming or runtime environment with scalable compute and data structures embedded in it. With PaaS, users develop and execute their own applications within an environment offered by the service provider. </p>
<p><em>SaaS</em></p>
<p>SaaS (Software as a Service) style clouds deliver access to collections of software application programs. SaaS providers offer users access to specific application programs controlled and executed on the provider's infrastructure. SaaS is often referred to as "Software on Demand."</p>
<p><strong>What are cloud types?</strong></p>
<p><em>Public cloud</em></p>
<p>Public clouds provide access to computing resources for the general public over the Internet. The public cloud provider allows customers to self-provision resources typically via a web service interface. Customer's rent access to resources as needed on a pay-as-you-go basis. Public clouds offer access to large pools of scalable resources on a temporary basis without the need for capital investment in data center infrastructure. </p>
<p><em>Private cloud</em></p>
<p>Private clouds give users immediate access to computing resources hosted within an organization's infrastructure. Users self-provision and scale collections of resources drawn from the private cloud, typically via web service interface, just as with a public cloud. However, because it is deployed within the organization's existing data center—and behind the organization's firewall—a private cloud is subject to the organization's physical, electronic, and procedural security measures and thus offers a higher degree of security over sensitive code and data. In addition, private clouds consolidate and optimize the performance of physical hardware through virtualization, and can thus markedly improve data center efficiency while reducing operational expense.</p>
<p><em>Hybrid cloud</em></p>
<p>A hybrid cloud combines computing resources (e.g., machines, network, storage, etc.) drawn from one or more public clouds and one or more private clouds at the behest of its users.</p>
<p><strong>Why Cloud Computing?</strong></p>
<p>Cloud computing is seen by some as an important forward-looking model for the distribution and access of computing resources because it offers these potential advantages:</p>
<ul>
    <li>Self-service provisioning: Allows users to deploy their own sets of computing resources (machines, network, storage, etc.) as needed without the delays and complications typically involved in resource acquisition; IT supprts ongoing customization and enhancement of cloud user experience, while monitoring, managing, and expanding as required the underlying cloud infrastructure.
    <li>Scalability: Decouples the fluctuating needs of individual users from typical infrastructure constraints, thus easily accommodating rapid increases or decreases in resource demand.
    <li>Reliability and fault-tolerance: IT can focus on improving critical pieces of infrastructure to achieve pre-determined levels of reliability. Policies addressing expected levels of reliability can be continuosly reassessed and updated without user involvement.
    <li>Optimization/Consolidation: Maximizes the usage and increases the efficiency of existing infrastructure resources. Extends infrastructure lifecycle. Reduces capital expenditure.
    <li>QoS (Quality of Service): Allows IT to dynamically reassess the SLA associated with users or groups of users for the resources allocated. Allows the organization to react quickly to changing conditions without unnecessary user involvement or knowledge.
    <li>Well defined API: Using a well-defined and stable industry standard API avoids lock-in and ensures interoperability with an ever-growing number of tools and cloud service providers.
    <li>As-needed availability: Aligns resource expenditure with actual resource usage thus allowing the organization to pay only for the resources required, when they are required. </li>
</ul>
<p><strong>What is the Eucalyptus Cloud platform?</strong></p>
<p>Eucalyptus is software that implements scalable IaaS-style private and hybrid clouds. The Eucalyptus architecture is highly modular with internal components consisting of Web services, which make them easy to replace and expand. Eucalyptus' flexibility enables it to export a variety of APIs towards users via client tools. Currently Eucalyptus implements the Amazon Web Service (AWS) API, which allows interoperability with existing AWS-compatible services and tools. This also allows Eucalyptus users to group resources drawn both from an internal private cloud and external public clouds to form a hybrid cloud</p>
<br />
http://sector.sourceforge.net/<br />
<p>Sector/Sphere supports distributed data storage, distribution, and processing over large clusters of commodity computers, either within a data center or across multiple data centers. Sector is a high performance, scalable, and secure distributed file system. Sphere is a high performance parallel data processing engine that can process Sector data files on the storage nodes with very simple programming interfaces. (<a href="http://sector.sourceforge.net/pub/sector-sphere-2009.ppt" target="_blank">Presentation: PPT 2.2MB </a>/<a href="http://sector.sourceforge.net/pub/sector-sc08-poster.pdf" target="_blank"> Poster: PDF 283KB </a>)</p>
 <img src ="http://www.blogjava.net/huqingcheng/aggbug/332690.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huqingcheng/" target="_blank">披着狼皮的羊</a> 2010-09-23 17:07 <a href="http://www.blogjava.net/huqingcheng/articles/332690.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>