文档数据库
? 源起:受Lotus Notes启发。
?
?
? 数据模型:包含了key-value的文档集合 例子:CouchDB, MongoDB 优点:数据模型自然,编程友好,快速开发,web友好,CRUD。 图数据库
?
?
?
? 源起: 欧拉和图理论。 数据模型:节点和关系,也可处理键值对。 例子:AllegroGraph, InfoGrid, Neo4j 优点:解决复杂的图问题。
关系数据库
?
?
?
? 源起: E. F. Codd 在A Relational Model of Data for Large Shared Data Banks提出的 数据模型:各种关系 例子:VoltDB, Clustrix, MySQL 优点:高性能、可扩展的OLTP,支持SQL,物化视图,支持事务,编程友好。 对象数据库
?
?
?
? 源起:图数据库研究 数据模型:对象 例子:Objectivity, Gemstone 优点:复杂对象模型,快速键值访问,键功能访问,以及图数据库的优点。 Key-Value数据库
?
?
?
? 源起:Amazon的论文 Dynamo 和 Distributed HashTables。 数据模型:键值对 例子:Membase, Riak 优点:处理大量数据,快速处理大量读写请求。编程友好。
BigTable类型数据库
?
? 源起:Google的论文 BigTable。 数据模型:列簇,每一行在理论上都是不同的
?
? 例子:HBase, Hypertable, Cassandra 优点:处理大量数据,应对极高写负载,高可用,支持跨数据中心, MapReduce。 数据结构服务
?
?
?
? 源起: ? 数据模型:字典操作,lists, sets和字符串值 例子:Redis 优点:不同于以前的任何数据库
网格数据库
?
?
?
? 源起:数据网格和元组空间研究。 数据模型:基于空间的架构 例子:GigaSpaces, Coherence 优点:适于事务处理的高性能和高扩展性
你的应用应该用什么?
?
? 关键是要意识到不同的应用需要不同的数据模型和产品。选择合适的数据模型和产品。 要了解你的应用需要什么样的数据模型可以看 What The Heck Are You Actually Using NoSQL
For? 在这篇文章里我总结了一些特色各异的非常规的使用场景。
? 适应你的需求和应用场景。依次而为你就能找到最适合你的架构的产品。无论NoSQL还是SQL都
不重要。
? 综合考虑数据模型、产品特性和应用情景。不同产品功能各异,只凭数据模型来决定选择谁是不
可能的。
? 哪个产品具有你最需要的特点哪个就是最好的。
假如你的应用有以下需求:
? 复杂事物,如果你不能承受数据丢失的风险或者你想要一个简单的事务编程模型可以选择关系数
据库和网格数据库。
? 例子:一个库存系统需要完整的ACID特性。如果我在买了一个东西后才被告知它已经售罄我会非
常不快。不不想要补偿,我只要我买的东西。
? 扩展性,NoSQL或SQL皆可,目标产品要支持水平扩展、分区、在线增减硬件、负载均衡、自动
分片、数据平衡和容错等特性。
?
? 追求高可用性,可用Bigtable类型的等支持最终一致性的数据库。 需要处理长期的快速读写,可以看看文档数据库,Key-value数据库或者内存数据库,还可以考
虑SSD。
? 要实现社会化网络,第一选择应该是图数据库。其次像Riak这样支持关系的数据库也可以。一个
支持简单SQL join操作的内存关系数据库能够处理数据量不大的情况。Redis’ set 和list 操作就是这样。
假如你的应用有以下需求:
?
? 需要不同的访问方式和数据类型的话可以看看文档数据库,它们在这方面很灵活。 大数据量的离线分析首先应该考虑Hadoop,其次是其他支持MapReduce的产品。当然,支持
MapReduce与擅长MapReduce处理不是一回事。
? 如需跨越多个数据中心,可选用基于Bigtable模型的产品,或其分布式的,能解决延迟问题,分
区容错性问题的产品
?
?
? CRUD类型的应用可以考虑文档数据库,这样不需要join就可访问复杂的数据结构。 搜索可以考虑Riak。 需要lists, sets, queues, publish-subscribe等数据结构的话,可以考虑Redis,它的分布式
锁等特性也非常有用。
? 编程友好,如果要使用JSON, HTTP, REST, Javascript等程序员喜闻乐见的数据类型,第一选择
就是文档数据库和Key-value数据库。
假如你的应用有以下需求:
?
?
? 用于实时事务处理的物化视图,可以考虑VoltDB,非常适合于快速处理大量事务。 企业级支持及服务级协议 ,可以寻找市场上以此为卖点的产品,如Membase。 要记录连续的大量数据,又对一致性无太高要求,可以看看Bigtable类型数据库,因为它工作在
分布式文件系统上,可以处理大规模的写入请求。
?
?
? 需要尽可能使用简单,请考虑PAAS方案,用这种方案你自己几乎不需要做什么。 如果你的产品要卖给企业客户请考虑关系数据库,因为他们习惯于关系数据库。 要动态构建对象间的关系,对象的属性能够动态加减,可以考虑图数据库,因为它不需要schema,
可以在代码中随需建模。
? 要支持大影音文件,可以看看像S3这样的存储服务。NoSQL不适于存储BLOBS,尽管MongoDB也
提供了文件服务。
假如你的应用有以下需求:
?
? 要快速批量上传大量数据,得寻找支持这种场景的产品。但是大多数产品都不支持批量操作。 易于变化,要选择支持动态schema的文档数据库和 Key-value数据库。它支持可选域,不需要
修改schema即可增加、减少域。
?
?
? 为了支持完整性约束,选择支持SQL DDL的数据库,可以在存储过程或者应用代码中实现。 深度连接用图数据库,它支持实体键间的快速定位。 为了让计算靠近数据,减少数据在网络中传送的开销,可以考虑存储过程。关系数据库,网个数
据库,文档数据库和Key-value数据库都支持存储过程。
假如你的应用有以下需求:
? 要存储BLOB数据,可选择Key-value数据库。它可以存储网页或者复杂对象,后者在关系数据库
中要用join才能获取,代价高昂。还可以降低延迟。
? 选择一个经过验证的成熟产品,在处理扩展性问题的时候的时候选择通用的方案(纵向扩展、调
优、缓存、数据分片、反范式等等)
? 多变的数据类型,数据不规整,列数不固定,复杂的数据结构等,考虑文档数据库,Key-value
数据库,和Bigtable型数据库。它们的数据类型都比较灵活。
?
? 需要快速的关系查询,但是又不想自己实现,那么就选择支持SQL的数据库。 能够在云中操作,自动利用云的一切特性和好处,目前还没有这样的东西。
假如你的应用有以下需求:
? 支持二级索引,通过不同的键来检索,可以考虑关系数据库和 Cassandra,后者新增了对二级索
引的支持。
? 规模不断增长(真正的大数据场景),但是访问不频繁的数据可以使用Bigtable类型的数据库,
因为它的数据存储在一个分布式文件系统上,很容易扩展 。
? 要和其他服务集成,检查数据库是否提供某种写后同步功能,以便能够捕捉到数据库变化,通知
其它系统,保证一致性。
?
? 容错性,检查在停电、分区故障以及其他故障场景下写操作是否能够成功。 如果只是为了推动某个方向上的技术创新,似乎没有现成的东西能够达到这个目的,你得自己去
创造一个新的。这可不是件容易事。
? 移动平台上可以用CouchDB/Mobile couchbase.
第二篇:云计算论文
云计算的发展及应用
专业班级:
学 生:
学 号;
指导教师:
目 录
目 录..................................................错误!未定义书签。 摘要...................................................错误!未定义书签。 关键词.................................................错误!未定义书签。
1.背景.................................................错误!未定义书签。
2.云计算的兴起.........................................错误!未定义书签。
3.特点................................................错误!未定义书签。
4.进化过程.............................................错误!未定义书签。
5.服务形式.............................................错误!未定义书签。
6.应用.................................................错误!未定义书签。
7、小结................................................................. 8
摘要
云计算(cloud computing)是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。狭义云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。它意味着计算能力也可作为一种商品通过互联网进行流通。
关键字:互联网 虚拟化 软件 网络
1、背景
云计算是继19xx年代大型计算机到客户端-服务器的大转变之后的又一种巨变。 云计算是分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机和网络技术发展融合的产物。
2、云计算的兴起
云计算是近年来一个热门的技术名词,很多专家认为,云计算会改变互联网的技术基础,甚至会影响整个产业的格局。正因为如此,很多大型企业都在研究云计算技术和基于云计算的服务,亚马逊、谷歌、微软、IBM、SUN 等IT 巨头都在其中。几年之内,云计算已从新兴技术发展成为当今的热点技术。从2003 年Google 公开发布的核心文件到2006 年Amazon EC2(亚马逊弹性计算云)的商业化应用,再到美国电信巨头AT&T(美国电话电报公司)推出的Synaptic Hosting(动态托管)服务,云计算从节约成本的工具到盈利的推动器,从ISP(网络服务提供商)到电信企业,已然成功地从内置的IT 系统演变成公共的服务。云计算是一个产生于IT 领域的概念,IT(Information Technology),即信息技术,包括感测技术、通信技术、计算机技术和控制技术等。在技术发展的历程中,类似于电子商务,云计算也是一个比较模糊的技术术语。这其中一个原因是云计算可以在很多应用程序场景中运用,另外就是大量公司的商业炒作推动
了这种趋势。Gartner 公司是全球最权威的技术咨询机构,它的技术成熟曲线就是根据技术发展周期理论来分析新技术的发展周期曲线(从1995 年开始每年均有报告),以便帮助人们判断某种新技术是否采用。
这个曲线将技术成熟的过程划分为5个阶段:一是萌芽期(Technology Trigger)又称感知期,人们对新技术产品和概念开始感知,并且表现出兴趣;二是过热期(Peak of Inflated Expectations),人们一拥而上,纷纷采用这种新技术,讨论这种新技术。典型成功的案例往往会把人们的这种热情加上把催化剂;三是低谷期(Trough of Disillusionment),又称幻想破灭期。过度的预期,严峻的现实,往往会把人们心理的一把火浇灭;四是复苏期(Slope of Enlightenment),又称恢复期。人们开始反思问题,并从实际出发考虑技术的价值。相比之前冷静不少;五是成熟期(Plateau ofProductivity),又称高原期。该技术已经成为一种平常。
从加德纳Gartner 公司2011 年的技术成熟度报告,我们可以看到云计算现在已经绕过了应用上的瓶颈,开始真正“落地”。云计算如一阵飓风席卷整个IT 界,伴之而来的优势是非常明显的。2012 年更是云计算快速发展的一年,各种云技术、云方案将陆续出台,无论是早期亚马逊的Cloud Drive,还是2011 年苹果公司推出的iCloud,抑或是2012 年4 月微软将要推出的System Center 系统等,都把目标盯紧了云计算这块大“肥肉”。 3、特点
通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将与互联网更相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
4、进化过程
云计算主要经历了四个阶段才发展到现在这样比较成熟的水平,这四个阶段依次是电厂模式、效用计算、网格计算和云计算。
(1)电厂模式阶段:电厂模式就好比是利用电厂的规模效应,来降低电力的价格,并让用户使用起来更方便,且无需维护和购买任何发电设备。
(2)效用计算阶段:在19xx年左右,当时计算设备的价格是非常高昂的,远非普通企业、学校和机构所能承受,所以很多人产生了共享计算资源的想法。19xx年,人工智能之父麦肯锡在一次会议上提出了“效用计算”这个概念,其核心借鉴了电厂模式,具体目标是整合分散在各地的服务器、存储系统以及应用程序来共享给多个用户,让用户能够像把灯泡插入灯座一样来使用计算机资源,并且根据其所使用的量来付费。但由于当时整个IT产业还处于发展初期,很多强大的技术还未诞生,比如互联网等,所以虽然这个想法一直为人称道,但是总体而言“叫好不叫座”。 (3)网格计算阶段:网格计算研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多低性能的计算机来处理,最后把这些计算结果综合起来攻克大问题。可惜的是,由于网格计算在商业模式、技术和安全性方面的不足,使得其并没有在工程界和商业界取得预期的成功。
(4)云计算阶段:云计算的核心与效用计算和网格计算非常类似,也是希望IT技术能像使用电力那样方便,并且成本低廉。但与效用计算和网格计算不同的是,现在在需求方面已经有了一定的规模,同时在技术方面也已经基本成熟了。
5、服务形式
云计算可以认为包括以下几个层次的服务:基础设施即服务,平台即服务和软件即服务。
(1)基础设施即服务 IaaS(Infrastructure-as-a- Service):基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。
(2)平台即服务
PaaS(Platform-as-a- Service):平台即服务。PaaS实际上是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。但是,PaaS的出现可以加快SaaS的发展,尤其是加快SaaS应用
的开发速度。
(3)软件即服务
SaaS(Software-as-a- Service):软件即服务。它是一种通过Internet提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。 6、应用
(1)云物联 “物联网就是物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。
物联网的两种业务模式:1.MAI(M2M Application Integration), 内部MaaS; 2.MaaS(M2M As A Service), MMO, Multi-Tenants(多租户模型)。 随着物联网业务量的增加,对数据存储和计算量的需求将带来对“云计算”能力的要求: 1.云计算:从计算中心到数据中心在物联网的初级阶段,PoP即可满足需求; 2. 在物联网高级阶段,可能出现MVNO/MMO营运商(国外已存在多年),需要虚拟化云计算技术,SOA等技术的结合实现互联网的泛在服务:TaaS (everyTHING As A Service)。
(2)云安全
云安全(Cloud Security)是一个从“云计算”演变而来的新名词。云安全的策略构想是:使用者越多,每个使用者就越安全,因为如此庞大的用户群,足以覆盖互联网的每个角落,只要某个网站被挂马或某个新木马病毒出现,就会立刻被截获。“云安全”通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,推送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。
(3)云存储
云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的
概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。 当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。
(4)私有云
私有云(Private Cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。 创建私有云,除了硬件资源外,一般还有云设备(IaaS)软件;现时商业软件有VMware的 vSphere 和Platform Computing 的 ISF, 开放源代码的云设备软件主要有Eucalyptus和OpenStack。
(5)云游戏
云游戏是以云计算为基础的游戏方式,在云游戏的运行模式下,所有游戏都在服务器端运行,并将渲染完毕后的游戏画面压缩后通过网络传送给用户。在客户端,用户的游戏设备不需要任何高端处理器和显卡,只需要基本的视频解压能力就可以了。 就现今来说,云游戏还并没有成为家用机和掌机界的联网模式,因为至今X360仍然在使用LIVE,PS是PS NETWORK ,wii是wi-fi。但是几年后或十几年后,云计算取代这些东西成为其网络发展的终极方向的可能性,非常大。 如果这种构想能够成为现实,那么主机厂商将变成网络运营商,他们不需要不断投入巨额的新主机研发费用,而只需要拿这笔钱中的很小一部分去升级自己的服务器就行了,但是达到的效果却是相差无几的。对于用户来说,他们可以省下购买主机的开支,但是得到的确是顶尖的游戏画面(当然对于视频输出方面的硬件必须过硬。)。你可以想象一台掌机和一台家用机拥有同样的画面,家用机和我们今天用的机顶盒一样简单,甚至家用机可以取代电视的机顶盒而成为次时代的电视收看方式。
(6)云教育
视频云计算应用在教育行业的实例:流媒体平台采用分布式架构部署,分为
web服务器,数据库服务器、直播服务器和流服务器,如有必要可在信息中心架设采集工作站搭建网络电视或实况直播应用,在各个学校已经部署录播系统或直播系统的教室配置流媒体功能组件,这样录播实况可以实时传送到流媒体平台管理中心的全局直播服务器上,同时录播的学校本色课件也可以上传存储到金山区教育局信息中心的流存储服务器上,方便今后的检索、点播、评估等各种应用。
7、小结
云计算的前景很诱人,它使得计算机的计算能力不受本地硬件的限制。而且云计算开发新产品拓展新市场的成本非常低。就像谷歌CEO埃里克认为,云计算意味着从PC机时代重返大型机时代。在PC即时代,PC提供了很多很好的功能和应用,现在又回到大型机的时代了。现在的大型机看不见,摸不着,不过确确实实就摆在那里,它们在云里,在天空里。 尽管使用云计算服务有种种好处,但安全问题也值得考虑。云计算意味着数据被转移到用户主权掌控范围外的机器上,也就是云计算服务提供商的手中。那么,如何保证这些数据的安全性?如何能相信服务商不会将数据出卖给商业竞争对手呢?关于云计算的安全性问题仍然值得我们深入思考。