Concept-第10章翻译

本文介绍了Oracle数据库中的客户/服务架构及多层结构的工作原理。详细解释了如何通过Oracle网络服务实现分布式处理,以及如何利用多层结构提高安全性并减少服务器负载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10 应用程序的结构

这篇文章定义了应用程序的结构并且描述了在分布式处理环境中oracle数据库服务和数据应用程序是如何工作的。这篇材料应用于oracle数据库系统环境中的每一种类型。

这篇文章包含下面的主题:

 *客户/服务结构的介绍

 *多层结构的介绍

 *oracle网络服务的介绍

 

客户/服务结构的介绍

oracle数据库系统环境中,数据库应用程序和数据库被分成两部分:前台的客户端和后台的服务端--,因此产生客户/服务架构。客户运行能够访问数据库信息的数据库程序并且通过键盘,点设备比如鼠标来和用户交互。服务端运行oracle软件并且处理一些需要使能够并发的和共享的对一个oracle数据库进行的访问的函数。

尽管客户端应用程序和oracle数据库能够在同一台机器上运行,当客户端部分和服务部分通过网络是运行在不同的机器上时,将会有该更好的运行效率。

分布式处理是利用了多个分布在不同的系统上的处理器来履行一个单独的任务的处理。在图10-1是在oracle数据库系统中的分布式处理的例子:

 *A部分,客户端和服务端是被放置在不同的机器上,并且机器之间是通过网络连接的。一个oracle数据库系统的服务和客户之间是通过oracle网络服务-oracle的网络接口来进行通信的;

 *B部分,一个单独的机器有多的处理器,并且不同的处理器使得从oracle中的客户应用程序分开执行。

 注意:这篇文章适合一个服务器上有一个数据库的环境。在分布式数据库上,一个oracle服务可能需要访问在另一个服务器上的数据库。

10-1 客户/服务结构和分布式处理

 

在分布式处理环境中的客户/服务结构提供了下面的好处:

*客户端程序不再对执行任何的数据处理负责。而是,客户端应用程序从用户那请求输入,从服务端请求数据,然后分析并且采用客户端站或者终端(例如:采用图形或者数据表)的显示能力来使数据呈现出来。

*客户应用程序不再依赖于数据的物理的分布。即使数据被移动或者被分配到另一个数据库服务器上,,应用程序能够有一点修改或者没有任何修改的继续起作用。

*oracle使用了在其所在的操作系统底层的的多任务处理和共享内存设备。所以,oracle数据库对它的客户端应用程序传递了很高可能的并发度,数据集成以及很好的性能。

*对数据的呈现方面客户端站或者终端可以被优化(例如:通过提供图形和鼠标支持),并且服务器端在对数据的处理和存储方面也可以被优化(例如:通过拥有许多内存和磁盘空间)。

*在网络环境中,你可以采用不昂贵的客户端工作站来有效的访问远程的服务器数据。

*必要的时候,随着系统的增长,数据库也能够扩大规模。你可以通过网络(横向规模)向分布式处理工作增加多个服务器,或者你可以移动oracle数据库到一个微型机器或者是大型机器来充分利用大系统的性能方面的优势(纵向规模)。在所讲的任何一个方案中,所有的数据和应用只需要一点点的维护或者都不需要修改,因为oracle数据库在系统之间是方便携带的。

*在网络环境中,共享数据被存储在服务器上而不是储存在系统的所有机器上。这样使得管理并发访问更加地容易和高效。

*在网络环境中,客户端应用程序SQL语句向服务器端提交数据库请求。当数据库接受到请求之后,SQL语句被服务器处理并且将结果返回给客户端。网络负荷被保持为最小,因为只有请求和结果才被通过网络传递。

 

多层结构的介绍

在多层结构环境中,一个应用服务在客户和oracle数据库服务之间被当作一个接口来为客户端和服务器端提供数据。这种结构是非常重要的因为网络的普遍使用。

这个结构使一个应用服务的具有下面的用途:

 *验证客户信任状,比如:一个WEB网页;

 *连接到一个数据库服务器端;

 *执行被请求的操作;

 

下面图10-2是多层结构的例子:

10-2 一个多层结构环境的例子

 

客户

一个客户发起一个需要在oracle数据库服务器端执行的操作的一个请求。客户端可以是一个WEB网页或者是其他的用户终端。在多层结构中,客户通过一个或者多个应用服务器连接数据库服务。

应用服务器

一个应用服务为客户提供对数据的访问。它作为在客户和一个或者多个oracle数据库服务之间的接口提供服务,它提供一个额外的安全级别。它也能够为客户执行一些查询处理,所以减少了oracle服务器端的一些工作负荷。

当应用服务正在为客户执行在数据库服务上的操作时,应用服务采取客户的身份验证。应用服务的特权是受限的来阻止在一个用户操作中一些不必要的以及一些不想执行的操作的执行。

数据库服务

一个数据库服务为代表一个客户的一个应用应用服务请求的数据提供所需的数据。数据库服务完成剩下的所有查询处理。

对于代表单个客户的应用服务以及代表其应用服务自身的所要的执行的所有操作,数据库服务能够审计这些操作。例如:一个客户操作是一个请求信息并且将这些信息显示在客户端,然而会有一个应用服务操作是连接数据库服务器的操作。

 

Oracle网络服务的介绍

Oracle网络服务在分布式以及不同种类的计算环境中提供企业范围的连接解决方案。Oracle网络服务使能够产生一个从一个客户应用程序端到一个oracle数据库服务端的网络会话。

Oracle网络服务采用通过大范围的网络支持的通信协议和应用程序接口来为oracle提供一个分布式数据库和分布式处理。

*一个网络协议是一个决定应用程序是如何访问网络以及数据是如何细分为可以通过网络传输的传输包的一系列的规则的集合;

*一个应用程序接口是一系列子程序的集合,这些子程序在网络场合下提供一个通过一个通信协议建立远程的进程对进程的通信的手段。

在一个网络会话被建立之后,oracle网络服务当作客户应用程序和数据库服务的一个数据快递者。oracle网络服务负责歼击和维护在客户应用程序和数据库服务器之间的连接,以及在它们之间的信息交换。oracle网络服务也能够执行一些任务因为oracle网络服务是放置在网络中的每个机器上。

oracle网络服务提供 位置透明以及集中化的配置和管理,以及快速的安装和配置。它也让你的系统资源最大化以及改进性能。Oracle的共享服务器结构也增长了应用程序的规模以及并发连接到数据库的客户数量。虚拟接口(VI)协议在高速网络硬件上放置了大多数的通讯负荷来释放CPU,将这些CPU提供给大多数重要的任务。

 

Oracle网络服务是如何工作的

Oracle对工业的网络协议的支持在运行在数据库服务上的oracle进程和运行在网络中其他机器上的oracle应用程序的用户进程之间提供了一个接口。

Oracle协议从oracle应用程序的接口中获取SQL语句并且将这些语句打包通过oracle支持的工业标准的更高级别的协议或者程序的接口中的一个传输给oracle。这些协议也从oracle数据库中获取答复并且也打包通过同样的通信机制将答复传输给应用程序。上面的这些任务是被网络操作系统来负责完成。

根据oracle所运行的操作系统,数据库服务的oracle网络服务能够包括驱动软件并且能够启动一个额外的oracle的后台进程。

 

监听器

当实例启动时,一个监听进程建立了一个连接到oracle的通信路径。当一个用户进程发出一个连接请求时,监听器决定是否它应该采用一个共享的服务调度进程还是一个独立的服务进程,然后建立一个适合的连接。

监听器也可以在数据库之间建立连接。当多个数据库或者多个实例运行在同一个机器上,就象在RAC中,服务名可以使实例在同一个机器上采用其他的监听器来自动地注册登记。一个服务名可以识别多个实例,并且一个实例可以属于多个服务。连接到一个服务的客户不需要定义它们需要连接的实例的实例名。

 

服务信息注册登记

动态的服务注册减少了为多个数据库或者实例的管理工作。监听器将客户的请求连接到的实例的服务名的信息被登记在监听器中。服务信息被监听器动态地注册,是通过一个叫服务注册特性或者是是静态地在listener.ora文件中配置好的手段来注册的。

服务注册特性是依赖PMNO进程--个后台进程--来将实例信息以及该实例和共享服务的调度器的当前状态和负荷信息登记到监听器中去。该登记信息使得监听器能够将客户的连接请求传送到适当的服务处理者手中。服务登记不需要在listener.ora文件中配置。

初始参数SERVICE_NAMES鉴别一个实例是属于哪个数据库服务的。在实例启动时,属于同一个服务的其他的每个实例是采用各自的监听器来登记相关信息。在数据库运行过程中,每个服务的实例将有关CPU的使用信息以及当前的连接数量传递到在同一个服务上的所有的监听器上。这样可以动态地调整负荷平衡以及处理连接失败的情况。

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值