基于P2P 网络的Active XML 缓存机制研究

2016-01-09 12:26徐洲峰
电脑知识与技术 2015年30期
关键词:天气预报调用文档

徐洲峰

摘要:Active XML是一种新型的具有交换内涵数据功能的语言架构。在Active XML文档中内涵数据是通过本地或远程 Web services调用方式来获取。在Peer to Peer网络中,Active XML能改善工作任务的划分和分布。然而,如果一个站点属于多个Peer to Peer网络中的一员并且这个站点提供的服务被大量站点频繁调用,这个站点就会成为整个Web服务系统的瓶颈。在本文中,我们提出了一种在Peer to Peer网络中基于AXML技术的缓存机制的良好解决方案。该方案可以利用Active XML自身特性极大的简化缓存过程。

关键词:Active XML;Web service;Peer to Peer;缓存机制

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)30-0032-02

Active XML[1](AXML)是放在Peer to Peer[2] (P2P)架构下工作的,通过利用分布式结构的巨大的处理和存储能力,在分布式资源中进行网络数据交换。因此,在P2P网络中,每个站点(peer)既可以作为服务器提供服务,也可以作为客户端使用其他节点提供的服务。然而,如果一个站点在多个P2P网络中的话,它面临着大量站点的频繁服务请求。这样就会导致服务器出现性能瓶颈和增加网络的拥堵程度。

在本论文中,我们将探讨通过缓存AXML文档来解决这些问题。我们在每个同层级网络的AXML站点群中选取一个站点来存储AXML文档。该AXML站点负责从服务提供者那里取得数据,然后将存储的物化文档作为结果发送给其他站点。为了保证缓存数据的一致性,我们将在AXML文档中通过嵌入时间参数作为文档的有效期,超过有效期的文档需要重新进行物化。这种缓存机制通过一次计算多次分发和向服务申请用户提供缓存服务的AXML站点地址的方式来打破主服务器的性能和网络瓶颈。

1 Active XML特性

XML[3]语言是一种在网络上用来表示数据和交换数据的结构化数据模型标准语言,具有很强灵活性和兼容性,但是只能通过表单提供静态数据。Serge ABiteBoul等人为满足网络分布式数据管理的需求,提出了Active XML (AXML) 语言。AXML是集成XML,Web services[4]和P2P结构的平台,允许在XML文档中嵌套Web services[5]。XML文档中引入嵌入式Web服务,增加了文档的动态性和灵活性[6]。AXML作为XML的延伸,可以把网络服务的分布式数据作为参数或属性灵活的加入到XML中。因此,AXML是一种非常强大的整合网络数据和服务的工具。

AXML 主要包含AXML 文档和AXML站点两个部分[7]。AXML文档是动态的XML,一部分是直接给出的普通信息,另一部分是通过SOAP 协议调用Web服务来取得内涵信息。AXML 文档中的服务被调用后,通过物化过程,将其调用结果插入到原文档中替换服务调用元素。

AXML站点能够很好对AXML文档进行支持。在P2P网络中每个AXML既可以作为服务器提供Web服务,也可以作为客户端调用其他AXML站点的服务。AXML站点提供的AXML 服务是可以交换AXML 文档数据,AXML 服务可以接受AXML 文档作为输入参数,然后返回AXML 文档作为结果。AXML服务为系统之间的交互带来了更大的灵活性[8]。

2 AXML文档数据缓存层级

现在的AXML系统在应对潜在的网络拥堵也存在一些局限。例如发送方C向接收方S频繁发送一个经常使用的服务调用请求,S也将频繁发送AXML文档数据给C。当有大量的C向S发送同样的请求时,S就面临着系统负载过高及网络带宽瓶颈。

为了解决上述问题,我们提出了AXML文档数据分级缓存机制。AXML文档数据三级缓存机制分为:

第一层级:在这里把最初提供内容信息服务的服务器简称主服务器。把一些经常被大量站点调用的服务数据进行物化缓存,定时把缓存数据推送给第二层级的指定AXML站点,这样就不需要进行重复的计算,这样能极大地减少主服务器的系统负载。主服务器需要存储第二层级指定AXML站点的地址,在申请服务的站点进行相关服务调用的时候,通过发送指定AXML站点的地址的方式,让申请站点直接连接到指定AXML站点进行查询。

第二层级:在P2P网络中选一个具有良好性能和网络环境的AXML站点作为指定AXML站点,进行AXML文档数据缓存。指定AXML站点定时检查缓存文档是否都在有效期,如果由于网络等原因没有接收成功,需要向主服务器提出重新传送文档。同样,指定AXML站点中也存储普通站点的地址及其缓存内容列表,如果申请者相指定AXML发出服务调用请求,指定AXML站点根据申请者的网络地址和申请的服务进行判断,然后回复优选出来在线的第三层级地址的方式让二者直接建立连接进行服务调用。

第三层:在每个普通站点建立缓存。普通站点进行存储时,考虑到计算机的性能及硬盘容量等问题,只缓存常用的AXML文档数据。由于普通站点可能会不定时连接到网络,所以每次连接到网络时,AXML系统需要更新缓存中超过有效期的AXML文档数据,以保证数据的一致性。

3 AXML站点的软件结构及功能

在本节中,将说明在激活服务或者响应服务调用时各个组件如何协同工作。如图1所示,我们选择采用简单对象访问协议[9]SOAP议调用Web服务。

我们定义的:AXML Service Definitions模块负责定义该站点提供的服务;AXML Document Storage 模块负责存储其他站点频繁访问的AXML物化文档数据;Query Processor模块负责通过Cache Manager模块读取最新数据并完成相应处理;Cache Manager模块负责定时检查AXML Document Storage模块文档数据的有效性、读取和更新数据; Evaluator模块负责通过XML Service Definitions查询本站点提供的服务来决定是否激活服务,激活服务后通过Query Processor模块取得处理后的数据,根据从其他站点取得的数据结果读取和更新AXML Document Storage模块存储的文档数据。通过该结构能够实现AXML缓存机制所涉及的功能要求。

4 AXML缓存机制的工作流程及分析

本节将通过一个例子来分析AXML缓存机制的工作流程。例如某天气预报服务器每隔4个小时发布一次世界范围天气预报。该服务器提供的Web服务将会被全世界的在不同P2P网络(例如:中国、日本、美国、俄罗斯等国家网络)中的大量用户调用。而每个国家的提供天气预报的网站(例如:中国的新浪、腾讯、网易等),只是提供本国主要城市的天气预报(例如:中国的北京、上海、成都、广州等)。在AXML文档的三级缓存架构下,每个国家将会选出一个服务器作为指定AXML站点(例如:中国的新浪)。天气预报服务器将每隔4个小时将天气预报结果推送到指定AXML站点(新浪服务器)进行缓存。

当第一次腾讯服务器(普通站点)调用Web服务来取得中国主要城市的天气预报数据时,将会发送如下AXML文档:

China

Beijing

Shanghai

Chengdu

Guangzhou

...

天气预报服务器将用存储的指定AXML站点地址回复腾讯服务器的访问:

Sina.com/getcached(forecast(Beijing,Shanghai,Chengdu,Guangzhou…))

腾讯服务器就将从新浪服务器取得天气预报数据。新浪服务器也将存储其他普通站点的地址及访问的天气预报城市列表。当新浪服务器负载达到设定值时,同样通过回复检索出来既在线又缓存了相应城市天气预报数据的普通站点地址,让两个普通站点之间建立连接。通过本例子,可以看出AXML缓存机制能够有效避免服务器潜在的网络拥堵和计算机性能不足的问题。

5 结束语

AXML是一种强大的网络数据和服务的集成工具,但是在P2P网络中对于网络环境和服务器性能有潜在的不利影响,通过分布式的三级缓存机制可以有效避免这种情况的发生。利用AXML自身的技术特性、P2P网络特性和成熟的Web技术,这种方案可以把更多的工作分布到不同网络上的不同AXML站点中去完成,可以极大减少主服务器的工作压力,保证整个Web服务的流畅进行。

参考文献:

[1] Active XML.AXML Fundamentals[EB/OL].http://www.activexml.net,2009-10-26.

[2] 张联峰,刘乃安,钱秀槟,等.综述:对等网(P2P)技术[J].计算机工程与应用,2003,39(12):142-145.

[3] W3C.extensible Markup Language(XML)1.0(2nd Edition)[EB/OL]. (2008-11-26).i.http://www.w3.org/tr/rec-xml.

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

[5] 金字,殷丽凤.主动XML数据研究综述[J].科技咨询导报,2013(20):31-31.

[6] 马海涛,朱燕,郝忠孝.一种Active XML模式重写算法[J].计算机科学,2009,36(5):163-165.

[7] 高永兵,赵菲,胡文江,等.AXML站点特性的研究[J].计算机与现代化,2010(4):129-132.

[8] 马海涛. Active xml数据管理基础问题研究.哈尔滨:哈尔滨工业大学计算机科学与技术学院,2009.

[9] Keio. Simple Object Access Protocol(SOAP) 1.1[EB/OL]. (20 07-08-27).i.http://www.W3.org/tr/soap.

猜你喜欢
天气预报调用文档
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
测不准的天气预报
天气预报的前世今生
基于系统调用的恶意软件检测技术研究
基于RI码计算的Word复制文档鉴别
中期天气预报
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat