KR102027749B1 - 마이크로서비스 시스템 및 방법 - Google Patents

마이크로서비스 시스템 및 방법 Download PDF

Info

Publication number
KR102027749B1
KR102027749B1 KR1020190014739A KR20190014739A KR102027749B1 KR 102027749 B1 KR102027749 B1 KR 102027749B1 KR 1020190014739 A KR1020190014739 A KR 1020190014739A KR 20190014739 A KR20190014739 A KR 20190014739A KR 102027749 B1 KR102027749 B1 KR 102027749B1
Authority
KR
South Korea
Prior art keywords
service
microservice
communication
unit
platform
Prior art date
Application number
KR1020190014739A
Other languages
English (en)
Inventor
김진범
Original Assignee
아콘소프트 주식회사
김진범
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아콘소프트 주식회사, 김진범 filed Critical 아콘소프트 주식회사
Priority to KR1020190014739A priority Critical patent/KR102027749B1/ko
Application granted granted Critical
Publication of KR102027749B1 publication Critical patent/KR102027749B1/ko
Priority to PCT/KR2020/001613 priority patent/WO2020162679A1/ko

Links

Images

Classifications

    • 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
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • H04L67/2838
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1002
    • H04L67/16
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • H04L67/327
    • 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
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 컨테이너 플랫폼; 및 상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼에서 상기 단위 서비스들 간에 이루어지는 통신은 프록시를 통해 이루어지며, 상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하고, 상기 프록시가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산을 포함하고, 상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고, 상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함하는 마이크로서비스 시스템을 제공한다.
본 발명에 의한 마이크로서비스 시스템은 마이크로서비스의 각 단위 서비스들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공하고, 배포된 단위 서비스들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄일 수 있는 자동화된 환경을 제공할 뿐만 아니라 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리, 프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 장점을 갖는다.

Description

마이크로서비스 시스템 및 방법{Microservice system and method thereof}
본 발명은 마이크로서비스 시스템 및 방법에 관한 것으로서, 보다 상세하게는 마이크로서비스의 각 단위 서비스들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공하고, 배포된 단위 서비스들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄일 수 있는 자동화된 환경을 제공할 뿐만 아니라 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하며, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리, 프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법에 관한 것이다.
마이크로서비스란 하나의 서비스를 여러 개의 부분 업무 영역으로 나눈 후, 각 개별 영역을 완결된 작은 단위의 서비스들의 연결로 구성하는 소프트웨어 설계와 개발 방법론이다.
마이크로서비스는 웹 기반 온라인 서비스의 글로벌화와 대용량화에 따라 서비스의 안정성을 위해서 분산 구조의 네트워크 시스템 설계 방식으로 등장하였으며, 빠르게 변화하는 비즈니스 환경에 맞춰 서비스의 변경과 개선을 유연하고 빠른 주기로 지속적으로 배포할 수 있는 아키텍처로 각광받으며 전 세계적으로 확산되어 가고 있다.
마이크로서비스는 구조적으로 많은 단위 서비스로 나누어져 있고, 각 단위 서비스마다 수많은 통신 연결을 가지게 된다. 따라서 마이크로서비스 구조로 구축하기 위해서는 새롭게 고려할 개발 사항이 크게 증가하고, 복잡한 구조를 가진 서비스를 안정적으로 운영하기 위해 많은 노력과 투자가 필요하다.
이러한 마이크로서비스를 도입하기 위해서는 단위 서비스들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경이 필요할 것이다. 그리고 배포된 단위 서비스들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄이기 위해 부하 분산, 장애 복구, 부하 증가에 따른 자동 스케일링 등이 자동화된 환경을 갖추어야 할 것이다.
또한 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경이 필요할 것이다.
대한민국 공개특허 제10-2015-0142871호(2015. 12. 23. 공개)
이에 본 발명은 이러한 상기 문제점을 해결하기 위해 창출된 것으로, 마이크로서비스의 각 단위 서비스들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공하고, 배포된 단위 서비스들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄일 수 있는 자동화된 환경을 제공할 뿐만 아니라 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리, 프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 마이크로서비스 시스템 및 방법을 제공하는 데 그 목적이 있다.
그러나 본 발명의 기술적 과제들은 위에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시례에 따른 마이크로서비스 시스템은 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 컨테이너 플랫폼; 및 상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고, 상기 마이크로서비스 플랫폼에서 상기 단위 서비스들 간에 이루어지는 통신은 프록시를 통해 이루어지며, 상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하고, 상기 프록시가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산을 포함하고, 상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고, 상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함한다.
상기 컨테이너 플랫폼과 상기 마이크로서비스 플랫폼을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공하는 UI 제공부를 더 포함할 수 있다.
서비스마다 쌍으로 배포되는 상기 프록시는 개별적으로 라우팅 정책을 설정 관리하지 않고, 중앙에서 일원화하여 라우팅 정책을 관리하며, 라우팅 정책의 변경은 동적으로 상기 각 프록시에 반영되고, 상기 각 프록시에서 발생한 로그는 중앙으로 수집될 수 있다.
또한 본 발명의 실시례에 따른 마이크로서비스 방법은 컨테이너 플랫폼이 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 단계; 마이크로서비스 플랫폼이 상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신연결과 트래픽에 대한 제어와 관리를 담당하는 단계; 상기 마이크로서비스 플랫폼에서 프록시를 통해 상기 단위 서비스들 간에 통신이 이루어지는 단계; 상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하는 단계; 및 상기 프록시가 통신 오류 처리와 지능적 부하 분산을 포함하는 통신 제어 기능을 처리하는 단계를 포함하고, 상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적인 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고, 상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함한다.
UI 제공부가 상기 컨테이너 플랫폼과 상기 마이크로서비스 플랫폼을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공하는 단계를 더 포함할 수 있다.
서비스마다 쌍으로 배포되는 상기 프록시는 개별적으로 라우팅 정책을 설정 관리하지 않고, 중앙에서 일원화하여 라우팅 정책을 관리하며, 라우팅 정책의 변경은 동적으로 상기 각 프록시에 반영되고, 상기 각 프록시에서 발생한 로그는 중앙으로 수집되는 단계를 더 포함할 수 있다.
본 발명에 의한 마이크로서비스 시스템 및 방법은 마이크로서비스의 각 단위 서비스들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공하고, 배포된 단위 서비스들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄일 수 있는 자동화된 환경을 제공할 뿐만 아니라 마이크로서비스의 각 단위 서비스들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리, 프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있는 효과를 갖는다.
도 1은 본 발명의 일 실시례에 따른 마이크로서비스 시스템의 구성도이다.
도 2는 라이브러리·프레임워크 방식과 본 발명에 따른 마이크로서비스 플랫폼 방식의 비교 도면을 나타낸다.
도 3은 본 발명의 일 실시례에 따른 마이크로서비스 방법을 나타낸 흐름도이다.
본 발명의 장점 및 특징 그리고 그것들을 달성하는 방법들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시례들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시례들에 한정되는 것이 아니라 또 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시례들은 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 단지 청구항에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
이하 첨부된 도면들을 참고하여 본 발명의 실시례에 따른 마이크로서비스 시스템 및 방법에 대해 설명하도록 한다.
이때 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터·특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈·세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 몇 가지 대체 실행례들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 일 실시례에 따른 마이크로서비스 시스템의 구성도이며, 도 2는 라이브러리·프레임워크 방식과 본 발명에 따른 마이크로서비스 플랫폼 방식의 비교 도면을 나타낸 것이다.
도 1을 참조하면, 본 발명의 일 실시례에 따른 마이크로서비스 시스템은 컨테이너 플랫폼(100), 마이크로서비스 플랫폼(120), 및 UI(User Interface) 제공부(140)를 포함한다.
컨테이너 플랫폼(100)은 컨테이너와 컨테이너 오케스트레이션(Orchestration)을 기반으로 만들어진 것으로서, 어플리케이션(160)의 배포와 운영을 자동화하는 환경을 제공한다. 컨테이너는 어플리케이션(160)마다의 독립적인 실행 환경을 만들어 주는 OS(Operating System) 가상화 기술로 어플리케이션(160)을 배포할 때 발생할 수 있는 인프라 관련한 문제를 경감시켜 주며, 인프라 자원 활용의 효율 측면에서도 가상 머신(Virtual Machine, VM)보다 3~5배 정도 향상된 결과를 가져온다. 컨테이너 오케스트레이션은 컨테이너를 상용 환경에서 사용하기 위해서 수많은 컨테이너를 일관성 있게 안정적으로 통합 관리하는 역할을 수행한다.
즉 컨테이너 플랫폼(100)은 마이크로서비스의 각 단위 서비스(160)들을 독립적으로 개발하여 배포할 수 있는 환경, 배포된 단위 서비스(160)들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공한다. 그리고 컨테이너 플랫폼(100)은 배포된 단위 서비스(160)들이 높은 가용성으로 안정적으로 운영될 수 있는 환경을 제공함과 동시에 운영 업무의 부담을 줄이기 위해 부하 분산, 장애 복구, 부하 증가에 따른 자동 스케일링 등이 자동화된 환경을 제공한다.
본 발명에 따른 컨테이너 플랫폼(100)은 본 출원인이 출원한 특허출원 제10-2017-0056478호("클라우드 플랫폼 시스템") 및 특허출원 제10-2017-0056483호("클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법")를 참조한다.
마이크로서비스 플랫폼(120)은 어플리케이션(160)의 배포와 운영을 자동화하는 컨테이너 관리 환경인 컨테이너 플랫폼(100) 위에서 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당한다. 마이크로서비스 구조의 어플리케이션(160)을 라이브러리나 프레임워크의 형태가 아닌 플랫폼의 형태로 제공함으로써, 해당 기능을 서비스에 맞게 사용하기 위해 개발자가 개발 소스 내에서 직접 라이브러리와 프레임워크를 이용하여 구현할 필요가 없다(도 2 참조). 여기서 마이크로서비스 플랫폼(120)의 제어 관리 기능은 라우팅 관리, 통신 장애 대응, 부하 방지, 보안 통신, 요청/응답 추적, 로그 중앙화, 리소스 모니터링 기능 중 적어도 하나를 포함한다.
단위 서비스(160)들 간에 이루어지는 통신은 프록시(Proxy)(180)를 통해 이루어진다(도 2 참조). 단위 서비스(160)가 기동될 때 단위 서비스(160)마다 전용의 프록시(180)가 쌍으로 배포되고, 각 단위 서비스(160) 간의 통신은 프록시(180)를 거쳐서 이루어진다. 단위 서비스(160)는 연결 대상인 단위 서비스(160)의 식별 정보만 지정해서 프록시(180)에게 통신을 요청하기만 하면 된다. 이후에 통신 과정에서 고려해야 되는 제어는 프록시(180)가 대신 처리하게 된다. 이러한 기능 제공을 통해 개발자들은 통신 제어에 대해서는 고민할 필요 없이 담당하는 단위 서비스(160)의 비즈니스 로직 개발에만 집중할 수 있다.
프록시(180)가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산이 있다. 통신 오류 처리는 상대방 단위 서비스(160)와의 통신에 문제가 있을 때의 대응 기능들로 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적인 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함한다. 부하 분산은 L7 스위치 수준으로 제공한다. 즉 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식 뿐만 아니라 L7수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 부하를 분산할 수 있다. 이에 따라 L4 수준의 단순한 라우팅뿐만 아니라 L7 수준에서의 정교한 트래픽 제어가 가능해진다.
서비스마다 쌍으로 배포되는 프록시(180)는 개별적으로 라우팅 정책을 설정 관리하지 않고 중앙에서 일원화하여 모든 라우팅 정책을 관리한다. 라우팅 정책의 변경은 동적으로 각 프록시(180)에 반영되기 때문에 해당 단위 서비스(160)를 재기동하거나 수정할 필요가 없다. 또한 각 프록시(180)에서 발생한 로그는 중앙으로 수집되기 때문에 사용자 요청이 여러 단위 서비스(160)를 거쳐서 처리가 되더라도 동일 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간을 모니터링 할 수 있어 빠른 조치가 가능하다.
그리고 마이크로서비스 플랫폼(120)은 멀티 클라우드를 지원하며, 컨테이너 기술 기반이기 때문에 기존 가상 머신 기술 대비 보다 많은 어플리케이션(160)을 수용할 수 있어 멀티 클라우드 및 프라이빗 클라우드 도입에 따른 고객의 요구를 해소해 줄 수 있다.
본 발명에 따른 마이크로서비스 시스템은 컨테이너 기반 마이크로서비스 플랫폼(120) 기술을 기반으로 기업 내부의 IT 시스템에 마이크로서비스를 도입하기 위한‘기업형 마이크로서비스 플랫폼(120)'을 제공할 수도 있고, 퍼블릭 클라우드 환경에서 별도의 제품 도입과 설치 비용을 부담하지 않고 간단하게 기업형 마이크로서비스 플랫폼(120)이 제공하는 것과 동일한 기능을 온라인에서 즉시 사용하고 싶은 고객들에게는 '마이크로서비스 플랫폼(120) 온라인 서비스'를 온라인 방식으로 제공할 수도 있다.
기업형 마이크로서비스 플랫폼(120)은 어플리케이션(160)의 배포와 운영을 자동화하는 컨테이너 기반의 어플리케이션(160) 관리 환경과 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리 기능을 통합하여 제공한다. 기업이 마이크로서비스를 도입하기 위해 필요한 환경을 라이브러리나 프레임워크 수준이 아닌 인프라 수준에서 제공함으로써 마이크로서비스 개발을 위해 고려해야 하는 기술적인 사항을 단순화시킨다. 마이크로서비스의 운영에 필요한 모든 단위 서비스(160)의 통신과 트래픽에 대한 제어와 모니터링은 중앙에서 일원화된 인터페이스로 할 수 있어 개발자가 아닌 운영자에 의해 통제될 수 있다. 하나의 제품으로 멀티 클라우드 환경에서 멀티 클러스터를 운영할 수 있다. 기업의 사업 요건 또는 보안의 이유로 퍼블릭 클라우드의 인프라보다는 자사의 인프라를 선호하는 기업들, 운영 비용 절감을 위해 퍼블릭 클라우드 인프라 사용을 원하는 기업들 또는 퍼블릭과 프라이빗을 함께 사용하는 기업들 모두에게 제공할 수 있다.
마이크로서비스 플랫폼(120) 온라인 서비스는 기업형 마이크로서비스 플랫폼(120)의 온라인 서비스 제품으로, 기업이 어플리케이션(160) 배포를 원하는 퍼블릭 클라우드를 직접 선택하여 사용할 수 있도록 할 수 있다. 온라인 서비스를 위한 멀티테넌시(Multitenancy), 회원 가입, 결제 기능이 추가된다. 퍼블릭 클라우드 인프라에서의 서비스 개발과 운영을 위한 온라인 서비스를 제공한다. 사용자가 운영하는 어플리케이션(160)의 규모에 따라 사용료를 부과하며, 다른 온라인 서비스와 다르게 특정 퍼블릭 클라우드 인프라의 사용을 강제하지 않고, 사용자가 원하는 퍼블릭 클라우드 인프라를 선택하여 자신의 어플리케이션(160)을 배포하여 운영할 수 있다.
이와 같이 본 발명은 마이크로서비스 관리와 컨테이너 오케스트레이션 기능을 통합한 것이다. 즉 컨테이너 오케스트레이션 플랫폼 상에서 마이크로서비스 관리 기능을 통합시킨 것으로 기업 입장에서는 이 기술의 도입만으로 마이크로서비스 도입에 필요했던 노력을 대폭 절감시킬 수 있다.
UI 제공부(140)는 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)을 통합하여 운영 관리할 수 있도록 일관성 있는 웹(Web) UI(User Interface)를 제공한다. 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)의 설정과 분석은 웹 UI를 통해서 실행이 가능하다. 명령어 기반의 인터페이스가 개발자의 관점에서는 다양한 사용 편의를 제공하지만 운영의 관점에서는 실수에 의한 오류 발생 가능성이 높기 때문에 웹 UI를 제공하는 것이 바람직하다.
이러한 구성을 갖는 마이크로서비스 시스템의 마이크로서비스 방법을 도 3을 참조하여 설명하면 다음과 같다.
컨테이너 플랫폼(100)이 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공한다(S100).
그리고 마이크로서비스 플랫폼(120)이 컨테이너 플랫폼(100) 기반에서 마이크로서비스의 각 단위 서비스(160)들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당한다(S110).
UI 제공부(140)는 컨테이너 플랫폼(100)과 마이크로서비스 플랫폼(120)을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공한다(S120).
마이크로서비스 플랫폼(120)에서 프록시(180)를 통해 단위 서비스(160)들 간에 통신이 이루어진다(S130). 구체적으로 단위 서비스(160)가 기동될 때 단위 서비스(160)마다 전용의 프록시(180)가 쌍으로 배포되고, 각 단위 서비스(160)간의 통신은 프록시(180)를 거쳐서 이루어진다. 그리고 단위 서비스(160)는 연결 대상인 단위 서비스(160)의 식별 정보를 지정해서 프록시(180)에게 통신을 요청한다. 프록시(180)는 통신 오류 처리와 지능적 부하 분산을 포함하는 통신 제어 기능을 처리한다.
서비스마다 쌍으로 배포되는 프록시(180)는 개별적으로 라우팅 정책을 설정 관리하지 않고 중앙에서 일원화하여 라우팅 정책을 관리하며, 라우팅 정책의 변경은 동적으로 각 프록시(180)에 반영되고, 각 프록시(180)에서 발생한 로그는 중앙으로 수집된다.
한편 상술한 본 발명의 실시례들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면 롬· 플로피 디스크·하드디스크 등), 광학적 판독 매체(예를 들면 CD-ROM·DVD 등) 및 캐리어 웨이브(예를 들면 인터넷을 통한 전송)와 같은 저장 매체를 포함한다.
이와 같이 본 발명에 의한 마이크로서비스 시스템 및 방법에 따르면 마이크로서비스의 각 단위 서비스(160)들을 독립적으로 개발하여 배포할 수 있는 환경과 배포된 단위 서비스(160)들이 상호 간에 복잡한 설정 없이 쉽게 연결될 수 있는 환경을 제공하고, 배포된 단위 서비스(160)들을 높은 가용성으로 안정적으로 운영함과 동시에 운영 업무의 부담을 줄일 수 있는 자동화된 환경을 제공할 뿐만 아니라 마이크로서비스의 각 단위 서비스(160)들 간에 발생하는 통신에 대한 제어와 관리를 할 수 있는 환경을 제공하고, 단위 서비스(160)들 간에 맺어지는 수많은 연결과 여기서 이루어지는 트래픽에 대한 제어를 중앙 집중식으로 하고, 특정 언어나 라이브러리·프레임워크에 의존하지 않고 정교한 트래픽 제어를 가능하게 하며, 트랜잭션의 추적을 통해 병목 또는 장애 발생 구간의 발견과 조치가 빠르게 처리될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시례들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시례들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
100: 컨테이너 플랫폼 120: 마이크로서비스 플랫폼
140: UI 제공부 160: 어플리케이션(단위 서비스)
180: 프록시

Claims (12)

  1. 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 컨테이너 플랫폼; 및
    상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 마이크로서비스 플랫폼을 포함하고,
    상기 마이크로서비스 플랫폼에서 상기 단위 서비스들 간에 이루어지는 통신은 프록시를 통해 이루어지며, 상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하고,
    상기 프록시가 처리하는 통신 제어 기능은 통신 오류 처리와 지능적 부하 분산을 포함하고, 상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고, 상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함하는 마이크로서비스 시스템.
  2. 제1항에 있어서,
    상기 컨테이너 플랫폼과 상기 마이크로서비스 플랫폼을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공하는 UI 제공부를 더 포함하는 마이크로서비스 시스템.
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    서비스마다 쌍으로 배포되는 상기 프록시는 개별적으로 라우팅 정책을 설정 관리하지 않고 중앙에서 일원화하여 라우팅 정책을 관리하며, 라우팅 정책의 변경은 동적으로 상기 각 프록시에 반영되고, 상기 각 프록시에서 발생한 로그는 중앙으로 수집되는 마이크로서비스 시스템.
  7. 컨테이너 플랫폼이 마이크로서비스의 배포와 운영을 자동화하는 환경을 제공하는 단계;
    마이크로서비스 플랫폼이 상기 컨테이너 플랫폼 기반에서 상기 마이크로서비스의 각 단위 서비스들 간에 이루어지는 통신 연결과 트래픽에 대한 제어와 관리를 담당하는 단계;
    상기 마이크로서비스 플랫폼에서 프록시를 통해 상기 단위 서비스들 간에 통신이 이루어지는 단계;
    상기 단위 서비스가 기동될 때 상기 단위 서비스마다 전용의 프록시가 쌍으로 배포되고, 상기 각 단위 서비스 간의 통신은 상기 프록시를 거쳐서 이루어지며, 상기 단위 서비스는 연결 대상인 단위 서비스의 식별 정보를 지정해서 상기 프록시에게 통신을 요청하는 단계; 및
    상기 프록시가 통신 오류 처리와 지능적 부하 분산을 포함하는 통신 제어 기능을 처리하는 단계를 포함하고,
    상기 통신 오류 처리는 타임아웃, 재전송, 동시 접속수 제한, 접속당 동시 요청수 제한, 서비스 인스턴스들의 주기적인 헬스 체크, 임계치 초과 시 연결 해제 또는 에러 반환 중 적어도 하나를 포함하고,
    상기 지능적 부하 분산은 L4 수준의 부하 분산 방식인 라운드 로빈 방식, 가중치 방식과 랜덤 방식, L7 수준에서의 지능화된 부하 분산인 서비스 요청 헤더의 내용을 기반으로 한 부하 분산 방식 중 적어도 하나를 포함하는 마이크로서비스 방법.
  8. 제7항에 있어서,
    UI 제공부가 상기 컨테이너 플랫폼과 상기 마이크로서비스 플랫폼을 통합하여 운영 관리하는 웹(Web) UI(User Interface)를 제공하는 단계를 더 포함하는 마이크로서비스 방법.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 제7항에 있어서,
    서비스마다 쌍으로 배포되는 상기 프록시는 개별적으로 라우팅 정책을 설정 관리하지 않고 중앙에서 일원화하여 라우팅 정책을 관리하며, 라우팅 정책의 변경은 동적으로 상기 각 프록시에 반영되고, 상기 각 프록시에서 발생한 로그는 중앙으로 수집되는 단계를 더 포함하는 마이크로서비스 방법.
KR1020190014739A 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법 KR102027749B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190014739A KR102027749B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법
PCT/KR2020/001613 WO2020162679A1 (ko) 2019-02-08 2020-02-04 마이크로서비스 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190014739A KR102027749B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102027749B1 true KR102027749B1 (ko) 2019-10-02

Family

ID=68422900

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190014739A KR102027749B1 (ko) 2019-02-08 2019-02-08 마이크로서비스 시스템 및 방법

Country Status (2)

Country Link
KR (1) KR102027749B1 (ko)
WO (1) WO2020162679A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
KR20210144045A (ko) 2020-05-21 2021-11-30 웹케시 주식회사 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램
KR20210144044A (ko) 2020-05-21 2021-11-30 웹케시 주식회사 모노리틱 아키텍처와 마이크로서비스 아키텍처를 모두 지원하는 개발 프레임워크 제공 시스템, 이를 이용한 애플리케이션 개발 방법 및 이를 위한 컴퓨터 프로그램
CN113765944A (zh) * 2020-06-01 2021-12-07 中移(苏州)软件技术有限公司 一种微服务治理方法、装置、设备和存储介质
KR102669784B1 (ko) 2023-09-27 2024-05-28 오케스트로 주식회사 이종 가상화 환경에서의 근본원인 분석 시스템 및 근본원인 분석 방법
KR102676497B1 (ko) 2023-12-28 2024-06-19 오케스트로 주식회사 시뮬레이션을 이용한 근본원인 분석 시스템 및 근본원인 분석 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100838811B1 (ko) * 2007-02-15 2008-06-19 한국정보보호진흥원 안전한 VoIP 서비스를 위한 보안 세션 제어 장치
KR20150142871A (ko) 2014-06-12 2015-12-23 주홍찬 인터렉티브 푸쉬 클라우드 시스템 장치 및 방법
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
JP2018073400A (ja) * 2016-10-21 2018-05-10 富士通株式会社 マイクロサービスベースのデータ処理装置、方法及びプログラム
KR101871902B1 (ko) * 2016-05-11 2018-06-27 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789339B (zh) * 2017-01-19 2020-08-25 北京仿真中心 一种基于轻量级虚拟化架构的分布式云仿真方法与***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100838811B1 (ko) * 2007-02-15 2008-06-19 한국정보보호진흥원 안전한 VoIP 서비스를 위한 보안 세션 제어 장치
KR20150142871A (ko) 2014-06-12 2015-12-23 주홍찬 인터렉티브 푸쉬 클라우드 시스템 장치 및 방법
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법
KR101871902B1 (ko) * 2016-05-11 2018-06-27 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스
JP2018073400A (ja) * 2016-10-21 2018-05-10 富士通株式会社 マイクロサービスベースのデータ処理装置、方法及びプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131193A (zh) * 2019-12-10 2020-05-08 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
CN111131193B (zh) * 2019-12-10 2022-05-20 四川新网银行股份有限公司 支持多协议异构非代码侵入的分布式服务治理的方法
KR20210144045A (ko) 2020-05-21 2021-11-30 웹케시 주식회사 마이크로서비스 아키텍처 애플리케이션 실행 시스템과 방법 및 이를 위한 컴퓨터 프로그램
KR20210144044A (ko) 2020-05-21 2021-11-30 웹케시 주식회사 모노리틱 아키텍처와 마이크로서비스 아키텍처를 모두 지원하는 개발 프레임워크 제공 시스템, 이를 이용한 애플리케이션 개발 방법 및 이를 위한 컴퓨터 프로그램
CN113765944A (zh) * 2020-06-01 2021-12-07 中移(苏州)软件技术有限公司 一种微服务治理方法、装置、设备和存储介质
KR102669784B1 (ko) 2023-09-27 2024-05-28 오케스트로 주식회사 이종 가상화 환경에서의 근본원인 분석 시스템 및 근본원인 분석 방법
KR102676497B1 (ko) 2023-12-28 2024-06-19 오케스트로 주식회사 시뮬레이션을 이용한 근본원인 분석 시스템 및 근본원인 분석 방법

Also Published As

Publication number Publication date
WO2020162679A1 (ko) 2020-08-13

Similar Documents

Publication Publication Date Title
KR102027749B1 (ko) 마이크로서비스 시스템 및 방법
KR102050188B1 (ko) 마이크로서비스 시스템 및 방법
US11210204B2 (en) Agentless distributed monitoring of microservices through a virtual switch
US9612765B2 (en) Context aware dynamic composition of migration plans to cloud
US9405593B2 (en) Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system
US20170192825A1 (en) Ubiquitous and elastic workload orchestration architecture of hybrid applications/services on hybrid cloud
US8539071B2 (en) System and method for a storage area network virtualization optimization
US20210036925A1 (en) Migrating a monolithic software application to a microservices architecture
US20150195347A1 (en) Architecture and method for cloud provider selection and projection
JP2020504552A (ja) リソース割り当てシステム、方法、およびプログラム
US20150193466A1 (en) Architecture and method for cloud provider selection and projection
US20210367852A1 (en) Determining formal models using weighting factors for computing elements in multi-domain environments
US11627034B1 (en) Automated processes and systems for troubleshooting a network of an application
US20170063724A1 (en) Asset arrangement management for a shared pool of configurable computing resources associated with a streaming application
US20230221946A1 (en) Identifying Execution Environments for Deploying Network Functions
US11531526B1 (en) Creating portable serverless applications
WO2022066494A1 (en) Domain-specific language for serverless network functions
US10360614B1 (en) Assessing and rating deployments of resources
US10614018B2 (en) Managing a set of compute nodes which have different configurations in a stream computing environment
EP3111326A2 (en) Architecture and method for cloud provider selection and projection
US11494184B1 (en) Creation of transportability container files for serverless applications
Kelley et al. Choosing the Right Compute Resources in the Cloud: An analysis of the compute services offered by Amazon, Microsoft and Google
US20150193862A1 (en) Architecture and method for implementing a marketplace for data center resources
CN114930788A (zh) 安全地处理多租户容器中的集成消息流
US20150193128A1 (en) Virtual data center graphical user interface

Legal Events

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