KR102256736B1 - Api management system and method thereof - Google Patents
Api management system and method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H04L67/28—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
Abstract
Description
본 문서에 개시된 실시예들은 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 관리 시스템(100)은 클라이언트(예를 들면, 시스템 개발자 등)(10)로부터 API 호출 요청(request)을 수신하고, 이를 변환하여 외부 시스템(예를 들면, 고객사 시스템)(20)으로 전달할 수 있다. 또한, 외부 시스템(20)은 수신된 API 호출 요청에 대응하는 데이터를 추출하여 API 관리 시스템(100)을 통해 클라이언트(10)로 전송할 수 있다.The
API 관리 시스템(100)은 서로 다른 시스템 또는 서비스 사이의 커뮤니케이션을 효율적으로 수행하도록 할 수 있다. 이 때, API 관리 시스템(100)에서는 내부의 서로 다른 시스템 또는 내부와 외부 시스템을 연계하기 위해 API를 HTTP/JSON 기반의 REST API로 표준화할 수 있다. 이를 통해, 연계 대상의 구현 방식을 알지 못하더라도 상호 커뮤니케이션이 가능하고 불필요한 개발을 줄여 비용과 시간을 절약할 수 있다.The
또한, API 관리 시스템(100)은 API의 관리, 접근 제어, 메시지 변환 및 분석 기능을 수행할 수 있다. 예를 들면, API 관리는 API의 생성, 조회, 수정 및 삭제 등 전반적인 관리 기능을 포함할 수 있고, 접근 제어는 API는 인가된 사용자만 사용 가능하도록 제어하는 기능을 포함할 수 있다. 또한, 메시지 변환은 서로 다른 서비스의 통신을 상호 연계가 가능한 형태로 변환하는 기능을 포함하고, 분석 기능은 API 호출 정보를 수집하여 관리자가 분석하도록 하는 기능을 포함할 수 있다.In addition, the
특히, API 관리 시스템(100)은 클라이언트(10)로부터 수신되는 API 호출 요청 별로 트랜잭션(transaction) ID를 부여하여 관리할 수 있다. 구체적으로, API 관리 시스템(100)은 API 호출 요청 각각에 대해 트랜잭션 ID를 부여하고, API 호출 요청부터 응답까지 전체적인 흐름과 상태에 대한 모니터링을 수행할 수 있다. 예를 들어, API 관리 시스템(100)은 API를 트랜잭션 ID에 기초하여 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 할 수 있다. 이처럼, API 관리 시스템(100)은 트랜잭션 ID를 통해 어느 부분에서 오류가 발생하였는지 용이하게 확인할 수 있어, 장애 발생시 보다 신속하게 대응하도록 할 수 있다.In particular, the
이와 같이, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다. 또한, 본 문서에 개시된 일 실시예에 따른 API 관리 시스템(100)은 각 API 호출 요청마다 부여된 트랜잭션 ID를 통해 시스템 내부적으로 오류가 발생할 경우에는 어느 부분에서 오류가 발생했는지 쉽게 확인 가능하여 신속한 대처가 가능하다.As described above, the
도 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 게이트웨이(110)는 클라이언트로부터 수신한 API에 대한 관리를 수행할 수 있다. 이러한 API 게이트웨이(110)는 API에 대한 엔드포인트(end point)를 통합하고, 추가적인 기능을 제공하는 미들웨어일 수 있다.The
예를 들면, API 게이트웨이(110)는 클라이언트로부터 수신한 API 호출 요청의 라우팅을 수행하거나, 사용자에 대한 인증 및 인가를 수행할 수 있다. 또한, API 게이트웨이(110)는 클라이언트로부터의 API 호출 요청에 대한 유량 제어 기능과 장애 전파를 방지하는 기능 등을 수행할 수 있다. 이러한 API 게이트웨이(110)의 구체적인 기능에 관해서는 도 3에서 후술한다.For example, the
변환 중개 서버(120)는 API 게이트웨이(110)로부터 수신한 API를 변환하여 외부 시스템으로 전달할 수 있다. 구체적으로, 변환 중개 서버(120)는 이기종 시스템 간의 연계가 가능하도록 TCP/IP, JDBC, HTTP 등 다양한 프로토콜을 지원하고, 기존의 EAI, MCI 등 여러 서비스들과 연계할 수 있는 메시지 변환 솔루션을 제공할 수 있다. The
예를 들면, 변환 중개 서버(120)는 API 게이트웨이(110)로부터 수신한 API의 라우팅을 수행하거나, API 각각에 대한 추적 모니터링을 수행할 수 있다. 또한, 변환 중개 서버(120)는 수신한 API의 메시지 변환과 사용자 정의 변환 기능을 수행할 수 있다. 이러한 변환 중개 서버(120)의 구체적인 기능에 관해서는 도 4에서 후술한다.For example, the
관리자 서버(130)는 API 게이트웨이(110)와 변환 중개 서버(120)의 관리 및 제어 기능을 수행할 수 있다. 예를 들면, 관리자 서버(130)는 API의 생성, 관리, 규칙 설정을 수행할 수 있고, 대시 보드, 통계 데이터 확인 사용자 서버(140)의 API 사용 승인 여부 등을 설정할 수 있다. 이 때, 관리자 서버(130)는 상술한 기능들을 웹 사이트 상에서 제공할 수 있다.The manager server 130 may perform management and control functions of the
구체적으로, 관리자 서버(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
사용자 서버(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
요청 처리부(111)는 클라이언트로부터 요청된 경로에 따라 API를 라우팅할 수 있다. 이 경우, 요청 처리부(111)는 논블로킹(non-blocking) 방식을 통해 클라이언트로부터의 API 호출 요청에 대한 처리를 수행할 수 있다. 예를 들면, 요청 처리부(111)는 이벤트 루프를 통해 비동기적 방식으로 API 호출 요청에 대한 처리를 수행할 수 있다.The
종래의 블로킹(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
필터부(112)는 사용자에 의해 설정된 로직에 기반하여 API 호출 요청의 빈도를 제어할 수 있다. 이 경우, 필터부(112)는 설정된 로직에 따라 API의 최대 요청 가능 횟수를 시간을 기준으로 결정할 수 있다. 예를 들면, 필터부(112)는 1초당 5회, 1시간에 10회, 또는 30일에 3000회 등과 같이, 시간 기준으로 최대 요청 횟수를 지정함으로써 유량 제어 기능을 수행할 수 있다. 이러한 로직은 API, 사용자 별로 설정될 수 있다.The
또한, 필터부(112)는 설정된 로직에 따라 API의 라우트, 서비스 및 사용자 별로 클라이언트의 접근 허용 여부에 관한 인증을 수행할 수 있다. 예를 들면, 필터부(112)는 API의 라우트, 서비스 및 사용자에 기초하여 인증을 수행하는 경우, 클라이언트로부터의 사용 신청에 대하여 API 별로 인증키를 발급할 수 있다. 이처럼, 본 문서에 개시된 일 실시예에 따른 API 게이트웨이(110)의 필터부(112)는 필요하지 않은 전체 로직을 수행하는 기존의 방식과 달리, 사용자가 직접 설정한 로직만 수행함으로써 시스템의 리소스를 절약할 수 있다.In addition, the
장애 전파 방지부(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
로드 밸런싱부(114)는 기설정된 스위칭 프로세스에 기반하여 API 호출 요청을 분배할 수 있다. 이 경우, 로드 밸런싱부(114)는 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 API 호출 요청을 분배할 수 있다. 예를 들면, 로드 밸런싱부(114)는 라운드 로빈(round robin), 가중 라운드 로빈(weighted round robin), 평균 응답 시간별 가중치 부여 등의 방식으로 API를 분배할 수 있다.The
기존의 로드 밸런싱 방식은 서버 앞단에 물리적인 스위치 장치를 두고 외부에서 들어오는 모든 요청을 해당 스위치 장치를 통해 분배하였다. 그러나, 이러한 물리적인 방법은 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
도 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
라우팅부(121)는 상기 외부 시스템과 연관된 서비스를 HTTP/JSON 기반의 API로 제공할 수 있다.The
모니터링부(122)는 API의 상태를 모니터링할 수 있다. 구체적으로, 모니터링부(122)는 API 호출 요청 각각에 대해 트랜잭션 ID를 부여하여 API의 요청부터 응답까지 전체적인 흐름과 상태에 대한 모니터링을 수행할 수 있다. 이 경우, 모니터링부(122)는 API를 기설정된 구간마다 로깅하여 메시지 처리 과정에 대한 소요 시간 및 오류를 추적 가능하도록 함으로써, 장애 발생시 보다 신속하게 대응하도록 할 수 있다. 한편, 모니터링부(122)는 변환 중개 서버(120) 외에 API 게이트웨이(110)에도 포함될 수 있다. 이 때, API 게이트웨이(110)에 포함된 모니터링부(122)의 기능은 실질적으로 동일할 수 있다.The
구체적으로, 모니터링부(122)는 각 API 호출 요청마다 별도의 트랜잭션 ID를 부여하여 클라이언트(10)-API 게이트웨이(110)-변환 중개 서버(120)-원격 시스템(20) 사이의 각 단계별 프로세스 데이터를 확인 가능하도록 할 수 있다. 만약, API 관리 시스템(100)에서 내부적으로 오류가 발생한 경우, 트랜잭션 ID를 통해 어느 부분에서 오류가 발생하였는지 용이하게 확인할 수 있어 신속한 대처가 가능하다. 이와 같은 방식으로 축적된 데이터를 이용하여 API 호출 요청마다 성공/실패 등의 기본 정보와 함께 프로세스 시간 등의 통계 데이터도 제공할 수 있다.Specifically, the
커스텀 변환부(123)는 API에 대한 메시지 변환 규칙을 정의할 수 있다. 예를 들면, 커스텀 변환부(123)는 메시지 변환 규칙을 스크립트(script) 형태로 정의할 수 있다. 이처럼, 스크립트 형태로 메시지 변환 규칙을 정의하는 경우에는 별도의 코딩이나 서비스의 재시작 없이 새로운 규칙을 적용할 수 있다.The
기존의 메시지 변환 방식은 메시지 변환 로직을 추가할 경우 별도로 개발 후 프로그램 재기동을 통해 제공해야 하였다. 반면, 본 문서에 개시된 일 실시예에 따른 변환 중개 서버(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
메시지 변환부(124)는 메시지 변환 규칙에 따라 API에 포함된 메시지를 변환할 수 있다. 예를 들면, 메시지 변환부(124)는 API의 헤더 및 바디 중 적어도 하나에 있는 메시지를 변환할 수 있다. 또한, 메시지 변환부(124)는 메시지마다 기설정된 변환을 수행할 수 있다. 예를 들면, 메시지 변환부(124)는 암호/복호화, 마스킹, 패딩(padding), 인코딩/디코딩, 유효성 체크(validation check) 등을 수행할 수 있다. 이를 통해, 메시지 변환부(124)는 다양한 원격 시스템의 통신 환경에 따라 다양하게 변환된 메시지 형태를 제공할 수 있다.The
또한, 메시지 변환부(124)는 다양한 원격 시스템과 연계 가능한 복수의 통신 프로토콜을 제공할 수 있다. 예를 들면, 메시지 변환부(124)에서 제공하는 통신 프로토콜은 TCP/IP, JDBC, HTTP 등을 포함할 수 있다. 즉, 메시지 변환부(124)는 메시지 변환을 하면서 전후에 통신 프로토콜의 변환을 수행할 수 있다.In addition, the
변환 중개 서버(120)에서 API 호출 요청을 수신하는 경우, 프록시(예를 들면, 다른 네트워크 서비스로부터 요청에 따른 중개 기능)와 브릿지(예를 들면, 각 메시지별 계산이나 설정된 작업을 통해 데이터 변경하는 기능)가 순차적으로 호출되어 원격 시스템에 데이터를 요청할 수 있다. 이 경우, 메시지 변환부(124)는 각 단계별로 전달되는 API 호출의 헤더나 바디에 있는 메시지(파라미터)에 기본적으로 제공되는 변환 규칙이나 커스텀 변환부(123)에 의해 생성된 변환 규칙을 적용함으로써, 사용자가 원하는 프로세스를 단계별로 적용시킬 수 있다.When receiving an API call request from the
도 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 관리 방법은 고객사 시스템에서 별도의 리소스를 개발할 필요가 없어 사용자들에게 제공하는 다운타임이 발생하지 않으므로 원활한 서비스를 제공할 수 있다.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
MCU(1010)는 메모리(1020)에 저장되어 있는 각종 프로그램(예를 들면, API 관리(라우팅, 필터링, 모니터링 등) 프로그램, 메시지 변환 프로그램 등)을 실행시키고, 이러한 프로그램들을 통해 API 호출 요청, 트랜잭션 ID, 각종 메시지 등 각종 데이터를 처리하며, 전술한 도 2에 나타낸 API 관리 시스템(100)의 기능들을 수행하도록 하는 프로세서일 수 있다.The
메모리(1020)는 API 관리와 메시지 변환 등에 관한 각종 프로그램을 저장할 수 있다. 또한, 메모리(1020)는 클라이언트로부터 수신한 API 호출 요청, 변환 중개 서버(120)를 통해 생성된 트랜잭션 ID, 메시지 등 각종 데이터를 저장할 수 있다.The
이러한 메모리(1020)는 필요에 따라서 복수 개 마련될 수도 있을 것이다. 메모리(1020)는 휘발성 메모리일 수도 있으며 비휘발성 메모리일 수 있다. 휘발성 메모리로서의 메모리(1020)는 RAM, DRAM, SRAM 등이 사용될 수 있다. 비휘발성 메모리로서의 메모리(1020)는 ROM, PROM, EAROM, EPROM, EEPROM, 플래시 메모리 등이 사용될 수 있다. 상기 열거한 메모리(1020)들의 예를 단지 예시일 뿐이며 이들 예로 한정되는 것은 아니다.A plurality of
입출력 I/F(1030)는, 키보드, 마우스, 터치 패널 등의 입력 장치(미도시)와 디스플레이(미도시) 등의 출력 장치와 MCU(1010) 사이를 연결하여 데이터를 송수신할 수 있도록 하는 인터페이스를 제공할 수 있다.The input/output I/
통신 I/F(1040)는 서버와 각종 데이터를 송수신할 수 있는 구성으로서, 유선 또는 무선 통신을 지원할 수 있는 각종 장치일 수 있다. 예를 들면, 통신 I/F(1040)를 통해 별도로 마련된 외부 서버로부터 API 관리와 메시지 변환 등을 위한 프로그램이나 API 호출 요청, 트랜잭션 ID, 메시지 등 각종 데이터 등을 송수신할 수 있다.The communication I/
이와 같이, 본 문서에 개시된 일 실시예에 따른 컴퓨터 프로그램은 메모리(1020)에 기록되고, MCU(1010)에 의해 처리됨으로써, 예를 들면 도 2에서 도시한 각 기능들을 수행하는 모듈로서 구현될 수도 있다.In this way, the computer program according to the exemplary embodiment disclosed in this document is recorded in the
이상에서, 본 문서에 개시된 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 문서에 개시된 실시예들이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 문서에 개시된 실시예들의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 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/F10: 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 호출 요청 별로 트랜잭션 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.
상기 요청 처리부는 이벤트 루프를 통해 비동기적 방식으로 상기 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.
상기 필터부는 상기 로직에 따라 상기 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.
상기 필터부는 상기 로직에 따라 상기 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.
상기 장애 전파 방지부는 상기 외부 시스템 중 응답 오류가 임계치 이상 발생한 장애 시스템에 대하여 상기 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.
상기 장애 전파 방지부는 상기 장애 시스템에 상기 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.
상기 장애 전파 방지부는 상기 장애 시스템에 상기 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.
상기 로드 밸런싱부는 상기 스위칭 프로세스에 등록된 서비스의 그룹 단위로 기설정된 값에 따라 상기 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.
상기 라우팅부는 상기 외부 시스템과 연계 가능한 복수의 통신 프로토콜을 제공하는 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.
상기 커스텀 변환부는 상기 메시지 변환 규칙을 스크립트(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.
상기 메시지 변환부는 상기 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.
상기 메시지 변환부는 상기 메시지마다 기설정된 변환을 수행하는 API 관리 시스템.The method according to claim 1,
The message conversion unit API management system for performing a preset conversion for each of the messages.
상기 필터부는 상기 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 호출 요청 별로 트랜잭션 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.
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)
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)
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 |
-
2021
- 2021-02-09 KR KR1020210018050A patent/KR102256736B1/en active IP Right Grant
Patent Citations (3)
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)
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 |