基于红帽Linux的银行排队叫号系统

2020-01-05 07:00石英男樊瑶张泞君
软件导刊 2020年11期
关键词:软件工程

石英男 樊瑶 张泞君

摘 要:针对目前部分银行排队叫号系统叫号规则简单,采用人工判断窗口业务增减,导致银行业务办理时效性差、新增窗口业务类型与客观业务需求类型不符等问题,设计基于红帽Linux的银行排队叫号系统。该系统通过优化业务窗口数量及类型,调整判断条件,以Qt Creator作为项目开发工具,通过Ekho软件实现语音叫号,各子系统之间通过Socket套接字、TCP协议实现通信。仿真实验表明,该系统可在一定范围内提升业务窗口增减时效性与合理性。

关键词:红帽Linux;排队叫号系统;Qt Creator;C++;软件工程

DOI:10. 11907/rjdk. 201024                                                                  开放科学(资源服务)标识码(OSID):

中图分类号:TP319   文献标识码:A                 文章编号:1672-7800(2020)011-0131-05

A Bank Queuing and Calling System Based on Red Hat Linux

SHI Ying-nan,FAN Yao,ZHANG Ning-jun

(1. School of Information Engineering,Tibet University for Nationalities, Xianyang 712000,China;

2. School of Computer and Communication Engineering, Zhengzhou University of Light Industy, Zhengzhou 450000, China)

Abstract:Aiming at the problem that the calling rules of some bank queuing system are simple, and the increase or decrease of business window depends on human judgment, which leads to low timeliness of bank business processing and the business type of new window does not match the objective business demand type, this paper designs a bank queuing and calling system based on Red Hat Linux. The system optimizes the judgment conditions of the number and type adjustment of business windows, takes QT Creator as the project development tool, realizes voice calling through Ekho software, and communicates with each other through Socket and TCP protocol. Finally, computer simulation experiments show that the system improves the timeliness and rationality of the increase or decrease of business windows within a certain range.

Key Words: Red Hat Linux; queuing and calling system; Qt Creator; C++; software engineering

0 引言

目前大部分银行排队叫号系统基本能满足顾客有序办理业务需求,但在业务办理高峰期,或在人群较密集地区,银行营业大厅仍存在客户业务办理滞留拥堵情况[1-3]。较为典型的情况是银行在业务办理过程中存在多个窗口却只开放其中几个窗口办理业务,在业务量较大情况下难以满足业务办理需求,严重影响营业大厅工作效率,引起客户对银行管理方式的不满,进而影响银行其它业务[4-6]。因此,设计一个智能调控业务窗口数量及类型的银行排队叫号系统,提升银行业务办理效率,减少客户排队时间十分必要。

已有学者针对不同应用场景下的排队叫号系统进行研究。廖小春[7]分析以往排队理论相关研究模型,总结排队模型的优缺点并作为约束条件加以利用,通过定义客户平均总人数、服务台利用率、客户止步率和患者等待时间等指标,用來衡量医院分诊排队叫号模型的优劣性,使客户排队更加合理;文献[8]通过增加预约叫号、队列调整、按客户信用等级取号等功能,为客户提供差异化服务;文献[9]以Zig Bee无线通信网络技术为基础,设计性能稳定、安装调试方便的无线排队叫号系统;文献[10]通过Plant_Simulation仿真软件,分析叫号服务与传统服务范围,结果表明服务时间是影响平均等待时间的主要因素;文献[11]在现有叫号系统基础上加入业务预处理自动填单模块,对业务队列进行优先级设置,提升业务办理效率。

以上方法均未从业务窗口与客户业务需求的平衡角度出发,通过智能调控业务窗口数量及类型提升银行大厅业务办理效率。而现有银行业务窗口调控评判标准模糊,只能由大厅经理人为判断后通知管理员开放新窗口,在时效性上存在延迟。人为判断存在误差,不够科学严谨。本文通过细分各种业务类型,明确窗口增减评判标准,设计一款将当前窗口数量和当前业务量相结合,根据各业务类型门限值动态调整对应窗口数量的银行排队叫号系统。本系统解决银行在业务办理高峰期时存在不合理空闲窗口问题,提升大厅业务办理效率。后台系统中管理员和银行大堂经理还可看到定期业务办理量及各类业务办理数据。这些数据可供后期分析,进行数据挖掘,总结业务办理规律,进而改善银行业务架构[12]。

1 系统功能分析与设计

1.1 银行大堂排号系统

1.1.1 排号系统角色

如图1所示,银行运行系统有客户、营业员、经理、管理员[13] 4类角色,客户办理业务流程:①客户到达银行网点,通过取号机选择业务办理类型,得到排号单;②营业员通过系统叫号,通知客户到对应窗口办理业务;③银行经理根据实际业务数量或通过本系统提示,选择增加或减少对应业务窗口;④管理员通过本系统录入或修改工作人员信息及各类业务窗口门限值。

1.1.2 窗口类型及业务分类

常规银行窗口分为综合窗口和VIP窗口两种类型[14](综合窗口个数为N[4,10];VIP窗口个数为1)。综合窗口办理业务又分为个人业务(贷款业务,电子银行,投资理财等)、现金业务(现金开户,现金存取款等)、对公业务(对公存款,对公贷款等)、其它业务4种。将银行业务归类为A、B、C、D、E四类。

A类:贷款业务;B类:现金开户及现金存取款;C类:电子银行;D类:投资理财;E类:对公业务及其它业务。除此之外,VIP客户业务属于V类业务,预约客户业务属于S类业务[15]。

以上业务类型中,A、B、E类业务办理较为麻烦,而C、D类业务办理较为简单。因此,本文将所有业务归为4种类型:复杂业务、V类业务、简单业务、S类业务。A、B、E类业务属于复杂业务;C、D类业务属于简单业务。

不同于普通窗口,VIP客户和提前预约客户在同一业务类型队列排队,根据叫号顺序统一到对应的VIP窗口办理。

1.2 系统功能需求分析

智能排队功能:客户可通过排号器得到一个排号单。排号单应显示客户排队号、业务类型、排号时间、等候人数等信息。

语音叫号功能:营业员点击叫号按钮后,系统会广播通知客户到相应窗口办理业务[16]。

窗口实时监控反馈功能:各个窗口通过此功能将各自业务办理进度实时反馈给监控中心,方便后续根据各窗口业务办理情况实时调控窗口数量及类型[17]。

系统管理功能:管理员可通过此功能录入银行内部工作人员基本信息,也可调整系统各项参数。

业务窗口数量自动调节功能:系统将当前业务量与设定业务量进行比较,根据比较结果向经理发送窗口调整建议。

1.3 系统流程架构设计

对各模块数据传输方向进行标识,运行流程如图2所示。数据流向用实线表示,控制信号流向用虚线表示。

系统由控制中心、窗口叫号器、号码分配器、窗口管理器、排号器5部分组成。

排号器:排号器通过客户选择的业务类型并根据排号算法得到一个号码,该号码传输到分配器模块数据等待序列 [18]。

号码分配器:由等待队列组件、号码统计组件、叫号接收组件、号码分配组件、语音控制组件构成。等待队列组件通过排号器将排队号按类别传输到VS业务队列或综合服务队列[19];号码统计组件统计各类型业务待办理数量;叫号接收组件处理业务窗口的叫号请求,再通过缓存排队计算处理后按顺序发送至下一组件;号码分配组件根据业务办理窗口类型,从对应等待队列中获取排队号,分配给叫号窗口,同时以[窗口号,排队号]形式将分配结果发送至控制中心;语音控制组件通过语音引擎播报叫号信息[20]。

窗口叫号器:营业员通过窗口叫号器向号码分配器发送叫号请求,得到业务号码并显示在叫号器上。

窗口管理器:业务窗口注册或注销请求统一发送至此模块,然后分配各窗口业务类型。

控制中心:控制中心将业务量信息和窗口数量信息与系统设定的参数进行对比,通过对比结果得出窗口调整方案。

2 系统规则设计

2.1 系统参数

定义ω、a、b、c 4个值。其中ω表示所有综合业务窗口的界限值;a表示所有业务量界限值;b表示复杂业务量界限值;c表示VIP业务量、预约业务量总和界限值。业务窗口增减及类型改变以这4个值为标准,标准参数由银行业务经理设定。

2.2 窗口调控规则

是否触发窗口调控由业务量和已开放综合业务窗口数决定。定义NALL、NCOMPLEX、NSV 3个值分别表示各类业务实时数量,分别表示大厅当前所有业务数量总和、复杂业务数量、预约及VIP业务数量总和;定义开放综合业务窗口数为NOCW。

定义NALL>a、NCOMPLEX>b、NSV>c三种情况,实际业务办理过程中3种情况为真的个数为α。

增减窗口调整规则如表1所示。

新增窗口辦理业务类型优先级为:复杂业务>VS业务>简单业务。

3 算法实现

3.1 排号算法实现

排队号码编码格式如图3所示。

排队号码由3个字节组成:byte0为char类型字符,代表业务类型,取值范围{A,B,C,D,E,V,S};byet1和byte2代表各业务类型序号,取值范围[001,999],各业务序号依次递增1。

定义排队号数据结构如下:

struct Formation Num

{

char type;

ushort aligmentNo;

}

定义7元组K(KA,KB,KC,KD,KE,KV,KS),分别代表系统7类业务流水号。各成员均为短整形数字,初始值均为0。

排队号码分配算法如下(以判断V类业务为例):

//定义取号队列;

List nowTP;

//定义新号码;

Formation Num next Num = new Formation Num();

//判断窗口类型;

if(WT==‘V)

{

nowTP = TPV;

//等待已上锁的nowWA;

Wait(nowWA);

//锁定nowWA:

Lock(nowWA);

//判断nowWA是否为空;

int len = nowWA.Len;

if(0 == len)

{

//生成特殊号码

next Num.aligmentNo= ***;

next Num.flag=‘U;

}

else

//提取队首号碼

next Num = nowWA.Head;

}

goto 3;

3)//解锁nowWA;

Unlock(nowWA);

//返回排队号;

return next Num;

3.2 窗口增减算法实现

定义函数Option_Judgment(option1,option2,option3)用来判断3个条件参数为真的个数。

(1)定义判断各类情况条件。

boolterm1=(Nocw==ω andOption_Judgment(NALL>a,NCOMPLEX>b,NSV>c)>0);

boolterm2=(Nocw==ω+1and Option_Judgment(NALL>a,NCOMPLEX>b,NSV>c)>1);

boolterm3=(Nocw==ω+1and Option_Judgment(NALL>a,NCOMPLEX>b,NSV>c)==0);

boolterm4=(Nocw==ω+2and Option_Judgment(NALL>a,NCOMPLEX>b,NSV>c)<2);

(2)对结果进行判断。

if(term1 or term2)

goto 3;

if(term3 or term4)

goto 4;

(3)将“建议新开一个窗口”传送给显示模块。

(4)将“建议关闭一个窗口”传送给显示模块。

4 系统测试

4.1 测试环境

本文测试在红帽Linux系统下进行,硬件采用2.5GHz的Intel Xeon E5 CPU,运行内存32G,通过Loadrunner模拟大量用户操作,重点检验系统稳定性及鲁棒性。

4.2 测试内容与结果

测试主要检验银行排队叫号系统能否正常运行,包括排号取号功能、号码分配功能、窗口叫号功能、窗口增减功能、后台监控功能。

如图4所示,排号器界面正常显示4个业务类型,通过Loadrunner模拟100个用户使用排号器,随机选择业务类型,结果均能成功得到对应业务排号。

如图5所示,号码分配器能够正常显示当前系统内各业务类型号码数量,也能正常显示当前业务办理人数情况。

如图6所示,窗口叫号器界面能正常显示当前窗口类型与业务办理类型及状态,依次点击“顺序叫号” “重呼” “暂停/恢复服务”,均能成功播报语音,功能正常。

如图7所示,窗口管理器可正常显示当前已开放的各业务类型窗口,可通过点击“修改”对当前各类型业务窗口数量进行校正;点击“处理”可成功跳转消息通知列表,处理各业务窗口注册请求;点击“忽略”后待处理申请数量则重置为0;点击“新增业务窗口”可成功跳转至业务窗口类型选择界面;点击“关闭业务窗口”可成功跳转至窗口号选择界面关闭窗口。

如图8所示,各类型业务量均可正常显示,通过“修改”按钮可成功设置各类型数量界限值,可根据当前业务情况正常显示窗口增减提示信息。

经检验,系统模块在各业务阶段运行稳定,数据处理准确,各模块处理速度均能控制在1.5s之内,排队叫号系统性能符合设计要求。

5 结语

本文通过细分银行业务类型并确定窗口增减评判标准,设计了一款可根据实际业务量智能调控业务窗口的银行排队叫号系统。该系统将已开放窗口与门限值之间的数量关系,与各类型业务量及对应阈值的大小关系相结合,实现了动态调整银行业务窗口数量与类型功能。测试结果表明,该系统业务窗口增减判断合理,各子模块之间通信正常,数据传输稳定,系统整体运行符合预期。但系统各业务类型阈值设定依旧是人为判断,后续研究可从自动调整参数角度完善系统,使其能根据各类业务办理规律自动调整相应阈值。

参考文献:

[1] 刘鑫,万振,孙昕,等. 基于信息化技术的智慧门诊发展现状[J]. 医疗装备,2019,32(15):56-59.

[2] 于储,陈凌旭,付丽华. 大数据背景下银行排队系统的设计[J]. 卫星电视与宽带多媒体,2019(15):31-33.

[3] 何焘. 医技检查预约及排队叫号系统的设计[J]. 信息技术与信息化,2019,18(3):25-28.

[4] 胡列伦. 排队叫号系统在医院中的运用实践[J]. 电子世界,2019,18(4):137-138.

[5] 徐阳. “一站式政务大厅”设计与实现——以加纳政务大厅显示系统为例[J]. 电视技术,2019,43(3):82-87.

[6] 徐林艳. “排队叫号系统”在医院门诊中的应用[J]. 电子技术与软件工程,2019,18(1):146-147.

[7] 廖小春. 醫院智能分诊排队叫号管理系统的设计与实现[D]. 长沙:湖南大学,2015.

[8] 佟兆庆. 银行排队叫号系统的设计与实现[D]. 天津:天津大学,2017.

[9] 何晓凤,尹晓琦,陈奇,等. 基于ZigBee的排队叫号系统[J]. 淮阴工学院学报,2019,28(1):1-4.

[10] 王皙. 基于Plant Simulation的叫号排队系统的研究[J]. 物流工程与管理,2018,40(9):150-153.

[11] 费哲明. 农村信用社叫号与业务预处理系统优化与实现[D]. 杭州:浙江工业大学,2016.

[12] 凌世娥. 办税大厅排队叫号系统的设计和实现[D]. 成都:电子科技大学,2018.

[13] 徐磊. 银行排队叫号系统设计[J]. 无线互联科技,2017,16(11):59-63.

[14] 郭春旭. 联通全业务营业厅排队叫号系统的设计与实现[D]. 长春:吉林大学,2016.

[15] 杨兵. 基于Mina框架的商业银行叫号系统设计[J]. 信息技术,2016,15(6):37-39.

[16] 豆高峰. 医疗病患排队叫号系统设计开发[J]. 信息技术与信息化,2017,16(7):52-54.

[17] 宋志辉,韦萍萍,郭真明. 医院排队叫号系统应用现状综述[J]. 计算机时代,2012,11(11):10-11.

[18] 欧东,曾凡,刘锋,等. 关于医院排队叫号系统实施的几点建议[J]. 医疗卫生装备,2010,31(9):104-105.

[19] 匡长春,王薇,窦有业. 排队叫号系统在门诊药房的应用[J]. 中国药业,2010,19(12):64-65.

[20] 胡敏,徐旭东,张曙光,等. 基于HIS、RIS的排队叫号系统的设计与实现[J]. 医疗卫生装备,2010,31(1):66-67.

(责任编辑:杜能钢)

猜你喜欢
软件工程
基于课程群的软件工程专业三位一体教学模式探索
高职软件工程课程改革研究
软件工程应用型课程建设与实践
应用瀑布模型的MOOC制作方法
融合APTECH体系的软件产业人才培养探究
关于如何创新和完善计算机软件工程管理的探讨