Oracle 概念(Oracle 10.2) 第十章 应用程序架构

Oracle 概念(Oracle 10.2)

10、应用程序架构

这一章定义了应用程序架构,描述了Oracle数据库服务器和数据库应用程序在分布式处理环境中是如何工作的。这个架构几乎可以应用到任何类型的Oracle数据库系统环境中。

本章包含下列内容:

客户端/服务器架构介绍

多层体系架构概述

Oracle网络服务概述

客户端/服务器架构概述

在Oracle数据库系统环境中,数据库应用程序和数据库分成两个部分:一个前端或者客户端部分,一个后端或服务器部分,就是常用的术语:客户端/服务器架构。客户端运行数据库应用程序,负责通过键盘、屏幕和点击设备(例如鼠标)来访问数据库信息和与用户交互。服务器运行Oracle软件和处理对数据库的并发、共享访问需要的功能。

虽然客户端应用程序和Oracle可以运行在一台服务器上,但通过网络连接在不同的机器上运行客户端和服务器可以获得更高的性能。下一部分讨论了Oracle客户端/服务器架构可能的变体。

分布式处理就是在不同的系统上使用多个处理器来执行单个任务的处理。Oracle数据库系统的分布式处理例子在图10-1中有展现。

在图表的A部分,客户端和服务器位于不同的计算机上,这些计算机通过网络连接。Oracle数据库系统的客户端和服务器端通过Oracle网络服务(Oracle网络接口)通讯。

在图表的B部分,单个计算机有多个处理器,不同的处理器独立的执行Oracle客户端应用程序。

注意:这章应用的环境是一台服务器上一个数据库。在分布式数据库中,一个服务器(Oracle)可能需要访问另一台服务器上的数据库。

图10-1 客户端/服务器架构和分布式处理

Oracle的客户端/服务器架构在分布式处理环境提供下列优势:

客户端应用程序并不负责执行任何数据处理。它从用户获得输入,从服务器获得数据,然后使用客户端工作站的显示能力或者终端来分析和展现数据(比如使用图形界面或电子表格)

客户端应用程序不依赖数据的物理位置。即使数据被移动或者分布到另一台数据库服务器,应用程序只要做微小的调整或者不需要调整仍然可以发挥作用。

Oracle可以利用底层操作系统的多任务和共享内存能力。因此,它可以给它的客户端应用程序提供最高等级的并发、数据完整性和性能。

客户端工作站或者终端可以优化数据展现(例如,通过提供图形和鼠标支持),服务器可以优化数据处理和存储(例如,通过提供更多的内存和磁盘空间)。

在网络环境下,你可以使用便宜的客户端工作站高效的访问远程服务器的数据。

如果需要的话,当系统性能增长,Oracle性能也可以提高。你可以为分布式数据库处理负载在网络中增加多个服务器(水平扩展),你也可以将Oracle迁移到小型机或大型机,来利用大型系统的性能(垂直扩展)。在任何情况下,所有的数据和应用程序都不需要或者只需要一点点修改,因为Oracle在系统之间非常容易迁移。

在网络环境中,共享数据是保存在服务器中,而不是保存系统中的所有计算机中。这是的管理并发访问更容易和更高效。

在网络环境中,客户端应用程序使用SQL语句向数据库提交需求。数据库收到之后,处理SQL语句并将结果返回给客户端应用程序。网络流量保持最小,因为只有请求和结果才在网络上传输。

多层体系结构

在多层体系环境中,一个应用服务器为客户端提供数据并作为数据库服务器和客户端之间的接口。这个架构随着Internet应用的流行而变得更加重要。

启用应用服务器的架构可以:

验证客户端(比如Web浏览器)的证书

连接数据库服务器

执行请求的操作

多层体系结构的例子如图10-2所示。

图10-2 多层体系结构环境例子

客户端

客户端提交一个请求,数据库服务器负责执行对应的操作。客户端可以是一个Web服务器或者其他最终用户进程。在多层体系结构中,客户端通过一个或多个应用程序服务器来连接数据库服务器。

应用服务器

客户端通过应用服务器访问数据。应用服务器在客户端和一个或多个数据库服务器之间作为一个接口服务,它提供了额外的安全性。它还能为客户端执行一些查询处理,因而可以减轻数据库服务器的负载。

在应用服务器为客户端在数据库服务器执行操作时就像一个客户端一样。应用服务器的权限是严格限制的,避免在客户端操作期间执行不必要的和多余的操作。

数据库服务器

数据库服务器为代表一个客户端请求的应用服务器提供数据。数据库服务器处理剩余所有的查询。

Oracle数据库服务器可以审核代表单独客户的应用服务器执行的操作,就好像应用服务器自己执行操作一样。例如,一个客户端操作可以请求在客户端请求信息,但是应用服务器的操作可能是针对数据库服务器的连接请求。

Oracle网络服务概述

Oracle网络服务提供了在分布式、异构计算环境中企业级别的连接解决方案。Oracle网络服务负责启动从客户端应用程序到Oracle数据库的网络会话。

Oracle网络服务使用通讯协议或者支持大范围网络的应用程序接口(API)来为Oracle提供分布式数据库和分布式处理。

一个通讯协议是一系列的协议,负责指定应用程序如何访问网络、数据如何分包以便跨网络传输。

一个API是一系列的子程序,负责在网络条件下提供通过一个通讯协议来构建远程进程间通讯的途径。

网络会话建立之后,Oracle网络服务就成了客户端应用程序和数据库服务器之间的数据通讯员。它的责任是在客户端应用程序和数据库服务器之间构建和维护连接,还包括在它们之间交换数据。在网络中的每一台计算机上都有Oracle网络服务,所以它能够执行这个工作。

Oracle网络服务提供了位置透明性、集中的配置和管理以及快速简洁的安装和配置。它还可以最大限度利用系统资源和提高系统性能。Oracle共享服务器架构提高了应用程序的伸缩性和可以同时访问数据库的客户端数量。虚拟接口(Virtual Interface,VI)协议通过高速网络硬件上处理大部分的消息,这样就减轻了CPU的负担来处理更重要的工作。

Oracle网络服务如何工作

Oracle支持工业级别的网络协议,可以为在网络中运行Oracle进程的数据库服务器和运行用户进程的Oracle应用程序的计算机之间提供接口。

Oracle协议从Oracle应用程序的接口获得SQL语句,并将它们打包,通过一个支持的工业标准的高级别协议或者程序接口传输给Oracle。协议从Oracle中获得应答,并将它们打包,通过同样的高级别的通讯机制传输给应用程序。这个过程不依赖于网络操作系统。

依赖运行Oracle的操作系统,数据库服务器的Oracle网络服务软件可以包含驱动软件,也可以作为额外的Oracle后台进程启动。

监听器

当一个实例启动,一个监听进程为Oracle 构建一个通讯链路。当用户进程发出连接请求,监听器确认它应该使用共享服务器调度器进程还是专用服务器进程,从而构建合适的连接。

监听器还在数据库之间构建通讯链路。当多个数据库或实例运行在一台计算机上,例如真正应用集群(RAC),服务名(service name)自动注册到同一台计算机的其他监听器中。一个服务名可以标识多个实例,一个实例可以属于多个服务名。客户端连接到服务名,不需要指定它们想连接哪个实例。

服务信息注册

动态服务注册降低了多数据库和多实例的管理难度。监听器传递给客户端请求的服务名是注册到监听器上的。服务信息可以通过一个叫做服务注册的特性动态在监听器上注册,或者在listener.ora文件中静态配置。

服务注册依赖于PMON进程(一个实例后台进程)来向监听器注册实例信息,还包括实例和共享服务器调度器的当前状态和负载。注册信息使得监听器将客户端的连接请求传递到合适的服务处理程序。服务注册并不需要在listener.ora文件中配置。

初始化参数SERVICE_NAME标识了一个实例属于哪个数据库服务。在启动时,每个实例想同属一个服务的其他实例的监听器注册。在数据库操作中,每个服务的实例都发送CPU使用信息和当前连接数量给同一服务的监听器。这样才可以启动动态负载均衡和连接失败转移。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值