KR20130047491A - 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법 - Google Patents

멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법 Download PDF

Info

Publication number
KR20130047491A
KR20130047491A KR1020110112550A KR20110112550A KR20130047491A KR 20130047491 A KR20130047491 A KR 20130047491A KR 1020110112550 A KR1020110112550 A KR 1020110112550A KR 20110112550 A KR20110112550 A KR 20110112550A KR 20130047491 A KR20130047491 A KR 20130047491A
Authority
KR
South Korea
Prior art keywords
virtual machine
service
tenant
provisioning
template
Prior art date
Application number
KR1020110112550A
Other languages
English (en)
Other versions
KR101297441B1 (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 KR1020110112550A priority Critical patent/KR101297441B1/ko
Publication of KR20130047491A publication Critical patent/KR20130047491A/ko
Application granted granted Critical
Publication of KR101297441B1 publication Critical patent/KR101297441B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법이 제공된다. SaaS 서비스 프로비저닝 장치의 저장부는 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하고, 프로비저닝부는 다수의 가상머신 유형별로 저장된 다수의 가상머신 템플릿들을 이용하여, 다수의 서비스들마다 다르게 사용되는 가상머신 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행할 수 있다.

Description

멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법{Method and Apparatus for Provisioning SaaS Service in Multi-Tenant Environment}
본 발명은 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법에 관한 것으로, 보다 상세하게는 다양한 멀티 테넌시 모델을 지원할 수 있는 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법에 관한 것이다.
클라우드 컴퓨팅 서비스의 하나인 SaaS(Software as a Service) 서비스는 멀티 테넌트 환경을 기반으로 하고 있다. 멀티테넌트 환경은 가트너에 따르면 공유하는 인프라 자원의 종류 및 공유 방식에 따라 7가지의 모델로 나뉘며, 이러한 특성으로 인해 SaaS 서비스의 형태 및 성격에 따라 적합한 멀티 테넌시 모델이 달라지게 된다.
그러나, 기존의 PaaS(Platform as a Service) 서비스를 제공하는 업체들의 프로비저닝 시스템은 고객들이 다양한 방식으로 인프라 자원을 공유하는 시스템을 지원하지 못하며, 서비스 별로 특정 방식의 모델만을 지원하고 있다. 예를 들어, Microsoft의 Azure의 경우, 시스템 인프라만을 공유한 채 다른 모든 것은 테넌트마다 공유되지 않는 환경만을 제공한다. 이는 기존의 프로비저닝 시스템이 다양한 SaaS 서비스에 최적화된 멀티 테넌트 환경을 제공하지 못함으로써 서비스를 다양한 형태로 프로비저닝하지 못하는 것을 의미하며, 결과적으로 서비스는 다양한 형태로 제공되지 못하고 하나의 모델에 국한되어 제공되는 것을 의미한다.
본 발명적 개념의 예시적 실시예에 따르면, 다양한 SaaS 서비스의 형태에 따라 최적화된 멀티 테넌트 모델을 지원함으로써, SaaS 서비스 종류에 따라 가상머신의 배포 방식을 다양화할 수 있는 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법을 제공하는 것이다.
본 발명적 개념의 다른 예시적 실시 예에 따르면, 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 저장부; 및 상기 다수의 가상머신 유형별로 저장된 다수의 가상머신 템플릿들을 이용하여, 다수의 서비스들마다 다르게 사용되는 가상머신 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행하는 프로비저닝부;를 포함하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치가 제공될 수 있다.
상기 다수의 서비스들을 제공하는 서비스 제공자들과 서비스 포탈 사이에 상기 서비스의 등록 계약이 체결되면, 상기 서비스 제공자들은 상기 다수의 서비스들마다 사용되는 가상머신 유형을 선택하고, 상기 프로비저닝부는 상기 서비스 제공자들에 의해 선택된 가상머신 유형들에 해당하는 가상머신 템플릿들을 생성하여 상기 저장부에 저장할 수 있다.
상기 서비스 제공자들은 상기 다수의 서비스들을 제공하는데 필요한 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 상기 프로비저닝부에게 전달하며, 상기 프로비저닝부는 상기 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 상기 저장부에 저장할 수 있다.
상기 다수의 서비스들 중 하나를 테넌트가 사용할 시기에 도달하면, 상기 프로비저닝부는, 상기 저장된 다수의 가상머신 템플릿들 중 테넌트에게 제공할 서비스와 관련된 가상머신 템플릿을 검색하고, 상기 검색된 가상머신 템플릿에 설정된 공유방식에 기초하여, 상기 검색된 가상머신 템플릿으로부터 가상머신 인스턴스를 선택적으로 생성할 수 있다.
상기 프로비저닝부는 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 다른 테넌트가 사용 중이면 상기 기생성된 가상머신 인스턴스를 상기 테넌트가 공유하도록 할 수 있다.
상기 프로비저닝부는 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 있지 않으면, 상기 검색된 가상머신 템플릿으로부터 상기 가상머신 인스턴스를 생성하며, 상기 생성된 가상머신 인스턴스 상에 상기 서비스를 제공하는데 필요한 어플리케이션을 설치하고, 상기 어플리케이션의 설정파일을 설정할 수 있다.
상기 서비스 제공자들 중 하나와 상기 서비스 포탈 사이에 체결된 서비스의 등록 계약이 종료되면, 상기 프로비저닝부는, 상기 서비스 제공자들 중 하나에 의해 제공되는 서비스와 관련된 가상머신 템플릿 및 상기 서비스와 관련된 어플리케이션 중 적어도 하나를 상기 저장부로부터 삭제할 수 있다.
상기 다수의 서비스들 중 하나를 사용중인 테넌트와 상기 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면, 상기 프로비저닝부는, 상기 테넌트가 사용한 서비스와 관련된 가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있으면, 상기 서비스와 관련된 가상머신 인스턴스를 유지하고, 상기 다른 테넌트에 의해 공유되고 있지 않으면 상기 서비스와 관련된 가상머신 인스턴스를 종료하거나 상기 저장부로부터 삭제할 수 있다.
한편, 본 발명적 개념의 다른 예시적 실시 예에 따르면, 다수의 서비스들을 제공하는데 필요한 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 저장부; 및 상기 저장된 다수의 가상머신 템플릿들 중 제1테넌트에게 제공할 제1서비스와 관련된 가상머신 템플릿인 제1가상머신 템플릿의 공유방식에 기초하여 제1가상머신 인스턴스를 선택적으로 생성하는 가상머신 프로비저닝부; 및 상기 제1서비스를 위한 어플리케이션인 제1어플리케이션을 상기 제1가상머신 인스턴스 상에 선택적으로 설치하는 어플리케이션 프로비저닝부;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치가 제공될 수 있다.
상기 가상머신 프로비저닝부는, 다수의 가상머신 템플릿들 중 상기 제1서비스와 관련된 제1가상머신 유형에 해당하는 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성할 수 있다.
상기 어플리케이션 프로비저닝부는, 상기 생성된 제1가상머신 인스턴스 상에 상기 제1어플리케이션을 설치하고, 상기 제1어플리케이션의 설정파일을 이용하여 상기 제1어플리케이션의 설정파일을 설정할 수 있다.
상기 가상머신 프로비저닝부는, 상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하고, 상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유가능이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 할 수 있다.
상기 가상머신 프로비저닝부는, 상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 상기 제2테넌트에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유불가능이면, 상기 제1가상머신 인스턴스를 추가로 생성할 수 있다.
상기 가상머신 프로비저닝부는, 상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 제1가상머신 템플릿의 공유방식이 공유가능인지 판단하고, 공유가능한 경우, 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 할 수 있다.
상기 가상머신 프로비저닝부는, 상기 제1가상머신 템플릿의 공유방식이 공유가능이고, 상기 제1가상머신 인스턴스가 다른 테넌트에게 제공 중이지 않은 경우, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하고, 상기 검색된 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성할 수 있다.
상기 저장부는, 상기 다수의 가상머신 유형별로 생성된 상기 다수의 가상머신 템플릿들을 저장하는 가상머신 저장부; 및 상기 다수의 서비스들의 구동에 필요한 시스템 어플리케이션들 및 상기 서비스를 위한 서비스 어플리케이션들 중 적어도 하나와, 상기 시스템 어플리케이션들의 설정파일들 및 상기 서비스 어플리케이션들의 설정파일들 중 적어도 하나를 저장하는 어플리케이션 저장부;를 포함할 수 있다.
상기 제1서비스를 제공하는 서비스 제공자와 서비스 포탈 사이에 상기 제1서비스의 등록 계약이 체결되면, 상기 가상머신 프로비저닝부는, 상기 서비스 제공자에 의해 선택된 제1가상머신 유형에 해당하는 제1가상머신 템플릿을 생성하여 상기 가상머신 저장부에 저장하며, 상기 어플리케이션 프로비저닝부는 상기 서비스 제공자에 의해 제공되는 제1어플리케이션을 상기 어플리케이션 저장부에 저장할 수 있다.
상기 서비스 제공자와 상기 서비스 포탈 사이에 체결된 상기 제1서비스의 등록 계약이 종료되면, 상기 가상머신 프로비저닝부는 상기 제1서비스와 관련된 제1가상머신 템플릿을 상기 가상머신 저장부로부터 삭제하거나, 또는 상기 어플리케이션 프로비저닝부는 상기 제1어플리케이션을 상기 어플리케이션 저장부로부터 삭제할 수 있다.
상기 제1테넌트와 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면, 상기 가상머신 프로비저닝부는, 상기 제1테넌트가 사용한 제1서비스와 관련된 제1가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있지 않으면 상기 제1가상머신 인스턴스를 서비스 포탈 정책에 따라 상기 저장부로부터 삭제하거나 유지할 수 있다.
상기 다수의 가상머신 유형들은 WEB(World Wide Web) 서버 유형, WAS(Web Application Server) 유형 및 DB(Database) 유형을 포함할 수 있다.
한편, 본 발명적 개념의 다른 예시적 실시 예에 따르면, 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 단계; 및 상기 저장된 다수의 가상머신 템플릿들 중 적어도 하나를 이용하여, 다수의 서비스들마다 다르게 사용되는 가상머신 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행하는 단계;를 포함하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법이 제공될 수 있다.
상기 다수의 서비스들을 제공하는 서비스 제공자들과 서비스 포탈 사이에 상기 서비스의 등록 계약이 체결되는 단계; 상기 서비스 제공자들에 의해 상기 다수의 서비스들마다 사용되는 가상머신 유형이 선택되면, 상기 선택된 가상머신 유형들에 해당하는 가상머신 템플릿들을 생성하는 단계; 및 상기 서비스 제공자들로부터 업로딩되는 상기 다수의 서비스들을 제공하는데 필요한 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 저장하는 단계;를 더 포함할 수 있다.
상기 프로비저닝을 수행하는 단계는, 상기 다수의 서비스들 중 하나를 테넌트가 사용할 시기에 도달하면, 상기 프로비저닝부는, 상기 저장된 다수의 가상머신 템플릿들 중 테넌트에게 제공할 서비스와 관련된 가상머신 템플릿을 검색하는 단계; 상기 검색된 가상머신 템플릿에 설정된 공유방식에 기초하여, 상기 검색된 가상머신 템플릿으로부터 가상머신 인스턴스를 선택적으로 생성하는 단계;를 포함할 수 있다.
상기 선택적으로 생성하는 단계는, 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 다른 테넌트가 사용 중이면 상기 기생성된 가상머신 인스턴스를 상기 테넌트가 공유하도록 할 수 있다.
상기 선택적으로 생성하는 단계는, 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 있지 않으면, 상기 검색된 가상머신 템플릿으로부터 상기 가상머신 인스턴스를 생성하는 단계; 및 상기 생성된 가상머신 인스턴스 상에 상기 서비스를 제공하는데 필요한 어플리케이션을 설치하고, 상기 어플리케이션의 설정파일을 설정하는 단계;를 포함할 수 있다.
상기 서비스 제공자들 중 하나와 상기 서비스 포탈 사이에 체결된 서비스의 등록 계약이 종료되면, 상기 서비스 제공자들 중 하나에 의해 제공되는 서비스와 관련된 가상머신 템플릿 및 상기 서비스와 관련된 어플리케이션 중 적어도 하나를 삭제하는 단계;를 더 포함할 수 있다.
상기 다수의 서비스들 중 하나를 사용중인 테넌트와 상기 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면, 상기 테넌트가 사용한 서비스와 관련된 가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있으면 상기 서비스와 관련된 가상머신 인스턴스를 유지하는 단계; 및 상기 다른 테넌트에 의해 공유되고 있지 않으면 상기 서비스와 관련된 가상머신 인스턴스를 종료하거나 삭제하는 단계;를 더 포함할 수 있다.
한편, 본 발명적 개념의 다른 예시적 실시 예에 따르면, 다수의 서비스들을 제공하는데 필요한 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 단계; 및 상기 저장된 다수의 가상머신 템플릿들 중 제1테넌트에게 제공할 제1서비스와 관련된 제1가상머신 템플릿인 제1가상머신 템플릿의 공유방식에 기초하여 제1가상머신 인스턴스를 선택적으로 생성하는 단계; 및 상기 제1서비스를 위한 어플리케이션인 제1어플리케이션을 상기 제1가상머신 인스턴스 상에 선택적으로 설치하는 단계;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법이 제공될 수 있다.
상기 다수의 가상머신 유형마다 다수의 가상머신 템플릿들을 생성하여 저장하는 단계;를 더 포함하며, 상기 선택적으로 생성하는 단계는, 상기 저장된 다수의 가상머신 템플릿들 중 상기 제1서비스와 관련된 제1가상머신 유형에 해당하는 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성할 수 있다.
상기 선택적으로 설치 또는 설정하는 단계는, 상기 생성된 제1가상머신 인스턴스 상에 상기 제1어플리케이션을 설치하고, 상기 제1어플리케이션의 설정파일을 이용하여 상기 제1어플리케이션의 설정파일을 설정할 수 있다.
상기 선택적으로 생성하는 단계는, 상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하는 단계; 상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유가능이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 하는 단계;를 포함할 수 있다.
상기 선택적으로 생성하는 단계는, 상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 상기 제2테넌트에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유불가능이면, 상기 제1가상머신 인스턴스를 추가로 생성하는 단계;를 더 포함할 수 있다.
상기 제1서비스를 제공하는 서비스 제공자와 서비스 포탈 사이에 상기 제1서비스의 등록 계약이 체결되면, 상기 다수의 가상머신 템플릿들을 생성하여 저장하는 단계는, 상기 서비스 제공자에 의해 선택된 제1가상머신 유형에 해당하는 제1가상머신 템플릿을 생성하여 저장할 수 있다.
상기 서비스 제공자와 상기 서비스 포탈 사이에 체결된 상기 제1서비스의 등록 계약이 종료되면, 상기 제1서비스와 관련된 제1가상머신 템플릿 및 상기 제1어플리케이션 중 적어도 하나를 삭제하는 단계;를 더 포함할 수 있다.
상기 제1테넌트와 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면, 상기 제1테넌트가 사용한 제1서비스와 관련된 제1가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있지 않은 경우, 상기 제1가상머신 인스턴스를 서비스 포탈 정책에 따라 종료하거나 삭제하는 단계;를 더 포함할 수 있다.
본 발명적 개념의 하나 이상의 예시적 실시 예에 따르면, 멀티 테넌트 환경에서 SaaS 서비스의 형태에 따라 인프라 자원을 공유하는 방식을 고려하여 다양한 멀티 테넌시 모델의 서비스를 제공하기 위한 프로비저닝을 수행할 수 있다.
또한, 본 발명적 개념의 하나 이상의 예시적 실시 예에 따르면, 프로비저닝 과정을 가상머신 프로비저닝 과정과 어플리케이션 프로비저닝 과정으로 구분함으로써, 다양한 멀티 테넌시 모델을 지원 할 수 있도록 한다.
도 1은 가트너가 정의한 멀티 테넌시 모델을 보여주는 도면,
도 2는 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 시스템을 도시한 도면,
도 3은 도 2에 도시된 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치를 도시한 블록도,
도 4는 제4모델을 지원하는 제1서비스를 제1내지 제3테넌트들(T1, T2, T3)이 사용하고 있는 일 예를 보여주는 도면, 그리고,
도 5는 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법을 설명하기 위한 흐름도이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.
본 명세서에서 제1, 제2등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시예들은 그것의 상보적인 실시예들도 포함한다.
또한, 제1엘리먼트(또는 구성요소)가 제2엘리먼트(또는 구성요소) 상(ON)에서 동작 또는 실행된다고 언급될 때, 제1엘리먼트(또는 구성요소)는 제2엘리먼트(또는 구성요소)가 동작 또는 실행되는 환경에서 동작 또는 실행되거나 또는 제2엘리먼트(또는 구성요소)와 직접 또는 간접적으로 상호 작용을 통해서 동작 또는 실행되는 것으로 이해되어야 할 것이다.
어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한, 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명적 개념을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명적 개념을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명적 개념을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명적 개념을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명적 개념을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
먼저, 본 실시예의 설명에서, 용어 ‘서비스 제공자’는 SaaS 방식을 이용하여 멀티 테넌트(Multi-Tenant)에게 제공할 클라우드 서비스를 서비스 포탈에 제공하는 공급업체 또는 개인일 수 있다.
‘멀티 테넌트’는 다수의 테넌트를 의미하며, 하나의 테넌트는 서비스 포탈에서 제공하는 하나 이상의 서비스를 사용하는 하나의 그룹으로서, 예를 들어, 하나의 기업일 수 있다. 따라서, 하나의 테넌트에는 다수의 사용자가 포함된다. 후술할 도 2에는 하나의 서비스 제공자(10)와 하나의 테넌트(20)를 도시하였으나, 이는 설명의 편의를 위한 것이며, 그 개수는 하나 이상일 수 있다.
‘가상머신 유형(Virtual Machine Type)’은 서비스에 필요한 가상머신의 유형으로서, WEB(World Wide Web) 서버(이하에서는, 설명의 편의를 위해 ‘WEB’이라 한다), WAS(Web Application Server), DB(Database)와 같은 일반적인 웹서비스를 위한 각 티어(tier)가 대표적인 가상머신의 유형이다. 멀티 테넌트 모델에 따라, 또는 서비스의 성격에 따라 세 가지 유형의 가상머신은 일부 또는 모두 사용될 수 있으며, 세 가지 유형 외의 유형이 추가적으로 사용될 수도 있다.
‘가상머신 템플릿(Virtual Machine Template)’은 서비스 구동 시 필요한 적어도 하나의 가상머신 인스턴스의 원형으로써, 후술할 프로비저닝부(110) 또는 가상머신 프로비저닝부(111)에 의해 생성 및 관리될 수 있다. 가상머신 템플릿은 다양한 가상머신 유형들 중 하나에 속하며, 해당 가상머신 유형에 필요한 시스템 어플리케이션과 설정파일이 가상머신 템플릿 상에 설치 및 설정되고, 기본적인 설정이 마쳐진 형태로 후술할 저장부(120) 또는 VM 저장부(121)에 저장될 수 있다.
‘가상머신 인스턴스(Virtual Machine Instance)’는 테넌트가 서비스를 사용할 때 실제로 사용하는 가상머신 객체로서, 후술할 프로비저닝부(110) 또는 가상머신 프로비저닝부(111)에 의해 생성될 수 있다. 가상머신 인스턴스가 생성될 때, 서비스 구동에 실제로 필요한 서비스 어플리케이션이 배포될 수도 있다.
도 1은 가트너(Gartner)가 정의한 멀티 테넌시 모델을 보여주는 도면이다.
도 1을 참조하면, 가트너는 멀티 테넌트 모델을 공유하는 자원의 종류에 따라 7가지로 구분하고 있으며, SaaS 서비스는 해당 모델 중 하나의 모델을 통해 공급될 수 있다.
멀티 테넌트 환경(Multi-Tenant Environment)은 각각의 고객마다 각기 다른 어플리케이션 인스턴스를 공급하던 기존의 호스팅 환경과는 달리 하나의 어플리케이션과 인프라 자원을 여러 그룹의 고객이 함께 공유하지만, 그 데이터는 분리하여 제공하는 환경을 의미한다. 따라서, 멀티 테넌트 환경에서 클라우드 서비스 중 하나인 SaaS 서비스는 다양한 형태로 배포될 수 있다. 이는 SaaS 서비스의 형태에 따라 어플리케이션의 성격 및 고객의 이용방식이 다르므로 이를 지원하는 인프라 구조 또한 달라지기 때문이다. 대표적인 시장조사기관인 가트너에서는 다양한 형태의 멀티 테넌트 환경을 7 개의 멀티 테넌시 모델로 정의하고 있다.
도 1에서 ‘System Infrastructure’는 하드웨어, ‘Data Platform’은 데이터베이스, ‘Application Platform’은 WAS, ‘Application Logic’은 WEB을 예로 들 수 있다. 1번 모델의 경우, 테넌트들이 동일한 서비스를 사용할지라도 어떤 인프라 자원도 공유할 수 없으며, 2번 모델의 경우 테넌트들은 동일한 서비스를 사용하는 경우 하드웨어를 공유할 수 있다. 또한, 4번 모델의 경우, 테넌트들은 하드웨어와 데이터베이스를 공유할 수 있으며, 5번 모델의 경우 하드웨어와 WAS를 공유할 수 있다.
테넌트들에게 도 1과 같은 다양한 멀티 테넌시 모델을 지원하기 위해서는, 서비스에 따라 가상머신의 배포 방식이 달라져야 하는데, 이는 멀티 테넌시 모델의 차이가 인프라 자원의 공유 방식 및 레벨에 기인하기 때문이다. 이러한 요구를 만족시키기 위해서, 본 발명적 개념의 예시적 실시예에서는 다양한 멀티 테넌시 모델을 지원하는 프로비저닝 시스템을 제공할 수 있다. 프로비저닝 시스템은 프로비저닝 단계를 가상머신 배포 단계와 어플리케이션 배포 단계로 나눌 수 있으며, 설명의 편의상 각각의 단계를 가상머신 프로비저닝과 어플리케이션 프로비저닝이라 한다.
도 2는 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 시스템을 도시한 도면이다.
도 2를 참조하면, 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 시스템은 서비스 제공자(10), 테넌트(20), 서비스 포탈(30) 및 SaaS 서비스 프로비저닝 장치(100)를 포함할 수 있다.
서비스 포탈(30)은 서비스 포탈(30)과 서비스 제공자(10) 간의 계약 및 서비스 포탈(30)과 테넌트(20) 간의 계약이 발생하는 공간이다.
먼저, 서비스 포탈(30)은 서비스 제공자(10)가 SaaS 서비스를 등록하기 위해, 서비스 제공자(10)와 서비스 등록 계약(Service Registration Contract)을 맺을 수 있다. 서비스 등록 계약에 의해 서비스 제공자가 제공하는 SaaS 서비스가 서비스 포탈(30)에 등록되면, SaaS 서비스 프로비저닝 장치(100)에 의해 서비스 추가 동작이 이루어질 수 있다.
또한, 서비스 등록 계약에 의해 SaaS 서비스가 서비스 포탈(30)에 등록되면 테넌트(20)는 서비스 포탈(30)에 등록된 SaaS 서비스를 조회 및 사용할 수 있다. 즉, 사용하고자 하는 SaaS 서비스가 조회되면, 테넌트(20)는 서비스 포탈(30)과 서비스 사용 계약((Service Use Contract)을 맺을 수 있고, 서비스 사용 계약을 통해 SaaS 서비스를 사용할 수 있다. 서비스 사용 계약이 완료된 후, SaaS 서비스를 실제로 사용할 시기에 도달하면, SaaS 서비스 프로비저닝 장치(100)는 가상머신(VM: Virtual Machine) 프로비저닝과 어플리케이션 프로비저닝을 수행할 수 있다.
SaaS 서비스 프로비저닝 장치(100)는 서비스 제공자(10)로부터의 SaaS 서비스를 테넌트(20)를 포함하는 적어도 하나의 테넌트에게 제공하는 허브 역할을 할 수 있다. 또한, SaaS 서비스 프로비저닝 장치(100)는 SaaS 서비스를 제공하기 위한 프로비저닝을 위해, 크게는 서비스 추가 동작, 서비스 사용 동작 및 서비스 종료 동작을 수행할 수 있다. 서비스 추가 동작은 서비스 등록 계약 후에 이루어지고, 서비스 사용 동작은 서비스 사용 계약 후, SaaS 서비스가 실제 실행될 때 이루어지며, 서비스 종료 동작은 서비스 사용 계약 종료 후 또는 서비스 등록 계약 종료 후 이루어질 수 있다.
이를 위하여, SaaS 서비스 프로비저닝 장치(100)는 프로비저닝부(110) 및 저장부(120)를 포함할 수 있다. 이하에서는 SaaS 서비스를 ‘서비스’라 한다.
프로비저닝부(110)는 다수의 VM 유형별로 저장된 VM 템플릿들을 이용하여, 다수의 서비스들마다 다르게 사용되는 VM 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행할 수 있다. 서비스에는 서비스 제공자(10)에 의해 7개의 멀티 테넌트 모델 중 하나가 사전에 지정되어 있으며, 설정된 모델에 따라 서비스가 사용하는 VM 유형의 템플릿마다 공유방식이 사전에 설정될 수 있다. 따라서, 프로비저닝부(110)는 서비스들에 설정된 템플릿의 공유방식에 따라 적응적으로 VM 프로비저닝과 어플리케이션 프로비저닝을 수행할 수 있다. VM 프로비저닝은 VM을 배포하는 일련의 동작이고, 어플리케이션 프로비저닝은 어플리케이션과 설정파일을 배포하는 일련의 동작이다.
저장부(120)는 다수의 VM 유형별로 다수의 VM 템플릿들, 다수의 서비스들을 제공하는데 필요한 어플리케이션들 및 어플리케이션들의 설정파일들을 저장할 수 있다. 어플리케이션은 시스템 어플리케이션과 서비스 어플리케이션을 포함하고, 어플리케이션의 설정파일은, 시스템 어플리케이션의 설정파일(Configuration File)과 서비스 어플리케이션의 설정파일을 포함할 수 있다. 시스템 어플리케이션과 서비스 어플리케이션은 프로비저닝 시에 실시간으로 설치될 필요가 있으므로 다양한 파일들의 집합인 패키지 형태로 저장될 수 있다.
시스템 어플리케이션은 서비스와 직접적인 연관은 없지만, 서비스 구동에 필요한 어플리케이션으로서, 일 예로 WAS의 Tomcat, DB의 MySQL 등이 있다. 서비스 어플리케이션은 서비스를 실제로 제공하는데 필요한, 즉, 서비스 자체를 위한 어플리케이션으로서, 일 예로 SugarCRM, JPetStore 등이 있다.
시스템 어플리케이션의 설정파일과 서비스 어플리케이션의 설정파일은 시스템 어플리케이션과 서비스 어플리케이션에 대한 설치 및 설정 순서를 저장하고, 설치에 대한 설정 정보를 저장하고 있을 수 있다. 또한, 시스템 어플리케이션의 설정파일과 서비스 어플리케이션의 설정파일은 VM 인스턴스가 생성되거나, 시스템 어플리케이션이 배포되거나(즉, 설정되거나), 또는 서비스 어플리케이션이 배포될 때, 시스템 어플리케이션과 서비스 어플리케이션에 실시간으로 설정이 되어야 하는 부분에 대한 정의를 담은 파일로서, XML(eXtensible Markup Language])과 같은 표준 형태를 따를 수 있다. 설정파일에 의해 설정이 되는 정보는 예를 들어, DB 접속에 필요한 정보, IP(Internet Protocol) 주소, 도메인 설정에 필요한 정보 등 다양하다.
이하에서는 서비스 추가 동작, 서비스 사용 동작 및 서비스 종료 동작 별로 프로비저닝부(110)의 동작을 설명한다.
1. 서비스 추가 동작
서비스 제공자(10)와 서비스 포탈(30) 사이에 서비스의 등록 계약이 체결되면, 서비스 제공자(10)는 서비스의 제공에 사용되는 적어도 하나 이상의 VM 유형을 선택하고, 프로비저닝부(110)는 서비스 제공자(10)에 의해 선택된 VM 유형에 해당하는 VM 템플릿을 생성하여 저장부(120)에 저장할 수 있다. 프로비저닝부(110)는 VM 템플릿 생성시에 VM 템플릿에 필요한 시스템 어플리케이션을 함께 설치할 수도 있다.
서비스 제공자(10)는 프로비저닝부(110)가 제공하는 메뉴를 통해 VM 유형을 선택할 수 있다. 메뉴에 서비스에 필요한 VM 유형이 포함되어 있지 않은 경우, 서비스 제공자(10)는 필요한 VM 유형을 추가할 수 있으며, 프로비저닝부(110)는 추가된 VM 유형의 템플릿을 생성할 수 있다.
또한, 서비스 제공자(10)는 서비스를 제공하는데 필요한 어플리케이션 및 어플리케이션의 설정파일을 프로비저닝부(110)에게 업로딩할 수 있다. 프로비저닝부(110)는 업로딩된 어플리케이션과 설정파일을 저장부(120)에 저장할 수 있다.
상술한, 서비스 추가 동작의 경우, 다수의 서비스들을 제공하는 다수의 서비스 제공자들과 서비스 등록 계약이 체결될 때마다, 서비스 제공자들은 VM 유형을 선택하며, 프로비저닝부(110)는 선택된 VM 유형에 해당하는 VM 템플릿을 생성할 수 있다. 또한, 다수의 서비스 제공자들은 어플리케이션들과 설정파일들을 프로비저닝부(110)에게 업로딩할 수 있다.
2. 서비스 사용 동작
테넌트(20)와 서비스 포탈(30) 간의 서비스 사용 계약이 체결된 후, 테넌트(20)가 서비스를 사용할 시기에 도달하면, 프로비저닝부(110)는 저장부(120)에 저장된 다수의 VM 템플릿들 중 테넌트(20)에게 제공할 서비스와 관련된 VM 템플릿을 검색할 수 있다. 그리고, 프로비저닝부(110)는 검색된 VM 템플릿의 설정된 공유방식에 기초하여, 검색된 VM 템플릿으로부터 VM 인스턴스를 선택적으로 생성하는 VM 프로비저닝을 수행할 수 있다.
자세히 설명하면, 프로비저닝부(110)는 검색된 VM 템플릿에 설정된 공유방식이 공유가능인 경우, 검색된 VM 템플릿의 VM 인스턴스가 기생성되어 다른 테넌트가 사용 중이면 기생성된 VM 인스턴스를 테넌트가 공유하도록 할 수 있다.
반면, 프로비저닝부(110)는 검색된 VM 템플릿에 설정된 공유방식이 공유가능인 경우, 검색된 VM 템플릿의 VM 인스턴스가 기생성되어 있지 않으면, 검색된 VM 템플릿으로부터 VM 인스턴스를 생성할 수 있다. 프로비저닝부(110)는 생성되는 VM 인스턴스를 저장부(120)에 서비스의 식별정보에 매핑하여 저장할 수 있다.
또한, 프로비저닝부(110)는 검색된 VM 템플릿의 공유방식이 공유불가능이면, VM 템플릿에 해당하는 VM 인스턴스를 생성할 수 있다. 프로비저닝부(110)는 생성되는 VM 인스턴스를 저장부(120)에 서비스의 식별정보에 매핑하여 저장할 수 있다.
프로비저닝부(110)는 사전에 생성된 VM 인스턴스 상에 또는 새로 생성된 VM 인스턴스 상에 어플리케이션을 설치하고, 설정파일을 이용하여 어플리케이션을 설정할 수 있다. 설치되는 어플리케이션은 상술한 시스템 어플리케이션과 서비스 어플리케이션을 포함하며, 시스템 어플리케이션은 필요한 경우에만 추가로 설치될 수도 있다.
3. 서비스 종료 동작
다수의 서비스 제공자들 중 하나, 예를 들어, 서비스 제공자(10)와 서비스 포탈(30) 사이에 체결된 서비스 등록 계약이 종료되면, 서비스 포탈(30)은 등록된 서비스를 삭제하고, 프로비저닝부(110)는 서비스 제공자(10)에 의해 제공되는 서비스와 관련된 VM 템플릿 및 서비스와 관련된 어플리케이션(즉, 시스템 어플리케이션과 서비스 어플리케이션) 중 적어도 하나를 저장부(120)로부터 삭제할 수 있다.
자세히 설명하면, 프로비저닝부(110)는 서비스 포탈(30)에 설정된 정책에 기초하여 VM 템플릿의 삭제 여부를 수행할 수 있다. 또한, 프로비저닝부(110)는 어플리케이션의 삭제 여부는 해당 어플리케이션을 기사용하고 있는 다른 서비스의 존재 여부 및 서비스 포탈(30)의 정책에 기초하여 삭제하거나 유지할 수 있다.
또한, 서비스를 사용중인 테넌트(20)와 서비스 포탈(30) 사이에 체결된 서비스 사용 계약이 종료되면, 프로비저닝부(110)는 테넌트(20)가 사용한 서비스와 관련된 VM 인스턴스가 다른 테넌트에 의해 공유되고 있으면, 서비스와 관련된 VM 인스턴스를 유지하고, 다른 테넌트에 의해 공유되고 있지 않으면 서비스와 관련된 VM 인스턴스를 저장부(120)로부터 삭제하거나 유지할 수 있다.
자세히 설명하면, 프로비저닝부(110)는 테넌트(20)가 종료하고자 하는 서비스를 다른 테넌트가 사용하고 있으면, 테넌트(20)에 대해 서비스중인 VM 인스턴스만 종료하거나 또는 저장부(120)로부터 삭제할 수 있다. 프로비저닝부(110)는 서비스 포탈(30)에 설정된 정책에 기초하여 VM 인스턴스를 종료하거나 또는 삭제할 수 있다.
도 3은 도 2에 도시된 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치(100)를 도시한 블록도이다.
도 3을 참조하면, SaaS 서비스 프로비저닝 장치(100)는 프로비저닝부(110) 및 저장부(120)를 포함한다.
프로비저닝부(110)는 도 2를 참조하여 설명한 프로비저닝을 수행할 수 있으며, 이를 위해, 프로비저닝부(110)는 VM 프로비저닝부(111) 및 어플리케이션 프로비저닝부(113)를 포함할 수 있다.
이하에서는 설명의 편의를 위하여, 서비스 제공자(10)가 제공하는 서비스를 ‘제1서비스’, 제1서비스를 위한 어플리케이션을 ‘제1어플리케이션’, 제1어플리케이션의 설정파일을 ‘제1설정파일’이라 한다. 제1어플리케이션은 제1시스템 어플리케이션과 제1서비스 어플리케이션설정파일을 포함하고, 제1설정파일은 제1시스템 어플리케이션의 설정파일과 제1서비스 어플리케이션의 설정파일을 포함할 수 있다.
VM 프로비저닝부(111)는 VM 저장부(121)에 저장된 다수의 VM 템플릿들 중 테넌트(20)에게 제공할 제1서비스와 관련된 VM 템플릿들 각각의 공유방식에 기초하여 VM 인스턴스를 선택적으로 생성할 수 있다. VM 템플릿의 공유방식은 7가지의 멀티 테넌시 모델 중 제1서비스가 속한 모델에 의해 결정된다.
어플리케이션 프로비저닝부(113)는 제1어플리케이션과 제1설정파일을 VM 인스턴스 상에 선택적으로 설치 또는 설정할 수 있다.
또한, 제1서비스의 등록 계약이 종료되거나, 제1서비스의 사용 계약이 종료되면, VM 프로비저닝부(111)는 기생성된 VM 템플릿들 중 적어도 하나 또는 기생성된 VM 인스턴스들 중 적어도 하나를 VM 저장부(121)로부터 선택적으로 삭제할 수도 있다. 어플리케이션 프로비저닝부(113)는 제1서비스와 관련된 제1어플리케이션과 제1설정파일을 어플리케이션 저장부(123)로부터 선택적으로 삭제할 수 있다.
저장부(120)는 VM 저장부(121)와 어플리케이션 저장부(123)를 포함할 수 있다.
VM 저장부(121)는 VM 프로비저닝부(111)에 의해 다수의 VM 유형별로 생성된 다수의 VM 템플릿들을 저장할 수 있다. 또한, VM 저장부(121)는 다수의 VM 템플릿들로부터 생성되는 다수의 VM 인스턴스들을 저장할 수 있다. 다수의 VM 템플릿들과 다수의 VM 인스턴스들은 제1서비스와 관련된VM 템플릿과 VM 인스턴스를 포함할 수 있다.
어플리케이션 저장부(123)는 서비스 제공자들로부터 업로딩되는 다수의 서비스들의 구동에 필요한 시스템 어플리케이션들 및 서비스를 위한 서비스 어플리케이션들 중 적어도 하나와, 시스템 어플리케이션들의 설정파일들 및 서비스 어플리케이션들의 설정파일들 중 적어도 하나를 저장할 수 있다.
이하에서는 다수의 서비스들 중 테넌트(20)가 사용할 제1서비스를 예로 들어, 서비스 추가 동작, 서비스 사용 동작 및 서비스 종료 동작을 포함하는 프로비저닝에 대해 자세히 설명한다.
1. 서비스 추가 동작
서비스 제공자(10)와 서비스 포탈(30) 사이에 서비스 등록 계약이 체결된 후, 서비스 제공자(10)가 제1서비스의 제공에 사용되는 VM 유형(예를 들어, WEB 또는 WAS 또는 DB 중 적어도 하나)을 선택하고, VM 유형에 해당하는 VM 템플릿을 업로딩하면, VM 프로비저닝부(111)는 선택된 VM 유형에 해당하는 VM 템플릿을 생성하고, 생성된 VM 템플릿을 VM 저장부(121)에 저장할 수 있다.
예를 들어, 서비스 제공자(10)가 제1 내지 제3VM 유형들로서 각각 WEB, WAS 및 DB를 선택한 경우, VM 프로비저닝부(111)는 제1VM 유형인 WEB에 해당하는 VM 템플릿으로서 Apache, 제2VM 유형인 WAS에 해당하는 VM 템플릿으로서 Tomcat, 제3VM 유형인 DB에 해당하는 VM 템플릿으로서 MySQL을 생성할 수 있다.
또한, 서비스 제공자(10)가 적어도 하나의 VM 유형을 선택한 후 제1어플리케이션과 제1설정파일을 SaaS 프로비저닝 장치(100)로 업로딩하면, VM 프로비저닝부(111)는 제1어플리케이션 중 제1시스템 어플리케이션을 필요한 경우 VM 템플릿 상에 설치할 수 있다.
어플리케이션 프로비저닝부(113)는 업로딩된 제1시스템 어플리케이션, 제1시스템 어플리케이션의 설정파일, 제1서비스 어플리케이션 및 제1서비스 어플리케이션의 설정파일을 어플리케이션 저장부(123)에 저장할 수 있다.
2. 서비스 사용 동작-VM 프로비저닝 및 어플리케이션 프로비저닝
서비스 사용 계약이 체결되면 VM 프로비저닝부(111)는 테넌트(20)에게 제1서비스를 제공할 시기를 판단한다. 제1서비스를 제공할 시기에 도달하면, VM 프로비저닝부(111)는 제1서비스와 관련된 적어도 하나의 VM 유형에 해당하는 VM 템플릿으로부터 VM 인스턴스를 생성할 수 있다. VM 프로비저닝부(111)는 제1서비스가 속하는 모델에 설정된 공유방식을 참조하여 VM 인스턴스를 생성하거나 공유할 수 있다. 이하에서는, 제1VM 유형에 해당하는 제1VM 템플릿과 제1VM 템플릿에 대응하는 제1VM 인스턴스를 예로 들어 설명한다.
또한, VM 프로비저닝부(111)는 제1VM 템플릿 당 하나 이상의 제1VM 인스턴스를 생성할 수 있다. 생성되는 제1VM 인스턴스의 개수는 서비스 제공자(10)가 서비스 등록 계약 시 정한 개수이거나, 테넌트(20)가 서비스 사용 계약 시 정한 개수이거나, 또는, 오토 스케일링(Auto Scaling)을 통해 가변적으로 변할 수 있다. 오토 스케일링은 초기에 설정된 개수만큼의 제1VM 인스턴스를 만들고, 서비스 실행 시 부하에 따라 동적으로 또는 자동으로 서비스 인스턴스의 개수가 추가 또는 감소되는 것이다.
VM 프로비저닝부(111)는 생성된 제1VM 인스턴스를 VM 저장부(121)에 저장할 수 있다.
VM 프로비저닝부(111)가 제1VM 인스턴스를 생성하는 동작을 두 가지 예를 들어 설명한다.
첫 번째 예로, VM 프로비저닝부(111)는 테넌트(20)에게 제1서비스를 제공할 시기에 도달하면, VM 저장부(121)에 저장된 다수의 VM 템플릿들 중 제1서비스에 해당하는 제1VM 템플릿을 검색한다. VM 프로비저닝부(111)는 검색된 제1VM 템플릿의 제1VM 인스턴스가 다른 테넌트(제1서비스를 사용 중인 테넌트로서, 이하, ‘제2테넌트’라 한다)에게 제공 중이면서, 제1VM 템플릿의 공유방식이 공유가능이면, 제1VM 인스턴스를 제1테넌트 및 제2테넌트가 공유하도록 할 수 있다.
예를 들어, 제1서비스가 제4모델을 지원하고, 제1서비스를 제공하는데 필요한 VM 유형이 WEB, WAS 및 DB를 포함하는 경우 WAS에 설정된 공유방식은 공유가능이고, WEB과 DB에 설정된 공유방식은 공유불가능이라고 하자. 이러한 경우, VM 프로비저닝부(111)는 WAS에 대해서는 VM 프로비저닝을 선택적으로 수행하고, WEB과 DB에 대해서는 VM 프로비저닝을 항상 수행할 수 있다. 특히, VM 프로비저닝부(111)는 WAS의 VM 인스턴스를 제2테넌트가 이미 사용하고 있으면, 즉, 제2테넌트가 제1서비스를 사용하고 있으면, WAS의 VM 인스턴스를 생성하지 않고, 제1테넌트와 제2테넌트가 WAS의 VM 인스턴스를 공유하도록 할 수 있다. 이는 제1서비스는 WAS를 공유하도록 설정된 멀티 테넌트 모델을 지원하기 때문이다.
또한, VM 프로비저닝부(111)는 검색된 제1VM 템플릿에 설정된 공유방식이 공유가능이나, 제1서비스를 다른 테넌트가 사용 중이지 않으면, 즉, 제1VM 인스턴스가 기생성되어 있지 않으면, 제1VM 템플릿으로부터 제1VM 인스턴스를 생성할 수 있다.
반면, VM 프로비저닝부(111)는 검색된 제1VM 템플릿의 제1VM 인스턴스가 제2테넌트에게 제공 중이나 제1VM 템플릿의 공유방식이 공유불가능이면, 제1VM 템플릿으로부터 제1VM 인스턴스를 추가로 생성할 수 있다. 이는 제1서비스는 제1VM 템플릿에 대응하는 VM 유형(예를 들어, DB)을 공유하지 않도록 설정된 제2모델과 같은 멀티 테넌트 모델을 지원하기 때문이다.
두 번째 예로, VM 프로비저닝부(111)는 테넌트(20)에게 제1서비스를 제공할 시기에 도달하면, 제1VM 템플릿의 공유방식이 공유가능인지 먼저 확인할 수 있다. 공유가능한 것으로 확인되면, VM 프로비저닝부(111)는 제1VM 인스턴스가 제2테넌트에게 제공 중이면, 제1VM 인스턴스를 제1테넌트(20)와 제2테넌트가 공유하도록 할 수 있다.
반면, 제1VM 템플릿의 공유방식이 공유가능한 것으로 확인되었으나, 제1VM 인스턴스가 제2테넌트에게 제공 중이지 않은 경우, VM 프로비저닝부(111)는 VM 저장부(121)에 저장된 다수의 VM 템플릿들 중 제1서비스와 관련된 VM 템플릿을 검색하고, 검색된 제1VM 템플릿으로부터 제1VM 인스턴스를 생성할 수 있다.
제1VM 인스턴스가 생성되면, 어플리케이션 프로비저닝부(113)는 어플리케이션 저장부(123)로부터 제1서비스와 관련된 제1어플리케이션과 설정파일을 읽어와, 생성된 제1VM 인스턴스 상에 제1어플리케이션을 설치하고, 제1어플리케이션의 설정파일을 이용하여 제1어플리케이션을 설정할 수 있다.
어플리케이션 프로비저닝부(113)는 제1시스템 어플리케이션의 설치, 제1시스템 어플리케이션의 설정, 제1서비스 어플리케이션의 설치 및 제1서비스 어플리케이션의 설정 순서로 어플리케이션 프로비저닝을 수행할 수 있으나, 이러한 순서는 서비스 제공자(10)에 의해 설정파일에 정의된 순서를 따르며, 이에 한정되지 않는다. 예를 들어, 제1시스템 어플리케이션이 제1VM 템플릿 상에 이미 설치된 후, 어플리케이션 프로비저닝부(113)는 어플리케이션 저장부(123)에 저장된 제1시스템 어플리케이션의 설정파일을 이용하여 제1시스템 어플리케이션을 설정할 수 있다. 필요한 경우, 어플리케이션 프로비저닝부(113)는 어플리케이션 저장부(123)로부터 제1시스템 어플리케이션을 읽어와 VM 인스턴스 상에 추가로 설치하고, 제1시스템 어플리케이션의 설정파일을 설정할 수 있다.
다음, 어플리케이션 프로비저닝부(113)는 어플리케이션 저장부(123)에 저장된 제1서비스 어플리케이션을 읽어와 제1VM 인스턴스 상에 설치하고, 설치된 제1서비스 어플리케이션의 설정파일을 이용하여 제1서비스 어플리케이션을 설정할 수 있다.
제1어플리케이션이 제1VM 인스턴스 상에 설치되고, 설정파일에 의해 제1어플리케이션이 설정되면, 제1어플리케이션이 설치 및 설정된 제1VM 인스턴스는 테넌트(20)에게 SaaS 서비스를 제공하는 물리적인 서버(미도시)에 저장될 수 있다.
이로써, VM 프로비저닝 및 어플리케이션 프로비저닝이 완료된다.
3. 서비스 종료 동작
서비스 종료 동작은 서비스 등록 계약의 종료와 서비스 사용 계약의 종료 두 가지로 구분될 수 있다.
먼저, 서비스 제공자(10)와 서비스 포탈(30) 사이에 체결된 제1서비스의 등록 계약이 종료되면, 서비스 포탈(30)은 서비스 포탈(30)에 등록된 제1서비스를 삭제할 수 있다. 그리고, VM 프로비저닝부(111)는 제1서비스와 관련된 VM 템플릿들을 VM 저장부(121)로부터 삭제하거나, 또는 어플리케이션 프로비저닝부(113)는 제1어플리케이션을 어플리케이션 저장부(123)로부터 삭제할 수 있다. VM 프로비저닝부(111)는 제1서비스를 이용 중인 테넌트들이 없는 경우 제1서비스의 등록 계약을 종료할 수 있으나, 이는 일 예로서 이에 한정되지 않는다.
다음, 테넌트(20)와 서비스 포탈(30) 사이에 체결된 서비스 사용 계약이 종료되면, VM 프로비저닝부(111)는, 테넌트(20)가 사용한 제1서비스와 관련된 제1VM 인스턴스가 다른 테넌트들에 의해 공유되고 있지 않으면, 제1VM 인스턴스를 서비스 포탈 정책에 따라 VM 저장부(121)로부터 삭제하거나 유지할 수 있다. 예를 들어, 추후 제1VM 인스턴스를 다시 사용할 경우를 고려하여 제1VM 인스턴스를 삭제하지 않고 종료만 할 수 있으며, 또한, 제1VM 인스턴스를 저장할 공간이 부족한 경우 바로 삭제할 수도 있다.
또한, VM 프로비저닝부(111)는 제1VM 인스턴스가 다른 테넌트들 중 적어도 하나에 의해 공유되고 있으면, 예를 들어, 제2테넌트도 제1서비스를 사용 중이며 제1VM 인스턴스를 테넌트(20)와 공유하고 있으면, 공유 중인 제1VM 인스턴스 외의 다른 VM 인스턴스만 종료하거나 VM 저장부(121)로부터 삭제할 수 있다.
도 4는 제4모델을 지원하는 제1서비스를 제1내지 제3테넌트들(T1, T2, T3)이 사용하고 있는 일 예를 보여주는 도면이다.
도 4를 참조하면, 제1내지 제3테넌트들(T1, T2, T3)이 사용 중인 제1서비스는 VM 유형들로서 WEB, WAS 및 DB를 포함하고 있으며, DB를 공유할 수 있다. 따라서, 제1내지 제3테넌트들(T1, T2, T3)은 DB의 VM 인스턴스를 공유하고, WEB의 VM 인스턴스(WEB1, WEB2, WEB3)와 WAS의 VM 인스턴스(WAS1, WAS2, WAS3)는 개별적으로 사용하고 있다. 이 때, 제4테넌트(T4)가 제1서비스를 사용할 시기가 되면, VM 프로비저닝부(111)는 DB의 VM 인스턴스는 제1내지 제4테넌트들(T1, T2, T3, T4)이 공유하도록 하고, WEB의 VM 인스턴스(WEB4)와 WAS의 VM 인스턴스(WAS4)를 추가로 생성하여 제4테넌트에게 제공할 수 있다.
또한, 제1내지 제4테넌트들(T1, T2, T3, T4)이 제1서비스를 사용하는 중 제1테넌트(T1)의 서비스 사용 계약이 종료되면, VM 프로비저닝부(111)는 DB의 VM 인스턴스를 제2내지 제4테넌트들(T2, T3, T4)이 아직 사용 중이므로, DB의 VM 인스턴스는 유지하고 제1테넌트(T1)가 사용하던 WAS의 VM 인스턴스(WAS1)과 WEB의 VM 인스턴스(WEB1)은 VM 저장부(121)로부터 삭제할 수 있다.
도 5는 본 발명적 개념의 예시적 실시예에 따른 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법을 설명하기 위한 흐름도이다.
도 5의 SaaS 서비스 프로비저닝 방법을 수행하는 SaaS 서비스 프로비저닝 장치는 도 2 또는 도 3을 참조하여 설명한 SaaS 서비스 프로비저닝 장치(100) 또는 장치의 프로세서일 수 있다.
도 5를 참조하면, 서비스 제공자와 서비스 포탈 사이에 서비스의 등록 계약이 체결되면(S505), SaaS 서비스 프로비저닝 장치는 서비스 제공자로부터 서비스의 제공에 사용되는 적어도 하나의 VM 유형을 선택 받을 수 있다(S510). S510단계에서, 서비스 제공자는 하나의 서비스마다 적어도 하나 이상의 VM 유형을 선택할 수 있으며, 이하에서는 다수의 VM 유형들 중 하나의 VM 유형을 예로 들어 설명한다. VM 유형들은 예를 들어, WEB, WAS 및 DB를 포함한다.
SaaS 서비스 프로비저닝 장치는 서비스 제공자로부터 서비스를 제공하는데 필요한 어플리케이션 및 어플리케이션의 설정파일을 수신하여 저장할 수 있다(S515). 수신되는 어플리케이션 및 설정파일은 시스템 어플리케이션, 서비스 어플리케이션, 시스템 어플리케이션의 설정파일 및 서비스 어플리케이션의 설정파일을 포함할 수 있다.
SaaS 서비스 프로비저닝 장치는 S510단계에서 선택된 VM 유형에 해당하는 VM 템플릿을 생성하여 저장할 수 있다(S520). S520단계에서, SaaS 서비스 프로비저닝 장치는 VM 템플릿에 필요한 시스템 어플리케이션을 VM 템플릿에 설치하여 함께 저장할 수도 있다.
상술한 S505단계 내지 S520단계의 서비스 추가 동작이 완료된 후, 테넌트와 서비스 포탈 간의 서비스 사용 계약이 체결될 수 있다(S525). S525단계에서, 테넌트는 서비스 포탈에 등록된 다수의 서비스들 중 사용할 서비스를 검색하고 서비스 사용 계약을 체결할 수 있다.
SaaS 서비스 프로비저닝 장치는 테넌트가 서비스를 사용할 시기에 도달하면(S530), 기저장된 다수의 VM 템플릿들로부터 테넌트에게 제공할 서비스와 관련된 VM 템플릿을 검색할 수 있다(S535).
기저장된 다수의 VM 템플릿들에 서비스와 관련된 VM 템플릿이 검색되면, SaaS 서비스 프로비저닝 장치는 다른 테넌트가 동일한 VM 템플릿의 VM 인스턴스를 사용 중인지 확인할 수 있다(S540).
다른 테넌트가 동일한 VM 템플릿의 VM 인스턴스를 사용 중이면(S540-Y), SaaS 서비스 프로비저닝 장치는 해당 VM 인스턴스를 다른 테넌트와 공유 가능한지 확인할 수 있다(S545). S540단계 및 S545단계에서, SaaS 서비스 프로비저닝 장치는 테넌트들에게 제공되는 서비스의 모델과 서비스를 제공하는데 필요한 VM 유형을 저장하고 있으므로 쉽게 판단할 수 있다. 특히, S545단계에서 SaaS 서비스 프로비저닝 장치는 테넌트와 다른 테넌트가 사용하는 서비스가 동일한 서비스이고, 서비스의 모델에 해당 VM 템플릿이 공유가능으로 설정되어 있는지를 확인할 수 있다.
SaaS 서비스 프로비저닝 장치는 VM 템플릿에 설정된 공유방식이 공유 가능이면(S545-Y), 다른 테넌트가 사용 중인 VM 인스턴스를 공유하도록 할 수 있으며, 따라서, VM 인스턴스를 새로 생성하지 않을 수 있다(S550).
또한, 검색된 VM 템플릿을 다른 테넌트가 사용하고 있지 않으면(S540-N), SaaS 서비스 프로비저닝 장치는 검색된 VM 템플릿으로부터 VM 인스턴스를 생성하여 저장하고, 물리적인 서버로 제공할 수 있다(S555). 이로써 테넌트는 VM 인스턴스를 이용하여 서비스를 사용할 수 있다.
한편, 상술한 S525단계 내지 S555단계에 의해 서비스 사용 동작이 완료된 후, 서비스 제공자와 서비스 포탈 간의 서비스 등록 계약이 종료될 수 있다(S560).
서비스 등록 계약이 종료되면(S560-Y), 서비스 포탈은 등록된 서비스를 삭제하고, SaaS 서비스 프로비저닝 장치는 서비스와 관련된 VM 템플릿 및 서비스와 관련된 어플리케이션(즉, 시스템 어플리케이션과 서비스 어플리케이션) 중 적어도 하나를 저장부(예를 들어, 저장부(120))로부터 삭제할 수 있다(S565). SaaS 서비스 프로비저닝 장치는 서비스 제공자가 제공하는 서비스를 사용 중인 테넌트가 없는 경우 S565단계를 수행할 수 있다.
반면, 테넌트와 서비스 포탈 간의 서비스 사용 계약이 종료되면(S570), SaaS 서비스 프로비저닝 장치는 테넌트가 사용한 VM 인스턴스가 다른 테넌트에 의해 공유되고 있는지 확인할 수 있다(S575).
테넌트가 사용한 VM 인스턴스가 다른 테넌트에 의해 공유되고 있으면(S575-Y), SaaS 서비스 프로비저닝 장치는 다른 테넌트가 해당 서비스의 사용을 종료할 때까지 대기하고, 종료되면 VM 인스턴스의 제공을 종료하거나 VM 인스턴스 자체를 저장부로부터 삭제할 수 있다(S580).
반면, 테넌트가 사용한 VM 인스턴스가 다른 테넌트에 의해 공유되고 있지 않으면(S575-N), SaaS 서비스 프로비저닝 장치는 VM 인스턴스를 종료하거나 삭제할 수 있다(S585).
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 서비스 제공자 20: 테넌트
30: 서비스 포탈 100: SaaS 서비스 프로비저닝 장치
110: 프로비저닝부 111: VM 프로비저닝부
113: 어플리케이션 프로비저닝부 120: 저장부
121: VM 저장부 123: 어플리케이션 저장부

Claims (35)

  1. 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 저장부; 및
    상기 다수의 가상머신 유형별로 저장된 다수의 가상머신 템플릿들을 이용하여, 다수의 서비스들마다 다르게 사용되는 가상머신 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행하는 프로비저닝부;를 포함하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  2. 제1항에 있어서,
    상기 다수의 서비스들을 제공하는 서비스 제공자들과 서비스 포탈 사이에 상기 서비스의 등록 계약이 체결되면,
    상기 서비스 제공자들은 상기 다수의 서비스들마다 사용되는 가상머신 유형을 선택하고, 상기 프로비저닝부는 상기 서비스 제공자들에 의해 선택된 가상머신 유형들에 해당하는 가상머신 템플릿들을 생성하여 상기 저장부에 저장하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  3. 제2항에 있어서,
    상기 서비스 제공자들은 상기 다수의 서비스들을 제공하는데 필요한 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 상기 프로비저닝부에게 전달하며, 상기 프로비저닝부는 상기 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 상기 저장부에 저장하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  4. 제1항에 있어서,
    상기 다수의 서비스들 중 하나를 테넌트가 사용할 시기에 도달하면,
    상기 프로비저닝부는, 상기 저장된 다수의 가상머신 템플릿들 중 테넌트에게 제공할 서비스와 관련된 가상머신 템플릿을 검색하고, 상기 검색된 가상머신 템플릿에 설정된 공유방식에 기초하여, 상기 검색된 가상머신 템플릿으로부터 가상머신 인스턴스를 선택적으로 생성하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  5. 제4항에 있어서,
    상기 프로비저닝부는 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 다른 테넌트가 사용 중이면 상기 기생성된 가상머신 인스턴스를 상기 테넌트가 공유하도록 하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  6. 제4항에 있어서,
    상기 프로비저닝부는 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 있지 않으면, 상기 검색된 가상머신 템플릿으로부터 상기 가상머신 인스턴스를 생성하며, 상기 생성된 가상머신 인스턴스 상에 상기 서비스를 제공하는데 필요한 어플리케이션을 설치하고, 상기 어플리케이션의 설정파일을 설정하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  7. 제3항에 있어서,
    상기 서비스 제공자들 중 하나와 상기 서비스 포탈 사이에 체결된 서비스의 등록 계약이 종료되면,
    상기 프로비저닝부는, 상기 서비스 제공자들 중 하나에 의해 제공되는 서비스와 관련된 가상머신 템플릿 및 상기 서비스와 관련된 어플리케이션 중 적어도 하나를 상기 저장부로부터 삭제하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  8. 제1항에 있어서,
    상기 다수의 서비스들 중 하나를 사용중인 테넌트와 상기 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면,
    상기 프로비저닝부는, 상기 테넌트가 사용한 서비스와 관련된 가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있으면, 상기 서비스와 관련된 가상머신 인스턴스를 유지하고, 상기 다른 테넌트에 의해 공유되고 있지 않으면 상기 서비스와 관련된 가상머신 인스턴스를 종료하거나 상기 저장부로부터 삭제하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  9. 다수의 서비스들을 제공하는데 필요한 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 저장부; 및
    상기 저장된 다수의 가상머신 템플릿들 중 제1테넌트에게 제공할 제1서비스와 관련된 가상머신 템플릿인 제1가상머신 템플릿의 공유방식에 기초하여 제1가상머신 인스턴스를 선택적으로 생성하는 가상머신 프로비저닝부; 및
    상기 제1서비스를 위한 어플리케이션인 제1어플리케이션을 상기 제1가상머신 인스턴스 상에 선택적으로 설치하는 어플리케이션 프로비저닝부;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  10. 제9항에 있어서,
    상기 가상머신 프로비저닝부는,
    다수의 가상머신 템플릿들 중 상기 제1서비스와 관련된 제1가상머신 유형에 해당하는 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  11. 제9항 또는 제10항에 있어서,
    상기 어플리케이션 프로비저닝부는,
    상기 생성된 제1가상머신 인스턴스 상에 상기 제1어플리케이션을 설치하고, 상기 제1어플리케이션의 설정파일을 이용하여 상기 제1어플리케이션의 설정파일을 설정하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  12. 제9항에 있어서,
    상기 가상머신 프로비저닝부는,
    상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하고, 상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유가능이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  13. 제12항에 있어서,
    상기 가상머신 프로비저닝부는,
    상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 상기 제2테넌트에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유불가능이면, 상기 제1가상머신 인스턴스를 추가로 생성하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  14. 제9항에 있어서,
    상기 가상머신 프로비저닝부는,
    상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 제1가상머신 템플릿의 공유방식이 공유가능인지 판단하고, 공유가능한 경우, 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  15. 제14항에 있어서,
    상기 가상머신 프로비저닝부는,
    상기 제1가상머신 템플릿의 공유방식이 공유가능이고, 상기 제1가상머신 인스턴스가 다른 테넌트에게 제공 중이지 않은 경우, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하고, 상기 검색된 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  16. 제10항에 있어서,
    상기 저장부는,
    상기 다수의 가상머신 유형별로 생성된 상기 다수의 가상머신 템플릿들을 저장하는 가상머신 저장부; 및
    상기 다수의 서비스들의 구동에 필요한 시스템 어플리케이션들 및 상기 서비스를 위한 서비스 어플리케이션들 중 적어도 하나와, 상기 시스템 어플리케이션들의 설정파일들 및 상기 서비스 어플리케이션들의 설정파일들 중 적어도 하나를 저장하는 어플리케이션 저장부;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  17. 제16항에 있어서,
    상기 제1서비스를 제공하는 서비스 제공자와 서비스 포탈 사이에 상기 제1서비스의 등록 계약이 체결되면,
    상기 가상머신 프로비저닝부는, 상기 서비스 제공자에 의해 선택된 제1가상머신 유형에 해당하는 제1가상머신 템플릿을 생성하여 상기 가상머신 저장부에 저장하며, 상기 어플리케이션 프로비저닝부는 상기 서비스 제공자에 의해 제공되는 제1어플리케이션을 상기 어플리케이션 저장부에 저장하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  18. 제17항에 있어서,
    상기 서비스 제공자와 상기 서비스 포탈 사이에 체결된 상기 제1서비스의 등록 계약이 종료되면,
    상기 가상머신 프로비저닝부는 상기 제1서비스와 관련된 제1가상머신 템플릿을 상기 가상머신 저장부로부터 삭제하거나, 또는 상기 어플리케이션 프로비저닝부는 상기 제1어플리케이션을 상기 어플리케이션 저장부로부터 삭제하는 것을 특징으로 하는 멀티테넌트 환경을 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  19. 제9항에 있어서,
    상기 제1테넌트와 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면,
    상기 가상머신 프로비저닝부는, 상기 제1테넌트가 사용한 제1서비스와 관련된 제1가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있지 않으면 상기 제1가상머신 인스턴스를 서비스 포탈 정책에 따라 상기 저장부로부터 삭제하거나 유지하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  20. 제9항에 있어서,
    상기 다수의 가상머신 유형들은 WEB(World Wide Web) 서버 유형, WAS(Web Application Server) 유형 및 DB(Database) 유형을 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치.
  21. 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 단계; 및
    상기 저장된 다수의 가상머신 템플릿들 중 적어도 하나를 이용하여, 다수의 서비스들마다 다르게 사용되는 가상머신 템플릿의 공유방식에 따라 적응적으로 SaaS 서비스 프로비저닝을 수행하는 단계;를 포함하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  22. 제21항에 있어서,
    상기 다수의 서비스들을 제공하는 서비스 제공자들과 서비스 포탈 사이에 상기 서비스의 등록 계약이 체결되는 단계;
    상기 서비스 제공자들에 의해 상기 다수의 서비스들마다 사용되는 가상머신 유형이 선택되면, 상기 선택된 가상머신 유형들에 해당하는 가상머신 템플릿들을 생성하는 단계; 및
    상기 서비스 제공자들로부터 업로딩되는 상기 다수의 서비스들을 제공하는데 필요한 어플리케이션들 및 상기 어플리케이션들의 설정파일들을 저장하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  23. 제21항에 있어서,
    상기 프로비저닝을 수행하는 단계는,
    상기 다수의 서비스들 중 하나를 테넌트가 사용할 시기에 도달하면, 상기 프로비저닝부는, 상기 저장된 다수의 가상머신 템플릿들 중 테넌트에게 제공할 서비스와 관련된 가상머신 템플릿을 검색하는 단계;
    상기 검색된 가상머신 템플릿에 설정된 공유방식에 기초하여, 상기 검색된 가상머신 템플릿으로부터 가상머신 인스턴스를 선택적으로 생성하는 단계;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  24. 제23항에 있어서,
    상기 선택적으로 생성하는 단계는, 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 다른 테넌트가 사용 중이면 상기 기생성된 가상머신 인스턴스를 상기 테넌트가 공유하도록 하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  25. 제23항에 있어서,
    상기 선택적으로 생성하는 단계는, 상기 검색된 가상머신 템플릿에 설정된 공유방식이 공유가능인 경우, 상기 검색된 가상머신 템플릿의 가상머신 인스턴스가 기생성되어 있지 않으면, 상기 검색된 가상머신 템플릿으로부터 상기 가상머신 인스턴스를 생성하는 단계; 및
    상기 생성된 가상머신 인스턴스 상에 상기 서비스를 제공하는데 필요한 어플리케이션을 설치하고, 상기 어플리케이션의 설정파일을 설정하는 단계;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  26. 제22항에 있어서,
    상기 서비스 제공자들 중 하나와 상기 서비스 포탈 사이에 체결된 서비스의 등록 계약이 종료되면, 상기 서비스 제공자들 중 하나에 의해 제공되는 서비스와 관련된 가상머신 템플릿 및 상기 서비스와 관련된 어플리케이션 중 적어도 하나를 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  27. 제21항에 있어서,
    상기 다수의 서비스들 중 하나를 사용중인 테넌트와 상기 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면,
    상기 테넌트가 사용한 서비스와 관련된 가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있으면 상기 서비스와 관련된 가상머신 인스턴스를 유지하는 단계; 및
    상기 다른 테넌트에 의해 공유되고 있지 않으면 상기 서비스와 관련된 가상머신 인스턴스를 종료하거나 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  28. 다수의 서비스들을 제공하는데 필요한 다수의 가상머신 유형별로 다수의 가상머신 템플릿들을 저장하는 단계; 및
    상기 저장된 다수의 가상머신 템플릿들 중 제1테넌트에게 제공할 제1서비스와 관련된 제1가상머신 템플릿인 제1가상머신 템플릿의 공유방식에 기초하여 제1가상머신 인스턴스를 선택적으로 생성하는 단계; 및
    상기 제1서비스를 위한 어플리케이션인 제1어플리케이션을 상기 제1가상머신 인스턴스 상에 선택적으로 설치하는 단계;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  29. 제28항에 있어서,
    상기 다수의 가상머신 유형마다 다수의 가상머신 템플릿들을 생성하여 저장하는 단계;를 더 포함하며,
    상기 선택적으로 생성하는 단계는, 상기 저장된 다수의 가상머신 템플릿들 중 상기 제1서비스와 관련된 제1가상머신 유형에 해당하는 제1가상머신 템플릿으로부터 상기 제1가상머신 인스턴스를 생성하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  30. 제28항 또는 제29항에 있어서,
    상기 선택적으로 설치 또는 설정하는 단계는,
    상기 생성된 제1가상머신 인스턴스 상에 상기 제1어플리케이션을 설치하고, 상기 제1어플리케이션의 설정파일을 이용하여 상기 제1어플리케이션의 설정파일을 설정하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  31. 제28항에 있어서,
    상기 선택적으로 생성하는 단계는,
    상기 제1테넌트에게 상기 제1서비스를 제공할 시기에 도달하면, 상기 저장된 다수의 가상머신 템플릿들 중 제1가상머신 템플릿을 검색하는 단계;
    상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 제2테넌트-상기 제1서비스를 사용 중인 테넌트-에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유가능이면, 상기 제1가상머신 인스턴스를 상기 제1테넌트 및 상기 제2테넌트가 공유하도록 하는 단계;를 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  32. 제31항에 있어서,
    상기 선택적으로 생성하는 단계는,
    상기 검색된 제1가상머신 템플릿의 가상머신 인스턴스인 상기 제1가상머신 인스턴스가 상기 제2테넌트에게 제공 중이면서, 상기 제1가상머신 템플릿의 공유방식이 공유불가능이면, 상기 제1가상머신 인스턴스를 추가로 생성하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  33. 제29항에 있어서,
    상기 제1서비스를 제공하는 서비스 제공자와 서비스 포탈 사이에 상기 제1서비스의 등록 계약이 체결되면, 상기 다수의 가상머신 템플릿들을 생성하여 저장하는 단계는, 상기 서비스 제공자에 의해 선택된 제1가상머신 유형에 해당하는 제1가상머신 템플릿을 생성하여 저장하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  34. 제33항에 있어서,
    상기 서비스 제공자와 상기 서비스 포탈 사이에 체결된 상기 제1서비스의 등록 계약이 종료되면,
    상기 제1서비스와 관련된 제1가상머신 템플릿 및 상기 제1어플리케이션 중 적어도 하나를 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
  35. 제28항에 있어서,
    상기 제1테넌트와 서비스 포탈 사이에 체결된 서비스 사용 계약이 종료되면, 상기 제1테넌트가 사용한 제1서비스와 관련된 제1가상머신 인스턴스가 다른 테넌트에 의해 공유되고 있지 않은 경우, 상기 제1가상머신 인스턴스를 서비스 포탈 정책에 따라 종료하거나 삭제하는 단계;를 더 포함하는 것을 특징으로 하는 멀티테넌트 환경을 위한 SaaS 서비스 프로비저닝 방법.
KR1020110112550A 2011-10-31 2011-10-31 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법 KR101297441B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110112550A KR101297441B1 (ko) 2011-10-31 2011-10-31 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110112550A KR101297441B1 (ko) 2011-10-31 2011-10-31 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130047491A true KR20130047491A (ko) 2013-05-08
KR101297441B1 KR101297441B1 (ko) 2013-08-16

Family

ID=48658969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110112550A KR101297441B1 (ko) 2011-10-31 2011-10-31 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101297441B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160110460A (ko) * 2014-01-21 2016-09-21 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
KR20170059449A (ko) * 2014-09-25 2017-05-30 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 단대단 라이프사이클을 제공하기 위한 시스템 및 방법
WO2018021864A1 (ko) * 2016-07-29 2018-02-01 주식회사 파수닷컴 클라우드 기반의 서비스 제공 방법
CN109643337A (zh) * 2016-07-29 2019-04-16 搜牌逻 基于云的服务提供方法
KR102178861B1 (ko) * 2019-12-28 2020-11-13 (주)케이아이티원 소프트웨어 생애 주기에 따른 서버 제공을 위한 클라우드 관리시스템

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101521475B1 (ko) * 2013-10-24 2015-05-19 에스케이텔레콤 주식회사 가상 부가가치 서비스 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101053385B1 (ko) * 2009-06-04 2011-08-01 유니시스 코포레이션 보안 맞춤형 애플리케이션 클라우드 컴퓨팅 아키텍처
KR101359690B1 (ko) * 2009-12-18 2014-02-10 한국전자통신연구원 온라인 개발환경 서버, 온라인 마켓플레이스 서버, 온라인 개발환경 구성 방법 및 개발된 애플리케이션 서비스 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160110460A (ko) * 2014-01-21 2016-09-21 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
US11343200B2 (en) 2014-01-21 2022-05-24 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
US11683274B2 (en) 2014-01-21 2023-06-20 Oracle International Corporation System and method for supporting multi-tenancy in an application server, cloud, or other environment
KR20170059449A (ko) * 2014-09-25 2017-05-30 오라클 인터내셔날 코포레이션 멀티테넌트 어플리케이션 서버 환경에서 단대단 라이프사이클을 제공하기 위한 시스템 및 방법
WO2018021864A1 (ko) * 2016-07-29 2018-02-01 주식회사 파수닷컴 클라우드 기반의 서비스 제공 방법
CN109643337A (zh) * 2016-07-29 2019-04-16 搜牌逻 基于云的服务提供方法
US11157597B2 (en) 2016-07-29 2021-10-26 Fasoo Co., Ltd. Method for providing cloud-based service
US11636184B2 (en) 2016-07-29 2023-04-25 Sparrow Co., Ltd Method for providing cloud-based service
KR102178861B1 (ko) * 2019-12-28 2020-11-13 (주)케이아이티원 소프트웨어 생애 주기에 따른 서버 제공을 위한 클라우드 관리시스템

Also Published As

Publication number Publication date
KR101297441B1 (ko) 2013-08-16

Similar Documents

Publication Publication Date Title
US10827008B2 (en) Integrated user interface for consuming services across different distributed networks
KR101297441B1 (ko) 멀티 테넌트 환경을 위한 SaaS 서비스 프로비저닝 장치 및 방법
EP2302509B1 (en) Synchronization of server-side cookies with client-side cookies
US9462055B1 (en) Cloud tiering
US8296357B2 (en) Systems and methods for remoting multimedia plugin calls
CN103873290B (zh) 一种用于评估应用的性能的方法和系统
US9178935B2 (en) Distributed steam processing
CA2890411C (en) System and method for managing dedicated caches
US10177976B2 (en) System and method for configuring network devices
CN108351769B (zh) 作为远程计算服务的仪表板
US20160344671A1 (en) Executing commands on virtual machine instances in a distributed computing environment
JP2018523434A (ja) ネットワークサービスのライフサイクル管理の方法及びデバイス
BR102016009516A2 (pt) método e sistema de geração automatizada de interface do formulário do usuário
US20120102220A1 (en) Routing traffic in an online service with high availability
US20210092073A1 (en) Resource trees by management controller
US8843915B2 (en) Signature-based update management
TW201814509A (zh) 實現網路頁面與本體應用通信的方法、裝置和電子設備
JP2017524314A (ja) プログラマティックインターフェースに従ったルータ情報の提供
KR20150102388A (ko) 클라우드 기반 네트워크 컴퓨팅 시스템
US20180239516A1 (en) Methods for generating and publishing microsites and devices thereof
US20180336058A1 (en) Apparatus for providing virtual desktop service and method for the same
Tang et al. Application centric lifecycle framework in cloud
JP2017538237A (ja) 仮想マシン名を表示するための方法、装置、およびシステム
WO2017096951A1 (zh) 一种虚拟机更新方法和装置
US10534626B2 (en) Methods for facilitating self-service automation utilities and devices thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170629

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 7