软件体系结构风格之二
这里要说的是三类分布式系统:局域网文件服务器结构、客户/服务器体系结构(2层和N层)、基于Web的计算
1. 局域网文件服务器体系结构
(1)服务器仅装载了数据层,系统应用的其他层都在客户端实现
(2)执行过程:
a. 用户向服务器发送一个文件请求。
b. 文件服务器会从数据库中找到相应的表,传送给客户端,同时对所选表加锁,直到客户端返回表为止。
c. 客户端采用本地程序对表进行修改、读取或其他处理,然后再把表返回文件服务器。
(3)适用领域:较少的小型数据库。
(4)缺点:
a. 客户端和服务器之间需要移动大量不必要的数据,降低了应用性能。
【客户端和服务器之间传输的都是文件】
b. 客户端必须相当健壮。
【客户端做了几乎所有的工作,而且必须有足够的磁盘空间来存储下载的表】
c. 容易破坏数据的完整性。
【客户端可以直接修改数据库中的表】
d. 对环境的变化及用户需求变革的适应性差。
【一旦发生变化,客户端和服务器端的应用程序都必须修改,增加了维护的工作量】
2. 客户机/服务器(Client/Server)体系结构(两层分布式)
(1)服务器端:数据存储层、数据处理层
客户端:应用逻辑层、表现逻辑层、表现层
【充分挖掘使用了客户端的计算能力】
(2)C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
(3)服务器的任务:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复。
【服务器和数据库的访问、数据修改之类的有关】
客户端的任务:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自数据库服务器的信息;利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
【客户端和用户交互、服务器访问、数据处理有关】
(4)C/S的处理流程:
(5)优点:
a. 具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
b. 对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
【系统是分布式的,客户端和服务器运行在不同的电脑上】
c. 系统中的功能构件充分隔离。
【服务器和客户端任务分明。】
d. 将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
(6)缺点:
a. 开发成本较高
b. 客户端程序设计复杂
c. 用户界面风格不一,使用繁杂,不利于推广使用
d. 信息内容和形式单一
e. 软件移植困难
f. 软件维护和升级困难
g. 新技术不能轻易应用
3. C/S N层体系结构
(1)在客户端和服务器之间加入一层或多层服务器。
4. 客户机/服务器(Client/Server)体系结构(三层)
(1)客户端:表现逻辑层、表现层
中间服务器:应用逻辑层
服务器:数据存储层、数据处理层
(2)三层C/S的处理流程
(3)优点:
a. 应用的各层可以并行开发,可以选择各自最适合的开发语言。
b. 利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。
�【有点像封装】
c. 允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性。
d. 把应用的业务逻辑与用户界面分开,将商业逻辑放在经过合理任务划分与物理部署后的中间层应用服务器上,从而客户程序通过中间层简介访问数据库,客户端修改不影响服务器
e. 客户数可以充分扩展,如果需要修改应用程序代码,只需对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。
【中间的应用逻辑层相当于软件的功能,然后客户端是一个显示界面】
5. 浏览器/服务器(B/S)风格
(1)B/S风格是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。
(2)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
【用户仅仅需要一个浏览器就能使用所有的模块】
(3)缺点:
a. 缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
【因为要不断刷新才能获取】
b. 系统扩展能力差,安全性难以控制。
【所有东西都在服务器上】
c. 在数据查询等响应速度上,要远远地低于C/S体系结构。
d. 数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
6. 公共对象请求代理结构CORBA(Common Object Request Broker Architecture)
(1)是一种独立于语言和软件/硬件平台的软件构件模型。
(2)CORBA主要由对象请求代理、公共对象服务、通用设施和应用接口组成。
(3)对象请求代理ORB:建立基于分布式对象的应用程序的基础,使得分布式对象之间能够透明的发送请求或接受响应。
【CORBA中所有的通信都通过ORB进行,所以远程和近程是等价的。】
对象服务:对象管理体系结构OMA定义的一系列独立于应用领域的服务。它的本职是将覆盖对象整个生存期的对象管理任务标准化。
【用来提供基本ORB功能之上的更高系统级服务。】
通用设施:是IDL定义的、向终端用户应用程序提供的一组服务接口的集合。
应用程序对象:为终端用户执行特定的任务,主要为某一类应用或一个特定的应用提供服务,位于整个OMA参考模型的最高层。
(4)对象管理结构
(5)特点:
a. CORBA在基于网络的分布式应用环境下实现应用软件的集成。
b. CORBA采用并吸收了面向对象技术、分布式计算技术和多层体系结构技术,实现了在分布式应用环境中软件的可复用性、可移植性和互操作性。
c. 提供“软件总线”机制,任何应用只要提供按照CORBA规范定义的一组接口,就可以方便的集成到CORBA系统中。
d. 使用代理扩展了客户/服务器的计算模型。
【代理的作用是:完成对客户发出的抽象服务请求的映射,自动发现并找到服务器,自动设定路由,实现服务器程序的执行】
【客户和服务器完全分离。客户不再与服务器直接联系,而是与代理发生联系。这样,客户和服务器都易于维护、修改。】
e. 使用IDL定义接口
7. 正交软件体系结构
(1)正交软件体系结构由组织层和线索的构件构成。
层是由一组具有相同抽象级别的构件构成。
线索是子系统的特例,它是由完成不同层次功能的构件组成(通过相互调用来关联),每一条线索完成整个系统中相对独立的一部分功能。
【这里有点像分层的体系结构】
(2)线索是纵向的,•每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用的。
(3)如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构就是完全正交的。
(4)同一层次的构件不允许互相调用。
【相互独立】
(5)系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。
(6)特点:
a. 结构清晰,易于理解。
【线索功能相互独立,不进行互相调用。每个构件的位置都十分明了。】
b. 易修改,可维护性强。
【由于线索之间是相互独立的,所以对一个线索的修改不会影响到其他线索。】
c. 可移植性强,重用粒度大。
8. 异构结构风格
(1)由这些纯体系结构组合而成。
(2)C/S与B/S混合之内外有别模型:
a. 优点:外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部的用户交互性强,数据查询和响应速度较快。
b. 缺点:企业外部用户修改和维护数据时,速度较慢,较繁琐,数据的动态交互性不强。
(3)C/S与B/S混合之查改有别模型:
a. 缺点:外部用户能直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全这造成一定的威胁。