NANCHANG UNIVERSITY
题 目: 晚餐预定系统
学 院: 软 件 学 院

专 业: 软 件 工 程
班 级:
完成人数: 1 人
成 员:
起讫日期:
任课西席: 职称: 副教授
完成韶光:
填表日期: 年 月 日
一、开拓环境的搭建及碰着的紧张问题
1.开拓环境
根据个人技能背景,选择开拓环境如下:
将Demo支配为B/S架构的运用;利用集成软件包搭建开拓环境:PHP+Apache+MySQL;借助NuSOAP库实现WSDL做事的支配;2.紧张问题自己对付amp组合建站流程已经比较熟习,借助集成软件包xampp或者wamp即可轻松搭建出开拓环境。韶光和精力紧张耗费在NuSOAP库上,大概花了半天韶光用于上手。二、数据库与做事端设计数据库设计数据库共设计两个表:餐桌类凑集表(tableset):tid, 餐桌容量,餐桌数目,餐桌可扩充人数,描述预约表(reservation):rid,称谓,手机号,餐桌类型,人数,就餐日期,订餐韶光解释:tableset表是各种餐桌类别的凑集,存放各种餐桌的属性,非常方便餐桌的集中管理;reservation表是用户预约的凑集,所有的预约在该表中被动态地管理,对付预约的集中管理供应很大的便利;用户在订餐时,首先根据就餐人数确定餐桌类型,结合就餐日期筛选“预约”表,得到空余的餐桌数目,从而安排新的预约。而“取消订餐”,则可以直接在“预约”表中操作。以上设计对付餐桌和预约的掩护都具有很强的可扩展性。初始数据初始共往tableset表中插入3条数据记录:
10张座位为4的餐桌;
8张座位为8的餐桌(可扩充2个座位);
2张座位为12的餐桌(可扩充3个座位)
2. 紧张做事:
availableDinnerDate——获取有效订餐日期参数:(无)返回值:有效订餐日期与本日的间隔天数(xsd:int)checkContact——检讨联系办法格式参数:联系办法(str:xsd:string)返回值:格式是否精确,取1或0(xsd:int)解释:只支持海内的手机号码格式availableTable——根据用户给出的信息查询可用餐桌参数:日期(date xsd:int),就餐人数(total xsd:int)返回值:包含新预定id以及查询状态的组合字串(xsd:string)addContact——补充联系办法信息参数:预定id(rid xsd:int),称谓(title xsd:string),联系办法(contact xsd:string)返回值:状态字串(xsd:string)cancelReservation——取消一条预定参数:预定id(rid xsd:int)返回值:状态字串(xsd:string)inquiryReservation——查询某用户的预定参数:联系办法contact(xsd:string)返回值:一组预订记录(tns:Reservation)解释:返回值为自定义的繁芜类型deleteReservation——删除预定参数:要删除的预定id组合rids(xsd:string)返回值:操作状态(xsd:int)解释:可一次删除多条预定三. 做事支配与客户端调用Demo的做事端最初由PHP脚本形式呈现,通过调用NuSOAP库将其封装并发布成WSDL。Demo的客户端采取网页的办法呈现,借用html/css/js技能进行设计,供应“订餐”和“取消订餐”等功能的前台操作界面。用户的要求通过ajax通报给后台上的一个中转做事脚本hub,该做事根据要求类型调用相应的web service,并将做事调用结果通报给前台。为了更加真实的仿照web service事情过程,本Demo将“DinnerB运用”和“Web Service做事中央”开拓成两个独立的运用,并分别支配到不同的机器上,紧张示意图如下:图1 运用架构简单示意图四、运行结果截图和笔墨解释
客户端上岸在浏览器中输入DinnerB运用的网址http://127.0.0.1/dinnerb,来到订餐前台,在主体区域的左侧可以找到紧张的功能菜单:订餐点击“我要订餐”开始订餐的第一步(共两步),根据提示输入必要信息(带的项目):就餐日期、就餐人数以及验证码;验证无误后提交,中转做事会网络参数(就餐日期和人数),调用availableTable做事,如果有空余的餐桌,该做事会为用户创建一条“临时预约记录”,并返回该记录id。中转做事首先注册session,存放id,然后返回处理成功信息,并关照前台跳转至下一步页面“填写联系办法”,如图3。若因各种缘故原由导致无法成功订餐(参数不合法或者没有空余餐桌),前台都将提示相应的“订餐失落败”信息,如图4中由于就餐人数不符合系统哀求导致订餐失落败;图2 DinnerB首页
须要解释的是,“就餐日期”中的日期选项是页面加载期间调用availableDinnerDate打算出的精确可订餐日期,这样掌握了用户的可出错范围。图3 有空余座位 图4 订餐失落败
第二步,用户要在规定韶光内填写其联系信息(称谓和联系办法,个中称谓选填),点提交,中转做事调用addContact为之前建立的临时记录补充客户联系信息,成功后返回用户编号(图5),用户在就餐时供应该编号,即可查询到预定的餐桌号(这是设想,本Demo暂时没添加就餐运用)。如因各种缘故原由导致订餐失落败(超时或者联系办法禁绝确),全体订餐过程都将停滞,临时记录也会被删除,如图6和图7。图5 订餐成功
图6 联系信息禁绝确
图7 填写信息超时
解释:由于订餐过程分两步进行,为了防止用户在两步之间人为地延误过永劫光,占用餐桌资源,因此设计出“临时记录”+“有效韶光”机制,超时后,系统会自动终止订餐过程,并删除临时记录。3. 取消订餐
A.点击“取消订餐”,填写订餐时供应的联系办法,提交(如图8)。中转做事调用inquiryReservation查询该用户所有的预约,成功的话,前台会列出该用户所有成功的预约,如图9;
B. 用户选择要取消的订餐选项(可多选),提交后,中转做事会调用deleteReservation删除对应的预约记录,取消订餐成功。为了安全考虑,该页面具有一次性属性,切换菜单或者删除不堪利都无法重新回到该页面。
图8 取消订餐——填写联系办法
图8 订餐记录 图9 选择要取消的订餐记录
五、总结
WSDL为web做事供应了详细的接口解释,实现了做事的可阅读性,方便了做事的传播。在此之前,自己一贯是一个web站点开拓者,自己写做事自己调用,无法体会做事传播中的问题。
大作业给了一个加深WSDL理解的机会,由于自己在web方面的技能积累,做起来可谓是轻松加愉快。于是重点都放在了对WSDL详细实现的学习上。非常要感谢古人做的事情,NuSOAP库使得自己不用再担心去操作WSDL措辞,而可以坐等自己的做事被翻译成WSDL接口文件。