1、闽江学院本科毕业论文 (设计)题 目 基于微信公众平台 Web 应用-微信机器人的设计与实现 学生姓名 彭秋源 学 号 5127101361 系 别 软件学院 年 级 2012 专 业 软件工程 指导教师 肖建飞 职 称 讲师 完成日期 2014.4.25 闽江学院毕业论文(设计)诚信声明书本人郑重声明:兹提交的毕业论文(设计) 基于微信公众平台的 Web 应用-微信机器人的设计与实现 ,是本人在指导老师 肖建飞 的指导下独立研究、撰写的成果;论文(设计)未剽窃、抄袭他人的学术观点、思想和成果,未篡改研究数据,论文(设计)中所引用的文字、研究成果均已在论文(设计)中以明确的方式标明;在毕业论文
2、(设计)工作过程中,本人恪守学术规范,遵守学校有关规定,依法享有和承担由此论文(设计)产生的权利和责任。声明人(签名):2014 年 月 日I摘 要微信智能机器人是运行于微信公众平台并基于 HTML5 的 WEB APP(网页第三方程序) , “微信公众号 APP 页社会化 CRM 系统+基于 SpringMVC3.0 Restful”的模式开发将成为未来个人 app 的趋势。在此设计主要是基于SpringMVC3.0 Restful 为机器人的 “智能回复”以及 “微餐厅”模块实现信息化处理提供方案,本文从课题背景意义、SpringMVC3.0 Restful 介绍、系统需求分析、概要设计和
3、详细设计对整个系统的开发进行了描述。本系统采用 B/S 结构,以SpringMVC3.0 Restful+ Hibernate +Linux 服务器作为基础,使用 MySQL 数据库及Hibernate 、nginx 负载均衡、jetty 服务器等技术进行开发。应用包含“智能机器人”基本信息的回复,以及“ 微餐厅 ”的点菜,查询,更新,结账,主页,在线预订,购物车,关于餐厅,我的订单,退出等功能。系统使用方面灵活,实现了基本点餐流程中的功能。关键词:SpringMVC3.0 Restful;Hibernate ;nginx 负载均衡;jetty 服务器;maven 项目管理工具IIAbstra
4、ctMicroMessenger intelligent robot is running on MicroMessenger public platform and HTML5-based WEB APP (web third party programs), “ MicroMessenger public number + APP page + Social CRM system + SpringMVC3.0 Restful based“ model development will become a personal app future trends . In this design
5、is mainly based on SpringMVC3.0 Restful robot “smart reply“ and “micro-restaurant“ module provides information processing solutions, this article from the background task significance, SpringMVC3.0 Restful introduction, system requirements analysis, preliminary design and detailed on the development
6、 of the design of the system described. The system uses B / S structure to SpringMVC3.0 Restful + Hibernate + Linux server as a basis for the use of the MySQL database and Hibernate, nginx load balancing, jetty server technology development. Applications include “smart robot“ restore basic informati
7、on, as well as “micro-restaurant“ a la carte, query, update, checkout, home, online booking, shopping cart, on the restaurant, my order, exit and other functions. The use of a flexible system to achieve the basic ordering process functions.Key words: Automatic reply; smart restaurant; SpringMVC3.0 R
8、estful; Hibernate; nginx load balancing; jetty server; maven project management toolsIII目 录1 绪论 .11.1 课题背景 .11.2 课题意义 .11.3 需求分析 .11.3.1 功能性需求分析 .11.3.2 性能需求分析 .22 相关技术 .42.1 平台总体设计原则 .42.1.1 Spring 框架介绍 .42.1.2 后台设计 .52.2 开发环境的介绍 .92.2.1 部署环境 .93 项目的需求分析 .123.1 研究的目的及内容 .123.2 消息智能回复 .143.3 微餐厅智能管理
9、系统 .144 数据库设 计 .164.1 数据库描述 .164.2 静态数据 .165 系统详细 设计 .215.1 微信公众平台后台模块设计 .215.1.1 服务端接受客户 http request 请求时序图 .215.2 客户端相关模块设计 .215.2.1 主菜单时序图 .215.2.2 用户在线预订时序图 .225.2.3 用户查询购物车 .225.2.4 获取关于餐厅信息 .235.2.5 我的订单 .23IV6 系统运行 与实现 .256.1 微信公众平台客户端 .256.1.1 用户使用登入主页面显示 .256.1.2 主菜单 .256.1.3 在线预订 .276.1.4
10、购物车部分 .286.1.5 关于餐厅部分 .286.1.6 我的订单 .296.2 微信公众平台服务端 .296.2.1 点击微餐厅的信息管理界 面 .296.2.2 后台微餐厅分类管理 .306.2.3 后台微餐厅菜单管理 .306.2.4 后台微餐厅添加菜单管理 .306.2.5 后台微餐厅添加订单管理 .316.2.6 后台微餐厅添加订单详情 .317 总 结 .33致 谢 .34参考文献 .3511 绪论1.1 课题背景App 为主的移动互联网时代正在被崛起的微信公众平台代替,微信公众账号慢慢地挑战移动 App 地位。微信的海内外用户已近超过了 3 亿,这个数字也在不断的增加,所以它
11、也成为移动互联网时代新的宝藏。 从 2011 年腾讯公司推出微信公众平台的首个版本到现在海内外用户突破 3 亿,两年不到的时间微信就做到了。再次同时,现在期待已久的微信公众平台也在 2012 年上线了,时至今日各种围绕着微信公众平台的内应用和服务发展迅速,平台的生态圈也已经具有了很大哦规模。新的社会化媒体如微信、易信、weibo 给传统获取信息的方式带来颠覆性改变。随着微信公众平台的开放和商业化建设,可以看到了越来越的资源和领域之间进行着生态链的整合。对于微信公众平台来说自媒体和企业应用市场将是今后发展的一个重要方向,越来越多的创新性企业进入微信公众平台。1.2 课题意义基于公众平台开发的智能
12、机器人使用开放自定义菜单功能,是用户的移动客户端和服务器之间有了更好的交互。现在看来,通过开放出来的接口和自定义菜单的功能开放,微信公众帐号已经慢慢地有了 APP 的雏形。随着微信公众平台的功能不断开放,评论、好友关联关系接口等等,将得到一个更加丰富和完善的微信意识形态。在管理微信公众平台的时候会体会到他的短周期、低成本和简单方便的操作,但是如果从零开始去开发一个移动 APP,首先要考虑的就是移动应用需要覆盖安卓和苹果这个两个平台,开发成本就不言而喻了,加上无底洞的推广成本,微信公众平台的优势就体现的淋漓尽致了,比如简单的形态,庞大的用户基数,可以非常有效地、低成本地迅速找到目标受众。1.3
13、需求分析1.3.1 功能性需求分析设计是通过软件开发和软件工程的理论和方法,并结合学习专家系统知识,去完成基于微信公众平台开发的专家系统智能机器人,此专家系统注重解决的问题是用户通过系统提示输入相关信息得到需要的结果,在这里后台在使用专家系2统的设计思想的时候,着重研究了通过用户的具体操作步骤,返回更加精确的信息,提高专家系统设计软件在移动互联网时代,给用户提供的全新的体验。1、智能回复部分个人信息、学院信息,用户可以根据服务器返回的提示信息,进行对象的动作,获取相应的消息2、微餐厅部分1) 点菜,查询,更新,结账,主页,在线预订,购物车,关于餐厅,我的订单,退出2) 用户点击微餐厅后,显示主
14、菜单页面,用户可以查看菜单3) 用户可以进入在线预订页面填写订单信息进行用餐的在线预订4) 用户可以在购物车中找到刚刚在线预订的信息,并且选择支付5) 用户可以通过点击关于餐厅,查看餐厅的基本信息6) 用户可以通过点击客户端上的我的订单,进行查看订单的基本信息1.3.2 性能需求分析通常条件下,大数据量将使平台性能下降,系统响应速度变慢。可以通过以下几种方式提高平台的整体性能。(一) 动静分离与数据缓存通常情况下网站的性能往往会影响访问数据库的性能,导致数据的加载慢用户体验大幅的下降,而用户在访问移动互联网时,超过九成的用户操作只是为了读取信息。因此在做性能优化的时候可以考虑将内容固定的页面生
15、成静态 HTML页面。当用户需要访问时,可以直接读取保存的 HTML 静态文件,不必要和数据库进行交互。这样,就可以大幅度提高网站的性能。网页、图片、文件等,可以去选择 CDN 内容分发网络的方式进行发布,从而用户提高网站访问速度。数据的修改这里使用了 memcache,作为系统的缓存。(二) 合理规划网络环境对用网络环境的规划,通常需要根据用户量和用户的行为去进行分析,从而计算出需要的网络带宽。针对不同的用户群体,选择合理的地点。如果区域特点明显,就需要搭建镜像。(三) 使用负载均衡在这里次项目的部署在 linux 服务器上,使用了 nginx 作为负载均衡,从而达3到服务器资源的充分使用。
16、(四) 数据库通常情况下不会让前端用户的行为直接操作数据库而是在中间加上缓存cache,但是网站性能的瓶颈很大程度上就是受数据库性能的影响。数据库分表分库:在同一张表里通常需要降低数据库的 I/O 的次数来提高性能;随着数据库中数据条目的不断增加,查询的效率和性能往往会低下时,横向分表策略,可以在单个表中减少数据条目的数量。充分利用索引:建立查询索引,如图 1-1。 图 1-1 索引(五)安全性需求在移动互联网的时代,后台网站往往是暴露在互联网环境中的,安全问题面临这个非常大的挑战大。此系统使用了 spring security 框架 以及身份验证oauth,来加强系统的服务器、数据传输、数据
17、存储等方面的访问安全性。42 相关技术2.1 平台总体设计原则* 代码的重用:Spring Framework 最为核心的设计目标就是实现代码的复用,可以使编码成本大大降低,从而避免了重复的劳动。* 层次划分明确:在整个框架中每一个模块的设计相互独立,降低代码之间的耦合性。部件细化,高类聚、低耦合。* 高效、安全、延展性强2.1.1 Spring 框架介绍Spring 是一个优秀的开源框架,致力于解决企业级别应用程序的开发复杂性而创建的框架。其层次分明的分层架构就是 spring 框架的主要优势之一,spring的分层架构随意使用任意一个组件,同时为 javaEE 企业级应用程序的开发提供集成的框架。Spring 框架是一个用 7 个定义完成的模块组成的分层架构。基本模块构建在Spring Core 之上,Spring Core 又定义了创建、配置和管理 bean 如图 2-1 所示:图 2-1 Spring 系统框架核心容器:核心容器提供 Spring 系统框架的功能都是由 Spring Core 提供的。BeanFactory 是 Spring Core 的主要组件,主要由工厂模式的实现。应用程序的依