2.2 DDBS的体系结构
在系统实现上,典型的数据库系统的体系结构为客户/服务器模式,即从层次上将数据库系统的功能划分为客户端功能和服务器端功能。客户端为用户提供数据操作接口,而服务器端为用户提供数据处理功能。分布式数据库系统按系统的功能层次也可以描述为客户/服务器结构。
2.2.1 基于客户/服务器结构的体系结构
典型的客户/服务器体系结构是两层基于功能的体系结构,分为客户端功能和服务器端功能。分布式数据库的全局数据分布于多个不同的场地(数据服务器),由服务器完成绝大部分的数据管理功能,包括查询处理与优化、事务管理、存储管理等。在客户端,除了应用和用户接口外,还包括管理客户端的缓存数据和事务封锁、用户查询的一致性检查以及客户与服务器端之间的消息通信等。典型的基于三层客户/服务器结构的分布式数据库系统的体系结构如图2.3所示,对用户来讲,AP为服务器端,对DP来讲,AP为客户端,DP为服务器端。实际上,根据具体的应用需求,可构建不同的基于客户/服务器体系结构的分布式数据库系统。
图2.3 基于客户/服务器的DDBMS的体系结构
AP:应用处理器,用于完成客户端的用户查询处理和分布数据处理的软件模块,如:查询语句的语法、语义检查、完整性和安全性控制;根据外模式和模式把用户命令翻译成适合局部场地执行的规范化命令格式;处理访问多个场地的请求,查询全局字典中的分布信息等;负责将查询返回的结果数据从规范化格式转换成用户格式。
DP:数据处理器,负责进行数据管理的软件模块,类似于一个集中式数据库管理系统,如:根据模式和内模式选择通向物理数据的最优或近似最优的访问路径;将规范化命令翻译成物理命令,并发地执行物理命令,并返回结果数据;负责将物理格式数据转换成规范化的数据格式。
CM:通信处理器,负责为AP和DP在多个场地之间传送命令和数据,保证数据传输的正确性、安全性和可靠性,保证多个命令消息的发送次序和接收次序一致。
根据不同的应用需求可以构建不同的客户/服务器结构的系统,如图2.4所示。单AP、单DP系统结构属于集中式数据库系统结构;多AP、单DP系统结构属于网络数据库服务器系统结构;单AP、多DP系统结构属于并行数据库系统结构;多AP、多DP系统结构为典型的分布式数据库系统结构。另外,在AP与DP的功能配置上,可以是瘦客户端/胖服务器方式,也可以是胖客户端/瘦服务器方式。
图2.4 基于客户/服务器功能的不同系统的体系结构
2.2.2 基于“中间件”的客户/服务器结构
传统的客户/服务器结构是由全局事务管理器统一协调和调度事务的执行,属于紧密耦合模式,导致系统复杂度高、资源利用率低。为此,目前的分布式数据库系统均采用基于“中间件”的客户/服务器模式,由中间件桥接客户端和服务器端的功能,使客户端和服务器之间具有松散的耦合模式。目前,不同的分布式数据库系统采用不同的“中间件”软件,典型的如:Oracle采用数据库连接(Database Link)实现分布式数据库间的协同操作;DB2应用DB2 Connect服务实现多数据库的分布式连接(join);Sybase应用OmniCONNECT或DirectCONNECT中间件模块实现多数据源的透明连接;Microsoft SQL Server通过OLE DB访问多异类数据源。
尽管目前并没有支持商用分布式数据库系统的统一的中间件软件,但它们都是基于中间件思想的实现,是典型的基于“中间件”的客户/服务器结构,其功能结构如图2.5所示。数据库中间件是三层体系结构的中间层,不仅可以隔离客户端和服务器端,还可以分担服务器的部分任务,平衡服务器的负载。数据库中间件的核心功能包括以下几个方面。
●客户请求队列,负责存放所有从客户应用处理器(AP)发来的数据请求,同时缓存客户的响应结果。
●负载平衡监测模块,负责监控数据库服务器(DP)的状态及性能,为数据库中间件的调度提供依据。
●数据处理模块,负责处理从数据库返回的数据,按照一定的规范格式将数据传送给客户应用处理器(AP)。
●数据库管理器,负责接收客户请求队列中的客户请求,调用相应的驱动程序管理器,完成相应的数据库查询任务。
●驱动程序管理器,负责调度相应的数据库驱动程序,实现与数据库的连接,用于支持不同型号的数据库。
●数据库连接池,负责建立与物理数据库的连接。当客户请求队列中存在等待连接的作业时,数据库连接管理器检查数据库连接池中是否有空闲的相同连接。如果存在相同的空闲连接,则映射该连接,否则判断是否达到最大的数据库连接数。如果没有达到最大连接数,则创建一个新连接并映射该连接,否则循环等待。
图2.5 基于“中间件”的客户/服务器的体系结构