請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/86328完整後設資料紀錄
| DC 欄位 | 值 | 語言 |
|---|---|---|
| dc.contributor.advisor | 李允中(Jonathan Lee) | |
| dc.contributor.author | WEI-LUN SHIH | en |
| dc.contributor.author | 施威綸 | zh_TW |
| dc.date.accessioned | 2023-03-19T23:49:22Z | - |
| dc.date.copyright | 2022-08-29 | |
| dc.date.issued | 2022 | |
| dc.date.submitted | 2022-08-25 | |
| dc.identifier.citation | [1] Google guice. https://github.com/google/guice/wiki/. [2] M.-H. Hsieh. Construct and bind user interface components. Master’s thesis, National Taiwan University, 2021. [3] H.-Y. Huang. Atomic service generation from java-based open source software. Master’s thesis, National Taiwan University, 2019. [4] J.-W. Huang. Generate web application servers with bpel processes. Master’s thesis, National Taiwan University, 2022. [5] S.-W. Huang. Towards a solution to iot interoperability through reverse engineering. Master’s thesis, National Taiwan University, 2017. [6] Java compiler api. https://docs.oracle.com/javase/8/docs/api/javax/tools/JavaCompiler.html. [7] Java compiler tree api. https://docs.oracle.com/javase/8/docs/jdk/api/javac/tree/. [8] Java reflection api. https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/index.html. [9] Javaparser. https://github.com/javaparser/javaparser. [10] Javapoet. https://github.com/square/javapoet. [11] Jdk compiler module. https://docs.oracle.com/javase/9/docs/api/jdk.compiler-summary.html. [12] T.-C. Lu. Develop web applications through service components repacking. Master’s thesis, National Taiwan University, 2022. [13] Play framework. https://www.playframework.com/. [14] Soot. https://github.com/soot-oss/soot. [15] Spring boot. https://spring.io/projects/spring-boot. [16] Spring cloud. https://spring.io/cloud. [17] Spring cloud gateway. https://spring.io/projects/spring-cloud-gateway. [18] Spring cloud netflix. https://spring.io/projects/spring-cloud-netflix. [19] Spring framework. https://spring.io/. [20] J. Yang. Web service componentization. Commun. ACM, 46(10):35–40, Oct. 2003. [21] J. Yang and M. P. Papazoglou. Web component: A substrate for web service reuse and composition. In A. B. Pidduck, M. T. Ozsu, J. Mylopoulos, and C. C. Woo, editors, Advanced Information Systems Engineering, pages 21–36, Berlin, Heidelberg, 2002. Springer Berlin Heidelberg. [22] 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/86328 | - |
| dc.description.abstract | 服務組合技術使簡單的服務能夠相互組合以完成複雜的任務,然而,服務數量的不足將會是此技術的重大困難之一。 因此,本研究提出了一個自動化流程,能夠將開源 Java 專案轉變成為服務元件,其包含以下五個步驟:辨識程式間的相依關係;從原始碼解析方法資訊;生 成服務 controller 及 invoker;生成描述服務的 WSDL 文件;若專案中有使用資料庫,便擷取並改寫專案資料庫設定。 此外,為了能更有效地重複使用開源專案原始碼,我們將服務元件分類、重組、並透過 API Gateway 存取,我們稱之為基於服務元件的微服務。 | zh_TW |
| dc.description.abstract | Service composition enables the service to complete complex tasks by composing simple services. However, the lack of services imposes a significant barrier to service composition. In this research work, we propose a service component generation approach to transforming Java-based open source projects into service components with the following steps: 1. identify program dependency relations, 2. parse method information from source code, 3. generate service controller and invoker, 4. generate WSDL documents to describe services, 5. extract and rewrite database configurations if the project has a database. To better manage the reusability of open source code, the service components are then grouped, repacked into microservices, and accessed through an API gateway, called service-component-based microservices. | en |
| dc.description.provenance | Made available in DSpace on 2023-03-19T23:49:22Z (GMT). No. of bitstreams: 1 U0001-2408202222044000.pdf: 10576423 bytes, checksum: 576ef2ae8fafc7373e2e5cfb67c8046a (MD5) Previous issue date: 2022 | en |
| dc.description.tableofcontents | Contents 口試委員審定書 i 誌謝 ii 摘要 iii Abstracts iv List of Figures viii List of Tables x Chapter 1 Introduction 1 Chapter 2 Related Work 4 2.1 BackgroundWork ............................. 4 2.1.1 Parser ............................... 4 2.1.2 Generator ............................. 5 2.1.3 Web Framework .......................... 5 2.1.4 Microservices ........................... 6 2.2 Service Component............................ 6 2.2.1 Java code parser ......................... 6 2.2.2 Service Code Generator ..................... 6 2.2.3 Reveal ............................... 9 Chapter 3 Service Component Generation 12 3.1 System Architecture ........................... 14 3.2 Database Information Extraction .................... 15 3.3 Dependency Analysis ........................... 17 3.3.1 Additional Generic Dependencies ................ 18 3.4 Source Code Parsing ........................... 19 3.4.1 External Libraries ......................... 19 3.4.2 Parsing Attributes for HTTP requests ............. 20 3.5 Service Code Generation ......................... 24 3.6 WSDL Document Generation ...................... 24 3.7 Result ................................... 26 Chapter 4 Service-Component-Based Microservices 28 4.1 Microservice Extraction ......................... 29 4.2 Service Invocation ............................. 31 Chapter 5 Conclusion 5.1 Summary ................................. 34 5.2 Future work ................................ 35 Bibliography 37 List of Figures 2.1 Service Model Example .......................... 7 2.2 Service Component Database Schema.................. 8 2.3 Service Controller Example ....................... 9 2.4 Service Invoker Example ......................... 9 2.5 Program Element............................. 10 3.1 Service Component............................ 13 3.2 Service Component Generation System Architecture .......... 14 3.3 Spring Boot application.properties File Example ............ 16 3.4 Play Framework application.conf File Example ............. 16 3.5 Dependency Graph Example ....................... 17 3.6 Type Erasure in Java ........................... 19 3.7 Gather External Library with fatJar .................. 20 3.8 Spring Boot Executable JAR ...................... 20 3.9 Hidden Arguments Example ....................... 22 3.10 Return Value Candidates Example ................... 22 3.11 Request Body Handler for Parsing Hidden Arguments ......... 23 3.12 Play Framework routes File Example .................. 23 3.13 Generated Invoker Example ....................... 24 3.14 Binary Statement Handler Design.................... 25 3.15 Generated WSDL Document Example ................. 26 4.1 Service-Component-Based Microservices Architecture ......... 29 4.2 Microservice extraction process ..................... 30 4.3 Splitting Source Code........................... 31 4.4 Microservice Extractor Design...................... 32 4.5 Service Invocation............................. 33 4.6 API Gateway Request Rewrite...................... 33 List of Tables 2.1 Program Relation Summary ....................... 11 3.1 Service Dependencies........................... 18 3.2 Service Component Generation Result ................. 27 | |
| 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 | Microservices | en |
| dc.subject | Service Component | en |
| dc.subject | Code Generation | en |
| dc.subject | Abstract Syntax Tree | en |
| dc.subject | Web Application Framework | en |
| dc.title | 基於開源 Java 專案的服務元件建構 | zh_TW |
| dc.title | Construct Service Components from Java-Based Open Source Projects | en |
| dc.type | Thesis | |
| dc.date.schoolyear | 110-2 | |
| dc.description.degree | 碩士 | |
| dc.contributor.oralexamcommittee | 劉立頌(Alan Liu),陳錫民(Hsi-Min Chen),郭忠義(Jong Yih Kuo),李文廷(Wen-Tin Lee) | |
| dc.subject.keyword | 服務元件,程式碼生成,抽象語法樹,網路應用程式架構,微服務, | zh_TW |
| dc.subject.keyword | Service Component,Code Generation,Abstract Syntax Tree,Web Application Framework,Microservices, | en |
| dc.relation.page | 38 | |
| dc.identifier.doi | 10.6342/NTU202202785 | |
| dc.rights.note | 同意授權(全球公開) | |
| dc.date.accepted | 2022-08-26 | |
| dc.contributor.author-college | 電機資訊學院 | zh_TW |
| dc.contributor.author-dept | 資訊網路與多媒體研究所 | zh_TW |
| dc.date.embargo-lift | 2022-08-29 | - |
| 顯示於系所單位: | 資訊網路與多媒體研究所 | |
文件中的檔案:
| 檔案 | 大小 | 格式 | |
|---|---|---|---|
| U0001-2408202222044000.pdf | 10.33 MB | Adobe PDF | 檢視/開啟 |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。
