KR101977536B1 - 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법 - Google Patents

클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법 Download PDF

Info

Publication number
KR101977536B1
KR101977536B1 KR1020180039818A KR20180039818A KR101977536B1 KR 101977536 B1 KR101977536 B1 KR 101977536B1 KR 1020180039818 A KR1020180039818 A KR 1020180039818A KR 20180039818 A KR20180039818 A KR 20180039818A KR 101977536 B1 KR101977536 B1 KR 101977536B1
Authority
KR
South Korea
Prior art keywords
cloud
service
cloud service
node
recommendation
Prior art date
Application number
KR1020180039818A
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 KR1020180039818A priority Critical patent/KR101977536B1/ko
Application granted granted Critical
Publication of KR101977536B1 publication Critical patent/KR101977536B1/ko

Links

Images

Classifications

    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • G06Q30/0629Directed, with specific intent or strategy for generating comparisons
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0613Third-party assisted
    • G06Q30/0619Neutral agent
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/08Auctions

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법에 관한 것이다. 본 발명에 따른 클라우드 서비스 추천/결합 장치는, 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천하는 추천부, 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입하는 조합부, 및 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성하는 생성부를 포함할 수 있다.

Description

클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법{DEVICE AND METHOD FOR RECOMMENDING AND INTEGRATING CLOUD SERVICE}
본 발명은 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법에 관한 것이다.
클라우드 컴퓨팅의 대중화와 함께 다양한 종류의 클라우드 서비스가 등장하고 있다. 클라우드 서비스는 일반적으로 컴퓨팅 서비스를 위한 가상화된 인프라를 제공하는 IaaS(Infrastructure as a Service), 개발 환경이나 OS와 같은 플랫폼을 제공하는 PaaS(Platform as a Service), 인프라와 플랫폼 위에서 동작하는 애플리케이션 자체를 제공하는 SaaS(Software as a Service) 로 분류할 수 있다. 이 중 IaaS에 속하는 서비스로는 CPU와 메모리를 제공하는 컴퓨트(Compute) 서비스, 저장 공간을 제공하는 스토리지(Storage) 서비스, 네트워킹 자원을 제공하는 네트워킹(Networking) 서비스가 대표적이며 그 외에도 많은 종류의 서비스들이 존재한다.
이와 같이 다양한 클라우드 서비스를 조합하여, 사용자는 자신에게 필요한 클라우드 서비스를 조합한 하이브리드 클라우드 환경을 이용할 수 있다. 그러나, 서비스의 종류가 다양해짐에 따라 사용자의 선택의 폭이 늘어났지만, 이를 필요에 맞게 조합해서 사용하기 위해서는 많은 지식과 비용이 필요하다는 문제점이 있다. 이와 같은 문제점을 해결하기 위해 클라우드를 도입하는 많은 기업들은 클라우드 컨설턴트를 통한 컨설팅을 받을 수 있는데, 이러한 컨설팅 서비스는 컨설턴트의 주관이 개입될 수 있으며, 수동적이고, 컨설턴트가 클라우드 벤더에 소속된 이상 벤더에 의존적일 수밖에 없다는 한계가 있다.
따라서, 프라이빗 클라우드 환경을 보유하고 있는 사용자를 포함하여, 사용자의 요구사항과 현재 프라이빗 클라우드 환경을 고려하여 적합한 퍼블릭 클라우드를 조합할 수 있는 장치 및 방법의 개발이 필요한 실정이다. 또한, 사용자의 요구사항을 고려하여, 자동적으로 퍼블릭 클라우드 서비스의 조합을 추천해 주는 장치 및 방법이 필요하다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 하이브리드 클라우드 환경을 쉽게 구축할 수 있도록 사용자의 요청에 따라 적절한 클라우드 서비스의 조합을 추천할 수 있는 것을 목적으로 한다.
또한, 본 발명은 추천된 클라우드 서비스를 활용 및 결합하기 위해 스크립트를 활용한 결합 스크립트를 생성할 수 있게 하는 다른 목적을 가지고 있다.
상기의 목적을 이루기 위한 클라우드 서비스 추천/결합 장치는, 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천하는 추천부, 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입하는 조합부, 및 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성하는 생성부를 포함할 수 있다.
또한, 상기 목적을 달성하기 위한 기술적 방법으로서, 클라우드 서비스 추천/결합 방법은, 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천하는 단계, 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입하는 단계, 및 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성하는 단계를 포함하여 구성할 수 있다.
본 발명의 일실시예에 따르면, 이종 클라우드(즉, 하이브리드 클라우드) 환경을 쉽게 구축할 수 있도록 사용자의 요청에 따라 적절한 클라우드 서비스의 조합을 추천해 주고, 추천한 서비스들을 하나의 사용자 인터페이스를 통해 이용할 수 있도록 결합함으로써, 사용자로 하여금 사용자 단말 상에서 이종 클라우드 환경을 보다 쉽게 도입하여 다양한 클라우드 서비스를 편리하게 사용하도록 할 수 있다.
또한, 본 발명의 일실시예에 따르면, 추천된 클라우드 서비스를 활용 및 결합하기 위해 스크립트를 활용한 결합 스크립트를 생성함으로써, 사용자가 원하는 클라우드 서비스, 메소드, 메소드 구성 구조 등에 기반한 원하는 기능을 가진 스크립트를 제공할 수 있고, 사용자로 하여금 해당 결합 스크립트를 통해 이종 클라우드 환경을 보다 쉽게 활용하도록 할 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 시스템을 도시한 블록도이다.
도 2는 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 장치를 나타내는 블록도이다.
도 3은 본 발명의 일실시예에 따른 서비스 패턴의 구성을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 참조 아키텍처를 추상화한 패턴을 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 참조 아키텍처 및 CDP를 이용하여 서비스 패턴을 추천하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 평가 점수를 산출하는 과정을 설명하기 위한 도면이다.
도 7은 본 발명의 일실시예에 따른 클라우드 서비스 리뷰를 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 클라우드 서비스를 대입하는 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일실시예에 따른 예산에 따른 서비스 조합을 찾는 알고리즘의 예시를 도시한 도면이다.
도 10은 본 발명의 일실시예에 따른 결합 스크립트를 설명하기 위한 도면이다.
도 11은 본 발명의 일실시예에 따른 메소드 단위의 결합 스크립트를 도시한 도면이다.
도 12는 본 발명의 일실시예에 따른 스크립트 단위의 결합 스크립트를 도시한 도면이다.
도 13은 본 발명의 일실시예에 따른 결합 스크립트 생성 프로세스를 도시한 도면이다.
도 14는 본 발명의 일실시예에 따른 결합 스크립트 생성 모델을 도시한 도면이다.
도 15는 본 발명의 일실시예에 따른 결합 스크립트 생성 모델을 통해 생성되는 실행 가능한 결합 스크립트를 실행하는 프로세스를 나타낸다.
도 16은 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 방법을 구체적으로 도시한 작업 흐름도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서 설명되는 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법은 하이브리드 클라우드 환경을 구성하기 위해 사용자 요구사항 별 일반화된 ‘패턴’을 추천하고, 패턴에 대응하는 클라우드 서비스를 프라이빗 클라우드 및 퍼블릭 클라우드로부터 추출하여 패턴에 클라우드 서비스를 바인딩함으로써, 사용자가 원하는 요구사항에 부합하는 최적의 클라우드 서비스를 추천할 수 있다.
도 1은 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 시스템을 도시한 블록도이다.
클라우드 서비스 추천/결합 시스템(100)은 추천 유닛(110) 및 결합 유닛(120)을 포함할 수 있다.
추천 유닛(110)은 패턴(서비스 패턴) 추천(111)을 수행할 수 있다. 즉, 추천 유닛(110)은 사용자 단말로부터 입력된 요구사항(112)에 따라서, 클라우드 참조 아키텍처, 클라우드 디자인 패턴 등을 이용하여 클라우드 서비스 조합에 대한 패턴을 추천할 수 있다. 이때, 추천 유닛(110)은 패턴을 복수의 노드(node)로 구성할 수 있다.
또한, 추천 유닛(110)은 패턴의 노드에 대입할 클라우드 서비스를 추출하는 서비스 추(113)을 수행할 수 있다. 즉, 추천 유닛(110)은 서비스의 품질과 사용자 리뷰 등을 고려하여, 서비스 조합을 구성할 실제 서비스들을 추천할 수 있다.
결합 유닛(120)은 추천 유닛(110)에 의해 추천된 각 서비스들에 대한 API를 조합하여 결합 스크립트 생성(121)을 수행할 수 있다. 이때, 결합 유닛(120)은 서비스 결합 요구사항(122)을 다시 한번 고려하여, 서비스 조합의 사용 가능성을 검증하여 결합 스크립트를 생성할 수 있다. 생성된 결합 스크립트는 사용자 단말에서 실행되어, 사용자로 하여금 서로 다른 클라우드 서비스들을 하나의 인터페이스를 통해 이용하도록 할 수 있다.
도 2는 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 장치를 나타내는 블록도이다.
본 발명의 클라우드 서비스 추천/결합 장치(200)는 추천부(210), 조합부(220) 및 생성부(230)를 포함할 수 있다.
추천부(210)는 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천한다. 여기서, 요구사항은 사용자가 원하는 클라우드 서비스를 추출하기 위한 조건들의 세부사항일 수 있다. 예를 들어, 요구사항은 구축할 시스템, 품질 제약사항 등을 포함할 수 있다(하기 표 1 참고). 본 발명에서 설명하는 표 1에서의 요구사항은 예시일 뿐이며, 이에 한정되지 않는다. 추천부(210)는 사용자 단말로부터 서비스의 조합을 추천 받기 위해 표 1과 같은 서비스 추천 요구사항을 입력 받아 서비스 패턴을 추천할 수 있다. 각 요구사항은 후술할 패턴 추천, 서비스 추천에 반영될 수 있다. 예를 들어, 추천부(210)는 요구사항으로서, 최대 예산 및 기능 요구사항이 입력되면, 예산과 기능에 관한 클라우드 서비스를 대입할 수 있는 노드를 포함하는 서비스 패턴을 추천할 수 있다.
요구사항 설명
구축할 시스템 하이브리드 클라우드 환경을 이용하여 구축하고자 하는 시스템의 종류 ex) 웹 애플리케이션, 동영상 스트리밍 서비스, 온라인 게임
품질 제약사항 추천 받을 서비스가 반드시 충족해야 하는 품질 제약사항 ex) Response Time이 300ms 미만일 것
기능 요구사항 클라우드 서비스를 조합하여 실현 가능한, 클라우드 환경에 대하여 필요한 기능 ex) 오토 스케일링 기능, 서버 상태 백업 기능
최대 예산 퍼블릭 클라우드 이용에 투자할 수 있는 최대 예산 ex) 월 500달러
보유 인프라 현재 보유하고 있는 프라이빗 클라우드의 종류 ex) OpenStack Swift (프라이빗 오브젝트 스토리지)
서비스 패턴은 조합 서비스를 표현하기 위한 템플릿일 수 있다. 서비스 패턴은 노드(node) 및 엣지(edge)로 구성될 수 있다. 즉, 서비스 패턴은 복수의 노드를 포함하고, 노드와 노드 사이는 엣지로 연결되어 구성될 수 있으며, 각각의 노드에 각각의 클라우드 서비스가 대입될 수 있다. 서비스 패턴의 구성에 대한 보다 상세한 설명은 도 3을 참고하여 설명하고자 한다.
도 3은 본 발명의 일실시예에 따른 서비스 패턴의 구성을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, 서비스 패턴(310)은 복수의 노드(311, 312, 313, 314) 및 엣지(315, 실선)를 포함하여 구성될 수 있다. 노드(311, 312, 313, 314)는 클라우드 서비스를 추상화한 것으로서, 특정한 서비스가 아니라 서비스 타입에 대한 정보만을 가지고 있는 개체일 수 있다. 노드(311, 312, 313, 314)는 해당 노드가 가지고 있는 서비스 타입과 같은 타입의 실제 클라우드 서비스를 클라우드로부터(330) 추출하여 바인딩(대입)(331)될 수 있다. 엣지(315, 실선)는 노드(311, 312, 313, 314) 사이의 연결 관계를 나타내며, 이를 통해 노드(311, 312, 313, 314) 간의 상호작용이 이루어질 수 있다.
다시 도 2를 참고하여 설명하면, 추천부(210)는 상기 요구사항과 관련한 목적에 따른 참조 아키텍처 및 상기 하이브리드 클라우드 환경에서의 문제 해결 이력에 따른 클라우드 디자인 패턴(CDP; Cloud Design Pattern)을 바탕으로 상기 서비스 패턴을 추천할 수 있다. 즉, 추천부(210)는 참조 아키텍처를 추상화하여 패턴화하고, CDP를 더 고려하여 패턴화된 패턴을 수정하여 최종적으로 서비스 패턴을 추천할 수 있다. 여기서, 참조 아키텍처는 클라우드 서비스 벤더(vendor)들로부터 제공 받을 수 있다. 또한, 참조 아키텍처는 특정한 목적을 가지고 클라우드 환경을 구축할 때 일반적으로 많이 사용되는 서비스 조합을 나타내는 것일 수 있다. 이는 본 발명에서 정의한 패턴과 유사한 형태로 되어 있으나, 클라우드 서비스 벤더들이 제공하는 참조 아키텍처의 경우 해당 벤더의 서비스들로 구성되어 있을 수 있다. 참조 아키텍처를 추상화한 패턴은 도 4를 참고하여 설명하고자 한다.
도 4는 본 발명의 일실시예에 따른 참조 아키텍처를 추상화한 패턴을 도시한 도면이다.
본 발명은 다양한 벤더의 서비스를 추천해줄 수 있으므로, 추천부(210)는 참조 아키텍처를 패턴으로 추상화하여 사용자에게 추천할 수 있다. 예를 들면, 추천부(210)는 아마존(Amazon)의 AWS(Amazon Web Services)에서 제공하는 콘텐츠 및 미디어 서빙(Content and Media Serving) 패턴을, 도 4에 도시된 바와 같이 추상화한 패턴(400)으로 추천할 수 있다. 즉, 추상화된 서비스 패턴(400)은 DNS 노드(411), 오브젝트 스토리지(object storage) 노드(412), CDN 노드(413) 및 컴퓨트 노드(compute)(414)를 포함할 수 있다.
또한, 클라우드 디자인 패턴(CDP)은 클라우드 환경을 구축할 때 일반적으로 자주 발생하는 이슈에 대하여 어떤 해결책이 있는지 정리한 것일 수 있다. 여기서, 해결책은 일반적으로 참조 아키텍처와 유사하게 서비스의 조합일 수 있다. 예를 들면, 클라우드 디자인 패턴은 아마존(Amazon)이나 마이크로소프트(Microsoft)에서 제공하는 CDP와 같이 벤더에 종속적인 패턴이 있고, 그렇지 않은 패턴이 있을 수 있다. 본 발명에서는 참조 아키텍처의 경우와 마찬가지로, 특정한 벤더에 종속적인 패턴의 경우 노드의 조합으로 추상화하여 추천할 수 있다.
또한, 추천된 상기 서비스 패턴을 구성하는 노드의 개수 보다, 상기 클라우드 디자인 패턴(CDP)을 구성하는 필수 노드의 개수가 많은 경우, 추천부(210)는 상기 필수 노드에 맞춰, 노드를 더 추가한 서비스 패턴을 다시 추천할 수 있다. 예를 들어, 사용자가 선택한 요구사항이 '기능 요구사항'일 경우, 추천부(210)는 '기능 요구사항'마다, 그에 대응되는 CDP와 추천된 서비스 패턴을 비교하여 CDP에는 존재하지만 추천된 서비스 패턴에 존재하지 않는 노드가 있을 경우, 추천 받았던 패턴에 해당 노드를 추가하고 결합 가능한 노드와 연결할 수 있다.
참조 아키텍처 및 CDP를 고려하여 서비스 패턴을 추천하는 과정을 하기 도 5를 참고하여 설명하고자 한다.
도 5는 본 발명의 일실시예에 따른 참조 아키텍처 및 CDP를 이용하여 서비스 패턴을 추천하는 과정을 설명하기 위한 도면이다.
예를 들어, 요구사항이 '구축할 시스템' 및 '기능 요구사항'인 경우, 추천부(210)는 참조 아키텍처 및 CDP를 이용하여 서비스 패턴을 다음과 같이 추천할 수 있다. 먼저, 추천부(210)는 구축할 시스템의 종류에 따라 참조 아키텍처를 추상화하여 서비스 패턴을 추천할 수 있다(510). 이 때, 추천부(210)는 룰(Rule) 기반의 1:1 대응 방식으로 추천할 수 있으며, 룰은 각 클라우드 서비스 벤더에서 제공하는 정보를 기반으로 정의할 수 있다. 그 다음, 추천부(210)는 요구사항에 따른 기능이 패턴에 포함되어 있는지 확인할 수 있다(520). 이때, 요구사항에 따른 기능이 포함되어 있지 않은 경우, 추천부(210)는 사용자 단말에 의해 기능을 추가 또는 제거 입력 명령을 받을 수 있다(530). 즉, 추천부(210)는 CDP를 이용하여 '기능 요구사항'에 따라 패턴을 수정할 수 있다(540).
여기서, 사용자가 선택 가능한 기능 요구사항마다 해당 요구사항을 충족시키기 위해 적용할 수 있는 CDP가 대응될 수 있다. 즉, 추천부(210)는 사용자가 선택한 기능 요구사항마다, 그에 대응되는 CDP와, 참조 아키텍처를 통해 추천 받았던 패턴을 비교할 수 있다(550). 추천부(210)는 CDP에는 존재하지만 추천 받았던 패턴에 존재하지 않는 노드가 있을 경우, 추천 받았던 패턴에 해당 노드를 추가할 수 있으며(560), 결합 가능한 노드와 연결할 수 있다. 또한, 단계(530)에서, 사용자 단말로부터 추천 패턴의 결과에서 서비스가 너무 많아 요구사항 중 일부를 제거하는 제거 요청이 입력될 수 있고, 추천부(210)는 해당 기능을 구현하기 위한 CDP와, 제거하지 않은 다른 기능들과 대응되는 CDP를 비교할 수 있다(570). 그런 다음, 추천부(210)는 제거된 요구사항을 충족시키기 위한 노드를 패턴에서 삭제할 수 있다(580).
다시 도 2를 참고하여 설명하면, 조합부(220)는 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입한다. 추천부(210)에 의해 서비스 패턴(즉, 서비스 조합)을 위한 템플릿을 추천한 다음, 조합부(220)는 패턴의 각 부분(노드)에 대응하는 실제 서비스를 대입할 수 있다(즉, 도 1에서 서비스 추천(113) 수행). 즉, 조합부(220)는 추천된 서비스 패턴의 노드 각각에 클라우드 서비스를 대입할 수 있다. 여기서, 클라우드 서비스는 프라이빗 클라우드(private cloud) 및 퍼블릭 클라우드(public cloud)를 포함할 수 있으며, 프라이빗 클라우드는 사용자가 개인적으로 보유하는 클라우드를 의미하고, 퍼블릭 클라우드는 서비스 제공업체가 불특정 다수에게 컴퓨팅 자원을 빌려주는 클라우드를 의미할 수 있다.
도 3을 참고하여 설명하면, 조합부(220)는 노드와 대응하는 클라우드 서비스를, 프라이빗 클라우드 및 퍼블릭 클라우드 환경에서 추출하여 노드에 대입할 수 있는데, 예를 들면, 컴퓨트(compute) 노드(311)에 대입할 클라우드 서비스를 프라이빗 클라우드 및 퍼블릭 클라우드(330)로부터 추출하여, 컴퓨트 노드(311)에 대입할 수 있다.
다시 도 2를 참고하여 설명하면, 상기 노드는 상위 노드와, 상기 상위 노드와 간선(즉, 엣지)으로 연결되는 하위 노드를 포함할 수 있다. 예를 들어, 제1 노드는 복수의 노드 중 제2 노드를 짝으로 간주하여 엣지로 연결될 수 있다. 여기서, '상위'와 '하위' 및 '제1'과 '제2'라는 표현은, 임의의 노드와 관련된 노드를 구분하여 설명하기 위한 표현일 수 있다.
조합부(220)는 상기 퍼블릭 클라우드에 대한 평가 점수를 산출하고, 상기 평가 점수가 상대적으로 높은 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 순차적으로 대입할 수 있다. 즉, 조합부(220)는 노드에 대입할 퍼블릭 클라우드를 추출할 때, 기설정된 기준에 의해 평가되는 평가 점수를 고려하여 퍼블릭 클라우드로부터 클라우드 서비스를 추출하여 노드에 대입할 수 있다. 이때, 평가 점수는 클라우드 서비스에 대한 서비스 점수로서, QoS(Quality of Service) 점수 및 유저 피드백 점수를 포함할 수 있다. QoS 점수는 클라우드 서비스의 QoS를 이용하여 산출된 점수이고, 유저 피드백 점수는 사용자로부터 서비스에 대한 피드백(점수, 예컨대, 5점 만점의 점수)을 받는 일반적인 방식의 점수일 수 있다. 평가 점수를 산출하는 과정에 대한 보다 상세한 설명은 하기 도 6을 참고하여 설명하고자 한다. 또한, 평가 점수를 바탕으로 클라우드 서비스를 대입하는 보다 상세한 설명은 후술하는 도 8을 참고하여 설명하고자 한다.
도 6은 본 발명의 일실시예에 따른 평가 점수를 산출하는 과정을 설명하기 위한 도면이다.
조합부(220)는 서비스 점수(평가 점수)(610)를 산출하고, 서비스를 조합함으로써 서비스 추천을 수행할 수 있다. 특히, 조합부(220)는 서비스 점수(610)를 산출함에 있어서, 서비스의 객관적인 평가 요소(즉, Qos 점수(620))와 주관적인 평가 요소(즉, 유저 피드백 점수(630))를 모두 반영할 수 있도록 도 6과 같이 서비스 점수(610)를 산출할 수 있다. 이러한, 본 발명의 서비스 추천의 과정은 다각도에서 서비스를 평가하며, 사용자가 선호하는 평가 방법에 따라 가중치를 조절함으로써 사용자의 요구사항을 보다 유연하게 반영할 수 있도록 할 수 있다. 특히, 본 발명의 서비스 추천의 과정은 QoS뿐만 아니라 측정 불가능한 사용자 경험을 서비스 추천에 추가적으로 반영할 수 있다는 장점을 가질 수 있다.
QoS 점수(620)의 산출은 다음과 같이 수행될 수 있다. 조합부(220)는 사용자 요구사항(621) 및 서비스 QoS(622)를 이용하여 QoS 점수(620)를 산출할 수 있다. 즉, 조합부(220)는 클라우드 서비스의 QoS(622)를 이용하여 QoS 점수를 산출하기 위해 MCDM(Multi-Criteria Decision Making) 알고리즘 중 SAW(Simple Additive Weighting) 알고리즘을 적용할 수 있지만, 이에 한정되는 것은 아니다. SAW는 AHP나 MAUT 등의 다른 MCDM 알고리즘과 비교했을 때 가장 간단한 계산식을 가지고 있어 이해하기 쉬우며 실행 속도가 빠를 수 있다. SAW는 평가 기준별로 점수와 가중치(weight)의 곱을 계산한 후 모두 더하는 방법으로서, 이는 수학식 1과 같이 나타낼 수 있다.
Figure 112018034056810-pat00001
SAW는 일반적으로 클라우드 추천에 많이 사용되는 방법이지만, 본 발명에서의 조합부(220)는 SAW 점수를 계산할 때 표준점수와 백분위점수를 사용할 수 있다. 클라우드 서비스의 QoS는 그 종류에 따라 수치의 스케일이 다르기 때문에, QoS 값을 그대로 SAW에서 점수로 사용할 수는 없고 표준화 과정이 필요할 수 있다.
표준점수의 경우, 본 발명에서는 평균 100, 표준편차 20의 T-Score 체계를 사용할 수 있으며, 수학식 2와 같이 나타낼 수 있다.
Figure 112018034056810-pat00002
예를 들면, 컴퓨트(Compute) 타입의 서비스 A에 대한 응답 시간(Response Time) 값이 500ms이고, 컴퓨트 타입의 모든 서비스의 응답 시간 값 평균이 500ms라면, 조합부(220)는 서비스 A에 대하여, 응답 시간이라는 QoS에 대하여 100점의 표준점수를 줄 수 있다. SAW의 계산식에 의하면, 조합부(220)는 여기에 응답 시간에 대한 사용자의 가중치(weight) 값을 곱할 수 있다. 사용자의 응답 시간에 대한 가중치 값이 0.3이었다면, 서비스 A의 Response Time에 대한 점수는 100*0.3 = 30점이 될 수 있다. 조합부(220)는 모든 측정 가능한 QoS 메트릭에 대하여 위와 같은 계산을 수행하고, 산출된 점수를 모두 더하여 서비스 A의 QoS 점수를 산출할 수 있다.
표준점수를 잘 이용하면 평가 대상이 되는 각 QoS별 상대적 우위를 보다 잘 반영하는 추천 결과를 제공할 수 있지만, 평가 대상 값이 정규분포를 이룬다는 전제가 필요하며 그렇지 않은 경우에는 성능이 떨어진다는 문제점이 있을 수 있다. 따라서, 조합부(220)는 그런 경우에 백분위점수를 대신 산출할 수 있다. 백분위점수는 비교대상별로 상위 몇 퍼센트에 해당하는지에 따라 점수를 부여하는 방식으로 상위 1%에 속한다면 99점, 상위 20%에 속한다면 80점을 부여할 수 있 점수 체계일 수 있다.
유저 피드백 점수(630)의 산출은 다음과 같이 수행될 수 있다. 사용자로부터 서비스에 대한 피드백을 받는 방법으로서 5점 만점이나 10점 만점의 평점을 입력 받는 방법일 수 있다. 본 발명에서의 조합부(220)는 사용자 리뷰(631)에서의 평점을 이용하지만 추가적으로 평점과 함께 입력 받는 리뷰 텍스트에 대한 감정 분석을 통해 점수를 보정할 수 있다. 즉, 기존의 평점만 이용하는 방법의 경우 평가의 정밀도가 떨어지고 사용자마다 평가 기준이 다르다는 문제점이 있지만, 조합부(220)는 감정 분석을 이용하여 유저 피드백 점수(630)를 산출함으로써, 후하게 점수를 매긴 리뷰와 짜게 점수를 매긴 리뷰를 어느 정도 식별할 수 있으며, 보정 값을 세밀하게 부여하여 점수의 정밀도를 높일 수 있다.
도 7은 본 발명의 일실시예에 따른 클라우드 서비스 리뷰를 도시한 도면이다.
도 7에 도시된 리뷰 텍스트는 모두 같은 평점 5점이 부여된 상태를 나타낼 수 있다. 그러나, 조합부(220)는 감정 분석을 이용하여, 'Good'이라는 텍스트가 포함된 첫 번째 리뷰보다는, 'Excellent'라는 텍스트가 포함된 두 번째 리뷰 또는 'powerful, elegant, and fun'이라는 텍스트가 포함된 세 번째 리뷰에 더 높은 점수를 부여할 수 있다.
도 8은 본 발명의 일실시예에 따른 클라우드 서비스를 대입하는 과정을 설명하기 위한 도면이다.
각 클라우드 서비스별 평가 점수가 산출되면, 조합부(220)는 평가 점수와 몇 가지 요구사항을 기반으로 서비스 패턴(810)에 클라우드 서비스를 대입하여, 조합 서비스(클라우드 서비스를 대입한 조합)를 추천할 수 있다.
도 8에 도시된 바와 같이, 조합부(220)는, 기본적으로 각 노드마다 후보 서비스 중 가장 평가 점수가 높은 서비스를 독립적으로 선택한 뒤, 선택된 서비스들을 조합하여 추천할 수 있다. 즉, 조합부(220)는 '오브젝트 스토리지(object storage' 노드에 대하여 'B 사'의 평가 점수가 가장 높으므로, 'B 사'를 대입하고, '컴퓨트(compute)' 노드에 대하여 'A 사'의 평가 점수가 가장 높으므로, 'A 사'를 대입하고, '로드 밸런싱(load balancing)' 노드에 대하여 'B 사'의 평가 점수가 가장 높으므로, 'B 사'를 대입할 수 있다.
다시 도 2를 참고하여 설명하면, 상기 사용자 단말이 보유한 프라이빗 클라우드가 존재하는 경우, 조합부(220)는 상기 사용자 단말이 보유한 프라이빗 클라우드로부터 추출된 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 대입할 수 있다. 즉, 조합부(220)는 복수의 노드 중 사용자 단말이 보유하는 프라이빗 클라우드가 대입될 수 있는 노드에 해당 프라이빗 클라우드를 대입하고, 프라이빗 클라우드가 대입된 노드를 제외한 나머지 노드에 대하여 퍼블릭 클라우드로부터 대응하는 클라우드 서비스를 추출하여 대입할 수 있다.
도 8을 참고하여 설명하면, 예를 들어, 조합부(220)는 프라이빗 클라우드가 존재하는 경우, 해당 프라이빗 클라우드인 '오픈 스택 스위프트(OpenStack Swift)(811)'를 해당 노드에 대입할 수 있다.
다시 도 2를 참고하여 설명하면, 조합부(220)는 상기 복수의 클라우드 서비스 중에서, 상기 요구사항이 속하는 카테고리에 상응하는 제1 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 제1 클라우드 서비스와 종속 관계에 있는 제2 클라우드 서비스를, 상기 하위 노드에 대입하며, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스 간의 무결성이 증명되면, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스의 조합을, 상기 수용 가능으로 확인할 수 있다. 이때, 종속 관계는 일부 클라우드 서비스의 경우 같은 벤더의 특정 클라우드 서비스에만 연결 가능한 특성을 가지고 있는데, 이를 종속 관계(서비스 종속성)라고 할 수 있다. 예를 들면, 조합부(220)는 '컴퓨트(compute)' 및 '오브젝트 스토리지(object storage)'에 대한 노드에 클라우드를 서비스를 대입할 때, 제1 클라우드와 제2 클라우드가 종속 관계로 설정되어 있으면, '컴퓨트'를 제1 클라우드 서비스로 대입할 경우 '오브젝트 스토리지'는 제2 클라우드로 대입하여(무결성 증명) 조합할 수 있다. 만일, '컴퓨트'를 제1 클라우드 서비스로 대입하였는데, '오브젝트 스토리지'는 제3 클라우드로 대입하면, 조합부(220)는 무결성이 결여된 것으로 확인하여, 상기 조합을 수용하지 않을 수 있다.
도 8을 참고하여 설명하면, 조합부(220)는 서비스 종속성을 고려하여 클라우드 서비스를 대입할 수 있다. 그러나, 실제로는 서비스 종속성 문제가 있어 도 8과 같은 서비스 조합이 불가능할 수 있다. 예를 들어, 'B사'의 로드 밸런싱 서비스(832)는 'B사'의 컴퓨트 서비스(831)만을 위해 설계되었기 때문에 'B사'의 컴퓨트 서비스(831)만 연결할 수 있다고 가정할 경우, 조합부(220)는 'A사의 컴퓨트(821) - B사의 로드 밸런싱(832)'을 같이 대입하여 추천하는 것은 불가능하므로, 'A사의 컴퓨트(821) - A사의 로드 밸런싱(822)' 또는 'B사의 컴퓨트(831) - B사 로드 밸런싱(832)'으로 묶어 추천할 수 있다.
또한, 조합부(220)는 원-벤더(One-Vendor) 추천을 통해 클라우드 서비스를 대입하여 추천할 수 있다. 원-벤더 추천은 조합할 모든 서비스의 벤더를 통일하여 추천하는 방법일 수 있다. 벤더를 통일하면 위의 서비스 종속성 문제를 신경 쓰지 않아도 되고, 같은 벤더의 서비스끼리는 일반적으로 전용선으로 연결되므로 네트워크 지연 시간 측면에서도 이점을 가질 수 있다. 또한, 서비스를 이용하기 위해서 한 벤더에 대한 서비스 사용 방법만 익히면 되고 배포(Deployment)나 비용 관리가 간편해져 운영 파트의 부담을 줄일 수 있다. 대신, 해당 벤더에 대한 의존성이 높아지고 가용성 및 재해 복구 측면에서 단점이 있으며, 총 가격도 여러 벤더의 서비스를 같이 이용하는 경우보다 높아질 수 있다. 벤더를 통일하기로 했다면, 조합부(220)는 같은 벤더의 서비스끼리 묶어 점수를 합산하여 각 벤더별 점수를 구한 뒤, 가장 총합 점수가 높은 벤더의 서비스끼리 조합하여 추천할 수 있다. 도 8에서의 예시의 경우, 조합부(220)는 B사의 객체 스토리지, 컴퓨트, 로드 밸런싱 서비스가 종합 점수가 높으므로, 상기 3개의 서비스에 대하여 'B사'의 클라우드 서비스를 모두 추천할 수 있다.
또한, 조합부(220)는 품질 제약사항(요구사항)을 검토하여 클라우드 서비스를 추천할 수 있다. 즉, 조합부(220)는 사용자가 입력한 품질 제약사항을 충족시키지 못한 서비스를 추천 대상에서 제외시킬 수 있다. 예를 들어, 사용자가 ‘오브젝트 스토리지(Object Storage) 서비스에 대해 500ms 이하의 응답 신호(Response Time)를 반드시 보장해야 한다’ 라는 요구사항을 입력한 경우, 조합부(220)는 B사 오브젝트 스토리지의 응답 신호 값이 600ms이고 A사의 오브젝트 스토리지의 응답 신호 값이 490ms라면, B사 오브젝트 스토리지의 서비스 점수가 높더라도 B사 오브젝트 스토리지를 추천 대상에서 제외시키고 차순위 서비스인 A사 오브젝트 스토리지를 대신 대입하여 추천할 수 있다.
또한, 조합부(220)는 최대 예산을 고려하여 클라우드 서비스를 추천할 수 있다. 사용자 단말에 의해 최대 예산에 대한 제약사항(요구사항)이 입력되면, 조합부(220)는 이를 만족하는 범위 내에서 점수 합계가 최대가 되도록 서비스를 추천할 수 있다. 예를 들어, 사용자가 최대 예산으로 $240을 입력했다면, 도 8의 예시에서 현재 추천된 서비스들의 가격 합계는 $250이므로, 조합부(220)는 다른 조합을 추천할 수 있다. 즉, 조합부(220)는 B사 로드 밸런싱 대신 A사의 로드 밸런싱을 조합하여 $240으로 이용 가능한 최적의 조합을 추천할 수 있다. 이를 일반화하면 다중선택 0-1 가방 채우기 문제(Multiple-Choice 0-1 Knapsack Problem)가 되며, 이를 해결하기 위한 알고리즘은 도 9와 같이 재귀 함수를 이용하여 정의될 수 있다.
도 9는 본 발명의 일실시예에 따른 예산에 따른 서비스 조합을 찾는 알고리즘의 예시를 도시한 도면이다.
도 9에 도시된 알고리즘과 같이, 조합부(220)는 최대 예산 내에서 최적의 서비스 조합을 찾아 추천할 수 있다. 조합부(220)는 주어진 예산 이내에서 최적의 클라우드 서비스 조합을 찾는 문제에 적용하여 해결하기 위한 알고리즘으로서, 도 9와 같이 재귀 함수를 이용하여 정의할 수 있다.
다시 도 2를 참고하여 설명하면, 생성부(230)는 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성한다. 즉, 생성부(230)는 각각의 노드에 클라우드 서비스가 대입된 클라우드 서비스의 조합을 구현하도록 추천된 각 서비스들에 대한 API를 조합하여 결합 스크립트를 생성할 수 있다. 여기서, 결합 스크립트는 멀티 클라우드(즉, 하이브리드 클라우드)가 제공하는 기능이 구현된 스크립트일 수 있다. 후술하는 도 10을 참고하여, 결합 스트립트에 대해 보다 상세하게 설명하고자 한다.
또한, 생성부(230)는 클라우드 서비스를 대입한 클라우드 서비스의 조합이 결합 스크립트를 생성할 수 있는 조건을 충족하는 경우, 수용 가능으로 확인할 수 있다. 예를 들면, 생성부(230)는 사용자 단말로부터 입력된 요구사항을 만족하는지, 상위 노드와 하위 노드 간의 종속 관계를 성립하였는지 등에 대하여 조건을 충족하는 확인하여 수용 가능 여부를 확인할 수 있다.
도 10은 본 발명의 일실시예에 따른 결합 스크립트를 설명하기 위한 도면이다.
본 발명에서의 생성부(230)는 스크립트 기반으로 클라우드 서비스를 결합할 수 있다. 결합 스크립트는 멀티, 하이브리드 클라우드가 제공하는 기능이 구현된 스크립트를 의미할 수 있다. 본 발명에서 정의하는 클라우드 결합이란, 클라우드 서비스에 대한 사용자의 요구사항을 만족하는 결합 스크립트들을 생성하는 것을 의미할 수 있다.
도 10에 도시된 메소드(method)는 하이브리드 클라우드 서비스 사용자가 원하는 기능이며, 스크립트는 여러 개의 메소드를 가질 수 있다. 예를 들어, 메소드의 경우, 기본적으로 'Libcloud'의 메소드를 지원할 수 있다. 'Libcloud'는 여러 클라우드 서비스들의 API를 모아 놓은 라이브러리일 수 있다. 파라미터(Parameter)는 메소드에서 사용될 데이터 인스턴스(instance)를 의미할 수 있다. 서비스 엔드포인트(Service Endpoint)는 각 클라우드 서비스의 엔드포인트를 의미하며, 인증 정보(Authentication Information)는 클라우드 서비스에 접근하기 위해 필요한 API 키(API key), 토큰(token) 등을 의미할 수 있다. 생성부(230)는 서비스 엔드포인트와 인증 정보를, 사용자의 입력을 통해 획득하거나 메소드를 통해 획득할 수 있다.
다시 도 2를 설명하면, 생성부(230)는 상기 클라우드 서비스를 실행시키는 스크립트를 메소드(method) 단위 또는 스크립트(script) 단위로 구성하여 상기 결합 스크립트를 생성할 수 있다. 즉, 생성부(230)는 결합 스크립트를 생성할 때, 하나의 스크립트 내에 복수의 메소드를 포함하는 메소드 단위의 조합을 이용할 수도 있고, 복수의 스크립트 각각에 하나의 메소드를 포함하는 스크립트 단위의 조합을 이용할 수도 있다. 메소드 단위 또는 스크립트 단위로 구성되는 결합 스크립트에 관한 보다 상세한 설명은 하기 도 11 및 도 12를 참고하여 설명하고자 한다.
도 11은 본 발명의 일실시예에 따른 메소드 단위의 결합 스크립트를 도시한 도면이다.
결합 스크립트는 하나의 스크립트(script) 내에 여러 개의 메소드가 조합된 메소드 단위 조합 구조를 가질 수 있다. 즉, 도 11에 도시된 바와 같이, 생성부(230)는 메소드 단위로 기능들을 조합하는 구조로 결합 스크립트를 생성할 수 있다. 도 11에서 나온 기능의 예시는 스토리지(Storage) 서비스인 오픈스택 스위프트(OpenStack Swift)에서 오브젝트 A(object A)를 다운받고 AWS S3에 다운받았던 오브젝트 A를 업로드하여 오픈스택 스위프트에서 AWS S3로 오브젝트 A가 이동하는 기능을 나타낸 것일 수 있다.
도 11에서의 'OpenStack_Swift.getToken()' 메소드를 통해 오픈스택(OpenStack) 서비스에 접근하기 위한 토큰을 받아오고, 이를 통해 스위프트(Swift)에서 오브젝트 A를 다운 받을 수 있다. 그 다음, AWS S3의 API 키를 가져오고 이를 통해 오브젝트 A를 업로드할 수 있다. 생성부(230)는 메소드 단위의 조합 구조로 구성할 경우, 도 11과 같이 하나의 결합 스크립트에서 여러 개의 메소드를 조합하여 하나의 기능을 구성할 수 있다.
도 12는 본 발명의 일실시예에 따른 스크립트 단위의 결합 스크립트를 도시한 도면이다.
결합 스크립트는 여러 개의 스크립트가 조합되어 토폴로지(topology)를 이루는 스크립트 단위 조합 구조를 가질 수 있다. 도 12에 도시된 바와 같이, 메소드 단위 조합 구조에서의 메소드들이 각각 하나의 스크립트로 구현되어 있으며, 실질적인 기능은 스크립트의 조합으로 구현될 수 있다.
다시 도 2를 참고하여 설명하면, 생성부(230)는 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되면, 상기 결합 스크립트를 생성하거나, 또는 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되지 않으면, 추천된 상기 서비스 패턴에 신규 노드를 추가하거나, 상기 서비스 패턴의 노드에서 기대입된 클라우드 서비스를 교체할 수 있다. 즉, 생성부(230)는 클라우드 서비스의 조합이 사용자 단말로부터 사용 승인이 되지 않을 경우, 새로운 노드를 서비스 패턴에 추가하거나 삭제하는 패턴 수정을 수행할 수 있다. 또한, 생성부(230)는 클라우드 서비스의 조합이 사용자 단말로부터 사용 승인이 되지 않을 경우, 패턴 수정이 아닌 노드에 대입된 클라우드 서비스를 교체하는 서비스 교체를 수행할 수 있다. 결합 스크립트를 생성하는 과정을 보다 상세하게 설명하기 위해 도 13 및 도 14를 참고하여 설명하고자 한다.
도 13은 본 발명의 일실시예에 따른 결합 스크립트 생성 프로세스를 도시한 도면이다.
먼저, 클라우드 서비스 추천/결합 장치(200)는 사용자 단말로부터 원하는 클라우드 서비스를 선택 받을 수 있다(1310). 즉, 클라우드 서비스 추천/결합 장치(200)는 서비스 선택(select service)(1310) 단계를 수행하여, 서비스의 카테고리와 해당 서비스를 결정할 수 있다. 다음으로, 클라우드 서비스 추천/결합 장치(200)는 메소드 타입(method type)을 선택 받을 수 있다(1320). 메소드 타입은 기본적으로 클라우드로부터 데이터를 읽어오는 작동을 수행하는 것과 클라우드의 상태를 변경하는 작동을 수행하는 것 두 가지로 나누어질 수 있다. 그 다음, 클라우드 서비스 추천/결합 장치(200)는 메소드 타입에 따라 메소드가 출력할 수 있고, 사용자 단말로부터 그 중 원하는 메소드를 선택 받을 수 있다(1330).
메소드가 2개 이상 선택될 경우, 클라우드 서비스 추천/결합 장치(200)는 메소드 조합(Method Combination) 단계(1340)에서 메소드의 조합을 결정할 수 있다. 만약 사용자가 추가적인 메소드가 필요하다면, 클라우드 서비스 추천/결합 장치(200)는 원하는 서비스에 따라 서비스를 선택하는 단계(1310)부터 다시 수행하거나, 메소드 타입을 선택하는 단계(1320)부터 다시 수행할 수 있다. 마지막으로, 클라우드 서비스 추천/결합 장치(200)는 스크립트 생성(create script) 단계(1350)를 수행하여, 결합 스크립트 생성 프로세스에서 사용자가 결정한 요소에 기반한 스크립트를 생성할 수 있다. 사용자가 선택한 메소드의 수에 따라, 클라우드 서비스 추천/결합 장치(200)는 스크립트 단위 조합이나 메소드 단위 조합으로 결합 스크립트를 생성하여 스크립트(script) 또는 토폴로지(topology)를 생성할 수 있다.
도 14는 본 발명의 일실시예에 따른 결합 스크립트 생성 모델을 도시한 도면이다.
도 14에 도시된 결합 스크립트 생성 모델은 'Apache Libcloud'와 소프트웨어 디자인 패턴을 기반으로 구축되었으며, 결합 스크립트 생성 프로세스에서 생성된 스크립트(script) 또는 토폴로지(topology)를 기반으로 실제 실행 가능한 코드 레벨의 결합 스크립트를 생성할 수 있다. 표 2는 결합 스크립트 생성 모델의 각 요소를 설명하는 표이다.
요소 설명
Integration Script 결합 스크립트 생성 모델을 통해 생성되는 스크립트로써 1개 이상의 Service 인스턴스를 가진다.
<<Variation
Point>> Category
Category는 Variation Point로써 가변성이 발생하는 지점이다. Variant인 Service로 실체화되고 바인딩된다. Category는 대표적으로 compute, Object Storage, Block Storage 등이 있다.
<<Variant>>
Service
가변점인 Category에 바인딩되는 요소로써 같은 Category에 속해 있는 Specific Service의 부모역할을 한다.
Specific Service 실제 스크립트를 이루는 요소로써 하나의 특정 클라우드 서비스를 의미한다. 실제 스크립트에서 method를 실행하는 요소이다.
Service Creator Service Creator는 선택된 Service의 인스턴스를 생성하는 역할을 수행한다.
Service Set Service Set은 Service를 Component로 가지는 요소로써 add, remove의 method를 통해 서비스를 set에 추가, 삭제할 수 있다.
<<abstract>> getCertification Strategy 클라우드 서비스의 인증을 받는 전략을 가져오는 클래스이다.
getOneKeyFromDB 이미 저장된 key를 DB에서 획득하는 전략으로써 하나의 key를 사용하는 서비스들이 사용한다.
getTwoKeyFromDB 이미 저장된 key를 DB에서 획득하는 전략으로써 두 개의 key를 사용하는 서비스들이 사용한다.
getFromService 이미 저장된 key가 없거나 유효기간이 지난 key가 DB에 있을 때 클라우드 서비스서부터 key를 다시 획득하는 전략이다.
클라우드 서비스 추천/결합 장치(200)는 결합 스크립트 생성 모델의 각 요소는 디자인 패턴을 적용하여 구축할 수 있다. 표 3은 결합 스크립트 생성 모델에 적용된 총 5가지의 디자인 패턴과 그 패턴 적용에 대한 목적을 나타낼 수 있다.
패턴 설명
Factory Method 새로운 클라우드 서비스가 추가되거나 생성 함수가 변경될 때 객체를 생성하는 관련 main class나 다른 class의 변경을 최소화하고 Factory 클래스인 Service Creator만 변경하여 객체 생성이 가능하다.
Template Method Specific Service의 인스턴스는 Service Creator의 getService로 생성되지만 getService의 로직 중에서 Service 마다 key를 통해 자원 접근 권한을 받는 방법이 다르다.
Strategy Service의 인증 key를 가져오는 전략이 카테고리, 서비스, 상황에 따라 다르다. 스크립트 생성 시 선택된 서비스의 인증 방법이나 시스템에 유효한 key가 존재하느냐에 따라 전략을 set하여 key를 획득한다.
Composite 스크립트 내에 존재하는 서비스들을 카테고리 별로 관리하는 함수를 구현하기 위해 패턴을 적용하였다. 시스템은 스크립트를 통해 클라우드 서비스의 기능이 실행될 때 그 log를 저장해야 할 필요가 있다. 이때 logging()이라는 method가 필요한 데 만약 method가 수행될 때 마다 하이브리드 CSB에 log를 저장하면 스크립트 성능 측면에서 매우 비효율 적이다. 따라서 각 Specific Service의 logging()에서는 log를 임시로 저장하고 Service Set의 logging()에서 임시 저장된 log를 한번의 입력으로 시스템에 저장할 수 있도록 한다. 또한 새로운 서비스 추가 시에 logging()의 변화없이 log를 저장할 수 있다.
Adapter Apache Libcloud 등 MultiCloud를 위한 Library의 서비스나 method를 사용하기 위해 적용하였다. Specific Service가 Adapter의 역할을 하며 Adaptee인 Libcloud의 ServiceDriver를 참조하여 그 기능을 이용한다. 또한 Libcloud 뿐 아니라 다른 라이브러리도 참조하여 새로운 서비스 method를 구성할 수 있다.
클라우드 서비스 추천/결합 장치(200)는 결합 스크립트 생성 모델을, 하이브리드 클라우드 서비스를 구축을 위한 결합 스크립트 생성의 기본 생성 모델로서 사용할 수 있다. 그리고, 클라우드 서비스 추천/결합 장치(200)는 'Libcloud' 기반으로 구축되어 'Libcloud'에서 지원하고 있는 모든 서비스들과 그 서비스들의 메소드들을 사용할 수 있다. 또한, 클라우드 서비스 추천/결합 장치(200)는 'Libcloud' 뿐만 아니라 다양한 멀티-클라우드(Multi-Cloud) 라이브러리의 메소드도 참조를 통해 사용할 수 있다. 또한, 클라우드 서비스 추천/결합 장치(200)는 결합 스크립트 생성 모들이 새로운 카테고리, 클라우드 서비스, 서비스 메소드 등을 쉽게 확장할 수 있는 구조를 가지고 있어, 모델을 통해 다양한 하이브리드 클라우드 서비스의 구축을 지원할 수 있다.
도 15는 본 발명의 일실시예에 따른 결합 스크립트 생성 모델을 통해 생성되는 실행 가능한 결합 스크립트를 실행하는 프로세스를 나타낸다.
먼저, 클라우드 서비스 추천/결합 장치(200)는 스크립트 서치(Search Script) 단계(1510)를 통해, 인터페이스에서 입력되는 이벤트에 해당하는 실행 가능한 결합 스크립트가 서칭되도록 할 수 있다. 그 다음, 클라우드 서비스 추천/결합 장치(200)는 값 바인딩(Binding Value) 단계(1520)를 통해, 결합 스크립트의 메소드 파라미터, 서비스 엔드포인트, 인증 정보 등을 바인딩하도록 할 수 있다. 값 바인딩(Binding Value) 단계(1520)에서 바인딩 되는 요소들은 스크립트가 실제 실행(Run) 되기 전에 바인딩되기도 하며, 스크립트 실행(Run Script) 단계(1530)에서 바인딩될 수도 있다. 클라우드 서비스 추천/결합 장치(200)는 스크립트 실행(Run Script) 단계(1530)에서, 메소드 단위 조합인 스크립트의 경우 해당하는 코드 레벨의 결합 스크립트를 바로 실행할 수 있고, 스크립트 단위 조합의 경우 스크립트의 구조에 따라 결합 스크립트를 실행할 수 있다.
클라우드 서비스 추천/결합 장치(200)는 결합 스크립트의 생성을 통해 시스템에서 모든 사용자들이 공유할 수 있는 스크립트를 생성할 수 있으며, 또한 이들을 결합 스크립트 생성 모델을 통해 실제 실행 가능한 스크립트를 만들어 스크립트의 기능을 실행할 수 있도록 한다.
이러한, 클라우드 서비스 추천/결합 장치(200)는 이종 클라우드(즉, 하이브리드 클라우드) 환경을 쉽게 구축할 수 있도록 사용자의 요청에 따라 적절한 클라우드 서비스의 조합을 추천해 주고, 추천한 서비스들을 하나의 사용자 인터페이스를 통해 이용할 수 있도록 결합함으로써, 사용자로 하여금 사용자 단말 상에서 이종 클라우드 환경을 보다 쉽게 도입하여 다양한 클라우드 서비스를 편리하게 사용하도록 할 수 있다.
또한, 클라우드 서비스 추천/결합 장치(200)는 추천된 클라우드 서비스를 활용 및 결합하기 위해 스크립트를 활용한 결합 스크립트를 생성함으로써, 사용자가 원하는 클라우드 서비스, 메소드, 메소드 구성 구조 등에 기반한 원하는 기능을 가진 스크립트를 제공할 수 있고, 사용자로 하여금 해당 결합 스크립트를 통해 이종 클라우드 환경을 보다 쉽게 활용하도록 할 수 있다.
도 16은 본 발명의 일실시예에 따른 클라우드 서비스 추천/결합 방법을 구체적으로 도시한 작업 흐름도이다.
우선 본 실시예에 따른 클라우드 서비스 추천/결합 방법은 상술한 클라우드 서비스 추천/결합 장치(200)에 의해 수행될 수 있다.
먼저, 클라우드 서비스 추천/결합 장치(200)는 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천한다(1610). 여기서, 요구사항은 사용자가 원하는 클라우드 서비스를 추출하기 위한 조건들의 세부사항일 수 있다. 예를 들어, 요구사항은 구축할 시스템, 품질 제약사항 등을 포함할 수 있다(상술한 표 1 참고). 본 발명에서 설명하는 [표 1]에서의 요구사항은 예시일 뿐이며, 이에 한정되지 않는다.
클라우드 서비스 추천/결합 장치(200)는 사용자 단말로부터 서비스의 조합을 추천 받기 위해 [표 1]과 같은 서비스 추천 요구사항을 입력 받아 서비스 패턴을 추천할 수 있다. 각 요구사항은 후술할 패턴 추천, 서비스 추천에 반영될 수 있다. 예를 들어, 클라우드 서비스 추천/결합 장치(200)는 요구사항으로서, 최대 예산 및 기능 요구사항이 입력되면, 예산과 기능에 관한 클라우드 서비스를 대입할 수 있는 노드를 포함하는 서비스 패턴을 추천할 수 있다.
또한, 단계(1610)는 상기 요구사항과 관련한 목적에 따른 참조 아키텍처 및 상기 하이브리드 클라우드 환경에서의 문제 해결 이력에 따른 클라우드 디자인 패턴(CDP)을 바탕으로 상기 서비스 패턴을 추천하는 과정일 수 있다. 즉, 클라우드 서비스 추천/결합 장치(200)는 참조 아키텍처를 추상화하여 패턴화하고, CDP를 더 고려하여 패턴화된 패턴을 수정하여 최종적으로 서비스 패턴을 추천할 수 있다. 여기서, 참조 아키텍처는 클라우드 서비스 벤더(vendor)들로부터 제공 받을 수 있다. 또한, 참조 아키텍처는 특정한 목적을 가지고 클라우드 환경을 구축할 때 일반적으로 많이 사용되는 서비스 조합을 나타내는 것일 수 있다. 이는 본 발명에서 정의한 패턴과 유사한 형태로 되어 있으나, 클라우드 서비스 벤더들이 제공하는 참조 아키텍처의 경우 해당 벤더의 서비스들로 구성되어 있을 수 있다.
또한, 단계(1610)는 추천된 상기 서비스 패턴을 구성하는 노드의 개수 보다, 상기 클라우드 디자인 패턴(CDP)을 구성하는 필수 노드의 개수가 많은 경우, 상기 필수 노드에 맞춰, 노드를 더 추가한 서비스 패턴을 다시 추천할 수 있다. 예를 들어, 사용자가 선택한 요구사항이 '기능 요구사항'일 경우, 클라우드 서비스 추천/결합 장치(200)는 '기능 요구사항'마다, 그에 대응되는 CDP와 추천된 서비스 패턴을 비교하여 CDP에는 존재하지만 추천된 서비스 패턴에 존재하지 않는 노드가 있을 경우, 추천 받았던 패턴에 해당 노드를 추가하고 결합 가능한 노드와 연결할 수 있다.
다음으로, 클라우드 서비스 추천/결합 장치(200)는 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입한다(1620). 서비스 패턴(즉, 서비스 조합)을 위한 템플릿을 추천한 다음, 클라우드 서비스 추천/결합 장치(200)는 패턴의 각 부분(노드)에 대응하는 실제 서비스를 대입할 수 있다(즉, 도 1에서 서비스 추천(113) 수행). 즉, 단계(1620)는 추천된 서비스 패턴의 노드 각각에 클라우드 서비스를 대입하는 과정일 수 있다. 여기서, 클라우드 서비스는 프라이빗 클라우드(private cloud) 및 퍼블릭 클라우드(public cloud)를 포함할 수 있으며, 프라이빗 클라우드는 사용자가 개인적으로 보유하는 클라우드를 의미하고, 퍼블릭 클라우드는 서비스 제공업체가 불특정 다수에게 컴퓨팅 자원을 빌려주는 클라우드를 의미할 수 있다.
상기 노드는 상위 노드와, 상기 상위 노드와 간선으로 연결되는 하위 노드를 포함할 수 있다. 예를 들어, 제1 노드는 복수의 노드 중 제2 노드를 짝으로 간주하여 엣지로 연결될 수 있다. 여기서, '상위'와 '하위' 및 '제1'과 '제2'라는 표현은, 임의의 노드와 관련된 노드를 구분하여 설명하기 위한 표현일 수 있다.
또한, 단계(1620)는 상기 복수의 클라우드 서비스 중에서, 상기 요구사항이 속하는 카테고리에 상응하는 제1 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 제1 클라우드 서비스와 종속 관계에 있는 제2 클라우드 서비스를, 상기 하위 노드에 대입하며, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스 간의 무결성이 증명되면, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스의 조합을, 상기 수용 가능으로 확인하는 과정일 수 있다. 이때, 종속 관계는 일부 클라우드 서비스의 경우 같은 벤더의 특정 클라우드 서비스에만 연결 가능한 특성을 가지고 있는데, 이를 종속 관계(서비스 종속성)라고 할 수 있다. 예를 들면, 클라우드 서비스 추천/결합 장치(200)는 '컴퓨트(compute)' 및 '오브젝트 스토리지(object storage)'에 대한 노드에 클라우드를 서비스를 대입할 때, 제1 클라우드와 제2 클라우드가 종속 관계로 설정되어 있으면, '컴퓨트'를 제1 클라우드 서비스로 대입할 경우 '오브젝트 스토리지'는 제2 클라우드로 대입하여(무결성 증명) 조합할 수 있다. 만일, '컴퓨트'를 제1 클라우드 서비스로 대입하였는데, '오브젝트 스토리지'는 제3 클라우드로 대입하면, 클라우드 서비스 추천/결합 장치(200)는 무결성이 결여된 것으로 확인하여, 상기 조합을 수용하지 않을 수 있다.
또한, 단계(1620)는 상기 사용자 단말이 보유한 상기 프라이빗 클라우드가 존재하는 경우, 상기 사용자 단말이 보유한 프라이빗 클라우드로부터 추출된 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 대입하는 과정일 수 있다. 즉, 클라우드 서비스 추천/결합 장치(200)는 복수의 노드 중 사용자 단말이 보유하는 프라이빗 클라우드가 대입될 수 있는 노드에 해당 프라이빗 클라우드를 대입하고, 프라이빗 클라우드가 대입된 노드를 제외한 나머지 노드에 대하여 퍼블릭 클라우드로부터 대응하는 클라우드 서비스를 추출하여 대입할 수 있다.
또한, 단계(1620)에서 상기 하위 노드에 대입하는 단계는, 상기 퍼블릭 클라우드에 대한 평가 점수를 산출하고, 상기 평가 점수가 상대적으로 높은 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 순차적으로 대입하는 과정일 수 있다. 즉, 클라우드 서비스 추천/결합 장치(200)는 노드에 대입할 퍼블릭 클라우드를 추출할 때, 기설정된 기준에 의해 평가되는 평가 점수를 고려하여 퍼블릭 클라우드로부터 클라우드 서비스를 추출하여 노드에 대입할 수 있다. 이때, 평가 점수는 클라우드 서비스에 대한 서비스 점수로서, QoS(Quality of Service) 점수 및 유저 피드백 점수를 포함할 수 있다. QoS 점수는 클라우드 서비스의 QoS를 이용하여 산출된 점수이고, 유저 피드백 점수는 사용자로부터 서비스에 대한 피드백(점수, 예컨대, 5점 만점의 점수)을 받는 일반적인 방식의 점수일 수 있다.
다음으로, 클라우드 서비스 추천/결합 장치(200)는 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성한다(1630). 즉, 단계(1630)는 각각의 노드에 클라우드 서비스가 대입된 클라우드 서비스의 조합을 구현하도록 추천된 각 서비스들에 대한 API를 조합하여 결합 스크립트를 생성하는 과정일 수 있다. 여기서, 결합 스크립트는 멀티 클라우드(즉, 하이브리드 클라우드)가 제공하는 기능이 구현된 스크립트일 수 있다.
실시예에 따라, 클라우드 서비스 추천/결합 장치(200)는 클라우드 서비스를 대입한 클라우드 서비스의 조합이 결합 스크립트를 생성할 수 있는 조건을 충족하는 경우, 수용 가능으로 확인할 수 있다. 예를 들면, 클라우드 서비스 추천/결합 장치(200)는 사용자 단말로부터 입력된 요구사항을 만족하는지, 상위 노드와 하위 노드 간의 종속 관계를 성립하였는지 등에 대하여 조건을 충족하는 확인하여 수용 가능 여부를 확인할 수 있다.
또한, 단계(1630)는 상기 클라우드 서비스를 실행시키는 스크립트를 메소드 단위 또는 스크립트 단위로 구성하여 상기 결합 스크립트를 생성하는 과정일 수 있다. 즉, 클라우드 서비스 추천/결합 장치(200)는 결합 스크립트를 생성할 때, 하나의 스크립트 내에 복수의 메소드를 포함하는 메소드 단위의 조합을 이용할 수도 있고, 복수의 스크립트 각각에 하나의 메소드를 포함하는 스크립트 단위의 조합을 이용할 수도 있다.
실시예에 따라, 클라우드 서비스 추천/결합 장치(200)는 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되면, 상기 결합 스크립트를 생성하거나, 또는 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되지 않으면, 추천된 상기 서비스 패턴에 신규 노드를 추가하거나, 상기 서비스 패턴의 노드에서 기대입된 클라우드 서비스를 교체할 수 있다. 즉, 클라우드 서비스 추천/결합 장치(200)는 클라우드 서비스의 조합이 사용자 단말로부터 사용 승인이 되지 않을 경우, 새로운 노드를 서비스 패턴에 추가하거나 삭제하는 패턴 수정을 수행할 수 있다. 또한, 클라우드 서비스 추천/결합 장치(200)는 클라우드 서비스의 조합이 사용자 단말로부터 사용 승인이 되지 않을 경우, 패턴 수정이 아닌 노드에 대입된 클라우드 서비스를 교체하는 서비스 교체를 수행할 수 있다.
이러한, 클라우드 서비스 추천/결합 방법은 이종 클라우드(즉, 하이브리드 클라우드) 환경을 쉽게 구축할 수 있도록 사용자의 요청에 따라 적절한 클라우드 서비스의 조합을 추천해 주고, 추천한 서비스들을 하나의 사용자 인터페이스를 통해 이용할 수 있도록 결합함으로써, 사용자로 하여금 사용자 단말 상에서 이종 클라우드 환경을 보다 쉽게 도입하여 다양한 클라우드 서비스를 편리하게 사용하도록 할 수 있다.
또한, 클라우드 서비스 추천/결합 방법은 추천된 클라우드 서비스를 활용 및 결합하기 위해 스크립트를 활용한 결합 스크립트를 생성함으로써, 사용자가 원하는 클라우드 서비스, 메소드, 메소드 구성 구조 등에 기반한 원하는 기능을 가진 스크립트를 제공할 수 있고, 사용자로 하여금 해당 결합 스크립트를 통해 이종 클라우드 환경을 보다 쉽게 활용하도록 할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
200: 클라우드 서비스 추천/결합 장치
210: 추천부
220: 조합부
230: 생성부

Claims (16)

  1. 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천하는 추천부;
    복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입하는 조합부; 및
    상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성하는 생성부
    를 포함하고,
    상기 생성부는,
    상기 사용자 단말로부터 클라우드 서비스를 제1 선택받고, 원하는 기능으로서의 메소드의 메소드 타입을 제2 선택받고,
    선택된 상기 클라우드 서비스와 상기 메소드 타입에 따라 출력된 복수의 메소드 중, 상기 사용자 단말이 선택한 2개 이상의 메소드를 조합하여 상기 결합 스크립트를 생성하되,
    상기 메소드의 조합시, '새로운 서비스를 추가할 경우'에는 상기 클라우드 서비스를 제1 선택하는 것부터 수행하고, '동일한 서비스의 다른 방법을 추가할 경우'에는, 상기 메소드 타입을 제2 선택하는 것부터 수행하는
    클라우드 서비스 추천/결합 장치.
  2. 제1항에 있어서,
    상기 노드는 상위 노드와, 상기 상위 노드와 간선으로 연결되는 하위 노드를 포함하고,
    상기 조합부는,
    상기 복수의 클라우드 서비스 중에서, 상기 요구사항이 속하는 카테고리에 상응하는 제1 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 제1 클라우드 서비스와 종속 관계에 있는 제2 클라우드 서비스를, 상기 하위 노드에 대입하며, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스 간의 무결성이 증명되면, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스의 조합을, 상기 수용 가능으로 확인하는
    클라우드 서비스 추천/결합 장치.
  3. 제2항에 있어서,
    상기 사용자 단말이 보유한 프라이빗 클라우드가 존재하는 경우,
    상기 조합부는,
    상기 사용자 단말이 보유한 프라이빗 클라우드로부터 추출된 클라우드 서비스를, 상기 상위 노드에 대입하고, 상기 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 대입하는
    클라우드 서비스 추천/결합 장치.
  4. 제3항에 있어서,
    상기 조합부는,
    상기 퍼블릭 클라우드에 대한 평가 점수를 산출하고, 상기 평가 점수가 상대적으로 높은 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 순차적으로 대입하는
    클라우드 서비스 추천/결합 장치.
  5. 제1항에 있어서,
    상기 추천부는,
    상기 요구사항과 관련한 목적에 따른 참조 아키텍처 및 상기 하이브리드 클라우드 환경에서의 문제 해결 이력에 따른 클라우드 디자인 패턴(CDP)을 바탕으로 상기 서비스 패턴을 추천하는
    클라우드 서비스 추천/결합 장치.
  6. 제5항에 있어서,
    추천된 상기 서비스 패턴을 구성하는 노드의 개수 보다, 상기 클라우드 디자인 패턴(CDP)을 구성하는 필수 노드의 개수가 많은 경우,
    상기 추천부는,
    상기 필수 노드에 맞춰, 노드를 더 추가한 서비스 패턴을 다시 추천하는
    클라우드 서비스 추천/결합 장치.
  7. 제1항에 있어서,
    상기 생성부는,
    상기 사용자 단말이 선택한 메소드의 수에 따라, 상기 클라우드 서비스를 실행시키는 스크립트를 메소드 단위 또는 스크립트 단위로 구성하여 상기 결합 스크립트를 생성하는
    클라우드 서비스 추천/결합 장치.
  8. 제1항에 있어서,
    상기 생성부는,
    상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되면, 상기 결합 스크립트를 생성하거나, 또는
    상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되지 않으면, 추천된 상기 서비스 패턴에 신규 노드를 추가하거나, 상기 서비스 패턴의 노드에서 기대입된 클라우드 서비스를 교체하는
    클라우드 서비스 추천/결합 장치.
  9. 클라우드 서비스 추천/결합 장치에 의해 구현되는 클라우드 서비스 추천/결합 방법에 있어서,
    상기 클라우드 서비스 추천/결합 장치에서, 사용자 단말로부터 입력 받은 요구사항에 대응하는 서비스 패턴을 추천하는 단계;
    상기 클라우드 서비스 추천/결합 장치에서, 복수의 클라우드 서비스를, 프라이빗 클라우드 또는 퍼블릭 클라우드로부터 추출하여, 상기 서비스 패턴을 구성하는 노드에 대입하는 단계; 및
    상기 클라우드 서비스 추천/결합 장치에서, 상기 노드로의 상기 복수의 클라우드 서비스를 대입 후, 수용 가능으로 확인되는 클라우드 서비스의 조합을, 하이브리드 클라우드 환경에서 구현하기 위한 결합 스크립트를 생성하는 단계
    를 포함하고,
    상기 결합 스크립트를 생성하는 단계는,
    상기 사용자 단말로부터 클라우드 서비스를 제1 선택받는 단계;
    상기 사용자 단말로부터 원하는 기능으로서의 메소드의 메소드 타입을 제2 선택받는 단계; 및
    선택된 상기 클라우드 서비스와 상기 메소드 타입에 따라 출력된 복수의 메소드 중, 상기 사용자 단말이 선택한 2개 이상의 메소드를 조합하여 상기 결합 스크립트를 생성하되, 상기 메소드의 조합시, '새로운 서비스를 추가할 경우'에는 상기 클라우드 서비스를 제1 선택하는 단계로 리턴하고, '동일한 서비스의 다른 방법을 추가할 경우'에는, 상기 메소드 타입을 제2 선택하는 단계로 리턴하는 단계
    를 포함하는 클라우드 서비스 추천/결합 방법.
  10. 제9항에 있어서,
    상기 노드는 상위 노드와, 상기 상위 노드와 간선으로 연결되는 하위 노드를 포함하고,
    상기 노드에 대입하는 단계는,
    상기 복수의 클라우드 서비스 중에서, 상기 요구사항이 속하는 카테고리에 상응하는 제1 클라우드 서비스를, 상기 상위 노드에 대입하는 단계;
    상기 제1 클라우드 서비스와 종속 관계에 있는 제2 클라우드 서비스를, 상기 하위 노드에 대입하는 단계; 및
    상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스 간의 무결성이 증명되면, 상기 제1 클라우드 서비스와 상기 제2 클라우드 서비스의 조합을, 상기 수용 가능으로 확인하는 단계
    를 포함하는 클라우드 서비스 추천/결합 방법.
  11. 제10항에 있어서,
    상기 사용자 단말이 보유한 프라이빗 클라우드가 존재하는 경우,
    상기 노드에 대입하는 단계는,
    상기 사용자 단말이 보유한 프라이빗 클라우드로부터 추출된 클라우드 서비스를, 상기 상위 노드에 대입하는 단계; 및
    상기 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 대입하는 단계
    를 더 포함하는 클라우드 서비스 추천/결합 방법.
  12. 제11항에 있어서,
    상기 하위 노드에 대입하는 단계는,
    상기 퍼블릭 클라우드에 대한 평가 점수를 산출하는 단계; 및
    상기 평가 점수가 상대적으로 높은 퍼블릭 클라우드로부터 추출된 클라우드 서비스를, 상기 하위 노드에 순차적으로 대입하는 단계
    를 포함하는 클라우드 서비스 추천/결합 방법.
  13. 제9항에 있어서,
    상기 서비스 패턴을 추천하는 단계는,
    상기 요구사항과 관련한 목적에 따른 참조 아키텍처 및 상기 하이브리드 클라우드 환경에서의 문제 해결 이력에 따른 클라우드 디자인 패턴(CDP)을 바탕으로 상기 서비스 패턴을 추천하는 단계
    를 포함하는 클라우드 서비스 추천/결합 방법.
  14. 제13항에 있어서,
    추천된 상기 서비스 패턴을 구성하는 노드의 개수 보다, 상기 클라우드 디자인 패턴(CDP)을 구성하는 필수 노드의 개수가 많은 경우,
    상기 서비스 패턴을 추천하는 단계는,
    상기 필수 노드에 맞춰, 노드를 더 추가한 서비스 패턴을 다시 추천하는 단계
    를 더 포함하는 클라우드 서비스 추천/결합 방법.
  15. 제9항에 있어서,
    상기 결합 스크립트를 생성하는 단계는,
    상기 사용자 단말이 선택한 메소드의 수에 따라, 상기 클라우드 서비스를 실행시키는 스크립트를 메소드 단위 또는 스크립트 단위로 구성하여 상기 결합 스크립트를 생성하는 단계
    를 더 포함하는 클라우드 서비스 추천/결합 방법.
  16. 제9항에 있어서,
    상기 클라우드 서비스 추천/결합 방법은,
    상기 클라우드 서비스 추천/결합 장치에서, 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되면, 상기 결합 스크립트를 생성하는 단계; 또는
    상기 클라우드 서비스 추천/결합 장치에서, 상기 수용 가능으로 확인되는 클라우드 서비스의 조합에 대하여, 상기 사용자 단말로부터 사용 승인이 되지 않으면, 추천된 상기 서비스 패턴에 신규 노드를 추가하거나, 상기 서비스 패턴의 노드에서 기대입된 클라우드 서비스를 교체하는 단계
    를 더 포함하는 클라우드 서비스 추천/결합 방법.
KR1020180039818A 2018-04-05 2018-04-05 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법 KR101977536B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180039818A KR101977536B1 (ko) 2018-04-05 2018-04-05 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180039818A KR101977536B1 (ko) 2018-04-05 2018-04-05 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법

Publications (1)

Publication Number Publication Date
KR101977536B1 true KR101977536B1 (ko) 2019-05-10

Family

ID=66580590

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180039818A KR101977536B1 (ko) 2018-04-05 2018-04-05 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법

Country Status (1)

Country Link
KR (1) KR101977536B1 (ko)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102152162B1 (ko) * 2019-11-27 2020-09-04 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 방법 및 장치
KR102162834B1 (ko) * 2019-11-25 2020-10-08 (주) 이노트리 멀티클라우드 또는 하이브리드클라우드를 위한 토폴로지 맵 이용 시스템 및 방법
KR102202044B1 (ko) * 2019-09-27 2021-01-12 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR102202051B1 (ko) * 2019-09-27 2021-01-12 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR20210037360A (ko) * 2019-09-27 2021-04-06 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR102337810B1 (ko) * 2021-08-03 2021-12-09 (주)위버시스템즈 클라우드 인프라 프로바이더 및 서비스 템플릿 관리 시스템
KR20220152013A (ko) 2021-05-07 2022-11-15 경희대학교 산학협력단 리뷰 빅데이터 기반의 아이템 추천 장치 및 그 방법
KR20220157026A (ko) * 2021-05-20 2022-11-29 한국전자통신연구원 클라우드 인프라 서비스 제공 장치 및 이를 이용한 방법
KR102571781B1 (ko) * 2022-12-14 2023-08-29 스트라토 주식회사 클러스터 노드 추천 시스템 및 그 제어방법
KR102676894B1 (ko) * 2023-03-09 2024-06-21 삼성에스디에스 주식회사 클라우드 전환을 위한 웹 기반의 컨설팅 자동화 방법
KR102676893B1 (ko) * 2023-03-09 2024-06-24 삼성에스디에스 주식회사 클라우드 전환을 위한 웹 기반의 컨설팅 자동화 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150017984A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 하이브리드 클라우드 환경에서 데이터를 분산하는 방법 및 장치
KR20150132862A (ko) * 2013-03-15 2015-11-26 그린에덴 유.에스. 홀딩스 Ii, 엘엘씨 최적화된 로컬 딜리버리 기능을 구비한 하이브리드 클라우드 아키텍쳐
KR20160139082A (ko) * 2015-05-26 2016-12-07 인하대학교 산학협력단 역경매 방식 자원할당 장치를 포함하는 하이브리드 클라우드 서버 및 그 자원 할당 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150132862A (ko) * 2013-03-15 2015-11-26 그린에덴 유.에스. 홀딩스 Ii, 엘엘씨 최적화된 로컬 딜리버리 기능을 구비한 하이브리드 클라우드 아키텍쳐
KR20150017984A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 하이브리드 클라우드 환경에서 데이터를 분산하는 방법 및 장치
KR20160139082A (ko) * 2015-05-26 2016-12-07 인하대학교 산학협력단 역경매 방식 자원할당 장치를 포함하는 하이브리드 클라우드 서버 및 그 자원 할당 방법 및 시스템

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102261841B1 (ko) * 2019-09-27 2021-06-08 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR102202044B1 (ko) * 2019-09-27 2021-01-12 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR102202051B1 (ko) * 2019-09-27 2021-01-12 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
KR20210037360A (ko) * 2019-09-27 2021-04-06 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 장치
WO2021107454A1 (ko) * 2019-11-25 2021-06-03 (주) 이노트리 멀티클라우드 또는 하이브리드클라우드를 위한 토폴로지 맵 이용 시스템 및 방법
KR102162834B1 (ko) * 2019-11-25 2020-10-08 (주) 이노트리 멀티클라우드 또는 하이브리드클라우드를 위한 토폴로지 맵 이용 시스템 및 방법
KR102152162B1 (ko) * 2019-11-27 2020-09-04 국방과학연구소 레거시 환경 분석 기반 클라우드 시스템 추천 방법 및 장치
KR20220152013A (ko) 2021-05-07 2022-11-15 경희대학교 산학협력단 리뷰 빅데이터 기반의 아이템 추천 장치 및 그 방법
KR20220157026A (ko) * 2021-05-20 2022-11-29 한국전자통신연구원 클라우드 인프라 서비스 제공 장치 및 이를 이용한 방법
KR102635838B1 (ko) 2021-05-20 2024-02-14 한국전자통신연구원 클라우드 인프라 서비스 제공 장치 및 이를 이용한 방법
KR102337810B1 (ko) * 2021-08-03 2021-12-09 (주)위버시스템즈 클라우드 인프라 프로바이더 및 서비스 템플릿 관리 시스템
KR102571781B1 (ko) * 2022-12-14 2023-08-29 스트라토 주식회사 클러스터 노드 추천 시스템 및 그 제어방법
US11922225B1 (en) 2022-12-14 2024-03-05 Strato Co., Ltd. Cluster node recommendation system
KR102676894B1 (ko) * 2023-03-09 2024-06-21 삼성에스디에스 주식회사 클라우드 전환을 위한 웹 기반의 컨설팅 자동화 방법
KR102676893B1 (ko) * 2023-03-09 2024-06-24 삼성에스디에스 주식회사 클라우드 전환을 위한 웹 기반의 컨설팅 자동화 장치

Similar Documents

Publication Publication Date Title
KR101977536B1 (ko) 클라우드 서비스 추천/결합 장치 및 클라우드 서비스 추천/결합 방법
US10924535B2 (en) Resource load balancing control method and cluster scheduler
Dai et al. A hierarchical modeling and analysis for grid service reliability
Menzel et al. CloudGenius: a hybrid decision support method for automating the migration of web application clusters to public clouds
US9172614B2 (en) Network capacity management system and method
US11172022B2 (en) Migrating cloud resources
CN108156236A (zh) 业务请求处理方法、装置、计算机设备和存储介质
US10412195B2 (en) Risk-aware service management stack transformation during workload migration
Horn et al. MELODIC: utility based cross cloud deployment optimisation
JP7502283B2 (ja) 人工知能/機械学習を用いたicsフローのオートコンプリートのためのシステムおよび方法
US11481680B2 (en) Verifying confidential machine learning models
CN113641591B (zh) 测试用例生成方法及装置、测试方法及装置
CN101616073A (zh) 通信系统以及服务器装置
Pathak et al. Modeling web services by iterative reformulation of functional and non-functional requirements
Mechtri et al. Exact and heuristic resource mapping algorithms for distributed and hybrid clouds
US8103535B2 (en) Evaluation of fitness for a contractual agreement related to provisioning information technology services
Park et al. Approach for selecting and integrating cloud services to construct hybrid cloud
US11847443B2 (en) Constraints-based refactoring of monolith applications through attributed graph embeddings
US20230177337A1 (en) Multi-objective driven refactoring of a monolith application using reinforcement learning
WO2022127393A1 (en) Reinforcement learning for testing suite generation
CN108241716A (zh) 一种资源导入方法及装置
CN108462745B (zh) 一种新型云平台资源管理与交付方法和装置
US8005781B2 (en) Connection of value networks with information technology infrastructure and data via applications and support personnel
Zhu et al. Validation of pervasive cloud task migration with colored petri net
Zeydan et al. Blockchain for Network Service Orchestration: Trust and Adoption in Multi-Domain Environments

Legal Events

Date Code Title Description
GRNT Written decision to grant