WEB服务器端技术
WEB服务器端技术客户端是与用户交互的唯一接口,对于软件测试人员来说不可掉以轻心,那么服务器端又需要我们了解哪些技术呢?事实上,对于Web系统来说,相比于客户端技术,服务器端技术更是深不可测,其各类技术,系统架构,处理方式等千变万化。服务器端的技术进步,同样要求软件测试技术的同步前进,也更加要求软件测试人员能够跟上技术的步伐,否则测试将很难开展。虽然服务器端技术很复杂,作为测试人员,我们不能望而却
WEB服务器端技术
客户端是与用户交互的唯一接口,对于软件测试人员来说不可掉以轻心,那么服务器端又需要我们了解哪些技术呢?
事实上,对于Web系统来说,相比于客户端技术,服务器端技术更是深不可测,其各类技术,系统架构,处理方式等千变万化。服务器端的技术进步,同样要求软件测试技术的同步前进,也更加要求软件测试人员能够跟上技术的步伐,否则测试将很难开展。
虽然服务器端技术很复杂,作为测试人员,我们不能望而却步,否则我们的测试如何进步?本节就来为大家作一个整体的梳理,将服务器端的各类技术作一个总结:
1、 WWW简介
WWW是World Wide Web(环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。它起源于1989年3月,由欧洲量子物理实验室 CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料。 由于用户在通过 Web 浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而 Web 在Internet 上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。
长期以来,人们只是通过传统的媒体(如电视、报纸、杂志和广播等)获得信息。但随着计算机网络的发展,人们想要获取信息,已不再满足于传统媒体那种单方面传输和获取的方式,而希望有一种主观的选择性。现在,网络上提供各种类别的数据库系统,如文献期刊、产业信息、气象信息、论文检索等等。由于计算机网络的发展,信息的获取变得非常及时、迅速和便捷。
到了1993年,WWW 的技术有了突破性的进展,它解决了远程信息服务中的文字显示、数据连接以及图像传递的问题,使得 WWW 成为 Internet 上最为流行的信息传播方式。 现在,Web 服务器成为 Internet 上最大的计算机群,Web 文档之多、链接的网络之广,令人难以想象。可以说,Web 为 Internet 的普及迈出了开创性的一步,是近年来Internet 上取得的最激动人心的成就。
WWW 采用的是客户/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到 Windows 95(或Windows98)、Windows NT、UNIX 或 Linux 等平台上。
2、 Web服务器
Web服务器是离客户端最近的服务器端,主要作用包含三个方面:
(1) 监听客户端请求。为什么我们需要启动服务器,目的也就在于启动后服务器才可以开始监听80端口(或其它自定义端口),也才可以获取到客户端发来的请求,便于处理。
(2) 处理客户端请求。如果是静态资源(HTML页面或图片等),则直接将该资源从硬盘上读取进内存并直接返回给客户端;如果是动态页面(如PHP或ASP页面等),则将该请求转交给相应的脚本引擎来进行处理。
(3) 客户端与数据库之间的屏障。在三层架构中,Web服务器是夹在客户端与数据库之间,一方面用于从数据库中读取或写入数据,另外一方面也为了有效地过滤掉一些非法的访问请求,保障数据安全。
当前比较流行的Web服务器有以下五种:
(1) Apache:由开源基金会Apache维护,开源系统软件,由C语言开发。是目前世界上最流行的Web服务器(没有之一)。由于C语言较好的跨平台特性,Apache已经在所有的服务器操作系统上实现,如Unix, Linux和Windows。并且很多应用服务器也直接内置Apache服务器,因为它性能好,足够稳定,并且功能很强大。
(2) IIS:Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。
(3) Tomcat:由开源基金会Apache维护,主要处理以Java为架构的动态页面。比如我们常见的JSP页面和Java Servlet等,均可以由Tomcat处理,并且Tomcat还部分支持SUN公司的J2EE规范,为使用J2EE架构的中小型应用提供了方便。
(4) Lighttpd:是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd 是众多OpenSource轻量级的web server中较为优秀的一个。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了,这点对于apache的用户是非常重要的,因为迁移到lighttpd就必须面对这些问题。实用起来lighttpd确实非常不错,apache主要的问题是密集并发下,不断的fork()和切换,以及较高(相对于 lighttpd而言)的内存占用,使系统的资源几尽枯竭。而lighttpd采用了Multiplex技术,代码经过优化,体积非常小,资源占用很低,而且反应速度相当快。利用apache的rewrite技术,将繁重的cgi/fastcgi任务交给lighttpd来完成,充分利用两者的优点,现在那台服务器的负载下降了一个数量级,而且反应速度也提高了一个甚至是2个数量级!lighttpd 适合静态资源类的服务,比如图片、资源文件、静态HTML等等的应用,性能应该比较好,同时也适合简单的CGI应用的场合。
(5) Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应。
所谓的反向代理,我们可以这么理解:通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。
3、 应用服务器
Web服务器作为一个最接近于客户端的应用,有其重要作用,必不可少。但同时,现在的网络应用越来越广泛,相应的业务逻辑也越来越复杂,一个Web服务器恐难担此重任。特别是对于业务逻辑的处理和数据库访问这一部分,对性能的要求是非常高的,我们理所当然需要一套更强大的服务器体系来进行处理,这就是应用服务器。应用服务器比Web服务器更靠后端,其目的并非监听或处理HTTP请求,而是处理复杂系统的业务逻辑和数据库访问等。
例如,设想一个在线商店(网站)提供实时定价(real-time pricing)和有效性(availability)信息。这个站点(site)很可能会提供一个表单(form)让你来选择产品。当你提交查询(query)后,网站会进行查找(lookup)并把结果内嵌在HTML页面中返回。网站可以有很多种方式来实现这种功能。我要介绍一个不使用应用程序服务器的情景和一个使用应用程序服务器的情景。观察一下这两中情景的不同会有助于你了解应用程序服务器的功能。
• 情景1:不带应用程序服务器的Web服务器
在此种情景下,一个Web服务器独立提供在线商店的功能。Web服务器获得你的请求(request),然后发送给服务器端(server-side)可以处理请求(request)的程序。此程序从数据库或文本文件(flat file,译者注:flat file是指没有特殊格式的非二进制的文件,如properties和XML文件等)中查找定价信息。一旦找到,服务器端(server-side)程序把结果信息表示成(formulate)HTML形式,最后Web服务器把会它发送到你的Web浏览器。
简而言之,Web服务器只是简单的通过响应(response)HTML页面来处理HTTP请求(request)。
• 情景2:带应用程序服务器的Web服务器
情景2和情景1相同的是Web服务器还是把响应(response)的产生委托(delegates)给脚本(译者注:服务器端(server-side)程序)。然而,你可以把查找定价的商业逻辑(business logic)放到应用程序服务器上。由于这种变化,此脚本只是简单的调用应用程序服务器的查找服务(lookup service),而不是已经知道如何查找数据然后表示为(formulate)一个响应(response)。 这时当该脚本程序产生HTML响应(response)时就可以使用该服务的返回结果了。
在此情景中,应用程序服务器提供(serves)了用于查询产品的定价信息的商业逻辑。(服务器的)这种功能(functionality)没有指出有关显示和客户端如何使用此信息的细节,相反客户端和应用程序服务器只是来回传送数据。当有客户端调用应用程序服务器的查找服务(lookup service)时,此服务只是简单的查找并返回结果给客户端。
通过从响应产生(response-generating)HTML的代码中分离出来,在应用程序之中该定价(查找)逻辑的可重用性更强了。其他的客户端,例如收款机,也可以调用同样的服务(service)来作为一个店员给客户结帐。相反,在情景1中的定价查找服务是不可重用的,因为信息内嵌在HTML页中了。
总而言之,在情景2的模型中,在Web服务器通过回应HTML页面来处理HTTP请求(request),而应用程序服务器则是通过处理定价和有效性(availability)请求(request)来提供应用程序逻辑的。
现在,XML Web Services已经使应用程序服务器和Web服务器的界线混淆了。通过传送一个XML有效载荷(payload)给服务器,Web服务器现在可以处理数据和响应(response)的能力与以前的应用程序服务器同样多了。
另外,现在大多数应用程序服务器也包含了Web服务器,这就意味着可以把Web服务器当作是应用程序服务器的一个子集(subset)。虽然应用程序服务器包含了Web服务器的功能,但是开发者很少把应用程序服务器部署(deploy)成这种功能(capacity)(译者注:这种功能是指既有应用程序服务器的功能又有Web服务器的功能)。相反,如果需要,他们通常会把Web服务器独立配置,和应用程序服务器一前一后。这种功能的分离有助于提高性能(简单的Web请求(request)就不会影响应用程序服务器了),分开配置(专门的Web服务器,集群(clustering)等等),而且给最佳产品的选取留有余地。
常见的应用服务器有如下两类:
(1) J2EE应用服务器:
由SUN公司(已被Oracle收购)主导的JAVA实现了三个平台:它们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform Micro Edition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
目前实现J2EE技术规范的产品有5个,分别是IBM公司的WebSphere,BEA公司(已被Oracle收购)的Weblogic,Redhat公司的JBoss(前身为开源社区开发),中国金蝶公司的Apusic,开源的Resin(由CAUCHO公司开发)。它们都是非常不错的J2EE应用服务器。
IBM WebSphere:
WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。
BEA WebLogic:
BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。
BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。
(2) IIS: 首先IIS是Web服务器,其次微软公司也将其定义为.NET框架下的应用服务器。事实上微软从操作系统、服务器、数据库,再到解决方案,为IT业提供了一套相对完整的无缝集成的网络服务环境。如果我们说J2EE应用服务器是应用于JAVA平台的基础设施,那么IIS便是.NET平台的基础设施。所以,IIS完全有能力胜任应用服务器这一称呼。
事实上,IIS不仅仅提供HTTP服务,还可以提供FTP, SMTP, 消息服务等。
4、 脚本引擎
我们都知道,现在的Web应用程序都是动态的,可交互的,可以根据用户输入的不同而返回不同的响应。而传统的HTML是无法支持动态网页的,因为HTML是静态的,由浏览器解析执行的。所以动态网页的处理都是在服务器端完成,由服务器端的脚本引擎处理完成后以标准的HTML格式返回给客户端。目前比较通用的脚本引擎有四种:
(1) ASP:Active Server Page,是微软IIS服务器的主要开发脚本,现在已经升级到ASP.NET,是微软.NET框架的一部分。传统的ASP页面主要使用VBScript脚本作为程序语言,再内置ASP服务器组件共同构成服务器端脚本引擎。而最新版本的ASP.NET则可以使用VBScript或JScript(注意与Javascript区别),并且与C#或VB.NET一起组成强大的服务器端开发环境。
(2) PHP:PHP 的简称原本为 Personal Home Page,后来更名为Hypertext Preprocessor,意为超文本预处理语言。是当前开源项目使用最多的脚本引擎,在sourceforge.net网站上我们可以找到很多流行的开源项目,如果该项目是以Web站点形式存在的,绝大部分都使用PHP开发。同时,PHP也同样适用于架构一些大型的应用,比如新浪网站。同时,PHP与MySQL,Apache及Linux的无缝集成,也催生了LAMP这一伟大的开源服务器平台。
(3) JSP: Java Server Page,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
(4) RUBY:Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。
5、 集群环境
服务器集群就是指将很多服务器集中起来一起进行同一种服务,在客户端看来就象是只有一个服务器。集群可以利用多个计算机进行并行计算从而获得很高的计算速度(Load Balance – 负载均衡),也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行(Fail Over – 故障转移)。
集群环境有多种实现方式:
(1) 硬件集群:直接使用硬件来完成,如知名的redware,可直接根据来访者的IP地址进行负载的分配与转移,并实时监听各集群节点,达到故障转移的目的。
(2) 操作系统集群:操作系统之间直接集群,属于软件级集群,通过集群分配算法实现。
(3) 应用服务器集群:应用服务器之间直接集群,根据应用服务器之间的性能指标进行负载的均衡和故障转移。
(4) 数据库集群:数据库系统直接集群,如Oracle RAC。
其实无论何种集群方式,其核心目的就是实现负载均衡和故障转移。要实现该目的,必须要有一个负载分发器来作为系统的访问入口,当该负载分发器检测到有请求过来的时候,可根据集群节点的性能状况来决定由哪个集群节点来进行处理。同时,该负载分发器需要实时检测集群节点的健康状态,如果发现有节点无法提供服务时,将不再为其分配请求,并且及时发出警告通知系统管理员,这样就可以实现故障转移。所以说原理是很简单的,企业也完全可以自主开发软件来实现集群,只不过如何实现高可用性(High Availability)是一个比较复杂的问题,一些简单的算法可能很难保证其高负载情况下的稳定处理。
6、 数据库
我们每天都生活在数据库的世界,甚至都说不清楚是我们在控制数据库,还是被数据库控制。不妨来看看人们每天所做的哪些事情是跟数据库相关的:公交系统刷卡,上班打卡,银行取钱,超市消费,手机充值,天气查询,新闻阅读,户口信息,子女学籍……。
目前数据库的类型及存在形式主要有以下四种:
(1) 文件型数据库:将数据保存在文件中,比如一个CSV的逗号分隔符文件,Excel文件,或者比较流行的XML(Extensible Markup Language - 可扩展标记语言)文件,它们都是用来描述数据的,并且由于它们都是以纯文本形式保存,其通用性和可移植性非常好,但是不太适用于大型的应用。
(2) 关系型数据库:将数据以二维表的形式保存,并且建立表与表或者列与列的各种关系,便于进行业务逻辑处理和数据展现。这也是近二十年来使用最为广泛的数据组织形式,在大型应用中显示出了巨大的优势。
事实上,关系型数据库的数据本质上仍然保存在硬盘中,数据库管理系统只在需要时将数据文件从硬盘读取到内存中并提供给用户。当今最流行的5大数据库管理系统均为关系型数据库,如Oracle, SQLServer, MySQL, DB2, Informix。
(3) 内存型数据库:我们知道,硬盘的读写速度远慢于内存,笔者电脑上的硬盘(7200转)读写速度为80M/S左右,而内存(DDR3 1066MHz)的读写速度为6G/S,其速度相差接近80倍。即使现在的固态硬盘或者RAID 0磁盘阵列,其读写速度也就200M/S左右,仍然无法与内存的速度相提并论。于是,科学家们提出了内存型数据库,也就是将所有数据库文件全部置于内存中,这样可大大提高数据库处理速度。
现在已经有很多数据库产品已经实现了内存数据库。比如Oracle的内存型数据库Times Ten,MySQL的MEMORY内存引擎,MemCached数据库产品等。当然,我们也需要注意到,使用这一类数据库对于系统稳定性有非常高的要求,因为内存中的数据一旦断电,将全部丢失。
(4) NoSQL:not only SQL,指的是非关系型的数据库。随着互联网Web 2.0网站的兴起,传统的关系数据库在应付Web 2.0网站,特别是超大规模和高并发的SNS类型的Web 2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。目前实现NoSQL的产品也很丰富,如Google 的BigTable与Amazon的Dynamo是非常成功的商业 NoSQL 实现。一些开源的 NoSQL 体系,如Facebook 的Cassandra, Apache 的HBase,也得到了广泛认同。从这些NoSQL项目的名字上看不出什么相同之处:Hadoop、Voldemort、Dynomite,还有其它很多。
7、 SOA
Service-Oriented Architecture,指面向服务的体系架构。其核心在于“服务”。要了解SOA,必须首先理解什么叫Web Service (Web服务),Web Service是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。Web Service利用SOAP协议(Simple Object Access Protocol – 简单对象访问协议)和XML进行数据传输。SOAP协议又是依附于HTTP协议进行传输的,这些协议都是语言无关,平台无关的协议,所以利用Web Service,我们可以很轻易地在异构系统之间进行数据传递。
SOA便是以Web服务为核心进行应用系统架构设计的一种全新技术,使得系统数据可以在任何平台下实现访问。
8、 SaaS
Software-as-a-Service,软件即服务。是随着互联网技术的发展和应用软件的成熟,而在21世纪开始兴起的一种完全创新的软件应用模式。它与“on-demand software”(按需软件),the application service provider(ASP,应用服务提供商),hosted software(托管软件)所具有相似的含义。它是一种通过Internet提供软件的模式,厂商将应用软件统一部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买、构建和维护基础设施和应用程序的需要。
9、 云计算
云计算概念是由Google提出的,这是一个美丽的网络应用模式。狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源;广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以是任意其他的服务,它具有超大规模、虚拟化、可靠安全等独特功效;
云计算(Cloud Computing)是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。Cloud Computing的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力!
云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。
注:
(1) SaaS:Software-as-a-Service,软件即服务,主要以提供软件服务为核心。
(2) IaaS:Infrastructure-as-a- Servic,基础设施即服务。消费者通过Internet可以从完善的计算机基础设施获得服务。
(3) PaaS:Platform-as-a- Service,平台即服务,是指将软件研发的平台作为一种服务,以SaaS的模式提交给用户。
(4) MSP:Management Service Provider,管理服务提供商,最古老的云计算运用之一。这种应用更多的是面向IT行业而不是终端用户,常用于邮件病毒扫描、程序监控等等。
云计算的特点:
(1) 数据安全可靠:
首先,云计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢失、病毒入侵等麻烦。
很多人觉得数据只有保存在自己看得见、摸得着的电脑里才最安全,其实不然。你的电脑可能会因为自己不小心而被损坏,或者被病毒攻击,导致硬盘上的数据无法恢复,而有机会接触你的电脑的不法之徒则可能利用各种机会窃取你的数据。
反之,当你的文档保存在类似 Google Docs 的网络服务上,当你把自己的照片上传到类似 Google Picasa Web的网络相册里,你就再也不用担心数据的丢失或损坏。因为在“云”的另一端,有全世界最专业的团队来帮你管理信息,有全世界最先进的数据中心来帮你保存数据。同时,严格的权限管理策略可以帮助你放心地与你指定的人共享数据。这样,你不用花钱就可以享受到最好、最安全的服务,甚至比在银行里存钱还方便。
(2) 客户端需求低
其次,云计算对用户端的设备要求最低,使用起来也最方便。
大家都有过维护个人电脑上种类繁多的应用软件的经历。为了使用某个最新的操作系统,或使用某个软件的最新版本,我们必须不断升级自己的电脑硬件。为了打开朋友发来的某种格式的文档,我们不得不疯狂寻找并下载某个应用软件。
为了防止在下载时引入病毒,我们不得不反复安装杀毒和防火墙软件。所有这些麻烦事加在一起,对于一个刚刚接触计算机、刚刚接触网络的新手来说不啻一场噩梦!如果你再也无法忍受这样的电脑使用体验,云计算也许是你的最好选择。你只要有一台可以上网的电脑,有一个你喜欢的浏览器,你要做的就是在浏览器中键入 URL ,然后尽情享受云计算带给你的无限乐趣。 你可以在浏览器中直接编辑存储在“云”的另一端的文档,你可以随时与朋友分享信息,再也不用担心你的软件是否是最新版本,再也不用为软件或文档染上病毒而发愁。因为在“云”的另一端,有专业的 IT 人员帮你维护硬件,帮你安装和升级软件,帮你防范病毒和各类网络攻击,帮你做你以前在个人电脑上所做的一切。
(3) 轻松共享数据
此外,云计算可以轻松实现不同设备间的数据与应用共享。
大家不妨回想一下,你自己的联系人信息是如何保存的。一个最常见的情形是,你的手机里存储了几百个联系人的电话号码,你的个人电脑或笔记本电脑里则存储了几百个电子邮件地址。为了方便在出差时发邮件,你不得不在个人电脑和笔记本电脑之间定期同步联系人信息。买了新的手机后,你不得不在旧手机和新手机之间同步电话号码。
对了,还有你的 PDA 以及你办公室里的电脑。考虑到不同设备的数据同步方法种类繁多,操作复杂,要在这许多不同的设备之间保存和维护最新的一份联系人信息,你必须为此付出难以计数的时间和精力。这时,你需要用云计算来让一切都变得更简单。在云计算的网络应用模式中,数据只有一份,保存在“云”的另一端,你的所有电子设备只需要连接互联网,就可以同时访问和使用同一份数据。
仍然以联系人信息的管理为例,当你使用网络服务来管理所有联系人的信息后,你可以在任何地方用任何一台电脑找到某个朋友的电子邮件地址,可以在任何一部手机上直接拨通朋友的电话号码,也可以把某个联系人的电子名片快速分享给好几个朋友。当然,这一切都是在严格的安全管理机制下进行的,只有对数据拥有访问权限的人,才可以使用或与他人分享这份数据。
(4) 无限可能
为存储和管理数据提供了几乎无限多的空间,也为我们完成各类应用提供了几乎无限强大的计算能力。想像一下,当你驾车出游的时候,只要用手机连入网络,就可以直接看到自己所在地区的卫星地图和实时的交通状况,可以快速查询自己预设的行车路线,可以请网络上的好友推荐附近最好的景区和餐馆,可以快速预订目的地的宾馆,还可以把自己刚刚拍摄的照片或视频剪辑分享给远方的亲友……
离开了云计算,单单使用个人电脑或手机上的客户端应用,我们是无法享受这些便捷的。个人电脑或其他电子设备不可能提供无限量的存储空间和计算能力,但在“云”的另一端,由数千台、数万台甚至更多服务器组成的庞大的集群却可以轻易地做到这一点。个人和单个设备的能力是有限的,但云计算的潜力却几乎是无限的。当你把最常用的数据和最重要的功能都放在“云”上时,我们相信,你对电脑、应用软件乃至网络的认识会有翻天覆地的变化,你的生活也会因此而改变。
互联网的精神实质是自由、平等和分享。作为一种最能体现互联网精神的计算模型,云计算必将在不远的将来展示出强大的生命力,并将从多个方面改变我们的工作和生活。无论是普通网络用户,还是企业员工,无论是IT管理者,还是软件开发测试人员,他们都能亲身体验到这种改变。
10、 物联网
物联网是新一代信息技术的重要组成部分。物联网的英文名称叫“The Internet of Things”。顾名思义,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。
因此,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。
‘
更多推荐
所有评论(0)