KR20200055876A - Apparatus and method for providing container service - Google Patents
Apparatus and method for providing container service Download PDFInfo
- Publication number
- KR20200055876A KR20200055876A KR1020180139484A KR20180139484A KR20200055876A KR 20200055876 A KR20200055876 A KR 20200055876A KR 1020180139484 A KR1020180139484 A KR 1020180139484A KR 20180139484 A KR20180139484 A KR 20180139484A KR 20200055876 A KR20200055876 A KR 20200055876A
- Authority
- KR
- South Korea
- Prior art keywords
- function
- call
- request signal
- call request
- api call
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution 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
Description
본 발명은 컨테이너 서비스 제공을 위한 장치 및 방법에 관한 것으로, 보다 상세하게는 외부로부터의 수신되는 API 호출 요청 신호에 따라 특정 펑션의 실행을 수행하는 컨테이너 서비스 제공을 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for providing a container service, and more particularly, to an apparatus and method for providing a container service that performs execution of a specific function according to an API call request signal received from the outside.
최근 클라우드 서비스의 발전과 더불어 컨테이너 기술이 보급되고 있다.With the recent development of cloud services, container technology has been spreading.
컨테이너 기술은 개발자들은 물론이고 사용자들에게도 편의성을 증대시키는 기술로서, 특히 개발자의 경우 새로 만든 애플리케이션을 실제 작업한 노트북에서 테스트 환경으로, 다시 운영환경으로 옮길 때마다 온갖 이상한 오류와 만나게 되는데, 이는 각 환경마다 네트워크 기술과 보안 정책, 스토리지가 제각각이어서 발생하는 문제인데, 컨테이너의 경우 애플리케이션과 그 실행에 필요한 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 배포 및 동작하도록 함으로써, 종래의 불편을 해소시킬 수 있는 기술이다.Container technology is a technology that increases convenience for users as well as developers. Especially, in the case of developers, whenever they move a newly created application from a laptop to a test environment and back to an operating environment, they encounter all kinds of strange errors. It is a problem that occurs due to the different network technology, security policy, and storage for each environment. In the case of containers, distribution and operation of applications, libraries, binaries, and configuration files required for execution are packaged and resolved, thereby eliminating the conventional inconvenience. It is a skill.
즉, 이처럼 컨테이너를 이용하게 되면 노트북-테스트 환경-실제 운영환경으로 바뀌어도 실행에 필요한 파일이 함께 따라다니므로 오류를 최소화할 수 있는데, 운영체제 제외하고 애플리케이션 실행에 필요한 모든 파일을 패키징한다는 점에서 운영체제 위에서 구현된 가상화, 즉 '운영체제 레벨 가상화'라고 부르기도 한다.In other words, if you use this container, even if you change to a laptop-test environment-real operating environment, the files required for execution follow along, so you can minimize errors. It is also called implemented virtualization, that is, 'operating system level virtualization'.
이러한 컨테이너 기술은 가상머신(VM) 기술과는 구별된다.This container technology is distinct from the virtual machine (VM) technology.
즉, 가상머신 기술의 경우 '하드웨어 레벨 가상화'에 해당하는데, 서버에 하이퍼바이저를 설치한 후 그 위에 가상 운영체제와 애플리케이션을 패키징한 '가상머신(VM)'을 만들어 실행하는 방식으로서, 일명 '서버 가상화'라고 할 수 있는데, 이에 반해 컨테이너 기술에서는 각 컨테이너에 운영체제가 포함되지 않아 크기가 수십 MB로 작고, 따라서 서버 1대에서 실행할 수 있는 개수가 VM보다 최대 10배 이상 많게 될 뿐만 아니라, 운영체제 부팅이 필요 없어 불과 수초 만에 서비스를 시작할 수 있다는 점에서 장점이 크고, 이러한 장점으로 인해 최근 컨테이너 서비스 이용이 급증하고 있는 실정이다.In other words, in the case of virtual machine technology, it corresponds to 'hardware level virtualization'. As a method of creating and running a 'virtual machine (VM)' that packages a virtual operating system and applications on it after installing a hypervisor on a server, aka 'server Virtualization ', on the other hand, in container technology, since each container does not include an operating system, the size is small to several tens of MB, so the number of servers that can be executed on one server is up to 10 times more than the VM, and the operating system is booted. Since there is no need for this, the service can be started in a matter of seconds, and the advantage of container service is rapidly increasing due to these advantages.
그런데 컨테이너 서비스가 제공되는 과정을 살펴보면, 사용자가 API 게이트웨이를 통해 컨테이너 서비스 제공 서버에 특정 펑션을 호출하면 컨테이너 서비스 제공 서버는 그 펑션 실행을 위한 컨테이너를 생성하고, 그 컨테이너에서 해당 펑션을 실행시키는 과정을 수행한다.However, looking at the process of providing a container service, when a user calls a specific function to the container service providing server through the API gateway, the container service providing server creates a container for executing the function, and executes the corresponding function in the container. To perform.
상술한 바와 같이 컨테이너가 가상 머신과 비교하여 생성 및 실행 속도가 빠르다 하더라도 실행시키고자 하는 펑션과 관련된 각종 라이브러리, 바이너리, 구성 파일 등을 패키지로 묶어 생성하는 과정을 거쳐야 하므로 호출이 많은 경우에는 여전히 실행 속도와 관련된 문제가 발생할 수 있다.As mentioned above, even if the container has a faster creation and execution speed compared to the virtual machine, it needs to go through the process of creating and packaging various libraries, binaries, and configuration files related to the function to be executed, so it still executes when there are many calls. Speed-related problems can arise.
본 발명은 상기한 종래의 단점을 해결하기 위해 안출된 것으로서, 그 목적은 컨테이너 생성 및 특정 펑션의 실행이 신속하게 이루어질 수 있도록 하는 컨테이너 서비스 제공을 위한 장치 및 방법을 제공하는 것이다. The present invention has been devised to solve the above-mentioned conventional shortcomings, and its object is to provide an apparatus and method for providing a container service that enables container creation and execution of a specific function to be performed quickly.
상기한 목적을 달성하기 위해 본 발명에 따른 컨테이너 서비스 제공 서버는, 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 수신 이력 저장부와; 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 호출 순서 모델 생성부와; 상기 호출 순서 모델 생성부에 의해 상기 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 호출 처리부를 포함하여 구성된다.In order to achieve the above object, the container service providing server according to the present invention receives reception history information accumulated for each API call request signal whenever an API call request signal for a predetermined function call is received from the outside. A storage unit; A call order model generation unit for generating a prediction model for the order of reception of each API call request signal based on the received history information accumulated and stored for a predetermined time; After the prediction model is generated by the call order model generator, when a new API call request signal is received, the first container corresponding to the new API call request signal is generated, and then the requested function is performed. A call processing unit for predicting an additional API call request signal to be received after the new API call request signal using a prediction model, and then generating a second container corresponding to the predicted additional API call request signal to perform execution waiting It includes.
또, 상기한 목적을 달성하기 위해 본 발명에 따른 컨테이너 서비스 제공 서버의 제어방법은, 외부로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 단계와; 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 단계와; 상기 단계 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 단계를 포함하여 이루어진다.In addition, in order to achieve the above object, the control method of the container service providing server according to the present invention receives reception history information for each API call request signal whenever an API call request signal for a predetermined function call is received from the outside. Accumulating and storing; Generating a prediction model for a reception order of each API call request signal based on the received history information accumulated and stored for a preset time; After the step, when a new API call request signal is received, the first container corresponding to the new API call request signal is generated, and then the requested function is performed, and after the new API call request signal using the prediction model After predicting the additional API call request signal to be received, the second API corresponding to the predicted additional API call request signal is generated to perform execution wait.
이상 설명한 바와 같이 본 발명에 따르면, 특정 API 호출 요청 신호가 수신된 경우 해당하는 컨테이너를 생성하여 펑션을 실행시킴과 아울러, 그 호출 이후에 호출될 가능성이 높은 펑션을 위한 컨테이너를 미리 생성 및 준비함으로써, 사용자의 요청에 대한 처리 속도를 상당히 높일 수 있다.As described above, according to the present invention, when a specific API call request signal is received, a corresponding container is generated to execute a function, and a container for a function that is likely to be called after the call is generated and prepared in advance. , It can significantly speed up the processing of user requests.
특히, API 호출 요청 신호에 대한 예측 모델을 생성함에 있어서, 사용자별 호출 패턴을 먼저 판단하고, 이후 각 사용자멸 호출 패턴에 대한 비교를 통해 순서에 따른 실행 빈도수가 높은 호출 패턴을 최종 구성함으로써, API 호출 요청 신호를 상당히 많이 전송하는 특정 사용자의 성향에 예측 모델이 좌우되는 것을 방지하면서도 적절한 호출 패턴을 포함하는 예측 모델을 생성할 수 있다.In particular, in generating a predictive model for the API call request signal, the call pattern for each user is first determined, and then, by comparing each user-kill call pattern, the call pattern having a high execution frequency according to the sequence is finally constructed, thereby making the API It is possible to generate a prediction model including an appropriate call pattern while preventing the prediction model from being influenced by a specific user's propensity to transmit a lot of call request signals.
도 1은 본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버를 포함하는 전체 시스템의 개략 구성도이고,
도 2는 도 1의 컨테이너 서비스 제공 서버의 기능 블록도이고,
도 3 및 도 4는 도 1의 컨테이너 서비스 제공 서버의 제어 흐름도이다.1 is a schematic configuration diagram of an entire system including a container service providing server according to an embodiment of the present invention,
2 is a functional block diagram of the container service providing server of FIG. 1,
3 and 4 are control flow diagrams of the container service providing server of FIG. 1.
이하에서는 첨부도면을 참조하여 본 발명에 대해 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.
이하 본 발명에 따른 각 실시예는 본 발명의 이해를 돕기 위한 하나의 예에 불과하고, 본 발명이 이러한 실시예에 한정되는 것은 아니다. 특히 본 발명은 각 실시예에 포함되는 개별 구성, 개별 기능, 또는 개별 단계 중 적어도 어느 하나 이상의 조합으로 구성될 수 있다.Hereinafter, each embodiment according to the present invention is only one example to help understanding of the present invention, and the present invention is not limited to these embodiments. In particular, the present invention may be composed of a combination of at least one or more of individual components, individual functions, or individual steps included in each embodiment.
특히, 편의상 청구 범위의 일부 청구항에는 '(a)'와 같은 알파벳을 포함시켰으나, 이러한 알파벳이 각 단계의 순서를 규정하는 것은 아니다.In particular, for convenience, some claims in the claims include alphabets such as '(a)', but these alphabets do not define the order of each step.
또한 이하 본 발명에 따른 각 실시예에서 언급하는 각 신호는 한 번의 연결 등에 의해 전송되는 하나의 신호를 의미할 수도 있지만, 후술하는 특정 기능 수행을 목적으로 전송되는 일련의 신호 그룹을 의미할 수도 있다. 즉, 각 실시예에서는 소정의 시간 간격을 두고 전송되거나 상대 장치로부터의 응답 신호를 수신한 이후에 전송되는 복수 개의 신호들이 편의상 하나의 신호명으로 표현될 수 있는 것이다.In addition, each signal referred to in each embodiment according to the present invention may mean one signal transmitted through one connection or the like, but may also mean a series of signal groups transmitted for the purpose of performing a specific function described later. . That is, in each embodiment, a plurality of signals transmitted at predetermined time intervals or transmitted after receiving a response signal from a counterpart device may be expressed as a single signal name for convenience.
본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버(100)를 포함하는 전체 통신 시스템의 개략 구성은 도 1에 도시된 바와 같다.A schematic configuration of the entire communication system including the container
동 도면에서 사용자 단말기(200)는 컨테이너 서비스를 이용하고자 하는 자들이 이용하는 단말기로서, 예를 들어 댁내에 구비된 개인용 컴퓨터와 같은 유선 통신 장치, 또는 데이터 통신이 가능한 휴대용 전화기와 같은 무선 통신 단말기일 수 있다.In the figure, the
이하 본 실시예를 설명함에 있어서, 사용자들이 컨테이너 서비스 제공 서버(100)에 각종 요청신호를 전송하는 것은 이러한 사용자 단말기(200)를 이용하는 것이므로 중복 설명은 생략하기로 한다.In the following description of the present embodiment, since the user transmits various request signals to the container
또한 본 실시예를 설명함에 있어서 편의상 각 사용자 단말기(200)들은 서로 다른 사용자에 의해 이용된 것이라 가정한다.In addition, in describing this embodiment, it is assumed that each
컨테이너 서비스 제공 서버(100)는 이러한 각 사용자 단말기(200)로부터 소정의 펑션 호출을 위한 호출 요청 신호가 수신되면 그에 따른 처리를 수행하는 것으로서, 예를 들어 클라우드 서버에 해당할 수 있다.The container
여기서 '펑션'은 사용자가 원하는 특정 기능을 의미하는 것으로서, 예를 들어 특정 애플리케이션에 해당할 수 있다.Here, 'function' refers to a specific function desired by a user, and may correspond to a specific application, for example.
또한 호출 요청 신호는 이러한 특정 펑션을 호출하는 것으로서, 예를 들어 특정 펑션의 실행을 요청하는 신호일 수 있는데, 특히 컨테이너 서비스 제공 서버(100)가 제공하는 API(Application Program Interface)를 통한 요청 신호에 해당하는 경우 'API 호출 요청 신호'라 할 수 있는데, 이하에서는 사용자 단말기(200)로부터 이러한 API 호출 요청 신호가 수신된다고 가정한다.In addition, the call request signal is a call to a specific function, and may be, for example, a signal requesting execution of a specific function. In particular, it corresponds to a request signal through an application program interface (API) provided by the container
이러한 컨테이너 서비스 제공 서버(100)의 구체적인 기능 블록의 일 예는 도 2에 도시된 바와 같다.An example of a specific functional block of the container
동 도면에 도시된 바와 같이 컨테이너 서비스 제공 서버(100)는 수신 이력 저장부(110), 호출 순서 모델 생성부(120), 호출 처리부(130)를 포함하여 구성될 수 있다.As shown in the figure, the container
우선, 수신 이력 저장부(110)는 외부 즉, 사용자 단말기(200)로부터 소정의 펑션 호출을 위한 API 호출 요청 신호가 수신될 때마다 각 API 호출 요청 신호에 대한 수신 이력 정보를 누적 저장하는 기능을 수행한다.First, the reception
여기서 사용자 단말기(200)로부터 수신되는 각 API 호출 요청 신호에는 호출 또는 실행을 원하는 펑션에 대한 정보(예를 들어 호출 아이디 등)가 포함될 수 있는데, 이때 수신 이력 저장부(110)는 그 호출 요청된 각 펑션에 대한 정보를 포함하는 수신 이력 정보를 누적 저장할 수 있다.Here, each API call request signal received from the
일 예로 API 호출 요청 신호는 'http://domain/api/service_id/api_id'와 같은 형태를 가질 수 있고, 제일 마지막의 'api_id'가 실행도리 펑션을 지정하는 것일 수 있다.For example, the API call request signal may have a form such as 'http: // domain / api / service_id / api_id', and the last 'api_id' may designate an execution function.
이외에도 API 호출 요청 신호에는 사용자 정보 또는 각종 파라미터 정보가 포함될 수도 있다.In addition, the API call request signal may include user information or various parameter information.
이때 수신 이력 저장부(110)는 수신 이력 정보를 분석이 용이한 형태로 파싱한 후 저장할 수 있는데, 예를 들어 사용자정보 : 요청 api id : 요청 시간 형태로 파싱하여 저장할 수도 있다.At this time, the reception
호출 순서 모델 생성부(120)는 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 기능을 수행한다.The call
예를 들어 호출 순서 모델 생성부(120)는 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성할 수 있다.For example, the call order
예를 들어 펑션 a의 호출을 요청하는 API 호출 요청 신호에 이어서 펑션 b의 호출을 요청하는 API 호출 요청 신호가 가장 빈번하게 수신되었다고 판단하는 경우 호출 순서 모델 생성부(120)는 펑션 a에 이어서 펑션 b를 매칭시킨 예측 모델을 생성할 수 있는 것이다.For example, if it is determined that the API call request signal requesting the call of function b is received most frequently following the API call request signal requesting the call of function a, the call
특히, 호출 순서 모델 생성부(120)는 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하고, 그 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성할 수 있다.In particular, the call order
예를 들어 호출 순서 모델 생성부(120)는 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성할 수 있는 것이다.For example, the call order
여기서 특정 펑션 호출 후에 이루어진 다른 펑션에 대한 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 전체적인 빈도수가 높은 펑션을 특정 펑션 호출 후에 바로 실행될 펑션으로 선정할 수 있다.Here, when there are a plurality of functions having the same calling frequency for other functions made after a specific function call, a function having a high overall frequency called during a predetermined time may be selected as a function to be executed immediately after a specific function call.
예를 들어 호출 순서 모델 생성부(120)는 제1 펑션 호출 이후에 이루어진 타 펑션들에 대한 호출 빈도수를 판단한 결과 호출 빈도수가 동일한 펑션이 복수 개 발견된 경우 그 중 기 설정된 시간동안 호출된 전체적인 빈도수가 가장 높은 펑션을 그 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정할 수 있는 것이다.For example, as a result of determining the call frequency for other functions made after the first function call, the call
예를 들어 호출 순서 모델 생성부(120)는 10분 단위로 Pattern mining(즉, 예측 모델 생성)을 수행할 수 있는데, Pattern mining 의 방식은 사용자별, 시간대별 api 요청을 분석하는 방식으로 이루어질 수 있다For example, the call
이러한 과정의 구체적인 예를 들면 다음과 같다.Specific examples of this process are as follows.
사용자 A의경우 각 펑션 호출이 a1 -> a2 -> a3 -> a4 -> a5 순서대로 이루어졌고, 사용자 B의 경우 a1-> a2 -> a4 -> a5 -> a6 순서대로, 사용자 C의 경우 a1 -> a4 -> a5 -> a6 의 순서대로 펑션 호출을 요청했다고 가정하면, 제일 첫 번째 호출에 대해 a1 의 빈도와 순서가 가장 빠르므로 해당 api 호출을 기준으로 후보 패턴을 찾는다.For User A, each function call was made in the order of a1-> a2-> a3-> a4-> a5, and for User B, in the order of a1-> a2-> a4-> a5-> a6, and for User C Assuming that function calls are requested in the order of a1-> a4-> a5-> a6, since the frequency and order of a1 is the fastest for the first call, the candidate pattern is searched based on the corresponding api call.
a1 에 이어서 다음 호출의 경우 a2, a4가 나타나는데, 이중 a2의 빈도가 더 높으므로 a1 -> a2 로 후보 패턴을 구성한다.Following a1, a2 and a4 appear in the next call. Since a2 has a higher frequency, a1-> a2 forms a candidate pattern.
이후, a2에서 다음 호출은 a3, a4 가 동일한 회수로 나타나는데, 이 경우 10분 전체적으로 높은 빈도의 api 호출이 어떤 것인지 판단한다.Then, in a2, the next call a3 and a4 appear the same number of times, and in this case, it is determined what the high-frequency api call is for 10 minutes as a whole.
즉 전체적으로 a4의 빈도가 높으므로 a2 -> a4 의 후보 패턴을 결정한다.That is, since the frequency of a4 is high as a whole, candidate patterns of a2-> a4 are determined.
즉, 순차적인 패턴검색과 호출빈도 파악을 통해 후보 패턴을 결정하는 것이다.That is, the candidate pattern is determined through sequential pattern search and call frequency identification.
이와 같은 방식으로 10분 간의 다음 패턴 규칙은 a1 -> a2 -> a4 -> a5 -> a6 의 형태가 도출되고, 따라서 호출 순서 모델 생성부(120)는 이러한 순서를 포함하는 예측 모델을 생성하는 것이다.In this way, in the following pattern rule for 10 minutes, the form of a1-> a2-> a4-> a5-> a6 is derived, so the call
한편, 호출 처리부(130)는 호출 순서 모델 생성부(120)에 의해 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 그 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 예측 모델을 이용하여 해당 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행한다.On the other hand, after the prediction model is generated by the call
즉, 앞서 구체적인 예에서 언급한 바와 같이 예측 모델이 a1 -> a2 -> a4 -> a5 -> a6 의 형태를 포함하여 구성된 상태에서 외부로부터 펑션 a1의 호출을 위한 API 호출 요청 신호가 수신되면, 호출 처리부(130)는 그 a1의 실행을 위한 컨테이너(즉, 제1 컨테이너)를 생성한 후 a1을 실행(또는 호출)시킴과 아울러 예측 모델에서 a1 이후에 a2가 배치되어 있으므로 a2의 실행을 위한 컨테이너(즉, 제2 컨테이너)를 생성하여 대기한다.That is, when the prediction model receives the API call request signal for the call of the function a1 from the outside while the prediction model is configured to include a1-> a2-> a4-> a5-> a6 as mentioned in the specific example above, The
이 상태에서 사용자 단말기(200)로부터 a2를 호출하는 API 호출 요청 신호가 수신되면 컨테이너 서비스 제공 서버(100)는 현재 생성되어 있는 제2 컨테이너 상에서 a2를 즉시 실행시킴과 아울러 a4의 실행을 위한 컨테이너(즉, 제3 컨테이너)를 생성하여 대기한다.In this state, when an API call request signal to call a2 is received from the
이하에서는 도 3을 참조하여 본 발명의 일 실시예에 따른 컨테이너 서비스 제공 서버(100)가 소정의 API 호출 요청 신호의 수신과 관련된 예측 모델을 생성하는 과정을 설명한다.Hereinafter, a process of generating a prediction model related to receiving a predetermined API call request signal by the container
컨테이너 서비스 제공 서버(100)는 사용자 단말기(200)로부터 API 호출 요청 신호가 수신되면(단계 S1) 그 API 호출 요청 신호에 포함된 정보들을 추출한 후 수신 이력 정보를 누적 저장한다(단계 S3).When the API call request signal is received from the user terminal 200 (step S1), the container
한편, 컨테이너 서비스 제공 서버(100)는 API 호출 요청 신호에 포함된 정보를 기초로 사용자가 호출을 요청한 펑션에 대응되는 컨테이너를 실행 또는 생성한다(단계 S7).On the other hand, the container
이어서 컨테이너 서비스 제공 서버(100)는 실행 또는 생성된 컨테이너에서 사용자로부터 요청된 펑션을 호출 또는 실행한다(단계 S9).Subsequently, the container
한편, 컨테이너 서비스 제공 서버(100)는 누적 저장된 수신 이력 정보를 기초로 예측 모델을 생성하는데, 예를 들어 기 설정된 시간(일 예로 10분)마다 새로운 예측 모델을 생성할 수 있다(단계 S5).Meanwhile, the container
도 4는 이처럼 예측 모델이 생성된 이후 사용자 단말기(200)로부터 API 호출 요청 신호가 수신되는 경우의 처리 과정을 나타낸다.4 shows a processing process when an API call request signal is received from the
본 실시예에서는 편의상 사용자 단말기(200)로부터 제일 먼저 수신되는 API 호출 요청 신호는 제1 API 호출 요청 신호라 칭하고, 그 다음 순서로 수신되는 API 호출 요청 신호를 제2 API 호출 요청 신호라 명명한다.In this embodiment, for convenience, the API call request signal first received from the
사용자 단말기(200)로부터 제1 API 호출 요청 신호가 수신되면(단계 S11) 컨테이너 서비스 제공 서버(100)는 현재 그 제1 API 호출 요청 신호에 대응되는 컨테이너(즉, '제1 컨테이너)가 생성되어 있는지 여부를 판단한다(단계 S13).When the first API call request signal is received from the user terminal 200 (step S11), the container
판단 결과 제1 컨테이너가 생성되어 있다면 그 생성되어 있는 제1 컨테이너에서 사용자 단말기(200)로부터 요청받은 펑션을 호출 또는 실행하고(단계 S17), 판단 결과 제1 컨테이너가 생성되어 있지 않다면 컨테이너 서비스 제공 서버(100)는 제1 컨테이너를 생성하고(단계 S15), 이어서 사용자 단말기(200)로부터 요청받은 펑션을 실행한다(단계 S17).If the first container is created as a result of the determination, the created first container calls or executes the function requested from the user terminal 200 (step S17). If the first container is not determined as a result of determination, the container
한편, 컨테이너 서비스 제공 서버(100)는 사용자 단말기(200)로부터 제1 API 호출 요청 신호가 수신된 이후 컨테이너 서비스 제공 서버(100)는 도 3의 과정을 통해 생성되어 있는 예측 모델을 참조하여 제2 컨테이너를 판단 및 생성하고(단계 S19), 실행 대기를 수행한다(단계 S21).On the other hand, the container
이 경우 제2 컨테이너에 대응되는 펑션에 대한 호출이 사용자 단말기(200)로부터 수신되면 컨테이너 서비스 제공 서버(100)는 컨테이너 생성과 관련한 시간 지연 없이 즉시 해당 펑션을 실행시킬 수 있어서, 사용자의 펑션 호출에 대하여 신속한 처리가 가능하다.In this case, when a call to the function corresponding to the second container is received from the
한편, 상술한 각 실시예를 수행하는 과정은 소정의 기록 매체(예를 들어 컴퓨터로 판독 가능한)에 저장된 프로그램 또는 애플리케이션에 의해 이루어질 수 있음은 물론이다. 여기서 기록 매체는 RAM(Random Access Memory)과 같은 전자적 기록 매체, 하드 디스크와 같은 자기적 기록 매체, CD(Compact Disk)와 같은 광학적 기록 매체 등을 모두 포함한다.Meanwhile, of course, the process of performing each of the above-described embodiments may be performed by a program or an application stored in a predetermined recording medium (for example, a computer readable). Here, the recording medium includes both an electronic recording medium such as a random access memory (RAM), a magnetic recording medium such as a hard disk, and an optical recording medium such as a compact disk (CD).
이때, 기록 매체에 저장된 프로그램은 컴퓨터나 스마트폰 등과 같은 하드웨어 상에서 실행되어 상술한 각 실시예를 수행할 수 있다. 특히, 상술한 본 발명에 따른 컨테이너 서비스 제공 서버의 기능 블록 중 적어도 어느 하나는 이러한 프로그램 또는 애플리케이션에 의해 구현될 수 있다.At this time, the program stored in the recording medium may be executed on hardware such as a computer or a smartphone to perform each of the above-described embodiments. In particular, at least one of the functional blocks of the container service providing server according to the present invention described above may be implemented by such a program or application.
또한, 본 발명은 상기한 특정 실시예에 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위 내에서 여러 가지로 변형 및 수정하여 실시할 수 있는 것이다. 이러한 변형 및 수정이 첨부되는 특허청구범위에 속한다면 본 발명에 포함된다는 것은 자명할 것이다. In addition, the present invention is not limited to the specific embodiments described above, but can be implemented by modifying and modifying in various ways without departing from the gist of the present invention. It will be apparent that such variations and modifications are included in the present invention if they fall within the scope of the appended claims.
100 : 컨테이너 서비스 제공 서버 200 : 사용자 단말기
110 : 수신 이력 저장부 120 : 호출 순서 모델 생성부
130 : 호출 제어부100: container service providing server 200: user terminal
110: reception history storage unit 120: call order model generation unit
130: call control
Claims (12)
(b) 기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 단계와;
(c) 상기 (b) 단계 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 단계를 포함하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.(a) accumulating and storing received history information for each API call request signal whenever an API call request signal for a predetermined function call is received from the outside;
(b) generating a prediction model for the reception order of each API call request signal based on the received history information accumulated and stored for a predetermined time;
(c) After the step (b), when a new API call request signal is received, the first container corresponding to the new API call request signal is generated, and then the requested function is performed. And predicting an additional API call request signal to be received after the new API call request signal, and then generating a second container corresponding to the predicted additional API call request signal to perform execution waiting. Control method of service providing server.
상기 (b) 단계에서는, 상기 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.According to claim 1,
In the step (b), after determining the number of calls after a preceding function call for each function based on the received history information, generating a prediction model selecting a function to be executed after the preceding function call according to the determined calling frequency Characteristic method of controlling a container service providing server.
상기 (b) 단계는,
(b1) 상기 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하는 단계와;
(b2) 상기 (b1) 단계에서 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단하는 단계와;
(b3) 상기 (b2) 단계에서 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 단계를 포함하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.According to claim 2,
Step (b) is,
(b1) determining a function call pattern for each user based on the received history information;
(b2) comparing the function call patterns of each user determined in step (b1) with each other to determine the frequency of each function call after the preceding function call;
and (b3) generating a prediction model selecting a function to be executed after a preceding function call according to the call frequency determined in step (b2).
상기 (b) 단계는,
상기 (b2) 단계에서는, 상기 (b1) 단계에서 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고,
상기 (b3) 단계에서는, 상기 (b2) 단계에서 판단된 호출 빈도수에 따라 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.According to claim 3,
Step (b) is,
In the step (b2), the function call patterns for each user determined in the step (b1) are compared with each other to determine the frequency of each function call immediately after the first function call,
In the step (b3), a control method of a container service providing server, characterized in that a predictive model selecting a second function to be executed immediately after the first function call is generated according to the call frequency determined in the step (b2).
상기 (b3) 단계에서는, 상기 (b2) 단계에서 판단된 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 빈도수가 높은 펑션을 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정하는 것을 특징으로 하는 컨테이너 서비스 제공 서버의 제어방법.The method of claim 4,
In the step (b3), if there are a plurality of functions having the same call frequency determined in the step (b2), a function having a high frequency called during a predetermined time is selected as a second function to be executed immediately after the first function call. Control method of a container service providing server, characterized in that.
기 설정된 시간동안 누적 저장된 수신 이력 정보를 기초로 각 API 호출 요청 신호의 수신 순서에 대한 예측 모델을 생성하는 호출 순서 모델 생성부와;
상기 호출 순서 모델 생성부에 의해 상기 예측 모델이 생성된 이후, 새로운 API 호출 요청 신호가 수신되면, 상기 새로운 API 호출 요청 신호에 대응되는 제1 컨테이너를 생성한 후 요청받은 펑션을 수행함과 아울러, 상기 예측 모델을 이용하여 상기 새로운 API 호출 요청 신호 이후에 수신될 추가 API 호출 요청 신호를 예측한 후, 그 예측한 추가 API 호출 요청 신호에 대응되는 제2 컨테이너를 생성하여 실행 대기를 수행하는 호출 처리부를 포함하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.A reception history storage unit for accumulatively storing reception history information for each API call request signal whenever an API call request signal for a predetermined function call is received from the outside;
A call sequence model generator for generating a prediction model for the reception sequence of each API call request signal based on the received history information accumulated and stored for a preset time;
When a new API call request signal is received after the prediction model is generated by the call order model generator, a first container corresponding to the new API call request signal is generated, and then the requested function is performed. A call processing unit for predicting an additional API call request signal to be received after the new API call request signal using a prediction model, and then generating a second container corresponding to the predicted additional API call request signal to perform execution waiting Container service providing server comprising a.
상기 호출 순서 모델 생성부는, 상기 수신 이력 정보를 기초로 각 펑션에 대한 선행 펑션 호출 이후의 호출 빈도수를 판단한 후, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.The method of claim 8,
The call order model generation unit determines the number of calls after a previous function call for each function based on the received history information, and then generates a prediction model that selects a function to be executed after the preceding function call according to the determined call frequency Container service providing server characterized by.
상기 호출 순서 모델 생성부는, 상기 수신 이력 정보를 기초로 사용자별 펑션 호출 패턴을 판단하고, 그 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 선행 펑션 호출 이후의 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 선행 펑션 호출 후에 실행될 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.The method of claim 9,
The call order model generation unit determines a function call pattern for each user based on the received history information, compares the determined function call pattern for each user with each other, and determines the number of calls of each function after a previous function call, Container service providing server characterized in that it generates a prediction model that selects a function to be executed after a preceding function call according to the determined call frequency.
상기 호출 순서 모델 생성부는, 상기 판단된 각 사용자별 펑션 호출 패턴을 서로 비교하여 제1 펑션 호출 이후에 바로 호출되는 각 펑션의 호출 빈도수를 판단하고, 그 판단된 호출 빈도수에 따라 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션을 선정한 예측 모델을 생성하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.The method of claim 10,
The call order model generation unit compares the determined function call patterns for each user with each other to determine the calling frequency of each function called immediately after the first function call, and calls the first function according to the determined calling frequency A container service providing server, characterized in that it generates a prediction model that selects a second function to be executed immediately.
상기 호출 순서 모델 생성부는, 상기 판단된 호출 빈도수가 동일한 펑션이 복수 개인 경우 그 중 기 설정된 시간동안 호출된 빈도수가 높은 펑션을 상기 제1 펑션 호출 후에 바로 실행될 제2 펑션으로 선정하는 것을 특징으로 하는 컨테이너 서비스 제공 서버.The method of claim 11,
The call order model generating unit, if the plurality of functions having the same call frequency is determined, selects a function having a high frequency called during a predetermined time as a second function to be executed immediately after the first function call. Container service serving server.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180139484A KR102193157B1 (en) | 2018-11-14 | 2018-11-14 | Apparatus and method for providing container service |
PCT/KR2019/014321 WO2020101224A1 (en) | 2018-11-14 | 2019-10-29 | Apparatus and method for providing container service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180139484A KR102193157B1 (en) | 2018-11-14 | 2018-11-14 | Apparatus and method for providing container service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200055876A true KR20200055876A (en) | 2020-05-22 |
KR102193157B1 KR102193157B1 (en) | 2020-12-18 |
Family
ID=70731600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180139484A KR102193157B1 (en) | 2018-11-14 | 2018-11-14 | Apparatus and method for providing container service |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102193157B1 (en) |
WO (1) | WO2020101224A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049598A (en) * | 2000-05-23 | 2002-02-15 | Victor Co Of Japan Ltd | Agent system |
JP2011008314A (en) * | 2009-06-23 | 2011-01-13 | Seiko Epson Corp | Web service processing method for web service providing device, web service calling program, and web service providing device |
JP2011215902A (en) * | 2010-03-31 | 2011-10-27 | Nec Corp | Service control system, device, method, and program |
KR20150096626A (en) * | 2014-02-14 | 2015-08-25 | 인성데이타(주) | System and method for processing call bell |
KR101807806B1 (en) | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | Application containerization method on cloud platform |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008126796A1 (en) * | 2007-04-06 | 2008-10-23 | International Business Machines Corporation | Service program generation technology |
-
2018
- 2018-11-14 KR KR1020180139484A patent/KR102193157B1/en active IP Right Grant
-
2019
- 2019-10-29 WO PCT/KR2019/014321 patent/WO2020101224A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002049598A (en) * | 2000-05-23 | 2002-02-15 | Victor Co Of Japan Ltd | Agent system |
JP2011008314A (en) * | 2009-06-23 | 2011-01-13 | Seiko Epson Corp | Web service processing method for web service providing device, web service calling program, and web service providing device |
JP2011215902A (en) * | 2010-03-31 | 2011-10-27 | Nec Corp | Service control system, device, method, and program |
KR20150096626A (en) * | 2014-02-14 | 2015-08-25 | 인성데이타(주) | System and method for processing call bell |
KR101807806B1 (en) | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | Application containerization method on cloud platform |
Also Published As
Publication number | Publication date |
---|---|
KR102193157B1 (en) | 2020-12-18 |
WO2020101224A1 (en) | 2020-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048620B2 (en) | Distributed system test device | |
US10437629B2 (en) | Pre-triggers for code execution environments | |
US10871953B2 (en) | Application update method and apparatus | |
US9083608B2 (en) | Automatically selecting appropriate platform to run application in cloud computing environment | |
CN107832100B (en) | APK plug-in loading method and terminal thereof | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
US11368479B2 (en) | Methods and apparatus to identify and report cloud-based security vulnerabilities | |
CN105446750B (en) | The method and apparatus that WebApp starting runs, generates image file | |
US10200507B2 (en) | Creation of a binding based on a description associated with a server | |
WO2020063851A1 (en) | Method and device for searching for hosting program | |
CN110781505A (en) | System construction method and device, retrieval method and device, medium and equipment | |
US11263297B2 (en) | Dynamic insertion of variablized secrets in a pipeline integration system | |
US20210136080A1 (en) | Managing shared applications at the edge of a content delivery network | |
KR102193157B1 (en) | Apparatus and method for providing container service | |
US11689630B2 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN106357704A (en) | Method and device for invoking service on basis of development environments | |
US10523591B2 (en) | Discovering resource availability across regions | |
US20200067913A1 (en) | Modifying an identity token based on a trusted service | |
CN105653948A (en) | Method and device for preventing malicious operation | |
US11822555B2 (en) | Signaling and resolution model for multi-level session-based description descriptors | |
CN116029380B (en) | Quantum algorithm processing method, device, equipment, storage medium and program product | |
US11822690B1 (en) | Data egress validation | |
CN112217853B (en) | Resource access method and device | |
KR102107374B1 (en) | Virtualization-based training content delivery system | |
CN116029380A (en) | Quantum algorithm processing method, device, equipment, storage medium and program product |
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 |