Web服务调用在云计算中的应用

2014-09-07 06:43涛,胡
重庆第二师范学院学报 2014年3期
关键词:调用客户端电脑

彭 涛,胡 飞

(重庆第二师范学院 网络中心,重庆 400065)

1 引言

Web服务是基于XML和HTTP的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据,它解决了异构服务器平台之间数据和应用共享,以及应用负荷分担的问题[1]。这种技术在小范围内应用不会有多大问题,但是随着调用的客户端增多,高并发的时候,被调用的服务器将不堪重负,并且服务器接入线路也无法处理如此大剂量的流量。而云计算的引入正好可以解决这个问题。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云计算是一种基于因特网的超级计算模式,在远程的数据中心,几万甚至几千万台电脑和服务器连接成一片,因此,云计算甚至可以让你体验每秒超过10万亿次的运算能力,如此强大的运算能力几乎无所不能。用户通过电脑、笔记本、手机等方式接入数据中心,按各自的需求进行存储和运算。通过云计算把被调用服务器上的数据和应用分担到各个调用它的客户端服务器上,从而解决服务器不堪负荷以及服务器接入线路不堪大剂量流量的问题。

2 基于云计算的Web服务调用算法

图1是Web服务调用传统应用和基于云计算应用对比图。在传统应用中,所有数据都从被调用服务器直接传递给客户端服务器,被调用服务器完成数据运算工作并承担所有的数据流量,当客户端服务器数量大量增加以后,被调用服务器的数据处理能力和互联网带宽将无法承受[2]。目前改进的做法是增加被调用服务器的数量,由多台被调用服务器构成一个分布式服务提供者[3],或者通过QoS实现Web服务动态编排解决方案[4]以及P2P技术的引入[5],还有就是通过MTOM分次传输大量数据[6]或者通过WCF的ConcurrencyMode属性来实行并发连接[7]。这些方法虽然可以起到一定缓解作用,但是以牺牲时间和建设维护成本为代价的,而且随着客户端调用者数量的进一步增大,这些方法不能从根本上解决问题。

图1 Web服务调用技术传统应用&基于云计算的应用

如何提升Web服务调用性能?在不增加设备投入成本的基础上减少调用时间。云计算技术的引入为这问题带来了廉价高效的解决方案。如图1的右图所示,被调用服务器此时不再仅仅作为被调用数据的提供者,而是一个调度者,互联网上所有客户端服务器和这个被调用服务器一起构成一个分布式服务和数据提供者,这样许多台服务器和电脑连成一片,其中每一台服务器或电脑既是服务获取者,又是服务提供者,运算和传输负荷分摊到所有服务器和电脑上,不仅是被调用服务器,而且是让所有客户端服务器来一起提供Web服务。本算法基于静态数据调用实现,其描述如下:

算法——基于云计算的Web服务调用算法

输入:提供数据下载的服务器用户库 CSL

输出:随机抽取用户库中的服务器,下载数据Rdata

1. CSL = DisOrderServer(CSL); //把CSL顺序打乱重新排序

2. foreach (servers cs in CSL)

3. {

4.if (checkServer(cs.serverIP)) //检查客户端服务器是否可用

5.{

6.css.Add(cs); //随机抽取10个可用的客户端服务器

7.if (css.Count >= 10)

8.break;

9.}

10. }

11. threadDownload(css); //多线程从10个服务器中分段下载数据

12. Rdata = mergeData(); //返回合并的数据

13. return Rdata;

算法的基本思想是首先被调用服务器内维护有一个提供数据下载的服务器用户库CSL,当一个客户端服务器向被调用服务器请求数据的时候就自动注册进这个用户库,注册信息包括客户端服务器ip地址和要调用数据的入口地址等信息;然后被调用服务器向客户端服务器发送这个用户库;最后客户端服务器再从这个用户库里面随机选取服务器下载数据,同时在客户端服务器上保留一份数据备份以供其它客户端服务器下载。这是一种高效的运作模式,其参与的客户端服务器越多,效率越高,而作为服务提供者只需要一台被调用服务器即可。

3 实验结果

本文在相同的硬件和网络环境下就传统Web服务应用和基于云计算的Web服务应用作对比分析。实验环境为一个51台计算机的机房,全部安装Windows Server 2003和IIS,Web服务采用Microsoft .Net 环境下的WCF,修改web.config设置WCF的最大并发数、处理数和会话数为10000并调高超时时间,调用数据为一段10KB的文本数据。其中一台电脑作为被调用服务器,名字Server1,其它50台电脑作为客户端服务器,名字Client1到Client50,所以客户端服务器上运行一个计时操作小软件,该软件能在设定时间触发调用Web服务。两种技术分别在此环境下进行实验。当所有客户端服务器同时单进程调用Server1的时候,在Server1上监控得到平均CPU使用率和网络利用率都不高,客户端服务器上监控得到的调用完成耗时也保持在100ms左右。当每台客户端服务器都开放10个进程同时调用Server1的时候,相当于总共500台客户端服务器调用Server1,情况发生了变化,实验结果如表1所示。因为在基于云计算的Web服务的实验中,客户端服务器首次下载的时候会在本地生成数据副本,所以首次实验结果不记录,表1中的记录是反复多次实验中某一次的实验记录,其它次实验记录的数据和表1数据相差不大,只有个别实验记录数据有较大出入。

表1 传统Web服务与基于云计算的Web服务实验对比

由表1中实验数据可知,因为大量的数据流量都分担到各个客户端服务器之间,所以Server1的负荷大量下降,Web服务调用性能大幅提升。其中有几个客户端服务器调用还超时,这是由于Server1来不及响应造成的。

4 结束语

本文提出了基于云计算的Web服务调用算法,着重解决了传统Web服务调用中被调用服务器性能无法满足大用户量、大数据流量调用的问题,实验表明该算法在高并发调用基于静态数据的Web服务方面有极大优势。

参考文献:

[1]岳昆,王晓玲,周傲英.Web服务核心支撑技术:研究综述[J].软件学报,2004,(03).

[2]曾洁,胡永培,卢显良.Web服务器群集负载平衡技术与实现[J].计算机科学,2002,(04).

[3]Tseng C.-W., Yang C.-S. System support for web hosting services on server clusters[J]. Computers and Electrical Engineering , May 2007,33(3):208-220.

[4]王世元,肖斌,汪敏,秦光源.基于QoS的Web服务动态调用策略[J].计算机与信息技术,2009,(12).

[5]Doulkeridis C, Zafeiris V, Norvag K, Vazirgiannis M, Giakoumakis. Context-based caching and routing for P2P Web service discovery. Distrib Parallel Database 21(1):59-84.

[6]运用MTOM分次传输大量的资料[EB/OL].http://www.dotblogs.com.tw/jeff-yeh/archive/2009/09/27/10798. aspx

[7]蒋金楠.WCF技术剖析(卷1)[M].北京:电子工业出版社,2009.

猜你喜欢
调用客户端电脑
电脑
电脑节来了
电脑能够自己思考吗?
核电项目物项调用管理的应用研究
如何看待传统媒体新闻客户端的“断舍离”?
LabWindows/CVI下基于ActiveX技术的Excel调用
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于系统调用的恶意软件检测技术研究