随着TerracottaEhcache的收购成行,业界两大知名的开源Java缓存产品走到了一起。以提供JVM级“POJO集群”而闻名于世的Terracotta可以将运行在单个JVM上的多线程应用移植到多个JVM上而无需修改任何代码;而Ehcache的使用也是相当广泛的,无数的产品和项目中都可以见到其身影;它提供了类似于Oracle Coherence的标准的HashMap风格的接口。这两者的强强组合将会出现在绝大多数的Java缓存产品中,鉴于此,InfoQ采访了Terractta CEO Amit Pandey以及Ehcache创建者Greg Luck一探究竟。

对于Ehcache用户来说,加入Terracotta将获得如下好处:

  1. 可以继续使用当前的Apache 2协议。
  2. 使用由Terracotta所管理的全新托管环境:高质量的论坛、源码控制、maven基础设施等等,而位于sourceforge上的那些内容则保持不变。
  3. 一个致力于不断提升Ehcache性能和特性的全职卓越团队。
  4. 为基于Ehcache的应用添加集群以及分布式数据的升级指南。
  5. 针对Ehcache安装和配置的企业级支持与培训。

而对于Terracotta用户来说:

  1. Ehcache接口将替换掉Terracotta的分布式缓存从而成为单独的缓存接口,它也将成为Terracotta分布式缓存的标准。
  2. 单节点版本的Terracotta,可以像其服务器版那样运行在桌面w/o上。
  3. 可以轻松运行在最新版的Ehcache上。
  4. 针对其缓存接口/程序库以及可伸缩性/可靠性/运行时的一个供应商支持结构。

Amit Pandey说到:

首先要保证无缝的用户体验,其次要确保Ehcache与Terracotta的集成比当前更加紧密,比方说在提供单独的Ehcache下载的同时再加上个一致的Terracotta后端。由于我们已经进行了合作,因此你现在就能体会到这一点,但对于开发者来说情况就有些糟糕了。经过我们的努力,集成之后的性能比每个产品都要棒,因为我们熟悉所有的代码。

Amit说到:对于Terracotta来讲,“此次收购无疑会对Coherence造成巨大冲击”。收购Ehcache会让Terracotta更加轻松地触及现有的使用了Ehcache的众多项目和产品,Terracotta认为“这个数量极其庞大,包括了世界上大多数1000强公司”,同时开发者也可以多种方式来构建分布式的基于缓存的应用。虽然Terracotta以提供透明的POJO集群而闻名,但Amit说到:“透明是我们最大的优势,然而有些人却批评说人们还必须要进行计算才行”。Greg Luck补充说到:

Ehcache采取了一种非常简单的手段来处理缓存。我觉得Terracotta虽然简单,但要想使用终归还是需要一定的工作量。有不少人喜欢Terracotta的POJO方式,然而大多数人还是不想尝试新东西。Terracotta的很多思想都很前卫,但要知道,对于整个J2EE世界来说,简单的API模型才是最重要的。

相对于Coherence来说,Terracotta与Ehcache的联合具有如下优势:

  1. 使用率。如果你已经将应用构建在了Ehcache上,那么现在就可以轻松升级成分布式的了。
  2. 多种手段来使用缓存。既可以使用传统的Terracotta POJO缓存,也可以使用基于API的方式。
  3. 开源。Greg Luck说到"Coherence是闭源的”。对于开发者来说,如果想使用Coherence就必须请示高层(比如说CTO);而Ehcache和Terracotta开发则可以从基层做起。这样对于那些想使用Coherence的开发者来说就可以先从Ehcache开始(一个结点),然后轻松移植到分布式的Terracotta上。

Greg Luck认为合并是保持竞争力的一个强有力的手段,尽管他在过去几年中已经拒绝了3家公司抛出的橄榄枝:

正如上周大家看到的对SpringSource的报道,这无疑不是合并带来的力量,当然Oracle对Sun的收购也给予了我们很多启示。缓存与分布式缓存非常重要,开源项目能否成功走出来是有很大风险的。现在又涌现出了很多新的竞争者,比如Apache Dynamite以及Memcached等等——他们要么逐渐变强,要么陨落下去。

对于memcached,Greg Luck谈到了其与Terrracotta的集成最终改进了Ehcache server——memcachd的一个Java对手,提供了RESTful API,能部署在负载均衡器之后以跨越多个集群进行扩展:“现在,每个结点都具有所有数据的完全拷贝。这意味着你被限定在了GC的处理能力上。我们的客户能够运行到20GB,但如果想要运行一个1000GB大小的缓存又会怎样呢?”如果是这样,那么Ehcache就帮不了你了。基于以上几点,我们能清晰地看到Terracotta未来的发展方向。

Ehcache项目的协议仍然是Apache 2,还可以通过sourceforge,Maven等来访问。此次收购意味着Greg Luck将加入到Terracotta中,而Ehcache代码的版权将纳入到Terracotta Inc.了,就像几年前JBoss收购Hibernate那样。Greg Luck还对此次收购发表了一份个人声明

查看英文原文:Ehcache Joins Terracotta

http://www.infoq.com/cn/news/2009/09/terracotta-buys-ehcache

Terracotta收购Ehcache (转)的更多相关文章

  1. 深入探讨在集群环境中使用 EhCache 缓存系统

    EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用 ...

  2. EhCache 分布式缓存/缓存集群

    开发环境: System:Windows JavaEE Server:tomcat5.0.2.8.tomcat6 JavaSDK: jdk6+ IDE:eclipse.MyEclipse 6.6 开发 ...

  3. (转)深入探讨在集群环境中使用 EhCache 缓存系统

    简介: EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider.本文充分的介绍了 EhCache 缓存系统对集群环境的 ...

  4. Ehcache 3.7文档—基础篇—GettingStarted

    为了使用Ehcache,你需要配置CacheManager和Cache,有两种方式可以配置java编程配置或者XML文件配置 一. 通过java编程配置 CacheManager cacheManag ...

  5. 基于 Quartz 开发企业级任务调度应用

    原文地址:http://www.ibm.com/developerworks/cn/opensource/os-cn-quartz/index.html Quartz 基本概念及原理 Quartz S ...

  6. Quartz集群原理及配置应用

    1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...

  7. 基于 Quartz 开发企业级任务调度应用--转

    Quartz 基本概念及原理 Quartz Scheduler 开源框架 Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现.该项目于 2009 ...

  8. quartz任务时间调度入门使用

    Quartz 是 OpenSymphony 开源组织在任务调度领域的一个开源项目,完全基于 Java 实现. 作为一个优秀的开源调度框架,Quartz 具有以下特点: 强大的调度功能,例如支持丰富多样 ...

  9. 任务调度框架Quartz原理简介

    [TOC] 第一章 Quartz 1.1 Quartz概念 Quartz是OpenSymphony开源组织的一个Java开源项目, 在2009被Terracotta收购.Quartz官网 1.2 Qu ...

随机推荐

  1. VS2008+Qt 项目目录

    1.项目开发环境:VS2008,QT4.7 2.项目的目录: 1)PETCT是解决方案名字 2)Bin目录存放所有动态链接库和执行档,包括自己的产出和第三方库,区分Release和Debug两个版本. ...

  2. jquery-easyui界面皮肤设计

    发现easy-ui 没有皮肤切换功能 正好工作要用就做了个 分享给大家 暂时做了绿色.橘黄.灰黑.蓝色.红色这5种颜色,大家也可以参照的多做几套更漂亮一点的! demo.rar (932.1 KB)

  3. SQL中on条件与where条件的区别(转载)

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...

  4. Swift - 使用CoreLocation获取设备方向(真实方向,磁极方向)

    CoreLocation这个定位框架除了可以获取设备的位置数据,还可以获取设备的方向(可以用来实现指南针功能等). 1,CLHeading对象通过一组属性提供航向相关数据: magneticHeadi ...

  5. 事务管理在三层架构中应用以及使用ThreadLocal再次重构

    本篇将详细讲解如何正确地在实际开发中编写事务处理操作,以及在事务处理的过程中使用ThreadLocal的方法. 在前面两篇博客中已经详细地介绍和学习了DbUtils这个Apache的工具类,那么在本篇 ...

  6. 开源JDBC工具类DbUtils

    本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ...

  7. OCP-1Z0-042-V12.39-47题

    47.Which two database operations can be performed at the mount stage of database startup? 题目解析: A和E在 ...

  8. Ppoj 1014 深搜

    这个题题意是给你价值1-6的珠宝个数输出能否平分为两份(如果平分为三分就不知道怎么做了……) 主要是用回溯DFS,但是要剪枝,对200取模……!!(很重要……) 代码…… #include <i ...

  9. SqlHelper初探之二

    在上一篇简单的介绍了sqlhelper的基本知识,接下来就让我们进一步学习他的实践过程. 首先:我们要明白的一件事Sqlhelper不是写出来的,而是在D层的代码中提炼出来的?那么就会反问一句“D层中 ...

  10. 使用Material Design 创建App翻译系列----材料主题的使用(Using Material Theme)

    上一篇是使用Material Design 创建App翻译系列--開始学习篇,进入正题: 新的材料主题提供了下面内容: 1. 提供了同意设置颜色板的系统部件组件. 2. 为这些系统组件提供了触摸反馈动 ...