KR102193157B1 - 컨테이너 서비스 제공을 위한 장치 및 방법 - Google Patents

컨테이너 서비스 제공을 위한 장치 및 방법 Download PDF

Info

Publication number
KR102193157B1
KR102193157B1 KR1020180139484A KR20180139484A KR102193157B1 KR 102193157 B1 KR102193157 B1 KR 102193157B1 KR 1020180139484 A KR1020180139484 A KR 1020180139484A KR 20180139484 A KR20180139484 A KR 20180139484A KR 102193157 B1 KR102193157 B1 KR 102193157B1
Authority
KR
South Korea
Prior art keywords
function
calling
request signal
call request
api call
Prior art date
Application number
KR1020180139484A
Other languages
English (en)
Other versions
KR20200055876A (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 KR1020180139484A priority Critical patent/KR102193157B1/ko
Priority to PCT/KR2019/014321 priority patent/WO2020101224A1/ko
Publication of KR20200055876A publication Critical patent/KR20200055876A/ko
Application granted granted Critical
Publication of KR102193157B1 publication Critical patent/KR102193157B1/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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • 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/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

본 발명은 컨테이너 서비스 제공을 위한 장치 및 방법에 관한 것이다. 본 발명에 따른 컨테이너 서비스 제공 서버의 제어방법은, 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 단계와; 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 단계와; 상기 단계 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 단계를 포함하는 것을 특징으로 한다.

Description

컨테이너 서비스 제공을 위한 장치 및 방법{APPARATUS AND METHOD FOR PROVIDING CONTAINER SERVICE}
본 발명은 컨테이너 서비스 제공을 위한 장치 및 방법에 관한 것으로, 보다 상세하게는 외부로부터의 수신되는 API 호출 요청 신호에 따라 특정 펑션의 실행을 수행하는 컨테이너 서비스 제공을 위한 장치 및 방법에 관한 것이다.
최근 클라우드 서비스의 발전과 더불어 컨테이너 기술이 보급되고 있다.
컨테이너 기술은 개발자들은 물론이고 사용자들에게도 편의성을 증대시키는 기술로서, 특히 개발자의 경우 새로 만든 애플리케이션을 실제 작업한 노트북에서 테스트 환경으로, 다시 운영환경으로 옮길 때마다 온갖 이상한 오류와 만나게 되는데, 이는 각 환경마다 네트워크 기술과 보안 정책, 스토리지가 제각각이어서 발생하는 문제인데, 컨테이너의 경우 애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 배포 및 동작하도록 함으로써, 종래의 불편을 해소시킬 수 있는 기술이다.
즉, 이처럼 컨테이너를 이용하게 되면 노트북-테스트 환경-실제 운영환경으로 바뀌어도 실행에 필요한 파일이 함께 따라다니므로 오류를 최소화할 수 있는데, 운영체제 제외하고 애플리케이션 실행에 필요한 모든 파일을 패키징한다는 점에서 운영체제 위에서 구현된 가상화, 즉 '운영체제 레벨 가상화'라고 부르기도 한다.
이러한 컨테이너 기술은 가상머신(VM) 기술과는 구별된다.
즉, 가상머신 기술의 경우 '하드웨어 레벨 가상화'에 해당하는데, 서버에 하이퍼바이저를 설치한 후 그 위에 가상 운영체제와 애플리케이션을 패키징한 '가상머신(VM)'을 만들어 실행하는 방식으로서, 일명 '서버 가상화'라고 할 수 있는데, 이에 반해 컨테이너 기술에서는 각 컨테이너에 운영체제가 포함되지 않아 크기가 수십 MB로 작고, 따라서 서버 1대에서 실행할 수 있는 개수가 VM보다 최대 10배 이상 많게 될 뿐만 아니라, 운영체제 부팅이 필요 없어 불과 수초 만에 서비스를 시작할 수 있다는 점에서 장점이 크고, 이러한 장점으로 인해 최근 컨테이너 서비스 이용이 급증하고 있는 실정이다.
그런데 컨테이너 서비스가 제공되는 과정을 살펴보면, 사용자가 API 게이트웨이를 통해 컨테이너 서비스 제공 서버에 특정 펑션을 호출하면 컨테이너 서비스 제공 서버는 그 펑션 실행을 위한 컨테이너를 생성하고, 그 컨테이너에서 해당 펑션을 실행시키는 과정을 수행한다.
상술한 바와 같이 컨테이너가 가상 머신과 비교하여 생성 및 실행 속도가 빠르다 하더라도 실행시키고자 하는 펑션과 관련된 각종 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 생성하는 과정을 거쳐야 하므로 호출이 많은 경우에는 여전히 실행 속도와 관련된 문제가 발생할 수 있다.
등록특허 제10-1807806호
본 발명은 상기한 종래의 단점을 해결하기 위해 안출된 것으로서, 그 목적은 컨테이너 생성 및 특정 펑션의 실행이 신속하게 이루어질 수 있도록 하는 컨테이너 서비스 제공을 위한 장치 및 방법을 제공하는 것이다.
상기한 목적을 달성하기 위해 본 발명에 따른 컨테이너 서비스 제공 서버는, 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 수신 이력 저장부와; 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 호출 순서 모델 생성부와; 상기 호출 순서 모델 생성부에 의해 상기 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 호출 처리부를 포함하여 구성된다.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 컨테이너 서비스 제공 서버의 제어방법은, 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 단계와; 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 단계와; 상기 단계 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 단계를 포함하여 이루어진다.
이상 설명한 바와 같이 본 발명에 따르면, 특정 API 호출 요청 신호가 수신된 경우 해당하는 컨테이너를 생성하여 펑션을 실행시킴과 아울러, 그 호출 이후에 호출될 가능성이 높은 펑션을 위한 컨테이너를 미리 생성 및 준비함으로써, 사용자의 요청에 대한 처리 속도를 상당히 높일 수 있다.
특히, API 호출 요청 신호에 대한 예측 모델을 생성함에 있어서, 사용자별 호출 패턴을 먼저 판단하고, 이후 각 사용자멸 호출 패턴에 대한 비교를 통해 순서에 따른 실행 빈도수가 높은 호출 패턴을 최종 구성함으로써, API 호출 요청 신호를 상당히 많이 전송하는 특정 사용자의 성향에 예측 모델이 좌우되는 것을 방지하면서도 적절한 호출 패턴을 포함하는 예측 모델을 생성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버를 포함하는 전체 시스템의 개략 구성도이고,
도 2는 도 1의 컨테이너 서비스 제공 서버의 기능 블록도이고,
도 3 및 도 4는 도 1의 컨테이너 서비스 제공 서버의 제어 흐름도이다.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.
이하 본 발명에 따른 각 실시예는 본 발명의 이해를 돕기 위한 하나의 예에 불과하고, 본 발명이 이러한 실시예에 한정되는 것은 아니다. 특히 본 발명은 각 실시예에 포함되는 개별 구성, 개별 기능, 또는 개별 단계 중 적어도 어느 하나 이상의 조합으로 구성될 수 있다.
특히, 편의상 청구 범위의 일부 청구항에는 '(a)'와 같은 알파벳을 포함시켰으나, 이러한 알파벳이 각 단계의 순서를 규정하는 것은 아니다.
또한 이하 본 발명에 따른 각 실시예에서 언급하는 각 신호는 한 번의 연결 등에 의해 전송되는 하나의 신호를 의미할 수도 있지만, 후술하는 특정 기능 수행을 목적으로 전송되는 일련의 신호 그룹을 의미할 수도 있다. 즉, 각 실시예에서는 소정의 시간 간격을 두고 전송되거나 상대 장치로부터의 응답 신호를 수신한 이후에 전송되는 복수 개의 신호들이 편의상 하나의 신호명으로 표현될 수 있는 것이다.
본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버(100)를 포함하는 전체 통신 시스템의 개략 구성은 도 1에 도시된 바와 같다.
동 도면에서 사용자 단말기(200)는 컨테이너 서비스를 이용하고자 하는 자들이 이용하는 단말기로서, 예를 들어 댁내에 구비된 개인용 컴퓨터와 같은 유선 통신 장치, 또는 데이터 통신이 가능한 휴대용 전화기와 같은 무선 통신 단말기일 수 있다.
이하 본 실시예를 설명함에 있어서, 사용자들이 컨테이너 서비스 제공 서버(100)에 각종 요청신호를 전송하는 것은 이러한 사용자 단말기(200)를 이용하는 것이므로 중복 설명은 생략하기로 한다.
또한 본 실시예를 설명함에 있어서 편의상 각 사용자 단말기(200)들은 서로 다른 사용자에 의해 이용된 것이라 가정한다.
컨테이너 서비스 제공 서버(100)는 이러한 각 사용자 단말기(200)로부터 소정의 펑션 호출을 위한 호출 요청 신호가 수신되면 그에 따른 처리를 수행하는 것으로서, 예를 들어 클라우드 서버에 해당할 수 있다.
여기서 '펑션'은 사용자가 원하는 특정 기능을 의미하는 것으로서, 예를 들어 특정 애플리케이션에 해당할 수 있다.
또한 호출 요청 신호는 이러한 특정 펑션을 호출하는 것으로서, 예를 들어 특정 펑션의 실행을 요청하는 신호일 수 있는데, 특히 컨테이너 서비스 제공 서버(100)가 제공하는 API(Application Program Interface)를 통한 요청 신호에 해당하는 경우 'API 호출 요청 신호'라 할 수 있는데, 이하에서는 사용자 단말기(200)로부터 이러한 API 호출 요청 신호가 수신된다고 가정한다.
이러한 컨테이너 서비스 제공 서버(100)의 구체적인 기능 블록의 일 예는 도 2에 도시된 바와 같다.
동 도면에 도시된 바와 같이 컨테이너 서비스 제공 서버(100)는 수신 이력 저장부(110), 호출 순서 모델 생성부(120), 호출 처리부(130)를 포함하여 구성될 수 있다.
우선, 수신 이력 저장부(110)는 외부 즉, 사용자 단말기(200)로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 기능을 수행한다.
여기서 사용자 단말기(200)로부터 수신되는 각 API 호출 요청 신호에는 호출 또는 실행을 원하는 펑션에 대한 정보(예를 들어 호출 아이디 등)가 포함될 수 있는데, 이때 수신 이력 저장부(110)는 그 호출 요청된 각 펑션에 대한 정보를 포함하는 수신 이력 정보를 누적 저장할 수 있다.
일 예로 API 호출 요청 신호는 'http://domain/api/service_id/api_id'와 같은 형태를 가질 수 있고, 제일 마지막의 'api_id'가 실행도리 펑션을 지정하는 것일 수 있다.
이외에도 API 호출 요청 신호에는 사용자 정보 또는 각종 파라미터 정보가 포함될 수도 있다.
이때 수신 이력 저장부(110)는 수신 이력 정보를 분석이 용이한 형태로 파싱한 후 저장할 수 있는데, 예를 들어 사용자정보 : 요청 api id : 요청 시간 형태로 파싱하여 저장할 수도 있다.
호출 순서 모델 생성부(120)는 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 기능을 수행한다.
예를 들어 호출 순서 모델 생성부(120)는 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성할 수 있다.
예를 들어 펑션 a의 호출을 요청하는 API 호출 요청 신호에 이어서 펑션 b의 호출을 요청하는 API 호출 요청 신호가 가장 빈번하게 수신되었다고 판단하는 경우 호출 순서 모델 생성부(120)는 펑션 a에 이어서 펑션 b를 매칭시킨 예측 모델을 생성할 수 있는 것이다.
특히, 호출 순서 모델 생성부(120)는 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하고, 그 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성할 수 있다.
예를 들어 호출 순서 모델 생성부(120)는 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성할 수 있는 것이다.
여기서 특정 펑션 호출 후에 이루어진 다른 펑션에 대한 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 전체적인 빈도수가 높은 펑션을 특정 펑션 호출 후에 바로 실행될 펑션으로 선정할 수 있다.
예를 들어 호출 순서 모델 생성부(120)는 제1 펑션 호출 이후에 이루어진 타 펑션들에 대한 호출 빈도수를 판단한 결과 호출 빈도수가 동일한 펑션이 복수 개 발견된 경우 그 중 기 설정된 시간동안 호출된 전체적인 빈도수가 가장 높은 펑션을 그 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정할 수 있는 것이다.
예를 들어 호출 순서 모델 생성부(120)는 10분 단위로 Pattern mining(즉, 예측 모델 생성)을 수행할 수 있는데, Pattern mining 의 방식은 사용자별, 시간대별 api 요청을 분석하는 방식으로 이루어질 수 있다
이러한 과정의 구체적인 예를 들면 다음과 같다.
사용자 A의경우 각 펑션 호출이 a1 -> a2 -> a3 -> a4 -> a5 순서대로 이루어졌고, 사용자 B의 경우 a1-> a2 -> a4 -> a5 -> a6 순서대로, 사용자 C의 경우 a1 -> a4 -> a5 -> a6 의 순서대로 펑션 호출을 요청했다고 가정하면, 제일 첫 번째 호출에 대해 a1 의 빈도와 순서가 가장 빠르므로 해당 api 호출을 기준으로 후보 패턴을 찾는다.
a1 에 이어서 다음 호출의 경우 a2, a4가 나타나는데, 이중 a2의 빈도가 더 높으므로 a1 -> a2 로 후보 패턴을 구성한다.
이후, a2에서 다음 호출은 a3, a4 가 동일한 회수로 나타나는데, 이 경우 10분 전체적으로 높은 빈도의 api 호출이 어떤 것인지 판단한다.
즉 전체적으로 a4의 빈도가 높으므로 a2 -> a4 의 후보 패턴을 결정한다.
즉, 순차적인 패턴검색과 호출빈도 파악을 통해 후보 패턴을 결정하는 것이다.
이와 같은 방식으로 10분 간의 다음 패턴 규칙은 a1 -> a2 -> a4 -> a5 -> a6 의 형태가 도출되고, 따라서 호출 순서 모델 생성부(120)는 이러한 순서를 포함하는 예측 모델을 생성하는 것이다.
한편, 호출 처리부(130)는 호출 순서 모델 생성부(120)에 의해 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 그 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 예측 모델을 이용하여 해당 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행한다.
즉, 앞서 구체적인 예에서 언급한 바와 같이 예측 모델이 a1 -> a2 -> a4 -> a5 -> a6 의 형태를 포함하여 구성된 상태에서 외부로부터 펑션 a1의 호출을 위한 API 호출 요청 신호가 수신되면, 호출 처리부(130)는 그 a1의 실행을 위한 컨테이너(즉, 제1 컨테이너)를 생성한 후 a1을 실행(또는 호출)시킴과 아울러 예측 모델에서 a1 이후에 a2가 배치되어 있으므로 a2의 실행을 위한 컨테이너(즉, 제2 컨테이너)를 생성하여 대기한다.
이 상태에서 사용자 단말기(200)로부터 a2를 호출하는 API 호출 요청 신호가 수신되면 컨테이너 서비스 제공 서버(100)는 현재 생성되어 있는 제2 컨테이너 상에서 a2를 즉시 실행시킴과 아울러 a4의 실행을 위한 컨테이너(즉, 제3 컨테이너)를 생성하여 대기한다.
이하에서는 도 3을 참조하여 본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버(100)가 소정의 API 호출 요청 신호의 수신과 관련된 예측 모델을 생성하는 과정을 설명한다.
컨테이너 서비스 제공 서버(100)는 사용자 단말기(200)로부터 API 호출 요청 신호가 수신되면(단계 S1) 그 API 호출 요청 신호에 포함된 정보들을 추출한 후 수신 이력 정보를 누적 저장한다(단계 S3).
한편, 컨테이너 서비스 제공 서버(100)는 API 호출 요청 신호에 포함된 정보를 기초로 사용자가 호출을 요청한 펑션에 대응되는 컨테이너를 실행 또는 생성한다(단계 S7).
이어서 컨테이너 서비스 제공 서버(100)는 실행 또는 생성된 컨테이너에서 사용자로부터 요청된 펑션을 호출 또는 실행한다(단계 S9).
한편, 컨테이너 서비스 제공 서버(100)는 누적 저장된 수신 이력 정보를 기초로 예측 모델을 생성하는데, 예를 들어 기 설정된 시간(일 예로 10분)마다 새로운 예측 모델을 생성할 수 있다(단계 S5).
도 4는 이처럼 예측 모델이 생성된 이후 사용자 단말기(200)로부터 API 호출 요청 신호가 수신되는 경우의 처리 과정을 나타낸다.
본 실시예에서는 편의상 사용자 단말기(200)로부터 제일 먼저 수신되는 API 호출 요청 신호는 제1 API 호출 요청 신호라 칭하고, 그 다음 순서로 수신되는 API 호출 요청 신호를 제2 API 호출 요청 신호라 명명한다.
사용자 단말기(200)로부터 제1 API 호출 요청 신호가 수신되면(단계 S11) 컨테이너 서비스 제공 서버(100)는 현재 그 제1 API 호출 요청 신호에 대응되는 컨테이너(즉, '제1 컨테이너)가 생성되어 있는지 여부를 판단한다(단계 S13).
판단 결과 제1 컨테이너가 생성되어 있다면 그 생성되어 있는 제1 컨테이너에서 사용자 단말기(200)로부터 요청받은 펑션을 호출 또는 실행하고(단계 S17), 판단 결과 제1 컨테이너가 생성되어 있지 않다면 컨테이너 서비스 제공 서버(100)는 제1 컨테이너를 생성하고(단계 S15), 이어서 사용자 단말기(200)로부터 요청받은 펑션을 실행한다(단계 S17).
한편, 컨테이너 서비스 제공 서버(100)는 사용자 단말기(200)로부터 제1 API 호출 요청 신호가 수신된 이후 컨테이너 서비스 제공 서버(100)는 도 3의 과정을 통해 생성되어 있는 예측 모델을 참조하여 제2 컨테이너를 판단 및 생성하고(단계 S19), 실행 대기를 수행한다(단계 S21).
이 경우 제2 컨테이너에 대응되는 펑션에 대한 호출이 사용자 단말기(200)로부터 수신되면 컨테이너 서비스 제공 서버(100)는 컨테이너 생성과 관련한 시간 지연 없이 즉시 해당 펑션을 실행시킬 수 있어서, 사용자의 펑션 호출에 대하여 신속한 처리가 가능하다.
한편, 상술한 각 실시예를 수행하는 과정은 소정의 기록 매체(예를 들어 컴퓨터로 판독 가능한)에 저장된 프로그램 또는 애플리케이션에 의해 이루어질 수 있음은 물론이다. 여기서 기록 매체는 RAM(Random Access Memory)과 같은 전자적 기록 매체, 하드 디스크와 같은 자기적 기록 매체, CD(Compact Disk)와 같은 광학적 기록 매체 등을 모두 포함한다.
이때, 기록 매체에 저장된 프로그램은 컴퓨터나 스마트폰 등과 같은 하드웨어 상에서 실행되어 상술한 각 실시예를 수행할 수 있다. 특히, 상술한 본 발명에 따른 컨테이너 서비스 제공 서버의 기능 블록 중 적어도 어느 하나는 이러한 프로그램 또는 애플리케이션에 의해 구현될 수 있다.
또한, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 특허청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다.
100 : 컨테이너 서비스 제공 서버 200 : 사용자 단말기
110 : 수신 이력 저장부 120 : 호출 순서 모델 생성부
130 : 호출 제어부

Claims (12)

  1. 삭제
  2. 삭제
  3. (a) 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 단계와;
    (b) 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 단계와;
    (c) 상기 (b) 단계 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 단계를 포함하고,
    상기 (b) 단계에서는, 상기 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하며,
    상기 (b) 단계는, (b1) 상기 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하는 단계와; (b2) 상기 (b1) 단계에서 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단하는 단계와; (b3) 상기 (b2) 단계에서 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 단계를 포함하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.
  4. 제3항에 있어서,
    상기 (b) 단계는,
    상기 (b2) 단계에서는, 상기 (b1) 단계에서 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고,
    상기 (b3) 단계에서는, 상기 (b2) 단계에서 판단된 호출 빈도수에 따라 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.
  5. 제4항에 있어서,
    상기 (b3) 단계에서는, 상기 (b2) 단계에서 판단된 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 빈도수가 높은 펑션을 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.
  6. 제3항 내지 제5항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  7. 하드웨어와 결합되어 제3항 내지 제5항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능 기록 매체에 저장된 응용 프로그램.
  8. 삭제
  9. 삭제
  10. 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 수신 이력 저장부와;
    기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 호출 순서 모델 생성부와;
    상기 호출 순서 모델 생성부에 의해 상기 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 호출 처리부를 포함하고,
    상기 호출 순서 모델 생성부는, 상기 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하며,
    상기 호출 순서 모델 생성부는, 상기 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하고, 그 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.
  11. 제10항에 있어서,
    상기 호출 순서 모델 생성부는, 상기 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.
  12. 제11항에 있어서,
    상기 호출 순서 모델 생성부는, 상기 판단된 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 빈도수가 높은 펑션을 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.
KR1020180139484A 2018-11-14 2018-11-14 컨테이너 서비스 제공을 위한 장치 및 방법 KR102193157B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180139484A KR102193157B1 (ko) 2018-11-14 2018-11-14 컨테이너 서비스 제공을 위한 장치 및 방법
PCT/KR2019/014321 WO2020101224A1 (ko) 2018-11-14 2019-10-29 컨테이너 서비스 제공을 위한 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180139484A KR102193157B1 (ko) 2018-11-14 2018-11-14 컨테이너 서비스 제공을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20200055876A KR20200055876A (ko) 2020-05-22
KR102193157B1 true KR102193157B1 (ko) 2020-12-18

Family

ID=70731600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180139484A KR102193157B1 (ko) 2018-11-14 2018-11-14 컨테이너 서비스 제공을 위한 장치 및 방법

Country Status (2)

Country Link
KR (1) KR102193157B1 (ko)
WO (1) WO2020101224A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049598A (ja) * 2000-05-23 2002-02-15 Victor Co Of Japan Ltd エージェントシステム
JP2011008314A (ja) 2009-06-23 2011-01-13 Seiko Epson Corp ウェブサービス提供装置のウェブサービス処理方法、ウェブサービス呼出プログラムおよびウェブサービス提供装置
JP2011215902A (ja) * 2010-03-31 2011-10-27 Nec Corp サービス制御システム、装置、方法およびプログラム
JP5089684B2 (ja) * 2007-04-06 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス・プログラムを生成する技術

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150096626A (ko) * 2014-02-14 2015-08-25 인성데이타(주) 콜벨 처리 방법 및 시스템
KR101807806B1 (ko) 2017-05-02 2017-12-11 나무기술 주식회사 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049598A (ja) * 2000-05-23 2002-02-15 Victor Co Of Japan Ltd エージェントシステム
JP5089684B2 (ja) * 2007-04-06 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス・プログラムを生成する技術
JP2011008314A (ja) 2009-06-23 2011-01-13 Seiko Epson Corp ウェブサービス提供装置のウェブサービス処理方法、ウェブサービス呼出プログラムおよびウェブサービス提供装置
JP2011215902A (ja) * 2010-03-31 2011-10-27 Nec Corp サービス制御システム、装置、方法およびプログラム

Also Published As

Publication number Publication date
KR20200055876A (ko) 2020-05-22
WO2020101224A1 (ko) 2020-05-22

Similar Documents

Publication Publication Date Title
US11048620B2 (en) Distributed system test device
US10871953B2 (en) Application update method and apparatus
CN107832100B (zh) 一种apk插件的加载方法及其终端
US9088479B2 (en) Automatically selecting appropriate platform to run application in cloud computing environment
US10638168B2 (en) Detecting minimum viable display resolution of media content using optical character recognition
CN105095367B (zh) 一种客户端数据的采集方法和装置
US11275805B2 (en) Dynamically tagging webpages based on critical words
CN110781505A (zh) 系统构建方法及装置、检索方法及装置、介质和设备
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
US20200410106A1 (en) Optimizing Operating System Vulnerability Analysis
US20230088581A1 (en) Predicting microservices required for incoming requests
US10839066B1 (en) Distinguishing human from machine input using an animation
US10997004B2 (en) Detecting co-resident services in a container cloud
CN115336237A (zh) 远程存储的文件的预测性供应
CN112256295A (zh) 应用程序的更新方法、装置、设备和存储介质
KR102193157B1 (ko) 컨테이너 서비스 제공을 위한 장치 및 방법
CN115039082A (zh) 日志写入方法、装置、电子设备以及存储介质
US20220066757A1 (en) Determining When to Perform and Performing Runtime Binary Slimming
US10216505B2 (en) Using machine learning to optimize minimal sets of an application
CN107667343B (zh) 用于加载按需加载资源的系统和方法
CN112527318A (zh) 服务处理方法、装置以及在线服务系统
CN109840156B (zh) 一种数据缓存方法及其设备、存储介质、终端
CN105511932A (zh) 一种应用的卸载方法和装置
CN111176679A (zh) 一种应用程序更新方法和装置
CN104125253A (zh) 网络应用的实现方法和系统

Legal Events

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