文献综述-多层结构应用

题记:本文为本人计划用作文献综述所作,主要参考网络上前辈们所撰写的文章。由于本人才疏学浅不得真髓,只能前谈下本人目前所理解。各位朋友见了莫怪,笑就尽管笑吧,只是笑罢是否能留下点见解,让本人学习学习、研究研究、探讨探讨,在此谢过。先发第一章节,关于本人对多层结构应用体系概念的认识

1 多层结构应用体系的概念

1.1 传统的二层C/S模式

在了解多层结构应用体系之前,有必要先了解它的前身--C/S模式。C/S又称Client/Server或客户/服务器模式,即以客户端和服务器为基础的结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

 

1.1

1.1.1 客户端概念

    客户端即面向用户,完成各类业务,提供人机交互的界面。

客户端需要安装专用的客户端软件。大部分企业业务逻辑都被包含在客户机中。这也导致了客户端的臃肿,维护困难等缺点。我将在之后与多次结构应用体系的比较中详细阐述。

1.1.2 服务器概念

    服务器负责管理系统资源,并提供服务功能。

服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如OracleSybaseInformix SQL Server

1.1.3 客户端与服务器的连接

    C/S模式下,为保证数据传输的可靠性,一般都会采用TCP/IP协议。即网络层通信协议为IP协议,传输层通信协议为TCP协议。此外UDP也可作为传输层通信协议,但由于UDP在传输中的可靠性不强,容易导致信息的混乱、丢失、重复等,所以常用的是TCP协议。我将在此后讨论多层结构应用体系的相关技术的章节中,阐述观点。

          

1.2 B/S 

C/S模式主要是一种应用于局域网的模式,而另外一种模式--B/S模式则是Internet技术兴起的产物。B/S模式即browser/server,就是“浏览器/服务器”的结构。客户机上只要安装一个浏览器(Browser),如Netscape NavigatorInternet Explorer,服务器安装OracleSybaseInformix SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。这意味着,只要用户装有浏览器并能顺利接入Intetnet,就可以在任何地方任何系统下应用服务器程序。由于软件应用系统正向分布式的web应用方向发展,B/S模式以其快捷方便、零维护(指不需要进行客户端维护)等优势也逐渐受到青睐。严格的说,B/S是一种C/S模式的改进。由于本文主要分析软件应用系统的开发,所以在此只做简单介绍。

 

1.3 多层结构应用体系

    切入正题,我开始理解多层结构应用体系。与B/S模式类似,多层结构应用体系也是由C/S模式改进发展起来的。不同于C/S模式的是,该结构在客户端与服务器之间加入了中间层。最典型的多层结构模式就是三层结构体系,即在由客户端与服务器组成的客户节点和数据逻辑层加入一个中间业务层--应用程序服务器,而将C/S模式下的服务器演变成了专门的数据库服务器,即提供专门的数据服务,不再直接于客户端连接。客户端也不直接参加逻辑业务,而只需专注于人机交互即可。通过该中间层,客户端与数据服务器的连接被屏蔽,两者之间只能通过中间层来连接。在这里我们引入一张可以在任何关于多层体系应用结构资料上都会出现的图。

                                         

1.2

    通过这张图,可以非常清晰的观察多层结构应用体系与传统的C/S的区别。虽然图上很简单的标示了多层结构,但其含义非常深刻,此后我将以该图为蓝本,阐述我对多层结构的认识及应用。

  1.3.1 应用服务层概念

在此前我简单的介绍了C/S模式下的客户端及服务器的概念。在多层结构中加入了应用服务层,那么我们就在这里了解下它的概念。

MIDAS全称Multitiered Distributed Application Services,即多层分布式应用服务。全面我已经提过多层结构相对于二层结构的改进就是把业务逻辑结构提取出来,其实具体就是将诸如dbExpress,ADO,BDE,SQL Link,DataMoule等组件放到另外一台NT服务器上,也就是所谓的应用程序服务器,而只剩下一个可执行文件(即人机交互界面)和MIDAS.DLL文件。而应用程序服务器上的远程数据模块则变成COM程序。这样就实现了一个初步的多层结构,即客户端-应用程序服务器-数据库服务器的多层结构。

首先我认识到的是应用服务层是在客户端及服务器的接口处发生了衍生。在传统的复杂的客户端中,不仅包括了用户需要的交互界面,同时也包含了一些列企业业务逻辑。而当这些逻辑结构需要需要进行升级修改时,客户端的维护变的繁杂。于是开发者将这一部分逻辑结构提取出来,把它定义为专门的服务层,将包含了庞大逻辑结构的应用程序植入该层。开发人员以一种特定的组件形态,如Microsoft COM/DCOM,CORBA对象,或Enterprise JAVA Bean等,封装企业逻辑的程序代码,这种经过封装,能够执行特定企业功能的对象被称为“企业对象”,把这些企业对象分发到应用程序服务器中,开发人员在开发应用程序时就可以使用这些企业对象提供的服务。另外一方面由于逻辑结构与交互界面的分离,使得客户端不再与数据库服务器相连接。于是,我从中总结出,应用程序层的主要功能就是接受来自客户端和数据库服务器的信号,并在业务逻辑处理后,比如对数据的查询、插入删除等行为后,将结果返回二者。

在这里,值得注意的是,由于多层结构系统必须能迅速执行大量数据的更新和检索。因此,一般从功能层传送到数据层的要求大都使用SQL语言。这些层次并不一定与网络上的具体物理位置相对应,它们只是概念上的层,借助这些概念可以开发出强大的应用程序。使用这种方法设计应用程序,开发人员在网络上部署进程及数据时可以有相当大的灵活性,从而有利于实现最佳的性能、更好的安全性以及更方便的维护。中间层中包括提供业务服务和其它中间服务的部件,是联系用户服务和数据服务的桥梁,它们响应用户(或其它业务服务)发来的请求,执行某种业务任务,并对相应的数据进行处理。用户不需要直接与数据库打交道。在实际应用过程中,中间层部件通常可分为两个以上的层次。

另外一点值得注意的是在传统C/S模式下,客户端与服务器通常是多对一的关系,即多个客户端的数据来自一个服务器。当然也可以是多对多的关系,但通常为了数据的维护方便,数据会放在同一个数据服务器中。而在多层结构中,由于应用程序为了安全等原因,采用了分布式结构,使得客户端不在单一的依赖于一个服务器。这样使得当服务器需要升级维护或者因为某种原因而失效时,不会影响其他服务器的正常工作,大大加强了整个体系的安全性和可维护性。

1.3.2 MIDAS.DLL的注册使用

在后面相关技术章节,我将具体阐述我对MIDAS技术应用的学习,在这里我先讲述下由官方发布的MIDAS.DLL的注册使用。MIDAS.DLL在现在的windows系统中一般都会自带(没有尝试过linux等其他系统,所以不确定是否自带)。它放在系统文件夹的System32这个文件夹里。如果系统中没有,可以通过Internet下载获取,下载后只需解压到系统文件夹下就可以顺利使用。

 

1.4 多层结构应用体系与C/S模式的比较

1.4.1 多层结构应用体系与C/S模式的工作机制比较

回顾C/S模式中客户端与服务器的关系,可以发现它的工作原理:首先由客户端请求数据,服务器收到请求并检索到数据并数据打包后给予客户端响应;客户程序收到数据包后对数据进行编辑,然后向服务器发出更新请求。即图1.1中所示。

在多层结构中,该原理则改变为:客户端提供相应的TClientData组件向IProvider(TDataSetProvider)对应的应用程序服务器请求数据,应用程序服务器的COM程序通过中间件软件(dbExpress,ADO,BDE,SQL Link)传送一个相应的SQL语句至远程数据库服务器进行检索,远程数据库服务器将检索到的数据分割成一段一段的数据包,通过DCOMTCP/IP传给应用程序服务器继而通过MIDAS与客户端沟通;客户端将收到的数据进行编辑并发送更新请求给应用层然后将相应的SQL语句转发给远程数据库服务器进行数据更新。如图1-3所示。

 

1-3

1.4.2 多层结构应用体系的优势

1)解决客户机/服务器结构的维护成本问题,改善客户机/服务器结构延展性问题。

通过以上对多层结构中的应用程序层的认识,可以显而易见的发现多层结构中的客户端比传统C/S模式更容易操作。由于多层结构中,将业务层单独列出,释放原本并不需要客户进行操作的部分。例如系统的维护、二次开发等步骤,并不需要客户来考虑,现在用户只需要专注与交互界面的使用即可,而客户端的安装也因此变得简单易用。原本臃肿的客户端也骤然“减肥”,俗称“瘦”客户端,即前文提到只留下可执行文件和MIDAS.DLL文件。此外,由于多层应用程序具备了本地文件模式、公文包模式,使得客户端不必一直与应用程序服务器或数据层保持活动状态,也可以实现对数据的操作而作为开发者来说,当一个心动业务规则发生时只需对应用层进行更新即可,不需要再对所有的客户端进行操作。

(2)提高了数据安全性,增强了系统的稳定性。

由于中间层的出现,阻隔了客户端与数据库服务器之间的连接,使得病毒等非正常程序通过客户端进入数据库导致的一些列损失降到最低。同时由于可以采取分布式模式,即便其中一台或多台应用程序层服务器受到破坏或者进行维护时,其余的服务器任然能提供客户端正常的服务。保证7*24小时都能运行系统,从而提高了数据乃至整个系统的安全性和稳定性。

3)降低了客户机的使用要求,加快了对客户端的响应。

中间应用层出现后,客户端不仅显“瘦了,同时也降低了对它们的合格线。繁杂的处理不再在客户机上进行,客户端只需安装客户应用程序和访问服务器的各种DLL文件就可以。释放了对客户端正常运行系统的高要求。例如,在C/S模式下,客户端需要在性能较好的服务器操作系统下才能较好的运行,但经过应用程序层的深入,相对版本较低性能较差的操作系统版本中也将可能可以运行。此外而通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度。

1.4.3 传统的二层C/S模式并不绝对退出

在很多参考文献中,不难发现“二层结构的退出”(即前文一直提到的传统的C/S结构)的字眼。个人认为这样的论断有些偏差。在一些特殊情况下(例如系统本身就是用于软件开发)传统的C/S模式可能更合适(在这里,由于本人没有尝试过这样的大型系统的开发,只能使用“可能”来评断)。将业务逻辑包含在客户端中,就可以更直接地对系统,包括应用程序和数据,进行修改。

但可以确定的是,在绝大多数情况下,多层(典型的是三层)结构是有利于系统的,是符合历史发展潮流的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值