博碩士論文 105522109 詳細資訊




以作者查詢圖書館館藏 以作者查詢臺灣博碩士 以作者查詢全國書目 勘誤回報 、線上人數:22 、訪客IP:18.116.37.228
姓名 陳盈宏(Ying-Hong Chen)  查詢紙本館藏   畢業系所 資訊工程學系
論文名稱 利用程式重組技術合併兩個具部份重疊函式之程式專案案例研究
(A Case Study on Merging Two Projects with Partial Overlapping Functions Using Restructuring Techniques)
相關論文
★ 應用分類重建學習偵測航照圖幅中的新穎坵塊★ 基於白名單機制之電子郵件附件存取控制及自動解密系統
★ 具有偵測器錯誤韌性之雲端系統快速錯誤偵測與復原機制
檔案 [Endnote RIS 格式]    [Bibtex 格式]    [相關文章]   [文章引用]   [完整記錄]   [館藏目錄]   [檢視]  [下載]
  1. 本電子論文使用權限為同意立即開放。
  2. 已達開放權限電子全文僅授權使用者為學術研究之目的,進行個人非營利性質之檢索、閱讀、列印。
  3. 請遵守中華民國著作權法之相關規定,切勿任意重製、散佈、改作、轉貼、播送,以免觸法。

摘要(中) 在軟體專案管理中,訂製軟體需求規格是很重要的關鍵,實務中便是根據需求規格進行設計和開發。然而,如果在完成實作後才發生改變需求的狀況,其所需的代價端看要如何選擇什麼樣的解決策略。如果是在現有架構下進行重組重構、或是整體重新設計軟體架構,所需要的人力時間成本是各不相同的。
M-FTVM是中央大學資訊工程研究所平行與分散式運算實驗室提出針對網路服務的容錯系統架構。在進行相關研究時發現,商用虛擬化軟體VMware可以在虛擬機失效轉移後,無痛地繼續對虛擬機進行容錯保護。但M-FTVM在設計之初,便已分歧為主要端和備援端不同的需求,依各自的需求進行開發。因此在現行設計下,無法在失效轉移後繼續對虛擬機提供容錯保護。如果要重新開啟容錯,必須關閉再重啟虛擬機,而虛擬機上的網路服務勢必會中斷。為了解決這樣新的需求,將主要端和備援端程式合併會是必要條件。儘管主要端和備援端是基於同一份開源專案,雖然它們功能相異但當中仍具有部分重疊函式,這樣特殊狀況對於合併可能會造成未知的衝突。因此,本研究基於已知的重組方法,提出了一個有系統地合併方法得保證行為和正確性,並應用此方法成功合併了M-FTVM主要端和備援端,並添加無痛重啟容錯的功能。
摘要(英) Regarding software project management, defining software requirement specifica-tion(SRS) is the most important step, that’s what programmers’ implementation de-pending on during the development practice. But what if the requirement was modified after implementation completed, and what’s the cost of corresponding strategy? It takes different man-month cost if refactoring/restructuring under current architecture or re-designing the entire software architecture.
M-FTVM is a virtual machine fault-tolerance mechanism based on KVM pro-posed by NCU PDC-Lab. However, when surveying the fault tolerance related works, we found the commercial virtualization software VMware can re-active the fault toler-ance mechanism with less penalty after VM failover. On the other hand, M-FTVM had branched into Primary and Backup from the initial design because different requirement. Which means, under current designed architecture, M-FTVM cannot re-active fault-tolerance mechanism directly after failover. if we would like to re-active fault-tolerance mechanism, it has to re-create VM, then the service on the VM must in-terrupt. To solve this new requirement for M-FTVM, merging Primary and Backup program would be necessary. In spite of Primary/Backup is based on the same open-source project and different functionality, but there are still partial-overlapped functions in each other, these cases might cause unknown conflict during mergence. Therefore, this paper proposed a systematically merging methodology based on known restructuring techniques to preserve the behavior and correctness. By applying this method, we merged M-FTVM successfully, added the function of re-active fault-tolerance mechanism directly after failover.
關鍵字(中) ★ KVM
★ 虛擬機器
★ 容錯
★ 程式重組
★ 軟體工程
關鍵字(英) ★ KVM
★ Virtual Machine
★ Fault Tolerance
★ Restructuring
★ Software Engineering
論文目次 摘要 i
Abstract ii
目錄 iii
圖目錄 v
表目錄 vi
第一章 緒論 1
1-1 研究背景 1
1-2 問題定義與研究動機 1
1-3 論文貢獻 2
1-4 論文架構 3
第二章 背景知識 4
2-1 重構方法 4
2-2 Fault-Tolerance相關技術 5
2-2-1 Kernel-based Virtual Machine(KVM) & QEMU 5
2-2-2 Continuous-Checkpointing 7
2-2-3 Micro-Checkpointing 7
2-2-4 Kemari 8
2-2-5 VMWare 9
2-2-6 其他相關研究文獻 9
第三章 程式整合方法 11
3-1 整合方法概論 11
3-2 整合風險分析 14
3-3 設計整合及正確性驗證 14
第四章 Case Study: NCU M-FTVM Restructuring 16
4-1 主要架構 16
4-2 容錯功能角色流程及狀態分析 17
4-2-1 主要虛擬機 18
4-2-2 備援虛擬機 24
4-3 關鍵變數介紹及Restructuring Design 29
4-4 合併後系統 32
4-4-1 建立主要虛擬機及備援虛擬機 32
4-4-2 開啟容錯 32
4-4-3 失效切換 33
4-4-4 重新建立容錯功能 33
4-5 風險分析及設計策略 34
第五章 結論及未來研究方向 35
參考文獻 36
參考文獻 [1] T. C. Bressoud and F. B. Schneider, "Hypervisor-based Fault Tolerance," ACM Transactions on Computer Systems (TOCS), vol. 14, no. 1, pp. 80-107, 1996.
[2] C. H. Chen, "基於KVM的網路服務高可靠性容錯同步架構," Department of Computer Science, National Central University, 2014.
[3] S. M. Lyu, "基於KVM的網路服務高可靠性容錯同步架構," Department of Computer Science, National Central University, 2015.
[4] W. L. Fang, "基於KVM虛擬機器的記憶體層級同步之網路服務容錯架構技術深化," Department of Computer Science, National Central University, 2017.
[5] T. Mens and T. Tourwe, "A Survey of Software Refactoring," IEEE Transactions on Software Engineering, vol. 30, no. 2, pp. 126-139, June 2004.
[6] M. Weiser, "Program slicing," in Proceedings of The 5th International Conference on Software Engineering, San Diego, California, USA, 1981, pp. 439-449: IEEE Press Piscataway, NJ, USA.
[7] N. Wirth, "Program Development by Stepwise Refinement," Communications of The ACM, vol. 14, no. 4, pp. 221-227, 1971.
[8] M. W. Godfrey and L. Zou, "Using Origin Analysis to Detect Merging And Splitting of Source Code Entities," IEEE Transactions on Software Engineering, vol. 31, no. 2, pp. 166-181, March 2005.
[9] T. Hirt, "Kvm-the kernel-based virtual machine," Red Hat Inc, 2010.
[10] KVM - Kernel-based Virtual Machine [Online]. Available: www.linux-kvm.org
[11] M. Zabaljauregui, "Hardware Assisted Virtualization Intel Virtualization Technology," June 2008, Available: http://lettieri.iet.unipi.it/virtualization/Vtx.pdf.
[12] AMD. Putting Server Virtualization to Work [Online]. Available: static.redhat.com/legacy/f/pdf/virtualization/amd_Virtualization_WP.pdf
[13] F. Bellard, "QEMU, a Fast And Portable Dynamic Translator," in USENIX Annual Technical Conference, FREENIX Track, 2005, vol. 41, p. 46.
[14] B. Cully, G. Lefebvre, D. Meyer, M. Feeley, N. Hutchinson, and A. Warfield, "Remus: High availability via Asynchronous Virtual Machine Replication," in Proceedings of The 5th USENIX Symposium on Networked Systems Design and Implementation, 2008, pp. 161-174: San Francisco.
[15] QEMU. Features/MicroCheckpointing. Available: wiki.qemu.org/Features/MicroCheckpointing
[16] C. Clark et al., "Live Migration of Virtual Machines," in Proceedings of The 2nd Conference on Symposium on Networked Systems Design & Implementation, 2005, vol. 2, pp. 273-286: USENIX Association.
[17] Y. Tamura, K. Sato, S. Kihara, and S. Moriai, "Kemari: Virtual Machine Synchronization for Fault Tolerance," in Proc. USENIX Annu. Tech. Conf.(Poster Session), Boston, USA, 2008: Citeseer.
[18] E. N. Elnozahy, L. Alvisi, Y.-M. Wang, and D. B. Johnson, "A Survey of Rollback-Recovery Protocols in Message-Passing Systems," ACM Computing Surveys (CSUR), vol. 34, no. 3, pp. 375-408, September 2002.
[19] M. Xu, V. Malyugin, J. Sheldon, G. Venkitachalam, and B. Weissman, "Retrace: Collecting Execution Trace With Virtual Machine Deterministic Replay," in Proceedings of The 3rd Annual Workshop on Modeling, Benchmarking and Simulation, MoBS, 2007, vol. 3: Citeseer.
[20] VMware. VMware vSphere 6 Fault Tolerance Architecture and Performance, TECHNICAL WHITE PAPER [Online]. Available: www.vmware.com/files/pdf/techpaper/VMware-vSphere6-FT-arch-perf.pdf
[21] P. J. Tsao, Y. F. Sun, L. H. Chen, and C. Y. Cho, "Efficient Virtualization-Based Fault Tolerance," in International Computer Symposium (ICS), 2016, pp. 114-119: IEEE.
[22] R. Jhawar, V. Piuri, and M. Santambrogio, "Fault tolerance Management in Cloud Computing: A System-level Perspective," IEEE Systems Journal, vol. 7, no. 2, pp. 288-297, June 2013.
[23] Y. Dong et al., "COLO: COarse-grained LOck-stepping Virtual Machines for Non-stop Service," in Proceedings of The 4th Annual Symposium on Cloud Computing, Santa Clara, California, 2013, no. 3: ACM New York, NY, USA.
[24] QEMU. Features/COLO. Available: wiki.qemu.org/Features/COLO
指導教授 梁德容 王尉任(De-Rong Liang Wei-Jen Wang) 審核日期 2018-7-31
推文 facebook   plurk   twitter   funp   google   live   udn   HD   myshare   reddit   netvibes   friend   youpush   delicious   baidu   
網路書籤 Google bookmarks   del.icio.us   hemidemi   myshare   

若有論文相關問題,請聯絡國立中央大學圖書館推廣服務組 TEL:(03)422-7151轉57407,或E-mail聯絡  - 隱私權政策聲明