KR102262093B1 - Gateway apparatus, and control method thereof - Google Patents

Gateway apparatus, and control method thereof Download PDF

Info

Publication number
KR102262093B1
KR102262093B1 KR1020200090892A KR20200090892A KR102262093B1 KR 102262093 B1 KR102262093 B1 KR 102262093B1 KR 1020200090892 A KR1020200090892 A KR 1020200090892A KR 20200090892 A KR20200090892 A KR 20200090892A KR 102262093 B1 KR102262093 B1 KR 102262093B1
Authority
KR
South Korea
Prior art keywords
query
api
client
call
gateway device
Prior art date
Application number
KR1020200090892A
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 한국과학기술정보연구원
Priority to KR1020200090892A priority Critical patent/KR102262093B1/en
Application granted granted Critical
Publication of KR102262093B1 publication Critical patent/KR102262093B1/en

Links

Images

Classifications

    • H04L67/2838
    • 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/567Integrating service provisioning from a plurality of service providers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • H04L67/16
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Abstract

The present invention relates to a gateway device capable of providing micro-services to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other and an operating method thereof.

Description

게이트웨이장치 및 그 동작 방법{GATEWAY APPARATUS, AND CONTROL METHOD THEREOF}Gateway device and its operation method {GATEWAY APPARATUS, AND CONTROL METHOD THEREOF}

본 발명은 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트에 대해 마이크로 서비스를 제공하기 위한 방안에 관한 것이다.The present invention relates to a method for providing microservices to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other.

다양한 분야의 과학기술 지식인프라와 제반 기술의 발전에 힘입어 이와 관련하여 클라이언트로부터 요구되는 다양한 쿼리(Query)에 대한 응답을 API(Application Programming Interface) 형태로 제공하는 API 서비스가 일반화된 추세이다.Thanks to the development of scientific and technological knowledge infrastructure and related technologies in various fields, API services that provide responses to various queries requested by clients in the form of API (Application Programming Interface) are becoming common.

헌데, 최근에는 각 분야의 과학기술 지식인프라에서 제공되던 하나의 API 서비스를 작은 단위로 구분하여 이에 대한 변경과 조합이 가능한 형태인 마이크로 서비스에 대한 요구가 증가되고 있다.However, recently, there is an increasing demand for microservices that can be changed and combined by dividing one API service provided by the science and technology knowledge infrastructure in each field into small units.

더욱이 점점 진화되는 클라이언트의 요구를 충족시키기 위해선 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 과학기술 지식인프라를 구축할 필요가 있다.Moreover, in order to meet the ever-evolving needs of clients, it is necessary to build an integrated science and technology knowledge infrastructure that links the science and technology knowledge infrastructures of individual fields with each other.

이에, 본 발명에서는, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 마이크로 서비스를 제공할 수 있는 새로운 방안을 제안하고자 한다.Accordingly, in the present invention, it is intended to propose a new method for providing microservices in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other.

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트에 대해 마이크로 서비스를 제공하는 데 있다.The present invention was created in view of the above circumstances, and an object of the present invention is to provide microservices to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 게이트웨이장치는, 클라이언트로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인하는 확인부; 상기 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단하는 판단부; 및 상기 판단 결과에 기초한 호출 방식에 따라 상기 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 상기 2 이상의 API 서버로부터 확인되면, 상기 클라이언트로부터 수신된 쿼리에 대한 응답이 전달되도록 하는 라우팅부를 포함하는 것을 특징으로 한다.In a gateway device according to an embodiment of the present invention for achieving the above object, when a query is received from a client, the received query is a package query that requires calls of two or more API servers providing respective microservices. Confirmation unit to check whether it is recognized; a determination unit that determines whether there is a sequence attribute that the package query may have; and a routing unit that calls the two or more API servers according to a calling method based on the determination result, and transmits a response to the query received from the client when a response to the call is confirmed from the two or more API servers characterized in that

구체적으로, 상기 판단부는, 상기 패키지 쿼리로부터 상기 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하는 것으로 판단할 수 있다.Specifically, when it is requested that the result of the call to a specific API server among the two or more API servers from the package query be an input value of any one API server other than the specific API server, the package query It can be determined that the order attribute exists in .

구체적으로, 상기 라우팅부는, 상기 2 이상의 API 서버 중 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 상기 패키지 쿼리에 존재하는 상기 순서 속성에 따른 호출 방식에 따라 상기 특정 API 서버에 대한 호출을 반복할 수 있다.Specifically, when a response to a call is not received from a specific API server among the two or more API servers, the routing unit makes a call to the specific API server according to a call method according to the order attribute present in the package query. Can be repeated.

구체적으로, 상기 판단부는, 상기 패키지 쿼리로부터 상기 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단할 수 있다.Specifically, when calls to each of the two or more API servers are collectively requested from the package query, the determination unit may determine that the order attribute does not exist in the package query.

구체적으로, 상기 게이트웨이장치는, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단되는 경우, 상기 클라이언트로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지변환부를 더 포함할 수 있다.Specifically, the gateway device, when it is determined that the order attribute does not exist in the package query, further includes a message conversion unit for converting a synchronous (Sync) type query received from the client into an asynchronous (Async) method can do.

구체적으로, 상기 라우팅부는, 상기 비동기 방식에 따라 상기 2 이상의 API 서버를 일괄 호출하여, 상기 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 할 수 있다.Specifically, the routing unit may collectively call the two or more API servers according to the asynchronous method so that responses from each API server are received according to a response speed supported by the two or more API servers.

구체적으로, 상기 게이트웨이장치는, 상기 클라이언트와 상기 게이트웨이장치 간에 REST(Representational State Transfer) 메시지가 사용되며, 상기 게이트웨이장치와 API 서버 간에 바이너리 메시지가 사용되는 경우, 상기 REST 메시지와 상기 바이너리 메시지 간 프로토콜을 변환하는 메시지프로토콜변환부를 더 포함할 수 있다.Specifically, in the gateway device, when a REST (Representational State Transfer) message is used between the client and the gateway device, and a binary message is used between the gateway device and the API server, the protocol between the REST message and the binary message is It may further include a message protocol conversion unit for converting.

구체적으로, 상기 게이트웨이장치는, 상기 클라이언트로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 상기 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 상기 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 상기 2 이상의 API 서버가 호출되도록 하는 로드밸런싱부를 더 포함할 수 있다.Specifically, the gateway device, when it is possible to call two or more API servers providing the same microservice according to a query received from the client, based on at least one of performance and failure occurrence of each of the two or more API servers It may further include a load balancing unit that sets a weight for each of the two or more API servers, so that the two or more API servers are called according to the set weight.

구체적으로, 상기 게이트웨이장치는, 상기 클라이언트로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 상기 클라이언트에 대해 토큰을 발급하며, 쿼리를 전달하는 상기 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 상기 클라이언트로부터의 쿼리에 대해 API 서버의 호출을 인가(Authorization)하는 보안처리부를 더 포함할 수 있다.Specifically, the gateway device issues a token to the client by performing authentication based on authentication information received from the client, and only when the token issued from the client transmitting the query is confirmed It may further include a security processing unit for authorizing the call of the API server for the query from the client.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 게이트웨이장치의 동작 방법은, 클라이언트로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인하는 확인단계; 상기 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단하는 판단단계; 및 상기 판단 결과에 기초한 호출 방식에 따라 상기 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 상기 2 이상의 API 서버로부터 확인되면, 상기 클라이언트로부터 수신된 쿼리에 대한 응답이 전달되도록 하는 라우팅단계를 포함하는 것을 특징으로 한다.In a method of operating a gateway device according to an embodiment of the present invention for achieving the above object, when a query is received from a client, the received query requires calls of two or more API servers providing respective microservices. A confirmation step of checking whether it is a package query; a determining step of determining whether there is a sequence attribute that the package query can have; and a routing step of calling the two or more API servers according to a calling method based on the determination result, and transmitting a response to the query received from the client when a response to the call is confirmed from the two or more API servers characterized in that

구체적으로, 상기 판단단계는, 상기 패키지 쿼리로부터 상기 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하는 것으로 판단할 수 있다.Specifically, in the determining step, when it is requested that the result of a call to a specific API server among the two or more API servers from the package query be an input value of any one API server other than the specific API server, the package It may be determined that the order attribute exists in the query.

구체적으로, 상기 라우팅단계는, 상기 2 이상의 API 서버 중 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 상기 패키지 쿼리에 존재하는 상기 순서 속성에 따른 호출 방식에 따라 상기 특정 API 서버에 대한 호출을 반복할 수 있다.Specifically, in the routing step, when a response to a call is not received from a specific API server among the two or more API servers, a call is made to the specific API server according to a calling method according to the order attribute present in the package query. can be repeated.

구체적으로, 상기 판단단계는, 상기 패키지 쿼리로부터 상기 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단할 수 있다.Specifically, in the determining step, when calls to each of the two or more API servers are collectively requested from the package query, it may be determined that the order attribute does not exist in the package query.

구체적으로, 상기 방법은, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단되는 경우, 상기 클라이언트로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지변환단계를 더 포함할 수 있다.Specifically, when it is determined that the order attribute does not exist in the package query, the method further includes a message conversion step of converting a synchronous type query received from the client to an asynchronous (Async) method can do.

구체적으로, 상기 라우팅단계는, 상기 비동기 방식에 따라 상기 2 이상의 API 서버를 일괄 호출하여, 상기 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 할 수 있다.Specifically, in the routing step, the two or more API servers are collectively called according to the asynchronous method, so that responses from each API server are received according to a response speed supported by the two or more API servers.

구체적으로, 상기 방법은, 상기 클라이언트와 상기 게이트웨이장치 간에 REST(Representational State Transfer) 메시지가 사용되며, 상기 게이트웨이장치와 API 서버 간에 바이너리 메시지가 사용되는 경우, 상기 REST 메시지와 상기 바이너리 메시지 간 프로토콜을 변환하는 메시지프로토콜변환단계를 더 포함할 수 있다.Specifically, in the method, when a REST (Representational State Transfer) message is used between the client and the gateway device, and a binary message is used between the gateway device and the API server, a protocol between the REST message and the binary message is converted It may further include a message protocol conversion step.

구체적으로, 상기 방법은, 상기 클라이언트로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 상기 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 상기 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 상기 2 이상의 API 서버가 호출되도록 할 수 있다.Specifically, in the method, when two or more API servers providing the same microservice can be called according to a query received from the client, based on at least one of the performance and failure of each of the two or more API servers, the By setting weights for each of the two or more API servers, the two or more API servers may be called according to the set weights.

구체적으로, 상기 방법은, 상기 클라이언트로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 상기 클라이언트에 대해 토큰을 발급하며, 쿼리를 전달하는 상기 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 상기 클라이언트로부터의 쿼리에 대해 API 서버의 호출을 인가(Authorization)하는 보안처리단계를 더 포함할 수 있다.Specifically, the method issues a token to the client by performing authentication based on authentication information received from the client, and only when the token issued from the client transmitting the query is confirmed It may further include a security processing step of authorizing the call of the API server for the query from the client (Authorization).

이에, 본 발명의 게이트웨이장치 및 그 동작 방법에서는, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트(100)에 대해 마이크로 서비스를 제공할 수 있는 환경이 마련되므로, 사용자의 만족도를 크게 제고하는 효과를 성취할 수 있다.Accordingly, in the gateway device and its operating method of the present invention, an environment is provided that can provide microservices to the client 100 in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other, thereby greatly increasing user satisfaction. enhancement effect can be achieved.

도 1은 본 발명의 일 실시예에 따른 통합 과학기술 지식인프라 환경을 설명하기 위한 예시도.
도 2는 본 발명의 일 실시예에 따른 게이트웨이장치의 개략적인 구성도.
도 3은 본 발명의 일 실시예에 따른 보안 처리 방식을 설명하기 위한 예시도.
도 4는 본 발명의 일 실시예에 따른 메시지 전환 방식을 설명하기 위한 예시도.
도 5는 본 발명의 일 실시예에 따른 게이트웨이장치의 동작 방법을 설명하기 위한 순서도.
1 is an exemplary diagram for explaining an integrated science and technology knowledge infrastructure environment according to an embodiment of the present invention.
2 is a schematic configuration diagram of a gateway device according to an embodiment of the present invention;
3 is an exemplary diagram for explaining a security processing method according to an embodiment of the present invention.
4 is an exemplary diagram for explaining a message conversion method according to an embodiment of the present invention.
5 is a flowchart illustrating a method of operating a gateway device according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

본 발명의 일 실시예에서는, 개별 분야의 과학기술 지식인프라를 상호 연계시킨 통합 환경에서 클라이언트에 대해 마이크로 서비스를 제공하기 위한 기술을 다룬다.In one embodiment of the present invention, a technology for providing microservices to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are interconnected is dealt with.

이와 관련하여, 다양한 분야의 과학기술 지식인프라 구축 및 그에 따른 제반 기술의 발전에 힘입어 각 개별 분야의 과학기술 지식인프라에서는, 클라이언트로부터 요구되는 다양한 쿼리(Query)에 대한 응답을 API(Application Programming Interface) 형태로 제공하는 API 서비스를 제공할 수 있다.In this regard, thanks to the construction of scientific and technological knowledge infrastructure in various fields and the development of related technologies, in the scientific and technological knowledge infrastructure of each individual field, responses to various queries requested from clients are provided by API (Application Programming Interface). ) in the form of API services.

최근에는 클라이언트의 요구에 따라 이처럼 개별 분야의 과학기술 지식인프라에서 제공되는 하나의 API 서비스를 작은 단위로 구분하여 이에 대한 변경과 조합이 가능한 형태인 마이크로 서비스로 제공하는 것에 대한 요구가 증가되고 있는 실정이다.Recently, according to the needs of clients, there is an increasing demand for providing a microservice in a form that can be changed and combined by dividing one API service provided by the science and technology knowledge infrastructure in each field into small units. to be.

더욱이 점점 진화되고 있는 클라이언트의 요구를 충족시키기 위해선 개별 분야의 과학기술 지식인프라 단위로 마이크로 서비스를 제공하는 것에 머무는 것이 아닌, 개별 분의 과학기술 지식인프라를 서로 연계시킨 통합 과학기술 지식인프라 환경에서, 마이크로 서비스를 제공할 필요가 있다.Moreover, in order to meet the evolving needs of clients, it is not limited to providing microservices in units of science and technology knowledge infrastructure in each field, but in an integrated science and technology knowledge infrastructure environment that connects each individual science and technology knowledge infrastructure with each other. We need to provide microservices.

이에, 본 발명에서는, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트에 대해 마이크로 서비스를 제공할 수 있는 새로운 방안을 제안하고자 하는 것이다.Accordingly, the present invention intends to propose a new method for providing microservices to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other.

이와 관련하여, 도 1에서는 본 발명의 일 실시예에 따른 통합 과학기술 지식인프라 환경을 예시적으로 보여주고 있다.In this regard, FIG. 1 exemplarily shows an integrated science and technology knowledge infrastructure environment according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 통합 과학기술 지식 인프라 환경에서는, 클라이언트(100)로부터 요구되는 쿼리(Query)에 대해 통합서비스인프라(300) 내에서 각각의 마이크로 서비스를 제공하는 API 서버를 호출하여 그에 따른 응답을 클라이언트(100)로 전달하는 게이트웨이장치(200)의 구성을 제안한다.As shown in FIG. 1 , in the integrated science and technology knowledge infrastructure environment according to an embodiment of the present invention, each microservice is provided in the integrated service infrastructure 300 for a query requested from the client 100 . A configuration of the gateway device 200 that calls the provided API server and transmits a corresponding response to the client 100 is proposed.

여기서, 클라이언트(100)는 HTTP 기반 쿼리(Query)를 게이트웨이장치(200)로 전달하고, 그에 따른 응답을 게이트웨이장치(200)로부터 수신하는 장치를 일컫는 것으로서, 예컨대, 데스크 탑 또는 모바일 컴퓨팅 장치에 설치된 어플리케이션(Application)의 형태로 구현될 수 있다.Here, the client 100 refers to a device that transmits an HTTP-based query to the gateway device 200 and receives a corresponding response from the gateway device 200 , for example, installed on a desktop or mobile computing device. It may be implemented in the form of an application (Application).

게이트웨이장치(200)는 통합서비스인프라(300) 앞 단에서 통합서비스인프라(300) 내 모든 API 서버들의 end-point를 표준화할 수 있는 장치를 일컫는 것으로서, 예컨대, API에 대한 인증/인가 또는 클라이언트(100)의 메시지를 각각의 마이크로서비스(API 서버)로 라우팅하는 기능 등을 포함하는 다양한 기능을 담당한다.The gateway device 200 refers to a device capable of standardizing the end-point of all API servers in the integrated service infrastructure 300 at the front end of the integrated service infrastructure 300, for example, authentication/authorization for API or client ( 100) is responsible for various functions, including the ability to route messages to each microservice (API server).

참고로 이러한, 게이트웨이장치(200)는 프록시 서버 등의 형태로 구현될 수 있으며, 네트워크 부하 분산 메커니즘, 내지 서비스 장치가 인터넷 또는 다른 네트워크 상에서 동작할 수 있도록 하는 다양한 소프트웨어 중 하나 이상이 설치될 수 있으며, 이를 통해 컴퓨터화된 시스템으로도 구현될 수 있다.For reference, the gateway device 200 may be implemented in the form of a proxy server, etc., and one or more of a variety of software that allows a network load balancing mechanism, or a service device to operate on the Internet or other networks may be installed. , through which it can also be implemented as a computerized system.

이상 본 발명의 일 실시예에 따른 통합 과학기술 지식인프라 환경에서는, 위 구성을 통해서 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트(100)에 대해 마이크로 서비스를 제공할 수 있는데, 이하에서는 이를 실현하기 위한 게이트웨이장치(200)의 구성에 대 보다 구체적으로 설명하기로 한다.As described above, in the integrated science and technology knowledge infrastructure environment according to an embodiment of the present invention, microservices can be provided to the client 100 in the integrated environment in which the science and technology knowledge infrastructures of individual fields are linked with each other through the above configuration. The configuration of the gateway device 200 for realizing this will be described in more detail.

도 2는 본 발명의 일 실시예에 따른 게이트웨이장치(200)의 개략적인 구성을 보여주고 있다.2 shows a schematic configuration of a gateway device 200 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 게이트웨이장치(200)는 클라이언트(100)로부터 수신되는 쿼리(Query)의 속성을 확인하는 확인부(210), 순서(Sequence) 속성을 판단하는 판단부(220), 동기(Sync) 방식과 비동기(Async) 방식 간 메시지 전환을 수행하는 메시지변환부(230), 쿼리를 라우팅하는 라우팅부(240), 및 클라이언트(100)로부터 수신된 쿼리에 대한 응답을 전달하는 응답부(250)를 포함하는 구성을 가질 수 있다.As shown in FIG. 2 , the gateway device 200 according to an embodiment of the present invention checks the checking unit 210 for checking the properties of the query received from the client 100 and the sequence property. The determination unit 220 for determining, the message conversion unit 230 for performing message conversion between the synchronous (Sync) method and the asynchronous (Async) method, the routing unit 240 for routing the query, and the client 100 It may have a configuration including a response unit 250 that delivers a response to a query.

이러한, 확인부(210), 판단부(220), 메시지변환부(230), 라우팅부(240), 및 응답부(250)를 포함하는 위 구성의 조합은, 본 발명의 일 실시예에서 오케스트레이션(Ochestration)이라 칭할 수 있으며, 이는 여러 개의 API를 하나의 API로 묶어 새로운 서비스를 제공하는 개념인 것으로 이해될 수 있다.This, the combination of the above configuration including the confirmation unit 210, the determination unit 220, the message conversion unit 230, the routing unit 240, and the response unit 250, orchestration in an embodiment of the present invention (Ochestration), which can be understood as a concept of providing a new service by tying several APIs into one API.

또한, 본 발명의 일 실시예에 따른 게이트웨이장치(200)는 전술한 구성 이외에, 메시지 프로토콜을 변환하는 메시지프로토콜변환부(260)를 더 포함할 수 있다.In addition, the gateway device 200 according to an embodiment of the present invention may further include a message protocol conversion unit 260 for converting a message protocol in addition to the above-described configuration.

여기서, 오케스트레이션(Ochestration)에 해당하는 전술의 구성 및 메시지프로토콜변환부(260)를 포함하는 구성 조합은, 본 발명의 일 실시예서 라우팅 필터(Routing Filters)로 통칭될 수 있다.Here, the combination of the above-described configuration corresponding to the orchestration and the configuration including the message protocol conversion unit 260 may be collectively referred to as routing filters in an embodiment of the present invention.

또한, 본 발명의 일 실시예에 따른 게이트웨이장치(200)는 전술한 구성 이외에, API 서버 간 부하 분산을 처리하는 로드밴런싱부(270), 클라이언트(100)에 대한 인증(Identification) 및 인가(Authorization)를 처리하는 보안처리부(280), 및 API 호출 로그를 관리하는 로깅부(290)를 더 포함할 수 있다.In addition, the gateway device 200 according to an embodiment of the present invention includes, in addition to the above-described configuration, the load ban lancing unit 270 for processing load distribution between API servers, and authentication and authorization for the client 100 . ) may further include a security processing unit 280 for processing, and a logging unit 290 for managing API call logs.

여기서, 로드밴런싱부(270), 보안처리부(280), 및 로깅부(290)를 포함하는 구성 조합은, 본 발명의 일 실시예에서 프리 라우팅 필터(Pre Routing Filters)로 통칭될 수 있다.Here, the configuration combination including the load ban lancing unit 270 , the security processing unit 280 , and the logging unit 290 may be collectively referred to as pre-routing filters in an embodiment of the present invention.

이상 언급한 게이트웨이장치(200)의 전체 구성 내지는 적어도 일부의 구성은 소프트웨어 모듈 또는 하드웨어 모듈 형태로 구현되거나, 내지는 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.The entire configuration or at least a part of the above-mentioned gateway device 200 may be implemented in the form of a software module or a hardware module, or may be implemented in a form in which a software module and a hardware module are combined.

여기서, 소프트웨어 모듈이란, 예컨대, 게이트웨이장치(200)에 내에서 연산을 수행하는 프로세서에 의해 실행되는 기능인 필터(Filter) 형태로 구현될 수 있으며, 이러한 필터들은 별도의 관리주체(Manager)를 통한 조회, 입력, 수정, 및 삭제 등이 가능하다.Here, the software module may, for example, be implemented in the form of a filter, which is a function executed by a processor that performs an operation within the gateway device 200, and these filters are inquired through a separate manager. , input, modification, and deletion are possible.

이상, 본 발명의 일 실시예에 따른 게이트웨이장치(200)는 전술한 구성을 통해 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트(100)에 대해 마이크로 서비스를 제공할 수 있는데, 이하에서는 이를 실현하기 위한 게이트웨이장치(200) 내 각 구성에 대해 보다 구체적인 설명을 이어 가기로 한다.As described above, the gateway device 200 according to an embodiment of the present invention can provide microservices to the client 100 in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other through the above-described configuration. A more detailed description of each configuration in the gateway device 200 for realizing this will be continued.

특히, 이하의 설명에서는 게이트웨이장치(200)의 핵심 구성에 해당하는 오케스트레이션의 구성을 중심으로 설명을 이어 가기로 한다.In particular, in the following description, the description will be continued focusing on the configuration of the orchestration corresponding to the core configuration of the gateway device 200 .

확인부(210)는 클라이언트(100)로부터의 쿼리(Query)를 확인하는 기능을 수행한다.The check unit 210 performs a function of checking a query from the client 100 .

보다 구체적으로, 확인부(210)는 클라이언트(100)로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인하게 된다.More specifically, when a query (Query) is received from the client 100, the check unit 210 checks whether the received query is a package query that requires calls of two or more API servers providing each microservice. do.

한편, 이러한 확인부(210)의 기능 수행과 관련하여, 보안처리부(280)는 클라이언트(100)에 대한 인증(Identification) 및 인가(Authorization)를 처리하게 된다.Meanwhile, in relation to the performance of the function of the verification unit 210 , the security processing unit 280 processes authentication and authorization for the client 100 .

즉, 보안처리부(280)는 도 3 (a)에 도시된 바와 같이, 클라이언트(100)로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 클라이언트(100)에 대해 토큰을 발급하며, 이후, 도 3(b)에 도시된 바와 같이 쿼리를 전달(API 호출)하는 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 클라이언트(100)의 쿼리에 대해 API 서버의 호출을 인가(Authorization)한다.That is, as shown in FIG. 3 (a), the security processing unit 280 issues a token to the client 100 by performing authentication based on the authentication information received from the client 100, and then , as shown in Fig. 3(b), only when the token issued from the client that transmits the query (API call) is confirmed, the call of the API server is authorized for the query of the client 100 (Authorization).

다시 말해, 클라이언트(100)는 매번 사용자 ID와 비밀번호를 받는 것이 아니라 API를 호출할 수 있는 별도의 토큰을 발급받게 되며, 이를 통해 쿼리(API 호출) 시마다 클라이언트(100)로부터 확인되는 토큰과 토큰 저장소에 기 저장된 데이터를 비교한 결과에 따라 클라이언트(100)에 대한 API 호출 가능 여부가 결정될 수 있는 것이다.In other words, the client 100 does not receive a user ID and password every time, but is issued a separate token that can call the API, and through this, the token and token storage that are checked from the client 100 every time a query (API call) is made. Whether or not an API call to the client 100 is possible may be determined according to a result of comparing the data previously stored in the .

참고로, 본 발명의 일 실시예에서의 인가(Authorization)는 API를 호출할 수 있는 권한이 있는지 여부를 확인하는 절차로서, 예컨대, 일반 사용자와 관리자가 있다고 가정하면, 역할 별로 토큰을 발급하여, 토큰으로부터 확인되는 역할에 따라 그에 상응하는 API 호출 권한을 부여할 수 있다.For reference, Authorization in an embodiment of the present invention is a procedure to check whether or not there is an authority to call an API. For example, assuming that there are general users and administrators, by issuing tokens for each role, Depending on the role identified from the token, the corresponding API call permission can be granted.

판단부(220)는 순서(Sequence) 속성의 존재 유무를 판단하는 기능을 수행한다.The determination unit 220 performs a function of determining whether a sequence attribute exists.

보다 구체적으로, 판단부(220)는 클라이언트로부터 쿼리가 패키지 쿼리인 것으로 확인되는 경우, 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단하게 된다.More specifically, when it is confirmed from the client that the query is a package query, the determination unit 220 determines whether there is a sequence attribute that the package query can have.

이때, 판단부(220)는 패키지 쿼리로부터 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 패키지 쿼리에 순서 속성이 존재하는 것으로 판단할 수 있다.At this time, when it is requested that the result of a call to a specific API server among two or more API servers from the package query be the input value of any one API server except for the specific API server, the determination unit 220 may send the order attribute to the package query. can be judged to exist.

반면, 판단부(22)는 패키지 쿼리로부터 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 패키지 쿼리에 순서 속성이 존재하지 않는 것으로 판단하게 된다.On the other hand, when calls to each of two or more API servers are collectively requested from the package query, the determination unit 22 determines that the order attribute does not exist in the package query.

메시지변환부(230)는 메시지를 전환하는 기능을 수행한다.The message conversion unit 230 performs a function of converting a message.

보다 구체적으로, 메시지변환부(230)는 패키지 쿼리가 순서 속성이 존재하지 않는 것으로 판단되는 경우에 대해서, 클라이언트(100)로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지 전환을 수행하게 된다.More specifically, the message conversion unit 230 converts a synchronous (Sync) type query received from the client 100 into an asynchronous (Async) method when it is determined that the order attribute does not exist in the package query. Message conversion is performed.

관련하여, 본 발명의 일 실시예에서의 메시지 호출 패턴에는 동기(Sync) 호출과 비동기(Async) 호출이 존재할 수 있으며, 이에 대해 비동기 API 호출을 동기 호출로 변환하거나, 하나의 API 호출을 여러 마이크로 서비스 데이터 베이스로 복제하는 형태의 메시지 패턴으로 변화시키는 것이 가능하다.In relation to this, in the message call pattern in an embodiment of the present invention, there may be a synchronous (Sync) call and an asynchronous (Async) call, and for this, an asynchronous API call is converted into a synchronous call, or one API call is converted into several microcontrollers. It is possible to change the message pattern in the form of replication to the service database.

특히, API 서버가 대용량 트래픽에 대한 처리가 불가한 경우에 대해서는, 예컨대 도 4에 도시된 바와 같이, 클라이언트로부터의 쿼리 시 그에 따른 응답(ACK)을 바로 전달한 후, 메시지 큐(Queue)를 이용하여 API 서버의 성능에 따라 해당 메시지를 저장하는 것이 가능하다.In particular, when the API server cannot process large-capacity traffic, for example, as shown in FIG. 4 , a response (ACK) is immediately transmitted when a query is received from a client, and then a message queue is used to Depending on the performance of the API server, it is possible to store the corresponding message.

이에 따라, 클라이언트 입장에서는 동기 호출이지만 실제 메시지 흐름은 큐를 이용한 비동기 구조로 변경될 수 있는 것이다.Accordingly, it is a synchronous call from the client's point of view, but the actual message flow can be changed to an asynchronous structure using a queue.

라우팅부(240)는 API 서버에 대한 호출을 처리하는 기능을 수행한다.The routing unit 240 performs a function of processing a call to the API server.

보다 구체적으로, 라우팅부(240)는 패키지 쿼리가 가질 수 있는 순서 속성의 존재 유무에 따른 호출 방식에 따라, 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 2 이상의 API 서버로부터 확인되면, 응답부(250)로 하여금 클라이언트(100)로부터 수신된 쿼리에 대한 응답을 전달할 수 있도록 한다.More specifically, the routing unit 240 calls two or more API servers according to a calling method according to the presence or absence of an order attribute that may have a package query, and when a response to the call is confirmed from two or more API servers, a response Allows unit 250 to forward a response to a query received from client 100 .

이때, 라우팅부(240)는 패키지 쿼리가 가지는 순서 속성에 따라 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 특정 API 서버에 대한 호출 결과를 대기한 후 특정 API 서버로부터 수신되는 호출 결과를 나머지 어느 하나의 API 서버의 입력 값으로 전달하게 된다.In this case, the routing unit 240 requires that the result of a call to a specific API server among two or more API servers be the input value of any one API server other than the specific API server according to the order attribute of the package query. , after waiting for the result of a call to a specific API server, the call result received from the specific API server is delivered as an input value of any one of the other API servers.

한편, 라우팅부(240)는 이 과정에서 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 패키지 쿼리에 존재하는 순서 속성에 따른 호출 방식에 따라 특정 API 서버에 대한 호출을 반복하게 된다.On the other hand, when a response to the call is not received from the specific API server in this process, the routing unit 240 repeats the call to the specific API server according to the calling method according to the order attribute present in the package query.

반면, 라우팅부(240)는 패키지 쿼리에 순서 속성이 존재하지 않는 것으로 판단되어 클라이언트(100)로부터 수신되는 동기(Sync) 방식의 쿼리가 비동기(Async) 방식으로 전환된 경우, 비동기 방식에 따라 2 이상의 API 서버를 일괄 호출하여, 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 하고, 마지막 API 서버로부터의 응답이 수신되는 경우, 응답부(250)로 하여금 클라이언트(100)로부터 수신된 쿼리에 대한 응답을 전달할 수 있도록 한다On the other hand, the routing unit 240 determines that the order attribute does not exist in the package query and when the synchronous query received from the client 100 is switched to the asynchronous method, 2 according to the asynchronous method The above API servers are collectively called, so that responses from each API server are received according to the response speed supported by two or more API servers, and when a response from the last API server is received, the response unit 250 causes the client ( 100) to deliver a response to a query received from

한편, 이러한 라우팅부(240)의 기능 수행과 관련하여, 메시지프로토콜변환부(260)는, 메시지 프로토콜을 변환하는 기능을 수행할 수 있다.On the other hand, in relation to the performance of the function of the routing unit 240, the message protocol conversion unit 260 may perform a function of converting the message protocol.

즉, 메시지프로토콜변환부(260)는 클라이언트(100)와 게이트웨이장치(200) 간에 REST(Representational State Transfer) 메시지가 사용되며, 게이트웨이장치(200)와 API 서버 간에는 바이너리 메시지가 사용되는 경우, REST 메시지와 바이너리 메시지 간 프로토콜을 변환하게 된다.That is, the message protocol conversion unit 260 uses a REST (Representational State Transfer) message between the client 100 and the gateway device 200, and when a binary message is used between the gateway device 200 and the API server, REST message and the protocol conversion between binary messages.

다시 말해, 게이트웨이장치(200)에서 다양한 마이크로 서비스나 클라이언트를 지원하게 되면, 클라이언트(100)나 마이크로 서비스 별로 다른 통신 프로토콜을 사용해야 하는 경우가 발생할 수 있다.In other words, when the gateway device 200 supports various microservices or clients, there may be a case in which a different communication protocol must be used for each client 100 or microservice.

이와 관련하여, 본 발명의 일 실시예에서는, 클라이언트(100)와 게이트웨이장치(200) 간에 JSON기반의 REST 메시지가 사용되지만, 게이트웨이장치(200)와 API 서버 간에는 전송 속도 향상을 위한 바이너리 메시지를 사용할 수 있으며, 이에 대해 REST 메시지와 바이너리 메시지 간 프로토콜을 변환을 수행함으로써, 바이너리 메시지를 통해 내부 API 성능을 올리고 외부로는 REST 메시지를 사용하여 범용성을 확보할 수 있다.In this regard, in an embodiment of the present invention, a JSON-based REST message is used between the client 100 and the gateway device 200, but a binary message for improving the transmission speed between the gateway device 200 and the API server is used. In this regard, by converting the protocol between REST message and binary message, internal API performance can be increased through binary message, and versatility can be secured by using REST message externally.

또한, 로드밸런싱부(270)는 API 서버 간 부하 분산을 처리할 수 있다.Also, the load balancing unit 270 may handle load balancing between API servers.

즉, 로드밸런싱부(270)는 클라이언트(100)로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 2 이상의 API 서버가 호출되도록 할 수 있다.That is, when two or more API servers that provide the same microservice can be called according to a query received from the client 100, the load balancing unit 270 determines at least one of the performance and failure of each of the two or more API servers. By setting a weight for each of the two or more API servers based on it, two or more API servers may be called according to the set weight.

다시 말해, 로드밸런싱부(270)는 일반적인 호출에 대해선 각 API 서버의 하드웨어 스펙에 따른 성능을 기준으로 부하를 분산할 수 있으며, API 서버의 장애 발생 시에 대해서는, 장애가 발생한 API 서버를 로드 밸런싱 리스트에서 삭제하여 부하 분산에 참여할 수 없도록 하고, 이후 장애 복구 시에는 로드 밸런싱 리스트에 추가하여 부하 분산에 참여할 수 있도록 구현할 수 있다.In other words, the load balancing unit 270 can distribute the load based on the performance according to the hardware specifications of each API server for a general call, and when an API server failure occurs, the load balancing list of the failed API server It can be implemented so that it cannot participate in load balancing by deleting it from , and can participate in load balancing by adding it to the load balancing list when recovering from a subsequent failure.

또한, 로깅부(290)는 클라이언트(100)로부터 수신되는 쿼리에 따른 API 호출 로그를 관리할 수 있다.Also, the logging unit 290 may manage an API call log according to a query received from the client 100 .

즉, 본 발명의 일 실시예에서 게이트웨이장치(200)는 모든 API 서버들이 위치하는 통합서비스인프라(300) 앞 단에 위치하므로, 클라이언트(100)로부터 수신되는 쿼리에 상응하는 API 호출 로그를 관리함으로써, 이를 통해 API 호출 패턴 분석을 기반으로 각 사용자의 사용 패턴을 도출하거나, 문제 추적을 위한 Audit 자료로서의 활용을 가능하게 할 수 있다.That is, in an embodiment of the present invention, the gateway device 200 is located in front of the integrated service infrastructure 300 where all API servers are located, so by managing the API call log corresponding to the query received from the client 100 , , through this, it is possible to derive each user's usage pattern based on API call pattern analysis, or to use it as audit data for problem tracking.

이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 게이트웨이장치(200)의 구성에 따르면, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트(100)에 대해 마이크로 서비스를 제공할 수 있는 환경이 마련되므로, 사용자의 만족도를 크게 제고시킬 수 있다. 또한, 메시지 프로토콜 변환 기능이 지원됨에 따라, 기존 인프라에 신규 마이크로 서비스를 통합하는 것이 용이해지므로, 서비스 영역의 변경 및 확장을 가능하게 한다. 또한, API 호출 로그가 관리됨에 따라 이를 통한 각 사용자의 사용 패턴을 도출 및 장애 발생 시 그에 따른 인지 및 복구를 용이하게 할 수 있다.As described above, according to the configuration of the gateway device 200 according to an embodiment of the present invention, it is possible to provide microservices to the client 100 in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other. As an environment is provided, user satisfaction can be greatly improved. In addition, as the message protocol conversion function is supported, it becomes easy to integrate new microservices into the existing infrastructure, thereby enabling change and expansion of the service area. In addition, as the API call log is managed, it is possible to derive each user's usage pattern and facilitate recognition and recovery in case of a failure.

이상 본 발명의 일 실시예에 따른 게이트웨이장치(200)의 구성에 대한 설명을 마치고, 도 5를 참조하여 게이트웨이장치(200)의 동작 방법에 대한 설명을 이어 가기로 한다.After the description of the configuration of the gateway device 200 according to an embodiment of the present invention has been completed, the description of the operation method of the gateway device 200 will be continued with reference to FIG. 5 .

특히, 이하의 설명에서는 게이트웨이장치(200)의 핵심 구성에 해당하는 오케스트레이션의 동작 방법을 중심으로 설명을 이어 가기로 한다.In particular, in the following description, the description will be continued focusing on the operation method of the orchestration corresponding to the core configuration of the gateway device 200 .

먼저, 확인부(210)는 클라이언트(100)로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인한다(S10).First, when a query is received from the client 100 , the check unit 210 checks whether the received query is a package query that requires calls of two or more API servers providing respective microservices (S10). ).

한편, 이러한 확인부(210)의 기능 수행과 관련하여, 보안처리부(280)는 클라이언트(100)에 대한 인증(Identification) 및 인가(Authorization)를 처리하게 된다.Meanwhile, in relation to the performance of the function of the verification unit 210 , the security processing unit 280 processes authentication and authorization for the client 100 .

즉, 보안처리부(280)는 클라이언트(100)로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 클라이언트(100)에 대해 토큰을 발급하며, 이후, 쿼리를 전달(API 호출)하는 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 클라이언트(100)의 쿼리에 대해 API 서버의 호출을 인가(Authorization)한다.That is, the security processing unit 280 issues a token to the client 100 by performing authentication based on the authentication information received from the client 100 , and thereafter, from the client that transmits the query (API call) Only when the issued token is confirmed, the call of the API server is authorized for the query of the client 100 (Authorization).

다시 말해, 클라이언트(100)는 매번 사용자 ID와 비밀번호를 받는 것이 아니라 API를 호출할 수 있는 별도의 토큰을 발급받게 되며, 이를 통해 쿼리(API 호출) 시마다 클라이언트(100)로부터 확인되는 토큰과 토큰 저장소에 기 저장된 데이터를 비교한 결과에 따라 클라이언트(100)에 대한 API 호출 가능 여부가 결정될 수 있는 것이다.In other words, the client 100 does not receive a user ID and password every time, but is issued a separate token that can call the API, and through this, the token and token storage that are checked from the client 100 every time a query (API call) is made. Whether or not an API call to the client 100 is possible may be determined according to a result of comparing the data previously stored in the .

참고로, 본 발명의 일 실시예에서의 인가(Authorization)는 API를 호출할 수 있는 권한이 있는지 여부를 확인하는 절차로서, 예컨대, 일반 사용자와 관리자가 있다고 가정하면, 역할 별로 토큰을 발급하여, 토큰으로부터 확인되는 역할에 따라 그에 상응하는 API 호출 권한을 부여할 수 있다.For reference, Authorization in an embodiment of the present invention is a procedure to check whether or not there is an authority to call an API. For example, assuming that there are general users and administrators, by issuing tokens for each role, Depending on the role identified from the token, the corresponding API call permission can be granted.

그리고 나서, 판단부(220)는 클라이언트로부터 쿼리가 패키지 쿼리인 것으로 확인되는 경우, 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단한다(S20).Then, when it is confirmed from the client that the query is a package query, the determination unit 220 determines whether there is a sequence attribute that the package query can have ( S20 ).

이때, 판단부(220)는 패키지 쿼리로부터 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 패키지 쿼리에 순서 속성이 존재하는 것으로 판단할 수 있다.At this time, when it is requested that the result of a call to a specific API server among two or more API servers from the package query be the input value of any one API server except for the specific API server, the determination unit 220 may send the order attribute to the package query. can be judged to exist.

반면, 판단부(22)는 패키지 쿼리로부터 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 패키지 쿼리에 순서 속성이 존재하지 않는 것으로 판단하게 된다.On the other hand, when calls to each of two or more API servers are collectively requested from the package query, the determination unit 22 determines that the order attribute does not exist in the package query.

한편, 메시지변환부(230)는 앞선 단계 'S30'에서 패키지 쿼리가 순서 속성이 존재하지 않는 것으로 판단되는 경우에 대해서, 클라이언트(100)로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지 전환을 수행한다(S30-S40).On the other hand, the message conversion unit 230 asynchronously (Async) the query received from the client 100 in the case where it is determined that the order attribute does not exist in the package query in the previous step 'S30'. A message conversion is performed to switch the method (S30-S40).

관련하여, 본 발명의 일 실시예에서의 메시지 호출 패턴에는 동기(Sync) 호출과 비동기(Async) 호출이 존재할 수 있으며, 이에 대해 비동기 API 호출을 동기 호출로 변환하거나, 하나의 API 호출을 여러 마이크로 서비스 데이터 베이스로 복제하는 형태의 메시지 패턴으로 변화시키는 것이 가능하다.In relation to this, in the message call pattern in an embodiment of the present invention, there may be a synchronous (Sync) call and an asynchronous (Async) call, and for this, an asynchronous API call is converted into a synchronous call, or one API call is converted into several micro It is possible to change the message pattern in the form of replication to the service database.

특히, API 서버가 대용량 트래픽에 대한 처리가 불가한 경우에 대해서는, 클라이언트로부터의 쿼리 시 그에 따른 응답(ACK)을 바로 전달한 후, 메시지 큐(Queue)를 이용하여 API 서버의 성능에 따라 해당 메시지를 저장하는 것이 가능하다.In particular, when the API server cannot handle large-capacity traffic, the response (ACK) is immediately delivered when a query is made from the client, and then the corresponding message is sent according to the API server's performance using a message queue. It is possible to save

이에 따라, 클라이언트 입장에서는 동기 호출이지만 실제 메시지 흐름은 큐를 이용한 비동기 구조로 변경될 수 있는 것이다.Accordingly, it is a synchronous call from the client's point of view, but the actual message flow can be changed to an asynchronous structure using a queue.

이후, 라우팅부(240)는 패키지 쿼리가 가질 수 있는 순서 속성의 존재 유무에 따른 호출 방식에 따라, 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 2 이상의 API 서버로부터 확인되면, 응답부(250)로 하여금 클라이언트(100)로부터 수신된 쿼리에 대한 응답을 전달할 수 있도록 한다(S50-S60).Thereafter, the routing unit 240 calls two or more API servers according to a call method according to the presence or absence of an order attribute that may have a package query, and when a response to the call is confirmed from two or more API servers, the response unit ( 250) to deliver a response to the query received from the client 100 (S50-S60).

이때, 라우팅부(240)는 패키지 쿼리가 가지는 순서 속성에 따라 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 특정 API 서버에 대한 호출 결과를 대기한 후 특정 API 서버로부터 수신되는 호출 결과를 나머지 어느 하나의 API 서버의 입력 값으로 전달하게 된다.In this case, the routing unit 240 requires that the result of a call to a specific API server among two or more API servers be the input value of any one API server other than the specific API server according to the order attribute of the package query. , after waiting for the result of a call to a specific API server, the call result received from the specific API server is delivered as an input value of any one of the other API servers.

한편, 라우팅부(240)는 이 과정에서 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 패키지 쿼리에 존재하는 순서 속성에 따른 호출 방식에 따라 특정 API 서버에 대한 호출을 반복하게 된다.On the other hand, if a response to the call is not received from the specific API server in this process, the routing unit 240 repeats the call to the specific API server according to a call method according to the order attribute present in the package query.

반면, 라우팅부(240)는 패키지 쿼리에 순서 속성이 존재하지 않는 것으로 판단되어 클라이언트(100)로부터 수신되는 동기(Sync) 방식의 쿼리가 비동기(Async) 방식으로 전환된 경우, 비동기 방식에 따라 2 이상의 API 서버를 일괄 호출하여, 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 하고, 마지막 API 서버로부터의 응답이 수신되는 경우, 응답부(250)로 하여금 클라이언트(100)로부터 수신된 쿼리에 대한 응답을 전달할 수 있도록 한다On the other hand, the routing unit 240 determines that the order attribute does not exist in the package query and when the synchronous query received from the client 100 is switched to the asynchronous method, 2 according to the asynchronous method The above API servers are collectively called, so that responses from each API server are received according to the response speed supported by two or more API servers, and when a response from the last API server is received, the response unit 250 causes the client ( 100) to deliver a response to a query received from

한편, 이러한 라우팅부(240)의 기능 수행과 관련하여, 메시지프로토콜변환부(260)는, 메시지 프로토콜을 변환하는 기능을 수행할 수 있다.On the other hand, in relation to the performance of the function of the routing unit 240, the message protocol conversion unit 260 may perform a function of converting the message protocol.

즉, 메시지프로토콜변환부(260)는 클라이언트(100)와 게이트웨이장치(200) 간에 REST(Representational State Transfer) 메시지가 사용되며, 게이트웨이장치(200)와 API 서버 간에는 바이너리 메시지가 사용되는 경우, REST 메시지와 바이너리 메시지 간 프로토콜을 변환하게 된다.That is, the message protocol conversion unit 260 uses a REST (Representational State Transfer) message between the client 100 and the gateway device 200, and when a binary message is used between the gateway device 200 and the API server, REST message and the protocol conversion between binary messages.

다시 말해, 게이트웨이장치(200)에서 다양한 마이크로 서비스나 클라이언트를 지원하게 되면, 클라이언트(100)나 마이크로 서비스 별로 다른 통신 프로토콜을 사용해야 하는 경우가 발생할 수 있다.In other words, if the gateway device 200 supports various microservices or clients, there may be cases in which a different communication protocol must be used for each client 100 or microservice.

이와 관련하여, 본 발명의 일 실시예에서는, 클라이언트(100)와 게이트웨이장치(200) 간에 JSON기반의 REST 메시지가 사용되지만, 게이트웨이장치(200)와 API 서버 간에는 전송 속도 향상을 위한 바이너리 메시지를 사용할 수 있으며, 이에 대해 REST 메시지와 바이너리 메시지 간 프로토콜을 변환을 수행함으로써, 바이너리 메시지를 통해 내부 API 성능을 올리고 외부로는 REST 메시지를 사용하여 범용성을 확보할 수 있다.In this regard, in an embodiment of the present invention, a JSON-based REST message is used between the client 100 and the gateway device 200, but a binary message for improving the transmission speed between the gateway device 200 and the API server is used. In this regard, by converting the protocol between REST message and binary message, internal API performance can be increased through binary message, and versatility can be secured by using REST message externally.

또한, 로드밸런싱부(270)는 API 서버 간 부하 분산을 처리할 수 있다.Also, the load balancing unit 270 may handle load balancing between API servers.

즉, 로드밸런싱부(270)는 클라이언트(100)로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 2 이상의 API 서버가 호출되도록 할 수 있다.That is, when two or more API servers that provide the same microservice can be called according to a query received from the client 100 , the load balancing unit 270 determines at least one of the performance and failure of each of the two or more API servers. By setting a weight for each of the two or more API servers based on it, two or more API servers may be called according to the set weight.

다시 말해, 로드밸런싱부(270)는 일반적인 호출에 대해선 각 API 서버의 하드웨어 스펙에 따른 성능을 기준으로 부하를 분산할 수 있으며, API 서버의 장애 발생 시에 대해서는, 장애가 발생한 API 서버를 로드 밸런싱 리스트에서 삭제하여 부하 분산에 참여할 수 없도록 하고, 이후 장애 복구 시에는 로드 밸런싱 리스트에 추가하여 부하 분산에 참여할 수 있도록 구현할 수 있다.In other words, the load balancing unit 270 can distribute the load based on the performance according to the hardware specifications of each API server for a general call, and when an API server failure occurs, the load balancing list of the failed API server It can be implemented so that it cannot participate in load balancing by deleting it from , and can participate in load balancing by adding it to the load balancing list when recovering from a subsequent failure.

또한, 로깅부(290)는 클라이언트(100)로부터 수신되는 쿼리에 따른 API 호출 로그를 관리할 수 있다.Also, the logging unit 290 may manage an API call log according to a query received from the client 100 .

즉, 본 발명의 일 실시예에서 게이트웨이장치(200)는 모든 API 서버들이 위치하는 통합서비스인프라(300) 앞 단에 위치하므로, 클라이언트(100)로부터 수신되는 쿼리에 상응하는 API 호출 로그를 관리함으로써, 이를 통해 API 호출 패턴 분석을 기반으로 각 사용자의 사용 패턴을 도출하거나, 문제 추적을 위한 Audit 자료로서의 활용을 가능하게 할 수 있다.That is, in an embodiment of the present invention, the gateway device 200 is located in front of the integrated service infrastructure 300 where all API servers are located, so by managing the API call log corresponding to the query received from the client 100 , , through this, it is possible to derive each user's usage pattern based on API call pattern analysis, or to use it as audit data for problem tracking.

이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 게이트웨이장치(200)의 동작 방법에 따르면, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트(100)에 대해 마이크로 서비스를 제공할 수 있는 환경이 마련되므로, 사용자의 만족도를 크게 제고시킬 수 있다. 또한, 메시지 프로토콜 변환 기능이 지원됨에 따라, 기존 인프라에 신규 마이크로 서비스를 통합하는 것이 용이해지므로, 서비스 영역의 변경 및 확장을 가능하게 한다. 또한, API 호출 로그가 관리됨에 따라 이를 통한 각 사용자의 사용 패턴을 도출 및 장애 발생 시 그에 따른 인지 및 복구를 용이하게 할 수 있다.As described above, according to the operation method of the gateway device 200 according to an embodiment of the present invention, it is possible to provide microservices to the client 100 in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other. As an environment is provided, the user's satisfaction can be greatly improved. In addition, as the message protocol conversion function is supported, it becomes easy to integrate new microservices into the existing infrastructure, thereby enabling change and expansion of the service area. In addition, as the API call log is managed, it is possible to derive each user's usage pattern and facilitate recognition and recovery in case of a failure.

한편, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 처리하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.On the other hand, the functional operations and implementations of the subject matter described in this specification are implemented as digital electronic circuits, computer software, firmware or hardware including the structures disclosed in this specification and structural equivalents thereof, or at least one of these It can be implemented by combining. Implementations of the subject matter described herein are one or more computer program products, ie, one or more modules of computer program instructions encoded on a tangible program storage medium for processing or execution by a processing system. can be implemented.

컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that affects a machine-readable radio wave signal, or a combination of one or more thereof.

본 명세서에서 "시스템"이나 "장치"라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.As used herein, the term “system” or “device” encompasses all devices, devices and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. The processing system may include, in addition to hardware, code that, upon request, forms an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. .

컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선언적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.A computer program (also known as a program, software, software application, script or code) may be written in any form of programming language, including compiled or interpreted language or declarative or procedural language, as a stand-alone program or module; It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in a file system. A program may be in a single file provided to the requested program, or in multiple interacting files (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). The computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.

한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.On the other hand, computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROMs, EEPROMs and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks and CDs. -Can include all types of non-volatile memory, media and memory devices, including ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated into, special purpose logic circuitry.

본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.An implementation of the subject matter described herein may include a backend component, such as a data server, or a middleware component, such as an application server, or a web browser or graphical user, such as a user capable of interacting with an implementation of the subject matter described herein. It may be implemented in a front-end component, such as a client computer having an interface, or in a computing system including any combination of one or more of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as, for example, a communication network.

본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While this specification contains numerous specific implementation details, they should not be construed as limitations on the scope of any invention or claim, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. should be understood Likewise, certain features that are described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features operate in a particular combination and may be initially depicted as claimed as such, one or more features from a claimed combination may in some cases be excluded from the combination, the claimed combination being a sub-combination. or a variant of a sub-combination.

또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다Also, although operations are depicted in the drawings in a specific order herein, it is not to be understood that such operations must be performed in the specific order or sequential order shown or that all illustrated operations must be performed in order to achieve desirable results. Can not be done. In certain cases, multitasking and parallel processing may be advantageous. Further, the separation of the various system components of the above-described embodiments should not be construed as requiring such separation in all embodiments, and the program components and systems described may generally be integrated together into a single software product or packaged into multiple software products. It should be understood that

이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, this specification is not intended to limit the invention to the specific terminology presented. Accordingly, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art can make modifications, changes, and modifications to the examples without departing from the scope of the present invention. The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

본 발명에 따른 게이트웨이장치 및 그 동작 방법에 따르면, 개별 분야의 과학기술 지식인프라를 서로 연계시킨 통합 환경에서 클라이언트에 대해 마이크로 서비스를 제공할 수 있다는 점에서 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the gateway device and the method of operation thereof according to the present invention, it is possible to provide microservices to clients in an integrated environment in which scientific and technological knowledge infrastructures of individual fields are linked with each other. It is an invention with industrial applicability because the possibility of marketing or business of the applied device, not just the use of it, is sufficient and it can be clearly implemented in reality.

100: 클라이언트
200: 게이트웨이장치
210: 확인부 220: 판단부
230: 메시지변환부 240: 라우팅부
250: 응답부 260: 메지지프로토콜변환부
270: 로드밸런싱부 280: 보안처리부
290: 로깅부
300: 통합서비스인프라
100: client
200: gateway device
210: confirmation unit 220: determination unit
230: message conversion unit 240: routing unit
250: response unit 260: message protocol conversion unit
270: load balancing unit 280: security processing unit
290: logging unit
300: integrated service infrastructure

Claims (18)

클라이언트로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인하는 확인부;
상기 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단하는 판단부; 및
상기 판단 결과에 기초한 호출 방식에 따라 상기 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 상기 2 이상의 API 서버로부터 확인되면, 상기 클라이언트로부터 수신된 쿼리에 대한 응답이 전달되도록 하는 라우팅부를 포함하며,
상기 판단부는,
상기 패키지 쿼리로부터 상기 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하는 것으로 판단하는 것을 특징으로 하는 게이트웨이장치.
When a query (Query) is received from the client, a check unit that checks whether the received query is a package query that requires calls of two or more API servers providing each microservice;
a determination unit that determines whether there is a sequence attribute that the package query may have; and
A routing unit that calls the two or more API servers according to a calling method based on the determination result, and transmits a response to a query received from the client when a response to the call is confirmed from the two or more API servers,
The judging unit,
When the call result for a specific API server among the two or more API servers from the package query is required to be an input value of any one API server except for the specific API server, the order attribute is present in the package query Gateway device, characterized in that it is determined.
삭제delete 제 1 항에 있어서,
상기 라우팅부는,
상기 2 이상의 API 서버 중 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 상기 패키지 쿼리에 존재하는 상기 순서 속성에 따른 호출 방식에 따라 상기 특정 API 서버에 대한 호출을 반복하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The routing unit,
Gateway, characterized in that when a response to a call is not received from a specific API server among the two or more API servers, the call to the specific API server is repeated according to a call method according to the order attribute present in the package query Device.
제 1 항에 있어서,
상기 판단부는,
상기 패키지 쿼리로부터 상기 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The judging unit,
When the call to each of the two or more API servers is collectively requested from the package query, it is determined that the order attribute does not exist in the package query.
제 1 항에 있어서,
상기 게이트웨이장치는,
상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단되는 경우, 상기 클라이언트로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지변환부를 더 포함하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The gateway device,
When it is determined that the order attribute does not exist in the package query, the gateway device further comprising a message conversion unit for converting a synchronous (Sync) type query received from the client into an asynchronous (Async) method.
제 5 항에 있어서,
상기 라우팅부는,
상기 비동기 방식에 따라 상기 2 이상의 API 서버를 일괄 호출하여, 상기 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 하는 것을 특징으로 하는 게이트웨이장치.
6. The method of claim 5,
The routing unit,
The gateway device, characterized in that by collectively calling the two or more API servers according to the asynchronous method, and receiving a response from each API server according to a response speed supported by the two or more API servers.
제 1 항에 있어서,
상기 게이트웨이장치는,
상기 클라이언트와 상기 게이트웨이장치 간에 REST(Representational State Transfer) 메시지가 사용되며, 상기 게이트웨이장치와 API 서버 간에 바이너리 메시지가 사용되는 경우, 상기 REST 메시지와 상기 바이너리 메시지 간 프로토콜을 변환하는 메시지프로토콜변환부를 더 포함하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The gateway device,
When a REST (Representational State Transfer) message is used between the client and the gateway device, and a binary message is used between the gateway device and the API server, a message protocol conversion unit for converting a protocol between the REST message and the binary message is further included. Gateway device, characterized in that.
제 1 항에 있어서,
상기 게이트웨이장치는,
상기 클라이언트로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 상기 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 상기 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 상기 2 이상의 API 서버가 호출되도록 하는 로드밸런싱부를 더 포함하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The gateway device,
When it is possible to call two or more API servers that provide the same microservice according to a query received from the client, based on at least one of the performance and failure of each of the two or more API servers, The gateway device according to claim 1, further comprising a load balancing unit that sets a weight so that the two or more API servers are called according to the set weight.
제 1 항에 있어서,
상기 게이트웨이장치는,
상기 클라이언트로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 상기 클라이언트에 대해 토큰을 발급하며, 쿼리를 전달하는 상기 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 상기 클라이언트로부터의 쿼리에 대해 API 서버의 호출을 인가(Authorization)하는 보안처리부를 더 포함하는 것을 특징으로 하는 게이트웨이장치.
The method of claim 1,
The gateway device,
A token is issued to the client by performing authentication based on the authentication information received from the client, and API for a query from the client only when the token issued from the client transmitting the query is confirmed Gateway device, characterized in that it further comprises a security processing unit for authorizing the call of the server (Authorization).
클라이언트로부터 쿼리(Query)가 수신되면, 수신된 쿼리가 각각의 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 요구되는 패키지 쿼리인지 여부를 확인하는 확인단계;
상기 패키지 쿼리가 가질 수 있는 순서(Sequence) 속성의 존재 유무를 판단하는 판단단계; 및
상기 판단 결과에 기초한 호출 방식에 따라 상기 2 이상의 API 서버를 호출하고, 호출에 대한 응답이 상기 2 이상의 API 서버로부터 확인되면, 상기 클라이언트로부터 수신된 쿼리에 대한 응답이 전달되도록 하는 라우팅단계를 포함하며,
상기 판단단계는,
상기 패키지 쿼리로부터 상기 2 이상의 API 서버 중 특정 API 서버에 대한 호출 결과가 상기 특정 API 서버를 제외한 나머지 어느 하나의 API 서버의 입력 값이 되는 것이 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하는 것으로 판단하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
When a query (Query) is received from the client, a checking step of confirming whether the received query is a package query that requires calls of two or more API servers providing each microservice;
a determination step of determining whether there is a sequence attribute that the package query can have; and
Including a routing step of calling the two or more API servers according to a calling method based on the determination result, and transmitting a response to the query received from the client when a response to the call is confirmed from the two or more API servers, ,
The judging step is
When the call result for a specific API server among the two or more API servers from the package query is required to be an input value of any one API server except for the specific API server, the order attribute is present in the package query Method of operation of a gateway device, characterized in that it is determined that it is.
삭제delete 제 10 항에 있어서,
상기 라우팅단계는,
상기 2 이상의 API 서버 중 특정 API 서버로부터 호출에 대한 응답이 수신되지 않는 경우, 상기 패키지 쿼리에 존재하는 상기 순서 속성에 따른 호출 방식에 따라 상기 특정 API 서버에 대한 호출을 반복하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The routing step is
Gateway, characterized in that when a response to a call is not received from a specific API server among the two or more API servers, the call to the specific API server is repeated according to a call method according to the order attribute present in the package query How the device works.
제 10 항에 있어서,
상기 판단단계는,
상기 패키지 쿼리로부터 상기 2 이상의 API 서버 각각에 대한 호출이 일괄 요구되는 경우, 상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The judging step is
When the call to each of the two or more API servers is collectively requested from the package query, it is determined that the order attribute does not exist in the package query.
제 10 항에 있어서,
상기 방법은,
상기 패키지 쿼리에 상기 순서 속성이 존재하지 않는 것으로 판단되는 경우, 상기 클라이언트로부터 수신되는 동기(Sync) 방식의 쿼리를 비동기(Async) 방식으로 전환하는 메시지변환단계를 더 포함하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The method is
When it is determined that the order attribute does not exist in the package query, the method further comprising a message conversion step of converting a Sync type query received from the client into an Async method. how it works.
제 14 항에 있어서,
상기 라우팅단계는,
상기 비동기 방식에 따라 상기 2 이상의 API 서버를 일괄 호출하여, 상기 2 이상의 API 서버에서 지원하는 응답속도에 따라 각 API 서버로부터의 응답이 수신되도록 하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
15. The method of claim 14,
The routing step is
The method of operating a gateway device, characterized in that by collectively calling the two or more API servers according to the asynchronous method, a response from each API server is received according to a response speed supported by the two or more API servers.
제 10 항에 있어서,
상기 방법은,
상기 클라이언트와 상기 게이트웨이장치 간에 REST(Representational State Transfer) 메시지가 사용되며, 상기 게이트웨이장치와 API 서버 간에 바이너리 메시지가 사용되는 경우, 상기 REST 메시지와 상기 바이너리 메시지 간 프로토콜을 변환하는 메시지프로토콜변환단계를 더 포함하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The method is
When a REST (Representational State Transfer) message is used between the client and the gateway device, and a binary message is used between the gateway device and the API server, a message protocol conversion step of converting a protocol between the REST message and the binary message is further performed. A method of operating a gateway device, comprising:
제 10 항에 있어서,
상기 방법은,
상기 클라이언트로부터 수신되는 쿼리에 따라 동일한 마이크로 서비스를 제공하는 2 이상의 API 서버의 호출이 가능한 경우, 상기 2 이상의 API 서버 각각의 성능 및 장애 발생 여부 중 적어도 하나를 기초로 상기 2 이상의 API 서버 각각에 대한 가중치를 설정하여, 설정된 가중치에 따라 상기 2 이상의 API 서버가 호출되도록 하는 로드밸런싱단계를 더 포함하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The method is
When it is possible to call two or more API servers that provide the same microservice according to a query received from the client, based on at least one of the performance and failure of each of the two or more API servers, The method of operating a gateway device, characterized in that it further comprises a load balancing step of setting a weight so that the two or more API servers are called according to the set weight.
제 10 항에 있어서,
상기 방법은,
상기 클라이언트로부터 수신되는 인증정보를 기초로 인증(Identification)을 수행하여 상기 클라이언트에 대해 토큰을 발급하며, 쿼리를 전달하는 상기 클라이언트로부터 발급된 토큰이 확인되는 경우에 한해 상기 클라이언트로부터의 쿼리에 대해 API 서버의 호출을 인가(Authorization)하는 보안처리단계를 더 포함하는 것을 특징으로 하는 게이트웨이장치의 동작 방법.
11. The method of claim 10,
The method is
A token is issued to the client by performing authentication based on the authentication information received from the client, and API for a query from the client only when the token issued from the client transmitting the query is confirmed The method of operating a gateway device, characterized in that it further comprises a security processing step of authorizing the call of the server (Authorization).
KR1020200090892A 2020-07-22 2020-07-22 Gateway apparatus, and control method thereof KR102262093B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200090892A KR102262093B1 (en) 2020-07-22 2020-07-22 Gateway apparatus, and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200090892A KR102262093B1 (en) 2020-07-22 2020-07-22 Gateway apparatus, and control method thereof

Publications (1)

Publication Number Publication Date
KR102262093B1 true KR102262093B1 (en) 2021-06-08

Family

ID=76399352

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200090892A KR102262093B1 (en) 2020-07-22 2020-07-22 Gateway apparatus, and control method thereof

Country Status (1)

Country Link
KR (1) KR102262093B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726869A (en) * 2021-08-26 2021-11-30 阿里巴巴(中国)有限公司 Communication method, gateway and electronic equipment
KR102407334B1 (en) * 2021-12-24 2022-06-10 이데아텍(주) Gateway apparatus and operating method thereof
KR102528717B1 (en) * 2022-10-07 2023-05-08 이데아텍(주) Gateway device for API integration processing with security function and operation method thereof
KR102535012B1 (en) * 2022-10-14 2023-05-26 주식회사 플랜티넷 Method Authorizing Access to Service Based on Microservice
CN117270831A (en) * 2023-11-17 2023-12-22 天津华来科技股份有限公司 Protocol class synchronization and cooperative program call compatible implementation method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140119240A (en) * 2013-03-27 2014-10-10 삼성전자주식회사 Apparatus and method for processing an open api
JP2019105977A (en) * 2017-12-12 2019-06-27 富士ゼロックス株式会社 Gateway device, client server system, and program
KR20200046316A (en) * 2018-10-24 2020-05-07 삼성에스디에스 주식회사 Web application server, method for handling user request and method for handling intergrated request

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140119240A (en) * 2013-03-27 2014-10-10 삼성전자주식회사 Apparatus and method for processing an open api
JP2019105977A (en) * 2017-12-12 2019-06-27 富士ゼロックス株式会社 Gateway device, client server system, and program
KR20200046316A (en) * 2018-10-24 2020-05-07 삼성에스디에스 주식회사 Web application server, method for handling user request and method for handling intergrated request

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113726869A (en) * 2021-08-26 2021-11-30 阿里巴巴(中国)有限公司 Communication method, gateway and electronic equipment
KR102407334B1 (en) * 2021-12-24 2022-06-10 이데아텍(주) Gateway apparatus and operating method thereof
KR102528717B1 (en) * 2022-10-07 2023-05-08 이데아텍(주) Gateway device for API integration processing with security function and operation method thereof
US11928532B1 (en) 2022-10-07 2024-03-12 Ideatec Co., Ltd. Gateway device for integrally processing APIs with security function, and method of operating same
KR102535012B1 (en) * 2022-10-14 2023-05-26 주식회사 플랜티넷 Method Authorizing Access to Service Based on Microservice
CN117270831A (en) * 2023-11-17 2023-12-22 天津华来科技股份有限公司 Protocol class synchronization and cooperative program call compatible implementation method
CN117270831B (en) * 2023-11-17 2024-02-23 天津华来科技股份有限公司 Protocol class synchronization and cooperative program call compatible implementation method

Similar Documents

Publication Publication Date Title
KR102262093B1 (en) Gateway apparatus, and control method thereof
US8019812B2 (en) Extensible and programmable multi-tenant service architecture
CN101421702B (en) Load control device and its method
KR970007047B1 (en) Scheduling apparatus for multimedia resources
CN114787781A (en) System and method for enabling high availability managed failover services
WO2020253634A1 (en) Data processing method, system and device
CN108063813B (en) Method and system for parallelizing password service network in cluster environment
CN113517985B (en) File data processing method and device, electronic equipment and computer readable medium
US10218659B1 (en) Persistent connections for email web applications
CN111651747A (en) Login bill synchronization system and method and related equipment
CN111260475A (en) Data processing method, block chain node point equipment and storage medium
CN110324384B (en) Data pushing method and device
US9760412B2 (en) Client server communication system
US11711255B2 (en) Systems and methods for data linkage and entity resolution of continuous and un-synchronized data streams
US9479599B2 (en) Reroute of a web service in a web based application
CN111490997B (en) Task processing method, proxy system, service system and electronic equipment
CN113472781A (en) Service acquisition method, server and computer readable storage medium
CN112929453A (en) Method and device for sharing session data
CN113765871A (en) Fortress management method and device
KR100756448B1 (en) Message routing transaction System and the transaction method thereof
US11956144B1 (en) Systems and methods for network traffic routing and load balancing in an electronic network
KR102249697B1 (en) System and method for communicating using content delivery network and edge computing in a complex network environment
US11775401B1 (en) Intelligent coordination of log analysis and repair processes in a multi-cloud system
US20230344520A1 (en) Intelligent Monitoring and Repair of Network Services Using Log Feeds Provided Over Li-Fi Networks
Maksimović et al. Task Queue Implementation for Edge Computing Platform

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant