软件功能分布研究.doc

上传人:夏** 文档编号:562130362 上传时间:2024-01-08 格式:DOC 页数:5 大小:42.51KB
返回 下载 相关 举报
软件功能分布研究.doc_第1页
第1页 / 共5页
软件功能分布研究.doc_第2页
第2页 / 共5页
软件功能分布研究.doc_第3页
第3页 / 共5页
软件功能分布研究.doc_第4页
第4页 / 共5页
软件功能分布研究.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《软件功能分布研究.doc》由会员分享,可在线阅读,更多相关《软件功能分布研究.doc(5页珍藏版)》请在金锄头文库上搜索。

1、 C/S体系结构下ORACLE和PB应用软件开发中的软件功能分布研究 李小庆 马玉书 (石油大学(北京)人工智能中心 ,北京102200) 摘要 本文以ORACLE和PB开发应用程序为例,分析了在C/S体系结构下数据服务器和客户软件各自能完成的功能,并讨论了在它们之间如何合理的分布功能。 主题词 C/S(客户/服务器) 、数据完整性、网络I/O 、处理逻辑 中图法分类 第一作者简介 李小庆,男,1977年生,1998毕业于石油大学(华东)计算机科学系,现为石油大学(北京)人工智能中心硕士研究生,主要从事大型数据库应用系统的开发。1、 引言90年代以来,随着网络技术和数据库技术的飞速发展,采用分

2、布式环境下的客户/服务器(C/S)体系结构逐渐成为开发数据库应用系统和MIS系统的主流。C/S体系结构包括两层含义,其一指硬件的C/S结构,其二指软件的C/S结构。随着软件规模日趋庞大,结构日趋复杂,设计合理的软件体系结构显得越来越重要。软件C/S结构是指将一个应用系统按照逻辑功能分成若干组成部分,例如用户界面、表示逻辑、用户逻辑、数据约束等,这些功能组成部分由客户软件和服务器软件分别承担。实际应用中,用户软件和服务器软件有相当部分功能存在重复和交叉,服务器能实现的一些功能,客户软件通过一定的处理逻辑也能实现,但有时应用的功能不合理分布时,则会降低整个应用系统的性能,例如,一个设计不好的应用程

3、序没有充分利用数据库的存储过程,以至要执行过多的网络I/O,使网络负载过重。所以在开发服务器软件和客户软件时,如能明确二者的功能,并能在它们之间实现合理的功能分配,对开发大型数据库系统和MIS系统具有重要意义。本文以当前开发C/S应用程序的最流行的数据库管理系统ORACLE7和数据库应用开发工具PB6来论述这一问题。2、 数据库服务器可以实现的功能 在分布式C/S环境下,数据库服务器指以ORACLE作为后台所实现的数据库管理功能。通常,它侧重于对数据库系统进行管理和维护,其功能主要包括数据的完整性、并发性和安全性等方面。2.1 数据完整性数据的完整性,是指按照某些规则来确定数据是否正确和可用,

4、它可分为内部规则和业务规则。关系模型的内部规则由域完整性、实体完整性和关系完整性等组成,业务规则则是根据数据在实际应用中对数据的要求而制定的规则。1、内部规则l 域完整性域完整性关系是指表中的任一数据都属于列的成员,表中不含任何无意义或非法的数据。ORACLE7中,使用列的数据类型来实现域的完整性,对于表中的每一列都要正确指出数据类型。l 实体完整性实体完整性是指在一个关系表中能唯一地识别一条记录,不存在两条相同的记录。ORACLE7中用主键来保证实体完整性。l 关系完整性 关系完整性是指关系数据库中一个关系的一列或一组列的值引用了另一关系中一列或一组列的值。在数据库内容发生变化时,两值必须保

5、持匹配。ORACLE7用外键来实现这一功能。2、 业务规则每一个数据库根据实际应用情况都有自己的业务规则集,它与数据库固有的规则集同等重要,例如,某公司的库存量不能超过一万,否则马上要给公司主管出示警告,以停止订货。ORACLE7提供一序列的强大功能来实现定制的业务规则:l 数据库触发器应用开发中会经常遇到复杂的业务规则,这些规则如在客户应用程序中编程就显得十分复杂,而且不易满足动态响应要求,这时应考虑采用ORACLE7的触发器。触发器其实是一个存储过程,它在满足触发条件时自动触发,以执行相应过程。l 存储过程、函数和包过程和函数是由编译过的SQL语句、控制流语句、变量说明、运算符等组成的集合

6、,它们由软件开发人员创建并存储在库中。当用户调用过程和函数时,数据库就按过程和函数预定义的操纵数据。采用过程和函数由很多优点,比如它能实现复杂的安全性和完整性的检查,能集中进行规则实施,减少网络流量,而且比较容易创建,可避免在客户应用程序重用大量的编程语句来实施业务规则。包是一组过程或函数的集合,如果开发应用程序需要使用多个不同的过程或函数协同工作,最好将过程或函数封装在一个包中,从而可以改善过程和函数单独使用时的性能。l 数据库报警当数据库发生某些特殊情况时,如库存量超过一万,需要提示给用户,以便用户采取适当行动,ORACLE7提供了数据库报警这一功能,让库管理程序自动周期性的发出SQL语句

7、查询需要报警的条件以给予报警。2.2 数据的并发性、安全性和优化处理技术说明数据并发性一个较好的例子是飞机订票系统,即如果不同地方的两个人在同一时间订票,有可能订到同一张机票,这是由于数据库中有关机票号的数据丢失了一个更新操作。由此可认为数据并发性是当两个用户或多个用户访问数据库会发生冲突而导致数据库出错,ORACLE7提供了排它锁和并发锁来防止这种冲突。当一个用户对数据进行更新,如果不会产生破坏性冲突,ORACLE7对数据分配一个共享锁,以允许其它用户也可以获得这样一个共享锁,反之,ORACLE7对数据分配一个排它锁,阻止任何其他用户更新该数据。ORACLE7实行行级封锁,通过最低程度减少数

8、据冲突来最大程度提高数据并发性。但ORACLE7对查询操作不分配锁,而提供多版本机制,对于每一个查询,ORACLE7返回基于一个时间点的查询数据的版本,如果在查询过程中会有更新冲突,ORACLE7将从回退段中读取旧数据,生成一个基于时间点的快照(结果集合)。为维护数据库的安全,ORACLE7提供了完善的安全机制,来对数据库合法地操作和控制。 ORACLE7将对数据库及其对象的存取控制权力分为两类:系统特权和对象特权。系统特权用以控制功能强大的系统操作,对象特权用以控制对数据的访问,在大型C/S应用程序中对各种权限管理是一件复杂的事,ORACLE7提供了“角色”这一功能来管理大量具有相同权限的用

9、户。另外,ORACLE7提供了审计来监测和记录用户对数据库施加的操作,它支持语句审计、特权审计、对象审计三类审计。数据库系统性能的优化,除了在设计阶段对其逻辑结构和物理结构设计进行优化使其时空开销最佳外,还可在运行阶段采取一些优化措施,使系统性能得到最优化。ORACLE7提供了一个ORACLE优化器,优化器有两种优化方法,一种是基于规则的优化,即基于存取路径等级的SQL语句的执行方法;另一种是基于代价的优化,就是执行SQL语句时,比较各个计划执行的代价,取代价最底者执行。DBA还可以通过调整ORACLE7的参数设置来调整数据库的性能,对参数的细微调整就能影响系统性能。3、 用PB6开发应用软件

10、所能实现的主要功能 PB6作为分布式C/S环境下的数据库应用开发工具,它主要适合于在客户端为各类用户开发各种不同类型的应用软件,因此,PB6应为数据库应用系统的建立和有效的管理与使用,提供完善的操作和丰富的功能。通常,PB6为用户前端提供了数据表示、应用处理逻辑等多种功能。31 数据表示客户程序应能将数据库的数据从库中取出并放到应用界面上,并提供对数据库进行检索、更新、修改、删除等操作。PB6提供了一种功能强大的数据库对象数据窗口来实现这些功能。数据窗口可对数据透明地存取,能进行很大程度上的完整性检查,并具有其它很多强大功能,具体来讲,它有如下功能:1、 数据窗口支持多种数据源 这些数据源不仅

11、可以是ORACLE、SYBASE、INFORMIX上的关系数据,也可以是TEXT、DBF等文件,数据窗口通过ODBC连接数据源。2、 数据窗口提供多种显示方式 数据窗口可提供方格、自由格式、标签格式等显示方式,还可以将几种显示方式组合到一起显示,构成组合格式。3、 数据窗口具有分析和统计数据功能 数据窗口能对库中的数据分组、求和、求平均值等,还能用多种统计图或交叉表方式对数据进行统计和分析。4、 数据窗口能实现复杂的查询 数据窗口能设置多重或嵌套查询条件,能设置分组查询条件,能添加计算列和计算域,能按多个域列排序,能够按设置条件进行数据过滤,将用户所需的数据显示出来。5、 数据窗口具有数据完整

12、性检查的功能 数据窗口的编辑屏蔽功能控制用户输入数据时只能按照给定的格式和相应的类型进行输入,数据窗口的有效性校验保证输入的数据满足相应的条件,否则为非法的数据,数据窗口的下拉列表框、子数据窗口和收音机按钮用以选择固定的数据,可以大大减少输入数据的出错率。数据窗口这些功能设置使数据入库前具有相当高的完整性。6、 数据传口自动管理数据的存取 数据窗口与数据库的交互可自动完成,不需开发人员涉及其中的细节。数据窗口与数据库交互的效率较高,其查询效率比嵌入式SQL语句高出10倍。7、 数据窗口提供了大量的函数和事件 数窗窗口为开发人员提供了100个左右和函数,通过这些函数可以实现对数据库的复杂操作,控

13、制界面对象以及获取数据窗口状态;数据窗口还提供了30种左右事件,开发人员可以在响应时间下编程来控制数据窗口的显示和控制。8、 数据窗口的其它功能 数据窗口还具有去掉重复记录,改变列的可修改属性和隐藏列的显示等功能。3.2 应用处理逻辑客户软件应能对各种数据进行综合分析,提炼出对用户有用的信息,它还应该实现其它各种辅助功能,然后将这些功能集成一体化,以较好的界面和方便的操作方式提供给用户使用。面向对象的第四代语言(OO4GL)PB6为应用开发提供了全面的和集成化的开发环境,它提供统一的访问DBMS的用户界面和应用程序接口API,它支持可视化图形用户界面(GUI)设计,并提供了流行的所有GUI控件

14、,如静态文本、树状视图、分组框等等。PB具有丰富的面向对象风格设置和许多操作对象手段,全面支持类、对象、继承、封装、多态性、重载等面向对象特征,利用这些特征,开发人员可以提高代码和控件的可重用性,从而使应用的维护和扩充变得十分简单。此外,PB6还提供了大量预定义函数和C+类的创建。PB6这些功能和特性,使得开发人员设计和实现应用处理逻辑变得高效快速。4、合理的功能分布从以上的功能分析我们可以看到,在C/S应用系统中,ORACLE7偏重于对数据库的管理,PB6偏重于对库的访问和各种处理逻辑,但它们某些功能相互重叠,比如PB6实现的某些功能,在ORACLE7能用过程和函数实现;ORACLE7具有强

15、大的数据完整性检查功能,PB6在很大程度上也能对入库前的数据进行完整性检查。如何做到功能合理分布,至少要考虑三个问题:是否减少网络I/O?是否提高系统整体性能?是否提高应用的开发效率?其中网络I/O时最应该注意的问题,通常它是应用程序性能的瓶颈,一个应用程序引起的网络I/O越少,整个应用系统运行情况就会越好。为了减少网络I/O,应将数据库的内部处理逻辑尽量向服务器(ORALE7)移进,为了提高系统的性能,ORACLE7本身所具有的基本数据完整性检查应在PB6中再次设置,业务规则视情况在ORACLE7或PB6中设置,对数据的分析处理在一定程度上可通过ORACLE7的过程和函数来实现,从而减少PB6开发客户应用程序的压力,数据并发性ORACLE7能自动实现,数据安全性可通过应用界面将授权信息传给ORACLE7来得到控制。为此,可提炼出以下几条规则,在实际开发中应综合考虑。1、 使用过程和函数实现复杂的业务规则;2、 使用过程和函数转移应用程序一部分功能;3、 使用过程和函数应能增强应用的功能强度;4、 客户应用程序中提前实现大部分数据完整性;5、 减少控制信息在网上传输的次数,网上尽量传送SQL语句和结果集;6、 数据库的优化处理在服务器中进行;7、 客户程序侧重于数据的显示和逻辑分析处理;8、 从减少网

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号