天天看点

大型租房网摘要1  绪论4  系统设计7  结论谢  辞参考文献

本文为本人原创文章,未经本人允许不得转载。项目源码如有需要可以加博主qq:3063715971。本人论文未经过本人同意不得转载。该论文已经在期刊上面发表,希望读者尊重作者版权。

摘要

在我国城市化大发展的时代,大多数人远离家乡,在大城市工作,所以租房成为他们最主要的选择。随着租房需求不断增加和信息自动处理技术的日益发展,人们希望能够通过移动互联网,足不出户便可以线上解决自己的住房需求。

项目使用主流的开发技术,希望以此开发出满足广大房客需求的房屋中介租赁管理系统,整个项目运行在阿里云服务器上,供房客全网访问。项目使用Spring MVC Restful编码风格,Solr海量搜索,支付宝扫码支付,多种互动模式,百度地图定位房屋,身份证图片识别等技术。通过这些高新技术,来提升系统的性能,使得房客租房有着极佳的租房体验。本系统使用Maven将系统的所需依赖包放在Maven私服仓库中,并将项目交给Github托管。

当前系统已经实现全网访问,能够实现广西多地的线上租房活动,拥有强大的支付功能,多种聊天互动模式。系统能够全方面的展现房屋信息,实现在地图上房屋的定位,罗列房屋内部实施,以及周围环境。房客可以与房东协商生成合同,管理员能够管理合同和上传物业信息。

在本系统中,房客可以与房东较好的完成交易活动,能够有效地保障双方的利益。系统经过较为全面测试后,能够满足房客的线上租房需求。

关键字:房屋租赁管理;Restful;在线支付;在线聊天;房屋定位;云服务器

1  绪论

1.1 课题背景和意义

在当今的中国大部分都远离家乡,在外工作,所以房屋租赁市场巨大,在信息时代,所有信息基本通过信息管理系统来负责管理,所以房屋中介租赁管理系统需求巨大,但是市面上的房屋中介租赁管理系统,并未占据统治地位,即没有完全将市场垄断。互联网上急需一个功能齐全的、全国性的、通用的房屋中介租赁管理系统来对房屋租赁信息进行管理。

在我国今年召开的中央经济会议中,已经明确的对住房进行了定位:房子不是用来抄的,而是用来住的,一个月前,海南政府对数千亿炒房资金关门打狗,全岛限购。国务院最近出台的多项关于促进租房市场发展的相关政策,新政策鼓励长租3年以上,通过这些事例,我们可以看到未来中国租房市场将会得到巨大发展,中央政府将极力倡导人民租房。 在“结婚必须有房有车”的传统观念下,由于炒房带来的高房价,房奴们不堪重负,新组建的家庭的经济是极为脆弱的,任何一点困难就可能压倒他们,甚至可能引发类似于中兴某研发部主管的跳楼事件,导致家毁人亡。所以政府大力鼓励租房是非常正确的决定,有利于房地产的稳定,不会发生经济泡沫。

租房活动大多都是在网上进行的,房客可以足不出户,便可以找到符合自己心意的房子,租房网站内房屋众多,有各种房屋可以提供给房客,而且房客不拍被房东“宰”,平台与房东之间是存在协议的,房东不能欺瞒客户,不能随意乱收费,不得在合同期以任何理由赶走客户台。房客可以投诉自己的房东,如果情况属实平台会处罚房东,甚至根据合同协议去法院控诉房东的违法行为。当然平台也会根据与房客的协议,保护房东的利益。所以租房平台比传统的租房的一对一模式,更加安全。

1.2 国内外的发展现状分析

在国外并不存在像当今社会的诸多门槛,比如结婚的前提是必须有房子,有车,但是在国外年轻人大多数选择租房,不过外国的租房市场,尤其是发达国家的租房市场相对完善。当前中央政府大力倡导长租房,优化租房环境和租房市场。在国家相关政策的指导下,涌现了许多新的房屋租赁服务商,如今在百度,谷歌上能够搜索到的租房网站就有:小猪短租、365租房网、爱上租等。

当前租房有两种主要的租房模式:一种是通过租房网站,线上选择,线下看房,这种租房模式往往受那些时间相对较少的人的欢迎,这种模式称为O2O模式。还有一种就是C2C模式,就是有些房客想绕过房屋租赁中介商,直接找房东的模式,房东可以合理定价来吸引房客。

1.3 可行性分析

1.3.1技术上可行性

目前的房屋租赁中介管理系统中,大多需要采用前后端完全分离的Restful风格,房客与房东可以在线聊天,房屋的定位,房屋图片的轮播展示,查询的智能化,房客可以根据房屋位置,价位,房屋类型等查询出符合自己需求的房源。

在前后端完全分离中,我们可以使用阿里的开源项目fastjson对视图进行渲染,使用SpringMVC的Restful模式。当前JavaWeb技术已经相对成熟,我们可以使用Solr、Lucene、ElasticSearch等全文搜索技术,实现千万级的海量搜索。对搜索的关键词进行分词查询,采用部分编译原理中语法以及词法分析技术[15],以实现查询的智能化。

1.3.2经济上可行性

完成一个租房网站,需要一个云服务器,一个域名,接入支付宝所需费用。所以开发成本并不是很大,开发成本是普通大学生可以接受的范围。所以我们开发这样一个系统,在投入和产出方面是我们可以接受的。

1.3.3社会可行性分析

社会环境:主要观看的是市场与政策。

在市场方面:

国家目前大力推导租房,出台了许多促进租房业发展的相关政策。此外由于目前房价太贵,而且大多数年轻人远离家乡,在大城市里面工作,大城市里面的房价,不是一般的白领可以消费得起的,所有当前国内的房屋租赁市场巨大。目前互联网得到了大力发展,同时也促进线上服务业的发展,现在的租房交易活动大多在网上展开,就连支付都在网上完成。

在政策方面:

国家目前鼓励长租,禁止民众炒房,国务院出台关于促进租房市场发展的相关政策,鼓励房屋长租。

1.4 论文的工作与意义

本文的主要目的就是介绍如何使用高新技术开发出满足广大房客和房屋中介公司需求的房屋中介租赁系统。通过运用软件工程与软件项目管理的知识对整个系统开发进行阐述,从课题的背景开始介绍,介绍了系统整个开发过程。读者通过阅读本文便可以了解系统的如何通过需求分析,系统设计等一步步将项目开发完毕。

本系统的软件过程模型为演化模型,由于不能一次性完整的定义需求,后面自己可能会添加别的功能模块,返工在所难免,所以选择演化模型作为本次开发的过程模型。

文中探讨了如何在项目中接入蚂蚁金服,使得项目可以实现在线支付的功能,如何在阿里云Centos8.2环境搭建Maven私服[11],如何在Linux环境下部署Maven项目。此外,本文还介绍了Nginx+Tomcat反向代理技术,防止将Tomcat直接暴露在外面。通过这一系列的[3]。

3  系统运行环境

3.1系统运行环境

3.1.1系统硬件需求

该系统的硬件环境为:

CPU:1.5GHZ以上

内存:2G以上

带宽:2MB以上

3.1.2软件开发环境

(1)操作系统:Win7/Win8/Win10,

(2)数据库管理系统:MySQL5.8.12

(3)运行环境:阿里云Ubuntu16或Centos8.2

(4)开发软件:MyEclipse2014,Tomcat8.5,JDK8,Winscp,Putty,Navicat Premium

3.1.3环境说明

由于项目使用项目了spring-websoke5.2.7.jar必须部署在JDK8以上版本和Tomcat8.5以上版本,项目是放在Linux云服务器上面运行,所以需要定时对MySQL进行增量备份跟完整备份[13]。项目所需所有依赖包都放在云服务器的Maven私服仓库中,我们只需要在pom.xml进行配置即可,为了方便获取所需依赖包,项目将Maven的中央仓库改为阿里镜像,这样会比从外国中央仓库中获取要快得多。项目所需图片不是储存在数据库,数据库只是单纯的保存图片名称。所需图片都是通过配置Tomcat虚拟路径来获取。

此外,我们是通过Winscp来控制阿里云服务器的文件系统,使用Putty.exe来操作服务器的终端,通过Putty我们可以输入shell指令来操作我们的服务器[12],通过Winscp我们可以上传本地文件到服务器,以及对服务器的文件进行增加删除移动等。

3.2 本系统的技术创新

3.2.1在线支付技术

首先进行蚂蚁金服开放平台官网,使用支付宝账号登录,然后注册成为开发者,根据官网的提示信息,获得开发所需的开放平台秘钥:项目所需的APPID,RSA秘钥与RSA公钥,如图3.1所示。

大型租房网摘要1  绪论4  系统设计7  结论谢  辞参考文献

图3.1 获取账户秘钥

大型租房网摘要1  绪论4  系统设计7  结论谢  辞参考文献

其次在开发者中心,进入研发服务,研发服务是沙箱环境的测试服务,在未放置到生产环境之前,网站的所有支付业务,都是在沙箱里面进行测试,沙箱环境每天12点都会进行维护[16]。

在沙箱页面,我们需要查看我们的沙箱账号,这两个账号,我们在沙箱环境下测试支付功能的时候时候需要使用到,测试之前我们得在该页面下载沙箱,然后使用下面两个账号进行登录。图3.2和图3.3分别显示的是商家账号跟买家账号。

图3.2 商家账号

大型租房网摘要1  绪论4  系统设计7  结论谢  辞参考文献

图3.3 卖家账号

在所有基本功能完成之后,我们就可以将项目接入支付宝的接口了,首先查看官网文档,了解支付接口AlipayClient,验签接口AlipaySignature(验证RSA秘钥), AlipayTradeCloseRequest接口[16],根据接口的所需配置,便可以将项目接入支付宝,具体接入代码,可以访问本人在github上面的账号。

3.2.2百度地图定位技术

首先在百度地图开发者平台进行注册成为开发者,获取开发的key,其次是通过百度官网上面的文档与demo进行开发,这样便可以将访问的位置显示在百度地图上,使得房客能够清楚的看到房屋所在的位置。

3.2.3聊天互动功能

(1)websocket在线聊天技术,这是网页聊天的主要使用技术,本系统使用spring-websocket4.3.7实现在线聊天功能,可以实现房客与房东之间实时的聊天互动,在聊天功能中我们提供配置WebSocketHandler,WebSocketHandler这个两个接口便可以实现在线的一对一聊天[7],两者根据握手定理实现消息通信。

(2)调用QQ技术

在腾讯开发者平台,注册成为腾讯QQ的开发,在开发者平台的官网上,我们找到相应的文档,找到电脑网站接入QQ的接口,我们只有在配置时将uin参数改为动态获取,便可以在点击与房东QQ聊天时,启动与房东聊天的QQ窗口,这样便达到与房东QQ聊天的效果。图3.4所示的是调用QQ接口界面。

图3.4 调用QQ功能

3.2.4阿里云部署网站

云服务器类似于一台连网的电脑,联网的电脑可以访问上面部署的网站。由于本人购买的是一台CentOS裸机,所以需要对系统进行配置,需要安装JDK1.8,MySQL5.7,Tomcat 8x,Nginx。在这里我给大家介绍一种快速配置完环境的方法,不必痛苦的去配置环境。使用OnsonStack一键安装工具,便可以快速安装好环境。在安装之后使用 vhost.h为本项目自动生成对应根目录。War上传到上传到对应网站根目录,这样网站变部署完毕了[10]。

3.2.5solr搜索技术

目前Java主流的搜索服务器为Solr,ElasticSearch,它们都是基于luncen的全文检索服务器,能够实现海量搜索,是搜索引擎的核心技术[15]。

solr的安装,首先将solr-4.20.3/example/webapps下的solr.war解压到Tomcat8x的webappps下,解压之后将war包删除。之后便是添加solr扩展服务包到lib目录下。其次就是配置solrcore跟solrhome,solrhome包含多个solrcore,它是solr服务运行的主目录[14],solrhome跟含有solr的Tomcat服务器通常放在同一目录下。solrcore目录里面了一个solr实例运行时所需要的配置文件和数据文件。每个solrcore可以单独提供索引服务。

3.2.6springmvc的restful编码风格

由于MVC编码风格,并未实现前后端的完全分离,导致将自己的后端接口暴露出来,而且前后端不能完全独立开发。为了使数据展现过程变得更加直接,也为了提供更好的用户体验,开发者对MVC模式进行了一些改进,首先前端页面发送异步请求给控制器,控制器将JSON数据返回给前端页面,AJAX将JSON数据进行渲染。这样变可以实现代码的前后端完全分离。在这里我们使用最好的JSON生成器和转换器fastjson进行List容器与JSON的转换[11]。表3.1为Restful编码与传统编码的区别。

表3.1 Restful编码与传统编码

安全性 扩展性
Restul风格

请求路径是不定的,不带参数

比如查询一个房屋的路径为:

getOneHouse/h0001

前后端分离,可以实现不同项目,不同语言之间数据交互。后端只需提供前端所需的的JSON即可,并告诉前端自己的路径和端口
传统编码风格 请求路径是固定的,请求携带参数:getOneHouse?house_id=h0001 不能实现完全分离

3.2.7Maven与github管理项目

将系统的所需的各种依赖包放在阿里云服务器的Maven私服仓库中,这样便可以所有项目共享依赖包。使用github进行项目的管理,将项目代码通过eclipse或者github客户端上传至github。

3.2.8身份证图片识别

注册模块需要对用户的身份进行验证,用户需要上传身份证照片的前后面,系统会提取身份证照片上面的信息,然后利用face++的接口,对身份证信息进行审核,判断身份证是否正确。

3.2.9pc端与移动端

系统除了PC端的网站之外,还有移动端,移动端使用Webapp跟原生安卓app结合,将Webapp嵌入在安卓app当中,使得系统能够像安卓客户端一样,让客户有着良好的体验。

4  系统设计

4.1系统的功能概要

(1)房屋信息智能查询:用户输入房屋关键词进行处查询。

(2)房屋信息管理:房东可以对本人的房屋进行增删改,中介公司管理员也可以对房屋信息进行审核。

(3)在线聊天:系统的在线聊天,直接启动QQ,与指定的房东聊天。

(4)在线支付:在蚂蚁金服开放平台进行申请,提交审核资料,获得在实际生产环境下,进行在线支付的权限。并熟悉Java语言接入支付宝的。

(5)房屋预定:房客支付后,可以预定处于空闲状态的房屋。

(6)合同管理:房客在预定房屋之后,通过系统本身的聊天或者留言功能,与房东协商合同事宜,在双方协商一致的前提生成合同,同时中介公司的管理员有权对合同信息进行管理。

(7)留言管理:房客和房东之间可以相互留言,留言保存在后端。

(8)数据统计:网站的访问量,省内各市的房屋分布,价格趋势,用户数量及分布,最佳房屋等。

(9)房屋信息管理:房东或系统管理员对房屋信息进行管理。

(10)房客信息管理:管理员对房客信息进行管理。

(11)房客指南:房客查看房客指南,了解租房应该注意的细节。

(12)房东指南:房东查看房东指南,了解出租房屋应该注意的细节。

(13)了解我们:了解租房网的发展历程,以及网站介绍。

(14)个人信息管理:本人管理自己的信息。

7  结论

7.1 已完成的功能

  以下为本项目已经实现的功能

  1. 房屋查询的查询:游客或者房客,可以输入关键字进行房屋信息的查询,关键字可以根据个人需求进行输入,比如:象山区、一室一厅、公园,押一付一等。
  2. 房屋详情显示: 显示房屋在百度地图上面的位置,房屋类型(比如一室一厅一卫一厨一阳台),房屋月租,房屋支付类型(比如押一付二),房屋内部设施(比如:空调、洗衣机、厨具、冰箱等),房屋图片,房屋内部情况,房屋交通情况。
  3. 房屋预定:房客在房屋详情界面点击房屋预定,输入预定信息,然后点击提交,便会弹出预定支付界面,支付成功之后,会显示账单,客户可以选择选择账单的下载,之后便可以在房客个人设置中查看自己预定信息。
  4. 房东审核预定信息:当房客提交预定之后,房客看到消息,就会要确定房屋是否预定给该房客,如果同意,便点击同意,房屋不在首页显示,状态改为已预定。不同意,消息回馈给客户。
  5. 房屋信息的添加:房东添加房屋信息,包括:房屋位置,图片,月租,支付类型,房屋类型,内部设施等。
  6. 合同管理:合同的查看,查看合同房东信息,查看合同房客信息,合同信息的修改,合同的删除
  7. 房东信息管理:管理员对房东信息的增删改查。
  8. 房客信息管理:管理员对房客信息的增删改查
  9. 互动交互:包含留言管理(房东与房客之间可以使用平台进行留言),在线聊天,以及调用QQ接口,启动QQ聊天。
  10. 统计报表:对房屋的浏览量,房屋的位置分布,房屋的价格趋势,用户的好友个数进行等统计,房屋交易量,最佳房屋(根据房屋评分)。
  11. 员工信息管理:管理员对中介公司的员工进行增删改查。
  12. 用户注册:对用户身份进行验证跟审核。

7.2 未完成的功能

(1)无电子凭证:电子合同的生成,生成合同的唯一标识,对电子合同盖上电子印章。此外用户支付成功后可以生成电子发票。

(2)统计不够完善:价格趋势的预定存在不确定性,用户的浏览量存在不完善,如果根据ip统计点击量,那么点击量虽然公平,但是可能数量太少,也存在着如果某个游客看的次数较多,但是通过仍然按照ip统计,那么房屋的浏览量便会一如既往。

(3)数据量不够大:尽管项目已经实习了广西多地线上租房,但是房屋记录还没有达到一定的级别。

7.3 系统的成本与质量

(1)系统的成本:

系统安卓客户端是WebApp,页面与数据都是来源于服务端,在体验感不亚于原生App的同时,减少了App的更新次数,极大的降低成本。

系统服务端是部署在云服务器中,云服务器成本相对低廉。

(2)系统的质量与效率:

采用Solr全文搜索,提高搜索效率,采用多种Mysql优化,Tomcat优化,连接池的优化,一个线程一个会话,所有增删改查共享一个会话,,MyBatis的事物交给Spring容器管理,防止每次增删改查都进行事物的开启以及提交,通过这些优化来减小开销。

7.4 系统存在的缺陷

(1)系统前端虽然添加了很多防范黑客入侵的相关技术,比如防sql、Xss注入等,但是后端没有没有进一步的安全防范,比如用户信息以及密码的加密,前后端数据加密以及解析,还有就是系统没有日志管理。比如房东增删改房屋信息都要有日志记录。这样会可能会给黑客以可乘之机。

(2)系统只部署在一台云服务器上,一旦服务器出现问题或者租期到了,房客便不能够访问,数据也会被清空。

(3)系统存放了房东的身份证信息,还有房客的联系信息,尽管系统立刻销毁了身份证图片,但是还是存在了相关安全隐患,系统后期会对数据采用自己的算法进行加密,即使黑客得到数据也无法解密。

7.5 系统的潜在影响

(1)在安全、法律方面的影响:

租房网站、婚介网站、滴滴、支付宝等大多都需要用户上传身份证信息。本系统也需要房东上传身份证信息,但是做了多种防范措施。

系统是需要房东上传身份证信息,所以存在安全隐患,系统会在验证之后第一时间销毁身份证图片。系统不会显示身份证图片,上传到云服务器之后,很快就会被销毁,无法备份。系统升级后会对于身份证等信息系统会进行加密。

(2)对健康、伦理与文化的影响:系统都是租房相关信息,没有伦理方面的信息,也没有不健康的信息展示给用户,用户也无法发表不健康信息,因为系统会对用户发表的信息进行审核。

7.6 系统总结

通过本次毕业设计,本人对软件的认识不仅仅只是编码,软件是以文档和程序的形式存在[4],又涉及软件开发和实施过程的配置与组织,它包含从设计到编码,以及测试到维护等一系列过程,建筑着软件从五到有的过程。同时软件开发也存在各种难度:进度难以控制,估计软件开发的工作量困难,成本高,软件质量难以保证。

谢  辞

在大学四年的学习生活转眼即逝,一年一度的毕业季又来了,不过这一次轮到的是我。希望本次毕业设计得结束,是我未来美好生活的开始。

本次毕业设计,经过访问相关房屋租赁网站体会线上房屋租赁,咨询相关房屋中介公司,本人慢慢将线上房屋租赁的业务逻辑弄清楚,在完成本项目的需求分析之后,开始系统设计,设计完成后便制定软件项目规划,对项目采用工程式管理。在项目编码的过程中,自己跟老师同学们学习了使用springmvc调用支付宝接口,使用springmvc调用百度地图进行房屋的定位,使用springmvc调用腾讯接口,以及如何优化系统性能,如何让本系统变得更加安全。通过学习这些技术,自己了解了技术的海洋是无边的,计算机技术更新尤其快,我们应该时刻保持一颗上进的心,不要懈怠,否则就会被时代所淘汰。

能够完成本次的毕设设计,由衷感谢我的指导老师孙晋永老师在本人编写论文阶段的耐心指导,孙老师在软件开发方面有着多年的开发经验,能够给我许多中肯的建议,也帮我解决了遇到了许多问题。本人在软件测试方面的知识是孙老师跟汪老师教授的,本人在编写软件测试相关内容时,根据之前所学的软件测试知识,较为顺利地完成相关内容的编写。

参考文献

  1. 王珊,萨师煊.数据库系统概论[M] .北京:高等教育出版社,2012.9
  2. 付京周.精通MyBatis3.0[M] .北京:电子工业出版社,2008.7
  3. 张玲玲.深入体验Java Web项目开发[M].北京:清华大学出版社, 2008.8
  4. Roger S.Pressman.Sofatware Engineering[M].北京:机械工业出版社,2008.04
  5. Paul Deck,林仪明.Spring MVC学习指南[M].北京:人民邮电出版社,2018.1
  6. 刘瑜.软件项目管理深度实战[M] .北京:电子工业出版社,2016.1
  7. 疯狂软件.Spring+MyBatis企业应用实战[M] .北京:电子工业出版社,2016.1
  8. 陈雄华,林开雄,文建国.Spring 4.x企业应用开发实战[M] .北京:电子工业出版社,2016.1
  9. 疯狂软件.Spring+MyBatis企业应用实战[M].北京:电子工业出版社,2016.1
  10.  陈祥琳.CentOS Linux系统运维[M] .北京:清华大学出版社,2016
  11.  王亚飞,王刚.CentOS 7系统管理与运维实战[M] .北京:清华大学出版社,2016
  12.  伍云辉.Linux服务器配置与管理指南[M] .北京:清华大学出版社,2010
  13.  顾云苏.Linux服务器配置与优化[M].北京:清华大学出版社,2001
  14.  Trey Grainger, Timothy Potter. Solr 实战[M] .北京:电子工业出版社,2017
  15.  兰小伟.Solr权威指南[M] .北京:机械工业出版社,2018      
  16.  杨光瑶.玩转支付宝: 支付生活与电商运营[M] .北京:中国铁道出版社,2017
  17.  刘震,吴娟.软件测试实用教程[M] .北京:人民邮电出版社,2017
  18.  陈明照.网站渗透测试实战入门[M] .北京:机械工业出版社,2016
  19.  杨云.无懈可击:全方位构建安全Web系统[M] .北京:清华大学出版社,2012
  20.  Jianyong Wang, Wojciech Cellary. Web Information Systems Engineering - WISE 2015[M].
  21.  Dave Wolf,A.J. Henley. Java EE Web Application Primer: Building Bullhorn: A Messaging App                   with JSP, Servlets, JavaScript, Bootstrap and Oracle[M]. Apress,2017
下一篇: 05 租房网