請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/84811
完整後設資料紀錄
DC 欄位 | 值 | 語言 |
---|---|---|
dc.contributor.advisor | 李允中(Yun-Jhong Li) | |
dc.contributor.author | Tse-Chuan Lu | en |
dc.contributor.author | 盧則全 | zh_TW |
dc.date.accessioned | 2023-03-19T22:26:53Z | - |
dc.date.copyright | 2022-09-05 | |
dc.date.issued | 2022 | |
dc.date.submitted | 2022-08-30 | |
dc.identifier.citation | [1] Gson. https://github.com/google/gson. [2] Guice. https://github.com/google/guice. [3] Hibernate. https://hibernate.org/. [4] Java persistence api. https://docs.oracle.com/javaee/7/tutorial/persistence-intro.html. [5] Java reflection api. https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/index.html. [6] Javaparser. https://javaparser.org/. [7] Javapoet. https://github.com/square/javapoet. [8] Spring boot. https://spring.io/projects/spring-boot. [9] Spring framework. https://spring.io/. [10] Springcloud. https://spring.io/projects/spring-cloud. [11] H.-Y. Huang. Atomic service generation from java-based open source software. Master’s thesis, National Taiwan University, 2019. [12] J.-W. Huang. Generate web application servers with bpel processes. Master’s thesis, National Taiwan University, 2022. [13] J.-J. Yu. Construct service components from open source java projects. Master’s thesis, National Taiwan University, 2021. | |
dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/84811 | - |
dc.description.abstract | 組合服務的技術可以將簡單的服務組合成複雜的應用來完成困難的工作。 但在組合服務的背後,如何將來自不同環境的服務重新整合,創造一個穩定的執行環境,最後再提供一個方便且有效率的使用方法仍是一個困難的議題。 因此,本篇論文提出三種不同的組合服務元件的方法: http, classloader, microservice ,並針對這三種方法分別提出建置環境的解法。最後從四個面向:執行速度、使用者體驗、記憶體佔用、未來擴展性,來分別討論這三種方法的優缺點。 | zh_TW |
dc.description.abstract | The service composition technique can compose simple services into a composite web application to achieve complex tasks. In addition to composing services, there are three major challenges, including integrating the environments in which different services reside, providing a stable operating environment, and offering an efficient way to trigger and run service components. In this research, we propose three approaches to packing service components: http, classloader, and microservice, as well as addressing the issues related to the three operating environments, respectively. Pros and cons of these three approaches are also evaluated based on four factors: speed, user-friendly, memory consumption, and future extensibility. | en |
dc.description.provenance | Made available in DSpace on 2023-03-19T22:26:53Z (GMT). No. of bitstreams: 1 U0001-2608202217572400.pdf: 1635300 bytes, checksum: b367735632391276c0dafd295eaf84ea (MD5) Previous issue date: 2022 | en |
dc.description.tableofcontents | Contents 口試委員審定書i 誌謝ii 摘要iii Abstracts iv List of Figures ix List of Tables xi Chapter 1 Introduction 1 Chapter 2 Related Work 3 2.1 Background Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 JavaParser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.2 Web Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3 Hibernate ORM . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.4 JavaPoet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.5 ClassLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.6 Reflection API . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.7 Gson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.8 Microservice and Spring Cloud . . . . . . . . . . . . . . . . . 6 Chapter 3 Collecting Information 7 3.1 Java Code Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Service Component Query Server . . . . . . . . . . . . . . . . . . . . 8 Chapter 4 Repack Service Components 9 4.1 Repack Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.2 Repack Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2.1 Invoker and Service Library . . . . . . . . . . . . . . . . . . . 11 4.2.2 Jar file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3 Repack Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3.1 Query Dependencies and framework . . . . . . . . . . . . . . . 13 4.3.2 Configure JavaParser . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.3 Parse project . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.3.4 Clone and Replace . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3.5 Write new files . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3.6 Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3.7 Recollect missing imports . . . . . . . . . . . . . . . . . . . . 14 4.3.8 Create JAR and zip . . . . . . . . . . . . . . . . . . . . . . . 15 Chapter 5 Http Approach 16 5.1 Dependency Injection issue . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1.1 Guice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1.2 Spring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Spring boot issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.3 Play issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Chapter 6 ClassLoader Approach 21 6.1 Spring boot Configuration . . . . . . . . . . . . . . . . . . . . . . . . 23 6.1.1 Database Connection . . . . . . . . . . . . . . . . . . . . . . . 23 6.1.2 Java Persistence API . . . . . . . . . . . . . . . . . . . . . . . 24 6.1.3 Dependency Injection . . . . . . . . . . . . . . . . . . . . . . . 25 6.2 Java code without any framework . . . . . . . . . . . . . . . . . . . . 25 Chapter 7 Microservice Approach 26 7.1 Microservice Configuration . . . . . . . . . . . . . . . . . . . . . . . . 27 Chapter 8 Result 29 8.1 Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 8.2 User experience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 8.3 Hardware resource consumption . . . . . . . . . . . . . . . . . . . . . 33 8.4 Future extensibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Chapter 9 Conclusion 35 Bibliography 37 | |
dc.language.iso | en | |
dc.title | 用服務元件重組出網路應用程式 | zh_TW |
dc.title | Develop Web Applications through Service Components Repacking | en |
dc.type | Thesis | |
dc.date.schoolyear | 110-2 | |
dc.description.degree | 碩士 | |
dc.contributor.oralexamcommittee | 劉立頌(Li-Song Liou),郭忠義(Jhong-Yi Guo),陳錫民(Si-Min Chen),李文廷(Wun-Ting Li) | |
dc.subject.keyword | 服務元件,網路服務,網路應用程式重組,微服務, | zh_TW |
dc.subject.keyword | Service Component,Web Service,Repack Web Application,Microservice, | en |
dc.relation.page | 37 | |
dc.identifier.doi | 10.6342/NTU202202868 | |
dc.rights.note | 同意授權(限校園內公開) | |
dc.date.accepted | 2022-08-30 | |
dc.contributor.author-college | 電機資訊學院 | zh_TW |
dc.contributor.author-dept | 資訊工程學研究所 | zh_TW |
dc.date.embargo-lift | 2022-09-05 | - |
顯示於系所單位: | 資訊工程學系 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
U0001-2608202217572400.pdf 授權僅限NTU校內IP使用(校園外請利用VPN校外連線服務) | 1.6 MB | Adobe PDF | 檢視/開啟 |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。