APP下载

基于MIDAS的图书馆信息管理系统的构建

2010-08-15姚曦

电脑与电信 2010年9期
关键词:应用程序客户端组件

姚曦

(福建卫生职业技术学院,福建福州350000)

1.引言

1.1 两层体系结构

以往人们开发系统大都采用客户机/服务器的两层结构,在这种模式中,所有的形式逻辑和业务逻辑均驻留在客户端,而服务器则成为数据库服务器。这样一来服务器就变得很“胖”,被称为“胖客户端(FatClient)”。它的弊端十分明显:“胖”客户端造成更新繁琐,日常维护十分困难,一旦客户端的程序发生改变,就必须对所有的客户端进行修改。并且随着客户端的不断增加,对带宽与服务器的压力也越来越大。

1.2 三层体系结构

M IDAS是Multi-tier Distributed Application Services Suite(多层分布式应用程序服务包)的缩写。三层体系结构即客户应用程序(表示层),应用程序服务器(业务层),远程数据库服务器(数据层)。其中数据层负责存储数据,可以理解为数据库服务器。业务层负责从数据库中获取数据并检查其的合法性。表示层也可称做GUI层,负责在客户端显示数据。

M IDAS优点在于使三层结构在逻辑上相互独立。表示层配置在客户机中,即在客户端仅是一些界面设计,没有具体的应用程序。当要追加新业务时,只需统一在应用程序服务器进行中间件的更新,而不影响其它两层,实现了“瘦”客户端,弥补了两层体系结构的不足。

2.系统的设计思想

本系统以Delphi7.0为主要的开发平台,MS SQL Server2000作为数据库服务器,采用Delphi中的M IDAS基本的开发方法,构建了具有三层体系结构的图书馆信息管理系统。系统在客户端使用基于TCP/IP协议的Delphi TsocketConnection组件连接中间件。在中间件使用多线程连接数据库,并使用远程数据模块(RemoteDataModle)中的Provider接收来自客户端的Clientdataset组件的请求,并向数据库查找想要的数据。而后再通过Provider向客户端的Clientdataset组件送回数据。最后数据存储在由MS SQL Server2000构建的数据服务器中。

2.1 系统的需求分析

通过调研,确定了图书馆信息管理系统的两类管理模式:图书管理员,学生。他们各自拥有权限管理及功能。图书管理员有5个操作模块:图书管理、学生管理、查询、图书操作、报表打印。学生有2个操作模块:图书信息检索、学生信息。

2.2 系统的模块组成

本多层的图书馆管理系统有三个功能模块来实现。客户服务器,应用程序服务器,数据库。他们的实现步骤如下:首先开发远程应用程序服务器,他负责为客户服务器提供数据服务。其次开发客户服务器及客户端界面,最后连接客户端应用程序和远程应用程序服务器。

3.系统的设计与实现

3.1 远程应用程序服务器的实现

Delphi建立的远程应用程序服务器要求是一个EXE服务器,它称为M IDAS应用程序服务器。通常通过以下几个步骤来建立:1、建立应用程序。2、建立基于TCP/IP的TremoteDataModule的远程数据模块。3、在远程数据模块中使用ADOQuery组件连接数据库。4、使用TdataSetProvider组件连接远程数据模块之中的数据集组件。5、编译、运行远程应用程序服务器。

3.2 远程应用程序服务器与数据库的连接

本系统使用TADOConnection组件连接数据库。如果想建立多个数据源连接,则需要同时使用多个TADOConnection组件,否则只需使用一个TADOConnection组件即可。本系统使用connectionstring连接数据库。连接的语句为“Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;InitialCatalog=图书馆管理系统;Data Source=yx”其中各参数意义如下:

Provider:数据提供者。因为本系统数据库为SQL,所以选择SQLOLEDB.1。

Persist Security Info:设置为“false”时,当连接处于打开状态时,一些安全信息不会返回。

User ID:用户登录数据库的ID。

Initial Catalog:数据库的目录名称。

Data Source:数据库服务器的名称。

3.3 客户服务器的实现

客户端使用TClientDataSet通过TCP/IP与远程应用程序服务器的TdatasetProvider进行连接来获取数据。使用TClientDataSet的ApplyUpdates方法来保存对数据库的更新操作。其中TClientDataSet是个存在于内存中的“虚拟表”,它具有缓冲的作用,因此对数据库的操作非常快。

3.4 数据的显示操作

本系统在客户服务器上使用Dbgrid来显示数据,利用Dbgrid中的Dataset连接ClientDataSet,而不是直接连接到数据源。以往当需要在客户服务器上显示查找的记录时,会访问数据库依次查询各条记录,直至最后一条。这就造成每次显示数据都必须访问数据库,当多客户端或多次操作时,数据库的开销就很大。Dbgrid的优点在于可通过设置ClientDataSet中的PacketRecords选项可以选择下载多少的数据至内存,并直接在内存中进行查询操作,无需每次操作都访问数据库,极大减少了数据库的开销,满足了多客户端的需求,提高了系统的负载能力。具体的操作步骤如下:

在客户服务器中建立三个TclientDataset,在远程应用程序服务器中建立两个TDataSetProvider,两个ADOQury。其中clientDataset1连接Datasetprocider1,DataSetProvider1的数据集为ADOQury1,clientDataset2连接的是Datasetprocide2,DataSetProvider2的数据集为ADOQury2,两个ADOQury的SQL string语句都是Select*From Notebook(从图书记录表中选取所有的信息)。ClientDataset3没有连接任何其它数据组件。

如果用户要搜索以“明月”为开头的数据,那么可能会找到“明月夜”,“明月天”这些数据,但如果直接把数据添加到clientDataset1中,考虑到clientDataset1也许已经存在这些数据,clientDataset1中的数据就会重复。所以必须对clientDataset1进行检查。如果直接在clientDataset1进行检查,那么clientDataset1会到数据库下载所有的数据。因此需要一个无连接任何组件的clientDataset3。把clientDataset1中的数据指定给clientDataset3,用CheckData方法来比较两个clientDataset的数据是否相同,如果找到相同的数据则在clientDataset2中删除,最后把clientDataset2中的数据重新更新至clientDataset1即可。

3.6 数据的更新操作

数据的更新操作一般可以分为增加,修改和删除。本系统使用TclientDataSet组件中的的Insert,Edit,Delete等方法来更新数据,然后调用Post。但与两层体系结构不一样的地方在于:调用Post后,实际上并没有对数据库服务器中的数据进行更新,而是将更新的内容存储在客户服务器的内存中。最后必须调用ApplyUpdates来执行更新操作后,才把数据真正地更新到数据库服务器。同时还可以为ApplyUpdates设置一个数值来设置容错率。数值的大小代表了容错率的高低,并设置出现错误时事务的处理方法来提高系统的安全性。

4.结束语

近年来,随着计算机网络的发展,对信息的需求越来越大。随之人们对数据处理的要求也越来越高。不仅要求高负荷,也要求高可靠性和安全性。从长远看,M IDAS的数据库结构将会慢慢取代传统的两层数据库结构,成为开发数据库系统的关键技术,为数据处理提高安全稳固的保障。基于这种想法,本文阐述了分布式数据结构的基本结构,对其进行了研究,分析了它的优点。并在研究的基础上,论述了一个基于M IDAS的图书馆信息管理系统。给出了需求分析和具体的实现方法与主要技术。

[1] W illiam Y.Arms.数字图书馆概论[M].电子工业出版社,2001.

[2] 王志梅.关系数据库基础与技术[M].国防工业出版社,2005.

[3] 董良,高磊,朱明峰,高忠涛.深入浅出Delphi6[M].清华大学出版社,2002.

[4] 李维.Delphi5.X ADO/MTS/COM+高级程序设计篇[M].机械工业出版社,2000.

[5] 李维.DELPHI5.X分布式多层应用系统篇[M].械工业出版社,2000.

[6] Arco Cantu.Mastering Delphi7.oel Fugazzotto.2003.

猜你喜欢

应用程序客户端组件
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
删除Win10中自带的应用程序
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
风起新一代光伏组件膜层:SSG纳米自清洁膜层
客户端空间数据缓存策略
关闭应用程序更新提醒