JCACHE 规范尘埃落定

  • Dan Woods
  • 王振峰

2014 年 4 月 30 日

话题:Java语言 & 开发架构

Oracle 于上月宣布JCACHE 规范最终定型。JSR-107 由来已久,始于 2001 年 3 月 6 日。经过 13 年的发展与演进,“Java 临时缓存 API”使 Java 拥有了与缓存系统交互的通用接口。

因为 JCACHE 原计划包含在去年发布的 Java EE 7 中,Oralce 曾经备受瞩目,但是由于错过“若干关键最后期限”,该 JSR 最终被排除在候选列表之外。根据 Oracle 最近对 JAVA EE 8 所作的调查,接近 2/3 的受访者表示对 JCACHE 包含在 JavaEE 新版中感兴趣。Oracle 在宣布规范完成后,紧接着又宣布该规范的参考实现可以随时应用于 Java EE 6 或 Java EE 7 应用,不用等到 Java EE 8 发布。

就其本身而言,JCACHE 提供了类似 Map 的访问缓存 API、将缓存脱机到持久性磁盘上的服务提供商接口(SPI)、检索命名缓存的 API 和注册事件监听器的 API。但是,规范没有定义缓存收回、复制或事务相关的策略。定义这些特性的工作放在了规范JSR-347——JGRID中,JCACHE 的定位是前期和基础组件。

为了了解 JCACHE 和 JVM 缓存前景相关问题,InfoQ 采访了 Ben Cotton,他是 JSR-107 和 JSR-347 规范专家组的成员之一。

InfoQ:为什么发起 JCACHE 规范?

JCACHE 之于 Java 缓存社区,与 JDBC 之于 JAVA RDBMS 社区一样。

JCACHE 规范承诺为 Java 提供一套标准 API,通过这套 API,编程人员可以透明地操作数据,不用关心数据放在哪里。当显式连接到 Hibernate 和 JPA L2 视图时,不论数据操作对象是数据库中的一列,还是 Map.Entry,对编程人员都是透明的。

InfoQ:您如何规划规范的未来发展呢?

由于支持事务的需求非常强烈,所以我们一直在这方面努力。另外,我们也在加强支持与 JGRID 规范的交互。除此之外,我们还会开放透明 API,这些 API 会适配到优质 Java 本地库的操作对象上(如 Peter 开发的OpenHFT SHM)。

除了开源参考实现之外,在项目 GitHub 主页中还可以免费获取 JSR-107 规范,包括问题和提交历史。


感谢臧秀涛对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

Java语言 & 开发架构