KR102426381B1 - Api 요청 처리 시스템 - Google Patents

Api 요청 처리 시스템 Download PDF

Info

Publication number
KR102426381B1
KR102426381B1 KR1020200145430A KR20200145430A KR102426381B1 KR 102426381 B1 KR102426381 B1 KR 102426381B1 KR 1020200145430 A KR1020200145430 A KR 1020200145430A KR 20200145430 A KR20200145430 A KR 20200145430A KR 102426381 B1 KR102426381 B1 KR 102426381B1
Authority
KR
South Korea
Prior art keywords
service
api
zone
serverless
api service
Prior art date
Application number
KR1020200145430A
Other languages
English (en)
Other versions
KR20220059814A (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 KR1020200145430A priority Critical patent/KR102426381B1/ko
Priority to PCT/KR2020/015372 priority patent/WO2022097772A1/ko
Publication of KR20220059814A publication Critical patent/KR20220059814A/ko
Application granted granted Critical
Publication of KR102426381B1 publication Critical patent/KR102426381B1/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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]
    • 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/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Abstract

본 발명은 API 요청 처리 시스템에 관한 것이다. 본 발명에 따른 API 요청 처리 시스템은, API 서비스가 항상 응답 대기 상태를 유지하는 마이크로 서비스 존과 API 서비스에 대한 invoke를 실행하여 해당 API 서비스가 실행되도록 한 후 종료시키는 서버리스 서비스 존을 포함하는 서비스 실행부와; 외부로부터 API 서비스 요청 신호를 수신하고, 그 수신된 API 서비스 요청 신호에 대한 분석을 통해 상기 마이크로 서비스 존과 상기 서버리스 서비스 존 중 어느 하나로 해당 API 서비스 요청 신호를 전달하는 API 게이트웨이를 포함하는 것을 특징으로 한다.

Description

API 요청 처리 시스템{API REQUEST PROCESSING SYSTEM}
본 발명은 API 요청 처리 시스템에 관한 것으로, 보다 상세하게는 서버리스 기반의 API 서비스 요청에 대해 처리하는 시스템에 관한 것이다.
종래에는 고객들에게 온라인을 통한 특정 서비스를 제공하기 위해서는 서버를 구축하여 운영하는 것이 일반적이었다.
그러나 이처럼 각 서비스 제공 업체들이 직접 서버를 운영하는 것은 물리적 공간이 필요함은 물론이고, 해당 서버를 운영하는 운영 인력도 필요하여 많은 부담이 될 수밖에 없다.
이러한 불편을 해소하기 위해 최근에는 서버리스 시스템이 제시된 바 있다.
서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 개발 모델을 의미한다.
물론 서버리스 모델에도 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 추상화되게 되고, 이 경우 클라우드 제공업체가 서버 인프라에 대한 프로비저닝, 유지 관리, 스케일링 등의 일상적인 작업을 처리하며, 개발자는 배포를 위해 코드를 컨테이너에 패키징 하기만 하면 되는 것이다.
서버리스 애플리케이션은 배포되고 나면 필요에 따라 자동으로 스케일 업 되거나 스케일 다운되게 된다.
이러한 퍼블릭 클라우드 제공업체의 서버리스 오퍼링은 일반적으로 이벤트 기반 실행 모델을 통해 온디맨드로 미터링되므로 서버리스 기능이 유휴 상태일 때는 아무런 비용도 들지 않는다는 장점이 있다.
한편, 새로운 애플리케이션을 만들 때, 하나의 개발환경을 세팅하고(OS는 RedHat, JDK1.8에 Mysql5.7 등등) 작은 애플리케이션부터 만들기 시작하고, 이후 애플리케이션에 새로운 기능이 추가될수록 코드의 양은 점점 많아지고 하나의 모듈도 거대해지게 된다.
이 경우 버그라도 생기면 오류를 찾아내기가 쉽지 않을 뿐더러 조금만 변경하더라도 많은 부분에 영향을 미쳐 더 큰 오류를 발생시킬 수도 있다.
이러한 종래의 문제점을 해결하기 위해 최근에는 마이크로 서비스라는 개념으로 필요한 애플리케이션 등을 배포 또는 운영하는 경우가 증가하고 있다.
마이크로 서비스 아키텍처는 하나의 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 각각의 애플리케이션들은 작고 독립적인 서비스로 구성하는 것을 의미한다.
각각의 마이크로 서비스들은 외부의 요청에 바로 응답할 수 있는 상태를 유지하고 있다고 외부로부터 API 서비스 요청 신호가 수신되면 그에 대응되는 기능을 수행하여 응답하는 기능을 수행한다.
그런데 지금까지 이러한 마이크로 서비스의 운영과 상술한 서버리스 서비스의 운영이 함께 처리되는 시스템이 제시된 바 없다.
즉, 서버리스 서비스의 운영은 기본적으로 외부의 API 서비스 요청 신호에 대해 해당하는 서비스를 invoke 하여 실행시키고 그 처리가 종료되면 해당 서비스를 종료시키는 형태로 운영됨에 반해, 마이크로 서비스의 운영은 마이크로 서비스를 항상 동작 가능한 상태로 유지(즉, 자원 할당 및 점유)하고 있다가 외부로부터 수신되는 API 서비스 요청 신호에 대해 즉시 처리를 수행하는 형태로 운영된다는 점에 차이가 있다.
그런데 이러한 서버리스 서비스의 운영과 마이크로 서비스의 운영은 각각 장단점이 있는 것이어서, 특정 API 서비스에 대해서 서버리스 서비스의 형태로 운영할 수도 있고, 마이크로 서비스의 형태로 운영할 수 있도록 하는 것이 자원 효율 및 서비스 이용자 편의성 측면에서 중요할 수 있는데, 종래에는 이처럼 마이크로 서비스와 서버리스 서비스가 동시에 운영되는 시스템이 제시된 바 없다.
공개특허 제10-2020-0063360호
본 발명은 상기한 종래의 필요성을 충족시키기 위해 안출된 것으로서, 그 목적은 소정의 API 서비스에 대해서 특정 조건에 따라 마이크로 서비스 형태 또는 서버리스 서비스 형태로 운영이 될 수 있도록 하는 시스템을 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명에 따른 API 요청 처리 시스템은, API 서비스가 항상 응답 대기 상태를 유지하는 마이크로 서비스 존과 API 서비스에 대한 invoke를 실행하여 해당 API 서비스가 실행되도록 한 후 종료시키는 서버리스 서비스 존을 포함하는 서비스 실행부와; 외부로부터 API 서비스 요청 신호를 수신하고, 그 수신된 API 서비스 요청 신호에 대한 분석을 통해 상기 마이크로 서비스 존과 상기 서버리스 서비스 존 중 어느 하나로 해당 API 서비스 요청 신호를 전달하는 API 게이트웨이를 포함하여 구성된다.
여기서, 서비스 실행부는 상기 마이크로 서비스 존 또는 상기 서버리스 서비스 존에 새로운 API 서비스가 등록될 때마다 해당 새로 등록된 API 서비스의 설치 존에 대한 정보를 전송하고, 상기 서비스 실행부로부터 각 API 서비스에 대응되는 설치 존에 대한 정보를 저장하는 서비스 레지스트리를 더 포함하고, 상기 API 게이트웨이는 상기 서비스 레지스트리에 저장된 정보를 참고하여 상기 마이크로 서비스 존과 상기 서버리스 서비스 존 중 어느 하나로 API 서비스 요청 신호를 전달할 수 있다.
여기서, 상기 API 게이트웨이를 통한 API 서비스 호출 로그 기록을 참고하여, 상기 마이크로 서비스 존에 등록된 적어도 하나의 API 서비스를 상기 서버리스 서비스 존으로 재배포하는 API 서비스 재배포부를 더 포함할 수 있다.
여기서, 사용자에 의해 입력되는 API 규격 정의에 따라 API 서비스의 소스와 프라퍼티를 자동 생성하여 빌드하고, 상기 서비스 실행부의 마이크로 서비스 존과 서버리스 서비스 존 중 어느 하나로 해당 빌드된 API 서비스를 배포하는 API 서비스 생성부를 더 포함할 수 있다.
이상 설명한 바와 같이 본 발명에 따르면, 소정의 API 서비스에 대해서 특정 조건에 따라 마이크로 서비스 형태 또는 서버리스 서비스 형태로 운영이 될 수 있으므로, 자원을 효율적으로 이용할 수 있고, 사용자 만족도가 증가한다.
즉, 자주 API 호출이 발생하는 서비스에 대해서는 마이크로 서비스 존에서 운영되도록 함으로써 빠른 처리 속도(반응 속도)가 이루어질 수 있고, 또한 API 호출이 자주 발생하지 않는 서비스에 대해서는 서버리스 서비스 존에서 운영되도록 함으로써 자원을 효율적으로 사용할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 API 요청 처리 시스템의 기능 블록도이고,
도 2는 도 1의 API 요청 처리 시스템의 서비스 레지스트리에 등록되는 데이터의 형태를 종래와 비교한 도면이고,
도 3 및 도 4는 도 1의 API 요청 처리 시스템의 제어흐름도이고,
도 5 내지 도 8은 API 규격 정의에 따라 자동으로 소스 코드가 생성되고 빌드되는 과정을 설명하기 위한 도면이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
이하 본 발명에 따른 각 실시예는 본 발명의 이해를 돕기 위한 하나의 예에 불과하고, 본 발명이 이러한 실시예에 한정되는 것은 아니다. 특히 본 발명은 각 실시예에 포함되는 개별 구성, 개별 기능, 또는 개별 단계 중 적어도 어느 하나 이상의 조합으로 구성될 수 있다.
본 발명의 일 실시예에 따른 API 요청 처리 시스템(100)의 기능 블록은 도 1에 도시된 바와 같다.
동 도면에 도시된 바와 같이 API 요청 처리 시스템(100)은 서비스 실행부(110), API 게이트웨이(120). 서비스 레지스트로, API 서비스 생성부(140), API 서비스 재배포부(150)를 포함하여 구성될 수 있다.
본 실시예에서, API 서비스 요청 신호는 서버리스 서비스 또는 마이크로 서비스에 대해 소정의 응답을 요청하거나 또는 소정의 기능을 수행하도록 요청하는 신호이고, API 서비스는 이러한 API 서비스 요청 신호를 처리하는 서비스를 의미하는 것으로서, 소정의 펑션 또는 소정의 독자적 애플리케이션 등에 해당할 수 있고, 이러한 API 서비스 요청 신호 및 API 서비스 그 자체는 공지된 기술이 해당하므로 보다 상세한 설명은 생략한다.
서비스 실행부(110)는 외부로부터 수신되는 API 서비스 요청 신호에 따라 특정 기능을 수행하는 것으로서, 각 API 서비스 요청 신호를 처리할 적어도 하나의 API 서비스를 등록하는 기능도 수행한다.
여기서 서비스 실행부(110)는 API 서비스 요청 신호를 API 게이트웨이(120)를 경유하여 수신할 수 있다.
이러한, 서비스 실행부(110)에는 마이크로 서비스 존과 서버리스 서비스 존이 구분되어 구비될 수 있는데, 여기서 마이크로 서비스 존은 API 서비스가 항상 응답 대기 상태를 유지하고 있는 영역을 의미하고, 서버리스 서비스 존은 API 서비스가 자원을 할당받지 않은 대기 상태를 유지하고 있는 영역으로서, API 서비스에 대한 invoke를 실행하여 해당 API 서비스가 실행되도록 한 후 종료시키는 영역을 의미한다.
즉, 서비스 실행부(110)의 마이크로 서비스 존은 등록된 API 서비스에 대해서 외부의 API 서비스 요청 신호에 대응하여 즉시 실행시킬 수 있지만, 서버리스 서비스 존은 등록된 API 서비스에 대해서 invoke 과정을 통해 일종의 활성화과정을 수행한 후에 실행시킬 수 있다.
특히 서버리스 서비스 존은 등록된 API 서비스를 실행된 후에 자동으로 종료함에 반해 마이크로 서비스 존은 등록된 API 서비스에 대해 항상 실행 대기 상태를 유지한다는 점에서 차이가 있다.
일 예로 클라우드 업체를 통해 서비스 실행부(110)를 운영하는 경우, 마이크로 서비스 존에 등록된 각 API 서비스에 대해서는 계속하여 비용이 발생하게 되고, 서버리스 서비스 존에 등록된 각 API 서비스에 대해서는 실행하는 순간에만 비용이 발생하게 되는 것이다.
서비스 실행부(110)는 또한 마이크로 서비스 존 또는 서버리스 서비스 존에 새로운 API 서비스가 등록될 때마다 해당 새로 등록된 API 서비스의 설치 존에 대한 정보를 전송하는 기능을 수행한다.
즉, 서비스 실행부(110)의 마이크로 서비스 존은 새로운 API 서비스가 등록된 경우 그 새로 등록된 API 서비스 식별자와 함께 마이크로 서비스 존 정보를 매칭시켜 서비스 레지스트리(130)에 전송하여 저장되도록 하고, 서버리스 서비스 존은 새로운 API 서비스가 등록된 경우 그 새로 등록된 API 서비스 식별자와 함께 서버리스 서비스 존 정보를 매칭시켜 서비스 레지스트리(130)에 전송하여 저장되도록 할 수 있는 것이다.
한편, 이러한 API 서비스의 등록은 API 서비스 생성부(140)의 요청에 따라 이루어질 수 있는데, 이에 대한 보다 상세한 설명은 후술토록 한다.
서비스 레지스트리(130)는 상술한 바와 같이 서비스 실행부(110)로부터 각 API 서비스에 대응되는 설치 존에 대한 정보를 저장하는 기능을 수행한다.
예를 들어 서비스 레지스트리(130)는 데이터베이스 테이블을 구비하여, 각 API 서비스의 식별자와 해당 API 서비스가 등록되어 있는 영역(즉, 마이크로 서비스 존 또는 서버리스 서비스 존)에 대한 정보를 매칭시켜 저장 및 관리할 수 있다.
서비스 레지스트리(130)에 등록된 정보의 일 예가 도 2(b)에 도시되었다.
참고로, 도 2(a)는 종래의 서비스 레지스트리(130)에 등록된 정보의 일 예이고, 도 2(b)는 이러한 종래의 등록 정보와 비교할 때 저장 영역을 구분하는 type 필드가 추가되었음을 알 수 있다. 더 나아가 도 2(b)에 도시된 바와 같이 Invoke command 필드가 더 추가될 수도 있다.
API 게이트웨이(120)는 외부로부터 API 서비스 요청 신호를 수신하고, 이를 서비스 실행부(110)에 전송하는 기능을 수행한다.
여기서 API 게이트웨이(120)는 사용자 단말기나 또는 데이터베이스 시스템, 파일 저장소 등으로부터 API 서비스 요청 신호를 수신할 수 있는데, 이때 그 수신된 API 서비스 요청 신호에 대한 분석을 통해 마이크로 서비스 존과 서버리스 서비스 존 중 어느 쪽으로 API 서비스 요청 신호를 전달할지를 판단하는 기능을 수행할 수 있다.
예를 들어 API 게이트웨이(120)는 서비스 레지스트리(130)에 저장되어 있는 정보를 이용하여 현재 수신된 API 서비스 요청 신호에 대응되는 API 서비스가 등록되어 있는 영역을 확인하고, 그 확인된 결과를 이용하여 API 서비스 요청 신호를 마이크로 서비스 존으로 전달하거나 또는 서버리스 서비스 존으로 전달할 수 있다.
API 게이트웨이(120)는 이처럼 각 API 서비스 요청 신호가 수신될 때마다 그 호출 내역을 누적 기록하는 기능도 수행한다.
API 서비스 재배포부(150)는 API 게이트웨이(120)를 통한 API 서비스 호출 로그 기록을 참고하여, 마이크로 서비스 존에 등록된 API 서비스 또는 서버리스 서비스 존에 등록된 API 서비스를 다른 존으로 이동 재배치하는 기능을 수행한다.
예를 들어 API 서비스 재배포부(150)는 마이크로 서비스 존에 등록되어 있던 API 서비스를 이용하기 위한 API 서비스 요청 신호가 기 설정된 기간 동안 기 설정된 횟수 이하인 경우 해당 API 서비스를 서버리스 서비스 존으로 이동 배치하는 기능을 수행할 수 있고, 다른 예로써, 서버리스 서비스 존에 등록되어 있던 API 서비스를 이용하기 위한 API 서비스 요청 신호가 기 설정된 기간 동안 기 설정된 횟수 이상인 경우 해당 API 서비스를 마이크로 서비스 존 이동 배치하는 기능을 수행할 수 있다.
한편, API 서비스 생성부(140)는 사용자에 의해 입력되는 API 규격 정의에 따라 API 서비스의 소스와 프라퍼티를 자동 생성하여 빌드하고, 그 빌드된 API 서비스를 서비스 실행부(110)의 마이크로 서비스 존과 서버리스 서비스 존 중 어느 하나로 배포하는 기능을 수행한다.
즉, 사용자가 API 규격 정의를 내리기만 하면, API 서비스 생성부(140)는 API 서비스의 소스 코드 자체를 자동으로 생성하여 빌드 과정 및 배포까지의 과정도 자동으로 수행하는 것이다.
이러한 API 서비스 생성부(140)의 수행 과정에 대한 보다 상세한 설명은 후술토록 한다.
도 3에는 API 요청 처리 시스템(100)이 API 서비스를 등록하고, 외부의 요청에 따라 해당 API 서비스가 실행되는 전체적인 과정이 나타나 있다.
API 서비스가 등록되는 경우(단계 S1) API 요청 처리 시스템(100)은 그 API 서비스를 등록함과 아울러 그 등록된 설치 존(마이크로 서비스 존 또는 서버리스 서비스 존)을 확인하여 매칭 저장한다(단계 S3).
외부로부터 API 서비스 요청 신호가 수신되면(단계 S5) 앞서 매칭 저장된 정보를 이용하여 그 API 서비스 요청 신호를 처리할 API 서비스가 설치된 존을 확인한다(단계 S7).
확인 결과 해당 API 서비스가 마이크로 서비스 존에 등록되어 있는 경우에는(단계 S9) 해당 API 서비스 요청 신호를 마이크로 서비스 존으로 전달하고(단계 S11), 이에 따라 마이크로 서비스 존에서 해당 API 서비스가 그 API 서비스 요청 신호에 따른 기능을 즉시 수행하게 된다(단계 S13).
확인 결과 해당 API 서비스가 서버리스 서비스 존에 등록되어 있는 경우에는(단계 S15) 해당 API 서비스 요청 신호를 서버리스 서비스 존으로 전달하고(단계 S17), 이에 따라 서버리스 서비스 존에서 해당 API 서비스가 Invoke 및 실행된 후(단계 S19) 그 API 서비스 요청 신호에 따른 처리를 수행하고(단계 S21), 처리 수행 후 해당 API 서비스는 종료되게 된다(단계 S23).
도 4는 본 발명의 일 실시예에 따른 API 요청 처리 시스템(100)에서 마이크로 서비스 존에 등록되었던 API 서비스가 서버리스 서비스 존으로 재배포 되는 과정을 나타내는 흐름도이다.
API 요청 처리 시스템(100)은 API 서비스 요청에 해당하는 호출 로그를 분석하여(단계 S31) 빈도가 낮은 API 서비스 요청 신호를 선정한다(단계 S33).
예를 들어 API 요청 처리 시스템(100)은 API 서비스 요청 신호들 중에서 호출 횟수가 낮은 하위 5개의 API 서비스 요청 신호를 선정할 수 있다.
이어서 그 선정된 API 서비스 요청 신호를 처리하는 API 서비스가 마이크로 서비스 존에 등록되어 있는지를 판단한다(단계 S35).
판단 결과 마이크로 서비스 존에 등록되어 있는 경우, API 요청 처리 시스템(100)은 해당 API 서비스를 서버리스 서비스 존으로 재배포 되도록 처리한다(단계 S37).
이에 따라 최초 마이크로 서비스 존에 등록되어 있던 API 서비스라 하더라도 호출 빈도가 떨어지는 경우 서버리스 서비스 존으로 이동하게 되는 것이다.
서버리스 서비스 존으로 이동된 API 서비스는 즉시 응답 대기 상태를 유지하고 있지 않으므로, 외부로부터 API 서비스 요청 신호가 수신된 경우 Invoke 과정을 거쳐 활성화된 후에 응답 처리를 수행하고, 이후 해당 API 서비스는 종료되게 됨은 앞서 설명한 바와 같다.
한편, 도 5 내지 도 8에는 API 요청 처리 시스템(100)의 API 서비스 생성부(140)에서 수행하는 과정이 나타나 있다.
우선, 도 5는 사용자에 의해 API 규격이 정의되는 창의 일 예를 나타내고 있다.
도 5는 New API Mapper를 설정하는 페이지로서 팝업 다이얼로그로 띄어질 수 있고, Request/Response는 텝 메뉴로 작동하며 동일한 화면 구성을 가질 수 있다.
From, To 항목은 application/json, application/xml, text/plain 등을 정의하기 위한 것이고, 데이터 타입이 application/json 이나 application/xml을 선택한 경우 Data Path 설정이 활성화 될 수 있다.
사용자에 의해 각 Segment 들이 추가될 수 있고, 생성된 Segment 순서에 따라 패킷으로 변환될 수 있다.
도 6에는 사용자에 의해 입력된 정보에 따라 자동 생성되는 소스 구조도가 타나 있고, 도 7에는 매핑 데이터 포맷을 설명하기 위한 내용이 도시되었다.
도 7의 제1 영역(141)에는 접속 정보로서, 여기의 type은 sync/async 가 될 수 있고, protocol은 HTTP , TCP/IP 등이 될 수 있다.
도 7의 제2 영역(142)을 살펴보면, type은 application/json, application/xml, text/plain 등이 될 수 있고, dataPath는 json/xml 문서 에서 사용할 데이터 시작 위치를 나타내며, 예를 들어 /api/data와 같이 경로로도 작성 가능하다.
또한 From은 Request되는 데이터의 스펙을 정의한 것이고, id는 해당 값의 고유 값으로 to에서 해당 값을 참고하기 위해 정의된 것이며, type은 string/integer 등을 정의한 것일 수 있고, key는 json/xml 타입의 문서에서 값을 얻기 위한 데이터를 의미한다.
전문 type에 따라 정의 되는 내용 상이할 수 있는데, Json/Xml인 경우 type, key으로 될 수 있고, Text의 경우 type, length로 될 수 있다.
length는 text 타입의 문서에서 값을 얻기 위한 byte 길이 데이터로서 연속해서 나열될 수 있다.
한편, 도 7의 제3 영역(143)을 살펴보면, Legacy로 전달할 전문을 정의하고 있음을 알 수 있다.
여기서 Id는 from에 동일한 id가 있을 경우 from의 값을 사용하고 없는 경우 value를 정의해야 하는 것이고, type은 string/integer을 구분하는 것이며, Key는 json/xml 타입의 문서에서 키 값을 나타내고, Value는 from의 값을 쓰지 않고 직접 값을 입력하는 경우에 사용하는 것이다.
도 8에는 Request-from 에 대해 Request-to 로 자동 변환의 일 예가 나타나 있다.
도 8의 변환 예제에서 데이터 길이는 위에서 설정한 데이터 길이와 동일하다고 가정하고, 데이터가 설정한 데이터 길이보다 작은 경우 나머지 자리를 가정하며 0으로 채우고 있음을 알 수 있다.
text 타입에서 정의되는 length는 byte 길이를 나타낸 것이고, 변환된 데이터는 실제로는 hex 값으로 변환 하여 전송될 수 있다.
한편, 상술한 각 실시예를 수행하는 과정은 소정의 기록 매체(예를 들어 컴퓨터로 판독 가능한)에 저장된 프로그램 또는 애플리케이션에 의해 이루어질 수 있음은 물론이다. 여기서 기록 매체는 RAM(Random Access Memory)과 같은 전자적 기록 매체, 하드 디스크와 같은 자기적 기록 매체, CD(Compact Disk)와 같은 광학적 기록 매체 등을 모두 포함한다.
이때, 기록 매체에 저장된 프로그램은 컴퓨터나 스마트폰 등과 같은 하드웨어 상에서 실행되어 상술한 각 실시예를 수행할 수 있다. 특히, 상술한 본 발명에 따른 API 요청 처리 시스템(100)의 기능 블록 중 적어도 어느 하나는 이러한 프로그램 또는 애플리케이션에 의해 구현될 수 있다.
또한, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다.
100 : API 요청 처리 시스템 110 : 서비스 실행부
120 : API 게이트웨이 130 : 서비스 레지스트리
140 : API 서비스 생성부 150 : API 서비스 재배포부

Claims (4)

  1. 소정의 API 서비스 요청 신호에 따라 처리를 수행하는 API 서비스를 각각 포함하는 마이크로 서비스 존과 서버리스 서비스 존을 모두 포함하는 서비스 실행부와;
    외부로부터 API 서비스 요청 신호를 수신하고, 그 수신된 API 서비스 요청 신호에 대한 분석을 통해 상기 마이크로 서비스 존과 상기 서버리스 서비스 존 중 어느 하나로 해당 API 서비스 요청 신호를 전달하는 API 게이트웨이와;
    상기 API 게이트웨이를 통한 API 서비스 호출 로그 기록을 참고하여, 상기 마이크로 서비스 존에 등록되어 있던 적어도 하나의 API 서비스를 상기 서버리스 서비스 존으로 이동 재배포하는 API 서비스 재배포부를 포함하고,
    상기 마이크로 서비스 존은 포함된 API 서비스가 항상 응답 대기 상태를 유지하는 영역이고, 상기 서버리스 서비스 존은 필요시 포함된 API 서비스에 대한 invoke를 실행하여 해당 API 서비스가 실행되도록 한 후 종료시키는 영역인 것을 특징으로 하는 API 요청 처리 시스템.
  2. 제1항에 있어서,
    서비스 실행부는 상기 마이크로 서비스 존 또는 상기 서버리스 서비스 존에 새로운 API 서비스가 등록될 때마다 해당 새로 등록된 API 서비스의 설치 존에 대한 정보를 전송하고,
    상기 서비스 실행부로부터 각 API 서비스에 대응되는 설치 존에 대한 정보를 저장하는 서비스 레지스트리를 더 포함하고,
    상기 API 게이트웨이는 상기 서비스 레지스트리에 저장된 정보를 참고하여 상기 마이크로 서비스 존과 상기 서버리스 서비스 존 중 어느 하나로 API 서비스 요청 신호를 전달하는 것을 특징으로 하는 API 요청 처리 시스템.
  3. 삭제
  4. 제1항에 있어서,
    사용자에 의해 입력되는 API 규격 정의에 따라 API 서비스의 소스와 프라퍼티를 자동 생성하여 빌드하고, 상기 서비스 실행부의 마이크로 서비스 존과 서버리스 서비스 존 중 어느 하나로 해당 빌드된 API 서비스를 배포하는 API 서비스 생성부를 더 포함하는 것을 특징으로 하는 API 요청 처리 시스템.
KR1020200145430A 2020-11-03 2020-11-03 Api 요청 처리 시스템 KR102426381B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200145430A KR102426381B1 (ko) 2020-11-03 2020-11-03 Api 요청 처리 시스템
PCT/KR2020/015372 WO2022097772A1 (ko) 2020-11-03 2020-11-05 Api 요청 처리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200145430A KR102426381B1 (ko) 2020-11-03 2020-11-03 Api 요청 처리 시스템

Publications (2)

Publication Number Publication Date
KR20220059814A KR20220059814A (ko) 2022-05-10
KR102426381B1 true KR102426381B1 (ko) 2022-07-29

Family

ID=81456734

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200145430A KR102426381B1 (ko) 2020-11-03 2020-11-03 Api 요청 처리 시스템

Country Status (2)

Country Link
KR (1) KR102426381B1 (ko)
WO (1) WO2022097772A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102483310B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 통합 처리를 위한 게이트웨이 장치 및 이의 동작 방법
KR102483313B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 서비스의 일괄 처리를 지원하는 서비스 제공 시스템 및 방법
KR102483315B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법
KR102528717B1 (ko) 2022-10-07 2023-05-08 이데아텍(주) 보안 기능을 지원하는 api 통합 처리를 위한 게이트웨이 장치 및 이의 동작 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102508781B1 (ko) * 2022-11-29 2023-03-10 주식회사 스마트엠투엠 스마트 컨트랙트 호출을 위한 api 게이트웨이 생성 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190377620A1 (en) 2018-06-12 2019-12-12 commercetools GmbH Extensibility for third party application programming interfaces
WO2020207595A1 (en) 2019-04-12 2020-10-15 Telefonaktiebolaget Lm Ericsson (Publ) Technique for determining cloud computing deployment modifications for serverless applications

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102423416B1 (ko) * 2017-12-12 2022-07-22 한국전자통신연구원 서버리스 환경에서의 펑션 장기 실행 제공 장치 및 방법
US10452843B2 (en) * 2018-01-11 2019-10-22 ArecaBay, Inc. Self-adaptive application programming interface level security monitoring
KR102310523B1 (ko) 2018-11-23 2021-10-08 한국전자기술연구원 서버리스 컨테이너의 서비스 조합 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190377620A1 (en) 2018-06-12 2019-12-12 commercetools GmbH Extensibility for third party application programming interfaces
WO2020207595A1 (en) 2019-04-12 2020-10-15 Telefonaktiebolaget Lm Ericsson (Publ) Technique for determining cloud computing deployment modifications for serverless applications

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Young App Platform. API testing and deployment. 2020.01.20.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102483310B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 통합 처리를 위한 게이트웨이 장치 및 이의 동작 방법
KR102483313B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 서비스의 일괄 처리를 지원하는 서비스 제공 시스템 및 방법
KR102483315B1 (ko) 2022-10-07 2023-01-02 이데아텍(주) Api 분산 처리를 지원하는 게이트웨이 장치 및 이의 동작 방법
KR102528717B1 (ko) 2022-10-07 2023-05-08 이데아텍(주) 보안 기능을 지원하는 api 통합 처리를 위한 게이트웨이 장치 및 이의 동작 방법

Also Published As

Publication number Publication date
KR20220059814A (ko) 2022-05-10
WO2022097772A1 (ko) 2022-05-12

Similar Documents

Publication Publication Date Title
KR102426381B1 (ko) Api 요청 처리 시스템
CN100545851C (zh) 使用命令行环境的远程系统管理
US7900214B2 (en) System and method for adaptable provisioning of generic application content
KR101011744B1 (ko) 플랫폼 중립 일반 서비스의 클라이언트 애플리케이션 구축시스템 및 방법
US10430172B2 (en) Re-configuration in cloud computing environments
US20070067440A1 (en) Application splitting for network edge computing
CN101499010B (zh) 一种在手机上使用桌面应用程序的方法
US20070050751A1 (en) Automatic interoperation with legacy POS service and control objects
WO2005083562A1 (en) System and method for building mixed mode execution environment for component applications
CN108881228A (zh) 云端注册激活方法、装置、设备和存储介质
US8387039B2 (en) System and method for customized provisioning of application content
CN103077024A (zh) 一种支持SaaS应用流程按需定制与运行的装置及方法
CN101990169A (zh) 一种智能卡主动推送系统和智能卡移动终端
CN111367685B (zh) 接口调用的方法及装置、计算机设备、存储介质
CN103026338A (zh) 用于执行综合服务的系统、方法和设备
KR100670605B1 (ko) 멀티미디어 콘텐츠 서비스 시스템과 방법 및 그 기록매체
US20080216050A1 (en) Method and System for Accessing a Resource Implemented in a Computer Network
CN110673892A (zh) 一种基于组件配置的接口统一调用方法
CN101964742B (zh) 一种网络开放能力使用方法、系统和装置
US11349729B2 (en) Network service requests
CN112910956B (zh) 一种资源创建方法、装置及电子设备
JP2000250838A (ja) アプリケーションプログラムの実装方法ならびにシステム及び同方法がプログラムされ記録された記録媒体
US10509638B1 (en) Method and system for deploying third party device services through an enclosed appliance interface using containers
KR101328981B1 (ko) 상이한 동작 환경에서 제공되는 서비스를 상이한 단말기에서 실행시키기 위한 장치
Pascual et al. Towards an aspect-oriented reconfigurable middleware for pervasive systems: implementation and evaluation

Legal Events

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