文稿分析成果1_第1頁
文稿分析成果1_第2頁
文稿分析成果1_第3頁
文稿分析成果1_第4頁
文稿分析成果1_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、本科畢業(yè)設(shè)計()口袋自考系統(tǒng)的設(shè)計與實現(xiàn)Design and Implementation of Koudaizikao BackendSystem學(xué)院:軟件學(xué)院業(yè):軟件工程 XX專學(xué)生號: X學(xué)指導(dǎo)教師:XX北京交通大學(xué)2016 年 5 月學(xué)士使用書本學(xué)士作者完全了解北京交通大學(xué)有關(guān)保留、使用學(xué)士的規(guī)定。特北京交通大學(xué)可以將學(xué)士的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,提供閱覽服務(wù),并采用影印、縮印或掃描等保存、匯編以供查閱和借閱。(的在后適用本說明)作者簽名:指導(dǎo)教師簽名:簽字日期:年月日簽字日期:年月日北京交通大學(xué)畢業(yè)設(shè)計()中要中要摘要:隨著智能終端設(shè)備的普及和“互聯(lián)網(wǎng)+”概念的提出,移

2、動互聯(lián)網(wǎng)已經(jīng)涉入到我們生活的方方面面,“互聯(lián)網(wǎng)+教育”近來更是處于風(fēng)口浪尖。通過網(wǎng)絡(luò)和智能終端設(shè)備,人們可以隨時隨地地學(xué)習(xí),不再受時間和空間的。高等教育是獲取本科文憑的一個重要途徑。通過“移動互聯(lián)網(wǎng)+自考教育”,自考學(xué)子可以有效的避免與工作之間的,輕輕松松獲得本科文憑。本文設(shè)計并開發(fā)了適用于高等教育APP 的分布式系統(tǒng)。系統(tǒng)共分為六個模塊:賬戶管理、資訊、自考社區(qū)、題庫練習(xí)、課程和 Broker。六個模塊被設(shè)計成進(jìn)程,相互之間使用 protobuf-rpc-pro 框架進(jìn)行 rpc 通信。本文對自考系統(tǒng)進(jìn)行了需求調(diào)研、功能設(shè)計和架構(gòu)設(shè)計,完成了自考系統(tǒng)數(shù)據(jù)庫的設(shè)計和建立,完成了Broker 子

3、系統(tǒng)、賬戶管理子系統(tǒng)、自考資訊子系統(tǒng)的編碼實現(xiàn),最后對 Broker、賬戶管理、資訊三個部分進(jìn)行了功能測試和性能測試。目前,口袋自考系統(tǒng)已經(jīng)正式上線,與 APP 端配合,對外提供自考教育服務(wù),極大的方便了廣大自考學(xué)子。今后,口袋自考自考教育服務(wù)。系統(tǒng)將結(jié)合大數(shù)據(jù)推出更加個性化的:高等教育;教育;protobuf-rpc-pro;protocol bufferi北京交通大學(xué)畢業(yè)設(shè)計()英要ABSTRACTABSTRACT: With the popularization of intelligent terminal and the raise of the Internet plus, gra

4、dually we cannot live without the mobile internet. Under this background, online-education gains more popularity than ever before. Everyone now can study anywhere and anytime without being restricted by time or space by intelligent terminals through the Internet. Self-TaughtHigher Education Examinat

5、ions (STE) is an essential way to earn a bachelor's degree. Peoplecan easily get a bachelor's degree avoiding thework through accepting online-education.between self-taught examinations andThis article focus on the design and development of Koudaizikao Backend System. The systemcan be divide

6、d into six parts including Account Management, Examination Information, STECommuExercises,Course as well as Broker. These six modules were design intoindependent processes which communicates with each other via protobuf-rpc-pro framework. Above all, this article finished the requirement analysis and

7、 design of architecture and functional modules of the STE system. In addition, the database of the STE system was established after being designed. Also this article implemented the Broker subsystem, Account Management subsystem, Examination Information subsystem. Last but not least, the three subsy

8、stems mentioned above were tested in order to make sure they are satisfy the needs of function as well as performance.So far, the STE background system has went live, combined with the mobile application end, providing STE service, which brings the people who will attend the STE convenience and high

9、- efficiency. In the future, the STE background system will provide service which is morealized combine with big data.KEYWORDS : Self-taught higher education examinations; education; protobuf-rpc-pro; protocol bufferii北京交通大學(xué)畢業(yè)設(shè)計()目錄目錄中要IABSTRACTII目錄III1引言1.4背景1項目價值與意義2內(nèi)容2結(jié)構(gòu)22相關(guān)技術(shù)介紹42.1 NGI

10、NX42.2 JETTY42.3 REDIS42.4 PROTOCOL BUFFER52.5 PROTOBUF-RPC-PRO62.6 MAVEN62.7 LOG4J262.8 GITLAB63口袋自考系統(tǒng)需求分析3.4目標(biāo)用戶8競品分析8任務(wù)與目標(biāo)8功能性需求..43.4.5課程9練習(xí)鞏固10資訊11社區(qū)交流11賬戶管理123.5 非功能性需求.23.5.3系統(tǒng)性能要求13可拓展性與可維護(hù)性13可靠性與安全性133.6 運(yùn)行環(huán)境概述143.7 小結(jié)144口袋自考系統(tǒng)概要設(shè)計154.1 系統(tǒng)整體架構(gòu)設(shè)計15iii北京交

11、通大學(xué)畢業(yè)設(shè)計()目錄4.2 BROKER 子系統(tǒng)功能設(shè)計164.2.1 功能結(jié)構(gòu)圖164.2.2 功能模塊描述數(shù)據(jù)校驗16請求轉(zhuǎn)化16反爬蟲17負(fù)載平衡17請求日志17響應(yīng)日志17處理統(tǒng)計17異常日志184.3 賬戶子系統(tǒng)功能設(shè)計184.3.1 功能結(jié)構(gòu)圖184.3.2 功能模塊描述與登錄19驗證19找回19專業(yè)管理與科目管理19設(shè)備. 20信息修改20獎學(xué)金204.4 資訊子

12、系統(tǒng)功能設(shè)計204.4.1 功能結(jié)構(gòu)圖204.4.2 功能模塊描述資訊選擇21資訊閱讀21評論22點(diǎn)贊、收藏、. 224.5 題庫子系統(tǒng)功能設(shè)計224.5.1 功能結(jié)構(gòu)圖224.5.2 功能模塊描述出題23判題23錯題籃與收藏夾23知識點(diǎn)講解與題目講解23評論與回復(fù)24. 244.6 社區(qū)子系統(tǒng)功能設(shè)計244.6.1 功能結(jié)構(gòu)圖244.6.2 功能模塊描述板塊關(guān)注25發(fā)帖、跟帖、回復(fù)25點(diǎn)贊、收藏、.

13、25iv北京交通大學(xué)畢業(yè)設(shè)計()目錄 置頂 統(tǒng)計4.7.2子系統(tǒng)功能設(shè)計26功能結(jié)構(gòu)圖26功能模塊描述2瀏覽課程26課程介紹27課程目錄27課程課程. 27. 274.8 數(shù)據(jù)庫設(shè)計2....84.8.9數(shù)據(jù)庫設(shè)計規(guī)范27賬戶數(shù)據(jù)實體關(guān)系圖28賬戶數(shù)據(jù)字典28資訊數(shù)據(jù)實體關(guān)系圖29資訊數(shù)據(jù)字典30題庫數(shù)據(jù)實體關(guān)系圖30題庫數(shù)據(jù)字典31數(shù)據(jù)實體關(guān)系圖32數(shù)據(jù)字典3.11社區(qū)數(shù)據(jù)實體關(guān)

14、系圖33社區(qū)數(shù)據(jù)字典334.9 物理架構(gòu)344.9.1 系統(tǒng)部署344.10 小結(jié)355口袋自考系統(tǒng)詳細(xì)設(shè)計及實現(xiàn)365.1 BROKER 子系統(tǒng)設(shè)計與實現(xiàn)365.1.1 Broker 請求處理流程365.1.2 Broker 子系統(tǒng)類圖375.1.3 Broker 重點(diǎn)實現(xiàn)385.2 賬戶子系統(tǒng)設(shè)計與實現(xiàn)3.25.2.3賬戶登錄39獎學(xué)金修改40. 4與清除425.2.4 更新設(shè)備信息425.2.5 賬戶子系統(tǒng)類圖435.3 資訊子系統(tǒng)設(shè)計與實現(xiàn)4..45.3.5獲取資訊列表43資訊評論44資訊的緩存44資訊點(diǎn)贊45資訊子

15、系統(tǒng)類圖46v北京交通大學(xué)畢業(yè)設(shè)計()目錄5.4 系統(tǒng)運(yùn)行效果465.4.1運(yùn)行效果465.4.2 APP 請求效果475.4.3 瀏覽器模擬請求效果475.5 小結(jié)486 口袋自考系統(tǒng)測試46.4目的和方法49系統(tǒng)測試用例49系統(tǒng)測試結(jié)果50小結(jié)507 總結(jié)與展望517.1 總結(jié)517.2 展望51參考文獻(xiàn)53致附謝54錄55vi北京交通大學(xué)畢業(yè)設(shè)計()正文1 引言飛速發(fā)展的移動互聯(lián)網(wǎng)科技為傳統(tǒng)行業(yè)帶來了新的思考方式和運(yùn)營理念。教育行業(yè)作為傳統(tǒng)行業(yè)中的典型代表,在互聯(lián)網(wǎng)科技浪潮的沖擊下正在發(fā)生日新月異的變化。成人教育作為教育行業(yè)的一部分自然也在悄然的發(fā)生轉(zhuǎn)變。而且成人教育

16、由于存在工作時間與學(xué)習(xí)時間上的,更應(yīng)該受益于移動互聯(lián)網(wǎng)帶來的便利。1.1背景在高度發(fā)達(dá)的今天,競爭越來越激烈,工作要求越來越高。因此,學(xué)歷的高低顯得特別的重要,無論是為了滿足工作需求,還是提升個人水平,學(xué)歷都能充分地說明一切。學(xué)歷是一個敲門磚,是你展現(xiàn)在別人面前的第一印象,是最直接的表現(xiàn),有技術(shù)也要有尊敬你。1,這樣你既能用技術(shù)讓別人心服口服,也能用知識讓別人在"文憑化"的理念下,學(xué)歷會影響到一個人成長發(fā)展的各各方面,比如工作,事業(yè),愛情等。具有高學(xué)歷,你就具有的機(jī)會,具有精神上的,可以站在巨人肩膀上看世界,可以用更高的角度看問題。1 學(xué)歷是企業(yè)對一個人認(rèn)可, 企業(yè)招聘的時

17、候首先挑選的條件就是學(xué)歷,在不了解的情況下,擁有的學(xué)歷越高,具有的工作機(jī)會也就越多。學(xué)歷不但對人生事業(yè)重要,對人生的愛情也很重要。愛情需要有共同語言,唯有兩個人的學(xué)歷相差不大的情況下,才能一起經(jīng)營一個夸姣的家庭。高等教育(Self-taught higher education examinations),簡稱自考,1981 年。2經(jīng)自批準(zhǔn)創(chuàng)立,是對自學(xué)者進(jìn)行的以學(xué)歷為主的高等教育是個人會助學(xué)和相結(jié)合的高等教育形式,是我國高等教育體系的重要組成部分。學(xué)生經(jīng)過系統(tǒng)的學(xué)習(xí)后,通過的答辯、學(xué)位英語的達(dá)到規(guī)定成績符合條件的畢業(yè)生,可申請授予成人學(xué)士學(xué)位、參加士學(xué)位和博士學(xué)位。3,并可繼續(xù)攻讀碩跟據(jù)搜狐

18、2016 年 4 月 28 日的,從 2010 年開始,報名人數(shù)一路回暖,連年上升,2013 年 2140 人,2014 年 2190 人,2015 年 2230 人。4 綜合來看,自學(xué)在未來幾年內(nèi)的報考人數(shù)相當(dāng)巨大,而傳統(tǒng)的教育選擇在建立學(xué)校來提供教學(xué),這與學(xué)生往往需要參作的實際情況相。結(jié)合移動互聯(lián)網(wǎng)不但能夠以其方便靈活的特性解決學(xué)員的困擾,也能利用大數(shù)據(jù)促進(jìn)學(xué)員的學(xué)習(xí)。1北京交通大學(xué)畢業(yè)設(shè)計()正文1.2項目價值與意義當(dāng)廣大因?qū)W歷較低而困惱的人們糾結(jié)于傳統(tǒng)教育的時間成本和當(dāng)前工作的總總時,本文所設(shè)計的口袋自考系統(tǒng)將能一掃他們之前的愁云。結(jié)合移動互聯(lián)的便利性、靈活性和大數(shù)據(jù)分析,本文所設(shè)計的

19、口袋自考自考學(xué)子隨時隨地享受到最新、最好、最全的高等教育系統(tǒng)可以幫助成千上萬教育,還能擁有個性化的準(zhǔn)確無誤教育服務(wù),包括性的知識點(diǎn)強(qiáng)化訓(xùn)練、高質(zhì)量教育課程、分析、溫暖的社區(qū)交流、以及貼心的自考時間安排提醒。讓自考學(xué)子能夠安心工作,中的零碎時間補(bǔ)充本科文憑,實現(xiàn)學(xué)習(xí),合理的把握與個人工作之間的平衡,充分利用生活相關(guān)知識。最后,在工作、學(xué)習(xí)兩不誤的情況下,輕松考取本科夢,為將來人生事業(yè)的進(jìn)步打下堅實的基礎(chǔ)。在幫助自考學(xué)子考取本科文憑的同時,本文所設(shè)計實現(xiàn)的口袋自考系統(tǒng)也能促,提高我國全進(jìn)廣泛的個人自學(xué)和助學(xué)活動,造就和選拔出德才兼?zhèn)涞母咚刭|(zhì)的思想道德素質(zhì)和科學(xué)素養(yǎng),以適應(yīng)現(xiàn)代化建設(shè)的需要。1.3內(nèi)

20、容本文主要討論如何利用移動互聯(lián)網(wǎng)的靈活性和便利性為參加高等教育的自考學(xué)子提供教育服務(wù),以及提供哪些教育服務(wù)。為此,本文對自考學(xué)子群體所具有的共有特性和他們在方面的需求進(jìn)行了調(diào)研,并對已經(jīng)存在的和潛在的競爭對手的優(yōu)點(diǎn)和缺點(diǎn)進(jìn)行了仔細(xì)的分析。其后,根據(jù)調(diào)研結(jié)果本文設(shè)計并開的軟件系統(tǒng)發(fā)出一套適用于移動端的,用于幫助學(xué)子通過高等教育口袋自考不要求具體的前端實現(xiàn),而是通過 HTTP 協(xié)議向任何被允系統(tǒng)。許客戶端提供高等教育服務(wù)的相關(guān)數(shù)據(jù)和。能夠為自考學(xué)子提供全進(jìn)行專業(yè)知識水平測試。此面而系統(tǒng)的知識點(diǎn)講解和教學(xué),自考學(xué)子也能夠通過外,還為自考學(xué)子提供了對應(yīng)的高等教育相關(guān)的資訊消息和一個專供自考學(xué)子們相互交

21、流的社區(qū)。除了討論如何為自考學(xué)子提供高等教育教育服務(wù)外,本文還通過 protocol-rpc-pro 框架為口袋自考系統(tǒng)設(shè)計了能夠適應(yīng)高并發(fā)、具備拓展性的分布式架構(gòu)。使得口袋自考系統(tǒng)能夠輕松應(yīng)對未來的業(yè)務(wù)變更和急劇增加的量。1.4結(jié)構(gòu)本文共分為以下部分:第一章,介紹了教育的行業(yè)背景和本文所設(shè)計的口2北京交通大學(xué)畢業(yè)設(shè)計()正文袋自考系統(tǒng)能夠帶來的改變;第二章,介紹了口袋自考系統(tǒng)開發(fā)過程中涉及到培訓(xùn)機(jī)構(gòu)的特點(diǎn)進(jìn)行了的先進(jìn)技術(shù)和工具;第三章,對自考學(xué)子的需求和傳統(tǒng)分析,同時也介紹了口袋自考系統(tǒng)的功能性需求與非功能性需求;第四章,依次介紹了口袋自考系統(tǒng)的整體架構(gòu)、各個子系統(tǒng)的功能模塊以及數(shù)據(jù)庫設(shè)計;

22、第五章,圖等 UML 工具對口袋自考系統(tǒng)的詳細(xì)設(shè)計進(jìn)行了說使用流程圖、時序圖、明,并展示了系統(tǒng)的運(yùn)行效果;第六章,介紹口袋自考系統(tǒng)的測試的方法和測試中使用的測試用例;第七章,對整個系統(tǒng)的研發(fā)過程作總結(jié)和展望。3北京交通大學(xué)畢業(yè)設(shè)計()正文2 相關(guān)技術(shù)介紹在口袋自考系統(tǒng)的研發(fā)過程中使用了許多優(yōu)秀的開源技術(shù),包括 Nginx、Jetty、Redis、Protocol Buffer、Protocol-rpc-pro、Maven、Log4j2、GitLab、Spring、Mysql 等。這些技術(shù)的應(yīng)用極大的降低了系統(tǒng)的開發(fā)難度。下面本文將對其中的部分技術(shù)做一個概要的介紹。2.1NginxNginx 是

23、一款輕量級的 Web 服務(wù)器/反向服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在一個 BSD-like 協(xié)議下。由俄羅斯程序設(shè)計師 Igor Sysoev 所開發(fā),供及搜索引擎 Rambler 使用。其特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng)。5大型的本文所設(shè)計的“口袋自考系統(tǒng)”使用Nginx 作為反向服務(wù)為后端的業(yè)務(wù)系統(tǒng)提供初級的安全防護(hù)和簡單的負(fù)載平衡,以及為后端較慢的服務(wù)器提供緩沖服務(wù)。2.2JettyJetty 是一個開源的 servlet 容器,它為基于 Java 的 web 容器,例如 JSP 和 servlet 提供運(yùn)行環(huán)境。Jetty 是使用 Java 語言編寫的,它的 API 以一

24、組 JAR 包的形式發(fā)布。開發(fā)可以將 Jetty 容器實例化成一個對象,可以迅速為一些應(yīng)用提供網(wǎng)絡(luò)和 web 連接。6運(yùn)行(stand-alone)的 Java相對于 Tomcat,Jetty 更輕量級。Jetty 為每個應(yīng)用服務(wù)器省下的幾兆內(nèi)存,對于大的分布式環(huán)境則是節(jié)省大量。而且,Jetty 的輕量級也使其在處理高并發(fā)細(xì)粒度請求的場景下顯得更快速高效。Jetty 也更靈現(xiàn)在其可插拔性和可擴(kuò)展性,更易于開發(fā)者對 Jetty 本身進(jìn)行二次開發(fā),定制一個適合自身需求的 Web Server。7應(yīng)為 Jetty 在處理大量請求下的性能優(yōu)勢和其可嵌入到代碼中的特點(diǎn),口袋自考后在請求分發(fā)處理模塊 Br

25、oker 中使用 Jetty 作為內(nèi)嵌的 servlet 容器,處理業(yè)務(wù)請求。2.3RedisREmote DIctionary Server(Redis) 是一個由 Salvatore Sanfilippo 寫的 key-value系統(tǒng)。Redis 提供了一些豐富的數(shù)據(jù)結(jié)構(gòu),包括 lists, sets, ordered sets 以及 hashes ,以4北京交通大學(xué)畢業(yè)設(shè)計()正文及和 Memcached 一樣的 strings 結(jié)構(gòu)。8Redis 支持主從同步。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)。9器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。這使得 Redis 可執(zhí)行單層樹R

26、edis 是一個有著極高性能的 key-value 數(shù)據(jù)庫,其官網(wǎng)給出的讀的速度是 110000次/s,寫的速度是 81000 次/s。9系統(tǒng)的題庫練習(xí)子系統(tǒng)中將使用 redis 來緩存 MySQL 數(shù)據(jù)庫中的在口袋自考題目和,以提高做題練習(xí)時的出題和判題速度,提升用戶體驗。2.4Protocol BufferProtocol Buffers(PB) 是一種輕便高效的結(jié)構(gòu)化數(shù)據(jù)格式,可以用于結(jié)構(gòu)化數(shù)格式。可用于通訊據(jù)串行化,或者說序列化。10 它很適合做數(shù)據(jù)或 RPC協(xié)議、數(shù)據(jù)等領(lǐng)域的語言無關(guān)、平臺無關(guān)、可擴(kuò)展的序列化結(jié)構(gòu)數(shù)據(jù)格式。目前提供了 C+、Java、Python 三種語言的 API。

27、PB 相對于其他同類技術(shù)最主要的優(yōu)點(diǎn)是:簡單、快。圖 2-1 是 PB 與同類技術(shù)的一個測試比較。11圖 2-1 性能測試圖兼容性,開發(fā)者不必?fù)?dān)心因為消息結(jié)構(gòu)的改變而造成的大PB 擁有非常優(yōu)秀的規(guī)模的代碼重構(gòu)或者遷移的問題。因為添加新的消息中的 field 并引起已經(jīng)發(fā)布的程序的任何改變。PB 語義清晰簡單便于學(xué)習(xí)使用,不過這也限制了其對復(fù)雜概念的表述能力。由于口袋自考系統(tǒng)各個模塊之間只是進(jìn)行簡單格式的,且對效率有較高的要求,所以使用 PB 作為各個進(jìn)程間的格式。5北京交通大學(xué)畢業(yè)設(shè)計()正文2.5Protobuf-rpc-proProtobuf-rpc-pro 是一個 Java 開發(fā)類庫,提

28、供基于Protocol Buffer 服務(wù)的 RPC 層。底層 NIO 基于 Netty 構(gòu)建。功能支持包括雙向 RPC 調(diào)用,從客戶端調(diào)用服務(wù)器端和從服務(wù)器端調(diào)用客戶端的方法??蛻舳撕头?wù)器是對等通信。支持 TCP 連接復(fù)用/ keep-alive,SSL 加密, RPC 調(diào)用取消,超時和一個可插拔的 RPC 調(diào)用數(shù)據(jù)日志記錄工具。12口袋自考RPC 框架。系統(tǒng)將使用 Protobuf-rpc-pro 作為賬戶、資訊、Broker 三個模塊間的2.6MavenMaven 是一個項目管理工具,它包含了一個項目對象模型 (Project Object M),一組標(biāo)準(zhǔn)集合,一個項目生命周期(Pro

29、ject Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System),和用來運(yùn)行定義在生命周期階段(phase)中插件(plugin)目標(biāo)(goal)的邏輯。當(dāng)你使用 Maven 的時候,你用一個明確定義的項目對象模型來描述你的項目,然后 Maven 可以應(yīng)用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。13本文在口袋自考java 開發(fā)的子系統(tǒng)。系統(tǒng)中使用 maven 來管理 Broker、Account、News 這三個使用2.7Log4j2Log4j2 是 Apache log4j 項目的升級版本。Log4j 2 被設(shè)計成一個具有審計功能的

30、日志框架。在配置更新時,Log4j 1.x and Logback 對日志沒有反應(yīng),Log4j 2 則會正常工作。另外,Logback 不Appenders 中的異常是不可見的,而 Log4j2 可以配置成發(fā)送異常給應(yīng)用程序?;诓寮能浖軜?gòu),使得 Log4j2 更易于擴(kuò)展,而不需會改變 Log4j2自身的功能。Log4j2 支持用戶自定義的日志等級,也支持 Marker。14-15本文設(shè)計的口袋自考系統(tǒng)使用 Log4j2 作為賬戶、資訊以及 Broker的日志框架。并使用 log4j2 的 Marker 特性來自定義日志類型。2.8GitLabGitLab 是一個利用 Ruby on Ra

31、ils 開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的 Git 項目倉庫,可通過 Web 界面進(jìn)行公開的或者私人項目。16 它擁有與類似的功6北京交通大學(xué)畢業(yè)設(shè)計()正文能,能夠瀏覽源代碼,管理缺陷和注釋??梢怨芾韴F(tuán)隊對倉庫的,它非常易于瀏覽提交過的版本并提供一個文件歷史庫。它還提供一個代碼片段收集功能可以輕松實現(xiàn)代碼復(fù)用,便于日后有需要的時候進(jìn)行查找。17系統(tǒng)的所有代碼均是使用搭建的 gitlab 來進(jìn)行版本管理和代碼審口袋自考閱。7北京交通大學(xué)畢業(yè)設(shè)計()正文3 口袋自考系統(tǒng)需求分析隨著的發(fā)展進(jìn)步,水平、素質(zhì)的不斷提高,企事業(yè)對的水平的需求也不斷提升,學(xué)歷、文憑也就成了衡量的標(biāo)準(zhǔn),也體現(xiàn)了個人地位及

32、身份的一種標(biāo)志、企事業(yè)實力和素質(zhì)的象征。為了適應(yīng)的對學(xué)歷的要求,不少尚未獲得本科文憑的人都會選擇通過高等教育獲取文憑。3.1目標(biāo)用戶本文所設(shè)計的“口袋自考系統(tǒng)”的最終用戶為尚未取得本科文憑,并打算通過高等教育.5.取得本科文憑的所有。他們大都具備以下特征:離開學(xué)校多年,基礎(chǔ)知識較為薄弱;已經(jīng)擁有一份工作,空余時間并不充裕;并不愿意深究知識原理細(xì)節(jié),只是希望取得文憑;報考專業(yè)多為應(yīng)用型學(xué)科,例如“人力希望在短期內(nèi)獲得文憑。管理”、“市場”等;3.2競品分析在高等教育而好教育機(jī)構(gòu)等。自這一領(lǐng)域目前以自考培訓(xùn)機(jī)構(gòu)居多,比如:尚德機(jī)構(gòu)、學(xué)大多成立多年,有豐富的教育經(jīng)驗,完善的教育流程,以

33、及強(qiáng)大的師資隊伍。他們大都以傳統(tǒng)的設(shè)點(diǎn)辦學(xué)的方式向自考學(xué)生提供教育服務(wù),部分也會使用互聯(lián)網(wǎng)做教育??偟膩碚f自有以下幾點(diǎn)共同之處:.5.師資力量雄厚,教育經(jīng)驗豐富;采用傳統(tǒng)的教育方式,自考學(xué)生接收程度高; 根據(jù)個人情況會收取 5000 元以上的學(xué)費(fèi);自考本科一般要花兩到三年的時間;需要參加培訓(xùn)班。3.3任務(wù)與目標(biāo)本文所設(shè)計的口袋自考獲取本科文憑。系統(tǒng),其目的在于協(xié)助自考學(xué)子通過規(guī)定的高等教育應(yīng)該充分吸收傳統(tǒng)的自考培訓(xùn)機(jī)構(gòu)在教育和部分教育方式方面的優(yōu)勢,同時發(fā)揮移動互聯(lián)網(wǎng)靈活、便捷、廉價的優(yōu)勢,彌補(bǔ)自考培訓(xùn)機(jī)8北京交通大學(xué)畢業(yè)設(shè)計()正文構(gòu)的短板。為學(xué)生提供教學(xué)、練習(xí)、講解、模擬、考

34、務(wù)管理于一體的自考教育服務(wù)。要讓自考學(xué)生充分利用碎片化的時間,隨時隨地都能學(xué)習(xí),既不耽誤工作,又能輕松考取文憑。3.4功能性需求在用戶能夠在移動端享受完整的教育,輕松獲得本科文憑。本文將用戶需求總結(jié)為五大部分,分別是:管理。下面將逐一進(jìn)行詳細(xì)介紹。課程、練習(xí)鞏固、資訊、社區(qū)交流和賬戶3.4.1課程圖3-1教學(xué)用例圖使用用例圖對用戶關(guān)于課程的需求和操作進(jìn)行了說明。圖 3-1教學(xué)用例圖教學(xué)是指將某一門課程按照其教學(xué)進(jìn)度安排將講課剪切成對應(yīng)的片段,此次提供給自考學(xué)生。教學(xué)部分提供以下具體需求:.課程列表查看,用戶可以查看所有跟報考專業(yè)相關(guān)的課程;課程介紹,用戶可以選擇某一課程,查看其介

35、紹;課程夠買,用戶可以課程目錄查看,用戶感的課程;課程后可以查看該課程的教學(xué)目錄;9北京交通大學(xué)畢業(yè)設(shè)計()正文5.的課程擁有 PDF 講義,則用戶可以下課程講義,如果用戶所載該 PDF 講義到本地設(shè)備。6.7.課程,用戶在目錄選擇章節(jié),該章節(jié)的課程;已課程查看,用戶能夠查看已經(jīng)了的所有課程;因為不同地區(qū)和不同專業(yè)對課程的要求不同,所以每一門課程都屬于一個或多個專業(yè),而一個專業(yè)又屬于一個或多個省市。具體視情況而定。3.4.2 練習(xí)鞏固練習(xí)鞏固是指自考學(xué)生再有了一定的學(xué)習(xí)積累后可以通過移動設(shè)備,做題練習(xí),加深體會,檢驗的學(xué)習(xí)狀況。對于練習(xí)鞏固需要滿足以下需求:1.性出題,的掌握情況, 章節(jié)練習(xí),

36、性出題是要求系統(tǒng)能夠性的給出練習(xí)題;自考學(xué)生對一課程中知識點(diǎn)2.課程的教學(xué)章錄給出對應(yīng)的練習(xí)題,自考學(xué)生可以隨便選擇具體章節(jié)的習(xí)題進(jìn)行練習(xí);3.4.5.在章節(jié)練習(xí)和能夠?qū)︻}目性出題中每完成一道題就給出該題目的的評論,也能查看別人的評論;和涉及的知識點(diǎn);模擬,系統(tǒng)出題讓用戶進(jìn)行模擬,用戶可以選擇題目的難度等級(低、中、高),系統(tǒng)有倒計時,時間結(jié)束后自動交卷,也可以手動選擇交卷,答題過程中可以查看已經(jīng)做過的題和未完成的題。6.自動判卷,模擬結(jié)束后系統(tǒng)將自動進(jìn)行判卷,并向用戶反饋結(jié)果,用戶可查看答錯的題目和題目,以及模擬的成績排行;的實際7.,按照用戶的選擇的課程,給出年份的試題進(jìn)行解答;其它同模擬

37、題目,用戶可以選擇感和自動判卷;8.知識點(diǎn)講解,按照課程的章節(jié)給出每一章涉及到的知識點(diǎn)以及知識點(diǎn)的掌握要求,和用戶本人在做題練習(xí)過程中對知識點(diǎn)的掌握情況以及錯誤率;9.題目收藏,在做題過程中用戶可以將感閱,也可以手動刪除收藏夾內(nèi)的內(nèi)容;的題目添加到收藏夾,方便以后查10.錯題,用戶做錯的題目都會被下來,當(dāng)用戶再次遇到該題目并作對以后,將會被移出。每一道題目都有所屬的專業(yè)課程,和其中涉及到的知識點(diǎn),以及對應(yīng)的題目講解,此外還包括所有用戶關(guān)于該題的評價。圖 3-2 練習(xí)鞏固用例圖詳細(xì)介紹了用戶對于做題練習(xí)所需要的一些功能,以及之間的邏輯關(guān)系。10北京交通大學(xué)畢業(yè)設(shè)計()正文圖 3-2 練習(xí)鞏固用例

38、圖3.4.3資訊其中主要提供一些自考相關(guān)的文章,相應(yīng)的資訊等。對于每一篇文章用戶可以資訊應(yīng)該具有的功能。進(jìn)行收藏、評論和。圖 3-3 用用例圖來描述了圖 3-3資訊用例圖3.4.4 社區(qū)交流社區(qū)主要用于自考學(xué)生之間的交流。社區(qū)分為多個板塊,用戶可以選擇喜歡的板塊進(jìn)行關(guān)注,也能取消關(guān)注。在板塊中用戶可以查看別人發(fā)布的帖子并進(jìn)行點(diǎn)贊、評論、收藏和到社交平臺等操作,也可以對別人的評論進(jìn)行評論。用戶可以發(fā)表帖子,帖子內(nèi)容包含圖片、文字和標(biāo)題。社區(qū)中還有最近最熱的帖子,方便用戶加入11北京交通大學(xué)畢業(yè)設(shè)計()正文到最新的話題當(dāng)中。也有最熱門的板塊,來幫助用戶尋找活躍地區(qū)。圖 3-4 使用用例圖描述社區(qū)交

39、流的需求。圖 3-4 社區(qū)交流用例圖3.4.5 賬戶管理圖 3-5 賬戶管理用例圖描述了用戶在與賬戶子系統(tǒng)交互時需要的一些功能,以及功能之間的邏輯關(guān)系。圖 3-5 賬戶管理用例圖12北京交通大學(xué)畢業(yè)設(shè)計()正文賬戶管理為基礎(chǔ)需求,要求能夠在各個活動中標(biāo)識用戶的動進(jìn)行統(tǒng)一的管理。其具體要求如下:,對用戶所參與的活.5.賬戶、登陸,第賬號登陸;修改用戶頭像、昵稱、等基本信息;用戶省市專業(yè)選擇,用戶需要學(xué)習(xí)的科目課程學(xué)習(xí); 獎學(xué)金,獎學(xué)金來源于用戶對活動的參與;管理收藏的資訊和帖子;3.5非功能性需求3.5.1 系統(tǒng)性能要求1. 響應(yīng)速度執(zhí)行評論、信息修改等操作時的響應(yīng)反饋速度最大不應(yīng)

40、超過1000ms,一般在150ms 以內(nèi)。執(zhí)行用戶信息獲取及其它簡單數(shù)據(jù)獲取操作時:90%在 150ms 以內(nèi),99%在 250ms 以內(nèi),峰值狀態(tài):90%在 500ms 以內(nèi),99%在 250ms 以內(nèi);執(zhí)行刷題、資訊等量較大的操作時最大反饋速度不應(yīng)超過 1000ms,一般2. 容量和吞吐量在 250ms 以內(nèi)。系統(tǒng)應(yīng)支持至少 200 用戶的同時并發(fā);平臺最大數(shù)至少支持 300 萬條;庫應(yīng)支持至少高達(dá) 200G 的數(shù)據(jù)容量。3.5.2 可拓展性與可維護(hù)性因為系統(tǒng)采用迭代演進(jìn)的方式進(jìn)行開發(fā),所以系統(tǒng)應(yīng)適應(yīng)迭代過程中的變更及擴(kuò)展而不需要對程序做相應(yīng)的修改。系統(tǒng)應(yīng)能適應(yīng)后續(xù)應(yīng)用的添加,而不至于程序

41、大量的修改或重來。隨著用戶數(shù)的增長及功能應(yīng)用的增長,軟件系統(tǒng)通過硬件性能的調(diào)整和增加硬件數(shù)量而保持相對的穩(wěn)定性,維持正常的運(yùn)行。3.5.3 可靠性與安全性系統(tǒng)應(yīng)支持長時間的連續(xù)不斷的運(yùn)行。系統(tǒng)在連續(xù)一的運(yùn)行中因系統(tǒng)故障導(dǎo)致服務(wù)不可用的次數(shù)不得超過 1 次,單次修復(fù)時間不得超過 24 小時。系統(tǒng)在癱瘓后能夠在短時間內(nèi)迅速恢復(fù)。系統(tǒng)應(yīng)有完善的日志方便故障后恢復(fù)數(shù)據(jù)和追查問題。機(jī)制,能夠?qū)㈥P(guān)鍵數(shù)據(jù)到日志當(dāng)中,13北京交通大學(xué)畢業(yè)設(shè)計()正文安全機(jī)制要求系統(tǒng)各個模塊獨(dú)自數(shù)據(jù)庫。對于涉密信息,要進(jìn)行加密日志中進(jìn)行數(shù)據(jù)恢復(fù)的功能。數(shù)據(jù)庫,不能夠越過其他功能模塊直接其。系統(tǒng)應(yīng)支持手工及定時數(shù)據(jù)備份的功能,從

42、3.6運(yùn)行環(huán)境概述系統(tǒng):CentOS Linux release 7.0.1406 (Core)內(nèi)核:3.10.0-123.9.3.el7.x86_64CPU:4 核CPU 型號:Intel(R) Xeon(R) CPU E5-2650 v2 2.60GHz內(nèi)存:8G數(shù)據(jù)庫:MySQL 5.63.7小結(jié)本章主要對自考學(xué)子群體的特點(diǎn)和傳統(tǒng)自考培訓(xùn)機(jī)構(gòu)的優(yōu)缺點(diǎn)進(jìn)行了全面的分析,并以此為根據(jù)明確了口袋自考計指明了方向。系統(tǒng)的功能性需求和非功能性需求,為之后的功能設(shè)14北京交通大學(xué)畢業(yè)設(shè)計()正文4 口袋自考系統(tǒng)概要設(shè)計本文所設(shè)計的口袋自考系統(tǒng)的主要目的是為自考用戶提供教學(xué)、做題練習(xí)系統(tǒng)與前端的 AP

43、P、鞏固發(fā)布和社區(qū)交流等服務(wù),方便用戶隨時隨地的學(xué)習(xí)網(wǎng)頁一起采用 C/S 架構(gòu)。4.1系統(tǒng)整體架構(gòu)設(shè)計圖 4-1 整體架構(gòu)圖口袋自考系統(tǒng)采用 C/S 架構(gòu),整體架構(gòu)如圖 4-1 所示。Client 端為移動 App,App 通過 HTTP 協(xié)議與服務(wù)器端進(jìn)行數(shù)據(jù)交互,數(shù)據(jù)格式為 json 字串。在 App 和真正的服務(wù)之間還使用了 nginx 作為反向,所以使用 nginx 作為反向服務(wù)器。應(yīng)為在系統(tǒng)正式上線之后會部署多套后服務(wù)器實現(xiàn)負(fù)載均衡??诖钥枷到y(tǒng)一共分為 5 大功能模塊:賬戶、題庫、之外還有一個請求分發(fā)模塊 Broker。Broker 模塊作為整個、社區(qū)和資訊,除此的統(tǒng)一,此模塊接入

44、后端不同的功能業(yè)務(wù)的 server。Broker 的定義是作為的接,其中不處理具體的業(yè)務(wù)邏輯,只是做請求轉(zhuǎn)發(fā)。轉(zhuǎn)發(fā)包括把 http 的請求轉(zhuǎn)換成 protobuffer 請求;Broker另外的重要的功能是打印一些系統(tǒng)日志,系統(tǒng)處理請求的速率。其中與s 兩個模塊共同提供教學(xué)服務(wù)。和模塊負(fù)責(zé)處理教學(xué)s 模塊則負(fù)責(zé),提供s 模塊由的組織關(guān)系,而數(shù)據(jù)的點(diǎn)播、功能。云服務(wù)提供商CC云服務(wù)整套解決方案。15北京交通大學(xué)畢業(yè)設(shè)計()正文4.2Broker 子系統(tǒng)功能設(shè)計4.2.1 功能結(jié)構(gòu)圖根據(jù) Broker 模塊在整個系統(tǒng)中所承擔(dān)的功能,本文為 Broker 子系統(tǒng)設(shè)計了五大功能模塊。其具體的功能結(jié)構(gòu)如

45、圖 4-2 所示。圖 4-2 Broker 功能結(jié)構(gòu)圖4.2.2 功能模塊描述 數(shù)據(jù)校驗APP 和瀏覽器端會將數(shù)據(jù)以 json 串的格式傳遞到 Broker。Broker 在接收到 json 字后會將 json 字轉(zhuǎn)化成指定的數(shù)據(jù)模型的一個實例。在轉(zhuǎn)化過程中需要對數(shù)據(jù)字段進(jìn)行校驗,被指定為 required 的字段不能夠為空。若出現(xiàn)為空的情況則立即終止請求,并向客戶端返回錯誤。 請求轉(zhuǎn)化Broker 處于客戶端(APP 和瀏覽器)與功能服務(wù)器之間。客戶端與 Broker 之格式為 json,而 Broker 與后端具體功能間的之間的格式為的 protocolbuff

46、er,因此需要將 json 格式的數(shù)據(jù)轉(zhuǎn)化為專門的數(shù)據(jù)模型類,再用 brotcol buffer 序列化對象,用于與具體功能服務(wù)器之間的數(shù)據(jù)通信。16北京交通大學(xué)畢業(yè)設(shè)計()正文 反爬蟲此功能是一個簡單的安全措施,用于防止同一 IP 或者同一賬號在短時間內(nèi)大量請求服務(wù),造成系統(tǒng)緊張,服務(wù)不可用。 負(fù)載平衡在系統(tǒng)開發(fā)完成后,每一個具體功能服務(wù)器都會至少部署兩臺,起到備份的作用。在功能服務(wù)器都可用的時候,Broker 會將 RPC 請求均勻的到每個功能服務(wù)器上,減輕服務(wù)起的,當(dāng)其中一臺功能服務(wù)器不可用時,Broker 會忽略這臺服務(wù)器,將請求發(fā)往可以正常工作的服務(wù)器上。

47、 請求日志請求日志是指將每一條請求當(dāng)中的有效數(shù)據(jù)到日志文件當(dāng)中。請求日志主要用于用戶提交的關(guān)鍵數(shù)據(jù),以便在系統(tǒng)出現(xiàn)錯誤之后可以從日志文件當(dāng)中恢復(fù)數(shù)據(jù),同時也能夠在系統(tǒng)出現(xiàn)錯誤后用錯誤發(fā)生時的請求數(shù)據(jù)重現(xiàn)錯誤,協(xié)助開發(fā)追查問題。請求日志當(dāng)中應(yīng)當(dāng)包含的數(shù)據(jù)有:當(dāng)前時間、處理請求的方法、請求的名稱、請求包含的數(shù)據(jù)、處理時長、RPC 處理時長。例如:2016-05-03_00:00:14.311 DataSinkService action=Launch rpcRequest="uid": "8a9f91","net":&quo

48、t;WIFI","imei":"A100577BE" totalCostTime=7 rpcCostTime=6。 響應(yīng)日志響應(yīng)日志是指系統(tǒng)每一條包有效數(shù)據(jù)的 Response 做出的日志。Broker 在到日志文件當(dāng)收到上游具體功能服務(wù)器做出的響應(yīng)后會將響應(yīng)數(shù)據(jù)中的有效數(shù)據(jù)中。響應(yīng)日志主要用于在開發(fā)階段與客戶端進(jìn)行聯(lián)調(diào)時追查系統(tǒng)中存在的問題,在系統(tǒng)正式上線后會關(guān)閉這種日志。響應(yīng)日志當(dāng)中應(yīng)當(dāng)包含的數(shù)據(jù)有:響應(yīng)時間、響應(yīng)的方法、響應(yīng)當(dāng)中包含的數(shù)據(jù)。開發(fā)當(dāng)中使用 log4j2 的 Marker 特性來標(biāo)記這種特定的日志,并在配置文件當(dāng)

49、中使用 MarkerFilter 進(jìn)行過濾處理。 處理統(tǒng)計處理統(tǒng)計日志用于系統(tǒng)在各個時間段上處理請求的數(shù)量,以及系統(tǒng)的各個功能在不同時間段上被請求的次數(shù)和平均處理時間長度。請求處理統(tǒng)計日志可以協(xié)助系統(tǒng)管17北京交通大學(xué)畢業(yè)設(shè)計()正文理員分析各個功能的重要性,當(dāng)前的性能,以及用戶在不同時間段內(nèi)的活躍情況。處理統(tǒng)計日志當(dāng)中應(yīng)當(dāng)包含的具體數(shù)據(jù)包括:時間段(MINUTE、HOUR、DAY)、請求名稱、請求數(shù)量、響應(yīng)數(shù)量、異常數(shù)量、請求總耗時、RPC 請求耗時。例如: MINUTEGetUserBasicInfo=2 2 0 1 1, Launch=29 29 0 6 6, SaveMa

50、jorSubject=1 1 0 6 6,GetSubjectSummary=1 1 0 2 2。 異常日志發(fā)生異常或者其它某些可能對系統(tǒng)的正常運(yùn)行造成影響的情況時,系統(tǒng)要能夠通過日志文件下當(dāng)時所發(fā)生的事情,用來幫助系統(tǒng)維護(hù)重現(xiàn)錯誤,排查問題。具體來說異常日志當(dāng)中應(yīng)當(dāng)包含發(fā)生異常時的時間,發(fā)生異常的方法,發(fā)生異常時所處理的數(shù)據(jù),系統(tǒng)所拋出的異常信息。在系統(tǒng)的實現(xiàn)過程中將使用 slf4j 和 log4j2 作為日志框架,異常日志的輸出級別為 error。4.3賬戶子系統(tǒng)功能設(shè)計4.3.1 功能結(jié)構(gòu)圖賬戶子系統(tǒng)是整個口袋自考系統(tǒng)的基礎(chǔ)支持模塊,它為用戶在其他子系統(tǒng)中的活動提供支持。賬戶子系統(tǒng)提供了各種用戶賬戶進(jìn)行操作的功能。其詳細(xì)功能結(jié)構(gòu)如圖 4-3 賬戶功能結(jié)構(gòu)圖所示。圖 4-3賬戶功能結(jié)構(gòu)圖18北京交通大學(xué)畢業(yè)設(shè)計()正文4.3.2 功能模塊描述與登錄系統(tǒng)提供號和 token 兩種賬號的方式。號時用戶需要通過驗。密證碼驗證號,確保目標(biāo)號碼未在系統(tǒng)中使用,此外用戶還需要提供昵稱、碼是包含字母和數(shù)字的長度大于 6 小于 12 的字需要使用 md5 進(jìn)行加密。賬號登陸中。在用戶使用第三。Token在功能上并未體現(xiàn),它暗

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論