天天看點

大型租房網摘要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 租房網