KR20180102212A - 자동화된 서비스 프로파일링 및 오케스트레이션 - Google Patents

자동화된 서비스 프로파일링 및 오케스트레이션 Download PDF

Info

Publication number
KR20180102212A
KR20180102212A KR1020187025719A KR20187025719A KR20180102212A KR 20180102212 A KR20180102212 A KR 20180102212A KR 1020187025719 A KR1020187025719 A KR 1020187025719A KR 20187025719 A KR20187025719 A KR 20187025719A KR 20180102212 A KR20180102212 A KR 20180102212A
Authority
KR
South Korea
Prior art keywords
service
orchestration
profile
services
network
Prior art date
Application number
KR1020187025719A
Other languages
English (en)
Inventor
데일 엔. 시드
광 루
리쥔 둥
카탈리나 엠. 밀라딘
윌리엄 로버트 4세 플린
쉬 리
훙쿤 리
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 KR20180102212A publication Critical patent/KR20180102212A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5045Making service definitions prior to deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager

Abstract

서비스들을 오케스트레이션하는 시스템이 개시되어 있다. 서비스 오케스트레이션 프로파일들은 원하는 서비스들을 정의하는 속성들을 명시한다. 서비스 오케스트레이션 프로파일들은 노드들 간에 분산되고 서로 계층적으로 관련될 수 있다. 서비스 오케스트레이션 관리 기능들은 원하는 서비스들을 결정하고 원하는 서비스들을 구현하는 데 정보를 사용하기 위해 서비스 오케스트레이션 프로파일들 내의 정보를 처리한다. 서비스 오케스트레이션 관리 기능들은 서로 계층적으로 관련될 수 있다.

Description

자동화된 서비스 프로파일링 및 오케스트레이션{AUTOMATED SERVICE PROFILING AND ORCHESTRATION}
관련 출원들의 상호 참조
본 출원은 35 U.S.C. § 119(e)에 따라 2014년 6월 13일자로 출원된 미국 가특허 출원 제62/011,770호의 이익을 주장하고, 그 내용은 이로써 참고로 그 전체가 본 명세서에 포함된다.
서비스는 네트워크 환경에서 이용가능하고 액세스가능하게 되어 있는 정의된 기능 또는 능력들의 세트를 지칭한다. 디바이스들 및/또는 소프트웨어 애플리케이션들은 특정의 디바이스 또는 애플리케이션을 위해 원하는 기능을 수행하는 서비스로 요청들을 전송한다.
아주 다양한 기술적 환경들에서 서비스들이 이용된다. 예를 들어, 서비스들이 웹 관련 기술들에서 광범위하게 사용된다. 특정의 기능을 갖는 웹 서비스가 특정의 네트워크 주소에서 이용가능하게 될 수 있다. 특정의 기능을 필요로 하는 시스템들은 웹을 통해 웹 서비스로 요청을 전송할 수 있고, 웹 서비스는 이어서 원하는 기능을 수행한다. 예시적인 시나리오에서, 그렇지 않았으면 호환가능하지 않은 시스템과 데이터를 교환하기 위해, 웹 서비스가 하나의 시스템에 의해 이용될 수 있다.
서비스들이 또한 M2M(machine to machine) 및 IoT(internet of things) 기술들과 관련하여 널리 사용된다. M2M(machine to machine)은 네트워크로 연결된 디바이스들이 사람의 수동 지원 없이 정보를 교환하고 동작들을 수행할 수 있게 하는 기술을 가리키는 데 사용되는 광의의 호칭이다. IoT(Internet of Things)는, 머신들 및 머신들의 컴포넌트들을 비롯한, 물체들이 고유 식별자들을 제공받고 사람-사람간 또는 사람-컴퓨터간 상호작용을 필요로 함이 없이 네트워크를 통해 물체들 사이에서 데이터를 자동으로 전송할 수 있는 능력을 제공받는 시나리오를 지칭한다. 예를 들어, 보안, 과금, 및 데이터 관리에 관련된 능력들을 비롯한, M2M 능력들에의 액세스를 제공하기 위해 서비스들이 사용된다.
서비스들은 네트워크 아키텍처의 "서비스 계층"에 존재하는 것으로 생각될 수 있다. 서비스 계층은 네트워크 계층 위에 배치되고, 서비스 계층에서의 서비스들이 네트워크 계층의 능력들을 사용할 수 있게 한다. 서비스 계층은 클라이언트 애플리케이션 계층 아래에 배치된다. 클라이언트 애플리케이션들은 서비스들에 의해 이용가능하게 되는 기능에 액세스하기 위해 서비스 계층에서의 서비스들에 요청을 한다. 그에 따라, 서비스 계층은 애플리케이션 프로그래밍 인터페이스들 및 기반이 되는 네트워크 인터페이스들의 세트를 통해 부가 가치 서비스 능력들을 지원하는 소프트웨어 미들웨어 계층이다.
몇 개의 단체들이 서비스 동작들에 대한 표준들을 정의하려고 시도해왔다. 예를 들어, M2M 통신 및 서비스와 관련하여, oneM2M, OMA(Open Mobile Alliance), 및 OMA LWM2M(Lightweight M2M)은 서비스 구현들의 양태들을 표준화하려고 모색해왔다. 이 기존의 M2M/IoT 서비스 계층 표준들(예컨대, oneM2M, OMA, LWM2M)은 네트워크 내의 서비스 노드들(예컨대, 서버들, 게이트웨이들, 디바이스들)에 의해 호스팅되는 개개의 서비스 계층들에 의해 지원될 수 있는 서비스 능력들의 세트를 정의한다.
서비스들의 사용이 널리 채택되었지만, 서비스들을 관리하는 것은 대체로 수동 활동이다. 서비스들을 생성하고 수정하는 것은 원하는 서비스들을 제공하기 위해 개개의 머신들을 적절한 데이터 및 소프트웨어로 프로비저닝하는 데 사람의 개입을 종종 필요로 한다.
출원인은 본원에서 서비스들의 자동화된 오케스트레이션을 위한 시스템들 및 방법들을 개시한다. 개시된 시스템들 및 방법들은 원하는 서비스들을 제공하기 위해 서비스 노드들 및 서비스 계층들을 자동으로 구성하고 조정한다. 오케스트레이션은 네트워크 내의 노드들; 서비스 노드 상에서 호스팅되는 서비스 계층들; 서비스 계층 내의 서비스 능력들; 및/또는 서비스 능력의 특징들 중 임의의 것 및/또는 전부를 자동으로 구성하고 조정하는 것을 포함할 수 있다.
예시적인 실시예에서, 서비스들을 정의하는 정보가 컴퓨팅 메모리에 저장되고, 서비스 오케스트레이션 프로파일이라고 지칭된다. 오케스트레이션 프로파일은 서비스들의 오케스트레이션을 조정하는 데 사용되는 메타데이터를 포함한다. 예시적인 실시예에서, 서비스 오케스트레이션 프로파일들은, 네트워크 레벨, 서비스 노드 레벨, 서비스들 레벨, 및 서비스 능력 레벨을 비롯한, 서비스 아키텍처의 몇 개의 상이한 레벨들 각각에서의 서비스 구성들을 정의하는 속성들을 저장한다. 예시적인 실시예에서, 네트워크 서비스 오케스트레이션 프로파일은 서비스 노드들의 네트워크에 의해 제공되는 서비스들을 설명하는 정보를 저장할 수 있다. 다른 예시적인 실시예에서, 서비스 노드 오케스트레이션 프로파일은 하나 이상의 서비스 계층들을 호스팅하는 단일의 서비스 노드에 의해 제공되는 서비스들을 설명할 수 있다. 또 다른 예에서, 서비스 계층 오케스트레이션 프로파일은 단일의 서비스 계층에 의해 제공되는 서비스들을 설명할 수 있다. 또 다른 예에서, 서비스 능력 오케스트레이션 프로파일은 서비스 계층 내의 단일의 서비스 능력에 의해 제공되는 특징들을 설명한다. 프로파일 정보는 임의의 적당한 포맷으로 저장될 수 있고, 예를 들어, XML, WSDL, 및/또는 JSON을 비롯한 임의의 적당한 기술을 사용할 수 있다.
개시된 실시예들의 일 양태에 따르면, 오케스트레이션 프로파일들은 서로 계층적으로 관련될 수 있고, 네트워크 서비스 오케스트레이션 프로파일은 계층구조에서 가장 높고, 서비스 능력 오케스트레이션 프로파일은 계층구조에서 가장 낮은 레벨이다. 계층구조에서의 프로파일들은 계층구조에서 그의 위쪽에 있는 하나 이상의 부모 프로파일들에 링크될 수 있다. 마찬가지로, 하단에 존재하는 서비스 능력 오케스트레이션 프로파일을 제외하고는, 각각의 프로파일은 계층구조에서 보다 아래에 있는 그에 링크되어 있는 프로파일들을 가질 수 있다.
예시적인 실시예에서, 오케스트레이션 프로파일들에 저장된 바와 같은 원하는 서비스들에 관한 정보를 사용하여 서비스들의 오케스트레이션을 수행하기 위해 하나 이상의 오케스트레이션 관리 기능들이 이용된다. 오케스트레이션 관리 기능들은 컴퓨팅 하드웨어 상에서 실행되는 소프트웨어 애플리케이션들이고, 서비스 능력들, 레벨들, 및 네트워크들을 구성하기 위해 동작한다. 하나의 예시적인 실시예에서, 단일의 오케스트레이션 관리 기능이 다수의 구성 파일들에 정의된 바와 같이 서비스들의 구성을 수행하는 일을 책임지고 있을 수 있다. 다른 실시예에서, 다수의 오케스트레이션 관리 기능들이 네트워크 내에 분산될 수 있고, 각각이 특정의 오케스트레이션 프로파일에 명시된 구성을 수행한다.
예시적인 시나리오에서, 서비스 레벨 노드들의 네트워크에서의 몇 개의 노드들 각각은 오케스트레이션 관리 프로파일을 컴퓨팅 메모리에 저장했을 수 있고, 오케스트레이션 관리 기능을 실행하고 있을 수 있다. 오케스트레이션 관리 기능들은 오케스트레이션 관리 프로파일 내의 정보에 따라 서비스들의 오케스트레이션을 수행하기 위해 협력한다. 예시적인 시나리오에서, 제1 컴퓨팅 시스템 또는 노드 상에서 실행 중인 제1 서비스 오케스트레이션 관리 기능 또는 애플리케이션은 서비스의 오케스트레이션이 수행되어야 한다는 것을 검출한다. 예시적인 시나리오에서, 제1 컴퓨팅 시스템은 오케스트레이션을 수행하라는 요청을 수신한 결과로서 오케스트레이션이 필요하다는 것을 검출할 수 있다. 요청은 요청되는 구성을 명시하는 제1 서비스 오케스트레이션 프로파일을 포함할 수 있다. 대안의 실시예에서, 오케스트레이션 관리 기능은 노드에서의 상황들의 변화의 결과로서 오케스트레이션이 필요하다는 것을 검출할 수 있다. 특정의 상황이 특정의 노드 상에 저장된 오케스트레이션 프로파일에 정의될 수 있다.
서비스 오케스트레이션이 행해져야만 한다는 것을 검출한 것에 응답하여, 제1 컴퓨팅 시스템 상에서 실행 중인 제1 서비스 오케스트레이션 관리 애플리케이션은 행해져야만 하는 구성에 관한 정보를 식별하기 위해 제1 오케스트레이션 프로파일을 처리한다. 앞서 살펴본 바와 같이, 제1 구성 프로파일이 요청에 의해 수신되었을 수 있다. 대안적으로, 제1 구성 프로파일이 제1 노드 상에 이전에 저장되었을 수 있다. 예시적인 실시예에서, 제1 서비스 오케스트레이션 관리 애플리케이션은 구성에 관한 정보를 식별하기 위해 제1 서비스 오케스트레이션 프로파일 내의 정보를 파싱한다. 그 정보는, 예를 들어, 프로파일 정보의 내용의 설명을 명시하는 정보, 오케스트레이션 정보가 적용되는 대상 머신들 또는 계층들, 스케줄링 정보, 정책 정보, 컨텍스트 정보, 원하는 서비스들에 관련된 정보, 및 서비스들의 오케스트레이션에 관련된 임의의 다른 정보를 포함할 수 있다.
제1 컴퓨팅 시스템 상에서 실행 중인 제1 서비스 오케스트레이션 관리 애플리케이션은, 제1 오케스트레이션 프로파일을 사용하여, 오케스트레이션하기 위한 원하는 서비스 구성을 식별한다. 예를 들어, 제1 서비스 오케스트레이션 관리 애플리케이션은 오케스트레이션 프로파일이 네트워크에서의 서비스 노드 구성들의 원하는 혼합 및 분포를 명시한다고 결정할 수 있다. 추가의 예로서, 애플리케이션은 오케스트레이션 프로파일이 서비스 노드의 원하는 구성, 서비스 계층의 원하는 구성, 또는 서비스 능력의 원하는 구성을 명시한다고 결정할 수 있다.
제1 서비스 오케스트레이션 관리 기능은 원하는 서비스 구성을 구현하기 위해 컴퓨팅 시스템에 대해 적절한 조치를 취한다. 예를 들어, 제1 서비스 오케스트레이션 관리 애플리케이션은 제1 컴퓨팅 시스템 상의 서비스 계층 인스턴스들의 수를 수정할 수 있다. 다른 예시적인 시나리오에서, 제1 서비스 오케스트레이션 관리 애플리케이션은 특정의 서비스 계층과 연관된 능력들을 수정할 수 있다. 또 다른 예에서, 제1 서비스 오케스트레이션 관리 애플리케이션은 특정의 서비스 능력과 연관된 특징들을 수정할 수 있다.
어떤 경우에, 제1 서비스 오케스트레이션 관리 기능은 요청된 오케스트레이션이 다른 오케스트레이션 관리 기능에 의한 오케스트레이션을 필요로 한다고 결정할 수 있다. 앞서 기술된 바와 같이, 서비스 계층 네트워크에서 사용되는 복수의 오케스트레이션 프로파일들이 있을 수 있고, 각각의 프로파일은 제공되는 서비스들의 구성의 일부 양태를 명시한다. 게다가, 상위 레벨 프로파일이 하위 레벨 프로파일에 의해 제공되는 오케스트레이션들에 의존하도록 서비스 프로파일들이 관련될 수 있다. 그에 따라, 오케스트레이션 프로파일의 처리 동안, 제1 서비스 오케스트레이션 관리 기능은 오케스트레이션이 제2 오케스트레이션 관리 기능에 의한 오케스트레이션을 필요로 한다고 결정할 수 있다. 예시적인 시나리오에서, 제1 오케스트레이션 관리 기능은 제2 오케스트레이션 관리 기능이 요구된 오케스트레이션을 구현하기 위해 필요하게 된다는 표시를 제공하는 제2 오케스트레이션 프로파일에 대한 참조를 제1 오케스트레이션 프로파일에서 발견할 수 있다.
예시적인 실시예에서, 제1 서비스 오케스트레이션 관리 애플리케이션은 요청을 제2 서비스 오케스트레이션 관리 애플리케이션으로 전송한다. 제2 서비스 오케스트레이션 관리 애플리케이션은 동일한 물리 노드 또는 머신 상에 위치될 수 있거나, 물리적으로 별개인 노드 또는 머신 상에 위치될 수 있다.
요청을 수신할 때, 제2 서비스 오케스트레이션 관리 애플리케이션은 원하는 서비스들을 결정하기 위해 제2 서비스 오케스트레이션 프로파일을 참조한다. 제2 서비스 관리 애플리케이션은 제2 서비스 오케스트레이션 프로파일에 따라 서비스 관련 특징들을 구성한다. 예를 들어, 제2 서비스 관리 애플리케이션은 서비스 능력과 연관된 특징들의 세트를 수정할 수 있다. 다른 예에서, 제2 서비스 관리 애플리케이션은 특정의 서비스 계층과 연관된 능력들을 수정할 수 있다.
제2 서비스 프로파일 내의 정보에 따라 서비스 관련 특징들의 구성을 완료할 때, 제2 서비스 오케스트레이션 관리 기능은 상태 또는 응답을 발생시키고 제1 서비스 오케스트레이션 관리 기능에 전송한다. 응답은, 예를 들어, 요청된 오케스트레이션이 성공적으로 완료되었는지를 비롯한 임의의 관련 정보를 포함한다.
제2 서비스 오케스트레이션 관리 기능으로부터 응답을 수신할 때 그리고 임의의 다른 서비스 구성들을 완료한 후에, 제1 서비스 오케스트레이션 관리 기능은, 다른 머신 또는 오케스트레이션 관리 기능으로부터의 요청에 응답하여 오케스트레이션이 행해진 한, 응답을 발생시켜 전송한다.
본원에 개시되는 바와 같은 자동화된 서비스 오케스트레이션은, 네트워크에서의 애플리케이션들이 서비스 계층들을 구성/커스터마이즈할 수 있게 하는 것, 및 서비스 계층 인스턴스들이 각각의 서비스 계층 인스턴스 상에서 호스팅되는 서비스 능력들의 세트를 조정하기 위해 서로 협업할 수 있게 하는 것을 비롯한, 부가 가치 특징들을 지원하는 데 사용될 수 있다. 그렇게 함에 있어서, 예를 들어, 개개의 애플리케이션의 요구를 충족시키도록 구성될 수 있는 가상 서비스 계층을 생성하기 위해 서비스 오케스트레이션이 사용될 수 있다.
개시된 시스템들 및 방법들은, 예를 들어, 웹 기반 서비스들 및 M2M(machine to machine) 서비스들을 비롯한, 임의의 네트워크 서비스들과 관련하여 사용될 수 있다. 더욱이, 개시된 시스템들 및 방법들은, 예를 들어, OneM2M, OMA, 및 LWM2M을 비롯한 임의의 관련 표준들을 사용하여 구현될 수 있다.
이 발명의 내용은 이하에서 발명을 실시하기 위한 구체적인 내용에 추가로 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된다. 이 발명의 내용은 청구된 발명 요지의 핵심적인 특징들 또는 필수적인 특징들을 확인하는 것으로 의도되어 있지도 않고, 청구된 발명 요지의 범주를 제한하는 데 사용되는 것으로 의도되어 있지도 않다. 다른 특징들이 이하에서 기술된다.
이상의 요약 및 예시적인 실시예들의 이하의 부가 설명이 첨부 도면들과 관련하여 읽어보면 더 잘 이해될 수 있다. 개시된 시스템들 및 방법들의 잠재적인 실시예들이 도시된 것들로 제한되지 않는다는 것을 잘 알 것이다.
도 1은 서비스 계층의 상대적 배치를 나타낸 예시적인 프로토콜 스택을 나타낸 도면.
도 2는 네트워크에서의 예시적인 서비스 계층 배포를 나타낸 도면.
도 3은 예시적인 oneM2M 아키텍처를 나타낸 도면.
도 4는 예시적인 서비스 아키텍처를 나타낸 도면.
도 5는 예시적인 서비스 아키텍처를 나타낸 도면.
도 6은 예시적인 서비스 아키텍처를 나타낸 도면.
도 7은 예시적인 서비스 아키텍처를 나타낸 도면.
도 8은 예시적인 서비스 오케스트레이션 아키텍처를 나타낸 도면.
도 9a는 서비스 프로파일들의 계층적 배열을 나타낸 도면.
도 9b는 예시적인 사용자 인터페이스를 나타낸 도면.
도 10a 및 도 10b는 서비스 오케스트레이션 동안 수행되는 처리의 흐름도.
도 11은 서비스 프로파일 게시 동안 수행되는 처리의 흐름도.
도 12는 서비스 프로파일 발견 동안 수행되는 처리의 흐름도.
도 13은 서비스 오케스트레이션에 적합하게 되어 있는 예시적인 oneM2M 아키텍처를 나타낸 도면.
도 14는 서비스 오케스트레이션에 적합하게 되어 있는 예시적인 oneM2M 아키텍처를 나타낸 도면.
도 15는 공통 서비스 엔티티에 포함된 예시적인 공통 서비스 기능들을 나타낸 도면.
도 16 내지 도 20은 oneM2M 표기법을 사용하여 나타낸 예시적인 서비스 프로파일들을 나타낸 도면.
도 21a 및 도 21b는 CSE 상에서 CSF들을 오케스트레이션하는 것과 연관된 예시적인 처리를 나타낸 도면.
도 22a 내지 도 22d는 CSE들의 네트워크에 걸쳐 CSF들을 오케스트레이션하는 것과 연관된 예시적인 처리를 나타낸 도면.
도 23a는 본원에 기술되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 단말 또는 게이트웨이 디바이스를 나타낸 도면.
도 23b는 본원에 기술되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템을 나타낸 도면.
출원인은 본원에서 자동화된 서비스 오케스트레이션을 위한 시스템들 및 방법들의 예시적인 실시예들을 개시한다. 서비스 오케스트레이션 프로파일들은 원하는 서비스들을 정의하는 속성들을 명시한다. 서비스 오케스트레이션 프로파일들은 노드들 간에 분산되고 서로 계층적으로 관련될 수 있다. 서비스 오케스트레이션 관리 기능들은 원하는 서비스들을 구현하기 위해 서비스 오케스트레이션 프로파일들 내의 정보를 처리한다.
예시적인 서비스 아키텍처
네트워크 및 아키텍처 관점에서 볼 때, 서비스들은 "서비스 계층"에 존재하는 것으로 생각될 수 있다. 도 1은 서비스 계층의 상대적 위치를 나타낸 예시적인 프로토콜 스택의 다이어그램을 제공한다. 도시된 바와 같이, 서비스 계층(110)은 다양한 전송 네트워크 계층들(112) 위에 있다. 이것은 서비스 계층에서의 서비스들이 서비스들을 제공하는 데 네트워크 계층에서의 능력들을 사용할 수 있게 한다. 서비스 계층은 클라이언트 애플리케이션 계층(114) 아래에 존재하는 것으로 생각될 수 있다. 클라이언트 애플리케이션들은 서비스들에 의해 이용가능하게 되는 기능에 액세스하기 위해 서비스 계층에서의 서비스들에 요청을 한다. 그에 따라, 서비스 계층은 서비스들에 의해 노출되는 기능들 및 능력들에의 액세스를 제공하는 미들웨어로서 동작한다.
도 2는 서비스 계층들의 인스턴스들이 배포되어 있는 예시적인 네트워크 토폴로지를 나타내고 있다. 도 2를 참조하면, 네트워크 애플리케이션 도메인(210)에 존재하는 사용자 애플리케이션들은 특정의 기능들이 수행될 것을 필요로 할 수 있다. 사용자 애플리케이션들은 도 23a와 관련하여 이하에서 기술되는 것과 같은 디바이스(30) 상에서 실행될 수 있다. 예로서, 네트워크 내의 디바이스들을 관리하는 데 전용되어 있는 사용자 애플리케이션은 디바이스들의 현재 상태에 관한 정보를 필요로 할 수 있다. 다른 예에서, 사용자 애플리케이션은 웹 애플리케이션일 수 있고, 데이터를 다른 데이터 포맷팅 표준을 사용하는 다른 애플리케이션에 전달할 필요가 있을 수 있다.
애플리케이션들은 특정의 서비스들에 대한 요청들을 네트워크 서비스들 도메인(212)으로 전달한다. 도시된 바와 같이, 네트워크 서비스들 도메인(212)은 다양한 네트워크 노드들(220)을 포함한다. 네트워크 노드들(220)은 네트워크 내의 네트워크 주소지정가능 엔티티들이다. 네트워크 노드(220)는, 예를 들어, 디바이스, 게이트웨이, 또는 서버와 같은 물리적 물품일 수 있거나, 예를 들어, 가상 머신 - 예를 들어, VMware와 같은 가상화 소프트웨어를 사용하여 생성됨 - 과 같은 가상 엔티티일 수 있다. 도 2의 예시적인 실시예에서, 네트워크 노드들(220)은, 예를 들어, 디렉터리 서버, 애플리케이션 서버, 저장소 서버, 관리 서버, 및 서비스 서버를 비롯한 다양한 서버 유형들을 포함한다. 네트워크 노드들(220)은, 예를 들어, 도 23b와 관련하여 이하에서 기술되는 것과 같은 임의의 적당한 컴퓨팅 시스템에 의해 구현될 수 있다. 도 2의 실시예에서, 다양한 네트워크들(222)에의 액세스는 게이트웨이들(226)을 통해 제공된다. 게이트웨이들은, 예를 들어, 도 23a와 관련하여 이하에서 기술되는 것과 같은 임의의 적당한 컴퓨팅 시스템에 의해 구현될 수 있다.
서버들(220) 및 게이트웨이들(226)은 서비스 계층들(230)을 갖는다. 서비스 계층들(230)은 한 세트의 API(application programming interface)들 및 기반이 되는 네트워크 인터페이스들을 통해 부가 가치 서비스 능력들을 지원하는 소프트웨어 미들웨어 계층들이다. 특정의 서비스 기능을 수행하라는 네트워크 애플리케이션 도메인(210) 내의 애플리케이션들로부터의 요청들은 특정의 서비스 계층들(230)로 라우팅되고 그들에서 수신된다. 서비스 계층들(230)은 요청들을 처리하고 요청된 서비스의 결과들을 요청측 애플리케이션에 반환한다. 하나 이상의 서비스 능력들을 지원하는 서비스 계층을 호스팅하는 네트워크 노드들은 서비스 노드라고 지칭된다.
도 2를 참조하면, 서비스 계층들(230)에서의 서비스들이 디바이스 애플리케이션 도메인(214)에 존재하는 것과 같은 디바이스 애플리케이션들에 의해서도 요청될 수 있다. 그에 따라, 예를 들어, 센서 또는 액추에이터와 같은 특정의 디바이스가 특정의 기능이 수행될 것을 필요로 하는 경우, 디바이스들은 요청을 네트워크 서비스들 도메인(212)에서의 서비스 계층들 중 하나에 존재하는 적절한 서비스로 전송할 수 있다. 서비스 계층들(230)은 요청들을 처리하고 요청된 서비스의 결과들을 요청측 디바이스에 반환한다. 디바이스 애플리케이션 도메인(214)에서의 디바이스들은, 예를 들어, 이하에서 도 23a와 관련하여 기술되는 것과 같은 임의의 적당한 컴퓨팅 시스템을 사용하여 구현될 수 있다.
어떤 경우에, 네트워크 서비스들 도메인 내의 서비스는 다른 서비스들 중 하나에 의해 제공되는 기능을 필요로 할 수 있다. 그에 따라, 서비스 계층(230)에서의 서비스는 요청을 다른 서비스 계층(230)에 존재하는 서비스로 전송할 수 있다. 요청을 수신한 서비스가 그의 처리를 완료할 때, 서비스는 응답을 요청측 서비스로 전송한다.
서비스 계층들(230)은 임의의 유형의 서비스 계층일 수 있다. 예를 들어, 서비스 계층들(230) 중 하나 이상은, 특히 모바일 네트워크 디바이스들에 대한 멀티미디어 서비스들을 제공하는 것을 목표로 하는, IMS(IP Multimedia Subsystem) 서비스 계층일 수 있다. 추가의 예로서, 서비스 계층들(230) 중 하나 이상은 M2M/IoT 서비스 계층일 수 있다. M2M/IoT 서비스 계층은, 특별히 M2M/IoT 유형 디바이스들 및 애플리케이션들에 대한 부가 가치 서비스들을 제공하는 것을 목표로 하는, 한 유형의 서비스 계층의 일 예이다. 최근에, 몇 개의 산업 표준 단체들(예컨대, ETSI M2M, oneM2M, 및 OMA LWM2M)이 M2M/IoT 유형의 디바이스들 및 애플리케이션들을 인터넷/웹, 셀룰러, 엔터프라이즈, 및 홈 네트워크와 같은 배포들에 통합시키는 것과 연관된 과제들을 해결하기 위해 M2M/IoT 서비스 계층들을 개발해오고 있다.
M2M 서비스 계층은 애플리케이션들 및 디바이스들에 서비스 계층에 의해 지원되는 일련의 M2M 중심 능력들에의 액세스를 제공할 수 있다. 몇몇 예들은 보안, 과금, 데이터 관리, 디바이스 관리, 발견, 프로비저닝, 및 연결 관리를 포함한다. 이 능력들은 M2M 서비스 계층에 의해 정의되는 메시지 포맷들, 자원 구조들, 및 자원 표현들을 사용하는 API들을 통해 애플리케이션들에 의해 이용가능하게 될 수 있다.
oneM2M의 목적과 목표는 다양한 하드웨어 및 소프트웨어 내에 즉각 포함될 수 있고 현장에 있는 아주 다양한 디바이스들을 전세계에 걸쳐 있는 M2M 애플리케이션 서버들과 연결시키기 위해 의존될 수 있는 공통의 M2M 서비스 계층에 대한 요구를 해결하는 기술 규격들을 개발하는 것이다.
도 3은 예시적인 기본적 oneM2M 아키텍처를 나타내고 있다. 도시된 바와 같이, oneM2M 아키텍처는 oneM2M 해결책들에서의 애플리케이션 논리를 제공하는 애플리케이션 엔티티(AE)들(310)을 포함한다. oneM2M 공통 서비스 계층은 CSF(Common Service Function)들(즉, 서비스 능력들)의 세트를 지원한다. 하나 이상의 특정 유형들의 CSF들의 세트의 인스턴스화는, 상이한 유형들의 네트워크 노드들(예컨대, 인프라스트럭처 노드, 중간 노드, 애플리케이션 특정 노드(application-specific node)) 상에서 호스팅될 수 있는, CSE(Common Services Entity)(312)라고 지칭된다. 서비스 기능들이 참조 지점들 Mca(320) 및 Mcc(322)을 통해 다른 엔티티들에 노출된다. 참조 지점 Mcn(330)은 기반이 되는 네트워크 서비스 엔티티들에 액세스하는 데 사용된다. NSE(Network services entity)들(340)은 CSE들에 서비스들을 제공한다. M2M 서비스들의 예들은 디바이스 관리, 위치 서비스들, 및 디바이스 트리거링을 포함한다. 기반이 되는 NSE(340)는, 예를 들어, 3GPP 기반 네트워크일 수 있다.
oneM2M 애플리케이션들은 전형적으로 RESTful(representational state transfer) 아키텍처를 사용하여 구현된다. 이러한 경우에, CSF들은 RESTful "자원들"의 세트로서 표현된다. 자원은 Create, Retrieve, Update, 및 Delete와 같은 RESTful 메소드들을 통해 조작될 수 있는 표현을 가지는 아키텍처에서의 고유하게 주소지정가능한 엔티티(uniquely addressable entity)이다. 이 자원들은 URI(Universal Resource Identifier)들을 사용하여 주소지정가능하게 된다. 자원은 자식 자원(들) 및 속성(들)을 포함할 수 있다. 자식 자원은 부모 자원과 포함 관계(containment relationship)를 가지는 자원이다. 부모 자원 표현은 그의 자식 자원(들)에 대한 참조들을 포함한다. 자식 자원의 수명은 부모의 자원 수명에 의해 제한된다. 각각의 자원은 자원에 관한 정보를 저장하는 "속성들"의 세트를 지원한다.
서비스 설명
애플리케이션 또는 다른 서비스가 특정의 서비스를 호출할 수 있기 위해, 애플리케이션 또는 다른 서비스는 특정의 서비스에 관한 정보를 가지고 있을 필요가 있다. 이러한 정보를 제공하기 위한 하나의 흔히 사용되는 메커니즘은 서비스 설명(service description)이다. 서비스 설명은 서비스들이 자신에 관한 정보를 게시하기 위한 그리고 잠재적인 클라이언트들이 이 정보를 발견하기 위한 수단을 제공한다. 서비스 프로파일들은 전형적으로, URI들, 미디어 유형들, 지원되는 프로토콜들, 지원되는 서비스들 등과 같은, 통합된 머신 판독가능 정보 세트를 제공한다. 기존의 서비스 설명 기술의 일 예는 WSDL(Web Services Description Language)이다.
WSDL은 웹 서비스의 인터페이스를 설명하는 데 사용되는 XML 기반 웹 서비스 설명 언어(Web services description language)이다. WSDL 파일은 웹 서비스가 어떻게 호출될 수 있는지, 웹 서비스가 어떤 파라미터들을 기대하는지, 그리고 웹 서비스가 어떤 데이터 구조들을 반환하는지에 대한 머신 판독가능 설명을 제공한다. 이하는 예시적인 WSDL 템플릿이다:
Figure pat00001
예시적인 템플릿에서, 루트 엘리먼트는 'description' 엘리먼트이다. 4개의 자식 엘리먼트들, 즉, 'types', 'interface', 'binding', 및 'service'는 특정의 서비스에 관한 상세를 제공한다.
'types' 엘리먼트는 웹 서비스의 메시지들을 설명하는 XML 스키마 엘리먼트들 및 유형 정의들 모두를 포함한다. 이 목적을 위해 XML 스키마 언어(XSD라고도 알려져 있음)가 사용(인라인 또는 참조)될 수 있다.
'interface' 엘리먼트는, 서비스로 그리고 서비스로부터 전달되는 특정 입력, 출력, 및 오류 메시지들, 그리고 메시지들이 전달되는 순서를 비롯한, 웹 서비스 동작들을 정의한다.
'binding' 엘리먼트는 클라이언트가 웹 서비스와 통신할 수 있는 방식을 정의한다. REST 웹 서비스들의 경우에, binding은 클라이언트들이 HTTP를 사용하여 통신할 수 있다고 명시한다. SOAP의 경우에, binding은 클라이언트들이 SOAP RPC 바인딩 스타일 및 프로토콜을 사용하여 서비스와 통신할 수 있다고 명시한다.
'service' 엘리먼트는 웹 서비스에 대한 주소를 특정 인터페이스 및 바인딩과 연관시킨다. 'service'는 또한 웹 기반 프로토콜들에 노출된 시스템 함수들의 세트를 포함한다.
예시적인 WSDL 리스트는 다음과 같다:
Figure pat00003
WSDL이 서비스 설명들을 제공하기 위한 유용한 기술이지만, 많은 다른 기술들이 대안적으로 사용될 수 있다는 것을 잘 알 것이다. 예를 들어, 대안의 서비스 설명 기술은 DNS-SD(Domain Name System - Service Discovery)이다.
서비스 프로파일링
출원인은, 예를 들어, WSDL 및 DNS-SD와 같은 기존의 서비스 설명 기술들이 서비스들의 게시 및 발견은 지원하지만, 서비스들의 오케스트레이션은 지원하지 않는다는 것에 주목하였다.
출원인은 또한 기존의 서비스 계층 기술들(예컨대, ETSI M2M, oneM2M, 및 OMA LWM2M)이 서비스 능력들의 오케스트레이션을 지원하지 않는다는 것에 주목하였다. 예를 들어, 기존의 서비스 계층 기술들은 서비스 노드들의 네트워크에 걸쳐 서비스들을 오케스트레이션하는 것을 지원하지 않는다. 기존의 M2M/IoT 서비스 계층들은 네트워크 서비스 노드들(예컨대, 디바이스들, 게이트웨이들, 및 서버들)에 의해 호스팅되는 활성 서비스 계층 인스턴스들은 물론 각각의 서비스 계층 인스턴스에 의해 지원되는 서비스 능력들을, 네트워크 전체에 걸쳐, 동적으로 조정하지 않을 것이다.
도 4는 시스템이 서비스 노드들의 네트워크에 걸쳐 서비스들을 오케스트레이션할 수 없는 예시적인 서비스 아키텍처를 나타내고 있다. 도시된 바와 같이, 개개의 서비스 노드들(410)은 서로에 대해 서비스들(SC1, SC2, SC3, SC4, SC5, SC6)의 상이한 조합들을 가지는 서비스 계층들(412)을 호스팅한다. 전형적인 시나리오에서, 서비스 노드들(410)은 여러가지 물리 자원들(예컨대, 메모리, MIP들, 네트워크 대역폭 등)을 가질 수 있고, 상이한 때에 다양한 양의 가용 자원들을 가질 수 있다. 따라서, 노드들이 지원하는 서비스들을 동적으로 변경하는 것이 바람직할 수 있다. 그렇지만, 기존의 시스템들에서는, 서비스 노드들(410)이 그들의 서비스들을(예컨대, 어느 노드들이 어느 서비스들을 그리고 어떤 조건들 하에서 지원해야 하는지를) 서로 동적으로 조정하는 능력을 갖지 않으며, 따라서 이 동적 변경들이 조정된 방식으로 수행될 수 없다. 어떤 상황들에서, 서비스 노드들(410)은 종단간 서비스들을 제공하기 위해 네트워크 내의 각각의 서비스 노드에 걸쳐 서비스들의 일관된 구성을 가질 필요가 있을 수 있다. 반면에 다른 상황들에서는, 상이하지만 상보적인 서비스들의 세트가 각각의 서비스 노드(410) 상에서 호스팅되게 하는 것이 바람직할 수 있다. 어느 경우든지, 서비스들이 원하는 방식으로 적절히 오케스트레이션될 수 있게 하기 위한 서비스 노드들(410) 사이의 조정이 부가 가치일 수 있다.
기존의 서비스 계층 기술들은 또한 서비스 계층들(412) 간에 서비스들을 오케스트레이션하는 것을 지원하지 않는다. 보다 상세하게는, 예를 들어, M2M/IoT와 같은 기존의 서비스 계층 기술들은 서비스 계층들(412)이 서로 조정하여 어느 서비스 계층들(412)이 어느 서비스 능력들을 제공해야 하는지를 결정할 수 있게 하지 않는다. 예를 들어, 기존의 서비스 계층들(412)은 서비스들의 전체적인 혼합이 서비스 계층들(412)에 걸쳐 균형을 이루고 잘 분산되도록 각각의 서비스 계층(412)에 의해 제공되는 서비스 능력들의 세트를 조정하는 메커니즘을 제공하지 않는다.
기존의 서비스 계층 기술들은 또한 서비스 능력들의 자체 오케스트레이션(self-orchestration)을 지원하지 않는다. 예를 들어, 기존의 M2M 서비스 계층 노드들은 그들의 지원되는 서비스 계층들의 자율적이고 동적인 수정을 지원하지 않는다. 이와 유사하게, 기존의 서비스 계층들은 그의 서비스 능력들의 세트의 자체 오케스트레이션을 지원하지 않는다. 게다가, 기존의 시스템들에서는, 전형적으로 서비스 계층에 의해 지원되는 특정 유형의 서비스인, 서비스 능력이 그의 지원되는 특징들의 세트의 자체 오케스트레이션을 지원하지 않는다. 기존의 서비스 계층 기술들은 특정 클라이언트들에 서브셋을 제공하기 위해 또는 특정의 때 동안에 또는 특정의 관찰된 조건들 동안에만(예컨대, 네트워크 상태, 클라이언트에 의해 명시된 컨텍스트 등과 같은 기준들에 기초하여) 특정의 서비스 능력들을 제공하기 위해 그의 서비스 능력들의 세트를 필터링하는 것, 또는 특정의 클라이언트들에 대해 상이한 모드들에서 동작하도록 그의 서비스 능력들을 구성하는 것을 지원하지 않는다.
기존의 서비스 계층 기술들은 또한 애플리케이션 특정 서비스 오케스트레이션을 제공하는 것을 지원하지 않는다. 예를 들어, 기존의 M2M/IoT 서비스 계층들(412)은 서비스 계층이 애플리케이션에 제공해야 하는 원하는 서비스 능력들의 세트를 애플리케이션들이 (서비스 계층 노드에 의해 지원되는 서비스 능력들의 세트 전체로부터) 선택적으로 골라서 선택할 수 있게 하는 것을 지원하지 않는다. 그에 부가하여, 기존의 서비스 계층 기술들은 서비스 계층이 애플리케이션의 개별화된 요구들을 충족시키도록 서비스 능력들의 세트를 커스터마이즈할 수 있게 하기 위해 애플리케이션들이 입력을 서비스 계층에 제공할 수 있게 하는 것을 지원하지 않는다.
도 5는 서비스 노드가 그의 개개의 클라이언트들에 대한 그의 서비스 계층(들)의 동적 오케스트레이션을 위한 능력이 없는 예시적인 상황을 나타내고 있다. 도시된 예에서, 서비스 노드(510)는 상이한 유형들/구성들의 서비스 계층들(512, 514)을 그의 개개의 클라이언트들(520)에 제공하기 위해 (예컨대, 그의 클라이언트들(520)에 의해) 동적으로 오케스트레이션되는 능력이 없다. 그 대신에, 도 5의 예에서는, 클라이언트들이 정적 서비스 계층 구성으로 제한된다.
도 6은 서비스 계층이 그의 개개의 클라이언트들(620)에 대한 그의 서비스 능력들의 동적 오케스트레이션을 위한 능력이 없는 다른 예시적인 시나리오를 나타내고 있다. 도시된 예에서, 서비스 계층은 개개의 클라이언트들에 대한 차별화된 서비스 능력들의 세트들(610, 612)을 가능하게 할 수 없다. 그 대신에, 모든 클라이언트들은 모든 클라이언트에 걸쳐 공통의 구성을 가지는 공통의 서비스들의 세트로 제한된다.
도 7은 그의 개개의 서비스 능력들 중 하나에 의해 지원되는 특징들의 동적 오케스트레이션을 위한 능력이 없는 것을 나타내는 또 다른 예시적인 시나리오를 나타내고 있다. 도시된 예에서, 서비스 계층은 개개의 서비스 능력(710)(즉, SC1)의 상이한 특징들(F1, F2, F3, F4, 및 F5)의 그룹들(712, 714)을 그의 개개의 클라이언트들(720)에 제공하기 위해 동적으로 오케스트레이션될 수 없다. 그 대신에, 모든 클라이언트들은 서비스에 대한 공통의 특징들의 세트를 제공받는다. 예시적인 실시예에서, 특징들은, 캐싱 인에이블됨 또는 디스에이블됨, 저장후 전달(store-and-forward) 인에이블됨 또는 디스에이블됨, 암호화 인에이블됨 또는 디스에이블됨 등과 같은, 서비스 능력이 지원할 수 있는 상이한 동작 모드들을 포함할 수 있다.
그에 따라, 서비스 노드들의 현재의 네트워크 배포들은 전형적으로 그들의 지원되는 서비스 계층들 및 대응하는 서비스 능력들의 동적 오케스트레이션을 할 수 없다. 그 결과, 서비스 노드들은 전형적으로 그들이 호스팅하는 서비스 계층들 및 그들이 그들의 클라이언트들 모두에 의해 이용가능하도록 만들어주는 서비스 능력들에 대한 단일의 정적 구성을 지원하는 것으로 제한된다.
자동화된 서비스 오케스트레이션
출원인은 본원에서 서비스들의 자동화된 오케스트레이션을 위한 시스템들 및 방법들을 개시한다. 개시된 시스템들 및 방법들은 원하는 서비스들을 제공하기 위해 노드들 및 서비스 계층들을 구성하고 조정한다. 예를 들어, 오케스트레이션은 네트워크 내의 노드들; 서비스 노드 상에서 호스팅되는 서비스 계층들; 서비스 계층 내의 서비스 능력들; 및/또는 서비스 능력의 특징들 중 임의의 것 및/또는 전부를 자동으로 구성하고 조정하는 것을 포함할 수 있다.
도 8은 예시적인 서비스 오케스트레이션 아키텍처를 나타내고 있다. 도시된 바와 같이, 예시적인 아키텍처는 복수의 노드들(810)을 포함한다. 서비스 노드들(810)은 네트워크 내의 네트워크 주소지정가능 엔티티들이고, 임의의 적당한 네트워킹 및 통신 기술을 사용하여 서로 통신가능하게 결합된다. 서비스 노드들(810)은 네트워크에서의 물리 디바이스(예컨대, 디바이스, 게이트웨이, 또는 서버) 또는 가상 엔티티(예컨대, VM)일 수 있다. 서비스 노드들(810)이 임의의 적당한 컴퓨팅 하드웨어를 사용하여 구현될 수 있다는 것을 잘 알 것이다. 예를 들어, 네트워크에서 서버들로서 기능하는 서비스 노드들(810)은 도 23b와 관련하여 이하에서 기술되는 것과 같은 컴퓨팅 시스템을 사용하여 구현될 수 있다. 게이트웨이들로서 또는 단말 디바이스들로서 기능하는 서비스 노드들(810)은 도 23a와 관련하여 이하에서 기술되는 것과 같은 컴퓨팅 시스템을 사용하여 구현될 수 있다.
도시된 서비스 노드들(810) 각각은 하나 이상의 서비스 능력들(814)을 지원하는 서비스 계층(812)을 호스팅한다. 서비스 능력들(814)은 서비스 계층에 의해 지원되는 특정 유형들의 서비스들이다. 이하에서 논의되는 바와 같이, 각각의 서비스 능력(814)은 하나 이상의 서비스 기능들(840)을 포함한다.
서비스 노드들(810) 상에 저장되는, 서비스 오케스트레이션 프로파일들(820)은 서비스의 속성들을 정의한다. 서비스 오케스트레이션 프로파일들(820)은 서비스 오케스트레이션을 위해 사용될 수 있는 서비스 관련 속성들(즉, 메타데이터)의 교환은 물론, 서비스 발견과 같은 다른 기능들을 위한 메커니즘을 제공한다. 도 8에 예시된 바와 같이, 예시적인 실시예에서, 서비스 오케스트레이션 프로파일들(820)은 서비스 계층구조 내의 다수의 레벨들에 존재할 수 있다. 예를 들어, 특정의 서비스 능력들(814)의 서비스 기능들을 정의하기 위해 프로파일들(820)이 프로비저닝될 수 있다. 이와 유사하게, 특정의 서비스 계층(812)의 속성들을 정의하기 위해 프로파일들(820)이 서비스 계층(812)에 대해 프로비저닝될 수 있다. 마찬가지로, 특정의 서비스 노드(810)에 의해 제공되는 서비스들의 속성들을 정의하기 위해 프로파일들이 서비스 노드(810)에 대해 프로비저닝될 수 있다. 예시적인 시나리오에서, 프로파일(820)이 계층구조에서의 다양한 레벨들에 대한 서비스 프로비저닝을 조정하기 위해 동작하는 중앙집중식 노드(centralized node)(850)에 프로비저닝될 수 있다.
서비스 노드들(810) 상에서 실행되는, 서비스 오케스트레이션 관리 기능들(840)은 서비스 오케스트레이션 프로파일들(820)에 저장된 속성들에 따라 원하는 서비스들을 구현하는 데 이용된다. 서비스 오케스트레이션 관리 기능들(840)은 프로파일들(820)에 명시된 바와 같이 서비스들을 구현하기 위해 관련 오케스트레이션 프로파일들(820) 내의 정보를 처리하고 적절한 조치들을 취한다.
예시적인 실시예에서, 그리고 서비스 프로파일들(820)과 유사하게, 서비스 오케스트레이션 관리 기능들(840)은 서비스 계층구조 내의 다수의 레벨들에 존재할 수 있다. 예를 들어, 서비스 오케스트레이션 관리 기능들(840)은 네트워크, 서비스 노드들(810), 서비스 계층들(812), 및 서비스 능력들(814)에서 실행되고 그 내에서 서비스들의 오케스트레이션을 수행할 수 있다. 서비스 오케스트레이션 관리 기능(840)의 개별적인 인스턴스들이 네트워크에 걸쳐 분산되고 개개의 서비스 노드들, 서비스 계층들, 및/또는 서비스 능력들에 의해 호스팅될 수 있다. 분산된 관리 기능들을 이용하는 실시예는 웹/인터넷과 같은 대규모 네트워크들에 걸쳐 서비스들의 오케스트레이션을 위한 향상된 확장성을 제공할 수 있다.
다른 예시적인 실시예에서, 서비스 오케스트레이션 관리 기능(840)은 중앙집중식 노드(850)에 프로비저닝될 수 있다. 관리 기능(840) 및 서비스 오케스트레이션 프로파일(820)의 중앙집중식 배포는 특정의 서비스 제공업자에 의해 소유되고 운영되는 서비스들 또는 특정 네트워크 도메인 또는 영역 내에 배포되는 서비스들의 오케스트레이션에 아주 적합할 수 있다.
예를 들어, 애플리케이션 또는 관리 엔티티일 수 있는, 서비스 오케스트레이션 클라이언트(830)는 서비스들의 오케스트레이션을 개시하고 관리하기 위해 서비스 오케스트레이션 관리 기능들(840)과 통신한다. 서비스 오케스트레이션 관리 기능(840)이 중앙집중식 노드(850)에 위치되어 있는 일 실시예에서, 오케스트레이션 클라이언트(830)는 오케스트레이션을 개시하기 위해 중앙집중식 노드(850) 상의 오케스트레이션 관리 기능(840)과 통신한다. 예시적인 시나리오에서, 통신은 원하는 서비스 오케스트레이션을 설명하는 정보를 포함하는 서비스 프로파일(820)을 포함할 수 있다. 서비스 오케스트레이션 관리 기능들(840)이 개개의 노드들(810)에 분산되어 있는 일 실시예에서, 서비스 오케스트레이션 클라이언트(830)는 서비스들의 오케스트레이션을 개시하고 관리하기 위해 개개의 노드들 상의 서비스 오케스트레이션 관리 기능들(840)과 통신할 수 있다. 여기서도 역시, 통신은 원하는 서비스 오케스트레이션을 설명하는 정보를 포함하는 서비스 프로파일(820)을 포함할 수 있다.
서비스 프로파일들(820) 및 서비스 관리 기능들(840)은 서로 계층적으로 관련되어 있다. 그에 따라, 서비스들을 오케스트레이션하라는 요청이 수신될 때, 서비스 관리 기능(840)은 원하는 서비스 오케스트레이션을 구현하기 위해 다른 서비스 관리 기능들(840)에서 구성 단계들을 개시할 수 있다.
서비스 오케스트레이션이 종종 클라이언트(830)로부터의 요청의 결과로서 개시될 수 있지만, 오케스트레이션이 명시적 요청 없이 수행될 수 있다. 서비스 오케스트레이션이 서비스 계층에 의해 자동으로 트리거링될 수 있다(즉, 자체 오케스트레이션). 예를 들어, 서비스 오케스트레이션 관리 기능(840)은 외부 요청(outside prompting) 없이 오케스트레이션을 트리거링할 수 있다. 트리거는 특정 서비스들에 대한 서비스 계층에의 요청일 수 있거나, 서비스 계층이 자체 오케스트레이션을 수행하도록 서비스 계층 내에서의 통계에 기초할 수 있다.
도 8의 예시적인 실시예가 모든 노드들(810) 상에 분산되어 있는 서비스 오케스트레이션 관리 기능들(840) 및 서비스 오케스트레이션 프로파일들(820)을 나타내고 있지만, 서비스 오케스트레이션 관리 기능이 네트워크 내의 임의의 특징이고 그리고/또는 네트워크 내의 모든 서비스 노드들에 의해 지원될 필요가 없도록 서비스 오케스트레이션 관리 기능의 배포가 임의의 방식으로 행해질 수 있다. 서비스 관리 기능(840)이 존재하는 경우에, 서비스 오케스트레이션이 지원될 수 있다. 서비스 관리 기능(840)이 존재하지 않는 시나리오에서, 서비스 오케스트레이션이 지원되지 않을 수 있다.
서비스 오케스트레이션 프로파일
도 8에 예시된 바와 같이, 오케스트레이션 프로파일들(820)은, 프로파일이 관련되어 있는 서비스의 양태, 예컨대, 서비스 능력, 서비스 계층, 서비스 노드 등에 따라, 서비스 노드들(810)의 네트워크 내의 몇 개의 상이한 위치들 중 임의의 것에 배치될 수 있다. 프로파일들(820)은 서로를 참조할 수 있고 그로써 확장가능한 계층구조를 제공하는 것으로 보여질 수 있다. 편성을 위해, 프로파일들(820)이 프로파일이 관련되어 있는 서비스 오케스트레이션 내에서의 특정의 레벨에 따라 분류될 수 있다. 예를 들어, 프로파일들(820)이 네트워크 서비스 오케스트레이션 프로파일, 서비스 노드 오케스트레이션 프로파일, 서비스 계층 오케스트레이션 프로파일, 및 서비스 능력 오케스트레이션 프로파일로서 분류될 수 있다.
예시적인 실시예에서, 네트워크 오케스트레이션 프로파일(820)은 서비스 노드들(810)의 네트워크에 의해 제공되는 서비스들을 설명하고, 여기서 각각의 서비스 노드(810)는 하나 이상의 서비스 계층들(812)을 호스팅한다. 이 프로파일은 서비스 노드들의 네트워크에 걸쳐 분산된 다수의 서비스 계층들(842)에 걸쳐 서비스 능력들(SC1, SC2, SC3, SC4, SC5)의 혼합을 조정하기 위해 서비스 오케스트레이션 관리 기능(들)(840)에 의해 사용될 수 있다.
서비스 노드 오케스트레이션 프로파일(810)은 하나 이상의 서비스 계층들(812)을 호스팅하는 단일의 서비스 노드(810)에 의해 제공되는 서비스들을 설명할 수 있다. 이 프로파일(820)은 단일의 서비스 노드(810) 상에서 호스팅되는 하나 이상의 서비스 계층들(812)에 걸쳐 서비스 능력들의 혼합을 조정하기 위해 서비스 오케스트레이션 관리 기능(들)에 의해 사용될 수 있다.
서비스 계층 오케스트레이션 프로파일은 단일의 서비스 계층(812)에 의해 제공되는 서비스들을 설명한다. 이 프로파일은 단일의 서비스 계층(812)에 의해 지원되는 서비스 능력들의 혼합을 조정하기 위해 서비스 오케스트레이션 관리 기능(들)(840)에 의해 사용될 수 있다.
서비스 능력 오케스트레이션 프로파일은 서비스 계층(812) 내의 단일의 서비스 능력(SC1)에 의해 제공되는 특징들을 설명한다. 이 프로파일은 특정의 서비스 능력에 의해 지원되는 특징들의 혼합을 조정하기 위해 서비스 오케스트레이션 관리 기능(들)에 의해 사용될 수 있다.
도 9a는 계층적으로 배열되어 있는 예시적인 오케스트레이션 프로파일들의 세트를 나타내고 있다. 도시된 바와 같이, 네트워크 서비스 오케스트레이션 프로파일들(910)이 최상단 레벨에 존재하고, 이어서 서비스 노드 오케스트레이션 프로파일들(912), 서비스 계층 오케스트레이션 프로파일들(914), 그리고 하단에 존재하는 서비스 능력 오케스트레이션 프로파일들(916)이 뒤따른다. 상단에 존재하는 네트워크 서비스 오케스트레이션 프로파일(910)을 제외하고는, 계층구조에서의 각각의 프로파일은 계층구조에서 그의 위쪽에 있는 하나 이상의 부모 프로파일들에 링크될 수 있다. 하단에 존재하는 서비스 능력 오케스트레이션 프로파일(916)을 제외하고는, 각각의 프로파일은 계층구조에서 보다 아래에 있는 그에 링크되어 있는 자식 프로파일들을 가질 수 있다. 배포 사용 사례 시나리오에 따라, 프로파일들의 계층구조 전체가 사용될 수 있거나, 대안적으로 계층구조의 서브셋만이 사용될 수 있다.
계층적으로 관련된 오케스트레이션 프로파일들은 (ETSI M2M, oneM2M, 및 OMA LWM2M에 의해 정의된 것들과 같은) 다수의 서비스 능력들을 지원하는 분산된 서비스 계층들로 이루어져 있는 서비스들의 네트워크들을 오케스트레이션하는 데 특히 아주 적합하다. 개시된 계층적으로 관련된 오케스트레이션 프로파일들은 확장가능하고 분산된 서비스들의 세트를 프로파일링하는 것을 지원한다. 계층적으로 관련된 프로파일들은 단일의 서비스 능력에 대한 특징들의 프로파일링을 지원하기 위해 스케일링 다운될 수 있고, 또한 서비스 노드들의 네트워크에 걸쳐 분산된 서비스들을 프로파일링하기 위해 스케일링 업될 수 있다. 서비스 계층들에 의해 지원되는 서비스 능력들이 서비스 노드들의 네트워크에 걸쳐 호스팅되는 예시적인 시나리오에서, 프로파일들의 계층구조 전체가 사용될 수 있다. 단일의 서비스 능력 인스턴스의 특징들이 오케스트레이션을 필요로 하는 다른 예시적인 시나리오에서, 개개의 서비스 능력 오케스트레이션 프로파일로 충분할 수 있다.
서비스 오케스트레이션 프로파일들의 제안된 계층구조를 이용하는 것에 의해, 오케스트레이션이, 예를 들어, 서비스 오케스트레이션 관리 기능에 의해 수행될 수 있는 프로파일을 분산시키는 것에 의해 동적으로 수행될 수 있다. 대안의 실시예에서, 프로파일이, 어쩌면, 예를 들어, 제조 동안 또는 배포 동안, 사전 구성되고/사전 프로비저닝될 수 있다.
서비스 오케스트레이션 프로파일 속성
서비스 오케스트레이션 프로파일들은 원하는 서비스를 설명하는 정보를 포함한다. 프로파일의 포맷 및 내용은 서비스가 구현될 수 있도록 서비스를 설명하는 데 적당한 어느 것이라도 될 수 있다. 예를 들어, 서비스 프로파일들은 XML 또는 JSON 포맷을 사용하여 구현될 수 있다. 예시적인 실시예에서, 프로파일들은 정의된 속성들의 세트에 대응하는 정보를 포함한다.
예시적인 실시예에서, 서비스 오케스트레이션 프로파일들은 하기의 속성들 - 그 각각은 이하에서 논의됨 - 에 대응하는 정보를 포함할 수 있다: 프로파일 식별자; 프로파일 시맨틱스; 프로파일 유형; 서비스 오케스트레이션 대상들; 서비스 오케스트레이션 스케줄; 서비스 오케스트레이션 정책들; 서비스 오케스트레이션 컨텍스트; 원하는 서비스들; 및 지원되는 서비스들.
프로파일 식별자 속성은 프로파일의 식별자를 명시한다. 프로파일이 다른 프로파일들에 계층적으로 링크되어 있는 경우에, 프로파일 식별자는 프로파일이 다른 프로파일들에 의해 참조되고 링크될 수 있도록 주소로서 역할할 수 있다. 예시적인 실시예에서, 프로파일 식별자는 원하는 서비스에 관한 정보가 획득될 수 있는 위치를 지정하는 URI 또는 URL일 수 있다. 프로파일이 독립적으로 사용되는 시나리오에서는, 이 식별자가 필요하지 않을 수 있다.
프로파일 시맨틱스 속성은 프로파일 내에 포함된 서비스 오케스트레이션 속성들을 설명하는 시맨틱 설명 또는 시맨틱 설명에의 주소/링크를 명시한다. 환언하면, 프로파일 시맨틱스 속성은 프로파일 정보를 처리할 때 사용될 수 있는 프로파일 속성들에 관한 컨텍스트 정보를 제공한다.
프로파일 유형 속성은 프로파일의 유형을 명시한다. 예시적인 실시예에서, 프로파일 유형 속성은 2개의 상이한 프로파일 유형들 중 하나일 수 있다. 제1 유형의 프로파일은 대상에 대해 오케스트레이션되어야 하는 원하는 서비스들의 세트를 명시한다. 제2 유형의 프로파일은 오케스트레이션 대상에 의해 지원되는 서비스들의 세트를 명시한다.
서비스 오케스트레이션 대상들 속성은 서비스 오케스트레이션이 수행되어야 하는 임의의 대상들의 리스트를 명시한다. 예를 들어, 서비스 오케스트레이션 대상들에 대응하는 정보는 서비스 노드, 서비스 계층, 및 서비스 능력 인스턴스 중 하나 이상을 명시할 수 있다. 예시적인 시나리오에서, 클라이언트가 하나 이상의 명시된 대상들에 대해 서비스 오케스트레이션을 수행하라는 요청에 프로파일을 포함시킬 때 서비스 오케스트레이션 대상 정보는 오케스트레이션 프로파일에 포함될 수 있다. 대안의 시나리오에서, 클라이언트는 오케스트레이션 프로파일에 오케스트레이션 대상들의 리스트를 명시하지 않고 그 대신에 대상들을 결정하는 데 서비스 오케스트레이션 관리 기능에 의존하기로 선택할 수 있다.
서비스 오케스트레이션 스케줄 속성은 서비스 오케스트레이션이 언제 수행되어야 하는지 및/또는 프로파일이 유효한 지속시간에 대한 스케줄링 정보를 명시한다.
서비스 오케스트레이션 정책들 속성은 서비스 오케스트레이션을 수행하는 것에 적격성을 부여하기 위한 정책들을 명시한다. 정책들은 서비스 오케스트레이션이 수행되어야 하는지/언제 수행되어야 하는지에 관한 규칙들, 또는 상이한 대상들에 대해 또는 상이한 클라이언트들에 의해 수행될 수 있는 상이한 유형들의 서비스 오케스트레이션에 관한 규칙들을 포함할 수 있다. 이 규칙들은 서비스 오케스트레이션 컨텍스트에 달려 있을 수 있다. 예를 들어, 정책들은 특정의 이벤트 또는 트리거 조건(예컨대, 네트워크 또는 노드 부하가 특정 문턱값에 도달하는 것, 특정의 오류 조건의 발생, 오케스트레이션 요청이 이웃하는 서비스 노드의 클라이언트에 의해 발행됨, 기타)이 검출될 때 특정 유형의 서비스 오케스트레이션이 행해져야 한다고 명시할 수 있다.
서비스 오케스트레이션 컨텍스트 속성은 서비스 오케스트레이션에 적용가능한 컨텍스트 정보를 명시한다. 예를 들어, 컨텍스트 정보는 클라이언트의 아이덴티티(identity), 위치, 원하는 서비스 품질 레벨, 이용가능성의 스케줄, 애플리케이션의 유형 등을 명시할 수 있다. 컨텍스트 정보가, 예를 들어, 서비스 오케스트레이션 정책 속성과 같은, 다른 속성들에 의해 참조될 수 있다.
원하는 서비스 속성은 오케스트레이션 클라이언트가 명시된 대상(들)에 대해 오케스트레이션되도록 요청하고 있는 서비스 구성을 명시한다. 원하는 서비스 속성은 일반적으로 오케스트레이션 프로파일이 대상을 오케스트레이션하라는 클라이언트 요청에서 사용되고 있는 경우/때에만 적용가능하다. 프로파일이, 예를 들어, 지원되는 서비스들의 세트를 게시하는 것과 같은, 다른 목적들을 위해 사용되고 있는 경우, 이 속성이 적용가능하지 않을 수 있다. 예시적인 실시예에서, 원하는 서비스 속성은 하기의 유형들 - 그 각각은 이하에서 논의됨 - 중 임의의 것을 가질 수 있다: 원하는 네트워크 서비스; 원하는 서비스 노드; 원하는 서비스 계층; 및 원하는 서비스 능력.
원하는 네트워크 서비스 유형은 네트워크에서의 서비스 노드 구성들의 원하는 혼합 및 분포를 명시한다. 예시적인 실시예에서, 원하는 네트워크 서비스 유형은, 예를 들어, 하기의 것들 중 임의의 것을 명시할 수 있다: 원하는 서비스 노드들의 수; 원하는 서비스 노드들의 위치; 각각의 서비스 노드에 할당되는 원하는 컴퓨팅 및 네트워크 자원들; 서비스 노드들에 걸친 서비스 계층 구성들의 원하는 혼합 및 분포; 서비스 노드들에 걸쳐 사용되는 원하는 네트워크 보안 방식; 및 개개의 서비스 노드들을 오케스트레이션하는 데 사용될 자식 서비스 노드 오케스트레이션 프로파일(들)에의 링크(들).
원하는 서비스 노드 유형은 서비스 노드의 원하는 구성을 명시한다. 예시적인 실시예에서, 원하는 서비스 노드 유형은, 예를 들어, 하기의 것들 중 임의의 것을 명시할 수 있다: 서비스 노드 상에서 호스팅될 원하는 서비스 계층 인스턴스들의 수; 각각의 원하는 서비스 계층 인스턴스의 유형; 서비스 노드에 의해 지원되는 원하는 보안 방식; 서비스 노드 상의 각각의 서비스 계층 인스턴스에 할당되는 원하는 컴퓨터 및 네트워크 자원들; 서비스 노드와 협업해야 하는 원하는 피어 서비스 노드들; 및 이 서비스 노드에 의해 지원되는 개개의 서비스 계층 인스턴스들을 오케스트레이션하는 데 사용될 원하는 자식 서비스 계층 오케스트레이션 프로파일(들)에의 링크(들).
원하는 서비스 계층 유형은 서비스 계층의 원하는 구성을 명시한다. 예시적인 실시예에서, 원하는 서비스 계층 유형은, 예를 들어, 하기의 것들 중 임의의 것을 명시할 수 있다: 서비스 계층에 의해 인에이블될 원하는 서비스 능력 인스턴스들의 세트; 원하는 서비스 계층 사용 비용; 서비스 계층의 원하는 보안/개인정보보호 프로파일; 서비스 계층에 의해 지원되는 각각의 서비스 능력 인스턴스에 할당되는 원하는 컴퓨팅 및 네트워크 자원들; 이 서비스 계층과 협업해야 하는 원하는 피어 서비스 계층들; 및 이 서비스 계층에 의해 지원되는 개개의 서비스 능력 인스턴스들을 오케스트레이션하기 위해 사용될 원하는 자식 서비스 능력 오케스트레이션 프로파일(들)에의 링크(들).
원하는 서비스 능력 유형은 서비스 능력의 원하는 구성을 명시한다. 명시된 정보 유형의 일부 예시적인 실시예들은 하기의 것들을 포함할 수 있지만, 이들로 제한되지 않는다: 서비스 능력에 의해 인에이블될 원하는 특징들의 세트; 원하는 서비스 능력 사용 비용; 기타.
서비스 오케스트레이션 프로파일들에 포함된 속성들을 다시 참조하면, 지원되는 서비스들 속성은 오케스트레이션 대상이 지원하는 지원되는 서비스들의 세트를 명시한다. 유의할 점은, 서비스 오케스트레이션 프로파일이 지원되는 서비스들을 게시/광고하라는 요청에서(또는 발견 응답에서) 사용되는 경우/때에만 이 속성이 적용가능하다는 것이다. 프로파일이 다른 목적들을 위해(예컨대, 대상의 오케스트레이션을 요청하기 위해 오케스트레이션 클라이언트에 의해) 사용되고 있는 경우에, 이 속성이 적용가능하지 않을 수 있다. 예시적인 실시예에서, 지원되는 서비스 속성은 하기의 유형들 - 그 각각은 이하에서 논의됨 - 중 임의의 것을 가질 수 있다: 지원되는 네트워크 서비스; 지원되는 서비스 노드; 지원되는 서비스 계층; 및 지원되는 서비스 능력.
지원되는 서비스들 속성에 대한 지원되는 네트워크 서비스 유형은 네트워크에서의 지원되는 서비스 노드들의 간결한 설명을 명시한다. 지원되는 네트워크 서비스 유형에 대해 포함될 수 있는 정보의 예들은 하기의 것들을 포함하지만, 이들로 제한되지 않는다: 지원되는 서비스 노드들의 수, 위치, 주소들 및 그들의 대응하는 자식 프로파일들에의 링크들; 각각의 서비스 노드에 할당된 지원되는 컴퓨팅 및 네트워크 자원들; 서비스 노드들에 걸쳐 서비스 계층 구성들의 지원되는 혼합 및 분포; 및 서비스 노드들에 걸쳐 사용되는 지원되는 네트워크 보안 방식.
지원되는 서비스 속성에 대한 지원되는 서비스 노드 유형은 서비스 노드에 의해 지원되는 서비스 계층들의 간결한 설명을 명시한다. 지원되는 서비스 노드 유형에 대해 포함될 수 있는 정보의 예들은 하기의 것들을 포함하지만, 이들로 제한되지 않는다: 서비스 노드 상에서 호스팅되는 지원되는 서비스 계층 인스턴스들의 수, 유형, 위치, 및 주소와 그들의 대응하는 자식 프로파일들에의 링크들; 서비스 노드에 의해 지원되는, 지원되는 보안 방식; 서비스 노드의 지원되는 인터페이스 설명(예컨대, API); 피어 서비스 노드들; 지원되는 서비스 계층 오케스트레이션 프로파일(들)에의 링크(들); 서비스 노드를 소유/관리하는 서비스 제공업자; 서비스 노드에 대한 비용 정보; 및 서비스 노드에 대한 성능/자원 구성.
지원되는 서비스들 속성에 대한 지원되는 서비스 계층 유형은 서비스 계층에 의해 지원되는 서비스 능력들의 간결한 설명을 명시한다. 지원되는 서비스 계층 유형에 대해 포함될 수 있는 정보의 예들은 하기의 것들을 포함하지만, 이들로 제한되지 않는다: 서비스 계층 인스턴스에 의해 지원되는 서비스 능력 인스턴스들의 세트 및 그들의 대응하는 자식 프로파일들에의 링크들; 서비스 계층의 지원되는 인터페이스 설명(예컨대, API); 서비스 계층을 사용하는 것과 연관된 비용; 지원되는 보안/개인정보보호 방식; 각각의 서비스 능력 인스턴스에 할당되는 컴퓨팅 및 네트워크 자원들; 이 서비스 계층과 협업하는 피어 서비스 계층들; 및 서비스 계층의 지원되는 동작 모드들(예컨대, 고성능, 저비용, 무료, 저 에너지 소비 등).
지원되는 서비스들 속성에 대한 지원되는 서비스 능력 유형은 서비스 능력에 의해 지원되는 특징들의 간결한 설명을 명시한다. 지원되는 서비스 능력 유형에 대해 포함될 수 있는 정보의 예들은 하기의 것들을 포함하지만, 이들로 제한되지 않는다: 서비스 능력 인스턴스에 의해 지원되는 특징들의 세트; 서비스 능력의 지원되는 인터페이스 설명(예컨대, API); 서비스 능력을 사용하는 것과 연관된 비용; 서비스 능력의 지원되는 보안/개인정보보호 방식; 이 서비스 능력과 협업하는 피어 서비스 능력들; 및 서비스 능력의 지원되는 동작 모드들(예컨대, 고성능, 저비용, 무료, 저 에너지 소비 등).
서비스 오케스트레이션 관리 기능
서비스 오케스트레이션 관리 기능(840)은 서비스 노드들의 네트워크의 오케스트레이션, 개개의 서비스 노드의 오케스트레이션, 개개의 서비스 계층의 오케스트레이션, 및/또는 개개의 서비스 능력의 오케스트레이션을 비롯한 몇 개의 유형들의 서비스 오케스트레이션을 지원한다. 기능(840)이 네트워크에서 어디에 배치되는지에 따라, 기능(840)은 이 유형들의 오케스트레이션 중 하나 이상을 지원할 수 있다. 이 유형들의 서비스 오케스트레이션을 수행하기 위해, 기능(840)은 앞서 논의된 것과 같은 서비스 오케스트레이션 프로파일들의 사용에 의존한다. 서비스 오케스트레이션 관리 기능(840)은 요청들 내에 포함된 서비스 오케스트레이션 프로파일들을 파싱하고 서비스 오케스트레이션 프로파일 속성들을 추출하는 것에 의해 서비스 오케스트레이션 요청들을 처리하는 것을 지원한다.
서비스 오케스트레이션 관리 기능들(840)은, 그들의 대응하는 서비스 오케스트레이션 프로파일들과 유사하게, 계층적 방식으로 배포될 수 있다. 환언하면, 서비스 오케스트레이션 관리 기능들은 네트워크, 노드, 서비스 계층, 및/또는 서비스 능력의 세분성(granularity)으로 배포될 수 있다. 이 레벨들 각각에서 프로파일들을 이용하여, 이 기능은 상이한 형태들의 서비스 오케스트레이션을 지원할 수 있다.
서비스 오케스트레이션 관리 기능(840)에 의해 지원되는 제1 오케스트레이션은 하나 이상의 지원되는 네트워크 서비스 노드들을 동적으로 인스턴스화하는 것(예컨대, 새로운 VM을 생성(spawn)하고 VM 상에 새로운 서비스 노드를 인스턴스화하는 것) 및 그들이 호환되고 네트워크에서의 다른 서비스 노드들을 보완하도록 그들의 구성을 조정하는 것일 수 있다. 예를 들어, 서비스 오케스트레이션 관리 기능은 생성되는 각각의 가상 머신(VM)이 호환가능한 유형들 및 버전들의 서비스 계층 소프트웨어(예컨대, oneM2M v1.0)가 그에 설치되어 있도록 하기 위해 조정할 수 있다.
서비스 오케스트레이션 관리 기능(840)에 의해 지원되는 다른 오케스트레이션은 네트워크에서의 서비스 노드들 상에 지원되는 서비스 계층(들)의 하나 이상의 인스턴스들을 동적으로 인스턴스화하고 시작하는 것 및 서비스 계층 인스턴스들이 호환되고 네트워크에서의 다른 서비스 계층 인스턴스들의 구성을 보완하도록 서비스 계층 인스턴스들의 구성을 조정하는 것이다. 예를 들어, 서비스 오케스트레이션 관리 기능(840)은 oneM2M 서비스 계층 인스턴스들을 인스턴스화하고, 이 인스턴스들을 특정 역할들(예컨대, 인프라스트럭처 노드, 중간 노드, 애플리케이션 특정 노드 등)로 기능하고 그들의 인터페이스들이 서로 호환되게 하도록(예컨대, 특정의 포트 번호들 및 프로토콜들을 사용하도록) 구성할 수 있다.
서비스 오케스트레이션 관리 기능(840)에 의해 지원되는 다른 오케스트레이션은 네트워크 전체에 걸쳐 다양한 서비스 노드들 상에서 호스팅되는 각각의 서비스 계층 인스턴스에 의해 지원되는 특정 유형들의 서비스 능력들(예컨대, oneM2M CSF들 또는 ETSI M2M SC들)을 인에이블시키는 것, 디스에이블시키는 것 및 구성하는 것을 동적으로 조정하는 것이다. 예를 들어, 서비스 오케스트레이션 관리 기능은 서로 연동하기 위해 특정의 서비스 계층들의 그룹에 의해 필요하게 되는 필수적인 서비스 능력들의 세트를 인에이블시키는 것과 구성하는 것을 조정할 수 있다. 추가의 예로서, 서비스 오케스트레이션 관리 기능은 서비스 계층들에 걸친 부하 분산 및 잠재적인 클라이언트들에 의한 이용가능성을 위한 적절한 혼합을 보장하기 위해 능력들이 분산되도록 네트워크 전체에 걸쳐 다양한 서비스 계층들 상의 부가 가치 서비스 능력들을 인에이블시키는 것, 디스에이블시키는 것, 및 구성하는 것을 조정할 수 있다.
서비스 오케스트레이션 관리 기능(840)에 의해 지원되는 다른 오케스트레이션은 네트워크 전체에 걸쳐 다양한 서비스 계층들 내에서 각각의 서비스 능력에 의해 지원되는 특정 유형들의 특징들(예컨대, oneM2M CMDH CSF의 저장후 전달 특징)을 인에이블시키는 것, 디스에이블시키는 것 및 구성하는 것을 동적으로 조정하는 것이다. 예를 들어, 서비스 오케스트레이션 관리 기능(840)은 서비스 능력을 지원하는 네트워크에서의 상이한 서비스 계층 인스턴스들에 걸쳐 서비스 능력 연동성을 보장하기 위해 필요하게 되는 필수적인 특징들의 세트를 인에이블시키는 것 및 구성하는 것을 조정할 수 있다. 추가의 예로서, 서비스 오케스트레이션 관리 기능은 서비스 계층들에 걸친 적절한 부하 분산 및 잠재적인 클라이언트들에 의한 이용가능성을 보장하기 위해 기능들이 분산되도록 특정 서비스 능력들의 부가 가치 특징들을 인에이블시키는 것, 디스에이블시키는 것, 및 구성하는 것을 조정할 수 있다.
서비스 오케스트레이션 관리 기능(840)은 그것이 네트워크에서의 오케스트레이션 클라이언트들, 오케스트레이션 대상들, 및 다른 서비스 오케스트레이션 관리 기능들로/로부터 요청들을 송신/수신할 수 있게 하기 위해 하나 이상의 인터페이스들을 지원할 수 있다. 예시적인 실시예에서, 서비스 오케스트레이션 인터페이스는 기능(840)이 요청된 프로파일에 기초하여 명시된 유형의 서비스 오케스트레이션을 수행하게 하기 위해 클라이언트(예컨대, 네트워크에서의 애플리케이션 또는 관리 엔티티)로부터 요청들을 수신하도록 구성될 수 있다. 그에 응답하여, 관리 기능(840)은 서비스 노드들의 네트워크, 특정 서비스 노드, 특정 서비스 계층, 또는 특정 서비스 능력에 대해 오케스트레이션을 수행한다. 다른 예시적인 실시예에서, 관리 기능은 잠재적인 오케스트레이션 대상으로부터 그의 서비스 오케스트레이션 프로파일을 게시하라는 요청을 수신하도록 구성될 수 있다. 그에 응답하여, 관리 기능은 그의 지원되는 서비스 계층들/서비스 능력들/특징들의 세트를 광고하거나, 서비스 오케스트레이션 컨텍스트 또는 정책들을 그 기능에 제공한다. 또 다른 실시예에서, 관리 기능(840)은 네트워크에서의 다른 서비스 오케스트레이션 관리 기능들로부터 서비스 오케스트레이션을 조정하라는 요청들을 수신하도록 구성될 수 있다. 예를 들어, 예시적인 시나리오에서, 서비스 노드 상에서 호스팅되는 기능은 서비스 계층의 서비스 오케스트레이션을 수행하기 위해 노드 상에서 호스팅되는 서비스 계층 내의 기능을 요청할 수 있다. 이러한 요청에 응답하여, 오케스트레이션 관리 기능은 서비스 능력들 중 하나 내의 기능이 서비스 능력에 대해 서비스 오케스트레이션을 수행할 것을 요청할 수 있다.
서비스 오케스트레이션 관리 기능(840)이 사용자들이 오케스트레이션될 서비스들의 원하는 양태들을 명시할 수 있는 사용자 인터페이스들을 발생시켜 디스플레이할 수 있다는 것을 잘 알 것이다. 서비스 오케스트레이션 관리 기능(840)은 명시된 사용자 입력들에 따라 프로파일들을 구성하기 위해 사용자 인터페이스들을 통해 입력되는 정보를 사용한다. 도 9b는 서비스 오케스트레이션 관리 기능(840)에 의해 제공될 수 있는 예시적인 사용자 인터페이스(950)를 나타내고 있다. 도시된 바와 같이, 사용자 인터페이스(950)는 사용자들이 오케스트레이션하는 것에 관심이 있는 특정의 서비스들을 명시할 수 있는 원하는 서비스들 패널(952)을 포함한다. 패널(954)을 사용하여, 사용자는 명시된 서비스들의 세트가 인에이블되어야 하는 특정의 대상 서버, 게이트웨이, 디바이스 등을 명시할 수 있다. 패널(956)은 사용자가 오케스트레이션이 행해지는지/행해지는 때를 좌우하는 특정의 정책들을 명시할 수 있게 한다. 예를 들어, 패널(956)을 사용하여, 사용자는 오케스트레이션이 특정의 시각에 또는 특정의 스케줄에 따라 수행되어야 한다는 것을 선택할 수 있다. 대안적으로, 패널(956)을 사용하여, 사용자는 오케스트레이션이 위치에 따라 수행되어야 한다는 것을 명시할 수 있다. 다른 실시예에서, 사용자 인터페이스는 사용자가 그에 부가하여 또는 대안적으로 오케스트레이션이 원하는 서비스 품질에 기초하여 수행되어야 한다는 것을 명시할 수 있게 할 수 있다. 사용자가 오케스트레이션이 특정의 시각 또는 스케줄에 기초하여 수행되어야 한다는 것을 좌우하는 정책을 선택하는 시나리오에서, 사용자는 패널(958)을 사용하여 시각 또는 스케줄의 상세를 명시할 수 있다. 사용자가 오케스트레이션이 위치에 기초하여 수행되어야 한다는 것을 좌우하는 정책을 선택하는 시나리오에서, 패널(960)을 사용하여, 사용자는 오케스트레이션을 수행할지를 결정하기 위한 컨텍스트를 제공하는 위치를 명시할 수 있다. 이와 유사하게, 서비스 품질이 오케스트레이션 정책으로서 명시되는 경우, 사용자 인터페이스는 원하는 서비스 품질에 관한 관련 상세를 명시하기 위한 대응하는 위치를 제공할 것이다. 사용자가 인터페이스(950)를 사용하여 원하는 서비스 레벨에 관한 상세를 명시한 후에, 서비스 오케스트레이션 관리 기능(840)은 원하는 서비스들을 명시된 방식으로 구현하기 위해 프로파일 정보를 업데이트하는 데 명시된 상세를 사용할 수 있다.
서비스들을 오케스트레이션하는 방법
도 10a 및 도 10b는 서비스 오케스트레이션을 수행하라는 요청들의 예시적인 처리를 나타내는 플로우차트를 나타내고 있다. 처리는 계층적으로 관련될 수 있고 계층적으로 관련될 수 있는 서비스 오케스트레이션 프로파일들(820)을 처리하는 서비스 오케스트레이션 관리 기능들에 의해 수행된다.
도 10a를 참조하면, 단계 1에서, 서비스 오케스트레이션 관리 기능(840)이 서비스 오케스트레이션 프로파일들(820)로 구성된다. 이 구성은 서비스 노드가 프로비저닝될 때 사전 프로비저닝을 통해 행해질 수 있거나, 예를 들어, 오케스트레이션 클라이언트로부터 또는 다른 서비스 오케스트레이션 관리 기능으로부터 요청이 수신될 때 동적으로 일어날 수 있다. 서비스 오케스트레이션 기능(840)을 구성하기 전에, 이용가능한 지원되는 서비스들의 세트를 식별하기 위해 이전의 발견 단계가 이용될 수 있다는 것을 잘 알 것이다.
도 10a를 참조하면, 단계 2에서, 오케스트레이션 트리거가 일어난다. 예를 들어, 서비스 오케스트레이션 관리 기능(840)은 원하는 유형의 오케스트레이션을 수행하라는 요청을 클라이언트로부터 수신할 수 있다. 요청이 원하는 서비스를 설명하는 프로파일(820)을 포함하거나 그 프로파일(820)이 요청보다 선행할 수 있다. 다른 시나리오에서, 서비스 오케스트레이션 관리 기능(840)은, 오케스트레이션 프로파일(820)에 명시된 정책 또는 규칙에 기초하여, 자체 오케스트레이션이 수행되도록 트리거링하는 이벤트를 검출할 수 있다.
도 10a를 참조하면, 단계 3에서, 임의의 관련 서비스 오케스트레이션이 서비스 오케스트레이션 관리 기능에 의해 처리된다. 예를 들어, 기능(840)은 트리거와 연관된 대응하는 서비스 오케스트레이션 프로파일(들)을 처리한다.
도 10a를 참조하면, 단계 4에서, 서비스 오케스트레이션 관리 기능(840)은 "프로파일 시맨틱스" 속성(존재하는 경우)이 시맨틱 설명 또는 다른 곳에 저장된 시맨틱 설명에의 링크인지를 결정하기 위해 그 속성을 파싱한다.
도 10a를 참조하면, 단계 5A에서, 서비스 오케스트레이션 관리 기능이 "프로파일 시맨틱스" 속성이 링크인 것으로 결정하는 경우, 서비스 오케스트레이션 관리 기능은 단계 5B에서 시맨틱 설명을 가져오기(fetch)하기 위해 링크를 이용한다.
단계 6에서, 서비스 오케스트레이션 관리 기능(840)은 시맨틱 인식(semantic aware) 기법들을 사용하여 프로파일(820)의 개개의 속성들을 파싱하고 이해하기 위해 시맨틱 설명을 이용한다.
도 10a의 단계 7에서, 서비스 오케스트레이션 관리 기능(840)은 의도된 오케스트레이션 대상이 서비스 노드들의 네트워크, 서비스 노드, 서비스 계층, 또는 서비스 능력인지를 결정하기 위해 "프로파일 유형" 속성을 파싱한다.
도 10b의 단계 8에서, 서비스 오케스트레이션 관리 기능(840)은 요청된 유형의 서비스 오케스트레이션을 수행할 수 있는지를 검증한다. 아니오인 경우, 기능(840)은 단계 13과 관련하여 이하에서 살펴보는 바와 같이 오류 조건으로 클라이언트에게 응답한다. 그렇지 않은 경우, 오케스트레이션 관리 기능(840)은 요청을 계속하여 처리한다.
도 10b의 단계 9에서, 서비스 오케스트레이션 관리 기능(840)은 요청된 서비스 오케스트레이션을 언제 수행할지(예컨대, 날짜 및 시각)에 관한 스케줄링 정보를 결정하기 위해 "서비스 오케스트레이션 스케줄" 속성을 파싱한다.
도 10b의 단계 10에서, 서비스 오케스트레이션 관리 기능(840)은 서비스 오케스트레이션에 추가로 적격성을 부여하는 임의의 명시된 규칙들 및 컨텍스트가 있는지를 결정하기 위해 "서비스 오케스트레이션 정책들" 및 "서비스 오케스트레이션 컨텍스트" 속성들을 파싱한다. 예를 들어, 서비스 오케스트레이션 관리 기능(840)은 서비스 오케스트레이션이 수행되어야 하는지/수행되어야 하는 때, 허용된/허용되지 않은 서비스 오케스트레이션의 유형들, 또는 서비스 오케스트레이션이 조절 또는 반복될 필요가 있는 조건들을 결정할 수 있다. 정책들은 "서비스 오케스트레이션 컨텍스트" 속성에 대한 의존관계들/참조들을 포함할 수 있다. 이 컨텍스트에 대한 업데이트들이 검출될 때, 서비스 오케스트레이션 관리 기능(840)은 서비스 재오케스트레이션(service re-orchestration)이 필요한지/필요한 때를 결정하기 위해 임의의 적용가능한 정책들을 재평가할 수 있다.
도 10b의 단계 11에서, 서비스 오케스트레이션 관리 기능(840)은 프로파일이 하나 이상의 대상들에 대해 오케스트레이션될 것으로 정의하는 원하는 서비스들의 세트 및 관리 기능(840)이 수행해야만 하는 대응하는 조치들을 결정하기 위해 "원하는 서비스들" 속성을 파싱한다. 기능(840)은 또한 이 요청에 서비스하는 것이 그것이 동일한 서비스 노드 상에서 로컬적으로 또는 네트워크 내의 다른 곳에서 호스팅되는 임의의 다른 서비스 오케스트레이션 관리 기능들과 협업할 것을 필요로 하는지를 결정한다. 기능(840)은 임의의 부가의 서비스 오케스트레이션 프로파일들(820)이 "원하는 서비스들" 프로파일 속성에서 참조(즉, 그에 링크)되거나 그에 포함되었는지 알아보기 위해 검사하는 것에 의해 이것을 행한다. 예를 들어, 서비스 계층 프로파일 내의 "원하는 서비스들" 속성은 하나 이상의 자식 서비스 능력 프로파일들(820)을 참조할 수 있다.
도 10b의 단계 12에서, 자식 서비스 오케스트레이션 프로파일들(820)이 "원하는 서비스들" 속성에 포함되거나 그에서 참조된 경우, 서비스 오케스트레이션 관리 기능(840)은 자식 서비스 오케스트레이션 관리 기능(들)에 대한 그 자신의 요청(들)을 개시한다. 자식 서비스 오케스트레이션 프로파일들(820)이 프로파일에 명시적으로 포함되지 않는 경우, 서비스 오케스트레이션 관리 기능(840)은 그가 유지하는 정보에 기초하여 그 자신의 자식 기능들의 세트를 선택할 수 있다. 부모 서비스 오케스트레이션 관리 기능(840)은 또한 그가, 차례로, 트리거링할 수 있는 그의 자식들에 대한 새로운 프로파일들을 생성할 수 있다. 그렇게 함에 있어서, 기능은 (예컨대, 기능이 이 자식 기능들에 의해 이용가능하도록 만들어주는 서비스 오케스트레이션 프로파일들을 조정함으로써) 자식 서비스 오케스트레이션 관리 기능(들)에 의해 수행되는 서비스 오케스트레이션을 조정할 수 있다. 요청을 수신할 때, 이 기능들은 여기서 기술되는 것과 동일한 방법을 사용하여 그것을 핸들링한다. 그 결과, 서비스 오케스트레이션 요청들을 처리하는 조정된 계층적 방법이 달성된다.
도 10b의 단계 13에서, 그 자신의 서비스 오케스트레이션 조치들의 세트를 완료하고 임의의 자식 서비스 오케스트레이션 조치들이 성공적으로 수행된 후에, 서비스 오케스트레이션 관리 기능(840)은 수행하도록 트리거링된 서비스 오케스트레이션 동작 전체의 상태를 계산한다. 명시적 클라이언트 요청이 오케스트레이션을 트리거링했다면 이 상태가 클라이언트에 반환될 수 있다. 이 응답에 기초하여, 클라이언트는 오케스트레이션이 성공적이었는지, 실패했는지, 또는 부분적으로 성공적이었는지(즉, 일부 서비스 오케스트레이션은 완료되었지만 일부는 그렇지 않음)를 결정할 수 있다. 이 정보를 사용하여, 이 응답에 기초하여, 클라이언트는 이어서 그의 다음 조치를 선택할 수 있다(예컨대, 다른 라운드의 오케스트레이션을 수행하거나 이 결과들을 그냥 사용함).
서비스 게시 및 발견
그의 대응하는 서비스 노드들의 네트워크, 서비스 노드, 서비스 계층, 또는 서비스 능력에 대한 서비스들을 오케스트레이션하는 것에 부가하여, 서비스 오케스트레이션 관리 기능(840)은 또한 이용가능한 서비스들의 인벤토리를 유지하고 이 인벤토리를 서비스 오케스트레이션 프로파일들(820)을 통해 게시하는 방법들을 지원한다. 서비스 오케스트레이션 관리 기능(840)은 게시된 서비스 오케스트레이션 프로파일들(820)의 발견을 추가로 지원한다. 서비스 오케스트레이션 프로파일들(820)의 게시 및 발견은 이 프로파일들을 동적으로 발견하고 대응하는 서비스 노드들의 네트워크, 서비스 노드, 서비스 계층, 또는 서비스 능력의 현재 구성을 결정할 수 있는 서비스 오케스트레이션 클라이언트들(예컨대, 애플리케이션들은 물론, 네트워크에서의 다른 서비스 오케스트레이션 관리 기능들, 기타)을 인에이블시킨다. 그렇게 함에 있어서, 클라이언트는 현재 구성이 적절한지 또는 오케스트레이션이 보장되는지를 결정할 수 있다.
서비스 오케스트레이션이 서비스 발견을 기반이 되는 실시가능 기술로서 이용할 수 있지만, 서비스 오케스트레이션은 서비스 발견과 구별된다. 서비스 오케스트레이션은 전형적으로 서비스 발견 이후에 오는 단계이고, 특정의 서비스 노드 상에서 또는 서비스 노드들의 네트워크에 걸쳐 호스팅되는 서비스들의 동적 배열, 관리 및 조정과 같은 특징들을 지원한다. 서비스 오케스트레이션은 또한 네트워크에서의 어느 서비스 노드들 상의 어느 서비스들이 상이한 클라이언트들(예컨대, 애플리케이션들은 물론 다른 서비스들)에 의해 사용될 수 있는지를 조정하고 제어하는 것과 같은 특징들을 지원할 수 있다.
도 11은 서비스 오케스트레이션 프로파일을 게시하는 것과 관련하여 수행되는 처리의 플로우차트를 나타내고 있다. 도 11을 참조하면, 단계 1에서, 서비스 오케스트레이션 관리 기능(840)이 서비스 오케스트레이션 트리거(예컨대, 클라이언트로부터의 요청)를 수신한다.
도 11의 단계 2에서, 서비스 오케스트레이션 관리 기능(840)은 트리거로부터 서비스 오케스트레이션 프로파일(820)을 추출할 수 있다.
도 11의 단계 3에서, 서비스 오케스트레이션 관리 기능(840)은 명시된 대상(들)에 대해 원하는 서비스 오케스트레이션을 수행한다. 예를 들어, 관리 기능(840)은 요청들을 대응하는 서비스 오케스트레이션 프로파일들(820)과 함께 그의 자식 서비스 오케스트레이션 관리 기능들로 전송할 수 있다.
도 11의 단계 4에서, 서비스 오케스트레이션 관리 기능(840)은 오케스트레이션 프로파일(820)을 게시하는 것이 허용되는지 여부를 결정한다. 예를 들어, 오케스트레이션 관리 기능(840)은 그것이 클라이언트에 의해 허용되는지를 결정할 수 있다. 클라이언트에 의해 허용되지 않으면, 오케스트레이션 관리 기능(840)은, 단계 8에서, 프로파일을 게시하지 않는다.
클라이언트에 의해 허용되면, 도 11의 단계 5에서, 서비스 오케스트레이션 관리 기능(840)은 명시된 대상(들)에 대해 성공적으로 오케스트레이션한 지원되는 서비스들의 세트를 게시하는 서비스 프로파일을 생성한다. 이 프로파일들 내에, 앞서 논의된 "지원되는 서비스들" 속성에서 제안된 것들과 같은 각각의 개별 프로파일에 대한 지원되는 서비스들이 게시될 수 있다. 대안적으로, 서비스 오케스트레이션 관리 기능(840)은 클라이언트들이 오케스트레이션을 어떻게 수행할 수 있는지에 관한 정보를 클라이언트들에 제공하는 서비스 프로파일 템플릿을 게시할 수 있다. 예를 들어, 게시된 서비스 프로파일 템플릿은 새로운 서비스 프로파일을 어떻게 생성해야 하는지 또는 생성될 수 있는 새로운 서비스 프로파일들의 유형들을 설명할 수 있다.
단계 6에서, 서비스 오케스트레이션 관리 기능(840)은 잠재적인 오케스트레이션 클라이언트들이 발견할 수 있게 되도록 서비스 프로파일을 게시한다. 서비스 오케스트레이션 관리 기능(840)은 그가 게시하는 프로파일들에 서비스 오케스트레이션 적용가능 컨텍스트 정보를 추가/업데이트할 수 있다. 예를 들어, 서비스 오케스트레이션 관리 기능은 주어진 프로파일과 연관된 현재 성능/부하 메트릭들, 프로파일에 대해 과금되는 현재 요금, 기타를 포함시키기 위해 프로파일 정보를 추가 또는 업데이트할 수 있다.
도 11의 단계 7에서, 서비스 오케스트레이션 관리 기능(840)은 현재 활성이고 서비스 노드들의 네트워크, 서비스 노드, 서비스 계층, 또는 서비스 능력에 의해 지원되는 서비스 프로파일들의 인벤토리를 유지한다. 그 결과, 서비스 오케스트레이션 관리 기능(840)은 더 이상 활성이 아닌 임의의 오래된 프로파일들을 게시하지 않을 수 있다(즉, 제거할 수 있음).
도 12는 서비스 오케스트레이션 프로파일들의 발견과 관련하여 수행되는 처리의 플로우차트를 나타내고 있다. 도 12를 참조하면, 단계 1에서, 오케스트레이션 클라이언트는 앞서 논의된 바와 같이 서비스 오케스트레이션 프로파일(820) 내에 정의된 속성들을 포함하는 질의로 이루어져 있는 서비스 발견 질의를 발생시킨다.
도 12의 단계 2에서, 서비스 오케스트레이션 클라이언트는 임의의 적용가능한 서비스 노드들, 서비스 계층들, 또는 서비스 능력들이 질의 속성들과 일치하는 서비스 프로파일들을 갖는지를 발견하기 위해 발견 요청을 하나 이상의 대상 서비스 오케스트레이션 관리 기능들(840)로 전송한다.
도 12의 단계 3에서, 서비스 오케스트레이션 관리 기능(840)은 발견 요청을 수신하고 발견 질의 스트링을 추출한다.
도 12의 단계 4에서, 서비스 오케스트레이션 관리 기능(840)은 임의의 일치하는 프로파일들이 존재하는지를 결정하기 위해 질의 스트링에 명시된 속성들과 대조하여 그의 게시된 서비스 프로파일들의 세트를 질의한다.
도 12의 단계 5에서, 서비스 오케스트레이션 관리 기능(840)은 임의의 일치하는 서비스 프로파일들의 리스트 또는 리스트에의 링크를 반환한다.
oneM2M 서비스 오케스트레이션 실시예
서비스 오케스트레이션을 위한 시스템들 및 방법들이 서비스들을 사용하는 몇 개의 상이한 네트워크 기술들 중 임의의 것에 적용될 수 있다. 개시된 시스템들 및 방법들은 M2M 및 IoT 기술들에 대한 특정의 적용가능성을 갖는다. 예를 들어, 개시된 시스템들 및 방법들은 oneM2M 아키텍처에 구현될 수 있다.
도 13은 본원에 기술되는 바와 같이 서비스 오케스트레이션을 제공하도록 구성된 예시적인 oneM2M 아키텍처를 개시하고 있다. 도 13의 특정의 실시예에서, 중앙집중식 서비스 오케스트레이션 관리 기능(1310)은 네트워크에서의 중앙 노드에 존재하고, 오케스트레이션 클라이언트들(1312)(예컨대, AE들 및 CSE들)은 물론 오케스트레이션 대상들(1320)(예컨대, CSE들)에 의해 액세스가능하게 되어 있다. 오케스트레이션 프로파일들도 마찬가지로 중앙집중식 노드 상에 저장되고 그에서 처리된다. 이 중앙집중식 서비스 오케스트레이션 관리 기능(1310)과 인터페이싱하기 위한 새로운 참조 지점(Mso)이 정의된다. 참조 지점은 도 10, 도 11, 및 도 12와 관련하여 앞서 논의된 제안된 요청들을 지원할 수 있다. 이 중앙집중식 아키텍처를 사용하여, 서비스 노드들의 네트워크, CSE들, 및/또는 CSF들뿐만 아니라 개개의 서비스 노드, CSE, 또는 CSF의 오케스트레이션이 지원될 수 있다.
oneM2M 아키텍처는 또한 앞서 기술된 바와 같이 서비스 오케스트레이션의 분산 구현을 지원한다. 도 14는 서비스 오케스트레이션의 분산 구현을 나타내고 있다. 도 14에 도시된 바와 같이, 서비스 오케스트레이션 관리 기능(1440)은 개개의 서비스 노드의 오케스트레이션은 물론 서비스 노드들의 네트워크의 조정된 오케스트레이션을 지원하는 것을 위해 각각의 서비스 노드(예컨대, 인프라스트럭처 노드(1418), 중간 노드(1422), 및 애플리케이션 특정 노드(1424)) 상에서 실행된다. 오케스트레이션 관리 기능들은 서비스 오케스트레이션을 구현하는 것과 관련하여 앞서 기술된 바와 같이 오케스트레이션 프로파일들(1420)을 처리한다. 서비스 오케스트레이션 관리 기능들(1440) 및 대응하는 오케스트레이션 프로파일들(1420)은 또한 서비스 노드들 상에서 실행 중인 CSE들(1430) 상에서 호스팅될 수 있다. 예시적인 실시예에서, 서비스 오케스트레이션 관리 기능들(1440)은 CSE 오케스트레이션을 지원하기 위해 새로운 서비스 오케스트레이션 관리 CSF로서 구현될 수 있다.
도 15는 공통 서비스 엔티티(CSE)(1506) 상에서 호스팅되는 다양한 공통 서비스 기능들(CSF)(1508)을 나타내는 다이어그램이다. 도 15에 나타낸 CSE(1506)에서, 서비스 오케스트레이션 관리 기능들(1540) 및 대응하는 프로파일들(1520)은 CSF들(1508) 상에서 호스팅되고 도 10, 도 11, 및 도 12와 관련하여 앞서 기술된 바와 같이 동작한다. 그에 따라, 공통 서비스 기능들 및 프로파일들은 CSE(1506)과 연관된 CSF들(1508) 내에 분산될 수 있다. 일 실시예에서, 그리고 또한 도 15에 예시된 바와 같이, 오케스트레이션을 수행하기 위한 중앙집중식 노드로서 동작하는 새로운 공통 서비스 오케스트레이션 CSF(1512)가 생성될 수 있다. 특정의 구현 요구사항들에 따라, 이 실시예들 중 하나 또는 둘 다가 CSF들을 오케스트레이션하는 데 사용될 수 있다.
oneM2M 서비스 오케스트레이션 자원
oneM2M 애플리케이션들은 종종 RESTful(representational state transfer) 아키텍처를 사용하여 구현된다. 이러한 경우에, CSF들은 RESTful "자원들"의 세트로서 표현된다. 자원은 Create, Retrieve, Update, 및 Delete와 같은 RESTful 메소드들을 통해 조작될 수 있는 표현을 가지는 아키텍처에서의 고유하게 주소지정가능한 엔티티이다. 이 자원들은 URI(Universal Resource Identifier)들을 사용하여 주소지정가능하게 된다. 자원은 자식 자원(들) 및 속성(들)을 포함할 수 있다. 자식 자원은 부모 자원과 포함 관계(containment relationship)를 가지는 자원이다. 부모 자원 표현은 그의 자식 자원(들)에 대한 참조들을 포함한다. 자식 자원의 수명은 부모의 자원 수명에 의해 제한된다. 각각의 자원은 자원에 관한 정보를 저장하는 "속성들"의 세트를 지원한다.
본원에 기술되는 바와 같은 서비스 오케스트레이션 처리는 서비스 오케스트레이션 관리 기능에 대한 RESTful 자원 기반 프로그래밍 인터페이스를 사용하여 구현될 수 있다. 오케스트레이션 클라이언트들은 상이한 유형들의 서비스 오케스트레이션을 수행하기 위해 서비스 오케스트레이션 관리 기능을 개시하는 데 RESTful 기반 자원들을 사용할 수 있다. 자원들은 또한 서비스 오케스트레이션 관리 기능들에 의해 그리고/또는 오케스트레이션 대상들이 지원하는 서비스 오케스트레이션 프로파일들을 게시하기 위해서는 물론 서비스 오케스트레이션 관리 기능들 간의 협업(예컨대, 서비스 오케스트레이션 프로파일들의 교환)을 위해 사용될 수 있다.
예시적인 실시예에서, 앞서 논의된 오케스트레이션 프로파일에 대응하는, <profile> 자원은 서비스 오케스트레이션 관리 기능이 명시된 오케스트레이션 대상에 대해 서비스 오케스트레이션을 수행할 것을 요청하는 데 사용될 수 있다. <profile> 자원은 또한 서비스 오케스트레이션 관리 기능에 의해 관리 기능이 책임지고 있는 대응하는 서비스 노드들, CSE들, 또는 CSF들에 대한 서비스 오케스트레이션 속성들을 게시하는 데 사용될 수 있다. 마찬가지로, <profile> 자원은 또한 다른 서비스 노드, CSE, 또는 CSF의 게시된 서비스 오케스트레이션 속성들을 발견하는 데 사용될 수 있다.
도 16은 본원에서 논의되는 바와 같은 오케스트레이션 프로파일에 대응하는 <profile> 자원의 예시적인 실시예를 나타낸 다이어그램이다. 도 16(및 도 17 내지 도 20)과 관련하여, 일반적으로 oneM2M 표기법들을 대표하는 하기의 표기법들이 적용된다: 정사각형 상자들은 자원들 및 자식 자원들에 대해 사용되고; 둥근 코너들을 갖는 정사각형 상자들은 속성들에 대해 사용되며; 평행사변형들은 자원들의 컬렉션에 대해 사용되고; 각각의 속성 및 자식 자원의 다중성(multiplicity)이 정의되며; "<"와 ">"의 구분 기호로 표시된 자원 이름들은 자원의 생성 동안 할당된 이름들을 나타낸다. 도 16에 도시된 바와 같이, <profile> 자원은 그와 연관된 예시적인 속성을 갖는다. 속성은 오케스트레이션 프로파일과 관련하여 앞서 기술된 다양한 속성들에 대응한다. 도 16은 <profile> 자원이 속성과 다중성 관계를 갖는다는 것을 변수 "n"으로 나타내고 있다. 환언하면, 이 표기법은 <profile>에 대해 특정의 속성 "n"이 있을 수 있다는 것을 나타낸다. 하기의 차트는, 앞서 논의된 다양한 오케스트레이션 프로파일 속성들에 대해, RESTful <profile>과 존재할 수 있는 다중성을 나타낸다. 예를 들어, 하기의 차트에서 살펴보는 바와 같이, 특정의 <profile>에 대해서는 하나의 profileID 속성만이 있을 수 있다. 마찬가지로, 특정의 <profile>에 대해서는 하나의 유형만이 있을 수 있다. 그렇지만, orchestrationTargets 및 supportedServices와 같은, 다른 속성들에 대해서는, 0부터 다수의 값들까지 어디든지 있을 수 있다.
Figure pat00004
서비스 오케스트레이션 관리 기능이 CSE(즉, 중앙집중식 서비스 오케스트레이션 관리 기능) 밖에서 또는 그와 무관하게 호스팅되는 실시예들에 대해, <profile> 자원이 oneM2M 정의 CSE 자원 트리와 무관하게 인스턴스화될 수 있다. 예를 들어, <profile> 자원이 네트워크에서의 그 자신의 노드 상에서 자체적으로 호스팅되는 중앙집중식 서비스 오케스트레이션 관리 기능에 대한 별도의 자원 트리에 인스턴스화될 수 있다.
서비스 오케스트레이션 관리 기능이 CSE 내에서 또는 CSF 내에서 호스팅되는 실시예들에 대해, <profile> 자원은 oneM2M CSE 자원 트리 내의 다양한 레벨들에서 인스턴스화될 수 있다. 하나의 예시적인 실시예에서, <profile> 자원이 도 17에 도시된 바와 같이 <node> 자원 아래에 인스턴스화될 수 있다. 이 실시예는 서비스 노드의 오케스트레이션에 아주 적합하다. 예를 들어, 이 특정의 <profile> 자원은 서비스 노드에 의해 지원되는 CSE들 및/또는 CSF들의 수 및 유형을 오케스트레이션하는 데 사용될 수 있다. 이 실시예는 또한 노드의 서비스 프로파일들을 게시 및/또는 발견하는 데 사용될 수 있다.
다른 실시예에서, <profile> 자원이 도 18에 도시된 바와 같이 CSEs <baseURI> 자원 아래에 또는 <remoteCse> 자원 아래에 인스턴스화될 수 있다. 이 실시예는 CSE가 공통/일반 구성을 그의 클라이언트들 모두에게 제공할 수 있도록 하는 CSE(즉, 서비스 계층)의 오케스트레이션(즉, CSE의 비-애플리케이션 특정 오케스트레이션)에 아주 적합하다. 이 실시예는 또한 CSE 서비스 프로파일들을 게시 및/또는 발견하는 데 사용될 수 있다.
다른 실시예에서, <profile> 자원이 도 19에 도시된 바와 같이 <application> 자원 아래에 또는 <m2mServiceSubscription> 자원 아래에 인스턴스화될 수 있다. 이 실시예는 모든 애플리케이션들에 걸쳐 공통 구성보다는 그의 등록된 애플리케이션들 각각에 차별화된 서비스들을 제공하도록 하는 CSE의 오케스트레이션에 아주 적합하다. 이 실시예는 또한 CSE 애플리케이션 특정 지원되는 서비스 프로파일들을 게시 및/또는 발견하는 데 사용될 수 있다.
또 다른 실시예에서, <profile> 자원이 도 20에 도시된 바와 같이 하나 이상의 CSF 특정 자원들 아래에 인스턴스화될 수 있다. 유의할 점은, 이 실시예에서, <csfN>이 특정의 CSF 인스턴스에 적용가능한 oneM2M 정의 자원을 나타내는 것으로 의도되어 있다는 것이다. 예를 들어, 기존의 oneM2M 규격은 DMR CSF에 대한 <container> 자원, CMDH CSF에 대한 <delivery> 자원, 및 GMG CSF에 대한 <group> 자원과 같은 CSF 특정 자원들을 정의한다. CSF 특정 자원 아래에 <profile> 하위자원을 지원하는 것에 의해, 이 실시예는 특정의 CSF 및 그가 지원하는 특징들의 오케스트레이션을 위해 사용될 수 있다. 이 실시예는 또한 CSF 지원 서비스 프로파일들을 게시 및/또는 발견하는 데 사용될 수 있다.
애플리케이션이 그의 로컬 CSE 상에서 CSF들을 오케스트레이션하는 것
도 21a 및 도 21b는 로컬 CSE 상에서 CSF들을 오케스트레이션하는 것과 연관된 예시적인 처리를 나타낸 다이어그램을 제시한다. 예시적인 시나리오에서, 도 13과 관련하여 앞서 언급된 Mso 참조 지점을 통해 메시징이 일어난다.
도 21a를 참조하면, 단계 1에서, CSE 상의 서비스 오케스트레이션 관리 기능(예컨대, 도 13의 1310)은 앞서 개시된 방법들을 사용하여 이용가능한 CSE 서비스 프로파일들을 로컬 자원(예컨대, baseURI/<profile>)에 게시한다.
도 21a의 단계 2에서, 애플리케이션은 그의 로컬 CSE에의 oneM2M 등록을 성공적으로 수행한다. 도 21a에 도시된 바와 같이, 이 처리는 단계 2A에서 애플리케이션이 특정의 요청(예컨대, CREATE baseURO/<application>)을 송신하는 것, 및 이 요청이 단계 2B에서 대응하는 자원(예컨대, baseURI/,application)을 생성하는 것에 의해 서비스 계층에 등록되는 것을 포함할 수 있다. 단계 2C에서 성공을 나타내는 응답이 CSE에 의해 애플리케이션으로 전송될 수 있다.
도 21a의 단계 3에서, 애플리케이션은 그를 지원할 수 있는 임의의 이용가능한 CSE 서비스 프로파일들을 발견하기를 기대하면서 CSE 서비스 프로파일 발견 요청을 그의 로컬 CSE로 송신한다. 도 21a에 도시된 바와 같이, 예시적인 시나리오에서, 애플리케이션은 RETRIEVE baseURI?searchString= "Profile Type = CSE Profile"과 같은 요청을 생성하고 전송할 수 있다.
도 21a의 단계 4에서, CSE 상의 서비스 오케스트레이션 관리 기능은 "Profile Type = CSE Profile"로 구성된 searchString 속성을 가지는 자원들을 찾아 자원 발견을 수행하는 것에 의해 서비스 프로파일 발견 요청을 처리한다.
도 21b의 단계 5에서, CSE 서비스 오케스트레이션 관리 기능은 <profile> 자원들에의 링크들의 리스트로 애플리케이션에 응답한다. 각각의 링크는 CSE가 현재 지원하는 서비스 프로파일을 나타낸다. 링크는 URI는 물론 프로파일을 설명하는 부가의 서비스 프로파일 속성들과 같은 정보를 포함할 수 있다.
도 21b의 단계 6에서, 애플리케이션은 임의로 프로파일(들)에 관한 부가 정보를 얻기 위해 하나 이상의 프로파일들을 가져온다. 애플리케이션은 프로파일들 중 임의의 것이 애플리케이션의 요구사항들을 충족시키는지를 결정한다.
도 21b의 단계 7에서, 기존의 프로파일들 중 어느 것도 애플리케이션의 요구사항들을 충족시키지 않는 경우, 애플리케이션은 CSE에서 호스팅되는 지원되는 CSF들의 애플리케이션에 의해 명시된 구성으로 CSE를 구성하기 위해 새로운 서비스 오케스트레이션 프로파일을 생성한다.
도 21b의 단계 8에서, 애플리케이션은 서비스 오케스트레이션 요청을 발생시켜 서비스 오케스트레이션 프로파일을 포함하는 그의 로컬 CSE로 전송한다. 이 요청은 새로운 <profile> 자원을 생성하라는 요청 내에서 CSE로 송신될 수 있다. 이 요청의 URI는 오케스트레이션이 CSE의 애플리케이션 특정 오케스트레이션이도록 하기 위해 baseURI/<application>/<profile>을 목표로 할 수 있다.
도 21b의 단계 9에서, CSE 내의 서비스 오케스트레이션 관리 기능은 도 10a 및 도 10b와 관련하여 앞서 기술된 바와 같이 서비스 오케스트레이션 프로파일을 파싱하는 것에 의해 서비스 오케스트레이션 요청을 처리한다. 이 애플리케이션 특정 오케스트레이션은 CSE가 그에 등록된 각각의 애플리케이션에 대해 차별화된 서비스들(예컨대, 상이한 CSF 구성들)을 지원할 수 있게 할 수 있다.
도 21b의 단계 10에서, CSE는 서비스 오케스트레이션 요청이 성공적이었는지 여부를 나타내는 응답으로 애플리케이션에 응답한다.
CSE들의 네트워크에 걸쳐 CSF들을 오케스트레이션하는 것
도 22a 내지 도 22d는 CSE들의 네트워크에 걸쳐 CSF들을 오케스트레이션하는 것과 연관된 예시적인 처리를 나타낸 다이어그램이다.
도 22a를 참조하면, 단계 1에서, AE 또는 CSE는 서로 조정되는 CSE 구성들로 네트워크에서의 서비스 노드들을 구성하기 위해 새로운 서비스 오케스트레이션 프로파일을 생성한다. 예를 들어, 프로파일은 동일한 유형을 가지는 CSE들을 지원하고 상보적인 구성들 및 CSF들을 지원하는 서비스 노드들을 구성하기 위한 것일 수 있다.
도 22a의 단계 2A에서, AE 또는 CSE는 서비스 오케스트레이션 요청을 발생시켜 네트워크에서의 중앙집중식 서비스 오케스트레이션 관리 기능에 전송한다. 이 요청은 서비스 오케스트레이션 관리 기능 상에 새로운 <profile> 자원을 생성하라는 요청(예컨대, CREATE /<profile> 페이로드: 서비스 오케스트레이션 프로파일) 내에서 송신될 수 있다.
도 22a의 단계 3에서, 서비스 오케스트레이션 관리 기능은 도 10a 및 도 10b와 관련하여 앞서 논의된 바와 같이 서비스 오케스트레이션 프로파일을 파싱하고 네트워크에서의 각각의 적용가능한 서비스 노드에 대해 서비스 오케스트레이션 요청들을 개시하는 것에 의해 서비스 오케스트레이션 요청을 처리한다.
도 22a의 단계 4A에서, 중앙집중식 서비스 오케스트레이션 노드 상의 서비스 오케스트레이션 관리 기능은 서비스 오케스트레이션 요청을 발생시켜 네트워크에서의 인프라스트럭처 서비스 노드로 전송한다. 예시적인 시나리오에서, 요청은 다음과 같을 수 있다: CREATE <node>/<profile> 페이로드: 서비스 오케스트레이션 프로파일. 단계 4B에서, 인프라스트럭처 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 요청을 처리하고 도 10a 및 도 10b와 관련하여 앞서 기술된 처리에 따라 노드의 CSE를 구성한다. 예를 들어, 인프라스트럭처 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 앞서 기술된 바와 같이 관련 오케스트레이션 프로파일을 파싱하고 관련 오케스트레이션을 수행할 수 있다. 도 22c의 단계 4C에서, 인프라스트럭처 서비스 노드는 처리의 상태를 제공하는 응답을 송신한다. 예시적인 시나리오에서, 인프라스트럭처 서비스 노드는 오케스트레이션이 성공했다는 것을 나타낸다.
도 22c의 단계 5A에서, 중앙집중식 서비스 노드의 서비스 오케스트레이션 관리 기능은 서비스 오케스트레이션 요청을 발생시켜 네트워크에서의 중간 서비스 노드로 전송한다. 예시적인 시나리오에서, 요청은 다음과 같을 수 있다: CREATE <node>/<profile> 페이로드: 서비스 오케스트레이션 프로파일. 도 22d의 단계 5B에서, 중간 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 요청을 처리하고 도 10a 및 도 10b와 관련하여 앞서 기술된 처리에 따라 노드의 CSE를 구성한다. 예를 들어, 중간 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 수신된 오케스트레이션 프로파일을 파싱하고 대응하는 오케스트레이션을 수행할 수 있다. 도 22d의 단계 5C에서, 중간 서비스 노드는 처리의 상태를 제공하는 응답을 송신한다. 예시적인 시나리오에서, 중간 서비스 노드는 오케스트레이션이 성공했다는 것을 나타낸다.
도 22c의 단계 6A에서, 중앙집중식 서비스 노드의 서비스 오케스트레이션 관리 기능은 서비스 오케스트레이션 요청들을 발생시켜 네트워크에서의 애플리케이션 특정 서비스 노드로 전송한다. 예시적인 시나리오에서, 요청은 다음과 같을 수 있다: CREATE <node>/<profile> 페이로드: 서비스 오케스트레이션 프로파일. 도 22d의 단계 6B에서, 애플리케이션 특정 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 요청을 처리하고 도 10a 및 도 10b와 관련하여 앞서 기술된 처리에 따라 노드의 CSE를 구성한다. 예를 들어, 애플리케이션 서비스 노드 상의 서비스 오케스트레이션 관리 기능은 수신된 오케스트레이션 프로파일을 파싱하고 대응하는 오케스트레이션을 수행할 수 있다. 도 22d의 단계 6C에서, 애플리케이션 서비스 노드는 처리의 상태를 제공하는 응답을 송신한다. 예시적인 시나리오에서, 애플리케이션 서비스 노드는 오케스트레이션이 성공했다는 것을 나타낸다.
도 22c의 단계 2B에서, 중앙집중식 서비스 노드의 서비스 오케스트레이션 관리 기능은 상태 응답을 발생시켜 오케스트레이션을 최초로 요청한 AE 또는 CS로 전송한다. 예시적인 시나리오에서, 중앙집중식 서비스 노드는 오케스트레이션이 성공했다는 것을 나타낸다.
XML 기반 서비스 오케스트레이션 프로파일 계층구조
앞서 기술된 서비스 오케스트레이션 프로파일은 임의의 적당한 포맷으로 구현될 수 있고 임의의 적당한 기술을 이용할 수 있다. 예를 들어, 서비스 오케스트레이션 프로파일들은 XML 또는 WSDL 포맷의 파일들일 수 있다. XML로 포맷팅되어 있는 예시적인 오케스트레이션 파일이 이하에 열거되어 있다. 이 특정의 예는, 예를 들어, 특정의 CSF들의 세트를 클라이언트에 의해 이용가능하게 만들도록 oneM2M CSE의 오케스트레이션을 요청하기 위해 클라이언트(예컨대, 애플리케이션)에 의해 생성될 수 있는 오케스트레이션 프로파일을 나타낸다. 이 특정의 예시적인 실시예에서, 앞서 논의된 서비스 오케스트레이션 프로파일 속성들의 서브셋만이 적용가능하다. 예시적인 XML 인코딩된 프로파일은 프로파일 유형(즉, CSE_ORCHESTRATE), 오케스트레이션될 대상 CSE(즉, cseXYZ), 오케스트레이션을 수행할 스케줄링된 시각(즉, 2014-10-24-06:00), 오케스트레이션에 적격성을 부여할 정책(즉, CSE가 공개적으로 이용가능한 CSE인 경우에만 서비스 오케스트레이션을 수행함), 및 각각의 서비스에 관한 정보(예컨대, 제목, 프로파일에의 링크, 비용, 액세스, 성능, 피어들, 기타)를 포함하는 원하는 서비스들의 세트(즉, oneM2M CMDH, REG 및 DMR 서비스들)와 같은 속성들을 포함한다. 나타내어진 각각의 XML 엘리먼트에 대해, 부가된 명확성 및 가독성을 위해 서비스 오케스트레이션 프로파일 속성의 예시적인 값이 나타내어져 있다.
Figure pat00005
Figure pat00006
Figure pat00007
JSON 기반 서비스 오케스트레이션 프로파일 계층구조
서비스 오케스트레이션 프로파일들이 JSON을 사용하여 포맷팅될 수 있다. JSON 포맷의 프로파일의 일 예가 이하에 열거되어 있다. 이 특정의 예시적인 실시예는, 예를 들어, 애플리케이션들, 서비스 오케스트레이션 관리 기능들, 기타와 같은 네트워크에서의 다른 엔티티들에 의해 발견 및/또는 사용될 수 있도록 게시하기 위해 CSE에 의해 생성될 수 있는 것이다. 이 특정의 예는 프로파일의 의도된 용도에 적용가능한 잠재적인 서비스 오케스트레이션 프로파일 속성들의 특정의 서브셋을 포함한다. 이 특정의 예시적인 프로파일에서, JSON 인코딩된 프로파일은 프로파일 유형(즉, CSE), 오케스트레이션될 대상 CSE(즉, cseXYZ), 서비스 오케스트레이션 컨텍스트(즉, CSE가 현재 오케스트레이션 요청들을 받고 있음), 및 각각의 서비스에 관한 정보(예컨대, 제목, 프로파일에의 링크, 비용, 액세스, 성능, 피어들, 기타)를 포함하는 지원되는 서비스들의 세트(즉, oneM2M CMDH, REG 및 DMR 서비스들)와 같은 속성들을 포함한다. 나타내어진 각각의 JSON 엘리먼트에 대해, 부가된 명확성 및 가독성을 위해 서비스 오케스트레이션 프로파일 속성의 예시적인 값이 나타내어져 있다.
Figure pat00008
Figure pat00009
Figure pat00010
WSDL 기반 서비스 오케스트레이션 프로파일 계층구조
서비스 프로파일들이 또한 WSDL을 사용하여 인코딩될 수 있다. WSDL을 사용하여 포맷팅된 제1 예시적인 오케스트레이션 프로파일에서, 자식 엘리먼트가 WSDL 템플릿 내에서 루트 'description' 엘리먼트 아래에 추가될 수 있다. 예를 들어, 자식 엘리먼트가 이하의 리스트에 나타낸 바와 같이 'profile'이라고 불리울 수 있다. 'profile' 엘리먼트 아래에, 앞서 기술된 오케스트레이션 서비스 프로파일 속성들 각각에 대응하는 자식 엘리먼트들이 정의된다.
Figure pat00011
Figure pat00012
WSDL을 사용하여 포맷팅된 제2 예시적인 실시예에서, 대응하는 서비스 오케스트레이션 프로파일 속성들 각각에 대해 새로운 자식 엘리먼트들이 기존의 WSDL 엘리먼트들 아래에 추가된다. 예를 들어, 서비스 오케스트레이션 프로파일 선택 속성들이 'types', 'interface', 'binding' 및/또는 'service' 엘리먼트들 아래에 추가될 수 있다. 서비스 오케스트레이션 능력들로 WSDL을 향상시키기 위해 서비스 오케스트레이션 프로파일 속성들의 다양한 치환들 및 조합들이 하나 이상의 WSDL 자식 엘리먼트들 아래에 배치될 수 있다. 이하에 열거되는 예시적인 실시예에서, 'service' 엘리먼트 아래에 속성들이 추가되어 있다.
Figure pat00013
Figure pat00014
예시적인 컴퓨팅 환경
도 23a는, 예를 들어, 단말 디바이스, UE(user equipment), 또는 게이트웨이 디바이스일 수 있는 예시적인 무선 디바이스(30)의 시스템도이다. 예를 들어, 디바이스(30)는 네트워크 애플리케이션 도메인(210)에서의 사용자들에 의해 이용될 수 있고 도 2와 관련하여 그리고 본 출원 전체에 걸쳐 언급된 바와 같이 네트워크 서비스들 도메인(212)에서의 시스템들과 데이터를 통신하는 그 상에서 실행 중인 애플리케이션들을 가질 수 있다. 추가의 비제한적인 예로서, 무선 디바이스(30)는 도 2와 관련한 것을 비롯하여 명세서 전체에 걸쳐 기술된 게이트웨이들(226) 중 임의의 것일 수 있다. 게다가, 디바이스(30)는 도 2와 관련하여 그리고 명세서의 다른 곳에서 언급된 바와 같이 디바이스 애플리케이션 도메인(214)에서의 디바이스들을 구현하는 데 사용될 수 있다. 디바이스(30)는 통신 네트워크 또는 직접 무선 링크를 통해 신호들을 전송하고 수신하도록 구성되어 있다. 도 23a에 도시된 바와 같이, 디바이스(30)는 프로세서(32), 송수신기(34), 송신/수신 요소(36), 스피커/마이크로폰(38), 키패드(40), 디스플레이/터치패드/표시기(들)(42), 비이동식 메모리(44), 이동식 메모리(46), 전원(48), GPS(global positioning system) 칩셋(50), 및 다른 주변기기들(52)을 포함할 수 있다. 예시적인 실시예에서, 디스플레이/터치패드/표시기(들)(42)는 사용자 인터페이스의 일부로서 동작하는 하나 이상의 표시기들을 포함할 수 있다. 디바이스(40)가 일 실시예와 부합한 채로 있으면서 상기 요소들의 임의의 서브컴비네이션(sub-combination)을 포함할 수 있다는 것을 잘 알 것이다. 이 디바이스는 시스템간 이동성 시스템들 및 방법들을 위해 개시된 서빙 게이트웨이 확장들을 사용하는 디바이스일 수 있다.
프로세서(32)는 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, DSP(digital signal processor), 복수의 마이크로프로세서들, DSP 코어와 연관된 하나 이상의 마이크로프로세서들, 제어기, 마이크로컨트롤러, 하나 이상의 ASIC(Application Specific Integrated Circuit)들, 하나 이상의 FPGA(Field Programmable Gate Array) 회로들, 임의의 다른 유형 및 수의 IC(integrated circuit), 상태 머신 등일 수 있다. 프로세서(32)는 신호 코딩, 데이터 처리, 전력 제어, 입출력 처리, 및/또는 디바이스(30)가 무선 환경에서 동작할 수 있게 하는 임의의 다른 기능을 수행할 수 있다. 프로세서(32)는 송수신기(34)에 결합될 수 있고, 송수신기(34)는 송신/수신 요소(36)에 결합될 수 있다. 도 23a가 프로세서(32)와 송수신기(34)를 개별적인 컴포넌트들로서 나타내고 있지만, 프로세서(32)와 송수신기(34)가 전자 패키지 또는 칩에 함께 통합될 수 있다는 것을 잘 알 것이다. 프로세서(32)는 애플리케이션 계층 프로그램들(예컨대, 브라우저들) 및/또는 무선 액세스 계층(RAN) 프로그램들 및/또는 통신을 수행할 수 있다. 프로세서(32)는, 예를 들어, 액세스 계층 및/또는 애플리케이션 계층 등에서, 인증, 보안 키 합의, 및/또는 암호화 작업(cryptographic operation)과 같은 보안 작업들을 수행할 수 있다.
송신/수신 요소(36)는 eNode-B, Home eNode-B, WiFi 액세스 포인트 등으로 신호들을 전송하고 그리고/또는 그로부터 신호들을 수신하도록 구성될 수 있다. 예를 들어, 일 실시예에서, 송신/수신 요소(36)는 RF 신호들을 전송 및/또는 수신하도록 구성된 안테나일 수 있다. 송신/수신 요소(36)는 WLAN, WPAN, 셀룰러 등과 같은 다양한 네트워크들 및 공중 인터페이스들을 지원할 수 있다. 일 실시예에서, 송신/수신 요소(36)는, 예를 들어, IR, UV 또는 가시 광 신호들을 전송 및/또는 수신하도록 구성된 방출기/검출기일 수 있다. 또 다른 실시예에서, 송신/수신 요소(36)는 RF 및 광 신호들 둘 다를 전송 및/또는 수신하도록 구성될 수 있다. 송신/수신 요소(36)가 무선 또는 유선 신호들의 임의의 조합을 전송 및/또는 수신하도록 구성될 수 있다는 것을 잘 알 것이다.
그에 부가하여, 송신/수신 요소(36)가 도 23a에서 단일의 요소로서 나타내어져 있지만, 디바이스(30)가 임의의 수의 송신/수신 요소들(36)을 포함할 수 있다. 보다 구체적으로는, 디바이스(30)가 MIMO 기술을 이용할 수 있다. 이와 같이, 일 실시예에서, 디바이스(30)는 무선 신호들을 전송 및 수신하기 위한 2개 이상의 송신/수신 요소들(36)(예컨대, 다수의 안테나들)을 포함할 수 있다.
송수신기(34)는 송신/수신 요소(36)에 의해 전송되어야 하는 신호들을 변조하도록 그리고 송신/수신 요소(36)에 의해 수신되는 신호들을 복조하도록 구성될 수 있다. 앞서 살펴본 바와 같이, 디바이스(30)는 다중 모드 능력들을 가질 수 있다. 이와 같이, 송수신기(34)는 디바이스(30)가, 예를 들어, UTRA 및 IEEE 802.11과 같은 다수의 RAT들을 통해 통신할 수 있게 하기 위한 다수의 송수신기들을 포함할 수 있다.
프로세서(32)는 비이동식 메모리(44) 및/또는 이동식 메모리(46)와 같은 임의의 유형의 적당한 메모리로부터의 정보에 액세스하고 그에 데이터를 저장할 수 있다. 비이동식 메모리(44)는 RAM(random-access memory), ROM(read-only memory), 하드 디스크, 또는 임의의 다른 유형의 메모리 저장 디바이스를 포함할 수 있다. 이동식 메모리(46)는 SIM(subscriber identity module) 카드, 메모리 스틱, SD(secure digital) 메모리 카드 등을 포함할 수 있다. 다른 실시예에서, 프로세서(32)는, 예컨대, 서버 또는 홈 컴퓨터와 같은, 디바이스(30) 상에 물리적으로 위치해 있지 않은 메모리로부터의 정보에 액세스하고 데이터를 그에 저장할 수 있다.
프로세서(30)는 전원(48)으로부터 전력을 받을 수 있고, 전력을 디바이스(30) 내의 다른 컴포넌트들에 분배하고 그리고/또는 제어하도록 구성될 수 있다. 전원(48)은 디바이스(30)에 전력을 공급하기 위한 임의의 적당한 디바이스일 수 있다. 예를 들어, 전원(48)은 하나 이상의 건전지 배터리들(예컨대, 니켈-카드뮴(NiCd), 니켈-아연(NiZn), 니켈 금속 수소화물(NiMH), 리튬 이온(Li 이온) 등), 태양 전지들, 연료 전지들 등을 포함할 수 있다.
프로세서(32)는 또한 디바이스(30)의 현재 위치에 관한 위치 정보(예컨대, 경도 및 위도)를 제공하도록 구성될 수 있는 GPS 칩셋(50)에 결합될 수 있다. 디바이스(30)가 일 실시예와 부합한 채로 있으면서 임의의 적당한 위치 결정 방법을 통해 위치 정보를 취득할 수 있다는 것을 잘 알 것이다.
프로세서(32)는 부가의 특징들, 기능 및/또는 유선 또는 무선 연결을 제공하는 하나 이상의 소프트웨어 및/또는 하드웨어 모듈들을 포함할 수 있는 다른 주변기기들(52)에 추가로 결합될 수 있다. 예를 들어, 주변기기들(52)은 가속도계, e-나침반(e-compass), 위성 송수신기, 센서, 디지털 카메라(사진 또는 비디오용), USB(universal serial bus) 포트, 진동 디바이스, 텔레비전 송수신기, 핸즈프리 헤드셋, Bluetooth® 모듈, FM(frequency modulated) 라디오 유닛, 디지털 음악 플레이어, 미디어 플레이어, 비디오 게임 플레이어 모듈, 인터넷 브라우저 등을 포함할 수 있다.
도 23b는 본원에 기술되는 시스템들 및 방법들을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 시스템(1000)의 블록도를 나타내고 있다. 예를 들어, 컴퓨팅 시스템(1000)은, 예를 들어, 본원에서 언급된 것과 같은 서비스 노드들, 서버들, 및 애플리케이션 시스템들로서 동작하는 디바이스들을 구현하는 데 사용될 수 있다. 상세하게는, 컴퓨팅 시스템(1000)은 도 2와 관련하여 그리고 명세서 전체에 걸쳐 기술된 서버들(220)을 구현하는 데 사용될 수 있다. 컴퓨팅 시스템(1000)은 소프트웨어의 형태로 되어 있을 수 있는 컴퓨터 판독가능 명령어들에 의해 주로 제어될 수 있다. 컴퓨터 판독가능 명령어들은 컴퓨터 판독가능 명령어들 자체를 저장하고 액세스하기 위한 컴퓨팅 시스템(1000)에 대한 명령어들을 포함할 수 있다. 이러한 소프트웨어는 컴퓨팅 시스템(1000)으로 하여금 그와 연관된 프로세스들 또는 기능들을 수행하게 하기 위해 중앙 처리 유닛(CPU)(1010) 내에서 실행될 수 있다. 많은 공지된 컴퓨터 서버들, 워크스테이션들, 개인용 컴퓨터들 등에서, CPU(1010)는 마이크로프로세서라고 불리우는 마이크로 전자 칩 CPU에 의해 구현될 수 있다.
동작을 설명하면, CPU(1010)는 명령어들을 페치, 디코딩, 및/또는 실행할 수 있고, 정보를 주 데이터 전송 경로 또는 시스템 버스(1005)를 통해 다른 자원들로 그리고 그로부터 전송할 수 있다. 이러한 시스템 버스는 컴퓨팅 시스템(1000) 내의 컴포넌트들을 연결시킬 수 있고, 데이터 교환을 위한 매체를 정의할 수 있다. 컴퓨팅 시스템(1000)은 시스템 버스(1005)에 결합된 메모리 디바이스들을 추가로 포함할 수 있다. 예시적인 실시예에 따르면, 메모리 디바이스들은 RAM(random access memory)(1025) 및 ROM(read only memory)(1030)을 포함할 수 있다. RAM(1025) 및 ROM(1030)은 정보가 저장 및 검색될 수 있게 하는 회로부를 포함할 수 있다. 일 실시예에서, ROM(1030)은 수정될 수 없는 저장된 데이터를 포함할 수 있다. 그에 부가하여, RAM(1025)에 저장된 데이터는 전형적으로 CPU(1010) 또는 다른 하드웨어 디바이스들에 의해 판독되거나 변경될 수 있다. RAM(1025) 및/또는 ROM(1030)에의 액세스는 메모리 제어기(1020)에 의해 제어될 수 있다. 메모리 제어기(1020)는, 명령어들이 실행될 때, 가상 주소들을 물리 주소들로 변환하는 주소 변환 기능을 제공할 수 있다.
그에 부가하여, 컴퓨팅 시스템(1000)은 명령어들을 CPU(1010)로부터, 프린터(1040), 키보드(1045), 마우스(1050), 및 데이터 저장 드라이브(1055)와 같은, 주변 기기들로 전달하는 일을 맡고 있을 수 있는 주변기기들 제어기(1035)를 포함할 수 있다. 컴퓨팅 시스템(1000)은 디스플레이 제어기(1063)에 의해 제어될 수 있는 디스플레이(1065)를 추가로 포함할 수 있다. 디스플레이(1065)는 컴퓨팅 시스템(1000)에 의해 발생되는 시각적 출력을 디스플레이하는 데 사용될 수 있다. 이러한 시각적 출력은 텍스트, 그래픽, 애니메이션화된 그래픽(animated graphics), 비디오 등을 포함할 수 있다. 디스플레이 제어기(1063)는 디스플레이(1065)로 송신될 수 있는 비디오 신호를 발생시키는 전자 컴포넌트들을 포함할 수 있다. 게다가, 컴퓨팅 시스템(1000)은 컴퓨팅 시스템(1000)을 네트워크(1090)와 같은 외부 통신 네트워크에 연결시키는 데 사용될 수 있는 네트워크 어댑터(1070)를 포함할 수 있다.
그에 따라, 출원인은 서비스들을 오케스트레이션하기 위한 예시적인 시스템들 및 방법들을 개시하였다. 예시적인 시스템들 및 방법들에서, 서비스 오케스트레이션 프로파일들은 원하는 서비스들을 정의하는 속성들을 명시한다. 서비스 오케스트레이션 프로파일들은 노드들 간에 분산되고 서로 계층적으로 관련될 수 있다. 서비스 오케스트레이션 관리 기능들은 원하는 서비스들을 결정하고 원하는 서비스들을 구현하는 데 정보를 사용하기 위해 서비스 오케스트레이션 프로파일들 내의 정보를 처리한다. 개시된 시스템들 및 방법들은 단일의 서비스 노드 또는 분산된 서비스 노드들의 네트워크(예컨대, 클라우드 기반 배포 또는 웹 기반 서비스 배포)에 의해 지원되는 서비스들의 자동화된 동적 조정, 구성, 배열 및 관리를 제공한다.
예시적인 실시예들이 개시되어 있지만, 잠재적인 실시예들의 범주가 명확히 기재된 것들로 제한되지 않는다는 것을 잘 알 것이다. 예를 들어, 시스템이 oneM2M 아키텍처를 주로 참조하여 기술되었지만, 예상된 실시예들은 특정의 아키텍처 또는 기술을 사용하는 구현들을 넘어 확장된다. 예를 들어, 잠재적인 실시예들은 또한 웹 서비스 실시예들을 포함한다. 잠재적인 구현들은 모든 유형들의 서비스 계층 아키텍처들, 시스템들, 및 실시예들로 확장된다.
본원에 기술되는 다양한 기법들이 하드웨어 또는 소프트웨어와 관련하여, 또는 적절한 경우, 이 둘의 조합과 관련하여 구현될 수 있다는 것을 잘 알 것이다. 따라서, 본원에 기술되는 발명 요지의 방법들 및 장치들, 또는 그의 어떤 양태들 또는 부분들은 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 머신 판독가능 저장 매체와 같은 유형적인 매체(tangible media) 상에 구현되는 프로그램 코드(즉, 명령어들)의 형태를 가질 수 있으며, 여기서 프로그램 코드가 컴퓨터와 같은 머신에 로드되어 그에 의해 실행될 때, 그 머신은 본원에 기술되는 발명 요지를 실시하는 장치가 된다. 프로그램 코드가 매체 상에 저장되어 있는 경우에, 문제의 프로그램 코드가 문제의 동작들을 일괄하여 수행하는 하나 이상의 매체 상에 저장되는 경우가 있을 수 있고, 이는 함께 취해지는 하나 이상의 매체가 동작들을 수행하는 코드를 포함하지만, - 하나 초과의 단일 매체(more than one single medium)가 있는 경우에 - 코드의 임의의 특정 부분이 임의의 특정 매체 상에 저장될 필요는 없다는 것을 의미한다. 프로그램가능 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 디바이스는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소들을 포함함), 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함한다. 하나 이상의 프로그램들이, 예컨대, API, 재사용가능 컨트롤 등의 사용을 통해, 본원에 기술되는 발명 요지와 관련하여 기술된 프로세스들을 구현하거나 이용할 수 있다. 이러한 프로그램들은 바람직하게는 컴퓨터 시스템과 통신하기 위해 고수준의 절차적 또는 객체 지향 프로그래밍 언어로 구현된다. 그렇지만, 프로그램(들)은, 원하는 경우, 어셈블리어 또는 기계어로 구현될 수 있다. 어느 경우든지, 이 언어는 컴파일되거나 인터프리트되는 언어일 수 있고, 하드웨어 구현과 결합될 수 있다.
예시적인 실시예들이 하나 이상의 독립형 컴퓨터 시스템들 또는 디바이스들과 관련하여 본원에 기술되는 발명 요지의 양태들을 이용하는 것을 언급할 수 있지만, 본원에 기술되는 발명 요지가 그렇게 제한되지 않고, 오히려, 네트워크 또는 분산 컴퓨팅 환경과 같은, 임의의 컴퓨팅 환경과 관련하여 구현될 수 있다. 게다가, 본원에 기술되는 발명 요지의 양태들이 복수의 처리 칩들 또는 디바이스들에서 또는 그들에 걸쳐 구현될 수 있고, 저장도 마찬가지로 복수의 디바이스들에 걸쳐 행해질 수 있다. 이러한 디바이스들은 개인용 컴퓨터들, 네트워크 서버들, 핸드헬드 디바이스들, 수퍼컴퓨터들, 또는 자동차 및 비행기와 같은 다른 시스템들 내에 통합된 컴퓨터들을 포함한다.
하기는 이상의 설명에서 나올 수 있는 서비스 레벨 기술들에 관련된 두문자어들의 리스트이다.
E2E End-to-End(종단간)
IoT Internet of Things(사물 인터넷)
IP Internet Protocol(인터넷 프로토콜)
M2M Machine to Machine(머신간)
SC Service Capability(서비스 능력)
SCL Service Capability Layer(서비스 능력 계층)
CSF Capability Service Function(능력 서비스 기능)
CSE Capability Service Entity(능력 서비스 엔티티)
ASN Application Service Node(애플리케이션 서비스 노드)
VM Virtual Machine(가상 머신)
발명 요지가 구조적 특징들 및/또는 방법 동작들과 관련하여 기술되어 있지만, 첨부된 청구항들에 한정된 발명 요지가 꼭 앞서 기술한 특정의 특징들 또는 동작들로 제한되지는 않는다는 것을 잘 알 것이다. 오히려, 앞서 기술된 특정의 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시되어 있다.

Claims (1)

  1. 명세서 또는 도면에 기재된 방법 및 장치
KR1020187025719A 2014-06-13 2015-06-12 자동화된 서비스 프로파일링 및 오케스트레이션 KR20180102212A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462011770P 2014-06-13 2014-06-13
US62/011,770 2014-06-13
PCT/US2015/035499 WO2015191965A2 (en) 2014-06-13 2015-06-12 Automated service profiling and orchestration

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020177000700A Division KR101898170B1 (ko) 2014-06-13 2015-06-12 자동화된 서비스 프로파일링 및 오케스트레이션

Publications (1)

Publication Number Publication Date
KR20180102212A true KR20180102212A (ko) 2018-09-14

Family

ID=54548236

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187025719A KR20180102212A (ko) 2014-06-13 2015-06-12 자동화된 서비스 프로파일링 및 오케스트레이션
KR1020177000700A KR101898170B1 (ko) 2014-06-13 2015-06-12 자동화된 서비스 프로파일링 및 오케스트레이션

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177000700A KR101898170B1 (ko) 2014-06-13 2015-06-12 자동화된 서비스 프로파일링 및 오케스트레이션

Country Status (6)

Country Link
US (2) US10374910B2 (ko)
EP (1) EP3155525A2 (ko)
JP (1) JP6560259B2 (ko)
KR (2) KR20180102212A (ko)
CN (1) CN106537843B (ko)
WO (1) WO2015191965A2 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10374910B2 (en) * 2014-06-13 2019-08-06 Convida Wireless, Llc Automated service profiling and orchestration
FR3031209A1 (fr) * 2014-12-24 2016-07-01 Orange Gestion d'entites electroniques pour la creation d'un fil d'actualites
US10425489B1 (en) * 2015-07-21 2019-09-24 Hrl Laboratories, Llc Inferring network services and their dependencies from header and flow data and the switching topology
DE102015216284A1 (de) * 2015-08-26 2017-03-02 Robert Bosch Gmbh Verfahren zum Betreiben eines Gateways
KR101723172B1 (ko) * 2016-01-19 2017-04-04 (주)파인원커뮤니케이션즈 사물 인터넷 서비스 제공 방법
EP3402121B1 (en) 2016-02-06 2020-01-08 Huawei Technologies Co., Ltd. Method and device for policy transmission in nfv system
US10757121B2 (en) * 2016-03-25 2020-08-25 Cisco Technology, Inc. Distributed anomaly detection management
US20200326989A1 (en) * 2016-04-05 2020-10-15 Convida Wireless, Llc Building pool-based m2m service layer through nfv
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10547496B2 (en) 2016-05-23 2020-01-28 Telefonaktiebolaget Lm Ericsson (Publ) Automatic network management system and methods
US10367696B2 (en) 2016-05-23 2019-07-30 Telefonaktiebolaget Lm Ericsson (Publ) Automatic network management system and methods
CN108370329B (zh) * 2016-06-30 2021-05-18 华为技术有限公司 管理功能对象的管理方法及装置
US10887420B2 (en) * 2016-10-06 2021-01-05 Convida Wireless, Llc Profile based content and services
EP3312724B1 (en) 2016-10-21 2019-10-30 Fujitsu Limited Microservice-based data processing apparatus, method, and program
JP7100422B2 (ja) 2016-10-21 2022-07-13 富士通株式会社 データプロパティ認識のための装置、プログラム、及び方法
US10776170B2 (en) 2016-10-21 2020-09-15 Fujitsu Limited Software service execution apparatus, system, and method
JP6805765B2 (ja) 2016-10-21 2020-12-23 富士通株式会社 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
EP3312722A1 (en) 2016-10-21 2018-04-25 Fujitsu Limited Data processing apparatus, method, and program
KR101888472B1 (ko) * 2016-12-08 2018-08-16 제주대학교 산학협력단 BPM 기반의 IoT DIY 시스템 및 이의 구현방법
FR3060790A1 (fr) * 2016-12-16 2018-06-22 Orange Procede d'utilisation d'un poste de travail etendu, et systeme d'utilisation d'un poste de travail etendu associe
US11178523B2 (en) 2017-02-22 2021-11-16 Telefonaktiebolaget Lm Ericsson (Publ) First communication device, network device and methods therein for indentifying at least one second communication device providing a semantic representation
US10506403B2 (en) 2017-02-27 2019-12-10 Oracle International Corporation Methods, systems and computer readable media for providing integrated service capability exposure function (SCEF), service capability server (SCS) and application server (AS) services
US10405158B2 (en) 2017-02-27 2019-09-03 Oracle International Corporation Methods, systems and computer readable media for providing service capability exposure function (SCEF) as a diameter routing agent (DRA) feature
US10530599B2 (en) * 2017-02-27 2020-01-07 Oracle International Corporation Methods, systems and computer readable media for providing service capability exposure function (SCEF) as a cloud service
US10439877B2 (en) * 2017-06-26 2019-10-08 Cisco Technology, Inc. Systems and methods for enabling wide area multicast domain name system
US10448449B2 (en) 2017-07-13 2019-10-15 Oracle International Corporation Methods, systems, and computer readable media for dynamically provisioning session timeout information in a communications network
US10334419B2 (en) 2017-08-16 2019-06-25 Oracle International Corporation Methods, systems, and computer readable media for optimizing machine type communication (MTC) device signaling
KR102646526B1 (ko) 2017-09-08 2024-03-13 콘비다 와이어리스, 엘엘씨 기기간 통신 네트워크에서의 자동화된 서비스 등록
EP3600581B1 (en) * 2017-10-10 2024-02-21 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
WO2019182752A1 (en) 2018-03-22 2019-09-26 Google Llc Methods and systems for rendering and encoding content for online interactive gaming sessions
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP3740292A2 (en) 2018-04-02 2020-11-25 Google LLC Input device for an electronic system
EP3773953A1 (en) 2018-04-02 2021-02-17 Google LLC Methods, devices, and systems for interactive cloud gaming
CN111417978A (zh) 2018-04-10 2020-07-14 谷歌有限责任公司 游戏渲染中的内存管理
US11146577B2 (en) 2018-05-25 2021-10-12 Oracle International Corporation Methods, systems, and computer readable media for detecting and mitigating effects of abnormal behavior of a machine type communication (MTC) device
US10616802B2 (en) 2018-09-04 2020-04-07 Oracle International Corporation Methods, systems and computer readable media for overload and flow control at a service capability exposure function (SCEF)
US11662051B2 (en) 2018-11-16 2023-05-30 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
US11343676B1 (en) * 2019-03-07 2022-05-24 Amazon Technologies, Inc. Configuring devices to connect to a network
US11171844B2 (en) 2019-06-07 2021-11-09 Cisco Technology, Inc. Scalable hierarchical data automation in a network
CN110471745A (zh) * 2019-08-22 2019-11-19 浪潮云信息技术有限公司 一种服务编排方法及装置
TWI723610B (zh) * 2019-11-01 2021-04-01 中華電信股份有限公司 用於偵測網路設備組態文件異動之系統及其方法
WO2021091436A1 (en) * 2019-11-04 2021-05-14 Telefonaktiebolaget Lm Ericsson (Publ) Distributed computation orchestration for internet-of-things devices using coap and lwm2m protocols
US11546413B2 (en) * 2019-12-31 2023-01-03 Oracle International Corporation System and method for identifying capabilities and limitations of an orchestration based application integration
US11221896B2 (en) * 2020-01-22 2022-01-11 Idera, Inc. Systems and methods for API request conversion
WO2021234019A1 (en) * 2020-05-22 2021-11-25 Invixo Consulting Group A/S Database management methods and associated apparatus
US11381955B2 (en) 2020-07-17 2022-07-05 Oracle International Corporation Methods, systems, and computer readable media for monitoring machine type communications (MTC) device related information
CN111930372B (zh) * 2020-08-06 2022-09-20 科大国创云网科技有限公司 一种通过可拖拽流程图实现的服务编排解决方法及系统
US11700510B2 (en) 2021-02-12 2023-07-11 Oracle International Corporation Methods, systems, and computer readable media for short message delivery status report validation
US20230283516A1 (en) * 2022-03-03 2023-09-07 National Instruments Corporation System and method for efficient data movement in an orchestrated distributed measurement application
KR102499488B1 (ko) 2022-04-13 2023-02-14 주식회사 비투엔 마이크로 서비스 아키텍처 기반의 쿼리 오케스트레이션 처리 장치 및 방법
EP4266174A1 (en) * 2022-04-19 2023-10-25 Sap Se Data center selection for cloud application deployment
US20230367609A1 (en) * 2022-05-12 2023-11-16 Kandji, Inc. Customizable initialization orchestration module

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2270622B1 (en) * 2003-06-05 2016-08-24 Intertrust Technologies Corporation Interoperable systems and methods for peer-to-peer service orchestration
US8458763B2 (en) * 2008-07-01 2013-06-04 International Business Machines Corporation Method of automating and personalizing systems to satisfy security requirements in an end-to-end service landscape
US9442810B2 (en) 2009-07-31 2016-09-13 Paypal, Inc. Cloud computing: unified management console for services and resources in a data center
US8943508B2 (en) 2009-12-09 2015-01-27 International Business Machines Corporation Service oriented collaboration
US20120054624A1 (en) 2010-08-27 2012-03-01 Owens Jr Kenneth Robert Systems and methods for a multi-tenant system providing virtual data centers in a cloud configuration
US8484366B2 (en) 2010-01-05 2013-07-09 Accenture Global Services Limited Hierarchical service management
US8862742B2 (en) * 2010-12-21 2014-10-14 Oracle International Corporation Communications service broker for orchestration of services in a telecommunications network
US9641403B2 (en) * 2011-04-26 2017-05-02 Openet Telecom Ltd. Systems, devices and methods of decomposing service requests into domain-specific service requests
JP6231020B2 (ja) * 2012-02-13 2017-11-15 オラクル・インターナショナル・コーポレイション クラウドコンピューティング環境におけるプロセスの調整
US8983987B2 (en) * 2012-07-25 2015-03-17 Cisco Technology, Inc. System and method for a service metering framework in a network environment
US10194414B2 (en) * 2013-01-07 2019-01-29 Futurewei Technologies, Inc. Information centric networking based service centric networking
US10374910B2 (en) * 2014-06-13 2019-08-06 Convida Wireless, Llc Automated service profiling and orchestration

Also Published As

Publication number Publication date
US10812345B2 (en) 2020-10-20
WO2015191965A3 (en) 2016-02-04
CN106537843B (zh) 2019-11-05
KR101898170B1 (ko) 2018-09-12
WO2015191965A2 (en) 2015-12-17
JP2017521764A (ja) 2017-08-03
US20170126512A1 (en) 2017-05-04
CN106537843A (zh) 2017-03-22
US20190319860A1 (en) 2019-10-17
KR20170016962A (ko) 2017-02-14
EP3155525A2 (en) 2017-04-19
JP6560259B2 (ja) 2019-08-14
US10374910B2 (en) 2019-08-06

Similar Documents

Publication Publication Date Title
KR101898170B1 (ko) 자동화된 서비스 프로파일링 및 오케스트레이션
JP6811263B2 (ja) M2m−iotサービスのパブリケーションおよび発見
US11240321B2 (en) Systems and methods for enabling access to third party services via a service layer
JP6456472B2 (ja) 複数のデバイス上での複数のコマンドの実行を可能にすることによるm2mシステムにおけるサービス層と管理層との間の拡張型動作
KR102646526B1 (ko) 기기간 통신 네트워크에서의 자동화된 서비스 등록
EP3286936B1 (en) Device and method for adding a service
KR102500594B1 (ko) 통신 네트워크에서의 서비스 계층 메시지 템플릿들

Legal Events

Date Code Title Description
A107 Divisional application of patent