文章: SpringOne大会采访:Mark Pollack博士专访

标签: 文章 springone 采访 | 发表时间:2012-12-10 14:12 | 作者:
出处:http://pipes.yahoo.com/pipes/pipe.info?_id=10560380f804c7341f042a2b8a03e117

SpringOne大会今年首次落户中国,将会于12月7-8号在北京召开,大会结合了Spring和Cloud Foundry大热门技术,将会针对于Spring的最新发展、Spring在移动、大数据领域的应用等做主题分享。InfoQ就Spring以及Spring Data、Spring Batch等话题采访到了Spring社区专家Mark Pollack博士。

InfoQ:欢迎来到北京,我是InfoQ中文站的编辑丁雪丰,感谢您接受我们的采访。您能否先为我们的读者做个自我介绍?

Mark:我就职于SpringSource,它是VMWare的子公司,多年以来都在从事Spring开源项目相关的工作,早在成立公司支持它以前就是团队的成员了。我做过JmsTemplate相关的事情,早期还做过Spring.NET项目——这是.NET版本的Spring框架。这些年数据访问技术方面发生了很多变化,大约三年前,我开始围绕NoSQL、大数据这些方面为大家提供支持,还为关系型数据库添加了更多支持。

InfoQ:您刚提到了NoSQL技术,现在有很多数据存储,比如RDBMS、NoSQL和NewSQL。在只有RDBMS时,Hibernate可以应对大部分的问题。现在我们要面对MongoDB、Redis还有Cassandra,Spring如何让开发者的生活变得更轻松一点呢?

Mark:我们的确为其中一些提供了支持,但不是全部NoSQL数据库都有支持,MongoDB和Redis就有支持,Cassandra目前还不在其列。Spring从很多方面减轻了开发者的负担。首先,使用Spring容器来配置应用程序,通过一致的方式来使用多种技术,在Spring早期,你要把MVC、模版引擎和Hibernate结合在一起,就得益于一致的使用方式;NoSQL数据库和关系型数据库很类似,我们可以用一个通用的配置模型将所有技术整合起来,这只是纯粹的配置方面的。

其次,我们为很多NoSQL数据库,还有Hadoop提供了很多特定的辅助类,和JdbcTemplate很类似,我们提供了MongoTemplate,能更方便地使用MongoDB,如果你只是使用标准API集合,它同样提供了高层API,比如把POJO映射成文档数据模型,这是基本的值属性方面的。

第三,要创建一个针对POJO的数据访问类库,以MongoTemplate和RedisTemplate为例,能很方便地通过MongoTempalte来使用一些特性,比如MapReduce、累加计数器,后者在Redis里也很常用,这都很容易。如果你还想映射POJO来做领域层,也就是Repository层,我们也提供了一些基础设施,帮你对各种NoSQL数据库进行POJO的增、删、改、查操作。

InfoQ:在您的演讲中,您提到了Spring Data、Spring Integration,以及一些Spring的子项目,这些项目满足了开发者在大数据时代下的各种日常工作需要。您能否向国内的开发者介绍下Spring Data项目,虽然国内Spring的应用很广泛,但Spring Data还未广为人知。

Mark:我很早就开始参与Spring Data项目了,我们的目标是提供熟悉的基于Spring的编程模型,涵盖大数据、NoSQL和关系型数据库。如此一来,需要对NoSQL数据源做一个抽象,因此我们有两类支持,一个是一系列的模版类,让你更方便地与下层的NoSQL存储进行交互;另一个是Repository抽象,让你更方便地编写数据访问层,把POJO写到数据存储里。

另一大块内容是大数据,我们有Spring Hadoop项目,协助进行与Hadoop的交互,在HDFS里读写文件。Hadoop中经常用到Hadoop任务,你有一系列顺序执行的任务,Spring Batch能帮你组织这些任务。

InfoQ:这些项目在国外的使用情况是怎么样的,比如美国和英国,在那里大家都用这些Spring子项目么?

Mark:我们一直在持续追踪Maven上的下载统计信息,这些项目的下载量都是呈指数级增长的。我最近没有关注,但我认为,Spring Integration和Spring Batch的流行程度比较接近。Spring Data JPA是最流行的项目,虽然NoSQL的讨论很热烈,但企业开发者还是在使用关系型数据库,所以对这个结果我们并未感到太吃惊。我们的MongoDB支持、Redis支持最近也越来越流行了,还有Neo4j,它们的成长曲线很漂亮,终会和Spring Integration和Spring Batch一样流行的。

InfoQ:在你看来,Java EE 6和Spring框架是个什么关系?有些人认为Java EE 6比Spring要好,你是怎么想的?

Mark:Java EE 6就是一堆JSR的集合,它的版本基本就是标明用了哪个版本的JSR实现。Spring通常都会部署在Java EE容器里,提供一些容器里没有的功能,举例来说,可以让Spring在老的不支持CDI的容器里提供依赖注入,很多人都看到了其中的价值。Spring和Java EE 6有很多共同点,比如都实现了Bean Validation、依赖注入注解等等,的确有很多重复的地方。Spring最出名的是它的依赖注入,CDI是Java EE 6里的依赖注入规范。我认为依赖注入现在已经是个标配了,我想人们不会从一大堆特性里把它挑出来说事。Spring给你带来的是更多的灵活性,你可以在Tomcat 3里用依赖注入,然后升到Tomcat 7,不会受限于Java EE的版本,不受限于JSR。

InfoQ:Java 7已经被广泛使用了,明年Java 8很快就要来了,Spring是否已经为新的JDK做好准备了?

Mark:Java 8很令人振奋,我们对一系列的特性都很感兴趣,比如闭包。我们的目标是成为第一个支持Java 8的现代Java框架,因此我们非常期待Java 8的到来。

InfoQ:我们应该如何使用开源软件来构建基于Hadoop的大数据平台,让整个解决方案更加易于维护?

Mark:在Spring Hadoop是个很好的项目,其中你能找到很多东西帮助创建Hadoop项目。如何用它来创建一个更可靠的解决方案,人们使用Hadoop的传统方式是用MapReduce任务来和HDFS交互,用Pig或者Hive这种构建于MapReduce核心之上的语言,所有这些操作基本都是通过命令行、Shell、命令行应用的方式,很多都是在JavaScript、Perl和Ruby脚本里,一个接一个的进行调用,这种方式很乏味,严重依赖于脚本,在用的时候要十分小心。

在Spring Hadoop里,我们有个使用Hadoop的编程模型,易于使用,和现有的配置Spring的方式保持一致,提供了很多辅助API和工具类,让你从脚本驱动的编写Hadoop应用的方式转变到一种使用Java类的方式,你有了一套早已习惯的结构,只需配置到Hadoop的连接,然后执行Hadoop任务。比如,你现在可以把那个任务注入到你的代码里并运行。这种方式比意大利面条式的脚本更具可维护性。可以先从一个简单的任务和Spring应用上下文开始,以后要是有了很多步骤,比方说20个步骤,这时可以在Spring Batch任务里复用那些Hadoop任务的定义,也就是说Spring Batch里的任务就是Hadoop任务的引用。也许这么多“任务”有点混淆,但通过这种方式应用程序能更加可靠,可维护性更强。

InfoQ:非常感谢您接受我们的采访。

Mark:谢谢。

您可能也会喜欢

相关 [文章 springone 采访] 推荐:

文章: SpringOne大会采访:Mark Pollack博士专访

- - InfoQ cn
SpringOne大会今年首次落户中国,将会于12月7-8号在北京召开,大会结合了Spring和Cloud Foundry大热门技术,将会针对于Spring的最新发展、Spring在移动、大数据领域的应用等做主题分享. InfoQ就Spring以及Spring Data、Spring Batch等话题采访到了Spring社区专家Mark Pollack博士.

文章: 采访与书评:Spring Integration in Action

- - InfoQ cn
Mark Fisher,Jonas Partner,Marius Bogoevici以及Iwein Fuld合著的 《Spring Integration in Action》一书介绍了 Spring Integration框架,该框架基于 Spring编程模型提供了众所周知的 企业级集成模式(Enterprise Integration Pattern,EIP)的一种实现.

文章: 采访与书评:NoSQL Distilled

- - InfoQ cn
Pramod Sadalage和Martin Fowler合著的《 NoSQL Distilled》一书,介绍了NoSQL数据库以及混合持久化( Polyglot Persistence)的概念. 随着各种NoSQL数据存储的出现,混合持久化也越来越流行. 书中还介绍了NoSQL数据存储所支持的数据模型,如键值、文档和列族存储等聚合数据模型(Aggregate Data Model).

采访 Lua 发明人的一篇文章

- KK - 云风的 BLOG
《Masterminds of Programming: Conversations with the Creators of Major Programming Languages》是本相当不错的书. 博文翻译出版了这本书,中文名叫做《编程之魂》. 书是好书,可惜翻译这本书需要对各种语言的深入研究,看起来译者有点力不从心.

文章: 采访和书评:Google如何做测试

- - InfoQ cn
《Google如何做测试》一书由 James Whittaker, Jason Arbon 和 Jeff Carollo 三位作者合著而成,正如其封面上描述的那样,看起来充满了知识性和趣味性,在其背后则揭秘了大型技术公司Google,是如何应对和处理软件测试的复杂性的. 百度技术沙龙第三十一期:推荐引擎算法与技术(10月20日 周六).

文章: 从关系数据库向NoSQL迁移:采访Couchbase的产品管理主管Dipti Borkar

- - InfoQ cn
尽管关系数据库用于存储数据已经有几十年的历史,而且对很多用例而言,这仍然代表着一类可行的方案,但NoSQL正在成为人们当前的选择,尤其是考虑可伸缩性和性能的时候. 本文是对Couchbase的产品管理主管Dipti Borkar的采访,主要谈到了从关系数据库向NoSQL迁移的挑战、收益和过程. QCon北京2013,架构设计,大数据云计算等十八项专题,1月6日前报名7折.

反采访

- junyu - 胡子(胡续冬) 的最新日记
因为出了本《胡吃乱想》,时不时会在豆瓣上收到一些做媒体的豆友们求采访的豆邮. 作为一个打酱油的居家土厨子,我从来不敢以美食家自居,所以好多把我误当成美食家的采访请求我都婉拒了. 但有一封豆邮却是我无法推辞的,因为这位求采访的记者妹纸告诉我她和她老公也是像我们夫妇一样没什么追求的居家土厨子,而且她还提出要给我们带阿子很喜欢吃的云腿月饼作为采访贿赂.

采访祖先(一)

- 肖 - 土摩托日记
记者和历史学家都是写报告文学的,区别在于记者要么可以亲临现场,要么可以采访到当事人,写出来的东西更准确. 历史学家只能去扒故纸堆,再原始一点的就只能去扒坟了,准确性肯定低多了. 如果历史学家能够像记者那样采访到古人该有多好啊. 想象一下,假如哥伦布在踏上南美洲的时候能够带一部摄像机,让南美土著对着镜头讲讲话,那我们研究美洲历史的时候就准确多了.

51CTO对我的采访

- SotongDJ - I'm TualatriX
上周末的时候,有幸与51CTO的杨赛编辑当面交流了一把,她也对我进行了采访. 实际上没有“采访”这么严肃,整个过程非常轻松愉快,大家针对Linux的话题进行了一些随意的交流. 对话Ubuntu Tweak作者:站在用户的角度玩Linux. 还有一篇是关于杨赛写的一篇视角比较独特的文章,也引用了一些采访的内容:.

xmemcached作者Dennis采访(转)

- - 企业架构 - ITeye博客
xmemcached是最近频繁出现在JavaEye新闻频道的热点词汇,它就是JavaEye的资深会员Dennis开发的基于java nio实现的高性能可扩展的memcached客户端. Dennis 在自己实现的一个nio框架  http://code.google.com/p/yanf4j/ 的基础上实现了xmemcached项目(目前1.1.3是基于yanf4j 0.7.0),xmemcached的序列化机制使用spymemcached的Transcoder并做了部分改造.