API management system and API management method

The API management system addresses the inefficiency in existing systems by dynamically determining the communication method based on API processing times, ensuring efficient execution and optimized resource utilization.

JP7674141B2Active Publication Date: 2025-05-09HITACHI LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021072791
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-04-22
Publication Date
2025-05-09
Estimated Expiration
2041-04-22

AI Technical Summary

Technical Problem

Existing API management systems are unable to dynamically determine the optimal communication method between client applications and API servers based on the processing contents of the API, leading to inefficient resource utilization and increased development burdens.

Method used

An API management system that includes a processor and memory, capable of estimating the processing time required for an API based on the received request, and determining the appropriate communication method (synchronous or asynchronous) to efficiently execute the API.

Benefits of technology

Enables efficient execution of APIs by dynamically selecting the optimal communication method based on processing times, optimizing resource consumption and reducing development burdens for client application developers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007674141000001
    Figure 0007674141000001
  • Figure 0007674141000002
    Figure 0007674141000002
  • Figure 0007674141000003
    Figure 0007674141000003
Patent Text Reader

Abstract

To provide an API management system and an API management method capable of efficiently executing an API according to processing contents of the API.SOLUTION: An API management system 104 includes an API processing time period estimation unit 214 which: acquires information of an API execution request; estimates a time period required for a prescribed information processing device to execute the API for information of the API execution request by analyzing the API processing contents indicated by the API execution request; and determines the communication system to be used for transmission of a request for allowing the prescribed information processing device to execute the API to be either synchronous communication or asynchronous communication on the basis of the estimated time period.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to an API management system and an API management method. [Background technology]

[0002] In recent years, the trend of digital transformation (DX), which aims to create new services and improve business efficiency through digital technology, has been accelerating. Systems to achieve DX often require rapid development, and they are widely built as a System of Systems that combines multiple existing services and systems.

[0003] A common way to combine multiple services or systems is to use the APIs (Application Programming Interfaces) that they expose. For example, if a service that provides a data analysis function exposes that function as an API, a DX system developer can use the data analysis function simply by writing a process to make an API request in the program. Hereafter, a system that exposes an API will be called an API server, and a system that requests that API will be called a client application.

[0004] There are two communication methods between a client application and an API server: synchronous and asynchronous. The client application must implement processing of requests (API requests) to the API server based on the communication method provided by the API server. For example, in the synchronous method, after the client application makes an API request, the API server performs processing according to the contents of the API request, and after the processing corresponding to the API request (API processing) is completed, it returns an API response including the processing results of that API processing to the client application. On the other hand, in the asynchronous method, for example, after the client application makes an API request to the API server, the API server returns an API response indicating completion of the API processing to the client application without waiting for completion of the API processing according to the contents of the API request. After that, when the API processing on the API server is completed, the API server sends the processing results of the API processing from the API server to the client application by a response to the polling from the client application to the API server or by a push from the API server to the client application.

[0005] The optimal communication method between a client application and an API server depends on the processing content on the API server. For example, an asynchronous method is preferable for APIs that require time for processing. This is because it allows the client application to avoid having to reserve threads to wait for a response or computational resources required for a network connection for a long period of time. On the other hand, asynchronous APIs have the disadvantage that the programming for API requests in the client application tends to be more complicated than with synchronous methods, which increases the burden on the client application developer. Therefore, it is preferable for APIs that do not require time for processing to use a synchronous method of communication.

[0006] However, the communication method that an API server can accept is not necessarily the most suitable for the processing content.

[0007] Therefore, there is a technology that converts between the synchronous and asynchronous methods by introducing a system between the client application and the API server that relays the communication between the two. Hereinafter, such a system will be referred to as an API management system. For example, Patent Document 1 discloses a technology that converts the communication method in an API management system so that the communication method between the client application and the API management system is asynchronous, and the communication method between the API management system and the API server is synchronous. Patent Document 2 also discloses an API management system technology that converts between synchronous and asynchronous methods. In particular, the technology described in Patent Document 2 assumes a database management system as the API server, and the API management system determines whether communication between a client application and the API management system should be synchronous or asynchronous depending on the processing content in the database for each API. [Prior art documents] [Patent documents]

[0008] [Patent Document 1] JP 2019-105977 A [Patent Document 2] JP 2019-200691 A Summary of the Invention [Problem to be solved by the invention]

[0009] However, depending on the API, the API processing time may vary significantly depending on the amount of data included in the API request, the request parameters, the time of the request, etc. For example, in an API that provides a data analysis function, it is expected that the processing time will be longer the larger the amount of data to be analyzed specified in the API request.

[0010] Therefore, even for the same API, whether a synchronous or asynchronous communication method is more appropriate largely depends on the content of the API request sent by the client application.

[0011] In the techniques disclosed in Patent Documents 1 and 2, for the same API, the communication method between a client application and an API management system is fixed to either synchronous or asynchronous. Therefore, a client application developer cannot select an appropriate communication method from these communication methods. As a result, for example, even if the processing time of an API on the API server is short, the client application and the API management system communicate in an asynchronous manner, which may unnecessarily increase the development burden on the client application developer. Conversely, even if the processing time of an API on the API server is long, the client application and the API management system communicate in a synchronous manner, which may unnecessarily increase resource consumption of the client application.

[0012] The present invention has been made in consideration of the above circumstances, and has as its object to provide an API management system and an API management method that are capable of determining a communication method that can execute an API efficiently according to the processing content of the API. [Means for solving the problem]

[0013] In order to solve the above problems, one aspect of the present invention is a system having a processor and a memory, A UI function unit that receives an API execution request indicating a plurality of selectable communication methods including synchronous communication and asynchronous communication from another information processing device, and based on the received API execution request, The time required for a specific information processing device to execute the API in response to information on the execution request for the API is estimated by analyzing the processing content of the API indicated by the information on the execution request for the API, and the time is used to transmit a request to the specific information processing device to execute the API based on the estimated time. , and the other information processing device Communication method , from the plurality of communication methods Determine API processing time estimation part and It is an API management system that has the following features:

[0014] In addition, one aspect of the present invention for solving the above problem is an information processing device, A UI function process for receiving an API execution request from another information processing device, the API execution request indicating a plurality of selectable communication methods including synchronous communication and asynchronous communication, and based on the received API execution request,The time required for a specific information processing device to execute the API in response to information on the execution request for the API is estimated by analyzing the processing content of the API indicated by the information on the execution request for the API, and the time is used to transmit a request to the specific information processing device to execute the API based on the estimated time. , and the other information processing device Communication method , from the plurality of communication methods API processing time estimation process to be determined and This is an API management method. Effect of the Invention

[0015] According to the present invention, it is possible to determine a communication method that allows an API to be executed efficiently according to its processing content.

[0016] Problems, configurations and effects other than those described above will become apparent from the following description of the embodiments. [Brief description of the drawings]

[0017] [Figure 1] FIG. 1 illustrates an example of a configuration of an API development execution system according to a first embodiment. [Diagram 2] FIG. 2 is a diagram illustrating functions provided by an API management system. [Diagram 3] FIG. 11 is a diagram illustrating an example of API definition data. [Figure 4] FIG. 13 is a diagram illustrating an example of API processing time result data. [Diagram 5] FIG. 13 is a diagram illustrating an example of API request response management data. [Figure 6] FIG. 2 is a diagram illustrating an example of hardware included in each information processing device. [Figure 7] FIG. 11 is a sequence diagram illustrating an outline of a development execution process. [Figure 8] This is a sequence diagram outlining an execution phase when asynchronous HTTP is used between a client application system and an API management system, and synchronous HTTP is used between the API management system and an API server. [Figure 9]This is a sequence diagram outlining the execution phases when the synchronous HTTP method is used between the client application system and the API management system, and the asynchronous HTTP method is used between the API management system and the API server. [Figure 10] This is a sequence diagram outlining the execution phases when the asynchronous two-way system is used between the client application system and the API management system, and the synchronous HTTP system is used between the API management system and the API server. [Figure 11] This is a sequence diagram outlining the execution phases when synchronous HTTP communication is used between a client application system and an API management system, and asynchronous two-way communication is used between the API management system and an API server. [Figure 12] FIG. 11 is a flow diagram illustrating an example of an API request response process. [Figure 13] FIG. 11 is a flow diagram illustrating an example of a communication method proposal process. [Figure 14] FIG. 11 is a flow diagram illustrating an example of an API request type determination process. [Figure 15] 11A and 11B are diagrams illustrating examples of an API request and an API response when communication between a client application system and an API management system is performed in synchronous HTTP mode. [Figure 16] 13A to 13C are diagrams illustrating an example of a processing request API request, a processing acceptance API response, and a processing progress confirmation API request related to asynchronous HTTP. [Figure 17] 13A and 13B are diagrams illustrating an example of a processing uncompleted API response and a processing completed API response related to asynchronous HTTP. [Figure 18] 11A and 11B are diagrams illustrating an example of an API request and an API response when communication between a client application system 103 and an API management system 104 is performed in an asynchronous two-way communication format. [Figure 19] FIG. 13 is a diagram showing an example of a synchronous / asynchronous communication method proposal screen. [Figure 20]FIG. 11 is a sequence diagram illustrating an example of a process in the execution phase according to the second embodiment when a synchronous / asynchronous hybrid HTTP system is used between a client application system and an API management system. [Figure 21] FIG. 1 illustrates an example of a synchronous / asynchronous hybrid HTTP API request sent to an API management system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0018] [Example 1] 1 is a diagram illustrating an example of the configuration of an API development execution system 1 according to the first embodiment. The API development execution system 1 includes an API server 105 that stores programs (APIs: Application Programming Interfaces) that realize various functions, and an API server 105. The system includes a client application developer terminal 201 used by a developer 3 who develops an application (client application) using I, a client application user terminal 206 used by a user 5 who uses (executes) the developed client application, a client application system 103 that is called from the client application developer terminal 201 and the client application user terminal 206 and requests API server 105 to execute each API specified by the client application, and an API management system 104 that is called from the client application system 103 and manages the communication method for data communication related to the API with API server 105.

[0019] A client application developer terminal 201 and a client application user terminal 206 are communicatively connected to the API management system 104 via a communication network 203. The client application system 103 is communicatively connected to the API management system 104 via a communication network 202. The API server 105 is connected to the API management system 104 via the communication network 204.

[0020] These communication networks 202, 203, and 204 may be, for example, a local area network (LAN), a wide area network (WAN), the Internet, or a wired or wireless communication network such as a dedicated line. It is a communication network.

[0021] It should be noted that there may be multiple client application systems 103, multiple client application developer terminals 201, multiple client application user terminals 206, and multiple API servers 105.

[0022] 2 is a diagram explaining functions of the API management system 104. The API management system 104 is an information processing device having each of the functional units, a client application communication unit 211, an API request response processing unit 212, an API server communication unit 213, an API processing time estimation unit 214, a UI function unit 215, a data storage unit 216, and a temporary data storage unit 217.

[0023] The client application communication unit 211 transmits and receives API-related processing requests (API requests) and processing responses to the processing requests (API responses) between the client application system 103 and the API management system 104.

[0024] For example, the client application communication unit 211 receives an API request from the client application system 103. The received API request is passed to an API request response processing unit 212.

[0025] Furthermore, for example, the client application communication unit 211 receives an API response from the API request response processing unit 212 and transmits the received API response to the client application system 103 .

[0026] In this embodiment, the client application communication unit 211 is implemented so as to be able to send and receive API requests and API responses to and from the client application system 103 using multiple types of communication protocols, such as synchronous or asynchronous HTTP (Hyper Text Transfer Protocol) and asynchronous Websocket.

[0027] The API server communication unit 213 transmits and receives API requests and API responses between the API management system 104 and the API server 105.

[0028] For example, the API server communication unit 213 receives the The API server 102 receives an API request and transmits the received API request to the API server 105 .

[0029] Also, for example, the API server communication unit 213 receives an API response from the API server 105 and passes the received API response to the API request response processing unit 212 .

[0030] In this embodiment, the API server communication unit 213 is implemented so as to be capable of sending and receiving API requests and API responses to and from the API server 105 using multiple types of communication protocols, such as synchronous or asynchronous HTTP (Hyper Text Transfer Protocol) and asynchronous Websocket.

[0031] Next, the API request response processing unit 212 realizes conversion of the communication method for communication between the client application system 103 and the API server 105 (conversion between synchronous and asynchronous communication, etc.).

[0032] In other words, the API request response processing unit 212 modifies the API requests and API responses transmitted and received between the client application system 103 and the API management system 104, and between the API management system 104 and the API server 105, by referring to API definition data T1 which sets information regarding the specifications of each API (e.g., the format of the API request and API response, and characteristic parameters of the API request and API response), and API request response management data T3 which specifies the order of various processes related to the API (e.g., the processing order related to the API request and API response).

[0033] For example, the API request response processing unit 212 determines the communication method of data communication to be performed in response to the API request or API response, based on information about the API request or API response received from the client application communication unit 211 or the API server communication unit 213. Then, the API request response processing unit 212 generates a new API request or API response as necessary, based on the determined communication method, and passes the generated API request or API response to the client application communication unit 211 or the API server communication unit 213. The passed API request or API response is then transmitted to the client application system 103 or the API server 105.

[0034] The API request response processing unit 212 updates the API request response management data T3 according to the result of this processing.

[0035] In addition, after the API request response processing unit 212 delivers an API response including the processing result in the API server 105 to the client application communication unit 211, it updates the API processing time actual data T2 that stores the history of processing related to the API request and the API response.

[0036] Here, the API definition data T1, API processing time result data T2, and API request response management data T3 will be described.

[0037] (API definition data) 3 is a diagram showing an example of API definition data T1. The API definition data T1 includes an API ID 811 that is an API identifier, API server communication API definition data 812 that is information on specifications related to the API server 105 among the API specifications, The data items include API definition data for client application communication 813, which is specification information related to the management system 104, and request features for API processing time estimation 814, which are features used to estimate the API processing time, and this information is stored for each endpoint URL of the API server 105 in the API request and each method of the API request.

[0038] API definition data 812 for API server communication is a data item related to an API request and an API response. Specifically, API definition data 812 for API server communication has the following data items: request type 821, which is the type of API request, request format 822, which is information on the format of the API request, response format 823, which is information on the format of the API response corresponding to the API request, and asynchronous processing identifier 824, which is information on an identifier used when the communication method related to the API request and API response is an asynchronous method (hereinafter referred to as an asynchronous processing identifier).

[0039] In the request type 821, information on the API request related to a communication method (synchronous HTTP, asynchronous HTTP, or asynchronous WebSocket method) that can be accepted by the API server 105 is set.

[0040] For example, in the case of the asynchronous HTTP method, information on an API request related to asynchronous HTTP (asynchronous HTTP API request) is set in the request type 821. Specifically, information indicating whether the API request is an asynchronous HTTP API request for a processing request (processing request API request) or an asynchronous HTTP API request for processing progress confirmation (processing progress confirmation API request) is set in the request type 821.

[0041] Furthermore, in the case of the synchronous HTTP method, information indicating that the API request is an API request of the synchronous HTTP method (synchronous HTTP API request) is set in the request type 821.

[0042] Furthermore, in the case of the asynchronous Websocket method, information indicating that the API request is a request for a processing request (asynchronous Websocket processing request API request) is set in the request type 821.

[0043] Next, in the request format 822, information on the format of the API request to the API server 105 (for example, a header, an endpoint URL, a method, a payload, or other parameters) is set.

[0044] Information on the format of the API response from the API server 105 in response to the API request (for example, a status code or other parameters) is set in the response format 823. The format information of the API response is set for each type of API response to the API request (for example, a processing incomplete API response (an API response indicating that API processing is incomplete) or a processing completed API response (an API response indicating that API processing is completed) in response to a processing progress confirmation API request).

[0045] When the type of API request that is asynchronous (for example, asynchronous HTTP or asynchronous Websocket) is set in the request type 821, that is, when the communication method that the API server 105 can accept is an asynchronous method, information on the asynchronous processing identifier is set in the asynchronous processing identifier 824. Specifically, the asynchronous processing identifier 824 is set to information on the asynchronous processing identifier of the API server 105 in the format related to the request format 822 or the response format 823. The identifier (asynchronous process identifier) ​​of the API process being executed in 5 is set.

[0046] The reason why an asynchronous process identifier is needed is that in the case of asynchronous communication, there may be cases where multiple API processes are performed in parallel in the API server 105. For example, when the API management system 104 receives an API response including the result of API processing from the API server 105, it needs to determine which API process among the multiple API processes currently being performed in the API server 105 the API response corresponds to. At this time, the API management system 104 refers to the asynchronous process identifier in the asynchronous process identifier 824.

[0047] Next, information related to an API request that the client application system 103 sends to the API management system 104 is set in the client application communication API definition data 813. That is, the client application communication API definition data 813 includes the data items of a path 825 and a request method 826.

[0048] The path 825 is set to an API path specified when the client application system 103 transmits an API request to the API management system 104. For example, the path 825 is set to a character string to be added to an endpoint URL of an API response (this character string is added after the host name of the API management system 104, for example).

[0049] In the request method 826, a method (POST, GET, etc.) in an asynchronous or synchronous HTTP API request (for example, a synchronous HTTP API request, a processing request API request, or an asynchronous WebSocket processing request API request) from the client application system 103 to the API management system 104 is set.

[0050] A feature for estimating the API processing time by the API processing time estimation unit 214 is set in the request feature for API processing time estimation 814. For example, the content or parameters of the API request are set in this feature. Note that the request feature for API processing time estimation 814 may include the total amount of data included in the API request, the request time, etc.

[0051] (API processing time data) 4 is a diagram showing an example of API processing time actual data T2. The API processing time actual data T2 has the following data items: a request ID 911 of an API request, a client application ID 912 which is the ID of the client application system 103, an API ID 811 which is the ID of the API, an API processing start time 913 which is the start time of the API processing, an API processing end time 914 which is the end time of the API processing, and an actual value 915 of a feature amount for estimating the processing time of the API processing.

[0052] The ID of a synchronous HTTP API request or a processing request API request related to asynchronous HTTP from the client application system 103 is set in the request ID 911. Note that the ID of a processing progress confirmation API request related to asynchronous HTTP is not set in the request ID 911.

[0053] The client application ID 912 is set with the identifier of the client application system 103 that is the source of the API request.

[0054] In the API ID 811, an API ID similar to that in the API definition data T1 is set.

[0055] The time when API processing started is set in the API processing start time 913. For example, the time when the API management system 104 sends a synchronous HTTP API request or an asynchronous HTTP API request to the API server 105 is set in the API processing start time 913.

[0056] At API processing end time 914, end For example, the time when the API management system 104 receives, from the API server 105, an API response (synchronous HTTP API response) to a synchronous HTTP API request, or an API response (indicating completion of processing) to an asynchronous HTTP API request or an asynchronous WebSocket processing request API request (processing completion API response) is set as the API processing end time 914.

[0057] In this way, the API processing time result data T2 stores the relationship between the feature amount related to the API request and the time required for executing the API (API processing time).

[0058] (API request response management data) 5 is a diagram showing an example of API request response management data T3. The API request response management data T3 has the following data items: a request ID 911, a client application ID 912, an API ID 811, an API processing start time 913, a communication method 1011, an achievement value 915, an asynchronous processing identifier 1012, and a current processing status 1013.

[0059] The request ID 911, client application ID 912, API ID 811, API processing start time 913, and result value 915 are the same data items as those in the API processing time result data T2.

[0060] In the communication method 1011, information on the communication method adopted by the client application system 103 (for example, synchronous HTTP, asynchronous Websocket, asynchronous HTTP) is set.

[0061] The asynchronous processing identifier 1012 is set with information on the identifier (asynchronous processing identifier) ​​of the API request or API response when the API management system 104 communicates asynchronously with the API server 105 or the client application system 103 (corresponding to the asynchronous processing identifier 824 of the API definition data T1).

[0062] Specifically, when the API management system 104 is configured to communicate with the API server 105 in an asynchronous manner, the asynchronous processing identifier 1012 is set with information about the asynchronous processing identifier of the API request and API response transmitted and received between them.

[0063] Furthermore, when the API management system 104 is configured to communicate with the client application system 103 in an asynchronous manner, the asynchronous processing identifier 1012 is set to an asynchronous processing identifier of an API request and an API response transmitted and received therebetween.

[0064] Information on the processing status of the current process in the API management system 104 is set in the current processing status 1013. Note that when the communication method between the API management system 104 and the API server 105 is synchronous and the API management system 104 has received an API response including the API processing result from the API server 105, the content of that API response is set in the current processing status 1013.

[0065] The API processing time estimation unit 214 is a unit for developing a client application using the API. The API processing time estimation unit 214 acquires information (hereinafter referred to as an expected request, which is information having the same content as an API request) related to the API to be called from the client application received from the client application developer terminal 201 operated by the developer 3. The API processing time estimation unit 214 also acquires constraints (hereinafter simply referred to as constraints) related to the API call that the client application system 103 has.

[0066] Then, the API processing time estimation unit 214 estimates the time required for API processing (API processing time) specified by the expected request. Furthermore, the API processing time estimation unit 214 determines the communication method to be proposed to the client application developer 3 based on the estimated API processing time.

[0067] Specifically, the API processing time estimation unit 214 receives an expected request (including, for example, information on a communication method and information on the type and content of processing performed by the API) from the UI function unit 215, and estimates the API processing time based on the received expected request and the API processing time actual data T2. Then, based on the estimated API processing time and the constraints and the like received from the UI function unit 215, the API processing time estimation unit 214 generates information on a communication method proposal to the developer 3 (hereinafter referred to as communication method proposal information) indicating whether a synchronous or asynchronous communication method is more appropriate for communication with the API server 105.

[0068] The UI function unit 215 provides the client application developer terminal 201 with a UI (User Interface).

[0069] For example, the UI function unit 215 transmits an input screen for accepting input of an expected request and constraint conditions from the developer 3 to the client application developer terminal 201, and receives the expected request and constraint conditions input on the input screen and passes them to the API processing time estimation unit 214. Note that the constraint conditions of the client application system 103 do not have to be mandatory items to be input.

[0070] Also, for example, the UI function unit 215 receives an estimate of the API processing time and information on a communication method proposal to the developer 3 (communication method proposal information) from the API processing time estimation unit 214, and transmits a screen displaying the received information to the client application developer terminal 201.

[0071] The data storage unit 216 stores API definition data T1 and API processing time result data T2.

[0072] The temporary data storage unit 217 temporarily stores the API request response management data T3.

[0073] 6 is a diagram showing an example of hardware included in each information processing device of the API management system 104, the client application system 103, the client application developer terminal 201, the client application user terminal 206, and the API server 105. As shown in the figure, each information processing device includes a processor 311, a main memory device 312, an auxiliary memory device 313, an input device 314, an output device 315, and a communication device 316.

[0074] Each information processing device may be realized by using a virtual information processing resource such as a cloud server provided by a cloud system, or may be realized by a plurality of information processing devices operating in cooperation with each other.

[0075] The processor 311 is configured using, for example, a central processing unit (CPU), a micro processing unit (MPU), a graphics processing unit (GPU), etc. The main memory device 312 is a device for storing programs and data, and may be, for example, a read only memory (ROM). Memory) (Mask ROM (Mask Read Only Memory), PROM (Programmable ROM), etc.), RAM (Random Access Memory) ( SRAM (Static Random Access Memory), NVRAM (Non Volatile RAM), The auxiliary storage device 313 is a hard disk drive, a flash memory, a solid state drive (SSD), an optical storage device (a compact disc (CD), a digital versatile disc (DVD), etc.), etc. The programs and data stored in the auxiliary storage device 313 are loaded into the main storage device 312 as needed.

[0076] The input device 314 is a UI that accepts information from a user, and is, for example, a keyboard, a mouse, a card reader, a touch panel, etc. The output device 315 is a UI that provides information to a user by outputting information (display output, audio output, print output, etc.), and is, for example, a display device (LCD (Liquid Crystal Display), a graphic card, etc.) that visualizes various information, an audio output device (speaker), a printer, etc. The communication device 316 is a communication interface that communicates with other devices via a communication network, and is, for example, a NIC (Network Interface Card), a wireless communication module, a USB (Universal Serial Interface) module, a serial communication module, etc. The communication device 316 can also function as an input device that receives information from other devices that are communicatively connected. The communication device 316 can also function as an output device that transmits information to other devices that are communicatively connected.

[0077] The functions of each information processing device are realized by the processor 311 reading and executing a program stored in the main storage device 312 or the auxiliary storage device 313. The above programs can be recorded on a recording medium and distributed, for example.

[0078] In addition to the above functions, each information processing device may further include other functions such as an operating system, a file system, a device driver, a DBMS (DataBase Management System), etc. Each information processing device stores various types of information (data), for example, as database tables or files. Next, the processing performed by the API development execution system 1 will be described.

[0079] <Processing Overview> FIG. 7 is a sequence diagram outlining the processing (development execution processing) performed by API development execution system 1. As shown in FIG.

[0080] The development execution process includes a development phase S111 in which a client application developer 3 develops a client application, and an execution phase S112 in which the client application developed in the development phase S111 is executed.

[0081] (Development Phase) First, the development phase S111 will be described. The development phase S111 is executed when a predetermined start input is made to the client application developer terminal 201, for example.

[0082] First, the API management system 104 accepts input of an expected request and constraint conditions from the client application developer terminal 201 (step S121). For example, the API management system 104 causes the client application developer terminal 201 to display a predetermined input screen as a UI (User Interface), and accepts input of the expected request and constraint conditions from the developer 3. Note that the input of constraint conditions may be arbitrary.

[0083] The expected request may be, for example, a parameter value to be included in the API request, a total amount of data to be included in the API request, an API request time, or an API request frequency.

[0084] The constraint conditions are, for example, a timeout period for an HTTP connection in the client application system 103, a maximum number of HTTP connections that can be simultaneously held from the client application system 103 to a single host, etc. In addition, when the number of HTTP connections in the client application system 103 (for example, the number of HTTP connections from the client application system 103 to the API management system 104) has reached the maximum number of connections and the client application system 103 transmits an API request, the time that the client application system 103 can wait until a vacancy in the number of HTTP connections becomes available (maximum execution waiting time t * wait ) may be included in the constraints.

[0085] The API management system 104 estimates the API processing time corresponding to the expected request input in step S121 based on the API processing time result data T2 (step S122).

[0086] Based on the API processing time estimated in step S122, the API management system 104 determines whether the client application system 103 should use a synchronous or asynchronous communication method to make an API request (step S123). That is, the API management system 104 generates communication method proposal information.

[0087] The API management system 104 transmits the communication method proposal information generated in step S123 to the client application developer terminal 201 (step S124). For example, the API management system 104 displays the contents of the communication method proposal information on the screen of the client application developer terminal 201. Note that the communication method proposal information includes information such as an estimated value of API processing time.

[0088] The client application developer terminal 201 generates a client application in which a communication method is set for each API based on input from the developer 3 who referenced the communication method proposal information, and stores the generated client application in the client application system 103 (step S125). For example, the client application developer terminal 201 accepts input of a client application code from the developer 3 that conforms to the communication method (synchronous or asynchronous) displayed on the screen. The client application developer terminal 201 transmits the input client application code to the client application system 103.

[0089] Thus, in development phase S111, API management system 104 proposes to client application developer 3 whether the communication method for data communication related to the API called by client application system 103 should be asynchronous or synchronous. This allows client application developer 3 to select a communication method that optimizes the development burden of the client application and the resource consumption of client application system 103. Note that development phase S111 is repeatedly executed for each API that is to be called from the client application being developed by developer 3.

[0090] (Execution phase) Next, execution phase S112 will be described. First, client application user terminal 206 requests client application system 103 to perform processing related to the API in the client application created in development phase S111 (step S126). For example, client application system 103 causes client application user terminal 206 to display a screen for accepting a processing request related to execution of the API in the client application, and accepts input of the processing request from user 5.

[0091] The client application system 103 transmits an API request to the API management system 104 in order to execute the process requested by the client application user terminal 206 (step S127).

[0092] The communication method for transmitting the API request may be either an asynchronous method or a synchronous method. The API request includes information on the communication method used between the client application system 103 and the API management system 104.

[0093] The API management system 104 converts the API request received from the client application system 103 into a communication method acceptable to the API server 105 as necessary (step S128), and transmits the converted API request to the API server 105 (step S129).

[0094] When the API server 105 receives this API request, it executes processing (e.g., API execution) according to the API request (step S130). When the processing is completed, the API server 105 transmits an API response including information on the processing result to the API management system 104 (step S131).

[0095] The API management system receives the API response from the API server 105 and performs step S 127 The API request is converted into an API response in accordance with the communication method indicated by the received API request (step S132), and is sent to the client application system 103 (step S133).

[0096] The API management system 104 associates the processing time related to the API of the API server 105 in step S130, which is calculated based on the API response received from the API server 105, with the API request received from the client application system 103 in step S127, and generates API processing time actual data T 2 (step S134).

[0097] The stored data is used in the development phase S111 that is executed thereafter. For example, the API management system 104 estimates the API processing time using this stored data in step S122 of the development phase S111, and improves the estimation accuracy. The API management system 104 also uses this stored data to create communication method proposal information, thereby proposing an accurate communication method to the developer 3. These details will be described later.

[0098] Thus, in the execution phase S112, the client application user terminal 206 accesses the client application system 103 to request API execution, and in response to the request, the client application system 103 executes the API provided by the API server 105 via the API management system 104. At this time, the API management system 104 converts between synchronous and asynchronous communication methods as necessary in response to access from the client application system 103 and the API management system 104.

[0099] That is, in the execution phase S112, the API management system 104 converts between synchronous and asynchronous communication methods as necessary, so that the client application system 103 can use both synchronous and asynchronous communication methods even if, for example, the API server 105 supports only one of the synchronous and asynchronous communication methods.

[0100] Note that there are various patterns of combinations of communication methods between the client application system 103 and the API management system 104 and between the API management system 104 and the API server 105. For example, the asynchronous HTTP method may be used between the client application system 103 and the API management system 104, and the synchronous HTTP method may be used between the API management system 104 and the API server 105. Also, the synchronous HTTP method may be used between the client application system 103 and the API management system 104, and the asynchronous HTTP method may be used between the API management system 104 and the API server 105. Also, the synchronous HTTP method or the asynchronous HTTP method may be used between the client application system 103 and the API management system 104, and between the API management system 104 and the API server 105. Also, a protocol capable of two-way communication, such as Websocket, may be used as the asynchronous communication method. Specific examples of these will be described later.

[0101] <Execution phase> Next, an overview of the execution phase S112 will be described according to the communication methods of the client application system 103, the API management system 104, and the API server 105.

[0102] (Asynchronous HTTP - Synchronous HTTP) FIG. 8 is a sequence diagram illustrating an outline of the execution phase S112 when the asynchronous HTTP method is used between the client application system 103 and the API management system 104, and the synchronous HTTP method is used between the API management system 104 and the API server 105.

[0103] First, the client application system 103 transmits a processing request API request (a processing request API request related to asynchronous HTTP) to the API management system 104 (step S411). Note that the processing request API request includes information indicating the communication method related to the processing request API request (information indicating that the asynchronous HTTP method is used as the communication method), information indicating that it is an API processing request, and the client application ID of the client application system 103.

[0104] Based on the processing request API request received from the client application system 103, the API management system 104 determines that the asynchronous HTTP method is to be used as the communication method, converts the processing request API request into a synchronous HTTP API request, and sends this to the API server 105 (step S412).

[0105] The API server 105 starts API processing based on the received synchronous HTTP API request (step S130). Meanwhile, the API management system 104 sends to the client application system 103 a processing acceptance API response that is an API response indicating that acceptance of the processing request API request in step S411 has been completed (step S413). Note that since asynchronous communication is performed between the client application system 103 and the API management system 104, the processing acceptance API response includes an asynchronous processing identifier.

[0106] Thereafter, when the API server 105 completes the API processing, it transmits to the API management system 104 a processing completion API response indicating that the API processing has been completed and including the processing result (step S418).

[0107] On the other hand, after sending the API request in step S411, the client application system 103 repeatedly sends a processing progress confirmation API request to the API management system 104 (steps S415 and S420) at predetermined time intervals (steps S414 and S419). Note that this processing progress confirmation API request contains information indicating that it is an API processing progress confirmation, the client application ID of the client application system 103, and the asynchronous processing identifier in the processing acceptance API response received in step S413.

[0108] When the API management system 104 receives a processing progress confirmation API request from the client application system 103, it checks whether or not a processing completion API response has been received from the API server 105. If a processing completion API response has not been received from the API server 105, the API management system 104 sends a processing incomplete API response to the client application system 103 (step S416). On the other hand, if a processing completion API response has been received from the API server 105, the API management system 104 sends a processing completion API response to the client application system 103 (step S421).

[0109] Note that steps S414, S415, and S416 are repeated until the API management system 104 receives a processing completion API response (polling, step S417).

[0110] (Synchronous HTTP - Asynchronous HTTP) FIG. 9 is a sequence diagram outlining an execution phase when the synchronous HTTP method is used between the client application system 103 and the API management system 104, and the asynchronous HTTP method is used between the API management system 104 and the API server 105. In FIG.

[0111] The client application system 103 transmits a synchronous HTTP API request to the API management system 104 (step S511). The synchronous HTTP API request includes information on the communication method related to the synchronous HTTP API request (information indicating that the request is synchronous HTTP) and the client application ID of the client application system 103.

[0112] Based on the synchronous HTTP API request received from the client application system 103, the API management system 104 determines that the synchronous HTTP method is to be used as the communication method, converts the synchronous HTTP API request into a processing request API request related to asynchronous HTTP, and sends this to the API server 105 (step S513).

[0113] The API server 105 starts processing the corresponding API based on the received processing request API request (step S130). The API server 105 also transmits a processing reception API response indicating that the processing request API request has been received to the API management system 104 (step S514).

[0114] After transmitting the processing request API request in step S513, the API management system 104 repeatedly transmits a processing progress confirmation API request to the API server 105 at predetermined time intervals (steps S515 and S519) (step S516).

[0115] The API server 105 checks whether the API processing is complete when it receives a processing progress confirmation API request from the API management system 104. If the API processing is not complete, the API server 105 sends an incomplete processing API response to the API management system 104 indicating that the processing is not complete (step S517).

[0116] Steps S515, S516, and S517 are repeated as long as an unprocessed API response is sent from API server 105 (polling, step S518).

[0117] When the API server 105 completes API processing and receives a processing progress confirmation API request from the API management system 104 (step S520), it sends a processing completion API response including the API processing result to the API management system 104 (step S521).

[0118] The API management system 104 includes: API Server 105 When the processing completion API response is received from the client application system 103, the client application system 103 transmits an API response including information on the API processing result attached to the processing completion API response to the client application system 103 (step S522).

[0119] (Asynchronous two-way communication method - Synchronous HTTP method) 10 is a sequence diagram illustrating an outline of the execution phase S112 when an asynchronous two-way communication method is used between the client application system 103 and the API management system 104, and a synchronous HTTP method is used between the API management system 104 and the API server 105. Here, it is assumed that the asynchronous two-way communication method is Websocket.

[0120] The client application system 103 transmits a request for establishing a WebSocket connection to the API management system 104 (step S611). This request includes the client application ID of the client application system 103. If a connection has already been established between the client application system 103 and the API management system 104, step S611 may be omitted.

[0121] Next, the client application system 103 transmits an asynchronous WebSocket process request for the API to be executed to the API management system 104 (step S612).

[0122] Based on the received asynchronous WebSocket process request API request, the API management system 104 determines that the synchronous HTTP method is to be used as the communication method, and converts the asynchronous WebSocket process request API request into a synchronous HTTP API request and sends it (step S412).

[0123] Furthermore, the API management system 104 transmits a process reception API response indicating that the reception of the asynchronous WebSocket process request API request has been completed to the client application system 103 (step S613). Note that the process reception API response includes an asynchronous process identifier.

[0124] Meanwhile, the API server 105 starts API processing based on the processing request API request received from the API management system 104 (step S130). When the API processing is completed, the API server 105 transmits a processing completion API response including the API processing result to the API management system 104 (step S418).

[0125] When the API management system 104 receives the API response from the API server 105, it transmits to the client application system 103 a processing completion API response indicating that the API processing has been completed and including the processing result of the API server 105 (step S6 14).

[0126] The client application system 103 waits after receiving the processing acceptance API response in step S613, and when it receives a processing completion API response, it disconnects the WebSocket connection with the API management system 104 established in step S611 (step S615).

[0127] (Synchronous HTTP method - asynchronous two-way communication method) 11 is a sequence diagram illustrating an outline of the execution phase S112 when the synchronous HTTP method is used between the client application system 103 and the API management system 104, and the asynchronous two-way communication method is used between the API management system 104 and the API server 105. Here, it is assumed that the asynchronous two-way communication method is Websocket.

[0128] The client application system 103 transmits a synchronous HTTP API request to the API management system 104 (step S511).

[0129] When the API management system 104 receives a synchronous HTTP API request from the client application system 103, it transmits a request for establishing a WebSocket connection to the API server 105 (step S711). Note that if a connection has already been established between the API management system 104 and the API server 105, step S711 may be omitted.

[0130] Then, when the Websocket connection is established, the API management system 104 converts the received synchronous HTTP API request into an asynchronous Websocket process request API request and transmits this to the API server 105 (step S712).

[0131] When the API server 105 receives an asynchronous WebSocket processing request API request from the API management system 104, it sends a processing acceptance API response to the API management system 104 (step S713) and executes the API processing indicated by the asynchronous WebSocket processing request API request (step S130).

[0132] When the API processing is completed, the API server 105 transmits a processing completion API response including the API processing result to the API management system 104 (step S714).

[0133] When the API management system 104 receives the processing completion API response from the API server 105, it transmits a synchronous HTTP API response indicating that the API processing is completed and including the API processing result attached to the processing completion API response to the client application system 103 (step S522). In addition, the API management system 104 disconnects the WebSocket connection with the API server 105 established in step S711 (step S715). Next, the process performed by the API management system 104 will be described in detail.

[0134] <Execution phase (API request response processing)> 12 is a flow diagram illustrating an example of API request response processing, which is processing performed in the execution phase S112 by the API request response processing unit 212. Note that this API request response processing may be executed in parallel as a plurality of processes.

[0135] The API request response processing unit 212 waits to receive an API request or an API response from the client application communication unit 211 and the API server communication unit 213 (step S1101). The I server 105 and the client application system 103 wait to receive an API request or an API response.

[0136] Then, when the API request response processing unit 212 receives an API request from the client application communication unit 211, it determines the type of the API request based on an API request type determination process described below. On the other hand, when an API response is received from the API server communication unit 213, the API request response processing unit 212 refers to the API definition data T1 and determines the type (step S1102).

[0137] The API request response processing unit 212 determines the next process to be performed by the API management system 104 based on the type of API request or API response determined in step S1102, the API definition data T1, and the API request response management data T3 (step S1103).

[0138] Here, the process in step S1103 will be described using a specific example.

[0139] For example, it is assumed that in step S1101, the API request response processing unit 212 receives an API request from the client application communication unit 211, and in step S1102, determines that the type of the API request is a processing progress check API request related to asynchronous HTTP.

[0140] In this case, the API request response processing unit 212 refers to each record in the API request response management data T3, and identifies a record in which information about the asynchronous processing identifier included in the received API request is set in the asynchronous processing identifier 1012, and identification information of the client application system 103 that sent the API request is set in the client application ID 912. Here, it is assumed that record 1003 in the API request response management data T3 in Fig. 5 is identified.

[0141] The API request response processor 212 determines that the communication between the API management system 104 and the API server 105 is a synchronous HTTP system by referencing the API ID 811 of that record 1003 and the request type 821 of the corresponding record 801 in the API definition data T1. Specifically, the API request response processor determines that the next process is to send a synchronous HTTP API response. Note that information indicating that a synchronous HTTP API response has been received from the API server 105 is set in the current processing status 1013 of that record 1003.

[0142] As shown in the sequence diagram of FIG. 8 (when asynchronous HTTP is used between the client application system 103 and the API management system 104 and synchronous HTTP is used between the API management system 104 and the API server 105), for example, when the API management system 104 has already received an API response from the API server 105, the next process performed by the API management system 104 upon receiving a processing progress check API request from the client application system 103 is to send a processing completion API response including information on the processing result attached to the API response received from the API server 105 to the client application system 103.

[0143] As in the above specific example, in step S1103, the API request response processing unit 212 refers to the API definition data T1 and the API request response management data T3 to determine the process that the API management system 104 should perform next.

[0144] Next, the API request response processing unit 212 It is determined whether the process to be performed next is to send an API request or an API response to the API server 105 or the client application system 103 (step S1104).

[0145] If the next process to be performed is to send an API request or an API response to the API server 105 or the client application system 103, the API request response processing unit 212 executes the process of step S1105. Also, if the next process to be performed is to wait a certain period of time and then send an API request or an API response, the API request response processing unit 212 executes the process of step S1105. In other cases, the API request response processing unit 212 executes the process of step S1106.

[0146] In step S1105, the API request response processing unit 212 generates an API request or API response (after waiting for a certain period of time if necessary), passes it over to the API server communication unit 213 or the client application communication unit 211, and then executes the processing of step S1107.

[0147] An example of a case in which the API request response processing unit 212 needs to wait for a certain period of time is when the communication method between the API management system 104 and the API server 105 is the asynchronous HTTP method and the next process performed by the API management system 104 is to send a processing progress confirmation API request to the API server 105 (see steps S515 and S516).

[0148] It should be noted that in step S1105, when the API request response processing unit 212 delivers a process acceptance API response related to asynchronous communication to the client application communication unit 211 (see step S413), the API request response processing unit 212 issues a new asynchronous process identifier for the client application system 103 and attaches it to the process acceptance API response.

[0149] Next, API request response processing unit 212 determines whether or not a processing completion API response (including the API processing result) has been handed over to client application communication unit 211 in step S1105 (step S1107).

[0150] If a processing completion API response has been handed over (step S1107: YES), the API request response processing unit 212 executes the processing of step S1108, and if a processing completion API response has not been handed over (step S1107: NO), the API request response processing unit 212 executes the processing of step S1106.

[0151] In step S1106, the API request response processing unit 212 updates the API request response management data T3.

[0152] For example, in step S1103, if the API request response processing unit 212 cannot find a record (a record of the next process) related to the API request or API response received in step S1102 in the API request response management data T3, it adds a new record to the API request response management data T3. On the other hand, if the record of the next process is found, the API request response processing unit 212 updates the asynchronous process identifier 1012 and current processing status 1013 of that record as necessary (for example, if asynchronous communication is being performed, the asynchronous process identifier 1012 is updated with the asynchronous process identifier currently acquired by the API management system 104).

[0153] In step S1108, the API request response processing unit 212 updates the API processing time actual data T2 based on the API request response management data T3 and the current time. Also, the API request response processing unit 212 deletes the record of the API request response management data T3 identified in step S1103. This ends the API request response processing. Next, the process performed by the API management system 104 in the development phase S111 will be described.

[0154] <Development phase (communication method proposal process)> FIG. 13 is a flow diagram illustrating an example of a communication method proposal process (corresponding to steps S122 and S123) that is a process performed by the API processing time estimation unit 214 in the development phase S111.

[0155] The API processing time estimation unit 214 receives the expected request and the constraint conditions from the UI function unit 215 (step S In this embodiment, the values ​​and times included in the expected request are given in the form of a range of values ​​or times by specifying maximum and minimum values.

[0156] The API processing time estimation unit 214 estimates the API processing time based on the expected API request received in step S1201 (step S1202).

[0157] For example, the API processing time estimation unit 214 refers to each record of the API processing time actual data T2 to identify a record in which information corresponding to the expected request is set in the client application ID 912, API ID 811, and actual value 915, and calculates the maximum value tmax and minimum value tmin of the API processing time based on the API processing start time 913 and API processing end time 914 of that record (step S1202). In this embodiment, the value or time of the expected request is given as a range, so the calculated API processing time is a numerical range.

[0158] Note that the API processing time estimation unit 214 may create a trained model that learns the correlations of each data in the API processing time actual data T2 (the relationship between the API and each feature (input value) and the processing time (output value)) using machine learning such as a gradient boosting decision tree or a neural network, instead of referring to the API processing time actual data T2, and estimate the API processing time by inputting the expected request contents of the API into this trained model.

[0159] The API processing time estimation unit 214 determines whether tmax calculated in step S1201 is longer than the timeout time of the HTTP connection of the client application system 103 (step S1203). If tmax is longer than the timeout time (step S1203: YES), the API processing time estimation unit 214 executes the process of step S1204, and if tmax is not longer than the timeout time (step S1203: NO), the API processing time estimation unit 214 executes the process of step S1206.

[0160] In step S1205, the API processing time estimation unit 214 calculates the current maximum execution waiting time t of an API request from the maximum number of HTTP connections and the maximum API request frequency (which are assumed to be preset) that can be simultaneously held from the client application system 103 to a single host, and tmax. wait Calculate where t wait The calculation of is carried out using, for example, queueing theory.

[0161] The API processing time estimation unit 214 calculates t wait However, the client application developer 3 accepts The maximum time that an API request can wait for execution. * wait It is determined whether the time is longer than (step S1206).

[0162] t wait t * wait If the communication method is longer than the asynchronous communication method (step S1206: YES), the API processing time estimation unit 214 creates communication method proposal information recommending the asynchronous communication method to the developer 3 of the client application (step S1204). This ends the communication method proposal process.

[0163] On the other hand, t wait t * wait If the time is not longer than the synchronous communication method (step S1206: NO), the API processing time estimation unit 214 creates communication method proposal information recommending the synchronous communication method to the client application developer 3 (step S1207). This ends the communication method proposal process.

[0164] Note that in steps S1203, S1205, and S1206, the API processing time estimation unit 214 created communication method proposal information based on constraint conditions such as the timeout time of the HTTP connection in the client application system 103 and tmax calculated in step S1202. However, communication method proposal information may also be created using other parameters. For example, the API processing time estimation unit 214 may receive an input of a threshold value for tmax from the developer 3 of the client application, and create communication method proposal information that recommends an asynchronous communication method if tmax is greater than the threshold value, or create communication method proposal information that recommends a synchronous communication method if tmax is not greater than the threshold value. Subsequently, the details of the API request type determination process described in the API request / response process will be described.

[0165] <API Request Type Determination Process> FIG. 14 is a flowchart showing an example of an API request type determination process for determining the type of an API request from the client application system 103. Here, it is assumed that the communication method between the client application system 103 and the API management system 104 is Websocket, which is an asynchronous bidirectional communication method, but the same applies to other communication methods.

[0166] First, when the API request / response processing unit 212 receives an API request from the client application communication unit 211, it determines whether the communication method is Websocket based on the format of the API request (step S1301).

[0167] If the communication method is Websocket (step S1301: YES), the API request / response processing unit 212 determines that the API request is an asynchronous Websocket processing request API request (step S1302), and the API request type determination process ends. On the other hand, if the communication method is not Websocket (step S1301: NO), the API request / response processing unit 212 executes the process of step S1303.

[0168] In step S1303, the API request response processing unit 212 analyzes the received API request and determines whether the API request is an asynchronous HTTP processing request API request. For example, the API request response processing unit 212 determines whether the received API request satisfies the conditions that the path of the request destination URL ends with " / async-jobs" and the method is POST.

[0169] If the API request is an asynchronous HTTP processing request API request (step S1303: YES), the API request response processing unit 212 determines that the received API request is an asynchronous HTTP processing request API request ( Step S1304), if the API request is not an asynchronous HTTP processing request API request (step S1303: NO), API request response processing unit 212 executes the process of step S1305.

[0170] In step S1305, the API request response processing unit 212 analyzes the received API request and determines whether the API request is a processing progress check API request related to the asynchronous HTTP method. For example, the API request response processing unit 212 determines whether the conditions that the end of the path of the request destination URL of the received API request is " / async-jobs / {async-job-id}" and the method is GET are satisfied. Here, "async-job-id" is any number or character string that represents an asynchronous processing identifier in the API management system 104.

[0171] If the API request is a processing progress confirmation API request related to the asynchronous HTTP method (step S1305: YES), the API request response processing unit 212 determines that the received API request is a processing progress confirmation API request of the asynchronous HTTP method (step S1306). If the API request is not a processing progress confirmation API request related to the asynchronous HTTP method (step S1305: NO), the API request response processing unit 212 determines that the received API request is a synchronous HTTP API request (step S1307), and the API request type determination process ends.

[0172] In this embodiment, as a method for the API request response processing unit 212 to determine whether the API request type from the client application system 103 is the synchronous HTTP method or the asynchronous HTTP method, a method of using the path and method of the request destination URL is exemplified. However, other parameters may be used to determine the synchronous or asynchronous method. For example, the API request response processing unit 212 may use the header, query string, or payload to determine the synchronous or asynchronous method. Also, in the processing request API request 1501, processing acceptance API response 1502, processing progress confirmation API request 1503, processing incomplete API response 1504, and processing complete API response 1505, although the asynchronous processing identifier or processing progress information is set in the payload, each information may be set in other fields (for example, the header). Also, in each API request, although information for uniquely identifying the client application system 103 is set in the header, this information may be set using other methods (for example, the query string).

[0173] <Example of Data Structure of API Request and API Response> Next, specific examples of API requests and API responses transmitted and received between the client application system 103 and the API management system 104 will be described.

[0174] 15 is a diagram showing an example of an API request and an API response when communication between the client application system 103 and the API management system 104 is performed in synchronous HTTP mode. Note that these API requests and API responses are requests and responses corresponding to the APIs indicated by records 801 and 802 in the API definition data T1 shown in FIG.

[0175] (Synchronous HTTP API request) First, a synchronous HTTP API request 1401 includes a POST 14011 as a method, an Authorization field 14012 as a header, and a payload 14013. The POST 14011 is set with "XX.com" which is the host name of the API management system 104. The Authorization field 14012 is set with the ID (client application ID) of the client application system 103. The Authorization field 14012 may be used to authenticate an API request from the client application system 103.

[0176] (Synchronous HTTP API response) The synchronous HTTP API response 1402 has a payload 14021. This payload 14021 contains the processing result “result” from the API server 105.

[0177] 16 is a diagram showing an example of an API request and an API response when communication between the client application system 103 and the API management system 104 is performed in asynchronous HTTP mode. Note that these API requests and API responses are requests and responses corresponding to the API indicated by record 803 in the API definition data T1.

[0178] (Asynchronous HTTP processing request API request) A process request API request 1501 relating to asynchronous HTTP includes a POST 15011 method (in which "XX.com" and "async-jobs" indicating asynchronous communication are set) and an Authorization field 15012 which is a header.

[0179] (Asynchronous HTTP process reception API response) The process acceptance API response 1502 includes an async-job-id as an asynchronous process identifier 15021 in the API management system 104 .

[0180] (Asynchronous HTTP processing progress confirmation API request) The processing progress confirmation API request 1503 includes a method GET 15031 (set to "XX.com") and a header Authorization field 15032. The value of async-job-id included in the processing acceptance API response 1502 is added to the end of a path 15033 of the request destination URL of GET 15031.

[0181] (Asynchronous HTTP processing incomplete API response, processing complete API response) FIG. 17 shows an example of a processing uncompleted API response and a processing completed API response related to asynchronous HTTP.

[0182] Payloads 15041, 15051 of the uncompleted processing API response 1504 and the completed processing API response 1505 respectively contain status fields 15042, 15052 indicating the progress of processing (completed and incomplete processing). In addition, payload 15051 of the completed processing API response 1505 contains a processing result 15053 from the API server 105.

[0183] 18 is a diagram showing an example of an API request and an API response when communication between the client application system 103 and the API management system 104 is an asynchronous two-way communication method. The asynchronous two-way communication method is Websocket. Also, these API requests and API responses are assumed to be API requests or responses related to record 803 in the API definition data T1 shown in FIG. 3, made by the client application system 103.

[0184] (Processing request API request) First, a processing request API request 1601 shown in the figure is The API request 1601 is an asynchronous Websocket API request from the application server 103 to the API management system 104. load The response 16011 includes an action field 16012 which clearly indicates that a process is being requested, and a params field 16013 which indicates the request parameters.

[0185] The client application system 103 receives a processing request. API Before sending the request 1601, a WebSocket connection is established by setting an endpoint of the API management system 104 (for example, "wss: / / XX.com / api-BB / bb?authorization=···"). Here, the query parameter "authorization" includes the ID (client application ID) of the client application system 103. Note that the authorization parameter may be used for the purpose of authenticating an API request from the client application system 103.

[0186] (Processing reception API response, Processing completion API response) Next, a processing acceptance API response 1602 and a processing completion API response 1603 are respectively received from the API management system 104 in response to a processing request. APIThis is a response to a request 1601. The processing acceptance API response 1602 and the processing completion API response 1603 contain status fields 16022 and 16032 indicating the processing progress in payloads 16021 and 16031. The processing completion API response 1603 also contains a processing result 16033 from the API server 105.

[0187] In addition, in each of the API requests and API responses described above, JSON (JavaScript Object Notation) is used as the payload format, but other formats may also be adopted.

[0188] <Synchronous / asynchronous communication method proposal screen> 19 is a diagram showing an example of a synchronous / asynchronous communication method proposal screen 1701 for a client application developer 3, provided by the API management system 104. This screen is output, for example, by the UI function unit 215 to the output device 315 of the client application developer terminal 201, but may also be output to another information processing device.

[0189] The synchronous / asynchronous communication method proposal screen 1701 includes an input area 1711 for accepting input from a client application developer 3, a result display area 1712 for displaying communication method proposal information generated by the communication method proposal process, and a reference display area 1713 for displaying reference information.

[0190] An input area 1711 accepts input of expected requests (type of API request, API processing content, etc.) and constraints (timeout period, maximum execution waiting time, etc.) for each request method of the endpoint of each API.

[0191] The result display area 1712 displays the API processing time calculated based on the expected request input in the input area 1711 and the communication method proposal information. The input area 1711 and the result display area 1712 enable the client application developer 3 to easily identify a communication method suitable for the client application system 103.

[0192] In the reference display area 1713, definition data (format) related to the API, such as an API endpoint, a method, or other parameters, is displayed. This makes it easier for the client application developer 3 to input an expected request in the input area 1711.

[0193] [Example 2] In the first embodiment, in the execution phase S112, the client application system 103 communicates with the API management system 104 using either the synchronous or asynchronous communication method determined in the development phase S111.

[0194] In contrast to this, in this embodiment, the client application system 103 switches between synchronous and asynchronous communication methods for each API request from the client application system 103 in the execution phase S112.

[0195] The communication method in which switching is performed as in this embodiment will hereinafter be referred to as a "synchronous / asynchronous hybrid method." In particular, when HTTP is used as the communication protocol, it will be referred to as a "synchronous / asynchronous hybrid HTTP method."

[0196] The following describes the processing of the API management system 104 when using the synchronous / asynchronous hybrid HTTP method, focusing on the differences from Example 1. Note that in this example, the criterion for switching between synchronous and asynchronous is that if the estimated value of the API processing time is greater than a certain threshold, the method switches to the asynchronous method, and if it is less than a certain threshold, the method switches to the synchronous method, but other criteria may be used.

[0197] 20 is a sequence diagram for explaining an example of processing (processing of steps S126 to S134) in the execution phase S112 according to the embodiment 2 when the synchronous / asynchronous hybrid HTTP method is used between the client application system 103 and the API management system 104. Note that the communication processing between the API management system 104 and the API server 105 is the same as that in the embodiment 1, and therefore will not be described.

[0198] First, the client application system 103 transmits an API request (synchronous / asynchronous hybrid HTTP API request) to the API management system 104. Here, the synchronous / asynchronous hybrid HTTP API request includes information indicating that a synchronous or asynchronous hybrid HTTP method is to be used as one of a number of selectable communication methods, and information on the criterion for switching between synchronous and asynchronous (in this embodiment, information on the API processing time that is the threshold for switching the communication method) (step S1811).

[0199] 21 is a diagram showing an example of a synchronous / asynchronous hybrid HTTP API request 1901 transmitted to the API management system 104. Note that this API request is assumed to be a request made by the client application system 103 regarding the API indicated in record 803 of the API definition data T1 shown in FIG.

[0200] The synchronous / asynchronous hybrid HTTP API request 1901 includes POST 19011 as a method, and " / hybrid-async-jobs" is set in the path of POST 19011, indicating that the synchronous / asynchronous hybrid HTTP method is used. Furthermore, information indicating that the API processing time that is the threshold for switching the communication method is "10 seconds" is set in the X-threshold-time field 19012 of the header of the synchronous / asynchronous hybrid HTTP API request 1901. Note that the information indicating that the synchronous / asynchronous hybrid HTTP method is used in the synchronous / asynchronous hybrid HTTP API request 1901 may be set in the header, query string, or payload, instead of the method. Furthermore, the threshold for switching the communication method may be set in the query string or payload, instead of the header.

[0201] Next, as shown in step S1812 of FIG. 20, the API management system 104, like the first embodiment, The API processing time is estimated based on the constraints.

[0202] The API management system 104 determines whether the estimated value of the API processing time estimated in step S1812 is longer than a threshold value specified in the API request (step S1813).

[0203] If the estimated API processing time is longer than the threshold specified in the API request (step S1812: YES), the API management system 104 executes asynchronous processing S1801, and if the estimated API processing time is not longer than the threshold specified in the API request (step S1812: NO), the API management system 104 executes synchronous processing S1802.

[0204] In asynchronous processing S1801, the API management system 104 performs communication between the client application system 103 and the API management system 104 in the asynchronous HTTP format, similar to the sequence shown in steps S129 to S139 in the first embodiment.

[0205] In the synchronization process S1802, the API management system 104 performs communication between the client application system 103 and the API management system 104 in the synchronous HTTP format, similar to the sequence shown in steps S513 to S522 in the first embodiment.

[0206] In steps S1801 and S1802, the formats of the API request and API response transmitted and received between the client application system 103 and the API management system 104 may be the same as those in the first embodiment.

[0207] In this way, according to the API management system 104 of this embodiment, it is possible to efficiently process each API process, particularly when, for example, a plurality of API requests in which the processing time for each API differs significantly are received from the same client application system 103. For example, even if the client application developer 3 receives a communication method proposal (communication method proposal information) from the API management system 104, it is difficult to determine whether a synchronous or asynchronous communication method is optimal in relation to the client application system 103 that is the sender of the API request, but it is possible to determine a communication method that efficiently processes each API process.

[0208] The synchronous / asynchronous hybrid HTTP method by the API management system 104 and the client application system 103 in this embodiment may be combined with the synchronous HTTP method, the asynchronous HTTP method, or the asynchronous two-way communication method described in embodiment 1. In this case, the API management system 104 may enable the client application developer 3 (client application developer terminal 201) to select the communication method between the client application system 103 and the API management system 104 in the development phase S111 from the synchronous / asynchronous hybrid HTTP method, the synchronous HTTP method, the asynchronous HTTP method, or the asynchronous two-way communication method.

[0209] As described in each of the above examples, the API management system 104 of this embodiment estimates the time required for the API server 105 to execute an API for an API request (API processing time) by analyzing the API processing content indicated in the API request (expected request) received from the client application user terminal 206, etc., and determines, based on the estimated API processing time, whether the communication method to be used for sending the API request that causes the API server 105 to execute the API will be synchronous communication or asynchronous communication.

[0210] That is, the API management system 104 of each embodiment performs the following operations according to the processing time of the API to be executed. The client application developer 3 can communicate with the API server 105 in the communication method selected by the client application developer 3. For example, the client application developer 3 can determine a communication method for efficiently executing an API by simply providing the API management system 104 with an expected request for the API that the client application developer 3 wants to execute. In this way, according to the API management system 104 of each embodiment, it is possible to determine a communication method that can efficiently execute an API depending on the processing content of the API. For example, a client application developer 3 can select an appropriate one of synchronous and asynchronous communication methods and implement API call processing in the client application system 103. This makes it possible to optimize the development burden on the client application developer 3 and the resource consumption of the client application system 103.

[0211] Furthermore, the API processing time estimation unit 214 of the API management system 104 in each embodiment estimates the API processing time based on the API definition data T1 (information that stores the relationship between parameters (feature amounts, etc.) that characterize the processing content of the API and the processing time) and the API processing content identified by the information indicated by the expected request.

[0212] By using the API definition data T1, the API processing time can be estimated with high accuracy according to the processing content of the API.

[0213] In addition, the API processing time estimation unit 214 of the API management system 104 in each embodiment determines whether the API processing time is greater than a predetermined threshold (e.g., a maximum execution wait time), and if the API processing time is greater than the threshold, determines the communication method to be an asynchronous communication method, and if the API processing time is equal to or less than the threshold, determines the communication method to be a synchronous communication method.

[0214] In this way, by changing the asynchronous or synchronous communication method depending on the length of API processing time, the processing time required for executing the API can be shortened.

[0215] Furthermore, the API processing time estimation unit 214 of the API management system 104 in each embodiment estimates the API processing time by analyzing communication method (protocol) information and processing type information (method, etc.) specified by the expected request.

[0216] This allows the API processing time to be estimated with high accuracy based on the content of the request.

[0217] In addition, the API management system 104 in each embodiment further includes a UI function unit 215 that receives an expected request including information about the timeout time that the client application system 103 can wait for regarding API execution, and the API processing time estimation unit 214 determines whether the API processing time is longer than the timeout time, and if the API processing time is longer than the timeout time, determines the communication method to be an asynchronous communication method.

[0218] This makes it possible to determine a communication method that corresponds to the communication specifications of the client application system 103.

[0219] In addition, the API management system 104 of the second embodiment further includes a UI function unit 215 that receives a synchronous / asynchronous hybrid HTTP API request indicating multiple selectable communication methods from the client application system 103, and the API processing time estimation unit 214 determines a communication method with the client application system 103 for the API related to the synchronous / asynchronous hybrid HTTP API request from the multiple communication methods based on the API processing time estimated based on the received synchronous / asynchronous hybrid HTTP API request.

[0220] In this way, by specifying the communication method option in the API request, The system 104 is a client application system 103. and It is possible to determine the appropriate communication method according to the processing content of the API.

[0221] Moreover, the API management system 104 in each embodiment further includes a UI function unit 215 that displays information on the determined communication method (synchronous / asynchronous communication method proposal screen 1701).

[0222] This allows the client application developer 3 or the like to confirm the communication method (protocol) that should be implemented for the API used in developing the client application.

[0223] Moreover, the API management system 104 in each embodiment further includes a UI function unit 215 that displays an input screen (synchronous / asynchronous communication method proposal screen 1701) that accepts input of an expected request and the processing content of the API indicated by the expected request from the user.

[0224] This allows the developer 3 or the like of the client application to set conditions regarding various APIs used in developing the client application and have the API management system 104 determine the communication method (protocol) to be implemented.

[0225] The present invention is not limited to the above-described embodiment, and includes various modified examples. The above-described embodiment has been described in detail for a better understanding of the present invention, and the present invention is not necessarily limited to the embodiment having all of the configurations described.

[0226] For example, some of the functions provided in each device in each embodiment may be provided in another device, and functions provided in another device may be provided in the same device.

[0227] Furthermore, in each embodiment, examples of synchronous or asynchronous HTTP and synchronous bidirectional WebSocket are described as the communication method, but the present invention can be similarly applied to any other synchronous or asynchronous communication method. [Explanation of symbols]

[0228] 1 API development execution system, 105 API server, 103 client application system, 104 API management system, 212 API request response processing unit, 214 API processing time estimation unit

Claims

1. A processor and a memory, a UI function unit that receives an API execution request indicating a plurality of selectable communication methods including synchronous communication and asynchronous communication from another information processing device; an API processing time estimation unit that estimates a required time required for a specific information processing device to execute the API in response to the received execution request for the API by analyzing a processing content of the API indicated by the information of the execution request for the API, and determines a communication method with the other information processing device from the plurality of communication methods based on the estimated time, the communication method being used for transmitting a request to cause the specific information processing device to execute the API; API management system.

2. The API processing time estimation unit estimates the required time based on information storing a relationship between a parameter characterizing a processing content of an API and a required time related to the API, and based on a processing content of the API specified by information of the received execution request of the API. The API management system of claim 1 .

3. the API processing time estimation unit determines whether the estimated required time is greater than a predetermined threshold, and if it determines that the estimated required time is greater than the predetermined threshold, determines that the communication method is an asynchronous communication method, and if it determines that the estimated required time is equal to or less than the predetermined threshold, determines that the communication method is a synchronous communication method. The API management system of claim 1 .

4. The API processing time estimation unit estimates the required time by analyzing information on a communication method and information on a type of processing specified by information on the API execution request. The API management system of claim 1 .

5. The UI function unit receives information on a request to execute an API, the information including information on a timeout period during which a terminal requesting execution of the API can wait for execution of the API; the API processing time estimation unit determines whether the estimated required time is longer than the timeout time, and when it determines that the estimated required time is longer than the timeout time, determines that the communication method is an asynchronous communication method. The API management system of claim 1 .

6. The UI function unit displays information of the determined communication method. The API management system of claim 1 .

7. the UI function unit displays an input screen for receiving input of API processing content in the API execution request information from a user; The API management system of claim 1 .

8. An information processing device, A UI function process for receiving an API execution request indicating a plurality of selectable communication methods including synchronous communication and asynchronous communication from another information processing device; an API processing time estimation process for estimating a required time required for a specific information processing device to execute the API in response to the received execution request for the API by analyzing a processing content of the API indicated by the information of the execution request for the API, and determining a communication method with the other information processing device from the multiple communication methods based on the estimated time, the communication method being used for transmitting a request to cause the specific information processing device to execute the API; API management method.

Citation Information

Patent Citations

  • Method for modifying surface quality of cast product

    JP1998005977A

  • Method for producing oxaloacetic acid or oxaloacetic derivative

    JP2006000091A

  • Distributed processing system, distributed processing method and program

    JP2011141587A

  • API providing device and API providing method

    JP2016151780A

  • Service platform architecture

    US20140280703A1