论文部分内容阅读
[摘要]Oracle作为强大的数据库管理系统,被应用到生产和实践的各个领域。介绍以Oracle为后台,结合SQL技术的试验设计管理系统的数学原理,并详细叙述开发过程中碰到的负载平衡问题和数据交换问题及解决办法。
[关键词]试验设计 Oracle数据库系统 数据交换
中图分类号:TP31 文献标识码:A 文章编号:1671-7597(2008)1010146-01
一、引言
试验设计(DOE)是研究如何制订适当的试验方案,以便对试验数据进行有效统计分析的数学理论与方法,它是统计数学的一个重要分支[1]。该方法由生物统计学家费歇尔(Ronald Fisher)于二十世纪初提出,他从实践和理论上发展和丰富了统计数学,将试验设计方法应用到了农业、生物学和遗传学等方面。正交设计技术问世后,试验设计从农业逐步推广到工业,取得了巨大的经济效益,对经济的发展起到了有力的推动作用。而Oracle是现在应用最为广泛,且功能强大的数据库管理系统。2001年6月,Oracle公司发布Oracle 9i,推出了集群服务器(RAC)[2],使得多个集群计算机能够共享对某个单一数据库的访问,获得更高的可伸缩性、可用性和经济性。利用Oracle数据访问技术和分布式事务处理能力,可以将远程客户终端的请求自动分解、寻址、转换为网络请求,减少数据更新对系统和网络可用性的依赖性[3],在数据量比较大的时候,Oracle对资源和进程管理的优势就体现出来了。本文介绍了以Oracle作为数据库后台试验设计管理系统的开发,该系统使客户端可以方便的进行试验设计,并实现数据和结果在后台数据库服务器、中间件服务器、客户端软件之间交换和存取的功能。
试验设计管理系统从逻辑上分为三层,数据库服务器、中间件服务器和客户端软件。数据库服务器采用Oracle 9i进行构建,中间件服务器和客户端软件采用Delphi进行开发。试验设计管理系统采用Window2000(及以上版本)作为操作系统,并集成了Word和Excel,结果和相关信息可以在数据库服务器、中间件服务器、客户端软件和集成软件间进行传递、修改、保存和打印。整个系统操作简单、方便,在保证安全的情况下,实现了工程项目“按需定制”的要求。
二、客户端软件与服务器链接
客户端软件与服务器采用DCOM链接技术。DCOM是微软提出来的支持网络三层结构客户端获取数据的协议[5],它是COM的一种表现形式,相当于在网络上另一台计算机上执行编制的COM。DCOM链接技术有以下几方面优点:语言无关性,执行性能高,解决带宽潜在问题,安全性,负载平衡。
在客户端工程中添加一个Datamodule模块,在该模块上添加DCOMConnection组件,如图1。
如果使用应用服务器的人数过多,将造成服务器的死锁,自动负载平衡技术可以解决该问题。如图1,在Datamodule上添加SimpleObjectBroker
组件,将DCOMConnection1.ObjectBroker属性设置为SimpleObjectBroker1,
编写如下代码进行链接,并实现负载平衡。
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
try
dcomconnection1.Connected:=false;
simpleobjectbroker1.SetConnectStatus(dcomconnection1.ComputerName,false);
finally
try
dcomconnection1.computername:=simpleobjectbroker1.
getcomputerforprogid(dcomconnection1.servername);
try
dcomconnection1.Connected:=true;
Except
Application.MessageBox('该计算机不是所要的服务器','提示',1);
end;
except
Application.MessageBox('可能是数据库设置错误或数据库没有打开,连接失败!','提示',0);
end;
end;
end;
以上代码在应用主程序中得到触发:
Begin
Splashform := TSplashform.Create(nil);
Splashform.show;
Splashform.update;
Application.Initialize;
Application.Title := '试验设计管理系统';
Application.CreateForm(TDataModule1, DataModule1);
……
End;
从代码的执行顺序可以看出,工程先运行数据库链接界面,然后创建TDataModule1的实例进行数据库链接,链接界面只是一个等待界面。
三、数据交换技术
从外部操作数据库要用到SQL(Structured Query Language)语言。SQL是关系型数据库管理系统的标准语言,它是一个非结构化的语言,一次处理一个记录,对数据库提供自动导航。它可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。另外,SQL语言也是所有关系数据库的公共语言。由于主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所以使用它可以很方便地进行移植。
试验设计管理系统的后台采用的是Oracle数据库管理系统,因此在客户端操作数据时,要使用SQL标准化数据库查询语言。在三层结构的客户端不存在TQuery控件,似乎客户服务器模式是无法做SQL查询的。Delphi很好的解决了这个问题。事实上,只要客户端连接上服务端应用程序,客户端的TClientDataSet就包含了一个名字为Provider的属性对应到服务器端DataSetProvider的所有默认属性和方法,其中DataSetProvider有一个Options属性,只要让其中的PoAllowCommandText=true,DataSetProvider
的PoAllowCommandText就可以接受前台来的SQL 命令,并传送给TQuery。可以看出,真正传递数据的是DataSetProvider的接口,所以用这个接口搭建传递SQL 的桥梁是必需的。
四、客户端软件与Word、Excel的融合
Word和Excel是现在最通用的办公软件,它们可以很方便地编辑文字或打印报表,并作简单的统计。试验设计管理系统客户端软件与Word和Excel进行了集成,其结果可以输出到Word或Excel,编辑后的结果也可以回传数据库。通过编写宏,系统充分利用了Word和Excel的特性,实现文档、表格处理的自动化。Word和Excel是对Com技术支持最好的软件,强大的编程接口技术使我们可以控制Word和Excel的任何一部分,无论是文件的打开、存盘、打印、表格自动绘制、数据统计,或统计图的绘制都可以通过系统集成的Word和Excel实现。
五、结束语
本文介绍了以Oracle为后台的试验设计管理系统的开发,文中详细叙述了开发过程中碰到的负载平衡和数据交换问题并给出了解决办法。Oracle数据库后台服务器、Delphi开发的中间件服务器、客户端软件共同构建了逻辑三层的正交试验设计管理系统。
参考文献:
[1]赵选民、徐伟、师义民、秦超英,数理统计[M]. 科学出版社,2005.
[2] Bradley D.Brown. Oracle9i Web开发指南/Oracle技术系列丛书[M]. 机械工业出版社,2003.
[3] Mostefaoui A, Mourgaya E, Raynal M. An Introduction to Oracles for Asynchronous Distributed Systems[J]. Future Generation Computer Systems, 2002, 7(1): 94-95.
[4]周纪芗、茆诗松、陈颖,试验设计[M]. 中国统计出版社,2003.
[5]飞思科技产品研发中心,Delphi 7数据库应用开发[M].电子工业出版社,2004.
作者简介:
徐新,男,贵州贵阳人,贵州财经学院,讲师,博士研究生,研究方向:质量管理与控制。
[关键词]试验设计 Oracle数据库系统 数据交换
中图分类号:TP31 文献标识码:A 文章编号:1671-7597(2008)1010146-01
一、引言
试验设计(DOE)是研究如何制订适当的试验方案,以便对试验数据进行有效统计分析的数学理论与方法,它是统计数学的一个重要分支[1]。该方法由生物统计学家费歇尔(Ronald Fisher)于二十世纪初提出,他从实践和理论上发展和丰富了统计数学,将试验设计方法应用到了农业、生物学和遗传学等方面。正交设计技术问世后,试验设计从农业逐步推广到工业,取得了巨大的经济效益,对经济的发展起到了有力的推动作用。而Oracle是现在应用最为广泛,且功能强大的数据库管理系统。2001年6月,Oracle公司发布Oracle 9i,推出了集群服务器(RAC)[2],使得多个集群计算机能够共享对某个单一数据库的访问,获得更高的可伸缩性、可用性和经济性。利用Oracle数据访问技术和分布式事务处理能力,可以将远程客户终端的请求自动分解、寻址、转换为网络请求,减少数据更新对系统和网络可用性的依赖性[3],在数据量比较大的时候,Oracle对资源和进程管理的优势就体现出来了。本文介绍了以Oracle作为数据库后台试验设计管理系统的开发,该系统使客户端可以方便的进行试验设计,并实现数据和结果在后台数据库服务器、中间件服务器、客户端软件之间交换和存取的功能。
试验设计管理系统从逻辑上分为三层,数据库服务器、中间件服务器和客户端软件。数据库服务器采用Oracle 9i进行构建,中间件服务器和客户端软件采用Delphi进行开发。试验设计管理系统采用Window2000(及以上版本)作为操作系统,并集成了Word和Excel,结果和相关信息可以在数据库服务器、中间件服务器、客户端软件和集成软件间进行传递、修改、保存和打印。整个系统操作简单、方便,在保证安全的情况下,实现了工程项目“按需定制”的要求。
二、客户端软件与服务器链接
客户端软件与服务器采用DCOM链接技术。DCOM是微软提出来的支持网络三层结构客户端获取数据的协议[5],它是COM的一种表现形式,相当于在网络上另一台计算机上执行编制的COM。DCOM链接技术有以下几方面优点:语言无关性,执行性能高,解决带宽潜在问题,安全性,负载平衡。
在客户端工程中添加一个Datamodule模块,在该模块上添加DCOMConnection组件,如图1。
如果使用应用服务器的人数过多,将造成服务器的死锁,自动负载平衡技术可以解决该问题。如图1,在Datamodule上添加SimpleObjectBroker
组件,将DCOMConnection1.ObjectBroker属性设置为SimpleObjectBroker1,
编写如下代码进行链接,并实现负载平衡。
procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
try
dcomconnection1.Connected:=false;
simpleobjectbroker1.SetConnectStatus(dcomconnection1.ComputerName,false);
finally
try
dcomconnection1.computername:=simpleobjectbroker1.
getcomputerforprogid(dcomconnection1.servername);
try
dcomconnection1.Connected:=true;
Except
Application.MessageBox('该计算机不是所要的服务器','提示',1);
end;
except
Application.MessageBox('可能是数据库设置错误或数据库没有打开,连接失败!','提示',0);
end;
end;
end;
以上代码在应用主程序中得到触发:
Begin
Splashform := TSplashform.Create(nil);
Splashform.show;
Splashform.update;
Application.Initialize;
Application.Title := '试验设计管理系统';
Application.CreateForm(TDataModule1, DataModule1);
……
End;
从代码的执行顺序可以看出,工程先运行数据库链接界面,然后创建TDataModule1的实例进行数据库链接,链接界面只是一个等待界面。
三、数据交换技术
从外部操作数据库要用到SQL(Structured Query Language)语言。SQL是关系型数据库管理系统的标准语言,它是一个非结构化的语言,一次处理一个记录,对数据库提供自动导航。它可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其他类型的终端用户。另外,SQL语言也是所有关系数据库的公共语言。由于主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所以使用它可以很方便地进行移植。
试验设计管理系统的后台采用的是Oracle数据库管理系统,因此在客户端操作数据时,要使用SQL标准化数据库查询语言。在三层结构的客户端不存在TQuery控件,似乎客户服务器模式是无法做SQL查询的。Delphi很好的解决了这个问题。事实上,只要客户端连接上服务端应用程序,客户端的TClientDataSet就包含了一个名字为Provider的属性对应到服务器端DataSetProvider的所有默认属性和方法,其中DataSetProvider有一个Options属性,只要让其中的PoAllowCommandText=true,DataSetProvider
的PoAllowCommandText就可以接受前台来的SQL 命令,并传送给TQuery。可以看出,真正传递数据的是DataSetProvider的接口,所以用这个接口搭建传递SQL 的桥梁是必需的。
四、客户端软件与Word、Excel的融合
Word和Excel是现在最通用的办公软件,它们可以很方便地编辑文字或打印报表,并作简单的统计。试验设计管理系统客户端软件与Word和Excel进行了集成,其结果可以输出到Word或Excel,编辑后的结果也可以回传数据库。通过编写宏,系统充分利用了Word和Excel的特性,实现文档、表格处理的自动化。Word和Excel是对Com技术支持最好的软件,强大的编程接口技术使我们可以控制Word和Excel的任何一部分,无论是文件的打开、存盘、打印、表格自动绘制、数据统计,或统计图的绘制都可以通过系统集成的Word和Excel实现。
五、结束语
本文介绍了以Oracle为后台的试验设计管理系统的开发,文中详细叙述了开发过程中碰到的负载平衡和数据交换问题并给出了解决办法。Oracle数据库后台服务器、Delphi开发的中间件服务器、客户端软件共同构建了逻辑三层的正交试验设计管理系统。
参考文献:
[1]赵选民、徐伟、师义民、秦超英,数理统计[M]. 科学出版社,2005.
[2] Bradley D.Brown. Oracle9i Web开发指南/Oracle技术系列丛书[M]. 机械工业出版社,2003.
[3] Mostefaoui A, Mourgaya E, Raynal M. An Introduction to Oracles for Asynchronous Distributed Systems[J]. Future Generation Computer Systems, 2002, 7(1): 94-95.
[4]周纪芗、茆诗松、陈颖,试验设计[M]. 中国统计出版社,2003.
[5]飞思科技产品研发中心,Delphi 7数据库应用开发[M].电子工业出版社,2004.
作者简介:
徐新,男,贵州贵阳人,贵州财经学院,讲师,博士研究生,研究方向:质量管理与控制。