跳到主要內容

簡易檢索 / 詳目顯示

研究生: 張昱珩
Yu-Heng Chang
論文名稱: 物聯網下嵌入式系統之軟體資料儲存格式改進
An Improvement to the Data Storage Format of Embedded Systems in the IoT World
指導教授: 鄭旭詠
Hsu-Yung Cheng
口試委員:
學位類別: 碩士
Master
系所名稱: 資訊電機學院 - 資訊工程學系在職專班
Executive Master of Computer Science & Information Engineering
論文出版年: 2020
畢業學年度: 108
語文別: 中文
論文頁數: 45
中文關鍵詞: 軟體資料儲存格式物聯網嵌入式系統
外文關鍵詞: Software data storage format, Internet of Things, Embedded system
相關次數: 點閱:18下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著網路的普及,做為物聯網一環的嵌入式系統也愈發融入日常生活中。嵌入式系統對資料儲存的可靠性要求極高,因嵌入式系統的操作介面有限,錯誤或毀損的資料可能會造成嵌入式系統永久性地毀損。大多數的嵌入式系統都不具備電源供應的保護,因此嵌入式系統的軟體設計要項之一便是在電源可能隨時中斷的情況下,仍確保資料儲存的正確性。現今雖已可透過選擇較長壽命的承載硬體、日誌檔案系統(Journaling File System)和資料庫的交易(Transaction)性質來確保儲存資料的正確性,但硬體和檔案系統的改進,對他們的操作方式無任何影響,而資料庫的操作方式卻有別於程式語言對物件資料的操作習慣。
    本論文旨在探討,在保有相同可靠性的前提下,如何讓儲存與載入靜態資料的操作方式與程式語言中對物件資料的操作習慣一致。本論文改進了既有物件關聯對映(Object-Relational Mapping, ORM)的對映方式使其具備更廣的資料描述能力,除描述改進後對映方式與既有各對映方式的差異外,也提供了Python版本的函式庫實作來證明可行性,同時亦搜集程式設計師的使用經驗來證明此格式改進促成的操作方式一致性提升所帶來的正面效果。


    With the popularity of the internet, embedded devices as part of the Internet of Things are also being much more involved in people’s lives. The necessity of the correctness of the stored data in embedded devices is vital, as the interface provided is usually limited, bad or broken stored data may cause permanent damage to devices. Given the fact that uninterruptible power source is not a requirement in usual embedded systems, one of the required characteristics of embedded devices is the resistance to the power outage regarding the data storing. Although there is already high durability hardware storage, journaling file system and database transaction that can be used for ensuring the correctness of the stored data, the improvements to the hardware and file system didn’t change the way they are used. However, it is notably different between storing data in a database and an object of programming languages.
    The goal of the research is finding a way to make the operations of loading/saving data from/to databases and objects consistent while keeping the same reliability of the correctness of the data. The thesis shows an improved object-relational mapping (ORM) format that increases the data able to be described. In addition to comparing the difference of the improvement from this thesis with others, a Python library based on the improved format was also created as the material for the survey of the positive impacts to programmers whose data operation work turned into the same with object operation.

    中文摘要 i 英文摘要 ii 誌謝 iii 目錄 iv 圖目錄 vi 表目錄 vii 一、 緒論 1 1-1 動機 1 1-2 目的 2 1-3 架構 2 二、 背景及相關技術介紹 3 2-1 背景 3 2-2 相關技術 4 2-3 物件關聯對映與物件文件對映 6 2-3-1 物件關聯對映(Object-Relational Mapping) 6 2-3-2 物件文件對映(Object-Document Mapping) 8 2-3-3 物件關聯對映與物件文件對映之不足 9 三、 轉置型物件關聯對映 13 3-1 資料結構 13 3-2 載入 14 3-3 儲存 16 3-3-1 重複物件 16 3-3-2 複合物件 16 3-3-3 多型物件 18 四、 結果驗證與討論 23 4-1 內部驗證 23 4-2 公開驗證 26 4-3 討論 27 五、 結論與未來展望 28 5-1 結論 28 5-2 未來展望 28 參考文獻 30 附錄一 使用經驗問卷調查 33

    〔1〕Z. You, "The reliability analysis of embedded systems", 2013 International Conference on Information Science and Cloud Computing Companion, pp. 458-462, IEEE, 2013
    〔2〕M. Eriksson and V. Hallberg, "Comparison between JSON and YAML for data serialization", The School of Computer Science and Engineering Royal Institute of Technology, pp. 1-25, 2011.
    〔3〕B. Lin, Y. Chen, X. Chen, and Y. Yu, "Comparison between JSON and XML in Applications Based on AJAX", 2012 International Conference on Computer Science and Service System, pp. 1174-1177, IEEE, 2012
    〔4〕T. Sheard and D. Stemple, "Automatic verification of database transaction safety", ACM Transactions on Database Systems (TODS), vol. 14, no. 3, pp. 322-368, 1989.
    〔5〕R. K. Kodali and V. S. K. Gorantla, "Weather tracking system using MQTT and SQLite", 2017 3rd International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT), pp. 205-208, IEEE, 2017
    〔6〕G. Sivathanu, C. P. Wright, and E. Zadok, "Ensuring data integrity in storage: Techniques and applications", Proceedings of the 2005 ACM workshop on Storage security and survivability, pp. 26-36, 2005
    〔7〕S. Verma, "U-boot environment variables", Linux Journal, vol. 2014, no. 246, p. 2, 2014.
    〔8〕K. M. Lofgren, R. D. Norman, G. B. Thelin, and A. Gupta, "Wear leveling techniques for flash EEPROM systems", ed: Google Patents, 2001
    〔9〕S. A. Gorobets, A. D. Bennett, P. J. Smith, A. W. Sinclair, K. M. Conley, and P. D. Royall, "Cyclic flash memory wear leveling", ed: Google Patents, 2008
    〔10〕S. Kulkarni and P. Jisha, "Study of Bad block management and Wear leveling in NAND flash memories", 2013.
    〔11〕M. Machado, C. Van Genderen, P. Lee, and J. Park, "Serial flash integrated circuit having error detection and correction", ed: Google Patents, 2004
    〔12〕V. Prabhakaran, A. C. Arpaci-Dusseau, and R. H. Arpaci-Dusseau, "Analysis and Evolution of Journaling File Systems", USENIX Annual Technical Conference, General Track, pp. 196-215, vol. 194, 2005
    〔13〕S. Tuli, S. Tuli, U. Jain, and R. Buyya, "APEX: Adaptive Ext4 File System for Enhanced Data Recoverability in Edge Devices", arXiv preprint arXiv:1910.01642, 2019.
    〔14〕D. Chen, X. Han, and W. Wang, "Use of sqlite on embedded system", 2010 International Conference on Intelligent Computing and Cognitive Informatics, pp. 210-213, IEEE, 2010
    〔15〕S. W. Dietrich and S. D. Urban, "Fundamentals of object databases: Object-oriented and object-relational design", Synthesis lectures on data management, vol. 2, no. 1, pp. 1-173, 2010.
    〔16〕J. Han, E. Haihong, G. Le, and J. Du, "Survey on NoSQL database", 2011 6th international conference on pervasive computing and applications, pp. 363-366, IEEE, 2011
    〔17〕S. K. Gajendran, "A survey on nosql databases", University of Illinois, 2012.
    〔18〕W. Keller, "Mapping objects to tables", Proc. of European Conference on Pattern Languages of Programming and Computing, Kloster Irsee, Germany, p. 207, vol. 206, Citeseer, 1997
    〔19〕L. Cabibbo, "Ondm: an object-nosql datastore mapper", Faculty of Engineering, Roma Tre University. Retrieved June 15th, 2013.
    〔20〕B. Carpenter, G. Fox, S. H. Ko, and S. Lim, "Object serialization for marshaling data in a Java interface to MPI", Concurrency: Practice and Experience, vol. 12, no. 7, pp. 539-553, 2000.
    〔21〕A. Sumaray and S. K. Makki, "A comparison of data serialization formats for optimal efficiency on a mobile platform", Proceedings of the 6th international conference on ubiquitous information management and communication, pp. 1-6, 2012
    〔22〕H. Ishikawa, Y. Yamane, Y. Izumida, and N. Kawato, "An object-oriented database system Jasmine: implementation, application, and extension", IEEE Transactions on Knowledge and Data Engineering, vol. 8, no. 2, pp. 285-304, 1996.
    〔23〕D. Barry and T. Stanienda, "Solving the Java object storage problem", Computer, vol. 31, no. 11, pp. 33-40, 1998.
    〔24〕C. Richardson, "ORM in dynamic languages", Communications of the ACM, vol. 52, no. 4, pp. 48-55, 2009.
    〔25〕L. Cardelli and P. Wegner, "On understanding types, data abstraction, and polymorphism", ACM Computing Surveys (CSUR), vol. 17, no. 4, pp. 471-523, 1985.
    〔26〕M. Abadi and L. Cardelli, A theory of objects. Springer Science & Business Media, 2012.
    〔27〕S. Sharify, A. Lu, J. Chen, A. Bhattacharyya, A. Hashemi, N. Koudas, and C. Amza, "An Improved Dynamic Vertical Partitioning Technique for Semi-structured Data", 2019 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pp. 243-256, IEEE, 2019
    〔28〕B. Stroustrup, "C++ glossary", ed, 2007
    〔29〕R. M. Amadio and L. Cardelli, "Subtyping recursive types", ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 15, no. 4, pp. 575-631, 1993.
    〔30〕R. C. Martin, "The Liskov substitution principle", C++ Report, vol. 8, no. 3, p. 14, 1996.
    〔31〕"tormdb", https://github.com/changyuheng/tormdb
    〔32〕「物聯網嵌入式系統應用軟體開發經驗問卷調查」,https://www.surveycake.com/s/aQKBr

    QR CODE
    :::