论文部分内容阅读
随着Internet的发展和企业级分布式应用体协结构的不断成熟,性能和伸缩性问题越来越被认为是大、中型服务系统所面临的最严重的挑战之一。缓存技术是提高企业级应用系统性能和伸缩性的有效手段之一。目前,根据缓存优化体系结构中不同的层面,缓存技术的应用主要有持久层缓存和Web层缓存。
持久层缓存主要解决应用系统访问数据源之间的性能瓶颈。Web层缓存主要缓存了经常访问的静态页面或者部分页面静态数据。但是,现有的缓存技术普遍存在以下二点不足:(1)持久层缓存不支持自动维护缓存内部对象问关系;(2)Web层缓存因为不具备感知缓存页面相关的后台数据库变化,缺少对动态页面进行缓存支持。
为了综合解决上述两个问题,论文在深入分析现有相关的缓存技术之后,提出了基于对象-关系映射缓存系统。该系统包括对象关系缓存和Web缓存。具体内容介绍如下:
—对象关系缓存将缓存的生命周期分为两个阶段(导入阶段和更新阶段)以解决缓存实例之间对象关系的维护问题。对象关系间信息是维护对象间关系的基础。缓存在初始化阶段完成待缓存对象的排序和信息分析后,导入对象实例。在更新阶段,缓存将根据关系基数、是否双向等条件选择策略更新对象关系。论文给出了基于EJB3的对象关系缓存的实现问题。
根据Web缓存模型中表达式的k-级稳定性得出的页面判断定理及推论,Web缓存指定了三种不同的缓存策略:应用级缓存,会话级缓存和基于JSF对象级缓存。确定缓存在请求响应生命周期中的位置是缓存实现的关键之一。应用级缓存和会话级缓存是基于Servlet的缓存实现。当处理请求时,考虑缓存策略的同时,Web缓存根据请求的上下文环境,生成请求的映射ID。基于JSF对象级缓存设置于JSF的视图处理器中。
对象关系缓存通过事件代理模型通知Web缓存进行更新,论文举出一个投票网站的示例描述了具体的工作过程。
论文给出了试验环境和试验结果的分析。针对对象关系缓存的一致性问题,设计了相应的测试实例。同时,论文还测试了的缓存间的事件模型是否正确工作。根据性能和伸缩性,论文检验了使用缓存前后系统的请求平均响应时间和单位时间内用户响应数。结果表明基于对象一关系映射缓存的使用明显提高系统的性能和伸缩性。