三层架构(二)

在之前的博客中已经介绍过了三层架构的功能

详情回复(三层构架一

那为什么要使用三层架构呢??

使用三层架构的目的:解耦!!!(做自己功能内的事)

同样拿上面饭店的例子来讲:

详情请看:

1)服务员(UI层)请假——另找服务员;厨师(BLL层)辞职——招聘另一个厨师;采购员(DAL)辞职——招聘另一个采购员;

2)顾客反映: 1>你们店服务态度不好——服务员的问题。开除服务员;

2>你们店菜里有虫子——厨师的问题。换厨师;

任何一层发生变化都不会影响到另外一层!!!

 与两层的区别?

两层:

(当任何一个地方发生变化时,都需要重新开发整个系统。“多层”放在一层,分工不明确耦合度高——难以适应需求变化,可维护性低、可扩展性低)

三层:

(发生在哪一层的变化,只需更改该层,不需要更改整个系统。层次清晰,分工明确,每层之间耦合度低——提高了效率,适应需求变化,可维护性高,可扩展性高)

综上:三层架构的

优势:1,结构清晰、耦合度低,2,可维护性高,可扩展性高;3,利于开发任务同步进行;容易适应需求变化

劣势:1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。

2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码

3、增加了代码量,增加了工作量

应用:

在服务器方面:
服务器一般包括有连接与无连接形式,无连接在最底层要设置UDP/IP协议实现服务器通信功能,
同时在实际使用的过程中,由于客户机无法保证可靠的传输渠道,使得客户机向服务器提交请求时,很容易造成请求的丢失、延迟以及传递失序等传输问题,进而降低通信质量。
UDP的可靠性很低,在实际运行中UDP要依托于下层IP网络进行交付分组,无法引入检验程序,而IP网络还要由实际硬件网络或者是相关网关决定其工作质量。
因此,从这一层面上看,下层网络的好坏直接关系到UDP工作。在进行开发有连接服务器的过程中,要利用TCP/IP通信协议,利用互联网创建良好的通信环境,进而提高通信数据的真实性和可靠性。
TCP/IP通信协议可以对数据信息进行验证与校对,保证数据信息的完整性。同时在实际运行中,可以通过数据的序列号排序保证数据信息的有序到达,防止出现信息重复分组的情况。
另外,这种通信协议可以对流量进行有效控制,确保发送信息速度在接收方的承受范围以内,通过INTERNET,实现服务器的面向连接。
 
 
 
 
 
应用于客户端:
在三层构架系统中,客户端是使用者的主要功能体验区域,相比于服务器而言非常简单。一方面,在三层构架运行的过程中,客户机软件要和各个服务器进行相互通信,不需要过于重视并发性处理。另一方面,一般客户机软件可以仿照常规程序进行指令执行,不需要进行外加保护,依托于操作系统进行强迫性保护。但与此同时对界面具有极高的要求,系统分析的过程中就要进行专门的界面设计,同时要和客户进行及时沟通,掌握客户的实际需求,实现高效的信息反馈与交流沟通,进而保证信息系统软件界面设计的质量和效率
 
应用于数据服务器:
在进行数据服务器选择的过程中,要根据信息系统平台要求和用户期望要求,同时对应各个服务器的特点进行使用与选择。一般情况下出于对系统性能的考虑,会选择SQLSERVER数据服务器,设计阶段中要通过Proactive等有效措施对系统数据库的实际使用性能进行不断地优化与完善。同时管理人员要和程序设计人员进行有效的沟通与协作,明确信息系统软件的性能目标,设置性能期望值,构建系统资源组合体系,满足用户的实际需求
 
数据库和应用服务器的连接。
在基于三层构架的信息系统开发中,应用服务器要利用SQL语言进行连接数据库服务器,其连接方法包括DB-Library、DAO以及OLE等方式,其中DB-Library是最为常见的连接方式,作为SQLSERVER的重要接口层,具有极强的访问信息效率和访问速度。这主要是源于DB-Library的语言开发能力,直接省去DAO以及OLE等连接方式中抽象层的调用,节省了信息访问时间。同时,三层构架适用于使用诸多开发语言的信息系统开发,不是.NET的专利,也不是专门用在数据库上的技术,而是一种更加普适的架构设计理念,除了数据、逻辑、界面等层次之外,在实际应用中还会根据需要多出传递数据的层、接口层等等。在结合DB-Library数据库连接后,设置NTWDBLIB.LIB组建,构建CDBConn实体类库体系,实现数据库与应用服务器的连接。因此,信息系统软件架构可以为系统开发创造出良好的分布式计算环境,其中逻辑层可以实现多个机器的同时运行,通过计算机网络计算能力,强化系统各个功能板块的精准性和复用性,进而有效减少了信息系统软件开发的时间和周期,保证信息系统的安全性与拓展性,实现系统功能的最大化实现
原文地址:https://www.cnblogs.com/xuedine/p/11767736.html