請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/72959完整後設資料紀錄
| DC 欄位 | 值 | 語言 |
|---|---|---|
| dc.contributor.advisor | 郭斯彥 | |
| dc.contributor.author | Tzu-Chiao Yeh | en |
| dc.contributor.author | 葉子樵 | zh_TW |
| dc.date.accessioned | 2021-06-17T07:11:47Z | - |
| dc.date.available | 2019-08-05 | |
| dc.date.copyright | 2019-08-05 | |
| dc.date.issued | 2019 | |
| dc.date.submitted | 2019-07-19 | |
| dc.identifier.citation | [1] ReactiveX. http://reactivex.io, 2019. [Online; accessed 11-March-2019].
[2] M. S. Ardekani, R. P. Singh, N. Agrawal, D. B. Terry, and R. O. Suminto. Rivulet: A fault-tolerant platform for smart-home applications. In Proceedings of the 18th ACM/IFIP/USENIX Middleware Conference, Middleware ’17, pages 41–54, New York, NY, USA, 2017. ACM. [3] E. Bainomugisha, A. L. Carreton, T. v. Cutsem, S. Mostinckx, and W. d. Meuter. A survey on reactive programming. ACM Comput. Surv., 45(4):52:1–52:34, Aug. 2013. [4] E. Bertoluzzo. The essence of reactive programming: A theoretical approach. Master’s thesis, Delft University of Technology, The Netherlands, 2017. [5] C. C. Byers and P. Wetterwald. Fog computing distributing data and intelligence for resiliency and scale necessary for iot: The internet of things (ubiquity symposium). Ubiquity, 2015(November):4:1–4:12, Nov. 2015. [6] B. Calus, B. Reynders, D. Devriese, J. Noorman, and F. Piessens. Frp iot modules as a scala dsl. In Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017, pages 15–20, New York, NY, USA, 2017. ACM. [7] B.Cheng,G.Solmaz,F.Cirillo,E.Kovacs,K.Terasawa,andA.Kitazawa.Fogflow: Easy programming of iot services over cloud and edges for smart cities. IEEE Inter- net of Things Journal, 5(2):696–707, April 2018. [8] A. Courtney, H. Nilsson, and J. Peterson. The yampa arcade. In Proceedings of the 2003 ACM SIGPLAN Workshop on Haskell, Haskell ’03, pages 7–18, New York, NY, USA, 2003. ACM. [9] E. Czaplicki and S. Chong. Asynchronous functional reactive programming for guis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 411–422, New York, NY, USA, 2013. ACM. [10] C. De Troyer, J. Nicolay, and W. De Meuter. First-class reactive programs for cps. In Proceedings of the 4th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2017, pages 21–26, New York, NY, USA, 2017. ACM. [11] C. de Troyer, J. Nicolay, and W. de Meuter. Building iot systems using distributed first-class reactive programming. In 2018 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), pages 185–192, Dec 2018. [12] J. Drechsler, G. Salvaneschi, R. Mogk, and M. Mezini. Distributed rescala: An up- date algorithm for distributed reactive programming. In Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Lan- guages & Applications, OOPSLA ’14, pages 361–376, New York, NY, USA, 2014. ACM. [13] C. Elliott. Push-pull functional reactive programming. In Haskell Symposium, 2009. [14] C. Elliott and P. Hudak. Functional reactive animation. In Proceedings of the Second ACM SIGPLAN International Conference on Functional Programming, ICFP ’97, pages 263–273, New York, NY, USA, 1997. ACM. [15] L. Foundation. EdgeXFoundry. https://www.edgexfoundry.org,2017. [Online; accessed 11-March-2019]. [16] M. Fowler. Event sourcing, December 2005. [Online; accessed 11-May-2019]. [17] N. K. Giang, M. Blackstock, R. Lea, and V. C. M. Leung. Developing iot applications in the fog: A distributed dataflow approach. In 2015 5th International Conference on the Internet of Things (IOT), pages 155–162, Oct 2015. [18] A. Gupta and R. K. Jha. A survey of 5g network: Architecture and emerging tech- nologies. IEEE Access, 3:1206–1232, 2015. [19] D. Harel. Statecharts: A visual formalism for complex systems. Sci. Comput. Pro- gram., 8(3):231–274, June 1987. [20] C. Li, Y. Xue, J. Wang, W. Zhang, and T. Li. Edge-oriented computing paradigms: A survey on architecture design and system management. ACM Comput. Surv., 51(2):39:1–39:34, Apr. 2018. [21] S. Liang, P. Hudak, and M. Jones. Monad transformers and modular interpreters. In Proceedings of the 22Nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’95, pages 333–343, New York, NY, USA, 1995. ACM. [22] I. Maier, T. Rompf, and M. Odersky. Deprecating the observer pattern. page 18, 2010. [23] A. Margara and G. Salvaneschi. Ways to react: Comparing reactive languages and complex event processing. 2013. [24] A. Margara and G. Salvaneschi. We have a dream: Distributed reactive programming with consistency guarantees. In Proceedings of the 8th ACM International Conference on Distributed Event-Based Systems, DEBS ’14, pages 142–153, New York, NY, USA, 2014. ACM. [25] A. Margara and G. Salvaneschi. On the semantics of distributed reactive pro- gramming: The cost of consistency. IEEE Transactions on Software Engineering, 44(7):689–711, July 2018. [26] S. Marlow. Parallel and concurrent programming in haskell. In Proceedings of the 4th Summer School Conference on Central European Functional Programming School, CEFP’11, pages 339–401, Berlin, Heidelberg, 2012. Springer-Verlag. [27] A. Mehta, R. Baddour, F. Svensson, H. Gustafsson, and E. Elmroth. Calvin constrained — a framework for iot applications in heterogeneous environments. In 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS), pages 1063–1073, June 2017. [28] F. Myter, T. Coppieters, C. Scholliers, and W. De Meuter. I now pronounce you reactive and consistent: Handling distributed and replicated state in reactive programming. In Proceedings of the 3rd International Workshop on Reactive and Event-Based Languages and Systems, REBLS 2016, pages 1–8, New York, NY, USA, 2016. ACM. [29] D. O’Keeffe, T. Salonidis, and P. Pietzuch. Frontier: Resilient edge processing for the internet of things. Proc. VLDB Endow., 11(10):1178–1191, June 2018. [30] S. Peyton Jones. Beautiful concurrency. O’Reilly, beautiful code edition, January 2007. [31] A. v. d. Ploeg and K. Claessen. Practical principled frp: Forget the past, change the future, frpnow! SIGPLAN Not., 50(9):302–314, Aug. 2015. [32] A. Prokopec, P. Haller, and M. Odersky. Containers and aggregates, mutators and isolates for reactive programming. In Proceedings of the Fifth Annual Scala Work- shop, SCALA ’14, pages 51–61, New York, NY, USA, 2014. ACM. [33] G. Salvaneschi, G. Hintz, and M. Mezini. Rescala: Bridging between object-oriented and functional style in reactive applications. In Proceedings of the 13th International Conference on Modularity, MODULARITY ’14, pages 25–36, New York, NY, USA, 2014. ACM. [34] M. Shapiro, N. Preguiça, C. Baquero, and M. Zawirski. Conflict-free replicated data types. In Proceedings of the 13th International Conference on Stabilization, Safety, and Security of Distributed Systems, SSS’11, pages 386–400, Berlin, Heidelberg, 2011. Springer-Verlag. [35] E. Siow, T. Tiropanis, and W. Hall. Analytics for the internet of things: A survey. ACM Comput. Surv., 51(4):74:1–74:36, July 2018. [36] X. Su, P. Li, J. Riekki, X. Liu, J. Kiljander, J.-P. Soininen, C. Prehofer, H. Flores, and Y. Li. Distribution of semantic reasoning on the edge of internet of things. pages 1–9, 03 2018. [37] Y. Teranishi, T. Kimata, H. Yamanaka, E. Kawai, and H. Harai. Dynamic data flow processing in edge computing environments. In 2017 IEEE 41st Annual Computer Software and Applications Conference (COMPSAC), volume 1, pages 935–944, July 2017. [38] A. Toshniwal, S. Taneja, A. Shukla, K. Ramasamy, J. M. Patel, S. Kulkarni, J. Jackson, K. Gade, M. Fu, J. Donham, N. Bhagat, S. Mittal, and D. Ryaboy. Storm@twitter. In Proceedings of the 2014 ACM SIGMOD International Confer- ence on Management of Data, SIGMOD ’14, pages 147–156, New York, NY, USA, 2014. ACM. [39] J. Valim. Elixir programming language, 2011. [Online; accessed 28-May-2019]. [40] R. Virding, C. Wikström, and M. Williams. Concurrent Programming in ERLANG (2Nd Ed.). Prentice Hall International (UK) Ltd., Hertfordshire, UK, UK, 1996. [41] W. Yu, F. Liang, X. He, W. G. Hatcher, C. Lu, J. Lin, and X. Yang. A survey on the edge computing for the internet of things. IEEE Access, 6:6900–6919, 2018. [42] M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauly, M. J. Franklin, S. Shenker, and I. Stoica. Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In Presented as part of the 9th USENIX Sympo- sium on Networked Systems Design and Implementation (NSDI 12), pages 15–28, San Jose, CA, 2012. USENIX. [43] A. Zanella, N. Bui, A. Castellani, L. Vangelista, and M. Zorzi. Internet of things for smart cities. IEEE Internet of Things Journal, 1(1):22–32, Feb 2014. | |
| dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/72959 | - |
| dc.description.abstract | 邊際運算為新興的資訊科技,提供網路邊際端上的運算與儲存資源,使得物聯網應用具備即時控制及資料處理的能力。由於物聯網應用常以感測、控制及動作的交互式型態所建立,邊際運算軟體所編寫的程式邏輯往往基於事件驅動的結構上以解耦軟體複雜的控制邏輯, 除此之外,具備高度分散性的邊際運算節點以及可靠度較低的網路環境,亦需以事件驅動的方式反應系統狀態,以提高擴展性、可用性及反應性。反應式編程是以資料流模型組合事件驅動程式的編程模型,能有效提高程式組合性、模組化以及處理事件的關係語意。然而,目前在邊際運算上仍缺乏相關的研究使得反應式編程模型於分散式邊際運算系統上的議題值得去探討。因此,本研究之目標為探討邊際運 算上的分散式反應編程,包含提出一個分散式反應編程框架的設計與實作、評估在邊際環境下物聯網事件驅動應用的設計方法及其效能特徵。 | zh_TW |
| dc.description.abstract | Edge computing is a novel IT technology to provide computation and storage resources at network edge for real-time control and data processing capabilities in IoT application. Because most IoT applications are built in interactive style for sensing-control-action loop, event-driven programming is useful to decouple complex software. Besides, due to the characteristics of high distribution and unreliable network environment in edge computing, event-driven architecture is also useful to build a scalable, available and responsive distributed edge computing system. Reactive programming is a variant of dataflow programming model for composing event-driven program in a modularized structure with capability for semantically analyzing event relations. However, it is still lacking of reactive programming studies on distributed edge computing systems so that is valuable to investigate the design and implementation issues. Therefore, the objective of this thesis is to investigate distributed reactive programming on edge computing, including to propose a distributed reactive programming framework, and evaluate design methodology and performance characteristics for edge-based and event-driven IoT applications. | en |
| dc.description.provenance | Made available in DSpace on 2021-06-17T07:11:47Z (GMT). No. of bitstreams: 1 ntu-108-R05921085-1.pdf: 4354786 bytes, checksum: f75eba0595f66a1d3a80d363b88ccea7 (MD5) Previous issue date: 2019 | en |
| dc.description.tableofcontents | 誌謝 i
Acknowledgements ii 摘要 iii Abstract iv Contents v List of Figures viii List of Tables ix 1 Introduction 1 1.1 Background 1 1.2 Motivation 2 1.3 Objective 4 2 Related Work 6 2.1 Edge Computing Programming Framework and Model 6 2.1.1 Flow-based Programming for Edge Computing 6 2.1.2 Stream Processing System for Edge Computing 7 2.1.3 Reactive Programming for Edge Computing 8 2.2 ReactiveProgramming 9 2.2.1 Functional Reactive Programming 10 2.2.2 Plain Reactive Programming 11 2.2.3 Distributed Reactive Programming 12 3 Programming Framework 14 3.1 System Model 14 3.2 Design Overview 15 3.3 Primitive Abstraction 16 3.3.1 Event and EVar 17 3.3.2 Signal 19 3.4 Combinators 21 3.4.1 Synchronous and Asynchronous Merge 21 3.4.2 High-Level Combinators 23 3.5 Distributed Reactivity 25 3.5.1 Distributed Primitives, Event and Signal 25 3.5.2 Consistency Guarantees 28 4 Evaluation 29 4.1 Validation 29 4.1.1 Domain Modeling 29 4.1.2 Problems from Callback 31 4.1.3 Introducing Reactive Abstraction 32 4.1.4 More Semantics 37 4.2 Performance Analysis 39 4.2.1 TimeEfficiency 39 4.2.2 Space Efficiency 42 5 Discussion 45 5.1 Performance Discussion 45 5.2 Model Limitation 46 6 Conclusion 48 A Standard Type Classes 49 B Case Study Source Code 51 B.1 Domain Modeling 51 B.2 The Native Implementation 55 B.2.1 Type Definitions 55 B.2.2 Main Control Logic 57 B.3 The Reactive Implementation 60 B.3.1 Type Definitions 60 B.3.2 Main Control Logic 62 Bibliography 67 | |
| dc.language.iso | en | |
| dc.subject | 邊際運算 | zh_TW |
| dc.subject | 函數式編程 | zh_TW |
| dc.subject | 分散式反應編程 | zh_TW |
| dc.subject | 事件驅動系統 | zh_TW |
| dc.subject | 軟體架構 | zh_TW |
| dc.subject | Edge Computing | en |
| dc.subject | Functional Programming | en |
| dc.subject | Distributed Reactive Programming | en |
| dc.subject | Event-driven System | en |
| dc.subject | Software Architecture | en |
| dc.title | 一個在邊際運算環境中建立反應式應用之框架 | zh_TW |
| dc.title | A Framework for Building Reactive Applications in Edge Computing Environment | en |
| dc.type | Thesis | |
| dc.date.schoolyear | 107-2 | |
| dc.description.degree | 碩士 | |
| dc.contributor.oralexamcommittee | 雷欽隆,顏嗣鈞 | |
| dc.subject.keyword | 邊際運算,函數式編程,分散式反應編程,事件驅動系統,軟體架構, | zh_TW |
| dc.subject.keyword | Edge Computing,Functional Programming,Distributed Reactive Programming,Event-driven System,Software Architecture, | en |
| dc.relation.page | 72 | |
| dc.identifier.doi | 10.6342/NTU201901397 | |
| dc.rights.note | 有償授權 | |
| dc.date.accepted | 2019-07-19 | |
| dc.contributor.author-college | 電機資訊學院 | zh_TW |
| dc.contributor.author-dept | 電機工程學研究所 | zh_TW |
| 顯示於系所單位: | 電機工程學系 | |
文件中的檔案:
| 檔案 | 大小 | 格式 | |
|---|---|---|---|
| ntu-108-1.pdf 未授權公開取用 | 4.25 MB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。
