目錄
摘要 iii
ABSTRACT v
1引言 1
1.1項目背景及意義 1
1.2國內外研究現狀 1
1.2.1國內研究現狀 2
1.2.2國外研究現狀 2
1.3論文的研究內容 3
1.4論文組織結構 3
1.5本章小結 4
2相關理論及技術概述 5
2.1微服務架構概述 5
2.1.1微服務概念與起源 5
2.1.2微服務拆分原則 5
2.1.3微服務架構的優勢 6
2.2Spring Cloud 技術概述 6
2.4SSM 框架概述 7
2.5Redis 技術概述 7
2.6推薦算法概述 8
2.7本章小結 8
3微服務電商平臺的需求分析 9
3.1需求分析綜述 9
3.2可行性分析 9
3.2.1技術可行性 9
3.2.2經濟可行性 10
3.2.3操作可行性 10
3.3業務功能劃分 10
3.4功能性需求分析 11
3.4.1商品信息展示微服務需求分析 11
vii
3.4.2商品推薦微服務需求分析 13
3.4.3商品搜索微服務需求分析 15
3.4.4訂單管理微服務需求分析 18
3.4.5購物車管理微服務需求分析 20
3.4.6在線支付微服務需求分析 23
3.4.7用戶管理微服務需求分析 25
3.4.8后臺管理微服務需求分析 27
3.4.9商家管理微服務需求分析 30
3.5非功能性需求分析 31
3.6本章小節 32
4微服務電商平臺的概要設計 33
4.1設計原則 33
4.2平臺功能結構 34
4.3平臺技術架構 35
4.4數據庫設計 36
4.4.1數據庫概要設計 37
4.4.2數據庫表設計 37
4.5本章小節 42
5平臺詳細設計與實現 43
5.1商品信息展示微服務實現 43
5.2.1算法設計 46
5.2.2商品推薦微服務詳細設計與實現 48
5.3 商品搜索微服務實現 52
5.4 訂單管理微服務實現 56
5.5購物車管理微服務實現 59
5.6在線支付微服務實現 61
5.7用戶管理微服務實現 65
5.8后臺管理微服務實現 68
5.9商家管理微服務實現 71
6系統測試 75
6.1測試方法 75
6.2測試環境 75
viii
6.3功能性測試 75
6.4非功能性測試 79
6.5本章小節 80
7總結與展望 81
7.1全文總結 81
7.2展望 82
參考文獻 83
作者簡歷及攻讀博士學位期間取得的研究成果 85
獨創性聲明 87
學位論文數據集 89
ix
1引言
本章主要對基于微服務架構的電商平臺進行概述,包括項目背景和研究的意義、國 內外的研究現狀、論文中主要的研究內容以及論文組織結構。
1.1 項目背景及意義
隨著互聯網技術的快速發展,電子商務體系伴隨著越發成熟和完善,近年來在我國 的經濟組成中占據著舉足輕重的位置[1]。正是因為國內的電子商務發展迅速,我國已經 成為全球范圍內最具電子商務潛力的國家之一[2]。各類電商平臺融入到大眾的生活當 中,網上購物已經成為人民日常生活中不可缺少的一部分[3]。
依據 2019 年度《中國電子商務發展報告》中的內容,2019 年中國網民數量達到 13.19 億,并且電子商務交易總額為34.81萬億元,相比去年同比增長 6.7%。龐大的數字和增 長速度顯示,中國的電子商務不僅是市場巨大而且未來的發展前景很是優秀[4]。電子商 務已經是中國經濟體系的重要組成部分。
由于我國網絡用戶的數量巨大,在未來電子商務平臺的發展一定會遇到高并發的問 題[5]。并且隨著電商市場的發展,人們對電商平臺的需求會越來越多,意味著電商平臺 的業務邏輯越來越復雜,技術難度越來越大[6]。在實際的開發中,傳統的電商平臺采用 的是單體式架構對整個電商平臺進行構建,這種方式在用戶需求少平臺規模小的時候開 發簡單,當用戶需求多平臺規模大的時候,該方式將會使整個電商平臺的內部邏輯變得 混亂,對于開發人員而言難以拓展和維護,并且對高并發的支持度也大大降低[7]。所以 構建一個邏輯清晰、易于開發和維護的電商平臺的需求越來越重要和迫切。
微服務架構是將一個復雜的單體式架構系統,按照功能模塊劃分成一些獨立的微服 務,這些微服務都是簡單靈活的、獨立的[8]。以微服務架構為基礎的平臺,邏輯簡單、 易于開發、易于部署、可拓展性高、可維護性強,能夠滿足在未來電商平臺的發展需求。
1.2 國內外研究現狀
國外互聯網技術較為成熟,并且其電商行業占據著重要位置。雖然如此,近些年國 內互聯網行業發展迅速,尤其是電商行業已經融入到家家戶戶,并且伴隨著用戶數量的 激增,各個電商企業也針對這一現狀紛紛對各家的電商平臺進行了改造和升級,以此應 對龐大的用戶群體下帶來的種種問題。
1.2.1國內研究現狀
國內占據主導位置的大型電子商務企業有阿里巴巴、京東、拼多多、蘇寧、當當等, 并且各個企業的電子商務平臺也占據了大部分的國內市場,雖然服務的側重點不同,但 電子商務的后臺模式大都相似[9]。早期電商企業采用的是電子商務平臺,主要是通過 HTML 靜態網頁向用戶展示商品信息,用戶查看商品再通過線下溝通的方式與商家完成 交易[10]。隨著互聯網技術的發展,出現了以 ASP、PHP、JSP/Servlet 等技術為基礎的 電商平臺,電商平臺由原先的靜態網頁過渡到可以與用戶交互的動態網頁。早期由于用 戶的數量少、需求少,電商平臺的邏輯較為簡單、整體規模也較小,所以電商平臺采用 的是單體式架構進行的開發,最后形成將所有功能打包到一起。
隨著用戶數量激增、各類需求增多,傳統的單體式架構電商平臺逐漸暴露出功能不 易推展、后期不易維護、適應高并發能力差等弱點。后來分布式架構和面向服務的 SOA 架構的出現,很好的解決了用戶訪問量大而出現的高并發問題。同時分布式緩存技術, 例如 Memcahed、Redis 的誕生,也有效地解決了電商平臺用戶高效訪問數據量的問題。 并且在數據持久化層面,出現了 MongoDB、Neo4j、HBase 等非關系型數據庫,也可提 高電商平臺處理數據的效率以及用戶訪問數據的時效。但是隨著近些年來互聯網行業的 高速發展伴隨著互聯網電商用戶的激增,海量高并發的壓力越來越大,以往的分布式架 構和SOA架構也不能滿足電商平臺的發展需求。在這樣的背景下,我國的天貓、京東、 拼多多等電商平臺開始了采用微服務架構去重構原來的項目。在歷年的天貓雙 11、京 東 618 中,重構后的基于微服務架構的電平臺不負眾望,頂住了龐大的流量和海量的高 并發。未來,我國的電子商務將邁入微務架構時代。
1.2.2國外研究現狀
國外的電子商務平臺起步較早,經過漫長的發展,誕生了亞馬遜、 Ebay 等優秀的 電商企業,這些電子商務企業甚至將市場拓展到亞洲和歐洲。當然,國外的電子商務平 臺在剛起步時也是采用的單體式架構,后來隨著用戶數量激增、各式各樣的需求增加, 同樣也出現了單體式架構存在的缺點[11]。隨之面臨著邏輯復雜、不易拓展、不易維護、 難以應對高并發、用戶訪問時效低等等這些問題。面對以上問題, 2011 年微服務的概 念被提出,后被正式命名為 microservices。 M.Fowler 和 J.Lewis 在 2014 年對微服務 這一概念作了較為準確的定義,即微服務架構是一種架構模式,它將單一的、復雜的應 用程序劃分成一些小的、獨立的服務,這些服務之間可以相互協調、相互配合,最后為 用戶提供需要的價值。亞馬遜、Ebay等電商平臺利用先天的優勢,早國內一步將微
2
服務架構的理論概念應用到實際的電商平臺中,解決了單體式架構帶來的諸多問題[12]。 當前來看,雖然電子商務在全球范圍內發展迅速,不過美國的電商水平在全世界的范圍 內還是居于較為領先的水平。美國的電商成交額,占據了全世界電子商務總成交額的百 分之五十。
1.3 論文的研究內容
本論文主要研究如何使用微服務架構實現電商平臺,以解決傳統單體式架構存在的 諸多問題,并達到易于開發、易于部署、易于拓展、易于維護、有效應對高并發的目標, 同時還保證電商平臺基本功能的實現。具體從如何使用微服務架構實現電商平臺的微服 務化,如何將微服務之間的耦合度最小化,如何解決微服務之間的通信等幾個方面研究。 主要研究內容有以下幾點:
(1) 研究微服務架構的相關技術和重要組件,并為電商平臺選擇合適的微服務技 術方案。相關技術包括微服務注冊與發現、微服務之間的通信、微服務網關和微服務部 署。研究選擇合適的微服務技術方案可以令電商平臺的整體性能、開發、維護提供可靠 的支持。
(2) 研究和分析微服務電商平臺的用戶需求,其中包括主要針對用戶研究的功能 性需求和非功能性需求。經過研究后,按照微服務架構的思想將微服務電商平臺分為商 品信息展示微服務、商品推薦微服務、商品搜索微服務、訂單管理微服務、購物車管理 微服務、在線支付微服務、用戶管理微服務、后臺管理微服務、商家管理微服務,再根 據整體的業務邏輯將以上微服務關聯起來形成一個完整的微服務電商平臺。
(3) 根據微服務電商平臺的用戶需求,研究設計出平臺整體架構、功能以及各個 微服務的功能,并使用功能模塊圖進行說明。研究如何結合具體微服務的設計進行功能 開發,并詳細說明開發過程、主要的業務代碼。
(4) 研究平臺的功能測試和非功能測試,根據具體的業務場景設計出相應的測試 用例,對平臺的各個功能點進行詳細的測試,同時從性能角度、可用性、可靠性等角度 出發,對平臺進行非功能測試。
1.4 論文組織結構
本文共分為七個章節,每章主要內容大致如下:
第一章引言,首先闡述了基于微服務架構電商平臺的項目背景和研究意義,然后比 較了該項目在國內外的研究現狀,最后闡述了論文的研究內容。
第二章相關理論及技術概述,主要介紹了微服務架構的電商平臺項目在整個開發過 程中涉及到的關鍵技術和理論。
3
第三章微服務電商平臺的需求分析,從用戶需求和項目目標出發,分析和總結了微 服務電商平臺的功能性需求和非功能性需求。
四章微服務電商平臺的概要設計,研究和設計項目的整體架構、功能結構以及個微 服務的功能結構,并對項目中涉及到的數據庫表進行表結構設計。
第五章平臺詳細設計與實現,通過文字并結合實現的平臺界面和關鍵代碼對開發的 過程進行詳細的說明。
第六章系統測試,說明平臺的測試環境,并從功能測試和非功能測試入手結合實際 的業務場景對平臺進行詳細的測試。
第七章總結和展望,回顧項目的整個研究過程,并對項目取得的成果和存在的不足 進行總結,并結合行業發展趨勢和市場需求對未來進行展望。
1.5本章小結
本章對微服務架構電商平臺的項目背景和研究意義進行闡述,并且對國內外相關的 研究現狀進行了介紹,接著介紹了該項目中涉及的主要研究內容,最后對論文的組織結 構進行了介紹。
2相關理論及技術概述
本章主要介紹基于微服務架構的電商平臺項目在開發過程中涉及到的關鍵技術,主 要有微服務架構SpringCloud技術、前端Vue技術、服務端SSM框架技術(Spring、 SpringBoot、MyBatis)以及Redis分布式緩存技術。
2.1 微服務架構概述
微服務架構是一種分布式架構,這一概念的是由國外的 Martin Fowler 在一本書中提出 的,即微服務架構是按照功能模塊的不同將復雜的系統拆分成一些小的微服務,各個服 務相對獨立并且相互協作。
2.1.1微服務概念與起源
微服務是可以獨立完成一個功能的服務,它可以獨立開發、獨立測試、獨立部署、 獨立運行、獨立維護。即具備高效輕巧、易于拓展、有效應對高并發的特點[13]。
最初微服務架構是由SOA架構演變而來的,微服務架構是SOA架構的升華,更強 調服務的顆粒度要小。SOA架構的思想是把系統的不同功能模塊,通過網絡互相調用, 最后組成一個完整功能的系統。并且SOA架構多用于企業業務系統,企業內部使用往 往很少考慮高并發以及海量數據的問題,所以企業往往將服務都放置在一臺服務器上。 后來隨著互聯網的發展,用戶數量激增伴隨著需求復雜、高并發、海量數據以及高吞吐 量的問題,SOA架構已經不再能應對這樣的情況[14]。
互聯網企業為了快速地應對用戶的需求即保持快速迭代,同時為了可以在系統性能 遇到瓶頸時快速提高系統的性能以及應對海量的數據,就要對原有復雜的系統拆分成幾 個獨立的子系統并且多個子系統使用獨立的數據庫和分布式緩存技術。這樣一來當某一 個子系統需求更新需求時,不關聯其他子系統從而提高的迭代速度[15]。并且當某一個業 務模塊的性能需要提升時,只需要找到對應的子系統然后生成多個實例從而提高性能。 每個子系統使用獨立的數據庫,更大程度上降低了數據關聯性從而實現數據處理的高效 率。那么從這種快速迭代角度、性能提升角度、數據處理角度進行拆分組織架構的形式 就是微服務架構。
2.1.2微服務拆分原則
微服務架構需要將復雜的系統拆分成一些微服務,這些微服務相對獨立,具體的拆 5
分方式需要根據業務模塊進行拆分[16],拆分時應遵守以下原則:
(1) 拆分時應該保證架構的穩定性;
(2) 拆分出來的每個微服務應保證內部是高內聚的。每個微服務之間是松耦合的;
(3) 每個微服務要保證由單獨的一個小團隊進行負責,每個團隊之間只需要進行 較少的協作。
2.1.3微服務架構的優勢
微服務的誕生是為了彌補單體式架構帶來的可拓展性差、不易開發、難以應對高并 發等問題[17]。那么微服務架構具備以下優勢:
(1) 一個微服務只負責一個業務模塊,代碼具備高度的內聚性。
(2) 每個小團隊負責一個微服務,開發人員可以根據需要選擇自己熟練的開發語 言和開發工具進行開發,極大地提升了開發效率。
(3) 微服務之間的耦合度較低,從而每個微服務都是相對獨立的,帶來的優勢就 是易于獨立開發、獨立測試、獨立部署、獨立維護、獨立拓展。
2.2Spring Cloud 技術概述
SpringCloud 是基于 SpringBoot 的一種開源式框架,這種框架的特點就是可以為快 速構建并運行在 JVM 虛擬機上的分布式系統提供大量的工具。這類工具包括服務網關、 服務注冊與發現、配置管理、服務調用以及負載均衡等,這些工具使用方式簡單、快捷, 開發者可以利用這些工具快速地搭建出一個基于微服務架構的系統[18]。 SpringCloud 框 架的基礎功能有服務注冊與發現、服務網關、配置管理。
服務組成與發現是 SrpingCloud 提供的注冊中心的一種, 包括 Netflix Eureka 、 ApacheZookeeper、Etcd、Google開源的Consul,其中本文使用的是Eureka,服務注冊 的目的是將微服務的信息包括微服務的名稱、微服務運行的主機IP地址以及對外提供 的端口號等信息注冊到注冊中心,并且注冊中心還負責對服務提供者的元數據進行健康 檢查等工作,服務消費者從注冊中心可以獲取注冊表緩存,然后根據注冊表信息向服務 提供者發起服務調用。
SrpingCloud的服務網關工具是Zuul,也是由Netflix公司開發,負責處理HTTP的 服務請求及調用。服務網關在微服務架構中是外部請求的統一接入點,主要作用是提供 身份校驗、請求分派、負載均衡以及路由管理等功能。
隨著需求的增長,微服務會越來越多,管理所有微服務模塊的配置文件會變得非常 繁瑣且容易出錯。 SrpingCloud 使用 SrpingCloudConfig 為微服務架構系統的配置提供支 持,配置存儲的默認實現使用 Git。
6
2.3Vue 技術概述
當下前端最熱門的三大框架分別是Vue、React和angular,它們各有優缺點。其 中 Vue 框架是一套漸進式的 JavaScript 框架,可快速地構建用戶界面,具有靈活、易 用和高效等特點,其核心庫只關注視圖層,可方便與第三方庫或現有項目進行整合。相 比較其他前端框架, Vue 特點鮮明,基于 MVVM 模式,其特有的基于 Object.Property 的數據雙向綁定極大地方便了前端開發過程中視圖與數據間的處理,配套的 Vue 全家 桶更是簡便了開發的復雜度,為程序開發者提供了一整套集成服務[19]。相比于 React, Vue 是一套輕量級的框架,代碼簡潔干凈,適合小型團隊和小型項目。在前端框架的選 擇過程中,綜合考慮基于微服務架構的電商平臺項目復雜度、前端展示需求和項目體量 后,認為選用Vue作為前端框架更為合適。本文的項目中還使用了 webpack進行配置 打包,iView提供組件庫,使用Vuex進行數據狀態存儲管理。
2.4SSM 框架概述
SSM 框架包括Spring、SpringMVC和 MyBatis三大框架,SSM框架是數據訪問 層、業務邏輯層和展現層架構方案的基礎。其中Spring是一個基于面向切面編程(AOP) 思想的框架,本質上時基于Java企業應用的輕量級框架。主要用于解決在系統開發時 遇到的不同框架之間的整合問題。換句話說它可以將不同的業務模塊按照需求組合在一 起,從而構建出完整的、強大的功能模塊[20]。SpringMVC是一種Web框架屬于Spring 家族。提供了豐富的基于MVC架構的Web應用組件,并且能夠與Spring框架進行完 美銜接,SpingMVC與Spring結合可以極大程度上簡化開發工作,從而提高開發效率。 此外,通過控制反轉機制(IOC), SpringMVC框架可以將開發過程中的實體依賴綁定 到實體內部,使得對實體對象的操作變得更加簡單。MyBatis框架是一種數據持久化框 架,開發人員使用該配合SQL語句和XML映射可以極大地簡化數據庫的增刪改查操作。
2.5Redis 技術概述
Redis是一個開源的、高性能的、可持久化的Key-Value (鍵值對)數據庫。它的 特點就是以字典結構為基礎建立,所以具備多個存儲數據的字典,并且提供了六種數據 結構:String (字符串)、List (列表)、Set (集合)、Hash (字典)、Sorted Set (有序集合)以及 HyperLogLog(基數)。這些數據結構使得Redis數據庫可以滿足多種場景的業務需求, 而且相較于MySQL數據庫因為存儲在磁盤上,帶來會有磁盤I/O限制瓶頸的問題, Redis是一個純內存數據庫,可以把需要快速訪問的數據都存儲在Redis
7
中,因為對內存的訪問速度總是遠快于對磁盤的訪問速度,所以 Redis 數據庫在緩存 查詢時具有極高的效率。此外 Redis 還具備單進程單線程的特點,從而減少了線程切 換。并且 Redis 數據庫基于 hash 結構,所以讀取數據很快,還對數據存儲進行了優化, 比如對小數據進行壓縮存儲等[21]。
此外, Redis 還支持持久化存儲,目前常見的有兩種模式:一種是 RDB (Redis DataBase)模式,另一種是 AOF (Append Only File)模式:
(1)RDB 模式,即全量備份模式,這種模式是在符合一定條件時把內存中的 Redis 數據庫中的數據以快照的方式存儲在硬盤中,當發生內存數據丟失,Redis便會讀取己 經保存在硬盤中的 RDB 文件把數據恢復到內存,但缺點在于比較消耗處理器性能,如 果是在兩次快照發生之間出現數據丟失,將會丟失這部分的數據;
(2)AOF 模式,即周期性增量備份模式,這種模式會把所有對 Redis 數據庫的操 作命令寫入AOF文件,當需要恢復數據時,通過執行AOF文件便可以把數據重新加載 到內存。但缺點在于 AOF 文件體積較大,性能消耗大,所以數據恢復比 RDB 模式要 慢。
Redis 使用主從同步來保證數據的安全性,通過讀寫分離的方式來提高響應速度。
2.6 推薦算法概述
基于內容的協同過濾算法是一個較為基礎但又重要的推薦算法。算法思想是,收集 項目的特征信息,根據信息構建項目特征向量。接著收集用戶的歷史行為信息,構建用 戶喜好向量,最后通過計算用戶喜好向量與各個項目的特征向量的相似度,找到用戶喜 好項目的相似項目,并進行推薦I22】。假設用戶興趣偏好向量為ul,某項目特征向量為 u2, u1=(t1,t2,…,ti,…,tn),i=1,2,…,n, u2=(f1,f2,…,瓦…,fn),i=1,2,…,n,然后可以計算二者 之間的相似性,從而根據相似性大小考慮是否進行推薦。
協調過濾算法是當下推薦領域中最為流行的推薦算法,也是在實際應用中使用較多 的推薦算法。其中基于物品的協同推薦是協調過濾算法的一種,它的基本思想是,獲取 所有用戶與物品的關系,這種關系成為喜好程度,然后根據這種關系計算出所有物品的 相似物品,再根據當前想要參與推薦的用戶對所有物品的喜好關系以及所有物品之間的 相似性程度,從而選中 topN 個物品推薦給用戶[23]。
2.7 本章小結
本章主要介紹了微服務架構的起源以及使用規則,然后介紹了在開發基于微服務架 構的電商平臺所使用的關鍵技術,其中包括SpringCloud、Vue、SSM框架、Redis以 及推薦算法。同時結合項目特點和發展趨勢,闡述了選用以上技術的原因。
8
3微服務電商平臺的需求分析
需求分析旨在明確一個系統需要滿足用戶的各種需求,這種方式可以快速、有效地 獲取到用戶的真實需求,從而提升用戶體驗。本章將通過UML的用例圖來說明用戶的 功能性需求,從性能、可靠性、可拓展性和可維護性,以上者四個方面進行非功能性需 求的描述。通過精準需求從而明確了平臺的業務目標,然后依據業務目標和微服務架構 的拆分原則對平臺進行功能模塊劃分。經過準確和詳情的需求分析為之后對平臺的概要 設計、實現和測試打下了牢固的基礎。
3.1需求分析綜述
需求分析是軟件定義時期的最后一個階段,他的基本任務是準確的回答“系統應該 做些什么”的問題。為了開發出真正滿足用戶需求的軟件產品,首先必須知道用戶的需 求,基于微服務架構的電商平臺的用戶是數以億計的網民,所以首先力求滿足用戶的基 本需求包括商品瀏覽、商品搜索、在線支付、訂單管理、購物車管理、個人中心管理等 功能。然后為了用戶帶來智能體驗感,平臺通過各類復雜的算法為基礎,增加了商品推 薦的功能。最后為了滿足平臺在數以億計的用戶共同在線時依然能夠正常工作,通過采 用微服務架構的手段提升平臺的綜合性能、可靠性[24]。
3.2 可行性分析
為了充分考慮資源節約問題,在進行詳細的需求分析之前,需要對平臺從技術、經 濟、以及操作的角度去進行可行性分析,經過以上三類可行性分析之后,即可對系統的 需求進行詳細的分析[25]。
3.2.1技術可行性
對于技術可行性而言,基于微服務架構的電商平臺將采用現在較為流行和完備的 SpringCloud框架來搭建微服務架構,使用Spring> SpringMVC、MyBatis即SSM框架 作為服務端技術的支撐,并使用Redis分布式緩存技術應對海量數據。
使用以上技術可以很好地滿足平臺的功能性需求以及非功能性需求,并且開發人員 對以上技術較為熟悉,能夠熟練應用并完成開發,經過分析滿足技術可行性的要求
3.2.2經濟可行性
從平臺開發成本以及維護成本的角度出發,同時還考慮本平臺在開發完畢投入使用 后帶來的效益是否高于投入開發的成本和后期維護的成本。結合市場現狀可知,該平臺 在投入使用后,可有效提升用戶的體驗從而很大程度上提高用戶數量,可直接帶來經濟 效益。并且平臺采用微服務架構,各個微服務相對獨立,從而在開發上極大的降低了開 發和后期維護成本。經過分析,該平臺滿足經濟可行性。
3.2.3操作可行性
在操作可行性上,開發時考慮到大多數用戶的需求,所以在設計界面時滿足美觀簡 潔的特點,并且在操作邏輯上符合絕大多數人群的習慣。經過分析可滿足操作可行性。
綜上基于微服務架構的電商平臺在技術、經濟已經操作上都是可行的。
3.3 業務功能劃分
基于微服務架構的電商平臺的最終目標是能夠滿足用戶真實需求,讓用戶能夠享受 電商平臺帶來的購物便捷,從而提高用戶的訪問量和留存率。為了達到這一目標,首先 對平臺進行細致的需求分析,包括功能需求分析和非功能性需求分析[26]。下面先對基于 微服務架構的電商平臺的主要業務需求進行簡單劃分:
(1) 商品信息展示,也就是電商平臺的首頁。該頁面主要是向用戶展示平臺內的 商品,供用戶進行選擇并購買。
(2) 商品推薦,考慮到電商平臺商品信息眾多,為了讓用戶在最快時間內挑選出 喜歡的商品,需要利用推薦算法實現商品的推薦,以此滿足用戶的購物需求以及提升用 戶體驗。商品推薦將在首頁、商品詳情以及購物車底部露出,并展示商品圖片、名稱以 及商品價格等信息。
(3) 商品搜索,為了滿足用戶精準購買商品的需求,商品搜索是一個重要手段, 可滿足用戶使用的功能包括關鍵詞搜索、結果排序和結果篩選以及歷史搜索和熱門搜索 等功能。
(4) 訂單管理,該模塊下用戶可以對訂單信息進行查看,每個訂單都會顯示創建 的時間、商品、商品價格等信息。
(5) 購物車管理,該模塊下用戶可以對自己加入購物車的商品進行管理,比如進 行結算、刪除等操作。
(6) 在線支付,作為一次購物的初步完結操作,用戶可以選擇微信支付和支付寶
10
支付。
(7) 用戶管理,為了滿足用戶對自己在整個平臺內的個人信息管理功能,用戶可 在平臺內完成修改個人信息、修改收貨地址,修改登錄密碼等操作。
(8) 后臺管理,主要為滿足電商平臺的后臺人員,為其提供對平臺內商家信息、 商品信息的管理功能
(9) 商家管理,商家可以對屬于自己的店鋪進行管理,具體包括店鋪基本信息的 管理和店鋪內商品的管理。
3.4 功能性需求分析
功能需求確定了平臺必須提供的服務,通過功能分析劃分出平臺必須完成的所有功 能。經過對用戶和市場的調研,功能模塊主要可劃分為如下九個微服務,分別是商品信 息展示微服務、商品推薦微服務、商品搜索微服務、訂單管理微服務、購物車管理微服 務、在線支付微服務、用戶管理微服務、后臺管理微服務、商家管理微服務。
3.4.1商品信息展示微服務需求分析
商品信息展示微服務即為電商平臺的首頁。該頁面為了滿足用戶的需求,該服務主 要包含如下三個子功能模塊,商品分類展示、商品輪播、商品推薦。商品信息展示微服 務的用例圖如圖 3-1 所示,關鍵用例說明如表 3-1、3-2、3-3、3-4 所示。
圖 3-1 商品信息展示微服務用例圖
Figure3-1 Product information display microservice use case diagram
11
( 1)商品分類展示 為了方便用戶挑選商品,該功能向用戶提供了所有商品分類展示。用戶通過類別選 項可以進入到該類別下的商品頁面內。商品分類展示用例分析如表3-1所示。
表 3-1 商品分類展示用例分析表
Table3-1 Product classification display use case analysis table
用例編號 UC-01
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 商品分類展示
用戶 高 該用例描述的是用戶通過該功能對商品進行分類瀏覽 平臺正常運行
1)進入平臺首頁
2)點擊商品分類項
3)進入對應商品類別頁面,查看商品信息
異常事件流 后置條件 用戶未登錄,無法進行商品分類展示的瀏覽
完成商品分類瀏覽
( 2)商品輪播展示 該功能主要是用過輪播圖的手段向用戶展示當下流行的商品。
商品輪播用例分析如表 3-2 所示。
表 3-2 商品輪播展示用例分析表
Table3-2 Commodity carousel display use case analysis table
用例編號 UC-02
用例名稱 商品輪播展示
活動者 用戶
優先級 高
用例描述 該用例描述的是用戶進入平臺首頁后可瀏覽商品輪播
前置條件 平臺正常運行
基本事件流 1)用戶進入平臺
2)點擊輪播圖
3)進入商品詳情頁并查看
異常事件流 用戶未登錄,無法進行商品輪播瀏覽
后置條件 完成商品輪播瀏覽
( 3 )商品推薦 便于為用戶定制個性化的商品展示,平臺商品信息展示頁面上提供了當前平臺內推 薦的商品,讓用戶能夠體驗到個性化定制的便捷性。用戶點擊相應推薦商品即可快速定 位到該商品的詳情頁。
商品推薦用例分析如表 3-3 所示。
12
表 3-3 商品推薦用例分析表
Table3-3 Product recommendation use case analysis table
用例編號 UC-03
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 商品推薦
用戶
高
該用例描述的是向用戶提供個性化推薦 平臺正常運行,并且成功登錄
1)進入平臺首頁
2)點擊“登錄”按鈕,完成登錄
3) 滑動鼠標至頁面底部,查看首頁商品推薦
4) 點擊“商品”鏈接并進入商品詳情頁,在頁面底部查看商品推薦
5) 點擊“購物車”鏈接并進入購物車詳情頁,在頁面底部查看商品推薦
異常事件流 后置條件 用戶未登錄,無法進行商品的推薦
完成商品推薦的瀏覽
3.4.2商品推薦微服務需求分析
商品推薦微服務在首頁、商品詳情頁、購物車頁底部展示,展示的形式為底部一行 三個商品的卡片樣式,商品詳情頁和購物車頁的展示樣式與首頁相同,卡片顯示元素均 為商品圖片、商品名稱以及商品價格。商品推薦微服務的用例圖 如 3-2 所示。
圖 3-2 商品推薦微服務用例圖
Figure3-2 Product recommendation microservice use case diagram
13
(1)首頁推薦 根據用戶訪問商品的歷史數據以及實時推薦的方式,在商品展示首頁為用戶推薦個 性化商品,提高用戶的購物體驗感和愉悅感。
首頁推薦用例分析如表 3-4所示。
表 3-4 首頁推薦用例分析表
Table3-4 Home page recommended use case analysis table
用例編號 UC-04
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 首頁推薦 用戶 高 在平臺首頁,用戶在底部可查看商品推薦 平臺正常運行,并且用戶成功登錄 1)輸入網址進入平臺 2)點擊“登錄”按鈕,完成登錄
3) 下滑鼠標查看商品推薦
4) 點擊“商品”鏈接,查看商品詳情
異常事件流 后置條件 用戶未正常登錄,無法提供商品推薦
完成首頁商品推薦的瀏覽
(2)商品詳情頁推薦 商品詳情頁推薦模塊是在商品詳情頁的底部顯示,顯示的內容包括商品的圖片、名 稱和價格。用戶點擊商品進入商品詳情頁后,商品詳情頁推薦模塊向用戶進行推薦。
商品詳情頁用例分析如表 3-5所示。
表 3-5 商品詳情頁推薦用例分析表
Table3-5 Product details page recommended use case analysis table
用例編號 UC-05
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 商品詳情頁推薦 用戶 高 在商品詳情頁,用戶在底部可查看商品推薦 平臺正常運行,并且成功登錄 1)輸入網址進入平臺 2)點擊“登錄”按鈕,完成登錄
3) 下滑鼠標查看商品推薦
4) 點擊“商品”鏈接,查看商品詳情
異常事件流 后置條件 未成功登錄,無法進行商品推薦 完成對商品詳情頁的商品推薦瀏覽
(3)購物車推薦 購物車推薦模塊是在購物車頁面底部放置的,根據用戶購物車的內容,推薦出類似 的商品,并且包括商品的圖片、名稱以及價格。每當用戶進入購物車后,購物車推薦便
14
想用戶進行推薦。
購物車推薦用例分析如表 3-6 所示。
表 3-6 購物車推薦用例分析表
Table3-6 Shopping cart recommended use case analysis table
用例編號 UC-06
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 購物車推薦 用戶 高 在購物車頁,用戶在底部可查看商品推薦 平臺正常運行,并且成功登錄 1)輸入網址進入平臺 2)點擊“登錄”按鈕,完成登錄
3) 下滑鼠標查看商品推薦
4) 點擊“商品”鏈接,查看商品詳情
異常事件流 后置條件 未成功登錄,無法進行商品推薦 完成對購物車頁的商品推薦瀏覽
3.4.3商品搜索微服務需求分析
商品搜索微服務主要是向用戶提供快速、精準查找商品的功能,用戶可以在搜索框 中輸入關鍵詞然后找到與關鍵詞匹配的商品。該微服務下主要包含四個子功能模塊。商 品搜索微服務用例圖如圖 3-3 所示。
圖 3-3 商品搜索微服務用例圖
Figure3-3 Product search microservice use case diagram
15
(1)關鍵字搜索 用戶在輸入框輸入商品的關鍵詞進行搜索,得到對應商品的結果,并跳轉到頁面進 行展示。
關鍵字搜索用例分析如表 3-7所示。
表 3-7 關鍵字搜索用例分析表
Table3-7 Keyword search use case analysis table
用例編號 UC-07
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 關鍵字搜索
用戶
高 用戶使用關鍵字進行商品精準搜索 平臺正常運行 1)輸入網址進入平臺 2)點擊搜索框,輸入商品關鍵詞 3)點擊“搜索”按鈕,進行搜索
異常事件流 后置條件 輸入關鍵詞無效
完成搜索操作
(2)商品規格搜索 用戶使用關鍵詞搜索得到結果后,在結果頁面有該關鍵詞得到的商品類別對應下的 商品規格,用戶點擊規格后可以對該結果進行篩選得到新的結果。
商品規格搜索用例分析如表 3-8 所示。
表 3-8 商品規格搜索用例分析表
Table3-8 Product specification search use case analysis table
用例編號 UC-08
用例名稱 商品規格搜索
活動者 用戶
優先級 高
用例描述 用戶點擊商品規格對商品進行篩選
前置條件 平臺正常運行
基本事件流 1)輸入網址進入平臺
2)點擊搜索框并輸入商品關鍵詞,然后進行搜索
3)得到商品結果頁面后,再點擊商品規格篩選出新的商品結果
異常事件流 輸入關鍵詞無效
后置條件 完成商品規格搜索
(3)搜索結果分頁展示 用戶不管是使用關鍵詞搜索還是商品規格搜索,在得到商品結果后都會對結果進行 分頁展示。
搜索結果排序用例分析如表 3-9所示。
16
表 3-9 搜索結果分頁用例分析表
Table3-9 Search results paging use case analysis table
用例編號 UC-09
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 搜索結果分頁
用戶
高
用戶查看分頁后的搜索結果 平臺正常運行,并且完成搜索 1)輸入網址進入平臺 2)點擊搜索框,輸入關鍵詞
3) 點擊“搜索”按鈕,進行搜索
4) 查看分頁后的搜索結果
5) 點擊“商品規格”按鈕,對結果進行篩選
6) 查看分頁后的搜索結果
異常事件流 后置條件 輸入關鍵詞無效 完成搜索分頁結果的查看
(4)搜索結果排序
用戶搜索完后得到的搜索結果頁默認設置的是綜合排序,綜合排序由商品相似性、 商品銷量、商品價格三個因子決定,其中商品相似性為搜索詞與返回詞的相似程度,權 重為 40%,商品銷量權重為 30%,商品價格為返回詞中商品最多的價格區間,權重為 30%。點擊下拉菜單還可以選擇其他排序方式,其中包括銷量從高到低、價格從低到高、 價格從高到低三種排序方式,銷量從高到低是以搜索返回結果的總銷售件數排序,價格 從低到高是以返回結果的銷售單價由小到大的排序,價格從高到低是以逆排序結果。
搜索結果排序用例分析如表 3-1 所示。
表 3-10 搜索結果排序用例分析表
Table3-10 Search results sorting use case analysis table
用例編號 UC-10
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 搜索結果
用戶
高
用戶查看排序后的搜索結果 平臺正常運行,并且完成搜索 1)輸入網址進入平臺 2)在搜索框輸入關鍵詞進行搜索 4)查看排序后的搜索結果
5) 點擊“商品規格”按鈕,對結果進行篩選
6) 查看排序后的搜索結果
異常事件流 后置條件 輸入關鍵詞無效 完成搜索排序結果的查看
17
3.4.4訂單管理微服務需求分析
訂單管理微服務的主要功能是向用戶提供訂單信息查看、付款、取消訂單等功能。
該微服務主要分為五個子功能模塊。訂單管理微服務用例圖如圖 3-4 所示。
(1)訂單信息展示 在訂單信息展示頁面內,展示當前用戶在平臺內所有訂單不同狀態的信息。用戶可 以在此模塊下,可以對訂單進行支付、取消訂單等各類操作。
訂單信息展示用例分析如表 3-11 所示。
表 3-11 訂單信息展示用例分析表
Table3-ll Order information display use case analysis table
用例編號 UC-11
用例名稱 訂單信息展示
活動者 用戶
優先級 高
用例描述 用戶可以查看訂單信息
前置條件 平臺正常運行,并成功登錄
基本事件流 1 )點擊“訂單”按鈕,查看訂單信息
2)點擊“支付”按鈕,對訂單進行支付
3)點擊“取消”按鈕,刪除訂單
異常事件流 未成功登錄,無權限操作
后置條件 完成對訂單信息的瀏覽、支付、取消
18
(2)待付款 該頁面內顯示了用戶已經生成的但是未付款的訂單。用戶可以操作的功能有“立即 付款”和“取消訂單”功能。
待付款用例分析如表 3-12所示。
表 3-12 待付款用例分析表
Table3-12 Pending payment use case analysis table
用例編號 UC-12
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 待付款 用戶 高 用戶可對待付款的訂單進行管理 平臺正常運行,并且成功登錄 1)輸入網址進入平臺,完成登錄 2)點擊“待付款”進入待付款頁面
3) 點擊“立即付款”對訂單完成支付
4) 或者點擊“取消”刪除訂單
異常事件流 后置條件 未成功登錄,無權限操作
完成對待付款訂單信息的瀏覽、支付、取消
(3)待發貨 該頁面顯示了用戶已經支付的但是商家未發貨的訂單。用戶可以執行“申請退款” 和“提醒商家發貨”功能。
待發貨用例分析如表 3-13所示。
表 3-13 待發貨用例分析表
Table3-13 Pending Ship Use Case Analysis Table
用例編號 UC-13
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 待發貨
用戶
高 用戶可對待發貨的訂單進行管理 平臺正常運行,并且成功登錄 1)輸入網址進入平臺,完成登錄 2)點擊“待發貨”,查看待發貨訂單信息
3) 點擊“申請退款”,進行申請退款
4) 點擊“提醒商家發貨”,可向商家發送提示發貨信息
異常事件流 后置條件 未成功登錄,無權限操作
完成對待發貨訂單的申請退款和提醒發貨操作
(4)待收貨
此頁面內用戶可以查看待收貨的訂單。用戶可以對訂單進行“申請退款/退貨”和 確認收貨”操作。
19
待發貨用例分析如表 3-14所示。
表 3-14 待收貨用例分析表
Table3-14 Pending Goods Use Case Analysis Table
用例編號 UC-14
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 待收貨
用戶
高
用戶可對待收貨的訂單進行管理 平臺正常運行,并且成功登錄 1)輸入網址進入平臺,完成登錄 2)點擊“待收貨”,查看待收貨訂單信息 3)點擊“申請退款/退貨”,申請退款/退貨 4)點擊“確認收貨”,確認收到商品
異常事件流 后置條件 未成功登錄,無權限操作
完成對待收貨訂單的申請退款/退貨和確認收貨操作
(5)待評價 在待評價訂單頁面內,顯示了用戶已經確認收貨但是未做出評價的訂單。用戶在此 頁面可以執行“訂單評價”和“刪除訂單”功能。
待評價用例分析如表 3-15 所示。
表 3-15 待評價用例分析表 Table3-15 Use case analysis table to be evaluated
用例編號 UC-15
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 待評價
用戶
高
用戶可對待評價的訂單進行管理 平臺正常運行,并且成功登錄 1)輸入網址進入平臺完成登錄 2)點擊“待評價”完成對待評價訂單的信息查看 3)點擊“訂單評價”對訂單進行評價 4)點擊“刪除訂單”刪除訂單信息
異常事件流 后置條件 未成功登錄,無權限操作 完成對待評價訂單的評價操作
3.4.5購物車管理微服務需求分析
購物車管理微服務主要是為了讓用戶方便地管理自己感興趣的商品。該模塊主要分
為如下 5個子功能模塊。購物車微服務用例圖如圖 3-5所示。
20
Figure3-5 Shopping cart microservice use case diagram
(1)加入購物車 用戶在瀏覽商品時,見到心儀的商品但又不想立即購買,此時可以將其放入到購物 車中,以便后續進行購買。
加入購物車用例分析如表 3-16 所示。
表 3-16 加入購物車用例分析表 Table3-16 Add to cart use case analysis table
用例編號 UC-16
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 加入購物車
用戶
高
用戶將商品添加到購物車內 平臺正常運行,并且成功登錄 1)進入平臺完成登錄 2)點擊“商品”鏈接然后進入商品詳情頁 3)點擊“加入購物車”將商品添加到購物車中
異常事件流 后置條件 未成功登錄,無權限操作 完成對商品的加入購物車操作
(2)修改商量數量 在購物車界面內,用戶可以根據需要修改某件商品的數量。修改商品數量用例分析 如表 3-18 所示。
21
表 3-18 修改商品數量用例分析表
Table3-18 Modify the product quantity use case analysis table
用例編號 UC-18
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 修改商品數量
用戶
高 用戶可對購物車中商品數量進行修改 平臺正常運行,并且成功登錄
1 )進入平臺完成登錄,點擊“購物車”進入購物車頁面 2)點擊“商品數量”修改商品數量
異常事件流 后置條件 未成功登錄,無權限操作 完成對商品數量的修改操作
(3)刪除商品
根據需要對商品進行刪除操作。刪除商品用例分析如表 3-19所示。
表 3-19 刪除商品用例分析表
Table3-19 Delete product use case analysis table
用例編號 UC-19
用例名稱 刪除商品
活動者 用戶
優先級 高
用例描述 用戶可對購物車中的商品進行刪除
前置條件 平臺正常運行,并且成功登錄
基本事件流 1 )進入平臺完成登錄,點擊“購物車”進入購物車頁面
2)點擊“管理”即可對商品進行刪除
異常事件流 未成功登錄,無權限操作
后置條件 完成對商品數量的修改操作
(4)商品結算
在購物車界面上,用戶可以根據需要執行單個或是多個商品結算的功能。結算商品
用例分析如表 3-20 所示。
表 3-20 商品結算用例分析表
Table3-20 Commodity settlement use case analysis table
用例編號 UC-20
用例名稱 商品結算
活動者 用戶
優先級 高
用例描述 用戶可對購物車中的商品進行結算
前置條件 平臺正常運行,并且成功登錄
基本事件流 1 )進入平臺完成登錄,點擊“購物車”進入購物車頁面
2)點擊“結算”對商品進行結算
異常事件流 未成功登錄,無權限操作
后置條件 完成對商品的結算操作
22
(5)商品推薦 在購物車底部,使用商品推薦功能為用戶推薦商品,商品包括商品名稱、商品圖片、 商品價格等信息,用戶可點擊某一推薦的商品進入到該商品的詳情界面。
商品推薦用例分析如表 3-21 所示。
表 3-21 商品推薦用例分析表
Table3-21 Product recommendation use case analysis table
用例編號 UC-21
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 商品推薦
用戶
高 用戶可在購物車頁面查看推薦的商品 平臺正常運行,并且成功登錄 1)進入平臺完成登錄 2)點擊“購物車”進入購物車頁面 3)在底部查看推薦的商品
異常事件流 后置條件 未成功登錄,無權限操作 完成對購物車底部商品推薦的瀏覽
3.4.6在線支付微服務需求分析
在線支付功能向用戶提供了兩種支付方式,包括微信支付和支付寶支付。在線支付 微服務用例圖如圖 3-6 所示。
丘線支付微服務
(1)微信支付 訂單結算頁選擇好支付方式后點擊“提交訂單”后喚起對應的外部鏈接,如選擇微 信支付會接入微信的外部鏈接,輸入密碼即可支付,支付成功后提示支付成功,如若失 敗則提示支付失敗,隨后刷新頁面。
微信支付用例分析如表 3-22所示。
表 3-22 微信支付用例分析表
Table3-22 WeChat payment use case analysis table
用例編號 UC-22
(2)支付寶支付 用戶選擇支付寶支付會接入支付寶的外部鏈接,輸入密碼即可支付,支付成功后提 示支付成功,如若失敗則提示支付失敗,隨后刷新頁面。
支付寶支付用例分析如表 3-23 所示。
表 3-23 支付寶支付用例分析表
Table3-23 Alipay payment use case analysis table
用例編號 UC-23
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 支付寶支付
用戶
高
用戶可使用支付寶支付訂單 平臺正常運行,并且成功登錄 1)點擊商品鏈接進入商品詳情頁面 2)點擊“立即購買”按鈕然后選擇微信支付
3) 進入購物車頁面,點擊“結算”后選擇支付寶支付
4) 進入待付款頁面,點擊“立即付款”后選擇支付寶支付
異常事件流 后置條件 未成功登錄,無權限操作
完成支付寶支付操作
24
3.4.7用戶管理微服務需求分析
用戶管理微服務向用戶提供了一些個人信息查看和編輯的功能。該微服務主要分為
五個子功能模塊。用戶管理微服務用例圖如圖 3-7 所示。
Figure3-7 User management microservice use case diagram
(1)收藏夾 在收藏夾內存放著用戶在瀏覽商品時選擇收藏的商品,用戶在收藏夾內可以查看商 品的圖片、名稱、價格等信息。
收藏夾用例分析如表 3-24 所示。
表 3-24 收藏夾用例分析表
Table3-24 Favorites use case analysis table
用例編號 UC-24
用例名稱 收藏夾
活動者 用戶
優先級 高
用例描述 用戶可查看收藏夾內容
前置條件 輸入網址進入平臺,完成登錄
基本事件流 1)輸入網址進入平臺,完成登錄
2)點擊“收藏夾”按鈕,進入收藏夾頁面
3)查看收藏夾內的商品信息
異常事件流 未成功登錄,無權限操作
后置條件 完成收藏夾內容的瀏覽
25
(2)關注店鋪 在收藏夾內存放著用戶在瀏覽商品時選擇關注的該商品所屬的店鋪,用戶在關注店 鋪內可以查看店鋪的照片、名稱等信息。
關注店鋪用例分析如表 3-25所示。
表 3-25 關注店鋪用例分析表
Table3-25 Follow the shop use case analysis table
用例編號 UC-25
用例名稱 關注店鋪
活動者 用戶
優先級 高
用例描述 用戶可查看關注店鋪內的店鋪信息
前置條件 輸入網址進入平臺,完成登錄
基本事件流 1)輸入網址進入平臺,完成登錄
2)點擊“關注店鋪”按鈕,進入關注店鋪頁面
3)查看關注店鋪內的店鋪信息
異常事件流 未成功登錄,無權限操作
后置條件 完成關注店鋪內容的瀏覽
(3)我的足跡 用戶進入我的足跡界面可以查看近期瀏覽過的所以商品,具體包括商品的圖片、商 品的名稱、商品的價格。
我的足跡用例分析如表 3-26所示。
表 3-26 我的足跡用例分析表
Table3-26 My footprint use case analysis table
用例編號 UC-26
用例名稱 我的足跡
活動者 用戶
優先級 高
用例描述 用戶可查看我的足跡信息
前置條件 輸入網址進入平臺,完成登錄
基本事件流 1)輸入網址進入平臺,完成登錄
2)點擊“我的足跡”按鈕,進入收我的足跡頁面
3)查看我的足跡內的歷史瀏覽商品的信息
異常事件流 未成功登錄,無權限操作
后置條件 完成我的足跡內容的瀏覽
(4)我的優惠券 我的優惠券界面顯示了用戶擁有的所以優惠券信息,包括優惠券金額、到期時間、 所屬店鋪等信息
我的優惠券用例分析如表 3-27所示。
26
表 3-27 我的優惠券用例分析表
Table3-27 My coupon use case analysis table
用例編號 UC-27
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 我的優惠券
用戶
高
用戶可查看我的優惠券信息 輸入網址進入平臺,完成登錄 1)輸入網址進入平臺,完成登錄 2)點擊“我的優惠券”按鈕,進入我的優惠券頁面 3)查看優惠券信息
異常事件流 后置條件 未成功登錄,無權限操作
完成我的優惠券的瀏覽
(5)個人信息 用戶可以在個人信息界面主要可以查看、修改個人的頭像、昵稱,對收貨地址進行 增刪改查操作,并且可以對個人賬戶的密碼進行修改。
個人信息用例分析如表 3-28所示。
表 3-28 個人信息用例分析表
Table3-28 Personal Information Use Case Analysis Form
用例編號 UC-28
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 個人信息管理
用戶
高
用戶可管理個人信息 輸入網址進入平臺,完成登錄 1)輸入網址進入平臺,完成登錄 2)點擊“個人信息”按鈕,進入個人信息頁面 3)可對個人信息進行查看、修改
異常事件流 后置條件 未成功登錄,無權限操作 完成個人信息的查看、修改
3.4.8后臺管理微服務需求分析
后臺管理微服務主要為電商平臺的后臺人員提供服務,在該微服務的支持下,后臺 人員可以對平臺內商家、商品等信息進行管理。該模塊主要分為三個子功能模塊。后臺 管理微服務用例圖如圖 3-8 所示。
27
(1)店鋪管理 后臺人員在店鋪管理界面對所有店鋪進行管理,具體操作包括查看店鋪的信息以及 對新店鋪的入駐申請進行同意和駁回。為了方便后臺人員對店鋪進行管理,該界面還提 供了搜索功能。
商家管理用例分析如表 3-29 所示。
表 3-29 店鋪管理用例分析表 Table3-29 Store management use case analysis table
用例編號 UC-29
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 店鋪管理
后臺管理人員
高
后臺管理人員可對待入駐的店鋪進行管理 輸入網址進入平臺,完成登錄 1)輸入網址進入平臺,完成登錄 2)點擊“店鋪管理”按鈕,進入頁面 3)查看申請入駐的店鋪,并執行同意或者駁回操作
異常事件流 后置條件 未成功登錄,無權限操作
完成店鋪管理
28
(2)商品管理 后臺人員對平臺內上架以及申請上架的商品進行管理,并且對商品的分類以及品牌 信息進行管理,具體操作包括查看所有商品信息并且可以的對商品進行審核。
商品管理用例分析如表 3-30 所示。
表 3-30 商品管理用例分析表
Table3-30 Commodity management use case analysis table
用例編號 UC-30
用例名稱 活動者 優先級 用例描述 前置條件 基本事件流 商品管理
后臺管理人員
高
后臺管理人員對商品的上下架進行管理,并管理商品的分類和品牌 輸入網址進入平臺,完成登錄
1 )輸入網址進入平臺,完成登錄
2)點擊“商品管理”按鈕,進入頁面
3) 查看申請上架的商品,并執行同意或者駁回操作
4) 點擊“商品分類”進入頁面
5)管理所有商品分類
6)點擊“商品規格”進入頁面
7)管理所有商品規格
異常事件流 后置條件 未成功登錄,無權限操作
完成商品管理
(3)輪播廣告管理 在輪播廣告管理界面,后臺人員對平臺內所有的廣告進行管理,具體操作包括對廣 告信息的增刪改查。
輪播廣告管理用例分析如表 3-31所示。
表 3-31 輪播廣告管理用例分析表
Table3-31 Carousel advertising management use case analysis table
用例編號 UC-31
用例名稱 輪播廣告管理
活動者 后臺管理人員
優先級 高
用例描述 后臺管理人員可對輪播廣告進行管理
前置條件 輸入網址進入平臺,完成登錄
基本事件流 1 )點擊“輪播廣告”按鈕,進入頁面
2)對已上架的輪播廣告進行修改并提交
3)提交新的輪播廣告進入平臺
異常事件流 未成功登錄,無權限操作
后置條件 完成輪播廣告管理
29
3.4.9商家管理微服務需求分析
商家管理微服務主要是用于平臺內的商家對所擁有的店鋪的基本信息和店鋪內的
商品信息進行管理。具體劃分為以下兩個子功能模塊。商家管理微服務用例圖如圖 3-9 所示。
圖 3-9 商家管理微服務用例圖
Figure3-9 Business management microservice use case diagram
(1)基本信息管理 商家在基本信息管理頁面,可以修改店鋪的基本信息,并提交到后臺供后臺人員審 核,同時還可以對店鋪的信息進行修改并再次提交審核。
商家管理用例分析如表 3-32 所示。
表 3-32 店鋪基本信息管理用例分析表
Table3-32 Use case analysis table fbr store basic information management
用例編號 UC-32
用例名稱 店鋪基本信息管理
活動者 商家
優先級 高
用例描述 商家可對店鋪的基本信息進行管理
前置條件 平臺正常運行,并完成登錄
基本事件流 1)點擊“店鋪信息”按鈕,進入頁面
2)查看店鋪基本信息,并對信息進行修改并提交申請
異常事件流 未成功登錄,無權限操作
后置條件 完成店鋪基本信息的管理
30
(2)商品信息管理 商家在商品信息管理界面,可以管理所以的商品,包括上架到商品到店鋪內進行銷 售以及修改店鋪內現存的商品,并提交到后臺供后臺人員審核。
商品信息用例分析如表 3-33所示。
表 3-33 商品信息管理用例分析表
Table3-33 Product information management use case analysis table
用例編號 UC-33
用例名稱 商品信息管理
活動者 商家
優先級 高
用例描述 商家可對店鋪內的商品進行管理
前置條件 輸入網址進入平臺,完成登錄
基本事件流 1 )輸入網址進入平臺,完成登錄
2)點擊“商品信息管理”按鈕,進入頁面
3) 查看店鋪內商品信息
4) 提交商品上架申請 5)修改原來的商品信息并提交上架申請
異常事件流 未成功登錄,無權限操作
后置條件 完成商品信息的管理
3.5非功能性需求分析
為了讓基于微服務架構的電商平臺能更好的服務用戶,并且提高后期維護的效率, 在充分滿足功能性需求的同時,提出了幾點非功能性需求,包括以下幾點,高性能、可 靠性、易用性、安全性以及可復用性,下面進行詳細闡述。
(1)高性能 軟件的性能需求通常是以用戶的使用體驗為主要考慮因素。對應著的軟件性能需求 一般包括最高并發用戶數、系統響應時間、海量數據處理能力等。考慮到上述的需求, 于是提出了使用微服務架構去構建電商平臺。正是因為微服務架構中各個微服務獨立部 署、獨立運行的特點,使得電商平臺易于在多個服務器上進行部署以及橫向拓展,可以 有效應對高并發和提高響應時間。使用分布式緩存技術也可以有效應對海量數據處理。
(2)可靠性
軟件系統的可靠性需求是指系統在采用集群方式提供服務時,在集群內某個服務器 節點出現故障導致宕機后,集群中心及時識別故障機器并將相應處理請求轉移到其他服 務器處理,保證服務的持續可用。本文中的微服務電商系統必須具備發現集群中故障機 器,并將相應服務轉移到其他機器上的能力。
(3)易用性
為使得不同用戶都能快速使用基于微服務架構的電商平臺,平臺首先在設計操作界
31 面上花費大量精力,保證了操作界面的美觀以及與用戶交互的人性化。并且在平臺上設 置操作文檔,利于用戶在使用時查看并進行操作。
(4)安全性 對于用戶而言,平臺的高安全性不僅保證了平臺可以安全運行,也保證了用戶的使 用體驗和隱私。對于平臺首先要保證數據庫的安全性,數據庫的安全是平臺安全的基礎, 也保證了用戶的隱私、方式用戶數據泄露。其二就是對平臺入口進行限定,防止外來注 入式攻擊。
(5)可復用性 基于微服務架構的電商平臺采用是微服務架構,其特點在于將一個復雜的系統按照 功能模塊劃分成一些小的微服務,所有的微服務都獨立部署、獨立運行,故而當平臺需 要復用時是極其便捷和快速的。
3.6本章小節
需求分析是完成一項好項目的重要基礎,通過線下詳細的調研以及對用戶訪談溝 通,充分分析整合需求之后,本章在需求分析綜述、可行性分析、業務功能劃分、功能 需求和非功能需求方面做了詳細的闡述,故而明確了不同微服務的需求信息,為接下來 的詳細設計、實現和測試提供了可靠的依據。
32
4微服務電商平臺的概要設計
上一章對基于微服務架構的電商平臺做了詳細的需求分析,本章重點論述基于微服 務架構的電商平臺的概要設計。本章內容嚴格以軟件工程設計規范為標準,遵循概要設 計原則,力求功能模塊達到高內聚低耦合的規范。本章以上一章需求分析為基礎和依據, 將從系統設計原則、平臺功能結構以及平臺整體架構三個方面來論述,同時對平臺中涉 及到的關鍵數據庫表進行設計。
4.1設計原則
為了保證平臺的順利建設以及復用性,對平臺進行概要設計時需遵循以下設計原 則,具體內容如下[27]。
(1)模塊化
模塊化就是把一個復雜的程序按照一定的規則例如按照功能的不同,劃分成一些小 的模塊,這些模塊相對獨立,又可以相互調用形成一個完整的系統,該系統可以完成用 戶需求的功能。
(2)抽象
簡單來講是在對平臺或者系統進行概要設計時,先從較為宏觀的角度去考慮問題然 后進行設計,例如根據需求分析可知用戶對于平臺或系統提出的一些具體需求,那么在 對其進行概要設計時需要先將這些需求抽象出來,然后再以較為微觀的角度進行精細化 的設計,即為一種層次化的設計思想。
(3) 逐步求精
逐步求精指的是暫時不考慮問題的細節,而是先從宏觀的角度去考慮問題的解決方 式,然后再從微觀的角度去解決問題。逐步求精和抽象是一對互補的概念。抽象使得一 個復雜的系統或者平臺在設計的時候隱藏了具體的底層細節,變得更加容易理解。而逐 步求解可以幫助解決更加細節的問題。
(4) 信息隱藏和局部化
信息隱藏指的是在一個模塊內放入的信息,對于外部模塊而言是沒有訪問權限的。 這樣一來,模塊之間更加的獨立了。局部化指的是將一些關系密切的軟件元素物理的放 置靠近。
(5)模塊獨立
模塊獨立是以上幾點形成的結果,正是在概要設計時遵循了以上的設計規則,才能 為模塊獨立打下堅實的基礎。模塊獨立可以幫助軟件開發變得更加簡單,并且容易進行 測試和維護。
33
4.2 平臺功能結構
在第三章對基于微服務架構的電商平臺進行的需求分析,已經將該平臺分為九大微 服務模塊,分別是商品信息展示微服務、商品推薦微服務、商品搜索微服務、訂單管理 微服務、購物車管理微服務、在線支付微服務、用戶管理微服務、后臺管理微服務、商 家管理微服務。基于微服務架構的電商平臺的總體功能模塊劃分如圖 4-1所示。
圖 4-1 基于微服務架構的電商平臺總體功能結構圖
Figure4-1 Overall functional structure diagram of e-commerce platform based on microservice
architecture
34
在基于微服務架構的電商平臺中,商品信息展示微服務提供商品分類展示、商品輪 播展示、商品推薦功能。商品推薦在首頁頁面底部、購物車頁面底部、商品詳情頁頁面 底部為用戶進行個性化商品推薦。商品搜索微服務為用戶提供關鍵字搜索、商品規格搜 索、搜索結果分頁展示、搜索結果排序功能。訂單管理微服務為用戶提供全部訂單管理、 待付款管理、待發貨管理、待收貨管理、待評價管理功能。購物車管理微服務為用戶提 供加入購物車、修改商品數量、刪除商品、商品結算、商品推薦功能。在線支付微服務 為用戶提供支付寶支付和微信支付功能。用戶管理微服務為用戶提供收藏夾、關注店鋪、 我的足跡、我的優惠券、個人信息功能。后臺管理微服務為后臺管理人員提供店鋪管理、 商品管理功能。商家管理微服務為平臺內的商家提供基本信息管理、商品信息管理功能。
4.3 平臺技術架構
基于微服務架構的電商平臺的技術架構是融合了微服務架構和軟件三層架構設計 思想進行的搭建。首先以微服務架構思想,按照 AKF 拆分原則,也就是把復雜的電商 平臺按照功能模塊的不同拆分成一些小的微服務,如商品信息展示微服務、商品推薦微 服務、商品搜索微服務等。把這些微服務放置在三層架構的業務邏輯層,并使用 solr 集 群技術配置微服務的集群[28]。
接著在三層架構的展現層配置電商平臺的前端界面,作為用戶與電商平臺的交互方 式,并且用戶可以使用不同的客服端進入前端界面。用戶通過客戶端訪問電商平臺并向 后臺發送各類訪問請求,這些請求首選經過 Zuul 網關,它會根據請求中的一些特征, 將請求轉發給后端的各個服務。轉發之前需要在Eureka服務注冊和發現中心中找到服 務的位置也就是端口。在進行轉發的同時使用Ribbon組件進行負載均衡,也就是在微 服務集群中選擇負載壓力較小的服務進行轉發。微服務之間進行互相調用時使用 Feign 組件,調用之前也會使用到Eureka尋找微服務接口地址以及Ribbon進行負載均衡。同 時使用消息隊列RabbitMQ保證微服務之間的異步通信,以此提高訪問效率。還會使用 Apollo配置中心對微服務以及網關進行統一的配置。
最后在數據訪問層中,數據持久化存儲使用Mysql集群,并且使用Redis緩存技術 提高數據處理的速度。平臺總體技術架構圖如圖 4-2所示。
35
圖 4-2 基于微服務架構的電商平臺總體技術架構圖
Figure4-2 Overall technical architecture diagram of e-commerce platform based on microservice
architecture
4.4 數據庫設計
數據庫技術是軟件系統對數據管理的常見和有效手段,依據環境選擇合適的數據庫 并根據需求創建數據,最后滿足用戶的數據需求。通過之前對用戶的需求和平臺架構的 特性分析,基于微服務架構的電商平臺選用 MySQL 數據庫作為存儲該平臺信息數據 的工具。下面根據上一章基于微服務架構的電商平臺需求分析的內容,首先對畫出相關 的E-R (實體關系)圖,接著依據E-R圖對平臺中所需要的數據庫表結構[29]。最終設計 一個滿足微服務電商平臺需求的數據庫。
36
4.4.1數據庫概要設計
數據庫概要設計是在需求分析基礎上,對數據庫表所關聯的實體信息進行抽象描 述,然后建立一種數據概念模型的階段。數據概念模型是來著現實世界的模型,而且它 并不關注如何在技術上實現數據庫設計,所以使得數據庫設計人員能夠專注于分析當前 系統中的跟業務相關的數據以及數據之間的聯系。數據庫概要模型一般通過 E-R 圖進 行表示。基于微服務架構的電商平臺的 E-R 圖如圖 4-3所示。
Figure4-3 The overall E-R diagram of the e-commerce platform based on the microservice
architecture
4.4.2數據庫表設計
因實際開發過程中涉及的業務需求因素復雜,需要的數據庫表較多,所以本文僅對 主要功能使用的表進行論述。包括商品表、分類表、訂單表等 11 張數據表。下面對其 重要表字段進行簡要說明。
37
(1)用戶信息表
該表用來存儲用戶的詳細信息,主要字段包括用戶ID、登錄密碼、頭像URL、性
別、手機號碼、權限、綁定郵箱,該數據表的詳細描述如表 4-1所示。
表 4-1 用戶信息表
Table4-1 User Information Form
序號 字段名稱 數據類型 約束條件 字段描述
1 user_id bigint(20) 主鍵 用戶 ID
2 user_name varchar(50) 非空 用戶名
3 user_passwd varchar(50) 非空 登錄密碼
4 avatar_url varchar(50) 非空 頭像 URL
5 gender varchar(50) 非空 性別
6 phone_number varchar(50) 非空 手機號碼
7 authority varchar(50) 非空 權限
7 birthday varchar(50) 非空 生日
8 email varchar(50) 非空 綁定郵箱
9 age varchar(50) 非空 年齡
10 address varchar(50) 非空 地址
(2)商品表
該表存儲的是商品的信息,主要字段包括商品ID、商品名稱、所屬商品分類的ID、 商品介紹、排序值、審核狀態、銷售狀態、商品圖片。該表的詳細描述如表4-2所示。
表 4-2 商品表
Table4-2 Commodity table
序號 字段名稱 數據類型 約束條件 字段描述
1 product_id bigint(20) 主鍵 商品 ID
2 category_id bigint(20) 外鍵 商品分類ID
3 brand varchar(50) 外鍵 商品品牌 ID
4 intro varchar(100) 非空 商品介紹
5 price varchar(20) 非空 商品價格
6 sales varchar(200) 非空 商品銷量
7 orders varchar(50) 非空 排序值
8 audit_state varchar(50) 非空 審核狀態
9 sale_state varchar(50) 非空 銷售狀態
10 image url varchar(50) 非空 商品圖片 URL
38
(3)商品分類表
該表存儲的是商品分類的信息,主要字段包括商品分類ID、商品分類名稱、上級 商品分類ID、排序值、商品分類所屬店鋪的ID。該表的詳細描述如表4-3所示。
表 4-3 商品分類表
Table4-3 Commodity classification table
序號 字段名稱 數據類型 約束條件 字段描述
1 category_id bigint(20) 主鍵 商品分類 ID
2 category_name varchar(50) 非空 商品分類名稱
3 parent_category_id varchar(50) 非空 上級分類 ID
4 orders varchar(50) 非空 排序值
5 shop id varchar(50) 非空 所屬店鋪 ID
(4)商品品牌表 該表存儲商品品牌的信息,主要是描述了商品所屬的品牌名稱,具體字段包括品牌
ID、商品分類ID、品牌名稱、品牌圖片。該表的詳細描述如表4-4所示。
表 4-4 商品品牌表
Table4-4 Product brand table
序號 字段名稱 數據類型 約束條件 字段描述
1 brand_id bigint(20) 主鍵 商品品牌 ID
2 category_id bigint(20) 非空 商品分類ID
3 brand_name varchar(20) 非空 品牌名稱
4 brand image varchar(20) 非空 品牌圖片
(5)商品規格表 該表存儲商品規格的信息,描述商品的具體規格類型,主要字段包括商品規格 ID、 商品分類ID、規格名稱。該表的詳細描述如表4-5所示。
表 4-5 商品規格表
Table4-5 Product speci行cation table
序號 字段名稱 數據類型 約束條件 字段描述
1 specification_id bigint(20) 主鍵 商品規格ID
2 category_id bigint(20) 非空 商品分類ID
3 specification name varchar(20) 非空 規格名稱
(6)購物車記錄表
該表存儲的是用戶向購物車添加的商品,主要字段包括添加記錄ID、店鋪ID、用 戶ID、商品ID、商品規格ID、購買數量。該表的詳描述如表4-6所示。
39
表 4-6 購物車記錄表
Table4-6 Shopping cart record sheet
序號 字段名稱 數據類型 約束條件 字段描述
1 record_id bigint(20) 主鍵 添加記錄 ID
2 shop_id bigint(20) 非空 店鋪 ID
3 user_id bigint(20) 非空 用戶 ID
4 product_id bigint(20) 非空 商品 ID
5 product_spe bigint(20) 非空 商品規格ID
6 qunantity int(20) 非空 購買數量
(7)訂單表
該表存儲用戶生成的訂單記錄,主要字段包括訂單ID、用戶ID、訂單所屬店鋪ID、 訂單所屬商家ID、訂單編號、訂單總金額、訂單狀態、收貨人手機號碼、收貨人地址、 備注、郵費、物流單號、物流公司、付款時間。該表的詳細描述如表 4-7 所示。
表 4-7 訂單表
Table4-7 Order form
序號 字段名稱 數據類型 約束條件 字段描述
1 order_id bigint(20) 主鍵 訂單 ID
2 user_id bigint(20) 外鍵 用戶 ID
3 shop_id bigint(20) 外鍵 所屬店鋪 ID
4 business_id bigint(20) 外鍵 所屬商家 ID
5 order_number varchar(50) 非空 訂單編號
6 total_money varchar(50) 非空 訂單總金額
7 order_state varchar(50) 非空 訂單狀態
8 receiver_phone varchar(50) 非空 收貨人手機號
9 receiver_address varchar(50) 非空 收貨人地址
10 remark varchar(50) 非空 備注
11 postage varchar(50) 非空 郵費
12 logistics_number varchar(50) 非空 物流單號
13 logistics_compony varchar(50) 非空 物流公司
14 payment time varchar(50) 非空 付款時間
(8)訂單詳情表 該表存儲訂單的訂單明細,可用于描述訂單內購買的商品和商品規格相關信息。主 要字段包括訂單詳情ID、訂單ID、商品ID、商品規格ID、購買數量。該表的詳細描 述如表 4-8 所示。
40
表 4-8 訂單詳情表
Table4-8 Order details table
序號 字段名稱 數據類型 約束條件 字段描述
1 order_detail_id bigint(20) 主鍵 訂單詳情 ID
2 order_id bigint(20) 外鍵 訂單 ID
3 product_id bigint(20) 外鍵 商品 ID
4 product_detail_d bigint(20) 外鍵 商品規格 ID
5 purchase quantiy int(20) 非空 購買數量
(9)支付記錄表
該表存儲訂單的支付記錄,主要字段包括支付記錄ID、支付編號、訂單ID、支付 金額、支付狀態。該表的詳細描述如表 4-9 所示。
表 4-9 支付記錄表
Table4-9 Payment Record Form
序號 字段名稱 數據類型 約束條件 字段描述
1 payment record id bigint(20) 主鍵 支付記錄 ID
2 order_id bigint(20) 外鍵 訂單 ID
3 payment_number varchar(50) 非空 支付編號
4 payment_amount varchar(20) 非空 支付金額
5 Payment status varchar(20) 非空 支付狀態
(10)店鋪申請表
該表存儲店鋪申請的信息,主要字段包括店鋪申請ID、店鋪名稱、店鋪簡介、店 鋪所屬商家的ID、審核狀態。其中審核狀態存儲的是待審核、審核通過和審核不通過 三種狀態類型。該數據表的詳細描述如表 4-10所示。
表 4-10 店鋪申請表
Table4-10 Store application form
序號 字段名稱 數據類型 約束條件 字段描述
1 shop_application_id bigint(20) 主鍵 店鋪申請 ID
2 business_id bigint(20) 外鍵 所屬商家 ID
3 shop_introduction varchar(100) 非空 店鋪簡介
4 shop_name varchar(20) 非空 店鋪名稱
5 approval status varchar(20) 非空 審核狀態
(11)店鋪信息表
該表存儲店鋪的信息,店鋪信息表的主要字段包括店鋪ID、店鋪名稱、店鋪簡介、 店鋪所屬商家的ID、店鋪鏈接、是否營業。該表的詳細描述如表4-11所示。
41
表 4-11 店鋪信息表
Table4-11 Store Information Form
序號 字段名稱 數據類型 約束條件 字段描述
1 shop_id bigint(20) 主鍵 店鋪 ID
2 business_id bigint(20) 外鍵 商家 ID
3 shop_name varchar(50) 非空 店鋪名稱
4 shop_introduction varchar(50) 非空 店鋪簡介
5 shop_link varchar(50) 非空 店鋪鏈接
6 business state varchar(50) 非空 營業狀態
(12)推薦信息表
該表存儲推薦給用戶的商品,推薦信息表的主要字段包括推薦ID、用戶ID、商品
ID。該表的詳細描述如表4-12所示
表 4-12 推薦信息表
Table4-12 Recommended information form
序號 字段名稱 數據類型 約束條件 字段描述
1 recommend_id bigint(20) 主鍵 推薦 ID
2 user_id varchar(100) 非空 用戶 ID
3 product id bigint(20) 非空 商品 ID
4.5 本章小節
本章通過平臺的整體功能結構、技術架構以及數據庫表三個方面展示了基于微服務 架構的電商平臺的概要設計。承接了上一章對平臺用戶的需求分析,本章的平臺設計目 標明確,按照概要設計的規范和方法,將功能模塊設計的高內聚低耦合,以方便項目后 期的開發、測試和維護。并且繪制了平臺的整體E-R圖,并根據此E-R圖對基于微服 務架構的電商平臺做了詳細的數據庫表設計,通過細致的數據庫設計為基礎,為接下來 的平臺詳細設計和實現打下堅實的基礎。
42
5平臺詳細設計與實現
本章將依據上述需求分析和概要設計對項目進行詳細設計和實現。詳細設計的根本 目標是確定應該怎樣具體地實現所要求的系統,以此得出對目標系統的精確描述,從而 在編碼階段直接轉化成程序。由于篇幅的限制,在每個微服務中僅選擇關鍵功能進行詳 細闡述。接下來本章將通過類圖、時序圖、流程圖來描述基于微服務架構的電平臺各個 模塊的詳細設計內容和實現過程。
5.1商品信息展示微服務實現
商品信息展示微服務主要包含商品分類展示、商品輪播和商品搜索功能。用戶進入 電商平臺首先看到的是所有商品的分類展示以及商品輪播展示,然后可以通過商品搜索 功能進行精準查找,查找成功后進入商品界面還可以通過點擊商品的規格標簽進行下一 步的篩選。
本小節對商品分類展示功能中涉及到的商品分類展示功能進行詳細描述。
(1)商品分類展示模塊業務流程
商品分類展示模塊的業務流程是首先用戶進入首頁,然后在頁面左側瀏覽商品分類 展示,在首頁底部還可以看到商品推薦,用戶在這個界面可以通過點擊商品的圖片進入 到對應商品的詳情界面。具體的業務流程圖如圖 5-1 所示。
圖 5-1 商品分類展示模塊業務流程圖
Figure5-1 Commodity classification display module business flow chart
43
(2)商品分類展示模塊核心類設計
CommodityCf 是商品分類實體類,用于向用戶展示商品的所有分類信息,通過定義 實體類便于數據在各個層之間進行傳遞。CommodityCfController是商品管理相關控制 類,負責獲取并響應用戶對商品的處理請求,調用 CommodityCfService 類相關方法執 行具體的業務邏輯。 CommodityCfService 類是商品分類展示的業務邏輯處理類,封裝了 查詢商品所有分類的具體方法。CommodityCfServicelmpl類是CommodityCfService類的 實現類,對Service層里封裝定義的方法進行具體邏輯的實現。CommodityCfMapper類 封裝了數據庫操作的具體方法,包括對商品分類的查詢方法,操作后返回結果,前端結 果后進行展示。具體的商品分類展示模塊的類圖如圖5-2 所示。
圖 5-2 商品分類展示模塊類圖
Figure5-2 Commodity classification display module class diagram
(3)商品分類展示模塊實現邏輯
CommodityController 類負責接收用戶對查看商品分類的請求,這種請求是使用前端 的 ajax 技術發送過來的,當接收到請求后調用 CommodityService 類來處理,然后再調 用CommodityMapper類中的select方法把商品的分類信息存儲到對應的商品分類集合中 并返回結果,前端拿到結果后進行展示。用以表達商品分類展示模塊實現邏輯的時序圖 如圖 5-3 所示。
44
(4)商品分類展示模塊實現界面 用戶進入電商平臺后首先看到的是商品的分類展示界面,該界面的左側欄是所有商 品的分類,用戶可以點擊進入到對應的商品界面。界面如圖5-4 所示。
家用電器
手機/運營商/數碼
電腦/辦公
家居/家具/家裝/廚具 男裝/女裝/童裝/內衣 美妝/個護清潔/寵物 女鞋/箱包/鐘表/珠圭 男鞋/運動/戶外 房產/汽車/汽車用品 母嬰/玩具樂器 食品/酒類/生鮮/特產 藝術/禮品曲/農資綠植 醫藥保健/計生情趣 圖書/文娛/教育/電子書 誦/酒店/磁/生活 理財/眾籌/白條/保險 安裝/維修/清洗/二手 工4k品
45
5.2商品推薦微服務實現
商品推薦微服務實現的功能主要在首頁底部、商品詳情頁底部、購物車頁底部為用 戶進行個性化商品推薦,它的核心是依據推薦算法為用戶推薦可能感興趣的商品。在推 薦算法中,協同過濾算法是最為常見的,但存在冷啟動問題。基于內容的推薦算法可以 很好的解決冷啟動問題,但是不擅長實時推薦。故為了優化推薦算法從而提高用戶購物 的體驗,本平臺結合基于物品的協同過濾推薦算法和基于內容的推薦算法進行設計。
5.2.1算法設計
本節主要闡述應用到商品推薦微服務中的推薦算法,首先對基于內容的推薦算法和 基于物品的協同過濾算法進行簡要介紹,然后對使用層疊法混合以上兩種算法形成的混 合推薦算法設計進行詳細描述。
(1)基于物品的協同過濾推薦算法
基于物品的協同過濾推薦算法主要思想,根據所有用戶對物品的喜好程度計算出所 有物品的相似物品,再根據當前用戶對所有物品的喜好程度以及物品之間的相似性程 度,從而選中topN個物品推薦給用戶[30]。
該算法的優點是相較于基于用戶的協同過濾算法而言跳過了計算相似用戶,直接計 算相似物品,使得算法邏輯更加清晰。并且計算量與物品數量成正比,適合用戶多、商 品少的電商平臺。其缺點在于存在冷啟動的問題
其難點在于物品相似性的計算,目前最為流行的幾種計算方法包括皮爾遜相關系 數、歐式距離、余弦相似性、谷本系數、對數似然比相似度,本文中使用的是余弦相似 性計算物品之間的相似度。如式5-1所示,其中i和j分別代表兩個用戶-物品的評分向 量。
£ ij
Cosine(i, j) = > k~^ ( 5-1)
n
2
(2)基于內容的推薦算法
基于內容的推薦算法主要思想,首先是提取物品的特征形成特征向量,這些特征的 作用是用來描述物品,接著是根據之前記錄的用戶的歷史偏好信息來構建出用戶興趣向 量,最后通過比較兩個向量的相似性得出一組相關性最強的物品推薦給用戶[31]。
該算法優點就是不存在物品冷啟動問題。對于基于內容的推薦算法的缺點,在于物
46
品特征的提取較為困難,對于用戶興趣模型在電商平臺中可以根據用戶歷史瀏覽、搜索、 購買、評價過的商品,根據商品的描述信息,然后再利用詞頻-逆文檔頻率方法提取物 品特征,然后利用Jacard系數計算商品之間的相似度。如式5-2所示,其中i和j是抽 取的物品特征向量,Ni1j1表示i和j共有的特征分量,Niijo表示i有而j沒有的特征分量, Ni®i表示j有而j沒有的特征分量。
( 3)混合算法設計 協同過濾推薦算法是目前最為流行,但是在實際的應用中為了保證推薦的準確率, 所以往往很少單獨使用協調過濾算法,更常見的是將兩種或者更多算法組合起來的混合 推薦算法。在本項目電商平臺中將采用常見的基于物品的協同過濾推薦算法,考慮到協 同過濾算法存在的數據稀疏和物品冷啟動問題,所以也將使用基于內容的推薦算法與其 進行組合使用,二者使用層疊法組合成混合推薦算法[32]。混合推薦算法的相似度計算公 式如式 5-3 所示,根據層疊的思想將兩個相似度矩陣進行相乘得到物品最終的物品相似 度矩陣,其中Sim(i,j)表示混合物品相似度矩陣,Cosine(i,j)表示基于物品的協同過濾推 薦算法的物品相似度矩陣,Jacard(i,j)表示基于內容的推薦算法的物品相似度矩陣。最后 再將層疊后的相似度與用戶對物品的評分矩陣相乘得到最后的推薦矩陣,并且將推薦矩 陣中用戶訪問過的商品對應的矩陣元素置為零,即得到推薦列表,計算公式如5-4所示, 其中Rec(u,v)表示物品推薦矩陣,Score(u,v)表示用戶-物品評分矩陣。混合推薦算法的 具體流程圖如圖5-5所示。
1)首先是獲取電商平臺的用戶日志信息,根據日志信息中的用戶歷史行為數據 來構建用戶-商品矩陣。然后使用奇異值分解對用戶-商品矩陣進行壓縮,降低矩陣的維 數,從而提高推薦準確度。接著根據壓縮后的用戶-商品評分矩陣,計算出商品相似性 矩陣。
2)根據基于內容的推薦算法思想,先提取商品特征并建立特征矩陣,然后對用 戶-商品矩陣中當前用戶的興趣矩陣與商品特征矩陣進行相似性比較,計算商品之間的 相似性矩陣。
3)由用戶-商品矩陣計算商品相似性矩陣,與2)中基于內容的推薦算法計算出 來的相似性矩陣進行層疊相乘得到新的商品相似性矩陣,最后得到推薦商品列表。
Sim(i, j) = Cosine(i, j) x Jacard(i, i) (5-3)
Rec(u, v) = Sim(i, j) x Score(u, v) (5-4)
47
圖 5-5 混合推薦算法流程圖
Figure5-5 Hybrid recommendation algorithm flow chart
5.2.2商品推薦微服務詳細設計與實現
商品推薦微服務包含首頁推薦、商品詳情頁推薦以及購物車頁底部推薦功能,三者 主要區別在于推薦的區域不同,故本小節直接對商品推薦微服務中涉及到的業務流程、 核心類以及實現邏輯進行詳細描述。
(1)商品推薦微服務業務流程 商品推薦微服務的業務流程是當用戶進入到電商平臺首頁時,首先進行登錄驗證用 戶信息,登錄成功后系統獲取用戶的日志信息,并根據日志信息進行推薦算法的執行從 而得到推薦商品列表,隨后會看到為其進行推薦的商品,然后當用戶點擊商品圖片進入 到商品詳情頁后會在該頁面的底部見到商品推薦,當用戶進入到購物車頁面時也會看到 商品推薦。具體的業務流程圖如圖 5-6 所示。
48
圖 5-6 商品推薦微服務業務流程圖
Figure5-6 Product recommendation microservice business flowchart
(2)商品推薦微服務核心類設計
HomeRecommend、ShoppingCartRecommend、InfoRecommend、分別I是首頁推薦實 體類、商品詳情頁推薦實體類、購物車推薦實體類,用于向用戶提供商品推薦功能,包 括首頁推薦、商品詳情頁推薦以及購物車頁底部推薦,通過定義實體類便于數據在各個 層之間進行傳遞。RecommendController是推薦相關控制類,負責獲取并響應用戶對商 品的推薦請求,調用 RecommendService 類相關方法執行具體的業務邏輯。 RecommendService 類是商品推薦的業務邏輯處理類,封裝了首頁推薦、商品詳情頁推 薦以及購物車頁底部推薦具體方法。 RecommendServiceImpl 類是 RecommendService 類 的實現類,對 Service 層里封裝定義的方法進行具體邏輯的實現。 RecommendMapper 類 封裝了數據庫操作的具體方法,包括對數據庫中商品信息的增刪改查,操作后返回結果, 前端結果后進行展示。具體的商品推薦功能的類圖如圖 5-7 所示。
49
Recomme ndMapper -recomme nd」d -user_id
? product_id
+select() +insert()
圖 5-7 商品推薦微服務類圖
Figure5-7 Commodity recommendation microservice class diagram
(3)商品推薦微服務實現邏輯
RecommendController 類負責接收用戶對商品推薦的請求,這種請求是使用前端的 ajax 技術發送過來的,當接收到請求后調用 RecommendService 類來處理,然后再調用 RecommendMapper 類中的 select 方法把商品的分類信息存儲到對應的商品分類集合中 并返回結果,前端拿到結果后進行展示。用以表達商品推薦微服務實現邏輯的時序圖如 圖 5-8 所示
50
請求推薦 A1
請求推薦
請求推薦
請求推薦A;
返回推薦數據
進入購物車知
請求推薦
返回推薦數據
返回推薦數據
扌隹薦冏員展秀
進入商品詳情卑;
返回推薦數據
返回推薦數據
返回推薦數據
返回推薦數據
圖 5-8 商品推薦微服務時序圖
Figure5-8 Timing diagram of product recommendation microservic
(4)商品推薦模塊實現界面 用戶進入到首頁后,可在首頁下方看到商品推薦內容,在進入到商品詳情頁內及購 物車頁內的下方也可看到商品推薦內容。界面如 5-9 所示。
5.3商品搜索微服務實現
商品搜索微服務主要包含關鍵字搜索、商品規格搜索、搜索結果分頁顯示和搜索結 果排序功能。用戶進入電商平臺后根據需求可以通過商品搜索功能進行精準查找,查找 成功后進入商品界面還可以通過點擊商品的規格標簽進行下一步的篩選。
本小節對商品搜索微服務中涉及到的商品規格搜索模塊進行詳細描述。
(1)商品規格搜索模塊業務流程
商品規格搜索模塊的業務流程是首先用戶點擊搜索框然后輸入關鍵字,最后點擊確 認按鈕,如果后臺數據找到與關鍵字匹配的商品就返回結果,結果是分頁顯示并且已經 排好序,用戶再次點擊具體的商品規格對商品進行進一步的篩選,然后在這個界面可以 通過點擊商品的圖片進入到對應商品的詳情界面。具體的業務流程圖如圖 5-10所示。
52
圖 5-10 商品規格搜索模塊業務流程圖
Figure5-10 Product specification search module business flow chart
(2)商品規格搜索模塊核心類設計
Search 是搜索實體類,用于向用戶提供商品規格搜索模塊功能,通過定義實體類便 于數據在各個層之間進行傳遞。SearchController是搜索相關控制類,負責獲取并響應用 戶對商品的搜索請求,調用SearchService類相關方法執行具體的業務邏輯。SearchService 類是商品管理的業務邏輯處理類,封裝了商品規格搜索方法。SearchServicelmpl類是 SearchService 類的實現類, 對 Service 層里封裝定義的方法進行具體邏輯的實現。 SearchMapper類封裝了數據庫操作的具體方法,包括對數據庫中商品信息的查詢,操作 后返回結果,前端結果后進行展示。具體的商品規格搜索模塊的類圖如圖 5-11 所示。
53
SearchServicelmpI
-search Mapper
+getSearchList() +getCategoryld()
+getBra nd()
+getSpe() +getSearchFilter() +updateBra ndSpeList()
SearchMapper
-brand
-specificati on -productList -productAdsList
+select()
+insert()
+delete()
、+update()
圖 5-11 商品規格搜索模塊類圖
Figure5-11 Commodity specification search module class diagram
(2)商品規格搜索模塊實現邏輯
SearchController 類負責接收用戶對搜索商品的請求,這種請求是使用前端的 ajax 技 術發 送 過來 的 ,當 接收到 請求后 調用 SearchService 類來處 理請求 ,然后 再調用 SearchMapper 類中的 select 方法把商品的搜索信息存儲到對應的商品分類集合中并返回 結果,前端拿到結果后進行展示。用以表達商品規格搜索模塊實現邏輯的時序圖如圖 5-12 所示。
54
圖 5-12 商品規格搜索模塊時序圖
Figure5-12 Product specification search module timing diagram
(3)商品規格搜索模塊實現界面 用戶使用關鍵字進行搜索,得到搜索結果界面后,可根據界面內商品的規格進行進一步的 篩選搜索。界面如 5-13 所示。
余5?•藝昱 > 品》•艮年:L0NG1NS x 用人斟.歲I X "手礦
碗: es
二弼昶: 二4曲
目幀忸 RE
腸; 30* 50* 100* 200* 300* 500粕I上 生莎湫 天
RS I \ 沁tu ' Bttl ; I nffiri 1/100
圖 5-13 商品規格搜索界面
Figure5-13 Product specification search interface
5.4訂單管理微服務實現
訂單管理微服務主要包含全部訂單查詢、待付款、待發貨、待收貨以及待評價功能。 用戶對商品進行下單后,可以到全部訂單界面查看到所有訂單的不同狀態,并且可以對 訂單進行刪除、支付、評價等操作,同時可以根據需求查看待付款、待發貨、待收貨以 及待評價狀態下的訂單信息。本小節對訂單管理微服務中涉及到的全部訂單查詢模塊進 行詳細描述。
(1)全部訂單管理模塊業務流程 全部訂單查詢模塊的業務流程是首先用戶點擊全部訂單,如果后臺查詢到有訂單數 據,返回結果,通常結果是按照下單時間的先后順序排序,用戶在這個界面可以通過點 擊商品訂單的圖片進入到對應商品的詳情界面,也可以對訂單進行支付、刪除、評價等 操作。具體的業務流程圖如圖 5-14 所示。
圖 5-14 全部訂單管理模塊業務流程圖
Figure5-14 Business flowchart of all order management modules
56
(2)全部訂單管理模塊核心類設計
Order 是訂單實體類,用于向用戶提供全部訂單查詢功能,通過定義實體類便于數 據在各個層之間進行傳遞。OrderController是訂單相關控制類,負責獲取并響應用戶對 訂單的查詢請求,調用 OrderService 類相關方法執行具體的業務邏輯。 OrderService 類 是訂單查詢的業務邏輯處理類,封裝了查詢全部訂單的方法。 OrderServiceImpl 類是 OrderService 類的實現類, 對 Service 層里封裝定義的方法進行具體邏輯的實現。 OrderMapper 類封裝了數據庫操作的具體方法,包括對數據庫中訂單信息的查詢,操作 后返回結果,前端結果后進行展示。具體的全部訂單查詢功能的類圖如圖 5-15 所示。
圖 5-15 全部訂單查詢模塊類圖
Figure5-15 All order query module class diagram
(2)訂單查詢模塊實現邏輯
OrderController 類負責接收用戶對訂單進行查詢的請求,這種請求是使用前端的 ajax 技術發送過來的,當接收到請求后調用 OrderService 類來處理請求,然后再調用 OrderMapper類中的select方法把商品的搜索信息存儲到對應的訂單集合中并返回結果, 前端拿到結果后進行展示。用以表達全部訂單查詢模塊實現邏輯的時序圖如圖5-16 示。
57
圖 5-16 訂單查詢模塊時序圖
Figure5-16 Sequence diagram of order query module
(4)訂單查詢模塊實現界面 用戶進入我的訂單界面可查看所有的訂單信息,在該界面用戶可以對尚未支付的訂
圖 5-17 訂單查詢界面
Figure5-17 Order query interface
58
5.5購物車管理微服務實現
購物車管理微服務主要包含加入購物車、修改商品數量、刪除商品、商品結算、監 控商品狀態以及商品推薦功能。用戶在進入到商品詳細界面后可以根據需要點擊加入購 物車,把喜愛的商品添加到購物車中,在購物車界面用戶可以修改商品數量、刪除商品 等。下面本節重點闡述加入購物車模塊。
本小節對購物車管理微服務中涉及到的加入購物車模塊進行詳細描述。
(1)加入購物車模塊業務流程 加入購物車模塊的業務流程是首先用戶點擊加入購物車,此時先判斷該商品庫存是 否大于零,如果小于零則無法添加該商品到購物車,如果大于零再判斷購物車里是否已 經存在該商品如果存在則將該商品的數量加一,否則就將商品新添加到購物車中。具體 的業務流程圖如圖 5-18 所示。
圖 5-18 加入購物車模塊業務流程圖
Figure5-18 Add to shopping cart module business flow chart
59
(2)加入購物車模塊核心類設計
ShoppingCart 是購物車實體類,用于向用戶提供加入購物車功能,通過定義實體類 便于數據在各個層之間進行傳遞。ShoppingCartController是購物車相關控制類,負責獲 取并響應用戶對商品的加入購物車請求,調用 ShoppingCartService 類相關方法執行具體 的業務邏輯。 ShoppingCartService 類是加入購物車的業務邏輯處理類,封裝了加入購物 車、修改商品數量、刪除商品、商品結算等具體方法。 ShoppingCartServiceImpl 類是 ShoppingCartService 類的實現類,對 Service 層里封裝定義的方法進行具體邏輯的實現。 ShoppingCartMapper 類封裝了數據庫操作的具體方法,包括對數據庫中購物車內的商品 信息的增刪改查,操作后返回結果,前端結果后進行展示。具體的加入購物車模塊的類 圖如圖 5-19 所示。
, U
ShoppingCartMapper -productjd -product_co unt -busi ness_id +select() +insert() +delete() FupdateO
圖 5-19 加入購物車模塊類圖
Figure5-19 Add to cart module class diagram
(2)加入購物車模塊實現邏輯
ShoppingCartController 類負責接收用戶對商品加入購物車的請求,這種請求是使用前端 的 ajax 技術發送過來的,當接收到請求后調用 ShoppingCartService 類來處理請求,然 后再調用 ShoppingCartMapper 類中的 update 方法把商品的搜索信息存儲到對應的訂單 集合中并返回結果,前端拿到結果后進行展示。用以表達加入購物車模塊實現邏輯的時 序圖如圖 5-20 所示。
60
4)加入購物車模塊實現界面
用戶進入商品詳情頁可點擊加入購物車,將商品添加到購物車中。界面如圖5-所示。
全卻商品2
□全遠 商品 單價 數雖 小計 握作
Q錯錯鐘表專莒店
浪琴(Longines)瑞士手表名匠殺列目 L2.628.4.78.3 皮帝. ¥11,680.00 1 + ¥11680.00 刪除
動機械男表大表寶男士手表腕表鋼帯 名匠男表 有吞移入關注
圖 5-21 加入購物車界面
Figure5-21 Add to shopping cart interface
5.6在線支付微服務實現
在線支付微服務主要包含微信支付和支付寶支付功能。用戶在進入到商品詳細界面
61 可以進行立即購買或者在購物車界面可以進行商品結算,微信支付與支付寶支付類似只 是支付鏈接不同,下面本節重點闡述微信支付模塊。
本小節對在線支付微服務中涉及到的微信支付模塊進行詳細描述。
(1)微信支付模塊業務流程
微信支付模塊的業務流程是首先用戶點擊商品圖片進入商品詳情頁,用戶點擊立即 購買選擇微信支付即可,也可在購物車頁面進行商品結算時選擇微信支付,也可在待付 款訂單頁面選擇微信支付。如果支付成功就生成支付成功結果并返回到前端顯示,否則 生成支付失敗結果返回到前端進行顯示。具體的業務流程圖如圖 5-22 所示。
圖 5-22 微信支付模塊業務流程圖
Figure5-22 WeChat payment module business flowchart
(2)微信支付模塊核心類設計
WeChatPay 是支付實體類,用于向用戶提供微信支付功能,通過定義實體類便于數 據在各個層之間進行傳遞。WeChatPayController是微信支付相關控制類,負責獲取并響 應用戶對商品的支付請求,調用 WeChatPayService 類相關方法執行具體的業務邏輯。
62
WeChatPayService 類是加入購物車的業務邏輯處理類,封裝了微信支付和支付寶支付具 體方法。WeChatPayServicelmpl 類是 WeChatPayService 類的實現類,對 Service 層里封 裝定義的方法進行具體邏輯的實現。WeChatPayMapper類封裝了數據庫操作的具體方 法,包括對數據庫中交易記錄信息的增刪改查,操作后返回結果,前端結果后進行展示。 具體的微信支付模塊的類圖如圖 5-23 所示。
圖 5-23 微信支付模塊類圖
Figure5-23 WeChat payment module class diagram
(3)微信支付模塊實現邏輯
PayController類負責接收用戶對商品支付的請求,這種請求是使用前端的ajax技術發送 過來的,當接收到請求后調用PayService類來處理請求,然后再調用PayMapper類中的 update 方法把商品的交易信息存儲到對應的交易記錄集合中并返回結果,前端拿到結果 后進行展示。用以表達微信支付功能實現邏輯的時序圖如圖 5-24 所示。
63
圖 5-24 微信支付模塊時序圖
Figure5-24 Timing diagram of WeChat payment module
(4)微信支付模塊實現界面 用戶通過對商品或者訂單進行支付時可以選擇微信支付功能,進行商品或者訂單的 支付。界面如圖 5-25 所示。
5.7用戶管理微服務實現
用戶管理微服務主要包含收藏夾、關注店鋪、我的足跡、我的優惠券以及個人信息 模塊。用戶在進入到我的界面可以進行個人信息設置、查看關注店鋪、查看我的足跡等 操作。下面本節重點闡述個人信息設置模塊。
本小節對用戶管理微服務中涉及到的個人信息設置模塊進行詳細描述。
(1)個人信息設置模塊業務流程
個人信息設置模塊的業務流程是首先用戶點擊我的頁面,如果還沒登錄,則先進行 登錄,登錄完畢后可以進入到個人信息界面進行個人信息的查看和編輯。具體的業務流 程圖如圖 5-26 所示。
圖 5-26 個人信息設置模塊業務流程圖
Figure5-26 Business flowchart of personal information setting module
65
(2)個人信息設置模塊核心類設計
User 是用戶實體類,用于向用戶提供個人信息設置功能,通過定義實體類便于數據 在各個層之間進行傳遞。UserController是個人信息設置相關控制類,負責獲取并響應 用戶對商品的支付請求,調用 UserService 類相關方法執行具體的業務邏輯。 UserService 類是個人信息設置的業務邏輯處理類,封裝了查詢、修改密碼等具體方法。
UserServiceImpl 類是 UserService 類的實現類,對 Service 層里封裝定義的方法進行具體 邏輯的實現。 UserMapper 類封裝了數據庫操作的具體方法,包括對數據庫中個人信息 的增刪改查,操作后返回結果,前端結果后進行展示。具體的個人信息設置的類圖如圖 5-27 所示。
Figure5-27 Personal information setting module class diagram
(2)個人信息設置模塊實現邏輯
UserController 類負責接收用戶對個人信息設置的請求,這種請求是使用前端的 ajax 技術發送過來的,當接收到請求后調用 UserService 類來處理請求,然后再調用 UserMapper 類中的 select、update 方法把商品的交易信息查詢、更新到對應的個人信息 集合中并返回結果,前端拿到結果后進行展示。用以表達個人信息設置模塊實現邏輯的 時序圖如圖 5-28 所示。
66
(4)個人信息設置模塊實現界面 用戶進入個人信息設置界面,可對個人信息進行修改包括昵稱、密碼以及頭像信息。 界面如圖 5-29 所示。
圖 5-29 個人信息設置界面
Figure5-29 Personal information setting interface
67
5.8后臺管理微服務實現
后臺管理微服務主要包含店鋪管理模塊、商品管理模塊以及商品輪播廣告管理模 塊。后臺管理員可以對店鋪入駐的申請進行通過或者駁回,也可以對店鋪上新的商品進 行審核,同時可以對商品輪播廣告進行管理。下面本節重點闡述商品管理模塊。
本小節對后臺管理微服務中涉及到的商品管理模塊進行詳細描述。
(1)商品管理模塊業務流程 商品管理模塊的業務流程是后臺管理人員進入到商品管理界面,然后后臺管理人員 可查看所有已經上架的商品以及申請上架的商品,并且可以對申請上架的商品進行同意 或者駁回。具體的業務流程圖如圖 5-30 所示。
圖 5-30 商品管理模塊業務流程圖
Figure5-30 Commodity management module business flowchart
68
(2)商品管理模塊核心類設計
CommodityMg 是商品管理實體類,用于向后臺管理人員提供商品管理功能,通過 定義實體類便于數據在各個層之間進行傳遞。CommodityMgController是商品管理相關 控制類,負責獲取并響應后臺管理人員對商品的管理請求,調用 CommodityMgService 類相關方法執行具體的業務邏輯。CommodityMgService類是店鋪管理的業務邏輯處理 類,封裝了查詢、審核等具體方法。CommodityMgServiceImpl 類是 CommodityMgService 類的實現類,對Service層里封裝定義的方法進行具體邏輯的實現。CommodityMgMapper 類封裝了數據庫操作的具體方法,包括對數據庫中店鋪信息的增刪改查,操作后返回結 果,前端結果后進行展示。具體的商品管理的類圖如圖 5-31 所示。
CommodityMgController
> f CommodityMgService ]
-Shop +getAlllnfo()
+getRecall()
+getAgree()
汁 getDisagree() ‘
+getAlllnfo() +getRecall() +getAgree() +getDisagree()
A
1 CommodityMapper
CommodityMg Com mod ityMgService 1 mp 1 ?shop id
-shop id ? ShopMapper -business id
-business id +getAlllnfo() n -approval status
-approval status +getRecall() +select()
+get() +getAgree() +insert()
+set() +getDisagree() +delete()
〔+update()
圖 5-31 商品管理模塊類圖
Figure5-31 Commodity management module class diagram
(2)商品管理模塊實現邏輯
CommodityMgController 類負責接收后臺管理人員對店鋪管理的請求,這種請求是 使用前端的 ajax 技術發送過來的,當接收到請求后調用 CommodityMgService 類來處理 請求,然后再調用 CommodityMgMapper 類中的 select、 insert 方法把商品的交易信息查 詢、插入到對應的店鋪信息集合中并返回結果,前端拿到結果后進行展示。用以表達店 鋪管理模塊實現邏輯的時序圖如圖5-32 所示。
69
圖 5-32 商品管理模塊時序圖
Figure5-32 Timing diagram of commodity management module
(3)商品管理實現界面 后臺管理人員進入界面后,可查看所有商品的信息,具體包括商品標題、類別、品牌、狀 態信息,可以對已上架商品進行撤回操作,也可以對待上架商品進行同意或者駁回操作。 界面如圖 5-33所示。
)請輸入內容
陰號 標題 商品廿類 品牌
15 魯花食用油5S物理壓榨 壓甘級花空飆 食用油 魯花 上架 撤回
8 港榮蒸蛋糕奶香味900g 整箱餅理糕 零食小吃 港榮 待上架 同意 駁回
363 HR松 禮盒9參]
710g火紅A零負大禮包 零創並 三只松鼠 待上架 同意 駁回
586 衛龍大面筋辣條香辣味
大面筋68g/袋 徹回
12 3 4 5 6 ••• 10 > 前往 1 頁
圖 5-33 商品管理界面
Figure5-33 Commodity management interface
70
5.9商家管理微服務實現
商家管理微服務主要包含基本信息管理模塊和商品信息管理模塊。入駐的商家在進 入到商家管理界面可以對店鋪的商品進行申請上架,也可以修改已經上架的商品信息并 重新申請上架,同時可以修改店鋪的基本信息。下面本節重點闡述商品信息管理。
本小節對商家管理微服務中涉及到的商品信息管理模塊進行詳細描述。 (1)商品信息管理模塊業務流程
商品信息管理模塊的業務流程是首先商家登錄系統,如果還沒登錄,則先進行登錄, 登錄完畢后可以進入到商品信息管理界面進行商品信息的查看、編輯以及申請上架。具 體的業務流程圖如圖 5-34 所示。
圖 5-34 商品信息管理模塊業務流程圖
Figure5-34 Business flowchart of commodity information management module
(2)商品信息管理模塊核心類設計
Commodity 是商品實體類,用于向上架提供商品信息管理功能,通過定義實體類便 于數據在各個層之間進行傳遞。CommodityController是商品信息管理相關控制類,負責 獲取并響應商家對商品的管理請求,調用 CommodityService 類相關方法執行具體的業 務邏輯。CommodityService類是商品信息管理的業務邏輯處理類,封裝了查詢、編
71
輯、申請上架、刪除等具體方法。CommodityServicelmpl類是CommodityService類的實 現類,對Service層里封裝定義的方法進行具體邏輯的實現。CommodityMapper類封裝 了數據庫操作的具體方法,包括對數據庫中商品信息的增刪改查,操作后返回結果,前 端結果后進行展示。具體的商品信息管理的類圖如圖 5-35 所示。
圖 5-35 商品信息管理模塊類圖
Figure5-35 Commodity information management module class diagram
(2)商品信息管理模塊實現邏輯
CommodityController 類負責接收商家對商品管理的請求,這種請求是使用前端的 ajax 技術發送過來的,當接收到請求后調用 CommodityService 類來處理請求,然后再調 用 CommodityMapper 類中的 select、 insert、 update 方法把商品的信息查詢、插入、
72
更新到對應的商品信息集合中并返回結果,前端拿到結果后進行展示。用以表達商品信 息管理模塊實現邏輯的時序圖如圖 5-36 所示。
圖 5-36 商品信息管理模塊時序圖
Figure5-36 Timing diagram of commodity information management module
(3)商品信息管理實現界面 商家進入界面,可查看所有商品信息,具體有商品標題、類別、品牌、狀態信息, 商家可以對已上架商品進行編輯后申請上架和刪除,也可以對下架商品進行編輯后申請 上架和刪除。界面如圖 5-37 所示。
Q請輸入內容
新堵商品
圖 5-37 商品信息管理界面
Figure5-37 Commodity information management interface
6系統測試
測試的目的是為了發現系統中的錯誤,是為了保證系統可靠性的有效手段。根據前 文中的功能性需求和非功能性需求,對平臺的測試用例進行設計。下面主要從系統的測 試方法、功能性測試和非功能性測試來介紹基于微服務架構的電商平臺的測試工作。
6.1測試方法
是考慮軟件代碼邏輯還是考慮軟件功能兩個方面,測試方法可以劃分為黑盒測試和 白盒測試[33]。本文主要采用黑盒測試,從系統的功能層面出發設計測試用例,測試系統 的各個模塊功能。下面介紹這種方法。
黑盒測試是不關注軟件的代碼邏輯,只關注軟件是否可以正常完成需求的功能。它 的測試方式就是在測試過程中,通過不同的輸入條件所返回的輸出結果然后對比預期結 果,以此來驗證軟件的功能是否達到軟件需求規格說明書的要求。
6.2測試環境
測試前需要對測試環境進行部署,考慮到基于微服務架構的電商平臺面向廣大用戶 使用,不同用戶的軟硬件配置不同,系統具體的測試環境如表 6-1 所示。
表 6-1 測試環境
Table6-1 test environment
條目 內容
操作系統 WindowslO
CPU 4 核
帶寬 5Mbps
數據庫環境 Mysql Server5.7
瀏覽器 Chrome、火狐
6.3 功能性測試
功能測試即為黑盒測試,下面根據需求分析階段的功能性需求來編寫測試用例[34], 并將測試結果對比預期結果以此來檢驗基于微服務架構的電商平臺的各項功能是否滿 足要求,下面展示各部分功能的具體測試用例[35]。商品信息展示微服務的功能測試用例 如表 6-2。
75
表 6-2 商品信息展示微服務測試用例表
Table6-2 Product information display microservice test case table
測試用例編號 TCOO1
測試用例名稱 測試目的 優先級 前置條件 測試流程 商品信息展示微服務測試 確保商品信息展示頁面的全部功能正常 高 數據庫和網絡正常
1. 點擊商品全部分類、輪播廣告、標簽列表,看是否可以正常跳轉
2. 查看商品推薦是否正常顯示,并點擊圖片看是否可以正常跳轉
預期結果 測試結果 結論 商品信息展示頁面全部功能正常
與預期結果一致
測試通過
商品推薦微服務主要的功能模塊有首頁推薦、購物車推薦以及商品詳細頁推薦,商 品推薦微服務的功能測試用例如表 6-3。
表 6-3 商品推薦微服務測試用例表
Table6-3 Commodity recommendation microservice test case
測試用例編號 TCOO2
測試用例名稱 商品推薦微服務測試
測試目的 確保商品推薦功能的相關性和可用性
優先級 高
前置條件 數據庫和網絡正常
測試流程 1. 查看推薦的個性化的商品是否能正常顯示和正常跳轉
2. 查看推薦的個性化的商品是否符合用戶喜好
預期結果 商品推薦功能正常
測試結果 與預期結果一致
結論 測試通過
商品搜索微服務主要的功能模塊有關鍵字搜索、商品規格搜索、搜索結果排序、搜
索結果分頁,商品搜索微服務的功能測試用例如表 6-4。
表 6-4 商品搜索微服務測試用例表
Table6-4 Product search microservice test case table
測試用例編號 TCOO3
測試用例名稱 商品搜索微服務測試
測試目的 確保商品搜索微服務下的全部功能正常
優先級 高
前置條件 數據庫和網絡正常
測試流程 1. 使用關鍵字搜索,檢查結果是否正常分頁和排序顯示
2. 使用商品規格搜索,檢查結果是否正常分頁和排序顯示
預期結果 商品搜索微服務下的全部功能正常
測試結果 與預期結果一致
結論 測試通過
76
訂單管理微服務主要的功能模塊有訂單信息展示、待付款、待發貨、待收貨以及待
評價。訂單管理微服務的功能測試用例如表 6-5。
表 6-5 訂單管理微服務測試用例表 Table6-5 Order management microservice test case table
測試用例編號 TC004
測試用例名稱 測試目的 優先級 前置條件 測試流程 訂單管理微服務測試 確保訂單管理微服務下的全部功能正常 高 數據庫和網絡正常
1.點擊全部訂單并進入頁面,檢查頁面中的訂單信息是否正確,包 括價格和金額
2.點擊待付款并進入頁面,檢查是否可以立即付款和取消付款
3.點擊待發貨并進入頁面,檢查是否可以取消訂單和提醒發貨
4.點擊待收貨并進入頁面,檢查是否可以評價訂單和刪除訂單
預期結果 測試結果 結論 訂單管理微服務下的全部功能正常
與預期結果一致
測試通過
購物車管理微服務主要的功能模塊有加入購物車、修改商品數量、刪除商品、商品
結算以及商品推薦。購物車管理微服務的功能測試用例如表 6-6。
表 6-6 購物車管理微服務測試用例表
Table6-6 Shopping cart management microservice test case table
測試用例編號 TC005
測試用例名稱 測試目的 優先級 前置條件 測試流程 購物車管理微服務測試 確保購物車管理微服務下的全部功能正常 高
數據庫和網絡正常,并且用戶成功登錄
1.點擊加入購物車,查看頁面內的商品是否符合之前加入的商品
2.修改商品數量,檢查數量跟金額是否正確
3.點擊結算,檢查是否可以跳轉至支付界面
4.刪除商品后,再進入購物車頁面檢查是否還存在該商品
5.把庫存為 0 的商品加入購物車,檢查是否提示商品無法購買
預期結果 測試結果 結論 購物車管理微服務下的全部功能正常
與預期結果一致
測試通過
77
在線支付微服務主要的功能模塊有微信支付和支付寶支付。在線支付微服務的功能 測試用例如表 6-7。
表 6-7 在線支付微服務測試用例表
Table6-7 Online payment microservice test case list
測試用例編號 TCOO6
測試用例名稱 測試目的 優先級 前置條件 測試流程 在線支付微服務測試 確保在線支付微服務下的全部功能正常 高
數據庫和網絡正常
1. 使用微信支付,查看是否可以跳轉至微信頁面并進行支付
2. 使用支付寶支付,查看是否可以跳轉至支付寶頁面并進行支付
預期結果 測試結果 結論 在線支付微服務下的全部功能正常
與預期結果一致
測試通過
用戶管理微服務主要的功能模塊有收藏夾、我的足跡、關注店鋪、我的優惠券以及
個人信息。用戶管理微服務的功能測試用例如表 6-8。
表 6-8 用戶管理微服務測試用例表
Table6-8 User management microservice test case table
測試用例編號 TCOO7
測試用例名稱 測試目的 優先級 前置條件 測試流程 用戶管理微服務測試 確保用戶管理微服務下的全部功能正常 高 數據庫和網絡正常
1. 點擊收藏夾并進入頁面,查看商品信息是否正確
2. 點擊關注店鋪并進入頁面,查看店鋪信息是否正確
3.點擊我的足跡并進入頁面,查看瀏覽過的商品是否符合
4.點擊我的優惠券并進入頁面,查看優惠券信息是否符合
5. 點擊個人信息并進入頁面,修改收貨地址、頭像以及昵稱后保存 并退出,再次進入平臺檢查以上信息是否是修改后的
預期結果 測試結果 結論 用戶管理微服務下的全部功能正常
與預期結果一致
測試通過
78
后臺管理微服務主要的功能模塊有店鋪管理、商品管理以及輪播廣告管理。后臺管 理微服務的功能測試用例如表 6-9。
表 6-9 后臺管理微服務測試用例表
Table6-9 Backstage management microservice test case table
測試用例編號 TC008
測試用例名稱 后臺管理微服務測試
測試目的 確保后臺管理微服務下的全部功能正常
優先級 高
前置條件 數據庫和網絡正常
測試流程 1. 點擊并進入店鋪管理頁面,駁回或者通過店鋪入駐申請,檢查是 否操作成功
2. 點擊并進入商品管理頁面,駁回者通過商品上架申請,檢查是否 操作成功
3. 進入輪播廣告管理頁面,對廣告進行增刪改查操作后,檢查是否 操作成功
預期結果 后臺管理微服務下的全部功能正常
測試結果 與預期結果一致
結論 測試通過
商家管理微服務主要的功能模塊有基本信息管理和商品信息管理。商家管理微服務 的功能測試用例如表 6-10。
表 6-10 商家管理微服務測試用例表
Table6-10 Merchant management microservice test case table
測試用例編號 TC009
測試用例名稱 測試目的 優先級 前置條件 測試流程 商家管理微服務測試 確保商家管理微服務下的全部功能正常 高 數據庫和網絡正常
1. 進入商家基本信息頁面,修改商家信息保存并退出,檢查是否保 存成功
2. 進入商品信息管理頁面。添加商品或者修改商品信息并提交,檢 查是否可以提交
預期結果 測試結果 結論 商家管理微服務下的全部功能正常
與預期結果一致
測試通過
6.4 非功能性測試
非功能性測試是針對軟件產品的性能、可靠性、兼容性等方面進行的測試,下面本 節從性能、兼容性、穩定性三個方面對電商平臺進行測試。
79
(1)性能測試 對于平臺的性能測試主要是通過前后端交互的形式,記錄下后臺響應前端的時間, 然后對比預期結果以此來驗證平臺是否滿足性能需求。通過測試單用戶訪問平臺的響應 時間約為 1秒,多用戶并發訪問平臺時的響應時間為 2秒。經過測試,測試結果與預期 結果相同,性能測試通過。
(2)穩定性測試 對于平臺的性能測試主要是測試平臺在長時間內保持運行狀態并且不對其操作、平 臺長時間運行并且對其操作以及模擬高并發情況下對平臺進行各類操作,然后看平臺是 否正常運行以及各項數據是否正常顯示。經過測試,測試結果與預期結果相同,穩定性 測試通過。
(3)兼容性測試 對于平臺的兼容性測試主要是測試平臺在不同瀏覽器下能否正常使用。通過在谷歌 瀏覽器和火狐瀏覽器下打開平臺,并對平臺進行一系列的操作后,查看不同瀏覽器的返 回結果是否相同并且正確。經過測試,測試結果與預期結果相同,兼容性測試通過。
6.5本章小節
本章完成了系統的測試工作,從對系統的測試方法、功能性測試用例以及非功能性 測試用例三方面進行了詳細的描述,并且依據需求分析的功能性需求和非功能性需求認 真比對了測試結果和預期結果,然后發現了系統存在的一些不足,并及時進行了改正, 從而保證了系統的高效、穩定的運行。
80
7總結與展望
本章對基于微服務架構的電商平臺的設計與實現工作進行總結,并結合平臺當前運 行狀況和電商平臺的發展行情對項目未來的發展予以展望。
7.1全文總結
本文首先對基于微服務架構的電商平臺的背景和意義做了介紹,隨著國內互聯網行 業的高速發展,電子商務已經出現在人們生活的各個方面。電子商務不僅活躍在城市, 而且在農村地區也相繼出現了大量的互聯網用戶。由于網絡購物的人數越來越多,未來 電子商務的發展將越來越好。同時與傳統電商平臺對比,面對海量用戶和高并發的情況 下時難以應對,故本文提出的基于微服務架構的電商平臺是采用微服務架構進行設計, 故可以應對海量、并發請求的能力,不僅能夠滿足海量用戶的購物需求,還能夠大大提 高開發人員的工作效率。
其次是對平臺進行需求分析,通過對用戶進行訪談以及市場調研,研究和分析了用 戶的需求痛點從而整理出用戶的需求,按照需求將基于微服務架構的電商平臺拆分成商 品信息展示、商品推薦、商品搜索、訂單管理、購物車管理、在線支付、用戶管理、后 臺管理、商家管理九大微服務。并結合UML用例圖的方式對以上微服務進行詳細的描 述。同時從非功能性角度出發,對平臺的非功能性需求進行了的細致描述。
根據對平臺的需求分析對平臺進行概要設計,主要分為三部分,首先是采用功能模 塊圖,對平臺的功能進行一個詳細的劃分。然后結合微服務架構以及三層架構的思想對 平臺的技術架構進行設計,并使用架構圖進行直觀展示。最后是整理平臺中各個實體的 聯系,使用總體E-R圖進行展示,結合E-R圖對平臺的各模塊進行了數據庫表的設計 和展示。
接著是對平臺進行詳細設計,在該階段主要采用流程圖、類圖、時序圖和部分功能 的實現圖對平臺各個微服務的設計和實現做了詳細的敘述。
最后為了保證平臺的質量,對平臺進行了功能性測試和非功能性測試,并對測試后 出現的問題進行了改善。
從整個項目來看,首先基于微服務架構的電商平臺符合軟件工程設計理念,其次是 在功能實現和系統性能上對比傳統電商平臺更加能夠符合用戶的需求,助力提高了用戶 的購物體驗。
81
7.2 展望
本文考慮了海量用戶和高并發的情況下,研究使用了微服務架構的技術去開發電商 平臺,有效地解決了高并發和海量數據的問題,但是仍然存在許多不足之處。
(1)部署更多的服務器,加大負載均衡的力度,可以進一步提高平臺的整體性能, 從而保障用戶的使用。
(2)平臺目前使用的是 RabbitMQ 消息隊列技術來保證微服務之間數據的一致性, 未來可以使用更加先進的數據一致性技術,從而降低消息延遲問題,最終提高平臺的整 體性能。
(3)在平臺的商品詳情頁中可以加入 VR 虛擬現實技術,以此來讓用戶在購買商 品之前對商品進行體驗,從而提高用戶的購物體驗好感。
82
參考文獻
[I]彭立偉.互聯網時代下中小企業電子商務的發展策略分析[J].今日財富(中國知識產 權),2019(03):183.
⑵ 劉倩.新時期電子商務的發展現狀探討[J].財富生活,2020(16):22-23.
[3]Haile Tegegne Tesfaye,Kang Mincheol. Mobile Augmented Reality in Electronic Commerce: Investigating User Perception and Purchase Intent Amongst Educated Young Adults[J]. Sustainability,2020,12(21).
[4]Liu Min,Min Shi,Ma Wanglin,et al. The adoption and impact of E-commerce in rural China: Application of an endogenous switching regression model[J]. Journal of Rural Studies,2021,83.
⑸ 方嵩柯,谷志峰,張冠甲,et al.微服務架構下電商平臺的研究和實現[J].電腦知識與技 術,2020,16(10):288-289+294.
[6]魏鵬.基于微服務的企業電商平臺系統架構研究[J].計算機產品與流通,2020(08):128
[7]胡耀東.基于微服務的電商系統的設計與實現[D].華中科技大學,201 &
[8]Asrowardi I,Putra S D,Subyantoro E. Designing microservice architectures for scalability and reliability in e-commerce[J]. Journal of Physics: Conference Series,2020,1450(1).
⑼ 邱瓊.“十四五”我國電子商務發展趨勢研判與政策思路[J].商業經濟研究,2021(03):5-&
[10]秦海佩.5G時代電子商務發展前景[J].電子技術與軟件工程,2021(01):11-12.
[II]Motwani Jaideep,Essila C. Jean,Alhourani Farouq. Challenges Facing Electronic Supply Chains in the New E-Commerce Landscape[J]. International Journal of Hyperconnectivity and the Internet of Things (IJHIoT),2021,5(2).
[12]聶林海.我國電子商務發展的特點和趨勢[J].中國流通經濟,2014,28(06):97-101.
[13]郭棟,王偉,曾國蓀.一種基于微服務架構的新型云件PaaS平臺[J].信息網絡安全,2015(11):15-20.
[14]李貞昊.微服務架構的發展與影響分析[J].信息系統工程,2017(01):154-155.
[15]Zhou Yi,Wang Meilin,Chen RenYuan,el al. Research on Application of SME Manufacturing Cloud Platform Based on Micro Service Architecture[J]. Procedia CIRP,2019,83.
[16]Sahin Omur,Akay Bahriye. A Discrete Dynamic Artificial Bee Colony with Hyper-Scout for RESTful web service API test suite generation[J]. Applied Soft Computing Journal,2021,104.
[17]Hari Bhaskar Sankaranarayanan,Viral Rathod. Airport Merchandising Using Micro Services Architecture[J].International Journal of Information Technology and Computer Science(IJITCS),2016,8(6).
[18]王方旭.基于Spring Cloud實現業務系統微服務化的設計與實現[J].電子技術與軟件工 程,2018(08):60-61.Daniel Andres Pelaez Lopez. Full-Stack Web Development with Jakarta EE and Vue.js[M].Apress, Berkeley, CA:2021-01-01.
[19]Daniel Andres Pelaez Lopez. Full-Stack Web Development with Jakarta EE and Vue.js[M].Apress, Berkeley, CA:2021-01-01.
[20]李洋.SSM框架在Web應用開發中的設計與實現[J].計算機技術與發展,2016,26(⑵:190-194
83
[21]Peng Li,Baozhou Luo,Wenjun Zhu,et al. Cluster-based distributed dynamic cuckoo filter system for Redis[J]. International Journal of Parallel, Emergent and Distributed Systems,2020,35(3).
[22]Yusuke Fukazawa,Jun Ota. User-centered profile representation for recommendations acrossmultiple content domains[J]. International Journal of Knowledge-based and Intelligent EngineeringSystems,2011,15(1).
[23]Selma Benkessirat,Narhimene Boustia,Rezoug Nachida. A New Collaborative Filtering Approach Based on Game Theory for Recommendation Systems[J]. Journal of Web Engineering,2021,20(2).
[24]Luba Pascoe, Joseph W. Mwangoka. A smartphone-based reporting application for routine health data: system requirements, analysis and design[J]. Int. J. of Telemedicine and Clinical Practices,2016,1(4).
[25]張海藩,牟永敏.軟件工程導論(第6版)[M].2O13.
[26]Kieran O ' Driscoll. The agile data modelling & design thinking approach to information system requirements analysis[J]. Journal of Decision Systems,2016,25(sup1).
[27]劉澄熠.基于微服務架構的消費金融系統設計與實現[D].電子科技大學,2020.
[28]W Hardyanto,A Purwinarko,F Sujito,et al. Applying an MVC Framework for The System Development Life Cycle with Waterfall Model Extended[J]. Journal of Physics: Conference Series,2017,824(1).
[29]Louis Davidson. Pro SQL Server Relational Database Design and Implementation[M].Apress, Berkeley, CA:2021-01-01.
[30]Guilherme Brandao Martins,Joao Paulo Papa,Hojjat Adeli. Deep learning techniques for recommender systems based on collaborative filtering[J]. Expert Systems,2020,37(6).
[31]楊志偉.基于Spark平臺推薦系統研究[D].中國科學技術大學,2015.
[32]馬世杰.個性化電影推薦系統的設計與實現[D].西安電子科技大學,2019.
[33]Scott D. Miller,Raymond A. DeCarlo,Aditya P. Mathur,el al. A control-theoretic approach to the management of the software system test phase[J]. The Journal of Systems & Software,2006,79(11).
[34 ]譚李孟清,張瑩,王玉林.基于軟件性能的系統測試[J].軟件,2020,41(11):1-5+41.
[35 ]陶幸輝,宋志剛.軟件系統測試類型及測試用例設計[J].科技經濟市場,2011(06):3-5.