技术开发 频道

Javaeye专访:采用分布式数据访问层

JavaEye:5.分布式(Distributed)数据访问层(Data Access Layer)应用的主要场景是什么?能否详细比较一下分布式(Distributed)数据访问层(Data Access Layer)和类似产品比如hibernate的区别吗? 

许超前:DAL比较适用于大中型网站,对于想提高系统负载能力及响应速度的小型网站也是适用的,但可能获得的好处不如大中型网站那么明显。

DAL和Hibernate两者不具有可比性,从出发点来看就不同,DAL一开始是为了提高网站的负载能力,而Hibernate则是为了能更快地开发Java应用。手机之家采用混合编程,上层应用不一定是用Java写的,要让(非Java)程序员对每个模块涉及到的表结构都用Java实体类写一遍,不太现实。相反,我们采取了不同的思考方式,我们的程序员面向的是表和记录,而不是实体类和实体对象。虽然,DAL也有Mapping的概念,但是它的Mapping是指逻辑表到物理表的Mapping,而不是Java对象到数据库模式的Mapping。DAL的逻辑表可能对应着多个物理表,程序员看到的是逻辑表,不用关心后面有多少个物理表。

MySQL Proxy也提供了一些类似的特性,DAL与它的第一个不同在于,我们的缓存处理是内置的,我们从设计之初就特别认真地考虑缓存这块,而MySQL Proxy得自己写Lua脚本。第二个不同在于,我们针对的不仅仅是MySQL这一种数据库。而且,我们还有很多其它的事情要做。

另外,国内还有一个开源项目叫Amoeba。Amoeba关注的领域是切分,在这个领域,Amoeba对概念的抽象还是不错的。DAL更像是一个完整的系统,当然,也可以只用DAL来做切分,其它的逻辑自己编写,想拥有哪些特性都是可配置的。这样设计一个是为了易用,一拿来就能用,另一个是为了能更好的和现有的解决方案(如Hibernate)集成,虽然DAL在很多方面都可以取代它们(如Hibernate)。

最后,我相信,肯定还存在很多类似的解决方案,只是我们不曾得知。或许是过于定制化了,或许是还不够成熟。。。

JavaEye:6.目前大概有多少用户在使用分布式(Distributed)数据访问层(Data Access Layer)?

许超前:目前DAL主要用在手机之家网站上面,当然,还有其它的项目也在用。

JavaEye:7.目前分布式(Distributed)数据访问层(Data Access Layer) 开发的技术难点是哪里?

许超前:要说技术难点,我觉得有以下几点:

一)如何降低CPU负载及减少内存占用。

二)如何提高查询条件的分析速度。

三)如何更有效地路由到相应的库和表上。

四)如何提高缓存的命中率。

五)如何更有效的进行数据复制。


JavaEye:8.你每周大概花多少时间在分布式(Distributed)数据访问层(Data Access Layer)项目上面?

许超前:每周大概80个小时左右。

JavaEye:9.开发分布式(Distributed)数据访问层(Data Access Layer)带给你最大的收获是什么?

许超前:一)贵在坚持。一个长开发周期的软件,到了后面,不仅是对开发人员体力、智力的综合考验,更是对开发人员心理承受能力的考验,因为这时会有来自各方的及自发的压力。如果能坚持下去,扛过这一关,事情往往就成了一半。

二)找一些和你有共同目标的人一块共事。否则会耗费大量的沟通成本。

三)用数据说话。事务都在变化当中,几年前的经验,也许到今天就不灵了。而且很多事情并不是像我们想象得那样去发展。

四)中国不打折。

JavaEye:10.开发分布式(Distributed)数据访问层(Data Access Layer)的roadmap是什么?近期远期的开发计划计划是什么?

许超前:接下来的版本要做的事有这几个方面:

一)更多的协议开发,这样才能作为透明代理使用,比如我们的PMA也可以使用了。

二)数据库厂商中立的数据复制。

三)嵌入式API,考虑和Spring、Guice等集成,方便Java应用开发人员的使用。


JavaEye:11.你的开发环境是什么? 使用什么操作系统,和IDE?

许超前:一直用Linux操作系统,现在是Ubuntu,IDE用Eclipse。

JavaEye:12.开发分布式(Distributed)数据访问层(Data Access Layer)项目是如何推广的?未来有什么推广方面的计划吗?

许超前:DAL目前只在内部项目中使用。等足够成熟了,我们会采取一系列办法进行推广的。


JavaEye:13.通过开发开发分布式(Distributed)数据访问层(Data Access Layer)项目 ,你对中国的开源软件现状有什么看法?对国内软件开发人员做开源项目有什么感受和想法吗?

许超前:我们的IT行业起步晚,开源文化还不够深入人心,再加上我们中的大部份人还在为生计发愁,所以对开源事业上心的人还是少数。因此,和欧美发达国家比起来,我们的开源事业相对滞后。
我由衷地敬佩那些做开源项目的开发人员,如果可能,我也希望多做些开源软件和大家一块分享。


JavaEye:14.作为一个JavaEye的会员,你对JavaEye网站有什么建议和意见吗?

许超前:想办法让老人多发言,同时也给新人提供一个学习成长的地方。比如可以弄个师徒频道(有点SNS的味道),老人可以招学徒,新人可以拜师傅。
 

0
相关文章