第4章 分布式软件体系结构风格_第1页
第4章 分布式软件体系结构风格_第2页
第4章 分布式软件体系结构风格_第3页
第4章 分布式软件体系结构风格_第4页
第4章 分布式软件体系结构风格_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章分布式软件体系结构风格《软件体系结构与设计实用教程》第二版4.1概述1.集中式计算模式所有的计算能力均属于中央宿主计算机。在集中式计算技术时代广泛使用的是大型机/小型机计算模型用户通过一台物理上与宿主机相连接的非智能终端来访问宿主机上的应用程序客户机可能为PC或工作站在多用户环境中,宿主机应用程序既负责与用户的交互,又负责对数据的管理;宿主机上的应用程序一般也分为与用户交互的前端和管理数据的后端,即数据库管理系统。集中式的系统使用户能共享贵重的硬件设备,如磁盘机、打印机和调制解调器等。但随着用户的增多,对宿主机能力的要求很高,而且开发者必须为每个新的应用重新设计同样的数据管理组件。2.文件共享体系结构文件共享体系结构:文件存储在一个中央计算机或者共享服务器中,被网络上的多个计算机同时访问。文件共享体系结构最初的PC网络就是基于此类结构,从共享服务器下载文件到客户机的桌面环境下被请求的用户任务(包括业务逻辑和数据),在客户机环境下执行适合应用于数据量较低的场合文件共享体系结构缺陷:客户端和服务器之间需要移动大量不必要的数据,降低了应用性能;客户端必须相当健壮,它要完成几乎所有的功能,同时必须有足够的磁盘空间来存储下载的文件和表;容易破坏数据完整性(多个用户共同访问同一个文件);对环境变化及用户需求变更的适应性差,一旦发生变化,客户机与服务器的程序都要修改,增加了维护工作量。3.客户机/服务器C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术。C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。C/S体系结构有三个主要组成部分数据库服务器客户应用程序网络客户机/服务器文件共享结构的缺陷导致了C/S架构的出现数据库服务器代替了文件服务器服务器使用DBMS,快速应答用户请求RPC或SQL是客户机和服务器之间的典型通讯模式在一个C/S体系结构的软件系统中客户应用程序是针对一个小的、特定的数据集,如一个表的行来进行操作,而不是像文件服务器那样针对整个文件进行;对某一条记录进行封锁,而不是对整个文件进行封锁因此保证了系统的并发性,并使网络上传输的数据量减到最少,从而改善了系统的性能。客户机/服务器优点:C/S降低了网络通讯量:提供请求/应答模式,而非文件传输多用户通过GUI访问共享数据库客户机/服务器C/S结构的发展历程:两层C/S三层C/S多层C/S4.B/SC/S模式是指客户端/服务器模式:client/server。最明显的就是大型的网游,必须下载客户端,在本地运行,人物属性之类的数据要跟服务器交换数据。B/S模式是指浏览器/服务器模式:browser/server。如IE浏览器,你想访问某个网站,网站实际就是网站所在ip的服务器的页面和内容,你通过浏览器访问。浏览器可以解析html等网页,显示页面效果给用户。4.2两层C/S体系结构风格

两层C/S结构(2-TierClient/Server)两层C/S结构

用户界面处于客户机数据库管理服务处于服务器端,通常是存储过程/触发器的形式业务处理过程—即业务逻辑—被分解为客户机与服务器两部分两层C/S体系结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。服务器为多个客户应用程序管理数据,而客户程序发送、请求和分析从服务器接收的数据,这是一种“胖客户机”、“瘦服务器”的体系结构。两层C/S结构(2-TierClient/Server)基本组件:数据库服务器存放数据的数据库、负责数据处理的业务逻辑;客户机应用程序:GUI:用户界面业务逻辑:利用客户机上的应用程序对数据进行处理;连接件:经由网络的调用-返回机制或隐式调用机制。客户机服务器:客户机向服务器发送请求;服务器进行相关处理,将结果发给客户端;客户端接收返回结果。服务器负责有效地管理系统的资源,其任务集中于:数据库安全性的要求。数据库访问并发性的控制。数据库前端的客户应用程序的全局数据完整性规则。数据库的备份与恢复。客户应用程序的主要任务是:提供用户与数据库交互的界面。向数据库服务器提交用户请求,并接收来自数据库服务器的信息利用客户应用程序对存在于客户端的数据执行应用逻辑要求网络通信软件的主要作用是完成数据库服务器和客户应用程序之间的数据传输。两层C/S结构(2-TierClient/Server)C/S结构的一般处理流程两层C/S体系结构优点两层C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。系统的客户应用程序和服务器组件分别运行在不同的计算机上,系统中每台服务器都可以适合各组件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。在两层C/S体系结构中,系统中的功能组件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。两层C/S体系结构缺点两层C/S体系结构虽然具有一些优点,但随着企业规模的日益扩大,软件的复杂程度不断提高,两层C/S体系结构逐渐暴露出以下缺点:互操作性差:采用不同开发工具或平台开发的软件,一般互不兼容,不能或很难移植到其他平台上运行。使用DBMS所提供的私有的数据编程语言来开发业务逻辑,降低了DBMS选择的灵活性——导致:软件移植困难,新技术无法轻易使用例如:OracleDB提供的若干存储过程函数,在SQLServer上就不能执行两层C/S体系结构缺点系统管理与配置成本高:采用两层C/S体系结构的软件要升级,开发人员必须到现场为客户机升级,每个客户机上的软件都需维护。当系统升级时,对软件的一个小小改动,每一个客户端必须更新。

——导致:软件维护和升级困难系统伸缩性差:当用户数超过100,性能急剧恶化服务器成为系统的瓶颈两层C/S体系结构缺点开发成本较高。两层C/S体系结构对客户端软硬件配置要求较高,尤其是软件的不断升级,对硬件要求不断提高,增加了整个系统的成本,且客户端变得越来越臃肿。客户端程序设计复杂。采用两层C/S体系结构进行软件开发,大部分工作量放在客户端的程序设计上,客户端显得十分庞大。用户界面风格不一,使用繁杂,不利于推广使用。适用场合两层C/S架构通常被用在那些管理与操作不太复杂的非实时的信息处理系统适合于轻量级事务——客户机对服务器的请求少,数据传输量少当业务逻辑较少变化以及用户数少于100时,两层C/S架构的性能较好一个简单的Client/Server程序这里举一个简单的例子说明如何运用套接字对服务器和客户机进行操作。客户机发送数据到服务器,服务器将收到的数据返回给客户机。服务器的全部工作就是等候建立一个连接,然后用这个连接产生的socket创建一个输入流和一个输出流,它把从输入流中读入的数据都反馈给输出流。直到接收到字符串“end”为止,最后关闭连接。客户机连接服务器,然后创建一个输入流和一个输出流,它把数据通过输出流传给服务器,然后从输入流中接收服务器发回的数据。(1)服务器端程序tcpServer.javaimportjava.io.*;import.*;publicclasstcpServer{publicstaticfinalintPORT=8888;publicstaticvoidmain(String[]args)throwsIOException{//建立ServerSocket ServerSockets=newServerSocket(PORT); System.out.println("ServerSocket:"+s); try{/*程序阻塞,等待连接。即直到有一个客户请求到达,程序方能继续执行*/Socketss=s.accept();System.out.println("Socketaccept:"+ss);try{//连接成功,建立相应的I/O数据流

DataInputStreamdis=newDataInputStream(ss.getInputStream());DataOutputStreamdos=newDataOutputStream(ss.getOutputStream());

while(true){//在循环中,与客户机通信Stringstr=dis.readUTF();//从客户机中读数据if(str.equals("end"))break;//当读到end时,程序终止

System.out.println(str);dos.writeUTF("Echoing:"+str);//向客户机中写数据}dos.close();dis.close();}finally{ss.close();}}finally{s.close();}}}服务器端运行结果为:ServerSocket:ServerSocket[addr=/,port=0,localport=8888]Socketaccept:Socket[addr=/,port=7312,localport=8888]测试:0测试:1测试:2测试:3测试:4测试:5(2)客户机端程序tcpClient.javaimportjava.io.*;import.*;publicclasstcpClient{publicstaticvoidmain(String[]args)throwsIOException{//建立Socket,服务器在本机的8888端口处进行“侦听”

Socketss=newSocket("",8888);System.out.println("Socket:"+ss);try{//套接字建立成功,建立I/O流进行通信DataInputStreamdis=newDataInputStream(ss.getInputStream());DataOutputStreamdos=newDataOutputStream(ss.getOutputStream());for(inti=0;i<6;i++){dos.writeUTF("测试:"+i); //向服务器发数据

dos.flush(); //刷新输出缓冲区,以便立即发送

System.out.println(dis.readUTF()); //将从服务器接收的数据输出}dos.writeUTF("end"); //向服务器发送终止标志dos.flush(); //刷新输出缓冲区,以便立即发送dos.close();dis.close();}finally{ss.close();}}}客户器端运行结果为:Socket:Socket[addr=/,port=8888,localport=7312]Echoing:测试:0Echoing:测试:1Echoing:测试:2Echoing:测试:3Echoing:测试:4Echoing:测试:5可以看到,关闭套接字的语句放在finally块中,这是为了确保一定能够关闭socket但关闭I/O流的语句没有放在finally块中,这是因为在try块内,可能还没有建立I/O流对象就抛出异常。组件tcpServer类tcpClient类连接件①建立网络连接服务端创建ServerSocket类的对象ServerSockets=newServerSocket(PORT),PORT是服务对应的端口号。然后,Socketss=s.accept(),ServerSocket类的对象s调用accept()方法,返回一个Socket类的对象ss,等待客户机发送请求;如果没有客户机端发送请求,则程序阻塞。在客户端创建一个Socket的对象ss,Socketss=newSocket("",8888),第一个参数是要连接的服务器的IP地址,第二个参数是提供的端口号,作用是向服务器端发送请求,同时将请求送给了服务器程序中的accept()的方法。服务器中ServerSocket的accept()方法接收到客户机的网络连接请求,会把该请求送给服务器的Socket类的对象ss。这时,客户机和服务器建立起了连接。②客户机与服务器建立I/O数据流进行通信在客户机端,通过dos.writeUTF(),向服务器发送数据即一个整型数组,在服务端通过dis.readInt()来接收数组,并对数据进行相应的处理,数据的结果通过dos.writeUTF()返回给客户端,客户端通过dis.readUTF()接收服务器返回回来的数据,并输出数据。4.3P2P体系结构风格

有两种特殊的客户-服务器风格体系结构代理(broker)风格体系结构P2P风格体系结构代理风格服务器将服务发布给一个代理,客户通过代理访问服务代理风格的典型例子CORBASOAPWebSeveiceUDDI等。P2P

P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点(PointtoPoint)”。“对等”技术,是一种网络新技术,依赖网络中各个参与者自身的计算能力和带宽,而不是仅仅依赖较少的几台服务器上。下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快。但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。P2P风格体系结构把客户机和服务器看成是相对的。根据实际需要,系统中的每一台计算机既可以作为客户机,又可以作为服务器。即每一台计算机既可以请求其他节点提供的服务,又可以为其他节点提供服务。当它请求其他节点的服务时,它就是客户机;当它向其他节点提供服务时,它就是服务器。P2P类业务目前互联网网内P2P流量的发展异常迅速,P2P类的流量占到了网络流量带宽的40%~60%。目前中国P2P类业务主要有如下4类:P2P下载类业务,如Napster、Gnutella、KaZaA、Bittorrent、eMule/eDonkey和迅雷P2P下载等。P2P流媒体类业务,如PPLive、PPStream等。IM(InstantMessaging,即时通讯/实时传讯)类业务,如QQ、MSN、YahooMessager、GoogleTalk等。VoIP(VoiceoverInternetProtocol,网络电话/IP电话)类业务,如Skype、H.323、SIP、MGCP等。4.4三层C/S体系结构风格

两层C/S结构局限两层C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,两层C/S结构存在以下缺陷:两层C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet。软、硬件的组合及集成能力有限。客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏。数据安全性不好。因为客户端程序可以访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。因为两层C/S体系结构存在缺点,三层C/S体系结构应运而生三层C/S结构(3-TierC/SArchitecture)三层C/S体系结构的出现克服了两层C/S的缺陷在客户端与数据库服务器之间增加了一个中间层中间层可能为事务处理监控服务器、消息服务器、应用服务器等中间层负责消息排队、业务逻辑执行、数据传输等功能通常,在三层C/S体系结构中,中间层增加的是一个应用服务器。三层C/S结构(3-TierClient/Server)基本组件:数据库服务器存放数据的数据库、负责数据处理的业务逻辑;应用服务器业务逻辑:对数据进行处理;客户机应用程序GUI:用户界面三层C/S结构(3-TierClient/Server)连接件:经由网络的调用-返回机制或隐式调用机制客户机应用服务器:客户机向应用服务器发送请求;应用服务器进行相关处理,将结果发给客户端;客户端接收返回结果。应用服务器数据服务器:应用服务器向数据服务器发送请求;数据服务器进行相关处理,将结果发给应用服务器;应用服务器接收返回结果。三层C/S结构(3-TierC/SArchitecture)第1层:用户界面GUI—表示层——客户机第2层:业务逻辑—功能层——应用服务器第3层:数据库—数据层——数据库服务器三层C/S结构(3-TierC/SArchitecture)三层C/S结构的一般处理流程表示层应用的用户接口部分,担负着用户与应用之间的对话功能;检查用户从键盘等输入的数据,显示应用输出的数据;检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。为使用户能直观地进行操作,通常使用图形用户界面GUI,操作简单、易学易用;在变更时,只需要改写显示控制和数据检查程序,而不影响其他层;不包含或包含一部分业务逻辑。功能层(一)应用系统的主体,包括大部分业务处理逻辑

(通常以业务组件的形式存在,如JavaBean/EJB/COM等);例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同。从表示层获取用户的输入数据并加以处理;处理过程中需要从数据层获取数据或向数据层更新数据;处理结果返回给表示层。功能层(二)用户检索数据时,要设法将有关检索要求的信息一次性地传送给功能层,而由功能层处理过的检索结果数据也一次性地传送给表示层。通常,在功能层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。数据层数据库管理系统DMBS,负责管理对数据库数据的读写接受功能层的数据查询请求,执行请求,并将查询结果返回给功能层;从功能层接受数据存取请求,并将数据写入数据库,请求的执行结果也要返回给功能层。数据库管理系统必须能迅速执行大量数据的更新和检索。现在的主流是关系型数据库管理系统,因此,一般从功能层传送到数据层的要求大都使用SQL语言。三层C/S结构的物理结构三层C/S结构的优点(一)在用户数目较多的情况下,三层C/S结构将极大改善性能与灵活性(通常可支持数百并发用户,通过集群可达数万并发用户);允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性——UI、BL、DB可以分别加以复用;允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。三层C/S结构的优点(二)应用的各层可以并行开发,可以选择各自最适合的开发平台和开发语言。利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而非法的访问数据层,为严格的安全管理奠定了坚实的基础。将遗留系统(旧版本的系统)移植到三层C/S下将非常容易;三层C/S结构的缺点三层C/S结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。设计时必须慎重考虑三层间的通信方法、通信频度及数据量,这和提高各层的独立性一样是三层C/S结构的关键问题——分层风格的固有缺点4.5B/S体系结构风格

B/S体系结构主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。在三层C/S体系结构中,表示层负责处理用户的输入和向客户的输出(出于效率的考虑,它可能在向上传输用户的输入前进行合法性验证)。功能层负责建立数据库的连接,根据用户的请求生成访问数据库的SQL语句,并把结果返回给客户端。数据层负责实际的数据库存储和检索,响应功能层的数据处理请求,并将结果返回给功能层。浏览器/服务器(B/S)是三层C/S风格的一种实现方式。浏览器/服务器浏览器/服务器(B/S)是三层C/S风格的一种实现方式表现层:浏览器逻辑层:Web服务器应用服务器数据层:数据库服务器在B/S结构中,应用程序以网页形式存放于Web服务器上,用户运行某个应用程序时,只要在客户端上的浏览器中键入相应的网址(URL),调用Web服务器上的应用程序并对数据库进行操作,完成相应的数据处理工作,最后将结果通过浏览器显示给用户。浏览器只有在接收到用户请求后,才和Web服务器进行连接,Web服务器马上与数据库通信并生成结果,然后Web服务器再把数据库的返回结果转发给浏览器,浏览器在收到返回信息后断开连接。由于真正的连接时间很短,因此Web服务器能够为更多的用户提供服务。B/S结构的优点(一)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决,系统维护成本低:客户端无任何业务逻辑,用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。良好的灵活性和可扩展性:对于环境和应用条件经常变动的情况,只要对业务逻辑层实施相应的改变,就能够达到目的。B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。B/S结构的优点(二)较好的安全性:在这种结构中,客户应用程序不能直接访问数据,应用服务器不仅可控制哪些数据被改变和被访问,而且还可控制数据的改变和访问方式。三层模式成为真正意义上的“瘦客户端”,从而具备了很高的稳定性、延展性和执行效率。三层模式可以将服务集中在一起管理,统一服务于客户端,从而具备了良好的容错能力和负载平衡能力。B/S结构的优点(三)扩大了组织计算机应用系统功能覆盖范围,可以更加充分利用网络上的各种资源,同时应用程序维护的工作量也大大减少B/S结构出现之前,管理信息系统的功能覆盖范围主要是组织内部。B/S结构“零客户端”方式使组织的供应商和客户(这些供应商和客户有可能是潜在的,也就是说可能是事先未知的)的计算机方便地成为管理信息系统的客户端,进而在限定的功能范围内查询组织相关信息,完成与组织的各种业务往来的数据交换和处理工作。B/S结构的计算机应用系统与Internet的结合也使新近提出的一些新的企业计算机应用(如电子商务,客户关系管理)的实现成为可能。B/S结构的缺点客户端浏览器以同步的请求/响应模式交换数据,每请求一次服务器就要刷新一次页面;受HTTP协议“基于文本的数据交换”的限制,在数据查询等响应速度上,要远远低于C/S体系结构;数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用;受限于HTML的表达能力,难以支持复杂GUI(如报表等)。因此,虽然B/S结构的计算机应用系统有如此多的优越性,但由于C/S结构的成熟性且C/S结构的计算机应用系统网络负载较小。因此未来一段时间内将是B/S结构和C/S结构共存的情况。但计算机应用系统计算模式的发展趋势是向B/S结构转变。1.JSP直接连接数据库的程序<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><%Connectionconn=null;Statementstmt=null;ResultSetrs=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptionce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection("jdbc:odbc:myDB","liu","123");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT*FROMchengjibiao");while(rs.next()){out.print(rs.getString(1)+"");out.print(rs.getString(2)+"");out.print(rs.getString(3)+"");out.print(rs.getInt(4)+"");out.print(rs.getInt(5)+"");out.print("<BR>");}}catch(SQLExceptione){System.out.println(e.getMessage());}finally{stmt.close();conn.close();}%>上面程序的存放位置为tomcat安装目录的webapps\ROOT子目录中。2.JSP+JavaBean直接连接数据库的程序(1)JSP程序如下<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><%@pageimport="db.dbConn"%><jsp:useBeanid="connDbBean"class="db.dbConn"scope="page"></jsp:useBean><%ResultSetrs=connDbBean.executeQuery("SELECT*FROMchengjibiao");while(rs.next()){out.print(rs.getString(1)+"");out.print(rs.getString(2)+"");out.print(rs.getString(3)+"");out.print(rs.getInt(4)+"");out.print(rs.getInt(5));out.print("<BR>");}%>(2)JavaBean程序如下packagedb;importjava.sql.*;publicclassdbConn{StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";StringsConnStr="jdbc:odbc:myDB";Connectionconn=null;ResultSetrs=null;publicdbConn(){try{Class.forName(sDBDriver);}catch(java.lang.ClassNotFoundExceptione){System.err.println(e.getMessage());}}publicResultSetexecuteQuery(Stringsql){try{conn=DriverManager.getConnection(sConnStr,"liu","123");Statementstmt=conn.createStatement();rs=stmt.executeQuery(sql);}catch(SQLExceptionex){System.err.println(ex.getMessage());}returnrs;}}将上述Java文件保存为dbConn.java,并编译,得到字节码文件dbConn.class,存放位置为tomcat安装目录的webapps\ROOT\WEB-INF\classes\db子目录中。组件数据库服务器(SQLServer等)Web服务器(*.jsp、*.java)浏览器(IE等)连接件浏览器(IE等)向Web服务器发出查询学生信息的请求,Web服务器接受浏览器的请求后,调用相关程序(*.jsp、*.java),向数据库服务器(SQLServer等)发送请求。数据库服务器(SQLServer等)根据Web服务器相关程序(*.jsp、*.java)发送的请求进行操作,并将操作后的结果返回给Web服务器以及相关程序(*.jsp、*.java)。Web服务器相关程序(*.jsp、*.java)将结果发送给浏览器(IE等),浏览器(IE等)最终将结果显示出来。4.6C/S与B/S混合软件体系结构为了克服C/S与B/S各自的缺点,发挥各自的优点,C/S体系结构和B/S体系结构还将长期共存。在实际应用中,通常将二者结合起来;B/S与C/S混合软件体系结构是一种比较典型的异构体系结构。C/S和B/S混合软件体系结构主要有两种。混合原则一:“内外有别”的原则混合原则二:“查改有别”的原则C/S+B/S混合体系结构混合原则一:“内外有别”的原则:企业内部用户通过局域网直接访问数据库服务器C/S结构;交互性增强;数据查询与修改的响应速度高;企业外部用户通过Internet访问Web服务器/应用服务器B/S结构;用户不直接访问数据,数据安全;“内外有别”模型的缺点是企业外部用户修改和维护数据时,速度较慢,较繁锁,数据的动态交互性不强C/S+B/S内外有别模型C/S+B/S混合体系结构混合原则二:“查改有别”的原则:不管用户处于企业内外什么位置(局域网或Internet),凡是需要对数据进行更新(维护和修改数据)操作的(Add,Delete,Update),都需要使用C/S结构;如果只是执行一般的查询与浏览操作(Read/Query),则使用B/S结构。“查改有别”模型体现了B/S体系结构和C/S体系结构的共同优点。但因为外部用户能直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。C/S+B/S查改有别模型异构实例4.7中间件什么是中间件为解决分布异构问题,提出了中间

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论