银行分行排号系统的设计与实现Word文档下载推荐.docx
《银行分行排号系统的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《银行分行排号系统的设计与实现Word文档下载推荐.docx(31页珍藏版)》请在冰点文库上搜索。
![银行分行排号系统的设计与实现Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/7923b368-3ef1-42eb-ad47-33a1176cf766/7923b368-3ef1-42eb-ad47-33a1176cf7661.gif)
5.2.2SOCKET的简介 13
5.2.3JAVA多线程技术 14
5.3系统的执行流程图 14
5.4系统主界面的实现 16
5.4.1服务器主界面的实现 16
5.4.2客户端界面的实现 16
5.5服务器端取号的实现 17
5.6客户端业务处理的实现 18
5.7DAO层的实现 19
6.结语 19
致谢 1
参考文献 1
AGRICULTURALBANKOFCHINAXINZHOUBRANCHINQUEUEINGSYSTEMDESIGNANDIMPLEMENTATION 1
3
内容提要 银行排号系统是为解决一些服务业营业大厅排队问题而设计的,它能够有效地提高工作人员的工作效率,也能够使顾客合理的安排等待时间,让顾客感到服务的公平公正。
论文首先讨论了排号系统的背景、意义、应用现状以及研究与开发现状。
本文在对C/S架构、Socket网络编程技术、
Java线程编程等相关技术理论做了简单的论述。
结合工程项目,具体论述了排号系统的需求分析、整体设计以及系统数据库的设计,其中包括业务流程图、系统用例图、功能结构图、数据流程图、以及系统数据库的E-R图的分析和描述。
其次,论文着重讨论了C/S架构的排号系统的设计和实现。
在论文中详细地论述了排号系统的数据库设计与系统实现的各个步骤,并对原型系统作了简要介绍。
最后,论文对主要完成的工作进行了总结,并提出了研究的不足之处以及对今后研究的展望。
关键词 C/S架构Java多线程排号系统Socket网络编程
I
1.引言
随着科技的不断发展,人们越来越要求办事的效率,讨厌把宝贵的时间花在一些排队的事情上。
我国是一个人口众多的国家,各大银行,邮局,医院等营业大厅常常人满为患,排着长队等着办理业务,这种局面常常使人们怨声载道。
随着社会的发展,特别是信息技术的发展,计算机已经在社会的各个方面凸显出来。
原始呆板固化的排队等候方式转变为基于计算机管理与控制的舒适、休闲的等候方式。
由于原始的排队等候方式存在不方便、不安全等缺点,而基于计算机管理与控制的舒适、休闲的等候方式完全可以解决这些弊端,人们不仅可以自由安排等待时间,而且可以轻松的享受其他服务,这方式不仅提高了业务员的工作效率,也提高了其业务素质。
排号系统在现今的服务行业还是个比较新鲜的名词,利用这种先进的排号系统管理模式将网络技术、通信技术相结合,采用TCP/IP通信连接,使企业的服务机构通过网络与顾客通信,完成对顾客的管理。
排号系统实现每个客户端可以迅速建立与服务器端的实时通信连接,并且操作互动的业务。
顾客不仅可以进行取号业务,还可以进行一些其它操作,业务员除了进行业务处理还可以对数据库进行一些增删改查等操作。
随着网络编程技术研究的不断深入和完善,国内外越来越多的企业己经开始使用排号系统,中国建设银行,上海长海医院等地方已开始使用,并且取得了相当的业绩和成果。
论文的第一章介绍了系统分析,重点介绍了系统的可行性分析,系统的需求分析,其中包括业务流程图、系统用例图、逻辑模型图、体系结构图等;
第二章介绍了系统的整体设计,重点介绍了开发设计思想,系统详细功能设计及系统总体框架等;
第三章介绍了系统的数据库设计,重点介绍了数据库的概念设计及逻辑结构设计等,其中包括ER图、数据字典表等;
第四章介绍了系统的实现,主要介绍了一些所用到的关键技术、系统程序执行流程、以及系统的实现,其中分别介绍了系统主界面实现、服务端取号的实现、客户端业务处理的实现、Dao层实现等,文中详细论述了系统实现的各个步骤;
第五章对本人的工作做出了总结并展望后继的工作。
2.系统分析
2.1系统初步调查
社会生产力的发展与进步,积极推动了人类思想的革新与创造,从而一系列新生事物的诞生接踵而来。
但是新生事物的生存与延续取决于人类的检验,因而它的可行性至关重要。
万事求得发展的根
13
本保障是物质基础,经济的飞速发展推动生活水平显著提高。
所以,生活质量的标准化、多样化使市场需求处于必不可少的地位,而市场规模也随之扩大,因此,经过详细的调查,目前在我国,虽然服务行业蓬勃地发展起来,但是基本上都还在使用排队方式办理业务。
在此方式下,不仅秩序混乱,还效率低下,顾客还怨声载道。
显然,随着服务行业的发展,这种形式已不再适合新型服务行业的要求,对行业的发展也有一定的限制,直接导致了工作人员的工作效率低下。
因此本文设计了这个功能实用的排号系统,解决服务行业里混乱的场面。
2.2系统可行性分析
2.2.1经济可行性
该系统对操作环境没有太多要求,系统的开发不需要很强的经济支持,就其功能和给企事业单位带来的方便来说,是完全可行的。
2.2.2操作可行性
目前计算机已经普及到所有的单位及大部分家庭,不仅在企事业单位,即使足不出户也能通过网络对单位和人员进行统一管理。
本系统的使用者有两类人,第一是客户;
第二是银行柜员,对于这两类人员使用本系统都是可行的。
本系统操作非常简单,不需要进行培训只需阅读说明书就可以进行操作。
2.2.3技术可行性
本系统采用Java语言编写,它是一种简单的,面向对象的编程语言,具有多线程,分布式,跨平台等特性。
它有自己的安全机制,并且移植性很好。
在数据库方面采用了Oracle10g,其灵活性,安全性和易用性为数据库编程提供了良好的条件。
在数据持久化层,选用了JDBC,开发者掌握这些技术就可以具备开发此系统的能力,另外,此系统对开发环境的要求,都是大部分Java程序员进行软件开发使用的开发环境,所以,技术方面也是可行的。
2.3系统开发环境概述
2.3.1硬件环境
本系统采用单机操作方式,基本配置如下;
处理器:
Intel(R)Core(TM)2DuoCPU T6400@2.00GHz
硬盘空间:
200GB内存:
2G
显示器:
NVIDIAGeForce9300MGS
2.3.2软件环境
采用C/S架构,使用Eclipse运行环境开发平台:
MyEclipse
操作系统:
Windows7
数据库服务器:
Oracle10g
使用技术:
JavaGUI、JDBC、Socket、Xml
2.4系统需求分析
2.4.1业务流程分析
在调研过程中,已了解到所涉及的业务流程如图2-1所示
用户进入
取号及电话业务咨询
电话或网上取号
自动取票机
按服务类别写入柜台
排队数据库
3号台LED显示
2号台LED显示
1号台LED显示
大屏幕显示器
音响双语叫号
排队叫号服务器
发送播放和显示指令
...
按柜台号读取各自的数据队列处理后向服务器发送指令
2号台
3号台
4号台
5号台
1号台
图2-1业务流程图
2.4.2系统体系结构设计
Dao层
pojo类JDBC
数据
持久化
层
表示层 业务逻辑层
数据访问层
数据库
调用
Service
JavaGUI
图2-2系统体系结构
2.4.3系统逻辑模型
XML
顾客
发出请求
取号服务器端
OID
数据库端
………
业务端2
业务端1
配置模块
图2-3系统逻辑模型
2.5系统需求定义
2.5.1客户用例图
图2-3客户用例图
2.5.2业务员用例图
图2-3业务员用列图
3.系统总体设计
3.1系统设计目的与任务
系统设计阶段的主要目的是,将系统分析阶段所提出的、充分反映用户信息需求的系统逻辑方案转换成可以实施的、基于计算机和网络技术的物理方案。
这一阶段的主要任务是从信息系统的总体目标出发,根据系统分析阶段对系统的逻辑功能的需要,并考虑到经济、技术和运行环境等方面的条件,确定系统的整体结构和系统各组成部分的技术方案,合理选择计算机和通信的软件、硬件设备,提出系统的实施计划。
3.2开发设计思想
排号系统从界面上看主要实现两个方面的功能:
(1)取号 客户按键反馈给服务器,然后服务器从数据库获得一个号反馈给顾客,这就完成了取号的过程,在顾客取号的可视化界面上顾客可以查询当前取号总人数,也可查询到已处理的人数,在顾客想放弃当前的号票时也可以对号票进行删除,顾客还可以在可视化界面看到自己的取票信息和需要等待的人数。
(2)叫号业务员按键反馈给服务器,服务器拿到取号时存储在数据库中的数据,进行业务处理,在这个过程中业务员可以进行对顾客人数的查询,还可以对不需要进行处理的票号进行删除,也可已充当管理员的角色对数据库进行删除。
业务员还可以查看顾客的取票情况,以及票号的业务的处理情况。
排号系统的特点:
(1)可操作性
界面简易,使用通用的菜单式风格,使用直观,操作简便。
(2)容量大
支持联网,不限制取号数量,可满足大型客流场所的使用。
(3)高性能
系统的所有对象都存放到数据库中,表示逻辑与业务逻辑相互分离,保证系统的处理能力。
(4)伸缩性
它能适应不同的应用环境,对于只实现基本功能的服务大厅,如银行系统,可以采用微机控制的排号系统,无需单独配置系统电脑,即可实现自动排队叫号的功能。
(5)可靠性
能保证长时间的正常运行,同时系统有比较好的安全机制,提高了安全性能。
3.3系统总体设计框架
排号系统
据以上章节所做需求分析对系统进行功能设计,见系统功能模块图如图3-1所示:
通知功能
查询功能
弃号功能
统计功能
取号功能
服务器端
移除功能
叫号功能
登录功能
客户端
图3-1系统的总体功能模块图
3.4系统功能详细设计
该系统功能从服务器端和客户端角度来说可分以下两大模块,具体每一个模块又分为几个小模块:
(1)服务器端
1)取号功能:
打开服务器与终端进行通信。
由于把服务器设置到了用户的一端,所以在服务器端进行取号,然后把号存到数据库中。
2)统计功能:
数据访问层从数据库中查出所有取票人数和等待人数在服务器端界面显示。
3)删除功能:
删除当前取票顾客的排号。
4)查询功能:
顾客可以从此处了解到所有顾客的取票情况及被处理状况。
5)通知功能:
从服务器端获得排号,通过服务器端通知***用户到***工作台办理业务。
(2)客户端
同一时刻允许多个工作台办理业务。
用户通过在服务器端的通知功能知道去哪个工作台办理业务,工作台显示正在为哪个号码的用户办理业务。
1)登录功能:
业务员从此处登录,业务员的姓名,密码是事先录入数据库的。
2)叫号功能:
业务员点击处理按钮触发事件发送信息给服务器,服务器从数据库拿到号票,返回给业务员进行业务处理。
3)统计功能:
数据访问层从数据库查询总取票人数和查询未处理人数在业务端显示。
4)删除功能:
业务员可以删除数据库中所有的记录,也可以选择删除某条记录。
5)查询功能:
业务员可以查询所有顾客的取票情况及业务员对号票的处理情况,这块主要为了能够及时掌握顾客取票信息及业务员处理情况。
4.数据库设计
4.1数据库需求分析
通过对排号系统内容和数据流程分析,设计的数据项和数据结构如下:
(1)顾客信息。
包括的数据项有顾客ID,顾客排号、取号时间、服务类型、状态标志等。
(2)业务端信息。
包括的数据项有业务ID、处理时间、服务台编号、属于那种服务类型,服务的顾客票号。
(3)业务员信息。
包括的数据项有业务员姓名、业务员密码。
(4)自动出号信息。
包括的数据项有ID、服务类型。
有了上面的数据结构、数据项和数据流程,就可以进行下面的数据库设计。
4.2数据库概念设计
处理时间
服务台编号
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
根据上面的设计规划出的实体有顾客信息实体、业务端信息实体、业务员信息实体、自动出号信息实体。
各个实体的E-R图及其关系描述如下:
业务端信息
业务端
服务类型
状顾态客标票志号
图4-1业务端信息实体E-R图
业务员
ID
业务员姓名
业务员密码
业务员信息
图4-2业务员信息实体E-R图
顾客ID
顾客牌号
取号时间
状态标志
顾客信息
图4-3顾客信息实体E-R图
自动出号信息
图4-4自动出号信息实体E-R图
业务类型
实体之间关系E-R图:
基于
基于
自动出号
图4-5实体之间关系E-R图
4.3数据库逻辑结构设计
在上面的实体以及实体之间关系的基础上,形成各个表格之间的关系。
排号系统数据库中的各个表的设计结果如下面的几个表格所示,每个表格表示数据库中的一个表。
(1)顾客信息表customer_tbl
表customer_tbl用来保存顾客取票信息,结构如表4-1所示。
表4-1customer_tbl的结构
字段名
字段类型
中文描述
备注
非空
主键
Id
NUMBER
唯一标识
√
nextId
顾客排号
Unique
takeDate
Date
取票日期
type
1:
vip2:
普通
flag
处理标记
(2)业务端信息表work_tbl
表work_tbl用来保存业务端信息,结构如表4-2所示。
表4-2work_tbl的结构
processDate
处理日期
workId
(3)业务员信息表workmen_tbl
表workmen_tbl用来表示业务员信息,结构如表4-3所示。
表4-3workmen_tbl的结构
name
varchar2(20)
用户名
password
密码
(4)自动出号信息srt_tbl
表srt_tbl用来产生唯一的号票信息,表结构如表4-4所示
表4-4srt_tbl的结构
NUMBER(20)
NUMBER(7)
4.4系统安全性设计
(1)数据因素:
系统数据库中包含多个表信息,所以在系统与数据库的连接上,直接封装到代码中,由于java的安全机制比较好,所以数据信息在存储和传递过程中不可见。
(2)硬件及物理因素:
系统硬件及安全环境安全可靠,包括机房设施、计算机主体、存储系统、数据通信设备设施等方面是安全的。
(3)存储安全:
通过oracle的数据库安全设置,连接数据库需要用户名和密码,保证了数据库的安全性[14]。
5.系统的实现
5.1系统的总体概述
排号系统采用javaGUI设计的界面,它通过scoket实现点对点的通信,在实现过程中,客户取号的一端设置成了server端,业务员处理一端设置成了client端,所以必须先启动server端,才能启动
client端。
在整个系统中server端实现了顾客的取号功能和一些查询删除功能,client端实现了业务员登录和叫号处理以及一些查询删除功能。
5.2系统相关技术简介
5.2.1C/S的简介
传统的应用体系结构模式主要有两种:
C/S(Client/Server)结构模式B/S(Browser/Server)结构模式。
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。
它是软件系统体系结构,通过它
可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。
目前大多数应用软件系统都是C/S形式的两层结构,由于现在的软件应用系统正在向分布式
的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;
因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。
这也就是目前应用系统的发展方向
C/S体系结构的优点:
(1)应用服务器运行数据负荷较轻。
最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。
二者可分别称为前台程序与后台程序。
运行数据库服务器程序的机器,也称为应用服务器。
一旦服务器程序被启动,就随时等待响应客户程序发来的请求;
客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。
(2)数据的储存管理功能较为透明。
在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。
所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。
在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络[18]。
5.2.2Socket的简介
Socket 是一种软件形式的抽象,用于表达两台机器间一个连接的“终端”。
在java中创建一个
Socket,用它建立与其他机器的连接。
从Socket得到的结果是一个InputStream以及OutputStream或
Reader和Writer,以便将连接作为一个I/O流对象对待。
这有两个基于数据流的套接字类:
一个是
ServerSocket,服务器用它“侦听”进入的连接;
另一个是Socket,客户用他初始化一次连接。
一旦客户
(程序)申请建立一个套接字连接,ServerSocket就会返回(通过accept()方法)一个对应的服务器端套接字,以便进行直接通信。
可以利用getInputStream()以及getOutputStream()每个套接字产生对应的
InputStream和OutputStream对象。
这些数据流必须封装到缓冲区内。
在排号系统中采用了TCP/IP协议,这样实现了点对点通信等功能[3]。
5.2.3JAVA多线程技术
(1)多线程[17]
多线程编程技术是Java语言的重要特点。
多线程编程的含义是将程序任务分成几个并行的子任务。
特别是在网络编程中,你会发现很多功能是可以并发执行的。
比如网络传输速度较慢、用户输入速度较慢,你可以用两个独立的线程去完成这两个功能,而不影响正常的显示或其它功能。
多线程是与单线程比较而言的,普通的Windows采用单线程程序结构,其工作原理是:
主程序有一个消息循环,不断从消息队列中读入消息来决定下一步所要干的事情,一般是针对一个函数,只有等这个函数执行完之后,主程序才能接收另外的消息来执行。
比如子函数功能是在读一个网络数据,或读一个文件。
只有等读完这个数据或文件才能接收下一个消息。
在执行这个子函数过程中你什么也不能干。
但往往读网络数据和等待用户输入有很多时间处于等待状态,多线程利用这个特点将任务分成多个并发任务后,就可以解决这个问题。
(2)线程创建的方法[16]1)从一个自定义的类中创建一个对象,这个类扩展了Thread类。
2)使用接口。
在java中,用于创建线程的接口是Runable。
(3)多线程在排号系统中的应用
为了实现多用户同时在线服务采用了多线程机制,在实际应用中启动一个业务端产生一个线程。
业务端分布在不同的机器上,同时进行业