软件项目实训及课程设计指导——如何应用OSCache缓存框架提高Web页面响应性能
1、缓存应用技术是提高软件应用系统性能的最简单和最有效的方式之一
在计算机的软硬件系统中大量地应用缓存(Cache)技术,所谓“缓存”是指位于“目标”(可以为软件类的应用系统,也可以为硬件设备或者部件)和“源”(一般为数据源)之间,其目的是为了匹配“目标”和“源”之间由于数据传输速度的差异,或者为了减少“目标”对物理数据源频繁访问的次数等应用要求,从而提高“目标”所属的软硬件系统的运行性能。
比如,大家经常使用的Web浏览器中就应用了缓存技术,Web浏览器通过应用缓存可以缩短Web网页请求资源的频次(比如对当前Web页面的重复刷新),减少延迟。并且由于存储在缓存(缓存的介质一般是内存)中的文件可以重复使用,因此Web浏览器,通过应用缓存还可以减少网络带宽,从而降低网络负荷。
在Java应用程序开发实现和J2EEWeb应用系统的设计和开发实现中,软件应用系统的设计和开发实现人员可以在系统的表示层和系统的持久层中充分地应用缓存机制和相应实现技术能够大大地提高Web应用系统的访问性能。
比如数据库连接池、多线程应用中的线程池、对象复用池以及各种应用框架中的缓存插件,如Hibernate框架中常使用的二级缓存插件EHCache,分布式应用环境中的高速缓存系统MemCache,基于key-value(键/值对)远程字典服务的Redis以弥补MemCache等系统在key-value形式的存储应用中的不足。
如下示例图为EHCache缓存框架的官方网站页面局部截图,读者如果在项目开发中需要应用EHCache缓存框架,可以在官方网站中下载相关的系统库文件,或者浏览相关的技术参考文档资料。
当然,在应用缓存机制时一定要将软件应用系统中不经常改动但又需要频繁访问的数据加以缓存。比如在Web应用系统开发中,可以将BBS论坛系统中的分类信息、新闻系统中的新闻信息、网上商城中的商品信息等进行缓存。作者在下文中为读者介绍如何应用开源的OSCache缓存框架以提高J2EEWeb应用系统的响应性能。
2、应用开源的OSCache缓存框架以提高Web应用系统的响应性能
OSCache是OpenSymphony组织提供的一个基于J2EE架构的Web应用系统中的表示层和应用层的缓存技术支持的J2EE缓存框架。下图所示的示例图为OSCache框架的官方网站页面。
但由于OpenSymphony的官方网站已经在年11月份就已经关闭了,读者如果现在项目开发中还需要应用OSCache缓存框架,可以通过国内的系统平台进行下载。可能是由于OSCache缓存框架当时很流行的原因吧,国内许多系统平台都提供了OSCache缓存框架的系统库文件供开发人员下载。作者在下文中给读者推荐一个国内下载平台,参看如下示例图所示。
尽管OSCache缓存框架也可以缓存普通的Java类对象,但开发人员一般都将它应用于J2EEWeb表示层中实现Web页面内容的缓存。因此,在J2EEWeb应用系统项目的表示层开发中通过应用OSCache缓存框架,开发人员不但可以实现通常的缓存功能,还能够改善J2EEWeb应用系统的稳定性和减轻对Web服务器的负担、并减少对数据库表中的数据IO访问的性能开销。
3、开源OSCache缓存框架的主要技术特性
(1)能够兼容多种不同形式的J2EEServlet容器
开源OSCache缓存框架目前能够支持各种主流的商业和开源的J2EEServlet容器——包括BEAWeblogic(现在改为OracleWeblogic)、IBMWebsphere和Tomcat等,其它支持J2EEServlet2.3、JSP1.2版本的Web服务器应该都是完全兼容OSCache缓存框架系统的。
(2)可选的缓存区定义配置
Web应用系统的开发人员在具体应用OSCache缓存框架时,可以使用内存、硬盘空间或者同时使用内存和硬盘实现缓存。但使用内存作为缓存区将可以提供更好的性能、速度更快,而使用硬盘作为缓存区可以在Web服务器重启动后迅速恢复所缓存的数据内容;当然也允许Web应用系统的开发人员提供自己的其它资源(但需要自己提供适配器)作为缓存区。
(3)灵活的缓存系统的实现并提供不同形式和级别的缓存实现
OSCache缓存框架不仅可以实现Web页面级(整个Web页面)的响应内容缓存,也可以对Web页面中的部分内容进行缓存,这完全由开发者在具体应用时根据待开发的应用项目不同的需求、不同的环境选择不同的缓存级别;而缓存的内容可以为任何对象,比如可以缓存Web页面或HTTP请求、Java类的对象实例等。
(4)还提供功能丰富的系统类库API
OSCache缓存框架通过提供丰富的系统类库API,从而允许Web应用系统的开发人员通过编程的方式来控制和管理OSCache缓存框架的功能实现。通过应用OSCache缓存框架,能够提高应用系统的容错能力——因为在一般的Web应用系统中,Web页面中的动态数据基本上都来自于后台的数据库表。而如果某次请求响应时的数据库访问中出现了错误,那么用户将看到系统所提示的各种错误信息。
但如果此时Web应用系统的表示层组件中应用了OSCache缓存框架技术实现了Web页面缓存,那么OSCache缓存框架就可以使用缓存中的Web页面内容作为响应输出,从而减少了产生错误信息的次数,相应地也就提高了应用系统的容错能力。
4、在Web项目中添加OSCache缓存框架的系统包文件
OSCache缓存框架相关的系统库文件主要为oscache-2.3.2.jar和