基于云计算的web service技术及其应用.docx
- 文档编号:9855365
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:26
- 大小:359.41KB
基于云计算的web service技术及其应用.docx
《基于云计算的web service技术及其应用.docx》由会员分享,可在线阅读,更多相关《基于云计算的web service技术及其应用.docx(26页珍藏版)》请在冰点文库上搜索。
基于云计算的webservice技术及其应用
基于云计算的webservice技术及其应用
摘要
本文主要通过分析基于云计算技术的web服务,进一步探讨webservice技术及其应用,其中分别对云计算和webservice的概念、技术支持、典型应用作了深入分析,并以最具代表性的google云应用作为案例,结合其技术,全面地分析和总结基于云计算的网页服务技术是如何实现,并能实现何种功能的。
关键字:
云计算,网络服务,webservice
WebServiceTechnologiesandApplicationsofCloudComputing
Abstract
ThispaperaimsatanalyzingtheWebServiceofCloudComputing,andthenfurtherinvestigatesthetechnologyandapplicationsabouttheWebservice.Probingintotheconcepts,technicalsupportsandtypicalapplicationsofbothCloudComputingandWebService,thepapertakesthemostrepresentativeexampleGoogleCloudApplicationanditstechnologyasacasefordetailedandcomprehensivestudy.Afterzone-by-zoneanalysis,IputforwardthesummaryofhowcouldCloudComputingactualizeitsWebServicestechnologyandfunctions.
Keywords:
cloudcomputing,networkservices,webservice
目录
1绪论1
2云计算2
2.1云计算概念2
2.2云计算的发展及其应用3
2.2.1云计算思想的产生3
2.2.2云计算的核心技术4
2.2.3典型云计算平台介绍6
2.2.4云计算技术的发展前景6
2.2.5云计算技术发展面临的主要问题8
3WebService8
3.1WebService概念8
3.2WebService架构和云9
3.3本地服务的缺陷10
3.4WebService的优势10
3.5WebService的发展趋势10
3.6WebService技术支持11
4基于云计算的Webservice12
4.1云服务概念12
4.2云服务的优势12
4.3云开发的不足13
4.4云计算的主要服务形式13
4.5典型应用15
5云服务设计案例16
5.1.NET平台及WEB服务16
5.2WEB服务编写技巧16
5.3简单的WEB地图服务设计与实践18
5.3.1GIS集成和互操作19
5.3.2WEB地图服务设计与实现19
5.3.3设计心得21
参考文献22
致谢23
1绪论
一个世纪以前,一场电力革命被掀起。
它使得众多大型的发电机组联成电网,用电者只需联入电向公用电力公司买电,无需再各自发电,而且综合成本更低廉、可靠性更高。
正如这场电力革命,目前计算机网络也面临着这样一场轰轰烈烈的伟大变革。
从“单机计算"到“并行计算",到“分布计算",到“网格计算",再到“saas一软件即服务"无不是顺应了人们的需求而产生的。
2007年末,一个新兴的名词“云计算"逐渐进入人们的视野,成为当前计算机领域最受关注的技术之一,它将改变人们使用计算机和因特网的方式。
“云计算”是什么?
云计算是一种计算模式,在这种模式中,应用、数据和IT资源以服务的方式通过网络提供给用户使用。
“云计算”的目标将计算作为一种公共服务提供给大众,它将集中大量的计算资源,用户按照各自需求通过网络获取资源服务,如存储空间、软件服务等。
提供服务的这一庞大网络系统就是“云",享受服务的用户处于“云端"。
虽然“云计算”这一概念很多人还比较陌生,但事实上,云计算已经进入了人们的工作、生活、学习之中。
比如在互联网上搜索一个关键词,这个“搜索”并非只有一台服务器去完成,可能是由成千上万的服务器在用不同的方法同时检索多个数据库,从而提交搜索结果。
用户不用去关心搜索的过程,他要的只是结果。
这样的广大的服务器集群就是“云”。
李开复博士这样说:
“这个世界已经从以硬件为中心转向以软件为中心,并
正转向以服务为中心”[1]。
构建网络的最终目的就是在于共享资源,随着社会的发展,资源需求的膨胀,网络技术的发展也进入了快车道。
计算机网络技术的发展提供了越来越多资源的同时,也引得更多受众者去获取资源,并作为参与者向网络发布新的资源,伴随着这样的良性循环,很多实用计算机技术融入了。
其中云计算就是一个美丽的共享模式,生活在未来,只需要一台记本电脑或一个手机,就可以通过网络服务来实现一切需要。
云计算网络服务就像用自来水当你驾车出游,只要用手机接入网络,就可以直接看到自己所在地的卫星地图;当你开车到游乐场,通过手机引导就可以直接行至最近的停车位……
“云计算”是一种新型的服务模式,它把所有硬件、软件结合起来,为人们提供低成本、高效率的智能化的服务。
简单地说就是把在一台电脑上完成不了或者需要很长时间完成的运算,交由互联网上庞大的计算机群完成就好像从单台发电机发电转向了电厂集中供电。
它意味着计算能力就像煤气、水电一样,取用方便。
2云计算
2.1云计算概念
云计算(CloudComputing)是网格计算(GridComputing)、分布式计算(DistributedComputing)、并行计算(ParallelComputing)、效用计算(UtilityComputing)、网络存储(NetworkStorageTechnologies)、虚拟化(Virtualization)、负载均衡(LoadBalance)等传统计算机技术和网络技术发展融合的产物。
概念图如图2.1。
图2.1云计算概念图
狭义的云计算指的是厂商通过分布式计算和虚拟化技术搭建数据中心或超级计算机,以免费或按需租用方式向技术开发者或者企业客户提供数据存储、分析以及科学计算等服务,比如亚马逊数据仓库出租生意。
广义的云计算指厂商通过建立网络服务器集群,向各种不同类型客户提供在线软件服务、硬件租借、数据存储、计算分析等不同类型的服务。
广义的云计算包括了更多的厂商和服务类型,例如国内用友、金蝶等管理软件厂商推出的在线财务软件,谷歌发布的Google应用程序套装等。
通俗的理解是,云计算的“云“就是存在于互联网上的服务器集群上的资源,它包括硬件资源(服务器、存储器、CPU等)和软件资源(如应用软件、集成开发环境等),本地计算机只需要通过互联网发送一个需求信息,远端就会有成千上万的计算机为你提供需要的资源并将结果返回到本地计算机,这样,本地计算机几乎不需要做什么,所有的处理都在云计算提供商所提供的计算机群来完成。
云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户按需服务。
云计算有四个方面的重要特点:
一是,云有海量的数据存储;二是,无数的软件和服务置于云中;三是,构筑于各种标准和协议之上;四是,可以通过各种设备获得。
2.2云计算的发展及其应用
2.2.1云计算思想的产生
传统模式下,企业建立一套IT系统不仅仅需要购买硬件等基础设施,还有买软件的许可证,需要专门的人员维护。
当企业的规模扩大时还要继续升级各种软硬件设施以满足需要。
对于企业来说,计算机等硬件和软件本身并非他们真正需要的,它们仅仅是完成工作、提供效率的工具而已。
对个人来说,我们想正常使用电脑需要安装许多软件,而许多软件是收费的,对不经常使用该软件的用户来说购买是非常不划算的。
可不可以有这样的服务,能够提供我们需要的所有软件供我们租用?
这样我们只需要在用时付少量“租金”即可“租用”到这些软件服务,为我们节省许多购买软硬件的资金。
我们每天都要用电,但我们不是每家自备发电机,它由电厂集中提供;我们每天都要用自来水,但我们不是每家都有井,它由自来水厂集中提供。
这种模式极大得节约了资源,方便了我们的生活。
面对计算机给我们带来的困扰,我们可不可以像使用水和电一样使用计算机资源?
这些想法最终导致了云计算的产生。
云计算的最终目标是将计算、服务和应用作为一种公共设施提供给公众,使人们能够像使用水、电、煤气和电话那样使用计算机资源。
云计算模式即为电厂集中供电模式。
在云计算模式下,用户的计算机会变的十分简单,或许不大的内存、不需要硬盘和各种应用软件,就可以满足我们的需求,因为用户的计算机除了通过浏览器给“云”发送指令和接受数据外基本上什么都不用做便可以使用云服务提供商的计算资源、存储空间和各种应用软件。
这就像连接“显示器”和“主机”的电线无限长,从而可以把显示器放在使用者的面前,而主机放在远到甚至计算机使用者本人也不知道的地方。
云计算把连接“显示器”和“主机”的电线变成了网络,把“主机”变成云服务提供商的服务器集群。
在云计算环境下,用户的使用观念也会发生彻底的变化:
从“购买产品”到“购买服务”转变,因为他们直接面对的将不再是复杂的硬件和软件,而是最终的服务。
用户不需要拥有看得见、摸得着的硬件设施,也不需要为机房支付设备供电、空调制冷、专人维护等等费用,并且不需要等待漫长的供货周期、项目实施等冗长的时间,只需要把钱汇给云计算服务提供商,我们将会马上得到需要的服务。
2.2.2云计算的核心技术[2]
云计算系统运用了许多技术,其中以编程模型、数据管理技术、数据存储技术、虚拟化技术、云计算平台管理技术最为关键。
(1)编程模型
MapReduce是Google开发的java、Python、C++编程模型,它是一种简化的分布式编程模型和高效的任务调度模型,用于大规模数据集(大于1TB)的并行运算。
严格的编程模型使云计算环境下的编程十分简单。
MapReduce模式的思想是将要执行的问题分解成Map(映射)和Reduce(化简)的方式,先通过Map程序将数据切割成不相关的区块,分配(调度)给大量计算机处理,达到分布式运算的效果,再通过Reduce程序将结果汇整输出。
(2)海量数据分布存储技术
云计算系统由大量服务器组成,同时为大量用户服务,因此云计算系统采用分布式存储的方式存储数据,用冗余存储的方式保证数据的可靠性。
云计算系统中广泛使用的数据存储系统是Google的GFS和Hadoop团队开发的GFS的开源实现HDFS。
GFS即Google文件系统(GoogleFileSystem),是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。
GFS的设计思想不同于传统的文件系统,是针对大规模数据处理和Google应用特性而设计的。
它运行于廉价的普通硬件上,但可以提供容错功能。
它可以给大量的用户提供总体性能较高的服务。
一个GFS集群由一个主服务器(master)和大量的块服务器(chunkserver)构成,并被许多客户(Client)访问。
主服务器存储文件系统所以的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。
它也控制系统范围的活动,如块租约(lease)管理,孤儿块的垃圾收集,块服务器间的块迁移。
主服务器定期通过HeartBeat消息与每一个块服务器通信,给块服务器传递指令并收集它的状态。
GFS中的文件被切分为64MB的块并以冗余存储,每份数据在系统中保存3个以上备份。
客户与主服务器的交换只限于对元数据的操作,所有数据方面的通信都直接和块服务器联系,这大大提高了系统的效率,防止主服务器负载过重。
(3)海量数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效的管理大量的数据。
云计算系统中的数据管理技术主要是Google的BT(BigTable)数据管理技术和Hadoop团队开发的开源数据管理模块HBase。
BT是建立在GFS,Scheduler,LockService和MapReduce之上的一个大型的分布式数据库,与传统的关系数据库不同,它把所有数据都作为对象来处理,形成一个巨大的表格,用来分布存储大规模结构化数据。
Google的很多项目使用BT来存储数据,包括网页查询,Googleearth和Google金融。
这些应用程序对BT的要求各不相同:
数据大小(从URL到网页到卫星图象)不同,反应速度不同(从后端的大批处理到实时数据服务)。
对于不同的要求,BT都成功的提供了灵活高效的服务。
(4)虚拟化技术
通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式。
虚拟化技术根据对象可分成存储虚拟化、计算虚拟化、网络虚拟化等,计算虚拟化又分为系统级虚拟化、应用级虚拟化和桌面虚拟化。
(5)云计算平台管理技术
云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。
云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营。
2.2.3典型云计算平台介绍
当前,业界已经有很多公司聚集在云计算这样一个新型计算概念下面,分别提出了自己针对云计算的理解,用不同的技术来实现上述目标,主要包括下面重要的云计算实现系统。
亚马逊的弹性计算云。
事实上,网络零售商亚马逊公司是最早也是一个非常重要的云计算实践者之一。
亚马逊公司在构建自身零售平台的时候,也使用了云计算的方法,将自己的购物平台构建在其基础之上。
亚马逊公司将自己的云计算平台开放给外部开发人员使用,建立了弹性计算云(ElasticComputeCloud,EC2),使得独立的开发人员也能够使用亚马逊公司内部的计算资源来建立自己的网络应用程序。
Google的云计算平台及其云计算网络应用程序。
主要包括Google针对云计算提出的大规模分布式计算的基础架构以及Google在此基础之上构造的云计算应用服务程序。
Google将自己的整个基础计算平台以及相应的应用称为云计算,并且成为云计算最大的实践者。
IBM公司在与Google的合作过程中,提出了自己对于云计算的理解以及相应的技术解决方案。
IBM公司于2007年11月15日在上海宣布了蓝云“BlueCloud”计划,使得公司内部的数据中心能够按照互联网应用服务程序的形式进行组织,将计算能力分配到分布式全局可以访问的资源组织中,而不是局限于本地的一些服务节点或者固定远端的服务器机群中。
IBM在云计算的白皮书中也提出了蓝云计划的基础设施结构,这些基础设施结构构建在IBM本身的x服务器之上。
在蓝云中采用了Xen的系统级虚拟化方法,同时提供虚拟化的服务器以及物理服务器的计算资源。
在IBM的云计算架构中也采用了类似于Google进行大规模数据处理的基础设施,在其蓝云计算环境中部署了GoolgeFileSystem以及MapReduce用以实现Hadoop。
Hadoop是Apache旗下的一款有关大规模数据的开源软件,Yahoo在其中做出了不少贡献。
2.2.4云计算技术的发展前景
“云计算”并不是一种产品,更准确的说,是提供IT服务的一种方式,是一个逐步走向用户自我服务的消费模型,IT不管是企业内部、还是通过互联网的业务部署和使用,都是透明的,付款都是基于业务消费,实现按需支付,按需获取IT资源和服务的目的。
虚拟化、广域网、数据集中应用,以及带宽设施的普及和费用的降低,促使云计算技术实现能力和经济价值不断提高。
通过云计算实现成本优化和提高流程效率的优势日益凸显,加快了市场对云服务的接受度。
从类型看又大致分私有云、混合云和公有云的形式,从北美市场看,私有云目前已经有了很广泛的应用,而公有云和混合云的前景也被普遍看好。
更多企业级用户把云计算作为IT资源的补充而不是替代。
再看中国云计算、IT外包(如果业务模型和经济模型能满足要求)无疑是“雪中送炭”,帮助SMB能集中有效资源在主营业务,从而在全球经济环境下稳步成长。
见图2.2。
图2.2云计算的发展
三网融合、互联网、政府信息化、医疗信息化,以及大量快速成长的中小企业(60%尚没有成熟的IT设施),构成了中国云计算市场强大的市场驱动力。
云计算更合乎中国经济向服务型和高科技型转变的国策,各种扶植政策和政府资金的注入,会加快云计算业务模型、以及市场机制的不断完善。
虽然中国云计算有很大的潜在市场,但从云的构建、到云计算的普及应用,实现云服务业务的快速增长还有相当一段路要走。
用户对于数据安全性和服务可靠性等方面有着顾虑,尚存在缺少成熟的云服务平台,云的经济效果难以量化等诸多问题,中国云计算产业中,主要以云产业低价值服务为主。
以上诸多因素都将促使一批云服务商的涌现,在一定程度上会增强市场对云的信心。
可以预料,中国云计算在今后两年会呈现快速增长的态势,并经历一个从私有云到混合云和公有云发展的阶段。
在云计算大肆扩张的带动之下,云服务也将得到空前发展。
公共IT云服务方面的支出在2011年的增长幅度将达到整个IT行业的5倍以上,较2010年上升30%,因为将有内容更加广泛的业务应用会融入到云技术中。
中小型企业的云应用将在2011年出现井喷现象,到年底,某些云资源将会被33%的美国中型企业所接受。
同时,由于基础架构、软件和服务提供商在一系列新的服务和解决方面展开协作,将会有更多新生的自有云模型不断出现。
此外,各厂商在两种云“强者地位”方面的争夺也会加入进来,以最终决定哪种云平台会被解决方案所采用,以及由谁来为多种公共云、客户自有云及其旧的IT环境提供一致性解决方案。
2.2.5云计算技术发展面临的主要问题
尽管云计算模式具有许多优点,但是也存在的一些问题,如数据隐私问题、安全问题、软件许可证问题、网络传输问题等。
数据隐私问题:
如何保证存放在云服务提供商的数据隐私,不被非法利用,不仅需要技术的改进,也需要法律的进一步完善。
数据安全性:
有些数据是企业的商业机密,数据的安全性关系到企业的生存和发展。
云计算数据的安全性问题解决不了会影响云计算在企业中的应用。
用户使用习惯:
如何改变用户的使用习惯,使用户适应网络化的软硬件应用是长期而艰巨的挑战。
网络传输问题:
云计算服务依赖网络,目前网速低且不稳定,使云应用的性能不高。
云计算的普及依赖网络技术的发展。
3WebService
3.1WebService概念
想要理解Webservice,必须先理解什么是Service(服务)。
传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(service)。
比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个"服务"。
通俗地说,"服务"就是计算机可以提供的某一种功能。
根据来源的不同,"服务"又可以分成两种:
一种是"本地服务"(使用同一台机器提供的服务,不需要网络),另一种是"网络服务"(使用另一台计算机提供的服务,必须通过网络才能完成)。
举例来说,我现在有一批图片,需要把它们的大小缩小一半。
那么,我们可以把"缩放图片"看成是一种服务。
你可以使用"本地服务",在自己计算机上用软件缩小图片,也可以使用"网络服务",将图片上传到某个网站,让服务器替你缩小图片,完成后再通过网络送回给你。
这就好比,一件事你可以自己做,也可以交给另一个人去做。
肚子饿了,你可以自己做饭,也可以打电话去订一份比萨,让店家替你做好送上门。
“网络服务”(WebService)的本质,就是通过网络调用其他网站的资源。
Web服务是为应用程序的使用而准备的,而不是为最终用户准备的。
通过将一个系统作为一个Web服务,第三方可以将这种功能整合到自己的客户应用程序中,这样便获得了一种开发解决方案的新途径:
无须在系统中设计所需的功能,只需简单地访问合适的Web服务以执行所需的操作。
如图1所示。
图1各应用系统通过Web服务实现集成和互操作
微软是这样定义WEB服务的:
WEB服务基于一个核心标准集,这个标准集描述了软件通信的语义和语法。
XML提供了数据表示的一般语法;简单对象访问协议(SOAP)为数据交换提供了语义:
Web服务描述语言(WSDL)提供了描述Web服务性能的机制。
服务提供者在注册中心发布自己所提供的服务,服务请求者在注册中心查找自己所需服务,找到调用接口,然后直接绑定到服务提供者。
所以,Webservice让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。
3.2WebService架构和云
如果一个软件的主要部分采用了“网络服务”,即它把存储或计算环节“外包”给其他网站了,那么我们就说这个软件属于WebService架构。
WebService架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。
比如,如果你要开发一个相册软件,完全可以使用Flickr的网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。
总体上看,凡是不属于你核心竞争力的功能,都应该把它“外包”出去。
其实“云计算”(cloudcomputing)或者“云服务”(cloudservices),可以看做就是WebService的同义词,不过更形象一些罢了。
它们不说你把事情交给其他计算机去做,而说你把事情交给“云”去做[3]。
3.3本地服务的缺陷
“网络服务”是未来软件开发和使用的趋势,本地服务将用得越来越少,主要因为以下三个原因:
本地资源不足。
很多数据和资料,本地得不到,只有向其他网站要。
成本因素。
本地提供服务,往往是不经济的,使用专业网站的服务更便宜。
这里面涉及硬件和人员两部分,即使你买得起硬件,专门找一个人管理系统,也是很麻烦的事。
可移植性差。
如果你想把本机的服务,移植到其他机器上,往往很困难,尤其是在跨平台的情况下。
3.4WebService的优势
除了本地服务的缺点以外,WebService还有以下的优越性:
平台无关。
不管你使用什么平台,都可以使用Webservice。
编程语言无关。
只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Webservice。
这大大增加了webservice的适用性,降低了对程序员的要求。
对于Webservice提供者来说,部署、升级和维护Webservice都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。
对于Webservice使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。
3.5Webservice的发展趋势
目前Webservice有这样几种发展趋势。
在使用方式上,RPC和soap的使用在减少,Restful架构占到了主导地位。
在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。
在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。
3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于云计算的web service技术及其应用 基于 计算 web service 技术 及其 应用