定义
网络中各结点之间有多条通路,就构成了分布式结构,见右图所示。
分布式结构没有固定的连接形式。从发信点到收信点的通路不止一条,通信时,由网络根据各结点的动态情况选择通信的实际路径。通信的控制功能分散在各结点上。它是最复杂的一种结构。它的通信控制也最复杂,对分散在各结点上的数据资源的管理也很复杂。由于结点问存在多条通路,当某些结点和链路发生故障时,仍有可能保证通信,所以有较高的可靠性。2
分布式结构是客户机/服务器结构的一种特殊类型。在这种结构中,数据分布存储在多台服务器上。一个分布式数据库是由分布于计算机网络上的多个逻辑相关的数据库组成的,其中,网络上的每个节点都具有独立处理能力,可以执行局部应用运算,也可通过网络执行全局应用运算。
分布式数据库管理系统的数据物理上是分布存储的,即数据存放在计算机网络上不同的局部数据库中:而在逻辑上,数据之间有语义的联系,属于一个系统。访问数据的用户既可以是本地用户,也可以是通过网络连接的用户。
OracleNet Services提供了企业级分布式连接方案,可以实现从客户端应用到Oracle数据库的网络会话。Oracle Net Services使用各种网络广泛支持的通信协议或应用程序接口(API),为Oracle服务提供分布式数据库和分布式进程管理。通信协议是一组规则,它决定了应用程序如何访问网络,以及数据如何拆分成包在网络中传输等问题。API是一组过程,在网络环境中,它们提供了通过通信协议建立远程连接的方法。1
分布式结构网络分布式结构网络是将分布在不同地点的计算机通过线路互连起来的一种网络形式。
分布式结构网络具有如下优点:
(1)由于采用分散控制,即使整个网络中的某个局部出现故障,也不会影响全网的操作,因而具有很高的可靠性。
(2)网中的路径选择最短路径算法,故网上延迟时间少,传输速率高,但控制复杂。
(3)各个节点间均可以直接建立数据链路,信息流程最短。
(4)便于全网范围内的资源共享。
分布式网络的结构具有如下缺点:
(1)连接线路所用电缆长,造价高。
(2)网络管理软件复杂。
(3)报文分组交换、路径选择、流向控制复杂。
鉴于分布式网络的结构特点,一般局域网中并不采用这种结构,一般应用于物理距离较远的公司或者单位位于不同地点之间的联网。3
分布式结构实现模型在分布式应用系统中最常使用的模型是客户机/服务器模型。客户机/服务器模型允许将任务量进行有效的划分,由多个不同的应用程序一起分工合作,以提高系统效率,平衡网络负载。客户机/服务器模型还可能按其连接性再进行划分,如果应用程序连接到正在使用的数据库或网络,它便是连接的客户。如果使用了应用程序,但没有连接到数据库或网络,它便是断开的客户。由于这种总体结构式的层次和连接模型并不互相排斥。每一个n层客户机/服务器应用程序都可以划归到连接的或断开的类别中。
目前,在客户机/服务器模型中体系结构和连接方法主要有以下四种:
(1)传统结构(两层) 在传统的客户机/服务器应用程序中,一个数据库服务器实现数据管理功能,而另一个客户应用程序实现其他的功能。业务逻辑经常在客户应用程序和数据库宿主的存储过程和触发器中划分。
(2)三层结构(n层)在三层模型中,数据库服务器实现数据管理功能,中间层应用程序实现公共业务逻辑,而界面组件提供用户界面。当几个应用程序访问同样的数据时,将相关的业务逻辑封装到一个组件中就很有意义了。当访问规则改变时,只有中间层组件需要更改。
(3)连接式 连接式客户应用程序是一直保持对数据库或网络连接的一种应用程序。这是一种最普通的客户机/服务器计算类型。应用程序实时响应用户处理信息的要求,并将处理好的信息更新到数据库中。在这种方式下处理数据的任务会落到RDBMs上。RDBMS通常并发更新和同时处理来自多个用户对数据的请求。因为大量的和这些应用程序相关的业务规则都是以存储过程、触发器、授权和特权、用户角色等形式存储或设置在RDBMS内部。
(4)断开式 断开式应用程序是一种脱机操作的应用程序,它允许用户处理数据而并不和某个网络或公司的数据仓库直接连接。使得数据可以按照与使用实时事务处理不同的某种方式来进行处理。通常的方式是在给定周期的时间内接收数据并进行批处理,事务处理在本地数据仓库进行,该仓库必须能够实现某种形式的复制操作。远程用户对公司数据仓库中数据的复制或分发通常依靠周期性使用调制解调器连接到公司网络并传输数据来完成。这种传输通常由应用程序逻辑来处理,它利用了信息自动复制技术以保持数据的同步。这种方式在网络条件较差,实时处理要求不高的情况下是一种最佳的解决方案。
传统的客户机/服务器模型实现起来可以特别快,因为它要求较少的前端没计。用户响应时间也可能要比更复杂的客户机,服务器模型的响应时间少。对于一个用户数量少,范围划分清晰的应用程序来说,两层模型是一个很好的选择。
两层应用程序通常不能很好地适应大量用户使用的情况。在用户数量增加时,存储过程中真实业务逻辑的实现会导致数据库竞争。客户也需要高速地连接到数据库服务器上;因此对于远程用户来说两层模型不是一个好选择。更新分布可以很灵活,因为客户组件中的改变必须要和服务器组件中的改变很细心的协调。
三层应用程序一般比两层应用程序具有更好的规模。在中间层中实现业务逻辑而不是用触发器或存储过程实现,这样极大地减少了数据库查询的数量,因而也减少了数据库竞争。当数据库操作通过中间层时,用户响应时问会增加。但是,尽管中间层初始化会降低开始的操作,但后续的操作会快得多。另外,并不是所有的数据库操作都要通过中间层。对于简单的数据库查询,其中的数据不可能再被使用,因此,从用户界面直接访问数据库是适当的。
虽然三层模型更复杂,但是它真正具有更好的规模可变能力和灵活性。因为触发器不强制执行业务逻辑,所以插入和更新操作快速且有效,并且数据库服务器可以处理更繁重的加载而更少产生竞争。
使用连接式客户体系结构时,中间层或第二层组件可以远程地执行,用户不必要将它们一起放在自己的机器中,这样有助于减少远程机器上的复杂性。因为远程机上复杂性很高时,维护起来很繁重并且要花费大量资金。
但如果遇到以下情况时,那么断开式客户体系结构会更适用:
(1)每周一次或两周一次信息就足够了。
(2)应用程序的执行很集中。
(3)要求高复杂性和足够的可靠性程度。
(4)现场可能不支持连接性要求。
(5)可利用的带宽不能以足够的速度支持并发用户团体。
如果能够让用户使用一个断开式应用程序,然后等机会到来时再传输数据,那么用户就有了一定的灵活度。这样在网络条件很差的情况下也不影响工作,工作完毕后可以再找机会传输数据。4
高度的分布式结构将来的趋势是入侵检测高度分布式监控结构的使用。这种方法将使用许多具有不同定位策略的自主代理。例如,根据使用的策略,每一个代理可以定位一个特定的事件类型、特征类型、平台或过程,可以有不同的策略来管理分析功能并反映功能的存放。最可能的是,这样的代理可以和其他信息源(操作系统和基础设备中的日志机制)同时存在,并且也可以被一个监督进程所管理。这个监督进程将把从代理得到的数据与从其他数据传感器得到的数据关联起来,从而识别出细微的问题所在。
分布式监督和分析体系结构也能很好地适应实现某些免疫系统的入侵检测方法。例如,许多代理都会检查系统,寻找接触关键文件的反常过程。每一个代理都按照一个特定的攻击特征来衡量进程的活动。如果一个代理发现了具有某种攻击特征的进程,它就会修改这个进程,也可能阻止这个进程的处理速度。由于这个进程会激发许多代理,每一个代理都会使这个进程的处理速度慢一点,所以这个进程的处理速度会慢到足以被人或被某种代理记录下来,代理记录关于这个进程的信息并将其杀死。5