移动云环境中基于Agent 的缓存一致性维护策略研究

文章来源:数学论文网 发布时间:

  0 引言

?

  移动和频繁断连是移动设备特点之一,利用移动设备自身计算和存储能力,可缓存服务器中部分”热点”数据,当客户端因断连或网络拥塞而与服务器”失联”时,在本地即可找到所需数据。但当服务端数据更新时,客户端缓存会出现由于未及时更新而与服务器不一致等问题。

?

  移动缓存一致性维护问题是当前研究热点之一。目前最有代表性算法,是带有时间戳的广播算法(BroadcastingTimestamps Strategy,BTS),服务器每隔一个时间段,向客户端发送一个包含更新数据的失效报告(Invalidation Report,IR),用以更新缓存。但是,BTS 算法基于C/S 模式,当服务器数据更新时,需通知每一客户端并等待确认,服务端会因为客户端无法及时确认而产生”写延迟”,客户端的频繁断接还会加剧”写延迟”;客户端不允许断接,一旦断接就会始终处于重连等待状态;客户端每次断接重连后需重新验证缓存;这些都会影响客户请求响应速度及网络通信开销。

?

  移动云计算是移动互联网和云计算相结合的新技术;Agent 具有主动性和智能性,适合在异构开放环境中提供中间件服务,在减少网络”延迟”、支持轻载移动设备方面具有不可比拟的优越性,而移动设备具有移动性、计算能力弱、存储空间小、电池容量小特点。因此,移动缓存技术同移动云技术和Agent 技术具有天然的匹配性。

?

  移动云环境中基于Agent 的缓存一致性维护策略(Cache Consistent Maintenance Scheme Based on Agent inMobile Cloud Environment,CSC),针对传统算法中存在的服务端”写延迟”及终端断接操作,结合移动云技术、Agent技术及缓存技术,搭建三层结构移动云平台,并在中间层建立数据缓存,利用中间层协调客户端与服务端关系,通过移动代理来维护”双缓存”一致性。实验结果表明,该策略能够有效解决”写延迟”和终端断接操作及断接重连后的一致性验证问题,并能提高客户请求响应速度、减少网络通信开销。

?

  1 移动云环境中基于Agent 的语义缓存维护平台

?

  移动云环境中基于Agent 的缓存一致性维护平台(Cache Consistent Maintenance platform Based on Agent inMobile Cloud Environment,CPCE),是借助移动云技术、Agent 技术及缓存技术搭建起来的三层结构移动云平台,在云平台的中间层开辟大缓存空间并建立缓存状态信息列表,利用中间层对缓存数据进行备份和一致性维护,有效解决服务端”写延迟”问题,同时支持终端频繁断接,提高终端访问请求的响应速度,减少数据通信开销。

?

  1.1 CPCE 平台的Agent 体系结构及通信方式

?

  Agent 具有主动性与智能性特点,能减少网络”延迟”、支持轻载设备。CPCE 平台中的Agent 有静态Agent 和移动Agent 两种类型,实行统一标识、统一命名管理,采用”黑板报”通信机制,平台中的Agent 之间互相”协商”,共同完成缓存一致性维护的任务。

?

  定义1 CPCE 平台的Agent 模型

?

  CPCE 平台的Agent 模型定义为5 元组如公式(1):

?

  agent ? (ID,type,currPara, state, policy) (1)

?

  ID 属性用以标识CPCE 平台的Agent 唯一性,一个节点可以存在一个或多个Agent,故ID 由所在中心服务器号(Central Server)、小区服务器号(Cell Server)及本地序号共同组成;Type 属性标识Agent 类型;state 标识Agent 当前工作状态是否忙;currPara 描述Agent 当前资源共享情况及历史信息;policy 是Mobile Agent 的任务策略属性,Agent根据自身情况及相关环境参数,确定是否进行迁移以及往何处迁移。

?

  静态Agent 有Process Agent、Service Agent 和MonitorAgent 3 种类型,分布在客户端、服务端及中间层,负责处理所在层的相关事务。

?

  移动agent 为Mobile Agent,在中间层移动并执行任务,也可以移动到其所对应的客户端执行某种任务,同时与其所对应的静态Agent 进行协商,以协调客户端与服务端关系,共同完成管理并维护缓存的任务。Mobile Agent 在CPCE 平台中的运行机制。

?

  Agent 采取”黑板报”的通信机制。”黑板报”为在云服务器内开辟的一块为全局共享内存区域,是标识平台内Agent 及节点信息的”目录表”,每个Agent 主动向”黑板”上”张贴”或”读取”相关信息。”黑板报”上的信息,是Mobile Agent 行动决策的依据之一。

?

  1.2 基于Agent 的CPCE 三层结构移动云平台构建

?

  CPCE 平台是由服务端、客户端、中间层以及Agent 系统构建而成的三层结构移动云平台系统。服务端由中心服务器(Central Server)、Monitor Agent 和Process Agent 组成,可以存放客户端所需数据,并有中心控制作用,有线连接多个本地服务器(Cell Server),属于云中心服务器。MonitorAgent 对”热点”数据进行周期性广播,并由中间层进行数据的接收;Process Agent 接收来自中间层的Monitor Agent的查询请求。

?

  客户端由移动终端(Mobile Terminal,MT)、MonitorAgent 和Service Agent 组成,MT 无线接入到本地服务器(Cell Server)中,中间层为每个移动终端创建一个MobileAgen(移动代理),用来代替移动终端处理相关事务。MonitorAgent 负责接收来自中间层的广播数据并更新缓存,ServiceAgent 负责提交客户端的查询请求并接收来自中间层或服务端的查询结果。

?

  中间层由本地服务器(Cell Server)、Monitor Agent、Process Agent 及若干Mobile Agent 组成。Cell Server 有固定移动通信网关接口功能,发送的信号覆盖的范围称为一个”小区”(Cell),一个Cell Server 无线连接若干MT。MonitorAgent 接收服务端的广播数据并更新缓存,向客户端广播更新数据,Process Agent 处理来自客户端的查询请求。

?

  Cell Server 为其”辖区”范围内的每个移动终端创建一个移动代理Mobile Agent,该Mobile Agent 可以移动到其对应的客户端并执行某些事务;同时,当移动终端从一个”小区”移动到另一个”小区”时,与其对应的Mobile Agent也要相应移动到其对应的移动终端所在 “小区”的CellServer 中,Mobile Agent 紧紧”跟随”移动终端,随着移动终端来回”穿梭”于各个”小区”。Mobile Agent 实行”属地管理”机制,接受所在”小区”的管理。

?

  2 CPCE 平台”双缓存”构建

?

  基于移动终端及移动云端在计算和存储能力方面各自特点,CSC 策略采取”双缓存”机制,考虑在移动终端和CPCE 三层结构云平台的中间层开辟缓存。移动终端缓存,是利用移动终端自身的处理和存储能力而开辟的一块存储空间以缓存部分”热点”数据,可提高数据访问速度、减少网络拥塞。

?

  考虑到移动终端计算能力弱、存储空间小、电池容量小等特点,CSC 策略利用移动云存储,在CPCE 平台中间层开辟大缓存空间,用以缓存终端热点数据。在CPCE 平台中间层Cell Server 中建立的缓存里,每个客户端都有对应的备份,并建立一个云端缓存区号,且由”Cell 缓存状态信息列表”记录相应信息。移动终端与其相应的”Mobile Agent 号”、”云端缓存区号”以及”Cell 缓存状态信息列表号”一一对应。

?

  定义2 Cell 缓存状态信息列表

?

  Cell 缓存状态信息列表,记录中间层缓存状态信息,存放于CPCE 三层结构云平台中间层的缓存中,每一个Cell缓存状态信息列表对应中间层一块缓存区,由Cell Server中的Monitor Agent 维护并管理,可以被其对应的MobileAgent 携带,”游离”于其所在的Cell Server 及其相应的移动终端,还可随着移动终端的移动而”穿梭”于各个”小区”。Cell 缓存状态信息列表cachTabl 定义为五元组:

?

  cachTabl ? d invaFlag counter starLog offTimeMobi d D i j N? i j j ? ( , , , , ) | ? , , ?

?

  invaFlag 属性为数据项失效标志,starLog 属性为记录脱机事务日志启动与否的量。offTimeMobi 为记录客户端与CellServer 断接时间长度。counter 记录客户端在某段时间内的访问次数平均值,是数据访问热度标志,是Cell 缓存数据换出换入的依据。

?

  中间层Cell Server 与其中的Monitor Agent、ProcessAgent 及Mobile Agent,起到协调移动客户端与服务端的作用,负责监控、管理、维护缓存以及接受移动客户端数据请求,维护移动终端缓存数据的一致性。

?

  考虑到空间资源利用率,CSC 策略根据Cell 缓存状态信息列表的相关记录参数,实现缓存数据”换入换出”的动态机制,”换人”移动客户端近期常访问的”热点”数据,”换出”那些长期未访问过的较”旧”的数据。

?

  3 移动云环境中基于Agent 的缓存一致性维护策略

?

  CSC 策略,搭建三层结构移动云平台并构建”双缓存”,利用中间层对缓存数据进行备份和一致性维护,既减轻移动终端负担,又达到了数据强一致性,并支持移动终端频繁断接。

?

  3.1 客户端事务驱动缓存维护策略

?

  客户端事务驱动缓存一致性维护,是由客户端查询请求事件驱动发起,是客户端的MT 及其Agent 与中间层交互并维护客户端缓存与中间层缓存一致性的过程。

?

  移动客户端的Monitor Agent 可对网络连接进行实时监听。当客户端有数据查询请求时,如果客户端处于联机状态,则客户端的Service Agent 启动联机事务,如果客户端处于断接状态,并且断接时间offTimeMobi 大于服务器广播时间间隔cellServBroaInte,则Service Agent 启动断接事务,若这时Monitor Agen 监测到客户端由原来的断接又重新联机,这种由断接到联机的状态,称为物理重联机状态,则ServiceAgent 立即启动集成事务,而后客户端就进入正常联机状态运行。下面分别介绍这3 种事务。

?

  客户端联机事务。当客户端有数据查询请求并检测到处于网络联机状态时,其中的Service Agent 将发送信息到该客户端所在”小区”的本地服务器Cell Server,Cell Server接受该信息并验证时间戳,如果仍是时间戳TS0,则表明数据很”新”,则直接在MT 端执行操作,如果时间戳过期,此时要执行一致性维护,返回中间层缓存”最新”数据,同时保存时间戳并更新Cell 缓存状态信息表。如果中间层缓存数据不是”最新”,则直接到Central Server 中查找并返回数据。

?

  客户端断接事务。当客户端有数据查询请求而这时却处于断接状态,移动终端会因无法连接服务器而得不到最新数据,此时移动终端缓存便充当”临时服务器”角色。实际上,多数情况下客户端并不一定必须要最新数据,只要偏差在一定范围内也是可以忍受的。CSC 策略采取,当断接时间offTimeMobi 小于cellServBroaInte 时,视作客户端缓存有效;当断接时间offTimeMobi 大于cellServBroaInte 时,则启动断接事务执行程序。

?

  执行断接事务程序时,客户端的Service Agent 在移动终端缓存执行暂态事务,并记录暂态事务日志,等待重新联机时与移动到终端的Mobile Agent 携带过来的Cell 缓存状态信息列表融合,再根据融合结果更新客户端缓存。CSC 策略允许客户端在断接状态工作,无论断接时间长短都有相应方案,而BTS 等传统策略只允许连机状态下工作,一旦断接就一直处于重连等待状态中。

?

  客户端集成事务。当客户端有数据查询请求,且此时处于断接状态的客户端又再次联机时,监控网络连接状态的客户端Monitor Agent 会通知中间层,这时,与该移动终端对应的中间层Mobile Agent,会携带Cell 缓存状态信息列表移动到客户端,同客户端Service Agent 进行协商,将Cell 缓存状态信息列表与断接状态时记录的暂态事务日志进行融合,如果发生冲突,则对相应的暂态事务回滚并提交,同时更新客户端缓存。

?

  3.2 服务端驱动缓存一致性维护策略

?

  服务端事务驱动缓存一致性维护,是由服务端数据更新事件驱动发起,是服务端的云中心服务器及其Agent 与中间层交互并维护中间层缓存与服务端一致性的过程。服务器端驱动语义缓存一致性维护算法,如算法1:

?

  算法1 服务器端驱动语义缓存一致性维护算法

?

  输入:central server 数据更新信息

?

  输出:local server 数据更新

?

  while (update data in central server) do{//中心服务器有数据更新

?

  send update_message to monitor agent of local server//向中间层monitor agent 发送更新消息

?

  if(local server receive update_message ){//如果中间层monitor agent 收到更新信息

?

  send ok to central server//向central server 发送确认消息

?

  if(central server receive ok){//如果中间层收到确认消息

?

  local server update data }//本地服务器更新中间层数据

?

  }else{

?

  central server wait // central server 延迟等待

?

  }

?

  }else{

?

  central server wait // central server 延迟等待

?

  }

?

  当中心服务器central server 有数据更新时,其中的Monitor Agent 将更新通知发送给缓存了该数据项的中间层Monitor Agent,当中心服务器接收到中间层确认信息后,即可更新中间层缓存数据并将相关信息连同时间戳一同保存在Cell 缓存状态信息列表中。

?

  在传统的两层结构中,中心服务器将更新数据消息直接发送给移动客户端并等待确认,这时,服务端可能会由于断接而无法及时得到客户端确认,进而出现服务器”写延迟”问题。而在CSC 策略中,中心服务器更新的数据不是缓存在移动客户端,而是在本地服务器,由于中心服务器与本地服务器有线连接,因此,不会出现”写延迟”问题,并且终端断接重连后不需要进行一致性验证。

?

  3.3 CSC 策略缓存数据”粒度”更新方法

?

  传统算法中,服务端采取每隔一个时间段发送包括所有被修改标识的失效报告给客户端,当终端断接时间超过失效报告时长时,必须将缓存全部失效。终端重连后,服务端收到客户端发送过来的所有数据请求,都以广播方式将数据发送到客户端。显然,这会大大增加网络通信开销。

?

  CSC 策略,搭建CPCE 三层移动云平台,建立”双缓存”,利用中间层为终端提供缓存备份并协助终端进行缓存一致性维护。中间层对缓存数据更新操作,是更新数据序列操作,而不是发送失效报告来笼统更新全部数据。当终端要恢复缓存有效性时,或者有数据查询请求时,只需要访问中间层缓存中的更新序列并执行,即可达到客户端缓存与服务端数据一致性的目的。这就是CSC 策略缓存数据”粒度”更新方法。

?

  因此,这种CSC 策略缓存数据”粒度”更新方法,较BTS 等传统失效报告方法,会大减少网络通信开销和缓存一致性维护的时间开销。

?

  4 仿真实验及性能分析

?

  仿真实验任务:验证CSC 策略能够有效解决服务端”写延迟”和终端断接操作及断接重连后的一致性验证问题,并能提高客户请求响应速度、减少网络通信开销。

?

  对比试验为:带有时间戳的广播算法(BTS)。仿真实验构建三层结构移动云平台:云中心服务器Central Server 一台为服务端,有线连接3 台本地服务器CellServer 为中间层,这些机器均采用Pentium P6100 2.00GHz处理器,内存2GB,操作系统WindowsXP Professional,每台本地服务器无线连接4 台移动终端为一个”小区”,采用java 语言编程,云平台Hadoop,IBM Aglet SDK 实现CPCE平台的Agent 系统。

?

  5 总结

?

  移动云环境中基于Agent 的缓存一致性维护策略,在构建基于Agent 的三层结构移动云平台基础上,根据移动终端及移动云存储特点建立”双缓存”,同时,利用中间层维护管理缓存并协调客户端与服务端关系,通过移动代理来维护”双缓存”一致性。该策略解决了传统算法中存在服务端”写延迟”和断接操作问题,提高客户请求响应速度、减少网络通信开销。因此,CSC 策略非常适用于终端频繁移动、断接的无线网络计算环境。下一步,将进一步研究移动云环境中基于多Agent 的移动终端在”小区”间频繁切换时的代价最优问题。