版权归原作者所有,如有侵权,请联系我们

[科普中国]-多层分布式系统

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

背景

客户机/服务器(C/S)是一种传统的应用系统模式。在Client/Server结构模式中,客户端直接连接到数据库服务器,由二者分担业务处理,这样的体系结构存在以下的缺点:

(1) 客户机与服务器直接连接,安全性低,非法用户容易通过客户机直接闯入中心数据库,造成数据的损失;

(2) 客户机程序肥大,并且随着业务规则的变化,需要随时更新客户机端程序,大大增加系统的维护量,造成维护工作的困难;

(3) 每个客户机都要直接连接到数据库服务器,使服务器为每个客户机建立连接,从而消耗大量原本就紧张的服务器资源;

(4) 大量的数据通过客户机端和服务器端直接传送,在业务高峰期容易造成网络流量暴增,网络出现阻塞。

因此,Client/Server模式的这些先天不足,随着业务量的变化,将出现越来越多的问题,所以有必要对这种两层体系进行改革,将业务处理与客户交互分开,以实现瘦客户/业务服务/数据服务的多层分布式应用体系结构。1

多层分布系统的简介随着中间件与Web技术的发展,三层或多层分布式应用体系的应用越来越广泛。典型的多层分布式系统可划分为3个层次,分别为客户端、应用服务器和数据服务层。在这种体系结构中,客户机只存放表示层软件,应用逻辑包括事务处理、监控、信息排队、Web服务等采用专门的中间件服务器,后台是数据库,系统资源被统一管理和使用,客户程序与数据库的连接被中间层屏蔽,客户程序只能通过中间层间接地访问数据库。中间层可能运行在不同于客户机的其他机器上,经过合理的任务划分与物理部署后,可使得整个系统的工作负载更趋均衡,从而提高整个系统的运行效率。这些位于中间层的中间件又称应用服务程序,因为它们实际上表达了一个企业处理信息的主要业务逻辑,即企业的系统模型与功能模型,而客户程序仅实现图形用户界面,完成终端用户与业务逻辑之间的交互。2

多层分布式系统的主要层次多层分布式系统在逻辑上划分成实现各层功能的多个部分,分别运行在通过局域网或Intemet相互连接的多台计算机上。典型的多层分布式系统可划分为3个层次(如图1所示),各层次按照以下方式进行划分,并实现明确分工:

(1) 瘦客户层(客户端):实现用户界面的表示逻辑,提供简洁的人机交互界面,完成数据的输入/输出;

(2) 业务服务层(应用服务器):完成业务逻辑,实现客户与数据库对话的桥梁。同时,在这一层中,还应实现分布式管理、负载均衡、Fail/Recover、安全隔离等;

(3) 数据服务层:提供数据的存储服务,一般就是数据库系统。13

多层分布式系统的主要特点多层分布式系统克服了传统的两层Client/Server模式的许多缺点,其主要特点如下:

(1) 安全性:中间层隔离了客户直接对数据服务器的访问,保护了数据库的安全;

(2) 稳定性:中间层缓冲Client与数据库的实际连接,使数据库的实际连接数量远小于Client应用数量,能够在一台服务器故障的情况下,透明地把Client工作转移到其他具有同样业务功能的服务上;

(3) 易维护:由于业务逻辑在中间服务器,当业务规则变化后,客户端程序基本不做改动;

(4) 快速响应:通过负载均衡以及中间层缓存数据能力,可以提高对客户端的响应速度;

(5) 系统扩展灵活:基于多层分布体系,当业务增大时,可以在中间层部署更多的应用服务器,提高对客户端的响应,而所有变化对客户端透明。2

多层分布式系统的开发分布式多层系统的开发主要考虑三方面的技术:

(1) 开发环境:开发人员需要一种创建新组件、并将已有组件加以集成的开发环境;

(2) 应用程序的集成:开发人员需要集成各种应用程序,以创建出更强大的应用;

(3) 应用程序的配置:分布式多层体系的开发需要配置平台的支持,以便在用户剧增时能有效地扩展,并保持系统的稳定。1

多层分布式系统的开发规范多层分布式系统的开发,比较重要的有两种规范,即CORBA和DCOM。其中,CORBA提供跨平台的能力,DCOM主要用于Windows平台。同时,随着分布式应用的发展,旧的硬件/软件平台的不断更新,跨硬件平台、网络环境、操作系统以及跨不同数据库的应用系统不断出现,使传统的开发工具越来越陷入尴尬境地,因此中间件应运而生。1

CORBA在各种分布式体系结构中,由OMG采纳的公共对象请求代理结构CORBA模型具有较完善的规范标准,并且严格地区分了CORBA规范与CORBA产品。CORBA保证应用程序的可互操作性以及对于硬件平台、操作系统、编程语言以及网络与通信协议的无关性。CORBA规范中包含一系列单独的规范,例如OMG接口定义语言IDL、网络通信协议GIOP和IIOP、可移植对象适配器POA,、CORBA组件模型CCM等。

CORBA建立在OMG的对象模型基础之上,主要有三个关键部分:接口定义语言IDL、对象请求代理ORB和标准通信协议IIOP。对象请求代理(ORB)是OMA的核心基础设施,CORBA规范规定了ORB的标准体系结构。ORB负责完成查找请求的对象实现、让对象实现准备好接收请求、传递构成请求的数据等任务所需的全部机制。客户程序所看到的对象接口完全独立于对象所处的位置、实现对象的程序设计语言以及对象接口中未反映的其他特性。2

DCOM微软公司的分布式COM (DCOM)扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM,其应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。当在做分布式计算时,DCOM处理网络协议的低层次的细节问题,从而能够集中精力解决用户所要求的问题。

DCOM的技术特点在于每个程序模块无需存储各客户端,更无需下载程序本身在客户端运行。唯一要做的事是在服务器内存放一份DCOM部件,不同地方的用户即可通过网络来访问这一DCOM部件。当然DCOM技不只是节省了存储空间。而且,使用DCOM部件构成的大型程序,可以把处理相同工作的部分分割开来交给一个专门的软件模块完成。而其他程序或其他DCOM部件只需对其进行调用,即可获得所需信息。当程序流程发生变化时,程序员只要对变更的部分进行修改,即可同时对其他单位的程序更新,有效地提高了整个系统的灵活性。2

中间件中间件(middleware)是一种独立的系统软件或服务程序,是应用系统中介于应用层和网络层之间的一个功能层次,它能使应用系统独立于由异构的操作系统、硬件平台与通信协议组成的底层环境。图2是两种软件结构的比较。

中间件位于客户机服务器的操作系统之上,管理计算机资源和网络通信,它扩展了客户/服务器结构,形成了一个包括客户、中间件和服务器在内的三层结构及多层次结构,为开发可靠的、可扩展的、复杂的事务密集型应用系统提供了有力的支持。

中间件也是一类软件,它的首要任务是实现应用与平台无关的互操作,其次能够合理的管理网络通信资源。按照idc的分类方法,中间件可分为六类,第一类是终端仿真/屏幕转换中间件,第二类是数据库访问中间件,第三类是远程过程调用中间件,第四类是消息中间件,第五类是交易中间件,第六类是对象中间件。1