KR102531860B1 - Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법 - Google Patents

Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법 Download PDF

Info

Publication number
KR102531860B1
KR102531860B1 KR1020220179929A KR20220179929A KR102531860B1 KR 102531860 B1 KR102531860 B1 KR 102531860B1 KR 1020220179929 A KR1020220179929 A KR 1020220179929A KR 20220179929 A KR20220179929 A KR 20220179929A KR 102531860 B1 KR102531860 B1 KR 102531860B1
Authority
KR
South Korea
Prior art keywords
api
rule table
settings
setting
reference value
Prior art date
Application number
KR1020220179929A
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 KR1020220179929A priority Critical patent/KR102531860B1/ko
Application granted granted Critical
Publication of KR102531860B1 publication Critical patent/KR102531860B1/ko
Priority to US18/494,767 priority patent/US20240202049A1/en

Links

Images

Classifications

    • 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
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/283Processing of data at an internetworking point of a home automation network
    • H04L12/2834Switching of information between an external network and a home network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

API 설정을 동적으로 적용하는 게이트웨이 장치 및 방법이 개시된다. 게이트웨이 장치는 클라이언트 단말의 API 요청을 API 설정에 기반으로 처리하는 복수의 서브 스레드, API 요청을 처리하기 위한 API 설정이 저장되는 제1 규칙 테이블, 제1 규칙 테이블과 다른 API 설정이 저장되는 제2 규칙 테이블, 제1 규칙 테이블 및 제2 규칙 테이블 중 현재 시점에서 API 요청을 처리하기 위해 복수의 서브 스레드가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정되는 참고 플래그 및 새로운 API 설정이 수신되면 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 새로운 API 설정을 갱신하며, 갱신이 완료되면 참고 플래그의 기준값을 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 메인 스레드를 포함한다.

Description

API 설정을 동적으로 적용하는 게이트웨이 장치 및 방법{Gateway apparatus and method for dynamically applying API settings}
본 발명은 게이트웨이 장치에 관한 것으로, 더욱 상세하게는 멀티 스레드 환경에서 락(lock)을 최소화하여 API 설정을 동적으로 관리하는 API 설정을 동적으로 적용하는 게이트웨이 장치 및 방법에 관한 것이다.
일반적으로 멀티 스레드(multi thread) 구성인 게이트웨이 장치에서 각 스레드는 사용자(관리자)가 동적으로 적용하고자 하는 API(application programming interface) 설정에 기반하여 클라이언트의 API 요청을 처리한다. 여기서 게이트웨이 장치는 주기적으로 API 매니저 장치로부터 변경된 내용이 포함된 모든 설정을 수신한다.
이때 특정 스레드는 설정을 변경해야 하고, 다른 스레드는 설정을 읽어서 태스크 작업을 해야 하므로 설정에 대한 경쟁(race condition)이 발생됨에 따라 락을 사용해야 하는 상황이 된다. 즉 스레드는 락을 얻은 후 쓰기를 하고, 락을 얻은 후 읽어야 한다.
하지만 이러한 락은 클라이언트의 API 요청을 최대한 빠르게 처리해야 하는데 있어서 성능 저하의 원인이 되고 있다.
한국등록특허공보 제10-2417742호(2022.07.01.)
본 발명이 해결하고자 하는 과제는, 스레드 간 동일한 API 설정 기반으로 동작하는 멀티 스레드 환경에서 락을 최소화하여 API 설정을 동적으로 관리하는 API 설정을 동적으로 적용하는 게이트웨이 장치 및 방법을 제공하는 것이다.
상기 과제를 해결하기 위해 본 발명에 따른 게이트웨이 장치는 클라이언트 단말의 API 요청을 API 설정에 기반으로 처리하는 복수의 서브 스레드, 상기 API 요청을 처리하기 위한 API 설정이 저장되는 제1 규칙 테이블, 상기 제1 규칙 테이블과 다른 API 설정이 저장되는 제2 규칙 테이블, 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위해 상기 복수의 서브 스레드가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정되는 참고 플래그 및 새로운 API 설정이 수신되면 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하며, 상기 갱신이 완료되면 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 메인 스레드를 포함한다.
또한 상기 복수의 서브 스레드는, 상기 API 요청을 처리하기 이전에 상기 참고 플래그의 기준값을 확인하고, 상기 기준값이 나타내는 규칙 테이블에 저장된 API 설정을 기반으로 상기 API 요청을 처리하는 것을 특징으로 한다.
또한 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블은, 상기 복수의 서브 스레드에 대해 읽기 기능을 부여하고, 상기 메인 스레드에 대해 읽기 및 쓰기 기능을 부여하는 것을 특징으로 한다.
또한 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블은, 글로벌(global)한 자료구조로 생성되는 것을 특징으로 한다.
또한 상기 메인 스레드는, 상기 갱신이 수행되는 규칙 테이블을 초기화한 다음 상기 새로운 API 설정을 저장시켜 갱신하는 것을 특징으로 하는 것을 특징으로 한다.
또한 상기 메인 스레드는, 상기 새로운 API 설정과 현재 시점의 API 설정을 비교하여 변경사항이 있는지 여부를 판단하고, 변경사항이 있으면 상기 갱신을 수행하는 것을 특징으로 한다.
본 발명에 따른 API 요청을 처리하기 위한 API 설정이 각각 저장되는 제1 규칙 테이블 및 제2 규칙 테이블과, 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위한 API 설정이 저장된 규칙 테이블을 나타내는 기준값을 설정하는 참고 플래그를 포함하는 게이트웨이 장치의 API 설정 방법은 상기 게이트웨이 장치의 메인 스레드가 API 매니저 장치로부터 새로운 API 설정을 수신한 단계, 상기 메인 스레드가 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하는 단계, 상기 메인 스레드가 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 단계 및 상기 게이트웨이 장치의 복수의 서브 스레드가 상기 참고 플래그의 기준값에 대응하는 규칙 테이블의 API 설정을 기반으로 상기 API 요청을 처리하는 단계를 포함한다.
본 발명에 따른 API 설정 시스템은 복수의 클라이언트 단말과 복수의 타겟 서버 사이에서 통신 연결을 중개하고, API 요청을 처리하기 위한 API 설정을 관리하는 적어도 하나의 게이트웨이 장치 및 상기 API 설정을 관리하고, 기 설정된 주기마다 API 설정을 상기 게이트웨이 장치로 제공하는 API 매니저 장치를 포함하되, 상기 게이트웨이 장치는, 상기 클라이언트 단말의 API 요청을 API 설정에 기반으로 처리하는 복수의 서브 스레드, 상기 API 요청을 처리하기 위한 API 설정이 저장되는 제1 규칙 테이블, 상기 제1 규칙 테이블과 다른 API 설정이 저장되는 제2 규칙 테이블, 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위해 상기 복수의 서브 스레드가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정되는 참고 플래그 및 새로운 API 설정이 수신되면 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하며, 상기 갱신이 완료되면 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 메인 스레드를 포함하는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 복수의 스레드 환경에서 두 개의 규칙 테이블을 이용하여 최신 API 설정에 대한 접근을 락 없이도 수행함으로써, 시스템의 성능 저하 문제를 극복할 수 있다.
도 1은 본 발명의 실시예에 따른 API 설정 시스템을 설명하기 위한 구성도이다.
도 2는 본 발명의 실시예에 따른 게이트웨이 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 API 설정하는 과정을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 게이트웨이 장치의 API 설정 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서 및 도면(이하 '본 명세서')에서, 동일한 구성요소에 대해서 중복된 설명은 생략한다.
또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로써, 본 발명을 한정하려는 의도로 사용되는 것이 아니다.
또한 본 명세서에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.
또한 본 명세서에서, '및/또는' 이라는 용어는 복수의 기재된 항목들의 조합 또는 복수의 기재된 항목들 중의 어느 항목을 포함한다. 본 명세서에서, 'A 또는 B'는, 'A', 'B', 또는 'A와 B 모두'를 포함할 수 있다.
또한 본 명세서에서, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략될 것이다.
도 1은 본 발명의 실시예에 따른 API 설정 시스템을 설명하기 위한 구성도이다.
도 1을 참조하면, API 설정 시스템(500)은 스레드 간 동일한 API 설정 기반으로 동작하는 멀티 스레드(multi thread) 환경에서 락을 최소화하여 API 설정을 동적으로 관리한다. API 설정 시스템(500)은 게이트웨이 장치(100) 및 API 매니저 장치(200)를 포함하고, 클라이언트 단말(300) 및 타겟 서버(400)를 더 포함할 수 있다.
게이트웨이 장치(100)는 복수의 클라이언트 단말(200)과 복수의 타겟 서버(300) 사이에서 통신 연결을 중개한다. 게이트웨이 장치(100)는 적어도 하나를 포함할 수 있고, 멀티 스레드 기반으로 구성될 수 있다.
게이트웨이 장치(100)는 API 매니저 장치(200)로부터 기 설정된 주기마다 API 설정을 수신한다. 이때 게이트웨이 장치(100)는 수동적으로 API 설정을 수신하는 것이 아니라 능동적으로 API 설정을 읽어 올 수 있다. 게이트웨이 장치(100)는 멀티 스레드 환경에서 두 개의 규칙 테이블과 두 개의 규칙 테이블 중 현재 시점에서 API 요청을 처리하기 위해 필요한 API 설정이 저장된 규칙 테이블을 나타내는 참고 플래그를 포함한다. 이를 통해 게이트웨이 장치(100)는 각 스레드가 참고 플래그의 기준값을 확인하고, 현재 시점에 맞는 API 설정을 락 없이 접근할 수 있도록 도와준다.
API 매니저 장치(200)는 적어도 하나의 게이트웨이 장치(100)와 통신을 수행한다. API 매니저 장치(200)는 API 요청을 처리하기 위한 규칙이 포함된 API 설정을 관리한다. API 매니저 장치(200)는 관리하는 API 설정을 기 설정된 주기마다 게이트웨이 장치(100)로 제공할 수 있다. 여기서 기 설정된 주기는 5초 내지 20초일 수 있으나, 이에 한정하지 않는다.
클라이언트 단말(300)은 클라이언트가 사용하는 단말로써, 복수개(300a, 300b, 300c, 300d)를 포함할 수 있다. 각 클라이언트 단말(300)은 태스크에 대한 API 요청을 하고, API 요청에 대한 응답을 수신하여 출력한다. 이때 클라이언트 단말(300)은 게이트웨이 장치(100)를 통해 타겟 서버(400)와 통신을 수행할 수 있다. 바람직하게는 클라이언트 단말(300)은 스마트폰, 데스크톱, 랩톱, 태블릿 PC, 핸드헬드 PC 등을 포함하는 컴퓨팅 시스템일 수 있다.
타겟 서버(400)은 다양한 콘텐츠를 제공하는 서버로써, 복수개(400a, 400b, 400c, 400d)를 포함할 수 있다. 이때 타겟 서버(400)는 하나의 사이트에 대한 데이터를 분산화한 서버일 수 있으나, 이에 한정하지 않는다. 각 타겟 서버(400)는 고유한 IP(internet protocol) 주소를 가지고 있어서 해당 IP 주소를 통해 TCP 연결이 가능하다. 타겟 서버(400)는 TCP 연결이 되어 태스크와 관련된 API 요청을 수신하면 해당 API 요청에 대한 응답정보를 제공한다. 이때 타겟 서버(400)는 응답정보를 게이트웨이 장치(100)로 전송할 수 있다. 바람직하게는 타겟 서버(400)는 서버 컴퓨터, 클러스터 컴퓨터 등을 포함하는 컴퓨팅 시스템일 수 있다.
도 2는 본 발명의 실시예에 따른 게이트웨이 장치를 설명하기 위한 블록도이고, 도 3은 본 발명의 실시예에 따른 API 설정하는 과정을 설명하기 위한 도면이다.
도 1 내지 도 3을 참조하면, 게이트웨이 장치(100)는 통신부(10), 제어부(30) 및 저장부(50)를 포함한다.
통신부(10)는 API 매니저 장치(200), 클라이언트 단말(300) 및 타겟 서버(400)와 통신을 수행한다. 통신부(10)는 API 설정을 요청하는 요청 메시지를 API 매니저 장치(200)로 전송할 수 있고, API 매니저 장치(200)로부터 새로운 API 설정을 수신한다. 통신부(10)는 클라이언트 단말(300)로부터 태스크와 관련된 API 요청을 수신하고, 해당 API 요청에 대응되는 응답정보를 클라이언트 단말(300)로 전송한다. 통신부(10)는 태스크와 관련된 API 요청을 타겟 서버(400)로 전송하고, 타겟 서버(400)로부터 해당 API 요청에 대응되는 응답정보를 수신한다.
제어부(30)는 게이트웨이 장치(100)의 전반적인 제어를 수행한다. 제어부(30)는 복수의 스레드, 두 개의 규칙 테이블, 참고 플래그로 구성되고, 이를 통해 API 설정을 제어한다. 제어부(30)는 메인 스레드(41), 제1 규칙 테이블(42), 제2 규칙 테이블(43), 참고 플래그(44) 및 복수의 서브 스레드(45)를 포함한다.
메인 스레드(41)는 API 설정에 대한 관리를 수행한다. 이를 위해 메인 스레드(41)는 API 요청과 관련된 처리를 수행하지 않고, API 매니저 장치(200)와의 통신과 규칙 테이블(42, 43)/참고 플래그(44)의 관리를 수행한다.
상세하게는 메인 스레드(41)는 API 매니저 장치(200)로부터 새로운 API 설정이 수신되면 참고 플래그(44)의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 새로운 API 설정을 갱신한다. 이때 메인 스레드(41)는 갱신이 수행되는 규칙 테이블을 초기화한 다음, 새로운 API 설정을 저장시켜 갱신을 수행한다. 메인 스레드(41)는 갱신이 완료되면 참고 플래그(44)의 기준값을 갱신된 규칙 테이블에 대응하는 기준값으로 설정한다. 예를 들어 현재 시점에서 API 요청을 처리하기 위한 API 설정이 제1 규칙 테이블(42)에 저장된 API 설정이고, 참고 플래그(44)가 제1 규칙 테이블(42)을 나타내는 기준값인 0으로 설정된 경우, 메인 스레드(41)는 새로운 API 설정이 수신되면 제2 규칙 테이블(43)을 초기화하고, 새로운 API 설정을 제2 규칙 테이블(43)에 저장시켜 갱신을 한다. 메인 스레드(41)는 갱신이 완료되면 참고 플래그(44)의 기준값을 제2 규칙 테이블(43)을 나타내는 기준값인 1로 설정한다. 이와 같이 메인 스레드(41)는 제1 규칙 테이블(42) 및 제2 규칙 테이블(43)에 저장된 API 설정을 번갈아가면서 갱신을 수행할 수 있다.
여기서 메인 스레드(41)는 규칙 테이블을 초기화하는 시점을 해당 규칙 테이블을 갱신하기 이전에 수행함으로써, 규칙 테이블의 갱신이 완료될 때까지 기존 API 설정을 기반으로 API 요청을 처리하고, 갱신이 완료되면 새로운 API 설정을 기반으로 API 요청을 처리하여 갱신하는 과정에서 발생될 수 있는 API 설정에 의한 오류를 미연에 차단할 수 있다.
또한 메인 스레드(41)는 새로운 API 설정과 현재 시점의 API 설정, 즉 제1 규칙 테이블(42)에 저장된 API 설정을 비교하여 변경사항이 있는지 여부를 판단한다. 메인 스레드(41)는 변경사항이 있으면 갱신을 수행하고, 변경사항이 없으면 갱신을 수행하지 않을 수 있다.
제1 규칙 테이블(42)은 API 요청을 처리하기 위한 API 설정이 저장되는 테이블이다. 제1 규칙 테이블(42)은 글로벌(global)한 자료구조로 생성될 수 있다. 제1 규칙 테이블(42)은 초기화가 된 후, 새로운 API 설정이 저장될 수 있다. 제1 규칙 테이블(42)은 복수의 서브 스레드(45)에 대해 읽기 기능을 부여하고, 메인 스레드(41)에 대해 읽기 및 쓰기 기능을 부여한다.
제2 규칙 테이블(43)은 제1 규칙 테이블(42)과 다른 API 설정이 저장되는 테이블이다. 제2 규칙 테이블(43)은 글로벌한 자료구조로 생성될 수 있다. 제2 규칙 테이블(43)은 초기화가 된 후, 새로운 API 설정이 저장될 수 있다. 제2 규칙 테이블(43)은 복수의 서브 스레드(45)에 대해 읽기 기능을 부여하고, 메인 스레드(41)에 대해 읽기 및 쓰기 기능을 부여한다.
참고 플래그(44)는 제1 규칙 테이블(42) 및 제2 규칙 테이블(43) 중 현재 시점에서 API 요청을 처리하기 위해 복수의 서브 스레드(45)가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정된다. 예를 들어 참고 플래그(44)는 제1 규칙 테이블(42)을 나타내는 기준값이 0으로 설정되고, 제2 규칙 테이블(43)을 나타내는 기준값이 1로 설정될 수 있다. 여기서 참고 플래그(44)는 메인 스레드(41)에 의해 설정된 기준값이 변경된다.
복수의 서브 스레드(45)는 클라이언트 단말(300)의 API 요청을 API 설정에 기반으로 처리한다. 복수의 서브 스레드(45)는 제1 서브 스레드(45a), 제2 서브 스레드(45b) 내지 제n 서브 스레드(45c)를 포함할 수 있다. 복수의 서브 스레드(45)는 API 요청을 처리하기 이전에 참고 플래그(44)의 기준값을 확인한다. 복수의 서브 스레드(45)는 기준값이 나타내는 규칙 테이블에 저장된 API 설정을 기반으로 API 요청을 처리할 수 있다. 예를 들어 복수의 서브 스레드(45)는 현재 시점에서 참고 플래그의 기준값이 1로 설정된 경우, 제2 규칙 테이블(43)에 저장된 API 설정을 읽어오고, 읽어온 API 설정을 기반으로 API 요청을 수행한다.
도 4는 본 발명의 실시예에 따른 게이트웨이 장치의 API 설정 방법을 설명하기 위한 순서도이다.
도 1, 도 3 및 도 4를 참조하면, 게이트웨이 장치(100)의 API 설정 방법은 복수의 스레드 환경에서 두 개의 규칙 테이블을 이용하여 최신 API 설정에 대한 접근을 락 없이도 수행함으로써, 시스템의 성능 저하 문제를 극복할 수 있다. 여기서 게이트웨이 장치(100)는 메인 스레드(41) 및 복수의 서브 스레드(45)를 포함한다.
S110 단계에서, 메인 스레드(41)는 초기 API 설정을 수신한다. 메인 스레드(41)는 API 매니저 장치(200)로부터 처음 초기화하기 위한 API 설정을 수신한다. 여기서 API 설정은 복수의 서브 스레드(45)가 API 요청을 처리하기 위한 설정값(예를 들면 a요청을 b로 전달함 등)을 의미한다.
S120 단계에서, 메인 스레드(41)는 수신된 API 설정을 제1 규칙 테이블(42)에 저장한다. 메인 스레드(41)는 쓰기 기능을 이용하여 제1 규칙 테이블을 초기화한 후, API 설정을 저장한다.
S130 단계에서, 메인 스레드(41)는 참고 플래그(44)의 기준값을 설정한다. 메인 스레드(41)는 참고 플래그(44)의 기준값을 제1 규칙 테이블(42)에 대응하는 기준값인 0으로 설정한다.
S140 단계에서, 복수의 서브 스레드(45)는 제1 규칙 테이블(42)의 API 설정을 기반으로 API 요청을 처리한다. 복수의 서브 스레드(45)는 참고 플래그(44)의 기준값인 0을 확인한 후, 제1 규칙 테이블(42)에 저장된 API 설정을 읽어오고, 읽어온 API 설정을 기반으로 API 요청을 처리한다.
S150 단계에서, 메인 스레드(41)는 변경사항이 존재하는 API 설정이 수신되었는지 판단한다. 메인 스레드(41)는 변경사항이 존재하는 API 설정이 수신되었다고 판단하면 S160 단계를 수행하고, 수신되었다고 판단하지 않으면 S140 단계를 수행한다.
S160 단계에서, 메인 스레드(41)는 새로운 API 설정을 제2 규칙 테이블에 저장한다. 메인 스레드(41)는 쓰기 기능을 이용하여 제2 규칙 테이블을 초기화한 후, API 설정을 저장한다.
S170 단계에서, 메인 스레드(41)는 참고 플래그(44)의 기준값을 설정한다. 메인 스레드(41)는 참고 플래그(44)의 기준값을 제2 규칙 테이블(43)에 대응하는 기준값인 1으로 설정한다.
S180 단계에서, 복수의 서브 스레드(45)는 제2 규칙 테이블(43)의 API 설정을 기반으로 API 요청을 처리한다. 복수의 서브 스레드(45)는 참고 플래그(44)의 기준값인 1을 확인한 후, 제2 규칙 테이블(43)에 저장된 API 설정을 읽어오고, 읽어온 API 설정을 기반으로 API 요청을 처리한다.
S190 단계에서, 메인 스레드(41)는 변경사항이 존재하는 API 설정이 수신되었는지 판단한다. 메인 스레드(41)는 변경사항이 존재하는 API 설정이 수신되었다고 판단하면 S120 단계를 수행하고, 수신되었다고 판단하지 않으면 S180 단계를 수행한다.
도 5는 본 발명의 실시예에 따른 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 5를 참조하면, 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예를 들면 게이트웨이 장치, API 매니저 장치, 클라이언트 단말, 타겟 서버 등) 일 수 있다.
컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다.
한편, 본 발명의 실시예는 지금까지 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 상술한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 통상의 기술자라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 통상의 기술자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
10: 통신부
30: 제어부
41: 메인 스레드
42: 제1 규칙 테이블
43: 제2 규칙 테이블
44: 참고 플래그
45: 서브 스레드
50: 저장부
100: 게이트웨이 장치
200: API 매니저 장치
300: 클라이언트 단말
400: 타겟 서버
500: API 설정 시스템

Claims (8)

  1. 클라이언트 단말의 API 요청을 API 설정에 기반으로 처리하는 복수의 서브 스레드;
    상기 API 요청을 처리하기 위한 API 설정이 저장되는 제1 규칙 테이블;
    상기 제1 규칙 테이블과 다른 API 설정이 저장되는 제2 규칙 테이블;
    상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위해 상기 복수의 서브 스레드가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정되는 참고 플래그; 및
    새로운 API 설정이 수신되면 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하며, 상기 갱신이 완료되면 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 메인 스레드;
    를 포함하는 게이트웨이 장치.
  2. 제 1항에 있어서,
    상기 복수의 서브 스레드는,
    상기 API 요청을 처리하기 이전에 상기 참고 플래그의 기준값을 확인하고, 상기 기준값이 나타내는 규칙 테이블에 저장된 API 설정을 기반으로 상기 API 요청을 처리하는 것을 특징으로 하는 게이트웨이 장치.
  3. 제 1항에 있어서,
    상기 제1 규칙 테이블 및 상기 제2 규칙 테이블은,
    상기 복수의 서브 스레드에 대해 읽기 기능을 부여하고, 상기 메인 스레드에 대해 읽기 및 쓰기 기능을 부여하는 것을 특징으로 하는 게이트웨이 장치.
  4. 제 1항에 있어서,
    상기 제1 규칙 테이블 및 상기 제2 규칙 테이블은,
    글로벌(global)한 자료구조로 생성되는 것을 특징으로 하는 게이트웨이 장치.
  5. 제 1항에 있어서,
    상기 메인 스레드는,
    상기 갱신이 수행되는 규칙 테이블을 초기화한 다음 상기 새로운 API 설정을 저장시켜 갱신하는 것을 특징으로 하는 것을 특징으로 하는 게이트웨이 장치.
  6. 제 1항에 있어서,
    상기 메인 스레드는,
    상기 새로운 API 설정과 현재 시점의 API 설정을 비교하여 변경사항이 있는지 여부를 판단하고, 변경사항이 있으면 상기 갱신을 수행하는 것을 특징으로 하는 게이트웨이 장치.
  7. API 요청을 처리하기 위한 API 설정이 각각 저장되는 제1 규칙 테이블 및 제2 규칙 테이블과, 상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위한 API 설정이 저장된 규칙 테이블을 나타내는 기준값을 설정하는 참고 플래그를 포함하는 게이트웨이 장치의 API 설정 방법에 있어서,
    상기 게이트웨이 장치의 메인 스레드가 API 매니저 장치로부터 새로운 API 설정을 수신한 단계;
    상기 메인 스레드가 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하는 단계;
    상기 메인 스레드가 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 단계; 및
    상기 게이트웨이 장치의 복수의 서브 스레드가 상기 참고 플래그의 기준값에 대응하는 규칙 테이블의 API 설정을 기반으로 상기 API 요청을 처리하는 단계;
    를 포함하는 API 설정 방법.
  8. 복수의 클라이언트 단말과 복수의 타겟 서버 사이에서 통신 연결을 중개하고, API 요청을 처리하기 위한 API 설정을 관리하는 적어도 하나의 게이트웨이 장치; 및
    상기 API 설정을 관리하고, 기 설정된 주기마다 API 설정을 상기 게이트웨이 장치로 제공하는 API 매니저 장치;를 포함하되,
    상기 게이트웨이 장치는,
    상기 클라이언트 단말의 API 요청을 API 설정에 기반으로 처리하는 복수의 서브 스레드;
    상기 API 요청을 처리하기 위한 API 설정이 저장되는 제1 규칙 테이블;
    상기 제1 규칙 테이블과 다른 API 설정이 저장되는 제2 규칙 테이블;
    상기 제1 규칙 테이블 및 상기 제2 규칙 테이블 중 현재 시점에서 상기 API 요청을 처리하기 위해 상기 복수의 서브 스레드가 참고해야 하는 API 설정이 저장된 규칙 테이블을 나타내는 기준값이 설정되는 참고 플래그; 및
    새로운 API 설정이 수신되면 상기 참고 플래그의 기준값에 대응하는 규칙 테이블이 아닌 다른 규칙 테이블에 상기 새로운 API 설정을 갱신하며, 상기 갱신이 완료되면 상기 참고 플래그의 기준값을 상기 갱신된 규칙 테이블에 대응하는 기준값으로 설정하는 메인 스레드;
    를 포함하는 것을 특징으로 하는 API 설정 시스템.
KR1020220179929A 2022-12-20 2022-12-20 Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법 KR102531860B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220179929A KR102531860B1 (ko) 2022-12-20 2022-12-20 Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법
US18/494,767 US20240202049A1 (en) 2022-12-20 2023-10-25 Gateway apparatus and method for dynamically applying api settings

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220179929A KR102531860B1 (ko) 2022-12-20 2022-12-20 Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102531860B1 true KR102531860B1 (ko) 2023-05-12

Family

ID=86385499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220179929A KR102531860B1 (ko) 2022-12-20 2022-12-20 Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법

Country Status (2)

Country Link
US (1) US20240202049A1 (ko)
KR (1) KR102531860B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102407334B1 (ko) * 2021-12-24 2022-06-10 이데아텍(주) 게이트웨이 장치 및 그 동작 방법
KR102417742B1 (ko) 2021-09-08 2022-07-06 비엠텍시스템 주식회사 Api 데이터 수집시스템 및 그에 관한 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417742B1 (ko) 2021-09-08 2022-07-06 비엠텍시스템 주식회사 Api 데이터 수집시스템 및 그에 관한 방법
KR102407334B1 (ko) * 2021-12-24 2022-06-10 이데아텍(주) 게이트웨이 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20240202049A1 (en) 2024-06-20

Similar Documents

Publication Publication Date Title
RU2649788C1 (ru) Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
US9658879B2 (en) System and method for supporting buffer allocation in a shared memory queue
US8904067B2 (en) Adaptive multi-threaded buffer
US10116746B2 (en) Data storage method and network interface card
US20220249948A1 (en) Image processing method and apparatus, server, and medium
US10956667B2 (en) Operational transformations proxy for thin clients
CN106802939B (zh) 一种解决数据冲突的方法和系统
US11018860B2 (en) Highly available and reliable secret distribution infrastructure
US20150371327A1 (en) System for dynamically selecting a communications fabric
CN113094430A (zh) 一种数据处理方法、装置、设备以及存储介质
US9910808B2 (en) Reflective memory bridge for external computing nodes
CN115168162A (zh) 容器环境基于ingress控制器多灰度发布方法、设备及存储介质
US9311379B2 (en) Utilization of data structures to synchronize copies of a resource
KR102531860B1 (ko) Api 설정을 동적으로 적용하는 게이트웨이 장치 및 방법
US10467143B1 (en) Event-driven cache
US6854119B1 (en) Method, apparatus and article of manufacture for tracking processes
US10176144B2 (en) Piggybacking target buffer address for next RDMA operation in current acknowledgement message
US10606673B2 (en) Apparatus and method for running plurality of threads
US20060203813A1 (en) System and method for managing a main memory of a network server
CN114968216A (zh) 应用程序开发工程生成方法和装置
CN113849255B (zh) 一种数据处理方法、设备以及存储介质
KR20240082950A (ko) Dns 리졸브를 최소화하는 중개 장치 및 방법
US11748002B2 (en) Highly concurrent data store allocation
US8667092B1 (en) System and method for providing online file management services
CN113032338B (zh) 一种跨数据中心的数据存储和查询方法与系统

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant