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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论