读书人

DATASNAP 毫无用处单纯鸡肋

发布时间: 2013-06-26 14:29:32 作者: rapoo

DATASNAP 毫无用处,纯粹鸡肋!
DATASNAP的目的主要是进行三层开发,提高在大数据量和多用户并发情况下的处理能力。但在我看来,DATASANP毫无必要,毫无用处,是个鸡肋。

1)现在几乎每个数据库都有中间层这个解决方案,就是解决巨量数据,多用户下得处理。比如ORACLE的RAC、DB2的PURESCALE、POSTGRESQL的PGPOOL、PGBOUNCER等方案,它们跟数据库结合非常好,可以用作连接池、复制、负载平衡、并发查询等功能,根本就不需要来个DATASNAP,

比如我用现在的C/S结构系统,不需要任何修改,就可以通过PGPOOL方案,对POSTGRESQL做集群,大大提高系统性能和可靠性,完全达到DATASNAP的目的。


2)DATASNA三层开发难度和复杂性,明显比传统的C/S二层结构大的多,导致软件的成本增加和复杂化。


3)有人说,用DATASNAP三层结构,可以解决界面分离,利于部署,我认为这点意义不大,界面和逻辑业务,不可能真正分离,总有很多联系,其次,现在C/S结构部署其实并也不难了,可以用自动更新程序来处理,比如QQ、股票交易系统,期货交易系统等等,这么大型系统都是用C/S结构,自动更新一下就可以了,没看出什么麻烦。

综合所说,DATASNAP三层结构毫无用处。纯粹多此一举。


[解决办法]
DATASNAP三层结构,是数据库访问的3层,不是mvc的3层
c/s也是指数据库访问的2层=Client/databaseServer,QQ、股票交易系统,期货交易系统是需要客户端,但不是这里所说的c/s
因为它们不会直接访问后台的数据库
数据库访问的2层是很讨厌的,仅仅是客户端需要数据库的驱动,就够恶心了
delphi的3层完全解决了这个问题
当然,delphi的3层不一定就是datasnap,asta、kbmmw等等都是
我自己也搞一套:client/Webserver
[解决办法]
DATASNAP的确很不好,尤其是xe版本以后的新版datasnap效率更低了。我现在使用自己的方案来替代datasnap,当结构跟datasnap是类似的。
[解决办法]
不过感觉用三层确实挺麻烦的,像QQ这种的吧,大规模使用,想篡改的人那么多,必须用三层,像只是公司利用的erp,就没必要三层了
[解决办法]
datasnap起源于很早期的midas,往前推十几年的话,在那个时代midas还是有价值的,但我感觉宝蓝从来对midas都不是很重视,从delphi5以后基本都没什么大变化,后来互联网崛起,用户和数据量都猛增,分布式多层成为大数据处理的最好解决方案,而midas已经跟不上潮流了,到datasnap也就是换了个名字而已,现在很多专业的公司就是专门研究分布式应用,没必要纠结在datasnap上,大数据处理和数据挖掘有很多成型的解决方案。
[解决办法]
我造成撸猪的看法,
DataSnap只是delphi证明"我也能"的工具,但并不能证明"我也行",或者"我很行",或者"我最行".
小访问量的话,随便的三层架构都能承受,大访问量,大数据量的情况,还真没听说,或者见过用ds的案例.

或许DS的最大作用就是在推广活动中:
"好大家看,我拖一个A,然后再放一个B,然后再设置C的D为E的F....."
"好了,F9,大家看,多简单,这就是DataSnap,这就是delphi,这就是三层..."
"好,散会...下次见..."

或许大家可以说一说自己开发的或者见到过的,真正用于生产的,能承受一定负载压力的DataSnap应用.
[解决办法]
不深入了解和应用,只看个表象,全部都是垃圾,贵在于实用。Datasnap只以说只是一个模式,说它实用和易用并不为过。如何易用,如何实用,这个就不需要多说了。
首先,它解决了网络通讯问题要知道并不是所有人都对网络通讯非常了解,特别是在应用业务领域,往往技术并不是关键;
其次,有一个非常合理的结构模型,可以秀简易的就把UI、逻辑和数据清晰地分离,各部分可以非常明确的进行分工和协作,按照其规范还可以非常方便的进行替代。

当然,这个世界上没有绝对简单又完美的东西,有的都是别人积累下来的成果,你如果想要一个开发工具可以非常完美的解决掉你所有的问题,那么你是谁呢?在这里,你还得认清楚自己的角色。可以这么说,几乎所有你写过的,将要写的,任何一个程序,在这个世界上都有不止一个比之更完美的替代品,只不过是因为时间、空间和人际之间的距离,即老祖宗说的“天时、地利、人和”。

什么大数据量、高并发都是浮云,回头看看当初56Kbps网络、200MhzCPU、64MB内存、1G硬盘的年代并不算久远,当初的大数据量、高并发放到现在算什么?
问题在哪里?时间。我们可以看到很多同行的劣质工程,并不是说他们比我们笨,比我们懒,只不过是因为他们的时间有限。三个人日和三个人月开发的产出物,他们真正在市场上产生的价值与之并没有什么必然的联系。

程序的关键就在于使用最低的投入解决掉最根本的问题,说数据量,提并发,讲质量,如果没有必要性,那么所有为之带来的投入都是浪费。
[解决办法]
datasnap不只是数据库连接池。
他是完整意义上的基于delphi技术的应用服务器。
以JSON为数据载体,想法是很广阔的。
当然,看你怎么用它了,个人认为也还不够稳定。



读书人网 >.NET

热点推荐