免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 无双
打印 上一主题 下一主题

软件设计中常用模式讨论 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-04-27 20:18 |只看该作者

软件设计中常用模式讨论

尽量写
只是把自己知道的写出来
希望能和大家交流交流

论坛徽章:
0
12 [报告]
发表于 2003-04-28 18:00 |只看该作者

软件设计中常用模式讨论

上面对C/S架构的理解可能是错了

C/S应该是S 数据库,C 客户机,数据库保存数据,客户机直接访问数据库
当然其它方面的应该也是有的,没有说必须限制为这种方式

下面给多层的概念

IT行业的一大特点是经常创造一些新名词,单层和双层这两个概念就是在三层结构出现之后才创造出。单层结构是80年代以来小型应用的结构,典型的是基于Dbase、Foxbase等小型数据库的应用。双层结构的同义词可以理解为传统的客户/服务器结构,是目前占统治地位的结构,典型是基于Oracle、Infomix等大型数据库的应用。三层结构是传统的客户/服务器结构的发展,代表了企业级应用的未来,典型的有Web下的应用。多层结构和三层结构的含义是一样的,只是细节有所不同。

  之所以会有双层、三层这些提法,是因为应用程序要解决三个层面的问题。

一:界面层

  界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据。界面层同时也提供一定的安全性,确保用户有会看到机密的信息。

二:逻辑层

  逻辑层是界面层和数据层的桥梁,它响应界面层的用户请求,执行任务并从数据层抓取数据,并将必要的数据传送给界面层。

三:数据层

  数据层定义、维护数据的完整性、安全性,它响应逻辑层的请求,访问数据。这一层通常由大型的数据库服务器实现,如Oracle 、Sybase、MS SQl Server等。

论坛徽章:
0
13 [报告]
发表于 2003-04-28 18:02 |只看该作者

软件设计中常用模式讨论

三层架构的优势

  从开发角度和应用角度来看,三层架构比双层或单层结构都有更大的优势。三层结构适合群体开发,每人可以有不同的分工,协同工作使效率倍增。开发双层或单层应用时,每个开发人员都应对系统有较深的理解,能力要求很高,开发三层应用时,则可以结合多方面的人才,只需少数人对系统全面了解,从一定程度工降低了开发的难度。

  三层架构属于瘦客户的模式,用户端只需一个较小的硬盘、较小的内存、较慢的CPU就可以获得不错的性能。相比之下,单层或胖客户对面器的要求太高。我的机器是奔腾133、32M内存、2.5G硬盘,装了IE4.0之后,感觉机器慢子很多,硬盘也只有300多M的空余空间了,已打算将硬盘扩充到4G。试想如果今后还是以单层或双层峁刮主流的话,硬件的更新费用将会有多大,尽管现在电脑价格下降很多,对个人用户已可以承受,但对于企业而言,频繁的台旧机器淘汰,换新机器,这是一笔多么大的费用

  三层架构的另一个优点在于可以更好的支持分布式计算环境。逻辑层的应用程序可以有多个机器上运行,充分利用网络的计算功能。分布式计算的潜力巨大,远比升级CPU有效。美国人曾利用分式计算解密,几个月就破解了据称永远都破不了的密码。

  三层架构的最大优点是它的安全性。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。

论坛徽章:
0
14 [报告]
发表于 2003-04-28 18:29 |只看该作者

软件设计中常用模式讨论

三层比二层多了一个中间层
并且所有的通信都必须通过中间层
所以保证了系统的安全性(因为可以在中间层进行验证)

另外因为有三层,所以可以同时开发,各层间业务逻辑更独立
开发和维护会更容易

一般说来
对于比较大的软件,使用这种架构是很合理的

但是所有运算都在SERVER端,CLIENT端对运算的要求虽然不是很高
但SERVER端就要求很高了,如果同时有很多客户同时连的话,那么SERVER的负荷还是很大的,这点是它的主要缺点,就是不能实现负载平衡,CLIENT端的运算能力没有使用到。

另外对于普通的小软件,使用C/S或是单层都已够用,因为数据和业务逻辑都不是很多,使用单层能简化系统设计,减少成本。

论坛徽章:
0
15 [报告]
发表于 2003-04-28 18:34 |只看该作者

软件设计中常用模式讨论

随着网络的发展

也出现了一个新技术,那就是B/S架构。B 就是浏览器。S 就是服务器,也就是数据库

B/S可以认为是C/S的一个变种,它们的实现与C/S是差不多的
与C/S相比,B/S不用下客户端,而且可以运行于多平台,不用为每一个平台做一个CLIENT,这些特点都是C/S所没有的

但是浏览器的性能都不是很高,所以在B/S架构中不可能在BROWSER端使用很复杂的运算,运算都是在SERVER端进行,因此对SERVER的性能要求更高了。另外使用的是TCP/IP传送,没有进行加密,保密性不好。这些就是它的缺点


以上就是我对这几种在软件设计中使用的架构的理解

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
16 [报告]
发表于 2003-04-28 21:11 |只看该作者

软件设计中常用模式讨论

那3层模式的软件架构,中间件层能在多大程度上相对C/S模式来说减轻Server端,也就是DBMS端的运算负载压力。

还有就是“中间件”分为不同的类型,如:数据库中间件,事务中间件,
对象代理中间件。通信中间件等等。。这些不同的类型是不是也对应不同
“软件业务需求”,还是在同一种“软件业务需求”中同时运用,并起到不同的作用,如果是后者的话,那么在“分担Server负载”方面分别起什么作用呢?

论坛徽章:
0
17 [报告]
发表于 2003-04-29 10:46 |只看该作者

软件设计中常用模式讨论

作为软件开发而言,中间层最大的好处在于减少对客户的维护,
  业务逻辑全部在中间层,对更新和维护都是有好处,
  但事情往往都是有两方面的,这样一来就加大了对应用服务器的负载,
  而现在性能越来越的客户端的机械没有得到使用。
  如果是做负载均衡,我觉得把客户端的机械也加入到群集里面来倒是一种比较好的方式。
  可惜现在没有人这样做(因为服务器对目前的业务够用),也没有这么好的群集软件。

论坛徽章:
0
18 [报告]
发表于 2003-04-29 11:12 |只看该作者

软件设计中常用模式讨论

把客户端的机械加入群集会不会破坏系统数据的安全性

因为如果只是三层的话
那么只有中间层可以访问到数据层的数据

并可以对界面层进行认证和安全管理

另外要做到负盏平衡的话,必然会增加系统的开发难度和工作量
所以了除非在当前硬件性能不够用条件下才会使用

我这么想

论坛徽章:
0
19 [报告]
发表于 2003-04-29 18:53 |只看该作者

软件设计中常用模式讨论

我的意思在于,如果更好地利用空隙资源;
  至于做负载均衡,现在已经很很多比较成熟的产品了,
  我们完全没有必要去考虑这方面的问题。

   至于安全性等方面,完全没有必要考虑,我们只是用它的cpu和内存,
  而且是做一些很数据库无关的事情的,也就是它并不和数据库直接打交道。
  当然我提的都只是一些理想状况下的东西,特别是针对大型运算用。

论坛徽章:
0
20 [报告]
发表于 2003-06-20 00:32 |只看该作者

软件设计中常用模式讨论

补充:
传统的C/S多是使用DELPHI等快速开发工具制作
但随着JAVA的发展与机器性能的提高
在C/S架构中使用JAVA的越来越多
JAVA的主要缺点是运行速度慢
但现在机器性能越来越高,所以这在多数情况下已不再成为瓶颈
并且有跨平台运行的优势在操作系统大战没有结束前
客户为了保护现有投资,必然不想让自己绑死在一个系统上
因此我认为以后会是JAVA类型的C/S代替传统的DELPHI类型的C/S

B/S运算能力弱但是不用下客户端,所以也不会害怕别人在客户端装后门,也方便使用,因此会继续存在于一些对运算能力要求不高的场合

C/S则继续存在于对运算能力要求比较高或是客户端程序比较复杂的场合


DELPHI运算能力较强并且容易写系统相关函数,也会在有这方面需要的领域继续使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP