KR102483315B1 - Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법 - Google Patents

Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR102483315B1
KR102483315B1 KR1020220128915A KR20220128915A KR102483315B1 KR 102483315 B1 KR102483315 B1 KR 102483315B1 KR 1020220128915 A KR1020220128915 A KR 1020220128915A KR 20220128915 A KR20220128915 A KR 20220128915A KR 102483315 B1 KR102483315 B1 KR 102483315B1
Authority
KR
South Korea
Prior art keywords
api
information
execution
service
response
Prior art date
Application number
KR1020220128915A
Other languages
English (en)
Inventor
이정수
Original Assignee
이데아텍(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이데아텍(주) filed Critical 이데아텍(주)
Priority to KR1020220128915A priority Critical patent/KR102483315B1/ko
Application granted granted Critical
Publication of KR102483315B1 publication Critical patent/KR102483315B1/ko

Links

Images

Classifications

    • 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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 API 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법에 관한 것으로서, 더욱 상세히는 동기 및 비동기 통신이 모두 요구되는 통신 환경에 구성된 클라이언트 장치에서 API 기반 서비스에 대응하는 복수의 API를 병렬 또는 직렬로 실행하도록 실행 타입을 설정하여 등록할 수 있도록 지원하고, 이를 통해 클라이언트 장치에서 직접 API를 호출할 필요 없이 서비스 요청만으로 기등록된 실행 타입에 따라 복수의 API 서버와 통신하면서 복수의 API를 실행하여 최소한의 트래픽으로 클라이언트 장치가 요구하는 서비스 실행 결과가 제공되도록 지원함과 아울러 실시간 처리가 필요한 API 서비스에 대한 동기 통신과 대용량 데이터 처리가 필요한 API 서비스에 대한 비동기 통신을 자동으로 구분하여 지원하는 API 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법에 관한 것이다. 본 발명은, 기존 클라이언트 장치와 게이트웨이 장치 사이에 발생하는 트래픽 부하를 최소화하고, API 서비스 처리를 위한 서비스 개발 효율을 높일 수 있을 뿐만 아니라 대용량 데이터 처리가 필요한 API 서비스의 경우 메시지 큐에 저장하여 비동기 방식으로 처리함으로써 API 서비스 처리에 대한 효율을 높일 수 있는 효과가 있다.

Description

API 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법{Gateway device supporting API distributed processing and operation method thereof}
본 발명은 API 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법에 관한 것으로서, 더욱 상세히는 동기 및 비동기 통신이 모두 요구되는 통신 환경에 구성된 클라이언트 장치에서 API 기반 서비스에 대응하는 복수의 API를 병렬 또는 직렬로 실행하도록 실행 타입을 설정하여 등록할 수 있도록 지원하고, 이를 통해 클라이언트 장치에서 직접 API를 호출할 필요 없이 서비스 요청만으로 기등록된 실행 타입에 따라 복수의 API 서버와 통신하면서 복수의 API를 실행하여 최소한의 트래픽으로 클라이언트 장치가 요구하는 서비스 실행 결과가 제공되도록 지원함과 아울러 실시간 처리가 필요한 API 서비스에 대한 동기 통신과 대용량 데이터 처리가 필요한 API 서비스에 대한 비동기 통신을 자동으로 구분하여 지원하는 API 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법에 관한 것이다.
종래의 모놀릭 방식의 서비스 시스템에서는 클라이언트에서 API 서버를 직접 호출하여 상기 API 서버로부터 클라이언트가 요청하는 서비스에 대한 서비스 실행 결과를 수신하여 제공하는 구성을 이용하였으나, 이러한 서비스 시스템에서는 API 수정이나 갱신을 위해서는 서버를 중지해야 하므로 서버 중지 기간 동안 서비스 단절이 발생하는 문제와 더불어 단일 서버의 API를 이용하는 클라이언트가 다수인 경우 단일 서버가 부하를 감당하지 못해 서비스 품질이 저하되는 문제가 발생한다.
최근 이러한 모놀릭 방식의 서비스 환경을 개선하기 위해 복수의 서로 다른 API와 각각 대응하는 복수의 API 서버를 마련하여 서비스에서 사용하는 복수의 API를 복수의 API 서버를 통해 분산 처리하는 MSA(MicroServices Architecture) 기반의 서비스 시스템이 등장하고 있다.
이러한 MSA 기반의 서비스 시스템은 클라이언트 및 API 서버와의 통신을 중계하는 게이트웨이 장치가 포함되며, 해당 게이트웨이 장치는 다수의 클라이언트로부터 수신되는 서비스 요청에 대한 트래픽 부하를 복수의 API 서버로 분산시켜 서비스 품질을 향상시키고 있다.
그러나, 이러한 MSA 기반의 서비스 시스템은 클라이언트에서 서비스를 구성하는 복수의 API별로 게이트웨이 장치에 응답을 요청하고, 해당 요청을 API 서버에 전달한 후 API 서버로부터 응답을 수신하여 다시 클라이언트로 전달하는 과정을 수행하여 단일 API에 대해서 다수의 트래픽이 발생하므로, 서비스 처리 과정이 복잡할 뿐만 아니라 하나의 API에 대해서도 발생하는 트래픽이 상당하여 트래픽 부하를 발생시키게 되며 이로 인해 서비스 품질이 저하되는 문제가 있다.
또한, MSA 기반 서비스 시스템에 있어서 클라이언트의 API 서비스가 실시간 응답이 필요한 서비스인지 실시간 응답이 필요하지 않아 비동기 방식으로 처리될 수 있는 서비스인지를 구분하지 않으므로 대용량 데이터 처리 등과 같은 비동기 처리가 가능한 API 서비스에 대해서도 동기화 통신을 시도하여 시스템 안정성과 품질 및 신뢰성이 낮아지는 문제가 있다.
즉, MSA 기반 서비스 시스템은 게이트웨이 장치를 적용함에 따라 단위 API 호출과 응답에 대응하기 위한 트래픽 부하가 증가하게 되고, 실시간 통신이어야 하는 동기 통신과 비실시간도 가능한 비동기 통신이 혼재되어 서비스의 안정성과 품질 및 속도가 낮아지는 문제가 있어 이를 해결하기 위한 새로운 시스템이 요구되고 있는 실정이다.
한국등록특허 제10-2426381호
본 발명은 복수의 API를 복수의 API 서버를 통해 분산 처리하는 통신환경에 구성되는 API 게이트웨이 장치를 제공하되, 실시간 처리가 필요한 API 서비스에 대한 동기 통신과 대용량 데이터 처리를 포함하는 비실시간 처리가 가능한 API 서비스에 대한 비동기 통신을 구분하고, 비동기 통신이 가능한 API 서비스의 경우 메시지 큐에 저장하여 비동기 방식으로 처리함과 아울러, 동기 통신이 실패한 API 서비스의 경우 필요에 따라 메시지 큐에 저장한 후 비동기 방식으로 통신을 재시도할 수 있도록 함으로써 API 서비스 처리에 대한 효율과 안정성 및 신뢰성을 높이도록 함을 목적으로 한다.
또한, 본 발명은 동기 및 비동기 통신을 구분하여 모두 지원하는 게이트웨이 장치로서, 클라이언트 장치에서 API 기반 프론트엔드 서비스를 제공하기 위해 해당 프론트엔드 서비스에 포함되는 복수의 API에 대한 실행 타입을 설정한 작업 시나리오를 API 서비스로 설정하여 등록할 수 있도록 지원하고, 클라이언트 장치에서 요청 대상 API 서비스를 지정하기만 하면 요청한 API 서비스에 대응하는 기등록된 작업 시나리오에 따라 복수의 API 서버와 통신하여 서비스 실행 결과를 생성한 후 클라이언트 장치에 제공하도록 동작하는 게이트웨이 장치를 제공함으로써, 최소한의 트래픽으로 클라이언트 장치가 요구하는 서비스 실행 결과가 제공되도록 지원함을 목적으로 한다.
본 발명의 실시예에 따른 클라이언트 장치와 복수의 API 서버 사이에서 API 호출과 응답정보를 통합 관리하며 API 분산 처리를 지원하는 게이트웨이 장치는, 복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 제공하고, 상기 작업 인터페이스를 통해 상기 클라이언트 장치로부터 상기 API 서비스를 구성하는 복수의 API 조합 수행에 대한 설정 정보를 수신하는 설정부와, 상기 설정 정보를 API 서비스용 작업 시나리오 정보로 등록하는 등록부와, 상기 클라이언트 장치로부터 기등록된 상기 API 서비스에 대한 요청 정보 수신시 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 기초로 상기 API 서비스의 비동기 처리 여부를 판단하여 비동기 처리 대상인 경우 메시지 큐에 상기 요청 정보를 저장하는 수신부 및 미리 설정된 유휴 상태 조건 만족시 상기 메시지 큐에서 상기 요청 정보를 추출한 후 상기 등록부와 연동하여 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 추출하고, 상기 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성하며, 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송하는 통합 수행부를 포함할 수 있다.
본 발명과 관련된 일 예로서, 상기 작업 시나리오 정보는 상기 API 서비스의 비동기 처리 여부에 대한 처리 유형 정보를 포함하고, 상기 수신부는, 상기 요청 정보에 대응하는 작업 시나리오 정보에 포함된 상기 처리 유형 정보를 기초로 상기 API 서비스가 상기 API 서비스의 비동기 처리 여부에 따른 비동기 처리 대상인 경우 상기 요청 정보를 상기 메시지 큐에 저장하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 복수의 API 서버별 응답 정보의 포맷에 대한 응답 포맷 정보를 저장하고, 상기 통합 수행부와 연동하여 상기 응답 정보 수신시 상기 응답 정보에 대응하는 API 서버의 응답 포맷 정보와 상기 작업 시나리오 정보에 따른 상기 클라이언트 장치의 요청 포맷을 기초로 상기 응답 정보의 포맷을 상기 요청 포맷으로 변환하는 포맷 변환부를 더 포함하며, 상기 통합 수행부는, 상기 요청 포맷으로 변환된 복수의 응답 정보를 이용하여 상기 서비스 실행 결과를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 작업 시나리오 정보에 포함된 복수의 API 각각에 대해 상기 작업 시나리오 정보에 설정된 상기 API 실행 타입에 따라 병렬 실행되는 API를 병렬 실행 API로 식별하고, 직렬 실행되는 API를 직렬 실행 API로 식별하며, 상기 복수의 API 각각의 실행 순서를 식별하고, 실행 순서가 상호 동일한 복수의 병렬 실행 API 식별시 상기 복수의 병렬 실행 API마다 병렬 실행 API에 대응하는 API 서버로 병렬 실행 API의 실행에 따른 응답 정보를 요청하여 수신한 후 상기 복수의 병렬 실행 API와 각각 대응하는 복수의 응답 정보를 하나로 병합한 응답 정보인 응답 결과를 생성하고, 상기 직렬 실행 API 식별시 상기 직렬 실행 API에 대응하는 API 서버로부터 상기 직렬 실행 API의 실행에 따라 요청한 응답 정보를 수신하며, 상기 API 실행 타입에 따른 상기 복수의 API별 실행 순서에 따라 선순위 API에 대응하는 응답 정보를 상기 선순위 API의 다음 순서에 해당하는 후순위 API에 입력값으로 적용하는 방식으로 상기 복수의 API를 실행하여 얻어진 최종 응답 정보를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 API 실행 타입이 병렬 실행 및 직렬 실행의 순으로 조합된 제 1 조합 타입인 경우, 상기 복수의 API 중 실행 순서가 상호 동일한 병렬 실행 대상인 제 1 API 및 제 2 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 1 API에 대응하는 제 1 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 1 API에 대응하는 제 1 응답 정보를 요청하여 수신하고 상기 제 2 API에 대응하는 제 2 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 2 API에 대응하는 제 2 응답 정보를 요청하여 수신한 후 상기 제 1 응답 정보 및 제 2 응답 정보를 병합하여 제 1 응답 결과를 생성하고, 상기 복수의 API 중 상기 제 1 조합 타입에 따라 식별된 직렬 실행 API인 제 3 API에 상기 제 1 응답 결과를 입력값으로 적용하여 상기 제 3 API에 대응하는 제 3 API 서버와의 통신을 통해 상기 제 1 응답 결과가 적용된 상기 제 3 API에 대응하는 제 3 응답 정보를 요청하여 수신한 후 상기 제 3 응답 정보를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 API 실행 타입이 직렬 실행 및 병렬 실행의 순으로 조합된 제 2 조합 타입인 경우, 상기 복수의 API 중 직렬 실행 API인 제 4 API에 상기 요청 정보에 따른 검색 정보를 적용하여 상기 제 4 API에 대응하는 제 4 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 4 API에 대응하는 제 4 응답 정보를 요청하여 수신하고, 상기 복수의 API 중 상기 제 2 조합 타입에 따라 식별된 병렬 실행 대상인 제 5 API 및 제 6 API 각각에 상기 제 4 응답 정보를 적용하여 상기 제 5 API에 대응하는 제 5 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 5 API에 대응하는 제 5 응답 정보를 요청하여 수신하고 상기 제 6 API에 대응하는 제 6 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 6 API에 대응하는 제 6 응답 정보를 수신한 후 상기 제 5 응답 정보 및 제 6 응답 정보를 병합하여 제 2 응답 결과를 생성하며, 상기 제 2 응답 결과를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 API 실행 타입이 복수의 병렬 실행으로 조합된 제 3 조합 타입인 경우, 상기 복수의 API 중 병렬 실행 대상인 제 7 API 및 제 8 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 7 API에 대응하는 제 7 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 7 API에 대응하는 제 7 응답 정보를 요청하여 수신하고 상기 제 8 API에 대응하는 제 8 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 8 API에 대응하는 제 8 응답 정보를 요청하여 수신한 후 상기 제 7 응답 정보 및 제 8 응답 정보를 병합하여 제 3 응답 결과를 생성하고, 상기 복수의 API 중 병렬 실행 대상인 제 9 API 및 제 10 API 각각에 상기 제 3 응답 결과를 적용하여 상기 제 9 API에 대응하는 제 9 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 9 API에 대응하는 제 9 응답 정보를 요청하여 수신하고 상기 제 10 API에 대응하는 제 10 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 10 API에 대응하는 제 10 응답 정보를 요청하여 수신한 후 상기 제 9 응답 정보 및 제 10 응답 정보를 병합하여 제 4 응답 결과를 생성하며, 상기 제 4 응답 결과를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 작업 시나리오 정보에 따른 API를 기초로 API 서버에 접속하여 응답 정보를 요청한 후 상기 응답 정보를 수신하기까지의 단위 작업에 대한 로그 정보를 생성하고, 상기 통합 수행부와 연동하여 상기 로그 정보 생성시 상기 로그 정보를 기초로 오류 발생 여부를 판단하고, 오류 발생시 오류가 발생된 상기 로그 정보를 포함하는 오류 발생 정보를 생성한 후 오류가 발생된 API에 대응하는 특정 API 서버에 상기 오류 발생 정보를 전송하는 검증부를 더 포함하는 것을 특징으로 할 수 있다.
본 발명과 관련된 일 예로서, 상기 통합 수행부는, 상기 검증부와 연동하여 상기 작업 시나리오 정보에 따른 API 서비스의 실행 과정에서 오류 발생 횟수를 확인하여 상기 오류 발생 횟수가 미리 설정된 기준치 이상이거나 또는 상기 작업 시나리오 정보에 따른 API 서비스의 실행 과정에서 API 서버로부터 미리 설정된 기준 시간 이상 응답 지연이 발생하는 경우 상기 수신부와 연동하여 상기 요청 정보를 상기 메시지 큐에 저장하여 상기 API 서비스가 비동기 처리되도록 하는 것을 특징으로 할 수 있다.
본 발명의 실시예에 따른 클라이언트 장치와 복수의 API 서버 사이에서 API 호출과 응답정보를 통합 관리하며 API 분산 처리를 지원하는 게이트웨이 장치의 동작 방법은, 복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 제공하고, 상기 작업 인터페이스를 통해 상기 클라이언트 장치로부터 상기 API 서비스를 구성하는 복수의 API 조합 수행에 대한 설정 정보를 수신하는 단계와, 상기 설정 정보를 API 서비스용 작업 시나리오 정보로 등록하는 단계와, 상기 클라이언트 장치로부터 기등록된 상기 API 서비스에 대한 요청 정보 수신시 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 기초로 상기 API 서비스의 비동기 처리 여부를 판단하여 비동기 처리 대상인 경우 메시지 큐에 상기 요청 정보를 저장하는 단계 및 미리 설정된 유휴 상태 조건 만족시 상기 메시지 큐에서 상기 요청 정보를 추출한 후 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 추출하고, 상기 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성하며, 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송하는 단계를 포함할 수 있다.
본 발명은 복수의 API 서버에서 제공하는 복수의 API를 이용하여 서비스를 제공하는 클라이언트 장치와 상기 복수의 API 서버 사이에서 API 호출과 응답을 관리하는 게이트웨이 장치를 제공하되, 실시간 처리가 필요한 API 서비스에 대한 동기 통신과 대용량 데이터 처리를 포함하는 비실시간 처리가 가능한 API 서비스에 대한 비동기 통신을 구분하고, 비동기 통신이 가능한 API 서비스의 경우 이를 메시지 큐에 저장하여 비동기 방식으로 처리함과 아울러, 동기 통신이 실패한 API 서비스의 경우 필요에 따라 해당 API 서비스를 메시지 큐에 저장한 후 비동기 방식으로 통신을 재시도할 수 있도록 함으로써 API 서비스 처리에 대한 효율과 안정성 및 신뢰성을 높일 수 있는 효과가 있다.
또한, 본 발명은 클라이언트 장치의 사용자가 게이트웨이 장치에 API 서비스에 필요한 복수의 API와 해당 복수의 API에 대한 실행 타입을 지정하여 작업 시나리오를 생성할 수 있도록 지원하고, 클라이언트 장치에서 API 서비스에 대한 서비스 실행 결과를 1회 요청하는 것만으로 게이트웨이 장치에서 사용자가 설정한 작업 시나리오의 실행 타입에 따라 복수의 API를 호출하면서 복수의 API 서버로부터 응답 정보를 수신한 후 이를 기초로 서비스 실행 결과를 클라이언트 장치에 제공할 수 있도록 함으로써, 기존 클라이언트 장치와 게이트웨이 장치 사이에 발생하는 트래픽 부하를 최소화하고, API 서비스 처리를 위한 서비스 개발 효율을 높일 수 있는 효과가 있다.
또한, 본 발명은 API 서버의 변경에 따른 클라이언트 장치의 API 기반 서비스에 대한 갱신 편의성을 높이며 클라이언트 장치의 API 서비스 속도를 개선하여 API 활용을 위한 서비스의 개발과 이용 효율을 크게 향상시키는 효과가 있다.
도 1은 본 발명의 실시예에 따른 API 분산 처리를 지원하는 게이트웨이 장치에 관한 구성 환경도.
도 2는 본 발명의 실시예에 따른 API 분산 처리를 지원하는 게이트웨이 장치의 상세 구성도.
도 3 내지 도 8은 본 발명의 실시예에 따른 API 분산 처리를 지원하는 게이트웨이 장치의 동작 예시도.
도 9는 본 발명의 실시예에 따른 API 분산 처리를 지원하는 게이트웨이 장치의 동작 방법에 대한 순서도.
이하, 도면을 참고하여 본 발명의 상세 실시예를 설명한다.
도 1은 본 발명의 실시예에 따른 API 분산 처리를 지원하는 게이트웨이 장치(이하, 게이트웨이 장치)에 관한 구성 환경도이다.
도시된 바와 같이, 본 발명의 실시예에 따른 게이트웨이(gateway) 장치(100)는 통신망을 통해 하나 이상의 클라이언트 장치 및 복수의 API 서버와 통신할 수 있다.
이때, 본 발명에서 설명하는 통신망은 유/무선 통신망을 포함할 수 있으며, 이러한 무선 통신망의 일례로 무선랜(Wireless LAN: WLAN), DLNA(Digital Living Network Alliance), 와이브로(Wireless Broadband: Wibro), 와이맥스(World Interoperability for Microwave Access: Wimax), GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), IEEE 802.16, 롱 텀 에볼루션(Long Term Evolution: LTE), LTE-A(Long Term Evolution-Advanced), 광대역 무선 이동 통신 서비스(Wireless Mobile Broadband Service: WMBS), 5G 이동통신 서비스, 블루투스(Bluetooth), LoRa(Long Range), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association: IrDA), UWB(Ultra Wideband), 지그비(ZigBee), 인접 자장 통신(Near Field Communication: NFC), 초음파 통신(Ultra Sound Communication: USC), 가시광 통신(Visible Light Communication: VLC), 와이 파이(Wi-Fi), 와이 파이 다이렉트(Wi-Fi Direct) 등이 포함될 수 있다. 또한, 유선 통신망으로는 유선 LAN(Local Area Network), 유선 WAN(Wide Area Network), 전력선 통신(Power Line Communication: PLC), USB 통신, 이더넷(Ethernet), 시리얼 통신(serial communication), 광/동축 케이블 등이 포함될 수 있다.
또한, 상기 클라이언트 장치는 서비스 이용자 단말로 웹 서비스, 앱 기반 서비스 등을 제공하는 프론트엔드(front-end) 기반의 서비스 제공 장치로 구성될 수 있으며, 이러한 서비스 제공 장치는 서버로 구성될 수 있다.
이때, 상기 클라이언트 장치는, 하나 이상의 API 서비스를 포함하는 특정 서비스(또는 프론트엔드 서비스)를 제공할 수 있으며, 이러한 API 서비스는 복수의 API를 이용하여 특정한 서비스를 제공하기 위하여 클라이언트 단에서 구성되는 프론트엔드 서비스 구성에 포함되는 서비스로서, 복수 API를 이용하여 수집된 정보들을 제공하는 웹페이지, 단말 표시 인터페이스 등에 포함될 수 있다.
또한, 복수의 API 서버 각각은 상기 클라이언트 장치에서 제공하는 서비스를 구현하기 위한 API(Application Programming Interface)를 제공할 수 있으며, 하나의 API에 대응하는 복수의 API 서버가 상기 게이트웨이 장치(100)와 통신하도록 구성될 수도 있다.
기존에는 클라이언트 장치에서 코딩을 통해 복수의 API로 구성된 API 서비스를 실행하여 직접 API 서버로 접속하는 경우 API 서버의 동작이 중단될 때 서비스도 함께 중단되거나 API 서버의 부하 분산이 어려운 문제가 발생하여 이를 개선하기 위한 게이트웨이 장치가 도입되고 있으나, 기존의 게이트웨이 장치는 클라이언트 장치에서 단일 API 서비스를 구성하는 복수의 API를 호출할 때마다 각 API에 대한 응답을 클라이언트 장치에 전송함으로써, 복수의 API 각각에 대해 클라이언트 장치로 응답을 전송하여 단일 API 서비스에 대해 발생하는 트래픽 부하가 상당한 문제가 있다.
이를 개선하기 위한 본 발명의 실시예에 따른 게이트웨이 장치(100)는, 클라이언트 장치의 사용자가 API 서비스를 구성하는 복수의 API 중 병렬 처리가 가능한 API의 응답을 병합하거나 직렬 처리가 필요한 API가 순차 처리되도록 하는 작업 시나리오를 노코딩 방식으로 등록 가능하도록 지원하고, 이러한 작업 시나리오를 기반으로 클라이언트 장치에서 API 서비스 호출만으로 API 서비스를 구성하는 복수의 API에 대해 상기 호출 대상인 복수의 API와 각각 대응하는 복수의 API 서버로부터 수신되는 복수의 응답을 통합 처리하여 하나의 응답으로 클라이언트 장치에 제공할 수 있도록 지원함으로써, 트래픽 부하를 최소화할 수 있음과 아울러 대용량 데이터 처리가 필요한 API 서비스를 비동기 방식으로 처리하여 API 서비스의 효율적인 처리가 가능하도록 지원할 수 있는데, 이를 이하 도면을 참고하여 상세히 설명한다.
우선, 도 2는 본 발명의 실시예에 따른 게이트웨이 장치(100)의 상세 구성도이며, 도 3은 본 발명의 실시예에 따른 게이트웨이 장치(100)의 동작 예시도이다.
도시된 바와 같이, 상기 게이트웨이 장치(100)는, 통신부(10), 저장부(20) 및 제어부(30)를 포함할 수 있다.
우선, 상기 통신부(10)는, 통신망을 통해 하나 이상의 클라이언트 장치 및 복수의 API 서버와 통신할 수 있다.
또한, 상기 저장부(20)는, 상기 게이트웨이 장치(100)의 동작에 필요한 다양한 정보를 저장하도록 구성될 수 있고, 하나 이상의 DB를 포함하도록 구성될 수 있으며, 상기 DB는 별도의 데이터베이스 서버로 구성될 수도 있다.
또한, 상기 제어부(30)는, 상기 게이트웨이 장치(100)에 포함되어 상기 게이트웨이 장치(100)의 전반적인 제어 기능을 수행하도록 구성될 수 있으며, RAM, ROM, CPU, GPU, 버스를 포함할 수 있고, RAM, ROM, CPU, GPU 등은 버스를 통해 서로 연결될 수 있다.
또한, 상기 제어부(30)는, 관리부(130), 등록부(140), 수신부(110), API 서버 접속부(120), 설정부(150), 통합 수행부(170), 포맷 변환부(160) 및 검증부(180)를 포함하여 구성될 수 있으며, 상기 제어부(30)에 포함된 적어도 하나의 구성부가 상기 제어부(30)에 포함된 다른 구성부에 포함되어 구성될 수도 있다.
이때, 상기 게이트웨이 장치(100)는 서버로 구성될 수도 있다.
또한, 상기 통신부(10) 또는 저장부(20)가 상기 제어부(30)에 포함되어 구성될 수도 있다.
또한, 상기 제어부(30)를 구성하는 복수의 구성부 중 적어도 하나는, 상기 통신부(10)를 통해 상기 클라이언트 장치 및 상기 복수의 API 서버 중 적어도 하나와 각종 정보를 송수신할 수 있으며, 이하에서 상기 통신부(10)를 통한 통신 구성은 생략하기로 한다.
우선, 상기 관리부(130)는, 상기 게이트웨이 장치(100)에 접속하는 클라이언트 장치의 접속 권한에 대한 인증을 수행할 수 있다.
또한, 상기 설정부(150)는, 상기 복수의 API 서버 각각에서 제공하는 하나 이상의 API에 대한 API 리스트 정보 및 응답 포맷 정보가 포함된 API 사용 정보를 기초로 클라이언트 장치의 사용자가 고객(서비스 이용자)에게 제공하고자 하는 API 서비스와 관련된 복수의 API를 이용하여 서비스 실행 결과를 생성할 수 있는 작업 시나리오를 작성(생성)하기 위한 작업 인터페이스를 생성하여 저장할 수 있다.
이때, 상기 작업 인터페이스는 유저 인터페이스(user interface) 또는 그래픽 유저 인터페이스(graphic user interface) 등으로 구성될 수 있다.
또한, 상기 관리부(130)는, 상기 복수의 API 서버 각각에 접속하여 상기 복수의 API 서버 각각으로부터 복수의 API 서버와 각각 대응하는 복수의 API 사용 정보를 요청하고, 상기 복수의 API 서버로부터 수신된 복수의 API 사용 정보를 저장할 수 있다.
이때, 상기 관리부(130)는, 상기 복수의 API 사용 정보를 상기 저장부(20)에 포함된 별도의 API 관리 DB에 저장할 수도 있다.
이에 따라, 상기 설정부(150)는, 상기 게이트웨이 장치(100)로 접속한 클라이언트 장치에 대해 상기 관리부(130)와 연동하여 접속 권한을 인증하고, 상기 클라이언트 장치에 대한 인증 성공시 상기 복수의 API 사용 정보를 포함하는 상기 작업 인터페이스를 생성하여 상기 클라이언트 장치로 제공할 수 있다.
이때, 상기 설정부(150)는, 상기 API 관리 DB에 저장된 복수의 API 사용 정보를 기초로 작업 인터페이스를 생성하여 클라이언트 장치에 제공할 수도 있다.
즉, 상기 설정부(150)는, 복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 상기 클라이언트 장치에 제공할 수 있다.
이때, 상기 클라이언트 장치는, 상기 작업 인터페이스에 포함된 상기 복수의 API 사용 정보를 기초로 특정 API 서비스에 필요한 복수의 API를 선택하고, 상기 선택된 복수의 API의 조합 수행에 대한 설정 정보를 상기 작업 인터페이스를 통해 생성하여 상기 게이트웨이 장치(100)로 전송할 수 있다.
일례로, 상기 클라이언트 장치는, 상기 특정 API 서비스를 구현하기 위해 선택된 복수의 API를 대상으로 상기 작업 인터페이스를 통해 병렬로 실행될 복수의 병렬 실행 API로 구성되는 하나 이상의 병합 그룹과 직렬로 순차 실행될 하나 이상의 직렬 실행 API 중 적어도 하나를 지정하여 API 실행 타입을 생성한 후 상기 선택된 복수의 API 및 API 실행 타입을 포함하는 설정 정보를 생성하여 상기 게이트웨이 장치(100)에 전송할 수 있다.
이때, 상기 API 실행 타입은 상기 선택된 복수의 API별 실행 순서를 포함할 수 있다.
또한, 상기 특정 API 서비스가 대용량 데이터 처리가 필요한 서비스인 경우 상기 게이트웨이 장치(100)에서 상기 특정 API 서비스에 대응하는 서비스 실행 결과를 생성하는데 소요되는 시간이 상당하므로, 상기 특정 API 서비스를 실행하는 과정에서 다른 API 서비스 또는 API에 대한 요청이 수신되면 상기 다른 API 서비스 또는 API에 대한 처리 시간이 지연될 수 있어, 이를 방지하기 위해서는 상기 특정 API 서비스를 상기 게이트웨이 장치(100)의 유휴 시간(遊休時間)에 비동기로 처리하는 것이 바람직하다.
이를 위해, 상기 작업 인터페이스는 상기 특정 API 서비스의 비동기 처리 여부를 선택할 수 있도록 제공할 수 있으며, 상기 클라이언트 장치는, 상기 작업 인터페이스를 통해 상기 특정 API 서비스의 비동기 처리 여부에 대한 처리 유형 정보를 생성하고, 상기 처리 유형 정보가 포함된 상기 설정 정보를 생성하여 상기 게이트웨이 장치(100)에 전송할 수 있다.
한편, 상기 등록부(140)는, 상기 설정부(150)와 연동하여 상기 클라이언트 장치로부터 설정 정보 수신시 상기 설정 정보를 API 서비스용 작업 시나리오 정보(이하, 작업 시나리오 정보)로서 상기 저장부(20)에 포함되거나 별도 구성된 작업 DB에 저장하여 등록할 수 있다.
이때, 상기 작업 시나리오 정보는, 상기 특정 API 서비스에 대응하는 서비스 식별 정보(일례로, 서비스 ID), 상기 클라이언트 장치에 대응하는 사용자 식별 정보(또는 사용자 정보), 특정 API 서비스에 대응하도록 사용자가 지정한 요청 포맷(format), 상기 복수의 API, API 실행 타입, 처리 유형 정보 등에 대한 정보를 포함할 수 있다.
또한, 본 발명에서 설명하는 사용자 식별 정보는, 사용자 식별을 위한 정보, 상기 클라이언트 장치의 장치 식별 정보, 사용자 인증을 위한 정보 등과 같은 다양한 정보를 포함할 수도 있다.
상술한 바와 같이 작업 시나리오 정보가 등록된 이후, 상기 수신부(110)는, 상기 클라이언트 장치로부터 특정 API 서비스의 호출을 위한 요청 정보 또는 특정 API 호출에 대한 요청 정보를 수신할 수 있다.
예를 들어, 상기 클라이언트 장치는, 상기 게이트웨이 장치(100)와 연동하여 상기 특정 API 서비스를 포함하는 API 기반 특정 서비스(특정 프론트엔드 서비스)로 접속한 서비스 이용자 단말로 상기 특정 서비스의 실행에 따른 상기 특정 서비스에 포함된 하나 이상의 API 서비스별 서비스 실행 결과가 포함된 최종 실행 결과를 제공할 수 있으며, 상기 특정 서비스의 실행 과정에서 상기 특정 API 서비스가 호출되면, 상기 요청 정보를 생성하여 상기 게이트웨이 장치(100)로 전송할 수 있다.
또한, 상기 수신부(110)는, 상기 요청 정보를 수신하고 해당 요청 정보를 확인하여 상기 요청 정보가 API 서비스 호출에 대한 요청인지 API 호출에 대한 요청인지를 확인할 수 있다.
이때, 상기 수신부(110)는, 상기 요청 정보가 API 호출에 대한 요청인 경우 상기 요청 정보를 API 서버 접속부(120)로 제공할 수 있다.
이에 따라, 상기 API 서버 접속부(120)는, 상기 API 호출에 대한 요청 정보 수신시 상기 요청 정보에 대응하는 특정 API 서버로 상기 요청 정보를 전송하고, 상기 특정 API 서버로부터 상기 요청 정보에 대응하는 응답 정보를 수신하여 상기 요청 정보를 전송한 클라이언트 장치로 전송할 수 있다.
이때, 상기 API 호출에 대한 요청 정보는, 상기 사용자 식별 정보, 상기 특정 서비스에 포함된 호출 대상인 특정 API, 상기 특정 API에 적용될 하나 이상의 검색 파라미터값이 포함된 검색 정보 등을 포함할 수 있다.
또한, 상기 수신부(110)는, 상기 요청 정보를 확인하여 상기 요청 정보가 특정 API 서비스 호출에 대한 요청 정보인 경우 상기 등록부(140)와 연동하여 상기 요청 정보에 대응하는 기등록된 작업 시나리오 정보를 작업 DB에서 식별할 수 있다.
이때, 상기 API 서비스 호출을 위한 요청 정보는, 상기 특정 API 서비스에 대응하는 서비스 식별 정보, 사용자 식별 정보, 상기 특정 API 서비스를 통한 서비스 실행 결과를 산출하기 위해 상기 작업 시나리오 정보에 포함된 복수의 API 중 적어도 하나 이상에 적용될 하나 이상의 검색 파라미터값이 포함된 검색 정보 등을 포함할 수 있다.
여기서, 상기 검색 정보는 쿼리(query) 정보일 수 있다.
또한, 상기 수신부(110)는, 상기 등록부(140)와 연동하여 작업 DB에서 상기 요청 정보에 대응하는 특정 작업 시나리오 정보를 추출하고, 상기 추출된 작업 시나리오 정보에서 처리 유형 정보를 확인할 수 있다.
또한, 상기 수신부(110)는, 상기 추출된 작업 시나리오 정보에 포함된 처리 유형 정보를 기초로 상기 특정 API 서비스가 비동기 처리 대상이 아닌 경우 상기 작업 시나리오 정보를 상기 통합 수행부(170)에 제공할 수 있다.
또한, 상기 수신부(110)는, 상기 추출된 작업 시나리오 정보에 포함된 처리 유형 정보를 기초로 상기 특정 API 서비스가 비동기 처리 대상인 경우 상기 요청 정보를 메시지 큐(message queue)에 저장할 수 있다.
이를 위해, 상기 수신부(110)는, 비동기 버퍼부(111)를 포함할 수 있으며, 상기 비동기 버퍼부(111)는 상기 메시지 큐를 포함할 수 있다.
상술한 구성에서, 상기 수신부(110)가 상기 요청 정보에 대응하는 작업 시나리오 정보를 추출하기 이전에, 관리부(130)는 상기 게이트웨이 장치(100)로 접속한 상기 클라이언트 장치에 대한 접속 권한 인증을 수행할 수 있으며, 상기 수신부(110)는 상기 관리부(130)와 연동하여 상기 클라이언트 장치의 접속 권한에 대한 인증에 성공한 경우 상기 요청 정보에 대응하는 작업 시나리오 정보를 추출할 수 있다.
일례로, 상기 요청 정보에 상기 클라이언트 장치의 사용자에 대응하는 사용자 인증을 위해 사용자가 입력한 사용자 인증 정보가 포함될 수 있으며, 상기 작업 DB에는 작업 시나리오 정보에 대응하는 사용자 정보에 상기 작업 시나리오 정보가 매칭되어 저장될 수 있다.
이에 따라, 상기 관리부(130)는, 상기 요청 정보에 포함된 사용자 인증 정보를 상기 사용자 정보에 포함된 사용자 인증 정보와 비교하여 일치하는 경우 사용자의 접속 권한을 인증하고, 상기 수신부(110)는, 상기 사용자의 접속 권한에 대한 인증 성공시 상기 요청 정보에 포함된 서비스 식별 정보 및 사용자 식별 정보에 대응하는 작업 시나리오 정보를 상기 작업 DB로부터 추출할 수 있다.
한편, 상기 통합 수행부(170)는, 상기 수신부(110)로부터 상기 클라이언트 장치가 전송한 요청 정보에 따른 비동기 처리 대상이 아닌 특정 API 서비스에 대응하는 작업 시나리오 정보 수신시, 상기 추출된 작업 시나리오 정보에 대응하는 복수의 API 서버에 상기 추출된 작업 시나리오 정보에 따른 API 실행 타입에 따라 접속하여 상기 추출된 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성할 수 있다.
또한, 상기 통합 수행부(170)는, 미리 설정된 유휴 상태 조건(또는 비동기 처리 수행 조건) 만족에 따른 유휴 상태일 때 상기 수신부(110)와 연동하여 상기 비동기 버퍼부(111)에 접근하여, 상기 비동기 버퍼부(111)에 포함된 메시지 큐에서 비동기 처리 대상인 요청 정보를 추출하고, 상기 요청 정보에 대응하는 작업 시나리오 정보를 상기 작업 DB에서 추출할 수 있다.
일례로, 상기 통합 수행부(170)는, 미리 설정된 시간 동안 API 서버와의 통신이 없거나 미리 설정된 시간 동안 API 호출이 없는 경우 상기 유휴 상태 조건을 만족하는 것으로 판단할 수 있다.
또한, 상기 통합 수행부(170)는, 상기 비동기 버퍼부(111)에서 추출한 작업 시나리오 정보에 대응하는 복수의 API 서버에 상기 추출된 작업 시나리오 정보에 따른 API 실행 타입에 따라 접속하여 상기 추출된 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성할 수 있다.
이하, 상기 통합 수행부(170)에서 상기 작업 시나리오 정보를 기초로 상기 서비스 실행 결과를 생성하는 과정을 상세히 설명하면, 상기 통합 수행부(170)는, 상기 요청 정보에 대응하는 작업 시나리오 정보에 포함된 복수의 API 각각에 대해 상기 작업 시나리오 정보에 설정된 API 실행 타입에 따라 병렬 실행되는 API를 병렬 실행 API로 식별하고, 직렬 실행되는 API를 직렬 실행 API로 식별하며, 상기 복수의 API 각각의 실행 순서를 식별할 수 있다.
또한, 상기 통합 수행부(170)는, 실행 순서가 상호 동일한 복수의 병렬 실행 API 식별시 상기 복수의 병렬 실행 API마다 병렬 실행 API에 대응하는 API 서버로 병렬 실행 API의 실행에 따른 응답 정보를 요청하여 수신한 후 상기 복수의 병렬 실행 API와 각각 대응하는 복수의 응답 정보를 하나로 병합한 새로운 응답 정보인 응답 결과를 생성하고, 상기 직렬 실행 API 식별시 상기 직렬 실행 API에 대응하는 API 서버로부터 상기 직렬 실행 API의 실행에 따라 요청한 응답 정보를 수신하며, 상기 API 실행 타입에 따른 상기 복수의 API별 실행 순서에 따라 선순위 API에 대응하는 응답 정보를 상기 선순위 API의 다음 순서에 해당하는 후순위 API에 입력값으로 적용하는 방식을 이용하여 상기 복수의 API를 상기 API 실행 타입에 따라 실행하여 얻어진 최종 응답 정보를 기초로 하나의 상기 서비스 실행 결과를 생성할 수 있다.
일례로, 도 4에 도시된 바와 같이, 상기 통합 수행부(170)는, 상기 작업 시나리오 정보에 포함된 API 실행 타입이 병렬 실행 타입인 경우 상기 작업 시나리오 정보에 포함된 실행 순서가 상호 동일한 복수의 API 각각을 병렬 실행 API로 식별하고, 상기 복수의 병렬 실행 API마다 상기 요청 정보에 따른 검색 정보를 적용한 상기 병렬 실행 API를 실행하여 상기 병렬 실행 API에 대응하는 API 서버에 접속한 후 상기 검색 정보가 적용된 병렬 실행 API에 대응하는 응답 정보를 요청하고, 상기 API 서버로부터 상기 검색 정보가 적용된 병렬 실행 API에 대응하는 응답 정보를 상기 접속된 API 서버로부터 수신할 수 있다.
이에 따라, 상기 통합 수행부(170)는, 상기 복수의 병렬 실행 API와 각각 대응하는 복수의 API 서버 각각으로부터 응답 정보를 수신하고, 상기 수신된 복수의 응답 정보를 하나로 병합하여 새로운 응답 정보인 응답 결과(또는 병합 응답 결과 또는 병합 응답 정보)를 생성할 수 있다.
이때, 상기 통합 수행부(170)는 버퍼 메모리부를 더 포함하여 구성될 수 있으며, 상기 통합 수행부(170)는 상기 복수의 병렬 실행 API와 각각 대응하는 복수의 API 각각로부터 비동기 방식으로 응답 정보를 수신하며, 상기 검색 정보가 적용된 복수의 병렬 실행 API와 각각 대응하는 복수의 응답 정보 중 먼저 수신된 응답 정보를 상기 버퍼 메모리부에 임시 저장하고, 상기 복수의 응답 정보 중 상기 버퍼 메모리부에 저장된 응답 정보보다 이후에 수신된 응답 정보를 상기 버퍼 메모리부에 저장된 응답 정보와 병합하여 응답 결과를 생성할 수 있다.
또한, 상기 응답 결과는 상기 수신된 복수의 응답 정보를 포함하는 정보일 수 있다.
또한, 상기 통합 수행부(170)는, 최종 응답 정보인 상기 응답 결과를 기초로 서비스 실행 결과를 생성할 수 있다.
다른 일례로, 도 5에 도시된 바와 같이, 상기 통합 수행부(170)는, 상기 작업 시나리오 정보에 포함된 API 실행 타입이 직렬 실행 타입인 경우 상기 작업 시나리오 정보에 포함된 복수의 API를 상기 API 실행 타입에 설정된 API별 실행 순서에 따라 순차 실행할 수 있다.
즉, 상기 통합 수행부(170)는, 상기 복수의 API 중 최초 실행되는 특정 API에 상기 검색 정보를 적용하여 상기 검색 정보가 적용된 특정 API를 기초로 상기 특정 API에 대응하는 특정 API 서버에 상기 검색 정보가 적용된 특정 API에 대응하는 응답 정보를 요청하고, 상기 API 실행 타입에 따라 상기 응답 정보를 상기 특정 API의 다음 순서에 해당하는 다른 API에 입력값으로 적용하여 상기 다른 API에 대응하는 다른 API 서버에 상기 입력값이 적용된 상기 다른 API에 대응하는 응답 정보를 요청할 수 있다.
또한, 상기 통합 수행부(170)는, 상기 다른 API 서버로부터 응답 정보 수신시 최종 응답 정보인 상기 수신된 응답 정보를 기초로 서비스 실행 결과를 생성할 수 있다.
또 다른 일례로, 도 6에 도시된 바와 같이, 상기 통합 수행부(170)는, 상기 API 실행 타입이 병렬 실행 및 직렬 실행의 순으로 조합된 제 1 조합 타입인 경우, 작업 시나리오 정보에 포함된 상기 복수의 API 중 실행 순서가 상호 동일한 병렬 실행 대상인 제 1 API 및 제 2 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 1 API에 대응하는 제 1 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 1 API에 대응하는 제 1 응답 정보를 요청하여 수신하고, 상기 제 2 API에 대응하는 제 2 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 2 API에 대응하는 제 2 응답 정보를 요청하여 수신한 후 상기 제 1 응답 정보 및 제 2 응답 정보를 병합하여 제 1 응답 결과를 생성할 수 있다.
이후, 상기 통합 수행부(170)는, 상기 제 1 및 제 2 응답 정보가 병합된 제 1 응답 결과를 상기 제 1 조합 타입에 따라 작업 시나리오 정보에서 식별된 직렬 실행 API인 제 3 API에 입력값으로 적용하여 상기 제 3 API에 대응하는 제 3 API 서버와의 통신을 통해 상기 제 1 응답 결과가 적용된 상기 제 3 API에 대응하는 제 3 응답 정보를 요청하여 수신한 후 최종 응답 정보인 상기 제 3 응답 정보를 기초로 서비스 실행 결과를 생성할 수 있다.
또 다른 일례로, 도 7에 도시된 바와 같이, 상기 통합 수행부(170)는, 상기 API 실행 타입이 직렬 실행 및 병렬 실행의 순으로 조합된 제 2 조합 타입인 경우, 상기 작업 시나리오 정보에 포함된 상기 복수의 API 중 직렬 실행 API인 제 4 API에 상기 요청 정보에 따른 검색 정보를 적용하여 상기 제 4 API에 대응하는 제 4 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 4 API에 대응하는 제 4 응답 정보를 요청하여 수신하고, 상기 제 2 조합 타입에 따라 작업 시나리오 정보에서 식별된 실행 순서가 상호 동일한 병렬 실행 대상인 제 5 API 및 제 6 API 각각에 상기 제 4 응답 정보를 적용하여 상기 제 5 API에 대응하는 제 5 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 5 API에 대응하는 제 5 응답 정보를 요청하여 수신하고 상기 제 6 API에 대응하는 제 6 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 6 API에 대응하는 제 6 응답 정보를 요청하여 수신한 후 상기 제 5 응답 정보 및 제 6 응답 정보를 병합하여 제 2 응답 결과를 생성하고, 최종 응답 정보인 상기 제 2 응답 결과를 기초로 서비스 실행 결과를 생성할 수 있다.
또 다른 일례로, 도 8에 도시된 바와 같이, 상기 통합 수행부(170)는, 상기 API 실행 타입이 복수의 병렬 실행으로 조합된 제 3 조합 타입인 경우, 상기 작업 시나리오 정보에 포함된 상기 복수의 API 중 병렬 실행 대상인 제 7 API 및 제 8 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 7 API에 대응하는 제 7 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 7 API에 대응하는 제 7 응답 정보를 요청하여 수신하고, 상기 제 8 API에 대응하는 제 8 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 8 API에 대응하는 제 8 응답 정보를 요청하여 수신한 후 상기 제 7 응답 정보 및 제 8 응답 정보를 병합하여 제 3 응답 결과를 생성하고, 상기 복수의 API 중 병렬 실행 대상인 제 9 API 및 제 10 API 각각에 상기 제 3 응답 결과를 적용하여 상기 제 9 API에 대응하는 제 9 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 9 API에 대응하는 제 9 응답 정보를 요청하여 수신하고 상기 제 10 API에 대응하는 제 10 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 10 API에 대응하는 제 10 응답 정보를 요청하여 수신한 후 상기 제 9 응답 정보 및 제 10 응답 정보를 병합하여 제 4 응답 결과를 생성하며, 최종 응답 정보인 상기 제 4 응답 결과를 기초로 서비스 실행 결과를 생성할 수 있다.
상술한 구성에서, 상기 포맷 변환부(160)는, 상기 복수의 API 서버별로 응답 정보의 포맷(format)에 대한 응답 포맷 정보를 저장하고, 상기 통합 수행부(170)와 연동하여 상기 응답 정보 수신시(수신시마다) 상기 응답 정보에 대응하는 API 서버의 응답 포맷 정보와 상기 작업 시나리오 정보에 따른 상기 클라이언트 장치의 요청 포맷을 기초로 상기 응답 정보의 포맷을 상기 요청 포맷으로 변환하는 동작을 수행할 수 있다.
이때, 상기 포맷 변환부(160)는, 상기 API 관리 DB에 저장된 복수의 API 사용 정보 중 상기 수신된 응답 정보에 대응하는 API 서버의 API 사용 정보에서 상기 수신된 응답 정보에 대응하는 응답 포맷 정보를 확인할 수도 있다.
이에 따라, 상기 통합 수행부(170)는, 상기 포맷 변환부(160)와 연동하여 상기 응답 정보 수신시 상기 응답 정보에 대응하는 API 서버에 대해 기설정된 응답 포맷 정보를 확인하고, 상기 응답 포맷 정보와 상기 작업 시나리오 정보에 기설정된 요청 포맷을 기초로 상기 수신된 응답 정보의 포맷을 상기 요청 포맷으로 변환할 수 있다.
또한, 상기 통합 수행부(170)는, 상기 요청 포맷으로 변환된 응답 정보를 이용하여 상기 서비스 실행 결과를 생성할 수 있다.
또한, 상기 통합 수행부(170)는 작업 시나리오 정보에 따른 API를 기초로 API 서버에 접속하여 응답 정보를 요청한 후 상기 응답 정보를 수신하기까지의 단위 작업에 대한 로그 정보를 생성할 수 있으며, 상기 로그 정보를 상기 저장부(20)에 포함되거나 별도 구성된 로그 DB에 저장할 수 있다.
또한, 상기 검증부(180)는, 상기 통합 수행부(170)와 연동하여 상기 로그 정보 생성시 상기 로그 정보를 기초로 오류 발생 여부를 판단하고, 오류 발생시 오류가 발생된 API에 대응하는 특정 API 서버를 식별할 수 있다.
또한, 상기 검증부(180)는, 오류가 발생된 상기 로그 정보를 포함하는 오류 발생 정보를 생성하고, 상기 오류가 발생된 로그 정보를 기초로 식별된 특정 API 서버에 접속하여 상기 특정 API 서버에 상기 오류 발생 정보를 전송할 수 있다.
또한, 상기 통합 수행부(170)는, 상기 작업 시나리오 정보에 따른 특정 API 서비스의 실행 과정에서 상기 검증부(180)와 연동하여 오류 발생 횟수를 확인하고, 상기 확인된 오류 발생 횟수가 미리 설정된 기준치 이상인 경우 상기 특정 API 서비스의 실행을 중단하고, 상기 특정 API 서비스를 비동기 방식으로 처리하기 위해 상기 수신부(110)와 연동하여 상기 특정 API 서비스에 대응하는 요청 정보를 상기 비동기 버퍼부(111)에 포함된 메시지 큐에 저장할 수 있다.
또한, 상기 통합 수행부(170)는, 상기 특정 API 서비스의 실행 과정에서 특정 API 서버에 응답을 요청한 이후 미리 설정된 기준 시간 이상 응답 지연이 발생하면 상기 수신부(110)와 연동하여 상기 특정 API 서비스에 대응하는 요청 정보를 비동기 버퍼부(111)에 포함된 메시지 큐에 저장하고, 해당 특정 API 서비스가 비동기 방식으로 추후에 처리되도록 할 수도 있다.
즉, 상기 통합 수행부(170)는, 비동기 처리 대상이 아닌 특정 API 서비스에 대해서도 오류가 지속적으로 발생하거나 API 서버로부터 응답 지연이 발생하는 경우 해당 특정 API 서비스를 비동기 처리 대상으로 설정하여 메시지 큐에 저장한 후 추후 비동기 처리 방식으로 처리하여 API 서비스 처리에 대한 효율을 크게 높일 수 있다.
한편, 상기 통합 수행부(170)는, 상기 요청 정보에 대응하는 서비스 실행 결과 생성시 상기 요청 정보를 전송한 클라이언트 장치로 상기 서비스 실행 결과를 전송할 수 있다.
이때, 상기 서비스 실행 결과는 서비스 실행 결과 정보로 구성될 수 있으며, 상기 통합 수행부(170)는, 상기 수신부(110)를 통해 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송할 수도 있다.
이를 통해, 상기 서비스 실행 결과를 수신한 클라이언트 장치는, API 서비스를 위해 복수의 API마다 API 서버를 호출하여 응답 정보를 수신할 필요 없이 게이트웨이 장치(100)를 호출하는 것만으로 게이트웨이 장치(100)에서 클라이언트 장치의 사용자가 설정한 작업 시나리오에 따라 복수의 API 서버를 호출하여 API 서비스에 대응하는 서비스 실행 결과를 생성하도록 하고 이를 게이트웨이 장치(100)로부터 수신할 수 있으며, 해당 서비스 실행 결과를 클라이언트 장치에서 제공하는 상기 API 서비스가 포함된 특정 서비스에 접속한 서비스 이용자 단말에 제공할 수 있다.
이때, 상기 클라이언트 장치는, 상기 서비스 실행 결과를 포함하는 상기 특정 서비스에 대응하는 최종 서비스 수행 결과를 생성하여 상기 서비스 이용자 단말에 제공할 수 있다.
한편, 상술한 구성에서, 상기 통합 수행부(170)는, 상기 최종 응답 정보 뿐만 아니라 상기 버퍼 메모리부에 임시 저장된 응답 정보 또는 응답 결과를 상기 서비스 실행 결과에 포함시켜 상기 클라이언트 장치에 제공할 수 있다.
상술한 바와 같이, 본 발명은 복수의 API 서버에서 제공하는 복수의 API를 이용하여 서비스를 제공하는 클라이언트 장치와 상기 복수의 API 서버 사이에서 API 호출과 응답을 관리하는 게이트웨이 장치를 제공하되, 클라이언트 장치의 사용자가 게이트웨이 장치에 API 서비스에 필요한 복수의 API와 해당 복수의 API에 대한 실행 타입을 지정하여 작업 시나리오를 생성할 수 있도록 지원하고, 클라이언트 장치에서 API 서비스에 대한 서비스 실행 결과를 1회 요청하는 것만으로 게이트웨이 장치에서 사용자가 설정한 작업 시나리오의 실행 타입에 따라 복수의 API를 호출하면서 복수의 API 서버로부터 응답 정보를 수신한 후 이를 기초로 서비스 실행 결과를 클라이언트 장치에 제공할 수 있도록 함으로써, 기존 클라이언트 장치와 게이트웨이 장치 사이에 발생하는 트래픽 부하를 최소화하고, API 서비스 처리를 위한 서비스 개발 효율을 높일 수 있을 뿐만 아니라 대용량 데이터 처리가 필요한 API 서비스의 경우 메시지 큐에 저장하여 비동기 방식으로 처리함으로써 API 서비스 처리에 대한 효율을 높일 수 있다.
또한, 본 발명은, API 서버의 변경에 따른 클라이언트 장치의 API 기반 서비스에 대한 갱신 편의성을 높이며 클라이언트 장치의 API 서비스 속도를 개선하여 API 활용을 위한 서비스의 개발과 이용 효율을 크게 향상시킬 수 있다.
도 9는 본 발명의 실시예에 따른 게이트웨이 장치의 동작 방법에 대한 순서도이다.
우선, 클라이언트 장치와 복수의 API 서버 사이에서 API 호출과 응답정보를 통합 관리하는 상기 게이트웨이 장치(100)는, 복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 제공하고(S1), 상기 작업 인터페이스를 통해 상기 클라이언트 장치로부터 상기 API 서비스를 구성하는 복수의 API 조합 수행에 대한 설정 정보를 수신할 수 있다(S2).
또한, 상기 게이트웨이 장치(100)는, 상기 설정 정보를 API 서비스용 작업 시나리오 정보로 등록하여 저장할 수 있다(S3).
또한, 상기 게이트웨이 장치(100)는, 상기 클라이언트 장치로부터 기등록된 상기 API 서비스에 대한 요청 정보 수신시(S4) 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 기초로 상기 API 서비스의 비동기 처리 여부를 판단하여(S5) 비동기 처리 대상인 경우 메시지 큐에 상기 요청 정보를 저장할 수 있다(S6).
또한, 상기 게이트웨이 장치(100)는, 미리 설정된 유휴 상태 조건 만족시(S7) 상기 메시지 큐에서 상기 요청 정보를 추출한 후(S8) 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 추출하고, 상기 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성하며, 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송할 수 있다(S9, S10).
본 발명의 실시예들에서 설명된 구성요소는, 예를 들어, 메모리 등의 저장부, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(Field Programmable Gate Array), PLU(programmable logic unit), 마이크로프로세서 등의 하드웨어, 명령어 세트를 포함하는 소프트웨어 내지 이들의 조합 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 게이트웨이 장치 10: 통신부
20: 저장부 30: 제어부
110: 수신부 111: 비동기 버퍼부
120: API 서버 접속부 130: 관리부
140: 등록부 150: 설정부
160: 포맷 변환부 170: 통합 수행부
180: 검증부

Claims (10)

  1. 클라이언트 장치와 복수의 API 서버 사이에서 API 호출과 응답정보를 통합 관리하는 게이트웨이 장치로서,
    복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 제공하고, 상기 작업 인터페이스를 통해 상기 클라이언트 장치로부터 상기 API 서비스를 구성하는 복수의 API 조합 수행에 대한 설정 정보를 수신하는 설정부;
    상기 설정 정보를 API 서비스용 작업 시나리오 정보로 등록하는 등록부;
    상기 클라이언트 장치로부터 기등록된 상기 API 서비스에 대한 요청 정보 수신시 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 기초로 상기 API 서비스의 비동기 처리 여부를 판단하여 비동기 처리 대상인 경우 메시지 큐에 상기 요청 정보를 저장하는 수신부; 및
    미리 설정된 유휴 상태 조건 만족시 상기 메시지 큐에서 상기 요청 정보를 추출한 후 상기 등록부와 연동하여 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 추출하고, 상기 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성하며, 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송하는 통합 수행부
    를 포함하는 API 분산 처리를 지원하는 게이트웨이 장치.
  2. 청구항 1에 있어서,
    상기 작업 시나리오 정보는 상기 API 서비스의 비동기 처리 여부에 대한 처리 유형 정보를 포함하고,
    상기 수신부는, 상기 요청 정보에 대응하는 작업 시나리오 정보에 포함된 상기 처리 유형 정보를 기초로 상기 API 서비스가 상기 API 서비스의 비동기 처리 여부에 따른 비동기 처리 대상인 경우 상기 요청 정보를 상기 메시지 큐에 저장하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  3. 청구항 1에 있어서,
    상기 복수의 API 서버별 응답 정보의 포맷에 대한 응답 포맷 정보를 저장하고, 상기 통합 수행부와 연동하여 상기 응답 정보 수신시 상기 응답 정보에 대응하는 API 서버의 응답 포맷 정보와 상기 작업 시나리오 정보에 따른 상기 클라이언트 장치의 요청 포맷을 기초로 상기 응답 정보의 포맷을 상기 요청 포맷으로 변환하는 포맷 변환부를 더 포함하며,
    상기 통합 수행부는, 상기 요청 포맷으로 변환된 복수의 응답 정보를 이용하여 상기 서비스 실행 결과를 생성하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  4. 청구항 1에 있어서,
    상기 통합 수행부는,
    상기 작업 시나리오 정보에 포함된 복수의 API 각각에 대해 상기 작업 시나리오 정보에 설정된 상기 API 실행 타입에 따라 병렬 실행되는 API를 병렬 실행 API로 식별하고, 직렬 실행되는 API를 직렬 실행 API로 식별하며, 상기 복수의 API 각각의 실행 순서를 식별하고, 실행 순서가 상호 동일한 복수의 병렬 실행 API 식별시 상기 복수의 병렬 실행 API마다 병렬 실행 API에 대응하는 API 서버로 병렬 실행 API의 실행에 따른 응답 정보를 요청하여 수신한 후 상기 복수의 병렬 실행 API와 각각 대응하는 복수의 응답 정보를 하나로 병합한 응답 정보인 응답 결과를 생성하고, 상기 직렬 실행 API 식별시 상기 직렬 실행 API에 대응하는 API 서버로부터 상기 직렬 실행 API의 실행에 따라 요청한 응답 정보를 수신하며, 상기 API 실행 타입에 따른 상기 복수의 API별 실행 순서에 따라 선순위 API에 대응하는 응답 정보를 상기 선순위 API의 다음 순서에 해당하는 후순위 API에 입력값으로 적용하는 방식으로 상기 복수의 API를 실행하여 얻어진 최종 응답 정보를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  5. 청구항 4에 있어서,
    상기 통합 수행부는,
    상기 API 실행 타입이 병렬 실행 및 직렬 실행의 순으로 조합된 제 1 조합 타입인 경우, 상기 복수의 API 중 실행 순서가 상호 동일한 병렬 실행 대상인 제 1 API 및 제 2 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 1 API에 대응하는 제 1 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 1 API에 대응하는 제 1 응답 정보를 요청하여 수신하고 상기 제 2 API에 대응하는 제 2 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 2 API에 대응하는 제 2 응답 정보를 요청하여 수신한 후 상기 제 1 응답 정보 및 제 2 응답 정보를 병합하여 제 1 응답 결과를 생성하고, 상기 복수의 API 중 상기 제 1 조합 타입에 따라 식별된 직렬 실행 API인 제 3 API에 상기 제 1 응답 결과를 입력값으로 적용하여 상기 제 3 API에 대응하는 제 3 API 서버와의 통신을 통해 상기 제 1 응답 결과가 적용된 상기 제 3 API에 대응하는 제 3 응답 정보를 요청하여 수신한 후 상기 제 3 응답 정보를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  6. 청구항 4에 있어서,
    상기 통합 수행부는,
    상기 API 실행 타입이 직렬 실행 및 병렬 실행의 순으로 조합된 제 2 조합 타입인 경우, 상기 복수의 API 중 직렬 실행 API인 제 4 API에 상기 요청 정보에 따른 검색 정보를 적용하여 상기 제 4 API에 대응하는 제 4 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 4 API에 대응하는 제 4 응답 정보를 요청하여 수신하고, 상기 복수의 API 중 상기 제 2 조합 타입에 따라 식별된 병렬 실행 대상인 제 5 API 및 제 6 API 각각에 상기 제 4 응답 정보를 적용하여 상기 제 5 API에 대응하는 제 5 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 5 API에 대응하는 제 5 응답 정보를 요청하여 수신하고 상기 제 6 API에 대응하는 제 6 API 서버와의 통신을 통해 상기 제 4 응답 정보가 적용된 제 6 API에 대응하는 제 6 응답 정보를 수신한 후 상기 제 5 응답 정보 및 제 6 응답 정보를 병합하여 제 2 응답 결과를 생성하며, 상기 제 2 응답 결과를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  7. 청구항 4에 있어서,
    상기 통합 수행부는,
    상기 API 실행 타입이 복수의 병렬 실행으로 조합된 제 3 조합 타입인 경우, 상기 복수의 API 중 병렬 실행 대상인 제 7 API 및 제 8 API 각각에 상기 요청 정보에 포함된 검색 정보를 적용하여 상기 제 7 API에 대응하는 제 7 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 7 API에 대응하는 제 7 응답 정보를 요청하여 수신하고 상기 제 8 API에 대응하는 제 8 API 서버와의 통신을 통해 상기 검색 정보가 적용된 제 8 API에 대응하는 제 8 응답 정보를 요청하여 수신한 후 상기 제 7 응답 정보 및 제 8 응답 정보를 병합하여 제 3 응답 결과를 생성하고, 상기 복수의 API 중 병렬 실행 대상인 제 9 API 및 제 10 API 각각에 상기 제 3 응답 결과를 적용하여 상기 제 9 API에 대응하는 제 9 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 9 API에 대응하는 제 9 응답 정보를 요청하여 수신하고 상기 제 10 API에 대응하는 제 10 API 서버와의 통신을 통해 상기 제 3 응답 결과가 적용된 제 10 API에 대응하는 제 10 응답 정보를 요청하여 수신한 후 상기 제 9 응답 정보 및 제 10 응답 정보를 병합하여 제 4 응답 결과를 생성하며, 상기 제 4 응답 결과를 기초로 서비스 실행 결과를 생성하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  8. 청구항 1에 있어서,
    상기 통합 수행부는, 상기 작업 시나리오 정보에 따른 API를 기초로 API 서버에 접속하여 응답 정보를 요청한 후 상기 응답 정보를 수신하기까지의 단위 작업에 대한 로그 정보를 생성하고,
    상기 통합 수행부와 연동하여 상기 로그 정보 생성시 상기 로그 정보를 기초로 오류 발생 여부를 판단하고, 오류 발생시 오류가 발생된 상기 로그 정보를 포함하는 오류 발생 정보를 생성한 후 오류가 발생된 API에 대응하는 특정 API 서버에 상기 오류 발생 정보를 전송하는 검증부를 더 포함하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  9. 청구항 8에 있어서,
    상기 통합 수행부는, 상기 검증부와 연동하여 상기 작업 시나리오 정보에 따른 API 서비스의 실행 과정에서 오류 발생 횟수를 확인하여 상기 오류 발생 횟수가 미리 설정된 기준치 이상이거나 또는 상기 작업 시나리오 정보에 따른 API 서비스의 실행 과정에서 API 서버로부터 미리 설정된 기준 시간 이상 응답 지연이 발생하는 경우 상기 수신부와 연동하여 상기 요청 정보를 상기 메시지 큐에 저장하여 상기 API 서비스가 비동기 처리되도록 하는 것을 특징으로 하는 API 분산 처리를 지원하는 게이트웨이 장치.
  10. 클라이언트 장치와 복수의 API 서버 사이에서 API 호출과 응답정보를 통합 관리하는 게이트웨이 장치의 동작 방법에 있어서,
    복수 API 호출과 응답 정보를 이용하도록 구성된 서비스의 API 관련 작업을 사용자 정의 API 서비스로 설정하여 활용하도록 하기 위해서 API 서비스용 작업 시나리오 설정을 위한 작업 인터페이스를 제공하고, 상기 작업 인터페이스를 통해 상기 클라이언트 장치로부터 상기 API 서비스를 구성하는 복수의 API 조합 수행에 대한 설정 정보를 수신하는 단계;
    상기 설정 정보를 API 서비스용 작업 시나리오 정보로 등록하는 단계;
    상기 클라이언트 장치로부터 기등록된 상기 API 서비스에 대한 요청 정보 수신시 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 기초로 상기 API 서비스의 비동기 처리 여부를 판단하여 비동기 처리 대상인 경우 메시지 큐에 상기 요청 정보를 저장하는 단계; 및
    미리 설정된 유휴 상태 조건 만족시 상기 메시지 큐에서 상기 요청 정보를 추출한 후 상기 요청 정보에 대응하는 상기 작업 시나리오 정보를 추출하고, 상기 작업 시나리오 정보에 포함된 복수의 API의 조합과 실행을 상기 작업 시나리오 정보에 미리 설정된 API 실행 타입에 맞추어 병렬 또는 직렬로 수행하고, 상기 수행에 따라 상기 복수의 API와 각각 대응하는 복수의 API 서버 각각으로부터 수신된 응답 정보를 기초로 서비스 실행 결과를 생성하며, 상기 서비스 실행 결과를 상기 클라이언트 장치에 전송하는 단계;
    를 포함하는 API 분산 처리를 지원하는 게이트웨이 장치의 동작 방법.
KR1020220128915A 2022-10-07 2022-10-07 Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법 KR102483315B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220128915A KR102483315B1 (ko) 2022-10-07 2022-10-07 Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220128915A KR102483315B1 (ko) 2022-10-07 2022-10-07 Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR102483315B1 true KR102483315B1 (ko) 2023-01-02

Family

ID=84925758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220128915A KR102483315B1 (ko) 2022-10-07 2022-10-07 Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR102483315B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120134913A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 화상 형성 장치의 어플리케이션을 개발하는 방법 및 장치
KR20170062244A (ko) * 2015-11-27 2017-06-07 주식회사 비디 Api 관리 장치
KR102407334B1 (ko) * 2021-12-24 2022-06-10 이데아텍(주) 게이트웨이 장치 및 그 동작 방법
KR102426381B1 (ko) 2020-11-03 2022-07-29 스트라토 주식회사 Api 요청 처리 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120134913A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 화상 형성 장치의 어플리케이션을 개발하는 방법 및 장치
KR20170062244A (ko) * 2015-11-27 2017-06-07 주식회사 비디 Api 관리 장치
KR102426381B1 (ko) 2020-11-03 2022-07-29 스트라토 주식회사 Api 요청 처리 시스템
KR102407334B1 (ko) * 2021-12-24 2022-06-10 이데아텍(주) 게이트웨이 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
EP3410759B1 (en) Method and access point for accessing network by internet-of-things device
US9467499B2 (en) Method and management apparatus for performing operation on device resource
KR20200012981A (ko) 네트워크 슬라이스 관리 방법, 디바이스 및 컴퓨터 판독 가능 저장 매체
EP3493472B1 (en) Network function (nf) management method and nf management device
AU2019383599B9 (en) Method, apparatus, and system for obtaining capability information of terminal
US11917013B1 (en) Gateway device for integrally processing APIs and method of operating same
CN102137069A (zh) 一种物联网应用实现方法及系统
CN103684878A (zh) 一种操作命令参数管控方法和设备
CN111246406A (zh) 一种短信发送方法、系统、存储介质及终端设备
US20230046979A1 (en) Microservice call method and apparatus, device, and medium
CN105245521A (zh) 协议格式转换方法、装置及接口平台
KR102483313B1 (ko) Api 서비스의 일괄 처리를 지원하는 서비스 제공 시스템 및 방법
US20230269577A1 (en) Slice isolation method, apparatus, and system
CN112202879A (zh) 中间件管理方法、装置、电子设备和存储介质
WO2016192746A1 (en) Method and apparatus for implementing self-operation functions within a network
KR102483315B1 (ko) Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법
CN112579997B (zh) 一种用户权限配置方法、装置、计算机设备及存储介质
CN107426109B (zh) 一种流量调度方法、vnf模块及流量调度服务器
US11930472B2 (en) Target information acquisition method and terminal device
CN110535746B (zh) 虚拟专用网络vpn共享的方法、装置、电子设备及存储介质
KR102124954B1 (ko) 이기종 데이터베이스 관리 시스템을 동시 지원하기 위한 IoT 플랫폼 시스템 및 그 동작 방법
WO2023104054A1 (zh) 网络处理模块、数据处理方法、网络节点和存储介质
KR102528717B1 (ko) 보안 기능을 지원하는 api 통합 처리를 위한 게이트웨이 장치 및 이의 동작 방법
WO2021036621A1 (zh) 信息交互方法及相关设备
US20180042046A1 (en) Pseudo access method, direct connection scheduling method for pseudo access, station, and access point

Legal Events

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