M
mrzj
Unregistered / Unconfirmed
GUEST, unregistred user!
我认为目前的技术来讲二层是优于多层的。目前的数据库技术已经比以前有了质的变化,ado的技术也已经到了2.8版了。我用delphi做过测试在p4平台,1.7Gcpu,40G硬盘,256兆内存下,在win和sql2000下可以在百分之一秒内完成下面几步:"连接上数据库,打开数据库,新增数据,查询若干行,关闭数据库,断开连接”。注:不是在百分之一秒完成一遍,而是近百遍。(使用ado操作sql2000),以上的例子说明完全可以在二层的开发环境中可以在要使用数据库的时候在连接数据库,在用数据库的时候就可以断开数据库,这种技术目前好象只能在微软的平台上实现。在连接数上来讲现在的多层也没有优势了。
在可扩展性方面二层也要优于三层,两层可以使用模块化开发,一个功能一个模块,一个模块一部分人来负责,不同的模块组合成一个大的系统,增减功能只是增减模块。如是三层就要在应用应用服务器层添加新方法,又要在客户层设计界面,非要一个整体的模块拆成两部分,就象人首异处一样。
在动态更新方面二层也要优于多层,如果一个正在工作中的应用服务器上的应用逻辑做了修改(增减的业务逻辑),一定要把应用服务器层给关掉,更换新版本后在重启应用服务器,在关掉的这段时间里所有的客户端都不能工作了(即使没有关联到增减业务逻辑的用户也要停止工作)。如果也增减了客户端界面的话还要来一遍二层技术的更改客户端界面。如果是二层的话就没用这个问题,因为所有业务应用都在客户端,我们可以使用微软的动态更新技术(如果有了新补定就在桌面的右下角就有个提示图标),我们做的只是发布新版本,更新动做由用户来决定。多层的就是因为有了应用服务器层其动态更新才不如二层方便。
开发效率上讲就不用举例了,二层肯定是要优于三层的。二层易于调试、开发的程序易读这些都是优点。
在分布式上现在的sql2000也是分布式数据库了,如果系统够大完全可以由多个独立的sql2000来构成一个大的逻辑上的sql2000。所以在分布式上多层也没有优势了。
三层的技术是从unix上起源的,三层在unix上非常不错的,它也一直在unix上发展,在unix上连接一次大型数据库也得好几秒吧,如果没有应用服务器一直连着数据库,而采用直连的话,连接一次就得几秒,这样的产品就没法用了。
先谈这么多,只想让大家讨论,我的意思就是现在一些书上讲三层怎么好,完全是在抄概念,可以说是张三李戴(Unix的三层帽子往win的头上戴!)
在可扩展性方面二层也要优于三层,两层可以使用模块化开发,一个功能一个模块,一个模块一部分人来负责,不同的模块组合成一个大的系统,增减功能只是增减模块。如是三层就要在应用应用服务器层添加新方法,又要在客户层设计界面,非要一个整体的模块拆成两部分,就象人首异处一样。
在动态更新方面二层也要优于多层,如果一个正在工作中的应用服务器上的应用逻辑做了修改(增减的业务逻辑),一定要把应用服务器层给关掉,更换新版本后在重启应用服务器,在关掉的这段时间里所有的客户端都不能工作了(即使没有关联到增减业务逻辑的用户也要停止工作)。如果也增减了客户端界面的话还要来一遍二层技术的更改客户端界面。如果是二层的话就没用这个问题,因为所有业务应用都在客户端,我们可以使用微软的动态更新技术(如果有了新补定就在桌面的右下角就有个提示图标),我们做的只是发布新版本,更新动做由用户来决定。多层的就是因为有了应用服务器层其动态更新才不如二层方便。
开发效率上讲就不用举例了,二层肯定是要优于三层的。二层易于调试、开发的程序易读这些都是优点。
在分布式上现在的sql2000也是分布式数据库了,如果系统够大完全可以由多个独立的sql2000来构成一个大的逻辑上的sql2000。所以在分布式上多层也没有优势了。
三层的技术是从unix上起源的,三层在unix上非常不错的,它也一直在unix上发展,在unix上连接一次大型数据库也得好几秒吧,如果没有应用服务器一直连着数据库,而采用直连的话,连接一次就得几秒,这样的产品就没法用了。
先谈这么多,只想让大家讨论,我的意思就是现在一些书上讲三层怎么好,完全是在抄概念,可以说是张三李戴(Unix的三层帽子往win的头上戴!)