開題報告的綜述部分應(yīng)首先提出選題,并簡明扼要地說明該選題的目的、相關(guān)課題研究情況、理論適用、研究方法,以下是一篇關(guān)于軟件工程論文開題報告的模板,希望對大家有幫助。
軟件工程論文開題報告
一、選題背景
當(dāng)今的互聯(lián)網(wǎng)服務(wù)面臨著許許多多的挑戰(zhàn)和千變?nèi)f化的需求,其中就包括需要管理海量的數(shù)據(jù),并且能為高速增長的用戶群提供持續(xù)可依賴的服務(wù)。這里所說的互聯(lián)網(wǎng)服務(wù)包括了諸如在線郵箱、搜索引擎、在線游戲、在線金融系統(tǒng)、內(nèi)容分發(fā)網(wǎng)絡(luò)、文件共享網(wǎng)絡(luò)等等。 因此,能提供這些互聯(lián)網(wǎng)服務(wù)的系統(tǒng)往往很龐大:由成百上千臺機(jī)器組成,并且這些機(jī)器可能在同一個數(shù)據(jù)中心里,也可能分散在不同的數(shù)據(jù)中心,之間通過不可依賴的網(wǎng)絡(luò)進(jìn)行通信。在具有如此巨大的擴(kuò)展性的集群中,錯誤的發(fā)生變的很常見:一部分機(jī)器可能隨時會遇到硬件或者軟件故障;網(wǎng)絡(luò)延遲和網(wǎng)絡(luò)故障隨時可能發(fā)生,導(dǎo)致丟包、網(wǎng)絡(luò)分區(qū)等情況;偶發(fā)的惡意攻擊或是操作錯誤,也有可能導(dǎo)致不可預(yù)測的災(zāi)難性錯誤發(fā)生。 所以,構(gòu)建這種系統(tǒng)的軟件往往很復(fù)雜,同時,每隔一段時間,系統(tǒng)都需要進(jìn)行一定的修改(升級)以提升性能、修改錯誤或增加新的功能。本文工作所面臨的最基本的問題就是如何有效地設(shè)計一種工程上可行的升級方案,使得這種規(guī)模的分布式系統(tǒng)能在升級期間能持續(xù)地提供服務(wù)。
二、研究目的和意義
時下云計算十分火爆,各種互聯(lián)網(wǎng)公司、銀行、政府都經(jīng)常提及云計算,各種各樣的分布式系統(tǒng)也層出不窮,不論是著名的大型分布式產(chǎn)品的開源項目諸如 Hadoop、Open Stack、Mongo DB 等等,又或者是國內(nèi)外的著名的云計算服務(wù)提供商 Amazon AWS、Microsoft Azure、阿里云們,云計算早已從紙面或者是宣傳標(biāo)語中,走向了實實在在的落地階段。 但是,針對云計算抑或是分布式系統(tǒng)中一個比較具體的問題的相關(guān)研究,尤其對于國內(nèi)的相關(guān)領(lǐng)域而言,卻是比較缺少的,國內(nèi)工業(yè)界的著名廠商們似乎都在悶頭造車,分享出來的解決云計算工程中實際具體問題的論文和研究成果依然較少。 本人深知自己的能力有限,僅得益于研究生期間的一些實習(xí)經(jīng)歷,結(jié)合工程實際,嘗試對分布式系統(tǒng)的升級和數(shù)據(jù)遷移問題做一些總結(jié)和提煉的工作,并且有一定的創(chuàng)新。
三、本文研究涉及的主要理論
分布式系統(tǒng)是其組件分布在聯(lián)網(wǎng)的計算機(jī)上,組件之間通過傳遞消息進(jìn)行通信和動作協(xié)調(diào)的軟件系統(tǒng)[2]。分布式系統(tǒng)是一個統(tǒng)稱,常見的有分布式操作系統(tǒng)、分布式程序設(shè)計語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫(存儲)系統(tǒng)等等。本文所面臨的升級和數(shù)據(jù)遷移的問題涉及到更多的是分布式存儲系統(tǒng),分布式存儲系統(tǒng)的定義如下: 分布式存儲系統(tǒng)是大量的普通的PC 服務(wù)器通過互聯(lián)網(wǎng)互聯(lián),對外作為一個整體提供存儲服務(wù)。也可以說,那些以數(shù)據(jù)存儲和訪問為目的而設(shè)計的分布式系統(tǒng)稱之為分布式存儲系統(tǒng)。 與普通的軟件系統(tǒng)不同,分布式存儲系統(tǒng)具有以下幾個特性,理解這些特性對解決本文所提出的問題具有基礎(chǔ)性的意義。 擴(kuò)展性:分布式存儲系統(tǒng)的擴(kuò)展性是最重要的優(yōu)勢,往往可以擴(kuò)展成百上千臺的規(guī)模。同時隨著集群規(guī)模的增長,其系統(tǒng)整體性能表現(xiàn)為線性增長。并且,可以根據(jù)一定的策略將數(shù)據(jù)和請求分配到不同的物理節(jié)點,物理節(jié)點的數(shù)目和集群處理能力成正比,集群是線性可擴(kuò)展的。同時,集群能否擴(kuò)展,可否線性擴(kuò)展是衡量分布式存儲系統(tǒng)的一個重要指標(biāo)。 低成本和高性能:分布式存儲系統(tǒng)具有的自動容錯、自動負(fù)載均衡機(jī)制使其可以構(gòu)建在普通的 PC 機(jī)之上。另外,線性擴(kuò)展能力也使得增加、減少機(jī)器非常方便,可以實現(xiàn)自動運維。因此,對整個集群而言,分布式存儲系統(tǒng)具備高性能。 數(shù)據(jù)分布:分布式存儲系統(tǒng)區(qū)別于單機(jī)存儲系統(tǒng)最大的特點是它可以按照一定方法進(jìn)行數(shù)據(jù)切片,不同的物理節(jié)點分布不同的數(shù)據(jù)分片,從而將系統(tǒng)的存儲容量壓力和訪問請求壓力分散到系統(tǒng)集群的各個物理節(jié)點上,使系統(tǒng)整體能夠存儲超大規(guī)模的數(shù)據(jù)量,同時能夠接受更多的并發(fā)請求。那么如何將數(shù)據(jù)分布到多臺服務(wù)器才能夠保證數(shù)據(jù)分布均勻?數(shù)據(jù)分布到多臺服務(wù)器后如何實現(xiàn)跨服務(wù)器讀寫操作?常用的數(shù)據(jù)分片和分布方法有兩種:a.哈希分區(qū)方法,即根據(jù)數(shù)據(jù)的 Key 進(jìn)行哈希取模,離散的分配到集群的物理節(jié)點上,Amazon 的 Dynamo 采用了一致性哈希算法進(jìn)行分區(qū);b.連續(xù)分區(qū)方法,即將整個數(shù)據(jù)集合按照 key 來排序,根據(jù) key 的范圍進(jìn)行分片。
四、本文研究的主要內(nèi)容及研究框架
(一)本文研究的主要內(nèi)容
本論文共分為六章,各章的主要內(nèi)容如下所述:
第一章為引言。介紹了本論文的研究背景,簡述了云計算和分布式系統(tǒng)目前的現(xiàn)狀,系統(tǒng)升級的必要性,以及本文的主要工作和組織結(jié)構(gòu)。
第二章為文獻(xiàn)綜述。介紹了分布式系統(tǒng)相關(guān)的基本理論,分析了一些典型的 Nosql系統(tǒng),綜述了在單機(jī)軟件成熟的升級方案以及在分布式系統(tǒng)升級問題上前人的一些研究成果。
第三章為難點分析及總體設(shè)計。本章系統(tǒng)地分析了分布式系統(tǒng)升級問題的難點,并且提出了高可用的分布式系統(tǒng)升級設(shè)計的基本概念和原則,在此基礎(chǔ)上,提出了該問題的總體設(shè)計方案。
第四章為詳細(xì)設(shè)計和實現(xiàn)。本章在前一章的基礎(chǔ)上,依次詳細(xì)地設(shè)計了在單數(shù)據(jù)中心和跨數(shù)據(jù)中心的分布式環(huán)境下的系統(tǒng)升級方案,為本論文的最為重點的章節(jié)。
第五章為方案測試與實施。本章在詳細(xì)設(shè)計與實現(xiàn)的基礎(chǔ)上,提出了相應(yīng)的測試和實施方案,通過測試分析和實驗分析驗證了升級方案的有效性。
第六章為總結(jié)和展望。總結(jié)了全文所做的工作,指出了論文的創(chuàng)新點,并且對論文的不足以及未來的后續(xù)研究做出了展望。
(二)本文研究框架
本文研究框架可簡單表示為:
五、寫作提綱
摘要 4-5
ABSTRACT 5-6
第一章 引言 9-11
1.1 研究背景 9
1.3 本文組織結(jié)構(gòu) 10-11
2.1 分布式相關(guān)理論 11-14
2.1.1 基本概念和特性 11-12
2.2 典型 Nosql 系統(tǒng)分析 14-19
2.2.1 Bigtable 15-16
2.2.2 Dynamo 16-18
2.2.3 Cassandra 與 Bigtable,Dynamo 的對比 18-19
2.5 本章小結(jié) 22-23
第三章 難點分析與總體設(shè)計 23-32
3.2 高可用的分布式系統(tǒng)升級設(shè)計 25-27
3.2.2 升級設(shè)計的基本原則 26-27
3.3 總體設(shè)計方案 27-31
3.3.2 方案步驟 28-30
3.3.3 重點說明 30-31
3.4 本章小結(jié) 31-32
第四章 詳細(xì)設(shè)計與實現(xiàn) 32-51
4.2 單數(shù)據(jù)中心分布式系統(tǒng)升級 33-38
4.2.1 設(shè)計意義 33-34
4.2.2 詳細(xì)設(shè)計 34-38
4.3 跨數(shù)據(jù)中心分布式系統(tǒng)升級 38-42
4.3.1 區(qū)別分析 38
4.3.2 總體說明 38-39
4.3.3 讀寫請求處理 39-40
4.3.4 詳細(xì)步驟 40-42
4.4 主要模塊的實現(xiàn) 42-49
4.4.2 升級主要模塊實現(xiàn) 44-46
4.4.3 數(shù)據(jù)遷移模塊實現(xiàn) 46-48
4.4.4 回調(diào)函數(shù)的實現(xiàn) 48-49
4.5 本章小結(jié) 49-51
第五章 方案實施與測試 51-70
5.1 方案實施 51-57
5.1.1 系統(tǒng)部署 51
5.2 方案測試 57-66
5.2.1 單元測試 57-61
5.2.2 集成測試 61-63
5.2.3 系統(tǒng)測試 63-66
5.3 實際生產(chǎn)環(huán)境測試結(jié)果 66-69
5.4 本章小結(jié) 69-70
第六章 總結(jié)與展望 70-72
6.1 回顧和總結(jié) 70-71
6.2 前景展望 71-72
參考文獻(xiàn) 72-74
致謝 74
六、本文研究進(jìn)展(略)
七、參考文獻(xiàn)
[5] Armando Fox and Eric Brewer, Harvest, Yield and Scalable Tolerant Systems, Proc. 7th Workshop Hot Topics in Operating Systems (Hot OS 99), IEEE CS, 1999, pg. 174-178.
[6] MSBI #72 BI # 5 Big Data # 2 What is Big Data ? What is No SQL ? What is Relation in association of Microsoft with SQL Azure , Windows Azure ,Big Data and No SQL together.
[7] Nosql. Wikipedia. https://zh.wikipedia.org/zh-cn/No SQL.
[8] Chang, Fay, et al. Bigtable: A distributed storage system for structured data. ACM Transactions on Computer Systems (TOCS) 26.2 (2008): 4. [9] Giuseppe De Candia, Deniz Hastorun, Madan Jampani, etc. Dynamo: Amazons Highly Available Key-value Store.