酒店管理系统设计与前端实现.docx
- 文档编号:3932059
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:35
- 大小:1.81MB
酒店管理系统设计与前端实现.docx
《酒店管理系统设计与前端实现.docx》由会员分享,可在线阅读,更多相关《酒店管理系统设计与前端实现.docx(35页珍藏版)》请在冰豆网上搜索。
酒店管理系统设计与前端实现
酒店管理系统设计与前端实现
-----------------------作者:
-----------------------日期:
快捷酒店管理系统设计与前端实现
摘要
目前,我国快捷型酒店发展十分迅速,但是相对于酒店的快速扩展,酒店管理软件的更新却不是如此及时,快捷酒店相对于的操作应该是十分简单明了,但是传统酒店管理系统操作十分复杂,导致操作员需要大量时间学习如何操作。
本文主要介绍了如何针对快捷酒店的需求,通过Flex编写的前台程序,和后台迅速交互。
达到使客户认为操作简单并且容易上手。
介绍Flex关于RIA的开发流程及Flex用作客户端编程所带来的好处。
分析整个酒店管理系统的架构,分析各个功能模块的基本数据结构,接口,功能流程等。
最后对系统的特点及不足之处进行总结。
关键词:
Flex,RIA,快捷酒店,模块功能,系统架构
Abstract
Atpresent,thereisanincreasingdevelopmentofinnhotelinChina.However,thehotelmanagementsoftwareisnotupdatingintime.RelativetothecomplexoperationoftraditionalHotelmanagementoperatingsystem,theoperationofinnhotelshouldbesimpleandconvenient.Sostaffsdonotneedspendtoomuchtimeonlearninghowtohandleit.
Thisarticlegivesanintroduceofhowtouseclientwhichiswrittenbyflextointeractwithserver,andfinallymakesitmeettheinnhotelrequirements.ThearticlealsopresentsthedevelopmentprocessofRIAandadvantagesofflexProgrammingasClient.Thenitmakesafurtheranalysisofmanagementsystemframeaswellasbasicdatastructureofdifferentfunctionalmodelandinterface.Intheend,thearticlegivesabriefSummaryoftheCharacteristicsandinadequaciesforthismanagementsystem
KeyWords:
Flex,RIA,innhotel,functionalmodel,systemframe
图目录
第1章绪论
目前,我国快捷连锁酒店企业还没有真正属于自己的适合自己发展需要的快捷酒店的管理软件,大的连锁酒店如:
如家,汉庭用的都是自己酒店部开发的酒店管理系统。
其他快捷酒店管理系统则主要来自各种星级酒店的管理系统。
与自己的酒店业务办理有一些出入。
因此我实习所在的公司,准备开发出一套专门针对快捷酒店快速反应及符合其业务需求的管理软件。
不仅满足酒店的管理需求,也能充分让住客体验到快捷酒店的方便及实用性。
1.1课题背景
本文的课题主要来自作者的工程实践,以绿云软件的酒店管理系统的开发为背景,利用公司已开发的星级酒店管理系统,来设计一个针对快捷酒店的管理系统。
同大多数B/S架构模式的系统相似,快捷酒店管理系统主要分为如下几个模块:
前端,应用服务器端,数据库服务器端。
其中,前台用Flex编写,使用RemoteObject与java端进行通信。
然后通过Java端程序的控制,从数据库服务器换数据。
由于公司已经开发过星级酒店的管理系统,因此后台可以打一个分支即可重用以前的Java代码。
作者的主要任务是开发好前端Flex代码,根据客户所需求的简单快捷的操作来设计编写前端界面。
开发快捷酒店管理系统的价值如下:
(1)使酒店操作员能够轻易上手并且能够增加前台的工作效率。
(2)采用创新的Flex技术使得原本影响Flex程序性能的问题能得以解决。
(3)为管理层决定酒店的消费定价等提供更多的数据分析及决策。
1.2发展及现状
酒店管理软件是最早在西方发达国家最先使用的,像希尔顿,喜来登等国际型大酒店都有专门的软件公司为他们量身定做管理软件。
因此,这些酒店的管理效率及公司运作方面都是做的比较好的。
从现代科技的发展来看,一个好的酒店必须是软硬件配合的很好才能发挥最大的效率,硬件当然是指酒店的装潢服务等,而软件则是一套方便智能的管理系统。
社会经济在不断发展,酒店在服务行业扮演的角色也越来越重要,一个酒店的管理和服务水平直接影响到酒店的形象和声誉[1]。
酒店管理系统最先西方发达国家率先发展起来的,像喜来登,希尔顿等国际型连锁酒店,它们都有一套完善的酒店管理系统来提高酒店管理的效率,并且分析数据给高层用来决策。
在上世纪90年代,酒店业因为竞争激烈而经营状况十分艰难[2]。
他们最先了解并且使用了ERP这个概念,也就是企业资源企划。
使得企业的管理显得十分井井有条。
酒店业也不再局限于传统意义上的价格恶性竞争,它将是各酒店集团连锁品牌(集团端)和各酒店之间运用网络系统的整体营销和管理上的竞争[3]。
目前,国快捷酒店管理软件遇到的问题有很多。
还存在很多不足和问题,酒店行业作为服务业的典型,在此项技术面前,却又一次落伍。
世界围的酒店管理集团,可以谈得上成功运用客户信息管理的寥寥无几,诸多客户信息管理厂商,也没有能够及时拿出一套切实可行的针对酒店行业的全面解决方案。
1.3研究的目标和容
本文以某快捷酒店管理系统项目为例,对快捷酒店管理系统项目研发过程中的需求分析,架构设计,产品测试及性能分析进行了实质性的研究。
研究的目标是:
结合快捷酒店管理系统项目的特点和开发过程,分析其设计模式及架构。
分析各个功能模块的基本数据结构,接口,功能流程等。
探讨如何设计出适用于快捷酒店管理系统项目的系统架构及对此系统完成后进行的系统性能进行详细分析。
分析包括客户端程序在长时间运行时对操作系统资源占用和高并发操作时是否影响系统性能及稳定性。
第2章相关技术和方法
2.1RIA介绍
RIA(RichInternetApplications)富互联网应用,传统的英特网应用程序都是把大量的对数据的处理都交给服务器端,网络的表示层只是一些HTML编写的静态页面。
随着IT技术的不断飞跃,传统的基于页面的系统已经不能满足客户的需求,主要原因就是很多时候客户端只需要从服务器端得到想要的数据,页面的基本容不需要改变,但服务器端仍然返回的是HTML形式的页面。
这样加重了网络的传输成本,同时也降低了用户的体验。
RIA使用的是相对比较健壮的客户端描述引擎,能够提供比传统瘦客户端容更密集、响应速度更快和图形更丰富的用户界面[4]。
RIA就是区别于传统的瘦客户端而产生的,它把许多原来要经过服务器端处理才能得出的数据,交由前端处理。
同时,服务器端向客户端传输的也可以不再是HTML,而是客户端所需要的数据集。
RIA引擎接收浏览器发出的请求后,调用本地的业务逻辑处理组件(一般是网页脚本语言)异步转发该请求到服务器;服务器给予应答后,RIA引擎再利用自身的客户端框架程序处理数据和和样式特效对页面进行包装,反馈给浏览器显示[5]。
2.2Flex技术简介
Flex是由Adobe公司发布的RIA应用程序框架,它提供了丰富的用户界面组件,其开发模型由ActionScript3(兼容ECMAScript这个国际标准的面向对象的脚本语言),MXML模型描述语言(基于XML,实现标签化的定义方式,可用于可视化的编辑),以及其他的扩展类库组成的[6]。
它与Adobe发布的另一款产品Flash是一个模式。
Flex和Flash一样都是生成.swf文件运行。
但相对于flash动画有多帧,Flex制作出来的界面只有两帧。
第一帧是预加载,第二帧就得到了我们想要的页面。
ActionScript3.0是Adobe发布的一种面向对象编程语言,它提供MXML所不具备的对程序流程的控制和对象操作等功能。
Flex编译器和调试器及虚拟机AVM帮助把MXML及ActionScript3.0源代码编译成能够运行在FlashPlayer中的二进制文件[7]。
这点也是Flex和Flash相似之处,它们都运行在FlashPlayer当中。
但是Flex与Flash也是有明显差别的,Flex提供了一种完全面向对象的语言Actionscript并且是跨平台的。
它打破了Flash只能由专业的美工设计师来完成的局面。
普通程序员也可以通过Flex完成绚丽的界面效果。
Flex和基于Struts,Spring,Hibernate的传统J2EE而言,可以通过AMF这种模式网关进行集成Flex。
从而在不影响原先应用的情况下,RIA对表示层的功能和显示灵活性进行了丰富增强[8]。
2.3RemoteObject介绍
Flex可以利用3种方法来实现与服务器端交换数据的功能,分别是使用HTTPService组件、使用WebService组件和使用RemoteObject组件[9]。
在Flex作为客户端开发程序时,我们采用的是RemoteObject组件的方式来实现与java端通信。
我们使用BlazeDS来完成java端与Flex端的通信。
Flex与java使用RemoteObject是异步通信的。
也就是说,Flex端发完请求之后不需要等待服务器端的响应,可以做别的事情。
RemoteObject组件和服务器之间传递信息采用ActionMessageFormat(AMF)编码的二进制格式,RemoteObject组件可以直接将AMF编码的信息转换成Flex可以识别的Object对象[10]。
这样方便了前台对数据的处理。
并且使用RemoteObject比其他两种方式占用的存更少。
2.4Spring框架简介
Spring是一个轻量级的Java开源框架,它遵循了面向对象的设计模式。
并且把设计模式运用到实际开发及应用中。
Spring框架是一种在J2EE的基础上构建起来的一个轻量级面向对象的框架实现,它是一个分层的应用程序开发框架,而不是单独某一层例如Web层开发框架[11]。
相对于J2EE而言,Spring具有维护容易、分层清楚、速度快、代码少、支持ORM对象关系映射和AOP面向切面编程的概念等优点[12]。
Spring所展现出来的两种编程思想,一种是依赖注入(DI),一种是面向方面编程(AOP)。
依赖注入概念上来说是程序不应该依赖于具体,而是应该依赖于抽象。
简单来说是在运行期由Spring容器将对象对其他对象的依赖关系注入到组件之中,使应用代码只需要直接使用已经由容器注入的实例[13]。
简单来讲就是以前的对象都是根据具体的类来构造。
这样耦合比较紧密。
但是利用Spring之后,对象的构造再也不依赖于具体的类。
而是依赖于抽象接口。
通过Spring容器注入。
这就是依赖注入的思想。
而AOP则是Spring一个更加重要的思想。
他的出现甚至改变了传统的编程方式。
传统的编程方式是一条直线或多条直线(多线程)的思路编程。
但是AOP的思想是可以在这条直线上有一个切面。
来运行别的代码。
这是基于动态代理来实现的一个编程模式。
Spring的职责主要包括:
(1)把应用程序的业务逻辑和业务校验交由Spring处理。
(2)管理程序当中的事务。
(3)提供和其它层对接的接口模块。
(4)消除业务层级别的对象的依赖,已达到解耦合目的。
(5)在表示层和持久层之间增加了一个中间层,使其不直接耦合在一起。
(6)揭示了从表示层到业务层之间的Context以此得到businessservices。
(7)管理程序的执行,在执行过程中增加逻辑处理(从业务层到持久层)[14]。
2.5Hibernate框架简介
Hibernate是一个功能十分强大的开源ORM框架工具,允许开发者使用常见的Java语言特性(如封装、继承、多态等)实现对象模型和关系数据库的相互映射,并支持如Oracle、DB2、SQLServer、MYSQL等主流数据库系统[15]。
现在,Hibernate已经是开发轻量级Web程序的首选框架。
其一是因为他封装的很完善。
并且程序员运用起来也比较简单。
现在Hibernate已经出到了4.3.0。
它的许多新的特性也让人十分向往。
Hibernate对JDBC查出的数据使用了轻量级的对象封装,向上层程序应用提供了如同面向对象的数据访问API,减少了开发时人工使用SQL和JDBC处理数据的时间,提高了软件开发的效率[16]。
开发人员甚至不需要知道写SQL就可以操作数据库。
这也是ORM(对象关系映射)所需要解决的。
现阶段,软件产品大部分应用到的数据库都是关系型数据库。
而Hibernate就是把关系型数据库转换成为面向对象语言所能读懂的对象。
Hibernate的核心接口如下图所示。
其中Transaction接口是处理控制事务的。
它主要在程序中合适的地方定义事务的开始和结束。
对应于数据库操作的事务。
Query和Criteria接口是数据库的查询。
Configration类主要负责配置和启动Hibernate。
创建SessionFactory实例来维护数据库连接池[17]。
图2.1Hibernate结构模式图
由于Hibernate只对JDBC做了轻量级封装,应用程序可以使用HibernateAPI对数据库进行操作,也可以直接不使用Hibernate提供的方便,使用JDBC完成数据库操作[18]。
这样就增加了系统的灵活性,由于有些复杂度较高的查询用Hibernate写起来不仅麻烦,而且影响效率。
实际工作中都是Hibernate和JDBC一起用的。
Hibernate的优点有许多,这里只简单说明。
总之使用Hibernate有利于节约开发成本和时间,提高业务应用方面的性能,提供更灵活的和简单的业务逻辑[19]。
第3章系统的需求分析及概要设计
TheF快捷酒店管理系统分为客户端和服务器端两部分,Client模块会被安装在每一个物理机上。
Client主要负责响应用户操作,上传数据给服务器端。
Server端主要负责处理数据,并返回给客户端。
3.1系统的需求分析
根据对快捷酒店集团的调研,了解整个系统中各类功能模块协同工作需要获取的信息,进行归纳总结,确定了快捷酒店管理系统要实现的两大基本的功能性需求:
1.系统要对前台操作员来说做到简单快捷和易上手
快捷酒店管理系统一个重要理念就是员工基本不需要单独培训即可上岗,这样降低了对员工的要求。
2.系统要对管理层人员提供可分析数据的支持,以便管理层做出决策
3.2系统的总体设计
为了将快捷酒店管理系统符合软件设计的低耦合性和高可用性,在设计中完全遵守MVC的设计模式,设计了如下的分层式架构,具体的架构如图3.1所示:
图3.1系统总体设计图
A1:
客户端读取config中的URL地址,连接到应用服务器端。
A2:
客户端以RemoteObject的方式与应用服务器交互。
A3:
接受到的数据通过Java端程序处理和控制。
A4:
Java端读取JDBC配置文件。
准备连接数据库
A5:
java端与数据库端进行通信。
完成操作并且返回数据。
由于前端使用Flex制作界面,Flex和Java有很多种的通信方式。
提到通信,我们有两方面的问题,一是选择通信协议,二是选择数据协议。
通信协议如TCP,UDP,HTTP等。
数据协议则是规定数据交换的格式,如Json,XML,amf3等。
在这个项目中,我们使用Adobe提供的BlazeDS这个开源框架来实现java与Flex之间的通信。
它已经为我们提供了java封装AMF3格式的方法。
然后我们应用Hibernate和Spring这两个开源框架。
把整个业务应用划分为三层,分别为表现层(UI),业务逻辑层(BLL),和数据访问层(DAL)。
这也完全体现了面向对象开发的“高聚,低耦合”的思想。
一个软件组件仅仅是一个使我们可以关联不同的责任的抽象的设计实体[20]。
综上所述,系统采用的架构设计是典型的MVC的思想。
把客户端作为视图层。
把Java端不包括与数据库交互的部分作为控制层。
把Java端与数据库交互的模块作为模型层。
这种分层的架构设计,不仅降低了系统的复杂程度,也减轻了各个模块的压力。
同时各模块互相协作。
也使得编程的思路更加清晰。
在设计部分,主要通过对系统的用例图,类图,交互图和状态图等一系列UML图来进行详细的描述。
并且对数据库的设计也将进行介绍。
3.3模块设计
快捷酒店管理系统分为以下几个功能。
用户权限体系管理,客户管理,协议单位管理,会员管理,销售员管理,房价及佣金体系管理,预定管理,接待管理,客房中心管理,前台收银管理,应收帐管理,夜审管理,报表及信息查询。
3.3.1功能介绍
3.3.1.1用户权限体系管理模块
主要负责区分酒店部不同员工所拥有的不同操作权限,比如经理登录后可在报表中查看当天的营业日报,而前台操作员登录后则没有报表项目显示,因此不能查看营业日报。
3.3.1.2客户管理
主要负责建立客户档案,主要把客户分为团队和散客,而散客又分为会员,回头客。
如果客人第一次入住,则会自动更新客户档案。
使得酒店的管理更加人性化。
3.3.1.3协议单位管理
此模块主要管理协议单位,协议单位就是和酒店有签订协议价的单位,酒店需要根据不同的公司分别管理其协议价格
3.3.1.4会员管理
此模块主要负责管理各个种类的会员,如金卡会员,银卡会员,普通会员,并且管理其会员卡账户余额。
积分兑换等。
入住时系统会根据会员的不同程度给出合理的价格。
3.3.1.5销售员管理
销售员管理则是对预定或者入住时,如果是有销售员参与的话,就会对销售员给予一定的奖励。
3.3.1.6房价及佣金体系管理
此房价模块主要管理钟点房及全日房的房价,每一个房价都有与之对应的房价码,各种客户入住都有与之对应的房价码,才能找到与之对应的房价。
佣金管理则是如果顾客是通过第三方平台预定并入住,则需要计算佣金给第三方平台。
3.3.1.7预定和接待管理
此模块是酒店管理系统中比较重要的模块,负责处理酒店的预定和入住的所有事物,此模块几乎与所有模块都产生交互,此模块直接决定了此系统的用户体验。
3.3.1.8客房中心管理
此模块主要负责管理每个房间当时的客房状态。
管理哪些房间可用,哪些不可用。
并且负责房间是否打扫的状态等。
3.3.1.9前台收银和应收账管理
此功能主要负责前台收银和应收账务的的管理,此功能也是有关财务。
因此需要格外小心。
3.3.1.10夜审管理
此功能主要负责每天的夜间审核,需要计算账务,生成营业日报,并且把当天的房费去除掉,重新计算应收款。
还有需要重新计算明天的房费和房间资源。
一系列有关账务的操作都在夜审步骤里面。
3.3.1.11报表和其他信息查询
此功能主要涉及管理层需要核对酒店的各种账务情况和入住情况,以便更好的调整策略,使酒店的管理更加高效。
3.4主要功能模块
前面已经介绍了系统的各个功能组成部分,通过对这些部分的分析,我们将系统分为入住管理和系统管理两个大部分。
入住管理主要分为:
前台预定接待,客房管理,收银和应收账管理,会员和销售员管理等。
系统管理则主要分为:
店长系统,系统维护,夜审系统和报表系统等。
下图显示了入住管理和系统管理的主要流程,其中起到桥梁作用的便是夜审。
如图3.2所示。
R:
预定状态的登记单。
I:
在住状态的登记单。
S:
挂账状态的登记单。
指入住完酒店后,但并不直接付款,通过记帐的形势方便以后一起计算。
O:
已经结账的登记单。
X:
已经被取消的预定单。
N:
应到未到的预订单。
W:
wait状态的登记单。
D:
删除了的登记单。
图3.2酒店业务流程图
3.4.1入住管理模块设计
入住管理模块主要涉及客人的预定入住,房间的状态显示及顾客的资料管理
3.4.1.1前台入住用例描述
入住管理主要包括顾客的预定,登记,客房管理,房价,换房及排房的管理。
以下是顾客预定,顾客登记,客户管理和团队及协议单位管理这几个方面的用例图。
如图3.3,3.4,3.5所示:
图3.3顾客预定用例图
图3.4顾客登记用例图
图3.5团队/协议单位入住用例图
3.4.1.2房间状态管理
快捷酒店最核心的业务就是卖房间给客人,把房间当做商品资源一样卖出,因此房间也需要像商品资源一样管理。
并且房态图的显示必须做到实时快捷。
如果房态图有误,则直接影响到销售。
由于酒店要做到对自己的所有房间状态了如指掌,因此便诞生了房态图这一模块。
如图3.6。
图3.6房间状态图
房间的状态主要包括以下几个状态:
(1)空净:
当前没人住,并且已经打扫过房间。
(2)空脏:
当前没人住,但是没有打扫过房间。
(3)住净:
当前已经有人入住,并且打扫过房间。
(4)住脏:
当前已经有人入住,并且没有打扫过房间。
,
(5)维修:
当前房间正在维修,不允许入住。
并且每一个状态都有相应的颜色显示。
每一个大方格代表一个房间,大方格的小方格则是显示房间的其他一些信息。
图例如图3.7
图3.7房间状态图图例
3.4.2账务及现付账模块设计
3.4.2.1账务模块业务流程
针对酒店管理系统,首先我们要做到的是账务必须清楚明确,容不得一丁点差错。
这也是一个合格的管理系统所必备的。
因此我们要确保每一条账务都在历史数据中有据可查,只要产生了账务的登记单,就不能随便删除或者取消。
账务处理的具体时序图如图3.8所示:
图3.8顾客账务处理时序图
3.4.2.2房务费管理用例描述
房费管理包括房费信息录入,录入租用信息,及退还租赁物品。
如图3.9所示:
图3.9顾客房费管理用例图
3.4.2.3会员卡消费机制
现代快捷酒店发展迅速,各个分店如雨后春笋般在城市中间涌现,因此,拥有一会员卡,便可以在所有酒店消费已经成了客户的需要。
会员卡一般与储值卡相融合,但是根据国家的最新规定,会员卡的储值额度已经不能超过1000了。
但是这样也不影响会员卡所拥有的打折或者积分服务。
会员卡消费流程如图3.10所示:
图3.10会员消费示意图
3.4.3报表管理模块设计
报表管理是以数据或者图形形式统计和显示当前门店的运行情况。
我们提供的快捷版管理系统包含了很多基本的报表,比如近日到店入住报表,营业日报报表等,在实施的时候,也可根据酒店的要求增加酒店的自定义报表。
通过报表显示出想要得到的数据,并且清晰的呈现在操作人员眼里是十分重要的。
我们以一天的营业日报为例,我们可以得到今天的各个部分的消费金额和结算金额。
并且也支持报表打印功能。
如图3.11所示。
图3.11营业日报报表图
3.4.4系统管理与维护模块设计
此模块主要是系统管理员对酒店的员工分配角色和权限。
酒店的信息管理,日志管理及与外部设备或者系统的接口管理等。
3.4.4.1权限分配设计
在这个快捷版的酒店系统中,权限是用权限字符串来表示和计算的。
具体流程图如下图3.12所示。
图3.12权限查询流程图
首先,用户登
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 酒店 管理 系统 设计 前端 实现