KR20240053091A - Micro service providng system based on cloud - Google Patents

Micro service providng system based on cloud Download PDF

Info

Publication number
KR20240053091A
KR20240053091A KR1020220132156A KR20220132156A KR20240053091A KR 20240053091 A KR20240053091 A KR 20240053091A KR 1020220132156 A KR1020220132156 A KR 1020220132156A KR 20220132156 A KR20220132156 A KR 20220132156A KR 20240053091 A KR20240053091 A KR 20240053091A
Authority
KR
South Korea
Prior art keywords
function
data
cloud
module
service
Prior art date
Application number
KR1020220132156A
Other languages
Korean (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 KR1020220132156A priority Critical patent/KR20240053091A/en
Publication of KR20240053091A publication Critical patent/KR20240053091A/en

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • 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/45583Memory management, e.g. access or allocation
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 특정 기능을 수행하기 위한 컨테이너 구조를 갖는 다수의 기능 서비스 모듈; 상기 다수의 기능 서비스 모듈별로 배정된 다수의 기능 데이터베이스; 상기 다수의 기능 서비스 모듈에 공통적으로 필요한 기반 데이터를 저장하는 공통 데이터베이스; 및 상기 공통 데이터베이스의 관리를 위한 컨테이너 구조의 공통 서비스 모듈; 을 포함하고, 상기 기능 서비스 모듈은, HTTP(hypertext transfer protocol) 기반의 API(Application Programming Interface)을 이용하여 특정 기능 데이터베이스에 접근 가능하며, 상기 공통 데이터베이스의 기반 데이터는, 별도의 테이블로 구성되어 상기 다수의 기능 데이터베이스에 동기화 저장되는 것을 특징으로 하는 클라우드 기반 마이크로 서비스 제공 시스템을 제공할 수 있다.The present invention includes a plurality of functional service modules having a container structure for performing specific functions; A plurality of function databases assigned to each of the plurality of function service modules; a common database storing base data commonly required for the plurality of functional service modules; and a container-structured common service module for management of the common database. Includes, the function service module can access a specific function database using an API (Application Programming Interface) based on HTTP (hypertext transfer protocol), and the base data of the common database is composed of a separate table and It is possible to provide a cloud-based microservice provision system characterized by synchronization and storage in multiple functional databases.

Figure P1020220132156
Figure P1020220132156

Description

클라우드 기반 마이크로 서비스 제공 시스템{MICRO SERVICE PROVIDNG SYSTEM BASED ON CLOUD}Cloud-based micro service provision system {MICRO SERVICE PROVIDNG SYSTEM BASED ON CLOUD}

본 발명은 클라우드 기반 마이크로 서비스 제공 시스템에 관한 것으로, 보다 상세하게는 클라우드 네이티브 데이터베이스 구조를 통해 향상된 확장성 및 자율성을 갖는 클라우드 기반 마이크로 서비스 제공 시스템에 관한 것이다.The present invention relates to a cloud-based microservice provision system, and more specifically, to a cloud-based microservice provision system with improved scalability and autonomy through a cloud native database structure.

서버 기반의 웹 호스팅은 서버 단위의 운용으로 제한되어 활용성이 떨어지는 문제점이 있다. 즉, 서버 기반의 호스팅은 서버 전체에 대한 완전한 활용이 사실상 어려우며, 상호 협의가 불가능한 전체 고객을 대상으로 서버 호스팅의 효율성을 극대화하는 것은 매우 어렵다. 또한, 서버 기반의 호스팅은 한정된 인력으로 다수의 서버를 관리하고 있어 운용시 관리 인력에 매우 큰 업무 부담을 줄 수 있다.Server-based web hosting has the problem of low usability as it is limited to server-level operation. In other words, with server-based hosting, it is virtually difficult to fully utilize the entire server, and it is very difficult to maximize the efficiency of server hosting for all customers with whom mutual agreement is not possible. Additionally, server-based hosting involves managing multiple servers with limited manpower, which can place a very large workload on management personnel during operation.

최근, 인터넷 기술을 활용하여 가상화된 IT(information technology) 자원을 서비스로 제공하는 클라우드 컴퓨팅에 대한 관심이 높아짐에 따라 전 세계적으로 클라우드 관련 서비스와 제품들이 많이 출시되고 있다.Recently, as interest in cloud computing, which provides virtualized IT (information technology) resources as a service using Internet technology, has increased, many cloud-related services and products are being released around the world.

클라우드 컴퓨팅은 분산 처리 기술과 가상화 기술을 이용하여 스토리지, 네트워크, 플랫폼 및 컴퓨터 리소스를 사용자가 손쉽게 대여할 수 있도록 해주기 때문에 사용자는 인터넷 접속과 연산 기능을 갖춘 단말기만 갖고 있다면 어디서나 전산 작업이 가능하다. 가장 보편적인 클라우드 서비스 유형은 IaaS(Infrastructure as Service), PaaS(Platform as Service), SaaS(Software as Service)이 있다.Cloud computing uses distributed processing technology and virtualization technology to allow users to easily rent storage, networks, platforms, and computer resources, so users can do computing work anywhere as long as they have Internet access and a terminal with computing capabilities. The most common cloud service types include IaaS (Infrastructure as Service), PaaS (Platform as Service), and SaaS (Software as Service).

다만, 이러한 클라우드 서비스는 한정된 자원으로 인하여 사용자가 늘어날 때마다 성능 지연이나 시스템 지연 등의 문제가 발생할 우려가 있으며, 이에 따라 보다 향상된 확장성 및 자율성을 갖는 클라우드 시스템에 대한 연구 개발이 필요한 실정이다.However, due to the limited resources of these cloud services, there is a risk that problems such as performance delay or system delay may occur whenever the number of users increases. Accordingly, research and development on cloud systems with improved scalability and autonomy are needed.

상술한 문제점을 해결하기 위해 안출된 본 발명의 목적은 확장성 및 자율성의 향상이 가능한 클라우드 기반 마이크로 서비스 제공 시스템을 제공하기 위한 것이다.The purpose of the present invention, which was devised to solve the above-mentioned problems, is to provide a cloud-based microservice provision system capable of improving scalability and autonomy.

또한, 본 발명의 다른 목적은 부하 분산 처리가 가능한 클라우드 기반 마이크로 서비스 제공 시스템을 제공하기 위함이다.Additionally, another purpose of the present invention is to provide a cloud-based microservice provision system capable of load distribution processing.

본 발명의 실시예에 의한 클라우드 기반 마이크로 서비스 제공 시스템은, 특정 기능을 수행하기 위한 컨테이너 구조를 갖는 다수의 기능 서비스 모듈, 상기 다수의 기능 서비스 모듈별로 배정된 다수의 기능 데이터베이스, 상기 다수의 기능 서비스 모듈에 공통적으로 필요한 기반 데이터를 저장하는 공통 데이터베이스, 및 상기 공통 데이터베이스의 관리를 위한 컨테이너 구조의 공통 서비스 모듈을 포함하고, 상기 기능 서비스 모듈은, HTTP(hypertext transfer protocol) 기반의 API(Application Programming Interface)을 이용하여 특정 기능 데이터베이스에 접근 가능하며, 상기 공통 데이터베이스의 기반 데이터는, 별도의 테이블로 구성되어 상기 다수의 기능 데이터베이스에 동기화 저장될 수 있다.A cloud-based microservice provision system according to an embodiment of the present invention includes a plurality of function service modules having a container structure for performing specific functions, a plurality of function databases assigned to each of the plurality of function service modules, and the plurality of function services. It includes a common database for storing basic data commonly required for modules, and a common service module with a container structure for management of the common database, wherein the functional service module is an API (Application Programming Interface) based on HTTP (hypertext transfer protocol). ) can be used to access a specific function database, and the base data of the common database can be configured as a separate table and synchronized and stored in the multiple function databases.

또한, 클라우드 내에서 할당된 영역을 가지며, 데이터 분산 처리를 위한 캐쉬를 제공하는 인메모리 클러스터, 및 상기 인메모리 클러스터를 기반으로 실시간 데이터의 분산 처리를 수행하는 분산 메시지 처리 모듈을 더 포함하며, 상기 분산 메시지 처리 모듈은, 상기 공통 데이터베이스의 기반 데이터를 복제하여 상기 다수의 기능 데이터베이스로 분산 제공하거나, 상기 기반 데이터의 변경 내역을 상기 다수의 기능 데이터베이스로 분산 제공할 수 있다.In addition, it further includes an in-memory cluster that has an allocated area in the cloud and provides a cache for distributed data processing, and a distributed message processing module that performs distributed processing of real-time data based on the in-memory cluster, The distributed message processing module may replicate the base data of the common database and distribute it to the plurality of function databases, or may distribute change details of the base data to the plurality of function databases.

또한, 상기 HTTP 기반의 API는, POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 기능 서비스 모듈이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함할 수 있다.In addition, the HTTP-based API may include any one of HTTP methods including POST, GET, PUT, and DELETE, and a URL (Uniform Resource Locator) of data that the function service module wishes to process. .

또한, 상기 다수의 기능 서비스 모듈의 동작에 따라 발생된 로그 데이터가 상기 분산 메시지 처리 모듈에 의한 발행/구독(Publish/Subscribe) 구조의 메시지 큐(Message Queue)를 통해 상기 다수의 기능 데이터베이스에 분산 저장될 수 있다.In addition, log data generated according to the operation of the plurality of functional service modules is distributed and stored in the plurality of functional databases through a message queue with a publish/subscribe structure by the distributed message processing module. It can be.

또한, 상기 다수의 기능 서비스 모듈 중 적어도 하나는 네트워크 연결된 사용자 단말기의 인증 기능을 수행하는 보안 모듈로 동작하고, 상기 다수의 기능 서비스 모듈 중 적어도 다른 하나는 상기 인메모리 클러스터에 저장된 이벤트 데이터를 정기적으로 상기 기능 데이터베이스에 저장하는 데이터 저장 모듈로 동작하며, 상기 보안 모듈은, 상기 사용자 단말기 별 인증 키를 생성하여 상기 인메모리 클러스터에 저장하고, 상기 사용자 단말기가 상기 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행하며, 상기 사용자 단말기가 접근하고자 하는 상기 이벤트 데이터의 종류에 따라 인증 주기를 상이하게 설정하고, 상기 데이터 저장 모듈은, 상기 이벤트 데이터의 종류에 따라 상기 데이터베이스로의 저장 주기를 상이하게 설정할 수 있다.In addition, at least one of the plurality of function service modules operates as a security module that performs an authentication function of a network-connected user terminal, and at least another one of the plurality of function service modules periodically updates event data stored in the in-memory cluster. It operates as a data storage module that stores in the function database, and the security module generates an authentication key for each user terminal and stores it in the in-memory cluster, and stores the authentication key in the in-memory cluster while the user terminal uses the cloud service. Authentication of the user terminal is periodically performed using a stored authentication key, and the authentication cycle is set differently depending on the type of event data that the user terminal wishes to access, and the data storage module is configured to: Depending on this, the storage cycle in the database can be set differently.

이상 살펴본 바와 같은 본 발명에 따르면, 확장성 및 자율성의 향상이 가능한 클라우드 기반 마이크로 서비스 제공 시스템을 제공할 수 있다.According to the present invention as described above, it is possible to provide a cloud-based microservice provision system capable of improving scalability and autonomy.

또한, 본 발명에 따르면 부하 분산 처리가 가능한 클라우드 기반 마이크로 서비스 제공 시스템을 제공할 수 있다.Additionally, according to the present invention, a cloud-based microservice provision system capable of load distribution processing can be provided.

도 1은 본 발명의 실시예에 의한 클라우드 기반 마이크로 서비스 제공 시스템과 사용자 단말기의 연결 관계를 나타낸 도면이다.
도 2a는 기존의 가상머신 계층도이고, 도 2b는 본 발명의 실시예에 의한 컨테이너 계층도이다.
도 3은 본 발명의 실시예에 의한 클라우드 기반 마이크로 서비스 제공 시스템의 아키텍쳐(Architecture)를 나타낸 도면이다.
도 4는 기존 애플리케이션의 분산처리 방식을 나타낸 도면이다.
도 5는 본 발명의 실시예에 의한 서비스 및 데이터베이스 구성 방식을 나타낸 도면이다.
도 6은 본 발명의 실시예에 의한 클라우드 기반 마이크로 서비스 제공 시스템의 구성 방식을 나타낸 도면이다.
도 7은 본 발명의 실시예에 의한 데이터베이스 동기화를 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 의한 분산 메시지 처리 모듈의 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 실시예에 의한 인메모리 클러스터를 나타낸 도면이다.
도 10은 본 발명의 실시예에 의한 공통 데이터베이스에 대한 접근 방안을 나타낸 도면이다.
도 11은 본 발명의 실시예에 의한 사용자 클라이언트 및 뷰 환경의 데이터 접근 방안을 나타낸 도면이다.
Figure 1 is a diagram showing the connection relationship between a cloud-based microservice provision system and a user terminal according to an embodiment of the present invention.
Figure 2a is a hierarchy diagram of an existing virtual machine, and Figure 2B is a hierarchy diagram of a container according to an embodiment of the present invention.
Figure 3 is a diagram showing the architecture of a cloud-based microservice provision system according to an embodiment of the present invention.
Figure 4 is a diagram showing the distributed processing method of an existing application.
Figure 5 is a diagram showing a service and database configuration method according to an embodiment of the present invention.
Figure 6 is a diagram showing a configuration method of a cloud-based microservice provision system according to an embodiment of the present invention.
Figure 7 is a diagram for explaining database synchronization according to an embodiment of the present invention.
Figure 8 is a diagram for explaining the operation of a distributed message processing module according to an embodiment of the present invention.
Figure 9 is a diagram showing an in-memory cluster according to an embodiment of the present invention.
Figure 10 is a diagram showing an access method to a common database according to an embodiment of the present invention.
Figure 11 is a diagram showing a data access method of a user client and view environment according to an embodiment of the present invention.

이하에서는 본 발명과 관련된 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 구체적으로 설명하고자 한다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Hereinafter, embodiments related to the present invention will be illustrated in the drawings and described in detail through detailed description. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention. .

본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 본 명세서에서, 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. "연결", "결합" 또는 "접속"의 경우, 물리적으로 "연결", "결합" 또는 "접속"되는 것뿐만 아니라 필요에 따라 전기적으로 "연결", "결합" 또는 "접속"되는 것으로 이해될 수 있다. In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the component is not limited by the term. Additionally, in this specification, when a component is described as being “connected,” “coupled,” or “connected” to another component, the component may be directly connected or connected to the other component, but each component It should be understood that another component may be “connected,” “coupled,” or “connected” between elements. In the case of “connection”, “coupling” or “connection”, it is understood as being physically “connected”, “coupled” or “connected” as well as being electrically “connected”, “coupled” or “connected” as required. It can be.

본 명세서에 기재된 "~부(유닛)", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 본 명세서에 기재된 "포함하다", "구성하다" 또는 "가지다" 등의 용어는, 특별히 반대되는 기재가 없는 한, 해당 구성 요소가 내재될 수 있음을 의미하는 것이므로, 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것으로 해석되어야 한다.Terms such as “unit (unit),” “unit,” “character,” and “module” used in this specification refer to a unit that processes at least one function or operation, which is hardware, software, or hardware. and software. In addition, terms such as “include,” “comprise,” or “have” used in this specification mean that the corresponding component may be included, unless specifically stated to the contrary, and thus exclude other components. It should be interpreted as being able to include other components.

그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주 기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. In addition, it is intended to be clear that the division of components in this specification is merely a division according to the main function each component is responsible for. That is, two or more components, which will be described below, may be combined into one component, or one component may be divided into two or more components for more detailed functions. In addition to the main functions it is responsible for, each of the components described below may additionally perform some or all of the functions handled by other components, and some of the main functions handled by each component may be performed by other components. Of course, it can also be carried out exclusively by .

이하, 본 발명의 실시예들과 관련된 도면들을 참고하여, 본 발명의 실시예에 의한 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템에 대해 설명하도록 한다.Hereinafter, a cloud system with a cloud native database structure according to an embodiment of the present invention will be described with reference to drawings related to embodiments of the present invention.

도 1은 본 발명의 실시예에 의한 클라우드 시스템과 사용자 단말기의 연결 관계를 나타낸 도면이다.Figure 1 is a diagram showing the connection relationship between a cloud system and a user terminal according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 의한 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템(100, 이하 클라우드 시스템)은 다수의 사용자 단말기(10)와 네트워크 연결될 수 있으며, 이를 통하여 다양한 클라우드 서비스를 사용자에게 제공할 수 있다. Referring to FIG. 1, a cloud system 100 (hereinafter referred to as a cloud system) having a cloud native database structure according to an embodiment of the present invention can be connected to a network with a plurality of user terminals 10, and through this, various cloud services can be provided to users. can be provided.

여기서, 네트워크는 단말 및 서버와 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 네트워크의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, 5G, LTE, Wi-Fi 등이 포함되나 이에 한정되지는 않는다.Here, the network refers to a connection structure that allows information exchange between nodes such as terminals and servers. Examples of such networks include the Internet, LAN (Local Area Network), and Wireless LAN (Wireless Local Area). Network), WAN (Wide Area Network), PAN (Personal Area Network), 3G, 4G, 5G, LTE, Wi-Fi, etc., but are not limited to these.

최근 다양한 분야에서 생성되는 데이터들은 데이터의 크기와 종류로 인해 클라우드 컴퓨팅 환경을 도입하고 있으며, 특히 소프트웨어의 경우 대부분 클라우드 환경을 기반으로 하는 서비스 형태로 배포되고 있다. Recently, data generated in various fields is being adopted in a cloud computing environment due to the size and type of data. In particular, most of the software is distributed as a service based on the cloud environment.

또한, 대화형 메신저, 포털(Portal), 지식 블로그 등과 같은 서비스 역시 클라우드 환경을 기반으로 하여 제공되고 있다. Additionally, services such as interactive messengers, portals, and knowledge blogs are also provided based on the cloud environment.

사용자 단말기(10)는 네트워크를 통해 클라우드 시스템(100)에 접속할 수 있으며, 이를 통해 사용자는 클라우드 시스템(100)이 제공하는 다양한 클라우드 서비스를 이용할 수 있다. The user terminal 10 can access the cloud system 100 through a network, and through this, the user can use various cloud services provided by the cloud system 100.

또한, 사용자 단말기(10)는 클라우드 시스템(100)과 연결되는 통신 기능과 이미지나 텍스트를 출력할 수 있는 디스플레이 기능을 갖춘 장치라면 특별히 한정되지 않는다. 예를 들어, 사용자 단말기(10)는, 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 태블릿(tablet) PC, 무선전화기(wireless phone), 모바일폰(mobile phone), 스마트폰(smart phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), 웨어러블 장치(wearable device) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.Additionally, the user terminal 10 is not particularly limited as long as it has a communication function connected to the cloud system 100 and a display function capable of outputting images or text. For example, the user terminal 10 may be a desktop computer, a laptop computer, a tablet PC, a wireless phone, a mobile phone, or a smart phone. ), smart watch, smart glass, wearable device, etc., but is not limited thereto.

도 2a는 기존의 가상머신 계층도이고, 도 2b는 본 발명의 실시예에 의한 컨테이너 계층도이다. Figure 2a is a hierarchy diagram of an existing virtual machine, and Figure 2b is a hierarchy diagram of a container according to an embodiment of the present invention.

클라우드를 구성하는 기존의 전통적인 방식인 서버 가상화 기술은 하이퍼바이저를 통한 가상머신 생성을 통해 구현되어 왔다. 도 2a를 참조하면, 가상머신은 하나의 컴퓨터이기 때문에 호스트 OS와 하이퍼바이저 위에 항상 게스트 OS를 설치해야 한다. 따라서, 이미지 안에 OS가 포함되기 때문에 이미지 용량이 커지는 단점이 있을 뿐만 아니라 가상화 이미지를 인터넷을 통해 전송하기 위해서는 많은 트래픽이 유발되는 문제가 있다. 특히, 가상머신은 OS를 가상화하는 것에만 초점이 맞춰져 있기 때문에, 이미지를 생성하고 실행하는 기능만 있을 뿐 배포와 관리 기능은 부족하다.Server virtualization technology, the existing traditional method of forming a cloud, has been implemented through the creation of virtual machines through a hypervisor. Referring to Figure 2a, since a virtual machine is a single computer, a guest OS must always be installed on the host OS and hypervisor. Therefore, since the OS is included in the image, not only does the image capacity increase, but there is also the problem of causing a lot of traffic to transmit the virtualized image over the Internet. In particular, since virtual machines focus only on virtualizing the OS, they only have the ability to create and run images and lack deployment and management functions.

그에 반해, 도 2b에 도시된 바와 같이 컨테이너는 가상머신에 비해 상대적으로 경량화된 계층 구조를 갖는데, 이러한 컨테이너에는 호스트 OS 위에 컨테이너 엔진만 존재할 뿐 별도의 게스트 OS가 존재하지 않는다. 따라서, 컨테이너에 설치되는 이미지에 서버 운영을 위한 프로그램과 라이브러리만 격리해서 설치할 수 있으며, OS 자원은 호스트 OS와 공유하는 방법으로 이미지 용량을 크게 줄일 수 있다. 또한, 컨테이너는 가상머신과 달리 하드웨어를 가상화하는 계층이 별도로 없기 때문에 메모리 접근, 파일시스템 및 네트워크 속도가 가상머신에 비해 상대적으로 빠른 장점을 가질 수 있다.On the other hand, as shown in Figure 2b, containers have a relatively lightweight hierarchical structure compared to virtual machines. These containers only have a container engine on the host OS and do not have a separate guest OS. Therefore, only the programs and libraries for server operation can be installed in isolation in the image installed in the container, and the image capacity can be greatly reduced by sharing OS resources with the host OS. Additionally, unlike virtual machines, containers do not have a separate layer to virtualize hardware, so they can have the advantage of relatively faster memory access, file system, and network speeds compared to virtual machines.

도 3은 본 발명의 실시예에 의한 클라우드 시스템의 아키텍쳐(Architecture)를 나타낸 도면이다. Figure 3 is a diagram showing the architecture of a cloud system according to an embodiment of the present invention.

클라우드 시스템(100)은 컨테이너 기반으로 설계되어 다양한 서버 환경 및 웹 기반의 애플리케이션(Application)을 지원하는 시스템으로, 도 3에 도시된 형태의 아키텍쳐 환경을 보유하고 있다. The cloud system 100 is a system designed based on containers to support various server environments and web-based applications, and has an architectural environment of the type shown in FIG. 3.

즉, 클라우드 시스템(100)은 컨테이너가 배포되는 가상 또는 물리 머신인 워커 노드(Worker Node), 워커 노드 전체를 관리하는 관리 노드(또는 마스터 노드(Master Node)), 및 컨테이너 이미지가 저장되는 컨테이너 레파지토리(Container Repository)로 이루어진다. That is, the cloud system 100 includes a worker node, which is a virtual or physical machine on which containers are deployed, a management node (or master node) that manages all worker nodes, and a container repository where container images are stored. (Container Repository).

또한, 각 워커 노드는 하나 또는 다수의 컨테이너 애플리케이션을 포함하며, 같은 워커 노드에 속한 컨테이너들은 서로 로컬 통신이 가능하고 디스크 자원도 공유할 수 있다. Additionally, each worker node includes one or multiple container applications, and containers belonging to the same worker node can communicate locally with each other and share disk resources.

관리 노드는 클라우드 시스템의 설정 환경을 저장하고, 워커 노드로 이루어진 클러스터 전체에 대한 관리를 수행할 수 있다. 이를 위하여, 관리 노드는 네트워크 프록시(Network Proxy), API 서버(API Server), 제어 관리기(Controller Manager), 이벤트 관리기(Event Manager), 스케줄러(Scheduler)를 포함할 수 있다.The management node stores the configuration environment of the cloud system and can manage the entire cluster consisting of worker nodes. For this purpose, the management node may include a network proxy, an API server, a control manager, an event manager, and a scheduler.

네트워크 프록시는 컴퓨터 네트워크에서 다른 서버 상의 자원을 찾는 클라이언트로부터 요청을 받아 중계하며, 이를 통해 분산 시스템의 구조를 단순화하고 캡슐화하여 서비스의 복잡도를 줄이는 역할을 한다.A network proxy receives and relays requests from clients seeking resources on other servers in a computer network. Through this, it simplifies and encapsulates the structure of the distributed system, reducing the complexity of the service.

API 서버는 사용자로부터의 요청이나 노드 간의 통신을 담당하고, 스케줄러는 컨테이너(또는 포드(Pod))의 배포 및 서비스에 필요한 리소스를 적절한 노드에 할당한다. The API server is responsible for requests from users and communication between nodes, and the scheduler allocates resources required for deployment and service of containers (or pods) to appropriate nodes.

또한, 제어 관리기는 컨테이너(또는 포드)의 저장 공간 조절, 동적으로 추가 또는 삭제되는 컨테이너(또는 포드)에 대한 라벨(Label) 할당, 복제, 여러 컨테이너(포드)의 그룹핑 서비스 시 로드 밸런싱 등을 관리하며, 이벤트 관리기는 클라우드 시스템 내에서 특정 상황(또는 이벤트) 발생 시 이를 관리자 단말기로 통지하는 역할을 수행한다. In addition, the control manager manages storage space for containers (or pods), label assignment for dynamically added or deleted containers (or pods), replication, and load balancing when grouping multiple containers (pods). In addition, the event manager plays the role of notifying the administrator terminal when a specific situation (or event) occurs within the cloud system.

워커 노드는 관리 노드에 의해 명령을 받고 실제 작업을 수행하는 서비스 컴포넌트로, 적어도 하나 이상의 컨테이너 애플리케이션을 보유할 수 있다.A worker node is a service component that receives commands from a management node and performs actual work, and can have at least one container application.

도 4는 기존 애플리케이션의 분산처리 방식을 나타낸 도면이고, 도 5는 본 발명의 실시예에 의한 서비스 및 데이터베이스 구성 방식을 나타낸 도면이다.Figure 4 is a diagram showing a distributed processing method of an existing application, and Figure 5 is a diagram showing a service and database configuration method according to an embodiment of the present invention.

도 4를 참조하면, 기존 애플리케이션은 사용자 클라이언트(client) 및 뷰(View) 환경, 컨트롤러 레벨(Controller Level), 서비스 레벨(Service Level), DAO(Data Access Object), 데이터베이스(DB)로 구성된다. 이러한 종래 애플리케이션의 경우 L4 등과 같은 로드밸런서(Load Balancer)를 통해 부하(Load)에 대한 분산 처리를 수행하였다. Referring to Figure 4, the existing application consists of a user client and view environment, controller level, service level, DAO (Data Access Object), and database (DB). In the case of these conventional applications, distributed processing of the load was performed through a load balancer such as L4.

그러나 기존의 분산 처리 방식은 데이터의 특성을 고려하지 않고 데이터베이스를 단순히 중복 구성한 것에 불과하며, 또한 각 애플리케이션이 공통적으로 활용하는 데이터는 분할될 수밖에 없다. However, the existing distributed processing method simply duplicates the database without considering the characteristics of the data, and the data commonly used by each application is inevitably divided.

도 5를 참조하면, 상술한 문제를 해결하기 위하여 본 발명은 마이크로 서비스를 먼저 기능 단위로 세분화하고, 관련 기능에 따라 데이터를 분리하는 과정을 수행한다. Referring to Figure 5, in order to solve the above-mentioned problem, the present invention first subdivides microservices into functional units and performs a process of separating data according to related functions.

즉, 각 서비스를 분리한 후 공통 및 기준 서비스와 개별 마이크로 서비스를 각각 구성하고, 분리된 데이터간 연결방안을 구축하여 전체 서비스를 구성하도록 한다. In other words, after separating each service, common and standard services and individual micro services are configured respectively, and a connection method between separated data is established to configure the entire service.

또한, 데이터베이스에 대한 접근을 각 서비스 모듈을 통한 HTTP(hypertext transfer protocol) 기반의 API(Application Programming Interface)를 활용하도록 한다. In addition, access to the database is done using an API (Application Programming Interface) based on HTTP (hypertext transfer protocol) through each service module.

도 6은 본 발명의 실시예에 의한 클라우드 시스템의 구성 방식을 나타낸 도면이고, 도 7은 본 발명의 실시예에 의한 데이터베이스 동기화를 설명하기 위한 도면이다. FIG. 6 is a diagram showing a configuration method of a cloud system according to an embodiment of the present invention, and FIG. 7 is a diagram illustrating database synchronization according to an embodiment of the present invention.

도 6 및 도 7을 참조하면, 본 발명의 실시예에 의한 클라우드 시스템(100)은 다수의 서비스 모듈(131, 132), 다수의 데이터베이스(151, 152), 및 인메모리 클러스터(120)를 포함할 수 있다. Referring to FIGS. 6 and 7, the cloud system 100 according to an embodiment of the present invention includes a plurality of service modules 131 and 132, a plurality of databases 151 and 152, and an in-memory cluster 120. can do.

서비스 모듈(131, 132)은 각각 특정 기능을 수행하기 위하여 세분화된 컨테이너 구조의 모듈로서, 네트워크 연결된 사용자 단말기(10)로 다양한 클라우드 서비스를 제공할 수 있다. The service modules 131 and 132 are modules with a granular container structure to perform specific functions, respectively, and can provide various cloud services to the network-connected user terminal 10.

예를 들어, 서비스 모듈(131, 132)은 적어도 하나의 공통 서비스 모듈(131)과 다수의 기능 서비스 모듈(132)을 포함할 수 있다. For example, the service modules 131 and 132 may include at least one common service module 131 and a plurality of functional service modules 132.

공통 서비스 모듈(131)은 다수의 서비스 모듈(131, 132) 중 공통 데이터베이스(151)의 관리를 수행하는 모듈로, 공통 데이터베이스(151)에 대응하여 설치될 수 있다. The common service module 131 is a module that manages the common database 151 among the plurality of service modules 131 and 132, and may be installed in response to the common database 151.

또한, 공통 서비스 모듈(131)은 공통 데이터베이스(151)에 저장된 기반 데이터의 관리를 담당하며, 기능 서비스 모듈(132)로부터 기반 데이터에 대한 접근 요청이 있는 경우 해당 기반 데이터에 접근이 가능하도록 하는 HTTP 기반의 API를 상기 기능 서비스 모듈(132)로 제공할 수 있다. In addition, the common service module 131 is responsible for managing the base data stored in the common database 151, and provides HTTP to enable access to the base data when there is a request for access to the base data from the function service module 132. Based API can be provided through the function service module 132.

기능 서비스 모듈(132)은 서비스 모듈(131, 132) 중 공통 서비스 모듈(131)을 제외한 모듈로서, 각각 세분화된 특정 기능을 수행할 수 있다. The functional service module 132 is a module excluding the common service module 131 among the service modules 131 and 132, and can each perform a specific, segmented function.

예를 들어, 기능 서비스 모듈(132)은 사용자 단말기(10)에 대한 인증을 수행하는 보안 모듈, 대화형 메신저 서비스와 관련된 단체 메시지 모듈, 메시지 지연에 대한 처리 모듈, 외부 모바일 알림 메시지 모듈, PC 메시지 모듈 등으로 설정될 수 있다.For example, the functional service module 132 includes a security module that performs authentication for the user terminal 10, a group message module related to the interactive messenger service, a processing module for message delay, an external mobile notification message module, and a PC message. It can be set as a module, etc.

또한, 기능 서비스 모듈(132)은 특정 기능 수행 시 자신과 연관된 기능 데이터베이스(152) 이외의 다른 기능 데이터베이스(152)를 참조하는 경우가 있다.Additionally, when performing a specific function, the function service module 132 may refer to a function database 152 other than the function database 152 associated with itself.

이 경우, 기능 서비스 모듈(132)은 HTTP 기반의 API를 이용하여 특정 기능 데이터베이스(152)에 접근할 수 있다. In this case, the function service module 132 can access the specific function database 152 using an HTTP-based API.

예를 들어, 기능1 서비스 모듈(132)이 기능2 데이터베이스(152)를 참조하고자 하는 경우, 기능1 서비스 모듈(132)은 기능2 서비스 모듈(132)로 기능2 데이터베이스(152)에 대한 접근 요청을 전송할 수 있으며, 기능2 서비스 모듈(132)은 HTTP 기반의 API를 기능1 서비스 모듈(132)로 제공할 수 있다. For example, if the function 1 service module 132 wants to refer to the function 2 database 152, the function 1 service module 132 requests access to the function 2 database 152 to the function 2 service module 132. can be transmitted, and the function 2 service module 132 can provide an HTTP-based API to the function 1 service module 132.

이때, HTTP 기반의 API는 POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 기능1 서비스 모듈(132)이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함할 수 있다.At this time, the HTTP-based API may include any one of the HTTP methods including POST, GET, PUT, and DELETE, and the URL (Uniform Resource Locator) of the data that the function 1 service module 132 wants to process. there is.

이에 따라, 기능1 서비스 모듈(132)은 기능2 서비스 모듈(132)로부터 전달된 API를 이용하여, 기능2 데이터베이스(152)를 대상으로 한 데이터 생성(POST), 데이터 조회(GET), 데이터 수정(PUT), 데이터 삭제(DELETE)를 수행할 수 있다.Accordingly, the function 1 service module 132 uses the API transmitted from the function 2 service module 132 to create data (POST), query data (GET), and modify data targeting the function 2 database 152. (PUT) and data deletion (DELETE) can be performed.

한편, 도 6에서는 기능 서비스 모듈(132)이 컨트롤러 레벨, 서비스 레벨, DAO, 서비스 레벨(Service Level), DAO(Data Access Object)로 이루어지고, 각 기능 서비스 모듈(132)에 기능 데이터베이스(152)가 연관 설치되는 경우를 도시하였다. Meanwhile, in FIG. 6, the function service module 132 consists of a controller level, service level, DAO, service level, and DAO (Data Access Object), and each function service module 132 includes a function database 152. A case where is installed in conjunction is shown.

다만, 기능 서비스 모듈(132)의 형태는 변화될 수 있다. 예를 들어, 기능 서비스 모듈(132)에 연관된 기능 데이터베이스(152)가 존재하지 않는 경우, 해당 기능 서비스 모듈(132)은 서비스 레벨만으로 구성될 수 있다. 또한, 기능 서비스 모듈(132)의 서비스 레벨이 생략될 수 있으며, 이 경우 해당 기능 서비스 모듈(132)은 컨트롤러 레벨과 연관 기능 데이터베이스(152)에 액세스를 위한 DAO로 구성될 수 있다. However, the form of the functional service module 132 may change. For example, if the function database 152 associated with the function service module 132 does not exist, the function service module 132 may be configured with only a service level. Additionally, the service level of the function service module 132 may be omitted, and in this case, the function service module 132 may be configured as a DAO for accessing the controller level and the related function database 152.

데이터베이스(151, 152)는 비휘발성 메모리(non-volatile memory) 등의 자원을 기반으로 이루어질 수 있다. 인메모리 클러스터(120)에 저장된 데이터들은 주기적으로 데이터베이스(151, 152)에 저장될 수 있다.The databases 151 and 152 may be based on resources such as non-volatile memory. Data stored in the in-memory cluster 120 may be periodically stored in the databases 151 and 152.

또한, 데이터베이스(151, 152)는 서비스 모듈(131, 132)과 연관되어 배치될 수 있으며, 각 서비스 모듈(131, 132)과 관련된 데이터를 저장하는 역할을 수행할 수 있다.Additionally, the databases 151 and 152 may be arranged in relation to the service modules 131 and 132, and may serve to store data related to each service module 131 and 132.

예를 들어, 데이터베이스(151, 152)는 적어도 하나의 공통 데이터베이스(151)와 다수의 기능 데이터베이스(152)를 포함할 수 있다. For example, the databases 151 and 152 may include at least one common database 151 and multiple functional databases 152.

공통 데이터베이스(151)는 다수의 데이터베이스(151, 152) 중 공통 서비스 모듈(131)에 대응하여 설치되는 데이터베이스로, 다수의 기능 서비스 모듈(132)에 공통적으로 필요한 기반 데이터를 저장할 수 있다. The common database 151 is a database installed corresponding to the common service module 131 among the plurality of databases 151 and 152, and can store base data commonly required for the plurality of functional service modules 132.

기능 데이터베이스(152)는 다수의 데이터베이스(151, 152) 중 기능 서비스 모듈(132)별로 대응 설치되는 데이터베이스로, 상기 다수의 기능 서비스 모듈(132)에 할당된 특정 기능을 수행하기 위하여 필요한 데이터를 저장할 수 있다. The function database 152 is a database installed correspondingly to each function service module 132 among the plurality of databases 151 and 152, and stores data necessary to perform a specific function assigned to the plurality of function service modules 132. You can.

즉, 기능 데이터베이스(152)는 다수의 기능 서비스 모듈(132)과 일대일 대응하도록 배정될 수 있으며, 공통 데이터베이스(151)로부터 기반 데이터를 전달받아 저장할 수 있다.That is, the function database 152 can be assigned to correspond one-to-one with a plurality of function service modules 132, and can receive and store base data from the common database 151.

예를 들어, 기반 데이터는 기능 서비스 모듈(132)에서 공통적으로 필요로 하는 사용자(고객) 정보, 구성원 정보, 상담원 정보, 협력사 정보, 조직 정보, 통계 정보, 시스템 정보 등을 포함할 수 있으며, 이러한 기반 데이터는 별도의 테이블로 구성될 수 있다.For example, the base data may include user (customer) information, member information, agent information, partner information, organization information, statistical information, system information, etc. commonly required by the functional service module 132. The underlying data may be organized into separate tables.

기능 데이터베이스(152)에는 상기 기반 데이터와 함께 기능 서비스 모듈(132)의 특정 기능(또는 서비스)를 구현하기 위한 별도의 기능 데이터가 저장될 수 있다. In the function database 152, separate function data for implementing a specific function (or service) of the function service module 132 may be stored along with the base data.

다만, 다수의 기능 서비스 모듈(132)이 필요로 하는 기반 데이터가 하나 또는 소수의 공통 데이터베이스(151)에만 저장되어 있는 경우, 기반 데이터에 대한 대량의 요청 발생 시 공통 데이터베이스(151)의 펜딩(Pending)이 일어나게 된다. 이러한 펜딩 현상은 동시에 접속한 DB 트랜젝션(transaction)이 한계를 초과하면 더 이상의 트랜젝션을 거부하고 추가적인 요청을 거부하는 형태를 말한다.However, if the base data required by the multiple function service modules 132 is stored in only one or a small number of common databases 151, the common database 151 is pending when a large number of requests for the base data occur. ) will occur. This pending phenomenon refers to a form in which further transactions are rejected and additional requests are rejected when simultaneously connected DB transactions exceed the limit.

이에 따라, 별도의 테이블로 구성되어 공통 데이터베이스(151)에 저장되어 있는 기반 데이터를 각 기능 데이터베이스(152)에 동기화 저장되도록 할 수 있다.Accordingly, the base data composed of separate tables and stored in the common database 151 can be synchronized and stored in each function database 152.

즉, 데이터베이스(151, 152)를 공통 및 기준이 되는 기반 데이터를 저장하는 공통 데이터베이스(151)와 각 기능 서비스 모듈(132) 별로 배정되는 기능 데이터베이스(152)로 재구성함과 동시에, 공통 데이터베이스(151)의 기반 데이터를 각 기능 데이터베이스(152)에 동기화 저장함으로써 데이터베이스(151, 152)에 대한 부하 분산이 가능하도록 구현하였다. 이에 따라, 대규모의 사용자가 동시 접속하여도 성능 저하 등의 문제가 발생하지 않는 클라우드 시스템(100)을 제공할 수 있다. That is, the databases 151 and 152 are reorganized into a common database 151 that stores common and standard base data and a functional database 152 assigned to each functional service module 132, and the common database 151 ) was implemented to enable load distribution on the databases 151 and 152 by synchronizing and storing the base data in each function database 152. Accordingly, it is possible to provide a cloud system 100 in which problems such as performance degradation do not occur even when a large number of users access simultaneously.

인메모리 클러스터(120)는 컨테이너 기반으로 인증 키 및 이벤트 데이터를 저장할 수 있으며, 분산 메시지 처리 모듈(160)의 데이터 분산 처리를 위한 저장 공간을 제공할 수 있다. 이러한 인메모리 클러스터(120)는 클라우드 내에서 할당된 영역을 가지며, 캐시(Cache) 및 램(RAM) 메모리 등과 같은 휘발성 메모리(volatile memory) 자원을 기반으로 이루어질 수 있다. The in-memory cluster 120 can store authentication keys and event data on a container basis, and can provide storage space for distributed data processing by the distributed message processing module 160. This in-memory cluster 120 has an allocated area within the cloud and may be based on volatile memory resources such as cache and RAM memory.

즉, 인메모리 클러스터(120)는 인증 키 및 이벤트 데이터의 저장 및 데이터 분산 처리에 활용될 수 있는 캐쉬(Cache)를 제공하며, 이를 통하여 보다 쾌적하고 향상된 속도의 클라우드 서비스를 사용자에게 제공할 수 있다.In other words, the in-memory cluster 120 provides a cache that can be used to store authentication keys and event data and distribute data, and through this, a more comfortable and faster cloud service can be provided to users. .

인증 키는 클라우드 시스템(100)을 이용하고자 하는 사용자의 인증을 위하여 사용되며, 이벤트 데이터는 기능 서비스 모듈(132)에 의한 클라우드 서비스의 제공을 위하여 필요한 데이터 및 클라우드 서비스의 제공 시 발생되는 데이터의 집합을 의미한다. The authentication key is used to authenticate the user who wants to use the cloud system 100, and the event data is a set of data required to provide cloud services by the function service module 132 and data generated when providing cloud services. means.

또한, 이벤트 데이터는 그 속성에 따라 보안등급이 다르게 설정될 수 있다. 예를 들어, 보안의 중요도가 높은 개인정보, 기업 영업비밀 등은 보안등급이 높게 설정될 수 있으며, 클라우드 서비스 이용시 발생되는 부수적인 정보들은 보안등급이 낮게 설정될 수 있다. Additionally, event data may have different security levels depending on its properties. For example, personal information and corporate trade secrets with high security importance may have a high security level, while additional information generated when using cloud services may have a low security level.

즉, 기능 서비스 모듈(132)은 인메모리 클러스터(120)에 저장된 이벤트 데이터를 이용하여 클라우드 서비스를 제공하며, 이에 따라 향상된 속도 및 응답성을 갖는 서비스의 제공이 가능하다.That is, the functional service module 132 provides a cloud service using event data stored in the in-memory cluster 120, and thus it is possible to provide a service with improved speed and responsiveness.

인메모리 클러스터(120)에 저장된 이벤트 데이터는 정기적으로 기능 데이터베이스(152)에 분산 저장될 수 있다. 예를 들어, 다수의 기능 서비스 모듈(132) 중 적어도 하나는 데이터 저장 모듈로 설정될 수 있으며, 상기 데이터 저장 모듈은 인메모리 클러스터(120)에 저장된 이벤트 데이터를 정기적으로 해당 기능 데이터베이스(152)에 저장할 수 있다.Event data stored in the in-memory cluster 120 may be regularly distributed and stored in the function database 152. For example, at least one of the plurality of function service modules 132 may be set as a data storage module, and the data storage module regularly stores event data stored in the in-memory cluster 120 in the corresponding function database 152. You can save it.

특히, 데이터 저장 모듈(132)은 이벤트 데이터의 종류에 따라 저장 주기를 상이하게 설정할 수 있다. 예를 들어, 데이터 저장 모듈(132)은 보안등급이 높은 이벤트 데이터의 경우 저장 주기를 짧게 설정할 수 있으며, 보안등급이 상대적으로 낮은 이벤트 데이터의 경우에는 저장 주기를 상대적으로 길게 설정할 수 있다.In particular, the data storage module 132 may set the storage cycle differently depending on the type of event data. For example, the data storage module 132 can set the storage cycle to be short for event data with a high security level, and set the storage cycle to be relatively long for event data with a relatively low security level.

한편, 다수의 기능 서비스 모듈(132) 중 적어도 하나는 네트워크 연결된 사용자 단말기(10)의 인증 기능을 수행하는 보안 모듈로 동작할 수 있다. Meanwhile, at least one of the plurality of function service modules 132 may operate as a security module that performs an authentication function of the network-connected user terminal 10.

이 경우, 해당 보안 모듈은 컨테이너 구조를 가지며, 사용자의 로그인 및 인증 절차를 수행할 수 있다. 예를 들어, 보안 모듈은 네트워크 연결된 사용자 단말기(10)를 대상으로 로그인 인터페이스를 제공할 수 있으며, 로그인 절차가 완료된 사용자 단말기(10)를 대상으로 주기적인 인증을 수행할 수 있다. In this case, the security module has a container structure and can perform user login and authentication procedures. For example, the security module may provide a login interface for network-connected user terminals 10 and may perform periodic authentication for user terminals 10 for which the login procedure has been completed.

예를 들어, 보안 모듈은 로그인 절차가 완료된 사용자 단말기(10)에 대하여 각각 상이한 인증 키를 생성 및 부여할 수 있으며, 이러한 사용자 단말기(10) 별 인증 키를 인메모리 클러스터(120)에 저장할 수 있다. For example, the security module can generate and grant a different authentication key to each user terminal 10 for which the login procedure has been completed, and the authentication key for each user terminal 10 can be stored in the in-memory cluster 120. .

또한, 보안 모듈은 사용자 단말기(10)가 클라우드 시스템(100)이 제공하는 클라우드 서비스를 이용하는 동안 인메모리 클러스터(120)에 저장된 인증 키를 이용하여 사용자 단말기(10)의 인증을 주기적으로(예를 들어, 5초 간격) 수행할 수 있다. In addition, the security module periodically authenticates the user terminal 10 using the authentication key stored in the in-memory cluster 120 while the user terminal 10 uses the cloud service provided by the cloud system 100 (for example, For example, 5 second intervals).

일례로, 보안 모듈이 부여한 인증 키는 사용자 단말기(10)에도 저장될 수 있으며, 보안 모듈은 사용자 단말기(10)로부터 주기적으로 인증 키를 전달받아 이를 인메모리 클러스터(120)에 저장된 인증 키와 비교함으로써 인증 절차를 진행할 수 있다. 즉, 사용자 단말기(10)로부터 전송된 인증 키가 인메모리 클러스터(120)에 저장된 인증 키와 동일한 경우 인증에 성공한 것으로 판단하여 사용자의 클라우드 서비스의 이용을 지속적으로 허가하며, 사용자 단말기(10)로부터 전송된 인증 키가 인메모리 클러스터(120)에 저장된 인증 키와 상이한 경우 인증에 실패한 것으로 판단하여 사용자의 클라우드 서비스의 이용을 차단할 수 있다. For example, the authentication key granted by the security module may also be stored in the user terminal 10, and the security module periodically receives the authentication key from the user terminal 10 and compares it with the authentication key stored in the in-memory cluster 120. By doing so, you can proceed with the authentication process. That is, if the authentication key transmitted from the user terminal 10 is the same as the authentication key stored in the in-memory cluster 120, the authentication is determined to be successful and the user's use of the cloud service is continuously permitted, and the user terminal 10 If the transmitted authentication key is different from the authentication key stored in the in-memory cluster 120, it is determined that authentication has failed and the user's use of the cloud service can be blocked.

특히, 보안 모듈(131)은 사용자 단말기(10)가 접근하고자 하는 이벤트 데이터의 종류에 따라 인증 주기를 상이하게 설정할 수 있다. 예를 들어, 특정 사용자가 보안등급이 높은 이벤트 데이터에 접근하고자 하는 경우, 인증 주기를 짧게 설정할 수 있으며, 특정 사용자가 보안등급이 상대적으로 낮은 이벤트 데이터에 접근하고자 하는 경우에는 인증 주기를 상대적으로 길게 설정할 수 있다.In particular, the security module 131 may set the authentication cycle differently depending on the type of event data that the user terminal 10 wishes to access. For example, if a specific user wants to access event data with a high security level, the authentication cycle can be set short, and if a specific user wants to access event data with a relatively low security level, the authentication cycle can be set relatively long. You can set it.

사용자 단말기(10)의 접속이 종료된 경우 보안 모듈은 인메모리 클러스터(120)에 저장된 사용자 단말기(10)의 인증 키를 삭제할 수 있으며, 추후 사용자 단말기(10)가 재접속하는 경우 앞서 설명한 로그인 절차 및 인증 절차를 다시 수행할 수 있다. When the connection of the user terminal 10 is terminated, the security module can delete the authentication key of the user terminal 10 stored in the in-memory cluster 120, and when the user terminal 10 reconnects later, the above-described login procedure and You can perform the authentication process again.

보안 모듈은 인메모리 클러스터(120)에 저장된 인증 키를 기반으로 인증 절차를 수행하므로, 기존 대비 향상된 속도를 갖는 인증 동작을 수행할 수 있다. Since the security module performs an authentication procedure based on the authentication key stored in the in-memory cluster 120, authentication operations can be performed with improved speed compared to the existing method.

또한, 다수의 기능 서비스 모듈(132) 중 적어도 하나는 보안 모듈 또는 다른 기능 서비스 모듈(132)에 대한 스케일링(Scaling)을 수행하는 관리 모듈로 동작할 수 있다. Additionally, at least one of the plurality of function service modules 132 may operate as a security module or a management module that performs scaling for other function service modules 132.

스케일링은 다수의 사용자 접속 등에 의해 발생되는 부하를 분산시키기 위한 것으로, 발생 부하에 대응하여 해당 모듈(132)의 개수를 조절하는 기능을 의미한다. 예를 들어, 사용자 단말기(10)의 세션 수 및/또는 사용자 단말기(10)에 의해 발생되는 트래픽에 대응하여 해당 모듈(132)의 수를 증가시키거나 감소시킬 수 있다.Scaling is intended to distribute the load generated by multiple user connections, etc., and refers to the function of adjusting the number of modules 132 in response to the generated load. For example, the number of modules 132 may be increased or decreased in response to the number of sessions of the user terminal 10 and/or traffic generated by the user terminal 10.

한편, 서비스 모듈(131, 132)은 각각 컨테이너 구조를 갖기 때문에, 이러한 컨테이너 구조의 서비스 모듈(131, 132)에 대한 복제 및 관리가 용이하다. Meanwhile, since the service modules 131 and 132 each have a container structure, it is easy to replicate and manage the service modules 131 and 132 of this container structure.

즉, 관리 모듈(140)은 서비스 모듈(131, 132)의 부하 분산을 위하여 서비스 모듈(131, 132)의 스케일링을 수행할 수 있다. 구체적으로, 관리 모듈(140)은 사용자 단말기(10)에 의해 발생되는 트래픽에 대응하여 서비스 모듈(131, 132)의 개수를 조절할 수 있다. That is, the management module 140 may perform scaling of the service modules 131 and 132 to distribute the load of the service modules 131 and 132. Specifically, the management module 140 may adjust the number of service modules 131 and 132 in response to traffic generated by the user terminal 10.

예를 들어, 대규모의 사용자 단말기(10)가 클라우드 시스템(100)에 추가 접속되는 경우, 특정 기능 서비스 모듈(예를 들어, 보안 모듈)의 부하가 급격히 증가하여 인증 절차 및 서비스 이용이 지연될 수 있다. For example, when a large number of user terminals 10 are additionally connected to the cloud system 100, the load on a specific function service module (for example, a security module) increases rapidly, which may delay the authentication process and service use. there is.

이러한 문제점을 해결하기 위하여, 관리 모듈(140)은 사용자 단말기(10)에 의한 트래픽을 검출하여 검출된 해당 트래픽이 기설정된 기준값을 초과하는 경우 특정 기능 서비스 모듈(예를 들어, 보안 모듈)의 수를 증가시킬 수 있으며, 상기 기준값을 넘는 트래픽 양에 대응하여 특정 기능 서비스 모듈(예를 들어, 보안 모듈)의 증가 개수를 결정할 수 있다. In order to solve this problem, the management module 140 detects traffic by the user terminal 10 and, when the detected traffic exceeds a preset standard value, the number of specific function service modules (e.g., security modules) can be increased, and the number of increased specific function service modules (for example, security modules) can be determined in response to the amount of traffic exceeding the reference value.

도 8은 본 발명의 실시예에 의한 분산 메시지 처리 모듈의 동작을 설명하기 위한 도면이다. Figure 8 is a diagram for explaining the operation of a distributed message processing module according to an embodiment of the present invention.

분산 메시지 처리 모듈(160)은 실시간 데이터의 분산 처리를 수행하는 모듈로, 인메모리 클러스터(120) 기반으로 동작할 수 있다. The distributed message processing module 160 is a module that performs distributed processing of real-time data and can operate based on the in-memory cluster 120.

분산 메시지 처리 모듈(160)은 대용량 실시간 로그 처리 시스템으로서, 발행/구독(Publish/Subscribe) 패러다임을 사용하여 처리하는 메시지 큐잉(message queuing) 시스템으로 정의될 수 있다.The distributed message processing module 160 is a large-capacity real-time log processing system and can be defined as a message queuing system that processes using the publish/subscribe paradigm.

또한, 분산 메시지 처리 모듈(160)은 앞서 설명한 공통 데이터베이스(151)와 기능 데이터베이스(152)의 기반 데이터 동기화를 위하여 사용될 수 있다. Additionally, the distributed message processing module 160 can be used for basic data synchronization of the common database 151 and the functional database 152 described above.

즉, 분산 메시지 처리 모듈(160)은 공통 데이터베이스(151)의 기반 데이터를 복제하여 다수의 기능 데이터베이스(152)로 분산 제공할 수 있으며, 이에 따라 각 기능 데이터베이스(152)는 제공받은 기반 데이터를 저장할 수 있다. That is, the distributed message processing module 160 can replicate the base data of the common database 151 and distribute it to a plurality of function databases 152, and accordingly, each function database 152 can store the provided base data. You can.

대체적으로, 분산 메시지 처리 모듈(160)은 공통 데이터베이스(151)의 기반 데이터의 변경 내역을 다수의 기능 데이터베이스(152)로 분산 제공할 수 있으며, 이에 따라 각 기능 데이터베이스(152)는 제공받은 기반 데이터의 변경 내역을 참조하여 저장된 기반 데이터의 업데이트를 수행할 수 있다.In general, the distributed message processing module 160 may distribute the change history of the base data of the common database 151 to a plurality of function databases 152, and accordingly, each function database 152 may store the provided base data. You can update the stored base data by referring to the change history.

예를 들어, CDC(Change Data Capture) 기술을 기반으로 공통 데이터베이스(151)에 저장된 기반 데이터의 변경 내역을 추출할 수 있다. For example, change history of basic data stored in the common database 151 can be extracted based on CDC (Change Data Capture) technology.

도 8을 참조하면, 분산 메시지 처리 모듈(160)은 공통 데이터베이스(151)의 기반 데이터 변경 여부를 관리하는 커넥터(161), 데이터의 송수신을 위하여 직렬화를 수행하는 데이터 고속처리기(162), 및 직렬화된 데이터의 분산 처리를 실시간으로 수행하는 실시간 메시징 큐(163)를 포함할 수 있다. Referring to FIG. 8, the distributed message processing module 160 includes a connector 161 that manages whether the base data of the common database 151 has been changed, a data high-speed processor 162 that performs serialization for sending and receiving data, and a serialization It may include a real-time messaging queue 163 that performs distributed processing of distributed data in real time.

이를 통해, 공통 데이터베이스(151)의 기반 데이터 또는 기반 데이터의 변경 내역은 분산 메시지 처리 모듈(160)에 의한 발행/구독(Publish/Subscribe) 구조의 메시지 큐(Message Queue)를 통해 다수의 기능 데이터베이스(152)에 분산 저장될 수 있다.Through this, the base data of the common database 151 or the change history of the base data is stored in a plurality of function databases (Message Queue) with a publish/subscribe structure by the distributed message processing module 160. 152) can be distributed and stored.

또한, 각 애플리케이션의 실행 시 다수의 기능 서비스 모듈(132)이 클라우드 서비스를 제공함에 따라 발생된 로그 데이터의 경우, 분산 메시지 처리 모듈(160)에 의한 발행/구독(Publish/Subscribe) 구조의 메시지 큐(Message Queue)를 통해 다수의 기능 데이터베이스(152)에 분산 저장될 수 있다. In addition, in the case of log data generated as a plurality of function service modules 132 provide cloud services when executing each application, a message queue with a publish/subscribe structure by the distributed message processing module 160 It can be distributed and stored in multiple function databases 152 through (Message Queue).

일례로, 분산 메시지 처리 모듈(160)로는 아파치 카프카(Apache Kafka)가 사용될 수 있다. 아파치 카프카는 LinkedIn에서 개발된 분산 메시징 시스템으로써 2011년에 오픈 소스로 공개되었으며, 대용량의 실시간 로그처리에 특화된 아키텍처 설계를 통하여 기존 메시징 시스템보다 우수한 TPS를 보여주고 있다. 카프카는 발행-구독(publish-subscribe) 모델을 기반으로 동작하며. 크게 프로듀서(producer), 컨슈머(consumer), 브로커(broker)로 구성된다. 카프카의 브로커는 토픽(topic)을 기준으로 메시지를 관리한다. 프로듀서는 특정 토픽의 메시지를 생성한 뒤, 해당 메시지를 브로커에 전달한다. 그리고, 브로커가 전달받은 메시지를 토픽 별로 분류하여 쌓아 놓으면, 해당 토픽을 구독하는 컨슈머(consumer)들이 메시지를 가져가서 처리하게 된다. 카프카는 확장성(scale-out)과 고가용성(high availability)을 위하여 브로커(broker)들이 클러스터로 구성되어 동작하도록 설계되어 있으며, 심지어 브로커(broker)가 1개 밖에 없을 때에도 클러스터로써 동작한다.For example, Apache Kafka may be used as the distributed message processing module 160. Apache Kafka is a distributed messaging system developed by LinkedIn and was released as open source in 2011, and shows superior TPS than existing messaging systems through an architectural design specialized for large-capacity real-time log processing. Kafka operates based on the publish-subscribe model. It is largely composed of producers, consumers, and brokers. Kafka's broker manages messages based on topics. The producer creates a message on a specific topic and then delivers the message to the broker. And, when the broker classifies the received messages by topic and stacks them, consumers who subscribe to the topic take the messages and process them. Kafka is designed to operate as a cluster of brokers for scale-out and high availability, and operates as a cluster even when there is only one broker.

도 9는 본 발명의 실시예에 의한 인메모리 클러스터를 나타낸 도면이다. Figure 9 is a diagram showing an in-memory cluster according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 실시예에 의한 인메모리 클러스터(120)는 각각 도 2b의 컨테이너 구조를 가지는 슬레이브 노드(121), 마스터 노드(122), 매니저 노드(123)을 포함할 수 있다. Referring to FIG. 9, the in-memory cluster 120 according to an embodiment of the present invention may include a slave node 121, a master node 122, and a manager node 123, each having the container structure of FIG. 2B. .

슬레이브 노드(121)는 인증 키 및 이벤트 데이터를 캐쉬에 저장할 수 있다. 이를 위하여, 슬레이브 노드(121)에는 각각 데이터를 저장할 수 있는 캐쉬가 할당될 수 있다. The slave node 121 may store the authentication key and event data in the cache. To this end, a cache capable of storing data may be allocated to each slave node 121.

마스터 노드(122)는 슬레이브 노드(121)의 상태를 감시하는 역할을 수행한다. 일례로, 마스터 노드(122)는 슬레이브 노드(121)를 통해 확보된 자원의 활용량이 기설정된 임계치에 도달한 경우 네트워크 연결된 관리자 단말기(미도시)로 알림을 제공할 수 있다. The master node 122 serves to monitor the status of the slave node 121. For example, the master node 122 may provide a notification to a network-connected administrator terminal (not shown) when the utilization of resources secured through the slave node 121 reaches a preset threshold.

이에 대응하여 관리자는 관리자 단말기를 통해 슬레이브 추가 요청을 전송할 수 있으며, 매니저 노드(123)는 해당 요청에 대응하여 슬레이브 노드(121)를 추가함으로써 필요한 자원을 추가로 확보할 수 있다. In response to this, the manager can transmit a slave addition request through the manager terminal, and the manager node 123 can secure additional necessary resources by adding the slave node 121 in response to the request.

이러한 인메모리 클러스터(120)를 위와 같은 컨테이너 기반으로 설계함으로써, 대규모 사용자가 동시 접속됨에 따라 인메모리 클러스터(120)에 예기치 못한 부하가 발생하고 이에 따른 시스템 장애 등이 발생하는 것을 방지할 수 있다. 즉, 컨테이너 기반으로 인메모리 클러스터(120)를 구성함으로써 실제 데이터 요청에 실시간으로 반응하여 원하는 자원량을 확보할 수 있는 바, 대규모의 사용자가 동시 접속하여도 성능 저하 등의 문제가 발생하지 않는 클라우드 서비스를 제공할 수 있다. By designing the in-memory cluster 120 based on the container as described above, it is possible to prevent unexpected loads on the in-memory cluster 120 and resulting system failures due to simultaneous access by a large number of users. In other words, by configuring the in-memory cluster 120 based on a container, the desired amount of resources can be secured by responding to actual data requests in real time, and it is a cloud service that does not cause problems such as performance degradation even when a large number of users access simultaneously. can be provided.

도 10은 본 발명의 실시예에 의한 공통 데이터베이스에 대한 접근 방안을 나타낸 도면이고, 도 11은 본 발명의 실시예에 의한 사용자 클라이언트 및 뷰 환경의 데이터 접근 방안을 나타낸 도면이다.Figure 10 is a diagram showing an access method to a common database according to an embodiment of the present invention, and Figure 11 is a diagram showing a data access method of a user client and view environment according to an embodiment of the present invention.

도 10 및 도 11을 참조하면, 공통 데이터베이스(151)에 직접 접근할 필요가 없는 사용자 클라이언트 및 뷰(View) 환경은 로드밸런서 및/또는 인메모리 클러스터(120)를 통해 실제 실시간 데이터를 양방향으로 비동기 접근할 수 있다. Referring to Figures 10 and 11, user clients and view environments that do not need direct access to the common database 151 transmit actual real-time data asynchronously in both directions through the load balancer and/or in-memory cluster 120. It is accessible.

본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이지 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains will understand that the present invention can be implemented in other specific forms without changing its technical idea or essential features. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. The scope of the present invention is indicated by the scope of the claims described below rather than the detailed description above, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts are included in the scope of the present invention. must be interpreted.

10: 사용자 단말기
100: 클라우드 시스템
120: 인메모리 클러스터
131: 공통 서비스 모듈
132: 기능 서비스 모듈
151: 공통 데이터 베이스
152: 기능 데이터 베이스
160: 분산 메시지 처리 모듈
10: User terminal
100: Cloud system
120: In-memory cluster
131: Common service module
132: Functional service module
151: Common database
152: Function database
160: Distributed message processing module

Claims (5)

특정 기능을 수행하기 위한 컨테이너 구조를 갖는 다수의 기능 서비스 모듈;
상기 다수의 기능 서비스 모듈별로 배정되며, 상기 특정 기능을 제공하기 위한 이벤트 데이터를 저장하는 다수의 기능 데이터베이스;
상기 다수의 기능 서비스 모듈에 공통적으로 필요한 기반 데이터를 저장하는 공통 데이터베이스; 및
상기 공통 데이터베이스의 관리를 위한 컨테이너 구조의 공통 서비스 모듈; 을 포함하고,
상기 기능 서비스 모듈은,
HTTP(hypertext transfer protocol) 기반의 API(Application Programming Interface)을 이용하여 특정 기능 데이터베이스에 접근 가능하며,
상기 공통 데이터베이스의 기반 데이터는,
별도의 테이블로 구성되어 상기 다수의 기능 데이터베이스에 동기화 저장되는 것을 특징으로 하는 클라우드 기반 마이크로 서비스 제공 시스템.
A plurality of functional service modules having a container structure for performing specific functions;
a plurality of function databases allocated to each of the plurality of function service modules and storing event data for providing the specific function;
a common database storing base data commonly required for the plurality of functional service modules; and
a common service module with a container structure for managing the common database; Including,
The functional service module is,
You can access specific function databases using HTTP (hypertext transfer protocol)-based API (Application Programming Interface).
The base data of the common database is,
A cloud-based microservice provision system composed of separate tables and synchronized and stored in the plurality of function databases.
제1항에 있어서,
클라우드 내에서 할당된 영역을 가지며, 데이터 분산 처리를 위한 캐쉬를 제공하는 인메모리 클러스터; 및
상기 인메모리 클러스터를 기반으로 실시간 데이터의 분산 처리를 수행하는 분산 메시지 처리 모듈; 을 더 포함하며,
상기 분산 메시지 처리 모듈은,
상기 공통 데이터베이스의 기반 데이터를 복제하여 상기 다수의 기능 데이터베이스로 분산 제공하거나, 상기 기반 데이터의 변경 내역을 상기 다수의 기능 데이터베이스로 분산 제공하는 것을 특징으로 하는 클라우드 기반 마이크로 서비스 제공 시스템.
According to paragraph 1,
An in-memory cluster that has an allocated area within the cloud and provides a cache for distributed data processing; and
a distributed message processing module that performs distributed processing of real-time data based on the in-memory cluster; It further includes,
The distributed message processing module is,
A cloud-based microservice provision system, characterized in that the base data of the common database is copied and distributed to the plurality of function databases, or the change history of the base data is distributed and provided to the plurality of function databases.
제2항에 있어서,
상기 HTTP 기반의 API는,
POST, GET, PUT, 및 DELETE를 포함하는 HTTP 메소드(Method) 중 어느 하나와 상기 기능 서비스 모듈이 처리하고자 하는 데이터의 URL(Uniform Resource Locator)을 포함하는 클라우드 기반 마이크로 서비스 제공 시스템.
According to paragraph 2,
The HTTP-based API is,
A cloud-based microservice provision system that includes one of the HTTP methods including POST, GET, PUT, and DELETE and a URL (Uniform Resource Locator) of the data that the functional service module wants to process.
제3항에 있어서,
상기 다수의 기능 서비스 모듈의 동작에 따라 발생된 로그 데이터가 상기 분산 메시지 처리 모듈에 의한 발행/구독(Publish/Subscribe) 구조의 메시지 큐(Message Queue)를 통해 상기 다수의 기능 데이터베이스에 분산 저장되는 것을 특징으로 하는 클라우드 기반 마이크로 서비스 제공 시스템.
According to paragraph 3,
Log data generated according to the operation of the plurality of function service modules is distributed and stored in the plurality of function databases through a message queue with a publish/subscribe structure by the distributed message processing module. Characterized by a cloud-based microservice provision system.
제2항에 있어서,
상기 다수의 기능 서비스 모듈 중 적어도 하나는 네트워크 연결된 사용자 단말기의 인증 기능을 수행하는 보안 모듈로 동작하고, 상기 다수의 기능 서비스 모듈 중 적어도 다른 하나는 상기 인메모리 클러스터에 저장된 이벤트 데이터를 정기적으로 상기 기능 데이터베이스에 저장하는 데이터 저장 모듈로 동작하며,
상기 보안 모듈은,
상기 사용자 단말기 별 인증 키를 생성하여 상기 인메모리 클러스터에 저장하고, 상기 사용자 단말기가 상기 클라우드 서비스를 이용하는 동안 상기 인메모리 클러스터에 저장된 인증 키를 이용하여 상기 사용자 단말기의 인증을 주기적으로 수행하며, 상기 사용자 단말기가 접근하고자 하는 상기 이벤트 데이터의 종류에 따라 인증 주기를 상이하게 설정하고,
상기 데이터 저장 모듈은,
상기 이벤트 데이터의 종류에 따라 상기 데이터베이스로의 저장 주기를 상이하게 설정하는 것을 특징으로 하는 클라우드 시스템.
According to paragraph 2,
At least one of the plurality of function service modules operates as a security module that performs an authentication function of a network-connected user terminal, and at least another one of the plurality of function service modules periodically performs the function using event data stored in the in-memory cluster. It operates as a data storage module that stores data in the database.
The security module is,
Generate an authentication key for each user terminal and store it in the in-memory cluster, and periodically perform authentication of the user terminal using the authentication key stored in the in-memory cluster while the user terminal uses the cloud service. Setting the authentication cycle differently depending on the type of event data the user terminal wants to access,
The data storage module is,
A cloud system characterized in that the storage cycle in the database is set differently depending on the type of event data.
KR1020220132156A 2022-10-14 2022-10-14 Micro service providng system based on cloud KR20240053091A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220132156A KR20240053091A (en) 2022-10-14 2022-10-14 Micro service providng system based on cloud

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220132156A KR20240053091A (en) 2022-10-14 2022-10-14 Micro service providng system based on cloud

Publications (1)

Publication Number Publication Date
KR20240053091A true KR20240053091A (en) 2024-04-24

Family

ID=90884257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220132156A KR20240053091A (en) 2022-10-14 2022-10-14 Micro service providng system based on cloud

Country Status (1)

Country Link
KR (1) KR20240053091A (en)

Similar Documents

Publication Publication Date Title
US10992739B2 (en) Integrated application-aware load balancer incorporated within a distributed-service-application-controlled distributed computer system
US8606897B2 (en) Systems and methods for exporting usage history data as input to a management platform of a target cloud-based network
US9350682B1 (en) Compute instance migrations across availability zones of a provider network
US9459897B2 (en) System and method for providing data analysis service in cloud environment
Lazidis et al. Publish–Subscribe approaches for the IoT and the cloud: Functional and performance evaluation of open-source systems
US11201930B2 (en) Scalable message passing architecture in a cloud environment
Sowmya et al. Layers of cloud–IaaS, PaaS and SaaS: a survey
US11356531B2 (en) Data caching for cloud services
KR102110099B1 (en) System for providing cloud service based on container
US11747986B2 (en) Container-based cloud service providing system and method therefor
CN105979273A (en) Cloud monitor and cloud operation of intelligent commercial TVs based on big data and cloud computation
CN109697120A (en) Method, electronic equipment for application migration
US11765014B2 (en) Intent-based distributed alarm service
US20230010417A1 (en) Message oriented middleware cluster synchronization
Heuchert et al. Design of a small-scale and failure-resistant IaaS cloud using OpenStack
KR102209044B1 (en) Cloud system having cloud native database structure
CN111435315A (en) Method, apparatus, device and computer readable medium for allocating resources
KR102121713B1 (en) Method for providing cloud service based on container
US20200293491A1 (en) Intelligent File Recommendation Engine
KR102122176B1 (en) Cloud system based on container and method for providing cloud service having enhanced scalability and autonomy
CN105847428A (en) Mobile cloud platform
Padhy et al. X-as-a-Service: Cloud Computing with Google App Engine, Amazon Web Services, Microsoft Azure and Force. com
KR20240053091A (en) Micro service providng system based on cloud
US10896077B2 (en) Messaging abstraction layer for integration with message oriented middleware platforms
KR102616104B1 (en) System for providing cloud service based on container