跳到主要內容

臺灣博碩士論文加值系統

(18.97.14.85) 您好!臺灣時間:2024/12/14 13:07
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果 :::

詳目顯示

我願授權國圖
: 
twitterline
研究生:吳孟賢
研究生(外文):WU, MENG-HSIEN
論文名稱:Anser: 基於PHP與RESTful API 應用服務編排模式之微服務架構實作
論文名稱(外文):Anser: A PHP and RESTful API-based Microservices Architecture Implementation using Orchestration Pattern
指導教授:李文廷李文廷引用關係
指導教授(外文):Wen-Tin Lee
口試委員:余遠澤李信杰
口試委員(外文):Yu, Yuan-TseShin-Jie Lee
口試日期:2021-09-16
學位類別:碩士
校院名稱:國立高雄師範大學
系所名稱:軟體工程與管理學系
學門:電算機學門
學類:軟體發展學類
論文種類:學術論文
論文出版年:2021
畢業學年度:109
語文別:中文
論文頁數:51
中文關鍵詞:微服務架構微服務服務編排設計模式Orchestration設計模式軟體工程
外文關鍵詞:Microservices architectureMicroservicesRESTfulService OrchestrationAnserDesign Pattern
相關次數:
  • 被引用被引用:0
  • 點閱點閱:389
  • 評分評分:
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
  近年,微服務架構逐漸成為大型軟體首要考量的開發模式。使用微服務架構得以保障軟體在發展與疊代過程中的可用性、可擴充性以及彈性。為了滿足微服務中各個端點(Endpoints)間的溝通,在實作上也衍伸出了服務編排(Service Orchestration)與服務協調(Service Choreography)兩種設計模式。
  本研究探討如何在PHP程式語言中應用服務編排設計模式編排與微服務端點間溝通的行為,以RESTful API架構作為主要設計考量,提出一套能夠在PHP程式語言中使用的服務編排程式庫-Anser。並透過效能評估與完整的測試案例保障程式庫的穩定性。透過此程式庫,開發人員得以便捷地採用服務編排設計模式開發基於微服務的網路應用程式。
Microservices architecture has gradually become the primary consideration for the development of large software systems with scalability and flexi-bility. The Orchestration and Choreography patterns are provided to fulfill communications among microservices. Meanwhile, PHP is the program-ming language with the highest usage rate of the global web application servers. However, there’s still lack of related PHP development resources in the field of microservices. 
This work explores how to apply service orchestration pattern to orches-trate the communications among microservice endpoints using PHP pro-gramming language. A set of service orchestration libraries, called Anser, are proposed based on  PHP and RESTful API architecture. Developers can easily  adopt orchestration design pattern by using Anser to develop web applications based on microservices. Through performance evaluation, we show that Anser could achieve lower error rate to facilitate  the stabil-ity of microservices applications.
目錄
第一章 緒論1
一、研究背景1
二、研究動機2
三、研究目的4
四、論文架構5
第二章 文獻參考6
2.1單體式架構與微服務架構6
2.2 API閘道器模式8
2.3 API組合模式10
2.4服務協調模式11
2.5服務編排模式13
2.6 HTTP協定與RESTful API15
第三章 Anser微服務架構設計17
3.1 Service Component Design18
3.2 Orchestration Component Design20
第四章 Anser微服務架構實作21
4.1 Service21
4.2 Action25
4.3 Concurrent Action28
4.4 Orchestration29
第五章 效能評估39
5.1 訂單概況評估42
5.2 訂單詳情評估43
5.3 新建訂單評估45
5.4 總結46
第六章 結論與討論47
6.1 研究貢獻47
6.2 研究限制48
6.3 研究建議48
參考文獻50


表次
表 1 最受歡迎伺服器端程式語言(2021年9月)3
表 2 常用HTTP動詞列表15
表 3 各微服務程式庫功能比較表36
表 4 測試用服務39
表 5 訂單概況10,000取樣測試42
表 6 訂單概況5000取樣測試42
表 7 訂單詳情5000取樣測試43
表 8 訂單詳情2000取樣測試44
表 9 新建訂單10,000取樣測試45
表 10 新建訂單5000取樣測試45

圖次
圖 1 API閘道器模式9
圖 2 API 組合模式10
圖 3服務協調模式11
圖 4 服務編排模式13
圖 5 設計圖圖示(LEGEND)17
圖 6 ANSER程式庫元件圖17
圖 7 SERVICE COMPONENT DESIGN18
圖 8 ORCHESTRATION COMPONENT DESIGN20
圖 9 以SERVICELIST紀錄微服務位置21
圖 10 實作SIMPLESERVICE類別22
圖 11 利用SIMPLESERVICE實作出微服務連線24
圖 12 使用ACTION物件25
圖 13 使ACTION進行連線並取得結果26
圖 14 實作API組合模式28
圖 15 實作ORCHESTRATOR類別30
圖 16 ANSER 服務編排模式執行方式31
圖 17 ANSER服務編排模式32
圖 18 STEP新增動態ACTION34
圖 19 編排器組織回傳結果35
圖 20 執行編排器35
圖 21 5,000次取樣錯誤率長條圖46
[1] C.Richardson, Microservices Patterns, Manning Publications, 2017. 
[2] K. Malyuga, O. Perl, A. Slapoguzov and I. Perl, "Fault tolerant central saga orchestrator in RESTful architecture," in Proc. 26th Conf. Open Innov. Assoc. (FRUCT), Yaroslavl, Russia, 2020. 
[3] W3Techs, "Usage statistics of server-side programming languages for websites," W3Techs, 2021. [Online]. Available: https://w3techs.com/technologies/overview/programming_language. [Accessed 1 9 2021].
[4] CharterGlobal, "Five Microservices Trends in 2020," Charter Global, 7 2020. [Online]. Available: https://www.charterglobal.com/five-microservices-trends-in-2020/. [Accessed 1 8 2021].
[5] M. Loukides and S. Swoyer, "Microservices Adoption in 2020," O'Reilly, 15 7 2020. [Online]. Available: https://www.oreilly.com/radar/microservices-adoption-in-2020/. [Accessed 1 8 2021].
[6] N. Dragoni, S. Giallorenzo, A. L. Lafuente, M. Mazzara, F. Montesi and R. Mustafin, in Mi-croservices: yesterday today and tomorrow, Springer, 2017, pp. 195-216.
[7] P. Jamshidi, C. Pahl, N. C. Mendonça, J. Lewis and S. Tilkov, "Microservices: The Journey So Far and Challenges Ahead," IEEE Software, vol. 35, no. 3, pp. 24-35, 2018. 
[8] S. Newman, Building microservices: designing fine-grained systems, O'Reilly, 2015. 
[9] A. Warke, M. Mohamed, R. Engel, H. Ludwig, W. Sawdon and L. Liu, "Storage Service Orchestration with Container Elasticity," in IEEE 4th International Conference on Collaboration and Internet Computing (CIC), Philadelphia, PA, USA, 2018. 
[10] O. Al-Debagy and P. Martinek, "A Comparative Review of Microservices and Monolithic Architectures," IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), 11 2018. 
[11] C. K. Rudrabhatla, "Comparison of Event Choreography and Orchestration Techniques in Microservice Architecture," IJACSA, vol. 9, no. 8, 2018. 
[12] G. F. Gunawan, J. F. Palandi and Subari, "Redesigning CHIML: Orchestration Language for Chimera- Framework," in Third International Conference on Informatics and Computing (ICIC), Palembang, Indonesia, 2018. 
[13] R. Fielding and R. Taylor, "Principled design of the modern Web architecture," in Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium, Limerick, Ireland, 2000. 
[14] X. Limόn, A. Guerra-Hernández, A. J. Sánchez-García and J. C. P. Arriaga, "SagaMAS: A Software Framework for Distributed Transactions in the Microservice Architecture," in 6th International Conference in Software Engineering Research and Innovation (CONISOFT), San Luis Potosi, Mexico, 2018. 
[15] U. Sa'adah, J. Akhmad and M. Hisyam, "Implementing Singleton method in design of MVC-based PHP framework," in International Electronics Symposium (IES), Surabaya, Indonesia, 2015. 
[16] "SEATA," Alibaba, [Online]. Available: http://seata.io/en-us/. [Accessed 1 8 2021].
[17] D. Mysenko, "Developing a simple API gateway in PHP and Lume," 11 2016. [Online]. Available: https://medium.com/@poweredlocal/developing-a-simple-api-gateway-in-php-and-lumen-f84756cce043. [Accessed 16 5 2021].
[18] "Netflix Zuul," Netflix, 5 2013. [Online]. Available: https://github.com/Netflix/zuul. [Accessed 1 9 2021].
[19] "spring-integration," VMware, 2021. [Online]. Available: https://spring.io/projects/spring-integration. [Accessed 1 9 2021].
[20] H. Garcia-Molina and K. Salem, "Sagas," ACM, vol. 16, 1987. 
[21] A. Petrenko and B. Bulakh, "Intelligent Service Discovery and Orchestration," in IEEE First International Conference on System Analysis & Intelligent Computing (SAIC), Kyiv, UKraine, 2018. 
電子全文 電子全文(網際網路公開日期:20261026)
連結至畢業學校之論文網頁點我開啟連結
註: 此連結為研究生畢業學校所提供,不一定有電子全文可供下載,若連結有誤,請點選上方之〝勘誤回報〞功能,我們會盡快修正,謝謝!
QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
無相關期刊