TWI814227B - Mehod for implementing library by using microservices architecture - Google Patents

Mehod for implementing library by using microservices architecture Download PDF

Info

Publication number
TWI814227B
TWI814227B TW111103759A TW111103759A TWI814227B TW I814227 B TWI814227 B TW I814227B TW 111103759 A TW111103759 A TW 111103759A TW 111103759 A TW111103759 A TW 111103759A TW I814227 B TWI814227 B TW I814227B
Authority
TW
Taiwan
Prior art keywords
class
service
action
category
services
Prior art date
Application number
TW111103759A
Other languages
Chinese (zh)
Other versions
TW202331545A (en
Inventor
李文廷
吳孟賢
Original Assignee
國立高雄師範大學
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 國立高雄師範大學 filed Critical 國立高雄師範大學
Priority to TW111103759A priority Critical patent/TWI814227B/en
Publication of TW202331545A publication Critical patent/TW202331545A/en
Application granted granted Critical
Publication of TWI814227B publication Critical patent/TWI814227B/en

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Computer And Data Communications (AREA)

Abstract

A method for implementing library by using microservices architecture includes: utilizing a service component to define plural services and to issue a HTTP connection request to the said services; and accessing the said services and utilizing an orchestration component to organize a service flow for calling the said services. The said service component includes: utilizing a list class to define an available service list corresponding to the said services; utilizing an action class to abstract an execution of the HTTP connection request; instantiating a concurrent action class if the HTTP connection request is required to be issued by a manner of concurrent request; utilizing a filter interface to define the executed logic before and after the action class is executed; and utilizing a simple service class to integrate the list class, the action class, the concurrent action class and the filter interface.

Description

使用微服務架構來實作程式庫的方法How to implement a program library using microservice architecture

本發明是關於一種方法,且特別是關於一種使用微服務架構來實作程式庫的方法。The present invention relates to a method, and in particular to a method of implementing a program library using a microservice architecture.

微服務是一種應用程式的開發架構,在一個使用微服務實作的系統中,將會包含數個單一職責的小型服務。基於微服務的架構開發的應用程式相較傳統的單體架構更易於維護、佈署以及擴充。每個小型服務的開發都可以獨立於其他團隊,開發者只需專注於最小功能的程式碼即可。這使得大型應用程式得以並行開發,並且不互相影響,能顯著提升軟體交付的速度。使用微服務開發架構將能夠帶來數種優點:複雜應用程式可以持續交付與佈署、更好的容錯性、更容易採納新的技術開發以及更容易獨立進行擴充。Microservices is an application development architecture. A system implemented using microservices will contain several small services with a single responsibility. Applications developed based on microservices architecture are easier to maintain, deploy, and expand than traditional monolithic architectures. The development of each small service can be independent of other teams, and developers only need to focus on the minimally functional code. This allows large applications to be developed in parallel without affecting each other, significantly increasing the speed of software delivery. Using a microservices development architecture will bring several advantages: complex applications can be continuously delivered and deployed, better fault tolerance, easier to adopt new technology development, and easier to scale independently.

然而,在實作微服務架構時開發者必須面對建構相比單體式架構更加複雜的分散式系統而產生的額外問題:(1)必須實作服務間的通訊機制並處理可能產生的故障;(2)不論在開發團隊的協調或是程式的實作上,當需要進行跨越多個服務的請求時,開發難度將會更高;(3)替服務間的互動行為撰寫測試案例將會更加困難。However, when implementing a microservice architecture, developers must face additional problems arising from building a more complex distributed system than a monolithic architecture: (1) Communication mechanisms between services must be implemented and possible failures must be handled. ; (2) Regardless of the coordination of the development team or the implementation of the program, when requests across multiple services need to be made, development will be more difficult; (3) Writing test cases for the interaction between services will be More difficult.

本發明之目的在於提出一種使用微服務架構來實作程式庫的方法,包括:藉由服務功能來定義多個服務並對所述多個服務發出HTTP連線請求;及存取所述多個服務並藉由編排器功能來組織出呼叫所述多個服務之服務流程。其中所述服務功能包括:藉由列表類別來定義相應於所述多個服務之可用的服務列表;藉由動作類別來抽象化HTTP連線請求的執行;若需要以並行請求的方式發出HTTP連線請求,則實體化並行動作類別;藉由過濾器介面來定義動作類別在執行前與執行後會被執行的邏輯;及藉由簡單服務類別來整合列表類別、動作類別、並行動作類別與過濾器介面。The purpose of the present invention is to propose a method for implementing a program library using a microservice architecture, including: defining multiple services through service functions and issuing HTTP connection requests to the multiple services; and accessing the multiple services. The service uses the orchestrator function to organize the service process of calling the multiple services. The service functions include: using list categories to define available service lists corresponding to the plurality of services; using action categories to abstract the execution of HTTP connection requests; if it is necessary to issue HTTP connections in parallel requests Line request, then materialize the parallel action category; use the filter interface to define the logic that will be executed before and after the action category is executed; and use the simple service category to integrate the list category, action category, parallel action category and filtering server interface.

在一些實施例中,所述服務功能係以RESTful應用程序作為所述多個服務之間溝通的方式,其中所述動作類別以RESTful應用程序來抽象化HTTP連線請求的執行的細節,其中所述動作類別還紀錄執行的結果、允許開發者介入執行的過程。In some embodiments, the service function uses a RESTful application as a means of communication between the multiple services, wherein the action category uses a RESTful application to abstract the details of the execution of the HTTP connection request, where the The above action category also records the results of execution and allows developers to intervene in the execution process.

在一些實施例中,所述編排器功能包括:藉由編排類別來提供所述編排器功能在進行跨越所述多個服務執行時所需的方法;及由所述編排類別來實體化步驟類別以管理服務流程的執行。In some embodiments, the orchestrator function includes: providing methods required by the orchestrator function to execute across the plurality of services through orchestration classes; and materializing step classes by the orchestration class To manage the execution of service processes.

在一些實施例中,所述編排器功能更包括:藉由控制器以使程式庫使用在PHP程式語言之框架中。In some embodiments, the orchestrator function further includes: using the controller to enable the program library to be used in the framework of the PHP programming language.

在一些實施例中,所述簡單服務類別用以映射多個微服務端點所提供的資源,並提供該資源在進行HTTP連線請求時的前過濾器與後過濾器。In some embodiments, the simple service class is used to map resources provided by multiple microservice endpoints and provide pre-filters and post-filters for the resources when making HTTP connection requests.

在一些實施例中,所述動作類別以HTTP連線請求藉由RESTful應用程序取得服務列表。In some embodiments, the action class obtains the service list through a RESTful application using an HTTP connection request.

在一些實施例中,多個動作物件傳入經實體化的並行動作類別以達成所述多個微服務端點的並行請求。In some embodiments, multiple action objects pass in materialized parallel action categories to achieve parallel requests of the multiple microservice endpoints.

在一些實施例中,所述編排類別用以定義涉及所述多個微服務端點且具有順序性的執行過程。In some embodiments, the orchestration category is used to define a sequential execution process involving the multiple microservice endpoints.

在一些實施例中,所述執行過程包含多個步驟,每個步驟係由多個動作物件所組成。In some embodiments, the execution process includes multiple steps, and each step is composed of multiple action objects.

在一些實施例中,若所述編排類別定義了至少一步驟,則該至少一步驟在所述編排器功能中被順序執行。In some embodiments, if the orchestration category defines at least one step, the at least one step is executed sequentially in the orchestrator function.

為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。In order to make the above-mentioned features and advantages of the present invention more obvious and easy to understand, embodiments are given below and described in detail with reference to the accompanying drawings.

以下仔細討論本發明的實施例。然而,可以理解的是,實施例提供許多可應用的概念,其可實施於各式各樣的特定內容中。所討論、揭示之實施例僅供說明,並非用以限定本發明之範圍。Embodiments of the present invention are discussed in detail below. It is to be appreciated, however, that the embodiments provide many applicable concepts that can be embodied in a wide variety of specific contexts. The embodiments discussed and disclosed are for illustration only and are not intended to limit the scope of the invention.

為了因應在實作微服務架構時開發者必須面對建構相比單體式架構更加複雜的分散式系統而產生的額外問題,在實務開發層面衍伸出了不同的設計模式,而本發明將著重在討論服務編排(Service Orchestration)設計模式。In order to cope with the additional problems that developers must face when implementing a microservice architecture and constructing a more complex distributed system than a monolithic architecture, different design patterns have been derived at the practical development level, and the present invention Focus on discussing the service orchestration design pattern.

在微服務的架構中,系統的功能會被切割成一個個小型服務,這些服務各自維護著屬於自己的資料,並透過可用的應用程序API,讓外界能夠與之溝通。對於上層的開發者而言,當實作一個複雜的商業邏輯時,可能是一個跨越不同服務且具有一定順序並互相影響的過程。此時,服務編排設計模式將會是非常有用的設計模式。In the microservice architecture, the system's functions will be cut into small services. Each of these services maintains its own data and allows the outside world to communicate with it through available application APIs. For upper-level developers, when implementing a complex business logic, it may be a process that spans different services and has a certain sequence and affects each other. At this time, the service orchestration design pattern will be a very useful design pattern.

圖1係用以呈現服務編排設計模式的架構圖。編排器(Orchestrator)110用以接收客戶端發出的請求120,而所有的服務130之執行順序以及錯誤時的例外處理則統一由編排器110進行指揮。因服務編排設計模式將運作邏輯整合在編排器中的特性,使服務編排設計模式在呈現複雜的邏輯時將會是較佳的選擇。Figure 1 is an architectural diagram used to present the service orchestration design pattern. The orchestrator (Orchestrator) 110 is used to receive the request 120 issued by the client, and the execution sequence of all services 130 and exception handling in case of errors are uniformly directed by the orchestrator 110. Because the service orchestration design pattern integrates operational logic into the orchestrator, the service orchestration design pattern will be a better choice when presenting complex logic.

HTTP是一種常見的通訊協定,在實作客戶端與伺服器溝通時通常會以HTTP API的方式呈現。客戶端會主動發起請求以展開連線,伺服器在處理請求後會回應處理結果。而表現層狀態轉換(Representational State Transfer,簡稱REST)樹立了現代網頁應用程式的API設計典範,REST是一種嚴格符合HTTP協定的API設計模式,它著重於以URL表示資源本身,並完整利用HTTP規範的請求方法(Request Methods)將方法作為動詞(Method as Verb)。若HTTP API遵照REST的設計理念進行實作,則可以被稱為RESTful API。本發明之微服務架構將以RESTful API作為多個服務之間溝通的方式。HTTP is a common communication protocol. When implementing communication between the client and the server, it is usually presented in the form of HTTP API. The client will actively initiate a request to expand the connection, and the server will respond with the processing result after processing the request. Representational State Transfer (REST) has established a model of API design for modern web applications. REST is an API design pattern that strictly conforms to the HTTP protocol. It focuses on representing the resource itself as a URL and fully utilizes the HTTP specification. Request Methods uses Method as Verb. If an HTTP API is implemented in accordance with the design concept of REST, it can be called a RESTful API. The microservice architecture of the present invention uses RESTful API as a communication method between multiple services.

與其他程式語言相比,PHP與其開源社群中,鮮少有程式庫提供微服務相關設計模式的簡單實作。本發明將討論基於PHP程式語言進行程式庫的實作之方法,分析在基於RESTful API設計方案下,各個API在HTTP協定中之請求(Request)與回應(Response)的可能行為,設計出一套能夠以PHP程式語言進行HTTP請求與處理回應的程式庫,使開發者能夠便利地實作出服務編排設計模式的編排器程式庫。Compared with other programming languages, there are few libraries in PHP and its open source community that provide simple implementation of microservice-related design patterns. This article will discuss the implementation method of the program library based on the PHP programming language, analyze the possible behaviors of each API's request (Request) and response (Response) in the HTTP protocol under the design scheme based on RESTful API, and design a set of A program library that can perform HTTP requests and process responses in the PHP programming language, allowing developers to easily implement an orchestrator library of service orchestration design patterns.

本發明所實作出的程式庫將以Anser程式庫稱之,其命名取自於「雁」的學名Anser,並透過雁行理論中的列隊、組織與扶持等理念,代指在分散式系統中透過服務編排設計模式建構大型資訊服務的過程。本發明之Anser程式庫包含兩個主要的開發目標,分別是「服務(Service)」與「編排(Orchestration)」,以下分別以服務功能(或稱服務元件)與編排器功能(或稱編排器元件)稱之。The program library implemented by the present invention will be called the Anser program library. The name is taken from the scientific name of "goose" Anser, and refers to the process of arranging, organizing and supporting in the distributed system through the concepts of formation, organization and support in the flying goose theory. Service orchestration design model is the process of constructing large-scale information services. The Anser program library of the present invention includes two main development goals, namely "Service" and "Orchestration". In the following, we will refer to service function (or service component) and orchestrator function (or orchestrator) respectively. component) is called.

圖2係根據本發明的實施例之Anser程式庫200的架構示意圖。圖3係根據本發明的實施例之使用微服務架構來實作程式庫(Anser程式庫200)的方法的流程圖。FIG. 2 is a schematic architectural diagram of the Anser library 200 according to an embodiment of the present invention. Figure 3 is a flow chart of a method for implementing a program library (Anser program library 200) using a microservice architecture according to an embodiment of the present invention.

如圖2所示,Anser程式庫200包含服務功能210與編排器功能220。使用Anser程式庫200的開發者(Developer)20可藉由服務功能210定義服務(Service)以及對服務發出HTTP請求。編排器功能220可存取服務功能210中的服務資料。使用Anser程式庫200的開發者20可藉由編排器功能220編排複雜商業邏輯時服務的執行方式。As shown in Figure 2, the Anser library 200 includes a service function 210 and an orchestrator function 220. A developer (Developer) 20 using the Anser library 200 can define a service (Service) through the service function 210 and make an HTTP request to the service. Orchestrator function 220 can access service data in service function 210. Developers 20 using the Anser library 200 can use the orchestrator function 220 to orchestrate the execution of complex business logic.

請一併參照圖2與圖3,在本發明的實施例中,使用微服務架構來實作Anser程式庫200的方法包括步驟S1與步驟S2。於步驟S1,開發者20藉由服務功能210來定義多個服務並對所述多個服務發出HTTP連線請求。於步驟S2,編排器功能220自服務功能210存取所述多個服務,且開發者20藉由編排器功能220來組織出呼叫所述多個服務之服務流程。Please refer to FIG. 2 and FIG. 3 together. In the embodiment of the present invention, the method of using the microservice architecture to implement the Anser program library 200 includes step S1 and step S2. In step S1, the developer 20 defines multiple services through the service function 210 and issues HTTP connection requests to the multiple services. In step S2, the orchestrator function 220 accesses the multiple services from the service function 210, and the developer 20 uses the orchestrator function 220 to organize a service process for calling the multiple services.

具體而言,服務功能210用於Anser程式庫200之開發過程中可能會被呼叫到的微服務終端,並滿足以下功能:(1)開發者20能夠自行建立可用的服務列表;(2)RESTful API抽象化API的呼叫行為;(3)能夠定義每個服務(Service)在請求成功與失敗時的行為;(4)儲存服務(Service)在伺服器回應後實際需要使用的意義資料(Meaning Data);(5)服務(Service)的請求支援並行連線。Specifically, the service function 210 is used for the microservice terminal that may be called during the development process of the Anser program library 200, and meets the following functions: (1) The developer 20 can create an available service list by himself; (2) RESTful API abstracts the call behavior of API; (3) It can define the behavior of each service (Service) when the request succeeds and fails; (4) It stores the meaning data (Meaning Data) that the service (Service) actually needs to use after the server responds. ); (5) Service requests support parallel connections.

具體而言,開發者20能夠透過編排器功能220來組織出呼叫多個服務(Service)的流程,並滿足以下功能:(1)開發者20能夠自行定義執行邏輯,支援順序執行與並行處理;(2)開發者20能在各個流程中使用編排器功能220運作時期(runtime)所產生的資料;(3)開發者20能夠自行定義編排器功能220執行完畢後的輸出結果。Specifically, the developer 20 can organize the process of calling multiple services (Services) through the orchestrator function 220, and meet the following functions: (1) The developer 20 can define the execution logic by himself, supporting sequential execution and parallel processing; (2) The developer 20 can use the data generated during the runtime of the orchestrator function 220 in each process; (3) The developer 20 can define the output result after the execution of the orchestrator function 220 is completed.

圖4係根據本發明的實施例之服務功能210的架構示意圖。圖5係根據本發明的實施例之相應於服務功能210的方法的流程圖。Figure 4 is a schematic architectural diagram of the service function 210 according to an embodiment of the present invention. Figure 5 is a flowchart of a method corresponding to the service function 210 according to an embodiment of the present invention.

如圖4所示,服務功能210提供四種可以被使用的類別與一種需要被實作的介面。四種可以被使用的類別分別為:列表類別(List Class)211、動作類別(Action Class)212、並行動作類別(Concurrent Action Class)213與簡單服務類別(Simple Service Class)214。一種需要被實作的介面則為過濾器介面(Filter Interface)215。另外,設定檔(Config file)216、新建服務類別(New Service Class)217、新建過濾器類別(New Filter Class)218為開發者20所實作的內容組件。As shown in Figure 4, the service function 210 provides four categories that can be used and an interface that needs to be implemented. The four classes that can be used are: List Class 211, Action Class 212, Concurrent Action Class 213 and Simple Service Class 214. One interface that needs to be implemented is the filter interface (Filter Interface) 215. In addition, the configuration file (Config file) 216, the new service class (New Service Class) 217, and the new filter class (New Filter Class) 218 are content components implemented by the developer 20.

如圖4所示,開發者20可透過設定檔216從而利用/使用(use)列表類別211來定義服務列表(或稱為定義可用的服務內容),其中列表類別211為一種靜態類別。As shown in FIG. 4 , the developer 20 can utilize/use the list category 211 to define the service list (or define available service content) through the configuration file 216 , where the list category 211 is a static category.

如圖4所示,開發者20可透過新建服務類別217來新建服務實體,從而將之延伸(extends)至簡單服務類別214。其中簡單服務類別214是一個整合服務功能210的基礎類別,繼承簡單服務類別214後即可替微服務端點所提供的API定義內部介面類別。As shown in FIG. 4 , the developer 20 can create a new service entity by creating a new service category 217 , thereby extending it to the simple service category 214 . The simple service category 214 is a basic category that integrates the service function 210. After inheriting the simple service category 214, an internal interface category can be defined for the API provided by the microservice endpoint.

如圖4所示,開發者20可透過新建過濾器類別218來定義動作(Action)的過濾器,從而使得開發者20可藉由過濾器介面215來定義動作(Action)在執行前與執行後會被執行的邏輯。As shown in Figure 4, the developer 20 can define the filter of the action (Action) by creating a new filter category 218, so that the developer 20 can define the action (Action) before and after execution through the filter interface 215. The logic that will be executed.

如圖4所示,開發者20可使用(use)並行動作類別213而以並行請求的方式發出HTTP連線請求。具體而言,若是需要以並行請求(Concurrent Request)執行HTTP連線,需要將並行動作類別213實體化並傳入動作(Action)至請求列表(List)中。As shown in FIG. 4 , the developer 20 can use the parallel action category 213 to issue HTTP connection requests in the form of parallel requests. Specifically, if you need to execute an HTTP connection with a concurrent request (Concurrent Request), you need to materialize the parallel action category 213 and pass the action (Action) into the request list (List).

並行動作類別213將其輸出複合(composition)至動作類別212。對於動作類別212而言,動作(Action)為服務(Service)的最小單位,動作類別212負責抽象化HTTP連線的執行細節、紀錄執行結果、允許開發者20介入執行過程,以及允許額外實作連線錯誤與執行正確時的處理邏輯。具體而言,服務功能210係以RESTful應用程序(RESTful API)作為所述多個服務之間溝通的方式,詳細而言,動作類別212以RESTful應用程序來抽象化HTTP連線請求的執行的細節。Parallel action class 213 composes its output to action class 212 . For the action category 212, the action is the smallest unit of the service. The action category 212 is responsible for abstracting the execution details of the HTTP connection, recording the execution results, allowing the developer 20 to intervene in the execution process, and allowing additional implementations. The processing logic when connection errors and execution are correct. Specifically, the service function 210 uses a RESTful application program (RESTful API) as a method of communication between the multiple services. Specifically, the action category 212 uses a RESTful application program to abstract the details of the execution of the HTTP connection request. .

動作類別212將其輸出分別複合(composition)至列表類別211與新建過濾器類別218,動作類別212由簡單服務類別214進行實體化(instantiate)。Action class 212 composes its output to list class 211 and new filter class 218 respectively. Action class 212 is instantiated by simple service class 214.

請一併參照圖4與圖5,在本發明的實施例中,相應於服務功能210的方法包括步驟S11-S15。於步驟S11,開發者20可藉由列表類別211來定義相應於所述多個服務之可用的服務列表。於步驟S12,開發者20可藉由動作類別212來抽象化HTTP連線請求的執行。於步驟S13,若需要以並行請求的方式發出HTTP連線請求,則實體化(instantiate)並行動作類別213。於步驟S14,開發者20可藉由過濾器介面215來定義動作類別212之動作(Action)在執行前與執行後會被執行的邏輯。於步驟S15,開發者20可藉由簡單服務類別214來整合列表類別211、動作類別212、並行動作類別213與過濾器介面215。Please refer to FIG. 4 and FIG. 5 together. In the embodiment of the present invention, the method corresponding to the service function 210 includes steps S11-S15. In step S11, the developer 20 can define an available service list corresponding to the plurality of services through the list category 211. In step S12 , the developer 20 can abstract the execution of the HTTP connection request through the action class 212 . In step S13, if it is necessary to issue an HTTP connection request in the form of a parallel request, the parallel action category 213 is instantiated. In step S14, the developer 20 can use the filter interface 215 to define the logic that will be executed before and after the action (Action) of the action category 212 is executed. In step S15 , the developer 20 can integrate the list category 211 , the action category 212 , the parallel action category 213 and the filter interface 215 through the simple service category 214 .

圖6係根據本發明的實施例之編排器功能220的架構示意圖。圖7係根據本發明的實施例之相應於編排器功能220的方法的流程圖。Figure 6 is an architectural schematic diagram of the orchestrator function 220 according to an embodiment of the present invention. Figure 7 is a flowchart of a method corresponding to orchestrator function 220 according to an embodiment of the present invention.

如圖6所示,編排器功能220提供兩種可以被使用的類別,分別為:編排類別(Orchestrator Class)221與步驟類別(Step Class)222。另外,控制器(Controller)223與服務(Service)224為使用Anser程式庫200的外部(External)組件。另外,新建服務類別(New Service Class)225、新建編排器類別(New Orchestrator Class)226與新建控制器類別(New Controller Class)227為開發者20所實作的內容組件。As shown in FIG. 6 , the orchestrator function 220 provides two categories that can be used, namely: Orchestrator Class 221 and Step Class 222 . In addition, the controller (Controller) 223 and the service (Service) 224 are external components using the Anser program library 200. In addition, the new service class (New Service Class) 225, the new orchestrator class (New Orchestrator Class) 226, and the new controller class (New Controller Class) 227 are content components implemented by the developer 20.

如圖6所示,開發者20可透過新建編排器類別226來新建編排器。新建編排器類別226使用(use)新建服務類別225,並將其輸出至服務224,使其依賴程式庫功能。新建編排器類別226將其輸出延伸(extends)至編排類別221,且步驟類別222將由編排類別221進行實體化(instantiate)。新建編排器類別226將由新建控制器類別227進行實體化(instantiate)。新建控制器類別227將其輸出延伸(extends)至控制器223。As shown in FIG. 6 , the developer 20 can create a new orchestrator by creating a new orchestrator category 226 . The new orchestrator class 226 uses the new service class 225 and exports it to the service 224, making it dependent on the library functionality. The new orchestrator class 226 extends its output to the orchestration class 221 , and the step class 222 will be instantiated by the orchestration class 221 . The new orchestrator class 226 will be instantiated by the new controller class 227. A new controller class 227 extends its output to controller 223 .

詳細而言,編排類別221為一抽象類別,編排類別221提供編排器功能220在進行跨越多個服務執行時需要的方法,而繼承編排類別221後必須實作抽象方法定義編排器功能220的執行細節。In detail, the orchestration class 221 is an abstract class. The orchestration class 221 provides the methods that the orchestrator function 220 needs when executing across multiple services. After inheriting the orchestration class 221, the abstract method must be implemented to define the execution of the orchestrator function 220. Details.

詳細而言,步驟類別222不須被繼承或實作,步驟類別222將由將由編排類別221進行實體化,步驟類別222用於管理複雜編排流程的執行。In detail, the step category 222 does not need to be inherited or implemented. The step category 222 will be materialized by the orchestration category 221. The step category 222 is used to manage the execution of complex orchestration processes.

詳細而言,開發者20會藉由控制器223將Anser程式庫200使用在PHP框架中,因此Anser程式庫200基於原生PHP,可以被任何外部類別實體化並正常運作。換言之,在本發明的實施例中,編排器功能220更包括藉由控制器223以使Anser程式庫200使用在PHP程式語言之框架中。Specifically, the developer 20 will use the Anser program library 200 in the PHP framework through the controller 223. Therefore, the Anser program library 200 is based on native PHP and can be instantiated by any external category and operate normally. In other words, in the embodiment of the present invention, the organizer function 220 further includes using the controller 223 to enable the Anser program library 200 to be used in the framework of the PHP programming language.

請一併參照圖6與圖7,在本發明的實施例中,相應於編排器功能220的方法包括步驟S21-S22。於步驟S21,開發者20可藉由編排類別221來提供編排器功能220在進行跨越多個服務執行時所需的方法。於步驟S22,由編排類別221來實體化步驟類別222以管理服務流程的執行。Please refer to FIG. 6 and FIG. 7 together. In the embodiment of the present invention, the method corresponding to the organizer function 220 includes steps S21-S22. In step S21, the developer 20 can use the orchestration class 221 to provide the methods required by the orchestrator function 220 when executing across multiple services. In step S22, the step category 222 is materialized by the orchestration category 221 to manage the execution of the service process.

透過以上揭示的架構開發了Anser程式庫200,Anser程式庫200包含許多供開發者20開箱即用的類別以及方法,以下將提供四種Anser程式庫200的使用方式,以及展示如何使用Anser程式庫200來實作服務編排設計模式。The Anser program library 200 is developed through the architecture disclosed above. The Anser program library 200 contains many categories and methods for developers 20 to use out of the box. The following will provide four ways of using the Anser program library 200 and show how to use the Anser program. Library 200 to implement the service orchestration design pattern.

第一種Anser程式庫200的使用方式為服務實作(Service Implementation),用以實作簡單服務類別214,其代碼列出如圖8。The first usage method of the Anser program library 200 is service implementation (Service Implementation), which is used to implement the simple service category 214. The code is listed in Figure 8.

如圖8所示,開發者20可以繼承Anser程式庫200內的簡單服務類別214實作所需內容。在圖8所示範的產品服務(Products Service)類別中,映射微服務端點所提供的資源,提供資源在進行HTTP請求時的前過濾器(Before Filter)與後過濾器(After Filter),與請求失敗時的重試次數、間隔,以及超時皆能整合在一個類別之中統一設定。類別中的公開方法代表端點資源的詳細設定,它們通常會回傳Action物件。具體而言,簡單服務類別214用以映射多個微服務端點所提供的資源,並提供該資源在進行HTTP連線請求時的前過濾器與後過濾器。As shown in Figure 8, the developer 20 can inherit the simple service class 214 in the Anser library 200 to implement the required content. In the Products Service category demonstrated in Figure 8, map the resources provided by the microservice endpoint, provide the resources before filter (Before Filter) and post filter (After Filter) when making HTTP requests, and The number of retries, intervals, and timeouts when requests fail can all be integrated into one category and set uniformly. The public methods in the class represent the detailed settings of the endpoint resource, and they usually return Action objects. Specifically, the simple service category 214 is used to map resources provided by multiple microservice endpoints and provide pre-filters and post-filters for the resources when making HTTP connection requests.

第二種Anser程式庫200的使用方式為動作(Action),用以使用動作(Action)物件,其代碼列出如圖9。The second way of using the Anser program library 200 is action (Action), which is used to use action (Action) objects. The code is listed in Figure 9.

在圖9所示的例示中,其表示了動作(Action)的使用方式,這個動作(Action)將會以HTTP協定請求一次RESTful API取得商品列表(服務列表)。在圖9所示的例子裡,開發者20可以傳入回呼函式處理(Callback Function)請求成功與失敗時的邏輯。具體而言,動作類別212以HTTP連線請求藉由RESTful應用程序取得服務列表。In the example shown in Figure 9, it shows the use of action (Action). This action (Action) will request a RESTful API through the HTTP protocol to obtain the product list (service list). In the example shown in Figure 9, the developer 20 can pass in the callback function to handle the logic when the request succeeds or fails. Specifically, action class 212 uses an HTTP connection request to obtain a service list through a RESTful application.

第三種Anser程式庫200的使用方式為並行動作(Concurrent Action),用以實作API組合模式,其代碼列出如圖10。The third usage method of the Anser program library 200 is concurrent action (Concurrent Action), which is used to implement the API combination mode. The code is listed in Figure 10.

圖10顯示的是開發者20可以透過將複數動作(Action)傳入並行動作類別213之實體中,達成複數端點的並行請求,以及在請求成功後將API回應組合後回傳。具體而言,多個動作物件傳入經實體化的並行動作類別213以達成所述多個微服務端點的並行請求。Figure 10 shows that the developer 20 can achieve parallel requests for multiple endpoints by passing multiple actions (Action) into the entity of the parallel action category 213, and after the request is successful, the API response is combined and sent back. Specifically, multiple action objects are passed into the materialized parallel action category 213 to achieve parallel requests of the multiple microservice endpoints.

第四種Anser程式庫200的使用方式為編排實作(Orchestration Implementation),用以實作服務編排設計模式,其代碼列出如圖11。The fourth usage method of the Anser library 200 is orchestration implementation (Orchestration Implementation), which is used to implement the service orchestration design pattern. The code is listed in Figure 11.

在圖11所示的例示中,開發者20可以透過編排類別221定義涉及多個微服務且具有順序性的執行過程。在圖11所示的例示中可以發現,每個步驟(Step)由數個動作(Action)組成,若定義了一個以上的步驟(Step),那麼這些步驟(Step)將在編排器功能220中被順序執行。步驟(Step)也能取得在運作時期中其他步驟(Step)的執行結果,只需要傳入相應的回呼函式,即可透過編排器功能220取得所需要的步驟動作(Step Action)。具體而言,編排類別221用以定義涉及所述多個微服務端點且具有順序性的執行過程,所述執行過程包含多個步驟,其中每個步驟係由多個動作物件所組成,其中若編排類別221定義了至少一步驟,則該至少一步驟在編排器功能220中被順序執行。In the example shown in FIG. 11 , the developer 20 can define a sequential execution process involving multiple microservices through the orchestration category 221 . In the example shown in Figure 11, it can be found that each step (Step) consists of several actions (Action). If more than one step (Step) is defined, then these steps (Step) will be in the orchestrator function 220 are executed sequentially. A step can also obtain the execution results of other steps during the operation period. It only needs to pass in the corresponding callback function to obtain the required step action (Step Action) through the orchestrator function 220. Specifically, the orchestration category 221 is used to define a sequential execution process involving the multiple microservice endpoints. The execution process includes multiple steps, where each step is composed of multiple action objects, where If the orchestration category 221 defines at least one step, the at least one step is executed sequentially in the orchestrator function 220 .

以下以數個實施例態樣來針對本發明的Anser程式庫200進行說明。在以下的實施例態樣中,設計了三個獨立運行且具有獨立資料庫的微服務,分別為商品(Product)微服務、訂單(Order)微服務與付款(Payment)微服務,且利用本發明實作之服務編排設計來對其進行編排。其中,商品微服務的功能為商品敘述、價格與庫存,訂單微服務的功能為儲存訂單編號、商品與數量,付款微服務的功能為紀錄付款金額與相關資訊。The Anser program library 200 of the present invention will be described below in several embodiments. In the following embodiment, three microservices that run independently and have independent databases are designed, namely Product microservice, Order microservice and Payment microservice, and use this Invent and implement service orchestration designs to orchestrate them. Among them, the function of the product microservice is product description, price and inventory, the function of the order microservice is to store the order number, product and quantity, and the function of the payment microservice is to record the payment amount and related information.

上述三個作為測試用基礎設施的微服務皆是以PHP撰寫,並使用PostgreSQL做為資料儲存的資料庫,以Docker佈署在三台位於同一區域網路中且各自獨立的伺服器上。伺服器可包含處理器和記憶體,其中記憶體儲存有複數個指令,而處理器可載入記憶體中的指令來進行本發明之服務編排功能。上述三個微服務皆對外一組RESTful API,這組API服務於訂單(Order)微服務、付款(Payment)微服務與商品(Product)微服務等資源的CRUD(新增(Create)、讀取(Read)、編輯(Update)、刪除(Delete))需求。The above three microservices used as test infrastructure are all written in PHP, use PostgreSQL as the database for data storage, and are deployed with Docker on three independent servers located in the same local network. The server can include a processor and a memory, where the memory stores a plurality of instructions, and the processor can load the instructions in the memory to perform the service orchestration function of the present invention. The above three microservices all expose a set of RESTful APIs. This set of APIs serves the CRUD (Create), read, and other resources of the Order microservice, Payment microservice, and Product microservice. (Read, Edit (Update), Delete (Delete)) requirements.

第一種實施例態樣為訂單概況,其示意圖如圖12之上部的第一種實施例態樣所示,說明如下。於步驟X1,RESTful API 300接收請求30並傳入訂單編號(Order ID)後以並行連線的方式向訂單(Order)微服務320與付款(Payment)微服務330取得資料。於步驟X2,經過組合後回傳兩個微服務(訂單微服務320與付款微服務330)的回應結果。The first embodiment is an order overview, the schematic diagram of which is shown in the upper part of Figure 12 of the first embodiment, and is described as follows. In step X1, the RESTful API 300 receives the request 30 and passes in the order number (Order ID), and then obtains data from the order (Order) microservice 320 and the payment (Payment) microservice 330 in a parallel connection. In step X2, the response results of the two microservices (the order microservice 320 and the payment microservice 330) are returned after combination.

根據取樣測試結果得知,在第一種實施例態樣中,相較於已知的程式庫,透過本發明實施例之Anser程式庫200所提供的任務編排雖然在處理速度上雖然較慢,卻能正確處裡所有連線。According to the sampling test results, in the first embodiment, compared to the known program library, although the task arrangement provided by the Anser program library 200 of the embodiment of the present invention is slower in processing speed, But it handles all connections correctly.

第二種實施例態樣為訂單詳情,其示意圖如圖12之中間部的第二種實施例態樣所示,說明如下。於步驟Y1,RESTful API 300接收請求30並傳入訂單便號(訂單ID)後先以並行連線的方式取得訂單(Order)微服務320與付款(Payment)微服務330的資料。於步驟Y2,再以步驟Y1中回傳的「商品編號(Products ID)」向商品(Product)微服務310取得商品細節資訊。於步驟Y3,將所有微服務(訂單微服務320、付款微服務330與商品微服務310)的回應組合後回傳。The second embodiment is the order details, and its schematic diagram is shown in the second embodiment in the middle part of Figure 12, and the description is as follows. In step Y1, the RESTful API 300 receives the request 30 and passes in the order number (order ID), and then obtains the data of the order (Order) microservice 320 and the payment (Payment) microservice 330 in a parallel connection. In step Y2, the product details information is obtained from the product microservice 310 using the "Products ID" returned in step Y1. In step Y3, the responses from all microservices (order microservice 320, payment microservice 330, and product microservice 310) are combined and returned.

根據取樣測試結果得知,在第二種實施例態樣中,相較於已知的程式庫,透過本發明實施例之Anser程式庫200所提供的任務編排在處理複雜的服務流程時,將能夠提供更穩定的效能,而在面對高負載的情況下,能夠提供準確無誤的服務。According to the sampling test results, in the second embodiment, compared with the known program library, the task arrangement provided by the Anser program library 200 of the embodiment of the present invention can be used to process complex service processes. It can provide more stable performance and provide accurate services under high load conditions.

第三種實施例態樣為新建訂單,其示意圖如圖12之下部的第三種實施例態樣所示,說明如下。於步驟Z1,RESTful API 300接收請求30並傳入商品資訊(Product Info)陣列(包括:商品編號(商品ID)、所需數量與使用者編號(使用者ID))後,先以商品資訊陣列向商品(Product)微服務310取得所有商品的銷售價格。於步驟Z2,向訂單(Order)微服務320傳入使用者編號、商品資訊陣列與購買數量來新建訂單(Create Order),並取得訂單編號(Order ID)。於步驟Z3,透過步驟Z1之商品的銷售價格與所需數量算出結帳金額後,向付款(Payment)微服務330傳入訂單編號(Order ID)與結帳金額(Price)來新建付款(Create Payment)。於步驟Z4,確認資料寫入完畢後回傳被建立的訂單編號。The third embodiment is to create a new order. The schematic diagram of the third embodiment is shown in the lower part of Figure 12. The description is as follows. In step Z1, after receiving the request 30 and passing in the product information (Product Info) array (including: product number (product ID), required quantity and user number (user ID)), the RESTful API 300 first uses the product information array Obtain the sales prices of all products from the Product microservice 310. In step Z2, the user number, product information array and purchase quantity are passed to the order (Order) microservice 320 to create a new order (Create Order), and the order number (Order ID) is obtained. In step Z3, after calculating the checkout amount based on the sales price and required quantity of the product in step Z1, the order number (Order ID) and checkout amount (Price) are passed to the payment microservice 330 to create a new payment (Create). Payment). In step Z4, after confirming that the data is written, the created order number is returned.

根據取樣測試結果得知,在第三種實施例態樣中,在面對高負載的請求時,相較於已知的程式庫,透過本發明實施例之Anser程式庫200所提供的任務編排的處理時間雖然較長,但卻有著0錯誤率的穩定性,而對於分散式服務來說,新增與修改的穩定性是相比效能而言更加重要的。According to the sampling test results, in the third embodiment, when facing high-load requests, compared with known libraries, the task scheduling provided by the Anser library 200 in the embodiment of the present invention is Although the processing time is longer, it has the stability of 0 error rate. For distributed services, the stability of new additions and modifications is more important than performance.

總的來說,本發明的Anser程式庫200提供了針對PHP程式語言的微服務解決方案,以程式庫的方式提供開發者開箱即用的實用功能,並帶來諸多好處:(1)以原生PHP開發,能夠相容不同的軟體開發框架;(2)開發者能夠以程式設計的方式在微服務編排的過程進行更多邏輯的判斷;(3)相比同類型解決方案提供更穩定的執行效能;(4)面對高並行請求時,能夠保持低錯誤率,保證程式運行正常。In general, the Anser program library 200 of the present invention provides a microservice solution for the PHP programming language, provides developers with practical functions out of the box in the form of a program library, and brings many benefits: (1) Native PHP development is compatible with different software development frameworks; (2) Developers can use programming to make more logical judgments in the microservice orchestration process; (3) Compared with similar solutions, it provides more stable Execution performance; (4) When facing high parallel requests, it can maintain a low error rate and ensure that the program runs normally.

本發明的Anser程式庫200能夠提供PHP開發者在實作微服務架構時的新選擇,以針對多個任務進行任務編排,開發者不必為了實作微服務而遷移到不熟悉的程式語言。以往,使用PHP以HTTP協定與其他端點進行溝通是一件非常繁瑣的工作,而利用本發明所提出的Anser程式庫200,開發者能夠在熟悉的程式語言與高效能作為前提,實現多個微服務的整合以及複雜的服務編排與API組合(並行連線)等功能。The Anser program library 200 of the present invention can provide PHP developers with new choices when implementing microservice architecture to arrange tasks for multiple tasks. Developers do not have to migrate to unfamiliar programming languages in order to implement microservices. In the past, using PHP to communicate with other endpoints using the HTTP protocol was a very cumbersome task. However, using the Anser program library 200 proposed by the present invention, developers can implement multiple programs on the premise of familiar programming language and high performance. Integration of microservices and complex service orchestration and API combination (parallel wiring) and other functions.

透過本發明的Anser程式庫200,開發者得以便捷地採用服務編排設計模式開發基於微服務的網路應用程式。透過本發明的Anser程式庫200,開發者得以在PHP的語言特性下,利用程式庫提供的豐富介面,迅速地實作服務編排設計模式,並且在保有彈性的開發過程中,輕鬆地處理各種在HTTP溝通中可能會發生的應用程式例外以及請求失敗時的重試策略,幫助開發者以PHP建構出健壯的微服務系統。Through the Anser program library 200 of the present invention, developers can easily adopt the service orchestration design model to develop network applications based on microservices. Through the Anser program library 200 of the present invention, developers can use the rich interface provided by the program library to quickly implement the service orchestration design pattern under the language characteristics of PHP, and easily handle various in-service design patterns while maintaining flexibility in the development process. Application exceptions that may occur in HTTP communication and retry strategies when requests fail help developers build robust microservice systems with PHP.

以上概述了數個實施例的特徵,因此熟習此技藝者可以更了解本發明的態樣。熟習此技藝者應了解到,其可輕易地把本發明當作基礎來設計或修改其他的製程與結構,藉此實現和在此所介紹的這些實施例相同的目標及/或達到相同的優點。熟習此技藝者也應可明白,這些等效的建構並未脫離本發明的精神與範圍,並且他們可以在不脫離本發明精神與範圍的前提下做各種的改變、替換與變動。The features of several embodiments are summarized above, so that those skilled in the art can better understand the aspects of the present invention. Those skilled in the art should understand that they can easily use the present invention as a basis to design or modify other processes and structures to achieve the same goals and/or achieve the same advantages as the embodiments introduced here. . Those skilled in the art should also understand that these equivalent structures do not deviate from the spirit and scope of the present invention, and they can make various changes, substitutions and changes without departing from the spirit and scope of the present invention.

20                      : 開發者 110                     : 編排器 120,30                 : 請求 130,224                : 服務 200                     : Anser程式庫 210                     : 服務功能 211                     : 列表類別 212                     : 動作類別 213                     : 並行動作類別 214                     : 簡單服務類別 215                     : 過濾器介面 216                     : 設定檔 217,225                : 新建服務類別 218                     : 新建過濾器類別 220                     : 編排器功能 221                     : 編排類別 222                     : 步驟類別 223                     : 控制器 226                     : 新建編排器類別 227                     : 新建控制器類別 300                     : RESTful API 310                     : 商品微服務 320                     : 訂單微服務 330                     : 付款微服務 S1,S2,S11-S15,S21,S22,Y1,Y2,Z1-Z3 :   步驟 20 : Developer 110 : Arranger 120,30 : Request 130,224 : Services 200 : Anser library 210 : Service function 211 : list category 212 : Action Category 213 : Parallel action category 214 : Simple service category 215 : Filter interface 216 : Profile 217,225 : New service category 218                             : New filter category 220 : Arranger function 221 : Arrangement category 222 : Step category 223 : Controller 226 : New orchestrator category 227 : New controller category 300 : RESTful API 310 : Product microservices 320 : Order microservice 330 : Payment microservice S1,S2,S11-S15,S21,S22,Y1,Y2,Z1-Z3: Steps

從以下結合所附圖式所做的詳細描述,可對本發明之態樣有更佳的了解。需注意的是,根據業界的標準實務,各特徵並未依比例繪示。事實上,為了使討論更為清楚,各特徵的尺寸都可任意地增加或減少。 [圖1]係用以呈現服務編排設計模式的架構圖。 [圖2]係根據本發明的實施例之Anser程式庫的架構示意圖。 [圖3]係根據本發明的實施例之使用微服務架構來實作程式庫的方法的流程圖。 [圖4]係根據本發明的實施例之服務功能的架構示意圖。 [圖5]係根據本發明的實施例之相應於服務功能的方法的流程圖。 [圖6]係根據本發明的實施例之編排器功能的架構示意圖。 [圖7]係根據本發明的實施例之相應於編排器功能的方法的流程圖。 [圖8]係第一種Anser程式庫的使用方式的代碼。 [圖9]係第二種Anser程式庫的使用方式的代碼。 [圖10]係第三種Anser程式庫的使用方式的代碼。 [圖11]係第四種Anser程式庫的使用方式的代碼。 [圖12]係用以說明本發明的Anser程式庫之三種實施例態樣的架構示意圖。 The aspect of the present invention can be better understood from the following detailed description combined with the accompanying drawings. It should be noted that, in accordance with standard industry practice, features are not drawn to scale. In fact, the dimensions of each feature may be arbitrarily increased or decreased for clarity of discussion. [Figure 1] is an architectural diagram used to present the service orchestration design pattern. [Fig. 2] is a schematic diagram of the architecture of the Anser program library according to an embodiment of the present invention. [Fig. 3] is a flow chart of a method of implementing a program library using a microservice architecture according to an embodiment of the present invention. [Fig. 4] is an architectural schematic diagram of service functions according to an embodiment of the present invention. [Fig. 5] is a flowchart of a method corresponding to a service function according to an embodiment of the present invention. [Fig. 6] is an architectural schematic diagram of the orchestrator function according to an embodiment of the present invention. [Fig. 7] is a flowchart of a method corresponding to an orchestrator function according to an embodiment of the present invention. [Figure 8] is the code for the first way to use the Anser library. [Figure 9] is the code for the second way to use the Anser library. [Figure 10] is the code for the third way to use the Anser library. [Figure 11] is the code for the fourth way of using the Anser library. [Fig. 12] is an architectural schematic diagram illustrating three embodiments of the Anser library of the present invention.

S1,S2                  : 步驟S1,S2 : steps

Claims (10)

一種使用微服務架構來實作程式庫的方法,包括:藉由一服務功能來定義複數個服務並對該些服務發出一HTTP連線請求;及存取該些服務並藉由一編排器功能來組織出呼叫該些服務之一服務流程;其中該服務功能包括:藉由一列表類別來定義相應於該些服務之可用的一服務列表;藉由一動作類別來抽象化該HTTP連線請求的一執行,其中該動作類別將其輸出複合(composition)至該列表類別;若需要以並行請求的方式發出該HTTP連線請求,則實體化一並行動作類別而以並行請求的方式發出該HTTP連線請求,其中該並行動作類別將其輸出複合至該動作類別;藉由一過濾器介面來定義該動作類別在執行前與執行後會被執行的邏輯;及藉由一簡單服務類別來整合該列表類別、該動作類別、該並行動作類別與該過濾器介面,其中該動作類別由該簡單服務類別進行實體化(instantiate)。 A method of implementing a program library using a microservice architecture, including: defining a plurality of services through a service function and issuing an HTTP connection request to these services; and accessing these services through an orchestrator function To organize a service process for calling these services; wherein the service function includes: defining an available service list corresponding to these services through a list category; abstracting the HTTP connection request through an action category An execution in which the action class composes its output to the list class; if it is necessary to issue the HTTP connection request in the form of a parallel request, then instantiate a parallel action class and issue the HTTP connection request in the form of a parallel request Wire requests where the parallel action class composites its output into the action class; through a filter interface to define the logic that will be executed before and after the action class is executed; and through a simple service class to integrate The list class, the action class, the parallel action class and the filter interface, wherein the action class is instantiated by the simple service class. 如請求項1所述之方法,其中該服務功能係 以RESTful應用程序作為該些服務之間溝通的方式,其中該動作類別以RESTful應用程序來抽象化該HTTP連線請求的該執行的細節,其中該動作類別還紀錄該執行的結果、允許開發者介入該執行的過程。 The method described in claim 1, wherein the service function is RESTful applications are used as the communication method between these services. The action category uses RESTful applications to abstract the details of the execution of the HTTP connection request. The action category also records the results of the execution and allows developers to intervene in the execution process. 如請求項1所述之方法,其中該編排器功能包括:藉由一編排類別來提供該編排器功能在進行跨越該些服務執行時所需的方法;及由該編排類別來實體化一步驟類別以管理該服務流程的執行。 The method of claim 1, wherein the orchestrator function includes: providing a method required by the orchestrator function to execute across the services through an orchestration class; and materializing a step by the orchestration class Category to manage the execution of this service process. 如請求項1所述之方法,其中該編排器功能更包括:藉由一控制器以使程式庫使用在PHP程式語言之框架中。 The method of claim 1, wherein the organizer function further includes: using a controller to enable the program library to be used in a PHP programming language framework. 如請求項3所述之方法,其中該簡單服務類別用以映射複數個微服務端點所提供的一資源,並提供該資源在進行該HTTP連線請求時的前過濾器與後過濾器。 The method of claim 3, wherein the simple service category is used to map a resource provided by a plurality of microservice endpoints, and provide a pre-filter and a post-filter for the resource when making the HTTP connection request. 如請求項2所述之方法,其中該動作類別以該HTTP連線請求藉由RESTful應用程序取得該服務列表。 The method of claim 2, wherein the action category obtains the service list through the RESTful application using the HTTP connection request. 如請求項5所述之方法,其中複數個動作物件傳入經實體化的該並行動作類別以達成該些微服務端點的並行請求。 The method described in claim 5, wherein multiple action objects pass in the materialized parallel action category to achieve parallel requests of the microservice endpoints. 如請求項7所述之方法,其中該編排類別用以定義涉及該些微服務端點且具有順序性的一執行過程。 The method of claim 7, wherein the orchestration category is used to define a sequential execution process involving the microservice endpoints. 如請求項8所述之方法,其中該執行過程包含複數個步驟,其中每一該些步驟係由複數個動作物件所組成。 The method of claim 8, wherein the execution process includes a plurality of steps, and each of the steps is composed of a plurality of action objects. 如請求項8所述之方法,其中若該編排類別定義了至少一步驟,則該至少一步驟在該編排器功能中被順序執行。 The method of claim 8, wherein if the orchestration category defines at least one step, the at least one step is executed sequentially in the orchestrator function.
TW111103759A 2022-01-27 2022-01-27 Mehod for implementing library by using microservices architecture TWI814227B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW111103759A TWI814227B (en) 2022-01-27 2022-01-27 Mehod for implementing library by using microservices architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW111103759A TWI814227B (en) 2022-01-27 2022-01-27 Mehod for implementing library by using microservices architecture

Publications (2)

Publication Number Publication Date
TW202331545A TW202331545A (en) 2023-08-01
TWI814227B true TWI814227B (en) 2023-09-01

Family

ID=88559340

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111103759A TWI814227B (en) 2022-01-27 2022-01-27 Mehod for implementing library by using microservices architecture

Country Status (1)

Country Link
TW (1) TWI814227B (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030224A1 (en) * 2010-07-29 2012-02-02 Activepath Ltd. Enabling active content in messaging using automatic data replacement
TW201933830A (en) * 2018-01-25 2019-08-16 香港商阿里巴巴集團服務有限公司 Traffic switching method and device and computer equipment
CN112948152A (en) * 2021-04-16 2021-06-11 深圳市今天国际物流技术股份有限公司 Method for processing and interface service of arranging data and calling
CN113485690A (en) * 2021-07-28 2021-10-08 餐道信息科技有限公司 API interface visual entity conversion method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120030224A1 (en) * 2010-07-29 2012-02-02 Activepath Ltd. Enabling active content in messaging using automatic data replacement
TW201933830A (en) * 2018-01-25 2019-08-16 香港商阿里巴巴集團服務有限公司 Traffic switching method and device and computer equipment
CN112948152A (en) * 2021-04-16 2021-06-11 深圳市今天国际物流技术股份有限公司 Method for processing and interface service of arranging data and calling
CN113485690A (en) * 2021-07-28 2021-10-08 餐道信息科技有限公司 API interface visual entity conversion method

Also Published As

Publication number Publication date
TW202331545A (en) 2023-08-01

Similar Documents

Publication Publication Date Title
US10565095B2 (en) Hybrid testing automation engine
CN107370786B (en) General information management system based on micro-service architecture
US10324690B2 (en) Automated enterprise software development
van der Aalst Patterns and XPDL: A critical evaluation of the XML process definition language
JP5174320B2 (en) Prescriptive navigation using topology metadata and navigation paths
US8898620B2 (en) System and method for application process automation over a computer network
RU2433463C2 (en) Dynamic repositioning workflow by end users
US5758351A (en) System and method for the creation and use of surrogate information system objects
CN115129304A (en) Zero-code-platform-based visual business service arrangement method and device
CN111258567A (en) Service code development processing method and device
TWI814227B (en) Mehod for implementing library by using microservices architecture
Srinivasmurthy et al. Web2exchange: A model-based service transformation and integration environment
Khan et al. Developing Microservices Architecture on Microsoft Azure with Open Source Technologies
Gammelgaard Microservices in. NET
Bhattacharjee et al. Cloudcamp: Automating cloud services deployment and management
Anh Real-time backend architecture using Node. js, Express and Google Cloud Platform
Kaplan Framework for migrating deployed serverless applications
Kylliäinen Serverless Computing Use Cases–Benefits and Disadvantages
Haihong et al. A Distributed Visualization Service Composition System
Shankararaman et al. Integrating the cloud scenarios and solutions
Stensland Business Management Execution On Data Streams
Kazantsev Development of a Web Application for Management of Public Events
Martini Using Django and JavaScript to implement Model-Based Performance Testing as a Service with the MBPeT tool
Rajput et al. Crud API in Golang using Three Layered Architecture
Costa The Impact of Microservices: an Empirical Analysis of the Emerging Software Architecture