中图分类号:TN919⁃34;TP311文献标识码:A文章编号:1004⁃373X(2014)08⁃0108⁃05
DesignanddevelopmentofMIDAS⁃basedelectroniccompone论文网ntmanagementsystem
foruniversityelectronicdesigncontest
ZHANGXiang⁃ming
(Collegeofcomputerscience,South⁃CentralUniversityforNationalities,Wuhan430074,China)
Abstract:Inordertoimprovethemanagementefficiencyofcomponentsfortheundergraduateelectronicdesigncontest,andraisetheutilizationrateofelectroniccomponents,asetofelectroniccomponentmanagementsystembasedonMIDAS(multi⁃tierdistributedapplicationservicessuite)andADOtechnologywasdesignedanddeveloped。Incombinationwiththemanagementfeaturesofelectroniccomponentsindailytrainingofelectronicdesigncontestincollegesanduniversities,adistributedmulti⁃tierarchitecturewasusedintheelectroniccomponentsmanagementsystemdesignandimplementation。Thebarcodetechnologywasadoptedinthesystem。Theresultsshowthatthedevelopedsystemhastheadvantagesofsimpleoperation,highefficiency,andcanimprovethemanagementefficiencyofdistribution,collection,laboratoryprocurementandinventoryearlywarningofelectroniccomponents。
Keywords:multi⁃tierdistributedapplicationservicessuite;electronicdevicecompetition;electroniccomponentmanagementsystem;andchips;ADOtechnology
0引言
随着中国教育体制改革的不断推进,各高校越来越重视学生创新能力的培养与训练,以期达到提升学生创新素质。增强学生适应市场和社会的目的。全国大学生电子设计竞赛是一项面向理科学生的重要赛事,其全国竞赛组委会由国家教育部。信息产业部及部分参赛省市教委代表及电子类专家组成,负责全国竞赛的组织领导。协调工作,其重要性不言而喻[1⁃2]。
竞赛要使用到大量的电子元器件,涉及的元器件品种多达几百种,且使用数量繁多。学生在竞赛前期的实训中,需要频繁地领用元器件,高校实验室管理人员需要对元器件的消耗情况进行汇总,对贵重器件进行登记与跟踪,同时还要对元器件库存有充分的了解,以便对元器件库进行有效合理的补充。目前很多高校的元器件管理工作仍处在于手工管理状态:仍然以手工方式登记学生领用情况,以人工方式对器件进行跟踪,目测元器件库存是否充足,学生领用元器件查找费时,这些问题极大地影响了电子竞赛的高效管理[3]。
为提高竞赛管理效率及元器件使用率,将构建一套智能化的电子元器件管理系统。因竞赛实训工作均在学校内完成,故将系统的架构设计为三层C/S(客户/服务器)结构,采用MIDAS和ADO技术来开发系统,按软件工程理论和方法对系统的各项模块进行设计,实现元器件采购计划管理。元器件入库。学生领用元器件。元器件查询。元器件统计分析等主要功能。
1系统架构和开发环境
高校电子设计竞赛的实际情况,系统采用C/S架构的多层分布式环境来开发,使用DELPHI7。0为开发平台,充分地运用其MIDAS,ADO等技术来构建一个数据服务层。业务逻辑应用服务层及客户层的分布式智能化管理系统,开发过程中使用的一些相关技术分析如下:
1。1多层分布式系统
分布式结构实际上是一种分布式应用系统,被分成数个不同的部分并且被执行在不同的机器之中,引入了应用程序服务器概念,应用程序服务器是一个包含系统业务逻辑的应用程序,以一种特定的组件形态,如MicroSoft的COM/DCOM,CORBA等对象,封装应用系统的逻辑程序代码,执行特定企业功能,然后把这些企业对象分发到应用服务器。
1。2体系结构
三层或多层体系结构中比二层C/S结构增加了一个中间层到客户端和数据库端间。中间层的实现有多种方法,目前最常用的是应用服务器,把使用的事务和消息服务器看作应用系统的基础中间件“平台[4],客户端程序不直接与数据库服务器通信,而是通过中间层⁃应用服务器来访问,当有客户端程序发出数据请求时,通过指令传送到应用服务器,应用服务器接到指令后,调用相应函数(Function)。过程(Procedure)等业务逻辑来向数据库服务器发出指令,数据库服务器经过运算后,将处理结果反馈至应用服务器,再由应用服务器将中间结果反馈至客户端程序,从而大大减少数据库端访问量过大的开销,提高数据处理能力和系统运行效率[5],如图1所示。
图1三层C/S体系结构
1。3MIDAS技术
多层分布式应用服务包(Multi⁃tierDistributedApplicationServicesSuite,MIDAS),在Delphi企业版里被用来创建多层应用程序。MIDAS提供了一套高级组件。服务和核心技术,可以简化跨平台(Windows,UNIX,Linux)。跨产品的多级分布式应用系统的开发,通过它可以用相同的组件访问不同的后端应用程序服务器,在带宽具有挑战性的网络中,与其他解决方案所产生的分布式应用相比,具有更快。更容易和更高的特性[6]。
MIDAS三层体系结构指逻辑上的三层,即应用表示层。应用逻辑层和数据层。应用表示层主要负责用户端界面,提供给用户一个操作方便且简单快捷的应用服务接口;应用逻辑层(或为应用服务器)是整个结构中最重要的部分,实现应用程序的应用逻辑处理;数据层(又为数据库服务器)则负责数据的存取和管理。应用逻辑层将业务规则。数据访问及合法性检验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过通信协议与中间层建立连接,再经由中间层与数据库进行交互。Delphi对多层分布式应用程序的支持主要得益于其MIDAS技术,该技术允许分割数据库应用程序,并实现对商业规则和进程的集中管理[7]。
2系统分析与设计
2。1系统需求分析
在软件工程理论中,需求分析是软件工程设计最重要的一环,是连通用户与软件开发人员的桥梁,是整个开发过程的重要基础。电子元器件因种类多。设计期间用量大。参赛参训人数多。实验人员管理杂等特点,元器件管理系统需要有准确。全面的一手用户需求资料,从而设计出符合要求的功能需求,为电子设计竞赛实验室管理人员提供高效。准确的统计与分析数据,更好地做好服务[8]。归纳出以下需求:
(1)元器件基本要素:元器件是元件和器件的概称,包括元器件类别。名称。规格。型号等要素。
(2)元器件存放要素:为方便电子设计实训时学生快捷领用元器件,在元器件存放时,严格按规定存放到指定编号的小器件单元,单元按元器件类别分类存放,按序编号。
(3)元器件采购要素:包括元器件类别。名称。规格。型号。日期。数量。单价。供应商等。
(5)用户信息:包括实验室管理人员。学生,权限分为查询。统计。入库。出库。可领用等。
(6)系统的功能需求。根据电子设计竞赛实训元器件管理的特性及元器件发放的流程分析,电子元器件管理系统需要完成的功能有:元器件基本设置。采购及入库。元器件发放(或领用)。元器件调拨。元器件库存统计及预警。元器件相关查询等功能。
2。2系统的功能设计
通过上述的系统需要分析,设计出本系统应完成的具体功能结构(如图2所示)。
图2元器件管理系统功能结构图
(1)用户权限管理功能模块。电子设计竞赛日常培训由实验室工作人员管理,负责元器件的采购计划。元器件的发放与回收。库存分析等工作。按用户的实际操作范围,生成不同的角色,每一角色具有不同的使用权限,然后为不同的操作用户分配不同的角色。权限分为:普通管理员。超级管理员。
(2)元器件仓库管理功能模块。对元器件仓库按元器件的类别进行分类管理,并按元器件的规格。型号来分别设置元器件仓库存放地点,设置统一编号管理元器件仓库。可实现按仓库编号查元器件名称。数量等操作;可根据元器件查找仓库,方便学生领用时快速寻找元器件。
(3)元器件进库管理功能模块。根据年度采购计划;采购后元器件入库。入库信息包含供应商。价格。日期。仓存单元编号等信息;该模块能实现数据的录入与修改操作及元器件的入库和查询汇总操作等功能。
(4)元器件出库功能模块。元器件出库方式主要有:学生领用元器件。元器件调拨。学生领用元器件,需先经远程预约领用,由实验室人员按预约进行发放;实验室人员能根据预先设定的元器件存放地址准确找到元器件;元器件调拨必须要有调入单位信息,需经超级管理员审核方可执行。
(5)元器件库存预警功能模块。根据实际库存及系统预设预警数量,系统自动并作出相应库存预警。
(6)元器件仓存统计查询功能模块。按各种统计要求设计各类统计查询功能,可统计某段时间内元器件的使用量,并可生成各类报表。
2。3系统的体系结构设计
电子元器件管理系统建立在局域网和关系数据库的基础之上,将存在于实际操作和数据库中的数据抽象为业务逻辑对象,通过对象管理框架进行管理。在此基础上,构建若干适应电子竞赛用元器件实际情况的功能模块,通过友好的用户界面与用户交互,完成电子设计竞赛和实验室人员元器件管理服务的系统。其中:
(1)对象管理框架层:提供实现电子元器件管理的各种功能的核心构架;
(2)系统功能模块层:在用户界面层,用户命令的处理均由各项功能模块完成;
(3)图形用户界面层:提供友好的交互式的图形界面,使学生和实验室人员可以直观方便地完成电子元器件管理系统的各项功能;
(4)系统支持层:电子元器件管理系统是一个多层分布式的管理系统,分布式技术及网络技术有效支持分散数据的集中管理,而关系数据库的数据操作功能有效支持了系统对象在底层数据库的管理[9⁃10]。
3系统的具体实现与特点
根据多层分布式系统的结构和电子元器件管理的特点,分别实现该系统数据库层。业务逻辑层。用户表示层的详细设计。
3。1系统数据库层服务器的实现
根据电子元器件管理系统的功能要求,选取MicroSoftSQLServer2000作为后台数据库。SQLServer2000具有强大的数据管理功能,支持数据的完整性。安全性管理和并发控制。在数据库服务器中构建关系数据库(ElecComponentsDb),建立若干个数据表,分别存放用户权限管理。元器件类别。元器件入库资料。元器件领导用管理。元器件调拨等信息,并设置若干个由多个表JOIN连接的视图,以设计各类管理功能需要的交叉查询功能。大量在客户端不能完成的系统功能,全部设计为数据库服务器端的存储过程,用存储过程来实现系统功能,达到了既快速,又安全的目的。主要存储过程有:
(1)元器件领库存余量计算算法功能:PROCEDUREElecChipsCalc;
(2)元器件分类汇总:PROCEDUREElecChipsStas;
(3)元器件进仓处理:PROCEDUREElecCmpsIn;
(4)元器件领用处理:PROCEDUREElecCmpsOut等。
3。2应用服务器的建立
(1)使用数据集组件连接远程数据库
使用Delphi7。0分布式VCL组件建立一个OLEAutomation服务器,客户端程序通过应用服务器的IAppServer接口连接客户端应用程序供其调用。通过加入读取INI文件中存储的服务器。用户名。口令等信息的代码以及授权等信息码后。从外置INI文件读取信息的程序代码如下:
sf:Tinifile;//INI文件实例
begin
sf:=Tinifile。Create(ExtractFilePath(Paramstr(0))+ScunSys。ini);
withsfdo
begin
edtserv。text:=readstring(system,Server,(Local));
edtdb。text:=readstring(system,DbName,scunpersondb);//
edtuser。text:=readstring(system,UserName,sa);
edtpwd。text:=readstring(system,password,星号星号);
//读取服务器信息。数据库。User用户信息。Password口令信息等
end;
(2)通过RDM的IAppServer接口来存取远程数据库的数据集
在RDM中通过数据集组件的方式显然不能完全解决数据的高速存取及数据连接池的问题,且安全性不能得到保障,故在本系统中采用了通过设置IAppServer接口函数来实现数据集的存取操作。
在系统中,根据获取数据集。存储数据集及其他功能实现的方式设立以下几种主要的业务函数:
①通过数据库端存储过程获取数据。(有数据集返回)
functionAccqDataFromStoreproc():OleVariant;该函数返回值为一数据集,直接赋值给DataSet。Data,从客户端接收SQL语句获取数据。程序代码如下:
functionTScunAppS。AccqDataFromStoreproc(constspName:WideString;Params:OleVariant;constspdname:WideString):OleVariant;
var
i:integer;
sconn:Tadoconnection;//设置TAdoConnection实例
fromsp:TadoStoredproc;//设置TAdoStoredproc;实例接收客户端传递的存储过程名称及其参数列表
begin
sconn:=Tadoconnection。create(self);
ifScunAppInfo。ConnectDB(sconn)then
begin
fromsp:=TadoStoredproc。Create(self);
spdsp:=Tdatasetprovider。Create(self);
withspdspdo
begin
DataSet:=fromsp;
exported:=true;
resolvetodataset:=true;
name:=spdname;
end;
withfromspdo
begin
close;
connection:=sconn;
Procedurename:=spname;
if(varisarray(params))then
begin
parameters。Clear;
fori:=vararraylowbound(params,1)tovararrayhighbound(params,1)do
begin
Parameters。Add;
Parameters[i]。Value:=params[i];
//从params分离出存储过程参数
end;
end
else
exit;
prepared:=true;
try
active:=true;
result:=spdsp。Data;//获取数据集,Variant参数回传客户端
except
one:Exceptiondoraise;
end;
end;
end;
scunappinfo。stpspname:=spdname;
end;
②更新数据集函数有两个:UpdateByScript,UpdateByStoreProc,从客户端接收SQL语句更新数据集。
③其他类函数:ECmpLogin,ECmpUnLogin,ReleaseDSProvider,用于对应用服务器的操作和管理。
3。3客户端应用程序的建立
在Delphi中建立一个项目组,连接应用程序服务器,然后建立一个新的Application应用程序。新建一数据模块,加入一个MIDAS组件板中的TDCOMConnection组件,设定其ComputerName属性值为应用程序服务器位于的主机名称。设定TDCOMConnection要使用的应用程序服务器,设置应用程序服务器的GUID和填在TDCOMConnection的ServerGUID属性值。再添加TClientDataSet组件,设置其ProviderName属性值,激活TClientDataSet的实例,使其通过中间层从数据库服务器中取得数据集。
在多层体系中,应用程序将待更新的数据暂存在客户端应用程序中,系统真正要求将数据集更新回数据库时,必须调用应用程序服务器提供的ApplyUpdates方法,才会把更新的数据集真正的更新回后端数据库中,其更新方法如下:
If(DataModule1。Clientdataset1。changecount>0)then
//判断数据集是否有更新发生
begin
DataModule1。Clientdataset1。Post;
DataModule1。Clientdataset1。ApplyUpdates(0);
//更新数据集至数据库
end;
3。4主要功能模块的实现
(1)根据系统的功能设计详细设计书,制作程序用户界面图,并编写程序代码,实现电子元器件管理系统的各项主要功能。如图3所示为电子元器件管理系统的主界面窗口。
图3电子元器件管理系统主界面图
(2)用户登录密码加/解密算法实现。因使用的数据库SQLServer2000存放用户信息的表字符均为明文,而管理人员复杂,登录用户密码易被泄密,故采用异或算法来对用户密码明文进行加密,读取密码时进行解密。具体算法如下:
ss:=;
ts:=trim(passWord。text);//用户输入的密码加密
fori:=1tolength(ts)do
ss:=ss+char(ord(ts[i])xor127);
解密算法同样采用xor算法来实现。
(3)元器件入库管理模块。系统设定元器件入库前必须要有预算计划,每次入库自动生成一个入库单号,然后在该入库单下进行元器件各类参数信息的录入。见图4为元器件入库管理模块。
图4元器件入库管理模块图
(4)元器件领用管理模块。在电子设计日常实训中,学生经常要进入实验室进行领用元器件,在领用元器件前学生必须经过系统的预约,预约领哪些元器件,并经指导老师审核后,方可到实验室领取所预约的元器件。元器件领用管理模块实现功能如图5所示。
图5元器件领用管理模块图
3。5多层稳固性及容错与负载平衡能力的处理
系统采用了多个应用服务器来同时处理客户端进程,系统的稳固性必然受到影响,程序在开发过程中使用DELPHI提供的TSimpleObjectBroker组件的内置功能来实现系统的稳固性。通过修改TSimpleObjectBroker的属性servers值来添加及维护一个能够执行应用程序服务器的机器列表,并设置TDCOMConnection或TSocketConnection以连接远程服务器。当连结的主机故障时,TDCOMConnection或TSocketConnection可以从TSimpleObjectBroker取得一个新的能够执行应用程序服务器的远程机器名称,然后再连结到这台新机器以取得应用程序服务器的服务[11]。
本系统采用动态平衡算法来保证负载平衡能力,主要依靠TSimpleObjectBroker组件强大的功能,设定TSimpleObjectBroker的LoadBalanced属性来提供简单的负载平衡能力。这样当某台应用服务器出现故障时,客户端系统能通过TSimpleObjectBroker组件的负载平衡能力自动寻找正常运行的应用服务器,并接管该进程的管理功能,从而达到负载平衡的功能。
4结语
通过对全国大学生电子设计竞赛元器件管理的现状和特点进行了全面的分析,提出了采用多层分布式结构和C/S架构平台的分析和设计方法,充分运用成熟的MIDAS框架和ADO技术来开发三层体系结构的电子竞赛元器件管理系统,将电子竞赛元器件管理的多项处理业务逻辑封装在中间层应用服务器层,运用Delphi7开发客户端程序,构建了一个功能强大的电子元器件管理系统。结果表明由MIDAS开发的三层架构的电子元器件管理系统易于维护,结构层次优化,安全性更高,极大地提高了高校电子设计竞赛及其实训电子元器件的管理效率。系统还充分运用Delphi开发平台解决了应用服务器的多层稳固性及容错与负载平衡,使应用层服务器运行更加稳定,运行速度更快更高效。
MIDAS的高校电子设计竞赛元器件管理系统设计与开发
MIDAS的高校电子设计竞赛元器件管理系统设计与开发【5555字】:http://www.youerw.com/jiaoxue/lunwen_136413.html