Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
    • 指導教授
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 電機資訊學院
  3. 資訊網路與多媒體研究所
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/86328
完整後設資料紀錄
DC 欄位值語言
dc.contributor.advisor李允中(Jonathan Lee)
dc.contributor.authorWEI-LUN SHIHen
dc.contributor.author施威綸zh_TW
dc.date.accessioned2023-03-19T23:49:22Z-
dc.date.copyright2022-08-29
dc.date.issued2022
dc.date.submitted2022-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.urihttp://tdr.lib.ntu.edu.tw/jspui/handle/123456789/86328-
dc.description.abstract服務組合技術使簡單的服務能夠相互組合以完成複雜的任務,然而,服務數量的不足將會是此技術的重大困難之一。 因此,本研究提出了一個自動化流程,能夠將開源 Java 專案轉變成為服務元件,其包含以下五個步驟:辨識程式間的相依關係;從原始碼解析方法資訊;生 成服務 controller 及 invoker;生成描述服務的 WSDL 文件;若專案中有使用資料庫,便擷取並改寫專案資料庫設定。 此外,為了能更有效地重複使用開源專案原始碼,我們將服務元件分類、重組、並透過 API Gateway 存取,我們稱之為基於服務元件的微服務。zh_TW
dc.description.abstractService 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.provenanceMade 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.tableofcontentsContents 口試委員審定書 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.isoen
dc.subject抽象語法樹zh_TW
dc.subject服務元件zh_TW
dc.subject微服務zh_TW
dc.subject網路應用程式架構zh_TW
dc.subject程式碼生成zh_TW
dc.subjectMicroservicesen
dc.subjectService Componenten
dc.subjectCode Generationen
dc.subjectAbstract Syntax Treeen
dc.subjectWeb Application Frameworken
dc.title基於開源 Java 專案的服務元件建構zh_TW
dc.titleConstruct Service Components from Java-Based Open Source Projectsen
dc.typeThesis
dc.date.schoolyear110-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.keywordService Component,Code Generation,Abstract Syntax Tree,Web Application Framework,Microservices,en
dc.relation.page38
dc.identifier.doi10.6342/NTU202202785
dc.rights.note同意授權(全球公開)
dc.date.accepted2022-08-26
dc.contributor.author-college電機資訊學院zh_TW
dc.contributor.author-dept資訊網路與多媒體研究所zh_TW
dc.date.embargo-lift2022-08-29-
顯示於系所單位:資訊網路與多媒體研究所

文件中的檔案:
檔案 大小格式 
U0001-2408202222044000.pdf10.33 MBAdobe PDF檢視/開啟
顯示文件簡單紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved