Chulalongkorn University Theses and Dissertations (Chula ETD)

Other Title (Parallel Title in Other Language of ETD)

Refactoring Orchestrated Web Services Into Microservices Using Decomposition Pattern

Year (A.D.)


Document Type


First Advisor

วิวัฒน์ วัฒนาวุฒิ


Faculty of Engineering (คณะวิศวกรรมศาสตร์)

Department (if any)

Department of Computer Engineering (ภาควิชาวิศวกรรมคอมพิวเตอร์)

Degree Name


Degree Level


Degree Discipline





สถาปัตยกรรมเชิงบริการ หรือ Service-oriented architecture (SOA) คือ การออกแบบเว็บเซอร์วิสให้มีการทำงานประสานกัน โดยโครงสร้างการออกแบบสถาปัตยกรรมนี้จะประกอบไปด้วย 3 ส่วนหลักได้แก่ ผู้รับบริการ (Service Client), ผู้ให้บริการ (Service Provider) และตัวกลาง (Service Broker) ซึ่งด้วยลักษณะการออกแบบที่อาศัยตัวกลางจึงเป็นสาเหตุให้การออกแบบด้วยสถาปัตยกรรมเชิงบริการไม่มีความยืดหยุ่นต่อการเปลี่ยนแปลง ปัจจุบันอุตสาหกรรมซอฟต์แวร์ได้มุ่งเน้นการพัฒนาซอฟต์แวร์สู่ตลาดอย่างต่อเนื่อง และมุ่งเน้นให้ซอฟต์แวร์มีความยืดหยุ่นรองรับต่อการเปลี่ยนแปลงทางด้านธุรกิจ ซึ่งการออกแบบเว็บเซอร์วิสด้วยสถาปัตยกรรมเชิงบริการจึงไม่สามารถตอบโจทย์ความต้องการในส่วนนี้ได้ ในปัจจุบันจึงได้มีทางเลือกการออกแบบเว็บเซอร์วิสแบบใหม่ คือสถาปัตยกรรมไมโครเซอร์วิส โดยไมโครเซอร์วิสเป็นสถาปัตยกรรมการออกแบบที่มุ่งเน้นเรื่องความยืดหยุ่นในการเปลี่ยนแปลง ส่งผลให้ซอฟต์แวร์ที่ออกแบบด้วยสถาปัตยกรรมนี้สามารถปรับเปลี่ยน หรือแก้ไขเว็บเซอร์วิสได้โดยไม่ส่งผลกระทบกับระบบในวงกว้าง เนื่องจากไมโครเซอร์วิสเน้นการออกแบบเว็บเซอร์วิสให้มีขนาดเล็กลง แต่ละเซอร์วิสทำงานร่วมกันแบบกระจาย จึงส่งผลให้แต่ละไมโครเซอร์วิสค่อนข้างมีความอิสระต่อกันอย่างชัดเจน อย่างไรก็ตาม ในปัจจุบันการออกแบบไมโครเซอร์วิสยังคงเป็นเรื่องที่ท้าทายและไม่สามารถทำได้โดยง่าย ด้วยเหตุดังกล่าว งานวิจัยนี้จึงได้นำเสนอระเบียบวิธีในการสร้างเครื่องมือสำหรับรีแฟ็คเตอร์เว็บเซอร์วิสแบบเดิมที่ถูกเขียนด้วยภาษาดำเนินการทางธุรกิจ (BPEL) ให้เป็นไมโครเซอร์วิส ตามแบบรูปการแยกออกเป็นส่วน (Decomposition pattern) ของไมโครเซอร์วิส โดยกระบวนการรีแฟ็คเตอร์จะทำการพิจารณาร่วมกับรายการความสามารถทางธุรกิจ (Business Capabilities) ที่สกัดได้จากข้อมูลคำศัพท์และประโยคสถานการณ์ (Scenario)

Other Abstract (Other language abstract of ETD)

Service-oriented architecture (SOA) is an architectural design of inter-services collaborations. In general, SOA has three major roles, including client, service provider, and service broker. To access a service usually depends on a service broker, which causes inflexibility in system modification. The software industry now focuses more on productivity, flexibility of the constant changes and continuous modifications, for which the SOA style may not be suitable. Therefore, a new microservice style is an alternative serving those needs, which means a microservice unit is more adaptable and replaceable with no ripple effects. Since the microservice architecture design is considered as a collection of the small self-contained services, each service represents a business capability and carries its own isolated data. However, how to identify microservices is still a challenging task in the business process model level. This paper proposes an alternative mean to extract the existing SOA services from the BPEL flow and refactor them into a set of relevant microservices using the decomposition pattern. In our case study, we propose how to do the service refactoring against the business domain profiles collected from the extracted vocabularies from the given business scenarios. The resulting microservices are domain specific and conform to the business capability vocabularies extracted from the given business scenarios.



To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.