KR102256736B1 - Api management system and method thereof - Google Patents

Api management system and method thereof Download PDF

Info

Publication number
KR102256736B1
KR102256736B1 KR1020210018050A KR20210018050A KR102256736B1 KR 102256736 B1 KR102256736 B1 KR 102256736B1 KR 1020210018050 A KR1020210018050 A KR 1020210018050A KR 20210018050 A KR20210018050 A KR 20210018050A KR 102256736 B1 KR102256736 B1 KR 102256736B1
Authority
KR
South Korea
Prior art keywords
api
call request
unit
api call
message
Prior art date
Application number
KR1020210018050A
Other languages
Korean (ko)
Inventor
강태욱
김고은
Original Assignee
비엠텍시스템 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 비엠텍시스템 주식회사 filed Critical 비엠텍시스템 주식회사
Application granted granted Critical
Publication of KR102256736B1 publication Critical patent/KR102256736B1/en

Links

Images

Classifications

    • H04L67/28
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

According to an embodiment disclosed in the present document, an API management system comprises: an API gateway which manages API call requests received from a client; and a conversion relay server which assigns a transaction ID to each API call request delivered from the API gateway and communicates with an external system to process the API call requests. The API gateway comprises: a request processing unit for processing API call requests from the client through a non-blocking method; a filter unit for controlling a frequency of the API call requests based on logic set by a user; a failure propagation prevention unit for stopping delivery of the API call requests to a system in which a failure occurs among external systems; and a load balancing unit for distributing the API call requests based on a preset switching process. The conversion relay server comprises: a routing unit that provides a service related to the external systems as an HTTP/JSON-based API; a monitoring unit for monitoring a state of the API; a custom conversion unit defining a message conversion rule for the API; and a message conversion unit which converts a message included in the API according to the message conversion rule.

Description

API 관리 시스템 및 그에 관한 방법{API MANAGEMENT SYSTEM AND METHOD THEREOF}API management system and method related thereto {API MANAGEMENT SYSTEM AND METHOD THEREOF}

본 문서에 개시된 실시예들은 API 관리 시스템 및 그에 관한 방법에 관한 것이다.The embodiments disclosed in this document relate to an API management system and a method thereof.

메인 프레임 시대에 유닉스 시스템으로 내려오면서 시스템들은 업무 단위로 분리되기 시작하였다. 이처럼, 업무 단위로 나누어진 시스템 사이에 통신이 필요하게 되었고, 시스템이 거대화되어 가면서, 시스템 간에 직접 P2P(Peer to Peer)로 통신하는 구조는 한계에 도달하였다.In the mainframe era, as Unix systems were brought down, systems began to be divided into business units. As such, communication between systems divided into business units has become necessary, and as the system becomes larger, the structure of direct P2P (Peer to Peer) communication between systems has reached its limit.

이러한 시스템 간의 통신 문제를 해결하기 위해 EAI(Enterprise Application Integration)와 SOA(Service Oriented Architecture) 등의 솔루션이 고안되었다. 그러나, EAI는 표준화되지 않은 이기종 시스템 간의 연동이 가능하지만 데이터가 한 곳에 집중됨으로써 발생하는 병목 현상과 필요 이상의 개발 비용이 발생하고 벤더 독점적으로 개발되는 문제가 있었다. 또한, EAI에는 고객사에서 내부 데이터를 외부로 공개 및 제공하고자 할 때, 공개하고자 하는 서비스 별로 별도의 연계 어댑터(adaptor)를 제작하여야 했다. 이는 별도의 개발 리소스가 필요했으며 기존 시스템의 수정이 필요하여 서버 다운타임이 발생할 수 밖에 없었다. 한편, SOA는 HTTP/XML로 통신하기 때문에 복잡한 XML 변환시 컴퓨팅 파워를 많이 소모하여 성능 저하가 발생하는 문제가 있었다.Solutions such as Enterprise Application Integration (EAI) and Service Oriented Architecture (SOA) have been devised to solve the communication problem between these systems. However, EAI is capable of interworking between heterogeneous systems that are not standardized, but there is a problem in that data is concentrated in one place, resulting in bottlenecks and development costs that are more than necessary, and is developed exclusively by vendors. In addition, in EAI, when a customer wanted to disclose and provide internal data to the outside, a separate connection adapter had to be produced for each service to be disclosed. This required separate development resources and required modification of the existing system, resulting in server downtime. On the other hand, since SOA communicates with HTTP/XML, there is a problem that performance degradation occurs due to consuming a lot of computing power when converting complex XML.

이러한 문제점들을 해결하기 위해 요즈음에는 내부 시스템을 통합하고 외부로 서비스를 제공하기 위한 API 게이트웨이가 각광받고 있다. 그러나, API 게이트웨이는 라우팅, 인증, 트래픽 제어 등 여러 기능이 있지만 메시지 타입을 변환하거나 메시지 포맷을 변환하는 기능이 없기 때문에, 각 레거시(legacy)에서는 API 게이트웨이를 사용하기 위해 요건에 맞도록 프로세스 및 시스템을 작성해야 했다. 또한, 이러한 프로세스 및 시스템은 메시지의 요건이 변경될 때마다 해당 소스 부분을 수정하여 배포하여야 하기 때문에 시스템의 재구동이 불가피하고, 메시지 변환 시스템을 사용하는 모든 API가 영향을 받아 재구동시에는 구동이 완료되기 전까지 서비스 이용을 할 수 없는 한계가 있었다.To solve these problems, an API gateway for integrating internal systems and providing services to the outside is in the spotlight these days. However, API gateway has several functions such as routing, authentication, traffic control, etc., but it does not have a function to convert message type or message format. Therefore, in each legacy, in order to use the API gateway, the process and system Had to write. In addition, since such processes and systems have to modify and distribute the source part whenever message requirements change, the system is inevitable, and all APIs that use the message conversion system are affected, so when restarting, operation is not possible. There was a limit to not being able to use the service until it was completed.

본 문서에 개시된 실시예들은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있는 API 관리 시스템 및 그에 관한 방법을 제공하는 것을 일 목적으로 한다.The embodiments disclosed in this document are intended to provide an API management system capable of providing smooth service and a method related thereto, since there is no need to develop a separate resource in the customer's system and thus downtime provided to users does not occur. do.

또한, 본 문서에 개시된 실시예들은 각 API 호출마다 부여된 트랜잭션 ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능한 API 관리 시스템 및 그에 관한 방법을 제공하는 것을 일 목적으로 한다.In addition, the embodiments disclosed in this document provide an API management system and a method related to the API management system that can be quickly responded by making it possible to easily check where an error has occurred in the case of an error within the system through the transaction ID assigned to each API call. To provide is for one purpose.

또한, 본 문서에 개시된 실시예들은 API 호출 요청부터 응답까지 하나의 흐름으로 관리할 수 있고, 원격 시스템에서 내부 또는 외부로 API를 제공하기 위한 리소스를 용이하게 추가 가능하여 원격 시스템의 관리자가 내부에서 제공하는 API의 라이프 사이클을 보다 편리하게 관리할 수 있는 API 관리 시스템 및 그에 관한 방법을 제공하는 것을 일 목적으로 한다.In addition, the embodiments disclosed in this document can manage from an API call request to a response in a single flow, and it is possible to easily add resources for providing an API from the remote system to the inside or outside, so that the administrator of the remote system can Its purpose is to provide an API management system that can more conveniently manage the life cycle of the provided API and a method related thereto.

또한, 본 문서에 개시된 실시예들은 하나의 흐름으로 진행하는 API 호출 요청을 통계적으로 확인하고 연계된 시스템 내 장애 상황에 대해 시각적으로 감시할 수 있어, 운영 중인 원격 시스템에 대한 신속한 장애 감지가 가능하고, 이를 확인하기 위한 불필요한 리소스 낭비를 저감할 수 있는 API 관리 시스템 및 그에 관한 방법을 제공하는 것을 일 목적으로 한다.In addition, the embodiments disclosed in this document can statistically check the API call request proceeding in a single flow and visually monitor the failure situation in the linked system, thereby enabling rapid failure detection for the operating remote system. It is an object of the present invention to provide an API management system and a method related thereto that can reduce unnecessary waste of resources for checking this.

본 문서에 개시된 실시예들의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the embodiments disclosed in this document are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following descriptions.

본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 클라이언트로부터 수신되는 API 호출 요청을 관리하는 API 게이트웨이 및 상기 API 게이트웨이로부터 전달되는 상기 API 호출 요청 별로 트랜잭션 ID를 부여하고, 외부 시스템과 통신하여 상기 API 호출 요청을 처리하는 변환 중개 서버를 포함하는 시스템으로서, 상기 API 게이트웨이는, 논블로킹(non-blocking) 방식을 통해 상기 클라이언트로부터의 API 호출 요청에 대한 처리를 수행하는 요청 처리부, 사용자에 의해 설정된 로직에 기반하여 상기 API 호출 요청의 빈도를 제어하는 필터부, 상기 외부 시스템 중 장애가 발생한 시스템에 대하여 상기 API 호출 요청의 전달을 중지하는 장애 전파 방지부 및 기설정된 스위칭 프로세스에 기반하여 상기 API 호출 요청을 분배하는 로드 밸런싱부를 포함하고, 상기 변환 중개 서버는, 상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반의 API로 제공하는 라우팅부, 상기 API의 상태를 모니터링하는 모니터링부, 상기 API에 대한 메시지 변환 규칙을 정의하는 커스텀 변환부 및 상기 메시지 변환 규칙에 따라 상기 API에 포함된 메시지를 변환하는 메시지 변환부를 포함할 수 있다.The API management system according to an embodiment disclosed in this document provides an API gateway that manages an API call request received from a client and a transaction ID for each API call request transmitted from the API gateway, and communicates with an external system to provide the API. A system including a conversion mediation server that processes a call request, wherein the API gateway includes a request processing unit that processes an API call request from the client through a non-blocking method, and a logic set by a user. Based on the filter unit controlling the frequency of the API call request, a failure propagation prevention unit stopping delivery of the API call request to a system in which a failure occurs among the external systems, and the API call request based on a preset switching process. Including a load balancing unit to distribute, the conversion mediation server, a routing unit that provides a service related to the external system through an HTTP/JSON-based API, a monitoring unit that monitors the state of the API, and a message conversion rule for the API And a message conversion unit for converting a message included in the API according to the message conversion rule and a custom conversion unit defining a message.

일 실시예에 따라, 상기 요청 처리부는 이벤트 루프를 통해 비동기적 방식으로 상기 API 호출 요청에 대한 처리를 수행할 수 있다.According to an embodiment, the request processing unit may process the API call request in an asynchronous manner through an event loop.

일 실시예에 따라, 상기 필터부는 상기 로직에 따라 상기 API의 라우트, 서비스 및 사용자 별로 상기 클라이언트의 접근 허용 여부에 관한 인증을 수행할 수 있다.According to an embodiment, the filter unit may perform authentication regarding whether to allow access of the client for each route, service, and user of the API according to the logic.

일 실시예에 따라, 상기 필터부는 상기 로직에 따라 상기 API의 최대 요청 가능 횟수를 시간을 기준으로 결정할 수 있다.According to an embodiment, the filter unit may determine a maximum number of requests for the API based on time according to the logic.

일 실시예에 따라, 상기 장애 전파 방지부는 상기 외부 시스템 중 응답 오류가 임계치 이상 발생하는 시스템에 대하여 상기 API 호출 요청의 전달을 중지할 수 있다.According to an embodiment, the failure propagation prevention unit may stop delivery of the API call request to a system in which a response error exceeds a threshold value among the external systems.

일 실시예에 따라, 상기 장애 전파 방지부는 상기 API 호출 요청의 전달이 중지되는 동안 사전에 설정된 값에 기반하여 대체 응답을 제공할 수 있다.According to an embodiment, the failure propagation prevention unit may provide an alternative response based on a preset value while delivery of the API call request is stopped.

일 실시예에 따라, 상기 장애 전파 방지부는 상기 장애 시스템에 상기 API 호출 요청의 전달이 중지된 경우, 기설정된 시간 이후에 상기 장애 시스템으로 API 연결 요청을 전송하고, 상기 장애 시스템이 다시 정상 동작할 경우 별도의 조작없이 상기 API 호출 요청을 재개할 수 있다.According to an embodiment, when the delivery of the API call request to the faulty system is stopped, the fault propagation prevention unit transmits an API connection request to the faulty system after a preset time, and the faulty system resumes normal operation. In this case, the API call request can be resumed without any separate manipulation.

일 실시예에 따라, 상기 로드 밸런싱부는 상기 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 상기 API 호출 요청을 분배할 수 있다.According to an embodiment, the load balancer may distribute the API call request according to a preset value in units of groups of services registered in the switching process.

일 실시예에 따라, 상기 라우팅부는 상기 외부 시스템과 연계 가능한 복수의 통신 프로토콜을 제공할 수 있다.According to an embodiment, the routing unit may provide a plurality of communication protocols linkable with the external system.

일 실시예에 따라, 상기 모니터링부는 상기 API를 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 할 수 있다.According to an embodiment, the monitoring unit may log the API for each preset period to enable tracking of a time required for a message processing process and an error.

일 실시예에 따라, 상기 커스텀 변환부는 상기 메시지 변환 규칙을 스크립트(script) 형태로 정의할 수 있다.According to an embodiment, the custom conversion unit may define the message conversion rule in the form of a script.

일 실시예에 따라, 상기 메시지 변환부는 상기 API의 헤더 및 바디 중 적어도 하나에 있는 메시지를 변환할 수 있다.According to an embodiment, the message conversion unit may convert a message in at least one of a header and a body of the API.

일 실시예에 따라, 상기 메시지 변환부는 상기 메시지마다 기설정된 변환을 수행할 수 있다.According to an embodiment, the message conversion unit may perform a preset conversion for each message.

일 실시예에 따라, 상기 필터부는 상기 API의 라우트, 서비스 및 사용자에 기초하여 인증을 수행하는 경우, 상기 클라이언트로부터의 사용 신청에 대하여 API 별로 인증키를 발급할 수 있다.According to an embodiment, when authentication is performed based on a route, service, and user of the API, the filter unit may issue an authentication key for each API in response to a request for use from the client.

본 문서에 개시된 일 실시예에 따른 API 관리 방법은 클라이언트로부터 수신되는 API 호출 요청을 관리하는 API 게이트웨이 및 상기 API 게이트웨이로부터 전달되는 상기 API 호출 요청 별로 트랜잭션 ID를 부여하고, 외부 시스템과 통신하여 상기 API 호출 요청을 처리하는 변환 중개 서버를 포함하는 시스템을 이용한 API 관리 방법으로서, 논블로킹 방식을 통해 상기 클라이언트로부터의 API 호출 요청에 대한 처리를 수행하는 단계, 사용자에 의해 설정된 로직에 기반하여 상기 API 호출 요청의 빈도를 제어하는 단계, 상기 외부 시스템 중 장애가 발생한 시스템에 대하여 상기 API 호출 요청의 전달을 중지하는 단계, 기설정된 스위칭 프로세스에 기반하여 상기 API 호출 요청을 분배하는 단계, 상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반 API에 따라 제공하는 단계, 상기 API의 상태를 모니터링하는 단계, 상기 API에 대한 메시지 변환 규칙을 정의하는 단계 및 상기 메시지 변환 규칙에 따라 상기 API에 포함된 메시지를 변환하는 단계를 포함할 수 있다.The API management method according to an embodiment disclosed in this document is an API gateway that manages an API call request received from a client and a transaction ID for each API call request transmitted from the API gateway, and communicates with an external system to provide the API. As an API management method using a system including a conversion mediation server that processes a call request, processing an API call request from the client through a non-blocking method, and calling the API based on logic set by a user Controlling the frequency of requests, stopping delivery of the API call request to a system in which a failure occurs among the external systems, distributing the API call request based on a preset switching process, and service related to the external system Providing a HTTP/JSON based API, monitoring the status of the API, defining a message conversion rule for the API, and converting a message included in the API according to the message conversion rule. Can include.

본 문서에 개시된 일 실시예에 따른 API 관리 시스템 및 그에 관한 방법은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다.The API management system and the method related thereto according to an embodiment disclosed in this document can provide a smooth service since there is no need to develop a separate resource in the customer's system, and thus downtime provided to users does not occur.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템 및 그에 관한 방법은 각 API 호출마다 부여된 트랜잭션 ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능하다.In addition, the API management system and the method related thereto according to an embodiment disclosed in this document can be quickly responded to because it is possible to easily check where an error has occurred in the case of an error internally through the transaction ID assigned to each API call. Is possible.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템 및 그에 관한 방법은 API 호출 요청부터 응답까지 하나의 흐름으로 관리할 수 있고, 원격 시스템에서 내부 또는 외부로 API를 제공하기 위한 리소스를 용이하게 추가 가능하여 원격 시스템의 관리자가 내부에서 제공하는 API의 라이프 사이클을 보다 편리하게 관리할 수 있다.In addition, the API management system and the method related thereto according to an embodiment disclosed in this document can manage from an API call request to a response in a single flow, and facilitate resources for providing an API from a remote system to the inside or outside. It can be added so that the administrator of the remote system can more conveniently manage the life cycle of the API provided internally.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템 및 그에 관한 방법은 하나의 흐름으로 진행하는 API 호출 요청을 통계적으로 확인하고 연계된 시스템 내 장애 상황에 대해 시각적으로 감시할 수 있어, 운영 중인 원격 시스템에 대한 신속한 장애 감지가 가능하고, 이를 확인하기 위한 불필요한 리소스 낭비를 저감할 수 있다.In addition, the API management system and the method related thereto according to an embodiment disclosed in this document can statistically check the API call request proceeding in one flow and visually monitor the failure situation in the linked system, It is possible to quickly detect a failure of a remote system, and reduce unnecessary waste of resources for checking this.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템 및 그에 관한 방법은 장애가 발생한 API 호출을 관리할 수 있으며 이에 따라 클라이언트 및 외부 시스템의 서비스 품질을 향상시킬 수 있다.In addition, the API management system and the method related thereto according to an embodiment disclosed in the present document can manage an API call in which a failure has occurred, thereby improving the quality of service of the client and external system.

도 1은 본 문서에 개시된 일 실시예에 따른 API 관리 시스템이 클라이언트와 외부 시스템과 통신하는 것을 나타내는 도면이다.
도 2는 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 구성을 나타내는 블록도이다.
도 3은 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 API 게이트웨이의 구성을 나타내는 블록도이다.
도 4는 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 변환 중개 서버의 구성을 나타내는 블록도이다.
도 5는 본 문서에 개시된 일 실시예에 따른 API 관리 방법을 나타내는 도면이다.
도 6은 본 문서에 개시된 일 실시예에 따른 API 관리 방법을 수행하는 컴퓨팅 시스템의 하드웨어 구성을 나타내는 블록도이다.
1 is a diagram illustrating that an API management system according to an embodiment disclosed in this document communicates with a client and an external system.
2 is a block diagram showing the configuration of an API management system according to an embodiment disclosed in this document.
3 is a block diagram showing the configuration of an API gateway of an API management system according to an embodiment disclosed in this document.
4 is a block diagram showing the configuration of a conversion mediation server of an API management system according to an embodiment disclosed in this document.
5 is a diagram illustrating an API management method according to an embodiment disclosed in this document.
6 is a block diagram showing a hardware configuration of a computing system that performs an API management method according to an embodiment disclosed in this document.

이하, 첨부한 도면을 참조하여 본 문서에 개시된 다양한 실시예들에 대해 상세히 설명하고자 한다. 본 문서에서 도면상의 동일한 구성 요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성 요소에 대해서 중복된 설명은 생략한다.Hereinafter, various embodiments disclosed in this document will be described in detail with reference to the accompanying drawings. In this document, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

본 문서에 개시되어 있는 다양한 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 본 문서에 개시된 다양한 실시예들은 여러 가지 형태로 실시될 수 있으며 본 문서에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.With respect to the various embodiments disclosed in this document, specific structural or functional descriptions are exemplified for the purpose of describing the embodiments only, and the various embodiments disclosed in this document may be implemented in various forms, and this document It should not be construed as being limited to the embodiments described in.

다양한 실시예에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성 요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성 요소들을 한정하지 않는다. 예를 들면, 본 문서에 개시된 실시예의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 바꾸어 명명될 수 있다.Expressions such as "first", "second", "first", or "second" used in various embodiments may modify various elements regardless of their order and/or importance, and the corresponding elements Not limited. For example, without departing from the scope of the rights of the embodiments disclosed in this document, a first component may be referred to as a second component, and similarly, a second component may be renamed to a first component.

본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly indicates otherwise.

기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 문서에 개시된 실시예들의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥 상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서에 개시된 실시예들을 배제하도록 해석될 수 없다.All terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the art of the embodiments disclosed in this document. Terms defined in a commonly used dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this document. . In some cases, even terms defined in this document cannot be interpreted to exclude embodiments disclosed in this document.

도 1은 본 문서에 개시된 일 실시예에 따른 API 관리 시스템이 클라이언트와 외부 시스템과 통신하는 것을 나타내는 도면이다.1 is a diagram illustrating that an API management system according to an embodiment disclosed in this document communicates with a client and an external system.

도 1을 참조하면, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 API 게이트웨이(110)와 변환 중개 서버(120)를 포함할 수 있다. Referring to FIG. 1, an API management system 100 according to an embodiment disclosed in this document may include an API gateway 110 and a conversion mediation server 120.

API 관리 시스템(100)은 클라이언트(예를 들면, 시스템 개발자 등)(10)로부터 API 호출 요청(request)을 수신하고, 이를 변환하여 외부 시스템(예를 들면, 고객사 시스템)(20)으로 전달할 수 있다. 또한, 외부 시스템(20)은 수신된 API 호출 요청에 대응하는 데이터를 추출하여 API 관리 시스템(100)을 통해 클라이언트(10)로 전송할 수 있다.The API management system 100 may receive an API call request from a client (eg, a system developer, etc.) 10, convert it, and transmit it to an external system (eg, a customer company system) 20. have. In addition, the external system 20 may extract data corresponding to the received API call request and transmit it to the client 10 through the API management system 100.

API 관리 시스템(100)은 서로 다른 시스템 또는 서비스 사이의 커뮤니케이션을 효율적으로 수행하도록 할 수 있다. 이 때, API 관리 시스템(100)에서는 내부의 서로 다른 시스템 또는 내부와 외부 시스템을 연계하기 위해 API를 HTTP/JSON 기반의 REST API로 표준화할 수 있다. 이를 통해, 연계 대상의 구현 방식을 알지 못하더라도 상호 커뮤니케이션이 가능하고 불필요한 개발을 줄여 비용과 시간을 절약할 수 있다.The API management system 100 may enable efficient communication between different systems or services. In this case, the API management system 100 may standardize the API as an HTTP/JSON-based REST API in order to link different internal systems or internal and external systems. Through this, it is possible to communicate with each other even if the implementation method of the target to be linked is not known, and unnecessary development can be reduced, thereby saving cost and time.

또한, API 관리 시스템(100)은 API의 관리, 접근 제어, 메시지 변환 및 분석 기능을 수행할 수 있다. 예를 들면, API 관리는 API의 생성, 조회, 수정 및 삭제 등 전반적인 관리 기능을 포함할 수 있고, 접근 제어는 API는 인가된 사용자만 사용 가능하도록 제어하는 기능을 포함할 수 있다. 또한, 메시지 변환은 서로 다른 서비스의 통신을 상호 연계가 가능한 형태로 변환하는 기능을 포함하고, 분석 기능은 API 호출 정보를 수집하여 관리자가 분석하도록 하는 기능을 포함할 수 있다.In addition, the API management system 100 may perform API management, access control, message conversion and analysis functions. For example, API management may include overall management functions such as creation, inquiry, modification, and deletion of APIs, and access control may include a function of controlling APIs to be used only by authorized users. In addition, message conversion includes a function of converting communication between different services into a form that can be interconnected, and the analysis function may include a function of collecting API call information and allowing an administrator to analyze it.

특히, API 관리 시스템(100)은 클라이언트(10)로부터 수신되는 API 호출 요청 별로 트랜잭션(transaction) ID를 부여하여 관리할 수 있다. 구체적으로, API 관리 시스템(100)은 API 호출 요청 각각에 대해 트랜잭션 ID를 부여하고, API 호출 요청부터 응답까지 전체적인 흐름과 상태에 대한 모니터링을 수행할 수 있다. 예를 들어, API 관리 시스템(100)은 API를 트랜잭션 ID에 기초하여 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 할 수 있다. 이처럼, API 관리 시스템(100)은 트랜잭션 ID를 통해 어느 부분에서 오류가 발생하였는지 용이하게 확인할 수 있어, 장애 발생시 보다 신속하게 대응하도록 할 수 있다.In particular, the API management system 100 may manage by assigning a transaction ID for each API call request received from the client 10. Specifically, the API management system 100 may assign a transaction ID to each API call request, and monitor the overall flow and status from the API call request to the response. For example, the API management system 100 may log the API for each preset interval based on the transaction ID to enable tracking of a time required for a message processing process and an error. As such, the API management system 100 can easily check in which part an error has occurred through the transaction ID, and thus can respond more quickly when a failure occurs.

이와 같이, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다. 또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 각 API 호출 요청마다 부여된 트랜잭션 ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능하다.As described above, the API management system 100 according to an embodiment disclosed in this document does not need to develop a separate resource in the customer's system, so that downtime provided to users does not occur, and thus a smooth service can be provided. In addition, the API management system 100 according to an embodiment disclosed in this document can easily check which part of the error has occurred through the transaction ID given for each API call request, so that a quick response. Is possible.

도 2는 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 구성을 나타내는 블록도이다.2 is a block diagram showing the configuration of an API management system according to an embodiment disclosed in this document.

도 2를 참조하면, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 API 게이트웨이(110), 변환 중개 서버(120), 관리자 서버(130) 및 사용자 서버(140)를 포함할 수 있다.2, the API management system 100 according to an embodiment disclosed in this document may include an API gateway 110, a conversion mediation server 120, an administrator server 130, and a user server 140. have.

API 게이트웨이(110)는 클라이언트로부터 수신한 API에 대한 관리를 수행할 수 있다. 이러한 API 게이트웨이(110)는 API에 대한 엔드포인트(end point)를 통합하고, 추가적인 기능을 제공하는 미들웨어일 수 있다.The API gateway 110 may manage an API received from a client. The API gateway 110 may be middleware that integrates an end point for an API and provides an additional function.

예를 들면, API 게이트웨이(110)는 클라이언트로부터 수신한 API 호출 요청의 라우팅을 수행하거나, 사용자에 대한 인증 및 인가를 수행할 수 있다. 또한, API 게이트웨이(110)는 클라이언트로부터의 API 호출 요청에 대한 유량 제어 기능과 장애 전파를 방지하는 기능 등을 수행할 수 있다. 이러한 API 게이트웨이(110)의 구체적인 기능에 관해서는 도 3에서 후술한다.For example, the API gateway 110 may perform routing of an API call request received from a client, or may perform authentication and authorization for a user. In addition, the API gateway 110 may perform a flow rate control function for an API call request from a client, a function of preventing failure propagation, and the like. A detailed function of the API gateway 110 will be described later in FIG. 3.

변환 중개 서버(120)는 API 게이트웨이(110)로부터 수신한 API를 변환하여 외부 시스템으로 전달할 수 있다. 구체적으로, 변환 중개 서버(120)는 이기종 시스템 간의 연계가 가능하도록 TCP/IP, JDBC, HTTP 등 다양한 프로토콜을 지원하고, 기존의 EAI, MCI 등 여러 서비스들과 연계할 수 있는 메시지 변환 솔루션을 제공할 수 있다. The conversion mediation server 120 may convert the API received from the API gateway 110 and transmit it to an external system. Specifically, the conversion mediation server 120 supports various protocols such as TCP/IP, JDBC, and HTTP to enable linkage between heterogeneous systems, and provides a message conversion solution capable of linking with various services such as EAI and MCI. can do.

예를 들면, 변환 중개 서버(120)는 API 게이트웨이(110)로부터 수신한 API의 라우팅을 수행하거나, API 각각에 대한 추적 모니터링을 수행할 수 있다. 또한, 변환 중개 서버(120)는 수신한 API의 메시지 변환과 사용자 정의 변환 기능을 수행할 수 있다. 이러한 변환 중개 서버(120)의 구체적인 기능에 관해서는 도 4에서 후술한다.For example, the conversion mediation server 120 may perform routing of an API received from the API gateway 110 or may perform tracking monitoring for each API. In addition, the conversion mediation server 120 may perform message conversion and user-defined conversion functions of the received API. A specific function of the conversion mediation server 120 will be described later in FIG. 4.

관리자 서버(130)는 API 게이트웨이(110)와 변환 중개 서버(120)의 관리 및 제어 기능을 수행할 수 있다. 예를 들면, 관리자 서버(130)는 API의 생성, 관리, 규칙 설정을 수행할 수 있고, 대시 보드, 통계 데이터 확인 사용자 서버(140)의 API 사용 승인 여부 등을 설정할 수 있다. 이 때, 관리자 서버(130)는 상술한 기능들을 웹 사이트 상에서 제공할 수 있다.The manager server 130 may perform management and control functions of the API gateway 110 and the conversion mediation server 120. For example, the manager server 130 may create, manage, and set rules of an API, and may set whether to approve the use of the API of the dashboard and statistical data verification user server 140. In this case, the manager server 130 may provide the above-described functions on the web site.

구체적으로, 관리자 서버(130)는 API의 사용 및 관리를 용이하게 할 수 있도록 API를 그룹핑(grouping)하여 도메인을 생성하고, 도메인을 조회, 관리하는 기능을 수행할 수 있다. 또한, 관리자 서버(130)는 대시 보드를 통해 CPU, 실시간 JVM 메모리 등 시스템에 관련된 데이터와 각 API마다 부여된 트랜잭션 ID에 기반하여 시간대별 호출 및 실패 건수 등의 데이터를 그래프로 표시할 수 있다.Specifically, the manager server 130 may perform a function of creating a domain by grouping APIs to facilitate the use and management of the API, and searching and managing the domain. In addition, the manager server 130 may display data related to the system such as CPU and real-time JVM memory through the dashboard and data such as the number of calls and failures by time slot based on the transaction ID assigned to each API in a graph.

관리자 서버(130)는 API 게이트웨이(110)에 관하여 라우트, 서비스, 사용자 등 각 서비스의 조회, 생성, 수정, 삭제 등의 설정 기능을 제공하고, 변환 중개 서버(120)에 관하여 리졸버(resolver), 프록시(proxy), 브릿지(bridge) 등 각 서비스의 조회, 생성, 수정, 삭제 등의 설정 기능을 제공할 수 있다. 또한, 관리자 서버(130)는 사용자 조회, 생성, 수정, 삭제 등의 설정 및 각 도메인 별 접근 권한 관리 기능을 제공하고, 사용자 서버(140)에서 신청한 API에 대한 사용 승인 또는 거부 등의 설정 기능을 제공할 수 있다.The manager server 130 provides setting functions such as inquiry, creation, modification, deletion of each service such as a route, service, and user with respect to the API gateway 110, and a resolver with respect to the conversion mediation server 120, Setting functions such as inquiry, creation, modification and deletion of each service such as proxy and bridge can be provided. In addition, the administrator server 130 provides settings such as user inquiry, creation, modification, deletion, and access rights management functions for each domain, and setting functions such as approval or rejection of use of APIs requested by the user server 140 Can provide.

사용자 서버(140)는 클라이언트가 외부 시스템에서 제공하는 API를 사용 가능하도록 관리할 수 있다. 이 때, 관리자 서버(130)에서 관리 및 제공하는 API의 스펙 확인 및 사용 요청 기능을 제공할 수 있다. 예를 들어, 사용자는 사용자 서버(140)를 통해 API의 사용 요청 및 승인, 취소 등의 기능을 사용할 수 있다.The user server 140 may manage the client to use an API provided by an external system. In this case, the manager server 130 may provide a function of checking specifications and requesting use of an API managed and provided by the manager server 130. For example, the user may use functions such as requesting, approval, and cancellation of API use through the user server 140.

구체적으로, 사용자 서버(140)는 관리자 서버(130)에서 특정 라우트 또는 서비스에 대하여 별도의 인증 필터를 적용하는 경우, 해당 API에 대한 사용을 신청하는 기능을 제공할 수 있다. 이 경우, 요청한 API 별로 인증키를 발급하고 사용 취소도 진행할 수 있다. 또한, 사용자 서버(140)에서는 API 사용자를 조회, 생성, 수정하도록 할 수 있고, 각 사용자 별로 인증키 관리, API 신청 내역, API 사용 현황 등을 확인 가능하도록 할 수 있다.Specifically, when the manager server 130 applies a separate authentication filter to a specific route or service, the user server 140 may provide a function of requesting use of a corresponding API. In this case, you can issue an authentication key for each requested API and cancel the use. In addition, the user server 140 may inquire, create, and modify API users, and it may be possible to check authentication key management, API request details, API usage status, etc. for each user.

이와 같이, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다.As described above, the API management system according to an embodiment disclosed in the present document does not need to develop a separate resource in the customer's system, so that downtime provided to users does not occur, and thus a smooth service can be provided.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 각 API 호출마다 부여된 트랜잭션 ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능하다.In addition, in the API management system according to an embodiment disclosed in this document, when an error occurs internally in the system through a transaction ID assigned to each API call, it is possible to easily check in which part the error has occurred, so that a quick response is possible.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 API 호출 요청부터 응답까지 하나의 흐름으로 관리할 수 있고, 원격 시스템에서 내부 또는 외부로 API를 제공하기 위한 리소스를 용이하게 추가 가능하여 원격 시스템의 관리자가 내부에서 제공하는 API의 라이프 사이클을 보다 편리하게 관리할 수 있다.In addition, the API management system according to an embodiment disclosed in this document can manage from an API call request to a response in a single flow, and it is possible to easily add resources for providing an API from a remote system to the inside or outside. The system administrator can more conveniently manage the life cycle of the API provided internally.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 하나의 흐름으로 진행하는 API 호출 요청을 통계적으로 확인하고 연계된 시스템 내 장애 상황에 대해 시각적으로 감시할 수 있어, 운영 중인 원격 시스템에 대한 신속한 장애 감지가 가능하고, 이를 확인하기 위한 불필요한 리소스 낭비를 저감할 수 있다.In addition, the API management system according to an embodiment disclosed in this document can statistically check the API call request proceeding in one flow and visually monitor the failure situation in the linked system, It is possible to quickly detect a failure and reduce unnecessary waste of resources to check it.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템은 장애가 발생한 API 호출을 관리할 수 있으며 이에 따라 클라이언트 및 외부 시스템의 서비스 품질을 향상시킬 수 있다.In addition, the API management system according to an embodiment disclosed in this document can manage API calls in which a failure has occurred, and accordingly, can improve the quality of service of clients and external systems.

도 3은 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 API 게이트웨이의 구성을 나타내는 블록도이다.3 is a block diagram showing the configuration of an API gateway of an API management system according to an embodiment disclosed in this document.

도 3을 참조하면, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)의 API 게이트웨이(110)는 클라이언트로부터 수신한 API를 관리하는 기능을 수행하는 것으로서, 요청 처리부(111), 필터부(112), 장애 전파 방지부(113) 및 로드 밸런싱부(114)를 포함할 수 있다.Referring to FIG. 3, the API gateway 110 of the API management system 100 according to an embodiment disclosed in this document performs a function of managing an API received from a client, and includes a request processing unit 111 and a filter unit. (112), it may include a failure propagation prevention unit 113 and a load balancing unit 114.

요청 처리부(111)는 클라이언트로부터 요청된 경로에 따라 API를 라우팅할 수 있다. 이 경우, 요청 처리부(111)는 논블로킹(non-blocking) 방식을 통해 클라이언트로부터의 API 호출 요청에 대한 처리를 수행할 수 있다. 예를 들면, 요청 처리부(111)는 이벤트 루프를 통해 비동기적 방식으로 API 호출 요청에 대한 처리를 수행할 수 있다.The request processing unit 111 may route the API according to the path requested from the client. In this case, the request processing unit 111 may process an API call request from a client through a non-blocking method. For example, the request processing unit 111 may process an API call request in an asynchronous manner through an event loop.

종래의 블로킹(blocking) 방식의 경우 매 요청마다 스레드(thread)를 생성하고, 스레드가 사용 중일 경우 요청 스레드는 대기 상태로 유지하도록 하였다. 이 때, 서버는 제한된 수의 요청 스레드를 가지고 있기 때문에 서버의 최대 스레드 수만큼 요청을 수행 중인 경우 다른 요청을 처리하지 못하여 성능 저하 및 서버 기능의 전체 활용이 제한될 수 있다.In the case of the conventional blocking method, a thread is created for each request, and when a thread is in use, the requesting thread is kept in a standby state. In this case, since the server has a limited number of request threads, if requests are being executed as many as the maximum number of threads of the server, other requests cannot be processed, thereby reducing performance and limiting overall utilization of server functions.

그러나, 본 문서에 개시된 API 게이트웨이(110)의 요청 처리부(111)에서는 논블로킹 방식을 통해 매 요청마다 스레드를 생성하지 않고, 프로세스 사이에 있는 이벤트 루프를 통해 비동기적으로 요청 프로세스를 수행할 수 있다. 이를 통해, 요청의 딜레이가 발생하지 않으며, 수많은 API 호출 요청을 처리하는 API 게이트웨이(110)가 원활하게 동작하도록 할 수 있다.However, the request processing unit 111 of the API gateway 110 disclosed in this document does not create a thread for each request through a non-blocking method, and may perform a request process asynchronously through an event loop between processes. . Through this, a delay of a request does not occur, and the API gateway 110 that processes a number of API call requests can operate smoothly.

필터부(112)는 사용자에 의해 설정된 로직에 기반하여 API 호출 요청의 빈도를 제어할 수 있다. 이 경우, 필터부(112)는 설정된 로직에 따라 API의 최대 요청 가능 횟수를 시간을 기준으로 결정할 수 있다. 예를 들면, 필터부(112)는 1초당 5회, 1시간에 10회, 또는 30일에 3000회 등과 같이, 시간 기준으로 최대 요청 횟수를 지정함으로써 유량 제어 기능을 수행할 수 있다. 이러한 로직은 API, 사용자 별로 설정될 수 있다.The filter unit 112 may control the frequency of the API call request based on logic set by the user. In this case, the filter unit 112 may determine the maximum number of requests available for the API based on time according to the set logic. For example, the filter unit 112 may perform a flow rate control function by designating the maximum number of requests based on time, such as 5 times per second, 10 times per hour, or 3000 times per 30 days. This logic can be set for each API and user.

또한, 필터부(112)는 설정된 로직에 따라 API의 라우트, 서비스 및 사용자 별로 클라이언트의 접근 허용 여부에 관한 인증을 수행할 수 있다. 예를 들면, 필터부(112)는 API의 라우트, 서비스 및 사용자에 기초하여 인증을 수행하는 경우, 클라이언트로부터의 사용 신청에 대하여 API 별로 인증키를 발급할 수 있다. 이처럼, 본 문서에 개시된 일 실시예에 따른 API 게이트웨이(110)의 필터부(112)는 필요하지 않은 전체 로직을 수행하는 기존의 방식과 달리, 사용자가 직접 설정한 로직만 수행함으로써 시스템의 리소스를 절약할 수 있다.In addition, the filter unit 112 may perform authentication as to whether or not to allow access of the client for each route, service, and user of the API according to the set logic. For example, when performing authentication based on an API route, a service, and a user, the filter unit 112 may issue an authentication key for each API in response to an application for use from a client. As described above, the filter unit 112 of the API gateway 110 according to an embodiment disclosed in this document saves system resources by executing only the logic set by the user, unlike the conventional method of performing all unnecessary logic. You can save.

장애 전파 방지부(113)는 외부 시스템 중 장애가 발생한 시스템에 대하여 API 호출 요청의 전달을 중지하도록 하는 서킷 브레이커 기능을 수행할 수 있다. 예를 들면, 장애 전파 방지부(113)는 외부 시스템 중 응답 오류가 설정된 임계치 이상 발생하는 시스템에 대하여 API 호출 요청의 전달을 중지하도록 할 수 있다. The failure propagation prevention unit 113 may perform a circuit breaker function to stop delivery of an API call request to a system in which a failure occurs among external systems. For example, the failure propagation prevention unit 113 may stop delivery of an API call request to a system in which a response error occurs above a set threshold among external systems.

또한, 장애 전파 방지부(113)는 API 호출 요청의 전달이 중지되는 동안 사전에 설정된 값에 기반하여 대체 응답을 제공할 수 있다. 이 때, 클라이언트 또는 원격 시스템에서는 대체 응답에 따라 별도로 설정된 로직을 수행할 수 있다.In addition, the failure propagation prevention unit 113 may provide an alternative response based on a preset value while the delivery of the API call request is stopped. In this case, the client or the remote system may perform separately set logic according to the alternate response.

또한, 장애 전파 방지부(113)는 API 호출 요청의 전달이 중지되는 동안 사전에 설정된 시간 이후 원격 시스템에 정상 동작 여부를 확인하여 응답이 정상적일 경우 중지된 API 서비스를 자동으로 재개시킬 수 있다.In addition, the failure propagation prevention unit 113 may check whether the remote system operates normally after a preset time while the delivery of the API call request is stopped, and automatically resume the stopped API service if the response is normal.

기존의 통합 시스템에서는 여러 서비스들 중 하나의 서비스가 느려지거나 장애가 발생하는 경우, 장애가 발생한 서비스를 호출하는 종속된 서비스까지 장애가 전파되는 특성이 있었다. 이에 따라, 장애가 발생한 서비스뿐 아니라 다른 서비스까지 장애가 발생할 수 있으며, 이는 전체 시스템에 문제를 야기할 수 있다.In the existing integrated system, when one of several services is slowed down or a failure occurs, the failure is propagated to a subordinate service that calls the service in which the failure occurs. Accordingly, failure may occur not only in the service in which the failure occurred, but also other services, which may cause problems in the entire system.

한편, 본 문서에 개시된 API 게이트웨이(110)의 장애 전파 방지부(113)의 경우, 이러한 장애 전파를 사전에 방지할 수 있으며, 장애가 발생한 서비스가 복구될 때까지 해당 서비스에 대한 요청 전달을 중지함으로써, 다른 서비스로의 장애 전파를 방지할 수 있다.Meanwhile, in the case of the failure propagation prevention unit 113 of the API gateway 110 disclosed in this document, it is possible to prevent such failure propagation in advance, and by stopping the delivery of requests for the corresponding service until the service in which the failure occurred is restored. , It can prevent the propagation of faults to other services.

로드 밸런싱부(114)는 기설정된 스위칭 프로세스에 기반하여 API 호출 요청을 분배할 수 있다. 이 경우, 로드 밸런싱부(114)는 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 API 호출 요청을 분배할 수 있다. 예를 들면, 로드 밸런싱부(114)는 라운드 로빈(round robin), 가중 라운드 로빈(weighted round robin), 평균 응답 시간별 가중치 부여 등의 방식으로 API를 분배할 수 있다.The load balancer 114 may distribute an API call request based on a preset switching process. In this case, the load balancer 114 may distribute the API call request according to a preset value in units of groups of services registered in the switching process. For example, the load balancer 114 may distribute the API in a manner such as round robin, weighted round robin, weighting for each average response time, or the like.

기존의 로드 밸런싱 방식은 서버 앞단에 물리적인 스위치 장치를 두고 외부에서 들어오는 모든 요청을 해당 스위치 장치를 통해 분배하였다. 그러나, 이러한 물리적인 방법은 API 게이트웨이에 등록된 서비스 그룹별 로드 밸런싱 기능이 불가능하였다. 반면, 본 문서에 개시된 일 실시예에 따른 API 게이트웨이(110)의 로드 밸런싱부(114)는 소프트웨어 형태의 스위치 프로세스를 통해 API 호출 요청을 분배함으로써, 별도의 물리적 장치가 필요 없고, 등록된 서비스 그룹별로 다양한 로드 밸런싱이 가능하다.In the existing load balancing method, a physical switch device is placed in front of the server, and all external requests are distributed through the switch device. However, such a physical method was not possible to perform a load balancing function for each service group registered in the API gateway. On the other hand, the load balancing unit 114 of the API gateway 110 according to an embodiment disclosed in this document distributes the API call request through a software-type switch process, so that a separate physical device is not required, and a registered service group Various load balancing is possible for each.

도 4는 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 변환 중개 서버의 구성을 나타내는 블록도이다.4 is a block diagram showing the configuration of a conversion mediation server of an API management system according to an embodiment disclosed in this document.

도 4를 참조하면, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템의 변환 중개 서버(120)는 API 게이트웨이와 외부 시스템 사이에서 통신을 수행하는 것으로서, 라우팅부(121), 모니터링부(122), 커스텀 변환부(123) 및 메시지 변환부(124)를 포함할 수 있다.Referring to FIG. 4, the conversion mediation server 120 of the API management system according to an embodiment disclosed in this document performs communication between an API gateway and an external system, and includes a routing unit 121 and a monitoring unit 122. , A custom conversion unit 123 and a message conversion unit 124 may be included.

라우팅부(121)는 상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반의 API로 제공할 수 있다.The routing unit 121 may provide a service related to the external system through an HTTP/JSON based API.

모니터링부(122)는 API의 상태를 모니터링할 수 있다. 구체적으로, 모니터링부(122)는 API 호출 요청 각각에 대해 트랜잭션 ID를 부여하여 API의 요청부터 응답까지 전체적인 흐름과 상태에 대한 모니터링을 수행할 수 있다. 이 경우, 모니터링부(122)는 API를 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 함으로써, 장애 발생시 보다 신속하게 대응하도록 할 수 있다. 한편, 모니터링부(122)는 변환 중개 서버(120) 외에 API 게이트웨이(110)에도 포함될 수 있다. 이 때, API 게이트웨이(110)에 포함된 모니터링부(122)의 기능은 실질적으로 동일할 수 있다.The monitoring unit 122 may monitor the state of the API. Specifically, the monitoring unit 122 may perform monitoring of the overall flow and status from the request to the response of the API by assigning a transaction ID to each API call request. In this case, the monitoring unit 122 logs the API for each preset section to enable tracking of the time required for the message processing process and errors, thereby enabling a more rapid response when a failure occurs. Meanwhile, the monitoring unit 122 may be included in the API gateway 110 in addition to the conversion mediation server 120. In this case, the functions of the monitoring unit 122 included in the API gateway 110 may be substantially the same.

구체적으로, 모니터링부(122)는 각 API 호출 요청마다 별도의 트랜잭션 ID를 부여하여 클라이언트(10)-API 게이트웨이(110)-변환 중개 서버(120)-원격 시스템(20) 사이의 각 단계별 프로세스 데이터를 확인 가능하도록 할 수 있다. 만약, API 관리 시스템(100)에서 내부적으로 오류가 발생한 경우, 트랜잭션 ID를 통해 어느 부분에서 오류가 발생하였는지 용이하게 확인할 수 있어 신속한 대처가 가능하다. 이와 같은 방식으로 축적된 데이터를 이용하여 API 호출 요청마다 성공/실패 등의 기본 정보와 함께 프로세스 시간 등의 통계 데이터도 제공할 수 있다.Specifically, the monitoring unit 122 assigns a separate transaction ID for each API call request, and processes data for each step between the client 10-API gateway 110-conversion mediation server 120-remote system 20 Can be checked. If an error occurs internally in the API management system 100, it is possible to easily check where the error has occurred through the transaction ID, so that a quick response is possible. By using the data accumulated in this way, it is possible to provide basic information such as success/failure for each API call request, as well as statistical data such as process time.

커스텀 변환부(123)는 API에 대한 메시지 변환 규칙을 정의할 수 있다. 예를 들면, 커스텀 변환부(123)는 메시지 변환 규칙을 스크립트(script) 형태로 정의할 수 있다. 이처럼, 스크립트 형태로 메시지 변환 규칙을 정의하는 경우에는 별도의 코딩이나 서비스의 재시작 없이 새로운 규칙을 적용할 수 있다.The custom conversion unit 123 may define a message conversion rule for an API. For example, the custom conversion unit 123 may define a message conversion rule in the form of a script. In this way, when a message conversion rule is defined in the form of a script, a new rule can be applied without additional coding or restarting the service.

기존의 메시지 변환 방식은 메시지 변환 로직을 추가할 경우 별도로 개발 후 프로그램 재기동을 통해 제공해야 하였다. 반면, 본 문서에 개시된 일 실시예에 따른 변환 중개 서버(120)의 커스텀 변환부(123)는 메시지 변환 규칙은 스크립트로 정의되어 있어, 별도의 개발 및 서비스 재시작 없이 새로운 규칙을 적용할 수 있다.In the case of adding message conversion logic, the existing message conversion method had to be developed separately and provided through program restart. On the other hand, the custom conversion unit 123 of the conversion mediation server 120 according to an embodiment disclosed in this document has a message conversion rule defined as a script, so that a new rule can be applied without separate development and service restart.

메시지 변환부(124)는 메시지 변환 규칙에 따라 API에 포함된 메시지를 변환할 수 있다. 예를 들면, 메시지 변환부(124)는 API의 헤더 및 바디 중 적어도 하나에 있는 메시지를 변환할 수 있다. 또한, 메시지 변환부(124)는 메시지마다 기설정된 변환을 수행할 수 있다. 예를 들면, 메시지 변환부(124)는 암호/복호화, 마스킹, 패딩(padding), 인코딩/디코딩, 유효성 체크(validation check) 등을 수행할 수 있다. 이를 통해, 메시지 변환부(124)는 다양한 원격 시스템의 통신 환경에 따라 다양하게 변환된 메시지 형태를 제공할 수 있다.The message conversion unit 124 may convert a message included in the API according to a message conversion rule. For example, the message conversion unit 124 may convert a message in at least one of a header and a body of an API. Also, the message conversion unit 124 may perform a preset conversion for each message. For example, the message conversion unit 124 may perform encryption/decryption, masking, padding, encoding/decoding, validation check, and the like. Through this, the message conversion unit 124 may provide variously converted message types according to communication environments of various remote systems.

또한, 메시지 변환부(124)는 다양한 원격 시스템과 연계 가능한 복수의 통신 프로토콜을 제공할 수 있다. 예를 들면, 메시지 변환부(124)에서 제공하는 통신 프로토콜은 TCP/IP, JDBC, HTTP 등을 포함할 수 있다. 즉, 메시지 변환부(124)는 메시지 변환을 하면서 전후에 통신 프로토콜의 변환을 수행할 수 있다.In addition, the message conversion unit 124 may provide a plurality of communication protocols that can be linked with various remote systems. For example, the communication protocol provided by the message conversion unit 124 may include TCP/IP, JDBC, HTTP, and the like. That is, the message conversion unit 124 may convert a communication protocol before and after the message conversion.

변환 중개 서버(120)에서 API 호출 요청을 수신하는 경우, 프록시(예를 들면, 다른 네트워크 서비스로부터 요청에 따른 중개 기능)와 브릿지(예를 들면, 각 메시지별 계산이나 설정된 작업을 통해 데이터 변경하는 기능)가 순차적으로 호출되어 원격 시스템에 데이터를 요청할 수 있다. 이 경우, 메시지 변환부(124)는 각 단계별로 전달되는 API 호출의 헤더나 바디에 있는 메시지(파라미터)에 기본적으로 제공되는 변환 규칙이나 커스텀 변환부(123)에 의해 생성된 변환 규칙을 적용함으로써, 사용자가 원하는 프로세스를 단계별로 적용시킬 수 있다.When receiving an API call request from the conversion mediation server 120, a proxy (for example, a mediation function according to a request from another network service) and a bridge (for example, data change through calculation or set operation for each message) Function) can be called sequentially to request data from a remote system. In this case, the message conversion unit 124 applies a conversion rule provided by default or a conversion rule generated by the custom conversion unit 123 to a message (parameter) in the header or body of the API call delivered in each step. , User can apply the desired process step by step.

도 5는 본 문서에 개시된 일 실시예에 따른 API 관리 방법을 나타내는 도면이다.5 is a diagram illustrating an API management method according to an embodiment disclosed in this document.

도 5를 참조하면, 본 문서에 개시된 일 실시예에 따른 API 관리 방법은 먼저, 클라이언트로부터 요청된 경로에 따라 API를 라우팅하는 경우, 논블로킹 방식을 통해 클라이언트로부터의 API 호출 요청에 대한 처리를 수행할 수 있다(S110). 예를 들면, 단계 S110에서는 이벤트 루프를 통해 비동기적 방식으로 API 호출 요청에 대한 처리를 수행할 수 있다.Referring to FIG. 5, the API management method according to an embodiment disclosed in this document first, when routing an API according to a path requested from a client, performs processing of an API call request from a client through a non-blocking method. It can be done (S110). For example, in step S110, an API call request may be processed in an asynchronous manner through an event loop.

그리고, 사용자에 의해 설정된 로직에 기반하여 API 호출 요청의 빈도를 제어할 수 있다(S120). 이 경우, 단계 S120에서는 설정된 로직에 따라 API의 최대 요청 가능 횟수를 시간을 기준으로 결정할 수 있다. 이러한 로직은 API, 서비스, 사용자 별로 설정될 수 있다.In addition, the frequency of the API call request may be controlled based on the logic set by the user (S120). In this case, in step S120, the maximum number of requests available for the API may be determined based on time according to the set logic. This logic can be set for each API, service, and user.

또한, 단계 S120에서는 설정된 로직에 따라 API의 라우트, 서비스 및 사용자 별로 클라이언트의 접근 허용 여부에 관한 인증을 수행할 수 있다. 예를 들면, API의 라우트, 서비스 및 사용자에 기초하여 인증을 수행하는 경우, 클라이언트로부터의 사용 신청에 대하여 API 별로 인증키를 발급할 수 있다.In addition, in step S120, authentication regarding whether or not to allow access of the client for each of the API routes, services, and users may be performed according to the set logic. For example, when authentication is performed based on an API route, service, and user, an authentication key may be issued for each API in response to an application for use from a client.

다음으로, 외부 시스템 중 장애가 발생한 시스템에 대하여 API 호출 요청의 전달을 중지할 수 있다(S130). 예를 들면, 단계 S130에서는 외부 시스템 중 응답 오류가 설정된 임계치 이상 발생하는 시스템에 대하여 API 호출 요청의 전달을 중지하도록 할 수 있다. 또한, API 호출 요청의 전달이 중지되는 동안 사전에 설정된 값에 기반하여 대체 응답을 제공할 수 있다. 이 때, 클라이언트 또는 원격 시스템에서는 대체 응답에 따라 별도로 설정된 로직을 수행할 수 있다.Next, delivery of an API call request to a system in which a failure occurs among external systems may be stopped (S130). For example, in step S130, delivery of an API call request may be stopped to a system in which a response error occurs more than a set threshold among external systems. In addition, while the delivery of the API call request is stopped, an alternative response may be provided based on a preset value. In this case, the client or the remote system may perform separately set logic according to the alternate response.

또한, 단계 S130에서는 API 호출 요청의 전달이 중지되는 동안 사전에 설정된 시간 이후 원격 시스템에 정상 동작 여부를 확인하여 응답이 정상일 경우 중지된 API 서비스를 자동으로 재개시킬 수 있다.In addition, in step S130, while the delivery of the API call request is stopped, it is possible to automatically restart the stopped API service if the response is normal by checking whether the remote system is operating normally after a preset time.

그리고, 기설정된 스위칭 프로세스에 기반하여 API 호출 요청을 분배할 수 있다(S140). 이 경우, 소프트웨어 형태의 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 API 호출 요청을 분배할 수 있다. 예를 들면, 라운드 로빈, 가중 라운드 로빈, 평균 응답 시간별 가중치 부여 등의 방식으로 API를 분배할 수 있다.In addition, the API call request may be distributed based on a preset switching process (S140). In this case, the API call request may be distributed according to a preset value in units of groups of services registered in the software type switching process. For example, the API can be distributed in a manner such as round robin, weighted round robin, and weighting for each average response time.

다음으로, API의 상태를 모니터링할 수 있다(S160). 구체적으로, 단계 S160에서는 API 호출 요청 각각에 대해 트랜잭션 ID를 부여하여 API의 요청부터 응답까지 전체적인 흐름과 상태에 대한 모니터링을 수행할 수 있다. 이 경우, API를 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 함으로써, 장애 발생시 보다 신속하게 대응하도록 할 수 있다.Next, it is possible to monitor the state of the API (S160). Specifically, in step S160, a transaction ID is assigned to each of the API call requests, and the overall flow and status of the API request to the response may be monitored. In this case, by logging the API for each preset section, the time required for the message processing process and the error can be traced, thereby enabling a more rapid response in the event of a failure.

그리고, API에 대한 메시지 변환 규칙을 정의할 수 있다(S160). 예를 들면, 단계 S170에서는 메시지 변환 규칙을 스크립트 형태로 정의할 수 있다. 이처럼, 스크립트 형태로 메시지 변환 규칙을 정의하는 경우에는 별도의 코딩이나 서비스의 재시작 없이 새로운 규칙을 적용할 수 있다. 또한, 메시지 변환 규칙에 따라 상기 API에 포함된 메시지를 변환할 수 있다(S170). 예를 들면, 단계 S170에서는 API의 헤더 및 바디 중 적어도 하나에 있는 메시지를 변환할 수 있다. 이 때, 기설정된 변환을 수행할 수 있다.And, it is possible to define a message conversion rule for the API (S160). For example, in step S170, a message conversion rule may be defined in the form of a script. In this way, when a message conversion rule is defined in the form of a script, a new rule can be applied without additional coding or restarting the service. In addition, a message included in the API may be converted according to a message conversion rule (S170). For example, in step S170, a message in at least one of a header and a body of the API may be converted. At this time, a preset conversion may be performed.

또한, 단계 S170에서는 다양한 원격 시스템과 연계 가능한 복수의 통신 프로토콜을 제공할 수 있다. 예를 들면, 단계 S170에서 제공하는 통신 프로토콜은 TCP/IP, JDBC, HTTP 등을 포함할 수 있다. 즉, 단계 S170에서는 메시지 변환을 하면서 전후에 통신 프로토콜의 변환을 수행할 수 있다.In addition, in step S170, a plurality of communication protocols capable of linking with various remote systems may be provided. For example, the communication protocol provided in step S170 may include TCP/IP, JDBC, HTTP, and the like. That is, in step S170, the communication protocol may be converted before and after the message is converted.

이상에서 설명한 단계 S110 내지 S140은 API 게이트웨이(110)에서 수행되고, 단계 S150 내지 S170은 변환 중개 서버(120)에서 수행될 수 있다. 그러나, 본 문서에 개시된 일 실시예에 따른 API 관리 방법이 이에 제한되는 것은 아니며, 각 단계를 수행하는 주체는 필요에 따라 변경될 수 있다.Steps S110 to S140 described above may be performed by the API gateway 110, and steps S150 to S170 may be performed by the conversion mediation server 120. However, the API management method according to an embodiment disclosed in this document is not limited thereto, and the subject performing each step may be changed as necessary.

이와 같이, 본 문서에 개시된 일 실시예에 따른 API 관리 방법은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다.As described above, the API management method according to an embodiment disclosed in this document does not need to develop a separate resource in the customer's system and thus does not generate downtime provided to users, and thus, a smooth service can be provided.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 방법은 각 API 호출마다 부여된 트랜잭션(transaction) ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능하다.In addition, in the API management method according to an embodiment disclosed in this document, when an error occurs internally in the system through a transaction ID assigned for each API call, it is possible to easily check where the error has occurred, so that quick response is possible. It is possible.

본 문서에 개시된 일 실시예에 따른 API 관리 방법은 API 호출 요청부터 응답까지 하나의 흐름으로 관리할 수 있고, 원격 시스템에서 내부 또는 외부로 API를 제공하기 위한 리소스를 용이하게 추가 가능하여 원격 시스템의 관리자가 내부에서 제공하는 API의 라이프 사이클을 보다 편리하게 관리할 수 있다.The API management method according to an embodiment disclosed in this document can manage from an API call request to a response in a single flow, and it is possible to easily add resources for providing an API from a remote system to the inside or outside of the remote system. The life cycle of the API provided by the administrator can be managed more conveniently.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 방법은 하나의 흐름으로 진행하는 API 호출 요청을 통계적으로 확인하고 연계된 시스템 내 장애 상황에 대해 시각적으로 감시할 수 있어, 운영 중인 원격 시스템에 대한 신속한 장애 감지가 가능하고, 이를 확인하기 위한 불필요한 리소스 낭비를 저감할 수 있다.In addition, the API management method according to an embodiment disclosed in this document can statistically check the API call request proceeding as a single flow and visually monitor the failure situation in the linked system. It is possible to quickly detect a failure and reduce unnecessary waste of resources to check it.

또한, 본 문서에 개시된 일 실시예에 따른 API 관리 방법은 장애가 발생한 API 호출을 관리할 수 있으며 이에 따라 클라이언트 및 외부 시스템의 서비스 품질을 향상시킬 수 있다.In addition, the API management method according to an embodiment disclosed in this document can manage an API call in which a failure has occurred, and accordingly, can improve service quality of a client and an external system.

도 6은 본 문서에 개시된 일 실시예에 따른 API 관리 방법을 수행하는 컴퓨팅 시스템의 하드웨어 구성을 나타내는 블록도이다.6 is a block diagram showing a hardware configuration of a computing system that performs an API management method according to an embodiment disclosed in this document.

도 6을 참조하면, 본 문서에 개시된 일 실시예에 따른 컴퓨팅 시스템(1000)은 MCU(1010), 메모리(1020), 입출력 I/F(730) 및 통신 I/F(1040)를 포함할 수 있다.6, a computing system 1000 according to an embodiment disclosed in this document may include an MCU 1010, a memory 1020, an input/output I/F 730, and a communication I/F 1040. have.

MCU(1010)는 메모리(1020)에 저장되어 있는 각종 프로그램(예를 들면, API 관리(라우팅, 필터링, 모니터링 등) 프로그램, 메시지 변환 프로그램 등)을 실행시키고, 이러한 프로그램들을 통해 API 호출 요청, 트랜잭션 ID, 각종 메시지 등 각종 데이터를 처리하며, 전술한 도 2에 나타낸 API 관리 시스템(100)의 기능들을 수행하도록 하는 프로세서일 수 있다.The MCU 1010 executes various programs (e.g., API management (routing, filtering, monitoring, etc.) programs, message conversion programs, etc.) stored in the memory 1020, and requests API calls and transactions through these programs. It may be a processor that processes various data such as IDs and various messages, and performs functions of the API management system 100 shown in FIG. 2 described above.

메모리(1020)는 API 관리와 메시지 변환 등에 관한 각종 프로그램을 저장할 수 있다. 또한, 메모리(1020)는 클라이언트로부터 수신한 API 호출 요청, 변환 중개 서버(120)를 통해 생성된 트랜잭션 ID, 메시지 등 각종 데이터를 저장할 수 있다.The memory 1020 may store various programs related to API management and message conversion. In addition, the memory 1020 may store various data such as an API call request received from a client, a transaction ID generated through the conversion mediation server 120, and a message.

이러한 메모리(1020)는 필요에 따라서 복수 개 마련될 수도 있을 것이다. 메모리(1020)는 휘발성 메모리일 수도 있으며 비휘발성 메모리일 수 있다. 휘발성 메모리로서의 메모리(1020)는 RAM, DRAM, SRAM 등이 사용될 수 있다. 비휘발성 메모리로서의 메모리(1020)는 ROM, PROM, EAROM, EPROM, EEPROM, 플래시 메모리 등이 사용될 수 있다. 상기 열거한 메모리(1020)들의 예를 단지 예시일 뿐이며 이들 예로 한정되는 것은 아니다.A plurality of such memories 1020 may be provided as needed. The memory 1020 may be a volatile memory or a nonvolatile memory. As the memory 1020 as a volatile memory, RAM, DRAM, SRAM, or the like may be used. As the memory 1020 as a nonvolatile memory, ROM, PROM, EAROM, EPROM, EEPROM, flash memory, or the like may be used. Examples of the above-listed memories 1020 are merely examples and are not limited to these examples.

입출력 I/F(1030)는, 키보드, 마우스, 터치 패널 등의 입력 장치(미도시)와 디스플레이(미도시) 등의 출력 장치와 MCU(1010) 사이를 연결하여 데이터를 송수신할 수 있도록 하는 인터페이스를 제공할 수 있다.The input/output I/F 1030 is an interface that allows data to be transmitted/received by connecting an input device (not shown) such as a keyboard, a mouse, and a touch panel, and an output device such as a display (not shown), and the MCU 1010 Can provide.

통신 I/F(1040)는 서버와 각종 데이터를 송수신할 수 있는 구성으로서, 유선 또는 무선 통신을 지원할 수 있는 각종 장치일 수 있다. 예를 들면, 통신 I/F(1040)를 통해 별도로 마련된 외부 서버로부터 API 관리와 메시지 변환 등을 위한 프로그램이나 API 호출 요청, 트랜잭션 ID, 메시지 등 각종 데이터 등을 송수신할 수 있다.The communication I/F 1040 is a component capable of transmitting and receiving various data to and from a server, and may be various devices capable of supporting wired or wireless communication. For example, through the communication I/F 1040, programs for API management and message conversion, API call requests, transaction IDs, and various data such as messages may be transmitted and received from an external server provided separately.

이와 같이, 본 문서에 개시된 일 실시예에 따른 컴퓨터 프로그램은 메모리(1020)에 기록되고, MCU(1010)에 의해 처리됨으로써, 예를 들면 도 2에서 도시한 각 기능들을 수행하는 모듈로서 구현될 수도 있다.In this way, the computer program according to the exemplary embodiment disclosed in this document is recorded in the memory 1020 and processed by the MCU 1010, so that it may be implemented as, for example, a module that performs each function shown in FIG. 2. have.

이상에서, 본 문서에 개시된 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 문서에 개시된 실시예들이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 문서에 개시된 실시예들의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. In the above, just because all the constituent elements constituting the embodiments disclosed in this document have been described as being combined into one or operating in combination, the embodiments disclosed in this document are not necessarily limited to these embodiments. That is, as long as it is within the scope of the objectives of the embodiments disclosed in this document, one or more of the components may be selectively combined and operated.

또한, 이상에서 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재할 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다. 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 다르게 정의되지 않는 한, 본 문서에 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 문서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.In addition, terms such as "include", "consist of" or "have" described above mean that the corresponding component may be present unless otherwise stated, excluding other components. It should not be construed as being able to further include other components. All terms, including technical or scientific terms, unless otherwise defined, have the same meaning as commonly understood by a person of ordinary skill in the art to which the embodiments disclosed in this document belong. Terms generally used, such as terms defined in the dictionary, should be interpreted as being consistent with the meaning of the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this document.

이상의 설명은 본 문서에 개시된 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 문서에 개시된 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 문서에 개시된 실시예들의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 문서에 개시된 실시예들은 본 문서에 개시된 실시예들의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 문서에 개시된 기술 사상의 범위가 한정되는 것은 아니다. 본 문서에 개시되 기술사상의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 문서의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea disclosed in this document, and those of ordinary skill in the technical field to which the embodiments disclosed in this document belong to within the scope not departing from the essential characteristics of the embodiments disclosed in this document. Various modifications and variations will be possible. Accordingly, the embodiments disclosed in this document are not intended to limit the technical idea of the embodiments disclosed in this document, but to describe, and the scope of the technical idea disclosed in this document is not limited by these embodiments. The scope of protection of the technical ideas disclosed in this document should be interpreted by the scope of the claims below, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the rights of this document.

10: 클라이언트 20: 외부 시스템
100: API 관리 시스템 110: API 게이트웨이
111: 요청 처리부 120: 필터부
130: 장애 전파 방지부 140: 로드 밸런싱부
120: 변환 중개 서버 121: 라우팅부
122: 모니터링부 123: 커스텀 변환부
124: 메시지 변환부 130: 관리자 서버
140: 사용자 서버 1000: 컴퓨팅 시스템
1010: MCU 1020: 메모리
1030: 입출력 I/F 1040: 통신 I/F
10: client 20: external system
100: API management system 110: API gateway
111: request processing unit 120: filter unit
130: failure propagation prevention unit 140: load balancing unit
120: conversion mediation server 121: routing unit
122: monitoring unit 123: custom conversion unit
124: message conversion unit 130: administrator server
140: user server 1000: computing system
1010: MCU 1020: memory
1030: I/O I/F 1040: Communication I/F

Claims (15)

클라이언트로부터 수신되는 API 호출 요청을 관리하는 API 게이트웨이;
상기 API 게이트웨이로부터 전달되는 상기 API 호출 요청 별로 트랜잭션 ID를 부여하고, 외부 시스템과 통신하여 상기 API 호출 요청을 처리하는 변환 중개 서버;
상기 API를 그룹핑(grouping)하여 도메인을 생성하고, 각 API마다 부여된 트랜잭션 ID에 기반하여 시간대별 호출 및 실패 건수를 포함한 데이터를 그래프로 표시하는 관리자 서버; 및
상기 관리자 서버에서 특정 라우트 또는 서비스에 대하여 별도의 인증 필터를 적용하는 경우, 해당 API에 대한 사용을 신청하는 기능을 제공하는 사용자 서버를 포함하는 시스템으로서,
상기 API 게이트웨이는,
논블로킹(non-blocking) 방식을 통해 상기 클라이언트로부터의 API 호출 요청에 대한 처리를 수행하는 요청 처리부;
사용자에 의해 설정된 로직에 기반하여 상기 API 호출 요청의 빈도를 제어하는 필터부;
상기 외부 시스템 중 장애가 발생한 시스템에 대하여 상기 API 호출 요청의 전달을 중지하는 장애 전파 방지부; 및
기설정된 스위칭 프로세스에 기반하여 상기 API 호출 요청을 분배하는 로드 밸런싱부를 포함하고,
상기 변환 중개 서버는,
상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반의 API로 제공하는 라우팅부;
상기 API의 상태를 모니터링하는 모니터링부;
상기 사용자에 의해 정의된 상기 API에 대한 메시지 변환 규칙을 생성하는 커스텀 변환부; 및
상기 메시지 변환 규칙에 따라 상기 API에 포함된 메시지를 변환하는 메시지 변환부를 포함하고,
상기 모니터링부는 상기 API를 상기 트랜잭션 ID에 기초하여 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적하는 API 관리 시스템.
An API gateway that manages an API call request received from a client;
A conversion mediation server that assigns a transaction ID for each API call request transmitted from the API gateway, and processes the API call request by communicating with an external system;
A manager server that creates a domain by grouping the APIs, and displays data including the number of calls and failures by time slot in a graph based on a transaction ID assigned to each API; And
As a system including a user server that provides a function for requesting use of a corresponding API when a separate authentication filter is applied to a specific route or service in the administrator server,
The API gateway,
A request processing unit that processes an API call request from the client through a non-blocking method;
A filter unit controlling a frequency of the API call request based on a logic set by a user;
A failure propagation prevention unit for stopping delivery of the API call request to a system in which a failure occurs among the external systems; And
Includes a load balancing unit for distributing the API call request based on a preset switching process,
The conversion mediation server,
A routing unit that provides a service related to the external system through an HTTP/JSON based API;
A monitoring unit monitoring the state of the API;
A custom conversion unit for generating a message conversion rule for the API defined by the user; And
A message conversion unit for converting a message included in the API according to the message conversion rule,
The API management system for tracking the time required for the message processing process and errors by the monitoring unit logging the API for each preset interval based on the transaction ID.
청구항 1에 있어서,
상기 요청 처리부는 이벤트 루프를 통해 비동기적 방식으로 상기 API 호출 요청에 대한 처리를 수행하는 API 관리 시스템.
The method according to claim 1,
The request processing unit is an API management system that processes the API call request in an asynchronous manner through an event loop.
청구항 1에 있어서,
상기 필터부는 상기 로직에 따라 상기 API의 라우트, 서비스 및 사용자 별로 상기 클라이언트의 접근 허용 여부에 관한 인증을 수행하는 API 관리 시스템.
The method according to claim 1,
The filter unit is an API management system for authenticating whether access of the client is permitted for each route, service, and user of the API according to the logic.
청구항 1에 있어서,
상기 필터부는 상기 로직에 따라 상기 API의 최대 요청 가능 횟수를 시간을 기준으로 결정하는 API 관리 시스템.
The method according to claim 1,
The API management system for the filter unit to determine the maximum number of times the API can be requested based on time according to the logic.
청구항 1에 있어서,
상기 장애 전파 방지부는 상기 외부 시스템 중 응답 오류가 임계치 이상 발생한 장애 시스템에 대하여 상기 API 호출 요청의 전달을 중지하는 API 관리 시스템.
The method according to claim 1,
The failure propagation prevention unit stops the delivery of the API call request to a failure system in which a response error exceeds a threshold value among the external systems.
청구항 5에 있어서,
상기 장애 전파 방지부는 상기 장애 시스템에 상기 API 호출 요청의 전달이 중지되는 동안 사전에 설정된 값에 기반하여 대체 응답을 제공하는 API 관리 시스템.
The method of claim 5,
The failure propagation prevention unit provides an alternative response based on a preset value while the delivery of the API call request to the failure system is stopped.
청구항 5에 있어서,
상기 장애 전파 방지부는 상기 장애 시스템에 상기 API 호출 요청의 전달이 중지된 경우, 기설정된 시간 이후에 상기 장애 시스템으로 API 연결 요청을 전송하고, 상기 장애 시스템이 다시 정상 동작할 경우 별도의 조작없이 상기 API 호출 요청을 재개하는 API 관리 시스템.
The method of claim 5,
When the delivery of the API call request to the faulty system is stopped, the fault propagation prevention unit transmits the API connection request to the faulty system after a preset time, and when the faulty system operates normally again, the faulty system is operated again without any separate operation. API management system that resumes API call requests.
청구항 1에 있어서,
상기 로드 밸런싱부는 상기 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 상기 API 호출 요청을 분배하는 API 관리 시스템.
The method according to claim 1,
The load balancing unit is an API management system that distributes the API call request according to a preset value in units of a group of services registered in the switching process.
청구항 1에 있어서,
상기 라우팅부는 상기 외부 시스템과 연계 가능한 복수의 통신 프로토콜을 제공하는 API 관리 시스템.
The method according to claim 1,
The API management system for providing a plurality of communication protocols linkable with the external system in the routing unit.
삭제delete 청구항 1에 있어서,
상기 커스텀 변환부는 상기 메시지 변환 규칙을 스크립트(script) 형태로 정의하는 API 관리 시스템.
The method according to claim 1,
The custom conversion unit API management system for defining the message conversion rule in the form of a script.
청구항 1에 있어서,
상기 메시지 변환부는 상기 API의 헤더 및 바디 중 적어도 하나에 있는 메시지를 변환하는 API 관리 시스템.
The method according to claim 1,
The message conversion unit API management system for converting a message in at least one of a header and a body of the API.
청구항 1에 있어서,
상기 메시지 변환부는 상기 메시지마다 기설정된 변환을 수행하는 API 관리 시스템.
The method according to claim 1,
The message conversion unit API management system for performing a preset conversion for each of the messages.
청구항 1에 있어서,
상기 필터부는 상기 API의 라우트, 서비스 및 사용자에 기초하여 인증을 수행하는 경우, 상기 클라이언트로부터의 사용 신청에 대하여 API 별로 인증키를 발급하는 API 관리 시스템.
The method according to claim 1,
When the filter unit performs authentication based on the route, service, and user of the API, an API management system that issues an authentication key for each API in response to a request for use from the client.
클라이언트로부터 수신되는 API 호출 요청을 관리하는 API 게이트웨이;
상기 API 게이트웨이로부터 전달되는 상기 API 호출 요청 별로 트랜잭션 ID를 부여하고, 외부 시스템과 통신하여 상기 API 호출 요청을 처리하는 변환 중개 서버;
상기 API를 그룹핑(grouping)하여 도메인을 생성하고, 각 API마다 부여된 트랜잭션 ID에 기반하여 시간대별 호출 및 실패 건수를 포함한 데이터를 그래프로 표시하는 관리자 서버; 및
상기 관리자 서버에서 특정 라우트 또는 서비스에 대하여 별도의 인증 필터를 적용하는 경우, 해당 API에 대한 사용을 신청하는 기능을 제공하는 사용자 서버를 포함하는 시스템을 이용한 API 관리 방법으로서,
논블로킹 방식을 통해 상기 클라이언트로부터의 API 호출 요청에 대한 처리를 수행하는 단계;
사용자에 의해 설정된 로직에 기반하여 상기 API 호출 요청의 빈도를 제어하는 단계;
상기 외부 시스템 중 장애가 발생한 시스템에 대하여 상기 API 호출 요청의 전달을 중지하는 단계;
기설정된 스위칭 프로세스에 기반하여 상기 API 호출 요청을 분배하는 단계;
상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반의 API로 제공하는 단계;
상기 API의 상태를 모니터링하는 단계;
상기 사용자에 의해 정의된 상기 API에 대한 메시지 변환 규칙을 생성하는 단계; 및
상기 메시지 변환 규칙에 따라 상기 API에 포함된 메시지를 변환하는 단계를 포함하고,
상기 API의 상태를 모니터링하는 단계는 상기 API를 상기 트랜잭션 ID에 기초하여 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적하는 API 관리 방법.
An API gateway that manages an API call request received from a client;
A conversion mediation server that assigns a transaction ID for each API call request transmitted from the API gateway, and processes the API call request by communicating with an external system;
A manager server that creates a domain by grouping the APIs, and displays data including the number of calls and failures by time slot in a graph based on a transaction ID assigned to each API; And
As an API management method using a system including a user server that provides a function for requesting use of a corresponding API when a separate authentication filter is applied to a specific route or service in the manager server,
Processing an API call request from the client through a non-blocking method;
Controlling a frequency of the API call request based on a logic set by a user;
Stopping delivery of the API call request to a system in which a failure occurred among the external systems;
Distributing the API call request based on a preset switching process;
Providing a service related to the external system through an HTTP/JSON based API;
Monitoring the state of the API;
Generating a message conversion rule for the API defined by the user; And
Including the step of converting the message included in the API according to the message conversion rule,
In the step of monitoring the state of the API, the API is logged for each preset interval based on the transaction ID to track a time required for a message processing process and an error.
KR1020210018050A 2020-02-13 2021-02-09 Api management system and method thereof KR102256736B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200017530 2020-02-13
KR20200017530 2020-02-13

Publications (1)

Publication Number Publication Date
KR102256736B1 true KR102256736B1 (en) 2021-05-27

Family

ID=76135420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210018050A KR102256736B1 (en) 2020-02-13 2021-02-09 Api management system and method thereof

Country Status (1)

Country Link
KR (1) KR102256736B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417742B1 (en) * 2021-09-08 2022-07-06 비엠텍시스템 주식회사 API Data Aggregation System And Method Of The Same
KR20230038882A (en) * 2021-09-13 2023-03-21 주식회사 위버스컴퍼니 Method and system for controlling traffic inbound to application programming interface server
CN116257327A (en) * 2023-05-15 2023-06-13 浙江保融科技股份有限公司 Method for calling blocking client library in JVM non-blocking system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300759B1 (en) * 2013-01-03 2016-03-29 Amazon Technologies, Inc. API calls with dependencies
KR101653685B1 (en) * 2015-11-27 2016-09-02 주식회사 비디 Computer-excutable method for managing api
WO2019034979A1 (en) * 2017-08-14 2019-02-21 Reliance Jio Infocomm Limited Systems and methods for controlling real-time traffic surge of application programming interfaces (apis) at server

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9300759B1 (en) * 2013-01-03 2016-03-29 Amazon Technologies, Inc. API calls with dependencies
KR101653685B1 (en) * 2015-11-27 2016-09-02 주식회사 비디 Computer-excutable method for managing api
WO2019034979A1 (en) * 2017-08-14 2019-02-21 Reliance Jio Infocomm Limited Systems and methods for controlling real-time traffic surge of application programming interfaces (apis) at server

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417742B1 (en) * 2021-09-08 2022-07-06 비엠텍시스템 주식회사 API Data Aggregation System And Method Of The Same
WO2023038381A1 (en) * 2021-09-08 2023-03-16 비엠텍시스템 주식회사 Api data collection system and method therefor
KR20230038882A (en) * 2021-09-13 2023-03-21 주식회사 위버스컴퍼니 Method and system for controlling traffic inbound to application programming interface server
KR102606911B1 (en) * 2021-09-13 2023-11-29 주식회사 위버스컴퍼니 Method and system for controlling traffic inbound to application programming interface server
CN116257327A (en) * 2023-05-15 2023-06-13 浙江保融科技股份有限公司 Method for calling blocking client library in JVM non-blocking system
CN116257327B (en) * 2023-05-15 2023-09-15 浙江保融科技股份有限公司 Method for calling blocking client library in JVM non-blocking system

Similar Documents

Publication Publication Date Title
KR102256736B1 (en) Api management system and method thereof
US11677860B2 (en) Decentralization processing method, communication proxy, host, and storage medium
US10445197B1 (en) Detecting failover events at secondary nodes
CN101069169B (en) Caching content and state data at a network element
US6857020B1 (en) Apparatus, system, and method for managing quality-of-service-assured e-business service systems
US20130219043A1 (en) Method and apparatus for automatic migration of application service
CN112333290B (en) Data access control method, device, storage medium and content distribution network system
CN111309374A (en) Micro-service system and service calling method in micro-service system
CN114787781A (en) System and method for enabling high availability managed failover services
CN110224871A (en) A kind of high availability method and device of Redis cluster
US8209412B2 (en) Methods for managing a plurality of devices using protectable communication protocol, including determination of marketing feedback to assess a response to an advertisement
US11463310B2 (en) Blockchain network management
US20220171652A1 (en) Distributed container image construction scheduling system and method
CN103986748A (en) Method and device for achieving servitization
CN111414241A (en) Batch data processing method, device and system, computer equipment and computer readable storage medium
CN111651739A (en) Login authentication service system and method, authentication service node and electronic equipment
CN115695139A (en) Method for enhancing micro-service system architecture based on distributed robust
CN113225394B (en) API gateway management system based on container cluster
CN112448987A (en) Fusing degradation triggering method and system and storage medium
CN114338684B (en) Energy management system and method
CN114884964A (en) Service wind control method and system based on Tuxedo architecture
Abderrahim et al. The three-dimensional model for dependability integration in cloud computing
US11582345B2 (en) Context data management interface for contact center
CN114205414A (en) Data processing method, device, electronic equipment and medium based on service grid
CN112583951A (en) Application layer double-live method, device, equipment and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant