基于DCOM和MIDAS分布式联网订房系统的研究①

2018-02-05 07:56周桂如
关键词:页面门店会员

周桂如

( 福建船政交通职业学院公共教学部,福建 福州 350007)

0 研究背景和研究现状

基于时代大背景,网络订房业务是一种新的服务业营销方式,它无疑将利用互联网本身的优势对传统的营销方式提出挑战。400订房中心的引入更是帮助企业实现了连锁经营、资源共享的愿望,把原来分散各处、各自为政的订房业务集中到统一的订房中心,对外发布唯一的订房热线,实现人员、房源、客源的大集中,极大方便了企业的集中化管理和精细化管理,为企业在节省经营成本和提升企业形象方面做出了突出的贡献。 目前市场上比较大型的连锁娱乐企业有:agogo(35家门店,总部在福州)、好乐迪(66家门店,总部在上海)、欢乐迪(43家门店,总部在重庆)等。

agogo的订房系统是由大唐电信为其订制开发的,系统采用B/S架构,大集中模式,整套系统只有一个中心数据库,总部订房中心和各门店的业务模块都是直连中心数据库,由于门店多、门店的业务终端多,给中心数据库造成非常大的压力,在业务高峰期时出现明显的卡顿、反应缓慢的现象。而且这种模式对网络质量的要求也比较高,当门店和总店的网络存在跨运营商的情况,门店业务模块的通讯就会比较卡。

欢乐迪的订房系统用的是上海曲轩公司的产品,该系统采用C/S架构,只有订房中心业务模块,没有门店业务模块,订房中心每完成一单订房业务都要给业务门店打个电话,通知门店有新的预订信息。该系统已经使用比较长久,其业务模式严重不能满足现在的运营需求,对业务人员的工作负荷太大,加上订房系统与其它业务系统没有办法对接,正在考虑切换产品。

系统在数据操作的高效率下,保证数据类型的准确性和数据内容的扩展性。各业务模块的通讯方式是采用异步通讯,而且各门店和总店的数据库都是独立的本地数据库,所以各业务模块运行效率比较流畅,对网络依赖比较低。

1 联网订房系统需求分析

在信息化时代的大背景下,连锁经营模式是企业发展的趋势。开发环境综合考虑开发人员的使用习惯、数据库软件开发的便利性,最终选择DELPHI2010作为开发工具。产品定位为应用在大中型连锁企业(估算一年一两百万条订单数据,会员数据在百万级),数据量属于中等规模,所以选择SQL SERVER 2008 R2作为数据库。为提高各业务单元的可操作性、易用性、稳定性,各业务单元采用C/S结构。由于产品本身对数据实时性要求不高,所以总分店数据通讯采用异步方式,以方便各业务单元能够快速的完成各项操作。

为了明确产品的功能性需求,通过观摩学习市场上其它订房系统,经过对订房业务的分析、对连锁经营模式的调查、对联网方案的考察、对市场最终用户的走访,综合分析挖掘出各业务单元的需求点、关注点,最终形成联网订房系统需求。

2 联网订房系统设计

2.1 系统架构设计

系统架构的好与不好将决定软件产品的质量,如:模块之间的耦合度、可扩展性,模块内部的清晰度、可维护性,软件系统的健壮性、可持续性,数据系统的安全性等。因此,系统架构设计在软件开发过程中起到承上启下、继往开来的作用。

2.1.1 多层分布式结构

互联网的发展给传统的软件开发行业带来了空前的变革,基于Web和Internet应用软件系统必将需要更加灵活、开放的软件架构[2]。随着商业应用软件系统越来越多的被搬到互联网上,一种全新的、更具生命力的软件架构被广泛应用,这就是“三层/多层架构”[1]。多层分布式结构很好的解决了C/S结构的缺点,它是一种灵活的体系结构。多层架构还具有良好的可移植性,可以跨越不同类型的平台工作,允许用户请求在多台服务器之间进行负载均衡。

2.1.2 MIDAS技术

MIDAS是多层分布式应用程序服务包(Multi-tier-Distributed Application Service Suite)的英文缩写[3],它是Inprise公司提供的基于Windows平台的中间件产品,Borland公司从Delphi3.0开始引入MIDAS1.0。

MIDAS是Delphi用来开发多层分布式应用系统的中介透明引擎[4]。 提供容错能力的应用系统如图1所示。

图1 提供容错能力的应用系统

在客户机和服务器的连接方式上,MIDAS提供了多种通讯协议,如:Socket、COM/DCOM、CORBA等。

2.1.3 多层分布式应用程序的结构

基于DCOM和MIDAS技术的多层分布式应用程序结构如图2所示。

图2 多层分布式应用系统结构图

2.2 系统数据库设计

2.2.1 系统表结构设计

联网订房系统主要包括分店信息表、人员信息表、会员等级表、等级关联表、会员信息表、房型表、区域表、房间信息表、预订信息表、排房表、来电信息表、投诉建议表等。各实体对象之间的关系如图3所示。

图3 数据库实体对象关系图

3 联网订房系统实现

联网订房系统为了支持皮肤自定义,以及方便以后升级维护时更换皮肤,引入了第三方皮肤控件包SUIPack,在系统的数据模块(TDataModule)放一个皮肤资源连接组件(TsuiFileTheme),在系统运行时动态加载皮肤资源文件,其它页面的皮肤控件通过属性FileTheme关联到皮肤资源组件来显示皮肤文件。

3.1 会员模块实现

3.1.1 总店会员等级维护

有权限的用户登录会员模块之后,通过系统菜单“总店会员等级设置”进入等级维护页面,会员等级设置提供“等级编号”、“等级名称”两个属性,提供新增、修改、删除三种操作。新增、修改等级时判断等级编号、名称不允许重复;删除时判断等级是否已经使用(在等级关系页面关联到分店的会员等级),已启用的等级不允许删除。

删除功能的核心代码如下:

IF EXISTS(SELECT 1 FROM BL_TBL_GradeRelateSet WHERE GradeID = @GradeID)

BEGIN

SET @ErrorCode = -1

SET @ErrorMessage = '该会员等级已经使用,不能删除!'

RETURN @ErrorCode

END

DELETE FROM BL_TBL_MemberGrade WHERE GradeID = @GradeID

SET @ErrorCode = @@Error

IF @ErrorCode <> 0

SET @ErrorMessage = '删除表[BL_TBL_MemberGrade]失败。'

有权限的用户登录会员模块之后,通过系统菜单“会员等级关联”进入等级关联页面。页面分为条件查询区域、数据显示区域、编辑区域三个区域,可供编辑的属性有“总店会员等级”、“分店名称”、“分店会员等级”,每个分店会员等级有且仅能对应一个总店会员等级,每个总店会员等级在某一分店有且仅能对应一个分店会员等级。页面切换分店名称时,实时刷新该分店的会员等级。

修改功能的核心代码如下:

UPDATE BL_TBL_GradeRelateSet

SETGradeID = @GradeID,

OtherShopNo = @OtherShopNo,

OtherGradeID = @OtherGradeID

WHEREGradeRelateSetID = @GradeRelateSetID

SET @ErrorCode = @@ERROR

IF @ErrorCode <> 0

SET @ErrorMessage = '修改会员等级关联失败'

3.1.2 会员信息维护

有权限的用户登录会员模块之后,通过系统菜单“会员信息设置”进入会员信息维护页面。页面分为条件查询区域、数据显示区域、操作按钮区域。考虑到会员数据量会比较大,加载会员数据会比较慢,所以进入页面默认情况下不显示会员数据,由操作人员选择查询条件后点击查询按钮再显示数据。查询条件尽可能丰富,方便使用者能够快速定位到想要的会员数据。操作区域提供信息修改、挂失/取消挂失、补卡查询、导出Excel四个功能,信息修改和补卡查询进入二级页面操作,挂失、导出Excel直接执行代码,双击会员信息进入会员详情/变更日志查询页面。导出Excel的功能需要单独授权,因为会员数据对于企业来说机密系数相对较高,不允许轻易就能把会员数据导出来,一般的客服人员是不会有导出Excel的权限的,需要用到导出功能时可申请业务主管进行业务授权。

挂失功能的部分代码如下:

UPDATE BL_TBL_AllCustomer

SET--把状态置为3(挂失状态)

[Status] = 3,

--把记录版本加1,让会员同步模块可以把该会员信息分发到各门店

UpdateVersion = ISNULL(UpdateVersion,0)+1,

--记录最后更新门店和更新时间

LastUpdateShop = '99',

LastUpdateDateTime = GETDATE()

WHEREHeadMemberID = @HeadMemberID

SET @ErrorCode = @@ERROR

IF @ErrorCode <> 0

BEGIN

SET @ErrorMessage = '挂失会员失败'

ROLLBACK TRAN Tran_MemberLost

RETURN @ErrorCode

END

3.2 订房模块实现

3.2.1 来电管理

来电管理作为整个联网订房系统最核心的业务,把这个功能嵌在订房模块的主界面,有权限的用户登录系统后就直接显示这个页面。

来电管理页面划分成四个区域:左边区域显示当前来电信息,显示来电号码、客人姓名、会员生日等基本信息,以及预约次数、取消次数、失约率、消费金额、消费次数、单均消费等统计数据,突出显示会员生日、失约率、单均消费这三个重要信息,方便客服人员开展个性化服务;中间区域显示今日来电记录,用颜色区分未接来电和留言来电,提醒客服人员回拨未接来电、收听留言信息;右边上半部分显示当前来电号码的历史来电信息;右边下半部分显示当前来电会员的历史消费情况和预订情况。

来电管理页面如图4所示。

图4 来电管理

通过在来电管理页面放置一个时钟控件(TTimer)调用话机产商提供的动态库接口来获到话机状态,判断来电事件,根据不同的话机状态进行相应的处理。

3.2.2 房间预订

有权限的用户登录订房模块之后才能使用这个功能,它可以通过来电管理界面进入,也可以从系统菜单的“房间预订”进入。客服人员需要先跟来电客人确定将要预订门店、预抵日期、时间,根据这三个信息确定是否还有房间可以接受预订,如果可以则进入预订页面。预订页面的客人基本信息自动从来电页面读取,客服人员选择完房间类型之后即可完成预订,也可根据实际需要填写其它信息提交预订,预订成功后自动生成预订短信发送到客人手机上。

预订信息合法性校验的部分代码如下:

if Trim(edt_GuestName.Text) = '' then

begin

Pub_ShowMessage('客人姓名不能为空,请输入!', 1);

if edt_GuestName.CanFocus then

edt_GuestName.SetFocus;

Exit;

end;

if Trim(edt_TelNo.Text) = '' then

begin Pub_ShowMessage('联系电话不能为空,请输入!', 1);

if edt_TelNo.CanFocus then

edt_TelNo.SetFocus;

Exit;

end;

3.2.3 投诉建议

有权限的用户登录订房模块之后,通过系统菜单“投诉建议”进入投诉建议维护页面。第一个页面显示历史数据信息,分为条件查询区域和数据显示区域,在数据显示区域选中一条记录后,在表格下方显示出该记录的投诉或建议内容以及回复内容,通过右边的操作按钮可以进入下一层操作页面(如:登记、修改、回复)。中间的投诉建议数据显示列表用红色背景高亮显示需要回复且未回复的记录,以提醒客服人员及时进行跟进。

3.3 数据分析模块实现

3.3.1 客户分析

有权限的用户登录数据分析模块之后,从系统菜单“客户分析”进入。客户分析页面包含三个功能:消费分析、活跃度分析、分布分析。

①消费分析:统计每个会员的充值情况、消费情况、卡余额、消费次数等。页面分为数据显示区域和操作区域,通过“查询条件”按钮进入二级页面选择查询条件;提供打印、导出、查看明细等功能,并且可以按会员卡号、会员等级进行过滤。②活跃度分析:统计三种类型的会员(活跃会员、沉默会员、僵尸会员)。六个月以内消费次数最多的为活跃会员;六个月以内没有消费,但以前的消费记录的会员为沉默会员;建卡以来都没有消费记录的为僵尸会员。每一类会员用一种颜色区分开来,页面可以选择统计某一类别的会员以及显示会员数量,通过点击列头可以按该列的值进行排序。

③会员分布分析:统计会员的分布情况,分为地区分布、年龄分布、性别分布三种统计方式,以饼图的形式体现。

会员分布分析页面如图5所示。

图5 分布分析

图6时段分布

3.3.3 来电分析

有权限的用户登录数据分析模块之后,从系统菜单“来电分析”进入。来电分析页面包含:时段分布、区域分布、来电响应、满意度分析。

①时段分布:按日期范围统计一天24小时的来电分布情况,以走势图的形式展现。

时段分布页面如图6所示。

②区域分布:按日期范围统计来电区域的分布情况,以饼图的形式展现。

③来电响应:统计每一通来电从第一声响铃开始到接听的时间间隔,以数据表格的形式展现。

④来电满意度分析:根据每一通来电结束时的满意度调查,分析满意度分布情况,以饼图的形式展现,双击饼图可进入查看明细。

3.4 门店排房模块实现

预订排房模块包含预订信息查询、预订信息修改/撤订、等候、叫号、排房等子功能。排房短信也是设计为后台功能,由排房功能触发执行。排房成功后系统自动按预订电话号码生成排房短信(短信的格式模板可以在参数设置模块进行编辑)保存到短信队列表中,由短信服务通过短信网关或者短信猫发送到客人手机上。

4 联网订房系统测试

经过几轮的测试、修改以及和其它业务模块的联调,本系统已经达到预期目标,充分完成设定的需求功能,业务功能也都能满足市场的需求,达到发布版本的基本要求。当然,在投放市场之后,由于使用环境、操作习惯等原因,还会产生各种各样的BUG,在后期的系统维护阶段及时跟进完善。

5 结 论

主要研究了COM/DCOM和MIDAS技术在分布式联网订房系统的设计和实现阶段地应用,详细介绍了该系统的功能结构、架构设计和实现过程。由于这种模型好扩展、易维护、比其他系统的效率大大提高,并且成本较低,更加安全可靠。相信这个系统将对传统订房业务的发展和变革起到积极的推动促进作用,并对其它项目的设计、开发也将有一定的借鉴意义。当然还是存在一些系统功能需要更进一步的改进和完善,接下来工作的重点是优化系统功能、加强系统安全性、提高系统执行效率,当今社会是大数据时代,如何对数据进行更加有效的挖掘、分析,最大限度的发挥数据自身的价值,为企业运营、发展将提供合理性的建议。

[1] 陈耿,文登敏.一个基于MIDAS的分布式数据库软件的实现.计算机应用,2002,22(9):71-73.

[2] 王恢,徐重阳,蔷薇,等.基于C/S结构的网络计算模型[J].计算机应用研究,2000,17(9):51-53.

[3] 徐新华.Delphi5高级编程--Database与MIDAS编程[M].人民邮电出版社,2000.04,32-34.

[4] 李维.Delphi 5.X ADO.MTS.COM+高级程序设计篇.机械工业出版社,2000,13(2):15-18.

[5] 王能斌.数据库系统.电子工业版本社,1995,14(3):45-47.

[6] 左彦忠,盛翊智.基于MIDAS分布式多层系统执行效率的研究.计算机应用,2001,(5):85.

猜你喜欢
页面门店会员
刷新生活的页面
门店零售与定制集成,孰重孰轻
答案
德国最成功的洗车门店——Mr.Wash
会员之窗
会员之窗
会员之窗
让Word同时拥有横向页和纵向页
从优秀到卓越门店需做好12项修炼(上)
门店升级 内涵比颜值重要吗?