KR20150110766A - 어플리케이션 업그레이드 방법 및 장치 - Google Patents

어플리케이션 업그레이드 방법 및 장치 Download PDF

Info

Publication number
KR20150110766A
KR20150110766A KR1020157023115A KR20157023115A KR20150110766A KR 20150110766 A KR20150110766 A KR 20150110766A KR 1020157023115 A KR1020157023115 A KR 1020157023115A KR 20157023115 A KR20157023115 A KR 20157023115A KR 20150110766 A KR20150110766 A KR 20150110766A
Authority
KR
South Korea
Prior art keywords
application
node
deployed
identifier
template
Prior art date
Application number
KR1020157023115A
Other languages
English (en)
Other versions
KR101782457B1 (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20150110766A publication Critical patent/KR20150110766A/ko
Application granted granted Critical
Publication of KR101782457B1 publication Critical patent/KR101782457B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • 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

Abstract

본원의 실시태양은 어플리케이션 업그레이드 방법 및 장치를 제공하며, 이 방법 및 장치는 클라우드 컴퓨팅의 분야에 적용되고, 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다. 어플리케이션 업그레이드 방법은 어플리케이션 전개 서버에 적용되며, 어플리케이션 전개 요청을 수신하는 단계; 전개될 어플리케이션의 전개 패키지를 결정하는 단계; 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 아래라고 결정하는 단계; 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하는 단계; 제1 플랫폼 노드 업그레이드 패키지를 사용하여 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하는 단계; 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계; 및 전개될 어플리케이션의 전개 패키지를 사용하여 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하는 단계를 포함한다. 본원의 실시태양은 클라우드 컴퓨팅의 분야에서 어플리케이션 업그레이드를 위해 사용되는, 어플리케이션 업그레이드 방법 및 장치를 제공한다.

Description

어플리케이션 업그레이드 방법 및 장치{APPLICATION UPGRADE METHOD AND DEVICE}
본원은 클라우드 컴퓨팅 분야, 특히 어플리케이션 업그레이드 방법 및 장치에 관한 것이다.
클라우드 컴퓨팅의 핵심은, 사용자 요구에 따라 사용자를 위한 서비스 및 자원을 제공하기 위해 컴퓨팅 자원 풀을 구성하도록, 네트워크를 사용함으로써 접속된 컴퓨팅 소스들의 대형 퀀티티(quantity)를, 통합 방식으로 관리하고 스케줄링하는 것이다. 그러한 컴퓨팅 자원을 제공하는 네트워크를 클라우드라 한다.
클라우드 플랫폼은 어플리케이션 개발자를 위해 클라우드-기반 서비스를 제공하는 플랫폼이다. PaaS(Platform as a Service)(서비스로서의 플랫폼)는 공통 클라우드 플랫폼이며 일반화된 클라우드 컴퓨팅의 공통 서비스 모드에 속하고, 일반화된 클라우드 컴퓨팅은 개발자가 온디맨드 용이-확장 방식(on-demand easy-to-extend manner)으로 네트워크를 사용함으로써 요구된 서비스를 획득하는 것을 의미한다. PaaS는, 서비스로서 사용자를 위해, 맞춤형 방식으로 개발된 미들웨어 플랫폼을 제공한다. 필수적으로, PaaS는 제삼자 개발자에게 상업적 가치를 갖는 자원 및 서비스 플랫폼을 제공하도록, 인터넷의 서비스 및 자원을 프로그램형 인터페이스로 변환시킨다. 플랫폼 노드라고도 하는 미들웨어 플랫폼은 표준 프로그램 인터페이스 및 프로토콜을 갖는 범용 서비스이며, 하드웨어와 어플리케이션 사이 또는 운영 체제와 어플리케이션 사이에 일반적으로 위치된다. PaaS CSP(Cloud Service Provider)(클라우드 서비스 제공자)는 다양한 미들웨어 플랫폼, 예컨대, 어플리케이션 서버 및 데이터베이스를 제공한다. CSP는 플랫폼 노드를 설계하고, 개발하고 최적화할 수 있고, 어플리케이션 개발자만이, 개발에 큰 편이성을 제공하는, 플랫폼 노드 상의 어플리케이션 노드를 개발하도록 집중할 필요가 있다.
그러나, PaaS CSP는 현재 어플리케이션 개발자에게 오직 고정 버전의 플랫폼 노드를 제공하며, 모든 어플리케이션을 위한 플랫폼 노드의 버전을 유지한다. 어플리케이션 개발자가 어플리케이션 노드를 업그레이드할 필요가 있다면, 오직 업그레이드된 어플리케이션 노드가 플랫폼 노드의 버전을 대한 요건을 가지며, 플랫폼 노드의 버전이 업그레이드된 어플리케이션 노드의 요건을 충족할 수 없다면, 어플리케이션 노드는 업데이트되지 못하고, 어플리케이션은 정상적으로 작동할 수 없다.
본원의 실시태양은 어플리케이션 업그레이드 방법 및 장치를 제공하여, 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
전술한 목적을 달성하기 위하여, 다음의 기술적 해결이 본원의 실시태양에서 사용된다:
본원의 실시태양의 제1 측면은 어플리케이션 업그레이드 방법을 제공하며, 이 방법은:
어플리케이션 전개 요청을 수신하는 단계로서, 어플리케이션 전개 요청은 전개될(to-be-deployed) 어플리케이션의 전개 패키지를 포함하고, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이, 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하는, 단계;
업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하는 단계;
전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하는 단계;
제1 플랫폼 노드의 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하는 단계;
제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하는 단계;
제1 플랫폼 노드 업그레이드 패키지를 사용하여, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하는 단계;
업그레이드될(to-be-upgraded) 어플리케이션 노드의 식별자를 결정하는 단계; 및
전개될 어플리케이션의 전개 패키지를 사용하여, 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하는 단계를 포함한다.
제1 측면을 참조하면, 제1 구현가능 방법에서,
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현(node type implementation)을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제1 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계는 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 단계이거나;
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계는 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 단계이다.
제1 측면, 제1 구현가능 방법 또는 제2 구현가능 방법을 참조하면,
이 방법은, 제3 구현가능 방법에서, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드 하는 단계 전에,
전개된 어플리케이션의 식별자에 따라, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하는 단계;
전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하는 단계;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득하는 단계; 및
제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하는 단계를 더 포함하고;
이 방법은, 제1 플랫폼 노드 업그레이드 패키지를 사용하여, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하는 단계 전에,
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하는 단계; 및
제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하는 단계를 더 포함한다.
본원의 실시태양의 제2 측면은:
전개될 어플리케이션의 전개 패키지를 생성하는 단계로서, 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하는, 단계;
어플리케이션 전개 요청을 생성하는 단계로서, 어플리케이션 전개 요청이 전개될 어플리케이션의 전개 패키지를 포함하는, 단계; 및
어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하는 단계를 포함하는, 어플리케이션 업그레이드 방법을 제공한다.
제2 측면을 참조하면, 제1 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제2 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함한다.
제2 측면, 제1 구현가능 방법 또는 제2 구현가능 방법을 참조하면, 제3 구현가능 방법에서, 이 방법은, 전개될 어플리케이션의 전개 패키지를 생성하는 단계 전에, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하는 단계를 더 포함하고, 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용한다.
본원의 실시태양의 제3 측면은,
어플리케이션 전개 요청을 수신하고; 전개될 어플리케이션의 어플리케이션 전개 패키지를 결정 모듈 및 업그레이딩 모듈로 전송하도록 구성된 수신 모듈로서, 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이, 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하는, 수신 모듈;
수신 모듈에 의해 전송된 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하여, 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하고; 전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하여, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고; 제1 플랫폼 노드의 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고; 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하여, 제1 플랫폼 노드 업그레이드 패키지를 업그레이딩 모듈로 전송하도록 구성된 결정 모듈; 및
결정 모듈에 의해 전송된 제1 플랫폼 노드 업그레이드 패키지를 수신하고, 제1 플랫폼 노드 업그레이드 패키지를 사용하여, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하도록 구성된 업그레이딩 모듈
을 포함하는, 어플리케이션 전개 서버를 제공한다.
결정 모듈은, 전개된 어플리케이션의 노드 템플릿의 식별자에 따라, 업그레이드될 어플리케이션 노드의 식별자를 결정하고, 업그레이드될 어플리케이션 노드의 식별자를 업그레이딩 모듈로 전송하도록 더 구성되며,
업그레이딩 모듈은 수신 모듈에 의해 전송된 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하고, 결정 모듈에 의해 전송된 업그레이드될 어플리케이션 노드의 식별자를 수신하고, 전개될 어플리케이션의 전개 패키지를 사용하여 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 더 구성된다.
제3 측면을 참조하면, 제1 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제3 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 결정 모듈이 구체적으로, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하도록 구성되거나;
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것이다.
제3 측면, 제1 구현가능 방법, 또는 제2 구현가능 방법을 참조하면, 제3 구현가능 방법에서, 결정 모듈은:
전개된 어플리케이션의 식별자에 따라, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득하고;
제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하도록 더 구성되고,
업그레이딩 모듈은:
제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하도록 더 구성된다.
본원의 실시태양의 제4 측면은,
전개될 어플리케이션의 전개 패키지를 생성하도록 구성되고, 어플리케이션 전개 요청을 생성하고, 어플리케이션 전개 요청을 전송 모듈로 전송하도록 더 구성된 생성 모듈로서, 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하고, 어플리케이션 전개 요청이 전개될 어플리케이션의 전개 패키지를 포함하는, 생성 모듈; 및
생성 모듈에 의해 전송된 어플리케이션 전개 요청을 수신하고, 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성된 전송 모듈을 포함하는, 사용자 기기(user equipment)를 제공한다.
제4 측면을 참조하면, 제1 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제4 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함한다.
제4 측면, 제1 구현가능 방법, 또는 제2 구현가능 방법을 참조하면, 제3 구현가능 방법에서, 사용자 기기는: 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 구성된 결정 모듈로서, 제1 플랫폼 노드 템플릿이 스소 노드 템플릿으로서 전개된 어플리케이션의 노드 템플릿을 사용하는, 결정 모듈을 더 포함한다.
본원의 실시태양의 제5 측면은:
어플리케이션 전개 요청을 수신하고, 전개될 어플리케이션의 전개 패키지를 프로세서로 전송하도록 구성된 수신기로서, 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이, 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하는, 수신기;
프로세서로서,
수신기에 의해 전송된 전개될 어플리케이션의 전개 패키지를 수신하고, 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하고;
전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고;
제1 플랫폼 노드의 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고;
제1 플랫폼 노드 템플릿에 대한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지을 획득하고;
제1 플랫폼 노드 업그레이드 패키지를 사용하여 제1 플랫폼 노드 템플릿의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하고;
업그레이드될 어플리케이션 노드의 식별자를 결정하고;
전개될 어플리케이션의 전개 패키지를 사용하여 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 구성된 프로세서
를 포함하는 어플리케이션 전개 서버를 제공한다.
제5 측면을 참조하면, 제1 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제5 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 프로세서는 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하도록 구성되거나;
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것이다.
제5 측면, 제1 구현가능 방법, 또는 제2 구현가능 방법을 참조하면, 제3 구현가능 방법에서, 프로세서는,
전개된 어플리케이션의 식별자에 따라, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득하고;
제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하고;
제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하도록 더 구성된다.
본원의 실시태양의 제6 측면은 사용자 기기를 포함하며, 이 사용자 기기는,
프로세서로서,
전개될 어플리케이션의 전개 패키지를 생성하고 - 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 -,
어플리케이션 전개 요청을 생성하고 - 어플리케이션 전개 요청이 전개될 어플리케이션의 전개 패키지를 포함함 -,
어플리케이션 전개 요청을 어플리케이션 송신기로 전송하도록 구성된,
프로세서; 및
프로세서에 의해 전송된 어플리케이션 전개 요청을 수신하고, 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성된 송신기
를 포함한다.
제6 측면을 참조하면, 제1 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에 포함되어 있거나;
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
제6 측면 또는 제1 구현가능 방법을 참조하면, 제2 구현가능 방법에서, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함한다.
제6 측면, 제1 구현가능 방법, 또는 제2 구현가능 방법을 참조하면, 제3 구현가능 방법에서, 프로세서는
전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 더 구성되고, 이때 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용한다.
전술한 해결책으로부터 전개될 어플리케이션의 전개 패키지에 있는 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다는 것을 알 수 있다. 어플리케이션 전개 서버가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위해 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위해 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동하는 것을 보장한다.
본원의 실시태양의 기술적 해결을 보다 자세하게 기술하기 위하여, 상기 실시태양이나 종래 기술을 설명하기 위해 요구되는 수반되는 도면을 이하 간략히 소개한다. 명백히, 본 명세서에 수반되는 도면은 단지 본원의 일부 실시태양을 도시하는 것이며, 이 분야의 통상의 기술자는 창작적 노력 없이 수반되는 도면으로부터 다른 도면을 도출할 수도 있다.
도 1a는 어플리케이션 업그레이드 방법이 본원의 실시태양에 따라 기초로 하는 어플리케이션 전개 디스크립션 파일에 의해 기술된 서비스 템플릿의 개략적 구조도이다;
도 1b는 본원의 실시태양에 따른 도 1a에 대응하는 플랜의 개략적 구조도이다;
도 2는 본원의 실시태양에 따른 어플리케이션 업그레이드 방법의 개략적 흐름도이다;
도 3은 본원의 실시태양에 따른 어플리케이션 업그레이드 방법의 개략적 흐름도이다;
도 4는 본원의 실시태양에 따른 어플리케이션 업그레이드 방법의 개략적 흐름도이다;
도 5는 본원의 실시태양에서, 어플리케이션 전개 패키지 A의 디스크립션 및 어플리케이션 전개 패키지 B의 디스크립션에 따라 어플리케이션 전개 서버에 의해, 어플리케이션 노드 app의 업그레이드를 결정하는 개략도이다;
도 6은 본원의 실시태양에 따른, 어플리케이션 전개 서버에 의해, 전개된 어플리케이션 노드를 업그레이드하는 개략도이다;
도 7은 본원의 실시태양에 따른 전개될 어플리케이션의 전개 패키지의 개략도이다;
도 8은 본원의 실시태양에 따른 어플리케이션 전개 서버의 개략적 구조도이다;
도 9는 본원의 실시태양에 따른 사용자 기기의 개략적 구조도이다;
도 10은 본원의 실시태양에 따른 또 다른 사용자 기기의 개략적 구조도이다;
도 11은 본원의 실시태양에 따른 또 다른 어플리케이션 전개 서버의 개략적 구조도이다;
도 12는 본원의 실시태양에 따른 또 다른 사용자 기기의 개략적 구조도이다.
본원의 실시태양의 수반되는 도면을 참조하여 본원의 실시태양의 기술적 해결책을 이하 자세하게 기재한다. 명백히, 기재된 실시태양은 단지 일부이며, 본원의 모든 실시태양은 아니다. 창작적 노력 없이 본원의 실시태양에 기초하여 당업자에 의해 획득되는 모든 다른 실시태양은 본원의 보호 범위 내에 있을 것이다.
본원의 실시태양은 TOSCA 표준에 적용될 수 있거나, 또 다른 측면에 적용될 수 있는 어플리케이션 업그레이드 방법을 제공하며, TOSCA 표준에 제한되지는 않는다. 도 1a에서, 어플리케이션 업그레이드 방법은 다음을 포함한다:
본원의 실시태양에서, 어플리케이션을 전개하기 위해 요구되는 정보가, 어플리케이션 전개 서버 상의 클라우드 서비스 아키브(Cloud Service Archive, CSAR)라 불리는 어플리케이션 전개 패키지에 기술된다. 어플리케이션 전개 패키지는 ste의 파일 이름 연장을 갖는 하나 이상의 어플리케이션 전개 디스크립션 파일을 포함한다. *.ste 어플리케이션 전개 디스크립션 파일은 어플리케이션의 전개 정보를 기술하도록 XML 언어를 사용할 수 있다. *.ste 어플리케이션 전개 디스크립션 파일의 루트 엘리먼트(root element)는 서비스 템플릿이다. 즉, 본원의 실시태양에서, 서비스 템플릿은 전개될 필요가 있는 어플리케이션에 대한 정보를 완전하게 기술하는데 사용될 수 있다. *.ste 어플리케이션 전개 디스크립션 파일 서브엘리먼트는 토폴로지 템플릿(TopologyTemplate), 노드 타입(NodeType), 노드 템플릿(NodeTemplate), 관계 타입(RelationshipType), 관계 템플릿(RelationshipTemplate), 경계 정의(BoundaryDefinitions), 및 이와 유사한 것을 포함한다. 어플리케이션 전개 디스크립션 파일에서 루트 엘리먼트와 서브엘리먼트 사이의 관계가 도 1a에 도시된다. 도 1a는 어플리케이션 업그레이드 방법이 본원의 실시태양에 따라 기초로 하는 어플리케이션 전개 디스크립션 파일에 의해 기술된 서비스 템플릿의 개략적 구조도이다.
도 1a에서와 같이, 본원의 실시태양에서, TopologyTemplate가 어플리케이션 토폴로지를 묘사하도록 사용된다. 어플리케이션 토폴로지는 4개의 노드인 a1, a2, a3, 및 a4를 위한 노드 템플릿을 포함하며, 즉 각 노드 템플릿은 하나의 어플리케이션 전개의 하나의 노드를 나타낸다(즉, 어플리케이션이 다수 회 전개되면, 각 노드 템플릿이 이 유형의 다수의 노드에 대응함). 각 노드 템플릿의 식별자가 어플리케이션 토폴로지에 제공된다. 각 NodeTemplate의 유형은 NodeType에 의해 정해진다(NodeTemplate에 대응하는 NodeType을 기술하는 NodeTemplate의 유형 속성). NodeType은 노드의 속성(성질(Properties)에 의해 정의됨), 노드의 인터페이스(인터페이스 세트(Interfaces)에 의해 정의됨), 및 이와 유사한 것을 정의한다. NodeTemplate은 NodeType의 인스턴스이다.
각 NodeType은 하나의 노드 유형 구현(NodeType Implementation, NTI)에 대응한다. NTI는 NodeType에 대응하는 노드의 전개 아티팩트에 대한 정보 및 NodeType에서의 Interface 내에 포함되는 모든 방법의 방법 아티팩트에 대한 정보를 기술한다.
어플리케이션 토폴로지(TopologyTemplate)에서의 노드에 연결하는 각 화살선은 하나의 RelationshipTemplate이다. 관계 템플릿은 어플리케이션 노드 템플릿에 대응한다.
각 어플리케이션 전개 패키지는 도 1b의 플랜(Plan)을 더 포함한다. 도 1b는 본원의 실시태양에 따른 도 1a에 대응하는 플랜의 개략적 구조도이다. 플랜은 실행가능 워크플로우이며, 실제로 다수의 참조된 방법을 포함하는 워크플로우이다. 워크플로우의 실행은 실제로 워크플로우를 형성하는 각 방법에 대응하는 방법 아티팩트의 실행이다. 플랜이 실행된 경우에, 어플리케이션 전개 서버는, 각 테스크에 차례로 대응하는 방법에 대응하는 방법 아티팩트를, 플랜에서의 정의에 따라 작동한다. 예를 들어, 도 1b를 참조하면, 플랜은 테스크 c1, c2, 및 c3을 포함한다. 플랜에서의 정의에 따라, 플랜이 실행시, 테스크 c1, 테스크 c2, 및 테스크 c3가 차례로 실행되며, 이때 c1, c2, 및 c3는 NodeType에서의 Interface에 대응하는 방법이다 .
게다가, 각 ServiceTemplate은 경계(BoundaryDefinitions에 의해 정의됨)를 포함한다. ServiceTemplate 내에서 정의된 몇몇 컴포넌트는 BoundaryDefinitions로 사용자에게 표현되며, 이때 컴포넌트는 전술한 NodeTemplate, 전개 아티팩트, 방법 아티팩트, 및 이와 유사한 것이다.
전술한 기재로부터, 하나의 어플리케이션 전개 패키지가 어플리케이션을 전개하기 위해 요구되는 정보, 예컨대 어플리케이션 전개 디스크립션 파일, 플랜, 노드의 전개 아티팩트, 및 각 방법의 방법 아티팩트를 포함한다는 것을 알 수 있을 것이다. 어플리케이션 전개 디스크립션 파일은, 어플리케이션의 완전한 토폴로지, 토폴로지내에서의 노드의 전개 아티팩트에 대한 정보, 토폴로지에서의 노드 템플릿에서의 방법에 대한 정보, 및 토폴로지에서의 노드 템플릿의 방법 아티팩트의 정보와 단계를 기술한다.
특히, 노드 템플릿 및 노드 템플릿들 간의 논리적 관계가 토폴로지에 기술된다. 본원의 실시태양에서, 토폴로지에서의 노드 템플릿은 어플리케이션 노드 템플릿 및 플랫폼 노드 템플릿을 포함할 수 있다. 어플리케이션 노드 템플릿은, 사용자 기기에 의해 유지되고 사용되는 전개될 어플리케이션의 노드로 지칭되며, 플랫폼 노드 템플릿은 서버에 의해 작동하고 유지되는 전개될 어플리케이션의 노드로 지칭된다.
도 2는 본원의 실시태양에 따른 어플리케이션 업그레이드 방법의 개략적 흐름도이다. 이 실시태양의 방법은 어플리케이션 전개 서버에 의해 실행된다. 도 2에서, 방법은, 다음을 포함한다:
단계 201. 어플리케이션 전개 요청을 수신하며, 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함한다. 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드 하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술한다.
자세하게는, 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자는 어플리케이션 디스크립션 파일 내에 모두 기술된다. 제1 플랫폼 노드 템플릿의 식별자에 의해 표시된 플랫폼 노드 템플릿 및 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 어플리케이션 노드 템플릿은 전개된 어플리케이션의 식별자에 의해 표시된 어플리케이션 전개 패키지에서의 디스크립션 파일 내에 기술된다.
본원의 실시태양에서, 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자는 Patch For에 의해 표현될 수 있다. 업그레이드 식별자는 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 지칭한다. 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나; 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다.
하나의 전개된 어플리케이션이 다수의 노드를 포함하며, 노드는 모듈의 등가물이며, 예컨대 차징(charging) 어플리케이션은 데이터베이스 모듈, 관리 모듈 및 이와 유사한 것을 포함한다는 것을 유의해야 한다. 어플리케이션이 전개될 필요가 있을 때, 사용자 기기는 전개될 어플리케이션의 전개 패키지를 생성하고, 어플리케이션 전개 요청을 사용하여 전개될 어플리케이션의 전개 패키지를 어플리케이션 전개 서버에 전송한다. 어플리케이션 전개 패키지를 수신한 후에, 어플리케이션 전개 서버는 어플리케이션 전개 디스크립션 파일, 전개 아티팩트, 방법 아티팩트, 어플리케이션 전개 패키지의 플랜에 따라 어플리케이션 전개를 수행한다. 특히, 어플리케이션 전개는 초기 전개, 업데이트, 업그레이드, 또는 이와 유사한 것을 포함한다. 본원의 실시태양에서, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션을 업그레이드하기 위한 업그레이드 패키지라고 가정할 수 있다.
특히, 각 회당 어플리케이션 전개 패키지가 수신되고, 어플리케이션 전개 서버는 데이터베이스 내의 어플리케이션 전개 패키지에 모든 어플리케이션 기술 정보를 기록한다.
단계 202. 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정한다.
구체적으로, 어플리케이션 전개 서버가, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿 내에서 전달되는 업그레이드 식별자에 따라, 또는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현 내에서 전달되는 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션을 위한 업그레이드 패키지라고 결정한다.
단계 203. 전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득한다.
구체적으로, 어플리케이션 전개 서버는 각각의 전개된 어플리케이션의 각 노드의 능력(capability) 또는 버전을 저장한다. 어플리케이션 전개 서버는, 전개된 어플리케이션의 각 플랫폼 노드의 저장된 버전 정보로부터, 전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 버전을 획득한다. 또한, 어플리케이션 전개 서버는, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건 및 제1 플랫폼 노드의 획득된 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정한다.
제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다는 것은 제1 플랫폼 노드의 버전의 버전 수가 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 의해 표시된 버전 수의 미만이라는 것을 의미한다.
단계 204. 제1 플랫폼 노드의 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정한다.
단계 205. 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득한다.
구체적으로는, 어플리케이션 전개 서버가, 제1 플랫폼 노드 템플릿을 위한 전개된 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득한다.
단계 206. 제1 플랫폼 노드 업그레이드 패키지를 사용하여 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드한다.
선택적으로, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션 노드의 식별자를 포함하지 않을 수도 있다. 어플리케이션 전개 패키지가 전개된 어플리케이션 노드의 식별자를 포함하지 않을 때, 어플리케이션 전개 서버는, 전개된 어플리케이션의 식별자에 따라, 모든 제1 플랫폼 노드의 것이고 제1 플랫폼 노드 템플릿의 식별자에 대응하는 식별자를 획득하고, 각각의 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하기 위해 제1 플랫폼 노드 업그레이드 패키지를 사용할 수 있다.
업그레이드 프로세스는 종래 기술의 업그레이드 프로세스와 동일하며, 본원에서 자세한 사항이 다시 기재되지는 않는다.
단계 207. 업그레이드될 어플리케이션 노드의 식별자를 결정한다.
구체적으로, 어플리케이션 전개 서버가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정할 수 있다.
대안으로, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계는 구체적으로, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고, 어플리케이션 전개 패키지 내에 포함된 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 단계이다.
단계 208. 전개될 어플리케이션의 전개 패키지를 사용하여 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드한다.
선택적으로, 어플리케이션 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 어플리케이션 노드의 식별자를 포함할 때, 어플리케이션 전개 서버는 전개된 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 전개될 어플리케이션의 전개 패키지를 사용할 수 있다.
선택적으로, 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하는 단계는 구체적으로, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 전개된 어플리케이션 노드의 식별자를 획득하는 단계, 및 전개될 어플리케이션의 전개 패키지를 사용하여 각각의 전개된 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하는 단계이다.
전개될 어플리케이션의 전개 패키지가 업그레이드 패키지이기 때문에, 전개될 어플리케이션의 전개 패키지의 플랜(plan)이 업그레이드 플랜이다. 대응하는 어플리케이션 노드는 업그레이드 플랜에 따라 업그레이드될 수 있다.
그러므로, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 어플리케이션 전개 서버가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정한 때에, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 동작할 수 있음을 보장한다.
단계 206 전에, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일이 전개된 어플리케이션의 식별자에 따라 획득되고; 전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정되며; 제2 플랫폼 노드을 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전이 획득되며; 제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 버전의 버전 요건보다 낮다고 결정된다. 제1 플랫폼 노드 업그레이드 패키지를 사용하여 제1 플랫폼 노드을 업그레이드하는 단계 전에, 이 방법은 제2 플랫폼 노드을 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하는 단계; 및 제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하는 단계를 더 포함한다.
게다가, 제2 플랫폼 노드의 버전을 획득하는 단계는 구체적으로, 제2 플랫폼 노드 템플릿의 식별자 및 제1 플랫폼 노드의 식별자에 따라, 제2 플랫폼 노드의 식별자를 획득하는 단계로서, 제2 플랫폼 노드의 식별자는 제2 플랫폼 노드 템플릿의 식별자와 대응하고, 전개 수는 제1 플랫폼 노드의 식별자에 대응하는 수와 동일한 것인, 단계이다.
또한, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하는 단계 이후에, 어플리케이션 전개 서버는 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득한다.
본원의 실시태양은 어플리케이션 업그레이드 방법을 제공한다. 방법은 사용자 기기에 의해 실행될 수 있다. 도 3에서, 방법은 다음을 포함한다:
단계 301. 전개될 어플리케이션의 전개 패키지를 생성하며, 이때 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술한다.
전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿 내에서 전달되거나; 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달된다. 업그레이드 식별자는 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자이다.
단계 302. 어플리케이션 전개 요청을 생성하며, 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함한다.
단계 303. 어플리케이션 전개 요청을 어플리케이션 전개 서버에 전송한다.
전술한 해결책으로부터, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다는 것을 알 수 있을 것이다. 그러므로, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득할 수 있다. 그 후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동할 것을 보장한다. 구체적으로, 전개될 어플리케이션의 전개 패키지를 수신하는 단계 이후에, 어플리케이션 전개 서버는 도 2에 도시된 어플리케이션 전개 서버에 의해 실행되는 임의의 동작을 실행할 수 있다. 자세한 사항을 본원의 실시태양에서 다시 기재하지는 않는다.
또한, 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개될 어플리케이션 노드의 식별자를 더 포함할 수 있어서, 어플리케이션 전개 서버는 전개된 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 전개될 어플리케이션의 전개 패키지를 사용한다.
특히, 단계 301 전에, 이 방법은 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하는 단계를 더 포함하며, 이때 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용한다.
이 방법으로, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 어플리케이션 전개 서버가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정한 때, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 동작할 수 있음을 보장한다.
본원의 실시태양은 어플리케이션 업그레이드 방법을 제공한다. 어플리케이션 업그레이드 방법이 TOSCA 표준에 적용됨을 가정한다. 도 4에서, 어플리케이션 업그레이드 방법은 다음을 포함한다:
단계 401. 어플리케이션 전개 서버가 어플리케이션 전개 패키지에 따라, 전개를 수행한다.
어플리케이션 전개 패키지에 따라 전개를 수행하는 프로세스는 종래 기술의 프로세스와 동일하다. 본원의 실시태양에서, 사용자 기기에 의해 어플리케이션 전개 서버에 제출된 어플리케이션 전개 패키지가 어플리케이션 전개 패키지 B이고, 어플리케이션 전개 패키지 B의 식별자(즉, 어플리케이션의 식별자)가 appB라고 가정한다. 어플리케이션 전개 패키 내의 디스크립션 파일은 노드 템플릿 app, 노드 템플릿 apache, 노드 템플릿 javaModule, 노드 템플릿 apache를 위한 노드 템플릿 app의 전개 요건(예, 버전 요건)을 기술하는 관계 템플릿, 및 노드 템플릿 javaModule을 위한 노드 템플릿 apache의 전개 요건을 기술하는 관계 템플릿을 기술한다. 노드 템플릿 app은 어플리케이션 전개 패키지 B를 사용하여 전개된 어플리케이션의 노드 템플릿이고, 사용자 기기는 자원의 제공을 담당한다. 즉, 어플리케이션 전개 패키지 B는 전개 아티팩트, 방법 아티팩트, 및 노드 템플릿 app을 위한 이와 유사한 것을 포함한다. 노드 템플릿 apache 및 노드 템플릿 javaModule은 플랫폼 노드 템플릿들이며, CSP 서버는 자원의 제공을 담당하며, 제공되는 자원이 어플리케이션 전개 패키지 내의 모든 전개 요건을 충족할 것을 보장한다. 어플리케이션 전개 서버가 성공적으로 전개되고, 어플리케이션 전개 패키지 B에 따라 어플리케이션이 작동하고, 표 1과 같이, 전술한 두 관계 템플릿의 컨텐츠를, 데이터베이스 내에 있고 어플리케이션 전개 서버에 의해 유지되는 어플리케이션 정보 테이블에 기입한다고 가정한다. 본원의 실시태양에서, 성공적으로 전개되고 작동하는 어플리케이션 appB를 전개된 어플리케이션이라 지칭한다.
어플리케이션 정보 테이블
어플리케이션
식별자
소스 노드 템플릿의 식별자 목적지 노드 템플릿의 식별자 전개 요건
appB app apache RequirementForApache
appB apache javaModule RequirementForJM
단계 402. 사용자 기기는 전개될 어플리케이션의 전개 패키지를 생성한다. 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션을 위한 업그레이드 패키지(appB)이다.
전개된 어플리케이션을 위한 업그레이드 패키지(즉, 전개될 어플리케이션의 전개 패키지)가 어플리케이션 전개 패키지 A라고 가정한다. 어플리케이션 전개 패키지 A는 어플리케이션 노드 템플릿 app(즉, 전개된 어플리케이션의 노드 템플릿의 식별자)에 대응하는 어플리케이션 노드를 업그레이드하도록 사용될 수 있다. 구체적으로, 어플리케이션 전개 패키지 appA를 수신한 후에, 어플리케이션 전개 서버는 appA에 따라 어플리케이션을 전개하고, 어플리케이션 노드 및 appA에서의 노드 템플릿을 위한 플랫폼 노드와 같은 노드들을 생성하여, 노드 템플릿이 성공적으로 전개되고 작동하는 노드에 대응한다.
어플리케이션 전개 패키지 A의 디스크립션 파일은 전개되 어플리케이션의 노드 템플릿 appPatch를 기술하고, 전개될 어플리케이션의 노드 템플릿 appPatch를 기술하는 관계 템플릿에서의 전개된 어플리케이션의 노드 템플릿 app의 업그레이드 식별자를 기술한다. 또한, 업그레이드 식별자는 또한 전개될 어플리케이션의 노드 템플릿 appPatch에 대응하는 NTI 내에 기술될 수 있다.
또한, 어플리케이션 전개 패키지 A를 생성하는 단계 전에, 사용자 기기는, appB의 디스크립션 파일에 따라, 어플리케이션 노드 템플릿 app이 소스 노드 템플릿으로서 사용되고, 플랫폼 노드 템플릿이 전개될 어플리케이션 노드의 노드 템플릿 app을 기술하는 관계 템플릿 내의 목적지 플랫폼 노드 템플릿으로서 사용된다고 결정할 것이 더 필요하다. 예를 들어, 어플리케이션 노드 템플릿 app이 소스 노드 템플릿으로서 사용되고, 플랫폼 노드 템플릿 apache가 목적지 노드 템플릿으로서 사용된다고 appB의 디스크립션 파일에서의 관계 템플릿에 기술된 컨텐츠를 분석함으로써, 알 수 있다. 그러므로, 사용자 기기는 어플리케이션 전개 패키지 A의 디스크립션 파일에, 전개된 어플리케이션의 플랫폼 노드 템플릿 apache을 위한 전개될 어플리케이션의 노드 템플릿 appPatch의 버전 요건을 기술한다. 자세하게는, 버전 요건의 컨텐츠가 어플리케이션 노드의 업그레이드의 컨텐츠에 따라 사용자 기기에 의해 결정된다. 예를 들어, 플랫폼 노드 템플릿 apache가 Servlet 3.0을 지원할 것이 요구되며, 따라서 플랫폼 노드 apache는 Tomcat 7.0으로 업그레이드될 것이 필요하다. 버전 요건은, 어플리케이션 노드 템플릿 app에 대응하는 어플리케이션 노드가 appA를 사용하여 업그레이드된 후에, 어플리케이션 노드 템플릿 app에 대응하는 업그레이드된 어플리케이션 노드가 플랫폼 노드 템플릿 apache에 대응하는 플랫폼 노드가 Servlet 3.0을 지원하는 경우(즉, 플랫폼 노드는 Tomcat 7.0으로 업그레이드될 필요가 있음)에만 정상적으로 동작할 수 있음을 나타낸다.
구체적으로, 사용자 기기에 의해, appB의 디스크립션 파일을 획득하는 방식은: 사용자 기기에 의해 저장된 파일로부터 appB의 디스크립션 파일을 획득하는 것 또는 어플리케이션 전개 서버에 요청을 전송함으로써 appB의 디스크립션 파일을 획득하는 것일 수 있다.
어플리케이션 전개 패키지 A는 어플리케이션 노드 템플릿 appPatch의 방법 아티팩트 및 전개 아티팩트를 더 제공하며, 방법 아티팩트는 patchApp이다. 본원의 실시태양에서, 기재의 편의를 위해, 전개된 어플리케이션의 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿 appPatch의 버전 요건에서의 플랫폼 노드 템플릿이 제1 플랫폼 노드 템플릿으로서 지칭되며, 또 다른 플랫폼 노드 템플릿을 위한 제1 플랫폼 노드 템플릿의 버전 요건에서의 또 다른 플랫폼 노드 템플릿이 제2 플랫폼 노드 템플릿으로서 지칭된다. 자세하게, 상기 버전 요건은 버전 요건일 수 있고, 상기 버전 요건은 버전이 제공하는 능력 또는 특정 버전 수일 수 있다.
어플리케이션 전개 패키지 A의 어플리케이션 식별자는 appA이고, 어플리케이션 노드 템플릿의 식별자는 appPatch이다. 도 5는 본원의 실시태양에서 어플리케이션 노드 app의 업그레이드를, 어플리케이션 전개 서버에 의해, 어플리케이션 전개 패키지 A의 기술 및 어플리케이션 전개 패키지 B의 기술에 따라, 결정하는 개략도이다. 도 5에서, 어플리케이션 전개 패키지 A의 디스크립션 파일에 따라, 어플리케이션 전개 패키지 A 내에 기술된 어플리케이션 노드 템플릿 appPatch가 전개된 어플리케이션의 전개 패키지 B 내에 기술된 어플리케이션 노드 템플릿 app을 위한 업그레이드 노드임을 알 수 있다. 예를 들어, PatchFor 필드는 두 개의 노드 템플릿 사이의 관계의 식별자(예컨대 업그레이드 식별자)를 기술하도록 사용된다. 특히, 업그레이드 식별자는 또한 또 다른 필드를 사용함으로써 기술될 수 있으나, 본원의 실시태양에 제한되지는 않는다. 게다가, 어플리케이션 전개 패키지 A는 전개된 어플리케이션의 전개 패키지 B 내에 기술된 플랫폼 노드 템플릿 apache를 위한 어플리케이션 노드 템플릿 appPatch의 버전 요건을 더 기술하며, 버전 요건은 RequirementForApache의 형태로 표현된다(Apache가 플랫폼 노드 템플릿임). PatchForApp는 어플리케이션 전개 패키지 A 내의 appPatch 노드 템플릿이 app 어플리케이션 노드 템플릿의 업그레이드를 위해 사용된다는 것을 표시한다. RequirementForApache는 플랫폼 노드 템플릿 apache를 위한 어플리케이션 노드 템플릿 appPatch의 버전 요건을 기술한다. 어플리케이션 전개 패키지 B는 전개된 어플리케이션의 전개 패키지이며, appA는 어플리케이션 노드 템플릿 app의 업그레이드를 위한 것이다. 그러므로, appA에서, 어플리케이션 전개 패키지 B의 어플리케이션 디스크립션 파일 appB.tosca에 기술된 몇몇 엘리먼트는 호출될(invoked) 것이 필요하다. appB의 디스크립션 파일은 appA의 디스크립션 파일에 임포팅될(imported) 것이 필요하다. 예를 들어, appB.tosca 파일의 URL(UniformResourceLocator,)이 위치 속성을 사용하여 제공될 수 있다. 특정 호출 프로그램은 다음과 같다:
<Import namespace="appB:http://www.example.com/ste/Topology"
location=http://www.example.com/ste/appB.tosca
importType=" http://docs.oasis-open.org/tosca/ns/2011/12"/>
예를 들어, appA.tosca의 TopologyTemplate 엘리먼트에서, 도 5의 어플리케이션 토폴로지 구조의 기술이 제공되며, 구체적으로는 다음과 같다:
<TopologyTemplate>
<NodeTemplate identifier="appPatch" type="apppatchtype">
<Requirements>
<Requirement name=" requirementOfApp" //appPatch의 버전 요건이 제공된다.
type=" webAppContainerRequirement"/>
</Requirements>
<DeploymentArtifacts>
<DeploymentArtifact name="DaOfAppPatch" artifactType="Patch">
//전개 아티팩트 유형이 Patch이다.
.....//전개 아티팩트의 특정 기술
</DeploymentArtifact>
</ DeploymentArtifacts >
</NodeTemplate>
<RelationshipTemplate identifier="PatchForApp" type="PatchFor"> //논리적 관계는 PatchFor이다.
<SourceElement ref="appPatch"/> //논리적 관계에서의 소스는 appPatch이다.
<TargetElement externalref="appB:app"/> //논리적 관계에서의 타겟은 app이다.
</RelationshipTemplate>
<RelationshipTemplate identifier="RequirementForApache" > //요건 관계
<SourceElement ref="requirementOfAppPatch"/> //요건 관계에서의 소스 appPatch의 버전 요건
<TargetElement externalref="appB:capabilityOfApache"/> // 요건 관계에서의 타겟 apache의 전개 능력
</RelationshipTemplate>
.....//또 다른 정의
<Plans>
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >//Upgrade plan
.....//또 다른 관리 플랜
</Plan>
</TopologyTemplate>
구체적으로는 어플리케이션 전개 패키지 A는 토폴로지 템플릿 TopologyTemplate에서, 어플리케이션 노드 템플릿 appPatch를 정의하기 위하여 노드 템플릿 NodeTemplate 엘리먼트를 사용하고, 노드 템플릿 엘리먼트에서의 버전 요건 requirementOfApp 및 에서의 전개 아티팩트 DaOfAppPatch를 특정한다. 관계 템플릿에서의 PatchForApp가 관계의 업그레이드 식별자, 예컨대 PatchFor가 어플리케이션 전개 패키지 B에서의 appPatch 어플리케이션 노드 템플릿 및 app 어플리케이션 노드 템플릿에 존재한다는 것을 특정하도록 사용된다. 업그레이드 식별자 PatchForApp에서, SourceElement가 소스 어플리케이션 노드 템플릿의 식별자 appPatch(전개될 어플리케이션의 노드 템플릿의 식별자)를 특정하도록 사용되고, TargetElement가 타겟 어플리케이션 노드 템플릿의 식별자 appB:app(전개된 어플리케이션의 노드 템플릿의 식별자)를 특정하도록 사용된다. TargetElement의 기술에서, 속성 "externalref"는 어플리케이션 노드 템플릿 app이 외부 어플리케이션 디스크립션 파일에 정의됨을 특정하며, 프리픽스 "appB" 및 "Import" 엘리먼트는 외부 어플리케이션 디스크립션 파일이 appB.tosca라고 특정하도록 사용된다. 게다가, 관계 템플릿 RelationshipTemplate의 RequirementForApache가 어플리케이션 전개 패키지 B에서의 Apache를 위한 appPatch 어플리케이션 노드 템플릿의 버전 요건을 정의한다. 요건 관계 RequirementForApache에서, SourceElement가 소스 버전 요건 requirementOfAppPatch를 정의하도록 사용되고, TargetElement가 타겟 전개 능력 appB:capabilityOfApache를 정의하도록 사용된다. TargetElement의 기술에서, 속성 "externalref"는 전개 능력 capabilityOfApache가 외부 어플리케이션 디스크립션 파일에서 정의됨을 특정하며, 프리픽스 "appB" 및 "Import" 엘리먼트는 외부 어플리케이션 디스크립션 파일이 appB.tosca라고 특정하도록 사용된다. 토폴로지에서, 업그레이드 플랜 업그레이드가 또한 정의되며, 업그레이드 플랜의 유형이 http://www.example.com/UpgradePlan이다.
어플리케이션 노드 템플릿 appPatch의 노드 유형 NodeType이 다음과 같이 기술된다:
<NodeType name="apppatchtype">
<Interfaces>
<Interface name="patchAppInterface">
<OperationName="patchApp"/> //방법 patchApp를 정의한다.
</Interface>
</Interfaces>
<RequirementDefinitions> //노드 appPatch의 버전 요건의 정의
<RequirementDefinition name="requirementOfAppPatch"
requirementType="webAppContainerRequirement">
<Constraints>
<Constraint constraintType= "http://www.example.com/
PropertyConstraints/supportServlet3"/>
</Constraints>
</RequirementDefinition>
</RequirementDefinitions>
</NodeType>
이 NodeType에서, 어플리케이션 노드 템플릿 appPatch의 방법 아티팩트 patchApp의 정의 및 버전 요건 requirementOfAppPatch의 정의가 제공된다. 방법 아티팩트 patchApp는 어플리케이션 전개 서버가 업그레이드 플랜을 구현할 때 호출된다. 버전 요건 requirementOfAppPatch에서의 제한 Constraint 필드에 대하여, Constraint 필드의 속성 제한 유형 constraintType의 값이, 어플리케이션 전개 서버가, 어느 소프트웨어 버전이 supportServlet3의 능력을 포함하는지를 알기 위하여, 전술한 값에 따라 데이터베이스를 검색하는 것이 필요함을 표시하는 http://www.example.com/PropertyConstraints/supportServlet3이다.
어플리케이션 전개 패키지 A의 디스크립션 파일이 전개된 어플리케이션 노드의 app1와 같은 식별자를 더 포함할 수 있음을 유의해야 한다. 전개된 어플리케이션 노드의 식별자는 업그레이드될 필요가 있는 어플리케이션 노드의 식별자이다. 식별자 예컨대 업그레이드될 어플리케이션 노드 템플릿의 app가 또한 전술한 기술에서 apptchFor와 같은 업그레이드 식별자에 의해 특정될 수도 있다. 어플리케이션 전개 패키지 A의 디스크립션 파일이 전개된 어플리케이션 노드의 식별자를 개별적으로 표시하지 않고, 전개된 어플리케이션의 노드 템플릿의 app과 같은 식별자만 업그레이드 식별자에 표시된다면, 그 후 어플리케이션 전개 서버는, 어플리케이션 업그레이드를 수행할 때, 전개된 어플리케이션의 노드 템플릿의 식별자 app에 대응하는 모든 어플리케이션 노드를 업그레이드한다. 예를 들어, appB가 난징에서 먼저 전개되고, 그 후 상하이에서 전개된다면, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 어플리케이션 노드는: 난징에서의 어플리케이션 노드 app1 및 상하이에서의 어플리케이션 노드 app2이다. 어플리케이션이 전개되는 때마다 수가 생성된다. 예를 들어, appB가 난징에서 전개된 경우에, appB가 첫 번째로 전개된 때에 app1가 생성된다는 것을 표시하는, 수 1이 생성되고; appB가 상하이에서 전개된 경우에, appB가 두 번째로 전개된 때에 app2가 생성된다는 것을 표시하는, 수 2가 생성된다. 수는 어느 노드가 동일한 전개에서 생성되는지 결정하기 위해 사용될 수 있다. 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션 노드의 식별자를 포함할 때, 전개 패키지 appA에서의 플랜은 다음과 같을 것이다:
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="appInstance identifier" type="string">app1</InputParameter >
<InputParameter name="stopPlan identifier" type="string">stop</ InputParameter >
<InputParameter name="startPlan identifier" type="string" >start</ InputParameter >
</InputParameters>
<PlanModel>
invokePlan(appInstance identifier, stopplan identifier);
patchApp(appInstance identifier);
invokePlan(appInstance identifier, startPlan identifier);
</PlanModel>
</Plan>
이 기술에서, 입력 파라미터가 먼저 정의된다. 입력 파라미터 "appInstance identifier"가 전개된 어플리케이 노드의 식별자가 app1라고 특정한다. 인터페이스 invokePlan이 사용자 기기를 위해 어플리케이션 전개 서버에 의해 제공되는 API이다. 사용자 기기는 어플리케이션 전개 패키지 A에 정의된 관리 플랜을 액세스하기 위해 API를 호출할 수 있다. API는 두 파라미터를 가지며, 제1 파라미터는 전개된 어플리케이션 노드의 식별자이고, 제2 파라미터는 호출될 필요가 있는 플랜의 식별자이다. 플랜의 각 단계는 플랜 모델 PlanModel 엘리먼트에 제공된다.
어플리케이션 전개 패키지 A가 전개된 어플리케이션 노드의 식별자를 특정하지 않을 때, 업그레이드 플랜은 다음과 같다:
<Plan identifier="upgrade" planType="http://www.example.com/UpgradePlan" >
<InputParameters>
<InputParameter name="stopPlan identifier" type="string">stop</ InputParameter >
<InputParameter name="startPlan identifier" type="string" >start</ InputParameter >
</InputParameters>
<PlanModel>
appB: stopplan//appB.tosca에서 정의됨
patchApp;
appB: startplan//appB.tosca에서 정의됨
</PlanModel>
</Plan>
전개된 어플리케이션 노드의 식별자는 이 기술에서 특정되지 않는다. 그러므로, 어플리케이션 전개 서버는 전개된 어플리케이션의 노드 템플릿의 식별자 app를 획득하고, 어플리케이션 식별자 appB에 따라, 전개된 어플리케이션의 노드 템플릿의 식별자 app에 대응하는 모든 전개된 어플리케이션 노드의 식별자(예컨대 app1 및 app2)를 찾아내고, 전개된 어플리케이션의 노드 템플릿의 식별자 app에 대응하는 모든 전개된 어플리케이션 노드를 업그레이드한다. 사용자 기기는 업그레이드를 생성하기 위해 appB.tosca에 정의된 플랜을 호출하도록 "appB: plan"를 바로 실행한다.
전술한 프로그램은 어플리케이션 전개 서버가 전개된 어플리케이션의 식별자가 "appB"임을 알 수 있도록 인에이블 할 수 있고, 전개된 어플리케이션의 노드 템플릿의 식별자 "app"에 대응하는 어플리케이션 노드는 업그레이드될 필요가 있다.
단계 403. 사용자 기기가 어플리케이션 전개 요청을 생성하며, 어플리케이션 전개 요청은 어플리케이션 전개 패키지 A를 포함한다.
단계 404. 어플리케이션 전개 서버가 어플리케이션 전개 요청을 수신한다.
단계 405. 어플리케이션 전개 서버는 전개 패키지가 전개된 어플리케이션을 위한 업그레이드 패키지(appB)라고 결정한다.
구체적으로, 전개될 어플리케이션의 전개 패키지의 디스크립션 파일은 전개될 어플리케이션의 노드 템플릿, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개된 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술할 수 있다.
어플리케이션 전개 서버는, 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자에 따라, 전개 패키지가 전개된 어플리케이션을 위한 업그레이드 패키지라고 결정한다.
예를 들어, 어플리케이션 전개 서버는 어플리케이션 전개 패키지 A의 전개 디스크립션 파일 appA.tosca를 검사하고, 디스크립션 파일 appA.tosca가 업그레이드 식별자 "PatchFor", 및/또는 소스 어플리케이션 노드 템플릿 appPatch의 전개 아티팩트 유형 "Patch"(즉, 전개될 어플리케이션의 노드 템플릿)를 포함한다는 것을 찾아낸다. 어플리케이션 전개 서버는 PatchFor의 관계 유형을 식별하거나 전개 아티팩트 유형이 "Patch"인 것을 식별하며, 따라서, 어플리케이션 전개 패키지 A가 업그레이드 패키지라는 것을 결정할 수 있다. 또한, 어플리케이션 전개 서버는 업그레이드 플랜 업그레이드를 더 검사할 수 있고, 업그레이드 플랜의 유형이 "http://www.example.com/UpgradePlan"인 것을 찾아내고, 플랜이 업그레이드를 위해 사용되는 플랜인 것을 결정하며, 따라서 어플리케이션 전개 패키지 A가 업그레이드 패키지라는 것을 결정한다.
단계 406. 어플리케이션 전개 서버는 전개될 어플리케이션의 전개 패키지에 따라 전개된 어플리케이션 노드를 업그레이드한다.
도 6에서, 어플리케이션 전개 서버에 의해 전개된 어플리케이션 노드를 업그레이드하는 단계들을 다음과 같이 특정한다:
단계 4061. 제1 플랫폼 노드의 식별자를 획득하고, 단계 4062을 실행한다.
전개될 어플리케이션의 전개 패키지 A를 수신한 후에, 디스크립션 파일의 것이고 어플리케이션 전개 패키지 A의 디스크립션 파일 내의 "Import" 엘리먼트에 포함되는 URL에 따라, 어플리케이션 전개 서버가, 어플리케이션 전개 서버에 의해 저장된 전개 패키지 정보 테이블로부터, 디스크립션 파일의 위치 File://ste/appB.tosca를 찾아낸다. 그 후, 어플리케이션 전개 서버가, 디스크립션 파일의 위치 File://ste/appB.tosca에 따라, 어플리케이션 전개 패키지 B의 디스크립션 파일을 획득한다. 전개 패키지 정보 테이블이 표 2에 도시된다.
전개 패키지 정보 테이블
어플리케이션
식별자
어플리케이션 디스크립션 파일의 URL 위치
appB http://www.example.com/ste/appB.tosca File://ste/appB.tosca
도 7과 같이, appB.tosca의 토폴로지 기술에서, 전개된 어플리케이션의 노드 템플릿 app, 플랫폼 노드 템플릿 apache 및 javaModule, 및 노드 템플릿들 간의 관계가 정의된다. 다음은 토폴로지 기술에서 주요 정보의 정의를 제공한다.
<TopologyTemplate>
<NodeTemplate identifier="app" type="apptype" >
<Requirement name=" requirementOfApp"
type=" webAppContainerRequirement"/>
//app의 버전 요건이 제공된다.
</NodeTemplate>
<NodeTemplate identifier="apache" type="appcontainertype">
<Capability name="capabilityOfApache"
type="webAppContainerCapability"/>
//apache의 전개 능력이 제공된다.
<Requirement name=" requirementOfApache"
type=" JMRequirement"/>//apache의 버전 요건이 제공된다.
<DeploymentArtifacts> //apache의 전개 아티팩트 정보가 제공된다.
<DeploymentArtifact name="DaOfApache"
artifactType="appContainer">
.....//전개 아티팩트의 특정 기술이 제공된다.
</DeploymentArtifact>
</ DeploymentArtifacts >
</NodeTemplate>
<NodeTemplate identifier="javaModule" type="javamoduletype">
//javaModule의 전개 능력이 제공된다.
<Capability name="capabilityOfJM" type="JMCapability"/>
</NodeTemplate>
<RelationshipTemplate identifier="RequirementForApache" > //Requirement relationship
<SourceElement ref="requirementOfApp"/> //요건 관계에서의 소스 app의 버전 요건
<TargetElement ref="capabilityOfApache"/> //요건 관계에서의 타겟 apache의 전개 능력
</RelationshipTemplate>
<RelationshipTemplate identifier="RequirementForJM" > //요건 관계
<SourceElement ref="requirementOfApache"/> //요건 관계에서의 소스 apache의 버전 요건
<TargetElement ref="capabilityOfJM"/> //Deployment capability of a target javaModule in the requirement relationship
</RelationshipTemplate>
?//Another definition
<Plans>
<Plan identifier="start" planType="http://www.example.com/StartPlan"/> //관리 플랜 개시가 정의된다.
<Plan identifier="stop" planType="http://www.example.com/StopPlan"/> //관리 프ㅍ랜 종료가 정의된다.
.....//또 다른 관리 플랜
</Plans>
</TopologyTemplate>
플랫폼 노드 템플릿 apache의 정의가 전개 능력 capabilityOfApache를 기술한다. 전개 능력의 정의는 apache의 NodeType의 능력 정의 CapabilityDefinition 엘리먼트에 포함된다. 플랫폼 노드 템플릿 apache에서, 전개 아티팩트 DaOfApache의 기술이 또한 제공된다. 플랫폼 노드 템플릿 javaModule의 정의는 전개 능력 capabilityOfJM를 기술한다. 전개 능력의 정의는 javaModule의 NodeType의 CapabilityDefinition 내에 포함된다. 토폴로지 기술에서, 개시와 종료 관리 플랜이 또한 기술된다. 이 실시태양에서, 전개 능력이 플랫폼 노드 템플릿을 위한 버전 요건, 예컨대 버전이 제공하는 능력, 또는 지원되는 버전이다.
예를 들어, 플랫폼 노드 템플릿 apache의 NodeType은 다음과 같이 기술된다:
<NodeType name="appcontainertype">
<CapabilityDefinitions> //apache 노드의 전개 능력의 정의
<CapabilityDefinition name="capabilityOfApache"
capabilityType="webAppContainerCapability">
<Constraints>
<Constraint constraintType= "http://www.example.com/
PropertyConstraints/supportServlet2"/>
</Constraints>
</CapabilityDefinition>
</CapabilityDefinitions>
</NodeType>
전개 능력 capabilityOfApache의 정의가 apache의 NodeType에 제공된다. 제한 Constraint이 정의에 제공되며, Constraint의 속성 값 constraintType이 "supportServlet 2.0"의 능력을 표시한다.
어플리케이션 전개 서버는 어플리케이션 전개 패키지 appA가 전개된 어플리케이션 노드의 식별자 "app1"를 포함하는지 여부를 먼저 결정할 수 있다. 전개된 어플리케이션 노드의 식별자 "app1"는 업그레이드될 필요가 있는 어플리케이션 노드를 표시하도록 사용된다. 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션 노드의 식별자를 포함하면, 어플리케이션 전개 서버는, 데이터베이스로부터, 전개된 어플리케이션 노드의 식별자에 의해 표시된 전개된 어플리케이션 노드를 획득하고, 전개될 어플리케이션의 전개 패키지에 따라, 전개된 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드할 수 있다. 예를 들어, 어플리케이션 전개 요청에서의 플랜이 전개된 어플리케이션 노드의 식별자가 "app1"라고 기술한다고 가정하면, 어플리케이션 전개 서버는 전개된 어플리케이션 노드의 식별자 app1을 위한 어플리케이션 전개 서버에 의해 저장된 전개 어플리케이션 테이블을 검색한다.
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션 노드의 식별자 "app1"를 포함하지 않는다면, 어플리케이션 전개 서버는, 전개된 어플리케이션의 노드 템플릿의 식별자에 따라, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 전개된 어플리케이션 노드의 식별자를 획득하고, 각각의 전개된 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하기 위해 전개될 어플리케이션의 전개 패키지를 사용한다. 또한, 각각의 어플리케이션 노드를 업그레이드하기 전에, 어플리케이션 전개 서버는 버전이 제1 플랫폼 노드 템플릿을 위한 전개된 어플리케이션의 노드 템플릿의 버전 요건보다 낮은 제1 플랫폼 노드의 식별자를 결정하고, 제1 플랫폼 노드의 식별자에 의해 표시되는 제1 플랫폼 노드를 업그레이드하기 위해 제1 플랫폼 노드 업그레이드 패키지를 사용한다.
동일한 어플리케이션이 다수 회 전개될 수 있으며, 따라서 하나의 어플리케이션 노드 템플릿의 식별자가 다수의 어플리케이션 노드의 식별자에 대응할 수 있음을 이해해야 한다. 전개될 어플리케이션의 전개 패키지가 어플리케이션 노드의 식별자를 특정하지 않을 때에, 어플리케이션 전개 서버는 어플리케이션 전개 요청에서의 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드를 업그레이드하도록 결정한다. 어플리케이션 전개 서버가, 전개된 어플리케이션의 노드 템플릿의 식별자에 따라, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것이다. 따라서, 모든 어플리케이션 노드의 식별자가 획득될 필요가 있다. 예를 들어, 전개된 어플리케이션의 노드 템플릿의 식별자가 app이라고 가정하면, 어플리케이션 전개 서버는, 어플리케이션 노드 템플릿 app에 대응하는 모든 어플리케이션 노드의 식별자를 위한 app에 따라, 전개 어플리케이션 정보 테이블을 검색할 수 있고, 어플리케이션 노드의 식별자가 {app1, app2}인 것을 획득할 수 있다. 어플리케이션 전개 서버는 어플리케이션 노드 app1 및 app2의 각각을 업그레이드한다. 또한, 어플리케이션 전개 요청은 전개된 어플리케이션의 식별자를 더 포함할 수 있다(하나의 선택적 방식에서, 전개된 어플리케이션의 식별자는 전개된 어플리케이션의 전개 패키지의 식별자, 어플리케이션 디스크립션 파일의 URL, 또는 어플리케이션 디스크립션 파일의 위치일 수 있음). 어플리케이션 전개 서버가, 어플리케이션 노드 템플릿 app에 대응하는 모든 어플리케이션 노드의 식별자를 위한 어플리케이션 노드 템플릿의 식별자 app에 따라, 전개 어플리케이션 정보 테이블을 검색하는 것은 구체적으로, 어플리케이션 전개 서버가, 전개된 어플리케이션의 것이고 어플리케이션 노드 템플릿 app에 대응하는 모든 어플리케이션 노드의 식별자를 위해, 전개된 어플리케이션의 전개 패키지의 식별자, 어플리케이션 디스크립션 파일의 URL, 또는 어플리케이션 디스크립션 파일의 위치에 따라 저장된 전개 어플리케이션 정보를 검색하고, 어플리케이션 노드의 식별자가 {app1, app2}인 것을 획득하는 것이다. 각 어플리케이션 노드는 업그레이드된다.
표 3에 전개 어플리케이션 정보 테이블이 나타난다.
전개 어플리케이션 정보 테이블은 노드의 식별자, 전개된 어플리케이션의 식별자, 및 노드 템플릿의 식별자 중에서 매핑 관계를 기록한다. 전개 수가 어플리케이션 전개를 표시하도록 사용된다. 동일한 전개 수를 갖는 노드는 동일한 전개에서 어플리케이션을 위해 생성된다. 노드의 식별자는 플랫폼 노드의 식별자 및 어플리케이션 노드의 식별자를 포함한다.
전개 어플리케이션 정보 테이블
노드 식별자 어플리케이션
식별자
전개 수
노드 템플릿 식별자
app1 appB 1 app
Apache1 appB 1 apache
JavaModule 1 appB 1 javaModule
app2 appB 2 app
Apache2 appB 2 apache
JavaModule2 appB 2 javaModule
단계 4062. 제1 플랫폼 노드의 버전이 전개될 어플리케이션의 전개 패키지에 기술되고 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿에 대한 것인 버전 요건을 충족하는지 여부를 결정한다. 그렇지 않다면, 단계 4063를 실행하고; 그렇다면, 단계 4068를 실행한다.
먼저, 어플리케이션 전개 서버가, 업그레이드될 어플리케이션 노드의 전개 수 1 및 식별자 app1에 따라, 그리고 제1 플랫폼 노드 템플릿의 식별자에 따라, 데이터베이스로부터, 동일한 전개 수 1을 갖는 제1 플랫폼 노드의 식별자 Apache1를 획득하고, 제1 플랫폼 노드의 식별자 Apache1에 따라 제1 플랫폼 노드의 버전를 획득한다. 구체적으로, 어플리케이션 전개 서버는 제1 플랫폼 노드의 식별자 Apache1에 따라 데이터베이스를 검색하고, 제1 플랫폼 노드 Apache1의 전개 능력을 획득한다. 이 실시태양에서, 제1 플랫폼 노드 Apache1의 현재의 전개 아티팩트가 Tomcat 6.0라고 가정하며, 이것은 표 4과 같이 Servlet 2.0만 지원할 수 있다. 그러므로, 제1 플랫폼 노드의 버전 Apache1가 Tomcat 6.0이다.
전개된 어플리케이션 노드의 식별자가 app1이라고 가정한다. app1와 동일한 전개 수를 갖는 제1 플랫폼 노드의 식별자 Apache1가 제1 플랫폼 노드 템플릿의 식별자에 따라 표 3으로부터 획득된다. CSP에 의해 저장된 어플리케이션 구현 정보 테이블로부터, Apache1의 capabilityOfApache가 "supportServlet 2.0"의 전개 능력만 제공할 수 있다는 것이 획득된다. 즉, 제1 플랫폼 노드의 식별자 Apache1에 의해 표시된 플랫폼 노드에 의해 지원된 버전이 Tomcat 6.0임이 획득된다. 어플리케이션 구현 정보 테이블은 표 4에 나타난다.
어플리케이션 구현 정보 테이블
어플리케이션 식별자 전개 수 플랫폼 노드
식별자
전개 아티팩트 식별자 전개 아티팩트 유형 전개 아티팩트 이름 능력
기술
appB 1 Apache1 DaOfApache appContainer Tomcat 6.0 supportServlet2
appB 2 Apache2 DaOfApache appContainer Tomcat 7.0 supportServlet3
그러므로, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿의 식별자에 따라 제1 플랫폼 노드의 버전을 획득하고, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족할 수 없다고 결정한다. 예를 들어, 어플리케이션 전개 서버는 표 3의 제1 플랫폼 노드 템플릿의 식별자에 따라 제1 플랫폼 노드 Apache1 및 Apache2를 획득하며, 제1 플랫폼 노드의 버전 Apache1가 오직 supportServlet2 또는 Tomcat 6.0이고, 버전 요건, 즉 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 Tomcat 6.0 또는 Servlet3.0의 지원을 충족할 수 없다고 결정한다. 따라서, 단계 4063가 실행된다.
어플리케이션 전개 요청이 전개된 어플리케이션의 식별자 노드, 예컨대 app2를 포함한다고 가정하면, 어플리케이션 전개 서버는 app2와 동일한 전개 수를 갖는 제1 플랫폼 노드의 버전 Apache2를 결정하는 것을 더 필요로 한다. 구체적으로, 어플리케이션 전개 서버가 제1 플랫폼 노드 템플릿의 식별자에 따라 제1 플랫폼 노드의 버전를 획득하는 것은, 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드의 전개 수를 획득하고, 제1 플랫폼 노드 템플릿의 식별자에 따라, 어플리케이션 노드와 동일한 전개 수를 갖는 제1 플랫폼 노드의 식별자를 획득하는 것이다. 즉, 제1 플랫폼 노드의 획득된 식별자에 대응하는 전개 수는 어플리케이션 노드의 식별자에 대응하는 전개 수와 동일하다. 제1 플랫폼 노드의 획득된 식별자 Apache2에 따라, 제1 플랫폼 노드의 버전 Apache2이 Servlet3.0라고 결정된다. 그러므로, 제1 플랫폼 노드의 능력이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족한다는 것이 결정된다.
단계 4063. 제1 플랫폼 노드 업그레이드 패키지를 획득한다.
구체적으로, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지가 획득된다. 예를 들어, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드의 식별자에 따라 먼저 획득되고(예컨대, 어플리케이션 전개 서버가 플랫폼 노드의 전개 아티팩트 이름으로부터 플랫폼 노드의 버전을 획득할 수 있다), 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 버전이 결정되며; 그 후 제1 플랫폼 노드 템플릿를 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 결정된 버전에 대응하는 업그레이드 패키지가 획득된다.
예를 들어, 어플리케이션 전개 서버는 표 4에 따른 Apache1의 전개 아티팩트 이름으로부터, Apache1의 버전이 Tomcat 6.0이지만, 전개 아티팩트 정보 테이블(예컨대 표 5)에 따라 Apache1보다 늦고 Apachel을 위한 전개될 어플리케이션 노드의 요건을 충족할 수 없는 버전이 Tomcat 7.0임을 획득한다. 그 후, 어플리케이션 전개 서버는 결정되 버전 Tomcat 7.0에 따라 표 5로부터, Tomcat 6.0로부터 Tomcat 7.0로 Apache1을 업그레이드하도록 사용될 수 있는 업그레이드 패키지의 위치가 File://appcontainer/apache/update/appE임을 획득하고, 그 위치로부터 업그레이드 패키지 appE를 획득한다.
전개 아티팩트 정보 테이블
전개 아티팩트 이름 유형 위치 능력 기술
이후
버전
업그레이드 패키지 location
Tomcat 6.0 appContainer File://appcontainer/apache/Tomecat 6.0 supportServlet2 Tomcat 7.0 File://appcontainer/apache
/update/appE
Tomcat 7.0 appContainer File://appcontainer/apache
/Tomecat 7.0
supportServlet3 Tomcat 8.0 File://appcontainer/apache
/update/appF
하나의 선택적 방식에서, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건이 또한 버전 지원 능력, 예컨대 supportServlet3일 수 있으며, 자세한 사항은 본원의 실시태양에서 다시 기재하지 않는다.
단계 4064. 제2 플랫폼 노드의 버전이 제2 플랫폼 노드 템플릿을 위한 제1 플랫폼 노드 템플릿의 버전 요건보다 낮다고 결정하며; 그렇지 않으면, 바로 단계 4067를 실행한다.
단계 4064를 실행하기 전에, 저장된 어플리케이션 전개 서버가, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 목적지 노드 템플릿(즉, 제2 플랫폼 노드 템플릿)을 기술한다고 결정한다. 또한, 어플리케이션 전개 서버는, 디스크립션 파일의 관계 템플릿에 따라, 관계 템플릿 내의 소스 노드 템플릿, 목적지 노드 템플릿으로서 제1 플랫폼 노드 템플릿을 사용하는 목적지 노드 템플릿을 결정한다. 본원의 실시태양에서, 소스 노드 템플릿으로서 제1 플랫폼 노드 템플릿을 사용하는 목적지 노드 템플릿은 제2 플랫폼 노드라고 지칭된다.
도 5는 예로써 사용된다. apache 노드 템플릿과 javaModule 노드 템플릿 사이에 방향을 표시하는 화살표가 존재한다. 그 후, 관계 템플릿에서, apache 노드 템플릿이 소스 노드 템플릿으로서 사용되며, javaModule가 목적지 노드 템플릿으로서 사용된다. 그러므로, javaModule 노드 템플릿은 제2 플랫폼 노드 템플릿으로서 사용된다. 어플리케이션 전개 서버는, 소스 노드 템플릿과 목적지 노드 템플릿을 위한 테이블(예컨대 표 6)에 매칭되는 버전 요건에 따라, 제1 플랫폼 노드 Apache가 Tomcat 7.0로 업그레이드될 것을 결정한다. 제2 플랫폼 노드 템플릿 javaModule에 대응하는 노드는 JDK 1.6를 지원하는 것이 필요하고, 그러나 JavaModule의 현재 버전은 JDK1.5이다. 그러므로, 제2 플랫폼 노드의 버전 JDK1.5는 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건(JDK 1.6)보다 낮다.
소스 노드 템플릿과 목적지 노드 템플릿을 위한 테이블에 매칭하는 버전 요건
어플리케이션
식별자
소스 노드
템플릿의 식별자
목적지 노드
템플릿의 식별자
소스 노드의
전개 아티팩트 이름
타겟 노드의
전개 아티팩트 이름
appB apache javaModule Tomcat 6.0 JDK 1.5
appB apache javaModule Tomcat 7.0 JDK 1.6
단계 4065. 제2 플랫폼 노드 업그레이드 패키지를 획득한다. 단계 4066를 실행한다.
구체적으로, 제2 플랫폼 노드 업그레이드 패키지가 제2 플랫폼 노드를 위한 제1 플랫폼 노드의 버전 요건에 따라 획득된다.
업그레이드 패키지 D가 어플리케이션 전개 서버에 유지된다면, 업그레이드 패키지는 노드 템플릿 javaModule에 대응하는 플랫폼 노드를 JDK1.6로 업그레이드하도록 사용될 수 있고, 그 후 제2 플랫폼 노드 업그레이드 패키지는 업그레이드 패키지 D이다.
단계 4066. 제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드한다. 단계 4067를 실행한다.
단계 4066 전에, 어플리케이션 전개 서버가 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이, 제2 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 목적지 노드 템플릿(즉, 제3 노드 템플릿)을 기술하는지 여부를 계속하여 결정하고, 업그레이드가 충족된 후에 임의의 버전 요건까지, 단계 4064 및 4065를 반복하여 실행하는 것이 더 필요하다는 것에 유의해야 한다.
단계 4067. 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 단계 4068를 실행한다.
단계 4068. 전개될 어플리케이션의 전개 패키지에 따라 전개된 어플리케이션 노드를 업그레이드한다.
플랫폼 노드가 어플리케이션 전개 서버에 의해 관리되며, 어플리케이션 노드는 사용자 기기에 의해 관리되고, 전개된 어플리케이션의 어플리케이션 전개 패키지는 사용자 기기에 의해 또한 생성된다. 그러므로, 전개된 어플리케이션을 업그레이드하는 것은 사실상 전개된 어플리케이션에 대응하는 어플리케이션 노드를 업그레이드하는 것을 말한다. 업그레이드 프로세스는 전개될 어플리케이션의 획득된 전개 패키지 내의 플랜(plan)에 기술된 정보에 따라 구현될 수 있다. 어플리케이션 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개된 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술한다. 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 사용될 수 있다.
플랫폼 노드의 업그레이드 패키지는 어플리케이션 전개 서버에 의해 유지된다. 플랫폼 노드 설치되는데 실패한 경우에, 어플리케이션 전개 서버가 적절한 시기에 실패에 응답하고 플랫폼 노드의 최종의 성공적인 업그레이드를 보장할 수 있지 않다면, 어플리케이션 업그레이드는 분명히 실패이거나, 어플리케이션 노드가 성공적으로 업그레이드된다 할지라도 어플리케이션 노드가 정상적으로 작동할 수 없다. 플랫폼 노드가 먼저 업그레이드된다면, 그리고 어플리케이션 노드가 업그레이드되는데 실패한다면, 사용자 기기가 어플리케이션 노드 업그레이드 패키지를 구성하는 프로세스에 오류를 유발한 확률이 있다. 이 경우에, CSP 사용자 기기에 오류 정보를 복귀시킬(return) 수 있고, 오류 정보는 오류가 발생한 어플리케이션 노드의 식별자를 포함한다. 사용자 기기는 변경을 수행하고, 그 후 새로이 전개될 어플리케이션의 전개 패키지를 다시 제출한다. 어플리케이션 전개 서버는 오직 변경된 전개될 어플리케이션의 전개 패키지를 설치하는데 필요하며, 더이상 플랫폼 노드를 업그레이드할 필요는 없다. 그러므로, 전술한 업그레이드 프로세스에서, 제1 어플리케이션 노드의 전개될 어플리케이션의 전개 패키지, 제1 플랫폼 노드 업그레이드 패키지, 제2 플랫폼 노드 업그레이드 패키지,..., n번째 플랫폼 노드의 업그레이드 패키지가 획득될 때, n번째 플랫폼 노드, (n-1)번째 플랫폼 노드,..., 제2 플랫폼 노드, 제1 플랫폼 노드, 및 제1 어플리케이션 노드가 차례로 업그레이드될 수 있다.
단계 407. 어플리케이션 전개 서버가 사용자 기기에 업그레이드 응답 정보를 복귀시킨다.
특히, 각 플랫폼 노드이 성공적으로 업그레이드된 후에, 플랫폼 노드는 새 버전을 가지며, 따라서 플랫폼 노드의 새 버전이 데이터베이스에 기입될 필요가 있다.
예를 들어, 업그레이드 패키지 appE가 플랫폼 노드 Apache1를 업그레이드하도록 사용된 후에, 플랫폼 노드 Apache1는 성공적으로 업그레이드된 후에 새 버전 "supportServlet3"를 가지고, 따라서 어플리케이션 구현 정보 테이블 내의 전개 아티팩트 이름 및 능력 기술이 업데이트될 필요가 있다. 업데이트된 어플리케이션 구현 정보 테이블은 표 7에 나타난다. 능력 기술 또는 전개 아티팩트 이름이 플랫폼 노드의 버전을 입증할 수 있다.
어플리케이션 구현 정보 테이블
어플리케이션 식별자 전개 수 플랫폼 노드 식별자 전개 아티팩트 식별자 전개 아티팩트 유형 전개 아티팩트 이름 능력 기술
appB 1 Apache1 DaOfApache appContainer Tomcat 7.0 supportServlet3
appB 2 Apache2 DaOfApache appContainer Tomcat 7.0 supportServlet3
본원의 실시태양에서 제공되는 어플리케이션 업그레이드 방법의 일련의 실행 단계가 적절하게 조절될 수 있음을 유의해야 할 것이며, 단계들은 조건에 따라 상응하게 추가되거나 삭제될 수도 있다. 본원에 기재된 기술적 범위 내에서 통상의 기술자에 의해 용이하게 이해되는 임의의 변형은 본원의 보호 범위 내에 있을 것이며, 자세한 내용을 여기에 다시 기재하지 않는다.
전술한 해결책으로부터, 본원의 실시태양에 제공된 어플리케이션 업그레이드 방법에서, 전개될 어플리케이션의 전개 패키지에서의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다는 것을 알 수 있다. 어플리케이션 전개 서버가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위해 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하며, 이로써 업그레이드된 어플리케이션이 정상적으로 작동하는 것을 보장할 수 있다.
본원의 실시태양은 어플리케이션 전개 서버(80)를 제공한다. 도 8에서, 어플리케이션 전개 서버(80)는,
어플리케이션 전개 요청을 수신하고; 전개될 어플리케이션의 전개 패키지를 결정 모듈(802) 및 업그레이드 모듈(8030에 전송하도록 구성된 수신 모듈(801) - 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이, 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 -;
수신 모듈(801)에 의해 전송된 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하고 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지아고 결정하고; 전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고; 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고; 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하고, 제1 플랫폼 노드 업그레이드 패키지를 업그레이딩 모듈로 전송하도록 구성된 결정 모듈(802) - 업그레이드 식별자는 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자임을 유의해야 함 -; 및
결정 모듈(802)에 의해 전송된 제1 플랫폼 노드 업그레이드 패키지, 및 제1 플랫폼 노드를 사용하여 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하기 위함 업그레이드 패키지를 수신하도록 구성된, 업그레이딩 모듈(803)을 포함하고,
결정 모듈(802)은 전개된 어플리케이션의 노드 템플릿의 식별자에 따라 업그레이드될 어플리케이션 노드의 식별자를 결정하고, 업그레이딩 모듈(803)에 업그레이드될 어플리케이션 노드의 식별자를 전송하도록 더 구성되고,
업그레이딩 모듈(803)은 수신 모듈(801)에 의해 전송된 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하고, 결정 모듈(802)에 의해 전송된 업그레이드될 어플리케이션 노드의 식별자를 수신하고, 전개될 어플리케이션의 전개 패키지를 사용하여 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 더 구성된다.
이 방법으로, 전개될 어플리케이션의 전개 패키지에서의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 결정 모듈이 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정한 때에, 업그레이드 모듈이 제1 플랫폼 노드 템플릿을 위해 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 후에, 업그레이딩 모듈은 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위해 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동할 수 있을 것을 보장한다.
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달됨을 알아야 한다.
또한, 결정 모듈(802)은 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하도록 구성되거나;
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고, 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것이다.
결정 모듈(802)은,
전개된 어플리케이션의 식별자에 따라, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득하고;
제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하도록 더 구성된다.
업그레이딩 모듈(803)은 제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하도록 더 구성된다.
본원의 실시태양에 제공된 어플리케이션 전개 서버가 도 2 내지 도 6에 기재된 어플리케이션 전개 서버에 의해 실행되는 임의의 단계를 실행할 수 있음을 유의해야 한다. 본원의 실시태양에서 자세한 내용을 다시 기재하지는 않는다.
본원에 제공된 어플리케이션 전개 서버를 사용하여, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 결정 모듈이 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿를 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 업그레이딩 모듈은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 업그레이딩 모듈은 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써, 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
본원의 실시태양은 사용자 기기(90)를 제공한다. 도 9에서, 사용자 기기(90)는,
전개될 어플리케이션의 전개 패키지를 생성하도록 구성되고, 어플리케이션 전개 요청을 생성하고, 전송 모듈(902)에 어플리케이션 전개 요청을 전송하도록 더 구성된 생성 모듈(901) - 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하고, 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함함 -; 및
생성 모듈(901)에 의해 전송된 어플리케이션 전개 요청을 수신하고, 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성된 전송 모듈(902)
을 포함한다.
이 방법으로, 사용자 기기의 생성 모듈은 전개될 어플리케이션의 전개 패키지를 생성한다. 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 어플리케이션 전개 서버가, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달됨을 알아야 한다.
생성 모듈(901)에 의해 생성된 전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함한다.
또한, 사용자 기기는, 도 10에서처럼, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 구성된 결정 모듈(903)을 더 포함하며, 이때 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용한다.
본원의 실시태양에 제공된 사용자 기기가 도 2 내지 도 6에 기재된 사용자 기기에 의해 실행되는 임의의 단계를 실행할 수 있음을 유의해야 한다. 본원의 실시태양에서 자세한 내용을 다시 기재하지는 않는다.
본원의 실시태양에 제공된 사용자 기기에서, 사용자 기기의 생성 모듈은 전개될 어플리케이션의 전개 패키지를 생성한다. 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 어플리케이션 전개 서버가, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
본원의 실시태양은 어플리케이션 전개 서버(110)를 제공한다. 도 11에서처럼, 어플리케이션 전개 서버(110)는,
어플리케이션 전개 요청을 수신하고 전개될 어플리케이션의 전개 패키지를 프로세서(112)에 전송하도록 구성된 수신기(111) - 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이, 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 -; 및
프로세서(112)를 포함하며,
프로세서는,
수신기(111)에 의해 전송된 전개될 어플리케이션의 전개 패키지를 수신하고, 업그레이드 식별자에 따라, 전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션을 위한 업그레이드 패키지라고 결정하고 - 업그레이드 식별자는 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자임 -,
전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를, 획득하고, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고,
제1 플랫폼 노드의 버전에 따라, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고,
제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하고,
제1 플랫폼 노드 업그레이드 패키지를 사용하여, 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하고,
업그레이드될 어플리케이션 노드의 식별자를 결정하고,
전개될 어플리케이션의 전개 패키지를 사용하여, 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 구성된다.
이 방법으로, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일은 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 프로세서가, 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 프로세서는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 후에, 프로세서는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달됨에 유의해야 한다.
또한 프로세서(112)는 구체적으로, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하거나;
전개될 어플리케이션의 전개 패키지가 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때, 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것이다.
프로세서(112)는
전개된 어플리케이션의 식별자에 따라, 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 제2 플랫폼 노드의 버전을 획득하고;
제2 플랫폼 노드의 버전이 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하고;
제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하도록 더 구성된다.
본원의 실시태양에 제공된 어플리케이션 전개 서버가 도 2 내지 도 6에 기재된 어플리케이션 전개 서버에 의해 실행되는 임의의 단계를 실행할 수 있음을 유의해야 한다. 본원의 실시태양에서 자세한 내용을 다시 기재하지는 않는다.
본원에 제공된 어플리케이션 전개 서버를 사용하여, 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 프로세서가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿를 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 프로세서는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 프로세서는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써, 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
본원의 실시태양은 사용자 기기(120)를 제공한다. 도 12에서처럼, 사용자 기기(120)는
프로세서(121); 및
송신기(122)를 포함하며,
프로세서는,
전개될 어플리케이션의 전개 패키지를 생성하고 - 전개될 어플리케이션의 전개 패키지는 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 -;
어플리케이션 전개 요청을 생성하고 - 어플리케이션 전개 요청이 전개될 어플리케이션의 전개 패키지를 포함함 -;
어플리케이션 전개 요청을 송신기(122)로 전송하도록 구성되고,
송신기는,
프로세서에 의해 전송된 어플리케이션 전개 요청을 수신하고, 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성된다.
이 방법으로, 사용자 기기의 프로세서는 전개될 어플리케이션의 전개 패키지를 생성하고, 전개될 어플리케이션의 전개 패키지에 따라 어플리케이션 전개 요청을 생성하고, 어플리케이션 전개 요청을 송신기에 전송한다. 그 후, 송신기는 어플리케이션 전개 요청을 어플리케이션 전개 서버에 전송한다. 어플리케이션 전개 서버는 어플리케이션 전개 요청에서의 전개될 어플리케이션의 전개 패키지에 따라 플랫폼 노드 및 어플리케이션 노드를 자동으로 업그레이드한다.
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 업그레이드 식별자는 관계 템플릿 내에서 전달되거나;
전개될 어플리케이션의 전개 패키지는, 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 업그레이드 식별자는 노드 유형 구현 내에서 전달됨을 유의해야 한다.
또한, 프로세서(121)에 의해 생성된 전개될 어플리케이션의 전개 패키지는 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함한다.
프로세서(121)는, 전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 전개된 어플리케이션에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 더 구성되고, 이때 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용한다.
본원의 실시태양에 제공된 사용자 기기가 도 2 내지 도 6에 기재된 사용자 기기에 의해 실행되는 임의의 단계를 실행할 수 있음을 유의해야 한다. 본원의 실시태양에서 자세한 내용을 다시 기재하지는 않는다.
전술한 해결책으로부터 프로세서가 어플리케이션 개발자의 업그레이드 요건에 따라 전개될 어플리케이션의 전개 패키지를 생성한다는 것을 알 수 있으며, 이때 전개될 어플리케이션의 전개 패키지 내의 어플리케이션 디스크립션 파일이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 기술한다. 어플리케이션 전개 서버가 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿를 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정할 때에, 어플리케이션 전개 서버는 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라 제1 플랫폼 노드 업그레이드 패키지를 획득한다. 그 이후에, 어플리케이션 전개 서버는 획득된 제1 플랫폼 노드 업그레이드 패키지에 따라 제1 플랫폼 노드를 업그레이드한다. 이 방법으로, 업그레이드된 제1 플랫폼 노드의 버전이 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하고, 이로써, 업그레이드된 어플리케이션이 정상적으로 작동할 수 있도록 보장한다.
본원에 기재된 용어 "및/또는"은 연관 대상을 기재하기 위한 연관 관계를 위해서만 기재되며, 세 가지 관계가 존재할 수도 있음을 나타낸다. 예를 들어, A 및/또는 B는 다음의 세 가지 경우를 나타낼 수 있다: 오직 A의 존재, A 및 B의 존재, 오직 B의 존재. 게다가, 본 명세서에서 특수문자 "/"은 일반적으로 연관 대상들 사이의 관계인 "or"을 나타낸다.
당업자는, 용이하고 간단한 기재의 목적을 위하여, 전술한 시스템, 장치 및 유닛의 자세한 워킹 프로세스에 대하여, 전술한 방법 실시태양의 대응하는 프로세스를 참조할 수 있으며, 자세한 사항을 본 명세서에서 다시 기재하지는 않음을 명백히 이해할 것이다.
본원에 제공된 몇몇의 실시태양에서,개시된 시스템, 장치, 및 방법이 다른 방법으로 구현될 수 있음을 이해해야 한다. 예를 들어, 기재된 장치는 단지 일례이이다. 예를 들어, 유닛 구분은 단지 논리적 기능 구분이며, 실제 구현에서는 다른 구분일 수 있다. 예컨대, 복수의 유닛이나 컴포넌트가 결합되거나 또 다른 시스템에 집적될 수 있고, 몇몇의 기능이 무시되거나 수행되지 않을 수 있다. 게다다, 보여지거나 논의되는 상호 커플링 또는 직접 커플링 또는 소통 연결이 몇몇 인터페이스를 사용하여 구현될 수 있다. 장치들 또는 유닛들 간의 간접 커플링 또는 소통 연결기 전가적, 기계적 또는 다른 형태로 구현될 수 있다.
분리된 부분으로 기재된 유닛은 물리적으로 분리되거나 분리되지 않을 수 있고, 유닛으로 보여지는 부분은 물리적 유닛이거나 아닐 수도 있고, 한 장소에 위치하고 있거나, 복수의 네트워크 유닛으로 배분될 수도 있다. 몇몇 또는 모든 유닛은 실시태양의 해결의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
게다가, 본원의 실시태양의 기능적 유닛이 하나의 프로세싱 유닛으로 집적될 수 있거나, 각각의 유닛이 물리적으로 단독으로 존재하거나, 둘 이상의 유닛이 하나의 유닛에 집적될 수 있다. 집적된 유닛은 하드웨어의 형태로 구현될 수 있거나, 소프트웨어 기능적 유닉을 더하여 하드웨어의 형태로 집적될 수 있다.
전술한 기재는 단지 본원의 특정 구현 방법이나, 본원의 보호 범위가 이에 제한되지는 않는다. 통상의 기술자에 의해 본원에 기재된 기술적 범위 내에서 용이하게 이해될 수 있는 임의의 변형이나 대체가 본원의 보호 범위 내에 있을 것이다. 따라서, 본원의 보호 범위는 청구범위의 보호 범위의 대상일 것이다.

Claims (24)

  1. 어플리케이션 업그레이드 방법으로서,
    어플리케이션 전개 요청을 수신하는 단계 ― 상기 어플리케이션 전개 요청은 전개될(to-be-deployed) 어플리케이션의 전개 패키지를 포함하고, 상기 전개될 어플리케이션의 전개 패키지는 상기 전개될 어플리케이션의 노드 템플릿, 전개된(deplyoed) 어플리케이션의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 상기 제1 플랫폼 노드 템플릿을 위한 상기 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 ―;
    상기 업그레이드 식별자에 따라, 상기 전개될 어플리케이션의 전개 패키지가 상기 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하는 단계;
    상기 전개된 어플리케이션의 식별자에 따라, 상기 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하는 단계;
    상기 제1 플랫폼 노드의 버전에 따라, 상기 제1 플랫폼 노드의 버전이 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하는 단계;
    상기 제1 플랫폼 노드 템플릿을 위한 상기 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 상기 제1 플랫폼 노드 템플릿을 위한 상기 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하는 단계;
    상기 제1 플랫폼 노드 업그레이드 패키지를 사용하여, 상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하는 단계;
    업그레이드될(to-be-upgraded) 어플리케이션 노드의 식별자를 결정하는 단계; 및
    상기 전개될 어플리케이션의 전개 패키지를 사용하여, 상기 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하는 단계
    를 포함하는,
    어플리케이션 업그레이드 방법.
  2. 제1항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현(node type implementation)을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 어플리케이션 업그레이드 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계는 구체적으로:
    상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 단계이거나;
    상기 전개될 어플리케이션의 전개 패키지가, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때에, 상기 업그레이드될 어플리케이션 노드의 식별자를 결정하는 단계는 구체적으로:
    상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 상기 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 단계인 것인, 어플리케이션 업그레이드 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하는 단계 전에,
    상기 전개된 어플리케이션의 식별자에 따라, 상기 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하는 단계;
    상기 전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하는 단계;
    제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 상기 제2 플랫폼 노드의 버전을 획득하는 단계; 및
    상기 제2 플랫폼 노드의 버전이 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하는 단계
    를 더 포함하고,
    상기 제1 플랫폼 노드 업그레이드 패키지를 사용하여, 상기 제1 플랫폼 노드를 업그레이드하는 단계 전에,
    상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하는 단계; 및
    상기 제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하는 단계를 더 포함하는, 어플리케이션 업그레이드 방법.
  5. 어플리케이션 업그레이드 방법으로서,
    전개될 어플리케이션의 전개 패키지를 생성하는 단계 ― 상기 전개될 어플리케이션의 전개 패키지가 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 ―;
    상기 전개될 어플리케이션의 전개 패키지를 포함하는 어플리케이션 전개 요청을 생성하는 단계; 및
    상기 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하는 단계
    를 포함하는,
    어플리케이션 업그레이드 방법.
  6. 제5항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 어플리케이션 업그레이드 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함하는, 어플리케이션 업그레이드 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지를 생성하는 단계 전에, 상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 상기 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하는 단계를 더 포함하고,
    상기 제1 플랫폼 노드 템플릿은 상기 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용하는, 어플리케이션 업그레이드 방법.
  9. 어플리케이션 전개 서버로서,
    수신 모듈, 결정 모듈, 및 업그레이딩 모듈
    을 포함하고,
    상기 수신 모듈은,
    어플리케이션 전개 요청을 수신하고 ― 상기 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 상기 전개될 어플리케이션의 전개 패키지는 상기 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 ―;
    상기 전개될 어플리케이션의 어플리케이션 전개 패키지를 상기 결정 모듈 및 상기 업그레이딩 모듈로 전송하도록 구성되고,
    상기 결정 모듈은,
    상기 수신 모듈에 의해 전송된 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하고, 상기 업그레이드 식별자에 따라, 상기 전개될 어플리케이션의 전개 패키지가 상기 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하고;
    상기 전개된 어플리케이션의 식별자에 따라, 상기 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고;
    상기 제1 플랫폼 노드의 버전에 따라, 상기 제1 플랫폼 노드의 버전이 상기 제1 플랫폼 노드 템플릿을 위한 상기 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고;
    상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지를 획득하고, 상기 제1 플랫폼 노드 업그레이드 패키지를 상기 업그레이딩 모듈로 전송하도록 구성되고,
    상기 업그레이딩 모듈은,
    상기 결정 모듈에 의해 전송된 제1 플랫폼 노드 업그레이드 패키지를 수신하고, 상기 제1 플랫폼 노드 업그레이드 패키지를 사용하여, 상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하도록 구성되고,
    상기 결정 모듈은,
    상기 전개된 어플리케이션의 노드 템플릿의 식별자에 따라, 업그레이드될 어플리케이션 노드의 식별자를 결정하고, 상기 업그레이드될 어플리케이션 노드의 식별자를 상기 업그레이딩 모듈로 전송하도록 더 구성되며,
    상기 업그레이딩 모듈은,
    상기 수신 모듈에 의해 전송된 상기 전개될 어플리케이션의 어플리케이션 전개 패키지를 수신하고, 상기 결정 모듈에 의해 전송된 업그레이드될 어플리케이션 노드의 식별자를 수신하고, 상기 전개될 어플리케이션의 전개 패키지를 사용하여, 상기 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 더 구성되는,
    어플리케이션 전개 서버.
  10. 제9항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 어플리케이션 전개 서버.
  11. 제9항 또는 제10항에 있어서,
    상기 결정 모듈이 구체적으로, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하도록 구성되거나;
    상기 전개될 어플리케이션의 전개 패키지가, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때에, 상기 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
    상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 상기 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것인, 어플리케이션 전개 서버.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 결정 모듈은,
    상기 전개된 어플리케이션의 식별자에 따라, 상기 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
    상기 전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이 상기 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
    제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 상기 제2 플랫폼 노드의 버전을 획득하고;
    상기 제2 플랫폼 노드의 버전이 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
    상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하도록 더 구성되고,
    업그레이딩 모듈은,
    상기 제2 플랫폼 노드 업그레이드 패키지에 따라 상기 제2 플랫폼 노드를 업그레이드하도록 더 구성되는, 어플리케이션 전개 서버.
  13. 사용자 기기로서,
    생성 모듈, 및 전송 모듈
    을 포함하고,
    상기 생성 모듈은 전개될 어플리케이션의 전개 패키지를 생성하도록 구성되고, 상기 전개될 어플리케이션의 전개 패키지가 상기 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술하며,
    상기 생성 모듈은 상기 전개될 어플리케이션의 전개 패키지를 포함하는 어플리케이션 전개 요청을 생성하고, 상기 어플리케이션 전개 요청을 상기 전송 모듈로 전송하도록 더 구성되고,
    상기 전송 모듈은 상기 생성 모듈에 의해 전송된 어플리케이션 전개 요청을 수신하고, 상기 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성되는,
    사용자 기기.
  14. 제13항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 사용자 기기.
  15. 제13항 또는 제14항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함하는, 사용자 기기.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 구성된 결정 모듈을 더 포함하고, 상기 제1 플랫폼 노드 템플릿은 상기 전개된 어플리케이션의 노드 템플릿을 스소 노드 템플릿으로서 사용하는, 사용자 기기.
  17. 어플리케이션 전개 서버로서,
    수신기, 및 프로세서
    를 포함하고,
    상기 수신기는,
    어플리케이션 전개 요청을 수신하고 ― 상기 어플리케이션 전개 요청은 전개될 어플리케이션의 전개 패키지를 포함하고, 상기 전개될 어플리케이션의 전개 패키지는 상기 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 ―;
    상기 전개될 어플리케이션의 전개 패키지를 프로세서로 전송하도록 구성되고,
    상기 프로세서는,
    상기 수신기에 의해 전송된 전개될 어플리케이션의 전개 패키지를 수신하고, 상기 업그레이드 식별자에 따라, 상기 전개될 어플리케이션의 전개 패키지가 상기 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 업그레이드 패키지라고 결정하고;
    상기 전개된 어플리케이션의 식별자에 따라, 제1 플랫폼 노드 템플릿의 식별자에 대응하는 제1 플랫폼 노드의 식별자를 획득하고, 상기 제1 플랫폼 노드의 식별자에 의해 표시된 제1 플랫폼 노드의 버전을 획득하고;
    상기 제1 플랫폼 노드의 버전에 따라, 상기 제1 플랫폼 노드의 버전이 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건보다 낮다고 결정하고;
    상기 제1 플랫폼 노드 템플릿에 대한 전개될 어플리케이션의 노드 템플릿의 버전 요건에 따라, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건을 충족하는 제1 플랫폼 노드 업그레이드 패키지을 획득하고;
    상기 제1 플랫폼 노드 업그레이드 패키지를 사용하여 제1 플랫폼 노드 템플릿의 식별자에 의해 표시된 제1 플랫폼 노드를 업그레이드하고;
    업그레이드될 어플리케이션 노드의 식별자를 결정하고;
    상기 전개될 어플리케이션의 전개 패키지를 사용하여 상기 업그레이드될 어플리케이션 노드의 식별자에 의해 표시된 어플리케이션 노드를 업그레이드하도록 구성되는,
    어플리케이션 전개 서버.
  18. 제17항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 어플리케이션 전개 서버.
  19. 제17항 또는 제18항에 있어서,
    상기 프로세서는 구체적으로, 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 모든 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하도록 구성되거나;
    상기 전개될 어플리케이션의 전개 패키지가 상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함할 때에, 상기 업그레이드될 어플리케이션 노드의 식별자를 결정하는 것은 구체적으로,
    상기 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하고 상기 어플리케이션 전개 패키지 내에 포함되는 하나 이상의 전개된 어플리케이션 노드의 식별자를, 상기 업그레이드될 어플리케이션 노드의 식별자로서 결정하는 것인, 어플리케이션 전개 서버.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 프로세서는,
    상기 전개된 어플리케이션의 식별자에 따라, 상기 전개된 어플리케이션의 전개 패키지의 저장된 디스크립션 파일을 획득하고;
    상기 전개된 어플리케이션의 전개 패키지의 획득된 디스크립션 파일에 따라, 상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일이, 제1 플랫폼 노드 템플릿을 소스 노드 템플릿으로서 사용하는 제2 플랫폼 노드 템플릿을 기술한다고 결정하고;
    제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건, 및 상기 제2 플랫폼 노드의 버전을 획득하고;
    상기 제2 플랫폼 노드의 버전이 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건보다 낮다고 결정하고;
    상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건에 따라, 상기 제2 플랫폼 노드를 위한 업그레이드된 제1 플랫폼 노드의 버전 요건을 충족하는 제2 플랫폼 노드 업그레이드 패키지를 획득하고;
    상기 제2 플랫폼 노드 업그레이드 패키지에 따라 제2 플랫폼 노드를 업그레이드하도록 더 구성되는, 어플리케이션 전개 서버.
  21. 사용자 기기로서,
    프로세서, 및 송신기
    를 포함하고,
    상기 프로세서는,
    전개될 어플리케이션의 전개 패키지를 생성하고 ― 상기 전개될 어플리케이션의 전개 패키지가 상기 전개될 어플리케이션의 노드 템플릿, 전개된 어플리케이션의 식별자, 제1 플랫폼 노드 템플릿의 식별자, 상기 전개된 어플리케이션의 노드 템플릿의 식별자, 상기 제1 플랫폼 노드 템플릿을 위한 전개될 어플리케이션의 노드 템플릿의 버전 요건, 및 상기 전개될 어플리케이션의 노드 템플릿이 전개된 어플리케이션의 노드 템플릿의 식별자에 의해 표시된 전개된 어플리케이션의 노드 템플릿을 업그레이드하도록 사용된다는 것을 표시하는 업그레이드 식별자를 기술함 ―;
    상기 전개될 어플리케이션의 전개 패키지를 포함하는 어플리케이션 전개 요청을 생성하고;
    상기 어플리케이션 전개 요청을 상기 송신기로 전송하도록 구성되고,
    상기 송신기는,
    상기 프로세서에 의해 전송된 어플리케이션 전개 요청을 수신하고, 상기 어플리케이션 전개 요청을 어플리케이션 전개 서버로 전송하도록 구성되는,
    사용자 기기.
  22. 제21항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿을 기술하는 관계 템플릿을 더 포함하고, 상기 업그레이드 식별자는 상기 관계 템플릿 내에서 전달되거나;
    상기 전개될 어플리케이션의 전개 패키지는, 상기 전개될 어플리케이션의 노드 템플릿에 대응하는 노드 유형 구현을 더 포함하고, 상기 업그레이드 식별자는 상기 노드 유형 구현 내에서 전달되는, 사용자 기기.
  23. 제21항 또는 제22항에 있어서,
    상기 전개될 어플리케이션의 전개 패키지가, 전개된 어플리케이션의 노드 템플릿의 식별자에 대응하는 하나 이상의 전개된 어플리케이션 노드의 식별자를 더 포함하는, 사용자 기기.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 프로세서는, 상기 전개된 어플리케이션의 전개 패키지의 디스크립션 파일에 따라, 상기 전개된 어플리케이션의 식별자에 의해 표시된 전개된 어플리케이션의 제1 플랫폼 노드 템플릿을 결정하도록 더 구성되고, 상기 제1 플랫폼 노드 템플릿은 전개된 어플리케이션의 노드 템플릿을 소스 노드 템플릿으로서 사용하는, 사용자 기기.
KR1020157023115A 2013-08-13 2013-08-13 어플리케이션 업그레이드 방법 및 장치 KR101782457B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/081410 WO2015021604A1 (zh) 2013-08-13 2013-08-13 一种应用升级方法、装置

Publications (2)

Publication Number Publication Date
KR20150110766A true KR20150110766A (ko) 2015-10-02
KR101782457B1 KR101782457B1 (ko) 2017-09-28

Family

ID=52467924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023115A KR101782457B1 (ko) 2013-08-13 2013-08-13 어플리케이션 업그레이드 방법 및 장치

Country Status (7)

Country Link
US (3) US9696984B2 (ko)
EP (1) EP2945055A4 (ko)
JP (1) JP6164440B2 (ko)
KR (1) KR101782457B1 (ko)
CN (3) CN104583945B (ko)
AU (1) AU2013397867B2 (ko)
WO (1) WO2015021604A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200008503A (ko) * 2018-07-16 2020-01-28 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 애플리케이션을 업데이트하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015021604A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 一种应用升级方法、装置
US9998323B2 (en) * 2014-09-25 2018-06-12 Bank Of America Corporation Datacenter configuration management tool
US10318265B1 (en) * 2015-10-09 2019-06-11 Amazon Technologies, Inc. Template generation for deployable units
CN107479862A (zh) * 2016-06-07 2017-12-15 阿里巴巴集团控股有限公司 一种软件升级的灰度发布方法及系统
US10353686B1 (en) * 2016-12-28 2019-07-16 Facebook, Inc. Application installation system
CN108809683B (zh) * 2017-05-04 2022-07-15 中兴通讯股份有限公司 部署云应用系统的方法及装置
US10749743B2 (en) 2017-06-12 2020-08-18 Microsoft Technology Licensing, Llc Upgrade a version of a service
CN107844314B (zh) * 2017-12-22 2020-12-18 税友软件集团股份有限公司 一种升级Weblogic应用程序的方法及系统
CN110308914B (zh) * 2018-03-27 2023-08-22 阿里巴巴(中国)有限公司 升级处理方法、装置、设备、系统及计算机可读存储介质
CN109388415A (zh) * 2018-09-27 2019-02-26 深圳供电局有限公司 一种应用自动化更新装置、系统和方法
CN112035146B (zh) * 2020-09-11 2023-10-24 百富计算机技术(深圳)有限公司 固件更新方法、安全设备和计算机可读存储介质
WO2023275589A1 (en) * 2021-06-28 2023-01-05 Sensetime International Pte. Ltd. Methods and apparatuses for installing device application
US11861339B2 (en) * 2021-09-16 2024-01-02 Change Healthcare Holdings, Llc Systems and methods for deploying software applications using application catalogs
WO2023230642A1 (en) * 2022-05-31 2023-12-07 Technological Resources Pty Limited Ensuring backwards compatbility between a supervisory system and on-device control software

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333864B (en) * 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6912711B1 (en) 2000-05-25 2005-06-28 International Business Machines Corporation Method of applying an update to a contained collection of program and data files based upon versions
US7478385B2 (en) 2003-01-17 2009-01-13 National Instruments Corporation Installing software using programmatic component dependency analysis
US20040148370A1 (en) * 2003-01-23 2004-07-29 Electronic Data Systems Corporation System and method for composing, configuring, deploying, and managing services using a graphical user interface
US20040261071A1 (en) * 2003-06-23 2004-12-23 Macronix International Co., Ltd. Peer version control system
KR101169432B1 (ko) 2005-12-12 2012-07-27 삼성전자주식회사 자바 어플리케이션의 실행 환경 관리 시스템 및 방법
US8726267B2 (en) 2006-03-24 2014-05-13 Red Hat, Inc. Sharing software certification and process metadata
CN100549950C (zh) * 2006-07-14 2009-10-14 中兴通讯股份有限公司 分布式软件系统的部署方法
US7874008B2 (en) * 2006-08-29 2011-01-18 International Business Machines Corporation Dynamically configuring extensible role based manageable resources
US7634488B2 (en) * 2006-11-13 2009-12-15 Ricoh Company, Ltd. Remote distribution/installation utility and associated method of deploying executable code
US8205194B2 (en) * 2007-06-29 2012-06-19 Microsoft Corporation Updating offline virtual machines or VM images
US20090133014A1 (en) 2007-11-16 2009-05-21 Nokia Corporation Methods, apparatuses and computer program product for automatic download of software dependencies on installation
KR100952166B1 (ko) * 2008-07-24 2010-04-09 인하대학교 산학협력단 그리드 데이터 베이스의 데이터 버전 관리 방법 및 장치
US8291378B2 (en) * 2008-07-29 2012-10-16 International Business Machines Corporation Simplified deployment modeling
US9280335B2 (en) * 2010-09-30 2016-03-08 International Business Machines Corporation Semantically rich composable software image bundles
US20110061046A1 (en) * 2008-12-18 2011-03-10 Virtual Computer, Inc. Installing Software Applications in a Layered Virtual Workspace
US20100281475A1 (en) * 2009-05-04 2010-11-04 Mobile On Services, Inc. System and method for mobile smartphone application development and delivery
US8635534B2 (en) * 2009-08-12 2014-01-21 Ebay Inc. Reservation of resources and deployment of applications using an integrated development environment
US20120066672A1 (en) * 2010-03-16 2012-03-15 Salesforce.Com, Inc. Systems and Methods for Implementing Upgradeable Subscriber-Controlled Managed Package Components in a Multi-Tenant Environment
US9448790B2 (en) * 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US8661132B2 (en) * 2010-05-28 2014-02-25 International Business Machines Corporation Enabling service virtualization in a cloud
US8782748B2 (en) * 2010-06-22 2014-07-15 Microsoft Corporation Online service access controls using scale out directory features
US8407689B2 (en) * 2010-06-25 2013-03-26 Microsoft Corporation Updating nodes considering service model constraints
US8627310B2 (en) * 2010-09-30 2014-01-07 International Business Machines Corporation Capturing multi-disk virtual machine images automatically
US9753713B2 (en) * 2010-10-22 2017-09-05 Microsoft Technology Licensing, Llc Coordinated upgrades in distributed systems
CN102006332B (zh) * 2010-12-03 2013-12-11 杭州华三通信技术有限公司 一种软件升级的方法和系统
US9021465B2 (en) * 2010-12-15 2015-04-28 Red Hat Israel, Ltd. Downloading guest software updates by a hypervisor
US8261295B1 (en) * 2011-03-16 2012-09-04 Google Inc. High-level language for specifying configurations of cloud-based deployments
JP5665188B2 (ja) * 2011-03-31 2015-02-04 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウエア更新を適用した情報処理装置を検査するシステム
US8997078B2 (en) * 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
CN102811136A (zh) * 2011-06-01 2012-12-05 南京中兴新软件有限责任公司 软件升级系统及方法
TW201250482A (en) * 2011-06-02 2012-12-16 Hon Hai Prec Ind Co Ltd System and method for updating virtual machine templates
US20130117749A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Provisioning and Managing an Application Platform
CN102404147A (zh) * 2011-11-21 2012-04-04 中兴通讯股份有限公司 一种软件版本的动态更新方法及系统
BR112014012772A8 (pt) 2011-12-01 2017-06-20 Tencent Tech Shenzhen Co Ltd método e sistema para aprimorar software
US9235398B2 (en) * 2011-12-07 2016-01-12 Yahoo! Inc. Development of platform independent applications
CN102495733A (zh) * 2011-12-08 2012-06-13 方正国际软件有限公司 应用程序与相关数据库脚本兼容性检测和升级维护的方法
US20130166311A1 (en) * 2011-12-21 2013-06-27 The TriZetto Group System and Method for Provisioning and Deploying a Virtual Appliance to Implement Enterprise Solutions
CN102413022B (zh) * 2011-12-31 2014-04-16 北京新媒传信科技有限公司 一种应用调试方法和系统
US9043784B2 (en) * 2012-01-12 2015-05-26 Red Hat, Inc. Management of inter-dependent configurations of virtual machines in a cloud
US9047133B2 (en) * 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US10031783B2 (en) * 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
CN102629207B (zh) * 2012-03-05 2016-12-14 浪潮通用软件有限公司 一种多租户环境运行实例分时更新的方法
US8667486B2 (en) * 2012-06-26 2014-03-04 Google Inc. Automatic provisioning of a software platform to a device ecosystem
US9348652B2 (en) * 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
CN102821162B (zh) * 2012-08-24 2016-04-27 上海和辰信息技术有限公司 云计算网络环境下面向松散云节点服务平台的系统
US8997088B2 (en) * 2012-11-02 2015-03-31 Wipro Limited Methods and systems for automated deployment of software applications on heterogeneous cloud environments
US8875121B2 (en) * 2012-11-06 2014-10-28 Nvidia Corporation Framework for multi-type and multi-location firmware updates and hardware feature updates through a single interface protocol
CN102945175A (zh) * 2012-11-09 2013-02-27 杭州易和网络有限公司 一种基于云计算环境的终端软件在线升级系统及其方法
US8924950B2 (en) 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US9189224B2 (en) * 2013-07-11 2015-11-17 Oracle International Corporation Forming an upgrade recommendation in a cloud computing environment
WO2015021604A1 (zh) * 2013-08-13 2015-02-19 华为技术有限公司 一种应用升级方法、装置
US9753784B2 (en) * 2013-11-27 2017-09-05 At&T Intellectual Property I, L.P. Cloud delivery platform
EP3137989A4 (en) * 2014-04-30 2018-01-03 Pivotal Software, Inc. Fast deployment across cloud platforms

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200008503A (ko) * 2018-07-16 2020-01-28 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 애플리케이션을 업데이트하기 위한 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체
US11507856B2 (en) 2018-07-16 2022-11-22 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for updating application

Also Published As

Publication number Publication date
WO2015021604A1 (zh) 2015-02-19
AU2013397867B2 (en) 2017-05-18
US20170277532A1 (en) 2017-09-28
EP2945055A4 (en) 2016-05-25
AU2013397867A1 (en) 2015-08-27
US9696984B2 (en) 2017-07-04
US10649761B2 (en) 2020-05-12
CN108052340B (zh) 2021-03-30
CN108319463B (zh) 2021-08-20
US20190129709A1 (en) 2019-05-02
CN104583945A (zh) 2015-04-29
KR101782457B1 (ko) 2017-09-28
CN108319463A (zh) 2018-07-24
EP2945055A1 (en) 2015-11-18
JP6164440B2 (ja) 2017-07-19
JP2016521897A (ja) 2016-07-25
US20150347123A1 (en) 2015-12-03
CN108052340A (zh) 2018-05-18
US10191730B2 (en) 2019-01-29
CN104583945B (zh) 2018-01-12

Similar Documents

Publication Publication Date Title
KR101782457B1 (ko) 어플리케이션 업그레이드 방법 및 장치
US10776104B2 (en) Systems and methods for tracking configuration file changes
US10742483B2 (en) Network fault originator identification for virtual network infrastructure
US8887147B2 (en) Method for supporting new network element software versions in an element management system without upgrading
CN102413022B (zh) 一种应用调试方法和系统
US8139509B2 (en) Installation and management of mobile device [{S]} configuration
CN110636093B (zh) 微服务注册和发现方法、设备、存储介质以及微服务系统
US20110004676A1 (en) Virtual appliance deploying system
CN102355500B (zh) 业务推送方法和装置
US11561784B2 (en) Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms
US11159390B2 (en) Systems and methods for service-aware mapping of a system infrastructure
CA2999770A1 (en) System and method for building, optimizing, and enforcing infrastructure on a cloud based computing environment
Da Silva et al. Internet of things out of the box: using TOSCA for automating the deployment of IoT environments
US11573786B1 (en) Deployment strategies for continuous delivery of software artifacts in cloud platforms
US20210289435A1 (en) Virtualization management method and apparatus
US11392366B1 (en) Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms
US20100235493A1 (en) Extendable distributed network management system and method
FI120286B (fi) Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi
US20130254757A1 (en) Nesting installations of software products
CN112698930B (zh) 一种获取服务器标识的方法、装置、设备及介质
US20170237687A1 (en) Resource trees by management controller
CN111726374A (zh) web请求处理方法、系统、装置和计算机可读存储介质
Wu et al. Design and Implementation of an Auto-Configuration and Cooperation Generation of Web Service User Interface Based on TR-069 Protocol
CN104298750A (zh) 用于实时系统通信的更新处理方法及装置
KR20160028248A (ko) 기기 등록 자동화 장치 및 이를 이용한 프로비저닝 자동화 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant